From b0d2d86fdc28a55bb114e3c74640c096055cded6 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 31 Jul 2023 22:39:11 -0700 Subject: [PATCH 001/376] hehe --- .../gen/component/BrutalistFeatures.java | 291 ++++++++++++++++++ 1 file changed, 291 insertions(+) create mode 100644 src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java diff --git a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java new file mode 100644 index 000000000..294c713fb --- /dev/null +++ b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java @@ -0,0 +1,291 @@ +package com.hbm.world.gen.component; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraft.world.gen.structure.StructureBoundingBox; + +//civilian features is fucking cringe :P +public class BrutalistFeatures { + + public static void registerComponents() { + MapGenStructureIO.func_143031_a(ElevatedLab1.class, "NTMElevatedLab1"); + } + + //might be other than a lab, placeholder :P + public static class ElevatedLab1 extends Component { + + public ElevatedLab1() { super(); } + + public ElevatedLab1(Random rand, int minX, int minY, int minZ) { + super(rand, minX, minY, minZ, 11, 15, 14); + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + if(!this.setAverageHeight(world, box, this.boundingBox.minY)) { + return false; + } + + final int stairMetaW = getStairMeta(0); + final int stairMetaE = getStairMeta(1); + final int stairMetaN = getStairMeta(2); + final int stairMetaS = getStairMeta(3); + + //greater pillars + for(int i = 2; i < 12; i+=5) { + fillWithBlocks(world, box, i, 0, 2, i, 1, 4, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, i, 4, 2, i, 5, 4, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, i+1, 0, 2, i+1, 5, 4, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, i+2, 0, 2, i+2, 1, 4, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, i+2, 4, 2, i+2, 5, 4, ModBlocks.concrete_smooth); + + for(int j = 0; j <= 1; j++) { + final int u = j * 4; + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | u, i, 2 + j, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | u, i+=2, 2 + j, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW | u, i, 2 + j, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | u, i+=2, 2 + j, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | u, i, 2 + j, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | u, i+=2, 2 + j, 4, box); + } + + placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i, 2, i, 4, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_pillar, 0, i+=1, 2, i+=1, 4, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i+=2, 2, i+=2, 4, -1, box); + } + + //lesser pillars + for(int i = 2; i < 12; i+=5) { + fillWithBlocks(world, box, i, 0, 10, i, 1, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, i, 3, 10, i, 3, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, i+1, 0, 10, i+1, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, i+2, 0, 10, i+2, 1, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, i+2, 3, 10, i+2, 3, 12, ModBlocks.concrete_smooth); + + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, i, 2, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, i+=2, 2, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW, i, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE, i+=2, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS, i, 2, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS, i+=2, 2, 4, box); + + placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i, 10, i, 12, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_pillar, 0, i+=1, 10, i+=1, 12, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i+=2, 10, i+=2, 12, -1, box); + } + + fillWithAir(world, box, 1, 5, 9, 15, 7, 13); + fillWithAir(world, box, 13, 6, 8, 14, 6, 8); + fillWithAir(world, box, 13, 7, 6, 14, 8, 8); + fillWithAir(world, box, 1, 7, 1, 15, 9, 5); + + /* lower floor */ + //lower slabs + fillWithMetadataBlocks(world, box, 0, 3, 9, 16, 3, 9, ModBlocks.concrete_slab, 8); + fillWithMetadataBlocks(world, box, 1, 3, 10, 1, 3, 12, ModBlocks.concrete_slab, 8); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 0, 3, 11, box); + fillWithMetadataBlocks(world, box, 0, 3, 13, 16, 3, 13, ModBlocks.concrete_slab, 8); + fillWithMetadataBlocks(world, box, 5, 3, 10, 6, 3, 12, ModBlocks.concrete_slab, 8); + fillWithMetadataBlocks(world, box, 10, 3, 10, 11, 3, 12, ModBlocks.concrete_slab, 8); + fillWithMetadataBlocks(world, box, 15, 3, 10, 15, 3, 12, ModBlocks.concrete_slab, 8); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 16, 3, 11, box); + //floor & lining + fillWithBlocks(world, box, 1, 4, 9, 15, 4, 13, ModBlocks.deco_titanium); + fillWithMetadataBlocks(world, box, 0, 4, 8, 16, 4, 8, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); + fillWithBlocks(world, box, 0, 4, 9, 0, 4, 13, ModBlocks.concrete_smooth); + fillWithMetadataBlocks(world, box, 0, 4, 14, 16, 4, 14, ModBlocks.concrete_smooth_stairs, stairMetaS | 4); + fillWithBlocks(world, box, 16, 4, 9, 16, 4, 13, ModBlocks.concrete_smooth); + //walls + fillWithBlocks(world, box, 0, 5, 8, 1, 6, 8, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 4, 5, 8, 12, 6, 8, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 0, 7, 8, 12, 7, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 5, 8, 16, 5, 8, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 15, 7, 8, 16, 7, 8, ModBlocks.concrete_smooth); + + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 5, 9, box); + fillWithBlocks(world, box, 0, 5, 11, 0, 6, 11, ModBlocks.concrete_colored_ext); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 5, 13, box); + fillWithBlocks(world, box, 0, 5, 14, 0, 6, 14, ModBlocks.concrete_colored_ext); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 0, 7, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 0, 7, 11, box); + fillWithBlocks(world, box, 0, 7, 13, 0, 7, 14, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 4, 5, 14, 4, 6, 14, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 6, 5, 14, 6, 6, 14, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 8, 5, 14, 8, 6, 14, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 10, 5, 14, 10, 6, 14, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 12, 5, 14, 12, 6, 14, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 16, 5, 14, 16, 6, 14, ModBlocks.concrete_colored_ext); + fillWithMetadataBlocks(world, box, 1, 7, 14, 3, 7, 14, ModBlocks.concrete_smooth_stairs, 7); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 4, 7, 14, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 6, 7, 14, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 8, 7, 14, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 10, 7, 14, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 7, 14, box); + fillWithMetadataBlocks(world, box, 13, 7, 14, 15, 7, 14, ModBlocks.concrete_smooth_stairs, 7); + + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 5, 13, box); + fillWithBlocks(world, box, 16, 5, 11, 16, 6, 11, ModBlocks.concrete_colored_ext); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 5, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 16, 7, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 16, 7, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 16, 7, 9, box); + //windows + final float limit = 0.9F; + randomlyFillWithBlocks(world, box, rand, limit, 0, 6, 9, 0, 6, 9, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 0, 5, 10, 0, 7, 10, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 0, 5, 12, 0, 7, 12, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 0, 6, 13, 0, 6, 13, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 1, 5, 14, 3, 6, 14, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 5, 5, 14, 5, 7, 14, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 7, 5, 14, 7, 7, 14, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 9, 5, 14, 9, 7, 14, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 11, 5, 14, 11, 7, 14, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 13, 5, 14, 15, 6, 14, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 16, 6, 13, 16, 6, 13, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 16, 5, 12, 16, 7, 12, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 16, 5, 10, 16, 7, 10, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 16, 6, 9, 16, 6, 9, Blocks.glass_pane); + //ceiling with liner + fillWithMetadataBlocks(world, box, 1, 8, 9, 15, 8, 13, ModBlocks.vinyl_tile, 1); + fillWithMetadataBlocks(world, box, 0, 8, 8, 11, 8, 8, ModBlocks.concrete_smooth_stairs, 2); + fillWithBlocks(world, box, 12, 8, 8, 12, 8, 9, ModBlocks.concrete_smooth); + fillWithMetadataBlocks(world, box, 13, 8, 9, 14, 8, 9, ModBlocks.concrete_smooth_stairs, 6); + fillWithBlocks(world, box, 15, 8, 8, 15, 8, 9, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, 2, 16, 8, 8, box); + fillWithBlocks(world, box, 16, 8, 9, 16, 8, 13, ModBlocks.concrete_smooth); + fillWithMetadataBlocks(world, box, 0, 8, 14, 16, 8, 14, ModBlocks.concrete_smooth_stairs, 3); + fillWithBlocks(world, box, 0, 8, 9, 0, 8, 13, ModBlocks.concrete_smooth); + //upper slabs + fillWithBlocks(world, box, 0, 9, 9, 16, 9, 9, ModBlocks.concrete_slab); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 0, 0, 9, 11, box); + fillWithBlocks(world, box, 0, 9, 13, 16, 9, 13, ModBlocks.concrete_slab); + fillWithBlocks(world, box, 1, 9, 10, 15, 9, 12, ModBlocks.concrete_slab); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 0, 16, 9, 11, box); + fillWithBlocks(world, box, 12, 9, 8, 15, 9, 8, ModBlocks.concrete_slab); + + /* middle stairs */ + //stairs + fillWithMetadataBlocks(world, box, 13, 5, 8, 14, 5, 8, ModBlocks.concrete_smooth_stairs, 3); + fillWithMetadataBlocks(world, box, 13, 6, 7, 14, 6, 7, ModBlocks.concrete_smooth_stairs, 3); + fillWithMetadataBlocks(world, box, 12, 5, 7, 15, 5, 7, ModBlocks.concrete_smooth_stairs, 6); + //walls + fillWithBlocks(world, box, 12, 6, 7, 12, 8, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 6, 7, 15, 8, 7, ModBlocks.concrete_smooth); + //ceiling + fillWithMetadataBlocks(world, box, 12, 9, 7, 15, 9, 7, ModBlocks.concrete_smooth_stairs, 3); + fillWithMetadataBlocks(world, box, 13, 9, 6, 14, 9, 6, ModBlocks.concrete_slab, 8); + + /* upper floor */ + //lower slabs + fillWithMetadataBlocks(world, box, 0, 5, 1, 16, 5, 1, ModBlocks.concrete_slab, 8); + fillWithMetadataBlocks(world, box, 1, 5, 2, 1, 5, 4, ModBlocks.concrete_slab, 8); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 0, 5, 3, box); + fillWithMetadataBlocks(world, box, 0, 5, 5, 16, 5, 5, ModBlocks.concrete_slab, 8); + fillWithMetadataBlocks(world, box, 12, 5, 6, 15, 5, 6, ModBlocks.concrete_slab, 8); + fillWithMetadataBlocks(world, box, 5, 5, 2, 6, 5, 4, ModBlocks.concrete_slab, 8); + fillWithMetadataBlocks(world, box, 10, 5, 2, 11, 5, 4, ModBlocks.concrete_slab, 8); + fillWithMetadataBlocks(world, box, 15, 5, 2, 15, 5, 4, ModBlocks.concrete_slab, 8); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 16, 5, 3, box); + //floor and lining + fillWithBlocks(world, box, 1, 6, 1, 15, 6, 5, ModBlocks.deco_titanium); + fillWithBlocks(world, box, 13, 6, 6, 14, 6, 6, ModBlocks.deco_titanium); + fillWithMetadataBlocks(world, box, 0, 6, 0, 16, 6, 0, ModBlocks.concrete_smooth_stairs, 6); + fillWithBlocks(world, box, 0, 6, 1, 0, 6, 5, ModBlocks.concrete_smooth); + fillWithMetadataBlocks(world, box, 0, 6, 6, 11, 6, 6, ModBlocks.concrete_smooth_stairs, 7); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 6, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 15, 6, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, 7, 16, 6, 6, box); + fillWithBlocks(world, box, 16, 6, 1, 16, 6, 5, ModBlocks.concrete_smooth); + //walls + fillWithBlocks(world, box, 0, 7, 0, 0, 8, 0, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 4, 7, 0, 4, 8, 0, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 6, 7, 0, 6, 8, 0, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 10, 7, 0, 10, 8, 0, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 12, 7, 0, 12, 8, 0, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 16, 7, 0, 16, 8, 0, ModBlocks.concrete_colored_ext); + fillWithMetadataBlocks(world, box, 1, 9, 0, 3, 9, 0, ModBlocks.concrete_smooth_stairs, 6); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 4, 9, 0, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 6, 9, 0, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 10, 9, 0, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 9, 0, box); + fillWithMetadataBlocks(world, box, 13, 9, 0, 15, 9, 0, ModBlocks.concrete_smooth_stairs, 6); + + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 7, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 7, 5, box); + fillWithBlocks(world, box, 0, 9, 0, 0, 9, 1, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 0, 9, 5, 0, 9, 6, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 0, 7, 6, 12, 8, 6, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 15, 7, 6, 16, 8, 6, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 1, 9, 6, 12, 9, 6, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 15, 9, 6, box); + + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 7, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 7, 1, box); + fillWithBlocks(world, box, 16, 9, 5, 16, 9, 6, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 16, 9, 0, 16, 9, 1, ModBlocks.concrete_smooth); + //windows + randomlyFillWithBlocks(world, box, rand, limit, 1, 7, 0, 3, 8, 0, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 5, 7, 0, 5, 9, 0, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 7, 7, 0, 9, 9, 0, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 11, 7, 0, 11, 9, 0, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 13, 7, 0, 15, 8, 0, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 0, 8, 1, 0, 8, 1, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 0, 7, 2, 0, 9, 4, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 0, 8, 5, 0, 8, 5, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 16, 8, 5, 16, 8, 5, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 16, 7, 2, 16, 9, 4, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, limit, 16, 8, 1, 16, 8, 1, Blocks.glass_pane); + //ceiling with liner + fillWithMetadataBlocks(world, box, 1, 10, 1, 15, 10, 5, ModBlocks.vinyl_tile, 1); + fillWithMetadataBlocks(world, box, 0, 10, 0, 16, 10, 0, ModBlocks.concrete_smooth_stairs, 2); + fillWithBlocks(world, box, 0, 10, 1, 0, 10, 5, ModBlocks.concrete_smooth); + fillWithMetadataBlocks(world, box, 0, 10, 6, 16, 10, 6, ModBlocks.concrete_smooth_stairs, 3); + fillWithBlocks(world, box, 16, 10, 1, 16, 10, 5, ModBlocks.concrete_smooth); + //slabs + fillWithBlocks(world, box, 0, 11, 1, 16, 11, 1, ModBlocks.concrete_slab); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 0, 0, 11, 3, box); + fillWithBlocks(world, box, 1, 11, 2, 15, 11, 4, ModBlocks.concrete_slab); + fillWithBlocks(world, box, 0, 11, 5, 16, 11, 5, ModBlocks.concrete_slab); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 0, 16, 11, 3, box); + + //stairs (probably wip) + fillWithMetadataBlocks(world, box, 2, 4, 7, 3, 4, 7, ModBlocks.steel_grate, 7); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 4, 4, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 5, 3, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 6, 3, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 7, 2, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 8, 2, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 9, 1, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 10, 1, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 11, 0, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 12, 0, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, 4, 1, 5, 7, box); + final int decoMetaS = getDecoMeta(2); + final int decoMetaN = getDecoMeta(3); + fillWithMetadataBlocks(world, box, 2, 4, 6, 3, 5, 6, ModBlocks.steel_wall, decoMetaS); + fillWithMetadataBlocks(world, box, 4, 4, 6, 5, 4, 6, ModBlocks.steel_wall, decoMetaS); + fillWithMetadataBlocks(world, box, 5, 3, 6, 7, 3, 6, ModBlocks.steel_wall, decoMetaS); + fillWithMetadataBlocks(world, box, 7, 2, 6, 9, 2, 6, ModBlocks.steel_wall, decoMetaS); + fillWithMetadataBlocks(world, box, 9, 1, 6, 11, 1, 6, ModBlocks.steel_wall, decoMetaS); + fillWithMetadataBlocks(world, box, 11, 0, 6, 12, 0, 6, ModBlocks.steel_wall, decoMetaS); + fillWithMetadataBlocks(world, box, 5, 3, 8, 7, 3, 8, ModBlocks.steel_wall, decoMetaN); + fillWithMetadataBlocks(world, box, 7, 2, 8, 9, 2, 8, ModBlocks.steel_wall, decoMetaN); + fillWithMetadataBlocks(world, box, 9, 1, 8, 11, 1, 8, ModBlocks.steel_wall, decoMetaN); + fillWithMetadataBlocks(world, box, 11, 0, 8, 12, 0, 8, ModBlocks.steel_wall, decoMetaN); + + + + + return true; + } + + } +} From b677214381b6a47f4a837f97de3d1c28af714a9b Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 2 Aug 2023 14:44:52 -0700 Subject: [PATCH 002/376] argh --- src/main/java/com/hbm/lib/HbmWorld.java | 2 + .../com/hbm/world/gen/MapGenNTMFeatures.java | 8 +- .../gen/component/BrutalistFeatures.java | 260 +++++++++++++----- .../hbm/world/gen/component/Component.java | 36 --- 4 files changed, 205 insertions(+), 101 deletions(-) diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index 4a24a192f..bc1226544 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -2,6 +2,7 @@ package com.hbm.lib; import com.hbm.world.gen.MapGenNTMFeatures; import com.hbm.world.gen.NTMWorldGenerator; +import com.hbm.world.gen.component.BrutalistFeatures; import com.hbm.world.gen.component.BunkerComponents; import com.hbm.world.gen.component.CivilianFeatures; import com.hbm.world.gen.component.OfficeFeatures; @@ -45,5 +46,6 @@ public class HbmWorld { OfficeFeatures.registerComponents(); RuinFeatures.registerComponents(); BunkerComponents.registerComponents(); + BrutalistFeatures.registerComponents(); } } diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index c5383cca0..fe211813e 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.config.GeneralConfig; import com.hbm.config.StructureConfig; +import com.hbm.world.gen.component.BrutalistFeatures.*; import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import com.hbm.world.gen.component.CivilianFeatures.*; import com.hbm.world.gen.component.OfficeFeatures.*; @@ -112,7 +113,8 @@ public class MapGenNTMFeatures extends MapGenStructure { * Rainfall & Temperature Check */ //TODO: Do something about this so it's nice-looking and easily readable. Plus, test compatibility against mods like BoP - if(rand.nextInt(3) == 0) { //Empty Ruin Structures + + /*if(rand.nextInt(3) == 0) { //Empty Ruin Structures switch(rand.nextInt(4)) { case 0: NTMRuin1 ruin1 = new NTMRuin1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); @@ -158,7 +160,9 @@ public class MapGenNTMFeatures extends MapGenStructure { LargeOfficeCorner officeCorner = new LargeOfficeCorner(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); this.components.add(officeCorner); break; } - } + }*/ + ElevatedLab1 lab1 = new ElevatedLab1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + this.components.add(lab1); if(GeneralConfig.enableDebugMode) { System.out.print("[Debug] StructureStart at " + (chunkX * 16 + 8) + ", " + posY + ", " + (chunkZ * 16 + 8) + "\n[Debug] Components: "); diff --git a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java index 294c713fb..a84db6e61 100644 --- a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java @@ -3,11 +3,19 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.world.gen.NTMWorldGenerator; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.structure.MapGenStructureIO; import net.minecraft.world.gen.structure.StructureBoundingBox; +import net.minecraft.world.gen.structure.StructureComponent; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeDictionary.Type; //civilian features is fucking cringe :P public class BrutalistFeatures { @@ -22,7 +30,7 @@ public class BrutalistFeatures { public ElevatedLab1() { super(); } public ElevatedLab1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 11, 15, 14); + super(rand, minX, minY, minZ, 16, 11, 14); } @Override @@ -32,13 +40,16 @@ public class BrutalistFeatures { return false; } + BiomeGenBase biome = world.getBiomeGenForCoords(this.boundingBox.minX, this.boundingBox.maxX); + DirtyGlass glass = new DirtyGlass(biome, 0.1F, true); + final int stairMetaW = getStairMeta(0); final int stairMetaE = getStairMeta(1); final int stairMetaN = getStairMeta(2); final int stairMetaS = getStairMeta(3); //greater pillars - for(int i = 2; i < 12; i+=5) { + for(int i = 2; i <= 12; i+=5) { fillWithBlocks(world, box, i, 0, 2, i, 1, 4, ModBlocks.concrete_smooth); fillWithBlocks(world, box, i, 4, 2, i, 5, 4, ModBlocks.concrete_smooth); fillWithBlocks(world, box, i+1, 0, 2, i+1, 5, 4, ModBlocks.concrete_pillar); @@ -48,36 +59,36 @@ public class BrutalistFeatures { for(int j = 0; j <= 1; j++) { final int u = j * 4; placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | u, i, 2 + j, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | u, i+=2, 2 + j, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | u, i+2, 2 + j, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW | u, i, 2 + j, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | u, i+=2, 2 + j, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | u, i+2, 2 + j, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | u, i, 2 + j, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | u, i+=2, 2 + j, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | u, i+2, 2 + j, 4, box); } placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i, 2, i, 4, -1, box); - placeFoundationUnderneath(world, ModBlocks.concrete_pillar, 0, i+=1, 2, i+=1, 4, -1, box); - placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i+=2, 2, i+=2, 4, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_pillar, 0, i+1, 2, i+1, 4, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i+2, 2, i+2, 4, -1, box); } //lesser pillars - for(int i = 2; i < 12; i+=5) { + for(int i = 2; i <= 12; i+=5) { fillWithBlocks(world, box, i, 0, 10, i, 1, 12, ModBlocks.concrete_smooth); fillWithBlocks(world, box, i, 3, 10, i, 3, 12, ModBlocks.concrete_smooth); fillWithBlocks(world, box, i+1, 0, 10, i+1, 3, 12, ModBlocks.concrete_pillar); fillWithBlocks(world, box, i+2, 0, 10, i+2, 1, 12, ModBlocks.concrete_smooth); fillWithBlocks(world, box, i+2, 3, 10, i+2, 3, 12, ModBlocks.concrete_smooth); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, i, 2, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, i+=2, 2, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW, i, 2, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE, i+=2, 2, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS, i, 2, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS, i+=2, 2, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, i, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, i+2, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW, i, 2, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE, i+2, 2, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS, i, 2, 12, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS, i+2, 2, 12, box); placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i, 10, i, 12, -1, box); - placeFoundationUnderneath(world, ModBlocks.concrete_pillar, 0, i+=1, 10, i+=1, 12, -1, box); - placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i+=2, 10, i+=2, 12, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_pillar, 0, i+1, 10, i+1, 12, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i+2, 10, i+2, 12, -1, box); } fillWithAir(world, box, 1, 5, 9, 15, 7, 13); @@ -105,7 +116,7 @@ public class BrutalistFeatures { fillWithBlocks(world, box, 0, 5, 8, 1, 6, 8, ModBlocks.concrete_colored_ext); fillWithBlocks(world, box, 4, 5, 8, 12, 6, 8, ModBlocks.concrete_colored_ext); fillWithBlocks(world, box, 0, 7, 8, 12, 7, 8, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 15, 5, 8, 16, 5, 8, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 15, 5, 8, 16, 6, 8, ModBlocks.concrete_colored_ext); fillWithBlocks(world, box, 15, 7, 8, 16, 7, 8, ModBlocks.concrete_smooth); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 5, 9, box); @@ -122,45 +133,44 @@ public class BrutalistFeatures { fillWithBlocks(world, box, 10, 5, 14, 10, 6, 14, ModBlocks.concrete_colored_ext); fillWithBlocks(world, box, 12, 5, 14, 12, 6, 14, ModBlocks.concrete_colored_ext); fillWithBlocks(world, box, 16, 5, 14, 16, 6, 14, ModBlocks.concrete_colored_ext); - fillWithMetadataBlocks(world, box, 1, 7, 14, 3, 7, 14, ModBlocks.concrete_smooth_stairs, 7); + fillWithMetadataBlocks(world, box, 1, 7, 14, 3, 7, 14, ModBlocks.concrete_smooth_stairs, stairMetaS | 4); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 4, 7, 14, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 6, 7, 14, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 8, 7, 14, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 10, 7, 14, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 7, 14, box); - fillWithMetadataBlocks(world, box, 13, 7, 14, 15, 7, 14, ModBlocks.concrete_smooth_stairs, 7); + fillWithMetadataBlocks(world, box, 13, 7, 14, 15, 7, 14, ModBlocks.concrete_smooth_stairs, stairMetaS | 4); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 5, 13, box); fillWithBlocks(world, box, 16, 5, 11, 16, 6, 11, ModBlocks.concrete_colored_ext); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 5, 9, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 16, 7, 13, box); + fillWithBlocks(world, box, 16, 7, 13, 16, 7, 14, ModBlocks.concrete_smooth); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 16, 7, 11, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 16, 7, 9, box); //windows - final float limit = 0.9F; - randomlyFillWithBlocks(world, box, rand, limit, 0, 6, 9, 0, 6, 9, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 0, 5, 10, 0, 7, 10, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 0, 5, 12, 0, 7, 12, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 0, 6, 13, 0, 6, 13, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 1, 5, 14, 3, 6, 14, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 5, 5, 14, 5, 7, 14, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 7, 5, 14, 7, 7, 14, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 9, 5, 14, 9, 7, 14, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 11, 5, 14, 11, 7, 14, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 13, 5, 14, 15, 6, 14, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 16, 6, 13, 16, 6, 13, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 16, 5, 12, 16, 7, 12, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 16, 5, 10, 16, 7, 10, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 16, 6, 9, 16, 6, 9, Blocks.glass_pane); + fillWithRandomizedBlocks(world, box, 0, 6, 9, 0, 6, 9, rand, glass); + fillWithRandomizedBlocks(world, box, 0, 5, 10, 0, 7, 10, rand, glass); + fillWithRandomizedBlocks(world, box, 0, 5, 12, 0, 7, 12, rand, glass); + fillWithRandomizedBlocks(world, box, 0, 6, 13, 0, 6, 13, rand, glass); + fillWithRandomizedBlocks(world, box, 1, 5, 14, 3, 6, 14, rand, glass); + fillWithRandomizedBlocks(world, box, 5, 5, 14, 5, 7, 14, rand, glass); + fillWithRandomizedBlocks(world, box, 7, 5, 14, 7, 7, 14, rand, glass); + fillWithRandomizedBlocks(world, box, 9, 5, 14, 9, 7, 14, rand, glass); + fillWithRandomizedBlocks(world, box, 11, 5, 14, 11, 7, 14, rand, glass); + fillWithRandomizedBlocks(world, box, 13, 5, 14, 15, 6, 14, rand, glass); + fillWithRandomizedBlocks(world, box, 16, 6, 13, 16, 6, 13, rand, glass); + fillWithRandomizedBlocks(world, box, 16, 5, 12, 16, 7, 12, rand, glass); + fillWithRandomizedBlocks(world, box, 16, 5, 10, 16, 7, 10, rand, glass); + fillWithRandomizedBlocks(world, box, 16, 6, 9, 16, 6, 9, rand, glass); //ceiling with liner fillWithMetadataBlocks(world, box, 1, 8, 9, 15, 8, 13, ModBlocks.vinyl_tile, 1); - fillWithMetadataBlocks(world, box, 0, 8, 8, 11, 8, 8, ModBlocks.concrete_smooth_stairs, 2); + fillWithMetadataBlocks(world, box, 0, 8, 8, 11, 8, 8, ModBlocks.concrete_smooth_stairs, stairMetaN); fillWithBlocks(world, box, 12, 8, 8, 12, 8, 9, ModBlocks.concrete_smooth); - fillWithMetadataBlocks(world, box, 13, 8, 9, 14, 8, 9, ModBlocks.concrete_smooth_stairs, 6); + fillWithMetadataBlocks(world, box, 13, 8, 9, 14, 8, 9, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); fillWithBlocks(world, box, 15, 8, 8, 15, 8, 9, ModBlocks.concrete_smooth); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, 2, 16, 8, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, 16, 8, 8, box); fillWithBlocks(world, box, 16, 8, 9, 16, 8, 13, ModBlocks.concrete_smooth); - fillWithMetadataBlocks(world, box, 0, 8, 14, 16, 8, 14, ModBlocks.concrete_smooth_stairs, 3); + fillWithMetadataBlocks(world, box, 0, 8, 14, 16, 8, 14, ModBlocks.concrete_smooth_stairs, stairMetaS); fillWithBlocks(world, box, 0, 8, 9, 0, 8, 13, ModBlocks.concrete_smooth); //upper slabs fillWithBlocks(world, box, 0, 9, 9, 16, 9, 9, ModBlocks.concrete_slab); @@ -172,14 +182,14 @@ public class BrutalistFeatures { /* middle stairs */ //stairs - fillWithMetadataBlocks(world, box, 13, 5, 8, 14, 5, 8, ModBlocks.concrete_smooth_stairs, 3); - fillWithMetadataBlocks(world, box, 13, 6, 7, 14, 6, 7, ModBlocks.concrete_smooth_stairs, 3); - fillWithMetadataBlocks(world, box, 12, 5, 7, 15, 5, 7, ModBlocks.concrete_smooth_stairs, 6); + fillWithMetadataBlocks(world, box, 13, 5, 8, 14, 5, 8, ModBlocks.concrete_smooth_stairs, stairMetaS); + fillWithMetadataBlocks(world, box, 13, 6, 7, 14, 6, 7, ModBlocks.concrete_smooth_stairs, stairMetaS); + fillWithMetadataBlocks(world, box, 12, 5, 7, 15, 5, 7, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); //walls fillWithBlocks(world, box, 12, 6, 7, 12, 8, 7, ModBlocks.concrete_smooth); fillWithBlocks(world, box, 15, 6, 7, 15, 8, 7, ModBlocks.concrete_smooth); //ceiling - fillWithMetadataBlocks(world, box, 12, 9, 7, 15, 9, 7, ModBlocks.concrete_smooth_stairs, 3); + fillWithMetadataBlocks(world, box, 12, 9, 7, 15, 9, 7, ModBlocks.concrete_smooth_stairs, stairMetaS); fillWithMetadataBlocks(world, box, 13, 9, 6, 14, 9, 6, ModBlocks.concrete_slab, 8); /* upper floor */ @@ -196,12 +206,12 @@ public class BrutalistFeatures { //floor and lining fillWithBlocks(world, box, 1, 6, 1, 15, 6, 5, ModBlocks.deco_titanium); fillWithBlocks(world, box, 13, 6, 6, 14, 6, 6, ModBlocks.deco_titanium); - fillWithMetadataBlocks(world, box, 0, 6, 0, 16, 6, 0, ModBlocks.concrete_smooth_stairs, 6); + fillWithMetadataBlocks(world, box, 0, 6, 0, 16, 6, 0, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); fillWithBlocks(world, box, 0, 6, 1, 0, 6, 5, ModBlocks.concrete_smooth); - fillWithMetadataBlocks(world, box, 0, 6, 6, 11, 6, 6, ModBlocks.concrete_smooth_stairs, 7); + fillWithMetadataBlocks(world, box, 0, 6, 6, 11, 6, 6, ModBlocks.concrete_smooth_stairs, stairMetaS | 4); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 6, 6, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 15, 6, 6, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, 7, 16, 6, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 16, 6, 6, box); fillWithBlocks(world, box, 16, 6, 1, 16, 6, 5, ModBlocks.concrete_smooth); //walls fillWithBlocks(world, box, 0, 7, 0, 0, 8, 0, ModBlocks.concrete_colored_ext); @@ -210,12 +220,12 @@ public class BrutalistFeatures { fillWithBlocks(world, box, 10, 7, 0, 10, 8, 0, ModBlocks.concrete_colored_ext); fillWithBlocks(world, box, 12, 7, 0, 12, 8, 0, ModBlocks.concrete_colored_ext); fillWithBlocks(world, box, 16, 7, 0, 16, 8, 0, ModBlocks.concrete_colored_ext); - fillWithMetadataBlocks(world, box, 1, 9, 0, 3, 9, 0, ModBlocks.concrete_smooth_stairs, 6); + fillWithMetadataBlocks(world, box, 1, 9, 0, 3, 9, 0, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 4, 9, 0, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 6, 9, 0, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 10, 9, 0, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 9, 0, box); - fillWithMetadataBlocks(world, box, 13, 9, 0, 15, 9, 0, ModBlocks.concrete_smooth_stairs, 6); + fillWithMetadataBlocks(world, box, 13, 9, 0, 15, 9, 0, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 7, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 7, 5, box); @@ -232,22 +242,22 @@ public class BrutalistFeatures { fillWithBlocks(world, box, 16, 9, 5, 16, 9, 6, ModBlocks.concrete_smooth); fillWithBlocks(world, box, 16, 9, 0, 16, 9, 1, ModBlocks.concrete_smooth); //windows - randomlyFillWithBlocks(world, box, rand, limit, 1, 7, 0, 3, 8, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 5, 7, 0, 5, 9, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 7, 7, 0, 9, 9, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 11, 7, 0, 11, 9, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 13, 7, 0, 15, 8, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 0, 8, 1, 0, 8, 1, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 0, 7, 2, 0, 9, 4, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 0, 8, 5, 0, 8, 5, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 16, 8, 5, 16, 8, 5, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 16, 7, 2, 16, 9, 4, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, limit, 16, 8, 1, 16, 8, 1, Blocks.glass_pane); + fillWithRandomizedBlocks(world, box, 1, 7, 0, 3, 8, 0, rand, glass); + fillWithRandomizedBlocks(world, box, 5, 7, 0, 5, 9, 0, rand, glass); + fillWithRandomizedBlocks(world, box, 7, 7, 0, 9, 9, 0, rand, glass); + fillWithRandomizedBlocks(world, box, 11, 7, 0, 11, 9, 0, rand, glass); + fillWithRandomizedBlocks(world, box, 13, 7, 0, 15, 8, 0, rand, glass); + fillWithRandomizedBlocks(world, box, 0, 8, 1, 0, 8, 1, rand, glass); + fillWithRandomizedBlocks(world, box, 0, 7, 2, 0, 9, 4, rand, glass); + fillWithRandomizedBlocks(world, box, 0, 8, 5, 0, 8, 5, rand, glass); + fillWithRandomizedBlocks(world, box, 16, 8, 5, 16, 8, 5, rand, glass); + fillWithRandomizedBlocks(world, box, 16, 7, 2, 16, 9, 4, rand, glass); + fillWithRandomizedBlocks(world, box, 16, 8, 1, 16, 8, 1, rand, glass); //ceiling with liner fillWithMetadataBlocks(world, box, 1, 10, 1, 15, 10, 5, ModBlocks.vinyl_tile, 1); - fillWithMetadataBlocks(world, box, 0, 10, 0, 16, 10, 0, ModBlocks.concrete_smooth_stairs, 2); + fillWithMetadataBlocks(world, box, 0, 10, 0, 16, 10, 0, ModBlocks.concrete_smooth_stairs, stairMetaN); fillWithBlocks(world, box, 0, 10, 1, 0, 10, 5, ModBlocks.concrete_smooth); - fillWithMetadataBlocks(world, box, 0, 10, 6, 16, 10, 6, ModBlocks.concrete_smooth_stairs, 3); + fillWithMetadataBlocks(world, box, 0, 10, 6, 16, 10, 6, ModBlocks.concrete_smooth_stairs, stairMetaS); fillWithBlocks(world, box, 16, 10, 1, 16, 10, 5, ModBlocks.concrete_smooth); //slabs fillWithBlocks(world, box, 0, 11, 1, 16, 11, 1, ModBlocks.concrete_slab); @@ -267,9 +277,10 @@ public class BrutalistFeatures { placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 10, 1, 7, box); placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 11, 0, 7, box); placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 12, 0, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, 4, 1, 5, 7, box); final int decoMetaS = getDecoMeta(2); final int decoMetaN = getDecoMeta(3); + final int decoMetaE = getDecoMeta(4); + placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, decoMetaE, 1, 5, 7, box); fillWithMetadataBlocks(world, box, 2, 4, 6, 3, 5, 6, ModBlocks.steel_wall, decoMetaS); fillWithMetadataBlocks(world, box, 4, 4, 6, 5, 4, 6, ModBlocks.steel_wall, decoMetaS); fillWithMetadataBlocks(world, box, 5, 3, 6, 7, 3, 6, ModBlocks.steel_wall, decoMetaS); @@ -281,11 +292,134 @@ public class BrutalistFeatures { fillWithMetadataBlocks(world, box, 9, 1, 8, 11, 1, 8, ModBlocks.steel_wall, decoMetaN); fillWithMetadataBlocks(world, box, 11, 0, 8, 12, 0, 8, ModBlocks.steel_wall, decoMetaN); + /* Deco */ + //webs + randomlyFillWithBlocks(world, box, rand, 0.15F, 0, 6, 7, 10, 8, 7, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.4F, 11, 5, 7, 11, 9, 7, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.4F, 16, 5, 7, 16, 9, 7, Blocks.web); + + placeWebs(world, box, rand, 1, 5, 9, 15, 7, 13, 0.10F, 0.025F); + placeWebs(world, box, rand, 13, 7, 6, 14, 8, 8, 0.20F, 0F); + placeWebs(world, box, rand, 1, 7, 1, 15, 9, 5, 0.10F, 0.025F); + + //test + //plan is: biome-dependent overgrowth, integrated neatly + /*generateShrubs(world, box, rand, 0, 0, 16, 1, 4); + generateShrubs(world, box, rand, 0, 13, 16, 14, 2); + generateShrubs(world, box, rand, 0, 4, 16, 8, 2);*/ return true; } + protected void placeWebs(World world, StructureBoundingBox box, Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, float chance, float bigWebChance) { + if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) + return; + + for(int x = minX; x <= maxX; x++) { + + for(int z = minZ; z <= maxZ; z++) { + int posX = getXWithOffset(x, z); + int posZ = getZWithOffset(x, z); + + if(posX >= box.minX && posX <= box.maxX && posZ >= box.minZ && posZ <= box.maxZ) { + for(int y = minY; y <= maxY; y++) { + int posY = getYWithOffset(y); + + if(world.getBlock(posX, posY, posZ) == Blocks.web) continue; + + boolean onWall = (x == minX || x == maxX || z == minZ || z == maxZ); + boolean onCeiling = (y == minY || y == maxY); //floor or ceiling, really + //this will go over the subchunk boundaries, but trees already do that all the time; it's only really an issue if it causes updates or + //goes over the 2x2 chunk area entirely + if(onWall && onCeiling && rand.nextFloat() <= bigWebChance) { + + for(int j = Math.max(minY, y - 1); j <= Math.min(maxY, y + 1); j++) { //on one hand, eugh. on the other, good-looking webs! + int fac = 2 - Math.abs(j - y); //rounds out the edges with distance from starting block + + int maxI = Math.min(maxX, x + 1); + for(int i = Math.max(minX, x - 1); i <= maxI; i++) { + + int maxK = Math.min(maxZ, z + 1); + for(int k = Math.max(minZ, z - 1); k <= maxK; k++) { + int posI = getXWithOffset(i, k); + int posJ = getYWithOffset(j); + int posK = getZWithOffset(i, k); + + if(world.isAirBlock(posI, posJ, posK) && (Math.abs(i - x) != fac || Math.abs(k - z) != fac || rand.nextInt(2) == 0)) + world.setBlock(posI, posJ, posK, Blocks.web, 0, 2); + + } + } + } + } else if((onWall || onCeiling) && rand.nextFloat() <= chance) + world.setBlock(posX, posY, posZ, Blocks.web, 0, 2); + } + } + } + } + } + + /*protected void generateShrubs(World world, StructureBoundingBox box, Random rand, int minX, int minZ, int maxX, int maxZ, int startY) { + int startX = Math.min(this.getXWithOffset(minX, minZ), this.getXWithOffset(maxX, maxZ)); + int startZ = Math.min(this.getZWithOffset(minX, minZ), this.getZWithOffset(maxX, maxZ)); + int endX = Math.max(this.getXWithOffset(minX, minZ), this.getXWithOffset(maxX, maxZ)) - startX; + int endZ = Math.max(this.getZWithOffset(minX, minZ), this.getZWithOffset(maxX, maxZ)) - startZ; + + int attempts = rand.nextInt(2); + WorldGenShrub shrub = new WorldGenShrub(0, 0); + + for(int i = 0; i < attempts; i++) { + int posX = startX + rand.nextInt(endX <= 0 ? 1 : endX); + int posY = this.getYWithOffset(startY); + int posZ = startZ + rand.nextInt(endZ <= 0 ? 1 : endZ); + + if(box.isVecInside(posX, posY, posZ)) { + int brake = 0; + + do { + Block block = world.getBlock(posX, posY, posZ); + + if(!((block.isAir(world, posX, posY, posZ) || block.isFoliage(world, posX, posY, posZ) || block.isLeaves(world, posX, posY, posZ)) && posY > 0)) { + shrub.generate(world, rand, posX, posY, posZ); + break; + } + + posY--; + } while(brake++ <= 15); + } + } + }*/ } -} + + //the block selector in general is kinda mid, i might just replace it entirely + public static class DirtyGlass extends StructureComponent.BlockSelector { + protected boolean webs; + protected float chance; + + public DirtyGlass(BiomeGenBase biome, float chance, boolean webs) { + if(NTMWorldGenerator.isBiomeOfTypes(biome, Type.WASTELAND, Type.JUNGLE, Type.SANDY, Type.SAVANNA)) + this.selectedBlockMetaData = 12; //super dirty + else if(BiomeDictionary.isBiomeOfType(biome, Type.COLD)) + this.selectedBlockMetaData = 8; //fogged-up + else + this.selectedBlockMetaData = 7; //dirty + + this.field_151562_a = Blocks.stained_glass_pane; + this.chance = chance; + this.webs = webs; + } + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + if(rand.nextFloat() <= chance) { + if(webs && rand.nextInt(3) == 0) + this.field_151562_a = Blocks.web; + else + this.field_151562_a = Blocks.air; + } else + this.field_151562_a = Blocks.stained_glass_pane; + } + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 8ffa1292e..848af4d28 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -520,42 +520,6 @@ abstract public class Component extends StructureComponent { } } - /** Fills an area with cobwebs. Cobwebs will concentrate on corners and surfaces without floating cobwebs. */ - protected void fillWithCobwebs(World world, StructureBoundingBox box, Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ) { - - if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) - return; - - for(int x = minX; x <= maxX; x++) { - - for(int z = minZ; z <= maxZ; z++) { - int posX = getXWithOffset(x, z); - int posZ = getZWithOffset(x, z); - - if(posX >= box.minX && posX <= box.maxX && posZ >= box.minZ && posZ <= box.maxZ) { - for(int y = minY; y <= maxY; y++) { - int posY = getYWithOffset(y); - Block genTarget = world.getBlock(posX, posY, posZ); - - if(!genTarget.isAir(world, posX, posY, posZ)) - continue; - - int validNeighbors = 0; - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - Block neighbor = world.getBlock(posX + dir.offsetX, posY + dir.offsetY, posZ + dir.offsetZ); - - if(neighbor.getMaterial().blocksMovement() || neighbor instanceof BlockWeb) - validNeighbors++; - } - - if(validNeighbors > 5 || (validNeighbors > 1 && rand.nextInt(6 - validNeighbors) == 0)) - world.setBlock(posX, posY, posZ, Blocks.web); - } - } - } - } - } - /** getXWithOffset & getZWithOffset Methods that are actually fixed **/ //Turns out, this entire time every single minecraft structure is mirrored instead of rotated when facing East and North //Also turns out, it's a scarily easy fix that they somehow didn't see *entirely* From 65d4999989cf96f84e01faada8b2c09c1e0cbc44 Mon Sep 17 00:00:00 2001 From: Vaern Date: Thu, 3 Aug 2023 22:13:24 -0700 Subject: [PATCH 003/376] decoration --- .../java/com/hbm/items/tool/ItemWandD.java | 8 +- .../java/com/hbm/lib/HbmChestContents.java | 34 +++-- .../com/hbm/world/gen/NTMWorldGenerator.java | 9 ++ .../gen/component/BrutalistFeatures.java | 139 ++++++++++++++++-- .../hbm/world/gen/component/Component.java | 2 +- 5 files changed, 167 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 4c80ccab4..68f1b404c 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -5,12 +5,15 @@ import java.util.List; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; +import com.hbm.world.gen.MapGenNTMFeatures; +import com.hbm.world.gen.component.BrutalistFeatures.ElevatedLab1; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -32,7 +35,10 @@ public class ItemWandD extends Item { vnt.setSFX(new ExplosionEffectStandard()); vnt.explode();*/ - PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + ElevatedLab1 lab = new ElevatedLab1(world.rand, pos.blockX, pos.blockY, pos.blockZ); + + lab.addComponentParts(world, world.rand, new StructureBoundingBox(pos.blockX, 1, pos.blockZ, pos.blockX + 32, 255, pos.blockZ + 32)); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index cdd0a61cd..957b10940 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -415,7 +415,7 @@ public class HbmChestContents { public static ItemStack generateOfficeBook(Random rand) { //TODO rework this lore in general String key; int pages; - switch(rand.nextInt(10)) { + switch(rand.nextInt(5)) { case 0: key = "resignation_note"; pages = 3; break; case 1: @@ -426,20 +426,32 @@ public class HbmChestContents { key = "memo_schrab_rd"; pages = 4; break; case 4: key = "memo_schrab_nuke"; pages = 3; break; - case 5: - key = "bf_bomb_1"; pages = 4; break; - case 6: - key = "bf_bomb_2"; pages = 6; break; - case 7: - key = "bf_bomb_3"; pages = 6; break; - case 8: - key = "bf_bomb_4"; pages = 5; break; - case 9: - key = "bf_bomb_5"; pages = 9; break; default: return null; } return ItemBookLore.createBook(key, pages, 0x6BC8FF, 0x0A0A0A); } + + public static ItemStack generateLabBook(Random rand) { + String key; + int pages; + + switch(rand.nextInt(4)) { + case 0: + key = "bf_bomb_1"; pages = 4; break; + case 1: + key = "bf_bomb_2"; pages = 6; break; + case 2: + key = "bf_bomb_3"; pages = 6; break; + case 3: + key = "bf_bomb_4"; pages = 5; break; + case 4: + key = "bf_bomb_5"; pages = 9; break; + default: + return null; + } + + return ItemBookLore.createBook(key, pages, 0x1E1E1E, 0x46EA44); + } } diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index a672e32a3..a3b812d37 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -120,4 +120,13 @@ public class NTMWorldGenerator implements IWorldGenerator { return true; } + + /** utility method, same as above but inclusive. useful for catch-alls, like the dirty glass structures have */ + public static boolean doesBiomeHaveTypes(BiomeGenBase biome, Type... types) { + for(Type type : types) { + if(isBiomeOfType(biome, type)) return true; + } + + return false; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java index a84db6e61..01c9252a4 100644 --- a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java @@ -3,11 +3,13 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.lib.HbmChestContents; import com.hbm.world.gen.NTMWorldGenerator; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.feature.WorldGenShrub; @@ -27,20 +29,36 @@ public class BrutalistFeatures { //might be other than a lab, placeholder :P public static class ElevatedLab1 extends Component { + protected int type; + public ElevatedLab1() { super(); } public ElevatedLab1(Random rand, int minX, int minY, int minZ) { super(rand, minX, minY, minZ, 16, 11, 14); + + this.type = rand.nextInt(1); + } + + /** Set to NBT */ + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setInteger("type", type); + } + + /** Get from NBT */ + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + this.type = nbt.getInteger("type"); } @Override public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { - if(!this.setAverageHeight(world, box, this.boundingBox.minY)) { + if(hpos == -1 && !this.setAverageHeight(world, box, this.boundingBox.minY)) { return false; } - BiomeGenBase biome = world.getBiomeGenForCoords(this.boundingBox.minX, this.boundingBox.maxX); + BiomeGenBase biome = world.getBiomeGenForCoords(this.boundingBox.minX, this.boundingBox.minZ); DirtyGlass glass = new DirtyGlass(biome, 0.1F, true); final int stairMetaW = getStairMeta(0); @@ -293,15 +311,108 @@ public class BrutalistFeatures { fillWithMetadataBlocks(world, box, 11, 0, 8, 12, 0, 8, ModBlocks.steel_wall, decoMetaN); /* Deco */ + //lights + for(int j = 4; j <= 12; j+=4) + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, j, 8, 11, box); + for(int j = 4; j <= 12; j+=4) + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, j, 10, 3, box); + //doors + placeDoor(world, box, ModBlocks.door_office, 1, false, false, 3, 5, 8); + placeDoor(world, box, ModBlocks.door_office, 1, true, false, 2, 5, 8); + + final int decoModelMetaN = getDecoModelMeta(0); + final int decoModelMetaS = getDecoModelMeta(1); + final int decoMetaW = getDecoMeta(5); + switch(this.type) { + default: + //lower floor + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 1, 5, 9, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 1, 5, 11, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 1, 6, 11, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 1, 5, 13, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 2, 5, 13, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 1, 6, 13, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaS | 4, 5, 5, 9, box); //desk 1 + fillWithMetadataBlocks(world, box, 5, 5, 10, 5, 5, 11, Blocks.spruce_stairs, stairMetaE | 4); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 6, 5, 11, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 7, 5, 11, box); + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaS, 7, 5, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaN, 6, 6, 11, box); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairMetaW | 4, 11, 5, 9, box); //desk 2 + fillWithMetadataBlocks(world, box, 9, 5, 9, 10, 5, 9, Blocks.dark_oak_stairs, stairMetaS | 4); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 13, 9, 5, 10, box); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairMetaN | 4, 9, 5, 11, box); + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaW, 11, 5, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaS, 10, 6, 9, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 13, 5, 13, box); //desk 3 + fillWithMetadataBlocks(world, box, 14, 5, 13, 15, 5, 13, Blocks.wooden_slab, 9); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 15, 5, 12, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaS | 4, 15, 5, 11, box); + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaE, 14, 5, 12, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaN, 14, 6, 13, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 15, 5, 10, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 15, 5, 9, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 15, 6, 9, box); + //loot + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelMetaS, 8, 5, 9, HbmChestContents.officeTrash, 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelMetaN, 12, 5, 13, HbmChestContents.filingCabinet, 6); + //there were supposed to be paintings included, but i don't want to figure out how to + //force the art type on both the server and clientside + //upper floor + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 15, 7, 5, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 15, 7, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 14, 7, 1, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 14, 8, 1, box); + fillWithBlocks(world, box, 8, 7, 3, 11, 7, 3, ModBlocks.tile_lab); //central table + placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, decoMetaW, 12, 7, 3, box); + fillWithMetadataBlocks(world, box, 8, 7, 2, 11, 7, 2, ModBlocks.steel_wall, decoMetaS); + placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, decoMetaE, 7, 7, 3, box); + fillWithMetadataBlocks(world, box, 8, 7, 4, 11, 7, 4, ModBlocks.steel_wall, decoMetaN); + fillWithBlocks(world, box, 10, 7, 5, 12, 7, 5, ModBlocks.cm_sheet); //machine 1 + placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 12, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 11, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 10, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_sheet, 0, 12, 9, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_port, 0, 11, 9, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_sheet, 0, 10, 9, 5, box); + placeBlockAtCurrentPosition(world, Blocks.stone_button, getButtonMeta(4), 11, 9, 4, box); + fillWithMetadataBlocks(world, box, 9, 7, 5, 9, 8, 5, ModBlocks.steel_wall, decoMetaW); //locker + placeBlockAtCurrentPosition(world, ModBlocks.steel_roof, decoMetaN, 8, 9, 5, box); + fillWithMetadataBlocks(world, box, 7, 7, 5, 7, 8, 5, ModBlocks.steel_wall, decoMetaE); + fillWithBlocks(world, box, 4, 7, 5, 6, 7, 5, ModBlocks.cm_block); //machine 2 + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 6, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_circuit, 0, 5, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 4, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_engine, 0, 6, 9, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 9, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_engine, 0, 4, 9, 5, box); + placeLever(world, box, 4, false, 5, 8, 4); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 4, 7, 1, box); //table + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 5, 7, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 1, 7, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 2, 7, 5, box); //desk + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 1, 7, 5, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 2, 2, 7, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaN, 2, 8, 5, box); + //loot + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelMetaS, 13, 7, 1, HbmChestContents.filingCabinet, 4); + if(rand.nextInt(2) == 0) + generateLoreBook(world, box, 13, 7, 1, 4, HbmChestContents.generateLabBook(rand)); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 8, 7, 5, HbmChestContents.labVault, 4); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 8, 8, 5, HbmChestContents.machineParts, 5); + break; + case 1: + + } //webs randomlyFillWithBlocks(world, box, rand, 0.15F, 0, 6, 7, 10, 8, 7, Blocks.web); randomlyFillWithBlocks(world, box, rand, 0.4F, 11, 5, 7, 11, 9, 7, Blocks.web); randomlyFillWithBlocks(world, box, rand, 0.4F, 16, 5, 7, 16, 9, 7, Blocks.web); - placeWebs(world, box, rand, 1, 5, 9, 15, 7, 13, 0.10F, 0.025F); + placeWebs(world, box, rand, 1, 5, 9, 15, 7, 13, 0.10F, 0.01F); placeWebs(world, box, rand, 13, 7, 6, 14, 8, 8, 0.20F, 0F); - placeWebs(world, box, rand, 1, 7, 1, 15, 9, 5, 0.10F, 0.025F); + placeWebs(world, box, rand, 1, 7, 1, 15, 9, 5, 0.10F, 0.01F); //test //plan is: biome-dependent overgrowth, integrated neatly @@ -347,13 +458,13 @@ public class BrutalistFeatures { int posJ = getYWithOffset(j); int posK = getZWithOffset(i, k); - if(world.isAirBlock(posI, posJ, posK) && (Math.abs(i - x) != fac || Math.abs(k - z) != fac || rand.nextInt(2) == 0)) + if(world.isAirBlock(posI, posJ, posK) && (Math.abs(i - x) != fac || Math.abs(k - z) != fac || rand.nextInt(3) == 0)) world.setBlock(posI, posJ, posK, Blocks.web, 0, 2); } } } - } else if((onWall || onCeiling) && rand.nextFloat() <= chance) + } else if((onWall || onCeiling) && world.isAirBlock(posX, posY, posZ) && rand.nextFloat() <= chance) world.setBlock(posX, posY, posZ, Blocks.web, 0, 2); } } @@ -397,14 +508,15 @@ public class BrutalistFeatures { public static class DirtyGlass extends StructureComponent.BlockSelector { protected boolean webs; protected float chance; + protected int meta; //argh public DirtyGlass(BiomeGenBase biome, float chance, boolean webs) { - if(NTMWorldGenerator.isBiomeOfTypes(biome, Type.WASTELAND, Type.JUNGLE, Type.SANDY, Type.SAVANNA)) - this.selectedBlockMetaData = 12; //super dirty - else if(BiomeDictionary.isBiomeOfType(biome, Type.COLD)) - this.selectedBlockMetaData = 8; //fogged-up + if(BiomeDictionary.isBiomeOfType(biome, Type.COLD)) + this.meta = 12; //super dirty + else if(NTMWorldGenerator.doesBiomeHaveTypes(biome, Type.WASTELAND, Type.JUNGLE, Type.SANDY, Type.SAVANNA, Type.SWAMP)) + this.meta = 8; //fogged-up else - this.selectedBlockMetaData = 7; //dirty + this.meta = 7; //dirty this.field_151562_a = Blocks.stained_glass_pane; this.chance = chance; @@ -414,12 +526,15 @@ public class BrutalistFeatures { @Override public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { if(rand.nextFloat() <= chance) { + this.selectedBlockMetaData = 0; if(webs && rand.nextInt(3) == 0) this.field_151562_a = Blocks.web; else this.field_151562_a = Blocks.air; - } else + } else { this.field_151562_a = Blocks.stained_glass_pane; + this.selectedBlockMetaData = meta; + } } } } \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 848af4d28..b112e11a6 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -47,7 +47,7 @@ abstract public class Component extends StructureComponent { this.sizeX = maxX; this.sizeY = maxY; this.sizeZ = maxZ; - this.coordBaseMode = rand.nextInt(4); + this.coordBaseMode = 0;//rand.nextInt(4); switch(this.coordBaseMode) { case 0: From 034c74a55d4545c0515219776a05920580c12989 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 5 Aug 2023 18:59:07 -0700 Subject: [PATCH 004/376] boo womp --- .../gen/component/BrutalistFeatures.java | 93 ++++++++++++++++++- .../hbm/world/gen/component/Component.java | 1 + 2 files changed, 89 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java index 01c9252a4..13d1c1c4e 100644 --- a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java @@ -36,7 +36,7 @@ public class BrutalistFeatures { public ElevatedLab1(Random rand, int minX, int minY, int minZ) { super(rand, minX, minY, minZ, 16, 11, 14); - this.type = rand.nextInt(1); + this.type = rand.nextInt(2); } /** Set to NBT */ @@ -322,9 +322,11 @@ public class BrutalistFeatures { final int decoModelMetaN = getDecoModelMeta(0); final int decoModelMetaS = getDecoModelMeta(1); + final int decoModelMetaW = getDecoModelMeta(2); + final int decoModelMetaE = getDecoModelMeta(3); final int decoMetaW = getDecoMeta(5); switch(this.type) { - default: + default: //machinery lab //lower floor placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 1, 5, 9, box); placeBlockAtCurrentPosition(world, Blocks.fence, 0, 1, 5, 11, box); @@ -401,8 +403,89 @@ public class BrutalistFeatures { generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 8, 7, 5, HbmChestContents.labVault, 4); generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 8, 8, 5, HbmChestContents.machineParts, 5); break; - case 1: + case 1: //hazmat + //lower floor + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaS | 4, 1, 5, 9, box); //table + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 10, 1, 5, 10, box); + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaN | 4, 1, 5, 11, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 1, 6, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 1, 5, 13, box); + fillWithMetadataBlocks(world, box, 5, 5, 9, 11, 5, 9, ModBlocks.concrete_asbestos_stairs, stairMetaS | 4); //con. desk + fillWithMetadataBlocks(world, box, 5, 5, 10, 7, 5, 10, ModBlocks.concrete_slab, 10); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_asbestos_stairs, stairMetaN | 4, 7, 5, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 10, 11, 5, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_asbestos_stairs, stairMetaN | 4, 11, 5, 11, box); + fillWithMetadataBlocks(world, box, 4, 6, 9, 4, 7, 9, ModBlocks.steel_wall, decoMetaE); //bank of tape recorders + fillWithMetadataBlocks(world, box, 5, 6, 9, 5, 7, 9, ModBlocks.tape_recorder, decoMetaN); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 6, 6, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 7, 6, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 6, 7, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 7, 7, 9, box); + placeBlockAtCurrentPosition(world, Blocks.lever, 3, 6, 7, 10, box); + placeBlockAtCurrentPosition(world, Blocks.stone_button, 3, 7, 6, 10, box); + fillWithMetadataBlocks(world, box, 8, 6, 9, 8, 7, 9, ModBlocks.steel_corner, decoMetaW); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 9, 6, 9, box); + fillWithMetadataBlocks(world, box, 10, 6, 9, 10, 7, 9, ModBlocks.steel_corner, decoMetaN); + placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 11, 6, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 11, 7, 9, box); + fillWithMetadataBlocks(world, box, 12, 6, 9, 12, 7, 9, ModBlocks.steel_wall, decoMetaW); + placeBlockAtCurrentPosition(world, Blocks.stone_button, 3, 11, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 5, 5, 11, box); //chairs and computers + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 8, 5, 12, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 10, 5, 11, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 6, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 7, 5, 12, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 10, 5, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaE, 7, 6, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 11, 6, 11, box); + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaE | 4, 14, 5, 13, box); //table + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaW | 4, 15, 5, 13, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 15, 5, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 15, 5, 9, box); + //loot + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelMetaS | 1, 9, 7, 9, HbmChestContents.filingCabinet, 3); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 14, 6, 13, HbmChestContents.modGeneric, 3); + //upper floor + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaW | 4, 15, 7, 5, box); //desks + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaE | 4, 15, 7, 4, box); + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaS | 4, 15, 7, 2, box); + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaW | 4, 15, 7, 1, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 13, 7, 2, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 14, 7, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 15, 8, 4, box); + for(int i = 3; i <= 9; i+=6) { //hazmat tables + fillWithMetadataBlocks(world, box, i, 7, 3, i, 7, 5, ModBlocks.concrete_asbestos_stairs, stairMetaW | 4); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_asbestos_stairs, stairMetaN | 4, i+1, 7, 3, box); + fillWithMetadataBlocks(world, box, i+2, 7, 3, i+2, 7, 5, ModBlocks.concrete_asbestos_stairs, stairMetaE | 4); + fillWithMetadataBlocks(world, box, i+1, 7, 4, i+1, 7, 5, ModBlocks.concrete_colored_ext, 5); + } + placeBlockAtCurrentPosition(world, ModBlocks.block_electrical_scrap, 0, 10, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 4, 8, 4, box); + fillWithMetadataBlocks(world, box, 6, 7, 5, 8, 7, 5, ModBlocks.cm_block, 1); //machine + placeBlockAtCurrentPosition(world, ModBlocks.cm_circuit, 2, 6, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_port, 1, 7, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_circuit, 2, 8, 8, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_sheet, 1, 6, 9, 5, box); + placeBlockAtCurrentPosition(world, Blocks.redstone_lamp, 0, 7, 9, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_sheet, 1, 8, 9, 5, box); + placeBlockAtCurrentPosition(world, Blocks.lever, 4, 7, 8, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.geiger, decoMetaE, 6, 7, 4, box); //geiger + if(rand.nextInt(2) == 0) + placeBlockAtCurrentPosition(world, ModBlocks.crate_metal, 0, 6, 7, 1, box); + else + placeRandomBobble(world, box, rand, 6, 7, 1 ); + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaS | 4, 1, 7, 1, box); //desk + placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaE | 4, 2, 7, 1, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 1, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 2, 8, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 1, 7, 5, box); + //loot + generateInvContents(world, box, rand, ModBlocks.crate_iron, 8, 7, 3, HbmChestContents.nuclearFuel, 8); + generateInvContents(world, box, rand, ModBlocks.crate_iron, 2, 7, 5, HbmChestContents.nukeTrash, 6); + //other crate + placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 2, 8, 5, box); + break; } //webs @@ -512,9 +595,9 @@ public class BrutalistFeatures { public DirtyGlass(BiomeGenBase biome, float chance, boolean webs) { if(BiomeDictionary.isBiomeOfType(biome, Type.COLD)) - this.meta = 12; //super dirty - else if(NTMWorldGenerator.doesBiomeHaveTypes(biome, Type.WASTELAND, Type.JUNGLE, Type.SANDY, Type.SAVANNA, Type.SWAMP)) this.meta = 8; //fogged-up + else if(NTMWorldGenerator.doesBiomeHaveTypes(biome, Type.WASTELAND, Type.JUNGLE, Type.SANDY, Type.SAVANNA, Type.SWAMP)) + this.meta = 12; //super dirty else this.meta = 7; //dirty diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index b112e11a6..338bcd959 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -377,6 +377,7 @@ abstract public class Component extends StructureComponent { return generateInvContents(world, box, rand, block, 0, featureX, featureY, featureZ, content, amount); } + //TODO: explore min / max item generations: e.g., between 3 and 5 separate items are generated protected boolean generateInvContents(World world, StructureBoundingBox box, Random rand, Block block, int meta, int featureX, int featureY, int featureZ, WeightedRandomChestContent[] content, int amount) { int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); From 4f7659a5dca1c5d33cd69b1d702f73a938dd44f1 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 8 Aug 2023 21:48:44 -0700 Subject: [PATCH 005/376] funny --- .../java/com/hbm/items/tool/ItemWandD.java | 9 +- .../com/hbm/world/gen/MapGenNTMFeatures.java | 8 +- .../world/gen/component/CivilianFeatures.java | 530 +++++++++--------- .../hbm/world/gen/component/Component.java | 18 +- .../world/gen/component/OfficeFeatures.java | 118 ++-- .../hbm/world/gen/component/RuinFeatures.java | 190 +++---- 6 files changed, 432 insertions(+), 441 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 68f1b404c..fa0fe9bcc 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -36,9 +36,14 @@ public class ItemWandD extends Item { vnt.explode();*/ //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); - ElevatedLab1 lab = new ElevatedLab1(world.rand, pos.blockX, pos.blockY, pos.blockZ); - lab.addComponentParts(world, world.rand, new StructureBoundingBox(pos.blockX, 1, pos.blockZ, pos.blockX + 32, 255, pos.blockZ + 32)); + int i = pos.blockX >> 4; + int j = pos.blockZ >> 4; + + MapGenNTMFeatures.Start start = new MapGenNTMFeatures.Start(world, world.rand, i, j); + i = (i << 4) + 8; + j = (j << 4) + 8; + start.generateStructure(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32)); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index fe211813e..79c863242 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -114,7 +114,7 @@ public class MapGenNTMFeatures extends MapGenStructure { */ //TODO: Do something about this so it's nice-looking and easily readable. Plus, test compatibility against mods like BoP - /*if(rand.nextInt(3) == 0) { //Empty Ruin Structures + if(rand.nextInt(3) == 0) { //Empty Ruin Structures switch(rand.nextInt(4)) { case 0: NTMRuin1 ruin1 = new NTMRuin1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); @@ -160,9 +160,9 @@ public class MapGenNTMFeatures extends MapGenStructure { LargeOfficeCorner officeCorner = new LargeOfficeCorner(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); this.components.add(officeCorner); break; } - }*/ - ElevatedLab1 lab1 = new ElevatedLab1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); - this.components.add(lab1); + } + //ElevatedLab1 lab1 = new ElevatedLab1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + //this.components.add(lab1); if(GeneralConfig.enableDebugMode) { System.out.print("[Debug] StructureStart at " + (chunkX * 16 + 8) + ", " + posY + ", " + (chunkZ * 16 + 8) + "\n[Debug] Components: "); diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 26d7faaba..66301f925 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -88,27 +88,27 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, 9, 6, -1, box); //Walls - this.fillWithRandomizedBlocks(world, box, 0, 0, 0, sizeX, 0, 0, false, rand, RandomSandstone); //Back Wall + this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 9, 0, 0, false, rand, RandomSandstone); //Back Wall this.fillWithRandomizedBlocks(world, box, 0, 1, 0, 1, 1, 0, false, rand, RandomSandstone); this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 2, 1, 0, box); this.fillWithRandomizedBlocks(world, box, 3, 1, 0, 5, 1, 0, false, rand, RandomSandstone); this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 6, 1, 0, box); this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 7, 1, 0, box); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX, 1, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 0, 2, 0, sizeX - 2, 2, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 1, sizeZ, false, rand, RandomSandstone); //Left Wall + this.fillWithRandomizedBlocks(world, box, 9 - 1, 1, 0, 9, 1, 0, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 0, 2, 0, 9 - 2, 2, 0, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 1, 6, false, rand, RandomSandstone); //Left Wall this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 0, 2, 1, box); - this.fillWithMetadataBlocks(world, box, 0, 2, 3, 0, 2, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 1, 1, sizeZ, false, rand, RandomSandstone); //Front Wall - this.fillWithRandomizedBlocks(world, box, 3, 0, sizeZ, sizeX, 1, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 1, 2, sizeZ, 3, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithMetadataBlocks(world, box, 4, 2, sizeZ, 5, 2, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 2, 2, sizeZ, box); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 0, sizeX, 0, sizeZ, false, rand, RandomSandstone); //Right Wall - this.randomlyFillWithBlocks(world, box, rand, 0.65F, sizeX, 1, 1, sizeX, 1, sizeZ - 1, Blocks.sand, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 0, 2, 3, 0, 2, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 6, 1, 1, 6, false, rand, RandomSandstone); //Front Wall + this.fillWithRandomizedBlocks(world, box, 3, 0, 6, 9, 1, 6, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 1, 2, 6, 3, 2, 6, false, rand, RandomSandstone); + this.fillWithMetadataBlocks(world, box, 4, 2, 6, 5, 2, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 9 - 2, 2, 6, box); + this.fillWithRandomizedBlocks(world, box, 9, 0, 0, 9, 0, 6, false, rand, RandomSandstone); //Right Wall + this.randomlyFillWithBlocks(world, box, rand, 0.65F, 9, 1, 1, 9, 1, 6 - 1, Blocks.sand, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 4, 0, 1, 4, 1, 3, false, rand, RandomSandstone); this.placeBlockAtCurrentPosition(world, ModBlocks.reinforced_sand, 0, 4, 0, 4, box); @@ -120,9 +120,9 @@ public class CivilianFeatures { this.fillWithBlocks(world, box, 5, 0, 1, 6, 0, 1, ModBlocks.crate, Blocks.air, false); this.placeBlockAtCurrentPosition(world, Blocks.sand, 0, 7, 0, 1, box); if(rand.nextFloat() <= 0.25) - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_metal, 0, sizeX - 1, 0, 1, box); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 2, 3, 0, sizeZ - 1, Blocks.sand, Blocks.air, false); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 5, 0, 2, sizeX - 1, 0, sizeZ - 1, Blocks.sand, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_metal, 0, 9 - 1, 0, 1, box); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 2, 3, 0, 6 - 1, Blocks.sand, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 5, 0, 2, 9 - 1, 0, 6 - 1, Blocks.sand, Blocks.air, false); return true; } @@ -168,10 +168,10 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, 6, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.sandstone, 0, 9, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, 6, 15, -1, box); + placeFoundationUnderneath(world, Blocks.sandstone, 0, 9, 0, 15, 9, -1, box); - this.fillWithAir(world, box, 1, 0, 1, 5, sizeY, sizeZ - 1); + this.fillWithAir(world, box, 1, 0, 1, 5, 5, 9 - 1); //House 1 this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 6, 1, 0, false, rand, RandomSandstone); //Back Wall @@ -181,72 +181,72 @@ public class CivilianFeatures { this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 4, 2, 0, box); this.fillWithRandomizedBlocks(world, box, 5, 2, 0, 6, 2, 0, false, rand, RandomSandstone); this.fillWithRandomizedBlocks(world, box, 0, 3, 0, 6, 3, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 3, sizeZ, false, rand, RandomSandstone); //Left Wall - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 6, 1, sizeZ, false, rand, RandomSandstone); //Front Wall - this.fillWithRandomizedBlocks(world, box, 1, 2, sizeZ, 1, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithBlocks(world, box, 2, 2, sizeZ, 4, 2, sizeZ, Blocks.fence, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 5, 2, sizeZ, 6, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 1, 3, sizeZ, 6, 3, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 6, 0, sizeZ - 1, 6, 3, sizeZ - 1, false, rand, RandomSandstone); //Right Wall - this.fillWithRandomizedBlocks(world, box, 6, 0, sizeZ - 2, 6, 0, sizeZ - 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 6, 3, sizeZ - 2, 6, 3, sizeZ - 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 6, 0, 1, 6, 3, sizeZ - 3, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 3, 9, false, rand, RandomSandstone); //Left Wall + this.fillWithRandomizedBlocks(world, box, 1, 0, 9, 6, 1, 9, false, rand, RandomSandstone); //Front Wall + this.fillWithRandomizedBlocks(world, box, 1, 2, 9, 1, 2, 9, false, rand, RandomSandstone); + this.fillWithBlocks(world, box, 2, 2, 9, 4, 2, 9, Blocks.fence, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 5, 2, 9, 6, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 1, 3, 9, 6, 3, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 6, 0, 9 - 1, 6, 3, 9 - 1, false, rand, RandomSandstone); //Right Wall + this.fillWithRandomizedBlocks(world, box, 6, 0, 9 - 2, 6, 0, 9 - 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 6, 3, 9 - 2, 6, 3, 9 - 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 6, 0, 1, 6, 3, 9 - 3, false, rand, RandomSandstone); - this.fillWithBlocks(world, box, 1, 0, 1, 5, 0, sizeZ - 1, Blocks.sandstone, Blocks.air, false); //Floor - //this.fillWithRandomizedBlocks(world, box, 1, sizeY - 1, 0, 5, sizeY - 1, sizeZ, false, rand, RandomSandstone); //Ceiling - this.fillWithBlocks(world, box, 1, sizeY - 1, 0, 5, sizeY - 1, sizeZ, Blocks.sandstone, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 0, sizeY - 1, 0, 0, sizeY - 1, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); //Roof - this.fillWithMetadataBlocks(world, box, 6, sizeY - 1, 0, 6, sizeY - 1, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 2, sizeY, 0, 4, sizeY, 0, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 3, sizeY, 1, 3, sizeY, 2, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 3, sizeY, 4, 3, sizeY, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 3, sizeY, sizeZ - 1, box); - this.fillWithMetadataBlocks(world, box, 2, sizeY, sizeZ, 4, sizeY, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 1, 0, 1, 5, 0, 9 - 1, Blocks.sandstone, Blocks.air, false); //Floor + //this.fillWithRandomizedBlocks(world, box, 1, 5 - 1, 0, 5, 5 - 1, 9, false, rand, RandomSandstone); //Ceiling + this.fillWithBlocks(world, box, 1, 5 - 1, 0, 5, 5 - 1, 9, Blocks.sandstone, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 0, 5 - 1, 0, 0, 5 - 1, 9, Blocks.stone_slab, 1, Blocks.air, 0, false); //Roof + this.fillWithMetadataBlocks(world, box, 6, 5 - 1, 0, 6, 5 - 1, 9, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 2, 5, 0, 4, 5, 0, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 3, 5, 1, 3, 5, 2, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 3, 5, 4, 3, 5, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 3, 5, 9 - 1, box); + this.fillWithMetadataBlocks(world, box, 2, 5, 9, 4, 5, 9, Blocks.stone_slab, 1, Blocks.air, 0, false); //House 2 - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 0, sizeX, 0, 0, false, rand, RandomSandstone); //Back Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 1, 0, sizeX - 2, 1, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, 0, sizeX - 6, 2, 0, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 6, 2, 0, box); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 3, 2, 0, box); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 1, sizeX - 6, 3, 1, false, rand, RandomSandstone); //Left Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 2, sizeX - 6, 0, 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 3, 2, sizeX - 6, 3, sizeZ - 1, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 6, sizeY - 1, 2, box); - this.fillWithMetadataBlocks(world, box, sizeX - 6, sizeY - 1, 4, sizeX - 6, sizeY - 1, sizeZ - 2, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 3, sizeX - 6, 1, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 2, sizeX - 6, 0, 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, 3, sizeX - 6, 2, 3, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, sizeX - 6, 2, 4, box); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, 5, sizeX - 6, 2, 5, false, rand, RandomSandstone); - this.fillWithBlocks(world, box, sizeX - 6, 2, sizeZ - 3, sizeX - 6, 2, sizeZ - 2, Blocks.fence, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, sizeZ - 1, sizeX - 6, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 5, 0, sizeZ, sizeX, 1, sizeZ, false, rand, RandomSandstone); //Front Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 5, 2, sizeZ, sizeX - 5, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 2, sizeZ, sizeX, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 0, sizeZ - 1, false, rand, RandomSandstone); //Right Wall - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 3, sizeX, 1, 3, false, rand, RandomSandstone); - this.fillWithMetadataBlocks(world, box, sizeX, 1, 4, sizeX, 1, 5, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, sizeZ - 1, sizeX, 1, sizeZ - 3, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX, 1, sizeZ - 1, box); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 0, 15, 0, 0, false, rand, RandomSandstone); //Back Wall + this.fillWithRandomizedBlocks(world, box, 15 - 6, 1, 0, 15 - 2, 1, 0, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 0, 15 - 6, 2, 0, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15 - 6, 2, 0, box); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15 - 3, 2, 0, box); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 1, 15 - 6, 3, 1, false, rand, RandomSandstone); //Left Wall + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 2, 15 - 6, 0, 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 3, 2, 15 - 6, 3, 9 - 1, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15 - 6, 5 - 1, 2, box); + this.fillWithMetadataBlocks(world, box, 15 - 6, 5 - 1, 4, 15 - 6, 5 - 1, 9 - 2, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 3, 15 - 6, 1, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 2, 15 - 6, 0, 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 3, 15 - 6, 2, 3, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 15 - 6, 2, 4, box); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 5, 15 - 6, 2, 5, false, rand, RandomSandstone); + this.fillWithBlocks(world, box, 15 - 6, 2, 9 - 3, 15 - 6, 2, 9 - 2, Blocks.fence, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 9 - 1, 15 - 6, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 5, 0, 9, 15, 1, 9, false, rand, RandomSandstone); //Front Wall + this.fillWithRandomizedBlocks(world, box, 15 - 5, 2, 9, 15 - 5, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 1, 2, 9, 15, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15, 0, 1, 15, 0, 9 - 1, false, rand, RandomSandstone); //Right Wall + this.fillWithRandomizedBlocks(world, box, 15, 1, 3, 15, 1, 3, false, rand, RandomSandstone); + this.fillWithMetadataBlocks(world, box, 15, 1, 4, 15, 1, 5, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 15, 1, 9 - 1, 15, 1, 9 - 3, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15, 1, 9 - 1, box); - this.fillWithBlocks(world, box, sizeX - 5, 0, 1, sizeX - 1, 0, sizeZ - 1, Blocks.sandstone, Blocks.air, false); //Floor + this.fillWithBlocks(world, box, 15 - 5, 0, 1, 15 - 1, 0, 9 - 1, Blocks.sandstone, Blocks.air, false); //Floor //Loot & Decorations //House 1 int eastMeta = this.getDecoMeta(4); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_boiler_off, 4, 1, 1, 1, box); this.fillWithBlocks(world, box, 1, 2, 1, 1, 3, 1, ModBlocks.deco_pipe_quad_rusted, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 1, sizeY, 1, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 1, 5, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 2, 1, 3, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 1, 1, sizeZ - 4, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 1, 1, 9 - 4, box); if(!hasPlacedLoot[0]) { - this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 1, 1, sizeZ - 2, box); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.machineParts, (TileEntityChest)world.getTileEntity(this.getXWithOffset(1, sizeZ - 2), - this.getYWithOffset(1), this.getZWithOffset(1, sizeZ - 2)), 10); + this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 1, 1, 9 - 2, box); + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.machineParts, (TileEntityChest)world.getTileEntity(this.getXWithOffset(1, 9 - 2), + this.getYWithOffset(1), this.getZWithOffset(1, 9 - 2)), 10); this.hasPlacedLoot[0] = true; } - this.fillWithBlocks(world, box, 4, 1, sizeZ - 1, 5, 1, sizeZ - 1, ModBlocks.crate, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 1, 9 - 1, 5, 1, 9 - 1, ModBlocks.crate, Blocks.air, false); this.fillWithMetadataBlocks(world, box, 5, 1, 4, 5, 3, 4, ModBlocks.steel_scaffold, eastMeta < 4 ? 0 : 8, Blocks.air, 0, false); this.fillWithMetadataBlocks(world, box, 5, 1, 6, 5, 3, 6, ModBlocks.steel_scaffold, eastMeta < 4 ? 0 : 8, Blocks.air, 0, false); this.placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 5, 1, 5, box); @@ -254,20 +254,20 @@ public class CivilianFeatures { //House 2 if(!hasPlacedLoot[1]) { - this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), sizeX - 5, 1, 1, box); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(this.getXWithOffset(sizeX - 5, 1), - this.getYWithOffset(1), this.getZWithOffset(sizeX - 5, 1)), 10); + this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 15 - 5, 1, 1, box); + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(this.getXWithOffset(15 - 5, 1), + this.getYWithOffset(1), this.getZWithOffset(15 - 5, 1)), 10); this.hasPlacedLoot[1] = true; } - this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), sizeX - 5, 1, 4, box); - TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(sizeX - 5, 4), this.getYWithOffset(1), this.getZWithOffset(sizeX - 5, 4)); + this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), 15 - 5, 1, 4, box); + TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(15 - 5, 4), this.getYWithOffset(1), this.getZWithOffset(15 - 5, 4)); if(bobble != null) { bobble.type = BobbleType.values()[rand.nextInt(BobbleType.values().length - 1) + 1]; bobble.markDirty(); } - this.randomlyFillWithBlocks(world, box, rand, 0.25F, sizeX - 4, 1, 1, sizeX - 1, 1, sizeZ - 1, Blocks.sand, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 15 - 4, 1, 1, 15 - 1, 1, 9 - 1, Blocks.sand, Blocks.air, false); return true; } @@ -314,86 +314,86 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ - 2, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 3, 6, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 9, 7 - 2, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 3, 6, 9, 7, -1, box); - if(this.getBlockAtCurrentPosition(world, 2, 0, sizeZ - 1, box).getMaterial().isReplaceable() - || this.getBlockAtCurrentPosition(world, 2, 0, sizeZ - 1, box) == Blocks.air) { - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 2, sizeZ - 1, 2, sizeZ - 1, -1, box); - this.placeBlockAtCurrentPosition(world, Blocks.stone_brick_stairs, getStairMeta(0), 2, 0, sizeZ - 1, box); + if(this.getBlockAtCurrentPosition(world, 2, 0, 7 - 1, box).getMaterial().isReplaceable() + || this.getBlockAtCurrentPosition(world, 2, 0, 7 - 1, box) == Blocks.air) { + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 2, 7 - 1, 2, 7 - 1, -1, box); + this.placeBlockAtCurrentPosition(world, Blocks.stone_brick_stairs, getStairMeta(0), 2, 0, 7 - 1, box); } - this.fillWithAir(world, box, 1, 0, 1, sizeX - 1, sizeY, 4); - this.fillWithAir(world, box, 4, 0, 4, sizeX - 1, sizeY, sizeZ - 1); - this.fillWithAir(world, box, 3, 1, sizeZ - 1, 3, 2, sizeZ - 1); + this.fillWithAir(world, box, 1, 0, 1, 9 - 1, 4, 4); + this.fillWithAir(world, box, 4, 0, 4, 9 - 1, 4, 7 - 1); + this.fillWithAir(world, box, 3, 1, 7 - 1, 3, 2, 7 - 1); int pillarMeta = this.getPillarMeta(8); //Pillars this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 9, 0, 0, 9, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithMetadataBlocks(world, box, 0, 0, 1, 0, 0, 4, ModBlocks.concrete_pillar, pillarMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX, 0, 1, sizeX, 0, sizeZ - 1, ModBlocks.concrete_pillar, pillarMeta, Blocks.air, 0, false); - this.fillWithBlocks(world, box, 0, 0, sizeZ - 2, 0, 3, sizeZ - 2, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, 3, 0, sizeZ - 2, 3, 3, sizeZ - 2, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, 3, 0, sizeZ, 3, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 9, 0, 1, 9, 0, 7 - 1, ModBlocks.concrete_pillar, pillarMeta, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 0, 0, 7 - 2, 0, 3, 7 - 2, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 3, 0, 7 - 2, 3, 3, 7 - 2, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 3, 0, 7, 3, 3, 7, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 9, 0, 7, 9, 3, 7, ModBlocks.concrete_pillar, Blocks.air, false); //Walls - this.fillWithRandomizedBlocks(world, box, 1, 0, 0, sizeX - 1, sizeY - 1, 0, false, rand, RandomConcreteBricks); //Back Wall - this.fillWithRandomizedBlocks(world, box, 0, sizeY, 0, sizeX, sizeY, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, sizeY - 1, 4, false, rand, RandomConcreteBricks); //Left Wall - this.fillWithRandomizedBlocks(world, box, 0, sizeY, 0, 0, sizeY, sizeZ - 2, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ - 2, 2, sizeY, sizeZ - 2, false, rand, RandomConcreteBricks); //Front Wall Pt. 1 - this.placeBlockAtCurrentPosition(world, ModBlocks.brick_concrete_broken, 0, 3, sizeY, sizeZ - 2, box); - this.fillWithRandomizedBlocks(world, box, 3, sizeY - 1, sizeZ - 1, 3, sizeY, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 4, 0, sizeZ, sizeX - 1, 1, sizeZ, false, rand, RandomConcreteBricks); //Front Wall Pt. 2 - this.fillWithRandomizedBlocks(world, box, 4, 2, sizeZ, 4, 3, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 2, sizeZ, sizeX - 1, 3, sizeZ, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.75F, 5, 2, sizeZ, sizeX - 2, 3, sizeZ, Blocks.glass_pane, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 3, sizeY, sizeZ, sizeX, sizeY, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 1, sizeX, sizeY, sizeZ - 1, false, rand, RandomConcreteBricks); //Right Wall + this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 9 - 1, 4 - 1, 0, false, rand, RandomConcreteBricks); //Back Wall + this.fillWithRandomizedBlocks(world, box, 0, 4, 0, 9, 4, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 4 - 1, 4, false, rand, RandomConcreteBricks); //Left Wall + this.fillWithRandomizedBlocks(world, box, 0, 4, 0, 0, 4, 7 - 2, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 0, 7 - 2, 2, 4, 7 - 2, false, rand, RandomConcreteBricks); //Front Wall Pt. 1 + this.placeBlockAtCurrentPosition(world, ModBlocks.brick_concrete_broken, 0, 3, 4, 7 - 2, box); + this.fillWithRandomizedBlocks(world, box, 3, 4 - 1, 7 - 1, 3, 4, 7 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 4, 0, 7, 9 - 1, 1, 7, false, rand, RandomConcreteBricks); //Front Wall Pt. 2 + this.fillWithRandomizedBlocks(world, box, 4, 2, 7, 4, 3, 7, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 9 - 1, 2, 7, 9 - 1, 3, 7, false, rand, RandomConcreteBricks); + this.randomlyFillWithBlocks(world, box, rand, 0.75F, 5, 2, 7, 9 - 2, 3, 7, Blocks.glass_pane, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 3, 4, 7, 9, 4, 7, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 9, 1, 1, 9, 4, 7 - 1, false, rand, RandomConcreteBricks); //Right Wall //Floor & Ceiling - this.fillWithRandomizedBlocks(world, box, 1, 0, 1, sizeX - 1, 0, 4, false, rand, RandomLabTiles); //Floor - this.fillWithRandomizedBlocks(world, box, 4, 0, sizeZ - 2, sizeX - 1, 0, sizeZ - 1, false, rand, RandomLabTiles); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 3, 0, sizeZ - 1, box); + this.fillWithRandomizedBlocks(world, box, 1, 0, 1, 9 - 1, 0, 4, false, rand, RandomLabTiles); //Floor + this.fillWithRandomizedBlocks(world, box, 4, 0, 7 - 2, 9 - 1, 0, 7 - 1, false, rand, RandomLabTiles); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 3, 0, 7 - 1, box); - this.fillWithBlocks(world, box, 1, sizeY - 1, 1, 1, sizeY, 4, ModBlocks.reinforced_glass, Blocks.air, false); //Ceiling - this.fillWithBlocks(world, box, 2, sizeY, 1, sizeX - 1, sizeY, 4, ModBlocks.brick_light, Blocks.air, false); - this.fillWithBlocks(world, box, 4, sizeY, sizeZ - 2, sizeX - 1, sizeY, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); + this.fillWithBlocks(world, box, 1, 4 - 1, 1, 1, 4, 4, ModBlocks.reinforced_glass, Blocks.air, false); //Ceiling + this.fillWithBlocks(world, box, 2, 4, 1, 9 - 1, 4, 4, ModBlocks.brick_light, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 4, 7 - 2, 9 - 1, 4, 7 - 1, ModBlocks.brick_light, Blocks.air, false); //Decorations & Loot this.fillWithMetadataBlocks(world, box, 1, 1, 1, 1, 1, 4, Blocks.dirt, 2, Blocks.air, 0, false); int westDecoMeta = this.getDecoMeta(5); this.fillWithMetadataBlocks(world, box, 2, 1, 1, 2, 1, 4, ModBlocks.steel_wall, westDecoMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 2, sizeY - 1, 1, 2, sizeY - 1, 4, ModBlocks.steel_wall, westDecoMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 2, 4 - 1, 1, 2, 4 - 1, 4, ModBlocks.steel_wall, westDecoMeta, Blocks.air, 0, false); for(byte i = 0; i < 4; i++) { this.placeBlockAtCurrentPosition(world, ModBlocks.plant_flower, i, 1, 2, 1 + i, box); } int doorMeta = this.getMetadataWithOffset(Blocks.wooden_door, 2); - this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 3, 1, sizeZ - 1, box); - ItemDoor.placeDoorBlock(world, this.getXWithOffset(3, sizeZ - 1), this.getYWithOffset(1), this.getZWithOffset(3, sizeZ - 1), doorMeta, ModBlocks.door_office); + this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 3, 1, 7 - 1, box); + ItemDoor.placeDoorBlock(world, this.getXWithOffset(3, 7 - 1), this.getYWithOffset(1), this.getZWithOffset(3, 7 - 1), doorMeta, ModBlocks.door_office); int northDecoMeta = this.getDecoMeta(3); - this.fillWithMetadataBlocks(world, box, 5, sizeY - 1, 1, sizeX - 1, sizeY - 1, 1, ModBlocks.steel_scaffold, westDecoMeta < 4 ? 0 : 8, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 5, sizeY - 1, 2, sizeX - 1, sizeY - 1, 2, ModBlocks.steel_wall, northDecoMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 5, 4 - 1, 1, 9 - 1, 4 - 1, 1, ModBlocks.steel_scaffold, westDecoMeta < 4 ? 0 : 8, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 5, 4 - 1, 2, 9 - 1, 4 - 1, 2, ModBlocks.steel_wall, northDecoMeta, Blocks.air, 0, false); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, northDecoMeta, 5, 1, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_microwave, northDecoMeta, 5, 2, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.deco_titanium, 0, 6, 1, 1, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.machine_shredder, 0, sizeX - 2, 1, 1, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.deco_titanium, 0, sizeX - 1, 1, 1, box); - this.fillWithBlocks(world, box, 5, 1, 3, sizeX - 1, 1, 3, ModBlocks.deco_titanium, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.machine_shredder, 0, 9 - 2, 1, 1, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.deco_titanium, 0, 9 - 1, 1, 1, box); + this.fillWithBlocks(world, box, 5, 1, 3, 9 - 1, 1, 3, ModBlocks.deco_titanium, Blocks.air, false); if(!hasPlacedLoot[0]) { this.placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 6, 2, 3, box); LootGenerator.lootMedicine(world, this.getXWithOffset(6, 3), this.getYWithOffset(2), this.getZWithOffset(6, 3)); this.hasPlacedLoot[0] = true; } - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, sizeX - 1, 1, sizeZ - 2, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 9 - 1, 1, 7 - 2, box); if(!hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, sizeX - 1, 1, sizeZ - 1, HbmChestContents.modGeneric, 8); + this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 9 - 1, 1, 7 - 1, HbmChestContents.modGeneric, 8); } return true; @@ -442,134 +442,134 @@ public class CivilianFeatures { this.boundingBox.offset(0, -7, 0); //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ - 2, 6, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 7, 6, sizeZ, 6, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 12, 8 - 2, 6, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 7, 6, 8, 6, box); - if(this.getBlockAtCurrentPosition(world, sizeX - 3, sizeY - 4, 7, box).getMaterial().isReplaceable() - || this.getBlockAtCurrentPosition(world, sizeX - 3, sizeY - 4, 7, box) == Blocks.air) { + if(this.getBlockAtCurrentPosition(world, 12 - 3, 11 - 4, 7, box).getMaterial().isReplaceable() + || this.getBlockAtCurrentPosition(world, 12 - 3, 11 - 4, 7, box) == Blocks.air) { int stairMeta = this.getMetadataWithOffset(Blocks.stone_brick_stairs, 2); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, sizeX - 3, 7, sizeX - 2, 7, sizeY - 4, box); - this.fillWithMetadataBlocks(world, box, sizeX - 3, sizeY - 4, 7, sizeX - 2, sizeY - 4, 7, Blocks.stone_brick_stairs, stairMeta, Blocks.air, 0, false); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 12 - 3, 7, 12 - 2, 7, 11 - 4, box); + this.fillWithMetadataBlocks(world, box, 12 - 3, 11 - 4, 7, 12 - 2, 11 - 4, 7, Blocks.stone_brick_stairs, stairMeta, Blocks.air, 0, false); } - this.fillWithAir(world, box, 1, sizeY - 4, 1, sizeX - 1, sizeY, sizeZ - 3); - this.fillWithAir(world, box, 1, sizeY - 4, sizeZ - 2, 5, sizeY, sizeZ - 1); - this.fillWithAir(world, box, sizeX - 3, sizeY - 3, sizeZ - 2, sizeX - 2, sizeY - 2, sizeZ - 2); + this.fillWithAir(world, box, 1, 11 - 4, 1, 12 - 1, 11, 8 - 3); + this.fillWithAir(world, box, 1, 11 - 4, 8 - 2, 5, 11, 8 - 1); + this.fillWithAir(world, box, 12 - 3, 11 - 3, 8 - 2, 12 - 2, 11 - 2, 8 - 2); this.fillWithAir(world, box, 5, 5, 1, 6, 6, 2); - this.fillWithAir(world, box, 2, 0, 2, sizeX - 2, 3, sizeZ - 2); + this.fillWithAir(world, box, 2, 0, 2, 12 - 2, 3, 8 - 2); //Walls - this.fillWithRandomizedBlocks(world, box, 0, sizeY - 4, 0, sizeX, sizeY, 0, false, rand, RandomSuperConcrete); //Back Wall - this.fillWithRandomizedBlocks(world, box, 0, sizeY - 4, 0, 0, sizeY, sizeZ, false, rand, RandomSuperConcrete); //Left Wall - this.fillWithRandomizedBlocks(world, box, 1, sizeY - 4, sizeZ, 5, sizeY - 4, sizeZ, false, rand, RandomSuperConcrete); //Front Wall pt. 1 - this.fillWithBlocks(world, box, 1, sizeY - 3, sizeZ, 1, sizeY - 1, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, sizeY - 4, sizeZ, 2, sizeY - 1, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 3, sizeY - 3, sizeZ, 3, sizeY - 1, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 4, sizeY - 4, sizeZ, 4, sizeY - 1, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 5, sizeY - 3, sizeZ, 5, sizeY - 1, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, sizeY, sizeZ, 5, sizeY, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 6, sizeY - 4, sizeZ - 1, 6, sizeY, sizeZ, false, rand, RandomSuperConcrete); //Front Wall pt. 2 - this.fillWithRandomizedBlocks(world, box, 6, sizeY - 4, sizeZ - 2, 7, sizeY - 2, sizeZ - 2, false, rand, RandomSuperConcrete); //Front Wall pt. 3 - this.fillWithBlocks(world, box, 6, sizeY - 1, sizeZ - 2, 7, sizeY - 1, sizeZ - 2, ModBlocks.concrete_super_broken, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, sizeY - 4, sizeZ - 2, sizeX, sizeY - 4, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, sizeY - 3, sizeZ - 2, sizeX - 4, sizeY, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX - 3, sizeY - 1, sizeZ - 2, sizeX - 2, sizeY, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, sizeY - 4, sizeZ - 2, sizeX, sizeY, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY - 4, 1, sizeX, sizeY - 4, sizeZ - 3, false, rand, RandomSuperConcrete); //Right Wall - this.fillWithBlocks(world, box, sizeX, sizeY - 3, sizeZ - 3, sizeX, sizeY - 1, sizeZ - 3, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY - 3, 4, sizeX, sizeY - 1, 4, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, sizeX, sizeY - 3, 3, sizeX, sizeY - 1, 3, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY - 3, 2, sizeX, sizeY - 1, 2, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, sizeX, sizeY - 3, 1, sizeX, sizeY - 1, 1, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY, 1, sizeX, sizeY, sizeZ - 3, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 0, 11 - 4, 0, 12, 11, 0, false, rand, RandomSuperConcrete); //Back Wall + this.fillWithRandomizedBlocks(world, box, 0, 11 - 4, 0, 0, 11, 8, false, rand, RandomSuperConcrete); //Left Wall + this.fillWithRandomizedBlocks(world, box, 1, 11 - 4, 8, 5, 11 - 4, 8, false, rand, RandomSuperConcrete); //Front Wall pt. 1 + this.fillWithBlocks(world, box, 1, 11 - 3, 8, 1, 11 - 1, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 2, 11 - 4, 8, 2, 11 - 1, 8, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 3, 11 - 3, 8, 3, 11 - 1, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 4, 11 - 4, 8, 4, 11 - 1, 8, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 5, 11 - 3, 8, 5, 11 - 1, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 11, 8, 5, 11, 8, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 6, 11 - 4, 8 - 1, 6, 11, 8, false, rand, RandomSuperConcrete); //Front Wall pt. 2 + this.fillWithRandomizedBlocks(world, box, 6, 11 - 4, 8 - 2, 7, 11 - 2, 8 - 2, false, rand, RandomSuperConcrete); //Front Wall pt. 3 + this.fillWithBlocks(world, box, 6, 11 - 1, 8 - 2, 7, 11 - 1, 8 - 2, ModBlocks.concrete_super_broken, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12 - 4, 11 - 4, 8 - 2, 12, 11 - 4, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12 - 4, 11 - 3, 8 - 2, 12 - 4, 11, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12 - 3, 11 - 1, 8 - 2, 12 - 2, 11, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12 - 1, 11 - 4, 8 - 2, 12, 11, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12, 11 - 4, 1, 12, 11 - 4, 8 - 3, false, rand, RandomSuperConcrete); //Right Wall + this.fillWithBlocks(world, box, 12, 11 - 3, 8 - 3, 12, 11 - 1, 8 - 3, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12, 11 - 3, 4, 12, 11 - 1, 4, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 12, 11 - 3, 3, 12, 11 - 1, 3, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12, 11 - 3, 2, 12, 11 - 1, 2, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 12, 11 - 3, 1, 12, 11 - 1, 1, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12, 11, 1, 12, 11, 8 - 3, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 1, 0, 1, sizeX - 1, 3, 1, ModBlocks.reinforced_stone, Blocks.air, false); //Back Wall - this.fillWithBlocks(world, box, 1, 0, 2, 1, 3, sizeZ - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Left Wall - this.fillWithBlocks(world, box, 1, 0, sizeZ - 1, sizeX - 1, 3, sizeZ - 1, ModBlocks.reinforced_stone, Blocks.air, false); //Front Wall - this.fillWithBlocks(world, box, sizeX - 1, 0, 2, sizeX - 1, 3, sizeZ - 2, ModBlocks.reinforced_stone, Blocks.air, false); // Right Wall - this.fillWithBlocks(world, box, 6, 0, 3, 6, 3, sizeZ - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Internal Wall + this.fillWithBlocks(world, box, 1, 0, 1, 12 - 1, 3, 1, ModBlocks.reinforced_stone, Blocks.air, false); //Back Wall + this.fillWithBlocks(world, box, 1, 0, 2, 1, 3, 8 - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Left Wall + this.fillWithBlocks(world, box, 1, 0, 8 - 1, 12 - 1, 3, 8 - 1, ModBlocks.reinforced_stone, Blocks.air, false); //Front Wall + this.fillWithBlocks(world, box, 12 - 1, 0, 2, 12 - 1, 3, 8 - 2, ModBlocks.reinforced_stone, Blocks.air, false); // Right Wall + this.fillWithBlocks(world, box, 6, 0, 3, 6, 3, 8 - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Internal Wall //Floors & Ceiling - this.fillWithRandomizedBlocks(world, box, 1, sizeY - 4, 1, 3, sizeY - 4, sizeZ - 1, false, rand, RandomLabTiles); //Left Floor - this.fillWithRandomizedBlocks(world, box, 4, sizeY - 4, sizeZ - 2, 5, sizeY - 4, sizeZ - 1, false, rand, RandomLabTiles); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, sizeY - 4, 1, sizeX - 1, sizeY - 4, sizeZ - 3, false, rand, RandomLabTiles); //Right Floor - this.fillWithRandomizedBlocks(world, box, sizeX - 3, sizeY - 4, sizeZ - 2, sizeX - 2, sizeY - 4, sizeZ - 2, false, rand, RandomLabTiles); - this.fillWithBlocks(world, box, 4, sizeY - 4, 1, 7, sizeY - 4, 1, ModBlocks.tile_lab_broken, Blocks.air, false); //Center Floor (Pain) - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 4, sizeY - 4, 2, box); - this.fillWithBlocks(world, box, 4, sizeY - 4, 3, 4, sizeY - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 5, sizeY - 4, 3, box); - this.fillWithBlocks(world, box, 5, sizeY - 4, 4, 5, sizeY - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 6, sizeY - 4, 4, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 6, sizeY - 4, 5, box); - this.fillWithBlocks(world, box, 7, sizeY - 4, 2, 7, sizeY - 4, 3, ModBlocks.tile_lab_broken, Blocks.air, false); - this.fillWithBlocks(world, box, 7, sizeY - 4, 4, 7, sizeY - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 11 - 4, 1, 3, 11 - 4, 8 - 1, false, rand, RandomLabTiles); //Left Floor + this.fillWithRandomizedBlocks(world, box, 4, 11 - 4, 8 - 2, 5, 11 - 4, 8 - 1, false, rand, RandomLabTiles); + this.fillWithRandomizedBlocks(world, box, 12 - 4, 11 - 4, 1, 12 - 1, 11 - 4, 8 - 3, false, rand, RandomLabTiles); //Right Floor + this.fillWithRandomizedBlocks(world, box, 12 - 3, 11 - 4, 8 - 2, 12 - 2, 11 - 4, 8 - 2, false, rand, RandomLabTiles); + this.fillWithBlocks(world, box, 4, 11 - 4, 1, 7, 11 - 4, 1, ModBlocks.tile_lab_broken, Blocks.air, false); //Center Floor (Pain) + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 4, 11 - 4, 2, box); + this.fillWithBlocks(world, box, 4, 11 - 4, 3, 4, 11 - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 5, 11 - 4, 3, box); + this.fillWithBlocks(world, box, 5, 11 - 4, 4, 5, 11 - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 6, 11 - 4, 4, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 6, 11 - 4, 5, box); + this.fillWithBlocks(world, box, 7, 11 - 4, 2, 7, 11 - 4, 3, ModBlocks.tile_lab_broken, Blocks.air, false); + this.fillWithBlocks(world, box, 7, 11 - 4, 4, 7, 11 - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); - this.fillWithBlocks(world, box, 1, sizeY, 1, 2, sizeY, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); //Left Ceiling - this.fillWithBlocks(world, box, 3, sizeY, sizeZ - 2, 4, sizeY, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX - 3, sizeY, 1, sizeX - 1, sizeY, sizeZ - 3, ModBlocks.brick_light, Blocks.air, false); //Right Ceiling - this.fillWithBlocks(world, box, 3, sizeY, 1, 8, sizeY, 1, ModBlocks.waste_planks, Blocks.air, false); //Center Ceiling (Pain) - this.fillWithBlocks(world, box, 3, sizeY, 2, 4, sizeY, 2, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 7, sizeY, 2, 8, sizeY, 2, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 3, sizeY, 3, 3, sizeY, 5, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 4, sizeY, 4, 4, sizeY, 5, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 5, sizeY, 6, 5, sizeY, sizeZ - 1, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 8, sizeY, 3, 8, sizeY, 5, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 1, 11, 1, 2, 11, 8 - 1, ModBlocks.brick_light, Blocks.air, false); //Left Ceiling + this.fillWithBlocks(world, box, 3, 11, 8 - 2, 4, 11, 8 - 1, ModBlocks.brick_light, Blocks.air, false); + this.fillWithBlocks(world, box, 12 - 3, 11, 1, 12 - 1, 11, 8 - 3, ModBlocks.brick_light, Blocks.air, false); //Right Ceiling + this.fillWithBlocks(world, box, 3, 11, 1, 8, 11, 1, ModBlocks.waste_planks, Blocks.air, false); //Center Ceiling (Pain) + this.fillWithBlocks(world, box, 3, 11, 2, 4, 11, 2, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 7, 11, 2, 8, 11, 2, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 3, 11, 3, 3, 11, 5, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 11, 4, 4, 11, 5, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 5, 11, 6, 5, 11, 8 - 1, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 8, 11, 3, 8, 11, 5, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, 0, 2, 5, 0, sizeZ - 2, false, rand, RandomLabTiles); //Floor + this.fillWithRandomizedBlocks(world, box, 2, 0, 2, 5, 0, 8 - 2, false, rand, RandomLabTiles); //Floor this.fillWithRandomizedBlocks(world, box, 6, 0, 2, 6, 0, 3, false, rand, RandomLabTiles); - this.fillWithRandomizedBlocks(world, box, 7, 0, 2, sizeX - 2, 0, sizeZ - 2, false, rand, RandomLabTiles); + this.fillWithRandomizedBlocks(world, box, 7, 0, 2, 12 - 2, 0, 8 - 2, false, rand, RandomLabTiles); - this.fillWithRandomizedBlocks(world, box, 1, 4, 1, sizeX - 1, 4, sizeZ - 1, false, rand, RandomConcreteBricks); //Ceiling + this.fillWithRandomizedBlocks(world, box, 1, 4, 1, 12 - 1, 4, 8 - 1, false, rand, RandomConcreteBricks); //Ceiling //Decorations & Loot int eastMeta = this.getDecoMeta(4); int westMeta = this.getDecoMeta(5); int northMeta = this.getDecoMeta(3); int southMeta = this.getDecoMeta(2); - this.placeBlockAtCurrentPosition(world, ModBlocks.crashed_balefire, southMeta, 6, sizeY - 2, 3, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crashed_balefire, southMeta, 6, 11 - 2, 3, box); int doorMeta = this.getMetadataWithOffset(Blocks.wooden_door, 1); - this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, sizeX - 3, sizeY - 3, sizeZ - 2, box); - ItemDoor.placeDoorBlock(world, this.getXWithOffset(sizeX - 3, sizeZ - 2), this.getYWithOffset(sizeY - 3), this.getZWithOffset(sizeX - 3, sizeZ - 2), + this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 12 - 3, 11 - 3, 8 - 2, box); + ItemDoor.placeDoorBlock(world, this.getXWithOffset(12 - 3, 8 - 2), this.getYWithOffset(11 - 3), this.getZWithOffset(12 - 3, 8 - 2), doorMeta, ModBlocks.door_office); - this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, sizeX - 2, sizeY - 3, sizeZ - 2, box); - ItemDoor.placeDoorBlock(world, this.getXWithOffset(sizeX - 2, sizeZ - 2), this.getYWithOffset(sizeY - 3), this.getZWithOffset(sizeX - 2, sizeZ - 2), + this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 12 - 2, 11 - 3, 8 - 2, box); + ItemDoor.placeDoorBlock(world, this.getXWithOffset(12 - 2, 8 - 2), this.getYWithOffset(11 - 3), this.getZWithOffset(12 - 2, 8 - 2), doorMeta, ModBlocks.door_office); - this.fillWithBlocks(world, box, 1, sizeY - 3, 1, 1, sizeY - 1, 1, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 1, sizeY - 3, 2, 1, sizeY - 2, 3, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, westMeta, 1, sizeY - 1, 2, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 1, sizeY - 1, 3, box); - this.fillWithBlocks(world, box, 1, sizeY - 3, 6, 1, sizeY - 1, 6, ModBlocks.deco_pipe_framed_rusted, Blocks.air, false); + this.fillWithBlocks(world, box, 1, 11 - 3, 1, 1, 11 - 1, 1, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 1, 11 - 3, 2, 1, 11 - 2, 3, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, westMeta, 1, 11 - 1, 2, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 1, 11 - 1, 3, box); + this.fillWithBlocks(world, box, 1, 11 - 3, 6, 1, 11 - 1, 6, ModBlocks.deco_pipe_framed_rusted, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, sizeX - 4, sizeY - 3, 1, sizeX - 4, sizeY - 1, 1, ModBlocks.steel_wall, eastMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 3, sizeY - 1, 1, sizeX - 2, sizeY - 1, 1, ModBlocks.steel_grate, 0, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 3, sizeY - 2, 1, sizeX - 2, sizeY - 2, 1, ModBlocks.tape_recorder, northMeta, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX - 3, sizeY - 3, 1, sizeX - 2, sizeY - 3, 1, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, sizeX - 1, sizeY - 3, 1, sizeX - 1, sizeY - 1, 1, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 4, 11 - 3, 1, 12 - 4, 11 - 1, 1, ModBlocks.steel_wall, eastMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 3, 11 - 1, 1, 12 - 2, 11 - 1, 1, ModBlocks.steel_grate, 0, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 3, 11 - 2, 1, 12 - 2, 11 - 2, 1, ModBlocks.tape_recorder, northMeta, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 12 - 3, 11 - 3, 1, 12 - 2, 11 - 3, 1, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 12 - 1, 11 - 3, 1, 12 - 1, 11 - 1, 1, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 2, 1, 2, 2, 1, sizeZ - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 2, 1, 2, 2, 1, 8 - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); this.placeBlockAtCurrentPosition(world, ModBlocks.vitrified_barrel, 0, 2, 2, 2, box); this.fillWithMetadataBlocks(world, box, 3, 1, 2, 3, 3, 2, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); this.fillWithMetadataBlocks(world, box, 3, 1, 4, 3, 3, 4, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 3, 1, sizeZ - 2, 3, 3, sizeZ - 2, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 4, 1, sizeZ - 2, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 4, 2, sizeZ - 2, box); + this.fillWithMetadataBlocks(world, box, 3, 1, 8 - 2, 3, 3, 8 - 2, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 4, 1, 8 - 2, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 4, 2, 8 - 2, box); if(!hasPlacedLoot[0]) { - this.hasPlacedLoot[0] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 5, 1, sizeZ - 2, HbmChestContents.nuclearFuel, 10); + this.hasPlacedLoot[0] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 5, 1, 8 - 2, HbmChestContents.nuclearFuel, 10); } - this.fillWithBlocks(world, box, 4, 1, sizeZ - 3, 5, 1, sizeZ - 3, ModBlocks.crate_lead, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 1, 8 - 3, 5, 1, 8 - 3, ModBlocks.crate_lead, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX - 5, 1, sizeZ - 2, sizeX - 5, 3, sizeZ - 2, ModBlocks.deco_steel, Blocks.air, false);; - this.fillWithMetadataBlocks(world, box, sizeX - 4, 1, sizeZ - 2, sizeX - 2, 1, sizeZ - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 4, 2, sizeZ - 2, sizeX - 3, 2, sizeZ - 2, ModBlocks.tape_recorder, southMeta, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, sizeX - 2, 2, sizeZ - 2, box); - this.fillWithBlocks(world, box, sizeX - 4, 3, sizeZ - 2, sizeX - 2, 3, sizeZ - 2, ModBlocks.steel_roof, Blocks.air, false); + this.fillWithBlocks(world, box, 12 - 5, 1, 8 - 2, 12 - 5, 3, 8 - 2, ModBlocks.deco_steel, Blocks.air, false);; + this.fillWithMetadataBlocks(world, box, 12 - 4, 1, 8 - 2, 12 - 2, 1, 8 - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 4, 2, 8 - 2, 12 - 3, 2, 8 - 2, ModBlocks.tape_recorder, southMeta, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 12 - 2, 2, 8 - 2, box); + this.fillWithBlocks(world, box, 12 - 4, 3, 8 - 2, 12 - 2, 3, 8 - 2, ModBlocks.steel_roof, Blocks.air, false); if(!hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, sizeX - 2, 1, 3, HbmChestContents.nukeTrash, 9); + this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 12 - 2, 1, 3, HbmChestContents.nukeTrash, 9); if(rand.nextInt(2) == 0) - generateLoreBook(world, box, sizeX - 2, 1, 3, 1, HbmChestContents.generateOfficeBook(rand)); + generateLoreBook(world, box, 12 - 2, 1, 3, 1, HbmChestContents.generateOfficeBook(rand)); } return true; @@ -612,20 +612,20 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, sizeX - 3, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.dirt, 0, 8, 1, sizeX, 6, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 8 - 3, 11, -1, box); + placeFoundationUnderneath(world, Blocks.dirt, 0, 8, 1, 10, 6, -1, box); - this.fillWithAir(world, box, 1, 0, 0, sizeX - 3, sizeY - 2, sizeZ); - this.fillWithAir(world, box, sizeX - 2, 0, 2, sizeX - 1, 2, 5); + this.fillWithAir(world, box, 1, 0, 0, 10 - 3, 6 - 2, 8); + this.fillWithAir(world, box, 10 - 2, 0, 2, 10 - 1, 2, 5); if(this.getBlockAtCurrentPosition(world, 0, 0, 5, box).getMaterial().isReplaceable() || this.getBlockAtCurrentPosition(world, 0, 0, 5, box) == Blocks.air) { int stairMeta = this.getMetadataWithOffset(Blocks.stone_brick_stairs, 1); this.placeBlockAtCurrentPosition(world, Blocks.stone_brick_stairs, stairMeta, 0, 0, 5, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 1, 0, sizeZ - 1, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 1, 0, 8 - 1, -1, box); - this.fillWithMetadataBlocks(world, box, 0, 0, 1, 0, 0, sizeZ - 1, Blocks.stone_slab, 5, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 0, 0, 1, 0, 0, 8 - 1, Blocks.stone_slab, 5, Blocks.air, 0, false); } //Walls @@ -633,62 +633,62 @@ public class CivilianFeatures { int pillarMetaNS = this.getPillarMeta(8); this.fillWithBlocks(world, box, 1, 0, 0, 1, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 1, 4, 0, box); - this.fillWithMetadataBlocks(world, box, 2, 4, 0, sizeX - 4, 4, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, sizeX - 3, 4, 0, box); - this.fillWithBlocks(world, box, sizeX - 3, 0, 0, sizeX - 3, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, 0, 0, sizeX - 4, 1, 0, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 2, 4, 0, 10 - 4, 4, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 10 - 3, 4, 0, box); + this.fillWithBlocks(world, box, 10 - 3, 0, 0, 10 - 3, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 2, 0, 0, 10 - 4, 1, 0, false, rand, RandomSuperConcrete); this.fillWithRandomizedBlocks(world, box, 2, 2, 0, 2, 2, 0, false, rand, RandomSuperConcrete); this.fillWithBlocks(world, box, 3, 2, 0, 5, 2, 0, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, 2, 0, sizeX - 4, 2, 0, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 3, 0, sizeX - 4, 3, 0, false, rand, RandomSuperConcrete); - this.fillWithMetadataBlocks(world, box, 1, 4, 1, 1, 4, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 1, 4, sizeZ, box); - this.fillWithBlocks(world, box, 1, 0, sizeZ, 1, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 10 - 4, 2, 0, 10 - 4, 2, 0, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 3, 0, 10 - 4, 3, 0, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 1, 4, 1, 1, 4, 8 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 1, 4, 8, box); + this.fillWithBlocks(world, box, 1, 0, 8, 1, 3, 8, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 0, 1, 1, 1, 4, false, rand, RandomSuperConcrete); this.fillWithRandomizedBlocks(world, box, 1, 2, 1, 1, 2, 1, false, rand, RandomSuperConcrete); this.fillWithBlocks(world, box, 1, 2, 2, 1, 2, 3, ModBlocks.reinforced_glass, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 2, 4, 1, 2, 4, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 1, 3, 1, 1, 3, sizeZ - 1, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ - 2, 1, 3, sizeZ - 1, false, rand, RandomSuperConcrete); - this.fillWithMetadataBlocks(world, box, 2, 4, sizeZ, sizeX - 4, 4, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, sizeX - 3, 4, sizeZ, box); - this.fillWithBlocks(world, box, sizeX - 3, 0, sizeZ, sizeX - 3, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, 0, sizeZ, sizeX - 4, 1, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 2, sizeZ, 2, 2, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 3, 2, sizeZ, 5, 2, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, 2, sizeZ, sizeX - 4, 2, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 3, sizeZ, sizeX - 4, 3, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithMetadataBlocks(world, box, sizeX - 3, 4, 1, sizeX - 3, 4, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 3, 0, 1, sizeX - 3, 3, sizeZ - 1, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 1, 3, 1, 1, 3, 8 - 1, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 1, 0, 8 - 2, 1, 3, 8 - 1, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 2, 4, 8, 10 - 4, 4, 8, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 10 - 3, 4, 8, box); + this.fillWithBlocks(world, box, 10 - 3, 0, 8, 10 - 3, 3, 8, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 2, 0, 8, 10 - 4, 1, 8, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 2, 8, 2, 2, 8, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 3, 2, 8, 5, 2, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 10 - 4, 2, 8, 10 - 4, 2, 8, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 3, 8, 10 - 4, 3, 8, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 10 - 3, 4, 1, 10 - 3, 4, 8 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithRandomizedBlocks(world, box, 10 - 3, 0, 1, 10 - 3, 3, 8 - 1, false, rand, RandomSuperConcrete); pillarMetaWE = this.getPillarMeta(5); pillarMetaNS = this.getPillarMeta(9); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 2, 1, sizeX - 1, 2, 1, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Back Wall - this.fillWithMetadataBlocks(world, box, sizeX, 0, 1, sizeX, 2, 1, Blocks.log, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 1, sizeX - 1, 1, 1, Blocks.planks, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX, 2, 2, sizeX, 2, 5, Blocks.log, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithMetadataBlocks(world, box, sizeX, 0, 6, sizeX, 2, 6, Blocks.log, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX, 0, 3, sizeX, 1, 5, Blocks.planks, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 2, 6, sizeX - 1, 2, 6, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 6, sizeX - 1, 1, 6, Blocks.planks, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10 - 2, 2, 1, 10 - 1, 2, 1, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Back Wall + this.fillWithMetadataBlocks(world, box, 10, 0, 1, 10, 2, 1, Blocks.log, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 1, 10 - 1, 1, 1, Blocks.planks, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10, 2, 2, 10, 2, 5, Blocks.log, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithMetadataBlocks(world, box, 10, 0, 6, 10, 2, 6, Blocks.log, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10, 0, 3, 10, 1, 5, Blocks.planks, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10 - 2, 2, 6, 10 - 1, 2, 6, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 6, 10 - 1, 1, 6, Blocks.planks, 1, Blocks.air, 0, false); //Floor & Ceiling - this.fillWithBlocks(world, box, 2, 0, 1, 6, 0, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); //Floor + this.fillWithBlocks(world, box, 2, 0, 1, 6, 0, 8 - 1, ModBlocks.brick_light, Blocks.air, false); //Floor this.placeBlockAtCurrentPosition(world, ModBlocks.brick_light, 0, 1, 0, 5, box); this.fillWithRandomizedBlocks(world, box, 2, 4, 1, 6, 4, 3, false, rand, RandomSuperConcrete); //Ceiling this.fillWithRandomizedBlocks(world, box, 2, 4, 4, 2, 4, 4, false, rand, RandomSuperConcrete); this.fillWithRandomizedBlocks(world, box, 5, 4, 4, 6, 4, 4, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 4, sizeZ - 3, 6, 4, sizeZ - 1, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 4, 8 - 3, 6, 4, 8 - 1, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, sizeX - 2, 2, 2, sizeX - 1, 2, 5, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithBlocks(world, box, 10 - 2, 2, 2, 10 - 1, 2, 5, ModBlocks.deco_steel, Blocks.air, false); //Loot & Decorations int southMeta = this.getDecoMeta(2); int eastMeta = this.getDecoMeta(5); - this.placeBlockAtCurrentPosition(world, ModBlocks.pole_satellite_receiver, eastMeta, 2, sizeY - 1, 1, box); - this.fillWithBlocks(world, box, 3, sizeY - 1, 1, 4, sizeY - 1, 1, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithBlocks(world, box, 2, sizeY - 1, 2, 4, sizeY - 1, 2, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithBlocks(world, box, 2, sizeY, 1, 4, sizeY, 2, ModBlocks.steel_roof, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.pole_satellite_receiver, eastMeta, 2, 6 - 1, 1, box); + this.fillWithBlocks(world, box, 3, 6 - 1, 1, 4, 6 - 1, 1, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithBlocks(world, box, 2, 6 - 1, 2, 4, 6 - 1, 2, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithBlocks(world, box, 2, 6, 1, 4, 6, 2, ModBlocks.steel_roof, Blocks.air, false); this.fillWithBlocks(world, box, 2, 1, 1, 2, 3, 1, ModBlocks.deco_red_copper, Blocks.air, false); this.fillWithBlocks(world, box, 3, 1, 1, 3, 1, 2, ModBlocks.deco_beryllium, Blocks.air, false); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_generator, 0, 4, 1, 1, box); @@ -698,28 +698,28 @@ public class CivilianFeatures { this.fillWithBlocks(world, box, 3, 1, 4, 4, 1, 4, ModBlocks.concrete_super_broken, Blocks.air, false); this.fillWithMetadataBlocks(world, box, 6, 1, 4, 6, 3, 4, ModBlocks.steel_scaffold, eastMeta < 4 ? 0 : 8, Blocks.air, 0, false); this.fillWithMetadataBlocks(world, box, 6, 1, 5, 6, 1, 7, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.radiorec, eastMeta, 6, 2, sizeZ - 1, box); - this.fillWithMetadataBlocks(world, box, 2, 1, sizeZ - 1, 3, 1, sizeZ - 1, ModBlocks.machine_electric_furnace_off, southMeta, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.radiorec, eastMeta, 6, 2, 8 - 1, box); + this.fillWithMetadataBlocks(world, box, 2, 1, 8 - 1, 3, 1, 8 - 1, ModBlocks.machine_electric_furnace_off, southMeta, Blocks.air, 0, false); if(!hasPlacedLoot) { - this.hasPlacedLoot = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 4, 1, sizeZ - 1, HbmChestContents.machineParts, 11); + this.hasPlacedLoot = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 4, 1, 8 - 1, HbmChestContents.machineParts, 11); } this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 5, 3, 1, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 2, 1, 2, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 6, 1, 2, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 6, 2, 5, box); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 5, sizeX - 1, 0, 5, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, southMeta, sizeX - 2, 1, 5, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), sizeX - 1, 1, 5, box); - TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(sizeX - 1, 5), this.getYWithOffset(1), this.getZWithOffset(sizeX - 1, 5)); + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 5, 10 - 1, 0, 5, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, southMeta, 10 - 2, 1, 5, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), 10 - 1, 1, 5, box); + TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(10 - 1, 5), this.getYWithOffset(1), this.getZWithOffset(10 - 1, 5)); if(bobble != null) { bobble.type = BobbleType.values()[rand.nextInt(BobbleType.values().length - 1) + 1]; bobble.markDirty(); } - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 2, sizeX - 2, 0, 3, Blocks.log, pillarMetaWE, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, Blocks.log, pillarMetaWE, sizeX - 2, 1, 2, box); - this.placeBlockAtCurrentPosition(world, Blocks.web, 0, sizeX - 2, 1, 3, box); + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 2, 10 - 2, 0, 3, Blocks.log, pillarMetaWE, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, Blocks.log, pillarMetaWE, 10 - 2, 1, 2, box); + this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 10 - 2, 1, 3, box); return true; } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 338bcd959..0d86e2cac 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -25,12 +25,7 @@ import net.minecraft.world.gen.structure.StructureComponent; import net.minecraftforge.common.util.ForgeDirection; abstract public class Component extends StructureComponent { - /** The size of the bounding box for this feature in the X axis */ - protected int sizeX; - /** The size of the bounding box for this feature in the Y axis */ - protected int sizeY; - /** The size of the bounding box for this feature in the Z axis */ - protected int sizeZ; + /** Average height (Presumably stands for height position) */ protected int hpos = -1; @@ -44,10 +39,7 @@ abstract public class Component extends StructureComponent { protected Component(Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ ) { super(0); - this.sizeX = maxX; - this.sizeY = maxY; - this.sizeZ = maxZ; - this.coordBaseMode = 0;//rand.nextInt(4); + this.coordBaseMode = rand.nextInt(4); switch(this.coordBaseMode) { case 0: @@ -70,17 +62,11 @@ abstract public class Component extends StructureComponent { /** Set to NBT */ protected void func_143012_a(NBTTagCompound nbt) { - nbt.setInteger("Width", this.sizeX); - nbt.setInteger("Height", this.sizeY); - nbt.setInteger("Depth", this.sizeZ); nbt.setInteger("HPos", this.hpos); } /** Get from NBT */ protected void func_143011_b(NBTTagCompound nbt) { - this.sizeX = nbt.getInteger("Width"); - this.sizeY = nbt.getInteger("Height"); - this.sizeZ = nbt.getInteger("Depth"); this.hpos = nbt.getInteger("HPos"); } diff --git a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index e4a96eabb..7fcba838a 100644 --- a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -59,60 +59,60 @@ public class OfficeFeatures { this.boundingBox.offset(0, -1, 0); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, sizeX, 1, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 2, sizeX, 7, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 8, 8, sizeZ, 0, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 9, 8, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, 14, 1, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 2, 14, 7, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 8, 8, 12, 0, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 9, 8, 14, 12, -1, box); fillWithAir(world, box, 1, 1, 3, 4, 3, 6); - fillWithAir(world, box, 6, 1, 1, sizeX - 1, 3, 6); - fillWithAir(world, box, 10, 1, 7, sizeX - 1, 3, sizeZ - 1); + fillWithAir(world, box, 6, 1, 1, 14 - 1, 3, 6); + fillWithAir(world, box, 10, 1, 7, 14 - 1, 3, 12 - 1); //Pillars //Back fillWithBlocks(world, box, 0, 0, 2, 0, 4, 2, ModBlocks.concrete_pillar); fillWithBlocks(world, box, 5, 0, 0, 5, 4, 0, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, sizeX, 0, 0, sizeX, 4, 0, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 14, 0, 0, 14, 4, 0, ModBlocks.concrete_pillar); //Front fillWithBlocks(world, box, 0, 0, 7, 0, 3, 7, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 0, 0, sizeZ, 0, 3, sizeZ, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 3, 0, sizeZ, 3, 3, sizeZ, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 6, 0, sizeZ, 6, 3, sizeZ, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 9, 0, sizeZ, 9, 3, sizeZ, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 0, 0, 12, 0, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 3, 0, 12, 3, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 6, 0, 12, 6, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 9, 0, 12, 9, 3, 12, ModBlocks.concrete_pillar); fillWithBlocks(world, box, 9, 0, 7, 9, 3, 7, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 4, sizeZ, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 14, 0, 12, 14, 4, 12, ModBlocks.concrete_pillar); //Walls //Back fillWithRandomizedBlocks(world, box, 1, 0, 2, 5, 4, 2, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 5, 0, 1, 5, 4, 1, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 6, 0, 0, sizeX - 1, 1, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, 0, 0, 14 - 1, 1, 0, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 6, 2, 0, 6, 2, 0, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 9, 2, 0, 10, 2, 0, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX - 1, 2, 0, sizeX - 1, 2, 0, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 6, 3, 0, sizeX - 1, 4, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14 - 1, 2, 0, 14 - 1, 2, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, 3, 0, 14 - 1, 4, 0, rand, ConcreteBricks); //Right - fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 1, sizeZ - 1, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 2, 1, sizeX, 2, 2, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 2, 5, sizeX, 2, 7, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 2, sizeZ - 2, sizeX, 2, sizeZ - 1, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 3, 1, sizeX, 4, sizeZ - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 0, 1, 14, 1, 12 - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 2, 1, 14, 2, 2, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 2, 5, 14, 2, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 2, 12 - 2, 14, 2, 12 - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 3, 1, 14, 4, 12 - 1, rand, ConcreteBricks); //Front - fillWithRandomizedBlocks(world, box, 0, 4, sizeZ, sizeX - 1, 4, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 0, sizeZ, sizeX - 1, 1, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 2, sizeZ, 10, 2, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX - 1, 2, sizeZ, sizeX - 1, 2, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 3, sizeZ, sizeX - 1, 3, sizeZ, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 4, 12, 14 - 1, 4, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 0, 12, 14 - 1, 1, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 2, 12, 10, 2, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14 - 1, 2, 12, 14 - 1, 2, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 3, 12, 14 - 1, 3, 12, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 9, 0, 8, 9, 3, sizeZ - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 9, 0, 8, 9, 3, 12 - 1, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 0, 7, 8, 0, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 1, 7, 1, 2, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 4, 1, 7, 8, 3, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 3, 7, 3, 3, 7, rand, ConcreteBricks); //Left - fillWithRandomizedBlocks(world, box, 0, 4, 3, 0, 4, sizeZ - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 4, 3, 0, 4, 12 - 1, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 0, 0, 3, 0, 1, 6, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 0, 2, 3, 0, 3, 3, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 0, 2, 6, 0, 3, 6, rand, ConcreteBricks); @@ -121,21 +121,21 @@ public class OfficeFeatures { fillWithRandomizedBlocks(world, box, 5, 3, 6, 5, 3, 6, rand, ConcreteBricks); //Trim - randomlyFillWithBlocks(world, box, rand, 0.85F, 0, sizeY, 2, 5, sizeY, 2, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 5, sizeY, 1, 5, sizeY, 1, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 5, sizeY, 0, sizeX, sizeY, 0, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, sizeX, sizeY, 1, sizeX, sizeY, sizeZ, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 0, sizeY, sizeZ, sizeX - 1, sizeY, sizeZ, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 0, sizeY, 3, 0, sizeY, sizeZ - 1, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 0, 5, 2, 5, 5, 2, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 5, 5, 1, 5, 5, 1, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 5, 5, 0, 14, 5, 0, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 14, 5, 1, 14, 5, 12, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 0, 5, 12, 14 - 1, 5, 12, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 0, 5, 3, 0, 5, 12 - 1, Blocks.stone_slab); //Floor fillWithMetadataBlocks(world, box, 1, 0, 3, 4, 0, 6, Blocks.wool, 13); //Green Wool fillWithBlocks(world, box, 5, 0, 3, 5, 0, 6, ModBlocks.brick_light); - fillWithBlocks(world, box, 6, 0, 1, sizeX - 1, 0, 6, ModBlocks.brick_light); - fillWithBlocks(world, box, 10, 0, 7, sizeX - 1, 0, sizeZ - 1, ModBlocks.brick_light); + fillWithBlocks(world, box, 6, 0, 1, 14 - 1, 0, 6, ModBlocks.brick_light); + fillWithBlocks(world, box, 10, 0, 7, 14 - 1, 0, 12 - 1, ModBlocks.brick_light); //Ceiling - fillWithBlocks(world, box, 6, 4, 1, sizeX - 1, 4, 2, ModBlocks.brick_light); - fillWithBlocks(world, box, 1, 4, 3, sizeX - 1, 4, sizeZ - 1, ModBlocks.brick_light); + fillWithBlocks(world, box, 6, 4, 1, 14 - 1, 4, 2, ModBlocks.brick_light); + fillWithBlocks(world, box, 1, 4, 3, 14 - 1, 4, 12 - 1, ModBlocks.brick_light); //Decorations //Carpet @@ -143,10 +143,10 @@ public class OfficeFeatures { //Windows randomlyFillWithBlocks(world, box, rand, 0.75F, 0, 2, 4, 0, 3, 5, Blocks.glass_pane); randomlyFillWithBlocks(world, box, rand, 0.75F, 7, 2, 0, 8, 2, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX - 3, 2, 0, sizeX - 2, 2, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX, 2, 3, sizeX, 2, 4, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX, 2, 8, sizeX, 2, 9, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX - 3, 2, sizeZ, sizeX - 2, 2, sizeZ, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14 - 3, 2, 0, 14 - 2, 2, 0, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14, 2, 3, 14, 2, 4, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14, 2, 8, 14, 2, 9, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14 - 3, 2, 12, 14 - 2, 2, 12, Blocks.glass_pane); //Fuwnituwe >w< int stairMetaE = getStairMeta(1); //East int stairMetaN = getStairMeta(2); //*SHOULD* be north @@ -170,35 +170,35 @@ public class OfficeFeatures { placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 4, box); //Desk 3 :3 placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaEU, 10, 1, 1, box); - fillWithMetadataBlocks(world, box, 11, 1, 1, sizeX - 1, 1, 1, Blocks.spruce_stairs, stairMetaSU); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, sizeX - 1, 1, 2, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, sizeX - 1, 1, 3, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, sizeX - 1, 1, 4, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, sizeX - 1, 1, 5, box); + fillWithMetadataBlocks(world, box, 11, 1, 1, 14 - 1, 1, 1, Blocks.spruce_stairs, stairMetaSU); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, 14 - 1, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, 14 - 1, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, 14 - 1, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, 14 - 1, 1, 5, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 11, 1, 2, box); //Chaiw ;3 - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, sizeX - 2, 1, 4, box); //Chaiw :333 - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), sizeX - 3, 2, 1, box); //South-facing Computer :3 - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), sizeX - 1, 2, 5, box); //West-facing Computer ^w^ - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, sizeX - 1, 2, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(5), sizeX - 1, 2, 2, box); //Wadio + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 14 - 2, 1, 4, box); //Chaiw :333 + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 14 - 3, 2, 1, box); //South-facing Computer :3 + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), 14 - 1, 2, 5, box); //West-facing Computer ^w^ + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 14 - 1, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(5), 14 - 1, 2, 2, box); //Wadio //Desk 4 DX placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaEU, 10, 1, 8, box); placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, 11, 1, 8, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 10, 1, 9, box); //Chaiw ;3 placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 10, 2, 8, box); //South-facing Computer :33 //Desk 5 :333 - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, sizeX - 1, 1, sizeZ - 3, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, sizeX - 1, 1, sizeZ - 2, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, sizeX - 1, 1, sizeZ - 1, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, sizeX - 3, 1, sizeZ - 1, box); //UwU... Chaiw!!!! :333 I wove chaiws XD :333 OwO what's this?? chaiw???? :333333333333333333 - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), sizeX - 1, 2, sizeZ - 1, box); //West-facing Computer >w< + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, 14 - 1, 1, 12 - 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, 14 - 1, 1, 12 - 2, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, 14 - 1, 1, 12 - 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 14 - 3, 1, 12 - 1, box); //UwU... Chaiw!!!! :333 I wove chaiws XD :333 OwO what's this?? chaiw???? :333333333333333333 + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), 14 - 1, 2, 12 - 1, box); //West-facing Computer >w< //Cobwebs pwobabwy //Maybe make a method for this eventually? //Something where the tops of ceilings + empty corners along walls get most cobwebs, //with no cobwebs hanging midair + it not being performance intensive randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 3, 3, 4, 3, 6, Blocks.web); - randomlyFillWithBlocks(world, box, rand, 0.25F, 6, 3, 1, sizeX - 1, 3, 6, Blocks.web); - randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, sizeX - 1, 3, sizeZ - 1, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.25F, 6, 3, 1, 14 - 1, 3, 6, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, 14 - 1, 3, 12 - 1, Blocks.web); //Doors placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 2, 1, 7); placeDoor(world, box, ModBlocks.door_office, 3, true, rand.nextBoolean(), 3, 1, 7); @@ -206,7 +206,7 @@ public class OfficeFeatures { //Woot if(!this.hasPlacedLoot[0]) - this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), sizeX - 4, 1, sizeZ - 1, HbmChestContents.officeTrash, 8); + this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 14 - 4, 1, 12 - 1, HbmChestContents.officeTrash, 8); if(!this.hasPlacedLoot[1]) { this.hasPlacedLoot[1] = generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(3), 6, 1, 1, HbmChestContents.machineParts, 10, 0.5D); if(rand.nextInt(2) == 0) diff --git a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java index b5f5d141d..914b01b7e 100644 --- a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java @@ -39,52 +39,52 @@ public class RuinFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 8, 10, -1, box); int pillarMetaWE = this.getPillarMeta(4); int pillarMetaNS = this.getPillarMeta(8); - this.fillWithBlocks(world, box, 0, 0, 0, 0, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall + this.fillWithBlocks(world, box, 0, 0, 0, 0, 6, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall this.fillWithMetadataBlocks(world, box, 1, 3, 0, 3, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, 4, 0, 0, 4, sizeY - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 5, 3, 0, sizeX - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, sizeY - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 0, 0, 4, 6 - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 5, 3, 0, 8 - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 8, 0, 0, 8, 6 - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 3, 0, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 0, 0, sizeX - 1, 0, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 0, 0, 8 - 1, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 1, 0, 1, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 3, 1, 0, 3, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 1, 0, 5, 2, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX - 1, 2, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 1, 0, 8 - 1, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 4, 0, 3, 4, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 4, 0, sizeX - 1, 4, 0, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, 0, 3, 1, 0, 3, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall - this.fillWithBlocks(world, box, 0, 0, sizeZ, 0, sizeY - 1, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 4, 0, 8 - 1, 4, 0, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 0, 3, 1, 0, 3, 10 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall + this.fillWithBlocks(world, box, 0, 0, 10, 0, 6 - 1, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 10 - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 2, 2, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 4, 0, 2, 6, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 1, sizeZ - 2, 0, 2, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 1, 10 - 2, 0, 2, 10 - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 4, 1, 0, 4, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 5, 1, 0, 5, 2, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 4, sizeZ - 2, 0, 4, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, 1, 3, sizeZ, 3, 3, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.fillWithBlocks(world, box, 4, 0, sizeZ, 4, sizeY - 2, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 5, 3, sizeZ, sizeX - 1, 3, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, sizeY - 2, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 3, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 1, sizeZ, 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 3, 1, sizeZ, 3, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 1, sizeZ, 5, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, sizeZ, sizeX - 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, sizeX, 3, 1, sizeX, 3, 2, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithMetadataBlocks(world, box, sizeX, 3, sizeZ - 1, sizeX, 3, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 0, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 1, sizeX, 2, 2, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 6, sizeX, 0, 6, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, sizeZ - 2, sizeX, 1, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 2, sizeZ - 1, sizeX, 2, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 4, 10 - 2, 0, 4, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 1, 3, 10, 3, 3, 10, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.fillWithBlocks(world, box, 4, 0, 10, 4, 6 - 2, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 5, 3, 10, 8 - 1, 3, 10, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 8, 0, 10, 8, 6 - 2, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 10, 3, 0, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 0, 10, 8 - 1, 0, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 1, 10, 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 3, 1, 10, 3, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 1, 10, 5, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 1, 10, 8 - 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 8, 3, 1, 8, 3, 2, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithMetadataBlocks(world, box, 8, 3, 10 - 1, 8, 3, 10 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 8, 0, 1, 8, 0, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 1, 1, 8, 2, 2, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 6, 8, 0, 6, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 10 - 2, 8, 1, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 2, 10 - 1, 8, 2, 10 - 1, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); return true; } @@ -111,43 +111,43 @@ public class RuinFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 7, 10, -1, box); int pillarMetaWE = this.getPillarMeta(4); int pillarMetaNS = this.getPillarMeta(8); this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall - this.fillWithMetadataBlocks(world, box, 1, 3, 0, sizeX - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, 0, sizeX - 1, 0, 0, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 1, 3, 0, 7 - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 7, 0, 0, 7, 5, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 7 - 1, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 1, 0, 1, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 3, 1, 0, 4, 2, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX - 1, 2, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 3, 4, 0, sizeX - 1, 4, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, sizeY, 0, sizeX - 1, sizeY, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7 - 1, 1, 0, 7 - 1, 2, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 3, 4, 0, 7 - 1, 4, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7 - 1, 5, 0, 7 - 1, 5, 0, false, rand, RandomConcreteBricks); this.fillWithMetadataBlocks(world, box, 0, 3, 1, 0, 3, 4, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall this.fillWithBlocks(world, box, 0, 0, 5, 0, 0, 5, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, 0, 0, sizeZ, 0, 2, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 0, 0, 10, 0, 2, 10, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 2, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 0, sizeZ - 3, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 1, sizeZ - 1, 0, 1, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, sizeX - 1, 3, sizeZ, sizeX - 1, 3, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 1, sizeZ, 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, sizeZ, sizeX - 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, sizeX, 3, 1, sizeX, 3, 4, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithBlocks(world, box, sizeX, 0, 5, sizeX, 4, 5, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, sizeX, 3, sizeZ - 2, sizeX, 3, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 0, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 1, sizeX, 2, 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 3, sizeX, 2, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 4, sizeX, 1, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 6, sizeX, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 6, sizeX, 1, 7, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, sizeZ - 1, sizeX, 2, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 0, 10 - 3, 0, 0, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 1, 10 - 1, 0, 1, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 7 - 1, 3, 10, 7 - 1, 3, 10, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.fillWithBlocks(world, box, 7, 0, 10, 7, 3, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 10, 7 - 1, 0, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 1, 10, 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7 - 1, 1, 10, 7 - 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 7, 3, 1, 7, 3, 4, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithBlocks(world, box, 7, 0, 5, 7, 4, 5, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 7, 3, 10 - 2, 7, 3, 10 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 7, 0, 1, 7, 0, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 1, 7, 2, 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 3, 7, 2, 3, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 4, 7, 1, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 0, 6, 7, 0, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 6, 7, 1, 7, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 10 - 1, 7, 2, 10 - 1, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 7 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); return true; } @@ -174,37 +174,37 @@ public class RuinFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, sizeX, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, 10, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 8, 0, 8, 10, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, sizeX, 0, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 4, sizeX, 4, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 8, 0, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 4, 8, 4, -1, box); - this.fillWithBlocks(world, box, 0, 0, 0, 0, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, 0, sizeX - 1, 0, 0, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall + this.fillWithBlocks(world, box, 8, 0, 0, 8, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 8 - 1, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 1, 0, 1, 1, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 4, 1, 0, 4, 1, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX - 1, 1, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 2, 0, sizeX - 2, 2, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 1, 0, 8 - 1, 1, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 2, 0, 8 - 2, 2, 0, false, rand, RandomConcreteBricks); this.fillWithBlocks(world, box, 0, 0, 4, 0, 1, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Left Wall - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 0, 0, sizeZ, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 0, 0, 10, box); this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 0, 5, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 0, 5, 0, 0, 10 - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 5, 0, 1, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 7, 0, 1, 7, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, sizeX, 0, 4, sizeX, 1, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 1, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 1, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 5, sizeX, 0, 6, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, sizeZ - 1, sizeX, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 8, 0, 4, 8, 1, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall + this.fillWithBlocks(world, box, 8, 0, 10, 8, 1, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 8, 0, 1, 8, 1, 3, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 5, 8, 0, 6, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 10 - 1, 8, 0, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 0, 10, 8 - 1, 0, 10, false, rand, RandomConcreteBricks); this.fillWithBlocks(world, box, 4, 0, 4, 4, 2, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Center Wall this.fillWithRandomizedBlocks(world, box, 3, 0, 4, 3, 1, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 0, 4, sizeX - 1, 1, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 0, 4, 8 - 1, 1, 4, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, sizeX - 1, 0, 3, Blocks.gravel, Blocks.air, false); - this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 5, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 8 - 1, 0, 3, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 5, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); return true; } @@ -232,40 +232,40 @@ public class RuinFeatures { //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, sizeX, 5, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, 11, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 10, 5, 10, 11, -1, box); placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, 5, 4, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, sizeZ, sizeX - 1, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 11, 10 - 1, 11, -1, box); placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 4, 0, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 5, sizeX - 1, 5, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 5, 10 - 1, 5, -1, box); this.fillWithBlocks(world, box, 0, 0, 0, 0, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 1 - this.fillWithBlocks(world, box, 5, 0, 0, 5, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 5, 0, 0, 5, 2, 0, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 4, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 4, 1, 0, 4, 1, 0, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, 5, 0, 5, 5, sizeY, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 1 + this.fillWithBlocks(world, box, 5, 0, 5, 5, 2, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 1 this.fillWithRandomizedBlocks(world, box, 5, 0, 1, 5, 0, 4, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 1, 1, 5, 1, 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 1, 4, 5, 1, 4, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 2, 1, 5, 2, 4, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, sizeX, 0, 5, sizeX, 1, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 2 - this.fillWithRandomizedBlocks(world, box, 6, 0, 5, sizeX - 1, 0, 5, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 10, 0, 5, 10, 1, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 2 + this.fillWithRandomizedBlocks(world, box, 6, 0, 5, 10 - 1, 0, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 6, 1, 5, 6, 1, 5, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 5, sizeX - 1, 1, 5, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 1, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 2 - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 6, sizeX, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 6, sizeX, 1, sizeZ - 3, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, 0, 0, sizeZ, 0, 0, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); //Front Wall - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 6, 0, sizeZ, 7, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); //Left Wall + this.fillWithRandomizedBlocks(world, box, 10 - 1, 1, 5, 10 - 1, 1, 5, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 10, 0, 11, 10, 1, 11, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 2 + this.fillWithRandomizedBlocks(world, box, 10, 0, 6, 10, 0, 11 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 10, 1, 6, 10, 1, 11 - 3, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 0, 0, 11, 0, 0, 11, ModBlocks.concrete_pillar, Blocks.air, false); //Front Wall + this.fillWithRandomizedBlocks(world, box, 1, 0, 11, 1, 0, 11, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 6, 0, 11, 7, 0, 11, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 10 - 1, 0, 11, 10 - 1, 0, 11, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 11 - 1, false, rand, RandomConcreteBricks); //Left Wall this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 1, 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 4, 0, 1, 7, false, rand, RandomConcreteBricks); this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 4, 0, 5, Blocks.gravel, Blocks.air, false); - this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 6, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 6, 10 - 1, 0, 11 - 1, Blocks.gravel, Blocks.air, false); return true; } From 10ab382cf6508ce6835a05ca6b09280537c41900 Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 11 Aug 2023 22:22:11 -0700 Subject: [PATCH 006/376] shit --- .../com/hbm/inventory/gui/GUIBookLore.java | 4 +- src/main/java/com/hbm/lib/HbmWorld.java | 2 + .../hbm/world/gen/MapGenSpecialFeatures.java | 93 +++++++++++++++++++ .../com/hbm/world/gen/NTMWorldGenerator.java | 13 ++- 4 files changed, 106 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index dc628427a..4ac298bd0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -102,13 +102,13 @@ public class GUIBookLore extends GuiScreen { if(argTag.hasNoTags()) text = I18nUtil.resolveKey(k + defacto); - else { + else { //TODO consider caching the text per page List args = new ArrayList(); int index = 1; String arg = argTag.getString("a1"); while(!arg.isEmpty()) { - args.add(arg); + args.add(I18nUtil.resolveKey(arg)); //TODO check if this works fine index++; arg = argTag.getString("a" + index); } diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index bc1226544..dc8739707 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -2,6 +2,7 @@ package com.hbm.lib; import com.hbm.world.gen.MapGenNTMFeatures; import com.hbm.world.gen.NTMWorldGenerator; +import com.hbm.world.gen.MapGenSpecialFeatures.SpecialStart; import com.hbm.world.gen.component.BrutalistFeatures; import com.hbm.world.gen.component.BunkerComponents; import com.hbm.world.gen.component.CivilianFeatures; @@ -26,6 +27,7 @@ public class HbmWorld { //MapGenStructureIO.func_143031_a(StructureComponentTest.class, "HFR_COMPONENT"); MapGenStructureIO.registerStructure(MapGenNTMFeatures.Start.class, "NTMFeatures"); MapGenStructureIO.registerStructure(BunkerStart.class, "NTMBunker"); + MapGenStructureIO.registerStructure(SpecialStart.class, "NTMSpecialFeatures"); registerNTMFeatures(); registerWorldGen(new HbmWorldGen(), 1); diff --git a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java new file mode 100644 index 000000000..16d5ecd6d --- /dev/null +++ b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java @@ -0,0 +1,93 @@ +package com.hbm.world.gen; + +import java.util.HashSet; +import java.util.Random; +import java.util.Set; + +import com.hbm.config.GeneralConfig; +import com.hbm.world.gen.component.BrutalistFeatures.ElevatedLab1; + +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraft.world.gen.structure.MapGenStructure; +import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraft.world.gen.structure.StructureComponent; +import net.minecraft.world.gen.structure.StructureStart; + +//stuff like the exclusive n rare shipping containers. +//it's 'special' because it's not unique but also limited +public class MapGenSpecialFeatures extends MapGenStructure { + //suuuuuper efficient for .contains() + Set locs = new HashSet(); + + /** String ID for this MapGen */ + @Override + public String func_143025_a() { + return "NTMSpecialFeatures"; + } + + @Override + protected boolean canSpawnStructureAtCoords(int chunkX, int chunkZ) { + + if(locs.isEmpty()) { + + Random rand = new Random(this.worldObj.getSeed()); + double theta = rand.nextDouble() * Math.PI * 2; + int ringMax = 4; //each ring of structures has more (and is farther) than the last + int ringDist = 1; + final int total = 16; //for now + //no biome checks necessary, underground caches can always be a backup + for(int i = 1; i <= total; i++) { + double dist = 312D * (1.25 * ringDist + rand.nextDouble() * 0.5); //5k blocks * random dist in the region of a ring + int cX = (int)Math.round(Math.cos(theta) * dist); + int cZ = (int)Math.round(Math.sin(theta) * dist); + + ChunkCoordIntPair pair = new ChunkCoordIntPair(cX, cZ); + locs.add(pair); + + theta += Math.PI * 2 / ringMax; + + if(i == (ringDist - 1) * 4 + ringMax) { + ringDist++; + + if(i + ringDist * 4 > total) //last ring may be sparser, but evenly spaced too + ringMax = total - i; + else + ringMax = ringDist * 4; + } + } + } + + return locs.contains(new ChunkCoordIntPair(chunkX, chunkZ)); + } + + @Override + protected StructureStart getStructureStart(int chunkX, int chunkZ) { + return new SpecialStart(this.worldObj, this.rand, chunkX, chunkZ); + } + + public static class SpecialStart extends StructureStart { + + public SpecialStart() {} + + public SpecialStart(World world, Random rand, int chunkX, int chunkZ) { + super(chunkX, chunkZ); + + //test + ElevatedLab1 lab1 = new ElevatedLab1(rand, chunkX * 16 + 8, 64, chunkZ * 16 + 8); + this.components.add(lab1); + + if(GeneralConfig.enableDebugMode) { + System.out.print("[Debug] StructureStart at " + (chunkX * 16 + 8) + ", " + 64 + ", " + (chunkZ * 16 + 8) + "\n[Debug] Components: "); + this.components.forEach((component) -> { + System.out.print(MapGenStructureIO.func_143036_a((StructureComponent) component) + " "); + }); + + System.out.print("\n"); + } + + this.updateBoundingBox(); + } + } + +} diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index a3b812d37..2adce05bf 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -18,14 +18,16 @@ import net.minecraftforge.event.world.WorldEvent; public class NTMWorldGenerator implements IWorldGenerator { - private MapGenNTMFeatures scatteredFeatureGenerator = new MapGenNTMFeatures(); + private MapGenNTMFeatures scatteredFeatureGen; //looks like it's based! thank god! + private MapGenSpecialFeatures specialFeatureGen; //change back if it's actually cringe and throws NPEs private final Random rand = new Random(); //A central random, used to cleanly generate our stuff without affecting vanilla or modded seeds. /** Inits all MapGen upon the loading of a new world. Hopefully clears out structureMaps and structureData when a different world is loaded. */ @SubscribeEvent public void onLoad(WorldEvent.Load event) { - scatteredFeatureGenerator = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); + scatteredFeatureGen = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); + specialFeatureGen = (MapGenSpecialFeatures) getModdedMapGen(new MapGenSpecialFeatures(), EventType.CUSTOM); hasPopulationEvent = false; } @@ -65,8 +67,11 @@ public class NTMWorldGenerator implements IWorldGenerator { protected void generateOverworldStructures(World world, IChunkProvider chunkProvider, int chunkX, int chunkZ) { Block[] ablock = new Block[65536]; //ablock isn't actually used for anything in MapGenStructure - this.scatteredFeatureGenerator.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); - this.scatteredFeatureGenerator.generateStructuresInChunk(world, rand, chunkX, chunkZ); + this.scatteredFeatureGen.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); + this.scatteredFeatureGen.generateStructuresInChunk(world, rand, chunkX, chunkZ); + + this.specialFeatureGen.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); + this.specialFeatureGen.generateStructuresInChunk(world, rand, chunkX, chunkZ); } /* From ff85ddfb167575bc4c1d2ab8ec94a12f732e6273 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 15 Aug 2023 21:23:59 -0700 Subject: [PATCH 007/376] containrs!!! --- .../java/com/hbm/items/tool/ItemWandD.java | 2 +- src/main/java/com/hbm/lib/HbmWorld.java | 2 + .../hbm/world/gen/MapGenSpecialFeatures.java | 9 +- .../gen/component/BrutalistFeatures.java | 8 +- .../world/gen/component/SpecialFeatures.java | 89 +++++++++++++++++++ 5 files changed, 102 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/world/gen/component/SpecialFeatures.java diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index fa0fe9bcc..35f8c6537 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -6,7 +6,7 @@ import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; import com.hbm.world.gen.MapGenNTMFeatures; -import com.hbm.world.gen.component.BrutalistFeatures.ElevatedLab1; +import com.hbm.world.gen.component.BrutalistFeatures.ElevatedPrefab1; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index dc8739707..ceb91a336 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -8,6 +8,7 @@ import com.hbm.world.gen.component.BunkerComponents; import com.hbm.world.gen.component.CivilianFeatures; import com.hbm.world.gen.component.OfficeFeatures; import com.hbm.world.gen.component.RuinFeatures; +import com.hbm.world.gen.component.SpecialFeatures; import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import cpw.mods.fml.common.IWorldGenerator; @@ -49,5 +50,6 @@ public class HbmWorld { RuinFeatures.registerComponents(); BunkerComponents.registerComponents(); BrutalistFeatures.registerComponents(); + SpecialFeatures.registerComponents(); } } diff --git a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java index 16d5ecd6d..5111a406f 100644 --- a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java @@ -5,7 +5,7 @@ import java.util.Random; import java.util.Set; import com.hbm.config.GeneralConfig; -import com.hbm.world.gen.component.BrutalistFeatures.ElevatedLab1; +import com.hbm.world.gen.component.SpecialFeatures.SpecialContainer; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; @@ -45,6 +45,9 @@ public class MapGenSpecialFeatures extends MapGenStructure { ChunkCoordIntPair pair = new ChunkCoordIntPair(cX, cZ); locs.add(pair); + if(GeneralConfig.enableDebugMode) + System.out.println("SpecialFeature: " + (pair.chunkXPos * 16 + 8) + ", Y, " + (pair.chunkZPos * 16 + 8)); + theta += Math.PI * 2 / ringMax; if(i == (ringDist - 1) * 4 + ringMax) { @@ -74,8 +77,8 @@ public class MapGenSpecialFeatures extends MapGenStructure { super(chunkX, chunkZ); //test - ElevatedLab1 lab1 = new ElevatedLab1(rand, chunkX * 16 + 8, 64, chunkZ * 16 + 8); - this.components.add(lab1); + SpecialContainer shipping = new SpecialContainer(rand, chunkX * 16 + 8, 64, chunkZ * 16 + 8); + this.components.add(shipping); if(GeneralConfig.enableDebugMode) { System.out.print("[Debug] StructureStart at " + (chunkX * 16 + 8) + ", " + 64 + ", " + (chunkZ * 16 + 8) + "\n[Debug] Components: "); diff --git a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java index 13d1c1c4e..9ba8696a7 100644 --- a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java @@ -23,17 +23,17 @@ import net.minecraftforge.common.BiomeDictionary.Type; public class BrutalistFeatures { public static void registerComponents() { - MapGenStructureIO.func_143031_a(ElevatedLab1.class, "NTMElevatedLab1"); + MapGenStructureIO.func_143031_a(ElevatedPrefab1.class, "NTMElevatedPrefab1"); } //might be other than a lab, placeholder :P - public static class ElevatedLab1 extends Component { + public static class ElevatedPrefab1 extends Component { protected int type; - public ElevatedLab1() { super(); } + public ElevatedPrefab1() { super(); } - public ElevatedLab1(Random rand, int minX, int minY, int minZ) { + public ElevatedPrefab1(Random rand, int minX, int minY, int minZ) { super(rand, minX, minY, minZ, 16, 11, 14); this.type = rand.nextInt(2); diff --git a/src/main/java/com/hbm/world/gen/component/SpecialFeatures.java b/src/main/java/com/hbm/world/gen/component/SpecialFeatures.java new file mode 100644 index 000000000..7664f2b6e --- /dev/null +++ b/src/main/java/com/hbm/world/gen/component/SpecialFeatures.java @@ -0,0 +1,89 @@ +package com.hbm.world.gen.component; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraft.world.gen.structure.StructureBoundingBox; + +public class SpecialFeatures { + + public static void registerComponents() { + MapGenStructureIO.func_143031_a(SpecialContainer.class, "NTMSpecialContainer"); + } + + public static class SpecialContainer extends Component { + + public SpecialContainer() { + + } + + public SpecialContainer(Random rand, int minX, int minY, int minZ) { + super(rand, minX, minY, minZ, 3, 3, 9); + + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + if(hpos == -1 && !this.setAverageHeight(world, box, this.boundingBox.minY)) { + return false; + } + + fillWithAir(world, box, 1, 1, 1, 2, 2, 8); + + //floor + fillWithBlocks(world, box, 0, 0, 0, 3, 0, 1, ModBlocks.deco_steel); + fillWithBlocks(world, box, 1, 0, 2, 2, 0, 7, ModBlocks.deco_steel); + fillWithBlocks(world, box, 0, 0, 8, 3, 0, 9, ModBlocks.deco_steel); + fillWithBlocks(world, box, 1, 0, 1, 2, 0, 1, ModBlocks.cm_block); + fillWithBlocks(world, box, 1, 0, 8, 2, 0, 8, ModBlocks.cm_block); + //roof + fillWithBlocks(world, box, 0, 3, 0, 3, 3, 9, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 0, 3, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 3, 3, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 0, 3, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 3, 3, 7, box); + //walls + fillWithBlocks(world, box, 0, 1, 0, 0, 2, 0, ModBlocks.deco_steel); + fillWithBlocks(world, box, 0, 1, 1, 0, 2, 8, ModBlocks.cm_sheet); + fillWithBlocks(world, box, 0, 1, 9, 0, 2, 9, ModBlocks.deco_steel); + fillWithBlocks(world, box, 1, 1, 9, 2, 2, 9, ModBlocks.cm_sheet); + fillWithBlocks(world, box, 3, 1, 9, 3, 2, 9, ModBlocks.deco_steel); + fillWithBlocks(world, box, 3, 1, 1, 3, 2, 8, ModBlocks.cm_sheet); + fillWithBlocks(world, box, 3, 1, 0, 3, 2, 0, ModBlocks.deco_steel); + //doors + placeDoor(world, box, ModBlocks.door_metal, 1, false, false, 2, 1, 0); + placeDoor(world, box, ModBlocks.door_metal, 1, true, false, 1, 1, 0); + + return true; + } + + @Override + protected boolean setAverageHeight(World world, StructureBoundingBox box, int y) { + + int total = 0; + int iterations = 0; + + for(int z = this.boundingBox.minZ; z <= this.boundingBox.maxZ; z++) { + for(int x = this.boundingBox.minX; x <= this.boundingBox.maxX; x++) { + if(box.isVecInside(x, y, z)) { + total += Math.max(world.getTopSolidOrLiquidBlock(x, z), 1); // underwater :3c + iterations++; + } + } + } + + if(iterations == 0) + return false; + + this.hpos = total / iterations; //finds mean of every block in bounding box + this.boundingBox.offset(0, this.hpos - this.boundingBox.minY, 0); + return true; + } + } +} From 40af290153ec7eb1340c7201a8a8f4636d12b905 Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 16 Aug 2023 20:44:32 -0700 Subject: [PATCH 008/376] mhmm --- src/main/java/com/hbm/lib/HbmWorld.java | 4 +- .../hbm/world/gen/MapGenSpecialFeatures.java | 111 +++++++++++++----- .../com/hbm/world/gen/NTMWorldGenerator.java | 4 +- 3 files changed, 86 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index ceb91a336..b2ff4699c 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -22,6 +22,8 @@ public class HbmWorld { initWorldGen(); } + public static NTMWorldGenerator worldGenerator; + public static void initWorldGen() { //MapGenStructureIO.registerStructure(StructureStartTest.class, "HFR_STRUCTURE"); @@ -33,7 +35,7 @@ public class HbmWorld { registerWorldGen(new HbmWorldGen(), 1); - NTMWorldGenerator worldGenerator = new NTMWorldGenerator(); + worldGenerator = new NTMWorldGenerator(); registerWorldGen(worldGenerator, 1); //Ideally, move everything over from HbmWorldGen to NTMWorldGenerator MinecraftForge.EVENT_BUS.register(worldGenerator); //registerWorldGen(new WorldGenTest(), 1); diff --git a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java index 5111a406f..e10456e98 100644 --- a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java @@ -1,12 +1,15 @@ package com.hbm.world.gen; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Random; import java.util.Set; import com.hbm.config.GeneralConfig; import com.hbm.world.gen.component.SpecialFeatures.SpecialContainer; +import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.gen.structure.MapGenStructure; @@ -18,54 +21,102 @@ import net.minecraft.world.gen.structure.StructureStart; //it's 'special' because it's not unique but also limited public class MapGenSpecialFeatures extends MapGenStructure { //suuuuuper efficient for .contains() + //do i even need chunkcoordintpairs? idk Set locs = new HashSet(); + //efficient enough for books n shit + List bookLocs = new ArrayList(); /** String ID for this MapGen */ @Override public String func_143025_a() { return "NTMSpecialFeatures"; } - + @Override protected boolean canSpawnStructureAtCoords(int chunkX, int chunkZ) { + if(locs.isEmpty()) + generatePositions(); - if(locs.isEmpty()) { + return locs.contains(new ChunkCoordIntPair(chunkX, chunkZ)); + } + + //i'll probs make a system to predict which locations are what in advance + //seems like biomes can be cached/gen'd without creating the chunk, thankfully + //vec3 will be the angle + distance from provided coords, given in chunk coords + /*public Vec3 findClosestPosition(int chunkX, int chunkZ) { + createBookList(); + + long time = System.nanoTime(); + + ChunkCoordIntPair pair = new ChunkCoordIntPair(0, 0); + long dist = Long.MAX_VALUE; + for(ChunkCoordIntPair loc : bookLocs) { + int x = loc.chunkXPos - chunkX; + int z = loc.chunkZPos - chunkZ; + long cont = x * x + z * z; - Random rand = new Random(this.worldObj.getSeed()); - double theta = rand.nextDouble() * Math.PI * 2; - int ringMax = 4; //each ring of structures has more (and is farther) than the last - int ringDist = 1; - final int total = 16; //for now - //no biome checks necessary, underground caches can always be a backup - for(int i = 1; i <= total; i++) { - double dist = 312D * (1.25 * ringDist + rand.nextDouble() * 0.5); //5k blocks * random dist in the region of a ring - int cX = (int)Math.round(Math.cos(theta) * dist); - int cZ = (int)Math.round(Math.sin(theta) * dist); - - ChunkCoordIntPair pair = new ChunkCoordIntPair(cX, cZ); - locs.add(pair); - - if(GeneralConfig.enableDebugMode) - System.out.println("SpecialFeature: " + (pair.chunkXPos * 16 + 8) + ", Y, " + (pair.chunkZPos * 16 + 8)); - - theta += Math.PI * 2 / ringMax; - - if(i == (ringDist - 1) * 4 + ringMax) { - ringDist++; - - if(i + ringDist * 4 > total) //last ring may be sparser, but evenly spaced too - ringMax = total - i; - else - ringMax = ringDist * 4; - } + if(cont < dist) { + pair = loc; + dist = cont; } } - return locs.contains(new ChunkCoordIntPair(chunkX, chunkZ)); + System.out.print(System.nanoTime() - time); + + return Vec3.createVectorHelper(pair.chunkXPos - chunkX, 0, pair.chunkZPos - chunkZ); + } + + protected void createBookList() { + if(locs.isEmpty()) + generatePositions(); + + if(!bookLocs.isEmpty()) return; + + long time = System.nanoTime(); + + for(ChunkCoordIntPair loc : locs) { + bookLocs.add(loc); + } + + System.out.print(System.nanoTime() - time); + }*/ + + protected void generatePositions() { + //for safety: maybe mandate interactions with these methods to an outside class/wrapper who say "fuck you" + Random rand = new Random(this.worldObj.getSeed()); //TODO: worldObj is null until func_15139_a is called!! very bad!!! + double theta = rand.nextDouble() * Math.PI * 2; + int ringMax = 4; //each ring of structures has more (and is farther) than the last + int ringDist = 1; + final int total = 16; //for now + //no biome checks necessary, underground caches can always be a backup + for(int i = 1; i <= total; i++) { + double dist = 312D * (1.25 * ringDist + rand.nextDouble() * 0.5); //5k blocks * random dist in the region of a ring + int cX = (int)Math.round(Math.cos(theta) * dist); + int cZ = (int)Math.round(Math.sin(theta) * dist); + + ChunkCoordIntPair pair = new ChunkCoordIntPair(cX, cZ); + locs.add(pair); + + if(GeneralConfig.enableDebugMode) + System.out.println("SpecialFeature: " + (pair.chunkXPos * 16 + 8) + ", Y, " + (pair.chunkZPos * 16 + 8)); + + theta += Math.PI * 2 / ringMax; + + if(i == (ringDist - 1) * 4 + ringMax) { + ringDist++; + //maybe insert random theta each time? + if(i + ringDist * 4 > total) //last ring may be sparser, but evenly spaced too + ringMax = total - i; + else + ringMax = ringDist * 4; + } + } } @Override protected StructureStart getStructureStart(int chunkX, int chunkZ) { + locs.remove(new ChunkCoordIntPair(chunkX, chunkZ)); + return new SpecialStart(this.worldObj, this.rand, chunkX, chunkZ); } diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 2adce05bf..3f168c68d 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -26,8 +26,8 @@ public class NTMWorldGenerator implements IWorldGenerator { /** Inits all MapGen upon the loading of a new world. Hopefully clears out structureMaps and structureData when a different world is loaded. */ @SubscribeEvent public void onLoad(WorldEvent.Load event) { - scatteredFeatureGen = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); - specialFeatureGen = (MapGenSpecialFeatures) getModdedMapGen(new MapGenSpecialFeatures(), EventType.CUSTOM); + scatteredFeatureGen = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); //TODO: set worlds to a non-null value here. + specialFeatureGen = (MapGenSpecialFeatures) getModdedMapGen(new MapGenSpecialFeatures(), EventType.CUSTOM); //we've got access to it plain n simple here anyway hasPopulationEvent = false; } From b6eaf25b992e9a18ab299d2b032add0686e77462 Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 18 Aug 2023 18:13:00 -0700 Subject: [PATCH 009/376] i'm too tired dr kel larping --- .../java/com/hbm/items/tool/ItemWandD.java | 15 ++++++------- .../hbm/world/gen/MapGenSpecialFeatures.java | 18 +++++++--------- .../com/hbm/world/gen/NTMWorldGenerator.java | 8 ++++--- .../hbm/world/gen/component/Component.java | 21 +++++++++++++++++-- .../world/gen/component/OfficeFeatures.java | 11 ++++++++++ 5 files changed, 50 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 35f8c6537..984f849d5 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,18 +2,15 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.lib.HbmWorld; import com.hbm.lib.Library; -import com.hbm.world.gen.MapGenNTMFeatures; -import com.hbm.world.gen.component.BrutalistFeatures.ElevatedPrefab1; +import com.hbm.world.gen.component.OfficeFeatures.LargeOfficeCorner; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -37,13 +34,17 @@ public class ItemWandD extends Item { //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + //HbmWorld.worldGenerator.specialFeatureGen.findClosestPosition(pos.blockX >> 4, pos.blockZ >> 4); + int i = pos.blockX >> 4; int j = pos.blockZ >> 4; - MapGenNTMFeatures.Start start = new MapGenNTMFeatures.Start(world, world.rand, i, j); + //MapGenNTMFeatures.Start start = new MapGenNTMFeatures.Start(world, world.rand, i, j); i = (i << 4) + 8; j = (j << 4) + 8; - start.generateStructure(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32)); + LargeOfficeCorner corner = new LargeOfficeCorner(world.rand, i, 64, j); + corner.addComponentParts(world, world.rand, corner.getBoundingBox()); + //start.generateStructure(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32)); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); diff --git a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java index e10456e98..5cca710ce 100644 --- a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java @@ -32,6 +32,10 @@ public class MapGenSpecialFeatures extends MapGenStructure { return "NTMSpecialFeatures"; } + public void setWorld(World world) { + this.worldObj = world; + } + @Override protected boolean canSpawnStructureAtCoords(int chunkX, int chunkZ) { if(locs.isEmpty()) @@ -43,11 +47,9 @@ public class MapGenSpecialFeatures extends MapGenStructure { //i'll probs make a system to predict which locations are what in advance //seems like biomes can be cached/gen'd without creating the chunk, thankfully //vec3 will be the angle + distance from provided coords, given in chunk coords - /*public Vec3 findClosestPosition(int chunkX, int chunkZ) { + public Vec3 findClosestPosition(int chunkX, int chunkZ) { createBookList(); - long time = System.nanoTime(); - ChunkCoordIntPair pair = new ChunkCoordIntPair(0, 0); long dist = Long.MAX_VALUE; for(ChunkCoordIntPair loc : bookLocs) { @@ -61,8 +63,6 @@ public class MapGenSpecialFeatures extends MapGenStructure { } } - System.out.print(System.nanoTime() - time); - return Vec3.createVectorHelper(pair.chunkXPos - chunkX, 0, pair.chunkZPos - chunkZ); } @@ -72,18 +72,14 @@ public class MapGenSpecialFeatures extends MapGenStructure { if(!bookLocs.isEmpty()) return; - long time = System.nanoTime(); - for(ChunkCoordIntPair loc : locs) { bookLocs.add(loc); } - - System.out.print(System.nanoTime() - time); - }*/ + } protected void generatePositions() { //for safety: maybe mandate interactions with these methods to an outside class/wrapper who say "fuck you" - Random rand = new Random(this.worldObj.getSeed()); //TODO: worldObj is null until func_15139_a is called!! very bad!!! + Random rand = new Random(this.worldObj.getSeed()); double theta = rand.nextDouble() * Math.PI * 2; int ringMax = 4; //each ring of structures has more (and is farther) than the last int ringDist = 1; diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 3f168c68d..172c9bd2d 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -19,15 +19,17 @@ import net.minecraftforge.event.world.WorldEvent; public class NTMWorldGenerator implements IWorldGenerator { private MapGenNTMFeatures scatteredFeatureGen; //looks like it's based! thank god! - private MapGenSpecialFeatures specialFeatureGen; //change back if it's actually cringe and throws NPEs + public MapGenSpecialFeatures specialFeatureGen; //change back if it's actually cringe and throws NPEs private final Random rand = new Random(); //A central random, used to cleanly generate our stuff without affecting vanilla or modded seeds. /** Inits all MapGen upon the loading of a new world. Hopefully clears out structureMaps and structureData when a different world is loaded. */ @SubscribeEvent public void onLoad(WorldEvent.Load event) { - scatteredFeatureGen = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); //TODO: set worlds to a non-null value here. - specialFeatureGen = (MapGenSpecialFeatures) getModdedMapGen(new MapGenSpecialFeatures(), EventType.CUSTOM); //we've got access to it plain n simple here anyway + scatteredFeatureGen = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); + specialFeatureGen = (MapGenSpecialFeatures) getModdedMapGen(new MapGenSpecialFeatures(), EventType.CUSTOM); + specialFeatureGen.setWorld(event.world); //doesn't matter on the client so we're good anyway + hasPopulationEvent = false; } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 0d86e2cac..d64f95ef4 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -6,6 +6,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; +import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.config.StructureConfig; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.tileentity.machine.TileEntityLockableBase; @@ -39,7 +40,7 @@ abstract public class Component extends StructureComponent { protected Component(Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ ) { super(0); - this.coordBaseMode = rand.nextInt(4); + this.coordBaseMode = 0;//rand.nextInt(4); switch(this.coordBaseMode) { case 0: @@ -435,6 +436,22 @@ abstract public class Component extends StructureComponent { } } + protected void placeLootBlock(World world, StructureBoundingBox box, Random rand, int featureX, int featureY, int featureZ, ItemStack stack) { + int posX = this.getXWithOffset(featureX, featureZ); + int posY = this.getYWithOffset(featureY); + int posZ = this.getZWithOffset(featureX, featureZ); + + if(!box.isVecInside(posX, posY, posZ)) return; + + world.setBlock(posX, posY, posZ, ModBlocks.deco_loot, 0, 2); + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(posX, posY, posZ); + + if(loot != null && loot.items.isEmpty()) { + loot.addItem(stack, rand.nextGaussian() * 0.02, 0, rand.nextGaussian() * 0.02); + } + } + /** * Places random bobblehead with a randomized orientation at specified location */ @@ -690,7 +707,7 @@ abstract public class Component extends StructureComponent { } } } - + //TODO replace the shitty block selector with something else. probably a lambda that returns a metablock for convenience protected void fillWithRandomizedBlocks(World world, StructureBoundingBox box, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, Random rand, BlockSelector selector) { //so i don't have to replace shit if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) diff --git a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index 7fcba838a..a6322c4c6 100644 --- a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -3,10 +3,16 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.items.special.ItemBookLore; import com.hbm.lib.HbmChestContents; +import com.hbm.lib.HbmWorld; import com.hbm.util.LootGenerator; + import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.gen.structure.MapGenStructureIO; import net.minecraft.world.gen.structure.StructureBoundingBox; @@ -546,6 +552,11 @@ public class OfficeFeatures { placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 1, 10, 11, box); LootGenerator.lootMedicine(world, this.getXWithOffset(1, 11), this.getYWithOffset(10), this.getZWithOffset(1, 11)); + //if(rand.nextInt(3) == 0) { + Vec3 pair = HbmWorld.worldGenerator.specialFeatureGen.findClosestPosition(this.boundingBox.minX >> 4, this.boundingBox.minZ >> 4); + ItemStack book = ItemBookLore.createBook(pair.xCoord * 16 + ", " + pair.zCoord * 16, 1, 0x7F0037, 0xFFFFFF); + placeLootBlock(world, box, rand, 8, 10, 10, book); + //} //this hurt my soul return true; From bd06c6ec8b7bfa533335bd5f2b72435746e4ce60 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 28 Aug 2023 15:35:12 -0700 Subject: [PATCH 010/376] hh --- .../java/com/hbm/items/tool/ItemWandD.java | 23 +++++----------- .../java/com/hbm/lib/HbmChestContents.java | 25 ++++++++++++++++++ .../com/hbm/world/gen/MapGenNTMFeatures.java | 2 -- .../hbm/world/gen/MapGenSpecialFeatures.java | 25 ++++-------------- .../com/hbm/world/gen/NTMWorldGenerator.java | 6 ++--- .../hbm/world/gen/component/Component.java | 4 +-- .../world/gen/component/OfficeFeatures.java | 11 -------- .../hbm/world/gen/component/RuinFeatures.java | 26 +++++++++++++++++++ src/main/resources/assets/hbm/lang/en_US.lang | 6 +++++ 9 files changed, 74 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 1560b01d8..18fde60fa 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -3,21 +3,16 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; import com.hbm.util.TrackerUtil; +import com.hbm.world.gen.MapGenNTMFeatures; -import cpw.mods.fml.relauncher.ReflectionHelper; -import net.minecraft.entity.EntityTracker; -import net.minecraft.entity.EntityTrackerEntry; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.IntHashMap; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import net.minecraft.world.WorldServer; +import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -40,18 +35,14 @@ public class ItemWandD extends Item { vnt.explode();*/ //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); - - //HbmWorld.worldGenerator.specialFeatureGen.findClosestPosition(pos.blockX >> 4, pos.blockZ >> 4); - + int i = pos.blockX >> 4; int j = pos.blockZ >> 4; - //MapGenNTMFeatures.Start start = new MapGenNTMFeatures.Start(world, world.rand, i, j); + MapGenNTMFeatures.Start start = new MapGenNTMFeatures.Start(world, world.rand, i, j); i = (i << 4) + 8; j = (j << 4) + 8; - LargeOfficeCorner corner = new LargeOfficeCorner(world.rand, i, 64, j); - corner.addComponentParts(world, world.rand, corner.getBoundingBox()); - //start.generateStructure(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32)); + start.generateStructure(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32)); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); @@ -73,7 +64,7 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - EntityNukeTorex torex = new EntityNukeTorex(world); + /*EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); torex.getDataWatcher().updateObject(10, 1.5F); world.spawnEntityInWorld(torex); @@ -81,7 +72,7 @@ public class ItemWandD extends Item { IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); EntityTrackerEntry entry = (EntityTrackerEntry) map.lookup(torex.getEntityId()); entry.blocksDistanceThreshold = 1000;*/ - TrackerUtil.setTrackingRange(world, torex, 1000); + //TrackerUtil.setTrackingRange(world, torex, 1000); //world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, 150, pos.blockX, pos.blockY + 1, pos.blockZ)); //DungeonToolbox.generateBedrockOreWithChance(world, world.rand, pos.blockX, pos.blockZ, EnumBedrockOre.TITANIUM, new FluidStack(Fluids.SULFURIC_ACID, 500), 2, 1); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 045896b42..d166e3bab 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -16,6 +16,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; +import net.minecraft.world.ChunkCoordIntPair; public class HbmChestContents { @@ -452,4 +453,28 @@ public class HbmChestContents { return ItemBookLore.createBook(key, pages, 0x1E1E1E, 0x46EA44); } + + public static ItemStack generateRuinBook(Random rand, int chunkX, int chunkZ) { + ChunkCoordIntPair pair = HbmWorld.worldGenerator.specialFeatureGen.findClosestPosition(chunkX, chunkZ); + int[] vec = new int[] { pair.chunkXPos - chunkX, pair.chunkZPos - chunkZ }; + int dist = (int) Math.sqrt(vec[0] * vec[0] + vec[1] * vec[1]); + + String conf = "book_lore.ruin_special."; + if(dist > 128) { + dist -= dist * .5F * (.5F - rand.nextFloat()); + conf += "low"; + } else if(dist > 64) { + dist -= dist * .25F * (.5F - rand.nextFloat()); + conf += "med"; + } else { + conf += "high"; + } + + String angle = Math.round(Math.toDegrees(Math.atan2(vec[0], vec[1])) * 10000D) / 10000D + ""; + String res = (Math.round((dist * 16) / 1000D * 100D) / 100D) + ""; + + ItemStack book = ItemBookLore.createBook("ruin_special", 1, 0x770011, 0xFFFFFF); + ItemBookLore.addArgs(book, 0, res, angle, conf); + return book; + } } diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index 79c863242..5b24ea05a 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -161,8 +161,6 @@ public class MapGenNTMFeatures extends MapGenStructure { this.components.add(officeCorner); break; } } - //ElevatedLab1 lab1 = new ElevatedLab1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); - //this.components.add(lab1); if(GeneralConfig.enableDebugMode) { System.out.print("[Debug] StructureStart at " + (chunkX * 16 + 8) + ", " + posY + ", " + (chunkZ * 16 + 8) + "\n[Debug] Components: "); diff --git a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java index 5cca710ce..e6a104c8d 100644 --- a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java @@ -23,8 +23,6 @@ public class MapGenSpecialFeatures extends MapGenStructure { //suuuuuper efficient for .contains() //do i even need chunkcoordintpairs? idk Set locs = new HashSet(); - //efficient enough for books n shit - List bookLocs = new ArrayList(); /** String ID for this MapGen */ @Override @@ -46,13 +44,13 @@ public class MapGenSpecialFeatures extends MapGenStructure { //i'll probs make a system to predict which locations are what in advance //seems like biomes can be cached/gen'd without creating the chunk, thankfully - //vec3 will be the angle + distance from provided coords, given in chunk coords - public Vec3 findClosestPosition(int chunkX, int chunkZ) { - createBookList(); + public ChunkCoordIntPair findClosestPosition(int chunkX, int chunkZ) { + if(locs.isEmpty()) + generatePositions(); ChunkCoordIntPair pair = new ChunkCoordIntPair(0, 0); long dist = Long.MAX_VALUE; - for(ChunkCoordIntPair loc : bookLocs) { + for(ChunkCoordIntPair loc : locs) { int x = loc.chunkXPos - chunkX; int z = loc.chunkZPos - chunkZ; long cont = x * x + z * z; @@ -63,18 +61,7 @@ public class MapGenSpecialFeatures extends MapGenStructure { } } - return Vec3.createVectorHelper(pair.chunkXPos - chunkX, 0, pair.chunkZPos - chunkZ); - } - - protected void createBookList() { - if(locs.isEmpty()) - generatePositions(); - - if(!bookLocs.isEmpty()) return; - - for(ChunkCoordIntPair loc : locs) { - bookLocs.add(loc); - } + return pair; } protected void generatePositions() { @@ -111,8 +98,6 @@ public class MapGenSpecialFeatures extends MapGenStructure { @Override protected StructureStart getStructureStart(int chunkX, int chunkZ) { - locs.remove(new ChunkCoordIntPair(chunkX, chunkZ)); - return new SpecialStart(this.worldObj, this.rand, chunkX, chunkZ); } diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 172c9bd2d..45d7a24a2 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -17,9 +17,9 @@ import static net.minecraftforge.event.terraingen.TerrainGen.*; import net.minecraftforge.event.world.WorldEvent; public class NTMWorldGenerator implements IWorldGenerator { - - private MapGenNTMFeatures scatteredFeatureGen; //looks like it's based! thank god! - public MapGenSpecialFeatures specialFeatureGen; //change back if it's actually cringe and throws NPEs + //turns out minecraft is cringe and WorldEvent.Load can be/is called after chunks are provided + private MapGenNTMFeatures scatteredFeatureGen = new MapGenNTMFeatures(); + public MapGenSpecialFeatures specialFeatureGen = new MapGenSpecialFeatures(); private final Random rand = new Random(); //A central random, used to cleanly generate our stuff without affecting vanilla or modded seeds. diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index d64f95ef4..e11e5aca5 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -528,7 +528,7 @@ abstract public class Component extends StructureComponent { //Turns out, this entire time every single minecraft structure is mirrored instead of rotated when facing East and North //Also turns out, it's a scarily easy fix that they somehow didn't see *entirely* @Override - protected int getXWithOffset(int x, int z) { + public int getXWithOffset(int x, int z) { switch(this.coordBaseMode) { case 0: return this.boundingBox.minX + x; @@ -544,7 +544,7 @@ abstract public class Component extends StructureComponent { } @Override - protected int getZWithOffset(int x, int z) { + public int getZWithOffset(int x, int z) { switch(this.coordBaseMode) { case 0: return this.boundingBox.minZ + z; diff --git a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index a6322c4c6..244c1c8f4 100644 --- a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -3,16 +3,11 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.items.special.ItemBookLore; import com.hbm.lib.HbmChestContents; -import com.hbm.lib.HbmWorld; import com.hbm.util.LootGenerator; import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.gen.structure.MapGenStructureIO; import net.minecraft.world.gen.structure.StructureBoundingBox; @@ -551,12 +546,6 @@ public class OfficeFeatures { LootGenerator.lootCapStash(world, this.getXWithOffset(6, 11), this.getYWithOffset(13), this.getZWithOffset(6, 11)); placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 1, 10, 11, box); LootGenerator.lootMedicine(world, this.getXWithOffset(1, 11), this.getYWithOffset(10), this.getZWithOffset(1, 11)); - - //if(rand.nextInt(3) == 0) { - Vec3 pair = HbmWorld.worldGenerator.specialFeatureGen.findClosestPosition(this.boundingBox.minX >> 4, this.boundingBox.minZ >> 4); - ItemStack book = ItemBookLore.createBook(pair.xCoord * 16 + ", " + pair.zCoord * 16, 1, 0x7F0037, 0xFFFFFF); - placeLootBlock(world, box, rand, 8, 10, 10, book); - //} //this hurt my soul return true; diff --git a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java index 914b01b7e..ff494c6b0 100644 --- a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java @@ -3,8 +3,10 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.lib.HbmChestContents; import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraft.world.gen.structure.MapGenStructureIO; import net.minecraft.world.gen.structure.StructureBoundingBox; @@ -18,6 +20,21 @@ public class RuinFeatures { MapGenStructureIO.func_143031_a(NTMRuin4.class, "NTMRuin4"); } + public static void placeBook(World world, StructureBoundingBox box, Random rand, int minX, int minZ, int maxX, int maxZ, Component com) { + int i = minX + rand.nextInt(maxX); + int j = minZ + rand.nextInt(maxZ); + + int posX = com.getXWithOffset(i, j); + int posZ = com.getZWithOffset(i, j); + + if(box.isVecInside(posX, 64, posZ)) { + int topHeight = world.getTopSolidOrLiquidBlock(posX, posZ); + + ItemStack book = HbmChestContents.generateRuinBook(rand, posX >> 4, posZ >> 4); + com.placeLootBlock(world, box, rand, i, topHeight - com.getBoundingBox().minY, j, book); + } + } + public static class NTMRuin1 extends Component { private static ConcreteBricks RandomConcreteBricks = new ConcreteBricks(); @@ -86,6 +103,9 @@ public class RuinFeatures { this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); + if(rand.nextInt(3) == 0) //it's all in one chunk so it's fine + placeBook(world, box, rand, 1, 1, 7, 9, this); + return true; } } @@ -206,6 +226,9 @@ public class RuinFeatures { this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 8 - 1, 0, 3, Blocks.gravel, Blocks.air, false); this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 5, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); + if(rand.nextInt(3) == 0) + placeBook(world, box, rand, 1, 5, 7, 9, this); + return true; } } @@ -267,6 +290,9 @@ public class RuinFeatures { this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 4, 0, 5, Blocks.gravel, Blocks.air, false); this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 6, 10 - 1, 0, 11 - 1, Blocks.gravel, Blocks.air, false); + if(rand.nextInt(3) == 0) + placeBook(world, box, rand, 1, 1, 4, 10, this); + return true; } } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 87e424890..910f32ce9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -446,6 +446,12 @@ book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CO book_lore.beacon.page.10=using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] +book_lore.ruin_special.name=Detection Printout +book_lore.ruin_special.page.0=§lDETECTION $ ----------------- $ DIST: %1$s km $ THETA: %2$s° $ PROGNOSIS $ %3$s +book_lore.ruin_special.low=Low-confidence detection. Distance is large and imprecise; high chance of interference. +book_lore.ruin_special.med=Medium-confidence detection. Chance of interference is low; further investigation recommended. +book_lore.ruin_special.high=High-confidence detection. Location precisely triangulated by sensors; expedition urgently recommended. + cannery.f1=[ Press F1 for help ] cannery.centrifuge=Gas Centrifuge From 8a96acc190088d092195f45d2ce7738530ad99e9 Mon Sep 17 00:00:00 2001 From: Vaern Date: Thu, 31 Aug 2023 16:24:46 -0700 Subject: [PATCH 011/376] tests --- .../java/com/hbm/items/tool/ItemWandD.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 5f1e94b36..927a1bd12 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,12 +2,15 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; import com.hbm.util.TrackerUtil; import com.hbm.world.gen.MapGenNTMFeatures; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; @@ -35,8 +38,29 @@ public class ItemWandD extends Item { vnt.explode();*/ //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + + for(int i = 0; i < 2; i++) { + for(int k = 0; k < 2; k++) { + for(int j = 0; j < 6; j++) { + double r = world.rand.nextGaussian(); - int i = pos.blockX >> 4; + Block b; + int meta = 0; + if(r < -1) { + b = ModBlocks.steel_beam; + } else if(r < .15) { + b = ModBlocks.brick_concrete_stairs; + meta = world.rand.nextInt(16); + } else { + b = ModBlocks.brick_concrete; + } + + world.setBlock(pos.blockX + i, pos.blockY + j + 1, pos.blockZ + k, b, meta, 2); + } + } + } + + /*int i = pos.blockX >> 4; int j = pos.blockZ >> 4; MapGenNTMFeatures.Start start = new MapGenNTMFeatures.Start(world, world.rand, i, j); From 43fafaccb18f84276c28b4b641b34105d8b9263d Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 3 Sep 2023 20:41:20 -0700 Subject: [PATCH 012/376] :p --- .../java/com/hbm/items/tool/ItemWandD.java | 80 ++++++++++++++++--- 1 file changed, 71 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 927a1bd12..1a5fce43d 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -39,23 +39,85 @@ public class ItemWandD extends Item { //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); - for(int i = 0; i < 2; i++) { - for(int k = 0; k < 2; k++) { - for(int j = 0; j < 6; j++) { + int mI = 2; + int mK = 2; + + if(!player.isSneaking()) { + for(int i = 0; i < mI; i++) { + for(int k = 0; k < mK; k++) { + for(int j = 0; j < 6; j++) { + double r = world.rand.nextGaussian(); + + Block b; + int meta = 0; + if(r < -1) { + b = Blocks.iron_bars; + } else if(r < .1) { + + int h = world.rand.nextInt(20); + if(h < 5) + b = ModBlocks.brick_concrete_broken_stairs; + else if(h < 10) + b = ModBlocks.brick_concrete_cracked_stairs; + else + b = ModBlocks.brick_concrete_stairs; + + meta = world.rand.nextInt(16); + } else { + int h = world.rand.nextInt(20); + if(h < 5) + b = ModBlocks.brick_concrete_broken; + else if(h < 10) + b = ModBlocks.brick_concrete_cracked; + else + b = ModBlocks.brick_concrete; + } + + world.setBlock(pos.blockX + i, pos.blockY + j + 1, pos.blockZ + k, b, meta, 2); + } + } + } + } else { + for(int i = 0; i < mI; i++) { + for(int k = 0; k < mK; k++) { double r = world.rand.nextGaussian(); Block b; int meta = 0; - if(r < -1) { - b = ModBlocks.steel_beam; - } else if(r < .15) { - b = ModBlocks.brick_concrete_stairs; + if(r < -2) { + b = Blocks.iron_bars; + } else if(r < -1) { + b = ModBlocks.concrete_brick_slab; + meta = 8; + int h = world.rand.nextInt(20); + + if(h < 5) + meta |= 3; + else if(h < 10) + meta |= 2; + + } else if(r < .1) { + + int h = world.rand.nextInt(20); + if(h < 5) + b = ModBlocks.brick_concrete_broken_stairs; + else if(h < 10) + b = ModBlocks.brick_concrete_cracked_stairs; + else + b = ModBlocks.brick_concrete_stairs; + meta = world.rand.nextInt(16); } else { - b = ModBlocks.brick_concrete; + int h = world.rand.nextInt(20); + if(h < 5) + b = ModBlocks.brick_concrete_broken; + else if(h < 10) + b = ModBlocks.brick_concrete_cracked; + else + b = ModBlocks.brick_concrete; } - world.setBlock(pos.blockX + i, pos.blockY + j + 1, pos.blockZ + k, b, meta, 2); + world.setBlock(pos.blockX + i, pos.blockY + 1, pos.blockZ + k, b, meta, 2); } } } From 0d33363eaf8f9b136208cd85b4f62ba095d01b71 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 7 Dec 2023 19:50:07 -0500 Subject: [PATCH 013/376] an unspeakably large commit Contains the whole fucking glyphid PR. ill tell why later --- .../blocks/generic/BlockGlyphidSpawner.java | 125 +++-- .../java/com/hbm/config/CommonConfig.java | 6 +- src/main/java/com/hbm/config/MobConfig.java | 128 ++++- .../java/com/hbm/config/RadiationConfig.java | 6 + .../java/com/hbm/entity/EntityMappings.java | 5 +- .../com/hbm/entity/effect/EntityMist.java | 124 ++++- .../grenade/EntityDisperserCanister.java | 76 +++ .../com/hbm/entity/logic/EntityWaypoint.java | 139 +++++ .../hbm/entity/mob/EntityCreeperPhosgene.java | 1 + .../com/hbm/entity/mob/EntityGlyphid.java | 476 +++++++++++++++--- .../hbm/entity/mob/EntityGlyphidBehemoth.java | 86 +++- .../hbm/entity/mob/EntityGlyphidBlaster.java | 6 +- .../entity/mob/EntityGlyphidBombardier.java | 19 +- .../hbm/entity/mob/EntityGlyphidBrawler.java | 8 +- .../hbm/entity/mob/EntityGlyphidBrenda.java | 34 +- .../hbm/entity/mob/EntityGlyphidNuclear.java | 88 +++- .../hbm/entity/mob/EntityGlyphidScout.java | 369 ++++++++++---- .../entity/pathfinder/PathFinderUtils.java | 50 ++ .../hbm/entity/projectile/EntityAcidBomb.java | 3 +- .../hbm/entity/projectile/EntityChemical.java | 64 ++- .../standard/BlockAllocatorGlyphidDig.java | 90 ++++ .../handler/pollution/PollutionHandler.java | 52 +- .../hbm/inventory/FluidContainerRegistry.java | 4 +- .../com/hbm/inventory/OreDictManager.java | 12 +- .../com/hbm/inventory/fluid/FluidType.java | 3 + .../java/com/hbm/inventory/fluid/Fluids.java | 22 +- .../inventory/fluid/trait/FT_Pheromone.java | 43 ++ .../hbm/inventory/fluid/trait/FluidTrait.java | 2 + .../fluid/trait/FluidTraitSimple.java | 6 +- .../inventory/recipes/ChemplantRecipes.java | 10 + .../recipes/LiquefactionRecipes.java | 1 + .../hbm/inventory/recipes/MixerRecipes.java | 2 + src/main/java/com/hbm/items/ModItems.java | 21 +- .../com/hbm/items/machine/ItemFluidTank.java | 2 +- .../com/hbm/items/weapon/ItemDisperser.java | 76 +++ src/main/java/com/hbm/lib/HbmWorldGen.java | 19 +- .../java/com/hbm/lib/ModDamageSource.java | 3 +- src/main/java/com/hbm/main/ClientProxy.java | 4 +- .../projectile/RenderGenericGrenade.java | 14 +- .../machine/TileEntityChimneyBrick.java | 4 +- .../machine/TileEntityChimneyIndustrial.java | 3 +- .../com/hbm/world/feature/GlyphidHive.java | 55 +- src/main/resources/assets/hbm/lang/en_US.lang | 36 +- .../hbm/textures/gui/fluids/pheromone.png | Bin 0 -> 423 bytes .../hbm/textures/gui/fluids/pheromone_m.png | Bin 0 -> 423 bytes .../items/chem_icon_MEAT_PROCESSING.png | Bin 0 -> 326 bytes .../hbm/textures/items/disperser_canister.png | Bin 0 -> 376 bytes .../items/disperser_canister_overlay.png | Bin 0 -> 202 bytes .../hbm/textures/items/glyphid_gland.png | Bin 0 -> 339 bytes 49 files changed, 1949 insertions(+), 348 deletions(-) create mode 100644 src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java create mode 100644 src/main/java/com/hbm/entity/logic/EntityWaypoint.java create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java create mode 100644 src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java create mode 100644 src/main/java/com/hbm/items/weapon/ItemDisperser.java create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/pheromone.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/pheromone_m.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_MEAT_PROCESSING.png create mode 100644 src/main/resources/assets/hbm/textures/items/disperser_canister.png create mode 100644 src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png create mode 100644 src/main/resources/assets/hbm/textures/items/glyphid_gland.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index f02a8efba..f2acc1999 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -1,7 +1,7 @@ package com.hbm.blocks.generic; -import java.util.List; -import java.util.Random; +import java.util.*; +import java.util.function.Function; import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityGlyphid; @@ -16,9 +16,13 @@ import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; + +import com.hbm.util.Tuple.Pair; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.EnumDifficulty; @@ -34,6 +38,18 @@ public class BlockGlyphidSpawner extends BlockContainer { public Item getItemDropped(int meta, Random rand, int fortune) { return ModItems.egg_glyphid; } + private static final ArrayList, int[]>> spawnMap = new ArrayList<>(); + + static{ + //big thanks to martin for the suggestion of using functions + spawnMap.add(new Pair<>(EntityGlyphid::new, MobConfig.glyphidChance)); + spawnMap.add(new Pair<>(EntityGlyphidBombardier::new, MobConfig.bombardierChance)); + spawnMap.add(new Pair<>(EntityGlyphidBrawler::new, MobConfig.brawlerChance)); + spawnMap.add(new Pair<>(EntityGlyphidBlaster::new, MobConfig.blasterChance)); + spawnMap.add(new Pair<>(EntityGlyphidBehemoth::new, MobConfig.behemothChance)); + spawnMap.add(new Pair<>(EntityGlyphidBrenda::new, MobConfig.brendaChance)); + spawnMap.add(new Pair<>(EntityGlyphidNuclear::new, MobConfig.johnsonChance)); + } @Override public int quantityDropped(int meta, int fortune, Random rand) { @@ -46,47 +62,88 @@ public class BlockGlyphidSpawner extends BlockContainer { } public static class TileEntityGlpyhidSpawner extends TileEntity { - + + boolean initialSpawn = true; + @Override public void updateEntity() { - - if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 60 == 0 && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { - - int count = 0; - - for(Object e : worldObj.loadedEntityList) { - if(e instanceof EntityGlyphid) { - count++; - if(count >= MobConfig.spawnMax) return; - } - } + float soot; + + if(!worldObj.isRemote && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { + + if (initialSpawn || worldObj.getTotalWorldTime() % MobConfig.swarmCooldown == 0) { + + if (worldObj.getBlock(xCoord, yCoord + 1, zCoord) != Blocks.air) { + return; + } + int count = 0; + + for (Object e : worldObj.loadedEntityList) { + if (e instanceof EntityGlyphid) { + count++; + if (count >= MobConfig.spawnMax) return; + } + } + + List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 6, yCoord + 1, zCoord - 6, xCoord + 7, yCoord + 9, zCoord + 7)); + soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); + + if (list.size() <= 3) { + + ArrayList currentSwarm = createSwarm(soot); + + for (EntityGlyphid glyphid : currentSwarm) { + glyphid.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); + worldObj.spawnEntityInWorld(glyphid); + glyphid.moveEntity(worldObj.rand.nextGaussian(), 0, worldObj.rand.nextGaussian()); + } + + if (!initialSpawn && worldObj.rand.nextInt(MobConfig.scoutSwarmSpawnChance + 1) == 0 && soot >= MobConfig.scoutThreshold) { + EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); + scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); + worldObj.spawnEntityInWorld(scout); + } + + initialSpawn = false; + + } - float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); - List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 6, yCoord + 1, zCoord - 6, xCoord + 7, yCoord + 9, zCoord + 7)); - - if(list.size() < 3) { - EntityGlyphid glyphid = createGlyphid(soot); - glyphid.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); - this.worldObj.spawnEntityInWorld(glyphid); - } - - if(worldObj.rand.nextInt(20) == 0 && soot >= MobConfig.scoutThreshold) { - EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); - scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); - this.worldObj.spawnEntityInWorld(scout); } } } - - public EntityGlyphid createGlyphid(float soot) { + + public ArrayList createSwarm(float soot) { + Random rand = new Random(); - if(soot < MobConfig.tier2Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); - if(soot < MobConfig.tier3Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphidBrawler(worldObj); - if(soot < MobConfig.tier4Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBehemoth(worldObj); - if(soot < MobConfig.tier5Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrenda(worldObj); + ArrayList currentSpawns = new ArrayList<>(); - return rand.nextInt(3) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidNuclear(worldObj); + int swarmAmount = (int) Math.min(MobConfig.baseSwarmSize * Math.max(MobConfig.swarmScalingMult * (soot / MobConfig.sootStep), 1), 10); + + while(currentSpawns.size() <= swarmAmount) { + //(dys)functional programing + for (Pair, int[]> glyphid : spawnMap) { + + int[] chance = glyphid.getValue(); + int adjustedChance = (int) (chance[0] + (chance[1] - chance[1] / Math.max(((soot + 1)/3 ), 1))); + if (rand.nextInt(100) <= adjustedChance) { + currentSpawns.add(glyphid.getKey().apply(worldObj)); + } + } + } + return currentSpawns; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("initialSpawn", initialSpawn); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.initialSpawn = nbt.getBoolean("initialSpawn"); } } } diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index 7e121b26e..578f98bef 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -74,7 +74,11 @@ public class CommonConfig { prop.comment = comment; return prop.getString(); } - + public static int[] createConfigIntList(Configuration config, String category, String name, String comment, int[] def){ + Property prop = config.get(category, name, def); + prop.comment = comment; + return prop.getIntList(); + } public static String[] createConfigStringList(Configuration config, String category, String name, String comment) { Property prop = config.get(category, name, new String[] { "PLACEHOLDER" }); prop.comment = comment; diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 8ce250f40..81724a61b 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -30,14 +30,41 @@ public class MobConfig { public static boolean enableHives = true; public static int hiveSpawn = 256; - public static double scoutThreshold = 0.1; - public static double tier2Threshold = 1; - public static double tier3Threshold = 10; - public static double tier4Threshold = 50; - public static double tier5Threshold = 100; + public static double scoutThreshold = 5; + public static int scoutSwarmSpawnChance = 2; + public static boolean waypointDebug = false; + public static int largeHiveChance = 5; + public static int largeHiveThreshold = 30; + + public static int swarmCooldown = 120; + + public static int baseSwarmSize = 5; + public static double swarmScalingMult = 1.2; + public static int sootStep = 50; + + public static int[] glyphidChance = {50, -40}; + public static int[] brawlerChance = {5, 35}; + public static int[] bombardierChance = {20, -15}; + public static int[] blasterChance = {-15, 40}; + public static int[] behemothChance = {-30, 45}; + public static int[] brendaChance = {-50, 60}; + public static int[] johnsonChance = {-50, 60}; + public static double spawnMax = 50; + public static boolean enableInfestation = true; + public static double baseInfestChance = 5; public static double targetingThreshold = 1; - + + public static boolean rampantMode = false; + public static boolean rampantNaturalScoutSpawn = false; + public static double rampantScoutSpawnThresh = 20; + public static int rampantScoutSpawnChance = 1000; + public static boolean scoutInitialSpawn = false; + public static boolean rampantExtendedTargetting = false; + public static boolean rampantDig = false; + public static boolean rampantGlyphidGuidance = false; + public static double rampantSmokeStackOverride = 0.4; + public static double pollutionMult = 3; public static void loadFromConfig(Configuration config) { @@ -69,12 +96,91 @@ public class MobConfig { enableHives = CommonConfig.createConfigBool(config, CATEGORY, "12.G00_enableHives", "Whether glyphid hives should spawn", true); hiveSpawn = CommonConfig.createConfigInt(config, CATEGORY, "12.G01_hiveSpawn", "The average amount of chunks per hive", 256); - scoutThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G02_scoutThreshold", "Minimum amount of soot for scouts to spawn", 0.1); - tier2Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G03_tier2Threshold", "Minimum amount of soot for tier 2 glyphids to spawn", 1); - tier3Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G04_tier3Threshold", "Minimum amount of soot for tier 3 glyphids to spawn", 10); - tier4Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G05_tier4Threshold", "Minimum amount of soot for tier 4 glyphids to spawn", 50); - tier5Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G06_tier5Threshold", "Minimum amount of soot for tier 5 glyphids to spawn", 100); + scoutThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G02_scoutThreshold", "Minimum amount of soot for scouts to spawn", 1); spawnMax = CommonConfig.createConfigDouble(config, CATEGORY, "12.G07_spawnMax", "Maximum amount of glyphids being able to exist at once through natural spawning", 50); targetingThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G08_targetingThreshold", "Minimum amount of soot required for glyphids' extended targeting range to activate", 1D); + + scoutSwarmSpawnChance = CommonConfig.createConfigInt(config, CATEGORY,"12.G10_scoutSwarmSpawn", "How likely are scouts to spawn in swarms, 1 in x chance format", 2); + + largeHiveChance = CommonConfig.createConfigInt(config, CATEGORY,"12.G11_largeHiveChance", "The chance for a large hive to spawn, formula: 1/x", 5); + largeHiveThreshold = CommonConfig.createConfigInt(config, CATEGORY,"12.G12_largeHiveThreshold", "The soot threshold for a large hive to spawn", 20); + + waypointDebug = CommonConfig.createConfigBool(config, CATEGORY,"12.G13_waypointDebug", "Allows glyphid waypoints to be seen, mainly used for debugging, also useful as an aid against them", false); + + //Infested structures + enableInfestation= CommonConfig.createConfigBool(config, CATEGORY, "12.I01_enableInfestation", "Whether structures infested with glyphids should spawn", true); + baseInfestChance = CommonConfig.createConfigDouble(config, CATEGORY, "12.I02_baseInfestChance", "The chance for infested structures to spawn", 5); + + //Glyphid spawn stuff + config.addCustomCategoryComment(CATEGORY, + "General Glyphid spawn logic configuration\n" + + "\n" + + "The chances work in a simple way:\n" + + "The base chance is the stock chance of the bug to spawn within a swarm, unaffected by soot\n" + + "As soot increases, the spawn rate of the bug increases until it reaches a limit determined by the modifier\n" + + "If the default chance is negative, the mob will not spawn by default, and the lower it is,\n" + + "The longer it takes for the modifier to make it positive\n" + + "If the Modifier is negative, the bug will spawn less often in swarms,\n" + + "And its place will be taken over by another one.\n" + + "\n" + + "The formula for glyphid spawning chance is: (chance + (modifier - modifier / (soot/10)))" + + "The formula for glyphid swarm scaling is: (baseSwarmSize * Math.max(swarmScalingMult * soot/sootStep, 1))"); + + + baseSwarmSize = CommonConfig.createConfigInt(config, CATEGORY, "12.GS01_baseSwarmSize", "The basic, soot-less swarm size", 5); + swarmScalingMult = CommonConfig.createConfigDouble(config, CATEGORY, "12.GS02_swarmScalingMult", "By how much should swarm size scale by per soot amount determined below", 1.2); + sootStep = CommonConfig.createConfigInt(config, CATEGORY, "12.GS03_sootStep", "The soot amount the above multiplier applies to the swarm size", 50); + swarmCooldown = CommonConfig.createConfigInt(config, CATEGORY, "12.GS04_swarmCooldown", "How often do glyphid swarms spawn, in seconds", 120) * 20; + + glyphidChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC01_glyphidChance", "Base Spawn chance and soot modifier for a glyphid grunt", new int[]{50, -45}); + brawlerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC02_brawlerChance", "Base Spawn chance and soot modifier for a glyphid brawler", new int[]{10, 30}); + bombardierChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC03_bombardierChance", "Base Spawn chance and soot modifier for a glyphid bombardier", new int[]{20, -15}); + blasterChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC04_blasterChance", "Base Spawn chance and soot modifier for a glyphid blaster", new int[]{-5, 40}); + behemothChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC05_behemothChance", "Base Spawn chance and soot modifier for a glyphid behemoth", new int[]{-30, 45}); + brendaChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC06_brendaChance", "Base Spawn chance and soot modifier for a glyphid brenda", new int[]{-50, 60}); + johnsonChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC07_johnsonChance", "Base Spawn chance and soot modifier for Big Man Johnson", new int[]{-50, 60}); + + String rampantDesc = "Rampant Mode changes glyphid behavior and spawning to be more aggressive, changes include:\n" + + "\n" + + "Glyphid Scouts will naturally spawn alongside normal mobs if soot levels are above a certain threshold\n" + + "Glyphids will always have the extended targetting enabled\n" + + "Glyphids can dig to waypoints\n" + + "The Glyphids will expand always toward your base\n" + + "Scouts will spawn from the start, making glyphids start expanding off the bat\n" + + "Smokestacks have reduced efficiency, only reducing soot by 40%\n"; + + config.addCustomCategoryComment(CATEGORY,rampantDesc); + + //TODO: Disable this before release + rampantMode = CommonConfig.createConfigBool(config, CATEGORY, "12.R01_rampantMode", "The main rampant mode toggle, enables all other features associated with it", false); + + config.addCustomCategoryComment(CATEGORY, "The individual features of rampant can be used regardless of whether the main rampant toggle is enabled or not"); + + rampantNaturalScoutSpawn = CommonConfig.createConfigBool(config, CATEGORY,"12.R02_rampantScoutSpawn", "Whether scouts should spawn natually in highly polluted chunks", false); + rampantScoutSpawnChance = CommonConfig.createConfigInt(config, CATEGORY, "12.R02.1_rampantScoutSpawnChance", "How much soot is needed for scouts to naturally spawn", 20); + rampantScoutSpawnThresh = CommonConfig.createConfigDouble(config, CATEGORY, "12.R02.2_rampantScoutSpawnThresh", "How often scouts naturally spawn per mob population, 1/x format, the bigger the number, the more uncommon the scouts", 600); + rampantExtendedTargetting = CommonConfig.createConfigBool(config, CATEGORY,"12.R03_rampantExtendedTargeting", "Whether Glyphids should have the extended targetting always enabled", false); + rampantDig = CommonConfig.createConfigBool(config, CATEGORY,"12.R04_rampantDig", "Whether Glyphids should be able to dig to waypoints", false); + rampantGlyphidGuidance = CommonConfig.createConfigBool(config, CATEGORY,"12.R05_rampantGlyphidGuidance", "Whether Glyphids should always expand toward a player's spawnpoint", false); + rampantSmokeStackOverride = CommonConfig.createConfigDouble(config, CATEGORY, "12.R06_rampantSmokeStackOverride", "How much should the smokestack multiply soot by when on rampant mode", 0.4); + scoutInitialSpawn = CommonConfig.createConfigBool(config, CATEGORY,"12.R07_scoutInitialSpawn", "Whether glyphid scouts should be able to spawn on the first swarm of a hive, causes glyphids to expand significantly faster", false); + pollutionMult = CommonConfig.createConfigDouble(config, CATEGORY, "12.R08_pollutionMult", "A multiplier for soot emitted, whether you want to increase or decrease it", 1); + + if(rampantMode){ + rampantNaturalScoutSpawn = true; + rampantExtendedTargetting = true; + rampantDig = true; + rampantGlyphidGuidance = true; + scoutSwarmSpawnChance = 1; + scoutThreshold = 0.1; + RadiationConfig.pollutionSpreadThreshold = 25; + if(pollutionMult == 1) { + pollutionMult = 2; + RadiationConfig.pollutionSpreadEfficiency = 0.2 / pollutionMult; + } + else RadiationConfig.pollutionSpreadEfficiency = 0.1 / pollutionMult; + RadiationConfig.sootFogThreshold *= pollutionMult; + + } } } diff --git a/src/main/java/com/hbm/config/RadiationConfig.java b/src/main/java/com/hbm/config/RadiationConfig.java index 25be90304..11498ab0b 100644 --- a/src/main/java/com/hbm/config/RadiationConfig.java +++ b/src/main/java/com/hbm/config/RadiationConfig.java @@ -31,6 +31,9 @@ public class RadiationConfig { public static double buffMobThreshold = 15D; public static double sootFogThreshold = 35D; public static double sootFogDivisor = 120D; + public static double smokeStackSootMult = 0.8; + public static int pollutionSpreadThreshold = 15; + public static double pollutionSpreadEfficiency = 0.05D; public static void loadFromConfig(Configuration config) { @@ -68,5 +71,8 @@ public class RadiationConfig { buffMobThreshold = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_05_buffMobThreshold", "The amount of soot required to buff naturally spawning mobs", 15D); sootFogThreshold = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_06_sootFogThreshold", "How much soot is required for smog to become visible", 35D); sootFogDivisor = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_07_sootFogDivisor", "The divisor for smog, higher numbers will require more soot for the same smog density", 120D); + smokeStackSootMult = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_08_smokeStackSootMult", "How much does smokestack multiply soot by, with decimal values reducing the soot", 0.8); + pollutionSpreadThreshold = CommonConfig.createConfigInt(config, CATEGORY_POL, "POL_09_pollutionSpreadThreshold", "The amount of soot required for it to be spread to nearby chunks, causes it to concentrate more", 15); + pollutionSpreadEfficiency = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_10_pollutionSpreadEfficiency", "How much soot will be spread to nearby chunks at once (percentage), values higher than 0.05 may cause infinite feedback loop of soot", 0.05); } } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 18d585624..1cd6a73d1 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -232,7 +232,10 @@ public class EntityMappings { addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); addEntity(TrainCargoTramTrailer.class, "entity_ntm_cargo_tram_trailer", 250, false); addEntity(TrainTunnelBore.class, "entity_ntm_tunnel_bore", 250, false); - + + addEntity(EntityDisperserCanister.class, "entity_disperser", 250, false); + addEntity(EntityWaypoint.class, "entity_waypoint", 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); diff --git a/src/main/java/com/hbm/entity/effect/EntityMist.java b/src/main/java/com/hbm/entity/effect/EntityMist.java index ceb2dc014..8537520b2 100644 --- a/src/main/java/com/hbm/entity/effect/EntityMist.java +++ b/src/main/java/com/hbm/entity/effect/EntityMist.java @@ -2,15 +2,13 @@ package com.hbm.entity.effect; import java.util.List; +import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.projectile.EntityChemical; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.trait.FT_Corrosive; -import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FT_Poison; -import com.hbm.inventory.fluid.trait.FT_Toxin; -import com.hbm.inventory.fluid.trait.FT_VentRadiation; +import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; @@ -25,13 +23,16 @@ import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class EntityMist extends Entity { @@ -40,12 +41,16 @@ public class EntityMist extends Entity { super(world); this.noClip = true; } - + public int maxAge = 150; public EntityMist setArea(float width, float height) { this.dataWatcher.updateObject(11, width); this.dataWatcher.updateObject(12, height); return this; } + public EntityMist setDuration(int duration){ + this.maxAge = duration; + return this; + } @Override protected void entityInit() { @@ -74,7 +79,7 @@ public class EntityMist extends Entity { if(!worldObj.isRemote) { - if(this.ticksExisted > this.getMaxAge()) { + if(this.ticksExisted >= this.getMaxAge()) { this.setDead(); } @@ -128,7 +133,7 @@ public class EntityMist extends Entity { EntityLivingBase living = e instanceof EntityLivingBase ? (EntityLivingBase) e : null; if(type.temperature >= 100) { - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_boil), 5F + (type.temperature - 100) * 0.02F); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_boil), 0.2F + (type.temperature - 100) * 0.02F); if(type.temperature >= 500) { e.setFire(10); //afterburn for 10 seconds @@ -136,7 +141,7 @@ public class EntityMist extends Entity { } if(type.temperature < -20) { if(living != null) { //only living things are affected - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_cryolator), 5F + (type.temperature + 20) * -0.05F); //5 damage at -20°C with one extra damage every -20°C + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_cryolator), 0.2F + (type.temperature + 20) * -0.05F); //5 damage at -20°C with one extra damage every -20°C living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 2)); living.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 100, 4)); } @@ -160,11 +165,11 @@ public class EntityMist extends Entity { if(type.hasTrait(FT_Corrosive.class)) { FT_Corrosive trait = type.getTrait(FT_Corrosive.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_acid), trait.getRating() / 20F); if(living != null) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(living, ModDamageSource.acid, trait.getRating() / 60F); for(int i = 0; i < 4; i++) { - ArmorUtil.damageSuit(living, i, trait.getRating() / 5); + ArmorUtil.damageSuit(living, i, trait.getRating() / 50); } } } @@ -191,14 +196,39 @@ public class EntityMist extends Entity { trait.affect(living, intensity); } } + + if(type == Fluids.ENDERJUICE && living != null){ + teleportRandomly(living); + } + + if(type.hasTrait(FT_Pheromone.class)){ + + FT_Pheromone pheromone = type.getTrait(FT_Pheromone.class); + + if(living != null) { + living.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 2 * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.regeneration.id, 2 * 20, 0)); + + if (living instanceof EntityGlyphid && pheromone.getType() == 1) { + living.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 60 * 20, 0)); + + } else if (living instanceof EntityPlayer && pheromone.getType() == 2) { + living.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 1)); + } + } + } } protected boolean isExtinguishing(FluidType type) { - return this.getStyleFromType(type) == SprayStyle.MIST && this.getType().temperature < 50 && !type.hasTrait(FT_Flammable.class); + return this.getType().temperature < 50 && !type.hasTrait(FT_Flammable.class); } public int getMaxAge() { - return getStyleFromType(this.getType()) == SprayStyle.GAS ? 600 : 150; + return maxAge; } @Override @@ -242,10 +272,76 @@ public class EntityMist extends Entity { return SprayStyle.NULL; } - + public static enum SprayStyle { MIST, //liquids that have been sprayed into a mist GAS, //things that were already gaseous NULL } + + //terribly copy-pasted from EntityChemical.class, whose method was terribly copy-pasted from EntityEnderman.class + //the fun never ends + public void teleportRandomly(Entity e) { + double x = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D; + double y = this.posY + (double) (this.rand.nextInt(64) - 32); + double z = this.posZ + (this.rand.nextDouble() - 0.5D) * 64.0D; + this.teleportTo(e, x, y, z); + } + + public void teleportTo(Entity e, double x, double y, double z) { + + double targetX = e.posX; + double targetY = e.posY; + double targetZ = e.posZ; + e.posX = x; + e.posY = y; + e.posZ = z; + boolean flag = false; + int i = MathHelper.floor_double(e.posX); + int j = MathHelper.floor_double(e.posY); + int k = MathHelper.floor_double(e.posZ); + + if(e.worldObj.blockExists(i, j, k)) { + boolean flag1 = false; + + while(!flag1 && j > 0) { + Block block = e.worldObj.getBlock(i, j - 1, k); + + if(block.getMaterial().blocksMovement()) { + flag1 = true; + } else { + --e.posY; + --j; + } + } + + if(flag1) { + e.setPosition(e.posX, e.posY, e.posZ); + + if(e.worldObj.getCollidingBoundingBoxes(e, e.boundingBox).isEmpty() && !e.worldObj.isAnyLiquid(e.boundingBox)) { + flag = true; + } + } + } + + if(!flag) { + e.setPosition(targetX, targetY, targetZ); + } else { + short short1 = 128; + + for(int l = 0; l < short1; ++l) { + double d6 = (double) l / ((double) short1 - 1.0D); + float f = (this.rand.nextFloat() - 0.5F) * 0.2F; + float f1 = (this.rand.nextFloat() - 0.5F) * 0.2F; + float f2 = (this.rand.nextFloat() - 0.5F) * 0.2F; + double d7 = targetX + (e.posX - targetX) * d6 + (this.rand.nextDouble() - 0.5D) * (double) e.width * 2.0D; + double d8 = targetY + (e.posY - targetY) * d6 + this.rand.nextDouble() * (double) e.height; + double d9 = targetZ + (e.posZ - targetZ) * d6 + (this.rand.nextDouble() - 0.5D) * (double) e.width * 2.0D; + e.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2); + } + + e.worldObj.playSoundEffect(targetX, targetY, targetZ, "mob.endermen.portal", 1.0F, 1.0F); + e.playSound("mob.endermen.portal", 1.0F, 1.0F); + } + } } diff --git a/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java b/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java new file mode 100644 index 000000000..a3ff8f6f8 --- /dev/null +++ b/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java @@ -0,0 +1,76 @@ +package com.hbm.entity.grenade; + +import com.hbm.entity.effect.EntityMist; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.weapon.ItemDisperser; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class EntityDisperserCanister extends EntityGrenadeBase { + public EntityDisperserCanister(World p_i1773_1_) { + super(p_i1773_1_); + } + + public EntityDisperserCanister(World p_i1774_1_, EntityLivingBase p_i1774_2_) { + super(p_i1774_1_, p_i1774_2_); + } + public EntityDisperserCanister(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { + super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + } + + public EntityDisperserCanister setFluid(int id){ + this.dataWatcher.updateObject(12, id); + return this; + } + @Override + protected void entityInit() { + this.dataWatcher.addObject(12, 0); + this.dataWatcher.addObject(13, 0); + } + public EntityDisperserCanister setType(int id){ + this.dataWatcher.updateObject(13, id); + return this; + } + + public FluidType getFluid() { + return Fluids.fromID(this.dataWatcher.getWatchableObjectInt(12)); + } + public Item getType() { + return Item.getItemById(this.dataWatcher.getWatchableObjectInt(13)); + } + @Override + public void explode() { + if (!worldObj.isRemote) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(getFluid()); + mist.setPosition(posX, posY, posZ); + mist.setArea(10, 5); + mist.setDuration(80); + worldObj.spawnEntityInWorld(mist); + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("fluid", this.dataWatcher.getWatchableObjectInt(12)); + nbt.setInteger("item", this.dataWatcher.getWatchableObjectInt(13)); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(12, nbt.getInteger("fluid")); + this.dataWatcher.updateObject(13, nbt.getInteger("item")); + + } + + +} + + + diff --git a/src/main/java/com/hbm/entity/logic/EntityWaypoint.java b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java new file mode 100644 index 000000000..87ca34199 --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java @@ -0,0 +1,139 @@ +package com.hbm.entity.logic; + +import com.hbm.config.MobConfig; +import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidNuclear; +import com.hbm.entity.mob.EntityGlyphidScout; +import com.hbm.main.MainRegistry; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; + +import java.util.List; + + +public class EntityWaypoint extends Entity { + public EntityWaypoint(World world) { + super(world); + this.isImmuneToFire = true; + this.noClip = true; + } + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, 0); + //this.dataWatcher.addObject(11, 0); + + } + public int maxAge = 2400; + public int radius = 3; + public boolean highPriority = false; + protected EntityWaypoint additional; + public void setHighPriority(){ + highPriority = true; + } + public int getWaypointType(){ + return this.dataWatcher.getWatchableObjectInt(10); + } + + public void setAdditionalWaypoint(EntityWaypoint waypoint){ + additional = waypoint; + } + + public void setWaypointType(int waypointType) { + this.dataWatcher.updateObject(10, waypointType); + } + boolean hasSpawned = false; + public int getColor(){ + switch(getWaypointType()){ + + case 1: return 0x5FA6E8; + + case 2: + case 3: + return 0x127766; + + default: return 0x566573; + } + } + AxisAlignedBB bb; + @Override + public void onEntityUpdate() { + if (ticksExisted >= maxAge) { + this.setDead(); + } + + bb = AxisAlignedBB.getBoundingBox( + this.posX - radius, + this.posY - radius, + this.posZ - radius, + this.posX + radius, + this.posY + radius, + this.posZ + radius); + + if (!worldObj.isRemote) { + + if (ticksExisted % 40 == 0) { + + List targets = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + + for (Entity e : targets) { + if (e instanceof EntityGlyphid) { + + EntityGlyphid bug = ((EntityGlyphid) e); + + if (additional != null && !hasSpawned) { + worldObj.spawnEntityInWorld(additional); + hasSpawned = true; + } + + boolean exceptions = bug.getWaypoint() != this + || e instanceof EntityGlyphidScout + || e instanceof EntityGlyphidNuclear; + + if(!exceptions) + bug.setCurrentTask(getWaypointType(), additional); + + if (getWaypointType() == 2) { + if (e instanceof EntityGlyphidScout) + setDead(); + } else { + setDead(); + } + + } + } + } + } else if(MobConfig.waypointDebug) { + + double x = bb.minX + (rand.nextDouble() - 0.5) * (bb.maxX - bb.minX); + double y = bb.minY + rand.nextDouble() * (bb.maxY - bb.minY); + double z = bb.minZ + (rand.nextDouble() - 0.5) * (bb.maxZ - bb.minZ); + + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 0.5F); + fx.setFloat("base", 0.75F); + fx.setFloat("max", 2F); + fx.setInteger("life", 50 + worldObj.rand.nextInt(10)); + fx.setInteger("color", getColor()); + fx.setDouble("posX", x); + fx.setDouble("posY", y); + fx.setDouble("posZ", z); + MainRegistry.proxy.effectNT(fx); + } + + } + + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + this.setWaypointType(nbt.getInteger("type")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setInteger("type", getWaypointType()); + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java b/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java index dc6015870..c3636fa8d 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java @@ -37,6 +37,7 @@ public class EntityCreeperPhosgene extends EntityCreeper { mist.setType(Fluids.PHOSGENE); mist.setPosition(posX, posY, posZ); mist.setArea(10, 5); + mist.setDuration(150); worldObj.spawnEntityInWorld(mist); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 599b66f6a..157e21a89 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -3,29 +3,66 @@ package com.hbm.entity.mob; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Objects; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockGlyphidSpawner; import com.hbm.config.MobConfig; +import com.hbm.entity.logic.EntityWaypoint; import com.hbm.entity.pathfinder.PathFinderUtils; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IExplosionSFX; +import com.hbm.explosion.vanillant.standard.*; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.ResourceManager; +import com.hbm.potion.HbmPotion; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; + +import net.minecraft.util.*; + import net.minecraft.potion.Potion; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; + import net.minecraft.world.World; +import javax.annotation.Nullable; + public class EntityGlyphid extends EntityMob { + //I might have overdone it a little bit + + public boolean hasHome = false; + public int homeX; + public int homeY; + public int homeZ; + protected int currentTask = 0; + + //both of those below are used for digging, so the glyphid remembers what it was doing + protected int previousTask; + protected EntityWaypoint previousWaypoint; + public int taskX; + public int taskY; + public int taskZ; + + //used for digging, bigger glyphids have a longer reach + public int blastSize = Math.min((int) (3 * (getScale()))/2, 5); + public int blastResToDig = Math.min((int) (50 * (getScale() * 2)), 150); + public boolean shouldDig; + + EntityWaypoint taskWaypoint = null; public EntityGlyphid(World world) { super(world); /*this.tasks.addTask(0, new EntityAISwimming(this)); @@ -38,11 +75,11 @@ public class EntityGlyphid extends EntityMob { this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));*/ this.setSize(1.75F, 1F); } - + public ResourceLocation getSkin() { return ResourceManager.glyphid_tex; } - + public double getScale() { return 1.0D; } @@ -61,102 +98,240 @@ public class EntityGlyphid extends EntityMob { this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); } - + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + if(!hasHome) { + homeX = (int) posX; + homeY = (int) posY; + homeZ = (int) posZ; + hasHome = true; + } + + if(this.isPotionActive(Potion.blindness)) { + onBlinded(); + } + + if(getCurrentTask() == 4){ + + //incase the waypoint somehow doesn't exist and it got this task anyway + if(isAtDestination() && taskX == 0) { + setCurrentTask(0, null); + } + //the task cannot be 6 outside of rampant, so this is a non issue p much + } else if (getCurrentTask() == 6 && ticksExisted % 20 == 0 && isAtDestination()) { + swingItem(); + + ExplosionVNT vnt = new ExplosionVNT(worldObj, taskX, taskY + 2, taskZ, blastSize, this); + vnt.setBlockAllocator(new BlockAllocatorGlyphidDig(blastResToDig)); + vnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + vnt.setEntityProcessor(null); + vnt.setPlayerProcessor(null); + vnt.explode(); + + this.setCurrentTask(previousTask, previousWaypoint); + } + + this.setBesideClimbableBlock(isCollidedHorizontally); + + if(ticksExisted % 100 == 0) { + this.swingItem(); + } + } + } + + @Override protected void dropFewItems(boolean byPlayer, int looting) { - if(rand.nextInt(3) == 0) this.entityDropItem(new ItemStack(ModItems.glyphid_meat, 1 + rand.nextInt(2) + looting), 0F); + super.dropFewItems(byPlayer, looting); + Item drop = isBurning() ? ModItems.glyphid_meat_grilled : ModItems.glyphid_meat; + if(rand.nextInt(2) == 0) this.entityDropItem(new ItemStack(drop, ((int)getScale()*2) + looting), 0F); } @Override protected Entity findPlayerToAttack() { if(this.isPotionActive(Potion.blindness)) return null; - EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); - return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; + + EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() && getCurrentTask() != 0 ? 128D : 16D); + return entityplayer != null && (MobConfig.rampantExtendedTargetting || canEntityBeSeen(entityplayer)) ? entityplayer : null; + } + + @Override + protected void updateWanderPath() { + if(getCurrentTask() == 0) { + super.updateWanderPath(); + } } @Override protected void updateEntityActionState() { super.updateEntityActionState(); - - if(this.isPotionActive(Potion.blindness)) { - this.entityToAttack = null; - this.setPathToEntity(null); - } else { - - // hell yeah!! - if(useExtendedTargeting() && this.entityToAttack != null && !this.hasPath()) { - this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); + + if(!this.isPotionActive(Potion.blindness)) { + if (!this.hasPath()) { + + // hell yeah!! + if (useExtendedTargeting() && this.entityToAttack != null) { + this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, true, true)); + } else if (getCurrentTask() != 0) { + this.worldObj.theProfiler.startSection("stroll"); + + if (!isAtDestination()) { + + if (taskWaypoint != null) { + + taskX = (int) taskWaypoint.posX; + taskY = (int) taskWaypoint.posY; + taskZ = (int) taskWaypoint.posZ; + + if (taskWaypoint.highPriority) { + setTarget(taskWaypoint); + } + + } + + if (taskX != 0) { + if(MobConfig.rampantDig) { + + MovingObjectPosition obstacle = findWaypointObstruction(); + if (getScale() >= 1 && getCurrentTask() != 6 && obstacle != null) { + digToWaypoint(obstacle); + } else { + Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); + int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); + this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); + } + + } else { + Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); + int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); + this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); + } + } + } + this.worldObj.theProfiler.endSection(); + + } } } } - + + + public void onBlinded(){ + this.entityToAttack = null; + this.setPathToEntity(null); + fleeingTick = 80; + + if(getScale() >= 1.25){ + if(ticksExisted % 20 == 0) { + for (int i = 0; i < 16; i++) { + float angle = (float) Math.toRadians(360D / 16 * i); + Vec3 rot = Vec3.createVectorHelper(0, 0, 4); + rot.rotateAroundY(angle); + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if (mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + + Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + + if (block == ModBlocks.lantern) { + rotationYaw = 360F / 16 * i; + swingItem(); + //this function is incredibly useful for breaking blocks naturally but obfuscated + //jesus fucking christ who the fuck runs forge? + worldObj.func_147480_a(mop.blockX, mop.blockY, mop.blockZ, false); + } + + } + } + } + } + } + public boolean useExtendedTargeting() { - return PollutionHandler.getPollution(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), PollutionType.SOOT) >= MobConfig.targetingThreshold; + return MobConfig.rampantExtendedTargetting || PollutionHandler.getPollution(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), PollutionType.SOOT) >= MobConfig.targetingThreshold; } @Override protected boolean canDespawn() { - return entityToAttack == null; + return ticksExisted > 3500 && entityToAttack == null && getCurrentTask() == 0; } - + @Override public boolean attackEntityFrom(DamageSource source, float amount) { - + if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote && !source.isFireDamage() && !source.getDamageType().equals(ModDamageSource.s_cryolator)) { byte armor = this.dataWatcher.getWatchableObjectByte(17); - + if(armor != 0) { //if at least one bit of armor is present - + if(amount < getDamageThreshold()) return false; - - int chance = getArmorBreakChance(amount); //chances of armor being broken off - if(this.rand.nextInt(chance) == 0 && amount > 1) { + + //chances of armor being broken off + if(amount > 1 && isArmorBroken(amount)) { breakOffArmor(); amount *= 0.25F; } - + amount -= getDamageThreshold(); if(amount < 0) return true; } - + amount = this.calculateDamage(amount); } - - if(source.isFireDamage()) amount *= 4F; - + + if(source.isFireDamage()) { + //you might be thinking, why would fire damage be nerfed? + //thing is, it bypasses glyphid chitin, making it unbelievably powerful, so this was the most reasonable solution + amount *= 0.7F; + } else if(source.getDamageType().equals("player")) { + amount *= 1.5F; + } else if(source == ModDamageSource.acid || source.equals(new DamageSource(ModDamageSource.s_acid))){ + amount = 0; + } + + if(this.isPotionActive(HbmPotion.phosphorus.getId())){ + amount *= 1.5F; + } + return super.attackEntityFrom(source, amount); } - - public int getArmorBreakChance(float amount) { - return amount < 10 ? 5 : amount < 20 ? 3 : 2; + + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.6, 2), 100); } - + public float calculateDamage(float amount) { byte armor = this.dataWatcher.getWatchableObjectByte(17); int divisor = 1; - + for(int i = 0; i < 5; i++) { if((armor & (1 << i)) > 0) { divisor++; } } - + amount /= divisor; - + return amount; } - + public float getDamageThreshold() { return 0.5F; } - + public void breakOffArmor() { byte armor = this.dataWatcher.getWatchableObjectByte(17); List indices = Arrays.asList(0, 1, 2, 3, 4); Collections.shuffle(indices); - + for(Integer i : indices) { byte bit = (byte) (1 << i); if((armor & bit) > 0) { @@ -169,26 +344,6 @@ public class EntityGlyphid extends EntityMob { } } - @Override - public boolean attackEntityAsMob(Entity victum) { - if(this.isSwingInProgress) return false; - this.swingItem(); - return super.attackEntityAsMob(victum); - } - - @Override - public void onUpdate() { - super.onUpdate(); - - if(!this.worldObj.isRemote) { - this.setBesideClimbableBlock(this.isCollidedHorizontally); - - if(worldObj.getTotalWorldTime() % 200 == 0) { - this.swingItem(); - } - } - } - @Override protected void updateArmSwingProgress() { int i = this.swingDuration(); @@ -206,19 +361,19 @@ public class EntityGlyphid extends EntityMob { this.swingProgress = (float) this.swingProgressInt / (float) i; } - + public int swingDuration() { return 15; } @Override public void setInWeb() { } - + @Override public boolean isOnLadder() { return this.isBesideClimbableBlock(); } - + public boolean isBesideClimbableBlock() { return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; } @@ -234,21 +389,214 @@ public class EntityGlyphid extends EntityMob { this.dataWatcher.updateObject(16, Byte.valueOf(watchable)); } - + + @Override + public boolean attackEntityAsMob(Entity victum) { + if(this.isSwingInProgress) return false; + this.swingItem(); + return super.attackEntityAsMob(victum); + } + + @Override public EnumCreatureAttribute getCreatureAttribute() { return EnumCreatureAttribute.ARTHROPOD; } + /// TASK SYSTEM START /// + public int getCurrentTask(){ + return currentTask; + } + + public EntityWaypoint getWaypoint(){ + return taskWaypoint; + } + + /** + * Sets a new task for the glyphid to do, a waypoint alongside with that task, and refreshes their waypoint coordinates + * @param task The task the glyphid is to do, refer to carryOutTask() + * @param waypoint The waypoint for the task, can be null + */ + public void setCurrentTask(int task, @Nullable EntityWaypoint waypoint){ + currentTask = task; + taskWaypoint = waypoint; + if (taskWaypoint != null) { + + taskX = (int) taskWaypoint.posX; + taskY = (int) taskWaypoint.posY; + taskZ = (int) taskWaypoint.posZ; + + if (taskWaypoint.highPriority) { + this.entityToAttack = null; + this.setPathToEntity(null); + } + + } + carryOutTask(); + } + + /** + * Handles the task system, used mainly for things that only need to be done once, such as setting targets + */ + public void carryOutTask(){ + int task = getCurrentTask(); + + switch(task){ + + //call for reinforcements + case 1: if(taskWaypoint != null){ + communicate(4, taskWaypoint); + setCurrentTask(4, taskWaypoint); + } break; + + //expand the hive, used by the scout + //case 2: expandHive(null); + + //retreat + case 3: + + if (!worldObj.isRemote && taskWaypoint == null) { + + //Then, Come back later + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0 , 0); + + //First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(1); + home.setAdditionalWaypoint(additional); + home.setHighPriority(); + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + worldObj.spawnEntityInWorld(home); + + this.taskWaypoint = home; + communicate(4, home); + setCurrentTask(4, taskWaypoint); + + break; + } + + break; + + //the fourth task (case 4) is to just follow the waypoint path + //fifth task is used only in the scout and big man johnson, for terraforming + + //dig + case 6: + shouldDig = true; + break; + + default: break; + + } + + } + + public void communicate(int task, @Nullable EntityWaypoint waypoint) { + int radius = waypoint != null ? waypoint.radius : 4; + + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( + this.posX - radius, + this.posY - radius, + this.posZ - radius, + this.posX + radius, + this.posY + radius, + this.posZ + radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for (Entity e: bugs){ + if(e instanceof EntityGlyphid && !(e instanceof EntityGlyphidScout)){ + if(((EntityGlyphid) e).getCurrentTask() != task){ + ((EntityGlyphid) e).setCurrentTask(task, waypoint); + } + } + } + } + + /** What each type of glyphid does when it is time to expand the hive. + * @return Whether it has expanded successfully or not + * **/ + public boolean expandHive(){ + return false; + } + + public boolean isAtDestination() { + int destinationRadius = taskWaypoint != null ? (int) Math.pow(taskWaypoint.radius, 2) : 25; + + return this.getDistanceSq(taskX, taskY, taskZ) <= destinationRadius; + } + ///TASK SYSTEM END + + ///DIGGING SYSTEM START + + /** Handles the special digging system, used in Rampant mode due to high potential for destroyed bases**/ + public MovingObjectPosition findWaypointObstruction(){ + Vec3 bugVec = Vec3.createVectorHelper(posX, posY + getEyeHeight(), posZ); + Vec3 waypointVec = Vec3.createVectorHelper(taskX, taskY, taskZ); + //incomplete forge docs my beloved + MovingObjectPosition obstruction = worldObj.func_147447_a(bugVec, waypointVec, false, true, false); + if(obstruction != null){ + Block blockHit = worldObj.getBlock(obstruction.blockX, obstruction.blockY, obstruction.blockZ); + if(blockHit.getExplosionResistance(null) <= blastResToDig){ + return obstruction; + } + } + return null; + } + + public void digToWaypoint(MovingObjectPosition obstacle){ + + EntityWaypoint target = new EntityWaypoint(worldObj); + target.setLocationAndAngles(obstacle.blockX, obstacle.blockY, obstacle.blockZ, 0 , 0); + target.radius = 5; + worldObj.spawnEntityInWorld(target); + + previousTask = getCurrentTask(); + previousWaypoint = getWaypoint(); + + setCurrentTask(6, target); + + Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); + int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); + this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); + + communicate(6, target); + + } + ///DIGGING END + @Override public void writeEntityToNBT(NBTTagCompound nbt) { super.writeEntityToNBT(nbt); nbt.setByte("armor", this.dataWatcher.getWatchableObjectByte(17)); + + nbt.setBoolean("hasHome", hasHome); + nbt.setInteger("homeX", homeX); + nbt.setInteger("homeY", homeY); + nbt.setInteger("homeZ", homeZ); + + nbt.setInteger("taskX", taskX); + nbt.setInteger("taskY", taskY); + nbt.setInteger("taskZ", taskZ); + + nbt.setInteger("task", currentTask); } @Override public void readEntityFromNBT(NBTTagCompound nbt) { super.readEntityFromNBT(nbt); this.dataWatcher.updateObject(17, nbt.getByte("armor")); + + this.hasHome = nbt.getBoolean("hasHome"); + this.homeX = nbt.getInteger("homeX"); + this.homeY = nbt.getInteger("homeY"); + this.homeZ = nbt.getInteger("homeZ"); + + this.taskX = nbt.getInteger("taskX"); + this.taskY = nbt.getInteger("taskY"); + this.taskZ = nbt.getInteger("taskZ"); + + this.currentTask = nbt.getInteger("task"); } + } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java index bf3215059..e042626c2 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java @@ -1,16 +1,30 @@ package com.hbm.entity.mob; +import com.hbm.entity.effect.EntityMist; +import com.hbm.entity.projectile.EntityChemical; +import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; +import net.minecraftforge.fluids.Fluid; public class EntityGlyphidBehemoth extends EntityGlyphid { public EntityGlyphidBehemoth(World world) { super(world); - this.setSize(2.25F, 1.25F); + this.setSize(2.5F, 1.5F); } @Override @@ -26,16 +40,78 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(130D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(25D); } + public int timer = 120; + int breathTime = 0; @Override - public int getArmorBreakChance(float amount) { - return amount < 20 ? 10 : amount < 100 ? 5 : amount > 200 ? 1 : 3; + public void onUpdate(){ + super.onUpdate(); + Entity e = this.getEntityToAttack(); + if (e == null) { + timer = 120; + breathTime = 0; + } else { + if (breathTime > 0) { + if(!isSwingInProgress){ + this.swingItem(); + } + acidAttack(); + rotationYaw = prevRotationYaw; + breathTime--; + } else if (--timer <= 0) { + breathTime = 120; + timer = 120; + } + } + + } + @Override + public boolean attackEntityAsMob(Entity victum) { + return super.attackEntityAsMob(victum); } + @Override + public void onDeath(DamageSource source) { + super.onDeath(source); + if (!worldObj.isRemote) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(Fluids.ACID); + mist.setPosition(posX, posY, posZ); + mist.setArea(10, 4); + mist.setDuration(120); + worldObj.spawnEntityInWorld(mist); + } + } + + + public void acidAttack(){ + if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase) { + this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 20, 6)); + EntityChemical chem = new EntityChemical(worldObj, this); + + chem.setFluid(Fluids.ACID); + worldObj.spawnEntityInWorld(chem); + } + } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + this.entityDropItem(new ItemStack(ModItems.glyphid_gland, 1, Fluids.SULFURIC_ACID.getID()), 1); + super.dropFewItems(byPlayer, looting); + } + @Override + public boolean isArmorBroken(float amount) { + // amount < 5 ? 5 : amount < 10 ? 3 : 2; + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.15, 2), 100); + } + @Override + public int swingDuration() { + return 100; + } @Override public float calculateDamage(float amount) { @@ -44,7 +120,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { for(int i = 0; i < 5; i++) { if((armor & (1 << i)) > 0) { - divisor += 3; + divisor += 4; } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java index 5e922ab49..4c2e649a8 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java @@ -32,8 +32,8 @@ public class EntityGlyphidBlaster extends EntityGlyphidBombardier { } @Override - public int getArmorBreakChance(float amount) { - return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); } @Override @@ -70,7 +70,7 @@ public class EntityGlyphidBlaster extends EntityGlyphidBombardier { @Override public float getSpreadMult() { - return 0.75F; + return 0.5F; } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java index 61750f0ee..3b385e363 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java @@ -4,6 +4,8 @@ import com.hbm.entity.projectile.EntityAcidBomb; import com.hbm.main.ResourceManager; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -23,22 +25,26 @@ public class EntityGlyphidBombardier extends EntityGlyphid { protected double lastY; protected double lastZ; + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); + + } @Override public void onUpdate() { super.onUpdate(); + Entity e = this.getEntityToAttack(); + if(!this.worldObj.isRemote && e instanceof EntityLivingBase) { - if(!this.worldObj.isRemote) { - - Entity e = this.getEntityToAttack(); - - if(this.ticksExisted % 20 == 0 && e != null) { + if(this.ticksExisted % 20 == 0) { this.lastTarget = e; this.lastX = e.posX; this.lastY = e.posY; this.lastZ = e.posZ; } - if(this.ticksExisted % 20 == 1 && e != null) { + if(this.ticksExisted % 20 == 1) { boolean topAttack = rand.nextBoolean(); @@ -72,6 +78,7 @@ public class EntityGlyphidBombardier extends EntityGlyphid { for(int i = 0; i < getBombCount(); i++) { EntityAcidBomb bomb = new EntityAcidBomb(worldObj, posX, posY + 1, posZ); + bomb.setThrower(this); bomb.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, i * getSpreadMult()); bomb.damage = getBombDamage(); worldObj.spawnEntityInWorld(bomb); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java index 749230a42..48d274667 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java @@ -32,19 +32,19 @@ public class EntityGlyphidBrawler extends EntityGlyphid { } @Override - public int getArmorBreakChance(float amount) { - return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); } @Override public float calculateDamage(float amount) { byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; + float divisor = 1; for(int i = 0; i < 5; i++) { if((armor & (1 << i)) > 0) { - divisor += 2; + divisor += 3; } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java index bdce3e7bc..be4486456 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java @@ -1,10 +1,16 @@ package com.hbm.entity.mob; +import com.hbm.entity.effect.EntityMist; +import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -30,13 +36,14 @@ public class EntityGlyphidBrenda extends EntityGlyphid { protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(250D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.2D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); } @Override - public int getArmorBreakChance(float amount) { - return amount < 25 ? 100 : amount > 1000 ? 1 : 10; + public boolean isArmorBroken(float amount) { + // amount < 5 ? 5 : amount < 10 ? 3 : 2; + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.12, 2), 100); } @Override @@ -62,20 +69,27 @@ public class EntityGlyphidBrenda extends EntityGlyphid { } @Override - public void setDead() { + public void onDeath(DamageSource source) { + super.onDeath(source); if(!this.worldObj.isRemote && this.getHealth() <= 0.0F) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(Fluids.PHEROMONE); + mist.setPosition(posX, posY, posZ); + mist.setArea(14, 6); + mist.setDuration(80); + worldObj.spawnEntityInWorld(mist); for(int i = 0; i < 12; ++i) { EntityGlyphid glyphid = new EntityGlyphid(worldObj); glyphid.setLocationAndAngles(this.posX, this.posY + 0.5D, this.posZ, rand.nextFloat() * 360.0F, 0.0F); - glyphid.addPotionEffect(new PotionEffect(Potion.resistance.id, 5 * 60 * 20, 2)); - glyphid.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 5 * 60 * 20, 0)); - glyphid.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 5 * 60 * 20, 4)); - glyphid.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 5 * 60 * 20, 19)); this.worldObj.spawnEntityInWorld(glyphid); glyphid.moveEntity(rand.nextGaussian(), 0, rand.nextGaussian()); } } - - super.setDead(); } + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + super.dropFewItems(byPlayer, looting); + if(rand.nextInt(3) == 0) this.entityDropItem(new ItemStack(ModItems.glyphid_gland, 1, Fluids.PHEROMONE.getID()), 1); + } + } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java index 62a3ae9a6..179a56d54 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -1,27 +1,36 @@ package com.hbm.entity.mob; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.effect.EntityMist; +import com.hbm.entity.logic.EntityWaypoint; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.inventory.fluid.Fluids; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; +import javax.annotation.Nullable; +import java.util.List; + public class EntityGlyphidNuclear extends EntityGlyphid { public int deathTicks; - public EntityGlyphidNuclear(World world) { super(world); this.setSize(2.5F, 1.75F); @@ -38,17 +47,60 @@ public class EntityGlyphidNuclear extends EntityGlyphid { return 2D; } + @Override + public void onUpdate() { + super.onUpdate(); + if (ticksExisted % 20 == 0) { + if (isAtDestination() && getCurrentTask() == 4) { + setCurrentTask(0, null); + } + + if(getCurrentTask() == 2 && getAITarget() == null){ + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 10 * 20, 3)); + } + + if (getCurrentTask() == 5) { + this.setHealth(0); + } + + } + } + + @Override + public void communicate(int task, @Nullable EntityWaypoint waypoint) { + int radius = waypoint != null ? waypoint.radius : 4; + + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( + this.posX - radius, + this.posY - radius, + this.posZ - radius, + this.posX + radius, + this.posY + radius, + this.posZ + radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for (Entity e: bugs){ + if(e instanceof EntityGlyphidScout){ + if(((EntityGlyphid) e).getCurrentTask() != task){ + ((EntityGlyphid) e).setCurrentTask(task, waypoint); + } + } + } + } + + @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); } @Override - public int getArmorBreakChance(float amount) { - return amount < 25 ? 100 : amount > 1000 ? 1 : 10; + public boolean isArmorBroken(float amount) { + // amount < 5 ? 5 : amount < 10 ? 3 : 2; + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.12, 2), 100); } @Override @@ -73,20 +125,44 @@ public class EntityGlyphidNuclear extends EntityGlyphid { return 10F; } + public boolean hasWaypoint = false; @Override protected void onDeathUpdate() { ++this.deathTicks; + if(!hasWaypoint) { + communicate(3, null); + hasWaypoint = true; + } + if(deathTicks == 90){ + int radius = 8; + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( + this.posX - radius, + this.posY - radius, + this.posZ - radius, + this.posX + radius, + this.posY + radius, + this.posZ + radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for (Entity e: bugs){ + if(e instanceof EntityGlyphid){ + addPotionEffect(new PotionEffect(Potion.field_76434_w.id, 20, 6)); + addPotionEffect(new PotionEffect(Potion.fireResistance.id, 15 * 20, 1)); + } + } + } if(this.deathTicks == 100) { if(!worldObj.isRemote) { + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); vnt.setBlockAllocator(new BlockAllocatorStandard(24)); vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); - vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F)); + vnt.setEntityProcessor(new EntityProcessorStandard()); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.explode(); - + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index 181156e09..8c9e5db93 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -1,36 +1,47 @@ package com.hbm.entity.mob; import com.hbm.blocks.ModBlocks; +import com.hbm.config.MobConfig; +import com.hbm.entity.logic.EntityWaypoint; +import com.hbm.handler.pollution.PollutionHandler; import com.hbm.main.ResourceManager; import com.hbm.world.feature.GlyphidHive; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.*; import net.minecraft.world.World; -public class EntityGlyphidScout extends EntityGlyphid { - - public boolean hasHome = false; - public double homeX; - public double homeY; - public double homeZ; +import javax.annotation.Nullable; +import java.util.List; +public class EntityGlyphidScout extends EntityGlyphid { + + boolean hasTarget = false; + int timer; + int scoutingRange = 45; + int minDistanceToHive = 8; + boolean useLargeHive = false; + float largeHiveChance = MobConfig.largeHiveChance; public EntityGlyphidScout(World world) { super(world); this.setSize(1.25F, 0.75F); } - - @Override - public float getDamageThreshold() { - return 0.0F; - } + //extreme measures for anti-scout bullying + @Override + public boolean attackEntityAsMob(Entity victum) { + if(super.attackEntityAsMob(victum) && victum instanceof EntityLivingBase){ + ((EntityLivingBase)victum).addPotionEffect(new PotionEffect(Potion.poison.id, 10 * 20, 3)); + return true; + } + return false; + } @Override public ResourceLocation getSkin() { return ResourceManager.glyphid_scout_tex; @@ -42,116 +53,264 @@ public class EntityGlyphidScout extends EntityGlyphid { } @Override - public int getArmorBreakChance(float amount) { - return 1; + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount, 2), 100); } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(16D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.5D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2D); } - @Override - protected boolean canDespawn() { + public void onUpdate() { + + super.onUpdate(); + + if((getCurrentTask() != 2 || getCurrentTask() != 5) && taskWaypoint == null) { + + if(MobConfig.rampantGlyphidGuidance && PollutionHandler.targetCoords != null){ + if(!hasTarget) { + Vec3 dirVec = playerBaseDirFinder( + Vec3.createVectorHelper(posX, posY, posZ), + PollutionHandler.targetCoords); + + EntityWaypoint target = new EntityWaypoint(worldObj); + target.setLocationAndAngles(dirVec.xCoord, dirVec.yCoord, dirVec.zCoord, 0, 0); + target.maxAge = 300; + target.radius = 6; + worldObj.spawnEntityInWorld(target); + hasTarget = true; + + setCurrentTask(1, target); + } + + if(super.isAtDestination()) { + setCurrentTask(2, null) ; + hasTarget = false; + } + + } else { + setCurrentTask(2, null); + } + + } + + if(getCurrentTask() == 2 || getCurrentTask() == 5) { + + if(!worldObj.isRemote && !hasTarget) { + //Check for whether a big man johnson is nearby, this makes the scout switch into its terraforming task + if(scoutingRange != 60 && findJohnson()){ + setCurrentTask(5, null); + } + + //Placeholder for a more advanced hive design + /* + if(PollutionHandler.getPollution(worldObj, + (int) posX, + (int) posY, + (int) posZ, PollutionHandler.PollutionType.SOOT) >= MobConfig.largeHiveThreshold){ + + useLargeHive = true; + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 3)); + }*/ + + if (expandHive()){ + this.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 180*20, 1)); + hasTarget = true; + } + } + + if (getCurrentTask() == 5 && super.isAtDestination() && doubleCheckHive()) { + communicate(5, taskWaypoint); + } + + if (ticksExisted % 10 == 0 && isAtDestination()) { + timer++; + + if (!worldObj.isRemote && doubleCheckHive()) { + if(timer == 1) { + + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + additional.setWaypointType(0); + + //First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(1); + home.setAdditionalWaypoint(additional); + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + home.maxAge = 1200; + home.radius = 6; + + worldObj.spawnEntityInWorld(home); + + this.taskWaypoint = home; + this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 40 * 20, 10)); + communicate(1, taskWaypoint); + + } else if (timer >= 5) { + + worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); + GlyphidHive.generateBigGround(worldObj, + (int) Math.floor(posX), + (int) Math.floor(posY), + (int) Math.floor(posZ), rand, true); + this.setDead(); + + } else { + communicate(4, taskWaypoint); + } + } + } + } + } + public boolean doubleCheckHive(){ + int length = useLargeHive ? 16 : 8; + for(int i = 0; i < 8; i++) { + float angle = (float) Math.toRadians(360D / 16 * i); + Vec3 rot = Vec3.createVectorHelper(0, 0, length); + rot.rotateAroundY(angle); + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + + Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + + if (block == ModBlocks.glyphid_base) { + setCurrentTask(0 ,null); + hasTarget = false; + return false; + } + + } + } return true; } @Override - public void onUpdate() { - super.onUpdate(); - - if(!worldObj.isRemote) { - - if(!this.hasHome) { - this.homeX = posX; - this.homeY = posY; - this.homeZ = posZ; - this.hasHome = true; - } - - if(rand.nextInt(20) == 0) fleeingTick = 2; + public boolean isAtDestination() { + return this.getCurrentTask() == 2 && super.isAtDestination(); + } - if(this.ticksExisted > 0 && this.ticksExisted % 1200 == 0 && Vec3.createVectorHelper(posX - homeX, posY - homeY, posZ - homeZ).lengthVector() > 8) { - - Block b = worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); - - int accuracy = 16; - for(int i = 0; i < accuracy; i++) { - float angle = (float) Math.toRadians(360D / accuracy * i); - Vec3 rot = Vec3.createVectorHelper(0, 0, 16); - rot.rotateAroundY(angle); - Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); - Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); - MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + public boolean findJohnson(){ + int radius = 8; + + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( + this.posX - radius, + this.posY - radius, + this.posZ - radius, + this.posX + radius, + this.posY + radius, + this.posZ + radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for (Entity e: bugs){ + if(e instanceof EntityGlyphidNuclear){ + return true; + } + } + return false; + } + + @Override + public boolean expandHive() { + + int nestX = rand.nextInt((homeX + scoutingRange) - (homeX - scoutingRange)) + (homeX - scoutingRange); + int nestZ = rand.nextInt((homeZ + scoutingRange) - (homeZ - scoutingRange)) + (homeZ - scoutingRange); + int nestY = worldObj.getHeightValue(nestX, nestZ); + Block b = worldObj.getBlock(nestX, nestY - 1, nestZ); + + boolean distanceCheck = Vec3.createVectorHelper( + nestX - homeX, + nestY - homeY, + nestZ - homeZ).lengthVector() > minDistanceToHive; + + if(distanceCheck && b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { + + if(b == ModBlocks.basalt) { + useLargeHive = true; + largeHiveChance /= 2; + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 3)); + } + if(!worldObj.isRemote) { + EntityWaypoint nest = new EntityWaypoint(worldObj); + nest.setWaypointType(getCurrentTask()); + nest.radius = 5; + + if(useLargeHive) + nest.setHighPriority(); + + nest.setLocationAndAngles(nestX, nestY, nestZ, 0, 0); + worldObj.spawnEntityInWorld(nest); + + taskWaypoint = nest; + + //updates the task coordinates + setCurrentTask(getCurrentTask(), taskWaypoint); + communicate(2, taskWaypoint); + } + return true; + } + return false; + } + + + @Override + public void carryOutTask() { + if (!worldObj.isRemote && taskWaypoint == null) { + switch(getCurrentTask()){ + case 3: + this.removePotionEffect(Potion.moveSlowdown.id); + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 20 * 20, 4)); + + //then, come back later + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + additional.setWaypointType(0); - if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { - - Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); - - if(block == ModBlocks.glyphid_base) { - return; - } - } - } - - if(b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { - this.setDead(); - worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); - GlyphidHive.generate(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand); - } + //First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(2); + home.setAdditionalWaypoint(additional); + home.setHighPriority(); + home.radius = 6; + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + worldObj.spawnEntityInWorld(home); + + communicate(4, home); + break; + + //terraforming task, only used if a big man johnson is near the scout + case 5: + scoutingRange = 60; + minDistanceToHive = 20; } } - } + super.carryOutTask(); + } @Override - protected void updateWanderPath() { - this.worldObj.theProfiler.startSection("stroll"); - boolean flag = false; - int pathX = -1; - int pathY = -1; - int pathZ = -1; - float maxWeight = -99999.0F; - - for(int l = 0; l < 5; ++l) { - int x = MathHelper.floor_double(this.posX + (double) this.rand.nextInt(25) - 12.0D); - int y = MathHelper.floor_double(this.posY + (double) this.rand.nextInt(11) - 5.0D); - int z = MathHelper.floor_double(this.posZ + (double) this.rand.nextInt(25) - 12.0D); - float weight = this.getBlockPathWeight(x, y, z); - - if(weight > maxWeight) { - maxWeight = weight; - pathX = x; - pathY = y; - pathZ = z; - flag = true; - } - } - - if(flag) { - this.setPathToEntity(this.worldObj.getEntityPathToXYZ(this, pathX, pathY, pathZ, 10.0F, true, false, false, true)); - } - - this.worldObj.theProfiler.endSection(); + public boolean useExtendedTargeting() { + return false; } - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setBoolean("hasHome", hasHome); - nbt.setDouble("homeX", homeX); - nbt.setDouble("homeY", homeY); - nbt.setDouble("homeZ", homeZ); + ///RAMPANT MODE STUFFS + + /** Finds the direction from the bug's location to the target and adds it to their current coord + * Used as a performant way to make scouts expand toward the player's spawn point + * @return An adjusted direction vector, to be added into the bug's current position for it to path in the required direction**/ + public static Vec3 playerBaseDirFinder(Vec3 currentLocation, Vec3 target){ + Vec3 dirVec = currentLocation.subtract(target).normalize(); + return Vec3.createVectorHelper( + currentLocation.xCoord + dirVec.xCoord * 10, + currentLocation.yCoord + dirVec.yCoord * 10, + currentLocation.zCoord + dirVec.zCoord * 10 + ); } - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.hasHome = nbt.getBoolean("hasHome"); - this.homeX = nbt.getDouble("homeX"); - this.homeY = nbt.getDouble("homeY"); - this.homeZ = nbt.getDouble("homeZ"); - } } diff --git a/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java index 9d5b2f36c..fc4064646 100644 --- a/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java +++ b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java @@ -59,4 +59,54 @@ public class PathFinderUtils { world.theProfiler.endSection(); return pathentity; } + + public static PathEntity getPathEntityToCoordPartial(World world, Entity fromEntity, int posX, int posY, int posZ, float maxDist, boolean allowDoors, boolean allowBlocked, boolean allowWater, boolean canDrown) { + world.theProfiler.startSection("pathfind"); + int startX = MathHelper.floor_double(fromEntity.posX); + int startY = MathHelper.floor_double(fromEntity.posY + 1.0D); + int startZ = MathHelper.floor_double(fromEntity.posZ); + int maxDistEff = (int) (maxDist + 16.0F); + int minX = startX - maxDistEff; + int minY = startY - maxDistEff; + int minZ = startZ - maxDistEff; + int maxX = startX + maxDistEff; + int maxY = startY + maxDistEff; + int maxZ = startZ + maxDistEff; + ChunkCache chunkcache = new ChunkCache(world, minX, minY, minZ, maxX, maxY, maxZ, 0); + + Vec3 vec = Vec3.createVectorHelper(posX - fromEntity.posX, posY - fromEntity.posY, posZ - fromEntity.posZ); + vec = vec.normalize(); + vec.xCoord *= maxDist; + vec.yCoord *= maxDist; + vec.zCoord *= maxDist; + + int x = (int) Math.floor(fromEntity.posX + vec.xCoord); + int y = (int) Math.floor(fromEntity.posY + vec.yCoord); + int z = (int) Math.floor(fromEntity.posZ + vec.zCoord); + + //this part will adjust the end of the path so it's actually on the ground, it being unreachable causes mobs to slow down + boolean solid = false; + + for(int i = y; i > y - 10; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + + } + + if(!solid) for(int i = y + 10; i > y; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + } + + //PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, toEntity, maxDist); + PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, x, y, z, maxDist); + world.theProfiler.endSection(); + return pathentity; + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java index 8a688df2d..dd928b885 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java +++ b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java @@ -4,6 +4,7 @@ import com.hbm.entity.mob.EntityGlyphid; import com.hbm.lib.ModDamageSource; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -27,7 +28,7 @@ public class EntityAcidBomb extends EntityThrowableInterp { if(mop.typeOfHit == mop.typeOfHit.ENTITY) { if(!(mop.entityHit instanceof EntityGlyphid)) { - mop.entityHit.attackEntityFrom(ModDamageSource.acid, damage); + mop.entityHit.attackEntityFrom(new EntityDamageSourceIndirect(ModDamageSource.s_acid, this, thrower), damage); this.setDead(); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityChemical.java b/src/main/java/com/hbm/entity/projectile/EntityChemical.java index 3eb72cddc..b6119b8c8 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChemical.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChemical.java @@ -4,16 +4,13 @@ import java.awt.Color; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidBehemoth; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.trait.FT_Combustible; -import com.hbm.inventory.fluid.trait.FT_Corrosive; -import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FT_Poison; -import com.hbm.inventory.fluid.trait.FT_Toxin; -import com.hbm.inventory.fluid.trait.FT_VentRadiation; +import com.hbm.inventory.fluid.trait.*; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IRepairable; @@ -43,6 +40,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; + public class EntityChemical extends EntityThrowableNT { /* @@ -211,6 +209,12 @@ public class EntityChemical extends EntityThrowableNT { HbmLivingProps.setOil(living, 300); //doused in oil for 15 seconds } } + if(type.hasTrait(Fluids.DELICIOUS.getClass())) { + if(living != null && living.isEntityAlive()) { + living.heal(2F * (float) intensity); + } + } + } if(this.isExtinguishing()) { @@ -219,7 +223,7 @@ public class EntityChemical extends EntityThrowableNT { if(style == ChemicalStyle.BURNING) { FT_Combustible trait = type.getTrait(FT_Combustible.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), 2F + (trait != null ? (trait.getCombustionEnergy() / 100_000F) : 0)); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), 0.2F + (trait != null ? (trait.getCombustionEnergy() / 100_000F) : 0)); e.setFire(5); } @@ -229,17 +233,17 @@ public class EntityChemical extends EntityThrowableNT { float heat = Math.max(flammable != null ? flammable.getHeatEnergy() / 50_000F : 0, combustible != null ? combustible.getCombustionEnergy() / 100_000F : 0); heat *= intensity; - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), (2F + heat) * (float) intensity); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), (0.2F + heat) * (float) intensity); e.setFire((int) Math.ceil(5 * intensity)); } if(type.hasTrait(FT_Corrosive.class)) { FT_Corrosive trait = type.getTrait(FT_Corrosive.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_acid), trait.getRating() / 50F); - + if(living != null) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(living, getDamage(ModDamageSource.s_acid), trait.getRating() / 50F); for(int i = 0; i < 4; i++) { - ArmorUtil.damageSuit(living, i, (int) Math.ceil(trait.getRating() / 50)); + ArmorUtil.damageSuit(living, i, trait.getRating() / 40); } } } @@ -267,6 +271,26 @@ public class EntityChemical extends EntityThrowableNT { trait.affect(living, intensity); } } + + if(type.hasTrait(FT_Pheromone.class)){ + + FT_Pheromone pheromone = type.getTrait(FT_Pheromone.class); + + if(living != null) { + living.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 2)); + living.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 5 * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 2 * 60 * 20, 4)); + + if (living instanceof EntityGlyphid && pheromone.getType() == 1) { + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 5 * 60 * 20, 4)); + living.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 60 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 60 * 20, 19)); + + } else if (living instanceof EntityPlayer && pheromone.getType() == 2) { + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 2)); + } + } + } if(type == Fluids.XPJUICE) { @@ -301,14 +325,14 @@ public class EntityChemical extends EntityThrowableNT { } //terribly copy-pasted from EntityEnderman.class - protected boolean teleportRandomly(Entity e) { + public boolean teleportRandomly(Entity e) { double x = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D; double y = this.posY + (double) (this.rand.nextInt(64) - 32); double z = this.posZ + (this.rand.nextDouble() - 0.5D) * 64.0D; return this.teleportTo(e, x, y, z); } - protected boolean teleportTo(Entity e, double x, double y, double z) { + public boolean teleportTo(Entity e, double x, double y, double z) { double targetX = e.posX; double targetY = e.posY; @@ -387,7 +411,7 @@ public class EntityChemical extends EntityThrowableNT { FT_VentRadiation trait = type.getTrait(FT_VentRadiation.class); ChunkRadiationManager.proxy.incrementRad(worldObj, mop.blockX, mop.blockY, mop.blockZ, trait.getRadPerMB() * 5); } - + ChemicalStyle style = getStyle(); if(style == ChemicalStyle.BURNING || style == ChemicalStyle.GASFLAME) { @@ -401,6 +425,18 @@ public class EntityChemical extends EntityThrowableNT { } } } + + if(style == ChemicalStyle.BURNING || style == ChemicalStyle.GASFLAME) { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + Block fire = type == Fluids.BALEFIRE ? ModBlocks.balefire : Blocks.fire; + + if(worldObj.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isAir(worldObj, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) { + worldObj.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, fire); + } + } + } if(this.isExtinguishing()) { diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java new file mode 100644 index 000000000..7837c81f2 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java @@ -0,0 +1,90 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockGlyphidSpawner; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockAllocator; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; + +import java.util.HashSet; + +public class BlockAllocatorGlyphidDig implements IBlockAllocator { + + protected double maximum; + protected int resolution; + + public BlockAllocatorGlyphidDig(double maximum) { + this(maximum, 16); + } + + public BlockAllocatorGlyphidDig(double maximum, int resolution) { + this.resolution = resolution; + this.maximum = maximum; + } + + @Override + public HashSet allocate(ExplosionVNT explosion, World world, double x, double y, double z, float size) { + + HashSet affectedBlocks = new HashSet(); + + for(int i = 0; i < this.resolution; ++i) { + for(int j = 0; j < this.resolution; ++j) { + for(int k = 0; k < this.resolution; ++k) { + + if(i == 0 || i == this.resolution - 1 || j == 0 || j == this.resolution - 1 || k == 0 || k == this.resolution - 1) { + + double d0 = (double) ((float) i / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d1 = (double) ((float) j / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d2 = (double) ((float) k / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d3 = Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2); + + d0 /= d3; + d1 /= d3; + d2 /= d3; + + double currentX = x; + double currentY = y; + double currentZ = z; + + double dist = 0; + + for(float stepSize = 0.3F; dist <= explosion.size;) { + + double deltaX = currentX - x; + double deltaY = currentY - y; + double deltaZ = currentZ - z; + dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); + + int blockX = MathHelper.floor_double(currentX); + int blockY = MathHelper.floor_double(currentY); + int blockZ = MathHelper.floor_double(currentZ); + + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() != Material.air) { + float blockResistance = explosion.exploder != null ? explosion.exploder.func_145772_a(explosion.compat, world, blockX, blockY, blockZ, block) : block.getExplosionResistance(explosion.exploder, world, blockX, blockY, blockZ, x, y, z); + if(this.maximum < blockResistance || block == ModBlocks.glyphid_spawner) { + break; + } + } + + if(explosion.exploder == null || explosion.exploder.func_145774_a(explosion.compat, world, blockX, blockY, blockZ, block, explosion.size)) { + affectedBlocks.add(new ChunkPosition(blockX, blockY, blockZ)); + } + + currentX += d0 * (double) stepSize; + currentY += d1 * (double) stepSize; + currentZ += d2 * (double) stepSize; + } + } + } + } + } + + return affectedBlocks; + } +} diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 4ff3b70c1..9255062ef 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -8,13 +8,16 @@ import java.util.Locale; import java.util.Map.Entry; import java.util.UUID; +import com.hbm.config.MobConfig; import com.hbm.config.RadiationConfig; +import com.hbm.entity.mob.EntityGlyphidScout; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.relauncher.Side; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.monster.IMob; @@ -22,10 +25,12 @@ import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.event.entity.living.LivingSpawnEvent; +import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; import net.minecraftforge.event.world.WorldEvent; public class PollutionHandler { @@ -37,7 +42,8 @@ public class PollutionHandler { public static final float SOOT_PER_SECOND = 1F / 25F; /** Baserate of heavy metal generation, balanced around the soot values of combustion engines */ public static final float HEAVY_METAL_PER_SECOND = 1F / 50F; - + public static Vec3 targetCoords; + /////////////////////// /// UTILITY METHODS /// /////////////////////// @@ -53,7 +59,7 @@ public class PollutionHandler { data = new PollutionData(); ppw.pollution.put(pos, data); } - data.pollution[type.ordinal()] = MathHelper.clamp_float(data.pollution[type.ordinal()] + amount, 0F, 10_000F); + data.pollution[type.ordinal()] = MathHelper.clamp_float((float) (data.pollution[type.ordinal()] + amount * MobConfig.pollutionMult), 0F, 10_000F); } public static void decrementPollution(World world, int x, int y, int z, PollutionType type, float amount) { @@ -173,7 +179,9 @@ public class PollutionHandler { public void updateSystem(TickEvent.ServerTickEvent event) { if(event.side == Side.SERVER && event.phase == Phase.END) { - + + int spreadThreshold = RadiationConfig.pollutionSpreadThreshold; + double spreadEff = RadiationConfig.pollutionSpreadEfficiency; eggTimer++; if(eggTimer < 60) return; eggTimer = 0; @@ -192,11 +200,11 @@ public class PollutionHandler { int P = PollutionType.POISON.ordinal(); /* CALCULATION */ - if(data.pollution[S] > 15) { - pollutionForNeightbors[S] = data.pollution[S] * 0.05F; - data.pollution[S] *= 0.8F; + if(data.pollution[S] > spreadThreshold) { + pollutionForNeightbors[S] = (float) (data.pollution[S] * spreadEff); + data.pollution[S] *= 1-spreadEff*4; } else { - data.pollution[S] *= 0.99F; + data.pollution[S] *= 0.8; } data.pollution[H] *= 0.9995F; @@ -334,4 +342,34 @@ public class PollutionHandler { } } } + ///RAMPANT MODE STUFFS/// + + @SubscribeEvent + public void rampantTargetSetter(PlayerSleepInBedEvent event){ + if (MobConfig.rampantGlyphidGuidance) targetCoords = Vec3.createVectorHelper(event.x, event.y, event.z); + } + + @SubscribeEvent + public void rampantScoutPopulator(WorldEvent.PotentialSpawns event){ + //yell at me if this vertical formatting hurts your brain + if(MobConfig.rampantNaturalScoutSpawn + && !event.world.isRemote + && event.world.provider.dimensionId == 0 + && event.type == EnumCreatureType.monster + && event.world.canBlockSeeTheSky(event.x, event.y, event.z)) { + + if (event.world.rand.nextInt(MobConfig.rampantScoutSpawnChance) == 0) { + + float soot = PollutionHandler.getPollution(event.world, event.x, event.y, event.z, PollutionType.SOOT); + + if (soot >= MobConfig.rampantScoutSpawnThresh) { + EntityGlyphidScout scout = new EntityGlyphidScout(event.world); + scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); + event.world.spawnEntityInWorld(scout); + } + } + } + + } + } diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index f6f3d2971..ce44b7eb3 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -69,8 +69,10 @@ public class FluidContainerRegistry { if(type.hasNoContainer()) continue; + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.disperser_canister, 1 , i), new ItemStack(ModItems.disperser_canister_empty), Fluids.fromID(i), 2000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.glyphid_gland, 1 , i), new ItemStack(ModItems.glyphid_gland_empty), Fluids.fromID(i), 4000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_lead_full, 1, id), new ItemStack(ModItems.fluid_tank_lead_empty), type, 1000)); - + if(type.needsLeadContainer()) continue; FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, id), new ItemStack(ModItems.fluid_tank_empty), type, 1000)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index a64fdb6eb..a25849cd1 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -98,6 +98,8 @@ public class OreDictManager { public static final String KEY_CIRCUIT_BISMUTH = "circuitVersatile"; + public static final String KEY_GLYPHID_MEAT = "glyphidMeat"; + /* * MATERIALS */ @@ -300,6 +302,8 @@ public class OreDictManager { /** Any special post-RBMK gating material, namely bismuth and arsenic */ public static final DictFrame ANY_BISMOID = new DictFrame("AnyBismoid"); public static final DictFrame ANY_ASH = new DictFrame("Ash"); + /** Any, nevermind, this should be self-explanatory**/ + public static void registerOres() { @@ -504,7 +508,13 @@ public class OreDictManager { */ OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_bismuth); OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic); - + + /* + * GLYPHID M E A T + */ + OreDictionary.registerOre(KEY_GLYPHID_MEAT, new ItemStack(glyphid_meat)); + OreDictionary.registerOre(KEY_GLYPHID_MEAT, new ItemStack(glyphid_meat_grilled)); + for(NTMMaterial mat : Mats.orderedList) { if(mat.smeltable == SmeltingBehavior.SMELTABLE) { if(mat.shapes.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index d6fa4d759..853a8d2d1 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -171,6 +171,9 @@ public class FluidType { public boolean needsLeadContainer() { return this.traits.containsKey(FT_LeadContainer.class); } + public boolean isDispersable() { + return !(this.traits.containsKey(FT_NoDispersable.class)); + } /** * Called when the tile entity is broken, effectively voiding the fluids. diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 5ca1341f6..61768d294 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -118,6 +118,9 @@ public class Fluids { public static FluidType SOLVENT; //oranic solvent in fact public static FluidType BLOOD; //BLOOD ORB! BLOOD ORB! BLOOD ORB! public static FluidType BLOOD_HOT; + + public static FluidType PHEROMONE; + public static FluidType PHEROMONE_M; public static FluidType SYNGAS; public static FluidType OXYHYDROGEN; public static FluidType RADIOSOLVENT; //DCM-ish made by wacky radio cracking @@ -182,7 +185,8 @@ public class Fluids { public static final FT_NoID NOID = new FT_NoID(); public static final FT_Delicious DELICIOUS = new FT_Delicious(); public static final FT_Leaded LEADED = new FT_Leaded(); - + + public static final FT_NoDispersable NO_DISPERSE= new FT_NoDispersable(); public static void init() { // ##### ##### ##### ##### ## # ##### # # ##### ## # ##### @@ -231,8 +235,8 @@ public class Fluids { PUF6 = new FluidType("PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.1F), new FT_Corrosive(15), GASEOUS); SAS3 = new FluidType("SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(1F), new FT_Corrosive(30), LIQUID); SCHRABIDIC = new FluidType("SCHRABIDIC", 0x006B6B, 5, 0, 5, EnumSymbol.ACID).addTraits(new FT_VentRadiation(1F), new FT_Corrosive(75), new FT_Poison(true, 2), LIQUID); - AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); - ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); + AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS, NO_DISPERSE); + ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS, NO_DISPERSE); ACID = new FluidType("ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(new FT_Corrosive(40), LIQUID); WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID, VISCOUS); CRYOGEL = new FluidType("CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170).addTraits(LIQUID, VISCOUS); @@ -282,7 +286,7 @@ public class Fluids { SEEDSLURRY = new FluidType("SEEDSLURRY", 0x7CC35E, 0, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x7CC35E)).addTraits(LIQUID, VISCOUS); NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60)); SOLVENT = new FluidType("SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xE4E3EF)).addTraits(LIQUID, new FT_Corrosive(30)); - BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, DELICIOUS); BLOOD_HOT = new FluidType("BLOOD_HOT", 0xF22419, 3, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).setTemp(666); //it's funny because it's the satan number SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFFFFFF, 0x131313)).addTraits(GASEOUS); OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); @@ -325,11 +329,12 @@ public class Fluids { HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID); SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID); + PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(1)); + PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(2)); THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, new FT_Corrosive(65)); THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); - FULLERENE = new FluidType(130, "FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); - + FULLERENE = new FluidType(132, "FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -486,7 +491,10 @@ public class Fluids { metaOrder.add(SMOKE); metaOrder.add(SMOKE_LEADED); metaOrder.add(SMOKE_POISON); - + + //bug meth + metaOrder.add(PHEROMONE); + metaOrder.add(PHEROMONE_M); for(FluidType custom : customFluids) metaOrder.add(custom); CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_CHLORINE, false))); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java new file mode 100644 index 000000000..4ebfc8e5c --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java @@ -0,0 +1,43 @@ +package com.hbm.inventory.fluid.trait; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import net.minecraft.util.EnumChatFormatting; + + +import java.io.IOException; +import java.util.List; + +public class FT_Pheromone extends FluidTrait{ + + public int type; + + public FT_Pheromone(int type){ + this.type = type; + } + + public int getType() { + return type; + } + + @Override + public void addInfo(List info) { + + if (type == 1) { + info.add(EnumChatFormatting.AQUA + "[Glyphid Pheromones]"); + } else { + info.add(EnumChatFormatting.BLUE + "[Modified Pheromones]"); + } + + } + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("type").value(type); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.type = obj.get("type").getAsInt(); + } + +} diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index ff2522d09..dd25601c7 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -35,6 +35,8 @@ public abstract class FluidTrait { traitNameMap.put("leadcontainer", FT_LeadContainer.class); traitNameMap.put("delicious", FT_Delicious.class); traitNameMap.put("leaded", FT_Leaded.class); + traitNameMap.put("pheromone", FT_Pheromone.class); + traitNameMap.put("nodisperse", FT_NoDispersable.class); traitNameMap.put("noid", FT_NoID.class); traitNameMap.put("nocontainer", FT_NoContainer.class); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index d282cea42..27628d32a 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -49,7 +49,11 @@ public class FluidTraitSimple { info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]"); } } - + public static class FT_NoDispersable extends FluidTrait { + @Override public void addInfo(List info) { + info.add(EnumChatFormatting.DARK_RED + "[Cannot be thrown from Disperser Canister]"); + } + } public static class FT_Delicious extends FluidTrait { @Override public void addInfoHidden(List info) { info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index f3639536b..f14b4bd10 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -21,6 +21,7 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import cpw.mods.fml.common.Mod; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -401,6 +402,7 @@ public class ChemplantRecipes extends SerializableRecipe { recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200) .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); + recipes.add(new ChemRecipe(102, "THORIUM_SALT", 60) .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000)) .inputItems(new OreDictStack(TH232.nugget(), 2)) @@ -408,6 +410,14 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems( new ItemStack(ModItems.nugget_u233, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1))); + + recipes.add(new ChemRecipe(103, "MEAT_PROCESSING", 200) + .inputItems(new OreDictStack(KEY_GLYPHID_MEAT, 3)) + .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 1000)) + .outputItems(new ItemStack(ModItems.sulfur, 4), + new ItemStack(ModItems.niter, 3)) + .outputFluids(new FluidStack(Fluids.SALIENT, 250))); + } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index ee093f541..3af3808a7 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -59,6 +59,7 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 3), new FluidStack(150, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 4), new FluidStack(50, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(125, Fluids.BIOGAS)); + recipes.put(new ComparableStack(ModItems.glyphid_gland_empty), new FluidStack(2000, Fluids.BIOGAS)); recipes.put(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE), new FluidStack(100, Fluids.FISHOIL)); recipes.put(new ComparableStack(Blocks.double_plant, 1, 0), new FluidStack(100, Fluids.SUNFLOWEROIL)); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 15bf9a25e..fe7b40217 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -83,6 +83,8 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust()))); register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new ComparableStack(ModItems.powder_flux))); + register(Fluids.PHEROMONE_M, new MixerRecipe(2000, 10).setStack1(new FluidStack(Fluids.PHEROMONE, 1500)).setStack2(new FluidStack(Fluids.BLOOD, 500)).setSolid(new ComparableStack(ModItems.pill_herbal))); + } public static void register(FluidType type, MixerRecipe... rec) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6f74b43d8..6d4a7f299 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -935,6 +935,11 @@ public class ModItems { public static Item fluid_barrel_empty; public static Item fluid_barrel_infinite; + public static Item disperser_canister; + public static Item disperser_canister_empty; + public static Item glyphid_gland; + public static Item glyphid_gland_empty; + public static Item syringe_empty; public static Item syringe_antidote; public static Item syringe_poison; @@ -4639,6 +4644,13 @@ public class ModItems { fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); + + disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); + disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":disperser_canister"); + + glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); + glyphid_gland_empty = new Item().setUnlocalizedName("glyphid_gland_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); + siren_track = new ItemCassette().setUnlocalizedName("siren_track").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":cassette"); fluid_duct = new ItemFluidDuct().setUnlocalizedName("fluid_duct").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":duct"); @@ -6359,7 +6371,14 @@ public class ModItems { GameRegistry.registerItem(fluid_barrel_empty, fluid_barrel_empty.getUnlocalizedName()); GameRegistry.registerItem(fluid_barrel_full, fluid_barrel_full.getUnlocalizedName()); GameRegistry.registerItem(fluid_barrel_infinite, fluid_barrel_infinite.getUnlocalizedName()); - + + //Disperser Canister + GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); + GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); + + GameRegistry.registerItem(glyphid_gland_empty, glyphid_gland_empty.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland, glyphid_gland.getUnlocalizedName()); + //Batteries GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName()); GameRegistry.registerItem(battery_red_cell, battery_red_cell.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemFluidTank.java b/src/main/java/com/hbm/items/machine/ItemFluidTank.java index f4c0a3551..ce7a2cd0d 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidTank.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidTank.java @@ -15,7 +15,7 @@ import net.minecraft.util.StatCollector; public class ItemFluidTank extends Item { - IIcon overlayIcon; + protected IIcon overlayIcon; public ItemFluidTank() { this.setHasSubtypes(true); diff --git a/src/main/java/com/hbm/items/weapon/ItemDisperser.java b/src/main/java/com/hbm/items/weapon/ItemDisperser.java new file mode 100644 index 000000000..9971ee3e7 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemDisperser.java @@ -0,0 +1,76 @@ +package com.hbm.items.weapon; + +import com.hbm.entity.grenade.EntityDisperserCanister; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidTank; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +import java.util.List; + +public class ItemDisperser extends ItemFluidTank { + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if (!player.capabilities.isCreativeMode) { + --stack.stackSize; + } + + world.playSoundAtEntity(player, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if (!world.isRemote) { + + EntityDisperserCanister canister = new EntityDisperserCanister(world, player); + + canister.setType(Item.getIdFromItem(this)); + canister.setFluid(stack.getItemDamage()); + world.spawnEntityInWorld(canister); + + } + + return stack; + } + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + + FluidType[] order = Fluids.getInNiceOrder(); + + for(int i = 1; i < order.length; ++i) { + FluidType type = order[i]; + int id = type.getID(); + if(type.isDispersable() && this == ModItems.disperser_canister) { + list.add(new ItemStack(item, 1, id)); + } else if (type == Fluids.PHEROMONE || type == Fluids.SULFURIC_ACID && this == ModItems.glyphid_gland) { + list.add(new ItemStack(item, 1, id)); + } + + } + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + + s = this == ModItems.glyphid_gland ? s1 + " " + s : s + " " + s1 ; + return s; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister p_94581_1_) { + super.registerIcons(p_94581_1_); + this.overlayIcon = this == ModItems.disperser_canister ? p_94581_1_.registerIcon("hbm:disperser_canister_overlay") : p_94581_1_.registerIcon("hbm:fluid_identifier_overlay"); + } +} diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index d8019a7ea..ea38eed02 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -18,20 +18,7 @@ import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; import com.hbm.util.LootGenerator; import com.hbm.util.WeightedRandomGeneric; -import com.hbm.world.dungeon.AncientTomb; -import com.hbm.world.dungeon.Antenna; -import com.hbm.world.dungeon.ArcticVault; -import com.hbm.world.dungeon.Barrel; -import com.hbm.world.dungeon.CrashedVertibird; -import com.hbm.world.dungeon.DesertAtom001; -import com.hbm.world.dungeon.Factory; -import com.hbm.world.dungeon.LibraryDungeon; -import com.hbm.world.dungeon.Radio01; -import com.hbm.world.dungeon.Relay; -import com.hbm.world.dungeon.Satellite; -import com.hbm.world.dungeon.Silo; -import com.hbm.world.dungeon.Spaceship; -import com.hbm.world.dungeon.Vertibird; +import com.hbm.world.dungeon.*; import com.hbm.world.feature.BedrockOre; import com.hbm.world.feature.BedrockOre.BedrockOreDefinition; import com.hbm.world.feature.DepthDeposit; @@ -242,7 +229,7 @@ public class HbmWorldGen implements IWorldGenerator { int x = i + rand.nextInt(16) + 8; int z = j + rand.nextInt(16) + 8; int y = world.getHeightValue(x, z); - if(world.getBlock(x, y - 1, z).isNormalCube()) GlyphidHive.generate(world, x, y, z, rand); + if(world.getBlock(x, y - 1, z).isNormalCube()) GlyphidHive.generateBigGround(world, x, y, z, rand, false); } if(biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) { @@ -365,6 +352,7 @@ public class HbmWorldGen implements IWorldGenerator { new Dud().generate(world, rand, x, y, z); } + if(WorldConfig.spaceshipStructure > 0 && rand.nextInt(WorldConfig.spaceshipStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); @@ -372,7 +360,6 @@ public class HbmWorldGen implements IWorldGenerator { new Spaceship().generate(world, rand, x, y, z); } - if(WorldConfig.barrelStructure > 0 && biome.temperature >= 1.5F && !biome.canSpawnLightningBolt() && rand.nextInt(WorldConfig.barrelStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); diff --git a/src/main/java/com/hbm/lib/ModDamageSource.java b/src/main/java/com/hbm/lib/ModDamageSource.java index a477d929c..1fe20cf1c 100644 --- a/src/main/java/com/hbm/lib/ModDamageSource.java +++ b/src/main/java/com/hbm/lib/ModDamageSource.java @@ -16,7 +16,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource nuclearBlast = (new DamageSource("nuclearBlast")).setExplosion(); public static DamageSource mudPoisoning = (new DamageSource("mudPoisoning")).setDamageBypassesArmor(); - public static DamageSource acid = (new DamageSource("acid")).setDamageBypassesArmor(); + public static DamageSource acid = (new DamageSource("acid")); //.setDamageBypassesArmor(); public static DamageSource euthanizedSelf = (new DamageSource("euthanizedSelf")).setDamageBypassesArmor(); public static DamageSource euthanizedSelf2 = (new DamageSource("euthanizedSelf2")).setDamageBypassesArmor(); public static DamageSource tauBlast = (new DamageSource("tauBlast")).setDamageBypassesArmor(); @@ -53,6 +53,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource vacuum = (new DamageSource("vacuum")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource overdose = (new DamageSource("overdose")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource microwave = (new DamageSource("microwave")).setDamageIsAbsolute().setDamageBypassesArmor(); + public static DamageSource nitan = (new DamageSource("nitan")).setDamageIsAbsolute().setDamageBypassesArmor().setDamageAllowedInCreativeMode();; public static final String s_bullet = "revolverBullet"; public static final String s_emplacer = "chopperBullet"; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index b970e1474..a36f143e1 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -522,7 +522,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderWeaponQuadro()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_sauer, new ItemRenderWeaponSauer()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_vortex, new ItemRenderWeaponVortex()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_thompson, new ItemRenderWeaponThompson()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_thompson, new ItemRenderWeaponThompson());; MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter, new ItemRenderWeaponBolter()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter_digamma, new ItemRenderWeaponBolter()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt()); @@ -613,6 +613,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySawblade.class, new RenderSawblade()); RenderingRegistry.registerEntityRenderingHandler(EntityChemical.class, new RenderChemical()); RenderingRegistry.registerEntityRenderingHandler(EntityMist.class, new RenderMist()); + RenderingRegistry.registerEntityRenderingHandler(EntityWaypoint.class, new RenderMist()); RenderingRegistry.registerEntityRenderingHandler(EntityAcidBomb.class, new RenderSnowball(Items.slime_ball)); //grenades RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic)); @@ -660,6 +661,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeDynamite.class, new RenderSnowball(ModItems.stick_dynamite)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeBouncyGeneric.class, new RenderGenericGrenade()); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeImpactGeneric.class, new RenderGenericGrenade()); + RenderingRegistry.registerEntityRenderingHandler(EntityDisperserCanister.class, new RenderGenericGrenade()); //missiles RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java b/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java index cca75e72d..01ff7f5c7 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java @@ -1,5 +1,7 @@ package com.hbm.render.entity.projectile; +import com.hbm.entity.grenade.EntityDisperserCanister; +import net.minecraft.item.Item; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; @@ -16,10 +18,14 @@ public class RenderGenericGrenade extends Render { @Override public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { - - IGenericGrenade grenade = (IGenericGrenade) entity; - - IIcon iicon = grenade.getGrenade().getIconFromDamage(0); + IIcon iicon; + if(entity instanceof EntityDisperserCanister){ + EntityDisperserCanister canister = (EntityDisperserCanister) entity; + iicon = canister.getType().getIconFromDamage(canister.getFluid().getID()); + } else { + IGenericGrenade grenade = (IGenericGrenade) entity; + iicon = grenade.getGrenade().getIconFromDamage(0); + } if(iicon != null) { GL11.glPushMatrix(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java index 5a95b31ac..c237c9be9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java @@ -1,5 +1,7 @@ package com.hbm.tileentity.machine; + +import com.hbm.config.MobConfig; import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; @@ -29,7 +31,7 @@ public class TileEntityChimneyBrick extends TileEntityChimneyBase { @Override public double getPollutionMod() { - return 0.25D; + return MobConfig.rampantMode ? MobConfig.rampantSmokeStackOverride : 0.25D; } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java index f5a79dce4..80006caf3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import com.hbm.config.MobConfig; import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; @@ -29,7 +30,7 @@ public class TileEntityChimneyIndustrial extends TileEntityChimneyBase { @Override public double getPollutionMod() { - return 0.1D; + return MobConfig.rampantMode ? MobConfig.rampantSmokeStackOverride/2 : 0.1D; } @Override diff --git a/src/main/java/com/hbm/world/feature/GlyphidHive.java b/src/main/java/com/hbm/world/feature/GlyphidHive.java index 5c60e3ff2..f7c83e76f 100644 --- a/src/main/java/com/hbm/world/feature/GlyphidHive.java +++ b/src/main/java/com/hbm/world/feature/GlyphidHive.java @@ -4,12 +4,14 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; +import net.minecraft.block.Block; +import com.hbm.util.LootGenerator; import net.minecraft.init.Blocks; import net.minecraft.world.World; public class GlyphidHive { - public static final int[][][] schematic = new int[][][] { + public static final int[][][] schematicBigGround = new int[][][] { { {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, @@ -38,38 +40,38 @@ public class GlyphidHive { }, { {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,4,4,4,0,0,0,0}, + {0,0,0,0,3,3,3,0,0,0,0}, {0,0,0,1,1,9,1,1,0,0,0}, {0,0,1,1,9,9,9,1,1,0,0}, - {0,3,1,9,9,9,9,9,1,5,0}, - {0,3,9,9,9,9,9,9,9,5,0}, - {0,3,1,9,9,9,9,9,1,5,0}, + {0,3,1,9,9,9,9,9,1,2,0}, + {0,3,9,9,9,9,9,9,9,2,0}, + {0,3,1,9,9,9,9,9,1,2,0}, {0,0,1,1,9,9,9,1,1,0,0}, {0,0,0,1,1,9,1,1,0,0,0}, {0,0,0,0,2,2,2,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, }, { - {0,0,0,0,0,4,0,0,0,0,0}, - {0,0,0,0,4,4,4,0,0,0,0}, - {0,0,0,1,4,9,4,1,0,0,0}, + {0,0,0,0,0,3,0,0,0,0,0}, + {0,0,0,0,3,3,3,0,0,0,0}, + {0,0,0,1,3,9,3,1,0,0,0}, {0,0,1,1,9,9,9,1,1,0,0}, - {0,3,3,9,9,9,9,9,5,5,0}, - {3,3,9,9,9,9,9,9,9,5,5}, - {0,3,3,9,9,9,9,9,5,5,0}, + {0,3,3,9,9,9,9,9,2,2,0}, + {3,3,9,9,9,9,9,9,9,2,2}, + {0,3,3,9,9,9,9,9,2,2,0}, {0,0,1,1,9,9,9,1,1,0,0}, {0,0,0,1,2,9,2,1,0,0,0}, {0,0,0,0,2,2,2,0,0,0,0}, {0,0,0,0,0,2,0,0,0,0,0}, }, { - {0,0,0,0,4,4,4,0,0,0,0}, - {0,0,0,1,4,4,4,1,0,0,0}, - {0,0,1,1,4,9,4,1,1,0,0}, + {0,0,0,0,3,3,3,0,0,0,0}, + {0,0,0,1,3,3,3,1,0,0,0}, + {0,0,1,1,3,9,3,1,1,0,0}, {0,1,1,1,9,9,0,1,1,1,0}, - {3,3,3,9,9,9,9,9,5,5,5}, - {3,3,9,9,9,9,9,9,9,5,5}, - {3,3,3,9,9,9,9,9,5,5,5}, + {3,3,3,9,9,9,9,9,2,2,2}, + {3,3,9,9,9,9,9,9,9,2,2}, + {3,3,3,9,9,9,9,9,2,2,2}, {0,1,1,1,9,9,9,1,1,1,0}, {0,0,1,1,2,9,2,1,1,0,0}, {0,0,0,1,2,2,2,1,0,0,0}, @@ -102,21 +104,21 @@ public class GlyphidHive { {0,0,0,0,0,0,0,0,0,0,0}, } }; - - public static void generate(World world, int x, int y, int z, Random rand) { + public static void generateBigGround(World world, int x, int y, int z, Random rand, boolean openDesign) { - int orientation = rand.nextInt(4) + 2; + int orientation = rand.nextInt(2) + 2; for(int i = 0; i < 11; i++) { for(int j = 0; j < 7; j++) { for(int k = 0; k < 11; k++) { - int block = schematic[6 - j][i][k]; - - if(block == 1 || (block != orientation && block > 1 && block < 6)) { + int block = schematicBigGround[6 - j][i][k]; + + boolean hasWall = !openDesign && (block != orientation && block > 1 && block < 6); + + if(block == 1 || hasWall) { world.setBlock(x + i - 5, y + j - 2, z + k - 5, ModBlocks.glyphid_base); - } - if(block == 9) { + } else if (block != 0) { world.setBlock(x + i - 5, y + j - 2, z + k - 5, Blocks.air); } } @@ -124,5 +126,8 @@ public class GlyphidHive { } world.setBlock(x, y - 1, z, ModBlocks.glyphid_spawner); + } + } + diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f6aad2998..c09e495eb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -577,6 +577,7 @@ chem.KEVLAR=Kevlar Compound Production chem.LPG=Petroleum Gas Liquefaction chem.LUBRICANT=Lubricant Mixing chem.METH=Methamphetamine Synthesis +chem.MEAT_PROCESSING=Glyphid Meat Mineral Extraction chem.NITAN=NITAN Super Fuel Mixing chem.NITRIC_ACID=Nitric Acid Production chem.OIL_SAND=Tar Sand Extraction @@ -846,6 +847,7 @@ death.attack.mku=%1$s died from unknown causes. death.attack.monoxide=%1$s forgot to change the batteries in their carbon monoxide detector. death.attack.mudPoisoning=%1$s died in poisonous mud. death.attack.nuclearBlast=%1$s was blown away by a nuclear explosion. +death.attack.nitan=%1$s was consumed by taint. death.attack.overdose=%1$s overdosed and asphyxiated. death.attack.pc=%1$s was reduced to a puddle in the pink cloud. death.attack.plasma=%1$s was immolated by %2$s. @@ -951,6 +953,7 @@ desc.item.ammo.pro_explosive=+ Explosive desc.item.ammo.pro_fallout=+ Fallout desc.item.ammo.pro_fit_357=+ Fits every .357 model desc.item.ammo.pro_flames=+ Increased flame count +desc.item.ammo.pro_flash=+ ow my eyes desc.item.ammo.pro_gravity=+ Decreased gravity desc.item.ammo.pro_heavy_damage=+ Highly increased damage desc.item.ammo.pro_incendiary=+ Incendiary @@ -1118,6 +1121,7 @@ gun.make.MANN=Open Mann Co. gun.make.MAXIM=Hiram Maxim gun.make.METRO=Metro Gunsmiths gun.make.MWT=MWT Prototype Labs +gun.make.MORITA=Morita Company gun.make.NAWS=Kayarm Industries gun.make.ERFURT=Erfurter Maschinenfabrik Geipel gun.make.NONE=- @@ -1404,6 +1408,10 @@ hbmfluid.woodoil=Wood Oil hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice hbmfluid.xylene=BTX +hbmfluid.caulk=Quick-Hardening Caulk +hbmfluid.pheromone=Booster Pheromone +hbmfluid.pheromone_m=Modified Booster Pheromone + hbmpseudofluid.none=Empty hbmpseudofluid.heuf6=Highly Enriched UF6 hbmpseudofluid.meuf6=Medium Enriched UF6 @@ -1580,6 +1588,9 @@ item.ammo_44_star.name=.44 Magnum Bullet (Starmetal) item.ammo_45.name=.45 ACP Bullet item.ammo_45_ap.name=.45 ACP Bullet (AP) item.ammo_45_du.name=.45 ACP Bullet (DU) +item.ammo_45_drum.name=.45 ACP 100 Round Drum +item.ammo_45_drum_ap.name=.45 ACP 100 Round Drum (AP) +item.ammo_45_drum_du.name=.45 ACP 100 Round Drum (DU) item.ammo_4gauge.name=4 Gauge Buckshot item.ammo_4gauge_balefire.name=23mm Balefire Grenade item.ammo_4gauge_canister.name=23mm Rocket (Canister Shot) @@ -1592,6 +1603,8 @@ item.ammo_4gauge_semtex.name=23mm Mining Charge item.ammo_4gauge_sleek.name=4 Gauge Buckshot (IF-R&D) item.ammo_4gauge_slug.name=4 Gauge Solid Steel Slug item.ammo_4gauge_titan.name=4 Gauge Quacker Round +item.ammo_4gauge_flash1.name=4 Gauge Hviezda Round +item.ammo_4gauge_flash2.name=4 Gauge Hviezda-S Round item.ammo_4gauge_vampire.name=4 Gauge Wooden Stake Shell item.ammo_4gauge_void.name=4 Gauge Void Shell item.ammo_50ae.name=.50 AE Round @@ -2487,6 +2500,8 @@ item.flame_politics.desc=Donald Duck will build the wall! item.flame_pony.name=Painting of a Cartoon Pony item.flame_pony.desc=Yellow horse beats blue horse, that's a proven fact! item.flask_infusion.shield.name=Shield Infusion +item.flask_infusion.nitan.name=NITAN© Ambrosia +item.flask_infusion.nitan.desc=Painkiller for medical and recreational use only. item.fleija_core.name=F.L.E.I.J.A. Uranium 235 Charge item.fleija_igniter.name=Pulse Igniter item.fleija_kit.name=F.L.E.I.J.A. Kit @@ -2614,6 +2629,13 @@ item.grenade_smart.name=Smart Grenade item.grenade_strong.name=Enhanced Grenade item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade + +item.disperser_canister.name= Disperser Canister: +item.disperser_canister_empty.name= Disperser Canister + +item.glyphid_gland.name= Gland +item.glyphid_gland_empty.name= Glyphid's Fluid Gland + item.gun_ar15.name=Josh item.gun_avenger.name=CZ57 Avenger Minigun item.gun_b92.name=§9B92 Energy Pistol§r @@ -2671,6 +2693,7 @@ item.gun_lacunae_ammo.name=5mm Round (LEGACY) item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) +item.gun_lever_action_akimbo.name=Mare's Leg (Dusk) item.gun_lever_action_sonata.name=Flipped Mare's Leg item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r item.gun_lunatic_marksman.name=Lunatic Sniper Rifle @@ -2679,6 +2702,8 @@ item.gun_minigun.name=CZ53 Personal Minigun item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY) item.gun_moist_nugget.name=Mosin-Nagant +item.gun_morita.name=Morita Assault Rifle +item.gun_morita_carbine.name=Morita Carbine item.gun_mp.name=Pacifist's Machine Gun item.gun_mp40.name=Submachine Gun item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) @@ -2729,6 +2754,7 @@ item.gun_super_shotgun.name=Super Shotgun item.gun_super_shotgun.desc=It's super broken! item.gun_supershotgun.name=Super Shotgun item.gun_thompson.name=Thompson Submachine Gun +item.gun_typewriter.name=The Chicago Typewriter item.gun_uac_pistol.name=UAC .45 Pistol item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) @@ -3197,6 +3223,7 @@ item.mp_warhead_15_n2.name=Size 15 N² Mine item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead +item.mp_warhead_15_mirv.name=Size 15 MIRV Warhead item.mp_warhead_15_turbine.name=Size 15 Jet Engine item.mucho_mango.name=AriZona Mucho Mango item.multi_kit.name=Multi Purpose Bomb Kit @@ -4271,7 +4298,7 @@ item.warhead_incendiary_large.name=Large Incendiary Warhead item.warhead_incendiary_medium.name=Medium Incendiary Warhead item.warhead_incendiary_small.name=Small Incendiary Warhead item.warhead_mirv.name=Thermonuclear Warhead -item.warhead_mirvlet.name=MIRV +item.warhead_mirvlet.name=Compact Nuclear Warhead item.warhead_nuclear.name=Nuclear Warhead item.warhead_thermo_endo.name=Endothermic Warhead item.warhead_thermo_exo.name=Exothermic Warhead @@ -4369,6 +4396,7 @@ potion.hbm_radiation=Contaminated potion.hbm_radx=Rad-X potion.hbm_stability=Stability potion.hbm_taint=Tainted +potion.hbm_nitan=Ambrosia potion.hbm_telekinesis=! ! ! radar.clearMap=Clear Map @@ -4861,7 +4889,12 @@ tile.door_office.name=Office Door tile.ducrete.name=Ducrete Tile tile.ducrete_stairs.name=Ducrete Tile Stairs tile.ducrete_smooth.name=Ducrete + +tile.concrete_debris.name=Concrete Debris +tile.ducrete_debris.name=Ducrete Debris + tile.ducrete_smooth_stairs.name=Ducrete Stairs + tile.dummy_block.name=Dummy Block tile.dummy_port.name=Dummy Block (Electricity Port) tile.dungeon_chain.name=Metal Chain @@ -4954,6 +4987,7 @@ tile.glass_quartz.name=Quartz Glass tile.glass_trinitite.name=Trinity Glass tile.glass_uranium.name=Uranium Glass tile.glyphid_base.name=Glyphid Hive Block +tile.glyphid_support.name=Glyphid Hive Support Block tile.glyphid_spawner.name=Glyphid Hive Spawner tile.gneiss_brick.name=Schist Brick tile.gneiss_chiseled.name=Chiseled Schist diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/pheromone.png b/src/main/resources/assets/hbm/textures/gui/fluids/pheromone.png new file mode 100644 index 0000000000000000000000000000000000000000..8517917d84533de3b5217a1acaf6867d04c4d4ae GIT binary patch literal 423 zcmV;Y0a*TtP)Px#1ZP1_K>z@;j|==^1poj5a!^cEMPsV$V5jLhg~w>G@nx*; zS)k%{yZv&x`$>?}YO(Wnz5jc{|4xrj{3UZv+egT;8i|9{5+Z?^bt zwDw=7=s<_bLyF9L!T)Ej@Kv1NM~=`>me@>_)lHPvfyn=Ys1E-C000SaNLh0L01m?d z01m?e$8V@)0002KNklzirr*>x(&DlVo*#a#V;DJns_xGAa+A0s`enL0CdCdU(nD-EFm zldecu*MaChHZx#9YWXaMkppXSr_z?&J+kF5Jcg>U?7Z)u=H?i`X*y{b9>Ipm|E&ES{*Px#1ZP1_K>z@;j|==^1poj5a!^cEMN-qcPtdnU$F57vvp~V9F|wI0u9a8Vzf{${ zNXf8cd{u$zC^{WHn*NWzot99qddK&aPio7R`6y3000SaNLh0L01m?d z01m?e$8V@)0002KNklzirr*>x(&DlVo*#a#V;DJns_xGAa+A0s`enL0CdCdU(nD-EFm zldecu*MaChHZx#9YWXaMkppXSr_z?&J+kF5Jcg>U?7Z)u=H?i`X*y{b9>Ipm|E&ES{*NS%G}Z0G|+7?|P@O1>O~#3WN>#o3_^^uZl`q5gD^MP&H64du@_Qg076cSjVoW zv{kV&O9Lx66$JNri|B&v*{Rmh3#5cgg8YL2V*rLtwRbpx(wqezk;M!Qe1}1p@p%4< z6rfz5;L{CK3`{*bZ+PzS zt4;p#@iDt|*zGg_|4Yu4n6fV}b;AFDoU53a4*0pUD=be>Nio<{{k`wu)6>&=m{z~%jvftP0!EI zZ{}^_I(TqRYdM- T=T*-Kh8BaTtDnm{r-UW|A}N;B literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png b/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..2fdf3d9419511af0d49b291a3a4d4f413c184177 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|>0G|-oqeqYa|NsBqy?a1`Y3JSxg4C4+`2_<78631$egX113p^r=85sEX zgD|57Yp@DX(A?9-F+?MHZI2-zg8>H<p5_~d n1sA4TF690l!uI=>ZHGtWNv5kQnbP0l+XkKRR}&> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/glyphid_gland.png b/src/main/resources/assets/hbm/textures/items/glyphid_gland.png new file mode 100644 index 0000000000000000000000000000000000000000..0b1a48e6f533324bd8028b67403ec9f99d30caf7 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1en@P(&~V~B-+vP8iFj-`POtJYqt7x??=b~qcS zUS8Yn_VtOO>`WG_6}?XnwquVZ z_%T1QHSzLAasLA*9>p6bSm1l5^d4C6{i1#5{)q?g_tyuA z$uVqVoULo{;8|*`V*f)XZO%*$ZsD3AUztxGVr=-A&UEv^)8yudT)x$^JKipcVB~(p zq|lnC=T_kQ%)!iqCxtPDgU?_Q&&~d-LrFaL|NkZK`1w%wu=?c;wPTXGExBz*2N{mI fi%aJ;G%_+MnfR|cq3xam^fQB}tDnm{r-UW|{xp19 literal 0 HcmV?d00001 From 56e7d2d83cc856fef483d2c2c7c0f1dbbb39f422 Mon Sep 17 00:00:00 2001 From: KoblizekXD Date: Fri, 8 Dec 2023 11:15:08 +0100 Subject: [PATCH 014/376] add non worky code --- .../com/hbm/packet/LoopedSoundPacket.java | 24 ++++++------ src/main/java/com/hbm/sound/SoundLoopFel.java | 37 ++++++++++++++++++ .../resources/assets/hbm/sounds/block/fel.ogg | Bin 0 -> 160719 bytes 3 files changed, 50 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/sound/SoundLoopFel.java create mode 100644 src/main/resources/assets/hbm/sounds/block/fel.ogg diff --git a/src/main/java/com/hbm/packet/LoopedSoundPacket.java b/src/main/java/com/hbm/packet/LoopedSoundPacket.java index 44d9339bf..fc19692b3 100644 --- a/src/main/java/com/hbm/packet/LoopedSoundPacket.java +++ b/src/main/java/com/hbm/packet/LoopedSoundPacket.java @@ -1,17 +1,8 @@ package com.hbm.packet; import com.hbm.interfaces.Spaghetti; -import com.hbm.sound.SoundLoopAssembler; -import com.hbm.sound.SoundLoopBroadcaster; -import com.hbm.sound.SoundLoopCentrifuge; -import com.hbm.sound.SoundLoopMiner; -import com.hbm.sound.SoundLoopTurbofan; -import com.hbm.tileentity.machine.TileEntityBroadcaster; -import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; -import com.hbm.tileentity.machine.TileEntityMachineGasCent; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; -import com.hbm.tileentity.machine.TileEntityMachineTurbofan; +import com.hbm.sound.*; +import com.hbm.tileentity.machine.*; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; @@ -137,6 +128,17 @@ public class LoopedSoundPacket implements IMessage { if(flag && te.getWorldObj().isRemote && ((TileEntityMachineGasCent)te).isProgressing) Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopCentrifuge(new ResourceLocation("hbm:block.centrifugeOperate"), te)); } + + if (te != null && te instanceof TileEntityFEL) { + boolean flag = true; + for(int i = 0; i < SoundLoopFel.list.size(); i++) { + if (SoundLoopFel.list.get(i).getTE() == te && !SoundLoopFel.list.get(i).isDonePlaying()) + flag = false; + } + + if(flag && te.getWorldObj().isRemote && ((TileEntityFEL)te).isOn) + Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopFel(new ResourceLocation("hbm:block.fel"), (TileEntityFEL) te)); + } return null; } } diff --git a/src/main/java/com/hbm/sound/SoundLoopFel.java b/src/main/java/com/hbm/sound/SoundLoopFel.java new file mode 100644 index 000000000..b12026ed2 --- /dev/null +++ b/src/main/java/com/hbm/sound/SoundLoopFel.java @@ -0,0 +1,37 @@ +package com.hbm.sound; + +import com.hbm.tileentity.machine.TileEntityFEL; +import net.minecraft.client.audio.MovingSound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; + +import java.util.ArrayList; +import java.util.List; + +public class SoundLoopFel extends SoundLoopMachine { + + public static List list = new ArrayList<>(); + + private TileEntityFEL plant; + + public SoundLoopFel(ResourceLocation path, TileEntityFEL te) { + super(path, te); + list.add(this); + plant = te; + } + + @Override + public void update() { + super.update(); + + if(this.volume != 3) + volume = 3; + + if(!plant.isOn) + this.donePlaying = true; + } + + public TileEntity getTE() { + return te; + } +} diff --git a/src/main/resources/assets/hbm/sounds/block/fel.ogg b/src/main/resources/assets/hbm/sounds/block/fel.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f5927a707b949b09e25e6de699bbc1d273d1908e GIT binary patch literal 160719 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�?)W{c%K9)f0Vinq(jJGe5-V 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 Date: Fri, 8 Dec 2023 11:53:00 +0100 Subject: [PATCH 015/376] certified fel sound --- .../com/hbm/packet/LoopedSoundPacket.java | 11 ------ src/main/java/com/hbm/sound/SoundLoopFel.java | 37 ------------------ .../hbm/tileentity/machine/TileEntityFEL.java | 39 ++++++++++++++++++- src/main/resources/assets/hbm/sounds.json | 1 + 4 files changed, 39 insertions(+), 49 deletions(-) delete mode 100644 src/main/java/com/hbm/sound/SoundLoopFel.java diff --git a/src/main/java/com/hbm/packet/LoopedSoundPacket.java b/src/main/java/com/hbm/packet/LoopedSoundPacket.java index fc19692b3..ed0ff966b 100644 --- a/src/main/java/com/hbm/packet/LoopedSoundPacket.java +++ b/src/main/java/com/hbm/packet/LoopedSoundPacket.java @@ -128,17 +128,6 @@ public class LoopedSoundPacket implements IMessage { if(flag && te.getWorldObj().isRemote && ((TileEntityMachineGasCent)te).isProgressing) Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopCentrifuge(new ResourceLocation("hbm:block.centrifugeOperate"), te)); } - - if (te != null && te instanceof TileEntityFEL) { - boolean flag = true; - for(int i = 0; i < SoundLoopFel.list.size(); i++) { - if (SoundLoopFel.list.get(i).getTE() == te && !SoundLoopFel.list.get(i).isDonePlaying()) - flag = false; - } - - if(flag && te.getWorldObj().isRemote && ((TileEntityFEL)te).isOn) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopFel(new ResourceLocation("hbm:block.fel"), (TileEntityFEL) te)); - } return null; } } diff --git a/src/main/java/com/hbm/sound/SoundLoopFel.java b/src/main/java/com/hbm/sound/SoundLoopFel.java deleted file mode 100644 index b12026ed2..000000000 --- a/src/main/java/com/hbm/sound/SoundLoopFel.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.sound; - -import com.hbm.tileentity.machine.TileEntityFEL; -import net.minecraft.client.audio.MovingSound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -import java.util.ArrayList; -import java.util.List; - -public class SoundLoopFel extends SoundLoopMachine { - - public static List list = new ArrayList<>(); - - private TileEntityFEL plant; - - public SoundLoopFel(ResourceLocation path, TileEntityFEL te) { - super(path, te); - list.add(this); - plant = te; - } - - @Override - public void update() { - super.update(); - - if(this.volume != 3) - volume = 3; - - if(!plant.isOn) - this.donePlaying = true; - } - - public TileEntity getTE() { - return te; - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index 40b8b27e3..f1b1c1a28 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -13,6 +13,7 @@ import com.hbm.items.machine.ItemFELCrystal; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ContaminationUtil; @@ -36,6 +37,7 @@ import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -49,6 +51,8 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, public boolean missingValidSilex = true ; public int distance; public List entities = new ArrayList(); + private int audioDuration = 0; + private AudioWrapper audio; public TileEntityFEL() { @@ -179,6 +183,34 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, data.setBoolean("valid", missingValidSilex); data.setInteger("distance", distance); this.networkPack(data, 250); + } else { + + if(isOn) { + audioDuration += 2; + } else { + audioDuration -= 3; + } + + audioDuration = MathHelper.clamp_int(audioDuration, 0, 60); + + if(audioDuration > 10) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.updatePitch((audioDuration - 10) / 100F + 0.5F); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } } } @@ -234,7 +266,12 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, nbt.setBoolean("valid", missingValidSilex); nbt.setInteger("distance", distance); } - + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.fel", xCoord, yCoord, zCoord, 2.0F, 10F, 2.0F); + } + @Override public AxisAlignedBB getRenderBoundingBox() { return INFINITE_EXTENT_AABB; diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index b77fef3b1..c071a37b1 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -59,6 +59,7 @@ "block.hornFarSingle": {"category": "block", "sounds": [{"name": "block/hornFarSingle", "stream": false}]}, "block.hornFarDual": {"category": "block", "sounds": [{"name": "block/hornFarDual", "stream": false}]}, "block.reactorLoop": {"category": "block", "sounds": [{"name": "block/reactorLoop", "stream": false}]}, + "block.fel": {"category": "block", "sounds": [{"name": "block/fel", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, From ab9f5432a5da397d0ede3295fe73b922eaa1378b Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 8 Dec 2023 18:54:15 -0500 Subject: [PATCH 016/376] made the tasks comprehensible --- .../com/hbm/entity/mob/EntityGlyphid.java | 48 +++++++++++-------- .../hbm/entity/mob/EntityGlyphidNuclear.java | 10 ++-- .../hbm/entity/mob/EntityGlyphidScout.java | 26 +++++----- 3 files changed, 47 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 157e21a89..5699f060f 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -62,6 +62,15 @@ public class EntityGlyphid extends EntityMob { public int blastResToDig = Math.min((int) (50 * (getScale() * 2)), 150); public boolean shouldDig; + // Tasks + + public static final int none = 0; + public static final int comm = 1; + public static final int expand = 2; + public static final int reinforcements = 3; + public static final int follow = 4; + public static final int terraform = 5; + public static final int dig = 6; EntityWaypoint taskWaypoint = null; public EntityGlyphid(World world) { super(world); @@ -115,14 +124,14 @@ public class EntityGlyphid extends EntityMob { onBlinded(); } - if(getCurrentTask() == 4){ + if(getCurrentTask() == follow){ //incase the waypoint somehow doesn't exist and it got this task anyway - if(isAtDestination() && taskX == 0) { - setCurrentTask(0, null); + if(isAtDestination() && taskX == none) { + setCurrentTask(none, null); } //the task cannot be 6 outside of rampant, so this is a non issue p much - } else if (getCurrentTask() == 6 && ticksExisted % 20 == 0 && isAtDestination()) { + } else if (getCurrentTask() == dig && ticksExisted % 20 == 0 && isAtDestination()) { swingItem(); ExplosionVNT vnt = new ExplosionVNT(worldObj, taskX, taskY + 2, taskZ, blastSize, this); @@ -161,7 +170,7 @@ public class EntityGlyphid extends EntityMob { @Override protected void updateWanderPath() { - if(getCurrentTask() == 0) { + if(getCurrentTask() == none) { super.updateWanderPath(); } } @@ -176,7 +185,8 @@ public class EntityGlyphid extends EntityMob { // hell yeah!! if (useExtendedTargeting() && this.entityToAttack != null) { this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, true, true)); - } else if (getCurrentTask() != 0) { + } else if (getCurrentTask() != none) { + this.worldObj.theProfiler.startSection("stroll"); if (!isAtDestination()) { @@ -193,11 +203,11 @@ public class EntityGlyphid extends EntityMob { } - if (taskX != 0) { + if (taskX != none) { if(MobConfig.rampantDig) { MovingObjectPosition obstacle = findWaypointObstruction(); - if (getScale() >= 1 && getCurrentTask() != 6 && obstacle != null) { + if (getScale() >= 1 && getCurrentTask() != dig && obstacle != null) { digToWaypoint(obstacle); } else { Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); @@ -260,7 +270,7 @@ public class EntityGlyphid extends EntityMob { @Override protected boolean canDespawn() { - return ticksExisted > 3500 && entityToAttack == null && getCurrentTask() == 0; + return ticksExisted > 3500 && entityToAttack == null && getCurrentTask() == none; } @Override @@ -444,16 +454,16 @@ public class EntityGlyphid extends EntityMob { switch(task){ //call for reinforcements - case 1: if(taskWaypoint != null){ - communicate(4, taskWaypoint); - setCurrentTask(4, taskWaypoint); + case comm: if(taskWaypoint != null){ + communicate(follow, taskWaypoint); + setCurrentTask(follow, taskWaypoint); } break; //expand the hive, used by the scout //case 2: expandHive(null); //retreat - case 3: + case reinforcements: if (!worldObj.isRemote && taskWaypoint == null) { @@ -463,15 +473,15 @@ public class EntityGlyphid extends EntityMob { //First, go home and get reinforcements EntityWaypoint home = new EntityWaypoint(worldObj); - home.setWaypointType(1); + home.setWaypointType(comm); home.setAdditionalWaypoint(additional); home.setHighPriority(); home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); worldObj.spawnEntityInWorld(home); this.taskWaypoint = home; - communicate(4, home); - setCurrentTask(4, taskWaypoint); + communicate(follow, home); + setCurrentTask(follow, taskWaypoint); break; } @@ -482,7 +492,7 @@ public class EntityGlyphid extends EntityMob { //fifth task is used only in the scout and big man johnson, for terraforming //dig - case 6: + case dig: shouldDig = true; break; @@ -554,13 +564,13 @@ public class EntityGlyphid extends EntityMob { previousTask = getCurrentTask(); previousWaypoint = getWaypoint(); - setCurrentTask(6, target); + setCurrentTask(dig, target); Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); - communicate(6, target); + communicate(dig, target); } ///DIGGING END diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java index 179a56d54..bb617e2b0 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -51,15 +51,15 @@ public class EntityGlyphidNuclear extends EntityGlyphid { public void onUpdate() { super.onUpdate(); if (ticksExisted % 20 == 0) { - if (isAtDestination() && getCurrentTask() == 4) { - setCurrentTask(0, null); + if (isAtDestination() && getCurrentTask() == follow) { + setCurrentTask(none, null); } - if(getCurrentTask() == 2 && getAITarget() == null){ + if(getCurrentTask() == expand && getAITarget() == null){ this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 10 * 20, 3)); } - if (getCurrentTask() == 5) { + if (getCurrentTask() == terraform) { this.setHealth(0); } @@ -131,7 +131,7 @@ public class EntityGlyphidNuclear extends EntityGlyphid { ++this.deathTicks; if(!hasWaypoint) { - communicate(3, null); + communicate(reinforcements, null); hasWaypoint = true; } if(deathTicks == 90){ diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index 8c9e5db93..c1a24ad99 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -69,7 +69,7 @@ public class EntityGlyphidScout extends EntityGlyphid { super.onUpdate(); - if((getCurrentTask() != 2 || getCurrentTask() != 5) && taskWaypoint == null) { + if((getCurrentTask() != expand || getCurrentTask() != terraform) && taskWaypoint == null) { if(MobConfig.rampantGlyphidGuidance && PollutionHandler.targetCoords != null){ if(!hasTarget) { @@ -98,7 +98,7 @@ public class EntityGlyphidScout extends EntityGlyphid { } - if(getCurrentTask() == 2 || getCurrentTask() == 5) { + if(getCurrentTask() == expand || getCurrentTask() == terraform) { if(!worldObj.isRemote && !hasTarget) { //Check for whether a big man johnson is nearby, this makes the scout switch into its terraforming task @@ -123,8 +123,8 @@ public class EntityGlyphidScout extends EntityGlyphid { } } - if (getCurrentTask() == 5 && super.isAtDestination() && doubleCheckHive()) { - communicate(5, taskWaypoint); + if (getCurrentTask() == terraform && super.isAtDestination() && doubleCheckHive()) { + communicate(terraform, taskWaypoint); } if (ticksExisted % 10 == 0 && isAtDestination()) { @@ -135,11 +135,11 @@ public class EntityGlyphidScout extends EntityGlyphid { EntityWaypoint additional = new EntityWaypoint(worldObj); additional.setLocationAndAngles(posX, posY, posZ, 0, 0); - additional.setWaypointType(0); + additional.setWaypointType(none); //First, go home and get reinforcements EntityWaypoint home = new EntityWaypoint(worldObj); - home.setWaypointType(1); + home.setWaypointType(comm); home.setAdditionalWaypoint(additional); home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); home.maxAge = 1200; @@ -149,7 +149,7 @@ public class EntityGlyphidScout extends EntityGlyphid { this.taskWaypoint = home; this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 40 * 20, 10)); - communicate(1, taskWaypoint); + communicate(comm, taskWaypoint); } else if (timer >= 5) { @@ -161,7 +161,7 @@ public class EntityGlyphidScout extends EntityGlyphid { this.setDead(); } else { - communicate(4, taskWaypoint); + communicate(follow, taskWaypoint); } } } @@ -182,7 +182,7 @@ public class EntityGlyphidScout extends EntityGlyphid { Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); if (block == ModBlocks.glyphid_base) { - setCurrentTask(0 ,null); + setCurrentTask(none ,null); hasTarget = false; return false; } @@ -194,7 +194,7 @@ public class EntityGlyphidScout extends EntityGlyphid { @Override public boolean isAtDestination() { - return this.getCurrentTask() == 2 && super.isAtDestination(); + return this.getCurrentTask() == expand && super.isAtDestination(); } public boolean findJohnson(){ @@ -252,7 +252,7 @@ public class EntityGlyphidScout extends EntityGlyphid { //updates the task coordinates setCurrentTask(getCurrentTask(), taskWaypoint); - communicate(2, taskWaypoint); + communicate(expand, taskWaypoint); } return true; } @@ -264,7 +264,7 @@ public class EntityGlyphidScout extends EntityGlyphid { public void carryOutTask() { if (!worldObj.isRemote && taskWaypoint == null) { switch(getCurrentTask()){ - case 3: + case reinforcements: this.removePotionEffect(Potion.moveSlowdown.id); this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 20 * 20, 4)); @@ -286,7 +286,7 @@ public class EntityGlyphidScout extends EntityGlyphid { break; //terraforming task, only used if a big man johnson is near the scout - case 5: + case terraform: scoutingRange = 60; minDistanceToHive = 20; } From 897308cb7f97ac405fc21b05911a0c1777aed2e1 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 8 Dec 2023 19:35:02 -0500 Subject: [PATCH 017/376] e --- src/main/java/com/hbm/config/MobConfig.java | 1 - .../java/com/hbm/entity/effect/EntityMist.java | 18 ++++++++---------- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 2 +- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 81724a61b..59f6c9e3f 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -151,7 +151,6 @@ public class MobConfig { config.addCustomCategoryComment(CATEGORY,rampantDesc); - //TODO: Disable this before release rampantMode = CommonConfig.createConfigBool(config, CATEGORY, "12.R01_rampantMode", "The main rampant mode toggle, enables all other features associated with it", false); config.addCustomCategoryComment(CATEGORY, "The individual features of rampant can be used regardless of whether the main rampant toggle is enabled or not"); diff --git a/src/main/java/com/hbm/entity/effect/EntityMist.java b/src/main/java/com/hbm/entity/effect/EntityMist.java index 8537520b2..713ebf06e 100644 --- a/src/main/java/com/hbm/entity/effect/EntityMist.java +++ b/src/main/java/com/hbm/entity/effect/EntityMist.java @@ -206,18 +206,16 @@ public class EntityMist extends Entity { FT_Pheromone pheromone = type.getTrait(FT_Pheromone.class); if(living != null) { - living.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 1)); - living.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 2 * 60 * 20, 1)); - living.addPotionEffect(new PotionEffect(Potion.regeneration.id, 2 * 20, 0)); + if ((living instanceof EntityGlyphid && pheromone.getType() == 1) || (living instanceof EntityPlayer && pheromone.getType() == 2)) { + int mult = pheromone.getType(); - if (living instanceof EntityGlyphid && pheromone.getType() == 1) { - living.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 0)); - living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60 * 20, 1)); - living.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 60 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, mult * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.digSpeed.id, mult * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.regeneration.id, mult * 2 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.resistance.id, mult * 60 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, mult * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.fireResistance.id, mult * 60 * 20, 0)); - } else if (living instanceof EntityPlayer && pheromone.getType() == 2) { - living.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 0)); - living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 1)); } } } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 424deacfc..0a31c1634 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -107,7 +107,7 @@ public class Gun12GaugeFactory { config.comment.add("\"Here, I have a more suitable gun for you. You'll need it - Catch!\""); config.comment.add("Alt-fire with Mouse 2 (Right-click) to fire 2 shells at once"); - config.config = HbmCollection.g12; + config.config = HbmCollection.g12hs; config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("SPAS_RECOIL_TRANSLATE", new BusAnimationSequence() From 5cad503fa70a8b91b793187557d74117d14356fd Mon Sep 17 00:00:00 2001 From: 9Valjews <64272884+9Valjew@users.noreply.github.com> Date: Sun, 10 Dec 2023 10:01:37 +0200 Subject: [PATCH 018/376] A way to link radars and orbital deathrays, works, I hate Hebrew encoding it makes every little file save a 50 minute task --- .../java/com/hbm/crafting/ToolRecipes.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 5 +- .../java/com/hbm/items/tool/ItemSatRelay.java | 19 ++ .../machine/TileEntityMachineRadarNT.java | 19 ++ src/main/resources/assets/hbm/lang/en_US.lang | 321 +++++++++--------- .../assets/hbm/textures/items/sat_relay.png | Bin 0 -> 486 bytes 6 files changed, 205 insertions(+), 162 deletions(-) create mode 100644 src/main/java/com/hbm/items/tool/ItemSatRelay.java create mode 100644 src/main/resources/assets/hbm/textures/items/sat_relay.png diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 3ab160158..598c9fd41 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -127,7 +127,8 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); - + CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', ModItems.wire_red_copper, 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 539beed9e..4cdc63fc2 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1487,6 +1487,7 @@ public class ModItems { public static Item sat_interface; public static Item sat_coord; public static Item sat_designator; + public static Item sat_relay; public static ItemEnumMulti ammo_misc; public static ItemEnumMulti ammo_12gauge; @@ -3949,6 +3950,7 @@ public class ModItems { sat_interface = new ItemSatInterface().setUnlocalizedName("sat_interface").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_interface"); sat_coord = new ItemSatInterface().setUnlocalizedName("sat_coord").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_coord"); sat_designator = new ItemSatDesignator().setUnlocalizedName("sat_designator").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_designator"); + sat_relay = new ItemSatRelay().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay"); mp_thruster_10_kerosene = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); mp_thruster_10_kerosene_tec = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec"); @@ -3978,7 +3980,7 @@ public class ModItems { mp_stability_10_space = new ItemMissile().makeStability(0.35F, PartSize.SIZE_10).setHealth(5F).setRarity(Rarity.COMMON).setWittyText("Standing there alone, the ship is waiting / All systems are go, are you sure?") .setUnlocalizedName("mp_stability_10_space"); mp_stability_15_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); mp_stability_15_thin = new ItemMissile().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); - mp_stability_15_soyuz = new ItemMissile().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("Союз!").setUnlocalizedName("mp_stability_15_soyuz"); + mp_stability_15_soyuz = new ItemMissile().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("׀¡׀¾ׁ�׀·!").setUnlocalizedName("mp_stability_15_soyuz"); mp_stability_20_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20"); mp_fuselage_10_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(20F).setUnlocalizedName("mp_fuselage_10_kerosene"); @@ -6994,6 +6996,7 @@ public class ModItems { GameRegistry.registerItem(sat_interface, sat_interface.getUnlocalizedName()); GameRegistry.registerItem(sat_coord, sat_coord.getUnlocalizedName()); GameRegistry.registerItem(sat_designator, sat_designator.getUnlocalizedName()); + GameRegistry.registerItem(sat_relay, sat_relay.getUnlocalizedName()); //Guns GameRegistry.registerItem(gun_revolver, gun_revolver.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemSatRelay.java b/src/main/java/com/hbm/items/tool/ItemSatRelay.java new file mode 100644 index 000000000..519befad2 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemSatRelay.java @@ -0,0 +1,19 @@ +package com.hbm.items.tool; + +import com.hbm.items.machine.ItemSatChip; +import com.hbm.lib.Library; +import com.hbm.saveddata.SatelliteSavedData; +import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.Satellite.Interfaces; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class ItemSatRelay extends ItemSatChip { +//Schrabby doesn't fucking know how this works so I HOPE it will create a new item that works without fucking everything up + + +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 9e9061ff1..41c0ce4d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -14,10 +14,15 @@ import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerMachineRadarNT; import com.hbm.inventory.gui.GUIMachineRadarNT; import com.hbm.inventory.gui.GUIMachineRadarNTSlots; +import com.hbm.items.ISatChip; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemCoordinateBase; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.saveddata.SatelliteSavedData; +import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.Satellite.Interfaces; +import com.hbm.saveddata.satellites.SatelliteLaser; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; @@ -412,6 +417,20 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I int id = data.getInteger("link"); ItemStack link = slots[id]; + if(link != null && link.getItem() == ModItems.sat_chip) { + World world = player.getEntityWorld(); + Satellite sat = SatelliteSavedData.getData(world).getSatFromFreq(ISatChip.getFreqS(link)); + if(sat instanceof SatelliteLaser) { + if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + sat.onClick(world, x, z); + } + } + + + } if(link != null && link.getItem() == ModItems.radar_linker) { BlockPos pos = ItemCoordinateBase.getPosition(link); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5d2ef5a8d..962f4506d 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -122,7 +122,7 @@ achievement.technetium.desc=It's medicinal, it's medicinal! achievement.technetium=Big Man, Pig Man achievement.watzBoom.desc=Drain your septic tank next time. achievement.watzBoom=Disgusting -achievement.watz.desc=Fólkvangr fields possibly included. +achievement.watz.desc=Fֳ³lkvangr fields possibly included. achievement.watz=The Power of Element-126 achievement.witchtaunter.desc=Those wacky creatures got nothing on you! achievement.witchtaunter=Witch Taunter @@ -199,129 +199,129 @@ book.test.page1=Test Page 1 book.error.cover=Hadron Collider:$Troubleshooting book.error.title1=Error 0x01 [NC] -book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.page1=ֲ§lName:ֲ§r "ERROR_NO_CHARGE" ֲ§lDescription:ֲ§r The particle has reached a segment with insufficient charge. ֲ§lPotential fix:ֲ§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. book.error.title2=Error 0x02 [NA] -book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.page2=ֲ§lName:ֲ§r "ERROR_NO_ANALYSIS" ֲ§lDescription:ֲ§r The particle has reached the core, despite not passing an analysis chamber. ֲ§lPotential fix:ֲ§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). book.error.title3=Error 0x03 [OC] -book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.page3=ֲ§lName:ֲ§r "ERROR_OBSTRUCTED_CHANNEL" ֲ§lDescription:ֲ§r The particle has collided with a block inside the collider's channel. ֲ§lPotential fix:ֲ§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. book.error.title4=Error 0x04 [EC] -book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.page4=ֲ§lName:ֲ§r "ERROR_EXPECTED_COIL" ֲ§lDescription:ֲ§r The particle has passed a segment that lacks one or multiple coils. ֲ§lPotential fix:ֲ§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. book.error.title5=Error 0x05 [MS] -book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.page5=ֲ§lName:ֲ§r "ERROR_MALFORMED_SEGMENT" ֲ§lDescription:ֲ§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). ֲ§lPotential fix:ֲ§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. book.error.title6=Error 0x06 [ATL] -book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.page6=ֲ§lName:ֲ§r "ERROR_ANALYSIS_TOO_LONG" ֲ§lDescription:ֲ§r The particle has passed more than the three required valid analysis chamber segments. ֲ§lPotential fix:ֲ§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. book.error.title7=Error 0x07 [ATS] -book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.page7=ֲ§lName:ֲ§r "ERROR_ANALYSIS_TOO_SHORT" ֲ§lDescription:ֲ§r The particle has left the analysis chamber, despite not meeting the length requirement. ֲ§lPotential fix:ֲ§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. book.error.title8=Error 0x08 [DC] -book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.page8=ֲ§lName:ֲ§r "ERROR_DIODE_COLLISION" ֲ§lDescription:ֲ§r The particle collided with a non-input side of a schottky particle diode. ֲ§lPotential fix:ֲ§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. book.error.title9=Error 0x09 [BT] -book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. +book.error.page9=ֲ§lName:ֲ§r "ERROR_BRANCHING_TURN" ֲ§lDescription:ֲ§r The particle has reached a turn with multiple exits. ֲ§lPotential fix:ֲ§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. book.rbmk.cover=My first RBMK:$Basics of$building a$reactor book.rbmk.title1=Introduction -book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. +book.rbmk.page1=ֲ§lRBMKֲ§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. book.rbmk.title2=Heat -book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. +book.rbmk.page2=As reactor runs, it will generate ֲ§lheatֲ§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. book.rbmk.title3=Fuel Rod -book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. +book.rbmk.page3=The ֲ§lfuel rodֲ§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. book.rbmk.title4=Regulating Rod -book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. +book.rbmk.page4=The ֲ§lcontrol rodֲ§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. book.rbmk.title5=Regulating Rods - Usage book.rbmk.title5.scale=0.9 -book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. +book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on ֲ§lRBMKֲ§r console. The buttons on right allow you to manually insert in 25%% increments. book.rbmk.title6=Automatic Control Rods -book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. +book.rbmk.page6=ֲ§LAutomatic control rodsֲ§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. book.rbmk.title7=Steam Channel -book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. +book.rbmk.page7=The ֲ§lsteam channelֲ§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. book.rbmk.title8=Neutron Reflector -book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. +book.rbmk.page8=The ֲ§lneutron reflectorֲ§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. book.rbmk.title9=Neutron Absorber -book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. +book.rbmk.page9=ֲ§lNeutron absorberֲ§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. book.rbmk.title10=Graphite Retarder -book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. +book.rbmk.page10=ֲ§lGraphite moderatorֲ§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. book.rbmk.title11=Structural Column -book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. +book.rbmk.page11=ֲ§lStructural columnֲ§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. book.rbmk.title12=Console -book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. +book.rbmk.page12=ֲ§lRBMK consoleֲ§r allows you to control the reactor from afar. Using the ֲ§ldevice to connect the console RBMKֲ§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. book.rbmk.title13=Using the console book.rbmk.page13=Clicking on parts will select and deselect them. With the colored buttons, you can quickly select all the control rods in that color group. Button "A" will select all control rods, "X" will deselect all. book.rbmk.page14=Entering a number between 0 and 100 in green box and then pressing button next to it will set all selected control rods to that position. Button "AZ-5" will lead to full insertion of all control rods. book.rbmk.title15=Fuel -book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. +book.rbmk.page15=The ֲ§lfuelֲ§r response depends on many factors. The main ones are ֲ§lfortificationֲ§r, ֲ§lxenon poisoningֲ§r and number of incoming ֲ§lneutronsֲ§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels ֲ§lare best split byֲ§r ֲ§lslow neutronsֲ§r. book.rbmk.title16=Melting -book.rbmk.page16=§4§lAVOID. +book.rbmk.page16=ֲ§4ֲ§lAVOID. book.starter.cover=An Industrialist's$Guide to Rebuilding$Society book.starter.title1=Introduction book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. book.starter.title2=Coal & Mustard Gas -book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. +book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some ֲ§lclothֲ§r to make a ֲ§ltrench maskֲ§r, to protect you from coal dust or mustard gas, if you ever encounter either. book.starter.title3=Anvils & Presses -book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. +book.starter.page3=The quintessentials to beginning your industrial revitalization is an ֲ§lanvilֲ§r and a ֲ§lburner pressֲ§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. book.starter.title4=Templates -book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. +book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a ֲ§lMachine Template Folderֲ§r to create the various stamps and templates shown to the right. book.starter.title5=Scavenging book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... book.starter.title6=Early Machinery -book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. -book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. -book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. -book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. +book.starter.page6a=Two of the first machines you should assemble are the ֲ§lBlast Furnaceֲ§r and the ֲ§lAssembly Machineֲ§r. The former will allow you to create alloys such as ֲ§lsteelֲ§r, ֲ§lminecraft-grade copperֲ§r, and ֲ§ladvanced alloyֲ§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. +book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a ֲ§lCombustionֲ§r ֲ§lGeneratorֲ§r or ֲ§lSolar Boilerֲ§r. +book.starter.page7a=The ֲ§lShredderֲ§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as ֲ§lEnhancedֲ§r and ֲ§lOverclockedֲ§r circuits. +book.starter.page7b=Using your new machinery, you can create the ֲ§lChemical Plantֲ§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. book.starter.title8=Black Gold -book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. -book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. +book.starter.page8a=Using an ֲ§lOil ֲ§lReservoirֲ§r ֲ§lDetectorֲ§r, you can find underground oil deposits to place a ֲ§lPumpjackֲ§r or ֲ§lDerrickֲ§r over via surveying an area. Remember that oil deposits will run out over time. +book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an ֲ§lOil Refineryֲ§r, you must heat the oil to 300ֲ°C in a ֲ§lBoilerֲ§r. book.starter.title9=Petrochemicals -book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. +book.starter.page9=Using ֲ§lChemical Plantsֲ§r, ֲ§lFractioningֲ§r ֲ§lTowersֲ§r, and ֲ§lCatalytic Crackingֲ§r ֲ§lTowersֲ§r, you can transform the separated oil into a variety of useful products. For example: ֲ§lPolymerֲ§r or ֲ§lBakeliteֲ§r, durable and flexible plastics; ֲ§lDeshֲ§r, an extremely durable and heat-resistant rare earth metal alloy; ֲ§lSolid Fuelֲ§r, which can be burnt for energy; or even ֲ§lLiquid Fuelsֲ§r, such as ֲ§lGasolineֲ§r, ֲ§lDieselֲ§r, ֲ§lKeroseneֲ§r, and more. book.starter.title10=Advanced Machinery -book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. +book.starter.page10=With oil processing under your belt, you can create the ֲ§lCentrifugeֲ§r, which will triple ore outputs; the ֲ§lOre ֲ§lAcidizerֲ§r, which will crystallize ores, increasing the yield; and the ֲ§lSILEX + ֲ§lFELֲ§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a ֲ§lDiesel Generatorֲ§r, an ֲ§lIndustrial Generatorֲ§r, or even a nuclear reactor. book.starter.title11=Strata -book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. +book.starter.page11=Underneath the ground you walk, there is several naturally-occurring ֲ§lStrataֲ§r, or special mineral layers and formations. ֲ§lSchist Strataֲ§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. ֲ§lDepth Rockֲ§r contains large quantities of rarer minerals, such as ֲ§lZirconiumֲ§r and ֲ§lBoronֲ§r, but requires explosives to properly harvest. book.starter.title12=Radiation -book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. -book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.page12a=ֲ§oThe rest of this book will deal with matters that involve ֲ§oradiation. For the safety of you and others, I will give ֲ§oadvice on how to mitigate and deal with exposure to it. +book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a ֲ§lHazmat Suitֲ§r, or apply ֲ§lCladdingֲ§r to your clothing or armor; you can also take ֲ§lRad-Xֲ§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a ֲ§lPlayer ֲ§lDecontaminatorֲ§r will slowly reduce the radiation absorbed by your body. ֲ§lRad-Awayֲ§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. book.starter.title13=Uranium Enrichment -book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. +book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, ֲ§lNatural Uraniumֲ§r or ֲ§lThorium Fuelֲ§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two ֲ§lGas Centrifugesֲ§r to produce ֲ§lUranium Fuelֲ§r with leftover ֲ§lUranium-238ֲ§r. You will have to transmute the natural uranium into ֲ§lYellowcakeֲ§r, then ֲ§lUranium ֲ§lHexafluorideֲ§r to do so. book.starter.title14=The Chicago Pile -book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.page14=Alternatively, you can breed ֲ§lReactor-Grade Plutoniumֲ§r, a more powerful fuel, from Natural Uranium using the ֲ§lChicago Pileֲ§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as ֲ§lRadium-Berylliumֲ§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. book.starter.title15=ZIRNOX GCR -book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. +book.starter.page15=Finally, you can create your first ֲ§orealֲ§r source of energy: the ֲ§lZIRNOXֲ§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the ֲ§lHeavy ֲ§lInfinite Water Tankֲ§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of ֲ§lCarbon Dioxideֲ§r. You want just enough pressure, but not ֲ§otooֲ§r much. You will also need three steam turbines to utilize the created steam to make energy; the ֲ§lSteam ֲ§lTurbineֲ§r or ֲ§lIndustrial Steam ֲ§lTurbineֲ§r will be optimal. Finally, a ֲ§lCondensorֲ§r or ֲ§lAuxilary Cooling Towerֲ§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. book.starter.title16=Conclusion -book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! +book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know ֲ§ohowֲ§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! book.starter.title18=About the Author -book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. +book.starter.page18=vֳ¦r is just a guy who has been trapped in the grey void featured in the Talking Head's ֲ§oOnce In A Lifetimeֲ§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.page1=The ֲ§lRBMKֲ§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. #book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.page2=As the reactor operates, it will generate ֲ§lheatֲ§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a ֲ§lsteam channelֲ§r which cools the reactor and produces steam. #book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.page3=The ֲ§lfuel rodֲ§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the ֲ§lfuelֲ§r used. #book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.page4=The ֲ§lcontrol rodֲ§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. #book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the ֲ§lRBMK consoleֲ§r. The buttons on the right allow for manual insertion in increments of 25%%. #book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.page6=ֲ§lAutomatic control rodsֲ§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. #book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.page7=The ֲ§lsteam channelֲ§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. #book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.page8=The ֲ§lneutron reflectorֲ§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. #book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.page9=The ֲ§lneutron absorberֲ§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. #book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.page10=The ֲ§lgraphite moderatorֲ§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. #book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.page11=The ֲ§lstructural columnֲ§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. #book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.page12=The ֲ§lRBMK consoleֲ§r lets you control the reactor from afar. Using the ֲ§lRBMKֲ§r ֲ§lconsole linking deviceֲ§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. #book.rbmk.title13=Console Usage #book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. #book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. #book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.page15=The ֲ§lfuelֲ§r's reactivity is based on multiple factors. The main ones are the ֲ§lenrichmentֲ§r, ֲ§lxenon poisonֲ§r and the amount of incoming ֲ§lneutronsֲ§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels ֲ§lsplit best with slow neutronsֲ§r. #book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. +#book.rbmk.page16=ֲ§4ֲ§lAvoid. book_lore.author=By %s book_lore.test.name=this book doesn't work... @@ -464,10 +464,10 @@ cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. cannery.crucible.3=The crucible has two storage buffers for material: -cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. +cannery.crucible.4=The buffer to the left is for ֲ§abyproductsֲ§r, all material smelted without a recipe template will land here. cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. -cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. +cannery.crucible.7=The buffer to the right is for ֲ§crecipesֲ§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. @@ -733,7 +733,7 @@ container.nukeFurnace=Nuclear Powered Furnace container.nukeGadget=The Gadget container.nukeMan=Fat Man container.nukeMike=Ivy Mike -container.nukeN2=N² Mine +container.nukeN2=Nֲ² Mine container.nukeN45=N45 Naval Mine container.nukePrototype=The Prototype container.nukeSolinium=The Blue Rinse @@ -866,29 +866,29 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. -desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! -desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! -desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. -desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. -desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter -desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring -desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit -desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank -desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core -desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. +desc.gui.assembler.warning=ֲ§cError:ֲ§r This machine requires an assembly template! +desc.gui.chemplant.warning=ֲ§cError:ֲ§r This machine requires an chemistry template! +desc.gui.gasCent.enrichment=ֲ§2Enrichmentֲ§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. +desc.gui.gasCent.output=ֲ§6Fluid Transferֲ§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=ֲ§1Requires:ֲ§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=ֲ§1Requires:ֲ§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=ֲ§1Requires:ֲ§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=ֲ§1Requires:ֲ§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=ֲ§1Requires:ֲ§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ֲ§9Optional:ֲ§r$ * Tsar Bomba Core +desc.gui.radiolysis.desc=ֲ§9Descriptionֲ§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay -desc.gui.rtg.heat=§eCurrent heat level: %s +desc.gui.rtg.heat=ֲ§eCurrent heat level: %s desc.gui.rtg.pellets=Accepted Pellets: desc.gui.rtg.pelletHeat=%s (%s heat) desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. -desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network -desc.gui.turbinegas.fuels=§6Accepted fuels:§r -desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r -desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. -desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! -desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! -desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! +desc.gui.template=ֲ§9Templatesֲ§r$Templates can be made by$using the Machine Template Folder. +desc.gui.turbinegas.automode=ֲ§2Automatic Turbine Throttling Modeֲ§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network +desc.gui.turbinegas.fuels=ֲ§6Accepted fuels:ֲ§r +desc.gui.turbinegas.warning=ֲ§cFuel or lubricant level low!ֲ§r +desc.gui.zirnox.coolant=ֲ§3Coolantֲ§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. +desc.gui.zirnox.pressure=ֲ§6Pressureֲ§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! +desc.gui.zirnox.warning1=ֲ§cError:ֲ§r Water is required for$the reactor to function properly! +desc.gui.zirnox.warning2=ֲ§cError:ֲ§r CO2 is required for$the reactor to function properly! desc.item.ammo.con_accuracy2=- Highly decreased accuracy desc.item.ammo.con_damage=- Highly decreased damage @@ -998,7 +998,7 @@ desc.item.kitArmor=Armor will be displaced by new set. desc.item.kitHaz=Armor will be displaced by hazmat suit. desc.item.kitPack=What a bargain! desc.item.kitPool=Please empty inventory before opening! -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pileRod=ֲ§eUse on drilled graphite to insert$ֲ§eUse screwdriver to extract$ desc.item.rtgDecay=Decays to: %s desc.item.rtgHeat=Power Level: %s desc.item.storage.capacity=Capacity %s%%s @@ -1006,19 +1006,19 @@ desc.item.storage.proscons=to view pros cons list desc.misc.357=.357 Magnum desc.misc.556=.223 Remington desc.misc.762=.308 Winchester -desc.misc.func=§n-- Function -- +desc.misc.func=ֲ§n-- Function -- desc.misc.lanthanum="Lanthanum" -desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s -desc.misc.lore=§n-- Lore -- -desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s -desc.misc.luna=§o20x155mm Lunatic -desc.misc.meltPoint=Melting point: §c%s +desc.misc.lctrl=ֲ§8Hold <ֲ§eֲ§oLCTRLֲ§8ֲ§o> %s +desc.misc.lore=ֲ§n-- Lore -- +desc.misc.lshift=ֲ§8Hold <ֲ§eֲ§oLSHIFTֲ§8ֲ§o> %s +desc.misc.luna=ֲ§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: ֲ§c%s desc.misc.noPos=No position set! desc.misc.pos=Set pos to: %s, %s, %s desc.misc.posSet=Position set! desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks -desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks +desc.item.zirnoxBreedingRod=ֲ§2[ZIRNOX Breeding Rod]$ֲ§ePlace next to fuel rods to breed$ֲ§eLasts %d ticks +desc.item.zirnoxRod=ֲ§a[ZIRNOX Fuel Rod]$ֲ§eGenerates %1$d heat per tick$ֲ§eLasts %2$d ticks digamma.playerDigamma=Digamma exposure: digamma.playerHealth=Digamma influence: @@ -1162,15 +1162,15 @@ gun.name.ifPit=IF-18 Horseshoe Bottomless Pit gun.name.ifScope=IF-18 Horseshoe Scoped gun.name.ifStorm=IF-18 Horseshoe Silver Storm gun.name.ifVanity=IF-18 Horseshoe Vanity -gun.name.karl=M1 Karl-Gerät +gun.name.karl=M1 Karl-Gerֳ₪t gun.name.ks23=KS-23 gun.name.lacunae=Auntie Lacunae gun.name.lasetDet=Hopeville Laser Detonator gun.name.lunaAR=1986 Bishamonten type Assault Rifle -gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) +gun.name.lunaGun=1978 Rִ�hula type Standard Issue Sidearm (Revision 2) gun.name.lunaHLR=1944 Chang'e type Light Machine Gun gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 Ānanda type Submachine Gun +gun.name.lunaSMG=1956 ִ€nanda type Submachine Gun gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle gun.name.lunaTWR=Time Warp Rifle gun.name.m2=Browning machine gun, cal. .50, M2, HB @@ -1183,7 +1183,7 @@ gun.name.mg3=Universal-Maschinengewehr Modell 3 gun.name.mp40=Maschinenpistole 40 gun.name.nerf=NERF blaster of unknown design gun.name.osipr=Overwatch Standard Issue Pulse Rifle -gun.name.panz=Raketenpanzerbüchse 54 +gun.name.panz=Raketenpanzerbֳ¼chse 54 gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher gun.name.remington870=Remington 870 gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun @@ -1226,12 +1226,12 @@ hadron.error_analysis_too_long=Error 0x06 [ATL] hadron.error_analysis_too_short=Error 0x07 [ATS] hadron.error_diode_collision=Error 0x08 [DC] hadron.error_branching_turn=Error 0x09 [BT] -hadron.hopper0=§eNormal Mode:$All items will be used. -hadron.hopper1=§eHopper Mode:$One item will always remain. -hadron.hopper2=§eSingle Mode:$Only allows one item per slot. +hadron.hopper0=ֲ§eNormal Mode:$All items will be used. +hadron.hopper1=ֲ§eHopper Mode:$One item will always remain. +hadron.hopper2=ֲ§eSingle Mode:$Only allows one item per slot. hadron.idle=Idle -hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. -hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. +hadron.modeCircular=ֲ§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. +hadron.modeLine=ֲ§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. hadron.noresult=No Result. hadron.noresult_too_slow=Insuff. momentum! hadron.noresult_wrong_ingredient=Invalid recipe! @@ -1340,7 +1340,7 @@ hbmfluid.mustardgas=Mustard Gas hbmfluid.naphtha=Naphtha hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha -hbmfluid.nitan=NITAN© 100 Octane Super Fuel +hbmfluid.nitan=NITANֲ© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=None @@ -1679,7 +1679,7 @@ item.ammo_grenade_he.name=40mm Grenade (HE) item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) item.ammo_grenade_kampf.name=40mm Rocket item.ammo_grenade_leadburster.name=40mm Leadburster -item.ammo_grenade_nuclear.name=40mm Grenade (Привет) +item.ammo_grenade_nuclear.name=40mm Grenade (׀�ׁ€׀¸׀²׀µׁ‚) item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) item.ammo_grenade_toxic.name=40mm Grenade (Chemical) @@ -1714,7 +1714,7 @@ item.ammo_rocket_emp.name=84mm Rocket (Pulse) item.ammo_rocket_glare.name=84mm Rocket (Red Glare) item.ammo_rocket_he.name=84mm Rocket (HE) item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) -item.ammo_rocket_nuclear.name=84mm Rocket (Привет) +item.ammo_rocket_nuclear.name=84mm Rocket (׀�ׁ€׀¸׀²׀µׁ‚) item.ammo_rocket_phosphorus.name=84mm Rocket (WP) item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) @@ -1728,7 +1728,7 @@ item.ammo_shell_w9.name=240mm W9 Nuclear Shell item.ammo_stinger_rocket.name=Stinger Rocket item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) -item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) +item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (׀�ׁ€׀¸׀²׀µׁ‚) item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking) item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst @@ -1768,7 +1768,7 @@ item.apple_schrabidium.name=Schrabidium Apple item.arc_electrode.name=Graphite Electrode item.arc_electrode_burnt.name=Molten Electrode item.arc_electrode_desh.name=Desh Electrode -item.armor_polish.name=ShiningArmor™ Armor Polish +item.armor_polish.name=ShiningArmorג„¢ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth item.asbestos_helmet.name=Fire Proximity Helmet @@ -1992,7 +1992,7 @@ item.can_mug.name=MUG Root Beer item.can_overcharge.name=Overcharge Delirium XT item.can_redbomb.name='Red Bomb' Energy Drink item.can_smart.name='Smart' Energy Drink -item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_NITAN.name=NITANֲ© 100 Octane Super Fuel (LEGACY) item.canister_biofuel.name=Biofuel Canister (LEGACY) item.canister_bitumen.name=Bitumen Canister (LEGACY) item.canister_canola.name=Engine Lubricant (LEGACY) @@ -2036,7 +2036,7 @@ item.canned_fried.name=Canned Fried Chicken item.canned_fried.desc=Even the can is deep fried! item.canned_hotdogs.name=Canned Hotdogs item.canned_hotdogs.desc=Not to be confused with cool cats. -item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ +item.canned_jizz.name=FlimFlam Industries Canned Stallion Milkג„¢ item.canned_jizz.desc=Wait wh- item.canned_kerosene.name=Canned Kerosene item.canned_kerosene.desc=Just imagine a witty line here. @@ -2050,14 +2050,14 @@ item.canned_napalm.name=Canned Napalm item.canned_napalm.desc=I love the smell of old memes in the morning! item.canned_oil.name=Canned Engine Oil item.canned_oil.desc=It makes motors go, so why not humans? -item.canned_pashtet.name=Паштет -item.canned_pashtet.desc=услуги перевода недоступны! +item.canned_pashtet.name=׀�׀°ׁˆׁ‚׀µׁ‚ +item.canned_pashtet.desc=ׁƒׁ�׀»ׁƒ׀³׀¸ ׀¿׀µׁ€׀µ׀²׀¾׀´׀° ׀½׀µ׀´׀¾ׁ�ׁ‚ׁƒ׀¿׀½ׁ‹! item.canned_pizza.name=Canned Pepperoni Pizza item.canned_pizza.desc=A crime against humanity. item.canned_recursion.name=Canned Recursion item.canned_recursion.desc=Canned Recursion item.canned_spam.name=Canned Spam -item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the cafֳ©.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. item.canned_stew.name=Canned "Mushroom Stew" item.canned_stew.desc=... item.canned_tomato.name=Canned Tomato Soup @@ -2611,9 +2611,9 @@ item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade item.gun_ar15.name=Josh item.gun_avenger.name=CZ57 Avenger Minigun -item.gun_b92.name=§9B92 Energy Pistol§r -item.gun_b92_ammo.name=§9B92 Energy Cell§r -item.gun_b93.name=§cB93 Energy Mod§r +item.gun_b92.name=ֲ§9B92 Energy Pistolֲ§r +item.gun_b92_ammo.name=ֲ§9B92 Energy Cellֲ§r +item.gun_b93.name=ֲ§cB93 Energy Modֲ§r item.gun_benelli.name=Benelli Autoshotgun (Drum Mod) item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell @@ -2667,7 +2667,7 @@ item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) item.gun_lever_action_sonata.name=Flipped Mare's Leg -item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r +item.gun_lever_action_sonata_2.name=ֲ§cSonata's Microphoneֲ§r item.gun_lunatic_marksman.name=Lunatic Sniper Rifle item.gun_m2.name=Ma Deuce item.gun_minigun.name=CZ53 Personal Minigun @@ -2685,7 +2685,7 @@ item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" item.gun_quadro.name=Quattro Formaggi -item.gun_remington.name=バイデン ブラスト [BIDEN BLAST] +item.gun_remington.name=דƒ�ד‚₪דƒ‡דƒ³ דƒ–דƒ©ד‚¹דƒˆ [BIDEN BLAST] item.gun_revolver.name=Enhanced Revolver item.gun_revolver_ammo.name=Lead Bullet item.gun_revolver_blackjack.name=Blackjack Five-Shooter @@ -2799,7 +2799,7 @@ item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel item.ingot_arsenic.name=Arsenic Ingot item.ingot_asbestos.name=Asbestos Sheet -item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r +item.ingot_asbestos.desc=ֲ§o"Filled with life, self-doubt and asbestos. That comes with the air."ֲ§r item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_bakelite.name=Bakelite Bar @@ -2877,7 +2877,7 @@ item.ingot_semtex.name=Bar of Semtex item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot -item.ingot_starmetal.name=§9Starmetal Ingot§r +item.ingot_starmetal.name=ֲ§9Starmetal Ingotֲ§r item.ingot_steel.name=Steel Ingot item.ingot_steel_dusted.name=Dusted Steel Ingot item.ingot_tantalium.name=Tantalium Ingot @@ -2901,7 +2901,7 @@ item.ingot_weidanium.name=Weidanium Ingot item.ingot_zirconium.name=Zirconium Cube item.injector_5htp.name=5-HTP Autoinjector item.injector_knife.name=8 Inch Blade Autoinjector -item.ink.name=林 Ink +item.ink.name=ז�— Ink item.insert_doxium.name=Astolfium-Doped Doxium Insert item.insert_du.name=DU Insert item.insert_era.name=Explosive Reactive Armor Insert @@ -2932,7 +2932,7 @@ item.key_fake.name=Counterfeit Key item.key_kit.name=Key Imitation Kit item.key_red.name=Red Key item.key_red.desc=Explore the other side. -item.key_red.desc.P11=§4e§r +item.key_red.desc.P11=ֲ§4eֲ§r item.kit_toolbox.name=Toolbox item.kit_toolbox_empty.name=Empty Toolbox item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix @@ -2958,7 +2958,7 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast -item.loops.name=Lööps +item.loops.name=Lֳ¶ֳ¶ps item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -2989,7 +2989,7 @@ item.med_ptsd.name=PTSD Medication item.med_schiziphrenia.name=Schizophrenia Medication item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator -item.memespoon.name=§eMarket Gardener +item.memespoon.name=ֲ§eMarket Gardener item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe @@ -3057,7 +3057,7 @@ item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not atte item.missile_skin_sleek.name=Missile Skin: IF-R&D item.missile_skin_sleek.desc=Chevrons are cool! item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory -item.missile_skin_soviet_glory.desc=услуга перевода недоступна +item.missile_skin_soviet_glory.desc=ׁƒׁ�׀»ׁƒ׀³׀° ׀¿׀µׁ€׀µ׀²׀¾׀´׀° ׀½׀µ׀´׀¾ׁ�ׁ‚ׁƒ׀¿׀½׀° item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG @@ -3189,7 +3189,7 @@ item.mp_warhead_15_balefire.name=Size 15 BF Warhead item.mp_warhead_15_boxcar.name=Size 15 Boxcar? item.mp_warhead_15_he.name=Size 15 HE Warhead item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead -item.mp_warhead_15_n2.name=Size 15 N² Mine +item.mp_warhead_15_n2.name=Size 15 Nֲ² Mine item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead @@ -3260,7 +3260,7 @@ item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget item.nugget_mercury_tiny.name=Tiny Drop of Mercury item.nugget_mercury.name=Drop of Mercury item.nugget_mox_fuel.name=Nugget of MOX Fuel -item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r +item.nugget_mox_fuel.desc=Moxie says: ֲ§lTAX EVASION.ֲ§r item.nugget_neptunium.name=Neptunium Nugget item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget item.nugget_osmiridium.name=Osmiridium Nugget @@ -3378,7 +3378,7 @@ item.particle_aproton.name=Antiproton Capsule item.particle_aschrab.name=Antischrabidium Capsule item.particle_copper.name=Copper Ion Capsule item.particle_dark.name=Dark Matter Capsule -item.particle_digamma.name=§cThe Digamma Particle§r +item.particle_digamma.name=ֲ§cThe Digamma Particleֲ§r item.particle_empty.name=Empty Particle Capsule item.particle_higgs.name=Higgs Boson Capsule item.particle_hydrogen.name=Hydrogen Ion Capsule @@ -3444,19 +3444,19 @@ item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet item.photo_panel.name=Photovoltaic Panel item.pile_rod_boron.name=Chicago Pile Control Rod -item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle +item.pile_rod_boron.desc=ֲ§9[Neutron Absorber]$ֲ§eClick to toggle item.pile_rod_detector.name=Chicago Pile Control & Detector Rod -item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux +item.pile_rod_detector.desc=ֲ§9[Neutron Detector/Absorber]$ֲ§eUse defuser to increase/decrease neutron limit$ֲ§eUse screwdriver w/o sneaking to inspect flux item.pile_rod_lithium.name=Chicago Pile Lithium Cell -item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core +item.pile_rod_lithium.desc=ֲ§a[Breedable Fuel]$ֲ§eUse hand drill to inspect core item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod -item.pile_rod_plutonium.desc=§d[Neutron Source] +item.pile_rod_plutonium.desc=ֲ§d[Neutron Source] item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod -item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. +item.pile_rod_pu239.desc=ֲ§a[Reactive Fuel]$ֲ§eRich in Plutonium-239. item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source -item.pile_rod_source.desc=§d[Neutron Source] +item.pile_rod_source.desc=ֲ§d[Neutron Source] item.pile_rod_uranium.name=Chicago Pile Uranium Rod -item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample +item.pile_rod_uranium.desc=ֲ§a[Reactive Fuel]$ֲ§eUse hand drill to take core sample item.pill_iodine.name=Iodine Pill item.pill_iodine.desc=Removes negative effects item.pill_herbal.name=Herbal Paste @@ -3520,7 +3520,7 @@ item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder -item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_asbestos.desc=ֲ§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"ֲ§r item.powder_ash.coal.name=Coal Ash item.powder_ash.fly.name=Fly Ash item.powder_ash.fullerene.name=Fullerene @@ -3561,7 +3561,7 @@ item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder item.powder_daffergon.name=Daffergon Powder item.powder_desh.name=Desh Powder item.powder_desh_mix.name=Desh Blend -item.powder_desh_ready.name=DeshReady™ Blend +item.powder_desh_ready.name=DeshReadyג„¢ Blend item.powder_diamond.name=Diamond Powder item.powder_dineutronium.name=Dineutronium Powder item.powder_dura_steel.name=High-Speed Steel Powder @@ -3703,7 +3703,7 @@ item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod -item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r +item.rbmk_fuel_drx.name=ֲ§cDigamma RBMK Fuel Rodֲ§r item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod item.rbmk_fuel_flashlead.name=Flashlead RBMK Fuel Rod item.rbmk_fuel_hea241.name=HEA-241 RBMK Fuel Rod @@ -3737,7 +3737,7 @@ item.rbmk_lid.name=RBMK Cover Panel item.rbmk_lid_glass.name=RBMK Glass Cover Panel item.rbmk_pellet_balefire.name=Balefire Fuel Pellet item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet -item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r +item.rbmk_pellet_drx.name=ֲ§cDigamma Fuel Pelletֲ§r item.rbmk_pellet_flashlead.name=Flashlead Fuel Pellet item.rbmk_pellet_hea241.name=HEA-241 Fuel Pellet item.rbmk_pellet_hea242.name=HEA-242 Fuel Pellet @@ -3783,7 +3783,7 @@ item.redstone_sword.name=Redstone Sword item.reer_graar.name=The Reer Graar item.remote.name=Broken Remote item.ring_pull.name=Ring Pull -item.ring_starmetal.name=§9Starmetal Ring§r +item.ring_starmetal.name=ֲ§9Starmetal Ringֲ§r item.robes_boots.name=Field Boots item.robes_helmet.name=Casual Hoodie item.robes_legs.name=Casual Pants @@ -3985,6 +3985,7 @@ item.sat_base.name=Satellite Base item.sat_chip.name=Satellite ID-Chip item.sat_coord.name=Satellite Designator item.sat_designator.name=Satellite Laser Designator +item.sat_relay.name=Satellite Radar Relay item.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion item.sat_gerald.name=Gerald The Construction Android item.sat_head_laser.name=Death Ray @@ -4315,12 +4316,12 @@ item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) item.weapon_bat.name=Richard's Default -item.weapon_bat_nail.name=The Cliché +item.weapon_bat_nail.name=The Clichֳ© item.weapon_golf_club.name=Russian Mobster's Club item.weapon_pipe_lead.name=The Manual Override item.weapon_pipe_rusty.name=The Attitude Adjuster item.weapon_saw.name=Doctor Assisted Homicide -item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r +item.weaponized_starblaster_cell.name=ֲ§cRigged Star Blaster Energy Cellֲ§r item.wd40.name=VT-40 item.wild_p.name=Wild Pegasus Dry Whiskey item.wings_limp.name=Limp Wings @@ -4402,11 +4403,11 @@ rbmk.console.fuel_depletion=Monitor average fuel depletion rbmk.console.fuel_poison=Monitor average xenon poisoning rbmk.console.fuel_temp=Monitor average fuel temperature rbmk.control.level=%s -rbmk.control.red=§cRed Group -rbmk.control.yellow=§eYellow Group -rbmk.control.green=§aGreen Group -rbmk.control.blue=§1Blue Group -rbmk.control.purple=§5Purple Group +rbmk.control.red=ֲ§cRed Group +rbmk.control.yellow=ֲ§eYellow Group +rbmk.control.green=ֲ§aGreen Group +rbmk.control.blue=ֲ§1Blue Group +rbmk.control.purple=ֲ§5Purple Group rbmk.moderated=Moderated rbmk.rod.depletion=Depletion: %s rbmk.rod.xenon=Xenon poison: %s @@ -4471,7 +4472,7 @@ tile.barbed_wire_wither.name=Withered Barbed Wire tile.barrel_antimatter.name=Magnetic Antimatter Container tile.barrel_corroded.name=Corroded Barrel tile.barrel_iron.name=Iron Barrel -tile.barrel_plastic.name=Safe Barrel™ +tile.barrel_plastic.name=Safe Barrelג„¢ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags @@ -4572,7 +4573,7 @@ tile.block_semtex.name=Block of Semtex tile.block_slag.name=Block of Slag tile.block_smore.name=Block of S'more tile.block_solinium.name=Block of Solinium -tile.block_starmetal.name=§9Block of Starmetal§r +tile.block_starmetal.name=ֲ§9Block of Starmetalֲ§r tile.block_steel.name=Block of Steel tile.block_sulfur.name=Block of Sulfur tile.block_tantalium.name=Block of Tantalium @@ -4744,7 +4745,7 @@ tile.concrete_slab.ducrete_smooth.name=Ducrete Slab tile.concrete_smooth.name=Concrete tile.concrete_smooth_stairs.name=Concrete Stairs tile.concrete_stairs.name=Concrete Tile Stairs -tile.concrete_super.name=Über Concrete +tile.concrete_super.name=ֳ�ber Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt tile.conveyor.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend @@ -4910,11 +4911,11 @@ tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks tile.furnace_combination.name=Combination Oven -tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t +tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ־”T*0.25 TU/t tile.furnace_iron.name=Iron Furnace tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. tile.furnace_steel.name=Steel Furnace -tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ־”T*0.05 TU/t$(־” means difference and T means temperature) tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_conductor_welded.name=Superconducting Magnet (Welded) @@ -4971,7 +4972,7 @@ tile.hadron_coil_starmetal.name=Dense Starmetal Coil tile.hadron_cooler.name=Particle Accelerator Cooling Unit tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special -tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% +tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)ֲ²/225$Maximum penalty: -90%% tile.hadron_core.name=Particle Accelerator Core Component tile.hadron_diode.name=Schottky Particle Diode tile.hadron_plating.name=Particle Accelerator Plating @@ -5037,7 +5038,7 @@ tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block tile.machine_boiler.name=Boiler -tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ־”T*0.01 TU/t tile.machine_boiler_electric_off.name=Electric Oil Heater tile.machine_boiler_electric_on.name=Electric Oil Heater tile.machine_boiler_off.name=Oil Heater @@ -5052,7 +5053,7 @@ tile.machine_chungus.desc=Efficiency: 85%% tile.machine_coal_off.name=Combustion Generator tile.machine_coal_on.name=Combustion Generator tile.machine_coker.name=Coker Unit -tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ־”T*0.025 TU/t tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_compressor.name=Compressor @@ -5094,7 +5095,7 @@ tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator tile.machine_hephaestus.name=Geothermal Heat Exchanger tile.machine_industrial_boiler.name=Industrial Boiler -tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode +tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ־”T*0.01 TU/t$Cannot explode tile.machine_industrial_generator.name=Industrial Generator tile.machine_keyforge.name=Locksmith Table tile.machine_large_turbine.name=Industrial Steam Turbine @@ -5199,7 +5200,7 @@ tile.nuke_fstbmb.name=Balefire Bomb tile.nuke_gadget.name=The Gadget tile.nuke_man.name=Fat Man tile.nuke_mike.name=Ivy Mike -tile.nuke_n2.name=N² Mine +tile.nuke_n2.name=Nֲ² Mine tile.nuke_n45.name=N45 Naval Mine tile.nuke_prototype.name=The Prototype tile.nuke_solinium.name=The Blue Rinse @@ -5609,9 +5610,9 @@ tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter turret.animals=Target Passive: %s -turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m -turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m -turret.arty.manual=§eManual Mode$Range: 3,000m +turret.arty.artillery=ֲ§eArtillery Mode$Grace: 250m$Range: 3,000m +turret.arty.cannon=ֲ§eCannon Mode$Grace: 32m$Range: 250m +turret.arty.manual=ֲ§eManual Mode$Range: 3,000m turret.machines=Target Machines: %s turret.mobs=Target Mobs: %s turret.none=None @@ -5622,12 +5623,12 @@ turret.players=Target Players: %s upgrade.consumption=Consumption %s upgrade.speed=Process time %s -upgrade.gui.title=§lAcceptable Upgrades:§r -upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s -upgrade.gui.effectiveness= * §aEffectiveness§r: Stacks to level %s -upgrade.gui.overdrive= * §7Overdrive§r: Stacks to level %s -upgrade.gui.power= * §9Power-Saving§r: Stacks to level %s -upgrade.gui.speed= * §4Speed§r: Stacks to level %s +upgrade.gui.title=ֲ§lAcceptable Upgrades:ֲ§r +upgrade.gui.afterburner= * ֲ§dAfterburnerֲ§r: Stacks to level %s +upgrade.gui.effectiveness= * ֲ§aEffectivenessֲ§r: Stacks to level %s +upgrade.gui.overdrive= * ֲ§7Overdriveֲ§r: Stacks to level %s +upgrade.gui.power= * ֲ§9Power-Savingֲ§r: Stacks to level %s +upgrade.gui.speed= * ֲ§4Speedֲ§r: Stacks to level %s wavelengths.name.ir=Infrared wavelengths.name.visible=Visible Light diff --git a/src/main/resources/assets/hbm/textures/items/sat_relay.png b/src/main/resources/assets/hbm/textures/items/sat_relay.png new file mode 100644 index 0000000000000000000000000000000000000000..2c104ddf792476a3dcfc483abba098ea8e88b032 GIT binary patch literal 486 zcmV@P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0eeYAK~y+TrIE2q z!%z^$FA*Kmh;}k{a;>5`6gP`QH@gT`1b4}xo0Bf;2#WOzu%|WY&Ltfpk7B?Cl zsMX#nzpxCrcdMk4DFY;#OnzY;{#jL3$Ye5b*?ES$wF5Yx-=TXX)_@h_!boG=nx?X@ zKH+wCpYFzqHDDtw;f%PjD7I}wrSclTL|xZIjIu04B9VYzuP3x5Nnn~LTV83RMkHtY zX}G?%%`<>7BrmWmi=yXwq|4> Date: Sun, 10 Dec 2023 10:07:09 +0200 Subject: [PATCH 019/376] I suffer from stupid idiot disease --- .../com/hbm/tileentity/machine/TileEntityMachineRadarNT.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 41c0ce4d6..93d4a8218 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -417,7 +417,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I int id = data.getInteger("link"); ItemStack link = slots[id]; - if(link != null && link.getItem() == ModItems.sat_chip) { + if(link != null && link.getItem() == ModItems.sat_relay) { World world = player.getEntityWorld(); Satellite sat = SatelliteSavedData.getData(world).getSatFromFreq(ISatChip.getFreqS(link)); if(sat instanceof SatelliteLaser) { From 0062a2f01ce01fe3cb355348a004a2185e118d3f Mon Sep 17 00:00:00 2001 From: 9Valjews <64272884+9Valjew@users.noreply.github.com> Date: Sun, 10 Dec 2023 10:18:52 +0200 Subject: [PATCH 020/376] Empty commit, be aware, it might break some encoding shit in other languages, I cant check it because if I compile it it will use the hebrew encoding regardless, hopefully there would be no issue when its properly compiled as its only my system compiling it like that, rather than the files being borked From c64f3f5e5aca2d4b6cb30614a8b2ad9392ff17a2 Mon Sep 17 00:00:00 2001 From: 9Valjews <64272884+9Valjew@users.noreply.github.com> Date: Sun, 10 Dec 2023 10:20:16 +0200 Subject: [PATCH 021/376] anyways I think it should be fine, its just my PC being stupid From 4343caeb226d302c3c8eb2cb02660f216e56e90c Mon Sep 17 00:00:00 2001 From: 9Valjews <64272884+9Valjew@users.noreply.github.com> Date: Sun, 10 Dec 2023 10:27:46 +0200 Subject: [PATCH 022/376] Update en_US.lang The unfuckening --- src/main/resources/assets/hbm/lang/en_US.lang | 320 +++++++++--------- 1 file changed, 160 insertions(+), 160 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 962f4506d..5ff16bd84 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -122,7 +122,7 @@ achievement.technetium.desc=It's medicinal, it's medicinal! achievement.technetium=Big Man, Pig Man achievement.watzBoom.desc=Drain your septic tank next time. achievement.watzBoom=Disgusting -achievement.watz.desc=Fֳ³lkvangr fields possibly included. +achievement.watz.desc=Fólkvangr fields possibly included. achievement.watz=The Power of Element-126 achievement.witchtaunter.desc=Those wacky creatures got nothing on you! achievement.witchtaunter=Witch Taunter @@ -199,129 +199,129 @@ book.test.page1=Test Page 1 book.error.cover=Hadron Collider:$Troubleshooting book.error.title1=Error 0x01 [NC] -book.error.page1=ֲ§lName:ֲ§r "ERROR_NO_CHARGE" ֲ§lDescription:ֲ§r The particle has reached a segment with insufficient charge. ֲ§lPotential fix:ֲ§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. book.error.title2=Error 0x02 [NA] -book.error.page2=ֲ§lName:ֲ§r "ERROR_NO_ANALYSIS" ֲ§lDescription:ֲ§r The particle has reached the core, despite not passing an analysis chamber. ֲ§lPotential fix:ֲ§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). book.error.title3=Error 0x03 [OC] -book.error.page3=ֲ§lName:ֲ§r "ERROR_OBSTRUCTED_CHANNEL" ֲ§lDescription:ֲ§r The particle has collided with a block inside the collider's channel. ֲ§lPotential fix:ֲ§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. book.error.title4=Error 0x04 [EC] -book.error.page4=ֲ§lName:ֲ§r "ERROR_EXPECTED_COIL" ֲ§lDescription:ֲ§r The particle has passed a segment that lacks one or multiple coils. ֲ§lPotential fix:ֲ§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. book.error.title5=Error 0x05 [MS] -book.error.page5=ֲ§lName:ֲ§r "ERROR_MALFORMED_SEGMENT" ֲ§lDescription:ֲ§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). ֲ§lPotential fix:ֲ§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. book.error.title6=Error 0x06 [ATL] -book.error.page6=ֲ§lName:ֲ§r "ERROR_ANALYSIS_TOO_LONG" ֲ§lDescription:ֲ§r The particle has passed more than the three required valid analysis chamber segments. ֲ§lPotential fix:ֲ§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. book.error.title7=Error 0x07 [ATS] -book.error.page7=ֲ§lName:ֲ§r "ERROR_ANALYSIS_TOO_SHORT" ֲ§lDescription:ֲ§r The particle has left the analysis chamber, despite not meeting the length requirement. ֲ§lPotential fix:ֲ§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. book.error.title8=Error 0x08 [DC] -book.error.page8=ֲ§lName:ֲ§r "ERROR_DIODE_COLLISION" ֲ§lDescription:ֲ§r The particle collided with a non-input side of a schottky particle diode. ֲ§lPotential fix:ֲ§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. book.error.title9=Error 0x09 [BT] -book.error.page9=ֲ§lName:ֲ§r "ERROR_BRANCHING_TURN" ֲ§lDescription:ֲ§r The particle has reached a turn with multiple exits. ֲ§lPotential fix:ֲ§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. +book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. book.rbmk.cover=My first RBMK:$Basics of$building a$reactor book.rbmk.title1=Introduction -book.rbmk.page1=ֲ§lRBMKֲ§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. +book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. book.rbmk.title2=Heat -book.rbmk.page2=As reactor runs, it will generate ֲ§lheatֲ§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. +book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. book.rbmk.title3=Fuel Rod -book.rbmk.page3=The ֲ§lfuel rodֲ§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. +book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. book.rbmk.title4=Regulating Rod -book.rbmk.page4=The ֲ§lcontrol rodֲ§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. +book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. book.rbmk.title5=Regulating Rods - Usage book.rbmk.title5.scale=0.9 -book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on ֲ§lRBMKֲ§r console. The buttons on right allow you to manually insert in 25%% increments. +book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. book.rbmk.title6=Automatic Control Rods -book.rbmk.page6=ֲ§LAutomatic control rodsֲ§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. +book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. book.rbmk.title7=Steam Channel -book.rbmk.page7=The ֲ§lsteam channelֲ§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. +book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. book.rbmk.title8=Neutron Reflector -book.rbmk.page8=The ֲ§lneutron reflectorֲ§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. +book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. book.rbmk.title9=Neutron Absorber -book.rbmk.page9=ֲ§lNeutron absorberֲ§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. +book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. book.rbmk.title10=Graphite Retarder -book.rbmk.page10=ֲ§lGraphite moderatorֲ§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. +book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. book.rbmk.title11=Structural Column -book.rbmk.page11=ֲ§lStructural columnֲ§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. +book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. book.rbmk.title12=Console -book.rbmk.page12=ֲ§lRBMK consoleֲ§r allows you to control the reactor from afar. Using the ֲ§ldevice to connect the console RBMKֲ§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. +book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. book.rbmk.title13=Using the console book.rbmk.page13=Clicking on parts will select and deselect them. With the colored buttons, you can quickly select all the control rods in that color group. Button "A" will select all control rods, "X" will deselect all. book.rbmk.page14=Entering a number between 0 and 100 in green box and then pressing button next to it will set all selected control rods to that position. Button "AZ-5" will lead to full insertion of all control rods. book.rbmk.title15=Fuel -book.rbmk.page15=The ֲ§lfuelֲ§r response depends on many factors. The main ones are ֲ§lfortificationֲ§r, ֲ§lxenon poisoningֲ§r and number of incoming ֲ§lneutronsֲ§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels ֲ§lare best split byֲ§r ֲ§lslow neutronsֲ§r. +book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. book.rbmk.title16=Melting -book.rbmk.page16=ֲ§4ֲ§lAVOID. +book.rbmk.page16=§4§lAVOID. book.starter.cover=An Industrialist's$Guide to Rebuilding$Society book.starter.title1=Introduction book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. book.starter.title2=Coal & Mustard Gas -book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some ֲ§lclothֲ§r to make a ֲ§ltrench maskֲ§r, to protect you from coal dust or mustard gas, if you ever encounter either. +book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. book.starter.title3=Anvils & Presses -book.starter.page3=The quintessentials to beginning your industrial revitalization is an ֲ§lanvilֲ§r and a ֲ§lburner pressֲ§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. +book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. book.starter.title4=Templates -book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a ֲ§lMachine Template Folderֲ§r to create the various stamps and templates shown to the right. +book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. book.starter.title5=Scavenging book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... book.starter.title6=Early Machinery -book.starter.page6a=Two of the first machines you should assemble are the ֲ§lBlast Furnaceֲ§r and the ֲ§lAssembly Machineֲ§r. The former will allow you to create alloys such as ֲ§lsteelֲ§r, ֲ§lminecraft-grade copperֲ§r, and ֲ§ladvanced alloyֲ§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. -book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a ֲ§lCombustionֲ§r ֲ§lGeneratorֲ§r or ֲ§lSolar Boilerֲ§r. -book.starter.page7a=The ֲ§lShredderֲ§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as ֲ§lEnhancedֲ§r and ֲ§lOverclockedֲ§r circuits. -book.starter.page7b=Using your new machinery, you can create the ֲ§lChemical Plantֲ§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. +book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. +book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. +book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. +book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. book.starter.title8=Black Gold -book.starter.page8a=Using an ֲ§lOil ֲ§lReservoirֲ§r ֲ§lDetectorֲ§r, you can find underground oil deposits to place a ֲ§lPumpjackֲ§r or ֲ§lDerrickֲ§r over via surveying an area. Remember that oil deposits will run out over time. -book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an ֲ§lOil Refineryֲ§r, you must heat the oil to 300ֲ°C in a ֲ§lBoilerֲ§r. +book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. +book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. book.starter.title9=Petrochemicals -book.starter.page9=Using ֲ§lChemical Plantsֲ§r, ֲ§lFractioningֲ§r ֲ§lTowersֲ§r, and ֲ§lCatalytic Crackingֲ§r ֲ§lTowersֲ§r, you can transform the separated oil into a variety of useful products. For example: ֲ§lPolymerֲ§r or ֲ§lBakeliteֲ§r, durable and flexible plastics; ֲ§lDeshֲ§r, an extremely durable and heat-resistant rare earth metal alloy; ֲ§lSolid Fuelֲ§r, which can be burnt for energy; or even ֲ§lLiquid Fuelsֲ§r, such as ֲ§lGasolineֲ§r, ֲ§lDieselֲ§r, ֲ§lKeroseneֲ§r, and more. +book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. book.starter.title10=Advanced Machinery -book.starter.page10=With oil processing under your belt, you can create the ֲ§lCentrifugeֲ§r, which will triple ore outputs; the ֲ§lOre ֲ§lAcidizerֲ§r, which will crystallize ores, increasing the yield; and the ֲ§lSILEX + ֲ§lFELֲ§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a ֲ§lDiesel Generatorֲ§r, an ֲ§lIndustrial Generatorֲ§r, or even a nuclear reactor. +book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. book.starter.title11=Strata -book.starter.page11=Underneath the ground you walk, there is several naturally-occurring ֲ§lStrataֲ§r, or special mineral layers and formations. ֲ§lSchist Strataֲ§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. ֲ§lDepth Rockֲ§r contains large quantities of rarer minerals, such as ֲ§lZirconiumֲ§r and ֲ§lBoronֲ§r, but requires explosives to properly harvest. +book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. book.starter.title12=Radiation -book.starter.page12a=ֲ§oThe rest of this book will deal with matters that involve ֲ§oradiation. For the safety of you and others, I will give ֲ§oadvice on how to mitigate and deal with exposure to it. -book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a ֲ§lHazmat Suitֲ§r, or apply ֲ§lCladdingֲ§r to your clothing or armor; you can also take ֲ§lRad-Xֲ§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a ֲ§lPlayer ֲ§lDecontaminatorֲ§r will slowly reduce the radiation absorbed by your body. ֲ§lRad-Awayֲ§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. +book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. book.starter.title13=Uranium Enrichment -book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, ֲ§lNatural Uraniumֲ§r or ֲ§lThorium Fuelֲ§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two ֲ§lGas Centrifugesֲ§r to produce ֲ§lUranium Fuelֲ§r with leftover ֲ§lUranium-238ֲ§r. You will have to transmute the natural uranium into ֲ§lYellowcakeֲ§r, then ֲ§lUranium ֲ§lHexafluorideֲ§r to do so. +book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. book.starter.title14=The Chicago Pile -book.starter.page14=Alternatively, you can breed ֲ§lReactor-Grade Plutoniumֲ§r, a more powerful fuel, from Natural Uranium using the ֲ§lChicago Pileֲ§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as ֲ§lRadium-Berylliumֲ§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. book.starter.title15=ZIRNOX GCR -book.starter.page15=Finally, you can create your first ֲ§orealֲ§r source of energy: the ֲ§lZIRNOXֲ§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the ֲ§lHeavy ֲ§lInfinite Water Tankֲ§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of ֲ§lCarbon Dioxideֲ§r. You want just enough pressure, but not ֲ§otooֲ§r much. You will also need three steam turbines to utilize the created steam to make energy; the ֲ§lSteam ֲ§lTurbineֲ§r or ֲ§lIndustrial Steam ֲ§lTurbineֲ§r will be optimal. Finally, a ֲ§lCondensorֲ§r or ֲ§lAuxilary Cooling Towerֲ§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. +book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. book.starter.title16=Conclusion -book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know ֲ§ohowֲ§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! +book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! book.starter.title18=About the Author -book.starter.page18=vֳ¦r is just a guy who has been trapped in the grey void featured in the Talking Head's ֲ§oOnce In A Lifetimeֲ§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. +book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.title1=Introduction -#book.rbmk.page1=The ֲ§lRBMKֲ§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. #book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate ֲ§lheatֲ§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a ֲ§lsteam channelֲ§r which cools the reactor and produces steam. +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. #book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The ֲ§lfuel rodֲ§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the ֲ§lfuelֲ§r used. +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. #book.rbmk.title4=Control Rod -#book.rbmk.page4=The ֲ§lcontrol rodֲ§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. #book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the ֲ§lRBMK consoleֲ§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. #book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=ֲ§lAutomatic control rodsֲ§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. #book.rbmk.title7=Steam Channel -#book.rbmk.page7=The ֲ§lsteam channelֲ§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. #book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The ֲ§lneutron reflectorֲ§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. #book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The ֲ§lneutron absorberֲ§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. #book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The ֲ§lgraphite moderatorֲ§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. #book.rbmk.title11=Structural Column -#book.rbmk.page11=The ֲ§lstructural columnֲ§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. #book.rbmk.title12=Console -#book.rbmk.page12=The ֲ§lRBMK consoleֲ§r lets you control the reactor from afar. Using the ֲ§lRBMKֲ§r ֲ§lconsole linking deviceֲ§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. #book.rbmk.title13=Console Usage #book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. #book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. #book.rbmk.title15=Fuel -#book.rbmk.page15=The ֲ§lfuelֲ§r's reactivity is based on multiple factors. The main ones are the ֲ§lenrichmentֲ§r, ֲ§lxenon poisonֲ§r and the amount of incoming ֲ§lneutronsֲ§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels ֲ§lsplit best with slow neutronsֲ§r. +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown -#book.rbmk.page16=ֲ§4ֲ§lAvoid. +#book.rbmk.page16=§4§lAvoid. book_lore.author=By %s book_lore.test.name=this book doesn't work... @@ -464,10 +464,10 @@ cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. cannery.crucible.3=The crucible has two storage buffers for material: -cannery.crucible.4=The buffer to the left is for ֲ§abyproductsֲ§r, all material smelted without a recipe template will land here. +cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. -cannery.crucible.7=The buffer to the right is for ֲ§crecipesֲ§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. +cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. @@ -733,7 +733,7 @@ container.nukeFurnace=Nuclear Powered Furnace container.nukeGadget=The Gadget container.nukeMan=Fat Man container.nukeMike=Ivy Mike -container.nukeN2=Nֲ² Mine +container.nukeN2=N² Mine container.nukeN45=N45 Naval Mine container.nukePrototype=The Prototype container.nukeSolinium=The Blue Rinse @@ -866,29 +866,29 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. -desc.gui.assembler.warning=ֲ§cError:ֲ§r This machine requires an assembly template! -desc.gui.chemplant.warning=ֲ§cError:ֲ§r This machine requires an chemistry template! -desc.gui.gasCent.enrichment=ֲ§2Enrichmentֲ§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. -desc.gui.gasCent.output=ֲ§6Fluid Transferֲ§r$Fluid can be transferred to another centrifuge$via the output port for further processing. -desc.gui.nukeBoy.desc=ֲ§1Requires:ֲ§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter -desc.gui.nukeGadget.desc=ֲ§1Requires:ֲ§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring -desc.gui.nukeMan.desc=ֲ§1Requires:ֲ§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit -desc.gui.nukeMike.desc=ֲ§1Requires:ֲ§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank -desc.gui.nukeTsar.desc=ֲ§1Requires:ֲ§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ֲ§9Optional:ֲ§r$ * Tsar Bomba Core -desc.gui.radiolysis.desc=ֲ§9Descriptionֲ§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. +desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! +desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! +desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. +desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core +desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay -desc.gui.rtg.heat=ֲ§eCurrent heat level: %s +desc.gui.rtg.heat=§eCurrent heat level: %s desc.gui.rtg.pellets=Accepted Pellets: desc.gui.rtg.pelletHeat=%s (%s heat) desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=ֲ§9Templatesֲ§r$Templates can be made by$using the Machine Template Folder. -desc.gui.turbinegas.automode=ֲ§2Automatic Turbine Throttling Modeֲ§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network -desc.gui.turbinegas.fuels=ֲ§6Accepted fuels:ֲ§r -desc.gui.turbinegas.warning=ֲ§cFuel or lubricant level low!ֲ§r -desc.gui.zirnox.coolant=ֲ§3Coolantֲ§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. -desc.gui.zirnox.pressure=ֲ§6Pressureֲ§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! -desc.gui.zirnox.warning1=ֲ§cError:ֲ§r Water is required for$the reactor to function properly! -desc.gui.zirnox.warning2=ֲ§cError:ֲ§r CO2 is required for$the reactor to function properly! +desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. +desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network +desc.gui.turbinegas.fuels=§6Accepted fuels:§r +desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r +desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. +desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! +desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! +desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! desc.item.ammo.con_accuracy2=- Highly decreased accuracy desc.item.ammo.con_damage=- Highly decreased damage @@ -998,7 +998,7 @@ desc.item.kitArmor=Armor will be displaced by new set. desc.item.kitHaz=Armor will be displaced by hazmat suit. desc.item.kitPack=What a bargain! desc.item.kitPool=Please empty inventory before opening! -desc.item.pileRod=ֲ§eUse on drilled graphite to insert$ֲ§eUse screwdriver to extract$ +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ desc.item.rtgDecay=Decays to: %s desc.item.rtgHeat=Power Level: %s desc.item.storage.capacity=Capacity %s%%s @@ -1006,19 +1006,19 @@ desc.item.storage.proscons=to view pros cons list desc.misc.357=.357 Magnum desc.misc.556=.223 Remington desc.misc.762=.308 Winchester -desc.misc.func=ֲ§n-- Function -- +desc.misc.func=§n-- Function -- desc.misc.lanthanum="Lanthanum" -desc.misc.lctrl=ֲ§8Hold <ֲ§eֲ§oLCTRLֲ§8ֲ§o> %s -desc.misc.lore=ֲ§n-- Lore -- -desc.misc.lshift=ֲ§8Hold <ֲ§eֲ§oLSHIFTֲ§8ֲ§o> %s -desc.misc.luna=ֲ§o20x155mm Lunatic -desc.misc.meltPoint=Melting point: ֲ§c%s +desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Lore -- +desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: §c%s desc.misc.noPos=No position set! desc.misc.pos=Set pos to: %s, %s, %s desc.misc.posSet=Position set! desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.zirnoxBreedingRod=ֲ§2[ZIRNOX Breeding Rod]$ֲ§ePlace next to fuel rods to breed$ֲ§eLasts %d ticks -desc.item.zirnoxRod=ֲ§a[ZIRNOX Fuel Rod]$ֲ§eGenerates %1$d heat per tick$ֲ§eLasts %2$d ticks +desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks +desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks digamma.playerDigamma=Digamma exposure: digamma.playerHealth=Digamma influence: @@ -1162,15 +1162,15 @@ gun.name.ifPit=IF-18 Horseshoe Bottomless Pit gun.name.ifScope=IF-18 Horseshoe Scoped gun.name.ifStorm=IF-18 Horseshoe Silver Storm gun.name.ifVanity=IF-18 Horseshoe Vanity -gun.name.karl=M1 Karl-Gerֳ₪t +gun.name.karl=M1 Karl-Gerät gun.name.ks23=KS-23 gun.name.lacunae=Auntie Lacunae gun.name.lasetDet=Hopeville Laser Detonator gun.name.lunaAR=1986 Bishamonten type Assault Rifle -gun.name.lunaGun=1978 Rִ�hula type Standard Issue Sidearm (Revision 2) +gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) gun.name.lunaHLR=1944 Chang'e type Light Machine Gun gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 ִ€nanda type Submachine Gun +gun.name.lunaSMG=1956 Ānanda type Submachine Gun gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle gun.name.lunaTWR=Time Warp Rifle gun.name.m2=Browning machine gun, cal. .50, M2, HB @@ -1183,7 +1183,7 @@ gun.name.mg3=Universal-Maschinengewehr Modell 3 gun.name.mp40=Maschinenpistole 40 gun.name.nerf=NERF blaster of unknown design gun.name.osipr=Overwatch Standard Issue Pulse Rifle -gun.name.panz=Raketenpanzerbֳ¼chse 54 +gun.name.panz=Raketenpanzerbüchse 54 gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher gun.name.remington870=Remington 870 gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun @@ -1226,12 +1226,12 @@ hadron.error_analysis_too_long=Error 0x06 [ATL] hadron.error_analysis_too_short=Error 0x07 [ATS] hadron.error_diode_collision=Error 0x08 [DC] hadron.error_branching_turn=Error 0x09 [BT] -hadron.hopper0=ֲ§eNormal Mode:$All items will be used. -hadron.hopper1=ֲ§eHopper Mode:$One item will always remain. -hadron.hopper2=ֲ§eSingle Mode:$Only allows one item per slot. +hadron.hopper0=§eNormal Mode:$All items will be used. +hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper2=§eSingle Mode:$Only allows one item per slot. hadron.idle=Idle -hadron.modeCircular=ֲ§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. -hadron.modeLine=ֲ§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. +hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. +hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. hadron.noresult=No Result. hadron.noresult_too_slow=Insuff. momentum! hadron.noresult_wrong_ingredient=Invalid recipe! @@ -1340,7 +1340,7 @@ hbmfluid.mustardgas=Mustard Gas hbmfluid.naphtha=Naphtha hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha -hbmfluid.nitan=NITANֲ© 100 Octane Super Fuel +hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=None @@ -1679,7 +1679,7 @@ item.ammo_grenade_he.name=40mm Grenade (HE) item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) item.ammo_grenade_kampf.name=40mm Rocket item.ammo_grenade_leadburster.name=40mm Leadburster -item.ammo_grenade_nuclear.name=40mm Grenade (׀�ׁ€׀¸׀²׀µׁ‚) +item.ammo_grenade_nuclear.name=40mm Grenade (Привет) item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) item.ammo_grenade_toxic.name=40mm Grenade (Chemical) @@ -1714,7 +1714,7 @@ item.ammo_rocket_emp.name=84mm Rocket (Pulse) item.ammo_rocket_glare.name=84mm Rocket (Red Glare) item.ammo_rocket_he.name=84mm Rocket (HE) item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) -item.ammo_rocket_nuclear.name=84mm Rocket (׀�ׁ€׀¸׀²׀µׁ‚) +item.ammo_rocket_nuclear.name=84mm Rocket (Привет) item.ammo_rocket_phosphorus.name=84mm Rocket (WP) item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) @@ -1728,7 +1728,7 @@ item.ammo_shell_w9.name=240mm W9 Nuclear Shell item.ammo_stinger_rocket.name=Stinger Rocket item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) -item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (׀�ׁ€׀¸׀²׀µׁ‚) +item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking) item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst @@ -1768,7 +1768,7 @@ item.apple_schrabidium.name=Schrabidium Apple item.arc_electrode.name=Graphite Electrode item.arc_electrode_burnt.name=Molten Electrode item.arc_electrode_desh.name=Desh Electrode -item.armor_polish.name=ShiningArmorג„¢ Armor Polish +item.armor_polish.name=ShiningArmor™ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth item.asbestos_helmet.name=Fire Proximity Helmet @@ -1992,7 +1992,7 @@ item.can_mug.name=MUG Root Beer item.can_overcharge.name=Overcharge Delirium XT item.can_redbomb.name='Red Bomb' Energy Drink item.can_smart.name='Smart' Energy Drink -item.canister_NITAN.name=NITANֲ© 100 Octane Super Fuel (LEGACY) +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) item.canister_biofuel.name=Biofuel Canister (LEGACY) item.canister_bitumen.name=Bitumen Canister (LEGACY) item.canister_canola.name=Engine Lubricant (LEGACY) @@ -2036,7 +2036,7 @@ item.canned_fried.name=Canned Fried Chicken item.canned_fried.desc=Even the can is deep fried! item.canned_hotdogs.name=Canned Hotdogs item.canned_hotdogs.desc=Not to be confused with cool cats. -item.canned_jizz.name=FlimFlam Industries Canned Stallion Milkג„¢ +item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ item.canned_jizz.desc=Wait wh- item.canned_kerosene.name=Canned Kerosene item.canned_kerosene.desc=Just imagine a witty line here. @@ -2050,14 +2050,14 @@ item.canned_napalm.name=Canned Napalm item.canned_napalm.desc=I love the smell of old memes in the morning! item.canned_oil.name=Canned Engine Oil item.canned_oil.desc=It makes motors go, so why not humans? -item.canned_pashtet.name=׀�׀°ׁˆׁ‚׀µׁ‚ -item.canned_pashtet.desc=ׁƒׁ�׀»ׁƒ׀³׀¸ ׀¿׀µׁ€׀µ׀²׀¾׀´׀° ׀½׀µ׀´׀¾ׁ�ׁ‚ׁƒ׀¿׀½ׁ‹! +item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=услуги перевода недоступны! item.canned_pizza.name=Canned Pepperoni Pizza item.canned_pizza.desc=A crime against humanity. item.canned_recursion.name=Canned Recursion item.canned_recursion.desc=Canned Recursion item.canned_spam.name=Canned Spam -item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the cafֳ©.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. item.canned_stew.name=Canned "Mushroom Stew" item.canned_stew.desc=... item.canned_tomato.name=Canned Tomato Soup @@ -2611,9 +2611,9 @@ item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade item.gun_ar15.name=Josh item.gun_avenger.name=CZ57 Avenger Minigun -item.gun_b92.name=ֲ§9B92 Energy Pistolֲ§r -item.gun_b92_ammo.name=ֲ§9B92 Energy Cellֲ§r -item.gun_b93.name=ֲ§cB93 Energy Modֲ§r +item.gun_b92.name=§9B92 Energy Pistol§r +item.gun_b92_ammo.name=§9B92 Energy Cell§r +item.gun_b93.name=§cB93 Energy Mod§r item.gun_benelli.name=Benelli Autoshotgun (Drum Mod) item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell @@ -2667,7 +2667,7 @@ item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) item.gun_lever_action_sonata.name=Flipped Mare's Leg -item.gun_lever_action_sonata_2.name=ֲ§cSonata's Microphoneֲ§r +item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r item.gun_lunatic_marksman.name=Lunatic Sniper Rifle item.gun_m2.name=Ma Deuce item.gun_minigun.name=CZ53 Personal Minigun @@ -2685,7 +2685,7 @@ item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" item.gun_quadro.name=Quattro Formaggi -item.gun_remington.name=דƒ�ד‚₪דƒ‡דƒ³ דƒ–דƒ©ד‚¹דƒˆ [BIDEN BLAST] +item.gun_remington.name=バイデン ブラスト [BIDEN BLAST] item.gun_revolver.name=Enhanced Revolver item.gun_revolver_ammo.name=Lead Bullet item.gun_revolver_blackjack.name=Blackjack Five-Shooter @@ -2799,7 +2799,7 @@ item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel item.ingot_arsenic.name=Arsenic Ingot item.ingot_asbestos.name=Asbestos Sheet -item.ingot_asbestos.desc=ֲ§o"Filled with life, self-doubt and asbestos. That comes with the air."ֲ§r +item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_bakelite.name=Bakelite Bar @@ -2877,7 +2877,7 @@ item.ingot_semtex.name=Bar of Semtex item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot -item.ingot_starmetal.name=ֲ§9Starmetal Ingotֲ§r +item.ingot_starmetal.name=§9Starmetal Ingot§r item.ingot_steel.name=Steel Ingot item.ingot_steel_dusted.name=Dusted Steel Ingot item.ingot_tantalium.name=Tantalium Ingot @@ -2901,7 +2901,7 @@ item.ingot_weidanium.name=Weidanium Ingot item.ingot_zirconium.name=Zirconium Cube item.injector_5htp.name=5-HTP Autoinjector item.injector_knife.name=8 Inch Blade Autoinjector -item.ink.name=ז�— Ink +item.ink.name=林 Ink item.insert_doxium.name=Astolfium-Doped Doxium Insert item.insert_du.name=DU Insert item.insert_era.name=Explosive Reactive Armor Insert @@ -2932,7 +2932,7 @@ item.key_fake.name=Counterfeit Key item.key_kit.name=Key Imitation Kit item.key_red.name=Red Key item.key_red.desc=Explore the other side. -item.key_red.desc.P11=ֲ§4eֲ§r +item.key_red.desc.P11=§4e§r item.kit_toolbox.name=Toolbox item.kit_toolbox_empty.name=Empty Toolbox item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix @@ -2958,7 +2958,7 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast -item.loops.name=Lֳ¶ֳ¶ps +item.loops.name=Lööps item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -2989,7 +2989,7 @@ item.med_ptsd.name=PTSD Medication item.med_schiziphrenia.name=Schizophrenia Medication item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator -item.memespoon.name=ֲ§eMarket Gardener +item.memespoon.name=§eMarket Gardener item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe @@ -3057,7 +3057,7 @@ item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not atte item.missile_skin_sleek.name=Missile Skin: IF-R&D item.missile_skin_sleek.desc=Chevrons are cool! item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory -item.missile_skin_soviet_glory.desc=ׁƒׁ�׀»ׁƒ׀³׀° ׀¿׀µׁ€׀µ׀²׀¾׀´׀° ׀½׀µ׀´׀¾ׁ�ׁ‚ׁƒ׀¿׀½׀° +item.missile_skin_soviet_glory.desc=услуга перевода недоступна item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG @@ -3189,7 +3189,7 @@ item.mp_warhead_15_balefire.name=Size 15 BF Warhead item.mp_warhead_15_boxcar.name=Size 15 Boxcar? item.mp_warhead_15_he.name=Size 15 HE Warhead item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead -item.mp_warhead_15_n2.name=Size 15 Nֲ² Mine +item.mp_warhead_15_n2.name=Size 15 N² Mine item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead @@ -3260,7 +3260,7 @@ item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget item.nugget_mercury_tiny.name=Tiny Drop of Mercury item.nugget_mercury.name=Drop of Mercury item.nugget_mox_fuel.name=Nugget of MOX Fuel -item.nugget_mox_fuel.desc=Moxie says: ֲ§lTAX EVASION.ֲ§r +item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r item.nugget_neptunium.name=Neptunium Nugget item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget item.nugget_osmiridium.name=Osmiridium Nugget @@ -3378,7 +3378,7 @@ item.particle_aproton.name=Antiproton Capsule item.particle_aschrab.name=Antischrabidium Capsule item.particle_copper.name=Copper Ion Capsule item.particle_dark.name=Dark Matter Capsule -item.particle_digamma.name=ֲ§cThe Digamma Particleֲ§r +item.particle_digamma.name=§cThe Digamma Particle§r item.particle_empty.name=Empty Particle Capsule item.particle_higgs.name=Higgs Boson Capsule item.particle_hydrogen.name=Hydrogen Ion Capsule @@ -3444,19 +3444,19 @@ item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet item.photo_panel.name=Photovoltaic Panel item.pile_rod_boron.name=Chicago Pile Control Rod -item.pile_rod_boron.desc=ֲ§9[Neutron Absorber]$ֲ§eClick to toggle +item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle item.pile_rod_detector.name=Chicago Pile Control & Detector Rod -item.pile_rod_detector.desc=ֲ§9[Neutron Detector/Absorber]$ֲ§eUse defuser to increase/decrease neutron limit$ֲ§eUse screwdriver w/o sneaking to inspect flux +item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux item.pile_rod_lithium.name=Chicago Pile Lithium Cell -item.pile_rod_lithium.desc=ֲ§a[Breedable Fuel]$ֲ§eUse hand drill to inspect core +item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod -item.pile_rod_plutonium.desc=ֲ§d[Neutron Source] +item.pile_rod_plutonium.desc=§d[Neutron Source] item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod -item.pile_rod_pu239.desc=ֲ§a[Reactive Fuel]$ֲ§eRich in Plutonium-239. +item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source -item.pile_rod_source.desc=ֲ§d[Neutron Source] +item.pile_rod_source.desc=§d[Neutron Source] item.pile_rod_uranium.name=Chicago Pile Uranium Rod -item.pile_rod_uranium.desc=ֲ§a[Reactive Fuel]$ֲ§eUse hand drill to take core sample +item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample item.pill_iodine.name=Iodine Pill item.pill_iodine.desc=Removes negative effects item.pill_herbal.name=Herbal Paste @@ -3520,7 +3520,7 @@ item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder -item.powder_asbestos.desc=ֲ§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"ֲ§r +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=Coal Ash item.powder_ash.fly.name=Fly Ash item.powder_ash.fullerene.name=Fullerene @@ -3561,7 +3561,7 @@ item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder item.powder_daffergon.name=Daffergon Powder item.powder_desh.name=Desh Powder item.powder_desh_mix.name=Desh Blend -item.powder_desh_ready.name=DeshReadyג„¢ Blend +item.powder_desh_ready.name=DeshReady™ Blend item.powder_diamond.name=Diamond Powder item.powder_dineutronium.name=Dineutronium Powder item.powder_dura_steel.name=High-Speed Steel Powder @@ -3703,7 +3703,7 @@ item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod -item.rbmk_fuel_drx.name=ֲ§cDigamma RBMK Fuel Rodֲ§r +item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod item.rbmk_fuel_flashlead.name=Flashlead RBMK Fuel Rod item.rbmk_fuel_hea241.name=HEA-241 RBMK Fuel Rod @@ -3737,7 +3737,7 @@ item.rbmk_lid.name=RBMK Cover Panel item.rbmk_lid_glass.name=RBMK Glass Cover Panel item.rbmk_pellet_balefire.name=Balefire Fuel Pellet item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet -item.rbmk_pellet_drx.name=ֲ§cDigamma Fuel Pelletֲ§r +item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r item.rbmk_pellet_flashlead.name=Flashlead Fuel Pellet item.rbmk_pellet_hea241.name=HEA-241 Fuel Pellet item.rbmk_pellet_hea242.name=HEA-242 Fuel Pellet @@ -3783,7 +3783,7 @@ item.redstone_sword.name=Redstone Sword item.reer_graar.name=The Reer Graar item.remote.name=Broken Remote item.ring_pull.name=Ring Pull -item.ring_starmetal.name=ֲ§9Starmetal Ringֲ§r +item.ring_starmetal.name=§9Starmetal Ring§r item.robes_boots.name=Field Boots item.robes_helmet.name=Casual Hoodie item.robes_legs.name=Casual Pants @@ -4316,12 +4316,12 @@ item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) item.weapon_bat.name=Richard's Default -item.weapon_bat_nail.name=The Clichֳ© +item.weapon_bat_nail.name=The Cliché item.weapon_golf_club.name=Russian Mobster's Club item.weapon_pipe_lead.name=The Manual Override item.weapon_pipe_rusty.name=The Attitude Adjuster item.weapon_saw.name=Doctor Assisted Homicide -item.weaponized_starblaster_cell.name=ֲ§cRigged Star Blaster Energy Cellֲ§r +item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r item.wd40.name=VT-40 item.wild_p.name=Wild Pegasus Dry Whiskey item.wings_limp.name=Limp Wings @@ -4403,11 +4403,11 @@ rbmk.console.fuel_depletion=Monitor average fuel depletion rbmk.console.fuel_poison=Monitor average xenon poisoning rbmk.console.fuel_temp=Monitor average fuel temperature rbmk.control.level=%s -rbmk.control.red=ֲ§cRed Group -rbmk.control.yellow=ֲ§eYellow Group -rbmk.control.green=ֲ§aGreen Group -rbmk.control.blue=ֲ§1Blue Group -rbmk.control.purple=ֲ§5Purple Group +rbmk.control.red=§cRed Group +rbmk.control.yellow=§eYellow Group +rbmk.control.green=§aGreen Group +rbmk.control.blue=§1Blue Group +rbmk.control.purple=§5Purple Group rbmk.moderated=Moderated rbmk.rod.depletion=Depletion: %s rbmk.rod.xenon=Xenon poison: %s @@ -4472,7 +4472,7 @@ tile.barbed_wire_wither.name=Withered Barbed Wire tile.barrel_antimatter.name=Magnetic Antimatter Container tile.barrel_corroded.name=Corroded Barrel tile.barrel_iron.name=Iron Barrel -tile.barrel_plastic.name=Safe Barrelג„¢ +tile.barrel_plastic.name=Safe Barrel™ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags @@ -4573,7 +4573,7 @@ tile.block_semtex.name=Block of Semtex tile.block_slag.name=Block of Slag tile.block_smore.name=Block of S'more tile.block_solinium.name=Block of Solinium -tile.block_starmetal.name=ֲ§9Block of Starmetalֲ§r +tile.block_starmetal.name=§9Block of Starmetal§r tile.block_steel.name=Block of Steel tile.block_sulfur.name=Block of Sulfur tile.block_tantalium.name=Block of Tantalium @@ -4745,7 +4745,7 @@ tile.concrete_slab.ducrete_smooth.name=Ducrete Slab tile.concrete_smooth.name=Concrete tile.concrete_smooth_stairs.name=Concrete Stairs tile.concrete_stairs.name=Concrete Tile Stairs -tile.concrete_super.name=ֳ�ber Concrete +tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt tile.conveyor.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend @@ -4911,11 +4911,11 @@ tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks tile.furnace_combination.name=Combination Oven -tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ־”T*0.25 TU/t +tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t tile.furnace_iron.name=Iron Furnace tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. tile.furnace_steel.name=Steel Furnace -tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ־”T*0.05 TU/t$(־” means difference and T means temperature) +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_conductor_welded.name=Superconducting Magnet (Welded) @@ -4972,7 +4972,7 @@ tile.hadron_coil_starmetal.name=Dense Starmetal Coil tile.hadron_cooler.name=Particle Accelerator Cooling Unit tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special -tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)ֲ²/225$Maximum penalty: -90%% +tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% tile.hadron_core.name=Particle Accelerator Core Component tile.hadron_diode.name=Schottky Particle Diode tile.hadron_plating.name=Particle Accelerator Plating @@ -5038,7 +5038,7 @@ tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block tile.machine_boiler.name=Boiler -tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ־”T*0.01 TU/t +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Electric Oil Heater tile.machine_boiler_electric_on.name=Electric Oil Heater tile.machine_boiler_off.name=Oil Heater @@ -5053,7 +5053,7 @@ tile.machine_chungus.desc=Efficiency: 85%% tile.machine_coal_off.name=Combustion Generator tile.machine_coal_on.name=Combustion Generator tile.machine_coker.name=Coker Unit -tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ־”T*0.025 TU/t +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_compressor.name=Compressor @@ -5095,7 +5095,7 @@ tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator tile.machine_hephaestus.name=Geothermal Heat Exchanger tile.machine_industrial_boiler.name=Industrial Boiler -tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ־”T*0.01 TU/t$Cannot explode +tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode tile.machine_industrial_generator.name=Industrial Generator tile.machine_keyforge.name=Locksmith Table tile.machine_large_turbine.name=Industrial Steam Turbine @@ -5200,7 +5200,7 @@ tile.nuke_fstbmb.name=Balefire Bomb tile.nuke_gadget.name=The Gadget tile.nuke_man.name=Fat Man tile.nuke_mike.name=Ivy Mike -tile.nuke_n2.name=Nֲ² Mine +tile.nuke_n2.name=N² Mine tile.nuke_n45.name=N45 Naval Mine tile.nuke_prototype.name=The Prototype tile.nuke_solinium.name=The Blue Rinse @@ -5610,9 +5610,9 @@ tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter turret.animals=Target Passive: %s -turret.arty.artillery=ֲ§eArtillery Mode$Grace: 250m$Range: 3,000m -turret.arty.cannon=ֲ§eCannon Mode$Grace: 32m$Range: 250m -turret.arty.manual=ֲ§eManual Mode$Range: 3,000m +turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m +turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m +turret.arty.manual=§eManual Mode$Range: 3,000m turret.machines=Target Machines: %s turret.mobs=Target Mobs: %s turret.none=None @@ -5623,12 +5623,12 @@ turret.players=Target Players: %s upgrade.consumption=Consumption %s upgrade.speed=Process time %s -upgrade.gui.title=ֲ§lAcceptable Upgrades:ֲ§r -upgrade.gui.afterburner= * ֲ§dAfterburnerֲ§r: Stacks to level %s -upgrade.gui.effectiveness= * ֲ§aEffectivenessֲ§r: Stacks to level %s -upgrade.gui.overdrive= * ֲ§7Overdriveֲ§r: Stacks to level %s -upgrade.gui.power= * ֲ§9Power-Savingֲ§r: Stacks to level %s -upgrade.gui.speed= * ֲ§4Speedֲ§r: Stacks to level %s +upgrade.gui.title=§lAcceptable Upgrades:§r +upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s +upgrade.gui.effectiveness= * §aEffectiveness§r: Stacks to level %s +upgrade.gui.overdrive= * §7Overdrive§r: Stacks to level %s +upgrade.gui.power= * §9Power-Saving§r: Stacks to level %s +upgrade.gui.speed= * §4Speed§r: Stacks to level %s wavelengths.name.ir=Infrared wavelengths.name.visible=Visible Light From be31c070a5e091ac00fa0227a06b55b268af5a99 Mon Sep 17 00:00:00 2001 From: 9Valjews <64272884+9Valjew@users.noreply.github.com> Date: Sun, 10 Dec 2023 10:34:02 +0200 Subject: [PATCH 023/376] Update ModItems.java The unfuckening 2: now with readded foreign languages! --- src/main/java/com/hbm/items/ModItems.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 4cdc63fc2..2fde77b68 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1488,7 +1488,7 @@ public class ModItems { public static Item sat_coord; public static Item sat_designator; public static Item sat_relay; - + public static ItemEnumMulti ammo_misc; public static ItemEnumMulti ammo_12gauge; public static ItemEnumMulti ammo_20gauge; @@ -3980,7 +3980,7 @@ public class ModItems { mp_stability_10_space = new ItemMissile().makeStability(0.35F, PartSize.SIZE_10).setHealth(5F).setRarity(Rarity.COMMON).setWittyText("Standing there alone, the ship is waiting / All systems are go, are you sure?") .setUnlocalizedName("mp_stability_10_space"); mp_stability_15_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); mp_stability_15_thin = new ItemMissile().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); - mp_stability_15_soyuz = new ItemMissile().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("׀¡׀¾ׁ�׀·!").setUnlocalizedName("mp_stability_15_soyuz"); + mp_stability_15_soyuz = new ItemMissile().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("Союз!").setUnlocalizedName("mp_stability_15_soyuz"); mp_stability_20_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20"); mp_fuselage_10_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(20F).setUnlocalizedName("mp_fuselage_10_kerosene"); From b6345644ed79c97a2d86e75b9a04879129ae4199 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 30 Nov 2023 14:18:03 -0600 Subject: [PATCH 024/376] shit shit shit shit shit shit --- changelog | 21 +------------------ .../tileentity/machine/TileEntityChungus.java | 1 + 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/changelog b/changelog index 596d87512..441e8123c 100644 --- a/changelog +++ b/changelog @@ -2,30 +2,11 @@ * Doors! * Your favorites from 1.12, the 7 remaining doors have finally been ported * Thanks to KoblizekXD for biting the bullet -* Rubber boat - * Made from latex or synthetic rubber - * A much less jankier alternative to the vanilla boat. Rotations are silky smooth and done via the strafe keys instead of based on the player's orientation - * Won't break from ramming into blocks - * Faster than a regular boat, but will decelerate quicker when there's nobody sitting in it, preventing the boat from drifting off too far when empty ## Changed * Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high * Custom missiles are now launchable using the radar * NTM's structures should no longer spawn in dimensions besides the overworld. Ores will still generate, assuming the config option is set. -* Decreased M1tty's radiation resistance - * It's really damn cheap, what did you expect -* M1tty's helmet now acts like a protective mask -* Most non-custom missiles except tier 0s are now assembled in the arc welder - * Crafting complexity has been reduced, the recipes only need the three major components without any extra loose plates -* Non-custom missiles have been slightly buffed - * Explosions are now slightly larger and they use the new cross-detection entity damage code which still affects entities behind small hills that would otherwise be shielded - * Explosions now have a 2x larger entity damage radius ## Fixed -* Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate -* Fixed RBMK heat exchangers being able to use heatable fluids that don't have heat exchanger efficiency defined like liquid sodium, heavy water and thorium salt -* Fixed RBMK heat exchangers not using the heat exchanger efficiency variable to determine cooling power -* Fixed the ballistic gauntlet spawning a client-side ghost bullet that doesn't move or despawn -* Fixed bug where different custom machine cores would merge in a stack when picked up, turning them into the same type -* Fixed radar screen blips being visible through the back of the model -* Fixed desh crate's last half of slots preventing radiation entirely \ No newline at end of file +* Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index d1a9abd64..2a2e761db 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -36,6 +36,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent { public long power; From 9448d51e02006c64ec7f0bdedc9620a4d11b57be Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 10 Dec 2023 21:15:53 +0100 Subject: [PATCH 025/376] fuck you --- CONTRIBUTING.md | 2 ++ changelog | 1 + gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../tileentity/machine/TileEntityMachineCrystallizer.java | 2 +- .../hbm/tileentity/machine/TileEntityMachineExcavator.java | 2 +- .../tileentity/machine/TileEntityMachineMiningLaser.java | 2 +- .../com/hbm/tileentity/machine/TileEntityMachineMixer.java | 2 +- .../hbm/tileentity/machine/TileEntityMachineTurbofan.java | 2 +- .../machine/oil/TileEntityMachineLiquefactor.java | 2 +- .../machine/oil/TileEntityMachineSolidifier.java | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 7 +++++++ 12 files changed, 19 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9d02a90df..34e1e5ca9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,6 +18,8 @@ Things you should also avoid include: This should go without saying, but please don't PR code that was never actually tested or has obvious compiler errors in it. +**Addendum:** Because apparently some people think that testing is somehow optional, it is now **mandatory** to test the code both on a client and on a server. If the PR contains compat code, the game has to work **with and without** the mod that the compat is for. + ## Communication If you're planning on adding some new thing or doing a grand change, it's best to ask whether that's a good idea before spending 50 hours on a project that won't end up getting merged, due to issues that could have been entirely avoidable with communication. diff --git a/changelog b/changelog index b9026f9bd..902ab1ad0 100644 --- a/changelog +++ b/changelog @@ -18,6 +18,7 @@ * With all 8 stamps, allows you to print your own black book ## Changed +* Updated russian localization * Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high * Custom missiles are now launchable using the radar * NTM's structures should no longer spawn in dimensions besides the overworld. Ores will still generate, assuming the config option is set. diff --git a/gradle.properties b/gradle.properties index a04cdb5cc..f4e7c2b0a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4809 +mod_build_number=4809H1 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 8803032ed..da9765623 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4809)"; + public static final String VERSION = "1.0.27 BETA (4809H1)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 18acf6556..d91e8f629 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -356,7 +356,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { - info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.turret_maxwell)); + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_crystallizer)); if(type == UpgradeType.SPEED) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index ac3095dd3..87ba3eb7f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -850,7 +850,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { - info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_excavator)); if(type == UpgradeType.SPEED) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level / 2 + 1)) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index d40bac866..89bfd1028 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -726,7 +726,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { - info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_mining_laser)); if(type == UpgradeType.SPEED) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (100 * level / 16) + "%")); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index ae5054b00..ffd1deccb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -327,7 +327,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { - info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_mixer)); if(type == UpgradeType.SPEED) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 414d273a4..4c7e068b3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -499,7 +499,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { - info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_turbofan)); if(type == UpgradeType.AFTERBURN) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (int)(level * 100 * (1 + Math.min(level / 3D, 4D))) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 4aa306854..9516a6dcf 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -309,7 +309,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { - info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_liquefactor)); if(type == UpgradeType.SPEED) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index 2846293e3..1677a5321 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -284,7 +284,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { - info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_solidifier)); if(type == UpgradeType.SPEED) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a1282dcae..db2b9677f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5680,3 +5680,10 @@ weapon.elecGun.glass_cannon.visible=Visible Light weapon.elecGun.glass_cannon.uv=Ultraviolet Light weapon.elecGun.glass_cannon.xray=X-rays weapon.elecGun.glass_cannon.gamma=Gamma rays + +desc.gui.upgrade=§lAcceptable Upgrades:§r +desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 +desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 +desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 +desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 +desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 From 4a72e201cf95c9ac50d46a35da981881776d4fb2 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Mon, 11 Dec 2023 18:58:34 -0500 Subject: [PATCH 026/376] removed unused lang, removed No_Disperse --- .../hbm/inventory/FluidContainerRegistry.java | 7 +++-- .../com/hbm/inventory/fluid/FluidType.java | 2 +- .../java/com/hbm/inventory/fluid/Fluids.java | 5 ++-- .../hbm/inventory/fluid/trait/FluidTrait.java | 1 - .../fluid/trait/FluidTraitSimple.java | 6 +--- src/main/resources/assets/hbm/lang/en_US.lang | 29 ++++--------------- 6 files changed, 14 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index ce44b7eb3..5033ee2a4 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -68,9 +68,12 @@ public class FluidContainerRegistry { if(type.getContainer(CD_Gastank.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full, 1, id), new ItemStack(ModItems.gas_empty), type, 1000)); if(type.hasNoContainer()) continue; + + if(type.isDispersable()){ + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.disperser_canister, 1 , i), new ItemStack(ModItems.disperser_canister_empty), Fluids.fromID(i), 2000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.glyphid_gland, 1 , i), new ItemStack(ModItems.glyphid_gland_empty), Fluids.fromID(i), 4000)); + } - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.disperser_canister, 1 , i), new ItemStack(ModItems.disperser_canister_empty), Fluids.fromID(i), 2000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.glyphid_gland, 1 , i), new ItemStack(ModItems.glyphid_gland_empty), Fluids.fromID(i), 4000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_lead_full, 1, id), new ItemStack(ModItems.fluid_tank_lead_empty), type, 1000)); if(type.needsLeadContainer()) continue; diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 853a8d2d1..728c0bad2 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -172,7 +172,7 @@ public class FluidType { return this.traits.containsKey(FT_LeadContainer.class); } public boolean isDispersable() { - return !(this.traits.containsKey(FT_NoDispersable.class)); + return !(this.traits.containsKey(FT_Amat.class) || this.traits.containsKey(FT_NoContainer.class) || this.traits.containsKey(FT_Viscous.class)); } /** diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 61768d294..4c83847b2 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -186,7 +186,6 @@ public class Fluids { public static final FT_Delicious DELICIOUS = new FT_Delicious(); public static final FT_Leaded LEADED = new FT_Leaded(); - public static final FT_NoDispersable NO_DISPERSE= new FT_NoDispersable(); public static void init() { // ##### ##### ##### ##### ## # ##### # # ##### ## # ##### @@ -235,8 +234,8 @@ public class Fluids { PUF6 = new FluidType("PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.1F), new FT_Corrosive(15), GASEOUS); SAS3 = new FluidType("SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(1F), new FT_Corrosive(30), LIQUID); SCHRABIDIC = new FluidType("SCHRABIDIC", 0x006B6B, 5, 0, 5, EnumSymbol.ACID).addTraits(new FT_VentRadiation(1F), new FT_Corrosive(75), new FT_Poison(true, 2), LIQUID); - AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS, NO_DISPERSE); - ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS, NO_DISPERSE); + AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); + ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); ACID = new FluidType("ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(new FT_Corrosive(40), LIQUID); WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID, VISCOUS); CRYOGEL = new FluidType("CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170).addTraits(LIQUID, VISCOUS); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index dd25601c7..de7ddc591 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -36,7 +36,6 @@ public abstract class FluidTrait { traitNameMap.put("delicious", FT_Delicious.class); traitNameMap.put("leaded", FT_Leaded.class); traitNameMap.put("pheromone", FT_Pheromone.class); - traitNameMap.put("nodisperse", FT_NoDispersable.class); traitNameMap.put("noid", FT_NoID.class); traitNameMap.put("nocontainer", FT_NoContainer.class); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index 27628d32a..f62cd456e 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -49,11 +49,7 @@ public class FluidTraitSimple { info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]"); } } - public static class FT_NoDispersable extends FluidTrait { - @Override public void addInfo(List info) { - info.add(EnumChatFormatting.DARK_RED + "[Cannot be thrown from Disperser Canister]"); - } - } + public static class FT_Delicious extends FluidTrait { @Override public void addInfoHidden(List info) { info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c09e495eb..033f2cf5a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -847,7 +847,6 @@ death.attack.mku=%1$s died from unknown causes. death.attack.monoxide=%1$s forgot to change the batteries in their carbon monoxide detector. death.attack.mudPoisoning=%1$s died in poisonous mud. death.attack.nuclearBlast=%1$s was blown away by a nuclear explosion. -death.attack.nitan=%1$s was consumed by taint. death.attack.overdose=%1$s overdosed and asphyxiated. death.attack.pc=%1$s was reduced to a puddle in the pink cloud. death.attack.plasma=%1$s was immolated by %2$s. @@ -953,7 +952,6 @@ desc.item.ammo.pro_explosive=+ Explosive desc.item.ammo.pro_fallout=+ Fallout desc.item.ammo.pro_fit_357=+ Fits every .357 model desc.item.ammo.pro_flames=+ Increased flame count -desc.item.ammo.pro_flash=+ ow my eyes desc.item.ammo.pro_gravity=+ Decreased gravity desc.item.ammo.pro_heavy_damage=+ Highly increased damage desc.item.ammo.pro_incendiary=+ Incendiary @@ -1121,7 +1119,6 @@ gun.make.MANN=Open Mann Co. gun.make.MAXIM=Hiram Maxim gun.make.METRO=Metro Gunsmiths gun.make.MWT=MWT Prototype Labs -gun.make.MORITA=Morita Company gun.make.NAWS=Kayarm Industries gun.make.ERFURT=Erfurter Maschinenfabrik Geipel gun.make.NONE=- @@ -1361,6 +1358,8 @@ hbmfluid.pain=Pandemonium(III)tantalite Solution hbmfluid.petroil=Petroil hbmfluid.petroil_leaded=Leaded Petroil hbmfluid.petroleum=Petroleum Gas +hbmfluid.pheromone=Booster Pheromone +hbmfluid.pheromone_m=Modified Booster Pheromone hbmfluid.phosgene=Phosgene hbmfluid.plasma_bf=Balefire Plasma hbmfluid.plasma_dh3=Deuterium-Helium-3 Plasma @@ -1408,9 +1407,8 @@ hbmfluid.woodoil=Wood Oil hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice hbmfluid.xylene=BTX -hbmfluid.caulk=Quick-Hardening Caulk -hbmfluid.pheromone=Booster Pheromone -hbmfluid.pheromone_m=Modified Booster Pheromone + + hbmpseudofluid.none=Empty hbmpseudofluid.heuf6=Highly Enriched UF6 @@ -1588,9 +1586,6 @@ item.ammo_44_star.name=.44 Magnum Bullet (Starmetal) item.ammo_45.name=.45 ACP Bullet item.ammo_45_ap.name=.45 ACP Bullet (AP) item.ammo_45_du.name=.45 ACP Bullet (DU) -item.ammo_45_drum.name=.45 ACP 100 Round Drum -item.ammo_45_drum_ap.name=.45 ACP 100 Round Drum (AP) -item.ammo_45_drum_du.name=.45 ACP 100 Round Drum (DU) item.ammo_4gauge.name=4 Gauge Buckshot item.ammo_4gauge_balefire.name=23mm Balefire Grenade item.ammo_4gauge_canister.name=23mm Rocket (Canister Shot) @@ -1603,8 +1598,6 @@ item.ammo_4gauge_semtex.name=23mm Mining Charge item.ammo_4gauge_sleek.name=4 Gauge Buckshot (IF-R&D) item.ammo_4gauge_slug.name=4 Gauge Solid Steel Slug item.ammo_4gauge_titan.name=4 Gauge Quacker Round -item.ammo_4gauge_flash1.name=4 Gauge Hviezda Round -item.ammo_4gauge_flash2.name=4 Gauge Hviezda-S Round item.ammo_4gauge_vampire.name=4 Gauge Wooden Stake Shell item.ammo_4gauge_void.name=4 Gauge Void Shell item.ammo_50ae.name=.50 AE Round @@ -2500,8 +2493,6 @@ item.flame_politics.desc=Donald Duck will build the wall! item.flame_pony.name=Painting of a Cartoon Pony item.flame_pony.desc=Yellow horse beats blue horse, that's a proven fact! item.flask_infusion.shield.name=Shield Infusion -item.flask_infusion.nitan.name=NITAN© Ambrosia -item.flask_infusion.nitan.desc=Painkiller for medical and recreational use only. item.fleija_core.name=F.L.E.I.J.A. Uranium 235 Charge item.fleija_igniter.name=Pulse Igniter item.fleija_kit.name=F.L.E.I.J.A. Kit @@ -2693,7 +2684,6 @@ item.gun_lacunae_ammo.name=5mm Round (LEGACY) item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) -item.gun_lever_action_akimbo.name=Mare's Leg (Dusk) item.gun_lever_action_sonata.name=Flipped Mare's Leg item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r item.gun_lunatic_marksman.name=Lunatic Sniper Rifle @@ -2702,8 +2692,6 @@ item.gun_minigun.name=CZ53 Personal Minigun item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY) item.gun_moist_nugget.name=Mosin-Nagant -item.gun_morita.name=Morita Assault Rifle -item.gun_morita_carbine.name=Morita Carbine item.gun_mp.name=Pacifist's Machine Gun item.gun_mp40.name=Submachine Gun item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) @@ -2754,7 +2742,6 @@ item.gun_super_shotgun.name=Super Shotgun item.gun_super_shotgun.desc=It's super broken! item.gun_supershotgun.name=Super Shotgun item.gun_thompson.name=Thompson Submachine Gun -item.gun_typewriter.name=The Chicago Typewriter item.gun_uac_pistol.name=UAC .45 Pistol item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) @@ -3223,7 +3210,6 @@ item.mp_warhead_15_n2.name=Size 15 N² Mine item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead -item.mp_warhead_15_mirv.name=Size 15 MIRV Warhead item.mp_warhead_15_turbine.name=Size 15 Jet Engine item.mucho_mango.name=AriZona Mucho Mango item.multi_kit.name=Multi Purpose Bomb Kit @@ -4298,7 +4284,7 @@ item.warhead_incendiary_large.name=Large Incendiary Warhead item.warhead_incendiary_medium.name=Medium Incendiary Warhead item.warhead_incendiary_small.name=Small Incendiary Warhead item.warhead_mirv.name=Thermonuclear Warhead -item.warhead_mirvlet.name=Compact Nuclear Warhead +item.warhead_mirvlet.name=MIRV item.warhead_nuclear.name=Nuclear Warhead item.warhead_thermo_endo.name=Endothermic Warhead item.warhead_thermo_exo.name=Exothermic Warhead @@ -4396,7 +4382,6 @@ potion.hbm_radiation=Contaminated potion.hbm_radx=Rad-X potion.hbm_stability=Stability potion.hbm_taint=Tainted -potion.hbm_nitan=Ambrosia potion.hbm_telekinesis=! ! ! radar.clearMap=Clear Map @@ -4890,9 +4875,6 @@ tile.ducrete.name=Ducrete Tile tile.ducrete_stairs.name=Ducrete Tile Stairs tile.ducrete_smooth.name=Ducrete -tile.concrete_debris.name=Concrete Debris -tile.ducrete_debris.name=Ducrete Debris - tile.ducrete_smooth_stairs.name=Ducrete Stairs tile.dummy_block.name=Dummy Block @@ -4987,7 +4969,6 @@ tile.glass_quartz.name=Quartz Glass tile.glass_trinitite.name=Trinity Glass tile.glass_uranium.name=Uranium Glass tile.glyphid_base.name=Glyphid Hive Block -tile.glyphid_support.name=Glyphid Hive Support Block tile.glyphid_spawner.name=Glyphid Hive Spawner tile.gneiss_brick.name=Schist Brick tile.gneiss_chiseled.name=Chiseled Schist From 8a59eb9dbc8f59721c39ff4875ea2db2668bd7fb Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 13 Dec 2023 11:08:01 +0100 Subject: [PATCH 027/376] initial cleanup --- src/main/java/com/hbm/config/MobConfig.java | 10 +- .../com/hbm/entity/mob/EntityGlyphid.java | 98 ++++++------- .../hbm/entity/mob/EntityGlyphidBehemoth.java | 6 +- .../hbm/entity/mob/EntityGlyphidBrenda.java | 3 - .../hbm/entity/mob/EntityGlyphidNuclear.java | 19 ++- .../hbm/entity/mob/EntityGlyphidScout.java | 138 +++++++++--------- .../com/hbm/inventory/OreDictManager.java | 1 - .../java/com/hbm/inventory/fluid/Fluids.java | 4 +- src/main/java/com/hbm/main/ClientProxy.java | 2 +- .../com/hbm/world/feature/GlyphidHive.java | 2 - src/main/resources/assets/hbm/lang/en_US.lang | 9 +- 11 files changed, 133 insertions(+), 159 deletions(-) diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 59f6c9e3f..19d515b5a 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -39,7 +39,7 @@ public class MobConfig { public static int swarmCooldown = 120; public static int baseSwarmSize = 5; - public static double swarmScalingMult = 1.2; + public static double swarmScalingMult = 1.2; public static int sootStep = 50; public static int[] glyphidChance = {50, -40}; @@ -119,10 +119,10 @@ public class MobConfig { + "The base chance is the stock chance of the bug to spawn within a swarm, unaffected by soot\n" + "As soot increases, the spawn rate of the bug increases until it reaches a limit determined by the modifier\n" + "If the default chance is negative, the mob will not spawn by default, and the lower it is,\n" - + "The longer it takes for the modifier to make it positive\n" - + "If the Modifier is negative, the bug will spawn less often in swarms,\n" + + "The longer it takes for the modifier to make it positive\n" + + "If the Modifier is negative, the bug will spawn less often in swarms,\n" + "And its place will be taken over by another one.\n" - + "\n" + + "\n" + "The formula for glyphid spawning chance is: (chance + (modifier - modifier / (soot/10)))" + "The formula for glyphid swarm scaling is: (baseSwarmSize * Math.max(swarmScalingMult * soot/sootStep, 1))"); @@ -140,7 +140,7 @@ public class MobConfig { brendaChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC06_brendaChance", "Base Spawn chance and soot modifier for a glyphid brenda", new int[]{-50, 60}); johnsonChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC07_johnsonChance", "Base Spawn chance and soot modifier for Big Man Johnson", new int[]{-50, 60}); - String rampantDesc = "Rampant Mode changes glyphid behavior and spawning to be more aggressive, changes include:\n" + String rampantDesc = "Rampant Mode changes glyphid behavior and spawning to be more aggressive, changes include:\n" + "\n" + "Glyphid Scouts will naturally spawn alongside normal mobs if soot levels are above a certain threshold\n" + "Glyphids will always have the extended targetting enabled\n" diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 5699f060f..11b26b439 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -3,15 +3,12 @@ package com.hbm.entity.mob; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.Objects; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockGlyphidSpawner; import com.hbm.config.MobConfig; import com.hbm.entity.logic.EntityWaypoint; import com.hbm.entity.pathfinder.PathFinderUtils; import com.hbm.explosion.vanillant.ExplosionVNT; -import com.hbm.explosion.vanillant.interfaces.IExplosionSFX; import com.hbm.explosion.vanillant.standard.*; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; @@ -59,29 +56,30 @@ public class EntityGlyphid extends EntityMob { //used for digging, bigger glyphids have a longer reach public int blastSize = Math.min((int) (3 * (getScale()))/2, 5); - public int blastResToDig = Math.min((int) (50 * (getScale() * 2)), 150); + public int blastResToDig = Math.min((int) (50 * (getScale() * 2)), 150); public boolean shouldDig; // Tasks - public static final int none = 0; - public static final int comm = 1; - public static final int expand = 2; - public static final int reinforcements = 3; - public static final int follow = 4; - public static final int terraform = 5; - public static final int dig = 6; + /** Idle state, only makes glpyhids wander around randomly */ + public static final int TASK_IDLE = 0; + /** Causes the glyphid to walk to the waypoint, then communicate the FOLLOW task to nearby glyphids */ + public static final int TASK_RETREAT_FOR_REINFORCEMENTS = 1; + /** Task used by scouts, if the waypoint is reached it will construct a new hive */ + public static final int TASK_BUILD_HIVE = 2; + /** Creates a waypoint at the home position and then immediately initiates the RETREAT_FOR_REINFORCEMENTS task */ + public static final int TASK_INITIATE_RETREAT = 3; + /** Will simply walk to the waypoint and enter IDLE once it is reached */ + public static final int TASK_FOLLOW = 4; + /** Causes nuclear glyphids to immediately self-destruct, also signaling nearby scouts to retreat */ + public static final int TASK_TERRAFORM = 5; + /** Id any task other than IDLE is interrupted by an obstacle, initiates digging behavior which is also communicated to nearby glyohids */ + public static final int TASK_DIG = 6; + EntityWaypoint taskWaypoint = null; + public EntityGlyphid(World world) { super(world); - /*this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); - this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(8, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));*/ this.setSize(1.75F, 1F); } @@ -124,14 +122,14 @@ public class EntityGlyphid extends EntityMob { onBlinded(); } - if(getCurrentTask() == follow){ + if(getCurrentTask() == TASK_FOLLOW){ //incase the waypoint somehow doesn't exist and it got this task anyway - if(isAtDestination() && taskX == none) { - setCurrentTask(none, null); + if(isAtDestination() && taskX == TASK_IDLE) { + setCurrentTask(TASK_IDLE, null); } //the task cannot be 6 outside of rampant, so this is a non issue p much - } else if (getCurrentTask() == dig && ticksExisted % 20 == 0 && isAtDestination()) { + } else if (getCurrentTask() == TASK_DIG && ticksExisted % 20 == 0 && isAtDestination()) { swingItem(); ExplosionVNT vnt = new ExplosionVNT(worldObj, taskX, taskY + 2, taskZ, blastSize, this); @@ -156,8 +154,8 @@ public class EntityGlyphid extends EntityMob { @Override protected void dropFewItems(boolean byPlayer, int looting) { super.dropFewItems(byPlayer, looting); - Item drop = isBurning() ? ModItems.glyphid_meat_grilled : ModItems.glyphid_meat; - if(rand.nextInt(2) == 0) this.entityDropItem(new ItemStack(drop, ((int)getScale()*2) + looting), 0F); + Item drop = isBurning() ? ModItems.glyphid_meat_grilled : ModItems.glyphid_meat; + if(rand.nextInt(2) == 0) this.entityDropItem(new ItemStack(drop, ((int) getScale() * 2) + looting), 0F); } @Override @@ -170,7 +168,7 @@ public class EntityGlyphid extends EntityMob { @Override protected void updateWanderPath() { - if(getCurrentTask() == none) { + if(getCurrentTask() == TASK_IDLE) { super.updateWanderPath(); } } @@ -185,7 +183,7 @@ public class EntityGlyphid extends EntityMob { // hell yeah!! if (useExtendedTargeting() && this.entityToAttack != null) { this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, true, true)); - } else if (getCurrentTask() != none) { + } else if (getCurrentTask() != TASK_IDLE) { this.worldObj.theProfiler.startSection("stroll"); @@ -203,11 +201,11 @@ public class EntityGlyphid extends EntityMob { } - if (taskX != none) { - if(MobConfig.rampantDig) { + if (taskX != TASK_IDLE) { + if(MobConfig.rampantDig) { MovingObjectPosition obstacle = findWaypointObstruction(); - if (getScale() >= 1 && getCurrentTask() != dig && obstacle != null) { + if (getScale() >= 1 && getCurrentTask() != TASK_DIG && obstacle != null) { digToWaypoint(obstacle); } else { Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); @@ -222,19 +220,18 @@ public class EntityGlyphid extends EntityMob { } } } + this.worldObj.theProfiler.endSection(); - } } } - } public void onBlinded(){ this.entityToAttack = null; this.setPathToEntity(null); - fleeingTick = 80; + this.fleeingTick = 80; if(getScale() >= 1.25){ if(ticksExisted % 20 == 0) { @@ -253,8 +250,6 @@ public class EntityGlyphid extends EntityMob { if (block == ModBlocks.lantern) { rotationYaw = 360F / 16 * i; swingItem(); - //this function is incredibly useful for breaking blocks naturally but obfuscated - //jesus fucking christ who the fuck runs forge? worldObj.func_147480_a(mop.blockX, mop.blockY, mop.blockZ, false); } @@ -270,7 +265,7 @@ public class EntityGlyphid extends EntityMob { @Override protected boolean canDespawn() { - return ticksExisted > 3500 && entityToAttack == null && getCurrentTask() == none; + return ticksExisted > 3500 && entityToAttack == null && getCurrentTask() == TASK_IDLE; } @Override @@ -454,16 +449,16 @@ public class EntityGlyphid extends EntityMob { switch(task){ //call for reinforcements - case comm: if(taskWaypoint != null){ - communicate(follow, taskWaypoint); - setCurrentTask(follow, taskWaypoint); + case TASK_RETREAT_FOR_REINFORCEMENTS: if(taskWaypoint != null){ + communicate(TASK_FOLLOW, taskWaypoint); + setCurrentTask(TASK_FOLLOW, taskWaypoint); } break; //expand the hive, used by the scout //case 2: expandHive(null); //retreat - case reinforcements: + case TASK_INITIATE_RETREAT: if (!worldObj.isRemote && taskWaypoint == null) { @@ -473,15 +468,15 @@ public class EntityGlyphid extends EntityMob { //First, go home and get reinforcements EntityWaypoint home = new EntityWaypoint(worldObj); - home.setWaypointType(comm); + home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); home.setAdditionalWaypoint(additional); home.setHighPriority(); home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); worldObj.spawnEntityInWorld(home); this.taskWaypoint = home; - communicate(follow, home); - setCurrentTask(follow, taskWaypoint); + communicate(TASK_FOLLOW, home); + setCurrentTask(TASK_FOLLOW, taskWaypoint); break; } @@ -492,7 +487,7 @@ public class EntityGlyphid extends EntityMob { //fifth task is used only in the scout and big man johnson, for terraforming //dig - case dig: + case TASK_DIG: shouldDig = true; break; @@ -502,7 +497,8 @@ public class EntityGlyphid extends EntityMob { } - public void communicate(int task, @Nullable EntityWaypoint waypoint) { + /** Copies tasks and waypoint to nearby glyphids. Does not work on glyphid scouts */ + public void communicate(int task, @Nullable EntityWaypoint waypoint) { int radius = waypoint != null ? waypoint.radius : 4; AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( @@ -523,7 +519,7 @@ public class EntityGlyphid extends EntityMob { } } - /** What each type of glyphid does when it is time to expand the hive. + /** What each type of glyphid does when it is time to expand the hive. * @return Whether it has expanded successfully or not * **/ public boolean expandHive(){ @@ -532,10 +528,9 @@ public class EntityGlyphid extends EntityMob { public boolean isAtDestination() { int destinationRadius = taskWaypoint != null ? (int) Math.pow(taskWaypoint.radius, 2) : 25; - return this.getDistanceSq(taskX, taskY, taskZ) <= destinationRadius; } - ///TASK SYSTEM END + ///TASK SYSTEM END ///DIGGING SYSTEM START @@ -564,17 +559,17 @@ public class EntityGlyphid extends EntityMob { previousTask = getCurrentTask(); previousWaypoint = getWaypoint(); - setCurrentTask(dig, target); + setCurrentTask(TASK_DIG, target); Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); - communicate(dig, target); + communicate(TASK_DIG, target); } ///DIGGING END - + @Override public void writeEntityToNBT(NBTTagCompound nbt) { super.writeEntityToNBT(nbt); @@ -608,5 +603,4 @@ public class EntityGlyphid extends EntityMob { this.currentTask = nbt.getInteger("task"); } - } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java index e042626c2..fbc138cde 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java @@ -2,8 +2,6 @@ package com.hbm.entity.mob; import com.hbm.entity.effect.EntityMist; import com.hbm.entity.projectile.EntityChemical; -import com.hbm.inventory.FluidContainerRegistry; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; @@ -11,14 +9,12 @@ import com.hbm.main.ResourceManager; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; -import net.minecraftforge.fluids.Fluid; public class EntityGlyphidBehemoth extends EntityGlyphid { @@ -100,7 +96,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { @Override protected void dropFewItems(boolean byPlayer, int looting) { - this.entityDropItem(new ItemStack(ModItems.glyphid_gland, 1, Fluids.SULFURIC_ACID.getID()), 1); + this.entityDropItem(new ItemStack(ModItems.glyphid_gland, 1, Fluids.SULFURIC_ACID.getID()), 1); super.dropFewItems(byPlayer, looting); } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java index be4486456..33926bbde 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java @@ -1,15 +1,12 @@ package com.hbm.entity.mob; import com.hbm.entity.effect.EntityMist; -import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java index bb617e2b0..d98a13edd 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -1,7 +1,6 @@ package com.hbm.entity.mob; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.effect.EntityMist; import com.hbm.entity.logic.EntityWaypoint; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; @@ -9,7 +8,6 @@ import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; -import com.hbm.inventory.fluid.Fluids; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.packet.AuxParticlePacketNT; @@ -50,22 +48,22 @@ public class EntityGlyphidNuclear extends EntityGlyphid { @Override public void onUpdate() { super.onUpdate(); - if (ticksExisted % 20 == 0) { - if (isAtDestination() && getCurrentTask() == follow) { - setCurrentTask(none, null); + if(ticksExisted % 20 == 0) { + if(isAtDestination() && getCurrentTask() == TASK_FOLLOW) { + setCurrentTask(TASK_IDLE, null); } - if(getCurrentTask() == expand && getAITarget() == null){ + if(getCurrentTask() == TASK_BUILD_HIVE && getAITarget() == null) { this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 10 * 20, 3)); } - if (getCurrentTask() == terraform) { + if(getCurrentTask() == TASK_TERRAFORM) { this.setHealth(0); } - } } + /** Communicates only with glyphid scouts, unlike the super implementation which does the opposite */ @Override public void communicate(int task, @Nullable EntityWaypoint waypoint) { int radius = waypoint != null ? waypoint.radius : 4; @@ -99,7 +97,6 @@ public class EntityGlyphidNuclear extends EntityGlyphid { @Override public boolean isArmorBroken(float amount) { - // amount < 5 ? 5 : amount < 10 ? 3 : 2; return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.12, 2), 100); } @@ -131,9 +128,11 @@ public class EntityGlyphidNuclear extends EntityGlyphid { ++this.deathTicks; if(!hasWaypoint) { - communicate(reinforcements, null); + // effectively causes neighboring EntityGlyphidScout to retreat + communicate(TASK_INITIATE_RETREAT, null); hasWaypoint = true; } + if(deathTicks == 90){ int radius = 8; AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index c1a24ad99..1ceaf824c 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -17,7 +17,6 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.*; import net.minecraft.world.World; -import javax.annotation.Nullable; import java.util.List; public class EntityGlyphidScout extends EntityGlyphid { @@ -28,6 +27,7 @@ public class EntityGlyphidScout extends EntityGlyphid { int minDistanceToHive = 8; boolean useLargeHive = false; float largeHiveChance = MobConfig.largeHiveChance; + public EntityGlyphidScout(World world) { super(world); this.setSize(1.25F, 0.75F); @@ -42,6 +42,7 @@ public class EntityGlyphidScout extends EntityGlyphid { } return false; } + @Override public ResourceLocation getSkin() { return ResourceManager.glyphid_scout_tex; @@ -64,14 +65,14 @@ public class EntityGlyphidScout extends EntityGlyphid { this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.5D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2D); } + @Override public void onUpdate() { - super.onUpdate(); - if((getCurrentTask() != expand || getCurrentTask() != terraform) && taskWaypoint == null) { + if((getCurrentTask() != TASK_BUILD_HIVE || getCurrentTask() != TASK_TERRAFORM) && taskWaypoint == null) { - if(MobConfig.rampantGlyphidGuidance && PollutionHandler.targetCoords != null){ + if(MobConfig.rampantGlyphidGuidance && PollutionHandler.targetCoords != null){ if(!hasTarget) { Vec3 dirVec = playerBaseDirFinder( Vec3.createVectorHelper(posX, posY, posZ), @@ -84,62 +85,51 @@ public class EntityGlyphidScout extends EntityGlyphid { worldObj.spawnEntityInWorld(target); hasTarget = true; - setCurrentTask(1, target); + setCurrentTask(TASK_RETREAT_FOR_REINFORCEMENTS, target); } if(super.isAtDestination()) { - setCurrentTask(2, null) ; + setCurrentTask(TASK_BUILD_HIVE, null) ; hasTarget = false; } } else { - setCurrentTask(2, null); + setCurrentTask(TASK_BUILD_HIVE, null); } } - if(getCurrentTask() == expand || getCurrentTask() == terraform) { + if(getCurrentTask() == TASK_BUILD_HIVE || getCurrentTask() == TASK_TERRAFORM) { if(!worldObj.isRemote && !hasTarget) { //Check for whether a big man johnson is nearby, this makes the scout switch into its terraforming task - if(scoutingRange != 60 && findJohnson()){ - setCurrentTask(5, null); + if(scoutingRange != 60 && hasNuclearGlyphidNearby()){ + setCurrentTask(TASK_TERRAFORM, null); } - //Placeholder for a more advanced hive design - /* - if(PollutionHandler.getPollution(worldObj, - (int) posX, - (int) posY, - (int) posZ, PollutionHandler.PollutionType.SOOT) >= MobConfig.largeHiveThreshold){ - - useLargeHive = true; - this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 3)); - }*/ - - if (expandHive()){ - this.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 180*20, 1)); + if(expandHive()) { + this.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 180 * 20, 1)); hasTarget = true; } } - if (getCurrentTask() == terraform && super.isAtDestination() && doubleCheckHive()) { - communicate(terraform, taskWaypoint); + if (getCurrentTask() == TASK_TERRAFORM && super.isAtDestination() && canBuildHiveHere()) { + communicate(TASK_TERRAFORM, taskWaypoint); } if (ticksExisted % 10 == 0 && isAtDestination()) { timer++; - if (!worldObj.isRemote && doubleCheckHive()) { + if (!worldObj.isRemote && canBuildHiveHere()) { if(timer == 1) { EntityWaypoint additional = new EntityWaypoint(worldObj); additional.setLocationAndAngles(posX, posY, posZ, 0, 0); - additional.setWaypointType(none); + additional.setWaypointType(TASK_IDLE); //First, go home and get reinforcements EntityWaypoint home = new EntityWaypoint(worldObj); - home.setWaypointType(comm); + home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); home.setAdditionalWaypoint(additional); home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); home.maxAge = 1200; @@ -149,7 +139,7 @@ public class EntityGlyphidScout extends EntityGlyphid { this.taskWaypoint = home; this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 40 * 20, 10)); - communicate(comm, taskWaypoint); + communicate(TASK_RETREAT_FOR_REINFORCEMENTS, taskWaypoint); } else if (timer >= 5) { @@ -161,15 +151,19 @@ public class EntityGlyphidScout extends EntityGlyphid { this.setDead(); } else { - communicate(follow, taskWaypoint); + communicate(TASK_FOLLOW, taskWaypoint); } } } } } - public boolean doubleCheckHive(){ + + /** Returns true if the position is far enough away from other hives. Also resets the task if unsuccessful. */ + public boolean canBuildHiveHere() { int length = useLargeHive ? 16 : 8; + for(int i = 0; i < 8; i++) { + float angle = (float) Math.toRadians(360D / 16 * i); Vec3 rot = Vec3.createVectorHelper(0, 0, length); rot.rotateAroundY(angle); @@ -177,12 +171,12 @@ public class EntityGlyphidScout extends EntityGlyphid { Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); - if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + if(mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); - if (block == ModBlocks.glyphid_base) { - setCurrentTask(none ,null); + if(block == ModBlocks.glyphid_base) { + setCurrentTask(TASK_IDLE, null); hasTarget = false; return false; } @@ -194,10 +188,10 @@ public class EntityGlyphidScout extends EntityGlyphid { @Override public boolean isAtDestination() { - return this.getCurrentTask() == expand && super.isAtDestination(); + return this.getCurrentTask() == TASK_BUILD_HIVE && super.isAtDestination(); } - public boolean findJohnson(){ + public boolean hasNuclearGlyphidNearby(){ int radius = 8; AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( @@ -209,6 +203,7 @@ public class EntityGlyphidScout extends EntityGlyphid { this.posZ + radius); List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for (Entity e: bugs){ if(e instanceof EntityGlyphidNuclear){ return true; @@ -220,51 +215,50 @@ public class EntityGlyphidScout extends EntityGlyphid { @Override public boolean expandHive() { - int nestX = rand.nextInt((homeX + scoutingRange) - (homeX - scoutingRange)) + (homeX - scoutingRange); - int nestZ = rand.nextInt((homeZ + scoutingRange) - (homeZ - scoutingRange)) + (homeZ - scoutingRange); - int nestY = worldObj.getHeightValue(nestX, nestZ); - Block b = worldObj.getBlock(nestX, nestY - 1, nestZ); + int nestX = rand.nextInt((homeX + scoutingRange) - (homeX - scoutingRange)) + (homeX - scoutingRange); + int nestZ = rand.nextInt((homeZ + scoutingRange) - (homeZ - scoutingRange)) + (homeZ - scoutingRange); + int nestY = worldObj.getHeightValue(nestX, nestZ); + Block b = worldObj.getBlock(nestX, nestY - 1, nestZ); - boolean distanceCheck = Vec3.createVectorHelper( - nestX - homeX, - nestY - homeY, - nestZ - homeZ).lengthVector() > minDistanceToHive; + boolean distanceCheck = Vec3.createVectorHelper(nestX - homeX, nestY - homeY, nestZ - homeZ).lengthVector() > minDistanceToHive; - if(distanceCheck && b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { + if(distanceCheck && b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { - if(b == ModBlocks.basalt) { - useLargeHive = true; - largeHiveChance /= 2; - this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 3)); - } - if(!worldObj.isRemote) { - EntityWaypoint nest = new EntityWaypoint(worldObj); - nest.setWaypointType(getCurrentTask()); - nest.radius = 5; + if(b == ModBlocks.basalt) { + useLargeHive = true; + largeHiveChance /= 2; + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 3)); + } + + if(!worldObj.isRemote) { + EntityWaypoint nest = new EntityWaypoint(worldObj); + nest.setWaypointType(getCurrentTask()); + nest.radius = 5; - if(useLargeHive) - nest.setHighPriority(); + if(useLargeHive) + nest.setHighPriority(); - nest.setLocationAndAngles(nestX, nestY, nestZ, 0, 0); - worldObj.spawnEntityInWorld(nest); + nest.setLocationAndAngles(nestX, nestY, nestZ, 0, 0); + worldObj.spawnEntityInWorld(nest); - taskWaypoint = nest; + taskWaypoint = nest; - //updates the task coordinates - setCurrentTask(getCurrentTask(), taskWaypoint); - communicate(expand, taskWaypoint); - } - return true; - } - return false; + // updates the task coordinates + setCurrentTask(getCurrentTask(), taskWaypoint); + communicate(TASK_BUILD_HIVE, taskWaypoint); + } + + return true; + } + + return false; } - @Override public void carryOutTask() { if (!worldObj.isRemote && taskWaypoint == null) { switch(getCurrentTask()){ - case reinforcements: + case TASK_INITIATE_RETREAT: this.removePotionEffect(Potion.moveSlowdown.id); this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 20 * 20, 4)); @@ -283,23 +277,25 @@ public class EntityGlyphidScout extends EntityGlyphid { worldObj.spawnEntityInWorld(home); communicate(4, home); - break; + break; //terraforming task, only used if a big man johnson is near the scout - case terraform: + case TASK_TERRAFORM: scoutingRange = 60; minDistanceToHive = 20; + break; } } super.carryOutTask(); } + @Override public boolean useExtendedTargeting() { return false; } - ///RAMPANT MODE STUFFS + ///RAMPANT MODE STUFFS /** Finds the direction from the bug's location to the target and adds it to their current coord * Used as a performant way to make scouts expand toward the player's spawn point diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index a25849cd1..348f1704c 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -302,7 +302,6 @@ public class OreDictManager { /** Any special post-RBMK gating material, namely bismuth and arsenic */ public static final DictFrame ANY_BISMOID = new DictFrame("AnyBismoid"); public static final DictFrame ANY_ASH = new DictFrame("Ash"); - /** Any, nevermind, this should be self-explanatory**/ public static void registerOres() { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 4c83847b2..5cc0ee007 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -328,12 +328,12 @@ public class Fluids { HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID); SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID); - PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(1)); - PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(2)); THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, new FT_Corrosive(65)); THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); FULLERENE = new FluidType(132, "FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); + PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(1)); + PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(2)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ad1a4a00b..3d82a99ed 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -522,7 +522,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderWeaponQuadro()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_sauer, new ItemRenderWeaponSauer()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_vortex, new ItemRenderWeaponVortex()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_thompson, new ItemRenderWeaponThompson());; + MinecraftForgeClient.registerItemRenderer(ModItems.gun_thompson, new ItemRenderWeaponThompson()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter, new ItemRenderWeaponBolter()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter_digamma, new ItemRenderWeaponBolter()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt()); diff --git a/src/main/java/com/hbm/world/feature/GlyphidHive.java b/src/main/java/com/hbm/world/feature/GlyphidHive.java index f7c83e76f..f0ddf5c41 100644 --- a/src/main/java/com/hbm/world/feature/GlyphidHive.java +++ b/src/main/java/com/hbm/world/feature/GlyphidHive.java @@ -4,8 +4,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; -import net.minecraft.block.Block; -import com.hbm.util.LootGenerator; import net.minecraft.init.Blocks; import net.minecraft.world.World; diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 44f03fd5b..720fc1d5f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2390,6 +2390,8 @@ item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor item.dieselsuit_legs.name=Diesel-Powered Leg Servos item.dieselsuit_plate.name=Diesel-Powered Cybernetics item.digamma_diagnostic.name=Digamma Diagnostic +item.disperser_canister.name= Disperser Canister: +item.disperser_canister_empty.name= Disperser Canister item.dns_boots.name=DNT Nano Suit Boots item.dns_legs.name=DNT Nano Suit Leggings item.dns_helmet.name=DNT Nano Suit Helmet @@ -2616,13 +2618,8 @@ item.grenade_smart.name=Smart Grenade item.grenade_strong.name=Enhanced Grenade item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade - -item.disperser_canister.name= Disperser Canister: -item.disperser_canister_empty.name= Disperser Canister - item.glyphid_gland.name= Gland item.glyphid_gland_empty.name= Glyphid's Fluid Gland - item.gun_ar15.name=Josh item.gun_avenger.name=CZ57 Avenger Minigun item.gun_b92.name=§9B92 Energy Pistol§r @@ -4887,9 +4884,7 @@ tile.door_office.name=Office Door tile.ducrete.name=Ducrete Tile tile.ducrete_stairs.name=Ducrete Tile Stairs tile.ducrete_smooth.name=Ducrete - tile.ducrete_smooth_stairs.name=Ducrete Stairs - tile.dummy_block.name=Dummy Block tile.dummy_port.name=Dummy Block (Electricity Port) tile.dungeon_chain.name=Metal Chain From 31c55c7cfa350d9023b9228c7b197caec7d6df69 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 13 Dec 2023 15:12:28 +0100 Subject: [PATCH 028/376] now i know how megan feels --- .../com/hbm/entity/logic/EntityWaypoint.java | 195 +++++++++--------- .../com/hbm/entity/mob/EntityGlyphid.java | 104 +++++----- .../hbm/entity/mob/EntityGlyphidNuclear.java | 8 +- .../hbm/entity/mob/EntityGlyphidScout.java | 12 +- 4 files changed, 150 insertions(+), 169 deletions(-) diff --git a/src/main/java/com/hbm/entity/logic/EntityWaypoint.java b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java index 87ca34199..33712524e 100644 --- a/src/main/java/com/hbm/entity/logic/EntityWaypoint.java +++ b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java @@ -2,6 +2,7 @@ package com.hbm.entity.logic; import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityGlyphid; +import static com.hbm.entity.mob.EntityGlyphid.*; import com.hbm.entity.mob.EntityGlyphidNuclear; import com.hbm.entity.mob.EntityGlyphidScout; import com.hbm.main.MainRegistry; @@ -9,131 +10,125 @@ import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; import java.util.List; - public class EntityWaypoint extends Entity { - public EntityWaypoint(World world) { - super(world); - this.isImmuneToFire = true; - this.noClip = true; - } - @Override - protected void entityInit() { - this.dataWatcher.addObject(10, 0); - //this.dataWatcher.addObject(11, 0); + public EntityWaypoint(World world) { + super(world); + this.isImmuneToFire = true; + this.noClip = true; + } - } - public int maxAge = 2400; - public int radius = 3; - public boolean highPriority = false; - protected EntityWaypoint additional; - public void setHighPriority(){ - highPriority = true; - } - public int getWaypointType(){ - return this.dataWatcher.getWatchableObjectInt(10); - } + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, 0); + // this.dataWatcher.addObject(11, 0); - public void setAdditionalWaypoint(EntityWaypoint waypoint){ - additional = waypoint; - } + } - public void setWaypointType(int waypointType) { - this.dataWatcher.updateObject(10, waypointType); - } - boolean hasSpawned = false; - public int getColor(){ - switch(getWaypointType()){ + public int maxAge = 2400; + public int radius = 3; + public boolean highPriority = false; + protected EntityWaypoint additional; - case 1: return 0x5FA6E8; + public void setHighPriority() { + highPriority = true; + } - case 2: - case 3: - return 0x127766; + public int getWaypointType() { + return this.dataWatcher.getWatchableObjectInt(10); + } - default: return 0x566573; - } - } - AxisAlignedBB bb; - @Override - public void onEntityUpdate() { - if (ticksExisted >= maxAge) { - this.setDead(); - } + public void setAdditionalWaypoint(EntityWaypoint waypoint) { + additional = waypoint; + } - bb = AxisAlignedBB.getBoundingBox( - this.posX - radius, - this.posY - radius, - this.posZ - radius, - this.posX + radius, - this.posY + radius, - this.posZ + radius); + public void setWaypointType(int waypointType) { + this.dataWatcher.updateObject(10, waypointType); + } - if (!worldObj.isRemote) { + boolean hasSpawned = false; - if (ticksExisted % 40 == 0) { + public int getColor() { + switch(getWaypointType()) { - List targets = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + case TASK_RETREAT_FOR_REINFORCEMENTS: return 0x5FA6E8; + case TASK_BUILD_HIVE: + case TASK_INITIATE_RETREAT: return 0x127766; + default: return 0x566573; + } + } - for (Entity e : targets) { - if (e instanceof EntityGlyphid) { + AxisAlignedBB bb; - EntityGlyphid bug = ((EntityGlyphid) e); + @Override + public void onEntityUpdate() { + if(ticksExisted >= maxAge) { + this.setDead(); + } - if (additional != null && !hasSpawned) { - worldObj.spawnEntityInWorld(additional); - hasSpawned = true; - } + bb = AxisAlignedBB.getBoundingBox(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ).expand(radius, radius, radius); - boolean exceptions = bug.getWaypoint() != this - || e instanceof EntityGlyphidScout - || e instanceof EntityGlyphidNuclear; + if(!worldObj.isRemote) { - if(!exceptions) - bug.setCurrentTask(getWaypointType(), additional); + if(ticksExisted % 40 == 0) { - if (getWaypointType() == 2) { - if (e instanceof EntityGlyphidScout) - setDead(); - } else { - setDead(); - } + List targets = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); - } - } - } - } else if(MobConfig.waypointDebug) { + for(Entity e : targets) { + if(e instanceof EntityGlyphid) { - double x = bb.minX + (rand.nextDouble() - 0.5) * (bb.maxX - bb.minX); - double y = bb.minY + rand.nextDouble() * (bb.maxY - bb.minY); - double z = bb.minZ + (rand.nextDouble() - 0.5) * (bb.maxZ - bb.minZ); + EntityGlyphid bug = ((EntityGlyphid) e); - NBTTagCompound fx = new NBTTagCompound(); - fx.setString("type", "tower"); - fx.setFloat("lift", 0.5F); - fx.setFloat("base", 0.75F); - fx.setFloat("max", 2F); - fx.setInteger("life", 50 + worldObj.rand.nextInt(10)); - fx.setInteger("color", getColor()); - fx.setDouble("posX", x); - fx.setDouble("posY", y); - fx.setDouble("posZ", z); - MainRegistry.proxy.effectNT(fx); - } + if(additional != null && !hasSpawned) { + worldObj.spawnEntityInWorld(additional); + hasSpawned = true; + } - } + boolean exceptions = bug.getWaypoint() != this || e instanceof EntityGlyphidScout || e instanceof EntityGlyphidNuclear; + if(!exceptions) + bug.setCurrentTask(getWaypointType(), additional); - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - this.setWaypointType(nbt.getInteger("type")); - } + if(getWaypointType() == TASK_BUILD_HIVE) { + if(e instanceof EntityGlyphidScout) + setDead(); + } else { + setDead(); + } - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setInteger("type", getWaypointType()); - } + } + } + } + } else if(MobConfig.waypointDebug) { + + double x = bb.minX + (rand.nextDouble() - 0.5) * (bb.maxX - bb.minX); + double y = bb.minY + rand.nextDouble() * (bb.maxY - bb.minY); + double z = bb.minZ + (rand.nextDouble() - 0.5) * (bb.maxZ - bb.minZ); + + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 0.5F); + fx.setFloat("base", 0.75F); + fx.setFloat("max", 2F); + fx.setInteger("life", 50 + worldObj.rand.nextInt(10)); + fx.setInteger("color", getColor()); + fx.setDouble("posX", x); + fx.setDouble("posY", y); + fx.setDouble("posZ", z); + MainRegistry.proxy.effectNT(fx); + } + + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + this.setWaypointType(nbt.getInteger("type")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setInteger("type", getWaypointType()); + } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 11b26b439..08a067063 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -55,7 +55,7 @@ public class EntityGlyphid extends EntityMob { public int taskZ; //used for digging, bigger glyphids have a longer reach - public int blastSize = Math.min((int) (3 * (getScale()))/2, 5); + public int blastSize = Math.min((int) (3 * (getScale())) / 2, 5); public int blastResToDig = Math.min((int) (50 * (getScale() * 2)), 150); public boolean shouldDig; @@ -73,10 +73,12 @@ public class EntityGlyphid extends EntityMob { public static final int TASK_FOLLOW = 4; /** Causes nuclear glyphids to immediately self-destruct, also signaling nearby scouts to retreat */ public static final int TASK_TERRAFORM = 5; - /** Id any task other than IDLE is interrupted by an obstacle, initiates digging behavior which is also communicated to nearby glyohids */ + /** If any task other than IDLE is interrupted by an obstacle, initiates digging behavior which is also communicated to nearby glyohids */ public static final int TASK_DIG = 6; - EntityWaypoint taskWaypoint = null; + protected boolean hasWaypoint = false; + /** Yeah, fuck, whatever, anything goes now */ + protected EntityWaypoint taskWaypoint = null; public EntityGlyphid(World world) { super(world); @@ -125,7 +127,7 @@ public class EntityGlyphid extends EntityMob { if(getCurrentTask() == TASK_FOLLOW){ //incase the waypoint somehow doesn't exist and it got this task anyway - if(isAtDestination() && taskX == TASK_IDLE) { + if(isAtDestination() && !hasWaypoint) { setCurrentTask(TASK_IDLE, null); } //the task cannot be 6 outside of rampant, so this is a non issue p much @@ -201,7 +203,7 @@ public class EntityGlyphid extends EntityMob { } - if (taskX != TASK_IDLE) { + if(hasWaypoint) { if(MobConfig.rampantDig) { MovingObjectPosition obstacle = findWaypointObstruction(); @@ -292,8 +294,6 @@ public class EntityGlyphid extends EntityMob { } if(source.isFireDamage()) { - //you might be thinking, why would fire damage be nerfed? - //thing is, it bypasses glyphid chitin, making it unbelievably powerful, so this was the most reasonable solution amount *= 0.7F; } else if(source.getDamageType().equals("player")) { amount *= 1.5F; @@ -423,8 +423,9 @@ public class EntityGlyphid extends EntityMob { * @param waypoint The waypoint for the task, can be null */ public void setCurrentTask(int task, @Nullable EntityWaypoint waypoint){ - currentTask = task; - taskWaypoint = waypoint; + this.currentTask = task; + this.taskWaypoint = waypoint; + this.hasWaypoint = waypoint != null; if (taskWaypoint != null) { taskX = (int) taskWaypoint.posX; @@ -448,50 +449,44 @@ public class EntityGlyphid extends EntityMob { switch(task){ - //call for reinforcements - case TASK_RETREAT_FOR_REINFORCEMENTS: if(taskWaypoint != null){ + case TASK_RETREAT_FOR_REINFORCEMENTS: + if(taskWaypoint != null) { communicate(TASK_FOLLOW, taskWaypoint); setCurrentTask(TASK_FOLLOW, taskWaypoint); - } break; - - //expand the hive, used by the scout - //case 2: expandHive(null); - - //retreat - case TASK_INITIATE_RETREAT: - - if (!worldObj.isRemote && taskWaypoint == null) { - - //Then, Come back later - EntityWaypoint additional = new EntityWaypoint(worldObj); - additional.setLocationAndAngles(posX, posY, posZ, 0 , 0); - - //First, go home and get reinforcements - EntityWaypoint home = new EntityWaypoint(worldObj); - home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); - home.setAdditionalWaypoint(additional); - home.setHighPriority(); - home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); - worldObj.spawnEntityInWorld(home); - - this.taskWaypoint = home; - communicate(TASK_FOLLOW, home); - setCurrentTask(TASK_FOLLOW, taskWaypoint); - - break; - } - + } break; - //the fourth task (case 4) is to just follow the waypoint path - //fifth task is used only in the scout and big man johnson, for terraforming + case TASK_INITIATE_RETREAT: + + if(!worldObj.isRemote && taskWaypoint == null) { + + // Then, Come back later + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + + // First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); + home.setAdditionalWaypoint(additional); + home.setHighPriority(); + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + worldObj.spawnEntityInWorld(home); + + this.taskWaypoint = home; + communicate(TASK_FOLLOW, home); + setCurrentTask(TASK_FOLLOW, taskWaypoint); - //dig - case TASK_DIG: - shouldDig = true; break; + } - default: break; + break; + + case TASK_DIG: + shouldDig = true; + break; + + default: + break; } @@ -500,19 +495,12 @@ public class EntityGlyphid extends EntityMob { /** Copies tasks and waypoint to nearby glyphids. Does not work on glyphid scouts */ public void communicate(int task, @Nullable EntityWaypoint waypoint) { int radius = waypoint != null ? waypoint.radius : 4; - - AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( - this.posX - radius, - this.posY - radius, - this.posZ - radius, - this.posX + radius, - this.posY + radius, - this.posZ + radius); + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ).expand(radius, radius, radius); List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); - for (Entity e: bugs){ - if(e instanceof EntityGlyphid && !(e instanceof EntityGlyphidScout)){ - if(((EntityGlyphid) e).getCurrentTask() != task){ + for(Entity e : bugs) { + if(e instanceof EntityGlyphid && !(e instanceof EntityGlyphidScout)) { + if(((EntityGlyphid) e).getCurrentTask() != task) { ((EntityGlyphid) e).setCurrentTask(task, waypoint); } } @@ -580,6 +568,7 @@ public class EntityGlyphid extends EntityMob { nbt.setInteger("homeY", homeY); nbt.setInteger("homeZ", homeZ); + nbt.setBoolean("hasWaypoint", hasWaypoint); nbt.setInteger("taskX", taskX); nbt.setInteger("taskY", taskY); nbt.setInteger("taskZ", taskZ); @@ -597,6 +586,7 @@ public class EntityGlyphid extends EntityMob { this.homeY = nbt.getInteger("homeY"); this.homeZ = nbt.getInteger("homeZ"); + this.hasWaypoint = nbt.getBoolean("hasWaypoint"); this.taskX = nbt.getInteger("taskX"); this.taskY = nbt.getInteger("taskY"); this.taskZ = nbt.getInteger("taskZ"); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java index d98a13edd..e68c5311f 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -135,13 +135,7 @@ public class EntityGlyphidNuclear extends EntityGlyphid { if(deathTicks == 90){ int radius = 8; - AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( - this.posX - radius, - this.posY - radius, - this.posZ - radius, - this.posX + radius, - this.posY + radius, - this.posZ + radius); + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ).expand(radius, radius, radius); List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); for (Entity e: bugs){ diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index 1ceaf824c..bd09849ec 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -74,9 +74,7 @@ public class EntityGlyphidScout extends EntityGlyphid { if(MobConfig.rampantGlyphidGuidance && PollutionHandler.targetCoords != null){ if(!hasTarget) { - Vec3 dirVec = playerBaseDirFinder( - Vec3.createVectorHelper(posX, posY, posZ), - PollutionHandler.targetCoords); + Vec3 dirVec = playerBaseDirFinder(Vec3.createVectorHelper(posX, posY, posZ), getPlayerTargetDirection()); EntityWaypoint target = new EntityWaypoint(worldObj); target.setLocationAndAngles(dirVec.xCoord, dirVec.yCoord, dirVec.zCoord, 0, 0); @@ -157,7 +155,7 @@ public class EntityGlyphidScout extends EntityGlyphid { } } } - + /** Returns true if the position is far enough away from other hives. Also resets the task if unsuccessful. */ public boolean canBuildHiveHere() { int length = useLargeHive ? 16 : 8; @@ -308,5 +306,9 @@ public class EntityGlyphidScout extends EntityGlyphid { currentLocation.zCoord + dirVec.zCoord * 10 ); } - + + //TODO: replace that with some actual directions + protected Vec3 getPlayerTargetDirection() { + return PollutionHandler.targetCoords; + } } From debfa0f3ee18cd4e0939d604d18c6da72d9c4930 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 14 Dec 2023 16:36:10 +0100 Subject: [PATCH 029/376] better spawner behavior, digger glyphid --- .../blocks/generic/BlockGlyphidSpawner.java | 102 +++++++++--------- src/main/java/com/hbm/config/MobConfig.java | 10 +- .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityGlyphid.java | 17 ++- .../hbm/entity/mob/EntityGlyphidDigger.java | 41 +++++++ .../java/com/hbm/inventory/fluid/Fluids.java | 4 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../hbm/textures/entity/glyphid_digger.png | Bin 0 -> 2239 bytes 8 files changed, 114 insertions(+), 62 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_digger.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index f2acc1999..0150ad3d5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -4,23 +4,14 @@ import java.util.*; import java.util.function.Function; import com.hbm.config.MobConfig; -import com.hbm.entity.mob.EntityGlyphid; -import com.hbm.entity.mob.EntityGlyphidBehemoth; -import com.hbm.entity.mob.EntityGlyphidBlaster; -import com.hbm.entity.mob.EntityGlyphidBombardier; -import com.hbm.entity.mob.EntityGlyphidBrawler; -import com.hbm.entity.mob.EntityGlyphidBrenda; -import com.hbm.entity.mob.EntityGlyphidNuclear; -import com.hbm.entity.mob.EntityGlyphidScout; +import com.hbm.entity.mob.*; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; - import com.hbm.util.Tuple.Pair; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -30,25 +21,27 @@ import net.minecraft.world.World; public class BlockGlyphidSpawner extends BlockContainer { - public BlockGlyphidSpawner(Material p_i45386_1_) { - super(p_i45386_1_); + public BlockGlyphidSpawner(Material mat) { + super(mat); } @Override public Item getItemDropped(int meta, Random rand, int fortune) { return ModItems.egg_glyphid; } + private static final ArrayList, int[]>> spawnMap = new ArrayList<>(); - static{ - //big thanks to martin for the suggestion of using functions - spawnMap.add(new Pair<>(EntityGlyphid::new, MobConfig.glyphidChance)); - spawnMap.add(new Pair<>(EntityGlyphidBombardier::new, MobConfig.bombardierChance)); - spawnMap.add(new Pair<>(EntityGlyphidBrawler::new, MobConfig.brawlerChance)); - spawnMap.add(new Pair<>(EntityGlyphidBlaster::new, MobConfig.blasterChance)); - spawnMap.add(new Pair<>(EntityGlyphidBehemoth::new, MobConfig.behemothChance)); - spawnMap.add(new Pair<>(EntityGlyphidBrenda::new, MobConfig.brendaChance)); - spawnMap.add(new Pair<>(EntityGlyphidNuclear::new, MobConfig.johnsonChance)); + static { + // big thanks to martin for the suggestion of using functions + spawnMap.add(new Pair<>(EntityGlyphid::new, MobConfig.glyphidChance)); + spawnMap.add(new Pair<>(EntityGlyphidBombardier::new, MobConfig.bombardierChance)); + spawnMap.add(new Pair<>(EntityGlyphidBrawler::new, MobConfig.brawlerChance)); + spawnMap.add(new Pair<>(EntityGlyphidDigger::new, MobConfig.diggerChance)); + spawnMap.add(new Pair<>(EntityGlyphidBlaster::new, MobConfig.blasterChance)); + spawnMap.add(new Pair<>(EntityGlyphidBehemoth::new, MobConfig.behemothChance)); + spawnMap.add(new Pair<>(EntityGlyphidBrenda::new, MobConfig.brendaChance)); + spawnMap.add(new Pair<>(EntityGlyphidNuclear::new, MobConfig.johnsonChance)); } @Override @@ -67,47 +60,51 @@ public class BlockGlyphidSpawner extends BlockContainer { @Override public void updateEntity() { - float soot; if(!worldObj.isRemote && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { - if (initialSpawn || worldObj.getTotalWorldTime() % MobConfig.swarmCooldown == 0) { - - if (worldObj.getBlock(xCoord, yCoord + 1, zCoord) != Blocks.air) { - return; - } + if(initialSpawn || worldObj.getTotalWorldTime() % MobConfig.swarmCooldown == 0) { + int count = 0; - for (Object e : worldObj.loadedEntityList) { - if (e instanceof EntityGlyphid) { + for(Object e : worldObj.loadedEntityList) { + if(e instanceof EntityGlyphid) { count++; - if (count >= MobConfig.spawnMax) return; + //if(count >= MobConfig.spawnMax) + // return; } } - List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 6, yCoord + 1, zCoord - 6, xCoord + 7, yCoord + 9, zCoord + 7)); - soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); + List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 9, yCoord + 1, zCoord - 9, xCoord + 10, yCoord + 8, zCoord + 10)); + float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); - if (list.size() <= 3) { + if(list.size() <= 3) { ArrayList currentSwarm = createSwarm(soot); - for (EntityGlyphid glyphid : currentSwarm) { - glyphid.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); - worldObj.spawnEntityInWorld(glyphid); - glyphid.moveEntity(worldObj.rand.nextGaussian(), 0, worldObj.rand.nextGaussian()); + for(EntityGlyphid glyphid : currentSwarm) { + trySpawnEntity(glyphid); } - if (!initialSpawn && worldObj.rand.nextInt(MobConfig.scoutSwarmSpawnChance + 1) == 0 && soot >= MobConfig.scoutThreshold) { - EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); - scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); - worldObj.spawnEntityInWorld(scout); + if(!initialSpawn && worldObj.rand.nextInt(MobConfig.scoutSwarmSpawnChance + 1) == 0 && soot >= MobConfig.scoutThreshold) { + trySpawnEntity(new EntityGlyphidScout(worldObj)); } initialSpawn = false; - } - + } + } + } + + public void trySpawnEntity(EntityGlyphid glyphid) { + double offsetX = glyphid.getRNG().nextGaussian() * 3; + double offsetZ = glyphid.getRNG().nextGaussian() * 3; + + for(int i = 0; i < 7; i++) { + glyphid.setLocationAndAngles(xCoord + 0.5 + offsetX, yCoord - 2 + i, zCoord + 0.5 + offsetZ, worldObj.rand.nextFloat() * 360.0F, 0.0F); + if(glyphid.getCanSpawnHere()) { + worldObj.spawnEntityInWorld(glyphid); + return; } } } @@ -115,21 +112,18 @@ public class BlockGlyphidSpawner extends BlockContainer { public ArrayList createSwarm(float soot) { Random rand = new Random(); - ArrayList currentSpawns = new ArrayList<>(); - int swarmAmount = (int) Math.min(MobConfig.baseSwarmSize * Math.max(MobConfig.swarmScalingMult * (soot / MobConfig.sootStep), 1), 10); while(currentSpawns.size() <= swarmAmount) { - //(dys)functional programing - for (Pair, int[]> glyphid : spawnMap) { - - int[] chance = glyphid.getValue(); - int adjustedChance = (int) (chance[0] + (chance[1] - chance[1] / Math.max(((soot + 1)/3 ), 1))); - if (rand.nextInt(100) <= adjustedChance) { - currentSpawns.add(glyphid.getKey().apply(worldObj)); - } - } + // (dys)functional programing + for(Pair, int[]> glyphid : spawnMap) { + int[] chance = glyphid.getValue(); + int adjustedChance = (int) (chance[0] + (chance[1] - chance[1] / Math.max(((soot + 1) / 3), 1))); + if(rand.nextInt(100) <= adjustedChance) { + currentSpawns.add(glyphid.getKey().apply(worldObj)); + } + } } return currentSpawns; } diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 19d515b5a..2cf744595 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -36,7 +36,7 @@ public class MobConfig { public static int largeHiveChance = 5; public static int largeHiveThreshold = 30; - public static int swarmCooldown = 120; + public static int swarmCooldown = 120 * 20; public static int baseSwarmSize = 5; public static double swarmScalingMult = 1.2; @@ -46,6 +46,7 @@ public class MobConfig { public static int[] brawlerChance = {5, 35}; public static int[] bombardierChance = {20, -15}; public static int[] blasterChance = {-15, 40}; + public static int[] diggerChance = {-15, 25}; public static int[] behemothChance = {-30, 45}; public static int[] brendaChance = {-50, 60}; public static int[] johnsonChance = {-50, 60}; @@ -136,9 +137,10 @@ public class MobConfig { brawlerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC02_brawlerChance", "Base Spawn chance and soot modifier for a glyphid brawler", new int[]{10, 30}); bombardierChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC03_bombardierChance", "Base Spawn chance and soot modifier for a glyphid bombardier", new int[]{20, -15}); blasterChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC04_blasterChance", "Base Spawn chance and soot modifier for a glyphid blaster", new int[]{-5, 40}); - behemothChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC05_behemothChance", "Base Spawn chance and soot modifier for a glyphid behemoth", new int[]{-30, 45}); - brendaChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC06_brendaChance", "Base Spawn chance and soot modifier for a glyphid brenda", new int[]{-50, 60}); - johnsonChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC07_johnsonChance", "Base Spawn chance and soot modifier for Big Man Johnson", new int[]{-50, 60}); + diggerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC05_diggerChance", "Base Spawn chance and soot modifier for a glyphid digger", new int[]{-15, 25}); + behemothChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC06_behemothChance", "Base Spawn chance and soot modifier for a glyphid behemoth", new int[]{-30, 45}); + brendaChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC07_brendaChance", "Base Spawn chance and soot modifier for a glyphid brenda", new int[]{-50, 60}); + johnsonChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC08_johnsonChance", "Base Spawn chance and soot modifier for Big Man Johnson", new int[]{-50, 60}); String rampantDesc = "Rampant Mode changes glyphid behavior and spawning to be more aggressive, changes include:\n" + "\n" diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 4c33cab1f..c40457abc 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -265,6 +265,7 @@ public class EntityMappings { addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B); addMob(EntityGlyphidNuclear.class, "entity_glyphid_nuclear", 0x267F00, 0xA0A0A0); + addMob(EntityGlyphidDigger.class, "entity_glyphid_digger", 0x273038, 0x724A21); addMob(EntityPlasticBag.class, "entity_plastic_bag", 0xd0d0d0, 0x808080); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 08a067063..f6c0ae768 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -32,7 +32,7 @@ import net.minecraft.util.*; import net.minecraft.potion.Potion; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; - +import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; import javax.annotation.Nullable; @@ -79,6 +79,9 @@ public class EntityGlyphid extends EntityMob { protected boolean hasWaypoint = false; /** Yeah, fuck, whatever, anything goes now */ protected EntityWaypoint taskWaypoint = null; + + public static final int TYPE_NORMAL = 0; + public static final int TYPE_INFECTED = 1; public EntityGlyphid(World world) { super(world); @@ -98,6 +101,7 @@ public class EntityGlyphid extends EntityMob { super.entityInit(); this.dataWatcher.addObject(16, new Byte((byte) 0)); //wall climbing this.dataWatcher.addObject(17, new Byte((byte) 0b11111)); //armor + this.dataWatcher.addObject(18, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc) } @Override @@ -204,7 +208,8 @@ public class EntityGlyphid extends EntityMob { } if(hasWaypoint) { - if(MobConfig.rampantDig) { + + if(canDig()) { MovingObjectPosition obstacle = findWaypointObstruction(); if (getScale() >= 1 && getCurrentTask() != TASK_DIG && obstacle != null) { @@ -229,6 +234,9 @@ public class EntityGlyphid extends EntityMob { } } + protected boolean canDig() { + return MobConfig.rampantDig; + } public void onBlinded(){ this.entityToAttack = null; @@ -593,4 +601,9 @@ public class EntityGlyphid extends EntityMob { this.currentTask = nbt.getInteger("task"); } + + @Override + public boolean getCanSpawnHere() { + return this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL && this.worldObj.checkNoEntityCollision(this.boundingBox) && this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox).isEmpty() && !this.worldObj.isAnyLiquid(this.boundingBox); + } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java new file mode 100644 index 000000000..09801fe4b --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java @@ -0,0 +1,41 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidDigger extends EntityGlyphid { + + public EntityGlyphidDigger(World world) { + super(world); + } + + public ResourceLocation getSkin() { + return ResourceManager.glyphid_digger_tex; + } + + @Override + public double getScale() { + return 1.25D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(35D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); + } + + @Override + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); + } + + @Override + protected boolean canDig() { + return true; + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 5cc0ee007..b2efa5781 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -331,9 +331,9 @@ public class Fluids { THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, new FT_Corrosive(65)); THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); - FULLERENE = new FluidType(132, "FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); + FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(1)); - PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(2)); + PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(2)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 9816aee87..0d1a613df 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -750,6 +750,7 @@ public class ResourceManager { public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png"); public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png"); public static final ResourceLocation glyphid_nuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_nuclear.png"); + public static final ResourceLocation glyphid_digger_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_digger.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_digger.png b/src/main/resources/assets/hbm/textures/entity/glyphid_digger.png new file mode 100644 index 0000000000000000000000000000000000000000..524358e730f743d404a26a3f5d5cdea813d3f2eb GIT binary patch literal 2239 zcmV;w2tfCVP)ud-d908fE_Qx_&H}igI*V(mw9~epdq^GA( z-^`ntC$}Jgz5Y%;I4EKLMh5F^t5A%_R{Nu8?^^wb+qHD2Q2+c|yk@VzQx~H# z6vGM*%L;yf^GWP$ufJ0R02HG!tgo$FZTMR;8pES!?^@dVbpOHb>)@CvmO>|JJ6< zgh)yp9(VK1=}+pv7*=MB*dM%)QUbnUNm1A~I4F(sD4b^*jm>$nN(?H{OWx$IH6_p7 zWAc)y0%NhYk(+%S4~}hXBR4Mx+qGxl+gJn%nOb7Bc^=A-LkL~(J4W;KDMlhvdKgZO_M3K&)R%T&yw*~nIU&&>g{}`ClUOs= z^fcv3*J+blDtRR&B0(pL$n(xMflEWWNQVp*o@?)N+@%}V|q&BT? z8C6V}rQ$-62FmvV6%v~s`7Z%#)oOzH9zeeZ?@8Lj;rs-hCJS`p+yxamBFoY z)I@buffA?!0nS1Xryww+b^zU6k-!&kOOc%F`>`Pp)rZHp1vpiv9yMVNZ5kgve{!#u$~xN2*MGQOOD0YG z?C0CosvX6w6zDTyY(xKr@gEYEt#n{qegyz9O2al(r!O9~0%>1;O+t(*i(d!KSb;pi z2LLCeL45i9bE~)YYYhOF`Ep-}YW!>ePj4`75r}bKH_zbH{=a6cfje+X1@ybT^|e*! zt0$UCOshZy9gk!o)Kocnk}3OO5h#)2n{`vp*Oo1(RVXSDk@9Vh6#G%~LjDhc5xCjA zZVx+jU`I)2Q-CyLlM2~IJ=F`GasJr<$C zG*u{m5Q(3W;JJAG=-E5t^YEk1{lR<74@!Y^w$h3E$kSvZbYK9sU*YS+n2F$d6!e;6 zSi#GWKUDH06X8x9R}BGVQ|1Lze*E&|537HiX=5raF)(qUMhG34RNCj@Nj(ihLn@R4 z){p|V?CI>DNy|RTX!|k?ZFWn^M3y_XLmbU70U)}B6!V#e6^0EfsJ_bzoE6$JvlXIA zE-WcfQ=;~84|ZR-XgQ0PzBpmD{C0Y;pR7P%I5H0f;w(+GA-d1MzF!Ch^52lKc`49` zxhpWV2H~z9=-=^4Gu!Rn-Fj9&Py+XhQvAomm{}s&AqKuQX9Tdz;dm_NjW=)IskJIE z4`V`!yM|EUe4dEXH_a8PN@CUzuvEmWz?jHWvu&b4fb{=wnSL(o&(1ye47MJkbVl zSL`W?0Ja(=@}zSy$fhQ&g**JET@>;FCIm_g%M=<>05ivX*b zaB_U)T^FV1nyqx4Sysw*`HRuM1dx8e2)S{R3FE9veIh4QXnrq@voG8vv7#K%L*|L1aSQycj{8e!Oj1oOa#+l3BYyqQeaCJ z$t%npzF6?GA?TBM8H$3(Y?q}(m4fIsKVD?u{_e7tt3rq(P@5z!V(K+(1PSz2oG0au~({T#e8q1<~um2rUh}st78OD$e&+!c`?P%7nF?RXe^)_z!yO4x9^J_?G|x N002ovPDHLkV1i_!I~@Q3 literal 0 HcmV?d00001 From 95520daebc5f9500f59ae4a554a0fde26430fe3a Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 15 Dec 2023 14:25:44 +0100 Subject: [PATCH 030/376] moldy glyphids --- .../com/hbm/blocks/generic/BlockGlyphid.java | 21 ++++++++---- .../blocks/generic/BlockGlyphidSpawner.java | 30 +++++++++++++--- .../com/hbm/entity/mob/EntityGlyphid.java | 32 +++++++++++------- .../hbm/render/entity/mob/RenderGlyphid.java | 30 +++++++++++++++- .../com/hbm/world/feature/GlyphidHive.java | 5 +-- src/main/resources/assets/hbm/lang/de_DE.lang | 3 +- src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/blocks/glyphid_base_2.png | Bin 560 -> 0 bytes .../textures/blocks/glyphid_base_infested.png | Bin 0 -> 594 bytes .../blocks/glyphid_base_infested_alt.png | Bin 0 -> 585 bytes .../blocks/glyphid_eggs_base_infested.png | Bin 0 -> 423 bytes .../textures/blocks/glyphid_eggs_infested.png | Bin 0 -> 747 bytes .../textures/entity/glyphid_infestation.png | Bin 0 -> 1288 bytes 13 files changed, 96 insertions(+), 26 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested_alt.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_infested.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_infested.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_infestation.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java index 267624e28..be1613d3a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java @@ -11,8 +11,9 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; public class BlockGlyphid extends Block { - - public IIcon[] icons = new IIcon[2]; + + public IIcon[] iconsStandard = new IIcon[2]; + public IIcon[] iconsInfested = new IIcon[2]; public BlockGlyphid(Material mat) { super(mat); @@ -24,20 +25,28 @@ public class BlockGlyphid extends Block { long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; l = l * l * 42317861L + l * 11L; int i = (int)(l >> 16 & 3L); - return icons[(int)(Math.abs(i) % this.icons.length)]; + IIcon[] icons = this.getIconArray(world.getBlockMetadata(x, y, z)); + return icons[(int)(Math.abs(i) % icons.length)]; } @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { - return icons[meta % this.icons.length]; + IIcon[] icons = this.getIconArray(meta); + return icons[meta % icons.length]; } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { - icons[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base"); - icons[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_alt"); + iconsStandard[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base"); + iconsStandard[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_alt"); + iconsInfested[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_infested"); + iconsInfested[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_infested_alt"); } + protected IIcon[] getIconArray(int meta) { + if(meta == 1) return this.iconsInfested; + return this.iconsStandard; + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index 0150ad3d5..a212e980b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -8,18 +8,25 @@ import com.hbm.entity.mob.*; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; - +import com.hbm.lib.RefStrings; import com.hbm.util.Tuple.Pair; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; public class BlockGlyphidSpawner extends BlockContainer { + + public IIcon[] icons = new IIcon[2]; public BlockGlyphidSpawner(Material mat) { super(mat); @@ -30,6 +37,19 @@ public class BlockGlyphidSpawner extends BlockContainer { return ModItems.egg_glyphid; } + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[meta % icons.length]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_alt"); + icons[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_infested"); + } + private static final ArrayList, int[]>> spawnMap = new ArrayList<>(); static { @@ -80,7 +100,7 @@ public class BlockGlyphidSpawner extends BlockContainer { if(list.size() <= 3) { - ArrayList currentSwarm = createSwarm(soot); + ArrayList currentSwarm = createSwarm(soot, this.getBlockMetadata()); for(EntityGlyphid glyphid : currentSwarm) { trySpawnEntity(glyphid); @@ -109,7 +129,7 @@ public class BlockGlyphidSpawner extends BlockContainer { } } - public ArrayList createSwarm(float soot) { + public ArrayList createSwarm(float soot, int meta) { Random rand = new Random(); ArrayList currentSpawns = new ArrayList<>(); @@ -121,7 +141,9 @@ public class BlockGlyphidSpawner extends BlockContainer { int[] chance = glyphid.getValue(); int adjustedChance = (int) (chance[0] + (chance[1] - chance[1] / Math.max(((soot + 1) / 3), 1))); if(rand.nextInt(100) <= adjustedChance) { - currentSpawns.add(glyphid.getKey().apply(worldObj)); + EntityGlyphid entity = glyphid.getKey().apply(worldObj); + if(meta == 1) entity.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED); + currentSpawns.add(entity); } } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index f6c0ae768..a4dc08af5 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -80,8 +80,14 @@ public class EntityGlyphid extends EntityMob { /** Yeah, fuck, whatever, anything goes now */ protected EntityWaypoint taskWaypoint = null; + //subtypes public static final int TYPE_NORMAL = 0; public static final int TYPE_INFECTED = 1; + + //data watcher keys + public static final int DW_WALL = 16; + public static final int DW_ARMOR = 17; + public static final int DW_SUBTYPE = 18; public EntityGlyphid(World world) { super(world); @@ -99,9 +105,9 @@ public class EntityGlyphid extends EntityMob { @Override protected void entityInit() { super.entityInit(); - this.dataWatcher.addObject(16, new Byte((byte) 0)); //wall climbing - this.dataWatcher.addObject(17, new Byte((byte) 0b11111)); //armor - this.dataWatcher.addObject(18, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc) + this.dataWatcher.addObject(DW_WALL, new Byte((byte) 0)); //wall climbing + this.dataWatcher.addObject(DW_ARMOR, new Byte((byte) 0b11111)); //armor + this.dataWatcher.addObject(DW_SUBTYPE, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc) } @Override @@ -282,7 +288,7 @@ public class EntityGlyphid extends EntityMob { public boolean attackEntityFrom(DamageSource source, float amount) { if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote && !source.isFireDamage() && !source.getDamageType().equals(ModDamageSource.s_cryolator)) { - byte armor = this.dataWatcher.getWatchableObjectByte(17); + byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); if(armor != 0) { //if at least one bit of armor is present @@ -322,7 +328,7 @@ public class EntityGlyphid extends EntityMob { public float calculateDamage(float amount) { - byte armor = this.dataWatcher.getWatchableObjectByte(17); + byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); int divisor = 1; for(int i = 0; i < 5; i++) { @@ -341,7 +347,7 @@ public class EntityGlyphid extends EntityMob { } public void breakOffArmor() { - byte armor = this.dataWatcher.getWatchableObjectByte(17); + byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); List indices = Arrays.asList(0, 1, 2, 3, 4); Collections.shuffle(indices); @@ -350,7 +356,7 @@ public class EntityGlyphid extends EntityMob { if((armor & bit) > 0) { armor &= ~bit; armor = (byte) (armor & 0b11111); - this.dataWatcher.updateObject(17, armor); + this.dataWatcher.updateObject(DW_ARMOR, armor); worldObj.playSoundAtEntity(this, "mob.zombie.woodbreak", 1.0F, 1.25F); break; } @@ -388,11 +394,11 @@ public class EntityGlyphid extends EntityMob { } public boolean isBesideClimbableBlock() { - return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; + return (this.dataWatcher.getWatchableObjectByte(DW_WALL) & 1) != 0; } public void setBesideClimbableBlock(boolean climbable) { - byte watchable = this.dataWatcher.getWatchableObjectByte(16); + byte watchable = this.dataWatcher.getWatchableObjectByte(DW_WALL); if(climbable) { watchable = (byte) (watchable | 1); @@ -400,7 +406,7 @@ public class EntityGlyphid extends EntityMob { watchable &= -2; } - this.dataWatcher.updateObject(16, Byte.valueOf(watchable)); + this.dataWatcher.updateObject(DW_WALL, Byte.valueOf(watchable)); } @Override @@ -569,7 +575,8 @@ public class EntityGlyphid extends EntityMob { @Override public void writeEntityToNBT(NBTTagCompound nbt) { super.writeEntityToNBT(nbt); - nbt.setByte("armor", this.dataWatcher.getWatchableObjectByte(17)); + nbt.setByte("armor", this.dataWatcher.getWatchableObjectByte(DW_ARMOR)); + nbt.setByte("subtype", this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE)); nbt.setBoolean("hasHome", hasHome); nbt.setInteger("homeX", homeX); @@ -587,7 +594,8 @@ public class EntityGlyphid extends EntityMob { @Override public void readEntityFromNBT(NBTTagCompound nbt) { super.readEntityFromNBT(nbt); - this.dataWatcher.updateObject(17, nbt.getByte("armor")); + this.dataWatcher.updateObject(DW_ARMOR, nbt.getByte("armor")); + this.dataWatcher.updateObject(DW_SUBTYPE, nbt.getByte("subtype")); this.hasHome = nbt.getBoolean("hasHome"); this.homeX = nbt.getInteger("homeX"); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java index 49b0ea4f8..6ad109605 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java @@ -3,6 +3,7 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import net.minecraft.client.model.ModelBase; @@ -13,10 +14,13 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; public class RenderGlyphid extends RenderLiving { + + public static final ResourceLocation glyphid_infested_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_infestation.png"); public RenderGlyphid() { super(new ModelGlyphid(), 1.0F); this.shadowOpaque = 0.0F; + this.setRenderPassModel(this.mainModel); } @Override @@ -24,6 +28,21 @@ public class RenderGlyphid extends RenderLiving { EntityGlyphid glyphid = (EntityGlyphid) entity; return glyphid.getSkin(); } + + @Override + protected int shouldRenderPass(EntityLivingBase entity, int pass, float interp) { + if(pass != 0) { + return -1; + } else { + if(entity.getDataWatcher().getWatchableObjectByte(EntityGlyphid.DW_SUBTYPE) == EntityGlyphid.TYPE_INFECTED) { + this.bindTexture(glyphid_infested_tex); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + return 1; + } + return -1; + } + } public static class ModelGlyphid extends ModelBase { @@ -43,11 +62,20 @@ public class RenderGlyphid extends RenderLiving { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); + this.renderModel(entity, limbSwing); + + GL11.glPopMatrix(); + } + + public void renderModel(Entity entity, float limbSwing) { + + GL11.glPushMatrix(); + double s = ((EntityGlyphid) entity).getScale(); GL11.glScaled(s, s, s); EntityLivingBase living = (EntityLivingBase) entity; - byte armor = living.getDataWatcher().getWatchableObjectByte(17); + byte armor = living.getDataWatcher().getWatchableObjectByte(EntityGlyphid.DW_ARMOR); double walkCycle = limbSwing; diff --git a/src/main/java/com/hbm/world/feature/GlyphidHive.java b/src/main/java/com/hbm/world/feature/GlyphidHive.java index f0ddf5c41..a5e8df06b 100644 --- a/src/main/java/com/hbm/world/feature/GlyphidHive.java +++ b/src/main/java/com/hbm/world/feature/GlyphidHive.java @@ -105,6 +105,7 @@ public class GlyphidHive { public static void generateBigGround(World world, int x, int y, int z, Random rand, boolean openDesign) { int orientation = rand.nextInt(2) + 2; + int overrideMeta = 0; for(int i = 0; i < 11; i++) { for(int j = 0; j < 7; j++) { @@ -115,7 +116,7 @@ public class GlyphidHive { boolean hasWall = !openDesign && (block != orientation && block > 1 && block < 6); if(block == 1 || hasWall) { - world.setBlock(x + i - 5, y + j - 2, z + k - 5, ModBlocks.glyphid_base); + world.setBlock(x + i - 5, y + j - 2, z + k - 5, ModBlocks.glyphid_base, overrideMeta, 2); } else if (block != 0) { world.setBlock(x + i - 5, y + j - 2, z + k - 5, Blocks.air); } @@ -123,7 +124,7 @@ public class GlyphidHive { } } - world.setBlock(x, y - 1, z, ModBlocks.glyphid_spawner); + world.setBlock(x, y - 1, z, ModBlocks.glyphid_spawner, overrideMeta, 2); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 34cd14145..9a561713c 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -508,7 +508,7 @@ death.attack.tauBlast=%1$s lud die XVL1456 zu lange auf und wurde in Stücke ger death.attack.teleporter=%1$s wurde ins Nichts teleportiert. desc.item.rtgHeat=Hitzelevel: %s -desc.gui.rtgBFurnace.desc=Bönitigt mindestens 15 Hitze um zu starten$Je mehr Hitze, desto schneller der Vorgang$Hitze über dem maximalen Level hat keinen Effekt$Gold-198 kann zu Quecksilber zerfallen +desc.gui.rtgBFurnace.desc=Benötigt mindestens 15 Hitze um zu starten$Je mehr Hitze, desto schneller der Vorgang$Hitze über dem maximalen Level hat keinen Effekt$Gold-198 kann zu Quecksilber zerfallen desc.gui.rtgBFurnace.heat=§eHitzelevel: %s desc.gui.rtgBFurnace.pellets=Akzeptierte Pellets: desc.gui.rtgBFurnace.pellet=%s (%s Hitze) @@ -527,6 +527,7 @@ entity.entity_glyphid_blaster.name=Glyphid-Blaster entity.entity_glyphid_bombardier.name=Glyphid-Bombardierer entity.entity_glyphid_brawler.name=Glyphid-Schläger entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_digger.name=Glyphid-Gräber entity.entity_glyphid_nuclear.name=Der dicke Johnson entity.entity_glyphid_scout.name=Glyphid-Späher entity.entity_ntm_fbi.name=FBI Agent diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 720fc1d5f..78f5468b6 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1036,6 +1036,7 @@ entity.entity_glyphid_blaster.name=Glyphid Blaster entity.entity_glyphid_bombardier.name=Glyphid Bombardier entity.entity_glyphid_brawler.name=Glyphid Brawler entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_digger.name=Glyphid Digger entity.entity_glyphid_nuclear.name=Big Man Johnson entity.entity_glyphid_scout.name=Glyphid Scout entity.entity_ntm_fbi.name=FBI Agent diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png deleted file mode 100644 index 541a53c5f56156aede4138dd7d332424794fa7f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)r7UJMf+)l?Omx>Fj}sc&pbu~ZZtET9o(Dj%OG}a{B-o{F_bJPVN3=m71wfF9 zr>%E5W(RcF!QQ6?yHxJkT@!%0=aI)rNsz}0K@`eEmSIXIA3iRyUp8{z9*)okeeyUd z6$|h>4gkCNkf3Omd12o*FrlN1$mtC`(?v1JJ8lU z(p*I=VWcqdk?N1lhEw(j!|VdkHg%eR zPc)j%8d!H7TJJiX@`A>7B~Z@&di5-A=&o}E7V{89A&T8KrKh>)v8`r*3bGB+f*=)O y%P>*w;fNp#v4?&0H|_-NP5U^fhrd)gBjO% zSBSWa4`7?vXt$17tv3wPKFiXe+Ym_)fKg|Hl9g$oWQE)oE-BKPo8;Z-J@?+D`yYEb zBJQGOMO|xrTU`A3Z4gdE6bnSq1DQh%!|a?P=d9KnEZ}s0gGhQbY_T{A$=|*?Ag!)7 zN><#@9$Bq7v|C3gS#kaSi<{QBsCKvKJBDGfUu`#yJ=?rS?B#p*{8PulAniNJBAq#+ z$H|48H1={c!KgFgXZaP8>_|!tNs-O~7^HmwrsXY>&KRc`d(2^G$O+}8Ls7CikoMQZ zAC|$)HMEVwFu-4}Hz-*#%+B|##5kFj!3=`Ev~{hCbY|}B%*Z&M-!PrS`0UcTkk}yG zT?r5EZtq@+O=XBHGesMeFi}1^ccNp(rh*liU(<*Ry$;~)-;|=0><~#^44)N zNc%5}tsmsJz!yo+$oKS*QD?$3m>KUUILlfUY*R($B=%!3M?MwAUQUg6&(>M-^ld#D)dD1aHAx^a*$z zq%OMej!0BdA+1`K3NwmEIK;7mRw|1yL#)nb{NYnV1j(0HfY!0t-N1>V=0X1E`*VyI7{?m$RMNuMC#rgc2 zRlcU>HIb>}!}ODx*3w;d$8Cr|)_VZL=%b zQ7`7p)eVTMNE$HdZ|t0&p5Z$llkvfS3R)bkx)y2M+RKX@mSt`LHIVB%SgU-EOcjG+ zx58E1v@G+AwM9|lJDz#3zutd-IGxRzeZHhox3G6CT3!=-$0GajlizoLh{6uGZJSNK zy}hID``ETkUEBwUTGflIZ{$TzJMaN`(tb?2`c)||ijt%sC64>nh^z_VV zk@VvS#d;r7wZIZ0Fq}rct=%7E+|Vv)P>C`YTT$2{RSTl9v)R0VzpYMA)xyN}*%tCI X^w1Mf)T-^U00000NkvXXu0mjfDq9bo literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_infested.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_infested.png new file mode 100644 index 0000000000000000000000000000000000000000..c4308d58a14300f969bc074dfb12c568671243c7 GIT binary patch literal 423 zcmV;Y0a*TtP)8EYWp^-wKff^wIU+i_l>F|BJ&*nY$0Wx z-QBsai&6^iPAP@^z7Y}jeV_A}Qr;d!0;~ID4BVYaDVpLw@GTw#oaZ^sNh!@ATWeg` z#dl2;*92m=TI+27&fd&;yN*_xU36xTJMB}&2l{9`1g|QRv&R>QO4LbT7 Rdbj`p002ovPDHLkV1gZMxCa0L literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_infested.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_infested.png new file mode 100644 index 0000000000000000000000000000000000000000..93786bc31f6bba1b63eed61356441c1e1be0926a GIT binary patch literal 747 zcmVF|9LGQI&Wtn5ya~2~R4T0Ku!oQeHicG++9+6v^yVc9 z>J(n=kc63p7w1q!2fav#x|m*;{^)ImAf+NyB!Uppw2j>j-;VC6)pS_rMZeRJ-}}Ay z`||mHU(Lw%y8*kAano2aLB8PP`xT}K5&*P6x(vWd-er0qfs_&e$8m^c+%(Cah42mX z1s8yQ^+(uyaZ1(w=s2cnsb0r%0MO*-5CBq2vfYy;dn)X!KY~|UQ}va+i)mWwF~@Pp zxM=_)p;XWFkWyCj(i*jUGypu$V|pNg?^p2s3JZ^uv_HCx+#KRZ=^-^E*Y5^G2-@y7 z1CZ^WRMLwRDWsH2ZkV_BFA^)S^Lns}2teDtW(-}!&^3}h3oMQ{{dZXi0YF1TLzRbL zVP>`pQVS0Y>rb%bb(p55CUy>YVCWiSU9S*AkbZC$fUz!=BF$)dNw&L8vZn&2HSBmD zdoND0INF4vYpmp5TKg?>y^R1wb&J;iMSQ=4X<9@=snY`q?06l2mOd+ZA^rKc%K&We z{8DR;0H$FOZ%nJA20ZzIvu8|{6bF{hviA;=7#=jge^e0f^S z@8#ocZEevx+`*U0uN-JzL(_D8zru+#->MM9si7;Qx<$U=lDJj zcHT;eJ|Ix8y(+q&*sNFEKD-2@;UtJ{r5D)RGC6iL zqUvdwXrL6mA0mWM_HMcm5nAnj&}#RMHNl(kiii>|F!f4l*B&urDcge^v1bE02%Rsc zAq<4rYWD;A+OlKCoDUoUh^mU=oqS;f?ADhTuj%z;)BW9s(}Y6dr{e;xh|yD6K#gmJS;|W^1uuIr( z$`BFQoAZ=)Ifg-R9K<$%C)Xz;+}}L~(lH^Q<3;YQYFm6bPb*wJ4;jZ)YE>H*ho)I7 zEW88k+D;LIh=doZTm})RT4mmJvtET<-!%2)2DQeMMzC2h)j-zZQ>fq^%Aqgr)uL6c z`Bn7*%7CY0Y?J&5EtKkv?|2tpR9RiIK~%NAkr~Et;tsf}u9QqP=#2y2Vn&&r3#kGm zBB%p$DL~a^q-cBL3lkAW!%6V?@RD1piJ!%(qPtq6#!Hn+UNLvazNuq0eUMyNEThtr zSxit9W!F4EaN3pjqB#P@X1xmIl{!^x zGwr1^>$Ir6oW-yW&!TD@$%owq1; zKj%|QU01046t0rG6l)v2fxV{fv}>lTvL>o45IIybx$YEEJL-*F*lN8eBL$;en24-9 z>Q5?kkuWYM40_{$g=Y{1NB4J6!ROaIM#D+j-KF*7i0dQ`4GqR<#do=R%?qfq}}nkHh_U`mYoK0000 Date: Sat, 16 Dec 2023 18:24:43 +0100 Subject: [PATCH 031/376] fancier glyphid hives, maggots --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../com/hbm/blocks/generic/BlockGlyphid.java | 21 ++- .../blocks/generic/BlockGlyphidSpawner.java | 30 +++- .../com/hbm/blocks/generic/BlockLoot.java | 8 - src/main/java/com/hbm/config/MobConfig.java | 46 +++--- .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityGlyphid.java | 41 ++++- .../hbm/entity/mob/EntityGlyphidBehemoth.java | 2 +- .../hbm/entity/mob/EntityGlyphidBlaster.java | 2 +- .../entity/mob/EntityGlyphidBombardier.java | 4 +- .../hbm/entity/mob/EntityGlyphidScout.java | 53 +++---- .../hbm/entity/mob/EntityParasiteMaggot.java | 49 ++++++ .../entity/projectile/EntityBulletBaseNT.java | 4 +- .../com/hbm/items/weapon/ItemDisperser.java | 84 +++++----- src/main/java/com/hbm/lib/HbmWorldGen.java | 8 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../hbm/render/entity/mob/RenderMaggot.java | 28 ++++ .../com/hbm/render/tileentity/RenderLoot.java | 21 ++- .../com/hbm/render/util/RenderInfoSystem.java | 4 +- src/main/java/com/hbm/util/LootGenerator.java | 43 ++++++ .../com/hbm/world/feature/GlyphidHive.java | 143 ++++++++---------- .../hbm/textures/entity/parasite_maggot.png | Bin 0 -> 441 bytes .../items/disperser_canister_overlay.png | Bin 202 -> 154 bytes 23 files changed, 383 insertions(+), 214 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderMaggot.java create mode 100644 src/main/resources/assets/hbm/textures/entity/parasite_maggot.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7196b59c5..91476fd94 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2935,8 +2935,8 @@ public class ModBlocks { GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); - GameRegistry.registerBlock(glyphid_base, glyphid_base.getUnlocalizedName()); - GameRegistry.registerBlock(glyphid_spawner, glyphid_spawner.getUnlocalizedName()); + register(glyphid_base); + register(glyphid_spawner); GameRegistry.registerBlock(moon_turf, moon_turf.getUnlocalizedName()); //Waste diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java index be1613d3a..240356149 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java @@ -1,22 +1,30 @@ package com.hbm.blocks.generic; +import java.util.List; + +import com.hbm.blocks.IBlockMulti; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; -public class BlockGlyphid extends Block { +public class BlockGlyphid extends Block implements IBlockMulti { public IIcon[] iconsStandard = new IIcon[2]; public IIcon[] iconsInfested = new IIcon[2]; public BlockGlyphid(Material mat) { super(mat); + this.setCreativeTab(MainRegistry.blockTab); } @Override @@ -49,4 +57,15 @@ public class BlockGlyphid extends Block { if(meta == 1) return this.iconsInfested; return this.iconsStandard; } + + @Override + public int getSubCount() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < getSubCount(); ++i) list.add(new ItemStack(item, 1, i)); + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index a212e980b..d9ff39bc7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -3,12 +3,14 @@ package com.hbm.blocks.generic; import java.util.*; import java.util.function.Function; +import com.hbm.blocks.IBlockMulti; import com.hbm.config.MobConfig; import com.hbm.entity.mob.*; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import com.hbm.util.Tuple.Pair; import cpw.mods.fml.relauncher.Side; @@ -16,7 +18,9 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -24,12 +28,13 @@ import net.minecraft.util.IIcon; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; -public class BlockGlyphidSpawner extends BlockContainer { +public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti { public IIcon[] icons = new IIcon[2]; public BlockGlyphidSpawner(Material mat) { super(mat); + this.setCreativeTab(MainRegistry.blockTab); } @Override @@ -50,6 +55,17 @@ public class BlockGlyphidSpawner extends BlockContainer { icons[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_infested"); } + @Override + public int getSubCount() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < getSubCount(); ++i) list.add(new ItemStack(item, 1, i)); + } + private static final ArrayList, int[]>> spawnMap = new ArrayList<>(); static { @@ -90,8 +106,7 @@ public class BlockGlyphidSpawner extends BlockContainer { for(Object e : worldObj.loadedEntityList) { if(e instanceof EntityGlyphid) { count++; - //if(count >= MobConfig.spawnMax) - // return; + if(count >= MobConfig.spawnMax) return; } } @@ -134,18 +149,21 @@ public class BlockGlyphidSpawner extends BlockContainer { Random rand = new Random(); ArrayList currentSpawns = new ArrayList<>(); int swarmAmount = (int) Math.min(MobConfig.baseSwarmSize * Math.max(MobConfig.swarmScalingMult * (soot / MobConfig.sootStep), 1), 10); - - while(currentSpawns.size() <= swarmAmount) { + int cap = 100; + + while(currentSpawns.size() <= swarmAmount && cap >= 0) { // (dys)functional programing for(Pair, int[]> glyphid : spawnMap) { int[] chance = glyphid.getValue(); int adjustedChance = (int) (chance[0] + (chance[1] - chance[1] / Math.max(((soot + 1) / 3), 1))); - if(rand.nextInt(100) <= adjustedChance) { + if(soot >= chance[2] && rand.nextInt(100) <= adjustedChance) { EntityGlyphid entity = glyphid.getKey().apply(worldObj); if(meta == 1) entity.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED); currentSpawns.add(entity); } } + + cap--; } return currentSpawns; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockLoot.java b/src/main/java/com/hbm/blocks/generic/BlockLoot.java index db0a966f7..cf949e161 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLoot.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLoot.java @@ -51,14 +51,6 @@ public class BlockLoot extends BlockContainer { @Override public void onBlockAdded(World world, int x, int y, int z) { super.onBlockAdded(world, x, y, z); - - /*TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); - - if(loot != null && loot.items.isEmpty()) { - loot.addItem(new ItemStack(ModItems.gun_lever_action), 0, 0, 0); - }*/ - - //LootGenerator.lootCapStash(world, x, y, z); } @Override diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 2cf744595..14f219193 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -42,14 +42,14 @@ public class MobConfig { public static double swarmScalingMult = 1.2; public static int sootStep = 50; - public static int[] glyphidChance = {50, -40}; - public static int[] brawlerChance = {5, 35}; - public static int[] bombardierChance = {20, -15}; - public static int[] blasterChance = {-15, 40}; - public static int[] diggerChance = {-15, 25}; - public static int[] behemothChance = {-30, 45}; - public static int[] brendaChance = {-50, 60}; - public static int[] johnsonChance = {-50, 60}; + public static int[] glyphidChance = {50, -40, 0}; + public static int[] brawlerChance = {5, 35, 1}; + public static int[] bombardierChance = {20, -15, 1}; + public static int[] blasterChance = {-15, 40, 5}; + public static int[] diggerChance = {-15, 25, 5}; + public static int[] behemothChance = {-30, 45, 10}; + public static int[] brendaChance = {-50, 60, 20}; + public static int[] johnsonChance = {-50, 60, 50}; public static double spawnMax = 50; public static boolean enableInfestation = true; @@ -116,15 +116,11 @@ public class MobConfig { config.addCustomCategoryComment(CATEGORY, "General Glyphid spawn logic configuration\n" + "\n" - + "The chances work in a simple way:\n" - + "The base chance is the stock chance of the bug to spawn within a swarm, unaffected by soot\n" - + "As soot increases, the spawn rate of the bug increases until it reaches a limit determined by the modifier\n" - + "If the default chance is negative, the mob will not spawn by default, and the lower it is,\n" - + "The longer it takes for the modifier to make it positive\n" - + "If the Modifier is negative, the bug will spawn less often in swarms,\n" - + "And its place will be taken over by another one.\n" - + "\n" - + "The formula for glyphid spawning chance is: (chance + (modifier - modifier / (soot/10)))" + + "The first number is the base chance which applies at 0 soot,\n" + + "the second number is the modifier that applies with soot based on the formular below,\n" + + "the third number is a hard minimum of soot for this type to spawn.\n" + + "Negative base chances mean that glyphids won't spawn outright, negative modifiers mean that the type becomes less likely with higher soot.\n" + + "The formula for glyphid spawning chance is: (base chance + (modifier - modifier / max( (soot + 1)/3, 3 )))\n" + "The formula for glyphid swarm scaling is: (baseSwarmSize * Math.max(swarmScalingMult * soot/sootStep, 1))"); @@ -133,14 +129,14 @@ public class MobConfig { sootStep = CommonConfig.createConfigInt(config, CATEGORY, "12.GS03_sootStep", "The soot amount the above multiplier applies to the swarm size", 50); swarmCooldown = CommonConfig.createConfigInt(config, CATEGORY, "12.GS04_swarmCooldown", "How often do glyphid swarms spawn, in seconds", 120) * 20; - glyphidChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC01_glyphidChance", "Base Spawn chance and soot modifier for a glyphid grunt", new int[]{50, -45}); - brawlerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC02_brawlerChance", "Base Spawn chance and soot modifier for a glyphid brawler", new int[]{10, 30}); - bombardierChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC03_bombardierChance", "Base Spawn chance and soot modifier for a glyphid bombardier", new int[]{20, -15}); - blasterChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC04_blasterChance", "Base Spawn chance and soot modifier for a glyphid blaster", new int[]{-5, 40}); - diggerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC05_diggerChance", "Base Spawn chance and soot modifier for a glyphid digger", new int[]{-15, 25}); - behemothChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC06_behemothChance", "Base Spawn chance and soot modifier for a glyphid behemoth", new int[]{-30, 45}); - brendaChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC07_brendaChance", "Base Spawn chance and soot modifier for a glyphid brenda", new int[]{-50, 60}); - johnsonChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC08_johnsonChance", "Base Spawn chance and soot modifier for Big Man Johnson", new int[]{-50, 60}); + glyphidChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC01_glyphidChance", "Base Spawn chance and soot modifier for a glyphid grunt", new int[]{50, -45, 0}); + brawlerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC02_brawlerChance", "Base Spawn chance and soot modifier for a glyphid brawler", new int[]{10, 30, 1}); + bombardierChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC03_bombardierChance", "Base Spawn chance and soot modifier for a glyphid bombardier", new int[]{20, -15, 1}); + blasterChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC04_blasterChance", "Base Spawn chance and soot modifier for a glyphid blaster", new int[]{-5, 40, 5}); + diggerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC05_diggerChance", "Base Spawn chance and soot modifier for a glyphid digger", new int[]{-15, 25, 5}); + behemothChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC06_behemothChance", "Base Spawn chance and soot modifier for a glyphid behemoth", new int[]{-30, 45, 10}); + brendaChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC07_brendaChance", "Base Spawn chance and soot modifier for a glyphid brenda", new int[]{-50, 60, 20}); + johnsonChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC08_johnsonChance", "Base Spawn chance and soot modifier for Big Man Johnson", new int[]{-50, 60, 50}); String rampantDesc = "Rampant Mode changes glyphid behavior and spawning to be more aggressive, changes include:\n" + "\n" diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index c40457abc..6884483a8 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -267,6 +267,7 @@ public class EntityMappings { addMob(EntityGlyphidNuclear.class, "entity_glyphid_nuclear", 0x267F00, 0xA0A0A0); addMob(EntityGlyphidDigger.class, "entity_glyphid_digger", 0x273038, 0x724A21); addMob(EntityPlasticBag.class, "entity_plastic_bag", 0xd0d0d0, 0x808080); + addMob(EntityParasiteMaggot.class, "entity_parasite_maggot", 0xd0d0d0, 0x808080); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index a4dc08af5..86d783cd6 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -174,8 +174,8 @@ public class EntityGlyphid extends EntityMob { protected Entity findPlayerToAttack() { if(this.isPotionActive(Potion.blindness)) return null; - EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() && getCurrentTask() != 0 ? 128D : 16D); - return entityplayer != null && (MobConfig.rampantExtendedTargetting || canEntityBeSeen(entityplayer)) ? entityplayer : null; + EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); + return entityplayer; } @Override @@ -193,7 +193,7 @@ public class EntityGlyphid extends EntityMob { if (!this.hasPath()) { // hell yeah!! - if (useExtendedTargeting() && this.entityToAttack != null) { + if(useExtendedTargeting() && this.entityToAttack != null) { this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, true, true)); } else if (getCurrentTask() != TASK_IDLE) { @@ -281,11 +281,15 @@ public class EntityGlyphid extends EntityMob { @Override protected boolean canDespawn() { - return ticksExisted > 3500 && entityToAttack == null && getCurrentTask() == TASK_IDLE; + return entityToAttack == null && getCurrentTask() == TASK_IDLE && this.ticksExisted > 100; } @Override public boolean attackEntityFrom(DamageSource source, float amount) { + + if(source.getEntity() instanceof EntityGlyphid) { + return false; + } if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote && !source.isFireDamage() && !source.getDamageType().equals(ModDamageSource.s_cryolator)) { byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); @@ -318,8 +322,29 @@ public class EntityGlyphid extends EntityMob { if(this.isPotionActive(HbmPotion.phosphorus.getId())){ amount *= 1.5F; } + + boolean alive = this.getHealth() > 0; + boolean wasAttacked = super.attackEntityFrom(source, amount); + + if(alive && this.getHealth() <= 0) { + if(this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED) { - return super.attackEntityFrom(source, amount); + int j = 2 + this.rand.nextInt(3); + + for(int k = 0; k < j; ++k) { + float f = ((float) (k % 2) - 0.5F) * 0.5F; + float f1 = ((float) (k / 2) - 0.5F) * 0.5F; + EntityParasiteMaggot maggot = new EntityParasiteMaggot(worldObj); + maggot.setLocationAndAngles(this.posX + (double) f, this.posY + 0.5D, this.posZ + (double) f1, this.rand.nextFloat() * 360.0F, 0.0F); + maggot.motionX = f; + maggot.motionZ = f1; + maggot.velocityChanged = true; + this.worldObj.spawnEntityInWorld(maggot); + } + } + } + + return wasAttacked; } public boolean isArmorBroken(float amount) { @@ -437,16 +462,16 @@ public class EntityGlyphid extends EntityMob { * @param waypoint The waypoint for the task, can be null */ public void setCurrentTask(int task, @Nullable EntityWaypoint waypoint){ - this.currentTask = task; + this.currentTask = task; this.taskWaypoint = waypoint; this.hasWaypoint = waypoint != null; - if (taskWaypoint != null) { + if(taskWaypoint != null) { taskX = (int) taskWaypoint.posX; taskY = (int) taskWaypoint.posY; taskZ = (int) taskWaypoint.posZ; - if (taskWaypoint.highPriority) { + if(taskWaypoint.highPriority) { this.entityToAttack = null; this.setPathToEntity(null); } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java index fbc138cde..27f2595d9 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java @@ -85,7 +85,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { public void acidAttack(){ - if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase) { + if(!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < 20) { this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 20, 6)); EntityChemical chem = new EntityChemical(worldObj, this); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java index 4c2e649a8..ef2ccde88 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java @@ -65,7 +65,7 @@ public class EntityGlyphidBlaster extends EntityGlyphidBombardier { @Override public int getBombCount() { - return 20; + return 10; } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java index 3b385e363..7fda8206d 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java @@ -44,7 +44,7 @@ public class EntityGlyphidBombardier extends EntityGlyphid { this.lastZ = e.posZ; } - if(this.ticksExisted % 20 == 1) { + if(this.ticksExisted % 60 == 1) { boolean topAttack = rand.nextBoolean(); @@ -95,7 +95,7 @@ public class EntityGlyphidBombardier extends EntityGlyphid { } public int getBombCount() { - return 10; + return 5; } public float getSpreadMult() { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index bd09849ec..7e0378bbd 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -12,6 +12,7 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.*; @@ -119,38 +120,35 @@ public class EntityGlyphidScout extends EntityGlyphid { timer++; if (!worldObj.isRemote && canBuildHiveHere()) { - if(timer == 1) { + if(timer == 1) { - EntityWaypoint additional = new EntityWaypoint(worldObj); - additional.setLocationAndAngles(posX, posY, posZ, 0, 0); - additional.setWaypointType(TASK_IDLE); + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + additional.setWaypointType(TASK_IDLE); - //First, go home and get reinforcements - EntityWaypoint home = new EntityWaypoint(worldObj); - home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); - home.setAdditionalWaypoint(additional); - home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); - home.maxAge = 1200; - home.radius = 6; + // First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); + home.setAdditionalWaypoint(additional); + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + home.maxAge = 1200; + home.radius = 6; - worldObj.spawnEntityInWorld(home); + worldObj.spawnEntityInWorld(home); - this.taskWaypoint = home; - this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 40 * 20, 10)); - communicate(TASK_RETREAT_FOR_REINFORCEMENTS, taskWaypoint); + this.taskWaypoint = home; + this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 40 * 20, 10)); + communicate(TASK_RETREAT_FOR_REINFORCEMENTS, taskWaypoint); - } else if (timer >= 5) { + } else if(timer >= 5) { - worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); - GlyphidHive.generateBigGround(worldObj, - (int) Math.floor(posX), - (int) Math.floor(posY), - (int) Math.floor(posZ), rand, true); - this.setDead(); + worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); + GlyphidHive.generateSmall(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand, this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) != TYPE_NORMAL, false); + this.setDead(); - } else { - communicate(TASK_FOLLOW, taskWaypoint); - } + } else { + communicate(TASK_FOLLOW, taskWaypoint); + } } } } @@ -307,8 +305,11 @@ public class EntityGlyphidScout extends EntityGlyphid { ); } - //TODO: replace that with some actual directions protected Vec3 getPlayerTargetDirection() { + EntityPlayer player = worldObj.getClosestPlayerToEntity(this, 300); + if(player != null) { + return Vec3.createVectorHelper(player.posX, player.posY, player.posZ); + } return PollutionHandler.targetCoords; } } diff --git a/src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java b/src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java new file mode 100644 index 000000000..40cc3b003 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java @@ -0,0 +1,49 @@ +package com.hbm.entity.mob; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.world.World; + +public class EntityParasiteMaggot extends EntityMob { + + public EntityParasiteMaggot(World world) { + super(world); + this.setSize(0.3F, 0.7F); + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.0D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2.0D); + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + protected Entity findPlayerToAttack() { + return this.worldObj.getClosestVulnerablePlayerToEntity(this, 16); + } + + @Override + public void onUpdate() { + this.renderYawOffset = this.rotationYaw; + super.onUpdate(); + } + + @Override + protected boolean isValidLightLevel() { + return true; + } + + @Override + public EnumCreatureAttribute getCreatureAttribute() { + return EnumCreatureAttribute.ARTHROPOD; + } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index d8ee0f4f3..bfaaf8b31 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -378,8 +378,8 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, living.posX, living.posY + living.height - head, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); worldObj.playSoundEffect(victim.posX, victim.posY, victim.posZ, "mob.zombie.woodbreak", 1.0F, 0.95F + rand.nextFloat() * 0.2F); - } - } + } + } } } diff --git a/src/main/java/com/hbm/items/weapon/ItemDisperser.java b/src/main/java/com/hbm/items/weapon/ItemDisperser.java index 9971ee3e7..682ff3eec 100644 --- a/src/main/java/com/hbm/items/weapon/ItemDisperser.java +++ b/src/main/java/com/hbm/items/weapon/ItemDisperser.java @@ -18,59 +18,57 @@ import net.minecraft.world.World; import java.util.List; public class ItemDisperser extends ItemFluidTank { - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if (!player.capabilities.isCreativeMode) { - --stack.stackSize; - } + if(!player.capabilities.isCreativeMode) { + --stack.stackSize; + } - world.playSoundAtEntity(player, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + world.playSoundAtEntity(player, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - if (!world.isRemote) { + if(!world.isRemote) { - EntityDisperserCanister canister = new EntityDisperserCanister(world, player); + EntityDisperserCanister canister = new EntityDisperserCanister(world, player); + canister.setType(Item.getIdFromItem(this)); + canister.setFluid(stack.getItemDamage()); + world.spawnEntityInWorld(canister); + } + return stack; + } - canister.setType(Item.getIdFromItem(this)); - canister.setFluid(stack.getItemDamage()); - world.spawnEntityInWorld(canister); + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { - } + FluidType[] order = Fluids.getInNiceOrder(); - return stack; - } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tabs, List list) { + for(int i = 1; i < order.length; ++i) { + FluidType type = order[i]; + int id = type.getID(); + if(type.isDispersable() && this == ModItems.disperser_canister) { + list.add(new ItemStack(item, 1, id)); + } else if(type == Fluids.PHEROMONE || type == Fluids.SULFURIC_ACID && this == ModItems.glyphid_gland) { + list.add(new ItemStack(item, 1, id)); + } - FluidType[] order = Fluids.getInNiceOrder(); + } + } - for(int i = 1; i < order.length; ++i) { - FluidType type = order[i]; - int id = type.getID(); - if(type.isDispersable() && this == ModItems.disperser_canister) { - list.add(new ItemStack(item, 1, id)); - } else if (type == Fluids.PHEROMONE || type == Fluids.SULFURIC_ACID && this == ModItems.glyphid_gland) { - list.add(new ItemStack(item, 1, id)); - } + @Override + public String getItemStackDisplayName(ItemStack stack) { - } - } + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); - @Override - public String getItemStackDisplayName(ItemStack stack) { + s = this == ModItems.glyphid_gland ? s1 + " " + s : s + " " + s1; + return s; + } - String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); - - s = this == ModItems.glyphid_gland ? s1 + " " + s : s + " " + s1 ; - return s; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister p_94581_1_) { - super.registerIcons(p_94581_1_); - this.overlayIcon = this == ModItems.disperser_canister ? p_94581_1_.registerIcon("hbm:disperser_canister_overlay") : p_94581_1_.registerIcon("hbm:fluid_identifier_overlay"); - } + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister p_94581_1_) { + super.registerIcons(p_94581_1_); + this.overlayIcon = this == ModItems.disperser_canister ? p_94581_1_.registerIcon("hbm:disperser_canister_overlay") : p_94581_1_.registerIcon("hbm:fluid_identifier_overlay"); + } } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index ea38eed02..d4bb78bc6 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -229,7 +229,13 @@ public class HbmWorldGen implements IWorldGenerator { int x = i + rand.nextInt(16) + 8; int z = j + rand.nextInt(16) + 8; int y = world.getHeightValue(x, z); - if(world.getBlock(x, y - 1, z).isNormalCube()) GlyphidHive.generateBigGround(world, x, y, z, rand, false); + + for(int k = 3; k >= -1; k--) { + if(world.getBlock(x, y - 1 + k, z).isNormalCube()) { + GlyphidHive.generateSmall(world, x, y + k, z, rand, rand.nextInt(10) == 0, true); + break; + } + } } if(biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 3d82a99ed..dcb6e842c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -764,6 +764,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear()); + RenderingRegistry.registerEntityRenderingHandler(EntityParasiteMaggot.class, new RenderMaggot()); RenderingRegistry.registerEntityRenderingHandler(EntityFBIDrone.class, new RenderDrone()); RenderingRegistry.registerEntityRenderingHandler(EntityPlasticBag.class, new RenderPlasticBag()); RenderingRegistry.registerEntityRenderingHandler(EntityPigeon.class, new RenderPigeon(new ModelPigeon(), 0.3F)); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderMaggot.java b/src/main/java/com/hbm/render/entity/mob/RenderMaggot.java new file mode 100644 index 000000000..6fa0184cc --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderMaggot.java @@ -0,0 +1,28 @@ +package com.hbm.render.entity.mob; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.model.ModelSilverfish; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ResourceLocation; + +public class RenderMaggot extends RenderLiving { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/parasite_maggot.png"); + + public RenderMaggot() { + super(new ModelSilverfish(), 0.3F); + } + + @Override + protected float getDeathMaxRotation(EntityLivingBase entity) { + return 180.0F; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return texture; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index 1813bb7d7..125ebb617 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -1,6 +1,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.items.ModItems; @@ -82,16 +83,20 @@ public class RenderLoot extends TileEntitySpecialRenderer { protected ModelLeverAction shotgun; private void renderShotgun() { - - if(shotgun == null) - shotgun = new ModelLeverAction(); - GL11.glScaled(0.25, 0.25, 0.25); - GL11.glTranslated(3, 0.0625, 2); - GL11.glRotated(-25, 0, 1, 0); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glTranslated(1, 0, 0); + GL11.glRotated(25, 0, 1, 0); GL11.glRotated(90, 1, 0, 0); - bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverAction.png")); - shotgun.render(null, 0F, 0F, 0F, 0F, 0F, 0.0625F); + GL11.glRotated(90, 0, 1, 0); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + bindTexture(ResourceManager.ff_wood); + ResourceManager.ff_maresleg.renderPart("Grip"); + bindTexture(ResourceManager.ff_gun_bright); + ResourceManager.ff_maresleg.renderPart("Gun"); + ResourceManager.ff_maresleg.renderPart("Lever"); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); } private void renderStandardItem(ItemStack stack) { diff --git a/src/main/java/com/hbm/render/util/RenderInfoSystem.java b/src/main/java/com/hbm/render/util/RenderInfoSystem.java index da618d194..94f7760d2 100644 --- a/src/main/java/com/hbm/render/util/RenderInfoSystem.java +++ b/src/main/java/com/hbm/render/util/RenderInfoSystem.java @@ -44,7 +44,7 @@ public class RenderInfoSystem { } } - @SubscribeEvent + @SubscribeEvent(receiveCanceled = true) public void onOverlayRender(RenderGameOverlayEvent.Pre event) { if(event.type != ElementType.CROSSHAIRS) @@ -80,7 +80,7 @@ public class RenderInfoSystem { int side = pX + 5 + longest; int height = messages.size() * 10 + pZ + 2; int z = 0; - + GL11.glDisable(GL11.GL_TEXTURE_2D); Tessellator tess = Tessellator.instance; tess.startDrawingQuads(); diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index 69b0af7f5..537796427 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -8,6 +8,7 @@ import com.hbm.items.ModItems; import com.hbm.items.special.ItemBookLore; import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -140,4 +141,46 @@ public class LootGenerator { } } } + + public static void lootBones(World world, int x, int y, int z) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + + int limit = world.rand.nextInt(3) + 3; + for(int i = 0; i < limit; i++) { + addItemWithDeviation(loot, world.rand, new ItemStack(Items.bone), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + } + } + } + + public static void lootGlyphidHive(World world, int x, int y, int z) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + + int limit = world.rand.nextInt(3) + 3; + for(int i = 0; i < limit; i++) { + + ItemStack stack = new ItemStack(ModItems.ammo_12gauge, 4); + + switch(world.rand.nextInt(11)) { + case 0: stack = new ItemStack(ModItems.steel_plate); break; + case 1: stack = new ItemStack(ModItems.gun_lever_action); break; + case 2: stack = new ItemStack(ModItems.grenade_if_generic); break; + case 3: + case 4: stack = new ItemStack(ModItems.bottle_nuka, 1 + world.rand.nextInt(2)); break; + case 5: + case 6: stack = new ItemStack(ModItems.ingot_steel, 3 + world.rand.nextInt(10)); break; + case 7: stack = new ItemStack(ModItems.steel_pickaxe); break; + case 8: stack = new ItemStack(ModItems.gas_mask_m65); break; + case 9: stack = new ItemStack(ModItems.ammo_20gauge, 8); break; + } + + addItemWithDeviation(loot, world.rand, stack, world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + } + } + } } diff --git a/src/main/java/com/hbm/world/feature/GlyphidHive.java b/src/main/java/com/hbm/world/feature/GlyphidHive.java index a5e8df06b..f615b6519 100644 --- a/src/main/java/com/hbm/world/feature/GlyphidHive.java +++ b/src/main/java/com/hbm/world/feature/GlyphidHive.java @@ -3,130 +3,117 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.util.LootGenerator; import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntitySkull; import net.minecraft.world.World; public class GlyphidHive { - public static final int[][][] schematicBigGround = new int[][][] { + public static final int[][][] schematicSmall = new int[][][] { { {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, - }, - { - {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,1,9,9,9,9,9,1,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, }, { {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,3,3,3,0,0,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,3,1,9,9,9,9,9,1,2,0}, - {0,3,9,9,9,9,9,9,9,2,0}, - {0,3,1,9,9,9,9,9,1,2,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,0,0,2,2,2,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, - }, - { - {0,0,0,0,0,3,0,0,0,0,0}, - {0,0,0,0,3,3,3,0,0,0,0}, - {0,0,0,1,3,9,3,1,0,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,3,3,9,9,9,9,9,2,2,0}, - {3,3,9,9,9,9,9,9,9,2,2}, - {0,3,3,9,9,9,9,9,2,2,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,0,1,2,9,2,1,0,0,0}, - {0,0,0,0,2,2,2,0,0,0,0}, - {0,0,0,0,0,2,0,0,0,0,0}, - }, - { - {0,0,0,0,3,3,3,0,0,0,0}, - {0,0,0,1,3,3,3,1,0,0,0}, - {0,0,1,1,3,9,3,1,1,0,0}, - {0,1,1,1,9,9,0,1,1,1,0}, - {3,3,3,9,9,9,9,9,2,2,2}, - {3,3,9,9,9,9,9,9,9,2,2}, - {3,3,3,9,9,9,9,9,2,2,2}, - {0,1,1,1,9,9,9,1,1,1,0}, - {0,0,1,1,2,9,2,1,1,0,0}, - {0,0,0,1,2,2,2,1,0,0,0}, - {0,0,0,0,2,2,2,0,0,0,0}, - }, - { {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,1,1,1,1,1,0,0,0}, {0,0,1,1,1,1,1,1,1,0,0}, - {0,1,1,1,1,1,1,1,1,1,0}, - {1,1,1,1,1,1,1,1,1,1,1}, - {1,1,1,1,1,1,1,1,1,1,1}, - {1,1,1,1,1,1,1,1,1,1,1}, - {0,1,1,1,1,1,1,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, {0,0,1,1,1,1,1,1,1,0,0}, {0,0,0,1,1,1,1,1,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, }, { {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,1,1,1,3,3,3,1,1,1,0}, + {0,1,1,1,3,3,3,1,1,1,0}, + {0,1,1,1,3,3,3,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,1,1,2,2,2,1,1,0,0}, + {0,1,1,2,2,2,2,2,1,1,0}, + {0,1,1,2,2,2,2,2,1,1,0}, + {0,1,1,2,2,2,2,2,1,1,0}, + {0,0,1,1,2,2,2,1,1,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, {0,0,1,1,1,1,1,1,1,0,0}, {0,1,1,1,1,1,1,1,1,1,0}, {0,1,1,1,1,1,1,1,1,1,0}, {0,1,1,1,1,1,1,1,1,1,0}, {0,0,1,1,1,1,1,1,1,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, } }; - public static void generateBigGround(World world, int x, int y, int z, Random rand, boolean openDesign) { - - int orientation = rand.nextInt(2) + 2; - int overrideMeta = 0; + public static void generateSmall(World world, int x, int y, int z, Random rand, boolean infected, boolean loot) { + int overrideMeta = infected ? 1 : 0; for(int i = 0; i < 11; i++) { - for(int j = 0; j < 7; j++) { + for(int j = 0; j < 5; j++) { for(int k = 0; k < 11; k++) { - int block = schematicBigGround[6 - j][i][k]; - - boolean hasWall = !openDesign && (block != orientation && block > 1 && block < 6); - - if(block == 1 || hasWall) { - world.setBlock(x + i - 5, y + j - 2, z + k - 5, ModBlocks.glyphid_base, overrideMeta, 2); - } else if (block != 0) { - world.setBlock(x + i - 5, y + j - 2, z + k - 5, Blocks.air); + int block = schematicSmall[4 - j][i][k]; + int iX = x + i - 5; + int iY = y + j - 2; + int iZ = z + k - 5; + + switch(block) { + case 1: world.setBlock(iX, iY, iZ, ModBlocks.glyphid_base, overrideMeta, 2); break; + case 2: world.setBlock(iX, iY, iZ, rand.nextInt(3) == 0 ? ModBlocks.glyphid_spawner : ModBlocks.glyphid_base, overrideMeta, 2); break; + case 3: + int r = rand.nextInt(3); + if(r == 0) { + world.setBlock(iX, iY, iZ, Blocks.skull, 1, 3); + TileEntitySkull skull = (TileEntitySkull) world.getTileEntity(iX, iY, iZ); + if(skull != null) skull.func_145903_a(rand.nextInt(16)); + } else if(r == 1) { + world.setBlock(iX, iY, z + k - 5, ModBlocks.deco_loot, 0, 2); + LootGenerator.lootBones(world, iX, iY, iZ); + } else if(r == 2) { + if(loot) { + world.setBlock(iX, iY, iZ, ModBlocks.deco_loot, 0, 2); + LootGenerator.lootGlyphidHive(world, iX, iY, iZ); + } else { + world.setBlock(iX, iY, iZ, ModBlocks.glyphid_base, overrideMeta, 2); + } + } + break; } } } } - - world.setBlock(x, y - 1, z, ModBlocks.glyphid_spawner, overrideMeta, 2); - } - } - diff --git a/src/main/resources/assets/hbm/textures/entity/parasite_maggot.png b/src/main/resources/assets/hbm/textures/entity/parasite_maggot.png new file mode 100644 index 0000000000000000000000000000000000000000..9bc94381b07fd409381bc3ab4c1663b4d9954fda GIT binary patch literal 441 zcmV;q0Y?6bP)nl>AdDagBPfdu*^1}uCFbkpNuaGV z*qYycXjFlHnVZtX7~0F=&`~-J=~Bi7)Wxu`WArdI1X`=WrG>i)Uj^zN7t^8ljnJjt j1Tmc71U(*)$7y~6-Gd4XsJqi}00000NkvXXu0mjf`9#V+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png b/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png index 2fdf3d9419511af0d49b291a3a4d4f413c184177..1dcba8865d84680baf53bdba24401e16103f8d94 100644 GIT binary patch delta 137 zcmX@bIE!(DWIY=L1B3kM|A|0~rP#?cgaZg_I8r)*{6J3^#}JF&w|yIV4>)izdzvNk zJ^L=T?2E*bt}hek=`ULHTiej?X3l4QmF|?idiU3;q=%P%KhAp~#7ML!WtnHz=f&K| oZcfrsx^-WS;i~WbniH%!=M849-1Yx7&~OG%S3j3^PD}|+0Ab2DaR2}S delta 185 zcmbQmc#3g?WIZzj1A~Sxe=v|@EDmyaVpw-h<|UBBlJ4m1$iT3%pZiZDE0E6<;1l9{ z^ytz5|Nq~+cMm8q?c94okh+o}zhIysgM-$}FF-zLfk$L90|VcF5N5Ps4ORgPntQr9 zhG+z@?J?wIFyLTf{Qo~aShRheu3C|iqQ;|3=NU|TJf&9Y&eMFuu;9W}%Z1#(L)d=5 bvhDC_Jjrx5Wpl)2pcxFFu6{1-oD!M<3voUb From 5af5c6c861c316b229e63f38d6cb4fd8f004a201 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 17 Dec 2023 17:42:42 +0100 Subject: [PATCH 032/376] more shit to clean up --- .../com/hbm/blocks/generic/BlockGlyphid.java | 6 + .../blocks/generic/BlockGlyphidSpawner.java | 6 +- src/main/java/com/hbm/config/MobConfig.java | 4 - .../java/com/hbm/config/RadiationConfig.java | 4 - .../java/com/hbm/entity/EntityMappings.java | 2 +- .../grenade/EntityDisperserCanister.java | 111 +++++++++--------- .../hbm/entity/grenade/EntityGrenadeBase.java | 27 ++--- .../com/hbm/entity/mob/EntityGlyphid.java | 20 +++- .../hbm/entity/mob/EntityGlyphidNuclear.java | 26 +++- .../handler/pollution/PollutionHandler.java | 10 +- .../java/com/hbm/inventory/fluid/Fluids.java | 12 +- src/main/java/com/hbm/items/ModItems.java | 4 +- .../com/hbm/items/weapon/ItemDisperser.java | 3 +- .../projectile/RenderGenericGrenade.java | 60 ++++++---- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + 16 files changed, 173 insertions(+), 124 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java index 240356149..e94c67f14 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java @@ -1,6 +1,7 @@ package com.hbm.blocks.generic; import java.util.List; +import java.util.Random; import com.hbm.blocks.IBlockMulti; import com.hbm.lib.RefStrings; @@ -27,6 +28,11 @@ public class BlockGlyphid extends Block implements IBlockMulti { this.setCreativeTab(MainRegistry.blockTab); } + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + return null; + } + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index d9ff39bc7..e4d07db08 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -110,7 +110,7 @@ public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti { } } - List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 9, yCoord + 1, zCoord - 9, xCoord + 10, yCoord + 8, zCoord + 10)); + List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 5, yCoord + 1, zCoord - 5, xCoord + 6, yCoord + 7, zCoord + 6)); float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); if(list.size() <= 3) { @@ -122,7 +122,9 @@ public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti { } if(!initialSpawn && worldObj.rand.nextInt(MobConfig.scoutSwarmSpawnChance + 1) == 0 && soot >= MobConfig.scoutThreshold) { - trySpawnEntity(new EntityGlyphidScout(worldObj)); + EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); + if(this.getBlockMetadata() == 1) scout.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED); + trySpawnEntity(scout); } initialSpawn = false; diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 14f219193..7f9d45c9d 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -170,14 +170,10 @@ public class MobConfig { rampantGlyphidGuidance = true; scoutSwarmSpawnChance = 1; scoutThreshold = 0.1; - RadiationConfig.pollutionSpreadThreshold = 25; if(pollutionMult == 1) { pollutionMult = 2; - RadiationConfig.pollutionSpreadEfficiency = 0.2 / pollutionMult; } - else RadiationConfig.pollutionSpreadEfficiency = 0.1 / pollutionMult; RadiationConfig.sootFogThreshold *= pollutionMult; - } } } diff --git a/src/main/java/com/hbm/config/RadiationConfig.java b/src/main/java/com/hbm/config/RadiationConfig.java index 11498ab0b..83cf7a10d 100644 --- a/src/main/java/com/hbm/config/RadiationConfig.java +++ b/src/main/java/com/hbm/config/RadiationConfig.java @@ -32,8 +32,6 @@ public class RadiationConfig { public static double sootFogThreshold = 35D; public static double sootFogDivisor = 120D; public static double smokeStackSootMult = 0.8; - public static int pollutionSpreadThreshold = 15; - public static double pollutionSpreadEfficiency = 0.05D; public static void loadFromConfig(Configuration config) { @@ -72,7 +70,5 @@ public class RadiationConfig { sootFogThreshold = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_06_sootFogThreshold", "How much soot is required for smog to become visible", 35D); sootFogDivisor = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_07_sootFogDivisor", "The divisor for smog, higher numbers will require more soot for the same smog density", 120D); smokeStackSootMult = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_08_smokeStackSootMult", "How much does smokestack multiply soot by, with decimal values reducing the soot", 0.8); - pollutionSpreadThreshold = CommonConfig.createConfigInt(config, CATEGORY_POL, "POL_09_pollutionSpreadThreshold", "The amount of soot required for it to be spread to nearby chunks, causes it to concentrate more", 15); - pollutionSpreadEfficiency = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_10_pollutionSpreadEfficiency", "How much soot will be spread to nearby chunks at once (percentage), values higher than 0.05 may cause infinite feedback loop of soot", 0.05); } } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 6884483a8..6e25d2040 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -234,7 +234,7 @@ public class EntityMappings { addEntity(TrainCargoTramTrailer.class, "entity_ntm_cargo_tram_trailer", 250, false); addEntity(TrainTunnelBore.class, "entity_ntm_tunnel_bore", 250, false); - addEntity(EntityDisperserCanister.class, "entity_disperser", 250, false); + addEntity(EntityDisperserCanister.class, "entity_disperser", 250); addEntity(EntityWaypoint.class, "entity_waypoint", 250, false); addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); diff --git a/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java b/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java index a3ff8f6f8..3316c8015 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java +++ b/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java @@ -3,74 +3,73 @@ package com.hbm.entity.grenade; import com.hbm.entity.effect.EntityMist; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.weapon.ItemDisperser; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class EntityDisperserCanister extends EntityGrenadeBase { - public EntityDisperserCanister(World p_i1773_1_) { - super(p_i1773_1_); - } + + public EntityDisperserCanister(World p_i1773_1_) { + super(p_i1773_1_); + } - public EntityDisperserCanister(World p_i1774_1_, EntityLivingBase p_i1774_2_) { - super(p_i1774_1_, p_i1774_2_); - } - public EntityDisperserCanister(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } + public EntityDisperserCanister(World p_i1774_1_, EntityLivingBase p_i1774_2_) { + super(p_i1774_1_, p_i1774_2_); + } - public EntityDisperserCanister setFluid(int id){ - this.dataWatcher.updateObject(12, id); - return this; - } - @Override - protected void entityInit() { - this.dataWatcher.addObject(12, 0); - this.dataWatcher.addObject(13, 0); - } - public EntityDisperserCanister setType(int id){ - this.dataWatcher.updateObject(13, id); - return this; - } + public EntityDisperserCanister(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { + super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + } - public FluidType getFluid() { - return Fluids.fromID(this.dataWatcher.getWatchableObjectInt(12)); - } - public Item getType() { - return Item.getItemById(this.dataWatcher.getWatchableObjectInt(13)); - } - @Override - public void explode() { - if (!worldObj.isRemote) { - EntityMist mist = new EntityMist(worldObj); - mist.setType(getFluid()); - mist.setPosition(posX, posY, posZ); - mist.setArea(10, 5); - mist.setDuration(80); - worldObj.spawnEntityInWorld(mist); - } - } + public EntityDisperserCanister setFluid(int id) { + this.dataWatcher.updateObject(12, id); + return this; + } - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setInteger("fluid", this.dataWatcher.getWatchableObjectInt(12)); - nbt.setInteger("item", this.dataWatcher.getWatchableObjectInt(13)); - } + @Override + protected void entityInit() { + this.dataWatcher.addObject(12, 0); + this.dataWatcher.addObject(13, 0); + } - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.dataWatcher.updateObject(12, nbt.getInteger("fluid")); - this.dataWatcher.updateObject(13, nbt.getInteger("item")); + public EntityDisperserCanister setType(int id) { + this.dataWatcher.updateObject(13, id); + return this; + } - } + public FluidType getFluid() { + return Fluids.fromID(this.dataWatcher.getWatchableObjectInt(12)); + } + public Item getType() { + return Item.getItemById(this.dataWatcher.getWatchableObjectInt(13)); + } + @Override + public void explode() { + if(!worldObj.isRemote) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(getFluid()); + mist.setPosition(posX, posY, posZ); + mist.setArea(10, 5); + mist.setDuration(80); + worldObj.spawnEntityInWorld(mist); + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("fluid", this.dataWatcher.getWatchableObjectInt(12)); + nbt.setInteger("item", this.dataWatcher.getWatchableObjectInt(13)); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(12, nbt.getInteger("fluid")); + this.dataWatcher.updateObject(13, nbt.getInteger("item")); + + } } - - - diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java index 9b0062987..03b16f48c 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java @@ -13,6 +13,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; +@Deprecated public abstract class EntityGrenadeBase extends EntityThrowable { public EntityGrenadeBase(World p_i1773_1_) { @@ -31,24 +32,20 @@ public abstract class EntityGrenadeBase extends EntityThrowable { public void onUpdate() { super.onUpdate(); - - this.prevRotationPitch = this.rotationPitch; - - this.rotationPitch -= Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() * 25; - - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } + this.prevRotationPitch = this.rotationPitch; + this.rotationPitch -= Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() * 25; + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } + while(this.rotationYaw - this.prevRotationYaw < -180.0F) { + this.prevRotationYaw -= 360.0F; + } - this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { + this.prevRotationYaw += 360.0F; + } + + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 86d783cd6..ba5d41f5e 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -19,6 +19,7 @@ import com.hbm.main.ResourceManager; import com.hbm.potion.HbmPotion; import net.minecraft.block.Block; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.monster.EntityMob; @@ -30,6 +31,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.*; import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.EnumDifficulty; @@ -317,6 +319,8 @@ public class EntityGlyphid extends EntityMob { amount *= 1.5F; } else if(source == ModDamageSource.acid || source.equals(new DamageSource(ModDamageSource.s_acid))){ amount = 0; + } else if(source == DamageSource.inWall) { + amount *= 15F; } if(this.isPotionActive(HbmPotion.phosphorus.getId())){ @@ -327,7 +331,7 @@ public class EntityGlyphid extends EntityMob { boolean wasAttacked = super.attackEntityFrom(source, amount); if(alive && this.getHealth() <= 0) { - if(this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED) { + if(doesInfectedSpawnMaggots() && this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED) { int j = 2 + this.rand.nextInt(3); @@ -346,6 +350,10 @@ public class EntityGlyphid extends EntityMob { return wasAttacked; } + + public boolean doesInfectedSpawnMaggots() { + return true; + } public boolean isArmorBroken(float amount) { return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.6, 2), 100); @@ -435,10 +443,16 @@ public class EntityGlyphid extends EntityMob { } @Override - public boolean attackEntityAsMob(Entity victum) { + public boolean attackEntityAsMob(Entity victim) { if(this.isSwingInProgress) return false; this.swingItem(); - return super.attackEntityAsMob(victum); + + if(this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED && victim instanceof EntityLivingBase) { + ((EntityLivingBase) victim).addPotionEffect(new PotionEffect(Potion.poison.id, 100, 2)); + ((EntityLivingBase) victim).addPotionEffect(new PotionEffect(Potion.confusion.id, 100, 0)); + } + + return super.attackEntityAsMob(victim); } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java index e68c5311f..b8342bf6f 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -122,6 +122,11 @@ public class EntityGlyphidNuclear extends EntityGlyphid { return 10F; } + @Override + public boolean doesInfectedSpawnMaggots() { + return false; + } + public boolean hasWaypoint = false; @Override protected void onDeathUpdate() { @@ -148,10 +153,25 @@ public class EntityGlyphidNuclear extends EntityGlyphid { if(this.deathTicks == 100) { if(!worldObj.isRemote) { - ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); - vnt.setBlockAllocator(new BlockAllocatorStandard(24)); - vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); + + if(this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED) { + int j = 15 + this.rand.nextInt(6); + for(int k = 0; k < j; ++k) { + float f = ((float) (k % 2) - 0.5F) * 0.5F; + float f1 = ((float) (k / 2) - 0.5F) * 0.5F; + EntityParasiteMaggot maggot = new EntityParasiteMaggot(worldObj); + maggot.setLocationAndAngles(this.posX + (double) f, this.posY + 0.5D, this.posZ + (double) f1, this.rand.nextFloat() * 360.0F, 0.0F); + maggot.motionX = f; + maggot.motionZ = f1; + maggot.velocityChanged = true; + this.worldObj.spawnEntityInWorld(maggot); + } + } else { + vnt.setBlockAllocator(new BlockAllocatorStandard(24)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); + } + vnt.setEntityProcessor(new EntityProcessorStandard()); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.explode(); diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 9255062ef..28cd279c4 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -180,8 +180,6 @@ public class PollutionHandler { if(event.side == Side.SERVER && event.phase == Phase.END) { - int spreadThreshold = RadiationConfig.pollutionSpreadThreshold; - double spreadEff = RadiationConfig.pollutionSpreadEfficiency; eggTimer++; if(eggTimer < 60) return; eggTimer = 0; @@ -200,11 +198,11 @@ public class PollutionHandler { int P = PollutionType.POISON.ordinal(); /* CALCULATION */ - if(data.pollution[S] > spreadThreshold) { - pollutionForNeightbors[S] = (float) (data.pollution[S] * spreadEff); - data.pollution[S] *= 1-spreadEff*4; + if(data.pollution[S] > 15) { + pollutionForNeightbors[S] = (float) (data.pollution[S] * 0.05F); + data.pollution[S] *= 0.8F; } else { - data.pollution[S] *= 0.8; + data.pollution[S] *= 0.99F; } data.pollution[H] *= 0.9995F; diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b2efa5781..d4dd8544b 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -325,12 +325,12 @@ public class Fluids { SMOKE_LEADED = new FluidType("SMOKE_LEADED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); SMOKE_POISON = new FluidType("SMOKE_POISON", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); HELIUM4 = new FluidType("HELIUM4", 0xE54B0A, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); - HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); - SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID); - SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID); - THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); - THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, new FT_Corrosive(65)); - THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); + HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID, VISCOUS); + SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID, VISCOUS); + SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID, VISCOUS); + THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); + THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); + THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(1)); PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(2)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 826915238..72651c636 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -936,8 +936,8 @@ public class ModItems { public static Item fluid_barrel_empty; public static Item fluid_barrel_infinite; - public static Item disperser_canister; public static Item disperser_canister_empty; + public static Item disperser_canister; public static Item glyphid_gland; public static Item glyphid_gland_empty; @@ -4650,8 +4650,8 @@ public class ModItems { fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); + disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); - disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":disperser_canister"); glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); glyphid_gland_empty = new Item().setUnlocalizedName("glyphid_gland_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); diff --git a/src/main/java/com/hbm/items/weapon/ItemDisperser.java b/src/main/java/com/hbm/items/weapon/ItemDisperser.java index 682ff3eec..7f06f07e1 100644 --- a/src/main/java/com/hbm/items/weapon/ItemDisperser.java +++ b/src/main/java/com/hbm/items/weapon/ItemDisperser.java @@ -18,6 +18,7 @@ import net.minecraft.world.World; import java.util.List; public class ItemDisperser extends ItemFluidTank { + @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { @@ -59,7 +60,7 @@ public class ItemDisperser extends ItemFluidTank { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); s = this == ModItems.glyphid_gland ? s1 + " " + s : s + " " + s1; return s; diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java b/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java index 01ff7f5c7..06ecc70fa 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java @@ -1,11 +1,11 @@ package com.hbm.render.entity.projectile; import com.hbm.entity.grenade.EntityDisperserCanister; -import net.minecraft.item.Item; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import com.hbm.entity.grenade.IGenericGrenade; +import com.hbm.inventory.fluid.FluidType; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; @@ -18,26 +18,44 @@ public class RenderGenericGrenade extends Render { @Override public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { - IIcon iicon; - if(entity instanceof EntityDisperserCanister){ - EntityDisperserCanister canister = (EntityDisperserCanister) entity; - iicon = canister.getType().getIconFromDamage(canister.getFluid().getID()); - } else { - IGenericGrenade grenade = (IGenericGrenade) entity; - iicon = grenade.getGrenade().getIconFromDamage(0); - } - - if(iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - this.bindEntityTexture(entity); - Tessellator tessellator = Tessellator.instance; - - this.renderItem(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); + + boolean disperser = entity instanceof EntityDisperserCanister; + + for(int i = 0; i < (disperser ? 2 : 1); i++) { + + IIcon iicon; + if(disperser){ + EntityDisperserCanister canister = (EntityDisperserCanister) entity; + FluidType fluid = canister.getFluid(); + iicon = canister.getType().getIconFromDamageForRenderPass(fluid.getID(), i); + + if(i == 1) { + int hex = fluid.getColor(); + int r = (hex & 0xFF0000) >> 16; + int g = (hex & 0xFF00) >> 8; + int b = (hex & 0xFF); + GL11.glColor3b((byte) (r / 2), (byte) (g / 2), (byte) (b / 2)); + } + + } else { + IGenericGrenade grenade = (IGenericGrenade) entity; + iicon = grenade.getGrenade().getIconFromDamage(i); + } + + if(iicon != null) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glScalef(0.5F, 0.5F, 0.5F); + this.bindEntityTexture(entity); + Tessellator tessellator = Tessellator.instance; + + this.renderItem(tessellator, iicon); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + + GL11.glColor3f(1F, 1F, 1F); } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 9a561713c..24112073e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -541,6 +541,7 @@ entity.entity_mob_nuclear_creeper.name=Nuklearer Creeper entity.entity_mob_phosgene_creeper.name=Phosgen-Creeper entity.entity_mob_tainted_creeper.name=Verseuchter Creeper entity.entity_mob_volatile_creeper.name=Instabiler Creeper +entity.entity_parasite_maggot.name=Parasitische Made entity.entity_pigeon.name=Taube entity.entity_plastic_bag.name=Plastiktüte entity.entity_taint_crab.name=Verseuchte Krabbe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 78f5468b6..088d36302 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1050,6 +1050,7 @@ entity.entity_mob_nuclear_creeper.name=Nuclear Creeper entity.entity_mob_phosgene_creeper.name=Phosgene Creeper entity.entity_mob_tainted_creeper.name=Tainted Creeper entity.entity_mob_volatile_creeper.name=Volatile Creeper +entity.entity_parasite_maggot.name=Parasitic Maggot entity.entity_pigeon.name=Pigeon entity.entity_plastic_bag.name=Plastic Bag entity.entity_taint_crab.name=Taint Crab From 0d2ab053163bbb5a42cbdfe16b921431341c67fc Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 17 Dec 2023 19:42:52 +0100 Subject: [PATCH 033/376] some more shit idk --- changelog | 78 +++++++------------ gradle.properties | 2 +- .../java/com/hbm/crafting/WeaponRecipes.java | 3 +- .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../com/hbm/items/tool/ItemFusionCore.java | 48 ++++++------ src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../machine/TileEntityMachineIGenerator.java | 24 ++---- 7 files changed, 65 insertions(+), 94 deletions(-) diff --git a/changelog b/changelog index 902ab1ad0..2052ac7a5 100644 --- a/changelog +++ b/changelog @@ -1,55 +1,33 @@ ## Added -* Doors! - * Your favorites from 1.12, the 7 remaining doors have finally been ported - * Thanks to KoblizekXD for biting the bullet -* Rubber boat - * Made from latex or synthetic rubber - * A much less jankier alternative to the vanilla boat. Rotations are silky smooth and done via the strafe keys instead of based on the player's orientation - * Won't break from ramming into blocks - * Faster than a regular boat, but will decelerate quicker when there's nobody sitting in it, preventing the boat from drifting off too far when empty -* Exposure chamber - * Now performs the particle transmutation recipes that were previously done in the crafting table - * Stylish as hell -* Decoy missile - * A cheap tier 1 missile that shows up on radar screens as tier 4 (eg. nuclear) missiles -* Printing press stamps - * 8 different stamps for printing certain pages - * If a meteor dungeon safe is generated without a black book inside, it will generate two random stamps instead - * With all 8 stamps, allows you to print your own black book +* Gylphid pheromones + * Used by certain glyphids, killing those allows for the pheromone glands to be harvested + * By mixing the pheromone with blood and medicine, it can be modified to extend its positive effects to non-glyphid entities +* Disperser canisters + * Throwable like grenades, will cause a small AoE effect based on the fluid + * Effectively a gas grenade, allows phosgene and mustard gas to be used directly + * Hot things like hot coolant or steam are especially effective ## Changed -* Updated russian localization -* Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high -* Custom missiles are now launchable using the radar -* NTM's structures should no longer spawn in dimensions besides the overworld. Ores will still generate, assuming the config option is set. -* Decreased M1tty's radiation resistance - * It's really damn cheap, what did you expect -* M1tty's helmet now acts like a protective mask -* Most non-custom missiles except tier 0s are now assembled in the arc welder - * Crafting complexity has been reduced, the recipes only need the three major components without any extra loose plates -* Non-custom missiles have been slightly buffed - * Explosions are now slightly larger and they use the new cross-detection entity damage code which still affects entities behind small hills that would otherwise be shielded - * Explosions now have a 2x larger entity damage radius -* Updated the digiminer recipe for mekanism compat -* Added config options to the ground water pumps -* Missile parts such as non-custom thrusters and fuselages are now made in the arc welder, recipe ingredients have been adjusted as well -* Null grenades now have a slightly larger radius, should no longer wipe playerdata and require UNDEFINED to make -* Added some breedable material to BFB PWR fuel rods, meaning that the recycling recipes now actually yield a net positive instead of being a massive waste of time -* The RBMK control panel has been upgraded - * Right.clicking the color buttons will now assign the color to the selected control rods - * There's now a new button that allows to cycle through compressor settings on RBMK steam channels - * The flux display is now functional. It will display the flux curve of the last 30 seconds, as well as labels for the total flux level. - * With the color assigning buttons and the flux display finished, the console is now finally complete -* Compressing blood at 4 PU now turns it into crude oil at a ratio of 2:1 -* Increased the cap for the overdrive upgrade in acidizers, tier 2 should now yield the proper amount and tier 3 should now be better than tier 2 -* The tooltip of valid upgrades now changes when a compatible machine GUI is open +* Reworked glyphids + * Hives are no longer open, instead they are much flatter with multiple spawners inside + * Naturally spawning hives now spawn with some loot inside + * Spawners now place glyphids nearby instead of on top, preventing them from suffocating instantly + * Glyphids no longer spawn every second, instead they spawn in waves + * More config option for spawning behavior + * A new config option for rampant mode which makes glyphids more aggressive, scouts expand directly towards players and all glyphids able to dig away obstacles + * A dedicated glyphid for digging also exists outside of rampant mode + * Glyphid meat can now be processed into resources + * Glyphid behemoths now have an acid attack and create a gas effect on death + * Larger glyphids can now destroy lanterns + * Infested glyphids + * 10% of all glyphid hives will be infested + * Infested glyphids are roughly equal, but apply a poison effect and nausea when attacking + * When killed, they will drop maggots that attack the player + * Infested scouts will also create infested hives +* Glyphid hive blocks no longer drop when broken +* The industrial generator no longer has an exponential modifier for power generation, which means it no longer produces several times more power than any other generator +* The igen by default only burns with 50% efficiency, which can be raised back to 100% with water and even to 125% with lubricant, making it slightly better when lubed than the fluid burner ## Fixed -* Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate -* Fixed RBMK heat exchangers being able to use heatable fluids that don't have heat exchanger efficiency defined like liquid sodium, heavy water and thorium salt -* Fixed RBMK heat exchangers not using the heat exchanger efficiency variable to determine cooling power -* Fixed the ballistic gauntlet spawning a client-side ghost bullet that doesn't move or despawn -* Fixed bug where different custom machine cores would merge in a stack when picked up, turning them into the same type -* Fixed radar screen blips being visible through the back of the model -* Fixed desh crate's last half of slots preventing radiation entirely -* Fixed large mining drill shift-clicking \ No newline at end of file +* Fixed the info system not being visible with a gun equipped +* Fixed a potential crash with suit batteries \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index f4e7c2b0a..d52227a0b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4809H1 +mod_build_number=4816 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 0ed6e8a9c..111c9a169 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -99,7 +99,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mirv, 1), new Object[] { "LLL", "WFW", "SSS", 'S', STEEL.plate(), 'L', PB.plate(), 'W', ModItems.wire_gold, 'F', ModItems.gun_fatman }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ANY_RUBBER.ingot(), 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1, AmmoFatman.BALEFIRE.ordinal()), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', IRON.plate(), 'I', STEEL.plate(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', STEEL.ingot(), 'S', ANY_PLASTIC.ingot(), 'G', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uboinik, 1), new Object[] { "IIM", "SPW", 'P', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'S', KEY_STICK, 'M', ModItems.mechanism_revolver_2 }); @@ -365,6 +365,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_pink_cloud), new Object[] { " S ", "ECE", " E ", 'S', ModItems.powder_spark_mix, 'E', ModItems.powder_magic, 'C', ModItems.grenade_cloud }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.nuclear_waste_pearl), new Object[] { "WWW", "WFW", "WWW", 'W', ModItems.nuclear_waste_tiny, 'F', ModBlocks.block_fallout }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_kyiv), new Object[] { ModItems.canister_napalm, ModItems.bottle2_empty, ModItems.rag }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.disperser_canister_empty, 4), new Object[] { " P ", "PGP", " P ", 'P', ANY_HARDPLASTIC.ingot(), 'G', ModBlocks.glass_boron }); //Sticks of explosives CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite }); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index d4dd8544b..edc8be8f0 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -272,7 +272,7 @@ public class Fluids { UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS); //acetylene burns as hot as satan's asshole SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS); XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, LEADED); GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, LEADED); COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, LEADED); diff --git a/src/main/java/com/hbm/items/tool/ItemFusionCore.java b/src/main/java/com/hbm/items/tool/ItemFusionCore.java index b99f8fa16..afa388fa5 100644 --- a/src/main/java/com/hbm/items/tool/ItemFusionCore.java +++ b/src/main/java/com/hbm/items/tool/ItemFusionCore.java @@ -23,32 +23,32 @@ public class ItemFusionCore extends Item { @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(ArmorFSB.hasFSBArmorIgnoreCharge(player) && player.inventory.armorInventory[3].getItem() instanceof ArmorFSBPowered) { - - for(ItemStack st : player.inventory.armorInventory) { - - if(st == null) - continue; - - if(st.getItem() instanceof IBatteryItem) { - - long maxcharge = ((IBatteryItem)st.getItem()).getMaxCharge(); - long charge = ((IBatteryItem)st.getItem()).getCharge(st); - long newcharge = Math.min(charge + this.charge, maxcharge); - - ((IBatteryItem)st.getItem()).setCharge(st, newcharge); - } - } - - stack.stackSize--; - - world.playSoundAtEntity(player, "hbm:item.battery", 1.0F, 1.0F); - } - + + if(ArmorFSB.hasFSBArmorIgnoreCharge(player) && player.inventory.armorInventory[2].getItem() instanceof ArmorFSBPowered) { + + for(ItemStack st : player.inventory.armorInventory) { + + if(st == null) + continue; + + if(st.getItem() instanceof IBatteryItem) { + + long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(); + long charge = ((IBatteryItem) st.getItem()).getCharge(st); + long newcharge = Math.min(charge + this.charge, maxcharge); + + ((IBatteryItem) st.getItem()).setCharge(st, newcharge); + } + } + + stack.stackSize--; + + world.playSoundAtEntity(player, "hbm:item.battery", 1.0F, 1.0F); + } + return stack; } - + @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index da9765623..40d84cd27 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4809H1)"; + public static final String VERSION = "1.0.27 BETA (4816)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 141c16d38..7cf0c451f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -61,11 +61,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public static int waterCap = 16000; public static int oilCap = 16000; public static int lubeCap = 4000; - public static int coalGenRate = 20; + public static int coalGenRate = 100; public static double rtgHeatMult = 0.15D; - public static double waterPowerMult = 1.0D; - public static double lubePowerMult = 1.5D; - public static double heatExponent = 1.15D; public static int waterRate = 10; public static int lubeRate = 1; public static long fluidHeatDiv = 1_000L; @@ -81,11 +78,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement waterCap = IConfigurableMachine.grab(obj, "I:waterCap", waterCap); oilCap = IConfigurableMachine.grab(obj, "I:oilCap", oilCap); lubeCap = IConfigurableMachine.grab(obj, "I:lubeCap", lubeCap); - coalGenRate = IConfigurableMachine.grab(obj, "I:solidFuelRate", coalGenRate); + coalGenRate = IConfigurableMachine.grab(obj, "I:solidFuelRate2", coalGenRate); rtgHeatMult = IConfigurableMachine.grab(obj, "D:rtgHeatMult", rtgHeatMult); - waterPowerMult = IConfigurableMachine.grab(obj, "D:waterPowerMult", waterPowerMult); - lubePowerMult = IConfigurableMachine.grab(obj, "D:lubePowerMult", lubePowerMult); - heatExponent = IConfigurableMachine.grab(obj, "D:heatExponent", heatExponent); waterRate = IConfigurableMachine.grab(obj, "I:waterRate", waterRate); lubeRate = IConfigurableMachine.grab(obj, "I:lubeRate", lubeRate); fluidHeatDiv = IConfigurableMachine.grab(obj, "D:fluidHeatDiv", fluidHeatDiv); @@ -97,11 +91,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement writer.name("I:waterCap").value(waterCap); writer.name("I:oilCap").value(oilCap); writer.name("I:lubeCap").value(lubeCap); - writer.name("I:solidFuelRate").value(coalGenRate); + writer.name("I:solidFuelRate2").value(coalGenRate); writer.name("D:rtgHeatMult").value(rtgHeatMult); - writer.name("D:waterPowerMult").value(waterPowerMult); - writer.name("D:lubePowerMult").value(lubePowerMult); - writer.name("D:heatExponent").value(heatExponent); writer.name("I:waterRate").value(waterRate); writer.name("I:lubeRate").value(lubeRate); writer.name("D:fluidHeatDiv").value(fluidHeatDiv); @@ -215,19 +206,20 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement if(this.spin > 0) { - int powerGen = this.spin; + double genMult = 0.5D; + if(this.tanks[0].getFill() >= 10) { - powerGen += this.spin * waterPowerMult; + genMult += 0.5D; this.tanks[0].setFill(this.tanks[0].getFill() - waterRate); } if(this.tanks[2].getFill() >= 1) { - powerGen += this.spin * lubePowerMult; + genMult += 0.25D; this.tanks[2].setFill(this.tanks[2].getFill() - lubeRate); } - this.power += Math.pow(powerGen, heatExponent); + this.power += this.spin * genMult; if(this.power > this.maxPower) this.power = this.maxPower; From c6d43a621527bbf32057590362cb147c247af6ee Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 17 Dec 2023 21:49:38 +0100 Subject: [PATCH 034/376] model fix --- .../resources/assets/hbm/models/armor/no9.obj | 278 ++++++++++-------- 1 file changed, 149 insertions(+), 129 deletions(-) diff --git a/src/main/resources/assets/hbm/models/armor/no9.obj b/src/main/resources/assets/hbm/models/armor/no9.obj index 44aa2277a..ac13e9c9a 100644 --- a/src/main/resources/assets/hbm/models/armor/no9.obj +++ b/src/main/resources/assets/hbm/models/armor/no9.obj @@ -202,6 +202,12 @@ v 0.999989 -9.625004 -6.750004 v 0.999989 -9.375004 -6.750004 v -1.000010 -9.375004 -6.750004 v -1.000011 -9.625004 -6.750004 +v 0.999989 -10.000000 -3.000000 +v -1.000011 -10.000000 -3.000000 +v 0.999989 -10.000000 -4.500000 +v -1.000011 -10.000000 -4.500000 +v 0.999989 -8.500000 -4.500000 +v -1.000011 -8.500000 -4.500000 vt 0.604167 0.444444 vt 0.562500 0.444444 vt 0.541667 0.416667 @@ -334,6 +340,14 @@ vt 0.583333 0.722222 vt 0.750000 0.722222 vt 0.750000 0.555556 vt 0.583333 0.555556 +vt 0.166667 0.388889 +vt 0.250000 0.277778 +vt 0.250000 0.388889 +vt 0.166667 0.277778 +vt 0.250000 0.166667 +vt 0.333333 0.277778 +vt 0.083333 0.277778 +vt 0.166667 0.166667 vt 0.541667 0.361111 vt 0.625000 0.361111 vt 0.562500 0.333333 @@ -623,19 +637,23 @@ f 158/132/11 164/133/11 160/134/11 f 159/135/10 162/131/10 157/136/10 f 160/137/9 161/129/9 159/138/9 f 157/139/13 163/130/13 158/140/13 -f 23/11/9 22/141/9 20/142/9 -f 22/141/9 135/143/9 20/142/9 -f 135/143/9 136/144/9 20/142/9 -f 20/142/9 24/145/9 23/11/9 -f 24/145/9 139/9/9 23/11/9 +f 166/141/9 167/142/9 165/143/9 +f 168/144/25 169/145/25 167/142/25 +f 167/142/10 169/145/10 165/146/10 +f 168/144/11 166/147/11 170/148/11 +f 23/11/9 22/149/9 20/150/9 +f 22/149/9 135/151/9 20/150/9 +f 135/151/9 136/152/9 20/150/9 +f 20/150/9 24/153/9 23/11/9 +f 24/153/9 139/9/9 23/11/9 f 24/12/10 20/18/10 19/13/10 f 25/15/11 21/105/11 22/16/11 -f 20/18/12 136/146/12 134/19/12 -f 26/22/13 19/147/13 21/148/13 -f 19/147/13 134/149/13 21/148/13 -f 134/149/13 133/150/13 21/148/13 -f 21/148/13 25/151/13 26/22/13 -f 25/151/13 138/20/13 26/22/13 +f 20/18/12 136/154/12 134/19/12 +f 26/22/13 19/155/13 21/156/13 +f 19/155/13 134/157/13 21/156/13 +f 134/157/13 133/158/13 21/156/13 +f 21/156/13 25/159/13 26/22/13 +f 25/159/13 138/20/13 26/22/13 f 42/23/14 41/44/14 33/24/14 f 38/26/15 37/46/15 29/27/15 f 39/29/16 40/55/16 32/30/16 @@ -643,7 +661,7 @@ f 35/32/17 36/57/17 28/33/17 f 40/35/18 35/51/18 27/34/18 f 37/37/19 39/50/19 31/31/19 f 33/39/20 41/47/20 38/40/20 -f 34/25/21 28/152/21 36/41/21 +f 34/25/21 28/160/21 36/41/21 f 42/23/11 50/60/11 49/43/11 f 38/26/22 46/73/22 45/45/22 f 41/47/23 49/74/23 46/48/23 @@ -652,139 +670,141 @@ f 35/51/12 40/35/12 48/52/12 f 39/29/10 47/62/10 48/54/10 f 35/32/25 43/67/25 44/56/25 f 42/42/26 36/41/26 44/58/26 -f 50/60/27 54/153/27 53/61/27 -f 47/62/28 51/154/28 52/63/28 -f 51/64/9 53/155/9 54/65/9 +f 50/60/27 54/161/27 53/61/27 +f 47/62/28 51/162/28 52/63/28 +f 51/64/9 53/163/9 54/65/9 f 43/67/29 52/66/29 54/65/29 -f 53/72/33 51/156/33 45/45/33 -f 56/76/11 58/157/11 57/77/11 -f 61/79/10 62/158/10 60/80/10 -f 66/82/35 65/159/35 63/83/35 +f 53/72/33 51/164/33 45/45/33 +f 56/76/11 58/165/11 57/77/11 +f 61/79/10 62/166/10 60/80/10 +f 66/82/35 65/167/35 63/83/35 f 71/85/25 74/89/25 73/86/25 f 68/88/11 73/86/11 74/89/11 f 69/91/10 71/85/10 72/87/10 f 70/93/9 74/89/9 71/85/9 f 67/95/13 72/87/13 73/86/13 -f 122/99/11 120/160/11 130/97/11 -f 120/160/11 118/161/11 130/97/11 -f 118/161/11 132/162/11 130/97/11 -f 130/97/11 128/163/11 126/98/11 -f 126/98/11 124/164/11 122/99/11 -f 131/101/10 117/165/10 119/166/10 -f 119/166/10 121/167/10 131/101/10 -f 121/167/10 123/102/10 131/101/10 -f 123/102/10 125/168/10 127/169/10 -f 127/169/10 129/100/10 123/102/10 -f 134/19/25 136/146/25 135/103/25 +f 122/99/11 120/168/11 130/97/11 +f 120/168/11 118/169/11 130/97/11 +f 118/169/11 132/170/11 130/97/11 +f 130/97/11 128/171/11 126/98/11 +f 126/98/11 124/172/11 122/99/11 +f 131/101/10 117/173/10 119/174/10 +f 119/174/10 121/175/10 131/101/10 +f 121/175/10 123/102/10 131/101/10 +f 123/102/10 125/176/10 127/177/10 +f 127/177/10 129/100/10 123/102/10 +f 134/19/25 136/154/25 135/103/25 f 21/105/26 133/104/26 135/103/26 f 137/106/22 139/110/22 140/107/22 -f 23/17/23 137/170/23 138/109/23 +f 23/17/23 137/178/23 138/109/23 f 24/12/24 26/14/24 140/107/24 -f 142/111/28 144/171/28 143/112/28 -f 143/114/25 144/172/25 148/115/25 +f 142/111/28 144/179/28 143/112/28 +f 143/114/25 144/180/25 148/115/25 f 148/115/36 146/122/36 145/117/36 f 150/118/10 152/123/10 151/119/10 f 147/116/37 145/117/37 141/113/37 -f 144/121/27 142/173/27 146/122/27 +f 144/121/27 142/181/27 146/122/27 f 152/123/25 156/125/25 155/124/25 -f 156/125/11 154/174/11 153/126/11 -f 155/124/13 153/175/13 149/127/13 -f 152/123/9 150/176/9 154/128/9 +f 156/125/11 154/182/11 153/126/11 +f 155/124/13 153/183/13 149/127/13 +f 152/123/9 150/184/9 154/128/9 f 161/129/25 164/133/25 163/130/25 f 158/132/11 163/130/11 164/133/11 f 159/135/10 161/129/10 162/131/10 f 160/137/9 164/133/9 161/129/9 f 157/139/13 162/131/13 163/130/13 +f 166/141/9 168/144/9 167/142/9 +f 168/144/25 170/148/25 169/145/25 s 1 -f 99/177/38 78/178/39 79/179/40 -f 75/180/41 76/181/22 77/182/42 -f 98/183/43 77/182/42 78/178/39 -f 77/184/42 81/185/44 78/186/39 -f 78/186/39 82/187/45 79/188/40 -f 77/184/42 76/181/22 80/189/46 -f 81/190/44 83/191/47 84/192/48 -f 81/190/44 85/193/49 82/194/45 -f 80/195/46 76/181/22 83/191/47 -f 83/196/47 87/197/50 84/198/48 -f 84/198/48 88/199/51 85/200/49 -f 83/196/47 76/181/22 86/201/52 -f 87/202/50 89/203/53 90/204/54 -f 87/202/50 91/205/55 88/206/51 -f 86/207/52 76/181/22 89/203/53 -f 89/208/53 93/209/56 90/210/54 -f 90/210/54 94/211/57 91/212/55 -f 89/208/53 76/181/22 92/213/58 -f 93/214/56 97/215/59 94/216/57 -f 92/217/58 76/181/22 95/218/60 -f 93/214/56 95/218/60 96/219/61 -f 96/220/61 99/221/38 97/222/59 -f 95/223/60 76/181/22 75/224/41 -f 95/223/60 98/225/43 96/220/61 -f 100/226/62 102/227/63 101/228/25 -f 116/229/64 102/227/63 100/226/62 -f 105/230/65 102/231/63 103/232/66 -f 102/231/63 104/233/67 101/228/25 -f 105/234/65 106/235/68 104/236/67 -f 104/236/67 106/235/68 101/228/25 -f 109/237/69 106/238/68 107/239/70 -f 106/238/68 108/240/71 101/228/25 -f 109/241/69 110/242/72 108/243/71 -f 108/243/71 110/242/72 101/228/25 -f 113/244/73 110/245/72 111/246/74 -f 110/245/72 112/247/75 101/228/25 -f 82/248/76 107/249/70 105/234/65 -f 88/250/77 107/239/70 85/251/78 -f 112/252/75 114/253/79 101/228/25 -f 91/254/80 109/241/69 88/255/77 -f 94/256/81 111/246/74 91/257/80 -f 113/258/73 114/253/79 112/252/75 -f 115/259/82 94/260/81 97/261/83 -f 99/262/84 115/263/82 97/264/83 -f 114/265/79 100/266/62 101/228/25 -f 103/267/66 99/268/84 79/269/85 -f 79/270/85 105/230/65 103/232/66 -f 116/271/64 114/265/79 115/263/82 -f 118/272/25 119/273/86 117/274/25 -f 120/275/86 121/276/87 119/273/86 -f 125/277/88 128/278/33 127/279/33 -f 128/278/33 129/280/9 127/279/33 -f 130/281/9 131/282/29 129/280/9 -f 132/283/29 117/274/25 131/282/29 -f 99/177/38 98/183/43 78/178/39 -f 98/183/43 75/180/41 77/182/42 -f 77/184/42 80/189/46 81/185/44 -f 78/186/39 81/185/44 82/187/45 -f 81/190/44 80/195/46 83/191/47 -f 81/190/44 84/192/48 85/193/49 -f 83/196/47 86/201/52 87/197/50 -f 84/198/48 87/197/50 88/199/51 -f 87/202/50 86/207/52 89/203/53 -f 87/202/50 90/204/54 91/205/55 -f 89/208/53 92/213/58 93/209/56 -f 90/210/54 93/209/56 94/211/57 -f 93/214/56 96/219/61 97/215/59 -f 93/214/56 92/217/58 95/218/60 -f 96/220/61 98/225/43 99/221/38 -f 95/223/60 75/224/41 98/225/43 -f 116/229/64 103/267/66 102/227/63 -f 105/230/65 104/233/67 102/231/63 -f 105/234/65 107/249/70 106/235/68 -f 109/237/69 108/240/71 106/238/68 -f 109/241/69 111/284/74 110/242/72 -f 113/244/73 112/247/75 110/245/72 -f 82/248/76 85/285/78 107/249/70 -f 88/250/77 109/237/69 107/239/70 -f 91/254/80 111/284/74 109/241/69 -f 94/256/81 113/244/73 111/246/74 -f 113/258/73 115/259/82 114/253/79 -f 115/259/82 113/258/73 94/260/81 -f 99/262/84 116/271/64 115/263/82 -f 103/267/66 116/229/64 99/268/84 -f 79/270/85 82/286/76 105/230/65 -f 116/271/64 100/266/62 114/265/79 -f 118/272/25 120/275/86 119/273/86 -f 120/275/86 122/287/87 121/276/87 -f 125/277/88 126/288/88 128/278/33 -f 128/278/33 130/281/9 129/280/9 -f 130/281/9 132/283/29 131/282/29 -f 132/283/29 118/272/25 117/274/25 +f 99/185/38 78/186/39 79/187/40 +f 75/188/41 76/189/22 77/190/42 +f 98/191/43 77/190/42 78/186/39 +f 77/192/42 81/193/44 78/194/39 +f 78/194/39 82/195/45 79/196/40 +f 77/192/42 76/189/22 80/197/46 +f 81/198/44 83/199/47 84/200/48 +f 81/198/44 85/201/49 82/202/45 +f 80/203/46 76/189/22 83/199/47 +f 83/204/47 87/205/50 84/206/48 +f 84/206/48 88/207/51 85/208/49 +f 83/204/47 76/189/22 86/209/52 +f 87/210/50 89/211/53 90/212/54 +f 87/210/50 91/213/55 88/214/51 +f 86/215/52 76/189/22 89/211/53 +f 89/216/53 93/217/56 90/218/54 +f 90/218/54 94/219/57 91/220/55 +f 89/216/53 76/189/22 92/221/58 +f 93/222/56 97/223/59 94/224/57 +f 92/225/58 76/189/22 95/226/60 +f 93/222/56 95/226/60 96/227/61 +f 96/228/61 99/229/38 97/230/59 +f 95/231/60 76/189/22 75/232/41 +f 95/231/60 98/233/43 96/228/61 +f 100/234/62 102/235/63 101/236/25 +f 116/237/64 102/235/63 100/234/62 +f 105/238/65 102/239/63 103/240/66 +f 102/239/63 104/241/67 101/236/25 +f 105/242/65 106/243/68 104/244/67 +f 104/244/67 106/243/68 101/236/25 +f 109/245/69 106/246/68 107/247/70 +f 106/246/68 108/248/71 101/236/25 +f 109/249/69 110/250/72 108/251/71 +f 108/251/71 110/250/72 101/236/25 +f 113/252/73 110/253/72 111/254/74 +f 110/253/72 112/255/75 101/236/25 +f 82/256/76 107/257/70 105/242/65 +f 88/258/77 107/247/70 85/259/78 +f 112/260/75 114/261/79 101/236/25 +f 91/262/80 109/249/69 88/263/77 +f 94/264/81 111/254/74 91/265/80 +f 113/266/73 114/261/79 112/260/75 +f 115/267/82 94/268/81 97/269/83 +f 99/270/84 115/271/82 97/272/83 +f 114/273/79 100/274/62 101/236/25 +f 103/275/66 99/276/84 79/277/85 +f 79/278/85 105/238/65 103/240/66 +f 116/279/64 114/273/79 115/271/82 +f 118/280/25 119/281/86 117/282/25 +f 120/283/86 121/284/87 119/281/86 +f 125/285/88 128/286/33 127/287/33 +f 128/286/33 129/288/9 127/287/33 +f 130/289/9 131/290/29 129/288/9 +f 132/291/29 117/282/25 131/290/29 +f 99/185/38 98/191/43 78/186/39 +f 98/191/43 75/188/41 77/190/42 +f 77/192/42 80/197/46 81/193/44 +f 78/194/39 81/193/44 82/195/45 +f 81/198/44 80/203/46 83/199/47 +f 81/198/44 84/200/48 85/201/49 +f 83/204/47 86/209/52 87/205/50 +f 84/206/48 87/205/50 88/207/51 +f 87/210/50 86/215/52 89/211/53 +f 87/210/50 90/212/54 91/213/55 +f 89/216/53 92/221/58 93/217/56 +f 90/218/54 93/217/56 94/219/57 +f 93/222/56 96/227/61 97/223/59 +f 93/222/56 92/225/58 95/226/60 +f 96/228/61 98/233/43 99/229/38 +f 95/231/60 75/232/41 98/233/43 +f 116/237/64 103/275/66 102/235/63 +f 105/238/65 104/241/67 102/239/63 +f 105/242/65 107/257/70 106/243/68 +f 109/245/69 108/248/71 106/246/68 +f 109/249/69 111/292/74 110/250/72 +f 113/252/73 112/255/75 110/253/72 +f 82/256/76 85/293/78 107/257/70 +f 88/258/77 109/245/69 107/247/70 +f 91/262/80 111/292/74 109/249/69 +f 94/264/81 113/252/73 111/254/74 +f 113/266/73 115/267/82 114/261/79 +f 115/267/82 113/266/73 94/268/81 +f 99/270/84 116/279/64 115/271/82 +f 103/275/66 116/237/64 99/276/84 +f 79/278/85 82/294/76 105/238/65 +f 116/279/64 100/274/62 114/273/79 +f 118/280/25 120/283/86 119/281/86 +f 120/283/86 122/295/87 121/284/87 +f 125/285/88 126/296/88 128/286/33 +f 128/286/33 130/289/9 129/288/9 +f 130/289/9 132/291/29 131/290/29 +f 132/291/29 118/280/25 117/282/25 From 65412f0c89e9191c492a3a54359c769e329e885d Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 19 Dec 2023 08:02:11 +0100 Subject: [PATCH 035/376] oop forgot to push this --- .../java/com/hbm/extprop/HbmPlayerProps.java | 6 ++- .../com/hbm/handler/EntityEffectHandler.java | 45 +++++++++++++++++++ .../TileEntityMachineCrystallizer.java | 10 +++++ .../storage/TileEntityMachineFluidTank.java | 10 +++++ 4 files changed, 70 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index f51905229..4f28169c2 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -43,6 +43,8 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public int reputation; + public boolean isOnLadder = false; + public HbmPlayerProps(EntityPlayer player) { this.player = player; } @@ -153,13 +155,14 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public void saveNBTData(NBTTagCompound nbt) { NBTTagCompound props = new NBTTagCompound(); - + props.setBoolean("hasReceivedBook", hasReceivedBook); props.setFloat("shield", shield); props.setFloat("maxShield", maxShield); props.setBoolean("enableBackpack", enableBackpack); props.setBoolean("enableHUD", enableHUD); props.setInteger("reputation", reputation); + props.setBoolean("isOnLadder", isOnLadder); nbt.setTag("HbmPlayerProps", props); } @@ -176,6 +179,7 @@ public class HbmPlayerProps implements IExtendedEntityProperties { this.enableBackpack = props.getBoolean("enableBackpack"); this.enableHUD = props.getBoolean("enableHUD"); this.reputation = props.getInteger("reputation"); + this.isOnLadder = props.getBoolean("isOnLadder"); } } } diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index c38cf5755..296724e2d 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -102,6 +102,51 @@ public class EntityEffectHandler { handleDashing(entity); handlePlinking(entity); + + if(entity instanceof EntityPlayer) handleFauxLadder((EntityPlayer) entity); + } + + private static void handleFauxLadder(EntityPlayer player) { + + HbmPlayerProps props = HbmPlayerProps.getData(player); + + if(props.isOnLadder) { + float f5 = 0.15F; + + if(player.motionX < (double) (-f5)) { + player.motionX = (double) (-f5); + } + + if(player.motionX > (double) f5) { + player.motionX = (double) f5; + } + + if(player.motionZ < (double) (-f5)) { + player.motionZ = (double) (-f5); + } + + if(player.motionZ > (double) f5) { + player.motionZ = (double) f5; + } + + player.fallDistance = 0.0F; + + if(player.motionY < -0.15D) { + player.motionY = -0.15D; + } + + if(player.isSneaking() && player.motionY < 0.0D) { + player.motionY = 0.0D; + } + + if(player.isCollidedHorizontally) { + player.motionY = 0.2D; + } + + props.isOnLadder = false; + + if(!player.worldObj.isRemote) ArmorUtil.resetFlightTime(player); + } } private static void handleContamination(EntityLivingBase entity) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index d91e8f629..bac1b5928 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCrystallizer; import com.hbm.inventory.fluid.Fluids; @@ -111,6 +112,15 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme } } } + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 6.875, zCoord + 1).offset(dir.offsetX * 0.75 + rot.offsetX * 1.25, 0, dir.offsetZ * 0.75 + rot.offsetZ * 1.25)); + + for(EntityPlayer player : players) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.isOnLadder = true; + } } private void updateConnections() { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 3b4e8d261..dc147cbbf 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -4,6 +4,7 @@ import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; @@ -168,6 +169,15 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements this.tank.writeToNBT(data, "t"); this.networkPack(data, 150); } + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 2.875, zCoord + 1).offset(dir.offsetX * 0.5 - rot.offsetX * 2.25, 0, dir.offsetZ * 0.5 - rot.offsetZ * 2.25)); + + for(EntityPlayer player : players) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.isOnLadder = true; + } } /** called when the tank breaks due to hazardous materials or external force, can be used to quickly void part of the tank or spawn a mushroom cloud */ From 6461a4c4157dcde8820745ef73da9fcd696d6cc6 Mon Sep 17 00:00:00 2001 From: Voxelstice Date: Tue, 19 Dec 2023 21:30:20 +0300 Subject: [PATCH 036/376] fix inverted door redstone --- src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 5968d685e..68e49db3f 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -142,9 +142,9 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } PacketDispatcher.wrapper.sendToAllAround(new TEDoorAnimationPacket(xCoord, yCoord, zCoord, state, skinIndex, (byte)(shouldUseBB ? 1 : 0)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 100)); - if(redstonePower == -1 && state == 0){ + if(redstonePower == -1 && state == 1){ tryToggle(-1); - } else if(redstonePower > 0 && state == 1){ + } else if(redstonePower > 0 && state == 0){ tryToggle(-1); } if(redstonePower == -1){ From f953d69ee62653f79537a9c8914302aa023148d8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 20 Dec 2023 16:40:22 +0100 Subject: [PATCH 037/376] spring cleaning --- changelog | 32 +-- src/main/java/com/hbm/blocks/ModBlocks.java | 23 +- .../com/hbm/blocks/generic/BlockRedBrick.java | 52 +++++ .../com/hbm/blocks/generic/DecoBlock.java | 211 ++++++++---------- .../com/hbm/entity/effect/EntityMist.java | 1 - .../hbm/entity/projectile/EntityChemical.java | 1 - .../standard/BlockAllocatorGlyphidDig.java | 1 - .../inventory/recipes/ArcWelderRecipes.java | 4 +- .../inventory/recipes/ChemplantRecipes.java | 1 - .../inventory/transfer/ITransferFilter.java | 11 - .../inventory/transfer/ITransferSource.java | 13 -- .../inventory/transfer/ITransferTarget.java | 11 - .../transfer/TransferSourceSided.java | 13 -- .../transfer/TransferSourceTileEntity.java | 70 ------ .../hbm/inventory/transfer/TransferUtil.java | 15 -- src/main/java/com/hbm/main/ClientProxy.java | 3 +- src/main/java/com/hbm/main/MainRegistry.java | 5 + .../java/com/hbm/packet/AuxGaugePacket.java | 11 - .../hbm/render/item/ItemRenderLibrary.java | 18 +- .../render/tileentity/RenderDecoBlock.java | 28 --- .../java/com/hbm/tileentity/TileMappings.java | 1 - .../hbm/tileentity/deco/TileEntityBomber.java | 41 ---- .../oil/TileEntityMachineLiquefactor.java | 1 - src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/textures/blocks/brick_red.png | Bin 0 -> 768 bytes .../hbm/textures/blocks/brick_red_top.png | Bin 0 -> 519 bytes .../hbm/textures/blocks/brick_red_top_alt.png | Bin 0 -> 533 bytes 28 files changed, 163 insertions(+), 406 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockRedBrick.java delete mode 100644 src/main/java/com/hbm/inventory/transfer/ITransferFilter.java delete mode 100644 src/main/java/com/hbm/inventory/transfer/ITransferSource.java delete mode 100644 src/main/java/com/hbm/inventory/transfer/ITransferTarget.java delete mode 100644 src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java delete mode 100644 src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java delete mode 100644 src/main/java/com/hbm/inventory/transfer/TransferUtil.java delete mode 100644 src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_red.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_red_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_red_top_alt.png diff --git a/changelog b/changelog index 2052ac7a5..3edae6c41 100644 --- a/changelog +++ b/changelog @@ -1,33 +1,9 @@ ## Added -* Gylphid pheromones - * Used by certain glyphids, killing those allows for the pheromone glands to be harvested - * By mixing the pheromone with blood and medicine, it can be modified to extend its positive effects to non-glyphid entities -* Disperser canisters - * Throwable like grenades, will cause a small AoE effect based on the fluid - * Effectively a gas grenade, allows phosgene and mustard gas to be used directly - * Hot things like hot coolant or steam are especially effective ## Changed -* Reworked glyphids - * Hives are no longer open, instead they are much flatter with multiple spawners inside - * Naturally spawning hives now spawn with some loot inside - * Spawners now place glyphids nearby instead of on top, preventing them from suffocating instantly - * Glyphids no longer spawn every second, instead they spawn in waves - * More config option for spawning behavior - * A new config option for rampant mode which makes glyphids more aggressive, scouts expand directly towards players and all glyphids able to dig away obstacles - * A dedicated glyphid for digging also exists outside of rampant mode - * Glyphid meat can now be processed into resources - * Glyphid behemoths now have an acid attack and create a gas effect on death - * Larger glyphids can now destroy lanterns - * Infested glyphids - * 10% of all glyphid hives will be infested - * Infested glyphids are roughly equal, but apply a poison effect and nausea when attacking - * When killed, they will drop maggots that attack the player - * Infested scouts will also create infested hives -* Glyphid hive blocks no longer drop when broken -* The industrial generator no longer has an exponential modifier for power generation, which means it no longer produces several times more power than any other generator -* The igen by default only burns with 50% efficiency, which can be raised back to 100% with water and even to 125% with lubricant, making it slightly better when lubed than the fluid burner +* Adjusted the model for the mining helmet +* The ladders on the acidizer and fluid tanks are now climbable +* Removed those unused blue dungeon bricks ## Fixed -* Fixed the info system not being visible with a gun equipped -* Fixed a potential crash with suit batteries \ No newline at end of file +* Fixed recipe conflict in the arc welder with the medium and large missile fuel tanks \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 91476fd94..587bb4025 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -425,12 +425,8 @@ public class ModBlocks { public static Block brick_jungle_glyph; public static Block brick_jungle_circle; - public static Block brick_dungeon; - public static Block brick_dungeon_flat; - public static Block brick_dungeon_tile; - public static Block brick_dungeon_circle; - public static Block brick_forgotten; + public static Block brick_red; public static Block deco_computer; @@ -595,7 +591,6 @@ public class ModBlocks { public static Block boxcar; public static Block boat; - public static Block bomber; public static Block seal_frame; public static Block seal_controller; @@ -1666,13 +1661,9 @@ public class ModBlocks { brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F); brick_jungle_circle = new BlockBallsSpawner(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); - - brick_dungeon = new BlockGeneric(Material.rock).setBlockName("brick_dungeon").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon"); - brick_dungeon_flat = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_flat").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_flat"); - brick_dungeon_tile = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_tile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_tile"); - brick_dungeon_circle = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_circle"); brick_forgotten = new BlockGeneric(Material.rock).setBlockName("brick_forgotten").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1000000).setBlockTextureName(RefStrings.MODID + ":brick_forgotten"); + brick_red = new BlockRedBrick(Material.rock).setBlockName("brick_red").setResistance(10_000); deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer"); filing_cabinet = new BlockDecoContainer(Material.iron, DecoCabinetEnum.class, true, false, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2271,7 +2262,6 @@ public class ModBlocks { boxcar = new DecoBlock(Material.iron).setBlockName("boxcar").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boxcar"); boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat"); - bomber = new DecoBlock(Material.iron).setBlockName("bomber").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":code"); machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well"); machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); @@ -2886,11 +2876,8 @@ public class ModBlocks { GameRegistry.registerBlock(brick_jungle_trap, ItemTrapBlock.class, brick_jungle_trap.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_glyph, ItemGlyphBlock.class, brick_jungle_glyph.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_circle, brick_jungle_circle.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon, brick_dungeon.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon_flat, brick_dungeon_flat.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon_tile, brick_dungeon_tile.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon_circle, brick_dungeon_circle.getUnlocalizedName()); GameRegistry.registerBlock(brick_forgotten, brick_forgotten.getUnlocalizedName()); + GameRegistry.registerBlock(brick_red, brick_red.getUnlocalizedName()); GameRegistry.registerBlock(deco_computer, ItemBlockBase.class, deco_computer.getUnlocalizedName()); GameRegistry.registerBlock(filing_cabinet, ItemBlockBase.class, filing_cabinet.getUnlocalizedName()); GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName()); @@ -3112,12 +3099,8 @@ public class ModBlocks { //Junk GameRegistry.registerBlock(boxcar, boxcar.getUnlocalizedName()); GameRegistry.registerBlock(boat, boat.getUnlocalizedName()); - GameRegistry.registerBlock(bomber, bomber.getUnlocalizedName()); //Machines - //GameRegistry.registerBlock(observer_off, observer_off.getUnlocalizedName()); - //GameRegistry.registerBlock(observer_on, observer_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_autocrafter, ItemBlockBase.class, machine_autocrafter.getUnlocalizedName()); GameRegistry.registerBlock(anvil_iron, ItemBlockBase.class, anvil_iron.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockRedBrick.java b/src/main/java/com/hbm/blocks/generic/BlockRedBrick.java new file mode 100644 index 000000000..fefb2387d --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockRedBrick.java @@ -0,0 +1,52 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockRedBrick extends Block { + + protected IIcon iconFront; + protected IIcon iconTop; + + public BlockRedBrick(Material material) { + super(material); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":brick_red"); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":brick_red_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_base"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == meta ? (side == 0 || side == 1 ? this.iconTop : this.iconFront) : this.blockIcon; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/DecoBlock.java b/src/main/java/com/hbm/blocks/generic/DecoBlock.java index ee8dbf8be..6d946cc3f 100644 --- a/src/main/java/com/hbm/blocks/generic/DecoBlock.java +++ b/src/main/java/com/hbm/blocks/generic/DecoBlock.java @@ -3,7 +3,6 @@ package com.hbm.blocks.generic; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.tileentity.deco.TileEntityBomber; import com.hbm.tileentity.deco.TileEntityDecoBlock; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -28,17 +27,11 @@ public class DecoBlock extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - - if(this == ModBlocks.bomber) - return new TileEntityBomber(); - - if(this == ModBlocks.steel_scaffold || this == ModBlocks.steel_beam) - return null; - + if(this == ModBlocks.steel_scaffold || this == ModBlocks.steel_beam) return null; return new TileEntityDecoBlock(); } - public static int renderIDBeam = RenderingRegistry.getNextAvailableRenderId(); + public static int renderIDBeam = RenderingRegistry.getNextAvailableRenderId(); @Override public int getRenderType(){ @@ -59,158 +52,136 @@ public class DecoBlock extends BlockContainer { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - if(this == ModBlocks.bomber) - return null; - return Item.getItemFromBlock(this); - } + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return Item.getItemFromBlock(this); + } @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - if(i == 0) - { + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } } @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) - { + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { int te = p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_); - float f = 0.0625F; - - if(this == ModBlocks.steel_wall) - { - switch(te) - { + float f = 0.0625F; + + if(this == ModBlocks.steel_wall) { + switch(te) { case 4: - this.setBlockBounds(14*f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - break; + this.setBlockBounds(14 * f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + break; case 2: - this.setBlockBounds(0.0F, 0.0F, 14*f, 1.0F, 1.0F, 1.0F); - break; + this.setBlockBounds(0.0F, 0.0F, 14 * f, 1.0F, 1.0F, 1.0F); + break; case 5: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 2*f, 1.0F, 1.0F); - break; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 2 * f, 1.0F, 1.0F); + break; case 3: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2*f); - break; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2 * f); + break; } - } - - if(this == ModBlocks.steel_corner) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - - if(this == ModBlocks.steel_roof) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1*f, 1.0F); - } - - if(this == ModBlocks.steel_beam) - { - this.setBlockBounds(7*f, 0.0F, 7*f, 9*f, 1.0F, 9*f); - } - - if(this == ModBlocks.steel_scaffold) - { - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - switch(te) - { + } + + if(this == ModBlocks.steel_corner) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + if(this == ModBlocks.steel_roof) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1 * f, 1.0F); + } + + if(this == ModBlocks.steel_beam) { + this.setBlockBounds(7 * f, 0.0F, 7 * f, 9 * f, 1.0F, 9 * f); + } + + if(this == ModBlocks.steel_scaffold) { + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + switch(te) { case 4: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; + this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); + break; case 2: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + break; case 5: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; + this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); + break; case 3: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + break; } - } - - //this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - + } + + // this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { int te = world.getBlockMetadata(x, y, z); - float f = 0.0625F; - - if(this == ModBlocks.steel_wall) - { - switch(te) - { + float f = 0.0625F; + + if(this == ModBlocks.steel_wall) { + switch(te) { case 4: - this.setBlockBounds(14*f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - break; + this.setBlockBounds(14 * f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + break; case 2: - this.setBlockBounds(0.0F, 0.0F, 14*f, 1.0F, 1.0F, 1.0F); - break; + this.setBlockBounds(0.0F, 0.0F, 14 * f, 1.0F, 1.0F, 1.0F); + break; case 5: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 2*f, 1.0F, 1.0F); - break; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 2 * f, 1.0F, 1.0F); + break; case 3: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2*f); - break; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2 * f); + break; } - } - - if(this == ModBlocks.steel_corner) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - - if(this == ModBlocks.steel_roof) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1*f, 1.0F); - } - - if(this == ModBlocks.steel_beam) - { - this.setBlockBounds(7*f, 0.0F, 7*f, 9*f, 1.0F, 9*f); - } - - if(this == ModBlocks.steel_scaffold) - { - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - switch(te) - { + } + + if(this == ModBlocks.steel_corner) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + if(this == ModBlocks.steel_roof) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1 * f, 1.0F); + } + + if(this == ModBlocks.steel_beam) { + this.setBlockBounds(7 * f, 0.0F, 7 * f, 9 * f, 1.0F, 9 * f); + } + + if(this == ModBlocks.steel_scaffold) { + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + switch(te) { case 4: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; + this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); + break; case 2: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + break; case 5: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; + this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); + break; case 3: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + break; } - } - + } + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } } diff --git a/src/main/java/com/hbm/entity/effect/EntityMist.java b/src/main/java/com/hbm/entity/effect/EntityMist.java index 713ebf06e..0348b4fd2 100644 --- a/src/main/java/com/hbm/entity/effect/EntityMist.java +++ b/src/main/java/com/hbm/entity/effect/EntityMist.java @@ -3,7 +3,6 @@ package com.hbm.entity.effect; import java.util.List; import com.hbm.entity.mob.EntityGlyphid; -import com.hbm.entity.projectile.EntityChemical; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/entity/projectile/EntityChemical.java b/src/main/java/com/hbm/entity/projectile/EntityChemical.java index b6119b8c8..ed30224e6 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChemical.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChemical.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.entity.mob.EntityGlyphid; -import com.hbm.entity.mob.EntityGlyphidBehemoth; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java index 7837c81f2..98adec4a4 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java @@ -1,7 +1,6 @@ package com.hbm.explosion.vanillant.standard; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockGlyphidSpawner; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.IBlockAllocator; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index 180c6981d..e7078796f 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -85,9 +85,9 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_medium), 100, 2_000L, new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 1), new OreDictStack(GRAPHITE.ingot(), 8))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_large), 200, 5_000L, new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.motor, 2), new OreDictStack(OreDictManager.getReflector(), 16))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_small), 60, 1_000L, new OreDictStack(Fluids.ETHANOL.getDict(1_000), 6), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_small), 60, 1_000L, new OreDictStack(Fluids.ETHANOL.getDict(1_000), 6), new OreDictStack(AL.plate(), 6), new OreDictStack(STEEL.plate(), 2))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_medium), 100, 2_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 8), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 12), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 12), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plateCast(), 3))); //Missiles recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_generic), 100, 5_000L, new ComparableStack(ModItems.warhead_generic_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index f14b4bd10..5e7cdbbfa 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -21,7 +21,6 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import cpw.mods.fml.common.Mod; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/inventory/transfer/ITransferFilter.java b/src/main/java/com/hbm/inventory/transfer/ITransferFilter.java deleted file mode 100644 index 8f5e91cae..000000000 --- a/src/main/java/com/hbm/inventory/transfer/ITransferFilter.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface ITransferFilter { - - /** Returns a list of valid ItemStacks that pass the filter and can be added. The returned list is what is added to the target and removed from the source. */ - public List select(List offer); -} diff --git a/src/main/java/com/hbm/inventory/transfer/ITransferSource.java b/src/main/java/com/hbm/inventory/transfer/ITransferSource.java deleted file mode 100644 index 27891800f..000000000 --- a/src/main/java/com/hbm/inventory/transfer/ITransferSource.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface ITransferSource { - - /** Returns a list of ItemStacks accessible from this source */ - public List offer(); - /** Removes the selected ItemStacks */ - public void remove(List toRem); -} diff --git a/src/main/java/com/hbm/inventory/transfer/ITransferTarget.java b/src/main/java/com/hbm/inventory/transfer/ITransferTarget.java deleted file mode 100644 index 28bba3987..000000000 --- a/src/main/java/com/hbm/inventory/transfer/ITransferTarget.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface ITransferTarget { - - /** Adds the selected ItemStacks to the target */ - public void fill(List offer); -} diff --git a/src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java b/src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java deleted file mode 100644 index 8c0dfb998..000000000 --- a/src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.inventory.transfer; - -import net.minecraftforge.common.util.ForgeDirection; - -public abstract class TransferSourceSided implements ITransferSource { - - protected ForgeDirection fromSide; - - public TransferSourceSided fromSide(ForgeDirection side) { - this.fromSide = side; - return this; - } -} diff --git a/src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java b/src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java deleted file mode 100644 index 11a92d06c..000000000 --- a/src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityFurnace; - -public class TransferSourceTileEntity extends TransferSourceSided { - - protected TileEntity tile; - - public TransferSourceTileEntity fromTile(TileEntity tile) { - this.tile = tile; - return this; - } - - @Override - public List offer() { - - List list = new ArrayList(); - - if(tile instanceof ISidedInventory) { - ISidedInventory inventory = (ISidedInventory) tile; - int[] access = masquerade(inventory, fromSide.ordinal()); - - for(int i : access) { - ItemStack stack = inventory.getStackInSlot(i); - - if(stack != null && inventory.canExtractItem(i, stack, fromSide.ordinal())) { - list.add(stack.copy()); - } - } - - return list; - } - - if(tile instanceof IInventory) { - IInventory inventory = (IInventory) tile; - - for(int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack stack = inventory.getStackInSlot(i); - - if(stack != null) { - list.add(stack.copy()); - } - } - - return list; - } - - return list; - } - - public static int[] masquerade(ISidedInventory sided, int side) { - - if(sided instanceof TileEntityFurnace) { - return new int[] {2}; - } - - return sided.getAccessibleSlotsFromSide(side); - } - - @Override - public void remove(List toRem) { - } -} diff --git a/src/main/java/com/hbm/inventory/transfer/TransferUtil.java b/src/main/java/com/hbm/inventory/transfer/TransferUtil.java deleted file mode 100644 index 2ab5c8576..000000000 --- a/src/main/java/com/hbm/inventory/transfer/TransferUtil.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public class TransferUtil { - - public static void transfer(ITransferSource source, ITransferFilter filter, ITransferTarget target) { - - List filtered = filter.select(source.offer()); - source.remove(filtered); - target.fill(filtered); - } -} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index dcb6e842c..453f04adb 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -157,14 +157,13 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTestRender.class, new RenderTestRender()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTestBombAdvanced.class, new RenderTestBombAdvanced()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityObjTester.class, new RendererObjTester()); - //deco + //deco ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoPoleSatelliteReceiver.class, new RenderPoleSatelliteReceiver()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlock.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBroadcaster.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGeiger.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadioRec.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadiobox.class, new RenderDecoBlock()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBomber.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSatDock.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAlt.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltG.class, new RenderDecoBlockAlt()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6b933db58..fd5073c80 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1175,6 +1175,11 @@ public class MainRegistry { ignoreMappings.add("hbm:item.recycled_nuclear"); ignoreMappings.add("hbm:item.recycled_misc"); ignoreMappings.add("hbm:item.gun_bf_ammo"); + ignoreMappings.add("hbm:tile.brick_dungeon"); + ignoreMappings.add("hbm:tile.brick_dungeon_flat"); + ignoreMappings.add("hbm:tile.brick_dungeon_tile"); + ignoreMappings.add("hbm:tile.brick_dungeon_circle"); + ignoreMappings.add("hbm:tile.bomber"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java index 1a9e99d5d..09b5139c8 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/AuxGaugePacket.java @@ -6,7 +6,6 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.bomb.TileEntityCompactLauncher; import com.hbm.tileentity.bomb.TileEntityLaunchTable; import com.hbm.tileentity.bomb.TileEntityNukeN45; -import com.hbm.tileentity.deco.TileEntityBomber; import com.hbm.tileentity.machine.TileEntityAMSBase; import com.hbm.tileentity.machine.TileEntityAMSEmitter; import com.hbm.tileentity.machine.TileEntityAMSLimiter; @@ -108,16 +107,6 @@ public class AuxGaugePacket implements IMessage { if(m.id == 1) selenium.powerCap = m.value; } - if (te instanceof TileEntityBomber) { - TileEntityBomber bomber = (TileEntityBomber)te; - - if(m.id == 0) - bomber.yaw = m.value; - if(m.id == 1) - bomber.pitch = m.value; - if(m.id == 2) - bomber.type = m.value; - } if (te instanceof TileEntityMachineBoiler) { TileEntityMachineBoiler boiler = (TileEntityMachineBoiler)te; diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 0c3a421c2..436a839bd 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -408,19 +408,7 @@ public class ItemRenderLibrary { public void renderCommon() { GL11.glScaled(0.5, 0.5, 0.5); GL11.glTranslatef(0, 0, -3); - bindTexture(ResourceManager.duchessgambit_tex); ResourceManager.duchessgambit.renderAll(); - }}); - - renderers.put(Item.getItemFromBlock(ModBlocks.bomber), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, 1, 0); - GL11.glScaled(2.25, 2.25, 2.25); - } - public void renderCommon() { - GL11.glRotated(-90, 0, 1, 0); - GL11.glScaled(2, 2, 2); - GL11.glTranslatef(0, 0, -0.25F); - bindTexture(ResourceManager.dornier_0_tex); ResourceManager.dornier.renderAll(); + bindTexture(ResourceManager.duchessgambit_tex); ResourceManager.duchessgambit.renderAll(); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_gadget), new ItemRenderBase() { @@ -430,8 +418,8 @@ public class ItemRenderLibrary { } public void renderCommon() { GL11.glTranslated(0.25, 0, 0); - bindTexture(ResourceManager.bomb_gadget_tex); - ResourceManager.bomb_gadget.renderAll(); + bindTexture(ResourceManager.bomb_gadget_tex); + ResourceManager.bomb_gadget.renderAll(); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_boy), new ItemRenderBase() { diff --git a/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java b/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java index 38905a176..00cdc05fa 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java @@ -13,7 +13,6 @@ import com.hbm.render.model.ModelSteelCorner; import com.hbm.render.model.ModelSteelRoof; import com.hbm.render.model.ModelSteelScaffold; import com.hbm.render.model.ModelSteelWall; -import com.hbm.tileentity.deco.TileEntityBomber; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -231,33 +230,6 @@ public class RenderDecoBlock extends TileEntitySpecialRenderer { ResourceManager.duchessgambit.renderAll(); } - if(tileentity instanceof TileEntityBomber) - { - TileEntityBomber bomber = (TileEntityBomber)tileentity; - - float yaw = (float)(((double)bomber.yaw) / 180D * Math.PI); - float pitch = (float)(((double)bomber.pitch) / 180D * Math.PI); - - GL11.glRotatef(yaw - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(90, 0F, 0F, 1F); - GL11.glRotatef(pitch, 0.0F, 0.0F, 1.0F); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glScalef(5F, 5F, 5F); - - int i = bomber.type; - - switch(i) { - case 0: bindTexture(ResourceManager.dornier_0_tex); break; - case 1: bindTexture(ResourceManager.dornier_1_tex); break; - case 2: bindTexture(ResourceManager.dornier_2_tex); break; - default: bindTexture(ResourceManager.dornier_1_tex); break; - } - - ResourceManager.dornier.renderAll(); - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_radar) { GL11.glRotatef(180, 0F, 0F, 1F); GL11.glTranslatef(0, -1.5F, 0); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 0161679ba..b4d3693fa 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -124,7 +124,6 @@ public class TileMappings { put(TileEntityRadioRec.class, "tileentity_radio_receiver"); put(TileEntityVent.class, "tileentity_vent"); put(TileEntityLandmine.class, "tileentity_landmine"); - put(TileEntityBomber.class, "tileentity_bomber"); put(TileEntityMachineKeyForge.class, "tileentity_key_forge"); put(TileEntitySellafield.class, "tileentity_sellafield_core"); put(TileEntityNukeN45.class, "tileentity_n45"); diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java b/src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java deleted file mode 100644 index ea08b8e6a..000000000 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.hbm.tileentity.deco; - -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; - -public class TileEntityBomber extends TileEntity { - - public int yaw; - public int pitch; - public int type = 1; - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, yaw, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, pitch, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, type, 2), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - } - } - - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - - yaw = nbt.getInteger("bomberYaw"); - pitch = nbt.getInteger("bomberPitch"); - type = nbt.getInteger("bomberType"); - } - - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("bomberYaw", yaw); - nbt.setInteger("bomberPitch", pitch); - nbt.setInteger("bomberType", type); - } - -} diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 9516a6dcf..01b59adc8 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -19,7 +19,6 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 24112073e..c5df0b0e1 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3702,6 +3702,7 @@ tile.brick_light.name=Helle Ziegel tile.brick_light_stairs.name=Helle Ziegeltreppe tile.brick_obsidian.name=Obsidianziegel tile.brick_obsidian_stairs.name=Obsidianziegeltreppe +tile.brick_red.name=Ziegel (Roter Raum) tile.brick_slab.brick_asbestos.name=Asbestziegelstufe tile.brick_slab.brick_compound.name=Verbundstufe tile.brick_slab.brick_fire.name=Schamottsteinstufe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 088d36302..3c982082f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4666,6 +4666,7 @@ tile.brick_light.name=Light Bricks tile.brick_light_stairs.name=Light Bricks Stairs tile.brick_obsidian.name=Obsidian Bricks tile.brick_obsidian_stairs.name=Obsidian Brick Stairs +tile.brick_red.name=Red Room Brick tile.brick_slab.brick_asbestos.name=Asbestos Brick Slab tile.brick_slab.brick_compound.name=Compound Mesh Slab tile.brick_slab.brick_fire.name=Firebrick Slab diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_red.png b/src/main/resources/assets/hbm/textures/blocks/brick_red.png new file mode 100644 index 0000000000000000000000000000000000000000..21fc140e01758f7660b96dbcbdcd7dae4651b66c GIT binary patch literal 768 zcmV+b1ONPqP)N{mwQWQ1DSiXGukuVG?OT~OXr)^sV0vSaS zMNuH7q^c^SC?d-;!Z09;BEm4F?|b^br)^uTwfyn?H}lCD9~TL5d3njl#|OUev)}LW zJdZezIUEicV*n6BP?j~S?f7p42AQVsOs8WOiv>amp8k3z3PuPau-2kfOL;sI1ues1 z5kfE@j~S0IK-D-x2&$@K7zQ?*4Of#3!Z6@)P$<>nID!Gg{&-|In-Wb%Os5ls5NERA zm|BD7h$cWXawOUqGzNIze8@IQ&48y?t`#Zkx({&wx zuHFb;pNo;la(PXXBmj&?BhoZwxm+TjpPvE9vWz^>nNFwVc}^V1^cWWNh&YbP^PDWp z5JIq6Ea({T$=W_tI+by2wQI;h#Nq#^n zMNt%-g;vCI%xd)y5{KK{1R(@3FE7kyGlpTHX&SWFgkgyEJda@*2*Z%wZbw}o|L+c< zwI)dt`o8CIIFRQxS6361YH?i`x!rDQniEn=ilRYEhwtkhzHrePJkKM`GODVgu8&mx z2~WAKo0?Onkxg^r&>Sh6mWl6kXpY1|fNDD==O;RjgHkQ0?i{yhT1H4(tr5R6wmpUr yAL%%pjHX2cU;z&Yjo|`Gi)M_6=eQhA55T{J7JWTlc?Ox zBA6v)lXnJXb7;PzFQGDXwUjDzS(75b=H}wM7TYX65ck|TG*Ow6(R3|thj_CMAh@kX zxp*3*O_U~k3}&qpx!AX+3m_XJkj-^1Mg-I1s>KsU%I50z7y$Tln^c);v2UY&P%$D9 zCL@^!6@7*Bt44r*8%zmoF2{|G>?JhFQDOiU?gjFB^ZyJSoiHwIvS(5hR~36Cvx;<( z_e5m|a%&!^l&cmP_R+&Cdf3IJIBKy8Gu8B`)HHpvaVPvJkq#>SVE8sSu4T4v>dw2y zq9{W~a+Q#)g9aU@Xu$WpA&;fgWq~{6okl<20W#wCQV~o;CTuDp!>^Z@c35K1M9`Or zpeT~l#B<3Am@?a+%U?dee}0_j`9xF|5Y5i*ixS?|`R`Oe{{U*)jkDfw*?|B6002ov JPDHLkV1k+q;adOz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_red_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/brick_red_top_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad266bbe7564461ccb5b4319829bc32e0b07795 GIT binary patch literal 533 zcmV+w0_y#VP)IK$>`be4!ou|&7oGPIwZ>kzdB{n3GAoE+xLC_%z^Y=kIJwAfaq+k(0Q??<@YBJcwY|*ZIV~W*C2)L?f4l2Ae z6z{TeF0)8R2uQm7ZqouoMsO`N5F3D*a}wsYiYFkiHC-=>M$&iVZ1{e@jauzyEuaIL zu#}7pKmWYk6+T3u-4lxWo&mBs?|&Wwx?%Zqe&xf{>7M*}x3+*l`z&DSVV*qESIzww XRD+G7^?9yx00000NkvXXu0mjf&I;!~ literal 0 HcmV?d00001 From 29264d206eca268d37e6a8cbd852f776ce6c4249 Mon Sep 17 00:00:00 2001 From: Voxelstice Date: Thu, 21 Dec 2023 14:11:01 +0300 Subject: [PATCH 038/376] insert something funny here --- .../machine/TileEntityPWRController.java | 18 +- .../machine/rbmk/TileEntityRBMKConsole.java | 209 +++++++++++++++++- 2 files changed, 224 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 09ca138b6..03e34f0fe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -528,6 +528,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } + // do some opencomputer stuff + @Override public String getComponentName() { return "ntm_pwr_control"; } @@ -547,13 +549,25 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { - return new Object[] {rodTarget}; + return new Object[] {rodTarget, rodLevel}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getCoolantInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFuelInfo(Context context, Arguments args) { + return new Object[] {amountLoaded, progress, processTime}; } @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {coreHeat, hullHeat, flux, rodTarget}; + return new Object[] {coreHeat, hullHeat, flux, rodTarget, rodLevel, amountLoaded, progress, processTime, tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } @Callback(direct = true, limit = 4) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index ee5690703..158f30152 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -5,6 +5,7 @@ import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.Set; +import java.util.LinkedHashMap; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.fluid.Fluids; @@ -15,6 +16,7 @@ import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -28,7 +30,13 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityRBMKConsole extends TileEntityMachineBase implements IControlReceiver, IGUIProvider { +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityRBMKConsole extends TileEntityMachineBase implements IControlReceiver, IGUIProvider, SimpleComponent { private int targetX; private int targetY; @@ -509,4 +517,203 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKConsole(player.inventory, this); } + + // do some opencomputer stuff + @Override + public String getComponentName() { + return "rbmk_console"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getColumnData(Context context, Arguments args) { + int x = args.checkInteger(0) - 7; + int y = -args.checkInteger(1) + 7; + + int i = (y + 7) * 15 + (x + 7); + + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + y); + if (te instanceof TileEntityRBMKBase) { + TileEntityRBMKBase column = (TileEntityRBMKBase) te; + + NBTTagCompound column_data = columns[i].data; + LinkedHashMap data_table = new LinkedHashMap<>(); + data_table.put("type", column.getConsoleType().name()); + data_table.put("hullTemp", column_data.getDouble("heat")); + data_table.put("realSimWater", column_data.getDouble("water")); + data_table.put("realSimSteam", column_data.getDouble("steam")); + data_table.put("moderated", column_data.getBoolean("moderated")); + data_table.put("level", column_data.getDouble("level")); + data_table.put("color", column_data.getShort("color")); + data_table.put("enrichment", column_data.getDouble("enrichment")); + data_table.put("xenon", column_data.getDouble("xenon")); + data_table.put("coreSkinTemp", column_data.getDouble("c_heat")); + data_table.put("coreTemp", column_data.getDouble("c_coreHeat")); + data_table.put("coreMaxTemp", column_data.getDouble("c_maxHeat")); + + if(te instanceof TileEntityRBMKRod){ + TileEntityRBMKRod fuelChannel = (TileEntityRBMKRod)te; + data_table.put("fluxSlow", fuelChannel.fluxSlow); + data_table.put("fluxFast", fuelChannel.fluxFast); + } + + if(te instanceof TileEntityRBMKBoiler){ + TileEntityRBMKBoiler boiler = (TileEntityRBMKBoiler)te; + data_table.put("water", boiler.feed.getFill()); + data_table.put("steam", boiler.steam.getFill()); + } + + if(te instanceof TileEntityRBMKOutgasser){ + TileEntityRBMKOutgasser irradiationChannel = (TileEntityRBMKOutgasser)te; + data_table.put("fluxProgress", irradiationChannel.progress); + data_table.put("requiredFlux", irradiationChannel.duration); + } + + if(te instanceof TileEntityRBMKHeater){ + TileEntityRBMKHeater heaterChannel = (TileEntityRBMKHeater)te; + data_table.put("coolant", heaterChannel.feed.getFill()); + data_table.put("hotcoolant", heaterChannel.steam.getFill()); + } + + return new Object[] {data_table}; + } + return new Object[] {null}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getRBMKPos(Context context, Arguments args) { + if(!(targetX == 0 && targetY== 0 && targetZ==0)){ + LinkedHashMap data_table = new LinkedHashMap<>(); + data_table.put("rbmkCenterX", targetX); + data_table.put("rbmkCenterY", targetY); + data_table.put("rbmkCenterZ", targetZ); + + return new Object[] {data_table}; + } + return new Object[] {null}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setLevel(Context context, Arguments args) { + double new_level = args.checkDouble(0); + boolean foundRods = false; + for(int i = -7; i <= 7; i++) { + for(int j = -7; j <= 7; j++) { + TileEntity te = worldObj.getTileEntity(targetX + i, targetY, targetZ + j); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.startingLevel = rod.level; + new_level = Math.min(1, Math.max(0, new_level)); + + rod.setTarget(new_level); + te.markDirty(); + foundRods = true; + } + } + } + if(foundRods) + return new Object[] {}; + else + return new Object[] {"No control rods found"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColumnLevel(Context context, Arguments args) { + int x = args.checkInteger(0) - 7; + int y = -args.checkInteger(1) + 7; + double new_level = args.checkDouble(2); + + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + y); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.startingLevel = rod.level; + new_level = Math.min(1, Math.max(0, new_level)); + + rod.setTarget(new_level); + te.markDirty(); + return new Object[] {}; + } + return new Object[] {"No control rod found at "+(x+7)+","+(7-y)}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColorLevel(Context context, Arguments args) { + int color = args.checkInteger(0); + double new_level = args.checkDouble(1); + boolean foundRods = false; + if(color >= 0 && color <=4){ + for(int i = -7; i <= 7; i++) { + for(int j = -7; j <= 7; j++) { + TileEntity te = worldObj.getTileEntity(targetX + i, targetY, targetZ + j); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + if(rod.color == RBMKColor.values()[color]){ + rod.startingLevel = rod.level; + new_level = Math.min(1, Math.max(0, new_level)); + + rod.setTarget(new_level); + te.markDirty(); + foundRods = true; + } + } + } + } + if(foundRods) + return new Object[] {}; + else + return new Object[] { "No rods for color "+color+" found" }; + } + return new Object[] {"Color "+color+" does not exist"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColor(Context context, Arguments args) { + int x = args.checkInteger(0) - 7; + int y = -args.checkInteger(1) + 7; + int new_color = args.checkInteger(2); + if(new_color >= 0 && new_color <=4){ + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + y); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.color = RBMKColor.values()[new_color]; + te.markDirty(); + return new Object[] {}; + } + return new Object[] {"No control rod found at "+(x+7)+","+(7-y)}; + } + return new Object[] {"Color "+new_color+" does not exist"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] pressAZ5(Context context, Arguments args) { + boolean hasRods = false; + for(int i = -7; i <= 7; i++) { + for(int j = -7; j <= 7; j++) { + TileEntity te = worldObj.getTileEntity(targetX + i, targetY, targetZ + j); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.startingLevel = rod.level; + rod.setTarget(0); + te.markDirty(); + hasRods = true; + } + } + } + if(hasRods){ + return new Object[] {}; + } else { + return new Object[] {"No control rods found"}; + } + } } From be2c17f1028c6129e97620c7d9ecad79b7b06579 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 24 Dec 2023 00:30:53 +0100 Subject: [PATCH 039/376] can't wait for the silly people on discord bug me 24/7 about this fuckin g commit i swear to god this is why we can't have nice things --- src/main/java/com/hbm/blocks/ModBlocks.java | 13 + .../com/hbm/blocks/generic/BlockKeyhole.java | 244 ++++++++++++++++++ .../com/hbm/blocks/generic/BlockLoot.java | 5 - .../com/hbm/blocks/generic/BlockModDoor.java | 4 + .../com/hbm/blocks/generic/BlockPedestal.java | 141 ++++++++++ src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/tool/ItemModDoor.java | 147 +++++------ src/main/java/com/hbm/main/ClientProxy.java | 3 + src/main/java/com/hbm/main/MainRegistry.java | 3 + .../com/hbm/render/block/RenderPedestal.java | 68 +++++ .../com/hbm/render/tileentity/RenderLoot.java | 56 ++++ .../render/tileentity/RenderPedestalTile.java | 61 +++++ .../java/com/hbm/tileentity/TileMappings.java | 2 + src/main/resources/assets/hbm/lang/de_DE.lang | 6 + src/main/resources/assets/hbm/lang/en_US.lang | 6 + .../hbm/textures/blocks/door_red_lower.png | Bin 0 -> 179 bytes .../hbm/textures/blocks/door_red_upper.png | Bin 0 -> 155 bytes .../hbm/textures/blocks/pedestal_side.png | Bin 0 -> 252 bytes .../hbm/textures/blocks/pedestal_top.png | Bin 0 -> 233 bytes .../assets/hbm/textures/items/door_red.png | Bin 0 -> 243 bytes 20 files changed, 672 insertions(+), 90 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockKeyhole.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockPedestal.java create mode 100644 src/main/java/com/hbm/render/block/RenderPedestal.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/door_red_lower.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/door_red_upper.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pedestal_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pedestal_top.png create mode 100644 src/main/resources/assets/hbm/textures/items/door_red.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 587bb4025..fa2c429f3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -132,6 +132,8 @@ public class ModBlocks { public static Block cluster_depth_iron; public static Block cluster_depth_titanium; public static Block cluster_depth_tungsten; + + public static Block stone_keyhole; public static Block stone_depth_nether; public static Block ore_depth_nether_neodymium; @@ -303,6 +305,7 @@ public class ModBlocks { public static Block deco_emitter; public static Block part_emitter; public static Block deco_loot; + public static Block pedestal; public static Block bobblehead; public static Block snowglobe; @@ -614,6 +617,7 @@ public class ModBlocks { public static Block door_metal; public static Block door_office; public static Block door_bunker; + public static Block door_red; public static Block barbed_wire; public static Block barbed_wire_fire; @@ -1367,6 +1371,8 @@ public class ModBlocks { cluster_depth_tungsten = new BlockDepthOre().setBlockName("cluster_depth_tungsten").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_tungsten"); ore_alexandrite = new BlockDepthOre().setBlockName("ore_alexandrite").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_alexandrite"); + stone_keyhole = new BlockKeyhole().setBlockName("stone_keyhole").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":stone_keyhole"); + ore_random = new BlockMotherOfAllOres().setBlockName("ore_random").setCreativeTab(MainRegistry.blockTab); ore_bedrock = new BlockBedrockOreTE().setBlockName("ore_bedrock").setCreativeTab(null); ore_volcano = new BlockFissure().setBlockName("ore_volcano").setLightLevel(1F).setCreativeTab(MainRegistry.blockTab); @@ -1543,6 +1549,7 @@ public class ModBlocks { deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter"); part_emitter = new PartEmitter().setBlockName("part_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":part_top"); deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); @@ -2154,6 +2161,7 @@ public class ModBlocks { door_metal = new BlockModDoor(Material.iron).setBlockName("door_metal").setHardness(5.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":door_metal"); door_office = new BlockModDoor(Material.iron).setBlockName("door_office").setHardness(10.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":door_office"); door_bunker = new BlockModDoor(Material.iron).setBlockName("door_bunker").setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":door_bunker"); + door_red = new BlockModDoor(Material.iron).setBlockName("door_red").setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":door_red"); barbed_wire = new BarbedWire(Material.iron).setBlockName("barbed_wire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_model"); barbed_wire_fire = new BarbedWire(Material.iron).setBlockName("barbed_wire_fire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_fire_model"); @@ -2584,6 +2592,9 @@ public class ModBlocks { register(ore_bedrock); register(ore_volcano); + //Secret + register(stone_keyhole); + //Crystals GameRegistry.registerBlock(crystal_power, crystal_power.getUnlocalizedName()); GameRegistry.registerBlock(crystal_energy, crystal_energy.getUnlocalizedName()); @@ -2738,6 +2749,7 @@ public class ModBlocks { GameRegistry.registerBlock(deco_emitter, ItemBlockBase.class, deco_emitter.getUnlocalizedName()); GameRegistry.registerBlock(part_emitter, ItemBlockBase.class, part_emitter.getUnlocalizedName()); GameRegistry.registerBlock(deco_loot, deco_loot.getUnlocalizedName()); + GameRegistry.registerBlock(pedestal, pedestal.getUnlocalizedName()); GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName()); GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName()); @@ -3079,6 +3091,7 @@ public class ModBlocks { GameRegistry.registerBlock(door_metal, door_metal.getUnlocalizedName()); GameRegistry.registerBlock(door_office, door_office.getUnlocalizedName()); GameRegistry.registerBlock(door_bunker, door_bunker.getUnlocalizedName()); + GameRegistry.registerBlock(door_red, door_red.getUnlocalizedName()); GameRegistry.registerBlock(secure_access_door, secure_access_door.getUnlocalizedName()); GameRegistry.registerBlock(large_vehicle_door, large_vehicle_door.getUnlocalizedName()); GameRegistry.registerBlock(qe_containment, qe_containment.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java new file mode 100644 index 000000000..14dee9d9d --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -0,0 +1,244 @@ +package com.hbm.blocks.generic; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModDoor; +import com.hbm.main.MainRegistry; +import com.hbm.util.WeightedRandomObject; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockStone; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.WeightedRandom; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockKeyhole extends BlockStone { + + protected IIcon iconTop; + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconTop = iconRegister.registerIcon("stone"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.iconTop : this.blockIcon; + } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + return new ItemStack(Blocks.stone); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.key_red && side != 0 && side != 1) { + if(world.isRemote) return true; + ForgeDirection dir = ForgeDirection.getOrientation(side); + generateRoom(world, x - dir.offsetX * 4, y - 2, z - dir.offsetZ * 4); + int b = 0; + if(side == 2) b = 1; + if(side == 5) b = 2; + if(side == 3) b = 3; + if(side == 4) b = 0; + ItemModDoor.placeDoorBlock(world, x, y - 1, z, b, ModBlocks.door_red); + world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); + player.triggerAchievement(MainRegistry.achRedRoom); + return true; + } + + return false; + } + + protected static void generateRoom(World world, int x, int y, int z) { + + int size = 9; + int height = 5; + int width = size / 2; + + //Outer Edges, top and bottom + for(int i = -width; i <= width; i++) { + world.setBlock(x + i, y, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y + height - 1, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y + height - 1, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3); + } + + for(int i = 1; i <= height - 2; i++) { + //Outer edges, sides + world.setBlock(x + width, y + i, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y + i, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + i, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + i, z - width, ModBlocks.brick_red, 6, 3); + + //Walls + for(int j = -width + 1; j <= width - 1; j++) { + world.setBlock(x + width, y + i, z + j, ModBlocks.brick_red, 4, 3); + world.setBlock(x - width, y + i, z + j, ModBlocks.brick_red, 5, 3); + world.setBlock(x + j, y + i, z + width, ModBlocks.brick_red, 2, 3); + world.setBlock(x + j, y + i, z - width, ModBlocks.brick_red, 3, 3); + } + } + + for(int i = -width + 1; i <= width - 1; i++) { + for(int j = -width + 1; j <= width - 1; j++) { + //Floor and ceiling + world.setBlock(x + i, y, z + j, ModBlocks.brick_red, 1, 3); + world.setBlock(x + i, y + height - 1, z + j, ModBlocks.brick_red, 0, 3); + + for(int k = 1; k <= height - 2; k++) { + world.setBlock(x + i, y + k, z + j, Blocks.air); + } + } + } + + //Torches + int torchDist = width - 1; + int torchOff = torchDist - 1; + world.setBlock(x + torchDist, y + 2, z + torchOff, Blocks.torch); + world.setBlock(x + torchDist, y + 2, z - torchOff, Blocks.torch); + world.setBlock(x - torchDist, y + 2, z + torchOff, Blocks.torch); + world.setBlock(x - torchDist, y + 2, z - torchOff, Blocks.torch); + world.setBlock(x + torchOff, y + 2, z + torchDist, Blocks.torch); + world.setBlock(x - torchOff, y + 2, z + torchDist, Blocks.torch); + world.setBlock(x + torchOff, y + 2, z - torchDist, Blocks.torch); + world.setBlock(x - torchOff, y + 2, z - torchDist, Blocks.torch); + + //Cobwebs + if(world.rand.nextInt(4) == 0) { + for(int i = -width + 1; i <= width - 1; i++) { + for(int j = -width + 1; j <= width - 1; j++) { + if(world.rand.nextBoolean()) world.setBlock(x + i, y + height - 2, z + j, Blocks.web); + } + } + } + + //Pillars + if(world.rand.nextInt(4) == 0) { + for(int i = 1; i <= height - 2; i++) { + world.setBlock(x + width - 2, y + i, z + width - 2, ModBlocks.concrete_colored, 14, 3); + world.setBlock(x + width - 2, y + i, z - width + 2, ModBlocks.concrete_colored, 14, 3); + world.setBlock(x - width + 2, y + i, z + width - 2, ModBlocks.concrete_colored, 14, 3); + world.setBlock(x - width + 2, y + i, z - width + 2, ModBlocks.concrete_colored, 14, 3); + } + } + + //Fire + if(world.rand.nextInt(4) == 0) { + world.setBlock(x + width - 1, y, z + width - 1, Blocks.netherrack); + world.setBlock(x + width - 1, y, z - width + 1, Blocks.netherrack); + world.setBlock(x - width + 1, y, z + width - 1, Blocks.netherrack); + world.setBlock(x - width + 1, y, z - width + 1, Blocks.netherrack); + world.setBlock(x + width - 1, y + 1, z + width - 1, Blocks.fire); + world.setBlock(x + width - 1, y + 1, z - width + 1, Blocks.fire); + world.setBlock(x - width + 1, y + 1, z + width - 1, Blocks.fire); + world.setBlock(x - width + 1, y + 1, z - width + 1, Blocks.fire); + } + + //Circle + if(world.rand.nextInt(4) == 0) { + for(int i = -1; i <= 1; i++) { + for(int j = -1; j <= 1; j++) { + if(i != 0 || j != 0) world.setBlock(x + i, y, z + j, ModBlocks.concrete_colored, 14, 3); + } + } + } + + //Lava + if(world.rand.nextInt(4) == 0) { + world.setBlock(x + width - 2, y, z + width - 1, Blocks.lava); + world.setBlock(x + width - 3, y, z + width - 1, Blocks.lava); + world.setBlock(x - width + 2, y, z + width - 1, Blocks.lava); + world.setBlock(x - width + 3, y, z + width - 1, Blocks.lava); + world.setBlock(x + width - 2, y, z - width + 1, Blocks.lava); + world.setBlock(x + width - 3, y, z - width + 1, Blocks.lava); + world.setBlock(x - width + 2, y, z - width + 1, Blocks.lava); + world.setBlock(x - width + 3, y, z - width + 1, Blocks.lava); + world.setBlock(x + width - 1, y, z + width - 2, Blocks.lava); + world.setBlock(x + width - 1, y, z + width - 3, Blocks.lava); + world.setBlock(x + width - 1, y, z - width + 2, Blocks.lava); + world.setBlock(x + width - 1, y, z - width + 3, Blocks.lava); + world.setBlock(x - width + 1, y, z + width - 2, Blocks.lava); + world.setBlock(x - width + 1, y, z + width - 3, Blocks.lava); + world.setBlock(x - width + 1, y, z - width + 2, Blocks.lava); + world.setBlock(x - width + 1, y, z - width + 3, Blocks.lava); + } + + int rand = world.rand.nextInt(20); + + if(rand == 0) { + world.setBlock(x, y + 1, z, ModBlocks.deco_loot); + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y + 1, z); + loot.addItem(new ItemStack(ModItems.trenchmaster_helmet), 0, 0, 0); + loot.addItem(new ItemStack(ModItems.trenchmaster_plate), 0, 0, 0); + loot.addItem(new ItemStack(ModItems.trenchmaster_legs), 0, 0, 0); + loot.addItem(new ItemStack(ModItems.trenchmaster_boots), 0, 0, 0); + } else { + spawnPedestalItem(world, x, y + 1, z); + } + + //Clear dropped items + List items = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x + 0.5, y, z + 0.5, x + 0.5, y + height, z + 0.5).expand(size / 2D, 0, size / 2D)); + for(EntityItem item : items) item.setDead(); + } + + public static List pedestalItems; + + public static void spawnPedestalItem(World world, int x, int y, int z) { + world.setBlock(x, y, z, ModBlocks.pedestal); + TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); + if(pedestalItems == null) initPedestal(); + pedestal.item = ((WeightedRandomObject) WeightedRandom.getRandomItem(world.rand, pedestalItems)).asStack().copy(); + } + + public static void initPedestal() { + pedestalItems = new ArrayList(); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ballistic_gauntlet), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.night_vision), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.protection_charm), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.armor_polish), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.bandaid), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.serum), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.quartz_plutonium), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.morning_glory), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.lodestone), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.spider_milk), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ink), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.heart_container), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.black_diamond), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wd40), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.scrumpy), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wild_p), 5)); + + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.starmetal_sword), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.radaway_flush), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.gem_alexandrite), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.crackpipe), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.flask_infusion), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModBlocks.boxcar), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.book_of_), 5)); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockLoot.java b/src/main/java/com/hbm/blocks/generic/BlockLoot.java index cf949e161..6ce450275 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLoot.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLoot.java @@ -48,11 +48,6 @@ public class BlockLoot extends BlockContainer { return null; } - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - } - @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockModDoor.java b/src/main/java/com/hbm/blocks/generic/BlockModDoor.java index 2d003020c..b0ccc6634 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockModDoor.java +++ b/src/main/java/com/hbm/blocks/generic/BlockModDoor.java @@ -319,6 +319,8 @@ public class BlockModDoor extends Block { return ModItems.door_metal; else if (this == ModBlocks.door_office) return ModItems.door_office; + else if (this == ModBlocks.door_red) + return ModItems.door_red; else return ModItems.door_bunker; } @@ -379,6 +381,8 @@ public class BlockModDoor extends Block { return ModItems.door_metal; else if (this == ModBlocks.door_office) return ModItems.door_office; + else if (this == ModBlocks.door_red) + return ModItems.door_red; else return ModItems.door_bunker; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java new file mode 100644 index 000000000..2930323f7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java @@ -0,0 +1,141 @@ +package com.hbm.blocks.generic; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockPedestal extends BlockContainer { + + protected IIcon iconSide; + + public BlockPedestal() { + super(Material.rock); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPedestal(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":pedestal_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.blockIcon : this.iconSide; + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @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; + if(player.isSneaking()) return false; + + TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); + + if(pedestal.item == null && player.getHeldItem() != null) { + pedestal.item = player.getHeldItem().copy(); + player.inventory.mainInventory[player.inventory.currentItem] = null; + pedestal.markDirty(); + world.markBlockForUpdate(x, y, z); + return true; + } else if(pedestal.item != null && player.getHeldItem() == null) { + player.inventory.mainInventory[player.inventory.currentItem] = pedestal.item.copy(); + pedestal.item = null; + pedestal.markDirty(); + world.markBlockForUpdate(x, y, z); + return true; + } + + return false; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + if(!world.isRemote) { + TileEntityPedestal entity = (TileEntityPedestal) world.getTileEntity(x, y, z); + if(entity != null && entity.item != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, entity.item.copy()); + world.spawnEntityInWorld(item); + } + } + + super.breakBlock(world, x, y, z, block, meta); + } + + public static class TileEntityPedestal extends TileEntity { + + public ItemStack item; + + @Override + public boolean canUpdate() { + return false; + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.item = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("item")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + if(this.item != null) { + NBTTagCompound stack = new NBTTagCompound(); + this.item.writeToNBT(stack); + nbt.setTag("item", stack); + } + } + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 72651c636..d91f9821f 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2352,6 +2352,7 @@ public class ModItems { public static Item door_metal; public static Item door_office; public static Item door_bunker; + public static Item door_red; public static Item sliding_blast_door_skin; @@ -5409,6 +5410,7 @@ public class ModItems { door_metal = new ItemModDoor().setUnlocalizedName("door_metal").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_metal"); door_office = new ItemModDoor().setUnlocalizedName("door_office").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_office"); door_bunker = new ItemModDoor().setUnlocalizedName("door_bunker").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_bunker"); + door_red = new ItemModDoor().setUnlocalizedName("door_red").setCreativeTab(null).setTextureName(RefStrings.MODID + ":door_red"); sliding_blast_door_skin = new ItemSlidingBlastDoorSkin().setUnlocalizedName("sliding_blast_door_skin").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":sliding_blast_door_default"); @@ -8058,6 +8060,7 @@ public class ModItems { GameRegistry.registerItem(door_metal, door_metal.getUnlocalizedName()); GameRegistry.registerItem(door_office, door_office.getUnlocalizedName()); GameRegistry.registerItem(door_bunker, door_bunker.getUnlocalizedName()); + GameRegistry.registerItem(door_red, door_red.getUnlocalizedName()); GameRegistry.registerItem(sliding_blast_door_skin, sliding_blast_door_skin.getUnlocalizedName()); //Records diff --git a/src/main/java/com/hbm/items/tool/ItemModDoor.java b/src/main/java/com/hbm/items/tool/ItemModDoor.java index 6ed3f84f3..e7ead99c9 100644 --- a/src/main/java/com/hbm/items/tool/ItemModDoor.java +++ b/src/main/java/com/hbm/items/tool/ItemModDoor.java @@ -6,105 +6,82 @@ import com.hbm.items.ModItems; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class ItemModDoor extends Item -{ - public ItemModDoor() - { - this.maxStackSize = 1; - this.setCreativeTab(CreativeTabs.tabRedstone); - } +public class ItemModDoor extends Item { + + public ItemModDoor() { + this.maxStackSize = 1; + this.setCreativeTab(CreativeTabs.tabRedstone); + } - /** - * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return - * True if something happen and false if it don't. This is for ITEMS, not BLOCKS - */ - public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) - { - if (p_77648_7_ != 1) - { - return false; - } - else - { - ++p_77648_5_; - Block block; + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { + if(side != 1) { + return false; + } else { + ++y; + + Block block = Blocks.air; - if(this == ModItems.door_metal) - block = ModBlocks.door_metal; - else if(this == ModItems.door_office) - block = ModBlocks.door_office; - else - block = ModBlocks.door_bunker; + if(this == ModItems.door_metal) block = ModBlocks.door_metal; + if(this == ModItems.door_office) block = ModBlocks.door_office; + if(this == ModItems.door_bunker) block = ModBlocks.door_bunker; + if(this == ModItems.door_red) block = ModBlocks.door_red; - if (p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_, p_77648_6_, p_77648_7_, p_77648_1_) && p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_ + 1, p_77648_6_, p_77648_7_, p_77648_1_)) - { - if (!block.canPlaceBlockAt(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_)) - { - return false; - } - else - { - int i1 = MathHelper.floor_double((double)((p_77648_2_.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; - placeDoorBlock(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_, i1, block); - --p_77648_1_.stackSize; - return true; - } - } - else - { - return false; - } - } - } + if(player.canPlayerEdit(x, y, z, side, stack) && player.canPlayerEdit(x, y + 1, z, side, stack)) { + if(!block.canPlaceBlockAt(world, x, y, z)) { + return false; + } else { + int i1 = MathHelper.floor_double((double) ((player.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; + placeDoorBlock(world, x, y, z, i1, block); + --stack.stackSize; + return true; + } + } else { + return false; + } + } + } - public static void placeDoorBlock(World p_150924_0_, int p_150924_1_, int p_150924_2_, int p_150924_3_, int p_150924_4_, Block p_150924_5_) - { - byte b0 = 0; - byte b1 = 0; + public static void placeDoorBlock(World world, int x, int y, int z, int meta, Block door) { + byte offsetX = 0; + byte offsetZ = 0; - if (p_150924_4_ == 0) - { - b1 = 1; - } + if(meta == 0) { + offsetZ = 1; + } - if (p_150924_4_ == 1) - { - b0 = -1; - } + if(meta == 1) { + offsetX = -1; + } - if (p_150924_4_ == 2) - { - b1 = -1; - } + if(meta == 2) { + offsetZ = -1; + } - if (p_150924_4_ == 3) - { - b0 = 1; - } + if(meta == 3) { + offsetX = 1; + } - int i1 = (p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_, p_150924_3_ - b1).isNormalCube() ? 1 : 0) + (p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_ + 1, p_150924_3_ - b1).isNormalCube() ? 1 : 0); - int j1 = (p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_, p_150924_3_ + b1).isNormalCube() ? 1 : 0) + (p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_ + 1, p_150924_3_ + b1).isNormalCube() ? 1 : 0); - boolean flag = p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_, p_150924_3_ - b1) == p_150924_5_ || p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_ + 1, p_150924_3_ - b1) == p_150924_5_; - boolean flag1 = p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_, p_150924_3_ + b1) == p_150924_5_ || p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_ + 1, p_150924_3_ + b1) == p_150924_5_; - boolean flag2 = false; + int i1 = (world.getBlock(x - offsetX, y, z - offsetZ).isNormalCube() ? 1 : 0) + (world.getBlock(x - offsetX, y + 1, z - offsetZ).isNormalCube() ? 1 : 0); + int j1 = (world.getBlock(x + offsetX, y, z + offsetZ).isNormalCube() ? 1 : 0) + (world.getBlock(x + offsetX, y + 1, z + offsetZ).isNormalCube() ? 1 : 0); + boolean flag = world.getBlock(x - offsetX, y, z - offsetZ) == door || world.getBlock(x - offsetX, y + 1, z - offsetZ) == door; + boolean flag1 = world.getBlock(x + offsetX, y, z + offsetZ) == door || world.getBlock(x + offsetX, y + 1, z + offsetZ) == door; + boolean flag2 = false; - if (flag && !flag1) - { - flag2 = true; - } - else if (j1 > i1) - { - flag2 = true; - } + if(flag && !flag1) { + flag2 = true; + } else if(j1 > i1) { + flag2 = true; + } - p_150924_0_.setBlock(p_150924_1_, p_150924_2_, p_150924_3_, p_150924_5_, p_150924_4_, 2); - p_150924_0_.setBlock(p_150924_1_, p_150924_2_ + 1, p_150924_3_, p_150924_5_, 8 | (flag2 ? 1 : 0), 2); - p_150924_0_.notifyBlocksOfNeighborChange(p_150924_1_, p_150924_2_, p_150924_3_, p_150924_5_); - p_150924_0_.notifyBlocksOfNeighborChange(p_150924_1_, p_150924_2_ + 1, p_150924_3_, p_150924_5_); - } + world.setBlock(x, y, z, door, meta, 2); + world.setBlock(x, y + 1, z, door, 8 | (flag2 ? 1 : 0), 2); + world.notifyBlocksOfNeighborChange(x, y, z, door); + world.notifyBlocksOfNeighborChange(x, y + 1, z, door); + } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 453f04adb..7a4cdf259 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -47,6 +47,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; @@ -171,6 +172,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltF.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDemonLamp.class, new RenderDemonLamp()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLoot.class, new RenderLoot()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPedestal.class, new RenderPedestalTile()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySnowglobe.class, new RenderSnowglobe()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmitter.class, new RenderEmitter()); @@ -824,6 +826,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderDiFurnaceExtension()); RenderingRegistry.registerBlockHandler(new RenderSplitter()); RenderingRegistry.registerBlockHandler(new RenderCapacitor()); + RenderingRegistry.registerBlockHandler(new RenderPedestal()); RenderingRegistry.registerBlockHandler(new RenderFoundryBasin()); RenderingRegistry.registerBlockHandler(new RenderFoundryMold()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index fd5073c80..ec9ace167 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -190,6 +190,7 @@ public class MainRegistry { public static Achievement achGoFish; public static Achievement achNo9; public static Achievement achInferno; + public static Achievement achRedRoom; public static Achievement bobHidden; public static Achievement horizonsStart; public static Achievement horizonsEnd; @@ -678,6 +679,7 @@ public class MainRegistry { achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.ACID), null).initIndependentStat().registerStat(); achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.BALLS), achSlimeball).initIndependentStat().setSpecial().registerStat(); achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat(); + achRedRoom = new Achievement("achievement.redRoom", "redRoom", -10, 10, ModItems.key_red, null).initIndependentStat().setSpecial().registerStat(); bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat(); @@ -757,6 +759,7 @@ public class MainRegistry { achWitchtaunter, achNo9, achInferno, + achRedRoom, achSlimeball, achSulfuric, bossCreeper, diff --git a/src/main/java/com/hbm/render/block/RenderPedestal.java b/src/main/java/com/hbm/render/block/RenderPedestal.java new file mode 100644 index 000000000..5c8eef3dc --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderPedestal.java @@ -0,0 +1,68 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockPedestal; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public class RenderPedestal implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + + for(int i = 0; i < 3; i++) { + if(i == 0) renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 0.25, 1.0); + if(i == 1) renderer.setRenderBounds(0.0, 0.75, 0.0, 1.0, 1.0, 1.0); + if(i == 2) renderer.setRenderBounds(0.125, 0.25, 0.125, 0.875, 0.75, 0.875); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); + } + + tessellator.draw(); + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 0.25, 1.0); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.0, 0.75, 0.0, 1.0, 1.0, 1.0); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.125, 0.25, 0.125, 0.875, 0.75, 0.875); + renderer.renderStandardBlock(block, x, y, z); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockPedestal.renderID; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index 125ebb617..da6545a1e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -5,13 +5,16 @@ import org.lwjgl.opengl.GL12; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.items.ModItems; +import com.hbm.items.armor.ArmorTrenchmaster; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.model.ModelFatman; import com.hbm.render.model.ModelLeverAction; import com.hbm.util.Tuple.Quartet; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureMap; @@ -48,6 +51,8 @@ public class RenderLoot extends TileEntitySpecialRenderer { } else if(stack.getItem() == ModItems.gun_lever_action) { renderShotgun(); + } else if(stack.getItem() instanceof ArmorTrenchmaster) { + renderTrenchmaster(stack); } else { renderStandardItem(item.getW()); } @@ -58,6 +63,57 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + private void renderTrenchmaster(ItemStack stack) { + GL11.glPushMatrix(); + GL11.glTranslated(0.5, 1.5, 0.5); + GL11.glScaled(0.0625, 0.0625, 0.0625); + GL11.glRotated(180, 1, 0, 0); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + if(stack.getItem() == ModItems.trenchmaster_helmet) { + bindTexture(ResourceManager.trenchmaster_helmet); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + ResourceManager.armor_trenchmaster.renderPart("Helmet"); + GL11.glDisable(GL11.GL_BLEND); + float lastX = OpenGlHelper.lastBrightnessX; + float lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_LIGHTING); + ResourceManager.armor_trenchmaster.renderPart("Light"); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + } + if(stack.getItem() == ModItems.trenchmaster_plate) { + bindTexture(ResourceManager.trenchmaster_chest); + ResourceManager.armor_trenchmaster.renderPart("Chest"); + bindTexture(ResourceManager.trenchmaster_arm); + GL11.glPushMatrix(); + GL11.glRotated(-3, 1, 0, 0); + ResourceManager.armor_trenchmaster.renderPart("LeftArm"); + ResourceManager.armor_trenchmaster.renderPart("RightArm"); + GL11.glPopMatrix(); + } + if(stack.getItem() == ModItems.trenchmaster_legs) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + ResourceManager.armor_trenchmaster.renderPart("LeftLeg"); + GL11.glPushMatrix(); + GL11.glRotated(-0.1, 1, 0, 0); + ResourceManager.armor_trenchmaster.renderPart("RightLeg"); + GL11.glPopMatrix(); + } + if(stack.getItem() == ModItems.trenchmaster_boots) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + ResourceManager.armor_trenchmaster.renderPart("LeftBoot"); + GL11.glPushMatrix(); + GL11.glRotated(-0.1, 1, 0, 0); + ResourceManager.armor_trenchmaster.renderPart("RightBoot"); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + private void renderNuke() { GL11.glScaled(0.5, 0.5, 0.5); GL11.glTranslated(1, 0.5, 1); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java b/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java new file mode 100644 index 000000000..6f39d7389 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java @@ -0,0 +1,61 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; + +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class RenderPedestalTile extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 1, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + RenderHelper.enableStandardItemLighting(); + + TileEntityPedestal pedestal = (TileEntityPedestal) te; + + if(pedestal.item != null) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + ItemStack stack = pedestal.item.copy(); + GL11.glScaled(1.5, 1.5, 1.5); + + if(!(stack.getItemSpriteNumber() == 0 && stack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(stack.getItem()).getRenderType()))) { + GL11.glTranslated(0, 0.125, 0); + GL11.glRotatef(player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * interp + 180, 0.0F, -1.0F, 0.0F); + + if(!RenderManager.instance.options.fancyGraphics) { + GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); + } + + GL11.glTranslated(0, Math.sin((player.ticksExisted + interp) * 0.1) * 0.0625, 0); + } else { + GL11.glTranslated(0, Math.sin((player.ticksExisted + interp) * 0.1) * 0.0625 + 0.0625, 0); + } + + EntityItem dummy = new EntityItem(te.getWorldObj(), 0, 0, 0, stack); + dummy.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + } + + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index b4d3693fa..bbd9a724e 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -12,6 +12,7 @@ import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; @@ -205,6 +206,7 @@ public class TileMappings { put(TileEntityCustomMachine.class, "tileentity_custom_machine"); put(TileEntityLoot.class, "tileentity_ntm_loot"); + put(TileEntityPedestal.class, "tileentity_ntm_pedestal"); put(TileEntityBobble.class, "tileentity_ntm_bobblehead"); put(TileEntitySnowglobe.class, "tileentity_ntm_snowglobe"); put(TileEntityEmitter.class, "tileentity_ntm_emitter"); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c5df0b0e1..a07ccfd74 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -66,6 +66,8 @@ achievement.radium.desc=SIE SIND GEFEUERT WEIL SIE RADIUM IN MEINEN KAFFEE GESCH achievement.radium=MISTER UNGLAUBLICH achievement.radPoison.desc=Leide an Strahlenkrankheit. achievement.radPoison=Yay, Strahlung! +achievement.redRoom.desc=? +achievement.redRoom=Die andere Seite achievement.sacrifice.desc=Sterbe im Feuer, aber irgendwie auch nicht. achievement.sacrifice=Sororizid achievement.selenium.desc=Lange nicht gesehen! @@ -1705,6 +1707,7 @@ item.dnt_plate.name=dineutrom brustplatte item.door_bunker.name=Bunkertür item.door_metal.name=Metalltür item.door_office.name=Bürotür +item.door_red.name=Rote Tür item.dosimeter.name=Dosimeter item.drax.name=Terra-Bohrer item.drax_mk2.name=Gehärteter Terra-Bohrer @@ -3893,6 +3896,7 @@ tile.drone_waypoint_request.name=Logistikdronen-Wegpunkt tile.door_bunker.name=Bunkertür tile.door_metal.name=Metalltür tile.door_office.name=Bürotür +tile.door_red.name=Rote Tür tile.ducrete.name=Ducretefliese tile.ducrete_stairs.name=Ducretefliesentreppe tile.ducrete_smooth.name=Ducrete @@ -4312,6 +4316,7 @@ tile.ore_uranium_scorched.name=Verschmortes Uranerz tile.ore_verticium.name=Dollargrünes Mineral tile.ore_volcano.name=Thermale Fissur tile.ore_weidanium.name=Weidit +tile.pedestal.name=Podest tile.pink_barrel.name=Kerosinfass tile.pink_log.name=Pinkes Holz tile.pink_planks.name=Pinke Holzbretter @@ -4479,6 +4484,7 @@ tile.stone_cracked.name=Rissiger Stein tile.stone_depth.name=Tiefenfels tile.stone_depth_nether.name=Nether-Tiefenfels tile.stone_gneiss.name=Graphitschiefer +tile.stone_keyhole.name=Seltsamer Stein tile.stone_porous.name=Poröser Stein tile.stone_resource.asbestos.name=Chrysotil tile.stone_resource.bauxite.name=Bauxit diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3c982082f..6dac2d884 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -94,6 +94,8 @@ achievement.RBMK.desc=He's delusional, get him to the infirmary. achievement.RBMK=3.6 Roentegen? achievement.redBalloons.desc="This is what we've waited for. This is it, boys, this is war." achievement.redBalloons=99 Red Balloons +achievement.redRoom.desc=? +achievement.redRoom=The Other Side achievement.sacrifice.desc=Face the fire and live. achievement.sacrifice=Sororicide achievement.schrab.desc=Regardless, I wouldn't look at it for too long. @@ -2405,6 +2407,7 @@ item.dnt_plate.name=dineutrom chestplate item.door_bunker.name=Bunker Door item.door_metal.name=Metal Door item.door_office.name=Office Door +item.door_red.name=Red Door item.dosimeter.name=Dosimeter item.drax.name=Terra Drill item.drax_mk2.name=Hardened Terra Drill @@ -4884,6 +4887,7 @@ tile.drone_waypoint_request.name=Logistics Drone Waypoint tile.door_bunker.name=Bunker Door tile.door_metal.name=Metal Door tile.door_office.name=Office Door +tile.door_red.name=Red Door tile.ducrete.name=Ducrete Tile tile.ducrete_stairs.name=Ducrete Tile Stairs tile.ducrete_smooth.name=Ducrete @@ -5311,6 +5315,7 @@ tile.ore_verticium.name=Dollar Green Mineral tile.ore_volcano.name=Geothermal Vent tile.ore_weidanium.name=Weidite tile.part_emitter.name=Deco Particle Emitter +tile.pedestal.name=Pedestal tile.pink_barrel.name=Kerosene Barrel tile.pink_log.name=Pink Log tile.pink_planks.name=Pink Wood Planks @@ -5482,6 +5487,7 @@ tile.stone_cracked.name=Cracked Stone tile.stone_depth.name=Depth Rock tile.stone_depth_nether.name=Nether Depth Rock tile.stone_gneiss.name=Graphitic Schist +tile.stone_keyhole.name=Strange Stone tile.stone_porous.name=Porous Stone tile.stone_resource.asbestos.name=Chrysotile tile.stone_resource.bauxite.name=Bauxite diff --git a/src/main/resources/assets/hbm/textures/blocks/door_red_lower.png b/src/main/resources/assets/hbm/textures/blocks/door_red_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..d3771415f6d6ba0370c0c72dd1f62ddf6feb6e96 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfe+F~XejF+I|2%$9PRfBBx+;I?$K00x^Y8S5Pe4--X?%xrv2r$MpA0 z_^4J&?6CWP=;Xfte>9hIYkWJjf^jh$PcAb9lbP7wLk;Sr+UH98X0$`hJ^-6tJsIXv*9pve2P#4zDX;@Y$X>&p+1G2EJcC zO>`rxMab^B;B4P{&okEUp0|;&LC1I3p1@b!9Q|iU$X&^%X-13^ORI3MBG~V|9|MzQ+=Blndh#U^J5a*SF__gKX(^b+P$;>7r@Lg z_xrNK?DfxbBDb%Y=iHF&mUgby>h2jyZ^gETh0|P^vpg0x7`J`dr?}#%y;Drqs-Jec zyO_;%#e+l(S`1dr_l~)C*5~@xn~l>t68IK+e5-Y`@^tx7<^N(&KgZ?7<@+Xnm0}Pn fmZ^GD6(#R{&B1o+hd@!FTNylE{an^LB{Ts5dMR6P literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/door_red.png b/src/main/resources/assets/hbm/textures/items/door_red.png new file mode 100644 index 0000000000000000000000000000000000000000..4fde1b88968557ef33c59fc3082fa5f1adaeb884 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@>hAfIEF;D zCZ{Mc>}p-|UpT0lf6BhES|yz2{`~Xql>We^mL$6CQ=!3%4V#S&jE#hjh9#t` zor+oH#K5+t^{Ax8{y#|uQ=cS0`1OZd{rA7m%Ux!BmT+9)>aj|=!nl}EqV&KDW;a=b zR}F#ea3Kay+r_K%R_xiLaiEPx;!H hdDA#8At8Z*;drI>|7oHjbAhgA@O1TaS?83{1OPv@UDW^p literal 0 HcmV?d00001 From ca1cd3db17d1977689507ba9b5b1334ed85ff5c1 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 25 Dec 2023 00:08:26 +0100 Subject: [PATCH 040/376] and some more fixes --- changelog | 14 +++++++++++++- gradle.properties | 2 +- .../hbm/blocks/generic/BlockDoorGeneric.java | 5 +++++ .../java/com/hbm/handler/CasingEjector.java | 11 ++++------- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 2 +- .../java/com/hbm/inventory/OreDictManager.java | 2 +- .../java/com/hbm/inventory/fluid/Fluids.java | 6 +++--- .../recipes/ExposureChamberRecipes.java | 4 +++- src/main/java/com/hbm/items/ModItems.java | 4 ++-- .../hbm/items/tool/ItemPollutionDetector.java | 6 +++--- src/main/java/com/hbm/lib/HbmWorldGen.java | 10 ++++++++++ src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../hbm/render/item/weapon/ItemRenderM2.java | 5 +++-- .../tileentity/bomb/TileEntityLaunchPad.java | 3 +++ .../machine/TileEntityMachineArcWelder.java | 2 +- .../turret/TileEntityTurretArty.java | 16 ---------------- .../turret/TileEntityTurretBaseArtillery.java | 17 +++++++++++++++++ .../hbm/textures/items/dynosphere_base.png | Bin 218 -> 0 bytes .../hbm/textures/items/dynosphere_desh.png | Bin 375 -> 0 bytes .../textures/items/dynosphere_desh_charged.png | Bin 495 -> 0 bytes .../textures/items/dynosphere_dineutronium.png | Bin 392 -> 0 bytes .../items/dynosphere_dineutronium_charged.png | Bin 553 -> 0 bytes .../textures/items/dynosphere_euphemium.png | Bin 407 -> 0 bytes .../items/dynosphere_euphemium_charged.png | Bin 568 -> 0 bytes .../textures/items/dynosphere_schrabidium.png | Bin 383 -> 0 bytes .../items/dynosphere_schrabidium_charged.png | Bin 486 -> 0 bytes .../items/dynosphere_tetraneutronium.png | Bin 296 -> 0 bytes .../dynosphere_tetraneutronium_charged.png | Bin 274 -> 0 bytes .../assets/hbm/textures/items/gun_bf_ammo.png | Bin 297 -> 549 bytes 29 files changed, 71 insertions(+), 40 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_base.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_desh.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_desh_charged.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium_charged.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_euphemium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_euphemium_charged.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium_charged.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium_charged.png diff --git a/changelog b/changelog index 3edae6c41..b35e9997a 100644 --- a/changelog +++ b/changelog @@ -1,9 +1,21 @@ ## Added +* ??? ## Changed * Adjusted the model for the mining helmet * The ladders on the acidizer and fluid tanks are now climbable * Removed those unused blue dungeon bricks +* Red phosphorus is no longer pyrophoric, meaning that multi purpose bomb kits no longer instantly explode +* Adjusted M2's rotations ## Fixed -* Fixed recipe conflict in the arc welder with the medium and large missile fuel tanks \ No newline at end of file +* Fixed recipe conflict in the arc welder with the medium and large missile fuel tanks +* Fixed doomsday missile not being launchable +* Fixed rocket artillery turret power connectors not working with cables +* Fixed arc welder energy consumption check not taking upgrades into account +* Fixed glyphid gland and 16k item barrels not having a proper container item set, effectively voiding the emtpy container when used in crafting +* Fixed confusing item quantity display in the exposure chamber's NEI handler +* Fixed pheromone being tagged as viscous and therefore not being dispersable, making modified pheromone useless +* Fixed mobs not being able to pathfind through open doors +* Fixed the benelli ejecting the casings wrong +* Fixed casing ejection in general being inconsistent, sometimes flying off into the wrong direction \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index d52227a0b..5c90623a5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4816 +mod_build_number=4824 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index ea3780a27..5d44d76f0 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -91,6 +91,11 @@ public class BlockDoorGeneric extends BlockDummyable { // return; //super.addCollisionBoxesToList(worldIn, x, y, z, entityBox, collidingBoxes, entityIn); } + + @Override //should fix AI pathfinding + public boolean getBlocksMovement(IBlockAccess world, int x, int y, int z) { //btw the method name is the exact opposite of that it's doing, check net.minecraft.pathfinding.PathNavigate#512 + return hasExtra(world.getBlockMetadata(x, y, z)); //if it's open + } @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){ diff --git a/src/main/java/com/hbm/handler/CasingEjector.java b/src/main/java/com/hbm/handler/CasingEjector.java index 72ec13a3a..94dd08a92 100644 --- a/src/main/java/com/hbm/handler/CasingEjector.java +++ b/src/main/java/com/hbm/handler/CasingEjector.java @@ -127,20 +127,17 @@ public class CasingEjector implements Cloneable { } private static Vec3 rotateVector(Vec3 vector, float pitch, float yaw, float pitchFactor, float yawFactor) { - // Apply randomness to vector - vector.xCoord += rand.nextGaussian() * yawFactor; - vector.yCoord += rand.nextGaussian() * pitchFactor; - vector.zCoord += rand.nextGaussian() * yawFactor; final Matrix4f pitchMatrix = new Matrix4f(), yawMatrix = new Matrix4f(); pitchMatrix.setIdentity(); - pitchMatrix.rotate(-pitch, new Vector3f(1, 0, 0)); + pitchMatrix.rotate(pitch, new Vector3f(1, 0, 0)); yawMatrix.setIdentity(); yawMatrix.rotate(-yaw, new Vector3f(0, 1, 0)); - - final Vector4f vector4f = new Vector4f((float) vector.xCoord, (float) vector.yCoord, (float) vector.zCoord, 1); + + // Apply randomness to vector + final Vector4f vector4f = new Vector4f((float) (vector.xCoord + rand.nextGaussian() * yawFactor), (float) (vector.yCoord + rand.nextGaussian() * pitchFactor), (float) (vector.zCoord + rand.nextGaussian() * yawFactor), 1); Matrix4f.transform(pitchMatrix, vector4f, vector4f); Matrix4f.transform(yawMatrix, vector4f, vector4f); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 0a31c1634..8f115d30f 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -39,7 +39,7 @@ public class Gun12GaugeFactory { static { EJECTOR_SPAS = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12); EJECTOR_SPAS_ALT = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12).setAmount(2); - EJECTOR_BENELLI = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.3, 1, 0).setAngleRange(0.01F, 0.03F); + EJECTOR_BENELLI = new CasingEjector().setMotion(-0.4, 0.3, 0).setOffset(-0.3, 0, 0.5).setAngleRange(0.01F, 0.03F); EJECTOR_UBOINIK = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.3, 0.5).setAngleRange(0.01F, 0.03F); EJECTOR_SSG = new CasingEjector().setMotion(0.2, 0, -0.2).setOffset(0.8, 0, 0).setAngleRange(0.05F, 0.02F).setDelay(20).setAmount(2); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 348f1704c..211c4cab1 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -422,7 +422,7 @@ public class OreDictManager { * PHOSPHORUS */ P_WHITE .hot(5) .ingot(ingot_phosphorus) .block(block_white_phosphorus); - P_RED .hot(2) .dust(powder_fire) .block(block_red_phosphorus); + P_RED .dust(powder_fire) .block(block_red_phosphorus); /* * RARE METALS diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index edc8be8f0..2669476ed 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -331,9 +331,9 @@ public class Fluids { THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); - FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); - PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(1)); - PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(2)); + FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); + PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1)); + PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE diff --git a/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java index cb42e3140..5cee1cb84 100644 --- a/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java @@ -46,8 +46,10 @@ public class ExposureChamberRecipes extends SerializableRecipe { AStack stack = recipe.ingredient.copy(); stack.stacksize = 8; array[0] = stack; + ItemStack output = recipe.output.copy(); + output.stackSize = 8; - recipes.put(array, recipe.output); + recipes.put(array, output); } return recipes; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d91f9821f..6e76aa0d7 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4647,15 +4647,15 @@ public class ModItems { fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); fluid_tank_lead_empty = new Item().setUnlocalizedName("fluid_tank_lead_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); fluid_tank_lead_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_lead_full").setContainerItem(ModItems.fluid_tank_lead_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); - fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); + fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); - glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); glyphid_gland_empty = new Item().setUnlocalizedName("glyphid_gland_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); + glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); siren_track = new ItemCassette().setUnlocalizedName("siren_track").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":cassette"); fluid_duct = new ItemFluidDuct().setUnlocalizedName("fluid_duct").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":duct"); diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index 4ff3cc55f..1776249cf 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -27,16 +27,16 @@ public class ItemPollutionDetector extends Item { float soot = data.pollution[PollutionType.SOOT.ordinal()]; float poison = data.pollution[PollutionType.POISON.ordinal()]; float heavymetal = data.pollution[PollutionType.HEAVYMETAL.ordinal()]; - float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; + //float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; soot = ((int) (soot * 100)) / 100F; poison = ((int) (poison * 100)) / 100F; heavymetal = ((int) (heavymetal * 100)) / 100F; - fallout = ((int) (fallout * 100)) / 100F; + //fallout = ((int) (fallout * 100)) / 100F; PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 4000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 4000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 4000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity); + //PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity); } } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index d4bb78bc6..1ae86289b 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -741,6 +741,16 @@ public class HbmWorldGen implements IWorldGenerator { } } } + + if(rand.nextInt(4) == 0) { + int x = i + rand.nextInt(16) + 8; + int y = 6 + rand.nextInt(13); + int z = j + rand.nextInt(16) + 8; + + if(world.getBlock(x, y, z).isReplaceableOreGen(world, x, y, z, Blocks.stone)) { + world.setBlock(x, y, z, ModBlocks.stone_keyhole); + } + } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 40d84cd27..12297eb61 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4816)"; + public static final String VERSION = "1.0.27 BETA (4824)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java index 519caa36d..b4b01c472 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java @@ -30,11 +30,11 @@ public class ItemRenderM2 extends ItemRenderBase { GL11.glRotatef(30, 1, 0, 0); break; case EQUIPPED_FIRST_PERSON: - GL11.glRotatef(-90, 0, 1, 0); if (Minecraft.getMinecraft().thePlayer.isSneaking()) { + GL11.glRotatef(-90, 0, 1, 0); GL11.glTranslatef(-0.96f, -0.9f, -2); - GL11.glRotatef(-5.6f, 0, 1, 1); + GL11.glRotatef(-5.75f, 0, 1, 1);// Just of by 0.15 /* vvv remove to restore original look vvv */ GL11.glRotatef(1.9F, 0, 0, 1); @@ -44,6 +44,7 @@ public class ItemRenderM2 extends ItemRenderBase { GL11.glTranslatef(0, 1.15F, -1.75F); } else { + GL11.glRotatef(-95, 0, 1, 0); GL11.glTranslatef(0, -1, -3); } GL11.glRotatef(25, 1, 0, 0); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 676409778..aa3ae9816 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -10,6 +10,7 @@ import com.hbm.config.GeneralConfig; import com.hbm.entity.missile.EntityCarrier; import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileDoomsday; import com.hbm.entity.missile.EntityMissileShuttle; import com.hbm.entity.missile.EntityMissileTier0.*; import com.hbm.entity.missile.EntityMissileTier1.*; @@ -87,6 +88,8 @@ public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnerg missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class); missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class); missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class); + + missiles.put(new ComparableStack(ModItems.missile_doomsday), EntityMissileDoomsday.class); } public ItemStack toRender; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index d6211169b..8bcfe28db 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -142,7 +142,7 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements public boolean canProcess(ArcWelderRecipe recipe) { - if(this.power < recipe.consumption) return false; + if(this.power < this.consumption) return false; if(recipe.fluid != null) { if(this.tank.getTankType() != recipe.fluid.type) return false; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index c479982db..3b9c8d3ec 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -3,7 +3,6 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.BlockDummyable; import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.handler.CasingEjector; import com.hbm.inventory.container.ContainerTurretBase; @@ -27,7 +26,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implements IGUIProvider { @@ -221,20 +219,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen return 7; } - protected void updateConnections() { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - for(int i = 0; i < 2; i++) { - for(int j = 0; j < 4; j++) { - this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * -3, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * -3, ForgeDirection.SOUTH); - this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * 2, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * 2, ForgeDirection.NORTH); - this.trySubscribe(worldObj, xCoord + dir.offsetX * -2 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * -2 + rot.offsetZ * (1 - j), ForgeDirection.EAST); - this.trySubscribe(worldObj, xCoord + dir.offsetX * 3 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * 3 + rot.offsetZ * (1 - j), ForgeDirection.WEST); - } - } - } - @Override public void updateEntity() { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java index 4257d55b6..f4866fe7a 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java @@ -3,10 +3,12 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.IRadarCommandReceiver; import net.minecraft.entity.Entity; import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBaseNT implements IRadarCommandReceiver { @@ -52,4 +54,19 @@ public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBase return height < (e.posY + e.height); } } + + @Override + protected void updateConnections() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + for(int i = 0; i < 2; i++) { + for(int j = 0; j < 4; j++) { + this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * -3, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * -3, ForgeDirection.SOUTH); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * 2, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * 2, ForgeDirection.NORTH); + this.trySubscribe(worldObj, xCoord + dir.offsetX * -2 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * -2 + rot.offsetZ * (1 - j), ForgeDirection.EAST); + this.trySubscribe(worldObj, xCoord + dir.offsetX * 3 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * 3 + rot.offsetZ * (1 - j), ForgeDirection.WEST); + } + } + } } diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_base.png b/src/main/resources/assets/hbm/textures/items/dynosphere_base.png deleted file mode 100644 index 8bc3b3769dd5760e1b0579243ac015848ba37e27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 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 diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium.png b/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium.png deleted file mode 100644 index 8204ae217bfc4e25c0520125554c2fa6a9c43426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DXgNUb#V~B5myO2-M?=Pb)S1fD0lc1~P+eI9&x~D&0ch!~M-eQtmt^Q8$*D9V)`!581%(g2t zh}LI0{g{GnFaHXCo5f7)$+dgeyQg1RTE2DI<_aCc;qOs$1L$vO#8)- zbB7guA4in4y(<5(hU25!dCT(6J=`{UXKX${2;G1jU3)@$$2md{}B;d1Eca#++6DC=%;kxhc% zEp#o%M9IBZyPgFuanF=@WZcNnFf)83&jr@FV@|7u81?v0ui>++J0&r-@^bP0l+XkKTE3E9 diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium_charged.png deleted file mode 100644 index 9d6c031460c1a95e2b537ebe551ef8a6d8f29f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmV@P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0eeYAK~y+TrBb_2 zLO~Rqy({vjr>4*jqlwxOK7kHC76=`MQfRL>gbKnVgy(&%bCwI<3zGPlWV0-LX3m+} ztBf)D51erSGtN$M-)b496zuKgC7vo3WiO6!BJj{|n?xc3luB??DFmAhz#6~bhv&L@ zJ`#!v2su?QL$UCxSj5|8VkeO0t=I4u3v34i^s3c^NGt;_ok_kX`C~eT@;s>V7@Afz z|92>&wGOLyI0%SmhhuAw{T`BaG6^T0wxWt;C!4kFmXn6G$OP=7NH*Io0wFLse>9?f z12dZeaz_hhx!j#Y90a7$21cR{Z9WI`d4QdT3=(Z!5CF15d6M@Ud5T>~_sXp#aU!YPEtyZ8(A9Q~}8z?YYAtdbQg3ui(Fmrz93>R)54^0oW>`uC-W15D@_KJilBaD^j~J28f~vfFwx(D9e)BbnbK~6>9NkD_}Bu;`_Hp z5Do#QgF#gfxZVo?!GVFQx~IQ&`>emV4BL+k!oT#ZkQJ$2ZI*Uxf846^nm*fO{z(N@ urK&0bIvAHcet+=>o*kt94{I8vJHQSO=TSD9>#=eG0000{^_D06ElyfhW)1~V-*JTF; zO;4}*{!aGr_xJY$P2}xrW)$eu{P{6);r8v~>jWc>%^J)V6{|VJouq(1^qQ8xXwvM9 RFMyt6@O1TaS?83{1OO9vZax42 diff --git a/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png index cb8f06db88fbb187f679f8b9dc4055be599f22f6..a7e2968c4378f8fcd17626b5ee3068b26f54d3b7 100644 GIT binary patch delta 508 zcmV!DBDTzsAvlK-nbZS93 z2#U8w#I1rLh!h7Got(r?Hy1&77jeqqq7I4E6cH99YzfY^}GV*-h-QO7BI*ucExqrS(u0J|2tBn=1Q(-P# z+J{LJP1>{rX!>8c2U3_GieeJH2HUoOe{l8Tf;_c&63eV{ki!U)cyy`mEc4>?3j3`r zg;bi&eubxxKd}9L8X*Mba#>N2-_FScM*|9`MTv_fm_;MXPcE47xPiRb*gbhqONe*Xyk&jn*nPGvJ5($eYR< zB051nmE-$%i`BJHNGX|$7qC)M`YvM&0Q$?j>x%E|GIe%ynz-;dlAgoYVStbC`50=L zT(ZcSnME{3=gG5IKztnHxZAULO0qX-lbVdObnOH}wFv2PB7}%(1y0|%LL_7m$bj(s yB8Fk?J)~o|@={YJo-a{Vjh&Il+dYQ#AK(|b5w>)^Q5pvT0000b;@5JjIYZDWrRQ?Li1po)9|OPs-JIA0Dx zO&bYO_yVaof+@Dy&O(y{tpqrUZIoZFR+_i}?;rRtZN4_!~UBi{|9(U;b9+(zq@WOo@=N!w= z<)3l#=ZhF)mK?}lMx6`*39|TD0Pt!%HwPl7s-~*eG|i8I(O(u3tE!5kC@9O4wrwZ1 zGf-XErmE(>f7sZ`q~~_vwkNZ!+(SYL^J65)OM}1Z8zSgUqWl{e=Kufz07*qoM6N<$ Ef}s3$TL1t6 From 13debc2cab78f46e2b440a46b08bd451c9fe9a7c Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 26 Dec 2023 12:04:15 +0100 Subject: [PATCH 041/376] decimated rail rendering (we're so back) --- .../java/com/hbm/blocks/rail/IRenderRail.java | 13 + .../com/hbm/blocks/rail/RailNarrowCurve.java | 39 +- .../hbm/blocks/rail/RailNarrowStraight.java | 35 +- .../hbm/blocks/rail/RailStandardBuffer.java | 48 +- .../hbm/blocks/rail/RailStandardCurve.java | 40 +- .../com/hbm/blocks/rail/RailStandardRamp.java | 48 +- .../hbm/blocks/rail/RailStandardStraight.java | 41 +- .../com/hbm/blocks/test/TestBombAdvanced.java | 5 +- .../java/com/hbm/entity/EntityMappings.java | 1 - .../entity/logic/EntityNukeExplosionNT.java | 52 -- .../projectile/EntityThrowableInterp.java | 18 +- .../com/hbm/explosion/nt/IExplosionLogic.java | 8 - src/main/java/com/hbm/explosion/nt/Mark5.java | 282 ----------- .../java/com/hbm/explosion/nt/Mark5Ausf2.java | 447 ------------------ src/main/java/com/hbm/main/ClientProxy.java | 7 +- .../com/hbm/main/ModEventHandlerClient.java | 10 +- .../render/block/RenderNarrowCurveRail.java | 69 --- ...arrowStraightRail.java => RenderRail.java} | 33 +- .../block/RenderStandardBufferRail.java | 77 --- .../render/block/RenderStandardCurveRail.java | 70 --- .../render/block/RenderStandardRampRail.java | 80 ---- .../block/RenderStandardStraightRail.java | 75 --- 22 files changed, 266 insertions(+), 1232 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/rail/IRenderRail.java delete mode 100644 src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java delete mode 100644 src/main/java/com/hbm/explosion/nt/IExplosionLogic.java delete mode 100644 src/main/java/com/hbm/explosion/nt/Mark5.java delete mode 100644 src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java delete mode 100644 src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java rename src/main/java/com/hbm/render/block/{RenderNarrowStraightRail.java => RenderRail.java} (53%) delete mode 100644 src/main/java/com/hbm/render/block/RenderStandardBufferRail.java delete mode 100644 src/main/java/com/hbm/render/block/RenderStandardCurveRail.java delete mode 100644 src/main/java/com/hbm/render/block/RenderStandardRampRail.java delete mode 100644 src/main/java/com/hbm/render/block/RenderStandardStraightRail.java diff --git a/src/main/java/com/hbm/blocks/rail/IRenderRail.java b/src/main/java/com/hbm/blocks/rail/IRenderRail.java new file mode 100644 index 000000000..df4c2ed4d --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/IRenderRail.java @@ -0,0 +1,13 @@ +package com.hbm.blocks.rail; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public interface IRenderRail { + + @SideOnly(Side.CLIENT) public void renderInventory(Tessellator tessellator, Block block, int metadata); + @SideOnly(Side.CLIENT) public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z); +} diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java index ac317b65d..5da8a5041 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -1,20 +1,28 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailNarrowCurve extends BlockDummyable implements IRailNTM { +public class RailNarrowCurve extends BlockDummyable implements IRailNTM, IRenderRail { public RailNarrowCurve() { super(Material.iron); @@ -25,11 +33,9 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { - return renderID; + return RailStandardStraight.renderID; } @Override @@ -141,4 +147,27 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM { this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.2, 0.2, 0.2); + GL11.glTranslated(2.5, -0.0625, -1.5); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 12) rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java index 624087974..a625dd4b5 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -1,20 +1,28 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailNarrowStraight extends BlockDummyable implements IRailNTM { +public class RailNarrowStraight extends BlockDummyable implements IRailNTM, IRenderRail { public RailNarrowStraight() { super(Material.iron); @@ -25,11 +33,9 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { - return renderID; + return RailStandardStraight.renderID; } @Override @@ -112,4 +118,23 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z) { return TrackGauge.NARROW; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + float rotation = 0; + if(meta == 2 || meta == 3 || meta == 12 || meta == 13) rotation = 90F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java index bb503060a..96f9fde1a 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -1,19 +1,27 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardBuffer extends BlockDummyable implements IRailNTM { +public class RailStandardBuffer extends BlockDummyable implements IRailNTM, IRenderRail { public RailStandardBuffer() { super(Material.iron); @@ -24,11 +32,9 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { - return renderID; + return RailStandardStraight.renderID; } @Override @@ -134,4 +140,36 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z) { return TrackGauge.STANDARD; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 12) rotation = (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 10bed1608..dcbecfc4f 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -1,20 +1,28 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardCurve extends BlockDummyable implements IRailNTM { +public class RailStandardCurve extends BlockDummyable implements IRailNTM, IRenderRail { public RailStandardCurve() { super(Material.iron); @@ -25,11 +33,9 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { - return renderID; + return RailStandardStraight.renderID; } @Override @@ -198,4 +204,28 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { BlockDummyable.safeRem = false; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.2, 0.2, 0.2); + GL11.glTranslated(2.5, -0.0625, -1.5); + GL11.glRotated(90, 0, 1, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java index d6911418c..54fb53d2a 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -1,21 +1,29 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardRamp extends BlockDummyable implements IRailNTM { +public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRenderRail { public RailStandardRamp() { super(Material.iron); @@ -31,11 +39,9 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { - return renderID; + return RailStandardStraight.renderID; } @Override @@ -135,4 +141,36 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), this, dir); MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, -1, 2, 2, 1, 0}, this, dir); } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index b68aedd68..b79d3b616 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -1,20 +1,29 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardStraight extends BlockDummyable implements IRailNTM { +public class RailStandardStraight extends BlockDummyable implements IRailNTM, IRenderRail { public RailStandardStraight() { super(Material.iron); @@ -117,4 +126,34 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z) { return TrackGauge.STANDARD; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/test/TestBombAdvanced.java b/src/main/java/com/hbm/blocks/test/TestBombAdvanced.java index 2be4012a6..f32cf05e1 100644 --- a/src/main/java/com/hbm/blocks/test/TestBombAdvanced.java +++ b/src/main/java/com/hbm/blocks/test/TestBombAdvanced.java @@ -1,6 +1,6 @@ package com.hbm.blocks.test; -import com.hbm.entity.logic.EntityNukeExplosionNT; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityTestBombAdvanced; @@ -133,7 +133,6 @@ public class TestBombAdvanced extends BlockContainer { }*/ world.setBlock(x, y, z, Blocks.air); - world.spawnEntityInWorld(EntityNukeExplosionNT.statFacMKV(world, x + 0.5, y + 0.5, z + 0.5, 100)); - //world.spawnEntityInWorld(EntityNukeExplosionMK4.statFacNoRad(world, 50, x, y, z)); + world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, 50, x, y, z)); } } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 6e25d2040..904f4920c 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -193,7 +193,6 @@ public class EntityMappings { addEntity(EntityBlockSpider.class, "entity_taintcrawler", 1000); addEntity(EntityRBMKDebris.class, "entity_rbmk_debris", 1000); addEntity(EntityUFO.class, "entity_ntm_ufo", 1000); - addEntity(EntityNukeExplosionNT.class, "entity_ntm_explosion_nt", 1000); addEntity(EntityQuasar.class, "entity_digamma_quasar", 250); addEntity(EntitySpear.class, "entity_digamma_spear", 1000); addEntity(EntityMissileVolcano.class, "entity_missile_volcano", 1000); diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java deleted file mode 100644 index 014e0e3fc..000000000 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hbm.entity.logic; - -import com.hbm.explosion.nt.IExplosionLogic; -import com.hbm.explosion.nt.Mark5Ausf2; - -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -@Deprecated -public class EntityNukeExplosionNT extends Entity { - - private IExplosionLogic explosion; - - public EntityNukeExplosionNT(World world) { - super(world); - } - - public EntityNukeExplosionNT loadLogic(IExplosionLogic explosion) { - this.explosion = explosion; - return this; - } - - @Override - public void onUpdate() { - - if(!worldObj.isRemote) { - if(this.explosion == null || this.explosion.isDone()) { - this.setDead(); - return; - } - - this.explosion.updateLogic(); - } - } - - public static EntityNukeExplosionNT statFacMKV(World world, double x, double y, double z, float power) { - EntityNukeExplosionNT essploshun = new EntityNukeExplosionNT(world); - essploshun.setPositionAndRotation(x, y, z, 0, 0); - essploshun.loadLogic(new Mark5Ausf2(world, power, (float) x, (float) y, (float) z)); - return essploshun; - } - - @Override - protected void entityInit() { } - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java index 08c860a57..b0ac2f773 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java @@ -7,18 +7,18 @@ import net.minecraft.world.World; public abstract class EntityThrowableInterp extends EntityThrowableNT { - private int turnProgress; - private double syncPosX; - private double syncPosY; - private double syncPosZ; - private double syncYaw; - private double syncPitch; + protected int turnProgress; + protected double syncPosX; + protected double syncPosY; + protected double syncPosZ; + protected double syncYaw; + protected double syncPitch; @SideOnly(Side.CLIENT) - private double velocityX; + protected double velocityX; @SideOnly(Side.CLIENT) - private double velocityY; + protected double velocityY; @SideOnly(Side.CLIENT) - private double velocityZ; + protected double velocityZ; public EntityThrowableInterp(World world) { super(world); diff --git a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java b/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java deleted file mode 100644 index 0886cb3eb..000000000 --- a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.hbm.explosion.nt; - -@Deprecated -public interface IExplosionLogic { - - public void updateLogic(); - public boolean isDone(); -} diff --git a/src/main/java/com/hbm/explosion/nt/Mark5.java b/src/main/java/com/hbm/explosion/nt/Mark5.java deleted file mode 100644 index 16d2d5ee4..000000000 --- a/src/main/java/com/hbm/explosion/nt/Mark5.java +++ /dev/null @@ -1,282 +0,0 @@ -package com.hbm.explosion.nt; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -@Deprecated -public class Mark5 implements IExplosionLogic { - - //holds rays after being calculated up to where the blocks get removed - private List pendingRays = new ArrayList(); - //once a ray has been processed, it will be buffered for extension - private List completedRays = new ArrayList(); - //buffered blocks marked for deletion - private Set buffer = new HashSet(); - - private World world; - private float strength; - float originX; - float originY; - float originZ; - float angularDelta; - - //0: calculate blocks to destroy - //1: destroy blocks - //2: generate new rays - int phase = 0; - - public Mark5(World world, float strength, float x, float y, float z) { - this.world = world; - this.strength = strength; - this.originX = x; - this.originY = y; - this.originZ = z; - - this.initRays(); - } - - private void initRays() { - - float startLen = 0.5F; - - //top - pendingRays.add(new MVRay(strength, originX, originY, originZ, 0F, (float) Math.PI * 0.5F, startLen)); - //bottom - pendingRays.add(new MVRay(strength, originX, originY, originZ, 0F, -(float) Math.PI * 0.5F, startLen)); - - float pilet = (float) Math.PI * 0.25F; - - for(int i = 0; i < 8; i++) { - pendingRays.add(new MVRay(strength, originX, originY, originZ, pilet * i, 0F, startLen)); - - {//if(i % 2 == 0) { - pendingRays.add(new MVRay(strength, originX, originY, originZ, pilet * i, -pilet, startLen)); - pendingRays.add(new MVRay(strength, originX, originY, originZ, pilet * i, pilet, startLen)); - } - } - - this.angularDelta = pilet; - } - - @Override - public void updateLogic() { - - switch(this.phase) { - case 0: processRays(5000); break; - case 1: breakBlocks(10000); break; - case 2: repopulate(20000); break; - } - } - - private void processRays(int amount) { - - if(this.phase == 0 && this.pendingRays.isEmpty()) { - this.phase = 1; - return; - } - - int rem = 0; - - for(MVRay ray : this.pendingRays) { - - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ(ray.pitch); - vec.rotateAroundY(ray.yaw); - boolean shouldSplit = true; - float lastIndex = 0; - - for(float i = 0; i < ray.length; i += 0.5F) { - - lastIndex = i; - int x = (int)Math.floor(ray.x + vec.xCoord * i); - int y = (int)Math.floor(ray.y + vec.yCoord * i); - int z = (int)Math.floor(ray.z + vec.zCoord * i); - - BlockPos pos = new BlockPos(x, y, z); - - if(y > 255 || y < 0) { - shouldSplit = false; - break; - } - - Block b = world.getBlock(x, y, z); - - float res = (b.getMaterial().isLiquid() ? 0 : b.getExplosionResistance(null)) + Blocks.air.getExplosionResistance(null); - - ray.power -= (res * res); - - if(ray.power <= 0) { - shouldSplit = false; - break; - } - - if(b != Blocks.air) - this.buffer.add(pos); - } - - if(shouldSplit) { - ray.x = ray.x + (float)vec.xCoord * lastIndex; - ray.y = ray.y + (float)vec.yCoord * lastIndex; - ray.z = ray.z + (float)vec.zCoord * lastIndex; - this.completedRays.add(ray); - } - - rem++; - - if(rem == amount) - break; - } - - this.pendingRays.subList(0, rem).clear(); - - if(this.pendingRays.isEmpty()) { - this.phase = 1; - } - } - - private void breakBlocks(int amount) { - - if(this.phase == 1 && this.buffer.isEmpty()) { - this.angularDelta *= 0.5F; - this.phase = 2; - return; - } - - int rem = 0; - - List toRem = new ArrayList(); - - for(BlockPos pos : this.buffer) { - world.setBlock(pos.x, pos.y, pos.z, Blocks.air, 0, 3); - - toRem.add(pos); - rem++; - - if(rem == amount) - break; - } - - this.buffer.removeAll(toRem); - - if(this.buffer.isEmpty()) { - this.angularDelta *= 0.5F; - this.phase = 2; - } - } - - private void repopulate(int amount) { - - if(this.phase == 2 && this.completedRays.isEmpty()) { - this.phase = 0; - } - - int rem = 0; - - for(MVRay ray : this.completedRays) { - - for(int i = 0; i < 2; i++) { - for(int j = 0; j < 2; j++) { - MVRay child = new MVRay(ray.power, ray.x, ray.y, ray.z, ray.yaw + this.angularDelta * i, ray.pitch + this.angularDelta * j, ray.length * 2); - this.pendingRays.add(child); - } - } - - rem++; - - if(rem == amount) - break; - } - - this.completedRays.subList(0, rem).clear(); - } - - @Override - public boolean isDone() { - return this.pendingRays.isEmpty() && this.completedRays.isEmpty() && this.buffer.isEmpty(); - } - - public static class MVRay { - - //initiated with starting power, once processed it shows the power left - float power; - //once calculated, this becomes true - boolean collected = false; - float x; - float y; - float z; - float yaw; - float pitch; - float length; - - public MVRay(float power, float x, float y, float z, float yaw, float pitch, float length) { - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - - public MVRay(float power, float x, float y, float z, Vec3 dir, float length) { - - double len = dir.lengthVector(); - - float yaw = (float)Math.atan2(dir.zCoord, dir.xCoord); - float pitch = (float)Math.asin(dir.yCoord / len); - - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - } - - public static class BlockPos { - - int x; - int y; - int z; - - public BlockPos(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + x; - result = prime * result + y; - result = prime * result + z; - return result; - } - - @Override - public boolean equals(Object obj) { - - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; - - BlockPos other = (BlockPos) obj; - if(x != other.x) return false; - if(y != other.y) return false; - if(z != other.z) return false; - - return true; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java b/src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java deleted file mode 100644 index 7c2d60e31..000000000 --- a/src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java +++ /dev/null @@ -1,447 +0,0 @@ -package com.hbm.explosion.nt; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -/* - * Turns out segmenting makes the craters ugly and, for whatever reason, doesn't actually improve performance (??????) - * Ausf3 will use the same approach as MK4 but with some optimizations regarding setBlock redundancy and getBlock operations - * See: docvt7 - */ -@Deprecated -public class Mark5Ausf2 implements IExplosionLogic { - - //holds rays after being calculated up to where the blocks get removed - private HorizontalSegment[] segments; - private HorizontalSegment[] repopulatedSegments; - //buffered blocks marked for deletion - private Set buffer = new HashSet(); - - private World world; - private float strength; - float originX; - float originY; - float originZ; - float length; - - //0: calculate blocks to destroy - //1: destroy blocks - //2: generate new rays - int phase = 0; - - public Mark5Ausf2(World world, float strength, float x, float y, float z) { - this.world = world; - this.strength = strength; - this.originX = x; - this.originY = y; - this.originZ = z; - - this.initRays(); - } - - private double getResolutionMult() { - return 5D; - } - - private void initRays() { - - this.length = 5F; //how long the current rays are - - double bow = length * Math.PI; //one "bow", the distance between the poles along the circumference ( U/2 ) - int bowCount = (int) Math.ceil(bow * getResolutionMult()); //how many segments we want along one bow, usually 1 per block + a resolution multiplier - double bowDelta = (Math.PI / (double) (bowCount - 1)); //the angular difference (pitch) between where each segment is - - segments = new HorizontalSegment[bowCount]; - - for(int i = 0; i < bowCount; i++) { - double currBow = bowDelta * i; //the current angle along the bow (i.e. the pitch of the horizontal ring) - double ringRadius = Math.sin(currBow) * length; //the radius of the current ring - double ringCircumference = 2D * ringRadius * Math.PI; //the circumference for the ring - int ringCount = (int) Math.max(Math.ceil(ringCircumference * getResolutionMult()), 1); //how many rays we want per ring (1 per block plus extra resolution) - double ringDelta = ((Math.PI * 2D) / (double) (ringCount - 1)); //the angular difference (yaw) between rays in a ring - - HorizontalSegment seg = new HorizontalSegment(ringCount); - float pitch = (float) currBow; - - for(int j = 0; j < ringCount; j++) { - float yaw = (float)(ringDelta * j); - - //if(yaw < Math.PI * 0.5 && pitch < Math.PI) - seg.rays[j] = new MVRay(strength, originX, originY, originZ, yaw, pitch, length); - } - - segments[i] = seg; - } - - /*System.out.println("Initialized with" + segments.length + " segments!"); - - for(HorizontalSegment seg : segments) { - - if(seg == null) { - System.out.println("NULL"); - } else { - System.out.println(seg.rays.length); - } - }*/ - } - - @Override - public void updateLogic() { - - switch(this.phase) { - case 0: processRays(50000); break; - case 1: breakBlocks(2000); break; - case 2: repopulate(); break; - } - } - - private int processBow = 0; - private int processRing = 0; - - private void endPhaseZero() { - this.processBow = 0; - this.processRing = 0; - this.phase = 1; - } - - private void processRays(int amount) { - - while(true) { - - if(amount < 0) { - return; - } - - if(this.segments[processBow] == null || this.processRing >= this.segments[processBow].rays.length) { - this.processRing = 0; - this.processBow++; - - if(this.processBow >= this.segments.length) { - endPhaseZero(); - return; - } - continue; - } - - if(this.processBow >= this.segments.length) { - endPhaseZero(); - return; - } - - MVRay ray = this.segments[processBow].rays[this.processRing]; - - if(ray != null) { - - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ(ray.pitch); - vec.rotateAroundY(ray.yaw); - - double finalX = 0; - double finalY = 0; - double finalZ = 0; - - for(float i = 0; i < ray.length; i += 0.5F) { - - finalX = ray.x + vec.xCoord * i; - finalY = ray.y + vec.yCoord * i; - finalZ = ray.z + vec.zCoord * i; - int x = (int)Math.floor(finalX); - int y = (int)Math.floor(finalY); - int z = (int)Math.floor(finalZ); - - //System.out.println(ray.pitch + " " + ray.yaw + " / " + x + " " + y + " " + z); - - BlockPos pos = new BlockPos(x, y, z); - - if(y > 255 || y < 0) { - break; - } - - Block b = world.getBlock(x, y, z); - - float res = (b.getMaterial().isLiquid() ? (float)Math.pow(Blocks.air.getExplosionResistance(null), 1.25) : (float)Math.pow(b.getExplosionResistance(null), 1.25)); - - ray.power -= res; - - if(ray.power <= 0) { - break; - } - - if(b != Blocks.air) - this.buffer.add(pos); - } - - if(ray.power <= 0 || finalY < 0 || finalY > 255 || this.length > this.strength) { - this.segments[processBow].rays[this.processRing] = null; - } - ray.x = (float) finalX; - ray.y = (float) finalY; - ray.z = (float) finalZ; - } - - amount--; - this.processRing++; - } - } - - private void breakBlocks(int amount) { - - if(this.phase == 1 && this.buffer.isEmpty()) { - this.phase = 2; - return; - } - - int rem = 0; - - List toRem = new ArrayList(); - - for(BlockPos pos : this.buffer) { - world.setBlock(pos.x, pos.y, pos.z, Blocks.air, 0, 3); - - toRem.add(pos); - rem++; - - if(rem == amount) - break; - } - - this.buffer.removeAll(toRem); - - if(this.buffer.isEmpty()) { - this.phase = 2; - } - } - - private void repopulate() { - - boolean didYouDoLiterallyAnything = false; - this.length *= 2; - - double bow = length * Math.PI; - int bowCount = (int) Math.ceil(bow * getResolutionMult()); - double bowDelta = (Math.PI / (double) (bowCount - 1)); - - repopulatedSegments = new HorizontalSegment[bowCount]; - - for(int i = 0; i < bowCount; i++) { - - double currBow = bowDelta * i; - double ringRadius = Math.sin(currBow) * length; - double ringCircumference = 2D * ringRadius * Math.PI; - int ringCount = (int) Math.max(Math.ceil(ringCircumference * getResolutionMult()), 1); - double ringDelta = ((Math.PI * 2D) / (double) (ringCount - 1)); - - float pitch = (float) currBow; - HorizontalSegment parentSegment = fromAngle(pitch); - - if(parentSegment != null) { - - HorizontalSegment seg = new HorizontalSegment(ringCount); - - for(int j = 0; j < ringCount; j++) { - float yaw = (float)(ringDelta * j); - - MVRay parentRay = parentSegment.fromAngle(yaw); - - if(parentRay != null && parentRay.power > 0) { - - /*Vec3 newDest = Vec3.createVectorHelper(length, 0D, 0D); - newDest.rotateAroundZ(pitch); - newDest.rotateAroundY(yaw); - Vec3 delta = Vec3.createVectorHelper(newDest.xCoord - parentRay.x, newDest.yCoord - parentRay.y, newDest.zCoord - parentRay.z); - - double deltaLen = delta.lengthVector(); - float pLen = parentRay.length; - - double s_deltaLen = Math.sqrt(delta.xCoord * delta.xCoord + delta.yCoord * delta.yCoord); - double s_alpha0 = parentRay.pitch; - double s_delta = Math.acos((pLen * pLen + s_deltaLen * s_deltaLen - length * length) / (2 * pLen * s_deltaLen)); - double newPitch = s_alpha0 + (Math.PI - s_delta); - - double r_deltaLen = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); - double r_alpha0 = parentRay.yaw; - double r_delta = Math.acos((pLen * pLen + r_deltaLen * r_deltaLen - length * length) / (2 * pLen * r_deltaLen)); - double newYaw = r_alpha0 + (Math.PI - r_delta);*/ - - /*System.out.println("deltaLen: " + deltaLen); - System.out.println("pLen: " + pLen); - System.out.println("s_deltaLen: " + s_deltaLen); - System.out.println("s_alpha0: " + s_alpha0); - System.out.println("s_delta: " + s_delta); - System.out.println("newPitch: " + newPitch); - System.out.println("r_deltaLen: " + r_deltaLen); - System.out.println("r_alpha0: " + r_alpha0); - System.out.println("r_delta: " + r_delta); - System.out.println("newYaw: " + newYaw);*/ - /*System.out.println("(pLen * pLen + s_deltaLen * s_deltaLen - length * length) / (2 * pLen * s_deltaLen)"); - System.out.println("" + (pLen * pLen + s_deltaLen * s_deltaLen - length * length) / (2 * pLen * s_deltaLen)); - System.out.println("(pLen * pLen + r_deltaLen * r_deltaLen - length * length) / (2 * pLen * r_deltaLen)"); - System.out.println("" + (pLen * pLen + r_deltaLen * r_deltaLen - length * length) / (2 * pLen * r_deltaLen));*/ - - Vec3 len = Vec3.createVectorHelper(parentRay.x - originX, parentRay.y - originY, parentRay.z - originZ); - double totalLen = len.lengthVector(); - Vec3 normal = Vec3.createVectorHelper(totalLen, 0D, 0D); - normal.rotateAroundZ(pitch); - normal.rotateAroundY(yaw); - - //double surface = 4 * Math.PI * this.length * this.length; - //double prevSurface = 4 * Math.PI * totalLen * totalLen; - float newPower = parentRay.power; - - MVRay newRay = new MVRay(newPower, - (float)(this.originX - normal.xCoord), - (float)(this.originY - normal.yCoord), - (float)(this.originZ - normal.zCoord), - yaw, pitch, (float) (this.length - totalLen)); - - seg.rays[j] = newRay; - repopulatedSegments[i] = seg; - didYouDoLiterallyAnything = true; - } - } - } - } - - this.segments = this.repopulatedSegments; - this.repopulatedSegments = null; - - - /*for(HorizontalSegment seg : segments) { - - if(seg == null) { - System.out.println("NULL"); - } else { - System.out.println(seg.rays.length); - } - } - System.out.println("STOP");*/ - - this.phase = 0; - - if(!didYouDoLiterallyAnything) { - this.isDone = true; - } - } - - private HorizontalSegment fromAngle(float pitch) { - int size = this.segments.length; - int index = (int)Math.floor((pitch * size) / Math.PI) % this.segments.length; - - if(index >= this.segments.length || index < 0) - return null; - - return this.segments[index]; - } - - private boolean isDone = false; - - @Override - public boolean isDone() { - return isDone; - } - - public static class HorizontalSegment { - - MVRay[] rays; - - private HorizontalSegment(int size) { - rays = new MVRay[size]; - } - - private MVRay fromAngle(float yaw) { - int size = rays.length; - int index = (int)Math.floor((yaw * size) / (Math.PI * 2)) % this.rays.length; - - if(index >= this.rays.length || index < 0) - return null; - - return rays[index]; - } - } - - public static class MVRay { - - //initiated with starting power, once processed it shows the power left - float power; - //once calculated, this becomes true - boolean collected = false; - float x; - float y; - float z; - float yaw; - float pitch; - float length; - boolean tracked; - - public MVRay(float power, float x, float y, float z, float yaw, float pitch, float length) { - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - - public MVRay(float power, float x, float y, float z, Vec3 dir, float length) { - - double len = dir.lengthVector(); - - float yaw = (float)Math.atan2(dir.zCoord, dir.xCoord); - float pitch = (float)Math.asin(dir.yCoord / len); - - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - } - - public static class BlockPos { - - int x; - int y; - int z; - - public BlockPos(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + x; - result = prime * result + y; - result = prime * result + z; - return result; - } - - @Override - public boolean equals(Object obj) { - - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; - - BlockPos other = (BlockPos) obj; - if(x != other.x) return false; - if(y != other.y) return false; - if(z != other.z) return false; - - return true; - } - } -} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 7a4cdf259..ab715f454 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -834,12 +834,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderFoundryTank()); RenderingRegistry.registerBlockHandler(new RenderFoundryOutlet()); - RenderingRegistry.registerBlockHandler(new RenderNarrowStraightRail()); - RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardCurveRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardRampRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardBufferRail()); + RenderingRegistry.registerBlockHandler(new RenderRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 7e3226470..1505391ae 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1,6 +1,7 @@ package com.hbm.main; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Random; @@ -12,6 +13,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; +import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; @@ -64,6 +69,7 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; @@ -235,7 +241,7 @@ public class ModEventHandlerClient { Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); }*/ - /*List text = new ArrayList(); + List text = new ArrayList(); MovingObjectPosition pos = Library.rayTrace(player, 500, 1, false, true, false); for(int i = 0; i < 2; i++) if(pos != null && pos.typeOfHit == pos.typeOfHit.BLOCK) { @@ -298,7 +304,7 @@ public class ModEventHandlerClient { } while(distanceToCover != 0); ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text); - }*/ + } } /// HANLDE ANIMATION BUSES /// diff --git a/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java b/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java deleted file mode 100644 index 0cb029690..000000000 --- a/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailNarrowCurve; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderNarrowCurveRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glScaled(0.2, 0.2, 0.2); - GL11.glTranslated(2.5, -0.0625, -1.5); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 12) - rotation = 90F / 180F * (float) Math.PI; - if(meta == 14) - rotation = 180F / 180F * (float) Math.PI; - if(meta == 13) - rotation = 270F / 180F * (float) Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailNarrowCurve.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java b/src/main/java/com/hbm/render/block/RenderRail.java similarity index 53% rename from src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java rename to src/main/java/com/hbm/render/block/RenderRail.java index 3f2c40c78..a9460d17a 100644 --- a/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java +++ b/src/main/java/com/hbm/render/block/RenderRail.java @@ -2,51 +2,34 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; -import com.hbm.blocks.rail.RailNarrowStraight; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; +import com.hbm.blocks.rail.IRenderRail; +import com.hbm.blocks.rail.RailStandardStraight; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; -public class RenderNarrowStraightRail implements ISimpleBlockRenderingHandler { +public class RenderRail implements ISimpleBlockRenderingHandler { @Override public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - GL11.glPushMatrix(); Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - + IRenderRail rail = (IRenderRail) block; + rail.renderInventory(tessellator, block, metadata); GL11.glPopMatrix(); } @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - Tessellator tessellator = Tessellator.instance; - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); tessellator.setColorOpaque_F(1, 1, 1); int meta = world.getBlockMetadata(x, y, z); - - float rotation = 0; - - if(meta == 2 || meta == 3 || meta == 12 || meta == 13) - rotation = 90F / 180F * (float) Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - + IRenderRail rail = (IRenderRail) block; + rail.renderWorld(tessellator, block, meta, world, x, y, z); return true; } @@ -57,6 +40,6 @@ public class RenderNarrowStraightRail implements ISimpleBlockRenderingHandler { @Override public int getRenderId() { - return RailNarrowStraight.renderID; + return RailStandardStraight.renderID; } } diff --git a/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java b/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java deleted file mode 100644 index 5cf6381e1..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardBuffer; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardBufferRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(0.3, 0.3, 0.3); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 12) rotation = (float) Math.PI; - if(meta == 14) rotation = 270F / 180F * (float) Math.PI; - if(meta == 15) rotation = 90F / 180F * (float) Math.PI; - - if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardBuffer.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java b/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java deleted file mode 100644 index a238d461d..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardCurve; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardCurveRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glScaled(0.2, 0.2, 0.2); - GL11.glTranslated(2.5, -0.0625, -1.5); - GL11.glRotated(90, 0, 1, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 15) - rotation = 90F / 180F * (float) Math.PI; - if(meta == 12) - rotation = 180F / 180F * (float) Math.PI; - if(meta == 14) - rotation = 270F / 180F * (float) Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardCurve.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderStandardRampRail.java b/src/main/java/com/hbm/render/block/RenderStandardRampRail.java deleted file mode 100644 index eb1e245fd..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardRampRail.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardRamp; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardRampRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(0.3, 0.3, 0.3); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 15) - rotation = 90F / 180F * (float) Math.PI; - if(meta == 12) - rotation = 180F / 180F * (float) Math.PI; - if(meta == 14) - rotation = 270F / 180F * (float) Math.PI; - - if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardRamp.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java deleted file mode 100644 index 5108aaea2..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardStraight; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardStraightRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(0.3, 0.3, 0.3); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; - - if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardStraight.renderID; - } -} From 8b4e4bf4f30cea87afaef5f35d331e995ef566d3 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 27 Dec 2023 17:59:28 +0100 Subject: [PATCH 042/376] and now everything is broken --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../blocks/rail/BlockRailWaypointSystem.java | 203 + .../java/com/hbm/blocks/rail/IRailNTM.java | 8 +- .../java/com/hbm/blocks/rail/IRenderRail.java | 3 + .../com/hbm/blocks/rail/RailNarrowCurve.java | 2 +- .../hbm/blocks/rail/RailNarrowStraight.java | 2 +- .../hbm/blocks/rail/RailStandardBuffer.java | 2 +- .../hbm/blocks/rail/RailStandardCurve.java | 2 +- .../com/hbm/blocks/rail/RailStandardRamp.java | 2 +- .../hbm/blocks/rail/RailStandardStraight.java | 3 - .../hbm/blocks/rail/RailStandardSwitch.java | 269 ++ .../hbm/entity/train/EntityRailCarBase.java | 23 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../java/com/hbm/tileentity/TileMappings.java | 3 + .../models/blocks/rail_standard_switch.obj | 3923 +++++++++++++++++ .../hbm/textures/blocks/rail_switch_sign.png | Bin 0 -> 583 bytes 16 files changed, 4427 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/rail_switch_sign.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fa2c429f3..1b69835f3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1174,6 +1174,7 @@ public class ModBlocks { public static Block rail_large_curve; public static Block rail_large_ramp; public static Block rail_large_buffer; + public static Block rail_large_switch; public static Block statue_elb; public static Block statue_elb_g; @@ -2251,6 +2252,7 @@ public class ModBlocks { rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); + rail_large_switch = new RailStandardSwitch().setBlockName("rail_large_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); 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"); @@ -3551,6 +3553,7 @@ public class ModBlocks { register(rail_large_curve); register(rail_large_ramp); register(rail_large_buffer); + register(rail_large_switch); //Crate GameRegistry.registerBlock(crate, crate.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java new file mode 100644 index 000000000..7ef5f4fb0 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java @@ -0,0 +1,203 @@ +package com.hbm.blocks.rail; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.BobMathUtil; +import com.hbm.util.ChatBuilder; +import com.hbm.util.ParticleUtil; +import com.hbm.util.Tuple.Pair; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.material.Material; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public abstract class BlockRailWaypointSystem extends BlockDummyable implements IRailNTM { + + public List railDefs = new ArrayList(); + + public BlockRailWaypointSystem(Material mat) { + super(mat); + } + + /** Whether the train at position FROM can move towards the waypoint TO along the supplied railDef, also supplies world and core position */ + public boolean canCross(World world, int x, int y, int z, Vec3 from, Vec3 to, RailDef def) { + return true; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ); + double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; + Vec3 trainPos = Vec3.createVectorHelper(trainX, trainY, trainZ); + + //convert nodes to a list of links with in-world positions + Vec3 train = Vec3.createVectorHelper(trainX, trainY, trainZ); + Vec3 core = Vec3.createVectorHelper(cX + 0.5, cY, cZ + 0.5); + List>> links = new ArrayList(); + + for(RailDef def : railDefs) { + List> linkList = new ArrayList(); + links.add(linkList); + + for(int i = 0; i < def.nodes.size() - 1; i++) { + Vec3 vec1 = getPositionFromNode(world, x, y, z, core, def.nodes.get(i), meta); + Vec3 vec2 = getPositionFromNode(world, x, y, z, core, def.nodes.get(i + 1), meta); + ParticleUtil.spawnDroneLine(world, vec1.xCoord, vec1.yCoord, vec1.zCoord, vec2.xCoord - vec1.xCoord, vec2.yCoord - vec1.yCoord, vec2.zCoord - vec1.zCoord, 0xff0000); + linkList.add(new Pair(new Vec3[] {vec1, vec2}, def)); + } + } + + //find closest node + Pair closest = null; + Vec3 startingPos = null; + /** closest chain of link definitions */ + List> cDef = null; + double angularDiff = 0; + double linkAngle = 0; + double dist = Double.MAX_VALUE; + /** direction */ + boolean d = true; + + for(List> chain : links) { + for(Pair link : chain) { + Vec3[] array = link.getKey(); + Vec3 point = getClosestPointOnLink(array[0], array[1], train); + + if(point != null) { + Vec3 delta = point.subtract(train); + double length = delta.lengthVector(); + + if(!canCross(world, cX, cY, cZ, trainPos, point, link.getValue())) continue; + + linkAngle = EntityRailCarBase.generateYaw(array[1], array[0]); + angularDiff = BobMathUtil.angularDifference(linkAngle, -moveAngle); + if(angularDiff < -180) { angularDiff += 180; linkAngle += 180; d = false; } + if(angularDiff > 0) { angularDiff -= 180; linkAngle -= 180; d = false; } + + if(length < dist) { + closest = link; + startingPos = point; + cDef = chain; + dist = length; + } + } + } + } + + if(closest == null) { + return Vec3.createVectorHelper(trainX, trainY, trainZ); + } + + double distRemaining = speed; + boolean engaged = false; + Vec3 currentPos = startingPos; + for(int i = d ? 0 : cDef.size() - 1; d ? (i < cDef.size()) : (i >= 0); i += d ? 1 : -1) { + + Pair link = cDef.get(i); + Vec3[] array = link.getKey(); + + if(!engaged) { + if(link == closest) { + engaged = true; + } else { + continue; + } + } + + Vec3 nextNode = array[d?1:0]; + Vec3 delta = nextNode.subtract(currentPos); + + if(!canCross(world, cX, cY, cZ, currentPos, nextNode, link.getValue())) break; + + double len = delta.lengthVector(); + if(len >= distRemaining) { + info.overshoot = 0; + double newYaw = EntityRailCarBase.generateYaw(nextNode, currentPos); + if(Math.abs(BobMathUtil.angularDifference(newYaw, moveAngle)) < 45) info.yaw = (float) newYaw; + else info.yaw = (float) moveAngle; + delta.normalize(); + return Vec3.createVectorHelper(currentPos.xCoord - delta.xCoord * distRemaining / len, currentPos.yCoord - delta.yCoord * distRemaining / len, currentPos.zCoord - delta.zCoord * distRemaining / len); + } + + distRemaining -= len; + currentPos = nextNode; + } + + if(!world.isRemote) PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + distRemaining).color(EnumChatFormatting.RED).flush(), 1), new TargetPoint(world.provider.dimensionId, x, y, z, 50)); + + info.overshoot = distRemaining; + info.pos = new BlockPos(currentPos.xCoord, currentPos.yCoord, currentPos.zCoord); + + return currentPos; + } + + public Vec3 getClosestPointOnLink(Vec3 pointA, Vec3 pointB, Vec3 pointP) { + Vec3 ap = Vec3.createVectorHelper(pointP.xCoord - pointA.xCoord, 0, pointP.zCoord - pointA.zCoord); + Vec3 ab = Vec3.createVectorHelper(pointB.xCoord - pointA.xCoord, 0, pointB.zCoord - pointA.zCoord); + + double magAB = ab.xCoord * ab.xCoord + ab.zCoord * ab.zCoord; + double dotProd = ap.xCoord * ab.xCoord + ap.zCoord * ab.zCoord; + double dist = dotProd / magAB; + + if(dist < 0) return pointA; + if(dist > 1) return pointB; + if(dist < 0 || dist > 1) return null; + + return Vec3.createVectorHelper(pointA.xCoord + ab.xCoord * dist, pointA.yCoord + (pointB.yCoord - pointA.yCoord) * dist, pointA.zCoord + ab.zCoord * dist); + } + + /** Creates the in-world position for a node based on the node itself and the core position */ + public Vec3 getPositionFromNode(World world, int x, int y, int z, Vec3 core, Vec3 node, int meta) { + float rotation = 0; + if(meta == 12) rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + Vec3 copy = Vec3.createVectorHelper(node.xCoord, node.yCoord, node.zCoord); + copy.rotateAroundY(rotation); + return core.addVector(copy.xCoord, copy.yCoord, copy.zCoord); + } + + public class RailDef { + String name; + public List nodes = new ArrayList(); + + public RailDef(String name) { + this.name = name; + } + } +} diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 120c3b586..bd1d91f2f 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -17,7 +17,7 @@ public interface IRailNTM { * Inherently safer than simply adding the motion to the position and then snapping, since that may lead to derailing. * The motion has to be calculated from the train's rotation (rotated 180° when going backwards), the scalar doesn't matter since it's only used for determining orientation in a clear way. * Motion ends up being *-1 if the train is going in reverse, still pointing forwards despite the speed being negative. - * Also features a double[] wrapper with size 1 which holds the speed value that overshoots the rail. + * Also features RailContext which determines overshoot and the final yaw rotation * */ public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context); @@ -46,8 +46,10 @@ public interface IRailNTM { public static class MoveContext { public RailCheckType type; public double collisionBogieDistance; - public boolean collision = false; //if a buffer stop or similar applies - public double overshoot; //how much of the travel distance was cut short + /** if a buffer stop or similar applies */ + public boolean collision = false; + /** how much of the travel distance was cut short */ + public double overshoot; public MoveContext(RailCheckType type, double collisionBogieDistance) { this.type = type; diff --git a/src/main/java/com/hbm/blocks/rail/IRenderRail.java b/src/main/java/com/hbm/blocks/rail/IRenderRail.java index df4c2ed4d..4b3cf8346 100644 --- a/src/main/java/com/hbm/blocks/rail/IRenderRail.java +++ b/src/main/java/com/hbm/blocks/rail/IRenderRail.java @@ -1,5 +1,6 @@ package com.hbm.blocks.rail; +import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -8,6 +9,8 @@ import net.minecraft.world.IBlockAccess; public interface IRenderRail { + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @SideOnly(Side.CLIENT) public void renderInventory(Tessellator tessellator, Block block, int metadata); @SideOnly(Side.CLIENT) public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z); } diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java index 5da8a5041..ecf690121 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -35,7 +35,7 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM, IRender @Override public int getRenderType() { - return RailStandardStraight.renderID; + return renderID; } @Override diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java index a625dd4b5..4b84f25c2 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -35,7 +35,7 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM, IRen @Override public int getRenderType() { - return RailStandardStraight.renderID; + return renderID; } @Override diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java index 96f9fde1a..20e345172 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -34,7 +34,7 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM, IRen @Override public int getRenderType() { - return RailStandardStraight.renderID; + return renderID; } @Override diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index dcbecfc4f..a8e69b8a8 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -35,7 +35,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM, IRend @Override public int getRenderType() { - return RailStandardStraight.renderID; + return renderID; } @Override diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java index 54fb53d2a..c9a1e6010 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -41,7 +41,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRende @Override public int getRenderType() { - return RailStandardStraight.renderID; + return renderID; } @Override diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index b79d3b616..f448d7881 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -8,7 +8,6 @@ import com.hbm.main.ResourceManager; import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -34,8 +33,6 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM, IR return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java new file mode 100644 index 000000000..6c16ecf90 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java @@ -0,0 +1,269 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardSwitch extends BlockRailWaypointSystem implements IRenderRail { + + @SideOnly(Side.CLIENT) private IIcon iconSign; + + public RailStandardSwitch() { + super(Material.iron); + + RailDef main = new RailDef("main"); + RailDef side = new RailDef("side"); + railDefs.add(main); + railDefs.add(side); + + main.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + + side.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-6.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-5.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-4.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-3.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-2.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-1.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-0.5, 0.1875, 4.25)); + side.nodes.add(Vec3.createVectorHelper(0.5, 0.1875, 3.9375)); + side.nodes.add(Vec3.createVectorHelper(1.5, 0.1875, 3.375)); + side.nodes.add(Vec3.createVectorHelper(2.5, 0.1875, 2.4625)); + side.nodes.add(Vec3.createVectorHelper(3.5, 0.1875, 1.75)); + side.nodes.add(Vec3.createVectorHelper(4.5, 0.1875, 1.1875)); + side.nodes.add(Vec3.createVectorHelper(5.5, 0.1875, 0.875)); + side.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.625)); + side.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + side.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconSign = iconRegister.registerIcon(RefStrings.MODID + ":rail_switch_sign"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityRailSwitch(); + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 7, 7, 1, 0}; + } + + @Override + public int getOffset() { + return 7; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + public boolean canCross(World world, int x, int y, int z, Vec3 from, Vec3 to, RailDef def) { + TileEntityRailSwitch tile = (TileEntityRailSwitch) world.getTileEntity(x, y, z); + if(tile == null) return true; + + ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata() - 10); + + if(dir == Library.POS_X) if(from.xCoord < to.xCoord) return true; + if(dir == Library.NEG_X) if(from.xCoord > to.xCoord) return true; + if(dir == Library.POS_Z) if(from.zCoord < to.zCoord) return true; + if(dir == Library.NEG_Z) if(from.zCoord > to.zCoord) return true; + + if(dir == Library.POS_X) if(to.xCoord < x + 0.5 + 7) return true; + if(dir == Library.NEG_X) if(to.xCoord > x + 0.5 - 7) return true; + if(dir == Library.POS_Z) if(to.zCoord < z + 0.5 + 7) return true; + if(dir == Library.NEG_Z) if(to.zCoord > z + 0.5 - 7) return true; + + if(tile.isSwitched) { + if("side".equals(def.name)) return true; + } else { + if("main".equals(def.name)) return true; + } + + return false; + } + + @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; + if(player.isSneaking()) return false; + + int[] pos = this.findCore(world, x, y, z); + + if(pos != null) { + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + sw.isSwitched = !sw.isSwitched; + sw.markDirty(); + world.markBlockForUpdate(pos[0], pos[1], pos[2]); + } + } + + return true; + } + + @Override + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return super.snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + if(!super.checkRequirement(world, x, y, z, dir, o)) return false; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) if(!world.getBlock(x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2).isReplaceable(world, x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2)) return false; + for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3).isReplaceable(world, x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3)) return false; + if(!world.getBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4).isReplaceable(world, x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4)) return false; + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i)).isReplaceable(world, x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i))) return false; + if(!world.getBlock(x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5).isReplaceable(world, x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5)) return false; + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i)).isReplaceable(world, x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i))) return false; + + return true; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) world.setBlock(x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2, this, rot.ordinal(), 3); + for(int i = 0; i < 2; i++) world.setBlock(x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4, this, rot.ordinal(), 3); + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i), this, dir.ordinal(), 3); + world.setBlock(x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5, this, rot.ordinal(), 3); + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i), this, dir.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, -0.1875); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.1, 0.1, 0.1); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, rotation, true); + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); + } + + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } + + public static class TileEntityRailSwitch extends TileEntity { + public boolean isSwitched = false; + + @Override public boolean canUpdate() { return false; } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.isSwitched = nbt.getBoolean("isSwitched"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isSwitched", this.isSwitched); + } + } +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index f4a301914..ee256de43 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -207,7 +207,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { double z = posZ + rot.zCoord; dummy.setPosition(x, y, z); dummy.setSize(def.width, def.height); - dummy.velocityChanged = true; worldObj.spawnEntityInWorld(dummy); this.dummies[i] = dummy; } @@ -215,16 +214,18 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.initDummies = true; } - for(int i = 0; i < definitions.length; i++) { - DummyConfig def = definitions[i]; - BoundingBoxDummyEntity dummy = dummies[i]; - Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); - rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180D)); - rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = renderX + rot.xCoord; - double y = renderY + rot.yCoord; - double z = renderZ + rot.zCoord; - dummy.setPosition(x, y, z); + if(renderY != 0) { + for(int i = 0; i < definitions.length; i++) { + DummyConfig def = definitions[i]; + BoundingBoxDummyEntity dummy = dummies[i]; + Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); + rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180D)); + rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = renderX + rot.xCoord; + double y = renderY + rot.yCoord; + double z = renderZ + rot.zCoord; + dummy.setPosition(x, y, z); + } } } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 0d1a613df..69e6aee87 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1467,6 +1467,7 @@ public class ResourceManager { public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); public static final IModelCustom rail_standard_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")); + public static final IModelCustom rail_standard_switch = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch.obj")); public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index bbd9a724e..d51bdab4b 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -25,6 +25,7 @@ import com.hbm.blocks.network.BlockCablePaintable.TileEntityCablePaintable; import com.hbm.blocks.network.CableDiode.TileEntityDiode; import com.hbm.blocks.network.FluidDuctGauge.TileEntityPipeGauge; import com.hbm.blocks.network.FluidDuctPaintable.TileEntityPipePaintable; +import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.tileentity.bomb.*; @@ -407,6 +408,8 @@ public class TileMappings { put(TileEntityDroneDock.class, "tileentity_drone_dock"); put(TileEntityDroneProvider.class, "tileentity_drone_provider"); put(TileEntityDroneRequester.class, "tileentity_drone_requester"); + + put(TileEntityRailSwitch.class, "tileentity_rail_switch"); } private static void put(Class clazz, String... names) { diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj new file mode 100644 index 000000000..9cfecc35f --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj @@ -0,0 +1,3923 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_switch.blend' +# www.blender.org +o SignTurn +v -2.500000 1.000000 -1.125000 +v -1.500000 1.000000 -1.125000 +v -2.500000 2.000000 -1.125000 +v -1.500000 2.000000 -1.125000 +v -2.500000 2.000000 -0.875000 +v -2.500000 1.000000 -0.875000 +v -1.500000 1.000000 -0.875000 +v -1.500000 2.000000 -0.875000 +v -2.125000 1.000000 -0.875000 +v -1.875000 1.000000 -0.875000 +v -2.125000 1.000000 -1.125000 +v -1.875000 1.000000 -1.125000 +v -2.125000 0.000000 -1.125000 +v -2.125000 0.000000 -0.875000 +v -1.875000 0.000000 -0.875000 +v -1.875000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/8/3 2/9/3 +f 1/3/4 5/10/4 3/1/4 +f 3/11/5 8/12/5 4/13/5 +f 2/14/6 6/15/6 1/16/6 +f 13/17/6 15/18/6 14/19/6 +f 16/20/1 11/21/1 12/22/1 +f 14/23/2 10/24/2 9/25/2 +f 15/26/3 12/27/3 10/28/3 +f 13/29/4 9/30/4 11/31/4 +f 3/1/1 4/32/1 2/2/1 +f 7/4/2 8/33/2 5/5/2 +f 4/7/3 8/34/3 7/8/3 +f 1/3/4 6/35/4 5/10/4 +f 3/11/5 5/36/5 8/12/5 +f 2/14/6 7/37/6 6/15/6 +f 13/17/6 16/38/6 15/18/6 +f 16/20/1 13/39/1 11/21/1 +f 14/23/2 15/40/2 10/24/2 +f 15/26/3 16/41/3 12/27/3 +f 13/29/4 14/42/4 9/30/4 +o SignStraight +v -2.500000 1.000000 -1.125000 +v -1.500000 1.000000 -1.125000 +v -2.500000 2.000000 -1.125000 +v -1.500000 2.000000 -1.125000 +v -2.500000 2.000000 -0.875000 +v -2.500000 1.000000 -0.875000 +v -1.500000 1.000000 -0.875000 +v -1.500000 2.000000 -0.875000 +v -2.125000 1.000000 -0.875000 +v -1.875000 1.000000 -0.875000 +v -2.125000 1.000000 -1.125000 +v -1.875000 1.000000 -1.125000 +v -2.125000 0.000000 -1.125000 +v -2.125000 0.000000 -0.875000 +v -1.875000 0.000000 -0.875000 +v -1.875000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.000100 0.999900 +vt 0.000000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 19/43/7 18/44/7 17/45/7 +f 23/46/8 21/47/8 22/48/8 +f 20/49/9 23/50/9 18/51/9 +f 17/45/10 21/52/10 19/43/10 +f 19/53/11 24/54/11 20/55/11 +f 18/56/12 22/57/12 17/58/12 +f 29/59/12 31/60/12 30/61/12 +f 32/62/7 27/63/7 28/64/7 +f 30/65/8 26/66/8 25/67/8 +f 31/68/9 28/69/9 26/70/9 +f 29/71/10 25/72/10 27/73/10 +f 19/43/7 20/74/7 18/44/7 +f 23/46/8 24/75/8 21/47/8 +f 20/49/9 24/76/9 23/50/9 +f 17/45/10 22/77/10 21/52/10 +f 19/53/11 21/78/11 24/54/11 +f 18/56/12 23/79/12 22/57/12 +f 29/59/12 32/80/12 31/60/12 +f 32/62/7 29/81/7 27/63/7 +f 30/65/8 31/82/8 26/66/8 +f 31/68/9 32/83/9 28/69/9 +f 29/71/10 30/84/10 25/72/10 +o Rail +v 1.000000 0.062500 4.812500 +v 1.000000 0.062500 5.187500 +v -1.000000 0.062500 5.187500 +v -1.000000 0.062500 4.812500 +v -1.000000 0.000000 5.187500 +v 1.000000 0.000000 5.187500 +v -1.000000 0.000000 4.812500 +v 1.000000 0.000000 4.812500 +v -1.000000 0.000000 4.187500 +v 1.000000 0.000000 4.187500 +v -1.000000 0.000000 3.812500 +v 1.000000 0.000000 3.812500 +v -1.000000 0.000000 3.187500 +v 1.000000 0.000000 3.187500 +v -1.000000 0.000000 2.812500 +v 1.000000 0.000000 2.812500 +v -1.000000 0.000000 7.187500 +v 1.000000 0.000000 7.187500 +v -1.000000 0.000000 6.812500 +v 1.000000 0.000000 6.812500 +v -1.000000 0.000000 6.187500 +v 1.000000 0.000000 6.187500 +v -1.000000 0.000000 5.812500 +v 1.000000 0.000000 5.812500 +v -1.000000 0.062500 3.812500 +v -1.000000 0.062500 4.187500 +v 1.000000 0.062500 4.187500 +v 1.000000 0.062500 3.812500 +v -1.000000 0.062500 2.812500 +v -1.000000 0.062500 3.187500 +v 1.000000 0.062500 3.187500 +v 1.000000 0.062500 2.812500 +v -1.000000 0.062500 6.812500 +v -1.000000 0.062500 7.187500 +v 1.000000 0.062500 7.187500 +v 1.000000 0.062500 6.812500 +v -1.000000 0.062500 5.812500 +v -1.000000 0.062500 6.187500 +v 1.000000 0.062500 6.187500 +v 1.000000 0.062500 5.812500 +v -0.812500 0.062500 7.500000 +v 0.812500 0.062500 7.500000 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.187500 7.500000 +v 0.812500 0.187500 7.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v 0.750000 0.062500 7.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 0.187500 7.500000 +v 0.750000 0.187500 2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.062500 7.500000 +v -0.750000 0.187500 2.500000 +v -0.750000 0.187500 7.500000 +v 0.625000 0.062500 7.062500 +v 0.937500 0.062500 7.062500 +v 0.625000 0.062500 6.937500 +v 0.937500 0.062500 6.937500 +v 0.625000 0.125000 7.062500 +v 0.937500 0.125000 7.062500 +v 0.625000 0.125000 6.937500 +v 0.937500 0.125000 6.937500 +v -0.937500 0.062500 7.062500 +v -0.625000 0.062500 7.062500 +v -0.937500 0.062500 6.937500 +v -0.625000 0.062500 6.937500 +v -0.937500 0.125000 7.062500 +v -0.625000 0.125000 7.062500 +v -0.937500 0.125000 6.937500 +v -0.625000 0.125000 6.937500 +v 0.625000 0.062500 6.062500 +v 0.937500 0.062500 6.062500 +v 0.625000 0.062500 5.937500 +v 0.937500 0.062500 5.937500 +v 0.625000 0.125000 6.062500 +v 0.937500 0.125000 6.062500 +v 0.625000 0.125000 5.937500 +v 0.937500 0.125000 5.937500 +v -0.937500 0.062500 6.062500 +v -0.625000 0.062500 6.062500 +v -0.937500 0.062500 5.937500 +v -0.625000 0.062500 5.937500 +v -0.937500 0.125000 6.062500 +v -0.625000 0.125000 6.062500 +v -0.937500 0.125000 5.937500 +v -0.625000 0.125000 5.937500 +v 0.625000 0.062500 5.062500 +v 0.937500 0.062500 5.062500 +v 0.625000 0.062500 4.937500 +v 0.937500 0.062500 4.937500 +v 0.625000 0.125000 5.062500 +v 0.937500 0.125000 5.062500 +v 0.625000 0.125000 4.937500 +v 0.937500 0.125000 4.937500 +v -0.937500 0.062500 5.062500 +v -0.625000 0.062500 5.062500 +v -0.937500 0.062500 4.937500 +v -0.625000 0.062500 4.937500 +v -0.937500 0.125000 5.062500 +v -0.625000 0.125000 5.062500 +v -0.937500 0.125000 4.937500 +v -0.625000 0.125000 4.937500 +v 0.625000 0.062500 4.062500 +v 0.937500 0.062500 4.062500 +v 0.625000 0.062500 3.937500 +v 0.937500 0.062500 3.937500 +v 0.625000 0.125000 4.062500 +v 0.937500 0.125000 4.062500 +v 0.625000 0.125000 3.937500 +v 0.937500 0.125000 3.937500 +v -0.937500 0.062500 4.062500 +v -0.625000 0.062500 4.062500 +v -0.937500 0.062500 3.937500 +v -0.625000 0.062500 3.937500 +v -0.937500 0.125000 4.062500 +v -0.625000 0.125000 4.062500 +v -0.937500 0.125000 3.937500 +v -0.625000 0.125000 3.937500 +v 0.625000 0.062500 3.062500 +v 0.937500 0.062500 3.062500 +v 0.625000 0.062500 2.937500 +v 0.937500 0.062500 2.937500 +v 0.625000 0.125000 3.062500 +v 0.937500 0.125000 3.062500 +v 0.625000 0.125000 2.937500 +v 0.937500 0.125000 2.937500 +v -0.937500 0.062500 3.062500 +v -0.625000 0.062500 3.062500 +v -0.937500 0.062500 2.937500 +v -0.625000 0.062500 2.937500 +v -0.937500 0.125000 3.062500 +v -0.625000 0.125000 3.062500 +v -0.937500 0.125000 2.937500 +v -0.625000 0.125000 2.937500 +v -0.812500 0.062500 3.500000 +v -0.812500 0.062500 4.500000 +v -0.812500 0.062500 5.500000 +v -0.812500 0.062500 6.500000 +v 0.812500 0.062500 6.500000 +v 0.812500 0.062500 5.500000 +v 0.812500 0.062500 4.500000 +v 0.812500 0.062500 3.500000 +v -0.812500 0.187500 3.500000 +v -0.812500 0.187500 4.500000 +v -0.812500 0.187500 5.500000 +v -0.812500 0.187500 6.500000 +v 0.812500 0.187500 6.500000 +v 0.812500 0.187500 5.500000 +v 0.812500 0.187500 4.500000 +v 0.812500 0.187500 3.500000 +v 0.750000 0.062500 6.500000 +v 0.750000 0.062500 5.500000 +v 0.750000 0.062500 4.500000 +v 0.750000 0.062500 3.500000 +v 0.750000 0.187500 6.500000 +v 0.750000 0.187500 5.500000 +v 0.750000 0.187500 4.500000 +v 0.750000 0.187500 3.500000 +v -0.750000 0.062500 3.500000 +v -0.750000 0.062500 4.500000 +v -0.750000 0.062500 5.500000 +v -0.750000 0.062500 6.500000 +v -0.750000 0.187500 3.500000 +v -0.750000 0.187500 4.500000 +v -0.750000 0.187500 5.500000 +v -0.750000 0.187500 6.500000 +v 1.000000 0.062500 -5.187500 +v 1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -5.187500 +v -1.000000 0.000000 -4.812500 +v 1.000000 0.000000 -4.812500 +v -1.000000 0.000000 -5.187500 +v 1.000000 0.000000 -5.187500 +v -1.000000 0.000000 -5.812500 +v 1.000000 0.000000 -5.812500 +v -1.000000 0.000000 -6.187500 +v 1.000000 0.000000 -6.187500 +v -1.000000 0.000000 -6.812500 +v 1.000000 0.000000 -6.812500 +v -1.000000 0.000000 -7.187500 +v 1.000000 0.000000 -7.187500 +v -1.000000 0.000000 -2.812500 +v 1.000000 0.000000 -2.812500 +v -1.000000 0.000000 -3.187500 +v 1.000000 0.000000 -3.187500 +v -1.000000 0.000000 -3.812500 +v 1.000000 0.000000 -3.812500 +v -1.000000 0.000000 -4.187500 +v 1.000000 0.000000 -4.187500 +v -1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -4.187500 +v -1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -4.187500 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.062500 -7.500000 +v 0.812500 0.062500 -7.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 +v -0.812500 0.187500 -7.500000 +v 0.812500 0.187500 -7.500000 +v 0.750000 0.062500 -2.500000 +v 0.750000 0.062500 -7.500000 +v 0.750000 0.187500 -2.500000 +v 0.750000 0.187500 -7.500000 +v -0.750000 0.062500 -7.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.187500 -7.500000 +v -0.750000 0.187500 -2.500000 +v 0.625000 0.062500 -2.937500 +v 0.937500 0.062500 -2.937500 +v 0.625000 0.062500 -3.062500 +v 0.937500 0.062500 -3.062500 +v 0.625000 0.125000 -2.937500 +v 0.937500 0.125000 -2.937500 +v 0.625000 0.125000 -3.062500 +v 0.937500 0.125000 -3.062500 +v -0.937500 0.062500 -2.937500 +v -0.625000 0.062500 -2.937500 +v -0.937500 0.062500 -3.062500 +v -0.625000 0.062500 -3.062500 +v -0.937500 0.125000 -2.937500 +v -0.625000 0.125000 -2.937500 +v -0.937500 0.125000 -3.062500 +v -0.625000 0.125000 -3.062500 +v 0.625000 0.062500 -3.937500 +v 0.937500 0.062500 -3.937500 +v 0.625000 0.062500 -4.062500 +v 0.937500 0.062500 -4.062500 +v 0.625000 0.125000 -3.937500 +v 0.937500 0.125000 -3.937500 +v 0.625000 0.125000 -4.062500 +v 0.937500 0.125000 -4.062500 +v -0.937500 0.062500 -3.937500 +v -0.625000 0.062500 -3.937500 +v -0.937500 0.062500 -4.062500 +v -0.625000 0.062500 -4.062500 +v -0.937500 0.125000 -3.937500 +v -0.625000 0.125000 -3.937500 +v -0.937500 0.125000 -4.062500 +v -0.625000 0.125000 -4.062500 +v 0.625000 0.062500 -4.937500 +v 0.937500 0.062500 -4.937500 +v 0.625000 0.062500 -5.062500 +v 0.937500 0.062500 -5.062500 +v 0.625000 0.125000 -4.937500 +v 0.937500 0.125000 -4.937500 +v 0.625000 0.125000 -5.062500 +v 0.937500 0.125000 -5.062500 +v -0.937500 0.062500 -4.937500 +v -0.625000 0.062500 -4.937500 +v -0.937500 0.062500 -5.062500 +v -0.625000 0.062500 -5.062500 +v -0.937500 0.125000 -4.937500 +v -0.625000 0.125000 -4.937500 +v -0.937500 0.125000 -5.062500 +v -0.625000 0.125000 -5.062500 +v 0.625000 0.062500 -5.937500 +v 0.937500 0.062500 -5.937500 +v 0.625000 0.062500 -6.062500 +v 0.937500 0.062500 -6.062500 +v 0.625000 0.125000 -5.937500 +v 0.937500 0.125000 -5.937500 +v 0.625000 0.125000 -6.062500 +v 0.937500 0.125000 -6.062500 +v -0.937500 0.062500 -5.937500 +v -0.625000 0.062500 -5.937500 +v -0.937500 0.062500 -6.062500 +v -0.625000 0.062500 -6.062500 +v -0.937500 0.125000 -5.937500 +v -0.625000 0.125000 -5.937500 +v -0.937500 0.125000 -6.062500 +v -0.625000 0.125000 -6.062500 +v 0.625000 0.062500 -6.937500 +v 0.937500 0.062500 -6.937500 +v 0.625000 0.062500 -7.062500 +v 0.937500 0.062500 -7.062500 +v 0.625000 0.125000 -6.937500 +v 0.937500 0.125000 -6.937500 +v 0.625000 0.125000 -7.062500 +v 0.937500 0.125000 -7.062500 +v -0.937500 0.062500 -6.937500 +v -0.625000 0.062500 -6.937500 +v -0.937500 0.062500 -7.062500 +v -0.625000 0.062500 -7.062500 +v -0.937500 0.125000 -6.937500 +v -0.625000 0.125000 -6.937500 +v -0.937500 0.125000 -7.062500 +v -0.625000 0.125000 -7.062500 +v -0.812500 0.062500 -6.500000 +v -0.812500 0.062500 -5.500000 +v -0.812500 0.062500 -4.500000 +v -0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -4.500000 +v 0.812500 0.062500 -5.500000 +v 0.812500 0.062500 -6.500000 +v -0.812500 0.187500 -6.500000 +v -0.812500 0.187500 -5.500000 +v -0.812500 0.187500 -4.500000 +v -0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -4.500000 +v 0.812500 0.187500 -5.500000 +v 0.812500 0.187500 -6.500000 +v 0.750000 0.062500 -3.500000 +v 0.750000 0.062500 -4.500000 +v 0.750000 0.062500 -5.500000 +v 0.750000 0.062500 -6.500000 +v 0.750000 0.187500 -3.500000 +v 0.750000 0.187500 -4.500000 +v 0.750000 0.187500 -5.500000 +v 0.750000 0.187500 -6.500000 +v -0.750000 0.062500 -6.500000 +v -0.750000 0.062500 -5.500000 +v -0.750000 0.062500 -4.500000 +v -0.750000 0.062500 -3.500000 +v -0.750000 0.187500 -6.500000 +v -0.750000 0.187500 -5.500000 +v -0.750000 0.187500 -4.500000 +v -0.750000 0.187500 -3.500000 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +v -1.725096 0.062500 1.451439 +v -1.966661 0.062500 1.649687 +v -1.645797 0.062500 1.548066 +v -1.887362 0.062500 1.746314 +v -1.756082 0.062500 1.315164 +v -1.518184 0.062500 1.605042 +v -3.064205 0.062500 2.873829 +v -3.302103 0.062500 2.583950 +v -1.756082 0.000000 1.315164 +v -3.302103 0.000000 2.583950 +v -1.518184 0.000000 1.605042 +v -3.064205 0.000000 2.873829 +v -0.504144 0.062500 3.159608 +v -0.504144 0.187500 3.159608 +v -1.855282 0.187500 4.062409 +v -1.855282 0.062500 4.062409 +v -0.556111 0.062500 3.194331 +v -0.556111 0.187500 3.194331 +v -1.803315 0.187500 4.027686 +v -1.803315 0.062500 4.027686 +v 0.217808 0.062500 4.510286 +v 0.217808 0.187500 4.510286 +v -1.283496 0.187500 5.132147 +v -1.283496 0.062500 5.132147 +v 0.160065 0.062500 4.534204 +v 0.160065 0.187500 4.534204 +v -1.225753 0.187500 5.108229 +v -1.225753 0.062500 5.108229 +v 0.662384 0.062500 5.975857 +v 0.662384 0.187500 5.975857 +v -0.931392 0.187500 6.292879 +v -0.931392 0.062500 6.292879 +v 0.601084 0.062500 5.988050 +v 0.601084 0.187500 5.988050 +v -0.870092 0.187500 6.280685 +v -0.870092 0.062500 6.280685 +v 0.812499 0.062500 7.500000 +v 0.812499 0.187500 7.500000 +v -0.812501 0.187500 7.500000 +v -0.812501 0.062500 7.500000 +v 0.749998 0.062500 7.500000 +v 0.749998 0.187500 7.500000 +v -0.750000 0.187500 7.500000 +v -0.750000 0.062500 7.500000 +v -1.376398 0.062500 2.183322 +v -1.376398 0.187500 2.183322 +v -1.324431 0.187500 2.148599 +v -1.324431 0.062500 2.148599 +v -3.495856 0.062500 2.040392 +v -3.495856 0.187500 2.040392 +v -2.144718 0.187500 1.137591 +v -2.144718 0.062500 1.137591 +v -3.443888 0.062500 2.005669 +v -3.443888 0.187500 2.005669 +v -2.196684 0.187500 1.172314 +v -2.196684 0.062500 1.172314 +v -4.217808 0.062500 0.689714 +v -4.217808 0.187500 0.689714 +v -2.716504 0.187500 0.067853 +v -2.716504 0.062500 0.067853 +v -4.160065 0.062500 0.665796 +v -4.160065 0.187500 0.665796 +v -2.774246 0.187500 0.091771 +v -2.774246 0.062500 0.091771 +v -4.662384 0.062500 -0.775857 +v -4.662384 0.187500 -0.775857 +v -3.068608 0.187500 -1.092879 +v -3.068608 0.062500 -1.092879 +v -4.601084 0.062500 -0.788050 +v -4.601084 0.187500 -0.788050 +v -3.129908 0.187500 -1.080685 +v -3.129908 0.062500 -1.080685 +v -4.812499 0.062500 -2.300000 +v -4.812499 0.187500 -2.300000 +v -3.187499 0.187500 -2.300000 +v -3.187499 0.062500 -2.300000 +v -4.749998 0.062500 -2.300000 +v -4.749998 0.187500 -2.300000 +v -3.250000 0.187500 -2.300000 +v -3.250000 0.062500 -2.300000 +v -2.932924 0.125000 2.442679 +v -3.174490 0.125000 2.640927 +v -2.853625 0.125000 2.539305 +v -3.095191 0.125000 2.737553 +v -2.623602 0.062500 3.016677 +v -2.623602 0.187500 3.016677 +v -2.675569 0.062500 3.051401 +v -2.675569 0.187500 3.051401 +v -2.932924 0.062500 2.442679 +v -3.174490 0.062500 2.640927 +v -2.853625 0.062500 2.539305 +v -3.095191 0.062500 2.737553 +v -1.725096 0.125000 1.451439 +v -1.966661 0.125000 1.649687 +v -1.645797 0.125000 1.548066 +v -1.887362 0.125000 1.746314 +v -3.000000 0.062500 -5.187500 +v -3.000000 0.062500 -4.812500 +v -5.000000 0.062500 -4.812500 +v -5.000000 0.062500 -5.187500 +v -5.000000 0.000000 -4.812500 +v -3.000000 0.000000 -4.812500 +v -5.000000 0.000000 -5.187500 +v -3.000000 0.000000 -5.187500 +v -5.000000 0.000000 -5.812500 +v -3.000000 0.000000 -5.812500 +v -5.000000 0.000000 -6.187500 +v -3.000000 0.000000 -6.187500 +v -5.000000 0.000000 -6.812500 +v -3.000000 0.000000 -6.812500 +v -5.000000 0.000000 -7.187500 +v -3.000000 0.000000 -7.187500 +v -5.000000 0.000000 -3.812500 +v -3.000000 0.000000 -3.812500 +v -5.000000 0.000000 -4.187500 +v -3.000000 0.000000 -4.187500 +v -5.000000 0.062500 -6.187500 +v -5.000000 0.062500 -5.812500 +v -3.000000 0.062500 -5.812500 +v -3.000000 0.062500 -6.187500 +v -5.000000 0.062500 -7.187500 +v -5.000000 0.062500 -6.812500 +v -3.000000 0.062500 -6.812500 +v -3.000000 0.062500 -7.187500 +v -5.000000 0.062500 -4.187500 +v -5.000000 0.062500 -3.812500 +v -3.000000 0.062500 -3.812500 +v -3.000000 0.062500 -4.187500 +v -4.812500 0.062500 -7.500000 +v -3.187500 0.062500 -7.500000 +v -4.812500 0.187500 -7.500000 +v -3.187500 0.187500 -7.500000 +v -3.250000 0.062500 -7.500000 +v -3.250000 0.187500 -7.500000 +v -4.750000 0.062500 -7.500000 +v -4.750000 0.187500 -7.500000 +v -3.375000 0.062500 -3.937500 +v -3.062500 0.062500 -3.937500 +v -3.375000 0.062500 -4.062500 +v -3.062500 0.062500 -4.062500 +v -3.375000 0.125000 -3.937500 +v -3.062500 0.125000 -3.937500 +v -3.375000 0.125000 -4.062500 +v -3.062500 0.125000 -4.062500 +v -4.937500 0.062500 -3.937500 +v -4.625000 0.062500 -3.937500 +v -4.937500 0.062500 -4.062500 +v -4.625000 0.062500 -4.062500 +v -4.937500 0.125000 -3.937500 +v -4.625000 0.125000 -3.937500 +v -4.937500 0.125000 -4.062500 +v -4.625000 0.125000 -4.062500 +v -3.375000 0.062500 -4.937500 +v -3.062500 0.062500 -4.937500 +v -3.375000 0.062500 -5.062500 +v -3.062500 0.062500 -5.062500 +v -3.375000 0.125000 -4.937500 +v -3.062500 0.125000 -4.937500 +v -3.375000 0.125000 -5.062500 +v -3.062500 0.125000 -5.062500 +v -4.937500 0.062500 -4.937500 +v -4.625000 0.062500 -4.937500 +v -4.937500 0.062500 -5.062500 +v -4.625000 0.062500 -5.062500 +v -4.937500 0.125000 -4.937500 +v -4.625000 0.125000 -4.937500 +v -4.937500 0.125000 -5.062500 +v -4.625000 0.125000 -5.062500 +v -3.375000 0.062500 -5.937500 +v -3.062500 0.062500 -5.937500 +v -3.375000 0.062500 -6.062500 +v -3.062500 0.062500 -6.062500 +v -3.375000 0.125000 -5.937500 +v -3.062500 0.125000 -5.937500 +v -3.375000 0.125000 -6.062500 +v -3.062500 0.125000 -6.062500 +v -4.937500 0.062500 -5.937500 +v -4.625000 0.062500 -5.937500 +v -4.937500 0.062500 -6.062500 +v -4.625000 0.062500 -6.062500 +v -4.937500 0.125000 -5.937500 +v -4.625000 0.125000 -5.937500 +v -4.937500 0.125000 -6.062500 +v -4.625000 0.125000 -6.062500 +v -3.375000 0.062500 -6.937500 +v -3.062500 0.062500 -6.937500 +v -3.375000 0.062500 -7.062500 +v -3.062500 0.062500 -7.062500 +v -3.375000 0.125000 -6.937500 +v -3.062500 0.125000 -6.937500 +v -3.375000 0.125000 -7.062500 +v -3.062500 0.125000 -7.062500 +v -4.937500 0.062500 -6.937500 +v -4.625000 0.062500 -6.937500 +v -4.937500 0.062500 -7.062500 +v -4.625000 0.062500 -7.062500 +v -4.937500 0.125000 -6.937500 +v -4.625000 0.125000 -6.937500 +v -4.937500 0.125000 -7.062500 +v -4.625000 0.125000 -7.062500 +v -4.812500 0.062500 -6.500000 +v -4.812500 0.062500 -5.500000 +v -4.812500 0.062500 -4.500000 +v -4.812500 0.062500 -3.500000 +v -3.187500 0.062500 -3.500000 +v -3.187500 0.062500 -4.500000 +v -3.187500 0.062500 -5.500000 +v -3.187500 0.062500 -6.500000 +v -4.812500 0.187500 -6.500000 +v -4.812500 0.187500 -5.500000 +v -4.812500 0.187500 -4.500000 +v -4.812500 0.187500 -3.500000 +v -3.187500 0.187500 -3.500000 +v -3.187500 0.187500 -4.500000 +v -3.187500 0.187500 -5.500000 +v -3.187500 0.187500 -6.500000 +v -3.250000 0.062500 -3.500000 +v -3.250000 0.062500 -4.500000 +v -3.250000 0.062500 -5.500000 +v -3.250000 0.062500 -6.500000 +v -3.250000 0.187500 -3.500000 +v -3.250000 0.187500 -4.500000 +v -3.250000 0.187500 -5.500000 +v -3.250000 0.187500 -6.500000 +v -4.750000 0.062500 -6.500000 +v -4.750000 0.062500 -5.500000 +v -4.750000 0.062500 -4.500000 +v -4.750000 0.062500 -3.500000 +v -4.750000 0.187500 -6.500000 +v -4.750000 0.187500 -5.500000 +v -4.750000 0.187500 -4.500000 +v -4.750000 0.187500 -3.500000 +v -2.346383 0.062500 0.486832 +v -2.621983 0.062500 0.634143 +v -2.287458 0.062500 0.597072 +v -2.563059 0.062500 0.744383 +v -2.350187 0.062500 0.347129 +v -2.173414 0.062500 0.677850 +v -3.937256 0.062500 1.620643 +v -4.114030 0.062500 1.289923 +v -2.350187 0.000000 0.347129 +v -4.114030 0.000000 1.289923 +v -2.173414 0.000000 0.677850 +v -3.937256 0.000000 1.620643 +v -3.724385 0.125000 1.223389 +v -3.999985 0.125000 1.370701 +v -3.665460 0.125000 1.333629 +v -3.941061 0.125000 1.480941 +v -3.724385 0.062500 1.223389 +v -3.999985 0.062500 1.370701 +v -3.665460 0.062500 1.333629 +v -3.941061 0.062500 1.480941 +v -2.346383 0.125000 0.486832 +v -2.621983 0.125000 0.634143 +v -2.287458 0.125000 0.597072 +v -2.563059 0.125000 0.744383 +v -2.787336 0.062500 -0.609743 +v -3.086380 0.062500 -0.519029 +v -2.751051 0.062500 -0.490125 +v -3.050095 0.062500 -0.399411 +v -2.763813 0.062500 -0.747503 +v -2.654956 0.062500 -0.388651 +v -4.568837 0.062500 0.191919 +v -4.677694 0.062500 -0.166934 +v -2.763813 0.000000 -0.747503 +v -4.677694 0.000000 -0.166934 +v -2.654956 0.000000 -0.388651 +v -4.568837 0.000000 0.191919 +v -4.282555 0.125000 -0.156173 +v -4.581599 0.125000 -0.065459 +v -4.246270 0.125000 -0.036556 +v -4.545314 0.125000 0.054159 +v -4.282555 0.062500 -0.156173 +v -4.581599 0.062500 -0.065459 +v -4.246270 0.062500 -0.036556 +v -4.545314 0.062500 0.054159 +v -2.787336 0.125000 -0.609743 +v -3.086380 0.125000 -0.519029 +v -2.751051 0.125000 -0.490125 +v -3.050095 0.125000 -0.399411 +v -3.005888 0.062500 -1.771274 +v -3.316883 0.062500 -1.740644 +v -2.993635 0.062500 -1.646876 +v -3.304631 0.062500 -1.616246 +v -2.955941 0.062500 -1.901798 +v -2.919184 0.062500 -1.528604 +v -4.909554 0.062500 -1.332570 +v -4.946310 0.062500 -1.705764 +v -2.955941 0.000000 -1.901798 +v -4.946310 0.000000 -1.705764 +v -2.919184 0.000000 -1.528604 +v -4.909554 0.000000 -1.332570 +v -4.560863 0.125000 -1.618122 +v -4.871859 0.125000 -1.587492 +v -4.548611 0.125000 -1.493724 +v -4.859607 0.125000 -1.463094 +v -4.560863 0.062500 -1.618122 +v -4.871859 0.062500 -1.587492 +v -4.548611 0.062500 -1.493724 +v -4.859607 0.062500 -1.463094 +v -3.005888 0.125000 -1.771274 +v -3.316883 0.125000 -1.740644 +v -2.993635 0.125000 -1.646876 +v -3.304631 0.125000 -1.616246 +v -0.904809 0.062500 2.462447 +v -1.146375 0.062500 2.660695 +v -0.825510 0.062500 2.559073 +v -1.067076 0.062500 2.757321 +v -0.935795 0.062500 2.326171 +v -0.697898 0.062500 2.616050 +v -2.243919 0.062500 3.884836 +v -2.481816 0.062500 3.594958 +v -0.935795 0.000000 2.326171 +v -2.481816 0.000000 3.594958 +v -0.697898 0.000000 2.616050 +v -2.243919 0.000000 3.884836 +v -2.112638 0.125000 3.453686 +v -2.354204 0.125000 3.651934 +v -2.033339 0.125000 3.550313 +v -2.274905 0.125000 3.748561 +v -2.112638 0.062500 3.453686 +v -2.354204 0.062500 3.651934 +v -2.033339 0.062500 3.550313 +v -2.274905 0.062500 3.748561 +v -0.904809 0.125000 2.462447 +v -1.146375 0.125000 2.660695 +v -0.825510 0.125000 2.559073 +v -1.067076 0.125000 2.757321 +v -5.000000 0.000000 -2.812500 +v -3.000000 0.000000 -2.812500 +v -5.000000 0.000000 -3.187500 +v -3.000000 0.000000 -3.187500 +v -5.000000 0.062500 -3.187500 +v -5.000000 0.062500 -2.812500 +v -3.000000 0.062500 -2.812500 +v -3.000000 0.062500 -3.187500 +v -3.375000 0.062500 -2.937500 +v -3.062500 0.062500 -2.937500 +v -3.375000 0.062500 -3.062500 +v -3.062500 0.062500 -3.062500 +v -3.375000 0.125000 -2.937500 +v -3.062500 0.125000 -2.937500 +v -3.375000 0.125000 -3.062500 +v -3.062500 0.125000 -3.062500 +v -4.937500 0.062500 -2.937500 +v -4.625000 0.062500 -2.937500 +v -4.937500 0.062500 -3.062500 +v -4.625000 0.062500 -3.062500 +v -4.937500 0.125000 -2.937500 +v -4.625000 0.125000 -2.937500 +v -4.937500 0.125000 -3.062500 +v -4.625000 0.125000 -3.062500 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.406250 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.218750 1.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.218750 1.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 -0.000000 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.031250 +vt 0.406250 0.156250 +vt 0.187500 1.000000 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7765 0.0000 -0.6301 +vn 0.8819 0.0000 -0.4714 +vn -0.7730 0.0000 0.6344 +vn 0.6344 0.0000 0.7730 +vn 0.9569 0.0000 -0.2903 +vn -0.9569 0.0000 0.2903 +vn -0.8819 0.0000 0.4714 +vn -0.9952 0.0000 0.0980 +vn 0.9952 0.0000 -0.0980 +vn -0.7765 0.0000 0.6301 +vn 0.7730 0.0000 -0.6344 +vn -0.6344 0.0000 -0.7730 +vn 0.4714 0.0000 0.8819 +vn -0.4714 0.0000 -0.8819 +vn 0.2903 0.0000 0.9569 +vn -0.2903 0.0000 -0.9569 +vn 0.0980 0.0000 0.9952 +vn -0.0980 0.0000 -0.9952 +s off +f 34/85/13 36/86/13 35/87/13 +f 39/88/14 38/89/14 37/90/14 +f 43/91/14 42/92/14 41/93/14 +f 47/94/14 46/95/14 45/96/14 +f 51/97/14 50/98/14 49/99/14 +f 55/100/14 54/101/14 53/102/14 +f 59/103/13 57/104/13 58/105/13 +f 63/106/13 61/107/13 62/108/13 +f 67/109/13 65/110/13 66/111/13 +f 71/112/13 69/113/13 70/114/13 +f 49/115/15 65/116/15 51/117/15 +f 42/118/16 58/119/16 41/120/16 +f 50/121/16 66/122/16 49/123/16 +f 44/124/17 59/125/17 42/92/17 +f 52/126/17 67/127/17 50/98/17 +f 43/91/18 60/128/18 44/129/18 +f 37/130/15 36/131/15 39/132/15 +f 51/97/18 68/133/18 52/134/18 +f 45/135/15 61/136/15 47/137/15 +f 38/138/16 35/139/16 37/140/16 +f 53/141/15 69/142/15 55/143/15 +f 46/144/16 62/145/16 45/146/16 +f 40/147/17 34/148/17 38/89/17 +f 54/149/16 70/150/16 53/151/16 +f 48/152/17 63/153/17 46/95/17 +f 39/88/18 33/154/18 40/155/18 +f 56/156/17 71/157/17 54/101/17 +f 47/94/18 64/158/18 48/159/18 +f 41/160/15 57/161/15 43/162/15 +f 55/100/18 72/163/18 56/164/18 +f 181/165/17 74/166/17 173/167/17 +f 177/168/15 75/169/15 169/170/15 +f 81/171/15 189/172/15 185/173/15 +f 78/174/16 81/175/16 74/176/16 +f 80/177/13 192/178/13 184/179/13 +f 74/166/14 185/180/14 173/167/14 +f 75/181/14 516/182/14 85/183/14 +f 85/183/17 197/184/17 193/185/17 +f 77/186/13 200/187/13 180/188/13 +f 75/181/14 193/185/14 169/189/14 +f 79/190/15 492/191/15 75/169/15 +f 73/192/16 88/193/16 77/194/16 +f 93/195/15 91/196/15 89/197/15 +f 95/198/18 92/199/18 91/200/18 +f 94/201/16 89/202/16 90/203/16 +f 96/204/17 90/205/17 92/206/17 +f 93/195/13 96/204/13 95/198/13 +f 101/207/15 99/208/15 97/209/15 +f 103/210/18 100/211/18 99/212/18 +f 102/213/16 97/214/16 98/215/16 +f 104/216/17 98/217/17 100/218/17 +f 101/207/13 104/216/13 103/210/13 +f 109/219/15 107/220/15 105/221/15 +f 111/222/18 108/223/18 107/224/18 +f 110/225/16 105/226/16 106/227/16 +f 112/228/17 106/229/17 108/230/17 +f 109/219/13 112/228/13 111/222/13 +f 117/231/15 115/232/15 113/233/15 +f 119/234/18 116/235/18 115/236/18 +f 118/237/16 113/238/16 114/239/16 +f 120/240/17 114/241/17 116/242/17 +f 117/231/13 120/240/13 119/234/13 +f 125/243/15 123/244/15 121/245/15 +f 127/246/18 124/247/18 123/248/18 +f 126/249/16 121/250/16 122/251/16 +f 128/252/17 122/253/17 124/254/17 +f 125/243/13 128/252/13 127/246/13 +f 133/255/15 131/256/15 129/257/15 +f 135/258/18 132/259/18 131/260/18 +f 134/261/16 129/262/16 130/263/16 +f 136/264/17 130/265/17 132/266/17 +f 133/255/13 136/264/13 135/258/13 +f 141/267/15 139/268/15 137/269/15 +f 143/270/18 140/271/18 139/272/18 +f 142/273/16 137/274/16 138/275/16 +f 144/276/17 138/277/17 140/278/17 +f 141/267/13 144/276/13 143/270/13 +f 149/279/15 147/280/15 145/281/15 +f 151/282/18 148/283/18 147/284/18 +f 150/285/16 145/286/16 146/287/16 +f 152/288/17 146/289/17 148/290/17 +f 149/279/13 152/288/13 151/282/13 +f 157/291/15 155/292/15 153/293/15 +f 159/294/18 156/295/18 155/296/18 +f 158/297/16 153/298/16 154/299/16 +f 160/300/17 154/301/17 156/302/17 +f 157/291/13 160/300/13 159/294/13 +f 165/303/15 163/304/15 161/305/15 +f 167/306/18 164/307/18 163/308/18 +f 166/309/16 161/310/16 162/311/16 +f 168/312/17 162/313/17 164/314/17 +f 165/303/13 168/312/13 167/306/13 +f 172/315/14 86/316/14 73/317/14 +f 171/318/14 196/319/14 172/320/14 +f 170/321/14 195/322/14 171/323/14 +f 169/324/14 194/325/14 170/326/14 +f 177/168/13 87/327/13 79/190/13 +f 178/328/13 197/329/13 177/330/13 +f 179/331/13 198/332/13 178/333/13 +f 180/334/13 199/335/13 179/336/13 +f 196/337/17 88/338/17 86/316/17 +f 195/339/17 200/340/17 196/319/17 +f 194/341/17 199/342/17 195/322/17 +f 193/343/17 198/344/17 194/325/17 +f 176/345/14 82/346/14 76/347/14 +f 175/348/14 188/349/14 176/350/14 +f 174/351/14 187/352/14 175/353/14 +f 173/354/14 186/355/14 174/356/14 +f 181/165/13 83/357/13 78/358/13 +f 182/359/13 189/360/13 181/361/13 +f 183/362/13 190/363/13 182/364/13 +f 184/365/13 191/366/13 183/367/13 +f 188/368/15 84/369/15 82/370/15 +f 187/371/15 192/372/15 188/373/15 +f 186/374/15 191/375/15 187/376/15 +f 185/377/15 190/378/15 186/379/15 +f 77/186/15 172/380/15 73/381/15 +f 180/334/15 171/382/15 172/383/15 +f 179/331/15 170/384/15 171/385/15 +f 178/328/15 169/386/15 170/387/15 +f 80/177/17 176/345/17 76/347/17 +f 184/365/17 175/348/17 176/350/17 +f 183/362/17 174/351/17 175/353/17 +f 182/359/17 173/354/17 174/356/17 +f 202/388/13 204/389/13 203/390/13 +f 207/391/14 206/392/14 205/393/14 +f 211/394/14 210/395/14 209/396/14 +f 215/397/14 214/398/14 213/399/14 +f 219/400/14 218/401/14 217/402/14 +f 223/403/14 222/404/14 221/405/14 +f 227/406/13 225/407/13 226/408/13 +f 231/409/13 229/410/13 230/411/13 +f 235/412/13 233/413/13 234/414/13 +f 239/415/13 237/416/13 238/417/13 +f 217/418/15 233/419/15 219/420/15 +f 210/421/16 226/422/16 209/423/16 +f 218/424/16 234/425/16 217/426/16 +f 212/427/17 227/428/17 210/395/17 +f 220/429/17 235/430/17 218/401/17 +f 211/394/18 228/431/18 212/432/18 +f 205/433/15 204/434/15 207/435/15 +f 219/400/18 236/436/18 220/437/18 +f 213/438/15 229/439/15 215/440/15 +f 206/441/16 203/442/16 205/443/16 +f 221/444/15 237/445/15 223/446/15 +f 214/447/16 230/448/16 213/449/16 +f 208/450/17 202/451/17 206/392/17 +f 222/452/16 238/453/16 221/454/16 +f 216/455/17 231/456/17 214/398/17 +f 207/391/18 201/457/18 208/458/18 +f 224/459/17 239/460/17 222/404/17 +f 215/397/18 232/461/18 216/462/18 +f 209/463/15 225/464/15 211/465/15 +f 223/403/18 240/466/18 224/467/18 +f 349/468/17 242/469/17 341/470/17 +f 345/471/15 243/472/15 337/473/15 +f 249/474/15 357/475/15 353/476/15 +f 520/477/13 79/190/13 87/327/13 +f 248/478/13 360/479/13 352/480/13 +f 242/469/14 353/481/14 341/470/14 +f 244/482/18 252/483/18 248/484/18 +f 253/485/17 365/486/17 361/487/17 +f 245/488/13 368/489/13 348/490/13 +f 243/491/14 361/487/14 337/492/14 +f 247/493/18 253/494/18 243/495/18 +f 85/183/17 520/477/17 87/327/17 +f 261/496/15 259/497/15 257/498/15 +f 263/499/18 260/500/18 259/501/18 +f 262/502/16 257/503/16 258/504/16 +f 264/505/17 258/506/17 260/507/17 +f 261/496/13 264/505/13 263/499/13 +f 269/508/15 267/509/15 265/510/15 +f 271/511/18 268/512/18 267/513/18 +f 270/514/16 265/515/16 266/516/16 +f 272/517/17 266/518/17 268/519/17 +f 269/508/13 272/517/13 271/511/13 +f 277/520/15 275/521/15 273/522/15 +f 279/523/18 276/524/18 275/525/18 +f 278/526/16 273/527/16 274/528/16 +f 280/529/17 274/530/17 276/531/17 +f 277/520/13 280/529/13 279/523/13 +f 285/532/15 283/533/15 281/534/15 +f 287/535/18 284/536/18 283/537/18 +f 286/538/16 281/539/16 282/540/16 +f 288/541/17 282/542/17 284/543/17 +f 285/532/13 288/541/13 287/535/13 +f 293/544/15 291/545/15 289/546/15 +f 295/547/18 292/548/18 291/549/18 +f 294/550/16 289/551/16 290/552/16 +f 296/553/17 290/554/17 292/555/17 +f 293/544/13 296/553/13 295/547/13 +f 301/556/15 299/557/15 297/558/15 +f 303/559/18 300/560/18 299/561/18 +f 302/562/16 297/563/16 298/564/16 +f 304/565/17 298/566/17 300/567/17 +f 301/556/13 304/565/13 303/559/13 +f 309/568/15 307/569/15 305/570/15 +f 311/571/18 308/572/18 307/573/18 +f 310/574/16 305/575/16 306/576/16 +f 312/577/17 306/578/17 308/579/17 +f 309/568/13 312/577/13 311/571/13 +f 317/580/15 315/581/15 313/582/15 +f 319/583/18 316/584/18 315/585/18 +f 318/586/16 313/587/16 314/588/16 +f 320/589/17 314/590/17 316/591/17 +f 317/580/13 320/589/13 319/583/13 +f 325/592/15 323/593/15 321/594/15 +f 327/595/18 324/596/18 323/597/18 +f 326/598/16 321/599/16 322/600/16 +f 328/601/17 322/602/17 324/603/17 +f 325/592/13 328/601/13 327/595/13 +f 333/604/15 331/605/15 329/606/15 +f 335/607/18 332/608/18 331/609/18 +f 334/610/16 329/611/16 330/612/16 +f 336/613/17 330/614/17 332/615/17 +f 333/604/13 336/613/13 335/607/13 +f 340/616/14 254/617/14 241/618/14 +f 339/619/14 364/620/14 340/621/14 +f 338/622/14 363/623/14 339/624/14 +f 337/625/14 362/626/14 338/627/14 +f 345/471/13 255/628/13 247/629/13 +f 346/630/13 365/631/13 345/632/13 +f 347/633/13 366/634/13 346/635/13 +f 348/636/13 367/637/13 347/638/13 +f 364/639/17 256/640/17 254/617/17 +f 363/641/17 368/642/17 364/620/17 +f 362/643/17 367/644/17 363/623/17 +f 361/645/17 366/646/17 362/626/17 +f 344/647/14 250/648/14 244/649/14 +f 343/650/14 356/651/14 344/652/14 +f 342/653/14 355/654/14 343/655/14 +f 341/656/14 354/657/14 342/658/14 +f 349/468/13 251/659/13 246/660/13 +f 350/661/13 357/662/13 349/663/13 +f 351/664/13 358/665/13 350/666/13 +f 352/667/13 359/668/13 351/669/13 +f 356/670/15 252/671/15 250/672/15 +f 355/673/15 360/674/15 356/675/15 +f 354/676/15 359/677/15 355/678/15 +f 353/679/15 358/680/15 354/681/15 +f 245/488/15 340/682/15 241/683/15 +f 348/636/15 339/684/15 340/685/15 +f 347/633/15 338/686/15 339/687/15 +f 346/630/15 337/688/15 338/689/15 +f 248/478/17 344/647/17 244/649/17 +f 352/667/17 343/650/17 344/652/17 +f 351/664/17 342/653/17 343/655/17 +f 350/661/17 341/656/17 342/658/17 +f 370/690/13 372/691/13 371/692/13 +f 375/693/14 374/694/14 373/695/14 +f 379/696/14 378/697/14 377/698/14 +f 383/699/14 382/700/14 381/701/14 +f 387/702/14 386/703/14 385/704/14 +f 391/705/14 390/706/14 389/707/14 +f 395/708/13 393/709/13 394/710/13 +f 399/711/13 397/712/13 398/713/13 +f 403/714/13 401/715/13 402/716/13 +f 407/717/13 405/718/13 406/719/13 +f 385/720/15 401/721/15 387/722/15 +f 378/723/16 394/724/16 377/725/16 +f 386/726/16 402/727/16 385/728/16 +f 380/729/17 395/730/17 378/697/17 +f 388/731/17 403/732/17 386/703/17 +f 379/696/18 396/733/18 380/734/18 +f 373/735/15 372/736/15 375/737/15 +f 387/702/18 404/738/18 388/739/18 +f 381/740/15 397/741/15 383/742/15 +f 374/743/16 371/744/16 373/745/16 +f 389/746/15 405/747/15 391/748/15 +f 382/749/16 398/750/16 381/751/16 +f 376/752/17 370/753/17 374/694/17 +f 390/754/16 406/755/16 389/756/16 +f 384/757/17 399/758/17 382/700/17 +f 375/693/18 369/759/18 376/760/18 +f 392/761/17 407/762/17 390/706/17 +f 383/699/18 400/763/18 384/764/18 +f 377/765/15 393/766/15 379/767/15 +f 391/705/18 408/768/18 392/769/18 +f 413/770/15 411/771/15 409/772/15 +f 415/773/18 412/774/18 411/775/18 +f 414/776/16 409/777/16 410/778/16 +f 416/779/17 410/780/17 412/781/17 +f 413/770/13 416/779/13 415/773/13 +f 421/782/15 419/783/15 417/784/15 +f 423/785/18 420/786/18 419/787/18 +f 422/788/16 417/789/16 418/790/16 +f 424/791/17 418/792/17 420/793/17 +f 421/782/13 424/791/13 423/785/13 +f 429/794/15 427/795/15 425/796/15 +f 431/797/18 428/798/18 427/799/18 +f 430/800/16 425/801/16 426/802/16 +f 432/803/17 426/804/17 428/805/17 +f 429/794/13 432/803/13 431/797/13 +f 437/806/15 435/807/15 433/808/15 +f 439/809/18 436/810/18 435/811/18 +f 438/812/16 433/813/16 434/814/16 +f 440/815/17 434/816/17 436/817/17 +f 437/806/13 440/815/13 439/809/13 +f 445/818/15 443/819/15 441/820/15 +f 447/821/18 444/822/18 443/823/18 +f 446/824/16 441/825/16 442/826/16 +f 448/827/17 442/828/17 444/829/17 +f 445/818/13 448/827/13 447/821/13 +f 453/830/15 451/831/15 449/832/15 +f 455/833/18 452/834/18 451/835/18 +f 454/836/16 449/837/16 450/838/16 +f 456/839/17 450/840/17 452/841/17 +f 453/830/13 456/839/13 455/833/13 +f 461/842/15 459/843/15 457/844/15 +f 463/845/18 460/846/18 459/847/18 +f 462/848/16 457/849/16 458/850/16 +f 464/851/17 458/852/17 460/853/17 +f 461/842/13 464/851/13 463/845/13 +f 469/854/15 467/855/15 465/856/15 +f 471/857/18 468/858/18 467/859/18 +f 470/860/16 465/861/16 466/862/16 +f 472/863/17 466/864/17 468/865/17 +f 469/854/13 472/863/13 471/857/13 +f 477/866/15 475/867/15 473/868/15 +f 479/869/18 476/870/18 475/871/18 +f 478/872/16 473/873/16 474/874/16 +f 480/875/17 474/876/17 476/877/17 +f 477/866/13 480/875/13 479/869/13 +f 485/878/15 483/879/15 481/880/15 +f 487/881/18 484/882/18 483/883/18 +f 486/884/16 481/885/16 482/886/16 +f 488/887/17 482/888/17 484/889/17 +f 485/878/13 488/887/13 487/881/13 +f 491/890/14 516/182/14 492/891/14 +f 490/892/14 515/893/14 491/894/14 +f 489/895/14 514/896/14 490/897/14 +f 498/898/13 517/899/13 497/900/13 +f 499/901/13 518/902/13 498/903/13 +f 500/904/13 519/905/13 499/906/13 +f 515/907/17 520/477/17 516/182/17 +f 514/908/17 519/909/17 515/893/17 +f 513/910/17 518/911/17 514/896/17 +f 495/912/14 508/913/14 496/914/14 +f 494/915/14 507/916/14 495/917/14 +f 493/918/14 506/919/14 494/920/14 +f 502/921/13 509/922/13 501/923/13 +f 503/924/13 510/925/13 502/926/13 +f 504/927/13 511/928/13 503/929/13 +f 507/930/15 512/931/15 508/932/15 +f 506/933/15 511/934/15 507/935/15 +f 505/936/15 510/937/15 506/938/15 +f 500/904/15 491/939/15 492/191/15 +f 499/901/15 490/940/15 491/941/15 +f 498/898/15 489/942/15 490/943/15 +f 504/927/17 495/912/17 496/914/17 +f 503/924/17 494/915/17 495/917/17 +f 502/921/17 493/918/17 494/920/17 +f 493/918/17 80/177/17 76/347/17 +f 80/177/13 509/922/13 84/369/13 +f 509/922/15 82/370/15 84/369/15 +f 505/944/14 76/347/14 82/346/14 +f 517/899/17 254/617/17 256/640/17 +f 245/488/13 517/899/13 256/640/13 +f 489/942/15 245/488/15 241/683/15 +f 513/910/14 241/618/14 254/617/14 +f 246/660/17 496/914/17 242/469/17 +f 512/931/13 246/660/13 251/659/13 +f 249/474/15 512/931/15 251/659/15 +f 242/469/14 508/913/14 249/945/14 +f 571/946/19 568/947/19 572/948/19 +f 605/949/19 539/950/19 540/951/19 +f 605/952/19 574/953/19 606/954/19 +f 539/955/20 548/956/20 540/957/20 +f 536/958/14 548/956/14 544/959/14 +f 530/960/14 531/961/14 532/962/14 +f 537/963/14 568/964/14 533/965/14 +f 532/966/21 528/967/21 530/968/21 +f 534/969/19 568/964/19 567/970/19 +f 615/971/22 524/972/22 523/973/22 +f 571/946/13 566/974/13 567/975/13 +f 538/976/13 567/970/13 566/977/13 +f 616/978/21 522/979/21 524/980/21 +f 542/981/23 549/982/23 541/983/23 +f 545/984/24 554/985/24 546/986/24 +f 534/987/13 546/988/13 542/989/13 +f 536/990/25 543/991/25 535/992/25 +f 535/992/13 547/993/13 539/955/13 +f 533/994/14 545/995/14 537/996/14 +f 537/997/25 546/988/25 538/998/25 +f 534/987/20 541/999/20 533/994/20 +f 549/1000/14 561/1001/14 553/1002/14 +f 551/1003/13 563/1004/13 555/1005/13 +f 544/1006/14 556/1007/14 552/1008/14 +f 547/1009/23 556/1007/23 548/1010/23 +f 542/981/13 554/985/13 550/1011/13 +f 544/1012/24 551/1013/24 543/1014/24 +f 543/1014/13 555/1015/13 547/1009/13 +f 541/983/14 553/1016/14 545/1017/14 +f 553/1018/26 562/1019/26 554/1020/26 +f 550/1021/27 557/1022/27 549/1000/27 +f 552/1023/14 564/1024/14 560/1025/14 +f 555/1005/27 564/1024/27 556/1026/27 +f 550/1021/13 562/1019/13 558/1027/13 +f 552/1028/26 559/1029/26 551/1003/26 +f 606/1030/13 535/1031/13 539/950/13 +f 575/1032/25 584/1033/25 576/1034/25 +f 572/1035/14 584/1036/14 580/1037/14 +f 576/1038/28 566/974/28 575/1039/28 +f 537/1040/28 566/977/28 565/1041/28 +f 529/1042/29 526/1043/29 531/961/29 +f 565/1044/14 572/948/14 568/947/14 +f 526/1045/13 528/1046/13 527/1047/13 +f 614/1048/30 521/1049/30 522/1050/30 +f 530/960/30 525/1051/30 529/1052/30 +f 531/1053/22 527/1054/22 532/1055/22 +f 578/1056/24 585/1057/24 577/1058/24 +f 581/1059/23 590/1060/23 582/1061/23 +f 570/1062/13 582/1063/13 578/1064/13 +f 572/1035/20 579/1065/20 571/1066/20 +f 571/1066/13 583/1067/13 575/1032/13 +f 569/1068/14 581/1069/14 573/1070/14 +f 573/1070/20 582/1063/20 574/1071/20 +f 570/1062/25 577/1072/25 569/1073/25 +f 589/1074/14 593/1075/14 597/1076/14 +f 587/1077/13 599/1078/13 591/1079/13 +f 580/1080/14 592/1081/14 588/1082/14 +f 583/1083/24 592/1084/24 584/1085/24 +f 578/1056/13 590/1060/13 586/1086/13 +f 580/1080/23 587/1087/23 579/1088/23 +f 579/1088/13 591/1089/13 583/1083/13 +f 577/1090/14 589/1091/14 581/1059/14 +f 589/1074/27 598/1092/27 590/1093/27 +f 586/1094/26 593/1095/26 585/1096/26 +f 588/1097/14 600/1098/14 596/1099/14 +f 591/1079/26 600/1100/26 592/1101/26 +f 590/1093/13 594/1102/13 586/1094/13 +f 588/1097/27 595/1103/27 587/1077/27 +f 570/1104/28 607/1105/28 608/1106/28 +f 602/1107/13 603/1108/13 601/1109/13 +f 574/953/13 608/1106/13 606/954/13 +f 601/1109/29 611/1110/29 609/1111/29 +f 603/1108/22 612/1112/22 611/1113/22 +f 602/1107/30 609/1114/30 610/1115/30 +f 536/1116/14 605/949/14 540/951/14 +f 604/1117/21 610/1118/21 612/1119/21 +f 607/1120/14 573/1121/14 605/952/14 +f 614/1048/13 615/971/13 613/1122/13 +f 613/1122/29 523/1123/29 521/1124/29 +f 618/1125/13 620/1126/13 619/1127/13 +f 623/1128/14 622/1129/14 621/1130/14 +f 627/1131/14 626/1132/14 625/1133/14 +f 631/1134/14 630/1135/14 629/1136/14 +f 635/1137/14 634/1138/14 633/1139/14 +f 639/1140/13 637/1141/13 638/1142/13 +f 643/1143/13 641/1144/13 642/1145/13 +f 647/1146/13 645/1147/13 646/1148/13 +f 626/1149/16 638/1150/16 625/1151/16 +f 628/1152/17 639/1153/17 626/1132/17 +f 627/1131/18 640/1154/18 628/1155/18 +f 621/1156/15 620/1157/15 623/1158/15 +f 629/1159/15 641/1160/15 631/1161/15 +f 622/1162/16 619/1163/16 621/1164/16 +f 633/1165/15 645/1166/15 635/1167/15 +f 630/1168/16 642/1169/16 629/1170/16 +f 624/1171/17 618/1172/17 622/1129/17 +f 634/1173/16 646/1174/16 633/1175/16 +f 632/1176/17 643/1177/17 630/1135/17 +f 623/1128/18 617/1178/18 624/1179/18 +f 636/1180/17 647/1181/17 634/1138/17 +f 631/1134/18 644/1182/18 632/1183/18 +f 625/1184/15 637/1185/15 627/1186/15 +f 635/1137/18 648/1187/18 636/1188/18 +f 729/1189/15 649/1190/15 721/1191/15 +f 652/1192/13 744/1193/13 736/1194/13 +f 650/1195/18 654/1196/18 652/1197/18 +f 655/1198/17 749/1199/17 745/1200/17 +f 649/1201/14 745/1200/14 721/1202/14 +f 651/1203/18 655/1204/18 649/1205/18 +f 661/1206/15 659/1207/15 657/1208/15 +f 663/1209/18 660/1210/18 659/1211/18 +f 662/1212/16 657/1213/16 658/1214/16 +f 664/1215/17 658/1216/17 660/1217/17 +f 661/1206/13 664/1215/13 663/1209/13 +f 669/1218/15 667/1219/15 665/1220/15 +f 671/1221/18 668/1222/18 667/1223/18 +f 670/1224/16 665/1225/16 666/1226/16 +f 672/1227/17 666/1228/17 668/1229/17 +f 669/1218/13 672/1227/13 671/1221/13 +f 677/1230/15 675/1231/15 673/1232/15 +f 679/1233/18 676/1234/18 675/1235/18 +f 678/1236/16 673/1237/16 674/1238/16 +f 680/1239/17 674/1240/17 676/1241/17 +f 677/1230/13 680/1239/13 679/1233/13 +f 685/1242/15 683/1243/15 681/1244/15 +f 687/1245/18 684/1246/18 683/1247/18 +f 686/1248/16 681/1249/16 682/1250/16 +f 688/1251/17 682/1252/17 684/1253/17 +f 685/1242/13 688/1251/13 687/1245/13 +f 693/1254/15 691/1255/15 689/1256/15 +f 695/1257/18 692/1258/18 691/1259/18 +f 694/1260/16 689/1261/16 690/1262/16 +f 696/1263/17 690/1264/17 692/1265/17 +f 693/1254/13 696/1263/13 695/1257/13 +f 701/1266/15 699/1267/15 697/1268/15 +f 703/1269/18 700/1270/18 699/1271/18 +f 702/1272/16 697/1273/16 698/1274/16 +f 704/1275/17 698/1276/17 700/1277/17 +f 701/1266/13 704/1275/13 703/1269/13 +f 709/1278/15 707/1279/15 705/1280/15 +f 711/1281/18 708/1282/18 707/1283/18 +f 710/1284/16 705/1285/16 706/1286/16 +f 712/1287/17 706/1288/17 708/1289/17 +f 709/1278/13 712/1287/13 711/1281/13 +f 717/1290/15 715/1291/15 713/1292/15 +f 719/1293/18 716/1294/18 715/1295/18 +f 718/1296/16 713/1297/16 714/1298/16 +f 720/1299/17 714/1300/17 716/1301/17 +f 717/1290/13 720/1299/13 719/1293/13 +f 723/1302/14 748/1303/14 724/1304/14 +f 722/1305/14 747/1306/14 723/1307/14 +f 721/1308/14 746/1309/14 722/1310/14 +f 729/1189/13 656/1311/13 651/1312/13 +f 730/1313/13 749/1314/13 729/1315/13 +f 731/1316/13 750/1317/13 730/1318/13 +f 732/1319/13 751/1320/13 731/1321/13 +f 747/1322/17 752/1323/17 748/1303/17 +f 746/1324/17 751/1325/17 747/1306/17 +f 745/1326/17 750/1327/17 746/1309/17 +f 728/1328/14 653/1329/14 650/1330/14 +f 727/1331/14 740/1332/14 728/1333/14 +f 726/1334/14 739/1335/14 727/1336/14 +f 725/1337/14 738/1338/14 726/1339/14 +f 734/1340/13 741/1341/13 733/1342/13 +f 735/1343/13 742/1344/13 734/1345/13 +f 736/1346/13 743/1347/13 735/1348/13 +f 740/1349/15 654/1350/15 653/1351/15 +f 739/1352/15 744/1353/15 740/1354/15 +f 738/1355/15 743/1356/15 739/1357/15 +f 737/1358/15 742/1359/15 738/1360/15 +f 732/1319/15 723/1361/15 724/1362/15 +f 731/1316/15 722/1363/15 723/1364/15 +f 730/1313/15 721/1365/15 722/1366/15 +f 652/1192/17 728/1328/17 650/1330/17 +f 736/1346/17 727/1331/17 728/1333/17 +f 735/1343/17 726/1334/17 727/1336/17 +f 734/1340/17 725/1337/17 726/1339/17 +f 741/1367/15 600/1368/15 599/1369/15 +f 595/1370/13 741/1367/13 599/1369/13 +f 725/1371/17 595/1370/17 596/1372/17 +f 737/1373/14 596/1372/14 600/1374/14 +f 594/1375/15 724/1376/15 593/1377/15 +f 752/1378/13 594/1375/13 598/1379/13 +f 597/1380/17 752/1378/17 598/1379/17 +f 597/1380/14 724/1381/14 748/1382/14 +f 608/1383/28 536/1384/28 535/1031/28 +f 762/1385/14 763/1386/14 764/1387/14 +f 764/1388/25 760/1389/25 762/1390/25 +f 775/1391/31 756/1392/31 755/1393/31 +f 776/1394/25 754/1395/25 756/1396/25 +f 761/1397/20 758/1398/20 763/1386/20 +f 758/1399/13 760/1400/13 759/1401/13 +f 774/1402/32 753/1403/32 754/1404/32 +f 762/1385/32 757/1405/32 761/1406/32 +f 763/1407/31 759/1408/31 764/1409/31 +f 766/1410/13 767/1411/13 765/1412/13 +f 765/1412/20 771/1413/20 769/1414/20 +f 767/1411/31 772/1415/31 771/1416/31 +f 766/1410/32 769/1417/32 770/1418/32 +f 768/1419/25 770/1420/25 772/1421/25 +f 774/1402/13 775/1391/13 773/1422/13 +f 773/1422/20 755/1423/20 753/1424/20 +f 788/1425/14 785/1426/14 787/1427/14 +f 788/1428/24 784/1429/24 786/1430/24 +f 799/1431/33 780/1432/33 779/1433/33 +f 800/1434/24 778/1435/24 780/1436/24 +f 785/1437/23 782/1438/23 787/1427/23 +f 783/1439/13 781/1440/13 784/1441/13 +f 798/1442/34 777/1443/34 778/1444/34 +f 786/1445/34 781/1440/34 785/1426/34 +f 787/1446/33 783/1447/33 788/1448/33 +f 790/1449/13 791/1450/13 789/1451/13 +f 789/1451/23 795/1452/23 793/1453/23 +f 791/1450/33 796/1454/33 795/1455/33 +f 790/1449/34 793/1456/34 794/1457/34 +f 792/1458/24 794/1459/24 796/1460/24 +f 798/1442/13 799/1431/13 797/1461/13 +f 797/1461/23 779/1462/23 777/1463/23 +f 810/1464/14 811/1465/14 812/1466/14 +f 812/1467/26 808/1468/26 810/1469/26 +f 823/1470/35 804/1471/35 803/1472/35 +f 824/1473/26 802/1474/26 804/1475/26 +f 809/1476/27 806/1477/27 811/1465/27 +f 806/1478/13 808/1479/13 807/1480/13 +f 822/1481/36 801/1482/36 802/1483/36 +f 810/1464/36 805/1484/36 809/1485/36 +f 811/1486/35 807/1487/35 812/1488/35 +f 816/1489/13 813/1490/13 814/1491/13 +f 813/1490/27 819/1492/27 817/1493/27 +f 815/1494/35 820/1495/35 819/1496/35 +f 814/1491/36 817/1497/36 818/1498/36 +f 816/1489/26 818/1499/26 820/1500/26 +f 822/1481/13 823/1470/13 821/1501/13 +f 821/1501/27 803/1502/27 801/1503/27 +f 836/1504/14 833/1505/14 835/1506/14 +f 836/1507/21 832/1508/21 834/1509/21 +f 847/1510/22 828/1511/22 827/1512/22 +f 848/1513/21 826/1514/21 828/1515/21 +f 833/1516/29 830/1517/29 835/1506/29 +f 831/1518/13 829/1519/13 832/1520/13 +f 846/1521/30 825/1522/30 826/1523/30 +f 834/1524/30 829/1519/30 833/1505/30 +f 835/1525/22 831/1526/22 836/1527/22 +f 838/1528/13 839/1529/13 837/1530/13 +f 837/1530/29 843/1531/29 841/1532/29 +f 839/1529/22 844/1533/22 843/1534/22 +f 838/1528/30 841/1535/30 842/1536/30 +f 840/1537/21 842/1538/21 844/1539/21 +f 846/1521/13 847/1510/13 845/1540/13 +f 845/1540/29 827/1541/29 825/1542/29 +f 851/1543/14 850/1544/14 849/1545/14 +f 855/1546/13 853/1547/13 854/1548/13 +f 849/1549/15 853/1550/15 851/1551/15 +f 850/1552/16 854/1553/16 849/1554/16 +f 852/1555/17 855/1556/17 850/1544/17 +f 851/1543/18 856/1557/18 852/1558/18 +f 861/1559/15 859/1560/15 857/1561/15 +f 863/1562/18 860/1563/18 859/1564/18 +f 862/1565/16 857/1566/16 858/1567/16 +f 864/1568/17 858/1569/17 860/1570/17 +f 861/1559/13 864/1568/13 863/1562/13 +f 869/1571/15 867/1572/15 865/1573/15 +f 871/1574/18 868/1575/18 867/1576/18 +f 870/1577/16 865/1578/16 866/1579/16 +f 872/1580/17 866/1581/17 868/1582/17 +f 869/1571/13 872/1580/13 871/1574/13 +f 34/85/13 33/154/13 36/86/13 +f 39/88/14 40/155/14 38/89/14 +f 43/91/14 44/129/14 42/92/14 +f 47/94/14 48/159/14 46/95/14 +f 51/97/14 52/134/14 50/98/14 +f 55/100/14 56/164/14 54/101/14 +f 59/103/13 60/128/13 57/104/13 +f 63/106/13 64/158/13 61/107/13 +f 67/109/13 68/133/13 65/110/13 +f 71/112/13 72/163/13 69/113/13 +f 49/115/15 66/1583/15 65/116/15 +f 42/118/16 59/1584/16 58/119/16 +f 50/121/16 67/1585/16 66/122/16 +f 44/124/17 60/1586/17 59/125/17 +f 52/126/17 68/1587/17 67/127/17 +f 43/91/18 57/104/18 60/128/18 +f 37/130/15 35/1588/15 36/131/15 +f 51/97/18 65/110/18 68/133/18 +f 45/135/15 62/1589/15 61/136/15 +f 38/138/16 34/1590/16 35/139/16 +f 53/141/15 70/1591/15 69/142/15 +f 46/144/16 63/1592/16 62/145/16 +f 40/147/17 33/1593/17 34/148/17 +f 54/149/16 71/1594/16 70/150/16 +f 48/152/17 64/1595/17 63/153/17 +f 39/88/18 36/86/18 33/154/18 +f 56/156/17 72/1596/17 71/157/17 +f 47/94/18 61/107/18 64/158/18 +f 41/160/15 58/1597/15 57/161/15 +f 55/100/18 69/113/18 72/163/18 +f 181/165/17 78/358/17 74/166/17 +f 177/168/15 79/190/15 75/169/15 +f 81/171/15 83/357/15 189/172/15 +f 78/174/16 83/1598/16 81/175/16 +f 80/177/13 84/369/13 192/178/13 +f 74/166/14 81/1599/14 185/180/14 +f 75/181/14 492/891/14 516/182/14 +f 85/183/17 87/327/17 197/184/17 +f 77/186/13 88/338/13 200/187/13 +f 75/181/14 85/183/14 193/185/14 +f 79/190/15 500/904/15 492/191/15 +f 73/192/16 86/1600/16 88/193/16 +f 93/195/15 95/198/15 91/196/15 +f 95/198/18 96/204/18 92/199/18 +f 94/201/16 93/195/16 89/202/16 +f 96/204/17 94/201/17 90/205/17 +f 93/195/13 94/201/13 96/204/13 +f 101/207/15 103/210/15 99/208/15 +f 103/210/18 104/216/18 100/211/18 +f 102/213/16 101/207/16 97/214/16 +f 104/216/17 102/213/17 98/217/17 +f 101/207/13 102/213/13 104/216/13 +f 109/219/15 111/222/15 107/220/15 +f 111/222/18 112/228/18 108/223/18 +f 110/225/16 109/219/16 105/226/16 +f 112/228/17 110/225/17 106/229/17 +f 109/219/13 110/225/13 112/228/13 +f 117/231/15 119/234/15 115/232/15 +f 119/234/18 120/240/18 116/235/18 +f 118/237/16 117/231/16 113/238/16 +f 120/240/17 118/237/17 114/241/17 +f 117/231/13 118/237/13 120/240/13 +f 125/243/15 127/246/15 123/244/15 +f 127/246/18 128/252/18 124/247/18 +f 126/249/16 125/243/16 121/250/16 +f 128/252/17 126/249/17 122/253/17 +f 125/243/13 126/249/13 128/252/13 +f 133/255/15 135/258/15 131/256/15 +f 135/258/18 136/264/18 132/259/18 +f 134/261/16 133/255/16 129/262/16 +f 136/264/17 134/261/17 130/265/17 +f 133/255/13 134/261/13 136/264/13 +f 141/267/15 143/270/15 139/268/15 +f 143/270/18 144/276/18 140/271/18 +f 142/273/16 141/267/16 137/274/16 +f 144/276/17 142/273/17 138/277/17 +f 141/267/13 142/273/13 144/276/13 +f 149/279/15 151/282/15 147/280/15 +f 151/282/18 152/288/18 148/283/18 +f 150/285/16 149/279/16 145/286/16 +f 152/288/17 150/285/17 146/289/17 +f 149/279/13 150/285/13 152/288/13 +f 157/291/15 159/294/15 155/292/15 +f 159/294/18 160/300/18 156/295/18 +f 158/297/16 157/291/16 153/298/16 +f 160/300/17 158/297/17 154/301/17 +f 157/291/13 158/297/13 160/300/13 +f 165/303/15 167/306/15 163/304/15 +f 167/306/18 168/312/18 164/307/18 +f 166/309/16 165/303/16 161/310/16 +f 168/312/17 166/309/17 162/313/17 +f 165/303/13 166/309/13 168/312/13 +f 172/315/14 196/337/14 86/316/14 +f 171/318/14 195/339/14 196/319/14 +f 170/321/14 194/341/14 195/322/14 +f 169/324/14 193/343/14 194/325/14 +f 177/168/13 197/184/13 87/327/13 +f 178/328/13 198/344/13 197/329/13 +f 179/331/13 199/342/13 198/332/13 +f 180/334/13 200/340/13 199/335/13 +f 196/337/17 200/187/17 88/338/17 +f 195/339/17 199/335/17 200/340/17 +f 194/341/17 198/332/17 199/342/17 +f 193/343/17 197/329/17 198/344/17 +f 176/345/14 188/1601/14 82/346/14 +f 175/348/14 187/1602/14 188/349/14 +f 174/351/14 186/1603/14 187/352/14 +f 173/354/14 185/1604/14 186/355/14 +f 181/165/13 189/172/13 83/357/13 +f 182/359/13 190/378/13 189/360/13 +f 183/362/13 191/375/13 190/363/13 +f 184/365/13 192/372/13 191/366/13 +f 188/368/15 192/178/15 84/369/15 +f 187/371/15 191/366/15 192/372/15 +f 186/374/15 190/363/15 191/375/15 +f 185/377/15 189/360/15 190/378/15 +f 77/186/15 180/188/15 172/380/15 +f 180/334/15 179/336/15 171/382/15 +f 179/331/15 178/333/15 170/384/15 +f 178/328/15 177/330/15 169/386/15 +f 80/177/17 184/179/17 176/345/17 +f 184/365/17 183/367/17 175/348/17 +f 183/362/17 182/364/17 174/351/17 +f 182/359/17 181/361/17 173/354/17 +f 202/388/13 201/457/13 204/389/13 +f 207/391/14 208/458/14 206/392/14 +f 211/394/14 212/432/14 210/395/14 +f 215/397/14 216/462/14 214/398/14 +f 219/400/14 220/437/14 218/401/14 +f 223/403/14 224/467/14 222/404/14 +f 227/406/13 228/431/13 225/407/13 +f 231/409/13 232/461/13 229/410/13 +f 235/412/13 236/436/13 233/413/13 +f 239/415/13 240/466/13 237/416/13 +f 217/418/15 234/1605/15 233/419/15 +f 210/421/16 227/1606/16 226/422/16 +f 218/424/16 235/1607/16 234/425/16 +f 212/427/17 228/1608/17 227/428/17 +f 220/429/17 236/1609/17 235/430/17 +f 211/394/18 225/407/18 228/431/18 +f 205/433/15 203/1610/15 204/434/15 +f 219/400/18 233/413/18 236/436/18 +f 213/438/15 230/1611/15 229/439/15 +f 206/441/16 202/1612/16 203/442/16 +f 221/444/15 238/1613/15 237/445/15 +f 214/447/16 231/1614/16 230/448/16 +f 208/450/17 201/1615/17 202/451/17 +f 222/452/16 239/1616/16 238/453/16 +f 216/455/17 232/1617/17 231/456/17 +f 207/391/18 204/389/18 201/457/18 +f 224/459/17 240/1618/17 239/460/17 +f 215/397/18 229/410/18 232/461/18 +f 209/463/15 226/1619/15 225/464/15 +f 223/403/18 237/416/18 240/466/18 +f 349/468/17 246/660/17 242/469/17 +f 345/471/15 247/629/15 243/472/15 +f 249/474/15 251/659/15 357/475/15 +f 520/477/13 500/904/13 79/190/13 +f 248/478/13 252/671/13 360/479/13 +f 242/469/14 249/945/14 353/481/14 +f 244/482/18 250/1620/18 252/483/18 +f 253/485/17 255/628/17 365/486/17 +f 245/488/13 256/640/13 368/489/13 +f 243/491/14 253/485/14 361/487/14 +f 247/493/18 255/1621/18 253/494/18 +f 85/183/17 516/182/17 520/477/17 +f 261/496/15 263/499/15 259/497/15 +f 263/499/18 264/505/18 260/500/18 +f 262/502/16 261/496/16 257/503/16 +f 264/505/17 262/502/17 258/506/17 +f 261/496/13 262/502/13 264/505/13 +f 269/508/15 271/511/15 267/509/15 +f 271/511/18 272/517/18 268/512/18 +f 270/514/16 269/508/16 265/515/16 +f 272/517/17 270/514/17 266/518/17 +f 269/508/13 270/514/13 272/517/13 +f 277/520/15 279/523/15 275/521/15 +f 279/523/18 280/529/18 276/524/18 +f 278/526/16 277/520/16 273/527/16 +f 280/529/17 278/526/17 274/530/17 +f 277/520/13 278/526/13 280/529/13 +f 285/532/15 287/535/15 283/533/15 +f 287/535/18 288/541/18 284/536/18 +f 286/538/16 285/532/16 281/539/16 +f 288/541/17 286/538/17 282/542/17 +f 285/532/13 286/538/13 288/541/13 +f 293/544/15 295/547/15 291/545/15 +f 295/547/18 296/553/18 292/548/18 +f 294/550/16 293/544/16 289/551/16 +f 296/553/17 294/550/17 290/554/17 +f 293/544/13 294/550/13 296/553/13 +f 301/556/15 303/559/15 299/557/15 +f 303/559/18 304/565/18 300/560/18 +f 302/562/16 301/556/16 297/563/16 +f 304/565/17 302/562/17 298/566/17 +f 301/556/13 302/562/13 304/565/13 +f 309/568/15 311/571/15 307/569/15 +f 311/571/18 312/577/18 308/572/18 +f 310/574/16 309/568/16 305/575/16 +f 312/577/17 310/574/17 306/578/17 +f 309/568/13 310/574/13 312/577/13 +f 317/580/15 319/583/15 315/581/15 +f 319/583/18 320/589/18 316/584/18 +f 318/586/16 317/580/16 313/587/16 +f 320/589/17 318/586/17 314/590/17 +f 317/580/13 318/586/13 320/589/13 +f 325/592/15 327/595/15 323/593/15 +f 327/595/18 328/601/18 324/596/18 +f 326/598/16 325/592/16 321/599/16 +f 328/601/17 326/598/17 322/602/17 +f 325/592/13 326/598/13 328/601/13 +f 333/604/15 335/607/15 331/605/15 +f 335/607/18 336/613/18 332/608/18 +f 334/610/16 333/604/16 329/611/16 +f 336/613/17 334/610/17 330/614/17 +f 333/604/13 334/610/13 336/613/13 +f 340/616/14 364/639/14 254/617/14 +f 339/619/14 363/641/14 364/620/14 +f 338/622/14 362/643/14 363/623/14 +f 337/625/14 361/645/14 362/626/14 +f 345/471/13 365/486/13 255/628/13 +f 346/630/13 366/646/13 365/631/13 +f 347/633/13 367/644/13 366/634/13 +f 348/636/13 368/642/13 367/637/13 +f 364/639/17 368/489/17 256/640/17 +f 363/641/17 367/637/17 368/642/17 +f 362/643/17 366/634/17 367/644/17 +f 361/645/17 365/631/17 366/646/17 +f 344/647/14 356/1622/14 250/648/14 +f 343/650/14 355/1623/14 356/651/14 +f 342/653/14 354/1624/14 355/654/14 +f 341/656/14 353/1625/14 354/657/14 +f 349/468/13 357/475/13 251/659/13 +f 350/661/13 358/680/13 357/662/13 +f 351/664/13 359/677/13 358/665/13 +f 352/667/13 360/674/13 359/668/13 +f 356/670/15 360/479/15 252/671/15 +f 355/673/15 359/668/15 360/674/15 +f 354/676/15 358/665/15 359/677/15 +f 353/679/15 357/662/15 358/680/15 +f 245/488/15 348/490/15 340/682/15 +f 348/636/15 347/638/15 339/684/15 +f 347/633/15 346/635/15 338/686/15 +f 346/630/15 345/632/15 337/688/15 +f 248/478/17 352/480/17 344/647/17 +f 352/667/17 351/669/17 343/650/17 +f 351/664/17 350/666/17 342/653/17 +f 350/661/17 349/663/17 341/656/17 +f 370/690/13 369/759/13 372/691/13 +f 375/693/14 376/760/14 374/694/14 +f 379/696/14 380/734/14 378/697/14 +f 383/699/14 384/764/14 382/700/14 +f 387/702/14 388/739/14 386/703/14 +f 391/705/14 392/769/14 390/706/14 +f 395/708/13 396/733/13 393/709/13 +f 399/711/13 400/763/13 397/712/13 +f 403/714/13 404/738/13 401/715/13 +f 407/717/13 408/768/13 405/718/13 +f 385/720/15 402/1626/15 401/721/15 +f 378/723/16 395/1627/16 394/724/16 +f 386/726/16 403/1628/16 402/727/16 +f 380/729/17 396/1629/17 395/730/17 +f 388/731/17 404/1630/17 403/732/17 +f 379/696/18 393/709/18 396/733/18 +f 373/735/15 371/1631/15 372/736/15 +f 387/702/18 401/715/18 404/738/18 +f 381/740/15 398/1632/15 397/741/15 +f 374/743/16 370/1633/16 371/744/16 +f 389/746/15 406/1634/15 405/747/15 +f 382/749/16 399/1635/16 398/750/16 +f 376/752/17 369/1636/17 370/753/17 +f 390/754/16 407/1637/16 406/755/16 +f 384/757/17 400/1638/17 399/758/17 +f 375/693/18 372/691/18 369/759/18 +f 392/761/17 408/1639/17 407/762/17 +f 383/699/18 397/712/18 400/763/18 +f 377/765/15 394/1640/15 393/766/15 +f 391/705/18 405/718/18 408/768/18 +f 413/770/15 415/773/15 411/771/15 +f 415/773/18 416/779/18 412/774/18 +f 414/776/16 413/770/16 409/777/16 +f 416/779/17 414/776/17 410/780/17 +f 413/770/13 414/776/13 416/779/13 +f 421/782/15 423/785/15 419/783/15 +f 423/785/18 424/791/18 420/786/18 +f 422/788/16 421/782/16 417/789/16 +f 424/791/17 422/788/17 418/792/17 +f 421/782/13 422/788/13 424/791/13 +f 429/794/15 431/797/15 427/795/15 +f 431/797/18 432/803/18 428/798/18 +f 430/800/16 429/794/16 425/801/16 +f 432/803/17 430/800/17 426/804/17 +f 429/794/13 430/800/13 432/803/13 +f 437/806/15 439/809/15 435/807/15 +f 439/809/18 440/815/18 436/810/18 +f 438/812/16 437/806/16 433/813/16 +f 440/815/17 438/812/17 434/816/17 +f 437/806/13 438/812/13 440/815/13 +f 445/818/15 447/821/15 443/819/15 +f 447/821/18 448/827/18 444/822/18 +f 446/824/16 445/818/16 441/825/16 +f 448/827/17 446/824/17 442/828/17 +f 445/818/13 446/824/13 448/827/13 +f 453/830/15 455/833/15 451/831/15 +f 455/833/18 456/839/18 452/834/18 +f 454/836/16 453/830/16 449/837/16 +f 456/839/17 454/836/17 450/840/17 +f 453/830/13 454/836/13 456/839/13 +f 461/842/15 463/845/15 459/843/15 +f 463/845/18 464/851/18 460/846/18 +f 462/848/16 461/842/16 457/849/16 +f 464/851/17 462/848/17 458/852/17 +f 461/842/13 462/848/13 464/851/13 +f 469/854/15 471/857/15 467/855/15 +f 471/857/18 472/863/18 468/858/18 +f 470/860/16 469/854/16 465/861/16 +f 472/863/17 470/860/17 466/864/17 +f 469/854/13 470/860/13 472/863/13 +f 477/866/15 479/869/15 475/867/15 +f 479/869/18 480/875/18 476/870/18 +f 478/872/16 477/866/16 473/873/16 +f 480/875/17 478/872/17 474/876/17 +f 477/866/13 478/872/13 480/875/13 +f 485/878/15 487/881/15 483/879/15 +f 487/881/18 488/887/18 484/882/18 +f 486/884/16 485/878/16 481/885/16 +f 488/887/17 486/884/17 482/888/17 +f 485/878/13 486/884/13 488/887/13 +f 491/890/14 515/907/14 516/182/14 +f 490/892/14 514/908/14 515/893/14 +f 489/895/14 513/910/14 514/896/14 +f 498/898/13 518/911/13 517/899/13 +f 499/901/13 519/909/13 518/902/13 +f 500/904/13 520/477/13 519/905/13 +f 515/907/17 519/905/17 520/477/17 +f 514/908/17 518/902/17 519/909/17 +f 513/910/17 517/899/17 518/911/17 +f 495/912/14 507/1641/14 508/913/14 +f 494/915/14 506/1642/14 507/916/14 +f 493/918/14 505/944/14 506/919/14 +f 502/921/13 510/937/13 509/922/13 +f 503/924/13 511/934/13 510/925/13 +f 504/927/13 512/931/13 511/928/13 +f 507/930/15 511/928/15 512/931/15 +f 506/933/15 510/925/15 511/934/15 +f 505/936/15 509/922/15 510/937/15 +f 500/904/15 499/906/15 491/939/15 +f 499/901/15 498/903/15 490/940/15 +f 498/898/15 497/900/15 489/942/15 +f 504/927/17 503/929/17 495/912/17 +f 503/924/17 502/926/17 494/915/17 +f 502/921/17 501/923/17 493/918/17 +f 493/918/17 501/923/17 80/177/17 +f 80/177/13 501/923/13 509/922/13 +f 509/922/15 505/936/15 82/370/15 +f 505/944/14 493/918/14 76/347/14 +f 517/899/17 513/910/17 254/617/17 +f 245/488/13 497/900/13 517/899/13 +f 489/942/15 497/900/15 245/488/15 +f 513/910/14 489/895/14 241/618/14 +f 246/660/17 504/927/17 496/914/17 +f 512/931/13 504/927/13 246/660/13 +f 249/474/15 508/932/15 512/931/15 +f 242/469/14 496/914/14 508/913/14 +f 571/946/19 567/975/19 568/947/19 +f 605/949/19 606/1030/19 539/950/19 +f 605/952/19 573/1121/19 574/953/19 +f 539/955/20 547/993/20 548/956/20 +f 536/958/14 540/957/14 548/956/14 +f 530/960/14 529/1052/14 531/961/14 +f 537/963/14 565/1643/14 568/964/14 +f 532/966/21 527/1644/21 528/967/21 +f 534/969/19 533/965/19 568/964/19 +f 615/971/22 616/978/22 524/972/22 +f 571/946/13 575/1039/13 566/974/13 +f 538/976/13 534/969/13 567/970/13 +f 616/978/21 614/1048/21 522/979/21 +f 542/981/23 550/1011/23 549/982/23 +f 545/984/24 553/1645/24 554/985/24 +f 534/987/13 538/998/13 546/988/13 +f 536/990/25 544/1646/25 543/991/25 +f 535/992/13 543/991/13 547/993/13 +f 533/994/14 541/999/14 545/995/14 +f 537/997/25 545/1647/25 546/988/25 +f 534/987/20 542/989/20 541/999/20 +f 549/1000/14 557/1022/14 561/1001/14 +f 551/1003/13 559/1029/13 563/1004/13 +f 544/1006/14 548/1010/14 556/1007/14 +f 547/1009/23 555/1015/23 556/1007/23 +f 542/981/13 546/986/13 554/985/13 +f 544/1012/24 552/1648/24 551/1013/24 +f 543/1014/13 551/1013/13 555/1015/13 +f 541/983/14 549/982/14 553/1016/14 +f 553/1018/26 561/1649/26 562/1019/26 +f 550/1021/27 558/1027/27 557/1022/27 +f 552/1023/14 556/1026/14 564/1024/14 +f 555/1005/27 563/1004/27 564/1024/27 +f 550/1021/13 554/1020/13 562/1019/13 +f 552/1028/26 560/1650/26 559/1029/26 +f 606/1030/13 608/1383/13 535/1031/13 +f 575/1032/25 583/1067/25 584/1033/25 +f 572/1035/14 576/1651/14 584/1036/14 +f 576/1038/28 565/1652/28 566/974/28 +f 537/1040/28 538/976/28 566/977/28 +f 529/1042/29 525/1653/29 526/1043/29 +f 565/1044/14 576/1654/14 572/948/14 +f 526/1045/13 525/1051/13 528/1046/13 +f 614/1048/30 613/1122/30 521/1049/30 +f 530/960/30 528/1046/30 525/1051/30 +f 531/1053/22 526/1655/22 527/1054/22 +f 578/1056/24 586/1086/24 585/1057/24 +f 581/1059/23 589/1091/23 590/1060/23 +f 570/1062/13 574/1071/13 582/1063/13 +f 572/1035/20 580/1037/20 579/1065/20 +f 571/1066/13 579/1065/13 583/1067/13 +f 569/1068/14 577/1656/14 581/1069/14 +f 573/1070/20 581/1069/20 582/1063/20 +f 570/1062/25 578/1064/25 577/1072/25 +f 589/1074/14 585/1657/14 593/1075/14 +f 587/1077/13 595/1103/13 599/1078/13 +f 580/1080/14 584/1658/14 592/1081/14 +f 583/1083/24 591/1089/24 592/1084/24 +f 578/1056/13 582/1061/13 590/1060/13 +f 580/1080/23 588/1082/23 587/1087/23 +f 579/1088/13 587/1087/13 591/1089/13 +f 577/1090/14 585/1659/14 589/1091/14 +f 589/1074/27 597/1076/27 598/1092/27 +f 586/1094/26 594/1102/26 593/1095/26 +f 588/1097/14 592/1660/14 600/1098/14 +f 591/1079/26 599/1078/26 600/1100/26 +f 590/1093/13 598/1092/13 594/1102/13 +f 588/1097/27 596/1099/27 595/1103/27 +f 570/1104/28 569/1661/28 607/1105/28 +f 602/1107/13 604/1117/13 603/1108/13 +f 574/953/13 570/1104/13 608/1106/13 +f 601/1109/29 603/1108/29 611/1110/29 +f 603/1108/22 604/1117/22 612/1112/22 +f 602/1107/30 601/1109/30 609/1114/30 +f 536/1116/14 607/1662/14 605/949/14 +f 604/1117/21 602/1107/21 610/1118/21 +f 607/1120/14 569/1663/14 573/1121/14 +f 614/1048/13 616/978/13 615/971/13 +f 613/1122/29 615/971/29 523/1123/29 +f 618/1125/13 617/1178/13 620/1126/13 +f 623/1128/14 624/1179/14 622/1129/14 +f 627/1131/14 628/1155/14 626/1132/14 +f 631/1134/14 632/1183/14 630/1135/14 +f 635/1137/14 636/1188/14 634/1138/14 +f 639/1140/13 640/1154/13 637/1141/13 +f 643/1143/13 644/1182/13 641/1144/13 +f 647/1146/13 648/1187/13 645/1147/13 +f 626/1149/16 639/1664/16 638/1150/16 +f 628/1152/17 640/1665/17 639/1153/17 +f 627/1131/18 637/1141/18 640/1154/18 +f 621/1156/15 619/1666/15 620/1157/15 +f 629/1159/15 642/1667/15 641/1160/15 +f 622/1162/16 618/1668/16 619/1163/16 +f 633/1165/15 646/1669/15 645/1166/15 +f 630/1168/16 643/1670/16 642/1169/16 +f 624/1171/17 617/1671/17 618/1172/17 +f 634/1173/16 647/1672/16 646/1174/16 +f 632/1176/17 644/1673/17 643/1177/17 +f 623/1128/18 620/1126/18 617/1178/18 +f 636/1180/17 648/1674/17 647/1181/17 +f 631/1134/18 641/1144/18 644/1182/18 +f 625/1184/15 638/1675/15 637/1185/15 +f 635/1137/18 645/1147/18 648/1187/18 +f 729/1189/15 651/1312/15 649/1190/15 +f 652/1192/13 654/1350/13 744/1193/13 +f 650/1195/18 653/1676/18 654/1196/18 +f 655/1198/17 656/1311/17 749/1199/17 +f 649/1201/14 655/1198/14 745/1200/14 +f 651/1203/18 656/1677/18 655/1204/18 +f 661/1206/15 663/1209/15 659/1207/15 +f 663/1209/18 664/1215/18 660/1210/18 +f 662/1212/16 661/1206/16 657/1213/16 +f 664/1215/17 662/1212/17 658/1216/17 +f 661/1206/13 662/1212/13 664/1215/13 +f 669/1218/15 671/1221/15 667/1219/15 +f 671/1221/18 672/1227/18 668/1222/18 +f 670/1224/16 669/1218/16 665/1225/16 +f 672/1227/17 670/1224/17 666/1228/17 +f 669/1218/13 670/1224/13 672/1227/13 +f 677/1230/15 679/1233/15 675/1231/15 +f 679/1233/18 680/1239/18 676/1234/18 +f 678/1236/16 677/1230/16 673/1237/16 +f 680/1239/17 678/1236/17 674/1240/17 +f 677/1230/13 678/1236/13 680/1239/13 +f 685/1242/15 687/1245/15 683/1243/15 +f 687/1245/18 688/1251/18 684/1246/18 +f 686/1248/16 685/1242/16 681/1249/16 +f 688/1251/17 686/1248/17 682/1252/17 +f 685/1242/13 686/1248/13 688/1251/13 +f 693/1254/15 695/1257/15 691/1255/15 +f 695/1257/18 696/1263/18 692/1258/18 +f 694/1260/16 693/1254/16 689/1261/16 +f 696/1263/17 694/1260/17 690/1264/17 +f 693/1254/13 694/1260/13 696/1263/13 +f 701/1266/15 703/1269/15 699/1267/15 +f 703/1269/18 704/1275/18 700/1270/18 +f 702/1272/16 701/1266/16 697/1273/16 +f 704/1275/17 702/1272/17 698/1276/17 +f 701/1266/13 702/1272/13 704/1275/13 +f 709/1278/15 711/1281/15 707/1279/15 +f 711/1281/18 712/1287/18 708/1282/18 +f 710/1284/16 709/1278/16 705/1285/16 +f 712/1287/17 710/1284/17 706/1288/17 +f 709/1278/13 710/1284/13 712/1287/13 +f 717/1290/15 719/1293/15 715/1291/15 +f 719/1293/18 720/1299/18 716/1294/18 +f 718/1296/16 717/1290/16 713/1297/16 +f 720/1299/17 718/1296/17 714/1300/17 +f 717/1290/13 718/1296/13 720/1299/13 +f 723/1302/14 747/1322/14 748/1303/14 +f 722/1305/14 746/1324/14 747/1306/14 +f 721/1308/14 745/1326/14 746/1309/14 +f 729/1189/13 749/1199/13 656/1311/13 +f 730/1313/13 750/1327/13 749/1314/13 +f 731/1316/13 751/1325/13 750/1317/13 +f 732/1319/13 752/1323/13 751/1320/13 +f 747/1322/17 751/1320/17 752/1323/17 +f 746/1324/17 750/1317/17 751/1325/17 +f 745/1326/17 749/1314/17 750/1327/17 +f 728/1328/14 740/1678/14 653/1329/14 +f 727/1331/14 739/1679/14 740/1332/14 +f 726/1334/14 738/1680/14 739/1335/14 +f 725/1337/14 737/1681/14 738/1338/14 +f 734/1340/13 742/1359/13 741/1341/13 +f 735/1343/13 743/1356/13 742/1344/13 +f 736/1346/13 744/1353/13 743/1347/13 +f 740/1349/15 744/1193/15 654/1350/15 +f 739/1352/15 743/1347/15 744/1353/15 +f 738/1355/15 742/1344/15 743/1356/15 +f 737/1358/15 741/1341/15 742/1359/15 +f 732/1319/15 731/1321/15 723/1361/15 +f 731/1316/15 730/1318/15 722/1363/15 +f 730/1313/15 729/1315/15 721/1365/15 +f 652/1192/17 736/1194/17 728/1328/17 +f 736/1346/17 735/1348/17 727/1331/17 +f 735/1343/17 734/1345/17 726/1334/17 +f 734/1340/17 733/1342/17 725/1337/17 +f 741/1367/15 737/1682/15 600/1368/15 +f 595/1370/13 733/1683/13 741/1367/13 +f 725/1371/17 733/1683/17 595/1370/17 +f 737/1373/14 725/1371/14 596/1372/14 +f 594/1375/15 732/1684/15 724/1376/15 +f 752/1378/13 732/1684/13 594/1375/13 +f 597/1380/17 748/1382/17 752/1378/17 +f 597/1380/14 593/1685/14 724/1381/14 +f 608/1383/28 607/1686/28 536/1384/28 +f 762/1385/14 761/1406/14 763/1386/14 +f 764/1388/25 759/1687/25 760/1389/25 +f 775/1391/31 776/1394/31 756/1392/31 +f 776/1394/25 774/1402/25 754/1395/25 +f 761/1397/20 757/1688/20 758/1398/20 +f 758/1399/13 757/1405/13 760/1400/13 +f 774/1402/32 773/1422/32 753/1403/32 +f 762/1385/32 760/1400/32 757/1405/32 +f 763/1407/31 758/1689/31 759/1408/31 +f 766/1410/13 768/1419/13 767/1411/13 +f 765/1412/20 767/1411/20 771/1413/20 +f 767/1411/31 768/1419/31 772/1415/31 +f 766/1410/32 765/1412/32 769/1417/32 +f 768/1419/25 766/1410/25 770/1420/25 +f 774/1402/13 776/1394/13 775/1391/13 +f 773/1422/20 775/1391/20 755/1423/20 +f 788/1425/14 786/1445/14 785/1426/14 +f 788/1428/24 783/1690/24 784/1429/24 +f 799/1431/33 800/1434/33 780/1432/33 +f 800/1434/24 798/1442/24 778/1435/24 +f 785/1437/23 781/1691/23 782/1438/23 +f 783/1439/13 782/1692/13 781/1440/13 +f 798/1442/34 797/1461/34 777/1443/34 +f 786/1445/34 784/1441/34 781/1440/34 +f 787/1446/33 782/1693/33 783/1447/33 +f 790/1449/13 792/1458/13 791/1450/13 +f 789/1451/23 791/1450/23 795/1452/23 +f 791/1450/33 792/1458/33 796/1454/33 +f 790/1449/34 789/1451/34 793/1456/34 +f 792/1458/24 790/1449/24 794/1459/24 +f 798/1442/13 800/1434/13 799/1431/13 +f 797/1461/23 799/1431/23 779/1462/23 +f 810/1464/14 809/1485/14 811/1465/14 +f 812/1467/26 807/1694/26 808/1468/26 +f 823/1470/35 824/1473/35 804/1471/35 +f 824/1473/26 822/1481/26 802/1474/26 +f 809/1476/27 805/1695/27 806/1477/27 +f 806/1478/13 805/1484/13 808/1479/13 +f 822/1481/36 821/1501/36 801/1482/36 +f 810/1464/36 808/1479/36 805/1484/36 +f 811/1486/35 806/1696/35 807/1487/35 +f 816/1489/13 815/1494/13 813/1490/13 +f 813/1490/27 815/1494/27 819/1492/27 +f 815/1494/35 816/1489/35 820/1495/35 +f 814/1491/36 813/1490/36 817/1497/36 +f 816/1489/26 814/1491/26 818/1499/26 +f 822/1481/13 824/1473/13 823/1470/13 +f 821/1501/27 823/1470/27 803/1502/27 +f 836/1504/14 834/1524/14 833/1505/14 +f 836/1507/21 831/1697/21 832/1508/21 +f 847/1510/22 848/1513/22 828/1511/22 +f 848/1513/21 846/1521/21 826/1514/21 +f 833/1516/29 829/1698/29 830/1517/29 +f 831/1518/13 830/1699/13 829/1519/13 +f 846/1521/30 845/1540/30 825/1522/30 +f 834/1524/30 832/1520/30 829/1519/30 +f 835/1525/22 830/1700/22 831/1526/22 +f 838/1528/13 840/1537/13 839/1529/13 +f 837/1530/29 839/1529/29 843/1531/29 +f 839/1529/22 840/1537/22 844/1533/22 +f 838/1528/30 837/1530/30 841/1535/30 +f 840/1537/21 838/1528/21 842/1538/21 +f 846/1521/13 848/1513/13 847/1510/13 +f 845/1540/29 847/1510/29 827/1541/29 +f 851/1543/14 852/1558/14 850/1544/14 +f 855/1546/13 856/1557/13 853/1547/13 +f 849/1549/15 854/1701/15 853/1550/15 +f 850/1552/16 855/1702/16 854/1553/16 +f 852/1555/17 856/1703/17 855/1556/17 +f 851/1543/18 853/1547/18 856/1557/18 +f 861/1559/15 863/1562/15 859/1560/15 +f 863/1562/18 864/1568/18 860/1563/18 +f 862/1565/16 861/1559/16 857/1566/16 +f 864/1568/17 862/1565/17 858/1569/17 +f 861/1559/13 862/1565/13 864/1568/13 +f 869/1571/15 871/1574/15 867/1572/15 +f 871/1574/18 872/1580/18 868/1575/18 +f 870/1577/16 869/1571/16 865/1578/16 +f 872/1580/17 870/1577/17 866/1581/17 +f 869/1571/13 870/1577/13 872/1580/13 diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign.png b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign.png new file mode 100644 index 0000000000000000000000000000000000000000..29c3e3cf2223d908039164ef816d30b8cb15278f GIT binary patch literal 583 zcmV-N0=WH&P)S5dIRR*V;o_LSI2d#FvmBeFMFlON&@MN=4dBA3&uK z;H!v;_Z-7oq3sjsq1o+ZcW3hp`avL>pUgM2lgtDcSMd-25C`-j5`6$bDp%ICx~F;* zb^JrqnPNJeV>+C(fr?}tsBLH}g%ALMm&>J=J)bWjgwQ%4luac1IUmkHq>Nm_0U(Hg zcreb{xH6*t)6;$BPL7W(f;j>d@n8(3?(D8J5;Umge>Qf?InufbHM2xn5bJa&4*;O! zexVQ|A3Or$h#`{#lebZxfWo3P0|3MrJLM{vlrpD}2jwz1VG*beu5tyidY}x{0SWC5LquHiwmbIB;`_y_-L9Jhhjr$s=Y?{06b z1bc^FtT$VHt-jmc2RQT&y8wXoW^3uZ`v3>iHWK|x{!Ri4Rp)t;4%lVx${xsiz?|pi zy*ba#&&l_B-akBgd%`&jXh05TPgLy-i$Ie(&}t8qfl0RPzStUpHc{(GRHX@vpexYi zC9O1}kA!cY11&V6b00A7efvO@CS>=4vh&<0F9Ur9+=ip>eH&1d9>`U|7le~F#V-hp VA(Qg@MK%Bc002ovPDHLkV1o1M|GWSI literal 0 HcmV?d00001 From a7c3273b08b470d12490701a514e3be3d95ed592 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 29 Dec 2023 21:58:30 +0100 Subject: [PATCH 043/376] whatever garbage --- src/main/java/com/hbm/handler/FuelHandler.java | 4 ++-- .../hbm/inventory/recipes/ShredderRecipes.java | 8 +++++++- .../hbm/textures/blocks/stone_keyhole.png | Bin 455 -> 487 bytes 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index 18442a5a2..b89b86d58 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -29,8 +29,8 @@ public class FuelHandler implements IFuelHandler { if(fuel.getItem() == ModItems.biomass) return single * 2; if(fuel.getItem() == ModItems.biomass_compressed) return single * 4; if(fuel.getItem() == ModItems.powder_coal) return single * 8; - if(fuel.getItem() == ModItems.scrap) return single / 2; - if(fuel.getItem() == ModItems.dust) return single / 2; + if(fuel.getItem() == ModItems.scrap) return single / 4; + if(fuel.getItem() == ModItems.dust) return single / 8; if(fuel.getItem() == Item.getItemFromBlock(ModBlocks.block_scrap)) return single * 2; if(fuel.getItem() == ModItems.powder_fire) return 6400; if(fuel.getItem() == ModItems.lignite) return 1200; diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index aee7d21ae..99e574056 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -79,7 +79,11 @@ public class ShredderRecipes extends SerializableRecipe { } } - if(name.length() > 3 && name.substring(0, 4).equals("dust")) { + if(name.length() > 7 && name.substring(0, 8).equals("dustTiny")) { + for(ItemStack stack : matches) { + putIfValid(stack, new ItemStack(ModItems.dust_tiny), name); + } + } else if(name.length() > 3 && name.substring(0, 4).equals("dust")) { for(ItemStack stack : matches) { putIfValid(stack, new ItemStack(ModItems.dust), name); } @@ -132,6 +136,7 @@ public class ShredderRecipes extends SerializableRecipe { /* Primary recipes */ ShredderRecipes.setRecipe(ModItems.scrap, new ItemStack(ModItems.dust)); ShredderRecipes.setRecipe(ModItems.dust, new ItemStack(ModItems.dust)); + ShredderRecipes.setRecipe(ModItems.dust_tiny, new ItemStack(ModItems.dust_tiny)); ShredderRecipes.setRecipe(Blocks.glowstone, new ItemStack(Items.glowstone_dust, 4)); ShredderRecipes.setRecipe(new ItemStack(Blocks.quartz_block, 1, 0), new ItemStack(ModItems.powder_quartz, 4)); ShredderRecipes.setRecipe(new ItemStack(Blocks.quartz_block, 1, 1), new ItemStack(ModItems.powder_quartz, 4)); @@ -199,6 +204,7 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(Items.reeds, new ItemStack(Items.sugar, 3)); ShredderRecipes.setRecipe(Items.apple, new ItemStack(Items.sugar, 1)); ShredderRecipes.setRecipe(Items.carrot, new ItemStack(Items.sugar, 1)); + ShredderRecipes.setRecipe(ModItems.can_empty, new ItemStack(ModItems.powder_aluminium, 2)); List logs = OreDictionary.getOres("logWood"); List planks = OreDictionary.getOres("plankWood"); diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png b/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png index 394785a63409548bc65a99b4d8ce9627d17faa29..b083e0730275554380af2471f2a280d99ca5989d 100644 GIT binary patch delta 445 zcmV;u0Yd)A1Lp&fG=H8+L_t(Ijg6BrYg9oLg}=8x(##ZNHH3$f?m-Hx6w6j=k|v~7 zkd%RtGWiAT4-mArv9j7y0z#Ut77MFDgy|i^6vDupfhEOi@p8xPx+b1#ihIvJ_ntG= zcs%}_bv6-1)ka(QXf1)*4t*+XktL82Nj3^sAu8qYwa5~7f4KW#19!ht n!dI`#Pbn2Eg;?JAYlZkX_7C3a7P~%)00000NkvXXu0mjfc&OIR delta 413 zcmV;O0b>5=1IGi9G=F|cL_t(Ijct>$ZsRZzM4ti$h)f9}&VUGmO@J%d+r_-sNUoIDRyB(rd{2ODw zW*{pJA>f>227g|wosZ+l`{BU-?t8Vc-MRedoQr>8<6o@A7`H(Zu(g&SPfx{0&bb6h z<|WqK5CX=S5{#4*&(p+m+dvuSH1YTLU&p*P#(c|oz5iht%9-@Zw+yjf&CNr3JmK>b zfc52t{${sU(Tb;NN5ElOfGxg>Yu`xZB00000NkvXX Hu0mjfTinPB From 7473278dab734ec6d75d8bce9079abdcf42cc72b Mon Sep 17 00:00:00 2001 From: FOlkvangrField Date: Sat, 30 Dec 2023 16:14:10 +0800 Subject: [PATCH 044/376] More custom machine options Add more custom machine options. Now custom machines can receive neutron flux and heat through the "Neutron Flux Receiver" and "Heat receiver" blocks within the structure. The recipe has also added corresponding configurable neutron flux and heat requirements, and can also be configured to generate/absorb contamination --- src/main/java/com/hbm/blocks/ModBlocks.java | 6 + .../com/hbm/blocks/machine/BlockCMFlux.java | 9 + .../com/hbm/blocks/machine/BlockCMHeat.java | 9 + .../hbm/config/CustomMachineConfigJSON.java | 77 ++-- .../hbm/handler/nei/CustomMachineHandler.java | 91 +++-- .../hbm/inventory/gui/GUIMachineCustom.java | 51 +-- .../recipes/CustomMachineRecipes.java | 62 +++- .../java/com/hbm/main/CraftingManager.java | 2 + .../machine/TileEntityCustomMachine.java | 340 ++++++++++++------ src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/textures/blocks/cm_flux_side.png | Bin 0 -> 410 bytes .../hbm/textures/blocks/cm_flux_top.png | Bin 0 -> 541 bytes .../hbm/textures/blocks/cm_heat_side.png | Bin 0 -> 218 bytes .../hbm/textures/blocks/cm_heat_top.png | Bin 0 -> 742 bytes .../textures/gui/processing/gui_custom.png | Bin 3223 -> 3745 bytes 15 files changed, 432 insertions(+), 217 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockCMFlux.java create mode 100644 src/main/java/com/hbm/blocks/machine/BlockCMHeat.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_flux_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_flux_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_heat_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_heat_top.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1b69835f3..89ccc4b2c 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -896,6 +896,8 @@ public class ModBlocks { public static Block cm_tank; public static Block cm_circuit; public static Block cm_port; + public static Block cm_flux; + public static Block cm_heat; public static Block custom_machine; public static Block cm_anchor; @@ -2074,6 +2076,8 @@ public class ModBlocks { cm_tank = new BlockCMGlass(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_tank").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_tank"); cm_circuit = new BlockCM(Material.iron, EnumCMCircuit.class, true, true).setBlockName("cm_circuit").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_circuit"); cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); + cm_flux = new BlockCMFlux(Material.iron, RefStrings.MODID + ":cm_flux_top").setBlockName("cm_flux").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_flux_side"); + cm_heat = new BlockCMHeat(Material.iron, RefStrings.MODID +":cm_heat_top").setBlockName("cm_heat").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_heat_side"); custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); cm_anchor = new BlockCMAnchor().setBlockName("custom_machine_anchor").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F); @@ -3450,6 +3454,8 @@ public class ModBlocks { register(cm_tank); register(cm_circuit); register(cm_port); + register(cm_flux); + register(cm_heat); register(cm_anchor); //PWR diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java b/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java new file mode 100644 index 000000000..85f0d4725 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java @@ -0,0 +1,9 @@ +package com.hbm.blocks.machine; + +import net.minecraft.block.material.Material; + +public class BlockCMFlux extends BlockPillar{ + public BlockCMFlux(Material mat, String top) { + super(mat, top); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java b/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java new file mode 100644 index 000000000..f339fbb48 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java @@ -0,0 +1,9 @@ +package com.hbm.blocks.machine; + +import net.minecraft.block.material.Material; + +public class BlockCMHeat extends BlockPillar{ + public BlockCMHeat(Material mat, String top) { + super(mat, top); + } +} diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java index 359eb3db5..83fda4ef5 100644 --- a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -34,19 +34,19 @@ public class CustomMachineConfigJSON { public static final Gson gson = new Gson(); public static HashMap customMachines = new HashMap(); public static List niceList = new ArrayList(); - + public static void initialize() { File folder = MainRegistry.configHbmDir; File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmCustomMachines.json"); - + if(!config.exists()) { writeDefault(config); } - + readConfig(config); } - + public static void writeDefault(File config) { try { @@ -54,7 +54,7 @@ public class CustomMachineConfigJSON { writer.setIndent(" "); writer.beginObject(); writer.name("machines").beginArray(); - + writer.beginObject(); writer.name("recipeKey").value("paperPress"); writer.name("unlocalizedName").value("paperPress"); @@ -66,14 +66,17 @@ public class CustomMachineConfigJSON { writer.name("fluidOutCap").value(0); writer.name("itemOutCount").value(1); writer.name("generatorMode").value(false); + writer.name("maxPollutionCap").value(100); + writer.name("fluxMode").value(false); writer.name("recipeSpeedMult").value(1.0D); writer.name("recipeConsumptionMult").value(1.0D); writer.name("maxPower").value(10_000L); - + writer.name("maxHeat").value(0); + writer.name("recipeShape").beginArray(); writer.value("IPI").value("PCP").value("IPI"); writer.endArray(); - + writer.name("recipeParts").beginArray().setIndent(""); writer.value("I"); SerializableRecipe.writeAStack(new OreDictStack(OreDictManager.STEEL.ingot()), writer); @@ -84,9 +87,9 @@ public class CustomMachineConfigJSON { writer.value("C"); SerializableRecipe.writeAStack(new ComparableStack(ModItems.circuit_aluminium), writer); writer.endArray().setIndent(" "); - + writer.name("components").beginArray(); - + for(int x = -1; x <= 1; x++) { for(int y = -1; y <= 1; y++) { for(int z = 0; z <= 2; z++) { @@ -104,7 +107,7 @@ public class CustomMachineConfigJSON { } } } - + writer.beginObject().setIndent(""); writer.name("block").value("hbm:tile.cm_port"); writer.name("x").value(0); @@ -114,7 +117,7 @@ public class CustomMachineConfigJSON { writer.value(0); writer.endArray(); writer.endObject().setIndent(" "); - + writer.beginObject().setIndent(""); writer.name("block").value("hbm:tile.cm_port"); writer.name("x").value(0); @@ -124,10 +127,10 @@ public class CustomMachineConfigJSON { writer.value(0); writer.endArray(); writer.endObject().setIndent(" "); - + writer.endArray(); writer.endObject(); - + writer.endArray(); writer.endObject(); writer.close(); @@ -135,16 +138,16 @@ public class CustomMachineConfigJSON { e.printStackTrace(); } } - + public static void readConfig(File config) { - + try { JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); JsonArray machines = json.get("machines").getAsJsonArray(); - + for(int i = 0; i < machines.size(); i++) { JsonObject machineObject = machines.get(i).getAsJsonObject(); - + MachineConfiguration configuration = new MachineConfiguration(); configuration.recipeKey = machineObject.get("recipeKey").getAsString(); configuration.unlocalizedName = machineObject.get("unlocalizedName").getAsString(); @@ -156,45 +159,48 @@ public class CustomMachineConfigJSON { configuration.fluidOutCap = machineObject.get("fluidOutCap").getAsInt(); configuration.itemOutCount = machineObject.get("itemOutCount").getAsInt(); configuration.generatorMode = machineObject.get("generatorMode").getAsBoolean(); + configuration.maxPollutionCap = machineObject.get("maxPollutionCap").getAsInt(); + configuration.fluxMode = machineObject.get("fluxMode").getAsBoolean(); configuration.recipeSpeedMult = machineObject.get("recipeSpeedMult").getAsDouble(); configuration.recipeConsumptionMult = machineObject.get("recipeConsumptionMult").getAsDouble(); configuration.maxPower = machineObject.get("maxPower").getAsLong(); - + configuration.maxHeat = machineObject.get("maxHeat").getAsInt(); + if(machineObject.has("recipeShape") && machineObject.has("recipeParts")) { JsonArray recipeShape = machineObject.get("recipeShape").getAsJsonArray(); JsonArray recipeParts = machineObject.get("recipeParts").getAsJsonArray(); - + Object[] parts = new Object[recipeShape.size() + recipeParts.size()]; - + for(int j = 0; j < recipeShape.size(); j++) { parts[j] = recipeShape.get(j).getAsString(); } - + for(int j = 0; j < recipeParts.size(); j++) { Object o = null; - + if(j % 2 == 0) { o = recipeParts.get(j).getAsString().charAt(0); //god is dead and we killed him } else { AStack a = SerializableRecipe.readAStack(recipeParts.get(j).getAsJsonArray()); - + if(a instanceof ComparableStack) o = ((ComparableStack) a).toStack(); if(a instanceof OreDictStack) o = ((OreDictStack) a).name; } - + parts[j + recipeShape.size()] = o; } - + ItemStack stack = new ItemStack(ModBlocks.custom_machine, 1, i + 100); stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound.setString("machineType", configuration.unlocalizedName); CraftingManager.addRecipeAuto(stack, parts); } - + JsonArray components = machineObject.get("components").getAsJsonArray(); configuration.components = new ArrayList(); - + for(int j = 0; j < components.size(); j++) { JsonObject compObject = components.get(j).getAsJsonObject(); ComponentDefinition compDef = new ComponentDefinition(); @@ -207,21 +213,21 @@ public class CustomMachineConfigJSON { for(int k = 0; k < compDef.metas.size(); k++) { compDef.allowedMetas.add(compDef.metas.get(k).getAsInt()); } - + configuration.components.add(compDef); } - + customMachines.put(configuration.unlocalizedName, configuration); niceList.add(configuration); } - + } catch(Exception ex) { ex.printStackTrace(); } } public static class MachineConfiguration { - + /** The name of the recipe set that this machine can handle */ public String recipeKey; /** The internal name of this machine */ @@ -237,14 +243,17 @@ public class CustomMachineConfigJSON { public int itemOutCount; /** Whether inputs should be used up when the process begins */ public boolean generatorMode; - + public int maxPollutionCap; + public boolean fluxMode; public double recipeSpeedMult = 1D; public double recipeConsumptionMult = 1D; public long maxPower; - + public int maxHeat; + + /** Definitions of blocks that this machine is composed of */ public List components; - + public static class ComponentDefinition { public Block block; public Set allowedMetas; diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java index 844af6e60..d691bf27a 100644 --- a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import codechicken.lib.gui.GuiDraw; import com.hbm.blocks.ModBlocks; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; @@ -25,10 +26,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; public class CustomMachineHandler extends TemplateRecipeHandler { - + public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); - + public MachineConfiguration conf; @Override @@ -39,20 +40,25 @@ public class CustomMachineHandler extends TemplateRecipeHandler { throw new RuntimeException(e); } } - + public CustomMachineHandler(MachineConfiguration conf) { super(); this.conf = conf; loadTransferRects(); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); } - + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { List inputs = new ArrayList(); PositionedStack machine; List outputs = new ArrayList(); - + public int flux = 0; + public int heat = 0; + public float radiationAmount = 0; + public String pollutionType; + public float pollutionAmount = 0; + public RecipeSet(CustomMachineRecipe recipe) { for(int i = 0; i < 3; i++) if(recipe.inputFluids.length > i) inputs.add(new PositionedStack(ItemFluidIcon.make(recipe.inputFluids[i]), 12 + i * 18, 6)); @@ -60,7 +66,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { for(int i = 3; i < 6; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + (i - 3) * 18, 42)); for(int i = 0; i < 3; i++) if(recipe.outputFluids.length > i) outputs.add(new PositionedStack(ItemFluidIcon.make(recipe.outputFluids[i]), 102 + i * 18, 6)); - + for(int i = 0; i < 3; i++) if(recipe.outputItems.length > i) { Pair pair = recipe.outputItems[i]; ItemStack out = pair.getKey().copy(); @@ -69,7 +75,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { } outputs.add(new PositionedStack(out, 102 + i * 18, 24)); } - + for(int i = 3; i < 6; i++) if(recipe.outputItems.length > i) { Pair pair = recipe.outputItems[i]; ItemStack out = pair.getKey().copy(); @@ -78,7 +84,13 @@ public class CustomMachineHandler extends TemplateRecipeHandler { } outputs.add(new PositionedStack(out, 102 + (i - 3) * 18, 42)); } - + if(recipe.pollutionMode) { + this.pollutionType = recipe.pollutionType; + this.pollutionAmount = recipe.pollutionAmount; + } + if(recipe.radiationMode) this.radiationAmount = recipe.radiationAmount; + if(conf.fluxMode) this.flux = recipe.flux; + if(conf.maxHeat>0 && recipe.heat>0) this.heat = recipe.heat; this.machine = new PositionedStack(new ItemStack(ModBlocks.custom_machine, 1, 100 + CustomMachineConfigJSON.niceList.indexOf(conf)), 75, 42); } @@ -111,14 +123,14 @@ public class CustomMachineHandler extends TemplateRecipeHandler { public String getGuiTexture() { return RefStrings.MODID + ":textures/gui/nei/gui_nei_custom.png"; } - + @Override public void loadCraftingRecipes(String outputId, Object... results) { - + if(outputId.equals("ntm_" + conf.unlocalizedName)) { - + List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); - + if(recipes != null) for(CustomMachineRecipe recipe : recipes) { this.arecipes.add(new RecipeSet(recipe)); } @@ -126,25 +138,25 @@ public class CustomMachineHandler extends TemplateRecipeHandler { super.loadCraftingRecipes(outputId, results); } } - + @Override public void loadCraftingRecipes(ItemStack result) { - + List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); - + if(recipes != null) outer:for(CustomMachineRecipe recipe : recipes) { - + for(Pair stack : recipe.outputItems) { - + if(NEIServerUtils.areStacksSameTypeCrafting(stack.getKey(), result)) { this.arecipes.add(new RecipeSet(recipe)); continue outer; } } - + for(FluidStack fluid : recipe.outputFluids) { ItemStack drop = ItemFluidIcon.make(fluid); - + if(compareFluidStacks(result, drop)) { this.arecipes.add(new RecipeSet(recipe)); continue outer; @@ -152,28 +164,28 @@ public class CustomMachineHandler extends TemplateRecipeHandler { } } } - + @Override public void loadUsageRecipes(String inputId, Object... ingredients) { - + if(inputId.equals("ntm_" + conf.unlocalizedName)) { loadCraftingRecipes("ntm_" + conf.unlocalizedName, new Object[0]); } else { super.loadUsageRecipes(inputId, ingredients); } } - + @Override public void loadUsageRecipes(ItemStack ingredient) { - + List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); if(recipes != null) outer:for(CustomMachineRecipe recipe : recipes) { - + for(AStack stack : recipe.inputItems) { - + List stacks = stack.extractForNEI(); - + for(ItemStack sta : stacks) { if(NEIServerUtils.areStacksSameTypeCrafting(ingredient, sta)) { this.arecipes.add(new RecipeSet(recipe)); @@ -181,10 +193,10 @@ public class CustomMachineHandler extends TemplateRecipeHandler { } } } - + for(FluidStack fluid : recipe.inputFluids) { ItemStack drop = ItemFluidIcon.make(fluid); - + if(compareFluidStacks(ingredient, drop)) { this.arecipes.add(new RecipeSet(recipe)); continue outer; @@ -196,11 +208,32 @@ public class CustomMachineHandler extends TemplateRecipeHandler { public static boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); } - + @Override public void loadTransferRects() { if(this.conf == null) return; transferRects.add(new RecipeTransferRect(new Rectangle(65, 23, 36, 18), "ntm_" + conf.unlocalizedName)); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); } + @Override + public void drawExtras(int recipe) { + RecipeSet Recipe = (RecipeSet) this.arecipes.get(recipe); + int side = 83; + if(Recipe.radiationAmount != 0){ + String radiation = "Radiation:" + Recipe.radiationAmount + ""; + GuiDraw.drawString(radiation, 160 - GuiDraw.fontRenderer.getStringWidth(radiation), 63, 0x08FF00); + } + if (Recipe.pollutionAmount != 0){ + String pollution = Recipe.pollutionType + ":" + Recipe.pollutionAmount + ""; + GuiDraw.drawString(pollution, 160 - GuiDraw.fontRenderer.getStringWidth(pollution), 75, 0x404040); + } + if(conf.fluxMode) { + String flux = "Flux:" + Recipe.flux + ""; + GuiDraw.drawString(flux, side - GuiDraw.fontRenderer.getStringWidth(flux) / 2, 16, 0x08FF00); + } + if(conf.maxHeat>0 && Recipe.heat>0){ + String heat = "Heat:" + Recipe.heat + ""; + GuiDraw.drawString(heat, side - GuiDraw.fontRenderer.getStringWidth(heat) / 2, 8, 0xFF0000); + } + } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java index 7b658c150..dcfb6effd 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java @@ -1,7 +1,9 @@ package com.hbm.inventory.gui; import java.util.Arrays; +import java.util.Locale; +import com.hbm.render.util.GaugeUtil; import org.lwjgl.opengl.GL11; import com.hbm.inventory.SlotPattern; @@ -17,58 +19,59 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIMachineCustom extends GuiInfoContainer { - + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_custom.png"); private TileEntityCustomMachine custom; public GUIMachineCustom(InventoryPlayer invPlayer, TileEntityCustomMachine tedf) { super(new ContainerMachineCustom(invPlayer, tedf)); custom = tedf; - + this.xSize = 176; this.ySize = 256; } - + @Override public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); - - this.drawElectricityInfo(this, x, y, guiLeft + 150, guiTop + 18, 16, 52, custom.power, custom.config.maxPower); + this.drawElectricityInfo(this, x, y, guiLeft + 150, guiTop + 18, 16, 52, custom.power, custom.config.maxPower); + if(custom.config.maxHeat>0) this.drawCustomInfoStat(x, y, guiLeft + 61, guiTop + 53, 18, 18, x, y, new String[] { "Heat:" + String.format(Locale.US, "%,d", custom.heat) + " / " + String.format(Locale.US, "%,d", custom.config.maxHeat)}); if(this.mc.thePlayer.inventory.getItemStack() == null) { for(int i = 0; i < this.inventorySlots.inventorySlots.size(); ++i) { Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); int tileIndex = slot.getSlotIndex(); - + if(this.isMouseOverSlot(slot, x, y) && slot instanceof SlotPattern && custom.matcher.modes[tileIndex - 10] != null) { - + String label = EnumChatFormatting.YELLOW + ""; - + switch(custom.matcher.modes[tileIndex - 10]) { - case "exact": label += "Item and meta match"; break; - case "wildcard": label += "Item matches"; break; - default: label += "Ore dict key matches: " + custom.matcher.modes[tileIndex - 10]; break; + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + custom.matcher.modes[tileIndex - 10]; break; } - + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); } } } - + for(int i = 0; i < custom.inputTanks.length; i++) { custom.inputTanks[i].renderTankInfo(this, x, y, guiLeft + 8 + 18 * i, guiTop + 18, 16, 34); } - + for(int i = 0; i < custom.outputTanks.length; i++) { custom.outputTanks[i].renderTankInfo(this, x, y, guiLeft + 78 + 18 * i, guiTop + 18, 16, 34); } } - + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.custom.getInventoryName(); this.fontRendererObj.drawString(name, 68 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + if(custom.config.fluxMode) this.fontRendererObj.drawString("Flux:" + custom.flux,83, 57,0x08FF00); } @Override @@ -76,17 +79,23 @@ public class GUIMachineCustom extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - + if(custom.config.fluxMode){ + drawTexturedModalRect(guiLeft + 78, guiTop + 54, 192, 122,51 , 15); + } + if(custom.maxHeat>0) { + drawTexturedModalRect(guiLeft + 61, guiTop + 53, 236,0 , 18, 18); + GaugeUtil.drawSmoothGauge(guiLeft + 70, guiTop + 62, this.zLevel, (double) custom.heat / (double) custom.config.maxHeat, 5, 2, 1, 0x7F0000); + } int p = custom.progress * 90 / custom.maxProgress; drawTexturedModalRect(guiLeft + 78, guiTop + 119, 192, 0, Math.min(p, 44), 16); if(p > 44) { p-= 44; drawTexturedModalRect(guiLeft + 78 + 44, guiTop + 119, 192, 16, p, 16); } - + int e = (int) (custom.power * 52 / custom.config.maxPower); drawTexturedModalRect(guiLeft + 150, guiTop + 70 - e, 176, 52 - e, 16, e); - + for(int i = 0; i < 2; i++) { for(int j = 0; j < 3; j++) { int index = i * 3 + j; @@ -99,7 +108,7 @@ public class GUIMachineCustom extends GuiInfoContainer { } } } - + for(int i = 0; i < 3; i++) { if(custom.config.fluidInCount <= i) { drawTexturedModalRect(guiLeft + 7 + i * 18, guiTop + 17, 192 + i * 18, 32, 18, 54); @@ -108,11 +117,11 @@ public class GUIMachineCustom extends GuiInfoContainer { drawTexturedModalRect(guiLeft + 77 + i * 18, guiTop + 17, 192 + i * 18, 32, 18, 36); } } - + for(int i = 0; i < custom.inputTanks.length; i++) { custom.inputTanks[i].renderTank(guiLeft + 8 + 18 * i, guiTop + 52, this.zLevel, 16, 34); } - + for(int i = 0; i < custom.outputTanks.length; i++) { custom.outputTanks[i].renderTank(guiLeft + 78 + 18 * i, guiTop + 52, this.zLevel, 16, 34); } diff --git a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java index e3fe13cef..965593025 100644 --- a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java @@ -22,12 +22,12 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class CustomMachineRecipes extends SerializableRecipe { - + public static HashMap> recipes = new HashMap(); @Override public void registerDefaults() { - + recipes.put("paperPress", new ArrayList() {{ CustomMachineRecipe recipe = new CustomMachineRecipe(); recipe.inputFluids = new FluidStack[] {new FluidStack(Fluids.WATER, 250)}; @@ -36,6 +36,13 @@ public class CustomMachineRecipes extends SerializableRecipe { recipe.outputItems = new Pair[] {new Pair(new ItemStack(Items.paper, 3), 1F)}; recipe.duration = 60; recipe.consumptionPerTick = 10; + recipe.pollutionMode = true; + recipe.pollutionType = "SOOT"; + recipe.pollutionAmount = 0.03f; + recipe.radiationMode = false; + recipe.radiationAmount = 0; + recipe.flux = 0; + recipe.heat = 0; add(recipe); }}); } @@ -58,11 +65,11 @@ public class CustomMachineRecipes extends SerializableRecipe { @Override public void readRecipe(JsonElement recipe) { JsonObject obj = recipe.getAsJsonObject(); - + String name = obj.get("recipeKey").getAsString(); List list = new ArrayList(); JsonArray array = obj.get("recipes").getAsJsonArray(); - + for(int i = 0; i < array.size(); i++) { JsonObject rec = array.get(i).getAsJsonObject(); CustomMachineRecipe recipeInstance = new CustomMachineRecipe(); @@ -72,56 +79,79 @@ public class CustomMachineRecipes extends SerializableRecipe { recipeInstance.outputItems = this.readItemStackArrayChance(rec.get("outputItems").getAsJsonArray()); recipeInstance.duration = rec.get("duration").getAsInt(); recipeInstance.consumptionPerTick = rec.get("consumptionPerTick").getAsInt(); + recipeInstance.pollutionMode = rec.get("pollutionMode").getAsBoolean(); + recipeInstance.pollutionType = rec.get("pollutionType").getAsString(); + recipeInstance.pollutionAmount = rec.get("pollutionAmount").getAsFloat(); + recipeInstance.radiationMode = rec.get("radiationMode").getAsBoolean(); + recipeInstance.radiationAmount = rec.get("radiationAmount").getAsFloat(); + recipeInstance.flux = rec.get("flux").getAsInt(); + recipeInstance.heat = rec.get("heat").getAsInt(); + list.add(recipeInstance); } - + recipes.put(name, list); } @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { Entry> entry = (Entry) recipe; - + writer.name("recipeKey").value(entry.getKey()); writer.name("recipes").beginArray(); - + for(CustomMachineRecipe recipeInstance : entry.getValue()) { writer.beginObject(); - + writer.name("inputFluids").beginArray(); for(FluidStack stack : recipeInstance.inputFluids) this.writeFluidStack(stack, writer); writer.endArray(); - + writer.name("inputItems").beginArray(); for(AStack stack : recipeInstance.inputItems) this.writeAStack(stack, writer); writer.endArray(); - + writer.name("outputFluids").beginArray(); for(FluidStack stack : recipeInstance.outputFluids) this.writeFluidStack(stack, writer); writer.endArray(); - + writer.name("outputItems").beginArray(); for(Pair stack : recipeInstance.outputItems) this.writeItemStackChance(stack, writer); writer.endArray(); writer.name("duration").value(recipeInstance.duration); writer.name("consumptionPerTick").value(recipeInstance.consumptionPerTick); - + writer.name("pollutionMode").value(recipeInstance.pollutionMode); + writer.name("pollutionType").value(recipeInstance.pollutionType); + writer.name("pollutionAmount").value(recipeInstance.pollutionAmount); + writer.name("radiationMode").value(recipeInstance.radiationMode); + writer.name("radiationnAmount").value(recipeInstance.radiationAmount); + writer.name("flux").value(recipeInstance.flux); + writer.name("heat").value(recipeInstance.heat); + writer.endObject(); } - + writer.endArray(); } - + public static class CustomMachineRecipe { - + public FluidStack[] inputFluids; public AStack[] inputItems; public FluidStack[] outputFluids; public Pair[] outputItems; - + public int duration; public int consumptionPerTick; + public boolean pollutionMode; + + public String pollutionType; + public float pollutionAmount; + public boolean radiationMode; + public float radiationAmount; + public int flux; + public int heat; } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 9203ee542..a7b6638f9 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1166,6 +1166,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 2), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_red_copper); addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 3), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_gold); addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 4), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_schrabidium); + addRecipeAuto(new ItemStack(ModBlocks.cm_flux, 1, 0), "NZN", "ZCZ", "NZN", 'Z', ZR.plateCast(), 'N', ModItems.neutron_reflector, 'C', ModItems.reactor_core); + addRecipeAuto(new ItemStack(ModBlocks.cm_heat, 1, 0), "PCP", "PSP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.board_copper, 'S', ModItems.pipes_steel); } public static void crumple() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 9c906623d..32c47c893 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -3,9 +3,14 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; +import api.hbm.tile.IHeatSource; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.ReactorResearch; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.container.ContainerMachineCustom; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -15,7 +20,7 @@ import com.hbm.inventory.recipes.CustomMachineRecipes.CustomMachineRecipe; import com.hbm.lib.Library; import com.hbm.module.ModulePatternMatcher; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.tileentity.TileEntityProxyBase; import com.hbm.util.Compat; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -35,12 +40,15 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCustomMachine extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyUser, IGUIProvider { - +public class TileEntityCustomMachine extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IEnergyUser, IGUIProvider { + public String machineType; public MachineConfiguration config; - + public long power; + public int flux; + public int heat; + public int maxHeat; public int progress; public int maxProgress = 1; public FluidTank[] inputTanks; @@ -49,8 +57,10 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF public int structureCheckDelay; public boolean structureOK = false; public CustomMachineRecipe cachedRecipe; - + public List connectionPos = new ArrayList(); + public List fluxPos = new ArrayList(); + public List heatPos = new ArrayList(); public TileEntityCustomMachine() { /* @@ -60,22 +70,26 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF * 10-15: Template * 16-21: Output */ - super(22); + super(22, 100); } - + public void init() { MachineConfiguration config = CustomMachineConfigJSON.customMachines.get(this.machineType); - - if(config != null) { + + if (config != null) { this.config = config; inputTanks = new FluidTank[config.fluidInCount]; - for(int i = 0; i < inputTanks.length; i++) inputTanks[i] = new FluidTank(Fluids.NONE, config.fluidInCap); + for (int i = 0; i < inputTanks.length; i++) inputTanks[i] = new FluidTank(Fluids.NONE, config.fluidInCap); outputTanks = new FluidTank[config.fluidOutCount]; - for(int i = 0; i < outputTanks.length; i++) outputTanks[i] = new FluidTank(Fluids.NONE, config.fluidOutCap); - + for (int i = 0; i < outputTanks.length; i++) + outputTanks[i] = new FluidTank(Fluids.NONE, config.fluidOutCap); + maxHeat = config.maxHeat; matcher = new ModulePatternMatcher(config.itemInCount); - + smoke.changeTankSize(config.maxPollutionCap); + smoke_leaded.changeTankSize(config.maxPollutionCap); + smoke_poison.changeTankSize(config.maxPollutionCap); + } else { worldObj.func_147480_a(xCoord, yCoord, zCoord, false); } @@ -88,75 +102,112 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF @Override public void updateEntity() { - - if(!worldObj.isRemote) { - - if(config == null) { + + if (!worldObj.isRemote) { + + if (config == null) { worldObj.func_147480_a(xCoord, yCoord, zCoord, false); return; } this.power = Library.chargeTEFromItems(slots, 0, power, this.config.maxPower); - - if(this.inputTanks.length > 0) this.inputTanks[0].setType(1, slots); - if(this.inputTanks.length > 1) this.inputTanks[1].setType(2, slots); - if(this.inputTanks.length > 2) this.inputTanks[2].setType(3, slots); - + + if (this.inputTanks.length > 0) this.inputTanks[0].setType(1, slots); + if (this.inputTanks.length > 1) this.inputTanks[1].setType(2, slots); + if (this.inputTanks.length > 2) this.inputTanks[2].setType(3, slots); + this.structureCheckDelay--; - if(this.structureCheckDelay <= 0) this.checkStructure(); - - if(this.worldObj.getTotalWorldTime() % 20 == 0) { - for(DirPos pos : this.connectionPos) { - for(FluidTank tank : this.inputTanks) { + if (this.structureCheckDelay <= 0) this.checkStructure(); + + if (this.worldObj.getTotalWorldTime() % 20 == 0) { + for (DirPos pos : this.connectionPos) { + for (FluidTank tank : this.inputTanks) { this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - if(!config.generatorMode) this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if (!config.generatorMode) + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + for (byte d = 2; d < 6; d++) { + ForgeDirection dir = ForgeDirection.getOrientation(d); + for (DirPos pos : this.fluxPos) { + Block b = worldObj.getBlock(pos.getX() + dir.offsetX, pos.getY(), pos.getZ() + dir.offsetZ); + if (b == ModBlocks.reactor_research) { + int[] source = ((ReactorResearch) ModBlocks.reactor_research).findCore(worldObj, pos.getX() + dir.offsetX, pos.getY(), pos.getZ() + dir.offsetZ); + if (source != null) { + + TileEntity tile = worldObj.getTileEntity(source[0], source[1], source[2]); + + if (tile instanceof TileEntityReactorResearch) { + + TileEntityReactorResearch reactor = (TileEntityReactorResearch) tile; + this.flux = reactor.totalFlux; + } + } + } + } + if(config.maxHeat>0){ + for (DirPos pos : this.heatPos){ + this.tryPullHeat(pos.getX() + dir.offsetX, pos.getY()-1, pos.getZ() + dir.offsetZ); + } + } } } - - for(DirPos pos : this.connectionPos) { - if(config.generatorMode && power > 0) this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - for(FluidTank tank : this.outputTanks) if(tank.getFill() > 0) this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + + for (DirPos pos : this.connectionPos) { + if (config.generatorMode && power > 0) + this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + for (FluidTank tank : this.outputTanks) + if (tank.getFill() > 0) + this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - - if(this.structureOK) { - - if(config.generatorMode) { - if(this.cachedRecipe == null) { + + if (this.structureOK) { + + if (config.generatorMode) { + if (this.cachedRecipe == null) { CustomMachineRecipe recipe = this.getMatchingRecipe(); - if(recipe != null && this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { + if (recipe != null && this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { this.cachedRecipe = recipe; this.useUpInput(recipe); } } - - if(this.cachedRecipe != null) { + + if (this.cachedRecipe != null) { this.maxProgress = (int) Math.max(cachedRecipe.duration / this.config.recipeSpeedMult, 1); int powerReq = (int) Math.max(cachedRecipe.consumptionPerTick * this.config.recipeConsumptionMult, 1); - + this.progress++; this.power += powerReq; - if(power > config.maxPower) power = config.maxPower; - - if(progress >= this.maxProgress) { + this.heat -= cachedRecipe.heat; + if (power > config.maxPower) power = config.maxPower; + if (worldObj.getTotalWorldTime() % 20 == 0) { + pollution(cachedRecipe); + radiation(cachedRecipe); + } + if (progress >= this.maxProgress) { this.progress = 0; this.processRecipe(cachedRecipe); this.cachedRecipe = null; } } - + } else { CustomMachineRecipe recipe = this.getMatchingRecipe(); - - if(recipe != null) { + + if (recipe != null) { this.maxProgress = (int) Math.max(recipe.duration / this.config.recipeSpeedMult, 1); int powerReq = (int) Math.max(recipe.consumptionPerTick * this.config.recipeConsumptionMult, 1); - - if(this.power >= powerReq && this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { + + if (this.power >= powerReq && this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { this.progress++; this.power -= powerReq; - - if(progress >= this.maxProgress) { + this.heat -= recipe.heat; + if (worldObj.getTotalWorldTime() % 20 == 0) { + pollution(recipe); + radiation(recipe); + } + if (progress >= this.maxProgress) { this.progress = 0; this.useUpInput(recipe); this.processRecipe(recipe); @@ -169,89 +220,129 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF } else { this.progress = 0; } - + NBTTagCompound data = new NBTTagCompound(); data.setString("type", this.machineType); data.setLong("power", power); data.setBoolean("structureOK", structureOK); + data.setInteger("flux", flux); + data.setInteger("heat", heat); data.setInteger("progress", progress); data.setInteger("maxProgress", maxProgress); - for(int i = 0; i < inputTanks.length; i++) inputTanks[i].writeToNBT(data, "i" + i); - for(int i = 0; i < outputTanks.length; i++) outputTanks[i].writeToNBT(data, "o" + i); + for (int i = 0; i < inputTanks.length; i++) inputTanks[i].writeToNBT(data, "i" + i); + for (int i = 0; i < outputTanks.length; i++) outputTanks[i].writeToNBT(data, "o" + i); this.matcher.writeToNBT(data); this.networkPack(data, 50); } + } - + /** Only accepts inputs in a fixed order, saves a ton of performance because there's no permutations to check for */ public CustomMachineRecipe getMatchingRecipe() { List recipes = CustomMachineRecipes.recipes.get(this.config.recipeKey); if(recipes == null || recipes.isEmpty()) return null; - + outer: for(CustomMachineRecipe recipe : recipes) { for(int i = 0; i < recipe.inputFluids.length; i++) { if(this.inputTanks[i].getTankType() != recipe.inputFluids[i].type || this.inputTanks[i].getPressure() != recipe.inputFluids[i].pressure) continue outer; } - + for(int i = 0; i < recipe.inputItems.length; i++) { if(recipe.inputItems[i] != null && slots[i + 4] == null) continue outer; if(!recipe.inputItems[i].matchesRecipe(slots[i + 4], true)) continue outer; } - + return recipe; } - + return null; } - + public void pollution(CustomMachineRecipe recipe) { + if (recipe.pollutionMode) { + if (recipe.pollutionAmount > 0) { + this.pollute(PollutionHandler.PollutionType.valueOf(recipe.pollutionType), recipe.pollutionAmount); + } else if (recipe.pollutionAmount < 0 && PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionHandler.PollutionType.valueOf(recipe.pollutionType)) >= -recipe.pollutionAmount) { + PollutionHandler.decrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionHandler.PollutionType.valueOf(recipe.pollutionType), -recipe.pollutionAmount); + } + } + } + public void radiation(CustomMachineRecipe recipe){ + if (recipe.radiationMode) { + if (recipe.radiationAmount > 0) { + ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, recipe.radiationAmount); + } else if (recipe.radiationAmount < 0) { + ChunkRadiationManager.proxy.decrementRad(worldObj, xCoord, yCoord, zCoord, -recipe.radiationAmount); + } + } + } + protected void tryPullHeat(int x, int y, int z) { + TileEntity con = worldObj.getTileEntity(x, y, z); + + if(con instanceof IHeatSource) { + IHeatSource source = (IHeatSource) con; + int diff = source.getHeatStored() - this.heat; + + if(diff == 0) { + return; + } + + if(diff > 0) { + source.useUpHeat(diff); + this.heat += diff; + if(this.heat > this.maxHeat) + this.heat = this.maxHeat; + } + } + } public boolean hasRequiredQuantities(CustomMachineRecipe recipe) { - + for(int i = 0; i < recipe.inputFluids.length; i++) { if(this.inputTanks[i].getFill() < recipe.inputFluids[i].fill) return false; } - + for(int i = 0; i < recipe.inputItems.length; i++) { if(slots[i + 4] != null && slots[i + 4].stackSize < recipe.inputItems[i].stacksize) return false; } - + if(config.fluxMode ? this.flux < recipe.flux : false) return false; + if(config.maxHeat>0 && recipe.heat>0 ? this.heat < recipe.heat : false) return false; return true; } - + public boolean hasSpace(CustomMachineRecipe recipe) { - + for(int i = 0; i < recipe.outputFluids.length; i++) { if(this.outputTanks[i].getTankType() == recipe.outputFluids[i].type && this.outputTanks[i].getFill() + recipe.outputFluids[i].fill > this.outputTanks[i].getMaxFill()) return false; } - + for(int i = 0; i < recipe.outputItems.length; i++) { if(slots[i + 16] != null && (slots[i + 16].getItem() != recipe.outputItems[i].key.getItem() || slots[i + 16].getItemDamage() != recipe.outputItems[i].key.getItemDamage())) return false; if(slots[i + 16] != null && slots[16 + i].stackSize + recipe.outputItems[i].key.stackSize > slots[i + 16].getMaxStackSize()) return false; } - + return true; } - + public void useUpInput(CustomMachineRecipe recipe) { - + for(int i = 0; i < recipe.inputFluids.length; i++) { this.inputTanks[i].setFill(this.inputTanks[i].getFill() - recipe.inputFluids[i].fill); } - + for(int i = 0; i < recipe.inputItems.length; i++) { this.decrStackSize(i + 4, recipe.inputItems[i].stacksize); } } - + public void processRecipe(CustomMachineRecipe recipe) { - + for(int i = 0; i < recipe.outputFluids.length; i++) { if(this.outputTanks[i].getTankType() != recipe.outputFluids[i].type) this.outputTanks[i].setTankType(recipe.outputFluids[i].type); this.outputTanks[i].setFill(this.outputTanks[i].getFill() + recipe.outputFluids[i].fill); } - + for(int i = 0; i < recipe.outputItems.length; i++) { - + if(worldObj.rand.nextFloat() < recipe.outputItems[i].value) { if(slots[i + 16] == null) { slots[i + 16] = recipe.outputItems[i].key.copy(); @@ -261,19 +352,18 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF } } } - + public boolean checkStructure() { - + this.connectionPos.clear(); this.structureCheckDelay = 300; this.structureOK = false; if(this.config == null) return false; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - for(ComponentDefinition comp : config.components) { - + /* vvv precisely the same method used for defining ports vvv */ int x = xCoord - dir.offsetX * comp.x + rot.offsetX * comp.x; int y = yCoord + comp.y; @@ -285,42 +375,52 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF z = zCoord + dir.offsetX * comp.x - rot.offsetX * comp.x; } /* i wholeheartedly believe it is the computer who is wrong here */ - + Block b = worldObj.getBlock(x, y, z); if(b != comp.block) return false; - + int meta = worldObj.getBlockMetadata(x, y, z); if(!comp.allowedMetas.contains(meta)) return false; - + TileEntity tile = Compat.getTileStandard(worldObj, x, y, z); if(tile instanceof TileEntityProxyBase) { TileEntityProxyBase proxy = (TileEntityProxyBase) tile; proxy.cachedPosition = new BlockPos(xCoord, yCoord, zCoord); proxy.markDirty(); - + for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { this.connectionPos.add(new DirPos(x + facing.offsetX, y + facing.offsetY, z + facing.offsetZ, facing)); } } + if(worldObj.getBlock(x,y,z) == ModBlocks.cm_flux){ + for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { + this.fluxPos.add(new DirPos(x + facing.offsetX, y + facing.offsetY, z + facing.offsetZ, facing)); + } + } + else if(worldObj.getBlock(x,y,z) == ModBlocks.cm_heat){ + for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { + this.heatPos.add(new DirPos(x + facing.offsetX, y + facing.offsetY, z + facing.offsetZ, facing)); + } + } + } - for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { this.connectionPos.add(new DirPos(xCoord + facing.offsetX, yCoord + facing.offsetY, zCoord + facing.offsetZ, facing)); } - + this.structureOK = true; return true; } - + public void buildStructure() { - + if(this.config == null) return; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + for(ComponentDefinition comp : config.components) { - + int x = xCoord - dir.offsetX * comp.x + rot.offsetX * comp.x; int y = yCoord + comp.y; int z = zCoord - dir.offsetZ * comp.z + rot.offsetZ * comp.z; @@ -328,7 +428,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF x = xCoord + dir.offsetZ * comp.z - rot.offsetZ * comp.z; z = zCoord + dir.offsetX * comp.x - rot.offsetX * comp.x; } - + worldObj.setBlock(x, y, z, comp.block, (int) comp.allowedMetas.toArray()[0], 3); } } @@ -353,12 +453,12 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { if(slot < 4 || slot > 9) return false; - + int index = slot - 4; int filterSlot = slot + 6; - + if(slots[filterSlot] == null) return true; - + return matcher.isValidForFilter(slots[filterSlot], index, stack); } @@ -366,56 +466,58 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF public void networkUnpack(NBTTagCompound nbt) { this.machineType = nbt.getString("type"); if(this.config == null) this.init(); - + this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); + this.flux = nbt.getInteger("flux"); + this.heat = nbt.getInteger("heat"); this.structureOK = nbt.getBoolean("structureOK"); this.maxProgress = nbt.getInteger("maxProgress"); for(int i = 0; i < inputTanks.length; i++) inputTanks[i].readFromNBT(nbt, "i" + i); for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); - + this.matcher.readFromNBT(nbt); } - + @Override public void readFromNBT(NBTTagCompound nbt) { - + this.machineType = nbt.getString("machineType"); this.init(); - + super.readFromNBT(nbt); - + if(this.config != null) { - + for(int i = 0; i < inputTanks.length; i++) inputTanks[i].readFromNBT(nbt, "i" + i); for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); - + this.matcher.readFromNBT(nbt); - + int index = nbt.getInteger("cachedIndex"); if(index != -1) { this.cachedRecipe = CustomMachineRecipes.recipes.get(this.config.recipeKey).get(index); } } } - + @Override public void writeToNBT(NBTTagCompound nbt) { - + if(machineType == null || this.config == null) { super.writeToNBT(nbt); return; } - + nbt.setString("machineType", machineType); - + super.writeToNBT(nbt); for(int i = 0; i < inputTanks.length; i++) inputTanks[i].writeToNBT(nbt, "i" + i); for(int i = 0; i < outputTanks.length; i++) outputTanks[i].writeToNBT(nbt, "o" + i); - + this.matcher.writeToNBT(nbt); - + if(this.cachedRecipe != null) { int index = CustomMachineRecipes.recipes.get(this.config.recipeKey).indexOf(this.cachedRecipe); nbt.setInteger("cachedIndex", index); @@ -426,18 +528,22 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF @Override public FluidTank[] getAllTanks() { - + FluidTank[] all = new FluidTank[inputTanks.length + outputTanks.length]; for(int i = 0; i < inputTanks.length; i++) all[i] = inputTanks[i]; for(int i = 0; i < outputTanks.length; i++) all[inputTanks.length + i] = outputTanks[i]; - + return all; } @Override public FluidTank[] getSendingTanks() { - return outputTanks != null ? outputTanks : new FluidTank[0]; + FluidTank[] all = new FluidTank[outputTanks.length + this.getSmokeTanks().length]; + for(int i = 0; i < outputTanks.length; i++) all[i] = outputTanks[i]; + for(int i = 0; i < this.getSmokeTanks().length; i++) all[outputTanks.length + i] = this.getSmokeTanks()[i]; + //return outputTanks != null ? outputTanks : new FluidTank[0]; + return all; } @Override @@ -472,20 +578,20 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF public void setPower(long power) { this.power = power; } - + @Override public long transferPower(long power) { if(this.config != null && this.config.generatorMode) return power; - + this.setPower(this.getPower() + power); - + if(this.getPower() > this.getMaxPower()) { - + long overshoot = this.getPower() - this.getMaxPower(); this.setPower(this.getMaxPower()); return overshoot; } - + return 0; } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f9681a2c0..ee8c16690 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4724,6 +4724,8 @@ tile.cm_circuit.schrabidium.name=Tier 5 Circuit Block tile.cm_engine.bismuth.name=Bismuth Motor Block tile.cm_engine.desh.name=Desh Motor Block tile.cm_engine.standard.name=Motor Block +tile.cm_flux.name=Neutron Flux Receiver +tile.cm_heat.name=Heat receiver tile.cm_port.alloy.name=Advanced Alloy Port tile.cm_port.desh.name=Desh Port tile.cm_port.steel.name=Steel Port diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_flux_side.png b/src/main/resources/assets/hbm/textures/blocks/cm_flux_side.png new file mode 100644 index 0000000000000000000000000000000000000000..626be40ad236eb0eb5b226a0000bbdf81f3b515c GIT binary patch literal 410 zcmV;L0cHM)P)Px$R7pfZR5*>Llg~=SKoG`%X(QNDU!kS+6-0ca-nxSfX47Vq zG;K2DA%EP)9+U<`GT+X8^X=@n!D_WqPIy9N40j(-M6Mu83L>}X_4<+9&*vI*1vcID zcJ;u`*9+Da*mQ?=d)_ba8K^3%APNE~psEOdTx0dOd7HdJo7^r)vmxmdt9Jj=XFqXzm4QM%#VLawNrZNgCh=WyY#o!pH;A2E>F77-<;>deo!aV1ONa407*qoM6N<$ Ef?Q;_7ytkO literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_flux_top.png b/src/main/resources/assets/hbm/textures/blocks/cm_flux_top.png new file mode 100644 index 0000000000000000000000000000000000000000..f7df862cf362205daf966868eb5a9a38111b39ee GIT binary patch literal 541 zcmV+&0^1#o6otR}fn^bhjua~jM3;uANRdbsY4Qef<=Q1t+H^st zaX~}x2p4HwBX|%-2nh;H2n@43lL7`7WJ@{CYVX`R=iaktMX%TM)>@o%#Bq$)n*YIO zvtc|Qqj$R;G$ddq=yDwDY z2!PtpKWCyJUs-Q=hnJ7v@ZO`f);Q z%6VVHT7f9UU017B>h=10x8nt443$s|G5-Di)Ke;zP)Z@X-L9WZCbZja>h(IWudi5Z z@!k{1F;NterYZaV9w7w9Vv#6{SS%I{heJfC)A6&}jQM-+IpnN!d)M42;`m0^c9!+|q- z^EtD1wiX&>T&j~4DxX&#op!L$S@q}}tCX!g>snq<&|RJ6>;H*M zG9uXe`GGTae91lR5*OW)E_z3VJ@u&yTJ`(7h4#vcN9KIaf6vor?eU1YH{qZ_{rag} Qf$n4QboFyt=akR{04{t{rT_o{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_heat_top.png b/src/main/resources/assets/hbm/textures/blocks/cm_heat_top.png new file mode 100644 index 0000000000000000000000000000000000000000..443aa3f7ee1340a9b7b454c81b5f7caa9afa422c GIT binary patch literal 742 zcmVPx%ph-kQR5*=oluvIXMG(b*uX73!Rlh3T+}t=oRaHpB%m8qABms1LaX)^Gqi+eo zWHRXh`v>|!eRFq!?rfa5+ie2~@cma2$T5l9ox~ggl{b3;wL9x|MvI9A^LfgTf7pRx zUDw>+W=QbyC#QIe{WzFrZ4&McPz3F>>=*`XSPf5xj86xcL-Xzho&?>`?6c##g-&6+#pR66`#b7ZM(@@clgSBh*I9e( z?7&bGi3!O_f^`yDtuj8m%{gC8+255^?gXiOIQ0r3_JJhUrJ1NIZ(mL9vXWP?J|mbI zr$Z`lVm!Z`QU1H<*gDxnHg&I#R<|31WthZbF{RuUczedA|CM9}Y$9!SXc8{xF5mO= z`huj@RyrF!aUJHDGq#)J(VnD3Eem+J&hd3lRX1H`v7GWylurU4TO^kBn`#73+D2h| zD!9kCSWFw|uOo&({5e4S6lmI6RaLNUzQyJtsVzh6)^UW;1I+WBV}VEDr`o)kb>PSL Y9~=G%*a=h^#{d8T07*qoM6N<$f|yrRQvd(} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_custom.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_custom.png index 7b47cbfac8943eba2e9d5d918b9623931455096a..412b6625a46c8df891948dfc8ac3bdd1ef783fd8 100644 GIT binary patch literal 3745 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 Q{^&Q14puw=qRoSU05iS0eEK)4%@%4ROOf@+ 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 From 65d6df374191d074e82e8c54e47738902d1f61d8 Mon Sep 17 00:00:00 2001 From: 9Valjews <64272884+9Valjew@users.noreply.github.com> Date: Sat, 30 Dec 2023 16:04:07 +0200 Subject: [PATCH 045/376] The satellitening part 1 --- .../tileentity/machine/TileEntityMachineRadarNT.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 93d4a8218..357779cc7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -22,6 +22,7 @@ import com.hbm.main.MainRegistry; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.Satellite.Interfaces; +import com.hbm.saveddata.satellites.SatelliteHorizons; import com.hbm.saveddata.satellites.SatelliteLaser; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; @@ -428,6 +429,16 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I sat.onClick(world, x, z); } } + if(sat instanceof SatelliteHorizons) { + if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + int y = 60; //one day I will make radars transmit Y coordinate as well and you will be butchered alhamdulila + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + sat.onCoordAction(world,player,x,y,z); + } + + } } From 6594a80c70891040169fc712a6f0e38c9607ed94 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 30 Dec 2023 20:04:35 +0100 Subject: [PATCH 046/376] coupled trains work again yay (please kill me) --- .../hbm/entity/train/EntityRailCarBase.java | 63 +++++++------------ .../inventory/recipes/AssemblerRecipes.java | 6 +- 2 files changed, 27 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index ee256de43..aff0eef7b 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -14,6 +14,7 @@ import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ParticleUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -356,11 +357,9 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { ltu.moveTrainByApproach(speed); } - if(ltu.trains.length != 1) { - //ltu.pushForce *= 0.95; - ltu.pushForce = 0; - ltu.collideTrain(speed); - } + //ltu.pushForce *= 0.95; + ltu.pushForce = 0; + ltu.collideTrain(speed); } } @@ -746,24 +745,37 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { return totalSpeed; } + /* + * This method has no rhyme or reason behind it. Nothing of this was calculated, instead it was an old system that worked with older constraints, + * which was retrofitted with a slightly newer system and beaten into submission for two consecutive hours until it yielded the results it should. + * Booleans are flipped back and forth based on seemingly random conditions, numbers are inverted and then inverted again and finally smashed into + * the rail system in the hopes that it would make trains work. My apologies extend towards Bob in the future who will inevitably have to rewrite this + * abhorrence because of some constraint change which will cause the entire system to break. Part of me wishes to never touch the train code ever again, + * to abandon the idea and to ban the annoying people on Discord who keep asking about it. Another part wants me to slam my head against this project + * until either it or my skull gives way; and considering I got this far, it appears as if this side is the one that is winning. + */ /** Determines the "front" wagon based on the movement and moves it, then moves all other wagons towards that */ public void moveTrainByApproach(double speed) { - boolean forward = speed < 0; - speed = Math.abs(speed); + boolean forward = speed > 0; EntityRailCarBase previous = null; EntityRailCarBase first = this.trains[0]; + boolean order = forward ^ first.getCouplingFrom(null) == TrainCoupling.BACK; - for(int i = !forward ? 0 : this.trains.length - 1; !forward ? i < this.trains.length : i >= 0; i += !forward ? 1 : -1) { + for(int i = order ? 0 : this.trains.length - 1; order ? i < this.trains.length : i >= 0; i += order ? 1 : -1) { EntityRailCarBase current = this.trains[i]; if(previous == null) { + if(first == current) speed *= -1; + + ParticleUtil.spawnGasFlame(first.worldObj, current.posX, current.posY + 2, current.posZ, 0, 0.1, 0); + boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); int sigNum = inReverse ? 1 : -1; BlockPos anchor = current.getCurrentAnchorPos(); - /*Vec3 frontPos = current.getRelPosAlongRail(anchor, current.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 frontPos = current.getRelPosAlongRail(anchor, (speed + current.getLengthSpan()) * -sigNum, new MoveContext(RailCheckType.FRONT, current.getCollisionSpan() - current.getLengthSpan())); if(frontPos == null) { current.derail(); @@ -771,43 +783,16 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { return; } else { anchor = current.getCurrentAnchorPos(); //reset origin to new position - Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); + Vec3 corePos = current.getRelPosAlongRail(anchor, speed * -sigNum, new MoveContext(RailCheckType.CORE, 0)); current.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - Vec3 backPos = current.getRelPosAlongRail(anchor, -current.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 backPos = current.getRelPosAlongRail(anchor, (speed - current.getLengthSpan()) * -sigNum, new MoveContext(RailCheckType.BACK, current.getCollisionSpan() - current.getLengthSpan())); if(frontPos == null || backPos == null) { current.derail(); this.dissolveTrain(); return; } else { - setRenderPos(current, frontPos, backPos); - } - }*/ - - Pair[] checks; - double dist = speed * sigNum; - - if(forward) { - checks = new Pair[] { - new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT), - new Pair(dist, RailCheckType.CORE), - new Pair(dist - current.getLengthSpan(), RailCheckType.BACK) - }; - } else { - checks = new Pair[] { - new Pair(dist - current.getLengthSpan(), RailCheckType.BACK), - new Pair(dist, RailCheckType.CORE), - new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT) - }; - } - - double brake = 0; - - for(Pair check : checks) { - MoveContext ctx = new MoveContext(check.getValue(), current.getCollisionSpan() - current.getLengthSpan()); - current.getRelPosAlongRail(anchor, check.getKey() - (brake * Math.signum(check.getKey())), ctx); - if(ctx.collision) { - brake += ctx.overshoot; + setRenderPos(current, inReverse ? backPos : frontPos, inReverse ? frontPos : backPos); } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 33b9a227b..bb377f685 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -243,9 +243,9 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.upgrade_fortune_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DIAMOND.dust(), 4), new OreDictStack(IRON.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModItems.upgrade_fortune_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_1, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_fortune_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_2, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(POLYMER.dust(), 4), new OreDictStack(W.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_2, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); + makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(ANY_PLASTIC.dust(), 4), new OreDictStack(W.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); + makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_2, 1), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(W.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_radius, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DIAMOND.dust(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_health, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(TI.dust(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(DESH.ingot(), 8), new ComparableStack(ModItems.powder_power, 16), new ComparableStack(ModItems.crystal_lithium, 4), new ComparableStack(ModItems.circuit_schrabidium, 1), }, 200); From 11f4b55a9dddda0244ed70e620868e40d3a616ca Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 30 Dec 2023 22:43:37 +0100 Subject: [PATCH 047/376] balls (reverb) --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../rail/RailStandardSwitchFlipped.java | 235 + .../hbm/entity/train/EntityRailCarBase.java | 35 +- .../com/hbm/main/ModEventHandlerClient.java | 5 + .../java/com/hbm/main/ResourceManager.java | 1 + .../blocks/rail_standard_switch_flipped.obj | 3933 +++++++++++++++++ .../blocks/rail_switch_sign_flipped.png | Bin 0 -> 582 bytes 7 files changed, 4204 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/rail_switch_sign_flipped.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1b69835f3..7c656c712 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1175,6 +1175,7 @@ public class ModBlocks { public static Block rail_large_ramp; public static Block rail_large_buffer; public static Block rail_large_switch; + public static Block rail_large_switch_flipped; public static Block statue_elb; public static Block statue_elb_g; @@ -2253,6 +2254,7 @@ public class ModBlocks { rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); rail_large_switch = new RailStandardSwitch().setBlockName("rail_large_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_switch_flipped = new RailStandardSwitchFlipped().setBlockName("rail_large_switch_flipped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); 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"); @@ -3554,6 +3556,7 @@ public class ModBlocks { register(rail_large_ramp); register(rail_large_buffer); register(rail_large_switch); + register(rail_large_switch_flipped); //Crate GameRegistry.registerBlock(crate, crate.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java new file mode 100644 index 000000000..a27d8d04c --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java @@ -0,0 +1,235 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardSwitchFlipped extends BlockRailWaypointSystem implements IRenderRail { + + @SideOnly(Side.CLIENT) private IIcon iconSign; + + public RailStandardSwitchFlipped() { + super(Material.iron); + + RailDef main = new RailDef("main"); + RailDef side = new RailDef("side"); + railDefs.add(main); + railDefs.add(side); + + main.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + + side.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-6.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-5.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-4.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-3.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-2.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-1.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-0.5, 0.1875, -3.25)); + side.nodes.add(Vec3.createVectorHelper(0.5, 0.1875, -2.9375)); + side.nodes.add(Vec3.createVectorHelper(1.5, 0.1875, -2.375)); + side.nodes.add(Vec3.createVectorHelper(2.5, 0.1875, -1.4625)); + side.nodes.add(Vec3.createVectorHelper(3.5, 0.1875, -0.75)); + side.nodes.add(Vec3.createVectorHelper(4.5, 0.1875, -0.1875)); + side.nodes.add(Vec3.createVectorHelper(5.5, 0.1875, 0.175)); + side.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.375)); + side.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + side.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconSign = iconRegister.registerIcon(RefStrings.MODID + ":rail_switch_sign_flipped"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityRailSwitch(); + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 7, 7, 1, 0}; + } + + @Override + public int getOffset() { + return 7; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + public boolean canCross(World world, int x, int y, int z, Vec3 from, Vec3 to, RailDef def) { + TileEntityRailSwitch tile = (TileEntityRailSwitch) world.getTileEntity(x, y, z); + if(tile == null) return true; + + ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata() - 10); + + if(dir == Library.POS_X) if(from.xCoord < to.xCoord) return true; + if(dir == Library.NEG_X) if(from.xCoord > to.xCoord) return true; + if(dir == Library.POS_Z) if(from.zCoord < to.zCoord) return true; + if(dir == Library.NEG_Z) if(from.zCoord > to.zCoord) return true; + + if(dir == Library.POS_X) if(to.xCoord < x + 0.5 + 7) return true; + if(dir == Library.NEG_X) if(to.xCoord > x + 0.5 - 7) return true; + if(dir == Library.POS_Z) if(to.zCoord < z + 0.5 + 7) return true; + if(dir == Library.NEG_Z) if(to.zCoord > z + 0.5 - 7) return true; + + if(tile.isSwitched) { + if("side".equals(def.name)) return true; + } else { + if("main".equals(def.name)) return true; + } + + return false; + } + + @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; + if(player.isSneaking()) return false; + + int[] pos = this.findCore(world, x, y, z); + + if(pos != null) { + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + sw.isSwitched = !sw.isSwitched; + sw.markDirty(); + world.markBlockForUpdate(pos[0], pos[1], pos[2]); + } + } + + return true; + } + + @Override + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return super.snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + if(!super.checkRequirement(world, x, y, z, dir, o)) return false; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) if(!world.getBlock(x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2).isReplaceable(world, x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2)) return false; + for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3).isReplaceable(world, x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3)) return false; + if(!world.getBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4).isReplaceable(world, x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4)) return false; + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i)).isReplaceable(world, x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i))) return false; + if(!world.getBlock(x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5).isReplaceable(world, x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5)) return false; + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i)).isReplaceable(world, x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i))) return false; + + return true; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) world.setBlock(x + dX * (2 + i) + rX * 1, y, z + dZ * (2 + i) + rZ * 1, this, rot.ordinal(), 3); + for(int i = 0; i < 2; i++) world.setBlock(x + dX * (4 + i) + rX * 2, y, z + dZ * (4 + i) + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 3, y, z + dZ * 5 + rZ * 3, this, rot.ordinal(), 3); + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (6 + j) + rX * (2 + i), y, z + dZ * (6 + j) + rZ * (2 + i), this, dir.ordinal(), 3); + world.setBlock(x + dX * 7 + rX * 4, y, z + dZ * 7 + rZ * 4, this, rot.ordinal(), 3); + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (8 + j) + rX * (3 + i), y, z + dZ * (8 + j) + rZ * (3 + i), this, dir.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.1, 0.1, 0.1); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, rotation, true); + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); + } + + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index aff0eef7b..a913f1c64 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -14,8 +14,6 @@ import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.ParticleUtil; -import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -57,6 +55,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public double renderX; public double renderY; public double renderZ; + public double cachedSpeed; public EntityRailCarBase coupledFront; public EntityRailCarBase coupledBack; @@ -176,9 +175,20 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; this.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; this.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; + } else { + this.renderX = posX; + this.renderY = posY; + this.renderZ = posZ; } } else { + + if(!this.isOnRail) { + if(this.coupledFront != null) this.coupledFront.couple(this.coupledFront.getCouplingFrom(this), null); + if(this.coupledBack != null) this.coupledBack.couple(this.coupledBack.getCouplingFrom(this), null); + this.coupledFront = null; + this.coupledBack = null; + } if(this.coupledFront != null && this.coupledFront.isDead) { this.coupledFront = null; @@ -189,10 +199,20 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(this.ltu != null) this.ltu.dissolveTrain(); } - if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null)) { + if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null) && this.isOnRail) { LogicalTrainUnit.generateTrain(this); } + if(!this.isOnRail) { + Vec3 motion = Vec3.createVectorHelper(0, 0, this.cachedSpeed); + motion.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180D)); + this.moveEntity(motion.xCoord, motion.yCoord - 0.04, motion.zCoord); + this.renderX = posX; + this.renderY = posY; + this.renderZ = posZ; + this.cachedSpeed *= 0.95D; + } + DummyConfig[] definitions = this.getDummies(); if(!this.initDummies) { @@ -320,6 +340,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(Math.abs(speed) < 0.001) speed = 0; + for(EntityRailCarBase car : ltu.trains) car.cachedSpeed = speed; + if(ltu.trains.length == 1) { EntityRailCarBase train = ltu.trains[0]; @@ -388,7 +410,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public void derail() { isOnRail = false; - this.setDead(); + //this.setDead(); } @SideOnly(Side.CLIENT) @@ -756,10 +778,9 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { */ /** Determines the "front" wagon based on the movement and moves it, then moves all other wagons towards that */ public void moveTrainByApproach(double speed) { - boolean forward = speed > 0; EntityRailCarBase previous = null; - EntityRailCarBase first = this.trains[0]; + boolean forward = speed > 0; boolean order = forward ^ first.getCouplingFrom(null) == TrainCoupling.BACK; for(int i = order ? 0 : this.trains.length - 1; order ? i < this.trains.length : i >= 0; i += order ? 1 : -1) { @@ -769,8 +790,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(first == current) speed *= -1; - ParticleUtil.spawnGasFlame(first.worldObj, current.posX, current.posY + 2, current.posZ, 0, 0.1, 0); - boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); int sigNum = inReverse ? 1 : -1; BlockPos anchor = current.getCurrentAnchorPos(); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 1505391ae..16be815d9 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -255,6 +255,11 @@ public class ModEventHandlerClient { double distanceToCover = 4D * (i == 0 ? 1 : -1); + if(distanceToCover < 0) { + distanceToCover *= -1; + yaw += 180; + } + do { it++; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 69e6aee87..38837f228 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1468,6 +1468,7 @@ public class ResourceManager { public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); public static final IModelCustom rail_standard_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")); public static final IModelCustom rail_standard_switch = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch.obj")); + public static final IModelCustom rail_standard_switch_flipped = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch_flipped.obj")); public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj new file mode 100644 index 000000000..f4ebf2c55 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj @@ -0,0 +1,3933 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_switch_flipped.blend' +# www.blender.org +o SignTurn +v 1.500000 1.000000 -1.125000 +v 2.500000 1.000000 -1.125000 +v 1.500000 2.000000 -1.125000 +v 2.500000 2.000000 -1.125000 +v 1.500000 2.000000 -0.875000 +v 1.500000 1.000000 -0.875000 +v 2.500000 1.000000 -0.875000 +v 2.500000 2.000000 -0.875000 +v 1.875000 1.000000 -0.875000 +v 2.125000 1.000000 -0.875000 +v 1.875000 1.000000 -1.125000 +v 2.125000 1.000000 -1.125000 +v 1.875000 0.000000 -1.125000 +v 1.875000 0.000000 -0.875000 +v 2.125000 0.000000 -0.875000 +v 2.125000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/8/3 2/9/3 +f 1/3/4 5/10/4 3/1/4 +f 3/11/5 8/12/5 4/13/5 +f 2/14/6 6/15/6 1/16/6 +f 13/17/6 15/18/6 14/19/6 +f 16/20/1 11/21/1 12/22/1 +f 14/23/2 10/24/2 9/25/2 +f 15/26/3 12/27/3 10/28/3 +f 13/29/4 9/30/4 11/31/4 +f 3/1/1 4/32/1 2/2/1 +f 7/4/2 8/33/2 5/5/2 +f 4/7/3 8/34/3 7/8/3 +f 1/3/4 6/35/4 5/10/4 +f 3/11/5 5/36/5 8/12/5 +f 2/14/6 7/37/6 6/15/6 +f 13/17/6 16/38/6 15/18/6 +f 16/20/1 13/39/1 11/21/1 +f 14/23/2 15/40/2 10/24/2 +f 15/26/3 16/41/3 12/27/3 +f 13/29/4 14/42/4 9/30/4 +o SignStraight +v 1.500000 1.000000 -1.125000 +v 2.500000 1.000000 -1.125000 +v 1.500000 2.000000 -1.125000 +v 2.500000 2.000000 -1.125000 +v 1.500000 2.000000 -0.875000 +v 1.500000 1.000000 -0.875000 +v 2.500000 1.000000 -0.875000 +v 2.500000 2.000000 -0.875000 +v 1.875000 1.000000 -0.875000 +v 2.125000 1.000000 -0.875000 +v 1.875000 1.000000 -1.125000 +v 2.125000 1.000000 -1.125000 +v 1.875000 0.000000 -1.125000 +v 1.875000 0.000000 -0.875000 +v 2.125000 0.000000 -0.875000 +v 2.125000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.000100 0.999900 +vt 0.000000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 19/43/7 18/44/7 17/45/7 +f 23/46/8 21/47/8 22/48/8 +f 20/49/9 23/50/9 18/51/9 +f 17/45/10 21/52/10 19/43/10 +f 19/53/11 24/54/11 20/55/11 +f 18/56/12 22/57/12 17/58/12 +f 29/59/12 31/60/12 30/61/12 +f 32/62/7 27/63/7 28/64/7 +f 30/65/8 26/66/8 25/67/8 +f 31/68/9 28/69/9 26/70/9 +f 29/71/10 25/72/10 27/73/10 +f 19/43/7 20/74/7 18/44/7 +f 23/46/8 24/75/8 21/47/8 +f 20/49/9 24/76/9 23/50/9 +f 17/45/10 22/77/10 21/52/10 +f 19/53/11 21/78/11 24/54/11 +f 18/56/12 23/79/12 22/57/12 +f 29/59/12 32/80/12 31/60/12 +f 32/62/7 29/81/7 27/63/7 +f 30/65/8 31/82/8 26/66/8 +f 31/68/9 32/83/9 28/69/9 +f 29/71/10 30/84/10 25/72/10 +o Rail +v 1.000000 0.062500 4.812500 +v 1.000000 0.062500 5.187500 +v -1.000000 0.062500 5.187500 +v -1.000000 0.062500 4.812500 +v -1.000000 0.000000 5.187500 +v 1.000000 0.000000 5.187500 +v -1.000000 0.000000 4.812500 +v 1.000000 0.000000 4.812500 +v -1.000000 0.000000 4.187500 +v 1.000000 0.000000 4.187500 +v -1.000000 0.000000 3.812500 +v 1.000000 0.000000 3.812500 +v -1.000000 0.000000 3.187500 +v 1.000000 0.000000 3.187500 +v -1.000000 0.000000 2.812500 +v 1.000000 0.000000 2.812500 +v -1.000000 0.000000 7.187500 +v 1.000000 0.000000 7.187500 +v -1.000000 0.000000 6.812500 +v 1.000000 0.000000 6.812500 +v -1.000000 0.000000 6.187500 +v 1.000000 0.000000 6.187500 +v -1.000000 0.000000 5.812500 +v 1.000000 0.000000 5.812500 +v -1.000000 0.062500 3.812500 +v -1.000000 0.062500 4.187500 +v 1.000000 0.062500 4.187500 +v 1.000000 0.062500 3.812500 +v -1.000000 0.062500 2.812500 +v -1.000000 0.062500 3.187500 +v 1.000000 0.062500 3.187500 +v 1.000000 0.062500 2.812500 +v -1.000000 0.062500 6.812500 +v -1.000000 0.062500 7.187500 +v 1.000000 0.062500 7.187500 +v 1.000000 0.062500 6.812500 +v -1.000000 0.062500 5.812500 +v -1.000000 0.062500 6.187500 +v 1.000000 0.062500 6.187500 +v 1.000000 0.062500 5.812500 +v -0.812500 0.062500 7.500000 +v 0.812500 0.062500 7.500000 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.187500 7.500000 +v 0.812500 0.187500 7.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v 0.750000 0.062500 7.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 0.187500 7.500000 +v 0.750000 0.187500 2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.062500 7.500000 +v -0.750000 0.187500 2.500000 +v -0.750000 0.187500 7.500000 +v 0.625000 0.062500 7.062500 +v 0.937500 0.062500 7.062500 +v 0.625000 0.062500 6.937500 +v 0.937500 0.062500 6.937500 +v 0.625000 0.125000 7.062500 +v 0.937500 0.125000 7.062500 +v 0.625000 0.125000 6.937500 +v 0.937500 0.125000 6.937500 +v -0.937500 0.062500 7.062500 +v -0.625000 0.062500 7.062500 +v -0.937500 0.062500 6.937500 +v -0.625000 0.062500 6.937500 +v -0.937500 0.125000 7.062500 +v -0.625000 0.125000 7.062500 +v -0.937500 0.125000 6.937500 +v -0.625000 0.125000 6.937500 +v 0.625000 0.062500 6.062500 +v 0.937500 0.062500 6.062500 +v 0.625000 0.062500 5.937500 +v 0.937500 0.062500 5.937500 +v 0.625000 0.125000 6.062500 +v 0.937500 0.125000 6.062500 +v 0.625000 0.125000 5.937500 +v 0.937500 0.125000 5.937500 +v -0.937500 0.062500 6.062500 +v -0.625000 0.062500 6.062500 +v -0.937500 0.062500 5.937500 +v -0.625000 0.062500 5.937500 +v -0.937500 0.125000 6.062500 +v -0.625000 0.125000 6.062500 +v -0.937500 0.125000 5.937500 +v -0.625000 0.125000 5.937500 +v 0.625000 0.062500 5.062500 +v 0.937500 0.062500 5.062500 +v 0.625000 0.062500 4.937500 +v 0.937500 0.062500 4.937500 +v 0.625000 0.125000 5.062500 +v 0.937500 0.125000 5.062500 +v 0.625000 0.125000 4.937500 +v 0.937500 0.125000 4.937500 +v -0.937500 0.062500 5.062500 +v -0.625000 0.062500 5.062500 +v -0.937500 0.062500 4.937500 +v -0.625000 0.062500 4.937500 +v -0.937500 0.125000 5.062500 +v -0.625000 0.125000 5.062500 +v -0.937500 0.125000 4.937500 +v -0.625000 0.125000 4.937500 +v 0.625000 0.062500 4.062500 +v 0.937500 0.062500 4.062500 +v 0.625000 0.062500 3.937500 +v 0.937500 0.062500 3.937500 +v 0.625000 0.125000 4.062500 +v 0.937500 0.125000 4.062500 +v 0.625000 0.125000 3.937500 +v 0.937500 0.125000 3.937500 +v -0.937500 0.062500 4.062500 +v -0.625000 0.062500 4.062500 +v -0.937500 0.062500 3.937500 +v -0.625000 0.062500 3.937500 +v -0.937500 0.125000 4.062500 +v -0.625000 0.125000 4.062500 +v -0.937500 0.125000 3.937500 +v -0.625000 0.125000 3.937500 +v 0.625000 0.062500 3.062500 +v 0.937500 0.062500 3.062500 +v 0.625000 0.062500 2.937500 +v 0.937500 0.062500 2.937500 +v 0.625000 0.125000 3.062500 +v 0.937500 0.125000 3.062500 +v 0.625000 0.125000 2.937500 +v 0.937500 0.125000 2.937500 +v -0.937500 0.062500 3.062500 +v -0.625000 0.062500 3.062500 +v -0.937500 0.062500 2.937500 +v -0.625000 0.062500 2.937500 +v -0.937500 0.125000 3.062500 +v -0.625000 0.125000 3.062500 +v -0.937500 0.125000 2.937500 +v -0.625000 0.125000 2.937500 +v -0.812500 0.062500 3.500000 +v -0.812500 0.062500 4.500000 +v -0.812500 0.062500 5.500000 +v -0.812500 0.062500 6.500000 +v 0.812500 0.062500 6.500000 +v 0.812500 0.062500 5.500000 +v 0.812500 0.062500 4.500000 +v 0.812500 0.062500 3.500000 +v -0.812500 0.187500 3.500000 +v -0.812500 0.187500 4.500000 +v -0.812500 0.187500 5.500000 +v -0.812500 0.187500 6.500000 +v 0.812500 0.187500 6.500000 +v 0.812500 0.187500 5.500000 +v 0.812500 0.187500 4.500000 +v 0.812500 0.187500 3.500000 +v 0.750000 0.062500 6.500000 +v 0.750000 0.062500 5.500000 +v 0.750000 0.062500 4.500000 +v 0.750000 0.062500 3.500000 +v 0.750000 0.187500 6.500000 +v 0.750000 0.187500 5.500000 +v 0.750000 0.187500 4.500000 +v 0.750000 0.187500 3.500000 +v -0.750000 0.062500 3.500000 +v -0.750000 0.062500 4.500000 +v -0.750000 0.062500 5.500000 +v -0.750000 0.062500 6.500000 +v -0.750000 0.187500 3.500000 +v -0.750000 0.187500 4.500000 +v -0.750000 0.187500 5.500000 +v -0.750000 0.187500 6.500000 +v 1.000000 0.062500 -5.187500 +v 1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -5.187500 +v -1.000000 0.000000 -4.812500 +v 1.000000 0.000000 -4.812500 +v -1.000000 0.000000 -5.187500 +v 1.000000 0.000000 -5.187500 +v -1.000000 0.000000 -5.812500 +v 1.000000 0.000000 -5.812500 +v -1.000000 0.000000 -6.187500 +v 1.000000 0.000000 -6.187500 +v -1.000000 0.000000 -6.812500 +v 1.000000 0.000000 -6.812500 +v -1.000000 0.000000 -7.187500 +v 1.000000 0.000000 -7.187500 +v -1.000000 0.000000 -2.812500 +v 1.000000 0.000000 -2.812500 +v -1.000000 0.000000 -3.187500 +v 1.000000 0.000000 -3.187500 +v -1.000000 0.000000 -3.812500 +v 1.000000 0.000000 -3.812500 +v -1.000000 0.000000 -4.187500 +v 1.000000 0.000000 -4.187500 +v -1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -4.187500 +v -1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -4.187500 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.062500 -7.500000 +v 0.812500 0.062500 -7.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 +v -0.812500 0.187500 -7.500000 +v 0.812500 0.187500 -7.500000 +v 0.750000 0.062500 -2.500000 +v 0.750000 0.062500 -7.500000 +v 0.750000 0.187500 -2.500000 +v 0.750000 0.187500 -7.500000 +v -0.750000 0.062500 -7.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.187500 -7.500000 +v -0.750000 0.187500 -2.500000 +v 0.625000 0.062500 -2.937500 +v 0.937500 0.062500 -2.937500 +v 0.625000 0.062500 -3.062500 +v 0.937500 0.062500 -3.062500 +v 0.625000 0.125000 -2.937500 +v 0.937500 0.125000 -2.937500 +v 0.625000 0.125000 -3.062500 +v 0.937500 0.125000 -3.062500 +v -0.937500 0.062500 -2.937500 +v -0.625000 0.062500 -2.937500 +v -0.937500 0.062500 -3.062500 +v -0.625000 0.062500 -3.062500 +v -0.937500 0.125000 -2.937500 +v -0.625000 0.125000 -2.937500 +v -0.937500 0.125000 -3.062500 +v -0.625000 0.125000 -3.062500 +v 0.625000 0.062500 -3.937500 +v 0.937500 0.062500 -3.937500 +v 0.625000 0.062500 -4.062500 +v 0.937500 0.062500 -4.062500 +v 0.625000 0.125000 -3.937500 +v 0.937500 0.125000 -3.937500 +v 0.625000 0.125000 -4.062500 +v 0.937500 0.125000 -4.062500 +v -0.937500 0.062500 -3.937500 +v -0.625000 0.062500 -3.937500 +v -0.937500 0.062500 -4.062500 +v -0.625000 0.062500 -4.062500 +v -0.937500 0.125000 -3.937500 +v -0.625000 0.125000 -3.937500 +v -0.937500 0.125000 -4.062500 +v -0.625000 0.125000 -4.062500 +v 0.625000 0.062500 -4.937500 +v 0.937500 0.062500 -4.937500 +v 0.625000 0.062500 -5.062500 +v 0.937500 0.062500 -5.062500 +v 0.625000 0.125000 -4.937500 +v 0.937500 0.125000 -4.937500 +v 0.625000 0.125000 -5.062500 +v 0.937500 0.125000 -5.062500 +v -0.937500 0.062500 -4.937500 +v -0.625000 0.062500 -4.937500 +v -0.937500 0.062500 -5.062500 +v -0.625000 0.062500 -5.062500 +v -0.937500 0.125000 -4.937500 +v -0.625000 0.125000 -4.937500 +v -0.937500 0.125000 -5.062500 +v -0.625000 0.125000 -5.062500 +v 0.625000 0.062500 -5.937500 +v 0.937500 0.062500 -5.937500 +v 0.625000 0.062500 -6.062500 +v 0.937500 0.062500 -6.062500 +v 0.625000 0.125000 -5.937500 +v 0.937500 0.125000 -5.937500 +v 0.625000 0.125000 -6.062500 +v 0.937500 0.125000 -6.062500 +v -0.937500 0.062500 -5.937500 +v -0.625000 0.062500 -5.937500 +v -0.937500 0.062500 -6.062500 +v -0.625000 0.062500 -6.062500 +v -0.937500 0.125000 -5.937500 +v -0.625000 0.125000 -5.937500 +v -0.937500 0.125000 -6.062500 +v -0.625000 0.125000 -6.062500 +v 0.625000 0.062500 -6.937500 +v 0.937500 0.062500 -6.937500 +v 0.625000 0.062500 -7.062500 +v 0.937500 0.062500 -7.062500 +v 0.625000 0.125000 -6.937500 +v 0.937500 0.125000 -6.937500 +v 0.625000 0.125000 -7.062500 +v 0.937500 0.125000 -7.062500 +v -0.937500 0.062500 -6.937500 +v -0.625000 0.062500 -6.937500 +v -0.937500 0.062500 -7.062500 +v -0.625000 0.062500 -7.062500 +v -0.937500 0.125000 -6.937500 +v -0.625000 0.125000 -6.937500 +v -0.937500 0.125000 -7.062500 +v -0.625000 0.125000 -7.062500 +v -0.812500 0.062500 -6.500000 +v -0.812500 0.062500 -5.500000 +v -0.812500 0.062500 -4.500000 +v -0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -4.500000 +v 0.812500 0.062500 -5.500000 +v 0.812500 0.062500 -6.500000 +v -0.812500 0.187500 -6.500000 +v -0.812500 0.187500 -5.500000 +v -0.812500 0.187500 -4.500000 +v -0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -4.500000 +v 0.812500 0.187500 -5.500000 +v 0.812500 0.187500 -6.500000 +v 0.750000 0.062500 -3.500000 +v 0.750000 0.062500 -4.500000 +v 0.750000 0.062500 -5.500000 +v 0.750000 0.062500 -6.500000 +v 0.750000 0.187500 -3.500000 +v 0.750000 0.187500 -4.500000 +v 0.750000 0.187500 -5.500000 +v 0.750000 0.187500 -6.500000 +v -0.750000 0.062500 -6.500000 +v -0.750000 0.062500 -5.500000 +v -0.750000 0.062500 -4.500000 +v -0.750000 0.062500 -3.500000 +v -0.750000 0.187500 -6.500000 +v -0.750000 0.187500 -5.500000 +v -0.750000 0.187500 -4.500000 +v -0.750000 0.187500 -3.500000 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +v 1.725096 0.062500 1.451439 +v 1.966661 0.062500 1.649687 +v 1.645797 0.062500 1.548066 +v 1.887362 0.062500 1.746314 +v 1.756082 0.062500 1.315164 +v 1.518184 0.062500 1.605042 +v 3.064205 0.062500 2.873829 +v 3.302103 0.062500 2.583950 +v 1.756082 0.000000 1.315164 +v 3.302103 0.000000 2.583950 +v 1.518184 0.000000 1.605042 +v 3.064205 0.000000 2.873829 +v 0.504144 0.062500 3.159608 +v 0.504144 0.187500 3.159608 +v 1.855282 0.187500 4.062409 +v 1.855282 0.062500 4.062409 +v 0.556111 0.062500 3.194331 +v 0.556111 0.187500 3.194331 +v 1.803315 0.187500 4.027686 +v 1.803315 0.062500 4.027686 +v -0.217808 0.062500 4.510286 +v -0.217808 0.187500 4.510286 +v 1.283496 0.187500 5.132147 +v 1.283496 0.062500 5.132147 +v -0.160065 0.062500 4.534204 +v -0.160065 0.187500 4.534204 +v 1.225753 0.187500 5.108229 +v 1.225753 0.062500 5.108229 +v -0.662384 0.062500 5.975857 +v -0.662384 0.187500 5.975857 +v 0.931392 0.187500 6.292879 +v 0.931392 0.062500 6.292879 +v -0.601084 0.062500 5.988050 +v -0.601084 0.187500 5.988050 +v 0.870092 0.187500 6.280685 +v 0.870092 0.062500 6.280685 +v -0.812499 0.062500 7.500000 +v -0.812499 0.187500 7.500000 +v 0.812501 0.187500 7.500000 +v 0.812501 0.062500 7.500000 +v -0.749998 0.062500 7.500000 +v -0.749998 0.187500 7.500000 +v 0.750000 0.187500 7.500000 +v 0.750000 0.062500 7.500000 +v 1.376398 0.062500 2.183322 +v 1.376398 0.187500 2.183322 +v 1.324431 0.187500 2.148599 +v 1.324431 0.062500 2.148599 +v 3.495856 0.062500 2.040392 +v 3.495856 0.187500 2.040392 +v 2.144718 0.187500 1.137591 +v 2.144718 0.062500 1.137591 +v 3.443888 0.062500 2.005669 +v 3.443888 0.187500 2.005669 +v 2.196684 0.187500 1.172314 +v 2.196684 0.062500 1.172314 +v 4.217808 0.062500 0.689714 +v 4.217808 0.187500 0.689714 +v 2.716504 0.187500 0.067853 +v 2.716504 0.062500 0.067853 +v 4.160065 0.062500 0.665796 +v 4.160065 0.187500 0.665796 +v 2.774246 0.187500 0.091771 +v 2.774246 0.062500 0.091771 +v 4.662384 0.062500 -0.775857 +v 4.662384 0.187500 -0.775857 +v 3.068608 0.187500 -1.092879 +v 3.068608 0.062500 -1.092879 +v 4.601084 0.062500 -0.788050 +v 4.601084 0.187500 -0.788050 +v 3.129908 0.187500 -1.080685 +v 3.129908 0.062500 -1.080685 +v 4.812499 0.062500 -2.300000 +v 4.812499 0.187500 -2.300000 +v 3.187499 0.187500 -2.300000 +v 3.187499 0.062500 -2.300000 +v 4.749998 0.062500 -2.300000 +v 4.749998 0.187500 -2.300000 +v 3.250000 0.187500 -2.300000 +v 3.250000 0.062500 -2.300000 +v 2.932924 0.125000 2.442679 +v 3.174490 0.125000 2.640927 +v 2.853625 0.125000 2.539305 +v 3.095191 0.125000 2.737553 +v 2.623602 0.062500 3.016677 +v 2.623602 0.187500 3.016677 +v 2.675569 0.062500 3.051401 +v 2.675569 0.187500 3.051401 +v 2.932924 0.062500 2.442679 +v 3.174490 0.062500 2.640927 +v 2.853625 0.062500 2.539305 +v 3.095191 0.062500 2.737553 +v 1.725096 0.125000 1.451439 +v 1.966661 0.125000 1.649687 +v 1.645797 0.125000 1.548066 +v 1.887362 0.125000 1.746314 +v 3.000000 0.062500 -5.187500 +v 3.000000 0.062500 -4.812500 +v 5.000000 0.062500 -4.812500 +v 5.000000 0.062500 -5.187500 +v 5.000000 0.000000 -4.812500 +v 3.000000 0.000000 -4.812500 +v 5.000000 0.000000 -5.187500 +v 3.000000 0.000000 -5.187500 +v 5.000000 0.000000 -5.812500 +v 3.000000 0.000000 -5.812500 +v 5.000000 0.000000 -6.187500 +v 3.000000 0.000000 -6.187500 +v 5.000000 0.000000 -6.812500 +v 3.000000 0.000000 -6.812500 +v 5.000000 0.000000 -7.187500 +v 3.000000 0.000000 -7.187500 +v 5.000000 0.000000 -3.812500 +v 3.000000 0.000000 -3.812500 +v 5.000000 0.000000 -4.187500 +v 3.000000 0.000000 -4.187500 +v 5.000000 0.062500 -6.187500 +v 5.000000 0.062500 -5.812500 +v 3.000000 0.062500 -5.812500 +v 3.000000 0.062500 -6.187500 +v 5.000000 0.062500 -7.187500 +v 5.000000 0.062500 -6.812500 +v 3.000000 0.062500 -6.812500 +v 3.000000 0.062500 -7.187500 +v 5.000000 0.062500 -4.187500 +v 5.000000 0.062500 -3.812500 +v 3.000000 0.062500 -3.812500 +v 3.000000 0.062500 -4.187500 +v 4.812500 0.062500 -7.500000 +v 3.187500 0.062500 -7.500000 +v 4.812500 0.187500 -7.500000 +v 3.187500 0.187500 -7.500000 +v 3.250000 0.062500 -7.500000 +v 3.250000 0.187500 -7.500000 +v 4.750000 0.062500 -7.500000 +v 4.750000 0.187500 -7.500000 +v 3.375000 0.062500 -3.937500 +v 3.062500 0.062500 -3.937500 +v 3.375000 0.062500 -4.062500 +v 3.062500 0.062500 -4.062500 +v 3.375000 0.125000 -3.937500 +v 3.062500 0.125000 -3.937500 +v 3.375000 0.125000 -4.062500 +v 3.062500 0.125000 -4.062500 +v 4.937500 0.062500 -3.937500 +v 4.625000 0.062500 -3.937500 +v 4.937500 0.062500 -4.062500 +v 4.625000 0.062500 -4.062500 +v 4.937500 0.125000 -3.937500 +v 4.625000 0.125000 -3.937500 +v 4.937500 0.125000 -4.062500 +v 4.625000 0.125000 -4.062500 +v 3.375000 0.062500 -4.937500 +v 3.062500 0.062500 -4.937500 +v 3.375000 0.062500 -5.062500 +v 3.062500 0.062500 -5.062500 +v 3.375000 0.125000 -4.937500 +v 3.062500 0.125000 -4.937500 +v 3.375000 0.125000 -5.062500 +v 3.062500 0.125000 -5.062500 +v 4.937500 0.062500 -4.937500 +v 4.625000 0.062500 -4.937500 +v 4.937500 0.062500 -5.062500 +v 4.625000 0.062500 -5.062500 +v 4.937500 0.125000 -4.937500 +v 4.625000 0.125000 -4.937500 +v 4.937500 0.125000 -5.062500 +v 4.625000 0.125000 -5.062500 +v 3.375000 0.062500 -5.937500 +v 3.062500 0.062500 -5.937500 +v 3.375000 0.062500 -6.062500 +v 3.062500 0.062500 -6.062500 +v 3.375000 0.125000 -5.937500 +v 3.062500 0.125000 -5.937500 +v 3.375000 0.125000 -6.062500 +v 3.062500 0.125000 -6.062500 +v 4.937500 0.062500 -5.937500 +v 4.625000 0.062500 -5.937500 +v 4.937500 0.062500 -6.062500 +v 4.625000 0.062500 -6.062500 +v 4.937500 0.125000 -5.937500 +v 4.625000 0.125000 -5.937500 +v 4.937500 0.125000 -6.062500 +v 4.625000 0.125000 -6.062500 +v 3.375000 0.062500 -6.937500 +v 3.062500 0.062500 -6.937500 +v 3.375000 0.062500 -7.062500 +v 3.062500 0.062500 -7.062500 +v 3.375000 0.125000 -6.937500 +v 3.062500 0.125000 -6.937500 +v 3.375000 0.125000 -7.062500 +v 3.062500 0.125000 -7.062500 +v 4.937500 0.062500 -6.937500 +v 4.625000 0.062500 -6.937500 +v 4.937500 0.062500 -7.062500 +v 4.625000 0.062500 -7.062500 +v 4.937500 0.125000 -6.937500 +v 4.625000 0.125000 -6.937500 +v 4.937500 0.125000 -7.062500 +v 4.625000 0.125000 -7.062500 +v 4.812500 0.062500 -6.500000 +v 4.812500 0.062500 -5.500000 +v 4.812500 0.062500 -4.500000 +v 4.812500 0.062500 -3.500000 +v 3.187500 0.062500 -3.500000 +v 3.187500 0.062500 -4.500000 +v 3.187500 0.062500 -5.500000 +v 3.187500 0.062500 -6.500000 +v 4.812500 0.187500 -6.500000 +v 4.812500 0.187500 -5.500000 +v 4.812500 0.187500 -4.500000 +v 4.812500 0.187500 -3.500000 +v 3.187500 0.187500 -3.500000 +v 3.187500 0.187500 -4.500000 +v 3.187500 0.187500 -5.500000 +v 3.187500 0.187500 -6.500000 +v 3.250000 0.062500 -3.500000 +v 3.250000 0.062500 -4.500000 +v 3.250000 0.062500 -5.500000 +v 3.250000 0.062500 -6.500000 +v 3.250000 0.187500 -3.500000 +v 3.250000 0.187500 -4.500000 +v 3.250000 0.187500 -5.500000 +v 3.250000 0.187500 -6.500000 +v 4.750000 0.062500 -6.500000 +v 4.750000 0.062500 -5.500000 +v 4.750000 0.062500 -4.500000 +v 4.750000 0.062500 -3.500000 +v 4.750000 0.187500 -6.500000 +v 4.750000 0.187500 -5.500000 +v 4.750000 0.187500 -4.500000 +v 4.750000 0.187500 -3.500000 +v 2.346383 0.062500 0.486832 +v 2.621983 0.062500 0.634143 +v 2.287458 0.062500 0.597072 +v 2.563059 0.062500 0.744383 +v 2.350187 0.062500 0.347129 +v 2.173414 0.062500 0.677850 +v 3.937256 0.062500 1.620643 +v 4.114030 0.062500 1.289923 +v 2.350187 0.000000 0.347129 +v 4.114030 0.000000 1.289923 +v 2.173414 0.000000 0.677850 +v 3.937256 0.000000 1.620643 +v 3.724385 0.125000 1.223389 +v 3.999985 0.125000 1.370701 +v 3.665460 0.125000 1.333629 +v 3.941061 0.125000 1.480941 +v 3.724385 0.062500 1.223389 +v 3.999985 0.062500 1.370701 +v 3.665460 0.062500 1.333629 +v 3.941061 0.062500 1.480941 +v 2.346383 0.125000 0.486832 +v 2.621983 0.125000 0.634143 +v 2.287458 0.125000 0.597072 +v 2.563059 0.125000 0.744383 +v 2.787336 0.062500 -0.609743 +v 3.086380 0.062500 -0.519029 +v 2.751051 0.062500 -0.490125 +v 3.050095 0.062500 -0.399411 +v 2.763813 0.062500 -0.747503 +v 2.654956 0.062500 -0.388651 +v 4.568837 0.062500 0.191919 +v 4.677694 0.062500 -0.166934 +v 2.763813 0.000000 -0.747503 +v 4.677694 0.000000 -0.166934 +v 2.654956 0.000000 -0.388651 +v 4.568837 0.000000 0.191919 +v 4.282555 0.125000 -0.156173 +v 4.581599 0.125000 -0.065459 +v 4.246270 0.125000 -0.036556 +v 4.545314 0.125000 0.054159 +v 4.282555 0.062500 -0.156173 +v 4.581599 0.062500 -0.065459 +v 4.246270 0.062500 -0.036556 +v 4.545314 0.062500 0.054159 +v 2.787336 0.125000 -0.609743 +v 3.086380 0.125000 -0.519029 +v 2.751051 0.125000 -0.490125 +v 3.050095 0.125000 -0.399411 +v 3.005888 0.062500 -1.771274 +v 3.316883 0.062500 -1.740644 +v 2.993635 0.062500 -1.646876 +v 3.304631 0.062500 -1.616246 +v 2.955941 0.062500 -1.901798 +v 2.919184 0.062500 -1.528604 +v 4.909554 0.062500 -1.332570 +v 4.946310 0.062500 -1.705764 +v 2.955941 0.000000 -1.901798 +v 4.946310 0.000000 -1.705764 +v 2.919184 0.000000 -1.528604 +v 4.909554 0.000000 -1.332570 +v 4.560863 0.125000 -1.618122 +v 4.871859 0.125000 -1.587492 +v 4.548611 0.125000 -1.493724 +v 4.859607 0.125000 -1.463094 +v 4.560863 0.062500 -1.618122 +v 4.871859 0.062500 -1.587492 +v 4.548611 0.062500 -1.493724 +v 4.859607 0.062500 -1.463094 +v 3.005888 0.125000 -1.771274 +v 3.316883 0.125000 -1.740644 +v 2.993635 0.125000 -1.646876 +v 3.304631 0.125000 -1.616246 +v 0.904809 0.062500 2.462447 +v 1.146375 0.062500 2.660695 +v 0.825510 0.062500 2.559073 +v 1.067076 0.062500 2.757321 +v 0.935795 0.062500 2.326171 +v 0.697898 0.062500 2.616050 +v 2.243919 0.062500 3.884836 +v 2.481816 0.062500 3.594958 +v 0.935795 0.000000 2.326171 +v 2.481816 0.000000 3.594958 +v 0.697898 0.000000 2.616050 +v 2.243919 0.000000 3.884836 +v 2.112638 0.125000 3.453686 +v 2.354204 0.125000 3.651934 +v 2.033339 0.125000 3.550313 +v 2.274905 0.125000 3.748561 +v 2.112638 0.062500 3.453686 +v 2.354204 0.062500 3.651934 +v 2.033339 0.062500 3.550313 +v 2.274905 0.062500 3.748561 +v 0.904809 0.125000 2.462447 +v 1.146375 0.125000 2.660695 +v 0.825510 0.125000 2.559073 +v 1.067076 0.125000 2.757321 +v 5.000000 0.000000 -2.812500 +v 3.000000 0.000000 -2.812500 +v 5.000000 0.000000 -3.187500 +v 3.000000 0.000000 -3.187500 +v 5.000000 0.062500 -3.187500 +v 5.000000 0.062500 -2.812500 +v 3.000000 0.062500 -2.812500 +v 3.000000 0.062500 -3.187500 +v 3.375000 0.062500 -2.937500 +v 3.062500 0.062500 -2.937500 +v 3.375000 0.062500 -3.062500 +v 3.062500 0.062500 -3.062500 +v 3.375000 0.125000 -2.937500 +v 3.062500 0.125000 -2.937500 +v 3.375000 0.125000 -3.062500 +v 3.062500 0.125000 -3.062500 +v 4.937500 0.062500 -2.937500 +v 4.625000 0.062500 -2.937500 +v 4.937500 0.062500 -3.062500 +v 4.625000 0.062500 -3.062500 +v 4.937500 0.125000 -2.937500 +v 4.625000 0.125000 -2.937500 +v 4.937500 0.125000 -3.062500 +v 4.625000 0.125000 -3.062500 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.000000 +vt 0.218750 1.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.593750 0.125000 +vt 0.437500 0.062500 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.000000 +vt 0.218750 1.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 -0.000000 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.531250 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.406250 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.187500 0.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.406250 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.187500 0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7765 0.0000 -0.6301 +vn -0.8819 0.0000 -0.4714 +vn 0.7730 0.0000 0.6344 +vn -0.6344 0.0000 0.7730 +vn -0.9569 0.0000 -0.2903 +vn 0.9569 0.0000 0.2903 +vn 0.8819 0.0000 0.4714 +vn 0.9952 0.0000 0.0980 +vn -0.9952 0.0000 -0.0980 +vn 0.7765 0.0000 0.6301 +vn -0.7730 0.0000 -0.6344 +vn 0.6344 0.0000 -0.7730 +vn -0.4714 0.0000 0.8819 +vn 0.4714 0.0000 -0.8819 +vn -0.2903 0.0000 0.9569 +vn 0.2903 0.0000 -0.9569 +vn -0.0980 0.0000 0.9952 +vn 0.0980 0.0000 -0.9952 +s off +f 34/85/13 36/86/13 35/87/13 +f 39/88/14 38/89/14 37/90/14 +f 43/91/14 42/92/14 41/93/14 +f 47/94/14 46/95/14 45/96/14 +f 51/97/14 50/98/14 49/99/14 +f 55/100/14 54/101/14 53/102/14 +f 59/103/13 57/104/13 58/105/13 +f 63/106/13 61/107/13 62/108/13 +f 67/109/13 65/110/13 66/111/13 +f 71/112/13 69/113/13 70/114/13 +f 49/115/15 65/116/15 51/117/15 +f 42/118/16 58/119/16 41/120/16 +f 50/121/16 66/122/16 49/123/16 +f 44/124/17 59/125/17 42/92/17 +f 52/126/17 67/127/17 50/98/17 +f 43/91/18 60/128/18 44/129/18 +f 37/130/15 36/131/15 39/132/15 +f 51/97/18 68/133/18 52/134/18 +f 45/135/15 61/136/15 47/137/15 +f 38/138/16 35/139/16 37/140/16 +f 53/141/15 69/142/15 55/143/15 +f 46/144/16 62/145/16 45/146/16 +f 40/147/17 34/148/17 38/89/17 +f 54/149/16 70/150/16 53/151/16 +f 48/152/17 63/153/17 46/95/17 +f 39/88/18 33/154/18 40/155/18 +f 56/156/17 71/157/17 54/101/17 +f 47/94/18 64/158/18 48/159/18 +f 41/160/15 57/161/15 43/162/15 +f 55/100/18 72/163/18 56/164/18 +f 181/165/17 74/166/17 173/167/17 +f 177/168/15 75/169/15 169/170/15 +f 81/171/15 189/172/15 185/173/15 +f 78/174/16 81/175/16 74/176/16 +f 80/177/13 192/178/13 184/179/13 +f 74/166/14 185/180/14 173/167/14 +f 75/181/14 516/182/14 85/183/14 +f 85/183/17 197/184/17 193/185/17 +f 77/186/13 200/187/13 180/188/13 +f 75/181/14 193/185/14 169/189/14 +f 79/190/15 492/191/15 75/169/15 +f 73/192/16 88/193/16 77/194/16 +f 93/195/15 91/196/15 89/197/15 +f 95/198/18 92/199/18 91/200/18 +f 94/201/16 89/202/16 90/203/16 +f 96/204/17 90/205/17 92/206/17 +f 93/195/13 96/204/13 95/198/13 +f 101/207/15 99/208/15 97/209/15 +f 103/210/18 100/211/18 99/212/18 +f 102/213/16 97/214/16 98/215/16 +f 104/216/17 98/217/17 100/218/17 +f 101/207/13 104/216/13 103/210/13 +f 109/219/15 107/220/15 105/221/15 +f 111/222/18 108/223/18 107/224/18 +f 110/225/16 105/226/16 106/227/16 +f 112/228/17 106/229/17 108/230/17 +f 109/219/13 112/228/13 111/222/13 +f 117/231/15 115/232/15 113/233/15 +f 119/234/18 116/235/18 115/236/18 +f 118/237/16 113/238/16 114/239/16 +f 120/240/17 114/241/17 116/242/17 +f 117/231/13 120/240/13 119/234/13 +f 125/243/15 123/244/15 121/245/15 +f 127/246/18 124/247/18 123/248/18 +f 126/249/16 121/250/16 122/251/16 +f 128/252/17 122/253/17 124/254/17 +f 125/243/13 128/252/13 127/246/13 +f 133/255/15 131/256/15 129/257/15 +f 135/258/18 132/259/18 131/260/18 +f 134/261/16 129/262/16 130/263/16 +f 136/264/17 130/265/17 132/266/17 +f 133/255/13 136/264/13 135/258/13 +f 141/267/15 139/268/15 137/269/15 +f 143/270/18 140/271/18 139/272/18 +f 142/273/16 137/274/16 138/275/16 +f 144/276/17 138/277/17 140/278/17 +f 141/267/13 144/276/13 143/270/13 +f 149/279/15 147/280/15 145/281/15 +f 151/282/18 148/283/18 147/284/18 +f 150/285/16 145/286/16 146/287/16 +f 152/288/17 146/289/17 148/290/17 +f 149/279/13 152/288/13 151/282/13 +f 157/291/15 155/292/15 153/293/15 +f 159/294/18 156/295/18 155/296/18 +f 158/297/16 153/298/16 154/299/16 +f 160/300/17 154/301/17 156/302/17 +f 157/291/13 160/300/13 159/294/13 +f 165/303/15 163/304/15 161/305/15 +f 167/306/18 164/307/18 163/308/18 +f 166/309/16 161/310/16 162/311/16 +f 168/312/17 162/313/17 164/314/17 +f 165/303/13 168/312/13 167/306/13 +f 172/315/14 86/316/14 73/317/14 +f 171/318/14 196/319/14 172/320/14 +f 170/321/14 195/322/14 171/323/14 +f 169/324/14 194/325/14 170/326/14 +f 177/168/13 87/327/13 79/190/13 +f 178/328/13 197/329/13 177/330/13 +f 179/331/13 198/332/13 178/333/13 +f 180/334/13 199/335/13 179/336/13 +f 196/337/17 88/338/17 86/316/17 +f 195/339/17 200/340/17 196/319/17 +f 194/341/17 199/342/17 195/322/17 +f 193/343/17 198/344/17 194/325/17 +f 176/345/14 82/346/14 76/347/14 +f 175/348/14 188/349/14 176/350/14 +f 174/351/14 187/352/14 175/353/14 +f 173/354/14 186/355/14 174/356/14 +f 181/165/13 83/357/13 78/358/13 +f 182/359/13 189/360/13 181/361/13 +f 183/362/13 190/363/13 182/364/13 +f 184/365/13 191/366/13 183/367/13 +f 188/368/15 84/369/15 82/370/15 +f 187/371/15 192/372/15 188/373/15 +f 186/374/15 191/375/15 187/376/15 +f 185/377/15 190/378/15 186/379/15 +f 77/186/15 172/380/15 73/381/15 +f 180/334/15 171/382/15 172/383/15 +f 179/331/15 170/384/15 171/385/15 +f 178/328/15 169/386/15 170/387/15 +f 80/177/17 176/345/17 76/347/17 +f 184/365/17 175/348/17 176/350/17 +f 183/362/17 174/351/17 175/353/17 +f 182/359/17 173/354/17 174/356/17 +f 202/388/13 204/389/13 203/390/13 +f 207/391/14 206/392/14 205/393/14 +f 211/394/14 210/395/14 209/396/14 +f 215/397/14 214/398/14 213/399/14 +f 219/400/14 218/401/14 217/402/14 +f 223/403/14 222/404/14 221/405/14 +f 227/406/13 225/407/13 226/408/13 +f 231/409/13 229/410/13 230/411/13 +f 235/412/13 233/413/13 234/414/13 +f 239/415/13 237/416/13 238/417/13 +f 217/418/15 233/419/15 219/420/15 +f 210/421/16 226/422/16 209/423/16 +f 218/424/16 234/425/16 217/426/16 +f 212/427/17 227/428/17 210/395/17 +f 220/429/17 235/430/17 218/401/17 +f 211/394/18 228/431/18 212/432/18 +f 205/433/15 204/434/15 207/435/15 +f 219/400/18 236/436/18 220/437/18 +f 213/438/15 229/439/15 215/440/15 +f 206/441/16 203/442/16 205/443/16 +f 221/444/15 237/445/15 223/446/15 +f 214/447/16 230/448/16 213/449/16 +f 208/450/17 202/451/17 206/392/17 +f 222/452/16 238/453/16 221/454/16 +f 216/455/17 231/456/17 214/398/17 +f 207/391/18 201/457/18 208/458/18 +f 224/459/17 239/460/17 222/404/17 +f 215/397/18 232/461/18 216/462/18 +f 209/463/15 225/464/15 211/465/15 +f 223/403/18 240/466/18 224/467/18 +f 349/468/17 242/469/17 341/470/17 +f 345/471/15 243/472/15 337/473/15 +f 249/474/15 357/475/15 353/476/15 +f 520/477/13 79/190/13 87/327/13 +f 248/478/13 360/479/13 352/480/13 +f 242/469/14 353/481/14 341/470/14 +f 244/482/18 252/483/18 248/484/18 +f 253/485/17 365/486/17 361/487/17 +f 245/488/13 368/489/13 348/490/13 +f 243/491/14 361/487/14 337/492/14 +f 247/493/18 253/494/18 243/495/18 +f 85/183/17 520/477/17 87/327/17 +f 261/496/15 259/497/15 257/498/15 +f 263/499/18 260/500/18 259/501/18 +f 262/502/16 257/503/16 258/504/16 +f 264/505/17 258/506/17 260/507/17 +f 261/496/13 264/505/13 263/499/13 +f 269/508/15 267/509/15 265/510/15 +f 271/511/18 268/512/18 267/513/18 +f 270/514/16 265/515/16 266/516/16 +f 272/517/17 266/518/17 268/519/17 +f 269/508/13 272/517/13 271/511/13 +f 277/520/15 275/521/15 273/522/15 +f 279/523/18 276/524/18 275/525/18 +f 278/526/16 273/527/16 274/528/16 +f 280/529/17 274/530/17 276/531/17 +f 277/520/13 280/529/13 279/523/13 +f 285/532/15 283/533/15 281/534/15 +f 287/535/18 284/536/18 283/537/18 +f 286/538/16 281/539/16 282/540/16 +f 288/541/17 282/542/17 284/543/17 +f 285/532/13 288/541/13 287/535/13 +f 293/544/15 291/545/15 289/546/15 +f 295/547/18 292/548/18 291/549/18 +f 294/550/16 289/551/16 290/552/16 +f 296/553/17 290/554/17 292/555/17 +f 293/544/13 296/553/13 295/547/13 +f 301/556/15 299/557/15 297/558/15 +f 303/559/18 300/560/18 299/561/18 +f 302/562/16 297/563/16 298/564/16 +f 304/565/17 298/566/17 300/567/17 +f 301/556/13 304/565/13 303/559/13 +f 309/568/15 307/569/15 305/570/15 +f 311/571/18 308/572/18 307/573/18 +f 310/574/16 305/575/16 306/576/16 +f 312/577/17 306/578/17 308/579/17 +f 309/568/13 312/577/13 311/571/13 +f 317/580/15 315/581/15 313/582/15 +f 319/583/18 316/584/18 315/585/18 +f 318/586/16 313/587/16 314/588/16 +f 320/589/17 314/590/17 316/591/17 +f 317/580/13 320/589/13 319/583/13 +f 325/592/15 323/593/15 321/594/15 +f 327/595/18 324/596/18 323/597/18 +f 326/598/16 321/599/16 322/600/16 +f 328/601/17 322/602/17 324/603/17 +f 325/592/13 328/601/13 327/595/13 +f 333/604/15 331/605/15 329/606/15 +f 335/607/18 332/608/18 331/609/18 +f 334/610/16 329/611/16 330/612/16 +f 336/613/17 330/614/17 332/615/17 +f 333/604/13 336/613/13 335/607/13 +f 340/616/14 254/617/14 241/618/14 +f 339/619/14 364/620/14 340/621/14 +f 338/622/14 363/623/14 339/624/14 +f 337/625/14 362/626/14 338/627/14 +f 345/471/13 255/628/13 247/629/13 +f 346/630/13 365/631/13 345/632/13 +f 347/633/13 366/634/13 346/635/13 +f 348/636/13 367/637/13 347/638/13 +f 364/639/17 256/640/17 254/617/17 +f 363/641/17 368/642/17 364/620/17 +f 362/643/17 367/644/17 363/623/17 +f 361/645/17 366/646/17 362/626/17 +f 344/647/14 250/648/14 244/649/14 +f 343/650/14 356/651/14 344/652/14 +f 342/653/14 355/654/14 343/655/14 +f 341/656/14 354/657/14 342/658/14 +f 349/468/13 251/659/13 246/660/13 +f 350/661/13 357/662/13 349/663/13 +f 351/664/13 358/665/13 350/666/13 +f 352/667/13 359/668/13 351/669/13 +f 356/670/15 252/671/15 250/672/15 +f 355/673/15 360/674/15 356/675/15 +f 354/676/15 359/677/15 355/678/15 +f 353/679/15 358/680/15 354/681/15 +f 245/488/15 340/682/15 241/683/15 +f 348/636/15 339/684/15 340/685/15 +f 347/633/15 338/686/15 339/687/15 +f 346/630/15 337/688/15 338/689/15 +f 248/478/17 344/647/17 244/649/17 +f 352/667/17 343/650/17 344/652/17 +f 351/664/17 342/653/17 343/655/17 +f 350/661/17 341/656/17 342/658/17 +f 370/690/13 372/691/13 371/692/13 +f 375/693/14 374/694/14 373/695/14 +f 379/696/14 378/697/14 377/698/14 +f 383/699/14 382/700/14 381/701/14 +f 387/702/14 386/703/14 385/704/14 +f 391/705/14 390/706/14 389/707/14 +f 395/708/13 393/709/13 394/710/13 +f 399/711/13 397/712/13 398/713/13 +f 403/714/13 401/715/13 402/716/13 +f 407/717/13 405/718/13 406/719/13 +f 385/720/15 401/721/15 387/722/15 +f 378/723/16 394/724/16 377/725/16 +f 386/726/16 402/727/16 385/728/16 +f 380/729/17 395/730/17 378/697/17 +f 388/731/17 403/732/17 386/703/17 +f 379/696/18 396/733/18 380/734/18 +f 373/735/15 372/736/15 375/737/15 +f 387/702/18 404/738/18 388/739/18 +f 381/740/15 397/741/15 383/742/15 +f 374/743/16 371/744/16 373/745/16 +f 389/746/15 405/747/15 391/748/15 +f 382/749/16 398/750/16 381/751/16 +f 376/752/17 370/753/17 374/694/17 +f 390/754/16 406/755/16 389/756/16 +f 384/757/17 399/758/17 382/700/17 +f 375/693/18 369/759/18 376/760/18 +f 392/761/17 407/762/17 390/706/17 +f 383/699/18 400/763/18 384/764/18 +f 377/765/15 393/766/15 379/767/15 +f 391/705/18 408/768/18 392/769/18 +f 413/770/15 411/771/15 409/772/15 +f 415/773/18 412/774/18 411/775/18 +f 414/776/16 409/777/16 410/778/16 +f 416/779/17 410/780/17 412/781/17 +f 413/770/13 416/779/13 415/773/13 +f 421/782/15 419/783/15 417/784/15 +f 423/785/18 420/786/18 419/787/18 +f 422/788/16 417/789/16 418/790/16 +f 424/791/17 418/792/17 420/793/17 +f 421/782/13 424/791/13 423/785/13 +f 429/794/15 427/795/15 425/796/15 +f 431/797/18 428/798/18 427/799/18 +f 430/800/16 425/801/16 426/802/16 +f 432/803/17 426/804/17 428/805/17 +f 429/794/13 432/803/13 431/797/13 +f 437/806/15 435/807/15 433/808/15 +f 439/809/18 436/810/18 435/811/18 +f 438/812/16 433/813/16 434/814/16 +f 440/815/17 434/816/17 436/817/17 +f 437/806/13 440/815/13 439/809/13 +f 445/818/15 443/819/15 441/820/15 +f 447/821/18 444/822/18 443/823/18 +f 446/824/16 441/825/16 442/826/16 +f 448/827/17 442/828/17 444/829/17 +f 445/818/13 448/827/13 447/821/13 +f 453/830/15 451/831/15 449/832/15 +f 455/833/18 452/834/18 451/835/18 +f 454/836/16 449/837/16 450/838/16 +f 456/839/17 450/840/17 452/841/17 +f 453/830/13 456/839/13 455/833/13 +f 461/842/15 459/843/15 457/844/15 +f 463/845/18 460/846/18 459/847/18 +f 462/848/16 457/849/16 458/850/16 +f 464/851/17 458/852/17 460/853/17 +f 461/842/13 464/851/13 463/845/13 +f 469/854/15 467/855/15 465/856/15 +f 471/857/18 468/858/18 467/859/18 +f 470/860/16 465/861/16 466/862/16 +f 472/863/17 466/864/17 468/865/17 +f 469/854/13 472/863/13 471/857/13 +f 477/866/15 475/867/15 473/868/15 +f 479/869/18 476/870/18 475/871/18 +f 478/872/16 473/873/16 474/874/16 +f 480/875/17 474/876/17 476/877/17 +f 477/866/13 480/875/13 479/869/13 +f 485/878/15 483/879/15 481/880/15 +f 487/881/18 484/882/18 483/883/18 +f 486/884/16 481/885/16 482/886/16 +f 488/887/17 482/888/17 484/889/17 +f 485/878/13 488/887/13 487/881/13 +f 491/890/14 516/182/14 492/891/14 +f 490/892/14 515/893/14 491/894/14 +f 489/895/14 514/896/14 490/897/14 +f 498/898/13 517/899/13 497/900/13 +f 499/901/13 518/902/13 498/903/13 +f 500/904/13 519/905/13 499/906/13 +f 515/907/17 520/477/17 516/182/17 +f 514/908/17 519/909/17 515/893/17 +f 513/910/17 518/911/17 514/896/17 +f 495/912/14 508/913/14 496/914/14 +f 494/915/14 507/916/14 495/917/14 +f 493/918/14 506/919/14 494/920/14 +f 502/921/13 509/922/13 501/923/13 +f 503/924/13 510/925/13 502/926/13 +f 504/927/13 511/928/13 503/929/13 +f 507/930/15 512/931/15 508/932/15 +f 506/933/15 511/934/15 507/935/15 +f 505/936/15 510/937/15 506/938/15 +f 500/904/15 491/939/15 492/191/15 +f 499/901/15 490/940/15 491/941/15 +f 498/898/15 489/942/15 490/943/15 +f 504/927/17 495/912/17 496/914/17 +f 503/924/17 494/915/17 495/917/17 +f 502/921/17 493/918/17 494/920/17 +f 493/918/17 80/177/17 76/347/17 +f 80/177/13 509/922/13 84/369/13 +f 509/922/15 82/370/15 84/369/15 +f 505/944/14 76/347/14 82/346/14 +f 517/899/17 254/617/17 256/640/17 +f 245/488/13 517/899/13 256/640/13 +f 489/942/15 245/488/15 241/683/15 +f 513/910/14 241/618/14 254/617/14 +f 246/660/17 496/914/17 242/469/17 +f 512/931/13 246/660/13 251/659/13 +f 249/474/15 512/931/15 251/659/15 +f 242/469/14 508/913/14 249/945/14 +f 568/946/19 571/947/19 572/948/19 +f 539/949/19 605/950/19 540/951/19 +f 574/952/19 605/953/19 606/954/19 +f 548/955/20 539/956/20 540/957/20 +f 536/958/14 548/955/14 540/957/14 +f 531/959/14 530/960/14 532/961/14 +f 537/962/14 568/963/14 565/964/14 +f 528/965/21 532/966/21 530/967/21 +f 568/963/19 534/968/19 567/969/19 +f 524/970/22 615/971/22 523/972/22 +f 571/947/13 566/973/13 575/974/13 +f 567/969/13 538/975/13 566/976/13 +f 522/977/21 616/978/21 524/979/21 +f 549/980/23 542/981/23 541/982/23 +f 554/983/24 545/984/24 546/985/24 +f 534/986/13 546/987/13 538/988/13 +f 543/989/25 536/990/25 535/991/25 +f 539/956/13 543/989/13 535/991/13 +f 545/992/14 533/993/14 537/994/14 +f 546/987/25 537/995/25 538/988/25 +f 541/996/20 534/986/20 533/993/20 +f 561/997/14 549/998/14 553/999/14 +f 563/1000/13 551/1001/13 555/1002/13 +f 544/1003/14 556/1004/14 548/1005/14 +f 556/1004/23 547/1006/23 548/1005/23 +f 542/981/13 554/983/13 546/985/13 +f 551/1007/24 544/1008/24 543/1009/24 +f 555/1010/13 543/1009/13 547/1006/13 +f 553/1011/14 541/982/14 545/1012/14 +f 562/1013/26 553/1014/26 554/1015/26 +f 557/1016/27 550/1017/27 549/998/27 +f 552/1018/14 564/1019/14 556/1020/14 +f 564/1019/27 555/1002/27 556/1020/27 +f 550/1017/13 562/1013/13 554/1015/13 +f 559/1021/26 552/1022/26 551/1001/26 +f 535/1023/13 606/1024/13 539/949/13 +f 584/1025/25 575/1026/25 576/1027/25 +f 572/1028/14 584/1029/14 576/1030/14 +f 566/973/28 576/1031/28 575/974/28 +f 566/976/28 537/1032/28 565/1033/28 +f 526/1034/29 529/1035/29 531/1036/29 +f 565/1037/14 572/948/14 576/1038/14 +f 528/1039/13 526/1040/13 527/1041/13 +f 521/1042/30 614/1043/30 522/1044/30 +f 525/1045/30 530/960/30 529/1046/30 +f 527/1047/22 531/1048/22 532/1049/22 +f 585/1050/24 578/1051/24 577/1052/24 +f 590/1053/23 581/1054/23 582/1055/23 +f 570/1056/13 582/1057/13 574/1058/13 +f 579/1059/20 572/1028/20 571/1060/20 +f 583/1061/13 571/1060/13 575/1026/13 +f 581/1062/14 569/1063/14 573/1064/14 +f 582/1057/20 573/1064/20 574/1058/20 +f 577/1065/25 570/1056/25 569/1066/25 +f 589/1067/14 593/1068/14 585/1069/14 +f 599/1070/13 587/1071/13 591/1072/13 +f 580/1073/14 592/1074/14 584/1075/14 +f 592/1076/24 583/1077/24 584/1078/24 +f 578/1051/13 590/1053/13 582/1055/13 +f 587/1079/23 580/1073/23 579/1080/23 +f 591/1081/13 579/1080/13 583/1077/13 +f 589/1082/14 577/1083/14 581/1054/14 +f 598/1084/27 589/1067/27 590/1085/27 +f 593/1086/26 586/1087/26 585/1088/26 +f 588/1089/14 600/1090/14 592/1091/14 +f 600/1092/26 591/1072/26 592/1093/26 +f 594/1094/13 590/1085/13 586/1087/13 +f 595/1095/27 588/1089/27 587/1071/27 +f 607/1096/28 570/1097/28 608/1098/28 +f 602/1099/13 603/1100/13 604/1101/13 +f 608/1098/13 574/952/13 606/954/13 +f 611/1102/29 601/1103/29 609/1104/29 +f 612/1105/22 603/1100/22 611/1106/22 +f 609/1107/30 602/1099/30 610/1108/30 +f 536/1109/14 605/950/14 607/1110/14 +f 610/1111/21 604/1101/21 612/1112/21 +f 607/1113/14 573/1114/14 569/1115/14 +f 614/1043/13 615/971/13 616/978/13 +f 523/1116/29 613/1117/29 521/1118/29 +f 620/1119/13 618/1120/13 619/1121/13 +f 622/1122/14 623/1123/14 621/1124/14 +f 626/1125/14 627/1126/14 625/1127/14 +f 630/1128/14 631/1129/14 629/1130/14 +f 634/1131/14 635/1132/14 633/1133/14 +f 637/1134/13 639/1135/13 638/1136/13 +f 641/1137/13 643/1138/13 642/1139/13 +f 645/1140/13 647/1141/13 646/1142/13 +f 638/1143/16 626/1144/16 625/1145/16 +f 639/1146/15 628/1147/15 626/1148/15 +f 640/1149/18 627/1126/18 628/1150/18 +f 620/1151/17 621/1152/17 623/1153/17 +f 641/1154/17 629/1155/17 631/1156/17 +f 619/1157/16 622/1158/16 621/1159/16 +f 645/1160/17 633/1161/17 635/1162/17 +f 642/1163/16 630/1164/16 629/1165/16 +f 618/1166/15 624/1167/15 622/1168/15 +f 646/1169/16 634/1170/16 633/1171/16 +f 643/1172/15 632/1173/15 630/1174/15 +f 617/1175/18 623/1123/18 624/1176/18 +f 647/1177/15 636/1178/15 634/1179/15 +f 644/1180/18 631/1129/18 632/1181/18 +f 637/1182/17 625/1183/17 627/1184/17 +f 648/1185/18 635/1132/18 636/1186/18 +f 649/1187/17 729/1188/17 721/1189/17 +f 744/1190/13 652/1191/13 736/1192/13 +f 654/1193/18 650/1194/18 652/1195/18 +f 749/1196/15 655/1197/15 745/1198/15 +f 745/1198/14 649/1199/14 721/1200/14 +f 655/1201/18 651/1202/18 649/1203/18 +f 659/1204/17 661/1205/17 657/1206/17 +f 660/1207/18 663/1208/18 659/1209/18 +f 657/1210/16 662/1211/16 658/1212/16 +f 658/1213/15 664/1214/15 660/1215/15 +f 664/1214/13 661/1205/13 663/1208/13 +f 667/1216/17 669/1217/17 665/1218/17 +f 668/1219/18 671/1220/18 667/1221/18 +f 665/1222/16 670/1223/16 666/1224/16 +f 666/1225/15 672/1226/15 668/1227/15 +f 672/1226/13 669/1217/13 671/1220/13 +f 675/1228/17 677/1229/17 673/1230/17 +f 676/1231/18 679/1232/18 675/1233/18 +f 673/1234/16 678/1235/16 674/1236/16 +f 674/1237/15 680/1238/15 676/1239/15 +f 680/1238/13 677/1229/13 679/1232/13 +f 683/1240/17 685/1241/17 681/1242/17 +f 684/1243/18 687/1244/18 683/1245/18 +f 681/1246/16 686/1247/16 682/1248/16 +f 682/1249/15 688/1250/15 684/1251/15 +f 688/1250/13 685/1241/13 687/1244/13 +f 691/1252/17 693/1253/17 689/1254/17 +f 692/1255/18 695/1256/18 691/1257/18 +f 689/1258/16 694/1259/16 690/1260/16 +f 690/1261/15 696/1262/15 692/1263/15 +f 696/1262/13 693/1253/13 695/1256/13 +f 699/1264/17 701/1265/17 697/1266/17 +f 700/1267/18 703/1268/18 699/1269/18 +f 697/1270/16 702/1271/16 698/1272/16 +f 698/1273/15 704/1274/15 700/1275/15 +f 704/1274/13 701/1265/13 703/1268/13 +f 707/1276/17 709/1277/17 705/1278/17 +f 708/1279/18 711/1280/18 707/1281/18 +f 705/1282/16 710/1283/16 706/1284/16 +f 706/1285/15 712/1286/15 708/1287/15 +f 712/1286/13 709/1277/13 711/1280/13 +f 715/1288/17 717/1289/17 713/1290/17 +f 716/1291/18 719/1292/18 715/1293/18 +f 713/1294/16 718/1295/16 714/1296/16 +f 714/1297/15 720/1298/15 716/1299/15 +f 720/1298/13 717/1289/13 719/1292/13 +f 748/1300/14 723/1301/14 724/1302/14 +f 747/1303/14 722/1304/14 723/1305/14 +f 746/1306/14 721/1307/14 722/1308/14 +f 656/1309/13 729/1188/13 651/1310/13 +f 749/1311/13 730/1312/13 729/1313/13 +f 750/1314/13 731/1315/13 730/1316/13 +f 751/1317/13 732/1318/13 731/1319/13 +f 752/1320/15 747/1321/15 748/1300/15 +f 751/1322/15 746/1323/15 747/1303/15 +f 750/1324/15 745/1325/15 746/1306/15 +f 653/1326/14 728/1327/14 650/1328/14 +f 740/1329/14 727/1330/14 728/1331/14 +f 739/1332/14 726/1333/14 727/1334/14 +f 738/1335/14 725/1336/14 726/1337/14 +f 741/1338/13 734/1339/13 733/1340/13 +f 742/1341/13 735/1342/13 734/1343/13 +f 743/1344/13 736/1345/13 735/1346/13 +f 654/1347/17 740/1348/17 653/1349/17 +f 744/1350/17 739/1351/17 740/1352/17 +f 743/1353/17 738/1354/17 739/1355/17 +f 742/1356/17 737/1357/17 738/1358/17 +f 723/1359/17 732/1318/17 724/1360/17 +f 722/1361/17 731/1315/17 723/1362/17 +f 721/1363/17 730/1312/17 722/1364/17 +f 728/1327/15 652/1191/15 650/1328/15 +f 727/1330/15 736/1345/15 728/1331/15 +f 726/1333/15 735/1342/15 727/1334/15 +f 725/1336/15 734/1339/15 726/1337/15 +f 600/1365/17 741/1366/17 599/1367/17 +f 741/1366/13 595/1368/13 599/1367/13 +f 595/1368/15 725/1369/15 596/1370/15 +f 596/1370/14 737/1371/14 600/1372/14 +f 724/1373/17 594/1374/17 593/1375/17 +f 598/1376/13 732/1377/13 752/1378/13 +f 752/1378/15 597/1379/15 598/1376/15 +f 748/1380/14 593/1381/14 597/1379/14 +f 536/1382/28 608/1383/28 535/1023/28 +f 763/1384/14 762/1385/14 764/1386/14 +f 760/1387/25 764/1388/25 762/1389/25 +f 756/1390/31 775/1391/31 755/1392/31 +f 754/1393/25 776/1394/25 756/1395/25 +f 758/1396/20 761/1397/20 763/1398/20 +f 760/1399/13 758/1400/13 759/1401/13 +f 753/1402/32 774/1403/32 754/1404/32 +f 757/1405/32 762/1385/32 761/1406/32 +f 759/1407/31 763/1408/31 764/1409/31 +f 766/1410/13 767/1411/13 768/1412/13 +f 771/1413/20 765/1414/20 769/1415/20 +f 772/1416/31 767/1411/31 771/1417/31 +f 769/1418/32 766/1410/32 770/1419/32 +f 770/1420/25 768/1412/25 772/1421/25 +f 774/1403/13 775/1391/13 776/1394/13 +f 755/1422/20 773/1423/20 753/1424/20 +f 788/1425/14 785/1426/14 786/1427/14 +f 784/1428/24 788/1429/24 786/1430/24 +f 780/1431/33 799/1432/33 779/1433/33 +f 778/1434/24 800/1435/24 780/1436/24 +f 782/1437/23 785/1438/23 787/1439/23 +f 783/1440/13 781/1441/13 782/1442/13 +f 777/1443/34 798/1444/34 778/1445/34 +f 781/1441/34 786/1427/34 785/1426/34 +f 783/1446/33 787/1447/33 788/1448/33 +f 790/1449/13 791/1450/13 792/1451/13 +f 795/1452/23 789/1453/23 793/1454/23 +f 796/1455/33 791/1450/33 795/1456/33 +f 793/1457/34 790/1449/34 794/1458/34 +f 794/1459/24 792/1451/24 796/1460/24 +f 798/1444/13 799/1432/13 800/1435/13 +f 779/1461/23 797/1462/23 777/1463/23 +f 811/1464/14 810/1465/14 812/1466/14 +f 808/1467/26 812/1468/26 810/1469/26 +f 804/1470/35 823/1471/35 803/1472/35 +f 802/1473/26 824/1474/26 804/1475/26 +f 806/1476/27 809/1477/27 811/1478/27 +f 808/1479/13 806/1480/13 807/1481/13 +f 801/1482/36 822/1483/36 802/1484/36 +f 805/1485/36 810/1465/36 809/1486/36 +f 807/1487/35 811/1488/35 812/1489/35 +f 813/1490/13 816/1491/13 814/1492/13 +f 819/1493/27 813/1490/27 817/1494/27 +f 820/1495/35 815/1496/35 819/1497/35 +f 817/1498/36 814/1492/36 818/1499/36 +f 818/1500/26 816/1491/26 820/1501/26 +f 821/1502/13 824/1474/13 822/1483/13 +f 803/1503/27 821/1502/27 801/1504/27 +f 836/1505/14 833/1506/14 834/1507/14 +f 832/1508/21 836/1509/21 834/1510/21 +f 828/1511/22 847/1512/22 827/1513/22 +f 826/1514/21 848/1515/21 828/1516/21 +f 830/1517/29 833/1518/29 835/1519/29 +f 831/1520/13 829/1521/13 830/1522/13 +f 825/1523/30 846/1524/30 826/1525/30 +f 829/1521/30 834/1507/30 833/1506/30 +f 831/1526/22 835/1527/22 836/1528/22 +f 838/1529/13 839/1530/13 840/1531/13 +f 843/1532/29 837/1533/29 841/1534/29 +f 844/1535/22 839/1530/22 843/1536/22 +f 841/1537/30 838/1529/30 842/1538/30 +f 842/1539/21 840/1531/21 844/1540/21 +f 845/1541/13 848/1515/13 846/1524/13 +f 827/1542/29 845/1541/29 825/1543/29 +f 850/1544/14 851/1545/14 849/1546/14 +f 853/1547/13 855/1548/13 854/1549/13 +f 853/1550/17 849/1551/17 851/1552/17 +f 854/1553/16 850/1554/16 849/1555/16 +f 855/1556/15 852/1557/15 850/1558/15 +f 856/1559/18 851/1545/18 852/1560/18 +f 859/1561/17 861/1562/17 857/1563/17 +f 860/1564/18 863/1565/18 859/1566/18 +f 857/1567/16 862/1568/16 858/1569/16 +f 858/1570/15 864/1571/15 860/1572/15 +f 864/1571/13 861/1562/13 863/1565/13 +f 867/1573/17 869/1574/17 865/1575/17 +f 868/1576/18 871/1577/18 867/1578/18 +f 865/1579/16 870/1580/16 866/1581/16 +f 866/1582/15 872/1583/15 868/1584/15 +f 872/1583/13 869/1574/13 871/1577/13 +f 34/85/13 33/154/13 36/86/13 +f 39/88/14 40/155/14 38/89/14 +f 43/91/14 44/129/14 42/92/14 +f 47/94/14 48/159/14 46/95/14 +f 51/97/14 52/134/14 50/98/14 +f 55/100/14 56/164/14 54/101/14 +f 59/103/13 60/128/13 57/104/13 +f 63/106/13 64/158/13 61/107/13 +f 67/109/13 68/133/13 65/110/13 +f 71/112/13 72/163/13 69/113/13 +f 49/115/15 66/1585/15 65/116/15 +f 42/118/16 59/1586/16 58/119/16 +f 50/121/16 67/1587/16 66/122/16 +f 44/124/17 60/1588/17 59/125/17 +f 52/126/17 68/1589/17 67/127/17 +f 43/91/18 57/104/18 60/128/18 +f 37/130/15 35/1590/15 36/131/15 +f 51/97/18 65/110/18 68/133/18 +f 45/135/15 62/1591/15 61/136/15 +f 38/138/16 34/1592/16 35/139/16 +f 53/141/15 70/1593/15 69/142/15 +f 46/144/16 63/1594/16 62/145/16 +f 40/147/17 33/1595/17 34/148/17 +f 54/149/16 71/1596/16 70/150/16 +f 48/152/17 64/1597/17 63/153/17 +f 39/88/18 36/86/18 33/154/18 +f 56/156/17 72/1598/17 71/157/17 +f 47/94/18 61/107/18 64/158/18 +f 41/160/15 58/1599/15 57/161/15 +f 55/100/18 69/113/18 72/163/18 +f 181/165/17 78/358/17 74/166/17 +f 177/168/15 79/190/15 75/169/15 +f 81/171/15 83/357/15 189/172/15 +f 78/174/16 83/1600/16 81/175/16 +f 80/177/13 84/369/13 192/178/13 +f 74/166/14 81/1601/14 185/180/14 +f 75/181/14 492/891/14 516/182/14 +f 85/183/17 87/327/17 197/184/17 +f 77/186/13 88/338/13 200/187/13 +f 75/181/14 85/183/14 193/185/14 +f 79/190/15 500/904/15 492/191/15 +f 73/192/16 86/1602/16 88/193/16 +f 93/195/15 95/198/15 91/196/15 +f 95/198/18 96/204/18 92/199/18 +f 94/201/16 93/195/16 89/202/16 +f 96/204/17 94/201/17 90/205/17 +f 93/195/13 94/201/13 96/204/13 +f 101/207/15 103/210/15 99/208/15 +f 103/210/18 104/216/18 100/211/18 +f 102/213/16 101/207/16 97/214/16 +f 104/216/17 102/213/17 98/217/17 +f 101/207/13 102/213/13 104/216/13 +f 109/219/15 111/222/15 107/220/15 +f 111/222/18 112/228/18 108/223/18 +f 110/225/16 109/219/16 105/226/16 +f 112/228/17 110/225/17 106/229/17 +f 109/219/13 110/225/13 112/228/13 +f 117/231/15 119/234/15 115/232/15 +f 119/234/18 120/240/18 116/235/18 +f 118/237/16 117/231/16 113/238/16 +f 120/240/17 118/237/17 114/241/17 +f 117/231/13 118/237/13 120/240/13 +f 125/243/15 127/246/15 123/244/15 +f 127/246/18 128/252/18 124/247/18 +f 126/249/16 125/243/16 121/250/16 +f 128/252/17 126/249/17 122/253/17 +f 125/243/13 126/249/13 128/252/13 +f 133/255/15 135/258/15 131/256/15 +f 135/258/18 136/264/18 132/259/18 +f 134/261/16 133/255/16 129/262/16 +f 136/264/17 134/261/17 130/265/17 +f 133/255/13 134/261/13 136/264/13 +f 141/267/15 143/270/15 139/268/15 +f 143/270/18 144/276/18 140/271/18 +f 142/273/16 141/267/16 137/274/16 +f 144/276/17 142/273/17 138/277/17 +f 141/267/13 142/273/13 144/276/13 +f 149/279/15 151/282/15 147/280/15 +f 151/282/18 152/288/18 148/283/18 +f 150/285/16 149/279/16 145/286/16 +f 152/288/17 150/285/17 146/289/17 +f 149/279/13 150/285/13 152/288/13 +f 157/291/15 159/294/15 155/292/15 +f 159/294/18 160/300/18 156/295/18 +f 158/297/16 157/291/16 153/298/16 +f 160/300/17 158/297/17 154/301/17 +f 157/291/13 158/297/13 160/300/13 +f 165/303/15 167/306/15 163/304/15 +f 167/306/18 168/312/18 164/307/18 +f 166/309/16 165/303/16 161/310/16 +f 168/312/17 166/309/17 162/313/17 +f 165/303/13 166/309/13 168/312/13 +f 172/315/14 196/337/14 86/316/14 +f 171/318/14 195/339/14 196/319/14 +f 170/321/14 194/341/14 195/322/14 +f 169/324/14 193/343/14 194/325/14 +f 177/168/13 197/184/13 87/327/13 +f 178/328/13 198/344/13 197/329/13 +f 179/331/13 199/342/13 198/332/13 +f 180/334/13 200/340/13 199/335/13 +f 196/337/17 200/187/17 88/338/17 +f 195/339/17 199/335/17 200/340/17 +f 194/341/17 198/332/17 199/342/17 +f 193/343/17 197/329/17 198/344/17 +f 176/345/14 188/1603/14 82/346/14 +f 175/348/14 187/1604/14 188/349/14 +f 174/351/14 186/1605/14 187/352/14 +f 173/354/14 185/1606/14 186/355/14 +f 181/165/13 189/172/13 83/357/13 +f 182/359/13 190/378/13 189/360/13 +f 183/362/13 191/375/13 190/363/13 +f 184/365/13 192/372/13 191/366/13 +f 188/368/15 192/178/15 84/369/15 +f 187/371/15 191/366/15 192/372/15 +f 186/374/15 190/363/15 191/375/15 +f 185/377/15 189/360/15 190/378/15 +f 77/186/15 180/188/15 172/380/15 +f 180/334/15 179/336/15 171/382/15 +f 179/331/15 178/333/15 170/384/15 +f 178/328/15 177/330/15 169/386/15 +f 80/177/17 184/179/17 176/345/17 +f 184/365/17 183/367/17 175/348/17 +f 183/362/17 182/364/17 174/351/17 +f 182/359/17 181/361/17 173/354/17 +f 202/388/13 201/457/13 204/389/13 +f 207/391/14 208/458/14 206/392/14 +f 211/394/14 212/432/14 210/395/14 +f 215/397/14 216/462/14 214/398/14 +f 219/400/14 220/437/14 218/401/14 +f 223/403/14 224/467/14 222/404/14 +f 227/406/13 228/431/13 225/407/13 +f 231/409/13 232/461/13 229/410/13 +f 235/412/13 236/436/13 233/413/13 +f 239/415/13 240/466/13 237/416/13 +f 217/418/15 234/1607/15 233/419/15 +f 210/421/16 227/1608/16 226/422/16 +f 218/424/16 235/1609/16 234/425/16 +f 212/427/17 228/1610/17 227/428/17 +f 220/429/17 236/1611/17 235/430/17 +f 211/394/18 225/407/18 228/431/18 +f 205/433/15 203/1612/15 204/434/15 +f 219/400/18 233/413/18 236/436/18 +f 213/438/15 230/1613/15 229/439/15 +f 206/441/16 202/1614/16 203/442/16 +f 221/444/15 238/1615/15 237/445/15 +f 214/447/16 231/1616/16 230/448/16 +f 208/450/17 201/1617/17 202/451/17 +f 222/452/16 239/1618/16 238/453/16 +f 216/455/17 232/1619/17 231/456/17 +f 207/391/18 204/389/18 201/457/18 +f 224/459/17 240/1620/17 239/460/17 +f 215/397/18 229/410/18 232/461/18 +f 209/463/15 226/1621/15 225/464/15 +f 223/403/18 237/416/18 240/466/18 +f 349/468/17 246/660/17 242/469/17 +f 345/471/15 247/629/15 243/472/15 +f 249/474/15 251/659/15 357/475/15 +f 520/477/13 500/904/13 79/190/13 +f 248/478/13 252/671/13 360/479/13 +f 242/469/14 249/945/14 353/481/14 +f 244/482/18 250/1622/18 252/483/18 +f 253/485/17 255/628/17 365/486/17 +f 245/488/13 256/640/13 368/489/13 +f 243/491/14 253/485/14 361/487/14 +f 247/493/18 255/1623/18 253/494/18 +f 85/183/17 516/182/17 520/477/17 +f 261/496/15 263/499/15 259/497/15 +f 263/499/18 264/505/18 260/500/18 +f 262/502/16 261/496/16 257/503/16 +f 264/505/17 262/502/17 258/506/17 +f 261/496/13 262/502/13 264/505/13 +f 269/508/15 271/511/15 267/509/15 +f 271/511/18 272/517/18 268/512/18 +f 270/514/16 269/508/16 265/515/16 +f 272/517/17 270/514/17 266/518/17 +f 269/508/13 270/514/13 272/517/13 +f 277/520/15 279/523/15 275/521/15 +f 279/523/18 280/529/18 276/524/18 +f 278/526/16 277/520/16 273/527/16 +f 280/529/17 278/526/17 274/530/17 +f 277/520/13 278/526/13 280/529/13 +f 285/532/15 287/535/15 283/533/15 +f 287/535/18 288/541/18 284/536/18 +f 286/538/16 285/532/16 281/539/16 +f 288/541/17 286/538/17 282/542/17 +f 285/532/13 286/538/13 288/541/13 +f 293/544/15 295/547/15 291/545/15 +f 295/547/18 296/553/18 292/548/18 +f 294/550/16 293/544/16 289/551/16 +f 296/553/17 294/550/17 290/554/17 +f 293/544/13 294/550/13 296/553/13 +f 301/556/15 303/559/15 299/557/15 +f 303/559/18 304/565/18 300/560/18 +f 302/562/16 301/556/16 297/563/16 +f 304/565/17 302/562/17 298/566/17 +f 301/556/13 302/562/13 304/565/13 +f 309/568/15 311/571/15 307/569/15 +f 311/571/18 312/577/18 308/572/18 +f 310/574/16 309/568/16 305/575/16 +f 312/577/17 310/574/17 306/578/17 +f 309/568/13 310/574/13 312/577/13 +f 317/580/15 319/583/15 315/581/15 +f 319/583/18 320/589/18 316/584/18 +f 318/586/16 317/580/16 313/587/16 +f 320/589/17 318/586/17 314/590/17 +f 317/580/13 318/586/13 320/589/13 +f 325/592/15 327/595/15 323/593/15 +f 327/595/18 328/601/18 324/596/18 +f 326/598/16 325/592/16 321/599/16 +f 328/601/17 326/598/17 322/602/17 +f 325/592/13 326/598/13 328/601/13 +f 333/604/15 335/607/15 331/605/15 +f 335/607/18 336/613/18 332/608/18 +f 334/610/16 333/604/16 329/611/16 +f 336/613/17 334/610/17 330/614/17 +f 333/604/13 334/610/13 336/613/13 +f 340/616/14 364/639/14 254/617/14 +f 339/619/14 363/641/14 364/620/14 +f 338/622/14 362/643/14 363/623/14 +f 337/625/14 361/645/14 362/626/14 +f 345/471/13 365/486/13 255/628/13 +f 346/630/13 366/646/13 365/631/13 +f 347/633/13 367/644/13 366/634/13 +f 348/636/13 368/642/13 367/637/13 +f 364/639/17 368/489/17 256/640/17 +f 363/641/17 367/637/17 368/642/17 +f 362/643/17 366/634/17 367/644/17 +f 361/645/17 365/631/17 366/646/17 +f 344/647/14 356/1624/14 250/648/14 +f 343/650/14 355/1625/14 356/651/14 +f 342/653/14 354/1626/14 355/654/14 +f 341/656/14 353/1627/14 354/657/14 +f 349/468/13 357/475/13 251/659/13 +f 350/661/13 358/680/13 357/662/13 +f 351/664/13 359/677/13 358/665/13 +f 352/667/13 360/674/13 359/668/13 +f 356/670/15 360/479/15 252/671/15 +f 355/673/15 359/668/15 360/674/15 +f 354/676/15 358/665/15 359/677/15 +f 353/679/15 357/662/15 358/680/15 +f 245/488/15 348/490/15 340/682/15 +f 348/636/15 347/638/15 339/684/15 +f 347/633/15 346/635/15 338/686/15 +f 346/630/15 345/632/15 337/688/15 +f 248/478/17 352/480/17 344/647/17 +f 352/667/17 351/669/17 343/650/17 +f 351/664/17 350/666/17 342/653/17 +f 350/661/17 349/663/17 341/656/17 +f 370/690/13 369/759/13 372/691/13 +f 375/693/14 376/760/14 374/694/14 +f 379/696/14 380/734/14 378/697/14 +f 383/699/14 384/764/14 382/700/14 +f 387/702/14 388/739/14 386/703/14 +f 391/705/14 392/769/14 390/706/14 +f 395/708/13 396/733/13 393/709/13 +f 399/711/13 400/763/13 397/712/13 +f 403/714/13 404/738/13 401/715/13 +f 407/717/13 408/768/13 405/718/13 +f 385/720/15 402/1628/15 401/721/15 +f 378/723/16 395/1629/16 394/724/16 +f 386/726/16 403/1630/16 402/727/16 +f 380/729/17 396/1631/17 395/730/17 +f 388/731/17 404/1632/17 403/732/17 +f 379/696/18 393/709/18 396/733/18 +f 373/735/15 371/1633/15 372/736/15 +f 387/702/18 401/715/18 404/738/18 +f 381/740/15 398/1634/15 397/741/15 +f 374/743/16 370/1635/16 371/744/16 +f 389/746/15 406/1636/15 405/747/15 +f 382/749/16 399/1637/16 398/750/16 +f 376/752/17 369/1638/17 370/753/17 +f 390/754/16 407/1639/16 406/755/16 +f 384/757/17 400/1640/17 399/758/17 +f 375/693/18 372/691/18 369/759/18 +f 392/761/17 408/1641/17 407/762/17 +f 383/699/18 397/712/18 400/763/18 +f 377/765/15 394/1642/15 393/766/15 +f 391/705/18 405/718/18 408/768/18 +f 413/770/15 415/773/15 411/771/15 +f 415/773/18 416/779/18 412/774/18 +f 414/776/16 413/770/16 409/777/16 +f 416/779/17 414/776/17 410/780/17 +f 413/770/13 414/776/13 416/779/13 +f 421/782/15 423/785/15 419/783/15 +f 423/785/18 424/791/18 420/786/18 +f 422/788/16 421/782/16 417/789/16 +f 424/791/17 422/788/17 418/792/17 +f 421/782/13 422/788/13 424/791/13 +f 429/794/15 431/797/15 427/795/15 +f 431/797/18 432/803/18 428/798/18 +f 430/800/16 429/794/16 425/801/16 +f 432/803/17 430/800/17 426/804/17 +f 429/794/13 430/800/13 432/803/13 +f 437/806/15 439/809/15 435/807/15 +f 439/809/18 440/815/18 436/810/18 +f 438/812/16 437/806/16 433/813/16 +f 440/815/17 438/812/17 434/816/17 +f 437/806/13 438/812/13 440/815/13 +f 445/818/15 447/821/15 443/819/15 +f 447/821/18 448/827/18 444/822/18 +f 446/824/16 445/818/16 441/825/16 +f 448/827/17 446/824/17 442/828/17 +f 445/818/13 446/824/13 448/827/13 +f 453/830/15 455/833/15 451/831/15 +f 455/833/18 456/839/18 452/834/18 +f 454/836/16 453/830/16 449/837/16 +f 456/839/17 454/836/17 450/840/17 +f 453/830/13 454/836/13 456/839/13 +f 461/842/15 463/845/15 459/843/15 +f 463/845/18 464/851/18 460/846/18 +f 462/848/16 461/842/16 457/849/16 +f 464/851/17 462/848/17 458/852/17 +f 461/842/13 462/848/13 464/851/13 +f 469/854/15 471/857/15 467/855/15 +f 471/857/18 472/863/18 468/858/18 +f 470/860/16 469/854/16 465/861/16 +f 472/863/17 470/860/17 466/864/17 +f 469/854/13 470/860/13 472/863/13 +f 477/866/15 479/869/15 475/867/15 +f 479/869/18 480/875/18 476/870/18 +f 478/872/16 477/866/16 473/873/16 +f 480/875/17 478/872/17 474/876/17 +f 477/866/13 478/872/13 480/875/13 +f 485/878/15 487/881/15 483/879/15 +f 487/881/18 488/887/18 484/882/18 +f 486/884/16 485/878/16 481/885/16 +f 488/887/17 486/884/17 482/888/17 +f 485/878/13 486/884/13 488/887/13 +f 491/890/14 515/907/14 516/182/14 +f 490/892/14 514/908/14 515/893/14 +f 489/895/14 513/910/14 514/896/14 +f 498/898/13 518/911/13 517/899/13 +f 499/901/13 519/909/13 518/902/13 +f 500/904/13 520/477/13 519/905/13 +f 515/907/17 519/905/17 520/477/17 +f 514/908/17 518/902/17 519/909/17 +f 513/910/17 517/899/17 518/911/17 +f 495/912/14 507/1643/14 508/913/14 +f 494/915/14 506/1644/14 507/916/14 +f 493/918/14 505/944/14 506/919/14 +f 502/921/13 510/937/13 509/922/13 +f 503/924/13 511/934/13 510/925/13 +f 504/927/13 512/931/13 511/928/13 +f 507/930/15 511/928/15 512/931/15 +f 506/933/15 510/925/15 511/934/15 +f 505/936/15 509/922/15 510/937/15 +f 500/904/15 499/906/15 491/939/15 +f 499/901/15 498/903/15 490/940/15 +f 498/898/15 497/900/15 489/942/15 +f 504/927/17 503/929/17 495/912/17 +f 503/924/17 502/926/17 494/915/17 +f 502/921/17 501/923/17 493/918/17 +f 493/918/17 501/923/17 80/177/17 +f 80/177/13 501/923/13 509/922/13 +f 509/922/15 505/936/15 82/370/15 +f 505/944/14 493/918/14 76/347/14 +f 517/899/17 513/910/17 254/617/17 +f 245/488/13 497/900/13 517/899/13 +f 489/942/15 497/900/15 245/488/15 +f 513/910/14 489/895/14 241/618/14 +f 246/660/17 504/927/17 496/914/17 +f 512/931/13 504/927/13 246/660/13 +f 249/474/15 508/932/15 512/931/15 +f 242/469/14 496/914/14 508/913/14 +f 568/946/19 567/1645/19 571/947/19 +f 539/949/19 606/1024/19 605/950/19 +f 574/952/19 573/1114/19 605/953/19 +f 548/955/20 547/1646/20 539/956/20 +f 536/958/14 544/1647/14 548/955/14 +f 531/959/14 529/1046/14 530/960/14 +f 537/962/14 533/1648/14 568/963/14 +f 528/965/21 527/1649/21 532/966/21 +f 568/963/19 533/1648/19 534/968/19 +f 524/970/22 616/978/22 615/971/22 +f 571/947/13 567/1645/13 566/973/13 +f 567/969/13 534/968/13 538/975/13 +f 522/977/21 614/1043/21 616/978/21 +f 549/980/23 550/1650/23 542/981/23 +f 554/983/24 553/1651/24 545/984/24 +f 534/986/13 542/1652/13 546/987/13 +f 543/989/25 544/1653/25 536/990/25 +f 539/956/13 547/1646/13 543/989/13 +f 545/992/14 541/996/14 533/993/14 +f 546/987/25 545/1654/25 537/995/25 +f 541/996/20 542/1652/20 534/986/20 +f 561/997/14 557/1016/14 549/998/14 +f 563/1000/13 559/1021/13 551/1001/13 +f 544/1003/14 552/1655/14 556/1004/14 +f 556/1004/23 555/1010/23 547/1006/23 +f 542/981/13 550/1650/13 554/983/13 +f 551/1007/24 552/1656/24 544/1008/24 +f 555/1010/13 551/1007/13 543/1009/13 +f 553/1011/14 549/980/14 541/982/14 +f 562/1013/26 561/1657/26 553/1014/26 +f 557/1016/27 558/1658/27 550/1017/27 +f 552/1018/14 560/1659/14 564/1019/14 +f 564/1019/27 563/1000/27 555/1002/27 +f 550/1017/13 558/1658/13 562/1013/13 +f 559/1021/26 560/1660/26 552/1022/26 +f 535/1023/13 608/1383/13 606/1024/13 +f 584/1025/25 583/1061/25 575/1026/25 +f 572/1028/14 580/1661/14 584/1029/14 +f 566/973/28 565/1662/28 576/1031/28 +f 566/976/28 538/975/28 537/1032/28 +f 526/1034/29 525/1663/29 529/1035/29 +f 565/1037/14 568/946/14 572/948/14 +f 528/1039/13 525/1045/13 526/1040/13 +f 521/1042/30 613/1117/30 614/1043/30 +f 525/1045/30 528/1039/30 530/960/30 +f 527/1047/22 526/1664/22 531/1048/22 +f 585/1050/24 586/1665/24 578/1051/24 +f 590/1053/23 589/1082/23 581/1054/23 +f 570/1056/13 578/1666/13 582/1057/13 +f 579/1059/20 580/1661/20 572/1028/20 +f 583/1061/13 579/1059/13 571/1060/13 +f 581/1062/14 577/1667/14 569/1063/14 +f 582/1057/20 581/1062/20 573/1064/20 +f 577/1065/25 578/1666/25 570/1056/25 +f 589/1067/14 597/1668/14 593/1068/14 +f 599/1070/13 595/1095/13 587/1071/13 +f 580/1073/14 588/1669/14 592/1074/14 +f 592/1076/24 591/1081/24 583/1077/24 +f 578/1051/13 586/1665/13 590/1053/13 +f 587/1079/23 588/1669/23 580/1073/23 +f 591/1081/13 587/1079/13 579/1080/13 +f 589/1082/14 585/1670/14 577/1083/14 +f 598/1084/27 597/1668/27 589/1067/27 +f 593/1086/26 594/1094/26 586/1087/26 +f 588/1089/14 596/1671/14 600/1090/14 +f 600/1092/26 599/1070/26 591/1072/26 +f 594/1094/13 598/1084/13 590/1085/13 +f 595/1095/27 596/1671/27 588/1089/27 +f 607/1096/28 569/1672/28 570/1097/28 +f 602/1099/13 601/1103/13 603/1100/13 +f 608/1098/13 570/1097/13 574/952/13 +f 611/1102/29 603/1100/29 601/1103/29 +f 612/1105/22 604/1101/22 603/1100/22 +f 609/1107/30 601/1103/30 602/1099/30 +f 536/1109/14 540/951/14 605/950/14 +f 610/1111/21 602/1099/21 604/1101/21 +f 607/1113/14 605/953/14 573/1114/14 +f 614/1043/13 613/1117/13 615/971/13 +f 523/1116/29 615/971/29 613/1117/29 +f 620/1119/13 617/1175/13 618/1120/13 +f 622/1122/14 624/1176/14 623/1123/14 +f 626/1125/14 628/1150/14 627/1126/14 +f 630/1128/14 632/1181/14 631/1129/14 +f 634/1131/14 636/1186/14 635/1132/14 +f 637/1134/13 640/1149/13 639/1135/13 +f 641/1137/13 644/1180/13 643/1138/13 +f 645/1140/13 648/1185/13 647/1141/13 +f 638/1143/16 639/1673/16 626/1144/16 +f 639/1146/15 640/1674/15 628/1147/15 +f 640/1149/18 637/1134/18 627/1126/18 +f 620/1151/17 619/1675/17 621/1152/17 +f 641/1154/17 642/1676/17 629/1155/17 +f 619/1157/16 618/1677/16 622/1158/16 +f 645/1160/17 646/1678/17 633/1161/17 +f 642/1163/16 643/1679/16 630/1164/16 +f 618/1166/15 617/1680/15 624/1167/15 +f 646/1169/16 647/1681/16 634/1170/16 +f 643/1172/15 644/1682/15 632/1173/15 +f 617/1175/18 620/1119/18 623/1123/18 +f 647/1177/15 648/1683/15 636/1178/15 +f 644/1180/18 641/1137/18 631/1129/18 +f 637/1182/17 638/1684/17 625/1183/17 +f 648/1185/18 645/1140/18 635/1132/18 +f 649/1187/17 651/1310/17 729/1188/17 +f 744/1190/13 654/1347/13 652/1191/13 +f 654/1193/18 653/1685/18 650/1194/18 +f 749/1196/15 656/1309/15 655/1197/15 +f 745/1198/14 655/1197/14 649/1199/14 +f 655/1201/18 656/1686/18 651/1202/18 +f 659/1204/17 663/1208/17 661/1205/17 +f 660/1207/18 664/1214/18 663/1208/18 +f 657/1210/16 661/1205/16 662/1211/16 +f 658/1213/15 662/1211/15 664/1214/15 +f 664/1214/13 662/1211/13 661/1205/13 +f 667/1216/17 671/1220/17 669/1217/17 +f 668/1219/18 672/1226/18 671/1220/18 +f 665/1222/16 669/1217/16 670/1223/16 +f 666/1225/15 670/1223/15 672/1226/15 +f 672/1226/13 670/1223/13 669/1217/13 +f 675/1228/17 679/1232/17 677/1229/17 +f 676/1231/18 680/1238/18 679/1232/18 +f 673/1234/16 677/1229/16 678/1235/16 +f 674/1237/15 678/1235/15 680/1238/15 +f 680/1238/13 678/1235/13 677/1229/13 +f 683/1240/17 687/1244/17 685/1241/17 +f 684/1243/18 688/1250/18 687/1244/18 +f 681/1246/16 685/1241/16 686/1247/16 +f 682/1249/15 686/1247/15 688/1250/15 +f 688/1250/13 686/1247/13 685/1241/13 +f 691/1252/17 695/1256/17 693/1253/17 +f 692/1255/18 696/1262/18 695/1256/18 +f 689/1258/16 693/1253/16 694/1259/16 +f 690/1261/15 694/1259/15 696/1262/15 +f 696/1262/13 694/1259/13 693/1253/13 +f 699/1264/17 703/1268/17 701/1265/17 +f 700/1267/18 704/1274/18 703/1268/18 +f 697/1270/16 701/1265/16 702/1271/16 +f 698/1273/15 702/1271/15 704/1274/15 +f 704/1274/13 702/1271/13 701/1265/13 +f 707/1276/17 711/1280/17 709/1277/17 +f 708/1279/18 712/1286/18 711/1280/18 +f 705/1282/16 709/1277/16 710/1283/16 +f 706/1285/15 710/1283/15 712/1286/15 +f 712/1286/13 710/1283/13 709/1277/13 +f 715/1288/17 719/1292/17 717/1289/17 +f 716/1291/18 720/1298/18 719/1292/18 +f 713/1294/16 717/1289/16 718/1295/16 +f 714/1297/15 718/1295/15 720/1298/15 +f 720/1298/13 718/1295/13 717/1289/13 +f 748/1300/14 747/1321/14 723/1301/14 +f 747/1303/14 746/1323/14 722/1304/14 +f 746/1306/14 745/1325/14 721/1307/14 +f 656/1309/13 749/1196/13 729/1188/13 +f 749/1311/13 750/1324/13 730/1312/13 +f 750/1314/13 751/1322/13 731/1315/13 +f 751/1317/13 752/1320/13 732/1318/13 +f 752/1320/15 751/1317/15 747/1321/15 +f 751/1322/15 750/1314/15 746/1323/15 +f 750/1324/15 749/1311/15 745/1325/15 +f 653/1326/14 740/1687/14 728/1327/14 +f 740/1329/14 739/1688/14 727/1330/14 +f 739/1332/14 738/1689/14 726/1333/14 +f 738/1335/14 737/1690/14 725/1336/14 +f 741/1338/13 742/1356/13 734/1339/13 +f 742/1341/13 743/1353/13 735/1342/13 +f 743/1344/13 744/1350/13 736/1345/13 +f 654/1347/17 744/1190/17 740/1348/17 +f 744/1350/17 743/1344/17 739/1351/17 +f 743/1353/17 742/1341/17 738/1354/17 +f 742/1356/17 741/1338/17 737/1357/17 +f 723/1359/17 731/1319/17 732/1318/17 +f 722/1361/17 730/1316/17 731/1315/17 +f 721/1363/17 729/1313/17 730/1312/17 +f 728/1327/15 736/1192/15 652/1191/15 +f 727/1330/15 735/1346/15 736/1345/15 +f 726/1333/15 734/1343/15 735/1342/15 +f 725/1336/15 733/1340/15 734/1339/15 +f 600/1365/17 737/1691/17 741/1366/17 +f 741/1366/13 733/1692/13 595/1368/13 +f 595/1368/15 733/1692/15 725/1369/15 +f 596/1370/14 725/1369/14 737/1371/14 +f 724/1373/17 732/1377/17 594/1374/17 +f 598/1376/13 594/1374/13 732/1377/13 +f 752/1378/15 748/1380/15 597/1379/15 +f 748/1380/14 724/1693/14 593/1381/14 +f 536/1382/28 607/1694/28 608/1383/28 +f 763/1384/14 761/1406/14 762/1385/14 +f 760/1387/25 759/1695/25 764/1388/25 +f 756/1390/31 776/1394/31 775/1391/31 +f 754/1393/25 774/1403/25 776/1394/25 +f 758/1396/20 757/1696/20 761/1397/20 +f 760/1399/13 757/1405/13 758/1400/13 +f 753/1402/32 773/1423/32 774/1403/32 +f 757/1405/32 760/1399/32 762/1385/32 +f 759/1407/31 758/1697/31 763/1408/31 +f 766/1410/13 765/1414/13 767/1411/13 +f 771/1413/20 767/1411/20 765/1414/20 +f 772/1416/31 768/1412/31 767/1411/31 +f 769/1418/32 765/1414/32 766/1410/32 +f 770/1420/25 766/1410/25 768/1412/25 +f 774/1403/13 773/1423/13 775/1391/13 +f 755/1422/20 775/1391/20 773/1423/20 +f 788/1425/14 787/1698/14 785/1426/14 +f 784/1428/24 783/1699/24 788/1429/24 +f 780/1431/33 800/1435/33 799/1432/33 +f 778/1434/24 798/1444/24 800/1435/24 +f 782/1437/23 781/1700/23 785/1438/23 +f 783/1440/13 784/1701/13 781/1441/13 +f 777/1443/34 797/1462/34 798/1444/34 +f 781/1441/34 784/1701/34 786/1427/34 +f 783/1446/33 782/1702/33 787/1447/33 +f 790/1449/13 789/1453/13 791/1450/13 +f 795/1452/23 791/1450/23 789/1453/23 +f 796/1455/33 792/1451/33 791/1450/33 +f 793/1457/34 789/1453/34 790/1449/34 +f 794/1459/24 790/1449/24 792/1451/24 +f 798/1444/13 797/1462/13 799/1432/13 +f 779/1461/23 799/1432/23 797/1462/23 +f 811/1464/14 809/1486/14 810/1465/14 +f 808/1467/26 807/1703/26 812/1468/26 +f 804/1470/35 824/1474/35 823/1471/35 +f 802/1473/26 822/1483/26 824/1474/26 +f 806/1476/27 805/1704/27 809/1477/27 +f 808/1479/13 805/1485/13 806/1480/13 +f 801/1482/36 821/1502/36 822/1483/36 +f 805/1485/36 808/1479/36 810/1465/36 +f 807/1487/35 806/1705/35 811/1488/35 +f 813/1490/13 815/1496/13 816/1491/13 +f 819/1493/27 815/1496/27 813/1490/27 +f 820/1495/35 816/1491/35 815/1496/35 +f 817/1498/36 813/1490/36 814/1492/36 +f 818/1500/26 814/1492/26 816/1491/26 +f 821/1502/13 823/1471/13 824/1474/13 +f 803/1503/27 823/1471/27 821/1502/27 +f 836/1505/14 835/1706/14 833/1506/14 +f 832/1508/21 831/1707/21 836/1509/21 +f 828/1511/22 848/1515/22 847/1512/22 +f 826/1514/21 846/1524/21 848/1515/21 +f 830/1517/29 829/1708/29 833/1518/29 +f 831/1520/13 832/1709/13 829/1521/13 +f 825/1523/30 845/1541/30 846/1524/30 +f 829/1521/30 832/1709/30 834/1507/30 +f 831/1526/22 830/1710/22 835/1527/22 +f 838/1529/13 837/1533/13 839/1530/13 +f 843/1532/29 839/1530/29 837/1533/29 +f 844/1535/22 840/1531/22 839/1530/22 +f 841/1537/30 837/1533/30 838/1529/30 +f 842/1539/21 838/1529/21 840/1531/21 +f 845/1541/13 847/1512/13 848/1515/13 +f 827/1542/29 847/1512/29 845/1541/29 +f 850/1544/14 852/1560/14 851/1545/14 +f 853/1547/13 856/1559/13 855/1548/13 +f 853/1550/17 854/1711/17 849/1551/17 +f 854/1553/16 855/1712/16 850/1554/16 +f 855/1556/15 856/1713/15 852/1557/15 +f 856/1559/18 853/1547/18 851/1545/18 +f 859/1561/17 863/1565/17 861/1562/17 +f 860/1564/18 864/1571/18 863/1565/18 +f 857/1567/16 861/1562/16 862/1568/16 +f 858/1570/15 862/1568/15 864/1571/15 +f 864/1571/13 862/1568/13 861/1562/13 +f 867/1573/17 871/1577/17 869/1574/17 +f 868/1576/18 872/1583/18 871/1577/18 +f 865/1579/16 869/1574/16 870/1580/16 +f 866/1582/15 870/1580/15 872/1583/15 +f 872/1583/13 870/1580/13 869/1574/13 diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign_flipped.png b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign_flipped.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a60e3c8f66f8fae90c1abc79442a6f2b7dc3ce GIT binary patch literal 582 zcmV-M0=fN(P)S5dIQMueFD=gua4^_!iQm4R(=?dmGk5pvjlQIz-FewWnZ!^vArM za#%h&UwvNY%1${(4=6Hor&TJ%*>WhJxBl|#^8DWE}K%JK~ z(uA%c-rhf)Hnp3uXr6P9DW^^oTK9pn^V}sb19b(q4JSRjHlR8^kgI^piA`1)zc;`Z UdlEXddH?_b07*qoM6N<$f;)Kw*8l(j literal 0 HcmV?d00001 From 9ad76d3bccb202d4db8a9078212574e8a0e2c2b8 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sat, 2 Dec 2023 09:24:46 -0500 Subject: [PATCH 048/376] core strand caster stuffs --- .../blocks/machine/MachineStrandCaster.java | 189 +++++++++++++++++ .../container/ContainerStrandCaster.java | 74 +++++++ .../hbm/inventory/gui/GUIStrandCaster.java | 102 +++++++++ .../hbm/tileentity/TileEntityProxyCombo.java | 6 +- .../machine/TileEntityFoundryCastingBase.java | 3 +- .../TileEntityMachineStrandCaster.java | 195 ++++++++++++++++++ .../gui/processing/gui_strand_caster.png | Bin 0 -> 16344 bytes 7 files changed, 567 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerStrandCaster.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIStrandCaster.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_strand_caster.png diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java new file mode 100644 index 000000000..7d45b7911 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -0,0 +1,189 @@ +package com.hbm.blocks.machine; + +import api.hbm.block.ICrucibleAcceptor; +import api.hbm.block.IToolable; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMold; +import com.hbm.items.machine.ItemScraps; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityCrucible; +import com.hbm.tileentity.machine.TileEntityFoundryCastingBase; +import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcceptor, ILookOverlay { + + public MachineStrandCaster() { + super(Material.iron); + } + //reminder, if the machine is a solid brick, get dimensions will already handle it without the need to use fillSapce + //the order is up, down, forward, backward, left, right + //x is for left(-)/right(+), z is for forward(+)/backward(-), y you already know + @Override + public int[] getDimensions() {return new int[]{0, 0, 6, 0, 1, 0};} + + @Override + public int getOffset() { + return 0; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityMachineStrandCaster(); + if(meta >= 6) return new TileEntityProxyCombo(true, false, true).moltenMetal(); + return null; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[]{1, 0, 1, 0, 1, 0}, this, dir); + + this.makeExtra(world, x - dir.offsetX, y, z); + this.makeExtra(world, x, y, z + dir.offsetX * 5); + this.makeExtra(world, x- dir.offsetX, y, z + dir.offsetX * 5); + } + + @Override + public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + + TileEntity poured = world.getTileEntity(x, y, z); + if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo)poured).moltenMetal)) return false; + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(tile instanceof TileEntityMachineStrandCaster)) return false; + TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; + + return caster.canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack); + } + + @Override + public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + + TileEntity poured = world.getTileEntity(x, y, z); + if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo)poured).moltenMetal)) return stack; + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return stack; + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(tile instanceof TileEntityMachineStrandCaster)) return stack; + TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; + + return caster.pour(world, x, y, z, dX, dY, dZ, side, stack); + } + + @Override + public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + return false; + } + + @Override + public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + return null; + } + ///entirety of foundry base code here, because dual inheritance is evil apparently + + @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; + } + + TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); + + //insert mold + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) { + cast.slots[0] = player.getHeldItem().copy(); + cast.slots[0].stackSize = 1; + player.getHeldItem().stackSize--; + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + cast.markDirty(); + world.markBlockForUpdate(x, y, z); + return true; + + } + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && player.getHeldItem().getItem().getToolClasses(player.getHeldItem()).contains("shovel")) { + if(cast.amount > 0) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); + if(!player.inventory.addItemStackToInventory(scrap)) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } + cast.amount = 0; + cast.type = null; + cast.markDirty(); + world.markBlockForUpdate(x, y, z); + } + return true; + } + + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block b, int i) { + + TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); + if(cast.amount > 0) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); + world.spawnEntityInWorld(item); + cast.amount = 0; //just for safety + } + + for(ItemStack stack : cast.slots) { + if(stack != null) { + EntityItem drop = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, stack.copy()); + world.spawnEntityInWorld(drop); + } + } + + super.breakBlock(world, x, y, z, b, i); + } + + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); + List text = new ArrayList(); + + if(cast.slots[0] == null) { + text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast")); + } else if(cast.slots[0].getItem() == ModItems.mold){ + ItemMold.Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]); + text.add(EnumChatFormatting.BLUE + mold.getTitle()); + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text); + } +} + diff --git a/src/main/java/com/hbm/inventory/container/ContainerStrandCaster.java b/src/main/java/com/hbm/inventory/container/ContainerStrandCaster.java new file mode 100644 index 000000000..f87f592d0 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerStrandCaster.java @@ -0,0 +1,74 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; +import com.hbm.util.InventoryUtil; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerStrandCaster extends Container { + + protected TileEntityMachineStrandCaster caster; + + public ContainerStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster caster) { + this.caster = caster; + + //the wretched mold + this.addSlotToContainer(new SlotNonRetarded(this.caster, 0, 57, 62)); + + //input + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 2; j++) { + this.addSlotToContainer(new SlotNonRetarded(this.caster, j + i * 3 + 1, 125 + j * 18, 26 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 132 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 190)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if(index <= 6) { + if(!this.mergeItemStack(originalStack, 10, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 0, 10, false)) { + return null; + } + + if(originalStack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return caster.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIStrandCaster.java b/src/main/java/com/hbm/inventory/gui/GUIStrandCaster.java new file mode 100644 index 000000000..9d31e4b1f --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIStrandCaster.java @@ -0,0 +1,102 @@ +package com.hbm.inventory.gui; + +import com.hbm.inventory.container.ContainerStrandCaster; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.material.NTMMaterial; +import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; +import com.hbm.util.I18nUtil; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +public class GUIStrandCaster extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_strand_caster.png"); + private TileEntityMachineStrandCaster caster; + + public GUIStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster tedf) { + super(new ContainerStrandCaster(invPlayer, tedf)); + caster = tedf; + + this.xSize = 176; + this.ySize = 214; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + drawStackInfo(x, y, 16, 17); + + caster.water.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 38, 16, 24); + caster.steam.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 89, 16, 24); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.caster.hasCustomInventoryName() ? this.caster.getInventoryName() : I18n.format(this.caster.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @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); + + caster.water.renderTank(guiLeft + 82, guiTop + 38, this.zLevel, 16, 24); + caster.steam.renderTank(guiLeft + 82, guiTop + 89, this.zLevel, 16, 24); + + if (caster.amount != 0) { + + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + + int targetHeight = (caster.amount) * 79 / caster.getCapacity(); + int offset = caster.type.smeltable == SmeltingBehavior.ADDITIVE ? 34 : 0; //additives use a differnt texture + + int hex = caster.type.moltenColor; + //hex = 0xC18336; + Color color = new Color(hex); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + 17, guiTop + 92 - targetHeight, 176 + offset, 89 - targetHeight, 34, targetHeight); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 0.3F); + drawTexturedModalRect(guiLeft + 17, guiTop + 92 - targetHeight, 176 + offset, 89 - targetHeight, 34, targetHeight); + GL11.glDisable(GL11.GL_BLEND); + } + + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor3f(255, 255, 255); + } + + + + protected void drawStackInfo(int mouseX, int mouseY, int x, int y) { + + List list = new ArrayList(); + + if(caster.type == null) list.add(EnumChatFormatting.RED + "Empty"); + else list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey(caster.type.getUnlocalizedName()) + ": " + Mats.formatAmount(caster.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + x, guiTop + y, 36, 81, mouseX, mouseY, list); + } + + + + +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index eb4a603e0..593a33505 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -23,6 +23,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy boolean power; boolean fluid; boolean heat; + public boolean moltenMetal; public TileEntityProxyCombo() { } @@ -41,7 +42,10 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy this.power = true; return this; } - + public TileEntityProxyCombo moltenMetal() { + this.moltenMetal = true; + return this; + } public TileEntityProxyCombo fluid() { this.fluid = true; return this; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java index bf2e63a95..fd3916492 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java @@ -22,7 +22,8 @@ public abstract class TileEntityFoundryCastingBase extends TileEntityFoundryBase public ItemStack slots[] = new ItemStack[2]; public int cooloff = 100; - + + @Override public void updateEntity() { super.updateEntity(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java new file mode 100644 index 000000000..cf09975e3 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -0,0 +1,195 @@ +package com.hbm.tileentity.machine; + +import api.hbm.block.ICrucibleAcceptor; +import api.hbm.fluid.IFluidStandardTransceiver; +import com.hbm.blocks.BlockDummyable; +import com.hbm.inventory.container.ContainerAssemfac; +import com.hbm.inventory.container.ContainerStrandCaster; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIAssemfac; +import com.hbm.inventory.gui.GUIStrandCaster; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMold; +import com.hbm.packet.NBTPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.util.fauxpointtwelve.DirPos; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +//god thank you bob for this base class +public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase implements IGUIProvider, ICrucibleAcceptor,ISidedInventory, IFluidStandardTransceiver, INBTPacketReceiver { + public FluidTank water; + public FluidTank steam; + + public ItemStack[] slots = new ItemStack[6]; + + public TileEntityMachineStrandCaster() { + + water = new FluidTank(Fluids.WATER, 64_000); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); + } + int cooldown = 10; + @Override + public void updateEntity() { + super.updateEntity(); + + if(!worldObj.isRemote) { + + if(this.amount > this.getCapacity()) { + this.amount = this.getCapacity(); + } + + if(this.amount == 0) { + this.type = null; + } + + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.updateConnections(); + } + + for(DirPos pos : getConPos()) { + this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + ItemMold.Mold mold = this.getInstalledMold(); + + if(mold != null && this.amount >= this.getCapacity() && slots[1] == null && water.getFill() >= getWaterRequired() ) { + cooldown--; + + if(cooldown <= 0) { + this.amount -= mold.getCost(); + + ItemStack out = mold.getOutput(type); + + for(int i = 1; i < 7; i++) { + if(slots[i].isItemEqual(out) && slots[i].stackSize + out.stackSize <= out.getMaxStackSize()) { + continue; + } + + if(slots[i] == null) { + slots[i] = out.copy(); + } else { + slots[i].stackSize += out.stackSize; + } + } + } + + water.setFill(water.getFill() - getWaterRequired()); + steam.setFill(steam.getFill() + getWaterRequired()); + + cooldown = 20; + } + NBTTagCompound data = new NBTTagCompound(); + + water.writeToNBT(data, "w"); + steam.writeToNBT(data, "s"); + + this.networkPack(data, 150); + + } else { + cooldown = 20; + } + } + + + public DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord - dir.offsetX, yCoord, zCoord, rot), + new DirPos(xCoord, yCoord, zCoord + dir.offsetX, rot), + new DirPos(xCoord, yCoord, zCoord + dir.offsetX * 5, rot.getOpposite()), + new DirPos(xCoord- dir.offsetX, yCoord, zCoord + dir.offsetX * 5, rot.getOpposite()), + }; + } + @Override + public int getMoldSize() { + return getInstalledMold().size; + } + + @Override + public int getCapacity() { + ItemMold.Mold mold = this.getInstalledMold(); + return mold == null ? 0 : mold.getCost() * 10; + } + private int getWaterRequired() { + return getInstalledMold() != null ? 5 * getInstalledMold().getCost() : 10; + } + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { steam }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { water }; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { water, steam }; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerStrandCaster(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIStrandCaster(player.inventory, this); + } + public void networkPack(NBTTagCompound nbt, int range) { + + if(!worldObj.isRemote) + PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + @Override + public void networkUnpack(NBTTagCompound nbt) { + water.readFromNBT(nbt, "w"); + steam.readFromNBT(nbt, "s"); + } + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + + if(i == 0) { + return stack.getItem() == ModItems.mold; + } + + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 1, 2, 3, 4, 5, 6}; + } + +} diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_strand_caster.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_strand_caster.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3253374240386f1091cfcace39043063e5c338 GIT binary patch literal 16344 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 Date: Sun, 24 Dec 2023 14:14:35 -0500 Subject: [PATCH 049/376] caster o' strands, part deux --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../blocks/machine/MachineStrandCaster.java | 118 +- ...java => ContainerMachineStrandCaster.java} | 15 +- ...aster.java => GUIMachineStrandCaster.java} | 32 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 10 +- .../render/tileentity/RenderStrandCaster.java | 63 + .../hbm/tileentity/TileEntityProxyCombo.java | 37 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityFoundryBasin.java | 11 +- .../machine/TileEntityFoundryCastingBase.java | 9 +- .../machine/TileEntityFoundryMold.java | 11 +- .../TileEntityMachineStrandCaster.java | 210 ++- src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/models/machines/strand_caster.obj | 1214 +++++++++++++++++ 15 files changed, 1602 insertions(+), 135 deletions(-) rename src/main/java/com/hbm/inventory/container/{ContainerStrandCaster.java => ContainerMachineStrandCaster.java} (81%) rename src/main/java/com/hbm/inventory/gui/{GUIStrandCaster.java => GUIMachineStrandCaster.java} (77%) create mode 100644 src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java create mode 100644 src/main/resources/assets/hbm/models/machines/strand_caster.obj diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7c656c712..3261a803d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -694,6 +694,7 @@ public class ModBlocks { public static Block foundry_channel; public static Block foundry_tank; public static Block foundry_outlet; + public static Block machine_strand_caster; public static Block foundry_slagtap; public static Block slag; @@ -1854,6 +1855,7 @@ public class ModBlocks { machine_stirling_steel = new MachineStirling().setBlockName("machine_stirling_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_stirling_creative = new MachineStirling().setBlockName("machine_stirling_creative").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_strand_caster = new MachineStrandCaster().setBlockName("machine_strand_caster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); machine_industrial_boiler = new MachineHeatBoilerIndustrial().setBlockName("machine_industrial_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3152,6 +3154,7 @@ public class ModBlocks { register(machine_stirling_creative); register(machine_sawmill); register(machine_crucible); + register(machine_strand_caster); register(machine_boiler); register(machine_industrial_boiler); register(foundry_mold); diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java index 7d45b7911..f515325ee 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -63,11 +63,15 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce x += dir.offsetX * o; z += dir.offsetZ * o; - MultiblockHandlerXR.fillSpace(world, x, y, z, new int[]{1, 0, 1, 0, 1, 0}, this, dir); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + //up,down;forward,backward;left,right + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[]{2, 0, 1, 0, 1, 0}, this, dir); + + this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX * 5, y, z - dir.offsetZ * 5); + this.makeExtra(world, x + rot.offsetX - dir.offsetX * 5, y, z + rot.offsetZ - dir.offsetZ * 5); - this.makeExtra(world, x - dir.offsetX, y, z); - this.makeExtra(world, x, y, z + dir.offsetX * 5); - this.makeExtra(world, x- dir.offsetX, y, z + dir.offsetX * 5); } @Override @@ -109,7 +113,6 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { return null; } - ///entirety of foundry base code here, because dual inheritance is evil apparently @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { @@ -117,73 +120,82 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce return true; } - TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); - - //insert mold - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) { - cast.slots[0] = player.getHeldItem().copy(); - cast.slots[0].stackSize = 1; - player.getHeldItem().stackSize--; - world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); - cast.markDirty(); - world.markBlockForUpdate(x, y, z); - return true; - - } - - if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && player.getHeldItem().getItem().getToolClasses(player.getHeldItem()).contains("shovel")) { - if(cast.amount > 0) { - ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); - if(!player.inventory.addItemStackToInventory(scrap)) { - EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); - world.spawnEntityInWorld(item); - } else { - player.inventoryContainer.detectAndSendChanges(); - } - cast.amount = 0; - cast.type = null; + int[] coords = findCore(world, x, y, z); + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); + if(cast != null) { + //insert mold + if (player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) { + cast.slots[0] = player.getHeldItem().copy(); + cast.slots[0].stackSize = 1; + player.getHeldItem().stackSize--; + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); cast.markDirty(); world.markBlockForUpdate(x, y, z); - } - return true; - } + return true; + } + + if (player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && player.getHeldItem().getItem().getToolClasses(player.getHeldItem()).contains("shovel")) { + if (cast.amount > 0) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); + if (!player.inventory.addItemStackToInventory(scrap)) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } + cast.amount = 0; + cast.type = null; + cast.markDirty(); + world.markBlockForUpdate(x, y, z); + } + return true; + } + } return this.standardOpenBehavior(world, x, y, z, player, 0); } @Override public void breakBlock(World world, int x, int y, int z, Block b, int i) { - TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); - if(cast.amount > 0) { - ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); - EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); - world.spawnEntityInWorld(item); - cast.amount = 0; //just for safety - } + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TileEntityMachineStrandCaster) { + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) te; - for(ItemStack stack : cast.slots) { - if(stack != null) { - EntityItem drop = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, stack.copy()); - world.spawnEntityInWorld(drop); + if (cast.amount > 0) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); + world.spawnEntityInWorld(item); + cast.amount = 0; //just for safety } } - super.breakBlock(world, x, y, z, b, i); } public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { - TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); + int[] coords = findCore(world, x, y, z); + if(coords == null) return; + + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); + List text = new ArrayList(); - - if(cast.slots[0] == null) { - text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast")); - } else if(cast.slots[0].getItem() == ModItems.mold){ - ItemMold.Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]); - text.add(EnumChatFormatting.BLUE + mold.getTitle()); + if(cast != null) { + if (cast.slots[0] == null) { + text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast")); + } else if (cast.slots[0].getItem() == ModItems.mold) { + ItemMold.Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]); + text.add(EnumChatFormatting.BLUE + mold.getTitle()); + } } - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text); } + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + x += dir.offsetX * o; + z += dir.offsetZ * o; + + if(!MultiblockHandlerXR.checkSpace(world, x, y , z, getDimensions(), x, y, z, dir)) return false; + return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[]{2, 0, 1, 0, 1, 0}, x, y, z, dir); + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerStrandCaster.java b/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java similarity index 81% rename from src/main/java/com/hbm/inventory/container/ContainerStrandCaster.java rename to src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java index f87f592d0..1742c470c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerStrandCaster.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java @@ -9,22 +9,23 @@ import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -public class ContainerStrandCaster extends Container { +public class ContainerMachineStrandCaster extends Container { protected TileEntityMachineStrandCaster caster; - public ContainerStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster caster) { + public ContainerMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster caster) { this.caster = caster; //the wretched mold this.addSlotToContainer(new SlotNonRetarded(this.caster, 0, 57, 62)); - //input + //output for(int i = 0; i < 3; i++) { for(int j = 0; j < 2; j++) { - this.addSlotToContainer(new SlotNonRetarded(this.caster, j + i * 3 + 1, 125 + j * 18, 26 + i * 18)); + this.addSlotToContainer(new SlotNonRetarded(this.caster, j + i * 2 + 1, 125 + j * 18, 26 + i * 18)); } } + for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -47,18 +48,18 @@ public class ContainerStrandCaster extends Container { stack = originalStack.copy(); if(index <= 6) { - if(!this.mergeItemStack(originalStack, 10, this.inventorySlots.size(), true)) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 7, this.inventorySlots.size(), true)) { return null; } slot.onSlotChange(originalStack, stack); - } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 0, 10, false)) { + } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 0, 7, false)) { return null; } if(originalStack.stackSize == 0) { - slot.putStack((ItemStack) null); + slot.putStack(null); } else { slot.onSlotChanged(); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIStrandCaster.java b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java similarity index 77% rename from src/main/java/com/hbm/inventory/gui/GUIStrandCaster.java rename to src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java index 9d31e4b1f..16a151207 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIStrandCaster.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java @@ -1,9 +1,7 @@ package com.hbm.inventory.gui; -import com.hbm.inventory.container.ContainerStrandCaster; +import com.hbm.inventory.container.ContainerMachineStrandCaster; import com.hbm.inventory.material.Mats; -import com.hbm.inventory.material.Mats.MaterialStack; -import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; @@ -20,15 +18,14 @@ import org.lwjgl.opengl.GL11; import java.awt.*; import java.util.ArrayList; import java.util.List; -import java.util.Locale; -public class GUIStrandCaster extends GuiInfoContainer { +public class GUIMachineStrandCaster extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_strand_caster.png"); private TileEntityMachineStrandCaster caster; - public GUIStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster tedf) { - super(new ContainerStrandCaster(invPlayer, tedf)); + public GUIMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster tedf) { + super(new ContainerMachineStrandCaster(invPlayer, tedf)); caster = tedf; this.xSize = 176; @@ -41,47 +38,48 @@ public class GUIStrandCaster extends GuiInfoContainer { drawStackInfo(x, y, 16, 17); - caster.water.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 38, 16, 24); - caster.steam.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 89, 16, 24); + caster.water.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 14, 16, 24); + caster.steam.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 64, 16, 24); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.caster.hasCustomInventoryName() ? this.caster.getInventoryName() : I18n.format(this.caster.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 0xffffff); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @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); - caster.water.renderTank(guiLeft + 82, guiTop + 38, this.zLevel, 16, 24); - caster.steam.renderTank(guiLeft + 82, guiTop + 89, this.zLevel, 16, 24); - if (caster.amount != 0) { GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); int targetHeight = (caster.amount) * 79 / caster.getCapacity(); - int offset = caster.type.smeltable == SmeltingBehavior.ADDITIVE ? 34 : 0; //additives use a differnt texture int hex = caster.type.moltenColor; //hex = 0xC18336; Color color = new Color(hex); GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); - drawTexturedModalRect(guiLeft + 17, guiTop + 92 - targetHeight, 176 + offset, 89 - targetHeight, 34, targetHeight); + drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); GL11.glEnable(GL11.GL_BLEND); GL11.glColor4f(1F, 1F, 1F, 0.3F); - drawTexturedModalRect(guiLeft + 17, guiTop + 92 - targetHeight, 176 + offset, 89 - targetHeight, 34, targetHeight); + drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); GL11.glDisable(GL11.GL_BLEND); - } + } OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glColor3f(255, 255, 255); + + caster.water.renderTank(guiLeft + 82, guiTop + 38, this.zLevel, 16, 24); + caster.steam.renderTank(guiLeft + 82, guiTop + 90, this.zLevel, 16, 24); + } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ab715f454..fa932c02a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -307,6 +307,7 @@ public class ClientProxy extends ServerProxy { //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineStrandCaster.class, new RenderStrandCaster()); //AMS ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 38837f228..349d6da07 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -50,7 +50,10 @@ public class ResourceManager { public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj")); public static final IModelCustom boiler_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/industrial_boiler.obj")); public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")); - + + //Caster o' Strands + public static final IModelCustom strand_caster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/strand_caster.obj")); + //Furnaces public static final IModelCustom furnace_iron = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_iron.obj")); public static final IModelCustom furnace_steel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_steel.obj")); @@ -447,7 +450,10 @@ public class ResourceManager { public static final ResourceLocation boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/boiler.png"); public static final ResourceLocation boiler_industrial_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/industrial_boiler.png"); public static final ResourceLocation hephaestus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/hephaestus.png"); - + + //Strand Caster + public static final ResourceLocation strand_caster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/strand_caster.png"); + //Furnaces public static final ResourceLocation furnace_iron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_iron.png"); public static final ResourceLocation furnace_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_steel.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java new file mode 100644 index 000000000..cba933802 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java @@ -0,0 +1,63 @@ +package com.hbm.render.tileentity; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; +import org.lwjgl.opengl.GL11; + +public class RenderStrandCaster extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + + GL11.glTranslated(x, y, z); + switch(te.getBlockMetadata() - BlockDummyable.offset) { + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glRotated(180, 0, 1, 0); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + bindTexture(ResourceManager.strand_caster_tex); + ResourceManager.strand_caster.renderAll(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_strand_caster); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(1, 1, 0); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.strand_caster_tex); ResourceManager.strand_caster.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } + +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index 593a33505..edf40ace1 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -1,6 +1,7 @@ package com.hbm.tileentity; +import api.hbm.block.ICrucibleAcceptor; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.fluid.FluidType; @@ -9,14 +10,16 @@ import api.hbm.energy.IEnergyConnector; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidConnector; import api.hbm.tile.IHeatSource; +import com.hbm.inventory.material.Mats; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyUser, IFluidAcceptor, ISidedInventory, IFluidConnector, IHeatSource { +public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyUser, IFluidAcceptor, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor { TileEntity tile; boolean inventory; @@ -501,4 +504,36 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy ((IHeatSource)getTile()).useUpHeat(heat); } } + + @Override + public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getTile()).canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack); + } + return false; + } + + @Override + public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getTile()).pour(world, x, y, z, dX, dY, dZ, side, stack); + } + return null; + } + + @Override + public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getTile()).canAcceptPartialFlow(world, x, y, z, side, stack); + } + return false; + } + + @Override + public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getTile()).flow(world, x, y, z, side, stack); + } + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index d51bdab4b..807e3e8df 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -297,6 +297,7 @@ public class TileMappings { put(TileEntityFoundryOutlet.class, "tileentity_foundry_outlet"); put(TileEntityFoundrySlagtap.class, "tileentity_foundry_slagtap"); put(TileEntitySlag.class, "tileentity_foundry_slag"); + put(TileEntityMachineStrandCaster.class, "tileentity_strand_caster"); put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java index 145c2159a..9003229c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java @@ -7,7 +7,16 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityFoundryBasin extends TileEntityFoundryCastingBase implements IRenderFoundry { - + + public TileEntityFoundryBasin() { + super(2); + } + + @Override + public String getName() { + return null; + } + @Override public void updateEntity() { super.updateEntity(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java index fd3916492..3267ac602 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java @@ -7,6 +7,7 @@ import com.hbm.items.machine.ItemMold.Mold; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -19,11 +20,15 @@ import net.minecraftforge.common.util.ForgeDirection; * */ public abstract class TileEntityFoundryCastingBase extends TileEntityFoundryBase implements ISidedInventory { - - public ItemStack slots[] = new ItemStack[2]; + public ItemStack[] slots; + public TileEntityFoundryCastingBase(int slotCount) { + slots = new ItemStack[slotCount]; + } public int cooloff = 100; + public abstract String getName(); + @Override public void updateEntity() { super.updateEntity(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java index 607b1d13c..146e79b1b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java @@ -3,7 +3,16 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.material.NTMMaterial; public class TileEntityFoundryMold extends TileEntityFoundryCastingBase implements IRenderFoundry { - + + public TileEntityFoundryMold() { + super(2); + } + + @Override + public String getName() { + return null; + } + @Override public void updateEntity() { super.updateEntity(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index cf09975e3..188dd6ab2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -3,14 +3,15 @@ package com.hbm.tileentity.machine; import api.hbm.block.ICrucibleAcceptor; import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.BlockDummyable; -import com.hbm.inventory.container.ContainerAssemfac; -import com.hbm.inventory.container.ContainerStrandCaster; +import com.hbm.inventory.container.ContainerMachineStrandCaster; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIAssemfac; -import com.hbm.inventory.gui.GUIStrandCaster; +import com.hbm.inventory.gui.GUIMachineStrandCaster; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMold; +import com.hbm.items.machine.ItemScraps; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; @@ -20,120 +21,169 @@ import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; //god thank you bob for this base class -public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase implements IGUIProvider, ICrucibleAcceptor,ISidedInventory, IFluidStandardTransceiver, INBTPacketReceiver { +public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase implements IGUIProvider, ICrucibleAcceptor,ISidedInventory, IFluidStandardTransceiver, INBTPacketReceiver, IInventory { + public FluidTank water; public FluidTank steam; - - public ItemStack[] slots = new ItemStack[6]; + @Override + public String getName() { + return "container.machineStrandCaster"; + } + @Override + public String getInventoryName() { + return getName(); + } public TileEntityMachineStrandCaster() { - + super(7); water = new FluidTank(Fluids.WATER, 64_000); steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); } - int cooldown = 10; + + @Override public void updateEntity() { - super.updateEntity(); - if(!worldObj.isRemote) { + if (!worldObj.isRemote) { - if(this.amount > this.getCapacity()) { - this.amount = this.getCapacity(); + if (this.lastType != this.type || this.lastAmount != this.amount) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + this.lastType = this.type; + this.lastAmount = this.amount; } - if(this.amount == 0) { + if (this.amount >= this.getCapacity()) { + if(amount > getCapacity()) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, amount)); + EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, scrap); + worldObj.spawnEntityInWorld(item); + } + this.amount = this.getCapacity(); + + } + + if (this.amount == 0) { this.type = null; } - if(worldObj.getTotalWorldTime() % 20 == 0) { + if (worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); } - for(DirPos pos : getConPos()) { - this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } ItemMold.Mold mold = this.getInstalledMold(); - if(mold != null && this.amount >= this.getCapacity() && slots[1] == null && water.getFill() >= getWaterRequired() ) { - cooldown--; + if (canProcess()) { - if(cooldown <= 0) { - this.amount -= mold.getCost(); + int itemsCasted = Math.min(amount / mold.getCost(), 9); - ItemStack out = mold.getOutput(type); + for (int j = 0; j < itemsCasted; j++) { + this.amount -= mold.getCost(); - for(int i = 1; i < 7; i++) { - if(slots[i].isItemEqual(out) && slots[i].stackSize + out.stackSize <= out.getMaxStackSize()) { - continue; - } + ItemStack out = mold.getOutput(type); + + for (int i = 1; i < 7; i++) { + if (slots[i] == null){ + slots[i] = out.copy(); + break; + } + + if (slots[i].isItemEqual(out) && slots[i].stackSize + out.stackSize <= out.getMaxStackSize()) { + slots[i].stackSize += out.stackSize; + break; + } - if(slots[i] == null) { - slots[i] = out.copy(); - } else { - slots[i].stackSize += out.stackSize; } } + markChanged(); + + water.setFill(water.getFill() - getWaterRequired() * itemsCasted); + steam.setFill(steam.getFill() + getWaterRequired() * itemsCasted); } + } - water.setFill(water.getFill() - getWaterRequired()); - steam.setFill(steam.getFill() + getWaterRequired()); + NBTTagCompound data = new NBTTagCompound(); - cooldown = 20; - } - NBTTagCompound data = new NBTTagCompound(); + water.writeToNBT(data, "w"); + steam.writeToNBT(data, "s"); - water.writeToNBT(data, "w"); - steam.writeToNBT(data, "s"); + this.networkPack(data, 150); - this.networkPack(data, 150); + } + + public boolean canProcess() { + ItemMold.Mold mold = this.getInstalledMold(); + if(type != null && mold != null && this.amount >= mold.getCost() * 9 && mold.getOutput(type) != null) { + for (int i = 1; i < 7; i++) { + + if (slots[i] == null || slots[i].isItemEqual(mold.getOutput(type)) && slots[i].stackSize + mold.getOutput(type).stackSize <= mold.getOutput(type).getMaxStackSize()) + return water.getFill() >= getWaterRequired() && steam.getFill() < steam.getMaxFill();; - } else { - cooldown = 20; } } - + return false; + } public DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); return new DirPos[] { - new DirPos(xCoord - dir.offsetX, yCoord, zCoord, rot), - new DirPos(xCoord, yCoord, zCoord + dir.offsetX, rot), - new DirPos(xCoord, yCoord, zCoord + dir.offsetX * 5, rot.getOpposite()), - new DirPos(xCoord- dir.offsetX, yCoord, zCoord + dir.offsetX * 5, rot.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), + new DirPos(xCoord - rot.offsetX, yCoord, zCoord - rot.offsetZ, rot.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX * 5, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 5, rot), + new DirPos(xCoord - rot.offsetX - dir.offsetX * 5, yCoord, zCoord - rot.offsetZ + dir.offsetZ * 5, rot.getOpposite()), }; } @Override + public ItemMold.Mold getInstalledMold() { + if(slots[0] == null) return null; + + if(slots[0].getItem() == ModItems.mold) { + return ((ItemMold) slots[0].getItem()).getMold(slots[0]); + } + + return null; + } + @Override public int getMoldSize() { return getInstalledMold().size; } - + @Override + public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + if(this.type != null && this.type != stack.material) return false; + return this.amount >= this.getCapacity() && getInstalledMold() == null; + } @Override public int getCapacity() { ItemMold.Mold mold = this.getInstalledMold(); - return mold == null ? 0 : mold.getCost() * 10; + return mold == null ? 50000 : mold.getCost() * 50; } private int getWaterRequired() { - return getInstalledMold() != null ? 5 * getInstalledMold().getCost() : 10; + return getInstalledMold() != null ? 5 * getInstalledMold().getCost() : 50; } + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } + for(DirPos pos : getConPos()) { + sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } } @Override @@ -153,14 +203,15 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerStrandCaster(player.inventory, this); + return new ContainerMachineStrandCaster(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIStrandCaster(player.inventory, this); + return new GUIMachineStrandCaster(player.inventory, this); } + public void networkPack(NBTTagCompound nbt, int range) { if(!worldObj.isRemote) @@ -170,6 +221,20 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase public void networkUnpack(NBTTagCompound nbt) { water.readFromNBT(nbt, "w"); steam.readFromNBT(nbt, "s"); + + } + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + water.writeToNBT(nbt, "w"); + steam.writeToNBT(nbt, "s"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + water.readFromNBT(nbt, "w"); + steam.readFromNBT(nbt, "s"); } @Override public boolean isItemValidForSlot(int i, ItemStack stack) { @@ -192,4 +257,47 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase return new int[] { 1, 2, 3, 4, 5, 6}; } + public void markChanged() { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + } + + + @Override + public boolean canInsertItem(int slot, ItemStack itemStack, int side) { + return this.isItemValidForSlot(slot, itemStack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return !this.isItemValidForSlot(slot, itemStack); + } + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 7 + ); + } + + return bb; + } + + + } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f9681a2c0..7e4307b2a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -720,6 +720,7 @@ container.machineSelenium=Radial Performance Engine container.machineShredder=Shredder container.machineSILEX=SILEX container.machineSolidifier=Solidifier +container.machineStrandCaster=Strand Caster container.machineTurbine=Steam Turbine container.machineTurbofan=Turbofan container.machineWoodBurner=Wood-Burner @@ -5190,6 +5191,7 @@ tile.machine_stirling_creative.desc=Turns heat into energy. Requires external he tile.machine_stirling_steel.name=Heavy Stirling Engine tile.machine_stirling_steel.desc=Turns heat into energy. Requires external heat source.$Uses a much heavier gear to support higher temperatures.$Heat transfer rate: T*0.1 TU/t$Max intake: 1500 TU/t$Efficiency: 50%% tile.machine_storage_drum.name=Nuclear Waste Disposal Drum +tile.machine_strand_caster.name=Strand Caster tile.machine_telelinker.name=Turret Telemetry Linker tile.machine_teleporter.name=Teleporter tile.machine_tower_large.name=Cooling Tower diff --git a/src/main/resources/assets/hbm/models/machines/strand_caster.obj b/src/main/resources/assets/hbm/models/machines/strand_caster.obj new file mode 100644 index 000000000..2a3ac8b78 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/strand_caster.obj @@ -0,0 +1,1214 @@ +# Blender v2.79 (sub 0) OBJ File: 'strand_caster.blend' +# www.blender.org +o Plane +v -1.000000 0.000000 1.000000 +v 1.000000 0.000000 1.000000 +v -1.000000 0.000000 -6.000000 +v 1.000000 0.000000 -6.000000 +v -1.000000 0.750000 -6.000000 +v -1.000000 0.750000 1.000000 +v 1.000000 0.750000 1.000000 +v 1.000000 0.750000 -6.000000 +v -1.000000 2.000000 1.000000 +v 1.000000 2.000000 1.000000 +v -1.000000 3.000000 1.000000 +v 1.000000 3.000000 1.000000 +v -1.000000 2.000000 -1.000000 +v 1.000000 2.000000 -1.000000 +v -1.000000 3.000000 -1.000000 +v 1.000000 3.000000 -1.000000 +v -0.875000 3.000000 0.875000 +v 0.875000 3.000000 0.875000 +v -0.875000 3.000000 -0.875000 +v 0.875000 3.000000 -0.875000 +v -0.875000 2.125000 0.875000 +v 0.875000 2.125000 0.875000 +v -0.875000 2.125000 -0.875000 +v 0.875000 2.125000 -0.875000 +v -0.750000 2.000000 0.750000 +v 0.750000 2.000000 0.750000 +v -0.750000 2.000000 -0.750000 +v 0.750000 2.000000 -0.750000 +v -0.750000 0.500000 -1.500000 +v -0.750000 0.500000 0.750000 +v 0.750000 0.500000 0.750000 +v 0.750000 0.500000 -1.500000 +v -0.750000 0.750000 -5.750000 +v -0.750000 0.750000 0.750000 +v 0.750000 0.750000 0.750000 +v 0.750000 0.750000 -5.750000 +v -0.750000 0.500000 -5.750000 +v -0.750000 0.500000 0.750000 +v 0.750000 0.500000 0.750000 +v 0.750000 0.500000 -5.750000 +v -0.500000 0.937500 -1.500000 +v 0.500000 0.937500 -1.500000 +v -0.500000 0.937500 -5.250000 +v 0.500000 0.937500 -5.250000 +v -0.500000 1.062500 -5.250000 +v -0.500000 1.062500 -1.500000 +v 0.500000 1.062500 -1.500000 +v 0.500000 1.062500 -5.250000 +v 0.750000 1.250000 -1.500000 +v -0.750000 1.250000 -1.500000 +v 0.750000 0.812500 -3.125000 +v -0.750000 0.812500 -3.125000 +v -0.750000 0.812500 -2.125000 +v 0.750000 0.812500 -2.125000 +v -0.750000 0.724112 -2.088388 +v 0.750000 0.724112 -2.088388 +v -0.750000 0.687500 -2.000000 +v 0.750000 0.687500 -2.000000 +v -0.750000 0.724112 -1.911612 +v 0.750000 0.724112 -1.911612 +v -0.750000 0.812500 -1.875000 +v 0.750000 0.812500 -1.875000 +v -0.750000 0.900888 -1.911612 +v 0.750000 0.900888 -1.911612 +v -0.750000 0.937500 -2.000000 +v 0.750000 0.937500 -2.000000 +v -0.750000 0.900888 -2.088388 +v 0.750000 0.900888 -2.088388 +v -0.750000 0.724112 -3.088388 +v 0.750000 0.724112 -3.088388 +v -0.750000 0.687500 -3.000000 +v 0.750000 0.687500 -3.000000 +v -0.750000 0.724112 -2.911612 +v 0.750000 0.724112 -2.911612 +v -0.750000 0.812500 -2.875000 +v 0.750000 0.812500 -2.875000 +v -0.750000 0.900888 -2.911612 +v 0.750000 0.900888 -2.911612 +v -0.750000 0.937500 -3.000000 +v 0.750000 0.937500 -3.000000 +v -0.750000 0.900888 -3.088388 +v 0.750000 0.900888 -3.088388 +v 0.750000 0.812500 -4.125000 +v -0.750000 0.812500 -4.125000 +v -0.750000 0.724112 -4.088388 +v 0.750000 0.724112 -4.088388 +v -0.750000 0.687500 -4.000000 +v 0.750000 0.687500 -4.000000 +v -0.750000 0.724112 -3.911612 +v 0.750000 0.724112 -3.911612 +v -0.750000 0.812500 -3.875000 +v 0.750000 0.812500 -3.875000 +v -0.750000 0.900888 -3.911612 +v 0.750000 0.900888 -3.911612 +v -0.750000 0.937500 -4.000000 +v 0.750000 0.937500 -4.000000 +v -0.750000 0.900888 -4.088388 +v 0.750000 0.900888 -4.088388 +v 0.750000 0.812500 -5.125000 +v -0.750000 0.812500 -5.125000 +v -0.750000 0.724112 -5.088388 +v 0.750000 0.724112 -5.088388 +v -0.750000 0.687500 -5.000000 +v 0.750000 0.687500 -5.000000 +v -0.750000 0.724112 -4.911612 +v 0.750000 0.724112 -4.911612 +v -0.750000 0.812500 -4.875000 +v 0.750000 0.812500 -4.875000 +v -0.750000 0.900888 -4.911612 +v 0.750000 0.900888 -4.911612 +v -0.750000 0.937500 -5.000000 +v 0.750000 0.937500 -5.000000 +v -0.750000 0.900888 -5.088388 +v 0.750000 0.900888 -5.088388 +v 0.750000 1.187500 -3.625000 +v -0.750000 1.187500 -3.625000 +v -0.750000 1.187500 -2.625000 +v 0.750000 1.187500 -2.625000 +v -0.750000 1.099112 -2.588388 +v 0.750000 1.099112 -2.588388 +v -0.750000 1.062500 -2.500000 +v 0.750000 1.062500 -2.500000 +v -0.750000 1.099112 -2.411612 +v 0.750000 1.099112 -2.411612 +v -0.750000 1.187500 -2.375000 +v 0.750000 1.187500 -2.375000 +v -0.750000 1.275888 -2.411612 +v 0.750000 1.275888 -2.411612 +v -0.750000 1.312500 -2.500000 +v 0.750000 1.312500 -2.500000 +v -0.750000 1.275888 -2.588388 +v 0.750000 1.275888 -2.588388 +v -0.750000 1.099112 -3.588388 +v 0.750000 1.099112 -3.588388 +v -0.750000 1.062500 -3.500000 +v 0.750000 1.062500 -3.500000 +v -0.750000 1.099112 -3.411612 +v 0.750000 1.099112 -3.411612 +v -0.750000 1.187500 -3.375000 +v 0.750000 1.187500 -3.375000 +v -0.750000 1.275888 -3.411612 +v 0.750000 1.275888 -3.411612 +v -0.750000 1.312500 -3.500000 +v 0.750000 1.312500 -3.500000 +v -0.750000 1.275888 -3.588388 +v 0.750000 1.275888 -3.588388 +v 0.750000 1.187500 -4.625000 +v -0.750000 1.187500 -4.625000 +v -0.750000 1.099112 -4.588388 +v 0.750000 1.099112 -4.588388 +v -0.750000 1.062500 -4.500000 +v 0.750000 1.062500 -4.500000 +v -0.750000 1.099112 -4.411612 +v 0.750000 1.099112 -4.411612 +v -0.750000 1.187500 -4.375000 +v 0.750000 1.187500 -4.375000 +v -0.750000 1.275888 -4.411612 +v 0.750000 1.275888 -4.411612 +v -0.750000 1.312500 -4.500000 +v 0.750000 1.312500 -4.500000 +v -0.750000 1.275888 -4.588388 +v 0.750000 1.275888 -4.588388 +v 0.750000 0.937500 -2.125000 +v 0.875000 0.937500 -2.125000 +v 0.750000 0.937500 -2.375000 +v 0.875000 0.937500 -2.375000 +v 0.750000 1.062500 -2.375000 +v -0.750000 1.312500 -2.125000 +v -0.875000 1.312500 -2.125000 +v 0.875000 1.062500 -2.375000 +v -0.750000 1.062500 -2.375000 +v 0.750000 1.312500 -2.125000 +v 0.875000 1.312500 -2.125000 +v -0.875000 1.062500 -2.375000 +v 0.875000 1.062500 -4.625000 +v 0.750000 1.062500 -4.625000 +v -0.750000 0.937500 -2.375000 +v -0.875000 0.937500 -2.375000 +v -0.750000 0.937500 -2.125000 +v -0.875000 0.937500 -2.125000 +v 0.875000 1.312500 -4.875000 +v 0.750000 1.312500 -4.875000 +v 0.875000 0.937500 -4.625000 +v 0.750000 0.937500 -4.625000 +v 0.875000 0.937500 -4.875000 +v 0.750000 0.937500 -4.875000 +v -0.750000 1.062500 -4.625000 +v -0.875000 1.062500 -4.625000 +v -0.750000 1.312500 -4.875000 +v -0.875000 1.312500 -4.875000 +v -0.750000 0.937500 -4.625000 +v -0.875000 0.937500 -4.625000 +v -0.750000 0.937500 -4.875000 +v -0.875000 0.937500 -4.875000 +v 0.750000 0.937500 -1.625000 +v 0.875000 0.937500 -1.625000 +v -0.750000 0.937500 -1.625000 +v -0.875000 0.937500 -1.625000 +v 0.750000 0.937500 -5.375000 +v 0.875000 0.937500 -5.375000 +v -0.750000 0.937500 -5.375000 +v -0.875000 0.937500 -5.375000 +v 0.750000 0.750000 -1.625000 +v 0.875000 0.750000 -1.625000 +v -0.875000 0.750000 -1.625000 +v -0.750000 0.750000 -1.625000 +v 0.750000 0.750000 -5.375000 +v 0.875000 0.750000 -5.375000 +v -0.875000 0.750000 -5.375000 +v -0.750000 0.750000 -5.375000 +v 0.250000 1.250000 -1.500000 +v 0.161612 1.275888 -1.474112 +v 0.125000 1.338388 -1.411612 +v 0.161612 1.400888 -1.349112 +v 0.250000 1.426777 -1.323223 +v 0.338388 1.400888 -1.349112 +v 0.375000 1.338388 -1.411612 +v 0.338388 1.275888 -1.474112 +v 0.250000 1.426777 -1.573223 +v 0.161612 1.426777 -1.536612 +v 0.125000 1.426777 -1.448223 +v 0.161612 1.426777 -1.359835 +v 0.338388 1.426777 -1.359835 +v 0.375000 1.426777 -1.448223 +v 0.338388 1.426777 -1.536612 +v 0.250000 1.603553 -1.500000 +v 0.161612 1.577665 -1.474112 +v 0.125000 1.515165 -1.411612 +v 0.161612 1.452665 -1.349112 +v 0.338388 1.452665 -1.349112 +v 0.375000 1.515165 -1.411612 +v 0.338388 1.577665 -1.474112 +v -0.161612 1.275888 -1.474112 +v -0.125000 1.338388 -1.411612 +v -0.161612 1.400888 -1.349112 +v -0.250000 1.426777 -1.323223 +v -0.338388 1.400888 -1.349112 +v -0.375000 1.338388 -1.411612 +v -0.338388 1.275888 -1.474112 +v -0.250000 1.250000 -1.500000 +v 0.161612 2.152189 -0.899587 +v 0.250000 2.178077 -0.925476 +v 0.125000 2.089689 -0.837087 +v 0.161612 2.027189 -0.774587 +v 0.375000 2.089689 -0.837087 +v 0.338388 2.027189 -0.774587 +v 0.338388 2.152189 -0.899587 +v 0.250000 2.001301 -0.748699 +v -0.250000 1.426777 -1.573223 +v -0.338388 1.426777 -1.536612 +v -0.375000 1.426777 -1.448223 +v -0.338388 1.426777 -1.359835 +v -0.161612 1.426777 -1.359835 +v -0.125000 1.426777 -1.448223 +v -0.161612 1.426777 -1.536612 +v -0.250000 1.603553 -1.500000 +v -0.338388 1.577665 -1.474112 +v -0.375000 1.515165 -1.411612 +v -0.338388 1.452665 -1.349112 +v -0.161612 1.452665 -1.349112 +v -0.125000 1.515165 -1.411612 +v -0.161612 1.577665 -1.474112 +v -0.338388 2.152189 -0.899587 +v -0.250000 2.178077 -0.925476 +v -0.375000 2.089689 -0.837087 +v -0.338388 2.027189 -0.774587 +v -0.125000 2.089689 -0.837087 +v -0.161612 2.027189 -0.774587 +v -0.161612 2.152189 -0.899587 +v -0.250000 2.001301 -0.748699 +v 0.750000 0.750000 -0.125000 +v 0.750000 2.000000 -0.125000 +v 0.838388 0.750000 -0.088388 +v 0.838388 2.000000 -0.088388 +v 0.875000 0.750000 0.000000 +v 0.875000 2.000000 0.000000 +v 0.838388 0.750000 0.088388 +v 0.838388 2.000000 0.088388 +v 0.750000 0.750000 0.125000 +v 0.750000 2.000000 0.125000 +v 0.750000 0.750000 0.375000 +v 0.750000 2.000000 0.375000 +v 0.838388 0.750000 0.411612 +v 0.838388 2.000000 0.411612 +v 0.875000 0.750000 0.500000 +v 0.875000 2.000000 0.500000 +v 0.838388 0.750000 0.588388 +v 0.838388 2.000000 0.588388 +v 0.750000 0.750000 0.625000 +v 0.750000 2.000000 0.625000 +v 0.750000 0.750000 -0.625000 +v 0.750000 2.000000 -0.625000 +v 0.838388 0.750000 -0.588388 +v 0.838388 2.000000 -0.588388 +v 0.875000 0.750000 -0.500000 +v 0.875000 2.000000 -0.500000 +v 0.838388 0.750000 -0.411612 +v 0.838388 2.000000 -0.411612 +v 0.750000 0.750000 -0.375000 +v 0.750000 2.000000 -0.375000 +v -0.750000 0.750000 -0.125000 +v -0.750000 2.000000 -0.125000 +v -0.750000 0.750000 0.125000 +v -0.750000 2.000000 0.125000 +v -0.838388 0.750000 0.088388 +v -0.838388 2.000000 0.088388 +v -0.875000 0.750000 0.000000 +v -0.875000 2.000000 0.000000 +v -0.838388 0.750000 -0.088388 +v -0.838388 2.000000 -0.088388 +v -0.750000 0.750000 0.375000 +v -0.750000 2.000000 0.375000 +v -0.750000 0.750000 0.625000 +v -0.750000 2.000000 0.625000 +v -0.838388 0.750000 0.588388 +v -0.838388 2.000000 0.588388 +v -0.875000 0.750000 0.500000 +v -0.875000 2.000000 0.500000 +v -0.838388 0.750000 0.411612 +v -0.838388 2.000000 0.411612 +v -0.750000 0.750000 -0.625000 +v -0.750000 2.000000 -0.625000 +v -0.750000 0.750000 -0.375000 +v -0.750000 2.000000 -0.375000 +v -0.838388 0.750000 -0.411612 +v -0.838388 2.000000 -0.411612 +v -0.875000 0.750000 -0.500000 +v -0.875000 2.000000 -0.500000 +v -0.838388 0.750000 -0.588388 +v -0.838388 2.000000 -0.588388 +vt 0.484375 0.100000 +vt 0.046875 0.366667 +vt 0.046875 0.100000 +vt 0.484375 0.733333 +vt 0.468750 0.500000 +vt 0.484375 0.466667 +vt 0.531250 0.366667 +vt 0.484375 0.366667 +vt -0.000000 0.100000 +vt 0.046875 0.466667 +vt 0.484375 -0.000000 +vt 0.656250 0.600000 +vt 0.531250 0.466667 +vt 0.656250 0.466667 +vt 0.656250 0.466667 +vt 0.531250 0.600000 +vt 0.531250 0.466667 +vt 0.531250 0.466667 +vt 0.656250 0.600000 +vt 0.531250 0.600000 +vt 0.531250 0.200000 +vt 0.656250 0.466667 +vt 0.656250 0.600000 +vt 0.531250 0.466667 +vt 0.656250 0.466667 +vt 0.539062 0.616667 +vt 0.531250 0.600000 +vt 0.648438 0.616667 +vt 0.539062 0.733333 +vt 0.539062 0.616667 +vt 0.656250 0.600000 +vt 0.539062 0.616667 +vt 0.539062 0.616667 +vt 0.531250 0.600000 +vt 0.539062 0.733333 +vt 0.648438 0.966667 +vt 0.539062 0.966667 +vt 0.648438 0.616667 +vt 0.539062 0.733333 +vt 0.648438 0.616667 +vt 0.648438 0.616667 +vt 0.539062 0.733333 +vt 0.468750 0.733333 +vt 0.062500 0.766667 +vt 0.062500 0.733333 +vt 0.062500 0.700000 +vt 0.046875 0.733333 +vt 0.531250 -0.000000 +vt 0.671875 -0.000000 +vt 0.671875 0.100000 +vt 0.812500 0.200000 +vt 0.765625 -0.000000 +vt 0.906250 -0.000000 +vt 0.765625 0.100000 +vt 0.906250 0.200000 +vt 1.000000 -0.000000 +vt 1.000000 0.200000 +vt 0.058594 0.500000 +vt 0.468750 0.700000 +vt 0.468750 0.966667 +vt 0.062500 0.966667 +vt 0.062500 1.000000 +vt 0.468750 1.000000 +vt 0.484375 0.966667 +vt 0.468750 0.766667 +vt 0.484375 0.766667 +vt 0.046875 0.766667 +vt 0.046875 0.966667 +vt 0.890625 0.566667 +vt 0.656250 0.700000 +vt 0.656250 0.566667 +vt 0.656250 0.566667 +vt 0.890625 0.700000 +vt 0.656250 0.700000 +vt 0.664062 0.700000 +vt 0.656250 0.566667 +vt 0.664062 0.566667 +vt 0.890625 0.683333 +vt 0.656250 0.700000 +vt 0.656250 0.683333 +vt 0.656250 0.583333 +vt 0.890625 0.566667 +vt 0.890625 0.583333 +vt 0.671875 0.200000 +vt 0.765625 0.200000 +vt 0.695312 0.550000 +vt 0.679688 0.566667 +vt 0.679688 0.516667 +vt 0.875000 0.500000 +vt 0.851562 0.516667 +vt 0.851562 0.500000 +vt 0.687500 0.433333 +vt 0.695312 0.450000 +vt 0.687500 0.450000 +vt 0.695312 0.466667 +vt 0.679688 0.450000 +vt 0.695312 0.450000 +vt 0.835938 0.550000 +vt 0.851562 0.566667 +vt 0.835938 0.566667 +vt 0.679688 0.500000 +vt 0.656250 0.516667 +vt 0.656250 0.500000 +vt 0.695312 0.433333 +vt 0.835938 0.450000 +vt 0.695312 0.450000 +vt 0.835938 0.433333 +vt 0.843750 0.450000 +vt 0.695312 0.466667 +vt 0.679688 0.500000 +vt 0.851562 0.500000 +vt 0.679688 0.450000 +vt 0.695312 0.450000 +vt 0.835938 0.466667 +vt 0.851562 0.450000 +vt 0.695312 0.433333 +vt 0.835938 0.450000 +vt 0.679688 0.516667 +vt 0.835938 0.550000 +vt 0.851562 0.566667 +vt 0.835938 0.566667 +vt 0.656250 0.516667 +vt 0.656250 0.500000 +vt 0.695312 0.550000 +vt 0.679688 0.566667 +vt 0.835938 0.466667 +vt 0.851562 0.450000 +vt 0.835938 0.433333 +vt 0.843750 0.450000 +vt 0.687500 0.433333 +vt 0.687500 0.450000 +vt 0.875000 0.500000 +vt 0.851562 0.516667 +vt 0.902344 0.391667 +vt 0.667969 0.408333 +vt 0.667969 0.391667 +vt 0.902344 0.391667 +vt 0.667969 0.408333 +vt 0.667969 0.391667 +vt 0.902344 0.366667 +vt 0.914062 0.408333 +vt 0.902344 0.408333 +vt 0.656250 0.391667 +vt 0.667969 0.433333 +vt 0.902344 0.408333 +vt 0.667969 0.433333 +vt 0.914062 0.408333 +vt 0.656250 0.391667 +vt 0.902344 0.366667 +vt 0.531250 0.100000 +vt 0.000000 0.366667 +vt 0.046875 -0.000000 +vt 0.656250 0.200000 +vt 0.648438 0.733333 +vt 0.648438 0.733333 +vt 0.648438 0.733333 +vt 0.648438 0.733333 +vt 0.621094 0.200000 +vt 0.531250 0.200000 +vt 0.890625 0.700000 +vt 0.890625 0.566667 +vt 0.656250 0.700000 +vt 0.890625 0.700000 +vt 0.656250 0.566667 +vt 0.695312 0.566667 +vt 0.875000 0.516667 +vt 0.843750 0.433333 +vt 0.835938 0.450000 +vt 0.695312 0.566667 +vt 0.835938 0.450000 +vt 0.843750 0.433333 +vt 0.875000 0.516667 +vt 0.667969 0.366667 +vt 0.914062 0.391667 +vt 0.656250 0.408333 +vt 0.902344 0.433333 +vt 0.902344 0.433333 +vt 0.914062 0.391667 +vt 0.656250 0.408333 +vt 0.667969 0.366667 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.921875 0.400000 +vt 0.960938 0.200000 +vt 0.968750 0.400000 +vt 0.960938 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.929688 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.921875 0.400000 +vt 0.914062 0.400000 +vt 0.921875 0.200000 +vt 0.921875 0.400000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.929688 0.200000 +vt 0.937500 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.400000 +vt 0.929688 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.200000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.921875 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.929688 0.200000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.921875 0.400000 +vt 0.960938 0.200000 +vt 0.968750 0.400000 +vt 0.960938 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.929688 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.921875 0.400000 +vt 0.914062 0.400000 +vt 0.921875 0.200000 +vt 0.921875 0.400000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.929688 0.200000 +vt 0.937500 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.400000 +vt 0.929688 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.200000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.695312 0.341667 +vt 0.703125 0.333333 +vt 0.703125 0.350000 +vt 0.710938 0.358333 +vt 0.718750 0.333333 +vt 0.718750 0.358333 +vt 0.726562 0.358333 +vt 0.734375 0.333333 +vt 0.742188 0.341667 +vt 0.734375 0.350000 +vt 0.710938 0.333333 +vt 0.726562 0.333333 +vt 0.726562 0.308333 +vt 0.734375 0.316667 +vt 0.742188 0.333333 +vt 0.703125 0.316667 +vt 0.695312 0.325000 +vt 0.695312 0.333333 +vt 0.710938 0.308333 +vt 0.687500 0.333333 +vt 0.750000 0.333333 +vt 0.742188 0.325000 +vt 0.742188 0.200000 +vt 0.750000 0.308333 +vt 0.742188 0.308333 +vt 0.718750 0.358333 +vt 0.726562 0.333333 +vt 0.726562 0.358333 +vt 0.734375 0.200000 +vt 0.734375 0.308333 +vt 0.695312 0.200000 +vt 0.703125 0.308333 +vt 0.695312 0.308333 +vt 0.718750 0.200000 +vt 0.718750 0.308333 +vt 0.703125 0.200000 +vt 0.695312 0.341667 +vt 0.703125 0.333333 +vt 0.703125 0.350000 +vt 0.687500 0.200000 +vt 0.687500 0.308333 +vt 0.710938 0.333333 +vt 0.710938 0.358333 +vt 0.718750 0.333333 +vt 0.726562 0.308333 +vt 0.703125 0.316667 +vt 0.734375 0.333333 +vt 0.742188 0.341667 +vt 0.734375 0.350000 +vt 0.734375 0.316667 +vt 0.742188 0.333333 +vt 0.710938 0.200000 +vt 0.695312 0.333333 +vt 0.710938 0.308333 +vt 0.687500 0.333333 +vt 0.695312 0.325000 +vt 0.750000 0.333333 +vt 0.742188 0.325000 +vt 0.742188 0.200000 +vt 0.750000 0.308333 +vt 0.742188 0.308333 +vt 0.734375 0.200000 +vt 0.734375 0.308333 +vt 0.695312 0.200000 +vt 0.703125 0.308333 +vt 0.695312 0.308333 +vt 0.718750 0.200000 +vt 0.718750 0.308333 +vt 0.703125 0.200000 +vt 0.687500 0.200000 +vt 0.687500 0.308333 +vt 0.710938 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.679688 0.200000 +vt 0.687500 0.366667 +vt 0.687500 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.679688 0.200000 +vt 0.687500 0.366667 +vt 0.687500 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.750000 0.200000 +vt 0.726562 0.200000 +vt 0.750000 0.200000 +vt 0.726562 0.200000 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +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.7311 0.2611 0.6303 +vn -0.9955 -0.0000 -0.0949 +vn -0.9947 -0.0393 -0.0948 +vn -0.6333 -0.2962 -0.7150 +vn -0.0000 -0.3827 -0.9239 +vn 0.6333 -0.2962 -0.7150 +vn 0.9955 -0.0000 -0.0949 +vn 0.7311 0.2611 0.6303 +vn 0.9947 -0.0393 -0.0948 +vn -0.6630 -0.0000 -0.7486 +vn 0.6630 -0.0000 -0.7486 +vn 0.6794 0.4063 -0.6110 +vn 0.9987 0.0196 -0.0473 +vn 0.7574 -0.0000 0.6530 +vn -0.9987 0.0196 -0.0473 +vn -0.7263 -0.3800 0.5728 +vn -0.7574 -0.0000 0.6530 +vn -0.6794 0.4063 -0.6110 +vn 0.0000 -0.5562 0.8311 +vn 0.7263 -0.3800 0.5728 +vn 0.7071 -0.5000 0.5000 +vn -0.7071 -0.5000 0.5000 +vn 0.0000 0.5628 -0.8266 +vn -0.7071 0.5000 -0.5000 +vn 0.3827 0.0000 -0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 -0.9239 +vn 0.7071 0.5000 -0.5000 +s off +f 3/1/1 2/2/1 1/3/1 +f 5/4/2 36/5/2 8/6/2 +f 3/1/3 8/7/3 4/8/3 +f 2/2/4 6/9/4 1/3/4 +f 4/8/5 7/10/5 2/2/5 +f 1/3/6 5/11/6 3/1/6 +f 12/12/4 9/13/4 10/14/4 +f 13/15/3 16/16/3 14/17/3 +f 10/18/5 16/19/5 12/20/5 +f 9/21/1 14/22/1 10/18/1 +f 11/23/6 13/24/6 9/25/6 +f 11/23/2 19/26/2 15/27/2 +f 17/28/5 23/29/5 19/26/5 +f 16/19/2 18/30/2 12/20/2 +f 15/31/2 20/32/2 16/16/2 +f 12/12/2 17/33/2 11/34/2 +f 22/35/2 23/36/2 21/37/2 +f 19/38/4 24/39/4 20/32/4 +f 20/40/6 22/35/6 18/30/6 +f 18/41/3 21/42/3 17/33/3 +f 36/43/6 39/44/6 35/45/6 +f 7/10/2 34/46/2 6/47/2 +f 31/48/5 32/49/5 49/50/5 +f 27/51/6 29/52/6 30/53/6 +f 49/50/3 29/52/3 50/54/3 +f 25/55/4 31/56/4 26/57/4 +f 8/6/2 35/58/2 7/10/2 +f 6/47/2 33/59/2 5/4/2 +f 39/44/2 37/60/2 38/61/2 +f 34/62/5 37/60/5 33/63/5 +f 33/64/4 40/65/4 36/66/4 +f 35/67/3 38/61/3 34/68/3 +f 43/69/1 42/70/1 41/71/1 +f 47/72/2 45/73/2 46/74/2 +f 43/75/3 48/76/3 44/77/3 +f 44/78/5 47/79/5 42/80/5 +f 41/81/6 45/82/6 43/83/6 +f 28/84/7 50/54/7 27/85/7 +f 167/86/6 163/87/6 172/88/6 +f 193/89/3 190/90/3 189/91/3 +f 165/92/3 170/93/3 166/94/3 +f 170/95/5 164/96/5 166/97/5 +f 188/98/6 194/99/6 192/100/6 +f 173/101/4 163/102/4 164/103/4 +f 174/104/1 187/105/1 171/106/1 +f 188/107/4 191/108/4 187/105/4 +f 171/109/5 189/91/5 168/110/5 +f 181/111/2 172/88/2 173/101/2 +f 171/109/5 179/112/5 177/113/5 +f 187/114/5 193/115/5 189/91/5 +f 167/116/1 175/117/1 170/93/1 +f 189/91/2 169/118/2 168/110/2 +f 176/119/6 186/120/6 184/121/6 +f 170/95/5 181/111/5 173/101/5 +f 172/88/6 176/119/6 167/86/6 +f 168/110/4 180/122/4 179/123/4 +f 169/118/6 188/98/6 174/124/6 +f 174/124/6 180/125/6 169/118/6 +f 175/126/5 185/127/5 181/111/5 +f 176/128/4 183/129/4 175/117/4 +f 178/130/3 171/106/3 177/131/3 +f 185/132/3 182/133/3 181/111/3 +f 201/134/2 198/135/2 197/136/2 +f 200/137/2 195/138/2 196/139/2 +f 197/136/5 210/140/5 201/134/5 +f 200/137/3 207/141/3 199/142/3 +f 195/138/4 204/143/4 196/139/4 +f 199/142/6 203/144/6 195/138/6 +f 202/145/6 205/146/6 198/135/6 +f 201/134/3 209/147/3 202/145/3 +f 198/135/4 206/148/4 197/136/4 +f 196/139/5 208/149/5 200/137/5 +f 3/1/1 4/8/1 2/2/1 +f 5/4/2 33/59/2 36/5/2 +f 3/1/3 5/150/3 8/7/3 +f 2/2/4 7/151/4 6/9/4 +f 4/8/5 8/6/5 7/10/5 +f 1/3/6 6/152/6 5/11/6 +f 12/12/4 11/34/4 9/13/4 +f 13/15/3 15/31/3 16/16/3 +f 10/18/5 14/22/5 16/19/5 +f 9/21/1 13/153/1 14/22/1 +f 11/23/6 15/27/6 13/24/6 +f 11/23/2 17/28/2 19/26/2 +f 17/28/5 21/154/5 23/29/5 +f 16/19/2 20/40/2 18/30/2 +f 15/31/2 19/38/2 20/32/2 +f 12/12/2 18/41/2 17/33/2 +f 22/35/2 24/155/2 23/36/2 +f 19/38/4 23/156/4 24/39/4 +f 20/40/6 24/155/6 22/35/6 +f 18/41/3 22/157/3 21/42/3 +f 36/43/6 40/65/6 39/44/6 +f 7/10/2 35/58/2 34/46/2 +f 49/50/5 28/158/5 31/48/5 +f 28/158/5 26/159/5 31/48/5 +f 30/53/6 25/55/6 27/51/6 +f 27/51/6 50/54/6 29/52/6 +f 49/50/3 32/49/3 29/52/3 +f 25/55/4 30/53/4 31/56/4 +f 8/6/2 36/5/2 35/58/2 +f 6/47/2 34/46/2 33/59/2 +f 39/44/2 40/65/2 37/60/2 +f 34/62/5 38/61/5 37/60/5 +f 33/64/4 37/60/4 40/65/4 +f 35/67/3 39/44/3 38/61/3 +f 43/69/1 44/160/1 42/70/1 +f 47/72/2 48/161/2 45/73/2 +f 43/75/3 45/162/3 48/76/3 +f 44/78/5 48/163/5 47/79/5 +f 41/81/6 46/164/6 45/82/6 +f 28/84/7 49/50/7 50/54/7 +f 167/86/6 165/165/6 163/87/6 +f 193/89/3 194/166/3 190/90/3 +f 165/92/3 167/116/3 170/93/3 +f 170/95/5 173/101/5 164/96/5 +f 188/98/6 190/90/6 194/99/6 +f 173/101/4 172/88/4 163/102/4 +f 174/104/1 188/107/1 187/105/1 +f 188/107/4 192/167/4 191/108/4 +f 171/109/5 187/114/5 189/91/5 +f 181/111/2 182/133/2 172/88/2 +f 171/109/5 168/110/5 179/112/5 +f 187/114/5 191/168/5 193/115/5 +f 167/116/1 176/128/1 175/117/1 +f 189/91/2 190/90/2 169/118/2 +f 176/119/6 182/133/6 186/120/6 +f 170/95/5 175/126/5 181/111/5 +f 172/88/6 182/133/6 176/119/6 +f 168/110/4 169/118/4 180/122/4 +f 169/118/6 190/90/6 188/98/6 +f 174/124/6 178/169/6 180/125/6 +f 175/126/5 183/170/5 185/127/5 +f 176/128/4 184/171/4 183/129/4 +f 178/130/3 174/104/3 171/106/3 +f 185/132/3 186/172/3 182/133/3 +f 201/134/2 202/145/2 198/135/2 +f 200/137/2 199/142/2 195/138/2 +f 197/136/5 206/173/5 210/140/5 +f 200/137/3 208/174/3 207/141/3 +f 195/138/4 203/175/4 204/143/4 +f 199/142/6 207/176/6 203/144/6 +f 202/145/6 209/177/6 205/146/6 +f 201/134/3 210/178/3 209/147/3 +f 198/135/4 205/179/4 206/148/4 +f 196/139/5 204/180/5 208/149/5 +s 1 +f 90/181/8 91/182/4 89/183/8 +f 54/184/3 55/185/9 53/186/3 +f 78/187/10 79/188/2 77/189/10 +f 56/190/9 57/191/1 55/185/9 +f 94/192/10 95/193/2 93/194/10 +f 76/195/4 77/189/10 75/196/4 +f 58/197/1 59/198/8 57/199/1 +f 74/200/8 75/196/4 73/201/8 +f 60/202/8 61/203/4 59/198/8 +f 72/204/1 73/201/8 71/205/1 +f 62/206/4 63/207/10 61/203/4 +f 82/208/7 52/209/3 81/210/7 +f 70/211/9 71/212/1 69/213/9 +f 64/214/10 65/215/2 63/207/10 +f 51/216/3 69/213/9 52/209/3 +f 66/217/2 67/218/7 65/215/2 +f 92/219/4 93/194/10 91/182/4 +f 80/220/2 81/210/7 79/188/2 +f 68/221/7 53/186/3 67/218/7 +f 88/222/1 89/183/8 87/223/1 +f 98/224/7 84/225/3 97/226/7 +f 86/227/9 87/228/1 85/229/9 +f 83/230/3 85/229/9 84/225/3 +f 96/231/2 97/226/7 95/193/2 +f 106/232/8 107/233/4 105/234/8 +f 110/235/10 111/236/2 109/237/10 +f 108/238/4 109/237/10 107/233/4 +f 104/239/1 105/234/8 103/240/1 +f 114/241/7 100/242/3 113/243/7 +f 102/244/9 103/245/1 101/246/9 +f 99/247/3 101/246/9 100/242/3 +f 112/248/2 113/243/7 111/236/2 +f 154/249/8 155/250/4 153/251/8 +f 118/252/3 119/253/9 117/254/3 +f 142/255/10 143/256/2 141/257/10 +f 120/258/9 121/259/1 119/253/9 +f 158/260/10 159/261/2 157/262/10 +f 140/263/4 141/257/10 139/264/4 +f 122/265/1 123/266/8 121/267/1 +f 138/268/8 139/264/4 137/269/8 +f 124/270/8 125/271/4 123/266/8 +f 136/272/1 137/269/8 135/273/1 +f 126/274/4 127/275/10 125/271/4 +f 146/276/7 116/277/3 145/278/7 +f 134/279/9 135/280/1 133/281/9 +f 128/282/10 129/283/2 127/275/10 +f 115/284/3 133/281/9 116/277/3 +f 130/285/2 131/286/7 129/283/2 +f 156/287/4 157/262/10 155/250/4 +f 144/288/2 145/278/7 143/256/2 +f 132/289/7 117/254/3 131/286/7 +f 152/290/1 153/251/8 151/291/1 +f 162/292/7 148/293/3 161/294/7 +f 150/295/9 151/296/1 149/297/9 +f 147/298/3 149/297/9 148/293/3 +f 160/299/2 161/294/7 159/261/2 +f 214/300/11 221/301/12 213/302/13 +f 212/303/14 219/304/3 211/305/15 +f 219/304/3 218/306/16 211/305/15 +f 224/307/17 216/308/18 217/309/19 +f 213/302/13 220/310/20 212/303/14 +f 225/311/21 217/309/19 218/306/16 +f 219/304/3 232/312/22 225/311/21 +f 231/313/23 223/314/24 224/307/17 +f 228/315/25 220/310/20 221/301/12 +f 225/311/21 231/313/23 224/307/17 +f 229/316/26 221/301/12 222/317/27 +f 227/318/28 219/304/3 220/310/20 +f 214/300/11 215/319/29 222/317/27 +f 222/317/27 215/319/29 229/316/26 +f 215/320/29 216/308/18 223/314/24 +f 223/314/24 230/321/30 215/320/29 +f 246/322/31 215/323/29 230/324/30 +f 240/325/15 255/326/21 233/327/16 +f 232/312/22 245/328/5 231/329/23 +f 244/330/32 228/331/25 229/332/26 +f 242/333/7 232/312/22 226/334/33 +f 245/328/5 230/324/30 231/329/23 +f 243/335/6 227/318/28 228/331/25 +f 237/336/11 251/337/12 238/338/13 +f 248/339/8 229/332/26 215/340/29 +f 238/338/13 250/341/20 239/342/14 +f 249/343/3 262/344/22 255/326/21 +f 258/345/25 250/341/20 251/337/12 +f 250/341/20 240/325/15 239/342/14 +f 254/346/17 235/347/18 234/348/19 +f 255/326/21 234/348/19 233/327/16 +f 261/349/23 253/350/24 254/346/17 +f 241/351/34 226/334/33 227/318/28 +f 255/326/21 261/349/23 254/346/17 +f 252/352/27 258/345/25 251/337/12 +f 257/353/28 249/343/3 250/341/20 +f 237/336/11 236/354/29 252/352/27 +f 252/352/27 236/354/29 259/355/26 +f 236/356/29 235/347/18 253/350/24 +f 253/350/24 260/357/30 236/356/29 +f 268/358/31 236/359/29 260/360/30 +f 262/344/22 267/361/5 261/362/23 +f 266/363/32 258/364/25 259/365/26 +f 264/366/7 262/344/22 256/367/33 +f 267/361/5 260/360/30 261/362/23 +f 265/368/6 257/353/28 258/364/25 +f 270/369/8 259/365/26 236/370/29 +f 263/371/34 256/367/33 257/353/28 +f 272/372/35 273/373/36 271/374/35 +f 274/375/36 275/376/5 273/373/36 +f 276/377/5 277/378/37 275/376/5 +f 278/379/37 279/380/38 277/378/37 +f 284/381/36 285/382/5 283/383/36 +f 282/384/35 283/383/36 281/385/35 +f 286/386/5 287/387/37 285/382/5 +f 288/388/37 289/389/38 287/387/37 +f 294/390/36 295/391/5 293/392/36 +f 292/393/35 293/392/36 291/394/35 +f 296/395/5 297/396/37 295/391/5 +f 298/397/37 299/398/38 297/396/37 +f 304/399/39 305/400/40 303/401/39 +f 306/402/40 307/403/6 305/400/40 +f 308/404/6 309/405/41 307/403/6 +f 310/406/41 301/407/42 309/405/41 +f 314/408/39 315/409/40 313/410/39 +f 316/411/40 317/412/6 315/409/40 +f 318/413/6 319/414/41 317/412/6 +f 320/415/41 311/416/42 319/414/41 +f 324/417/39 325/418/40 323/419/39 +f 326/420/40 327/421/6 325/418/40 +f 328/422/6 329/423/41 327/421/6 +f 330/424/41 321/425/42 329/423/41 +f 90/181/8 92/219/4 91/182/4 +f 54/184/3 56/190/9 55/185/9 +f 78/187/10 80/220/2 79/188/2 +f 56/190/9 58/426/1 57/191/1 +f 94/192/10 96/231/2 95/193/2 +f 76/195/4 78/187/10 77/189/10 +f 58/197/1 60/202/8 59/198/8 +f 74/200/8 76/195/4 75/196/4 +f 60/202/8 62/206/4 61/203/4 +f 72/204/1 74/200/8 73/201/8 +f 62/206/4 64/214/10 63/207/10 +f 82/208/7 51/216/3 52/209/3 +f 70/211/9 72/427/1 71/212/1 +f 64/214/10 66/217/2 65/215/2 +f 51/216/3 70/211/9 69/213/9 +f 66/217/2 68/221/7 67/218/7 +f 92/219/4 94/192/10 93/194/10 +f 80/220/2 82/208/7 81/210/7 +f 68/221/7 54/184/3 53/186/3 +f 88/222/1 90/181/8 89/183/8 +f 98/224/7 83/230/3 84/225/3 +f 86/227/9 88/428/1 87/228/1 +f 83/230/3 86/227/9 85/229/9 +f 96/231/2 98/224/7 97/226/7 +f 106/232/8 108/238/4 107/233/4 +f 110/235/10 112/248/2 111/236/2 +f 108/238/4 110/235/10 109/237/10 +f 104/239/1 106/232/8 105/234/8 +f 114/241/7 99/247/3 100/242/3 +f 102/244/9 104/429/1 103/245/1 +f 99/247/3 102/244/9 101/246/9 +f 112/248/2 114/241/7 113/243/7 +f 154/249/8 156/287/4 155/250/4 +f 118/252/3 120/258/9 119/253/9 +f 142/255/10 144/288/2 143/256/2 +f 120/258/9 122/430/1 121/259/1 +f 158/260/10 160/299/2 159/261/2 +f 140/263/4 142/255/10 141/257/10 +f 122/265/1 124/270/8 123/266/8 +f 138/268/8 140/263/4 139/264/4 +f 124/270/8 126/274/4 125/271/4 +f 136/272/1 138/268/8 137/269/8 +f 126/274/4 128/282/10 127/275/10 +f 146/276/7 115/284/3 116/277/3 +f 134/279/9 136/431/1 135/280/1 +f 128/282/10 130/285/2 129/283/2 +f 115/284/3 134/279/9 133/281/9 +f 130/285/2 132/289/7 131/286/7 +f 156/287/4 158/260/10 157/262/10 +f 144/288/2 146/276/7 145/278/7 +f 132/289/7 118/252/3 117/254/3 +f 152/290/1 154/249/8 153/251/8 +f 162/292/7 147/298/3 148/293/3 +f 150/295/9 152/432/1 151/296/1 +f 147/298/3 150/295/9 149/297/9 +f 160/299/2 162/292/7 161/294/7 +f 214/300/11 222/317/27 221/301/12 +f 212/303/14 220/310/20 219/304/3 +f 219/304/3 225/311/21 218/306/16 +f 224/307/17 223/314/24 216/308/18 +f 213/302/13 221/301/12 220/310/20 +f 225/311/21 224/307/17 217/309/19 +f 219/304/3 226/334/33 232/312/22 +f 231/313/23 230/321/30 223/314/24 +f 228/315/25 227/318/28 220/310/20 +f 225/311/21 232/312/22 231/313/23 +f 229/316/26 228/315/25 221/301/12 +f 227/318/28 226/334/33 219/304/3 +f 246/322/31 248/433/8 215/323/29 +f 240/325/15 249/343/3 255/326/21 +f 232/312/22 247/434/43 245/328/5 +f 244/330/32 243/335/6 228/331/25 +f 242/333/7 247/434/43 232/312/22 +f 245/328/5 246/322/31 230/324/30 +f 243/335/6 241/351/34 227/318/28 +f 237/336/11 252/352/27 251/337/12 +f 248/339/8 244/330/32 229/332/26 +f 238/338/13 251/337/12 250/341/20 +f 249/343/3 256/367/33 262/344/22 +f 258/345/25 257/353/28 250/341/20 +f 250/341/20 249/343/3 240/325/15 +f 254/346/17 253/350/24 235/347/18 +f 255/326/21 254/346/17 234/348/19 +f 261/349/23 260/357/30 253/350/24 +f 241/351/34 242/333/7 226/334/33 +f 255/326/21 262/344/22 261/349/23 +f 252/352/27 259/355/26 258/345/25 +f 257/353/28 256/367/33 249/343/3 +f 268/358/31 270/435/8 236/359/29 +f 262/344/22 269/436/43 267/361/5 +f 266/363/32 265/368/6 258/364/25 +f 264/366/7 269/436/43 262/344/22 +f 267/361/5 268/358/31 260/360/30 +f 265/368/6 263/371/34 257/353/28 +f 270/369/8 266/363/32 259/365/26 +f 263/371/34 264/366/7 256/367/33 +f 272/372/35 274/375/36 273/373/36 +f 274/375/36 276/377/5 275/376/5 +f 276/377/5 278/379/37 277/378/37 +f 278/379/37 280/437/38 279/380/38 +f 284/381/36 286/386/5 285/382/5 +f 282/384/35 284/381/36 283/383/36 +f 286/386/5 288/388/37 287/387/37 +f 288/388/37 290/438/38 289/389/38 +f 294/390/36 296/395/5 295/391/5 +f 292/393/35 294/390/36 293/392/36 +f 296/395/5 298/397/37 297/396/37 +f 298/397/37 300/439/38 299/398/38 +f 304/399/39 306/402/40 305/400/40 +f 306/402/40 308/404/6 307/403/6 +f 308/404/6 310/406/41 309/405/41 +f 310/406/41 302/440/42 301/407/42 +f 314/408/39 316/411/40 315/409/40 +f 316/411/40 318/413/6 317/412/6 +f 318/413/6 320/415/41 319/414/41 +f 320/415/41 312/441/42 311/416/42 +f 324/417/39 326/420/40 325/418/40 +f 326/420/40 328/422/6 327/421/6 +f 328/422/6 330/424/41 329/423/41 +f 330/424/41 322/442/42 321/425/42 From b6f1d422e8156cb1bf818ca4c6920963943d234d Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 28 Dec 2023 10:53:07 -0500 Subject: [PATCH 050/376] my workspace died again --- .../blocks/machine/MachineStrandCaster.java | 11 +++-- .../render/tileentity/RenderStrandCaster.java | 6 +-- .../hbm/tileentity/TileEntityProxyCombo.java | 2 + .../TileEntityMachineStrandCaster.java | 46 ++++++++++++++----- 4 files changed, 47 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java index f515325ee..34b5b4384 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -67,11 +67,16 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce //up,down;forward,backward;left,right MultiblockHandlerXR.fillSpace(world, x, y, z, new int[]{2, 0, 1, 0, 1, 0}, this, dir); - - this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ); + //Fluid ports + this.makeExtra(world, x + rot.offsetX - dir.offsetX, y, z + rot.offsetZ - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); this.makeExtra(world, x - dir.offsetX * 5, y, z - dir.offsetZ * 5); this.makeExtra(world, x + rot.offsetX - dir.offsetX * 5, y, z + rot.offsetZ - dir.offsetZ * 5); - + //Molten slop ports + this.makeExtra(world, x + rot.offsetX - dir.offsetX, y + 2, z + rot.offsetZ - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y + 2, z - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX, y + 2, z + rot.offsetZ); + this.makeExtra(world, x, y + 2, z); } @Override diff --git a/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java index cba933802..f7ec4d092 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java +++ b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java @@ -16,16 +16,16 @@ public class RenderStrandCaster extends TileEntitySpecialRenderer implements IIt public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { GL11.glPushMatrix(); - - GL11.glTranslated(x, y, z); + GL11.glTranslated(x + 0.5, y, z + 0.5); switch(te.getBlockMetadata() - BlockDummyable.offset) { case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; } - + GL11.glTranslated( 0.5, 0, 0.5); GL11.glRotated(180, 0, 1, 0); + GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index edf40ace1..c0957eb69 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -432,6 +432,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy this.inventory = nbt.getBoolean("inv"); this.power = nbt.getBoolean("power"); this.fluid = nbt.getBoolean("fluid"); + this.moltenMetal = nbt.getBoolean("metal"); this.heat = nbt.getBoolean("heat"); } @@ -442,6 +443,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy nbt.setBoolean("inv", inventory); nbt.setBoolean("power", power); nbt.setBoolean("fluid", fluid); + nbt.setBoolean("metal", moltenMetal); nbt.setBoolean("heat", heat); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 188dd6ab2..f06552fcc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -4,7 +4,6 @@ import api.hbm.block.ICrucibleAcceptor; import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.BlockDummyable; import com.hbm.inventory.container.ContainerMachineStrandCaster; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineStrandCaster; @@ -28,7 +27,6 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -79,10 +77,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase this.type = null; } - if (worldObj.getTotalWorldTime() % 20 == 0) { - this.updateConnections(); - } - + this.updateConnections(); ItemMold.Mold mold = this.getInstalledMold(); @@ -137,18 +132,31 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase return false; } - public DirPos[] getConPos() { + public DirPos[] getFluidConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); return new DirPos[] { - new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), - new DirPos(xCoord - rot.offsetX, yCoord, zCoord - rot.offsetZ, rot.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), + new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()), new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX * 5, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 5, rot), new DirPos(xCoord - rot.offsetX - dir.offsetX * 5, yCoord, zCoord - rot.offsetZ + dir.offsetZ * 5, rot.getOpposite()), }; } + + public int[][] getMetalPourPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new int[][] { + new int[]{xCoord + rot.offsetX - dir.offsetX, yCoord + 2, zCoord + rot.offsetZ - dir.offsetZ}, + new int[]{xCoord - dir.offsetX, yCoord + 2, zCoord - dir.offsetZ}, + new int[]{xCoord + rot.offsetX, yCoord + 2, zCoord + rot.offsetZ}, + new int[]{xCoord, yCoord + 2, zCoord}, + }; + } @Override public ItemMold.Mold getInstalledMold() { if(slots[0] == null) return null; @@ -163,10 +171,24 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase public int getMoldSize() { return getInstalledMold().size; } + + @Override + public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + + if(side != ForgeDirection.UP) return false; + for (int[] pos : getMetalPourPos()) { + if (pos[0]== x && pos[1] == y && pos[2] == z){ + return this.standardCheck(world, x, y, z, side, stack); + } + } + return false; + + } + @Override public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { if(this.type != null && this.type != stack.material) return false; - return this.amount >= this.getCapacity() && getInstalledMold() == null; + return !(this.amount >= this.getCapacity() || getInstalledMold() == null); } @Override public int getCapacity() { @@ -178,10 +200,10 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase } private void updateConnections() { - for(DirPos pos : getConPos()) { + for(DirPos pos : getFluidConPos()) { this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - for(DirPos pos : getConPos()) { + for(DirPos pos : getFluidConPos()) { sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } From 9340287403688e4b92f1c30cd6ad1f3c72295d68 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sun, 31 Dec 2023 15:56:09 -0500 Subject: [PATCH 051/376] caster is finished, woo! --- .../blocks/machine/MachineStrandCaster.java | 62 +- .../ContainerMachineStrandCaster.java | 104 +- .../inventory/gui/GUIMachineStrandCaster.java | 108 +- .../inventory/recipes/AssemblerRecipes.java | 9 + .../render/tileentity/RenderStrandCaster.java | 72 +- .../machine/TileEntityCrucible.java | 4 +- .../TileEntityMachineStrandCaster.java | 122 +- .../hbm/models/machines/strand_caster.obj | 1200 +++++++---------- 8 files changed, 760 insertions(+), 921 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java index 34b5b4384..ee6dab3a8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -32,16 +32,19 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcceptor, ILookOverlay { +public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcceptor, ILookOverlay, IToolable { public MachineStrandCaster() { super(Material.iron); } + //reminder, if the machine is a solid brick, get dimensions will already handle it without the need to use fillSapce //the order is up, down, forward, backward, left, right //x is for left(-)/right(+), z is for forward(+)/backward(-), y you already know @Override - public int[] getDimensions() {return new int[]{0, 0, 6, 0, 1, 0};} + public int[] getDimensions() { + return new int[]{0, 0, 6, 0, 1, 0}; + } @Override public int getOffset() { @@ -51,8 +54,8 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce @Override public TileEntity createNewTileEntity(World world, int meta) { - if(meta >= 12) return new TileEntityMachineStrandCaster(); - if(meta >= 6) return new TileEntityProxyCombo(true, false, true).moltenMetal(); + if (meta >= 12) return new TileEntityMachineStrandCaster(); + if (meta >= 6) return new TileEntityProxyCombo(true, false, true).moltenMetal(); return null; } @@ -83,12 +86,12 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { TileEntity poured = world.getTileEntity(x, y, z); - if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo)poured).moltenMetal)) return false; + if (!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return false; int[] pos = this.findCore(world, x, y, z); - if(pos == null) return false; + if (pos == null) return false; TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); - if(!(tile instanceof TileEntityMachineStrandCaster)) return false; + if (!(tile instanceof TileEntityMachineStrandCaster)) return false; TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; return caster.canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack); @@ -98,12 +101,12 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { TileEntity poured = world.getTileEntity(x, y, z); - if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo)poured).moltenMetal)) return stack; + if (!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return stack; int[] pos = this.findCore(world, x, y, z); - if(pos == null) return stack; + if (pos == null) return stack; TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); - if(!(tile instanceof TileEntityMachineStrandCaster)) return stack; + if (!(tile instanceof TileEntityMachineStrandCaster)) return stack; TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; return caster.pour(world, x, y, z, dX, dY, dZ, side, stack); @@ -121,13 +124,13 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce @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) { + if (world.isRemote) { return true; } int[] coords = findCore(world, x, y, z); TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); - if(cast != null) { + if (cast != null) { //insert mold if (player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) { cast.slots[0] = player.getHeldItem().copy(); @@ -164,7 +167,7 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce public void breakBlock(World world, int x, int y, int z, Block b, int i) { TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityMachineStrandCaster) { + if (te instanceof TileEntityMachineStrandCaster) { TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) te; if (cast.amount > 0) { @@ -179,12 +182,12 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { int[] coords = findCore(world, x, y, z); - if(coords == null) return; + if (coords == null) return; TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); List text = new ArrayList(); - if(cast != null) { + if (cast != null) { if (cast.slots[0] == null) { text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast")); } else if (cast.slots[0].getItem() == ModItems.mold) { @@ -194,13 +197,40 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text); } + @Override protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { x += dir.offsetX * o; z += dir.offsetZ * o; - if(!MultiblockHandlerXR.checkSpace(world, x, y , z, getDimensions(), x, y, z, dir)) return false; + if (!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir)) return false; return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[]{2, 0, 1, 0, 1, 0}, x, y, z, dir); } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if (tool != ToolType.SCREWDRIVER) + return false; + + TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); + + if (cast.slots[0] == null) + return false; + + if (!player.inventory.addItemStackToInventory(cast.slots[0].copy())) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, cast.slots[0].copy()); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } + + cast.markDirty(); + world.markBlockForUpdate(x, y, z); + + cast.slots[0] = null; + cast.markDirty(); + + return true; + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java b/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java index 1742c470c..bc9e89e46 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java @@ -11,65 +11,65 @@ import net.minecraft.item.ItemStack; public class ContainerMachineStrandCaster extends Container { - protected TileEntityMachineStrandCaster caster; + protected TileEntityMachineStrandCaster caster; - public ContainerMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster caster) { - this.caster = caster; - - //the wretched mold - this.addSlotToContainer(new SlotNonRetarded(this.caster, 0, 57, 62)); - - //output - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 2; j++) { - this.addSlotToContainer(new SlotNonRetarded(this.caster, j + i * 2 + 1, 125 + j * 18, 26 + i * 18)); - } - } + public ContainerMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster caster) { + this.caster = caster; - - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 132 + i * 18)); - } - } + //the wretched mold + this.addSlotToContainer(new SlotNonRetarded(this.caster, 0, 57, 62)); - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 190)); - } - } + //output + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 2; j++) { + this.addSlotToContainer(new SlotNonRetarded(this.caster, j + i * 2 + 1, 125 + j * 18, 26 + i * 18)); + } + } - @Override - public ItemStack transferStackInSlot(EntityPlayer player, int index) { - ItemStack stack = null; - Slot slot = (Slot) this.inventorySlots.get(index); - if(slot != null && slot.getHasStack()) { - ItemStack originalStack = slot.getStack(); - stack = originalStack.copy(); + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 132 + i * 18)); + } + } - if(index <= 6) { - if(!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 7, this.inventorySlots.size(), true)) { - return null; - } - - slot.onSlotChange(originalStack, stack); - - } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 0, 7, false)) { - return null; - } + for (int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 190)); + } + } - if(originalStack.stackSize == 0) { - slot.putStack(null); - } else { - slot.onSlotChanged(); - } - } + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - return stack; - } + if (slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); - @Override - public boolean canInteractWith(EntityPlayer player) { - return caster.isUseableByPlayer(player); - } + if (index <= 6) { + if (!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 7, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else if (!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 0, 7, false)) { + return null; + } + + if (originalStack.stackSize == 0) { + slot.putStack(null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return caster.isUseableByPlayer(player); + } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java index 16a151207..a2e959621 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java @@ -21,80 +21,78 @@ import java.util.List; public class GUIMachineStrandCaster extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_strand_caster.png"); - private TileEntityMachineStrandCaster caster; + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_strand_caster.png"); + private TileEntityMachineStrandCaster caster; - public GUIMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster tedf) { - super(new ContainerMachineStrandCaster(invPlayer, tedf)); - caster = tedf; + public GUIMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster tedf) { + super(new ContainerMachineStrandCaster(invPlayer, tedf)); + caster = tedf; - this.xSize = 176; - this.ySize = 214; - } + this.xSize = 176; + this.ySize = 214; + } - @Override - public void drawScreen(int x, int y, float interp) { - super.drawScreen(x, y, interp); + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); - drawStackInfo(x, y, 16, 17); + drawStackInfo(x, y, 16, 17); - caster.water.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 14, 16, 24); - caster.steam.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 64, 16, 24); - } + caster.water.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 14, 16, 24); + caster.steam.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 64, 16, 24); + } - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.caster.hasCustomInventoryName() ? this.caster.getInventoryName() : I18n.format(this.caster.getInventoryName()); + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.caster.hasCustomInventoryName() ? this.caster.getInventoryName() : I18n.format(this.caster.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 0xffffff); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + @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); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if (caster.amount != 0) { + if (caster.amount != 0) { - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - int targetHeight = (caster.amount) * 79 / caster.getCapacity(); + int targetHeight = Math.min((caster.amount) * 79 / caster.getCapacity(), 92); - int hex = caster.type.moltenColor; - //hex = 0xC18336; - Color color = new Color(hex); - GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); - drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(1F, 1F, 1F, 0.3F); - drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); - GL11.glDisable(GL11.GL_BLEND); + int hex = caster.type.moltenColor; + //hex = 0xC18336; + Color color = new Color(hex); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 0.3F); + drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); + GL11.glDisable(GL11.GL_BLEND); - } - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor3f(255, 255, 255); + } + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor3f(255, 255, 255); - caster.water.renderTank(guiLeft + 82, guiTop + 38, this.zLevel, 16, 24); - caster.steam.renderTank(guiLeft + 82, guiTop + 90, this.zLevel, 16, 24); + caster.water.renderTank(guiLeft + 82, guiTop + 38, this.zLevel, 16, 24); + caster.steam.renderTank(guiLeft + 82, guiTop + 90, this.zLevel, 16, 24); - } + } - - protected void drawStackInfo(int mouseX, int mouseY, int x, int y) { - - List list = new ArrayList(); - - if(caster.type == null) list.add(EnumChatFormatting.RED + "Empty"); - else list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey(caster.type.getUnlocalizedName()) + ": " + Mats.formatAmount(caster.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + protected void drawStackInfo(int mouseX, int mouseY, int x, int y) { - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + x, guiTop + y, 36, 81, mouseX, mouseY, list); - } - + List list = new ArrayList(); + + if (caster.type == null) list.add(EnumChatFormatting.RED + "Empty"); + else + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey(caster.type.getUnlocalizedName()) + ": " + Mats.formatAmount(caster.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + x, guiTop + y, 36, 81, mouseX, mouseY, list); + } - } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index bb377f685..444f6cf72 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -445,6 +445,15 @@ public class AssemblerRecipes { new ComparableStack(ModItems.wire_red_copper, 24), new ComparableStack(ModItems.circuit_copper, 1) }, 300); + + makeRecipe(new ComparableStack(ModBlocks.machine_strand_caster, 1), new AStack[] { + new ComparableStack(ModItems.ingot_firebrick, 12), + new OreDictStack(STEEL.plateCast(), 6), + new OreDictStack(CU.plateWelded(), 2), + new ComparableStack(ModItems.tank_steel, 2), + new OreDictStack(ANY_CONCRETE.any(), 8) + }, 100); + makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.STEEL.ordinal()), new AStack[] { new OreDictStack(STEEL.plate(), 16), new OreDictStack(CU.plate(), 4), diff --git a/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java index f7ec4d092..6d9579ab0 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java +++ b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java @@ -2,18 +2,34 @@ package com.hbm.render.tileentity; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; +import java.awt.*; +import java.nio.DoubleBuffer; + public class RenderStrandCaster extends TileEntitySpecialRenderer implements IItemRendererProvider { + public static final ResourceLocation lava = new ResourceLocation(RefStrings.MODID, "textures/models/machines/lava_gray.png"); + private static DoubleBuffer buf = null; @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) te; + + if(buf == null){ + buf = GLAllocation.createDirectByteBuffer(8*4).asDoubleBuffer(); + } GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); @@ -31,8 +47,54 @@ public class RenderStrandCaster extends TileEntitySpecialRenderer implements IIt GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.strand_caster_tex); - ResourceManager.strand_caster.renderAll(); - + ResourceManager.strand_caster.renderPart("caster"); + + + if (caster.amount != 0 && caster.getInstalledMold() != null) { + + double level = ((double) caster.amount / (double) caster.getCapacity()) * 0.675D; + double offset = ((double) caster.amount / (double) caster.getInstalledMold().getCost()) * 0.375D; + + int color = caster.type.moltenColor; + + int r = color >> 16 & 0xFF; + int g = color >> 8 & 0xFF; + int b = color & 0xFF; + + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + + GL11.glPushMatrix(); + GL11.glColor3f( r/ 255F, g/ 255F, b/ 255F); + GL11.glEnable(GL11.GL_CLIP_PLANE0); + buf.put(new double[] { 0, 0, -1, 0.5} ); + buf.rewind(); + GL11.glClipPlane(GL11.GL_CLIP_PLANE0, buf); + GL11.glTranslated(0,0,-offset + 3.4); + ResourceManager.strand_caster.renderPart("plate"); + GL11.glDisable(GL11.GL_CLIP_PLANE0); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + Tessellator tess = Tessellator.instance; + tess.setNormal(0F, 1F, 0F); + tess.setColorOpaque_F(r / 255F, g / 255F, b / 255F); + bindTexture(lava); + tess.startDrawingQuads(); + tess.addVertexWithUV(-0.9, 2.3 + level, -0.999, 0, 0); + tess.addVertexWithUV(-0.9, 2.3 + level, 0.999, 0, 1); + tess.addVertexWithUV(0.9, 2.3 + level, 0.999, 1, 1); + tess.addVertexWithUV(0.9, 2.3 + level, -0.999, 1, 0); + tess.draw(); + + GL11.glPopMatrix(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + } + + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); @@ -48,11 +110,11 @@ public class RenderStrandCaster extends TileEntitySpecialRenderer implements IIt public IItemRenderer getRenderer() { return new ItemRenderBase( ) { public void renderInventory() { - GL11.glTranslated(1, 1, 0); - GL11.glScaled(2.5, 2.5, 2.5); + GL11.glTranslated(2, 0, 2); + GL11.glScaled( 2, 2, 2); } public void renderCommon() { - GL11.glScaled(0.5, 0.5, 0.5); + GL11.glScaled(1, 1, 1); GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.strand_caster_tex); ResourceManager.strand_caster.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index a6ee9501c..e486b7a60 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -158,7 +158,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); Vec3 impact = Vec3.createVectorHelper(0, 0, 0); - MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord + 0.25D, zCoord + 0.5D + dir.offsetZ * 1.875D, 6, true, this.wasteStack, MaterialShapes.NUGGET.q(2), impact); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord + 0.25D, zCoord + 0.5D + dir.offsetZ * 1.875D, 6, true, this.wasteStack, MaterialShapes.NUGGET.q(3), impact); if(didPour != null) { NBTTagCompound data = new NBTTagCompound(); @@ -198,7 +198,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro } Vec3 impact = Vec3.createVectorHelper(0, 0, 0); - MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord + 0.25D, zCoord + 0.5D + dir.offsetZ * 1.875D, 6, true, toCast, MaterialShapes.NUGGET.q(2), impact); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord + 0.25D, zCoord + 0.5D + dir.offsetZ * 1.875D, 6, true, toCast, MaterialShapes.NUGGET.q(3), impact); if(didPour != null) { NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index f06552fcc..dc9e30c83 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -32,14 +32,16 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; //god thank you bob for this base class -public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase implements IGUIProvider, ICrucibleAcceptor,ISidedInventory, IFluidStandardTransceiver, INBTPacketReceiver, IInventory { +public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase implements IGUIProvider, ICrucibleAcceptor, ISidedInventory, IFluidStandardTransceiver, INBTPacketReceiver, IInventory { public FluidTank water; public FluidTank steam; + @Override public String getName() { return "container.machineStrandCaster"; } + @Override public String getInventoryName() { return getName(); @@ -64,12 +66,12 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase } if (this.amount >= this.getCapacity()) { - if(amount > getCapacity()) { + if (amount > getCapacity()) { ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, amount)); EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, scrap); worldObj.spawnEntityInWorld(item); } - this.amount = this.getCapacity(); + this.amount = this.getCapacity(); } @@ -83,61 +85,61 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase if (canProcess()) { - int itemsCasted = Math.min(amount / mold.getCost(), 9); + int itemsCasted = Math.min(amount / mold.getCost(), 9); - for (int j = 0; j < itemsCasted; j++) { - this.amount -= mold.getCost(); + for (int j = 0; j < itemsCasted; j++) { + this.amount -= mold.getCost(); - ItemStack out = mold.getOutput(type); - - for (int i = 1; i < 7; i++) { - if (slots[i] == null){ - slots[i] = out.copy(); - break; - } - - if (slots[i].isItemEqual(out) && slots[i].stackSize + out.stackSize <= out.getMaxStackSize()) { - slots[i].stackSize += out.stackSize; - break; - } + ItemStack out = mold.getOutput(type); + for (int i = 1; i < 7; i++) { + if (slots[i] == null) { + slots[i] = out.copy(); + break; } + + if (slots[i].isItemEqual(out) && slots[i].stackSize + out.stackSize <= out.getMaxStackSize()) { + slots[i].stackSize += out.stackSize; + break; + } + } - markChanged(); - - water.setFill(water.getFill() - getWaterRequired() * itemsCasted); - steam.setFill(steam.getFill() + getWaterRequired() * itemsCasted); } + markChanged(); + + water.setFill(water.getFill() - getWaterRequired() * itemsCasted); + steam.setFill(steam.getFill() + getWaterRequired() * itemsCasted); } - - NBTTagCompound data = new NBTTagCompound(); - - water.writeToNBT(data, "w"); - steam.writeToNBT(data, "s"); - - this.networkPack(data, 150); - } + NBTTagCompound data = new NBTTagCompound(); + + water.writeToNBT(data, "w"); + steam.writeToNBT(data, "s"); + + this.networkPack(data, 150); + + } + public boolean canProcess() { ItemMold.Mold mold = this.getInstalledMold(); - if(type != null && mold != null && this.amount >= mold.getCost() * 9 && mold.getOutput(type) != null) { + if (type != null && mold != null && this.amount >= mold.getCost() * 9 && mold.getOutput(type) != null) { for (int i = 1; i < 7; i++) { - - if (slots[i] == null || slots[i].isItemEqual(mold.getOutput(type)) && slots[i].stackSize + mold.getOutput(type).stackSize <= mold.getOutput(type).getMaxStackSize()) - return water.getFill() >= getWaterRequired() && steam.getFill() < steam.getMaxFill();; + if (slots[i] == null || slots[i].isItemEqual(mold.getOutput(type)) && slots[i].stackSize + mold.getOutput(type).stackSize <= mold.getOutput(type).getMaxStackSize()) + return water.getFill() >= getWaterRequired() && steam.getFill() < steam.getMaxFill(); } } return false; } + public DirPos[] getFluidConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - return new DirPos[] { + return new DirPos[]{ new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()), new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX * 5, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 5, rot), @@ -150,23 +152,25 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - return new int[][] { + return new int[][]{ new int[]{xCoord + rot.offsetX - dir.offsetX, yCoord + 2, zCoord + rot.offsetZ - dir.offsetZ}, new int[]{xCoord - dir.offsetX, yCoord + 2, zCoord - dir.offsetZ}, new int[]{xCoord + rot.offsetX, yCoord + 2, zCoord + rot.offsetZ}, new int[]{xCoord, yCoord + 2, zCoord}, }; } + @Override public ItemMold.Mold getInstalledMold() { - if(slots[0] == null) return null; + if (slots[0] == null) return null; - if(slots[0].getItem() == ModItems.mold) { + if (slots[0].getItem() == ModItems.mold) { return ((ItemMold) slots[0].getItem()).getMold(slots[0]); } return null; } + @Override public int getMoldSize() { return getInstalledMold().size; @@ -175,9 +179,9 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase @Override public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { - if(side != ForgeDirection.UP) return false; + if (side != ForgeDirection.UP) return false; for (int[] pos : getMetalPourPos()) { - if (pos[0]== x && pos[1] == y && pos[2] == z){ + if (pos[0] == x && pos[1] == y && pos[2] == z) { return this.standardCheck(world, x, y, z, side, stack); } } @@ -187,40 +191,42 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase @Override public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { - if(this.type != null && this.type != stack.material) return false; + if (this.type != null && this.type != stack.material) return false; return !(this.amount >= this.getCapacity() || getInstalledMold() == null); } + @Override public int getCapacity() { ItemMold.Mold mold = this.getInstalledMold(); - return mold == null ? 50000 : mold.getCost() * 50; + return mold == null ? 50000 : mold.getCost() * 10; } + private int getWaterRequired() { return getInstalledMold() != null ? 5 * getInstalledMold().getCost() : 50; } private void updateConnections() { - for(DirPos pos : getFluidConPos()) { + for (DirPos pos : getFluidConPos()) { this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - for(DirPos pos : getFluidConPos()) { + for (DirPos pos : getFluidConPos()) { sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] { steam }; + return new FluidTank[]{steam}; } @Override public FluidTank[] getReceivingTanks() { - return new FluidTank[] { water }; + return new FluidTank[]{water}; } @Override public FluidTank[] getAllTanks() { - return new FluidTank[] { water, steam }; + return new FluidTank[]{water, steam}; } @Override @@ -235,16 +241,17 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase } public void networkPack(NBTTagCompound nbt, int range) { - - if(!worldObj.isRemote) + if (!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } + @Override public void networkUnpack(NBTTagCompound nbt) { water.readFromNBT(nbt, "w"); steam.readFromNBT(nbt, "s"); } + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -258,10 +265,11 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase water.readFromNBT(nbt, "w"); steam.readFromNBT(nbt, "s"); } + @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0) { + if (i == 0) { return stack.getItem() == ModItems.mold; } @@ -276,15 +284,16 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase @Override public int[] getAccessibleSlotsFromSide(int meta) { - return new int[] { 1, 2, 3, 4, 5, 6}; + return new int[]{1, 2, 3, 4, 5, 6}; } public void markChanged() { this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); } + @Override public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { return false; } else { return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; @@ -301,25 +310,24 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase public boolean canExtractItem(int slot, ItemStack itemStack, int side) { return !this.isItemValidForSlot(slot, itemStack); } + AxisAlignedBB bb = null; @Override public AxisAlignedBB getRenderBoundingBox() { - if(bb == null) { + if (bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, yCoord, zCoord - 1, - xCoord + 2, + xCoord + 6, yCoord + 3, - zCoord + 7 + zCoord + 6 ); } - return bb; } - } diff --git a/src/main/resources/assets/hbm/models/machines/strand_caster.obj b/src/main/resources/assets/hbm/models/machines/strand_caster.obj index 2a3ac8b78..2a009d538 100644 --- a/src/main/resources/assets/hbm/models/machines/strand_caster.obj +++ b/src/main/resources/assets/hbm/models/machines/strand_caster.obj @@ -1,10 +1,11 @@ -# Blender v2.79 (sub 0) OBJ File: 'strand_caster.blend' +# Blender 3.6.1 # www.blender.org -o Plane +mtllib strand_caster.mtl +o caster v -1.000000 0.000000 1.000000 v 1.000000 0.000000 1.000000 -v -1.000000 0.000000 -6.000000 -v 1.000000 0.000000 -6.000000 +v -1.000000 -0.000000 -6.000000 +v 1.000000 -0.000000 -6.000000 v -1.000000 0.750000 -6.000000 v -1.000000 0.750000 1.000000 v 1.000000 0.750000 1.000000 @@ -31,24 +32,14 @@ v -0.750000 2.000000 -0.750000 v 0.750000 2.000000 -0.750000 v -0.750000 0.500000 -1.500000 v -0.750000 0.500000 0.750000 -v 0.750000 0.500000 0.750000 v 0.750000 0.500000 -1.500000 v -0.750000 0.750000 -5.750000 v -0.750000 0.750000 0.750000 v 0.750000 0.750000 0.750000 v 0.750000 0.750000 -5.750000 v -0.750000 0.500000 -5.750000 -v -0.750000 0.500000 0.750000 v 0.750000 0.500000 0.750000 v 0.750000 0.500000 -5.750000 -v -0.500000 0.937500 -1.500000 -v 0.500000 0.937500 -1.500000 -v -0.500000 0.937500 -5.250000 -v 0.500000 0.937500 -5.250000 -v -0.500000 1.062500 -5.250000 -v -0.500000 1.062500 -1.500000 -v 0.500000 1.062500 -1.500000 -v 0.500000 1.062500 -5.250000 v 0.750000 1.250000 -1.500000 v -0.750000 1.250000 -1.500000 v 0.750000 0.812500 -3.125000 @@ -275,8 +266,8 @@ v 0.750000 0.750000 -0.125000 v 0.750000 2.000000 -0.125000 v 0.838388 0.750000 -0.088388 v 0.838388 2.000000 -0.088388 -v 0.875000 0.750000 0.000000 -v 0.875000 2.000000 0.000000 +v 0.875000 0.750000 -0.000000 +v 0.875000 2.000000 -0.000000 v 0.838388 0.750000 0.088388 v 0.838388 2.000000 0.088388 v 0.750000 0.750000 0.125000 @@ -307,8 +298,8 @@ v -0.750000 0.750000 0.125000 v -0.750000 2.000000 0.125000 v -0.838388 0.750000 0.088388 v -0.838388 2.000000 0.088388 -v -0.875000 0.750000 0.000000 -v -0.875000 2.000000 0.000000 +v -0.875000 0.750000 -0.000000 +v -0.875000 2.000000 -0.000000 v -0.838388 0.750000 -0.088388 v -0.838388 2.000000 -0.088388 v -0.750000 0.750000 0.375000 @@ -331,6 +322,49 @@ v -0.875000 0.750000 -0.500000 v -0.875000 2.000000 -0.500000 v -0.838388 0.750000 -0.588388 v -0.838388 2.000000 -0.588388 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +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.7311 0.2611 0.6303 +vn -0.9955 -0.0000 -0.0949 +vn -0.9947 -0.0393 -0.0948 +vn -0.6333 -0.2962 -0.7150 +vn -0.0000 -0.3827 -0.9239 +vn 0.6333 -0.2962 -0.7150 +vn 0.9955 -0.0000 -0.0949 +vn 0.7311 0.2611 0.6303 +vn 0.9947 -0.0393 -0.0948 +vn -0.6630 -0.0000 -0.7486 +vn 0.6630 -0.0000 -0.7486 +vn 0.6794 0.4063 -0.6110 +vn 0.9987 0.0196 -0.0473 +vn 0.7574 -0.0000 0.6530 +vn -0.9987 0.0196 -0.0473 +vn -0.7263 -0.3800 0.5728 +vn -0.7574 -0.0000 0.6530 +vn -0.6794 0.4063 -0.6110 +vn -0.0000 -0.5562 0.8311 +vn 0.7263 -0.3800 0.5728 +vn 0.7071 -0.5000 0.5000 +vn -0.7071 -0.5000 0.5000 +vn -0.0000 0.5628 -0.8266 +vn -0.7071 0.5000 -0.5000 +vn 0.3827 -0.0000 -0.9239 +vn 0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn 0.3827 -0.0000 0.9239 +vn -0.3827 -0.0000 0.9239 +vn -0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 -0.7071 +vn -0.3827 -0.0000 -0.9239 +vn 0.7071 0.5000 -0.5000 vt 0.484375 0.100000 vt 0.046875 0.366667 vt 0.046875 0.100000 @@ -345,34 +379,13 @@ vt 0.484375 -0.000000 vt 0.656250 0.600000 vt 0.531250 0.466667 vt 0.656250 0.466667 -vt 0.656250 0.466667 -vt 0.531250 0.600000 -vt 0.531250 0.466667 -vt 0.531250 0.466667 -vt 0.656250 0.600000 vt 0.531250 0.600000 vt 0.531250 0.200000 -vt 0.656250 0.466667 -vt 0.656250 0.600000 -vt 0.531250 0.466667 -vt 0.656250 0.466667 vt 0.539062 0.616667 -vt 0.531250 0.600000 vt 0.648438 0.616667 vt 0.539062 0.733333 -vt 0.539062 0.616667 -vt 0.656250 0.600000 -vt 0.539062 0.616667 -vt 0.539062 0.616667 -vt 0.531250 0.600000 -vt 0.539062 0.733333 vt 0.648438 0.966667 vt 0.539062 0.966667 -vt 0.648438 0.616667 -vt 0.539062 0.733333 -vt 0.648438 0.616667 -vt 0.648438 0.616667 -vt 0.539062 0.733333 vt 0.468750 0.733333 vt 0.062500 0.766667 vt 0.062500 0.733333 @@ -399,21 +412,6 @@ vt 0.468750 0.766667 vt 0.484375 0.766667 vt 0.046875 0.766667 vt 0.046875 0.966667 -vt 0.890625 0.566667 -vt 0.656250 0.700000 -vt 0.656250 0.566667 -vt 0.656250 0.566667 -vt 0.890625 0.700000 -vt 0.656250 0.700000 -vt 0.664062 0.700000 -vt 0.656250 0.566667 -vt 0.664062 0.566667 -vt 0.890625 0.683333 -vt 0.656250 0.700000 -vt 0.656250 0.683333 -vt 0.656250 0.583333 -vt 0.890625 0.566667 -vt 0.890625 0.583333 vt 0.671875 0.200000 vt 0.765625 0.200000 vt 0.695312 0.550000 @@ -427,7 +425,6 @@ vt 0.695312 0.450000 vt 0.687500 0.450000 vt 0.695312 0.466667 vt 0.679688 0.450000 -vt 0.695312 0.450000 vt 0.835938 0.550000 vt 0.851562 0.566667 vt 0.835938 0.566667 @@ -436,37 +433,10 @@ vt 0.656250 0.516667 vt 0.656250 0.500000 vt 0.695312 0.433333 vt 0.835938 0.450000 -vt 0.695312 0.450000 vt 0.835938 0.433333 vt 0.843750 0.450000 -vt 0.695312 0.466667 -vt 0.679688 0.500000 -vt 0.851562 0.500000 -vt 0.679688 0.450000 -vt 0.695312 0.450000 vt 0.835938 0.466667 vt 0.851562 0.450000 -vt 0.695312 0.433333 -vt 0.835938 0.450000 -vt 0.679688 0.516667 -vt 0.835938 0.550000 -vt 0.851562 0.566667 -vt 0.835938 0.566667 -vt 0.656250 0.516667 -vt 0.656250 0.500000 -vt 0.695312 0.550000 -vt 0.679688 0.566667 -vt 0.835938 0.466667 -vt 0.851562 0.450000 -vt 0.835938 0.433333 -vt 0.843750 0.450000 -vt 0.687500 0.433333 -vt 0.687500 0.450000 -vt 0.875000 0.500000 -vt 0.851562 0.516667 -vt 0.902344 0.391667 -vt 0.667969 0.408333 -vt 0.667969 0.391667 vt 0.902344 0.391667 vt 0.667969 0.408333 vt 0.667969 0.391667 @@ -475,42 +445,19 @@ vt 0.914062 0.408333 vt 0.902344 0.408333 vt 0.656250 0.391667 vt 0.667969 0.433333 -vt 0.902344 0.408333 -vt 0.667969 0.433333 -vt 0.914062 0.408333 -vt 0.656250 0.391667 -vt 0.902344 0.366667 vt 0.531250 0.100000 vt 0.000000 0.366667 vt 0.046875 -0.000000 vt 0.656250 0.200000 vt 0.648438 0.733333 -vt 0.648438 0.733333 -vt 0.648438 0.733333 -vt 0.648438 0.733333 vt 0.621094 0.200000 -vt 0.531250 0.200000 -vt 0.890625 0.700000 -vt 0.890625 0.566667 -vt 0.656250 0.700000 -vt 0.890625 0.700000 -vt 0.656250 0.566667 vt 0.695312 0.566667 vt 0.875000 0.516667 vt 0.843750 0.433333 -vt 0.835938 0.450000 -vt 0.695312 0.566667 -vt 0.835938 0.450000 -vt 0.843750 0.433333 -vt 0.875000 0.516667 vt 0.667969 0.366667 vt 0.914062 0.391667 vt 0.656250 0.408333 vt 0.902344 0.433333 -vt 0.902344 0.433333 -vt 0.914062 0.391667 -vt 0.656250 0.408333 -vt 0.667969 0.366667 vt 0.921875 0.200000 vt 0.929688 0.400000 vt 0.921875 0.400000 @@ -522,113 +469,11 @@ vt 0.945312 0.400000 vt 0.937500 0.400000 vt 0.968750 0.200000 vt 0.976562 0.400000 -vt 0.937500 0.200000 -vt 0.945312 0.400000 -vt 0.937500 0.400000 -vt 0.929688 0.200000 -vt 0.929688 0.400000 -vt 0.914062 0.200000 -vt 0.921875 0.400000 -vt 0.914062 0.400000 -vt 0.921875 0.200000 -vt 0.921875 0.400000 -vt 0.921875 0.200000 -vt 0.929688 0.400000 -vt 0.914062 0.200000 -vt 0.914062 0.400000 -vt 0.929688 0.200000 -vt 0.937500 0.400000 -vt 0.953125 0.200000 -vt 0.960938 0.400000 -vt 0.953125 0.400000 -vt 0.968750 0.200000 -vt 0.976562 0.400000 -vt 0.968750 0.400000 -vt 0.937500 0.200000 -vt 0.945312 0.400000 -vt 0.960938 0.200000 -vt 0.945312 0.200000 -vt 0.953125 0.400000 -vt 0.929688 0.200000 -vt 0.945312 0.200000 -vt 0.953125 0.200000 -vt 0.914062 0.200000 -vt 0.914062 0.400000 -vt 0.953125 0.200000 -vt 0.960938 0.400000 -vt 0.953125 0.400000 -vt 0.968750 0.200000 -vt 0.976562 0.400000 -vt 0.968750 0.400000 -vt 0.960938 0.200000 -vt 0.945312 0.200000 -vt 0.921875 0.200000 -vt 0.929688 0.400000 -vt 0.921875 0.400000 -vt 0.937500 0.200000 -vt 0.945312 0.400000 -vt 0.937500 0.400000 vt 0.929688 0.200000 vt 0.914062 0.200000 vt 0.914062 0.400000 vt 0.953125 0.200000 -vt 0.960938 0.400000 vt 0.953125 0.400000 -vt 0.968750 0.200000 -vt 0.976562 0.400000 -vt 0.968750 0.400000 -vt 0.960938 0.200000 -vt 0.945312 0.200000 -vt 0.921875 0.200000 -vt 0.929688 0.400000 -vt 0.921875 0.400000 -vt 0.960938 0.200000 -vt 0.968750 0.400000 -vt 0.960938 0.400000 -vt 0.937500 0.200000 -vt 0.945312 0.400000 -vt 0.937500 0.400000 -vt 0.968750 0.200000 -vt 0.976562 0.400000 -vt 0.937500 0.200000 -vt 0.945312 0.400000 -vt 0.937500 0.400000 -vt 0.929688 0.200000 -vt 0.929688 0.400000 -vt 0.914062 0.200000 -vt 0.921875 0.400000 -vt 0.914062 0.400000 -vt 0.921875 0.200000 -vt 0.921875 0.400000 -vt 0.921875 0.200000 -vt 0.929688 0.400000 -vt 0.914062 0.200000 -vt 0.914062 0.400000 -vt 0.929688 0.200000 -vt 0.937500 0.400000 -vt 0.953125 0.200000 -vt 0.960938 0.400000 -vt 0.953125 0.400000 -vt 0.968750 0.200000 -vt 0.976562 0.400000 -vt 0.968750 0.400000 -vt 0.937500 0.200000 -vt 0.945312 0.400000 -vt 0.960938 0.200000 -vt 0.945312 0.200000 -vt 0.953125 0.400000 -vt 0.929688 0.200000 -vt 0.945312 0.200000 -vt 0.953125 0.200000 -vt 0.914062 0.200000 -vt 0.914062 0.400000 -vt 0.953125 0.200000 -vt 0.960938 0.400000 -vt 0.953125 0.400000 -vt 0.968750 0.200000 -vt 0.976562 0.400000 -vt 0.968750 0.400000 -vt 0.960938 0.200000 vt 0.945312 0.200000 vt 0.695312 0.341667 vt 0.703125 0.333333 @@ -655,42 +500,6 @@ vt 0.742188 0.325000 vt 0.742188 0.200000 vt 0.750000 0.308333 vt 0.742188 0.308333 -vt 0.718750 0.358333 -vt 0.726562 0.333333 -vt 0.726562 0.358333 -vt 0.734375 0.200000 -vt 0.734375 0.308333 -vt 0.695312 0.200000 -vt 0.703125 0.308333 -vt 0.695312 0.308333 -vt 0.718750 0.200000 -vt 0.718750 0.308333 -vt 0.703125 0.200000 -vt 0.695312 0.341667 -vt 0.703125 0.333333 -vt 0.703125 0.350000 -vt 0.687500 0.200000 -vt 0.687500 0.308333 -vt 0.710938 0.333333 -vt 0.710938 0.358333 -vt 0.718750 0.333333 -vt 0.726562 0.308333 -vt 0.703125 0.316667 -vt 0.734375 0.333333 -vt 0.742188 0.341667 -vt 0.734375 0.350000 -vt 0.734375 0.316667 -vt 0.742188 0.333333 -vt 0.710938 0.200000 -vt 0.695312 0.333333 -vt 0.710938 0.308333 -vt 0.687500 0.333333 -vt 0.695312 0.325000 -vt 0.750000 0.333333 -vt 0.742188 0.325000 -vt 0.742188 0.200000 -vt 0.750000 0.308333 -vt 0.742188 0.308333 vt 0.734375 0.200000 vt 0.734375 0.308333 vt 0.695312 0.200000 @@ -704,511 +513,434 @@ vt 0.687500 0.308333 vt 0.710938 0.200000 vt 0.687500 0.366667 vt 0.679688 0.200000 -vt 0.687500 0.200000 vt 0.679688 0.366667 -vt 0.671875 0.200000 vt 0.671875 0.366667 vt 0.664062 0.200000 vt 0.664062 0.366667 -vt 0.656250 0.200000 -vt 0.679688 0.366667 -vt 0.671875 0.200000 -vt 0.679688 0.200000 -vt 0.687500 0.366667 -vt 0.687500 0.200000 -vt 0.671875 0.366667 -vt 0.664062 0.200000 -vt 0.664062 0.366667 -vt 0.656250 0.200000 -vt 0.679688 0.366667 -vt 0.671875 0.200000 -vt 0.679688 0.200000 -vt 0.687500 0.366667 -vt 0.687500 0.200000 -vt 0.671875 0.366667 -vt 0.664062 0.200000 -vt 0.664062 0.366667 -vt 0.656250 0.200000 -vt 0.687500 0.366667 -vt 0.679688 0.200000 -vt 0.687500 0.200000 -vt 0.679688 0.366667 -vt 0.671875 0.200000 -vt 0.671875 0.366667 -vt 0.664062 0.200000 -vt 0.664062 0.366667 -vt 0.656250 0.200000 -vt 0.687500 0.366667 -vt 0.679688 0.200000 -vt 0.687500 0.200000 -vt 0.679688 0.366667 -vt 0.671875 0.200000 -vt 0.671875 0.366667 -vt 0.664062 0.200000 -vt 0.664062 0.366667 -vt 0.656250 0.200000 -vt 0.687500 0.366667 -vt 0.679688 0.200000 -vt 0.687500 0.200000 -vt 0.679688 0.366667 -vt 0.671875 0.200000 -vt 0.671875 0.366667 -vt 0.664062 0.200000 -vt 0.664062 0.366667 -vt 0.656250 0.200000 -vt 0.976562 0.200000 -vt 0.976562 0.200000 -vt 0.976562 0.200000 -vt 0.976562 0.200000 -vt 0.976562 0.200000 -vt 0.976562 0.200000 vt 0.976562 0.200000 vt 0.750000 0.200000 vt 0.726562 0.200000 -vt 0.750000 0.200000 -vt 0.726562 0.200000 vt 0.656250 0.366667 -vt 0.656250 0.366667 -vt 0.656250 0.366667 -vt 0.656250 0.366667 -vt 0.656250 0.366667 -vt 0.656250 0.366667 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -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.7311 0.2611 0.6303 -vn -0.9955 -0.0000 -0.0949 -vn -0.9947 -0.0393 -0.0948 -vn -0.6333 -0.2962 -0.7150 -vn -0.0000 -0.3827 -0.9239 -vn 0.6333 -0.2962 -0.7150 -vn 0.9955 -0.0000 -0.0949 -vn 0.7311 0.2611 0.6303 -vn 0.9947 -0.0393 -0.0948 -vn -0.6630 -0.0000 -0.7486 -vn 0.6630 -0.0000 -0.7486 -vn 0.6794 0.4063 -0.6110 -vn 0.9987 0.0196 -0.0473 -vn 0.7574 -0.0000 0.6530 -vn -0.9987 0.0196 -0.0473 -vn -0.7263 -0.3800 0.5728 -vn -0.7574 -0.0000 0.6530 -vn -0.6794 0.4063 -0.6110 -vn 0.0000 -0.5562 0.8311 -vn 0.7263 -0.3800 0.5728 -vn 0.7071 -0.5000 0.5000 -vn -0.7071 -0.5000 0.5000 -vn 0.0000 0.5628 -0.8266 -vn -0.7071 0.5000 -0.5000 -vn 0.3827 0.0000 -0.9239 -vn 0.7071 0.0000 -0.7071 -vn 0.7071 0.0000 0.7071 -vn 0.3827 0.0000 0.9239 -vn -0.3827 0.0000 0.9239 -vn -0.7071 0.0000 0.7071 -vn -0.7071 0.0000 -0.7071 -vn -0.3827 0.0000 -0.9239 -vn 0.7071 0.5000 -0.5000 -s off +s 0 +usemtl f 3/1/1 2/2/1 1/3/1 -f 5/4/2 36/5/2 8/6/2 +f 5/4/2 35/5/2 8/6/2 f 3/1/3 8/7/3 4/8/3 f 2/2/4 6/9/4 1/3/4 f 4/8/5 7/10/5 2/2/5 f 1/3/6 5/11/6 3/1/6 f 12/12/4 9/13/4 10/14/4 -f 13/15/3 16/16/3 14/17/3 -f 10/18/5 16/19/5 12/20/5 -f 9/21/1 14/22/1 10/18/1 -f 11/23/6 13/24/6 9/25/6 -f 11/23/2 19/26/2 15/27/2 -f 17/28/5 23/29/5 19/26/5 -f 16/19/2 18/30/2 12/20/2 -f 15/31/2 20/32/2 16/16/2 -f 12/12/2 17/33/2 11/34/2 -f 22/35/2 23/36/2 21/37/2 -f 19/38/4 24/39/4 20/32/4 -f 20/40/6 22/35/6 18/30/6 -f 18/41/3 21/42/3 17/33/3 -f 36/43/6 39/44/6 35/45/6 -f 7/10/2 34/46/2 6/47/2 -f 31/48/5 32/49/5 49/50/5 -f 27/51/6 29/52/6 30/53/6 -f 49/50/3 29/52/3 50/54/3 -f 25/55/4 31/56/4 26/57/4 -f 8/6/2 35/58/2 7/10/2 -f 6/47/2 33/59/2 5/4/2 -f 39/44/2 37/60/2 38/61/2 -f 34/62/5 37/60/5 33/63/5 -f 33/64/4 40/65/4 36/66/4 -f 35/67/3 38/61/3 34/68/3 -f 43/69/1 42/70/1 41/71/1 -f 47/72/2 45/73/2 46/74/2 -f 43/75/3 48/76/3 44/77/3 -f 44/78/5 47/79/5 42/80/5 -f 41/81/6 45/82/6 43/83/6 -f 28/84/7 50/54/7 27/85/7 -f 167/86/6 163/87/6 172/88/6 -f 193/89/3 190/90/3 189/91/3 -f 165/92/3 170/93/3 166/94/3 -f 170/95/5 164/96/5 166/97/5 -f 188/98/6 194/99/6 192/100/6 -f 173/101/4 163/102/4 164/103/4 -f 174/104/1 187/105/1 171/106/1 -f 188/107/4 191/108/4 187/105/4 -f 171/109/5 189/91/5 168/110/5 -f 181/111/2 172/88/2 173/101/2 -f 171/109/5 179/112/5 177/113/5 -f 187/114/5 193/115/5 189/91/5 -f 167/116/1 175/117/1 170/93/1 -f 189/91/2 169/118/2 168/110/2 -f 176/119/6 186/120/6 184/121/6 -f 170/95/5 181/111/5 173/101/5 -f 172/88/6 176/119/6 167/86/6 -f 168/110/4 180/122/4 179/123/4 -f 169/118/6 188/98/6 174/124/6 -f 174/124/6 180/125/6 169/118/6 -f 175/126/5 185/127/5 181/111/5 -f 176/128/4 183/129/4 175/117/4 -f 178/130/3 171/106/3 177/131/3 -f 185/132/3 182/133/3 181/111/3 -f 201/134/2 198/135/2 197/136/2 -f 200/137/2 195/138/2 196/139/2 -f 197/136/5 210/140/5 201/134/5 -f 200/137/3 207/141/3 199/142/3 -f 195/138/4 204/143/4 196/139/4 -f 199/142/6 203/144/6 195/138/6 -f 202/145/6 205/146/6 198/135/6 -f 201/134/3 209/147/3 202/145/3 -f 198/135/4 206/148/4 197/136/4 -f 196/139/5 208/149/5 200/137/5 +f 13/14/3 16/15/3 14/13/3 +f 10/13/5 16/12/5 12/15/5 +f 9/16/1 14/14/1 10/13/1 +f 11/12/6 13/13/6 9/14/6 +f 11/12/2 19/17/2 15/15/2 +f 17/18/5 23/19/5 19/17/5 +f 16/12/2 18/17/2 12/15/2 +f 15/12/2 20/17/2 16/15/2 +f 12/12/2 17/17/2 11/15/2 +f 22/19/2 23/20/2 21/21/2 +f 19/18/4 24/19/4 20/17/4 +f 20/18/6 22/19/6 18/17/6 +f 18/18/3 21/19/3 17/17/3 +f 35/22/6 37/23/6 34/24/6 +f 7/10/2 33/25/2 6/26/2 +f 37/27/5 31/28/5 39/29/5 +f 27/30/6 29/31/6 30/32/6 +f 39/29/3 29/31/3 40/33/3 +f 25/34/4 37/35/4 26/36/4 +f 8/6/2 34/37/2 7/10/2 +f 6/26/2 32/38/2 5/4/2 +f 37/23/2 36/39/2 30/40/2 +f 33/41/5 36/39/5 32/42/5 +f 32/43/4 38/44/4 35/45/4 +f 34/46/3 30/40/3 33/47/3 +f 28/48/7 40/33/7 27/49/7 +f 157/50/6 153/51/6 162/52/6 +f 183/53/3 180/54/3 179/55/3 +f 155/56/3 160/57/3 156/58/3 +f 160/59/5 154/60/5 156/57/5 +f 178/61/6 184/62/6 182/63/6 +f 163/64/4 153/65/4 154/66/4 +f 164/67/1 177/68/1 161/57/1 +f 178/69/4 181/70/4 177/68/4 +f 161/59/5 179/55/5 158/64/5 +f 171/55/2 162/52/2 163/64/2 +f 161/59/5 169/60/5 167/57/5 +f 177/71/5 183/72/5 179/55/5 +f 157/67/1 165/68/1 160/57/1 +f 179/55/2 159/52/2 158/64/2 +f 166/61/6 176/62/6 174/63/6 +f 160/59/5 171/55/5 163/64/5 +f 162/52/6 166/61/6 157/50/6 +f 158/64/4 170/65/4 169/66/4 +f 159/52/6 178/61/6 164/50/6 +f 164/50/6 170/51/6 159/52/6 +f 165/71/5 175/72/5 171/55/5 +f 166/69/4 173/70/4 165/68/4 +f 168/56/3 161/57/3 167/58/3 +f 175/53/3 172/54/3 171/55/3 +f 191/73/2 188/74/2 187/75/2 +f 190/73/2 185/74/2 186/75/2 +f 187/75/5 200/76/5 191/73/5 +f 190/73/3 197/77/3 189/78/3 +f 185/74/4 194/79/4 186/75/4 +f 189/78/6 193/80/6 185/74/6 +f 192/78/6 195/80/6 188/74/6 +f 191/73/3 199/77/3 192/78/3 +f 188/74/4 196/79/4 187/75/4 +f 186/75/5 198/76/5 190/73/5 f 3/1/1 4/8/1 2/2/1 -f 5/4/2 33/59/2 36/5/2 -f 3/1/3 5/150/3 8/7/3 -f 2/2/4 7/151/4 6/9/4 +f 5/4/2 32/38/2 35/5/2 +f 3/1/3 5/81/3 8/7/3 +f 2/2/4 7/82/4 6/9/4 f 4/8/5 8/6/5 7/10/5 -f 1/3/6 6/152/6 5/11/6 -f 12/12/4 11/34/4 9/13/4 -f 13/15/3 15/31/3 16/16/3 -f 10/18/5 14/22/5 16/19/5 -f 9/21/1 13/153/1 14/22/1 -f 11/23/6 15/27/6 13/24/6 -f 11/23/2 17/28/2 19/26/2 -f 17/28/5 21/154/5 23/29/5 -f 16/19/2 20/40/2 18/30/2 -f 15/31/2 19/38/2 20/32/2 -f 12/12/2 18/41/2 17/33/2 -f 22/35/2 24/155/2 23/36/2 -f 19/38/4 23/156/4 24/39/4 -f 20/40/6 24/155/6 22/35/6 -f 18/41/3 22/157/3 21/42/3 -f 36/43/6 40/65/6 39/44/6 -f 7/10/2 35/58/2 34/46/2 -f 49/50/5 28/158/5 31/48/5 -f 28/158/5 26/159/5 31/48/5 -f 30/53/6 25/55/6 27/51/6 -f 27/51/6 50/54/6 29/52/6 -f 49/50/3 32/49/3 29/52/3 -f 25/55/4 30/53/4 31/56/4 -f 8/6/2 36/5/2 35/58/2 -f 6/47/2 34/46/2 33/59/2 -f 39/44/2 40/65/2 37/60/2 -f 34/62/5 38/61/5 37/60/5 -f 33/64/4 37/60/4 40/65/4 -f 35/67/3 39/44/3 38/61/3 -f 43/69/1 44/160/1 42/70/1 -f 47/72/2 48/161/2 45/73/2 -f 43/75/3 45/162/3 48/76/3 -f 44/78/5 48/163/5 47/79/5 -f 41/81/6 46/164/6 45/82/6 -f 28/84/7 49/50/7 50/54/7 -f 167/86/6 165/165/6 163/87/6 -f 193/89/3 194/166/3 190/90/3 -f 165/92/3 167/116/3 170/93/3 -f 170/95/5 173/101/5 164/96/5 -f 188/98/6 190/90/6 194/99/6 -f 173/101/4 172/88/4 163/102/4 -f 174/104/1 188/107/1 187/105/1 -f 188/107/4 192/167/4 191/108/4 -f 171/109/5 187/114/5 189/91/5 -f 181/111/2 182/133/2 172/88/2 -f 171/109/5 168/110/5 179/112/5 -f 187/114/5 191/168/5 193/115/5 -f 167/116/1 176/128/1 175/117/1 -f 189/91/2 190/90/2 169/118/2 -f 176/119/6 182/133/6 186/120/6 -f 170/95/5 175/126/5 181/111/5 -f 172/88/6 182/133/6 176/119/6 -f 168/110/4 169/118/4 180/122/4 -f 169/118/6 190/90/6 188/98/6 -f 174/124/6 178/169/6 180/125/6 -f 175/126/5 183/170/5 185/127/5 -f 176/128/4 184/171/4 183/129/4 -f 178/130/3 174/104/3 171/106/3 -f 185/132/3 186/172/3 182/133/3 -f 201/134/2 202/145/2 198/135/2 -f 200/137/2 199/142/2 195/138/2 -f 197/136/5 206/173/5 210/140/5 -f 200/137/3 208/174/3 207/141/3 -f 195/138/4 203/175/4 204/143/4 -f 199/142/6 207/176/6 203/144/6 -f 202/145/6 209/177/6 205/146/6 -f 201/134/3 210/178/3 209/147/3 -f 198/135/4 205/179/4 206/148/4 -f 196/139/5 204/180/5 208/149/5 +f 1/3/6 6/83/6 5/11/6 +f 12/12/4 11/15/4 9/13/4 +f 13/14/3 15/12/3 16/15/3 +f 10/13/5 14/14/5 16/12/5 +f 9/16/1 13/84/1 14/14/1 +f 11/12/6 15/15/6 13/13/6 +f 11/12/2 17/18/2 19/17/2 +f 17/18/5 21/85/5 23/19/5 +f 16/12/2 20/18/2 18/17/2 +f 15/12/2 19/18/2 20/17/2 +f 12/12/2 18/18/2 17/17/2 +f 22/19/2 24/85/2 23/20/2 +f 19/18/4 23/85/4 24/19/4 +f 20/18/6 24/85/6 22/19/6 +f 18/18/3 22/85/3 21/19/3 +f 35/22/6 38/44/6 37/23/6 +f 7/10/2 34/37/2 33/25/2 +f 39/29/5 28/86/5 37/27/5 +f 28/86/5 26/16/5 37/27/5 +f 30/32/6 25/34/6 27/30/6 +f 27/30/6 40/33/6 29/31/6 +f 39/29/3 31/28/3 29/31/3 +f 25/34/4 30/32/4 37/35/4 +f 8/6/2 35/5/2 34/37/2 +f 6/26/2 33/25/2 32/38/2 +f 37/23/2 38/44/2 36/39/2 +f 33/41/5 30/40/5 36/39/5 +f 32/43/4 36/39/4 38/44/4 +f 34/46/3 37/23/3 30/40/3 +f 28/48/7 39/29/7 40/33/7 +f 157/50/6 155/87/6 153/51/6 +f 183/53/3 184/88/3 180/54/3 +f 155/56/3 157/67/3 160/57/3 +f 160/59/5 163/64/5 154/60/5 +f 178/61/6 180/54/6 184/62/6 +f 163/64/4 162/52/4 153/65/4 +f 164/67/1 178/69/1 177/68/1 +f 178/69/4 182/89/4 181/70/4 +f 161/59/5 177/71/5 179/55/5 +f 171/55/2 172/54/2 162/52/2 +f 161/59/5 158/64/5 169/60/5 +f 177/71/5 181/68/5 183/72/5 +f 157/67/1 166/69/1 165/68/1 +f 179/55/2 180/54/2 159/52/2 +f 166/61/6 172/54/6 176/62/6 +f 160/59/5 165/71/5 171/55/5 +f 162/52/6 172/54/6 166/61/6 +f 158/64/4 159/52/4 170/65/4 +f 159/52/6 180/54/6 178/61/6 +f 164/50/6 168/87/6 170/51/6 +f 165/71/5 173/68/5 175/72/5 +f 166/69/4 174/89/4 173/70/4 +f 168/56/3 164/67/3 161/57/3 +f 175/53/3 176/88/3 172/54/3 +f 191/73/2 192/78/2 188/74/2 +f 190/73/2 189/78/2 185/74/2 +f 187/75/5 196/90/5 200/76/5 +f 190/73/3 198/91/3 197/77/3 +f 185/74/4 193/92/4 194/79/4 +f 189/78/6 197/93/6 193/80/6 +f 192/78/6 199/93/6 195/80/6 +f 191/73/3 200/91/3 199/77/3 +f 188/74/4 195/92/4 196/79/4 +f 186/75/5 194/90/5 198/76/5 s 1 -f 90/181/8 91/182/4 89/183/8 -f 54/184/3 55/185/9 53/186/3 -f 78/187/10 79/188/2 77/189/10 -f 56/190/9 57/191/1 55/185/9 -f 94/192/10 95/193/2 93/194/10 -f 76/195/4 77/189/10 75/196/4 -f 58/197/1 59/198/8 57/199/1 -f 74/200/8 75/196/4 73/201/8 -f 60/202/8 61/203/4 59/198/8 -f 72/204/1 73/201/8 71/205/1 -f 62/206/4 63/207/10 61/203/4 -f 82/208/7 52/209/3 81/210/7 -f 70/211/9 71/212/1 69/213/9 -f 64/214/10 65/215/2 63/207/10 -f 51/216/3 69/213/9 52/209/3 -f 66/217/2 67/218/7 65/215/2 -f 92/219/4 93/194/10 91/182/4 -f 80/220/2 81/210/7 79/188/2 -f 68/221/7 53/186/3 67/218/7 -f 88/222/1 89/183/8 87/223/1 -f 98/224/7 84/225/3 97/226/7 -f 86/227/9 87/228/1 85/229/9 -f 83/230/3 85/229/9 84/225/3 -f 96/231/2 97/226/7 95/193/2 -f 106/232/8 107/233/4 105/234/8 -f 110/235/10 111/236/2 109/237/10 -f 108/238/4 109/237/10 107/233/4 -f 104/239/1 105/234/8 103/240/1 -f 114/241/7 100/242/3 113/243/7 -f 102/244/9 103/245/1 101/246/9 -f 99/247/3 101/246/9 100/242/3 -f 112/248/2 113/243/7 111/236/2 -f 154/249/8 155/250/4 153/251/8 -f 118/252/3 119/253/9 117/254/3 -f 142/255/10 143/256/2 141/257/10 -f 120/258/9 121/259/1 119/253/9 -f 158/260/10 159/261/2 157/262/10 -f 140/263/4 141/257/10 139/264/4 -f 122/265/1 123/266/8 121/267/1 -f 138/268/8 139/264/4 137/269/8 -f 124/270/8 125/271/4 123/266/8 -f 136/272/1 137/269/8 135/273/1 -f 126/274/4 127/275/10 125/271/4 -f 146/276/7 116/277/3 145/278/7 -f 134/279/9 135/280/1 133/281/9 -f 128/282/10 129/283/2 127/275/10 -f 115/284/3 133/281/9 116/277/3 -f 130/285/2 131/286/7 129/283/2 -f 156/287/4 157/262/10 155/250/4 -f 144/288/2 145/278/7 143/256/2 -f 132/289/7 117/254/3 131/286/7 -f 152/290/1 153/251/8 151/291/1 -f 162/292/7 148/293/3 161/294/7 -f 150/295/9 151/296/1 149/297/9 -f 147/298/3 149/297/9 148/293/3 -f 160/299/2 161/294/7 159/261/2 -f 214/300/11 221/301/12 213/302/13 -f 212/303/14 219/304/3 211/305/15 -f 219/304/3 218/306/16 211/305/15 -f 224/307/17 216/308/18 217/309/19 -f 213/302/13 220/310/20 212/303/14 -f 225/311/21 217/309/19 218/306/16 -f 219/304/3 232/312/22 225/311/21 -f 231/313/23 223/314/24 224/307/17 -f 228/315/25 220/310/20 221/301/12 -f 225/311/21 231/313/23 224/307/17 -f 229/316/26 221/301/12 222/317/27 -f 227/318/28 219/304/3 220/310/20 -f 214/300/11 215/319/29 222/317/27 -f 222/317/27 215/319/29 229/316/26 -f 215/320/29 216/308/18 223/314/24 -f 223/314/24 230/321/30 215/320/29 -f 246/322/31 215/323/29 230/324/30 -f 240/325/15 255/326/21 233/327/16 -f 232/312/22 245/328/5 231/329/23 -f 244/330/32 228/331/25 229/332/26 -f 242/333/7 232/312/22 226/334/33 -f 245/328/5 230/324/30 231/329/23 -f 243/335/6 227/318/28 228/331/25 -f 237/336/11 251/337/12 238/338/13 -f 248/339/8 229/332/26 215/340/29 -f 238/338/13 250/341/20 239/342/14 -f 249/343/3 262/344/22 255/326/21 -f 258/345/25 250/341/20 251/337/12 -f 250/341/20 240/325/15 239/342/14 -f 254/346/17 235/347/18 234/348/19 -f 255/326/21 234/348/19 233/327/16 -f 261/349/23 253/350/24 254/346/17 -f 241/351/34 226/334/33 227/318/28 -f 255/326/21 261/349/23 254/346/17 -f 252/352/27 258/345/25 251/337/12 -f 257/353/28 249/343/3 250/341/20 -f 237/336/11 236/354/29 252/352/27 -f 252/352/27 236/354/29 259/355/26 -f 236/356/29 235/347/18 253/350/24 -f 253/350/24 260/357/30 236/356/29 -f 268/358/31 236/359/29 260/360/30 -f 262/344/22 267/361/5 261/362/23 -f 266/363/32 258/364/25 259/365/26 -f 264/366/7 262/344/22 256/367/33 -f 267/361/5 260/360/30 261/362/23 -f 265/368/6 257/353/28 258/364/25 -f 270/369/8 259/365/26 236/370/29 -f 263/371/34 256/367/33 257/353/28 -f 272/372/35 273/373/36 271/374/35 -f 274/375/36 275/376/5 273/373/36 -f 276/377/5 277/378/37 275/376/5 -f 278/379/37 279/380/38 277/378/37 -f 284/381/36 285/382/5 283/383/36 -f 282/384/35 283/383/36 281/385/35 -f 286/386/5 287/387/37 285/382/5 -f 288/388/37 289/389/38 287/387/37 -f 294/390/36 295/391/5 293/392/36 -f 292/393/35 293/392/36 291/394/35 -f 296/395/5 297/396/37 295/391/5 -f 298/397/37 299/398/38 297/396/37 -f 304/399/39 305/400/40 303/401/39 -f 306/402/40 307/403/6 305/400/40 -f 308/404/6 309/405/41 307/403/6 -f 310/406/41 301/407/42 309/405/41 -f 314/408/39 315/409/40 313/410/39 -f 316/411/40 317/412/6 315/409/40 -f 318/413/6 319/414/41 317/412/6 -f 320/415/41 311/416/42 319/414/41 -f 324/417/39 325/418/40 323/419/39 -f 326/420/40 327/421/6 325/418/40 -f 328/422/6 329/423/41 327/421/6 -f 330/424/41 321/425/42 329/423/41 -f 90/181/8 92/219/4 91/182/4 -f 54/184/3 56/190/9 55/185/9 -f 78/187/10 80/220/2 79/188/2 -f 56/190/9 58/426/1 57/191/1 -f 94/192/10 96/231/2 95/193/2 -f 76/195/4 78/187/10 77/189/10 -f 58/197/1 60/202/8 59/198/8 -f 74/200/8 76/195/4 75/196/4 -f 60/202/8 62/206/4 61/203/4 -f 72/204/1 74/200/8 73/201/8 -f 62/206/4 64/214/10 63/207/10 -f 82/208/7 51/216/3 52/209/3 -f 70/211/9 72/427/1 71/212/1 -f 64/214/10 66/217/2 65/215/2 -f 51/216/3 70/211/9 69/213/9 -f 66/217/2 68/221/7 67/218/7 -f 92/219/4 94/192/10 93/194/10 -f 80/220/2 82/208/7 81/210/7 -f 68/221/7 54/184/3 53/186/3 -f 88/222/1 90/181/8 89/183/8 -f 98/224/7 83/230/3 84/225/3 -f 86/227/9 88/428/1 87/228/1 -f 83/230/3 86/227/9 85/229/9 -f 96/231/2 98/224/7 97/226/7 -f 106/232/8 108/238/4 107/233/4 -f 110/235/10 112/248/2 111/236/2 -f 108/238/4 110/235/10 109/237/10 -f 104/239/1 106/232/8 105/234/8 -f 114/241/7 99/247/3 100/242/3 -f 102/244/9 104/429/1 103/245/1 -f 99/247/3 102/244/9 101/246/9 -f 112/248/2 114/241/7 113/243/7 -f 154/249/8 156/287/4 155/250/4 -f 118/252/3 120/258/9 119/253/9 -f 142/255/10 144/288/2 143/256/2 -f 120/258/9 122/430/1 121/259/1 -f 158/260/10 160/299/2 159/261/2 -f 140/263/4 142/255/10 141/257/10 -f 122/265/1 124/270/8 123/266/8 -f 138/268/8 140/263/4 139/264/4 -f 124/270/8 126/274/4 125/271/4 -f 136/272/1 138/268/8 137/269/8 -f 126/274/4 128/282/10 127/275/10 -f 146/276/7 115/284/3 116/277/3 -f 134/279/9 136/431/1 135/280/1 -f 128/282/10 130/285/2 129/283/2 -f 115/284/3 134/279/9 133/281/9 -f 130/285/2 132/289/7 131/286/7 -f 156/287/4 158/260/10 157/262/10 -f 144/288/2 146/276/7 145/278/7 -f 132/289/7 118/252/3 117/254/3 -f 152/290/1 154/249/8 153/251/8 -f 162/292/7 147/298/3 148/293/3 -f 150/295/9 152/432/1 151/296/1 -f 147/298/3 150/295/9 149/297/9 -f 160/299/2 162/292/7 161/294/7 -f 214/300/11 222/317/27 221/301/12 -f 212/303/14 220/310/20 219/304/3 -f 219/304/3 225/311/21 218/306/16 -f 224/307/17 223/314/24 216/308/18 -f 213/302/13 221/301/12 220/310/20 -f 225/311/21 224/307/17 217/309/19 -f 219/304/3 226/334/33 232/312/22 -f 231/313/23 230/321/30 223/314/24 -f 228/315/25 227/318/28 220/310/20 -f 225/311/21 232/312/22 231/313/23 -f 229/316/26 228/315/25 221/301/12 -f 227/318/28 226/334/33 219/304/3 -f 246/322/31 248/433/8 215/323/29 -f 240/325/15 249/343/3 255/326/21 -f 232/312/22 247/434/43 245/328/5 -f 244/330/32 243/335/6 228/331/25 -f 242/333/7 247/434/43 232/312/22 -f 245/328/5 246/322/31 230/324/30 -f 243/335/6 241/351/34 227/318/28 -f 237/336/11 252/352/27 251/337/12 -f 248/339/8 244/330/32 229/332/26 -f 238/338/13 251/337/12 250/341/20 -f 249/343/3 256/367/33 262/344/22 -f 258/345/25 257/353/28 250/341/20 -f 250/341/20 249/343/3 240/325/15 -f 254/346/17 253/350/24 235/347/18 -f 255/326/21 254/346/17 234/348/19 -f 261/349/23 260/357/30 253/350/24 -f 241/351/34 242/333/7 226/334/33 -f 255/326/21 262/344/22 261/349/23 -f 252/352/27 259/355/26 258/345/25 -f 257/353/28 256/367/33 249/343/3 -f 268/358/31 270/435/8 236/359/29 -f 262/344/22 269/436/43 267/361/5 -f 266/363/32 265/368/6 258/364/25 -f 264/366/7 269/436/43 262/344/22 -f 267/361/5 268/358/31 260/360/30 -f 265/368/6 263/371/34 257/353/28 -f 270/369/8 266/363/32 259/365/26 -f 263/371/34 264/366/7 256/367/33 -f 272/372/35 274/375/36 273/373/36 -f 274/375/36 276/377/5 275/376/5 -f 276/377/5 278/379/37 277/378/37 -f 278/379/37 280/437/38 279/380/38 -f 284/381/36 286/386/5 285/382/5 -f 282/384/35 284/381/36 283/383/36 -f 286/386/5 288/388/37 287/387/37 -f 288/388/37 290/438/38 289/389/38 -f 294/390/36 296/395/5 295/391/5 -f 292/393/35 294/390/36 293/392/36 -f 296/395/5 298/397/37 297/396/37 -f 298/397/37 300/439/38 299/398/38 -f 304/399/39 306/402/40 305/400/40 -f 306/402/40 308/404/6 307/403/6 -f 308/404/6 310/406/41 309/405/41 -f 310/406/41 302/440/42 301/407/42 -f 314/408/39 316/411/40 315/409/40 -f 316/411/40 318/413/6 317/412/6 -f 318/413/6 320/415/41 319/414/41 -f 320/415/41 312/441/42 311/416/42 -f 324/417/39 326/420/40 325/418/40 -f 326/420/40 328/422/6 327/421/6 -f 328/422/6 330/424/41 329/423/41 -f 330/424/41 322/442/42 321/425/42 +f 80/94/8 81/95/4 79/96/8 +f 44/97/3 45/98/9 43/99/3 +f 68/100/10 69/101/2 67/102/10 +f 46/103/9 47/104/1 45/98/9 +f 84/100/10 85/101/2 83/102/10 +f 66/105/4 67/102/10 65/95/4 +f 48/106/1 49/96/8 47/107/1 +f 64/94/8 65/95/4 63/96/8 +f 50/94/8 51/95/4 49/96/8 +f 62/106/1 63/96/8 61/107/1 +f 52/105/4 53/102/10 51/95/4 +f 72/108/7 42/99/3 71/109/7 +f 60/103/9 61/104/1 59/98/9 +f 54/100/10 55/101/2 53/102/10 +f 41/97/3 59/98/9 42/99/3 +f 56/110/2 57/109/7 55/101/2 +f 82/105/4 83/102/10 81/95/4 +f 70/110/2 71/109/7 69/101/2 +f 58/108/7 43/99/3 57/109/7 +f 78/106/1 79/96/8 77/107/1 +f 88/108/7 74/99/3 87/109/7 +f 76/103/9 77/104/1 75/98/9 +f 73/97/3 75/98/9 74/99/3 +f 86/110/2 87/109/7 85/101/2 +f 96/94/8 97/95/4 95/96/8 +f 100/100/10 101/101/2 99/102/10 +f 98/105/4 99/102/10 97/95/4 +f 94/106/1 95/96/8 93/107/1 +f 104/108/7 90/99/3 103/109/7 +f 92/103/9 93/104/1 91/98/9 +f 89/97/3 91/98/9 90/99/3 +f 102/110/2 103/109/7 101/101/2 +f 144/94/8 145/95/4 143/96/8 +f 108/97/3 109/98/9 107/99/3 +f 132/100/10 133/101/2 131/102/10 +f 110/103/9 111/104/1 109/98/9 +f 148/100/10 149/101/2 147/102/10 +f 130/105/4 131/102/10 129/95/4 +f 112/106/1 113/96/8 111/107/1 +f 128/94/8 129/95/4 127/96/8 +f 114/94/8 115/95/4 113/96/8 +f 126/106/1 127/96/8 125/107/1 +f 116/105/4 117/102/10 115/95/4 +f 136/108/7 106/99/3 135/109/7 +f 124/103/9 125/104/1 123/98/9 +f 118/100/10 119/101/2 117/102/10 +f 105/97/3 123/98/9 106/99/3 +f 120/110/2 121/109/7 119/101/2 +f 146/105/4 147/102/10 145/95/4 +f 134/110/2 135/109/7 133/101/2 +f 122/108/7 107/99/3 121/109/7 +f 142/106/1 143/96/8 141/107/1 +f 152/108/7 138/99/3 151/109/7 +f 140/103/9 141/104/1 139/98/9 +f 137/97/3 139/98/9 138/99/3 +f 150/110/2 151/109/7 149/101/2 +f 204/111/11 211/112/12 203/113/13 +f 202/114/14 209/115/3 201/116/15 +f 209/115/3 208/117/16 201/116/15 +f 214/118/17 206/119/18 207/120/19 +f 203/113/13 210/121/20 202/114/14 +f 215/122/21 207/120/19 208/117/16 +f 209/115/3 222/123/22 215/122/21 +f 221/124/23 213/125/24 214/118/17 +f 218/126/25 210/121/20 211/112/12 +f 215/122/21 221/124/23 214/118/17 +f 219/127/26 211/112/12 212/128/27 +f 217/129/28 209/115/3 210/121/20 +f 204/111/11 205/130/29 212/128/27 +f 212/128/27 205/130/29 219/127/26 +f 205/131/29 206/119/18 213/125/24 +f 213/125/24 220/132/30 205/131/29 +f 236/133/31 205/134/29 220/135/30 +f 230/116/15 245/122/21 223/117/16 +f 222/123/22 235/136/5 221/137/23 +f 234/138/32 218/139/25 219/140/26 +f 232/141/7 222/123/22 216/142/33 +f 235/136/5 220/135/30 221/137/23 +f 233/143/6 217/129/28 218/139/25 +f 227/111/11 241/112/12 228/113/13 +f 238/144/8 219/140/26 205/145/29 +f 228/113/13 240/121/20 229/114/14 +f 239/115/3 252/123/22 245/122/21 +f 248/126/25 240/121/20 241/112/12 +f 240/121/20 230/116/15 229/114/14 +f 244/118/17 225/119/18 224/120/19 +f 245/122/21 224/120/19 223/117/16 +f 251/124/23 243/125/24 244/118/17 +f 231/146/34 216/142/33 217/129/28 +f 245/122/21 251/124/23 244/118/17 +f 242/128/27 248/126/25 241/112/12 +f 247/129/28 239/115/3 240/121/20 +f 227/111/11 226/130/29 242/128/27 +f 242/128/27 226/130/29 249/127/26 +f 226/131/29 225/119/18 243/125/24 +f 243/125/24 250/132/30 226/131/29 +f 258/133/31 226/134/29 250/135/30 +f 252/123/22 257/136/5 251/137/23 +f 256/138/32 248/139/25 249/140/26 +f 254/141/7 252/123/22 246/142/33 +f 257/136/5 250/135/30 251/137/23 +f 255/143/6 247/129/28 248/139/25 +f 260/144/8 249/140/26 226/145/29 +f 253/146/34 246/142/33 247/129/28 +f 262/147/35 263/148/36 261/144/35 +f 264/149/36 265/48/5 263/148/36 +f 266/150/5 267/151/37 265/48/5 +f 268/152/37 269/84/38 267/151/37 +f 274/149/36 275/48/5 273/148/36 +f 272/147/35 273/148/36 271/144/35 +f 276/150/5 277/151/37 275/48/5 +f 278/152/37 279/84/38 277/151/37 +f 284/149/36 285/48/5 283/148/36 +f 282/147/35 283/148/36 281/144/35 +f 286/150/5 287/151/37 285/48/5 +f 288/152/37 289/84/38 287/151/37 +f 294/147/39 295/148/40 293/144/39 +f 296/149/40 297/48/6 295/148/40 +f 298/150/6 299/151/41 297/48/6 +f 300/152/41 291/84/42 299/151/41 +f 304/147/39 305/148/40 303/144/39 +f 306/149/40 307/48/6 305/148/40 +f 308/150/6 309/151/41 307/48/6 +f 310/152/41 301/84/42 309/151/41 +f 314/147/39 315/148/40 313/144/39 +f 316/149/40 317/48/6 315/148/40 +f 318/150/6 319/151/41 317/48/6 +f 320/152/41 311/84/42 319/151/41 +f 80/94/8 82/105/4 81/95/4 +f 44/97/3 46/103/9 45/98/9 +f 68/100/10 70/110/2 69/101/2 +f 46/103/9 48/153/1 47/104/1 +f 84/100/10 86/110/2 85/101/2 +f 66/105/4 68/100/10 67/102/10 +f 48/106/1 50/94/8 49/96/8 +f 64/94/8 66/105/4 65/95/4 +f 50/94/8 52/105/4 51/95/4 +f 62/106/1 64/94/8 63/96/8 +f 52/105/4 54/100/10 53/102/10 +f 72/108/7 41/97/3 42/99/3 +f 60/103/9 62/153/1 61/104/1 +f 54/100/10 56/110/2 55/101/2 +f 41/97/3 60/103/9 59/98/9 +f 56/110/2 58/108/7 57/109/7 +f 82/105/4 84/100/10 83/102/10 +f 70/110/2 72/108/7 71/109/7 +f 58/108/7 44/97/3 43/99/3 +f 78/106/1 80/94/8 79/96/8 +f 88/108/7 73/97/3 74/99/3 +f 76/103/9 78/153/1 77/104/1 +f 73/97/3 76/103/9 75/98/9 +f 86/110/2 88/108/7 87/109/7 +f 96/94/8 98/105/4 97/95/4 +f 100/100/10 102/110/2 101/101/2 +f 98/105/4 100/100/10 99/102/10 +f 94/106/1 96/94/8 95/96/8 +f 104/108/7 89/97/3 90/99/3 +f 92/103/9 94/153/1 93/104/1 +f 89/97/3 92/103/9 91/98/9 +f 102/110/2 104/108/7 103/109/7 +f 144/94/8 146/105/4 145/95/4 +f 108/97/3 110/103/9 109/98/9 +f 132/100/10 134/110/2 133/101/2 +f 110/103/9 112/153/1 111/104/1 +f 148/100/10 150/110/2 149/101/2 +f 130/105/4 132/100/10 131/102/10 +f 112/106/1 114/94/8 113/96/8 +f 128/94/8 130/105/4 129/95/4 +f 114/94/8 116/105/4 115/95/4 +f 126/106/1 128/94/8 127/96/8 +f 116/105/4 118/100/10 117/102/10 +f 136/108/7 105/97/3 106/99/3 +f 124/103/9 126/153/1 125/104/1 +f 118/100/10 120/110/2 119/101/2 +f 105/97/3 124/103/9 123/98/9 +f 120/110/2 122/108/7 121/109/7 +f 146/105/4 148/100/10 147/102/10 +f 134/110/2 136/108/7 135/109/7 +f 122/108/7 108/97/3 107/99/3 +f 142/106/1 144/94/8 143/96/8 +f 152/108/7 137/97/3 138/99/3 +f 140/103/9 142/153/1 141/104/1 +f 137/97/3 140/103/9 139/98/9 +f 150/110/2 152/108/7 151/109/7 +f 204/111/11 212/128/27 211/112/12 +f 202/114/14 210/121/20 209/115/3 +f 209/115/3 215/122/21 208/117/16 +f 214/118/17 213/125/24 206/119/18 +f 203/113/13 211/112/12 210/121/20 +f 215/122/21 214/118/17 207/120/19 +f 209/115/3 216/142/33 222/123/22 +f 221/124/23 220/132/30 213/125/24 +f 218/126/25 217/129/28 210/121/20 +f 215/122/21 222/123/22 221/124/23 +f 219/127/26 218/126/25 211/112/12 +f 217/129/28 216/142/33 209/115/3 +f 236/133/31 238/154/8 205/134/29 +f 230/116/15 239/115/3 245/122/21 +f 222/123/22 237/155/43 235/136/5 +f 234/138/32 233/143/6 218/139/25 +f 232/141/7 237/155/43 222/123/22 +f 235/136/5 236/133/31 220/135/30 +f 233/143/6 231/146/34 217/129/28 +f 227/111/11 242/128/27 241/112/12 +f 238/144/8 234/138/32 219/140/26 +f 228/113/13 241/112/12 240/121/20 +f 239/115/3 246/142/33 252/123/22 +f 248/126/25 247/129/28 240/121/20 +f 240/121/20 239/115/3 230/116/15 +f 244/118/17 243/125/24 225/119/18 +f 245/122/21 244/118/17 224/120/19 +f 251/124/23 250/132/30 243/125/24 +f 231/146/34 232/141/7 216/142/33 +f 245/122/21 252/123/22 251/124/23 +f 242/128/27 249/127/26 248/126/25 +f 247/129/28 246/142/33 239/115/3 +f 258/133/31 260/154/8 226/134/29 +f 252/123/22 259/155/43 257/136/5 +f 256/138/32 255/143/6 248/139/25 +f 254/141/7 259/155/43 252/123/22 +f 257/136/5 258/133/31 250/135/30 +f 255/143/6 253/146/34 247/129/28 +f 260/144/8 256/138/32 249/140/26 +f 253/146/34 254/141/7 246/142/33 +f 262/147/35 264/149/36 263/148/36 +f 264/149/36 266/150/5 265/48/5 +f 266/150/5 268/152/37 267/151/37 +f 268/152/37 270/156/38 269/84/38 +f 274/149/36 276/150/5 275/48/5 +f 272/147/35 274/149/36 273/148/36 +f 276/150/5 278/152/37 277/151/37 +f 278/152/37 280/156/38 279/84/38 +f 284/149/36 286/150/5 285/48/5 +f 282/147/35 284/149/36 283/148/36 +f 286/150/5 288/152/37 287/151/37 +f 288/152/37 290/156/38 289/84/38 +f 294/147/39 296/149/40 295/148/40 +f 296/149/40 298/150/6 297/48/6 +f 298/150/6 300/152/41 299/151/41 +f 300/152/41 292/156/42 291/84/42 +f 304/147/39 306/149/40 305/148/40 +f 306/149/40 308/150/6 307/48/6 +f 308/150/6 310/152/41 309/151/41 +f 310/152/41 302/156/42 301/84/42 +f 314/147/39 316/149/40 315/148/40 +f 316/149/40 318/150/6 317/48/6 +f 318/150/6 320/152/41 319/151/41 +f 320/152/41 312/156/42 311/84/42 +o plate +v -0.500000 0.937500 -1.500000 +v 0.500000 0.937500 -1.500000 +v -0.500000 0.937500 -5.250000 +v 0.500000 0.937500 -5.250000 +v -0.500000 1.062500 -5.250000 +v -0.500000 1.062500 -1.500000 +v 0.500000 1.062500 -1.500000 +v 0.500000 1.062500 -5.250000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vt 0.890625 0.566667 +vt 0.656250 0.700000 +vt 0.656250 0.566667 +vt 0.890625 0.700000 +vt 0.664062 0.700000 +vt 0.664062 0.566667 +vt 0.890625 0.683333 +vt 0.656250 0.683333 +vt 0.656250 0.583333 +vt 0.890625 0.583333 +s 0 +usemtl +f 323/157/44 322/158/44 321/159/44 +f 327/159/45 325/160/45 326/158/45 +f 323/161/46 328/159/46 324/162/46 +f 324/163/47 327/158/47 322/164/47 +f 321/165/48 325/157/48 323/166/48 +f 323/157/44 324/160/44 322/158/44 +f 327/159/45 328/157/45 325/160/45 +f 323/161/46 325/158/46 328/159/46 +f 324/163/47 328/160/47 327/158/47 +f 321/165/48 326/159/48 325/157/48 From 9d6c7d6372018df40abf18fbceb6e31dda96ca6f Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 1 Jan 2024 22:33:12 +0100 Subject: [PATCH 052/376] more rails, new gadget model --- src/main/java/com/hbm/blocks/ModBlocks.java | 6 + .../blocks/rail/RailStandardCurveWide.java | 239 + .../rail/RailStandardStraightShort.java | 152 + .../hbm/blocks/rail/RailStandardSwitch.java | 2 + .../rail/RailStandardSwitchFlipped.java | 2 + .../java/com/hbm/main/ResourceManager.java | 6 +- .../hbm/render/item/ItemRenderLibrary.java | 11 - .../render/tileentity/RenderNukeGadget.java | 76 +- .../assets/hbm/models/TheGadget2.obj | 1616 --- .../assets/hbm/models/TheGadget3.obj | 1223 -- .../assets/hbm/models/TheGadget3_smooth.obj | 1293 -- .../models/blocks/rail_standard_bend_wide.obj | 1366 +++ .../hbm/models/blocks/rail_standard_short.obj | 185 + .../assets/hbm/models/bombs/gadget.obj | 10019 ++++++++++++++++ .../textures/gui/weapon/gadgetSchematic.png | Bin 10212 -> 9943 bytes .../hbm/textures/models/TheGadget3_tex.png | Bin 33609 -> 0 bytes .../hbm/textures/models/bombs/gadget.png | Bin 0 -> 14119 bytes .../hbm/textures/models/capes/CapeAdam.png | Bin 25867 -> 6026 bytes .../hbm/textures/models/missileNuclear.png | Bin 10973 -> 0 bytes 19 files changed, 12027 insertions(+), 4169 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java delete mode 100644 src/main/resources/assets/hbm/models/TheGadget2.obj delete mode 100644 src/main/resources/assets/hbm/models/TheGadget3.obj delete mode 100644 src/main/resources/assets/hbm/models/TheGadget3_smooth.obj create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj create mode 100644 src/main/resources/assets/hbm/models/bombs/gadget.obj delete mode 100644 src/main/resources/assets/hbm/textures/models/TheGadget3_tex.png create mode 100644 src/main/resources/assets/hbm/textures/models/bombs/gadget.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileNuclear.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7c656c712..26203971a 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1171,7 +1171,9 @@ public class ModBlocks { public static Block rail_narrow_straight; public static Block rail_narrow_curve; public static Block rail_large_straight; + public static Block rail_large_straight_short; public static Block rail_large_curve; + public static Block rail_large_curve_wide; public static Block rail_large_ramp; public static Block rail_large_buffer; public static Block rail_large_switch; @@ -2250,7 +2252,9 @@ public class ModBlocks { rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_straight_short = new RailStandardStraightShort().setBlockName("rail_large_straight_short").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve_wide = new RailStandardCurveWide().setBlockName("rail_large_curve_wide").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); rail_large_switch = new RailStandardSwitch().setBlockName("rail_large_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); @@ -3552,7 +3556,9 @@ public class ModBlocks { register(rail_narrow_straight); register(rail_narrow_curve); register(rail_large_straight); + register(rail_large_straight_short); register(rail_large_curve); + register(rail_large_curve_wide); register(rail_large_ramp); register(rail_large_buffer); register(rail_large_switch); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java new file mode 100644 index 000000000..3935cf5c6 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java @@ -0,0 +1,239 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardCurveWide extends BlockDummyable implements IRailNTM, IRenderRail { + + public RailStandardCurveWide() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + double turnRadius = 6D; + double axisDist = 6.5D; + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * axisDist; + double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * axisDist; + + Vec3 dist = Vec3.createVectorHelper(vec.xCoord - axisX, 0, vec.zCoord - axisZ); + dist = dist.normalize(); + dist.xCoord *= turnRadius; + dist.zCoord *= turnRadius; + + double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; + + if(speed == 0) { + info.dist(0).pos(new BlockPos(x, y, z)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + } + + double angleDeg = Math.atan2(dist.xCoord, dist.zCoord) * 180D / Math.PI + 90; + if(dir == Library.NEG_X) angleDeg -= 90; + if(dir == Library.POS_X) angleDeg += 90; + if(dir == Library.POS_Z) angleDeg += 180; + angleDeg = MathHelper.wrapAngleTo180_double(angleDeg); + double length90Deg = turnRadius * Math.PI / 2D; + double angularChange = speed / length90Deg * 90D; + + ForgeDirection moveDir = ForgeDirection.UNKNOWN; + + if(Math.abs(motionX) > Math.abs(motionZ)) { + moveDir = motionX > 0 ? Library.POS_X : Library.NEG_X; + } else { + moveDir = motionZ > 0 ? Library.POS_Z : Library.NEG_Z; + } + + if(moveDir == dir || moveDir == rot.getOpposite()) { + angularChange *= -1; + } + + double effAngle = angleDeg + angularChange; + moveAngle += angularChange; + + if(effAngle > 90) { + double angleOvershoot = effAngle - 90D; + moveAngle -= angleOvershoot; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 6 + rot.offsetX * 7, y, cZ - dir.offsetZ * 6 + rot.offsetZ * 7)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y + 0.1875, axisZ - dir.offsetZ * turnRadius); + } + + if(effAngle < 0) { + double angleOvershoot = -effAngle; + moveAngle -= angleOvershoot; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y + 0.1875, axisZ -rot.offsetZ * turnRadius); + } + + double radianChange = angularChange * Math.PI / 180D; + dist.rotateAroundY((float) radianChange); + + return Vec3.createVectorHelper(axisX + dist.xCoord, y + 0.1875, axisZ + dist.zCoord); + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 6, 0, 6, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + return world.getBlock(x + dX, y, z + dZ).isReplaceable(world, x + dX, y, z + dZ) && + world.getBlock(x + rX, y, z + rZ).isReplaceable(world, x + rX, y, z + rZ) && + world.getBlock(x + dX + rX, y, z + dZ + rZ).isReplaceable(world, x + dX + rX, y, z + dZ + rZ) && + world.getBlock(x + dX + rX * 2, y, z + dZ + rZ * 2).isReplaceable(world, x + dX + rX * 2, y, z + dZ + rZ * 2) && + world.getBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ).isReplaceable(world, x + dX * 2 + rX, y, z + dZ * 2 + rZ) && + world.getBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2).isReplaceable(world, x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2) && + world.getBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ).isReplaceable(world, x + dX * 3 + rX, y, z + dZ * 3 + rZ) && + world.getBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2).isReplaceable(world, x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2) && + world.getBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3).isReplaceable(world, x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3).isReplaceable(world, x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3) && + world.getBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3).isReplaceable(world, x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4).isReplaceable(world, x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4) && + world.getBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4).isReplaceable(world, x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4); + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + world.setBlock(x + dX, y, z + dZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2, y, z + dZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + rX, y, z + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX, y, z + dZ + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX, y, z + dZ * 4 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 2, y, z + dZ * 4 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 2, y, z + dZ * 5 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 3, y, z + dZ * 5 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4, this, dir.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 4, y, z + dZ * 6 + rZ * 4, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 5, y, z + dZ * 5 + rZ * 5, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 6, y, z + dZ * 5 + rZ * 6, this, rot.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 5, y, z + dZ * 6 + rZ * 5, this, rot.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 6, y, z + dZ * 6 + rZ * 6, this, rot.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.12, 0.12, 0.12); + GL11.glTranslated(2.5, -0.0625, -3); + GL11.glRotated(90, 0, 1, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java new file mode 100644 index 000000000..02aca06f3 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java @@ -0,0 +1,152 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardStraightShort extends BlockDummyable implements IRailNTM, IRenderRail { + + public RailStandardStraightShort() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 0, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + info.yaw(-90F); + } else { + targetX -= speed; + info.yaw(90F); + } + vec.xCoord = MathHelper.clamp_double(targetX, cX, cX + 1); + vec.yCoord = y + 0.1875; + vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 1 : -1), y, cZ)); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + info.yaw(0F); + } else { + targetZ -= speed; + info.yaw(180F); + } + vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; + vec.yCoord = y + 0.1875; + vec.zCoord = MathHelper.clamp_double(targetZ, cZ,cZ + 1); + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 1 : -1))); + } + + return vec; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.7, 0.7, 0.7); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java index 6c16ecf90..f08785d44 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java @@ -3,6 +3,7 @@ package com.hbm.blocks.rail; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; @@ -128,6 +129,7 @@ public class RailStandardSwitch extends BlockRailWaypointSystem implements IRend if(world.isRemote) return true; if(player.isSneaking()) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.train) return false; int[] pos = this.findCore(world, x, y, z); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java index a27d8d04c..58b280786 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; +import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; @@ -125,6 +126,7 @@ public class RailStandardSwitchFlipped extends BlockRailWaypointSystem implement if(world.isRemote) return true; if(player.isSneaking()) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.train) return false; int[] pos = this.findCore(world, x, y, z); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 38837f228..d72e0509a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -254,7 +254,7 @@ public class ResourceManager { public static final IModelCustom shredder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/shredder.obj")); //Bombs - public static final IModelCustom bomb_gadget = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/TheGadget3.obj")); + public static final IModelCustom bomb_gadget = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/gadget.obj")).asDisplayList(); public static final IModelCustom bomb_boy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/LilBoy1.obj")); public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/FatMan.obj")).asDisplayList(); public static final IModelCustom bomb_mike = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ivymike.obj")); @@ -671,7 +671,7 @@ public class ResourceManager { public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/shredder.png"); //Bombs - public static final ResourceLocation bomb_gadget_tex = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_tex.png"); + public static final ResourceLocation bomb_gadget_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/gadget.png"); public static final ResourceLocation bomb_boy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/lilboy.png"); public static final ResourceLocation bomb_man_tex = new ResourceLocation(RefStrings.MODID, "textures/models/FatMan.png"); public static final ResourceLocation bomb_mike_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/ivymike.png"); @@ -1464,7 +1464,9 @@ public class ResourceManager { public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); + public static final IModelCustom rail_standard_straight_short = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_short.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); + public static final IModelCustom rail_standard_curve_wide = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide.obj")); public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); public static final IModelCustom rail_standard_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")); public static final IModelCustom rail_standard_switch = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch.obj")); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 436a839bd..c9ca79fb9 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -411,17 +411,6 @@ public class ItemRenderLibrary { bindTexture(ResourceManager.duchessgambit_tex); ResourceManager.duchessgambit.renderAll(); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_gadget), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, -3, 0); - GL11.glScaled(5, 5, 5); - } - public void renderCommon() { - GL11.glTranslated(0.25, 0, 0); - bindTexture(ResourceManager.bomb_gadget_tex); - ResourceManager.bomb_gadget.renderAll(); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_boy), new ItemRenderBase() { public void renderInventory() { GL11.glScaled(5, 5, 5); diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java b/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java index a41bdf06b..3168f7c12 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java @@ -2,38 +2,66 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderNukeGadget extends TileEntitySpecialRenderer { +public class RenderNukeGadget extends TileEntitySpecialRenderer implements IItemRendererProvider { - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata()) { + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; } - bindTexture(ResourceManager.bomb_gadget_tex); - ResourceManager.bomb_gadget.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_gadget_tex); + ResourceManager.bomb_gadget.renderPart("Body"); + + if(Minecraft.getMinecraft().gameSettings.fancyGraphics) + ResourceManager.bomb_gadget.renderPart("Wires"); + GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.nuke_gadget); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glRotatef(-90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_gadget_tex); + ResourceManager.bomb_gadget.renderPart("Body"); + + if(Minecraft.getMinecraft().gameSettings.fancyGraphics) + ResourceManager.bomb_gadget.renderPart("Wires"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } } diff --git a/src/main/resources/assets/hbm/models/TheGadget2.obj b/src/main/resources/assets/hbm/models/TheGadget2.obj deleted file mode 100644 index 7f13574d8..000000000 --- a/src/main/resources/assets/hbm/models/TheGadget2.obj +++ /dev/null @@ -1,1616 +0,0 @@ -# Blender v2.70 (sub 0) OBJ File: 'TheGadget2.blend' -# www.blender.org -o Cylinder.002_Cylinder.004 -v -0.850000 1.000000 -0.650000 -v -0.750000 1.000000 -0.650000 -v -0.850000 0.751256 -0.600522 -v -0.750000 0.751256 -0.600522 -v -0.850000 0.540381 -0.459619 -v -0.750000 0.540381 -0.459619 -v -0.849999 0.399478 -0.248744 -v -0.749999 0.399478 -0.248744 -v -0.849999 0.350000 0.000000 -v -0.749999 0.350000 0.000000 -v -0.849999 0.399478 0.248744 -v -0.749999 0.399478 0.248744 -v -0.850000 0.540381 0.459619 -v -0.750000 0.540381 0.459619 -v -0.850000 0.751256 0.600522 -v -0.750000 0.751256 0.600522 -v -0.850000 1.000000 0.650000 -v -0.750000 1.000000 0.650000 -v -0.850000 1.248744 0.600522 -v -0.750000 1.248744 0.600522 -v -0.850000 1.459619 0.459620 -v -0.750000 1.459619 0.459620 -v -0.850001 1.600522 0.248744 -v -0.750001 1.600522 0.248744 -v -0.850001 1.650000 -0.000000 -v -0.750001 1.650000 -0.000000 -v -0.850001 1.600522 -0.248744 -v -0.750001 1.600522 -0.248744 -v -0.850000 1.459619 -0.459620 -v -0.750000 1.459619 -0.459620 -v -0.850000 1.248744 -0.600522 -v -0.750000 1.248744 -0.600522 -v 0.750000 1.000000 -0.650000 -v 0.850000 1.000000 -0.650000 -v 0.750000 0.751256 -0.600522 -v 0.850000 0.751256 -0.600522 -v 0.750001 0.540381 -0.459619 -v 0.850000 0.540381 -0.459619 -v 0.750001 0.399478 -0.248744 -v 0.850001 0.399478 -0.248744 -v 0.750001 0.350000 0.000000 -v 0.850001 0.350000 0.000000 -v 0.750001 0.399478 0.248744 -v 0.850001 0.399478 0.248744 -v 0.750001 0.540381 0.459619 -v 0.850000 0.540381 0.459619 -v 0.750000 0.751256 0.600522 -v 0.850000 0.751256 0.600522 -v 0.750000 1.000000 0.650000 -v 0.850000 1.000000 0.650000 -v 0.750000 1.248744 0.600522 -v 0.850000 1.248744 0.600522 -v 0.750000 1.459619 0.459620 -v 0.849999 1.459619 0.459620 -v 0.749999 1.600522 0.248744 -v 0.849999 1.600522 0.248744 -v 0.749999 1.650000 -0.000000 -v 0.849999 1.650000 -0.000000 -v 0.749999 1.600522 -0.248744 -v 0.849999 1.600522 -0.248744 -v 0.750000 1.459619 -0.459620 -v 0.849999 1.459619 -0.459620 -v 0.750000 1.248744 -0.600522 -v 0.850000 1.248744 -0.600522 -v -1.500000 0.999999 -0.500000 -v 1.000000 1.000001 -0.500000 -v -1.500000 0.808657 -0.461940 -v 1.000000 0.808659 -0.461940 -v -1.500000 0.646446 -0.353553 -v 1.000000 0.646448 -0.353553 -v -1.500000 0.538059 -0.191342 -v 1.000000 0.538061 -0.191342 -v -1.500000 0.499999 0.000000 -v 1.000000 0.500001 0.000000 -v -1.500000 0.538059 0.191342 -v 1.000000 0.538061 0.191342 -v -1.500000 0.646446 0.353553 -v 1.000000 0.646448 0.353553 -v -1.500000 0.808657 0.461940 -v 1.000000 0.808659 0.461940 -v -1.500000 0.999999 0.500000 -v 1.000000 1.000001 0.500000 -v -1.500000 1.191340 0.461940 -v 1.000000 1.191343 0.461940 -v -1.500000 1.353552 0.353554 -v 1.000000 1.353554 0.353554 -v -1.500000 1.461939 0.191342 -v 0.999999 1.461941 0.191342 -v -1.500000 1.499999 -0.000000 -v 0.999999 1.500001 -0.000000 -v -1.500000 1.461939 -0.191342 -v 0.999999 1.461941 -0.191342 -v -1.500000 1.353552 -0.353554 -v 1.000000 1.353554 -0.353554 -v -1.500000 1.191340 -0.461940 -v 1.000000 1.191343 -0.461940 -v -0.750000 1.000000 -0.800000 -v -0.650000 1.000000 -0.800000 -v -0.750000 0.693853 -0.739104 -v -0.650000 0.693853 -0.739104 -v -0.749999 0.434314 -0.565685 -v -0.649999 0.434315 -0.565685 -v -0.749999 0.260896 -0.306147 -v -0.649999 0.260896 -0.306147 -v -0.749999 0.200000 0.000000 -v -0.649999 0.200000 0.000000 -v -0.749999 0.260896 0.306147 -v -0.649999 0.260896 0.306147 -v -0.749999 0.434314 0.565685 -v -0.649999 0.434315 0.565685 -v -0.750000 0.693853 0.739104 -v -0.650000 0.693853 0.739104 -v -0.750000 1.000000 0.800000 -v -0.650000 1.000000 0.800000 -v -0.750000 1.306147 0.739104 -v -0.650000 1.306147 0.739104 -v -0.750001 1.565685 0.565686 -v -0.650001 1.565685 0.565686 -v -0.750001 1.739104 0.306147 -v -0.650001 1.739104 0.306147 -v -0.750001 1.800000 -0.000000 -v -0.650001 1.800000 -0.000000 -v -0.750001 1.739104 -0.306147 -v -0.650001 1.739104 -0.306147 -v -0.750001 1.565685 -0.565686 -v -0.650001 1.565685 -0.565686 -v -0.750000 1.306146 -0.739104 -v -0.650000 1.306146 -0.739104 -v 0.650000 1.000000 -0.800000 -v 0.750000 1.000000 -0.800000 -v 0.650000 0.693853 -0.739104 -v 0.750000 0.693853 -0.739104 -v 0.650001 0.434314 -0.565685 -v 0.750000 0.434315 -0.565685 -v 0.650001 0.260896 -0.306147 -v 0.750001 0.260896 -0.306147 -v 0.650001 0.200000 0.000000 -v 0.750001 0.200000 0.000000 -v 0.650001 0.260896 0.306147 -v 0.750001 0.260896 0.306147 -v 0.650001 0.434314 0.565685 -v 0.750000 0.434315 0.565685 -v 0.650000 0.693853 0.739104 -v 0.750000 0.693853 0.739104 -v 0.650000 1.000000 0.800000 -v 0.750000 1.000000 0.800000 -v 0.650000 1.306147 0.739104 -v 0.750000 1.306147 0.739104 -v 0.650000 1.565685 0.565686 -v 0.749999 1.565685 0.565686 -v 0.649999 1.739104 0.306147 -v 0.749999 1.739104 0.306147 -v 0.649999 1.800000 -0.000000 -v 0.749999 1.800000 -0.000000 -v 0.649999 1.739104 -0.306147 -v 0.749999 1.739104 -0.306147 -v 0.650000 1.565685 -0.565686 -v 0.749999 1.565685 -0.565686 -v 0.650000 1.306146 -0.739104 -v 0.750000 1.306146 -0.739104 -v 0.000000 0.000000 0.000000 -v 0.723607 0.552781 0.525725 -v -0.276388 0.552780 0.850649 -v -0.894426 0.552784 0.000000 -v -0.276388 0.552780 -0.850649 -v 0.723607 0.552781 -0.525725 -v 0.276388 1.447220 0.850649 -v -0.723607 1.447219 0.525725 -v -0.723607 1.447219 -0.525725 -v 0.276388 1.447220 -0.850649 -v 0.894426 1.447216 0.000000 -v 0.000000 2.000000 0.000000 -v -0.162456 0.149346 0.499995 -v 0.425323 0.149346 0.309011 -v 0.262869 0.474262 0.809012 -v 0.850648 0.474264 0.000000 -v 0.425323 0.149346 -0.309011 -v -0.525730 0.149348 0.000000 -v -0.688189 0.474264 0.499997 -v -0.162456 0.149346 -0.499995 -v -0.688189 0.474264 -0.499997 -v 0.262869 0.474262 -0.809012 -v 0.951058 1.000000 0.309013 -v 0.951058 1.000000 -0.309013 -v 0.000000 1.000000 1.000000 -v 0.587786 1.000000 0.809017 -v -0.951058 1.000000 0.309013 -v -0.587786 1.000000 0.809017 -v -0.587786 1.000000 -0.809017 -v -0.951058 1.000000 -0.309013 -v 0.587786 1.000000 -0.809017 -v 0.000000 1.000000 -1.000000 -v 0.688189 1.525736 0.499997 -v -0.262869 1.525738 0.809012 -v -0.850648 1.525736 0.000000 -v -0.262869 1.525738 -0.809012 -v 0.688189 1.525736 -0.499997 -v 0.162456 1.850654 0.499995 -v 0.525730 1.850652 0.000000 -v -0.425323 1.850654 0.309011 -v -0.425323 1.850654 -0.309011 -v 0.162456 1.850654 -0.499995 -v -1.187500 0.999999 -0.500000 -v -1.187500 0.808657 -0.461940 -v -1.187500 0.646446 -0.353553 -v -1.187500 0.538059 -0.191342 -v -1.187500 0.499999 0.000000 -v -1.187500 0.538059 0.191342 -v -1.187500 0.646446 0.353553 -v -1.187500 0.808657 0.461940 -v -1.187500 0.999999 0.500000 -v -1.187500 1.191341 0.461940 -v -1.187500 1.353552 0.353554 -v -1.187500 1.461939 0.191342 -v -1.187500 1.499999 -0.000000 -v -1.187500 1.461939 -0.191342 -v -1.187500 1.353552 -0.353554 -v -1.187500 1.191341 -0.461940 -vt 0.954445 0.915707 -vt 0.941459 0.915707 -vt 0.941459 0.882608 -vt 0.941459 0.877479 -vt 0.941459 0.844380 -vt 0.954445 0.844380 -vt 0.796072 0.927548 -vt 0.796072 0.894449 -vt 0.809058 0.894449 -vt 0.223742 0.946223 -vt 0.223742 0.913124 -vt 0.236729 0.913124 -vt 0.928624 0.190559 -vt 0.928624 0.157460 -vt 0.941611 0.157460 -vt 0.209444 0.946223 -vt 0.209444 0.913124 -vt 0.222430 0.913124 -vt 0.321191 0.950380 -vt 0.308205 0.950380 -vt 0.308205 0.917281 -vt 0.954446 0.806152 -vt 0.941459 0.806152 -vt 0.941459 0.773052 -vt 0.694459 0.938495 -vt 0.694459 0.905396 -vt 0.707445 0.905396 -vt 0.129689 0.914081 -vt 0.129689 0.947180 -vt 0.116702 0.947180 -vt 0.308205 0.884181 -vt 0.321191 0.884181 -vt 0.321191 0.917281 -vt 0.005275 0.913124 -vt 0.018262 0.913124 -vt 0.018262 0.946223 -vt 0.005275 0.880025 -vt 0.018262 0.880025 -vt 0.335490 0.917281 -vt 0.335490 0.950380 -vt 0.322504 0.950380 -vt 0.074105 0.422270 -vt 0.191188 0.445675 -vt 0.167899 0.563339 -vt 0.712194 0.931183 -vt 0.725180 0.931183 -vt 0.725180 0.964282 -vt 0.335490 0.884181 -vt 0.322503 0.917281 -vt 0.573167 0.304552 -vt 0.560563 0.335132 -vt 0.573167 0.271453 -vt 0.945391 0.119232 -vt 0.945391 0.086132 -vt 0.958377 0.086132 -vt 0.674509 0.938495 -vt 0.674509 0.905396 -vt 0.687496 0.905396 -vt 0.311513 0.812793 -vt 0.311513 0.779694 -vt 0.324499 0.779694 -vt 0.324499 0.812793 -vt 0.324499 0.779693 -vt 0.337486 0.779693 -vt 0.120707 0.812793 -vt 0.107720 0.812793 -vt 0.107720 0.779693 -vt 0.915638 0.190559 -vt 0.096753 0.947180 -vt 0.096753 0.914081 -vt 0.109739 0.914081 -vt 0.954446 0.811280 -vt 0.954446 0.844380 -vt 0.707445 0.938495 -vt 0.707445 0.971594 -vt 0.694459 0.971594 -vt 0.945391 0.157460 -vt 0.945391 0.124360 -vt 0.958377 0.124360 -vt 0.902651 0.190559 -vt 0.902651 0.157460 -vt 0.915638 0.157460 -vt 0.407585 0.706344 -vt 0.420572 0.706344 -vt 0.420572 0.739443 -vt 0.712194 0.898084 -vt 0.725180 0.898084 -vt 0.954597 0.157460 -vt 0.954597 0.190559 -vt 0.941611 0.190559 -vt 0.407585 0.509354 -vt 0.394981 0.539934 -vt 0.371692 0.563339 -vt 0.809058 0.927548 -vt 0.809058 0.960648 -vt 0.796072 0.960648 -vt 0.120707 0.779693 -vt 0.133693 0.779693 -vt 0.537273 0.383870 -vt 0.560563 0.407275 -vt 0.573167 0.437854 -vt 0.851858 0.531074 -vt 0.826522 0.531074 -vt 0.826522 0.245586 -vt 0.775851 0.204802 -vt 0.801187 0.204802 -vt 0.801187 0.490290 -vt 0.775851 0.531074 -vt 0.750516 0.531074 -vt 0.750516 0.245586 -vt 0.229128 0.735876 -vt 0.203793 0.735876 -vt 0.203793 0.450388 -vt 0.699845 0.245586 -vt 0.699845 0.531074 -vt 0.674509 0.531074 -vt 0.826522 0.204802 -vt 0.725180 0.531074 -vt 0.750516 0.857346 -vt 0.725180 0.857346 -vt 0.725180 0.571858 -vt 0.699845 0.857346 -vt 0.674509 0.857346 -vt 0.674509 0.571858 -vt 0.623838 0.531074 -vt 0.598502 0.531074 -vt 0.598502 0.245586 -vt 0.649173 0.531074 -vt 0.649173 0.245586 -vt 0.038211 0.735876 -vt 0.012876 0.735876 -vt 0.012876 0.450388 -vt 0.725180 0.204802 -vt 0.750516 0.204802 -vt 0.750516 0.490290 -vt 0.417281 0.565352 -vt 0.483938 0.537605 -vt 0.435196 0.655863 -vt 0.649173 0.857346 -vt 0.649173 0.571858 -vt 0.573167 0.531074 -vt 0.573167 0.245586 -vt 0.483938 0.204802 -vt 0.407585 0.153532 -vt 0.534956 0.128071 -vt 0.324499 0.738956 -vt 0.324499 0.698218 -vt 0.337486 0.698218 -vt 0.712831 0.694025 -vt 0.712831 0.734762 -vt 0.699845 0.734762 -vt 0.712831 0.775500 -vt 0.699845 0.775500 -vt 0.324499 0.657481 -vt 0.311513 0.698218 -vt 0.337486 0.657481 -vt 0.120707 0.738956 -vt 0.407585 0.665606 -vt 0.420572 0.665606 -vt 0.120707 0.698218 -vt 0.133693 0.698218 -vt 0.699845 0.653287 -vt 0.699845 0.612549 -vt 0.712831 0.612549 -vt 0.107720 0.738956 -vt 0.107720 0.698218 -vt 0.712831 0.531074 -vt 0.712831 0.571812 -vt 0.699845 0.571812 -vt 0.120707 0.657481 -vt 0.338077 0.657481 -vt 0.325090 0.657481 -vt 0.325090 0.616743 -vt 0.120707 0.616743 -vt 0.133693 0.616743 -vt 0.133693 0.657481 -vt 0.188280 0.044395 -vt 0.081628 0.204802 -vt 0.000000 0.082032 -vt 0.392072 0.249197 -vt 0.363409 0.394014 -vt 0.219305 0.365208 -vt 0.120707 0.576005 -vt 0.107720 0.616743 -vt 0.324499 0.616743 -vt 0.311513 0.657481 -vt 0.712831 0.816238 -vt 0.699845 0.816237 -vt 0.699845 0.694025 -vt 0.712831 0.653287 -vt 0.311513 0.738956 -vt 0.133693 0.738956 -vt 0.107720 0.657481 -vt 0.902651 0.198198 -vt 0.889665 0.198198 -vt 0.889665 0.157460 -vt 0.712194 0.857346 -vt 0.699845 0.856975 -vt 0.699845 0.816238 -vt 0.121297 0.616743 -vt 0.121297 0.576005 -vt 0.134284 0.576005 -vt 0.311513 0.616743 -vt 0.311513 0.576005 -vt 0.324499 0.576005 -vt 0.325090 0.576005 -vt 0.338077 0.576005 -vt 0.338077 0.616743 -vt 0.392072 0.160406 -vt 0.363409 0.189212 -vt 0.325957 0.204802 -vt 0.796072 0.853711 -vt 0.081628 0.409604 -vt 0.044177 0.220391 -vt 0.188280 0.249197 -vt 0.941459 0.956036 -vt 1.000000 0.915707 -vt 1.000000 0.996365 -vt 0.918059 0.316459 -vt 0.976600 0.276129 -vt 0.976600 0.356788 -vt 0.984258 0.388420 -vt 0.984258 0.459747 -vt 0.918058 0.414142 -vt 0.933801 0.652063 -vt 0.992341 0.611733 -vt 0.992341 0.692392 -vt 0.937191 0.045801 -vt 0.995731 0.005472 -vt 0.995731 0.086131 -vt 0.918059 0.285461 -vt 0.918059 0.356788 -vt 0.851858 0.311183 -vt 0.875259 0.773052 -vt 0.875259 0.844380 -vt 0.809058 0.798773 -vt 0.875259 0.915707 -vt 0.809058 0.889986 -vt 0.476413 0.786594 -vt 0.534956 0.746265 -vt 0.534956 0.826925 -vt 0.601157 0.779583 -vt 0.601157 0.850910 -vt 0.534956 0.805305 -vt 0.750516 0.571403 -vt 0.809058 0.531074 -vt 0.809058 0.611733 -vt 0.738588 0.076800 -vt 0.672388 0.051077 -vt 0.738588 0.005472 -vt 0.976599 0.276129 -vt 0.910399 0.250406 -vt 0.976599 0.204802 -vt 0.672388 0.005472 -vt 0.672388 0.076800 -vt 0.606188 0.031195 -vt 0.750516 0.732723 -vt 0.809058 0.692393 -vt 0.809058 0.773052 -vt 0.404277 0.817983 -vt 0.404277 0.889310 -vt 0.338077 0.843704 -vt 0.875259 0.571403 -vt 0.933801 0.531074 -vt 0.933801 0.611733 -vt 0.476413 0.947913 -vt 0.534954 0.907584 -vt 0.534954 0.988243 -vt 0.674509 0.928673 -vt 0.608309 0.883068 -vt 0.875259 0.798775 -vt 0.875259 0.889985 -vt 0.534956 0.739253 -vt 0.604463 0.698924 -vt 0.604463 0.779583 -vt 0.879191 0.131738 -vt 0.918058 0.505353 -vt 0.984258 0.531074 -vt 0.311512 0.737324 -vt 0.311512 0.817983 -vt 0.242004 0.777654 -vt 0.608310 0.954396 -vt 0.674509 1.000000 -vt 0.404277 0.960638 -vt 0.338078 0.915033 -vt 0.673974 0.117131 -vt 0.743482 0.076801 -vt 0.743482 0.157460 -vt 0.308205 0.817983 -vt 0.308205 0.889310 -vt 0.242004 0.863588 -vt 0.410213 0.872531 -vt 0.476413 0.826925 -vt 0.476413 0.898253 -vt 0.465448 0.705935 -vt 0.534956 0.665606 -vt 0.476413 0.969580 -vt 0.410214 0.943858 -vt 0.933801 0.692392 -vt 0.875259 0.652063 -vt 0.338077 0.777653 -vt 0.407585 0.737324 -vt 0.407585 0.817982 -vt 0.870991 0.031195 -vt 0.937191 0.005472 -vt 0.937191 0.076800 -vt 0.096753 0.969968 -vt 0.030553 0.924364 -vt 0.096753 0.898641 -vt 0.242004 0.696996 -vt 0.311512 0.656665 -vt 0.791381 0.857346 -vt 0.791381 0.928673 -vt 0.725180 0.902951 -vt 0.804789 0.076800 -vt 0.738588 0.031196 -vt 0.804789 0.005472 -vt 0.407585 0.576005 -vt 0.407585 0.656665 -vt 0.338077 0.616335 -vt 0.870991 0.005472 -vt 0.870991 0.076800 -vt 0.804789 0.051078 -vt 0.473786 0.076801 -vt 0.407585 0.031195 -vt 0.473786 0.005473 -vt 0.604464 0.537605 -vt 0.604464 0.618265 -vt 0.534956 0.577935 -vt 0.417871 0.786596 -vt 0.476413 0.746265 -vt 0.539987 0.051078 -vt 0.606188 0.005472 -vt 0.606188 0.076800 -vt 0.604465 0.157460 -vt 0.534956 0.117131 -vt 0.604465 0.076801 -vt 0.476413 0.867255 -vt 0.534954 0.826925 -vt 0.809058 0.853711 -vt 0.750516 0.813383 -vt 0.673974 0.157460 -vt 0.604465 0.117131 -vt 0.673974 0.076801 -vt 0.203793 0.817981 -vt 0.203793 0.889308 -vt 0.137592 0.863587 -vt 0.750516 0.652064 -vt 0.311513 0.656665 -vt 0.242004 0.616335 -vt 0.534956 0.876630 -vt 0.601156 0.850910 -vt 0.601156 0.922237 -vt 0.809058 0.657339 -vt 0.875259 0.611733 -vt 0.875259 0.683061 -vt 0.203793 0.656665 -vt 0.134284 0.616336 -vt 0.203793 0.576005 -vt 0.812990 0.111853 -vt 0.879191 0.086132 -vt 0.879191 0.157460 -vt 0.918058 0.459747 -vt 0.851858 0.414140 -vt 0.918058 0.388419 -vt 0.203793 0.737322 -vt 0.134283 0.696994 -vt 0.910399 0.285461 -vt 0.851858 0.245130 -vt 0.910399 0.204802 -vt 0.809058 0.747332 -vt 0.875259 0.701725 -vt 0.534956 0.658593 -vt 0.604464 0.698924 -vt 0.809058 0.556796 -vt 0.875259 0.531074 -vt 0.875259 0.602401 -vt 0.918058 0.531074 -vt 0.851858 0.485467 -vt 0.107720 0.656665 -vt 0.038211 0.616335 -vt 0.107720 0.576005 -vt 0.539987 0.005472 -vt 0.539987 0.076801 -vt 0.473786 0.051079 -vt 0.941459 0.987033 -vt 0.875259 0.941428 -vt 0.107719 0.656665 -vt 0.107719 0.737324 -vt 0.038211 0.696995 -vt 0.308205 0.960637 -vt 0.242005 0.934915 -vt 0.725180 0.974278 -vt 0.791380 0.928673 -vt 0.791380 0.999999 -vt 0.134285 0.777651 -vt 0.875259 0.727447 -vt 0.941459 0.701725 -vt 0.941459 0.773053 -vt 1.000000 0.692395 -vt 1.000000 0.773052 -vt 0.941459 0.732724 -vt 0.107719 0.817982 -vt 0.038211 0.777653 -vt 0.601156 0.993563 -vt 0.534956 0.967842 -vt 0.992342 0.531074 -vt 0.992342 0.611733 -vt 0.933801 0.571404 -vt 0.743482 0.117131 -vt 0.812990 0.076801 -vt 0.812990 0.157460 -vt 0.137593 0.915030 -vt 0.203793 0.960635 -vt 0.809058 0.961312 -vt 0.875259 0.987034 -vt 0.338077 0.696995 -vt 0.038211 0.858311 -vt 0.096753 0.817982 -vt 0.209444 0.883844 -vt 0.236729 0.880025 -vt 0.308205 0.821802 -vt 0.335490 0.817983 -vt 0.335490 0.851082 -vt 0.807809 0.161279 -vt 0.835094 0.157460 -vt 0.835094 0.190559 -vt 0.753238 0.161279 -vt 0.780524 0.157460 -vt 0.780524 0.190559 -vt 0.698668 0.161279 -vt 0.725953 0.157460 -vt 0.725953 0.190559 -vt 0.644097 0.161279 -vt 0.671382 0.157460 -vt 0.671382 0.190559 -vt 0.616812 0.161279 -vt 0.644097 0.157460 -vt 0.644097 0.190559 -vt 0.534956 0.161279 -vt 0.562241 0.157460 -vt 0.562241 0.190559 -vt 0.616812 0.157460 -vt 0.616812 0.190559 -vt 0.589526 0.186740 -vt 0.589526 0.161279 -vt 0.889665 0.190559 -vt 0.862379 0.186740 -vt 0.807809 0.157460 -vt 0.807809 0.190559 -vt 0.780524 0.186740 -vt 0.862379 0.157460 -vt 0.862379 0.190559 -vt 0.835094 0.186740 -vt 0.308205 0.880362 -vt 0.308205 0.854901 -vt 0.753238 0.157460 -vt 0.753238 0.190559 -vt 0.725953 0.186740 -vt 0.698668 0.157460 -vt 0.698668 0.190559 -vt 0.671382 0.186740 -vt 0.851858 0.204802 -vt 0.851858 0.245586 -vt 0.775851 0.490290 -vt 0.801187 0.531074 -vt 0.775851 0.245586 -vt 0.229128 0.450388 -vt 0.203793 0.409604 -vt 0.674509 0.245586 -vt 0.674509 0.204802 -vt 0.826522 0.490290 -vt 0.725180 0.245586 -vt 0.699845 0.204802 -vt 0.750516 0.571858 -vt 0.699845 0.571858 -vt 0.623838 0.204802 -vt 0.623838 0.245586 -vt 0.649173 0.204802 -vt 0.038211 0.450388 -vt 0.012876 0.409604 -vt 0.725180 0.490290 -vt 0.573167 0.204802 -vt 0.125889 0.914081 -vt 0.100553 0.914081 -vt 0.096753 0.866031 -vt 0.637401 0.825903 -vt 0.604464 0.825903 -vt 0.608265 0.777853 -vt 0.637401 0.585655 -vt 0.604464 0.585655 -vt 0.608265 0.537605 -vt 0.637401 0.633704 -vt 0.604464 0.633704 -vt 0.608265 0.585655 -vt 0.604464 0.729803 -vt 0.608265 0.681754 -vt 0.633600 0.681754 -vt 0.604464 0.681754 -vt 0.608265 0.633704 -vt 0.633600 0.633704 -vt 0.005275 0.783925 -vt 0.009075 0.735876 -vt 0.034411 0.735876 -vt 0.465448 0.665606 -vt 0.461647 0.713656 -vt 0.436312 0.713656 -vt 0.637401 0.729803 -vt 0.633600 0.777853 -vt 0.005275 0.831975 -vt 0.009075 0.783925 -vt 0.034411 0.783925 -vt 0.678309 0.857346 -vt 0.703645 0.857346 -vt 0.203793 0.831975 -vt 0.207593 0.783925 -vt 0.232928 0.783925 -vt 0.203793 0.783925 -vt 0.207593 0.735876 -vt 0.232928 0.735876 -vt 0.038211 0.880025 -vt 0.009075 0.831975 -vt 0.129689 0.866031 -vt 0.100553 0.817982 -vt 0.236729 0.831975 -vt 0.232929 0.880025 -vt 0.954445 0.882608 -vt 0.954445 0.877479 -vt 0.236729 0.946223 -vt 0.222430 0.946223 -vt 0.954446 0.773052 -vt 0.116702 0.914081 -vt 0.005275 0.946223 -vt 0.018261 0.913124 -vt 0.322504 0.917281 -vt 0.137470 0.576005 -vt 0.104534 0.576005 -vt 0.050815 0.539934 -vt 0.074105 0.563339 -vt 0.038211 0.509354 -vt 0.038211 0.476255 -vt 0.050815 0.445675 -vt 0.104534 0.409604 -vt 0.137470 0.409604 -vt 0.167899 0.422270 -vt 0.203793 0.476255 -vt 0.203793 0.509354 -vt 0.191188 0.539934 -vt 0.322503 0.884181 -vt 0.712194 0.964282 -vt 0.420189 0.335132 -vt 0.407585 0.304552 -vt 0.407585 0.271453 -vt 0.506844 0.371203 -vt 0.506844 0.204802 -vt 0.420189 0.240873 -vt 0.473908 0.204802 -vt 0.537273 0.217468 -vt 0.560563 0.240873 -vt 0.958377 0.119232 -vt 0.537273 0.358537 -vt 0.473908 0.371203 -vt 0.443479 0.358537 -vt 0.443479 0.217468 -vt 0.687496 0.938495 -vt 0.337486 0.812793 -vt 0.109739 0.947180 -vt 0.941459 0.811280 -vt 0.958377 0.157460 -vt 0.407585 0.739443 -vt 0.341263 0.576005 -vt 0.308326 0.576005 -vt 0.277897 0.563339 -vt 0.254608 0.539934 -vt 0.242004 0.476255 -vt 0.277897 0.422270 -vt 0.242004 0.509354 -vt 0.254608 0.445675 -vt 0.308326 0.409604 -vt 0.341263 0.409604 -vt 0.371692 0.422270 -vt 0.394981 0.445675 -vt 0.407585 0.476255 -vt 0.133693 0.812793 -vt 0.420189 0.407275 -vt 0.443479 0.383870 -vt 0.420189 0.501534 -vt 0.573167 0.470954 -vt 0.560563 0.501534 -vt 0.537273 0.524938 -vt 0.506844 0.537605 -vt 0.473908 0.537605 -vt 0.443479 0.524938 -vt 0.407585 0.470954 -vt 0.407585 0.437854 -vt 0.458603 0.665606 -vt 0.483938 0.665606 -vt 0.507345 0.655863 -vt 0.507345 0.547348 -vt 0.417281 0.637859 -vt 0.407585 0.614336 -vt 0.407585 0.588875 -vt 0.435196 0.547348 -vt 0.458603 0.537605 -vt 0.525260 0.565352 -vt 0.534956 0.588875 -vt 0.534956 0.614336 -vt 0.525260 0.637859 -vt 0.458603 0.076801 -vt 0.483938 0.076801 -vt 0.507345 0.086544 -vt 0.435196 0.086544 -vt 0.525260 0.104548 -vt 0.534956 0.153532 -vt 0.507345 0.195058 -vt 0.458603 0.204802 -vt 0.435196 0.195058 -vt 0.417281 0.177055 -vt 0.407585 0.128071 -vt 0.417281 0.104548 -vt 0.337486 0.738956 -vt 0.525260 0.177055 -vt 0.015513 0.044395 -vt 0.044177 0.015590 -vt 0.122165 0.000000 -vt 0.159616 0.015590 -vt 0.081628 0.000000 -vt 0.203793 0.082032 -vt 0.203793 0.122770 -vt 0.188280 0.160406 -vt 0.159616 0.189212 -vt 0.122165 0.204802 -vt 0.044177 0.189212 -vt 0.015513 0.160406 -vt 0.000000 0.122770 -vt 0.325957 0.409604 -vt 0.285421 0.409604 -vt 0.247969 0.394014 -vt 0.203793 0.327572 -vt 0.203793 0.286834 -vt 0.219305 0.249197 -vt 0.247969 0.220392 -vt 0.285420 0.204802 -vt 0.363408 0.220391 -vt 0.407585 0.327572 -vt 0.392072 0.365208 -vt 0.407585 0.286834 -vt 0.712831 0.856975 -vt 0.134284 0.616743 -vt 0.247969 0.189212 -vt 0.219305 0.160406 -vt 0.247969 0.015590 -vt 0.325957 0.000000 -vt 0.219305 0.044395 -vt 0.285421 0.000000 -vt 0.363409 0.015590 -vt 0.392072 0.044395 -vt 0.407585 0.082032 -vt 0.407585 0.122770 -vt 0.159616 0.394014 -vt 0.122165 0.409604 -vt 0.044177 0.394014 -vt 0.015513 0.365208 -vt 0.000000 0.327572 -vt 0.000000 0.286834 -vt 0.015513 0.249197 -vt 0.159616 0.220391 -vt 0.188280 0.365208 -vt 0.308205 0.847263 -vt 0.209444 0.909305 -vt 0.807809 0.186740 -vt 0.753238 0.186740 -vt 0.698668 0.186740 -vt 0.644097 0.186740 -vt 0.616812 0.186740 -vt 0.534956 0.186740 -vt 0.862379 0.161279 -vt 0.780524 0.161279 -vt 0.835094 0.161279 -vt 0.725953 0.161279 -vt 0.671382 0.161279 -vt 0.229128 0.409604 -vt 0.598502 0.204802 -vt 0.038211 0.409604 -vt 0.633600 0.537605 -vt 0.633600 0.585654 -vt 0.637401 0.681754 -vt 0.038211 0.783925 -vt 0.432511 0.665606 -vt 0.038211 0.831975 -vt 0.236729 0.783925 -vt 0.034411 0.831975 -vt 0.125889 0.817982 -vt 0.207593 0.880025 -vn 0.000000 -0.195090 -0.980785 -vn 0.000000 -0.555571 -0.831469 -vn 0.000001 -0.831470 -0.555570 -vn 0.000001 -0.980785 -0.195090 -vn 0.000001 -0.980785 0.195090 -vn 0.000001 -0.831470 0.555570 -vn 0.000001 -0.555571 0.831469 -vn 0.000000 -0.195090 0.980785 -vn -0.000000 0.195090 0.980785 -vn -0.000000 0.555569 0.831470 -vn -0.000001 0.831469 0.555571 -vn -0.000002 0.980785 0.195090 -vn -0.000001 0.980785 -0.195092 -vn -0.000001 0.831470 -0.555570 -vn 1.000000 0.000001 0.000000 -vn 0.000000 0.195090 -0.980785 -vn -0.000001 0.555570 -0.831470 -vn -1.000000 -0.000001 -0.000000 -vn 0.000001 -0.555570 -0.831469 -vn 0.000000 -0.555571 0.831469 -vn 0.000000 0.555570 0.831470 -vn -0.000001 0.980786 0.195088 -vn -0.000001 0.980785 -0.195091 -vn 1.000000 0.000004 0.000000 -vn -0.000001 0.555571 -0.831469 -vn 0.000000 -0.195091 -0.980785 -vn 0.000001 -0.555570 -0.831470 -vn 0.000001 -0.555570 0.831470 -vn 0.000000 -0.195091 0.980785 -vn -0.000001 0.555570 0.831470 -vn -0.000001 0.831469 0.555570 -vn -0.000001 0.980785 0.195091 -vn -0.000000 0.555570 -0.831470 -vn -0.000000 -0.555570 -0.831470 -vn 0.000000 -0.555570 0.831470 -vn 0.000000 0.831470 0.555570 -vn 0.000000 0.980785 0.195090 -vn 0.000000 0.980785 -0.195090 -vn 0.000000 0.831470 -0.555570 -vn -0.000001 0.555569 -0.831470 -vn -0.000001 0.831470 0.555570 -vn 0.000000 0.980785 -0.195091 -vn 1.000000 -0.000001 0.000000 -vn 0.102381 -0.943524 0.315090 -vn 0.700224 -0.661699 0.268032 -vn -0.268034 -0.943523 0.194736 -vn -0.268034 -0.943523 -0.194736 -vn 0.102381 -0.943524 -0.315090 -vn 0.904989 -0.330385 0.268032 -vn 0.024747 -0.330386 0.943521 -vn -0.889697 -0.330385 0.315095 -vn -0.574602 -0.330388 -0.748783 -vn 0.534576 -0.330387 -0.777865 -vn 0.802609 -0.125627 0.583126 -vn -0.306569 -0.125629 0.943522 -vn -0.992077 -0.125628 0.000000 -vn -0.306569 -0.125629 -0.943522 -vn 0.802609 -0.125627 -0.583126 -vn 0.408946 0.661699 0.628425 -vn -0.471300 0.661699 0.583122 -vn -0.700224 0.661699 -0.268032 -vn 0.038530 0.661699 -0.748779 -vn 0.724042 0.661695 -0.194736 -vn -0.038531 -0.661699 0.748779 -vn 0.187594 -0.794658 0.577345 -vn 0.471300 -0.661699 0.583122 -vn 0.700224 -0.661699 -0.268032 -vn 0.607060 -0.794656 0.000000 -vn 0.331305 -0.943524 0.000000 -vn -0.724042 -0.661695 0.194736 -vn -0.491120 -0.794657 0.356821 -vn -0.408946 -0.661698 0.628425 -vn -0.408946 -0.661698 -0.628425 -vn -0.491120 -0.794657 -0.356821 -vn -0.724042 -0.661695 -0.194736 -vn 0.471300 -0.661699 -0.583122 -vn 0.187594 -0.794658 -0.577345 -vn -0.038531 -0.661699 -0.748779 -vn 0.992077 0.125628 0.000000 -vn 0.982246 -0.187598 0.000000 -vn 0.904989 -0.330385 -0.268032 -vn 0.306569 0.125629 0.943522 -vn 0.303531 -0.187597 0.934171 -vn 0.534576 -0.330387 0.777865 -vn -0.802609 0.125627 0.583126 -vn -0.794656 -0.187595 0.577348 -vn -0.574602 -0.330388 0.748783 -vn -0.802609 0.125627 -0.583126 -vn -0.794656 -0.187595 -0.577348 -vn -0.889697 -0.330385 -0.315095 -vn 0.306569 0.125629 -0.943522 -vn 0.303531 -0.187597 -0.934171 -vn 0.024747 -0.330386 -0.943521 -vn 0.574602 0.330388 0.748784 -vn 0.794656 0.187595 0.577348 -vn 0.889697 0.330385 0.315094 -vn -0.534576 0.330386 0.777865 -vn -0.303531 0.187597 0.934171 -vn -0.024747 0.330386 0.943521 -vn -0.904989 0.330385 -0.268032 -vn -0.982246 0.187598 0.000000 -vn -0.904989 0.330385 0.268032 -vn -0.024747 0.330386 -0.943521 -vn -0.303531 0.187597 -0.934171 -vn -0.534576 0.330386 -0.777865 -vn 0.889697 0.330385 -0.315094 -vn 0.794656 0.187595 -0.577348 -vn 0.574602 0.330388 -0.748784 -vn 0.268034 0.943523 0.194737 -vn 0.491119 0.794657 0.356822 -vn 0.724042 0.661695 0.194736 -vn -0.102381 0.943523 0.315090 -vn -0.187594 0.794657 0.577346 -vn 0.038531 0.661699 0.748779 -vn -0.331305 0.943524 0.000000 -vn -0.607061 0.794655 0.000000 -vn -0.700224 0.661699 0.268032 -vn -0.102381 0.943523 -0.315090 -vn -0.187594 0.794658 -0.577345 -vn -0.471300 0.661699 -0.583122 -vn 0.268034 0.943523 -0.194737 -vn 0.491119 0.794657 -0.356822 -vn 0.408946 0.661699 -0.628425 -vn 0.700212 0.700217 0.139282 -vn 0.700212 0.593615 0.396641 -vn 0.700213 0.396641 0.593614 -vn 0.700214 0.139282 0.700215 -vn 0.700215 -0.139280 0.700214 -vn 0.700217 -0.396638 0.593612 -vn 0.700217 -0.593610 0.396639 -vn 0.700218 -0.700212 0.139281 -vn 0.700218 -0.700211 -0.139281 -vn 0.700217 -0.593610 -0.396639 -vn 0.700211 0.700217 -0.139282 -vn 0.700212 0.593615 -0.396641 -vn 0.700213 0.396641 -0.593614 -vn 0.700214 0.139282 -0.700215 -vn 0.700215 -0.139280 -0.700214 -vn 0.700217 -0.396638 -0.593612 -vn 0.000001 -0.555571 -0.831469 -vn 0.000001 -0.980785 -0.195091 -vn -0.000000 0.555571 0.831469 -vn -0.399591 0.178838 -0.899080 -vn -0.399592 0.509287 -0.762203 -vn -0.399593 0.762202 -0.509287 -vn -0.399593 0.899079 -0.178838 -vn -0.399593 0.899079 0.178839 -vn -0.399592 0.762202 0.509288 -vn -0.399592 0.509287 0.762203 -vn -0.399591 0.178838 0.899080 -vn -0.399590 -0.178838 0.899080 -vn -0.399590 -0.509288 0.762203 -vn -0.399589 -0.762204 0.509288 -vn -0.399589 -0.899080 0.178838 -vn -0.399589 -0.899080 -0.178838 -vn -0.399589 -0.762203 -0.509288 -vn -0.399590 -0.509288 -0.762203 -vn -0.399591 -0.178838 -0.899080 -vn 0.000001 -0.195090 -0.980785 -vn 0.000001 -0.831469 0.555571 -vn 0.000001 -0.195090 0.980785 -vn -0.000001 0.195090 0.980785 -vn -0.000002 0.831470 0.555570 -vn -0.000002 0.980785 0.195089 -vn -0.000002 0.980785 -0.195089 -vn 1.000000 0.000002 0.000000 -vn -1.000000 -0.000002 0.000000 -vn -1.000000 -0.000000 0.000000 -vn -0.000001 0.555569 0.831470 -vn 0.000000 0.831469 0.555571 -vn -0.000001 0.980785 0.195092 -vn 1.000000 0.000000 0.000000 -vn -1.000000 -0.000001 0.000001 -vn -1.000000 -0.000002 -0.000001 -vn 0.000001 -0.980785 0.195091 -vn -0.000001 0.831471 0.555569 -vn 1.000000 0.000001 0.000001 -vn 1.000000 0.000001 -0.000002 -vn 1.000000 0.000006 -0.000001 -vn 1.000000 0.000002 0.000001 -vn -1.000000 0.000000 -0.000001 -vn -1.000000 0.000002 0.000003 -vn -1.000000 -0.000001 0.000002 -vn -1.000000 -0.000001 -0.000001 -vn -1.000000 0.000002 0.000001 -vn 0.000000 -0.831470 -0.555570 -vn 0.000000 -0.831469 0.555570 -vn -0.000001 0.555570 0.831469 -vn 0.000000 0.831469 0.555570 -vn 0.000000 0.980785 0.195091 -vn 0.000000 0.555570 -0.831469 -vn -1.000000 -0.000004 0.000000 -vn -1.000000 -0.000003 -0.000000 -vn -0.000001 0.980785 0.195090 -vn -0.000001 0.980785 -0.195090 -vn 0.000000 0.555571 -0.831469 -vn -1.000000 0.000000 0.000001 -vn -1.000000 0.000001 0.000000 -vn 0.700211 0.593616 0.396641 -vn 0.700212 0.700217 0.139281 -vn 0.700212 0.396641 0.593615 -vn 0.700216 -0.139281 0.700213 -vn 0.700216 -0.396638 0.593612 -vn 0.700217 -0.593611 0.396639 -vn 0.700217 -0.700212 0.139281 -vn 0.700217 -0.593611 -0.396639 -vn 0.700212 0.700217 -0.139282 -vn 0.700211 0.593616 -0.396641 -vn 0.700215 -0.139281 -0.700214 -vn 0.700216 -0.396638 -0.593612 -vn 0.000001 -0.831469 -0.555571 -vn -0.000001 0.831469 -0.555571 -vn -0.399592 0.178837 -0.899079 -vn -0.399592 0.762202 -0.509288 -vn -0.399592 0.899079 -0.178839 -vn -0.399593 0.899079 0.178838 -vn -0.399593 0.762202 0.509287 -vn -0.399591 0.178837 0.899080 -vn -0.399591 -0.178838 0.899080 -vn -0.399589 -0.762203 0.509288 -vn -0.399589 -0.899081 0.178838 -vn -0.399589 -0.899081 -0.178838 -vn -0.399589 -0.762204 -0.509288 -vn -0.399590 -0.178838 -0.899080 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/4/2 6/5/2 5/6/2 -f 6/7/3 8/8/3 7/9/3 -f 8/10/4 10/11/4 9/12/4 -f 10/13/5 12/14/5 11/15/5 -f 12/16/6 14/17/6 13/18/6 -f 13/19/7 14/20/7 16/21/7 -f 15/22/8 16/23/8 18/24/8 -f 18/25/9 20/26/9 19/27/9 -f 20/28/10 22/29/10 21/30/10 -f 21/31/11 22/32/11 24/33/11 -f 23/34/12 24/35/12 26/36/12 -f 26/34/13 28/37/13 27/38/13 -f 28/39/14 30/40/14 29/41/14 -f 22/42/15 14/43/15 6/44/15 -f 31/45/16 32/46/16 2/47/16 -f 30/48/17 32/39/17 31/49/17 -f 19/50/18 21/51/18 17/52/18 -f 34/53/1 36/54/1 35/55/1 -f 36/56/19 38/57/19 37/58/19 -f 38/59/3 40/60/3 39/61/3 -f 40/62/4 42/63/4 41/64/4 -f 41/65/5 42/66/5 44/67/5 -f 44/14/6 46/13/6 45/68/6 -f 46/69/20 48/70/20 47/71/20 -f 48/72/8 50/73/8 49/5/8 -f 50/74/9 52/75/9 51/76/9 -f 52/77/21 54/78/21 53/79/21 -f 54/80/11 56/81/11 55/82/11 -f 55/83/22 56/84/22 58/85/22 -f 58/45/23 60/86/23 59/87/23 -f 60/88/14 62/89/14 61/90/14 -f 42/91/24 40/92/24 38/93/24 -f 64/94/16 34/95/16 33/96/16 -f 62/65/25 64/97/25 63/98/25 -f 45/99/18 47/100/18 49/101/18 -f 66/102/26 68/103/26 204/104/26 -f 68/105/27 70/106/27 205/107/27 -f 70/108/3 72/109/3 206/110/3 -f 72/111/4 74/112/4 207/113/4 -f 207/114/5 74/115/5 76/116/5 -f 208/107/6 76/106/6 78/117/6 -f 78/118/28 80/115/28 210/114/28 -f 80/119/29 82/120/29 211/121/29 -f 82/122/9 84/123/9 212/124/9 -f 84/125/30 86/126/30 213/127/30 -f 86/116/31 88/128/31 214/129/31 -f 214/129/32 88/128/32 90/125/32 -f 90/130/23 92/131/23 216/132/23 -f 92/133/14 94/134/14 217/135/14 -f 88/136/15 82/137/15 96/138/15 -f 96/123/16 66/139/16 203/140/16 -f 94/126/33 96/141/33 218/142/33 -f 79/143/18 87/144/18 71/145/18 -f 98/146/1 100/147/1 99/148/1 -f 100/149/34 102/150/34 101/151/34 -f 102/150/3 104/152/3 103/153/3 -f 104/154/4 106/147/4 105/155/4 -f 106/156/5 108/148/5 107/147/5 -f 108/157/6 110/97/6 109/67/6 -f 109/158/35 110/159/35 112/84/35 -f 112/157/8 114/160/8 113/161/8 -f 114/162/9 116/163/9 115/164/9 -f 116/165/21 118/166/21 117/160/21 -f 118/167/36 120/168/36 119/169/36 -f 120/170/37 122/160/37 121/166/37 -f 121/171/38 122/172/38 124/173/38 -f 123/174/39 124/175/39 126/176/39 -f 122/177/15 110/178/15 102/179/15 -f 127/64/16 128/63/16 98/146/16 -f 125/170/40 126/176/40 128/161/40 -f 119/180/18 127/181/18 103/182/18 -f 130/183/1 132/174/1 131/184/1 -f 132/185/34 134/154/34 133/186/34 -f 134/152/3 136/187/3 135/188/3 -f 136/189/4 138/162/4 137/190/4 -f 137/146/5 138/191/5 140/155/5 -f 140/192/6 142/98/6 141/97/6 -f 142/174/28 144/170/28 143/193/28 -f 143/194/8 144/195/8 146/196/8 -f 145/197/9 146/120/9 148/87/9 -f 148/198/21 150/199/21 149/187/21 -f 150/200/41 152/201/41 151/202/41 -f 151/164/32 152/163/32 154/169/32 -f 154/203/42 156/204/42 155/205/42 -f 155/206/39 156/207/39 158/208/39 -f 140/209/43 138/210/43 136/211/43 -f 159/9/16 160/8/16 130/212/16 -f 157/191/40 158/146/40 160/61/40 -f 131/213/18 143/214/18 151/215/18 -f 161/216/44 174/217/44 173/218/44 -f 162/219/45 174/220/45 176/221/45 -f 161/222/46 173/223/46 178/224/46 -f 161/225/47 178/226/47 180/227/47 -f 161/228/48 180/229/48 177/230/48 -f 162/231/49 176/232/49 183/233/49 -f 163/234/50 175/235/50 185/236/50 -f 164/237/51 179/238/51 187/235/51 -f 165/239/52 181/240/52 189/241/52 -f 166/242/53 182/243/53 191/244/53 -f 162/245/54 183/246/54 186/247/54 -f 163/248/55 185/249/55 188/250/55 -f 164/251/56 187/252/56 190/253/56 -f 165/254/57 189/255/57 192/256/57 -f 166/257/58 191/258/58 184/259/58 -f 167/260/59 193/261/59 198/262/59 -f 168/263/60 194/264/60 200/265/60 -f 169/266/61 195/267/61 201/268/61 -f 170/123/62 196/269/62 202/270/62 -f 171/24/63 197/5/63 199/271/63 -f 173/272/64 175/5/64 163/2/64 -f 173/273/65 174/274/65 175/275/65 -f 174/54/66 162/77/66 175/276/66 -f 176/277/67 177/223/67 166/278/67 -f 176/279/68 174/280/68 177/281/68 -f 174/282/69 161/269/69 177/283/69 -f 178/284/70 179/285/70 164/261/70 -f 178/286/71 173/287/71 179/288/71 -f 173/289/72 163/290/72 179/291/72 -f 180/292/73 181/293/73 165/294/73 -f 180/240/74 178/295/74 181/296/74 -f 178/294/75 164/297/75 181/298/75 -f 177/265/76 182/299/76 166/300/76 -f 177/301/77 180/302/77 182/303/77 -f 180/304/78 165/305/78 182/306/78 -f 183/307/79 184/308/79 171/309/79 -f 183/310/80 176/311/80 184/279/80 -f 176/312/81 166/313/81 184/314/81 -f 185/315/82 186/316/82 167/317/82 -f 185/318/83 175/319/83 186/320/83 -f 175/321/84 162/322/84 186/323/84 -f 187/324/85 188/325/85 168/326/85 -f 187/327/86 179/328/86 188/329/86 -f 179/293/87 163/330/87 188/331/87 -f 189/332/88 190/333/88 169/334/88 -f 189/335/89 181/336/89 190/337/89 -f 181/267/90 164/338/90 190/339/90 -f 191/259/91 192/340/91 170/341/91 -f 191/342/92 182/343/92 192/344/92 -f 182/345/93 165/346/93 192/347/93 -f 186/247/94 193/258/94 167/348/94 -f 186/349/95 183/350/95 193/204/95 -f 183/351/96 171/352/96 193/353/96 -f 188/354/97 194/355/97 168/356/97 -f 188/357/98 185/358/98 194/359/98 -f 185/360/99 167/361/99 194/362/99 -f 190/363/100 195/364/100 169/365/100 -f 190/357/101 187/366/101 195/367/101 -f 187/368/102 168/369/102 195/370/102 -f 192/371/103 196/372/103 170/234/103 -f 192/373/104 189/328/104 196/374/104 -f 189/375/105 169/376/105 196/377/105 -f 184/378/106 197/379/106 171/363/106 -f 184/380/107 191/381/107 197/382/107 -f 191/383/108 170/384/108 197/385/108 -f 198/386/109 199/387/109 172/2/109 -f 198/388/110 193/389/110 199/390/110 -f 193/290/111 171/391/111 199/392/111 -f 200/393/112 198/394/112 172/395/112 -f 200/366/113 194/345/113 198/396/113 -f 194/397/114 167/398/114 198/399/114 -f 201/400/115 200/401/115 172/402/115 -f 201/403/116 195/404/116 200/389/116 -f 195/353/117 168/405/117 200/406/117 -f 202/407/118 201/408/118 172/409/118 -f 202/410/119 196/411/119 201/412/119 -f 196/413/120 169/346/120 201/414/120 -f 199/415/121 202/237/121 172/416/121 -f 199/302/122 197/417/122 202/319/122 -f 197/309/123 170/418/123 202/419/123 -f 90/420/124 58/421/124 56/12/124 -f 88/422/125 56/423/125 54/424/125 -f 86/425/126 54/426/126 52/427/126 -f 84/428/127 52/429/127 50/430/127 -f 82/431/128 50/432/128 48/433/128 -f 80/434/129 48/435/129 46/436/129 -f 78/437/130 46/438/130 44/439/130 -f 76/440/131 44/441/131 42/442/131 -f 42/443/132 40/444/132 72/445/132 -f 40/442/133 38/441/133 70/446/133 -f 60/196/134 58/447/134 90/448/134 -f 62/449/135 60/450/135 92/451/135 -f 64/452/136 62/453/136 94/454/136 -f 96/455/137 66/456/137 34/424/137 -f 36/457/138 34/458/138 66/459/138 -f 38/460/139 36/461/139 68/462/139 -f 65/463/1 203/464/1 204/104/1 -f 204/465/140 205/107/140 69/466/140 -f 69/105/3 205/467/3 206/110/3 -f 206/468/141 207/113/141 73/469/141 -f 207/114/5 208/470/5 75/471/5 -f 208/107/6 209/472/6 77/103/6 -f 209/473/20 210/114/20 79/474/20 -f 210/475/8 211/121/8 81/118/8 -f 211/476/9 212/124/9 83/116/9 -f 83/477/142 212/478/142 213/127/142 -f 213/470/41 214/129/41 87/479/41 -f 87/479/32 214/129/32 215/478/32 -f 215/480/23 216/132/23 91/481/23 -f 91/118/14 216/482/14 217/135/14 -f 218/124/16 203/140/16 65/128/16 -f 217/127/17 218/142/17 95/483/17 -f 203/484/143 218/485/143 31/486/143 -f 29/487/144 31/488/144 218/489/144 -f 27/490/145 29/491/145 217/492/145 -f 25/493/146 27/494/146 216/495/146 -f 25/496/147 215/497/147 214/498/147 -f 23/499/148 214/500/148 213/501/148 -f 21/502/149 213/503/149 212/504/149 -f 19/505/150 212/506/150 211/507/150 -f 17/508/151 211/509/151 210/489/151 -f 15/510/152 210/511/152 209/512/152 -f 13/57/153 209/513/153 208/514/153 -f 11/515/154 208/516/154 207/517/154 -f 9/518/155 207/519/155 206/520/155 -f 5/521/156 7/37/156 206/522/156 -f 3/523/157 5/486/157 205/524/157 -f 1/515/158 3/525/158 204/526/158 -f 3/527/159 1/1/159 4/3/159 -f 3/528/27 4/4/27 5/6/27 -f 5/94/3 6/7/3 7/9/3 -f 7/529/4 8/10/4 9/12/4 -f 9/90/5 10/13/5 11/15/5 -f 11/530/160 12/16/160 13/18/160 -f 15/33/28 13/19/28 16/21/28 -f 17/531/161 15/22/161 18/24/161 -f 17/74/162 18/25/162 19/27/162 -f 19/532/30 20/28/30 21/30/30 -f 23/21/163 21/31/163 24/33/163 -f 25/533/164 23/34/164 26/36/164 -f 25/534/165 26/34/165 27/38/165 -f 27/535/14 28/39/14 29/41/14 -f 6/44/15 4/536/15 2/537/15 -f 30/538/15 6/44/15 32/539/15 -f 30/538/166 28/540/166 26/541/166 -f 26/541/24 24/542/24 22/42/24 -f 22/42/15 20/543/15 18/544/15 -f 18/544/15 16/545/15 14/43/15 -f 14/43/166 12/546/166 10/547/166 -f 6/44/15 14/43/15 8/548/15 -f 29/549/40 30/48/40 31/49/40 -f 22/42/15 6/44/15 26/541/15 -f 22/42/15 18/544/15 14/43/15 -f 6/44/15 2/537/15 32/539/15 -f 14/43/15 10/547/15 8/548/15 -f 1/550/16 31/45/16 2/47/16 -f 6/44/15 30/538/15 26/541/15 -f 31/551/18 1/552/18 3/553/18 -f 21/51/18 25/554/18 17/52/18 -f 11/555/18 5/556/18 9/557/18 -f 11/555/167 13/558/167 15/559/167 -f 33/560/1 34/53/1 35/55/1 -f 23/561/167 25/554/167 21/51/167 -f 31/551/18 5/556/18 27/562/18 -f 27/562/18 29/563/18 31/551/18 -f 5/556/18 17/52/18 25/554/18 -f 15/559/18 5/556/18 11/555/18 -f 31/551/18 3/553/18 5/556/18 -f 5/556/167 7/564/167 9/557/167 -f 15/559/168 17/52/168 5/556/168 -f 35/565/27 36/56/27 37/58/27 -f 5/556/18 25/554/18 27/562/18 -f 37/62/3 38/59/3 39/61/3 -f 39/566/4 40/62/4 41/64/4 -f 43/97/5 41/65/5 44/67/5 -f 43/82/6 44/14/6 45/68/6 -f 45/567/28 46/69/28 47/71/28 -f 47/568/8 48/72/8 49/5/8 -f 49/25/9 50/74/9 51/76/9 -f 51/569/169 52/77/169 53/79/169 -f 53/68/170 54/80/170 55/82/170 -f 57/570/171 55/83/171 58/85/171 -f 57/46/13 58/45/13 59/87/13 -f 59/15/14 60/88/14 61/90/14 -f 38/93/15 36/571/15 34/572/15 -f 34/572/172 64/573/172 62/574/172 -f 58/575/166 54/576/166 60/577/166 -f 58/575/172 56/578/172 54/576/172 -f 54/576/172 52/579/172 50/580/172 -f 50/580/15 48/581/15 46/582/15 -f 46/582/166 44/583/166 42/91/166 -f 63/7/16 64/94/16 33/96/16 -f 62/574/15 60/577/15 34/572/15 -f 60/577/15 54/576/15 38/93/15 -f 46/582/15 38/93/15 50/580/15 -f 46/582/15 42/91/15 38/93/15 -f 61/584/17 62/65/17 63/98/17 -f 60/577/15 38/93/15 34/572/15 -f 38/93/15 54/576/15 50/580/15 -f 37/585/18 39/586/18 63/587/18 -f 204/465/27 68/105/27 205/107/27 -f 39/586/168 41/562/168 43/554/168 -f 49/101/18 39/586/18 43/554/18 -f 51/588/18 39/586/18 49/101/18 -f 51/588/173 53/589/173 55/590/173 -f 55/590/168 57/591/168 59/592/168 -f 59/592/174 61/593/174 63/587/174 -f 33/594/18 35/595/18 37/585/18 -f 203/464/1 66/102/1 204/104/1 -f 51/588/18 55/590/18 59/592/18 -f 63/587/167 51/588/167 59/592/167 -f 33/594/18 37/585/18 63/587/18 -f 45/99/18 49/101/18 43/554/18 -f 39/586/18 51/588/18 63/587/18 -f 205/467/3 70/108/3 206/110/3 -f 206/468/141 72/111/141 207/113/141 -f 208/470/175 207/114/175 76/116/175 -f 209/472/6 208/107/6 78/117/6 -f 209/473/20 78/118/20 210/114/20 -f 210/475/29 80/119/29 211/121/29 -f 211/476/9 82/122/9 212/124/9 -f 212/478/30 84/125/30 213/127/30 -f 213/470/176 86/116/176 214/129/176 -f 215/478/32 214/129/32 90/125/32 -f 215/480/23 90/130/23 216/132/23 -f 216/482/14 92/133/14 217/135/14 -f 66/596/177 96/138/177 68/597/177 -f 70/598/43 82/137/43 80/599/43 -f 94/600/172 92/601/172 90/602/172 -f 218/124/16 96/123/16 203/140/16 -f 86/603/178 84/604/178 82/137/178 -f 78/605/166 70/598/166 80/599/166 -f 78/605/179 76/606/179 74/607/179 -f 74/607/180 72/608/180 70/598/180 -f 94/600/166 88/136/166 96/138/166 -f 88/136/15 86/603/15 82/137/15 -f 217/127/40 94/126/40 218/142/40 -f 78/605/15 74/607/15 70/598/15 -f 94/600/166 90/602/166 88/136/166 -f 96/138/178 70/598/178 68/597/178 -f 70/598/15 96/138/15 82/137/15 -f 95/609/18 65/610/18 67/611/18 -f 71/145/173 93/612/173 69/613/173 -f 99/189/27 100/149/27 101/151/27 -f 79/143/181 73/614/181 77/615/181 -f 79/143/18 81/616/18 83/617/18 -f 83/617/182 85/618/182 87/144/182 -f 87/144/168 89/619/168 91/620/168 -f 95/609/183 67/611/183 93/612/183 -f 91/620/184 93/612/184 71/145/184 -f 93/612/184 67/611/184 69/613/184 -f 79/143/18 83/617/18 87/144/18 -f 79/143/18 71/145/18 73/614/18 -f 97/621/26 98/146/26 99/148/26 -f 71/145/18 87/144/18 91/620/18 -f 73/614/185 75/622/185 77/615/185 -f 101/151/186 102/150/186 103/153/186 -f 103/186/141 104/154/141 105/155/141 -f 105/154/175 106/156/175 107/147/175 -f 107/165/187 108/157/187 109/67/187 -f 111/83/28 109/158/28 112/84/28 -f 111/192/29 112/157/29 113/161/29 -f 113/190/9 114/162/9 115/164/9 -f 115/157/188 116/165/188 117/160/188 -f 117/115/189 118/167/189 119/169/189 -f 119/193/190 120/170/190 121/166/190 -f 123/208/42 121/171/42 124/173/42 -f 125/170/14 123/174/14 126/176/14 -f 102/179/15 100/623/15 98/624/15 -f 126/625/172 124/626/172 128/627/172 -f 122/177/15 98/624/15 124/626/15 -f 122/177/166 120/628/166 118/629/166 -f 118/629/166 116/630/166 114/631/166 -f 110/178/15 122/177/15 112/632/15 -f 110/178/15 108/633/15 106/634/15 -f 102/179/15 110/178/15 104/635/15 -f 110/178/15 106/634/15 104/635/15 -f 122/177/15 114/631/15 112/632/15 -f 124/626/15 98/624/15 128/627/15 -f 122/177/15 118/629/15 114/631/15 -f 97/621/16 127/64/16 98/146/16 -f 122/177/15 102/179/15 98/624/15 -f 127/160/191 125/170/191 128/161/191 -f 127/181/18 97/636/18 99/637/18 -f 99/637/167 101/638/167 103/182/167 -f 103/182/192 105/639/192 107/640/192 -f 107/640/18 109/641/18 111/642/18 -f 111/642/18 113/643/18 115/211/18 -f 115/211/167 117/644/167 119/180/167 -f 123/645/193 125/646/193 121/647/193 -f 127/181/18 119/180/18 125/646/18 -f 127/181/18 99/637/18 103/182/18 -f 111/642/18 119/180/18 107/640/18 -f 111/642/18 115/211/18 119/180/18 -f 125/646/18 119/180/18 121/647/18 -f 131/203/27 132/185/27 133/186/27 -f 119/180/18 103/182/18 107/640/18 -f 129/382/1 130/183/1 131/184/1 -f 133/153/3 134/152/3 135/188/3 -f 135/149/4 136/189/4 137/190/4 -f 139/147/5 137/146/5 140/155/5 -f 139/157/6 140/192/6 141/97/6 -f 141/184/35 142/174/35 143/193/35 -f 145/81/29 143/194/29 146/196/29 -f 147/86/9 145/197/9 148/87/9 -f 147/648/30 148/198/30 149/187/30 -f 149/649/36 150/200/36 151/202/36 -f 153/168/194 151/164/194 154/169/194 -f 153/185/195 154/203/195 155/205/195 -f 157/173/14 155/206/14 158/208/14 -f 134/643/172 132/650/172 130/651/172 -f 130/651/15 160/629/15 158/628/15 -f 154/652/172 150/653/172 156/654/172 -f 154/652/166 152/655/166 150/653/166 -f 150/653/15 148/656/15 146/657/15 -f 146/657/172 144/658/172 142/659/172 -f 159/60/196 157/191/196 160/61/196 -f 134/643/166 140/209/166 136/211/166 -f 158/628/15 156/654/15 130/651/15 -f 156/654/15 150/653/15 134/643/15 -f 142/659/15 134/643/15 146/657/15 -f 129/340/16 159/9/16 130/212/16 -f 134/643/15 142/659/15 140/209/15 -f 156/654/15 134/643/15 130/651/15 -f 134/643/15 150/653/15 146/657/15 -f 159/660/18 129/661/18 131/213/18 -f 131/213/197 133/662/197 135/663/197 -f 135/663/198 137/664/198 139/665/198 -f 139/665/181 141/666/181 143/214/181 -f 147/632/173 151/215/173 145/178/173 -f 147/632/197 149/667/197 151/215/197 -f 151/215/198 153/640/198 155/639/198 -f 155/639/181 157/668/181 159/660/181 -f 135/663/18 139/665/18 131/213/18 -f 151/215/18 143/214/18 145/178/18 -f 86/669/199 88/422/199 54/424/199 -f 151/215/167 155/639/167 159/660/167 -f 88/670/200 90/420/200 56/12/200 -f 159/660/18 131/213/18 151/215/18 -f 131/213/18 139/665/18 143/214/18 -f 84/671/201 86/425/201 52/427/201 -f 82/672/127 84/428/127 50/430/127 -f 80/673/202 82/431/202 48/433/202 -f 78/674/203 80/434/203 46/436/203 -f 76/675/204 78/437/204 44/439/204 -f 74/676/205 76/440/205 42/442/205 -f 74/446/132 42/443/132 72/445/132 -f 72/445/206 40/442/206 70/446/206 -f 92/677/207 60/196/207 90/448/207 -f 94/678/208 62/449/208 92/451/208 -f 96/679/136 64/452/136 94/454/136 -f 64/48/137 96/455/137 34/424/137 -f 68/680/209 36/457/209 66/459/209 -f 70/681/210 38/460/210 68/462/210 -f 67/117/1 65/463/1 204/104/1 -f 67/108/34 204/465/34 69/466/34 -f 71/134/211 69/105/211 206/110/211 -f 71/682/4 206/468/4 73/469/4 -f 73/474/175 207/114/175 75/471/175 -f 75/466/160 208/107/160 77/103/160 -f 77/133/35 209/473/35 79/474/35 -f 79/109/8 210/475/8 81/118/8 -f 81/115/9 211/476/9 83/116/9 -f 85/683/10 83/477/10 213/127/10 -f 85/471/11 213/470/11 87/479/11 -f 89/477/194 87/479/194 215/478/194 -f 89/684/195 215/480/195 91/481/195 -f 93/109/212 91/118/212 217/135/212 -f 95/116/16 218/124/16 65/128/16 -f 93/683/33 217/127/33 95/483/33 -f 1/523/213 203/484/213 31/486/213 -f 217/509/144 29/487/144 218/489/144 -f 216/685/214 27/490/214 217/492/214 -f 215/686/215 25/493/215 216/495/215 -f 23/508/216 25/496/216 214/498/216 -f 21/687/217 23/499/217 213/501/217 -f 19/688/149 21/502/149 212/504/149 -f 17/689/218 19/505/218 211/507/218 -f 15/496/219 17/508/219 210/489/219 -f 13/690/152 15/510/152 209/512/152 -f 11/27/220 13/57/220 208/514/220 -f 9/525/221 11/515/221 207/517/221 -f 7/691/222 9/518/222 206/520/222 -f 205/692/223 5/521/223 206/522/223 -f 204/693/157 3/523/157 205/524/157 -f 203/694/224 1/515/224 204/526/224 diff --git a/src/main/resources/assets/hbm/models/TheGadget3.obj b/src/main/resources/assets/hbm/models/TheGadget3.obj deleted file mode 100644 index 1b3486829..000000000 --- a/src/main/resources/assets/hbm/models/TheGadget3.obj +++ /dev/null @@ -1,1223 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'TheGadget3.blend1' -# www.blender.org -o Cylinder.003 -v 0.550000 1.500000 -0.850000 -v 0.650000 1.500000 -0.850000 -v 0.550000 1.174719 -0.785298 -v 0.650000 1.174719 -0.785298 -v 0.550001 0.898959 -0.601041 -v 0.650001 0.898959 -0.601041 -v 0.550001 0.714702 -0.325281 -v 0.650001 0.714702 -0.325281 -v 0.550001 0.650000 0.000000 -v 0.650001 0.650000 0.000000 -v 0.550001 0.714702 0.325281 -v 0.650001 0.714702 0.325281 -v 0.550001 0.898959 0.601041 -v 0.650001 0.898959 0.601041 -v 0.550000 1.174719 0.785298 -v 0.650000 1.174719 0.785298 -v 0.550000 1.500000 0.850000 -v 0.650000 1.500000 0.850000 -v 0.550000 1.825281 0.785298 -v 0.650000 1.825281 0.785298 -v 0.549999 2.101041 0.601041 -v 0.649999 2.101041 0.601041 -v 0.549999 2.285297 0.325281 -v 0.649999 2.285298 0.325281 -v 0.549999 2.350000 -0.000000 -v 0.649999 2.350000 -0.000000 -v 0.549999 2.285297 -0.325281 -v 0.649999 2.285298 -0.325281 -v 0.549999 2.101040 -0.601041 -v 0.649999 2.101041 -0.601041 -v 0.550000 1.825280 -0.785298 -v 0.650000 1.825281 -0.785298 -v -0.650000 1.500000 -0.850000 -v -0.550000 1.500000 -0.850000 -v -0.650000 1.174719 -0.785298 -v -0.550000 1.174719 -0.785298 -v -0.649999 0.898959 -0.601041 -v -0.549999 0.898959 -0.601041 -v -0.649999 0.714702 -0.325281 -v -0.549999 0.714702 -0.325281 -v -0.649999 0.650000 0.000000 -v -0.549999 0.650000 0.000000 -v -0.649999 0.714702 0.325281 -v -0.549999 0.714702 0.325281 -v -0.649999 0.898959 0.601041 -v -0.549999 0.898959 0.601041 -v -0.650000 1.174719 0.785298 -v -0.550000 1.174719 0.785298 -v -0.650000 1.500000 0.850000 -v -0.550000 1.500000 0.850000 -v -0.650000 1.825281 0.785298 -v -0.550000 1.825281 0.785298 -v -0.650001 2.101041 0.601041 -v -0.550001 2.101041 0.601041 -v -0.650001 2.285297 0.325281 -v -0.550001 2.285298 0.325281 -v -0.650001 2.350000 -0.000000 -v -0.550001 2.350000 -0.000000 -v -0.650001 2.285297 -0.325281 -v -0.550001 2.285298 -0.325281 -v -0.650001 2.101040 -0.601041 -v -0.550001 2.101041 -0.601041 -v -0.650000 1.825280 -0.785298 -v -0.550000 1.825281 -0.785298 -v -1.500000 1.499999 -0.700000 -v 1.000000 1.500001 -0.700000 -v -1.500000 1.232120 -0.646716 -v 1.000000 1.232123 -0.646716 -v -1.500000 1.005024 -0.494975 -v 1.000000 1.005026 -0.494975 -v -1.499999 0.853283 -0.267878 -v 1.000000 0.853285 -0.267878 -v -1.499999 0.799999 0.000000 -v 1.000000 0.800001 0.000000 -v -1.499999 0.853283 0.267878 -v 1.000000 0.853285 0.267878 -v -1.500000 1.005024 0.494975 -v 1.000000 1.005026 0.494975 -v -1.500000 1.232120 0.646716 -v 1.000000 1.232123 0.646716 -v -1.500000 1.499999 0.700000 -v 1.000000 1.500001 0.700000 -v -1.500000 1.767877 0.646716 -v 1.000000 1.767879 0.646716 -v -1.500000 1.994973 0.494975 -v 0.999999 1.994976 0.494975 -v -1.500001 2.146714 0.267879 -v 0.999999 2.146717 0.267879 -v -1.500001 2.199999 -0.000000 -v 0.999999 2.200001 -0.000000 -v -1.500001 2.146714 -0.267879 -v 0.999999 2.146717 -0.267879 -v -1.500000 1.994973 -0.494975 -v 0.999999 1.994976 -0.494975 -v -1.500000 1.767877 -0.646716 -v 1.000000 1.767879 -0.646716 -v 0.450000 1.500000 -1.000000 -v 0.550000 1.500000 -1.000000 -v 0.450000 1.117316 -0.923880 -v 0.550000 1.117316 -0.923880 -v 0.450001 0.792893 -0.707107 -v 0.550001 0.792893 -0.707107 -v 0.450001 0.576120 -0.382683 -v 0.550001 0.576120 -0.382683 -v 0.450001 0.500000 0.000000 -v 0.550001 0.500000 0.000000 -v 0.450001 0.576120 0.382684 -v 0.550001 0.576120 0.382684 -v 0.450001 0.792893 0.707107 -v 0.550001 0.792893 0.707107 -v 0.450000 1.117316 0.923880 -v 0.550000 1.117316 0.923880 -v 0.450000 1.500000 1.000000 -v 0.550000 1.500000 1.000000 -v 0.450000 1.882683 0.923880 -v 0.550000 1.882683 0.923880 -v 0.449999 2.207107 0.707107 -v 0.549999 2.207107 0.707107 -v 0.449999 2.423879 0.382684 -v 0.549999 2.423880 0.382684 -v 0.449999 2.500000 -0.000000 -v 0.549999 2.500000 -0.000000 -v 0.449999 2.423879 -0.382684 -v 0.549999 2.423879 -0.382684 -v 0.449999 2.207106 -0.707107 -v 0.549999 2.207107 -0.707107 -v 0.450000 1.882683 -0.923880 -v 0.550000 1.882683 -0.923880 -v -0.550000 1.500000 -1.000000 -v -0.450000 1.500000 -1.000000 -v -0.550000 1.117316 -0.923880 -v -0.450000 1.117317 -0.923880 -v -0.549999 0.792893 -0.707107 -v -0.449999 0.792893 -0.707107 -v -0.549999 0.576120 -0.382683 -v -0.449999 0.576120 -0.382683 -v -0.549999 0.500000 0.000000 -v -0.449999 0.500000 0.000000 -v -0.549999 0.576120 0.382684 -v -0.449999 0.576120 0.382684 -v -0.549999 0.792893 0.707107 -v -0.449999 0.792893 0.707107 -v -0.550000 1.117316 0.923880 -v -0.450000 1.117316 0.923880 -v -0.550000 1.500000 1.000000 -v -0.450000 1.500000 1.000000 -v -0.550000 1.882683 0.923880 -v -0.450000 1.882683 0.923880 -v -0.550001 2.207107 0.707107 -v -0.450001 2.207107 0.707107 -v -0.550001 2.423879 0.382684 -v -0.450001 2.423880 0.382684 -v -0.550001 2.500000 -0.000000 -v -0.450001 2.500000 -0.000000 -v -0.550001 2.423879 -0.382684 -v -0.450001 2.423879 -0.382684 -v -0.550001 2.207107 -0.707107 -v -0.450001 2.207107 -0.707107 -v -0.550000 1.882683 -0.923880 -v -0.450000 1.882683 -0.923880 -v -0.550000 -0.000000 -0.750000 -v -0.550000 -0.000000 -1.000000 -v -0.450000 -0.000000 -1.000000 -v -0.450000 -0.000000 -0.750000 -v -0.550000 -0.000000 1.000000 -v -0.550000 -0.000000 0.750000 -v -0.450000 -0.000000 0.750000 -v -0.450000 -0.000000 1.000000 -v 0.450000 0.000000 -0.750000 -v 0.450000 0.000000 -1.000000 -v 0.550000 0.000000 -1.000000 -v 0.550000 0.000000 -0.750000 -v 0.450000 -0.000000 1.000000 -v 0.450000 -0.000000 0.750000 -v 0.550000 -0.000000 0.750000 -v 0.550000 -0.000000 1.000000 -v -1.125000 1.499999 -0.700000 -v -1.125000 1.232121 -0.646716 -v -1.125000 1.005024 -0.494975 -v -1.124999 0.853284 -0.267878 -v -1.124999 0.799999 0.000000 -v -1.124999 0.853284 0.267878 -v -1.125000 1.005024 0.494975 -v -1.125000 1.232121 0.646716 -v -1.125000 1.499999 0.700000 -v -1.125000 1.767877 0.646716 -v -1.125000 1.994974 0.494975 -v -1.125001 2.146715 0.267879 -v -1.125001 2.199999 -0.000000 -v -1.125001 2.146715 -0.267879 -v -1.125000 1.994974 -0.494975 -v -1.125000 1.767877 -0.646716 -v 0.707106 2.207107 0.000000 -v 0.382683 2.423880 0.000000 -v -0.000001 2.500000 0.000000 -v -0.382684 2.423880 0.000000 -v -0.707107 2.207107 0.000000 -v 0.707106 2.000000 -0.500000 -v 0.382683 2.153281 -0.653281 -v -0.000001 2.207107 -0.707107 -v -0.382684 2.153281 -0.653281 -v -0.707107 2.000000 -0.500000 -v 0.707106 1.500000 -0.707107 -v 0.382683 1.500000 -0.923879 -v -0.000000 1.500000 -1.000000 -v -0.382684 1.500000 -0.923879 -v -0.707107 1.500000 -0.707107 -v 0.707106 1.000000 -0.500000 -v 0.382683 0.846719 -0.653281 -v -0.000000 0.792893 -0.707107 -v -0.382684 0.846719 -0.653281 -v -0.707107 1.000000 -0.500000 -v 0.707106 0.792894 -0.000000 -v 0.382683 0.576121 -0.000000 -v -0.000000 0.500001 -0.000000 -v -0.382684 0.576121 -0.000000 -v -0.707107 0.792894 -0.000000 -v 0.707106 1.000000 0.500000 -v 0.382683 0.846719 0.653281 -v -0.000000 0.792893 0.707107 -v -0.382684 0.846719 0.653281 -v -0.707107 1.000000 0.500000 -v 0.707106 1.500000 0.707107 -v 0.382683 1.500000 0.923879 -v -0.000000 1.500000 1.000000 -v -0.382684 1.500000 0.923879 -v -0.707107 1.500000 0.707107 -v 0.707106 2.000000 0.500000 -v 0.382683 2.153281 0.653281 -v -0.000001 2.207107 0.707107 -v -0.382684 2.153281 0.653281 -v -0.707107 2.000000 0.500000 -vt 0.167969 0.666472 -vt 0.167969 0.678076 -vt 0.129484 0.678076 -vt 0.090999 0.678076 -vt 0.090999 0.666472 -vt 0.052513 0.678076 -vt 0.052513 0.666472 -vt 0.014028 0.678076 -vt 0.014028 0.666472 -vt 0.629794 0.666472 -vt 0.629794 0.678076 -vt 0.591308 0.678076 -vt 0.552823 0.678076 -vt 0.552823 0.666472 -vt 0.514338 0.678076 -vt 0.475852 0.678076 -vt 0.475852 0.666472 -vt 0.437367 0.678076 -vt 0.437367 0.666472 -vt 0.398881 0.678076 -vt 0.360396 0.678076 -vt 0.360396 0.666472 -vt 0.321910 0.678076 -vt 0.321910 0.666472 -vt 0.283425 0.678076 -vt 0.283425 0.666472 -vt 0.244940 0.678076 -vt 0.206454 0.666472 -vt 0.206454 0.678076 -vt 0.244940 0.666472 -vt 0.167969 0.126901 -vt 0.129483 0.126888 -vt 0.129487 0.115284 -vt 0.090998 0.126875 -vt 0.091002 0.115271 -vt 0.052513 0.126861 -vt 0.052517 0.115257 -vt 0.014028 0.126848 -vt 0.629793 0.127059 -vt 0.591308 0.127046 -vt 0.591312 0.115442 -vt 0.552822 0.127033 -vt 0.552826 0.115429 -vt 0.514337 0.127020 -vt 0.514341 0.115416 -vt 0.475851 0.127007 -vt 0.475855 0.115403 -vt 0.437366 0.126994 -vt 0.437370 0.115389 -vt 0.398881 0.126980 -vt 0.398885 0.115376 -vt 0.360395 0.126967 -vt 0.321910 0.126954 -vt 0.321914 0.115350 -vt 0.283425 0.126941 -vt 0.283429 0.115337 -vt 0.244939 0.126927 -vt 0.206458 0.115310 -vt 0.206454 0.126914 -vt 0.244943 0.115323 -vt 0.589205 0.570129 -vt 0.537513 0.535589 -vt 0.559924 0.422922 -vt 0.421520 0.957030 -vt 0.466797 0.957030 -vt 0.466797 0.968634 -vt 0.897932 0.155115 -vt 0.943209 0.155115 -vt 0.943209 0.166719 -vt 0.871616 0.373560 -vt 0.826340 0.373560 -vt 0.826340 0.361956 -vt 0.781063 0.373560 -vt 0.781063 0.361956 -vt 0.455191 0.880859 -vt 0.409914 0.880859 -vt 0.409914 0.869255 -vt 0.364637 0.880859 -vt 0.364637 0.869255 -vt 0.943209 0.206379 -vt 0.897932 0.206379 -vt 0.897932 0.194775 -vt 0.014028 0.957029 -vt 0.059305 0.957029 -vt 0.059305 0.968633 -vt 0.104582 0.957029 -vt 0.104582 0.968633 -vt 0.149858 0.957029 -vt 0.195135 0.957029 -vt 0.195135 0.968633 -vt 0.240412 0.957029 -vt 0.240412 0.968633 -vt 0.285689 0.957029 -vt 0.285689 0.968633 -vt 0.330966 0.957029 -vt 0.105201 0.410793 -vt 0.241650 0.501966 -vt 0.014028 0.547243 -vt 0.376243 0.957029 -vt 0.421520 0.968634 -vt 0.330966 0.968634 -vt 0.574727 0.365411 -vt 0.525385 0.291565 -vt 0.616557 0.155115 -vt 0.772129 0.917369 -vt 0.817406 0.917369 -vt 0.817406 0.928973 -vt 0.601856 0.880859 -vt 0.601856 0.869255 -vt 0.647133 0.869255 -vt 0.573800 0.880859 -vt 0.528523 0.880859 -vt 0.528523 0.869255 -vt 0.483246 0.880859 -vt 0.483246 0.869255 -vt 0.961341 0.836081 -vt 0.916064 0.836081 -vt 0.916064 0.824477 -vt 0.870787 0.836081 -vt 0.870787 0.824477 -vt 0.916064 0.864137 -vt 0.916064 0.875741 -vt 0.870787 0.875741 -vt 0.364637 0.928973 -vt 0.364637 0.917369 -vt 0.409914 0.917369 -vt 0.455191 0.917369 -vt 0.455191 0.928973 -vt 0.500467 0.917369 -vt 0.500467 0.928973 -vt 0.545744 0.917369 -vt 0.545744 0.928973 -vt 0.591021 0.917369 -vt 0.591021 0.928973 -vt 0.636298 0.917369 -vt 0.636298 0.928973 -vt 0.681575 0.917369 -vt 0.681575 0.928973 -vt 0.105201 0.155115 -vt 0.241650 0.246288 -vt 0.014028 0.291565 -vt 0.726852 0.917369 -vt 0.772129 0.928973 -vt 0.360879 0.382738 -vt 0.269706 0.246288 -vt 0.406156 0.155115 -vt 0.350122 0.445333 -vt 0.462789 0.422922 -vt 0.485200 0.535589 -vt 0.787808 0.042971 -vt 0.657853 0.042971 -vt 0.693703 0.015316 -vt 0.787808 0.071027 -vt 0.785836 0.099970 -vt 0.693703 0.098682 -vt 0.975417 0.946312 -vt 0.845462 0.946312 -vt 0.881311 0.918657 -vt 0.364637 0.841199 -vt 0.364637 0.829595 -vt 0.494592 0.829595 -vt 0.624808 0.985972 -vt 0.494853 0.985972 -vt 0.530702 0.958317 -vt 0.399665 0.626770 -vt 0.399661 0.638374 -vt 0.269706 0.638329 -vt 0.842731 0.824477 -vt 0.840759 0.853420 -vt 0.748626 0.852132 -vt 0.520818 0.626812 -vt 0.520814 0.638416 -vt 0.428672 0.638384 -vt 0.523602 0.829595 -vt 0.615745 0.829595 -vt 0.615745 0.841199 -vt 0.678829 0.638416 -vt 0.548874 0.638416 -vt 0.584723 0.610761 -vt 0.945819 0.014028 -vt 0.943847 0.042971 -vt 0.851714 0.041683 -vt 0.945819 0.071027 -vt 0.943847 0.099970 -vt 0.851714 0.098682 -vt 0.523602 0.841199 -vt 0.494592 0.841199 -vt 0.523603 0.789935 -vt 0.615745 0.789935 -vt 0.615745 0.801539 -vt 0.364637 0.801539 -vt 0.364637 0.789935 -vt 0.494592 0.789935 -vt 0.494596 0.750233 -vt 0.494592 0.761837 -vt 0.364637 0.761792 -vt 0.615749 0.750275 -vt 0.615745 0.761879 -vt 0.523602 0.761847 -vt 0.428676 0.626780 -vt 0.523606 0.750243 -vt 0.523603 0.801539 -vt 0.494592 0.801539 -vt 0.164597 0.057593 -vt 0.132903 0.057583 -vt 0.132918 0.014067 -vt 0.126111 0.057580 -vt 0.094418 0.057569 -vt 0.094433 0.014054 -vt 0.087626 0.057567 -vt 0.055933 0.057556 -vt 0.055947 0.014041 -vt 0.049141 0.057554 -vt 0.017447 0.057543 -vt 0.017462 0.014028 -vt 0.626436 0.014236 -vt 0.626421 0.057751 -vt 0.594727 0.057740 -vt 0.587936 0.057738 -vt 0.556242 0.057727 -vt 0.556257 0.014212 -vt 0.549450 0.057725 -vt 0.517756 0.057714 -vt 0.517771 0.014199 -vt 0.510965 0.057712 -vt 0.479271 0.057701 -vt 0.479286 0.014186 -vt 0.472494 0.014183 -vt 0.472479 0.057699 -vt 0.440786 0.057688 -vt 0.434009 0.014170 -vt 0.433994 0.057686 -vt 0.402300 0.057675 -vt 0.395524 0.014157 -vt 0.395509 0.057672 -vt 0.363815 0.057662 -vt 0.357023 0.057659 -vt 0.325329 0.057648 -vt 0.325344 0.014133 -vt 0.318538 0.057646 -vt 0.286844 0.057635 -vt 0.286859 0.014120 -vt 0.280053 0.057633 -vt 0.248359 0.057622 -vt 0.248374 0.014107 -vt 0.203082 0.057607 -vt 0.171388 0.057596 -vt 0.171403 0.014081 -vt 0.241567 0.057620 -vt 0.209873 0.057609 -vt 0.209888 0.014094 -vt 0.360399 0.115363 -vt 0.014032 0.115244 -vt 0.167973 0.115297 -vt 0.357000 0.722132 -vt 0.286821 0.722132 -vt 0.248335 0.722132 -vt 0.209850 0.722132 -vt 0.171365 0.722132 -vt 0.132880 0.722132 -vt 0.094394 0.722132 -vt 0.055909 0.722132 -vt 0.017424 0.722132 -vt 0.626398 0.722133 -vt 0.587913 0.722133 -vt 0.549427 0.722132 -vt 0.510942 0.722132 -vt 0.472456 0.722132 -vt 0.433971 0.722132 -vt 0.395485 0.722132 -vt 0.336581 0.839581 -vt 0.247767 0.839581 -vt 0.251147 0.794430 -vt 0.323575 0.928973 -vt 0.260774 0.928973 -vt 0.251147 0.884731 -vt 0.333201 0.794430 -vt 0.260774 0.750188 -vt 0.333201 0.884731 -vt 0.918460 0.707029 -vt 0.829646 0.707029 -vt 0.833026 0.661878 -vt 0.905453 0.796421 -vt 0.842652 0.796421 -vt 0.833026 0.752179 -vt 0.915079 0.661878 -vt 0.842652 0.617636 -vt 0.915079 0.752179 -vt 0.089835 0.750188 -vt 0.099461 0.794430 -vt 0.017408 0.794430 -vt 0.099461 0.884731 -vt 0.017408 0.884731 -vt 0.014028 0.839581 -vt 0.102842 0.839581 -vt 0.089835 0.928973 -vt 0.027034 0.928973 -vt 0.798208 0.545339 -vt 0.716155 0.545336 -vt 0.712776 0.500185 -vt 0.801590 0.500188 -vt 0.716158 0.455035 -vt 0.788580 0.589580 -vt 0.725779 0.589578 -vt 0.788587 0.410796 -vt 0.798211 0.455038 -vt 0.801590 0.707029 -vt 0.712776 0.707029 -vt 0.716156 0.661878 -vt 0.788583 0.796421 -vt 0.725782 0.796421 -vt 0.716156 0.752179 -vt 0.788584 0.617636 -vt 0.798210 0.661878 -vt 0.798209 0.752179 -vt 0.905453 0.589578 -vt 0.842652 0.589578 -vt 0.833026 0.545336 -vt 0.915079 0.455035 -vt 0.833026 0.455035 -vt 0.842652 0.410793 -vt 0.918460 0.500186 -vt 0.915079 0.545336 -vt 0.829646 0.500186 -vt 0.866496 0.199357 -vt 0.784443 0.199357 -vt 0.794069 0.155115 -vt 0.869877 0.244508 -vt 0.866496 0.289658 -vt 0.784443 0.289658 -vt 0.781063 0.244507 -vt 0.856870 0.333900 -vt 0.794069 0.333900 -vt 0.216331 0.794430 -vt 0.219711 0.839581 -vt 0.130898 0.839581 -vt 0.206705 0.928973 -vt 0.143904 0.928973 -vt 0.134278 0.884731 -vt 0.134278 0.794430 -vt 0.143904 0.750188 -vt 0.216331 0.884731 -vt 0.129484 0.666472 -vt 0.591308 0.666472 -vt 0.514338 0.666472 -vt 0.398881 0.666472 -vt 0.629797 0.115455 -vt 0.589206 0.410793 -vt 0.620899 0.410793 -vt 0.650181 0.422922 -vt 0.672592 0.445333 -vt 0.684720 0.474614 -vt 0.684720 0.506308 -vt 0.672591 0.535590 -vt 0.650180 0.558000 -vt 0.620899 0.570129 -vt 0.559924 0.558000 -vt 0.525385 0.506308 -vt 0.525385 0.474614 -vt 0.537513 0.445333 -vt 0.897932 0.166719 -vt 0.871616 0.361956 -vt 0.455191 0.869255 -vt 0.943209 0.194775 -vt 0.014028 0.968633 -vt 0.149858 0.968633 -vt 0.150478 0.638416 -vt 0.105201 0.638416 -vt 0.063370 0.621089 -vt 0.031355 0.589073 -vt 0.014028 0.501966 -vt 0.031355 0.460136 -vt 0.063370 0.428120 -vt 0.150478 0.410793 -vt 0.192308 0.428120 -vt 0.224324 0.460136 -vt 0.241650 0.547243 -vt 0.224324 0.589074 -vt 0.192308 0.621089 -vt 0.376243 0.968634 -vt 0.661834 0.155115 -vt 0.703665 0.172442 -vt 0.735680 0.204457 -vt 0.753007 0.246288 -vt 0.753007 0.291565 -vt 0.735680 0.333395 -vt 0.703665 0.365411 -vt 0.661834 0.382738 -vt 0.616557 0.382738 -vt 0.542711 0.333395 -vt 0.525385 0.246288 -vt 0.542711 0.204457 -vt 0.574727 0.172442 -vt 0.647133 0.880859 -vt 0.573800 0.869255 -vt 0.961341 0.824477 -vt 0.870787 0.864137 -vt 0.409914 0.928973 -vt 0.150478 0.382738 -vt 0.105201 0.382738 -vt 0.063370 0.365411 -vt 0.031355 0.333395 -vt 0.014028 0.246288 -vt 0.031355 0.204458 -vt 0.063370 0.172442 -vt 0.150478 0.155115 -vt 0.192308 0.172442 -vt 0.224324 0.204457 -vt 0.241650 0.291565 -vt 0.224324 0.333395 -vt 0.192308 0.365411 -vt 0.726852 0.928973 -vt 0.447986 0.172442 -vt 0.480002 0.204457 -vt 0.497329 0.246288 -vt 0.497329 0.291565 -vt 0.480002 0.333395 -vt 0.447986 0.365411 -vt 0.406156 0.382738 -vt 0.319049 0.365411 -vt 0.287033 0.333395 -vt 0.269706 0.291565 -vt 0.287033 0.204458 -vt 0.319049 0.172442 -vt 0.360879 0.155115 -vt 0.462789 0.558000 -vt 0.433508 0.570129 -vt 0.401814 0.570129 -vt 0.372533 0.558000 -vt 0.350122 0.535589 -vt 0.337993 0.506308 -vt 0.337993 0.474614 -vt 0.372533 0.422922 -vt 0.401814 0.410793 -vt 0.433508 0.410793 -vt 0.485200 0.445333 -vt 0.497329 0.474614 -vt 0.497329 0.506308 -vt 0.785836 0.014028 -vt 0.657853 0.071027 -vt 0.973445 0.917369 -vt 0.622836 0.957029 -vt 0.269710 0.626725 -vt 0.712776 0.824477 -vt 0.676857 0.609473 -vt 0.815864 0.014028 -vt 0.815864 0.071027 -vt 0.364641 0.750188 -vt 0.164612 0.014078 -vt 0.126126 0.014065 -vt 0.087641 0.014052 -vt 0.049156 0.014039 -vt 0.594742 0.014225 -vt 0.587951 0.014223 -vt 0.549465 0.014210 -vt 0.510980 0.014196 -vt 0.440801 0.014172 -vt 0.402315 0.014159 -vt 0.363830 0.014146 -vt 0.357038 0.014144 -vt 0.318553 0.014131 -vt 0.280067 0.014118 -vt 0.203097 0.014091 -vt 0.241582 0.014104 -vt 0.325306 0.722132 -vt 0.318515 0.722132 -vt 0.280029 0.722132 -vt 0.241544 0.722132 -vt 0.203059 0.722132 -vt 0.164573 0.722132 -vt 0.126088 0.722132 -vt 0.087603 0.722132 -vt 0.049117 0.722132 -vt 0.594704 0.722133 -vt 0.556219 0.722133 -vt 0.517733 0.722132 -vt 0.479248 0.722132 -vt 0.440762 0.722132 -vt 0.402277 0.722132 -vt 0.363792 0.722132 -vt 0.323575 0.750188 -vt 0.905453 0.617636 -vt 0.027034 0.750188 -vt 0.725786 0.410793 -vt 0.725783 0.617636 -vt 0.905453 0.410793 -vt 0.856870 0.155115 -vt 0.206705 0.750188 -vn 0.000000 -0.195100 -0.980800 -vn -0.000000 -0.555600 -0.831500 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.195100 0.980800 -vn -0.000000 0.195100 0.980800 -vn 0.000000 0.555600 0.831500 -vn -0.000000 0.831500 0.555600 -vn 0.000000 0.980800 0.195100 -vn 0.000000 0.980800 -0.195100 -vn -0.000000 0.831500 -0.555600 -vn 0.000000 0.195100 -0.980800 -vn -0.000000 0.555600 -0.831500 -vn -1.000000 -0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.068000 -0.997700 -vn 0.000000 0.068000 0.997700 -vn 0.000000 -0.054000 -0.998500 -vn 0.000000 -0.054000 0.998500 -vn 0.000000 -1.000000 0.000000 -vn -0.295900 0.794200 -0.530700 -vn -0.295900 0.936900 -0.186400 -vn -0.295900 0.936900 0.186400 -vn -0.295900 0.794200 0.530700 -vn -0.295900 0.530700 0.794200 -vn -0.295900 0.186400 0.936900 -vn -0.295900 -0.186400 0.936900 -vn -0.295900 -0.530700 0.794200 -vn -0.295900 -0.794200 0.530700 -vn -0.295900 -0.936900 0.186400 -vn -0.295900 -0.936900 -0.186400 -vn -0.295900 -0.794200 -0.530700 -vn -0.295900 -0.530700 -0.794200 -vn -0.295900 -0.186400 -0.936900 -vn -0.295900 0.186400 -0.936900 -vn -0.295900 0.530700 -0.794200 -vn 0.387500 0.904200 0.179800 -vn 0.387500 0.904200 -0.179800 -vn 0.387500 0.766500 -0.512200 -vn 0.387500 0.512200 -0.766500 -vn 0.387500 0.179800 -0.904200 -vn 0.387500 -0.179800 -0.904200 -vn 0.387500 -0.512200 -0.766500 -vn 0.387500 -0.766500 -0.512200 -vn 0.387500 -0.904200 -0.179800 -vn 0.387500 -0.904200 0.179800 -vn 0.387500 -0.766500 0.512200 -vn 0.387500 -0.512200 0.766500 -vn 0.387500 -0.179800 0.904200 -vn 0.387500 0.179800 0.904200 -vn 0.387500 0.512200 0.766500 -vn 0.387500 0.766500 0.512200 -vn -0.180700 0.908700 -0.376400 -vn 0.525300 0.786200 -0.325600 -vn -0.525300 0.786200 -0.325600 -vn 0.180700 0.908700 -0.376400 -vn -0.180700 0.376400 -0.908700 -vn 0.525300 0.325600 -0.786200 -vn -0.525300 0.325600 -0.786200 -vn 0.180700 0.376400 -0.908700 -vn -0.525300 -0.325600 -0.786200 -vn 0.180700 -0.376400 -0.908700 -vn -0.180700 -0.376400 -0.908700 -vn 0.525300 -0.325600 -0.786200 -vn 0.180700 -0.908700 -0.376400 -vn -0.180700 -0.908700 -0.376400 -vn 0.525300 -0.786200 -0.325600 -vn -0.525300 -0.786200 -0.325600 -vn -0.180700 -0.908700 0.376400 -vn 0.525300 -0.786200 0.325600 -vn -0.525300 -0.786200 0.325600 -vn 0.180700 -0.908700 0.376400 -vn 0.525300 -0.325600 0.786200 -vn -0.525300 -0.325600 0.786200 -vn 0.180700 -0.376400 0.908700 -vn -0.180700 -0.376400 0.908700 -vn -0.525300 0.325600 0.786200 -vn 0.180700 0.376400 0.908700 -vn -0.180700 0.376400 0.908700 -vn 0.525300 0.325600 0.786200 -vn -0.180700 0.908700 0.376400 -vn 0.525300 0.786200 0.325600 -vn -0.525300 0.786200 0.325600 -vn 0.180700 0.908700 0.376400 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/3/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 9/10/5 10/11/5 12/12/5 -f 12/12/6 14/13/6 13/14/6 -f 13/14/7 14/13/7 16/15/7 -f 16/15/8 18/16/8 17/17/8 -f 18/16/9 20/18/9 19/19/9 -f 19/19/10 20/18/10 22/20/10 -f 22/20/11 24/21/11 23/22/11 -f 24/21/12 26/23/12 25/24/12 -f 25/24/13 26/23/13 28/25/13 -f 27/26/14 28/25/14 30/27/14 -f 31/28/15 32/29/15 2/2/15 -f 29/30/16 30/27/16 32/29/16 -f 34/31/1 36/32/1 35/33/1 -f 36/32/2 38/34/2 37/35/2 -f 37/35/3 38/34/3 40/36/3 -f 39/37/4 40/36/4 42/38/4 -f 42/39/5 44/40/5 43/41/5 -f 44/40/6 46/42/6 45/43/6 -f 46/42/7 48/44/7 47/45/7 -f 48/44/8 50/46/8 49/47/8 -f 50/46/9 52/48/9 51/49/9 -f 51/49/10 52/48/10 54/50/10 -f 53/51/11 54/50/11 56/52/11 -f 56/52/12 58/53/12 57/54/12 -f 57/54/13 58/53/13 60/55/13 -f 59/56/14 60/55/14 62/57/14 -f 63/58/15 64/59/15 34/31/15 -f 61/60/16 62/57/16 64/59/16 -f 83/61/17 87/62/17 95/63/17 -f 98/64/1 100/65/1 99/66/1 -f 100/67/2 102/68/2 101/69/2 -f 102/70/3 104/71/3 103/72/3 -f 104/71/4 106/73/4 105/74/4 -f 106/75/5 108/76/5 107/77/5 -f 108/76/6 110/78/6 109/79/6 -f 110/80/7 112/81/7 111/82/7 -f 112/83/8 114/84/8 113/85/8 -f 114/84/9 116/86/9 115/87/9 -f 115/87/10 116/86/10 118/88/10 -f 118/88/11 120/89/11 119/90/11 -f 120/89/12 122/91/12 121/92/12 -f 122/91/13 124/93/13 123/94/13 -f 123/94/14 124/93/14 126/95/14 -f 118/96/18 110/97/18 126/98/18 -f 128/99/15 98/64/15 97/100/15 -f 125/101/16 126/95/16 128/99/16 -f 115/102/17 119/103/17 127/104/17 -f 130/105/1 132/106/1 131/107/1 -f 131/108/2 132/109/2 134/110/2 -f 134/111/3 136/112/3 135/113/3 -f 136/112/4 138/114/4 137/115/4 -f 138/116/5 140/117/5 139/118/5 -f 140/117/6 142/119/6 141/120/6 -f 141/121/7 142/122/7 144/123/7 -f 143/124/8 144/125/8 146/126/8 -f 146/126/9 148/127/9 147/128/9 -f 148/127/10 150/129/10 149/130/10 -f 150/129/11 152/131/11 151/132/11 -f 152/131/12 154/133/12 153/134/12 -f 154/133/13 156/135/13 155/136/13 -f 156/135/14 158/137/14 157/138/14 -f 150/139/18 142/140/18 158/141/18 -f 160/142/15 130/105/15 129/143/15 -f 157/138/16 158/137/16 160/142/16 -f 143/144/17 151/145/17 159/146/17 -f 86/147/18 78/148/18 70/149/18 -f 163/150/18 132/151/18 134/152/18 -f 168/153/18 167/154/18 142/155/18 -f 173/156/17 111/157/17 109/158/17 -f 131/159/19 132/160/19 163/161/19 -f 165/162/17 143/163/17 141/164/17 -f 165/165/20 168/166/20 144/167/20 -f 162/168/17 161/169/17 133/170/17 -f 141/171/21 142/172/21 167/173/21 -f 164/174/22 134/175/22 133/176/22 -f 171/177/18 100/178/18 102/179/18 -f 176/180/18 175/181/18 110/182/18 -f 170/183/17 169/184/17 101/185/17 -f 164/174/23 161/186/23 162/187/23 -f 172/188/22 102/189/22 101/190/22 -f 99/191/19 100/192/19 171/193/19 -f 173/194/20 176/195/20 112/196/20 -f 109/197/21 110/198/21 175/199/21 -f 168/166/23 165/165/23 166/200/23 -f 176/195/23 173/194/23 174/201/23 -f 172/188/23 169/202/23 170/203/23 -f 177/204/1 178/205/1 67/206/1 -f 178/207/2 179/208/2 69/209/2 -f 179/210/3 180/211/3 71/212/3 -f 180/213/4 181/214/4 73/215/4 -f 73/216/5 181/217/5 182/218/5 -f 182/219/6 183/220/6 77/221/6 -f 183/222/7 184/223/7 79/224/7 -f 184/225/8 185/226/8 81/227/8 -f 81/228/9 185/229/9 186/230/9 -f 83/231/10 186/232/10 187/233/10 -f 85/234/11 187/235/11 188/236/11 -f 188/237/12 189/238/12 89/239/12 -f 189/240/13 190/241/13 91/242/13 -f 190/243/14 191/244/14 93/245/14 -f 192/246/15 177/247/15 65/248/15 -f 191/249/16 192/250/16 95/251/16 -f 190/243/24 59/56/24 61/60/24 -f 59/56/25 190/241/25 189/240/25 -f 57/54/26 189/238/26 188/237/26 -f 53/51/27 55/252/27 188/236/27 -f 51/49/28 53/51/28 187/233/28 -f 49/47/29 51/49/29 186/230/29 -f 47/45/30 49/47/30 185/226/30 -f 45/43/31 47/45/31 184/223/31 -f 43/41/32 45/43/32 183/220/32 -f 43/41/33 182/218/33 181/217/33 -f 39/37/34 41/253/34 181/214/34 -f 39/37/35 180/211/35 179/210/35 -f 37/35/36 179/208/36 178/207/36 -f 35/33/37 178/205/37 177/204/37 -f 33/254/38 177/247/38 192/246/38 -f 63/58/39 192/250/39 191/249/39 -f 26/23/40 24/21/40 88/255/40 -f 92/256/41 28/25/41 26/23/41 -f 94/257/42 30/27/42 28/25/42 -f 96/258/43 32/29/43 30/27/43 -f 66/259/44 2/2/44 32/29/44 -f 68/260/45 4/3/45 2/2/45 -f 70/261/46 6/4/46 4/3/46 -f 72/262/47 8/6/47 6/4/47 -f 74/263/48 10/8/48 8/6/48 -f 12/12/49 10/11/49 74/264/49 -f 14/13/50 12/12/50 76/265/50 -f 16/15/51 14/13/51 78/266/51 -f 18/16/52 16/15/52 80/267/52 -f 20/18/53 18/16/53 82/268/53 -f 22/20/54 20/18/54 84/269/54 -f 24/21/55 22/20/55 86/270/55 -f 195/271/56 200/272/56 201/273/56 -f 193/274/57 198/275/57 199/276/57 -f 196/277/58 201/273/58 202/278/58 -f 194/279/59 199/276/59 200/272/59 -f 200/280/60 205/281/60 206/282/60 -f 198/283/61 203/284/61 204/285/61 -f 201/286/62 206/282/62 207/287/62 -f 199/288/63 204/285/63 205/281/63 -f 207/289/64 206/290/64 211/291/64 -f 204/292/65 209/293/65 210/294/65 -f 205/295/66 210/294/66 211/291/66 -f 204/292/67 203/296/67 208/297/67 -f 209/298/68 214/299/68 215/300/68 -f 210/301/69 215/300/69 216/302/69 -f 209/298/70 208/303/70 213/304/70 -f 212/305/71 211/306/71 216/302/71 -f 215/307/72 220/308/72 221/309/72 -f 213/310/73 218/311/73 219/312/73 -f 217/313/74 216/314/74 221/309/74 -f 215/307/75 214/315/75 219/312/75 -f 218/316/76 223/317/76 224/318/76 -f 221/319/77 226/320/77 227/321/77 -f 220/322/78 219/323/78 224/318/78 -f 220/322/79 225/324/79 226/320/79 -f 226/325/80 231/326/80 232/327/80 -f 225/328/81 224/329/81 229/330/81 -f 226/325/82 225/328/82 230/331/82 -f 223/332/83 228/333/83 229/330/83 -f 231/334/84 230/335/84 195/336/84 -f 228/337/85 193/338/85 194/339/85 -f 231/334/86 196/340/86 197/341/86 -f 229/342/87 194/339/87 195/336/87 -f 3/343/1 1/1/1 4/3/1 -f 3/343/2 4/3/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 11/344/5 9/10/5 12/12/5 -f 11/344/6 12/12/6 13/14/6 -f 15/345/7 13/14/7 16/15/7 -f 15/345/8 16/15/8 17/17/8 -f 17/17/9 18/16/9 19/19/9 -f 21/346/10 19/19/10 22/20/10 -f 21/346/11 22/20/11 23/22/11 -f 23/22/12 24/21/12 25/24/12 -f 27/26/13 25/24/13 28/25/13 -f 29/30/14 27/26/14 30/27/14 -f 1/1/15 31/28/15 2/2/15 -f 31/28/16 29/30/16 32/29/16 -f 33/254/1 34/31/1 35/33/1 -f 35/33/2 36/32/2 37/35/2 -f 39/37/3 37/35/3 40/36/3 -f 41/253/4 39/37/4 42/38/4 -f 41/347/5 42/39/5 43/41/5 -f 43/41/6 44/40/6 45/43/6 -f 45/43/7 46/42/7 47/45/7 -f 47/45/8 48/44/8 49/47/8 -f 49/47/9 50/46/9 51/49/9 -f 53/51/10 51/49/10 54/50/10 -f 55/252/11 53/51/11 56/52/11 -f 55/252/12 56/52/12 57/54/12 -f 59/56/13 57/54/13 60/55/13 -f 61/60/14 59/56/14 62/57/14 -f 33/254/15 63/58/15 34/31/15 -f 63/58/16 61/60/16 64/59/16 -f 95/63/17 65/348/17 67/349/17 -f 67/349/17 69/350/17 71/351/17 -f 71/351/17 73/352/17 75/353/17 -f 75/353/17 77/354/17 71/351/17 -f 79/355/17 81/356/17 83/61/17 -f 83/61/17 85/357/17 87/62/17 -f 87/62/17 89/358/17 91/359/17 -f 91/359/17 93/360/17 87/62/17 -f 95/63/17 67/349/17 79/355/17 -f 71/351/17 77/354/17 79/355/17 -f 79/355/17 83/61/17 95/63/17 -f 87/62/17 93/360/17 95/63/17 -f 67/349/17 71/351/17 79/355/17 -f 97/100/1 98/64/1 99/66/1 -f 99/361/2 100/67/2 101/69/2 -f 101/362/3 102/70/3 103/72/3 -f 103/72/4 104/71/4 105/74/4 -f 105/363/5 106/75/5 107/77/5 -f 107/77/6 108/76/6 109/79/6 -f 109/364/7 110/80/7 111/82/7 -f 111/365/8 112/83/8 113/85/8 -f 113/85/9 114/84/9 115/87/9 -f 117/366/10 115/87/10 118/88/10 -f 117/366/11 118/88/11 119/90/11 -f 119/90/12 120/89/12 121/92/12 -f 121/92/13 122/91/13 123/94/13 -f 125/101/14 123/94/14 126/95/14 -f 102/367/18 100/368/18 98/369/18 -f 98/369/18 128/370/18 126/98/18 -f 126/98/18 124/371/18 118/96/18 -f 122/372/18 120/373/18 118/96/18 -f 118/96/18 116/374/18 110/97/18 -f 114/375/18 112/376/18 110/97/18 -f 110/97/18 108/377/18 106/378/18 -f 106/378/18 104/379/18 110/97/18 -f 102/367/18 98/369/18 126/98/18 -f 124/371/18 122/372/18 118/96/18 -f 116/374/18 114/375/18 110/97/18 -f 110/97/18 104/379/18 102/367/18 -f 102/367/18 126/98/18 110/97/18 -f 127/380/15 128/99/15 97/100/15 -f 127/380/16 125/101/16 128/99/16 -f 127/104/17 97/381/17 99/382/17 -f 99/382/17 101/383/17 103/384/17 -f 103/384/17 105/385/17 107/386/17 -f 107/386/17 109/387/17 111/388/17 -f 111/388/17 113/389/17 115/102/17 -f 115/102/17 117/390/17 119/103/17 -f 119/103/17 121/391/17 123/392/17 -f 123/392/17 125/393/17 127/104/17 -f 127/104/17 99/382/17 103/384/17 -f 103/384/17 107/386/17 111/388/17 -f 111/388/17 115/102/17 127/104/17 -f 119/103/17 123/392/17 127/104/17 -f 127/104/17 103/384/17 111/388/17 -f 129/143/1 130/105/1 131/107/1 -f 133/394/2 131/108/2 134/110/2 -f 133/395/3 134/111/3 135/113/3 -f 135/113/4 136/112/4 137/115/4 -f 137/396/5 138/116/5 139/118/5 -f 139/118/6 140/117/6 141/120/6 -f 143/397/7 141/121/7 144/123/7 -f 145/398/8 143/124/8 146/126/8 -f 145/398/9 146/126/9 147/128/9 -f 147/128/10 148/127/10 149/130/10 -f 149/130/11 150/129/11 151/132/11 -f 151/132/12 152/131/12 153/134/12 -f 153/134/13 154/133/13 155/136/13 -f 155/136/14 156/135/14 157/138/14 -f 134/399/18 132/400/18 130/401/18 -f 130/401/18 160/402/18 158/141/18 -f 158/141/18 156/403/18 150/139/18 -f 154/404/18 152/405/18 150/139/18 -f 150/139/18 148/406/18 142/140/18 -f 146/407/18 144/408/18 142/140/18 -f 142/140/18 140/409/18 138/410/18 -f 138/410/18 136/411/18 142/140/18 -f 134/399/18 130/401/18 158/141/18 -f 156/403/18 154/404/18 150/139/18 -f 148/406/18 146/407/18 142/140/18 -f 142/140/18 136/411/18 134/399/18 -f 134/399/18 158/141/18 142/140/18 -f 159/412/15 160/142/15 129/143/15 -f 159/412/16 157/138/16 160/142/16 -f 159/146/17 129/413/17 131/414/17 -f 131/414/17 133/415/17 159/146/17 -f 135/416/17 137/417/17 139/418/17 -f 139/418/17 141/419/17 135/416/17 -f 143/144/17 145/420/17 147/421/17 -f 147/421/17 149/422/17 151/145/17 -f 151/145/17 153/423/17 155/424/17 -f 155/424/17 157/425/17 159/146/17 -f 159/146/17 133/415/17 135/416/17 -f 135/416/17 141/419/17 143/144/17 -f 143/144/17 147/421/17 151/145/17 -f 151/145/17 155/424/17 159/146/17 -f 159/146/17 135/416/17 143/144/17 -f 70/149/18 68/426/18 66/427/18 -f 66/427/18 96/428/18 94/429/18 -f 94/429/18 92/430/18 90/431/18 -f 90/431/18 88/432/18 86/147/18 -f 86/147/18 84/433/18 78/148/18 -f 82/434/18 80/435/18 78/148/18 -f 78/148/18 76/436/18 70/149/18 -f 74/437/18 72/438/18 70/149/18 -f 70/149/18 66/427/18 94/429/18 -f 94/429/18 90/431/18 70/149/18 -f 84/433/18 82/434/18 78/148/18 -f 76/436/18 74/437/18 70/149/18 -f 70/149/18 90/431/18 86/147/18 -f 164/439/18 163/150/18 134/152/18 -f 144/440/18 168/153/18 142/155/18 -f 174/441/17 173/156/17 109/158/17 -f 162/187/19 131/159/19 163/161/19 -f 166/442/17 165/162/17 141/164/17 -f 143/443/20 165/165/20 144/167/20 -f 131/444/17 162/168/17 133/170/17 -f 166/200/21 141/171/21 167/173/21 -f 161/186/22 164/174/22 133/176/22 -f 172/445/18 171/177/18 102/179/18 -f 112/446/18 176/180/18 110/182/18 -f 99/447/17 170/183/17 101/185/17 -f 163/161/23 164/174/23 162/187/23 -f 169/202/22 172/188/22 101/190/22 -f 170/203/19 99/191/19 171/193/19 -f 111/448/20 173/194/20 112/196/20 -f 174/201/21 109/197/21 175/199/21 -f 167/173/23 168/166/23 166/200/23 -f 175/199/23 176/195/23 174/201/23 -f 171/193/23 172/188/23 170/203/23 -f 65/449/1 177/204/1 67/206/1 -f 67/450/2 178/207/2 69/209/2 -f 69/451/3 179/210/3 71/212/3 -f 71/452/4 180/213/4 73/215/4 -f 75/453/5 73/216/5 182/218/5 -f 75/454/6 182/219/6 77/221/6 -f 77/455/7 183/222/7 79/224/7 -f 79/456/8 184/225/8 81/227/8 -f 83/457/9 81/228/9 186/230/9 -f 85/458/10 83/231/10 187/233/10 -f 87/459/11 85/234/11 188/236/11 -f 87/460/12 188/237/12 89/239/12 -f 89/461/13 189/240/13 91/242/13 -f 91/462/14 190/243/14 93/245/14 -f 95/463/15 192/246/15 65/248/15 -f 93/464/16 191/249/16 95/251/16 -f 191/244/24 190/243/24 61/60/24 -f 57/54/25 59/56/25 189/240/25 -f 55/252/26 57/54/26 188/237/26 -f 187/235/27 53/51/27 188/236/27 -f 186/232/28 51/49/28 187/233/28 -f 185/229/29 49/47/29 186/230/29 -f 184/225/30 47/45/30 185/226/30 -f 183/222/31 45/43/31 184/223/31 -f 182/219/32 43/41/32 183/220/32 -f 41/347/33 43/41/33 181/217/33 -f 180/213/34 39/37/34 181/214/34 -f 37/35/35 39/37/35 179/210/35 -f 35/33/36 37/35/36 178/207/36 -f 33/254/37 35/33/37 177/204/37 -f 63/58/38 33/254/38 192/246/38 -f 61/60/39 63/58/39 191/249/39 -f 90/465/40 26/23/40 88/255/40 -f 90/466/41 92/256/41 26/23/41 -f 92/467/42 94/257/42 28/25/42 -f 94/468/43 96/258/43 30/27/43 -f 96/469/44 66/259/44 32/29/44 -f 66/470/45 68/260/45 2/2/45 -f 68/471/46 70/261/46 4/3/46 -f 70/472/47 72/262/47 6/4/47 -f 72/473/48 74/263/48 8/6/48 -f 76/474/49 12/12/49 74/264/49 -f 78/475/50 14/13/50 76/265/50 -f 80/476/51 16/15/51 78/266/51 -f 82/477/52 18/16/52 80/267/52 -f 84/478/53 20/18/53 82/268/53 -f 86/479/54 22/20/54 84/269/54 -f 88/480/55 24/21/55 86/270/55 -f 196/277/56 195/271/56 201/273/56 -f 194/279/57 193/274/57 199/276/57 -f 197/481/58 196/277/58 202/278/58 -f 195/271/59 194/279/59 200/272/59 -f 201/286/60 200/280/60 206/282/60 -f 199/288/61 198/283/61 204/285/61 -f 202/482/62 201/286/62 207/287/62 -f 200/280/63 199/288/63 205/281/63 -f 212/483/64 207/289/64 211/291/64 -f 205/295/65 204/292/65 210/294/65 -f 206/290/66 205/295/66 211/291/66 -f 209/293/67 204/292/67 208/297/67 -f 210/301/68 209/298/68 215/300/68 -f 211/306/69 210/301/69 216/302/69 -f 214/299/70 209/298/70 213/304/70 -f 217/484/71 212/305/71 216/302/71 -f 216/314/72 215/307/72 221/309/72 -f 214/315/73 213/310/73 219/312/73 -f 222/485/74 217/313/74 221/309/74 -f 220/308/75 215/307/75 219/312/75 -f 219/323/76 218/316/76 224/318/76 -f 222/486/77 221/319/77 227/321/77 -f 225/324/78 220/322/78 224/318/78 -f 221/319/79 220/322/79 226/320/79 -f 227/487/80 226/325/80 232/327/80 -f 230/331/81 225/328/81 229/330/81 -f 231/326/82 226/325/82 230/331/82 -f 224/329/83 223/332/83 229/330/83 -f 196/340/84 231/334/84 195/336/84 -f 229/342/85 228/337/85 194/339/85 -f 232/488/86 231/334/86 197/341/86 -f 230/335/87 229/342/87 195/336/87 diff --git a/src/main/resources/assets/hbm/models/TheGadget3_smooth.obj b/src/main/resources/assets/hbm/models/TheGadget3_smooth.obj deleted file mode 100644 index 745a9d304..000000000 --- a/src/main/resources/assets/hbm/models/TheGadget3_smooth.obj +++ /dev/null @@ -1,1293 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'TheGadget3_smooth.blend' -# www.blender.org -o Cylinder.003 -v 0.550000 1.500000 -0.850000 -v 0.650000 1.500000 -0.850000 -v 0.550000 1.174719 -0.785298 -v 0.650000 1.174719 -0.785298 -v 0.550001 0.898959 -0.601041 -v 0.650001 0.898959 -0.601041 -v 0.550001 0.714702 -0.325281 -v 0.650001 0.714702 -0.325281 -v 0.550001 0.650000 0.000000 -v 0.650001 0.650000 0.000000 -v 0.550001 0.714702 0.325281 -v 0.650001 0.714702 0.325281 -v 0.550001 0.898959 0.601041 -v 0.650001 0.898959 0.601041 -v 0.550000 1.174719 0.785298 -v 0.650000 1.174719 0.785298 -v 0.550000 1.500000 0.850000 -v 0.650000 1.500000 0.850000 -v 0.550000 1.825281 0.785298 -v 0.650000 1.825281 0.785298 -v 0.549999 2.101041 0.601041 -v 0.649999 2.101041 0.601041 -v 0.549999 2.285297 0.325281 -v 0.649999 2.285298 0.325281 -v 0.549999 2.350000 -0.000000 -v 0.649999 2.350000 -0.000000 -v 0.549999 2.285297 -0.325281 -v 0.649999 2.285298 -0.325281 -v 0.549999 2.101040 -0.601041 -v 0.649999 2.101041 -0.601041 -v 0.550000 1.825280 -0.785298 -v 0.650000 1.825281 -0.785298 -v -0.650000 1.500000 -0.850000 -v -0.550000 1.500000 -0.850000 -v -0.650000 1.174719 -0.785298 -v -0.550000 1.174719 -0.785298 -v -0.649999 0.898959 -0.601041 -v -0.549999 0.898959 -0.601041 -v -0.649999 0.714702 -0.325281 -v -0.549999 0.714702 -0.325281 -v -0.649999 0.650000 0.000000 -v -0.549999 0.650000 0.000000 -v -0.649999 0.714702 0.325281 -v -0.549999 0.714702 0.325281 -v -0.649999 0.898959 0.601041 -v -0.549999 0.898959 0.601041 -v -0.650000 1.174719 0.785298 -v -0.550000 1.174719 0.785298 -v -0.650000 1.500000 0.850000 -v -0.550000 1.500000 0.850000 -v -0.650000 1.825281 0.785298 -v -0.550000 1.825281 0.785298 -v -0.650001 2.101041 0.601041 -v -0.550001 2.101041 0.601041 -v -0.650001 2.285297 0.325281 -v -0.550001 2.285298 0.325281 -v -0.650001 2.350000 -0.000000 -v -0.550001 2.350000 -0.000000 -v -0.650001 2.285297 -0.325281 -v -0.550001 2.285298 -0.325281 -v -0.650001 2.101040 -0.601041 -v -0.550001 2.101041 -0.601041 -v -0.650000 1.825280 -0.785298 -v -0.550000 1.825281 -0.785298 -v -1.500000 1.499999 -0.700000 -v 1.000000 1.500001 -0.700000 -v -1.500000 1.232120 -0.646716 -v 1.000000 1.232123 -0.646716 -v -1.500000 1.005024 -0.494975 -v 1.000000 1.005026 -0.494975 -v -1.499999 0.853283 -0.267878 -v 1.000000 0.853285 -0.267878 -v -1.499999 0.799999 0.000000 -v 1.000000 0.800001 0.000000 -v -1.499999 0.853283 0.267878 -v 1.000000 0.853285 0.267878 -v -1.500000 1.005024 0.494975 -v 1.000000 1.005026 0.494975 -v -1.500000 1.232120 0.646716 -v 1.000000 1.232123 0.646716 -v -1.500000 1.499999 0.700000 -v 1.000000 1.500001 0.700000 -v -1.500000 1.767877 0.646716 -v 1.000000 1.767879 0.646716 -v -1.500000 1.994973 0.494975 -v 0.999999 1.994976 0.494975 -v -1.500001 2.146714 0.267879 -v 0.999999 2.146717 0.267879 -v -1.500001 2.199999 -0.000000 -v 0.999999 2.200001 -0.000000 -v -1.500001 2.146714 -0.267879 -v 0.999999 2.146717 -0.267879 -v -1.500000 1.994973 -0.494975 -v 0.999999 1.994976 -0.494975 -v -1.500000 1.767877 -0.646716 -v 1.000000 1.767879 -0.646716 -v 0.450000 1.500000 -1.000000 -v 0.550000 1.500000 -1.000000 -v 0.450000 1.117316 -0.923880 -v 0.550000 1.117316 -0.923880 -v 0.450001 0.792893 -0.707107 -v 0.550001 0.792893 -0.707107 -v 0.450001 0.576120 -0.382683 -v 0.550001 0.576120 -0.382683 -v 0.450001 0.500000 0.000000 -v 0.550001 0.500000 0.000000 -v 0.450001 0.576120 0.382684 -v 0.550001 0.576120 0.382684 -v 0.450001 0.792893 0.707107 -v 0.550001 0.792893 0.707107 -v 0.450000 1.117316 0.923880 -v 0.550000 1.117316 0.923880 -v 0.450000 1.500000 1.000000 -v 0.550000 1.500000 1.000000 -v 0.450000 1.882683 0.923880 -v 0.550000 1.882683 0.923880 -v 0.449999 2.207107 0.707107 -v 0.549999 2.207107 0.707107 -v 0.449999 2.423879 0.382684 -v 0.549999 2.423880 0.382684 -v 0.449999 2.500000 -0.000000 -v 0.549999 2.500000 -0.000000 -v 0.449999 2.423879 -0.382684 -v 0.549999 2.423879 -0.382684 -v 0.449999 2.207106 -0.707107 -v 0.549999 2.207107 -0.707107 -v 0.450000 1.882683 -0.923880 -v 0.550000 1.882683 -0.923880 -v -0.550000 1.500000 -1.000000 -v -0.450000 1.500000 -1.000000 -v -0.550000 1.117316 -0.923880 -v -0.450000 1.117317 -0.923880 -v -0.549999 0.792893 -0.707107 -v -0.449999 0.792893 -0.707107 -v -0.549999 0.576120 -0.382683 -v -0.449999 0.576120 -0.382683 -v -0.549999 0.500000 0.000000 -v -0.449999 0.500000 0.000000 -v -0.549999 0.576120 0.382684 -v -0.449999 0.576120 0.382684 -v -0.549999 0.792893 0.707107 -v -0.449999 0.792893 0.707107 -v -0.550000 1.117316 0.923880 -v -0.450000 1.117316 0.923880 -v -0.550000 1.500000 1.000000 -v -0.450000 1.500000 1.000000 -v -0.550000 1.882683 0.923880 -v -0.450000 1.882683 0.923880 -v -0.550001 2.207107 0.707107 -v -0.450001 2.207107 0.707107 -v -0.550001 2.423879 0.382684 -v -0.450001 2.423880 0.382684 -v -0.550001 2.500000 -0.000000 -v -0.450001 2.500000 -0.000000 -v -0.550001 2.423879 -0.382684 -v -0.450001 2.423879 -0.382684 -v -0.550001 2.207107 -0.707107 -v -0.450001 2.207107 -0.707107 -v -0.550000 1.882683 -0.923880 -v -0.450000 1.882683 -0.923880 -v -0.550000 -0.000000 -0.750000 -v -0.550000 -0.000000 -1.000000 -v -0.450000 -0.000000 -1.000000 -v -0.450000 -0.000000 -0.750000 -v -0.550000 -0.000000 1.000000 -v -0.550000 -0.000000 0.750000 -v -0.450000 -0.000000 0.750000 -v -0.450000 -0.000000 1.000000 -v 0.450000 0.000000 -0.750000 -v 0.450000 0.000000 -1.000000 -v 0.550000 0.000000 -1.000000 -v 0.550000 0.000000 -0.750000 -v 0.450000 -0.000000 1.000000 -v 0.450000 -0.000000 0.750000 -v 0.550000 -0.000000 0.750000 -v 0.550000 -0.000000 1.000000 -v -1.125000 1.499999 -0.700000 -v -1.125000 1.232121 -0.646716 -v -1.125000 1.005024 -0.494975 -v -1.124999 0.853284 -0.267878 -v -1.124999 0.799999 0.000000 -v -1.124999 0.853284 0.267878 -v -1.125000 1.005024 0.494975 -v -1.125000 1.232121 0.646716 -v -1.125000 1.499999 0.700000 -v -1.125000 1.767877 0.646716 -v -1.125000 1.994974 0.494975 -v -1.125001 2.146715 0.267879 -v -1.125001 2.199999 -0.000000 -v -1.125001 2.146715 -0.267879 -v -1.125000 1.994974 -0.494975 -v -1.125000 1.767877 -0.646716 -v 0.707106 2.207107 0.000000 -v 0.382683 2.423880 0.000000 -v -0.000001 2.500000 0.000000 -v -0.382684 2.423880 0.000000 -v -0.707107 2.207107 0.000000 -v 0.707106 2.000000 -0.500000 -v 0.382683 2.153281 -0.653281 -v -0.000001 2.207107 -0.707107 -v -0.382684 2.153281 -0.653281 -v -0.707107 2.000000 -0.500000 -v 0.707106 1.500000 -0.707107 -v 0.382683 1.500000 -0.923879 -v -0.000000 1.500000 -1.000000 -v -0.382684 1.500000 -0.923879 -v -0.707107 1.500000 -0.707107 -v 0.707106 1.000000 -0.500000 -v 0.382683 0.846719 -0.653281 -v -0.000000 0.792893 -0.707107 -v -0.382684 0.846719 -0.653281 -v -0.707107 1.000000 -0.500000 -v 0.707106 0.792894 -0.000000 -v 0.382683 0.576121 -0.000000 -v -0.000000 0.500001 -0.000000 -v -0.382684 0.576121 -0.000000 -v -0.707107 0.792894 -0.000000 -v 0.707106 1.000000 0.500000 -v 0.382683 0.846719 0.653281 -v -0.000000 0.792893 0.707107 -v -0.382684 0.846719 0.653281 -v -0.707107 1.000000 0.500000 -v 0.707106 1.500000 0.707107 -v 0.382683 1.500000 0.923879 -v -0.000000 1.500000 1.000000 -v -0.382684 1.500000 0.923879 -v -0.707107 1.500000 0.707107 -v 0.707106 2.000000 0.500000 -v 0.382683 2.153281 0.653281 -v -0.000001 2.207107 0.707107 -v -0.382684 2.153281 0.653281 -v -0.707107 2.000000 0.500000 -vt 0.589205 0.570129 -vt 0.537513 0.535589 -vt 0.559924 0.422922 -vt 0.897932 0.155115 -vt 0.943209 0.155115 -vt 0.943209 0.166719 -vt 0.943209 0.206379 -vt 0.897932 0.206379 -vt 0.897932 0.194775 -vt 0.105201 0.410793 -vt 0.241650 0.501966 -vt 0.014028 0.547243 -vt 0.574727 0.365411 -vt 0.525385 0.291565 -vt 0.616557 0.155115 -vt 0.601856 0.880859 -vt 0.601856 0.869255 -vt 0.647133 0.869255 -vt 0.916064 0.864137 -vt 0.916064 0.875741 -vt 0.870787 0.875741 -vt 0.105201 0.155115 -vt 0.241650 0.246288 -vt 0.014028 0.291565 -vt 0.360879 0.382738 -vt 0.269706 0.246288 -vt 0.406156 0.155115 -vt 0.350122 0.445333 -vt 0.462789 0.422922 -vt 0.485200 0.535589 -vt 0.787808 0.042971 -vt 0.657853 0.042971 -vt 0.693703 0.015316 -vt 0.787808 0.071027 -vt 0.785836 0.099970 -vt 0.693703 0.098682 -vt 0.975417 0.946312 -vt 0.845462 0.946312 -vt 0.881311 0.918657 -vt 0.364637 0.841199 -vt 0.364637 0.829595 -vt 0.494592 0.829595 -vt 0.624808 0.985972 -vt 0.494853 0.985972 -vt 0.530702 0.958317 -vt 0.399665 0.626770 -vt 0.399661 0.638374 -vt 0.269706 0.638329 -vt 0.842731 0.824477 -vt 0.840759 0.853420 -vt 0.748626 0.852132 -vt 0.520818 0.626812 -vt 0.520814 0.638416 -vt 0.428672 0.638384 -vt 0.523602 0.829595 -vt 0.615745 0.829595 -vt 0.615745 0.841199 -vt 0.678829 0.638416 -vt 0.548874 0.638416 -vt 0.584723 0.610761 -vt 0.945819 0.014028 -vt 0.943847 0.042971 -vt 0.851714 0.041683 -vt 0.945819 0.071027 -vt 0.943847 0.099970 -vt 0.851714 0.098682 -vt 0.523602 0.841199 -vt 0.494592 0.841199 -vt 0.523603 0.789935 -vt 0.615745 0.789935 -vt 0.615745 0.801539 -vt 0.364637 0.801539 -vt 0.364637 0.789935 -vt 0.494592 0.789935 -vt 0.494596 0.750233 -vt 0.494592 0.761837 -vt 0.364637 0.761792 -vt 0.615749 0.750275 -vt 0.615745 0.761879 -vt 0.523602 0.761847 -vt 0.428676 0.626780 -vt 0.523606 0.750243 -vt 0.523603 0.801539 -vt 0.494592 0.801539 -vt 0.589206 0.410793 -vt 0.620899 0.410793 -vt 0.650181 0.422922 -vt 0.672592 0.445333 -vt 0.684720 0.474614 -vt 0.684720 0.506308 -vt 0.672591 0.535590 -vt 0.650180 0.558000 -vt 0.620899 0.570129 -vt 0.559924 0.558000 -vt 0.525385 0.506308 -vt 0.525385 0.474614 -vt 0.537513 0.445333 -vt 0.897932 0.166719 -vt 0.943209 0.194775 -vt 0.150478 0.638416 -vt 0.105201 0.638416 -vt 0.063370 0.621089 -vt 0.031355 0.589073 -vt 0.014028 0.501966 -vt 0.031355 0.460136 -vt 0.063370 0.428120 -vt 0.150478 0.410793 -vt 0.192308 0.428120 -vt 0.224324 0.460136 -vt 0.241650 0.547243 -vt 0.224324 0.589074 -vt 0.192308 0.621089 -vt 0.661834 0.155115 -vt 0.703665 0.172442 -vt 0.735680 0.204457 -vt 0.753007 0.246288 -vt 0.753007 0.291565 -vt 0.735680 0.333395 -vt 0.703665 0.365411 -vt 0.661834 0.382738 -vt 0.616557 0.382738 -vt 0.542711 0.333395 -vt 0.525385 0.246288 -vt 0.542711 0.204457 -vt 0.574727 0.172442 -vt 0.647133 0.880859 -vt 0.870787 0.864137 -vt 0.150478 0.382738 -vt 0.105201 0.382738 -vt 0.063370 0.365411 -vt 0.031355 0.333395 -vt 0.014028 0.246288 -vt 0.031355 0.204458 -vt 0.063370 0.172442 -vt 0.150478 0.155115 -vt 0.192308 0.172442 -vt 0.224324 0.204457 -vt 0.241650 0.291565 -vt 0.224324 0.333395 -vt 0.192308 0.365411 -vt 0.447986 0.172442 -vt 0.480002 0.204457 -vt 0.497329 0.246288 -vt 0.497329 0.291565 -vt 0.480002 0.333395 -vt 0.447986 0.365411 -vt 0.406156 0.382738 -vt 0.319049 0.365411 -vt 0.287033 0.333395 -vt 0.269706 0.291565 -vt 0.287033 0.204458 -vt 0.319049 0.172442 -vt 0.360879 0.155115 -vt 0.462789 0.558000 -vt 0.433508 0.570129 -vt 0.401814 0.570129 -vt 0.372533 0.558000 -vt 0.350122 0.535589 -vt 0.337993 0.506308 -vt 0.337993 0.474614 -vt 0.372533 0.422922 -vt 0.401814 0.410793 -vt 0.433508 0.410793 -vt 0.485200 0.445333 -vt 0.497329 0.474614 -vt 0.497329 0.506308 -vt 0.785836 0.014028 -vt 0.657853 0.071027 -vt 0.973445 0.917369 -vt 0.622836 0.957029 -vt 0.269710 0.626725 -vt 0.712776 0.824477 -vt 0.676857 0.609473 -vt 0.815864 0.014028 -vt 0.815864 0.071027 -vt 0.364641 0.750188 -vt 0.167969 0.666472 -vt 0.167969 0.678076 -vt 0.129484 0.678076 -vt 0.090999 0.678076 -vt 0.090999 0.666472 -vt 0.052513 0.678076 -vt 0.052513 0.666472 -vt 0.014028 0.678076 -vt 0.014028 0.666472 -vt 0.629794 0.666472 -vt 0.629794 0.678076 -vt 0.591308 0.678076 -vt 0.552823 0.678076 -vt 0.552823 0.666472 -vt 0.514338 0.678076 -vt 0.475852 0.678076 -vt 0.475852 0.666472 -vt 0.437367 0.678076 -vt 0.437367 0.666472 -vt 0.398881 0.678076 -vt 0.360396 0.678076 -vt 0.360396 0.666472 -vt 0.321910 0.678076 -vt 0.321910 0.666472 -vt 0.283425 0.678076 -vt 0.283425 0.666472 -vt 0.244940 0.678076 -vt 0.206454 0.666472 -vt 0.206454 0.678076 -vt 0.244940 0.666472 -vt 0.167969 0.126901 -vt 0.129483 0.126888 -vt 0.129487 0.115284 -vt 0.090998 0.126875 -vt 0.091002 0.115271 -vt 0.052513 0.126861 -vt 0.052517 0.115257 -vt 0.014028 0.126848 -vt 0.629793 0.127059 -vt 0.591308 0.127046 -vt 0.591312 0.115442 -vt 0.552822 0.127033 -vt 0.552826 0.115429 -vt 0.514337 0.127020 -vt 0.514341 0.115416 -vt 0.475851 0.127007 -vt 0.475855 0.115403 -vt 0.437366 0.126994 -vt 0.437370 0.115389 -vt 0.398881 0.126980 -vt 0.398885 0.115376 -vt 0.360395 0.126967 -vt 0.321910 0.126954 -vt 0.321914 0.115350 -vt 0.283425 0.126941 -vt 0.283429 0.115337 -vt 0.244939 0.126927 -vt 0.206458 0.115310 -vt 0.206454 0.126914 -vt 0.244943 0.115323 -vt 0.421520 0.957030 -vt 0.466797 0.957030 -vt 0.466797 0.968634 -vt 0.871616 0.373560 -vt 0.826340 0.373560 -vt 0.826340 0.361956 -vt 0.781063 0.373560 -vt 0.781063 0.361956 -vt 0.455191 0.880859 -vt 0.409914 0.880859 -vt 0.409914 0.869255 -vt 0.364637 0.880859 -vt 0.364637 0.869255 -vt 0.014028 0.957029 -vt 0.059305 0.957029 -vt 0.059305 0.968633 -vt 0.104582 0.957029 -vt 0.104582 0.968633 -vt 0.149858 0.957029 -vt 0.195135 0.957029 -vt 0.195135 0.968633 -vt 0.240412 0.957029 -vt 0.240412 0.968633 -vt 0.285689 0.957029 -vt 0.285689 0.968633 -vt 0.330966 0.957029 -vt 0.376243 0.957029 -vt 0.421520 0.968634 -vt 0.330966 0.968634 -vt 0.772129 0.917369 -vt 0.817406 0.917369 -vt 0.817406 0.928973 -vt 0.573800 0.880859 -vt 0.528523 0.880859 -vt 0.528523 0.869255 -vt 0.483246 0.880859 -vt 0.483246 0.869255 -vt 0.961341 0.836081 -vt 0.916064 0.836081 -vt 0.916064 0.824477 -vt 0.870787 0.836081 -vt 0.870787 0.824477 -vt 0.364637 0.928973 -vt 0.364637 0.917369 -vt 0.409914 0.917369 -vt 0.455191 0.917369 -vt 0.455191 0.928973 -vt 0.500467 0.917369 -vt 0.500467 0.928973 -vt 0.545744 0.917369 -vt 0.545744 0.928973 -vt 0.591021 0.917369 -vt 0.591021 0.928973 -vt 0.636298 0.917369 -vt 0.636298 0.928973 -vt 0.681575 0.917369 -vt 0.681575 0.928973 -vt 0.726852 0.917369 -vt 0.772129 0.928973 -vt 0.164597 0.057593 -vt 0.132903 0.057583 -vt 0.132918 0.014067 -vt 0.126111 0.057580 -vt 0.094418 0.057569 -vt 0.094433 0.014054 -vt 0.087626 0.057567 -vt 0.055933 0.057556 -vt 0.055947 0.014041 -vt 0.049141 0.057554 -vt 0.017447 0.057543 -vt 0.017462 0.014028 -vt 0.626436 0.014236 -vt 0.626421 0.057751 -vt 0.594727 0.057740 -vt 0.587936 0.057738 -vt 0.556242 0.057727 -vt 0.556257 0.014212 -vt 0.549450 0.057725 -vt 0.517756 0.057714 -vt 0.517771 0.014199 -vt 0.510965 0.057712 -vt 0.479271 0.057701 -vt 0.479286 0.014186 -vt 0.472494 0.014183 -vt 0.472479 0.057699 -vt 0.440786 0.057688 -vt 0.434009 0.014170 -vt 0.433994 0.057686 -vt 0.402300 0.057675 -vt 0.395524 0.014157 -vt 0.395509 0.057672 -vt 0.363815 0.057662 -vt 0.357023 0.057659 -vt 0.325329 0.057648 -vt 0.325344 0.014133 -vt 0.318538 0.057646 -vt 0.286844 0.057635 -vt 0.286859 0.014120 -vt 0.280053 0.057633 -vt 0.248359 0.057622 -vt 0.248374 0.014107 -vt 0.203082 0.057607 -vt 0.171388 0.057596 -vt 0.171403 0.014081 -vt 0.241567 0.057620 -vt 0.209873 0.057609 -vt 0.209888 0.014094 -vt 0.360399 0.115363 -vt 0.014032 0.115244 -vt 0.167973 0.115297 -vt 0.357000 0.722132 -vt 0.286821 0.722132 -vt 0.248335 0.722132 -vt 0.209850 0.722132 -vt 0.171365 0.722132 -vt 0.132880 0.722132 -vt 0.094394 0.722132 -vt 0.055909 0.722132 -vt 0.017424 0.722132 -vt 0.626398 0.722133 -vt 0.587913 0.722133 -vt 0.549427 0.722132 -vt 0.510942 0.722132 -vt 0.472456 0.722132 -vt 0.433971 0.722132 -vt 0.395485 0.722132 -vt 0.336581 0.839581 -vt 0.247767 0.839581 -vt 0.251147 0.794430 -vt 0.323575 0.928973 -vt 0.260774 0.928973 -vt 0.251147 0.884731 -vt 0.333201 0.794430 -vt 0.260774 0.750188 -vt 0.333201 0.884731 -vt 0.918460 0.707029 -vt 0.829646 0.707029 -vt 0.833026 0.661878 -vt 0.905453 0.796421 -vt 0.842652 0.796421 -vt 0.833026 0.752179 -vt 0.915079 0.661878 -vt 0.842652 0.617636 -vt 0.915079 0.752179 -vt 0.089835 0.750188 -vt 0.099461 0.794430 -vt 0.017408 0.794430 -vt 0.099461 0.884731 -vt 0.017408 0.884731 -vt 0.014028 0.839581 -vt 0.102842 0.839581 -vt 0.089835 0.928973 -vt 0.027034 0.928973 -vt 0.798208 0.545339 -vt 0.716155 0.545336 -vt 0.712776 0.500185 -vt 0.801590 0.500188 -vt 0.716158 0.455035 -vt 0.788580 0.589580 -vt 0.725779 0.589578 -vt 0.788587 0.410796 -vt 0.798211 0.455038 -vt 0.801590 0.707029 -vt 0.712776 0.707029 -vt 0.716156 0.661878 -vt 0.788583 0.796421 -vt 0.725782 0.796421 -vt 0.716156 0.752179 -vt 0.788584 0.617636 -vt 0.798210 0.661878 -vt 0.798209 0.752179 -vt 0.905453 0.589578 -vt 0.842652 0.589578 -vt 0.833026 0.545336 -vt 0.915079 0.455035 -vt 0.833026 0.455035 -vt 0.842652 0.410793 -vt 0.918460 0.500186 -vt 0.915079 0.545336 -vt 0.829646 0.500186 -vt 0.866496 0.199357 -vt 0.784443 0.199357 -vt 0.794069 0.155115 -vt 0.869877 0.244508 -vt 0.866496 0.289658 -vt 0.784443 0.289658 -vt 0.781063 0.244507 -vt 0.856870 0.333900 -vt 0.794069 0.333900 -vt 0.216331 0.794430 -vt 0.219711 0.839581 -vt 0.130898 0.839581 -vt 0.206705 0.928973 -vt 0.143904 0.928973 -vt 0.134278 0.884731 -vt 0.134278 0.794430 -vt 0.143904 0.750188 -vt 0.216331 0.884731 -vt 0.129484 0.666472 -vt 0.591308 0.666472 -vt 0.514338 0.666472 -vt 0.398881 0.666472 -vt 0.629797 0.115455 -vt 0.871616 0.361956 -vt 0.455191 0.869255 -vt 0.014028 0.968633 -vt 0.149858 0.968633 -vt 0.376243 0.968634 -vt 0.573800 0.869255 -vt 0.961341 0.824477 -vt 0.409914 0.928973 -vt 0.726852 0.928973 -vt 0.164612 0.014078 -vt 0.126126 0.014065 -vt 0.087641 0.014052 -vt 0.049156 0.014039 -vt 0.594742 0.014225 -vt 0.587951 0.014223 -vt 0.549465 0.014210 -vt 0.510980 0.014196 -vt 0.440801 0.014172 -vt 0.402315 0.014159 -vt 0.363830 0.014146 -vt 0.357038 0.014144 -vt 0.318553 0.014131 -vt 0.280067 0.014118 -vt 0.203097 0.014091 -vt 0.241582 0.014104 -vt 0.325306 0.722132 -vt 0.318515 0.722132 -vt 0.280029 0.722132 -vt 0.241544 0.722132 -vt 0.203059 0.722132 -vt 0.164573 0.722132 -vt 0.126088 0.722132 -vt 0.087603 0.722132 -vt 0.049117 0.722132 -vt 0.594704 0.722133 -vt 0.556219 0.722133 -vt 0.517733 0.722132 -vt 0.479248 0.722132 -vt 0.440762 0.722132 -vt 0.402277 0.722132 -vt 0.363792 0.722132 -vt 0.323575 0.750188 -vt 0.905453 0.617636 -vt 0.027034 0.750188 -vt 0.725786 0.410793 -vt 0.725783 0.617636 -vt 0.905453 0.410793 -vt 0.856870 0.155115 -vt 0.206705 0.750188 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 -0.555600 -0.831500 -vn 0.000000 -0.555600 0.831500 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.068000 -0.997700 -vn 0.000000 0.068000 0.997700 -vn 0.000000 -0.054000 -0.998500 -vn 0.000000 -0.054000 0.998500 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.196300 0.000000 -0.980500 -vn 0.196300 -0.375200 -0.905900 -vn 0.196300 -0.693300 -0.693300 -vn 0.000000 -0.707100 -0.707100 -vn 0.196300 -0.905900 -0.375200 -vn 0.000000 -0.923900 -0.382700 -vn 0.196300 -0.980500 0.000000 -vn 0.196300 -0.905900 0.375200 -vn 0.196300 -0.693300 0.693300 -vn 0.000000 -0.707100 0.707100 -vn 0.196300 -0.375200 0.905900 -vn 0.196300 0.000000 0.980500 -vn 0.000000 0.000000 1.000000 -vn 0.196300 0.375200 0.905900 -vn 0.000000 0.382700 0.923900 -vn 0.196300 0.693300 0.693300 -vn 0.196300 0.905900 0.375200 -vn 0.000000 0.923900 0.382700 -vn 0.196300 0.980500 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.196300 0.905900 -0.375200 -vn 0.000000 0.923900 -0.382700 -vn 0.196300 0.693300 -0.693300 -vn 0.000000 0.382700 -0.923900 -vn 0.196300 0.375200 -0.905900 -vn 0.000000 0.707100 -0.707100 -vn 0.000000 -0.382700 -0.923900 -vn -0.149500 -0.378400 -0.913500 -vn -0.149500 -0.699100 -0.699100 -vn -0.149500 -0.913500 -0.378400 -vn 0.000000 -0.923900 0.382700 -vn -0.149500 -0.913500 0.378400 -vn -0.149500 -0.699100 0.699100 -vn 0.000000 -0.382700 0.923900 -vn -0.149500 -0.378400 0.913500 -vn -0.149500 0.000000 0.988700 -vn -0.149500 0.378400 0.913500 -vn 0.000000 0.707100 0.707100 -vn -0.149500 0.699100 0.699100 -vn -0.149600 0.988700 0.000000 -vn -0.149600 0.913500 -0.378400 -vn -0.149500 0.378400 -0.913500 -vn -0.149600 0.699100 -0.699100 -vn 0.665700 0.000000 -0.746200 -vn 0.599900 -0.188900 -0.777400 -vn -0.599900 -0.188900 -0.777400 -vn 0.913000 -0.393800 -0.106200 -vn 0.665700 -0.689400 -0.285500 -vn -0.665700 -0.689400 -0.285500 -vn 0.665700 -0.746200 0.000000 -vn -0.665700 -0.746200 0.000000 -vn 0.665700 -0.689400 0.285500 -vn -0.665700 -0.689400 0.285500 -vn 0.913000 -0.393800 0.106200 -vn -0.913000 -0.393800 0.106200 -vn 0.599900 -0.188900 0.777400 -vn 0.665700 0.000000 0.746200 -vn -0.665700 0.000000 0.746200 -vn 0.665700 0.285500 0.689400 -vn -0.665700 0.285500 0.689400 -vn 0.665700 0.527600 0.527600 -vn 0.665700 0.689400 0.285500 -vn -0.665700 0.689400 0.285500 -vn 0.665700 0.746200 0.000000 -vn -0.665700 0.746200 0.000000 -vn 0.665700 0.689400 -0.285500 -vn -0.665700 0.689400 -0.285500 -vn 0.665700 0.527600 -0.527600 -vn 0.665700 0.285500 -0.689400 -vn -0.665700 0.000000 -0.746200 -vn -0.665700 0.527600 -0.527600 -vn -0.599900 -0.188900 0.777400 -vn -0.665700 0.527600 0.527600 -vn -0.155200 0.000000 -0.987900 -vn -0.155200 -0.378000 -0.912700 -vn -0.665700 -0.285500 -0.689400 -vn -0.155200 -0.698500 -0.698500 -vn -0.665700 -0.527600 -0.527600 -vn -0.155200 -0.912700 -0.378000 -vn -0.155200 -0.987900 0.000000 -vn -0.155200 -0.912700 0.378000 -vn -0.155200 -0.698500 0.698500 -vn -0.665700 -0.527600 0.527600 -vn -0.155200 -0.378000 0.912700 -vn -0.665700 -0.285500 0.689400 -vn -0.155200 0.000000 0.987900 -vn -0.155200 0.378000 0.912700 -vn -0.155200 0.698500 0.698500 -vn -0.155200 0.912700 0.378000 -vn -0.155200 0.987900 0.000000 -vn -0.155200 0.912700 -0.378000 -vn -0.155200 0.698500 -0.698500 -vn -0.155200 0.378000 -0.912700 -vn -0.665700 0.285500 -0.689400 -vn -0.149600 0.913500 0.378400 -vn -0.149500 -0.988700 0.000000 -vn -0.149500 0.000000 -0.988700 -vn 0.803800 0.549600 0.227600 -vn 0.803800 0.549600 -0.227600 -vn 0.803800 0.420600 -0.420600 -vn 0.803800 0.227600 -0.549600 -vn 0.803800 0.000000 -0.594900 -vn 0.803800 -0.227600 -0.549600 -vn 0.803800 -0.420600 -0.420600 -vn 0.803800 -0.549600 -0.227600 -vn 0.803800 -0.594900 0.000000 -vn 0.803800 -0.549600 0.227600 -vn 0.803800 -0.420600 0.420600 -vn 0.803800 -0.227600 0.549600 -vn 0.803800 0.000000 0.594900 -vn 0.803800 0.227600 0.549600 -vn 0.803800 0.420600 0.420600 -vn -0.366800 0.657800 -0.657800 -vn 0.555600 0.831400 0.000000 -vn 0.555600 0.587900 -0.587900 -vn 0.366800 0.657800 -0.657800 -vn -0.366800 0.930300 0.000000 -vn -0.555600 0.587900 -0.587900 -vn 0.366800 0.930300 0.000000 -vn -0.366800 0.000000 -0.930300 -vn 0.555600 0.000000 -0.831400 -vn 0.366800 0.000000 -0.930300 -vn -0.555600 0.000000 -0.831400 -vn -0.366800 -0.657800 -0.657800 -vn 0.366800 -0.657800 -0.657800 -vn 0.555600 -0.587900 -0.587900 -vn 0.366800 -0.930300 0.000000 -vn -0.366800 -0.930300 0.000000 -vn 0.555600 -0.831400 0.000000 -vn -0.555600 -0.587900 -0.587900 -vn -0.366800 -0.657800 0.657800 -vn 0.555600 -0.587900 0.587900 -vn 0.366800 -0.657800 0.657800 -vn -0.555600 -0.831400 0.000000 -vn 0.555600 0.000000 0.831400 -vn 0.366800 0.000000 0.930300 -vn -0.366800 0.000000 0.930300 -vn -0.555600 0.000000 0.831400 -vn -0.366800 0.657800 0.657800 -vn -0.555600 0.587900 0.587900 -vn 0.366800 0.657800 0.657800 -vn 0.555600 0.587900 0.587900 -vn -0.555600 0.831400 0.000000 -vn -0.913000 -0.393800 -0.106200 -vn 0.803800 0.594900 0.000000 -vn -0.555600 -0.587900 0.587900 -s off -f 83/1/1 87/2/1 95/3/1 -f 100/4/2 102/5/2 101/6/2 -f 110/7/3 112/8/3 111/9/3 -f 118/10/4 110/11/4 126/12/4 -f 115/13/1 119/14/1 127/15/1 -f 131/16/2 132/17/2 134/18/2 -f 141/19/3 142/20/3 144/21/3 -f 150/22/4 142/23/4 158/24/4 -f 143/25/1 151/26/1 159/27/1 -f 86/28/4 78/29/4 70/30/4 -f 163/31/4 132/32/4 134/33/4 -f 168/34/4 167/35/4 142/36/4 -f 173/37/1 111/38/1 109/39/1 -f 131/40/5 132/41/5 163/42/5 -f 165/43/1 143/44/1 141/45/1 -f 165/46/6 168/47/6 144/48/6 -f 162/49/1 161/50/1 133/51/1 -f 141/52/7 142/53/7 167/54/7 -f 164/55/8 134/56/8 133/57/8 -f 171/58/4 100/59/4 102/60/4 -f 176/61/4 175/62/4 110/63/4 -f 170/64/1 169/65/1 101/66/1 -f 164/55/9 161/67/9 162/68/9 -f 172/69/8 102/70/8 101/71/8 -f 99/72/5 100/73/5 171/74/5 -f 173/75/6 176/76/6 112/77/6 -f 109/78/7 110/79/7 175/80/7 -f 168/47/9 165/46/9 166/81/9 -f 176/76/9 173/75/9 174/82/9 -f 172/69/9 169/83/9 170/84/9 -f 95/3/1 65/85/1 67/86/1 -f 67/86/1 69/87/1 71/88/1 -f 71/88/1 73/89/1 75/90/1 -f 75/90/1 77/91/1 71/88/1 -f 79/92/1 81/93/1 83/1/1 -f 83/1/1 85/94/1 87/2/1 -f 87/2/1 89/95/1 91/96/1 -f 91/96/1 93/97/1 87/2/1 -f 95/3/1 67/86/1 79/92/1 -f 71/88/1 77/91/1 79/92/1 -f 79/92/1 83/1/1 95/3/1 -f 87/2/1 93/97/1 95/3/1 -f 67/86/1 71/88/1 79/92/1 -f 99/98/2 100/4/2 101/6/2 -f 109/99/3 110/7/3 111/9/3 -f 102/100/4 100/101/4 98/102/4 -f 98/102/4 128/103/4 126/12/4 -f 126/12/4 124/104/4 118/10/4 -f 122/105/4 120/106/4 118/10/4 -f 118/10/4 116/107/4 110/11/4 -f 114/108/4 112/109/4 110/11/4 -f 110/11/4 108/110/4 106/111/4 -f 106/111/4 104/112/4 110/11/4 -f 102/100/4 98/102/4 126/12/4 -f 124/104/4 122/105/4 118/10/4 -f 116/107/4 114/108/4 110/11/4 -f 110/11/4 104/112/4 102/100/4 -f 102/100/4 126/12/4 110/11/4 -f 127/15/1 97/113/1 99/114/1 -f 99/114/1 101/115/1 103/116/1 -f 103/116/1 105/117/1 107/118/1 -f 107/118/1 109/119/1 111/120/1 -f 111/120/1 113/121/1 115/13/1 -f 115/13/1 117/122/1 119/14/1 -f 119/14/1 121/123/1 123/124/1 -f 123/124/1 125/125/1 127/15/1 -f 127/15/1 99/114/1 103/116/1 -f 103/116/1 107/118/1 111/120/1 -f 111/120/1 115/13/1 127/15/1 -f 119/14/1 123/124/1 127/15/1 -f 127/15/1 103/116/1 111/120/1 -f 133/126/2 131/16/2 134/18/2 -f 143/127/3 141/19/3 144/21/3 -f 134/128/4 132/129/4 130/130/4 -f 130/130/4 160/131/4 158/24/4 -f 158/24/4 156/132/4 150/22/4 -f 154/133/4 152/134/4 150/22/4 -f 150/22/4 148/135/4 142/23/4 -f 146/136/4 144/137/4 142/23/4 -f 142/23/4 140/138/4 138/139/4 -f 138/139/4 136/140/4 142/23/4 -f 134/128/4 130/130/4 158/24/4 -f 156/132/4 154/133/4 150/22/4 -f 148/135/4 146/136/4 142/23/4 -f 142/23/4 136/140/4 134/128/4 -f 134/128/4 158/24/4 142/23/4 -f 159/27/1 129/141/1 131/142/1 -f 131/142/1 133/143/1 159/27/1 -f 135/144/1 137/145/1 139/146/1 -f 139/146/1 141/147/1 135/144/1 -f 143/25/1 145/148/1 147/149/1 -f 147/149/1 149/150/1 151/26/1 -f 151/26/1 153/151/1 155/152/1 -f 155/152/1 157/153/1 159/27/1 -f 159/27/1 133/143/1 135/144/1 -f 135/144/1 141/147/1 143/25/1 -f 143/25/1 147/149/1 151/26/1 -f 151/26/1 155/152/1 159/27/1 -f 159/27/1 135/144/1 143/25/1 -f 70/30/4 68/154/4 66/155/4 -f 66/155/4 96/156/4 94/157/4 -f 94/157/4 92/158/4 90/159/4 -f 90/159/4 88/160/4 86/28/4 -f 86/28/4 84/161/4 78/29/4 -f 82/162/4 80/163/4 78/29/4 -f 78/29/4 76/164/4 70/30/4 -f 74/165/4 72/166/4 70/30/4 -f 70/30/4 66/155/4 94/157/4 -f 94/157/4 90/159/4 70/30/4 -f 84/161/4 82/162/4 78/29/4 -f 76/164/4 74/165/4 70/30/4 -f 70/30/4 90/159/4 86/28/4 -f 164/167/4 163/31/4 134/33/4 -f 144/168/4 168/34/4 142/36/4 -f 174/169/1 173/37/1 109/39/1 -f 162/68/5 131/40/5 163/42/5 -f 166/170/1 165/43/1 141/45/1 -f 143/171/6 165/46/6 144/48/6 -f 131/172/1 162/49/1 133/51/1 -f 166/81/7 141/52/7 167/54/7 -f 161/67/8 164/55/8 133/57/8 -f 172/173/4 171/58/4 102/60/4 -f 112/174/4 176/61/4 110/63/4 -f 99/175/1 170/64/1 101/66/1 -f 163/42/9 164/55/9 162/68/9 -f 169/83/8 172/69/8 101/71/8 -f 170/84/5 99/72/5 171/74/5 -f 111/176/6 173/75/6 112/77/6 -f 174/82/7 109/78/7 175/80/7 -f 167/54/9 168/47/9 166/81/9 -f 175/80/9 176/76/9 174/82/9 -f 171/74/9 172/69/9 170/84/9 -s 1 -f 1/177/10 2/178/11 4/179/12 -f 4/179/12 6/180/13 5/181/14 -f 6/180/13 8/182/15 7/183/16 -f 8/182/15 10/184/17 9/185/9 -f 9/186/9 10/187/17 12/188/18 -f 12/188/18 14/189/19 13/190/20 -f 13/190/20 14/189/19 16/191/21 -f 16/191/21 18/192/22 17/193/23 -f 18/192/22 20/194/24 19/195/25 -f 19/195/25 20/194/24 22/196/26 -f 22/196/26 24/197/27 23/198/28 -f 24/197/27 26/199/29 25/200/30 -f 25/200/30 26/199/29 28/201/31 -f 27/202/32 28/201/31 30/203/33 -f 31/204/34 32/205/35 2/178/11 -f 29/206/36 30/203/33 32/205/35 -f 34/207/10 36/208/37 35/209/38 -f 36/208/37 38/210/14 37/211/39 -f 37/211/39 38/210/14 40/212/16 -f 39/213/40 40/212/16 42/214/9 -f 42/215/9 44/216/41 43/217/42 -f 44/216/41 46/218/20 45/219/43 -f 46/218/20 48/220/44 47/221/45 -f 48/220/44 50/222/23 49/223/46 -f 50/222/23 52/224/25 51/225/47 -f 51/225/47 52/224/25 54/226/48 -f 53/227/49 54/226/48 56/228/28 -f 56/228/28 58/229/30 57/230/50 -f 57/230/50 58/229/30 60/231/32 -f 59/232/51 60/231/32 62/233/36 -f 63/234/52 64/235/34 34/207/10 -f 61/236/53 62/233/36 64/235/34 -f 98/237/54 100/238/55 99/239/56 -f 102/240/57 104/241/58 103/242/59 -f 104/241/58 106/243/60 105/244/61 -f 106/245/60 108/246/62 107/247/63 -f 108/246/62 110/248/64 109/249/65 -f 112/250/66 114/251/67 113/252/68 -f 114/251/67 116/253/69 115/254/70 -f 115/254/70 116/253/69 118/255/71 -f 118/255/71 120/256/72 119/257/73 -f 120/256/72 122/258/74 121/259/75 -f 122/258/74 124/260/76 123/261/77 -f 123/261/77 124/260/76 126/262/78 -f 128/263/79 98/237/54 97/264/80 -f 125/265/81 126/262/78 128/263/79 -f 130/266/54 132/267/55 131/268/56 -f 134/269/57 136/270/58 135/271/59 -f 136/270/58 138/272/60 137/273/61 -f 138/274/60 140/275/62 139/276/63 -f 140/275/62 142/277/64 141/278/65 -f 143/279/82 144/280/66 146/281/67 -f 146/281/67 148/282/69 147/283/70 -f 148/282/69 150/284/71 149/285/83 -f 150/284/71 152/286/72 151/287/73 -f 152/286/72 154/288/74 153/289/75 -f 154/288/74 156/290/76 155/291/77 -f 156/290/76 158/292/78 157/293/81 -f 160/294/79 130/266/54 129/295/80 -f 157/293/81 158/292/78 160/294/79 -f 177/296/84 178/297/85 67/298/86 -f 178/299/85 179/300/87 69/301/88 -f 179/302/87 180/303/89 71/304/59 -f 180/305/89 181/306/90 73/307/61 -f 73/308/61 181/309/90 182/310/91 -f 182/311/91 183/312/92 77/313/93 -f 183/314/92 184/315/94 79/316/95 -f 184/317/94 185/318/96 81/319/68 -f 81/320/68 185/321/96 186/322/97 -f 83/323/70 186/324/97 187/325/98 -f 85/326/83 187/327/98 188/328/99 -f 188/329/99 189/330/100 89/331/75 -f 189/332/100 190/333/101 91/334/77 -f 190/335/101 191/336/102 93/337/81 -f 192/338/103 177/339/84 65/340/80 -f 191/341/102 192/342/103 95/343/104 -f 190/335/101 59/232/51 61/236/53 -f 59/232/51 190/333/101 189/332/100 -f 57/230/50 189/330/100 188/329/99 -f 53/227/49 55/344/105 188/328/99 -f 51/225/47 53/227/49 187/325/98 -f 49/223/46 51/225/47 186/322/97 -f 47/221/45 49/223/46 185/318/96 -f 45/219/43 47/221/45 184/315/94 -f 43/217/42 45/219/43 183/312/92 -f 43/217/42 182/310/91 181/309/90 -f 39/213/40 41/345/106 181/306/90 -f 39/213/40 180/303/89 179/302/87 -f 37/211/39 179/300/87 178/299/85 -f 35/209/38 178/297/85 177/296/84 -f 33/346/107 177/339/84 192/338/103 -f 63/234/52 192/342/103 191/341/102 -f 26/199/29 24/197/27 88/347/108 -f 92/348/109 28/201/31 26/199/29 -f 94/349/110 30/203/33 28/201/31 -f 96/350/111 32/205/35 30/203/33 -f 66/351/112 2/178/11 32/205/35 -f 68/352/113 4/179/12 2/178/11 -f 70/353/114 6/180/13 4/179/12 -f 72/354/115 8/182/15 6/180/13 -f 74/355/116 10/184/17 8/182/15 -f 12/188/18 10/187/17 74/356/116 -f 14/189/19 12/188/18 76/357/117 -f 16/191/21 14/189/19 78/358/118 -f 18/192/22 16/191/21 80/359/119 -f 20/194/24 18/192/22 82/360/120 -f 22/196/26 20/194/24 84/361/121 -f 24/197/27 22/196/26 86/362/122 -f 195/363/30 200/364/36 201/365/123 -f 193/366/124 198/367/125 199/368/126 -f 196/369/127 201/365/123 202/370/128 -f 194/371/129 199/368/126 200/364/36 -f 200/372/36 205/373/10 206/374/130 -f 198/375/125 203/376/131 204/377/132 -f 201/378/123 206/374/130 207/379/133 -f 199/380/126 204/377/132 205/373/10 -f 207/381/133 206/382/130 211/383/134 -f 204/384/132 209/385/135 210/386/14 -f 205/387/10 210/386/14 211/383/134 -f 204/384/132 203/388/131 208/389/136 -f 209/390/135 214/391/137 215/392/9 -f 210/393/14 215/392/9 216/394/138 -f 209/390/135 208/395/136 213/396/139 -f 212/397/140 211/398/134 216/394/138 -f 215/399/9 220/400/20 221/401/141 -f 213/402/139 218/403/142 219/404/143 -f 217/405/144 216/406/138 221/401/141 -f 215/399/9 214/407/137 219/404/143 -f 218/408/142 223/409/145 224/410/146 -f 221/411/141 226/412/147 227/413/148 -f 220/414/20 219/415/143 224/410/146 -f 220/414/20 225/416/23 226/412/147 -f 226/417/147 231/418/149 232/419/150 -f 225/420/23 224/421/146 229/422/151 -f 226/417/147 225/420/23 230/423/48 -f 223/424/145 228/425/152 229/422/151 -f 231/426/149 230/427/48 195/428/30 -f 228/429/152 193/430/124 194/431/129 -f 231/426/149 196/432/127 197/433/153 -f 229/434/151 194/431/129 195/428/30 -f 3/435/37 1/177/10 4/179/12 -f 3/435/37 4/179/12 5/181/14 -f 5/181/14 6/180/13 7/183/16 -f 7/183/16 8/182/15 9/185/9 -f 11/436/41 9/186/9 12/188/18 -f 11/436/41 12/188/18 13/190/20 -f 15/437/44 13/190/20 16/191/21 -f 15/437/44 16/191/21 17/193/23 -f 17/193/23 18/192/22 19/195/25 -f 21/438/48 19/195/25 22/196/26 -f 21/438/48 22/196/26 23/198/28 -f 23/198/28 24/197/27 25/200/30 -f 27/202/32 25/200/30 28/201/31 -f 29/206/36 27/202/32 30/203/33 -f 1/177/10 31/204/34 2/178/11 -f 31/204/34 29/206/36 32/205/35 -f 33/346/107 34/207/10 35/209/38 -f 35/209/38 36/208/37 37/211/39 -f 39/213/40 37/211/39 40/212/16 -f 41/345/106 39/213/40 42/214/9 -f 41/439/106 42/215/9 43/217/42 -f 43/217/42 44/216/41 45/219/43 -f 45/219/43 46/218/20 47/221/45 -f 47/221/45 48/220/44 49/223/46 -f 49/223/46 50/222/23 51/225/47 -f 53/227/49 51/225/47 54/226/48 -f 55/344/105 53/227/49 56/228/28 -f 55/344/105 56/228/28 57/230/50 -f 59/232/51 57/230/50 60/231/32 -f 61/236/53 59/232/51 62/233/36 -f 33/346/107 63/234/52 34/207/10 -f 63/234/52 61/236/53 64/235/34 -f 97/264/80 98/237/54 99/239/56 -f 101/440/154 102/240/57 103/242/59 -f 103/242/59 104/241/58 105/244/61 -f 105/441/61 106/245/60 107/247/63 -f 107/247/63 108/246/62 109/249/65 -f 111/442/82 112/250/66 113/252/68 -f 113/252/68 114/251/67 115/254/70 -f 117/443/83 115/254/70 118/255/71 -f 117/443/83 118/255/71 119/257/73 -f 119/257/73 120/256/72 121/259/75 -f 121/259/75 122/258/74 123/261/77 -f 125/265/81 123/261/77 126/262/78 -f 127/444/104 128/263/79 97/264/80 -f 127/444/104 125/265/81 128/263/79 -f 129/295/80 130/266/54 131/268/56 -f 133/445/154 134/269/57 135/271/59 -f 135/271/59 136/270/58 137/273/61 -f 137/446/61 138/274/60 139/276/63 -f 139/276/63 140/275/62 141/278/65 -f 145/447/68 143/279/82 146/281/67 -f 145/447/68 146/281/67 147/283/70 -f 147/283/70 148/282/69 149/285/83 -f 149/285/83 150/284/71 151/287/73 -f 151/287/73 152/286/72 153/289/75 -f 153/289/75 154/288/74 155/291/77 -f 155/291/77 156/290/76 157/293/81 -f 159/448/104 160/294/79 129/295/80 -f 159/448/104 157/293/81 160/294/79 -f 65/449/80 177/296/84 67/298/86 -f 67/450/86 178/299/85 69/301/88 -f 69/451/88 179/302/87 71/304/59 -f 71/452/59 180/305/89 73/307/61 -f 75/453/63 73/308/61 182/310/91 -f 75/454/63 182/311/91 77/313/93 -f 77/455/93 183/314/92 79/316/95 -f 79/456/95 184/317/94 81/319/68 -f 83/457/70 81/320/68 186/322/97 -f 85/458/83 83/323/70 187/325/98 -f 87/459/73 85/326/83 188/328/99 -f 87/460/73 188/329/99 89/331/75 -f 89/461/75 189/332/100 91/334/77 -f 91/462/77 190/335/101 93/337/81 -f 95/463/104 192/338/103 65/340/80 -f 93/464/81 191/341/102 95/343/104 -f 191/336/102 190/335/101 61/236/53 -f 57/230/50 59/232/51 189/332/100 -f 55/344/105 57/230/50 188/329/99 -f 187/327/98 53/227/49 188/328/99 -f 186/324/97 51/225/47 187/325/98 -f 185/321/96 49/223/46 186/322/97 -f 184/317/94 47/221/45 185/318/96 -f 183/314/92 45/219/43 184/315/94 -f 182/311/91 43/217/42 183/312/92 -f 41/439/106 43/217/42 181/309/90 -f 180/305/89 39/213/40 181/306/90 -f 37/211/39 39/213/40 179/302/87 -f 35/209/38 37/211/39 178/299/85 -f 33/346/107 35/209/38 177/296/84 -f 63/234/52 33/346/107 192/338/103 -f 61/236/53 63/234/52 191/341/102 -f 90/465/155 26/199/29 88/347/108 -f 90/466/155 92/348/109 26/199/29 -f 92/467/109 94/349/110 28/201/31 -f 94/468/110 96/350/111 30/203/33 -f 96/469/111 66/351/112 32/205/35 -f 66/470/112 68/352/113 2/178/11 -f 68/471/113 70/353/114 4/179/12 -f 70/472/114 72/354/115 6/180/13 -f 72/473/115 74/355/116 8/182/15 -f 76/474/117 12/188/18 74/356/116 -f 78/475/118 14/189/19 76/357/117 -f 80/476/119 16/191/21 78/358/118 -f 82/477/120 18/192/22 80/359/119 -f 84/478/121 20/194/24 82/360/120 -f 86/479/122 22/196/26 84/361/121 -f 88/480/108 24/197/27 86/362/122 -f 196/369/127 195/363/30 201/365/123 -f 194/371/129 193/366/124 199/368/126 -f 197/481/153 196/369/127 202/370/128 -f 195/363/30 194/371/129 200/364/36 -f 201/378/123 200/372/36 206/374/130 -f 199/380/126 198/375/125 204/377/132 -f 202/482/128 201/378/123 207/379/133 -f 200/372/36 199/380/126 205/373/10 -f 212/483/140 207/381/133 211/383/134 -f 205/387/10 204/384/132 210/386/14 -f 206/382/130 205/387/10 211/383/134 -f 209/385/135 204/384/132 208/389/136 -f 210/393/14 209/390/135 215/392/9 -f 211/398/134 210/393/14 216/394/138 -f 214/391/137 209/390/135 213/396/139 -f 217/484/144 212/397/140 216/394/138 -f 216/406/138 215/399/9 221/401/141 -f 214/407/137 213/402/139 219/404/143 -f 222/485/156 217/405/144 221/401/141 -f 220/400/20 215/399/9 219/404/143 -f 219/415/143 218/408/142 224/410/146 -f 222/486/156 221/411/141 227/413/148 -f 225/416/23 220/414/20 224/410/146 -f 221/411/141 220/414/20 226/412/147 -f 227/487/148 226/417/147 232/419/150 -f 230/423/48 225/420/23 229/422/151 -f 231/418/149 226/417/147 230/423/48 -f 224/421/146 223/424/145 229/422/151 -f 196/432/127 231/426/149 195/428/30 -f 229/434/151 228/429/152 194/431/129 -f 232/488/150 231/426/149 197/433/153 -f 230/427/48 229/434/151 195/428/30 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj new file mode 100644 index 000000000..2bb100bbd --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj @@ -0,0 +1,1366 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_curve_wide.blend' +# www.blender.org +o Plane.001 +v -1.312500 0.062500 0.500000 +v -1.312500 0.187500 0.500000 +v -1.250000 0.062500 0.500000 +v -1.250000 0.187500 0.500000 +v 0.250000 0.062500 0.500000 +v 0.312499 0.062500 0.500000 +v 0.312499 0.187500 0.500000 +v 0.250000 0.187500 0.500000 +v -1.502685 0.000000 0.251008 +v 0.489705 0.000000 0.076696 +v -1.535368 0.000000 -0.122565 +v 0.457022 0.000000 -0.296877 +v -1.535368 0.062500 -0.122565 +v -1.502685 0.062500 0.251008 +v 0.489705 0.062500 0.076696 +v 0.457022 0.062500 -0.296877 +v 0.405654 0.125000 -0.166905 +v 0.094343 0.125000 -0.139669 +v 0.416548 0.125000 -0.042381 +v 0.105237 0.125000 -0.015145 +v 0.405654 0.062500 -0.166905 +v 0.094343 0.062500 -0.139669 +v 0.416548 0.062500 -0.042381 +v 0.105237 0.062500 -0.015145 +v -1.451317 0.062500 0.121036 +v -1.140006 0.062500 0.093800 +v -1.462212 0.062500 -0.003488 +v -1.150901 0.062500 -0.030724 +v -1.451317 0.125000 0.121036 +v -1.140006 0.125000 0.093800 +v -1.462212 0.125000 -0.003488 +v -1.150901 0.125000 -0.030724 +v -6.500000 0.187500 -6.249998 +v -6.500000 0.187500 -6.312497 +v -6.500000 0.062500 -6.312497 +v -6.500000 0.062500 -6.249998 +v -6.500000 0.187500 -4.749999 +v -6.500000 0.062500 -4.749999 +v -6.500000 0.187500 -4.687499 +v -6.500000 0.062500 -4.687499 +v -5.599200 0.187500 -4.608689 +v -5.588348 0.187500 -4.670239 +v -5.588348 0.062500 -4.670239 +v -5.599200 0.062500 -4.608689 +v -5.327875 0.062500 -6.147450 +v -5.327875 0.187500 -6.147450 +v -5.317022 0.062500 -6.209000 +v -5.317022 0.187500 -6.209000 +v -4.191364 0.187500 -5.842923 +v -4.169989 0.187500 -5.901654 +v -4.169989 0.062500 -5.901654 +v -4.191364 0.062500 -5.842923 +v -4.704395 0.187500 -4.433385 +v -4.704395 0.062500 -4.433385 +v -4.725770 0.187500 -4.374655 +v -4.725770 0.062500 -4.374655 +v -3.906250 0.187500 -3.992507 +v -3.875001 0.187500 -4.046633 +v -3.875001 0.062500 -4.046633 +v -3.906250 0.062500 -3.992507 +v -3.125000 0.062500 -5.345670 +v -3.125000 0.187500 -5.345670 +v -3.093751 0.062500 -5.399796 +v -3.093751 0.187500 -5.399796 +v -2.161184 0.187500 -4.670798 +v -2.121011 0.187500 -4.718676 +v -2.121011 0.062500 -4.718676 +v -2.161184 0.062500 -4.670798 +v -3.125366 0.187500 -3.521733 +v -3.125366 0.062500 -3.521733 +v -3.165539 0.187500 -3.473855 +v -3.165539 0.062500 -3.473855 +v -2.526145 0.187500 -2.834461 +v -2.478267 0.187500 -2.874635 +v -2.478267 0.062500 -2.874635 +v -2.526145 0.062500 -2.834461 +v -1.329201 0.062500 -3.838815 +v -1.329201 0.187500 -3.838815 +v -1.281323 0.062500 -3.878989 +v -1.281323 0.187500 -3.878989 +v -0.654329 0.187500 -2.874999 +v -0.600204 0.187500 -2.906249 +v -0.600204 0.062500 -2.906249 +v -0.654329 0.062500 -2.874999 +v -1.953367 0.187500 -2.125000 +v -1.953367 0.062500 -2.125000 +v -2.007493 0.187500 -2.093750 +v -2.007493 0.062500 -2.093750 +v -1.625344 0.187500 -1.274230 +v -1.566614 0.187500 -1.295606 +v -1.566614 0.062500 -1.295606 +v -1.625344 0.062500 -1.274230 +v -0.157075 0.062500 -1.808635 +v -0.157075 0.187500 -1.808635 +v -0.098345 0.062500 -1.830012 +v -0.098345 0.187500 -1.830012 +v 0.147452 0.187500 -0.672125 +v 0.209002 0.187500 -0.682978 +v 0.209002 0.062500 -0.682978 +v 0.147452 0.062500 -0.672125 +v -1.329760 0.187500 -0.411653 +v -1.329760 0.062500 -0.411653 +v -1.391310 0.187500 -0.400800 +v -1.391310 0.062500 -0.400800 +v -1.621842 0.000000 -0.612984 +v 0.310009 0.000000 -1.130622 +v -1.718900 0.000000 -0.975206 +v 0.212953 0.000000 -1.492844 +v -1.718900 0.062500 -0.975206 +v -1.621842 0.062500 -0.612984 +v 0.310009 0.062500 -1.130622 +v 0.212953 0.062500 -1.492844 +v 0.184934 0.125000 -1.355928 +v -0.116918 0.125000 -1.275047 +v 0.217287 0.125000 -1.235187 +v -0.084565 0.125000 -1.154306 +v 0.184934 0.062500 -1.355928 +v -0.116918 0.062500 -1.275047 +v 0.217287 0.062500 -1.235187 +v -0.084565 0.062500 -1.154306 +v -1.593824 0.062500 -0.749901 +v -1.291972 0.062500 -0.830782 +v -1.626177 0.062500 -0.870642 +v -1.324325 0.062500 -0.951523 +v -1.593824 0.125000 -0.749901 +v -1.291972 0.125000 -0.830782 +v -1.626177 0.125000 -0.870642 +v -1.324325 0.125000 -0.951523 +v -1.889220 0.000000 -1.443159 +v -0.076604 0.000000 -2.288395 +v -2.047702 0.000000 -1.783024 +v -0.235086 0.000000 -2.628261 +v -2.047702 0.062500 -1.783024 +v -1.889220 0.062500 -1.443159 +v -0.076604 0.062500 -2.288395 +v -0.235086 0.062500 -2.628261 +v -0.238903 0.125000 -2.488559 +v -0.522124 0.125000 -2.356490 +v -0.186076 0.125000 -2.375270 +v -0.469297 0.125000 -2.243202 +v -0.238903 0.062500 -2.488559 +v -0.522124 0.062500 -2.356490 +v -0.186076 0.062500 -2.375270 +v -0.469297 0.062500 -2.243202 +v -1.885403 0.062500 -1.582861 +v -1.602182 0.062500 -1.714929 +v -1.938231 0.062500 -1.696149 +v -1.655010 0.062500 -1.828217 +v -1.885403 0.125000 -1.582861 +v -1.602182 0.125000 -1.714929 +v -1.938231 0.125000 -1.696149 +v -1.655010 0.125000 -1.828217 +v -2.296694 0.000000 -2.214291 +v -0.658390 0.000000 -3.361444 +v -2.511786 0.000000 -2.521473 +v -0.873481 0.000000 -3.668626 +v -2.511786 0.062500 -2.521473 +v -2.296694 0.062500 -2.214291 +v -0.658390 0.062500 -3.361444 +v -0.873481 0.062500 -3.668626 +v -0.852982 0.125000 -3.530384 +v -1.108966 0.125000 -3.351141 +v -0.781284 0.125000 -3.427989 +v -1.037269 0.125000 -3.248747 +v -0.852982 0.062500 -3.530384 +v -1.108966 0.062500 -3.351141 +v -0.781284 0.062500 -3.427989 +v -1.037269 0.062500 -3.248747 +v -2.317194 0.062500 -2.352534 +v -2.061209 0.062500 -2.531776 +v -2.388892 0.062500 -2.454927 +v -2.132906 0.062500 -2.634170 +v -2.317194 0.125000 -2.352534 +v -2.061209 0.125000 -2.531776 +v -2.388892 0.125000 -2.454927 +v -2.132906 0.125000 -2.634170 +v -2.831883 0.000000 -2.902951 +v -1.417670 0.000000 -4.317164 +v -3.097049 0.000000 -3.168117 +v -1.682835 0.000000 -4.582330 +v -3.097049 0.062500 -3.168117 +v -2.831883 0.062500 -2.902951 +v -1.417670 0.062500 -4.317164 +v -1.682835 0.062500 -4.582330 +v -1.638640 0.125000 -4.449748 +v -1.859611 0.125000 -4.228776 +v -1.550253 0.125000 -4.361359 +v -1.771223 0.125000 -4.140388 +v -1.638640 0.062500 -4.449748 +v -1.859611 0.062500 -4.228776 +v -1.550253 0.062500 -4.361359 +v -1.771223 0.062500 -4.140388 +v -2.876078 0.062500 -3.035534 +v -2.655107 0.062500 -3.256505 +v -2.964466 0.062500 -3.123922 +v -2.743495 0.062500 -3.344893 +v -2.876078 0.125000 -3.035534 +v -2.655107 0.125000 -3.256505 +v -2.964466 0.125000 -3.123922 +v -2.743495 0.125000 -3.344893 +v -3.478527 0.000000 -3.488214 +v -2.331373 0.000000 -5.126518 +v -3.785709 0.000000 -3.703305 +v -2.638556 0.000000 -5.341610 +v -3.785709 0.062500 -3.703305 +v -3.478527 0.062500 -3.488214 +v -2.331373 0.062500 -5.126518 +v -2.638556 0.062500 -5.341610 +v -2.572011 0.125000 -5.218716 +v -2.751253 0.125000 -4.962731 +v -2.469616 0.125000 -5.147019 +v -2.648859 0.125000 -4.891034 +v -2.572011 0.062500 -5.218716 +v -2.751253 0.062500 -4.962731 +v -2.469616 0.062500 -5.147019 +v -2.648859 0.062500 -4.891034 +v -3.545072 0.062500 -3.611109 +v -3.365830 0.062500 -3.867094 +v -3.647467 0.062500 -3.682805 +v -3.468224 0.062500 -3.938790 +v -3.545072 0.125000 -3.611109 +v -3.365830 0.125000 -3.867094 +v -3.647467 0.125000 -3.682805 +v -3.468224 0.125000 -3.938790 +v -4.216976 0.000000 -3.952298 +v -3.371739 0.000000 -5.764913 +v -4.556841 0.000000 -4.110780 +v -3.711604 0.000000 -5.923395 +v -4.556841 0.062500 -4.110780 +v -4.216976 0.062500 -3.952298 +v -3.371739 0.062500 -5.764913 +v -3.711604 0.062500 -5.923395 +v -3.624729 0.125000 -5.813924 +v -3.756797 0.125000 -5.530703 +v -3.511442 0.125000 -5.761096 +v -3.643509 0.125000 -5.477876 +v -3.624729 0.062500 -5.813924 +v -3.756797 0.062500 -5.530703 +v -3.511442 0.062500 -5.761096 +v -3.643509 0.062500 -5.477876 +v -4.303851 0.062500 -4.061769 +v -4.171782 0.062500 -4.344991 +v -4.417139 0.062500 -4.114597 +v -4.285071 0.062500 -4.397818 +v -4.303851 0.125000 -4.061769 +v -4.171782 0.125000 -4.344991 +v -4.417139 0.125000 -4.114597 +v -4.285071 0.125000 -4.397818 +v -5.024794 0.000000 -4.281100 +v -4.507154 0.000000 -6.212952 +v -5.387016 0.000000 -4.378157 +v -4.869377 0.000000 -6.310009 +v -5.387016 0.062500 -4.378157 +v -5.024794 0.062500 -4.281100 +v -4.507154 0.062500 -6.212952 +v -4.869377 0.062500 -6.310009 +v -4.764813 0.125000 -6.217286 +v -4.845694 0.125000 -5.915435 +v -4.644072 0.125000 -6.184934 +v -4.724953 0.125000 -5.883083 +v -4.764813 0.062500 -6.217286 +v -4.845694 0.062500 -5.915435 +v -4.644072 0.062500 -6.184934 +v -4.724953 0.062500 -5.883083 +v -5.129358 0.062500 -4.373823 +v -5.048478 0.062500 -4.675675 +v -5.250099 0.062500 -4.406175 +v -5.169218 0.062500 -4.708027 +v -5.129358 0.125000 -4.373823 +v -5.048478 0.125000 -4.675675 +v -5.250099 0.125000 -4.406175 +v -5.169218 0.125000 -4.708027 +v -5.877435 0.000000 -4.464632 +v -5.703122 0.000000 -6.457021 +v -6.251008 0.000000 -4.497314 +v -6.076696 0.000000 -6.489705 +v -6.251008 0.062500 -4.497314 +v -5.877435 0.062500 -4.464632 +v -5.703122 0.062500 -6.457021 +v -6.076696 0.062500 -6.489705 +v -5.957620 0.125000 -6.416547 +v -5.984855 0.125000 -6.105237 +v -5.833095 0.125000 -6.405653 +v -5.860331 0.125000 -6.094343 +v -5.957620 0.062500 -6.416547 +v -5.984855 0.062500 -6.105237 +v -5.833095 0.062500 -6.405653 +v -5.860331 0.062500 -6.094343 +v -5.996511 0.062500 -4.537788 +v -5.969276 0.062500 -4.849099 +v -6.121037 0.062500 -4.548682 +v -6.093800 0.062500 -4.859993 +v -5.996511 0.125000 -4.537788 +v -5.969276 0.125000 -4.849099 +v -6.121037 0.125000 -4.548682 +v -6.093800 0.125000 -4.859993 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9962 0.0000 0.0872 +vn 0.0872 0.0000 0.9962 +vn 0.9962 0.0000 -0.0872 +vn -0.0872 0.0000 -0.9962 +vn -0.0872 0.0000 0.9962 +vn 0.0872 0.0000 -0.9962 +vn -1.0000 0.0000 0.0000 +vn 0.2588 0.0000 -0.9659 +vn -0.2588 0.0000 0.9659 +vn 0.4226 0.0000 -0.9063 +vn -0.4226 0.0000 0.9063 +vn -0.5736 0.0000 0.8192 +vn 0.5736 0.0000 -0.8192 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.8192 0.0000 -0.5736 +vn -0.8192 0.0000 0.5736 +vn 0.9063 0.0000 -0.4226 +vn -0.9063 0.0000 0.4226 +vn -0.9659 0.0000 0.2588 +vn 0.9659 0.0000 -0.2588 +vn 0.2588 0.0000 0.9659 +vn -0.2588 0.0000 -0.9659 +vn 0.4226 0.0000 0.9063 +vn -0.4226 0.0000 -0.9063 +vn 0.5736 0.0000 0.8192 +vn -0.5736 0.0000 -0.8192 +vn -0.8191 0.0000 0.5736 +vn 0.8191 0.0000 -0.5736 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.8192 0.0000 0.5736 +vn -0.8192 0.0000 -0.5736 +vn 0.9063 0.0000 0.4226 +vn -0.9063 0.0000 -0.4226 +vn 0.9659 0.0000 0.2588 +vn -0.9659 0.0000 -0.2588 +vn 0.9962 0.0000 0.0872 +vn -0.9962 0.0000 -0.0872 +vn -0.0871 0.0000 0.9962 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/1 6/5/1 7/6/1 +f 11/7/2 10/8/2 9/9/2 +f 15/10/3 13/11/3 14/12/3 +f 9/13/4 13/14/4 11/15/4 +f 10/16/5 14/17/5 9/18/5 +f 12/19/6 15/20/6 10/8/6 +f 11/7/7 16/21/7 12/22/7 +f 39/23/8 44/24/8 41/25/8 +f 42/26/3 39/23/3 41/25/3 +f 36/27/2 47/28/2 45/29/2 +f 33/30/8 45/31/8 46/32/8 +f 38/33/9 42/26/9 43/34/9 +f 40/35/2 43/34/2 44/36/2 +f 35/37/10 33/38/10 34/39/10 +f 39/40/10 38/41/10 40/42/10 +f 44/43/2 54/44/2 56/45/2 +f 43/46/11 53/47/11 54/44/11 +f 46/48/12 52/49/12 49/50/12 +f 45/51/2 51/52/2 52/53/2 +f 53/47/3 41/54/3 55/55/3 +f 41/54/12 56/56/12 55/55/12 +f 34/57/3 46/32/3 48/58/3 +f 35/59/9 48/58/9 47/28/9 +f 54/60/13 58/61/13 59/62/13 +f 56/63/2 59/62/2 60/64/2 +f 64/65/3 49/66/3 62/67/3 +f 51/68/13 64/65/13 63/69/13 +f 55/70/14 60/71/14 57/72/14 +f 58/61/3 55/70/3 57/72/3 +f 47/73/11 50/74/11 51/52/11 +f 50/74/3 46/48/3 49/50/3 +f 29/75/4 27/76/4 25/77/4 +f 20/78/3 17/79/3 18/80/3 +f 17/79/6 23/81/6 21/82/6 +f 19/83/5 24/84/5 23/85/5 +f 18/80/7 21/86/7 22/87/7 +f 20/78/4 22/88/4 24/89/4 +f 31/90/7 28/91/7 27/92/7 +f 30/93/5 25/94/5 26/95/5 +f 32/96/6 26/97/6 28/98/6 +f 29/75/3 32/96/3 31/90/3 +f 69/99/3 57/100/3 71/101/3 +f 57/100/15 72/102/15 71/101/15 +f 63/103/16 66/104/16 67/105/16 +f 66/104/3 62/106/3 65/107/3 +f 60/108/2 70/109/2 72/110/2 +f 59/111/16 69/99/16 70/109/16 +f 52/112/2 63/69/2 61/113/2 +f 49/66/14 61/114/14 62/67/14 +f 71/115/17 76/116/17 73/117/17 +f 69/118/3 73/117/3 74/119/3 +f 68/120/2 79/121/2 77/122/2 +f 65/123/17 77/124/17 78/125/17 +f 70/126/18 74/119/18 75/127/18 +f 72/128/2 75/127/2 76/129/2 +f 62/106/15 68/130/15 65/107/15 +f 61/131/2 67/105/2 68/132/2 +f 75/133/19 85/134/19 86/135/19 +f 78/136/20 84/137/20 81/138/20 +f 84/139/2 79/140/2 83/141/2 +f 85/134/3 73/142/3 87/143/3 +f 73/142/20 88/144/20 87/143/20 +f 79/140/19 82/145/19 83/141/19 +f 80/146/3 65/123/3 78/125/3 +f 67/147/18 80/146/18 79/121/18 +f 86/148/21 90/149/21 91/150/21 +f 88/151/2 91/150/2 92/152/2 +f 82/153/3 94/154/3 96/155/3 +f 83/156/21 96/155/21 95/157/21 +f 87/158/22 92/159/22 89/160/22 +f 90/149/3 87/158/3 89/160/3 +f 82/145/3 78/136/3 81/138/3 +f 76/161/2 86/135/2 88/162/2 +f 89/163/23 104/164/23 103/165/23 +f 95/166/24 98/167/24 99/168/24 +f 98/167/3 94/169/3 97/170/3 +f 92/171/2 102/172/2 104/173/2 +f 91/174/24 101/175/24 102/172/24 +f 94/169/23 100/176/23 97/170/23 +f 84/177/2 95/157/2 93/178/2 +f 81/179/22 93/180/22 94/154/22 +f 102/181/6 4/182/6 3/183/6 +f 99/184/6 7/185/6 6/186/6 +f 104/187/2 3/183/2 1/188/2 +f 100/189/2 6/186/2 5/190/2 +f 97/191/4 5/192/4 8/193/4 +f 101/194/3 2/195/3 4/182/3 +f 103/196/4 1/197/4 2/195/4 +f 7/185/3 97/191/3 8/193/3 +f 93/198/2 99/168/2 100/199/2 +f 101/175/3 89/163/3 103/165/3 +f 107/200/2 106/201/2 105/202/2 +f 111/203/3 109/204/3 110/205/3 +f 105/206/23 109/207/23 107/208/23 +f 106/209/25 110/210/25 105/211/25 +f 108/212/24 111/213/24 106/201/24 +f 107/200/26 112/214/26 108/215/26 +f 125/216/23 123/217/23 121/218/23 +f 116/219/3 113/220/3 114/221/3 +f 113/220/24 119/222/24 117/223/24 +f 115/224/25 120/225/25 119/226/25 +f 114/221/26 117/227/26 118/228/26 +f 116/219/23 118/229/23 120/230/23 +f 127/231/26 124/232/26 123/233/26 +f 126/234/25 121/235/25 122/236/25 +f 128/237/24 122/238/24 124/239/24 +f 125/216/3 128/237/3 127/231/3 +f 131/240/2 130/241/2 129/242/2 +f 135/243/3 133/244/3 134/245/3 +f 129/246/22 133/247/22 131/248/22 +f 130/249/27 134/250/27 129/251/27 +f 132/252/21 135/253/21 130/241/21 +f 131/240/28 136/254/28 132/255/28 +f 149/256/22 147/257/22 145/258/22 +f 138/259/3 139/260/3 137/261/3 +f 137/261/21 143/262/21 141/263/21 +f 139/260/27 144/264/27 143/265/27 +f 138/259/28 141/266/28 142/267/28 +f 140/268/22 142/269/22 144/270/22 +f 151/271/28 148/272/28 147/273/28 +f 150/274/27 145/275/27 146/276/27 +f 152/277/21 146/278/21 148/279/21 +f 149/256/3 152/277/3 151/271/3 +f 155/280/2 154/281/2 153/282/2 +f 158/283/3 160/284/3 157/285/3 +f 153/286/20 157/287/20 155/288/20 +f 154/289/29 158/290/29 153/291/29 +f 156/292/19 159/293/19 154/281/19 +f 155/280/30 160/284/30 156/294/30 +f 173/295/31 171/296/31 169/297/31 +f 164/298/3 161/299/3 162/300/3 +f 161/299/32 167/301/32 165/302/32 +f 163/303/29 168/304/29 167/305/29 +f 162/300/30 165/306/30 166/307/30 +f 164/298/20 166/308/20 168/309/20 +f 175/310/30 172/311/30 171/312/30 +f 174/313/29 169/314/29 170/315/29 +f 176/316/19 170/317/19 172/318/19 +f 173/295/3 176/316/3 175/310/3 +f 179/319/2 178/320/2 177/321/2 +f 183/322/3 181/323/3 182/324/3 +f 177/325/17 181/326/17 179/327/17 +f 178/328/33 182/329/33 177/330/33 +f 180/331/18 183/332/18 178/320/18 +f 179/319/34 184/333/34 180/334/34 +f 197/335/17 195/336/17 193/337/17 +f 186/338/3 187/339/3 185/340/3 +f 185/340/18 191/341/18 189/342/18 +f 187/339/33 192/343/33 191/344/33 +f 186/338/34 189/345/34 190/346/34 +f 188/347/17 190/348/17 192/349/17 +f 199/350/34 196/351/34 195/352/34 +f 198/353/33 193/354/33 194/355/33 +f 200/356/18 194/357/18 196/358/18 +f 197/335/3 200/356/3 199/350/3 +f 201/359/2 204/360/2 202/361/2 +f 206/362/3 208/363/3 205/364/3 +f 201/365/15 205/366/15 203/367/15 +f 202/368/35 206/369/35 201/370/35 +f 204/371/16 207/372/16 202/361/16 +f 203/373/36 208/363/36 204/360/36 +f 221/374/15 219/375/15 217/376/15 +f 212/377/3 209/378/3 210/379/3 +f 209/378/16 215/380/16 213/381/16 +f 211/382/35 216/383/35 215/384/35 +f 210/379/36 213/385/36 214/386/36 +f 212/377/15 214/387/15 216/388/15 +f 223/389/36 220/390/36 219/391/36 +f 222/392/35 217/393/35 218/394/35 +f 224/395/16 218/396/16 220/397/16 +f 221/374/3 224/395/3 223/389/3 +f 227/398/2 226/399/2 225/400/2 +f 231/401/3 229/402/3 230/403/3 +f 225/404/14 229/405/14 227/406/14 +f 226/407/37 230/408/37 225/409/37 +f 228/410/13 231/411/13 226/399/13 +f 227/398/38 232/412/38 228/413/38 +f 245/414/14 243/415/14 241/416/14 +f 234/417/3 235/418/3 233/419/3 +f 233/419/13 239/420/13 237/421/13 +f 235/418/37 240/422/37 239/423/37 +f 234/417/38 237/424/38 238/425/38 +f 236/426/14 238/427/14 240/428/14 +f 247/429/38 244/430/38 243/431/38 +f 246/432/37 241/433/37 242/434/37 +f 248/435/13 242/436/13 244/437/13 +f 245/414/3 248/435/3 247/429/3 +f 249/438/2 252/439/2 250/440/2 +f 254/441/3 256/442/3 253/443/3 +f 249/444/12 253/445/12 251/446/12 +f 250/447/39 254/448/39 249/449/39 +f 252/450/11 255/451/11 250/440/11 +f 251/452/40 256/442/40 252/439/40 +f 269/453/12 267/454/12 265/455/12 +f 260/456/3 257/457/3 258/458/3 +f 257/457/11 263/459/11 261/460/11 +f 259/461/39 264/462/39 263/463/39 +f 258/458/40 261/464/40 262/465/40 +f 260/456/12 262/466/12 264/467/12 +f 271/468/40 268/469/40 267/470/40 +f 270/471/39 265/472/39 266/473/39 +f 272/474/11 266/475/11 268/476/11 +f 269/453/3 272/474/3 271/468/3 +f 273/477/2 276/478/2 274/479/2 +f 278/480/3 280/481/3 277/482/3 +f 273/483/8 277/484/8 275/485/8 +f 274/486/41 278/487/41 273/488/41 +f 276/489/9 279/490/9 274/479/9 +f 275/491/42 280/481/42 276/478/42 +f 293/492/43 291/493/43 289/494/43 +f 284/495/3 281/496/3 282/497/3 +f 281/496/9 287/498/9 285/499/9 +f 283/500/41 288/501/41 287/502/41 +f 282/497/42 285/503/42 286/504/42 +f 284/495/8 286/505/8 288/506/8 +f 295/507/42 292/508/42 291/509/42 +f 294/510/41 289/511/41 290/512/41 +f 296/513/9 290/514/9 292/515/9 +f 293/492/3 296/513/3 295/507/3 +f 3/1/1 4/516/1 2/2/1 +f 8/4/1 5/517/1 6/5/1 +f 11/7/2 12/22/2 10/8/2 +f 15/10/3 16/21/3 13/11/3 +f 9/13/4 14/518/4 13/14/4 +f 10/16/5 15/519/5 14/17/5 +f 12/19/6 16/520/6 15/20/6 +f 11/7/7 13/11/7 16/21/7 +f 39/23/8 40/521/8 44/24/8 +f 42/26/3 37/522/3 39/23/3 +f 36/27/2 35/59/2 47/28/2 +f 33/30/8 36/523/8 45/31/8 +f 38/33/9 37/522/9 42/26/9 +f 40/35/2 38/33/2 43/34/2 +f 35/37/10 36/524/10 33/38/10 +f 39/40/10 37/525/10 38/41/10 +f 44/43/2 43/46/2 54/44/2 +f 43/46/11 42/526/11 53/47/11 +f 46/48/12 45/527/12 52/49/12 +f 45/51/2 47/73/2 51/52/2 +f 53/47/3 42/526/3 41/54/3 +f 41/54/12 44/528/12 56/56/12 +f 34/57/3 33/30/3 46/32/3 +f 35/59/9 34/57/9 48/58/9 +f 54/60/13 53/529/13 58/61/13 +f 56/63/2 54/60/2 59/62/2 +f 64/65/3 50/530/3 49/66/3 +f 51/68/13 50/530/13 64/65/13 +f 55/70/14 56/531/14 60/71/14 +f 58/61/3 53/529/3 55/70/3 +f 47/73/11 48/532/11 50/74/11 +f 50/74/3 48/532/3 46/48/3 +f 29/75/4 31/90/4 27/76/4 +f 20/78/3 19/83/3 17/79/3 +f 17/79/6 19/83/6 23/81/6 +f 19/83/5 20/78/5 24/84/5 +f 18/80/7 17/79/7 21/86/7 +f 20/78/4 18/80/4 22/88/4 +f 31/90/7 32/96/7 28/91/7 +f 30/93/5 29/75/5 25/94/5 +f 32/96/6 30/93/6 26/97/6 +f 29/75/3 30/93/3 32/96/3 +f 69/99/3 58/533/3 57/100/3 +f 57/100/15 60/534/15 72/102/15 +f 63/103/16 64/535/16 66/104/16 +f 66/104/3 64/535/3 62/106/3 +f 60/108/2 59/111/2 70/109/2 +f 59/111/16 58/533/16 69/99/16 +f 52/112/2 51/68/2 63/69/2 +f 49/66/14 52/536/14 61/114/14 +f 71/115/17 72/537/17 76/116/17 +f 69/118/3 71/115/3 73/117/3 +f 68/120/2 67/147/2 79/121/2 +f 65/123/17 68/538/17 77/124/17 +f 70/126/18 69/118/18 74/119/18 +f 72/128/2 70/126/2 75/127/2 +f 62/106/15 61/539/15 68/130/15 +f 61/131/2 63/103/2 67/105/2 +f 75/133/19 74/540/19 85/134/19 +f 78/136/20 77/541/20 84/137/20 +f 84/139/2 77/542/2 79/140/2 +f 85/134/3 74/540/3 73/142/3 +f 73/142/20 76/543/20 88/144/20 +f 79/140/19 80/544/19 82/145/19 +f 80/146/3 66/545/3 65/123/3 +f 67/147/18 66/545/18 80/146/18 +f 86/148/21 85/546/21 90/149/21 +f 88/151/2 86/148/2 91/150/2 +f 82/153/3 81/179/3 94/154/3 +f 83/156/21 82/153/21 96/155/21 +f 87/158/22 88/547/22 92/159/22 +f 90/149/3 85/546/3 87/158/3 +f 82/145/3 80/544/3 78/136/3 +f 76/161/2 75/133/2 86/135/2 +f 89/163/23 92/548/23 104/164/23 +f 95/166/24 96/549/24 98/167/24 +f 98/167/3 96/549/3 94/169/3 +f 92/171/2 91/174/2 102/172/2 +f 91/174/24 90/550/24 101/175/24 +f 94/169/23 93/551/23 100/176/23 +f 84/177/2 83/156/2 95/157/2 +f 81/179/22 84/552/22 93/180/22 +f 102/181/6 101/194/6 4/182/6 +f 99/184/6 98/553/6 7/185/6 +f 104/187/2 102/181/2 3/183/2 +f 100/189/2 99/184/2 6/186/2 +f 97/191/4 100/554/4 5/192/4 +f 101/194/3 103/196/3 2/195/3 +f 103/196/4 104/555/4 1/197/4 +f 7/185/3 98/553/3 97/191/3 +f 93/198/2 95/166/2 99/168/2 +f 101/175/3 90/550/3 89/163/3 +f 107/200/2 108/215/2 106/201/2 +f 111/203/3 112/214/3 109/204/3 +f 105/206/23 110/556/23 109/207/23 +f 106/209/25 111/557/25 110/210/25 +f 108/212/24 112/558/24 111/213/24 +f 107/200/26 109/204/26 112/214/26 +f 125/216/23 127/231/23 123/217/23 +f 116/219/3 115/224/3 113/220/3 +f 113/220/24 115/224/24 119/222/24 +f 115/224/25 116/219/25 120/225/25 +f 114/221/26 113/220/26 117/227/26 +f 116/219/23 114/221/23 118/229/23 +f 127/231/26 128/237/26 124/232/26 +f 126/234/25 125/216/25 121/235/25 +f 128/237/24 126/234/24 122/238/24 +f 125/216/3 126/234/3 128/237/3 +f 131/240/2 132/255/2 130/241/2 +f 135/243/3 136/254/3 133/244/3 +f 129/246/22 134/559/22 133/247/22 +f 130/249/27 135/560/27 134/250/27 +f 132/252/21 136/561/21 135/253/21 +f 131/240/28 133/244/28 136/254/28 +f 149/256/22 151/271/22 147/257/22 +f 138/259/3 140/268/3 139/260/3 +f 137/261/21 139/260/21 143/262/21 +f 139/260/27 140/268/27 144/264/27 +f 138/259/28 137/261/28 141/266/28 +f 140/268/22 138/259/22 142/269/22 +f 151/271/28 152/277/28 148/272/28 +f 150/274/27 149/256/27 145/275/27 +f 152/277/21 150/274/21 146/278/21 +f 149/256/3 150/274/3 152/277/3 +f 155/280/2 156/294/2 154/281/2 +f 158/283/3 159/562/3 160/284/3 +f 153/286/20 158/563/20 157/287/20 +f 154/289/29 159/564/29 158/290/29 +f 156/292/19 160/565/19 159/293/19 +f 155/280/30 157/285/30 160/284/30 +f 173/295/31 175/310/31 171/296/31 +f 164/298/3 163/303/3 161/299/3 +f 161/299/32 163/303/32 167/301/32 +f 163/303/29 164/298/29 168/304/29 +f 162/300/30 161/299/30 165/306/30 +f 164/298/20 162/300/20 166/308/20 +f 175/310/30 176/316/30 172/311/30 +f 174/313/29 173/295/29 169/314/29 +f 176/316/19 174/313/19 170/317/19 +f 173/295/3 174/313/3 176/316/3 +f 179/319/2 180/334/2 178/320/2 +f 183/322/3 184/333/3 181/323/3 +f 177/325/17 182/566/17 181/326/17 +f 178/328/33 183/567/33 182/329/33 +f 180/331/18 184/568/18 183/332/18 +f 179/319/34 181/323/34 184/333/34 +f 197/335/17 199/350/17 195/336/17 +f 186/338/3 188/347/3 187/339/3 +f 185/340/18 187/339/18 191/341/18 +f 187/339/33 188/347/33 192/343/33 +f 186/338/34 185/340/34 189/345/34 +f 188/347/17 186/338/17 190/348/17 +f 199/350/34 200/356/34 196/351/34 +f 198/353/33 197/335/33 193/354/33 +f 200/356/18 198/353/18 194/357/18 +f 197/335/3 198/353/3 200/356/3 +f 201/359/2 203/373/2 204/360/2 +f 206/362/3 207/569/3 208/363/3 +f 201/365/15 206/570/15 205/366/15 +f 202/368/35 207/571/35 206/369/35 +f 204/371/16 208/572/16 207/372/16 +f 203/373/36 205/364/36 208/363/36 +f 221/374/15 223/389/15 219/375/15 +f 212/377/3 211/382/3 209/378/3 +f 209/378/16 211/382/16 215/380/16 +f 211/382/35 212/377/35 216/383/35 +f 210/379/36 209/378/36 213/385/36 +f 212/377/15 210/379/15 214/387/15 +f 223/389/36 224/395/36 220/390/36 +f 222/392/35 221/374/35 217/393/35 +f 224/395/16 222/392/16 218/396/16 +f 221/374/3 222/392/3 224/395/3 +f 227/398/2 228/413/2 226/399/2 +f 231/401/3 232/412/3 229/402/3 +f 225/404/14 230/573/14 229/405/14 +f 226/407/37 231/574/37 230/408/37 +f 228/410/13 232/575/13 231/411/13 +f 227/398/38 229/402/38 232/412/38 +f 245/414/14 247/429/14 243/415/14 +f 234/417/3 236/426/3 235/418/3 +f 233/419/13 235/418/13 239/420/13 +f 235/418/37 236/426/37 240/422/37 +f 234/417/38 233/419/38 237/424/38 +f 236/426/14 234/417/14 238/427/14 +f 247/429/38 248/435/38 244/430/38 +f 246/432/37 245/414/37 241/433/37 +f 248/435/13 246/432/13 242/436/13 +f 245/414/3 246/432/3 248/435/3 +f 249/438/2 251/452/2 252/439/2 +f 254/441/3 255/576/3 256/442/3 +f 249/444/12 254/577/12 253/445/12 +f 250/447/39 255/578/39 254/448/39 +f 252/450/11 256/579/11 255/451/11 +f 251/452/40 253/443/40 256/442/40 +f 269/453/12 271/468/12 267/454/12 +f 260/456/3 259/461/3 257/457/3 +f 257/457/11 259/461/11 263/459/11 +f 259/461/39 260/456/39 264/462/39 +f 258/458/40 257/457/40 261/464/40 +f 260/456/12 258/458/12 262/466/12 +f 271/468/40 272/474/40 268/469/40 +f 270/471/39 269/453/39 265/472/39 +f 272/474/11 270/471/11 266/475/11 +f 269/453/3 270/471/3 272/474/3 +f 273/477/2 275/491/2 276/478/2 +f 278/480/3 279/580/3 280/481/3 +f 273/483/8 278/581/8 277/484/8 +f 274/486/41 279/582/41 278/487/41 +f 276/489/9 280/583/9 279/490/9 +f 275/491/42 277/482/42 280/481/42 +f 293/492/8 295/507/8 291/493/8 +f 284/495/3 283/500/3 281/496/3 +f 281/496/9 283/500/9 287/498/9 +f 283/500/41 284/495/41 288/501/41 +f 282/497/42 281/496/42 285/503/42 +f 284/495/8 282/497/8 286/505/8 +f 295/507/42 296/513/42 292/508/42 +f 294/510/41 293/492/41 289/511/41 +f 296/513/9 294/510/9 290/514/9 +f 293/492/3 294/510/3 296/513/3 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj new file mode 100644 index 000000000..4fb15ebb7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj @@ -0,0 +1,185 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_straight_short.blend' +# www.blender.org +o Plane.001 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.062500 0.187500 +v 1.000000 0.062500 0.187500 +v 1.000000 0.062500 -0.187500 +v -0.812500 0.062500 0.500000 +v 0.812500 0.062500 0.500000 +v -0.812500 0.187500 0.500000 +v 0.812500 0.187500 0.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.187500 0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.187500 0.500000 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v -0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -0.500000 +v -0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.187500 -0.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.187500 -0.500000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 1/7/3 5/8/3 3/9/3 +f 2/10/4 6/11/4 1/12/4 +f 4/13/5 7/14/5 2/2/5 +f 3/1/6 8/15/6 4/16/6 +f 36/17/5 10/18/5 34/19/5 +f 13/20/3 38/21/3 37/22/3 +f 12/23/4 13/24/4 10/25/4 +f 10/18/1 37/26/1 34/19/1 +f 11/27/2 40/28/2 35/29/2 +f 9/30/4 16/31/4 11/32/4 +f 21/33/3 19/34/3 17/35/3 +f 23/36/6 20/37/6 19/38/6 +f 22/39/4 17/40/4 18/41/4 +f 24/42/5 18/43/5 20/44/5 +f 21/33/2 24/42/2 23/36/2 +f 29/45/3 27/46/3 25/47/3 +f 31/48/6 28/49/6 27/50/6 +f 30/51/4 25/52/4 26/53/4 +f 32/54/5 26/55/5 28/56/5 +f 29/45/2 32/54/2 31/48/2 +f 33/57/1 15/58/1 9/59/1 +f 39/60/5 16/61/5 15/58/5 +f 36/17/2 14/62/2 12/63/2 +f 11/27/3 33/64/3 9/65/3 +f 33/66/6 40/67/6 39/68/6 +f 38/69/6 34/70/6 37/71/6 +f 3/1/1 4/16/1 2/2/1 +f 7/4/2 8/15/2 5/5/2 +f 1/7/3 6/72/3 5/8/3 +f 2/10/4 7/73/4 6/11/4 +f 4/13/5 8/74/5 7/14/5 +f 3/1/6 5/5/6 8/15/6 +f 36/17/5 12/63/5 10/18/5 +f 13/20/3 14/62/3 38/21/3 +f 12/23/4 14/75/4 13/24/4 +f 10/18/1 13/76/1 37/26/1 +f 11/27/2 16/61/2 40/28/2 +f 9/30/4 15/77/4 16/31/4 +f 21/33/3 23/36/3 19/34/3 +f 23/36/6 24/42/6 20/37/6 +f 22/39/4 21/33/4 17/40/4 +f 24/42/5 22/39/5 18/43/5 +f 21/33/2 22/39/2 24/42/2 +f 29/45/3 31/48/3 27/46/3 +f 31/48/6 32/54/6 28/49/6 +f 30/51/4 29/45/4 25/52/4 +f 32/54/5 30/51/5 26/55/5 +f 29/45/2 30/51/2 32/54/2 +f 33/57/1 39/60/1 15/58/1 +f 39/60/5 40/28/5 16/61/5 +f 36/17/2 38/21/2 14/62/2 +f 11/27/3 35/29/3 33/64/3 +f 33/66/6 35/78/6 40/67/6 +f 38/69/6 36/79/6 34/70/6 diff --git a/src/main/resources/assets/hbm/models/bombs/gadget.obj b/src/main/resources/assets/hbm/models/bombs/gadget.obj new file mode 100644 index 000000000..e2e007e50 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/gadget.obj @@ -0,0 +1,10019 @@ +# Blender v2.79 (sub 0) OBJ File: 'gadget.blend' +# www.blender.org +o Wires +v -1.174005 1.942922 -0.549430 +v -1.183310 1.913090 -0.549430 +v -1.182231 1.912753 -0.518200 +v -1.172926 1.942586 -0.518200 +v -1.196076 1.821231 -0.548875 +v -1.202886 1.790732 -0.548875 +v -1.202886 1.790732 -0.517625 +v -1.196076 1.821231 -0.517625 +v -1.238634 1.797799 -0.528074 +v -1.233117 1.828558 -0.528074 +v -1.206878 1.823852 -0.511767 +v -1.212395 1.793093 -0.511767 +v -1.217782 1.698130 -0.548875 +v -1.224592 1.667631 -0.548875 +v -1.224592 1.667631 -0.517625 +v -1.217782 1.698130 -0.517625 +v -1.259217 1.671675 -0.533248 +v -1.257805 1.702893 -0.533248 +v -1.235729 1.701894 -0.511153 +v -1.237141 1.670676 -0.511153 +v -1.239488 1.575029 -0.548875 +v -1.246298 1.544530 -0.548875 +v -1.246298 1.544530 -0.517625 +v -1.239488 1.575029 -0.517625 +v -1.279112 1.546412 -0.529872 +v -1.280785 1.577617 -0.529872 +v -1.255606 1.578968 -0.511412 +v -1.253933 1.547762 -0.511412 +v -1.216391 1.945193 -0.663251 +v -1.188182 1.958640 -0.663251 +v -1.181072 1.943725 -0.636726 +v -1.209281 1.930278 -0.636726 +v -1.241104 1.815372 -0.659276 +v -1.217851 1.836249 -0.659276 +v -1.203790 1.820588 -0.636177 +v -1.227042 1.799710 -0.636177 +v -1.239636 1.660727 -0.666553 +v -1.261933 1.682622 -0.666553 +v -1.253403 1.691308 -0.637772 +v -1.231106 1.669413 -0.637772 +v -1.239488 1.575029 -0.673875 +v -1.246298 1.544530 -0.673875 +v -1.246298 1.544530 -0.642625 +v -1.239488 1.575029 -0.642625 +v -1.256174 1.540192 -0.672388 +v -1.280892 1.559312 -0.672388 +v -1.279152 1.561561 -0.641268 +v -1.254434 1.542440 -0.641268 +v -1.174370 1.944332 -0.798875 +v -1.181180 1.913833 -0.798875 +v -1.181180 1.913833 -0.767625 +v -1.174370 1.944332 -0.767625 +v -1.215594 1.947240 -0.785575 +v -1.186501 1.958649 -0.785575 +v -1.179327 1.940356 -0.761275 +v -1.208420 1.928947 -0.761275 +v -1.196076 1.821231 -0.798875 +v -1.202886 1.790732 -0.798875 +v -1.202886 1.790732 -0.767625 +v -1.196076 1.821231 -0.767625 +v -1.240732 1.814322 -0.788906 +v -1.217902 1.835661 -0.788906 +v -1.207178 1.824188 -0.761889 +v -1.230008 1.802849 -0.761889 +v -1.242324 1.660806 -0.790220 +v -1.262535 1.684641 -0.790220 +v -1.251858 1.693694 -0.762281 +v -1.231647 1.669860 -0.762281 +v -1.239488 1.575029 -0.798875 +v -1.246298 1.544530 -0.798875 +v -1.246298 1.544530 -0.767625 +v -1.239488 1.575029 -0.767625 +v -1.252976 1.544934 -0.802555 +v -1.277033 1.564880 -0.802555 +v -1.282493 1.558295 -0.772498 +v -1.258435 1.538350 -0.772498 +v -1.174370 1.944332 -0.923875 +v -1.181180 1.913833 -0.923875 +v -1.181180 1.913833 -0.892625 +v -1.174370 1.944332 -0.892625 +v -1.212353 1.945965 -0.921560 +v -1.181977 1.953300 -0.921560 +v -1.180960 1.949093 -0.890611 +v -1.211337 1.941757 -0.890611 +v -1.196076 1.821231 -0.923875 +v -1.202886 1.790732 -0.923875 +v -1.202886 1.790732 -0.892625 +v -1.196076 1.821231 -0.892625 +v -1.239209 1.806511 -0.919429 +v -1.222351 1.832825 -0.919429 +v -1.215715 1.828573 -0.889189 +v -1.232572 1.802260 -0.889189 +v -1.217782 1.698130 -0.923875 +v -1.224592 1.667631 -0.923875 +v -1.224592 1.667631 -0.892625 +v -1.217782 1.698130 -0.892625 +v -1.228890 1.670839 -0.929152 +v -1.253067 1.690639 -0.929152 +v -1.261768 1.680014 -0.901081 +v -1.237591 1.660214 -0.901081 +v -1.239488 1.575029 -0.923875 +v -1.246298 1.544530 -0.923875 +v -1.246298 1.544530 -0.892625 +v -1.239488 1.575029 -0.892625 +v -1.259141 1.538664 -0.919660 +v -1.282409 1.559525 -0.919660 +v -1.277393 1.565119 -0.889326 +v -1.254125 1.544258 -0.889326 +v -1.174370 1.944332 -1.048875 +v -1.181180 1.913833 -1.048875 +v -1.181180 1.913833 -1.017625 +v -1.174370 1.944332 -1.017625 +v -1.209377 1.949713 -1.046222 +v -1.178154 1.951008 -1.046222 +v -1.177951 1.946095 -1.015361 +v -1.209174 1.944801 -1.015361 +v -1.196076 1.821231 -1.048875 +v -1.202886 1.790732 -1.048875 +v -1.202886 1.790732 -1.017625 +v -1.196076 1.821231 -1.017625 +v -1.217782 1.698130 -1.048875 +v -1.224592 1.667631 -1.048875 +v -1.224592 1.667631 -1.017625 +v -1.217782 1.698130 -1.017625 +v -1.239488 1.575029 -1.048875 +v -1.246298 1.544530 -1.048875 +v -1.246298 1.544530 -1.017625 +v -1.239488 1.575029 -1.017625 +v -1.174370 1.944332 -1.173875 +v -1.181180 1.913833 -1.173875 +v -1.181180 1.913833 -1.142625 +v -1.174370 1.944332 -1.142625 +v -1.196076 1.821231 -1.173875 +v -1.202886 1.790732 -1.173875 +v -1.202886 1.790732 -1.142625 +v -1.196076 1.821231 -1.142625 +v -1.224011 1.796775 -1.180323 +v -1.203896 1.820690 -1.180323 +v -1.221566 1.835552 -1.159265 +v -1.241681 1.811637 -1.159265 +v -1.217782 1.698130 -1.173875 +v -1.224592 1.667631 -1.173875 +v -1.224592 1.667631 -1.142625 +v -1.217782 1.698130 -1.142625 +v -1.239488 1.575029 -1.173875 +v -1.246298 1.544530 -1.173875 +v -1.246298 1.544530 -1.142625 +v -1.239488 1.575029 -1.142625 +v -1.256882 1.542336 -1.175459 +v -1.278993 1.564419 -1.175459 +v -1.281359 1.562049 -1.144389 +v -1.259249 1.539966 -1.144389 +v 0.362842 2.375147 0.326274 +v 0.386903 2.373444 0.306407 +v 0.370036 2.388315 0.284706 +v 0.345975 2.390018 0.304574 +v 0.384077 2.432766 0.344619 +v 0.405915 2.423475 0.324288 +v 0.384420 2.422550 0.301623 +v 0.362582 2.431840 0.321954 +v -0.918945 1.110495 -0.342736 +v -0.931564 1.094373 -0.319127 +v -0.936371 1.121008 -0.303506 +v -0.923751 1.137131 -0.327115 +v -0.379805 2.444080 -0.309020 +v -0.367132 2.433805 -0.335673 +v -0.388692 2.411236 -0.337222 +v -0.401364 2.421511 -0.310569 +v 0.402196 2.434005 -0.311901 +v 0.396841 2.423141 -0.340708 +v 0.366301 2.421311 -0.334341 +v 0.371656 2.432175 -0.305534 +v -0.378623 0.564951 0.303071 +v -0.371040 0.557246 0.332392 +v -0.389874 0.579733 0.343171 +v -0.397457 0.587438 0.313851 +v 0.393651 0.572855 0.303131 +v 0.404220 0.573220 0.332537 +v 0.374846 0.571829 0.343111 +v 0.364277 0.571465 0.313705 +v 0.390783 0.579489 -0.342983 +v 0.405056 0.566658 -0.318321 +v 0.377714 0.565195 -0.303259 +v 0.363441 0.578026 -0.327921 +v 0.701539 1.282990 0.756744 +v 0.694797 1.253772 0.747945 +v 0.701307 1.261198 0.718296 +v 0.708049 1.290416 0.727095 +v -0.378277 2.436777 0.342343 +v -0.368708 2.439423 0.312712 +v -0.390220 2.418539 0.303900 +v -0.399789 2.415894 0.333531 +v 0.440212 2.090464 0.757640 +v 0.454304 2.095352 0.730180 +v 0.426795 2.102869 0.717400 +v 0.412703 2.097980 0.744860 +v 0.712255 1.254904 -0.728834 +v 0.684271 1.258951 -0.742139 +v 0.690591 1.289284 -0.746206 +v 0.718576 1.285237 -0.732900 +v 0.019550 0.757477 0.728517 +v 0.010032 0.767352 0.756596 +v -0.019550 0.767483 0.746523 +v -0.010032 0.757608 0.718444 +v 0.011101 0.775618 -0.751392 +v 0.014829 0.746439 -0.740846 +v -0.011101 0.749342 -0.723648 +v -0.014829 0.778521 -0.734194 +v -0.692788 1.289504 -0.748037 +v -0.694407 1.258821 -0.753733 +v -0.710059 1.254684 -0.727003 +v -0.708439 1.285368 -0.721307 +v -0.933840 1.870228 0.339042 +v -0.923487 1.899704 0.338352 +v -0.921475 1.898269 0.307200 +v -0.931829 1.868792 0.307890 +v 0.451844 2.105888 -0.729343 +v 0.445829 2.082972 -0.749720 +v 0.415163 2.087443 -0.745697 +v 0.421178 2.110360 -0.725320 +v -0.423559 2.116383 -0.738324 +v -0.421411 2.089866 -0.754719 +v -0.443448 2.076950 -0.736716 +v -0.445596 2.103467 -0.720321 +v -0.377169 0.573822 -0.344001 +v -0.369308 0.556547 -0.319174 +v -0.391328 0.570862 -0.302241 +v -0.399189 0.588137 -0.327067 +v 0.935823 1.863839 -0.325374 +v 0.912476 1.879881 -0.338572 +v 0.919493 1.904657 -0.320868 +v 0.942839 1.888617 -0.307670 +v 0.922768 1.100037 0.337866 +v 0.918963 1.103356 0.307026 +v 0.932547 1.131467 0.308377 +v 0.936352 1.128147 0.339216 +v -0.925593 1.094452 0.328629 +v -0.931403 1.120862 0.344290 +v -0.929723 1.137052 0.317614 +v -0.923912 1.110641 0.301952 +v 0.943630 1.125342 -0.311239 +v 0.933693 1.095992 -0.315285 +v 0.911686 1.106161 -0.335003 +v 0.921622 1.135511 -0.330957 +v -0.425439 2.093643 0.757870 +v -0.422154 2.115550 0.735828 +v -0.441567 2.099689 0.717170 +v -0.444853 2.077783 0.739212 +v 0.942297 1.870918 0.332933 +v 0.937698 1.880986 0.303709 +v 0.913019 1.897579 0.313309 +v 0.917617 1.887511 0.342533 +v -1.156318 1.937406 -0.550100 +v -1.165622 1.907573 -0.550100 +v -1.164544 1.907237 -0.518870 +v -1.155239 1.937070 -0.518870 +v -1.178721 1.817356 -0.548875 +v -1.185531 1.786857 -0.548875 +v -1.185531 1.786857 -0.517625 +v -1.178721 1.817356 -0.517625 +v -1.200428 1.694255 -0.548875 +v -1.207237 1.663756 -0.548875 +v -1.207237 1.663756 -0.517625 +v -1.200428 1.694255 -0.517625 +v -1.222133 1.571154 -0.548875 +v -1.228943 1.540655 -0.548875 +v -1.228943 1.540655 -0.517625 +v -1.222133 1.571154 -0.517625 +v -1.157016 1.940457 -0.673875 +v -1.163825 1.909958 -0.673875 +v -1.163825 1.909958 -0.642625 +v -1.157016 1.940457 -0.642625 +v -1.178721 1.817356 -0.673875 +v -1.185531 1.786857 -0.673875 +v -1.185531 1.786857 -0.642625 +v -1.178721 1.817356 -0.642625 +v -1.200428 1.694255 -0.673875 +v -1.207237 1.663756 -0.673875 +v -1.207237 1.663756 -0.642625 +v -1.200428 1.694255 -0.642625 +v -1.222133 1.571154 -0.673875 +v -1.228943 1.540655 -0.673875 +v -1.228943 1.540655 -0.642625 +v -1.222133 1.571154 -0.642625 +v -1.157016 1.940457 -0.798875 +v -1.163825 1.909958 -0.798875 +v -1.163825 1.909958 -0.767625 +v -1.157016 1.940457 -0.767625 +v -1.178721 1.817356 -0.798875 +v -1.185531 1.786857 -0.798875 +v -1.185531 1.786857 -0.767625 +v -1.178721 1.817356 -0.767625 +v -1.200428 1.694255 -0.798875 +v -1.207237 1.663756 -0.798875 +v -1.207237 1.663756 -0.767625 +v -1.200428 1.694255 -0.767625 +v -1.222133 1.571154 -0.798875 +v -1.228943 1.540655 -0.798875 +v -1.228943 1.540655 -0.767625 +v -1.222133 1.571154 -0.767625 +v -1.157016 1.940457 -0.923875 +v -1.163825 1.909958 -0.923875 +v -1.163825 1.909958 -0.892625 +v -1.157016 1.940457 -0.892625 +v -1.178721 1.817356 -0.923875 +v -1.185531 1.786857 -0.923875 +v -1.185531 1.786857 -0.892625 +v -1.178721 1.817356 -0.892625 +v -1.200428 1.694255 -0.923875 +v -1.207237 1.663756 -0.923875 +v -1.207237 1.663756 -0.892625 +v -1.200428 1.694255 -0.892625 +v -1.222133 1.571154 -0.923875 +v -1.228943 1.540655 -0.923875 +v -1.228943 1.540655 -0.892625 +v -1.222133 1.571154 -0.892625 +v -1.157016 1.940457 -1.048875 +v -1.163825 1.909958 -1.048875 +v -1.163825 1.909958 -1.017625 +v -1.157016 1.940457 -1.017625 +v -1.178721 1.817356 -1.048875 +v -1.185531 1.786857 -1.048875 +v -1.185531 1.786857 -1.017625 +v -1.178721 1.817356 -1.017625 +v -1.200428 1.694255 -1.048875 +v -1.207237 1.663756 -1.048875 +v -1.207237 1.663756 -1.017625 +v -1.200428 1.694255 -1.017625 +v -1.222133 1.571154 -1.048875 +v -1.228943 1.540655 -1.048875 +v -1.228943 1.540655 -1.017625 +v -1.222133 1.571154 -1.017625 +v -1.157016 1.940457 -1.173875 +v -1.163825 1.909958 -1.173875 +v -1.163825 1.909958 -1.142625 +v -1.157016 1.940457 -1.142625 +v -1.178721 1.817356 -1.173875 +v -1.185531 1.786857 -1.173875 +v -1.185531 1.786857 -1.142625 +v -1.178721 1.817356 -1.142625 +v -1.200428 1.694255 -1.173875 +v -1.207237 1.663756 -1.173875 +v -1.207237 1.663756 -1.142625 +v -1.200428 1.694255 -1.142625 +v -1.222133 1.571154 -1.173875 +v -1.228943 1.540655 -1.173875 +v -1.228943 1.540655 -1.142625 +v -1.222133 1.571154 -1.142625 +v 0.017136 0.743499 0.724780 +v 0.004522 0.734500 0.751918 +v -0.022795 0.747049 0.743382 +v -0.010181 0.756049 0.716244 +v -0.932735 1.892860 -0.303414 +v -0.921417 1.904215 -0.330238 +v -0.922581 1.875637 -0.342828 +v -0.933899 1.864282 -0.316004 +v -0.871601 1.130094 -0.328227 +v -0.874083 1.115559 -0.300674 +v -0.888143 1.140746 -0.288653 +v -0.885661 1.155281 -0.316206 +v -0.354684 2.391416 -0.290709 +v -0.345393 2.386196 -0.320086 +v -0.372583 2.372046 -0.326171 +v -0.381874 2.377266 -0.296794 +v 0.383366 2.379659 -0.294388 +v 0.378403 2.372027 -0.324283 +v 0.349512 2.383803 -0.322492 +v 0.354475 2.391435 -0.292597 +v -0.359405 0.609935 0.285871 +v -0.343644 0.613086 0.312670 +v -0.367861 0.628427 0.325109 +v -0.383623 0.625276 0.298310 +v 0.376633 0.615788 0.286180 +v 0.384590 0.629038 0.313341 +v 0.356245 0.622573 0.324799 +v 0.348287 0.609324 0.297639 +v 0.372838 0.627684 -0.327806 +v 0.386201 0.623987 -0.299800 +v 0.360040 0.610678 -0.289074 +v 0.346677 0.614375 -0.317080 +v 0.657378 1.298058 0.712639 +v 0.654377 1.267693 0.705891 +v 0.678131 1.269832 0.685699 +v 0.681132 1.300197 0.692447 +v -0.350919 2.380516 0.323522 +v -0.347705 2.392903 0.295013 +v -0.376347 2.382946 0.287458 +v -0.379561 2.370559 0.315968 +v 0.415770 2.049235 0.711656 +v 0.433448 2.064315 0.690760 +v 0.410693 2.085341 0.686682 +v 0.393014 2.070262 0.707578 +v 0.675740 1.267926 -0.689162 +v 0.653419 1.269644 -0.710965 +v 0.659769 1.299965 -0.715076 +v 0.682090 1.298246 -0.693273 +v 0.020709 0.791764 0.692041 +v 0.012137 0.813454 0.712841 +v -0.017903 0.807859 0.706297 +v -0.009332 0.786169 0.685497 +v 0.012411 0.812776 -0.716227 +v 0.020553 0.791856 -0.694488 +v -0.009605 0.786847 -0.688011 +v -0.017748 0.807768 -0.709750 +v -0.658659 1.301218 -0.714382 +v -0.650449 1.271109 -0.712762 +v -0.671239 1.266673 -0.689856 +v -0.679449 1.296781 -0.691476 +v -0.880574 1.849442 0.320662 +v -0.869416 1.878621 0.319862 +v -0.879170 1.881541 0.290318 +v -0.890328 1.852362 0.291118 +v 0.430095 2.071926 -0.688614 +v 0.424389 2.049967 -0.710104 +v 0.396367 2.062652 -0.715624 +v 0.402074 2.084610 -0.694134 +v -0.396101 2.083585 -0.697934 +v -0.396827 2.059312 -0.717603 +v -0.424750 2.050992 -0.706304 +v -0.424023 2.075265 -0.686635 +v -0.355627 0.622050 -0.328835 +v -0.344899 0.609076 -0.302507 +v -0.371639 0.616312 -0.288045 +v -0.382368 0.629286 -0.314372 +v 0.890566 1.844954 -0.310510 +v 0.875991 1.865047 -0.329496 +v 0.874790 1.886029 -0.306370 +v 0.889365 1.865937 -0.287384 +v 0.871530 1.122561 0.319584 +v 0.881710 1.119498 0.290198 +v 0.893825 1.148279 0.291396 +v 0.883646 1.151341 0.320782 +v -0.870180 1.116141 0.310253 +v -0.875363 1.142718 0.325854 +v -0.889564 1.154698 0.300727 +v -0.884381 1.128121 0.285126 +v 0.892881 1.146892 -0.292548 +v 0.879864 1.118546 -0.294453 +v 0.872474 1.123948 -0.324332 +v 0.885491 1.152294 -0.322427 +v -0.396307 2.059003 0.714012 +v -0.396346 2.083800 0.694994 +v -0.424543 2.075575 0.684326 +v -0.424505 2.050777 0.703344 +v 0.888492 1.845253 0.312187 +v 0.891987 1.861657 0.285820 +v 0.876863 1.885731 0.298793 +v 0.873368 1.869327 0.325160 +v -0.882969 1.873529 -0.288091 +v -0.870514 1.884555 -0.314546 +v -0.876775 1.857454 -0.328789 +v -0.889231 1.846428 -0.302334 +v -0.699444 1.251063 0.744007 +v -0.694129 1.278865 0.757249 +v -0.703402 1.293125 0.731034 +v -0.708717 1.265323 0.717791 +v -0.658734 1.263845 0.700877 +v -0.653428 1.291646 0.714126 +v -0.676775 1.304045 0.697461 +v -0.682081 1.276244 0.684212 +v -1.250682 1.800300 -0.504844 +v -1.244312 1.830791 -0.507355 +v -1.213916 1.824775 -0.503297 +v -1.220286 1.794284 -0.500787 +v -0.982266 1.884840 0.312786 +v -0.974819 1.915070 0.310093 +v -0.951790 1.907635 0.290320 +v -0.959237 1.877405 0.293013 +v -1.167644 1.905013 -0.411622 +v -1.147809 1.916676 -0.432767 +v -1.136946 1.887927 -0.438433 +v -1.156782 1.876265 -0.417288 +v -1.257349 1.835502 -0.632977 +v -1.231683 1.852062 -0.639583 +v -1.214005 1.829928 -0.626387 +v -1.239671 1.813368 -0.619780 +v -1.269599 1.671725 -0.522009 +v -1.273585 1.701356 -0.512916 +v -1.243640 1.702671 -0.504076 +v -1.239654 1.673040 -0.513170 +v -0.968102 1.101122 0.300168 +v -0.972912 1.126964 0.317068 +v -0.948098 1.140378 0.303620 +v -0.943288 1.114537 0.286720 +v -1.267418 1.634185 -0.650618 +v -1.296099 1.645030 -0.644588 +v -1.286089 1.656278 -0.617205 +v -1.257408 1.645433 -0.623235 +v -1.219398 1.450479 -0.568415 +v -1.246450 1.444145 -0.554110 +v -1.237709 1.461724 -0.529796 +v -1.210657 1.468058 -0.544101 +v -1.225639 1.945001 -0.500581 +v -1.202324 1.964765 -0.507089 +v -1.181590 1.941875 -0.502320 +v -1.204905 1.922112 -0.495812 +v -0.739907 2.136739 0.580774 +v -0.720859 2.154554 0.563559 +v -0.706554 2.128916 0.552854 +v -0.725602 2.111100 0.570069 +v -0.475138 2.112171 0.756943 +v -0.463366 2.130661 0.734670 +v -0.462442 2.106389 0.715009 +v -0.474215 2.087899 0.737281 +v -1.291063 1.545456 -0.511536 +v -1.294220 1.576348 -0.508029 +v -1.263562 1.578856 -0.502518 +v -1.260405 1.547964 -0.506026 +v -0.948442 1.317475 0.575246 +v -0.950512 1.347329 0.584250 +v -0.924351 1.353901 0.568470 +v -0.922282 1.324048 0.559466 +v -0.756633 1.265295 0.736868 +v -0.754544 1.293962 0.749129 +v -0.740023 1.303943 0.723320 +v -0.742113 1.275275 0.711059 +v -1.225876 1.970677 -0.643945 +v -1.196034 1.974689 -0.652306 +v -1.187520 1.951665 -0.632966 +v -1.217363 1.947655 -0.624605 +v -0.708222 2.312728 0.031637 +v -0.684215 2.309114 0.011961 +v -0.679826 2.280078 0.022649 +v -0.703834 2.283692 0.042325 +v -0.411357 2.455568 0.318103 +v -0.391060 2.450723 0.294841 +v -0.394931 2.419864 0.297890 +v -0.415228 2.424709 0.321152 +v -1.228111 1.987383 -0.749764 +v -1.198901 1.987463 -0.760869 +v -1.191670 1.963609 -0.742021 +v -1.220880 1.963529 -0.730916 +v -0.277296 2.456410 -0.010313 +v -0.260202 2.446807 -0.034647 +v -0.260223 2.417734 -0.023188 +v -0.277317 2.427338 0.001146 +v 0.382950 2.477947 0.302954 +v 0.401710 2.466248 0.280868 +v 0.384206 2.440387 0.279700 +v 0.365446 2.452085 0.301786 +v -1.273125 1.853628 -0.757993 +v -1.244658 1.862154 -0.767662 +v -1.231839 1.845921 -0.744237 +v -1.260306 1.837394 -0.734568 +v -1.160286 2.014342 -0.651530 +v -1.136128 2.009203 -0.670676 +v -1.128525 1.983731 -0.654246 +v -1.152682 1.988870 -0.635100 +v 0.080443 2.494827 0.551902 +v 0.096290 2.488848 0.525641 +v 0.084872 2.459760 0.525373 +v 0.069024 2.465739 0.551635 +v 0.430137 2.160579 0.735670 +v 0.443491 2.155233 0.707927 +v 0.418740 2.138223 0.699291 +v 0.405385 2.143569 0.727033 +v -0.689883 2.292951 -0.139719 +v -0.666622 2.287297 -0.159807 +v -0.663706 2.258391 -0.148296 +v -0.686967 2.264045 -0.128207 +v -0.300987 2.458956 0.229682 +v -0.279693 2.452532 0.207731 +v -0.279809 2.422510 0.216403 +v -0.301103 2.428934 0.238355 +v -1.277962 1.837572 -0.904344 +v -1.249453 1.847567 -0.912339 +v -1.238062 1.836657 -0.885362 +v -1.266571 1.826662 -0.877367 +v -1.141885 2.033298 -0.805968 +v -1.119419 2.022224 -0.824656 +v -1.112888 2.000027 -0.803651 +v -1.135353 2.011101 -0.784963 +v -0.418521 2.457716 -0.345257 +v -0.399861 2.444430 -0.366514 +v -0.405683 2.416358 -0.354078 +v -0.424342 2.429645 -0.332821 +v -1.270686 1.522317 -0.670676 +v -1.301203 1.527655 -0.666583 +v -1.295299 1.539801 -0.638402 +v -1.264781 1.534463 -0.642495 +v -0.780971 0.763280 -0.028970 +v -0.806318 0.752764 -0.014020 +v -0.804512 0.776759 0.005919 +v -0.779165 0.787275 -0.009031 +v -0.406400 0.557614 0.294573 +v -0.420413 0.542511 0.318069 +v -0.425938 0.569777 0.332302 +v -0.411926 0.584881 0.308805 +v -0.344519 2.443688 -0.494384 +v -0.331553 2.418868 -0.508254 +v -0.339349 2.401105 -0.483754 +v -0.352316 2.425925 -0.469884 +v 0.733007 2.298563 0.154754 +v 0.732383 2.276609 0.132523 +v 0.709714 2.261625 0.147956 +v 0.710338 2.283579 0.170187 +v 0.954970 1.941841 0.330687 +v 0.946309 1.933336 0.301891 +v 0.916809 1.930163 0.311700 +v 0.925469 1.938668 0.340496 +v -1.218629 1.988256 -0.914058 +v -1.189564 1.977734 -0.918651 +v -1.189073 1.966384 -0.889539 +v -1.218138 1.976906 -0.884946 +v 0.177467 2.442102 -0.227170 +v 0.184429 2.416794 -0.244128 +v 0.169763 2.398763 -0.223239 +v 0.162800 2.424071 -0.206282 +v -1.262764 1.537974 -0.805700 +v -1.293445 1.540689 -0.810977 +v -1.299228 1.533265 -0.781178 +v -1.268546 1.530550 -0.775901 +v -1.209338 1.460512 -0.817654 +v -1.227308 1.436931 -0.827533 +v -1.233191 1.428994 -0.797885 +v -1.215221 1.452575 -0.788007 +v -0.408007 0.558527 -0.352639 +v -0.414998 0.536402 -0.331706 +v -0.416323 0.558080 -0.309236 +v -0.409331 0.580204 -0.330169 +v -0.619798 0.742553 -0.370855 +v -0.640000 0.728000 -0.351969 +v -0.629834 0.745133 -0.327893 +v -0.609632 0.759685 -0.346778 +v -1.230728 1.458044 -0.706418 +v -1.257711 1.452871 -0.691528 +v -1.246891 1.468263 -0.666576 +v -1.219908 1.473435 -0.681466 +v -1.251448 1.654751 -0.784951 +v -1.278645 1.668818 -0.778707 +v -1.267097 1.679091 -0.751547 +v -1.239899 1.665023 -0.757791 +v -0.464045 2.119620 -0.761644 +v -0.457127 2.092153 -0.774844 +v -0.468140 2.077278 -0.749664 +v -0.475058 2.104745 -0.736464 +v -1.117438 2.044700 -0.999156 +v -1.103125 2.018915 -1.009494 +v -1.108725 2.004847 -0.982157 +v -1.123038 2.030631 -0.971820 +v -1.208328 1.975719 -1.041368 +v -1.179732 1.963533 -1.044577 +v -1.180409 1.954099 -1.014793 +v -1.209006 1.966285 -1.011583 +v 0.370087 2.477650 -0.329685 +v 0.371356 2.459130 -0.354824 +v 0.353789 2.437906 -0.340075 +v 0.352520 2.456427 -0.314936 +v -0.132913 2.490284 -0.521946 +v -0.120696 2.470372 -0.542701 +v -0.124076 2.446984 -0.522253 +v -0.136292 2.466897 -0.501497 +v -1.147826 2.037695 -0.938888 +v -1.124978 2.023528 -0.954821 +v -1.120232 2.004141 -0.930775 +v -1.143079 2.018309 -0.914842 +v -1.246547 1.833347 -1.032266 +v -1.216374 1.838247 -1.038758 +v -1.208372 1.824850 -1.011683 +v -1.238545 1.819950 -1.005191 +v 0.428442 2.141779 -0.767958 +v 0.426250 2.114627 -0.783271 +v 0.404111 2.105176 -0.763344 +v 0.406303 2.132328 -0.748031 +v 0.164884 2.170792 -0.897882 +v 0.168723 2.142047 -0.909527 +v 0.159689 2.129786 -0.882239 +v 0.155849 2.158530 -0.870595 +v -1.150275 2.044380 -1.142511 +v -1.135978 2.018185 -1.151785 +v -1.138413 2.006614 -1.122859 +v -1.152710 2.032808 -1.113584 +v -1.227184 1.966674 -1.172049 +v -1.196179 1.963353 -1.174106 +v -1.194762 1.957582 -1.143427 +v -1.225767 1.960901 -1.141370 +v -0.081033 0.550667 0.561118 +v -0.099551 0.530750 0.576511 +v -0.122591 0.551858 0.576106 +v -0.104073 0.571775 0.560713 +v -0.347769 0.595844 -0.578732 +v -0.369951 0.574112 -0.575229 +v -0.384405 0.592243 -0.554278 +v -0.362223 0.613974 -0.557781 +v -1.209457 1.466930 -0.928891 +v -1.232608 1.446149 -0.925946 +v -1.231919 1.449780 -0.894915 +v -1.208768 1.470561 -0.897860 +v -1.270576 1.532740 -0.915894 +v -1.301602 1.533237 -0.912197 +v -1.297879 1.535439 -0.881248 +v -1.266853 1.534943 -0.884945 +v 0.389232 0.555409 0.297459 +v 0.391752 0.529902 0.315335 +v 0.364631 0.536924 0.329180 +v 0.362111 0.562432 0.311304 +v -0.207880 0.569246 -0.561510 +v -0.220553 0.540752 -0.563527 +v -0.238641 0.547050 -0.538834 +v -0.225968 0.575543 -0.536817 +v -1.211726 1.465680 -0.963766 +v -1.237311 1.449687 -0.971904 +v -1.245983 1.448300 -0.941913 +v -1.220399 1.464293 -0.933775 +v -1.253845 1.642335 -0.948006 +v -1.283614 1.650151 -0.953414 +v -1.290991 1.642364 -0.924063 +v -1.261222 1.634548 -0.918655 +v 0.943516 1.871226 -0.359015 +v 0.914742 1.883286 -0.357229 +v 0.926923 1.911920 -0.354350 +v 0.955696 1.899860 -0.356136 +v 0.889329 1.870978 -0.569970 +v 0.863983 1.882787 -0.556015 +v 0.874178 1.911718 -0.561980 +v 0.899523 1.899910 -0.575935 +v 0.495434 1.861500 -0.981034 +v 0.480957 1.873584 -0.956116 +v 0.486243 1.902391 -0.967014 +v 0.500721 1.890307 -0.991932 +v -0.834393 1.814548 -1.283235 +v -0.836801 1.826961 -1.254658 +v -0.835730 1.855639 -1.267025 +v -0.833322 1.843226 -1.295602 +v -1.148200 1.825860 -1.266218 +v -1.138704 1.838350 -1.239193 +v -1.145305 1.866894 -1.250066 +v -1.154801 1.854404 -1.277091 +v -1.234792 1.805403 -1.194849 +v -1.212062 1.823185 -1.182861 +v -1.232931 1.845551 -1.176468 +v -1.255660 1.827768 -1.188457 +v 0.715545 1.248159 -0.776684 +v 0.686409 1.254946 -0.767652 +v 0.692966 1.285450 -0.769420 +v 0.722102 1.278663 -0.778453 +v 0.546517 1.291902 -0.987323 +v 0.530960 1.295632 -0.960479 +v 0.538480 1.325963 -0.960335 +v 0.554037 1.322233 -0.987180 +v -0.873200 1.639222 -1.281797 +v -0.876222 1.639836 -1.250700 +v -0.868384 1.670086 -1.250535 +v -0.865361 1.669473 -1.281632 +v -1.186465 1.724763 -1.278934 +v -1.168041 1.720581 -1.254042 +v -1.162655 1.751340 -1.252860 +v -1.181080 1.755523 -1.277752 +v -1.252684 1.708028 -1.067193 +v -1.221807 1.705025 -1.063432 +v -1.221114 1.731966 -1.047613 +v -1.251991 1.734969 -1.051374 +v -0.954687 1.560271 -1.298775 +v -0.985937 1.560271 -1.298775 +v -0.985937 1.591521 -1.298775 +v -0.954687 1.591521 -1.298775 +v -0.963335 1.590347 -1.336192 +v -0.970149 1.559849 -1.336192 +v -0.952451 1.555895 -1.310741 +v -0.945637 1.586393 -1.310741 +v -1.101448 1.611016 -1.336589 +v -1.086425 1.583614 -1.336589 +v -1.066532 1.594520 -1.315097 +v -1.081556 1.621922 -1.315097 +v -0.954687 1.560271 -1.251899 +v -0.985937 1.560271 -1.251899 +v -0.985937 1.591521 -1.251900 +v -0.954687 1.591521 -1.251900 +v -1.077788 1.581977 -1.252000 +v -1.109038 1.581977 -1.252000 +v -1.109038 1.613227 -1.252000 +v -1.077788 1.613227 -1.252000 +v 0.745194 1.273139 0.735025 +v 0.735015 1.244827 0.726576 +v 0.719654 1.257532 0.702510 +v 0.729833 1.285844 0.710959 +v 0.943610 1.259989 0.566791 +v 0.931926 1.231665 0.560645 +v 0.906328 1.244857 0.548509 +v 0.918013 1.273181 0.554655 +v 0.973016 1.351905 -0.575358 +v 0.960954 1.323080 -0.574949 +v 0.934052 1.334495 -0.563880 +v 0.946114 1.363320 -0.564288 +v 0.600109 1.441009 -1.009472 +v 0.592197 1.411235 -1.004230 +v 0.577894 1.419695 -0.977765 +v 0.585806 1.449470 -0.983007 +v -1.073487 1.623846 -1.364865 +v -1.067278 1.593794 -1.358955 +v -1.058762 1.601281 -1.329834 +v -1.064971 1.631332 -1.335745 +v 0.951122 1.085692 0.312932 +v 0.926018 1.099264 0.300198 +v 0.940128 1.127087 0.302037 +v 0.965232 1.113515 0.314771 +v 0.935073 1.197188 -0.576146 +v 0.909195 1.208910 -0.563128 +v 0.922666 1.237072 -0.561709 +v 0.948544 1.225349 -0.574726 +v 0.560659 1.358615 -0.982424 +v 0.547104 1.365096 -0.955023 +v 0.557465 1.394521 -0.956857 +v 0.571020 1.388041 -0.984259 +v -0.840678 1.692593 -1.288240 +v -0.843022 1.696158 -1.257282 +v -0.836343 1.726539 -1.260275 +v -0.833999 1.722973 -1.291232 +v -1.187308 1.756017 -1.283439 +v -1.176978 1.758718 -1.254070 +v -1.181892 1.789558 -1.255177 +v -1.192222 1.786859 -1.284546 +v -1.281084 1.697572 -1.201442 +v -1.256675 1.712997 -1.189491 +v -1.276172 1.731483 -1.173532 +v -1.300580 1.716059 -1.185483 +v 0.953203 1.134244 -0.358307 +v 0.944705 1.104700 -0.363921 +v 0.914640 1.113173 -0.362995 +v 0.923138 1.142717 -0.357381 +v 0.925834 1.168328 -0.575803 +v 0.918043 1.138104 -0.577344 +v 0.890808 1.144413 -0.563379 +v 0.898599 1.174636 -0.561838 +v 0.528609 1.250118 -0.993705 +v 0.521870 1.219603 -0.993587 +v 0.506780 1.223040 -0.966439 +v 0.513519 1.253554 -0.966556 +v -0.935810 1.584189 -1.354551 +v -0.942693 1.553706 -1.354520 +v -0.936888 1.552426 -1.323841 +v -0.930005 1.582909 -1.323871 +v -0.246489 0.832329 -0.855722 +v -0.258502 0.803503 -0.856856 +v -0.266625 0.805704 -0.826760 +v -0.254612 0.834530 -0.825626 +v -1.214327 1.469654 -1.049257 +v -1.236530 1.447909 -1.052539 +v -1.241021 1.447826 -1.021614 +v -1.218818 1.469571 -1.018332 +v -1.262501 1.543276 -1.052072 +v -1.293222 1.548172 -1.055042 +v -1.296599 1.545773 -1.024067 +v -1.265878 1.540877 -1.021098 +v 0.374585 0.560388 -0.353116 +v 0.377918 0.534075 -0.336591 +v 0.358668 0.545373 -0.314720 +v 0.355335 0.571686 -0.331244 +v -0.000276 0.530372 -0.584431 +v -0.012797 0.502610 -0.577427 +v -0.023881 0.514358 -0.550675 +v -0.011360 0.542120 -0.557679 +v -1.218359 1.455832 -1.164818 +v -1.241896 1.435340 -1.163192 +v -1.245818 1.442244 -1.132967 +v -1.222281 1.462735 -1.134594 +v -1.269335 1.533842 -1.177511 +v -1.300350 1.537532 -1.178506 +v -1.301281 1.538129 -1.147276 +v -1.270266 1.534439 -1.146281 +v -1.173318 1.944097 -0.673875 +v -1.180127 1.913598 -0.673875 +v -1.180127 1.913598 -0.642625 +v -1.173318 1.944097 -0.642625 +v -1.195024 1.820996 -0.673875 +v -1.201833 1.790497 -0.673875 +v -1.201833 1.790497 -0.642625 +v -1.195024 1.820996 -0.642625 +v -1.216730 1.697895 -0.673875 +v -1.223539 1.667396 -0.673875 +v -1.223539 1.667396 -0.642625 +v -1.216730 1.697895 -0.642625 +v -1.216730 1.697895 -0.798875 +v -1.223539 1.667396 -0.798875 +v -1.223539 1.667396 -0.767625 +v -1.216730 1.697895 -0.767625 +v -0.364991 2.414379 -0.298050 +v -0.355700 2.409160 -0.327426 +v -0.382890 2.395009 -0.333511 +v -0.392181 2.400229 -0.304135 +v 0.425906 2.063924 0.730832 +v 0.443584 2.079004 0.709936 +v 0.420829 2.100030 0.705858 +v 0.403150 2.084951 0.726754 +v -0.904467 1.858820 0.329478 +v -0.893309 1.888000 0.328678 +v -0.903063 1.890920 0.299133 +v -0.914221 1.861741 0.299933 +v -0.894073 1.106308 0.319069 +v -0.899256 1.132884 0.334669 +v -0.913457 1.144864 0.309542 +v -0.908274 1.118287 0.293942 +v -0.675568 1.257920 0.720053 +v -0.670262 1.285721 0.733302 +v -0.693610 1.298119 0.716636 +v -0.698915 1.270318 0.703387 +v -1.219347 1.937230 -0.524101 +v -1.196883 1.958954 -0.524101 +v -1.177292 1.938695 -0.510599 +v -1.199756 1.916971 -0.510599 +v -0.430747 0.577754 -0.354696 +v -0.447749 0.560204 -0.335216 +v -0.436113 0.575960 -0.310866 +v -0.419111 0.593510 -0.330346 +v -1.252167 1.693828 -1.058028 +v -1.220919 1.694257 -1.058028 +v -1.221169 1.712454 -1.032624 +v -1.252416 1.712025 -1.032624 +v -1.259744 1.683084 -1.186409 +v -1.242361 1.709054 -1.186409 +v -1.255320 1.717729 -1.159328 +v -1.272704 1.691760 -1.159328 +vt 0.017442 0.019417 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.009709 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.122093 0.038835 +vt 0.110465 0.029126 +vt 0.122093 0.029126 +vt 0.168605 0.048544 +vt 0.162791 0.038835 +vt 0.168605 0.038835 +vt 0.168605 0.019417 +vt 0.162791 0.009709 +vt 0.168605 0.009709 +vt 0.168605 0.029126 +vt 0.162791 0.019417 +vt 0.005814 0.029126 +vt 0.017442 0.038835 +vt 0.005814 0.038835 +vt 0.348837 0.038835 +vt 0.343023 0.029126 +vt 0.348837 0.029126 +vt 0.348837 0.048544 +vt 0.343023 0.038835 +vt 0.348837 0.019417 +vt 0.343023 0.009709 +vt 0.348837 0.009709 +vt 0.343023 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.308140 0.048544 +vt 0.302326 0.038835 +vt 0.308140 0.038835 +vt 0.308140 0.019417 +vt 0.302326 0.009709 +vt 0.308140 0.009709 +vt 0.308140 0.029126 +vt 0.302326 0.019417 +vt 0.005814 0.029126 +vt 0.017442 0.038835 +vt 0.005814 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011814 0.038878 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.009709 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.011628 0.009709 +vt 0.017442 0.009709 +vt 0.005814 0.038835 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.038835 +vt 0.005814 0.038835 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.011628 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.023256 0.029126 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.023256 0.019417 +vt 0.011628 0.009709 +vt 0.023256 0.009709 +vt 0.005814 0.038835 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.017442 0.038835 +vt 0.023256 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.029126 +vt 0.023256 0.038835 +vt 0.017442 0.019417 +vt 0.023256 0.029126 +vt 0.017442 0.009709 +vt 0.023256 0.019417 +vt 0.424419 0.038835 +vt 0.412791 0.048544 +vt 0.412791 0.038835 +vt 0.424419 0.019417 +vt 0.412791 0.009709 +vt 0.424419 0.009709 +vt 0.424419 0.029126 +vt 0.412791 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.319767 0.029126 +vt 0.308140 0.038835 +vt 0.308140 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.017442 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.011628 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.011628 0.038835 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.011628 0.009709 +vt 0.005814 0.048544 +vt 0.174419 0.029126 +vt 0.174419 0.048544 +vt 0.174419 0.038835 +vt 0.174419 0.019417 +vt 0.174419 0.009709 +vt 0.005814 0.019417 +vt 0.011628 0.009709 +vt 0.005814 0.048544 +vt 0.406977 0.029126 +vt 0.412791 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.313953 0.029126 +vt 0.313953 0.048544 +vt 0.313953 0.038835 +vt 0.313953 0.019417 +vt 0.313953 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.151163 0.019417 +vt 0.139535 0.009709 +vt 0.151163 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.581395 0.029126 +vt 0.569767 0.019417 +vt 0.581395 0.019417 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.180233 0.029126 +vt 0.168605 0.038835 +vt 0.168605 0.029126 +vt 0.005814 0.019417 +vt 0.011628 0.029126 +vt 0.005814 0.048544 +vt 0.383721 0.029126 +vt 0.372093 0.038835 +vt 0.372093 0.029126 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.011628 0.019417 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.343023 0.029126 +vt 0.331395 0.038835 +vt 0.331395 0.029126 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.563953 0.029126 +vt 0.563953 0.019417 +vt 0.569767 0.029126 +vt 0.563953 0.038835 +vt 0.569767 0.048544 +vt 0.569767 0.038835 +vt 0.569767 0.009709 +vt 0.563953 0.009709 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.005814 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.048544 +vt 0.116279 0.029126 +vt 0.116279 0.019417 +vt 0.279070 0.029126 +vt 0.273256 0.038835 +vt 0.273256 0.029126 +vt 0.279070 0.038835 +vt 0.273256 0.048544 +vt 0.279070 0.019417 +vt 0.273256 0.009709 +vt 0.279070 0.009709 +vt 0.273256 0.019417 +vt 0.284884 0.038835 +vt 0.284884 0.029126 +vt 0.279070 0.048544 +vt 0.284884 0.019417 +vt 0.284884 0.009709 +vt 0.383721 0.038835 +vt 0.372093 0.048544 +vt 0.383721 0.019417 +vt 0.372093 0.009709 +vt 0.383721 0.009709 +vt 0.372093 0.019417 +vt 0.360465 0.038835 +vt 0.360465 0.029126 +vt 0.017442 0.009709 +vt 0.005814 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.038835 +vt 0.017442 0.038835 +vt 0.540698 0.019417 +vt 0.529070 0.029126 +vt 0.529070 0.019417 +vt 0.540698 0.029126 +vt 0.529070 0.038835 +vt 0.540698 0.048544 +vt 0.540698 0.038835 +vt 0.424419 0.019417 +vt 0.412791 0.029126 +vt 0.412791 0.019417 +vt 0.424419 0.029126 +vt 0.412791 0.038835 +vt 0.424419 0.048544 +vt 0.424419 0.038835 +vt 0.715116 0.038835 +vt 0.703488 0.048544 +vt 0.703488 0.038835 +vt 0.715116 0.019417 +vt 0.703488 0.009709 +vt 0.715116 0.009709 +vt 0.715116 0.029126 +vt 0.703488 0.019417 +vt 0.697674 0.029126 +vt 0.703488 0.029126 +vt 0.290698 0.038835 +vt 0.279070 0.048544 +vt 0.279070 0.038835 +vt 0.290698 0.019417 +vt 0.279070 0.009709 +vt 0.290698 0.009709 +vt 0.290698 0.029126 +vt 0.279070 0.019417 +vt 0.476744 0.029126 +vt 0.470930 0.038835 +vt 0.470930 0.029126 +vt 0.476744 0.038835 +vt 0.470930 0.048544 +vt 0.476744 0.019417 +vt 0.470930 0.009709 +vt 0.476744 0.009709 +vt 0.470930 0.019417 +vt 0.482558 0.038835 +vt 0.482558 0.029126 +vt 0.482558 0.048544 +vt 0.482558 0.009709 +vt 0.482558 0.019417 +vt 0.453488 0.009709 +vt 0.441860 0.019417 +vt 0.441860 0.009709 +vt 0.453488 0.029126 +vt 0.453488 0.019417 +vt 0.453488 0.038835 +vt 0.441860 0.029126 +vt 0.441860 0.038835 +vt 0.436047 0.048544 +vt 0.436047 0.038835 +vt 0.581395 0.038835 +vt 0.581395 0.009709 +vt 0.308140 0.019417 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.308140 0.029126 +vt 0.296512 0.038835 +vt 0.308140 0.048544 +vt 0.308140 0.038835 +vt 0.139535 0.029126 +vt 0.151163 0.029126 +vt 0.139535 0.038835 +vt 0.151163 0.038835 +vt 0.151163 0.048544 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.197674 0.029126 +vt 0.191860 0.019417 +vt 0.197674 0.019417 +vt 0.191860 0.038835 +vt 0.191860 0.029126 +vt 0.197674 0.038835 +vt 0.191860 0.048544 +vt 0.191860 0.009709 +vt 0.197674 0.009709 +vt 0.209302 0.029126 +vt 0.209302 0.019417 +vt 0.209302 0.048544 +vt 0.209302 0.038835 +vt 0.209302 0.009709 +vt 0.343023 0.038835 +vt 0.331395 0.048544 +vt 0.343023 0.019417 +vt 0.331395 0.009709 +vt 0.343023 0.009709 +vt 0.331395 0.019417 +vt 0.325581 0.038835 +vt 0.325581 0.029126 +vt 0.180233 0.038835 +vt 0.168605 0.048544 +vt 0.180233 0.019417 +vt 0.168605 0.009709 +vt 0.180233 0.009709 +vt 0.168605 0.019417 +vt 0.162791 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.005814 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.048544 +vt 0.023256 0.038835 +vt 0.488372 0.019417 +vt 0.476744 0.009709 +vt 0.488372 0.009709 +vt 0.488372 0.029126 +vt 0.476744 0.019417 +vt 0.476744 0.038835 +vt 0.476744 0.029126 +vt 0.476744 0.048544 +vt 0.470930 0.038835 +vt 0.680233 0.019417 +vt 0.668605 0.009709 +vt 0.680233 0.009709 +vt 0.680233 0.029126 +vt 0.668605 0.019417 +vt 0.668605 0.038835 +vt 0.668605 0.029126 +vt 0.232558 0.029126 +vt 0.226744 0.019417 +vt 0.232558 0.019417 +vt 0.226744 0.038835 +vt 0.226744 0.029126 +vt 0.232558 0.038835 +vt 0.226744 0.048544 +vt 0.226744 0.009709 +vt 0.232558 0.009709 +vt 0.238372 0.029126 +vt 0.238372 0.019417 +vt 0.238372 0.048544 +vt 0.238372 0.038835 +vt 0.238372 0.009709 +vt 0.482558 0.038835 +vt 0.470930 0.048544 +vt 0.470930 0.038835 +vt 0.482558 0.009709 +vt 0.470930 0.019417 +vt 0.470930 0.009709 +vt 0.482558 0.029126 +vt 0.482558 0.019417 +vt 0.319767 0.038835 +vt 0.308140 0.048544 +vt 0.319767 0.019417 +vt 0.308140 0.009709 +vt 0.319767 0.009709 +vt 0.308140 0.019417 +vt 0.302326 0.029126 +vt 0.552326 0.038835 +vt 0.540698 0.048544 +vt 0.540698 0.038835 +vt 0.552326 0.019417 +vt 0.540698 0.009709 +vt 0.552326 0.009709 +vt 0.552326 0.029126 +vt 0.540698 0.019417 +vt 0.529070 0.029126 +vt 0.540698 0.029126 +vt 0.110465 0.048544 +vt 0.110465 0.038835 +vt 0.122093 0.009709 +vt 0.110465 0.019417 +vt 0.110465 0.009709 +vt 0.122093 0.019417 +vt 0.063953 0.048544 +vt 0.290698 0.019417 +vt 0.284884 0.029126 +vt 0.284884 0.019417 +vt 0.290698 0.029126 +vt 0.284884 0.038835 +vt 0.290698 0.048544 +vt 0.290698 0.038835 +vt 0.284884 0.009709 +vt 0.290698 0.009709 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.296512 0.048544 +vt 0.296512 0.038835 +vt 0.296512 0.009709 +vt 0.063953 0.009709 +vt 0.063953 0.019417 +vt 0.063953 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.186047 0.029126 +vt 0.186047 0.048544 +vt 0.186047 0.038835 +vt 0.186047 0.009709 +vt 0.023256 0.029126 +vt 0.023256 0.019417 +vt 0.116279 0.009709 +vt 0.116279 0.038835 +vt 0.156977 0.038835 +vt 0.162791 0.029126 +vt 0.220930 0.029126 +vt 0.220930 0.038835 +vt 0.220930 0.019417 +vt 0.220930 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.186047 0.019417 +vt 0.023256 0.048544 +vt 0.063953 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.019417 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.220930 0.048544 +vt 0.156977 0.019417 +vt 0.156977 0.029126 +vt 0.156977 0.009709 +vt 0.156977 0.048544 +vt 0.162791 0.048544 +vt 0.116279 0.048544 +vt 0.302326 0.038835 +vt 0.302326 0.019417 +vt 0.302326 0.009709 +vt 0.023256 0.038835 +vt 0.017442 0.029126 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.244186 0.029126 +vt 0.244186 0.038835 +vt 0.244186 0.048544 +vt 0.244186 0.019417 +vt 0.302326 0.048544 +vt 0.244186 0.009709 +vt 0.290698 0.038835 +vt 0.191860 0.029126 +vt 0.290698 0.029126 +vt 0.279070 0.029126 +vt 0.279070 0.048544 +vt 0.279070 0.038835 +vt 0.279070 0.019417 +vt 0.279070 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.023256 0.019417 +vt 0.238372 0.029126 +vt 0.238372 0.038835 +vt 0.238372 0.048544 +vt 0.238372 0.019417 +vt 0.238372 0.009709 +vt 0.273256 0.029126 +vt 0.279070 0.029126 +vt 0.273256 0.038835 +vt 0.273256 0.019417 +vt 0.273256 0.009709 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.197674 0.029126 +vt 0.197674 0.038835 +vt 0.197674 0.048544 +vt 0.197674 0.019417 +vt 0.273256 0.048544 +vt 0.406977 0.038835 +vt 0.406977 0.019417 +vt 0.406977 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.261628 0.029126 +vt 0.261628 0.038835 +vt 0.261628 0.048544 +vt 0.261628 0.019417 +vt 0.406977 0.048544 +vt 0.261628 0.009709 +vt 0.459302 0.038835 +vt 0.459302 0.019417 +vt 0.459302 0.009709 +vt 0.459302 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.038835 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.058140 0.029126 +vt 0.058140 0.038835 +vt 0.058140 0.048544 +vt 0.058140 0.019417 +vt 0.023256 0.029126 +vt 0.377907 0.038835 +vt 0.377907 0.048544 +vt 0.290698 0.048544 +vt 0.290698 0.019417 +vt 0.377907 0.009709 +vt 0.377907 0.019417 +vt 0.377907 0.029126 +vt 0.459302 0.048544 +vt 0.191860 0.038835 +vt 0.191860 0.048544 +vt 0.191860 0.009709 +vt 0.191860 0.019417 +vt 0.290698 0.009709 +vt 0.261628 0.038835 +vt 0.261628 0.019417 +vt 0.261628 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.069767 0.029126 +vt 0.069767 0.038835 +vt 0.069767 0.048544 +vt 0.069767 0.019417 +vt 0.261628 0.029126 +vt 0.261628 0.048544 +vt 0.069767 0.009709 +vt 0.023256 0.029126 +vt 0.017442 0.029126 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.337209 0.038835 +vt 0.354651 0.038835 +vt 0.354651 0.048544 +vt 0.354651 0.009709 +vt 0.354651 0.019417 +vt 0.354651 0.029126 +vt 0.023256 0.019417 +vt 0.040698 0.029126 +vt 0.023256 0.029126 +vt 0.337209 0.019417 +vt 0.337209 0.029126 +vt 0.337209 0.009709 +vt 0.337209 0.048544 +vt 0.343023 0.048544 +vt 0.127907 0.029126 +vt 0.127907 0.019417 +vt 0.127907 0.009709 +vt 0.127907 0.038835 +vt 0.023256 0.009709 +vt 0.529070 0.038835 +vt 0.529070 0.019417 +vt 0.529070 0.009709 +vt 0.023256 0.038835 +vt 0.215116 0.029126 +vt 0.215116 0.038835 +vt 0.023256 0.048544 +vt 0.215116 0.048544 +vt 0.023256 0.009709 +vt 0.215116 0.019417 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.325581 0.029126 +vt 0.447674 0.038835 +vt 0.325581 0.038835 +vt 0.447674 0.048544 +vt 0.325581 0.048544 +vt 0.325581 0.019417 +vt 0.447674 0.009709 +vt 0.447674 0.019417 +vt 0.447674 0.029126 +vt 0.529070 0.048544 +vt 0.215116 0.009709 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.139535 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.040698 0.009709 +vt 0.139535 0.019417 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.009709 +vt 0.023256 0.048544 +vt 0.069767 0.038835 +vt 0.029070 0.029126 +vt 0.069767 0.029126 +vt 0.029070 0.019417 +vt 0.069767 0.019417 +vt 0.069767 0.009709 +vt 0.029070 0.009709 +vt 0.029070 0.048544 +vt 0.029070 0.038835 +vt 0.255814 0.038835 +vt 0.255814 0.029126 +vt 0.255814 0.019417 +vt 0.255814 0.009709 +vt 0.255814 0.048544 +vt 0.296512 0.038835 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.296512 0.009709 +vt 0.302326 0.029126 +vt 0.296512 0.048544 +vt 0.302326 0.048544 +vt 0.162791 0.038835 +vt 0.162791 0.019417 +vt 0.162791 0.009709 +vt 0.040698 0.038835 +vt 0.162791 0.048544 +vt 0.040698 0.048544 +vt 0.040698 0.009709 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.360465 0.009709 +vt 0.360465 0.019417 +vt 0.273256 0.029126 +vt 0.273256 0.038835 +vt 0.360465 0.048544 +vt 0.273256 0.048544 +vt 0.273256 0.019417 +vt 0.058140 0.038835 +vt 0.058140 0.048544 +vt 0.058140 0.009709 +vt 0.058140 0.019417 +vt 0.058140 0.029126 +vt 0.017442 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.038835 +vt 0.325581 0.009709 +vt 0.325581 0.019417 +vt 0.273256 0.029126 +vt 0.273256 0.038835 +vt 0.325581 0.048544 +vt 0.273256 0.048544 +vt 0.273256 0.019417 +vt 0.034884 0.038835 +vt 0.034884 0.048544 +vt 0.034884 0.009709 +vt 0.034884 0.019417 +vt 0.034884 0.029126 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.517442 0.019417 +vt 0.517442 0.029126 +vt 0.517442 0.038835 +vt 0.517442 0.048544 +vt 0.563953 0.048544 +vt 0.517442 0.009709 +vt 0.284884 0.029126 +vt 0.284884 0.038835 +vt 0.284884 0.048544 +vt 0.284884 0.009709 +vt 0.284884 0.019417 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.040698 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.040698 0.009709 +vt 0.023256 0.009709 +vt 0.005814 0.009709 +vt 0.017442 0.009709 +vt 0.005814 0.009709 +vt 0.523256 0.009709 +vt 0.529070 0.009709 +vt 0.523256 0.019417 +vt 0.523256 0.038835 +vt 0.523256 0.029126 +vt 0.523256 0.048544 +vt 0.331395 0.019417 +vt 0.331395 0.029126 +vt 0.331395 0.038835 +vt 0.331395 0.048544 +vt 0.063953 0.009709 +vt 0.063953 0.019417 +vt 0.063953 0.029126 +vt 0.063953 0.038835 +vt 0.063953 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.540698 0.009709 +vt 0.470930 0.019417 +vt 0.470930 0.009709 +vt 0.470930 0.029126 +vt 0.436047 0.048544 +vt 0.470930 0.048544 +vt 0.436047 0.019417 +vt 0.436047 0.029126 +vt 0.436047 0.038835 +vt 0.337209 0.048544 +vt 0.337209 0.009709 +vt 0.337209 0.019417 +vt 0.337209 0.029126 +vt 0.337209 0.038835 +vt 0.093023 0.038835 +vt 0.093023 0.048544 +vt 0.093023 0.019417 +vt 0.093023 0.029126 +vt 0.040698 0.048544 +vt 0.040698 0.009709 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.040698 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.017442 0.009709 +vt 0.488372 0.038835 +vt 0.436047 0.019417 +vt 0.436047 0.009709 +vt 0.436047 0.029126 +vt 0.389535 0.038835 +vt 0.389535 0.048544 +vt 0.389535 0.009709 +vt 0.389535 0.019417 +vt 0.389535 0.029126 +vt 0.116279 0.038835 +vt 0.116279 0.048544 +vt 0.116279 0.019417 +vt 0.116279 0.029126 +vt 0.058140 0.048544 +vt 0.058140 0.009709 +vt 0.058140 0.019417 +vt 0.058140 0.029126 +vt 0.058140 0.038835 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.441860 0.048544 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.009709 +vt 0.470930 0.029126 +vt 0.459302 0.038835 +vt 0.459302 0.029126 +vt 0.023256 0.048544 +vt 0.005814 0.038835 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.005814 0.029126 +vt 0.023256 0.019417 +vt 0.005814 0.019417 +vt 0.023256 0.009709 +vt 0.005814 0.009709 +vt 0.029070 0.038835 +vt 0.029070 0.029126 +vt 0.697674 0.038835 +vt 0.697674 0.019417 +vt 0.697674 0.009709 +vt 0.651163 0.038835 +vt 0.651163 0.048544 +vt 0.697674 0.048544 +vt 0.651163 0.009709 +vt 0.651163 0.019417 +vt 0.651163 0.029126 +vt 0.436047 0.029126 +vt 0.436047 0.038835 +vt 0.436047 0.048544 +vt 0.436047 0.019417 +vt 0.331395 0.038835 +vt 0.331395 0.048544 +vt 0.331395 0.009709 +vt 0.331395 0.019417 +vt 0.331395 0.029126 +vt 0.029070 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.680233 0.038835 +vt 0.668605 0.048544 +vt 0.662791 0.038835 +vt 0.662791 0.019417 +vt 0.662791 0.009709 +vt 0.662791 0.029126 +vt 0.488372 0.038835 +vt 0.662791 0.048544 +vt 0.488372 0.048544 +vt 0.488372 0.009709 +vt 0.488372 0.019417 +vt 0.488372 0.029126 +vt 0.383721 0.038835 +vt 0.383721 0.048544 +vt 0.383721 0.009709 +vt 0.383721 0.019417 +vt 0.383721 0.029126 +vt 0.116279 0.038835 +vt 0.116279 0.048544 +vt 0.116279 0.019417 +vt 0.116279 0.029126 +vt 0.052326 0.009709 +vt 0.052326 0.019417 +vt 0.052326 0.029126 +vt 0.052326 0.038835 +vt 0.029070 0.048544 +vt 0.052326 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.029070 0.029126 +vt 0.029070 0.038835 +vt 0.023256 0.038835 +vt 0.459302 0.009709 +vt 0.459302 0.019417 +vt 0.424419 0.038835 +vt 0.424419 0.048544 +vt 0.459302 0.048544 +vt 0.424419 0.009709 +vt 0.424419 0.019417 +vt 0.424419 0.029126 +vt 0.313953 0.029126 +vt 0.313953 0.038835 +vt 0.313953 0.048544 +vt 0.313953 0.019417 +vt 0.029070 0.038835 +vt 0.029070 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.029070 0.029126 +vt 0.023256 0.009709 +vt 0.238372 0.019417 +vt 0.296512 0.009709 +vt 0.238372 0.029126 +vt 0.238372 0.048544 +vt 0.296512 0.048544 +vt 0.034884 0.009709 +vt 0.034884 0.019417 +vt 0.034884 0.029126 +vt 0.034884 0.038835 +vt 0.238372 0.038835 +vt 0.034884 0.048544 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.308140 0.009709 +vt 0.406977 0.009709 +vt 0.412791 0.009709 +vt 0.406977 0.019417 +vt 0.406977 0.029126 +vt 0.406977 0.048544 +vt 0.406977 0.038835 +vt 0.325581 0.019417 +vt 0.325581 0.029126 +vt 0.325581 0.038835 +vt 0.325581 0.048544 +vt 0.040698 0.019417 +vt 0.325581 0.009709 +vt 0.040698 0.029126 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.005814 0.009709 +vt 0.011628 0.009709 +vt 0.424419 0.009709 +vt 0.005814 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.424419 0.048544 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.284884 0.048544 +vt 0.383721 0.048544 +vt 0.005814 0.048544 +vt 0.529070 0.048544 +vt 0.412791 0.048544 +vt 0.715116 0.048544 +vt 0.290698 0.048544 +vt 0.476744 0.048544 +vt 0.581395 0.048544 +vt 0.197674 0.048544 +vt 0.343023 0.048544 +vt 0.180233 0.048544 +vt 0.005814 0.009709 +vt 0.232558 0.048544 +vt 0.482558 0.048544 +vt 0.319767 0.048544 +vt 0.552326 0.048544 +vt 0.122093 0.048544 +vt 0.284884 0.048544 +vt 0.197674 0.009709 +vt 0.058140 0.009709 +vt 0.127907 0.048544 +vt 0.325581 0.009709 +vt 0.069767 0.048544 +vt 0.273256 0.009709 +vt 0.273256 0.009709 +vt 0.331395 0.009709 +vt 0.436047 0.009709 +vt 0.093023 0.009709 +vt 0.488372 0.048544 +vt 0.116279 0.009709 +vt 0.453488 0.048544 +vt 0.005814 0.048544 +vt 0.436047 0.009709 +vt 0.680233 0.048544 +vt 0.116279 0.009709 +vt 0.023256 0.048544 +vt 0.313953 0.009709 +vt 0.238372 0.009709 +vt 0.040698 0.009709 +vn -0.1987 -0.9327 0.3009 +vn -0.4297 -0.5556 -0.7118 +vn -0.0322 -0.8001 0.5990 +vn 0.8167 0.0672 0.5732 +vn 0.5228 0.6581 0.5419 +vn -0.0041 0.9160 -0.4012 +vn 0.0025 0.6642 -0.7475 +vn -0.2349 -0.6674 -0.7066 +vn 0.1861 0.6827 -0.7066 +vn -0.3240 -0.5971 -0.7338 +vn -0.4111 0.7374 -0.5360 +vn -0.0434 0.6814 -0.7306 +vn 0.0026 -0.7882 0.6154 +vn -0.6562 -0.5407 -0.5264 +vn 0.3294 0.7106 0.6217 +vn 0.2890 -0.8069 0.5151 +vn 0.5413 0.6728 0.5043 +vn -0.2631 -0.6162 -0.7423 +vn -0.4144 0.6926 -0.5904 +vn -0.0036 0.6890 -0.7247 +vn 0.0106 -0.7691 0.6390 +vn -0.4894 -0.6433 -0.5888 +vn 0.2780 0.7127 0.6441 +vn -0.1731 -0.5478 0.8185 +vn 0.4082 0.7238 0.5563 +vn -0.2815 -0.6019 -0.7473 +vn -0.5240 0.6396 -0.5624 +vn -0.0329 0.6894 -0.7237 +vn 0.0527 -0.7923 0.6079 +vn -0.5185 -0.6701 -0.5311 +vn 0.3061 0.7107 0.6334 +vn 0.3483 -0.6377 0.6870 +vn 0.3925 0.7915 0.4685 +vn -0.3480 -0.6379 -0.6871 +vn -0.5016 -0.7102 0.4940 +vn -0.7390 -0.1192 -0.6631 +vn -0.2105 -0.7437 0.6346 +vn 0.5180 0.2010 0.8315 +vn 0.4184 0.6429 0.6416 +vn 0.3503 0.7327 -0.5835 +vn 0.2726 0.7074 -0.6521 +vn -0.8686 0.4478 -0.2122 +vn -0.3249 -0.6289 -0.7064 +vn -0.2826 -0.8411 0.4611 +vn -0.7449 -0.2105 -0.6331 +vn -0.1211 -0.7602 0.6383 +vn 0.5858 0.2530 0.7700 +vn 0.4078 0.6594 0.6316 +vn 0.1204 0.8161 -0.5652 +vn 0.4208 0.8642 -0.2758 +vn -0.2328 0.4357 0.8695 +vn -0.1424 0.3654 0.9199 +vn 0.1164 -0.7448 0.6571 +vn 0.1257 -0.7617 -0.6356 +vn -0.0781 -0.6041 -0.7931 +vn 0.0683 0.7675 0.6374 +vn 0.4322 -0.3767 0.8194 +vn -0.0481 0.7362 -0.6750 +vn -0.2721 0.8014 0.5326 +vn 0.2499 -0.9033 0.3486 +vn 0.2764 -0.4564 -0.8457 +vn 0.3547 -0.2366 -0.9045 +vn 0.0214 -0.6144 -0.7887 +vn -0.5098 0.5459 -0.6649 +vn -0.0537 0.7549 -0.6536 +vn 0.1032 -0.6636 0.7409 +vn 0.3203 -0.6132 -0.7221 +vn -0.0290 0.7634 0.6453 +vn 0.2851 -0.5604 0.7776 +vn -0.4289 0.6390 0.6385 +vn 0.1055 0.5991 -0.7937 +vn -0.7651 -0.0157 -0.6437 +vn 0.3776 0.7691 -0.5156 +vn -0.3675 -0.6247 -0.6889 +vn -0.5403 -0.7272 0.4234 +vn -0.1941 -0.7585 0.6221 +vn 0.6650 -0.0222 0.7465 +vn 0.3773 0.6784 0.6304 +vn 0.1253 0.6280 -0.7681 +vn -0.6681 -0.3254 -0.6692 +vn 0.1932 0.7529 -0.6291 +vn -0.3097 -0.6454 -0.6982 +vn -0.3230 -0.7746 0.5437 +vn -0.1680 -0.7435 0.6473 +vn 0.5529 0.3586 0.7521 +vn 0.3940 0.6391 0.6605 +vn 0.1134 -0.7473 0.6548 +vn 0.0412 -0.7952 -0.6050 +vn -0.1031 -0.6071 -0.7879 +vn 0.0994 0.7632 0.6384 +vn 0.4049 -0.4241 0.8101 +vn -0.0390 0.7303 -0.6820 +vn -0.2053 0.8301 0.5185 +vn 0.8458 -0.4633 0.2644 +vn 0.3933 -0.0332 -0.9188 +vn 0.3572 0.1234 -0.9259 +vn 0.0197 0.7699 -0.6379 +vn 0.3813 -0.4495 -0.8078 +vn -0.3840 0.7257 -0.5708 +vn 0.1511 -0.7325 -0.6638 +vn 0.2022 -0.7544 0.6245 +vn -0.0330 -0.5991 0.8000 +vn -0.5785 0.4643 0.6706 +vn -0.0590 0.7452 0.6642 +vn 0.2660 0.5494 -0.7921 +vn -0.6977 -0.2607 -0.6672 +vn 0.5392 0.4678 -0.7003 +vn -0.3682 -0.6581 -0.6568 +vn -0.6589 -0.4275 0.6189 +vn -0.3391 -0.6858 0.6439 +vn 0.5198 0.3263 0.7895 +vn 0.4013 0.5646 0.7212 +vn 0.1574 0.6517 -0.7420 +vn -0.4791 -0.5461 -0.6872 +vn 0.1738 0.7123 -0.6800 +vn -0.2478 -0.6701 -0.6997 +vn -0.2610 -0.7103 0.6537 +vn -0.1769 -0.7169 0.6743 +vn 0.3358 0.6040 0.7228 +vn 0.2714 0.6559 0.7044 +vn 0.0637 0.7755 -0.6282 +vn 0.5355 -0.2746 -0.7987 +vn -0.3209 0.8036 -0.5013 +vn 0.0937 -0.7779 -0.6214 +vn 0.1674 -0.7911 0.5883 +vn -0.0858 -0.5874 0.8048 +vn -0.6290 0.3764 0.6802 +vn -0.0707 0.7365 0.6728 +vn -0.0274 -0.6061 -0.7949 +vn -0.5492 0.4956 -0.6729 +vn -0.0503 0.7458 -0.6643 +vn 0.1415 -0.7141 0.6856 +vn 0.1464 -0.7715 -0.6191 +vn 0.0185 0.7670 0.6414 +vn 0.3708 -0.4877 0.7903 +vn -0.3791 0.7174 0.5845 +vn 0.2682 0.5175 -0.8126 +vn -0.7339 -0.1388 -0.6649 +vn 0.6189 0.4247 -0.6608 +vn -0.4028 -0.6453 -0.6491 +vn -0.7259 -0.3441 0.5955 +vn -0.3715 -0.6781 0.6342 +vn 0.5317 0.2193 0.8181 +vn 0.4652 0.5966 0.6540 +vn -0.8947 0.0303 -0.4457 +vn -0.3087 -0.7240 0.6169 +vn -0.6429 -0.4665 0.6076 +vn 0.6424 -0.0806 0.7621 +vn 0.4092 0.6117 0.6770 +vn 0.2052 0.4256 -0.8813 +vn 0.0785 0.6076 -0.7903 +vn -0.1541 -0.6901 -0.7071 +vn 0.1541 0.6901 -0.7071 +vn -0.7380 0.1716 0.6526 +vn -0.3768 -0.7319 -0.5678 +vn -0.4807 -0.5952 0.6439 +vn 0.1003 0.5476 0.8307 +vn 0.6662 0.5656 0.4861 +vn 0.6275 0.5623 -0.5385 +vn 0.6760 -0.2402 -0.6966 +vn 0.1847 -0.1508 0.9712 +vn 0.0499 -0.6952 -0.7171 +vn -0.0981 -0.6249 0.7745 +vn -0.1198 0.7536 0.6463 +vn -0.8413 0.2036 0.5008 +vn -0.0738 0.7751 -0.6275 +vn -0.7186 0.2744 -0.6390 +vn 0.2823 0.5925 -0.7545 +vn -0.0766 -0.7686 -0.6351 +vn 0.4568 0.3596 -0.8137 +vn 0.4108 0.6761 -0.6117 +vn -0.3244 -0.6204 0.7140 +vn -0.1571 -0.8670 -0.4729 +vn 0.0430 0.6478 0.7606 +vn -0.7702 -0.2511 0.5863 +vn 0.0060 0.8495 0.5276 +vn -0.6346 -0.4263 0.6447 +vn -0.1690 -0.7494 -0.6402 +vn -0.3227 -0.6359 0.7011 +vn 0.0807 0.6449 0.7600 +vn 0.0732 0.7883 0.6109 +vn 0.3775 0.6348 -0.6742 +vn 0.4561 0.5005 -0.7358 +vn -0.0017 0.7596 -0.6504 +vn 0.3155 -0.5701 -0.7586 +vn -0.3876 0.6785 -0.6240 +vn 0.0782 -0.6688 -0.7393 +vn 0.1825 -0.7019 0.6885 +vn -0.0006 -0.6256 0.7801 +vn -0.4645 0.5846 0.6652 +vn -0.0316 0.7504 0.6602 +vn -0.7490 -0.6504 -0.1266 +vn 0.3403 -0.8625 0.3746 +vn 0.6673 -0.6999 0.2549 +vn -0.7240 0.6670 -0.1761 +vn -0.6766 -0.5182 -0.5231 +vn 0.6065 0.7850 0.1262 +vn -0.3891 0.7577 -0.5240 +vn 0.7104 0.5808 0.3976 +vn 0.9360 -0.3489 0.0475 +vn 0.1504 -0.2267 -0.9623 +vn 0.9639 -0.1225 0.2366 +vn -0.9097 0.4116 -0.0547 +vn 0.1790 0.3744 -0.9098 +vn -0.1465 -0.2820 0.9482 +vn -0.9324 0.3108 0.1844 +vn -0.1861 -0.6826 0.7066 +vn 0.2349 0.6674 0.7066 +vn 0.6368 -0.3605 0.6816 +vn 0.5636 0.8227 0.0748 +vn 0.3938 -0.0795 0.9158 +vn -0.1541 -0.6901 0.7071 +vn 0.1541 0.6901 0.7071 +vn -0.1341 0.1854 0.9735 +vn 0.8973 -0.2880 0.3345 +vn -0.2066 0.4012 0.8924 +vn 0.1397 0.5999 -0.7878 +vn 0.0783 0.6345 -0.7690 +vn 0.1359 0.8990 0.4163 +vn 0.0466 0.2350 0.9709 +vn 0.6456 -0.5877 -0.4877 +vn 0.3547 0.6721 -0.6500 +vn 0.2630 0.7857 -0.5599 +vn 0.4795 0.6087 0.6320 +vn 0.9667 -0.1673 -0.1936 +vn 0.8642 -0.3905 -0.3173 +vn 0.6464 0.7413 0.1806 +vn 0.6023 -0.1871 -0.7761 +vn 0.4726 0.8787 -0.0666 +vn -0.4138 -0.6167 -0.6697 +vn 0.7769 -0.0817 0.6243 +vn 0.6816 -0.1570 -0.7146 +vn 0.8539 0.2805 0.4385 +vn -0.3819 -0.6595 -0.6474 +vn 0.2402 0.6116 0.7538 +vn -0.3768 -0.6620 0.6479 +vn 0.7731 0.2130 0.5975 +vn 0.6519 -0.5646 -0.5062 +vn 0.8757 0.3674 0.3135 +vn 0.3347 -0.4721 0.8155 +vn 0.9334 -0.1140 -0.3404 +vn 0.4092 0.2351 0.8816 +vn -0.8497 0.0342 0.5261 +vn -0.6330 0.0984 -0.7678 +vn -0.7932 0.2621 0.5497 +vn -0.1729 0.7512 -0.6370 +vn -0.4712 0.0065 0.8820 +vn -0.2611 -0.9544 0.1444 +vn -0.3929 0.2436 0.8867 +vn 0.2852 0.9511 -0.1184 +vn -0.3122 0.8760 -0.3676 +vn -0.8135 -0.5406 -0.2144 +vn -0.4886 0.2032 0.8485 +vn 0.4018 0.4518 0.7965 +vn 0.7895 0.3989 -0.4665 +vn 0.2153 0.7629 0.6096 +vn 0.8207 0.2092 -0.5316 +vn -0.1640 -0.7047 -0.6903 +vn -0.8343 -0.1971 0.5149 +vn -0.4283 -0.3953 -0.8126 +vn -0.7326 -0.1263 0.6688 +vn 0.8255 0.2021 -0.5270 +vn 0.4050 0.4383 0.8024 +vn -0.8255 -0.2021 0.5270 +vn -0.4050 -0.4383 -0.8024 +vn 0.5512 -0.4219 -0.7198 +vn -0.7104 -0.3079 -0.6329 +vn -0.5454 0.4621 0.6993 +vn -0.7567 0.1368 -0.6393 +vn -0.3768 0.2713 0.8857 +vn 0.4880 0.2185 -0.8450 +vn 0.3818 0.9001 0.2100 +vn -0.6068 0.7171 -0.3429 +vn -0.9275 0.2130 -0.3071 +vn 0.1651 -0.4340 -0.8856 +vn 0.3850 -0.4908 -0.7816 +vn 0.8231 0.4343 0.3659 +vn -0.2725 -0.0363 0.9615 +vn 0.8754 0.0177 0.4831 +vn -0.4555 0.1385 0.8794 +vn -0.9397 -0.0794 -0.3326 +vn 0.4553 -0.1778 -0.8724 +vn -0.8018 -0.4861 -0.3475 +vn 0.9005 0.2043 0.3839 +vn -0.0753 -0.3799 0.9219 +vn 0.9465 -0.2556 0.1970 +vn -0.2968 -0.4084 0.8632 +vn -0.9147 0.3074 -0.2624 +vn 0.2880 0.3635 -0.8859 +vn -0.8699 -0.2801 -0.4061 +vn -0.5841 -0.7385 0.3368 +vn -0.1116 -0.7158 -0.6894 +vn -0.2993 -0.7263 0.6188 +vn 0.6527 0.7016 -0.2861 +vn 0.5372 -0.6386 -0.5511 +vn -0.4582 0.6183 0.6386 +vn 0.2784 0.9477 -0.1559 +vn 0.5644 0.3101 0.7650 +vn -0.0334 0.4046 0.9139 +vn 0.7022 0.5285 -0.4771 +vn -0.1951 -0.4628 -0.8647 +vn 0.7413 0.6178 -0.2622 +vn -0.7412 -0.4814 0.4679 +vn -0.6072 0.1258 -0.7846 +vn 0.5695 -0.0387 0.8211 +vn -0.6237 -0.4191 0.6598 +vn 0.1319 -0.7982 0.5877 +vn 0.9894 -0.1101 -0.0945 +vn 0.3317 -0.2589 0.9071 +vn 0.9229 -0.1076 -0.3696 +vn -0.1720 0.3889 -0.9051 +vn -0.9055 0.1755 0.3863 +vn -0.0534 0.9031 -0.4261 +vn -0.8136 -0.0107 0.5813 +vn 0.9149 -0.1346 -0.3806 +vn 0.1149 -0.8170 0.5651 +vn -0.1149 0.8170 -0.5651 +vn -0.9149 0.1346 0.3805 +vn -0.6417 -0.6459 -0.4136 +vn -0.3821 0.8420 -0.3808 +vn -0.7065 -0.6883 -0.1645 +vn 0.6580 0.6409 0.3953 +vn -0.3559 0.7176 -0.5986 +vn 0.3721 -0.7243 0.5804 +vn 0.8200 0.5213 0.2365 +vn 0.5610 -0.7234 0.4024 +vn -0.7080 -0.6741 0.2105 +vn 0.5748 -0.7962 -0.1886 +vn -0.8752 0.3490 0.3350 +vn -0.4792 -0.6581 -0.5807 +vn 0.8653 -0.3782 0.3289 +vn -0.2807 -0.7853 0.5519 +vn 0.6372 -0.7411 -0.2113 +vn -0.5180 -0.6049 0.6048 +vn -0.6122 0.7706 0.1772 +vn 0.4757 0.5678 -0.6718 +vn -0.8631 0.2704 -0.4266 +vn -0.2540 -0.8889 0.3812 +vn -0.2973 -0.7836 0.5455 +vn -0.3425 0.5823 0.7373 +vn -0.6858 0.5747 0.4465 +vn -0.3263 -0.4130 -0.8503 +vn -0.5737 -0.7394 0.3525 +vn 0.4609 0.5945 0.6589 +vn -0.2703 -0.5498 0.7903 +vn -0.0407 -0.7186 0.6942 +vn 0.2925 0.7527 -0.5898 +vn 0.1464 0.6427 0.7520 +vn 0.0092 0.7270 -0.6866 +vn -0.2542 -0.7843 -0.5658 +vn -0.4950 -0.5784 -0.6484 +vn 0.4732 0.5942 0.6504 +vn -0.0318 -0.7263 0.6866 +vn -0.4732 -0.5942 -0.6504 +vn 0.0318 0.7263 -0.6866 +vn 0.5156 -0.7732 -0.3691 +vn -0.7364 -0.4992 -0.4565 +vn -0.5054 0.7930 0.3402 +vn -0.7567 -0.1865 -0.6267 +vn -0.3983 0.6908 0.6034 +vn 0.5338 -0.2659 -0.8027 +vn 0.5662 0.8138 -0.1306 +vn 0.6100 -0.3559 -0.7079 +vn -0.4050 -0.9141 -0.0185 +vn -0.6263 0.3606 0.6911 +vn -0.6635 -0.7193 -0.2060 +vn -0.4668 0.4479 0.7625 +vn 0.1080 0.9510 -0.2897 +vn -0.2329 -0.1743 0.9567 +vn 0.6717 -0.7263 0.1462 +vn -0.3719 -0.1344 0.9185 +vn -0.7324 0.6351 -0.2456 +vn -0.8581 0.4350 -0.2728 +vn 0.1661 -0.2106 -0.9633 +vn -0.3430 0.9364 0.0747 +vn -0.6911 -0.2147 -0.6901 +vn -0.2434 0.0053 -0.9699 +vn 0.3164 0.0251 0.9483 +vn -0.2154 0.9453 0.2449 +vn 0.5033 -0.8631 0.0415 +vn 0.6902 0.1939 0.6971 +vn 0.4746 -0.8751 -0.0949 +vn 0.5283 0.5594 -0.6387 +vn -0.4281 -0.6918 -0.5815 +vn -0.0044 -0.7265 -0.6872 +vn 0.0569 0.7064 0.7055 +vn 0.3348 0.7987 -0.5000 +vn -0.1546 -0.6357 0.7563 +vn 0.3769 0.4792 0.7927 +vn 0.1890 0.3140 0.9304 +vn 0.0563 -0.9287 0.3666 +vn 0.4215 -0.8770 0.2306 +vn -0.1489 0.9889 -0.0026 +vn -0.1696 0.1151 0.9788 +vn -0.4754 0.8520 -0.2192 +vn 0.1701 -0.4667 -0.8679 +vn -0.2498 -0.3312 -0.9099 +vn 0.2041 0.3303 0.9216 +vn 0.4386 -0.8724 0.2156 +vn -0.2041 -0.3303 -0.9216 +vn -0.4386 0.8724 -0.2156 +vn -0.0958 -0.7667 0.6348 +vn -0.6132 -0.6768 -0.4072 +vn 0.3413 -0.8457 0.4102 +vn -0.4209 -0.5140 -0.7474 +vn -0.0863 0.9762 -0.1987 +vn 0.4885 0.5012 0.7142 +vn 0.1795 0.7247 -0.6653 +vn 0.6291 0.7573 -0.1751 +vn -0.2848 0.2525 -0.9247 +vn -0.6573 -0.7283 0.1935 +vn -0.6652 0.3941 -0.6342 +vn -0.4200 -0.8624 0.2825 +vn -0.2708 0.1673 0.9480 +vn 0.4379 -0.1541 -0.8857 +vn -0.6430 0.6024 -0.4730 +vn 0.5907 -0.2668 -0.7615 +vn -0.4049 0.1976 0.8927 +vn -0.1982 0.9410 -0.2743 +vn 0.2786 -0.9100 0.3070 +vn -0.2843 0.0119 0.9586 +vn 0.8624 0.2612 0.4336 +vn 0.6756 -0.5956 0.4346 +vn 0.2653 -0.3415 -0.9017 +vn 0.2986 0.9157 -0.2689 +vn 0.1365 -0.3645 -0.9212 +vn -0.3365 -0.8709 0.3583 +vn -0.4280 -0.8614 0.2735 +vn 0.6924 -0.3819 -0.6122 +vn 0.3992 -0.9112 0.1021 +vn 0.3246 0.1860 0.9274 +vn 0.1185 -0.9056 0.4073 +vn 0.6368 0.3335 0.6952 +vn -0.0183 0.9992 -0.0366 +vn -0.6853 -0.3414 -0.6433 +vn -0.4501 0.8913 -0.0558 +vn -0.3135 -0.5477 -0.7757 +vn 0.6484 0.3485 0.6769 +vn 0.4082 -0.9096 0.0773 +vn -0.6484 -0.3485 -0.6769 +vn -0.4082 0.9096 -0.0773 +vn -0.3210 -0.8300 0.4562 +vn -0.6943 0.3903 0.6046 +vn -0.0034 0.8914 -0.4532 +vn -0.9766 0.1648 -0.1381 +vn -0.4063 0.8092 0.4244 +vn 0.2642 -0.9099 -0.3197 +vn 0.6182 0.6582 -0.4296 +vn -0.6470 0.7509 -0.1324 +vn -0.8747 -0.4842 -0.0214 +vn 0.8025 0.5477 0.2367 +vn 0.3362 -0.3065 -0.8905 +vn 0.2268 -0.4975 -0.8373 +vn -0.5725 0.4524 -0.6838 +vn -0.7144 0.1696 0.6788 +vn 0.3935 0.9071 0.1492 +vn -0.4974 -0.8672 -0.0226 +vn 0.6116 -0.4102 -0.6765 +vn 0.7246 0.6868 0.0569 +vn 0.3657 -0.9172 0.1581 +vn -0.7300 -0.3981 0.5556 +vn 0.0714 0.9675 -0.2427 +vn 0.9870 -0.0412 0.1553 +vn -0.3877 -0.8217 0.4178 +vn -0.7500 -0.5546 -0.3604 +vn 0.3517 0.8382 0.4168 +vn -0.8003 0.5975 0.0502 +vn -0.1623 -0.7226 0.6719 +vn -0.5460 0.4845 0.6835 +vn -0.9104 0.0213 -0.4132 +vn 0.7965 0.0791 0.5995 +vn 0.2178 0.9745 0.0544 +vn -0.2725 -0.9457 0.1773 +vn 0.3271 -0.0944 -0.9402 +vn -0.0894 0.9675 -0.2364 +vn -0.8719 -0.0755 -0.4839 +vn -0.9938 0.0941 0.0589 +vn 0.9998 -0.0174 0.0077 +vn -0.2200 -0.9383 0.2667 +vn -0.7517 0.2021 0.6277 +vn 0.0117 0.9977 -0.0670 +vn 0.7580 -0.1398 -0.6371 +vn -0.2097 -0.9497 0.2325 +vn 0.4615 0.5732 -0.6771 +vn -0.5932 0.7810 0.1952 +vn -0.4711 0.8332 0.2896 +vn -0.2876 0.3872 0.8760 +vn 0.2811 -0.4577 -0.8435 +vn 0.3577 0.9110 -0.2051 +vn -0.3941 -0.8261 0.4027 +vn 0.4298 0.8782 0.2101 +vn -0.8149 0.5790 -0.0280 +vn 0.6148 -0.7839 0.0867 +vn -0.7295 -0.6585 -0.1848 +vn -0.6685 0.4797 0.5683 +vn 0.4678 0.8795 -0.0877 +vn 0.5949 -0.5882 -0.5479 +vn -0.6039 -0.7701 0.2056 +vn -0.3291 0.8416 0.4282 +vn 0.2781 0.4194 0.8642 +vn 0.5038 0.6762 -0.5376 +vn -0.5943 -0.4566 0.6621 +vn 0.5481 -0.7374 -0.3948 +vn 0.8556 -0.3745 0.3573 +vn -0.6550 -0.4905 0.5748 +vn -0.6499 0.7288 0.2155 +vn 0.4264 0.5950 -0.6813 +vn 0.6335 -0.7499 -0.1903 +vn -0.4599 -0.5565 0.6919 +vn 0.8109 0.3794 -0.4456 +vn -0.8100 -0.1752 0.5596 +vn 0.2914 -0.7470 -0.5976 +vn 0.2690 0.6740 -0.6880 +vn -0.8448 0.5217 -0.1193 +vn 0.7547 -0.5933 0.2801 +vn -0.6461 -0.4114 0.6429 +vn -0.3883 0.8721 0.2978 +vn 0.3508 0.5176 -0.7804 +vn 0.3826 -0.8795 -0.2829 +vn -0.4180 -0.3621 0.8332 +vn 0.8765 0.2784 -0.3927 +vn -0.8407 -0.2444 0.4833 +vn -0.1261 -0.5163 -0.8471 +vn 0.3504 0.5253 0.7754 +vn 0.8547 -0.2614 0.4485 +vn 0.0839 0.5954 -0.7990 +vn -0.5247 -0.5033 0.6866 +vn -0.6983 0.7157 0.0145 +vn 0.3298 0.5010 -0.8001 +vn 0.7411 -0.6602 -0.1225 +vn -0.4331 -0.4093 0.8031 +vn -0.9589 0.1474 -0.2423 +vn 0.5949 0.6374 -0.4898 +vn 0.1486 -0.7505 -0.6439 +vn 0.4890 -0.8146 -0.3119 +vn -0.5073 -0.4918 0.7076 +vn -0.6247 -0.3704 0.6874 +vn -0.0710 0.8171 0.5721 +vn 0.4464 0.5441 -0.7104 +vn 0.5914 -0.7831 -0.1927 +vn -0.4738 -0.5082 0.7192 +vn 0.5172 0.4376 -0.7356 +vn -0.5878 -0.1870 0.7871 +vn 0.3673 -0.8894 -0.2722 +vn 0.0349 0.4740 -0.8798 +vn -0.9371 0.0139 -0.3487 +vn 0.7538 -0.1086 0.6480 +vn -0.5897 -0.4279 0.6849 +vn -0.6510 0.7559 -0.0687 +vn 0.3060 0.3065 -0.9013 +vn 0.6576 -0.7530 0.0232 +vn -0.4199 -0.1893 0.8876 +vn -0.2473 0.9580 0.1455 +vn -0.2020 -0.9484 0.2444 +vn 0.5830 -0.6765 0.4500 +vn -0.4605 0.1303 0.8781 +vn 0.4085 -0.4306 -0.8048 +vn 0.2165 0.9668 -0.1358 +vn 0.3120 -0.4462 -0.8388 +vn 0.2631 -0.1403 -0.9545 +vn -0.5192 -0.5257 -0.6738 +vn -0.8836 -0.0571 -0.4648 +vn -0.7339 0.3227 0.5977 +vn -0.8435 -0.1810 -0.5057 +vn 0.7459 0.0919 0.6597 +vn -0.6172 -0.7793 -0.1086 +vn -0.5849 0.2350 0.7763 +vn 0.6106 0.7832 0.1175 +vn 0.4756 -0.3733 -0.7965 +vn 0.6124 -0.0786 -0.7866 +vn -0.3226 0.1594 0.9330 +vn -0.8634 -0.2877 -0.4145 +vn 0.4235 0.1895 -0.8858 +vn -0.1220 0.9649 -0.2326 +vn 0.4553 -0.0643 -0.8880 +vn 0.5315 -0.4396 0.7241 +vn 0.1099 -0.9620 0.2501 +vn -0.4799 0.2512 0.8406 +vn -0.7576 0.1088 0.6436 +vn -0.7008 0.5242 -0.4838 +vn 0.1837 0.9773 -0.1054 +vn 0.5751 -0.0263 -0.8176 +vn 0.4974 -0.1172 -0.8595 +vn -0.5375 -0.8324 -0.1348 +vn -0.1628 -0.9842 0.0700 +vn -0.4796 0.2149 0.8508 +vn -0.4151 0.2790 0.8659 +vn 0.5206 0.8375 0.1659 +vn 0.1999 0.2686 0.9423 +vn 0.4974 0.6591 -0.5640 +vn 0.5980 0.1225 -0.7921 +vn -0.6773 0.1812 -0.7131 +vn 0.2671 -0.2905 0.9188 +vn -0.8915 -0.1078 0.4400 +vn 0.3109 -0.6088 -0.7299 +vn -0.2057 -0.2590 0.9437 +vn -0.1071 -0.9928 -0.0531 +vn 0.1601 0.9863 -0.0400 +vn 0.2084 -0.0774 -0.9750 +vn -0.6295 -0.7689 -0.1116 +vn -0.7003 -0.7117 -0.0558 +vn -0.0933 -0.0398 0.9948 +vn -0.2426 0.0430 0.9692 +vn 0.6697 0.7197 0.1831 +vn 0.7238 0.6792 0.1215 +vn 0.1418 0.0367 -0.9892 +vn 0.2546 -0.2867 -0.9236 +vn -0.8678 -0.4559 -0.1977 +vn -0.4612 0.1783 0.8692 +vn 0.8370 0.4766 0.2687 +vn 0.1574 -0.5422 -0.8254 +vn -0.9128 0.1144 -0.3920 +vn -0.4638 0.5400 0.7024 +vn 0.7789 -0.0185 0.6269 +vn -0.5785 0.4621 -0.6722 +vn 0.4140 -0.2452 -0.8766 +vn -0.3969 0.3223 0.8594 +vn -0.0643 -0.9634 0.2601 +vn 0.4249 -0.1725 -0.8886 +vn 0.1659 -0.8895 0.4257 +vn -0.4703 0.3457 0.8120 +vn -0.2182 0.9112 -0.3495 +vn 0.5066 0.0654 -0.8597 +vn 0.5320 -0.3871 0.7531 +vn -0.7423 0.1524 0.6525 +vn -0.6625 0.5178 -0.5412 +vn -0.3562 -0.8956 -0.2664 +vn -0.3446 0.1057 0.9328 +vn -0.1992 0.9799 0.0053 +vn 0.3336 0.1680 -0.9276 +vn 0.2019 -0.9794 -0.0085 +vn -0.3694 0.0117 0.9292 +vn 0.3135 0.2266 -0.9222 +vn 0.6053 -0.7645 0.2216 +vn -0.4899 -0.0173 0.8716 +vn -0.6371 0.7546 -0.1572 +vn -0.7236 -0.5849 -0.3664 +vn -0.5327 -0.8438 0.0647 +vn -0.3446 0.5336 0.7724 +vn 0.1284 0.9133 -0.3865 +vn 0.2985 -0.3186 -0.8997 +vn -0.1022 -0.9435 0.3152 +vn -0.2823 0.4325 0.8563 +vn 0.3348 -0.2232 -0.9155 +vn 0.2145 -0.8276 0.5187 +vn -0.4124 0.4160 0.8104 +vn -0.3006 0.8738 -0.3824 +vn 0.3416 0.1692 -0.9245 +vn 0.4642 -0.1135 0.8784 +vn -0.8134 -0.1030 0.5724 +vn -0.8122 0.1267 -0.5695 +vn 0.9415 -0.2104 -0.2631 +vn 0.0633 -0.9271 0.3694 +vn -0.9104 -0.1301 0.3928 +vn -0.1711 0.9275 -0.3324 +vn -0.0690 -0.8846 -0.4613 +vn -0.8465 -0.2876 0.4481 +vn 0.3498 0.8982 0.2664 +vn 0.7957 -0.0475 -0.6039 +vn -0.5592 -0.4258 0.7113 +vn 0.5651 0.5927 0.5739 +vn 0.4646 0.3662 -0.8063 +vn -0.7067 0.0222 0.7072 +vn 0.4937 0.0294 0.8691 +vn 0.7111 0.1980 -0.6746 +vn 0.5981 0.0137 -0.8013 +vn 0.6127 -0.7754 0.1525 +vn -0.7857 0.6172 0.0416 +vn -0.4353 -0.5450 0.7166 +vn 0.1299 -0.7822 -0.6094 +vn -0.6591 -0.6440 0.3884 +vn -0.1085 0.7966 0.5946 +vn 0.7068 0.3494 -0.6151 +vn 0.7064 0.3379 -0.6220 +vn -0.4297 -0.3527 -0.8313 +vn -0.8181 -0.4300 0.3817 +vn 0.3101 0.2952 0.9037 +vn 0.7115 0.0658 -0.6996 +vn -0.5774 0.3389 -0.7428 +vn -0.9075 0.0416 0.4179 +vn 0.3667 -0.3583 0.8586 +vn -0.2755 0.9545 0.1143 +vn -0.9270 -0.3737 0.0329 +vn 0.9256 0.3770 0.0335 +vn -0.7865 -0.4321 0.4412 +vn -0.2490 0.9599 0.1285 +vn 0.8157 0.3547 -0.4569 +vn 0.4216 -0.8783 -0.2255 +vn -0.4351 -0.4289 0.7917 +vn -0.1481 0.9665 0.2094 +vn 0.4549 0.3426 -0.8220 +vn 0.2574 -0.8763 -0.4072 +vn 0.0335 -0.9107 -0.4116 +vn -0.0791 -0.4056 0.9106 +vn -0.0265 0.9485 0.3156 +vn 0.0798 0.3353 -0.9387 +vn 0.3401 -0.3729 0.8633 +vn 0.0044 0.9708 0.2399 +vn -0.3684 0.3597 -0.8573 +vn -0.1224 -0.8686 -0.4803 +vn 0.9876 0.1284 -0.0904 +vn -0.2107 0.9162 0.3407 +vn -0.9769 0.1397 -0.1614 +vn -0.3239 -0.8267 -0.4601 +vn 0.3711 -0.9220 -0.1109 +vn -0.3999 0.9080 0.1250 +vn 0.8647 0.4267 -0.2651 +vn 0.2298 -0.7115 -0.6640 +vn -0.4953 -0.6927 0.5242 +vn -0.1132 0.8403 0.5301 +vn 0.5370 0.5298 -0.6565 +vn -0.1055 -0.6795 -0.7261 +vn -0.2539 -0.6941 0.6737 +vn 0.1121 0.7165 0.6885 +vn 0.2393 0.6455 -0.7253 +vn 0.1504 -0.9154 0.3734 +vn 0.4241 0.8094 0.4062 +vn -0.3577 0.7131 -0.6029 +vn -0.5820 -0.4526 -0.6756 +vn -0.8391 -0.3764 -0.3927 +vn 0.7841 -0.5636 -0.2600 +vn 0.6074 0.6459 0.4624 +vn -0.6371 0.7212 0.2719 +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 +vn 0.7565 0.2801 0.5910 +vn 0.5443 -0.8297 -0.1235 +vn 0.8828 0.4547 0.1177 +vn 0.8838 -0.4285 0.1878 +vn -0.6795 -0.7130 -0.1730 +vn -0.2525 -0.9041 -0.3447 +vn -0.8862 0.2546 -0.3871 +vn -0.7540 0.6569 -0.0005 +vn 0.1598 0.9663 0.2016 +vn 0.6875 0.7038 0.1787 +vn 0.6206 -0.7828 -0.0449 +vn -0.1026 -0.7106 -0.6961 +vn -0.3012 0.4964 -0.8142 +vn 0.1147 -0.9166 0.3830 +vn -0.1488 0.9297 -0.3370 +vn -0.6268 -0.3634 -0.6893 +vn 0.4333 -0.8807 0.1914 +vn -0.7989 -0.4539 -0.3947 +vn -0.1489 0.9872 -0.0565 +vn 0.8655 0.2728 0.4202 +vn 0.9019 0.3333 -0.2748 +vn 0.4442 -0.8537 -0.2717 +vn -0.8436 -0.4830 0.2346 +vn -0.1912 0.9616 0.1970 +vn 0.2033 -0.8017 -0.5622 +vn -0.4912 -0.5450 0.6795 +vn -0.0721 0.9248 0.3736 +vn 0.5095 0.4379 -0.7407 +vn 0.3860 -0.5540 0.7376 +vn -0.0119 0.9527 0.3037 +vn -0.4849 -0.5845 0.6506 +vn 0.3445 -0.8966 0.2782 +vn -0.0772 0.9793 -0.1873 +vn -0.8300 -0.5010 -0.2453 +vn 0.9119 0.1938 0.3618 +vn 0.3814 -0.8538 -0.3543 +vn -0.8523 -0.4728 0.2238 +vn -0.1429 0.9481 0.2840 +vn 0.9097 0.3007 -0.2865 +vn 0.1304 -0.7520 -0.6461 +vn -0.5343 -0.5766 0.6181 +vn -0.0021 0.8722 0.4892 +vn 0.5445 0.4768 -0.6901 +vn -0.0902 -0.7405 -0.6660 +vn -0.2096 -0.6247 0.7522 +vn 0.1063 0.7960 0.5958 +vn 0.2020 0.5904 -0.7814 +vn 0.3252 -0.6269 0.7080 +vn 0.0485 0.8656 0.4984 +vn -0.3481 0.6422 -0.6829 +vn -0.1956 -0.6185 -0.7610 +vn 0.9736 -0.0040 -0.2282 +vn -0.2017 0.7745 0.5995 +vn -0.9944 0.0933 0.0504 +vn -0.4004 -0.6883 -0.6049 +vn -0.1248 -0.7838 -0.6083 +vn -0.8725 -0.4818 -0.0812 +vn -0.4472 0.8721 0.1986 +vn 0.5213 -0.7642 -0.3797 +vn -0.7499 -0.6135 0.2476 +vn -0.3307 0.8915 0.3096 +vn 0.8182 0.4883 -0.3035 +vn 0.5073 0.5487 -0.6645 +vn 0.2258 -0.7195 -0.6568 +vn -0.4715 -0.6893 0.5501 +vn -0.1392 0.8252 0.5474 +vn -0.2674 -0.5836 -0.7667 +vn -0.0568 -0.8294 0.5558 +vn 0.3050 0.7751 0.5533 +vn 0.0095 0.6415 -0.7671 +vn -0.0947 -0.7168 -0.6909 +vn 0.6058 0.3301 -0.7240 +vn -0.4589 -0.6586 0.5963 +vn 0.4527 0.5344 -0.7138 +vn 0.5595 0.4568 -0.6916 +vn -0.4402 -0.5088 -0.7398 +vn -0.6433 -0.5243 0.5579 +vn 0.3556 0.4699 0.8079 +vn 0.0817 0.6801 0.7285 +vn 0.3670 -0.0994 -0.9249 +vn 0.4477 0.2074 -0.8698 +vn 0.4768 0.2563 -0.8408 +vn 0.5041 -0.8597 -0.0821 +vn -0.2968 -0.4352 0.8500 +vn -0.4614 0.8538 0.2413 +vn -0.0479 -0.9042 -0.4244 +vn -0.5334 -0.4823 0.6949 +vn 0.0086 0.8769 0.4806 +vn 0.5231 0.2213 -0.8231 +vn -0.4604 -0.6189 -0.6364 +vn -0.6689 -0.3560 0.6525 +vn 0.4275 0.6255 0.6527 +vn 0.5744 0.2549 -0.7779 +vn 0.4376 -0.0943 -0.8942 +vn -0.7630 0.0448 -0.6449 +vn -0.8311 0.0761 0.5509 +vn 0.3769 -0.0973 0.9211 +s 1 +f 900/1/1 2/2/2 3/3/3 +f 899/4/4 3/3/3 4/5/5 +f 898/6/6 4/7/5 1/8/7 +f 254/9/8 1/8/7 253/10/9 +f 6/11/10 10/12/11 5/13/12 +f 7/14/13 9/15/14 6/11/10 +f 8/16/15 12/17/16 7/18/13 +f 5/13/12 11/19/17 8/16/15 +f 14/20/18 18/21/19 13/22/20 +f 15/23/21 17/24/22 14/20/18 +f 16/25/23 20/26/24 15/27/21 +f 13/22/20 19/28/25 16/25/23 +f 22/29/26 26/30/27 21/31/28 +f 23/32/29 25/33/30 22/29/26 +f 24/34/31 28/35/32 23/36/29 +f 21/31/28 27/37/33 24/34/31 +f 862/38/34 32/39/35 29/40/36 +f 863/41/37 31/42/38 32/39/35 +f 864/43/39 30/44/40 31/45/38 +f 518/46/41 29/40/36 517/47/42 +f 866/48/43 36/49/44 33/50/45 +f 867/51/46 35/52/47 36/49/44 +f 868/53/48 34/54/49 35/55/47 +f 450/56/50 353/57/51 449/58/52 +f 871/59/53 37/60/54 870/61/55 +f 872/62/56 40/63/57 871/64/53 +f 869/65/58 39/66/59 872/62/56 +f 358/67/60 161/68/61 357/69/62 +f 42/70/63 46/71/64 41/72/65 +f 43/73/66 45/74/67 42/70/63 +f 44/75/68 48/76/69 43/77/66 +f 41/72/65 47/78/70 44/75/68 +f 49/79/71 53/80/72 54/81/73 +f 50/82/74 56/83/75 53/80/72 +f 51/84/76 55/85/77 56/83/75 +f 52/86/78 54/81/73 55/87/77 +f 57/88/79 61/89/80 62/90/81 +f 58/91/82 64/92/83 61/89/80 +f 59/93/84 63/94/85 64/92/83 +f 60/95/86 62/90/81 63/96/85 +f 875/97/87 65/98/88 874/99/89 +f 876/100/90 68/101/91 875/102/87 +f 873/103/92 67/104/93 876/100/90 +f 422/105/94 225/106/95 421/107/96 +f 69/108/97 73/109/98 74/110/99 +f 70/111/100 76/112/101 73/113/98 +f 71/114/102 75/115/103 76/112/101 +f 72/116/104 74/110/99 75/115/103 +f 77/117/105 81/118/106 82/119/107 +f 78/120/108 84/121/109 81/118/106 +f 79/122/110 83/123/111 84/121/109 +f 80/124/112 82/119/107 83/125/111 +f 85/126/113 89/127/114 90/128/115 +f 86/129/116 92/130/117 89/127/114 +f 87/131/118 91/132/119 92/130/117 +f 88/133/120 90/128/115 91/134/119 +f 93/135/121 97/136/122 98/137/123 +f 94/138/124 100/139/125 97/140/122 +f 95/141/126 99/142/127 100/139/125 +f 96/143/128 98/137/123 99/142/127 +f 102/144/129 106/145/130 101/146/131 +f 103/147/132 105/148/133 102/144/129 +f 104/149/134 108/150/135 103/151/132 +f 101/146/131 107/152/136 104/149/134 +f 109/153/137 113/154/138 114/155/139 +f 110/156/140 116/157/141 113/154/138 +f 111/158/142 115/159/143 116/157/141 +f 112/160/144 114/155/139 115/161/143 +f 657/162/145 119/163/146 660/164/147 +f 659/165/148 119/163/146 120/166/149 +f 658/167/150 120/168/149 117/169/151 +f 322/170/152 117/169/151 321/171/153 +f 908/172/154 122/173/155 123/174/156 +f 908/172/154 124/175/157 907/176/158 +f 907/176/158 121/177/159 906/178/160 +f 326/179/152 121/180/159 325/181/153 +f 844/182/161 126/183/162 127/184/163 +f 844/182/161 128/185/164 843/186/165 +f 843/186/165 125/187/166 842/188/167 +f 330/189/152 125/187/166 329/190/153 +f 334/191/152 129/192/168 333/193/153 +f 134/194/169 138/195/170 133/196/171 +f 135/197/172 137/198/173 134/194/169 +f 136/199/174 140/200/175 135/197/172 +f 133/201/171 139/202/176 136/199/174 +f 912/203/177 142/204/178 143/205/179 +f 912/203/177 144/206/180 911/207/181 +f 911/207/181 141/208/182 910/209/183 +f 342/210/152 141/211/182 341/212/153 +f 145/213/184 149/214/185 150/215/186 +f 146/216/187 152/217/188 149/218/185 +f 147/219/189 151/220/190 152/217/188 +f 148/221/191 150/215/186 151/220/190 +f 754/222/192 759/223/193 753/224/194 +f 755/225/195 758/226/196 754/222/192 +f 756/227/197 757/228/198 755/225/195 +f 753/229/194 760/230/199 756/227/197 +f 154/231/200 159/232/201 158/233/202 +f 156/234/203 159/235/201 155/236/204 +f 153/237/205 160/238/206 156/234/203 +f 286/239/152 49/79/71 285/240/153 +f 3/3/3 254/9/8 255/241/207 +f 4/5/5 255/241/207 256/242/208 +f 1/8/7 256/243/208 253/10/9 +f 441/244/209 246/245/210 245/246/211 +f 259/247/212 6/11/10 258/248/152 +f 259/249/212 8/16/15 7/18/13 +f 257/250/153 8/16/15 260/251/213 +f 262/252/152 13/22/20 261/253/153 +f 263/254/212 14/20/18 262/252/152 +f 263/255/212 16/25/23 15/27/21 +f 261/253/153 16/25/23 264/256/213 +f 266/257/152 21/31/28 265/258/153 +f 267/259/212 22/29/26 266/257/152 +f 267/260/212 24/34/31 23/36/29 +f 265/258/153 24/34/31 268/261/213 +f 175/262/214 370/263/215 371/264/216 +f 269/265/153 862/38/34 861/266/217 +f 271/267/212 862/38/34 270/268/152 +f 272/269/213 863/41/37 271/267/212 +f 269/265/153 864/43/39 272/270/213 +f 274/271/152 865/272/218 273/273/153 +f 275/274/212 866/48/43 274/271/152 +f 275/274/212 868/275/48 867/51/46 +f 273/273/153 868/53/48 276/276/213 +f 277/277/153 870/61/55 869/65/58 +f 279/278/212 870/61/55 278/279/152 +f 280/280/213 871/64/53 279/281/212 +f 277/277/153 872/62/56 280/280/213 +f 287/282/212 50/82/74 286/239/152 +f 287/282/212 52/283/78 51/84/76 +f 285/240/153 52/86/78 288/284/213 +f 158/233/202 537/285/219 157/286/220 +f 291/287/212 58/91/82 290/288/152 +f 291/287/212 60/289/86 59/93/84 +f 289/290/153 60/95/86 292/291/213 +f 258/248/152 5/13/12 257/250/153 +f 293/292/153 874/99/89 873/103/92 +f 295/293/212 874/99/89 294/294/152 +f 296/295/213 875/102/87 295/296/212 +f 293/292/153 876/100/90 296/295/213 +f 299/297/212 70/111/100 298/298/152 +f 299/297/212 72/116/104 71/114/102 +f 297/299/153 72/116/104 300/300/213 +f 406/301/221 209/302/222 405/303/223 +f 303/304/212 78/120/108 302/305/152 +f 303/304/212 80/306/112 79/122/110 +f 301/307/153 80/124/112 304/308/213 +f 307/309/212 86/129/116 306/310/152 +f 307/309/212 88/311/120 87/131/118 +f 305/312/153 88/133/120 308/313/213 +f 290/288/152 57/88/79 289/290/153 +f 311/314/212 94/138/124 310/315/152 +f 311/314/212 96/143/128 95/141/126 +f 309/316/153 96/143/128 312/317/213 +f 315/318/212 102/144/129 314/319/152 +f 315/320/212 104/149/134 103/151/132 +f 313/321/153 104/149/134 316/322/213 +f 398/323/224 201/324/225 397/325/226 +f 319/326/212 110/156/140 318/327/152 +f 319/326/212 112/328/144 111/158/142 +f 317/329/153 112/160/144 320/330/213 +f 417/331/227 222/332/228 221/333/229 +f 323/334/212 118/335/230 322/170/152 +f 323/334/212 120/166/149 119/163/146 +f 321/171/153 120/168/149 324/336/213 +f 365/337/231 170/338/232 169/339/233 +f 327/340/212 122/173/155 326/179/152 +f 327/340/212 124/175/157 123/174/156 +f 325/341/153 124/175/157 328/342/213 +f 331/343/212 126/183/162 330/344/152 +f 331/343/212 128/185/164 127/184/163 +f 329/190/153 128/185/164 332/345/213 +f 335/346/212 130/347/234 334/191/152 +f 335/346/212 132/348/235 131/349/236 +f 333/193/153 132/350/235 336/351/213 +f 413/352/237 218/353/238 217/354/239 +f 339/355/212 134/194/169 338/356/152 +f 339/355/212 136/199/174 135/197/172 +f 337/357/153 136/199/174 340/358/213 +f 343/359/212 142/204/178 342/210/152 +f 343/359/212 144/206/180 143/205/179 +f 341/360/153 144/206/180 344/361/213 +f 347/362/212 146/216/187 346/363/152 +f 347/362/212 148/221/191 147/219/189 +f 345/364/153 148/221/191 348/365/213 +f 201/324/225 350/366/240 349/367/241 +f 202/368/242 351/369/243 350/366/240 +f 204/370/244 351/369/243 203/371/245 +f 204/372/244 349/367/241 352/373/246 +f 358/67/60 163/374/247 162/375/248 +f 359/376/249 164/377/250 163/374/247 +f 357/69/62 164/378/250 360/379/251 +f 490/380/252 163/374/247 491/381/253 +f 877/382/254 166/383/255 165/384/256 +f 878/385/257 167/386/258 166/383/255 +f 880/387/259 167/388/258 879/389/260 +f 877/382/254 168/390/261 880/387/259 +f 362/391/262 877/382/254 361/392/263 +f 362/391/262 879/393/260 878/385/257 +f 364/394/264 879/389/260 363/395/265 +f 364/394/264 877/382/254 880/387/259 +f 366/396/266 171/397/267 170/338/232 +f 368/398/268 171/399/267 367/400/269 +f 365/337/231 172/401/270 368/398/268 +f 169/339/233 646/402/271 645/403/272 +f 176/404/273 371/264/216 372/405/274 +f 176/406/273 369/407/275 173/408/276 +f 374/409/277 179/410/278 178/411/279 +f 375/412/280 180/413/281 179/410/278 +f 373/414/282 180/413/281 376/415/283 +f 378/416/284 183/417/285 182/418/286 +f 379/419/287 184/420/288 183/417/285 +f 377/421/289 184/420/288 380/422/290 +f 382/423/291 187/424/292 186/425/293 +f 384/426/294 187/427/292 383/428/295 +f 381/429/296 188/430/297 384/426/294 +f 186/425/293 773/431/298 185/432/299 +f 386/433/300 191/434/301 190/435/302 +f 388/436/303 191/437/301 387/438/304 +f 385/439/305 192/440/306 388/436/303 +f 881/441/307 194/442/308 193/443/309 +f 882/444/310 195/445/311 194/442/308 +f 884/446/312 195/447/311 883/448/313 +f 881/441/307 196/449/314 884/446/312 +f 390/450/315 881/441/307 389/451/316 +f 391/452/317 882/444/310 390/450/315 +f 391/453/317 884/446/312 883/448/313 +f 392/454/318 881/441/307 884/446/312 +f 394/455/319 199/456/320 198/457/321 +f 396/458/322 199/456/320 395/459/323 +f 393/460/324 200/461/325 396/458/322 +f 197/462/326 734/463/327 733/464/328 +f 398/323/224 203/371/245 202/368/242 +f 399/465/329 204/370/244 203/371/245 +f 397/325/226 204/372/244 400/466/330 +f 402/467/331 207/468/332 206/469/333 +f 403/470/334 208/471/335 207/468/332 +f 401/472/336 208/471/335 404/473/337 +f 211/474/338 406/301/221 407/475/339 +f 212/476/340 407/475/339 408/477/341 +f 405/478/223 212/476/340 408/477/341 +f 614/479/342 211/474/338 615/480/343 +f 886/481/344 213/482/345 885/483/346 +f 886/481/344 215/484/347 214/485/348 +f 887/486/349 216/487/350 215/484/347 +f 885/483/346 216/488/350 888/489/351 +f 410/490/352 885/483/346 409/491/353 +f 410/490/352 887/486/349 886/481/344 +f 412/492/354 887/486/349 411/493/355 +f 409/491/353 888/489/351 412/494/354 +f 414/495/356 219/496/357 218/353/238 +f 416/497/358 219/498/357 415/499/359 +f 413/352/237 220/500/360 416/497/358 +f 217/354/239 662/501/361 661/502/362 +f 418/503/363 223/504/364 222/332/228 +f 420/505/365 223/506/364 419/507/366 +f 417/331/227 224/508/367 420/505/365 +f 222/332/228 633/509/368 221/333/229 +f 422/105/94 227/510/369 226/511/370 +f 423/512/371 228/513/372 227/510/369 +f 421/107/96 228/514/372 424/515/373 +f 226/511/370 617/516/374 225/106/95 +f 427/517/375 230/518/376 426/519/377 +f 428/520/378 231/521/379 427/517/375 +f 428/520/378 229/522/380 232/523/381 +f 230/524/376 709/525/382 229/522/380 +f 431/526/383 234/527/384 430/528/385 +f 432/529/386 235/530/387 431/526/383 +f 432/529/386 233/531/388 236/532/389 +f 890/533/390 237/534/391 889/535/392 +f 890/533/390 239/536/393 238/537/394 +f 891/538/395 240/539/396 239/536/393 +f 889/535/392 240/540/396 892/541/397 +f 434/542/398 889/535/392 433/543/399 +f 434/542/398 891/538/395 890/533/390 +f 436/544/400 891/538/395 435/545/401 +f 436/546/400 889/535/392 892/541/397 +f 438/547/402 243/548/403 242/549/404 +f 439/550/405 244/551/406 243/552/403 +f 437/553/407 244/551/406 440/554/408 +f 442/555/409 247/556/410 246/245/210 +f 444/557/411 247/558/410 443/559/412 +f 441/244/209 248/560/413 444/557/411 +f 246/245/210 501/561/414 245/246/211 +f 446/562/415 251/563/416 250/564/417 +f 448/565/418 251/566/416 447/567/419 +f 445/568/420 252/569/421 448/565/418 +f 250/564/417 597/570/422 249/571/423 +f 450/56/50 355/572/424 354/573/425 +f 451/574/426 356/575/427 355/576/424 +f 449/58/52 356/575/427 452/577/428 +f 471/578/429 354/573/425 355/572/424 +f 893/579/430 454/580/431 453/581/432 +f 894/582/433 455/583/434 454/580/431 +f 896/584/435 455/583/434 895/585/436 +f 893/579/430 456/586/437 896/587/435 +f 458/588/438 893/579/430 457/589/439 +f 458/588/438 895/585/436 894/582/433 +f 460/590/440 895/585/436 459/591/441 +f 457/589/439 896/587/435 460/592/440 +f 471/593/429 356/575/427 472/594/442 +f 472/594/442 353/57/51 469/595/443 +f 474/596/444 33/50/45 473/597/445 +f 215/484/347 466/598/446 214/485/348 +f 215/484/347 468/599/447 467/600/448 +f 213/482/345 468/601/447 216/488/350 +f 462/602/449 9/15/14 461/603/450 +f 491/381/253 164/377/250 492/604/451 +f 489/605/452 164/378/250 161/68/61 +f 485/606/453 38/607/454 37/60/54 +f 239/536/393 482/608/455 238/537/394 +f 240/539/396 483/609/456 239/536/393 +f 240/540/396 481/610/457 484/611/458 +f 463/612/459 10/12/11 462/602/449 +f 463/612/459 12/17/16 11/19/17 +f 464/613/460 9/15/14 12/614/16 +f 462/602/449 465/615/461 466/598/446 +f 463/612/459 466/598/446 467/600/448 +f 463/612/459 468/599/447 464/616/460 +f 464/613/460 465/615/461 461/603/450 +f 473/597/445 470/617/462 474/596/444 +f 475/618/463 470/617/462 471/578/429 +f 476/619/464 471/593/429 472/594/442 +f 476/619/464 469/595/443 473/597/445 +f 470/617/462 353/57/51 354/573/425 +f 475/618/463 34/54/49 474/596/444 +f 475/620/463 36/49/44 35/52/47 +f 476/619/464 33/50/45 36/49/44 +f 477/621/465 18/21/19 17/24/22 +f 479/622/466 18/21/19 478/623/467 +f 480/624/468 19/28/25 479/622/466 +f 480/625/468 17/24/22 20/626/24 +f 477/621/465 482/608/455 478/623/467 +f 479/622/466 482/608/455 483/609/456 +f 480/624/468 483/609/456 484/627/458 +f 480/625/468 481/610/457 477/621/465 +f 214/485/348 465/615/461 213/482/345 +f 487/628/469 38/607/454 486/629/470 +f 488/630/471 39/66/59 487/628/469 +f 488/631/471 37/60/54 40/632/57 +f 485/606/453 490/380/252 486/629/470 +f 486/629/470 491/381/253 487/628/469 +f 488/630/471 491/381/253 492/604/451 +f 485/606/453 492/633/451 489/605/452 +f 490/380/252 161/68/61 162/375/248 +f 247/556/410 502/634/472 246/245/210 +f 247/558/410 504/635/473 503/636/474 +f 248/560/413 501/561/414 504/635/473 +f 494/637/475 897/638/476 493/639/477 +f 495/640/478 898/6/6 494/637/475 +f 495/641/478 900/1/1 899/4/4 +f 496/642/479 897/638/476 900/1/1 +f 494/637/475 497/643/480 498/644/481 +f 495/640/478 498/644/481 499/645/482 +f 495/641/478 500/646/483 496/642/479 +f 496/642/479 497/643/480 493/639/477 +f 498/644/481 501/561/414 502/634/472 +f 498/644/481 503/647/474 499/645/482 +f 499/648/482 504/635/473 500/646/483 +f 497/643/480 504/635/473 501/561/414 +f 562/649/484 557/650/485 561/651/486 +f 455/583/434 514/652/487 454/580/431 +f 455/583/434 516/653/488 515/654/489 +f 456/586/437 513/655/490 516/656/488 +f 507/657/491 26/30/27 506/658/492 +f 508/659/493 27/37/33 507/657/491 +f 508/660/493 25/33/30 28/661/32 +f 505/662/494 510/663/495 506/658/492 +f 507/657/491 510/663/495 511/664/496 +f 508/659/493 511/664/496 512/665/497 +f 508/660/493 509/666/498 505/662/494 +f 510/663/495 513/655/490 514/652/487 +f 511/664/496 514/652/487 515/654/489 +f 511/664/496 516/653/488 512/665/497 +f 512/667/497 513/655/490 509/666/498 +f 237/534/391 482/608/455 481/610/457 +f 190/435/302 525/668/499 189/669/500 +f 191/434/301 526/670/501 190/435/302 +f 191/437/301 528/671/502 527/672/503 +f 192/440/306 525/668/499 528/671/502 +f 519/673/504 30/44/40 518/46/41 +f 519/674/504 32/39/35 31/42/38 +f 520/675/505 29/40/36 32/39/35 +f 518/46/41 521/676/506 522/677/507 +f 519/673/504 522/677/507 523/678/508 +f 519/674/504 524/679/509 520/675/505 +f 520/675/505 521/676/506 517/47/42 +f 385/439/305 190/435/302 189/669/500 +f 521/676/506 526/670/501 522/677/507 +f 522/677/507 527/680/503 523/678/508 +f 524/679/509 527/672/503 528/671/502 +f 521/676/506 528/671/502 525/668/499 +f 159/232/201 538/681/510 158/233/202 +f 159/235/201 540/682/511 539/683/512 +f 157/286/220 540/682/511 160/238/206 +f 530/684/513 53/80/72 529/685/514 +f 531/686/515 54/81/73 530/684/513 +f 531/687/515 56/83/75 55/85/77 +f 532/688/516 53/80/72 56/83/75 +f 530/684/513 533/689/517 534/690/518 +f 531/686/515 534/690/518 535/691/519 +f 531/687/515 536/692/520 532/688/516 +f 532/688/516 533/689/517 529/685/514 +f 534/690/518 537/285/219 538/681/510 +f 534/690/518 539/693/512 535/691/519 +f 535/694/519 540/682/511 536/692/520 +f 533/689/517 540/682/511 537/285/219 +f 195/445/311 554/695/521 194/442/308 +f 195/447/311 556/696/522 555/697/523 +f 196/449/314 553/698/524 556/696/522 +f 543/699/525 62/90/81 542/700/526 +f 543/701/525 64/92/83 63/94/85 +f 544/702/527 61/89/80 64/92/83 +f 542/700/526 545/703/528 546/704/529 +f 542/700/526 547/705/530 543/699/525 +f 543/701/525 548/706/531 544/702/527 +f 541/707/532 548/706/531 545/703/528 +f 561/651/486 550/708/533 562/649/484 +f 562/649/484 551/709/534 563/710/535 +f 564/711/536 551/712/534 552/713/537 +f 561/651/486 552/713/537 549/714/538 +f 550/708/533 553/698/524 554/695/521 +f 551/709/534 554/695/521 555/715/523 +f 551/712/534 556/696/522 552/713/537 +f 552/713/537 553/698/524 549/714/538 +f 545/703/528 558/716/539 546/704/529 +f 547/705/530 558/716/539 559/717/540 +f 548/706/531 559/718/540 560/719/541 +f 548/706/531 557/650/485 545/703/528 +f 563/710/535 558/716/539 562/649/484 +f 563/720/535 560/719/541 559/718/540 +f 557/650/485 564/711/536 561/651/486 +f 505/662/494 26/30/27 25/33/30 +f 167/386/258 574/721/542 166/383/255 +f 167/388/258 576/722/543 575/723/544 +f 165/384/256 576/722/543 168/390/261 +f 566/724/545 89/127/114 565/725/546 +f 567/726/547 90/128/115 566/724/545 +f 567/727/547 92/130/117 91/132/119 +f 568/728/548 89/127/114 92/130/117 +f 566/724/545 569/729/549 570/730/550 +f 567/726/547 570/730/550 571/731/551 +f 567/727/547 572/732/552 568/728/548 +f 568/728/548 569/729/549 565/725/546 +f 570/730/550 573/733/553 574/721/542 +f 570/730/550 575/734/544 571/731/551 +f 571/735/551 576/722/543 572/732/552 +f 569/729/549 576/722/543 573/733/553 +f 542/700/526 61/89/80 541/707/532 +f 175/262/214 586/736/554 174/737/555 +f 176/404/273 587/738/556 175/262/214 +f 176/406/273 585/739/557 588/740/558 +f 577/741/559 46/71/64 45/74/67 +f 43/73/66 282/742/152 283/743/212 +f 44/75/68 283/744/212 284/745/213 +f 41/72/65 284/745/213 281/746/153 +f 689/747/560 686/748/561 690/749/562 +f 282/742/152 41/72/65 281/746/153 +f 173/408/276 370/263/215 174/737/555 +f 579/750/563 46/71/64 578/751/564 +f 580/752/565 47/78/70 579/750/563 +f 580/753/565 45/74/67 48/754/69 +f 577/741/559 582/755/566 578/751/564 +f 579/750/563 582/755/566 583/756/567 +f 580/752/565 583/756/567 584/757/568 +f 580/753/565 581/758/569 577/741/559 +f 582/755/566 585/739/557 586/736/554 +f 582/755/566 587/738/556 583/756/567 +f 583/756/567 588/759/558 584/757/568 +f 581/758/569 588/740/558 585/739/557 +f 251/563/416 598/760/570 250/564/417 +f 251/566/416 600/761/571 599/762/572 +f 252/569/421 597/570/422 600/761/571 +f 602/763/573 589/764/574 590/765/575 +f 603/766/576 590/765/575 591/767/577 +f 603/768/576 592/769/578 604/770/579 +f 604/770/579 589/764/574 601/771/580 +f 602/763/573 81/118/106 601/771/580 +f 605/772/581 594/773/582 606/774/583 +f 606/774/583 595/775/584 607/776/585 +f 608/777/586 595/778/584 596/779/587 +f 605/772/581 596/779/587 593/780/588 +f 593/780/588 598/760/570 594/773/582 +f 594/773/582 599/781/572 595/775/584 +f 596/779/587 599/762/572 600/761/571 +f 593/780/588 600/761/571 597/570/422 +f 603/766/576 82/119/107 602/763/573 +f 603/768/576 84/121/109 83/123/111 +f 604/770/579 81/118/106 84/121/109 +f 590/765/575 605/772/581 606/774/583 +f 591/767/577 606/774/583 607/776/585 +f 591/782/577 608/777/586 592/769/578 +f 592/769/578 605/772/581 589/764/574 +f 616/783/589 211/474/338 212/476/340 +f 613/784/590 212/476/340 209/785/222 +f 609/786/591 74/110/99 73/109/98 +f 610/787/592 75/115/103 74/110/99 +f 612/788/593 75/115/103 611/789/594 +f 609/790/591 76/112/101 612/788/593 +f 609/786/591 614/479/342 610/787/592 +f 610/787/592 615/480/343 611/789/594 +f 612/788/593 615/480/343 616/783/589 +f 609/790/591 616/783/589 613/784/590 +f 613/791/590 210/792/595 614/479/342 +f 226/511/370 619/793/596 618/794/597 +f 227/510/369 620/795/598 619/793/596 +f 225/106/95 620/796/598 228/514/372 +f 621/797/599 902/798/600 622/799/601 +f 622/799/601 903/800/602 623/801/603 +f 624/802/604 903/800/602 904/803/605 +f 621/797/599 904/804/605 901/805/606 +f 617/516/374 902/798/600 901/805/606 +f 619/793/596 902/798/600 618/794/597 +f 620/795/598 903/800/602 619/793/596 +f 620/796/598 901/805/606 904/804/605 +f 625/806/607 622/799/601 626/807/608 +f 627/808/609 622/799/601 623/801/603 +f 628/809/610 623/801/603 624/802/604 +f 628/810/610 621/797/599 625/806/607 +f 629/811/611 626/807/608 630/812/612 +f 630/812/612 627/808/609 631/813/613 +f 632/814/614 627/808/609 628/809/610 +f 629/811/611 628/810/610 625/806/607 +f 629/811/611 66/815/615 65/98/88 +f 631/813/613 66/815/615 630/812/612 +f 632/814/614 67/104/93 631/813/613 +f 632/816/614 65/98/88 68/817/91 +f 381/429/296 186/425/293 185/432/299 +f 223/504/364 634/818/616 222/332/228 +f 223/506/364 636/819/617 635/820/618 +f 224/508/367 633/509/368 636/819/617 +f 638/821/619 633/509/368 634/818/616 +f 638/821/619 635/822/618 639/823/620 +f 639/824/620 636/819/617 640/825/621 +f 637/826/622 636/819/617 633/509/368 +f 642/827/623 637/826/622 638/821/619 +f 643/828/624 638/821/619 639/823/620 +f 643/829/624 640/825/621 644/830/625 +f 644/830/625 637/826/622 641/831/626 +f 642/827/623 113/154/138 641/831/626 +f 643/828/624 114/155/139 642/827/623 +f 643/829/624 116/157/141 115/159/143 +f 644/830/625 113/154/138 116/157/141 +f 171/397/267 646/402/271 170/338/232 +f 172/401/270 647/832/627 171/399/267 +f 172/401/270 645/403/272 648/833/628 +f 649/834/629 646/402/271 650/835/630 +f 650/835/630 647/836/627 651/837/631 +f 652/838/632 647/832/627 648/833/628 +f 649/834/629 648/833/628 645/403/272 +f 654/839/633 649/834/629 650/835/630 +f 655/840/634 650/835/630 651/837/631 +f 655/841/634 652/838/632 656/842/635 +f 656/842/635 649/834/629 653/843/636 +f 658/167/150 653/843/636 654/839/633 +f 658/167/150 655/840/634 659/844/148 +f 659/165/148 656/842/635 660/164/147 +f 657/162/145 656/842/635 653/843/636 +f 906/845/160 122/173/155 905/846/637 +f 219/496/357 662/501/361 218/353/238 +f 220/500/360 663/847/638 219/498/357 +f 220/500/360 661/502/362 664/848/639 +f 665/849/640 662/501/361 666/850/641 +f 666/850/641 663/851/638 667/852/642 +f 668/853/643 663/847/638 664/848/639 +f 665/849/640 664/848/639 661/502/362 +f 670/854/644 665/849/640 666/850/641 +f 670/854/644 667/852/642 671/855/645 +f 671/856/645 668/853/643 672/857/646 +f 669/858/647 668/853/643 665/849/640 +f 674/859/648 669/858/647 670/854/644 +f 675/860/649 670/854/644 671/855/645 +f 675/861/649 672/857/646 676/862/650 +f 676/862/650 669/858/647 673/863/651 +f 130/347/234 674/859/648 129/192/168 +f 129/192/168 675/860/649 132/350/235 +f 131/349/236 675/861/649 676/862/650 +f 130/347/234 676/862/650 673/863/651 +f 677/864/652 350/366/240 678/865/653 +f 679/866/654 350/366/240 351/369/243 +f 680/867/655 351/369/243 352/868/246 +f 680/869/655 349/367/241 677/864/652 +f 682/870/656 677/864/652 678/865/653 +f 683/871/657 678/865/653 679/866/654 +f 683/871/657 680/867/655 684/872/658 +f 684/873/658 677/864/652 681/874/659 +f 686/748/561 681/874/659 682/870/656 +f 686/748/561 683/871/657 687/875/660 +f 687/875/660 684/872/658 688/876/661 +f 685/877/662 684/873/658 681/874/659 +f 690/749/562 687/875/660 691/878/663 +f 687/875/660 692/879/664 691/878/663 +f 688/880/661 689/747/560 692/881/664 +f 346/882/152 145/213/184 345/364/153 +f 689/747/560 106/145/130 105/148/133 +f 690/749/562 107/152/136 106/145/130 +f 692/879/664 107/152/136 691/878/663 +f 689/747/560 108/883/135 692/881/664 +f 310/884/152 93/135/121 309/316/153 +f 178/411/279 693/885/665 177/886/666 +f 179/410/278 694/887/667 178/411/279 +f 179/410/278 696/888/668 695/889/669 +f 180/413/281 693/890/665 696/888/668 +f 698/891/670 693/885/665 694/887/667 +f 699/892/671 694/887/667 695/889/669 +f 699/892/671 696/888/668 700/893/672 +f 700/893/672 693/890/665 697/894/673 +f 701/895/674 698/891/670 702/896/675 +f 702/896/675 699/892/671 703/897/676 +f 704/898/677 699/892/671 700/893/672 +f 701/899/674 700/893/672 697/894/673 +f 705/900/678 702/896/675 706/901/679 +f 706/901/679 703/897/676 707/902/680 +f 708/903/681 701/899/674 705/904/678 +f 708/903/681 703/897/676 704/898/677 +f 98/137/123 705/900/678 706/901/679 +f 98/137/123 707/902/680 99/142/127 +f 99/142/127 708/903/681 100/139/125 +f 97/140/122 708/903/681 705/904/678 +f 374/409/277 177/886/666 373/905/282 +f 230/518/376 711/906/682 710/907/683 +f 231/521/379 712/908/684 711/906/682 +f 229/522/380 712/908/684 232/523/381 +f 714/909/685 709/525/382 710/910/683 +f 715/911/686 710/907/683 711/906/682 +f 715/911/686 712/908/684 716/912/687 +f 716/912/687 709/525/382 713/913/688 +f 718/914/689 713/913/688 714/909/685 +f 718/915/689 715/911/686 719/916/690 +f 719/916/690 716/912/687 720/917/691 +f 717/918/692 716/912/687 713/913/688 +f 302/305/152 77/117/105 301/307/153 +f 721/919/693 718/914/689 722/920/694 +f 723/921/695 718/915/689 719/916/690 +f 724/922/696 719/916/690 720/917/691 +f 724/922/696 717/918/692 721/919/693 +f 726/923/697 721/919/693 722/920/694 +f 726/924/697 723/921/695 727/925/698 +f 727/925/698 724/922/696 728/926/699 +f 725/927/700 724/922/696 721/919/693 +f 730/928/701 725/927/700 726/923/697 +f 730/929/701 727/925/698 731/930/702 +f 731/930/702 728/926/699 732/931/703 +f 729/932/704 728/926/699 725/927/700 +f 730/928/701 137/198/173 729/932/704 +f 730/929/701 139/202/176 138/933/170 +f 731/930/702 140/200/175 139/202/176 +f 729/932/704 140/200/175 732/931/703 +f 425/934/705 230/524/376 229/522/380 +f 198/457/321 735/935/706 734/936/327 +f 200/461/325 735/935/706 199/456/320 +f 197/462/326 736/937/707 200/461/325 +f 737/938/708 734/463/327 738/939/709 +f 738/940/709 735/935/706 739/941/710 +f 740/942/711 735/935/706 736/937/707 +f 737/938/708 736/937/707 733/464/328 +f 741/943/712 738/939/709 742/944/713 +f 743/945/714 738/940/709 739/941/710 +f 744/946/715 739/941/710 740/942/711 +f 744/946/715 737/938/708 741/943/712 +f 746/947/716 741/943/712 742/944/713 +f 746/948/716 743/945/714 747/949/717 +f 747/949/717 744/946/715 748/950/718 +f 745/951/719 744/946/715 741/943/712 +f 749/952/720 746/947/716 750/953/721 +f 750/954/721 747/949/717 751/955/722 +f 752/956/723 747/949/717 748/950/718 +f 749/952/720 748/950/718 745/951/719 +f 393/460/324 198/957/321 197/462/326 +f 750/953/721 905/846/637 749/952/720 +f 750/954/721 907/176/158 906/178/160 +f 751/955/722 908/172/154 907/176/158 +f 749/952/720 908/172/154 752/956/723 +f 754/222/192 765/958/724 766/959/725 +f 754/222/192 767/960/726 755/225/195 +f 755/225/195 768/961/727 756/227/197 +f 753/229/194 768/961/727 765/962/724 +f 241/963/728 818/964/729 817/965/730 +f 763/966/731 770/967/732 762/968/733 +f 761/969/734 770/967/732 771/970/735 +f 764/971/736 771/970/735 772/972/737 +f 763/973/731 772/972/737 769/974/738 +f 790/975/739 761/969/734 789/976/740 +f 187/424/292 774/977/741 186/425/293 +f 187/427/292 776/978/742 775/979/743 +f 188/430/297 773/431/298 776/978/742 +f 778/980/744 773/431/298 774/977/741 +f 779/981/745 774/977/741 775/982/743 +f 779/983/745 776/978/742 780/984/746 +f 780/984/746 773/431/298 777/985/747 +f 781/986/748 778/980/744 782/987/749 +f 782/987/749 779/981/745 783/988/750 +f 784/989/751 779/983/745 780/984/746 +f 781/986/748 780/984/746 777/985/747 +f 786/990/752 781/986/748 782/987/749 +f 786/990/752 783/988/750 787/991/753 +f 787/992/753 784/989/751 788/993/754 +f 785/994/755 784/989/751 781/986/748 +f 786/990/752 791/995/756 790/975/739 +f 791/996/756 788/993/754 792/997/757 +f 792/997/757 785/994/755 789/976/740 +f 785/994/755 790/975/739 789/976/740 +f 791/995/756 762/968/733 790/975/739 +f 791/996/756 764/971/736 763/973/731 +f 792/997/757 761/969/734 764/971/736 +f 429/998/758 234/999/384 233/531/388 +f 234/999/384 793/1000/759 233/531/388 +f 234/527/384 795/1001/760 794/1002/761 +f 236/532/389 795/1001/760 235/530/387 +f 233/531/388 796/1003/762 236/532/389 +f 797/1004/763 794/1005/761 798/1006/764 +f 798/1007/764 795/1001/760 799/1008/765 +f 800/1009/766 795/1001/760 796/1003/762 +f 797/1004/763 796/1003/762 793/1000/759 +f 801/1010/767 798/1006/764 802/1011/768 +f 802/1012/768 799/1008/765 803/1013/769 +f 804/1014/770 799/1008/765 800/1009/766 +f 801/1010/767 800/1009/766 797/1004/763 +f 805/1015/771 802/1011/768 806/1016/772 +f 807/1017/773 802/1012/768 803/1013/769 +f 808/1018/774 803/1013/769 804/1014/770 +f 808/1018/774 801/1010/767 805/1015/771 +f 810/1019/775 807/1017/773 811/1020/776 +f 811/1020/776 808/1018/774 812/1021/777 +f 808/1018/774 809/1022/778 812/1021/777 +f 814/1023/779 809/1022/778 810/1024/775 +f 814/1025/779 811/1020/776 815/1026/780 +f 815/1026/780 812/1021/777 816/1027/781 +f 813/1028/782 812/1021/777 809/1022/778 +f 814/1023/779 909/1029/783 813/1028/782 +f 814/1025/779 911/207/181 910/209/183 +f 815/1026/780 912/203/177 911/207/181 +f 813/1028/782 912/203/177 816/1027/781 +f 243/548/403 818/964/729 242/549/404 +f 244/551/406 819/1030/784 243/552/403 +f 244/551/406 817/965/730 820/1031/785 +f 822/1032/786 817/965/730 818/964/729 +f 823/1033/787 818/964/729 819/1034/784 +f 823/1035/787 820/1031/785 824/1036/788 +f 824/1036/788 817/965/730 821/1037/789 +f 825/1038/790 822/1032/786 826/1039/791 +f 826/1039/791 823/1033/787 827/1040/792 +f 828/1041/793 823/1035/787 824/1036/788 +f 825/1038/790 824/1036/788 821/1037/789 +f 830/1042/794 825/1038/790 826/1039/791 +f 831/1043/795 826/1039/791 827/1040/792 +f 831/1044/795 828/1041/793 832/1045/796 +f 832/1045/796 825/1038/790 829/1046/797 +f 830/1042/794 757/228/198 829/1046/797 +f 831/1043/795 758/226/196 830/1042/794 +f 831/1044/795 760/230/199 759/1047/193 +f 832/1045/796 757/228/198 760/230/199 +f 834/1048/798 205/1049/799 206/469/333 +f 207/468/332 834/1048/798 206/469/333 +f 208/471/335 835/1050/800 207/468/332 +f 833/1051/801 208/471/335 205/1052/799 +f 837/1053/802 834/1048/798 838/1054/803 +f 838/1054/803 835/1050/800 839/1055/804 +f 840/1056/805 835/1050/800 836/1057/806 +f 837/1058/802 836/1057/806 833/1051/801 +f 841/1059/807 838/1054/803 842/188/167 +f 842/188/167 839/1055/804 843/186/165 +f 844/182/161 839/1055/804 840/1056/805 +f 841/1060/807 840/1056/805 837/1058/802 +f 402/467/331 205/1049/799 401/1061/336 +f 182/418/286 845/1062/808 181/1063/809 +f 183/417/285 846/1064/810 182/418/286 +f 184/420/288 847/1065/811 183/417/285 +f 184/420/288 845/1066/808 848/1067/812 +f 850/1068/813 845/1062/808 846/1064/810 +f 851/1069/814 846/1064/810 847/1065/811 +f 851/1069/814 848/1067/812 852/1070/815 +f 852/1070/815 845/1066/808 849/1071/816 +f 854/1072/817 849/1073/816 850/1068/813 +f 854/1072/817 851/1069/814 855/1074/818 +f 855/1074/818 852/1070/815 856/1075/819 +f 853/1076/820 852/1070/815 849/1071/816 +f 857/1077/821 854/1072/817 858/1078/822 +f 858/1078/822 855/1074/818 859/1079/823 +f 860/1080/824 855/1074/818 856/1075/819 +f 857/1081/821 856/1075/819 853/1076/820 +f 857/1077/821 150/215/186 149/214/185 +f 859/1079/823 150/215/186 858/1078/822 +f 860/1080/824 151/220/190 859/1079/823 +f 860/1080/824 149/218/185 152/217/188 +f 194/442/308 553/698/524 193/443/309 +f 454/580/431 513/655/490 453/581/432 +f 173/408/276 586/736/554 585/739/557 +f 166/383/255 573/733/553 165/384/256 +f 897/638/476 1/8/7 2/2/2 +f 870/61/55 38/607/454 869/65/58 +f 865/272/218 33/50/45 34/54/49 +f 861/266/217 29/40/36 30/44/40 +f 874/99/89 66/815/615 873/103/92 +f 805/1015/771 810/1024/775 809/1022/778 +f 909/1029/783 141/211/182 142/204/178 +f 298/1082/152 69/108/97 297/299/153 +f 314/319/152 101/146/131 313/321/153 +f 438/547/402 241/963/728 437/553/407 +f 841/1059/807 125/187/166 126/1083/162 +f 318/327/152 109/153/137 317/329/153 +f 658/167/150 118/335/230 657/162/145 +f 378/416/284 181/1063/809 377/1084/289 +f 338/356/152 133/196/171 337/1085/153 +f 445/568/420 250/564/417 249/571/423 +f 153/237/205 158/233/202 157/286/220 +f 306/310/152 85/126/113 305/312/153 +f 900/1/1 897/638/476 2/2/2 +f 899/4/4 900/1/1 3/3/3 +f 898/6/6 899/1086/4 4/7/5 +f 254/9/8 2/2/2 1/8/7 +f 6/11/10 9/15/14 10/12/11 +f 7/14/13 12/614/16 9/15/14 +f 8/16/15 11/19/17 12/17/16 +f 5/13/12 10/12/11 11/19/17 +f 14/20/18 17/24/22 18/21/19 +f 15/23/21 20/626/24 17/24/22 +f 16/25/23 19/28/25 20/26/24 +f 13/22/20 18/21/19 19/28/25 +f 22/29/26 25/33/30 26/30/27 +f 23/32/29 28/661/32 25/33/30 +f 24/34/31 27/37/33 28/35/32 +f 21/31/28 26/30/27 27/37/33 +f 862/38/34 863/41/37 32/39/35 +f 863/41/37 864/1087/39 31/42/38 +f 864/43/39 861/266/217 30/44/40 +f 518/46/41 30/44/40 29/40/36 +f 866/48/43 867/51/46 36/49/44 +f 867/51/46 868/275/48 35/52/47 +f 868/53/48 865/272/218 34/54/49 +f 450/56/50 354/573/425 353/57/51 +f 871/59/53 40/632/57 37/60/54 +f 872/62/56 39/66/59 40/63/57 +f 869/65/58 38/607/454 39/66/59 +f 358/67/60 162/375/248 161/68/61 +f 42/70/63 45/74/67 46/71/64 +f 43/73/66 48/754/69 45/74/67 +f 44/75/68 47/78/70 48/76/69 +f 41/72/65 46/71/64 47/78/70 +f 49/79/71 50/82/74 53/80/72 +f 50/82/74 51/84/76 56/83/75 +f 51/84/76 52/283/78 55/85/77 +f 52/86/78 49/79/71 54/81/73 +f 57/88/79 58/91/82 61/89/80 +f 58/91/82 59/93/84 64/92/83 +f 59/93/84 60/289/86 63/94/85 +f 60/95/86 57/88/79 62/90/81 +f 875/97/87 68/817/91 65/98/88 +f 876/100/90 67/104/93 68/101/91 +f 873/103/92 66/815/615 67/104/93 +f 422/105/94 226/511/370 225/106/95 +f 69/108/97 70/1088/100 73/109/98 +f 70/111/100 71/114/102 76/112/101 +f 71/114/102 72/116/104 75/115/103 +f 72/116/104 69/108/97 74/110/99 +f 77/117/105 78/120/108 81/118/106 +f 78/120/108 79/122/110 84/121/109 +f 79/122/110 80/306/112 83/123/111 +f 80/124/112 77/117/105 82/119/107 +f 85/126/113 86/129/116 89/127/114 +f 86/129/116 87/131/118 92/130/117 +f 87/131/118 88/311/120 91/132/119 +f 88/133/120 85/126/113 90/128/115 +f 93/135/121 94/1089/124 97/136/122 +f 94/138/124 95/141/126 100/139/125 +f 95/141/126 96/143/128 99/142/127 +f 96/143/128 93/135/121 98/137/123 +f 102/144/129 105/148/133 106/145/130 +f 103/147/132 108/883/135 105/148/133 +f 104/149/134 107/152/136 108/150/135 +f 101/146/131 106/145/130 107/152/136 +f 109/153/137 110/156/140 113/154/138 +f 110/156/140 111/158/142 116/157/141 +f 111/158/142 112/328/144 115/159/143 +f 112/160/144 109/153/137 114/155/139 +f 657/162/145 118/335/230 119/163/146 +f 659/165/148 660/164/147 119/163/146 +f 658/167/150 659/844/148 120/168/149 +f 322/170/152 118/335/230 117/169/151 +f 908/172/154 905/846/637 122/173/155 +f 908/172/154 123/174/156 124/175/157 +f 907/176/158 124/175/157 121/177/159 +f 326/179/152 122/173/155 121/180/159 +f 844/182/161 841/1060/807 126/183/162 +f 844/182/161 127/184/163 128/185/164 +f 843/186/165 128/185/164 125/187/166 +f 330/189/152 126/1083/162 125/187/166 +f 334/191/152 130/347/234 129/192/168 +f 134/194/169 137/198/173 138/195/170 +f 135/197/172 140/200/175 137/198/173 +f 136/199/174 139/202/176 140/200/175 +f 133/201/171 138/933/170 139/202/176 +f 912/203/177 909/1029/783 142/204/178 +f 912/203/177 143/205/179 144/206/180 +f 911/207/181 144/206/180 141/208/182 +f 342/210/152 142/204/178 141/211/182 +f 145/213/184 146/1090/187 149/214/185 +f 146/216/187 147/219/189 152/217/188 +f 147/219/189 148/221/191 151/220/190 +f 148/221/191 145/213/184 150/215/186 +f 754/222/192 758/226/196 759/223/193 +f 755/225/195 757/228/198 758/226/196 +f 756/227/197 760/230/199 757/228/198 +f 753/229/194 759/1047/193 760/230/199 +f 154/231/200 155/1091/204 159/232/201 +f 156/234/203 160/238/206 159/235/201 +f 153/237/205 157/286/220 160/238/206 +f 286/239/152 50/82/74 49/79/71 +f 3/3/3 2/2/2 254/9/8 +f 4/5/5 3/3/3 255/241/207 +f 1/8/7 4/7/5 256/243/208 +f 441/244/209 442/555/409 246/245/210 +f 259/247/212 7/14/13 6/11/10 +f 259/249/212 260/251/213 8/16/15 +f 257/250/153 5/13/12 8/16/15 +f 262/252/152 14/20/18 13/22/20 +f 263/254/212 15/23/21 14/20/18 +f 263/255/212 264/256/213 16/25/23 +f 261/253/153 13/22/20 16/25/23 +f 266/257/152 22/29/26 21/31/28 +f 267/259/212 23/32/29 22/29/26 +f 267/260/212 268/261/213 24/34/31 +f 265/258/153 21/31/28 24/34/31 +f 175/262/214 174/737/555 370/263/215 +f 269/265/153 270/268/152 862/38/34 +f 271/267/212 863/41/37 862/38/34 +f 272/269/213 864/1087/39 863/41/37 +f 269/265/153 861/266/217 864/43/39 +f 274/271/152 866/48/43 865/272/218 +f 275/274/212 867/51/46 866/48/43 +f 275/274/212 276/1092/213 868/275/48 +f 273/273/153 865/272/218 868/53/48 +f 277/277/153 278/279/152 870/61/55 +f 279/278/212 871/59/53 870/61/55 +f 280/280/213 872/62/56 871/64/53 +f 277/277/153 869/65/58 872/62/56 +f 287/282/212 51/84/76 50/82/74 +f 287/282/212 288/1093/213 52/283/78 +f 285/240/153 49/79/71 52/86/78 +f 158/233/202 538/681/510 537/285/219 +f 291/287/212 59/93/84 58/91/82 +f 291/287/212 292/1094/213 60/289/86 +f 289/290/153 57/88/79 60/95/86 +f 258/248/152 6/11/10 5/13/12 +f 293/292/153 294/294/152 874/99/89 +f 295/293/212 875/97/87 874/99/89 +f 296/295/213 876/100/90 875/102/87 +f 293/292/153 873/103/92 876/100/90 +f 299/297/212 71/114/102 70/111/100 +f 299/297/212 300/300/213 72/116/104 +f 297/299/153 69/108/97 72/116/104 +f 406/301/221 210/792/595 209/302/222 +f 303/304/212 79/122/110 78/120/108 +f 303/304/212 304/1095/213 80/306/112 +f 301/307/153 77/117/105 80/124/112 +f 307/309/212 87/131/118 86/129/116 +f 307/309/212 308/1096/213 88/311/120 +f 305/312/153 85/126/113 88/133/120 +f 290/288/152 58/91/82 57/88/79 +f 311/314/212 95/141/126 94/138/124 +f 311/314/212 312/317/213 96/143/128 +f 309/316/153 93/135/121 96/143/128 +f 315/318/212 103/147/132 102/144/129 +f 315/320/212 316/322/213 104/149/134 +f 313/321/153 101/146/131 104/149/134 +f 398/323/224 202/368/242 201/324/225 +f 319/326/212 111/158/142 110/156/140 +f 319/326/212 320/1097/213 112/328/144 +f 317/329/153 109/153/137 112/160/144 +f 417/331/227 418/503/363 222/332/228 +f 323/334/212 119/163/146 118/335/230 +f 323/334/212 324/1098/213 120/166/149 +f 321/171/153 117/169/151 120/168/149 +f 365/337/231 366/396/266 170/338/232 +f 327/340/212 123/174/156 122/173/155 +f 327/340/212 328/342/213 124/175/157 +f 325/341/153 121/177/159 124/175/157 +f 331/343/212 127/184/163 126/183/162 +f 331/343/212 332/345/213 128/185/164 +f 329/190/153 125/187/166 128/185/164 +f 335/346/212 131/349/236 130/347/234 +f 335/346/212 336/1099/213 132/348/235 +f 333/193/153 129/192/168 132/350/235 +f 413/352/237 414/495/356 218/353/238 +f 339/355/212 135/197/172 134/194/169 +f 339/355/212 340/358/213 136/199/174 +f 337/357/153 133/201/171 136/199/174 +f 343/359/212 143/205/179 142/204/178 +f 343/359/212 344/361/213 144/206/180 +f 341/360/153 141/208/182 144/206/180 +f 347/362/212 147/219/189 146/216/187 +f 347/362/212 348/365/213 148/221/191 +f 345/364/153 145/213/184 148/221/191 +f 201/324/225 202/368/242 350/366/240 +f 202/368/242 203/371/245 351/369/243 +f 204/370/244 352/868/246 351/369/243 +f 204/372/244 201/324/225 349/367/241 +f 358/67/60 359/376/249 163/374/247 +f 359/376/249 360/1100/251 164/377/250 +f 357/69/62 161/68/61 164/378/250 +f 490/380/252 162/375/248 163/374/247 +f 877/382/254 878/385/257 166/383/255 +f 878/385/257 879/393/260 167/386/258 +f 880/387/259 168/390/261 167/388/258 +f 877/382/254 165/384/256 168/390/261 +f 362/391/262 878/385/257 877/382/254 +f 362/391/262 363/1101/265 879/393/260 +f 364/394/264 880/387/259 879/389/260 +f 364/394/264 361/392/263 877/382/254 +f 366/396/266 367/1102/269 171/397/267 +f 368/398/268 172/401/270 171/399/267 +f 365/337/231 169/339/233 172/401/270 +f 169/339/233 170/338/232 646/402/271 +f 176/404/273 175/262/214 371/264/216 +f 176/406/273 372/1103/274 369/407/275 +f 374/409/277 375/412/280 179/410/278 +f 375/412/280 376/415/283 180/413/281 +f 373/414/282 177/1104/666 180/413/281 +f 378/416/284 379/419/287 183/417/285 +f 379/419/287 380/422/290 184/420/288 +f 377/421/289 181/1105/809 184/420/288 +f 382/423/291 383/1106/295 187/424/292 +f 384/426/294 188/430/297 187/427/292 +f 381/429/296 185/432/299 188/430/297 +f 186/425/293 774/977/741 773/431/298 +f 386/433/300 387/1107/304 191/434/301 +f 388/436/303 192/440/306 191/437/301 +f 385/439/305 189/669/500 192/440/306 +f 881/441/307 882/444/310 194/442/308 +f 882/444/310 883/1108/313 195/445/311 +f 884/446/312 196/449/314 195/447/311 +f 881/441/307 193/443/309 196/449/314 +f 390/450/315 882/444/310 881/441/307 +f 391/452/317 883/1108/313 882/444/310 +f 391/453/317 392/454/318 884/446/312 +f 392/454/318 389/451/316 881/441/307 +f 394/455/319 395/459/323 199/456/320 +f 396/458/322 200/461/325 199/456/320 +f 393/460/324 197/462/326 200/461/325 +f 197/462/326 198/957/321 734/463/327 +f 398/323/224 399/465/329 203/371/245 +f 399/465/329 400/1109/330 204/370/244 +f 397/325/226 201/324/225 204/372/244 +f 402/467/331 403/470/334 207/468/332 +f 403/470/334 404/473/337 208/471/335 +f 401/472/336 205/1052/799 208/471/335 +f 211/474/338 210/792/595 406/301/221 +f 212/476/340 211/474/338 407/475/339 +f 405/478/223 209/785/222 212/476/340 +f 614/479/342 210/792/595 211/474/338 +f 886/481/344 214/485/348 213/482/345 +f 886/481/344 887/486/349 215/484/347 +f 887/486/349 888/1110/351 216/487/350 +f 885/483/346 213/482/345 216/488/350 +f 410/490/352 886/481/344 885/483/346 +f 410/490/352 411/493/355 887/486/349 +f 412/492/354 888/1110/351 887/486/349 +f 409/491/353 885/483/346 888/489/351 +f 414/495/356 415/1111/359 219/496/357 +f 416/497/358 220/500/360 219/498/357 +f 413/352/237 217/354/239 220/500/360 +f 217/354/239 218/353/238 662/501/361 +f 418/503/363 419/1112/366 223/504/364 +f 420/505/365 224/508/367 223/506/364 +f 417/331/227 221/333/229 224/508/367 +f 222/332/228 634/818/616 633/509/368 +f 422/105/94 423/512/371 227/510/369 +f 423/512/371 424/1113/373 228/513/372 +f 421/107/96 225/106/95 228/514/372 +f 226/511/370 618/794/597 617/516/374 +f 427/517/375 231/521/379 230/518/376 +f 428/520/378 232/523/381 231/521/379 +f 428/520/378 425/934/705 229/522/380 +f 230/524/376 710/910/683 709/525/382 +f 431/526/383 235/530/387 234/527/384 +f 432/529/386 236/532/389 235/530/387 +f 432/529/386 429/998/758 233/531/388 +f 890/533/390 238/537/394 237/534/391 +f 890/533/390 891/538/395 239/536/393 +f 891/538/395 892/1114/397 240/539/396 +f 889/535/392 237/534/391 240/540/396 +f 434/542/398 890/533/390 889/535/392 +f 434/542/398 435/545/401 891/538/395 +f 436/544/400 892/1114/397 891/538/395 +f 436/546/400 433/543/399 889/535/392 +f 438/547/402 439/1115/405 243/548/403 +f 439/550/405 440/554/408 244/551/406 +f 437/553/407 241/963/728 244/551/406 +f 442/555/409 443/1116/412 247/556/410 +f 444/557/411 248/560/413 247/558/410 +f 441/244/209 245/246/211 248/560/413 +f 246/245/210 502/634/472 501/561/414 +f 446/562/415 447/1117/419 251/563/416 +f 448/565/418 252/569/421 251/566/416 +f 445/568/420 249/571/423 252/569/421 +f 250/564/417 598/760/570 597/570/422 +f 450/56/50 451/1118/426 355/572/424 +f 451/574/426 452/577/428 356/575/427 +f 449/58/52 353/57/51 356/575/427 +f 471/578/429 470/617/462 354/573/425 +f 893/579/430 894/582/433 454/580/431 +f 894/582/433 895/585/436 455/583/434 +f 896/584/435 456/1119/437 455/583/434 +f 893/579/430 453/581/432 456/586/437 +f 458/588/438 894/582/433 893/579/430 +f 458/588/438 459/591/441 895/585/436 +f 460/590/440 896/584/435 895/585/436 +f 457/589/439 893/579/430 896/587/435 +f 471/593/429 355/576/424 356/575/427 +f 472/594/442 356/575/427 353/57/51 +f 474/596/444 34/54/49 33/50/45 +f 215/484/347 467/600/448 466/598/446 +f 215/484/347 216/487/350 468/599/447 +f 213/482/345 465/615/461 468/601/447 +f 462/602/449 10/12/11 9/15/14 +f 491/381/253 163/374/247 164/377/250 +f 489/605/452 492/633/451 164/378/250 +f 485/606/453 486/629/470 38/607/454 +f 239/536/393 483/609/456 482/608/455 +f 240/539/396 484/627/458 483/609/456 +f 240/540/396 237/534/391 481/610/457 +f 463/612/459 11/19/17 10/12/11 +f 463/612/459 464/616/460 12/17/16 +f 464/613/460 461/603/450 9/15/14 +f 462/602/449 461/603/450 465/615/461 +f 463/612/459 462/602/449 466/598/446 +f 463/612/459 467/600/448 468/599/447 +f 464/613/460 468/601/447 465/615/461 +f 473/597/445 469/595/443 470/617/462 +f 475/618/463 474/596/444 470/617/462 +f 476/619/464 475/620/463 471/593/429 +f 476/619/464 472/594/442 469/595/443 +f 470/617/462 469/595/443 353/57/51 +f 475/618/463 35/55/47 34/54/49 +f 475/620/463 476/619/464 36/49/44 +f 476/619/464 473/597/445 33/50/45 +f 477/621/465 478/623/467 18/21/19 +f 479/622/466 19/28/25 18/21/19 +f 480/624/468 20/26/24 19/28/25 +f 480/625/468 477/621/465 17/24/22 +f 477/621/465 481/610/457 482/608/455 +f 479/622/466 478/623/467 482/608/455 +f 480/624/468 479/622/466 483/609/456 +f 480/625/468 484/611/458 481/610/457 +f 214/485/348 466/598/446 465/615/461 +f 487/628/469 39/66/59 38/607/454 +f 488/630/471 40/63/57 39/66/59 +f 488/631/471 485/606/453 37/60/54 +f 485/606/453 489/605/452 490/380/252 +f 486/629/470 490/380/252 491/381/253 +f 488/630/471 487/628/469 491/381/253 +f 485/606/453 488/631/471 492/633/451 +f 490/380/252 489/605/452 161/68/61 +f 247/556/410 503/647/474 502/634/472 +f 247/558/410 248/560/413 504/635/473 +f 248/560/413 245/246/211 501/561/414 +f 494/637/475 898/6/6 897/638/476 +f 495/640/478 899/1086/4 898/6/6 +f 495/641/478 496/642/479 900/1/1 +f 496/642/479 493/639/477 897/638/476 +f 494/637/475 493/639/477 497/643/480 +f 495/640/478 494/637/475 498/644/481 +f 495/641/478 499/648/482 500/646/483 +f 496/642/479 500/646/483 497/643/480 +f 498/644/481 497/643/480 501/561/414 +f 498/644/481 502/634/472 503/647/474 +f 499/648/482 503/636/474 504/635/473 +f 497/643/480 500/646/483 504/635/473 +f 562/649/484 558/716/539 557/650/485 +f 455/583/434 515/654/489 514/652/487 +f 455/583/434 456/1119/437 516/653/488 +f 456/586/437 453/581/432 513/655/490 +f 507/657/491 27/37/33 26/30/27 +f 508/659/493 28/35/32 27/37/33 +f 508/660/493 505/662/494 25/33/30 +f 505/662/494 509/666/498 510/663/495 +f 507/657/491 506/658/492 510/663/495 +f 508/659/493 507/657/491 511/664/496 +f 508/660/493 512/667/497 509/666/498 +f 510/663/495 509/666/498 513/655/490 +f 511/664/496 510/663/495 514/652/487 +f 511/664/496 515/654/489 516/653/488 +f 512/667/497 516/656/488 513/655/490 +f 237/534/391 238/537/394 482/608/455 +f 190/435/302 526/670/501 525/668/499 +f 191/434/301 527/680/503 526/670/501 +f 191/437/301 192/440/306 528/671/502 +f 192/440/306 189/669/500 525/668/499 +f 519/673/504 31/45/38 30/44/40 +f 519/674/504 520/675/505 32/39/35 +f 520/675/505 517/47/42 29/40/36 +f 518/46/41 517/47/42 521/676/506 +f 519/673/504 518/46/41 522/677/507 +f 519/674/504 523/1120/508 524/679/509 +f 520/675/505 524/679/509 521/676/506 +f 385/439/305 386/433/300 190/435/302 +f 521/676/506 525/668/499 526/670/501 +f 522/677/507 526/670/501 527/680/503 +f 524/679/509 523/1120/508 527/672/503 +f 521/676/506 524/679/509 528/671/502 +f 159/232/201 539/693/512 538/681/510 +f 159/235/201 160/238/206 540/682/511 +f 157/286/220 537/285/219 540/682/511 +f 530/684/513 54/81/73 53/80/72 +f 531/686/515 55/87/77 54/81/73 +f 531/687/515 532/688/516 56/83/75 +f 532/688/516 529/685/514 53/80/72 +f 530/684/513 529/685/514 533/689/517 +f 531/686/515 530/684/513 534/690/518 +f 531/687/515 535/694/519 536/692/520 +f 532/688/516 536/692/520 533/689/517 +f 534/690/518 533/689/517 537/285/219 +f 534/690/518 538/681/510 539/693/512 +f 535/694/519 539/683/512 540/682/511 +f 533/689/517 536/692/520 540/682/511 +f 195/445/311 555/715/523 554/695/521 +f 195/447/311 196/449/314 556/696/522 +f 196/449/314 193/443/309 553/698/524 +f 543/699/525 63/96/85 62/90/81 +f 543/701/525 544/702/527 64/92/83 +f 544/702/527 541/707/532 61/89/80 +f 542/700/526 541/707/532 545/703/528 +f 542/700/526 546/704/529 547/705/530 +f 543/701/525 547/1121/530 548/706/531 +f 541/707/532 544/702/527 548/706/531 +f 561/651/486 549/714/538 550/708/533 +f 562/649/484 550/708/533 551/709/534 +f 564/711/536 563/720/535 551/712/534 +f 561/651/486 564/711/536 552/713/537 +f 550/708/533 549/714/538 553/698/524 +f 551/709/534 550/708/533 554/695/521 +f 551/712/534 555/697/523 556/696/522 +f 552/713/537 556/696/522 553/698/524 +f 545/703/528 557/650/485 558/716/539 +f 547/705/530 546/704/529 558/716/539 +f 548/706/531 547/1121/530 559/718/540 +f 548/706/531 560/719/541 557/650/485 +f 563/710/535 559/717/540 558/716/539 +f 563/720/535 564/711/536 560/719/541 +f 557/650/485 560/719/541 564/711/536 +f 505/662/494 506/658/492 26/30/27 +f 167/386/258 575/734/544 574/721/542 +f 167/388/258 168/390/261 576/722/543 +f 165/384/256 573/733/553 576/722/543 +f 566/724/545 90/128/115 89/127/114 +f 567/726/547 91/134/119 90/128/115 +f 567/727/547 568/728/548 92/130/117 +f 568/728/548 565/725/546 89/127/114 +f 566/724/545 565/725/546 569/729/549 +f 567/726/547 566/724/545 570/730/550 +f 567/727/547 571/735/551 572/732/552 +f 568/728/548 572/732/552 569/729/549 +f 570/730/550 569/729/549 573/733/553 +f 570/730/550 574/721/542 575/734/544 +f 571/735/551 575/723/544 576/722/543 +f 569/729/549 572/732/552 576/722/543 +f 542/700/526 62/90/81 61/89/80 +f 175/262/214 587/738/556 586/736/554 +f 176/404/273 588/759/558 587/738/556 +f 176/406/273 173/408/276 585/739/557 +f 577/741/559 578/751/564 46/71/64 +f 43/73/66 42/70/63 282/742/152 +f 44/75/68 43/77/66 283/744/212 +f 41/72/65 44/75/68 284/745/213 +f 689/747/560 685/877/662 686/748/561 +f 282/742/152 42/70/63 41/72/65 +f 173/408/276 369/407/275 370/263/215 +f 579/750/563 47/78/70 46/71/64 +f 580/752/565 48/76/69 47/78/70 +f 580/753/565 577/741/559 45/74/67 +f 577/741/559 581/758/569 582/755/566 +f 579/750/563 578/751/564 582/755/566 +f 580/752/565 579/750/563 583/756/567 +f 580/753/565 584/1122/568 581/758/569 +f 582/755/566 581/758/569 585/739/557 +f 582/755/566 586/736/554 587/738/556 +f 583/756/567 587/738/556 588/759/558 +f 581/758/569 584/1122/568 588/740/558 +f 251/563/416 599/781/572 598/760/570 +f 251/566/416 252/569/421 600/761/571 +f 252/569/421 249/571/423 597/570/422 +f 602/763/573 601/771/580 589/764/574 +f 603/766/576 602/763/573 590/765/575 +f 603/768/576 591/782/577 592/769/578 +f 604/770/579 592/769/578 589/764/574 +f 602/763/573 82/119/107 81/118/106 +f 605/772/581 593/780/588 594/773/582 +f 606/774/583 594/773/582 595/775/584 +f 608/777/586 607/1123/585 595/778/584 +f 605/772/581 608/777/586 596/779/587 +f 593/780/588 597/570/422 598/760/570 +f 594/773/582 598/760/570 599/781/572 +f 596/779/587 595/778/584 599/762/572 +f 593/780/588 596/779/587 600/761/571 +f 603/766/576 83/125/111 82/119/107 +f 603/768/576 604/770/579 84/121/109 +f 604/770/579 601/771/580 81/118/106 +f 590/765/575 589/764/574 605/772/581 +f 591/767/577 590/765/575 606/774/583 +f 591/782/577 607/1123/585 608/777/586 +f 592/769/578 608/777/586 605/772/581 +f 616/783/589 615/480/343 211/474/338 +f 613/784/590 616/783/589 212/476/340 +f 609/786/591 610/787/592 74/110/99 +f 610/787/592 611/789/594 75/115/103 +f 612/788/593 76/112/101 75/115/103 +f 609/790/591 73/113/98 76/112/101 +f 609/786/591 613/791/590 614/479/342 +f 610/787/592 614/479/342 615/480/343 +f 612/788/593 611/789/594 615/480/343 +f 609/790/591 612/788/593 616/783/589 +f 613/791/590 209/302/222 210/792/595 +f 226/511/370 227/510/369 619/793/596 +f 227/510/369 228/513/372 620/795/598 +f 225/106/95 617/516/374 620/796/598 +f 621/797/599 901/805/606 902/798/600 +f 622/799/601 902/798/600 903/800/602 +f 624/802/604 623/801/603 903/800/602 +f 621/797/599 624/1124/604 904/804/605 +f 617/516/374 618/794/597 902/798/600 +f 619/793/596 903/800/602 902/798/600 +f 620/795/598 904/803/605 903/800/602 +f 620/796/598 617/516/374 901/805/606 +f 625/806/607 621/797/599 622/799/601 +f 627/808/609 626/807/608 622/799/601 +f 628/809/610 627/808/609 623/801/603 +f 628/810/610 624/1124/604 621/797/599 +f 629/811/611 625/806/607 626/807/608 +f 630/812/612 626/807/608 627/808/609 +f 632/814/614 631/813/613 627/808/609 +f 629/811/611 632/816/614 628/810/610 +f 629/811/611 630/812/612 66/815/615 +f 631/813/613 67/104/93 66/815/615 +f 632/814/614 68/101/91 67/104/93 +f 632/816/614 629/811/611 65/98/88 +f 381/429/296 382/423/291 186/425/293 +f 223/504/364 635/822/618 634/818/616 +f 223/506/364 224/508/367 636/819/617 +f 224/508/367 221/333/229 633/509/368 +f 638/821/619 637/826/622 633/509/368 +f 638/821/619 634/818/616 635/822/618 +f 639/824/620 635/820/618 636/819/617 +f 637/826/622 640/825/621 636/819/617 +f 642/827/623 641/831/626 637/826/622 +f 643/828/624 642/827/623 638/821/619 +f 643/829/624 639/824/620 640/825/621 +f 644/830/625 640/825/621 637/826/622 +f 642/827/623 114/155/139 113/154/138 +f 643/828/624 115/161/143 114/155/139 +f 643/829/624 644/830/625 116/157/141 +f 644/830/625 641/831/626 113/154/138 +f 171/397/267 647/836/627 646/402/271 +f 172/401/270 648/833/628 647/832/627 +f 172/401/270 169/339/233 645/403/272 +f 649/834/629 645/403/272 646/402/271 +f 650/835/630 646/402/271 647/836/627 +f 652/838/632 651/1125/631 647/832/627 +f 649/834/629 652/838/632 648/833/628 +f 654/839/633 653/843/636 649/834/629 +f 655/840/634 654/839/633 650/835/630 +f 655/841/634 651/1125/631 652/838/632 +f 656/842/635 652/838/632 649/834/629 +f 658/167/150 657/162/145 653/843/636 +f 658/167/150 654/839/633 655/840/634 +f 659/165/148 655/841/634 656/842/635 +f 657/162/145 660/164/147 656/842/635 +f 906/845/160 121/180/159 122/173/155 +f 219/496/357 663/851/638 662/501/361 +f 220/500/360 664/848/639 663/847/638 +f 220/500/360 217/354/239 661/502/362 +f 665/849/640 661/502/362 662/501/361 +f 666/850/641 662/501/361 663/851/638 +f 668/853/643 667/1126/642 663/847/638 +f 665/849/640 668/853/643 664/848/639 +f 670/854/644 669/858/647 665/849/640 +f 670/854/644 666/850/641 667/852/642 +f 671/856/645 667/1126/642 668/853/643 +f 669/858/647 672/857/646 668/853/643 +f 674/859/648 673/863/651 669/858/647 +f 675/860/649 674/859/648 670/854/644 +f 675/861/649 671/856/645 672/857/646 +f 676/862/650 672/857/646 669/858/647 +f 130/347/234 673/863/651 674/859/648 +f 129/192/168 674/859/648 675/860/649 +f 131/349/236 132/348/235 675/861/649 +f 130/347/234 131/349/236 676/862/650 +f 677/864/652 349/367/241 350/366/240 +f 679/866/654 678/865/653 350/366/240 +f 680/867/655 679/866/654 351/369/243 +f 680/869/655 352/373/246 349/367/241 +f 682/870/656 681/874/659 677/864/652 +f 683/871/657 682/870/656 678/865/653 +f 683/871/657 679/866/654 680/867/655 +f 684/873/658 680/869/655 677/864/652 +f 686/748/561 685/877/662 681/874/659 +f 686/748/561 682/870/656 683/871/657 +f 687/875/660 683/871/657 684/872/658 +f 685/877/662 688/880/661 684/873/658 +f 690/749/562 686/748/561 687/875/660 +f 687/875/660 688/876/661 692/879/664 +f 688/880/661 685/877/662 689/747/560 +f 346/882/152 146/1090/187 145/213/184 +f 689/747/560 690/749/562 106/145/130 +f 690/749/562 691/878/663 107/152/136 +f 692/879/664 108/150/135 107/152/136 +f 689/747/560 105/148/133 108/883/135 +f 310/884/152 94/1089/124 93/135/121 +f 178/411/279 694/887/667 693/885/665 +f 179/410/278 695/889/669 694/887/667 +f 179/410/278 180/413/281 696/888/668 +f 180/413/281 177/1104/666 693/890/665 +f 698/891/670 697/1127/673 693/885/665 +f 699/892/671 698/891/670 694/887/667 +f 699/892/671 695/889/669 696/888/668 +f 700/893/672 696/888/668 693/890/665 +f 701/895/674 697/1127/673 698/891/670 +f 702/896/675 698/891/670 699/892/671 +f 704/898/677 703/897/676 699/892/671 +f 701/899/674 704/898/677 700/893/672 +f 705/900/678 701/895/674 702/896/675 +f 706/901/679 702/896/675 703/897/676 +f 708/903/681 704/898/677 701/899/674 +f 708/903/681 707/902/680 703/897/676 +f 98/137/123 97/136/122 705/900/678 +f 98/137/123 706/901/679 707/902/680 +f 99/142/127 707/902/680 708/903/681 +f 97/140/122 100/139/125 708/903/681 +f 374/409/277 178/411/279 177/886/666 +f 230/518/376 231/521/379 711/906/682 +f 231/521/379 232/523/381 712/908/684 +f 229/522/380 709/525/382 712/908/684 +f 714/909/685 713/913/688 709/525/382 +f 715/911/686 714/1128/685 710/907/683 +f 715/911/686 711/906/682 712/908/684 +f 716/912/687 712/908/684 709/525/382 +f 718/914/689 717/918/692 713/913/688 +f 718/915/689 714/1128/685 715/911/686 +f 719/916/690 715/911/686 716/912/687 +f 717/918/692 720/917/691 716/912/687 +f 302/305/152 78/120/108 77/117/105 +f 721/919/693 717/918/692 718/914/689 +f 723/921/695 722/1129/694 718/915/689 +f 724/922/696 723/921/695 719/916/690 +f 724/922/696 720/917/691 717/918/692 +f 726/923/697 725/927/700 721/919/693 +f 726/924/697 722/1129/694 723/921/695 +f 727/925/698 723/921/695 724/922/696 +f 725/927/700 728/926/699 724/922/696 +f 730/928/701 729/932/704 725/927/700 +f 730/929/701 726/924/697 727/925/698 +f 731/930/702 727/925/698 728/926/699 +f 729/932/704 732/931/703 728/926/699 +f 730/928/701 138/195/170 137/198/173 +f 730/929/701 731/930/702 139/202/176 +f 731/930/702 732/931/703 140/200/175 +f 729/932/704 137/198/173 140/200/175 +f 425/934/705 426/1130/377 230/524/376 +f 198/457/321 199/456/320 735/935/706 +f 200/461/325 736/937/707 735/935/706 +f 197/462/326 733/464/328 736/937/707 +f 737/938/708 733/464/328 734/463/327 +f 738/940/709 734/936/327 735/935/706 +f 740/942/711 739/941/710 735/935/706 +f 737/938/708 740/942/711 736/937/707 +f 741/943/712 737/938/708 738/939/709 +f 743/945/714 742/1131/713 738/940/709 +f 744/946/715 743/945/714 739/941/710 +f 744/946/715 740/942/711 737/938/708 +f 746/947/716 745/951/719 741/943/712 +f 746/948/716 742/1131/713 743/945/714 +f 747/949/717 743/945/714 744/946/715 +f 745/951/719 748/950/718 744/946/715 +f 749/952/720 745/951/719 746/947/716 +f 750/954/721 746/948/716 747/949/717 +f 752/956/723 751/955/722 747/949/717 +f 749/952/720 752/956/723 748/950/718 +f 393/460/324 394/1132/319 198/957/321 +f 750/953/721 906/845/160 905/846/637 +f 750/954/721 751/955/722 907/176/158 +f 751/955/722 752/956/723 908/172/154 +f 749/952/720 905/846/637 908/172/154 +f 754/222/192 753/224/194 765/958/724 +f 754/222/192 766/959/725 767/960/726 +f 755/225/195 767/960/726 768/961/727 +f 753/229/194 756/227/197 768/961/727 +f 241/963/728 242/549/404 818/964/729 +f 763/966/731 769/1133/738 770/967/732 +f 761/969/734 762/968/733 770/967/732 +f 764/971/736 761/969/734 771/970/735 +f 763/973/731 764/971/736 772/972/737 +f 790/975/739 762/968/733 761/969/734 +f 187/424/292 775/982/743 774/977/741 +f 187/427/292 188/430/297 776/978/742 +f 188/430/297 185/432/299 773/431/298 +f 778/980/744 777/985/747 773/431/298 +f 779/981/745 778/980/744 774/977/741 +f 779/983/745 775/979/743 776/978/742 +f 780/984/746 776/978/742 773/431/298 +f 781/986/748 777/985/747 778/980/744 +f 782/987/749 778/980/744 779/981/745 +f 784/989/751 783/1134/750 779/983/745 +f 781/986/748 784/989/751 780/984/746 +f 786/990/752 785/994/755 781/986/748 +f 786/990/752 782/987/749 783/988/750 +f 787/992/753 783/1134/750 784/989/751 +f 785/994/755 788/993/754 784/989/751 +f 786/990/752 787/991/753 791/995/756 +f 791/996/756 787/992/753 788/993/754 +f 792/997/757 788/993/754 785/994/755 +f 785/994/755 786/990/752 790/975/739 +f 791/995/756 763/966/731 762/968/733 +f 791/996/756 792/997/757 764/971/736 +f 792/997/757 789/976/740 761/969/734 +f 429/998/758 430/1135/385 234/999/384 +f 234/999/384 794/1005/761 793/1000/759 +f 234/527/384 235/530/387 795/1001/760 +f 236/532/389 796/1003/762 795/1001/760 +f 233/531/388 793/1000/759 796/1003/762 +f 797/1004/763 793/1000/759 794/1005/761 +f 798/1007/764 794/1002/761 795/1001/760 +f 800/1009/766 799/1008/765 795/1001/760 +f 797/1004/763 800/1009/766 796/1003/762 +f 801/1010/767 797/1004/763 798/1006/764 +f 802/1012/768 798/1007/764 799/1008/765 +f 804/1014/770 803/1013/769 799/1008/765 +f 801/1010/767 804/1014/770 800/1009/766 +f 805/1015/771 801/1010/767 802/1011/768 +f 807/1017/773 806/1136/772 802/1012/768 +f 808/1018/774 807/1017/773 803/1013/769 +f 808/1018/774 804/1014/770 801/1010/767 +f 810/1019/775 806/1136/772 807/1017/773 +f 811/1020/776 807/1017/773 808/1018/774 +f 808/1018/774 805/1015/771 809/1022/778 +f 814/1023/779 813/1028/782 809/1022/778 +f 814/1025/779 810/1019/775 811/1020/776 +f 815/1026/780 811/1020/776 812/1021/777 +f 813/1028/782 816/1027/781 812/1021/777 +f 814/1023/779 910/1137/183 909/1029/783 +f 814/1025/779 815/1026/780 911/207/181 +f 815/1026/780 816/1027/781 912/203/177 +f 813/1028/782 909/1029/783 912/203/177 +f 243/548/403 819/1034/784 818/964/729 +f 244/551/406 820/1031/785 819/1030/784 +f 244/551/406 241/963/728 817/965/730 +f 822/1032/786 821/1037/789 817/965/730 +f 823/1033/787 822/1032/786 818/964/729 +f 823/1035/787 819/1030/784 820/1031/785 +f 824/1036/788 820/1031/785 817/965/730 +f 825/1038/790 821/1037/789 822/1032/786 +f 826/1039/791 822/1032/786 823/1033/787 +f 828/1041/793 827/1138/792 823/1035/787 +f 825/1038/790 828/1041/793 824/1036/788 +f 830/1042/794 829/1046/797 825/1038/790 +f 831/1043/795 830/1042/794 826/1039/791 +f 831/1044/795 827/1138/792 828/1041/793 +f 832/1045/796 828/1041/793 825/1038/790 +f 830/1042/794 758/226/196 757/228/198 +f 831/1043/795 759/223/193 758/226/196 +f 831/1044/795 832/1045/796 760/230/199 +f 832/1045/796 829/1046/797 757/228/198 +f 834/1048/798 833/1139/801 205/1049/799 +f 207/468/332 835/1050/800 834/1048/798 +f 208/471/335 836/1057/806 835/1050/800 +f 833/1051/801 836/1057/806 208/471/335 +f 837/1053/802 833/1139/801 834/1048/798 +f 838/1054/803 834/1048/798 835/1050/800 +f 840/1056/805 839/1055/804 835/1050/800 +f 837/1058/802 840/1056/805 836/1057/806 +f 841/1059/807 837/1053/802 838/1054/803 +f 842/188/167 838/1054/803 839/1055/804 +f 844/182/161 843/186/165 839/1055/804 +f 841/1060/807 844/182/161 840/1056/805 +f 402/467/331 206/469/333 205/1049/799 +f 182/418/286 846/1064/810 845/1062/808 +f 183/417/285 847/1065/811 846/1064/810 +f 184/420/288 848/1067/812 847/1065/811 +f 184/420/288 181/1105/809 845/1066/808 +f 850/1068/813 849/1073/816 845/1062/808 +f 851/1069/814 850/1068/813 846/1064/810 +f 851/1069/814 847/1065/811 848/1067/812 +f 852/1070/815 848/1067/812 845/1066/808 +f 854/1072/817 853/1140/820 849/1073/816 +f 854/1072/817 850/1068/813 851/1069/814 +f 855/1074/818 851/1069/814 852/1070/815 +f 853/1076/820 856/1075/819 852/1070/815 +f 857/1077/821 853/1140/820 854/1072/817 +f 858/1078/822 854/1072/817 855/1074/818 +f 860/1080/824 859/1079/823 855/1074/818 +f 857/1081/821 860/1080/824 856/1075/819 +f 857/1077/821 858/1078/822 150/215/186 +f 859/1079/823 151/220/190 150/215/186 +f 860/1080/824 152/217/188 151/220/190 +f 860/1080/824 857/1081/821 149/218/185 +f 194/442/308 554/695/521 553/698/524 +f 454/580/431 514/652/487 513/655/490 +f 173/408/276 174/737/555 586/736/554 +f 166/383/255 574/721/542 573/733/553 +f 897/638/476 898/6/6 1/8/7 +f 870/61/55 37/60/54 38/607/454 +f 865/272/218 866/48/43 33/50/45 +f 861/266/217 862/38/34 29/40/36 +f 874/99/89 65/98/88 66/815/615 +f 805/1015/771 806/1016/772 810/1024/775 +f 909/1029/783 910/1137/183 141/211/182 +f 298/1082/152 70/1088/100 69/108/97 +f 314/319/152 102/144/129 101/146/131 +f 438/547/402 242/549/404 241/963/728 +f 841/1059/807 842/188/167 125/187/166 +f 318/327/152 110/156/140 109/153/137 +f 658/167/150 117/169/151 118/335/230 +f 378/416/284 182/418/286 181/1063/809 +f 338/356/152 134/194/169 133/196/171 +f 445/568/420 446/562/415 250/564/417 +f 153/237/205 154/231/200 158/233/202 +f 306/310/152 86/129/116 85/126/113 +o Body +v -1.000000 0.062500 -0.500000 +v -1.000000 0.000000 -0.562500 +v -1.000000 0.000000 -0.500000 +v -1.000000 0.062500 -0.562500 +v 1.000000 0.000000 -0.562500 +v 1.000000 0.062500 -0.562500 +v 1.000000 0.000000 -0.500000 +v -1.000000 0.062500 -0.437500 +v -1.000000 0.125000 -0.500000 +v 1.000000 0.062500 -0.500000 +v 1.000000 0.062500 -0.437500 +v -1.000000 0.000000 -0.437500 +v 1.000000 0.000000 -0.437500 +v 1.000000 0.125000 -0.437500 +v -0.937500 0.187500 -0.500000 +v 0.937500 0.187500 -0.437500 +v 0.937500 0.187500 -0.500000 +v -0.937500 0.187500 -0.437500 +v -1.000000 0.125000 -0.437500 +v 1.000000 0.125000 -0.500000 +v -1.000000 -0.000000 0.562500 +v -1.000000 0.062500 0.500000 +v -1.000000 -0.000000 0.500000 +v 1.000000 -0.000000 0.562500 +v -1.000000 0.062500 0.562500 +v 1.000000 -0.000000 0.500000 +v 1.000000 0.062500 0.562500 +v -1.000000 0.125000 0.500000 +v -1.000000 0.062500 0.437500 +v 1.000000 0.062500 0.500000 +v -1.000000 -0.000000 0.437500 +v 1.000000 0.062500 0.437500 +v 1.000000 -0.000000 0.437500 +v 1.000000 0.125000 0.437500 +v 0.937500 0.187500 0.437500 +v -0.937500 0.187500 0.500000 +v 0.937500 0.187500 0.500000 +v -1.000000 0.125000 0.437500 +v 1.000000 0.125000 0.500000 +v -0.531250 0.187500 0.437500 +v -0.531250 0.000000 -0.437500 +v -0.531250 -0.000000 0.437500 +v -0.468750 0.187500 -0.437500 +v -0.468750 -0.000000 0.437500 +v -0.468750 0.000000 -0.437500 +v -0.531250 0.187500 -0.437500 +v -0.468750 0.187500 0.437500 +v 0.531250 0.000000 -0.437500 +v 0.531250 0.187500 0.437500 +v 0.531250 -0.000000 0.437500 +v 0.468750 -0.000000 0.437500 +v 0.468750 0.187500 -0.437500 +v 0.468750 0.000000 -0.437500 +v 0.468750 0.187500 0.437500 +v 0.531250 0.187500 -0.437500 +v -0.619649 0.820234 -0.375000 +v -0.749885 0.081628 -0.437500 +v -0.749885 0.081628 -0.375000 +v -0.619649 0.820234 -0.437500 +v -0.565233 0.049069 -0.437500 +v -0.434997 0.787675 -0.437500 +v -0.565233 0.049069 -0.375000 +v -0.434997 0.787675 -0.375000 +v -0.600024 0.335540 -0.421875 +v -0.379053 0.114569 -0.453125 +v -0.379053 0.114569 -0.421875 +v -0.600024 0.335540 -0.453125 +v -0.334858 0.158763 -0.453125 +v -0.555829 0.379734 -0.453125 +v -0.334858 0.158763 -0.421875 +v -0.555829 0.379734 -0.421875 +v 0.749885 0.081628 -0.437500 +v 0.619649 0.820234 -0.375000 +v 0.749885 0.081628 -0.375000 +v 0.565233 0.049069 -0.437500 +v 0.619649 0.820234 -0.437500 +v 0.565233 0.049069 -0.375000 +v 0.434997 0.787675 -0.437500 +v 0.434997 0.787675 -0.375000 +v 0.379053 0.114569 -0.453125 +v 0.600024 0.335540 -0.421875 +v 0.379053 0.114569 -0.421875 +v 0.334858 0.158763 -0.453125 +v 0.600024 0.335540 -0.453125 +v 0.334858 0.158763 -0.421875 +v 0.555829 0.379734 -0.453125 +v 0.555829 0.379734 -0.421875 +v -0.749885 0.081628 0.437500 +v -0.619649 0.820234 0.375000 +v -0.749885 0.081628 0.375000 +v -0.565233 0.049069 0.437500 +v -0.619649 0.820234 0.437500 +v -0.565233 0.049069 0.375000 +v -0.434997 0.787675 0.437500 +v -0.434997 0.787675 0.375000 +v -0.379053 0.114569 0.453125 +v -0.600024 0.335540 0.421875 +v -0.379053 0.114569 0.421875 +v -0.334858 0.158763 0.453125 +v -0.600024 0.335540 0.453125 +v -0.334858 0.158763 0.421875 +v -0.555829 0.379734 0.453125 +v -0.555829 0.379734 0.421875 +v 0.619649 0.820234 0.375000 +v 0.749885 0.081628 0.437500 +v 0.749885 0.081628 0.375000 +v 0.619649 0.820234 0.437500 +v 0.565233 0.049069 0.437500 +v 0.434997 0.787675 0.437500 +v 0.565233 0.049069 0.375000 +v 0.434997 0.787675 0.375000 +v 0.600024 0.335540 0.421875 +v 0.379053 0.114569 0.453125 +v 0.379053 0.114569 0.421875 +v 0.600024 0.335540 0.453125 +v 0.334858 0.158763 0.453125 +v 0.555829 0.379734 0.453125 +v 0.334858 0.158763 0.421875 +v 0.555829 0.379734 0.421875 +v 0.000000 1.980546 1.233917 +v 0.183897 1.943967 0.733917 +v 0.000000 1.980546 0.733917 +v 0.183897 1.943967 1.233917 +v 0.339797 1.839797 0.733917 +v 0.339797 1.839797 1.233917 +v 0.443967 1.683897 0.733917 +v 0.443967 1.683897 1.233917 +v 0.480546 1.500000 0.733917 +v 0.480546 1.500000 1.233917 +v 0.443967 1.316103 0.733917 +v 0.443967 1.316103 1.233917 +v 0.339797 1.160202 0.733917 +v 0.183897 1.056033 1.233917 +v 0.183897 1.056033 0.733917 +v 0.000000 1.019453 0.733917 +v 0.000000 1.019453 1.233917 +v -0.183897 1.056033 0.733917 +v -0.183897 1.056033 1.233917 +v -0.339798 1.160202 0.733917 +v -0.339798 1.160202 1.233917 +v -0.443967 1.316103 0.733917 +v -0.443967 1.316103 1.233917 +v -0.480547 1.500000 0.733917 +v -0.480547 1.500000 1.233917 +v -0.443967 1.683897 0.733917 +v -0.443967 1.683897 1.233917 +v -0.339798 1.839797 0.733917 +v 0.339797 1.160202 1.233917 +v -0.339798 1.839797 1.233917 +v -0.183897 1.943967 0.733917 +v -0.183897 1.943967 1.233917 +v 0.490881 1.143354 -0.961093 +v -0.187500 0.922934 -0.961093 +v -0.606763 1.500000 -0.961093 +v 0.187500 2.077066 -0.961093 +v 0.361622 2.222140 -0.627943 +v 0.312593 2.071245 -0.856743 +v 0.736322 2.034969 -0.523593 +v 0.281250 2.365599 -0.523593 +v 0.490881 1.856646 -0.961093 +v 0.575049 2.067076 -0.627943 +v 0.446690 1.973818 -0.856743 +v 0.717021 1.871668 -0.627943 +v 0.588663 1.778410 -0.856743 +v 0.910144 1.500000 -0.523593 +v 0.606763 1.500000 -0.961093 +v 0.798543 1.620769 -0.627943 +v 0.639883 1.620769 -0.856743 +v 0.798543 1.379231 -0.627943 +v 0.639883 1.379231 -0.856743 +v 0.736322 0.965031 -0.523593 +v 0.717021 1.128333 -0.627943 +v 0.588663 1.221590 -0.856743 +v 0.575048 0.932924 -0.627943 +v 0.446690 1.026182 -0.856743 +v 0.361622 0.777860 -0.627943 +v 0.187500 0.922934 -0.961093 +v 0.281250 0.634401 -0.523593 +v 0.312593 0.928755 -0.856743 +v 0.131905 0.703221 -0.627943 +v 0.082876 0.854115 -0.856743 +v -0.131905 0.703221 -0.627943 +v -0.281250 0.634401 -0.523593 +v -0.082877 0.854115 -0.856743 +v -0.361622 0.777860 -0.627943 +v -0.312593 0.928755 -0.856743 +v -0.736322 0.965031 -0.523593 +v -0.490881 1.143354 -0.961093 +v -0.575049 0.932924 -0.627943 +v -0.446690 1.026182 -0.856743 +v -0.717021 1.128332 -0.627943 +v -0.588663 1.221591 -0.856743 +v -0.910144 1.500000 -0.523593 +v -0.798543 1.379231 -0.627943 +v -0.639883 1.379231 -0.856743 +v -0.798543 1.620769 -0.627943 +v -0.639883 1.620769 -0.856743 +v -0.736322 2.034969 -0.523593 +v -0.490881 1.856646 -0.961093 +v -0.717021 1.871668 -0.627943 +v -0.588663 1.778410 -0.856743 +v -0.575048 2.067076 -0.627943 +v -0.446690 1.973818 -0.856743 +v -0.281250 2.365598 -0.523593 +v -0.187500 2.077066 -0.961093 +v -0.361621 2.222140 -0.627943 +v -0.312593 2.071246 -0.856743 +v -0.131905 2.296779 -0.627943 +v -0.082876 2.145885 -0.856743 +v 0.131905 2.296779 -0.627943 +v 0.082876 2.145885 -0.856743 +v -0.606763 1.500000 0.961093 +v 0.490881 1.143354 0.961093 +v 0.490881 1.856646 0.961093 +v 0.187500 2.077066 0.961093 +v 0.361622 2.222140 0.627943 +v 0.281250 2.365599 0.523593 +v 0.736322 2.034969 0.523593 +v 0.575049 2.067076 0.627943 +v 0.446690 1.973818 0.856743 +v 0.717021 1.871668 0.627943 +v 0.910144 1.500000 0.523593 +v 0.798543 1.620769 0.627943 +v 0.606763 1.500000 0.961093 +v 0.588663 1.778410 0.856743 +v 0.798543 1.379231 0.627943 +v 0.736322 0.965031 0.523593 +v 0.717021 1.128333 0.627943 +v 0.588663 1.221590 0.856743 +v 0.575048 0.932924 0.627943 +v 0.361622 0.777860 0.627943 +v 0.281250 0.634401 0.523593 +v 0.187500 0.922934 0.961093 +v 0.312593 0.928755 0.856743 +v 0.131905 0.703221 0.627943 +v -0.131905 0.703221 0.627943 +v -0.281250 0.634401 0.523593 +v -0.187500 0.922934 0.961093 +v -0.082877 0.854115 0.856743 +v -0.361622 0.777860 0.627943 +v -0.736322 0.965031 0.523593 +v -0.575049 0.932924 0.627943 +v -0.490881 1.143354 0.961093 +v -0.312593 0.928755 0.856743 +v -0.717021 1.128332 0.627943 +v -0.798543 1.379231 0.627943 +v -0.910144 1.500000 0.523593 +v -0.639883 1.379231 0.856743 +v -0.798543 1.620769 0.627943 +v -0.736322 2.034969 0.523593 +v -0.717021 1.871668 0.627943 +v -0.490881 1.856646 0.961093 +v -0.588663 1.778410 0.856743 +v -0.575048 2.067076 0.627943 +v -0.361621 2.222140 0.627943 +v -0.281250 2.365598 0.523593 +v -0.187500 2.077066 0.961093 +v -0.312593 2.071246 0.856743 +v -0.131905 2.296779 0.627943 +v 0.131905 2.296779 0.627943 +v 0.082876 2.145885 0.856743 +v 0.000000 2.461093 -0.437500 +v 0.367794 2.387934 -0.562500 +v 0.000000 2.461093 -0.562500 +v 0.367794 2.387934 -0.437500 +v 0.679595 2.179595 -0.562500 +v 0.679595 2.179595 -0.437500 +v 0.887934 1.867794 -0.562500 +v 0.887934 1.867794 -0.437500 +v 0.961093 1.500000 -0.562500 +v 0.961093 1.500000 -0.437500 +v 0.887934 1.132205 -0.562500 +v 0.887934 1.132205 -0.437500 +v 0.679595 0.820405 -0.562500 +v 0.367794 0.612066 -0.437500 +v 0.367794 0.612066 -0.562500 +v 0.000000 0.538907 -0.562500 +v 0.000000 0.538907 -0.437500 +v -0.367794 0.612066 -0.562500 +v -0.367794 0.612066 -0.437500 +v -0.679595 0.820404 -0.562500 +v -0.679595 0.820404 -0.437500 +v -0.887934 1.132205 -0.562500 +v -0.887934 1.132205 -0.437500 +v -0.961093 1.500000 -0.562500 +v -0.961093 1.500000 -0.437500 +v -0.887934 1.867795 -0.562500 +v -0.887934 1.867795 -0.437500 +v -0.679595 2.179596 -0.562500 +v -0.679595 2.179596 -0.437500 +v -0.367794 2.387935 -0.562500 +v -0.367794 2.387935 -0.437500 +v 0.294635 2.211313 -0.562500 +v 0.294635 2.211313 -0.437500 +v 0.000000 2.269920 -0.437500 +v 0.544415 2.044415 -0.562500 +v 0.711313 1.794636 -0.562500 +v 0.711313 1.794636 -0.437500 +v 0.544415 2.044415 -0.437500 +v 0.769920 1.500000 -0.562500 +v 0.711313 1.205364 -0.562500 +v 0.711313 1.205364 -0.437500 +v 0.769920 1.500000 -0.437500 +v 0.544415 0.955585 -0.562500 +v 0.679595 0.820405 -0.437500 +v 0.294635 0.788687 -0.562500 +v 0.294635 0.788687 -0.437500 +v 0.544415 0.955585 -0.437500 +v 0.000000 0.730080 -0.562500 +v -0.294635 0.788687 -0.562500 +v 0.000000 0.730080 -0.437500 +v -0.544415 0.955584 -0.562500 +v -0.544415 0.955584 -0.437500 +v -0.294635 0.788687 -0.437500 +v -0.711313 1.205364 -0.562500 +v -0.769920 1.500000 -0.562500 +v -0.769920 1.500000 -0.437500 +v -0.711313 1.205364 -0.437500 +v -0.711313 1.794636 -0.562500 +v -0.544415 2.044416 -0.562500 +v -0.711313 1.794636 -0.437500 +v -0.294635 2.211313 -0.562500 +v -0.294635 2.211313 -0.437500 +v -0.544415 2.044416 -0.437500 +v 0.000000 2.269920 -0.562500 +v 0.367794 2.387934 0.562500 +v 0.000000 2.461093 0.437500 +v 0.000000 2.461093 0.562500 +v 0.679595 2.179595 0.437500 +v 0.367794 2.387934 0.437500 +v 0.887934 1.867794 0.562500 +v 0.679595 2.179595 0.562500 +v 0.961093 1.500000 0.562500 +v 0.887934 1.867794 0.437500 +v 0.887934 1.132205 0.562500 +v 0.961093 1.500000 0.437500 +v 0.679595 0.820405 0.562500 +v 0.887934 1.132205 0.437500 +v 0.367794 0.612066 0.437500 +v 0.679595 0.820405 0.437500 +v 0.000000 0.538907 0.562500 +v 0.367794 0.612066 0.562500 +v -0.367794 0.612066 0.562500 +v 0.000000 0.538907 0.437500 +v -0.679595 0.820404 0.562500 +v -0.367794 0.612066 0.437500 +v -0.887934 1.132205 0.562500 +v -0.679595 0.820404 0.437500 +v -0.961093 1.500000 0.562500 +v -0.887934 1.132205 0.437500 +v -0.887934 1.867795 0.562500 +v -0.961093 1.500000 0.437500 +v -0.679595 2.179596 0.562500 +v -0.887934 1.867795 0.437500 +v -0.367794 2.387935 0.562500 +v -0.679595 2.179596 0.437500 +v -0.367794 2.387935 0.437500 +v 0.000000 2.269920 0.562500 +v 0.294635 2.211313 0.562500 +v 0.294635 2.211313 0.437500 +v 0.000000 2.269920 0.437500 +v 0.544415 2.044415 0.562500 +v 0.544415 2.044415 0.437500 +v 0.711313 1.794636 0.562500 +v 0.711313 1.794636 0.437500 +v 0.769920 1.500000 0.562500 +v 0.769920 1.500000 0.437500 +v 0.711313 1.205364 0.562500 +v 0.711313 1.205364 0.437500 +v 0.544415 0.955585 0.562500 +v 0.544415 0.955585 0.437500 +v 0.294635 0.788687 0.562500 +v 0.294635 0.788687 0.437500 +v 0.000000 0.730080 0.562500 +v 0.000000 0.730080 0.437500 +v -0.294635 0.788687 0.562500 +v -0.294635 0.788687 0.437500 +v -0.544415 0.955584 0.562500 +v -0.544415 0.955584 0.437500 +v -0.711313 1.205364 0.562500 +v -0.711313 1.205364 0.437500 +v -0.769920 1.500000 0.562500 +v -0.769920 1.500000 0.437500 +v -0.711313 1.794636 0.562500 +v -0.711313 1.794636 0.437500 +v -0.544415 2.044416 0.562500 +v -0.544415 2.044416 0.437500 +v -0.294635 2.211313 0.562500 +v -0.294635 2.211313 0.437500 +v 0.613304 2.201693 0.000000 +v 0.657498 2.245887 -0.312500 +v 0.569110 2.157499 -0.312500 +v 0.701693 2.113304 -0.437500 +v 0.613304 2.201693 -0.437500 +v 0.701693 2.113304 0.000000 +v 0.745887 2.157498 0.312500 +v 0.657498 2.069110 0.312500 +v 0.657498 2.245887 0.312500 +v 0.701693 2.113304 0.437500 +v 0.701693 2.290081 0.000000 +v 0.790081 2.201693 0.000000 +v 0.613304 2.024916 0.437500 +v 0.569110 2.157499 0.312500 +v 0.613304 2.201693 0.437500 +v 0.745887 2.157498 -0.312500 +v 0.657498 2.069110 -0.312500 +v 0.524916 2.113304 -0.437500 +v -0.613304 2.201693 0.000000 +v -0.657498 2.245887 -0.312500 +v -0.701693 2.290081 0.000000 +v -0.701693 2.113304 -0.437500 +v -0.745887 2.157498 -0.312500 +v -0.701693 2.113304 0.000000 +v -0.745887 2.157498 0.312500 +v -0.790081 2.201693 0.000000 +v -0.701693 2.113304 0.437500 +v -0.657498 2.245887 0.312500 +v -0.657498 2.069110 0.312500 +v -0.613304 2.201693 0.437500 +v -0.569110 2.157499 0.312500 +v -0.657498 2.069110 -0.312500 +v -0.569110 2.157499 -0.312500 +v -0.613304 2.201693 -0.437500 +v 0.613304 0.798307 0.000000 +v 0.657498 0.754113 -0.312500 +v 0.701693 0.709919 0.000000 +v 0.613304 0.798307 -0.437500 +v 0.745887 0.842502 -0.312500 +v 0.701693 0.886696 0.000000 +v 0.745887 0.842502 0.312500 +v 0.790081 0.798307 0.000000 +v 0.613304 0.798307 0.437500 +v 0.657498 0.754113 0.312500 +v 0.657498 0.930890 0.312500 +v 0.701693 0.886696 0.437500 +v 0.569110 0.842502 0.312500 +v 0.657498 0.930890 -0.312500 +v 0.569110 0.842502 -0.312500 +v 0.701693 0.886696 -0.437500 +v -0.613304 0.798307 0.000000 +v -0.657498 0.754113 -0.312500 +v -0.569110 0.842502 -0.312500 +v -0.745887 0.842502 -0.312500 +v -0.613304 0.798307 -0.437500 +v -0.701693 0.886696 0.000000 +v -0.745887 0.842502 0.312500 +v -0.657498 0.930890 0.312500 +v -0.613304 0.798307 0.437500 +v -0.701693 0.886696 0.437500 +v -0.701693 0.709919 0.000000 +v -0.790081 0.798307 0.000000 +v -0.613304 0.975084 0.437500 +v -0.569110 0.842502 0.312500 +v -0.657498 0.754113 0.312500 +v -0.657498 0.930890 -0.312500 +v -0.524916 0.886696 -0.437500 +v -0.701693 0.886696 -0.437500 +v 0.000000 2.064916 0.777541 +v 0.113655 1.774387 0.914054 +v 0.216184 2.021915 0.777541 +v 0.000000 1.796994 -0.914054 +v 0.216184 2.021915 -0.777540 +v 0.113655 1.774387 -0.914054 +v 0.000000 2.414054 -0.296994 +v 0.367794 2.387934 0.000000 +v 0.349793 2.344476 -0.296994 +v 0.297552 2.218354 0.564917 +v 0.000000 2.277541 0.564917 +v 0.000000 1.500000 -0.961093 +v 0.000000 2.277541 -0.564916 +v 0.297552 2.218354 -0.564916 +v 0.349793 2.344476 0.296994 +v 0.000000 2.414054 0.296994 +v 0.000000 1.796994 0.914054 +v 0.000000 1.500000 0.961093 +v 0.000000 2.064916 -0.777540 +v 0.000000 2.461093 0.000000 +v 0.210007 1.710007 0.914054 +v 0.399456 1.899456 0.777541 +v 0.210007 1.710006 -0.914054 +v 0.679596 2.179595 0.000000 +v 0.646334 2.146334 -0.296994 +v 0.549804 2.049804 0.564917 +v 0.549804 2.049804 -0.564916 +v 0.646334 2.146334 0.296994 +v 0.399456 1.899456 -0.777540 +v 0.844476 1.849793 0.296994 +v 0.887934 1.867794 0.000000 +v 0.521915 1.716184 0.777541 +v 0.274387 1.613655 -0.914054 +v 0.844476 1.849793 -0.296994 +v 0.718354 1.797552 0.564917 +v 0.718354 1.797552 -0.564916 +v 0.274387 1.613655 0.914054 +v 0.521915 1.716184 -0.777540 +v 0.296994 1.500000 0.914054 +v 0.564916 1.500000 -0.777540 +v 0.914054 1.500000 0.296994 +v 0.961093 1.500000 0.000000 +v 0.564916 1.500000 0.777541 +v 0.296994 1.500000 -0.914054 +v 0.914054 1.500000 -0.296994 +v 0.777541 1.500000 0.564917 +v 0.777541 1.500000 -0.564916 +v 0.718354 1.202448 -0.564916 +v 0.844476 1.150206 0.296994 +v 0.274387 1.386345 0.914054 +v 0.521915 1.283816 -0.777540 +v 0.887934 1.132205 0.000000 +v 0.521915 1.283816 0.777541 +v 0.274387 1.386345 -0.914054 +v 0.844476 1.150206 -0.296994 +v 0.718354 1.202448 0.564917 +v 0.549804 0.950195 0.564917 +v 0.210007 1.289993 -0.914054 +v 0.549804 0.950195 -0.564916 +v 0.646334 0.853666 0.296994 +v 0.210007 1.289993 0.914054 +v 0.399456 1.100543 -0.777540 +v 0.679595 0.820404 0.000000 +v 0.399456 1.100543 0.777541 +v 0.646334 0.853666 -0.296994 +v 0.349793 0.655524 -0.296994 +v 0.297552 0.781646 0.564916 +v 0.113655 1.225613 -0.914054 +v 0.297552 0.781646 -0.564916 +v 0.349793 0.655524 0.296994 +v 0.113655 1.225613 0.914054 +v 0.216184 0.978085 -0.777540 +v 0.367794 0.612066 0.000000 +v 0.216184 0.978085 0.777541 +v 0.000000 0.935084 0.777541 +v 0.000000 1.203006 -0.914054 +v 0.000000 0.585946 -0.296994 +v 0.000000 0.722459 0.564916 +v 0.000000 0.722459 -0.564916 +v 0.000000 0.585946 0.296994 +v 0.000000 1.203006 0.914054 +v 0.000000 0.935084 -0.777540 +v 0.000000 0.538907 0.000000 +v -0.297552 0.781646 -0.564916 +v -0.216184 0.978085 -0.777540 +v -0.367795 0.612066 0.000000 +v -0.113655 1.225613 0.914054 +v -0.216184 0.978085 0.777541 +v -0.113655 1.225613 -0.914054 +v -0.349794 0.655524 -0.296994 +v -0.297552 0.781646 0.564916 +v -0.349793 0.655524 0.296994 +v -0.646334 0.853666 0.296994 +v -0.210007 1.289993 0.914054 +v -0.549804 0.950196 -0.564916 +v -0.399456 1.100544 -0.777540 +v -0.679596 0.820405 0.000000 +v -0.399456 1.100544 0.777541 +v -0.210007 1.289994 -0.914054 +v -0.646334 0.853666 -0.296994 +v -0.549804 0.950196 0.564917 +v -0.718354 1.202448 -0.564916 +v -0.844476 1.150207 0.296994 +v -0.274387 1.386345 0.914054 +v -0.521915 1.283816 -0.777540 +v -0.887934 1.132206 0.000000 +v -0.521915 1.283816 0.777541 +v -0.274387 1.386345 -0.914054 +v -0.844476 1.150207 -0.296994 +v -0.718354 1.202448 0.564917 +v -0.777541 1.500000 0.564917 +v -0.296994 1.500000 -0.914054 +v -0.777541 1.500000 -0.564916 +v -0.914054 1.500000 0.296994 +v -0.296994 1.500000 0.914054 +v -0.564916 1.500000 -0.777540 +v -0.961093 1.500000 0.000000 +v -0.564916 1.500000 0.777541 +v -0.914054 1.500000 -0.296994 +v -0.521914 1.716184 -0.777540 +v -0.274387 1.613655 -0.914054 +v -0.844476 1.849794 -0.296994 +v -0.718354 1.797552 0.564917 +v -0.718354 1.797552 -0.564916 +v -0.844476 1.849793 0.296994 +v -0.274387 1.613655 0.914054 +v -0.887934 1.867795 0.000000 +v -0.521914 1.716184 0.777541 +v -0.679595 2.179596 0.000000 +v -0.210007 1.710007 0.914054 +v -0.399456 1.899456 0.777541 +v -0.210006 1.710007 -0.914054 +v -0.646333 2.146334 -0.296994 +v -0.549804 2.049804 0.564917 +v -0.549804 2.049804 -0.564916 +v -0.646333 2.146334 0.296994 +v -0.399456 1.899456 -0.777540 +v -0.113655 1.774387 0.914054 +v -0.297551 2.218354 -0.564916 +v -0.216184 2.021915 -0.777540 +v -0.367794 2.387934 0.000000 +v -0.216184 2.021915 0.777541 +v -0.113655 1.774387 -0.914054 +v -0.349793 2.344476 -0.296994 +v -0.297551 2.218354 0.564917 +v -0.349793 2.344476 0.296994 +v -0.937500 0.187500 0.437500 +v 0.312593 2.071245 0.856743 +v 0.639883 1.620769 0.856743 +v 0.639883 1.379231 0.856743 +v 0.446690 1.026182 0.856743 +v 0.082876 0.854115 0.856743 +v -0.446690 1.026182 0.856743 +v -0.588663 1.221591 0.856743 +v -0.639883 1.620769 0.856743 +v -0.446690 1.973818 0.856743 +v -0.082876 2.145885 0.856743 +v 0.524916 2.113304 0.437500 +v 0.613304 2.024916 -0.437500 +v -0.613304 2.024916 0.437500 +v -0.524916 2.113304 0.437500 +v -0.524916 2.113304 -0.437500 +v -0.613304 2.024916 -0.437500 +v 0.613304 0.975084 0.437500 +v 0.524916 0.886696 0.437500 +v 0.524916 0.886696 -0.437500 +v 0.613304 0.975084 -0.437500 +v -0.524916 0.886696 0.437500 +v -0.613304 0.975084 -0.437500 +v 0.284663 2.432218 -0.215667 +v 0.241696 2.328486 -0.378320 +v 0.261693 2.376764 -0.198249 +v 0.264666 2.383941 -0.395739 +v 0.414923 2.256733 -0.378320 +v 0.437894 2.312188 -0.395739 +v 0.434921 2.305010 -0.198249 +v 0.386817 2.352198 -0.335715 +v 0.416453 2.423745 -0.293109 +v 0.393482 2.368290 -0.275691 +v 0.335740 2.392208 -0.275691 +v 0.329074 2.376116 -0.335715 +v 0.457891 2.360465 -0.215667 +v 0.409787 2.407653 -0.353133 +v 0.358710 2.447663 -0.293109 +v 0.352044 2.431571 -0.353133 +v -0.261693 2.376764 -0.198249 +v -0.264666 2.383941 -0.395739 +v -0.284663 2.432218 -0.215667 +v -0.414923 2.256733 -0.378320 +v -0.241696 2.328486 -0.378320 +v -0.434921 2.305010 -0.198249 +v -0.437894 2.312188 -0.395739 +v -0.457891 2.360465 -0.215667 +v -0.416453 2.423745 -0.293109 +v -0.386817 2.352198 -0.335715 +v -0.393482 2.368290 -0.275691 +v -0.329074 2.376116 -0.335715 +v -0.335740 2.392208 -0.275691 +v -0.409787 2.407653 -0.353133 +v -0.358710 2.447663 -0.293109 +v -0.352044 2.431571 -0.353133 +v 0.261693 2.376764 0.198249 +v 0.264666 2.383941 0.395739 +v 0.284663 2.432218 0.215667 +v 0.414923 2.256733 0.378320 +v 0.241696 2.328486 0.378320 +v 0.434921 2.305010 0.198249 +v 0.437894 2.312188 0.395739 +v 0.457891 2.360465 0.215667 +v 0.416453 2.423745 0.293109 +v 0.386817 2.352198 0.335715 +v 0.393482 2.368290 0.275691 +v 0.329074 2.376116 0.335715 +v 0.335740 2.392208 0.275691 +v 0.409787 2.407653 0.353133 +v 0.358710 2.447663 0.293109 +v 0.352044 2.431571 0.353133 +v -0.284663 2.432218 0.215667 +v -0.241696 2.328486 0.378320 +v -0.261693 2.376764 0.198249 +v -0.264666 2.383941 0.395739 +v -0.414923 2.256733 0.378320 +v -0.437894 2.312188 0.395739 +v -0.434921 2.305010 0.198249 +v -0.386817 2.352198 0.335715 +v -0.416453 2.423745 0.293109 +v -0.393482 2.368290 0.275691 +v -0.335740 2.392208 0.275691 +v -0.329074 2.376116 0.335715 +v -0.457891 2.360465 0.215667 +v -0.409787 2.407653 0.353133 +v -0.358710 2.447663 0.293109 +v -0.352044 2.431571 0.353133 +v 0.261693 0.623236 -0.198249 +v 0.264666 0.616059 -0.395739 +v 0.284663 0.567782 -0.215667 +v 0.414923 0.743267 -0.378320 +v 0.241696 0.671514 -0.378320 +v 0.434921 0.694990 -0.198249 +v 0.437894 0.687812 -0.395739 +v 0.457891 0.639535 -0.215667 +v 0.416453 0.576255 -0.293109 +v 0.386817 0.647802 -0.335715 +v 0.393482 0.631710 -0.275691 +v 0.329074 0.623884 -0.335715 +v 0.335740 0.607792 -0.275691 +v 0.409787 0.592347 -0.353133 +v 0.358710 0.552337 -0.293109 +v 0.352044 0.568430 -0.353133 +v -0.284663 0.567782 -0.215667 +v -0.241696 0.671514 -0.378320 +v -0.261693 0.623236 -0.198249 +v -0.264666 0.616059 -0.395739 +v -0.414923 0.743267 -0.378320 +v -0.437894 0.687812 -0.395739 +v -0.434921 0.694990 -0.198249 +v -0.386817 0.647802 -0.335715 +v -0.416453 0.576255 -0.293109 +v -0.393482 0.631710 -0.275691 +v -0.335740 0.607792 -0.275691 +v -0.329074 0.623884 -0.335715 +v -0.457891 0.639535 -0.215667 +v -0.409787 0.592347 -0.353133 +v -0.358710 0.552337 -0.293109 +v -0.352044 0.568430 -0.353133 +v 0.284663 0.567782 0.215667 +v 0.241696 0.671514 0.378320 +v 0.261693 0.623236 0.198249 +v 0.264666 0.616059 0.395739 +v 0.414923 0.743267 0.378320 +v 0.437894 0.687812 0.395739 +v 0.434921 0.694990 0.198249 +v 0.386817 0.647802 0.335715 +v 0.416453 0.576255 0.293109 +v 0.393482 0.631710 0.275691 +v 0.335740 0.607792 0.275691 +v 0.329074 0.623884 0.335715 +v 0.457891 0.639535 0.215667 +v 0.409787 0.592347 0.353133 +v 0.358710 0.552337 0.293109 +v 0.352044 0.568430 0.353133 +v -0.261693 0.623236 0.198249 +v -0.264666 0.616059 0.395739 +v -0.284663 0.567782 0.215667 +v -0.414923 0.743267 0.378320 +v -0.241696 0.671514 0.378320 +v -0.434921 0.694990 0.198249 +v -0.437894 0.687812 0.395739 +v -0.457891 0.639535 0.215667 +v -0.416453 0.576255 0.293109 +v -0.386817 0.647802 0.335715 +v -0.393482 0.631710 0.275691 +v -0.329074 0.623884 0.335715 +v -0.335740 0.607792 0.275691 +v -0.409787 0.592347 0.353133 +v -0.358710 0.552337 0.293109 +v -0.352044 0.568430 0.353133 +v 0.292716 2.062386 0.759617 +v 0.344670 2.133894 0.582840 +v 0.266740 2.026632 0.715423 +v 0.370646 2.169648 0.627035 +v 0.496360 2.023684 0.582840 +v 0.522337 2.059438 0.627035 +v 0.418430 1.916423 0.715423 +v 0.444407 1.952176 0.759617 +v 0.419820 2.024667 0.715423 +v 0.395233 2.097157 0.759617 +v 0.369257 2.061403 0.715423 +v 0.395233 2.097157 0.671229 +v 0.445797 2.060421 0.671229 +v 0.421210 2.132911 0.715423 +v 0.445797 2.060421 0.759617 +v 0.471774 2.096174 0.715423 +v 0.625315 1.395397 0.759617 +v 0.709378 1.368084 0.582840 +v 0.583284 1.409054 0.715423 +v 0.751409 1.354427 0.627035 +v 0.651437 1.189760 0.582840 +v 0.567375 1.217074 0.759617 +v 0.525343 1.230731 0.715423 +v 0.628719 1.262858 0.715423 +v 0.690064 1.308643 0.759617 +v 0.648033 1.322299 0.715423 +v 0.690064 1.308643 0.671229 +v 0.670751 1.249202 0.671229 +v 0.693468 1.176104 0.627035 +v 0.732095 1.294986 0.715423 +v 0.670751 1.249202 0.759617 +v 0.712782 1.235545 0.715423 +v 0.093750 0.872966 0.759617 +v 0.093750 0.784577 0.582840 +v 0.093750 0.917160 0.715423 +v -0.093750 0.740383 0.627035 +v -0.093750 0.784577 0.582840 +v -0.093750 0.872966 0.759617 +v -0.093750 0.917160 0.715423 +v -0.031250 0.828771 0.715423 +v 0.031250 0.784577 0.759617 +v 0.031250 0.828771 0.715423 +v 0.031250 0.784577 0.671229 +v -0.031250 0.784577 0.671229 +v 0.093750 0.740383 0.627035 +v 0.031250 0.740383 0.715423 +v -0.031250 0.784577 0.759617 +v -0.031250 0.740383 0.715423 +v -0.567375 1.217074 0.759617 +v -0.651437 1.189761 0.582840 +v -0.525344 1.230731 0.715423 +v -0.751409 1.354427 0.627035 +v -0.709378 1.368084 0.582840 +v -0.625316 1.395398 0.759617 +v -0.583284 1.409054 0.715423 +v -0.648033 1.322300 0.715423 +v -0.670751 1.249202 0.759617 +v -0.628720 1.262859 0.715423 +v -0.670751 1.249202 0.671229 +v -0.690064 1.308643 0.671229 +v -0.693468 1.176104 0.627035 +v -0.712782 1.235545 0.715423 +v -0.690064 1.308643 0.759617 +v -0.732096 1.294986 0.715423 +v -0.444407 1.952177 0.759617 +v -0.496360 2.023685 0.582840 +v -0.418430 1.916423 0.715423 +v -0.370646 2.169648 0.627035 +v -0.344669 2.133894 0.582840 +v -0.266739 2.026633 0.715423 +v -0.292716 2.062387 0.759617 +v -0.369256 2.061404 0.715423 +v -0.445797 2.060421 0.759617 +v -0.419820 2.024667 0.715423 +v -0.445797 2.060421 0.671229 +v -0.395233 2.097158 0.671229 +v -0.522337 2.059438 0.627035 +v -0.471773 2.096175 0.715423 +v -0.395233 2.097158 0.759617 +v -0.421210 2.132912 0.715423 +v 0.344670 2.133894 -0.582840 +v 0.292716 2.062386 -0.759617 +v 0.266740 2.026632 -0.715423 +v 0.496360 2.023684 -0.582840 +v 0.370646 2.169648 -0.627035 +v 0.418430 1.916423 -0.715423 +v 0.522337 2.059438 -0.627035 +v 0.444407 1.952176 -0.759617 +v 0.395233 2.097157 -0.759617 +v 0.419820 2.024667 -0.715423 +v 0.369257 2.061403 -0.715423 +v 0.395233 2.097157 -0.671229 +v 0.445797 2.060421 -0.671229 +v 0.445797 2.060421 -0.759617 +v 0.421210 2.132911 -0.715423 +v 0.471774 2.096174 -0.715423 +v 0.709378 1.368084 -0.582840 +v 0.625315 1.395397 -0.759617 +v 0.583284 1.409054 -0.715423 +v 0.693468 1.176104 -0.627035 +v 0.751409 1.354427 -0.627035 +v 0.525343 1.230731 -0.715423 +v 0.651437 1.189760 -0.582840 +v 0.567375 1.217074 -0.759617 +v 0.690064 1.308643 -0.759617 +v 0.628719 1.262858 -0.715423 +v 0.648033 1.322299 -0.715423 +v 0.690064 1.308643 -0.671229 +v 0.670751 1.249202 -0.671229 +v 0.670751 1.249202 -0.759617 +v 0.732095 1.294986 -0.715423 +v 0.712782 1.235545 -0.715423 +v 0.093750 0.784577 -0.582840 +v 0.093750 0.872966 -0.759617 +v 0.093750 0.917160 -0.715423 +v -0.093750 0.740383 -0.627035 +v 0.093750 0.740383 -0.627035 +v -0.093750 0.784577 -0.582840 +v -0.093750 0.872966 -0.759617 +v -0.093750 0.917160 -0.715423 +v 0.031250 0.784577 -0.759617 +v -0.031250 0.828771 -0.715423 +v 0.031250 0.828771 -0.715423 +v 0.031250 0.784577 -0.671229 +v -0.031250 0.784577 -0.671229 +v -0.031250 0.784577 -0.759617 +v 0.031250 0.740383 -0.715423 +v -0.031250 0.740383 -0.715423 +v -0.651437 1.189761 -0.582840 +v -0.567375 1.217074 -0.759617 +v -0.525344 1.230731 -0.715423 +v -0.751409 1.354427 -0.627035 +v -0.693468 1.176104 -0.627035 +v -0.709378 1.368084 -0.582840 +v -0.625316 1.395398 -0.759617 +v -0.583284 1.409054 -0.715423 +v -0.670751 1.249202 -0.759617 +v -0.648033 1.322300 -0.715423 +v -0.628720 1.262859 -0.715423 +v -0.670751 1.249202 -0.671229 +v -0.690064 1.308643 -0.671229 +v -0.690064 1.308643 -0.759617 +v -0.712782 1.235545 -0.715423 +v -0.732096 1.294986 -0.715423 +v -0.496360 2.023685 -0.582840 +v -0.444407 1.952177 -0.759617 +v -0.418430 1.916423 -0.715423 +v -0.344669 2.133894 -0.582840 +v -0.522337 2.059438 -0.627035 +v -0.266739 2.026633 -0.715423 +v -0.370646 2.169648 -0.627035 +v -0.292716 2.062387 -0.759617 +v -0.445797 2.060421 -0.759617 +v -0.369256 2.061404 -0.715423 +v -0.419820 2.024667 -0.715423 +v -0.445797 2.060421 -0.671229 +v -0.395233 2.097158 -0.671229 +v -0.395233 2.097158 -0.759617 +v -0.471773 2.096175 -0.715423 +v -0.421210 2.132912 -0.715423 +v 0.932218 1.215337 -0.215667 +v 0.828486 1.258304 -0.378320 +v 0.876764 1.238307 -0.198249 +v 0.883941 1.235334 -0.395739 +v 0.756733 1.085077 -0.378320 +v 0.860465 1.042109 -0.215667 +v 0.805010 1.065079 -0.198249 +v 0.852198 1.113183 -0.335715 +v 0.923745 1.083547 -0.293109 +v 0.868290 1.106518 -0.275691 +v 0.876116 1.170926 -0.335715 +v 0.892208 1.164260 -0.275691 +v 0.812188 1.062106 -0.395739 +v 0.907653 1.090213 -0.353133 +v 0.947663 1.141290 -0.293109 +v 0.931570 1.147956 -0.353133 +v 0.828486 1.741696 -0.378320 +v 0.932218 1.784663 -0.215667 +v 0.876764 1.761693 -0.198249 +v 0.756733 1.914923 -0.378320 +v 0.883941 1.764666 -0.395739 +v 0.805010 1.934921 -0.198249 +v 0.812188 1.937894 -0.395739 +v 0.860465 1.957891 -0.215667 +v 0.923745 1.916453 -0.293109 +v 0.852198 1.886817 -0.335715 +v 0.868290 1.893483 -0.275691 +v 0.892208 1.835740 -0.275691 +v 0.876116 1.829074 -0.335715 +v 0.931570 1.852044 -0.353133 +v 0.907653 1.909787 -0.353133 +v 0.947663 1.858710 -0.293109 +v 0.828486 1.258304 0.378320 +v 0.932218 1.215337 0.215667 +v 0.876764 1.238307 0.198249 +v 0.756733 1.085077 0.378320 +v 0.883941 1.235334 0.395739 +v 0.860465 1.042109 0.215667 +v 0.812188 1.062106 0.395739 +v 0.805010 1.065079 0.198249 +v 0.868290 1.106518 0.275691 +v 0.907653 1.090213 0.353133 +v 0.852198 1.113183 0.335715 +v 0.892208 1.164260 0.275691 +v 0.876116 1.170926 0.335715 +v 0.947663 1.141290 0.293109 +v 0.931570 1.147956 0.353133 +v 0.932218 1.784663 0.215667 +v 0.828486 1.741696 0.378320 +v 0.876764 1.761693 0.198249 +v 0.883941 1.764666 0.395739 +v 0.756733 1.914923 0.378320 +v 0.812188 1.937894 0.395739 +v 0.805010 1.934921 0.198249 +v 0.860465 1.957891 0.215667 +v 0.852198 1.886817 0.335715 +v 0.923745 1.916453 0.293109 +v 0.868290 1.893483 0.275691 +v 0.876116 1.829074 0.335715 +v 0.892208 1.835740 0.275691 +v 0.931570 1.852044 0.353133 +v 0.907653 1.909787 0.353133 +v 0.947663 1.858710 0.293109 +v -0.828486 1.258304 -0.378320 +v -0.932218 1.215337 -0.215667 +v -0.876764 1.238307 -0.198249 +v -0.756733 1.085077 -0.378320 +v -0.883941 1.235334 -0.395739 +v -0.805010 1.065079 -0.198249 +v -0.812188 1.062106 -0.395739 +v -0.860465 1.042109 -0.215667 +v -0.923745 1.083547 -0.293109 +v -0.852198 1.113183 -0.335715 +v -0.868290 1.106517 -0.275691 +v -0.892208 1.164260 -0.275691 +v -0.876116 1.170926 -0.335715 +v -0.931570 1.147956 -0.353133 +v -0.907653 1.090213 -0.353133 +v -0.947663 1.141290 -0.293109 +v -0.932218 1.784663 -0.215667 +v -0.828486 1.741696 -0.378320 +v -0.876764 1.761693 -0.198249 +v -0.883941 1.764666 -0.395739 +v -0.756733 1.914923 -0.378320 +v -0.860465 1.957891 -0.215667 +v -0.805010 1.934921 -0.198249 +v -0.852198 1.886817 -0.335715 +v -0.923745 1.916453 -0.293109 +v -0.868290 1.893482 -0.275691 +v -0.876116 1.829074 -0.335715 +v -0.892208 1.835740 -0.275691 +v -0.812188 1.937894 -0.395739 +v -0.907653 1.909787 -0.353133 +v -0.947663 1.858710 -0.293109 +v -0.931570 1.852044 -0.353133 +v -0.932218 1.215337 0.215667 +v -0.828486 1.258304 0.378320 +v -0.876764 1.238307 0.198249 +v -0.883941 1.235334 0.395739 +v -0.756733 1.085077 0.378320 +v -0.812188 1.062106 0.395739 +v -0.805010 1.065079 0.198249 +v -0.860465 1.042109 0.215667 +v -0.852198 1.113183 0.335715 +v -0.923745 1.083547 0.293109 +v -0.868290 1.106517 0.275691 +v -0.876116 1.170926 0.335715 +v -0.892208 1.164260 0.275691 +v -0.931570 1.147956 0.353133 +v -0.907653 1.090213 0.353133 +v -0.947663 1.141290 0.293109 +v -0.828486 1.741696 0.378320 +v -0.932218 1.784663 0.215667 +v -0.876764 1.761693 0.198249 +v -0.756733 1.914923 0.378320 +v -0.883941 1.764666 0.395739 +v -0.860465 1.957891 0.215667 +v -0.812188 1.937894 0.395739 +v -0.805010 1.934921 0.198249 +v -0.868290 1.893482 0.275691 +v -0.907653 1.909787 0.353133 +v -0.852198 1.886817 0.335715 +v -0.892208 1.835740 0.275691 +v -0.876116 1.829074 0.335715 +v -0.947663 1.858710 0.293109 +v -0.931570 1.852044 0.353133 +v 0.923745 1.083547 0.293109 +v -0.923745 1.916453 0.293109 +v -0.807442 1.959695 -1.252000 +v -0.807442 1.959695 -0.439500 +v -1.212871 1.460005 -0.439500 +v -0.905119 1.405740 -0.439500 +v -0.905119 1.405740 -1.252000 +v -1.212871 1.460005 -1.252000 +v -1.115194 2.013960 -1.252000 +v -1.115194 2.013960 -0.439500 +v -1.126047 1.952409 -1.189500 +v -1.202018 1.521556 -1.189500 +v -1.191165 1.583106 -1.189500 +v -1.180312 1.644657 -1.189500 +v -1.169459 1.706207 -1.189500 +v -1.158606 1.767758 -1.189500 +v -1.136900 1.890859 -1.189500 +v -1.147753 1.829308 -1.189500 +v -1.136900 1.890859 -0.502000 +v -1.180312 1.644657 -0.939500 +v -1.231010 1.717060 -0.939500 +v -1.169459 1.706207 -0.939500 +v -1.126047 1.952409 -0.564500 +v -1.136900 1.890859 -0.627000 +v -1.136900 1.890859 -0.564500 +v -1.202018 1.521556 -1.064500 +v -1.252716 1.593959 -1.064500 +v -1.191165 1.583106 -1.064500 +v -1.126047 1.952409 -0.689500 +v -1.136900 1.890859 -0.752000 +v -1.136900 1.890859 -0.689500 +v -1.187598 1.963262 -0.627000 +v -1.198451 1.901712 -0.627000 +v -1.126047 1.952409 -0.814500 +v -1.136900 1.890859 -0.877000 +v -1.136900 1.890859 -0.814500 +v -1.147753 1.829308 -0.752000 +v -1.220157 1.778611 -0.752000 +v -1.158606 1.767758 -0.752000 +v -1.126047 1.952409 -0.939500 +v -1.136900 1.890859 -1.002000 +v -1.136900 1.890859 -0.939500 +v -1.191165 1.583106 -0.939500 +v -1.252716 1.593959 -0.877000 +v -1.191165 1.583106 -0.877000 +v -1.126047 1.952409 -1.064500 +v -1.136900 1.890859 -1.127000 +v -1.136900 1.890859 -1.064500 +v -1.180312 1.644657 -0.877000 +v -1.231010 1.717060 -0.877000 +v -1.241863 1.655510 -0.877000 +v -1.147753 1.829308 -0.502000 +v -1.147753 1.829308 -0.564500 +v -1.147753 1.829308 -0.627000 +v -1.147753 1.829308 -0.689500 +v -1.147753 1.829308 -0.814500 +v -1.147753 1.829308 -0.877000 +v -1.147753 1.829308 -0.939500 +v -1.147753 1.829308 -1.002000 +v -1.147753 1.829308 -1.064500 +v -1.147753 1.829308 -1.127000 +v -1.158606 1.767758 -0.502000 +v -1.169459 1.706207 -1.064500 +v -1.231010 1.717060 -1.002000 +v -1.169459 1.706207 -1.002000 +v -1.158606 1.767758 -0.627000 +v -1.158606 1.767758 -0.564500 +v -1.202018 1.521556 -1.002000 +v -1.252716 1.593959 -1.002000 +v -1.263569 1.532409 -1.002000 +v -1.158606 1.767758 -0.689500 +v -1.209304 1.840161 -1.189500 +v -1.209304 1.840161 -1.127000 +v -1.158606 1.767758 -0.877000 +v -1.158606 1.767758 -0.814500 +v -1.187598 1.963262 -0.564500 +v -1.158606 1.767758 -1.002000 +v -1.158606 1.767758 -0.939500 +v -1.220157 1.778611 -0.689500 +v -1.209304 1.840161 -0.689500 +v -1.158606 1.767758 -1.064500 +v -1.158606 1.767758 -1.127000 +v -1.180312 1.644657 -0.814500 +v -1.231010 1.717060 -0.814500 +v -1.169459 1.706207 -0.814500 +v -1.169459 1.706207 -0.502000 +v -1.169459 1.706207 -0.564500 +v -1.169459 1.706207 -0.627000 +v -1.169459 1.706207 -0.689500 +v -1.169459 1.706207 -0.752000 +v -1.169459 1.706207 -0.877000 +v -1.169459 1.706207 -1.127000 +v -1.180312 1.644657 -0.502000 +v -1.202018 1.521556 -0.939500 +v -1.252716 1.593959 -0.939500 +v -1.180312 1.644657 -0.627000 +v -1.180312 1.644657 -0.564500 +v -1.187598 1.963262 -0.502000 +v -1.198451 1.901712 -0.502000 +v -1.180312 1.644657 -0.752000 +v -1.180312 1.644657 -0.689500 +v -1.220157 1.778611 -0.627000 +v -1.191165 1.583106 -0.814500 +v -1.252716 1.593959 -0.752000 +v -1.191165 1.583106 -0.752000 +v -1.180312 1.644657 -1.002000 +v -1.231010 1.717060 -0.752000 +v -1.241863 1.655510 -0.752000 +v -1.180312 1.644657 -1.127000 +v -1.180312 1.644657 -1.064500 +v -1.191165 1.583106 -0.502000 +v -1.191165 1.583106 -0.564500 +v -1.191165 1.583106 -0.627000 +v -1.191165 1.583106 -0.689500 +v -1.191165 1.583106 -1.002000 +v -1.191165 1.583106 -1.127000 +v -1.202018 1.521556 -0.502000 +v -1.202018 1.521556 -0.877000 +v -1.263569 1.532409 -0.877000 +v -1.202018 1.521556 -0.627000 +v -1.202018 1.521556 -0.564500 +v -1.209304 1.840161 -1.002000 +v -1.202018 1.521556 -0.752000 +v -1.202018 1.521556 -0.689500 +v -1.187598 1.963262 -1.127000 +v -1.126047 1.952409 -1.127000 +v -1.202018 1.521556 -0.814500 +v -1.220157 1.778611 -0.564500 +v -1.209304 1.840161 -0.564500 +v -1.231010 1.717060 -0.689500 +v -1.202018 1.521556 -1.127000 +v -1.252716 1.593959 -0.814500 +v -1.126047 1.952409 -0.502000 +v -1.126047 1.952409 -0.627000 +v -1.126047 1.952409 -0.752000 +v -1.126047 1.952409 -0.877000 +v -1.126047 1.952409 -1.002000 +v -1.198451 1.901712 -0.564500 +v -1.198451 1.901712 -0.689500 +v -1.187598 1.963262 -0.752000 +v -1.198451 1.901712 -0.814500 +v -1.198451 1.901712 -0.752000 +v -1.187598 1.963262 -0.877000 +v -1.198451 1.901712 -0.939500 +v -1.198451 1.901712 -0.877000 +v -1.187598 1.963262 -1.002000 +v -1.198451 1.901712 -1.064500 +v -1.198451 1.901712 -1.002000 +v -1.198451 1.901712 -1.127000 +v -1.187598 1.963262 -1.189500 +v -1.198451 1.901712 -1.189500 +v -1.209304 1.840161 -0.502000 +v -1.220157 1.778611 -0.502000 +v -1.209304 1.840161 -0.627000 +v -1.209304 1.840161 -0.752000 +v -1.220157 1.778611 -0.814500 +v -1.209304 1.840161 -0.877000 +v -1.220157 1.778611 -0.939500 +v -1.220157 1.778611 -0.877000 +v -1.220157 1.778611 -1.064500 +v -1.220157 1.778611 -1.002000 +v -1.220157 1.778611 -1.189500 +v -1.220157 1.778611 -1.127000 +v -1.231010 1.717060 -0.502000 +v -1.241863 1.655510 -0.564500 +v -1.241863 1.655510 -0.502000 +v -1.231010 1.717060 -0.627000 +v -1.241863 1.655510 -0.689500 +v -1.241863 1.655510 -0.627000 +v -1.241863 1.655510 -0.814500 +v -1.241863 1.655510 -0.939500 +v -1.241863 1.655510 -1.064500 +v -1.241863 1.655510 -1.002000 +v -1.241863 1.655510 -1.127000 +v -1.231010 1.717060 -1.189500 +v -1.241863 1.655510 -1.189500 +v -1.252716 1.593959 -0.502000 +v -1.263569 1.532409 -0.564500 +v -1.263569 1.532409 -0.502000 +v -1.252716 1.593959 -0.627000 +v -1.263569 1.532409 -0.689500 +v -1.263569 1.532409 -0.627000 +v -1.263569 1.532409 -0.814500 +v -1.263569 1.532409 -0.752000 +v -1.263569 1.532409 -0.939500 +v -1.263569 1.532409 -1.064500 +v -1.263569 1.532409 -1.127000 +v -1.252716 1.593959 -1.189500 +v -1.263569 1.532409 -1.189500 +v -1.209304 1.840161 -0.814500 +v -1.187598 1.963262 -0.689500 +v -1.252716 1.593959 -1.127000 +v -1.231010 1.717060 -1.127000 +v -1.231010 1.717060 -1.064500 +v -1.209304 1.840161 -0.939500 +v -1.187598 1.963262 -0.814500 +v -1.209304 1.840161 -1.064500 +v -1.187598 1.963262 -0.939500 +v -1.187598 1.963262 -1.064500 +v -1.252716 1.593959 -0.564500 +v -1.252716 1.593959 -0.689500 +v -1.231010 1.717060 -0.564500 +v -0.934110 1.601245 -1.252000 +v -0.995661 1.612098 -1.252000 +v -0.944963 1.539694 -1.252000 +v -1.006514 1.550547 -1.252000 +v -0.934110 1.601245 -1.314400 +v -0.995661 1.612098 -1.314400 +v -0.944963 1.539694 -1.314400 +v -1.006514 1.550547 -1.314400 +v -1.057211 1.622951 -1.252000 +v -1.118762 1.633804 -1.252000 +v -1.068064 1.561400 -1.252000 +v -1.129615 1.572253 -1.252000 +v -1.057211 1.622951 -1.314500 +v -1.118762 1.633804 -1.314500 +v -1.068064 1.561400 -1.314500 +v -1.129615 1.572253 -1.314500 +vt 0.982558 0.504854 +vt 0.988372 0.495146 +vt 0.982558 0.495146 +vt 0.488372 0.834951 +vt 0.470930 0.699029 +vt 0.470930 0.834951 +vt 0.837209 0.242718 +vt 0.831395 0.252427 +vt 0.831395 0.242718 +vt 0.488372 0.699029 +vt 0.494186 0.834951 +vt 0.494186 0.699029 +vt 0.802326 0.233010 +vt 0.802326 0.242718 +vt 0.802326 0.582524 +vt 0.988372 0.572816 +vt 0.988372 0.582524 +vt 0.808140 0.495146 +vt 0.988372 0.475728 +vt 0.802326 0.475728 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.802326 0.262136 +vt 0.581395 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.563107 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.831395 0.252427 +vt 0.994186 0.572816 +vt 0.988372 0.563107 +vt 0.994186 0.563107 +vt 0.982558 0.504854 +vt 0.988372 0.495146 +vt 0.988372 0.504854 +vt 0.837209 0.242718 +vt 0.837209 0.252427 +vt 0.802326 0.572816 +vt 0.796512 0.563107 +vt 0.802326 0.563107 +vt 0.988372 0.543689 +vt 0.802326 0.553398 +vt 0.802326 0.543689 +vt 0.802326 0.233010 +vt 0.831395 0.242718 +vt 0.831395 0.233010 +vt 0.872093 0.349515 +vt 0.802326 0.339806 +vt 0.802326 0.349515 +vt 0.872093 0.310680 +vt 0.802326 0.300971 +vt 0.802326 0.310680 +vt 0.988372 0.485437 +vt 0.808140 0.504854 +vt 0.802326 0.514563 +vt 0.802326 0.524272 +vt 0.872093 0.310680 +vt 0.802326 0.300971 +vt 0.872093 0.300971 +vt 0.802326 0.572816 +vt 0.796512 0.563107 +vt 0.796512 0.572816 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.802326 0.339806 +vt 0.872093 0.349515 +vt 0.802326 0.339806 +vt 0.802326 0.349515 +vt 0.802326 0.582524 +vt 0.988372 0.572816 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.802326 0.300971 +vt 0.488372 0.834951 +vt 0.470930 0.699029 +vt 0.488372 0.699029 +vt 0.802326 0.233010 +vt 0.831395 0.223301 +vt 0.831395 0.233010 +vt 0.988372 0.553398 +vt 0.988372 0.504854 +vt 0.994186 0.495146 +vt 0.796512 0.252427 +vt 0.994186 0.553398 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.872093 0.271845 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.796512 0.310680 +vt 0.802326 0.533981 +vt 0.988372 0.543689 +vt 0.988372 0.533981 +vt 0.831395 0.223301 +vt 0.802326 0.242718 +vt 0.831395 0.242718 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.802326 0.339806 +vt 0.796512 0.252427 +vt 0.802326 0.242718 +vt 0.802326 0.252427 +vt 0.872093 0.310680 +vt 0.802326 0.271845 +vt 0.872093 0.271845 +vt 0.796512 0.339806 +vt 0.796512 0.310680 +vt 0.831395 0.252427 +vt 0.802326 0.495146 +vt 0.796512 0.504854 +vt 0.796512 0.495146 +vt 0.802326 0.242718 +vt 0.831395 0.252427 +vt 0.872093 0.310680 +vt 0.872093 0.349515 +vt 0.872093 0.339806 +vt 0.796512 0.553398 +vt 0.802326 0.563107 +vt 0.802326 0.553398 +vt 0.802326 0.495146 +vt 0.796512 0.504854 +vt 0.802326 0.504854 +vt 0.831395 0.223301 +vt 0.831395 0.233010 +vt 0.837209 0.242718 +vt 0.837209 0.252427 +vt 0.802326 0.300971 +vt 0.994186 0.572816 +vt 0.988372 0.563107 +vt 0.877907 0.310680 +vt 0.872093 0.339806 +vt 0.877907 0.339806 +vt 0.994186 0.563107 +vt 0.988372 0.553398 +vt 0.465116 0.699029 +vt 0.494186 0.834951 +vt 0.877907 0.310680 +vt 0.796512 0.252427 +vt 0.796512 0.242718 +vt 0.494186 0.699029 +vt 0.511628 0.834951 +vt 0.994186 0.495146 +vt 0.994186 0.504854 +vt 0.872093 0.349515 +vt 0.872093 0.339806 +vt 0.511628 0.834951 +vt 0.511628 0.699029 +vt 0.877907 0.310680 +vt 0.872093 0.339806 +vt 0.877907 0.339806 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.802326 0.533981 +vt 0.796512 0.252427 +vt 0.796512 0.242718 +vt 0.337209 0.640777 +vt 0.354651 0.689320 +vt 0.354651 0.650485 +vt 0.325581 0.582524 +vt 0.308140 0.533981 +vt 0.308140 0.572816 +vt 0.325581 0.466019 +vt 0.308140 0.514563 +vt 0.325581 0.524272 +vt 0.325581 0.640777 +vt 0.308140 0.592233 +vt 0.308140 0.631068 +vt 0.593023 0.514563 +vt 0.406977 0.689320 +vt 0.389535 0.640777 +vt 0.389535 0.699029 +vt 0.360465 0.747573 +vt 0.377907 0.699029 +vt 0.360465 0.708738 +vt 0.308140 0.922330 +vt 0.325581 0.873786 +vt 0.308140 0.883495 +vt 0.337209 0.932039 +vt 0.354651 0.980583 +vt 0.354651 0.941748 +vt 0.337209 0.815534 +vt 0.354651 0.766990 +vt 0.337209 0.757282 +vt 0.360465 0.223301 +vt 0.377907 0.174757 +vt 0.360465 0.184466 +vt 0.308140 0.825243 +vt 0.308140 0.864078 +vt 0.337209 0.873786 +vt 0.354651 0.922330 +vt 0.354651 0.883495 +vt 0.360465 0.592233 +vt 0.377907 0.640777 +vt 0.377907 0.582524 +vt 0.360465 0.980583 +vt 0.377907 0.932039 +vt 0.360465 0.941748 +vt 0.360465 0.067961 +vt 0.377907 0.116505 +vt 0.377907 0.058252 +vt 0.337209 0.466019 +vt 0.354651 0.417476 +vt 0.337209 0.407767 +vt 0.325581 0.116505 +vt 0.308140 0.067961 +vt 0.308140 0.106796 +vt 0.308140 0.165049 +vt 0.308140 0.126214 +vt 0.406977 0.165049 +vt 0.389535 0.116505 +vt 0.389535 0.174757 +vt 0.325581 0.407767 +vt 0.308140 0.359223 +vt 0.308140 0.398058 +vt 0.325581 0.174757 +vt 0.308140 0.223301 +vt 0.325581 0.233010 +vt 0.360465 0.339806 +vt 0.377907 0.291262 +vt 0.360465 0.300971 +vt 0.389535 0.233010 +vt 0.406977 0.281553 +vt 0.406977 0.242718 +vt 0.337209 0.291262 +vt 0.354651 0.242718 +vt 0.337209 0.233010 +vt 0.389535 0.291262 +vt 0.406977 0.339806 +vt 0.406977 0.300971 +vt 0.354651 0.359223 +vt 0.354651 0.398058 +vt 0.406977 0.922330 +vt 0.389535 0.873786 +vt 0.389535 0.932039 +vt 0.360465 0.533981 +vt 0.360465 0.572816 +vt 0.308140 0.417476 +vt 0.308140 0.456311 +vt 0.360465 0.825243 +vt 0.377907 0.873786 +vt 0.377907 0.815534 +vt 0.389535 0.466019 +vt 0.406977 0.514563 +vt 0.406977 0.475728 +vt 0.802326 0.233010 +vt 0.831395 0.233010 +vt 0.837209 0.242718 +vt 0.831395 0.242718 +vt 0.831395 0.262136 +vt 0.802326 0.262136 +vt 0.808140 0.495146 +vt 0.802326 0.504854 +vt 0.465116 0.699029 +vt 0.470930 0.834951 +vt 0.465116 0.834951 +vt 0.808140 0.504854 +vt 0.337209 0.582524 +vt 0.354651 0.533981 +vt 0.337209 0.524272 +vt 0.406977 0.533981 +vt 0.389535 0.582524 +vt 0.406977 0.572816 +vt 0.354651 0.592233 +vt 0.354651 0.631068 +vt 0.406977 0.592233 +vt 0.406977 0.631068 +vt 0.360465 0.689320 +vt 0.360465 0.650485 +vt 0.308140 0.689320 +vt 0.308140 0.650485 +vt 0.406977 0.747573 +vt 0.389535 0.757282 +vt 0.325581 0.699029 +vt 0.308140 0.747573 +vt 0.325581 0.757282 +vt 0.360465 0.766990 +vt 0.360465 0.805825 +vt 0.308140 0.281553 +vt 0.325581 0.291262 +vt 0.406977 0.825243 +vt 0.406977 0.864078 +vt 0.360465 0.359223 +vt 0.377907 0.407767 +vt 0.377907 0.349515 +vt 0.337209 0.116505 +vt 0.354651 0.165049 +vt 0.354651 0.126214 +vt 0.337209 0.174757 +vt 0.354651 0.223301 +vt 0.354651 0.184466 +vt 0.354651 0.067961 +vt 0.354651 0.106796 +vt 0.325581 0.932039 +vt 0.308140 0.980583 +vt 0.325581 0.990291 +vt 0.406977 0.067961 +vt 0.406977 0.106796 +vt 0.406977 0.980583 +vt 0.406977 0.941748 +vt 0.360465 0.922330 +vt 0.360465 0.883495 +vt 0.360465 0.165049 +vt 0.360465 0.126214 +vt 0.354651 0.825243 +vt 0.354651 0.864078 +vt 0.406977 0.223301 +vt 0.406977 0.184466 +vt 0.360465 0.242718 +vt 0.360465 0.281553 +vt 0.308140 0.339806 +vt 0.325581 0.349515 +vt 0.354651 0.339806 +vt 0.354651 0.300971 +vt 0.406977 0.766990 +vt 0.389535 0.815534 +vt 0.406977 0.805825 +vt 0.406977 0.359223 +vt 0.389535 0.407767 +vt 0.406977 0.398058 +vt 0.308140 0.805825 +vt 0.325581 0.815534 +vt 0.406977 0.417476 +vt 0.406977 0.456311 +vt 0.377907 0.466019 +vt 0.360465 0.417476 +vt 0.360465 0.456311 +vt 0.354651 0.514563 +vt 0.354651 0.475728 +vt 0.360465 0.514563 +vt 0.360465 0.475728 +vt 0.581395 0.466019 +vt 0.581395 0.514563 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.558140 0.466019 +vt 0.569767 0.446602 +vt 0.569767 0.466019 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.569767 0.563107 +vt 0.831395 0.223301 +vt 0.558140 0.514563 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.558140 0.514563 +vt 0.569767 0.563107 +vt 0.558140 0.563107 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.569767 0.446602 +vt 0.581395 0.563107 +vt 0.593023 0.514563 +vt 0.593023 0.563107 +vt 0.558140 0.514563 +vt 0.569767 0.563107 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.593023 0.446602 +vt 0.569767 0.563107 +vt 0.569767 0.514563 +vt 0.581395 0.466019 +vt 0.581395 0.582524 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.558140 0.514563 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.581395 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.563107 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.593023 0.446602 +vt 0.593023 0.514563 +vt 0.581395 0.466019 +vt 0.581395 0.514563 +vt 0.569767 0.514563 +vt 0.569767 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.582524 +vt 0.581395 0.563107 +vt 0.877907 0.310680 +vt 0.593023 0.514563 +vt 0.569767 0.446602 +vt 0.988372 0.475728 +vt 0.802326 0.475728 +vt 0.581395 0.466019 +vt 0.569767 0.446602 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.662281 0.950003 +vt 0.570315 0.837433 +vt 0.570033 0.949354 +vt 0.337209 0.699029 +vt 0.354651 0.747573 +vt 0.354651 0.708738 +vt 0.802326 0.485437 +vt 0.988372 0.485437 +vt 0.982558 0.495146 +vt 0.988372 0.514563 +vt 0.988372 0.524272 +vt 0.802326 0.524272 +vt 0.802326 0.514563 +vt 0.988372 0.524272 +vt 0.802326 0.485437 +vt 0.988372 0.514563 +vt 0.525581 0.851052 +vt 0.548382 0.944680 +vt 0.492314 0.982754 +vt 0.570027 0.744687 +vt 0.570320 0.632766 +vt 0.634153 0.598647 +vt 0.598452 0.984140 +vt 0.633688 0.984388 +vt 0.673311 0.894119 +vt 0.662564 0.838082 +vt 0.634144 0.803296 +vt 0.598908 0.803048 +vt 0.559286 0.893317 +vt 0.796512 0.553398 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.819767 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.819767 0.708738 +vt 0.802326 0.718447 +vt 0.819767 0.718447 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.843023 0.951456 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.848837 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.951456 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.970874 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.802326 0.718447 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.970874 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.819767 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.819767 0.708738 +vt 0.819767 0.718447 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.837209 0.737864 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.802326 0.718447 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.837209 0.728155 +vt 0.843023 0.718447 +vt 0.837209 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.825581 0.747573 +vt 0.825581 0.718447 +vt 0.843023 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.831395 0.728155 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.747573 +vt 0.825581 0.718447 +vt 0.819767 0.747573 +vt 0.825581 0.747573 +vt 0.819767 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.837209 0.737864 +vt 0.831395 0.728155 +vt 0.831395 0.737864 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.825581 0.718447 +vt 0.819767 0.747573 +vt 0.825581 0.747573 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.728155 +vt 0.837209 0.737864 +vt 0.831395 0.737864 +vt 0.819767 0.708738 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.831395 0.961165 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.825581 0.980583 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.819767 0.718447 +vt 0.819767 0.747573 +vt 0.813953 0.728155 +vt 0.831395 0.728155 +vt 0.837209 0.737864 +vt 0.831395 0.737864 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.831395 0.737864 +vt 0.831395 0.728155 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.848837 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.961165 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.837209 0.737864 +vt 0.802326 0.708738 +vt 0.819767 0.718447 +vt 0.819767 0.708738 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.819767 0.718447 +vt 0.819767 0.747573 +vt 0.813953 0.728155 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.819767 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.843023 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.831395 0.737864 +vt 0.796512 0.718447 +vt 0.802326 0.757282 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.737864 +vt 0.837209 0.747573 +vt 0.843023 0.747573 +vt 0.848837 0.737864 +vt 0.843023 0.728155 +vt 0.848837 0.728155 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.819767 0.718447 +vt 0.813953 0.728155 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.728155 +vt 0.831395 0.737864 +vt 0.831395 0.728155 +vt 0.796512 0.718447 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.819767 0.708738 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.819767 0.757282 +vt 0.802326 0.757282 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.819767 0.718447 +vt 0.843023 0.737864 +vt 0.848837 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.819767 0.757282 +vt 0.802326 0.757282 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.819767 0.708738 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.837209 0.747573 +vt 0.843023 0.737864 +vt 0.843023 0.747573 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.802326 0.757282 +vt 0.796512 0.718447 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.796512 0.718447 +vt 0.802326 0.708738 +vt 0.819767 0.708738 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.848837 0.737864 +vt 0.843023 0.728155 +vt 0.848837 0.728155 +vt 0.825581 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.802326 0.951456 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.802326 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.819767 0.980583 +vt 0.802326 0.951456 +vt 0.819767 0.941748 +vt 0.802326 0.941748 +vt 0.837209 0.718447 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.837209 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.819767 0.951456 +vt 0.819767 0.980583 +vt 0.819767 0.941748 +vt 0.802326 0.951456 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.843023 0.951456 +vt 0.808140 0.970874 +vt 0.802326 0.951456 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.802326 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.837209 0.970874 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.848837 0.961165 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.819767 0.941748 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.843023 0.718447 +vt 0.837209 0.718447 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.970874 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.757282 +vt 0.825581 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.831395 0.961165 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.831395 0.728155 +vt 0.831395 0.737864 +vt 0.517442 0.291262 +vt 0.546512 0.378641 +vt 0.517442 0.378641 +vt 0.517442 0.427184 +vt 0.441860 0.514563 +vt 0.441860 0.427184 +vt 0.441860 0.242718 +vt 0.517442 0.242718 +vt 0.441860 0.378641 +vt 0.441860 0.291262 +vt 0.552326 0.203883 +vt 0.558140 0.213592 +vt 0.552326 0.213592 +vt 0.627907 0.126214 +vt 0.622093 0.116505 +vt 0.627907 0.116505 +vt 0.610465 0.155340 +vt 0.604651 0.145631 +vt 0.610465 0.145631 +vt 0.604651 0.213592 +vt 0.610465 0.203883 +vt 0.610465 0.213592 +vt 0.639535 0.252427 +vt 0.645349 0.242718 +vt 0.645349 0.252427 +vt 0.575581 0.116505 +vt 0.569767 0.126214 +vt 0.569767 0.116505 +vt 0.627907 0.165049 +vt 0.633721 0.155340 +vt 0.633721 0.165049 +vt 0.593023 0.242718 +vt 0.598837 0.233010 +vt 0.598837 0.242718 +vt 0.569767 0.223301 +vt 0.575581 0.233010 +vt 0.569767 0.233010 +vt 0.627907 0.223301 +vt 0.633721 0.213592 +vt 0.633721 0.223301 +vt 0.639535 0.233010 +vt 0.633721 0.242718 +vt 0.633721 0.233010 +vt 0.575581 0.242718 +vt 0.581395 0.233010 +vt 0.581395 0.242718 +vt 0.627907 0.194175 +vt 0.633721 0.203883 +vt 0.627907 0.203883 +vt 0.610465 0.252427 +vt 0.604651 0.262136 +vt 0.604651 0.252427 +vt 0.622093 0.174757 +vt 0.616279 0.165049 +vt 0.622093 0.165049 +vt 0.569767 0.174757 +vt 0.563953 0.184466 +vt 0.563953 0.174757 +vt 0.610465 0.184466 +vt 0.616279 0.174757 +vt 0.616279 0.184466 +vt 0.569767 0.194175 +vt 0.575581 0.184466 +vt 0.575581 0.194175 +vt 0.645349 0.184466 +vt 0.639535 0.174757 +vt 0.645349 0.174757 +vt 0.645349 0.126214 +vt 0.639535 0.116505 +vt 0.645349 0.116505 +vt 0.569767 0.165049 +vt 0.575581 0.174757 +vt 0.622093 0.242718 +vt 0.627907 0.233010 +vt 0.627907 0.242718 +vt 0.563953 0.126214 +vt 0.563953 0.116505 +vt 0.616279 0.203883 +vt 0.616279 0.213592 +vt 0.581395 0.126214 +vt 0.581395 0.116505 +vt 0.587209 0.262136 +vt 0.581395 0.252427 +vt 0.587209 0.252427 +vt 0.633721 0.126214 +vt 0.633721 0.116505 +vt 0.627907 0.145631 +vt 0.633721 0.145631 +vt 0.627907 0.135922 +vt 0.651163 0.116505 +vt 0.651163 0.126214 +vt 0.616279 0.233010 +vt 0.610465 0.242718 +vt 0.610465 0.233010 +vt 0.569767 0.203883 +vt 0.563953 0.213592 +vt 0.563953 0.203883 +vt 0.639535 0.203883 +vt 0.639535 0.213592 +vt 0.610465 0.271845 +vt 0.604651 0.271845 +vt 0.627907 0.184466 +vt 0.627907 0.174757 +vt 0.558140 0.135922 +vt 0.563953 0.145631 +vt 0.558140 0.145631 +vt 0.604651 0.194175 +vt 0.610465 0.194175 +vt 0.598837 0.252427 +vt 0.593023 0.252427 +vt 0.616279 0.106796 +vt 0.622093 0.106796 +vt 0.587209 0.233010 +vt 0.587209 0.242718 +vt 0.581395 0.165049 +vt 0.587209 0.155340 +vt 0.587209 0.165049 +vt 0.651163 0.233010 +vt 0.651163 0.242718 +vt 0.575581 0.262136 +vt 0.581395 0.271845 +vt 0.575581 0.271845 +vt 0.558140 0.194175 +vt 0.563953 0.194175 +vt 0.639535 0.165049 +vt 0.639535 0.106796 +vt 0.616279 0.135922 +vt 0.622093 0.126214 +vt 0.622093 0.135922 +vt 0.563953 0.155340 +vt 0.569767 0.145631 +vt 0.569767 0.155340 +vt 0.581395 0.223301 +vt 0.587209 0.213592 +vt 0.587209 0.223301 +vt 0.633721 0.271845 +vt 0.627907 0.262136 +vt 0.633721 0.262136 +vt 0.610465 0.126214 +vt 0.616279 0.116505 +vt 0.616279 0.126214 +vt 0.627907 0.252427 +vt 0.616279 0.262136 +vt 0.616279 0.271845 +vt 0.581395 0.135922 +vt 0.587209 0.145631 +vt 0.581395 0.145631 +vt 0.587209 0.126214 +vt 0.593023 0.116505 +vt 0.593023 0.126214 +vt 0.604651 0.135922 +vt 0.598837 0.126214 +vt 0.552326 0.155340 +vt 0.552326 0.145631 +vt 0.604651 0.165049 +vt 0.610465 0.165049 +vt 0.627907 0.281553 +vt 0.633721 0.281553 +vt 0.610465 0.281553 +vt 0.604651 0.281553 +vt 0.569767 0.135922 +vt 0.575581 0.126214 +vt 0.575581 0.135922 +vt 0.598837 0.184466 +vt 0.604651 0.174757 +vt 0.604651 0.184466 +vt 0.651163 0.174757 +vt 0.651163 0.184466 +vt 0.598837 0.106796 +vt 0.593023 0.106796 +vt 0.563953 0.223301 +vt 0.558140 0.223301 +vt 0.604651 0.126214 +vt 0.598837 0.116505 +vt 0.604651 0.116505 +vt 0.593023 0.165049 +vt 0.598837 0.174757 +vt 0.593023 0.174757 +vt 0.587209 0.271845 +vt 0.569767 0.252427 +vt 0.575581 0.252427 +vt 0.575581 0.106796 +vt 0.569767 0.106796 +vt 0.581395 0.194175 +vt 0.587209 0.203883 +vt 0.581395 0.203883 +vt 0.558140 0.165049 +vt 0.563953 0.165049 +vt 0.616279 0.223301 +vt 0.622093 0.233010 +vt 0.581395 0.213592 +vt 0.558140 0.271845 +vt 0.563953 0.281553 +vt 0.558140 0.281553 +vt 0.645349 0.233010 +vt 0.563953 0.271845 +vt 0.569767 0.262136 +vt 0.569767 0.271845 +vt 0.593023 0.145631 +vt 0.593023 0.155340 +vt 0.558140 0.262136 +vt 0.552326 0.271845 +vt 0.552326 0.262136 +vt 0.622093 0.194175 +vt 0.616279 0.194175 +vt 0.639535 0.262136 +vt 0.639535 0.271845 +vt 0.639535 0.145631 +vt 0.639535 0.155340 +vt 0.639535 0.135922 +vt 0.645349 0.135922 +vt 0.563953 0.242718 +vt 0.563953 0.233010 +vt 0.598837 0.155340 +vt 0.598837 0.145631 +vt 0.604651 0.233010 +vt 0.604651 0.242718 +vt 0.575581 0.155340 +vt 0.575581 0.145631 +vt 0.587209 0.184466 +vt 0.587209 0.174757 +vt 0.622093 0.155340 +vt 0.622093 0.145631 +vt 0.639535 0.223301 +vt 0.593023 0.203883 +vt 0.593023 0.213592 +vt 0.581395 0.174757 +vt 0.581395 0.184466 +vt 0.587209 0.281553 +vt 0.581395 0.281553 +vt 0.622093 0.271845 +vt 0.622093 0.262136 +vt 0.598837 0.135922 +vt 0.593023 0.135922 +vt 0.616279 0.145631 +vt 0.616279 0.155340 +vt 0.622093 0.213592 +vt 0.622093 0.203883 +vt 0.593023 0.194175 +vt 0.598837 0.194175 +vt 0.575581 0.213592 +vt 0.575581 0.203883 +vt 0.610465 0.223301 +vt 0.604651 0.223301 +vt 0.598837 0.271845 +vt 0.598837 0.262136 +vt 0.563953 0.252427 +vt 0.558140 0.252427 +vt 0.639535 0.194175 +vt 0.645349 0.194175 +vt 0.593023 0.262136 +vt 0.593023 0.271845 +vt 0.593023 0.223301 +vt 0.598837 0.223301 +vt 0.616279 0.252427 +vt 0.622093 0.252427 +vt 0.633721 0.184466 +vt 0.633721 0.174757 +vt 0.598837 0.203883 +vt 0.598837 0.213592 +vt 0.843023 0.961165 +vt 0.843023 0.737864 +vt 0.843023 0.737864 +vt 0.837209 0.737864 +vt 0.843023 0.961165 +vt 0.843023 0.961165 +vt 0.843023 0.961165 +vt 0.837209 0.970874 +vt 0.843023 0.737864 +vt 0.837209 0.970874 +vt 0.412791 0.378641 +vt 0.412791 0.291262 +vt 0.593023 0.135922 +vt 0.598837 0.126214 +vt 0.598837 0.135922 +vt 0.604651 0.126214 +vt 0.598837 0.116505 +vt 0.604651 0.116505 +vt 0.598837 0.106796 +vt 0.593023 0.116505 +vt 0.593023 0.106796 +vt 0.587209 0.116505 +vt 0.593023 0.126214 +vt 0.587209 0.126214 +vt 0.575581 0.106796 +vt 0.569767 0.116505 +vt 0.569767 0.106796 +vt 0.563953 0.116505 +vt 0.569767 0.126214 +vt 0.563953 0.126214 +vt 0.569767 0.135922 +vt 0.575581 0.126214 +vt 0.575581 0.135922 +vt 0.581395 0.126214 +vt 0.575581 0.116505 +vt 0.581395 0.116505 +vt 0.837209 0.252427 +vt 0.593023 0.582524 +vt 0.802326 0.262136 +vt 0.796512 0.572816 +vt 0.796512 0.310680 +vt 0.988372 0.582524 +vt 0.872093 0.271845 +vt 0.802326 0.223301 +vt 0.994186 0.504854 +vt 0.796512 0.242718 +vt 0.802326 0.543689 +vt 0.802326 0.223301 +vt 0.796512 0.310680 +vt 0.796512 0.242718 +vt 0.802326 0.349515 +vt 0.796512 0.495146 +vt 0.802326 0.223301 +vt 0.994186 0.553398 +vt 0.465116 0.834951 +vt 0.877907 0.339806 +vt 0.511628 0.699029 +vt 0.802326 0.349515 +vt 0.802326 0.262136 +vt 0.988372 0.533981 +vt 0.308140 0.475728 +vt 0.406977 0.650485 +vt 0.377907 0.757282 +vt 0.337209 0.990291 +vt 0.354651 0.805825 +vt 0.377907 0.233010 +vt 0.360465 0.631068 +vt 0.377907 0.990291 +vt 0.360465 0.106796 +vt 0.354651 0.456311 +vt 0.325581 0.058252 +vt 0.406977 0.126214 +vt 0.308140 0.184466 +vt 0.354651 0.281553 +vt 0.389535 0.349515 +vt 0.337209 0.349515 +vt 0.406977 0.883495 +vt 0.377907 0.524272 +vt 0.360465 0.864078 +vt 0.389535 0.524272 +vt 0.837209 0.252427 +vt 0.354651 0.572816 +vt 0.406977 0.708738 +vt 0.308140 0.708738 +vt 0.308140 0.242718 +vt 0.360465 0.398058 +vt 0.337209 0.058252 +vt 0.308140 0.941748 +vt 0.389535 0.058252 +vt 0.389535 0.990291 +vt 0.308140 0.300971 +vt 0.308140 0.766990 +vt 0.872093 0.271845 +vt 0.558140 0.446602 +vt 0.558140 0.582524 +vt 0.802326 0.223301 +vt 0.569767 0.514563 +vt 0.593023 0.446602 +vt 0.558140 0.446602 +vt 0.581395 0.514563 +vt 0.569767 0.514563 +vt 0.593023 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.582524 +vt 0.593023 0.582524 +vt 0.877907 0.339806 +vt 0.581395 0.514563 +vt 0.558140 0.446602 +vt 0.558140 0.446602 +vt 0.593023 0.446602 +vt 0.469513 0.889126 +vt 0.478881 0.866040 +vt 0.492825 0.850698 +vt 0.509224 0.845435 +vt 0.539406 0.866694 +vt 0.548594 0.889980 +vt 0.551745 0.917365 +vt 0.539014 0.967766 +vt 0.525070 0.983108 +vt 0.508671 0.988371 +vt 0.478489 0.967112 +vt 0.469302 0.943826 +vt 0.466150 0.916441 +vt 0.673311 0.689481 +vt 0.662275 0.745362 +vt 0.633678 0.779739 +vt 0.598443 0.779481 +vt 0.559285 0.688647 +vt 0.598917 0.598389 +vt 0.662569 0.633441 +vt 0.802326 0.708738 +vt 0.796512 0.747573 +vt 0.825581 0.951456 +vt 0.848837 0.970874 +vt 0.825581 0.951456 +vt 0.802326 0.708738 +vt 0.848837 0.970874 +vt 0.831395 0.728155 +vt 0.848837 0.970874 +vt 0.819767 0.757282 +vt 0.843023 0.718447 +vt 0.837209 0.747573 +vt 0.837209 0.728155 +vt 0.802326 0.708738 +vt 0.837209 0.728155 +vt 0.825581 0.951456 +vt 0.843023 0.718447 +vt 0.837209 0.747573 +vt 0.831395 0.728155 +vt 0.837209 0.747573 +vt 0.831395 0.728155 +vt 0.796512 0.747573 +vt 0.819767 0.757282 +vt 0.796512 0.747573 +vt 0.802326 0.708738 +vt 0.837209 0.747573 +vt 0.843023 0.718447 +vt 0.848837 0.737864 +vt 0.802326 0.708738 +vt 0.819767 0.757282 +vt 0.796512 0.747573 +vt 0.796512 0.747573 +vt 0.825581 0.951456 +vt 0.848837 0.970874 +vt 0.825581 0.951456 +vt 0.843023 0.718447 +vt 0.831395 0.961165 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.831395 0.961165 +vt 0.825581 0.951456 +vt 0.843023 0.951456 +vt 0.848837 0.970874 +vt 0.802326 0.941748 +vt 0.819767 0.757282 +vt 0.825581 0.951456 +vt 0.843023 0.951456 +vt 0.848837 0.970874 +vt 0.546512 0.291262 +vt 0.517442 0.514563 +vt 0.558140 0.203883 +vt 0.604651 0.155340 +vt 0.604651 0.203883 +vt 0.639535 0.242718 +vt 0.627907 0.155340 +vt 0.593023 0.233010 +vt 0.575581 0.223301 +vt 0.627907 0.213592 +vt 0.633721 0.194175 +vt 0.610465 0.262136 +vt 0.569767 0.184466 +vt 0.610465 0.174757 +vt 0.639535 0.184466 +vt 0.639535 0.126214 +vt 0.575581 0.165049 +vt 0.581395 0.262136 +vt 0.633721 0.135922 +vt 0.616279 0.242718 +vt 0.569767 0.213592 +vt 0.622093 0.184466 +vt 0.563953 0.135922 +vt 0.581395 0.155340 +vt 0.645349 0.165049 +vt 0.645349 0.106796 +vt 0.627907 0.271845 +vt 0.610465 0.116505 +vt 0.633721 0.252427 +vt 0.587209 0.135922 +vt 0.587209 0.116505 +vt 0.610465 0.135922 +vt 0.558140 0.155340 +vt 0.598837 0.165049 +vt 0.569767 0.242718 +vt 0.587209 0.194175 +vt 0.622093 0.223301 +vt 0.563953 0.262136 +vt 0.593023 0.184466 +vt 0.645349 0.223301 +vt 0.412791 0.961165 +vt 0.459302 0.990291 +vt 0.412791 0.990291 +vt 0.412791 0.844660 +vt 0.459302 0.873786 +vt 0.412791 0.873786 +vt 0.412791 0.728155 +vt 0.459302 0.757282 +vt 0.412791 0.757282 +vt 0.412791 0.932039 +vt 0.459302 0.961165 +vt 0.412791 0.582524 +vt 0.459302 0.611650 +vt 0.412791 0.611650 +vt 0.459302 0.786408 +vt 0.412791 0.786408 +vt 0.412791 0.902913 +vt 0.459302 0.932039 +vt 0.459302 0.902913 +vt 0.459302 0.815534 +vt 0.412791 0.815534 +vt 0.151163 0.174757 +vt 0.122093 0.233010 +vt 0.122093 0.174757 +vt 0.412791 0.640777 +vt 0.459302 0.669903 +vt 0.412791 0.669903 +vt 0.459302 0.640777 +vt 0.779070 0.485437 +vt 0.790698 0.553398 +vt 0.779070 0.533981 +vt 0.680233 0.815534 +vt 0.720930 0.834951 +vt 0.691860 0.834951 +vt 0.732558 0.902913 +vt 0.732558 0.815534 +vt 0.680233 0.902913 +vt 0.720930 0.883495 +vt 0.691860 0.660194 +vt 0.680233 0.728155 +vt 0.680233 0.640777 +vt 0.680233 0.728155 +vt 0.720930 0.747573 +vt 0.691860 0.747573 +vt 0.732558 0.815534 +vt 0.732558 0.728155 +vt 0.680233 0.815534 +vt 0.720930 0.796117 +vt 0.779070 0.660194 +vt 0.790698 0.728155 +vt 0.779070 0.708738 +vt 0.720930 0.660194 +vt 0.732558 0.728155 +vt 0.732558 0.640777 +vt 0.720930 0.708738 +vt 0.779070 0.796117 +vt 0.790698 0.728155 +vt 0.790698 0.815534 +vt 0.680233 0.553398 +vt 0.720930 0.572816 +vt 0.691860 0.572816 +vt 0.732558 0.553398 +vt 0.720930 0.621359 +vt 0.680233 0.640777 +vt 0.732349 0.640524 +vt 0.790698 0.466019 +vt 0.779070 0.398058 +vt 0.790698 0.378641 +vt 0.680233 0.466019 +vt 0.720930 0.485437 +vt 0.691860 0.485437 +vt 0.732558 0.466019 +vt 0.720930 0.533981 +vt 0.680233 0.553398 +vt 0.732558 0.553398 +vt 0.779070 0.135922 +vt 0.790698 0.203883 +vt 0.779070 0.184466 +vt 0.680233 0.378641 +vt 0.720930 0.398058 +vt 0.691860 0.398058 +vt 0.732558 0.466019 +vt 0.732558 0.378641 +vt 0.680233 0.466019 +vt 0.720930 0.446602 +vt 0.779070 0.621359 +vt 0.790698 0.553398 +vt 0.790698 0.640777 +vt 0.680233 0.291262 +vt 0.720376 0.311760 +vt 0.691860 0.310680 +vt 0.732558 0.378641 +vt 0.732558 0.291262 +vt 0.680233 0.378641 +vt 0.720930 0.359223 +vt 0.779070 0.310680 +vt 0.790698 0.378641 +vt 0.779070 0.359223 +vt 0.680233 0.203883 +vt 0.720930 0.223301 +vt 0.691860 0.223301 +vt 0.732558 0.291262 +vt 0.732558 0.203883 +vt 0.680233 0.291262 +vt 0.720930 0.271845 +vt 0.691860 0.796117 +vt 0.680233 0.116505 +vt 0.720930 0.135922 +vt 0.691860 0.135922 +vt 0.732558 0.203883 +vt 0.732558 0.116505 +vt 0.680233 0.203883 +vt 0.720930 0.184466 +vt 0.779070 0.922330 +vt 0.790698 0.990291 +vt 0.779070 0.970874 +vt 0.680233 0.902913 +vt 0.720930 0.922330 +vt 0.691860 0.922330 +vt 0.732558 0.902913 +vt 0.720930 0.970874 +vt 0.680233 0.990291 +vt 0.732558 0.990291 +vt 0.691860 0.621359 +vt 0.063954 0.281553 +vt 0.034884 0.252427 +vt 0.063954 0.242718 +vt 0.790698 0.815534 +vt 0.750000 0.834951 +vt 0.738372 0.815534 +vt 0.738372 0.902913 +vt 0.750000 0.883495 +vt 0.790698 0.902913 +vt 0.691860 0.883495 +vt 0.750000 0.747573 +vt 0.738372 0.728155 +vt 0.738372 0.815534 +vt 0.750000 0.796117 +vt 0.691860 0.271845 +vt 0.790698 0.640777 +vt 0.750000 0.660194 +vt 0.738372 0.640777 +vt 0.738372 0.728155 +vt 0.750000 0.708738 +vt 0.779070 0.223301 +vt 0.790698 0.291262 +vt 0.779070 0.271845 +vt 0.750000 0.572816 +vt 0.738372 0.553398 +vt 0.750000 0.621359 +vt 0.738581 0.640524 +vt 0.779070 0.834951 +vt 0.779070 0.883495 +vt 0.790698 0.466019 +vt 0.750000 0.485437 +vt 0.738372 0.466019 +vt 0.750000 0.533981 +vt 0.738372 0.553398 +vt 0.691860 0.533981 +vt 0.750000 0.398058 +vt 0.738372 0.378641 +vt 0.738372 0.466019 +vt 0.750000 0.446602 +vt 0.790698 0.291262 +vt 0.750554 0.311760 +vt 0.738372 0.291262 +vt 0.750000 0.359223 +vt 0.738372 0.378641 +vt 0.790698 0.203883 +vt 0.750000 0.223301 +vt 0.738372 0.203883 +vt 0.738372 0.291262 +vt 0.750000 0.271845 +vt 0.790698 0.116505 +vt 0.750000 0.135922 +vt 0.738372 0.116505 +vt 0.750000 0.184466 +vt 0.738372 0.203883 +vt 0.790698 0.902913 +vt 0.750000 0.922330 +vt 0.738372 0.902913 +vt 0.738372 0.990291 +vt 0.750000 0.970874 +vt 0.412791 0.524272 +vt 0.459302 0.553398 +vt 0.412791 0.553398 +vt 0.459302 0.844660 +vt 0.412791 0.699029 +vt 0.459302 0.728155 +vt 0.459302 0.699029 +vt 0.459302 0.582524 +vt 0.267442 0.951456 +vt 0.238372 0.980583 +vt 0.238372 0.941748 +vt 0.267442 0.485437 +vt 0.238372 0.514563 +vt 0.238372 0.475728 +vt 0.180233 0.524272 +vt 0.151163 0.582524 +vt 0.151163 0.524272 +vt 0.005814 0.553398 +vt 0.034884 0.543689 +vt 0.034884 0.563107 +vt 0.122093 0.116505 +vt 0.093023 0.169903 +vt 0.093023 0.121359 +vt 0.122093 0.699029 +vt 0.093023 0.752427 +vt 0.093023 0.703884 +vt 0.267442 0.543689 +vt 0.296512 0.553398 +vt 0.267442 0.563107 +vt 0.063954 0.708738 +vt 0.151163 0.466019 +vt 0.238372 0.417476 +vt 0.267442 0.446602 +vt 0.238372 0.456311 +vt 0.063954 0.165049 +vt 0.034884 0.135922 +vt 0.063954 0.126214 +vt 0.151163 0.932039 +vt 0.122093 0.990291 +vt 0.122093 0.932039 +vt 0.005814 0.611650 +vt 0.034884 0.601942 +vt 0.034884 0.621359 +vt 0.122093 0.640777 +vt 0.093023 0.694175 +vt 0.093023 0.645631 +vt 0.209302 0.228155 +vt 0.180233 0.174757 +vt 0.209302 0.179612 +vt 0.267442 0.601942 +vt 0.296512 0.611651 +vt 0.267442 0.621359 +vt 0.238372 0.592233 +vt 0.209302 0.635922 +vt 0.209302 0.587379 +vt 0.122093 0.582524 +vt 0.180233 0.407767 +vt 0.151163 0.349515 +vt 0.180233 0.349515 +vt 0.267442 0.213592 +vt 0.238372 0.184466 +vt 0.267442 0.194175 +vt 0.267442 0.155340 +vt 0.238372 0.126214 +vt 0.267442 0.135922 +vt 0.151163 0.640777 +vt 0.180233 0.699029 +vt 0.151163 0.699029 +vt 0.238372 0.223301 +vt 0.005814 0.669903 +vt 0.034884 0.660194 +vt 0.034884 0.679612 +vt 0.093023 0.228155 +vt 0.093023 0.179612 +vt 0.180233 0.640777 +vt 0.180233 0.582524 +vt 0.267442 0.660194 +vt 0.296512 0.669903 +vt 0.267442 0.679612 +vt 0.063954 0.223301 +vt 0.063954 0.184466 +vt 0.267442 0.718447 +vt 0.296512 0.728155 +vt 0.267442 0.737864 +vt 0.093023 0.762136 +vt 0.063954 0.805825 +vt 0.063954 0.766990 +vt 0.151163 0.116505 +vt 0.267442 0.252427 +vt 0.238372 0.281553 +vt 0.238372 0.242718 +vt 0.034884 0.796116 +vt 0.034884 0.776699 +vt 0.180233 0.233010 +vt 0.151163 0.291262 +vt 0.151163 0.233010 +vt 0.093023 0.529126 +vt 0.063954 0.572816 +vt 0.063954 0.533981 +vt 0.005814 0.728155 +vt 0.034884 0.718447 +vt 0.034884 0.737864 +vt 0.093023 0.286408 +vt 0.093023 0.237864 +vt 0.209302 0.286408 +vt 0.209302 0.237864 +vt 0.122093 0.058252 +vt 0.093023 0.111651 +vt 0.093023 0.063107 +vt 0.093023 0.878641 +vt 0.093023 0.927184 +vt 0.267442 0.776699 +vt 0.296512 0.786408 +vt 0.267442 0.796117 +vt 0.122093 0.291262 +vt 0.238372 0.747573 +vt 0.238372 0.708738 +vt 0.063954 0.980583 +vt 0.034884 0.951456 +vt 0.063954 0.941748 +vt 0.180233 0.757282 +vt 0.151163 0.815534 +vt 0.151163 0.757282 +vt 0.209302 0.752427 +vt 0.209302 0.703884 +vt 0.005814 0.786408 +vt 0.063954 0.883495 +vt 0.005814 0.844660 +vt 0.034884 0.834951 +vt 0.034884 0.854369 +vt 0.122093 0.407767 +vt 0.093023 0.461165 +vt 0.093023 0.412621 +vt 0.209302 0.461165 +vt 0.209302 0.412621 +vt 0.267442 0.834952 +vt 0.296512 0.844660 +vt 0.267442 0.854369 +vt 0.238372 0.864078 +vt 0.209302 0.820388 +vt 0.238372 0.825243 +vt 0.122093 0.466019 +vt 0.180233 0.873786 +vt 0.151163 0.873786 +vt 0.180233 0.932039 +vt 0.093023 0.470874 +vt 0.063954 0.514563 +vt 0.063954 0.475728 +vt 0.005814 0.902913 +vt 0.034884 0.893204 +vt 0.034884 0.912621 +vt 0.122093 0.524272 +vt 0.093023 0.519417 +vt 0.093023 0.820388 +vt 0.063954 0.864078 +vt 0.063954 0.825243 +vt 0.267442 0.893204 +vt 0.296512 0.902913 +vt 0.267442 0.912621 +vt 0.063954 0.689320 +vt 0.063954 0.650485 +vt 0.063954 0.631068 +vt 0.063954 0.592233 +vt 0.238372 0.883495 +vt 0.238372 0.922330 +vt 0.238372 0.067961 +vt 0.267442 0.097087 +vt 0.238372 0.106796 +vt 0.063954 0.067961 +vt 0.034884 0.097087 +vt 0.034884 0.077670 +vt 0.180233 0.990291 +vt 0.209302 0.063107 +vt 0.209302 0.111651 +vt 0.005814 0.961165 +vt 0.034884 0.970874 +vt 0.180233 0.116505 +vt 0.180233 0.058252 +vt 0.209302 0.121359 +vt 0.296512 0.961165 +vt 0.267442 0.970874 +vt 0.063953 0.106796 +vt 0.151163 0.058252 +vt 0.180233 0.815534 +vt 0.238372 0.766990 +vt 0.034884 0.485437 +vt 0.005814 0.087379 +vt 0.209302 0.694175 +vt 0.209302 0.645631 +vt 0.209302 0.985437 +vt 0.209302 0.936893 +vt 0.267442 0.077670 +vt 0.296512 0.087379 +vt 0.122093 0.349515 +vt 0.093023 0.402913 +vt 0.093023 0.354369 +vt 0.296512 0.145631 +vt 0.238372 0.300971 +vt 0.209302 0.344660 +vt 0.209302 0.296116 +vt 0.122093 0.757282 +vt 0.122093 0.815534 +vt 0.063954 0.417476 +vt 0.034884 0.446602 +vt 0.034884 0.427184 +vt 0.238372 0.359223 +vt 0.267442 0.388349 +vt 0.238372 0.398058 +vt 0.063954 0.359223 +vt 0.063954 0.398058 +vt 0.005814 0.145631 +vt 0.034884 0.155340 +vt 0.093023 0.985437 +vt 0.093023 0.936893 +vt 0.209302 0.927184 +vt 0.093023 0.587379 +vt 0.093023 0.635922 +vt 0.296512 0.203884 +vt 0.238372 0.689320 +vt 0.122093 0.873786 +vt 0.005814 0.203883 +vt 0.034884 0.194175 +vt 0.034884 0.213592 +vt 0.209302 0.762136 +vt 0.238372 0.805825 +vt 0.209302 0.810680 +vt 0.005814 0.262136 +vt 0.034884 0.271845 +vt 0.093023 0.577670 +vt 0.209302 0.529126 +vt 0.296512 0.262136 +vt 0.267442 0.271845 +vt 0.238372 0.572816 +vt 0.238372 0.533981 +vt 0.063954 0.747573 +vt 0.267442 0.330097 +vt 0.267442 0.310680 +vt 0.063954 0.300971 +vt 0.093023 0.344660 +vt 0.063954 0.339806 +vt 0.005814 0.320388 +vt 0.034884 0.310680 +vt 0.034884 0.330097 +vt 0.093023 0.810680 +vt 0.296512 0.320388 +vt 0.209302 0.878641 +vt 0.238372 0.631068 +vt 0.034884 0.368932 +vt 0.063954 0.456311 +vt 0.005814 0.378641 +vt 0.034884 0.388349 +vt 0.209302 0.354369 +vt 0.209302 0.470874 +vt 0.180233 0.466019 +vt 0.267442 0.368932 +vt 0.296512 0.378641 +vt 0.209302 0.402913 +vt 0.267442 0.427184 +vt 0.296512 0.436893 +vt 0.151163 0.407767 +vt 0.238372 0.650485 +vt 0.005814 0.436893 +vt 0.180233 0.291262 +vt 0.296512 0.495146 +vt 0.267442 0.504854 +vt 0.209302 0.169903 +vt 0.005814 0.495146 +vt 0.034884 0.504854 +vt 0.093023 0.296116 +vt 0.691860 0.708738 +vt 0.691860 0.446602 +vt 0.691860 0.359223 +vt 0.691860 0.184466 +vt 0.691860 0.970874 +vt 0.779070 0.747573 +vt 0.779070 0.572816 +vt 0.779070 0.446602 +vt 0.459302 0.524272 +vt 0.151163 0.990291 +vt 0.238372 0.165049 +vt 0.063954 0.922330 +vt 0.209302 0.868932 +vt 0.093023 0.868932 +vt 0.238372 0.339806 +vt 0.209302 0.577670 +vt 0.209302 0.519417 +vn 0.7071 0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9848 -0.1736 -0.0000 +vn -0.9848 0.1736 0.0000 +vn 0.1736 -0.9848 -0.0000 +vn 0.9848 -0.1736 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.1736 -0.9848 0.0000 +vn 0.9848 0.1736 0.0000 +vn 0.1736 0.9848 0.0000 +vn -0.1736 0.9848 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.2575 -0.1067 -0.9604 +vn 0.9239 -0.3827 0.0000 +vn -0.1066 -0.2575 0.9604 +vn 0.6725 0.2185 -0.7071 +vn 0.3675 0.8873 -0.2787 +vn -0.3827 0.9239 0.0000 +vn 0.1067 -0.2575 0.9604 +vn 0.1066 -0.2575 0.9604 +vn -0.9239 0.3827 0.0000 +vn -0.1067 -0.2575 0.9604 +vn 0.2575 -0.1066 -0.9604 +vn -0.9239 -0.3827 -0.0000 +vn -0.3675 0.8873 -0.2787 +vn 0.6725 0.2185 0.7071 +vn -0.1067 0.2575 -0.9604 +vn -0.1066 0.2575 0.9604 +vn 0.3675 0.8873 0.2787 +vn -0.1067 0.2575 0.9604 +vn -0.8090 0.5878 -0.0000 +vn -0.2575 -0.1067 -0.9604 +vn -0.1067 -0.2575 -0.9604 +vn 0.1066 0.2575 0.9604 +vn -0.3675 0.8873 0.2787 +vn 0.1067 0.2575 0.9604 +vn 0.1066 -0.2575 -0.9604 +vn -0.1066 -0.2575 -0.9604 +vn 0.3675 -0.8873 -0.2787 +vn 0.2575 0.1066 -0.9604 +vn -0.3675 -0.8873 -0.2787 +vn -0.4156 -0.5721 0.7071 +vn 0.1067 -0.2575 -0.9604 +vn 0.3827 -0.9239 -0.0000 +vn 0.3675 -0.8873 0.2787 +vn 0.1067 0.2575 -0.9604 +vn -0.8090 -0.5878 0.0000 +vn 0.1066 0.2575 -0.9604 +vn -0.3675 -0.8873 0.2787 +vn -0.1066 0.2575 -0.9604 +vn -0.4156 -0.5721 -0.7071 +vn 0.4156 0.5721 0.7071 +vn -0.3090 -0.9511 -0.0000 +vn 0.8090 -0.5878 0.0000 +vn 0.3090 0.9511 -0.0000 +vn 0.6725 -0.2185 0.7071 +vn -0.3090 0.9511 -0.0000 +vn -0.6725 0.2185 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.3090 -0.9511 0.0000 +vn -0.2575 -0.1066 -0.9604 +vn -0.6725 0.2185 0.7071 +vn -0.6725 -0.2185 0.7071 +vn 0.4156 -0.5721 -0.7071 +vn -0.4156 0.5721 0.7071 +vn 0.8090 0.5878 0.0000 +vn 0.4156 0.5721 -0.7071 +vn 0.6725 -0.2185 -0.7071 +vn -0.3827 -0.9239 -0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.6725 -0.2185 -0.7071 +vn -0.4156 0.5721 -0.7071 +vn 0.4156 -0.5721 0.7071 +vn -0.4156 0.5720 -0.7071 +vn 0.3827 0.9239 0.0000 +vn 0.8873 -0.3675 -0.2787 +vn -0.2575 0.1067 0.9604 +vn 0.2575 0.1067 -0.9604 +vn -0.2575 -0.1067 0.9604 +vn 0.8873 0.3675 -0.2787 +vn -0.2575 -0.1066 0.9604 +vn 0.2575 0.1067 0.9604 +vn 0.2575 -0.1067 0.9604 +vn -0.2575 0.1066 -0.9604 +vn 0.8873 -0.3675 0.2787 +vn -0.2575 0.1067 -0.9604 +vn 0.2575 -0.1066 0.9604 +vn 0.8873 0.3675 0.2787 +vn 0.2575 0.1066 0.9604 +vn -0.8873 -0.3675 -0.2787 +vn -0.8873 0.3675 -0.2787 +vn -0.8873 -0.3675 0.2787 +vn -0.2575 0.1066 0.9604 +vn -0.8873 0.3675 0.2787 +vn -0.4156 0.5720 0.7071 +vn -0.9848 0.1737 0.0000 +vn -0.6688 -0.6688 0.3245 +vn -0.6325 -0.6325 0.4472 +vn 0.6325 -0.6325 0.4472 +vn 0.6688 -0.6688 0.3245 +vn -0.6688 -0.6688 -0.3245 +vn 0.6325 -0.6325 -0.4472 +vn 0.6688 -0.6688 -0.3245 +vn -0.8803 -0.3646 -0.3034 +vn -0.6738 -0.6738 -0.3034 +vn -0.6325 -0.6325 -0.4472 +vn 0.0000 -0.8348 0.5506 +vn -0.2539 -0.7815 0.5698 +vn 0.2539 0.7815 -0.5698 +vn 0.4907 0.6754 -0.5506 +vn 0.6648 0.4830 -0.5698 +vn 0.7939 -0.2580 -0.5506 +vn 0.6648 -0.4830 -0.5698 +vn 0.8218 -0.0000 -0.5698 +vn 0.7939 0.2580 -0.5506 +vn 0.7939 -0.2580 0.5506 +vn 0.6648 -0.4830 0.5698 +vn 0.7939 0.2580 0.5506 +vn 0.6648 0.4830 0.5698 +vn 0.8218 0.0000 0.5698 +vn 0.4907 -0.6754 -0.5506 +vn 0.2539 -0.7815 -0.5698 +vn -0.6648 -0.4830 0.5698 +vn -0.4907 -0.6754 0.5506 +vn -0.0000 -0.8348 -0.5506 +vn -0.2539 -0.7815 -0.5698 +vn -0.4907 0.6754 0.5506 +vn -0.2539 0.7815 0.5698 +vn -0.4907 -0.6754 -0.5506 +vn -0.6648 -0.4830 -0.5698 +vn 0.4907 -0.6754 0.5506 +vn 0.2539 -0.7815 0.5698 +vn -0.7939 -0.2580 -0.5506 +vn -0.8218 -0.0000 -0.5698 +vn -0.7939 -0.2580 0.5506 +vn -0.8218 0.0000 0.5698 +vn -0.7939 0.2580 -0.5506 +vn -0.6648 0.4830 -0.5698 +vn -0.4907 0.6754 -0.5506 +vn -0.2539 0.7815 -0.5698 +vn 0.0000 0.8348 0.5506 +vn 0.2539 0.7815 0.5698 +vn 0.0000 0.8348 -0.5506 +vn -0.6003 0.0000 -0.7998 +vn -0.3016 -0.1249 -0.9452 +vn -0.5546 -0.2297 -0.7998 +vn 0.4907 0.6754 0.5506 +vn -0.7939 0.2580 0.5506 +vn -0.6648 0.4830 0.5698 +vn 0.6325 0.6325 0.4472 +vn 0.6688 0.6688 0.3245 +vn -0.6325 0.6325 -0.4472 +vn -0.6688 0.6688 -0.3245 +vn -0.6325 0.6325 0.4472 +vn -0.6688 0.6688 0.3245 +vn 0.6688 0.6688 -0.3245 +vn 0.6325 0.6325 -0.4472 +vn 0.1249 -0.3016 0.9452 +vn -0.0000 -0.6003 0.7998 +vn 0.2297 -0.5546 0.7998 +vn -0.1249 0.3016 0.9452 +vn -0.0000 0.6003 0.7998 +vn -0.2297 0.5546 0.7998 +vn -0.0000 0.9528 0.3034 +vn 0.0000 0.3265 -0.9452 +vn 0.1249 0.3016 -0.9452 +vn -0.3646 -0.8803 -0.3034 +vn -0.5767 -0.5767 -0.5787 +vn -0.3121 -0.7535 -0.5787 +vn 0.8803 0.3646 -0.3034 +vn 0.8155 -0.0000 -0.5787 +vn 0.7535 0.3121 -0.5787 +vn -0.0000 0.3265 0.9452 +vn 0.1249 0.3016 0.9452 +vn 0.5546 0.2297 -0.7998 +vn -0.4245 0.4245 0.7998 +vn -0.4245 -0.4245 -0.7998 +vn -0.1249 -0.3016 -0.9452 +vn -0.2297 -0.5546 -0.7998 +vn 0.0000 -0.9528 -0.3034 +vn 0.3646 -0.8803 -0.3034 +vn 0.2309 0.2309 -0.9452 +vn 0.6738 0.6738 -0.3034 +vn 0.5767 0.5767 -0.5787 +vn -0.7535 -0.3121 0.5787 +vn -0.6738 -0.6738 0.3034 +vn -0.5767 -0.5767 0.5787 +vn 0.2309 0.2309 0.9452 +vn 0.2297 0.5546 0.7998 +vn 0.5767 0.5767 0.5787 +vn 0.3121 0.7535 0.5787 +vn 0.3646 0.8803 -0.3034 +vn -0.6738 0.6738 0.3034 +vn -0.8803 0.3646 0.3034 +vn -0.3016 -0.1249 0.9452 +vn -0.4245 -0.4245 0.7998 +vn -0.2309 -0.2309 0.9452 +vn -0.2297 -0.5546 0.7998 +vn -0.1249 -0.3016 0.9452 +vn 0.8803 0.3646 0.3034 +vn -0.5546 -0.2297 0.7998 +vn 0.3016 0.1249 -0.9452 +vn -0.7535 -0.3121 -0.5787 +vn 0.6738 0.6738 0.3034 +vn 0.3646 0.8803 0.3034 +vn 0.3016 0.1249 0.9452 +vn 0.3265 -0.0000 0.9452 +vn 0.5546 -0.2297 -0.7998 +vn 0.6003 -0.0000 -0.7998 +vn -0.6003 0.0000 0.7998 +vn 0.3016 -0.1249 -0.9452 +vn 0.3265 -0.0000 -0.9452 +vn -0.8803 -0.3646 0.3034 +vn -0.0000 0.8155 -0.5787 +vn 0.2297 0.5546 -0.7998 +vn -0.0000 0.6003 -0.7998 +vn -0.8155 0.0000 -0.5787 +vn -0.8155 0.0000 0.5787 +vn -0.0000 -0.8155 -0.5787 +vn 0.5767 -0.5767 -0.5787 +vn 0.3121 -0.7535 -0.5787 +vn 0.3016 -0.1249 0.9452 +vn -0.9528 -0.0000 -0.3034 +vn 0.6003 -0.0000 0.7998 +vn 0.5546 0.2297 0.7998 +vn -0.0000 -0.6003 -0.7998 +vn 0.1249 -0.3016 -0.9452 +vn 0.2297 -0.5546 -0.7998 +vn 0.9528 -0.0000 0.3034 +vn 0.8155 -0.0000 0.5787 +vn 0.7535 0.3121 0.5787 +vn 0.4245 -0.4245 -0.7998 +vn 0.2309 -0.2309 -0.9452 +vn -0.6738 0.6738 -0.3034 +vn -0.3121 0.7535 -0.5787 +vn -0.5767 0.5767 -0.5787 +vn -0.3121 0.7535 0.5787 +vn -0.5767 0.5767 0.5787 +vn 0.2309 -0.2309 0.9452 +vn 0.4245 -0.4245 0.7998 +vn 0.7535 -0.3121 0.5787 +vn 0.5546 -0.2297 0.7998 +vn -0.3646 0.8803 -0.3034 +vn 0.6738 -0.6738 0.3034 +vn 0.3646 -0.8803 0.3034 +vn -0.2297 0.5546 -0.7998 +vn -0.0000 0.9528 -0.3034 +vn 0.7535 -0.3121 -0.5787 +vn 0.4245 0.4245 -0.7998 +vn 0.0000 -0.3265 -0.9452 +vn 0.0000 -0.9528 0.3034 +vn -0.0000 -0.8155 0.5787 +vn -0.3121 -0.7535 0.5787 +vn -0.3646 -0.8803 0.3034 +vn 0.0000 -0.3265 0.9452 +vn 0.8803 -0.3646 0.3034 +vn -0.1249 0.3016 -0.9452 +vn 0.3121 -0.7535 0.5787 +vn -0.8803 0.3646 -0.3034 +vn -0.7535 0.3121 -0.5787 +vn -0.7535 0.3121 0.5787 +vn 0.9528 0.0000 -0.3034 +vn 0.8803 -0.3646 -0.3034 +vn -0.4245 0.4245 -0.7998 +vn -0.2309 0.2309 -0.9452 +vn -0.5546 0.2297 0.7998 +vn -0.2309 0.2309 0.9452 +vn -0.5546 0.2297 -0.7998 +vn -0.2309 -0.2309 -0.9452 +vn 0.3121 0.7535 -0.5787 +vn 0.6738 -0.6738 -0.3034 +vn -0.3265 -0.0000 -0.9452 +vn -0.0000 0.8155 0.5787 +vn -0.3265 -0.0000 0.9452 +vn -0.3016 0.1249 0.9452 +vn -0.3016 0.1249 -0.9452 +vn 0.5767 -0.5767 0.5787 +vn 0.4245 0.4245 0.7998 +vn -0.3646 0.8803 0.3034 +vn -0.9528 0.0000 0.3034 +s off +f 949/1141/825 946/1142/825 947/1143/825 +f 967/1144/826 962/1145/826 960/1146/826 +f 1030/1147/827 1025/1148/827 1028/1149/827 +f 961/1150/828 964/1151/828 966/1152/828 +f 1031/1153/829 1028/1149/829 1029/1154/829 +f 920/1155/830 925/1156/830 923/1157/830 +f 1516/1158/831 944/1159/831 941/1160/831 +f 1027/1161/832 1026/1162/832 1024/1163/832 +f 1331/1164/825 1332/1165/825 1329/1166/825 +f 1012/1167/827 1010/1168/827 1008/1169/827 +f 923/1170/826 919/1171/826 922/1172/826 +f 929/1173/825 926/1174/825 932/1175/825 +f 1013/1176/832 1008/1169/832 1010/1177/832 +f 924/1178/833 913/1179/833 915/1180/833 +f 918/1181/831 914/1182/831 916/1183/831 +f 999/1184/829 995/1185/829 997/1186/829 +f 991/1187/834 987/1188/834 989/1189/834 +f 1004/1190/835 1002/1191/835 1000/1192/835 +f 947/1143/831 946/1193/831 944/1159/831 +f 1516/1158/828 949/1141/828 947/1143/828 +f 948/1194/830 940/1195/830 934/1196/830 +f 971/1197/835 970/1198/835 968/1199/835 +f 943/1200/833 934/1201/833 941/1202/833 +f 1022/1203/836 1017/1204/836 1020/1205/836 +f 1007/1206/837 1003/1207/837 1005/1208/837 +f 1003/1207/830 1004/1190/830 1000/1192/830 +f 941/1209/831 945/1210/831 943/1200/831 +f 985/1211/830 989/1212/830 986/1213/830 +f 958/1214/833 954/1215/833 952/1216/833 +f 983/1217/830 978/1218/830 982/1219/830 +f 919/1171/838 914/1182/838 917/1220/838 +f 1029/1154/830 1025/1148/830 1027/1161/830 +f 951/1221/826 944/1222/826 946/1142/826 +f 1024/1223/825 1029/1154/825 1027/1161/825 +f 922/1172/826 917/1220/826 918/1224/826 +f 1016/1225/831 1022/1226/831 1023/1227/831 +f 989/1228/836 984/1229/836 986/1230/836 +f 934/1231/828 939/1232/828 942/1233/828 +f 994/1234/830 999/1184/830 997/1186/830 +f 1014/1235/830 1008/1169/830 1011/1236/830 +f 974/1237/839 969/1238/839 972/1239/839 +f 976/1240/829 981/1241/829 979/1242/829 +f 1019/1243/830 1020/1205/830 1017/1204/830 +f 968/1199/830 974/1244/830 975/1245/830 +f 1005/1246/839 1000/1192/839 1002/1247/839 +f 981/1241/831 977/1248/831 979/1242/831 +f 931/1249/833 913/1250/833 920/1251/833 +f 998/1252/831 992/1253/831 995/1185/831 +f 987/1188/831 988/1254/831 984/1229/831 +f 971/1197/831 972/1239/831 969/1238/831 +f 1023/1255/834 1020/1205/834 1021/1256/834 +f 937/1257/833 935/1258/833 933/1259/833 +f 950/1260/833 934/1261/833 940/1262/833 +f 1031/1153/831 1026/1263/831 1030/1264/831 +f 997/1265/827 992/1253/827 994/1266/827 +f 1019/1243/840 1018/1267/840 1016/1225/840 +f 944/1268/826 938/1269/826 945/1210/826 +f 1001/1270/841 1006/1271/841 1007/1272/841 +f 988/1254/840 986/1213/840 984/1229/840 +f 942/1273/826 936/1274/826 938/1269/826 +f 945/1210/838 935/1258/838 943/1200/838 +f 963/1275/838 960/1146/838 962/1145/838 +f 952/1216/828 955/1276/828 958/1214/828 +f 1016/1277/842 1021/1256/842 1019/1243/842 +f 993/1278/825 998/1252/825 999/1279/825 +f 1516/1158/829 940/1262/829 948/1194/829 +f 939/1232/830 933/1259/830 936/1274/830 +f 959/1280/826 957/1281/826 955/1276/826 +f 932/1175/826 923/1282/826 922/1283/826 +f 975/1284/837 972/1239/837 973/1285/837 +f 938/1269/838 933/1259/838 935/1258/838 +f 966/1152/833 965/1286/833 963/1287/833 +f 925/1156/838 915/1180/838 919/1171/838 +f 985/1288/842 990/1289/842 991/1290/842 +f 996/1291/832 994/1292/832 992/1253/832 +f 913/1293/828 918/1181/828 916/1183/828 +f 1009/1294/829 1014/1235/829 1015/1295/829 +f 1241/1296/831 1277/1297/831 1275/1298/831 +f 1238/1299/830 1270/1300/830 1271/1301/830 +f 1267/1302/830 1270/1303/830 1240/1304/830 +f 1244/1305/830 1271/1306/830 1274/1307/830 +f 1320/1308/825 1329/1166/825 1332/1165/825 +f 1209/1309/831 1178/1310/831 1180/1311/831 +f 1215/1312/830 1181/1313/830 1210/1314/830 +f 1284/1315/830 1249/1316/830 1282/1317/830 +f 1251/1318/831 1287/1319/831 1285/1320/831 +f 1250/1321/831 1279/1322/831 1248/1323/831 +f 1230/1324/830 1194/1325/830 1225/1326/830 +f 1249/1316/830 1280/1327/830 1282/1328/830 +f 1252/1329/831 1285/1330/831 1283/1331/831 +f 1206/1332/830 1179/1333/830 1177/1334/830 +f 1223/1335/830 1187/1336/830 1219/1337/830 +f 1223/1338/830 1192/1339/830 1190/1340/830 +f 1269/1341/831 1299/1342/831 1268/1343/831 +f 1255/1344/830 1286/1345/830 1288/1346/830 +f 1290/1347/830 1255/1344/830 1288/1348/830 +f 1224/1349/831 1191/1350/831 1193/1351/831 +f 1265/1352/830 1296/1353/830 1298/1354/830 +f 1257/1355/830 1292/1356/830 1259/1357/830 +f 1233/1358/830 1198/1359/830 1229/1360/830 +f 1195/1361/831 1228/1362/831 1227/1363/831 +f 1264/1364/831 1293/1365/831 1262/1366/831 +f 1197/1367/831 1231/1368/831 1228/1369/831 +f 1297/1370/831 1268/1343/831 1299/1371/831 +f 1218/1372/831 1186/1373/831 1188/1374/831 +f 1177/1334/830 1207/1375/830 1206/1376/830 +f 1267/1302/830 1298/1377/830 1300/1378/830 +f 1214/1379/830 1217/1380/830 1185/1381/830 +f 1203/1382/831 1237/1383/831 1234/1384/831 +f 1015/1385/825 1011/1236/825 1013/1386/825 +f 982/1387/832 977/1248/832 980/1388/832 +f 983/1217/825 980/1388/825 981/1241/825 +f 979/1242/827 978/1389/827 976/1390/827 +f 930/1391/829 921/1392/829 931/1249/829 +f 956/1393/838 953/1394/838 957/1395/838 +f 930/1391/828 929/1173/828 927/1396/828 +f 1242/1397/831 1273/1398/831 1239/1399/831 +f 1237/1400/831 1175/1401/831 1205/1402/831 +f 1272/1403/831 1241/1296/831 1275/1404/831 +f 1205/1405/831 1178/1310/831 1208/1406/831 +f 1210/1407/830 1179/1333/830 1211/1408/830 +f 1276/1409/830 1244/1305/830 1274/1410/830 +f 1212/1411/831 1180/1311/831 1182/1412/831 +f 1243/1413/830 1278/1414/830 1245/1415/830 +f 1185/1381/830 1215/1416/830 1214/1417/830 +f 1259/1357/830 1294/1418/830 1261/1419/830 +f 1213/1420/831 1186/1373/831 1216/1421/831 +f 1233/1422/830 1202/1423/830 1200/1424/830 +f 1258/1425/831 1291/1426/831 1289/1427/831 +f 1260/1428/831 1293/1429/831 1291/1430/831 +f 1287/1431/831 1258/1425/831 1289/1432/831 +f 1254/1433/830 1286/1434/830 1253/1435/830 +f 1221/1436/831 1191/1350/831 1222/1437/831 +f 1188/1374/831 1221/1438/831 1218/1439/831 +f 1219/1440/830 1217/1380/830 1220/1441/830 +f 1225/1442/830 1192/1339/830 1226/1443/830 +f 1281/1444/831 1252/1329/831 1283/1445/831 +f 1193/1351/831 1227/1446/831 1224/1447/831 +f 1198/1359/830 1230/1448/830 1229/1449/830 +f 1261/1419/830 1296/1450/830 1263/1451/830 +f 1264/1364/831 1297/1452/831 1295/1453/831 +f 1212/1454/831 1184/1455/831 1213/1456/831 +f 1231/1457/831 1201/1458/831 1232/1459/831 +f 1245/1415/830 1280/1460/830 1247/1461/830 +f 1232/1462/831 1203/1382/831 1234/1463/831 +f 1204/1464/830 1236/1465/830 1235/1466/830 +f 1269/1341/831 1273/1467/831 1301/1468/831 +f 1207/1469/830 1204/1464/830 1235/1470/830 +f 1320/1308/825 1321/1471/825 1322/1472/825 +f 1001/1473/831 1005/1474/831 1002/1191/831 +f 1367/1475/829 1369/1476/829 1355/1477/829 +f 1346/1478/825 1347/1479/825 1342/1480/825 +f 1010/1481/831 1015/1385/831 1013/1386/831 +f 1325/1482/827 1324/1483/827 1333/1484/827 +f 1357/1485/829 1358/1486/829 1359/1487/829 +f 1334/1488/825 1335/1489/825 1321/1471/825 +f 1323/1490/827 1333/1484/827 1324/1483/827 +f 1310/1491/829 1302/1492/829 1315/1493/829 +f 1307/1494/832 1308/1495/832 1309/1496/832 +f 1359/1487/829 1361/1497/829 1364/1498/829 +f 1304/1499/829 1306/1500/829 1319/1501/829 +f 1325/1482/827 1326/1502/827 1327/1503/827 +f 1302/1492/829 1303/1504/829 1304/1499/829 +f 1315/1493/829 1316/1505/829 1310/1491/829 +f 1330/1506/827 1328/1507/827 1326/1502/827 +f 1317/1508/832 1307/1494/832 1318/1509/832 +f 1341/1510/825 1340/1511/825 1349/1512/825 +f 1344/1513/827 1348/1514/827 1345/1515/827 +f 1354/1516/832 1356/1517/832 1368/1518/832 +f 1336/1519/827 1337/1520/827 1338/1521/827 +f 1341/1510/825 1342/1480/825 1343/1522/825 +f 1309/1496/832 1311/1523/832 1314/1524/832 +f 1365/1525/832 1360/1526/832 1366/1527/832 +f 1336/1519/827 1345/1515/827 1348/1514/827 +f 968/1528/841 973/1285/841 971/1197/841 +f 1366/1527/832 1352/1529/832 1365/1525/832 +f 1351/1530/825 1349/1512/825 1340/1511/825 +f 923/1531/830 930/1391/830 920/1532/830 +f 1352/1529/832 1353/1533/832 1354/1516/832 +f 1355/1477/829 1357/1485/829 1367/1475/829 +f 1318/1509/832 1305/1534/832 1317/1508/832 +f 1350/1535/827 1339/1536/827 1337/1520/827 +f 1164/1537/830 1125/1538/830 1126/1539/830 +f 1246/1540/831 1279/1541/831 1277/1542/831 +f 931/1543/830 920/1532/830 930/1391/830 +f 923/1531/830 926/1544/830 928/1545/830 +f 932/1546/831 922/1547/831 929/1173/831 +f 913/1548/831 921/1549/831 927/1396/831 +f 949/1141/830 934/1196/830 942/1550/830 +f 941/1160/831 950/1551/831 1516/1158/831 +f 913/1548/831 929/1173/831 922/1547/831 +f 942/1550/830 951/1552/830 949/1141/830 +f 1045/1553/830 1039/1554/830 1063/1555/830 +f 1072/1556/831 1064/1557/831 1065/1558/831 +f 1126/1539/830 1127/1559/830 1169/1560/830 +f 1169/1560/830 1164/1537/830 1126/1539/830 +f 1124/1561/830 1155/1562/830 1150/1563/830 +f 1150/1563/830 1145/1564/830 1125/1538/830 +f 1125/1538/830 1136/1565/830 1126/1539/830 +f 1124/1561/830 1150/1563/830 1125/1538/830 +f 916/1566/833 915/1180/833 913/1179/833 +f 1587/1567/843 1588/1568/843 1589/1569/843 +f 1872/1570/844 1867/1571/844 1870/1572/844 +f 1578/1573/845 1574/1574/845 1576/1575/845 +f 1631/1576/846 1621/1577/846 1625/1578/846 +f 1802/1579/847 1796/1580/847 1801/1581/847 +f 1549/1582/848 1542/1583/848 1539/1584/848 +f 1550/1585/848 1544/1586/848 1542/1583/848 +f 1546/1587/848 1551/1588/848 1544/1586/848 +f 1548/1589/848 1539/1584/848 1551/1588/848 +f 1888/1590/849 1884/1591/849 1882/1592/849 +f 1617/1593/850 1613/1594/850 1615/1595/850 +f 1598/1596/851 1600/1597/851 1594/1598/851 +f 1575/1599/852 1573/1600/852 1571/1601/852 +f 1574/1602/853 1572/1603/853 1575/1604/853 +f 1850/1605/849 1846/1606/849 1848/1607/849 +f 1861/1608/854 1864/1609/854 1866/1610/854 +f 1594/1611/855 1595/1612/855 1596/1613/855 +f 1557/1614/856 1566/1615/856 1567/1616/856 +f 1556/1617/856 1564/1618/856 1566/1615/856 +f 1564/1618/856 1562/1619/856 1565/1620/856 +f 1565/1620/856 1557/1614/856 1567/1616/856 +f 1729/1621/857 1724/1622/857 1722/1623/857 +f 1549/1624/852 1554/1625/852 1550/1626/852 +f 1596/1627/858 1601/1628/858 1597/1629/858 +f 1584/1630/846 1582/1631/846 1580/1632/846 +f 1539/1584/852 1540/1633/852 1541/1634/852 +f 1590/1635/850 1591/1636/850 1588/1637/850 +f 1562/1619/855 1558/1638/855 1560/1639/855 +f 1555/1640/859 1562/1619/859 1560/1641/859 +f 1563/1642/855 1564/1643/855 1565/1644/855 +f 1573/1600/860 1582/1645/860 1583/1646/860 +f 1572/1603/860 1580/1647/860 1582/1645/860 +f 1580/1647/860 1578/1573/860 1581/1648/860 +f 1581/1648/860 1573/1600/860 1583/1646/860 +f 1597/1649/843 1602/1650/843 1598/1651/843 +f 1569/1652/861 1565/1653/861 1567/1654/861 +f 1670/1655/862 1669/1656/862 1667/1657/862 +f 1846/1658/863 1847/1659/863 1843/1660/863 +f 1542/1583/864 1543/1661/864 1540/1662/864 +f 1551/1588/845 1543/1663/845 1544/1586/845 +f 1551/1588/865 1541/1664/865 1545/1665/865 +f 1546/1666/845 1547/1667/845 1548/1668/845 +f 1597/1669/866 1590/1635/866 1587/1567/866 +f 1598/1670/866 1592/1671/866 1590/1635/866 +f 1594/1672/866 1599/1673/866 1592/1671/866 +f 1596/1674/866 1587/1567/866 1599/1673/866 +f 1570/1675/843 1567/1676/843 1566/1677/843 +f 1548/1678/867 1553/1679/867 1549/1680/867 +f 1568/1681/868 1566/1682/868 1564/1683/868 +f 1655/1684/845 1653/1685/845 1651/1686/845 +f 1654/1687/867 1652/1688/867 1655/1689/867 +f 1658/1690/852 1654/1691/852 1656/1692/852 +f 1651/1693/869 1658/1690/869 1656/1694/869 +f 1659/1695/852 1660/1696/852 1661/1697/852 +f 1605/1698/870 1614/1699/870 1615/1700/870 +f 1604/1701/870 1612/1702/870 1614/1699/870 +f 1612/1702/870 1610/1703/870 1613/1704/870 +f 1613/1704/870 1605/1698/870 1615/1700/870 +f 1666/1705/845 1663/1706/845 1662/1707/845 +f 1665/1708/864 1661/1709/864 1663/1710/864 +f 1903/1711/871 1899/1712/871 1904/1713/871 +f 1635/1714/855 1636/1715/855 1637/1716/855 +f 1638/1717/861 1639/1718/861 1636/1719/861 +f 1647/1720/843 1639/1721/843 1640/1722/843 +f 1647/1720/868 1637/1723/868 1641/1724/868 +f 1642/1725/843 1643/1726/843 1644/1727/843 +f 1629/1728/872 1622/1729/872 1619/1730/872 +f 1630/1731/872 1624/1732/872 1622/1729/872 +f 1626/1733/872 1631/1576/872 1624/1732/872 +f 1628/1734/872 1619/1730/872 1631/1576/872 +f 1667/1657/873 1673/1735/873 1674/1736/873 +f 1644/1737/874 1649/1738/874 1645/1739/874 +f 1666/1705/865 1660/1740/865 1664/1741/865 +f 1843/1742/875 1844/1743/875 1845/1744/875 +f 1558/1745/874 1556/1617/874 1559/1746/874 +f 1610/1703/843 1606/1747/843 1608/1748/843 +f 1603/1749/851 1610/1703/851 1608/1750/851 +f 1579/1751/845 1580/1752/845 1581/1753/845 +f 1645/1754/876 1638/1717/876 1635/1714/876 +f 1646/1755/876 1640/1722/876 1638/1717/876 +f 1642/1756/876 1647/1720/876 1640/1722/876 +f 1644/1757/876 1635/1714/876 1647/1720/876 +f 1629/1758/845 1634/1759/845 1630/1760/845 +f 1559/1761/843 1557/1614/843 1555/1762/843 +f 1634/1759/877 1626/1763/877 1630/1764/877 +f 1619/1730/845 1620/1765/845 1621/1766/845 +f 1622/1729/877 1623/1767/877 1620/1768/877 +f 1741/1769/878 1739/1770/878 1744/1771/878 +f 1571/1772/879 1578/1573/879 1576/1773/879 +f 1626/1774/852 1627/1775/852 1628/1776/852 +f 1653/1685/880 1662/1777/880 1663/1778/880 +f 1652/1688/880 1660/1779/880 1662/1777/880 +f 1660/1779/880 1658/1690/880 1661/1780/880 +f 1661/1780/880 1653/1685/880 1663/1778/880 +f 1815/1781/878 1813/1782/878 1811/1783/878 +f 1645/1784/855 1650/1785/855 1646/1786/855 +f 1628/1787/853 1633/1788/853 1629/1789/853 +f 1618/1790/881 1612/1791/881 1616/1792/881 +f 1751/1793/862 1749/1794/862 1747/1795/862 +f 1748/1796/882 1752/1797/882 1749/1798/882 +f 1755/1799/882 1756/1800/882 1757/1801/882 +f 1678/1802/883 1667/1657/883 1677/1803/883 +f 1679/1804/883 1670/1655/883 1678/1802/883 +f 1675/1805/883 1672/1806/883 1679/1804/883 +f 1677/1803/883 1674/1736/883 1675/1805/883 +f 1770/1807/884 1769/1808/884 1768/1809/884 +f 1760/1810/885 1759/1811/885 1756/1812/885 +f 1822/1813/878 1819/1814/878 1821/1815/878 +f 1767/1816/886 1765/1817/886 1763/1818/886 +f 1763/1819/887 1766/1820/887 1767/1816/887 +f 1802/1821/888 1798/1822/888 1800/1823/888 +f 1753/1824/883 1747/1825/883 1750/1826/883 +f 1776/1827/889 1773/1828/889 1771/1829/889 +f 1693/1830/887 1683/1831/887 1692/1832/887 +f 1694/1833/887 1686/1834/887 1693/1830/887 +f 1690/1835/887 1695/1836/887 1694/1833/887 +f 1692/1832/887 1688/1837/887 1690/1835/887 +f 1650/1785/861 1642/1838/861 1646/1839/861 +f 1777/1840/886 1773/1841/886 1774/1842/886 +f 1783/1843/826 1781/1844/826 1779/1845/826 +f 1793/1846/890 1791/1847/890 1794/1848/890 +f 1786/1849/833 1782/1850/833 1784/1851/833 +f 1709/1852/890 1699/1853/890 1708/1854/890 +f 1710/1855/890 1711/1856/890 1709/1852/890 +f 1706/1857/890 1702/1858/890 1710/1855/890 +f 1708/1854/890 1704/1859/890 1706/1857/890 +f 1586/1860/852 1583/1861/852 1582/1862/852 +f 1708/1863/826 1712/1864/826 1709/1865/826 +f 1699/1853/891 1705/1866/891 1704/1859/891 +f 1713/1867/891 1708/1868/891 1706/1869/891 +f 1799/1870/892 1797/1871/892 1795/1872/892 +f 1931/1873/893 1934/1874/893 1932/1875/893 +f 1697/1876/894 1692/1877/894 1690/1878/894 +f 1631/1576/852 1623/1879/852 1624/1732/852 +f 1808/1880/847 1805/1881/847 1803/1882/847 +f 1725/1883/895 1715/1884/895 1724/1885/895 +f 1726/1886/895 1727/1887/895 1725/1883/895 +f 1726/1886/895 1720/1888/895 1718/1889/895 +f 1724/1885/895 1720/1888/895 1722/1890/895 +f 1692/1891/886 1696/1892/886 1693/1893/886 +f 1761/1894/883 1759/1895/883 1762/1896/883 +f 1806/1897/892 1803/1882/892 1805/1898/892 +f 1611/1899/843 1612/1900/843 1613/1901/843 +f 1550/1902/869 1552/1903/869 1546/1904/869 +f 1725/1905/892 1723/1906/892 1728/1907/892 +f 1813/1908/896 1818/1909/896 1816/1910/896 +f 1741/1911/897 1731/1912/897 1740/1913/897 +f 1742/1914/897 1743/1915/897 1741/1911/897 +f 1742/1914/897 1737/1916/897 1734/1917/897 +f 1740/1913/897 1737/1916/897 1738/1918/897 +f 1825/1919/897 1823/1920/897 1826/1921/897 +f 1817/1922/897 1811/1923/897 1814/1924/897 +f 1824/1925/898 1823/1926/898 1820/1927/898 +f 1755/1799/862 1758/1928/862 1761/1894/862 +f 1686/1834/886 1685/1929/886 1683/1831/886 +f 1672/1806/899 1668/1930/899 1670/1655/899 +f 1672/1806/885 1673/1931/885 1671/1932/885 +f 1810/1933/895 1806/1934/895 1807/1935/895 +f 1742/1936/898 1745/1937/898 1738/1938/898 +f 1748/1796/899 1758/1939/899 1757/1940/899 +f 1758/1939/899 1753/1824/899 1759/1941/899 +f 1759/1941/899 1754/1942/899 1756/1943/899 +f 1754/1942/899 1757/1940/899 1756/1943/899 +f 1680/1944/899 1679/1945/899 1678/1946/899 +f 1618/1790/855 1615/1947/855 1614/1948/855 +f 1676/1949/862 1678/1950/862 1677/1951/862 +f 1727/1887/892 1717/1952/892 1715/1884/892 +f 1607/1953/855 1605/1698/855 1603/1954/855 +f 1695/1836/884 1689/1955/884 1687/1956/884 +f 1683/1831/894 1689/1957/894 1688/1837/894 +f 1776/1827/884 1775/1958/884 1772/1959/884 +f 1764/1960/900 1774/1961/900 1773/1962/900 +f 1767/1816/900 1775/1963/900 1774/1961/900 +f 1766/1820/900 1772/1964/900 1775/1963/900 +f 1770/1807/900 1773/1962/900 1772/1964/900 +f 1775/1965/887 1777/1840/887 1774/1966/887 +f 1694/1967/900 1696/1892/900 1698/1968/900 +f 1694/1969/884 1697/1876/884 1690/1970/884 +f 1953/1971/901 1869/1972/901 1867/1973/901 +f 1702/1858/833 1705/1974/833 1703/1975/833 +f 1712/1864/902 1710/1976/902 1709/1977/902 +f 1734/1917/898 1736/1978/898 1735/1979/898 +f 1792/1980/903 1789/1981/903 1787/1982/903 +f 1711/1856/902 1703/1983/902 1700/1984/902 +f 1780/1985/902 1790/1986/902 1789/1987/902 +f 1783/1843/902 1791/1988/902 1790/1986/902 +f 1782/1850/902 1788/1989/902 1791/1988/902 +f 1785/1990/902 1789/1987/902 1788/1989/902 +f 1714/1991/833 1706/1992/833 1710/1993/833 +f 1794/1848/833 1788/1994/833 1792/1980/833 +f 1784/1995/890 1783/1843/890 1779/1996/890 +f 1780/1985/903 1786/1997/903 1781/1998/903 +f 1606/1999/858 1604/1701/858 1607/2000/858 +f 1716/2001/904 1718/1889/904 1719/2002/904 +f 1718/1889/888 1721/2003/888 1719/2004/888 +f 1715/1884/857 1721/2005/857 1720/1888/857 +f 1764/1960/889 1768/2006/889 1765/2007/889 +f 1796/1580/904 1806/2008/904 1805/2009/904 +f 1799/1870/904 1807/2010/904 1806/2008/904 +f 1807/2010/904 1801/1581/904 1804/2011/904 +f 1801/1581/904 1805/2009/904 1804/2011/904 +f 1725/2012/904 1730/2013/904 1726/2014/904 +f 1726/2015/888 1729/1621/888 1722/2016/888 +f 1795/2017/895 1798/1822/895 1799/1870/895 +f 1743/1915/878 1733/2018/878 1731/1912/878 +f 1732/2019/905 1734/1917/905 1735/2020/905 +f 1711/1856/826 1701/2021/826 1699/1853/826 +f 1737/1916/906 1733/2022/906 1736/2023/906 +f 1745/1937/906 1740/2024/906 1738/2025/906 +f 1812/2026/905 1822/2027/905 1821/2028/905 +f 1815/1781/905 1823/2029/905 1822/2027/905 +f 1823/2029/907 1818/1909/907 1820/2030/907 +f 1818/1909/905 1821/2028/905 1820/2030/905 +f 1744/1771/905 1742/2031/905 1741/2032/905 +f 1679/2033/885 1681/2034/885 1675/2035/885 +f 1599/1673/855 1591/2036/855 1592/1671/855 +f 1922/2037/849 1923/2038/849 1924/2039/849 +f 1909/2040/844 1910/2041/844 1907/2042/844 +f 1929/2043/893 1924/2044/893 1928/2045/893 +f 1913/2046/908 1914/2047/908 1915/2048/908 +f 1837/2049/909 1827/2050/909 1838/2051/909 +f 1837/2049/909 1839/2052/909 1830/2053/909 +f 1836/2054/909 1839/2052/909 1834/2055/909 +f 1836/2054/909 1827/2050/909 1832/2056/909 +f 1917/2057/901 1921/2058/901 1916/2059/901 +f 1915/2060/910 1920/2061/910 1917/2062/910 +f 1913/2063/854 1921/2058/854 1919/2064/854 +f 1859/2065/908 1860/2066/908 1861/2067/908 +f 1893/2068/911 1894/2069/911 1890/2070/911 +f 1929/2043/875 1926/2071/875 1927/2072/875 +f 1891/2073/912 1895/2074/912 1892/2075/912 +f 1824/1925/896 1821/2076/896 1819/1814/896 +f 1854/2077/913 1847/1659/913 1855/2078/913 +f 1847/1659/913 1852/2079/913 1855/2078/913 +f 1849/2080/913 1853/2081/913 1852/2079/913 +f 1850/1605/913 1854/2077/913 1853/2081/913 +f 1903/1711/849 1901/2082/849 1902/2083/849 +f 1898/2084/914 1901/2085/914 1905/2086/914 +f 1935/2087/915 1930/2088/915 1933/2089/915 +f 1890/2090/849 1891/2073/849 1892/2091/849 +f 1941/2092/916 1942/2093/916 1938/2094/916 +f 1941/2095/908 1943/2096/908 1944/2097/908 +f 1945/2098/917 1939/2099/917 1943/2096/917 +f 1954/2100/908 1948/2101/908 1946/2102/908 +f 1870/2103/918 1863/2104/918 1871/2105/918 +f 1871/2105/918 1865/2106/918 1869/2107/918 +f 1869/2107/918 1864/1609/918 1867/2108/918 +f 1867/2108/918 1860/2066/918 1870/2103/918 +f 1856/2109/875 1854/2110/875 1855/2111/875 +f 1951/2112/919 1946/2113/919 1949/2114/919 +f 1952/2115/901 1949/2116/901 1950/2117/901 +f 1906/2118/901 1907/2119/901 1908/2120/901 +f 1830/2053/919 1831/2121/919 1828/2122/919 +f 1897/2123/875 1893/2124/875 1895/2125/875 +f 1832/2056/920 1829/2126/920 1833/2127/920 +f 1936/2128/875 1932/2129/875 1930/2130/875 +f 1885/2131/921 1874/2132/921 1886/2133/921 +f 1885/2131/921 1879/2134/921 1877/2135/921 +f 1884/2136/921 1879/2134/921 1882/2137/921 +f 1884/2136/921 1874/2132/921 1881/2138/921 +f 1808/1880/888 1807/2139/888 1804/2140/888 +f 1934/2141/849 1935/2087/849 1933/2142/849 +f 1851/2143/922 1854/2144/922 1858/2145/922 +f 1948/2146/916 1952/2115/916 1950/2147/916 +f 1938/2148/901 1939/2099/901 1940/2149/901 +f 1862/2150/910 1863/2104/910 1859/2151/910 +f 1862/2152/901 1864/1609/901 1865/2106/901 +f 1816/2153/898 1817/1922/898 1814/2154/898 +f 1857/2155/849 1853/2156/849 1851/2143/849 +f 1901/2157/923 1894/2069/923 1902/2158/923 +f 1894/2069/923 1899/2159/923 1902/2158/923 +f 1896/2160/923 1900/2161/923 1899/2159/923 +f 1897/2123/923 1901/2157/923 1900/2161/923 +f 1886/2162/875 1887/2163/875 1885/2164/875 +f 1599/1673/881 1589/2165/881 1593/2166/881 +f 1856/2109/893 1852/2167/893 1857/2155/893 +f 1752/2168/885 1753/1824/885 1750/2169/885 +f 1925/2170/915 1926/2171/915 1923/2172/915 +f 1831/2173/901 1832/2056/901 1833/2174/901 +f 1874/2132/871 1880/2175/871 1881/2138/871 +f 1916/2176/924 1906/2118/924 1917/2177/924 +f 1916/2176/924 1918/2178/924 1909/2040/924 +f 1915/2179/924 1918/2178/924 1913/2180/924 +f 1915/2179/924 1906/2118/924 1911/2181/924 +f 1675/2182/873 1676/1949/873 1677/2183/873 +f 1585/2184/877 1581/2185/877 1583/2186/877 +f 1869/2187/910 1873/2188/910 1871/2189/910 +f 1874/2132/875 1875/2190/875 1876/2191/875 +f 1695/1836/900 1684/2192/900 1686/1834/900 +f 1881/2138/849 1878/2193/849 1879/2134/849 +f 1845/2194/922 1850/1605/922 1848/2195/922 +f 1904/1713/875 1900/2196/875 1898/2084/875 +f 1933/2197/925 1922/2037/925 1934/2198/925 +f 1933/2197/925 1927/2072/925 1925/2170/925 +f 1932/2199/925 1927/2072/925 1930/2200/925 +f 1932/2199/925 1922/2037/925 1929/2043/925 +f 1838/2201/908 1842/2202/908 1837/2203/908 +f 1883/2204/871 1886/2205/871 1884/2206/871 +f 1887/2163/912 1882/2207/912 1885/2208/912 +f 1827/2050/908 1828/2209/908 1829/2210/908 +f 1877/2135/912 1878/2211/912 1875/2212/912 +f 1910/2213/908 1911/2181/908 1912/2214/908 +f 1911/2181/926 1908/2215/926 1912/2216/926 +f 1834/2217/901 1835/2218/901 1836/2219/901 +f 1949/2220/927 1942/2093/927 1950/2221/927 +f 1950/2221/927 1944/2097/927 1948/2222/927 +f 1948/2222/927 1943/2096/927 1946/2223/927 +f 1946/2223/927 1939/2099/927 1949/2220/927 +f 1873/2188/908 1870/2224/908 1871/2225/908 +f 1836/2226/916 1841/2227/916 1838/2228/916 +f 1834/2229/917 1842/2202/917 1840/2230/917 +f 1549/1582/848 1550/1585/848 1542/1583/848 +f 1550/1585/848 1546/1587/848 1544/1586/848 +f 1546/1587/848 1548/1589/848 1551/1588/848 +f 1548/1589/848 1549/1582/848 1539/1584/848 +f 1557/1614/856 1556/1617/856 1566/1615/856 +f 1556/1617/856 1561/2231/856 1564/1618/856 +f 1564/1618/856 1561/2231/856 1562/1619/856 +f 1565/1620/856 1562/1619/856 1557/1614/856 +f 1573/1600/860 1572/1603/860 1582/1645/860 +f 1572/1603/860 1577/2232/860 1580/1647/860 +f 1580/1647/860 1577/2232/860 1578/1573/860 +f 1581/1648/860 1578/1573/860 1573/1600/860 +f 1597/1669/866 1598/1670/866 1590/1635/866 +f 1598/1670/866 1594/1672/866 1592/1671/866 +f 1594/1672/866 1596/1674/866 1599/1673/866 +f 1596/1674/866 1597/1669/866 1587/1567/866 +f 1605/1698/870 1604/1701/870 1614/1699/870 +f 1604/1701/870 1609/2233/870 1612/1702/870 +f 1612/1702/870 1609/2233/870 1610/1703/870 +f 1613/1704/870 1610/1703/870 1605/1698/870 +f 1629/1728/872 1630/1731/872 1622/1729/872 +f 1630/1731/872 1626/1733/872 1624/1732/872 +f 1626/1733/872 1628/1734/872 1631/1576/872 +f 1628/1734/872 1629/1728/872 1619/1730/872 +f 1645/1754/876 1646/1755/876 1638/1717/876 +f 1646/1755/876 1642/1756/876 1640/1722/876 +f 1642/1756/876 1644/1757/876 1647/1720/876 +f 1644/1757/876 1645/1754/876 1635/1714/876 +f 1653/1685/880 1652/1688/880 1662/1777/880 +f 1652/1688/880 1657/2234/880 1660/1779/880 +f 1660/1779/880 1657/2234/880 1658/1690/880 +f 1661/1780/880 1658/1690/880 1653/1685/880 +f 1678/1802/883 1670/1655/883 1667/1657/883 +f 1679/1804/883 1672/1806/883 1670/1655/883 +f 1675/1805/883 1674/1736/883 1672/1806/883 +f 1677/1803/883 1667/1657/883 1674/1736/883 +f 1693/1830/887 1686/1834/887 1683/1831/887 +f 1694/1833/887 1695/1836/887 1686/1834/887 +f 1690/1835/887 1688/1837/887 1695/1836/887 +f 1692/1832/887 1683/1831/887 1688/1837/887 +f 1709/1852/890 1711/1856/890 1699/1853/890 +f 1710/1855/890 1702/1858/890 1711/1856/890 +f 1706/1857/890 1704/1859/890 1702/1858/890 +f 1708/1854/890 1699/1853/890 1704/1859/890 +f 1725/1883/895 1727/1887/895 1715/1884/895 +f 1726/1886/895 1718/1889/895 1727/1887/895 +f 1726/1886/895 1722/1890/895 1720/1888/895 +f 1724/1885/895 1715/1884/895 1720/1888/895 +f 1741/1911/897 1743/1915/897 1731/1912/897 +f 1742/1914/897 1734/1917/897 1743/1915/897 +f 1742/1914/928 1738/1918/928 1737/1916/928 +f 1740/1913/897 1731/1912/897 1737/1916/897 +f 1748/1796/899 1751/1793/899 1758/1939/899 +f 1758/1939/899 1751/1793/899 1753/1824/899 +f 1759/1941/899 1753/1824/899 1754/1942/899 +f 1754/1942/899 1748/1796/899 1757/1940/899 +f 1764/1960/900 1767/1816/900 1774/1961/900 +f 1767/1816/900 1766/1820/900 1775/1963/900 +f 1766/1820/900 1770/1807/900 1772/1964/900 +f 1770/1807/900 1764/1960/900 1773/1962/900 +f 1780/1985/902 1783/1843/902 1790/1986/902 +f 1783/1843/902 1782/1850/902 1791/1988/902 +f 1782/1850/902 1785/1990/902 1788/1989/902 +f 1785/1990/902 1780/1985/902 1789/1987/902 +f 1796/1580/904 1799/1870/904 1806/2008/904 +f 1799/1870/904 1798/1822/904 1807/2010/904 +f 1807/2010/904 1798/1822/904 1801/1581/904 +f 1801/1581/904 1796/1580/904 1805/2009/904 +f 1812/2026/905 1815/1781/905 1822/2027/905 +f 1815/1781/905 1817/1922/905 1823/2029/905 +f 1823/2029/905 1817/1922/905 1818/1909/905 +f 1818/1909/905 1812/2026/905 1821/2028/905 +f 1837/2049/909 1830/2053/909 1827/2050/909 +f 1837/2049/909 1834/2055/909 1839/2052/909 +f 1836/2054/909 1832/2056/909 1839/2052/909 +f 1836/2054/909 1838/2051/909 1827/2050/909 +f 1854/2077/913 1844/1743/913 1847/1659/913 +f 1847/1659/913 1849/2080/913 1852/2079/913 +f 1849/2080/913 1850/1605/913 1853/2081/913 +f 1850/1605/913 1844/1743/913 1854/2077/913 +f 1870/2103/918 1860/2066/918 1863/2104/918 +f 1871/2105/918 1863/2104/918 1865/2106/918 +f 1869/2107/918 1865/2106/918 1864/1609/918 +f 1867/2108/918 1864/1609/918 1860/2066/918 +f 1885/2131/921 1877/2135/921 1874/2132/921 +f 1885/2131/921 1882/2137/921 1879/2134/921 +f 1884/2136/921 1881/2138/921 1879/2134/921 +f 1884/2136/921 1886/2133/921 1874/2132/921 +f 1901/2157/923 1891/2073/923 1894/2069/923 +f 1894/2069/923 1896/2160/923 1899/2159/923 +f 1896/2160/923 1897/2123/923 1900/2161/923 +f 1897/2123/923 1891/2073/923 1901/2157/923 +f 1916/2176/924 1909/2040/924 1906/2118/924 +f 1916/2176/924 1913/2180/924 1918/2178/924 +f 1915/2179/924 1911/2181/924 1918/2178/924 +f 1915/2179/924 1917/2177/924 1906/2118/924 +f 1933/2197/925 1925/2170/925 1922/2037/925 +f 1933/2197/925 1930/2200/925 1927/2072/925 +f 1932/2199/925 1929/2043/925 1927/2072/925 +f 1932/2199/925 1934/2198/925 1922/2037/925 +f 1949/2220/927 1939/2099/927 1942/2093/927 +f 1950/2221/927 1942/2093/927 1944/2097/927 +f 1948/2222/927 1944/2097/927 1943/2096/927 +f 1946/2223/927 1943/2096/927 1939/2099/927 +f 1793/1846/826 1789/2235/826 1790/2236/826 +f 1957/2237/830 1956/2238/830 1962/2239/830 +f 1956/2240/837 1959/2241/837 1955/2242/837 +f 1957/2237/839 1959/2243/839 1958/2244/839 +f 1956/2240/841 1961/2245/841 1962/2239/841 +f 1962/2239/835 1960/2246/835 1957/2237/835 +f 2062/2247/831 2146/2248/831 2015/2249/831 +f 1966/2250/831 2127/2251/831 1967/2252/831 +f 2047/2253/929 2071/2254/929 1996/2255/929 +f 2147/2256/929 2111/2257/929 2109/2258/929 +f 1978/2259/831 1979/2260/831 1980/2261/831 +f 2024/2262/835 2115/2263/835 2025/2264/835 +f 1988/2265/831 2148/2266/831 1986/2267/831 +f 2142/2268/929 1990/2269/929 2107/2270/929 +f 2045/2271/830 2116/2272/830 2118/2273/830 +f 1977/2274/831 2028/2275/831 1975/2276/831 +f 2022/2277/839 1978/2278/839 2020/2279/839 +f 2154/2280/841 2038/2281/841 2039/2282/841 +f 1971/2283/830 2050/2284/830 2051/2285/830 +f 2033/2286/831 2149/2287/831 2012/2288/831 +f 2036/2289/841 2042/2290/841 2037/2291/841 +f 2121/2292/839 2053/2293/839 2048/2294/839 +f 2052/2295/830 2059/2296/830 2060/2297/830 +f 2053/2298/831 2082/2299/831 2041/2300/831 +f 2152/2301/929 2131/2302/929 2129/2303/929 +f 2150/2304/929 2097/2305/929 2095/2306/929 +f 2048/2307/830 2119/2308/830 2121/2292/830 +f 2153/2309/841 2065/2310/841 2066/2311/841 +f 2025/2264/830 2034/2312/830 2013/2313/830 +f 2109/2258/830 2026/2314/830 2009/2315/830 +f 1968/2316/831 2024/2262/831 1970/2317/831 +f 2054/2318/839 2023/2319/839 2018/2320/839 +f 2097/2305/839 1994/2321/839 1987/2322/839 +f 2148/2266/929 2094/2323/929 2092/2324/929 +f 1982/2325/830 2092/2324/830 2094/2323/830 +f 2150/2304/841 2088/2326/841 1992/2327/841 +f 2134/2328/839 2076/2329/839 2072/2330/839 +f 2058/2331/830 2016/2332/830 2125/2333/830 +f 2028/2275/841 2085/2334/841 1975/2335/841 +f 2149/2287/835 2113/2336/835 2074/2337/835 +f 2035/2338/831 2036/2289/831 2037/2339/831 +f 1993/2340/830 2098/2341/830 2100/2342/830 +f 2111/2257/839 2030/2343/839 2026/2344/839 +f 2142/2268/841 1989/2345/841 2008/2346/841 +f 2127/2251/841 2044/2347/841 1967/2348/841 +f 2027/2349/831 2142/2268/831 2008/2350/831 +f 2079/2351/831 2084/2352/831 2055/2353/831 +f 1979/2260/841 2067/2354/841 1980/2355/841 +f 2023/2356/831 2032/2357/831 2007/2358/831 +f 2125/2333/839 2062/2359/839 2058/2360/839 +f 2069/2361/830 2129/2303/830 2131/2302/830 +f 1987/2362/830 2095/2306/830 2097/2305/830 +f 2061/2363/839 2128/2364/839 1966/2365/839 +f 2151/2366/841 2089/2367/841 1998/2368/841 +f 1969/2369/831 2102/2370/831 1963/2371/831 +f 2143/2372/929 1985/2373/929 1984/2374/929 +f 2061/2375/830 2145/2376/830 2126/2377/830 +f 1976/2378/830 1984/2374/830 1985/2373/830 +f 2113/2336/839 2033/2379/839 2029/2380/839 +f 2075/2381/830 2056/2382/830 2136/2383/830 +f 2083/2384/830 2144/2385/830 2139/2386/830 +f 2070/2387/830 1996/2255/830 2071/2254/830 +f 2144/2385/835 2141/2388/835 2139/2386/835 +f 2100/2342/839 2000/2389/839 1993/2390/839 +f 2046/2391/831 2047/2253/831 1995/2392/831 +f 1983/2393/831 2143/2372/831 1981/2394/831 +f 2074/2337/830 2029/2395/830 2011/2396/830 +f 2034/2397/839 2114/2398/839 1968/2399/839 +f 1973/2400/841 2043/2401/841 1974/2402/841 +f 2152/2301/841 2063/2403/841 2064/2404/841 +f 1965/2405/841 2144/2385/841 2068/2406/841 +f 2028/2275/929 2051/2285/929 2050/2284/929 +f 2146/2248/841 2017/2407/841 2015/2408/841 +f 2082/2299/929 2121/2292/929 2119/2308/929 +f 1964/2409/831 2140/2410/831 1965/2411/831 +f 2001/2412/830 2002/2413/830 2003/2414/830 +f 2032/2357/929 2054/2318/929 2106/2415/929 +f 2151/2366/835 2100/2342/835 2098/2341/835 +f 2049/2416/831 2154/2280/831 2039/2417/831 +f 1970/2418/841 2025/2264/841 2013/2419/841 +f 1999/2420/830 2077/2421/830 2101/2422/830 +f 2000/2423/831 2151/2366/831 1998/2424/831 +f 2072/2425/830 2132/2426/830 2134/2328/830 +f 2077/2421/835 2103/2427/835 2101/2422/835 +f 2104/2428/830 2014/2429/830 2004/2430/830 +f 1979/2260/835 2022/2277/835 2021/2431/835 +f 2105/2432/839 2019/2433/839 2014/2434/839 +f 2084/2352/841 2057/2435/841 2055/2436/841 +f 2081/2437/841 2004/2438/841 2005/2439/841 +f 2060/2297/839 2035/2440/839 2052/2441/839 +f 2143/2372/841 2086/2442/841 1981/2443/841 +f 2148/2266/841 2087/2444/841 1986/2445/841 +f 1994/2446/831 2150/2304/831 1992/2447/831 +f 2118/2273/839 2049/2448/839 2045/2449/839 +f 2071/2254/839 2046/2450/839 2070/2451/839 +f 2107/2270/830 1991/2452/830 1989/2453/830 +f 2136/2383/839 2079/2454/839 2075/2455/839 +f 2084/2352/929 2136/2383/929 2056/2382/929 +f 2003/2414/839 1972/2456/839 2001/2457/839 +f 2094/2323/839 1988/2458/839 1982/2459/839 +f 2154/2280/929 2118/2273/929 2116/2272/929 +f 2020/2460/830 2021/2431/830 2022/2277/830 +f 2102/2370/841 2078/2461/841 1963/2462/841 +f 1973/2400/929 2003/2414/929 2002/2413/929 +f 2082/2299/841 2040/2463/841 2041/2464/841 +f 2146/2248/835 2125/2333/835 2016/2332/835 +f 2032/2357/841 2006/2465/841 2007/2466/841 +f 1985/2373/839 1983/2467/839 1976/2468/839 +f 2139/2386/839 1964/2469/839 2083/2470/839 +f 2047/2253/841 1997/2471/841 1995/2472/841 +f 2145/2376/835 2128/2364/835 2126/2377/835 +f 2051/2285/839 1977/2473/839 1971/2474/839 +f 2036/2289/929 2060/2297/929 2059/2296/929 +f 1972/2475/831 1973/2400/831 1974/2476/831 +f 2101/2422/839 1969/2477/839 1999/2478/839 +f 2147/2256/841 2009/2479/841 2010/2480/841 +f 2149/2287/841 2011/2481/841 2012/2482/841 +f 2081/2437/929 2105/2432/929 2104/2428/929 +f 2153/2309/929 2134/2328/929 2132/2426/929 +f 2019/2483/831 2081/2437/831 2005/2484/831 +f 2073/2485/831 2152/2301/831 2064/2486/831 +f 2106/2415/830 2018/2487/830 2006/2488/830 +f 1990/2269/839 2027/2489/839 1991/2490/839 +f 2076/2491/831 2153/2309/831 2066/2492/831 +f 2131/2302/839 2073/2493/839 2069/2494/839 +f 2030/2495/831 2147/2256/831 2010/2496/831 +f 1904/1713/923 1905/2086/923 1903/1711/923 +f 1584/1630/860 1585/2184/860 1586/1860/860 +f 1568/1681/856 1569/1652/856 1570/1675/856 +f 1552/1903/848 1553/1679/848 1547/1667/848 +f 1664/1741/880 1665/1708/880 1666/1705/880 +f 1648/2497/876 1649/1738/876 1643/1726/876 +f 1616/1792/870 1617/1593/870 1618/1790/870 +f 1696/1892/887 1697/1876/887 1698/1968/887 +f 1600/1597/866 1601/1628/866 1595/1612/866 +f 1680/1944/883 1681/2034/883 1682/2498/883 +f 1776/1827/900 1777/1840/900 1778/2499/900 +f 1712/1864/890 1713/1867/890 1714/1991/890 +f 1792/1980/902 1793/1846/902 1794/1848/902 +f 1810/1933/904 1803/1882/904 1809/2500/904 +f 1947/2501/927 1951/2112/927 1952/2115/927 +f 1760/1810/899 1761/1894/899 1762/1896/899 +f 1730/2013/895 1723/1906/895 1729/1621/895 +f 1824/1925/905 1825/1919/905 1826/1921/905 +f 1632/2502/872 1633/1788/872 1627/1775/872 +f 1857/2155/913 1858/2145/913 1856/2109/913 +f 1868/2503/918 1872/1570/918 1873/2188/918 +f 1936/2128/925 1937/2504/925 1931/1873/925 +f 1840/2230/909 1841/2227/909 1835/2218/909 +f 1744/1771/897 1745/1937/897 1746/2505/897 +f 1888/1590/921 1889/2506/921 1883/2204/921 +f 1919/2064/924 1920/2061/924 1914/2047/924 +f 1960/2246/831 1955/2507/831 1959/2508/831 +f 2157/2509/837 2159/2510/837 2155/2511/837 +f 2155/2512/841 2160/2513/841 2156/2514/841 +f 2156/2515/835 2162/2516/835 2158/2517/835 +f 2158/2518/839 2161/2519/839 2157/2520/839 +f 2164/2521/835 2170/2522/835 2166/2523/835 +f 2166/2524/839 2169/2525/839 2165/2526/839 +f 2165/2527/837 2167/2528/837 2163/2529/837 +f 2163/2530/841 2168/2531/841 2164/2532/841 +f 2159/2510/831 2162/2516/831 2160/2513/831 +f 2168/2531/831 2169/2525/831 2170/2522/831 +f 949/1141/825 951/1221/825 946/1142/825 +f 967/1144/826 961/1150/826 962/1145/826 +f 1030/1147/827 1026/2533/827 1025/1148/827 +f 961/1150/828 967/1144/828 964/1151/828 +f 1031/1153/829 1030/1264/829 1028/1149/829 +f 920/1155/830 924/1178/830 925/1156/830 +f 1516/1158/831 947/1143/831 944/1159/831 +f 1027/1161/832 1025/1148/832 1026/1162/832 +f 1331/1164/825 1530/2534/825 1332/1165/825 +f 1012/1167/827 1009/2535/827 1010/1168/827 +f 923/1170/826 925/1156/826 919/1171/826 +f 929/1173/825 928/1545/825 926/1174/825 +f 1013/1176/832 1011/1236/832 1008/1169/832 +f 924/1178/833 920/2536/833 913/1179/833 +f 918/1181/831 917/1220/831 914/1182/831 +f 999/1184/829 998/1252/829 995/1185/829 +f 991/1187/834 990/1289/834 987/1188/834 +f 1004/1190/835 1001/1473/835 1002/1191/835 +f 1516/1158/828 948/1194/828 949/1141/828 +f 971/1197/835 969/1238/835 970/1198/835 +f 943/1200/833 935/1258/833 934/1201/833 +f 1022/1203/836 1018/2537/836 1017/1204/836 +f 1007/1206/837 1006/1271/837 1003/1207/837 +f 1003/1207/830 1006/1271/830 1004/1190/830 +f 941/1209/831 944/2538/831 945/1210/831 +f 985/1211/830 991/2539/830 989/1212/830 +f 958/1214/833 953/1394/833 954/1215/833 +f 983/1217/830 976/2540/830 978/1218/830 +f 919/1171/838 915/1180/838 914/1182/838 +f 1029/1154/830 1028/1149/830 1025/1148/830 +f 951/1221/826 942/2541/826 944/1222/826 +f 1024/1223/825 1031/2542/825 1029/1154/825 +f 922/1172/826 919/1171/826 917/1220/826 +f 1016/1225/831 1018/1267/831 1022/1226/831 +f 989/1228/836 987/1188/836 984/1229/836 +f 934/1231/828 937/2543/828 939/1232/828 +f 994/1234/830 993/2544/830 999/1184/830 +f 1014/1235/830 1012/1167/830 1008/1169/830 +f 974/1237/839 970/2545/839 969/1238/839 +f 976/1240/829 983/2546/829 981/1241/829 +f 1019/1243/830 1021/1256/830 1020/1205/830 +f 968/1199/830 970/1198/830 974/1244/830 +f 1005/1246/839 1003/1207/839 1000/1192/839 +f 981/1241/831 980/1388/831 977/1248/831 +f 931/1249/833 921/1392/833 913/1250/833 +f 998/1252/831 996/1291/831 992/1253/831 +f 987/1188/831 990/1289/831 988/1254/831 +f 971/1197/831 973/1285/831 972/1239/831 +f 1023/1255/834 1022/2547/834 1020/1205/834 +f 937/1257/833 934/1201/833 935/1258/833 +f 950/1260/833 941/2548/833 934/1261/833 +f 1031/1153/831 1024/2549/831 1026/1263/831 +f 997/1265/827 995/1185/827 992/1253/827 +f 1019/1243/840 1017/1204/840 1018/1267/840 +f 944/1268/826 942/1273/826 938/1269/826 +f 1001/1270/841 1004/1190/841 1006/1271/841 +f 988/1254/840 985/1211/840 986/1213/840 +f 942/1273/826 939/2550/826 936/1274/826 +f 945/1210/838 938/1269/838 935/1258/838 +f 963/1275/838 965/2551/838 960/1146/838 +f 952/1216/828 959/1280/828 955/1276/828 +f 1016/1277/842 1023/2552/842 1021/1256/842 +f 993/1278/825 996/1291/825 998/1252/825 +f 1516/1158/829 950/1260/829 940/1262/829 +f 939/1232/830 937/2543/830 933/1259/830 +f 959/1280/826 956/2553/826 957/1281/826 +f 932/1175/826 926/1174/826 923/1282/826 +f 975/1284/837 974/2554/837 972/1239/837 +f 938/1269/838 936/1274/838 933/1259/838 +f 966/1152/833 964/1151/833 965/1286/833 +f 925/1156/838 924/1178/838 915/1180/838 +f 985/1288/842 988/1254/842 990/1289/842 +f 996/1291/832 993/2555/832 994/1292/832 +f 913/1293/828 922/2556/828 918/1181/828 +f 1009/1294/829 1012/1167/829 1014/1235/829 +f 1241/1296/831 1246/1540/831 1277/1297/831 +f 1238/1299/830 1240/1304/830 1270/1300/830 +f 1267/1302/830 1300/2557/830 1270/1303/830 +f 1244/1305/830 1238/1299/830 1271/1306/830 +f 1320/1308/825 1322/1472/825 1329/1166/825 +f 1209/1309/831 1208/2558/831 1178/1310/831 +f 1215/1312/830 1183/2559/830 1181/1313/830 +f 1284/1315/830 1254/1433/830 1249/1316/830 +f 1251/1318/831 1256/2560/831 1287/1319/831 +f 1250/1321/831 1281/2561/831 1279/1322/831 +f 1230/1324/830 1196/2562/830 1194/1325/830 +f 1249/1316/830 1247/1461/830 1280/1327/830 +f 1252/1329/831 1251/1318/831 1285/1330/831 +f 1206/1332/830 1211/2563/830 1179/1333/830 +f 1223/1335/830 1190/2564/830 1187/1336/830 +f 1223/1338/830 1226/2565/830 1192/1339/830 +f 1269/1341/831 1301/2566/831 1299/1342/831 +f 1255/1344/830 1253/2567/830 1286/1345/830 +f 1290/1347/830 1257/1355/830 1255/1344/830 +f 1224/1349/831 1222/2568/831 1191/1350/831 +f 1265/1352/830 1263/1451/830 1296/1353/830 +f 1257/1355/830 1290/2569/830 1292/1356/830 +f 1233/1358/830 1200/1424/830 1198/1359/830 +f 1195/1361/831 1197/1367/831 1228/1362/831 +f 1264/1364/831 1295/2570/831 1293/1365/831 +f 1197/1367/831 1199/2571/831 1231/1368/831 +f 1297/1370/831 1266/2572/831 1268/1343/831 +f 1218/1372/831 1216/2573/831 1186/1373/831 +f 1177/1334/830 1174/2574/830 1207/1375/830 +f 1267/1302/830 1265/1352/830 1298/1377/830 +f 1214/1379/830 1220/2575/830 1217/1380/830 +f 1203/1382/831 1176/2576/831 1237/1383/831 +f 1015/1385/825 1014/1235/825 1011/1236/825 +f 982/1387/832 978/2577/832 977/1248/832 +f 983/1217/825 982/1219/825 980/1388/825 +f 979/1242/827 977/1248/827 978/1389/827 +f 930/1391/829 927/1396/829 921/1392/829 +f 956/1393/838 954/1215/838 953/1394/838 +f 930/1391/828 928/1545/828 929/1173/828 +f 1242/1397/831 1272/2578/831 1273/1398/831 +f 1237/1400/831 1176/2576/831 1175/1401/831 +f 1272/1403/831 1242/1397/831 1241/1296/831 +f 1205/1405/831 1175/1401/831 1178/1310/831 +f 1210/1407/830 1181/1313/830 1179/1333/830 +f 1276/1409/830 1243/1413/830 1244/1305/830 +f 1212/1411/831 1209/2579/831 1180/1311/831 +f 1243/1413/830 1276/2580/830 1278/1414/830 +f 1185/1381/830 1183/2559/830 1215/1416/830 +f 1259/1357/830 1292/2581/830 1294/1418/830 +f 1213/1420/831 1184/1455/831 1186/1373/831 +f 1233/1422/830 1236/2582/830 1202/1423/830 +f 1258/1425/831 1260/1428/831 1291/1426/831 +f 1260/1428/831 1262/1366/831 1293/1429/831 +f 1287/1431/831 1256/2583/831 1258/1425/831 +f 1254/1433/830 1284/2584/830 1286/1434/830 +f 1221/1436/831 1189/2585/831 1191/1350/831 +f 1188/1374/831 1189/2586/831 1221/1438/831 +f 1219/1440/830 1187/1336/830 1217/1380/830 +f 1225/1442/830 1194/1325/830 1192/1339/830 +f 1281/1444/831 1250/1321/831 1252/1329/831 +f 1193/1351/831 1195/1361/831 1227/1446/831 +f 1198/1359/830 1196/2562/830 1230/1448/830 +f 1261/1419/830 1294/2587/830 1296/1450/830 +f 1264/1364/831 1266/2572/831 1297/1452/831 +f 1212/1454/831 1182/1412/831 1184/1455/831 +f 1231/1457/831 1199/2571/831 1201/1458/831 +f 1245/1415/830 1278/2588/830 1280/1460/830 +f 1232/1462/831 1201/1458/831 1203/1382/831 +f 1204/1464/830 1202/1423/830 1236/1465/830 +f 1269/1341/831 1239/1399/831 1273/1467/831 +f 1207/1469/830 1174/2574/830 1204/1464/830 +f 1320/1308/825 1334/1488/825 1321/1471/825 +f 1001/1473/831 1007/2589/831 1005/1474/831 +f 1367/1475/829 1538/2590/829 1369/1476/829 +f 1346/1478/825 1533/2591/825 1347/1479/825 +f 1010/1481/831 1009/2592/831 1015/1385/831 +f 1325/1482/827 1327/1503/827 1324/1483/827 +f 1357/1485/829 1363/2593/829 1358/1486/829 +f 1334/1488/825 1531/2594/825 1335/1489/825 +f 1323/1490/827 1532/2595/827 1333/1484/827 +f 1310/1491/829 1312/2596/829 1302/1492/829 +f 1307/1494/832 1313/2597/832 1308/1495/832 +f 1359/1487/829 1358/1486/829 1361/1497/829 +f 1304/1499/829 1303/1504/829 1306/1500/829 +f 1325/1482/827 1330/1506/827 1326/1502/827 +f 1302/1492/829 1312/2596/829 1303/1504/829 +f 1315/1493/829 1527/2598/829 1316/1505/829 +f 1330/1506/827 1529/2599/827 1328/1507/827 +f 1317/1508/832 1313/2597/832 1307/1494/832 +f 1341/1510/825 1343/1522/825 1340/1511/825 +f 1344/1513/827 1534/2600/827 1348/1514/827 +f 1354/1516/832 1353/1533/832 1356/1517/832 +f 1336/1519/827 1350/1535/827 1337/1520/827 +f 1341/1510/825 1346/1478/825 1342/1480/825 +f 1309/1496/832 1308/1495/832 1311/1523/832 +f 1365/1525/832 1537/2601/832 1360/1526/832 +f 1336/1519/827 1338/1521/827 1345/1515/827 +f 968/1528/841 975/2602/841 973/1285/841 +f 1366/1527/832 1362/2603/832 1352/1529/832 +f 1351/1530/825 1536/2604/825 1349/1512/825 +f 923/1531/830 928/1545/830 930/1391/830 +f 1352/1529/832 1362/2603/832 1353/1533/832 +f 1355/1477/829 1363/2593/829 1357/1485/829 +f 1318/1509/832 1528/2605/832 1305/1534/832 +f 1350/1535/827 1535/2606/827 1339/1536/827 +f 1164/1537/830 1124/1561/830 1125/1538/830 +f 1246/1540/831 1248/1323/831 1279/1541/831 +f 949/1141/830 948/1194/830 934/1196/830 +f 913/1548/831 927/1396/831 929/1173/831 +f 1054/2607/830 1052/2608/830 1050/2609/830 +f 1050/2609/830 1048/2610/830 1045/1553/830 +f 1045/1553/830 1060/2611/830 1043/2612/830 +f 1043/2612/830 1041/2613/830 1045/1553/830 +f 1041/2613/830 1039/1554/830 1045/1553/830 +f 1039/1554/830 1037/2614/830 1063/1555/830 +f 1037/2614/830 1035/2615/830 1063/1555/830 +f 1035/2615/830 1032/2616/830 1063/1555/830 +f 1063/1555/830 1061/2617/830 1054/2607/830 +f 1061/2617/830 1058/2618/830 1054/2607/830 +f 1058/2618/830 1056/2619/830 1054/2607/830 +f 1054/2607/830 1050/2609/830 1045/1553/830 +f 1054/2607/830 1045/1553/830 1063/1555/830 +f 1066/2620/831 1111/2621/831 1072/1556/831 +f 1111/2621/831 1117/2622/831 1072/1556/831 +f 1117/2622/831 1067/2623/831 1072/1556/831 +f 1072/1556/831 1078/2624/831 1064/1557/831 +f 1064/1557/831 1089/2625/831 1065/1558/831 +f 1065/1558/831 1100/2626/831 1072/1556/831 +f 1100/2626/831 1066/2620/831 1072/1556/831 +f 916/1566/833 914/1182/833 915/1180/833 +f 1587/1567/843 1590/1635/843 1588/1568/843 +f 1872/1570/854 1953/1971/854 1867/1571/854 +f 1578/1573/845 1577/2232/845 1574/1574/845 +f 1631/1576/853 1619/1730/853 1621/1577/853 +f 1802/1579/847 1797/2627/847 1796/1580/847 +f 1888/1590/849 1883/2204/849 1884/1591/849 +f 1617/1593/851 1611/1899/851 1613/1594/851 +f 1598/1596/851 1602/1650/851 1600/1597/851 +f 1575/1599/852 1572/1603/852 1573/1600/852 +f 1574/1602/853 1577/2232/853 1572/1603/853 +f 1850/1605/849 1849/2080/849 1846/1606/849 +f 1861/1608/844 1860/2066/844 1864/1609/844 +f 1594/1611/855 1600/1597/855 1595/1612/855 +f 1729/1621/857 1723/1906/857 1724/1622/857 +f 1549/1624/852 1553/1679/852 1554/1625/852 +f 1596/1627/881 1595/1612/881 1601/1628/881 +f 1584/1630/846 1586/1860/846 1582/1631/846 +f 1539/1584/852 1542/1583/852 1540/1633/852 +f 1590/1635/850 1592/1671/850 1591/1636/850 +f 1562/1619/855 1561/2231/855 1558/1638/855 +f 1555/1640/861 1557/1614/861 1562/1619/861 +f 1563/1642/855 1568/1681/855 1564/1643/855 +f 1597/1649/843 1601/1628/843 1602/1650/843 +f 1569/1652/859 1563/1642/859 1565/1653/859 +f 1670/1655/862 1668/2628/862 1669/1656/862 +f 1846/1658/863 1849/2080/863 1847/1659/863 +f 1542/1583/864 1544/1586/864 1543/1661/864 +f 1551/1588/845 1545/2629/845 1543/1663/845 +f 1551/1588/867 1539/1584/867 1541/1664/867 +f 1546/1666/845 1552/1903/845 1547/1667/845 +f 1570/1675/843 1569/1652/843 1567/1676/843 +f 1548/1678/865 1547/1667/865 1553/1679/865 +f 1568/1681/868 1570/1675/868 1566/1682/868 +f 1655/1684/845 1652/1688/845 1653/1685/845 +f 1654/1687/867 1657/2234/867 1652/1688/867 +f 1658/1690/852 1657/2234/852 1654/1691/852 +f 1651/1693/864 1653/1685/864 1658/1690/864 +f 1659/1695/852 1664/1741/852 1660/1696/852 +f 1666/1705/845 1665/1708/845 1663/1706/845 +f 1665/1708/869 1659/1695/869 1661/1709/869 +f 1903/1711/911 1902/2630/911 1899/1712/911 +f 1635/1714/855 1638/1717/855 1636/1715/855 +f 1638/1717/861 1640/1722/861 1639/1718/861 +f 1647/1720/843 1641/2631/843 1639/1721/843 +f 1647/1720/874 1635/1714/874 1637/1723/874 +f 1642/1725/843 1648/2497/843 1643/1726/843 +f 1667/1657/873 1669/2632/873 1673/1735/873 +f 1644/1737/868 1643/1726/868 1649/1738/868 +f 1666/1705/867 1662/2633/867 1660/1740/867 +f 1843/1742/875 1847/1659/875 1844/1743/875 +f 1558/1745/874 1561/2231/874 1556/1617/874 +f 1610/1703/843 1609/2233/843 1606/1747/843 +f 1603/1749/850 1605/1698/850 1610/1703/850 +f 1579/1751/845 1584/1630/845 1580/1752/845 +f 1629/1758/845 1633/1788/845 1634/1759/845 +f 1559/1761/843 1556/1617/843 1557/1614/843 +f 1634/1759/879 1632/2502/879 1626/1763/879 +f 1619/1730/845 1622/1729/845 1620/1765/845 +f 1622/1729/877 1624/1732/877 1623/1767/877 +f 1741/1769/878 1740/2634/878 1739/1770/878 +f 1571/1772/877 1573/1600/877 1578/1573/877 +f 1626/1774/852 1632/2502/852 1627/1775/852 +f 1815/1781/878 1812/2026/878 1813/1782/878 +f 1645/1784/855 1649/1738/855 1650/1785/855 +f 1628/1787/846 1627/1775/846 1633/1788/846 +f 1618/1790/858 1614/2635/858 1612/1791/858 +f 1751/1793/862 1748/1796/862 1749/1794/862 +f 1748/1796/882 1754/1942/882 1752/1797/882 +f 1755/1799/882 1760/1810/882 1756/1800/882 +f 1770/1807/884 1766/1820/884 1769/1808/884 +f 1760/1810/885 1762/1896/885 1759/1811/885 +f 1822/1813/878 1825/1919/878 1819/1814/878 +f 1767/1816/886 1764/1960/886 1765/1817/886 +f 1763/1819/887 1769/2636/887 1766/1820/887 +f 1802/1821/888 1801/1581/888 1798/1822/888 +f 1753/1824/883 1751/1793/883 1747/1825/883 +f 1776/1827/889 1772/2637/889 1773/1828/889 +f 1650/1785/859 1648/2497/859 1642/1838/859 +f 1777/1840/886 1771/1829/886 1773/1841/886 +f 1783/1843/826 1780/1985/826 1781/1844/826 +f 1793/1846/890 1790/2638/890 1791/1847/890 +f 1786/1849/833 1785/1990/833 1782/1850/833 +f 1586/1860/852 1585/2184/852 1583/1861/852 +f 1708/1863/826 1707/2639/826 1712/1864/826 +f 1699/1853/891 1701/2640/891 1705/1866/891 +f 1713/1867/891 1707/2639/891 1708/1868/891 +f 1799/1870/892 1796/1580/892 1797/1871/892 +f 1931/1873/893 1937/2504/893 1934/1874/893 +f 1697/1876/894 1691/2641/894 1692/1877/894 +f 1631/1576/852 1625/2642/852 1623/1879/852 +f 1808/1880/847 1804/2643/847 1805/1881/847 +f 1692/1891/886 1691/2641/886 1696/1892/886 +f 1761/1894/883 1758/2644/883 1759/1895/883 +f 1806/1897/892 1809/2500/892 1803/1882/892 +f 1611/1899/843 1616/1792/843 1612/1900/843 +f 1550/1902/869 1554/1625/869 1552/1903/869 +f 1725/1905/892 1724/2645/892 1723/1906/892 +f 1813/1908/896 1812/2026/896 1818/1909/896 +f 1825/1919/897 1822/2646/897 1823/1920/897 +f 1817/1922/897 1815/1781/897 1811/1923/897 +f 1824/1925/898 1826/1921/898 1823/1926/898 +f 1755/1799/862 1757/2647/862 1758/1928/862 +f 1686/1834/886 1684/2648/886 1685/1929/886 +f 1672/1806/899 1671/2649/899 1668/1930/899 +f 1672/1806/885 1674/1736/885 1673/1931/885 +f 1810/1933/895 1809/2500/895 1806/1934/895 +f 1742/1936/898 1746/2505/898 1745/1937/898 +f 1680/1944/899 1682/2498/899 1679/1945/899 +f 1618/1790/855 1617/1593/855 1615/1947/855 +f 1676/1949/862 1680/1944/862 1678/1950/862 +f 1727/1887/892 1716/2650/892 1717/1952/892 +f 1607/1953/855 1604/1701/855 1605/1698/855 +f 1695/1836/884 1688/1837/884 1689/1955/884 +f 1683/1831/894 1685/2651/894 1689/1957/894 +f 1776/1827/884 1778/2499/884 1775/1958/884 +f 1775/1965/887 1778/2499/887 1777/1840/887 +f 1694/1967/900 1693/2652/900 1696/1892/900 +f 1694/1969/884 1698/1968/884 1697/1876/884 +f 1953/1971/901 1868/2503/901 1869/1972/901 +f 1702/1858/833 1704/1859/833 1705/1974/833 +f 1712/1864/902 1714/1991/902 1710/1976/902 +f 1734/1917/898 1737/1916/898 1736/1978/898 +f 1792/1980/903 1788/2653/903 1789/1981/903 +f 1711/1856/902 1702/1858/902 1703/1983/902 +f 1714/1991/833 1713/1867/833 1706/1992/833 +f 1794/1848/833 1791/2654/833 1788/1994/833 +f 1784/1995/890 1782/1850/890 1783/1843/890 +f 1780/1985/903 1785/1990/903 1786/1997/903 +f 1606/1999/858 1609/2233/858 1604/1701/858 +f 1716/2001/904 1727/1887/904 1718/1889/904 +f 1718/1889/888 1720/1888/888 1721/2003/888 +f 1715/1884/857 1717/2655/857 1721/2005/857 +f 1764/1960/889 1770/1807/889 1768/2006/889 +f 1725/2012/904 1728/1907/904 1730/2013/904 +f 1726/2015/888 1730/2013/888 1729/1621/888 +f 1795/2017/895 1800/2656/895 1798/1822/895 +f 1743/1915/878 1732/2657/878 1733/2018/878 +f 1732/2019/905 1743/1915/905 1734/1917/905 +f 1711/1856/826 1700/2658/826 1701/2021/826 +f 1737/1916/906 1731/1912/906 1733/2022/906 +f 1745/1937/906 1739/1770/906 1740/2024/906 +f 1744/1771/905 1746/2505/905 1742/2031/905 +f 1679/2033/885 1682/2498/885 1681/2034/885 +f 1599/1673/855 1593/2659/855 1591/2036/855 +f 1922/2037/849 1925/2170/849 1923/2038/849 +f 1909/2040/844 1918/2178/844 1910/2041/844 +f 1929/2043/863 1922/2037/863 1924/2044/863 +f 1913/2046/908 1919/2064/908 1914/2047/908 +f 1917/2057/901 1920/2061/901 1921/2058/901 +f 1915/2060/926 1914/2047/926 1920/2061/926 +f 1913/2063/844 1916/2660/844 1921/2058/844 +f 1859/2065/908 1863/2104/908 1860/2066/908 +f 1893/2068/911 1896/2160/911 1894/2069/911 +f 1929/2043/875 1928/2661/875 1926/2071/875 +f 1891/2073/914 1897/2123/914 1895/2074/914 +f 1824/1925/896 1820/2662/896 1821/2076/896 +f 1903/1711/849 1905/2086/849 1901/2082/849 +f 1898/2084/914 1900/2663/914 1901/2085/914 +f 1935/2087/922 1936/2128/922 1930/2088/922 +f 1890/2090/849 1894/2069/849 1891/2073/849 +f 1941/2092/916 1944/2097/916 1942/2093/916 +f 1941/2095/908 1945/2664/908 1943/2096/908 +f 1945/2098/919 1940/2665/919 1939/2099/919 +f 1954/2100/908 1947/2501/908 1948/2101/908 +f 1856/2109/875 1858/2145/875 1854/2110/875 +f 1951/2112/917 1954/2100/917 1946/2113/917 +f 1952/2115/901 1951/2112/901 1949/2116/901 +f 1906/2118/901 1909/2040/901 1907/2119/901 +f 1830/2053/919 1839/2052/919 1831/2121/919 +f 1897/2123/875 1896/2160/875 1893/2124/875 +f 1832/2056/916 1827/2050/916 1829/2126/916 +f 1936/2128/875 1931/1873/875 1932/2129/875 +f 1808/1880/888 1810/1933/888 1807/2139/888 +f 1934/2141/849 1937/2504/849 1935/2087/849 +f 1851/2143/922 1853/2666/922 1854/2144/922 +f 1948/2146/920 1947/2501/920 1952/2115/920 +f 1938/2148/901 1942/2093/901 1939/2099/901 +f 1862/2150/910 1865/2106/910 1863/2104/910 +f 1862/2152/901 1866/2667/901 1864/1609/901 +f 1816/2153/898 1818/1909/898 1817/1922/898 +f 1857/2155/849 1852/2668/849 1853/2156/849 +f 1886/2162/875 1889/2506/875 1887/2163/875 +f 1599/1673/858 1587/1567/858 1589/2165/858 +f 1856/2109/863 1855/2669/863 1852/2167/863 +f 1752/2168/885 1754/1942/885 1753/1824/885 +f 1925/2170/915 1927/2072/915 1926/2171/915 +f 1831/2173/901 1839/2052/901 1832/2056/901 +f 1874/2132/911 1876/2670/911 1880/2175/911 +f 1675/2182/873 1681/2034/873 1676/1949/873 +f 1585/2184/879 1579/1751/879 1581/2185/879 +f 1869/2187/926 1868/2503/926 1873/2188/926 +f 1874/2132/875 1877/2135/875 1875/2190/875 +f 1695/1836/900 1687/2671/900 1684/2192/900 +f 1881/2138/849 1880/2672/849 1878/2193/849 +f 1845/2194/922 1844/1743/922 1850/1605/922 +f 1904/1713/875 1899/2673/875 1900/2196/875 +f 1838/2201/908 1841/2227/908 1842/2202/908 +f 1883/2204/871 1889/2506/871 1886/2205/871 +f 1887/2163/914 1888/1590/914 1882/2207/914 +f 1827/2050/908 1830/2053/908 1828/2209/908 +f 1877/2135/912 1879/2134/912 1878/2211/912 +f 1910/2213/908 1918/2178/908 1911/2181/908 +f 1911/2181/910 1906/2118/910 1908/2215/910 +f 1834/2217/901 1840/2230/901 1835/2218/901 +f 1873/2188/908 1872/1570/908 1870/2224/908 +f 1836/2226/920 1835/2218/920 1841/2227/920 +f 1834/2229/919 1837/2674/919 1842/2202/919 +f 1793/1846/826 1787/1982/826 1789/2235/826 +f 1957/2237/830 1958/2675/830 1956/2238/830 +f 1956/2240/837 1958/2676/837 1959/2241/837 +f 1957/2237/839 1960/2246/839 1959/2243/839 +f 1956/2240/841 1955/2242/841 1961/2245/841 +f 1962/2239/835 1961/2245/835 1960/2246/835 +f 2062/2247/831 2124/2677/831 2146/2248/831 +f 1966/2250/831 2128/2364/831 2127/2251/831 +f 2047/2253/929 2137/2678/929 2071/2254/929 +f 2147/2256/929 2110/2679/929 2111/2257/929 +f 1978/2259/831 2138/2680/831 1979/2260/831 +f 2024/2262/929 2114/2398/929 2115/2263/929 +f 1988/2265/831 2093/2681/831 2148/2266/831 +f 2142/2268/929 2108/2682/929 1990/2269/929 +f 2045/2271/830 2038/2683/830 2116/2272/830 +f 1977/2274/831 2090/2684/831 2028/2275/831 +f 2022/2277/839 2138/2680/839 1978/2278/839 +f 2154/2280/841 2116/2272/841 2038/2281/841 +f 1971/2283/830 2085/2685/830 2050/2284/830 +f 2033/2286/831 2112/2686/831 2149/2287/831 +f 2036/2289/841 2059/2296/841 2042/2290/841 +f 2121/2292/839 2120/2687/839 2053/2293/839 +f 2052/2295/830 2042/2688/830 2059/2296/830 +f 2053/2298/831 2120/2687/831 2082/2299/831 +f 2152/2301/929 2130/2689/929 2131/2302/929 +f 2150/2304/929 2096/2690/929 2097/2305/929 +f 2048/2307/830 2040/2691/830 2119/2308/830 +f 2153/2309/841 2132/2426/841 2065/2310/841 +f 2025/2264/830 2115/2263/830 2034/2312/830 +f 2109/2258/830 2111/2257/830 2026/2314/830 +f 1968/2316/831 2114/2398/831 2024/2262/831 +f 2054/2318/839 2031/2692/839 2023/2319/839 +f 2097/2305/839 2096/2690/839 1994/2321/839 +f 2148/2266/929 2093/2681/929 2094/2323/929 +f 1982/2325/830 2087/2693/830 2092/2324/830 +f 2150/2304/841 2095/2306/841 2088/2326/841 +f 2134/2328/839 2133/2694/839 2076/2329/839 +f 2058/2331/830 2017/2695/830 2016/2332/830 +f 2028/2275/841 2050/2284/841 2085/2334/841 +f 2149/2287/929 2112/2686/929 2113/2336/929 +f 2035/2338/831 2122/2696/831 2036/2289/831 +f 1993/2340/830 2089/2697/830 2098/2341/830 +f 2111/2257/839 2110/2679/839 2030/2343/839 +f 2142/2268/841 2107/2270/841 1989/2345/841 +f 2127/2251/841 2145/2376/841 2044/2347/841 +f 2027/2349/831 2108/2682/831 2142/2268/831 +f 2079/2351/831 2135/2698/831 2084/2352/831 +f 1979/2260/841 2021/2431/841 2067/2354/841 +f 2023/2356/831 2031/2692/831 2032/2357/831 +f 2125/2333/839 2124/2677/839 2062/2359/839 +f 2069/2361/830 2063/2699/830 2129/2303/830 +f 1987/2362/830 2088/2700/830 2095/2306/830 +f 2061/2363/839 2126/2377/839 2128/2364/839 +f 2151/2366/841 2098/2341/841 2089/2367/841 +f 1969/2369/831 2103/2427/831 2102/2370/831 +f 2143/2372/929 2091/2701/929 1985/2373/929 +f 2061/2375/830 2044/2702/830 2145/2376/830 +f 1976/2378/830 2086/2703/830 1984/2374/830 +f 2113/2336/839 2112/2686/839 2033/2379/839 +f 2075/2381/830 2057/2704/830 2056/2382/830 +f 2083/2384/830 2068/2705/830 2144/2385/830 +f 2070/2387/830 1997/2706/830 1996/2255/830 +f 2144/2385/929 2140/2410/929 2141/2388/929 +f 2100/2342/839 2099/2707/839 2000/2389/839 +f 2046/2391/831 2137/2678/831 2047/2253/831 +f 1983/2393/831 2091/2701/831 2143/2372/831 +f 2074/2337/830 2113/2336/830 2029/2395/830 +f 2034/2397/839 2115/2263/839 2114/2398/839 +f 1973/2400/841 2002/2413/841 2043/2401/841 +f 2152/2301/841 2129/2303/841 2063/2403/841 +f 1965/2405/841 2140/2410/841 2144/2385/841 +f 2028/2275/929 2090/2684/929 2051/2285/929 +f 2146/2248/841 2016/2332/841 2017/2407/841 +f 2082/2299/929 2120/2687/929 2121/2292/929 +f 1964/2409/831 2141/2388/831 2140/2410/831 +f 2001/2412/830 2043/2708/830 2002/2413/830 +f 2032/2357/929 2031/2692/929 2054/2318/929 +f 2151/2366/929 2099/2707/929 2100/2342/929 +f 2049/2416/831 2117/2709/831 2154/2280/831 +f 1970/2418/841 2024/2262/841 2025/2264/841 +f 1999/2420/830 2078/2710/830 2077/2421/830 +f 2000/2423/831 2099/2707/831 2151/2366/831 +f 2072/2425/830 2065/2711/830 2132/2426/830 +f 2077/2421/929 2102/2370/929 2103/2427/929 +f 2104/2428/830 2105/2432/830 2014/2429/830 +f 1979/2260/929 2138/2680/929 2022/2277/929 +f 2105/2432/839 2080/2712/839 2019/2433/839 +f 2084/2352/841 2056/2382/841 2057/2435/841 +f 2081/2437/841 2104/2428/841 2004/2438/841 +f 2060/2297/839 2122/2696/839 2035/2440/839 +f 2143/2372/841 1984/2374/841 2086/2442/841 +f 2148/2266/841 2092/2324/841 2087/2444/841 +f 1994/2446/831 2096/2690/831 2150/2304/831 +f 2118/2273/839 2117/2709/839 2049/2448/839 +f 2071/2254/839 2137/2678/839 2046/2450/839 +f 2107/2270/830 1990/2269/830 1991/2452/830 +f 2136/2383/839 2135/2698/839 2079/2454/839 +f 2084/2352/929 2135/2698/929 2136/2383/929 +f 2003/2414/839 2123/2713/839 1972/2456/839 +f 2094/2323/839 2093/2681/839 1988/2458/839 +f 2154/2280/929 2117/2709/929 2118/2273/929 +f 2020/2460/830 2067/2714/830 2021/2431/830 +f 2102/2370/841 2077/2421/841 2078/2461/841 +f 1973/2400/929 2123/2713/929 2003/2414/929 +f 2082/2299/841 2119/2308/841 2040/2463/841 +f 2146/2248/929 2124/2677/929 2125/2333/929 +f 2032/2357/841 2106/2415/841 2006/2465/841 +f 1985/2373/839 2091/2701/839 1983/2467/839 +f 2139/2386/839 2141/2388/839 1964/2469/839 +f 2047/2253/841 1996/2255/841 1997/2471/841 +f 2145/2376/929 2127/2251/929 2128/2364/929 +f 2051/2285/839 2090/2684/839 1977/2473/839 +f 2036/2289/929 2122/2696/929 2060/2297/929 +f 1972/2475/831 2123/2713/831 1973/2400/831 +f 2101/2422/839 2103/2427/839 1969/2477/839 +f 2147/2256/841 2109/2258/841 2009/2479/841 +f 2149/2287/841 2074/2337/841 2011/2481/841 +f 2081/2437/929 2080/2712/929 2105/2432/929 +f 2153/2309/929 2133/2694/929 2134/2328/929 +f 2019/2483/831 2080/2712/831 2081/2437/831 +f 2073/2485/831 2130/2689/831 2152/2301/831 +f 2106/2415/830 2054/2318/830 2018/2487/830 +f 1990/2269/839 2108/2682/839 2027/2489/839 +f 2076/2491/831 2133/2694/831 2153/2309/831 +f 2131/2302/839 2130/2689/839 2073/2493/839 +f 2030/2495/831 2110/2679/831 2147/2256/831 +f 1904/1713/923 1898/2084/923 1905/2086/923 +f 1584/1630/860 1579/1751/860 1585/2184/860 +f 1568/1681/856 1563/1642/856 1569/1652/856 +f 1552/1903/848 1554/1625/848 1553/1679/848 +f 1664/1741/880 1659/1695/880 1665/1708/880 +f 1648/2497/876 1650/1785/876 1649/1738/876 +f 1616/1792/870 1611/1899/870 1617/1593/870 +f 1696/1892/887 1691/2641/887 1697/1876/887 +f 1600/1597/866 1602/1650/866 1601/1628/866 +f 1680/1944/883 1676/1949/883 1681/2034/883 +f 1776/1827/900 1771/1829/900 1777/1840/900 +f 1712/1864/890 1707/2639/890 1713/1867/890 +f 1792/1980/902 1787/1982/902 1793/1846/902 +f 1810/1933/904 1808/1880/904 1803/1882/904 +f 1947/2501/927 1954/2100/927 1951/2112/927 +f 1760/1810/899 1755/1799/899 1761/1894/899 +f 1730/2013/895 1728/1907/895 1723/1906/895 +f 1824/1925/905 1819/1814/905 1825/1919/905 +f 1632/2502/872 1634/1759/872 1633/1788/872 +f 1857/2155/913 1851/2143/913 1858/2145/913 +f 1868/2503/918 1953/1971/918 1872/1570/918 +f 1936/2128/925 1935/2087/925 1937/2504/925 +f 1840/2230/909 1842/2202/909 1841/2227/909 +f 1744/1771/897 1739/1770/897 1745/1937/897 +f 1888/1590/921 1887/2163/921 1889/2506/921 +f 1919/2064/924 1921/2058/924 1920/2061/924 +f 1960/2246/831 1961/2245/831 1955/2507/831 +f 2157/2509/837 2161/2519/837 2159/2510/837 +f 2155/2512/841 2159/2510/841 2160/2513/841 +f 2156/2515/835 2160/2513/835 2162/2516/835 +f 2158/2518/839 2162/2516/839 2161/2519/839 +f 2164/2521/835 2168/2531/835 2170/2522/835 +f 2166/2524/839 2170/2522/839 2169/2525/839 +f 2165/2527/837 2169/2525/837 2167/2528/837 +f 2163/2530/841 2167/2528/841 2168/2531/841 +f 2159/2510/831 2161/2519/831 2162/2516/831 +f 2168/2531/831 2167/2528/831 2169/2525/831 +s 1 +f 1252/1329/832 1247/1461/845 1249/1316/832 +f 1262/1366/855 1257/1355/827 1259/1357/855 +f 1050/2715/901 1047/2716/838 1048/2717/838 +f 1244/1305/825 1242/1397/908 1238/1299/908 +f 1058/2718/852 1055/2719/833 1056/2720/833 +f 1366/1527/930 1361/1497/931 1358/1486/930 +f 1202/1423/829 1199/2571/852 1200/1424/852 +f 1260/1428/827 1255/1344/901 1257/1355/827 +f 1266/2572/852 1261/1419/833 1263/1451/852 +f 1035/2721/908 1034/2722/828 1032/2723/828 +f 1256/2560/838 1254/1433/875 1253/1435/838 +f 1242/1397/908 1240/1304/828 1238/1299/908 +f 1250/1321/845 1245/1415/826 1247/1461/845 +f 1052/2724/827 1049/2725/901 1050/2715/901 +f 1060/2726/832 1042/2727/845 1043/2728/845 +f 1181/1313/843 1178/1310/825 1179/1333/825 +f 1174/2574/828 1203/1382/849 1204/1464/849 +f 1347/1479/932 1345/1515/933 1342/1480/933 +f 1032/2723/828 1062/2729/849 1063/2730/849 +f 1362/2603/827 1355/1477/934 1353/1533/934 +f 1269/1341/849 1265/1352/829 1267/1302/849 +f 1351/1530/935 1337/1520/936 1339/1536/935 +f 1239/1399/828 1267/1302/849 1240/1304/828 +f 1246/1540/843 1244/1305/825 1243/1413/843 +f 1190/2564/838 1188/1374/875 1187/1336/875 +f 1185/1381/845 1182/1412/826 1183/2559/826 +f 1054/2731/855 1051/2732/827 1052/2724/827 +f 1264/1364/833 1259/1357/855 1261/1419/833 +f 1056/2720/833 1053/2733/855 1054/2731/855 +f 1200/1424/852 1197/1367/833 1198/1359/833 +f 1063/2730/849 1059/2734/829 1061/2735/829 +f 1466/2736/827 1478/2737/937 1469/2738/938 +f 1041/2739/826 1038/2740/843 1039/2741/843 +f 1043/2728/845 1040/2742/826 1041/2739/826 +f 1248/1323/826 1243/1413/843 1245/1415/826 +f 1179/1333/825 1175/1401/908 1177/1334/908 +f 1217/1380/832 1184/1455/845 1185/1381/845 +f 1254/1433/875 1252/1329/832 1249/1316/832 +f 1369/1476/939 1353/1533/934 1355/1477/934 +f 1521/2743/940 1150/2744/941 1151/2745/940 +f 1067/2746/942 1068/2747/943 1069/2748/943 +f 1070/2749/944 1068/2747/943 1071/2750/942 +f 1072/2751/944 1073/2752/943 1070/2749/944 +f 1082/2753/945 1064/2754/946 1078/2755/947 +f 1072/2756/944 1075/2757/948 1076/2758/948 +f 1077/2759/947 1075/2757/948 1070/2760/944 +f 1078/2761/947 1079/2762/948 1077/2759/947 +f 1519/2763/949 1125/2764/950 1141/2765/949 +f 1078/2755/947 1081/2766/945 1082/2753/945 +f 1083/2767/946 1081/2766/945 1077/2768/947 +f 1064/2754/946 1084/2769/945 1083/2767/946 +f 1518/2770/951 1126/2771/952 1136/2772/953 +f 1064/2773/946 1086/2774/954 1087/2775/954 +f 1083/2776/946 1088/2777/954 1086/2774/954 +f 1089/2778/955 1088/2777/954 1090/2779/955 +f 1155/2780/956 1156/2781/957 1150/2782/941 +f 1089/2783/955 1092/2784/958 1093/2785/958 +f 1090/2786/955 1094/2787/958 1092/2784/958 +f 1065/2788/959 1094/2787/958 1095/2789/959 +f 1525/2790/960 1169/2791/961 1170/2792/960 +f 1065/2793/959 1097/2794/962 1098/2795/962 +f 1099/2796/963 1097/2794/962 1095/2797/959 +f 1100/2798/963 1101/2799/962 1099/2796/963 +f 1146/2800/964 1125/2801/950 1145/2802/965 +f 1100/2803/963 1103/2804/966 1104/2805/966 +f 1105/2806/967 1103/2804/966 1099/2807/963 +f 1066/2808/967 1106/2809/966 1105/2806/967 +f 1523/2810/968 1124/2811/969 1160/2812/968 +f 1066/2813/967 1108/2814/970 1109/2815/970 +f 1110/2816/971 1108/2814/970 1105/2817/967 +f 1111/2818/971 1112/2819/970 1110/2816/971 +f 1072/2756/944 1080/2820/948 1078/2761/947 +f 1111/2821/971 1114/2822/972 1115/2823/972 +f 1116/2824/973 1114/2822/972 1110/2825/971 +f 1117/2826/973 1118/2827/972 1116/2824/973 +f 1526/2828/974 1127/2829/975 1173/2830/974 +f 1117/2831/973 1120/2832/976 1121/2833/976 +f 1116/2834/973 1122/2835/976 1120/2832/976 +f 1067/2836/942 1122/2835/976 1071/2837/942 +f 1064/2773/946 1091/2838/954 1089/2778/955 +f 1485/2839/977 1477/2840/978 1474/2841/979 +f 1127/2842/975 1128/2843/980 1129/2844/975 +f 1128/2843/980 1130/2845/952 1129/2844/975 +f 1131/2846/980 1126/2847/952 1130/2845/952 +f 1072/2751/944 1069/2748/943 1074/2848/943 +f 1126/2771/952 1133/2849/951 1130/2850/952 +f 1133/2849/951 1134/2851/953 1130/2850/952 +f 1135/2852/951 1136/2772/953 1134/2851/953 +f 1111/2818/971 1109/2815/970 1113/2853/970 +f 1136/2854/953 1138/2855/949 1134/2856/953 +f 1138/2855/949 1139/2857/950 1134/2856/953 +f 1140/2858/949 1125/2764/950 1139/2857/950 +f 1524/2859/981 1164/2860/982 1165/2861/981 +f 1125/2801/950 1142/2862/964 1139/2863/950 +f 1139/2863/950 1143/2864/964 1144/2865/965 +f 1143/2864/964 1145/2802/965 1144/2865/965 +f 1517/2866/980 1126/2847/952 1132/2867/980 +f 1145/2868/965 1147/2869/940 1144/2870/965 +f 1144/2870/965 1148/2871/940 1149/2872/941 +f 1148/2871/940 1150/2744/941 1149/2872/941 +f 1065/2788/959 1093/2785/958 1096/2873/958 +f 1150/2782/941 1152/2874/957 1149/2875/941 +f 1152/2874/957 1153/2876/956 1149/2875/941 +f 1154/2877/957 1155/2780/956 1153/2876/956 +f 1098/2795/962 1100/2798/963 1065/2793/959 +f 1155/2878/956 1157/2879/968 1153/2880/956 +f 1153/2880/956 1158/2881/968 1159/2882/969 +f 1158/2881/968 1124/2811/969 1159/2882/969 +f 1124/2883/969 1161/2884/981 1159/2885/969 +f 1161/2884/981 1162/2886/982 1159/2885/969 +f 1163/2887/981 1164/2860/982 1162/2886/982 +f 1104/2805/966 1066/2808/967 1100/2803/963 +f 1164/2888/982 1166/2889/960 1162/2890/982 +f 1162/2890/982 1167/2891/960 1168/2892/961 +f 1167/2891/960 1169/2791/961 1168/2892/961 +f 1115/2823/972 1117/2826/973 1111/2821/971 +f 1169/2893/961 1171/2894/974 1168/2895/961 +f 1171/2894/974 1129/2896/975 1168/2895/961 +f 1172/2897/974 1127/2829/975 1129/2896/975 +f 1121/2833/976 1067/2836/942 1117/2831/973 +f 1048/2898/838 1046/2899/875 1045/2900/875 +f 1258/1425/901 1253/2567/838 1255/1344/901 +f 1316/1505/983 1308/1495/984 1310/1491/984 +f 1217/1380/832 1188/1374/875 1186/1373/832 +f 1061/2735/829 1057/2901/852 1058/2718/852 +f 1037/2902/825 1033/2903/908 1035/2721/908 +f 1183/2559/826 1180/1311/843 1181/1313/843 +f 1196/2562/855 1193/1351/827 1194/1325/827 +f 1194/1325/827 1191/1350/901 1192/1339/901 +f 1204/1464/849 1201/1458/829 1202/1423/829 +f 1198/1359/833 1195/1361/855 1196/2562/855 +f 1177/1334/908 1176/2576/828 1174/2574/828 +f 1192/1339/901 1189/2585/838 1190/1340/838 +f 1335/1489/985 1324/1483/986 1321/1471/986 +f 1327/1503/829 1321/1471/986 1324/1483/986 +f 1331/1164/987 1326/1502/988 1328/1507/987 +f 1317/1508/989 1306/1500/990 1303/1504/989 +f 1310/1491/984 1313/2597/825 1312/2596/825 +f 1303/1504/989 1313/2597/825 1317/1508/989 +f 1268/1343/829 1263/1451/852 1265/1352/829 +f 1039/2741/843 1036/2904/825 1037/2902/825 +f 1343/1522/832 1337/1520/936 1340/1511/936 +f 1366/1527/930 1363/2593/827 1362/2603/827 +f 1060/2726/832 1046/2899/875 1044/2905/832 +f 1329/1166/988 1327/1503/829 1326/1502/988 +f 1345/1515/933 1343/1522/832 1342/1480/933 +f 1440/2906/991 1444/2907/992 1443/2908/993 +f 1507/2909/994 1370/2910/995 1511/2911/996 +f 1385/2912/997 1377/2913/908 1389/2914/828 +f 1381/2915/831 1373/2916/998 1375/2917/999 +f 1459/2918/1000 1464/2919/1001 1453/2920/1002 +f 1403/2921/1003 1416/2922/1004 1405/2923/1005 +f 1386/2924/1006 1387/2925/830 1371/2926/1007 +f 1416/2922/1004 1407/2927/1008 1405/2923/1005 +f 1510/2928/849 1385/2912/997 1389/2914/828 +f 1500/2929/1009 1507/2930/994 1511/2931/996 +f 1465/2932/1010 1458/2933/1011 1454/2934/1012 +f 1442/2935/875 1446/2936/1013 1435/2937/1014 +f 1454/2934/1012 1464/2919/1001 1465/2932/1010 +f 1381/2938/831 1375/2939/999 1392/2940/1015 +f 1394/2941/1016 1405/2942/1005 1396/2943/1017 +f 1479/2944/1018 1462/2945/1019 1470/2946/1020 +f 1371/2947/1007 1387/2948/830 1390/2949/1021 +f 1372/2950/1022 1395/2951/1023 1379/2952/1024 +f 1377/2913/908 1394/2941/1016 1378/2953/1025 +f 1505/2954/1026 1496/2955/852 1494/2956/1027 +f 1473/2957/1028 1467/2958/1029 1463/2959/1030 +f 1463/2960/1030 1457/2961/1031 1456/2962/1032 +f 1393/2963/825 1399/2964/1033 1400/2965/843 +f 1476/2966/1034 1470/2946/1020 1467/2958/1029 +f 1381/2967/831 1392/2968/1015 1402/2969/1035 +f 1469/2738/938 1471/2970/1036 1464/2971/1001 +f 1379/2952/1024 1397/2972/1037 1384/2973/1038 +f 1390/2974/1021 1387/2975/830 1406/2976/1039 +f 1464/2971/1001 1474/2977/979 1465/2978/1010 +f 1406/2979/1039 1387/2980/830 1408/2981/1040 +f 1416/2982/1004 1420/2983/1041 1409/2984/1042 +f 1455/2985/901 1469/2738/938 1459/2918/1000 +f 1473/2986/1028 1487/2987/1043 1476/2988/1034 +f 1409/2984/1042 1423/2989/1044 1413/2990/1045 +f 1472/2991/1046 1486/2992/833 1475/2993/855 +f 1382/2994/1047 1374/2995/1048 1388/2996/1049 +f 1381/2997/831 1402/2998/1035 1413/2999/1045 +f 1478/2737/937 1482/3000/1050 1471/3001/1036 +f 1480/3002/1051 1472/2991/1046 1479/3003/1018 +f 1446/3004/1013 1453/3005/1002 1448/3006/1052 +f 1428/3007/1053 1435/2937/1014 1438/3008/1054 +f 1408/3009/1040 1387/3010/830 1419/3011/1055 +f 1474/2841/979 1482/3000/1050 1485/2839/977 +f 1496/2955/852 1488/3012/1056 1486/2992/833 +f 1406/2979/1039 1412/3013/1057 1401/3014/1058 +f 1451/3015/1059 1437/3016/1060 1441/3017/1061 +f 1410/3018/1062 1421/3019/845 1411/3020/826 +f 1401/3014/1058 1415/3021/1063 1404/3022/1064 +f 1381/3023/831 1413/2990/1045 1423/2989/1044 +f 1438/3008/1054 1431/3024/1065 1428/3007/1053 +f 1381/3025/831 1423/3026/1044 1427/3027/1066 +f 1502/3028/1067 1508/3029/1068 1504/3030/1069 +f 1514/3031/1070 1505/2954/1026 1503/3032/1071 +f 1419/3033/1055 1387/3034/830 1430/3035/1072 +f 1433/3036/1073 1425/3037/1074 1422/3038/1075 +f 1502/3028/1067 1510/2928/849 1513/3039/1076 +f 1422/3038/1075 1430/3035/1072 1433/3036/1073 +f 1421/3019/845 1429/3040/1077 1432/3041/832 +f 1432/3041/832 1439/3042/1078 1442/2935/875 +f 1508/3043/1068 1388/3044/1049 1509/3045/1079 +f 1381/3046/831 1427/3047/1066 1437/3048/1060 +f 1508/3043/1068 1376/3049/1080 1382/3050/1047 +f 1417/3051/1081 1431/3052/1065 1420/3053/1041 +f 1430/3054/1072 1387/3055/830 1440/3056/991 +f 1396/2943/1017 1407/3057/1008 1398/3058/1082 +f 1393/2963/825 1403/2921/1003 1394/2941/1016 +f 1398/3059/1082 1375/2939/999 1374/3060/1048 +f 1433/3061/1073 1440/3056/991 1443/3062/993 +f 1444/3063/992 1456/3064/1032 1457/3065/1031 +f 1451/3066/1059 1458/3067/1011 1445/3068/1083 +f 1449/3069/1084 1442/2935/875 1439/3042/1078 +f 1447/3070/1085 1457/3065/1031 1460/3071/1086 +f 1381/3072/831 1437/3016/1060 1445/3073/1083 +f 1447/3070/1085 1461/3074/1087 1449/3075/1084 +f 1460/3076/1086 1462/2945/1019 1461/3074/1087 +f 1440/2906/991 1387/3077/830 1450/3078/1088 +f 1448/3006/1052 1454/3079/1012 1451/3066/1059 +f 1452/3080/838 1459/2918/1000 1446/3004/1013 +f 1476/2988/1034 1480/3002/1051 1479/3003/1018 +f 1425/3037/1074 1429/3040/1077 1418/3081/1089 +f 1419/3011/1055 1412/3082/1057 1408/3009/1040 +f 1388/3044/1049 1512/3083/1090 1509/3045/1079 +f 1475/2993/855 1488/3012/1056 1478/2737/937 +f 1503/3032/1071 1511/2931/996 1514/3031/1070 +f 1381/3084/831 1445/3068/1083 1458/3067/1011 +f 1404/3085/1064 1397/2972/1037 1395/3086/1023 +f 1447/3087/1085 1439/3042/1078 1436/3088/1091 +f 1450/3089/1088 1387/3090/830 1456/3064/1032 +f 1491/3091/1092 1504/3092/1069 1493/3093/1093 +f 1456/2962/1032 1387/3094/830 1463/2960/1030 +f 1487/3095/1043 1492/3096/1094 1480/3097/1051 +f 1414/3098/1095 1421/3019/845 1424/3099/1096 +f 1506/3100/1097 1512/3101/1090 1501/3102/1098 +f 1497/3103/1099 1499/3104/1100 1500/3105/1009 +f 1510/2928/849 1376/3049/1080 1513/3039/1076 +f 1489/3106/1101 1504/3092/1069 1506/3107/1097 +f 1381/3108/831 1458/2933/1011 1468/3109/1102 +f 1435/2937/1014 1448/3110/1052 1438/3111/1054 +f 1429/3040/1077 1436/3112/1091 1439/3042/1078 +f 1383/3113/1103 1394/2941/1016 1396/3114/1017 +f 1463/2959/1030 1387/3115/830 1473/2957/1028 +f 1395/3086/1023 1401/3116/1058 1404/3085/1064 +f 1432/3041/832 1435/2937/1014 1434/3117/1104 +f 1420/3053/1041 1427/3027/1066 1423/3026/1044 +f 1398/3058/1082 1402/2969/1035 1392/2968/1015 +f 1466/2736/827 1472/2991/1046 1475/2993/855 +f 1396/3114/1017 1374/3060/1048 1383/3113/1103 +f 1381/3118/831 1468/3119/1102 1477/3120/978 +f 1415/3121/1063 1422/3122/1075 1425/3123/1074 +f 1381/3124/831 1477/2840/978 1481/3125/1105 +f 1382/2994/1047 1378/2953/1025 1383/3126/1103 +f 1380/3127/1106 1384/2973/1038 1385/2912/997 +f 1473/2986/1028 1387/3128/830 1484/3129/1107 +f 1372/3130/1022 1380/3127/1106 1370/3131/995 +f 1399/2964/1033 1411/3020/826 1400/2965/843 +f 1431/3024/1065 1437/3048/1060 1427/3047/1066 +f 1409/3132/1042 1402/2998/1035 1407/2927/1008 +f 1411/3020/826 1403/2921/1003 1400/2965/843 +f 1495/3133/1108 1487/3095/1043 1484/3134/1107 +f 1397/2972/1037 1377/2913/908 1384/2973/1038 +f 1485/3135/977 1493/3136/1093 1489/3137/1101 +f 1381/3138/831 1481/3139/1105 1490/3140/1109 +f 1414/3098/1095 1417/3141/1081 1416/2982/1004 +f 1415/3021/1063 1399/2964/1033 1404/3022/1064 +f 1484/3134/1107 1387/3142/830 1495/3133/1108 +f 1433/3061/1073 1436/3112/1091 1426/3143/1110 +f 1461/3074/1087 1452/3080/838 1449/3075/1084 +f 1371/2947/1007 1391/3144/1111 1372/2950/1022 +f 1462/2945/1019 1455/2985/901 1461/3074/1087 +f 1506/3107/1097 1490/3145/1109 1489/3106/1101 +f 1485/3135/977 1490/3140/1109 1481/3139/1105 +f 1486/2992/833 1494/2956/1027 1496/2955/852 +f 1504/3030/1069 1509/3146/1079 1506/3100/1097 +f 1381/3147/831 1490/3145/1109 1501/3148/1098 +f 1492/3149/1094 1505/2954/1026 1494/2956/1027 +f 1514/3150/1070 1385/2912/997 1515/3151/1112 +f 1495/3152/1108 1387/3153/830 1499/3104/1100 +f 1497/3103/1099 1503/3154/1071 1492/3149/1094 +f 1499/3155/1100 1387/3156/830 1507/2930/994 +f 1443/2908/993 1447/3087/1085 1436/3088/1091 +f 1491/3091/1092 1498/3157/829 1502/3028/1067 +f 1465/2978/1010 1477/3120/978 1468/3119/1102 +f 1406/2976/1039 1391/3158/1111 1390/2974/1021 +f 1505/2954/1026 1510/2928/849 1498/3157/829 +f 1441/3017/1061 1448/3110/1052 1451/3015/1059 +f 1381/3159/831 1501/3102/1098 1512/3101/1090 +f 1480/3097/1051 1494/2956/1027 1483/3160/1113 +f 1434/3117/1104 1417/3051/1081 1424/3099/1096 +f 1425/3123/1074 1410/3018/1062 1415/3121/1063 +f 1507/2909/994 1387/3161/830 1386/3162/1006 +f 1370/2910/995 1514/3150/1070 1511/2911/996 +f 1421/3019/845 1434/3117/1104 1424/3099/1096 +f 1370/3131/995 1371/2926/1007 1372/3130/1022 +f 1388/2996/1049 1375/2917/999 1373/2916/998 +f 1376/3049/1080 1377/2913/908 1378/2953/1025 +f 1457/2961/1031 1470/3163/1020 1460/3076/1086 +f 1381/3164/831 1512/3083/1090 1373/3165/998 +f 1488/3012/1056 1493/3136/1093 1482/3166/1050 +f 1067/2746/942 1071/2750/942 1068/2747/943 +f 1070/2749/944 1073/2752/943 1068/2747/943 +f 1072/2751/944 1074/2848/943 1073/2752/943 +f 1072/2756/944 1070/2760/944 1075/2757/948 +f 1077/2759/947 1079/2762/948 1075/2757/948 +f 1078/2761/947 1080/2820/948 1079/2762/948 +f 1078/2755/947 1077/2768/947 1081/2766/945 +f 1083/2767/946 1084/2769/945 1081/2766/945 +f 1064/2754/946 1085/3167/945 1084/2769/945 +f 1064/2773/946 1083/2776/946 1086/2774/954 +f 1083/2776/946 1090/2779/955 1088/2777/954 +f 1089/2778/955 1091/2838/954 1088/2777/954 +f 1089/2783/955 1090/2786/955 1092/2784/958 +f 1090/2786/955 1095/2789/959 1094/2787/958 +f 1065/2788/959 1096/2873/958 1094/2787/958 +f 1065/2793/959 1095/2797/959 1097/2794/962 +f 1099/2796/963 1101/2799/962 1097/2794/962 +f 1100/2798/963 1102/3168/962 1101/2799/962 +f 1100/2803/963 1099/2807/963 1103/2804/966 +f 1105/2806/967 1106/2809/966 1103/2804/966 +f 1066/2808/967 1107/3169/966 1106/2809/966 +f 1066/2813/967 1105/2817/967 1108/2814/970 +f 1110/2816/971 1112/2819/970 1108/2814/970 +f 1111/2818/971 1113/2853/970 1112/2819/970 +f 1111/2821/971 1110/2825/971 1114/2822/972 +f 1116/2824/973 1118/2827/972 1114/2822/972 +f 1117/2826/973 1119/3170/972 1118/2827/972 +f 1117/2831/973 1116/2834/973 1120/2832/976 +f 1116/2834/973 1071/2837/942 1122/2835/976 +f 1067/2836/942 1123/3171/976 1122/2835/976 +f 1127/2842/975 1517/2866/980 1128/2843/980 +f 1128/2843/980 1131/2846/980 1130/2845/952 +f 1131/2846/980 1132/2867/980 1126/2847/952 +f 1126/2771/952 1137/3172/951 1133/2849/951 +f 1133/2849/951 1135/2852/951 1134/2851/953 +f 1135/2852/951 1518/2770/951 1136/2772/953 +f 1136/2854/953 1519/2763/949 1138/2855/949 +f 1138/2855/949 1140/2858/949 1139/2857/950 +f 1140/2858/949 1141/2765/949 1125/2764/950 +f 1125/2801/950 1520/3173/964 1142/2862/964 +f 1139/2863/950 1142/2862/964 1143/2864/964 +f 1143/2864/964 1146/2800/964 1145/2802/965 +f 1145/2868/965 1521/2743/940 1147/2869/940 +f 1144/2870/965 1147/2869/940 1148/2871/940 +f 1148/2871/940 1151/2745/940 1150/2744/941 +f 1150/2782/941 1156/2781/957 1152/2874/957 +f 1152/2874/957 1154/2877/957 1153/2876/956 +f 1154/2877/957 1522/3174/957 1155/2780/956 +f 1155/2878/956 1523/2810/968 1157/2879/968 +f 1153/2880/956 1157/2879/968 1158/2881/968 +f 1158/2881/968 1160/2812/968 1124/2811/969 +f 1124/2883/969 1524/2859/981 1161/2884/981 +f 1161/2884/981 1163/2887/981 1162/2886/982 +f 1163/2887/981 1165/2861/981 1164/2860/982 +f 1164/2888/982 1525/2790/960 1166/2889/960 +f 1162/2890/982 1166/2889/960 1167/2891/960 +f 1167/2891/960 1170/2792/960 1169/2791/961 +f 1169/2893/961 1526/2828/974 1171/2894/974 +f 1171/2894/974 1172/2897/974 1129/2896/975 +f 1172/2897/974 1173/2830/974 1127/2829/975 +f 1252/1329/832 1250/1321/845 1247/1461/845 +f 1262/1366/855 1260/1428/827 1257/1355/827 +f 1050/2715/901 1049/2725/901 1047/2716/838 +f 1244/1305/825 1241/1296/825 1242/1397/908 +f 1058/2718/852 1057/2901/852 1055/2719/833 +f 1366/1527/930 1360/1526/931 1361/1497/931 +f 1202/1423/829 1201/1458/829 1199/2571/852 +f 1260/1428/827 1258/1425/901 1255/1344/901 +f 1266/2572/852 1264/1364/833 1261/1419/833 +f 1035/2721/908 1033/2903/908 1034/2722/828 +f 1256/2560/838 1251/1318/875 1254/1433/875 +f 1242/1397/908 1239/1399/828 1240/1304/828 +f 1250/1321/845 1248/1323/826 1245/1415/826 +f 1052/2724/827 1051/2732/827 1049/2725/901 +f 1060/2726/832 1044/2905/832 1042/2727/845 +f 1181/1313/843 1180/1311/843 1178/1310/825 +f 1174/2574/828 1176/2576/828 1203/1382/849 +f 1347/1479/932 1344/1513/932 1345/1515/933 +f 1032/2723/828 1034/2722/828 1062/2729/849 +f 1362/2603/827 1363/2593/827 1355/1477/934 +f 1269/1341/849 1268/1343/829 1265/1352/829 +f 1351/1530/935 1340/1511/936 1337/1520/936 +f 1239/1399/828 1269/1341/849 1267/1302/849 +f 1246/1540/843 1241/1296/825 1244/1305/825 +f 1190/2564/838 1189/2586/838 1188/1374/875 +f 1185/1381/845 1184/1455/845 1182/1412/826 +f 1054/2731/855 1053/2733/855 1051/2732/827 +f 1264/1364/833 1262/1366/855 1259/1357/855 +f 1056/2720/833 1055/2719/833 1053/2733/855 +f 1200/1424/852 1199/2571/852 1197/1367/833 +f 1063/2730/849 1062/2729/849 1059/2734/829 +f 1466/2736/827 1475/2993/855 1478/2737/937 +f 1041/2739/826 1040/2742/826 1038/2740/843 +f 1043/2728/845 1042/2727/845 1040/2742/826 +f 1248/1323/826 1246/1540/843 1243/1413/843 +f 1179/1333/825 1178/1310/825 1175/1401/908 +f 1217/1380/832 1186/1373/832 1184/1455/845 +f 1254/1433/875 1251/1318/875 1252/1329/832 +f 1369/1476/939 1356/1517/939 1353/1533/934 +f 1521/2743/940 1145/2868/965 1150/2744/941 +f 1082/2753/945 1085/3167/945 1064/2754/946 +f 1519/2763/949 1136/2854/953 1125/2764/950 +f 1518/2770/951 1137/3172/951 1126/2771/952 +f 1155/2780/956 1522/3174/957 1156/2781/957 +f 1525/2790/960 1164/2888/982 1169/2791/961 +f 1146/2800/964 1520/3173/964 1125/2801/950 +f 1523/2810/968 1155/2878/956 1124/2811/969 +f 1072/2756/944 1076/2758/948 1080/2820/948 +f 1526/2828/974 1169/2893/961 1127/2829/975 +f 1064/2773/946 1087/2775/954 1091/2838/954 +f 1485/2839/977 1481/3125/1105 1477/2840/978 +f 1072/2751/944 1067/2746/942 1069/2748/943 +f 1111/2818/971 1066/2813/967 1109/2815/970 +f 1524/2859/981 1124/2883/969 1164/2860/982 +f 1517/2866/980 1127/2842/975 1126/2847/952 +f 1065/2788/959 1089/2783/955 1093/2785/958 +f 1098/2795/962 1102/3168/962 1100/2798/963 +f 1104/2805/966 1107/3169/966 1066/2808/967 +f 1115/2823/972 1119/3170/972 1117/2826/973 +f 1121/2833/976 1123/3171/976 1067/2836/942 +f 1048/2898/838 1047/3175/838 1046/2899/875 +f 1258/1425/901 1256/2583/838 1253/2567/838 +f 1316/1505/983 1311/1523/983 1308/1495/984 +f 1217/1380/832 1187/1336/875 1188/1374/875 +f 1061/2735/829 1059/2734/829 1057/2901/852 +f 1037/2902/825 1036/2904/825 1033/2903/908 +f 1183/2559/826 1182/1412/826 1180/1311/843 +f 1196/2562/855 1195/1361/855 1193/1351/827 +f 1194/1325/827 1193/1351/827 1191/1350/901 +f 1204/1464/849 1203/1382/849 1201/1458/829 +f 1198/1359/833 1197/1367/833 1195/1361/855 +f 1177/1334/908 1175/1401/908 1176/2576/828 +f 1192/1339/901 1191/1350/901 1189/2585/838 +f 1335/1489/985 1323/1490/985 1324/1483/986 +f 1327/1503/829 1322/1472/829 1321/1471/986 +f 1331/1164/987 1329/1166/988 1326/1502/988 +f 1317/1508/989 1305/1534/990 1306/1500/990 +f 1310/1491/984 1308/1495/984 1313/2597/825 +f 1303/1504/989 1312/2596/825 1313/2597/825 +f 1268/1343/829 1266/2572/852 1263/1451/852 +f 1039/2741/843 1038/2740/843 1036/2904/825 +f 1343/1522/832 1338/1521/832 1337/1520/936 +f 1366/1527/930 1358/1486/930 1363/2593/827 +f 1060/2726/832 1045/2900/875 1046/2899/875 +f 1329/1166/988 1322/1472/829 1327/1503/829 +f 1345/1515/933 1338/1521/832 1343/1522/832 +f 1440/2906/991 1450/3078/1088 1444/2907/992 +f 1507/2909/994 1386/3162/1006 1370/2910/995 +f 1385/2912/997 1384/2973/1038 1377/2913/908 +f 1459/2918/1000 1469/2738/938 1464/2919/1001 +f 1403/2921/1003 1414/3098/1095 1416/2922/1004 +f 1416/2922/1004 1409/3132/1042 1407/2927/1008 +f 1510/2928/849 1515/3151/1112 1385/2912/997 +f 1500/2929/1009 1499/3155/1100 1507/2930/994 +f 1465/2932/1010 1468/3109/1102 1458/2933/1011 +f 1442/2935/875 1452/3176/838 1446/2936/1013 +f 1454/2934/1012 1453/2920/1002 1464/2919/1001 +f 1394/2941/1016 1403/2921/1003 1405/2942/1005 +f 1479/2944/1018 1472/2991/1046 1462/2945/1019 +f 1372/2950/1022 1391/3144/1111 1395/2951/1023 +f 1377/2913/908 1393/2963/825 1394/2941/1016 +f 1505/2954/1026 1498/3157/829 1496/2955/852 +f 1473/2957/1028 1476/2966/1034 1467/2958/1029 +f 1463/2960/1030 1467/3177/1029 1457/2961/1031 +f 1393/2963/825 1397/2972/1037 1399/2964/1033 +f 1476/2966/1034 1479/2944/1018 1470/2946/1020 +f 1469/2738/938 1478/2737/937 1471/2970/1036 +f 1379/2952/1024 1395/2951/1023 1397/2972/1037 +f 1464/2971/1001 1471/2970/1036 1474/2977/979 +f 1416/2982/1004 1417/3141/1081 1420/2983/1041 +f 1455/2985/901 1466/2736/827 1469/2738/938 +f 1473/2986/1028 1484/3129/1107 1487/2987/1043 +f 1409/2984/1042 1420/2983/1041 1423/2989/1044 +f 1472/2991/1046 1483/3160/1113 1486/2992/833 +f 1382/2994/1047 1383/3126/1103 1374/2995/1048 +f 1478/2737/937 1488/3012/1056 1482/3000/1050 +f 1480/3002/1051 1483/3160/1113 1472/2991/1046 +f 1446/3004/1013 1459/2918/1000 1453/3005/1002 +f 1428/3007/1053 1434/3117/1104 1435/2937/1014 +f 1474/2841/979 1471/3001/1036 1482/3000/1050 +f 1496/2955/852 1491/3091/1092 1488/3012/1056 +f 1406/2979/1039 1408/2981/1040 1412/3013/1057 +f 1451/3015/1059 1445/3073/1083 1437/3016/1060 +f 1410/3018/1062 1418/3081/1089 1421/3019/845 +f 1401/3014/1058 1412/3013/1057 1415/3021/1063 +f 1438/3008/1054 1441/3178/1061 1431/3024/1065 +f 1502/3028/1067 1513/3039/1076 1508/3029/1068 +f 1514/3031/1070 1515/3151/1112 1505/2954/1026 +f 1433/3036/1073 1426/3179/1110 1425/3037/1074 +f 1502/3028/1067 1498/3157/829 1510/2928/849 +f 1422/3038/1075 1419/3033/1055 1430/3035/1072 +f 1421/3019/845 1418/3081/1089 1429/3040/1077 +f 1432/3041/832 1429/3040/1077 1439/3042/1078 +f 1508/3043/1068 1382/3050/1047 1388/3044/1049 +f 1508/3043/1068 1513/3039/1076 1376/3049/1080 +f 1417/3051/1081 1428/3180/1053 1431/3052/1065 +f 1396/2943/1017 1405/2942/1005 1407/3057/1008 +f 1393/2963/825 1400/2965/843 1403/2921/1003 +f 1398/3059/1082 1392/2940/1015 1375/2939/999 +f 1433/3061/1073 1430/3054/1072 1440/3056/991 +f 1444/3063/992 1450/3089/1088 1456/3064/1032 +f 1451/3066/1059 1454/3079/1012 1458/3067/1011 +f 1449/3069/1084 1452/3176/838 1442/2935/875 +f 1447/3070/1085 1444/3063/992 1457/3065/1031 +f 1447/3070/1085 1460/3071/1086 1461/3074/1087 +f 1460/3076/1086 1470/3163/1020 1462/2945/1019 +f 1448/3006/1052 1453/3005/1002 1454/3079/1012 +f 1452/3080/838 1455/2985/901 1459/2918/1000 +f 1476/2988/1034 1487/2987/1043 1480/3002/1051 +f 1425/3037/1074 1426/3179/1110 1429/3040/1077 +f 1419/3011/1055 1422/3122/1075 1412/3082/1057 +f 1388/3044/1049 1373/3165/998 1512/3083/1090 +f 1475/2993/855 1486/2992/833 1488/3012/1056 +f 1503/3032/1071 1500/2929/1009 1511/2931/996 +f 1404/3085/1064 1399/2964/1033 1397/2972/1037 +f 1447/3087/1085 1449/3069/1084 1439/3042/1078 +f 1491/3091/1092 1502/3028/1067 1504/3092/1069 +f 1487/3095/1043 1497/3181/1099 1492/3096/1094 +f 1414/3098/1095 1411/3020/826 1421/3019/845 +f 1506/3100/1097 1509/3146/1079 1512/3101/1090 +f 1497/3103/1099 1495/3152/1108 1499/3104/1100 +f 1510/2928/849 1389/2914/828 1376/3049/1080 +f 1489/3106/1101 1493/3093/1093 1504/3092/1069 +f 1435/2937/1014 1446/2936/1013 1448/3110/1052 +f 1429/3040/1077 1426/3143/1110 1436/3112/1091 +f 1383/3113/1103 1378/2953/1025 1394/2941/1016 +f 1395/3086/1023 1391/3158/1111 1401/3116/1058 +f 1432/3041/832 1442/2935/875 1435/2937/1014 +f 1420/3053/1041 1431/3052/1065 1427/3027/1066 +f 1398/3058/1082 1407/3057/1008 1402/2969/1035 +f 1466/2736/827 1462/2945/1019 1472/2991/1046 +f 1396/3114/1017 1398/3059/1082 1374/3060/1048 +f 1415/3121/1063 1412/3082/1057 1422/3122/1075 +f 1382/2994/1047 1376/3049/1080 1378/2953/1025 +f 1380/3127/1106 1379/3182/1024 1384/2973/1038 +f 1372/3130/1022 1379/3182/1024 1380/3127/1106 +f 1399/2964/1033 1410/3018/1062 1411/3020/826 +f 1431/3024/1065 1441/3178/1061 1437/3048/1060 +f 1409/3132/1042 1413/2999/1045 1402/2998/1035 +f 1411/3020/826 1414/3098/1095 1403/2921/1003 +f 1495/3133/1108 1497/3181/1099 1487/3095/1043 +f 1397/2972/1037 1393/2963/825 1377/2913/908 +f 1485/3135/977 1482/3166/1050 1493/3136/1093 +f 1414/3098/1095 1424/3099/1096 1417/3141/1081 +f 1415/3021/1063 1410/3018/1062 1399/2964/1033 +f 1433/3061/1073 1443/3062/993 1436/3112/1091 +f 1461/3074/1087 1455/2985/901 1452/3080/838 +f 1371/2947/1007 1390/2949/1021 1391/3144/1111 +f 1462/2945/1019 1466/2736/827 1455/2985/901 +f 1506/3107/1097 1501/3148/1098 1490/3145/1109 +f 1485/3135/977 1489/3137/1101 1490/3140/1109 +f 1486/2992/833 1483/3160/1113 1494/2956/1027 +f 1504/3030/1069 1508/3029/1068 1509/3146/1079 +f 1492/3149/1094 1503/3154/1071 1505/2954/1026 +f 1514/3150/1070 1380/3183/1106 1385/2912/997 +f 1497/3103/1099 1500/3105/1009 1503/3154/1071 +f 1443/2908/993 1444/2907/992 1447/3087/1085 +f 1491/3091/1092 1496/2955/852 1498/3157/829 +f 1465/2978/1010 1474/2977/979 1477/3120/978 +f 1406/2976/1039 1401/3116/1058 1391/3158/1111 +f 1505/2954/1026 1515/3151/1112 1510/2928/849 +f 1441/3017/1061 1438/3111/1054 1448/3110/1052 +f 1480/3097/1051 1492/3096/1094 1494/2956/1027 +f 1434/3117/1104 1428/3180/1053 1417/3051/1081 +f 1425/3123/1074 1418/3081/1089 1410/3018/1062 +f 1370/2910/995 1380/3183/1106 1514/3150/1070 +f 1421/3019/845 1432/3041/832 1434/3117/1104 +f 1370/3131/995 1386/2924/1006 1371/2926/1007 +f 1388/2996/1049 1374/2995/1048 1375/2917/999 +f 1376/3049/1080 1389/2914/828 1377/2913/908 +f 1457/2961/1031 1467/3177/1029 1470/3163/1020 +f 1488/3012/1056 1491/3091/1092 1493/3136/1093 diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png index d51aeb1a2228bb537bb8aeede2927022d0ccb7cc..3da9d72c8829988a758c146155aa6af85d378947 100644 GIT binary patch literal 9943 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ℑPs5=;RhCK{k)I9QRD0Yx=P3asvF53u|Wo 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%0DcFDi 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 HGzt74ARw2w diff --git a/src/main/resources/assets/hbm/textures/models/missileNuclear.png b/src/main/resources/assets/hbm/textures/models/missileNuclear.png deleted file mode 100644 index 3ff7998b2d9f35e0c74bd3ee2a71b673fba5ca2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10973 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 Date: Tue, 2 Jan 2024 23:43:28 +0100 Subject: [PATCH 053/376] getting railed --- src/main/java/com/hbm/blocks/ModBlocks.java | 7 +- .../blocks/machine/MachineAutocrafter.java | 40 +++-- .../com/hbm/blocks/machine/MachineFunnel.java | 138 ++++++++++++++++++ .../{IRenderRail.java => IRenderBlock.java} | 2 +- .../com/hbm/blocks/rail/RailNarrowCurve.java | 2 +- .../hbm/blocks/rail/RailNarrowStraight.java | 2 +- .../hbm/blocks/rail/RailStandardBuffer.java | 2 +- .../hbm/blocks/rail/RailStandardCurve.java | 2 +- .../blocks/rail/RailStandardCurveWide.java | 2 +- .../com/hbm/blocks/rail/RailStandardRamp.java | 2 +- .../hbm/blocks/rail/RailStandardStraight.java | 2 +- .../rail/RailStandardStraightShort.java | 2 +- .../hbm/blocks/rail/RailStandardSwitch.java | 2 +- .../rail/RailStandardSwitchFlipped.java | 2 +- .../com/hbm/inventory/OreDictManager.java | 2 +- .../inventory/container/ContainerFunnel.java | 64 ++++++++ .../java/com/hbm/inventory/gui/GUIFunnel.java | 42 ++++++ .../java/com/hbm/main/CraftingManager.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../java/com/hbm/render/block/RenderRail.java | 6 +- .../java/com/hbm/tileentity/TileMappings.java | 3 +- .../machine/TileEntityMachineAutocrafter.java | 4 + .../machine/TileEntityMachineFunnel.java | 118 +++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../assets/hbm/models/blocks/funnel.obj | 90 ++++++++++++ .../hbm/textures/blocks/machine_funnel.png | Bin 0 -> 263 bytes .../textures/blocks/machine_funnel_bottom.png | Bin 0 -> 304 bytes .../textures/blocks/machine_funnel_side.png | Bin 0 -> 305 bytes .../textures/blocks/machine_funnel_top.png | Bin 0 -> 316 bytes .../textures/gui/processing/gui_funnel.png | Bin 0 -> 1164 bytes 31 files changed, 505 insertions(+), 39 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineFunnel.java rename src/main/java/com/hbm/blocks/rail/{IRenderRail.java => IRenderBlock.java} (95%) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerFunnel.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIFunnel.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java create mode 100644 src/main/resources/assets/hbm/models/blocks/funnel.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel_top.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_funnel.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 26203971a..f67d7a6f0 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1105,8 +1105,9 @@ public class ModBlocks { public static Block machine_waste_drum; public static Block machine_storage_drum; - + public static Block machine_autocrafter; + public static Block machine_funnel; public static Block anvil_iron; public static Block anvil_lead; @@ -2344,6 +2345,7 @@ public class ModBlocks { machine_electrolyser = new MachineElectrolyser().setBlockName("machine_electrolyser").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); machine_autocrafter = new MachineAutocrafter().setBlockName("machine_autocrafter").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); + machine_funnel = new MachineFunnel().setBlockName("machine_funnel").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); @@ -3122,7 +3124,8 @@ public class ModBlocks { GameRegistry.registerBlock(boat, boat.getUnlocalizedName()); //Machines - GameRegistry.registerBlock(machine_autocrafter, ItemBlockBase.class, machine_autocrafter.getUnlocalizedName()); + register(machine_autocrafter); + register(machine_funnel); GameRegistry.registerBlock(anvil_iron, ItemBlockBase.class, anvil_iron.getUnlocalizedName()); GameRegistry.registerBlock(anvil_lead, ItemBlockBase.class, anvil_lead.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java index f4fabf399..1c922fab5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java @@ -24,10 +24,8 @@ import net.minecraft.world.World; public class MachineAutocrafter extends BlockContainer { - @SideOnly(Side.CLIENT) - private IIcon iconTop; - @SideOnly(Side.CLIENT) - private IIcon iconBottom; + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; public MachineAutocrafter() { super(Material.iron); @@ -67,48 +65,48 @@ public class MachineAutocrafter extends BlockContainer { } } - private final Random field_149933_a = new Random(); + private final Random rand = new Random(); @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + ISidedInventory tile = (ISidedInventory) world.getTileEntity(x, y, z); - if(tileentityfurnace != null) { + if(tile != null) { - for(int i1 = 10; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + for(int i1 = 10; i1 < tile.getSizeInventory(); ++i1) { + ItemStack itemstack = tile.getStackInSlot(i1); if(itemstack != null) { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; while(itemstack.stackSize > 0) { - int j1 = this.field_149933_a.nextInt(21) + 10; + int j1 = this.rand.nextInt(21) + 10; if(j1 > itemstack.stackSize) { j1 = itemstack.stackSize; } itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); if(itemstack.hasTagCompound()) { entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); } float f3 = 0.05F; - entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); } } } - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); + world.func_147453_f(x, y, z, block); } - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + super.breakBlock(world, x, y, z, block, meta); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFunnel.java b/src/main/java/com/hbm/blocks/machine/MachineFunnel.java new file mode 100644 index 000000000..7506e2218 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineFunnel.java @@ -0,0 +1,138 @@ +package com.hbm.blocks.machine; + +import java.util.List; +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.rail.IRenderBlock; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; +import com.hbm.tileentity.machine.TileEntityMachineFunnel; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class MachineFunnel extends BlockContainer implements ITooltipProvider, IRenderBlock { + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + + public MachineFunnel() { + super(Material.iron); + } + + @Override public int getRenderType() { return renderID; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_funnel_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_funnel_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_funnel_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityMachineFunnel(); + } + + @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()) { + TileEntity entity = world.getTileEntity(x, y, z); + if(entity instanceof TileEntityMachineFunnel) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + return true; + } else { + return false; + } + } + + private final Random rand = new Random(); + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + ISidedInventory tile = (ISidedInventory) world.getTileEntity(x, y, z); + if(tile != null) { + for(int i1 = 0; i1 < tile.getSizeInventory(); ++i1) { + ItemStack itemstack = tile.getStackInSlot(i1); + if(itemstack != null) { + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + while(itemstack.stackSize > 0) { + int j1 = this.rand.nextInt(21) + 10; + if(j1 > itemstack.stackSize) j1 = itemstack.stackSize; + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + float f3 = 0.05F; + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslatef(0F, -0.5F, 0F); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/IRenderRail.java b/src/main/java/com/hbm/blocks/rail/IRenderBlock.java similarity index 95% rename from src/main/java/com/hbm/blocks/rail/IRenderRail.java rename to src/main/java/com/hbm/blocks/rail/IRenderBlock.java index 4b3cf8346..7cf90e9fd 100644 --- a/src/main/java/com/hbm/blocks/rail/IRenderRail.java +++ b/src/main/java/com/hbm/blocks/rail/IRenderBlock.java @@ -7,7 +7,7 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; -public interface IRenderRail { +public interface IRenderBlock { public static int renderID = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java index ecf690121..861bda8c0 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -22,7 +22,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailNarrowCurve extends BlockDummyable implements IRailNTM, IRenderRail { +public class RailNarrowCurve extends BlockDummyable implements IRailNTM, IRenderBlock { public RailNarrowCurve() { super(Material.iron); diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java index 4b84f25c2..45bf500c8 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -22,7 +22,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailNarrowStraight extends BlockDummyable implements IRailNTM, IRenderRail { +public class RailNarrowStraight extends BlockDummyable implements IRailNTM, IRenderBlock { public RailNarrowStraight() { super(Material.iron); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java index 20e345172..07e07c6b2 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -21,7 +21,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardBuffer extends BlockDummyable implements IRailNTM, IRenderRail { +public class RailStandardBuffer extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardBuffer() { super(Material.iron); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index a8e69b8a8..e4e394469 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -22,7 +22,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardCurve extends BlockDummyable implements IRailNTM, IRenderRail { +public class RailStandardCurve extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardCurve() { super(Material.iron); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java index 3935cf5c6..221832df8 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java @@ -22,7 +22,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardCurveWide extends BlockDummyable implements IRailNTM, IRenderRail { +public class RailStandardCurveWide extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardCurveWide() { super(Material.iron); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java index c9a1e6010..aab9ed31d 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -23,7 +23,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRenderRail { +public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardRamp() { super(Material.iron); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index f448d7881..3fc0ff745 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -22,7 +22,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardStraight extends BlockDummyable implements IRailNTM, IRenderRail { +public class RailStandardStraight extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardStraight() { super(Material.iron); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java index 02aca06f3..44ed16f6a 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java @@ -22,7 +22,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardStraightShort extends BlockDummyable implements IRailNTM, IRenderRail { +public class RailStandardStraightShort extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardStraightShort() { super(Material.iron); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java index f08785d44..d35adb57d 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java @@ -28,7 +28,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardSwitch extends BlockRailWaypointSystem implements IRenderRail { +public class RailStandardSwitch extends BlockRailWaypointSystem implements IRenderBlock { @SideOnly(Side.CLIENT) private IIcon iconSign; diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java index 58b280786..25cc227e1 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java @@ -25,7 +25,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardSwitchFlipped extends BlockRailWaypointSystem implements IRenderRail { +public class RailStandardSwitchFlipped extends BlockRailWaypointSystem implements IRenderBlock { @SideOnly(Side.CLIENT) private IIcon iconSign; diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 211c4cab1..8b7589e11 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -362,7 +362,7 @@ public class OreDictManager { TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy) .block(block_tcalloy); CDALLOY .ingot(ingot_cdalloy) .block(block_cdalloy); PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead); - BI .nugget(nugget_bismuth) .billet(billet_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); + BI .nugget(nugget_bismuth) .billet(billet_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth) .block(block_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); CA .ingot(ingot_calcium) .dust(powder_calcium); CD .ingot(ingot_cadmium) .dust(powder_cadmium) .block(block_cadmium); diff --git a/src/main/java/com/hbm/inventory/container/ContainerFunnel.java b/src/main/java/com/hbm/inventory/container/ContainerFunnel.java new file mode 100644 index 000000000..5cfb3bcfb --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerFunnel.java @@ -0,0 +1,64 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.tileentity.machine.TileEntityMachineFunnel; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerFunnel extends Container { + + private TileEntityMachineFunnel funnel; + + public ContainerFunnel(InventoryPlayer playerInv, TileEntityMachineFunnel tile) { + funnel = tile; + + for(int i = 0; i < 9; i++) this.addSlotToContainer(new Slot(tile, i, 8 + 18 * i, 18)); + for(int i = 0; i < 9; i++) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, i + 9, 8 + 18 * i, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 86 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 144)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return funnel.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(index); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(index <= 17) { + if(!this.mergeItemStack(var5, 18, this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, 9, false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFunnel.java b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java new file mode 100644 index 000000000..1ee5069b3 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerFunnel; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineFunnel; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIFunnel extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_funnel.png"); + private TileEntityMachineFunnel funnel; + + public GUIFunnel(InventoryPlayer invPlayer, TileEntityMachineFunnel tedf) { + super(new ContainerFunnel(invPlayer, tedf)); + funnel = tedf; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.funnel.hasCustomInventoryName() ? this.funnel.getInventoryName() : I18n.format(this.funnel.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @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); + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 9203ee542..176368f1b 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -312,6 +312,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 3), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); + addRecipeAuto(new ItemStack(ModBlocks.machine_funnel, 1), new Object[] { "S S", "SRS", " S ", 'S', STEEL.ingot(), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index d72e0509a..e25c691c7 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1472,6 +1472,7 @@ public class ResourceManager { public static final IModelCustom rail_standard_switch = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch.obj")); public static final IModelCustom rail_standard_switch_flipped = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch_flipped.obj")); public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); + public static final IModelCustom funnel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/funnel.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderRail.java b/src/main/java/com/hbm/render/block/RenderRail.java index a9460d17a..ab366486b 100644 --- a/src/main/java/com/hbm/render/block/RenderRail.java +++ b/src/main/java/com/hbm/render/block/RenderRail.java @@ -2,7 +2,7 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; -import com.hbm.blocks.rail.IRenderRail; +import com.hbm.blocks.rail.IRenderBlock; import com.hbm.blocks.rail.RailStandardStraight; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -17,7 +17,7 @@ public class RenderRail implements ISimpleBlockRenderingHandler { public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { GL11.glPushMatrix(); Tessellator tessellator = Tessellator.instance; - IRenderRail rail = (IRenderRail) block; + IRenderBlock rail = (IRenderBlock) block; rail.renderInventory(tessellator, block, metadata); GL11.glPopMatrix(); } @@ -28,7 +28,7 @@ public class RenderRail implements ISimpleBlockRenderingHandler { tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); tessellator.setColorOpaque_F(1, 1, 1); int meta = world.getBlockMetadata(x, y, z); - IRenderRail rail = (IRenderRail) block; + IRenderBlock rail = (IRenderBlock) block; rail.renderWorld(tessellator, block, meta, world, x, y, z); return true; } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index d51bdab4b..1eef03148 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -297,8 +297,9 @@ public class TileMappings { put(TileEntityFoundryOutlet.class, "tileentity_foundry_outlet"); put(TileEntityFoundrySlagtap.class, "tileentity_foundry_slagtap"); put(TileEntitySlag.class, "tileentity_foundry_slag"); - + put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); + put(TileEntityMachineFunnel.class, "tileentity_funnel"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); put(TileEntityUVLamp.class, "tileentity_uv_lamp"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index 6b964c3a0..b93815fdb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -369,6 +369,10 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen } } + public void clear() { + for(int i = 0; i < this.getSizeInventory(); i++) this.setInventorySlotContents(i, null); + } + public static class ContainerBlank extends Container { @Override public void onCraftMatrixChanged(IInventory inventory) { } @Override public boolean canInteractWith(EntityPlayer player) { return false; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java new file mode 100644 index 000000000..ee40ccf8f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java @@ -0,0 +1,118 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.container.ContainerFunnel; +import com.hbm.inventory.gui.GUIFunnel; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.machine.TileEntityMachineAutocrafter.InventoryCraftingAuto; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.world.World; + +public class TileEntityMachineFunnel extends TileEntityMachineBase implements IGUIProvider { + + public TileEntityMachineFunnel() { + super(18); + } + + @Override + public String getName() { + return "container.machineFunnel"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + for(int i = 0; i < 9; i++) { + + if(slots[i] != null) { + int stacksize = 9; + ItemStack compressed = slots[i].stackSize < 9 ? null : this.getFrom9(slots[i]); + if(compressed == null) { + compressed = slots[i].stackSize < 4 ? null : this.getFrom4(slots[i]); + stacksize = 4; + } + + if(compressed != null && slots[i].stackSize >= stacksize) { + if(slots[i + 9] == null) { + slots[i + 9] = compressed.copy(); + this.decrStackSize(i, stacksize); + } else if(slots[i + 9].getItem() == compressed.getItem() && slots[i + 9].getItemDamage() == compressed.getItemDamage() && slots[i + 9].stackSize + compressed.stackSize <= compressed.getMaxStackSize()) { + slots[i + 9].stackSize += compressed.stackSize; + this.decrStackSize(i, stacksize); + } + } + } + } + } + } + + public int[] topAccess = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; + public int[] bottomAccess = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return side == 0 ? bottomAccess : topAccess; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + if(j == 0) return i > 8; + return j != 1 && i < 9; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot > 8) return false; + return this.getFrom9(stack) != null || this.getFrom4(stack) != null; + } + + protected InventoryCraftingAuto craftingInventory = new InventoryCraftingAuto(3, 3); + + public ItemStack getFrom4(ItemStack ingredient) { + this.craftingInventory.clear(); + this.craftingInventory.setInventorySlotContents(0, ingredient.copy()); + this.craftingInventory.setInventorySlotContents(1, ingredient.copy()); + this.craftingInventory.setInventorySlotContents(3, ingredient.copy()); + this.craftingInventory.setInventorySlotContents(4, ingredient.copy()); + return getMatch(this.craftingInventory); + } + + public ItemStack getFrom9(ItemStack ingredient) { + this.craftingInventory.clear(); + for(int i = 0; i < 9; i++) this.craftingInventory.setInventorySlotContents(i, ingredient.copy()); + return getMatch(this.craftingInventory); + } + + public ItemStack getMatch(InventoryCrafting grid) { + for(Object o : CraftingManager.getInstance().getRecipeList()) { + IRecipe recipe = (IRecipe) o; + + if(recipe.matches(grid, worldObj)) { + return recipe.getCraftingResult(grid); + } + } + return null; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerFunnel(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIFunnel(player.inventory, this); + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a07ccfd74..b5ce978b9 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -352,6 +352,7 @@ container.machineDiesel=Dieselgenerator container.machineElectricBoiler=Elektrischer Ölwärmer container.machineElectrolyser=Electrolysegerät container.machineFEL=FEL +container.machineFunnel=Kombinationstrichter container.machineITER=Kernfusionsreaktor container.machineLargeTurbine=Industrielle Dampfturbine container.machineLiquefactor=Verflüssiger @@ -4129,6 +4130,8 @@ tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Kraftfeldgenerator tile.machine_fracking_tower.name=Hydraulischer Frackingturm tile.machine_fraction_tower.name=Fraktionierungsturm +tile.machine_funnel.name=Kombinationstrichter +tile.machine_funnel.desc=Verbindet Items in einem 2x2 oder 3x3 Craftingfeld$Oben: Input$Unten: Output$Seite: Output für Item-Eingang tile.machine_gascent.name=Gaszentrifuge tile.machine_generator.name=Atomreaktor (Alt) tile.machine_geo.name=Geothermiegenerator diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f9681a2c0..845be3e2f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -711,6 +711,7 @@ container.machineDiesel=Diesel Generator container.machineElectricBoiler=Electric Oil Heater container.machineElectrolyser=Electrolysis Machine container.machineFEL=FEL +container.machineFunnel=Combinator Funnel container.machineITER=Fusion Reactor container.machineLargeTurbine=Industrial Steam Turbine container.machineLiquefactor=Liquefactor @@ -5125,6 +5126,8 @@ tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower tile.machine_fracking_tower.name=Hydraulic Fracking Tower +tile.machine_funnel.name=Combinator Funnel +tile.machine_funnel.desc=Automatically compresses items in a 2x2 or 3x3 crafting grid$Top: Input$Bottom: Output$Side: Output for clearing incredients tile.machine_gascent.name=Gas Centrifuge tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator diff --git a/src/main/resources/assets/hbm/models/blocks/funnel.obj b/src/main/resources/assets/hbm/models/blocks/funnel.obj new file mode 100644 index 000000000..c166fd7a3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/funnel.obj @@ -0,0 +1,90 @@ +# Blender v2.79 (sub 0) OBJ File: 'funnel.blend' +# www.blender.org +o Bottom +v -0.250000 0.000000 0.250000 +v -0.250000 0.000000 -0.250000 +v 0.250000 0.000000 0.250000 +v 0.250000 0.000000 -0.250000 +vt 0.750000 0.750000 +vt 0.250000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.750000 +vn 0.0000 -1.0000 0.0000 +s off +f 4/1/1 1/2/1 2/3/1 +f 4/1/1 3/4/1 1/2/1 +o Top +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt -0.000000 1.000000 +vn 0.0000 1.0000 0.0000 +s off +f 6/5/2 7/6/2 8/7/2 +f 6/5/2 5/8/2 7/6/2 +o Side +v -0.250000 0.000000 0.250000 +v -0.500000 1.000000 0.500000 +v -0.250000 0.000000 -0.250000 +v -0.500000 1.000000 -0.500000 +v 0.250000 0.000000 0.250000 +v 0.500000 1.000000 0.500000 +v 0.250000 0.000000 -0.250000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 -0.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000097 0.999903 +vt 0.000097 0.999903 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.8944 -0.4472 0.0000 +vn 0.0000 -0.4472 -0.8944 +vn -0.8944 -0.4472 0.0000 +s off +f 10/9/3 18/10/3 17/11/3 +f 12/12/4 19/13/4 18/14/4 +f 16/15/5 20/16/5 19/17/5 +f 14/18/6 17/19/6 20/20/6 +f 20/20/7 9/21/7 13/22/7 +f 19/17/8 13/23/8 15/24/8 +f 18/14/9 15/25/9 11/26/9 +f 17/11/10 11/27/10 9/28/10 +f 10/9/3 12/29/3 18/10/3 +f 12/12/4 16/30/4 19/13/4 +f 16/15/5 14/31/5 20/16/5 +f 14/18/6 10/32/6 17/19/6 +f 20/20/7 17/19/7 9/21/7 +f 19/17/8 20/16/8 13/23/8 +f 18/14/9 19/13/9 15/25/9 +f 17/11/10 18/10/10 11/27/10 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel.png new file mode 100644 index 0000000000000000000000000000000000000000..40cdfa516c7041a10647f36c393a1774c102d917 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfggteYXJKO^_G?^V^fPe7kAc)I$z JtaD0e0sxv4WDEcR literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..0ffb54e3dff9f8811bfa67ddbb4b345a39ac4a72 GIT binary patch literal 304 zcmV-00nh%4P)z9wA7Nq-ks{CSP=z`n>Cl_N z_TBlM$23hZV+{X5MCgn$EXx9b_nvVavu|BX^%x`8TDEQDsT+DwlfCyha*Pq+BTzb* z8??v(U2;o9>$=jqiHI=IGa&@}zW)knM`H}faa0AIa~C;;@D(WY1DxlX{SU(ckddz& z=&Tyv`&&JcQ-th@HIWvw2>PlTWvp6+4!~MVDU>p|oHKz$w$>sdIOnQl5xH%VMTjw8 z@2m$kq52AXHQg+0CHWF4U216cI}u^u_a^ZdM1(iymAi|S+N@3h0000=4qxRibQjh@3bV;3|NGylxkjkxQs%RBvo- zKl=mAaU5UHIsRiJ!seXgx-N3g#25j{IrpX*<iuo zV7I6#Y+v8z)>(sXw0@Rb-@)%}8yiK0l+v_WL>{?sWUBm(e?Iu600000NkvXXu0mjf DE|`9> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_top.png new file mode 100644 index 0000000000000000000000000000000000000000..151899a23bf0a2f49c0f1006f5d33579af29003c GIT binary patch literal 316 zcmV-C0mJ@@P)J#NJy5QM*2uR};I2cdK83%K)L-TMsgeFZ>5)JYLR%nRh_ zO@(%MMl*Mq=6$b~dP)hcHOF!AxHtBF2VmqV=M2EQ zuB4OzJ_YV%?>*l8p>1m|`@XX*%a_32Hb4lWOBRuDk!l2`6yEzves*E4C4_*8pp+uU z2*A`E?nM~In(h()17pnC!C%lsC@Xmd6M)vbDfS|bV%9B`BM}io2wj4RG_zHpL@1|Q z277oGt`3}Yoac$P_SaK(&b0zDMvO5{;~B=7`tyy0oHN&T4T(P?=gbFr+kTy|9?jhV O0000M=zsob$X)!h=FfkltVQAuHU=e2EP-77AVNjUC z;9vlk*n948+V#@a`3rJyOC7)1H}|OZ^wX(d`R>o=b+~$*d4t>i@1}i=Wv#o*YrIPB z^%zk#<1`f_VOA~YaC_U;?|)xOZ%l4a&RUfecJ$UIU6wd-lOjf|7s3gv#BV1Q}M~Z|1*Py?0d$XEpzVeYZiTFZ*=Yzc5aw|lOd$mh9Ub)ZTw@4TN^i59AEmfE`|vy*a-L>7|=Q2 zY#O%Zu73afs(I3JzT;1P9Q=;YY`9&>iN|Ni5tZ}p@qyUuYxgxO*WKSUxA<+0-t?>1 zHTh-?p`|O{cW$4&^KtU4-$a`RiS`XQKQr`wv;A0RRDQ!hIP|iKZ)j+}?4AcM3fAs7 zepV@6FyILdE!`Wp+U_6U<_W@$Z)EC@cRKw3D2FTcU=M~l94XH~Sib>kE#uq&*k!?A z3&9iT9+uDH*dqU)k)%L812*DtU79~jlX8*Lg)&4Wq}^vJ(b_Oq`Avb%)rb~1MuPTU#2rDZ#?T3t=|AL-qY33 JWt~$(69D_sk5d2u literal 0 HcmV?d00001 From 59c5efd49b39ca7cf7613eb4d6b5943ace7b03aa Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 4 Jan 2024 14:24:03 +0100 Subject: [PATCH 054/376] .44 but better --- .../handler/guncfg/Gun44MagnumFactory.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 2 +- .../com/hbm/items/weapon/ItemGunBase.java | 2 + .../java/com/hbm/items/weapon/ItemGunBio.java | 3 - .../java/com/hbm/items/weapon/ItemGunPip.java | 137 + src/main/java/com/hbm/main/ClientProxy.java | 2 +- .../java/com/hbm/main/ResourceManager.java | 3 + .../com/hbm/render/anim/HbmAnimations.java | 3 +- .../item/weapon/ItemRenderWeaponLilMac.java | 253 + .../assets/hbm/models/weapons/lilmac.obj | 8226 +++++++++++++++++ src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/weapon/44Shoot.ogg | Bin 0 -> 25552 bytes .../hbm/textures/models/weapons/lilmac.png | Bin 0 -> 2997 bytes .../textures/models/weapons/lilmac_plume.png | Bin 0 -> 1525 bytes .../textures/models/weapons/lilmac_scope.png | Bin 0 -> 934 bytes 15 files changed, 8628 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/items/weapon/ItemGunPip.java create mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java create mode 100644 src/main/resources/assets/hbm/models/weapons/lilmac.obj create mode 100644 src/main/resources/assets/hbm/sounds/weapon/44Shoot.ogg create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/lilmac.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/lilmac_plume.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/lilmac_scope.png diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index 515b1b8bf..d6baf146d 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -47,14 +47,14 @@ public class Gun44MagnumFactory { config.roundsPerCycle = 1; config.gunMode = GunConfiguration.MODE_NORMAL; config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; + config.reloadDuration = 50; config.firingDuration = 0; config.ammoCap = 6; config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; config.crosshair = Crosshair.L_CLASSIC; config.reloadSound = GunConfiguration.RSOUND_REVOLVER; - config.firingSound = "hbm:weapon.revolverShootAlt"; + config.firingSound = "hbm:weapon.44Shoot"; config.reloadSoundEnd = false; config.config.addAll(HbmCollection.m44Normal); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 30d2e7b34..5f5629bf3 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4161,7 +4161,7 @@ public class ModItems { gun_revolver_cursed = new ItemGunBase(Gun357MagnumFactory.getRevolverCursedConfig()).setUnlocalizedName("gun_revolver_cursed").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_cursed"); gun_revolver_nightmare = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmareConfig()).setUnlocalizedName("gun_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare"); gun_revolver_nightmare2 = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmare2Config()).setUnlocalizedName("gun_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2"); - gun_revolver_pip = new ItemGunBase(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); + gun_revolver_pip = new ItemGunPip(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); gun_revolver_nopip = new ItemGunBase(Gun44MagnumFactory.getNovacConfig()).setUnlocalizedName("gun_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nopip"); gun_revolver_blackjack = new ItemGunBase(Gun44MagnumFactory.getBlackjackConfig()).setUnlocalizedName("gun_revolver_blackjack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_blackjack"); gun_revolver_silver = new ItemGunBase(Gun44MagnumFactory.getSilverConfig()).setUnlocalizedName("gun_revolver_silver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_silver"); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 6ec696cab..58671762f 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -790,6 +790,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(!mainConfig.equipSound.isEmpty() && !player.worldObj.isRemote) { player.worldObj.playSoundAtEntity(player, mainConfig.equipSound, 1, 1); } + + if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.EQUIP.ordinal()), (EntityPlayerMP) player); } protected static void queueCasing(Entity entity, CasingEjector ejector, BulletConfiguration bullet, ItemStack stack) { diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBio.java b/src/main/java/com/hbm/items/weapon/ItemGunBio.java index f2788d810..47f1abd58 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBio.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBio.java @@ -22,7 +22,6 @@ public class ItemGunBio extends ItemGunBase { super(config); } - /* just a test */ public static long lastShot; public static List smokeNodes = new ArrayList(); @@ -66,8 +65,6 @@ public class ItemGunBio extends ItemGunBase { @Override @SideOnly(Side.CLIENT) public BusAnimation getAnimation(ItemStack stack, AnimType type) { - //GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; - //return config.animations.get(type); if(type == AnimType.CYCLE) { lastShot = System.currentTimeMillis(); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunPip.java b/src/main/java/com/hbm/items/weapon/ItemGunPip.java new file mode 100644 index 000000000..1a4179dd9 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemGunPip.java @@ -0,0 +1,137 @@ +package com.hbm.items.weapon; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.GunConfiguration; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationKeyframe; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class ItemGunPip extends ItemGunBase { + + public static long lastShot; + public static List smokeNodes = new ArrayList(); + + public ItemGunPip(GunConfiguration config) { + super(config); + } + + @Override + @SideOnly(Side.CLIENT) + protected void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) { + super.updateClient(stack, world, entity, slot, isCurrentItem); + + boolean smoking = lastShot + 2000 > System.currentTimeMillis(); + + if(!smoking && !smokeNodes.isEmpty()) { + smokeNodes.clear(); + } + + if(smoking) { + Vec3 prev = Vec3.createVectorHelper(-entity.motionX, -entity.motionY, -entity.motionZ); + prev.rotateAroundY((float) (entity.rotationYaw * Math.PI / 180D)); + double accel = 15D; + double side = (entity.rotationYaw - entity.prevRotationYawHead) * 0.1D; + double waggle = 0.025D; + + for(double[] node : smokeNodes) { + node[0] += -prev.zCoord * accel + world.rand.nextGaussian() * waggle; + node[1] += prev.yCoord + 1.5D; + node[2] += prev.xCoord * accel + world.rand.nextGaussian() * waggle + side; + } + + double alpha = (System.currentTimeMillis() - lastShot) / 2000D; + alpha = (1 - alpha) * 0.5D; + + if(this.getIsReloading(stack)) alpha = 0; + + smokeNodes.add(new double[] {0, 0, 0, alpha}); + } + } + + @Override + @SideOnly(Side.CLIENT) + public BusAnimation getAnimation(ItemStack stack, AnimType type) { + + if(type == AnimType.EQUIP) { + return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(-360, 0, 0, 350)) + ); + } + + if(type == AnimType.CYCLE) { + lastShot = System.currentTimeMillis(); + return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) + .addKeyframe(new BusAnimationKeyframe(0, 0, -3, 50)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) + ) + .addBus("HAMMER", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 300)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) + ) + .addBus("DRUM", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50)) + ); + } + + if(type == AnimType.RELOAD) { + int s = 1; + return new BusAnimation() + .addBus("RELAOD_TILT", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 100 * s)) + .addKeyframe(new BusAnimationKeyframe(65, 0, 0, 100 * s)) //200 + .addKeyframe(new BusAnimationKeyframe(45, 0, 0, 50 * s)) //250 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) //450 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1450 * s)) //1900 + .addKeyframe(new BusAnimationKeyframe(-80, 0, 0, 100 * s)) //2000 + .addKeyframe(new BusAnimationKeyframe(-80, 0, 0, 100 * s)) //2100 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) //2300 + ) + .addBus("RELOAD_CYLINDER", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) + .addKeyframe(new BusAnimationKeyframe(90, 0, 0, 100 * s)) //300 + .addKeyframe(new BusAnimationKeyframe(90, 0, 0, 1700 * s)) //2000 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 70 * s)) //2100 + ) + .addBus("RELOAD_LIFT", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 350 * s)) + .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 250 * s)) //600 + .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 350 * s)) //950 + .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 200 * s)) //1150 + .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 1050 * s)) //2200 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100 * s)) //2300 + ) + .addBus("RELOAD_JOLT", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 600 * s)) + .addKeyframe(new BusAnimationKeyframe(2, 0, 0, 50 * s)) //650 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100 * s)) //750 + ) + .addBus("RELOAD_BULLETS", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 650 * s)) + .addKeyframe(new BusAnimationKeyframe(10, 0, 0, 300 * s)) //950 + .addKeyframe(new BusAnimationKeyframe(10, 0, 0, 200 * s)) //1150 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 700 * s)) //1850 + ) + .addBus("RELOAD_BULLETS_CON", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 0 * s)) + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 950 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1 * s)) + ); + } + + return null; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ab715f454..c94f66408 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -536,7 +536,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_chemthrower, new ItemRenderWeaponChemthrower()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nopip, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_pip, new ItemRenderWeaponNovac()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_pip, new ItemRenderWeaponLilMac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_blackjack, new ItemRenderWeaponNovac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_silver, new ItemRenderWeaponNovac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index e25c691c7..89f81b449 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -828,6 +828,7 @@ public class ResourceManager { public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon.obj")).asDisplayList(); public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); public static final IModelCustom congolake = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/congolake.obj")).asDisplayList(); + public static final IModelCustom lilmac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lilmac.obj")).asDisplayList(); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -925,6 +926,8 @@ public class ResourceManager { public static final ResourceLocation cryocannon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon.png"); public static final ResourceLocation uac_pistol_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pistol_texture.png"); public static final ResourceLocation congolake_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/congolake.png"); + public static final ResourceLocation lilmac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac.png"); + public static final ResourceLocation lilmac_scope_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_scope.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); diff --git a/src/main/java/com/hbm/render/anim/HbmAnimations.java b/src/main/java/com/hbm/render/anim/HbmAnimations.java index ca9e9f986..239ca9bcc 100644 --- a/src/main/java/com/hbm/render/anim/HbmAnimations.java +++ b/src/main/java/com/hbm/render/anim/HbmAnimations.java @@ -20,7 +20,8 @@ public class HbmAnimations { CYCLE, //animation for every firing cycle ALT_CYCLE, //animation for alt fire cycles SPINUP, //animation for actionstart - SPINDOWN //animation for actionend + SPINDOWN, //animation for actionend + EQUIP //animation for drawing the weapon } public static class Animation { diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java new file mode 100644 index 000000000..7d79a4476 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java @@ -0,0 +1,253 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemGunPip; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderWeaponLilMac implements IItemRenderer { + + public static final ResourceLocation lilmac_plume = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_plume.png"); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + //prevent rendering when using scope + if(item.getItem() == ModItems.gun_revolver_pip && type == ItemRenderType.EQUIPPED_FIRST_PERSON && MainRegistry.proxy.me().isSneaking()) return; + + GL11.glPushMatrix(); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.1D; + GL11.glRotated(25, 0, 0, 1); + GL11.glTranslated(1.0, 0.25, -0.25); + GL11.glRotated(170, 0, 1, 0); + GL11.glScaled(s0, s0, s0); + double width = 0.5D; + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] reloadLift = HbmAnimations.getRelevantTransformation("RELOAD_LIFT"); + double[] reloadJolt = HbmAnimations.getRelevantTransformation("RELOAD_JOLT"); + double[] equipSpin = HbmAnimations.getRelevantTransformation("ROTATE"); + GL11.glTranslated(2, 0, 0); + GL11.glRotated(equipSpin[0], 0, 0, 1); + GL11.glTranslated(-2, 0, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + Tessellator tess = Tessellator.instance; + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_BLEND); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glTranslated(-10, 2.25, 0); + GL11.glTranslated(-recoil[2] * 3, -recoil[2] * 2, 0); + + if(ItemGunPip.smokeNodes.size() > 1 && equipSpin[0] == 0) { + + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + + for(int i = 0; i < ItemGunPip.smokeNodes.size() - 1; i++) { + double[] node = ItemGunPip.smokeNodes.get(i); + double[] past = ItemGunPip.smokeNodes.get(i + 1); + + tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); + tess.addVertex(node[0], node[1], node[2]); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(node[0], node[1], node[2] + width); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(past[0], past[1], past[2] + width); + tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); + tess.addVertex(past[0], past[1], past[2]); + + tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); + tess.addVertex(node[0], node[1], node[2]); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(node[0], node[1], node[2] - width); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(past[0], past[1], past[2] - width); + tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); + tess.addVertex(past[0], past[1], past[2]); + } + tess.draw(); + } + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + + GL11.glTranslated(0, reloadLift[0] / -22D, 0); + + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 10, 0, 0, 1); + GL11.glRotated(reloadLift[0], 0, 0, 1); + GL11.glTranslated(reloadJolt[0], 0, 0); + + double[] reloadTilt = HbmAnimations.getRelevantTransformation("RELAOD_TILT"); + GL11.glRotated(reloadTilt[0], 1, 0, 0); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_scope_tex); + ResourceManager.lilmac.renderPart("Scope"); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_tex); + ResourceManager.lilmac.renderPart("Gun"); + + double[] cylinderFlip = HbmAnimations.getRelevantTransformation("RELOAD_CYLINDER"); + GL11.glPushMatrix(); /// DRUM PUSH /// + GL11.glRotated(cylinderFlip[0], 1, 0, 0); + GL11.glTranslated(0, 1.75, 0); + GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * -60, 1, 0, 0); + GL11.glTranslated(0, -1.75, 0); + ResourceManager.lilmac.renderPart("Cylinder"); + double[] reloadBullets = HbmAnimations.getRelevantTransformation("RELOAD_BULLETS"); + GL11.glTranslated(reloadBullets[0], reloadBullets[1], reloadBullets[2]); + if(HbmAnimations.getRelevantTransformation("RELOAD_BULLETS_CON")[0] != 1) + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + GL11.glPopMatrix(); /// DRUM POP /// + + GL11.glPushMatrix(); /// HAMMER /// + GL11.glTranslated(4, 1.25, 0); + GL11.glRotated(-30 + 30 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 0, 0, 1); + GL11.glTranslated(-4, -1.25, 0); + ResourceManager.lilmac.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + int flash = 75; + if(System.currentTimeMillis() - ItemGunPip.lastShot < flash) { + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glPushMatrix(); + GL11.glTranslated(0.125, 2.25, 0); + + double fire = (System.currentTimeMillis() - ItemGunPip.lastShot) / (double) flash; + + double height = 4 * fire; + double length = 15 * fire; + double lift = 3 * fire; + double offset = 1 * fire; + double lengthOffset = 0.125; + Minecraft.getMinecraft().renderEngine.bindTexture(lilmac_plume); + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + tess.setColorRGBA_F(1F, 1F, 1F, 1F); + + tess.addVertexWithUV(0, -height, -offset, 1, 1); + tess.addVertexWithUV(0, height, -offset, 0, 1); + tess.addVertexWithUV(0, height + lift, length - offset, 0 ,0); + tess.addVertexWithUV(0, -height + lift, length - offset, 1, 0); + + tess.addVertexWithUV(0, height, offset, 0, 1); + tess.addVertexWithUV(0, -height, offset, 1, 1); + tess.addVertexWithUV(0, -height + lift, -length + offset, 1, 0); + tess.addVertexWithUV(0, height + lift, -length + offset, 0 ,0); + + tess.addVertexWithUV(0, -height, -offset, 1, 1); + tess.addVertexWithUV(0, height, -offset, 0, 1); + tess.addVertexWithUV(lengthOffset, height, length - offset, 0 ,0); + tess.addVertexWithUV(lengthOffset, -height, length - offset, 1, 0); + + tess.addVertexWithUV(0, height, offset, 0, 1); + tess.addVertexWithUV(0, -height, offset, 1, 1); + tess.addVertexWithUV(lengthOffset, -height, -length + offset, 1, 0); + tess.addVertexWithUV(lengthOffset, height, -length + offset, 0 ,0); + + GL11.glDepthMask(true); + tess.draw(); + GL11.glDepthMask(false); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + + break; + + case EQUIPPED: + + double scale = 0.1D; + GL11.glScaled(scale, scale, scale); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(100, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-3F, 1F, 4F); + + break; + + case ENTITY: + + double s1 = 0.075D; + GL11.glScaled(s1, s1, s1); + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0F, 1F, 0F); + + break; + + case INVENTORY: + + GL11.glEnable(GL11.GL_LIGHTING); + + double s = 0.8D; + GL11.glTranslated(8, 8, 0); + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(135, 0, 0, 1); + GL11.glScaled(s, s, -s); + + break; + + default: break; + } + + if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_scope_tex); + ResourceManager.lilmac.renderPart("Scope"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_tex); + ResourceManager.lilmac.renderPart("Gun"); + ResourceManager.lilmac.renderPart("Cylinder"); + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + ResourceManager.lilmac.renderPart("Pivot"); + GL11.glShadeModel(GL11.GL_FLAT); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/resources/assets/hbm/models/weapons/lilmac.obj b/src/main/resources/assets/hbm/models/weapons/lilmac.obj new file mode 100644 index 000000000..1d7d326f6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/lilmac.obj @@ -0,0 +1,8226 @@ +# Blender v2.79 (sub 0) OBJ File: 'lilmac.blend' +# www.blender.org +o Pivot +v 0.000000 0.000000 -0.187500 +v 0.000000 0.132583 -0.132583 +v 0.000000 0.187500 0.000000 +v 0.000000 0.132583 0.132582 +v 0.000000 0.000000 0.187500 +v 0.000000 -0.132583 0.132582 +v 0.000000 -0.187500 0.000000 +v 0.000000 -0.132583 -0.132582 +v -0.812500 0.000000 -0.187500 +v -0.812500 0.132583 -0.132583 +v -0.812500 0.187500 0.000000 +v -0.812500 0.132583 0.132582 +v -0.812500 0.000000 0.187500 +v -0.812500 -0.132583 0.132582 +v -0.812500 -0.187500 0.000000 +v -0.812500 -0.132583 -0.132582 +v 0.062500 1.750000 -0.187500 +v 0.062500 1.882583 -0.132582 +v 0.062500 1.937500 0.000000 +v 0.062500 1.882583 0.132583 +v 0.062500 1.750000 0.187500 +v 0.062500 1.617417 0.132583 +v 0.062500 1.562500 0.000000 +v 0.062500 1.617417 -0.132582 +v -1.001000 1.750000 -0.187500 +v -1.001000 1.882583 -0.132582 +v -1.001000 1.937500 0.000000 +v -1.001000 1.882583 0.132583 +v -1.001000 1.750000 0.187500 +v -1.001000 1.617417 0.132583 +v -1.001000 1.562500 0.000000 +v -1.001000 1.617417 -0.132582 +v -1.001000 1.750000 -0.125000 +v -1.001000 1.838388 -0.088388 +v -1.001000 1.875000 0.000000 +v -1.001000 1.838388 0.088389 +v -1.001000 1.750000 0.125000 +v -1.001000 1.661612 0.088389 +v -1.001000 1.625000 0.000000 +v -1.001000 1.661612 -0.088388 +v -2.937500 1.838388 -0.088388 +v -2.937500 1.750000 -0.125000 +v -2.937500 1.875000 0.000000 +v -2.937500 1.838388 0.088388 +v -2.937500 1.750000 0.125000 +v -2.937500 1.661612 0.088388 +v -2.937500 1.625000 0.000000 +v -2.937500 1.661612 -0.088388 +v 0.000000 -0.187500 0.000000 +v 0.000000 -0.187500 0.375000 +v 0.000000 1.937500 0.000000 +v 0.000000 1.937500 0.375000 +v -0.750000 -0.187500 0.000000 +v -0.750000 -0.187500 0.375000 +v -1.000000 1.937500 0.000000 +v -1.000000 1.937500 0.375000 +v 0.000000 1.437500 0.375000 +v -1.000000 1.437500 0.375000 +v 0.000000 0.312500 0.375000 +v -0.750000 0.312500 0.375000 +v 0.000000 0.687500 0.375000 +v -0.750000 0.687500 0.375000 +v 0.000000 1.062500 0.375000 +v -1.000000 1.062500 0.375000 +v -0.750000 0.500000 0.250000 +v 0.000000 0.500000 0.250000 +v 0.000000 1.250000 0.250000 +v -1.000000 1.250000 0.250000 +v -1.000000 1.062500 0.000000 +v -0.750000 0.687500 0.000000 +vt 0.244604 0.431737 +vt 0.248147 0.442105 +vt 0.244604 0.452473 +vt 0.241007 0.378947 +vt 0.244604 0.368421 +vt 0.244604 0.378947 +vt 0.241007 0.357895 +vt 0.244604 0.357895 +vt 0.244604 0.347368 +vt 0.241007 0.431579 +vt 0.244604 0.421053 +vt 0.244604 0.431579 +vt 0.241007 0.421053 +vt 0.244604 0.410526 +vt 0.241007 0.400000 +vt 0.244604 0.400000 +vt 0.241007 0.389474 +vt 0.244604 0.389474 +vt 0.179841 0.368286 +vt 0.176305 0.357849 +vt 0.179872 0.347504 +vt 0.420863 0.568421 +vt 0.399281 0.610526 +vt 0.399281 0.568421 +vt 0.392086 0.747368 +vt 0.420863 0.705263 +vt 0.420863 0.747368 +vt 0.352518 0.747368 +vt 0.381295 0.778947 +vt 0.352518 0.778947 +vt 0.420863 0.626316 +vt 0.399281 0.642105 +vt 0.399281 0.626316 +vt 0.352518 0.536842 +vt 0.374101 0.568421 +vt 0.352518 0.568421 +vt 0.392086 0.689474 +vt 0.420863 0.673684 +vt 0.420863 0.689474 +vt 0.420863 0.642105 +vt 0.392086 0.705263 +vt 0.420863 0.610526 +vt 0.345324 0.689474 +vt 0.345324 0.626316 +vt 0.388489 0.689474 +vt 0.381295 0.747368 +vt 0.388489 0.626316 +vt 0.381295 0.642105 +vt 0.381295 0.568421 +vt 0.392086 0.673684 +vt 0.392086 0.642105 +vt 0.381295 0.673684 +vt 0.242099 0.449437 +vt 0.241061 0.442105 +vt 0.242099 0.434774 +vt 0.247110 0.434774 +vt 0.247110 0.449437 +vt 0.241007 0.368421 +vt 0.241007 0.347368 +vt 0.241007 0.410526 +vt 0.177334 0.365210 +vt 0.177356 0.350515 +vt 0.182378 0.350579 +vt 0.183407 0.357940 +vt 0.182356 0.365274 +vt 0.374101 0.536842 +vt 0.341727 0.747368 +vt 0.341727 0.705263 +vt 0.341727 0.673684 +vt 0.341727 0.642105 +vt 0.341727 0.610526 +vt 0.341727 0.568421 +vt 0.392086 0.568421 +vt 0.392086 0.610526 +vt 0.374101 0.642105 +vt 0.248201 0.442105 +vt 0.273381 0.431579 +vt 0.273381 0.442105 +vt 0.248201 0.463158 +vt 0.273381 0.452632 +vt 0.273381 0.463158 +vt 0.248201 0.484211 +vt 0.273381 0.473684 +vt 0.273381 0.484211 +vt 0.248201 0.515789 +vt 0.273381 0.505263 +vt 0.273381 0.515789 +vt 0.248201 0.452632 +vt 0.248201 0.473684 +vt 0.248201 0.494737 +vt 0.273381 0.494737 +vt 0.248201 0.505263 +vt 0.273381 0.421053 +vt 0.273381 0.431579 +vt 0.273381 0.357895 +vt 0.273381 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.389474 +vt 0.273381 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.347368 +vt 0.183453 0.357895 +vt 0.183453 0.378947 +vt 0.183453 0.400000 +vt 0.183453 0.410526 +vt 0.183453 0.347368 +vt 0.183453 0.368421 +vt 0.183453 0.389474 +vt 0.183453 0.421053 +vt 0.248201 0.431579 +vt 0.183453 0.431579 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.5547 0.8321 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.5547 0.8321 +vn 1.0000 0.0000 0.0000 +vn -0.8321 -0.5547 0.0000 +vn 0.0000 0.0000 -1.0000 +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 +s off +f 15/1/1 13/2/1 11/3/1 +f 36/4/1 29/5/1 28/6/1 +f 29/5/1 38/7/1 30/8/1 +f 38/7/1 31/9/1 30/8/1 +f 39/10/1 32/11/1 31/12/1 +f 40/13/1 25/14/1 32/11/1 +f 25/14/1 34/15/1 26/16/1 +f 26/16/1 35/17/1 27/18/1 +f 27/18/1 36/4/1 28/6/1 +f 43/19/1 42/20/1 47/21/1 +f 50/22/2 60/23/2 54/24/2 +f 56/25/2 57/26/2 52/27/2 +f 51/28/3 56/29/3 52/30/3 +f 66/31/4 62/32/4 65/33/4 +f 50/34/5 53/35/5 49/36/5 +f 68/37/6 63/38/6 67/39/6 +f 63/38/2 62/32/2 61/40/2 +f 58/41/4 67/39/4 57/26/4 +f 59/42/6 65/33/6 60/23/6 +f 49/36/7 67/43/7 66/44/7 +f 68/45/1 58/41/1 55/46/1 +f 65/47/1 70/48/1 53/49/1 +f 64/50/8 70/48/8 62/51/8 +f 69/52/9 55/46/9 51/28/9 +f 11/3/1 10/53/1 9/54/1 +f 9/54/1 16/55/1 15/1/1 +f 15/1/1 14/56/1 13/2/1 +f 13/2/1 12/57/1 11/3/1 +f 11/3/1 9/54/1 15/1/1 +f 36/4/1 37/58/1 29/5/1 +f 29/5/1 37/58/1 38/7/1 +f 38/7/1 39/59/1 31/9/1 +f 39/10/1 40/13/1 32/11/1 +f 40/13/1 33/60/1 25/14/1 +f 25/14/1 33/60/1 34/15/1 +f 26/16/1 34/15/1 35/17/1 +f 27/18/1 35/17/1 36/4/1 +f 43/19/1 41/61/1 42/20/1 +f 42/20/1 48/62/1 47/21/1 +f 47/21/1 46/63/1 45/64/1 +f 45/64/1 44/65/1 47/21/1 +f 44/65/1 43/19/1 47/21/1 +f 50/22/2 59/42/2 60/23/2 +f 56/25/2 58/41/2 57/26/2 +f 51/28/3 55/46/3 56/29/3 +f 66/31/4 61/40/4 62/32/4 +f 50/34/5 54/66/5 53/35/5 +f 68/37/6 64/50/6 63/38/6 +f 63/38/2 64/50/2 62/32/2 +f 58/41/4 68/37/4 67/39/4 +f 59/42/6 66/31/6 65/33/6 +f 51/28/7 52/67/7 57/68/7 +f 67/43/7 63/69/7 61/70/7 +f 51/28/7 57/68/7 67/43/7 +f 59/71/7 50/72/7 49/36/7 +f 67/43/7 61/70/7 66/44/7 +f 66/44/7 59/71/7 49/36/7 +f 49/36/7 51/28/7 67/43/7 +f 56/25/1 55/46/1 58/41/1 +f 55/46/1 69/52/1 68/45/1 +f 69/52/1 64/50/1 68/45/1 +f 53/49/1 54/73/1 60/74/1 +f 65/47/1 62/51/1 70/48/1 +f 53/49/1 60/74/1 65/47/1 +f 64/50/8 69/52/8 70/48/8 +f 51/28/9 49/36/9 70/75/9 +f 49/36/9 53/35/9 70/75/9 +f 70/75/9 69/52/9 51/28/9 +s 1 +f 14/76/10 7/77/5 6/78/10 +f 12/79/11 5/80/2 4/81/11 +f 10/82/12 3/83/3 2/84/12 +f 15/85/5 8/86/13 7/87/5 +f 13/88/2 6/78/10 5/80/2 +f 11/89/3 4/81/11 3/83/3 +f 9/90/9 2/84/12 1/91/9 +f 16/92/13 1/91/9 8/86/13 +f 31/12/5 24/93/13 23/94/5 +f 29/5/2 22/95/10 21/96/2 +f 27/18/3 20/97/11 19/98/3 +f 25/14/9 18/99/12 17/100/9 +f 32/11/13 17/100/9 24/93/13 +f 30/8/10 23/101/5 22/95/10 +f 28/6/11 21/96/2 20/97/11 +f 26/16/12 19/98/3 18/99/12 +f 37/58/2 46/102/10 38/7/10 +f 35/17/3 44/103/11 36/4/11 +f 33/60/9 41/104/12 34/15/12 +f 40/13/13 42/105/9 33/60/9 +f 38/7/10 47/106/5 39/59/5 +f 36/4/11 45/107/2 37/58/2 +f 34/15/12 43/108/3 35/17/3 +f 39/10/5 48/109/13 40/13/13 +f 14/76/10 15/110/5 7/77/5 +f 12/79/11 13/88/2 5/80/2 +f 10/82/12 11/89/3 3/83/3 +f 15/85/5 16/92/13 8/86/13 +f 13/88/2 14/76/10 6/78/10 +f 11/89/3 12/79/11 4/81/11 +f 9/90/9 10/82/12 2/84/12 +f 16/92/13 9/90/9 1/91/9 +f 31/12/5 32/11/13 24/93/13 +f 29/5/2 30/8/10 22/95/10 +f 27/18/3 28/6/11 20/97/11 +f 25/14/9 26/16/12 18/99/12 +f 32/11/13 25/14/9 17/100/9 +f 30/8/10 31/9/5 23/101/5 +f 28/6/11 29/5/2 21/96/2 +f 26/16/12 27/18/3 19/98/3 +f 37/58/2 45/107/2 46/102/10 +f 35/17/3 43/108/3 44/103/11 +f 33/60/9 42/105/9 41/104/12 +f 40/13/13 48/109/13 42/105/9 +f 38/7/10 46/102/10 47/106/5 +f 36/4/11 44/103/11 45/107/2 +f 34/15/12 41/104/12 43/108/3 +f 39/10/5 47/111/5 48/109/13 +o Casings +v 2.437500 2.500000 -0.328125 +v 2.437500 2.335938 -0.284164 +v 2.437500 2.215835 -0.164062 +v 2.437500 2.171875 0.000000 +v 2.437500 2.215835 0.164062 +v 2.437500 2.335938 0.284164 +v 2.437500 2.500000 0.328125 +v 2.437500 2.664062 0.284164 +v 2.437500 2.784164 0.164062 +v 2.437500 2.828125 0.000000 +v 2.437500 2.784165 -0.164062 +v 2.437500 2.664063 -0.284164 +v 0.500000 2.500000 -0.328125 +v 0.500000 2.335938 -0.284164 +v 0.500000 2.215835 -0.164062 +v 0.500000 2.171875 0.000000 +v 0.500000 2.215835 0.164062 +v 0.500000 2.335938 0.284164 +v 0.500000 2.500000 0.328125 +v 0.500000 2.664062 0.284164 +v 0.500000 2.784164 0.164062 +v 0.500000 2.828125 0.000000 +v 0.500000 2.784165 -0.164062 +v 0.500000 2.664063 -0.284164 +v 2.437500 2.500000 -0.375000 +v 2.437500 2.312500 -0.324759 +v 2.437500 2.175241 -0.187500 +v 2.437500 2.125000 0.000000 +v 2.437500 2.175241 0.187500 +v 2.437500 2.312500 0.324759 +v 2.437500 2.500000 0.375000 +v 2.437500 2.687500 0.324759 +v 2.437500 2.824759 0.187500 +v 2.437500 2.875000 0.000000 +v 2.437500 2.824759 -0.187500 +v 2.437500 2.687500 -0.324759 +v 2.500000 2.687500 -0.324759 +v 2.500000 2.824759 -0.187500 +v 2.500000 2.875000 0.000000 +v 2.500000 2.824759 0.187500 +v 2.500000 2.687500 0.324759 +v 2.500000 2.500000 0.375000 +v 2.500000 2.312500 0.324759 +v 2.500000 2.175241 0.187500 +v 2.500000 2.125000 0.000000 +v 2.500000 2.175241 -0.187500 +v 2.500000 2.312500 -0.324759 +v 2.500000 2.500000 -0.375000 +v 2.500000 2.593750 -0.162380 +v 2.500000 2.500000 -0.187500 +v 2.500000 2.662380 -0.093750 +v 2.500000 2.687500 0.000000 +v 2.500000 2.662380 0.093750 +v 2.500000 2.593750 0.162380 +v 2.500000 2.500000 0.187500 +v 2.500000 2.406250 0.162380 +v 2.500000 2.337620 0.093750 +v 2.500000 2.312500 0.000000 +v 2.500000 2.337620 -0.093750 +v 2.500000 2.406250 -0.162380 +v 2.437500 2.593750 -0.162380 +v 2.437500 2.500000 -0.187500 +v 2.437500 2.662380 -0.093750 +v 2.437500 2.687500 0.000000 +v 2.437500 2.662380 0.093750 +v 2.437500 2.593750 0.162380 +v 2.437500 2.500000 0.187500 +v 2.437500 2.406250 0.162380 +v 2.437500 2.337620 0.093750 +v 2.437500 2.312500 0.000000 +v 2.437500 2.337620 -0.093750 +v 2.437500 2.406250 -0.162380 +v 2.500000 2.582031 -0.142082 +v 2.500000 2.500000 -0.164062 +v 2.500000 2.642082 -0.082031 +v 2.500000 2.664062 0.000000 +v 2.500000 2.642082 0.082031 +v 2.500000 2.582031 0.142082 +v 2.500000 2.500000 0.164062 +v 2.500000 2.417969 0.142082 +v 2.500000 2.357918 0.082031 +v 2.500000 2.335938 0.000000 +v 2.500000 2.357918 -0.082031 +v 2.500000 2.417969 -0.142082 +v 2.500000 2.500000 0.000000 +v 2.437500 1.000000 0.328125 +v 2.437500 1.164062 0.284164 +v 2.437500 1.284165 0.164062 +v 2.437500 1.328125 0.000000 +v 2.437500 1.284165 -0.164062 +v 2.437500 1.164062 -0.284164 +v 2.437500 1.000000 -0.328125 +v 2.437500 0.835938 -0.284164 +v 2.437500 0.715836 -0.164062 +v 2.437500 0.671875 0.000000 +v 2.437500 0.715835 0.164062 +v 2.437500 0.835937 0.284164 +v 0.500000 1.000000 0.328125 +v 0.500000 1.164062 0.284164 +v 0.500000 1.284165 0.164062 +v 0.500000 1.328125 0.000000 +v 0.500000 1.284165 -0.164062 +v 0.500000 1.164062 -0.284164 +v 0.500000 1.000000 -0.328125 +v 0.500000 0.835938 -0.284164 +v 0.500000 0.715836 -0.164062 +v 0.500000 0.671875 0.000000 +v 0.500000 0.715835 0.164062 +v 0.500000 0.835937 0.284164 +v 2.437500 1.000000 0.375000 +v 2.437500 1.187500 0.324759 +v 2.437500 1.324759 0.187500 +v 2.437500 1.375000 0.000000 +v 2.437500 1.324759 -0.187500 +v 2.437500 1.187500 -0.324759 +v 2.437500 1.000000 -0.375000 +v 2.437500 0.812500 -0.324759 +v 2.437500 0.675241 -0.187500 +v 2.437500 0.625000 0.000000 +v 2.437500 0.675241 0.187500 +v 2.437500 0.812500 0.324759 +v 2.500000 0.812500 0.324759 +v 2.500000 0.675241 0.187500 +v 2.500000 0.625000 0.000000 +v 2.500000 0.675241 -0.187500 +v 2.500000 0.812500 -0.324759 +v 2.500000 1.000000 -0.375000 +v 2.500000 1.187500 -0.324759 +v 2.500000 1.324759 -0.187500 +v 2.500000 1.375000 0.000000 +v 2.500000 1.324759 0.187500 +v 2.500000 1.187500 0.324759 +v 2.500000 1.000000 0.375000 +v 2.500000 0.906250 0.162380 +v 2.500000 1.000000 0.187500 +v 2.500000 0.837620 0.093750 +v 2.500000 0.812500 0.000000 +v 2.500000 0.837620 -0.093750 +v 2.500000 0.906250 -0.162380 +v 2.500000 1.000000 -0.187500 +v 2.500000 1.093750 -0.162380 +v 2.500000 1.162380 -0.093750 +v 2.500000 1.187500 0.000000 +v 2.500000 1.162380 0.093750 +v 2.500000 1.093750 0.162380 +v 2.437500 0.906250 0.162380 +v 2.437500 1.000000 0.187500 +v 2.437500 0.837620 0.093750 +v 2.437500 0.812500 0.000000 +v 2.437500 0.837620 -0.093750 +v 2.437500 0.906250 -0.162380 +v 2.437500 1.000000 -0.187500 +v 2.437500 1.093750 -0.162380 +v 2.437500 1.162380 -0.093750 +v 2.437500 1.187500 0.000000 +v 2.437500 1.162380 0.093750 +v 2.437500 1.093750 0.162380 +v 2.500000 0.917969 0.142082 +v 2.500000 1.000000 0.164062 +v 2.500000 0.857918 0.082031 +v 2.500000 0.835938 0.000000 +v 2.500000 0.857918 -0.082031 +v 2.500000 0.917969 -0.142082 +v 2.500000 1.000000 -0.164062 +v 2.500000 1.082031 -0.142082 +v 2.500000 1.142082 -0.082031 +v 2.500000 1.164062 0.000000 +v 2.500000 1.142082 0.082031 +v 2.500000 1.082031 0.142082 +v 2.500000 1.000000 0.000000 +v 2.437500 2.409164 0.485456 +v 2.437500 2.289062 0.365355 +v 2.437500 2.125000 0.321394 +v 2.437500 1.960938 0.365355 +v 2.437500 1.840835 0.485456 +v 2.437500 1.796875 0.649519 +v 2.437500 1.840835 0.813581 +v 2.437500 1.960938 0.933684 +v 2.437500 2.125000 0.977644 +v 2.437500 2.289062 0.933684 +v 2.437500 2.409164 0.813582 +v 2.437500 2.453125 0.649519 +v 0.500000 2.409164 0.485456 +v 0.500000 2.289062 0.365355 +v 0.500000 2.125000 0.321394 +v 0.500000 1.960938 0.365355 +v 0.500000 1.840835 0.485456 +v 0.500000 1.796875 0.649519 +v 0.500000 1.840835 0.813581 +v 0.500000 1.960938 0.933684 +v 0.500000 2.125000 0.977644 +v 0.500000 2.289062 0.933684 +v 0.500000 2.409164 0.813582 +v 0.500000 2.453125 0.649519 +v 2.437500 2.449759 0.462019 +v 2.437500 2.312500 0.324759 +v 2.437500 2.125000 0.274519 +v 2.437500 1.937500 0.324759 +v 2.437500 1.800241 0.462019 +v 2.437500 1.750000 0.649519 +v 2.437500 1.800240 0.837019 +v 2.437500 1.937500 0.974278 +v 2.437500 2.125000 1.024519 +v 2.437500 2.312500 0.974279 +v 2.437500 2.449759 0.837019 +v 2.437500 2.500000 0.649519 +v 2.500000 2.500000 0.649519 +v 2.500000 2.449759 0.837019 +v 2.500000 2.312500 0.974279 +v 2.500000 2.125000 1.024519 +v 2.500000 1.937500 0.974278 +v 2.500000 1.800240 0.837019 +v 2.500000 1.750000 0.649519 +v 2.500000 1.800241 0.462019 +v 2.500000 1.937500 0.324759 +v 2.500000 2.125000 0.274519 +v 2.500000 2.312500 0.324759 +v 2.500000 2.449759 0.462019 +v 2.500000 2.312500 0.649519 +v 2.500000 2.287380 0.555769 +v 2.500000 2.287380 0.743269 +v 2.500000 2.218750 0.811899 +v 2.500000 2.125000 0.837019 +v 2.500000 2.031250 0.811899 +v 2.500000 1.962620 0.743269 +v 2.500000 1.937500 0.649519 +v 2.500000 1.962620 0.555769 +v 2.500000 2.031250 0.487139 +v 2.500000 2.125000 0.462019 +v 2.500000 2.218750 0.487139 +v 2.437500 2.312500 0.649519 +v 2.437500 2.287380 0.555769 +v 2.437500 2.287380 0.743269 +v 2.437500 2.218750 0.811899 +v 2.437500 2.125000 0.837019 +v 2.437500 2.031250 0.811899 +v 2.437500 1.962620 0.743269 +v 2.437500 1.937500 0.649519 +v 2.437500 1.962620 0.555769 +v 2.437500 2.031250 0.487139 +v 2.437500 2.125000 0.462019 +v 2.437500 2.218750 0.487139 +v 2.500000 2.289062 0.649519 +v 2.500000 2.267082 0.567488 +v 2.500000 2.267082 0.731550 +v 2.500000 2.207031 0.791601 +v 2.500000 2.125000 0.813581 +v 2.500000 2.042969 0.791601 +v 2.500000 1.982918 0.731550 +v 2.500000 1.960938 0.649519 +v 2.500000 1.982918 0.567488 +v 2.500000 2.042969 0.507437 +v 2.500000 2.125000 0.485457 +v 2.500000 2.207031 0.507437 +v 2.500000 2.125000 0.649519 +v 2.437500 1.090835 -0.485456 +v 2.437500 1.210938 -0.365355 +v 2.437500 1.375000 -0.321394 +v 2.437500 1.539062 -0.365355 +v 2.437500 1.659165 -0.485456 +v 2.437500 1.703125 -0.649519 +v 2.437500 1.659165 -0.813581 +v 2.437500 1.539062 -0.933684 +v 2.437500 1.375000 -0.977644 +v 2.437500 1.210938 -0.933684 +v 2.437500 1.090835 -0.813582 +v 2.437500 1.046875 -0.649519 +v 0.500000 1.090835 -0.485456 +v 0.500000 1.210938 -0.365355 +v 0.500000 1.375000 -0.321394 +v 0.500000 1.539062 -0.365355 +v 0.500000 1.659165 -0.485456 +v 0.500000 1.703125 -0.649519 +v 0.500000 1.659165 -0.813581 +v 0.500000 1.539062 -0.933684 +v 0.500000 1.375000 -0.977644 +v 0.500000 1.210938 -0.933684 +v 0.500000 1.090835 -0.813582 +v 0.500000 1.046875 -0.649519 +v 2.437500 1.050241 -0.462019 +v 2.437500 1.187500 -0.324759 +v 2.437500 1.375000 -0.274519 +v 2.437500 1.562500 -0.324759 +v 2.437500 1.699759 -0.462019 +v 2.437500 1.750000 -0.649519 +v 2.437500 1.699760 -0.837019 +v 2.437500 1.562500 -0.974278 +v 2.437500 1.375000 -1.024519 +v 2.437500 1.187500 -0.974279 +v 2.437500 1.050241 -0.837019 +v 2.437500 1.000000 -0.649519 +v 2.500000 1.000000 -0.649519 +v 2.500000 1.050241 -0.837019 +v 2.500000 1.187500 -0.974279 +v 2.500000 1.375000 -1.024519 +v 2.500000 1.562500 -0.974278 +v 2.500000 1.699760 -0.837019 +v 2.500000 1.750000 -0.649519 +v 2.500000 1.699759 -0.462019 +v 2.500000 1.562500 -0.324759 +v 2.500000 1.375000 -0.274519 +v 2.500000 1.187500 -0.324759 +v 2.500000 1.050241 -0.462019 +v 2.500000 1.187500 -0.649519 +v 2.500000 1.212620 -0.555769 +v 2.500000 1.212620 -0.743269 +v 2.500000 1.281250 -0.811899 +v 2.500000 1.375000 -0.837019 +v 2.500000 1.468750 -0.811899 +v 2.500000 1.537380 -0.743269 +v 2.500000 1.562500 -0.649519 +v 2.500000 1.537380 -0.555769 +v 2.500000 1.468750 -0.487139 +v 2.500000 1.375000 -0.462019 +v 2.500000 1.281250 -0.487139 +v 2.437500 1.187500 -0.649519 +v 2.437500 1.212620 -0.555769 +v 2.437500 1.212620 -0.743269 +v 2.437500 1.281250 -0.811899 +v 2.437500 1.375000 -0.837019 +v 2.437500 1.468750 -0.811899 +v 2.437500 1.537380 -0.743269 +v 2.437500 1.562500 -0.649519 +v 2.437500 1.537380 -0.555769 +v 2.437500 1.468750 -0.487139 +v 2.437500 1.375000 -0.462019 +v 2.437500 1.281250 -0.487139 +v 2.500000 1.210938 -0.649519 +v 2.500000 1.232918 -0.567488 +v 2.500000 1.232918 -0.731550 +v 2.500000 1.292969 -0.791601 +v 2.500000 1.375000 -0.813581 +v 2.500000 1.457031 -0.791601 +v 2.500000 1.517082 -0.731550 +v 2.500000 1.539062 -0.649519 +v 2.500000 1.517082 -0.567488 +v 2.500000 1.457031 -0.507437 +v 2.500000 1.375000 -0.485457 +v 2.500000 1.292969 -0.507437 +v 2.500000 1.375000 -0.649519 +v 2.437500 1.659165 0.813581 +v 2.437500 1.703125 0.649519 +v 2.437500 1.659165 0.485456 +v 2.437500 1.539062 0.365355 +v 2.437500 1.375000 0.321394 +v 2.437500 1.210938 0.365355 +v 2.437500 1.090835 0.485456 +v 2.437500 1.046875 0.649519 +v 2.437500 1.090835 0.813581 +v 2.437500 1.210937 0.933684 +v 2.437500 1.375000 0.977644 +v 2.437500 1.539062 0.933684 +v 0.500000 1.659165 0.813581 +v 0.500000 1.703125 0.649519 +v 0.500000 1.659165 0.485456 +v 0.500000 1.539062 0.365355 +v 0.500000 1.375000 0.321394 +v 0.500000 1.210938 0.365355 +v 0.500000 1.090835 0.485456 +v 0.500000 1.046875 0.649519 +v 0.500000 1.090835 0.813581 +v 0.500000 1.210937 0.933684 +v 0.500000 1.375000 0.977644 +v 0.500000 1.539062 0.933684 +v 2.437500 1.699759 0.837019 +v 2.437500 1.750000 0.649519 +v 2.437500 1.699759 0.462019 +v 2.437500 1.562500 0.324759 +v 2.437500 1.375000 0.274519 +v 2.437500 1.187500 0.324759 +v 2.437500 1.050241 0.462019 +v 2.437500 1.000000 0.649519 +v 2.437500 1.050241 0.837019 +v 2.437500 1.187500 0.974279 +v 2.437500 1.375000 1.024519 +v 2.437500 1.562500 0.974279 +v 2.500000 1.562500 0.974279 +v 2.500000 1.375000 1.024519 +v 2.500000 1.187500 0.974279 +v 2.500000 1.050241 0.837019 +v 2.500000 1.000000 0.649519 +v 2.500000 1.050241 0.462019 +v 2.500000 1.187500 0.324759 +v 2.500000 1.375000 0.274519 +v 2.500000 1.562500 0.324759 +v 2.500000 1.699759 0.462019 +v 2.500000 1.750000 0.649519 +v 2.500000 1.699759 0.837019 +v 2.500000 1.468750 0.811899 +v 2.500000 1.537380 0.743269 +v 2.500000 1.375000 0.837019 +v 2.500000 1.281250 0.811899 +v 2.500000 1.212620 0.743269 +v 2.500000 1.187500 0.649519 +v 2.500000 1.212620 0.555769 +v 2.500000 1.281250 0.487139 +v 2.500000 1.375000 0.462019 +v 2.500000 1.468750 0.487139 +v 2.500000 1.537380 0.555769 +v 2.500000 1.562500 0.649519 +v 2.437500 1.468750 0.811899 +v 2.437500 1.537380 0.743269 +v 2.437500 1.375000 0.837019 +v 2.437500 1.281250 0.811899 +v 2.437500 1.212620 0.743269 +v 2.437500 1.187500 0.649519 +v 2.437500 1.212620 0.555769 +v 2.437500 1.281250 0.487139 +v 2.437500 1.375000 0.462019 +v 2.437500 1.468750 0.487139 +v 2.437500 1.537380 0.555769 +v 2.437500 1.562500 0.649519 +v 2.500000 1.457031 0.791601 +v 2.500000 1.517082 0.731550 +v 2.500000 1.375000 0.813581 +v 2.500000 1.292969 0.791601 +v 2.500000 1.232918 0.731550 +v 2.500000 1.210937 0.649519 +v 2.500000 1.232918 0.567488 +v 2.500000 1.292969 0.507437 +v 2.500000 1.375000 0.485456 +v 2.500000 1.457031 0.507437 +v 2.500000 1.517082 0.567488 +v 2.500000 1.539062 0.649519 +v 2.500000 1.375000 0.649519 +v 2.437500 1.840835 -0.813581 +v 2.437500 1.796875 -0.649519 +v 2.437500 1.840835 -0.485456 +v 2.437500 1.960938 -0.365355 +v 2.437500 2.125000 -0.321394 +v 2.437500 2.289062 -0.365355 +v 2.437500 2.409165 -0.485456 +v 2.437500 2.453125 -0.649519 +v 2.437500 2.409165 -0.813581 +v 2.437500 2.289062 -0.933684 +v 2.437500 2.125000 -0.977644 +v 2.437500 1.960938 -0.933684 +v 0.500000 1.840835 -0.813581 +v 0.500000 1.796875 -0.649519 +v 0.500000 1.840835 -0.485456 +v 0.500000 1.960938 -0.365355 +v 0.500000 2.125000 -0.321394 +v 0.500000 2.289062 -0.365355 +v 0.500000 2.409165 -0.485456 +v 0.500000 2.453125 -0.649519 +v 0.500000 2.409165 -0.813581 +v 0.500000 2.289062 -0.933684 +v 0.500000 2.125000 -0.977644 +v 0.500000 1.960938 -0.933684 +v 2.437500 1.800241 -0.837019 +v 2.437500 1.750000 -0.649519 +v 2.437500 1.800241 -0.462019 +v 2.437500 1.937500 -0.324759 +v 2.437500 2.125000 -0.274519 +v 2.437500 2.312500 -0.324759 +v 2.437500 2.449759 -0.462019 +v 2.437500 2.500000 -0.649519 +v 2.437500 2.449760 -0.837019 +v 2.437500 2.312500 -0.974279 +v 2.437500 2.125000 -1.024519 +v 2.437500 1.937500 -0.974279 +v 2.500000 1.937500 -0.974279 +v 2.500000 2.125000 -1.024519 +v 2.500000 2.312500 -0.974279 +v 2.500000 2.449760 -0.837019 +v 2.500000 2.500000 -0.649519 +v 2.500000 2.449759 -0.462019 +v 2.500000 2.312500 -0.324759 +v 2.500000 2.125000 -0.274519 +v 2.500000 1.937500 -0.324759 +v 2.500000 1.800241 -0.462019 +v 2.500000 1.750000 -0.649519 +v 2.500000 1.800241 -0.837019 +v 2.500000 2.031250 -0.811899 +v 2.500000 1.962620 -0.743269 +v 2.500000 2.125000 -0.837019 +v 2.500000 2.218750 -0.811899 +v 2.500000 2.287380 -0.743269 +v 2.500000 2.312500 -0.649519 +v 2.500000 2.287380 -0.555769 +v 2.500000 2.218750 -0.487139 +v 2.500000 2.125000 -0.462019 +v 2.500000 2.031250 -0.487139 +v 2.500000 1.962620 -0.555769 +v 2.500000 1.937500 -0.649519 +v 2.437500 2.031250 -0.811899 +v 2.437500 1.962620 -0.743269 +v 2.437500 2.125000 -0.837019 +v 2.437500 2.218750 -0.811899 +v 2.437500 2.287380 -0.743269 +v 2.437500 2.312500 -0.649519 +v 2.437500 2.287380 -0.555769 +v 2.437500 2.218750 -0.487139 +v 2.437500 2.125000 -0.462019 +v 2.437500 2.031250 -0.487139 +v 2.437500 1.962620 -0.555769 +v 2.437500 1.937500 -0.649519 +v 2.500000 2.042969 -0.791601 +v 2.500000 1.982918 -0.731550 +v 2.500000 2.125000 -0.813581 +v 2.500000 2.207031 -0.791601 +v 2.500000 2.267082 -0.731550 +v 2.500000 2.289062 -0.649519 +v 2.500000 2.267082 -0.567488 +v 2.500000 2.207031 -0.507437 +v 2.500000 2.125000 -0.485456 +v 2.500000 2.042969 -0.507437 +v 2.500000 1.982918 -0.567488 +v 2.500000 1.960938 -0.649519 +v 2.500000 2.125000 -0.649519 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.547368 +vt 0.097122 0.536842 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.064748 0.526316 +vt 0.071942 0.494737 +vt 0.075540 0.526316 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.107914 0.526316 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.547368 +vt 0.097122 0.536842 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.064748 0.526316 +vt 0.071942 0.494737 +vt 0.075540 0.526316 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.107914 0.526316 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.053957 0.547368 +vt 0.043165 0.536842 +vt 0.053957 0.536842 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.547368 +vt 0.118705 0.536842 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.547368 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.043165 0.526316 +vt 0.032374 0.494737 +vt 0.039568 0.494737 +vt 0.075540 0.526316 +vt 0.064748 0.494737 +vt 0.071942 0.494737 +vt 0.129496 0.526316 +vt 0.118705 0.494737 +vt 0.125899 0.494737 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.032374 0.526316 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.064748 0.526316 +vt 0.118705 0.526316 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.043165 0.526316 +vt 0.032374 0.494737 +vt 0.039568 0.494737 +vt 0.075540 0.526316 +vt 0.064748 0.494737 +vt 0.071942 0.494737 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.032374 0.526316 +vt 0.064748 0.526316 +vt 0.053957 0.494737 +vt 0.061151 0.494737 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.053957 0.526316 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt 0.010791 0.526316 +vt 0.000000 0.494737 +vt 0.007194 0.494737 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.075540 0.526316 +vt 0.064748 0.494737 +vt 0.071942 0.494737 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.064748 0.526316 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.536842 +vt 0.064748 0.547368 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.000000 0.547368 +vt 0.010791 0.536842 +vt 0.010791 0.547368 +vt 0.021583 0.536842 +vt 0.021583 0.547368 +vt 0.032374 0.536842 +vt 0.032374 0.547368 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.064748 0.526316 +vt 0.071942 0.494737 +vt 0.075540 0.526316 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.032374 0.494737 +vt 0.064748 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.107914 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.032374 0.494737 +vt 0.064748 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.107914 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt -0.000000 0.526316 +vt 0.032374 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.536842 +vt 0.000000 0.494737 +vt 0.032374 0.494737 +vt 0.064748 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.064748 0.484211 +vt 0.010791 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt 0.064748 0.484211 +vt 0.118705 0.484211 +vt 0.021583 0.484211 +vt 0.086331 0.484211 +vt 0.010791 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt 0.064748 0.484211 +vt 0.021583 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.086331 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.897306 +vt 0.132184 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt 0.064748 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.086331 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.053957 0.484211 +vt 0.086331 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.897306 +vt 0.132184 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.107914 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.129496 0.873684 +vt 0.118705 0.484211 +vt 0.021583 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.086331 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt 0.097122 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.166377 0.839536 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.021583 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt 0.064748 0.484211 +vt 0.021583 0.484211 +vt 0.107914 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.166377 0.839536 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt 0.064748 0.484211 +vt 0.021583 0.484211 +vt 0.053957 0.484211 +vt 0.086331 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.3511 0.0000 -0.9363 +vn 0.3511 -0.4682 -0.8109 +vn 0.3511 0.8109 -0.4682 +vn 0.3511 0.4682 -0.8109 +vn 0.3511 -0.9363 0.0000 +vn 0.3511 -0.8109 0.4682 +vn 0.3511 0.0000 0.9363 +vn 0.3511 0.4682 0.8109 +vn 0.3511 0.9363 0.0000 +vn 0.3511 -0.8109 -0.4682 +vn 0.3511 -0.4682 0.8109 +vn 0.3511 0.8109 0.4682 +s off +f 78/112/14 103/113/14 79/114/14 +f 80/115/14 103/113/14 104/116/14 +f 81/117/14 104/116/14 105/118/14 +f 82/119/14 105/118/14 106/120/14 +f 71/121/14 106/120/14 95/122/14 +f 71/121/14 96/123/14 72/124/14 +f 72/124/14 97/125/14 73/126/14 +f 73/126/14 98/127/14 74/128/14 +f 75/129/14 98/130/14 99/131/14 +f 76/132/14 99/131/14 100/133/14 +f 77/134/14 100/133/14 101/135/14 +f 77/134/14 102/136/14 78/112/14 +f 115/137/15 127/138/15 114/139/15 +f 112/140/15 124/141/15 111/142/15 +f 109/143/15 121/144/15 108/145/15 +f 116/146/15 128/147/15 115/148/15 +f 113/149/15 125/150/15 112/140/15 +f 110/151/15 122/152/15 109/143/15 +f 117/153/15 129/154/15 116/146/15 +f 118/155/15 119/156/15 120/157/15 +f 114/139/15 126/158/15 113/149/15 +f 111/142/15 123/159/15 110/151/15 +f 118/155/15 130/160/15 117/153/15 +f 107/161/15 121/162/15 119/163/15 +f 143/164/15 145/165/15 155/166/15 +f 145/167/15 146/168/15 155/169/15 +f 146/170/15 147/171/15 155/172/15 +f 147/173/15 148/174/15 155/175/15 +f 148/176/15 149/177/15 155/178/15 +f 149/179/15 150/180/15 155/181/15 +f 150/182/15 151/183/15 155/184/15 +f 151/185/15 152/186/15 155/187/15 +f 152/188/15 153/189/15 155/190/15 +f 153/191/15 154/192/15 155/193/15 +f 154/194/15 144/195/15 155/196/15 +f 144/197/15 143/198/15 155/199/15 +f 163/200/14 188/201/14 164/202/14 +f 165/203/14 188/201/14 189/204/14 +f 166/205/14 189/204/14 190/206/14 +f 167/207/14 190/206/14 191/208/14 +f 156/209/14 191/208/14 180/210/14 +f 156/209/14 181/211/14 157/212/14 +f 157/212/14 182/213/14 158/214/14 +f 158/214/14 183/215/14 159/216/14 +f 160/217/14 183/218/14 184/219/14 +f 161/220/14 184/219/14 185/221/14 +f 162/222/14 185/221/14 186/223/14 +f 162/222/14 187/224/14 163/200/14 +f 200/225/15 212/226/15 199/227/15 +f 197/228/15 209/229/15 196/230/15 +f 194/231/15 206/232/15 193/233/15 +f 201/234/15 213/235/15 200/236/15 +f 198/237/15 210/238/15 197/228/15 +f 195/239/15 207/240/15 194/231/15 +f 202/241/15 214/242/15 201/234/15 +f 203/243/15 204/244/15 205/245/15 +f 199/227/15 211/246/15 198/237/15 +f 196/230/15 208/247/15 195/239/15 +f 203/243/15 215/248/15 202/241/15 +f 192/249/15 206/250/15 204/251/15 +f 228/252/15 230/253/15 240/254/15 +f 230/255/15 231/256/15 240/257/15 +f 231/258/15 232/259/15 240/260/15 +f 232/261/15 233/262/15 240/263/15 +f 233/264/15 234/265/15 240/266/15 +f 234/267/15 235/268/15 240/269/15 +f 235/270/15 236/271/15 240/272/15 +f 236/273/15 237/274/15 240/275/15 +f 237/276/15 238/277/15 240/278/15 +f 238/279/15 239/280/15 240/281/15 +f 239/282/15 229/283/15 240/284/15 +f 229/285/15 228/286/15 240/287/15 +f 249/288/14 272/289/14 273/290/14 +f 250/291/14 273/290/14 274/292/14 +f 251/293/14 274/292/14 275/294/14 +f 252/295/14 275/294/14 276/296/14 +f 252/295/14 265/297/14 241/298/14 +f 241/298/14 266/299/14 242/300/14 +f 243/301/14 266/299/14 267/302/14 +f 243/301/14 268/303/14 244/304/14 +f 245/305/14 268/306/14 269/307/14 +f 246/308/14 269/307/14 270/309/14 +f 247/310/14 270/309/14 271/311/14 +f 247/310/14 272/289/14 248/312/14 +f 285/313/15 297/314/15 284/315/15 +f 281/316/15 295/317/15 294/318/15 +f 278/319/15 292/320/15 291/321/15 +f 285/322/15 299/323/15 298/324/15 +f 283/325/15 295/326/15 282/327/15 +f 280/328/15 292/329/15 279/330/15 +f 286/331/15 300/332/15 299/333/15 +f 288/334/15 289/335/15 290/336/15 +f 284/315/15 296/337/15 283/325/15 +f 281/316/15 293/338/15 280/328/15 +f 288/334/15 300/339/15 287/340/15 +f 277/341/15 291/342/15 289/343/15 +f 313/344/15 315/345/15 325/346/15 +f 315/347/15 316/348/15 325/349/15 +f 316/350/15 317/351/15 325/352/15 +f 317/353/15 318/354/15 325/355/15 +f 318/356/15 319/357/15 325/358/15 +f 319/359/15 320/360/15 325/361/15 +f 320/362/15 321/363/15 325/364/15 +f 321/365/15 322/366/15 325/367/15 +f 322/368/15 323/369/15 325/370/15 +f 323/371/15 324/372/15 325/373/15 +f 324/374/15 314/375/15 325/376/15 +f 314/377/15 313/378/15 325/379/15 +f 333/380/14 358/381/14 334/382/14 +f 335/383/14 358/381/14 359/384/14 +f 336/385/14 359/384/14 360/386/14 +f 337/387/14 360/386/14 361/388/14 +f 337/387/14 350/389/14 326/390/14 +f 326/390/14 351/391/14 327/392/14 +f 327/392/14 352/393/14 328/394/14 +f 328/394/14 353/395/14 329/396/14 +f 330/397/14 353/398/14 354/399/14 +f 331/400/14 354/399/14 355/401/14 +f 332/402/14 355/401/14 356/403/14 +f 332/402/14 357/404/14 333/380/14 +f 370/405/15 382/406/15 369/407/15 +f 366/408/15 380/409/15 379/410/15 +f 363/411/15 377/412/15 376/413/15 +f 371/414/15 383/415/15 370/416/15 +f 368/417/15 380/418/15 367/419/15 +f 364/420/15 378/421/15 377/422/15 +f 371/414/15 385/423/15 384/424/15 +f 373/425/15 374/426/15 375/427/15 +f 369/407/15 381/428/15 368/417/15 +f 366/408/15 378/429/15 365/430/15 +f 373/425/15 385/431/15 372/432/15 +f 362/433/15 376/434/15 374/435/15 +f 398/436/15 400/437/15 410/438/15 +f 400/439/15 401/440/15 410/441/15 +f 401/442/15 402/443/15 410/444/15 +f 402/445/15 403/446/15 410/447/15 +f 403/448/15 404/449/15 410/450/15 +f 404/451/15 405/452/15 410/453/15 +f 405/454/15 406/455/15 410/456/15 +f 406/457/15 407/458/15 410/459/15 +f 407/460/15 408/461/15 410/462/15 +f 408/463/15 409/464/15 410/465/15 +f 409/466/15 399/467/15 410/468/15 +f 399/469/15 398/470/15 410/471/15 +f 418/472/14 443/473/14 419/474/14 +f 420/475/14 443/473/14 444/476/14 +f 421/477/14 444/476/14 445/478/14 +f 422/479/14 445/478/14 446/480/14 +f 422/479/14 435/481/14 411/482/14 +f 411/482/14 436/483/14 412/484/14 +f 412/484/14 437/485/14 413/486/14 +f 413/486/14 438/487/14 414/488/14 +f 415/489/14 438/490/14 439/491/14 +f 416/492/14 439/491/14 440/493/14 +f 417/494/14 440/493/14 441/495/14 +f 417/494/14 442/496/14 418/472/14 +f 454/497/15 468/498/15 467/499/15 +f 452/500/15 464/501/15 451/502/15 +f 448/503/15 462/504/15 461/505/15 +f 456/506/15 468/507/15 455/508/15 +f 453/509/15 465/510/15 452/500/15 +f 450/511/15 462/512/15 449/513/15 +f 456/506/15 470/514/15 469/515/15 +f 458/516/15 459/517/15 460/518/15 +f 454/497/15 466/519/15 453/509/15 +f 451/502/15 463/520/15 450/511/15 +f 458/516/15 470/521/15 457/522/15 +f 447/523/15 461/524/15 459/525/15 +f 483/526/15 485/527/15 495/528/15 +f 485/529/15 486/530/15 495/531/15 +f 486/532/15 487/533/15 495/534/15 +f 487/535/15 488/536/15 495/537/15 +f 488/538/15 489/539/15 495/540/15 +f 489/541/15 490/542/15 495/543/15 +f 490/544/15 491/545/15 495/546/15 +f 491/547/15 492/548/15 495/549/15 +f 492/550/15 493/551/15 495/552/15 +f 493/553/15 494/554/15 495/555/15 +f 494/556/15 484/557/15 495/558/15 +f 484/559/15 483/560/15 495/561/15 +f 503/562/14 528/563/14 504/564/14 +f 504/564/14 529/565/14 505/566/14 +f 506/567/14 529/565/14 530/568/14 +f 507/569/14 530/568/14 531/570/14 +f 507/569/14 520/571/14 496/572/14 +f 496/572/14 521/573/14 497/574/14 +f 497/574/14 522/575/14 498/576/14 +f 498/576/14 523/577/14 499/578/14 +f 499/579/14 524/580/14 500/581/14 +f 500/581/14 525/582/14 501/583/14 +f 501/583/14 526/584/14 502/585/14 +f 502/585/14 527/586/14 503/562/14 +f 540/587/15 552/588/15 539/589/15 +f 537/590/15 549/591/15 536/592/15 +f 534/593/15 546/594/15 533/595/15 +f 541/596/15 553/597/15 540/598/15 +f 538/599/15 550/600/15 537/590/15 +f 535/601/15 547/602/15 534/593/15 +f 541/596/15 555/603/15 554/604/15 +f 543/605/15 544/606/15 545/607/15 +f 539/589/15 551/608/15 538/599/15 +f 536/592/15 548/609/15 535/601/15 +f 543/605/15 555/610/15 542/611/15 +f 532/612/15 546/613/15 544/614/15 +f 568/615/15 570/616/15 580/617/15 +f 570/618/15 571/619/15 580/620/15 +f 571/621/15 572/622/15 580/623/15 +f 572/624/15 573/625/15 580/626/15 +f 573/627/15 574/628/15 580/629/15 +f 574/630/15 575/631/15 580/632/15 +f 575/633/15 576/634/15 580/635/15 +f 576/636/15 577/637/15 580/638/15 +f 577/639/15 578/640/15 580/641/15 +f 578/642/15 579/643/15 580/644/15 +f 579/645/15 569/646/15 580/647/15 +f 569/648/15 568/649/15 580/650/15 +f 78/112/14 102/136/14 103/113/14 +f 80/115/14 79/114/14 103/113/14 +f 81/117/14 80/115/14 104/116/14 +f 82/119/14 81/117/14 105/118/14 +f 71/121/14 82/119/14 106/120/14 +f 71/121/14 95/122/14 96/123/14 +f 72/124/14 96/123/14 97/125/14 +f 73/126/14 97/125/14 98/127/14 +f 75/129/14 74/651/14 98/130/14 +f 76/132/14 75/129/14 99/131/14 +f 77/134/14 76/132/14 100/133/14 +f 77/134/14 101/135/14 102/136/14 +f 115/137/15 128/652/15 127/138/15 +f 112/140/15 125/653/15 124/141/15 +f 109/143/15 122/654/15 121/144/15 +f 116/146/15 129/655/15 128/147/15 +f 113/149/15 126/656/15 125/150/15 +f 110/151/15 123/657/15 122/152/15 +f 117/153/15 130/658/15 129/154/15 +f 118/155/15 107/161/15 119/156/15 +f 114/139/15 127/659/15 126/158/15 +f 111/142/15 124/660/15 123/159/15 +f 118/155/15 120/661/15 130/160/15 +f 107/161/15 108/145/15 121/162/15 +f 163/200/14 187/224/14 188/201/14 +f 165/203/14 164/202/14 188/201/14 +f 166/205/14 165/203/14 189/204/14 +f 167/207/14 166/205/14 190/206/14 +f 156/209/14 167/207/14 191/208/14 +f 156/209/14 180/210/14 181/211/14 +f 157/212/14 181/211/14 182/213/14 +f 158/214/14 182/213/14 183/215/14 +f 160/217/14 159/662/14 183/218/14 +f 161/220/14 160/217/14 184/219/14 +f 162/222/14 161/220/14 185/221/14 +f 162/222/14 186/223/14 187/224/14 +f 200/225/15 213/663/15 212/226/15 +f 197/228/15 210/664/15 209/229/15 +f 194/231/15 207/665/15 206/232/15 +f 201/234/15 214/666/15 213/235/15 +f 198/237/15 211/667/15 210/238/15 +f 195/239/15 208/668/15 207/240/15 +f 202/241/15 215/669/15 214/242/15 +f 203/243/15 192/249/15 204/244/15 +f 199/227/15 212/670/15 211/246/15 +f 196/230/15 209/671/15 208/247/15 +f 203/243/15 205/672/15 215/248/15 +f 192/249/15 193/233/15 206/250/15 +f 249/288/14 248/312/14 272/289/14 +f 250/291/14 249/288/14 273/290/14 +f 251/293/14 250/291/14 274/292/14 +f 252/295/14 251/293/14 275/294/14 +f 252/295/14 276/296/14 265/297/14 +f 241/298/14 265/297/14 266/299/14 +f 243/301/14 242/300/14 266/299/14 +f 243/301/14 267/302/14 268/303/14 +f 245/305/14 244/673/14 268/306/14 +f 246/308/14 245/305/14 269/307/14 +f 247/310/14 246/308/14 270/309/14 +f 247/310/14 271/311/14 272/289/14 +f 285/313/15 298/674/15 297/314/15 +f 281/316/15 282/327/15 295/317/15 +f 278/319/15 279/330/15 292/320/15 +f 285/322/15 286/331/15 299/323/15 +f 283/325/15 296/675/15 295/326/15 +f 280/328/15 293/676/15 292/329/15 +f 286/331/15 287/340/15 300/332/15 +f 288/334/15 277/341/15 289/335/15 +f 284/315/15 297/677/15 296/337/15 +f 281/316/15 294/678/15 293/338/15 +f 288/334/15 290/679/15 300/339/15 +f 277/341/15 278/319/15 291/342/15 +f 333/380/14 357/404/14 358/381/14 +f 335/383/14 334/382/14 358/381/14 +f 336/385/14 335/383/14 359/384/14 +f 337/387/14 336/385/14 360/386/14 +f 337/387/14 361/388/14 350/389/14 +f 326/390/14 350/389/14 351/391/14 +f 327/392/14 351/391/14 352/393/14 +f 328/394/14 352/393/14 353/395/14 +f 330/397/14 329/680/14 353/398/14 +f 331/400/14 330/397/14 354/399/14 +f 332/402/14 331/400/14 355/401/14 +f 332/402/14 356/403/14 357/404/14 +f 370/405/15 383/681/15 382/406/15 +f 366/408/15 367/419/15 380/409/15 +f 363/411/15 364/420/15 377/412/15 +f 371/414/15 384/682/15 383/415/15 +f 368/417/15 381/683/15 380/418/15 +f 364/420/15 365/430/15 378/421/15 +f 371/414/15 372/432/15 385/423/15 +f 373/425/15 362/433/15 374/426/15 +f 369/407/15 382/684/15 381/428/15 +f 366/408/15 379/685/15 378/429/15 +f 373/425/15 375/686/15 385/431/15 +f 362/433/15 363/411/15 376/434/15 +f 418/472/14 442/496/14 443/473/14 +f 420/475/14 419/474/14 443/473/14 +f 421/477/14 420/475/14 444/476/14 +f 422/479/14 421/477/14 445/478/14 +f 422/479/14 446/480/14 435/481/14 +f 411/482/14 435/481/14 436/483/14 +f 412/484/14 436/483/14 437/485/14 +f 413/486/14 437/485/14 438/487/14 +f 415/489/14 414/687/14 438/490/14 +f 416/492/14 415/489/14 439/491/14 +f 417/494/14 416/492/14 440/493/14 +f 417/494/14 441/495/14 442/496/14 +f 454/497/15 455/688/15 468/498/15 +f 452/500/15 465/689/15 464/501/15 +f 448/503/15 449/513/15 462/504/15 +f 456/506/15 469/690/15 468/507/15 +f 453/509/15 466/691/15 465/510/15 +f 450/511/15 463/692/15 462/512/15 +f 456/506/15 457/522/15 470/514/15 +f 458/516/15 447/523/15 459/517/15 +f 454/497/15 467/693/15 466/519/15 +f 451/502/15 464/694/15 463/520/15 +f 458/516/15 460/695/15 470/521/15 +f 447/523/15 448/503/15 461/524/15 +f 503/562/14 527/586/14 528/563/14 +f 504/564/14 528/563/14 529/565/14 +f 506/567/14 505/566/14 529/565/14 +f 507/569/14 506/567/14 530/568/14 +f 507/569/14 531/570/14 520/571/14 +f 496/572/14 520/571/14 521/573/14 +f 497/574/14 521/573/14 522/575/14 +f 498/576/14 522/575/14 523/577/14 +f 499/579/14 523/696/14 524/580/14 +f 500/581/14 524/580/14 525/582/14 +f 501/583/14 525/582/14 526/584/14 +f 502/585/14 526/584/14 527/586/14 +f 540/587/15 553/697/15 552/588/15 +f 537/590/15 550/698/15 549/591/15 +f 534/593/15 547/699/15 546/594/15 +f 541/596/15 554/700/15 553/597/15 +f 538/599/15 551/701/15 550/600/15 +f 535/601/15 548/702/15 547/602/15 +f 541/596/15 542/611/15 555/603/15 +f 543/605/15 532/612/15 544/606/15 +f 539/589/15 552/703/15 551/608/15 +f 536/592/15 549/704/15 548/609/15 +f 543/605/15 545/705/15 555/610/15 +f 532/612/15 533/595/15 546/613/15 +s 1 +f 101/135/16 113/149/17 112/140/16 +f 79/114/18 90/706/19 78/112/19 +f 76/132/17 87/707/20 75/129/20 +f 71/121/21 94/708/22 82/119/22 +f 73/126/23 84/709/24 72/124/24 +f 80/115/25 91/710/18 79/114/18 +f 77/134/16 88/711/17 76/132/17 +f 74/128/26 85/712/23 73/126/23 +f 81/117/27 92/713/25 80/115/25 +f 78/112/19 89/714/16 77/134/16 +f 75/129/20 86/715/26 74/651/26 +f 82/119/22 93/716/27 81/117/27 +f 72/124/24 83/717/21 71/121/21 +f 98/127/26 116/146/23 115/148/26 +f 105/118/27 109/143/25 108/145/27 +f 102/136/19 112/140/16 111/142/19 +f 99/131/20 115/137/26 114/139/20 +f 106/120/22 108/145/27 107/161/22 +f 96/123/24 118/155/21 117/153/24 +f 103/113/18 111/142/19 110/151/18 +f 100/133/17 114/139/20 113/149/17 +f 95/122/21 107/161/22 118/155/21 +f 97/125/23 117/153/24 116/146/23 +f 104/116/25 110/151/18 109/143/25 +f 121/162/20 131/718/17 119/163/17 +f 132/719/28 154/194/29 142/720/29 +f 128/652/25 139/721/27 127/138/27 +f 125/653/21 136/722/24 124/141/24 +f 122/654/26 133/723/20 121/144/20 +f 129/655/18 140/724/25 128/147/25 +f 126/656/22 137/725/21 125/150/21 +f 123/657/23 134/726/26 122/152/26 +f 130/658/19 141/727/18 129/154/18 +f 119/156/17 132/728/16 120/157/16 +f 127/659/27 138/729/22 126/158/22 +f 124/660/24 135/730/23 123/159/23 +f 120/661/16 142/720/19 130/160/19 +f 133/731/30 143/164/31 131/718/31 +f 140/732/32 151/185/33 139/721/33 +f 137/733/34 148/176/35 136/722/35 +f 134/734/36 145/167/30 133/723/30 +f 140/724/32 153/189/37 152/188/32 +f 137/725/34 150/180/38 149/179/34 +f 134/726/36 147/171/39 146/170/36 +f 141/727/37 154/192/29 153/191/37 +f 132/728/28 143/198/31 144/197/28 +f 139/735/33 150/182/38 138/729/38 +f 135/730/39 148/174/35 147/173/39 +f 86/736/14 88/737/14 90/738/14 +f 186/223/21 198/237/22 197/228/21 +f 164/202/23 175/739/24 163/200/24 +f 161/220/22 172/740/27 160/217/27 +f 156/209/16 179/741/17 167/207/17 +f 158/214/18 169/742/19 157/212/19 +f 165/203/26 176/743/23 164/202/23 +f 162/222/21 173/744/22 161/220/22 +f 159/216/25 170/745/18 158/214/18 +f 166/205/20 177/746/26 165/203/26 +f 163/200/24 174/747/21 162/222/21 +f 160/217/27 171/748/25 159/662/25 +f 167/207/17 178/749/20 166/205/20 +f 157/212/19 168/750/16 156/209/16 +f 183/215/25 201/234/18 200/236/25 +f 190/206/20 194/231/26 193/233/20 +f 187/224/24 197/228/21 196/230/24 +f 184/219/27 200/225/25 199/227/27 +f 191/208/17 193/233/20 192/249/17 +f 181/211/19 203/243/16 202/241/19 +f 188/201/23 196/230/24 195/239/23 +f 185/221/22 199/227/27 198/237/22 +f 180/210/16 192/249/17 203/243/16 +f 182/213/18 202/241/19 201/234/18 +f 189/204/26 195/239/23 194/231/26 +f 206/250/27 216/751/22 204/251/22 +f 227/752/35 229/283/34 239/282/35 +f 213/663/26 224/753/20 212/226/20 +f 210/664/16 221/754/19 209/229/19 +f 207/665/25 218/755/27 206/232/27 +f 214/666/23 225/756/26 213/235/26 +f 211/667/17 222/757/16 210/238/16 +f 208/668/18 219/758/25 207/240/25 +f 215/669/24 226/759/23 214/242/23 +f 204/244/22 217/760/21 205/245/21 +f 212/670/20 223/761/17 211/246/17 +f 209/671/19 220/762/18 208/247/18 +f 205/672/21 227/752/24 215/248/24 +f 218/763/33 228/252/38 216/751/38 +f 224/753/30 237/274/36 236/273/30 +f 221/754/29 234/265/28 233/264/29 +f 219/764/32 230/255/33 218/755/33 +f 226/765/39 237/276/36 225/756/36 +f 223/766/31 234/267/28 222/757/28 +f 219/758/32 232/259/37 231/258/32 +f 226/759/39 239/280/35 238/279/39 +f 216/767/38 229/285/34 217/760/34 +f 224/768/30 235/270/31 223/761/31 +f 220/762/37 233/262/29 232/261/37 +f 171/769/14 173/770/14 175/771/14 +f 271/311/20 283/325/26 282/327/20 +f 249/288/16 260/772/17 248/312/17 +f 246/308/26 257/773/23 245/305/23 +f 241/298/27 264/774/25 252/295/25 +f 243/301/21 254/775/22 242/300/22 +f 250/291/19 261/776/16 249/288/16 +f 247/310/20 258/777/26 246/308/26 +f 244/304/24 255/778/21 243/301/21 +f 251/293/18 262/779/19 250/291/19 +f 248/312/17 259/780/20 247/310/20 +f 245/305/23 256/781/24 244/673/24 +f 252/295/25 263/782/18 251/293/18 +f 242/300/22 253/783/27 241/298/27 +f 268/303/24 286/331/21 285/322/24 +f 275/294/18 279/330/19 278/319/18 +f 272/289/17 282/327/20 281/316/17 +f 269/307/23 285/313/24 284/315/23 +f 276/296/25 278/319/18 277/341/25 +f 266/299/22 288/334/27 287/340/22 +f 273/290/16 281/316/17 280/328/16 +f 270/309/26 284/315/23 283/325/26 +f 265/297/27 277/341/25 288/334/27 +f 267/302/21 287/340/22 286/331/21 +f 274/292/19 280/328/16 279/330/19 +f 291/342/23 301/784/26 289/343/26 +f 302/785/30 324/374/31 312/786/31 +f 298/674/19 309/787/18 297/314/18 +f 295/317/27 306/788/22 294/318/22 +f 292/320/24 303/789/23 291/321/23 +f 299/323/16 310/790/19 298/324/19 +f 296/675/25 307/791/27 295/326/27 +f 293/676/21 304/792/24 292/329/24 +f 300/332/17 311/793/16 299/333/16 +f 289/335/26 302/794/20 290/336/20 +f 297/677/18 308/795/25 296/337/25 +f 294/678/22 305/796/21 293/338/21 +f 290/679/20 312/786/17 300/339/17 +f 303/797/39 313/344/36 301/784/36 +f 309/787/37 322/366/29 321/365/37 +f 306/788/38 319/357/33 318/356/38 +f 304/798/35 315/347/39 303/789/39 +f 310/790/29 323/369/28 322/368/29 +f 308/799/32 319/359/33 307/791/33 +f 305/800/34 316/350/35 304/792/35 +f 312/801/31 323/371/28 311/793/28 +f 301/802/36 314/377/30 302/794/30 +f 308/795/32 321/363/37 320/362/32 +f 305/796/34 318/354/38 317/353/34 +f 256/803/14 260/804/14 264/805/14 +f 356/403/27 368/417/25 367/419/27 +f 334/382/21 345/806/22 333/380/22 +f 331/400/25 342/807/18 330/397/18 +f 326/390/20 349/808/26 337/387/26 +f 328/394/16 339/809/17 327/392/17 +f 335/383/24 346/810/21 334/382/21 +f 332/402/27 343/811/25 331/400/25 +f 329/396/19 340/812/16 328/394/16 +f 336/385/23 347/813/24 335/383/24 +f 333/380/22 344/814/27 332/402/27 +f 330/397/18 341/815/19 329/680/19 +f 337/387/26 348/816/23 336/385/23 +f 327/392/17 338/817/20 326/390/20 +f 353/395/19 371/414/16 370/416/19 +f 360/386/23 364/420/24 363/411/23 +f 357/404/22 367/419/27 366/408/22 +f 354/399/18 370/405/19 369/407/18 +f 361/388/26 363/411/23 362/433/26 +f 351/391/17 373/425/20 372/432/17 +f 358/381/21 366/408/22 365/430/21 +f 355/401/25 369/407/18 368/417/25 +f 350/389/20 362/433/26 373/425/20 +f 352/393/16 372/432/17 371/414/16 +f 359/384/24 365/430/21 364/420/24 +f 376/434/18 386/818/25 374/435/25 +f 387/819/33 409/466/38 397/820/38 +f 383/681/24 394/821/23 382/406/23 +f 380/409/20 391/822/17 379/410/17 +f 377/412/19 388/823/18 376/413/18 +f 384/682/21 395/824/24 383/415/24 +f 381/683/26 392/825/20 380/418/20 +f 378/421/16 389/826/19 377/422/19 +f 385/423/22 396/827/21 384/424/21 +f 374/426/25 387/828/27 375/427/27 +f 382/684/23 393/829/26 381/428/26 +f 379/685/17 390/830/16 378/429/16 +f 375/686/27 397/820/22 385/431/22 +f 388/831/37 398/436/32 386/818/32 +f 394/821/39 407/458/35 406/457/39 +f 391/822/31 404/449/30 403/448/31 +f 389/832/29 400/439/37 388/823/37 +f 395/824/35 408/461/34 407/460/35 +f 392/825/30 405/452/36 404/451/30 +f 390/833/28 401/442/29 389/826/29 +f 397/834/38 408/463/34 396/827/34 +f 386/835/32 399/469/33 387/828/33 +f 393/829/36 406/455/39 405/454/36 +f 390/830/28 403/446/31 402/445/28 +f 341/836/14 343/837/14 345/838/14 +f 441/495/23 453/509/24 452/500/23 +f 419/474/20 430/839/26 418/472/26 +f 416/492/24 427/840/21 415/489/21 +f 411/482/18 434/841/19 422/479/19 +f 413/486/27 424/842/25 412/484/25 +f 420/475/17 431/843/20 419/474/20 +f 417/494/23 428/844/24 416/492/24 +f 414/488/22 425/845/27 413/486/27 +f 421/477/16 432/846/17 420/475/17 +f 418/472/26 429/847/23 417/494/23 +f 415/489/21 426/848/22 414/687/22 +f 422/479/19 433/849/16 421/477/16 +f 412/484/25 423/850/18 411/482/18 +f 438/487/22 456/506/27 455/508/22 +f 445/478/16 449/513/17 448/503/16 +f 442/496/26 452/500/23 451/502/26 +f 439/491/21 455/688/22 454/497/21 +f 446/480/19 448/503/16 447/523/19 +f 436/483/25 458/516/18 457/522/25 +f 443/473/20 451/502/26 450/511/20 +f 440/493/24 454/497/21 453/509/24 +f 435/481/18 447/523/19 458/516/18 +f 437/485/27 457/522/25 456/506/27 +f 444/476/17 450/511/20 449/513/17 +f 461/524/21 471/851/24 459/525/24 +f 472/852/39 494/556/36 482/853/36 +f 468/498/17 479/854/16 467/499/16 +f 465/689/18 476/855/25 464/501/25 +f 462/504/22 473/856/21 461/505/21 +f 469/690/20 480/857/17 468/507/17 +f 466/691/19 477/858/18 465/510/18 +f 463/692/27 474/859/22 462/512/22 +f 470/514/26 481/860/20 469/515/20 +f 459/517/24 472/861/23 460/518/23 +f 467/693/16 478/862/19 466/519/19 +f 464/694/25 475/863/27 463/520/27 +f 460/695/23 482/853/26 470/521/26 +f 473/864/34 483/526/35 471/851/35 +f 480/865/31 491/547/28 479/854/28 +f 477/866/37 488/538/32 476/855/32 +f 473/856/34 486/530/38 485/529/34 +f 481/867/30 492/550/31 480/857/31 +f 477/858/37 490/542/29 489/541/37 +f 475/868/33 486/532/38 474/859/38 +f 481/860/30 494/554/36 493/553/30 +f 471/869/35 484/559/39 472/861/39 +f 478/862/29 491/545/28 490/544/29 +f 475/863/33 488/536/32 487/535/33 +f 426/870/14 430/871/14 434/872/14 +f 526/584/18 538/599/19 537/590/18 +f 504/564/27 515/873/25 503/562/25 +f 501/583/19 512/874/16 500/581/16 +f 496/572/23 519/875/24 507/569/24 +f 498/576/20 509/876/26 497/574/26 +f 505/566/22 516/877/27 504/564/27 +f 502/585/18 513/878/19 501/583/19 +f 499/578/17 510/879/20 498/576/20 +f 506/567/21 517/880/22 505/566/22 +f 503/562/25 514/881/18 502/585/18 +f 500/581/16 511/882/17 499/579/17 +f 507/569/24 518/883/21 506/567/21 +f 497/574/26 508/884/23 496/572/23 +f 523/577/17 541/596/20 540/598/17 +f 530/568/21 534/593/22 533/595/21 +f 527/586/25 537/590/18 536/592/25 +f 524/580/16 540/587/17 539/589/16 +f 531/570/24 533/595/21 532/612/24 +f 521/573/26 543/605/23 542/611/26 +f 528/563/27 536/592/25 535/601/27 +f 525/582/19 539/589/16 538/599/19 +f 520/571/23 532/612/24 543/605/23 +f 522/575/20 542/611/26 541/596/20 +f 529/565/22 535/601/27 534/593/22 +f 546/613/16 556/885/19 544/614/19 +f 557/886/37 579/645/32 567/887/32 +f 553/697/22 564/888/21 552/588/21 +f 550/698/23 561/889/26 549/591/26 +f 547/699/17 558/890/16 546/594/16 +f 554/700/27 565/891/22 553/597/22 +f 551/701/24 562/892/23 550/600/23 +f 548/702/20 559/893/17 547/602/17 +f 555/603/25 566/894/27 554/604/27 +f 544/606/19 557/895/18 545/607/18 +f 552/703/21 563/896/24 551/608/24 +f 549/704/26 560/897/20 548/609/20 +f 545/705/18 567/887/25 555/610/25 +f 558/898/28 568/615/29 556/885/29 +f 565/899/38 576/636/34 564/888/34 +f 562/900/39 573/627/36 561/889/36 +f 558/890/28 571/619/31 570/618/28 +f 566/901/33 577/639/38 565/891/38 +f 562/892/39 575/631/35 574/630/39 +f 559/893/31 572/622/30 571/621/31 +f 567/902/32 578/642/33 566/894/33 +f 557/895/37 568/649/29 569/648/37 +f 563/896/35 576/634/34 575/633/35 +f 560/897/30 573/625/36 572/624/30 +f 511/903/14 513/904/14 515/905/14 +f 101/135/16 100/133/17 113/149/17 +f 79/114/18 91/710/18 90/706/19 +f 76/132/17 88/711/17 87/707/20 +f 71/121/21 83/717/21 94/708/22 +f 73/126/23 85/712/23 84/709/24 +f 80/115/25 92/713/25 91/710/18 +f 77/134/16 89/714/16 88/711/17 +f 74/128/26 86/906/26 85/712/23 +f 81/117/27 93/716/27 92/713/25 +f 78/112/19 90/706/19 89/714/16 +f 75/129/20 87/707/20 86/715/26 +f 82/119/22 94/708/22 93/716/27 +f 72/124/24 84/709/24 83/717/21 +f 98/127/26 97/125/23 116/146/23 +f 105/118/27 104/116/25 109/143/25 +f 102/136/19 101/135/16 112/140/16 +f 99/131/20 98/130/26 115/137/26 +f 106/120/22 105/118/27 108/145/27 +f 96/123/24 95/122/21 118/155/21 +f 103/113/18 102/136/19 111/142/19 +f 100/133/17 99/131/20 114/139/20 +f 95/122/21 106/120/22 107/161/22 +f 97/125/23 96/123/24 117/153/24 +f 104/116/25 103/113/18 110/151/18 +f 121/162/20 133/731/20 131/718/17 +f 132/719/28 144/195/28 154/194/29 +f 128/652/25 140/732/25 139/721/27 +f 125/653/21 137/733/21 136/722/24 +f 122/654/26 134/734/26 133/723/20 +f 129/655/18 141/907/18 140/724/25 +f 126/656/22 138/908/22 137/725/21 +f 123/657/23 135/909/23 134/726/26 +f 130/658/19 142/910/19 141/727/18 +f 119/156/17 131/911/17 132/728/16 +f 127/659/27 139/735/27 138/729/22 +f 124/660/24 136/912/24 135/730/23 +f 120/661/16 132/719/16 142/720/19 +f 133/731/30 145/165/30 143/164/31 +f 140/732/32 152/186/32 151/185/33 +f 137/733/34 149/177/34 148/176/35 +f 134/734/36 146/168/36 145/167/30 +f 140/724/32 141/907/37 153/189/37 +f 137/725/34 138/908/38 150/180/38 +f 134/726/36 135/909/39 147/171/39 +f 141/727/37 142/910/29 154/192/29 +f 132/728/28 131/911/31 143/198/31 +f 139/735/33 151/183/33 150/182/38 +f 135/730/39 136/912/35 148/174/35 +f 94/913/14 83/914/14 84/915/14 +f 84/915/14 85/916/14 86/736/14 +f 86/736/14 87/917/14 88/737/14 +f 88/737/14 89/918/14 90/738/14 +f 90/738/14 91/919/14 94/913/14 +f 91/919/14 92/920/14 94/913/14 +f 92/920/14 93/921/14 94/913/14 +f 94/913/14 84/915/14 90/738/14 +f 84/915/14 86/736/14 90/738/14 +f 186/223/21 185/221/22 198/237/22 +f 164/202/23 176/743/23 175/739/24 +f 161/220/22 173/744/22 172/740/27 +f 156/209/16 168/750/16 179/741/17 +f 158/214/18 170/745/18 169/742/19 +f 165/203/26 177/746/26 176/743/23 +f 162/222/21 174/747/21 173/744/22 +f 159/216/25 171/922/25 170/745/18 +f 166/205/20 178/749/20 177/746/26 +f 163/200/24 175/739/24 174/747/21 +f 160/217/27 172/740/27 171/748/25 +f 167/207/17 179/741/17 178/749/20 +f 157/212/19 169/742/19 168/750/16 +f 183/215/25 182/213/18 201/234/18 +f 190/206/20 189/204/26 194/231/26 +f 187/224/24 186/223/21 197/228/21 +f 184/219/27 183/218/25 200/225/25 +f 191/208/17 190/206/20 193/233/20 +f 181/211/19 180/210/16 203/243/16 +f 188/201/23 187/224/24 196/230/24 +f 185/221/22 184/219/27 199/227/27 +f 180/210/16 191/208/17 192/249/17 +f 182/213/18 181/211/19 202/241/19 +f 189/204/26 188/201/23 195/239/23 +f 206/250/27 218/763/27 216/751/22 +f 227/752/35 217/923/34 229/283/34 +f 213/663/26 225/924/26 224/753/20 +f 210/664/16 222/925/16 221/754/19 +f 207/665/25 219/764/25 218/755/27 +f 214/666/23 226/765/23 225/756/26 +f 211/667/17 223/766/17 222/757/16 +f 208/668/18 220/926/18 219/758/25 +f 215/669/24 227/927/24 226/759/23 +f 204/244/22 216/767/22 217/760/21 +f 212/670/20 224/768/20 223/761/17 +f 209/671/19 221/928/19 220/762/18 +f 205/672/21 217/923/21 227/752/24 +f 218/763/33 230/253/33 228/252/38 +f 224/753/30 225/924/36 237/274/36 +f 221/754/29 222/925/28 234/265/28 +f 219/764/32 231/256/32 230/255/33 +f 226/765/39 238/277/39 237/276/36 +f 223/766/31 235/268/31 234/267/28 +f 219/758/32 220/926/37 232/259/37 +f 226/759/39 227/927/35 239/280/35 +f 216/767/38 228/286/38 229/285/34 +f 224/768/30 236/271/30 235/270/31 +f 220/762/37 221/928/29 233/262/29 +f 179/929/14 168/930/14 169/931/14 +f 169/931/14 170/932/14 171/769/14 +f 171/769/14 172/933/14 173/770/14 +f 173/770/14 174/934/14 175/771/14 +f 175/771/14 176/935/14 179/929/14 +f 176/935/14 177/936/14 179/929/14 +f 177/936/14 178/937/14 179/929/14 +f 179/929/14 169/931/14 175/771/14 +f 169/931/14 171/769/14 175/771/14 +f 271/311/20 270/309/26 283/325/26 +f 249/288/16 261/776/16 260/772/17 +f 246/308/26 258/777/26 257/773/23 +f 241/298/27 253/783/27 264/774/25 +f 243/301/21 255/778/21 254/775/22 +f 250/291/19 262/779/19 261/776/16 +f 247/310/20 259/780/20 258/777/26 +f 244/304/24 256/938/24 255/778/21 +f 251/293/18 263/782/18 262/779/19 +f 248/312/17 260/772/17 259/780/20 +f 245/305/23 257/773/23 256/781/24 +f 252/295/25 264/774/25 263/782/18 +f 242/300/22 254/775/22 253/783/27 +f 268/303/24 267/302/21 286/331/21 +f 275/294/18 274/292/19 279/330/19 +f 272/289/17 271/311/20 282/327/20 +f 269/307/23 268/306/24 285/313/24 +f 276/296/25 275/294/18 278/319/18 +f 266/299/22 265/297/27 288/334/27 +f 273/290/16 272/289/17 281/316/17 +f 270/309/26 269/307/23 284/315/23 +f 265/297/27 276/296/25 277/341/25 +f 267/302/21 266/299/22 287/340/22 +f 274/292/19 273/290/16 280/328/16 +f 291/342/23 303/797/23 301/784/26 +f 302/785/30 314/375/30 324/374/31 +f 298/674/19 310/939/19 309/787/18 +f 295/317/27 307/940/27 306/788/22 +f 292/320/24 304/798/24 303/789/23 +f 299/323/16 311/941/16 310/790/19 +f 296/675/25 308/799/25 307/791/27 +f 293/676/21 305/800/21 304/792/24 +f 300/332/17 312/801/17 311/793/16 +f 289/335/26 301/802/26 302/794/20 +f 297/677/18 309/942/18 308/795/25 +f 294/678/22 306/943/22 305/796/21 +f 290/679/20 302/785/20 312/786/17 +f 303/797/39 315/345/39 313/344/36 +f 309/787/37 310/939/29 322/366/29 +f 306/788/38 307/940/33 319/357/33 +f 304/798/35 316/348/35 315/347/39 +f 310/790/29 311/941/28 323/369/28 +f 308/799/32 320/360/32 319/359/33 +f 305/800/34 317/351/34 316/350/35 +f 312/801/31 324/372/31 323/371/28 +f 301/802/36 313/378/36 314/377/30 +f 308/795/32 309/942/37 321/363/37 +f 305/796/34 306/943/38 318/354/38 +f 264/805/14 253/944/14 256/803/14 +f 253/944/14 254/945/14 256/803/14 +f 254/945/14 255/946/14 256/803/14 +f 256/803/14 257/947/14 258/948/14 +f 258/948/14 259/949/14 260/804/14 +f 260/804/14 261/950/14 264/805/14 +f 261/950/14 262/951/14 264/805/14 +f 262/951/14 263/952/14 264/805/14 +f 256/803/14 258/948/14 260/804/14 +f 356/403/27 355/401/25 368/417/25 +f 334/382/21 346/810/21 345/806/22 +f 331/400/25 343/811/25 342/807/18 +f 326/390/20 338/817/20 349/808/26 +f 328/394/16 340/812/16 339/809/17 +f 335/383/24 347/813/24 346/810/21 +f 332/402/27 344/814/27 343/811/25 +f 329/396/19 341/953/19 340/812/16 +f 336/385/23 348/816/23 347/813/24 +f 333/380/22 345/806/22 344/814/27 +f 330/397/18 342/807/18 341/815/19 +f 337/387/26 349/808/26 348/816/23 +f 327/392/17 339/809/17 338/817/20 +f 353/395/19 352/393/16 371/414/16 +f 360/386/23 359/384/24 364/420/24 +f 357/404/22 356/403/27 367/419/27 +f 354/399/18 353/398/19 370/405/19 +f 361/388/26 360/386/23 363/411/23 +f 351/391/17 350/389/20 373/425/20 +f 358/381/21 357/404/22 366/408/22 +f 355/401/25 354/399/18 369/407/18 +f 350/389/20 361/388/26 362/433/26 +f 352/393/16 351/391/17 372/432/17 +f 359/384/24 358/381/21 365/430/21 +f 376/434/18 388/831/18 386/818/25 +f 387/819/33 399/467/33 409/466/38 +f 383/681/24 395/954/24 394/821/23 +f 380/409/20 392/955/20 391/822/17 +f 377/412/19 389/832/19 388/823/18 +f 384/682/21 396/956/21 395/824/24 +f 381/683/26 393/957/26 392/825/20 +f 378/421/16 390/833/16 389/826/19 +f 385/423/22 397/834/22 396/827/21 +f 374/426/25 386/835/25 387/828/27 +f 382/684/23 394/958/23 393/829/26 +f 379/685/17 391/959/17 390/830/16 +f 375/686/27 387/819/27 397/820/22 +f 388/831/37 400/437/37 398/436/32 +f 394/821/39 395/954/35 407/458/35 +f 391/822/31 392/955/30 404/449/30 +f 389/832/29 401/440/29 400/439/37 +f 395/824/35 396/956/34 408/461/34 +f 392/825/30 393/957/36 405/452/36 +f 390/833/28 402/443/28 401/442/29 +f 397/834/38 409/464/38 408/463/34 +f 386/835/32 398/470/32 399/469/33 +f 393/829/36 394/958/39 406/455/39 +f 390/830/28 391/959/31 403/446/31 +f 349/960/14 338/961/14 339/962/14 +f 339/962/14 340/963/14 341/836/14 +f 341/836/14 342/964/14 343/837/14 +f 343/837/14 344/965/14 345/838/14 +f 345/838/14 346/966/14 349/960/14 +f 346/966/14 347/967/14 349/960/14 +f 347/967/14 348/968/14 349/960/14 +f 349/960/14 339/962/14 345/838/14 +f 339/962/14 341/836/14 345/838/14 +f 441/495/23 440/493/24 453/509/24 +f 419/474/20 431/843/20 430/839/26 +f 416/492/24 428/844/24 427/840/21 +f 411/482/18 423/850/18 434/841/19 +f 413/486/27 425/845/27 424/842/25 +f 420/475/17 432/846/17 431/843/20 +f 417/494/23 429/847/23 428/844/24 +f 414/488/22 426/969/22 425/845/27 +f 421/477/16 433/849/16 432/846/17 +f 418/472/26 430/839/26 429/847/23 +f 415/489/21 427/840/21 426/848/22 +f 422/479/19 434/841/19 433/849/16 +f 412/484/25 424/842/25 423/850/18 +f 438/487/22 437/485/27 456/506/27 +f 445/478/16 444/476/17 449/513/17 +f 442/496/26 441/495/23 452/500/23 +f 439/491/21 438/490/22 455/688/22 +f 446/480/19 445/478/16 448/503/16 +f 436/483/25 435/481/18 458/516/18 +f 443/473/20 442/496/26 451/502/26 +f 440/493/24 439/491/21 454/497/21 +f 435/481/18 446/480/19 447/523/19 +f 437/485/27 436/483/25 457/522/25 +f 444/476/17 443/473/20 450/511/20 +f 461/524/21 473/864/21 471/851/24 +f 472/852/39 484/557/39 494/556/36 +f 468/498/17 480/865/17 479/854/16 +f 465/689/18 477/866/18 476/855/25 +f 462/504/22 474/970/22 473/856/21 +f 469/690/20 481/867/20 480/857/17 +f 466/691/19 478/971/19 477/858/18 +f 463/692/27 475/868/27 474/859/22 +f 470/514/26 482/972/26 481/860/20 +f 459/517/24 471/869/24 472/861/23 +f 467/693/16 479/973/16 478/862/19 +f 464/694/25 476/974/25 475/863/27 +f 460/695/23 472/852/23 482/853/26 +f 473/864/34 485/527/34 483/526/35 +f 480/865/31 492/548/31 491/547/28 +f 477/866/37 489/539/37 488/538/32 +f 473/856/34 474/970/38 486/530/38 +f 481/867/30 493/551/30 492/550/31 +f 477/858/37 478/971/29 490/542/29 +f 475/868/33 487/533/33 486/532/38 +f 481/860/30 482/972/36 494/554/36 +f 471/869/35 483/560/35 484/559/39 +f 478/862/29 479/973/28 491/545/28 +f 475/863/33 476/974/32 488/536/32 +f 434/872/14 423/975/14 424/976/14 +f 424/976/14 425/977/14 426/870/14 +f 426/870/14 427/978/14 428/979/14 +f 428/979/14 429/980/14 430/871/14 +f 430/871/14 431/981/14 432/982/14 +f 432/982/14 433/983/14 430/871/14 +f 433/983/14 434/872/14 430/871/14 +f 434/872/14 424/976/14 426/870/14 +f 426/870/14 428/979/14 430/871/14 +f 526/584/18 525/582/19 538/599/19 +f 504/564/27 516/877/27 515/873/25 +f 501/583/19 513/878/19 512/874/16 +f 496/572/23 508/884/23 519/875/24 +f 498/576/20 510/879/20 509/876/26 +f 505/566/22 517/880/22 516/877/27 +f 502/585/18 514/881/18 513/878/19 +f 499/578/17 511/984/17 510/879/20 +f 506/567/21 518/883/21 517/880/22 +f 503/562/25 515/873/25 514/881/18 +f 500/581/16 512/874/16 511/882/17 +f 507/569/24 519/875/24 518/883/21 +f 497/574/26 509/876/26 508/884/23 +f 523/577/17 522/575/20 541/596/20 +f 530/568/21 529/565/22 534/593/22 +f 527/586/25 526/584/18 537/590/18 +f 524/580/16 523/696/17 540/587/17 +f 531/570/24 530/568/21 533/595/21 +f 521/573/26 520/571/23 543/605/23 +f 528/563/27 527/586/25 536/592/25 +f 525/582/19 524/580/16 539/589/16 +f 520/571/23 531/570/24 532/612/24 +f 522/575/20 521/573/26 542/611/26 +f 529/565/22 528/563/27 535/601/27 +f 546/613/16 558/898/16 556/885/19 +f 557/886/37 569/646/37 579/645/32 +f 553/697/22 565/899/22 564/888/21 +f 550/698/23 562/900/23 561/889/26 +f 547/699/17 559/985/17 558/890/16 +f 554/700/27 566/901/27 565/891/22 +f 551/701/24 563/986/24 562/892/23 +f 548/702/20 560/987/20 559/893/17 +f 555/603/25 567/902/25 566/894/27 +f 544/606/19 556/988/19 557/895/18 +f 552/703/21 564/989/21 563/896/24 +f 549/704/26 561/990/26 560/897/20 +f 545/705/18 557/886/18 567/887/25 +f 558/898/28 570/616/28 568/615/29 +f 565/899/38 577/637/38 576/636/34 +f 562/900/39 574/628/39 573/627/36 +f 558/890/28 559/985/31 571/619/31 +f 566/901/33 578/640/33 577/639/38 +f 562/892/39 563/986/35 575/631/35 +f 559/893/31 560/987/30 572/622/30 +f 567/902/32 579/643/32 578/642/33 +f 557/895/37 556/988/29 568/649/29 +f 563/896/35 564/989/34 576/634/34 +f 560/897/30 561/990/36 573/625/36 +f 519/991/14 508/992/14 509/993/14 +f 509/993/14 510/994/14 511/903/14 +f 511/903/14 512/995/14 513/904/14 +f 513/904/14 514/996/14 515/905/14 +f 515/905/14 516/997/14 517/998/14 +f 517/998/14 518/999/14 515/905/14 +f 518/999/14 519/991/14 515/905/14 +f 519/991/14 509/993/14 515/905/14 +f 509/993/14 511/903/14 515/905/14 +o Bullets +v 0.250000 2.541016 -0.071041 +v 0.250000 2.571041 -0.041016 +v 0.250000 2.582031 0.000000 +v 0.250000 2.571041 0.041016 +v 0.250000 2.541016 0.071041 +v 0.250000 2.500000 0.082031 +v 0.250000 2.458984 0.071041 +v 0.250000 2.428959 0.041016 +v 0.250000 2.417969 0.000000 +v 0.250000 2.428959 -0.041016 +v 0.250000 2.458984 -0.071041 +v 0.250000 2.500000 -0.082031 +v 0.125000 2.541016 -0.071041 +v 0.125000 2.571041 -0.041016 +v 0.125000 2.582031 0.000000 +v 0.125000 2.571041 0.041016 +v 0.125000 2.541016 0.071041 +v 0.125000 2.500000 0.082031 +v 0.125000 2.458984 0.071041 +v 0.125000 2.428959 0.041016 +v 0.125000 2.417969 0.000000 +v 0.125000 2.428959 -0.041016 +v 0.125000 2.458984 -0.071041 +v 0.125000 2.500000 -0.082031 +v 0.125000 2.582031 -0.142082 +v 0.125000 2.642082 -0.082031 +v 0.125000 2.664062 0.000000 +v 0.125000 2.642082 0.082031 +v 0.125000 2.582031 0.142082 +v 0.125000 2.500000 0.164062 +v 0.125000 2.417969 0.142082 +v 0.125000 2.357918 0.082031 +v 0.125000 2.335938 0.000000 +v 0.125000 2.357918 -0.082031 +v 0.125000 2.417969 -0.142082 +v 0.125000 2.500000 -0.164062 +v 0.500000 2.664063 -0.284164 +v 0.500000 2.784165 -0.164062 +v 0.500000 2.828125 0.000000 +v 0.500000 2.784164 0.164062 +v 0.500000 2.664062 0.284164 +v 0.500000 2.500000 0.328125 +v 0.500000 2.335938 0.284164 +v 0.500000 2.215835 0.164062 +v 0.500000 2.171875 0.000000 +v 0.500000 2.215835 -0.164062 +v 0.500000 2.335938 -0.284164 +v 0.500000 2.500000 -0.328125 +v 0.250000 0.958984 0.071041 +v 0.250000 0.928959 0.041016 +v 0.250000 0.917969 0.000000 +v 0.250000 0.928959 -0.041016 +v 0.250000 0.958984 -0.071041 +v 0.250000 1.000000 -0.082031 +v 0.250000 1.041016 -0.071041 +v 0.250000 1.071041 -0.041016 +v 0.250000 1.082031 0.000000 +v 0.250000 1.071041 0.041016 +v 0.250000 1.041016 0.071041 +v 0.250000 1.000000 0.082031 +v 0.125000 0.958984 0.071041 +v 0.125000 0.928959 0.041016 +v 0.125000 0.917969 0.000000 +v 0.125000 0.928959 -0.041016 +v 0.125000 0.958984 -0.071041 +v 0.125000 1.000000 -0.082031 +v 0.125000 1.041016 -0.071041 +v 0.125000 1.071041 -0.041016 +v 0.125000 1.082031 0.000000 +v 0.125000 1.071041 0.041016 +v 0.125000 1.041016 0.071041 +v 0.125000 1.000000 0.082031 +v 0.125000 0.917969 0.142082 +v 0.125000 0.857918 0.082031 +v 0.125000 0.835938 0.000000 +v 0.125000 0.857918 -0.082031 +v 0.125000 0.917969 -0.142082 +v 0.125000 1.000000 -0.164062 +v 0.125000 1.082031 -0.142082 +v 0.125000 1.142082 -0.082031 +v 0.125000 1.164062 0.000000 +v 0.125000 1.142082 0.082031 +v 0.125000 1.082031 0.142082 +v 0.125000 1.000000 0.164062 +v 0.500000 0.835937 0.284164 +v 0.500000 0.715835 0.164062 +v 0.500000 0.671875 0.000000 +v 0.500000 0.715836 -0.164062 +v 0.500000 0.835938 -0.284164 +v 0.500000 1.000000 -0.328125 +v 0.500000 1.164062 -0.284164 +v 0.500000 1.284165 -0.164062 +v 0.500000 1.328125 0.000000 +v 0.500000 1.284165 0.164062 +v 0.500000 1.164062 0.284164 +v 0.500000 1.000000 0.328125 +v 0.250000 2.207031 0.649519 +v 0.250000 2.196041 0.690535 +v 0.250000 2.166016 0.720560 +v 0.250000 2.125000 0.731550 +v 0.250000 2.083984 0.720560 +v 0.250000 2.053959 0.690535 +v 0.250000 2.042969 0.649519 +v 0.250000 2.053959 0.608504 +v 0.250000 2.083984 0.578478 +v 0.250000 2.125000 0.567488 +v 0.250000 2.166016 0.578478 +v 0.250000 2.196041 0.608503 +v 0.125000 2.207031 0.649519 +v 0.125000 2.196041 0.690535 +v 0.125000 2.166016 0.720560 +v 0.125000 2.125000 0.731550 +v 0.125000 2.083984 0.720560 +v 0.125000 2.053959 0.690535 +v 0.125000 2.042969 0.649519 +v 0.125000 2.053959 0.608504 +v 0.125000 2.083984 0.578478 +v 0.125000 2.125000 0.567488 +v 0.125000 2.166016 0.578478 +v 0.125000 2.196041 0.608503 +v 0.125000 2.289062 0.649519 +v 0.125000 2.267082 0.731550 +v 0.125000 2.207031 0.791601 +v 0.125000 2.125000 0.813581 +v 0.125000 2.042969 0.791601 +v 0.125000 1.982918 0.731550 +v 0.125000 1.960938 0.649519 +v 0.125000 1.982918 0.567488 +v 0.125000 2.042969 0.507437 +v 0.125000 2.125000 0.485457 +v 0.125000 2.207031 0.507437 +v 0.125000 2.267082 0.567488 +v 0.500000 2.453125 0.649519 +v 0.500000 2.409164 0.813582 +v 0.500000 2.289062 0.933684 +v 0.500000 2.125000 0.977644 +v 0.500000 1.960938 0.933684 +v 0.500000 1.840835 0.813581 +v 0.500000 1.796875 0.649519 +v 0.500000 1.840835 0.485456 +v 0.500000 1.960938 0.365355 +v 0.500000 2.125000 0.321394 +v 0.500000 2.289062 0.365355 +v 0.500000 2.409164 0.485456 +v 0.250000 1.292969 -0.649519 +v 0.250000 1.303959 -0.690535 +v 0.250000 1.333984 -0.720560 +v 0.250000 1.375000 -0.731550 +v 0.250000 1.416016 -0.720560 +v 0.250000 1.446041 -0.690535 +v 0.250000 1.457031 -0.649519 +v 0.250000 1.446041 -0.608504 +v 0.250000 1.416016 -0.578478 +v 0.250000 1.375000 -0.567488 +v 0.250000 1.333984 -0.578478 +v 0.250000 1.303959 -0.608503 +v 0.125000 1.292969 -0.649519 +v 0.125000 1.303959 -0.690535 +v 0.125000 1.333984 -0.720560 +v 0.125000 1.375000 -0.731550 +v 0.125000 1.416016 -0.720560 +v 0.125000 1.446041 -0.690535 +v 0.125000 1.457031 -0.649519 +v 0.125000 1.446041 -0.608504 +v 0.125000 1.416016 -0.578478 +v 0.125000 1.375000 -0.567488 +v 0.125000 1.333984 -0.578478 +v 0.125000 1.303959 -0.608503 +v 0.125000 1.210938 -0.649519 +v 0.125000 1.232918 -0.731550 +v 0.125000 1.292969 -0.791601 +v 0.125000 1.375000 -0.813581 +v 0.125000 1.457031 -0.791601 +v 0.125000 1.517082 -0.731550 +v 0.125000 1.539062 -0.649519 +v 0.125000 1.517082 -0.567488 +v 0.125000 1.457031 -0.507437 +v 0.125000 1.375000 -0.485457 +v 0.125000 1.292969 -0.507437 +v 0.125000 1.232918 -0.567488 +v 0.500000 1.046875 -0.649519 +v 0.500000 1.090835 -0.813582 +v 0.500000 1.210938 -0.933684 +v 0.500000 1.375000 -0.977644 +v 0.500000 1.539062 -0.933684 +v 0.500000 1.659165 -0.813581 +v 0.500000 1.703125 -0.649519 +v 0.500000 1.659165 -0.485456 +v 0.500000 1.539062 -0.365355 +v 0.500000 1.375000 -0.321394 +v 0.500000 1.210938 -0.365355 +v 0.500000 1.090835 -0.485456 +v 0.250000 1.416016 0.720560 +v 0.250000 1.375000 0.731550 +v 0.250000 1.333984 0.720560 +v 0.250000 1.303959 0.690535 +v 0.250000 1.292969 0.649519 +v 0.250000 1.303959 0.608503 +v 0.250000 1.333984 0.578478 +v 0.250000 1.375000 0.567488 +v 0.250000 1.416016 0.578478 +v 0.250000 1.446041 0.608503 +v 0.250000 1.457031 0.649519 +v 0.250000 1.446041 0.690535 +v 0.125000 1.416016 0.720560 +v 0.125000 1.375000 0.731550 +v 0.125000 1.333984 0.720560 +v 0.125000 1.303959 0.690535 +v 0.125000 1.292969 0.649519 +v 0.125000 1.303959 0.608503 +v 0.125000 1.333984 0.578478 +v 0.125000 1.375000 0.567488 +v 0.125000 1.416016 0.578478 +v 0.125000 1.446041 0.608503 +v 0.125000 1.457031 0.649519 +v 0.125000 1.446041 0.690535 +v 0.125000 1.457031 0.791601 +v 0.125000 1.375000 0.813581 +v 0.125000 1.292969 0.791601 +v 0.125000 1.232918 0.731550 +v 0.125000 1.210937 0.649519 +v 0.125000 1.232918 0.567488 +v 0.125000 1.292969 0.507437 +v 0.125000 1.375000 0.485456 +v 0.125000 1.457031 0.507437 +v 0.125000 1.517082 0.567488 +v 0.125000 1.539062 0.649519 +v 0.125000 1.517082 0.731550 +v 0.500000 1.539062 0.933684 +v 0.500000 1.375000 0.977644 +v 0.500000 1.210937 0.933684 +v 0.500000 1.090835 0.813581 +v 0.500000 1.046875 0.649519 +v 0.500000 1.090835 0.485456 +v 0.500000 1.210938 0.365355 +v 0.500000 1.375000 0.321394 +v 0.500000 1.539062 0.365355 +v 0.500000 1.659165 0.485456 +v 0.500000 1.703125 0.649519 +v 0.500000 1.659165 0.813581 +v 0.250000 2.083984 -0.720560 +v 0.250000 2.125000 -0.731550 +v 0.250000 2.166016 -0.720560 +v 0.250000 2.196041 -0.690535 +v 0.250000 2.207031 -0.649519 +v 0.250000 2.196041 -0.608503 +v 0.250000 2.166016 -0.578478 +v 0.250000 2.125000 -0.567488 +v 0.250000 2.083984 -0.578478 +v 0.250000 2.053959 -0.608503 +v 0.250000 2.042969 -0.649519 +v 0.250000 2.053959 -0.690535 +v 0.125000 2.083984 -0.720560 +v 0.125000 2.125000 -0.731550 +v 0.125000 2.166016 -0.720560 +v 0.125000 2.196041 -0.690535 +v 0.125000 2.207031 -0.649519 +v 0.125000 2.196041 -0.608503 +v 0.125000 2.166016 -0.578478 +v 0.125000 2.125000 -0.567488 +v 0.125000 2.083984 -0.578478 +v 0.125000 2.053959 -0.608503 +v 0.125000 2.042969 -0.649519 +v 0.125000 2.053959 -0.690535 +v 0.125000 2.042969 -0.791601 +v 0.125000 2.125000 -0.813581 +v 0.125000 2.207031 -0.791601 +v 0.125000 2.267082 -0.731550 +v 0.125000 2.289062 -0.649519 +v 0.125000 2.267082 -0.567488 +v 0.125000 2.207031 -0.507437 +v 0.125000 2.125000 -0.485456 +v 0.125000 2.042969 -0.507437 +v 0.125000 1.982918 -0.567488 +v 0.125000 1.960938 -0.649519 +v 0.125000 1.982918 -0.731550 +v 0.500000 1.960938 -0.933684 +v 0.500000 2.125000 -0.977644 +v 0.500000 2.289062 -0.933684 +v 0.500000 2.409165 -0.813581 +v 0.500000 2.453125 -0.649519 +v 0.500000 2.409165 -0.485456 +v 0.500000 2.289062 -0.365355 +v 0.500000 2.125000 -0.321394 +v 0.500000 1.960938 -0.365355 +v 0.500000 1.840835 -0.485456 +v 0.500000 1.796875 -0.649519 +v 0.500000 1.840835 -0.813581 +vt 0.000769 0.976393 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.089928 0.936842 +vt 0.093525 0.947368 +vt 0.089928 0.947368 +vt 0.017986 0.936842 +vt 0.014388 0.947368 +vt 0.014388 0.936842 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.039568 0.936842 +vt 0.035971 0.947368 +vt 0.035971 0.936842 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.025180 0.936842 +vt 0.028777 0.947368 +vt 0.025180 0.947368 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.089928 0.936842 +vt 0.093525 0.947368 +vt 0.089928 0.947368 +vt 0.017986 0.936842 +vt 0.014388 0.947368 +vt 0.014388 0.936842 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.039568 0.936842 +vt 0.035971 0.947368 +vt 0.035971 0.936842 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.025180 0.936842 +vt 0.028777 0.947368 +vt 0.025180 0.947368 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.046763 0.936842 +vt 0.050360 0.947368 +vt 0.046763 0.947368 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.046763 0.936842 +vt 0.050360 0.947368 +vt 0.046763 0.947368 +vt 0.100719 0.936842 +vt 0.104317 0.947368 +vt 0.100719 0.947368 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.100719 0.936842 +vt 0.104317 0.947368 +vt 0.100719 0.947368 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.000769 0.992028 +vt 0.000053 0.984211 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.936842 +vt 0.017986 0.947368 +vt 0.050360 0.947368 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.947368 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.936842 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.936842 +vt 0.017986 0.947368 +vt 0.050360 0.947368 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.947368 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.936842 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.936842 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.936842 +vt 0.104317 0.936842 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.947368 +vt 0.104317 0.936842 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.947368 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.032374 0.873684 +vt 0.021583 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.064748 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.107914 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.097122 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.032374 0.873684 +vt 0.118705 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.032374 0.873684 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.021583 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.032374 0.873684 +vt 0.064748 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.032374 0.873684 +vt 0.129496 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.032374 0.873684 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.107914 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.097122 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.118705 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.8660 0.5000 +vn -0.4008 0.0000 0.9162 +vn -0.4008 -0.4581 0.7934 +vn -0.4008 0.7934 0.4581 +vn -0.4008 0.9162 0.0000 +vn -0.4008 -0.7934 -0.4581 +vn -0.4008 -0.4581 -0.7934 +vn -0.4008 -0.0000 -0.9162 +vn -0.4008 0.4581 -0.7934 +vn -0.4008 -0.7934 0.4581 +vn -0.4008 0.4581 0.7934 +vn -0.4008 0.7934 -0.4581 +vn -0.4008 -0.9162 0.0000 +s off +f 591/1000/40 589/1001/40 585/1002/40 +f 608/1003/40 595/1004/40 596/1005/40 +f 614/1006/40 603/1007/40 615/1008/40 +f 605/1009/40 604/1010/40 593/1011/40 +f 611/1012/40 600/1013/40 612/1014/40 +f 608/1015/40 597/1016/40 609/1017/40 +f 615/1018/40 604/1019/40 616/1020/40 +f 605/1021/40 594/1022/40 606/1023/40 +f 612/1024/40 601/1025/40 613/1026/40 +f 609/1027/40 598/1028/40 610/1029/40 +f 606/1030/40 595/1031/40 607/1032/40 +f 614/1033/40 601/1034/40 602/1035/40 +f 611/1036/40 598/1037/40 599/1038/40 +f 637/1039/40 633/1040/40 629/1041/40 +f 656/1042/40 643/1043/40 644/1044/40 +f 662/1045/40 651/1046/40 663/1047/40 +f 653/1048/40 652/1049/40 641/1050/40 +f 659/1051/40 648/1052/40 660/1053/40 +f 656/1054/40 645/1055/40 657/1056/40 +f 663/1057/40 652/1058/40 664/1059/40 +f 653/1060/40 642/1061/40 654/1062/40 +f 660/1063/40 649/1064/40 661/1065/40 +f 657/1066/40 646/1067/40 658/1068/40 +f 654/1069/40 643/1070/40 655/1071/40 +f 662/1072/40 649/1073/40 650/1074/40 +f 659/1075/40 646/1076/40 647/1077/40 +f 685/1078/40 681/1079/40 677/1080/40 +f 704/1081/40 691/1082/40 692/1083/40 +f 710/1084/40 699/1085/40 711/1086/40 +f 712/1087/40 689/1088/40 701/1089/40 +f 708/1090/40 695/1091/40 696/1092/40 +f 705/1093/40 692/1094/40 693/1095/40 +f 711/1096/40 700/1097/40 712/1098/40 +f 701/1099/40 690/1100/40 702/1101/40 +f 708/1102/40 697/1103/40 709/1104/40 +f 706/1105/40 693/1106/40 694/1107/40 +f 702/1108/40 691/1109/40 703/1110/40 +f 710/1111/40 697/1112/40 698/1113/40 +f 706/1114/40 695/1115/40 707/1116/40 +f 733/1117/40 729/1118/40 725/1119/40 +f 752/1120/40 739/1121/40 740/1122/40 +f 758/1123/40 747/1124/40 759/1125/40 +f 760/1126/40 737/1127/40 749/1128/40 +f 756/1129/40 743/1130/40 744/1131/40 +f 753/1132/40 740/1133/40 741/1134/40 +f 760/1135/40 747/1136/40 748/1137/40 +f 749/1138/40 738/1139/40 750/1140/40 +f 756/1141/40 745/1142/40 757/1143/40 +f 754/1144/40 741/1145/40 742/1146/40 +f 750/1147/40 739/1148/40 751/1149/40 +f 758/1150/40 745/1151/40 746/1152/40 +f 754/1153/40 743/1154/40 755/1155/40 +f 781/1156/40 777/1157/40 773/1158/40 +f 800/1159/40 787/1160/40 788/1161/40 +f 806/1162/40 795/1163/40 807/1164/40 +f 808/1165/40 785/1166/40 797/1167/40 +f 804/1168/40 791/1169/40 792/1170/40 +f 800/1171/40 789/1172/40 801/1173/40 +f 808/1174/40 795/1175/40 796/1176/40 +f 797/1177/40 786/1178/40 798/1179/40 +f 804/1180/40 793/1181/40 805/1182/40 +f 802/1183/40 789/1184/40 790/1185/40 +f 798/1186/40 787/1187/40 799/1188/40 +f 806/1189/40 793/1190/40 794/1191/40 +f 802/1192/40 791/1193/40 803/1194/40 +f 829/1195/40 825/1196/40 821/1197/40 +f 848/1198/40 835/1199/40 836/1200/40 +f 854/1201/40 843/1202/40 855/1203/40 +f 856/1204/40 833/1205/40 845/1206/40 +f 852/1207/40 839/1208/40 840/1209/40 +f 848/1210/40 837/1211/40 849/1212/40 +f 855/1213/40 844/1214/40 856/1215/40 +f 845/1216/40 834/1217/40 846/1218/40 +f 852/1219/40 841/1220/40 853/1221/40 +f 850/1222/40 837/1223/40 838/1224/40 +f 846/1225/40 835/1226/40 847/1227/40 +f 854/1228/40 841/1229/40 842/1230/40 +f 850/1231/40 839/1232/40 851/1233/40 +f 581/1234/40 592/1235/40 591/1000/40 +f 591/1000/40 590/1236/40 589/1001/40 +f 589/1001/40 588/1237/40 585/1002/40 +f 588/1237/40 587/1238/40 585/1002/40 +f 587/1238/40 586/1239/40 585/1002/40 +f 585/1002/40 584/1240/40 581/1234/40 +f 584/1240/40 583/1241/40 581/1234/40 +f 583/1241/40 582/1242/40 581/1234/40 +f 581/1234/40 591/1000/40 585/1002/40 +f 608/1003/40 607/1243/40 595/1004/40 +f 614/1006/40 602/1244/40 603/1007/40 +f 605/1009/40 616/1245/40 604/1010/40 +f 611/1012/40 599/1246/40 600/1013/40 +f 608/1015/40 596/1247/40 597/1016/40 +f 615/1018/40 603/1248/40 604/1019/40 +f 605/1021/40 593/1249/40 594/1022/40 +f 612/1024/40 600/1250/40 601/1025/40 +f 609/1027/40 597/1251/40 598/1028/40 +f 606/1030/40 594/1252/40 595/1031/40 +f 614/1033/40 613/1253/40 601/1034/40 +f 611/1036/40 610/1254/40 598/1037/40 +f 629/1041/40 640/1255/40 639/1256/40 +f 639/1256/40 638/1257/40 629/1041/40 +f 638/1257/40 637/1039/40 629/1041/40 +f 637/1039/40 636/1258/40 633/1040/40 +f 636/1258/40 635/1259/40 633/1040/40 +f 635/1259/40 634/1260/40 633/1040/40 +f 633/1040/40 632/1261/40 631/1262/40 +f 631/1262/40 630/1263/40 633/1040/40 +f 630/1263/40 629/1041/40 633/1040/40 +f 656/1042/40 655/1264/40 643/1043/40 +f 662/1045/40 650/1265/40 651/1046/40 +f 653/1048/40 664/1266/40 652/1049/40 +f 659/1051/40 647/1267/40 648/1052/40 +f 656/1054/40 644/1268/40 645/1055/40 +f 663/1057/40 651/1269/40 652/1058/40 +f 653/1060/40 641/1270/40 642/1061/40 +f 660/1063/40 648/1271/40 649/1064/40 +f 657/1066/40 645/1272/40 646/1067/40 +f 654/1069/40 642/1273/40 643/1070/40 +f 662/1072/40 661/1274/40 649/1073/40 +f 659/1075/40 658/1275/40 646/1076/40 +f 677/1080/40 688/1276/40 687/1277/40 +f 687/1277/40 686/1278/40 677/1080/40 +f 686/1278/40 685/1078/40 677/1080/40 +f 685/1078/40 684/1279/40 681/1079/40 +f 684/1279/40 683/1280/40 681/1079/40 +f 683/1280/40 682/1281/40 681/1079/40 +f 681/1079/40 680/1282/40 679/1283/40 +f 679/1283/40 678/1284/40 681/1079/40 +f 678/1284/40 677/1080/40 681/1079/40 +f 704/1081/40 703/1285/40 691/1082/40 +f 710/1084/40 698/1286/40 699/1085/40 +f 712/1087/40 700/1287/40 689/1088/40 +f 708/1090/40 707/1288/40 695/1091/40 +f 705/1093/40 704/1289/40 692/1094/40 +f 711/1096/40 699/1290/40 700/1097/40 +f 701/1099/40 689/1291/40 690/1100/40 +f 708/1102/40 696/1292/40 697/1103/40 +f 706/1105/40 705/1293/40 693/1106/40 +f 702/1108/40 690/1294/40 691/1109/40 +f 710/1111/40 709/1295/40 697/1112/40 +f 706/1114/40 694/1296/40 695/1115/40 +f 725/1119/40 736/1297/40 735/1298/40 +f 735/1298/40 734/1299/40 725/1119/40 +f 734/1299/40 733/1117/40 725/1119/40 +f 733/1117/40 732/1300/40 729/1118/40 +f 732/1300/40 731/1301/40 729/1118/40 +f 731/1301/40 730/1302/40 729/1118/40 +f 729/1118/40 728/1303/40 727/1304/40 +f 727/1304/40 726/1305/40 729/1118/40 +f 726/1305/40 725/1119/40 729/1118/40 +f 752/1120/40 751/1306/40 739/1121/40 +f 758/1123/40 746/1307/40 747/1124/40 +f 760/1126/40 748/1308/40 737/1127/40 +f 756/1129/40 755/1309/40 743/1130/40 +f 753/1132/40 752/1310/40 740/1133/40 +f 760/1135/40 759/1311/40 747/1136/40 +f 749/1138/40 737/1312/40 738/1139/40 +f 756/1141/40 744/1313/40 745/1142/40 +f 754/1144/40 753/1314/40 741/1145/40 +f 750/1147/40 738/1315/40 739/1148/40 +f 758/1150/40 757/1316/40 745/1151/40 +f 754/1153/40 742/1317/40 743/1154/40 +f 773/1158/40 784/1318/40 783/1319/40 +f 783/1319/40 782/1320/40 773/1158/40 +f 782/1320/40 781/1156/40 773/1158/40 +f 781/1156/40 780/1321/40 777/1157/40 +f 780/1321/40 779/1322/40 777/1157/40 +f 779/1322/40 778/1323/40 777/1157/40 +f 777/1157/40 776/1324/40 773/1158/40 +f 776/1324/40 775/1325/40 773/1158/40 +f 775/1325/40 774/1326/40 773/1158/40 +f 800/1159/40 799/1327/40 787/1160/40 +f 806/1162/40 794/1328/40 795/1163/40 +f 808/1165/40 796/1329/40 785/1166/40 +f 804/1168/40 803/1330/40 791/1169/40 +f 800/1171/40 788/1331/40 789/1172/40 +f 808/1174/40 807/1332/40 795/1175/40 +f 797/1177/40 785/1333/40 786/1178/40 +f 804/1180/40 792/1334/40 793/1181/40 +f 802/1183/40 801/1335/40 789/1184/40 +f 798/1186/40 786/1336/40 787/1187/40 +f 806/1189/40 805/1337/40 793/1190/40 +f 802/1192/40 790/1338/40 791/1193/40 +f 821/1197/40 832/1339/40 831/1340/40 +f 831/1340/40 830/1341/40 821/1197/40 +f 830/1341/40 829/1195/40 821/1197/40 +f 829/1195/40 828/1342/40 825/1196/40 +f 828/1342/40 827/1343/40 825/1196/40 +f 827/1343/40 826/1344/40 825/1196/40 +f 825/1196/40 824/1345/40 821/1197/40 +f 824/1345/40 823/1346/40 821/1197/40 +f 823/1346/40 822/1347/40 821/1197/40 +f 848/1198/40 847/1348/40 835/1199/40 +f 854/1201/40 842/1349/40 843/1202/40 +f 856/1204/40 844/1350/40 833/1205/40 +f 852/1207/40 851/1351/40 839/1208/40 +f 848/1210/40 836/1352/40 837/1211/40 +f 855/1213/40 843/1353/40 844/1214/40 +f 845/1216/40 833/1354/40 834/1217/40 +f 852/1219/40 840/1355/40 841/1220/40 +f 850/1222/40 849/1356/40 837/1223/40 +f 846/1225/40 834/1357/40 835/1226/40 +f 854/1228/40 853/1358/40 841/1229/40 +f 850/1231/40 838/1359/40 839/1232/40 +s 1 +f 599/1246/41 588/1360/42 600/1013/42 +f 596/1247/43 585/1361/44 597/1016/44 +f 603/1248/45 592/1362/46 604/1019/46 +f 593/1249/47 582/1363/48 594/1022/48 +f 600/1250/42 589/1364/49 601/1025/49 +f 597/1251/44 586/1365/50 598/1028/50 +f 594/1252/48 583/1366/51 595/1031/51 +f 601/1034/49 590/1367/52 602/1035/52 +f 598/1037/50 587/1368/41 599/1038/41 +f 595/1004/51 584/1369/43 596/1005/43 +f 602/1244/52 591/1370/45 603/1007/45 +f 604/1010/46 581/1371/47 593/1011/47 +f 622/1372/53 611/1036/54 623/1373/54 +f 620/1374/55 607/1243/56 608/1003/55 +f 626/1375/57 615/1008/58 627/1376/58 +f 628/1377/59 605/1009/60 617/1378/60 +f 623/1373/54 612/1014/61 624/1379/61 +f 620/1374/55 609/1017/62 621/1380/62 +f 627/1376/58 616/1020/59 628/1377/59 +f 617/1378/60 606/1023/63 618/1381/63 +f 624/1379/61 613/1026/64 625/1382/64 +f 621/1380/62 610/1029/53 622/1372/53 +f 618/1381/63 607/1032/56 619/1383/56 +f 626/1375/57 613/1253/64 614/1033/57 +f 647/1267/47 636/1384/48 648/1052/48 +f 644/1268/52 633/1385/45 645/1055/45 +f 651/1269/44 640/1386/50 652/1058/50 +f 641/1270/41 630/1387/42 642/1061/42 +f 648/1271/48 637/1388/51 649/1064/51 +f 645/1272/45 634/1389/46 646/1067/46 +f 642/1273/42 631/1390/49 643/1070/49 +f 649/1073/51 638/1391/43 650/1074/43 +f 646/1076/46 635/1392/47 647/1077/47 +f 643/1043/49 632/1393/52 644/1044/52 +f 650/1265/43 639/1394/44 651/1046/44 +f 652/1049/50 629/1395/41 641/1050/41 +f 671/1396/60 658/1275/59 659/1075/60 +f 667/1397/64 656/1042/57 668/1398/57 +f 675/1399/62 662/1045/55 663/1047/62 +f 665/1400/54 664/1266/53 653/1048/54 +f 671/1396/60 660/1053/63 672/1401/63 +f 668/1398/57 657/1056/58 669/1402/58 +f 675/1399/62 664/1059/53 676/1403/53 +f 666/1404/61 653/1060/54 654/1062/61 +f 672/1401/63 661/1065/56 673/1405/56 +f 669/1402/58 658/1068/59 670/1406/59 +f 666/1404/61 655/1071/64 667/1397/64 +f 674/1407/55 661/1274/56 662/1072/55 +f 695/1091/49 684/1408/52 696/1092/52 +f 692/1094/50 681/1409/41 693/1095/41 +f 699/1290/47 688/1410/48 700/1097/48 +f 689/1291/51 678/1411/43 690/1100/43 +f 696/1292/52 685/1412/45 697/1103/45 +f 693/1106/41 682/1413/42 694/1107/42 +f 690/1294/43 679/1414/44 691/1109/44 +f 697/1112/45 686/1415/46 698/1113/46 +f 694/1296/42 683/1416/49 695/1115/49 +f 691/1082/44 680/1417/50 692/1083/50 +f 698/1286/46 687/1418/47 699/1085/47 +f 700/1287/48 677/1419/51 689/1088/51 +f 718/1420/61 707/1116/64 719/1421/64 +f 715/1422/62 704/1081/53 716/1423/53 +f 722/1424/59 711/1086/60 723/1425/60 +f 724/1426/63 701/1089/56 713/1427/56 +f 719/1421/64 708/1090/57 720/1428/57 +f 716/1423/53 705/1093/54 717/1429/54 +f 724/1426/63 711/1096/60 712/1098/63 +f 713/1427/56 702/1101/55 714/1430/55 +f 720/1428/57 709/1104/58 721/1431/58 +f 718/1420/61 705/1293/54 706/1105/61 +f 714/1430/55 703/1110/62 715/1422/62 +f 722/1424/59 709/1295/58 710/1111/59 +f 743/1130/51 732/1432/43 744/1131/43 +f 740/1133/46 729/1433/47 741/1134/47 +f 747/1136/41 736/1434/42 748/1137/42 +f 737/1312/49 726/1435/52 738/1139/52 +f 744/1313/43 733/1436/44 745/1142/44 +f 741/1145/47 730/1437/48 742/1146/48 +f 738/1315/52 727/1438/45 739/1148/45 +f 745/1151/44 734/1439/50 746/1152/50 +f 742/1317/48 731/1440/51 743/1154/51 +f 739/1121/45 728/1441/46 740/1122/46 +f 746/1307/50 735/1442/41 747/1124/41 +f 748/1308/42 725/1443/49 737/1127/49 +f 767/1444/56 754/1153/63 755/1155/56 +f 764/1445/59 751/1306/58 752/1120/59 +f 770/1446/53 759/1125/54 771/1447/54 +f 772/1448/61 749/1128/64 761/1449/64 +f 767/1444/56 756/1129/55 768/1450/55 +f 764/1445/59 753/1132/60 765/1451/60 +f 771/1447/54 760/1135/61 772/1448/61 +f 761/1449/64 750/1140/57 762/1452/57 +f 768/1450/55 757/1143/62 769/1453/62 +f 765/1451/60 754/1144/63 766/1454/63 +f 762/1452/57 751/1149/58 763/1455/58 +f 770/1446/53 757/1316/62 758/1150/53 +f 791/1169/45 780/1456/46 792/1170/46 +f 788/1331/42 777/1457/49 789/1172/49 +f 795/1175/51 784/1458/43 796/1176/43 +f 785/1333/44 774/1459/50 786/1178/50 +f 792/1334/46 781/1460/47 793/1181/47 +f 789/1184/49 778/1461/52 790/1185/52 +f 786/1336/50 775/1462/41 787/1187/41 +f 793/1190/47 782/1463/48 794/1191/48 +f 790/1338/52 779/1464/45 791/1193/45 +f 787/1160/41 776/1465/42 788/1161/42 +f 794/1328/48 783/1466/51 795/1163/51 +f 796/1329/43 773/1467/44 785/1166/44 +f 815/1468/58 802/1192/57 803/1194/58 +f 811/1469/54 800/1159/61 812/1470/61 +f 818/1471/63 807/1164/56 819/1472/56 +f 820/1473/55 797/1167/62 809/1474/62 +f 815/1468/58 804/1168/59 816/1475/59 +f 813/1476/64 800/1171/61 801/1173/64 +f 819/1472/56 808/1174/55 820/1473/55 +f 809/1474/62 798/1179/53 810/1477/53 +f 817/1478/60 804/1180/59 805/1182/60 +f 814/1479/57 801/1335/64 802/1183/57 +f 810/1477/53 799/1188/54 811/1469/54 +f 817/1480/60 806/1189/63 818/1471/63 +f 839/1208/44 828/1481/50 840/1209/50 +f 836/1352/48 825/1482/51 837/1211/51 +f 843/1353/49 832/1483/52 844/1214/52 +f 833/1354/45 822/1484/46 834/1217/46 +f 840/1355/50 829/1485/41 841/1220/41 +f 837/1223/51 826/1486/43 838/1224/43 +f 834/1357/46 823/1487/47 835/1226/47 +f 841/1229/41 830/1488/42 842/1230/42 +f 838/1359/43 827/1489/44 839/1232/44 +f 835/1199/47 824/1490/48 836/1200/48 +f 842/1349/42 831/1491/49 843/1202/49 +f 844/1350/52 821/1492/45 833/1205/45 +f 862/1493/55 851/1233/62 863/1494/62 +f 859/1495/60 848/1198/63 860/1496/63 +f 867/1497/64 854/1201/61 855/1203/64 +f 857/1498/58 856/1204/57 845/1206/58 +f 863/1494/62 852/1207/53 864/1499/53 +f 860/1496/63 849/1212/56 861/1500/56 +f 867/1497/64 856/1215/57 868/1501/57 +f 857/1498/58 846/1218/59 858/1502/59 +f 864/1499/53 853/1221/54 865/1503/54 +f 862/1493/55 849/1356/56 850/1222/55 +f 858/1502/59 847/1227/60 859/1495/60 +f 866/1504/61 853/1358/54 854/1228/61 +f 599/1246/41 587/1505/41 588/1360/42 +f 596/1247/43 584/1506/43 585/1361/44 +f 603/1248/45 591/1507/45 592/1362/46 +f 593/1249/47 581/1508/47 582/1363/48 +f 600/1250/42 588/1509/42 589/1364/49 +f 597/1251/44 585/1510/44 586/1365/50 +f 594/1252/48 582/1511/48 583/1366/51 +f 601/1034/49 589/1512/49 590/1367/52 +f 598/1037/50 586/1513/50 587/1368/41 +f 595/1004/51 583/1514/51 584/1369/43 +f 602/1244/52 590/1515/52 591/1370/45 +f 604/1010/46 592/1516/46 581/1371/47 +f 622/1372/53 610/1254/53 611/1036/54 +f 620/1374/55 619/1383/56 607/1243/56 +f 626/1375/57 614/1006/57 615/1008/58 +f 628/1377/59 616/1245/59 605/1009/60 +f 623/1373/54 611/1012/54 612/1014/61 +f 620/1374/55 608/1015/55 609/1017/62 +f 627/1376/58 615/1018/58 616/1020/59 +f 617/1378/60 605/1021/60 606/1023/63 +f 624/1379/61 612/1024/61 613/1026/64 +f 621/1380/62 609/1027/62 610/1029/53 +f 618/1381/63 606/1030/63 607/1032/56 +f 626/1375/57 625/1517/64 613/1253/64 +f 647/1267/47 635/1518/47 636/1384/48 +f 644/1268/52 632/1519/52 633/1385/45 +f 651/1269/44 639/1520/44 640/1386/50 +f 641/1270/41 629/1521/41 630/1387/42 +f 648/1271/48 636/1522/48 637/1388/51 +f 645/1272/45 633/1523/45 634/1389/46 +f 642/1273/42 630/1524/42 631/1390/49 +f 649/1073/51 637/1525/51 638/1391/43 +f 646/1076/46 634/1526/46 635/1392/47 +f 643/1043/49 631/1527/49 632/1393/52 +f 650/1265/43 638/1528/43 639/1394/44 +f 652/1049/50 640/1529/50 629/1395/41 +f 671/1396/60 670/1406/59 658/1275/59 +f 667/1397/64 655/1264/64 656/1042/57 +f 675/1399/62 674/1407/55 662/1045/55 +f 665/1400/54 676/1403/53 664/1266/53 +f 671/1396/60 659/1051/60 660/1053/63 +f 668/1398/57 656/1054/57 657/1056/58 +f 675/1399/62 663/1057/62 664/1059/53 +f 666/1404/61 665/1400/54 653/1060/54 +f 672/1401/63 660/1063/63 661/1065/56 +f 669/1402/58 657/1066/58 658/1068/59 +f 666/1404/61 654/1069/61 655/1071/64 +f 674/1407/55 673/1530/56 661/1274/56 +f 695/1091/49 683/1531/49 684/1408/52 +f 692/1094/50 680/1532/50 681/1409/41 +f 699/1290/47 687/1533/47 688/1410/48 +f 689/1291/51 677/1534/51 678/1411/43 +f 696/1292/52 684/1535/52 685/1412/45 +f 693/1106/41 681/1536/41 682/1413/42 +f 690/1294/43 678/1537/43 679/1414/44 +f 697/1112/45 685/1538/45 686/1415/46 +f 694/1296/42 682/1539/42 683/1416/49 +f 691/1082/44 679/1540/44 680/1417/50 +f 698/1286/46 686/1541/46 687/1418/47 +f 700/1287/48 688/1542/48 677/1419/51 +f 718/1420/61 706/1114/61 707/1116/64 +f 715/1422/62 703/1285/62 704/1081/53 +f 722/1424/59 710/1084/59 711/1086/60 +f 724/1426/63 712/1087/63 701/1089/56 +f 719/1421/64 707/1288/64 708/1090/57 +f 716/1423/53 704/1289/53 705/1093/54 +f 724/1426/63 723/1425/60 711/1096/60 +f 713/1427/56 701/1099/56 702/1101/55 +f 720/1428/57 708/1102/57 709/1104/58 +f 718/1420/61 717/1429/54 705/1293/54 +f 714/1430/55 702/1108/55 703/1110/62 +f 722/1424/59 721/1543/58 709/1295/58 +f 743/1130/51 731/1544/51 732/1432/43 +f 740/1133/46 728/1545/46 729/1433/47 +f 747/1136/41 735/1546/41 736/1434/42 +f 737/1312/49 725/1547/49 726/1435/52 +f 744/1313/43 732/1548/43 733/1436/44 +f 741/1145/47 729/1549/47 730/1437/48 +f 738/1315/52 726/1550/52 727/1438/45 +f 745/1151/44 733/1551/44 734/1439/50 +f 742/1317/48 730/1552/48 731/1440/51 +f 739/1121/45 727/1553/45 728/1441/46 +f 746/1307/50 734/1554/50 735/1442/41 +f 748/1308/42 736/1555/42 725/1443/49 +f 767/1444/56 766/1454/63 754/1153/63 +f 764/1445/59 763/1455/58 751/1306/58 +f 770/1446/53 758/1123/53 759/1125/54 +f 772/1448/61 760/1126/61 749/1128/64 +f 767/1444/56 755/1309/56 756/1129/55 +f 764/1445/59 752/1310/59 753/1132/60 +f 771/1447/54 759/1311/54 760/1135/61 +f 761/1449/64 749/1138/64 750/1140/57 +f 768/1450/55 756/1141/55 757/1143/62 +f 765/1451/60 753/1314/60 754/1144/63 +f 762/1452/57 750/1147/57 751/1149/58 +f 770/1446/53 769/1556/62 757/1316/62 +f 791/1169/45 779/1557/45 780/1456/46 +f 788/1331/42 776/1558/42 777/1457/49 +f 795/1175/51 783/1559/51 784/1458/43 +f 785/1333/44 773/1560/44 774/1459/50 +f 792/1334/46 780/1561/46 781/1460/47 +f 789/1184/49 777/1562/49 778/1461/52 +f 786/1336/50 774/1563/50 775/1462/41 +f 793/1190/47 781/1564/47 782/1463/48 +f 790/1338/52 778/1565/52 779/1464/45 +f 787/1160/41 775/1566/41 776/1465/42 +f 794/1328/48 782/1567/48 783/1466/51 +f 796/1329/43 784/1568/43 773/1467/44 +f 815/1468/58 814/1479/57 802/1192/57 +f 811/1469/54 799/1327/54 800/1159/61 +f 818/1471/63 806/1162/63 807/1164/56 +f 820/1473/55 808/1165/55 797/1167/62 +f 815/1468/58 803/1330/58 804/1168/59 +f 813/1476/64 812/1470/61 800/1171/61 +f 819/1472/56 807/1332/56 808/1174/55 +f 809/1474/62 797/1177/62 798/1179/53 +f 817/1478/60 816/1475/59 804/1180/59 +f 814/1479/57 813/1476/64 801/1335/64 +f 810/1477/53 798/1186/53 799/1188/54 +f 817/1480/60 805/1337/60 806/1189/63 +f 839/1208/44 827/1569/44 828/1481/50 +f 836/1352/48 824/1570/48 825/1482/51 +f 843/1353/49 831/1571/49 832/1483/52 +f 833/1354/45 821/1572/45 822/1484/46 +f 840/1355/50 828/1573/50 829/1485/41 +f 837/1223/51 825/1574/51 826/1486/43 +f 834/1357/46 822/1575/46 823/1487/47 +f 841/1229/41 829/1576/41 830/1488/42 +f 838/1359/43 826/1577/43 827/1489/44 +f 835/1199/47 823/1578/47 824/1490/48 +f 842/1349/42 830/1579/42 831/1491/49 +f 844/1350/52 832/1580/52 821/1492/45 +f 862/1493/55 850/1231/55 851/1233/62 +f 859/1495/60 847/1348/60 848/1198/63 +f 867/1497/64 866/1504/61 854/1201/61 +f 857/1498/58 868/1501/57 856/1204/57 +f 863/1494/62 851/1351/62 852/1207/53 +f 860/1496/63 848/1210/63 849/1212/56 +f 867/1497/64 855/1213/64 856/1215/57 +f 857/1498/58 845/1216/58 846/1218/59 +f 864/1499/53 852/1219/53 853/1221/54 +f 862/1493/55 861/1500/56 849/1356/56 +f 858/1502/59 846/1225/59 847/1227/60 +f 866/1504/61 865/1581/54 853/1358/54 +o Hammer +v 4.000000 2.687500 0.250000 +v 4.000000 2.687500 -0.250000 +v 3.250000 2.687500 0.250000 +v 3.250000 2.687500 -0.250000 +v 4.125000 2.187500 0.250000 +v 4.125000 2.187500 -0.250000 +v 4.562500 2.437500 0.250000 +v 4.562500 2.437500 -0.250000 +v 4.812500 2.437500 0.375000 +v 4.812500 2.437500 -0.375000 +v 5.062500 2.437500 0.375000 +v 5.062500 2.437500 -0.375000 +v 5.312500 2.437500 0.250000 +v 5.312500 2.437500 -0.250000 +v 4.562500 2.312500 0.250000 +v 4.562500 2.312500 -0.250000 +v 4.812500 2.312500 0.375000 +v 4.812500 2.312500 -0.375000 +v 5.062500 2.312500 0.375000 +v 5.062500 2.312500 -0.375000 +v 5.312500 2.312500 0.250000 +v 5.312500 2.312500 -0.250000 +v 4.312500 2.187500 0.250000 +v 4.312500 2.187500 -0.250000 +v 4.812500 1.812500 0.250000 +v 4.812500 1.812500 -0.250000 +v 4.812500 1.562500 0.250000 +v 4.812500 1.562500 -0.250000 +v 3.250000 2.437500 0.250000 +v 3.250000 2.437500 -0.250000 +v 3.750000 2.437500 0.250000 +v 3.750000 2.437500 -0.250000 +v 4.000000 1.687500 0.250000 +v 4.000000 1.687500 -0.250000 +vt 0.370504 0.905263 +vt 0.392086 0.863158 +vt 0.392086 0.905263 +vt 0.406475 0.863158 +vt 0.287770 0.484211 +vt 0.273381 0.526316 +vt 0.273381 0.484211 +vt 0.294964 0.473684 +vt 0.287770 0.526316 +vt 0.302158 0.473684 +vt 0.294964 0.536842 +vt 0.309353 0.484211 +vt 0.302158 0.536842 +vt 0.287770 0.463158 +vt 0.287770 0.473684 +vt 0.309353 0.547368 +vt 0.309353 0.536842 +vt 0.312950 0.484211 +vt 0.309353 0.526316 +vt 0.294964 0.463158 +vt 0.294964 0.547368 +vt 0.287770 0.536842 +vt 0.302158 0.463158 +vt 0.309353 0.473684 +vt 0.302158 0.547368 +vt 0.320144 0.536842 +vt 0.312950 0.526316 +vt 0.327338 0.473684 +vt 0.320144 0.473684 +vt 0.334532 0.484211 +vt 0.327338 0.536842 +vt 0.341727 0.526316 +vt 0.334532 0.526316 +vt 0.273381 0.547368 +vt 0.291367 0.589474 +vt 0.273381 0.589474 +vt 0.291367 0.547368 +vt 0.298561 0.589474 +vt 0.363309 0.863158 +vt 0.370504 0.863158 +vt 0.363309 0.905263 +vt 0.348921 0.863158 +vt 0.348921 0.905263 +vt 0.327338 0.863158 +vt 0.384892 0.926316 +vt 0.384892 0.842105 +vt 0.395683 0.947368 +vt 0.395683 0.821053 +vt 0.276978 0.463158 +vt 0.276978 0.473684 +vt 0.276978 0.547368 +vt 0.276978 0.536842 +vt 0.392086 0.989474 +vt 0.402878 0.947368 +vt 0.392086 0.778947 +vt 0.420863 0.768421 +vt 0.420863 0.789474 +vt 0.406475 0.905263 +vt 0.287770 0.547368 +vt 0.309353 0.463158 +vt 0.341727 0.484211 +vt 0.298561 0.547368 +vt 0.327338 0.905263 +vt 0.370504 0.926316 +vt 0.370504 0.842105 +vt 0.420863 0.978947 +vt 0.420863 1.000000 +vt 0.402878 0.821053 +vn 0.0000 1.0000 0.0000 +vn 0.9701 0.2425 0.0000 +vn -0.4961 0.8682 0.0000 +vn -0.4472 0.0000 0.8944 +vn 0.4472 0.0000 -0.8944 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.4472 0.0000 -0.8944 +vn 0.4472 0.0000 0.8944 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.4472 -0.8944 0.0000 +vn 0.6000 0.8000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9487 -0.3162 0.0000 +s off +f 872/1582/65 869/1583/65 870/1584/65 +f 873/1585/66 870/1584/66 869/1583/66 +f 875/1586/67 874/1587/67 873/1588/67 +f 877/1589/65 876/1590/65 875/1586/65 +f 879/1591/65 878/1592/65 877/1589/65 +f 881/1593/65 880/1594/65 879/1591/65 +f 883/1595/68 877/1589/68 875/1596/68 +f 890/1597/69 880/1594/69 882/1598/69 +f 889/1599/70 882/1600/70 881/1593/70 +f 885/1601/71 879/1591/71 877/1589/71 +f 886/1602/72 876/1603/72 878/1592/72 +f 887/1604/73 881/1605/73 879/1591/73 +f 888/1606/74 878/1592/74 880/1594/74 +f 889/1599/75 888/1607/75 890/1608/75 +f 885/1609/75 888/1607/75 887/1610/75 +f 883/1611/75 886/1612/75 885/1609/75 +f 883/1611/76 892/1613/76 884/1614/76 +f 891/1615/77 894/1616/77 892/1617/77 +f 893/1618/70 896/1619/70 894/1616/70 +f 872/1582/78 897/1620/78 871/1621/78 +f 898/1622/75 899/1623/75 897/1620/75 +f 900/1624/79 901/1625/79 899/1623/79 +f 900/1626/74 872/1582/74 870/1584/74 +f 871/1621/71 899/1627/71 869/1583/71 +f 874/1628/74 900/1626/74 870/1584/74 +f 899/1627/71 873/1629/71 869/1583/71 +f 891/1630/71 875/1596/71 873/1631/71 +f 876/1603/74 892/1632/74 874/1633/74 +f 902/1634/74 874/1628/74 892/1635/74 +f 901/1636/71 895/1637/71 893/1638/71 +f 872/1582/65 871/1621/65 869/1583/65 +f 873/1585/66 874/1639/66 870/1584/66 +f 875/1586/67 876/1590/67 874/1587/67 +f 877/1589/65 878/1592/65 876/1590/65 +f 879/1591/65 880/1594/65 878/1592/65 +f 881/1593/65 882/1600/65 880/1594/65 +f 883/1595/68 885/1601/68 877/1589/68 +f 890/1597/69 888/1606/69 880/1594/69 +f 889/1599/70 890/1608/70 882/1600/70 +f 885/1601/71 887/1604/71 879/1591/71 +f 886/1602/72 884/1640/72 876/1603/72 +f 887/1604/73 889/1641/73 881/1605/73 +f 888/1606/74 886/1602/74 878/1592/74 +f 889/1599/75 887/1610/75 888/1607/75 +f 885/1609/75 886/1612/75 888/1607/75 +f 883/1611/75 884/1614/75 886/1612/75 +f 883/1611/76 891/1642/76 892/1613/76 +f 891/1615/77 893/1618/77 894/1616/77 +f 893/1618/70 895/1643/70 896/1619/70 +f 872/1582/78 898/1622/78 897/1620/78 +f 898/1622/75 900/1624/75 899/1623/75 +f 900/1624/79 902/1644/79 901/1625/79 +f 900/1626/74 898/1645/74 872/1582/74 +f 871/1621/71 897/1646/71 899/1627/71 +f 874/1628/74 902/1634/74 900/1626/74 +f 899/1627/71 901/1636/71 873/1629/71 +f 891/1630/71 883/1595/71 875/1596/71 +f 876/1603/74 884/1640/74 892/1632/74 +f 892/1635/74 894/1647/74 902/1634/74 +f 894/1647/74 896/1648/74 902/1634/74 +f 893/1638/71 891/1649/71 901/1636/71 +f 891/1649/71 873/1629/71 901/1636/71 +o Cylinder +v 2.437500 1.750000 -1.187500 +v 2.437500 2.343750 -1.028405 +v 2.437500 2.778405 -0.593750 +v 2.437500 2.937500 0.000000 +v 2.437500 2.778405 0.593750 +v 2.437500 2.343750 1.028405 +v 2.437500 1.750000 1.187500 +v 2.437500 1.156250 1.028405 +v 2.437500 0.721595 0.593750 +v 2.437500 0.562500 0.000001 +v 2.437500 0.721594 -0.593749 +v 2.437500 1.156249 -1.028404 +v 0.062500 1.750000 -1.187500 +v 0.062500 2.343750 -1.028405 +v 0.062500 2.778405 -0.593750 +v 0.062500 2.937500 0.000000 +v 0.062500 2.778405 0.593750 +v 0.062500 2.343750 1.028405 +v 0.062500 1.750000 1.187500 +v 0.062500 1.156250 1.028405 +v 0.062500 0.721595 0.593750 +v 0.062500 0.562500 0.000001 +v 0.062500 0.721594 -0.593749 +v 0.062500 1.156249 -1.028404 +v 0.062500 2.500000 -0.328125 +v 0.062500 2.335938 -0.284164 +v 0.062500 2.215835 -0.164062 +v 0.062500 2.171875 0.000000 +v 0.062500 2.215835 0.164062 +v 0.062500 2.335938 0.284164 +v 0.062500 2.500000 0.328125 +v 0.062500 2.664062 0.284164 +v 0.062500 2.784164 0.164062 +v 0.062500 2.828125 0.000000 +v 0.062500 2.784165 -0.164062 +v 0.062500 2.664063 -0.284164 +v 2.437500 2.500000 -0.328125 +v 2.437500 2.335938 -0.284164 +v 2.437500 2.215835 -0.164062 +v 2.437500 2.171875 0.000000 +v 2.437500 2.215835 0.164062 +v 2.437500 2.335938 0.284164 +v 2.437500 2.500000 0.328125 +v 2.437500 2.664062 0.284164 +v 2.437500 2.784164 0.164062 +v 2.437500 2.828125 0.000000 +v 2.437500 2.784165 -0.164062 +v 2.437500 2.664063 -0.284164 +v 0.062500 1.000000 0.328126 +v 0.062500 1.164062 0.284165 +v 0.062500 1.284165 0.164063 +v 0.062500 1.328125 0.000001 +v 0.062500 1.284165 -0.164062 +v 0.062500 1.164063 -0.284164 +v 0.062500 1.000000 -0.328124 +v 0.062500 0.835938 -0.284164 +v 0.062500 0.715836 -0.164062 +v 0.062500 0.671875 0.000000 +v 0.062500 0.715835 0.164063 +v 0.062500 0.835937 0.284165 +v 2.437500 1.000000 0.328126 +v 2.437500 1.164062 0.284165 +v 2.437500 1.284165 0.164063 +v 2.437500 1.328125 0.000001 +v 2.437500 1.284165 -0.164062 +v 2.437500 1.164063 -0.284164 +v 2.437500 1.000000 -0.328124 +v 2.437500 0.835938 -0.284164 +v 2.437500 0.715836 -0.164062 +v 2.437500 0.671875 0.000000 +v 2.437500 0.715835 0.164063 +v 2.437500 0.835937 0.284165 +v 0.062500 2.409165 0.485456 +v 0.062500 2.289063 0.365355 +v 0.062500 2.125000 0.321394 +v 0.062500 1.960938 0.365355 +v 0.062500 1.840836 0.485456 +v 0.062500 1.796875 0.649519 +v 0.062500 1.840836 0.813581 +v 0.062500 1.960938 0.933684 +v 0.062500 2.125000 0.977644 +v 0.062500 2.289063 0.933684 +v 0.062500 2.409165 0.813582 +v 0.062500 2.453125 0.649519 +v 2.437500 2.409165 0.485456 +v 2.437500 2.289063 0.365355 +v 2.437500 2.125000 0.321394 +v 2.437500 1.960938 0.365355 +v 2.437500 1.840836 0.485456 +v 2.437500 1.796875 0.649519 +v 2.437500 1.840836 0.813581 +v 2.437500 1.960938 0.933684 +v 2.437500 2.125000 0.977644 +v 2.437500 2.289063 0.933684 +v 2.437500 2.409165 0.813582 +v 2.437500 2.453125 0.649519 +v 0.062500 1.090835 -0.485456 +v 0.062500 1.210937 -0.365354 +v 0.062500 1.375000 -0.321393 +v 0.062500 1.539062 -0.365354 +v 0.062500 1.659164 -0.485456 +v 0.062500 1.703125 -0.649518 +v 0.062500 1.659164 -0.813581 +v 0.062500 1.539062 -0.933683 +v 0.062500 1.375000 -0.977643 +v 0.062500 1.210938 -0.933683 +v 0.062500 1.090835 -0.813581 +v 0.062500 1.046875 -0.649519 +v 2.437500 1.090835 -0.485456 +v 2.437500 1.210937 -0.365354 +v 2.437500 1.375000 -0.321393 +v 2.437500 1.539062 -0.365354 +v 2.437500 1.659164 -0.485456 +v 2.437500 1.703125 -0.649518 +v 2.437500 1.659164 -0.813581 +v 2.437500 1.539062 -0.933683 +v 2.437500 1.375000 -0.977643 +v 2.437500 1.210938 -0.933683 +v 2.437500 1.090835 -0.813581 +v 2.437500 1.046875 -0.649519 +v 0.062500 1.659165 0.813582 +v 0.062500 1.703125 0.649520 +v 0.062500 1.659165 0.485457 +v 0.062500 1.539063 0.365355 +v 0.062500 1.375000 0.321394 +v 0.062500 1.210938 0.365355 +v 0.062500 1.090836 0.485457 +v 0.062500 1.046875 0.649519 +v 0.062500 1.090836 0.813582 +v 0.062500 1.210938 0.933684 +v 0.062500 1.375000 0.977644 +v 0.062500 1.539062 0.933684 +v 2.437500 1.659165 0.813582 +v 2.437500 1.703125 0.649520 +v 2.437500 1.659165 0.485457 +v 2.437500 1.539063 0.365355 +v 2.437500 1.375000 0.321394 +v 2.437500 1.210938 0.365355 +v 2.437500 1.090836 0.485457 +v 2.437500 1.046875 0.649519 +v 2.437500 1.090836 0.813582 +v 2.437500 1.210938 0.933684 +v 2.437500 1.375000 0.977644 +v 2.437500 1.539062 0.933684 +v 0.062500 1.840835 -0.813581 +v 0.062500 1.796875 -0.649519 +v 0.062500 1.840835 -0.485456 +v 0.062500 1.960937 -0.365355 +v 0.062500 2.125000 -0.321394 +v 0.062500 2.289062 -0.365354 +v 0.062500 2.409164 -0.485456 +v 0.062500 2.453125 -0.649518 +v 0.062500 2.409164 -0.813581 +v 0.062500 2.289062 -0.933683 +v 0.062500 2.125000 -0.977644 +v 0.062500 1.960938 -0.933683 +v 2.437500 1.840835 -0.813581 +v 2.437500 1.796875 -0.649519 +v 2.437500 1.840835 -0.485456 +v 2.437500 1.960937 -0.365355 +v 2.437500 2.125000 -0.321394 +v 2.437500 2.289062 -0.365354 +v 2.437500 2.409164 -0.485456 +v 2.437500 2.453125 -0.649518 +v 2.437500 2.409164 -0.813581 +v 2.437500 2.289062 -0.933683 +v 2.437500 2.125000 -0.977644 +v 2.437500 1.960938 -0.933683 +vt 0.365512 0.481693 +vt 0.371235 0.475600 +vt 0.367820 0.485593 +vt 0.386287 0.481693 +vt 0.385229 0.499243 +vt 0.383979 0.485593 +vt 0.394366 0.432942 +vt 0.399031 0.444400 +vt 0.394366 0.440742 +vt 0.386287 0.391992 +vt 0.380564 0.398084 +vt 0.383979 0.388092 +vt 0.365512 0.391992 +vt 0.366570 0.374441 +vt 0.367820 0.388092 +vt 0.357432 0.440742 +vt 0.352768 0.429284 +vt 0.357432 0.432942 +vt 0.375899 0.401742 +vt 0.386287 0.419292 +vt 0.375899 0.471942 +vt 0.349353 0.419292 +vt 0.342136 0.436842 +vt 0.362097 0.381999 +vt 0.357432 0.378341 +vt 0.359018 0.351278 +vt 0.385229 0.374441 +vt 0.383979 0.360791 +vt 0.392781 0.351278 +vt 0.399031 0.429285 +vt 0.402446 0.419292 +vt 0.409662 0.436842 +vt 0.389702 0.491685 +vt 0.394366 0.495343 +vt 0.392781 0.522406 +vt 0.366570 0.499243 +vt 0.367820 0.512893 +vt 0.359018 0.522406 +vt 0.433857 0.481693 +vt 0.435107 0.468042 +vt 0.436165 0.485593 +vt 0.454632 0.481693 +vt 0.458047 0.491685 +vt 0.452324 0.485593 +vt 0.462712 0.440742 +vt 0.458047 0.444400 +vt 0.462712 0.432942 +vt 0.454632 0.391992 +vt 0.453383 0.405642 +vt 0.452324 0.388092 +vt 0.433857 0.391992 +vt 0.430442 0.381999 +vt 0.436165 0.388092 +vt 0.425778 0.432942 +vt 0.430442 0.429285 +vt 0.425778 0.440742 +vt 0.454632 0.419292 +vt 0.454632 0.454392 +vt 0.433857 0.419292 +vt 0.417698 0.419292 +vt 0.421113 0.429285 +vt 0.410482 0.436842 +vt 0.436165 0.360791 +vt 0.434915 0.374441 +vt 0.427363 0.351278 +vt 0.462712 0.378341 +vt 0.458047 0.381999 +vt 0.461126 0.351278 +vt 0.467376 0.429284 +vt 0.470791 0.419292 +vt 0.478008 0.436842 +vt 0.452324 0.512893 +vt 0.453574 0.499243 +vt 0.461126 0.522406 +vt 0.425778 0.495343 +vt 0.430442 0.491685 +vt 0.427363 0.522406 +vt 0.362097 0.491685 +vt 0.366761 0.468042 +vt 0.380564 0.475600 +vt 0.385037 0.468042 +vt 0.389702 0.444400 +vt 0.389702 0.429285 +vt 0.389702 0.381999 +vt 0.385037 0.405642 +vt 0.371235 0.398084 +vt 0.366761 0.405642 +vt 0.362097 0.429284 +vt 0.362097 0.444400 +vt 0.352768 0.444400 +vt 0.365512 0.454392 +vt 0.386287 0.454392 +vt 0.365512 0.419292 +vt 0.349353 0.481693 +vt 0.346660 0.486243 +vt 0.348103 0.468042 +vt 0.346660 0.387441 +vt 0.348103 0.405642 +vt 0.349353 0.391992 +vt 0.349353 0.454392 +vt 0.375899 0.338041 +vt 0.371235 0.350799 +vt 0.375899 0.347141 +vt 0.352768 0.381999 +vt 0.367820 0.360791 +vt 0.405139 0.387442 +vt 0.399031 0.381999 +vt 0.402446 0.391992 +vt 0.380564 0.350799 +vt 0.394366 0.378341 +vt 0.405139 0.486243 +vt 0.403696 0.468042 +vt 0.402446 0.481693 +vt 0.403696 0.405642 +vt 0.402446 0.454392 +vt 0.375899 0.535643 +vt 0.380564 0.522886 +vt 0.375899 0.526543 +vt 0.399031 0.491685 +vt 0.383979 0.512893 +vt 0.352768 0.491685 +vt 0.371235 0.522886 +vt 0.357432 0.495343 +vt 0.439580 0.475600 +vt 0.434915 0.499243 +vt 0.448909 0.475600 +vt 0.453383 0.468042 +vt 0.458047 0.429284 +vt 0.467376 0.444400 +vt 0.448909 0.398084 +vt 0.453574 0.374441 +vt 0.439580 0.398084 +vt 0.435107 0.405642 +vt 0.430442 0.444400 +vt 0.421113 0.444400 +vt 0.444245 0.471942 +vt 0.433857 0.454392 +vt 0.444245 0.401742 +vt 0.417698 0.481693 +vt 0.415005 0.486243 +vt 0.416448 0.468042 +vt 0.415005 0.387442 +vt 0.416448 0.405642 +vt 0.417698 0.391992 +vt 0.417698 0.454392 +vt 0.421113 0.381999 +vt 0.444245 0.338041 +vt 0.439580 0.350799 +vt 0.444245 0.347141 +vt 0.425778 0.378341 +vt 0.448909 0.350799 +vt 0.473484 0.387441 +vt 0.467376 0.381999 +vt 0.470791 0.391992 +vt 0.452324 0.360791 +vt 0.473484 0.486243 +vt 0.472041 0.468042 +vt 0.470791 0.481693 +vt 0.472041 0.405642 +vt 0.470791 0.454392 +vt 0.467376 0.491685 +vt 0.444245 0.535643 +vt 0.448909 0.522886 +vt 0.444245 0.526543 +vt 0.462712 0.495343 +vt 0.439580 0.522886 +vt 0.421113 0.491685 +vt 0.436165 0.512893 +vt 0.517986 0.157895 +vt 0.586331 0.105263 +vt 0.586331 0.157895 +vt 0.517986 0.315789 +vt 0.586331 0.263158 +vt 0.586331 0.315789 +vt 0.517986 0.578947 +vt 0.586331 0.526316 +vt 0.586331 0.578947 +vt 0.517986 0.473684 +vt 0.586331 0.421053 +vt 0.586331 0.473684 +vt 0.517986 0.105263 +vt 0.586331 0.052632 +vt 0.517986 0.263158 +vt 0.586331 0.210526 +vt 0.517986 0.526316 +vt 0.517986 0.421053 +vt 0.586331 0.368421 +vt 0.517986 0.052632 +vt 0.586331 0.000000 +vt 0.517986 0.210526 +vt 0.517986 0.368421 +vt 0.517986 0.631579 +vt 0.586331 0.631579 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.517986 0.000000 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -1.0000 0.0000 +s off +f 1052/1650/80 929/1651/80 928/1652/80 +f 976/1653/80 933/1654/80 932/1655/80 +f 1024/1656/80 981/1657/80 980/1658/80 +f 1028/1659/80 953/1660/80 952/1661/80 +f 1000/1662/80 957/1663/80 956/1664/80 +f 1048/1665/80 1005/1666/80 1004/1667/80 +f 954/1668/80 1026/1669/80 930/1670/80 +f 1006/1671/80 1005/1666/80 915/1672/80 +f 999/1673/80 1010/1674/80 925/1675/80 +f 951/1676/80 962/1677/80 923/1678/80 +f 1023/1679/80 1034/1680/80 921/1681/80 +f 975/1682/80 986/1683/80 919/1684/80 +f 927/1685/80 938/1686/80 917/1687/80 +f 988/1688/81 989/1689/81 944/1690/81 +f 1064/1691/81 1065/1692/81 940/1693/81 +f 1060/1694/81 1061/1695/81 1016/1696/81 +f 1012/1697/81 1013/1698/81 968/1699/81 +f 1040/1700/81 1041/1701/81 964/1702/81 +f 1036/1703/81 1037/1704/81 992/1705/81 +f 1014/1706/81 1062/1707/81 1038/1708/81 +f 1046/1709/81 1035/1710/81 909/1711/81 +f 974/1712/81 963/1713/81 911/1714/81 +f 1022/1715/81 1011/1716/81 913/1717/81 +f 1017/1718/81 1018/1719/81 903/1720/81 +f 950/1721/81 939/1722/81 905/1723/81 +f 998/1724/81 987/1725/81 907/1726/81 +f 928/1652/80 927/1685/80 1053/1727/80 +f 1052/1650/80 1051/1728/80 929/1651/80 +f 928/1652/80 1053/1727/80 1052/1650/80 +f 932/1655/80 931/1729/80 977/1730/80 +f 976/1653/80 975/1682/80 933/1654/80 +f 932/1655/80 977/1730/80 976/1653/80 +f 980/1658/80 979/1731/80 1025/1732/80 +f 1024/1656/80 1023/1679/80 981/1657/80 +f 980/1658/80 1025/1732/80 1024/1656/80 +f 952/1661/80 951/1676/80 1029/1733/80 +f 1028/1659/80 1027/1734/80 953/1660/80 +f 952/1661/80 1029/1733/80 1028/1659/80 +f 956/1664/80 955/1735/80 1001/1736/80 +f 1000/1662/80 999/1673/80 957/1663/80 +f 956/1664/80 1001/1736/80 1000/1662/80 +f 1004/1667/80 1003/1737/80 1049/1738/80 +f 1048/1665/80 1047/1739/80 1005/1666/80 +f 1004/1667/80 1049/1738/80 1048/1665/80 +f 930/1670/80 929/1651/80 1051/1728/80 +f 1050/1740/80 1049/1738/80 1003/1737/80 +f 930/1670/80 1051/1728/80 1050/1740/80 +f 977/1730/80 931/1729/80 978/1741/80 +f 931/1729/80 930/1670/80 978/1741/80 +f 1025/1732/80 979/1731/80 978/1741/80 +f 930/1670/80 1050/1740/80 1002/1742/80 +f 1050/1740/80 1003/1737/80 1002/1742/80 +f 1002/1742/80 1001/1736/80 955/1735/80 +f 1025/1732/80 978/1741/80 1026/1669/80 +f 978/1741/80 930/1670/80 1026/1669/80 +f 953/1660/80 1027/1734/80 954/1668/80 +f 1027/1734/80 1026/1669/80 954/1668/80 +f 930/1670/80 1002/1742/80 954/1668/80 +f 1002/1742/80 955/1735/80 954/1668/80 +f 1056/1743/80 916/1744/80 1057/1745/80 +f 916/1744/80 915/1672/80 1057/1745/80 +f 915/1672/80 926/1746/80 1007/1747/80 +f 926/1746/80 1008/1748/80 1007/1747/80 +f 1005/1666/80 1047/1739/80 915/1672/80 +f 1047/1739/80 1058/1749/80 915/1672/80 +f 1058/1749/80 1057/1745/80 915/1672/80 +f 915/1672/80 1007/1747/80 1006/1671/80 +f 925/1675/80 924/1750/80 959/1751/80 +f 924/1750/80 960/1752/80 959/1751/80 +f 1008/1748/80 926/1746/80 1009/1753/80 +f 926/1746/80 925/1675/80 1009/1753/80 +f 925/1675/80 959/1751/80 958/1754/80 +f 958/1754/80 957/1663/80 925/1675/80 +f 957/1663/80 999/1673/80 925/1675/80 +f 1010/1674/80 1009/1753/80 925/1675/80 +f 923/1678/80 922/1755/80 1031/1756/80 +f 922/1755/80 1032/1757/80 1031/1756/80 +f 960/1752/80 924/1750/80 961/1758/80 +f 924/1750/80 923/1678/80 961/1758/80 +f 923/1678/80 1031/1756/80 1030/1759/80 +f 1030/1759/80 1029/1733/80 923/1678/80 +f 1029/1733/80 951/1676/80 923/1678/80 +f 962/1677/80 961/1758/80 923/1678/80 +f 921/1681/80 920/1760/80 983/1761/80 +f 920/1760/80 984/1762/80 983/1761/80 +f 1032/1757/80 922/1755/80 1033/1763/80 +f 922/1755/80 921/1681/80 1033/1763/80 +f 921/1681/80 983/1761/80 982/1764/80 +f 982/1764/80 981/1657/80 921/1681/80 +f 981/1657/80 1023/1679/80 921/1681/80 +f 1034/1680/80 1033/1763/80 921/1681/80 +f 919/1684/80 918/1765/80 935/1766/80 +f 918/1765/80 936/1767/80 935/1766/80 +f 984/1762/80 920/1760/80 985/1768/80 +f 920/1760/80 919/1684/80 985/1768/80 +f 919/1684/80 935/1766/80 934/1769/80 +f 934/1769/80 933/1654/80 919/1684/80 +f 933/1654/80 975/1682/80 919/1684/80 +f 986/1683/80 985/1768/80 919/1684/80 +f 917/1687/80 916/1744/80 1055/1770/80 +f 916/1744/80 1056/1743/80 1055/1770/80 +f 936/1767/80 918/1765/80 937/1771/80 +f 918/1765/80 917/1687/80 937/1771/80 +f 917/1687/80 1055/1770/80 1054/1772/80 +f 1054/1772/80 1053/1727/80 917/1687/80 +f 1053/1727/80 927/1685/80 917/1687/80 +f 938/1686/80 937/1771/80 917/1687/80 +f 989/1689/81 943/1773/81 944/1690/81 +f 944/1690/81 945/1774/81 988/1688/81 +f 945/1774/81 987/1725/81 988/1688/81 +f 1065/1692/81 939/1722/81 940/1693/81 +f 940/1693/81 941/1775/81 1064/1691/81 +f 941/1775/81 1063/1776/81 1064/1691/81 +f 1061/1695/81 1015/1777/81 1016/1696/81 +f 1016/1696/81 1017/1718/81 1060/1694/81 +f 1017/1718/81 1059/1778/81 1060/1694/81 +f 1013/1698/81 967/1779/81 968/1699/81 +f 968/1699/81 969/1780/81 1012/1697/81 +f 969/1780/81 1011/1716/81 1012/1697/81 +f 1041/1701/81 963/1713/81 964/1702/81 +f 964/1702/81 965/1781/81 1040/1700/81 +f 965/1781/81 1039/1782/81 1040/1700/81 +f 1037/1704/81 991/1783/81 992/1705/81 +f 992/1705/81 993/1784/81 1036/1703/81 +f 993/1784/81 1035/1710/81 1036/1703/81 +f 1063/1776/81 941/1775/81 942/1785/81 +f 942/1785/81 943/1773/81 990/1786/81 +f 943/1773/81 989/1689/81 990/1786/81 +f 990/1786/81 991/1783/81 1038/1708/81 +f 991/1783/81 1037/1704/81 1038/1708/81 +f 1062/1707/81 1063/1776/81 942/1785/81 +f 1015/1777/81 1061/1695/81 1062/1707/81 +f 967/1779/81 1013/1698/81 1014/1706/81 +f 1014/1706/81 1015/1777/81 1062/1707/81 +f 1062/1707/81 942/1785/81 990/1786/81 +f 1038/1708/81 1039/1782/81 966/1787/81 +f 1039/1782/81 965/1781/81 966/1787/81 +f 966/1787/81 967/1779/81 1014/1706/81 +f 1062/1707/81 990/1786/81 1038/1708/81 +f 966/1787/81 1014/1706/81 1038/1708/81 +f 996/1788/81 908/1789/81 995/1790/81 +f 908/1789/81 909/1711/81 995/1790/81 +f 909/1711/81 910/1791/81 1045/1792/81 +f 910/1791/81 1044/1793/81 1045/1792/81 +f 1035/1710/81 993/1784/81 909/1711/81 +f 993/1784/81 994/1794/81 909/1711/81 +f 994/1794/81 995/1790/81 909/1711/81 +f 909/1711/81 1045/1792/81 1046/1709/81 +f 1044/1793/81 910/1791/81 1043/1795/81 +f 910/1791/81 911/1714/81 1043/1795/81 +f 911/1714/81 912/1796/81 973/1797/81 +f 912/1796/81 972/1798/81 973/1797/81 +f 963/1713/81 1041/1701/81 911/1714/81 +f 1041/1701/81 1042/1799/81 911/1714/81 +f 1042/1799/81 1043/1795/81 911/1714/81 +f 911/1714/81 973/1797/81 974/1712/81 +f 972/1798/81 912/1796/81 971/1800/81 +f 912/1796/81 913/1717/81 971/1800/81 +f 913/1717/81 914/1801/81 1021/1802/81 +f 914/1801/81 1020/1803/81 1021/1802/81 +f 1011/1716/81 969/1780/81 913/1717/81 +f 969/1780/81 970/1804/81 913/1717/81 +f 970/1804/81 971/1800/81 913/1717/81 +f 913/1717/81 1021/1802/81 1022/1715/81 +f 903/1720/81 904/1805/81 1069/1806/81 +f 904/1805/81 1068/1807/81 1069/1806/81 +f 1020/1803/81 914/1801/81 1019/1808/81 +f 914/1801/81 903/1720/81 1019/1808/81 +f 903/1720/81 1069/1806/81 1070/1809/81 +f 1070/1809/81 1059/1778/81 903/1720/81 +f 1059/1778/81 1017/1718/81 903/1720/81 +f 1018/1719/81 1019/1808/81 903/1720/81 +f 1068/1807/81 904/1805/81 1067/1810/81 +f 904/1805/81 905/1723/81 1067/1810/81 +f 905/1723/81 906/1811/81 949/1812/81 +f 906/1811/81 948/1813/81 949/1812/81 +f 939/1722/81 1065/1692/81 905/1723/81 +f 1065/1692/81 1066/1814/81 905/1723/81 +f 1066/1814/81 1067/1810/81 905/1723/81 +f 905/1723/81 949/1812/81 950/1721/81 +f 948/1813/81 906/1811/81 947/1815/81 +f 906/1811/81 907/1726/81 947/1815/81 +f 907/1726/81 908/1789/81 997/1816/81 +f 908/1789/81 996/1788/81 997/1816/81 +f 987/1725/81 945/1774/81 907/1726/81 +f 945/1774/81 946/1817/81 907/1726/81 +f 946/1817/81 947/1815/81 907/1726/81 +f 907/1726/81 997/1816/81 998/1724/81 +s 1 +f 921/1818/82 910/1819/83 909/1820/82 +f 918/1821/84 907/1822/85 906/1823/84 +f 925/1824/86 914/1825/87 913/1826/86 +f 915/1827/88 904/1828/89 903/1829/88 +f 922/1830/83 911/1831/90 910/1819/83 +f 919/1832/85 908/1833/91 907/1822/85 +f 926/1834/87 903/1829/88 914/1825/87 +f 916/1835/89 905/1836/92 904/1828/89 +f 923/1837/90 912/1838/93 911/1831/90 +f 920/1839/91 909/1820/82 908/1833/91 +f 917/1840/92 906/1823/84 905/1836/92 +f 924/1841/93 913/1826/86 912/1842/93 +f 944/1843/89 931/1844/92 932/1845/89 +f 939/1846/82 938/1847/83 927/1848/82 +f 941/1849/85 928/1850/91 929/1851/85 +f 948/1852/93 935/1853/86 936/1854/93 +f 945/1855/88 932/1845/89 933/1856/88 +f 942/1857/84 929/1851/85 930/1858/84 +f 949/1859/90 936/1854/93 937/1860/90 +f 946/1861/87 933/1856/88 934/1862/87 +f 943/1863/92 930/1864/84 931/1844/92 +f 950/1865/83 937/1860/90 938/1847/83 +f 940/1866/91 927/1848/82 928/1850/91 +f 947/1867/86 934/1862/87 935/1853/86 +f 968/1868/83 955/1869/90 956/1870/83 +f 963/1871/88 962/1872/89 951/1873/88 +f 965/1874/86 952/1875/87 953/1876/86 +f 972/1877/84 959/1878/85 960/1879/84 +f 969/1880/82 956/1870/83 957/1881/82 +f 966/1882/93 953/1876/86 954/1883/93 +f 973/1884/92 960/1879/84 961/1885/92 +f 970/1886/91 957/1881/82 958/1887/91 +f 967/1888/90 954/1889/93 955/1869/90 +f 974/1890/89 961/1885/92 962/1872/89 +f 964/1891/87 951/1873/88 952/1875/87 +f 971/1892/85 958/1887/91 959/1878/85 +f 992/1893/84 979/1894/85 980/1895/84 +f 987/1896/90 986/1897/93 975/1898/90 +f 989/1899/82 976/1900/83 977/1901/82 +f 996/1902/87 983/1903/88 984/1904/87 +f 993/1905/92 980/1895/84 981/1906/92 +f 990/1907/91 977/1901/82 978/1908/91 +f 997/1909/86 984/1904/87 985/1910/86 +f 994/1911/89 981/1906/92 982/1912/89 +f 991/1913/85 978/1914/91 979/1894/85 +f 998/1915/93 985/1910/86 986/1897/93 +f 988/1916/83 975/1898/90 976/1900/83 +f 995/1917/88 982/1912/89 983/1903/88 +f 1016/1918/93 1003/1919/86 1004/1920/93 +f 1011/1921/92 1010/1922/84 999/1923/92 +f 1013/1924/88 1000/1925/89 1001/1926/88 +f 1020/1927/91 1007/1928/82 1008/1929/91 +f 1017/1930/90 1004/1920/93 1005/1931/90 +f 1014/1932/87 1001/1926/88 1002/1933/87 +f 1021/1934/85 1008/1929/91 1009/1935/85 +f 1018/1936/83 1005/1931/90 1006/1937/83 +f 1015/1938/86 1002/1939/87 1003/1919/86 +f 1022/1940/84 1009/1935/85 1010/1922/84 +f 1012/1941/89 999/1923/92 1000/1925/89 +f 1019/1942/82 1006/1937/83 1007/1928/82 +f 1040/1943/91 1027/1944/82 1028/1945/91 +f 1035/1946/86 1034/1947/87 1023/1948/86 +f 1037/1949/90 1024/1950/93 1025/1951/90 +f 1044/1952/89 1031/1953/92 1032/1954/89 +f 1041/1955/85 1028/1945/91 1029/1956/85 +f 1038/1957/83 1025/1951/90 1026/1958/83 +f 1045/1959/88 1032/1954/89 1033/1960/88 +f 1042/1961/84 1029/1956/85 1030/1962/84 +f 1039/1963/82 1026/1964/83 1027/1944/82 +f 1046/1965/87 1033/1960/88 1034/1947/87 +f 1036/1966/93 1023/1948/86 1024/1950/93 +f 1043/1967/92 1030/1962/84 1031/1953/92 +f 1064/1968/87 1051/1969/88 1052/1970/87 +f 1059/1971/85 1058/1972/91 1047/1973/85 +f 1061/1974/92 1048/1975/84 1049/1976/92 +f 1068/1977/83 1055/1978/90 1056/1979/83 +f 1065/1980/86 1052/1970/87 1053/1981/86 +f 1062/1982/89 1049/1976/92 1050/1983/89 +f 1069/1984/82 1056/1979/83 1057/1985/82 +f 1066/1986/93 1053/1981/86 1054/1987/93 +f 1063/1988/88 1050/1989/89 1051/1969/88 +f 1070/1990/91 1057/1985/82 1058/1972/91 +f 1060/1991/84 1047/1973/85 1048/1975/84 +f 1067/1992/90 1054/1987/93 1055/1978/90 +f 921/1818/82 922/1830/83 910/1819/83 +f 918/1821/84 919/1832/85 907/1822/85 +f 925/1824/86 926/1834/87 914/1825/87 +f 915/1827/88 916/1835/89 904/1828/89 +f 922/1830/83 923/1837/90 911/1831/90 +f 919/1832/85 920/1839/91 908/1833/91 +f 926/1834/87 915/1827/88 903/1829/88 +f 916/1835/89 917/1840/92 905/1836/92 +f 923/1837/90 924/1993/93 912/1838/93 +f 920/1839/91 921/1818/82 909/1820/82 +f 917/1840/92 918/1821/84 906/1823/84 +f 924/1841/93 925/1824/86 913/1826/86 +f 944/1843/89 943/1863/92 931/1844/92 +f 939/1846/82 950/1865/83 938/1847/83 +f 941/1849/85 940/1866/91 928/1850/91 +f 948/1852/93 947/1867/86 935/1853/86 +f 945/1855/88 944/1843/89 932/1845/89 +f 942/1857/84 941/1849/85 929/1851/85 +f 949/1859/90 948/1852/93 936/1854/93 +f 946/1861/87 945/1855/88 933/1856/88 +f 943/1863/92 942/1994/84 930/1864/84 +f 950/1865/83 949/1859/90 937/1860/90 +f 940/1866/91 939/1846/82 927/1848/82 +f 947/1867/86 946/1861/87 934/1862/87 +f 968/1868/83 967/1888/90 955/1869/90 +f 963/1871/88 974/1890/89 962/1872/89 +f 965/1874/86 964/1891/87 952/1875/87 +f 972/1877/84 971/1892/85 959/1878/85 +f 969/1880/82 968/1868/83 956/1870/83 +f 966/1882/93 965/1874/86 953/1876/86 +f 973/1884/92 972/1877/84 960/1879/84 +f 970/1886/91 969/1880/82 957/1881/82 +f 967/1888/90 966/1995/93 954/1889/93 +f 974/1890/89 973/1884/92 961/1885/92 +f 964/1891/87 963/1871/88 951/1873/88 +f 971/1892/85 970/1886/91 958/1887/91 +f 992/1893/84 991/1913/85 979/1894/85 +f 987/1896/90 998/1915/93 986/1897/93 +f 989/1899/82 988/1916/83 976/1900/83 +f 996/1902/87 995/1917/88 983/1903/88 +f 993/1905/92 992/1893/84 980/1895/84 +f 990/1907/91 989/1899/82 977/1901/82 +f 997/1909/86 996/1902/87 984/1904/87 +f 994/1911/89 993/1905/92 981/1906/92 +f 991/1913/85 990/1996/91 978/1914/91 +f 998/1915/93 997/1909/86 985/1910/86 +f 988/1916/83 987/1896/90 975/1898/90 +f 995/1917/88 994/1911/89 982/1912/89 +f 1016/1918/93 1015/1938/86 1003/1919/86 +f 1011/1921/92 1022/1940/84 1010/1922/84 +f 1013/1924/88 1012/1941/89 1000/1925/89 +f 1020/1927/91 1019/1942/82 1007/1928/82 +f 1017/1930/90 1016/1918/93 1004/1920/93 +f 1014/1932/87 1013/1924/88 1001/1926/88 +f 1021/1934/85 1020/1927/91 1008/1929/91 +f 1018/1936/83 1017/1930/90 1005/1931/90 +f 1015/1938/86 1014/1997/87 1002/1939/87 +f 1022/1940/84 1021/1934/85 1009/1935/85 +f 1012/1941/89 1011/1921/92 999/1923/92 +f 1019/1942/82 1018/1936/83 1006/1937/83 +f 1040/1943/91 1039/1963/82 1027/1944/82 +f 1035/1946/86 1046/1965/87 1034/1947/87 +f 1037/1949/90 1036/1966/93 1024/1950/93 +f 1044/1952/89 1043/1967/92 1031/1953/92 +f 1041/1955/85 1040/1943/91 1028/1945/91 +f 1038/1957/83 1037/1949/90 1025/1951/90 +f 1045/1959/88 1044/1952/89 1032/1954/89 +f 1042/1961/84 1041/1955/85 1029/1956/85 +f 1039/1963/82 1038/1998/83 1026/1964/83 +f 1046/1965/87 1045/1959/88 1033/1960/88 +f 1036/1966/93 1035/1946/86 1023/1948/86 +f 1043/1967/92 1042/1961/84 1030/1962/84 +f 1064/1968/87 1063/1988/88 1051/1969/88 +f 1059/1971/85 1070/1990/91 1058/1972/91 +f 1061/1974/92 1060/1991/84 1048/1975/84 +f 1068/1977/83 1067/1992/90 1055/1978/90 +f 1065/1980/86 1064/1968/87 1052/1970/87 +f 1062/1982/89 1061/1974/92 1049/1976/92 +f 1069/1984/82 1068/1977/83 1056/1979/83 +f 1066/1986/93 1065/1980/86 1053/1981/86 +f 1063/1988/88 1062/1999/89 1050/1989/89 +f 1070/1990/91 1069/1984/82 1057/1985/82 +f 1060/1991/84 1059/1971/85 1047/1973/85 +f 1067/1992/90 1066/1986/93 1054/1987/93 +o Scope +v -3.125000 3.437500 0.375000 +v 3.125000 3.437500 0.375000 +v -3.125000 3.437500 -0.375000 +v 3.125000 3.437500 -0.375000 +v -3.125000 3.812500 -0.375000 +v -3.125000 3.812500 0.375000 +v 3.125000 3.812500 0.375000 +v 3.125000 3.812500 -0.375000 +v 3.125000 3.437500 0.125000 +v 3.000000 3.187500 0.125000 +v 3.125000 3.437500 -0.125000 +v 3.000000 3.187500 -0.125000 +v -1.125000 3.437500 0.125000 +v -1.000000 3.187500 0.125000 +v -1.125000 3.437500 -0.125000 +v -1.000000 3.187500 -0.125000 +v 2.875000 4.875000 -0.625000 +v 2.875000 5.187500 -0.541266 +v 2.875000 5.416266 -0.312500 +v 2.875000 5.500000 0.000000 +v 2.875000 5.416266 0.312500 +v 2.875000 5.187500 0.541266 +v 2.875000 4.875000 0.625000 +v 2.875000 4.562500 0.541266 +v 2.875000 4.333735 0.312500 +v 2.875000 4.250000 0.000000 +v 2.875000 4.333734 -0.312500 +v 2.875000 4.562500 -0.541265 +v -2.625000 4.875000 -0.625000 +v -2.625000 5.187500 -0.541266 +v -2.625000 5.416266 -0.312500 +v -2.625000 5.500000 0.000000 +v -2.625000 5.416266 0.312500 +v -2.625000 5.187500 0.541266 +v -2.625000 4.875000 0.625000 +v -2.625000 4.562500 0.541266 +v -2.625000 4.333735 0.312500 +v -2.625000 4.250000 0.000000 +v -2.625000 4.333734 -0.312500 +v -2.625000 4.562500 -0.541265 +v 3.875000 4.875000 -0.750000 +v 3.875000 5.250000 -0.649519 +v 3.875000 5.524519 -0.375000 +v 3.875000 5.625000 0.000000 +v 3.875000 5.524519 0.375000 +v 3.875000 5.250000 0.649519 +v 3.875000 4.875000 0.750000 +v 3.875000 4.500000 0.649519 +v 3.875000 4.225481 0.375000 +v 3.875000 4.125000 0.000000 +v 3.875000 4.225481 -0.374999 +v 3.875000 4.500000 -0.649518 +v 5.125000 4.875000 -0.750000 +v 5.125000 5.250000 -0.649519 +v 5.125000 5.524519 -0.375000 +v 5.125000 5.625000 0.000000 +v 5.125000 5.524519 0.375000 +v 5.125000 5.250000 0.649519 +v 5.125000 4.875000 0.750000 +v 5.125000 4.500000 0.649519 +v 5.125000 4.225481 0.375000 +v 5.125000 4.125000 0.000000 +v 5.125000 4.225481 -0.374999 +v 5.125000 4.500000 -0.649518 +v 5.125000 4.875000 -0.625000 +v 5.125000 5.187500 -0.541266 +v 5.125000 5.416266 -0.312500 +v 5.125000 5.500000 0.000000 +v 5.125000 5.416266 0.312500 +v 5.125000 5.187500 0.541266 +v 5.125000 4.875000 0.625000 +v 5.125000 4.562500 0.541266 +v 5.125000 4.333735 0.312500 +v 5.125000 4.250000 0.000000 +v 5.125000 4.333734 -0.312500 +v 5.125000 4.562500 -0.541265 +v 4.875000 4.875000 -0.625000 +v 4.875000 5.187500 -0.541266 +v 4.875000 5.416266 -0.312500 +v 4.875000 5.500000 0.000000 +v 4.875000 5.416266 0.312500 +v 4.875000 5.187500 0.541266 +v 4.875000 4.875000 0.625000 +v 4.875000 4.562500 0.541266 +v 4.875000 4.333735 0.312500 +v 4.875000 4.250000 0.000000 +v 4.875000 4.333734 -0.312500 +v 4.875000 4.562500 -0.541265 +v -3.125000 4.875000 -0.750000 +v -3.125000 5.250000 -0.649519 +v -3.125000 5.524519 -0.375000 +v -3.125000 5.625000 0.000000 +v -3.125000 5.524519 0.375000 +v -3.125000 5.250000 0.649519 +v -3.125000 4.875000 0.750000 +v -3.125000 4.500000 0.649519 +v -3.125000 4.225481 0.375000 +v -3.125000 4.125000 0.000000 +v -3.125000 4.225481 -0.374999 +v -3.125000 4.500000 -0.649518 +v -3.625000 4.875000 -0.750000 +v -3.625000 5.250000 -0.649519 +v -3.625000 5.524519 -0.375000 +v -3.625000 5.625000 0.000000 +v -3.625000 5.524519 0.375000 +v -3.625000 5.250000 0.649519 +v -3.625000 4.875000 0.750000 +v -3.625000 4.500000 0.649519 +v -3.625000 4.225481 0.375000 +v -3.625000 4.125000 0.000000 +v -3.625000 4.225481 -0.374999 +v -3.625000 4.500000 -0.649518 +v -4.125001 4.875000 -0.937500 +v -4.125001 5.343750 -0.811898 +v -4.125001 5.686898 -0.468750 +v -4.125001 5.812499 0.000000 +v -4.125001 5.686898 0.468750 +v -4.125001 5.343750 0.811899 +v -4.125001 4.875000 0.937500 +v -4.125001 4.406250 0.811899 +v -4.125001 4.063101 0.468750 +v -4.125001 3.937500 0.000001 +v -4.125001 4.063101 -0.468749 +v -4.125001 4.406249 -0.811898 +v -5.375001 4.875000 -0.937500 +v -5.375001 5.343750 -0.811898 +v -5.375001 5.686898 -0.468750 +v -5.375001 5.812499 0.000000 +v -5.375001 5.686898 0.468750 +v -5.375001 5.343750 0.811899 +v -5.375001 4.875000 0.937500 +v -5.375001 4.406250 0.811899 +v -5.375001 4.063101 0.468750 +v -5.375001 3.937500 0.000001 +v -5.375001 4.063101 -0.468749 +v -5.375001 4.406249 -0.811898 +v -5.375001 4.875000 -0.812500 +v -5.375001 5.281250 -0.703645 +v -5.375001 5.578646 -0.406250 +v -5.375001 5.687500 0.000000 +v -5.375001 5.578646 0.406250 +v -5.375001 5.281250 0.703646 +v -5.375001 4.875000 0.812500 +v -5.375001 4.468750 0.703646 +v -5.375001 4.171354 0.406251 +v -5.375001 4.062500 0.000001 +v -5.375001 4.171353 -0.406249 +v -5.375001 4.468750 -0.703645 +v -5.125001 4.875000 -0.812500 +v -5.125001 5.281250 -0.703645 +v -5.125001 5.578646 -0.406250 +v -5.125001 5.687500 0.000000 +v -5.125001 5.578646 0.406250 +v -5.125001 5.281250 0.703646 +v -5.125001 4.875000 0.812500 +v -5.125001 4.468750 0.703646 +v -5.125001 4.171354 0.406251 +v -5.125001 4.062500 0.000001 +v -5.125001 4.171353 -0.406249 +v -5.125001 4.468750 -0.703645 +v 1.375000 5.625000 0.000000 +v 1.375000 5.558013 0.500000 +v 1.375000 5.125000 1.000000 +v 1.375000 4.191987 -0.500000 +v 1.375000 4.125000 0.000000 +v 1.375000 4.191988 0.500000 +v 1.375000 4.625000 1.000000 +v 1.375000 4.625000 -1.000000 +v 1.375000 5.558013 -0.500000 +v 1.375000 5.125000 -1.000000 +v 2.625000 4.625000 -1.000000 +v 2.625000 4.625000 1.000000 +v 2.625000 4.191988 0.500000 +v 2.625000 4.125000 0.000000 +v 2.625000 4.191987 -0.500000 +v 2.625000 5.125000 1.000000 +v 2.625000 5.558013 0.500000 +v 2.625000 5.625000 0.000000 +v 2.625000 5.558013 -0.500000 +v 2.625000 5.125000 -1.000000 +v 1.500000 4.191988 0.500000 +v 1.500000 4.191987 -0.500000 +v 2.500000 4.191988 0.500000 +v 2.500000 4.191987 -0.500000 +v 1.500000 3.566988 0.500000 +v 1.500000 3.566987 -0.500000 +v 2.500000 3.566988 0.500000 +v 2.500000 3.566987 -0.500000 +v -0.625000 4.187500 0.687500 +v -0.625000 5.562500 0.687500 +v -0.625000 4.187500 -0.687500 +v -0.625000 5.562500 -0.687500 +v 0.875000 4.187500 0.687500 +v 0.875000 5.562500 0.687500 +v 0.875000 4.187500 -0.687500 +v 0.875000 5.562500 -0.687500 +v -0.750000 4.312500 -0.562500 +v -0.750000 4.312500 0.562500 +v -0.750000 5.437500 0.562500 +v -0.750000 5.437500 -0.562500 +v 0.125000 5.562500 -0.562500 +v -0.156250 5.562500 -0.487139 +v -0.362139 5.562500 -0.281250 +v -0.437500 5.562500 0.000000 +v -0.362139 5.562500 0.281250 +v -0.156250 5.562500 0.487139 +v 0.125000 5.562500 0.562500 +v 0.406250 5.562500 0.487140 +v 0.612139 5.562500 0.281250 +v 0.687500 5.562500 0.000000 +v 0.612139 5.562500 -0.281250 +v 0.406250 5.562500 -0.487139 +v 0.125000 5.687500 -0.562500 +v -0.156250 5.687500 -0.487139 +v -0.362139 5.687500 -0.281250 +v -0.437500 5.687500 0.000000 +v -0.362139 5.687500 0.281250 +v -0.156250 5.687500 0.487139 +v 0.125000 5.687500 0.562500 +v 0.406250 5.687500 0.487140 +v 0.612139 5.687500 0.281250 +v 0.687500 5.687500 0.000000 +v 0.612139 5.687500 -0.281250 +v 0.406250 5.687500 -0.487139 +v 0.125000 5.687500 -0.656250 +v -0.203125 5.687500 -0.568329 +v -0.443329 5.687500 -0.328125 +v -0.531250 5.687500 0.000000 +v -0.443329 5.687500 0.328125 +v -0.203125 5.687500 0.568330 +v 0.125000 5.687500 0.656250 +v 0.453125 5.687500 0.568330 +v 0.693329 5.687500 0.328126 +v 0.781250 5.687500 0.000001 +v 0.693329 5.687500 -0.328124 +v 0.453125 5.687500 -0.568328 +v 0.125000 6.062500 -0.656250 +v -0.203125 6.062500 -0.568329 +v -0.443329 6.062500 -0.328125 +v -0.531250 6.062500 0.000000 +v -0.443329 6.062500 0.328125 +v -0.203125 6.062500 0.568330 +v 0.125000 6.062500 0.656250 +v 0.453125 6.062500 0.568330 +v 0.693329 6.062500 0.328126 +v 0.781250 6.062500 0.000001 +v 0.693329 6.062500 -0.328124 +v 0.453125 6.062500 -0.568328 +v -2.375000 5.625000 0.000000 +v -2.375000 5.558013 0.500000 +v -2.375000 5.125000 1.000000 +v -2.375000 4.191987 -0.500000 +v -2.375000 4.125000 0.000000 +v -2.375000 4.191988 0.500000 +v -2.375000 4.625000 1.000000 +v -2.375000 4.625000 -1.000000 +v -2.375000 5.558013 -0.500000 +v -2.375000 5.125000 -1.000000 +v -1.125000 4.625000 -1.000000 +v -1.125000 4.625000 1.000000 +v -1.125000 4.191988 0.500000 +v -1.125000 4.125000 0.000000 +v -1.125000 4.191987 -0.500000 +v -1.125000 5.125000 1.000000 +v -1.125000 5.558013 0.500000 +v -1.125000 5.625000 0.000000 +v -1.125000 5.558013 -0.500000 +v -1.125000 5.125000 -1.000000 +v 0.125000 5.437500 0.687500 +v -0.156250 5.362139 0.687500 +v -0.362139 5.156250 0.687500 +v -0.437500 4.875000 0.687500 +v -0.362139 4.593750 0.687500 +v -0.156250 4.387861 0.687500 +v 0.125000 4.312500 0.687500 +v 0.406250 4.387860 0.687500 +v 0.612139 4.593750 0.687500 +v 0.687500 4.875000 0.687500 +v 0.612139 5.156250 0.687500 +v 0.406250 5.362139 0.687500 +v 0.125000 5.437500 0.812500 +v -0.156250 5.362139 0.812500 +v -0.362139 5.156250 0.812500 +v -0.437500 4.875000 0.812500 +v -0.362139 4.593750 0.812500 +v -0.156250 4.387861 0.812500 +v 0.125000 4.312500 0.812500 +v 0.406250 4.387860 0.812500 +v 0.612139 4.593750 0.812500 +v 0.687500 4.875000 0.812500 +v 0.612139 5.156250 0.812500 +v 0.406250 5.362139 0.812500 +v 0.125000 5.531250 0.812500 +v -0.203125 5.443329 0.812500 +v -0.443329 5.203125 0.812500 +v -0.531250 4.875000 0.812500 +v -0.443329 4.546875 0.812500 +v -0.203125 4.306671 0.812500 +v 0.125000 4.218750 0.812500 +v 0.453125 4.306670 0.812500 +v 0.693329 4.546875 0.812500 +v 0.781250 4.875000 0.812500 +v 0.693329 5.203125 0.812500 +v 0.453125 5.443328 0.812500 +v 0.125000 5.531250 1.187500 +v -0.203125 5.443329 1.187500 +v -0.443329 5.203125 1.187500 +v -0.531250 4.875000 1.187500 +v -0.443329 4.546875 1.187500 +v -0.203125 4.306671 1.187500 +v 0.125000 4.218750 1.187500 +v 0.453125 4.306670 1.187500 +v 0.693329 4.546875 1.187500 +v 0.781250 4.875000 1.187500 +v 0.693329 5.203125 1.187500 +v 0.453125 5.443328 1.187500 +v -2.250000 4.191988 0.500000 +v -2.250000 4.191987 -0.500000 +v -1.250000 4.191988 0.500000 +v -1.250000 4.191987 -0.500000 +v -2.250000 3.566988 0.500000 +v -2.250000 3.566987 -0.500000 +v -1.250000 3.566988 0.500000 +v -1.250000 3.566987 -0.500000 +vt 0.436170 0.387097 +vt 0.968085 0.451613 +vt 0.436170 0.451613 +vt 0.968085 0.483871 +vt 0.436170 0.548387 +vt 0.436170 0.483871 +vt 1.000000 0.548387 +vt 1.000000 0.483871 +vt 0.404255 0.483871 +vt 0.404255 0.548387 +vt 0.436170 0.580645 +vt 0.968085 0.548387 +vt 0.968085 0.580645 +vt 0.978723 0.580645 +vt 1.000000 0.602151 +vt 0.978723 0.602151 +vt 0.968085 0.623656 +vt 0.617021 0.602151 +vt 0.978723 0.602151 +vt 0.627660 0.580645 +vt 0.968085 0.580645 +vt 0.595745 0.602151 +vt 0.617021 0.580645 +vt 0.617021 0.602151 +vt 0.968085 0.193548 +vt 0.978723 0.161290 +vt 0.978723 0.193548 +vt 0.968085 0.225806 +vt 0.978723 0.225806 +vt 0.968085 0.258065 +vt 0.978723 0.258065 +vt 0.968085 0.290323 +vt 0.978723 0.290323 +vt 0.978723 0.322581 +vt 0.968085 0.322581 +vt 0.978723 0.354839 +vt 0.968085 0.354839 +vt 0.978723 0.387097 +vt 0.968085 0.387097 +vt 0.968085 -0.000000 +vt 0.978723 0.032258 +vt 0.968085 0.032258 +vt 0.978723 0.064516 +vt 0.968085 0.064516 +vt 0.978723 0.096774 +vt 0.968085 0.096774 +vt 0.978723 0.129032 +vt 0.968085 0.129032 +vt 0.968085 0.161290 +vt 0.026755 0.616174 +vt 0.026755 0.523611 +vt 0.106064 0.569892 +vt 0.031915 0.258065 +vt 0.021277 0.215054 +vt 0.031915 0.215054 +vt 0.031915 0.172043 +vt 0.021277 0.172043 +vt 0.031915 0.129032 +vt 0.021277 0.129032 +vt 0.031915 0.086022 +vt 0.021277 0.043011 +vt 0.031915 0.043011 +vt 0.021277 0.000000 +vt 0.031915 0.000000 +vt 0.031915 0.516129 +vt 0.021277 0.473118 +vt 0.031915 0.473118 +vt 0.021277 0.430108 +vt 0.031915 0.430108 +vt 0.021277 0.387097 +vt 0.031915 0.387097 +vt 0.021277 0.344086 +vt 0.031915 0.344086 +vt 0.021277 0.301075 +vt 0.031915 0.301075 +vt 0.327040 0.396614 +vt 0.361527 0.456989 +vt 0.258066 0.517365 +vt 0.638298 0.677696 +vt 0.680669 0.683433 +vt 0.638298 0.806175 +vt 0.872523 0.800438 +vt 0.830152 0.763349 +vt 0.872523 0.683433 +vt 0.861702 1.000000 +vt 0.946809 0.946237 +vt 0.946809 1.000000 +vt 0.946809 0.860215 +vt 0.861702 0.806452 +vt 0.946809 0.806452 +vt 0.861702 0.946237 +vt 0.808511 0.860215 +vt 0.861702 0.860215 +vt 1.000000 0.860215 +vt 1.000000 0.946237 +vt 0.202128 0.881720 +vt 0.191489 0.774194 +vt 0.202128 0.763441 +vt 0.329787 0.881720 +vt 0.329787 0.763441 +vt 0.446809 0.645161 +vt 0.446809 0.763441 +vt 0.329787 0.645161 +vt 0.202128 0.526882 +vt 0.329787 0.526882 +vt 0.202128 1.000000 +vt 0.191489 0.655914 +vt 0.095745 0.752688 +vt 0.095745 0.655914 +vt 0.202128 0.645161 +vt 0.191489 0.537634 +vt 0.191489 0.892473 +vt 0.553191 0.870968 +vt 0.521277 0.881720 +vt 0.521277 0.870968 +vt 0.585106 0.870968 +vt 0.553191 0.881720 +vt 0.617021 0.870968 +vt 0.585106 0.881720 +vt 0.648936 0.870968 +vt 0.617021 0.881720 +vt 0.680851 0.881720 +vt 0.648936 0.881720 +vt 0.680851 0.870968 +vt 0.712766 0.881720 +vt 0.712766 0.870968 +vt 0.744681 0.881720 +vt 0.744681 0.870968 +vt 0.776596 0.881720 +vt 0.776596 0.870968 +vt 0.808511 0.881720 +vt 0.457447 0.870968 +vt 0.425532 0.881720 +vt 0.425532 0.870968 +vt 0.489362 0.870968 +vt 0.457447 0.881720 +vt 0.489362 0.881720 +vt 0.103745 0.863006 +vt 0.103745 0.760650 +vt 0.191446 0.811828 +vt 0.638298 0.677696 +vt 0.680669 0.683433 +vt 0.638298 0.806175 +vt 0.872523 0.800438 +vt 0.830152 0.763349 +vt 0.872523 0.683433 +vt 0.553191 0.870968 +vt 0.521277 0.881720 +vt 0.521277 0.870968 +vt 0.585106 0.870968 +vt 0.553191 0.881720 +vt 0.617021 0.870968 +vt 0.585106 0.881720 +vt 0.648936 0.870968 +vt 0.617021 0.881720 +vt 0.680851 0.881720 +vt 0.648936 0.881720 +vt 0.712766 0.870968 +vt 0.680851 0.870968 +vt 0.744681 0.870968 +vt 0.712766 0.881720 +vt 0.776596 0.881720 +vt 0.744681 0.881720 +vt 0.776596 0.870968 +vt 0.808511 0.881720 +vt 0.457447 0.870968 +vt 0.425532 0.881720 +vt 0.425532 0.870968 +vt 0.489362 0.870968 +vt 0.457447 0.881720 +vt 0.489362 0.881720 +vt 0.103745 0.863006 +vt 0.103745 0.760650 +vt 0.191446 0.811828 +vt 0.861702 1.000000 +vt 0.946809 0.946237 +vt 0.946809 1.000000 +vt 0.946809 0.860215 +vt 0.861702 0.806452 +vt 0.946809 0.806452 +vt 0.861702 0.946237 +vt 0.808511 0.860215 +vt 0.861702 0.860215 +vt 1.000000 0.860215 +vt 1.000000 0.946237 +vt 0.968085 0.387097 +vt 1.000000 0.580645 +vt 0.627660 0.623656 +vt 0.595745 0.580645 +vt 0.978723 0.000000 +vt 0.098980 0.596613 +vt 0.079628 0.616174 +vt 0.053191 0.623333 +vt 0.007403 0.596613 +vt 0.000319 0.569892 +vt 0.007403 0.543172 +vt 0.053191 0.516451 +vt 0.079628 0.523611 +vt 0.098980 0.543172 +vt 0.021277 0.258065 +vt 0.021277 0.086022 +vt 0.021277 0.516129 +vt 0.232820 0.491847 +vt 0.223579 0.456989 +vt 0.232820 0.422131 +vt 0.258066 0.396614 +vt 0.292553 0.387274 +vt 0.352286 0.422131 +vt 0.352286 0.491847 +vt 0.327040 0.517365 +vt 0.292553 0.526705 +vt 0.723040 0.720522 +vt 0.723040 0.763349 +vt 0.680669 0.800438 +vt 0.595927 0.800438 +vt 0.595927 0.683433 +vt 0.553556 0.763349 +vt 0.553556 0.720522 +vt 0.830152 0.720522 +vt 0.914894 0.677696 +vt 0.914894 0.806175 +vt 0.957264 0.683433 +vt 0.999636 0.720522 +vt 0.999636 0.763349 +vt 0.957264 0.800438 +vt 0.808511 0.946237 +vt 0.191489 0.870968 +vt 0.329787 1.000000 +vt 0.191489 0.752688 +vt 0.191489 0.634409 +vt 0.191489 0.989247 +vt 0.808511 0.870968 +vt 0.183613 0.841376 +vt 0.162212 0.863006 +vt 0.132979 0.870924 +vt 0.082345 0.841376 +vt 0.074512 0.811828 +vt 0.082345 0.782280 +vt 0.132979 0.752732 +vt 0.162212 0.760650 +vt 0.183613 0.782280 +vt 0.723040 0.720522 +vt 0.723040 0.763349 +vt 0.680669 0.800438 +vt 0.595927 0.800438 +vt 0.595927 0.683433 +vt 0.553556 0.763349 +vt 0.553556 0.720522 +vt 0.830152 0.720522 +vt 0.914894 0.677696 +vt 0.914894 0.806175 +vt 0.957264 0.683433 +vt 0.999636 0.720522 +vt 0.999636 0.763349 +vt 0.957264 0.800438 +vt 0.808511 0.870968 +vt 0.183613 0.841376 +vt 0.162212 0.863006 +vt 0.132979 0.870924 +vt 0.082345 0.841376 +vt 0.074512 0.811828 +vt 0.082345 0.782280 +vt 0.132979 0.752732 +vt 0.162212 0.760650 +vt 0.183613 0.782280 +vt 0.808511 0.946237 +vt 0.308511 0.258065 +vt 0.776596 0.225806 +vt 0.776596 0.258065 +vt 0.308511 0.032258 +vt 0.776596 -0.000000 +vt 0.776596 0.032258 +vt 0.308511 0.129032 +vt 0.776596 0.096774 +vt 0.776596 0.129032 +vt 0.308511 0.225806 +vt 0.776596 0.193548 +vt 0.308511 0.387097 +vt 0.776596 0.354839 +vt 0.776596 0.387097 +vt 0.308511 0.096774 +vt 0.776596 0.064516 +vt 0.308511 0.193548 +vt 0.776596 0.161290 +vt 0.308511 0.354839 +vt 0.776596 0.322581 +vt 0.308511 0.290323 +vt 0.776596 0.290323 +vt 0.308511 0.064516 +vt 0.308511 0.161290 +vt 0.308511 0.322581 +vt 0.861702 0.161290 +vt 0.861702 0.193548 +vt 0.861702 0.225806 +vt 0.861702 0.258065 +vt 0.861702 0.290323 +vt 0.861702 0.322581 +vt 0.861702 0.354839 +vt 0.861702 0.387097 +vt 0.861702 0.032258 +vt 0.861702 0.064516 +vt 0.861702 0.096774 +vt 0.861702 0.129032 +vt 0.861702 -0.000000 +vt 1.000000 0.225806 +vt 1.000000 0.387097 +vt 1.000000 0.096774 +vt 1.000000 0.193548 +vt 1.000000 0.354839 +vt 1.000000 0.290323 +vt 1.000000 0.064516 +vt 1.000000 0.161290 +vt 1.000000 0.322581 +vt 1.000000 0.258065 +vt 1.000000 0.032258 +vt 1.000000 0.129032 +vt 0.265957 0.129032 +vt 0.265957 0.193548 +vt 0.265957 0.225806 +vt 0.265957 0.258065 +vt 0.265957 0.290323 +vt 0.265957 0.322581 +vt 0.265957 0.354839 +vt 0.265957 0.000000 +vt 0.308511 -0.000000 +vt 0.265957 0.064516 +vt 0.265957 0.096774 +vt 0.223404 0.096774 +vt 0.223404 0.193548 +vt 0.265957 0.387097 +vt 0.223404 0.354839 +vt 0.223404 0.064516 +vt 0.223404 0.161290 +vt 0.265957 0.161290 +vt 0.223404 0.322581 +vt 0.223404 0.258065 +vt 0.223404 0.032258 +vt 0.265957 0.032258 +vt 0.223404 0.129032 +vt 0.223404 0.290323 +vt 0.223404 0.225806 +vt 0.223404 0.000000 +vt 0.138298 0.215054 +vt 0.223404 0.172043 +vt 0.223404 0.204301 +vt 0.138298 0.258065 +vt 0.223404 0.215054 +vt 0.223404 0.247312 +vt 0.223404 0.290323 +vt 0.223404 0.258065 +vt 0.223404 0.333333 +vt 0.138298 0.301075 +vt 0.223404 0.301075 +vt 0.138298 0.387097 +vt 0.223404 0.344086 +vt 0.223404 0.376344 +vt 0.223404 0.419355 +vt 0.223404 0.387097 +vt 0.138298 0.473118 +vt 0.223404 0.430108 +vt 0.223404 0.462366 +vt 0.138298 0.516129 +vt 0.223404 0.473118 +vt 0.223404 0.505376 +vt 0.138298 0.043011 +vt 0.138298 0.086022 +vt 0.223404 0.043011 +vt 0.223404 0.075269 +vt 0.223404 0.118280 +vt 0.223404 0.086022 +vt 0.138298 0.172043 +vt 0.223404 0.129032 +vt 0.223404 0.161290 +vt 0.138298 0.000000 +vt 0.138298 0.129032 +vt 0.138298 0.430108 +vt 0.138298 0.344086 +vt 0.000000 0.172043 +vt 0.000000 0.387097 +vt -0.000000 0.301075 +vt -0.000000 0.000000 +vt 0.000000 0.129032 +vt -0.000000 0.258065 +vt 0.000000 0.473118 +vt -0.000000 0.086022 +vt -0.000000 0.215054 +vt 0.000000 0.430108 +vt 0.000000 0.344086 +vt 0.000000 0.043011 +vt 0.446809 0.666667 +vt 0.553191 0.720430 +vt 0.446809 0.720430 +vt 0.829787 0.763441 +vt 0.723404 0.720430 +vt 0.829787 0.720430 +vt 0.829787 0.666667 +vt 0.723404 0.623656 +vt 0.829787 0.623656 +vt 0.829787 0.817204 +vt 0.723404 0.763441 +vt 0.553191 0.763441 +vt 0.723404 0.666667 +vt 0.446809 0.817204 +vt 0.553191 0.860215 +vt 0.446809 0.860215 +vt 0.446809 0.623656 +vt 0.553191 0.666667 +vt 0.829787 0.860215 +vt 0.723404 0.817204 +vt 0.446809 0.763441 +vt 0.553191 0.817204 +vt 0.617021 0.860215 +vt 0.585106 0.860215 +vt 0.521277 0.860215 +vt 0.489362 0.860215 +vt 0.744681 0.860215 +vt 0.712766 0.860215 +vt 0.648936 0.860215 +vt 0.553191 0.860215 +vt 0.776596 0.860215 +vt 0.457447 0.860215 +vt 0.425532 0.860215 +vt 0.680851 0.860215 +vt 0.808511 0.860215 +vt 0.521277 0.913979 +vt 0.744681 0.913979 +vt 0.425532 0.913979 +vt 0.648936 0.913979 +vt 0.553191 0.913979 +vt 0.776596 0.913979 +vt 0.457447 0.913979 +vt 0.680851 0.913979 +vt 0.585106 0.913979 +vt 0.489362 0.913979 +vt 0.712766 0.913979 +vt 0.617021 0.913979 +vt 0.446809 0.666667 +vt 0.553191 0.720430 +vt 0.446809 0.720430 +vt 0.829787 0.763441 +vt 0.723404 0.720430 +vt 0.829787 0.720430 +vt 0.829787 0.666667 +vt 0.723404 0.623656 +vt 0.829787 0.623656 +vt 0.829787 0.817204 +vt 0.723404 0.763441 +vt 0.553191 0.763441 +vt 0.723404 0.666667 +vt 0.446809 0.817204 +vt 0.553191 0.860215 +vt 0.446809 0.860215 +vt 0.446809 0.623656 +vt 0.553191 0.666667 +vt 0.829787 0.860215 +vt 0.723404 0.817204 +vt 0.446809 0.763441 +vt 0.553191 0.817204 +vt 0.617021 0.860215 +vt 0.585106 0.860215 +vt 0.521277 0.860215 +vt 0.489362 0.860215 +vt 0.744681 0.860215 +vt 0.712766 0.860215 +vt 0.648936 0.860215 +vt 0.553191 0.860215 +vt 0.776596 0.860215 +vt 0.457447 0.860215 +vt 0.425532 0.860215 +vt 0.680851 0.860215 +vt 0.808511 0.860215 +vt 0.521277 0.913979 +vt 0.744681 0.913979 +vt 0.425532 0.913979 +vt 0.648936 0.913979 +vt 0.553191 0.913979 +vt 0.776596 0.913979 +vt 0.457447 0.913979 +vt 0.680851 0.913979 +vt 0.585106 0.913979 +vt 0.489362 0.913979 +vt 0.712766 0.913979 +vt 0.617021 0.913979 +vt 1.000000 -0.000000 +vt 0.223404 0.387097 +vt -0.000000 0.516129 +vt 0.553191 0.623656 +vt 0.723404 0.860215 +vt 0.808511 0.913979 +vt 0.553191 0.623656 +vt 0.723404 0.860215 +vt 0.808511 0.913979 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8944 -0.4472 0.0000 +vn -0.8944 -0.4472 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.5000 -0.8660 +vn -0.1240 0.4961 0.8593 +vn -0.1240 0.8593 0.4961 +vn -0.1240 0.9923 0.0000 +vn -0.1240 0.8593 -0.4961 +vn -0.1240 0.4961 -0.8593 +vn -0.1240 -0.0000 -0.9923 +vn -0.1240 -0.4961 -0.8593 +vn -0.1240 -0.8593 -0.4961 +vn -0.1240 -0.9923 0.0000 +vn -0.1240 -0.8593 0.4961 +vn -0.1240 -0.4961 0.8593 +vn -0.1240 0.0000 0.9923 +vn 0.2425 0.8402 0.4851 +vn 0.2425 0.4851 0.8402 +vn 0.2425 0.9701 0.0000 +vn 0.2425 0.8402 -0.4851 +vn 0.2425 0.4851 -0.8402 +vn 0.2425 -0.0000 -0.9701 +vn 0.2425 -0.4851 -0.8402 +vn 0.2425 -0.8402 -0.4851 +vn 0.2425 -0.9701 0.0000 +vn 0.2425 -0.8402 0.4851 +vn 0.2425 -0.4851 0.8402 +vn 0.2425 -0.0000 0.9701 +vn 0.3511 0.8109 0.4682 +vn 0.3511 0.4682 0.8109 +vn 0.3511 0.9363 -0.0000 +vn 0.3511 0.8109 -0.4682 +vn 0.3511 0.4682 -0.8109 +vn 0.3511 0.0000 -0.9363 +vn 0.3511 -0.4682 -0.8109 +vn 0.3511 -0.8109 -0.4682 +vn 0.3511 -0.9363 -0.0000 +vn 0.3511 -0.8109 0.4682 +vn 0.3511 -0.4682 0.8109 +vn 0.3511 0.0000 0.9363 +vn 0.0000 -0.9117 0.4109 +vn 0.0000 -0.4155 0.9096 +vn 0.0000 0.4155 -0.9096 +vn 0.0000 -0.4155 -0.9096 +vn 0.0000 -0.9117 -0.4109 +vn 0.0000 0.9117 -0.4109 +vn 0.0000 0.4155 0.9096 +vn 0.0000 0.9117 0.4109 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +s off +f 1073/2000/94 1072/2001/94 1071/2002/94 +f 1077/2003/95 1075/2004/95 1076/2005/95 +f 1074/2006/96 1077/2003/96 1072/2007/96 +f 1071/2008/97 1075/2004/97 1073/2009/97 +f 1073/2010/98 1078/2011/98 1074/2012/98 +f 1072/2001/99 1076/2005/99 1071/2002/99 +f 1080/2013/100 1081/2014/100 1079/2015/100 +f 1082/2016/98 1085/2017/98 1081/2018/98 +f 1079/2015/99 1084/2019/99 1080/2020/99 +f 1085/2021/101 1084/2022/101 1083/2023/101 +f 1126/2024/96 1139/2025/96 1138/2026/96 +f 1125/2027/96 1138/2026/96 1137/2028/96 +f 1124/2029/96 1137/2028/96 1136/2030/96 +f 1123/2031/96 1136/2030/96 1135/2032/96 +f 1123/2031/96 1146/2033/96 1134/2034/96 +f 1134/2034/96 1145/2035/96 1133/2036/96 +f 1133/2036/96 1144/2037/96 1132/2038/96 +f 1132/2039/96 1143/2040/96 1131/2041/96 +f 1131/2041/96 1142/2042/96 1130/2043/96 +f 1130/2043/96 1141/2044/96 1129/2045/96 +f 1129/2045/96 1140/2046/96 1128/2047/96 +f 1127/2048/96 1140/2046/96 1139/2025/96 +f 1151/2049/96 1155/2050/96 1147/2051/96 +f 1198/2052/97 1211/2053/97 1199/2054/97 +f 1211/2053/97 1200/2055/97 1199/2054/97 +f 1212/2056/97 1201/2057/97 1200/2055/97 +f 1213/2058/97 1202/2059/97 1201/2057/97 +f 1202/2059/97 1215/2060/97 1203/2061/97 +f 1203/2061/97 1216/2062/97 1204/2063/97 +f 1204/2064/97 1217/2065/97 1205/2066/97 +f 1205/2066/97 1218/2067/97 1206/2068/97 +f 1206/2068/97 1207/2069/97 1195/2070/97 +f 1195/2070/97 1208/2071/97 1196/2072/97 +f 1196/2072/97 1209/2073/97 1197/2074/97 +f 1209/2073/97 1198/2052/97 1197/2074/97 +f 1227/2075/97 1225/2076/97 1221/2077/97 +f 1244/2078/96 1245/2079/96 1248/2080/96 +f 1239/2081/97 1240/2082/97 1234/2083/97 +f 1251/2084/99 1257/2085/99 1253/2086/99 +f 1258/2087/98 1252/2088/98 1254/2089/98 +f 1255/2090/97 1252/2091/97 1256/2092/97 +f 1257/2085/94 1256/2092/94 1258/2087/94 +f 1257/2085/96 1254/2093/96 1253/2094/96 +f 1261/2095/102 1270/2096/102 1262/2097/102 +f 1262/2097/98 1265/2098/98 1261/2095/98 +f 1266/2099/96 1263/2100/96 1265/2101/96 +f 1264/2102/99 1259/2103/99 1263/2104/99 +f 1265/2098/94 1259/2105/94 1261/2095/94 +f 1262/2097/95 1264/2102/95 1266/2099/95 +f 1269/2106/97 1267/2107/97 1268/2108/97 +f 1260/2109/103 1268/2110/103 1259/2103/103 +f 1262/2097/104 1269/2106/104 1260/2109/104 +f 1259/2105/105 1267/2111/105 1261/2095/105 +f 1287/2112/94 1298/2113/94 1286/2114/94 +f 1288/2115/94 1299/2116/94 1287/2112/94 +f 1289/2117/94 1300/2118/94 1288/2115/94 +f 1290/2119/94 1301/2120/94 1289/2117/94 +f 1290/2119/94 1303/2121/94 1302/2122/94 +f 1291/2123/94 1304/2124/94 1303/2121/94 +f 1292/2125/94 1305/2126/94 1304/2124/94 +f 1293/2127/94 1306/2128/94 1305/2126/94 +f 1294/2129/94 1295/2130/94 1306/2128/94 +f 1284/2131/94 1295/2132/94 1283/2133/94 +f 1285/2134/94 1296/2135/94 1284/2131/94 +f 1286/2114/94 1297/2136/94 1285/2134/94 +f 1311/2137/95 1315/2138/95 1307/2139/95 +f 1332/2140/96 1333/2141/96 1336/2142/96 +f 1327/2143/97 1328/2144/97 1322/2145/97 +f 1355/2146/98 1366/2147/98 1354/2148/98 +f 1356/2149/98 1367/2150/98 1355/2146/98 +f 1357/2151/98 1368/2152/98 1356/2149/98 +f 1358/2153/98 1369/2154/98 1357/2151/98 +f 1358/2153/98 1371/2155/98 1370/2156/98 +f 1360/2157/98 1371/2155/98 1359/2158/98 +f 1361/2159/98 1372/2160/98 1360/2157/98 +f 1361/2159/98 1374/2161/98 1373/2162/98 +f 1362/2163/98 1363/2164/98 1374/2161/98 +f 1352/2165/98 1363/2166/98 1351/2167/98 +f 1353/2168/98 1364/2169/98 1352/2165/98 +f 1354/2148/98 1365/2170/98 1353/2168/98 +f 1379/2171/99 1383/2172/99 1375/2173/99 +f 1387/2174/99 1393/2175/99 1389/2176/99 +f 1394/2177/98 1388/2178/98 1390/2179/98 +f 1391/2180/97 1388/2181/97 1392/2182/97 +f 1393/2175/94 1392/2182/94 1394/2177/94 +f 1393/2175/96 1390/2183/96 1389/2184/96 +f 1073/2000/94 1074/2185/94 1072/2001/94 +f 1077/2003/95 1078/2011/95 1075/2004/95 +f 1074/2006/96 1078/2011/96 1077/2003/96 +f 1071/2008/97 1076/2005/97 1075/2004/97 +f 1073/2010/98 1075/2004/98 1078/2011/98 +f 1072/2001/99 1077/2003/99 1076/2005/99 +f 1080/2013/100 1082/2186/100 1081/2014/100 +f 1082/2016/98 1086/2187/98 1085/2017/98 +f 1079/2015/99 1083/2023/99 1084/2019/99 +f 1085/2021/101 1086/2188/101 1084/2022/101 +f 1126/2024/96 1127/2048/96 1139/2025/96 +f 1125/2027/96 1126/2024/96 1138/2026/96 +f 1124/2029/96 1125/2027/96 1137/2028/96 +f 1123/2031/96 1124/2029/96 1136/2030/96 +f 1123/2031/96 1135/2032/96 1146/2033/96 +f 1134/2034/96 1146/2033/96 1145/2035/96 +f 1133/2036/96 1145/2035/96 1144/2037/96 +f 1132/2039/96 1144/2189/96 1143/2040/96 +f 1131/2041/96 1143/2040/96 1142/2042/96 +f 1130/2043/96 1142/2042/96 1141/2044/96 +f 1129/2045/96 1141/2044/96 1140/2046/96 +f 1127/2048/96 1128/2047/96 1140/2046/96 +f 1147/2051/96 1148/2190/96 1149/2191/96 +f 1149/2191/96 1150/2192/96 1147/2051/96 +f 1150/2192/96 1151/2049/96 1147/2051/96 +f 1151/2049/96 1152/2193/96 1153/2194/96 +f 1153/2194/96 1154/2195/96 1155/2050/96 +f 1155/2050/96 1156/2196/96 1157/2197/96 +f 1157/2197/96 1158/2198/96 1155/2050/96 +f 1158/2198/96 1147/2051/96 1155/2050/96 +f 1151/2049/96 1153/2194/96 1155/2050/96 +f 1198/2052/97 1210/2199/97 1211/2053/97 +f 1211/2053/97 1212/2056/97 1200/2055/97 +f 1212/2056/97 1213/2058/97 1201/2057/97 +f 1213/2058/97 1214/2200/97 1202/2059/97 +f 1202/2059/97 1214/2200/97 1215/2060/97 +f 1203/2061/97 1215/2060/97 1216/2062/97 +f 1204/2064/97 1216/2201/97 1217/2065/97 +f 1205/2066/97 1217/2065/97 1218/2067/97 +f 1206/2068/97 1218/2067/97 1207/2069/97 +f 1195/2070/97 1207/2069/97 1208/2071/97 +f 1196/2072/97 1208/2071/97 1209/2073/97 +f 1209/2073/97 1210/2199/97 1198/2052/97 +f 1221/2077/97 1220/2202/97 1219/2203/97 +f 1219/2203/97 1230/2204/97 1221/2077/97 +f 1230/2204/97 1229/2205/97 1221/2077/97 +f 1229/2205/97 1228/2206/97 1227/2075/97 +f 1227/2075/97 1226/2207/97 1225/2076/97 +f 1225/2076/97 1224/2208/97 1223/2209/97 +f 1223/2209/97 1222/2210/97 1225/2076/97 +f 1222/2210/97 1221/2077/97 1225/2076/97 +f 1229/2205/97 1227/2075/97 1221/2077/97 +f 1245/2079/96 1241/2211/96 1250/2212/96 +f 1250/2212/96 1249/2213/96 1245/2079/96 +f 1249/2213/96 1248/2080/96 1245/2079/96 +f 1248/2080/96 1247/2214/96 1243/2215/96 +f 1247/2214/96 1246/2216/96 1243/2215/96 +f 1246/2216/96 1242/2217/96 1243/2215/96 +f 1243/2215/96 1244/2078/96 1248/2080/96 +f 1240/2082/97 1238/2218/97 1234/2083/97 +f 1234/2083/97 1235/2219/97 1231/2220/97 +f 1235/2219/97 1236/2221/97 1231/2220/97 +f 1236/2221/97 1237/2222/97 1233/2223/97 +f 1233/2223/97 1232/2224/97 1236/2221/97 +f 1232/2224/97 1231/2220/97 1236/2221/97 +f 1231/2220/97 1239/2081/97 1234/2083/97 +f 1251/2084/99 1255/2090/99 1257/2085/99 +f 1258/2087/98 1256/2092/98 1252/2088/98 +f 1255/2090/97 1251/2225/97 1252/2091/97 +f 1257/2085/94 1255/2090/94 1256/2092/94 +f 1257/2085/96 1258/2087/96 1254/2093/96 +f 1261/2095/102 1267/2226/102 1270/2096/102 +f 1262/2097/98 1266/2099/98 1265/2098/98 +f 1266/2099/96 1264/2102/96 1263/2100/96 +f 1264/2102/99 1260/2109/99 1259/2103/99 +f 1265/2098/94 1263/2227/94 1259/2105/94 +f 1262/2097/95 1260/2109/95 1264/2102/95 +f 1269/2106/97 1270/2228/97 1267/2107/97 +f 1260/2109/103 1269/2229/103 1268/2110/103 +f 1262/2097/104 1270/2228/104 1269/2106/104 +f 1259/2105/105 1268/2230/105 1267/2111/105 +f 1287/2112/94 1299/2116/94 1298/2113/94 +f 1288/2115/94 1300/2118/94 1299/2116/94 +f 1289/2117/94 1301/2120/94 1300/2118/94 +f 1290/2119/94 1302/2122/94 1301/2120/94 +f 1290/2119/94 1291/2123/94 1303/2121/94 +f 1291/2123/94 1292/2125/94 1304/2124/94 +f 1292/2125/94 1293/2127/94 1305/2126/94 +f 1293/2127/94 1294/2129/94 1306/2128/94 +f 1294/2129/94 1283/2231/94 1295/2130/94 +f 1284/2131/94 1296/2135/94 1295/2132/94 +f 1285/2134/94 1297/2136/94 1296/2135/94 +f 1286/2114/94 1298/2113/94 1297/2136/94 +f 1307/2139/95 1308/2232/95 1311/2137/95 +f 1308/2232/95 1309/2233/95 1311/2137/95 +f 1309/2233/95 1310/2234/95 1311/2137/95 +f 1311/2137/95 1312/2235/95 1313/2236/95 +f 1313/2236/95 1314/2237/95 1315/2138/95 +f 1315/2138/95 1316/2238/95 1317/2239/95 +f 1317/2239/95 1318/2240/95 1315/2138/95 +f 1318/2240/95 1307/2139/95 1315/2138/95 +f 1311/2137/95 1313/2236/95 1315/2138/95 +f 1333/2141/96 1329/2241/96 1338/2242/96 +f 1338/2242/96 1337/2243/96 1333/2141/96 +f 1337/2243/96 1336/2142/96 1333/2141/96 +f 1336/2142/96 1335/2244/96 1331/2245/96 +f 1335/2244/96 1334/2246/96 1331/2245/96 +f 1334/2246/96 1330/2247/96 1331/2245/96 +f 1331/2245/96 1332/2140/96 1336/2142/96 +f 1328/2144/97 1326/2248/97 1322/2145/97 +f 1322/2145/97 1323/2249/97 1319/2250/97 +f 1323/2249/97 1324/2251/97 1319/2250/97 +f 1324/2251/97 1325/2252/97 1321/2253/97 +f 1321/2253/97 1320/2254/97 1324/2251/97 +f 1320/2254/97 1319/2250/97 1324/2251/97 +f 1319/2250/97 1327/2143/97 1322/2145/97 +f 1355/2146/98 1367/2150/98 1366/2147/98 +f 1356/2149/98 1368/2152/98 1367/2150/98 +f 1357/2151/98 1369/2154/98 1368/2152/98 +f 1358/2153/98 1370/2156/98 1369/2154/98 +f 1358/2153/98 1359/2158/98 1371/2155/98 +f 1360/2157/98 1372/2160/98 1371/2155/98 +f 1361/2159/98 1373/2162/98 1372/2160/98 +f 1361/2159/98 1362/2163/98 1374/2161/98 +f 1362/2163/98 1351/2255/98 1363/2164/98 +f 1352/2165/98 1364/2169/98 1363/2166/98 +f 1353/2168/98 1365/2170/98 1364/2169/98 +f 1354/2148/98 1366/2147/98 1365/2170/98 +f 1375/2173/99 1376/2256/99 1377/2257/99 +f 1377/2257/99 1378/2258/99 1379/2171/99 +f 1379/2171/99 1380/2259/99 1383/2172/99 +f 1380/2259/99 1381/2260/99 1383/2172/99 +f 1381/2260/99 1382/2261/99 1383/2172/99 +f 1383/2172/99 1384/2262/99 1385/2263/99 +f 1385/2263/99 1386/2264/99 1383/2172/99 +f 1386/2264/99 1375/2173/99 1383/2172/99 +f 1375/2173/99 1377/2257/99 1379/2171/99 +f 1387/2174/99 1391/2180/99 1393/2175/99 +f 1394/2177/98 1392/2182/98 1388/2178/98 +f 1391/2180/97 1387/2265/97 1388/2181/97 +f 1393/2175/94 1391/2180/94 1392/2182/94 +f 1393/2175/96 1394/2177/96 1390/2183/96 +s 1 +f 1100/2266/106 1089/2267/107 1088/2268/106 +f 1107/2269/108 1096/2270/94 1095/2271/108 +f 1104/2272/109 1093/2273/99 1092/2274/109 +f 1101/2275/107 1090/2276/95 1089/2267/107 +f 1108/2277/94 1097/2278/110 1096/2279/94 +f 1105/2280/99 1094/2281/111 1093/2273/99 +f 1102/2282/95 1091/2283/112 1090/2276/95 +f 1109/2284/110 1098/2285/113 1097/2278/110 +f 1099/2286/98 1088/2268/106 1087/2287/98 +f 1106/2288/111 1095/2271/108 1094/2281/111 +f 1103/2289/112 1092/2274/109 1091/2283/112 +f 1110/2290/113 1087/2287/98 1098/2285/113 +f 1092/2274/114 1115/2291/115 1091/2283/115 +f 1091/2283/115 1114/2292/116 1090/2276/116 +f 1090/2276/116 1113/2293/117 1089/2267/117 +f 1089/2267/117 1112/2294/118 1088/2268/118 +f 1088/2268/118 1111/2295/119 1087/2287/119 +f 1087/2287/119 1122/2296/120 1098/2285/120 +f 1097/2278/121 1122/2296/120 1121/2297/121 +f 1096/2279/122 1121/2297/121 1120/2298/122 +f 1096/2270/122 1119/2299/123 1095/2271/123 +f 1095/2271/123 1118/2300/124 1094/2281/124 +f 1094/2281/124 1117/2301/125 1093/2273/125 +f 1092/2274/114 1117/2301/125 1116/2302/114 +f 1118/2300/111 1129/2045/99 1117/2301/99 +f 1115/2291/112 1126/2024/95 1114/2292/95 +f 1122/2296/113 1133/2036/110 1121/2297/110 +f 1112/2294/106 1123/2031/98 1111/2295/98 +f 1119/2299/108 1130/2043/111 1118/2300/111 +f 1116/2302/109 1127/2048/112 1115/2291/112 +f 1111/2295/98 1134/2034/113 1122/2296/113 +f 1113/2293/107 1124/2029/106 1112/2294/106 +f 1120/2303/94 1131/2041/108 1119/2299/108 +f 1117/2301/99 1128/2047/109 1116/2302/109 +f 1114/2292/95 1125/2027/107 1113/2293/107 +f 1121/2297/110 1132/2038/94 1120/2298/94 +f 1138/2026/94 1149/2304/108 1137/2028/108 +f 1145/2035/112 1156/2305/95 1144/2037/95 +f 1142/2042/106 1153/2306/98 1141/2044/98 +f 1139/2025/110 1150/2307/94 1138/2026/94 +f 1146/2033/109 1157/2308/112 1145/2035/112 +f 1136/2030/111 1147/2309/99 1135/2032/99 +f 1143/2040/107 1154/2310/106 1142/2042/106 +f 1140/2046/113 1151/2311/110 1139/2025/110 +f 1135/2032/99 1158/2312/109 1146/2033/109 +f 1137/2028/108 1148/2313/111 1136/2030/111 +f 1144/2189/95 1155/2314/107 1143/2040/107 +f 1141/2044/98 1152/2315/113 1140/2046/113 +f 1103/2289/126 1164/2316/127 1104/2272/127 +f 1162/2317/128 1103/2289/126 1102/2282/128 +f 1161/2318/129 1102/2282/128 1101/2275/129 +f 1100/2266/130 1161/2318/129 1101/2275/129 +f 1099/2286/131 1160/2319/130 1100/2266/130 +f 1110/2290/132 1159/2320/131 1099/2286/131 +f 1109/2284/133 1170/2321/132 1110/2290/132 +f 1108/2277/134 1169/2322/133 1109/2284/133 +f 1107/2269/135 1168/2323/134 1108/2324/134 +f 1166/2325/136 1107/2269/135 1106/2288/136 +f 1165/2326/137 1106/2288/136 1105/2280/137 +f 1164/2316/127 1105/2280/137 1104/2272/127 +f 1164/2316/109 1177/2327/99 1165/2326/99 +f 1161/2318/107 1174/2328/95 1162/2317/95 +f 1168/2329/94 1181/2330/110 1169/2322/110 +f 1165/2326/99 1178/2331/111 1166/2325/111 +f 1162/2317/95 1175/2332/112 1163/2333/112 +f 1169/2322/110 1182/2334/113 1170/2321/113 +f 1159/2320/98 1172/2335/106 1160/2319/106 +f 1166/2325/111 1179/2336/108 1167/2337/108 +f 1163/2333/112 1176/2338/109 1164/2316/109 +f 1170/2321/113 1171/2339/98 1159/2320/98 +f 1160/2319/106 1173/2340/107 1161/2318/107 +f 1167/2337/108 1180/2341/94 1168/2323/94 +f 1187/2342/138 1176/2343/139 1175/2344/138 +f 1186/2345/140 1175/2346/138 1174/2347/140 +f 1173/2348/141 1186/2345/140 1174/2349/140 +f 1172/2350/142 1185/2351/141 1173/2352/141 +f 1183/2353/143 1172/2354/142 1171/2355/143 +f 1182/2356/144 1183/2353/143 1171/2357/143 +f 1193/2358/145 1182/2359/144 1181/2360/145 +f 1192/2361/146 1181/2362/145 1180/2363/146 +f 1191/2364/147 1180/2341/146 1179/2336/147 +f 1190/2365/148 1179/2366/147 1178/2367/148 +f 1177/2368/149 1190/2365/148 1178/2369/148 +f 1188/2370/139 1177/2371/149 1176/2372/139 +f 1191/2364/108 1204/2063/94 1192/2373/94 +f 1188/2370/109 1201/2057/99 1189/2374/99 +f 1185/2351/107 1198/2052/95 1186/2345/95 +f 1192/2361/94 1205/2066/110 1193/2358/110 +f 1189/2374/99 1202/2059/111 1190/2365/111 +f 1186/2345/95 1199/2054/112 1187/2342/112 +f 1193/2358/110 1206/2068/113 1194/2375/113 +f 1183/2353/98 1196/2072/106 1184/2376/106 +f 1190/2365/111 1203/2061/108 1191/2364/108 +f 1187/2342/112 1200/2055/109 1188/2370/109 +f 1194/2375/113 1195/2070/98 1183/2353/98 +f 1184/2376/106 1197/2074/107 1185/2351/107 +f 1211/2053/110 1224/2377/113 1212/2056/113 +f 1218/2067/109 1219/2378/99 1207/2069/99 +f 1208/2071/111 1221/2379/108 1209/2073/108 +f 1215/2060/107 1228/2380/95 1216/2062/95 +f 1212/2056/113 1225/2381/98 1213/2058/98 +f 1209/2073/108 1222/2382/94 1210/2199/94 +f 1216/2201/95 1229/2383/112 1217/2065/112 +f 1213/2058/98 1226/2384/106 1214/2200/106 +f 1210/2199/94 1223/2385/110 1211/2053/110 +f 1217/2065/112 1230/2386/109 1218/2067/109 +f 1207/2069/99 1220/2387/111 1208/2071/111 +f 1214/2200/106 1227/2388/107 1215/2060/107 +f 1236/2389/150 1242/2390/151 1237/2391/151 +f 1240/2392/152 1241/2393/153 1238/2394/153 +f 1234/2395/154 1244/2396/94 1235/2397/94 +f 1239/2398/155 1250/2399/152 1240/2392/152 +f 1246/2400/156 1237/2391/151 1242/2390/151 +f 1238/2394/153 1245/2401/154 1234/2395/154 +f 1232/2402/157 1248/2403/95 1231/2404/95 +f 1235/2405/94 1243/2406/150 1236/2389/150 +f 1231/2407/95 1249/2408/155 1239/2398/155 +f 1233/2409/156 1247/2410/157 1232/2402/157 +f 1277/2411/99 1288/2115/158 1276/2412/158 +f 1274/2413/97 1285/2134/159 1273/2414/159 +f 1281/2415/160 1292/2125/96 1280/2416/96 +f 1278/2417/161 1289/2117/99 1277/2411/99 +f 1275/2418/162 1286/2114/97 1274/2413/97 +f 1282/2419/163 1293/2127/160 1281/2415/160 +f 1272/2420/164 1283/2133/98 1271/2421/98 +f 1279/2422/165 1290/2119/161 1278/2417/161 +f 1276/2412/158 1287/2112/162 1275/2418/162 +f 1271/2423/98 1294/2129/163 1282/2419/163 +f 1273/2414/159 1284/2131/164 1272/2420/164 +f 1280/2416/96 1291/2123/165 1279/2422/165 +f 1299/2116/162 1310/2424/97 1298/2113/97 +f 1306/2128/163 1317/2425/160 1305/2126/160 +f 1296/2135/164 1307/2426/98 1295/2132/98 +f 1303/2121/165 1314/2427/161 1302/2122/161 +f 1300/2118/158 1311/2428/162 1299/2116/162 +f 1295/2130/98 1318/2429/163 1306/2128/163 +f 1297/2136/159 1308/2430/164 1296/2135/164 +f 1304/2124/96 1315/2431/165 1303/2121/165 +f 1301/2120/99 1312/2432/158 1300/2118/158 +f 1298/2113/97 1309/2433/159 1297/2136/159 +f 1305/2126/160 1316/2434/96 1304/2124/96 +f 1302/2122/161 1313/2435/99 1301/2120/99 +f 1324/2436/150 1330/2437/151 1325/2438/151 +f 1328/2439/152 1329/2440/153 1326/2441/153 +f 1322/2442/154 1332/2443/94 1323/2444/94 +f 1327/2445/155 1338/2446/152 1328/2439/152 +f 1334/2447/156 1325/2438/151 1330/2437/151 +f 1326/2441/153 1333/2448/154 1322/2442/154 +f 1320/2449/157 1336/2450/95 1319/2451/95 +f 1323/2452/94 1331/2453/150 1324/2436/150 +f 1319/2454/95 1337/2455/155 1327/2445/155 +f 1321/2456/156 1335/2457/157 1320/2449/157 +f 1345/2458/94 1356/2149/166 1344/2459/166 +f 1342/2460/97 1353/2168/167 1341/2461/167 +f 1349/2462/168 1360/2157/96 1348/2463/96 +f 1346/2464/169 1357/2151/94 1345/2458/94 +f 1343/2465/170 1354/2148/97 1342/2460/97 +f 1350/2466/171 1361/2159/168 1349/2462/168 +f 1340/2467/172 1351/2167/95 1339/2468/95 +f 1347/2469/173 1358/2153/169 1346/2464/169 +f 1344/2459/166 1355/2146/170 1343/2465/170 +f 1339/2470/95 1362/2163/171 1350/2466/171 +f 1341/2461/167 1352/2165/172 1340/2467/172 +f 1348/2463/96 1359/2158/173 1347/2469/173 +f 1367/2150/170 1378/2471/97 1366/2147/97 +f 1374/2161/171 1385/2472/168 1373/2162/168 +f 1364/2169/172 1375/2473/95 1363/2166/95 +f 1371/2155/173 1382/2474/169 1370/2156/169 +f 1368/2152/166 1379/2475/170 1367/2150/170 +f 1363/2164/95 1386/2476/171 1374/2161/171 +f 1365/2170/167 1376/2477/172 1364/2169/172 +f 1372/2160/96 1383/2478/173 1371/2155/173 +f 1369/2154/94 1380/2479/166 1368/2152/166 +f 1366/2147/97 1377/2480/167 1365/2170/167 +f 1373/2162/168 1384/2481/96 1372/2160/96 +f 1370/2156/169 1381/2482/94 1369/2154/94 +f 1100/2266/106 1101/2275/107 1089/2267/107 +f 1107/2269/108 1108/2324/94 1096/2270/94 +f 1104/2272/109 1105/2280/99 1093/2273/99 +f 1101/2275/107 1102/2282/95 1090/2276/95 +f 1108/2277/94 1109/2284/110 1097/2278/110 +f 1105/2280/99 1106/2288/111 1094/2281/111 +f 1102/2282/95 1103/2289/112 1091/2283/112 +f 1109/2284/110 1110/2290/113 1098/2285/113 +f 1099/2286/98 1100/2266/106 1088/2268/106 +f 1106/2288/111 1107/2269/108 1095/2271/108 +f 1103/2289/112 1104/2272/109 1092/2274/109 +f 1110/2290/113 1099/2286/98 1087/2287/98 +f 1092/2274/114 1116/2302/114 1115/2291/115 +f 1091/2283/115 1115/2291/115 1114/2292/116 +f 1090/2276/116 1114/2292/116 1113/2293/117 +f 1089/2267/117 1113/2293/117 1112/2294/118 +f 1088/2268/118 1112/2294/118 1111/2295/119 +f 1087/2287/119 1111/2295/119 1122/2296/120 +f 1097/2278/121 1098/2285/120 1122/2296/120 +f 1096/2279/122 1097/2278/121 1121/2297/121 +f 1096/2270/122 1120/2303/122 1119/2299/123 +f 1095/2271/123 1119/2299/123 1118/2300/124 +f 1094/2281/124 1118/2300/124 1117/2301/125 +f 1092/2274/114 1093/2273/125 1117/2301/125 +f 1118/2300/111 1130/2043/111 1129/2045/99 +f 1115/2291/112 1127/2048/112 1126/2024/95 +f 1122/2296/113 1134/2034/113 1133/2036/110 +f 1112/2294/106 1124/2029/106 1123/2031/98 +f 1119/2299/108 1131/2041/108 1130/2043/111 +f 1116/2302/109 1128/2047/109 1127/2048/112 +f 1111/2295/98 1123/2031/98 1134/2034/113 +f 1113/2293/107 1125/2027/107 1124/2029/106 +f 1120/2303/94 1132/2039/94 1131/2041/108 +f 1117/2301/99 1129/2045/99 1128/2047/109 +f 1114/2292/95 1126/2024/95 1125/2027/107 +f 1121/2297/110 1133/2036/110 1132/2038/94 +f 1138/2026/94 1150/2307/94 1149/2304/108 +f 1145/2035/112 1157/2308/112 1156/2305/95 +f 1142/2042/106 1154/2310/106 1153/2306/98 +f 1139/2025/110 1151/2311/110 1150/2307/94 +f 1146/2033/109 1158/2312/109 1157/2308/112 +f 1136/2030/111 1148/2313/111 1147/2309/99 +f 1143/2040/107 1155/2314/107 1154/2310/106 +f 1140/2046/113 1152/2315/113 1151/2311/110 +f 1135/2032/99 1147/2309/99 1158/2312/109 +f 1137/2028/108 1149/2304/108 1148/2313/111 +f 1144/2189/95 1156/2483/95 1155/2314/107 +f 1141/2044/98 1153/2306/98 1152/2315/113 +f 1103/2289/126 1163/2333/126 1164/2316/127 +f 1162/2317/128 1163/2333/126 1103/2289/126 +f 1161/2318/129 1162/2317/128 1102/2282/128 +f 1100/2266/130 1160/2319/130 1161/2318/129 +f 1099/2286/131 1159/2320/131 1160/2319/130 +f 1110/2290/132 1170/2321/132 1159/2320/131 +f 1109/2284/133 1169/2322/133 1170/2321/132 +f 1108/2277/134 1168/2329/134 1169/2322/133 +f 1107/2269/135 1167/2337/135 1168/2323/134 +f 1166/2325/136 1167/2337/135 1107/2269/135 +f 1165/2326/137 1166/2325/136 1106/2288/136 +f 1164/2316/127 1165/2326/137 1105/2280/137 +f 1164/2316/109 1176/2338/109 1177/2327/99 +f 1161/2318/107 1173/2340/107 1174/2328/95 +f 1168/2329/94 1180/2484/94 1181/2330/110 +f 1165/2326/99 1177/2327/99 1178/2331/111 +f 1162/2317/95 1174/2328/95 1175/2332/112 +f 1169/2322/110 1181/2330/110 1182/2334/113 +f 1159/2320/98 1171/2339/98 1172/2335/106 +f 1166/2325/111 1178/2331/111 1179/2336/108 +f 1163/2333/112 1175/2332/112 1176/2338/109 +f 1170/2321/113 1182/2334/113 1171/2339/98 +f 1160/2319/106 1172/2335/106 1173/2340/107 +f 1167/2337/108 1179/2336/108 1180/2341/94 +f 1187/2342/138 1188/2370/139 1176/2343/139 +f 1186/2345/140 1187/2342/138 1175/2346/138 +f 1173/2348/141 1185/2351/141 1186/2345/140 +f 1172/2350/142 1184/2376/142 1185/2351/141 +f 1183/2353/143 1184/2376/142 1172/2354/142 +f 1182/2356/144 1194/2375/144 1183/2353/143 +f 1193/2358/145 1194/2375/144 1182/2359/144 +f 1192/2361/146 1193/2358/145 1181/2362/145 +f 1191/2364/147 1192/2373/146 1180/2341/146 +f 1190/2365/148 1191/2364/147 1179/2366/147 +f 1177/2368/149 1189/2374/149 1190/2365/148 +f 1188/2370/139 1189/2374/149 1177/2371/149 +f 1191/2364/108 1203/2061/108 1204/2063/94 +f 1188/2370/109 1200/2055/109 1201/2057/99 +f 1185/2351/107 1197/2074/107 1198/2052/95 +f 1192/2361/94 1204/2064/94 1205/2066/110 +f 1189/2374/99 1201/2057/99 1202/2059/111 +f 1186/2345/95 1198/2052/95 1199/2054/112 +f 1193/2358/110 1205/2066/110 1206/2068/113 +f 1183/2353/98 1195/2070/98 1196/2072/106 +f 1190/2365/111 1202/2059/111 1203/2061/108 +f 1187/2342/112 1199/2054/112 1200/2055/109 +f 1194/2375/113 1206/2068/113 1195/2070/98 +f 1184/2376/106 1196/2072/106 1197/2074/107 +f 1211/2053/110 1223/2385/110 1224/2377/113 +f 1218/2067/109 1230/2386/109 1219/2378/99 +f 1208/2071/111 1220/2387/111 1221/2379/108 +f 1215/2060/107 1227/2388/107 1228/2380/95 +f 1212/2056/113 1224/2377/113 1225/2381/98 +f 1209/2073/108 1221/2379/108 1222/2382/94 +f 1216/2201/95 1228/2485/95 1229/2383/112 +f 1213/2058/98 1225/2381/98 1226/2384/106 +f 1210/2199/94 1222/2382/94 1223/2385/110 +f 1217/2065/112 1229/2383/112 1230/2386/109 +f 1207/2069/99 1219/2378/99 1220/2387/111 +f 1214/2200/106 1226/2384/106 1227/2388/107 +f 1236/2389/150 1243/2406/150 1242/2390/151 +f 1240/2392/152 1250/2399/152 1241/2393/153 +f 1234/2395/154 1245/2401/154 1244/2396/94 +f 1239/2398/155 1249/2408/155 1250/2399/152 +f 1246/2400/156 1233/2409/156 1237/2391/151 +f 1238/2394/153 1241/2393/153 1245/2401/154 +f 1232/2402/157 1247/2410/157 1248/2403/95 +f 1235/2405/94 1244/2486/94 1243/2406/150 +f 1231/2407/95 1248/2487/95 1249/2408/155 +f 1233/2409/156 1246/2400/156 1247/2410/157 +f 1277/2411/99 1289/2117/99 1288/2115/158 +f 1274/2413/97 1286/2114/97 1285/2134/159 +f 1281/2415/160 1293/2127/160 1292/2125/96 +f 1278/2417/161 1290/2119/161 1289/2117/99 +f 1275/2418/162 1287/2112/162 1286/2114/97 +f 1282/2419/163 1294/2129/163 1293/2127/160 +f 1272/2420/164 1284/2131/164 1283/2133/98 +f 1279/2422/165 1291/2123/165 1290/2119/161 +f 1276/2412/158 1288/2115/158 1287/2112/162 +f 1271/2423/98 1283/2231/98 1294/2129/163 +f 1273/2414/159 1285/2134/159 1284/2131/164 +f 1280/2416/96 1292/2125/96 1291/2123/165 +f 1299/2116/162 1311/2428/162 1310/2424/97 +f 1306/2128/163 1318/2429/163 1317/2425/160 +f 1296/2135/164 1308/2430/164 1307/2426/98 +f 1303/2121/165 1315/2431/165 1314/2427/161 +f 1300/2118/158 1312/2432/158 1311/2428/162 +f 1295/2130/98 1307/2488/98 1318/2429/163 +f 1297/2136/159 1309/2433/159 1308/2430/164 +f 1304/2124/96 1316/2434/96 1315/2431/165 +f 1301/2120/99 1313/2435/99 1312/2432/158 +f 1298/2113/97 1310/2424/97 1309/2433/159 +f 1305/2126/160 1317/2425/160 1316/2434/96 +f 1302/2122/161 1314/2427/161 1313/2435/99 +f 1324/2436/150 1331/2453/150 1330/2437/151 +f 1328/2439/152 1338/2446/152 1329/2440/153 +f 1322/2442/154 1333/2448/154 1332/2443/94 +f 1327/2445/155 1337/2455/155 1338/2446/152 +f 1334/2447/156 1321/2456/156 1325/2438/151 +f 1326/2441/153 1329/2440/153 1333/2448/154 +f 1320/2449/157 1335/2457/157 1336/2450/95 +f 1323/2452/94 1332/2489/94 1331/2453/150 +f 1319/2454/95 1336/2490/95 1337/2455/155 +f 1321/2456/156 1334/2447/156 1335/2457/157 +f 1345/2458/94 1357/2151/94 1356/2149/166 +f 1342/2460/97 1354/2148/97 1353/2168/167 +f 1349/2462/168 1361/2159/168 1360/2157/96 +f 1346/2464/169 1358/2153/169 1357/2151/94 +f 1343/2465/170 1355/2146/170 1354/2148/97 +f 1350/2466/171 1362/2163/171 1361/2159/168 +f 1340/2467/172 1352/2165/172 1351/2167/95 +f 1347/2469/173 1359/2158/173 1358/2153/169 +f 1344/2459/166 1356/2149/166 1355/2146/170 +f 1339/2470/95 1351/2255/95 1362/2163/171 +f 1341/2461/167 1353/2168/167 1352/2165/172 +f 1348/2463/96 1360/2157/96 1359/2158/173 +f 1367/2150/170 1379/2475/170 1378/2471/97 +f 1374/2161/171 1386/2476/171 1385/2472/168 +f 1364/2169/172 1376/2477/172 1375/2473/95 +f 1371/2155/173 1383/2478/173 1382/2474/169 +f 1368/2152/166 1380/2479/166 1379/2475/170 +f 1363/2164/95 1375/2491/95 1386/2476/171 +f 1365/2170/167 1377/2480/167 1376/2477/172 +f 1372/2160/96 1384/2481/96 1383/2478/173 +f 1369/2154/94 1381/2482/94 1380/2479/166 +f 1366/2147/97 1378/2471/97 1377/2480/167 +f 1373/2162/168 1385/2472/168 1384/2481/96 +f 1370/2156/169 1382/2474/169 1381/2482/94 +o Gun +v -8.750000 2.500000 -0.500000 +v -1.000000 2.500000 -0.500000 +v -8.750000 2.250000 -0.433013 +v -1.000000 2.250000 -0.433013 +v -8.750000 2.066987 -0.250000 +v -1.000000 2.066987 -0.250000 +v -8.750000 2.000000 0.000000 +v -1.000000 2.000000 0.000000 +v -8.750000 2.066987 0.250000 +v -1.000000 2.066987 0.250000 +v -8.750000 2.250000 0.433013 +v -1.000000 2.250000 0.433013 +v -8.750000 2.500000 0.500000 +v -1.000000 2.500000 0.500000 +v -8.750000 2.750000 0.433013 +v -1.000000 2.750000 0.433013 +v -8.750000 2.933012 0.250000 +v -1.000000 2.933012 0.250000 +v -8.750000 3.000000 0.000000 +v -1.000000 3.000000 0.000000 +v -8.750000 2.933013 -0.250000 +v -1.000000 2.933013 -0.250000 +v -8.750000 2.750000 -0.433012 +v -1.000000 2.750000 -0.433012 +v -8.750000 2.500000 -0.375000 +v -8.750000 2.312500 -0.324759 +v -8.750000 2.175241 -0.187500 +v -8.750000 2.125000 0.000000 +v -8.750000 2.175241 0.187500 +v -8.750000 2.312500 0.324759 +v -8.750000 2.500000 0.375000 +v -8.750000 2.687500 0.324759 +v -8.750000 2.824759 0.187500 +v -8.750000 2.875000 0.000000 +v -8.750000 2.824759 -0.187500 +v -8.750000 2.687500 -0.324759 +v 0.001000 2.500000 -0.375000 +v 0.001000 2.312500 -0.324759 +v 0.001000 2.175241 -0.187500 +v 0.001000 2.125000 0.000000 +v 0.001000 2.175241 0.187500 +v 0.001000 2.312500 0.324759 +v 0.001000 2.500000 0.375000 +v 0.001000 2.687500 0.324759 +v 0.001000 2.824759 0.187500 +v 0.001000 2.875000 0.000000 +v 0.001000 2.824759 -0.187500 +v 0.001000 2.687500 -0.324759 +v -1.000000 2.500000 -0.625000 +v -1.000000 2.187500 -0.541266 +v -1.000000 1.958734 -0.312500 +v -1.000000 1.875000 0.000000 +v -1.000000 1.958734 0.312500 +v -1.000000 2.187500 0.541265 +v -1.000000 2.500000 0.625000 +v -1.000000 2.812500 0.541266 +v -1.000000 3.041266 0.312500 +v -1.000000 3.125000 0.000000 +v -1.000000 3.041266 -0.312500 +v -1.000000 2.812500 -0.541265 +v 0.001000 2.500000 -0.625000 +v 0.001000 2.187500 -0.541266 +v 0.001000 1.958734 -0.312500 +v 0.001000 1.875000 0.000000 +v 0.001000 1.958734 0.312500 +v 0.001000 2.187500 0.541265 +v 0.001000 2.500000 0.625000 +v 0.001000 2.812500 0.541266 +v 0.001000 3.041266 0.312500 +v 0.001000 3.125000 0.000000 +v 0.001000 3.041266 -0.312500 +v 0.001000 2.812500 -0.541265 +v 0.000000 0.562500 0.500000 +v 2.500000 0.562500 0.500000 +v 0.000000 0.562500 -0.500000 +v 2.500000 0.562500 -0.500000 +v 2.500000 -0.187500 0.500000 +v 2.500000 -0.187500 -0.500000 +v 0.000000 -0.187500 -0.500000 +v 0.000000 -0.187500 0.500000 +v 2.500000 2.937500 0.500000 +v 2.500000 2.937500 -0.500000 +v -0.999000 3.187500 0.500000 +v -0.999000 3.187500 -0.500000 +v 0.625000 3.187500 0.500000 +v 0.625000 3.187500 -0.500000 +v 1.375000 3.437500 0.500000 +v 1.375000 3.437500 -0.500000 +v 2.750000 3.437500 0.500000 +v 2.750000 3.437500 -0.500000 +v 2.750000 3.187500 0.500000 +v 2.750000 3.187500 -0.500000 +v 3.000000 3.187500 0.500000 +v 3.000000 3.187500 -0.500000 +v 0.000000 2.937500 -0.500000 +v 0.000000 2.937500 0.500000 +v 0.000000 -0.187500 -0.500000 +v 0.000000 -0.187500 0.000000 +v -0.750000 -0.187500 -0.500000 +v 0.000000 2.187500 -0.500000 +v -3.750000 1.250000 0.250000 +v -1.000000 1.250000 0.250000 +v -3.750000 1.250000 -0.250000 +v -1.000000 1.250000 -0.250000 +v 0.000000 1.750000 -0.187500 +v 0.000000 1.882583 -0.132582 +v 0.000000 1.937500 0.000000 +v 0.000000 1.562500 0.000000 +v 0.000000 1.617417 -0.132582 +v -1.000000 1.750000 -0.187500 +v -1.000000 1.882583 -0.132582 +v -1.000000 1.937500 0.000000 +v -1.000000 1.562500 0.000000 +v -1.000000 1.617417 -0.132582 +v -0.750000 -0.187500 0.000000 +v -1.000000 2.187500 -0.500000 +v -0.750000 0.687500 -0.500000 +v -0.750000 0.687500 0.000000 +v -1.000000 1.062500 -0.500000 +v -1.000000 1.062500 0.000000 +v -4.250000 2.125000 -0.250000 +v -4.250000 2.125000 0.250000 +v -1.000000 2.125000 0.250000 +v -1.000000 2.125000 -0.250000 +v -1.000000 1.625000 0.250000 +v -3.000000 1.625000 0.250000 +v -3.000000 1.875000 0.250000 +v -1.000000 1.875000 0.250000 +v -1.000000 1.625000 -0.125000 +v -3.000000 1.625000 -0.125000 +v -3.000000 1.875000 -0.125000 +v -1.000000 1.875000 -0.125000 +v 3.625000 2.437500 0.500000 +v 3.625000 2.437500 -0.500000 +v 4.875000 1.687500 0.500000 +v 4.875000 1.687500 -0.500000 +v 5.875000 1.312500 0.500000 +v 5.875000 1.312500 -0.500000 +v 5.875000 0.687500 0.500000 +v 5.875000 0.687500 -0.500000 +v 7.875000 -3.687500 -0.500000 +v 7.875000 -3.687500 0.500000 +v 6.875000 -0.937500 0.500000 +v 6.875000 -0.937500 -0.500000 +v 4.750000 -3.687500 -0.500000 +v 4.750000 -3.687500 0.500000 +v 4.750000 -2.937500 -0.500000 +v 4.750000 -2.937500 0.500000 +v 4.500000 -1.937500 -0.500000 +v 4.500000 -1.937500 0.500000 +v 3.875000 -1.062500 -0.500000 +v 3.875000 -1.062500 0.500000 +v 3.125000 -0.937500 -0.500000 +v 3.125000 -0.937500 0.500000 +v 2.875000 -0.437500 -0.500000 +v 2.875000 -0.437500 0.500000 +v 4.750000 -4.312500 -0.500000 +v 7.875000 -4.312500 0.500000 +v 7.875000 -4.312500 -0.500000 +v 4.750000 -4.312500 0.500000 +v 5.500000 1.312500 0.500000 +v 5.750000 0.687500 0.500000 +v 7.750000 -3.687500 0.500000 +v 6.750000 -0.937500 0.500000 +v 4.750000 1.062500 0.500000 +v 3.500000 -0.187500 0.500000 +v 4.875000 -3.687500 0.500000 +v 4.875000 -2.937500 0.500000 +v 4.625000 -1.937500 0.500000 +v 4.000000 -0.937500 0.500000 +v 3.250000 -0.812500 0.500000 +v 7.625000 -4.062500 1.000000 +v 5.000000 -4.062500 1.000000 +v 5.250000 0.687500 0.750000 +v 7.500000 -3.687500 1.000000 +v 6.500000 -0.937500 1.000000 +v 5.125000 -3.687500 1.000000 +v 5.125000 -2.937500 1.000000 +v 4.875000 -1.937500 1.000000 +v 4.250000 -0.812500 1.000000 +v 3.750000 -0.562500 0.750000 +v 5.500000 1.312500 -0.500000 +v 5.750000 0.687500 -0.500000 +v 7.750000 -3.687500 -0.500000 +v 6.750000 -0.937500 -0.500000 +v 4.750000 1.062500 -0.500000 +v 3.500000 -0.187500 -0.500000 +v 4.875000 -3.687500 -0.500000 +v 4.875000 -2.937500 -0.500000 +v 4.625000 -1.937500 -0.500000 +v 4.000000 -0.937500 -0.500000 +v 3.250000 -0.812500 -0.500000 +v 7.625000 -4.062500 -1.000000 +v 5.000000 -4.062500 -1.000000 +v 5.250000 0.625000 -0.750000 +v 7.500000 -3.687500 -1.000000 +v 6.500000 -0.937500 -1.000000 +v 5.125000 -3.687500 -1.000000 +v 5.125000 -2.937500 -1.000000 +v 4.875000 -1.937500 -1.000000 +v 4.250000 -0.687500 -1.000000 +v 3.750000 -0.562500 -0.750000 +v 3.625000 2.437500 0.250000 +v 3.187500 2.812500 0.250000 +v 3.625000 2.437500 -0.250000 +v 4.875000 1.687500 0.250000 +v 3.500000 2.312500 -0.250000 +v 4.875000 1.687500 -0.250000 +v 3.312500 2.812500 -0.250000 +v 3.500000 2.312500 0.250000 +v 4.875000 1.562500 -0.250000 +v 3.187500 2.812500 -0.250000 +v 3.312500 2.812500 0.250000 +v 4.875000 1.562500 0.250000 +v 2.853553 2.169845 -0.729640 +v 2.500000 2.778405 -0.687500 +v 2.853553 2.477192 -0.632583 +v 2.853553 0.910311 0.500000 +v 2.500000 0.562500 0.500000 +v 2.500000 2.937500 -0.500000 +v 2.853553 1.022808 0.632583 +v 2.500000 0.721595 0.687500 +v 2.853553 2.589689 -0.500000 +v 2.853553 1.330155 0.729640 +v 2.500000 1.156250 0.824759 +v 3.000000 1.750000 -0.500000 +v 2.853553 1.750000 0.765165 +v 2.500000 1.750000 0.875000 +v 2.500000 0.562500 -0.500000 +v 2.853553 2.169845 0.729640 +v 2.500000 2.343750 0.824759 +v 2.853553 0.910311 -0.500000 +v 3.000000 1.750000 0.500000 +v 2.853553 2.477192 0.632583 +v 2.500000 2.778405 0.687500 +v 2.500000 0.721595 -0.687500 +v 2.853553 2.589689 0.500000 +v 2.500000 2.937500 0.500000 +v 2.853553 1.022808 -0.632583 +v 2.500000 1.156250 -0.824759 +v 2.853553 1.330155 -0.729640 +v 2.500000 1.750000 -0.875000 +v 2.500000 2.343750 -0.824759 +v 2.853553 1.750000 -0.765165 +v -8.749000 3.125000 -0.250000 +v -1.000000 3.125000 -0.250000 +v -8.749000 3.125000 0.250000 +v -1.000000 3.125000 0.250000 +v -8.749000 2.875000 -0.250000 +v -1.000000 2.875000 -0.250000 +v -8.749000 2.875000 0.250000 +v -1.000000 2.875000 0.250000 +v -8.500000 3.125000 -0.187500 +v -8.500000 3.125000 0.187500 +v -6.250000 3.125000 -0.187500 +v -6.250000 3.125000 0.187500 +v -8.500000 3.437500 0.187500 +v -8.500000 3.437500 -0.187500 +v -7.125000 3.437500 0.187500 +v -7.125000 3.437500 -0.187500 +v -8.437500 3.437500 -0.125000 +v -8.437500 3.437500 0.125000 +v -7.312500 3.437500 -0.125000 +v -7.312500 3.437500 0.125000 +v -8.312500 3.812500 0.062500 +v -8.312500 3.812500 -0.062500 +v -8.187500 3.812500 0.062500 +v -8.187500 3.812500 -0.062500 +v 0.500000 -0.187500 0.375000 +v 0.875000 -0.187500 0.375000 +v 0.500000 -0.187500 -0.375000 +v 0.875000 -0.187500 -0.375000 +v 0.750000 -0.937500 0.375000 +v 0.750000 -0.937500 -0.375000 +v 1.500000 -1.562500 0.375000 +v 1.500000 -1.562500 -0.375000 +v 2.500000 -1.562500 0.375000 +v 2.500000 -1.562500 -0.375000 +v 2.884670 -1.312500 0.375000 +v 2.884670 -1.312500 -0.375000 +v 3.125000 -0.925000 0.375000 +v 3.125000 -0.925000 -0.375000 +v 1.000000 -0.937500 0.375000 +v 1.000000 -0.937500 -0.375000 +v 1.500000 -1.312500 0.375000 +v 1.500000 -1.312500 -0.375000 +v 2.500000 -1.312500 0.375000 +v 2.500000 -1.312500 -0.375000 +v 2.750000 -1.187500 0.375000 +v 2.750000 -1.187500 -0.375000 +v 2.875000 -0.437500 0.375000 +v 2.875000 -0.437500 -0.375000 +v 1.875000 -0.187500 0.250000 +v 1.875000 -0.187500 -0.250000 +v 2.062500 -0.562500 0.250000 +v 2.062500 -0.562500 -0.250000 +v 2.062500 -0.937500 0.250000 +v 2.062500 -0.937500 -0.250000 +v 1.812500 -1.187500 0.250000 +v 1.812500 -1.187500 -0.250000 +v 2.000000 -1.187500 0.250000 +v 2.000000 -1.187500 -0.250000 +v 2.250000 -0.937500 0.250000 +v 2.250000 -0.937500 -0.250000 +v 2.250000 -0.437500 0.250000 +v 2.250000 -0.437500 -0.250000 +v 2.500000 -0.187500 0.250000 +v 2.500000 -0.187500 -0.250000 +v 0.000000 2.812500 0.500000 +v -0.999000 2.812500 0.500000 +v 0.000000 2.812500 -0.500000 +v -0.999000 2.812500 -0.500000 +v 0.000000 2.937500 0.000000 +v -0.999000 2.937500 0.000000 +v 0.000000 2.812500 0.250000 +v 0.000000 2.812500 -0.250000 +v -0.999000 2.812500 0.250000 +v -0.999000 2.812500 -0.250000 +v 5.187500 -3.312500 1.010000 +v 6.687500 -3.312500 1.010000 +v 5.187500 -1.812500 1.010000 +v 6.687500 -1.812500 1.010000 +vt 0.255396 0.168421 +vt 0.251799 0.147368 +vt 0.255396 0.147368 +vt 0.255396 0.252632 +vt 0.251799 0.231579 +vt 0.255396 0.231579 +vt 0.251799 0.210526 +vt 0.255396 0.210526 +vt 0.251799 0.126316 +vt 0.255396 0.126316 +vt 0.251799 0.105263 +vt 0.255396 0.105263 +vt 0.251799 0.084211 +vt 0.255396 0.084211 +vt 0.251799 0.063158 +vt 0.255396 0.063158 +vt 0.255396 0.042105 +vt 0.251799 0.042105 +vt 0.255396 0.021053 +vt 0.251799 0.021053 +vt 0.251799 0.000000 +vt 0.255396 -0.000000 +vt 0.255396 0.189474 +vt 0.251799 0.168421 +vt 0.251799 0.189474 +vt 0.478417 0.031579 +vt 0.482014 0.063158 +vt 0.478417 0.052632 +vt 0.478417 -0.000000 +vt 0.482014 0.031579 +vt 0.478417 0.021053 +vt 0.478417 0.273684 +vt 0.482014 0.252632 +vt 0.482014 0.284211 +vt 0.478417 0.305263 +vt 0.482014 0.315789 +vt 0.478417 0.347368 +vt 0.482014 0.378947 +vt 0.478417 0.368421 +vt 0.478417 0.221053 +vt 0.478417 0.242105 +vt 0.478417 0.315789 +vt 0.482014 0.347368 +vt 0.478417 0.336842 +vt 0.478417 0.210526 +vt 0.482014 0.189474 +vt 0.482014 0.221053 +vt 0.478417 0.178947 +vt 0.482014 0.157895 +vt 0.478417 0.126316 +vt 0.478417 0.147368 +vt 0.478417 0.115789 +vt 0.482014 0.094737 +vt 0.482014 0.126316 +vt 0.478417 0.063158 +vt 0.478417 0.084211 +vt 0.517986 0.178947 +vt 0.510791 0.157895 +vt 0.517986 0.157895 +vt 0.517986 0.210526 +vt 0.510791 0.189474 +vt 0.517986 0.189474 +vt 0.517986 0.221053 +vt 0.510791 0.252632 +vt 0.510791 0.221053 +vt 0.517986 0.273684 +vt 0.517986 0.252632 +vt 0.517986 0.305263 +vt 0.510791 0.284211 +vt 0.517986 0.284211 +vt 0.517986 0.336842 +vt 0.510791 0.315789 +vt 0.517986 0.315789 +vt 0.517986 0.368421 +vt 0.510791 0.347368 +vt 0.517986 0.347368 +vt 0.517986 0.000000 +vt 0.510791 0.031579 +vt 0.510791 -0.000000 +vt 0.517986 0.031579 +vt 0.510791 0.063158 +vt 0.517986 0.084211 +vt 0.517986 0.063158 +vt 0.517986 0.094737 +vt 0.510791 0.126316 +vt 0.510791 0.094737 +vt 0.517986 0.126316 +vt 0.687050 0.442105 +vt 0.615108 0.526316 +vt 0.615108 0.442105 +vt 0.586331 0.442105 +vt 0.615108 0.378947 +vt 0.812950 0.452632 +vt 0.784173 0.652632 +vt 0.784173 0.452632 +vt 0.586331 0.684211 +vt 0.633094 0.768421 +vt 0.586331 0.768421 +vt 0.633094 0.684211 +vt 0.654676 0.768421 +vt 0.654676 0.684211 +vt 0.694245 0.768421 +vt 0.694245 0.684211 +vt 0.701439 0.768421 +vt 0.701439 0.684211 +vt 0.708633 0.768421 +vt 0.687050 0.642105 +vt 0.615108 0.642105 +vt 0.615108 0.600000 +vt 0.507194 0.578947 +vt 0.507194 0.778947 +vt 0.496648 0.730873 +vt 0.025180 0.326316 +vt 0.104317 0.368421 +vt 0.025180 0.368421 +vt 0.687050 0.378947 +vt 0.615108 0.442105 +vt 0.687050 0.442105 +vt 0.492806 0.578947 +vt 0.471223 0.536842 +vt 0.492806 0.536842 +vt 0.464029 0.652632 +vt 0.449640 0.684211 +vt 0.449640 0.652632 +vt 0.464029 0.578947 +vt 0.449640 0.578947 +vt 0.449640 0.778947 +vt 0.420863 0.778947 +vt 0.458633 0.742105 +vt 0.460214 0.753268 +vt 0.471223 0.652632 +vt 0.471223 0.578947 +vt 0.000000 0.326316 +vt 0.104317 0.252632 +vt 0.104317 0.326316 +vt 0.046763 0.421053 +vt 0.010791 0.442105 +vt 0.046763 0.400000 +vt 0.104317 0.400000 +vt 0.104317 0.442105 +vt 0.118705 0.410526 +vt 0.176259 0.378947 +vt 0.176259 0.410526 +vt 0.107914 0.357895 +vt 0.118705 0.378947 +vt 0.107914 0.378947 +vt 0.176259 0.326316 +vt 0.118705 0.357895 +vt 0.118705 0.326316 +vt 0.176259 0.357895 +vt 0.715827 0.778947 +vt 0.719424 0.821053 +vt 0.715827 0.821053 +vt 0.730216 0.684211 +vt 0.766187 0.705263 +vt 0.730216 0.705263 +vt 0.794964 0.684211 +vt 0.794964 0.768421 +vt 0.841727 0.084211 +vt 0.751799 0.000000 +vt 0.841727 0.000000 +vt 0.615108 0.642105 +vt 0.586331 0.631579 +vt 0.586331 0.663158 +vt 0.751799 0.147368 +vt 0.751799 0.084211 +vt 0.812950 0.315789 +vt 0.751799 0.147368 +vt 0.744604 0.231579 +vt 0.726619 0.305263 +vt 0.784173 0.452632 +vt 0.755396 0.536842 +vt 0.726619 0.305263 +vt 0.697842 0.357895 +vt 0.755396 0.536842 +vt 0.701439 0.663158 +vt 0.694245 0.663158 +vt 0.730216 0.747368 +vt 0.766187 0.768421 +vt 0.730216 0.768421 +vt 0.719424 0.705263 +vt 0.708633 0.684211 +vt 0.719424 0.747368 +vt 0.769784 0.821053 +vt 0.766187 0.778947 +vt 0.769784 0.778947 +vt 0.730216 0.821053 +vt 0.723022 0.831579 +vt 0.762590 0.831579 +vt 0.730216 0.831579 +vt 0.723022 0.768421 +vt 0.730216 0.778947 +vt 0.719424 0.778947 +vt 0.762590 0.768421 +vt 0.766187 0.821053 +vt 0.161880 0.631283 +vt 0.161880 0.431875 +vt 0.172639 0.531579 +vt 0.152543 0.581431 +vt 0.151102 0.531579 +vt 0.161861 0.631283 +vt 0.255396 0.273684 +vt 0.478417 0.315789 +vt 0.255396 0.315789 +vt 0.255396 0.252632 +vt 0.478417 0.273684 +vt 0.478417 0.336842 +vt 0.248201 0.315789 +vt 0.183453 0.284211 +vt 0.223022 0.315789 +vt 0.183453 0.315789 +vt 0.183453 0.257895 +vt 0.223022 0.284211 +vt 0.248201 0.315789 +vt 0.248201 0.284211 +vt 0.183453 0.342105 +vt 0.248201 0.342105 +vt 0.174460 0.284211 +vt 0.174460 0.315789 +vt 0.143885 0.284211 +vt 0.147482 0.294737 +vt 0.143885 0.294737 +vt 0.140288 0.326316 +vt 0.172662 0.326316 +vt 0.133094 0.284211 +vt 0.133094 0.294737 +vt 0.140288 0.252632 +vt 0.147482 0.284211 +vt 0.172662 0.294737 +vt 0.172662 0.284211 +vt 0.262590 0.821053 +vt 0.269784 0.757895 +vt 0.273381 0.821053 +vt 0.262590 0.757895 +vt 0.269784 0.694737 +vt 0.262590 0.694737 +vt 0.269784 0.610526 +vt 0.262590 0.610526 +vt 0.269784 0.578947 +vt 0.262590 0.578947 +vt 0.273381 0.547368 +vt 0.233813 0.757895 +vt 0.241007 0.821053 +vt 0.230216 0.821053 +vt 0.233813 0.694737 +vt 0.241007 0.757895 +vt 0.241007 0.610526 +vt 0.233813 0.610526 +vt 0.233813 0.578947 +vt 0.230216 0.547368 +vt 0.241007 0.578947 +vt 0.302158 0.673684 +vt 0.312950 0.705263 +vt 0.305755 0.705263 +vt 0.312950 0.736842 +vt 0.305755 0.736842 +vt 0.312950 0.768421 +vt 0.305755 0.768421 +vt 0.305755 0.842105 +vt 0.312950 0.810526 +vt 0.312950 0.842105 +vt 0.305755 0.873684 +vt 0.312950 0.873684 +vt 0.302158 0.905263 +vt 0.320144 0.905263 +vt 0.575540 0.768421 +vt 0.546763 0.747368 +vt 0.575540 0.747368 +vt 0.586331 0.631579 +vt 0.586331 0.663158 +vt 0.687050 0.642105 +vt 0.633094 0.663158 +vt 0.633094 0.663158 +vt 0.543165 0.684211 +vt 0.546763 0.705263 +vt 0.543165 0.726316 +vt 0.579137 0.726316 +vt 0.543165 0.768421 +vt 0.546763 0.768421 +vt 0.575540 0.705263 +vt 0.546763 0.684211 +vt 0.575540 0.684211 +vt 0.575540 0.726316 +vt 0.546763 0.726316 +vt 0.187050 0.642105 +vt 0.129496 0.810526 +vt 0.129496 0.642105 +vt 0.115108 0.284211 +vt 0.104317 0.252632 +vt 0.118705 0.252632 +vt 0.118705 0.326316 +vt 0.115108 0.305263 +vt 0.104317 0.326316 +vt 0.104317 0.305263 +vt 0.251799 0.252632 +vt 0.482014 -0.000000 +vt 0.478417 0.252632 +vt 0.478417 0.284211 +vt 0.478417 0.189474 +vt 0.478417 0.157895 +vt 0.478417 0.094737 +vt 0.517986 0.242105 +vt 0.510791 0.378947 +vt 0.517986 0.021053 +vt 0.517986 0.052632 +vt 0.517986 0.115789 +vt 0.517986 0.147368 +vt 0.687050 0.526316 +vt 0.586331 0.378947 +vt 0.812950 0.652632 +vt 0.615108 0.557895 +vt 0.687050 0.557895 +vt 0.492806 0.726316 +vt 0.492806 0.757895 +vt 0.496648 0.753357 +vt 0.498202 0.742118 +vt 0.687050 0.378947 +vt 0.615108 0.378947 +vt 0.464029 0.684211 +vt 0.420863 0.578947 +vt 0.442446 0.652632 +vt 0.442446 0.578947 +vt 0.464029 0.757895 +vt 0.460214 0.730942 +vt 0.464029 0.726316 +vt 0.000000 0.368421 +vt 0.010791 0.252632 +vt 0.104317 0.421053 +vt 0.766187 0.684211 +vt 0.766187 0.747368 +vt 0.615108 0.631579 +vt 0.812950 0.315789 +vt 0.744604 0.231579 +vt 0.841727 0.084211 +vt 0.751799 0.084211 +vt 0.784173 0.452632 +vt 0.784173 0.505263 +vt 0.697842 0.357895 +vt 0.705036 0.315789 +vt 0.784173 0.505263 +vt 0.705036 0.315789 +vt 0.719424 0.600000 +vt 0.719424 0.600000 +vt 0.694245 0.663158 +vt 0.701439 0.663158 +vt 0.730216 0.768421 +vt 0.167259 0.445233 +vt 0.171198 0.481727 +vt 0.171198 0.581431 +vt 0.167259 0.617925 +vt 0.152543 0.481727 +vt 0.161861 0.431875 +vt 0.156482 0.445233 +vt 0.156482 0.617925 +vt 0.478417 0.252632 +vt 0.255396 0.336842 +vt 0.248201 0.273684 +vt 0.248201 0.257895 +vt 0.172662 0.252632 +vt 0.262590 0.515789 +vt 0.241007 0.694737 +vt 0.241007 0.515789 +vt 0.320144 0.673684 +vt 0.305755 0.810526 +vt 0.615108 0.631579 +vt 0.654676 0.684211 +vt 0.694245 0.684211 +vt 0.187050 0.810526 +vt 0.104317 0.284211 +vt 0.478417 0.189474 +vt 0.478417 0.210526 +vt 0.478417 0.231579 +vt 0.478417 0.042105 +vt 0.478417 0.063158 +vt 0.478417 0.084211 +vt 0.478417 0.105263 +vt 0.478417 0.126316 +vt 0.478417 0.147368 +vt 0.478417 0.168421 +vt 0.000000 0.042105 +vt -0.000000 0.231579 +vt -0.000000 0.126316 +vt 0.000000 0.063158 +vt 0.000000 0.000000 +vt 0.000000 0.147368 +vt -0.000000 0.189474 +vt -0.000000 0.084211 +vt 0.000000 0.021053 +vt 0.000000 0.168421 +vt 0.000000 0.210526 +vt 0.000000 0.105263 +vt 0.615108 0.168421 +vt 0.492806 0.750000 +vt 0.464029 0.742105 +vt 0.492806 0.742105 +vt 0.464029 0.734210 +vt 0.492806 0.734210 +vt 0.464029 0.750000 +vt 0.812950 0.768421 +vt 0.859712 0.684211 +vt 0.938849 0.768421 +vt 0.859712 0.768421 +vt 0.812950 0.684211 +vt 0.730216 -0.000000 +vt 0.730216 0.084211 +vt 0.701439 0.000000 +vt 0.701439 0.084211 +vt 0.676259 0.000000 +vt 0.676259 0.084211 +vt 0.654676 0.000000 +vt 0.615108 0.094737 +vt 0.586331 0.136842 +vt 0.586331 0.094737 +vt 0.586331 0.168421 +vt 0.870504 0.105263 +vt 0.946043 0.084211 +vt 0.859712 0.084211 +vt 0.946043 0.084211 +vt 0.870504 0.105263 +vt 0.859712 0.084211 +vt 0.859712 0.200000 +vt 0.863309 0.284211 +vt 0.852518 0.284211 +vt 0.845324 0.378947 +vt 0.834532 0.368421 +vt 0.881295 0.557895 +vt 0.859712 0.536842 +vt 0.874101 0.505263 +vt 0.917266 0.368421 +vt 0.935252 0.136842 +vt 0.946043 0.136842 +vt 0.834532 0.368421 +vt 0.812950 0.378947 +vt 0.830935 0.400000 +vt 0.859712 0.136842 +vt 0.870504 0.200000 +vt 0.888489 0.505263 +vt 0.906475 0.357895 +vt 0.935252 0.105263 +vt 0.812950 0.378947 +vt 0.830935 0.400000 +vt 0.823741 0.431579 +vt 0.863309 0.284211 +vt 0.859712 0.200000 +vt 0.852518 0.284211 +vt 0.845324 0.378947 +vt 0.881295 0.557895 +vt 0.874101 0.505263 +vt 0.859712 0.536842 +vt 0.935252 0.136842 +vt 0.917266 0.368421 +vt 0.946043 0.136842 +vt 0.870504 0.200000 +vt 0.859712 0.136842 +vt 0.906475 0.357895 +vt 0.888489 0.505263 +vt 0.870504 0.136842 +vt 0.935252 0.105263 +vt 0.823741 0.431579 +vt 0.964029 0.000000 +vt 0.964029 0.084211 +vt 0.946043 0.000000 +vt 0.859712 0.000000 +vt 0.841727 0.000000 +vt 0.841727 0.084211 +vt 0.183453 0.431579 +vt 0.194245 0.442105 +vt 0.183453 0.452632 +vt 0.172662 0.452632 +vt 0.172662 0.431579 +vt 0.172662 0.494737 +vt 0.194245 0.473684 +vt 0.183453 0.494737 +vt 0.172662 0.536842 +vt 0.194245 0.515789 +vt 0.183453 0.536842 +vt 0.140288 0.578947 +vt 0.151079 0.536842 +vt 0.151079 0.578947 +vt 0.183453 0.578947 +vt 0.172662 0.578947 +vt 0.129496 0.557895 +vt 0.140288 0.536842 +vt 0.194245 0.557895 +vt 0.140288 0.621053 +vt 0.151079 0.621053 +vt 0.183453 0.621053 +vt 0.172662 0.621053 +vt 0.129496 0.600000 +vt 0.194245 0.600000 +vt 0.140288 0.642105 +vt 0.151079 0.642105 +vt 0.183453 0.642105 +vt 0.172662 0.642105 +vt 0.129496 0.631579 +vt 0.194245 0.631579 +vt 0.151079 0.452632 +vt 0.140288 0.431579 +vt 0.151079 0.431579 +vt 0.140288 0.452632 +vt 0.129496 0.442105 +vt 0.151079 0.494737 +vt 0.140288 0.494737 +vt 0.129496 0.473684 +vt 0.129496 0.515789 +vt 0.208633 0.821053 +vt 0.230216 0.757895 +vt 0.208633 0.757895 +vt 0.230216 0.694737 +vt 0.208633 0.694737 +vt 0.230216 0.610526 +vt 0.208633 0.610526 +vt 0.230216 0.578947 +vt 0.208633 0.578947 +vt 0.230216 0.515789 +vt 0.284173 0.768421 +vt 0.273381 0.810526 +vt 0.273381 0.768421 +vt 0.294964 0.768421 +vt 0.284173 0.810526 +vt 0.294964 0.810526 +vt 0.323741 0.768421 +vt 0.334532 0.768421 +vt 0.323741 0.810526 +vt 0.345324 0.768421 +vt 0.334532 0.810526 +vt 0.870504 0.136842 +vt 0.478417 0.252632 +vt 0.000000 0.252632 +vt 0.938849 0.684211 +vt 0.654676 0.084211 +vt 0.615108 0.136842 +vt 0.208633 0.515789 +vt 0.345324 0.810526 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.3162 0.9487 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.8321 -0.5547 0.0000 +vn -0.8682 -0.4961 0.0000 +vn 0.5145 0.8575 0.0000 +vn 0.3511 0.9363 0.0000 +vn 0.7682 0.6402 0.0000 +vn 0.8480 0.5300 0.0000 +vn 0.4789 0.8779 0.0000 +vn 0.3363 0.9417 0.0000 +vn 0.0000 0.1644 -0.9864 +vn -0.9487 0.3162 0.0000 +vn 0.0000 0.1644 0.9864 +vn 0.3939 0.9191 0.0000 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5000 -0.8660 +vn -0.2898 -0.9571 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 0.3827 +vn 0.9622 0.2723 0.0000 +vn 0.9004 0.4352 0.0000 +vn 0.9398 0.3417 0.0000 +vn -0.9925 -0.1222 0.0000 +vn -0.9079 -0.4192 0.0000 +vn -0.5294 -0.8484 0.0000 +vn -0.1644 -0.9864 0.0000 +vn -0.8944 -0.4472 0.0000 +vn -0.7497 -0.6618 0.0000 +vn -0.5007 -0.3427 -0.7949 +vn 0.7406 -0.6169 -0.2663 +vn -0.7406 -0.6169 -0.2663 +vn 0.7406 -0.6169 0.2663 +vn -0.5007 -0.3427 0.7949 +vn -0.7406 -0.6169 0.2663 +vn -0.8887 -0.1134 0.4443 +vn -0.4707 -0.1788 0.8640 +vn -0.8315 -0.3492 0.4322 +vn -0.4194 -0.1220 0.8996 +vn -0.5483 -0.5987 0.5839 +vn 0.1422 0.3181 0.9373 +vn -0.2154 0.3448 0.9136 +vn 0.0554 0.3108 0.9489 +vn 0.8250 0.3864 0.4125 +vn 0.5084 0.1779 0.8426 +vn 0.9294 0.2459 0.2753 +vn -0.4982 -0.5710 -0.6525 +vn -0.3586 -0.1955 -0.9128 +vn -0.3854 -0.0823 -0.9191 +vn -0.9463 0.1453 0.2889 +vn -0.4925 -0.0586 0.8683 +vn 0.4609 0.3511 0.8150 +vn 0.4887 0.2771 0.8273 +vn 0.5007 -0.3427 0.7949 +vn -0.3586 -0.1955 0.9128 +vn -0.3986 -0.0784 0.9137 +vn -0.4147 0.2969 0.8601 +vn -0.4784 -0.1713 -0.8613 +vn -0.8887 -0.1134 -0.4443 +vn -0.8319 -0.3300 -0.4461 +vn -0.3833 -0.0513 -0.9222 +vn 0.1298 0.2968 -0.9461 +vn 0.0450 0.3020 -0.9522 +vn -0.2014 0.3023 -0.9317 +vn 0.5084 0.1779 -0.8426 +vn 0.8250 0.3864 -0.4125 +vn 0.9294 0.2459 -0.2753 +vn -0.4925 -0.0586 -0.8683 +vn -0.9463 0.1453 -0.2889 +vn 0.4890 0.2775 -0.8270 +vn 0.4349 0.3349 -0.8359 +vn -0.4808 0.0746 -0.8736 +vn 0.5007 -0.3427 -0.7949 +vn -0.3802 0.3015 -0.8744 +vn 0.7513 -0.5032 0.4270 +vn 0.9061 0.0000 0.4231 +vn 0.7541 -0.3297 0.5681 +vn 0.5431 -0.5168 0.6618 +vn 0.6001 -0.6100 0.5176 +vn 0.3474 -0.2058 0.9149 +vn 0.6619 -0.1418 0.7361 +vn 0.2967 -0.0000 0.9550 +vn 0.6220 -0.0000 0.7830 +vn 0.6619 0.1418 -0.7361 +vn 0.2967 -0.0000 -0.9550 +vn 0.3474 0.2058 -0.9149 +vn 0.6619 0.1418 0.7361 +vn 0.3474 0.2058 0.9149 +vn 0.9061 0.0000 -0.4231 +vn 0.6220 -0.0000 -0.7830 +vn 0.7541 0.3297 -0.5681 +vn 0.5431 0.5168 -0.6618 +vn 0.7541 0.3297 0.5681 +vn 0.5431 0.5168 0.6618 +vn 0.7513 0.5032 -0.4270 +vn 0.6001 0.6100 -0.5176 +vn 0.7513 0.5032 0.4270 +vn 0.6001 0.6100 0.5176 +vn 0.5431 -0.5168 -0.6618 +vn 0.7513 -0.5032 -0.4270 +vn 0.6001 -0.6100 -0.5176 +vn 0.7541 -0.3297 -0.5681 +vn 0.3474 -0.2058 -0.9149 +vn 0.6619 -0.1418 -0.7361 +vn -0.9487 -0.3162 0.0000 +vn -0.8260 -0.5637 0.0000 +vn -0.3404 -0.9403 0.0000 +vn 0.2842 -0.9588 0.0000 +vn 0.7146 -0.6996 0.0000 +vn 0.7145 -0.6996 0.0000 +vn 0.8498 -0.5271 0.0000 +vn 0.9864 0.1644 0.0000 +vn 0.8545 0.5195 0.0000 +vn 0.3162 0.9487 0.0000 +vn -0.2298 0.9732 0.0000 +vn -0.8044 0.5941 0.0000 +vn -0.9864 0.1644 0.0000 +vn -0.9732 -0.2298 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.7071 -0.7071 0.0000 +vn -0.4808 0.0746 0.8736 +s off +f 1417/2492/174 1429/2493/174 1415/2494/174 +f 1401/2495/174 1421/2496/174 1399/2497/174 +f 1399/2497/174 1420/2498/174 1397/2499/174 +f 1415/2494/174 1428/2500/174 1413/2501/174 +f 1413/2501/174 1427/2502/174 1411/2503/174 +f 1411/2503/174 1426/2504/174 1409/2505/174 +f 1409/2505/174 1425/2506/174 1407/2507/174 +f 1405/2508/174 1425/2506/174 1424/2509/174 +f 1403/2510/174 1424/2509/174 1423/2511/174 +f 1403/2510/174 1422/2512/174 1401/2513/174 +f 1395/2514/174 1430/2515/174 1417/2492/174 +f 1397/2499/174 1419/2516/174 1395/2514/174 +f 1404/2517/174 1448/2518/174 1406/2519/174 +f 1402/2520/174 1447/2521/174 1404/2522/174 +f 1396/2523/174 1454/2524/174 1443/2525/174 +f 1398/2526/174 1443/2525/174 1444/2527/174 +f 1400/2528/174 1446/2529/174 1402/2530/174 +f 1416/2531/174 1454/2524/174 1418/2532/174 +f 1398/2533/174 1445/2534/174 1400/2535/174 +f 1416/2536/174 1452/2537/174 1453/2538/174 +f 1414/2539/174 1451/2540/174 1452/2537/174 +f 1410/2541/174 1451/2540/174 1412/2542/174 +f 1410/2543/174 1449/2544/174 1450/2545/174 +f 1406/2546/174 1449/2544/174 1408/2547/174 +f 1440/2548/175 1463/2549/175 1439/2550/175 +f 1441/2551/175 1464/2552/175 1440/2553/175 +f 1441/2554/175 1466/2555/175 1465/2556/175 +f 1431/2557/175 1466/2555/175 1442/2558/175 +f 1432/2559/175 1455/2560/175 1431/2561/175 +f 1433/2562/175 1456/2563/175 1432/2564/175 +f 1434/2565/175 1457/2566/175 1433/2567/175 +f 1434/2568/175 1459/2569/175 1458/2570/175 +f 1435/2571/175 1460/2572/175 1459/2569/175 +f 1437/2573/175 1460/2572/175 1436/2574/175 +f 1437/2575/175 1462/2576/175 1461/2577/175 +f 1438/2578/175 1463/2549/175 1462/2576/175 +f 1468/2579/176 1469/2580/176 1467/2581/176 +f 1469/2582/174 1474/2583/174 1467/2581/174 +f 1468/2584/174 1476/2585/174 1470/2586/174 +f 1477/2587/176 1480/2588/176 1478/2589/176 +f 1479/2590/177 1482/2591/177 1480/2588/177 +f 1481/2592/176 1484/2593/176 1482/2591/176 +f 1483/2594/175 1486/2595/175 1484/2593/175 +f 1485/2596/176 1488/2597/176 1486/2595/176 +f 1475/2598/178 1490/2599/178 1707/2600/178 +f 1491/2601/175 1494/2602/175 1503/2603/175 +f 1497/2604/178 1496/2605/178 1495/2606/178 +f 1474/2583/179 1468/2579/179 1467/2581/179 +f 1472/2607/180 1469/2608/180 1470/2609/180 +f 1492/2610/178 1493/2611/178 1491/2612/178 +f 1512/2613/181 1513/2614/181 1511/2615/181 +f 1509/2616/174 1511/2615/174 1493/2617/174 +f 1513/2614/180 1510/2618/180 1494/2619/180 +f 1504/2620/174 1505/2621/174 1510/2618/174 +f 1512/2622/179 1509/2623/179 1492/2610/179 +f 1495/2606/182 1515/2624/182 1497/2604/182 +f 1497/2604/180 1518/2625/180 1498/2626/180 +f 1495/2606/179 1521/2627/179 1516/2628/179 +f 1520/2629/179 1496/2605/179 1519/2630/179 +f 1521/2627/179 1517/2631/179 1516/2628/179 +f 1521/2632/178 1526/2633/178 1522/2634/178 +f 1520/2635/175 1525/2636/175 1521/2637/175 +f 1519/2638/176 1524/2639/176 1520/2640/176 +f 1526/2633/179 1524/2639/179 1523/2641/179 +f 1607/2642/178 1606/2643/178 1603/2644/178 +f 1527/2645/183 1600/2646/183 1597/2647/183 +f 1600/2646/184 1531/2648/184 1532/2649/184 +f 1536/2650/178 1539/2651/178 1535/2652/178 +f 1489/2653/180 1706/2654/180 1478/2655/180 +f 1542/2656/179 1540/2657/179 1536/2650/179 +f 1538/2658/180 1541/2659/180 1543/2660/180 +f 1546/2661/179 1533/2662/179 1529/2663/179 +f 1545/2664/180 1549/2665/180 1530/2666/180 +f 1487/2667/179 1485/2668/179 1475/2598/179 +f 1530/2666/180 1472/2607/180 1470/2609/180 +f 1599/2669/183 1530/2670/183 1528/2671/183 +f 1607/2672/185 1527/2645/185 1597/2647/185 +f 1487/2673/185 1603/2674/185 1488/2597/185 +f 1602/2675/174 1608/2676/174 1600/2677/174 +f 1603/2674/185 1528/2671/185 1488/2597/185 +f 1601/2678/179 1603/2679/179 1606/2643/179 +f 1601/2678/179 1602/2680/179 1599/2681/179 +f 1607/2682/180 1604/2683/180 1598/2684/180 +f 1604/2683/180 1600/2685/180 1608/2676/180 +f 1601/2678/186 1598/2684/186 1604/2683/186 +f 1604/2683/187 1605/2686/187 1601/2678/187 +f 1632/2687/174 1613/2688/174 1622/2689/174 +f 1637/2690/174 1636/2691/174 1614/2692/174 +f 1641/2693/176 1640/2694/176 1639/2695/176 +f 1645/2696/179 1642/2697/179 1641/2693/179 +f 1644/2698/180 1639/2695/180 1640/2694/180 +f 1643/2699/174 1641/2693/174 1639/2695/174 +f 1651/2700/176 1654/2701/176 1652/2702/176 +f 1648/2703/179 1653/2704/179 1651/2700/179 +f 1649/2705/188 1653/2704/188 1650/2706/188 +f 1647/2707/180 1654/2701/180 1649/2708/180 +f 1648/2709/174 1652/2702/174 1647/2710/174 +f 1659/2711/176 1662/2712/176 1660/2713/176 +f 1655/2714/189 1662/2712/189 1657/2715/189 +f 1656/2716/190 1660/2713/190 1655/2717/190 +f 1656/2718/191 1661/2719/191 1659/2711/191 +f 1657/2720/192 1661/2719/192 1658/2721/192 +f 1666/2722/180 1668/2723/180 1665/2724/180 +f 1678/2725/180 1670/2726/180 1668/2723/180 +f 1680/2727/180 1672/2728/180 1670/2726/180 +f 1682/2729/180 1674/2730/180 1672/2728/180 +f 1684/2731/180 1676/2732/180 1674/2730/180 +f 1667/2733/179 1664/2734/179 1663/2735/179 +f 1669/2736/179 1677/2737/179 1667/2733/179 +f 1681/2738/179 1669/2736/179 1671/2739/179 +f 1673/2740/179 1681/2738/179 1671/2739/179 +f 1675/2741/179 1683/2742/179 1673/2740/179 +f 1688/2743/180 1700/2744/180 1690/2745/180 +f 1690/2745/180 1698/2746/180 1692/2747/180 +f 1692/2747/180 1696/2748/180 1694/2749/180 +f 1691/2750/179 1695/2751/179 1697/2752/179 +f 1689/2753/179 1697/2752/179 1699/2754/179 +f 1687/2755/179 1699/2754/179 1701/2756/179 +f 1706/2757/178 1710/2758/178 1712/2759/178 +f 1704/2760/179 1490/2599/179 1477/2761/179 +f 1476/2762/180 1489/2653/180 1480/2763/180 +f 1481/2592/179 1479/2764/179 1475/2598/179 +f 1490/2765/175 1709/2766/175 1707/2767/175 +f 1478/2589/174 1712/2759/174 1708/2768/174 +f 1489/2769/175 1710/2758/175 1705/2770/175 +f 1711/2771/178 1703/2772/178 1704/2773/178 +f 1709/2766/193 1708/2774/193 1707/2775/193 +f 1708/2774/194 1710/2758/194 1707/2775/194 +f 1714/2776/179 1715/2777/179 1713/2778/179 +f 1523/2779/175 1496/2780/175 1498/2781/175 +f 1518/2782/175 1523/2779/175 1498/2781/175 +f 1526/2783/175 1517/2784/175 1522/2785/175 +f 1417/2492/174 1430/2515/174 1429/2493/174 +f 1401/2495/174 1422/2786/174 1421/2496/174 +f 1399/2497/174 1421/2496/174 1420/2498/174 +f 1415/2494/174 1429/2493/174 1428/2500/174 +f 1413/2501/174 1428/2500/174 1427/2502/174 +f 1411/2503/174 1427/2502/174 1426/2504/174 +f 1409/2505/174 1426/2504/174 1425/2506/174 +f 1405/2508/174 1407/2507/174 1425/2506/174 +f 1403/2510/174 1405/2508/174 1424/2509/174 +f 1403/2510/174 1423/2511/174 1422/2512/174 +f 1395/2514/174 1419/2516/174 1430/2515/174 +f 1397/2499/174 1420/2498/174 1419/2516/174 +f 1404/2517/174 1447/2521/174 1448/2518/174 +f 1402/2520/174 1446/2787/174 1447/2521/174 +f 1396/2523/174 1418/2788/174 1454/2524/174 +f 1398/2526/174 1396/2789/174 1443/2525/174 +f 1400/2528/174 1445/2534/174 1446/2529/174 +f 1416/2531/174 1453/2538/174 1454/2524/174 +f 1398/2533/174 1444/2527/174 1445/2534/174 +f 1416/2536/174 1414/2790/174 1452/2537/174 +f 1414/2539/174 1412/2791/174 1451/2540/174 +f 1410/2541/174 1450/2545/174 1451/2540/174 +f 1410/2543/174 1408/2792/174 1449/2544/174 +f 1406/2546/174 1448/2518/174 1449/2544/174 +f 1440/2548/175 1464/2552/175 1463/2549/175 +f 1441/2551/175 1465/2556/175 1464/2552/175 +f 1441/2554/175 1442/2793/175 1466/2555/175 +f 1431/2557/175 1455/2560/175 1466/2555/175 +f 1432/2559/175 1456/2563/175 1455/2560/175 +f 1433/2562/175 1457/2566/175 1456/2563/175 +f 1434/2565/175 1458/2794/175 1457/2566/175 +f 1434/2568/175 1435/2795/175 1459/2569/175 +f 1435/2571/175 1436/2796/175 1460/2572/175 +f 1437/2573/175 1461/2577/175 1460/2572/175 +f 1437/2575/175 1438/2797/175 1462/2576/175 +f 1438/2578/175 1439/2798/175 1463/2549/175 +f 1468/2579/176 1470/2799/176 1469/2580/176 +f 1469/2582/174 1473/2800/174 1474/2583/174 +f 1468/2584/174 1475/2801/174 1476/2585/174 +f 1477/2587/176 1479/2590/176 1480/2588/176 +f 1479/2590/177 1481/2592/177 1482/2591/177 +f 1481/2592/176 1483/2594/176 1484/2593/176 +f 1483/2594/175 1485/2596/175 1486/2595/175 +f 1485/2596/176 1487/2673/176 1488/2597/176 +f 1489/2802/178 1476/2803/178 1707/2600/178 +f 1476/2803/178 1475/2598/178 1707/2600/178 +f 1502/2804/175 1492/2610/175 1491/2601/175 +f 1494/2602/175 1501/2805/175 1500/2806/175 +f 1494/2602/175 1500/2806/175 1499/2807/175 +f 1503/2603/175 1502/2804/175 1491/2601/175 +f 1494/2602/175 1499/2807/175 1503/2603/175 +f 1497/2604/178 1498/2626/178 1496/2605/178 +f 1474/2583/179 1471/2808/179 1468/2579/179 +f 1472/2607/180 1473/2809/180 1469/2608/180 +f 1492/2610/178 1509/2623/178 1493/2611/178 +f 1512/2613/181 1514/2810/181 1513/2614/181 +f 1509/2616/174 1512/2613/174 1511/2615/174 +f 1494/2619/180 1491/2811/180 1511/2812/180 +f 1491/2811/180 1493/2813/180 1511/2812/180 +f 1511/2812/180 1513/2614/180 1494/2619/180 +f 1505/2621/174 1506/2814/174 1510/2618/174 +f 1510/2618/174 1513/2614/174 1504/2620/174 +f 1513/2614/174 1514/2810/174 1508/2815/174 +f 1504/2620/174 1513/2614/174 1508/2815/174 +f 1514/2810/174 1507/2816/174 1508/2815/174 +f 1492/2610/179 1502/2804/179 1512/2622/179 +f 1502/2804/179 1507/2816/179 1514/2810/179 +f 1512/2622/179 1502/2804/179 1514/2810/179 +f 1495/2606/182 1516/2817/182 1515/2624/182 +f 1497/2604/180 1515/2818/180 1518/2625/180 +f 1495/2606/179 1520/2629/179 1521/2627/179 +f 1520/2629/179 1495/2606/179 1496/2605/179 +f 1521/2627/179 1522/2819/179 1517/2631/179 +f 1521/2632/178 1525/2636/178 1526/2633/178 +f 1520/2635/175 1524/2639/175 1525/2636/175 +f 1519/2638/176 1523/2641/176 1524/2639/176 +f 1526/2633/179 1525/2636/179 1524/2639/179 +f 1607/2642/178 1598/2684/178 1606/2643/178 +f 1527/2645/183 1529/2820/183 1600/2646/183 +f 1532/2649/184 1530/2670/184 1602/2821/184 +f 1600/2646/184 1529/2820/184 1531/2648/184 +f 1532/2649/184 1602/2821/184 1600/2646/184 +f 1536/2650/178 1540/2657/178 1539/2651/178 +f 1489/2653/180 1705/2822/180 1706/2654/180 +f 1536/2650/179 1537/2823/179 1542/2656/179 +f 1537/2823/179 1533/2662/179 1544/2824/179 +f 1542/2656/179 1537/2823/179 1544/2824/179 +f 1533/2662/179 1546/2661/179 1544/2824/179 +f 1538/2658/180 1535/2825/180 1541/2659/180 +f 1535/2825/180 1539/2826/180 1541/2659/180 +f 1545/2664/180 1534/2827/180 1543/2660/180 +f 1534/2827/180 1538/2658/180 1543/2660/180 +f 1531/2828/179 1529/2663/179 1533/2662/179 +f 1529/2663/179 1471/2808/179 1550/2829/179 +f 1550/2829/179 1548/2830/179 1546/2661/179 +f 1529/2663/179 1550/2829/179 1546/2661/179 +f 1530/2666/180 1532/2831/180 1534/2827/180 +f 1534/2827/180 1545/2664/180 1530/2666/180 +f 1545/2664/180 1547/2832/180 1549/2665/180 +f 1549/2665/180 1472/2607/180 1530/2666/180 +f 1475/2598/179 1468/2579/179 1527/2833/179 +f 1468/2579/179 1471/2808/179 1529/2663/179 +f 1475/2598/179 1527/2833/179 1487/2667/179 +f 1529/2663/179 1527/2833/179 1468/2579/179 +f 1470/2609/180 1476/2762/180 1528/2834/180 +f 1476/2762/180 1486/2835/180 1488/2836/180 +f 1528/2834/180 1476/2762/180 1488/2836/180 +f 1528/2834/180 1530/2666/180 1470/2609/180 +f 1599/2669/183 1602/2821/183 1530/2670/183 +f 1607/2672/185 1487/2673/185 1527/2645/185 +f 1487/2673/185 1607/2672/185 1603/2674/185 +f 1602/2675/174 1605/2686/174 1608/2676/174 +f 1603/2674/185 1599/2669/185 1528/2671/185 +f 1601/2678/179 1599/2681/179 1603/2679/179 +f 1601/2678/179 1605/2686/179 1602/2680/179 +f 1607/2682/180 1597/2837/180 1604/2683/180 +f 1604/2683/180 1597/2837/180 1600/2685/180 +f 1601/2678/186 1606/2643/186 1598/2684/186 +f 1604/2683/187 1608/2676/187 1605/2686/187 +f 1613/2688/174 1616/2838/174 1619/2839/174 +f 1619/2839/174 1622/2689/174 1613/2688/174 +f 1622/2689/174 1625/2840/174 1632/2687/174 +f 1625/2840/174 1629/2841/174 1632/2687/174 +f 1636/2691/174 1634/2842/174 1623/2843/174 +f 1634/2842/174 1630/2844/174 1623/2843/174 +f 1623/2843/174 1614/2692/174 1636/2691/174 +f 1614/2692/174 1610/2845/174 1637/2690/174 +f 1641/2693/176 1642/2697/176 1640/2694/176 +f 1645/2696/179 1646/2846/179 1642/2697/179 +f 1644/2698/180 1643/2847/180 1639/2695/180 +f 1643/2699/174 1645/2848/174 1641/2693/174 +f 1651/2700/176 1653/2704/176 1654/2701/176 +f 1648/2703/179 1650/2849/179 1653/2704/179 +f 1649/2705/188 1654/2701/188 1653/2704/188 +f 1647/2707/180 1652/2702/180 1654/2701/180 +f 1648/2709/174 1651/2700/174 1652/2702/174 +f 1659/2711/176 1661/2719/176 1662/2712/176 +f 1655/2714/189 1660/2713/189 1662/2712/189 +f 1656/2716/190 1659/2711/190 1660/2713/190 +f 1656/2718/191 1658/2850/191 1661/2719/191 +f 1657/2720/192 1662/2712/192 1661/2719/192 +f 1666/2722/180 1678/2725/180 1668/2723/180 +f 1678/2725/180 1680/2727/180 1670/2726/180 +f 1680/2727/180 1682/2729/180 1672/2728/180 +f 1682/2729/180 1684/2731/180 1674/2730/180 +f 1684/2731/180 1686/2851/180 1676/2732/180 +f 1667/2733/179 1677/2737/179 1664/2734/179 +f 1669/2736/179 1679/2852/179 1677/2737/179 +f 1681/2738/179 1679/2852/179 1669/2736/179 +f 1673/2740/179 1683/2742/179 1681/2738/179 +f 1675/2741/179 1685/2853/179 1683/2742/179 +f 1688/2743/180 1702/2854/180 1700/2744/180 +f 1690/2745/180 1700/2744/180 1698/2746/180 +f 1692/2747/180 1698/2746/180 1696/2748/180 +f 1691/2750/179 1693/2855/179 1695/2751/179 +f 1689/2753/179 1691/2750/179 1697/2752/179 +f 1687/2755/179 1689/2753/179 1699/2754/179 +f 1706/2757/178 1705/2770/178 1710/2758/178 +f 1704/2760/179 1703/2856/179 1490/2599/179 +f 1489/2653/180 1478/2655/180 1480/2763/180 +f 1480/2763/180 1482/2857/180 1476/2762/180 +f 1482/2857/180 1484/2858/180 1476/2762/180 +f 1484/2858/180 1486/2835/180 1476/2762/180 +f 1477/2761/179 1490/2599/179 1479/2764/179 +f 1490/2599/179 1475/2598/179 1479/2764/179 +f 1475/2598/179 1485/2668/179 1483/2594/179 +f 1483/2594/179 1481/2592/179 1475/2598/179 +f 1490/2765/175 1703/2772/175 1709/2766/175 +f 1704/2773/174 1477/2587/174 1711/2771/174 +f 1477/2587/174 1478/2589/174 1708/2768/174 +f 1478/2589/174 1706/2757/174 1712/2759/174 +f 1708/2768/174 1711/2771/174 1477/2587/174 +f 1489/2769/175 1707/2767/175 1710/2758/175 +f 1711/2771/178 1709/2766/178 1703/2772/178 +f 1709/2766/193 1711/2771/193 1708/2774/193 +f 1708/2774/194 1712/2759/194 1710/2758/194 +f 1714/2776/179 1716/2859/179 1715/2777/179 +f 1523/2779/175 1519/2860/175 1496/2780/175 +f 1518/2782/175 1526/2783/175 1523/2779/175 +f 1526/2783/175 1518/2782/175 1517/2784/175 +s 1 +f 1396/2861/180 1397/2499/195 1395/2514/180 +f 1398/2862/195 1399/2497/196 1397/2499/195 +f 1400/2863/196 1401/2495/178 1399/2497/196 +f 1402/2520/178 1403/2510/197 1401/2513/178 +f 1404/2522/197 1405/2508/198 1403/2510/197 +f 1406/2864/198 1407/2507/179 1405/2508/198 +f 1408/2865/179 1409/2505/199 1407/2507/179 +f 1410/2866/199 1411/2503/200 1409/2505/199 +f 1412/2867/200 1413/2501/176 1411/2503/200 +f 1414/2868/176 1415/2494/201 1413/2501/176 +f 1416/2869/201 1417/2492/202 1415/2494/201 +f 1418/2870/202 1395/2514/180 1417/2492/202 +f 1425/2506/180 1436/2871/202 1424/2509/202 +f 1422/2786/176 1433/2872/200 1421/2496/200 +f 1429/2493/197 1440/2873/178 1428/2500/178 +f 1426/2504/195 1437/2874/180 1425/2506/180 +f 1423/2511/201 1434/2875/176 1422/2512/176 +f 1430/2515/198 1441/2876/197 1429/2493/197 +f 1420/2498/199 1431/2877/179 1419/2516/179 +f 1427/2502/196 1438/2878/195 1426/2504/195 +f 1424/2509/202 1435/2879/201 1423/2511/201 +f 1419/2516/179 1442/2880/198 1430/2515/198 +f 1421/2496/200 1432/2881/199 1420/2498/199 +f 1428/2500/178 1439/2882/196 1427/2502/196 +f 1451/2540/200 1464/2552/176 1452/2537/176 +f 1448/2518/198 1461/2577/179 1449/2544/179 +f 1445/2534/196 1458/2794/178 1446/2529/178 +f 1452/2537/176 1465/2556/201 1453/2538/201 +f 1449/2544/179 1462/2576/199 1450/2545/199 +f 1446/2787/178 1459/2569/197 1447/2521/197 +f 1453/2538/201 1466/2555/202 1454/2524/202 +f 1443/2525/180 1456/2563/195 1444/2527/195 +f 1450/2545/199 1463/2549/200 1451/2540/200 +f 1447/2521/197 1460/2572/198 1448/2518/198 +f 1443/2525/180 1466/2555/202 1455/2560/180 +f 1444/2527/195 1457/2566/196 1445/2534/196 +f 1473/2800/178 1471/2883/203 1474/2583/178 +f 1500/2884/204 1504/2885/179 1499/2886/179 +f 1499/2886/179 1508/2887/205 1503/2888/205 +f 1501/2805/206 1505/2889/204 1500/2884/204 +f 1503/2888/205 1507/2816/207 1502/2804/207 +f 1531/2648/175 1534/2890/208 1532/2649/175 +f 1537/2891/209 1535/2892/210 1538/2893/209 +f 1537/2891/209 1534/2890/208 1533/2894/208 +f 1540/2657/174 1541/2895/211 1539/2651/174 +f 1542/2896/211 1543/2897/212 1541/2895/211 +f 1544/2898/212 1545/2899/213 1543/2897/212 +f 1546/2900/213 1547/2901/214 1545/2899/213 +f 1548/2902/215 1549/2903/216 1547/2904/215 +f 1549/2903/216 1471/2883/203 1472/2905/203 +f 1588/2906/217 1553/2907/218 1551/2908/219 +f 1552/2909/220 1567/2910/221 1554/2911/222 +f 1562/2912/223 1573/2913/224 1563/2914/225 +f 1563/2914/225 1574/2915/226 1564/2916/227 +f 1555/2917/228 1559/2918/229 1568/2919/230 +f 1558/2920/231 1569/2921/232 1557/2922/233 +f 1585/2923/234 1586/2924/235 1596/2925/236 +f 1561/2926/237 1572/2927/238 1562/2912/223 +f 1558/2920/231 1556/2928/239 1570/2929/240 +f 1556/2928/239 1555/2917/228 1568/2919/230 +f 1567/2910/221 1561/2926/237 1554/2911/222 +f 1552/2909/220 1557/2922/233 1566/2930/241 +f 1565/2931/242 1575/2932/243 1560/2933/244 +f 1575/2932/243 1559/2918/229 1560/2933/244 +f 1569/2921/232 1567/2910/221 1566/2930/241 +f 1594/2934/245 1583/2935/246 1584/2936/247 +f 1574/2915/226 1570/2929/240 1568/2919/230 +f 1568/2919/230 1575/2932/243 1574/2915/226 +f 1595/2937/248 1584/2936/247 1585/2923/234 +f 1576/2938/249 1589/2939/250 1580/2940/251 +f 1590/2941/252 1579/2942/253 1578/2943/254 +f 1596/2925/236 1595/2937/248 1585/2923/234 +f 1593/2944/255 1582/2945/256 1583/2935/246 +f 1579/2942/253 1591/2946/257 1577/2947/258 +f 1577/2947/258 1589/2939/250 1576/2938/249 +f 1588/2906/217 1582/2945/256 1592/2948/259 +f 1553/2907/218 1587/2949/260 1578/2943/254 +f 1586/2924/235 1581/2950/261 1596/2925/236 +f 1581/2950/261 1589/2939/250 1596/2925/236 +f 1588/2906/217 1590/2941/252 1587/2949/260 +f 1595/2937/248 1589/2939/250 1591/2946/257 +f 1589/2939/250 1595/2937/248 1596/2925/236 +f 1552/2909/220 1578/2951/254 1557/2952/233 +f 1553/2953/218 1554/2911/222 1551/2954/219 +f 1582/2955/256 1554/2911/222 1561/2956/237 +f 1612/2957/262 1627/2958/263 1615/2959/264 +f 1612/2957/262 1616/2960/265 1613/2961/266 +f 1615/2959/264 1619/2962/267 1616/2960/265 +f 1615/2959/264 1627/2963/263 1618/2964/268 +f 1618/2964/268 1622/2965/269 1619/2962/267 +f 1618/2964/268 1627/2966/263 1621/2967/270 +f 1609/2968/271 1636/2969/272 1637/2970/273 +f 1622/2965/269 1624/2971/274 1625/2972/275 +f 1609/2968/271 1620/2973/276 1638/2974/277 +f 1621/2967/270 1627/2975/263 1624/2971/274 +f 1611/2976/278 1637/2970/273 1610/2977/279 +f 1625/2972/275 1628/2978/280 1629/2979/281 +f 1611/2976/278 1620/2980/276 1609/2968/271 +f 1624/2971/274 1627/2981/263 1628/2978/280 +f 1617/2982/282 1610/2977/279 1614/2983/283 +f 1629/2979/281 1631/2984/284 1632/2985/285 +f 1617/2982/282 1620/2986/276 1611/2976/278 +f 1628/2978/280 1627/2987/263 1631/2984/284 +f 1630/2988/286 1626/2989/287 1623/2990/288 +f 1633/2991/289 1620/2992/276 1626/2989/287 +f 1634/2993/290 1633/2991/289 1630/2988/286 +f 1635/2994/291 1620/2995/276 1633/2991/289 +f 1636/2969/272 1635/2994/291 1634/2993/290 +f 1638/2974/277 1620/2996/276 1635/2994/291 +f 1572/2927/238 1570/2929/240 1573/2913/224 +f 1573/2913/224 1570/2929/240 1574/2915/226 +f 1591/2946/257 1594/2934/245 1595/2937/248 +f 1593/2944/255 1591/2946/257 1590/2941/252 +f 1575/2932/243 1564/2916/227 1574/2915/226 +f 1565/2931/242 1564/2916/227 1575/2932/243 +f 1665/2997/292 1667/2998/293 1663/2735/292 +f 1668/2999/293 1669/3000/294 1667/2998/293 +f 1670/3001/294 1671/3002/295 1669/3000/294 +f 1672/3003/295 1673/3004/296 1671/3002/295 +f 1674/3005/297 1675/3006/298 1673/3004/296 +f 1664/2734/299 1678/2725/300 1666/2722/299 +f 1677/2737/300 1680/2727/301 1678/2725/300 +f 1679/2852/301 1682/2729/302 1680/2727/301 +f 1681/2738/302 1684/2731/303 1682/2729/302 +f 1683/2742/303 1686/2851/304 1684/2731/303 +f 1690/3007/305 1687/3008/215 1688/3009/215 +f 1692/3010/306 1689/3011/305 1690/3007/305 +f 1694/2749/307 1691/3012/306 1692/3010/306 +f 1696/2748/308 1693/2855/307 1694/2749/307 +f 1698/3013/309 1695/2751/308 1696/2748/308 +f 1700/3014/309 1697/3015/309 1698/3013/309 +f 1702/3016/310 1699/3017/309 1700/3014/309 +f 1570/2929/240 1556/2928/239 1568/2919/230 +f 1577/2947/258 1591/2946/257 1589/2939/250 +f 1571/3018/311 1569/2921/232 1572/2927/238 +f 1590/2941/252 1592/2948/259 1593/2944/255 +f 1566/2930/241 1557/2922/233 1569/2921/232 +f 1578/2943/254 1587/2949/260 1590/2941/252 +f 1396/2861/180 1398/2862/195 1397/2499/195 +f 1398/2862/195 1400/2863/196 1399/2497/196 +f 1400/2863/196 1402/3019/178 1401/2495/178 +f 1402/2520/178 1404/2522/197 1403/2510/197 +f 1404/2522/197 1406/2864/198 1405/2508/198 +f 1406/2864/198 1408/2865/179 1407/2507/179 +f 1408/2865/179 1410/2866/199 1409/2505/199 +f 1410/2866/199 1412/2867/200 1411/2503/200 +f 1412/2867/200 1414/2868/176 1413/2501/176 +f 1414/2868/176 1416/2869/201 1415/2494/201 +f 1416/2869/201 1418/2870/202 1417/2492/202 +f 1418/2870/202 1396/2861/180 1395/2514/180 +f 1425/2506/180 1437/2874/180 1436/2871/202 +f 1422/2786/176 1434/3020/176 1433/2872/200 +f 1429/2493/197 1441/2876/197 1440/2873/178 +f 1426/2504/195 1438/2878/195 1437/2874/180 +f 1423/2511/201 1435/2879/201 1434/2875/176 +f 1430/2515/198 1442/2880/198 1441/2876/197 +f 1420/2498/199 1432/2881/199 1431/2877/179 +f 1427/2502/196 1439/2882/196 1438/2878/195 +f 1424/2509/202 1436/2871/202 1435/2879/201 +f 1419/2516/179 1431/2877/179 1442/2880/198 +f 1421/2496/200 1433/2872/200 1432/2881/199 +f 1428/2500/178 1440/2873/178 1439/2882/196 +f 1451/2540/200 1463/2549/200 1464/2552/176 +f 1448/2518/198 1460/2572/198 1461/2577/179 +f 1445/2534/196 1457/2566/196 1458/2794/178 +f 1452/2537/176 1464/2552/176 1465/2556/201 +f 1449/2544/179 1461/2577/179 1462/2576/199 +f 1446/2787/178 1458/2570/178 1459/2569/197 +f 1453/2538/201 1465/2556/201 1466/2555/202 +f 1443/2525/180 1455/2560/180 1456/2563/195 +f 1450/2545/199 1462/2576/199 1463/2549/200 +f 1447/2521/197 1459/2569/197 1460/2572/198 +f 1443/2525/180 1454/2524/202 1466/2555/202 +f 1444/2527/195 1456/2563/195 1457/2566/196 +f 1473/2800/178 1472/2905/203 1471/2883/203 +f 1500/2884/204 1505/2889/204 1504/2885/179 +f 1499/2886/179 1504/2885/179 1508/2887/205 +f 1501/2805/206 1506/2814/206 1505/2889/204 +f 1503/2888/205 1508/2887/205 1507/2816/207 +f 1531/2648/175 1533/2894/208 1534/2890/208 +f 1537/2891/209 1536/3021/210 1535/2892/210 +f 1537/2891/209 1538/2893/209 1534/2890/208 +f 1540/2657/174 1542/2896/211 1541/2895/211 +f 1542/2896/211 1544/2898/212 1543/2897/212 +f 1544/2898/212 1546/2900/213 1545/2899/213 +f 1546/2900/213 1548/3022/214 1547/2901/214 +f 1548/2902/215 1550/3023/216 1549/2903/216 +f 1549/2903/216 1550/3023/216 1471/2883/203 +f 1588/2906/217 1587/2949/260 1553/2907/218 +f 1552/2909/220 1566/2930/241 1567/2910/221 +f 1562/2912/223 1572/2927/238 1573/2913/224 +f 1563/2914/225 1573/2913/224 1574/2915/226 +f 1558/2920/231 1570/2929/240 1569/2921/232 +f 1561/2926/237 1571/3018/311 1572/2927/238 +f 1567/2910/221 1571/3018/311 1561/2926/237 +f 1575/2932/243 1568/2919/230 1559/2918/229 +f 1569/2921/232 1571/3018/311 1567/2910/221 +f 1594/2934/245 1593/2944/255 1583/2935/246 +f 1595/2937/248 1594/2934/245 1584/2936/247 +f 1590/2941/252 1591/2946/257 1579/2942/253 +f 1593/2944/255 1592/2948/259 1582/2945/256 +f 1588/2906/217 1551/2908/219 1582/2945/256 +f 1581/2950/261 1580/2940/251 1589/2939/250 +f 1588/2906/217 1592/2948/259 1590/2941/252 +f 1552/2909/220 1553/2953/218 1578/2951/254 +f 1553/2953/218 1552/2909/220 1554/2911/222 +f 1582/2955/256 1551/2954/219 1554/2911/222 +f 1612/2957/262 1615/2959/264 1616/2960/265 +f 1615/2959/264 1618/2964/268 1619/2962/267 +f 1618/2964/268 1621/2967/270 1622/2965/269 +f 1609/2968/271 1638/2974/277 1636/2969/272 +f 1622/2965/269 1621/2967/270 1624/2971/274 +f 1611/2976/278 1609/2968/271 1637/2970/273 +f 1625/2972/275 1624/2971/274 1628/2978/280 +f 1617/2982/282 1611/2976/278 1610/2977/279 +f 1629/2979/281 1628/2978/280 1631/2984/284 +f 1630/2988/286 1633/2991/289 1626/2989/287 +f 1634/2993/290 1635/2994/291 1633/2991/289 +f 1636/2969/272 1638/2974/277 1635/2994/291 +f 1572/2927/238 1569/2921/232 1570/2929/240 +f 1593/2944/255 1594/2934/245 1591/2946/257 +f 1665/2997/292 1668/2999/293 1667/2998/293 +f 1668/2999/293 1670/3001/294 1669/3000/294 +f 1670/3001/294 1672/3003/295 1671/3002/295 +f 1672/3003/295 1674/3005/297 1673/3004/296 +f 1674/3005/297 1676/3024/298 1675/3006/298 +f 1664/2734/299 1677/2737/300 1678/2725/300 +f 1677/2737/300 1679/2852/301 1680/2727/301 +f 1679/2852/301 1681/2738/302 1682/2729/302 +f 1681/2738/302 1683/2742/303 1684/2731/303 +f 1683/2742/303 1685/2853/304 1686/2851/304 +f 1690/3007/305 1689/3011/305 1687/3008/215 +f 1692/3010/306 1691/3012/306 1689/3011/305 +f 1694/2749/307 1693/2855/307 1691/3012/306 +f 1696/2748/308 1695/2751/308 1693/2855/307 +f 1698/3013/309 1697/3015/309 1695/2751/308 +f 1700/3014/309 1699/3017/309 1697/3015/309 +f 1702/3016/310 1701/3025/310 1699/3017/309 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index c071a37b1..adc21ea33 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -201,6 +201,7 @@ "weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]}, "weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]}, "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, + "weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/44Shoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/44Shoot.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b76f3c389cc748a62e4b530c718e859d5236d31e GIT binary patch literal 25552 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%0D@^RL5=XpN^Z`?z?^Y9AJB)Q?0F(x2h!Wxl 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lilmac_plume.png b/src/main/resources/assets/hbm/textures/models/weapons/lilmac_plume.png new file mode 100644 index 0000000000000000000000000000000000000000..5df1f5069773c35d21837bb945ce84fb6421cf98 GIT binary patch literal 1525 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 literal 0 HcmV?d00001 From b6ff9627af83d2920567811dae416435597b29b3 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 4 Jan 2024 19:43:58 +0100 Subject: [PATCH 055/376] and now for some textures --- .../java/com/hbm/items/weapon/ItemGunPip.java | 29 +++++++++--------- .../com/hbm/main/ModEventHandlerClient.java | 4 +-- .../item/weapon/ItemRenderWeaponLilMac.java | 9 ++++-- .../hbm/textures/models/weapons/lilmac.png | Bin 2997 -> 4529 bytes .../textures/models/weapons/lilmac_scope.png | Bin 934 -> 849 bytes 5 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/hbm/items/weapon/ItemGunPip.java b/src/main/java/com/hbm/items/weapon/ItemGunPip.java index 1a4179dd9..04af2530d 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunPip.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunPip.java @@ -62,33 +62,34 @@ public class ItemGunPip extends ItemGunBase { @SideOnly(Side.CLIENT) public BusAnimation getAnimation(ItemStack stack, AnimType type) { - if(type == AnimType.EQUIP) { + if(type == AnimType.EQUIP) { return new BusAnimation() .addBus("ROTATE", new BusAnimationSequence() .addKeyframe(new BusAnimationKeyframe(-360, 0, 0, 350)) ); - } + } - if(type == AnimType.CYCLE) { + if(type == AnimType.CYCLE) { lastShot = System.currentTimeMillis(); + int s = 1; return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -3, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, -3, 50 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250 * s)) ) .addBus("HAMMER", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 300)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 300 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) ) .addBus("DRUM", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50 * s)) ); } - if(type == AnimType.RELOAD) { - int s = 1; + if(type == AnimType.RELOAD) { + int s = 1; return new BusAnimation() .addBus("RELAOD_TILT", new BusAnimationSequence() .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 100 * s)) @@ -130,8 +131,8 @@ public class ItemGunPip extends ItemGunBase { .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 950 * s)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1 * s)) ); - } + } - return null; + return null; } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 16be815d9..72e07c9b8 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -241,7 +241,7 @@ public class ModEventHandlerClient { Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); }*/ - List text = new ArrayList(); + /*List text = new ArrayList(); MovingObjectPosition pos = Library.rayTrace(player, 500, 1, false, true, false); for(int i = 0; i < 2; i++) if(pos != null && pos.typeOfHit == pos.typeOfHit.BLOCK) { @@ -309,7 +309,7 @@ public class ModEventHandlerClient { } while(distanceToCover != 0); ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text); - } + }*/ } /// HANLDE ANIMATION BUSES /// diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java index 7d79a4476..7ab0e8af3 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java @@ -74,7 +74,7 @@ public class ItemRenderWeaponLilMac implements IItemRenderer { GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glAlphaFunc(GL11.GL_GREATER, 0F); GL11.glTranslated(-10, 2.25, 0); - GL11.glTranslated(-recoil[2] * 3, -recoil[2] * 2, 0); + GL11.glTranslated(-recoil[2] * 3.5, -recoil[2] * 1.375, 0); if(ItemGunPip.smokeNodes.size() > 1 && equipSpin[0] == 0) { @@ -103,7 +103,9 @@ public class ItemRenderWeaponLilMac implements IItemRenderer { tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); tess.addVertex(past[0], past[1], past[2]); } + GL11.glDepthMask(false); tess.draw(); + GL11.glDepthMask(true); } GL11.glEnable(GL11.GL_TEXTURE_2D); @@ -132,6 +134,7 @@ public class ItemRenderWeaponLilMac implements IItemRenderer { double[] cylinderFlip = HbmAnimations.getRelevantTransformation("RELOAD_CYLINDER"); GL11.glPushMatrix(); /// DRUM PUSH /// GL11.glRotated(cylinderFlip[0], 1, 0, 0); + ResourceManager.lilmac.renderPart("Pivot"); GL11.glTranslated(0, 1.75, 0); GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * -60, 1, 0, 0); GL11.glTranslated(0, -1.75, 0); @@ -191,9 +194,7 @@ public class ItemRenderWeaponLilMac implements IItemRenderer { tess.addVertexWithUV(lengthOffset, -height, -length + offset, 1, 0); tess.addVertexWithUV(lengthOffset, height, -length + offset, 0 ,0); - GL11.glDepthMask(true); tess.draw(); - GL11.glDepthMask(false); GL11.glPopMatrix(); GL11.glDisable(GL11.GL_BLEND); } @@ -223,6 +224,8 @@ public class ItemRenderWeaponLilMac implements IItemRenderer { case INVENTORY: GL11.glEnable(GL11.GL_LIGHTING); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); double s = 0.8D; GL11.glTranslated(8, 8, 0); diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lilmac.png b/src/main/resources/assets/hbm/textures/models/weapons/lilmac.png index 4002d578752dd2b363d90763c0698cdfc88e782c..8490d4f2a4968d5c6d1398aa4ad62c77c54f776b 100644 GIT binary patch delta 4520 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 delta 2976 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 S{+V9H00f?{elF{r5}E+3QM5V$ From 102f26c8d319cc161189c3539e6ed66ee3a7cd7a Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 4 Jan 2024 14:31:57 -0500 Subject: [PATCH 056/376] sweet baby ray's honey mustard fixed boundingbox problems and a crash --- .../java/com/hbm/blocks/machine/MachineStrandCaster.java | 4 ++-- .../tileentity/machine/TileEntityMachineStrandCaster.java | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java index ee6dab3a8..9f4a7f745 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -53,7 +53,6 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce @Override public TileEntity createNewTileEntity(World world, int meta) { - if (meta >= 12) return new TileEntityMachineStrandCaster(); if (meta >= 6) return new TileEntityProxyCombo(true, false, true).moltenMetal(); return null; @@ -212,7 +211,8 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce if (tool != ToolType.SCREWDRIVER) return false; - TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); + int[] coords = findCore(world, x, y, z); + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); if (cast.slots[0] == null) return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index dc9e30c83..b7044b33f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -318,12 +318,12 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase if (bb == null) { bb = AxisAlignedBB.getBoundingBox( - xCoord - 1, + xCoord - 7, yCoord, - zCoord - 1, - xCoord + 6, + zCoord - 7, + xCoord + 7, yCoord + 3, - zCoord + 6 + zCoord + 7 ); } return bb; From 860d79a2d05bce4635bfe64541864ab177140b38 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 4 Jan 2024 22:13:40 -0600 Subject: [PATCH 057/376] pipettes! --- src/main/java/com/hbm/items/ModItems.java | 11 ++ .../java/com/hbm/items/tool/ItemPipette.java | 171 ++++++++++++++++++ src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../assets/hbm/textures/items/pipette.png | Bin 0 -> 186 bytes .../hbm/textures/items/pipette_overlay.png | Bin 0 -> 159 bytes 5 files changed, 185 insertions(+) create mode 100644 src/main/java/com/hbm/items/tool/ItemPipette.java create mode 100644 src/main/resources/assets/hbm/textures/items/pipette.png create mode 100644 src/main/resources/assets/hbm/textures/items/pipette_overlay.png diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 30d2e7b34..d402c03ef 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -935,6 +935,9 @@ public class ModItems { public static Item fluid_barrel_full; public static Item fluid_barrel_empty; public static Item fluid_barrel_infinite; + public static Item pipette; + public static Item pipette_boron; + public static Item pipette_laboratory; public static Item disperser_canister_empty; public static Item disperser_canister; @@ -4652,6 +4655,9 @@ public class ModItems { fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); + pipette = new ItemPipette().setUnlocalizedName("pipette").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette"); + pipette_boron = new ItemPipette().setUnlocalizedName("pipette_boron").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_boron"); + pipette_laboratory = new ItemPipette().setUnlocalizedName("pipette_laboratory").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_laboratory"); disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); @@ -6382,6 +6388,11 @@ public class ModItems { GameRegistry.registerItem(fluid_barrel_full, fluid_barrel_full.getUnlocalizedName()); GameRegistry.registerItem(fluid_barrel_infinite, fluid_barrel_infinite.getUnlocalizedName()); + //Pipette + GameRegistry.registerItem(pipette, pipette.getUnlocalizedName()); + GameRegistry.registerItem(pipette_boron, pipette_boron.getUnlocalizedName()); + GameRegistry.registerItem(pipette_laboratory, pipette_laboratory.getUnlocalizedName()); + //Disperser Canister GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java new file mode 100644 index 000000000..9ca02b46a --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -0,0 +1,171 @@ +package com.hbm.items.tool; + +import api.hbm.fluid.IFillableItem; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import com.hbm.items.ModItems; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import java.util.List; + +public class ItemPipette extends Item implements IFillableItem { + + public ItemPipette() { + this.setMaxDamage(0); + } + + @SideOnly(Side.CLIENT) protected IIcon overlayIcon; + + public int amount = 50; + + public FluidType type = Fluids.NONE; + + public int getMaxFill() { + if(this == ModItems.pipette_laboratory) + return 50; + else + return 1_000; + } + + public void initNBT(ItemStack stack) { + + stack.stackTagCompound = new NBTTagCompound(); + + this.setFill(stack, type, 0); + } + + public void setFill(ItemStack stack, FluidType type, int fill) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + this.type = type; + stack.stackTagCompound.setInteger(type.getName(), fill); + } + + public int getFill(ItemStack stack, FluidType type) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + return stack.stackTagCompound.getInteger(type.getName()); + } + + @Override + @SideOnly(Side.CLIENT) + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + if(!world.isRemote) { + if (this.getFill(stack, type) == 0) { + + if(this != ModItems.pipette_laboratory) + this.amount = player.isSneaking() ? Math.min(this.amount + 50, 1_000) : Math.max(this.amount - 50, 50); + else + this.amount = player.isSneaking() ? Math.min(this.amount + 1, 50) : Math.max(this.amount - 1, 1); + + + player.addChatMessage(new ChatComponentText(this.amount + "/" + this.getMaxFill() + "mB")); + } else { + player.addChatMessage(new ChatComponentText("Pipette not empty!")); + } + } + return stack; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + if(this == ModItems.pipette_laboratory) + list.add("Now with 50x more precision!"); + list.add("Fluid: " + type.getLocalizedName()); + list.add("Amount: " + this.getFill(stack, type) + "/" + amount + "mB (" + this.getMaxFill() + "mB)"); + } + + @Override + public boolean acceptsFluid(FluidType type, ItemStack stack) { + if(this == ModItems.pipette_boron || this == ModItems.pipette_laboratory) + return (type == this.type || this.getFill(stack, type) == 0); + return (type == this.type || this.getFill(stack, type) == 0) && !type.needsLeadContainer(); + } + + @Override + public int tryFill(FluidType type, int amount, ItemStack stack) { + + if(!acceptsFluid(type, stack)) + return amount; + + if(this.getFill(stack, type) == 0) + this.setFill(stack, type, 0); + + int req = this.amount - this.getFill(stack, type); + int toFill = Math.min(req, amount); + + this.setFill(stack, type, this.getFill(stack, type) + toFill); + + return amount - toFill; + } + + @Override + public boolean providesFluid(FluidType type, ItemStack stack) { + return this.type == type; + } + + @Override + public int tryEmpty(FluidType type, int amount, ItemStack stack) { + if(providesFluid(type, stack)) { + int toUnload = Math.min(amount, this.getFill(stack, type)); + this.setFill(stack, type,this.getFill(stack, type) - toUnload); + return toUnload; + } + return amount; + } + + //this took me way too long to figure out + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister icon) { + super.registerIcons(icon); + this.overlayIcon = icon.registerIcon("hbm:pipette_overlay"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) { + return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + if(pass == 0) { + return 0xffffff; + } else { + int j = Fluids.fromID(stack.getItemDamage()).getColor(); + + if(j < 0) { + j = 0xffffff; + } + + return j; + } + } + +} diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 845be3e2f..b403e401e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3663,6 +3663,9 @@ item.powder_xe135_tiny.name=Tiny Pile of Xenon-135 Powder item.powder_yellowcake.name=Yellowcake item.powder_zirconium.name=Zirconium Powder item.power_net_tool.name=Cable Network Analysis Tool +item.pipette.name=Pipette +item.pipette_boron.name=Boron Pipette +item.pipette_laboratory.name=Laboratory Grade Pipette item.primer_357.name=.357 Magnum Primer (x24) item.primer_44.name=.44 Magnum Primer (x24) item.primer_50.name=Large Caliber Primer (x12) diff --git a/src/main/resources/assets/hbm/textures/items/pipette.png b/src/main/resources/assets/hbm/textures/items/pipette.png new file mode 100644 index 0000000000000000000000000000000000000000..00ebcd67423fdf013dbc4b3cac6c2339cb30d27a GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL4Qvd#}EtuWQiyR6_qFU9L_tJFivpG%*-@! zGi%}WddzD3zkYJMHb;ZW{r~^@dpy4}ZAueRJE{7jtGy#lz~P$1wlo1>ppZiJ;{Y}u a9tO#2u?t_u814cZ&EV1kQ0v!Yl3>X-g*0Hd~n}{(1^)q<7`njxgN@xNARHP?~ literal 0 HcmV?d00001 From 0ab03d7b77db2464064d72f80b7685adebf3da7d Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Fri, 5 Jan 2024 15:44:43 +0000 Subject: [PATCH 058/376] small flixes --- src/main/java/com/hbm/items/tool/ItemPipette.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index 9ca02b46a..6358bb521 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -24,7 +24,7 @@ public class ItemPipette extends Item implements IFillableItem { @SideOnly(Side.CLIENT) protected IIcon overlayIcon; - public int amount = 50; + public int amount; public FluidType type = Fluids.NONE; @@ -40,6 +40,7 @@ public class ItemPipette extends Item implements IFillableItem { stack.stackTagCompound = new NBTTagCompound(); this.setFill(stack, type, 0); + this.amount = getMaxFill() } public void setFill(ItemStack stack, FluidType type, int fill) { @@ -95,8 +96,8 @@ public class ItemPipette extends Item implements IFillableItem { @Override public boolean acceptsFluid(FluidType type, ItemStack stack) { if(this == ModItems.pipette_boron || this == ModItems.pipette_laboratory) - return (type == this.type || this.getFill(stack, type) == 0); - return (type == this.type || this.getFill(stack, type) == 0) && !type.needsLeadContainer(); + return (type == this.type || this.getFill(stack, type) == 0 && !type.isAntimatter()); + return (type == this.type || this.getFill(stack, type) == 0) && (!type.isCorrosive() && !type.isAntimatter()); } @Override From 72fa1bda7fb7b336970b5a5f1d81eb2b2d9eefd2 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Fri, 5 Jan 2024 16:30:30 +0000 Subject: [PATCH 059/376] raaagh --- src/main/java/com/hbm/items/tool/ItemPipette.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index 6358bb521..f0b8fb026 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -1,19 +1,23 @@ package com.hbm.items.tool; import api.hbm.fluid.IFillableItem; + import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import com.hbm.items.ModItems; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ChatComponentText; import net.minecraft.util.IIcon; import net.minecraft.world.World; + import java.util.List; public class ItemPipette extends Item implements IFillableItem { @@ -24,7 +28,7 @@ public class ItemPipette extends Item implements IFillableItem { @SideOnly(Side.CLIENT) protected IIcon overlayIcon; - public int amount; + public int amount = this.getMaxFill(); public FluidType type = Fluids.NONE; @@ -40,7 +44,6 @@ public class ItemPipette extends Item implements IFillableItem { stack.stackTagCompound = new NBTTagCompound(); this.setFill(stack, type, 0); - this.amount = getMaxFill() } public void setFill(ItemStack stack, FluidType type, int fill) { From 56682e5c27c1fe5ba848acf2f858d59141edfc6e Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Fri, 5 Jan 2024 14:07:43 -0600 Subject: [PATCH 060/376] Small fix --- src/main/java/com/hbm/items/tool/ItemPipette.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index f0b8fb026..f18bdd681 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -64,7 +64,6 @@ public class ItemPipette extends Item implements IFillableItem { } @Override - @SideOnly(Side.CLIENT) public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if(!stack.hasTagCompound()) { From f254756c3d1787827c0cd4f0aed546506ad6059a Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 5 Jan 2024 23:33:11 +0100 Subject: [PATCH 061/376] bolts, now with revolutionary gregtech compat --- changelog | 47 ++++++++++------ src/main/java/api/hbm/energy/PowerNet.java | 11 +++- .../com/hbm/blocks/generic/BlockKeyhole.java | 1 + .../blocks/generic/BlockToolConversion.java | 3 +- .../java/com/hbm/blocks/machine/Watz.java | 3 +- .../java/com/hbm/crafting/ArmorRecipes.java | 2 +- .../com/hbm/crafting/ConsumableRecipes.java | 8 +-- .../java/com/hbm/crafting/ToolRecipes.java | 18 +++--- .../java/com/hbm/crafting/WeaponRecipes.java | 24 ++++---- .../hbm/handler/nei/ConstructionHandler.java | 6 +- .../com/hbm/inventory/OreDictManager.java | 3 + src/main/java/com/hbm/inventory/OreNames.java | 3 +- .../hbm/inventory/gui/GUIMachineRadGen.java | 2 +- .../inventory/material/MaterialShapes.java | 1 + .../java/com/hbm/inventory/material/Mats.java | 6 +- .../inventory/recipes/AssemblerRecipes.java | 50 ++++++++--------- .../inventory/recipes/ChemplantRecipes.java | 4 +- .../inventory/recipes/anvil/AnvilRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 9 +-- .../com/hbm/items/special/ItemAutogen.java | 2 +- .../java/com/hbm/items/tool/ItemBoltgun.java | 8 +-- .../java/com/hbm/lib/HbmChestContents.java | 4 +- .../java/com/hbm/main/CraftingManager.java | 53 ++++++++++-------- src/main/java/com/hbm/main/MainRegistry.java | 6 ++ .../com/hbm/main/ModEventHandlerClient.java | 6 -- .../item/weapon/ItemRenderWeaponLilMac.java | 2 +- .../machine/TileEntityMachineRadGen.java | 10 ++-- src/main/resources/assets/hbm/lang/de_DE.lang | 3 +- src/main/resources/assets/hbm/lang/en_US.lang | 3 +- .../textures/blocks/block_advanced_alloy.png | Bin 358 -> 374 bytes .../hbm/textures/blocks/block_red_copper.png | Bin 429 -> 393 bytes .../assets/hbm/textures/items/bolt.png | Bin 0 -> 219 bytes 32 files changed, 168 insertions(+), 132 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/bolt.png diff --git a/changelog b/changelog index b35e9997a..76672bd58 100644 --- a/changelog +++ b/changelog @@ -1,21 +1,36 @@ ## Added -* ??? +* Satellite radar relay + * Can be linked to a death ray + * Allows the death ray to be used with the radar's targeting system +* Combinator funnel + * Has 9 input and 9 output slots + * Will automatically do single ingredient 2x2 or 3x3 recipes like compressing ingots into blocks at up to 9 operations per tick + * Input is strictly on the top and output on the bottom + * The side acts as an output for the ingredients as a way to de-clog the funnel from leftover materials ## Changed -* Adjusted the model for the mining helmet -* The ladders on the acidizer and fluid tanks are now climbable -* Removed those unused blue dungeon bricks -* Red phosphorus is no longer pyrophoric, meaning that multi purpose bomb kits no longer instantly explode -* Adjusted M2's rotations +* Updated russian localization +* Nerfed scrap and dust even further +* Tiny dusts now shred into the generic tiny dust instead of scrap +* Tiny dust now shreds into more tiny dust, just like dust shreds into dust +* Updated the strange stone's texture to be more blatant about what it is +* Added more OC compat for the RBMK console +* Inverted large door's redstone behavior to be in line with vanilla iron doors +* The FEL now has a humming sound when it is active +* Updated the gadget's model + * The wires will not render on the fast graphic setting for performance reasons +* Remade Lil'Pipsqueak + * Now features proper animations for drawing the weapon, firing and reloading, as well as new sounds + * Comes with a new and improved 3D model as well as a cylinder gap flash when firing + * Is now part of the red room loot pool +* Powder box recipes now produce 8 boxes from the same amount of ingredients, making cyclotron recipes more affordable +* Buffed the radiation-powered engine, all valid fuels now produce 10x more energy per tick +* Removed tungsten and HSS bolts as dedicated items, they are now a single bolt item that uses the autogen system + * Regular steel is now also a valid bolt material which will replace tungsten in many recipes where tungsten just doesn't make sense + * Bolts Are now 1/8 of an ingot instead of 1/2 which makes some recipes marginally cheaper, as well as making them equal to GregTech bolts + * Bolts are oredicted and interchangeable, as well as recycleable in the crucible ## Fixed -* Fixed recipe conflict in the arc welder with the medium and large missile fuel tanks -* Fixed doomsday missile not being launchable -* Fixed rocket artillery turret power connectors not working with cables -* Fixed arc welder energy consumption check not taking upgrades into account -* Fixed glyphid gland and 16k item barrels not having a proper container item set, effectively voiding the emtpy container when used in crafting -* Fixed confusing item quantity display in the exposure chamber's NEI handler -* Fixed pheromone being tagged as viscous and therefore not being dispersable, making modified pheromone useless -* Fixed mobs not being able to pathfind through open doors -* Fixed the benelli ejecting the casings wrong -* Fixed casing ejection in general being inconsistent, sometimes flying off into the wrong direction \ No newline at end of file +* Fixed afterburn upgrades not being craftable with bakelite +* Fixed bismuth block not being properly oredicted +* Powder detectors that are used in the same network as diodes should now be somewhat less wrong \ No newline at end of file diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java index 83c84d33a..6d55c2f0c 100644 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ b/src/main/java/api/hbm/energy/PowerNet.java @@ -138,10 +138,17 @@ public class PowerNet implements IPowerNet { cleanup(this.subscribers); lastCleanup = System.currentTimeMillis(); }*/ + + List cache = new ArrayList(); + if(trackingInstances != null && !trackingInstances.isEmpty()) { + cache.addAll(trackingInstances); + } trackingInstances = new ArrayList(); trackingInstances.add(this); - return fairTransfer(this.subscribers, power); + long result = fairTransfer(this.subscribers, power); + trackingInstances.addAll(cache); + return result; } public static void cleanup(List subscribers) { @@ -215,6 +222,8 @@ public class PowerNet implements IPowerNet { PowerNet net = trackingInstances.get(i); net.totalTransfer = net.totalTransfer.add(BigInteger.valueOf(totalTransfer)); } + + trackingInstances.clear(); } return power; diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java index 14dee9d9d..f1c96e0b7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -240,5 +240,6 @@ public class BlockKeyhole extends BlockStone { pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.flask_infusion), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModBlocks.boxcar), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.book_of_), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.gun_revolver_pip), 5)); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java index a4c146f6a..5eecc281b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java +++ b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java @@ -13,7 +13,6 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.MetaBlock; import com.hbm.inventory.RecipesCommon.OreDictStack; -import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.Tuple.Pair; @@ -151,7 +150,7 @@ public class BlockToolConversion extends BlockMulti implements IToolable, ILookO public static HashMap, Pair> conversions = new HashMap(); public static void registerRecipes() { - conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new ComparableStack(ModItems.bolt_dura_steel, 4)}, new MetaBlock(ModBlocks.watz_end, 1))); + conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.DURA.bolt(), 4)}, new MetaBlock(ModBlocks.watz_end, 1))); conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.fusion_conductor, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast())}, new MetaBlock(ModBlocks.fusion_conductor, 1))); } diff --git a/src/main/java/com/hbm/blocks/machine/Watz.java b/src/main/java/com/hbm/blocks/machine/Watz.java index 4f195b722..48dfd23e2 100644 --- a/src/main/java/com/hbm/blocks/machine/Watz.java +++ b/src/main/java/com/hbm/blocks/machine/Watz.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityWatz; @@ -93,7 +94,7 @@ public class Watz extends BlockDummyable { if(i >= 12 && drop) { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.watz_end, 48))); - for(int j = 0; j < 3; j++) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.bolt_dura_steel, 64))); + for(int j = 0; j < 3; j++) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, Mats.MAT_DURA.make(ModItems.bolt))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.watz_element, 36))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.watz_cooler, 26))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_watz_core, 1))); diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 33d455ca6..0ffd281b3 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -124,7 +124,7 @@ public class ArmorRecipes { //Jetpacks CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_fly, 1), new Object[] { "ACA", "TLT", "D D", 'A', AL.plate(), 'C', ModItems.circuit_targeting_tier1, 'T', ModItems.tank_steel, 'L', Items.leather, 'D', ModItems.thruster_small }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_break, 1), new Object[] { "ICI", "TJT", "I I", 'C', ModItems.circuit_targeting_tier2, 'T', ModItems.ingot_dura_steel, 'J', ModItems.jetpack_fly, 'I', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_vector, 1), new Object[] { "TCT", "MJM", "B B", 'C', ModItems.circuit_targeting_tier3, 'T', ModItems.tank_steel, 'J', ModItems.jetpack_break, 'M', ModItems.motor, 'B', ModItems.bolt_dura_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_vector, 1), new Object[] { "TCT", "MJM", "B B", 'C', ModItems.circuit_targeting_tier3, 'T', ModItems.tank_steel, 'J', ModItems.jetpack_break, 'M', ModItems.motor, 'B', DURA.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_boost, 1), new Object[] { "PCP", "DJD", "PAP", 'C', ModItems.circuit_targeting_tier4, 'P', BIGMT.plate(), 'D', DESH.ingot(), 'J', ModItems.jetpack_vector, 'A', ModItems.board_copper }); //Hazmat diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index caac98962..e7be64e7e 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -50,8 +50,8 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.balefire_and_ham, 1), new Object[] { ModItems.balefire_scrambled, Items.cooked_beef }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.med_ipecac, 1), new Object[] { Items.glass_bottle, Items.nether_wart }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.med_ptsd, 1), new Object[] { ModItems.med_ipecac }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), DIAMOND.dust(), Items.wheat, ModItems.bolt_tungsten, ModItems.wire_copper, STEEL.plate() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), EMERALD.dust(), Items.wheat, ModItems.bolt_tungsten, ModItems.wire_copper, STEEL.plate() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), DIAMOND.dust(), Items.wheat, STEEL.bolt(), ModItems.wire_copper, STEEL.plate() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), EMERALD.dust(), Items.wheat, STEEL.bolt(), ModItems.wire_copper, STEEL.plate() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.chocolate_milk, 1), new Object[] { KEY_ANYPANE, new ItemStack(Items.dye, 1, 3), Items.milk_bucket, Fluids.NITROGLYCERIN.getDict(1_000) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.loops), new Object[] { ModItems.flame_pony, Items.wheat, Items.sugar }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.loop_stew), new Object[] { ModItems.loops, ModItems.can_smart, Items.bowl }); @@ -170,8 +170,8 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_yharonite, 1), new Object[] { "YIY", "IYI", "YIY", 'Y', ModItems.billet_yharonite, 'I', ModItems.insert_du }); //Servos - CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set, 1), new Object[] { "MBM", "PBP", "MBM", 'M', ModItems.motor, 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set_desh, 1), new Object[] { "MBM", "PSP", "MBM", 'M', ModItems.motor_desh, 'B', ModItems.bolt_dura_steel, 'P', ALLOY.plate(), 'S', ModItems.servo_set }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set, 1), new Object[] { "MBM", "PBP", "MBM", 'M', ModItems.motor, 'B', STEEL.bolt(), 'P', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set_desh, 1), new Object[] { "MBM", "PSP", "MBM", 'M', ModItems.motor_desh, 'B', DURA.bolt(), 'P', ALLOY.plate(), 'S', ModItems.servo_set }); //Helmet Mods CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'G', KEY_ANYPANE, 'F', IRON.plate() }); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 598c9fd41..8b8f2c27c 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -62,10 +62,10 @@ public class ToolRecipes { addShovel( DESH.ingot(), ModItems.desh_shovel); addHoe( DESH.ingot(), ModItems.desh_hoe); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK }); @@ -76,10 +76,10 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk3, 1), new Object[] { "ECE", "CDC", "SBS", 'E', ModBlocks.block_euphemium_cluster, 'C', ModItems.crystal_schrabidium, 'D', ModItems.drax_mk2, 'S', ModItems.circuit_targeting_tier6, 'B', ItemBattery.getFullBattery(ModItems.battery_spark) }); //Super pickaxes - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.ingot_bismuth, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.volcanic_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.gem_volcanic, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.bismuth_pickaxe, 'F', ModItems.bolt_dura_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.volcanic_pickaxe, 'F', ModItems.bolt_dura_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.ingot_bismuth, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.volcanic_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.gem_volcanic, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.bismuth_pickaxe, 'F', DURA.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.volcanic_pickaxe, 'F', DURA.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mese_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_desh, 'D', ModItems.powder_dineutronium, 'A', ModItems.plate_paa, 'P', ModItems.chlorophyte_pickaxe, 'F', ModItems.shimmer_handle }); //Chainsaws @@ -124,7 +124,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', ModItems.circuit_copper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', W.bolt(), 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 111c9a169..e671dc1ca 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -75,7 +75,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "SSS", " MW", 'S', ModItems.hull_small_steel, 'W', CU.plate(), 'M', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_karl, 1), new Object[] { "SSW", " MW", 'S', ModItems.hull_small_steel, 'W', ALLOY.plate(), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "SSS", "SSS", "CM ", 'S', ModItems.hull_small_steel, 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', ModItems.bolt_tungsten }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', STEEL.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "HHR", "WLW", 'H', ModItems.hull_small_aluminium, 'R', ModItems.mechanism_rifle_1, 'W', KEY_LOG, 'L', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "SSW", "CMW", 'S', STEEL.plate(), 'W', TI.plate(), 'C', ModItems.circuit_red_copper, 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 4), new Object[] { "SS ", "STI", " IR", 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt), 'I', AL.plate(), 'R', REDSTONE.dust() }); @@ -88,12 +88,12 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_blackjack, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_silver, 1), new Object[] { "SSP", " TI", 'S', AL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_red, 1), new Object[] { "R ", " B", 'R', ModItems.key_red, 'B', ModItems.gun_revolver_blackjack }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uac_pistol, 1), new Object[] { "IIM", " BI", 'B', ModItems.bolt_dura_steel, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uac_pistol, 1), new Object[] { "IIM", " BI", 'B', DURA.bolt(), 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_cursed, 1), new Object[] { "TTM", "SRI", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'R', ModItems.wire_red_copper, 'T', TI.plate(), 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare, 1), new Object[] { "SEM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'E', ModItems.powder_power, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare2, 1), new Object[] { "SSM", "RRW", 'S', OreDictManager.getReflector(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bio_revolver, 1), new Object[] { "SSM", "BTW", 'S', STEEL.plate(), 'M', ModItems.mechanism_revolver_2, 'B', B.ingot(), 'T', ModItems.bolt_tungsten, 'W', KEY_LOG }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bio_revolver, 1), new Object[] { "SSM", "BTW", 'S', STEEL.plate(), 'M', ModItems.mechanism_revolver_2, 'B', B.ingot(), 'T', W.bolt(), 'W', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "RWC", "HHT", "RLC", 'R', RUBBER.ingot(), 'W', ModItems.wrench, 'C', CU.plate(), 'H', ModItems.hull_small_steel, 'T', ModItems.tank_steel, 'L', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "SSI", "IIM", "WPH", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', ModItems.wire_aluminium, 'H', ModItems.hull_small_steel, 'P', Item.getItemFromBlock(Blocks.piston), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mirv, 1), new Object[] { "LLL", "WFW", "SSS", 'S', STEEL.plate(), 'L', PB.plate(), 'W', ModItems.wire_gold, 'F', ModItems.gun_fatman }); @@ -144,9 +144,9 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b93), new Object[] { "PCE", "SEB", "PCE", 'P', ModItems.plate_dineutronium, 'C', ModItems.weaponized_starblaster_cell, 'E', ModItems.component_emitter, 'B', ModItems.gun_b92, 'S', ModItems.singularity_spark }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92_ammo, 1), new Object[] { "PSP", "ESE", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'E', ModItems.powder_spark_mix }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.weaponized_starblaster_cell, 1), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.ACID.getID()), GunB92Cell.getFullCell(), ModItems.wire_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "SMS", " PB", " P ", 'S', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', STEEL.plate(), 'B', ModItems.bolt_dura_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "SMS", " PB", " P ", 'S', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', STEEL.plate(), 'B', DURA.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', ModItems.bolt_tungsten }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', W.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi_saturnite }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); @@ -156,8 +156,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', STAR.ingot(), 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ANY_RUBBER.ingot(), 'W', ModItems.wire_aluminium }); //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', ModItems.bolt_tungsten, 'T', ModItems.tank_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', ModItems.bolt_tungsten, 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', STEEL.bolt(), 'T', ModItems.tank_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', STEEL.bolt(), 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ModItems.ingot_polymer, 'M', ModItems.mechanism_rifle_2 }); @@ -329,14 +329,14 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SPECIAL), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ), 'B', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE), 'M', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); //Flamer fuel - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', Fluids.DIESEL.getDict(1000) }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_napalm }); + CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', Fluids.DIESEL.getDict(1000) }); + CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', ModItems.canister_napalm }); CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.PHOSPHORUS), new Object[] { "CPC", "CDC", "CPC", 'C', COAL.dust(), 'P', P_WHITE.ingot(), 'D', ModItems.ammo_fuel }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.CHLORINE), new Object[] { "PDP", "BDB", "PDP", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.pellet_gas }); + CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.CHLORINE), new Object[] { "PDP", "BDB", "PDP", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', ModItems.pellet_gas }); CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.VAPORIZER), new Object[] { "PSP", "SNS", "PSP", 'P', P_WHITE.ingot(), 'S', ModItems.crystal_sulfur, 'N', ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM) }); //Fire Extingusisher Tanks - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()) }); CraftingManager.addRecipeAuto(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.FOAM), new Object[] { " N ", "NFN", " N ", 'N', KNO.dust(), 'F', ModItems.ammo_fireext }); CraftingManager.addRecipeAuto(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.SAND), new Object[] { "NNN", "NFN", "NNN", 'N', ModBlocks.sand_boron, 'F', ModItems.ammo_fireext }); diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index c845f1601..e2e95fa22 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -33,9 +33,9 @@ public class ConstructionHandler extends NEIUniversalHandler { /* WATZ */ ItemStack[] watz = new ItemStack[] { new ItemStack(ModBlocks.watz_end, 48), - new ItemStack(ModItems.bolt_dura_steel, 64), - new ItemStack(ModItems.bolt_dura_steel, 64), - new ItemStack(ModItems.bolt_dura_steel, 64), + Mats.MAT_DURA.make(ModItems.bolt, 64), + Mats.MAT_DURA.make(ModItems.bolt, 64), + Mats.MAT_DURA.make(ModItems.bolt, 64), new ItemStack(ModBlocks.watz_element, 36), new ItemStack(ModBlocks.watz_cooler, 26), new ItemStack(ModItems.boltgun)}; diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 8b7589e11..e6ca773e5 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -516,6 +516,7 @@ public class OreDictManager { for(NTMMaterial mat : Mats.orderedList) { if(mat.smeltable == SmeltingBehavior.SMELTABLE) { + if(mat.shapes.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); @@ -661,6 +662,7 @@ public class OreDictManager { public String any() { return ANY + mats[0]; } public String nugget() { return NUGGET + mats[0]; } public String tiny() { return TINY + mats[0]; } + public String bolt() { return BOLT + mats[0]; } public String ingot() { return INGOT + mats[0]; } public String dustTiny() { return DUSTTINY + mats[0]; } public String dust() { return DUST + mats[0]; } @@ -914,6 +916,7 @@ public class OreDictManager { public String any() { return ANY + groupName; } public String nugget() { return NUGGET + groupName; } public String tiny() { return TINY + groupName; } + public String bolt() { return BOLT + groupName; } public String ingot() { return INGOT + groupName; } public String dustTiny() { return DUSTTINY + groupName; } public String dust() { return DUST + groupName; } diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java index 4f1584d60..8c487a0e6 100644 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ b/src/main/java/com/hbm/inventory/OreNames.java @@ -8,6 +8,7 @@ public class OreNames { public static final String ANY = "any"; public static final String NUGGET = "nugget"; public static final String TINY = "tiny"; + public static final String BOLT = "bolt"; public static final String INGOT = "ingot"; public static final String DUSTTINY = "dustTiny"; public static final String DUST = "dust"; @@ -24,6 +25,6 @@ public class OreNames { public static final String HEAVY_COMPONENT = "componentHeavy"; public static final String[] prefixes = new String[] { - ANY, NUGGET, TINY, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT, WIREDENSE + ANY, NUGGET, TINY, BOLT, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT, WIREDENSE }; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java index 527de1e9f..a3361e662 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java @@ -36,7 +36,7 @@ public class GUIMachineRadGen extends GuiInfoContainer { this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 65, guiTop + 18 + i * 5, 46, 5, new String[] { "Slot " + (i + 1) + ":", radgen.production[i] + "HE/t for", - (radgen.maxProgress[i] - radgen.progress[i]) + " ticks. (" + ((radgen.maxProgress[i] - radgen.progress[i]) * 100 / radgen.maxProgress[i]) + "%)" + (radgen.maxProgress[i] - radgen.progress[i]) + " ticks (" + ((radgen.maxProgress[i] - radgen.progress[i]) * 100 / radgen.maxProgress[i]) + "%)" }); } } diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index df72f9da9..ebb34cfcb 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -13,6 +13,7 @@ public class MaterialShapes { public static final MaterialShapes NUGGET = new MaterialShapes(8, "nugget"); public static final MaterialShapes DUSTTINY = new MaterialShapes(NUGGET.quantity, "dustTiny"); public static final MaterialShapes WIRE = new MaterialShapes(9); + public static final MaterialShapes BOLT = new MaterialShapes(9, "bolt"); public static final MaterialShapes BILLET = new MaterialShapes(NUGGET.quantity * 6, "billet"); public static final MaterialShapes INGOT = new MaterialShapes(NUGGET.quantity * 9, "ingot"); public static final MaterialShapes GEM = new MaterialShapes(INGOT.quantity, "gem"); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 9526c475f..969e6eb4e 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -96,7 +96,7 @@ public class Mats { //Base metals public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); @@ -113,10 +113,10 @@ public class Mats { public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE); //Alloys - public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(BOLT, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index bb377f685..315ac6eef 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -175,7 +175,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); makeRecipe(new ComparableStack(ModItems.levitation_unit, 1), new AStack[] {new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.coil_tungsten, 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.nugget_schrabidium, 2), },100); - makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(TI.plate(), 6), },100); + makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack(TI.plate(), 6), },100); makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_full, 3, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); @@ -253,11 +253,11 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 16), new OreDictStack(KEY_CIRCUIT_BISMUTH), }, 500); makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200); makeRecipe(new ComparableStack(ModItems.titanium_filter, 1), new AStack[] {new OreDictStack(PB.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_tungsten, 4), new OreDictStack(TI.plate(), 6), new OreDictStack(U238.ingot(), 2), },200); - makeRecipe(new ComparableStack(ModItems.part_lithium, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_beryllium, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(COAL.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(CU.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); + makeRecipe(new ComparableStack(ModItems.part_lithium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_beryllium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_carbon, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(COAL.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_copper, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(CU.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_plutonium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), }, 60); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); @@ -287,7 +287,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); - makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 1) : new OreDictStack(STEEL.heavyComp(), 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp(), 2), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); @@ -441,7 +441,7 @@ public class AssemblerRecipes { new OreDictStack(CU.ingot(), 8), new ComparableStack(ModItems.generator_steel, 1), new ComparableStack(ModItems.tank_steel, 2), - new ComparableStack(ModItems.bolt_tungsten, 8), + new OreDictStack(W.bolt(), 16), new ComparableStack(ModItems.wire_red_copper, 24), new ComparableStack(ModItems.circuit_copper, 1) }, 300); @@ -449,13 +449,13 @@ public class AssemblerRecipes { new OreDictStack(STEEL.plate(), 16), new OreDictStack(CU.plate(), 4), new OreDictStack(W.ingot(), 8), - new ComparableStack(ModItems.bolt_tungsten, 16) + new OreDictStack(W.bolt(), 16) }, 200); makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.DURA.ordinal()), new AStack[] { new OreDictStack(DURA.ingot(), 24), new OreDictStack(TI.plate(), 8), new OreDictStack(W.ingot(), 8), - new ComparableStack(ModItems.bolt_dura_steel, 16) + new OreDictStack(DURA.bolt(), 16) }, 200); makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.DESH.ordinal()), new AStack[] { new OreDictStack(DESH.ingot(), 24), @@ -672,8 +672,8 @@ public class AssemblerRecipes { new OreDictStack(PB.plate(), 16), new OreDictStack(ALLOY.plate(), 4), new OreDictStack(ANY_RUBBER.ingot(), 4), - new ComparableStack(ModItems.bolt_tungsten, 8), - new ComparableStack(ModItems.bolt_dura_steel, 8), + new OreDictStack(W.bolt(), 16), + new OreDictStack(DURA.bolt(), 16), new ComparableStack(ModItems.motor, 3), }, 200); @@ -683,8 +683,8 @@ public class AssemblerRecipes { new OreDictStack(PB.plate(), 6), new OreDictStack(ALLOY.plate(), 3), new OreDictStack(ANY_RUBBER.ingot(), 3), - new ComparableStack(ModItems.bolt_tungsten, 3), - new ComparableStack(ModItems.bolt_dura_steel, 3), + new OreDictStack(W.bolt(), 4), + new OreDictStack(DURA.bolt(), 4), new ComparableStack(ModItems.motor, 1), }, 300); @@ -692,7 +692,7 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ALLOY.plate(), 4), - new ComparableStack(ModItems.bolt_tungsten, 4), + new OreDictStack(W.bolt(), 8), new ComparableStack(ModItems.motor, 2), }, 200); @@ -922,7 +922,7 @@ public class AssemblerRecipes { new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(KEY_ANYPANE, 64), new ComparableStack(ModItems.motor, 18), - new ComparableStack(ModItems.bolt_tungsten, 12), + new OreDictStack(W.bolt(), 16), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.circuit_gold, 3) }, 400); @@ -1189,7 +1189,7 @@ public class AssemblerRecipes { new OreDictStack(ANY_RUBBER.ingot(), 36), new OreDictStack(STEEL.block(), 24), new ComparableStack(ModItems.motor_desh, 16), - new ComparableStack(ModItems.bolt_dura_steel, 12), + new OreDictStack(DURA.bolt(), 16), new OreDictStack(KEY_YELLOW, 4) }, 1200); @@ -1198,16 +1198,16 @@ public class AssemblerRecipes { new OreDictStack(W.ingot(), 8), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ANY_RUBBER.ingot(), 4), - new ComparableStack(ModItems.bolt_dura_steel, 8), + new OreDictStack(DURA.bolt(), 16), new ComparableStack(ModItems.motor, 2) }, 200); - makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 36), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 4), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack("dyeGreen", 4)}, 500); - makeRecipe(new ComparableStack(ModBlocks.water_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack("dyeRed", 1)}, 500); - makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plate(), 24), new OreDictStack("plateAdvancedAlloy", 8), new ComparableStack(ModItems.plate_polymer, 8), new OreDictStack("blockSteel", 2), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 16), new OreDictStack("dyeBlack", 4)}, 500); - makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); - makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 32), new OreDictStack("plateAdvancedAlloy", 12), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 6), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack("dyeGreen", 4)}, 500); - makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 48), new OreDictStack("plateAdvancedAlloy", 16), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 24), new OreDictStack("dyeRed", 8)}, 1000); - makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack("dyeWhite", 2)}, 500); + makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 36), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 4), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.water_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeRed", 1)}, 500); + makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plate(), 24), new OreDictStack("plateAdvancedAlloy", 8), new ComparableStack(ModItems.plate_polymer, 8), new OreDictStack("blockSteel", 2), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeBlack", 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); + makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 32), new OreDictStack("plateAdvancedAlloy", 12), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 6), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 48), new OreDictStack("plateAdvancedAlloy", 16), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 1000); + makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 500); if(Loader.isModLoaded("Mekanism")) { diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 5e7cdbbfa..b581d0ee8 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -121,8 +121,8 @@ public class ChemplantRecipes extends SerializableRecipe { new FluidStack(Fluids.XYLENE, 250), new FluidStack(Fluids.PHOSGENE, 250)) .inputItems( - new ComparableStack(com.hbm.blocks.ModBlocks.reinforced_glass), - new ComparableStack(com.hbm.items.ModItems.bolt_tungsten, 4)) + new ComparableStack(ModBlocks.reinforced_glass), + new OreDictStack(STEEL.bolt(), 4)) .outputItems(new ItemStack(com.hbm.blocks.ModBlocks.reinforced_laminate))); recipes.add(new ChemRecipe(94, "PC", 100) .inputFluids( diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 18e76b6a0..86921434e 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -518,7 +518,7 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.plate_dineutronium, 4))).setTier(7)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(TI.plate(), 2), new OreDictStack(STEEL.ingot(), 1), new ComparableStack(ModItems.bolt_tungsten, 2)}, + new AStack[] {new OreDictStack(TI.plate(), 2), new OreDictStack(STEEL.ingot(), 1), new OreDictStack(STEEL.bolt(), 4)}, new AnvilOutput(new ItemStack(ModItems.plate_armor_titanium))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new OreDictStack(IRON.plate(), 4), new OreDictStack(BIGMT.plate(), 2), new ComparableStack(ModItems.plate_armor_titanium, 1)}, diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 5f5629bf3..4e0445c06 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -324,12 +324,11 @@ public class ModItems { public static Item plate_mixed; public static Item plate_paa; public static Item board_copper; - public static Item bolt_dura_steel; public static Item pipes_steel; public static Item drill_titanium; public static Item plate_dalekanium; public static Item plate_euphemium; - public static Item bolt_tungsten; + public static Item bolt; public static Item bolt_compound; public static Item plate_polymer; public static Item plate_kevlar; @@ -2593,12 +2592,11 @@ public class ModItems { plate_mixed = new Item().setUnlocalizedName("plate_mixed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_mixed"); plate_paa = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_paa"); board_copper = new Item().setUnlocalizedName("board_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":board_copper"); - bolt_dura_steel = new Item().setUnlocalizedName("bolt_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_dura_steel"); pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel"); drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium"); plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium"); plate_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium"); - bolt_tungsten = new Item().setUnlocalizedName("bolt_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_tungsten"); + bolt = new ItemAutogen(MaterialShapes.BOLT).setUnlocalizedName("bolt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt"); bolt_compound = new Item().setUnlocalizedName("bolt_compound").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_compound"); plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_polymer"); plate_kevlar = new Item().setUnlocalizedName("plate_kevlar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_kevlar"); @@ -6045,8 +6043,7 @@ public class ModItems { GameRegistry.registerItem(board_copper, board_copper.getUnlocalizedName()); //Bolts - GameRegistry.registerItem(bolt_dura_steel, bolt_dura_steel.getUnlocalizedName()); - GameRegistry.registerItem(bolt_tungsten, bolt_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(bolt, bolt.getUnlocalizedName()); GameRegistry.registerItem(bolt_compound, bolt_compound.getUnlocalizedName()); //Cloth diff --git a/src/main/java/com/hbm/items/special/ItemAutogen.java b/src/main/java/com/hbm/items/special/ItemAutogen.java index 1e1f1d075..7e91dd37f 100644 --- a/src/main/java/com/hbm/items/special/ItemAutogen.java +++ b/src/main/java/com/hbm/items/special/ItemAutogen.java @@ -64,7 +64,7 @@ public class ItemAutogen extends Item { @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { - + for(NTMMaterial mat : Mats.orderedList) { if(mat.shapes.contains(this.shape)) { list.add(new ItemStack(item, 1, mat.id)); diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index 34440b70a..437aa97e2 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -1,6 +1,6 @@ package com.hbm.items.tool; -import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; import com.hbm.items.IAnimatedItem; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; @@ -50,14 +50,14 @@ public class ItemBoltgun extends Item implements IAnimatedItem { World world = player.worldObj; if(!entity.isEntityAlive()) return false; - Item[] bolts = new Item[] { ModItems.bolt_dura_steel, ModItems.bolt_tungsten, Item.getItemFromBlock(ModBlocks.steel_beam) }; + ItemStack[] bolts = new ItemStack[] { Mats.MAT_STEEL.make(ModItems.bolt), Mats.MAT_TUNGSTEN.make(ModItems.bolt), Mats.MAT_DURA.make(ModItems.bolt)}; - for(Item item : bolts) { + for(ItemStack bolt : bolts) { for(int i = 0; i < player.inventory.getSizeInventory(); i++) { ItemStack slot = player.inventory.getStackInSlot(i); if(slot != null) { - if(slot.getItem() == item) { + if(slot.getItem() == bolt.getItem() && slot.getItemDamage() == bolt.getItemDamage()) { if(!world.isRemote) { world.playSoundAtEntity(entity, "hbm:item.boltgun", 1.0F, 1.0F); player.inventory.decrStackSize(i, 1); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 812a66848..59e7bf136 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ModItems; @@ -54,7 +55,8 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.hull_big_steel, 0, 1, 2, 2), new WeightedRandomChestContent(ModItems.hull_small_steel, 0, 1, 3, 3), new WeightedRandomChestContent(ModItems.plate_polymer, 0, 1, 6, 5), - new WeightedRandomChestContent(ModItems.bolt_tungsten, 0, 1, 4, 3), + new WeightedRandomChestContent(ModItems.bolt, Mats.MAT_STEEL.id, 4, 16, 3), + new WeightedRandomChestContent(ModItems.bolt, Mats.MAT_TUNGSTEN.id, 4, 16, 3), new WeightedRandomChestContent(ModItems.board_copper, 0, 1, 2, 4), new WeightedRandomChestContent(ModItems.coil_tungsten, 0, 1, 2, 5), new WeightedRandomChestContent(ModItems.motor, 0, 1, 2, 4), diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 176368f1b..d3887d25e 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -89,14 +89,15 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.big_sword, 1), new Object[] { "QIQ", "QIQ", "GSG", 'G', Items.gold_ingot, 'S', KEY_STICK, 'I', Items.iron_ingot, 'Q', Items.quartz}); addRecipeAuto(new ItemStack(ModItems.board_copper, 1), new Object[] { "TTT", "TTT", 'T', CU.plate() }); - addRecipeAuto(Mats.MAT_IRON.make(ModItems.plate_cast), new Object[] { "BPB", "BPB", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); + addRecipeAuto(Mats.MAT_IRON.make(ModItems.plate_cast), new Object[] { "BPB", "BPB", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_red, 1), new Object[] { "C", "R", "C", 'C', ModItems.hazmat_cloth, 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.asbestos_cloth, 8), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', BR.dust(), 'C', Blocks.wool }); - addRecipeAuto(new ItemStack(ModItems.bolt_dura_steel, 4), new Object[] { "D", "D", 'D', DURA.ingot()}); + addRecipeAuto(Mats.MAT_TUNGSTEN.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', W.ingot()}); + addRecipeAuto(Mats.MAT_STEEL.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', STEEL.ingot()}); + addRecipeAuto(Mats.MAT_DURA.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', DURA.ingot()}); addRecipeAuto(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', STEEL.block() }); - addRecipeAuto(new ItemStack(ModItems.bolt_tungsten, 4), new Object[] { "D", "D", 'D', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', ModItems.bolt_dura_steel, 'T', ModItems.bolt_tungsten, 'P', TI.plate() }); + addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', DURA.bolt(), 'T', W.bolt(), 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_RUBBER.ingot() }); @@ -249,7 +250,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.wrench, 1), new Object[] { " S ", " IS", "I ", 'S', STEEL.ingot(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.wrench_flipped, 1), new Object[] { "S", "D", "W", 'S', Items.iron_sword, 'D', ModItems.ducttape, 'W', ModItems.wrench }); addRecipeAuto(new ItemStack(ModItems.memespoon, 1), new Object[] { "CGC", "PSP", "IAI", 'C', ModItems.powder_cloud, 'G', TH232.block(), 'P', ModItems.photo_panel, 'S', ModItems.steel_shovel, 'I', ModItems.plate_polymer, 'A', "ingotAustralium" }); - addShapelessAuto(new ItemStack(ModItems.cbt_device, 1), new Object[] { ModItems.bolt_tungsten, ModItems.wrench }); + addShapelessAuto(new ItemStack(ModItems.cbt_device, 1), new Object[] { STEEL.bolt(), ModItems.wrench }); addShapelessAuto(new ItemStack(ModItems.toothpicks, 3), new Object[] { KEY_STICK, KEY_STICK, KEY_STICK }); addRecipeAuto(new ItemStack(ModItems.ducttape, 6), new Object[] { "FSF", "SPS", "FSF", 'F', Items.string, 'S', KEY_SLIME, 'P', Items.paper }); @@ -326,15 +327,15 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', ModItems.circuit_copper, 'M', ModItems.motor }); - addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate(), 'R', REDSTONE.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', ModItems.bolt_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate(), 'R', REDSTONE.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', STEEL.bolt() }); addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); - addRecipeAuto(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', GRAPHITE.ingot(), 'T', ModItems.bolt_tungsten }); + addRecipeAuto(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', GRAPHITE.ingot(), 'T', W.bolt() }); addRecipeAuto(new ItemStack(ModItems.arc_electrode_desh, 1), new Object[] { "C", "T", "C", 'C', DESH.dust(), 'T', ModItems.arc_electrode }); addRecipeAuto(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'E', STEEL.ingot() }); addShapelessAuto(new ItemStack(ModItems.detonator_multi, 1), new Object[] { ModItems.detonator, ModItems.circuit_targeting_tier3 }); @@ -350,8 +351,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.crystal_xen, 1), new Object[] { "EEE", "EIE", "EEE", 'E', ModItems.powder_power, 'I', EUPH.ingot() }); addShapelessAuto(new ItemStack(ModItems.fuse, 1), new Object[] { STEEL.plate(), ModItems.plate_polymer, ModItems.wire_tungsten }); - addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.bolt_tungsten, NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), ModItems.board_copper, ModItems.black_hole, CS.dust() }); - addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.bolt_tungsten, ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), ModItems.board_copper, ModItems.black_hole, CE.dust() }); + addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), ModItems.board_copper, ModItems.black_hole, CS.dust() }); + addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), ModItems.board_copper, ModItems.black_hole, CE.dust() }); addRecipeAuto(new ItemStack(ModItems.blades_steel, 1), new Object[] { " P ", "PIP", " P ", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.blades_titanium, 1), new Object[] { " P ", "PIP", " P ", 'P', TI.plate(), 'I', TI.ingot() }); @@ -383,8 +384,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mechanism_revolver_2, 1), new Object[] { "ATA", "TDT", "ATA", 'A', ALLOY.plate(), 'T', W.ingot(), 'D', DURA.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_1, 1), new Object[] { "ICI", "MAM", "ICI", 'I', IRON.plate(), 'C', CU.ingot(), 'A', AL.ingot(), 'M', ModItems.mechanism_revolver_1 }); addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_2, 1), new Object[] { "ATA", "MDM", "ATA", 'A', ALLOY.plate(), 'T', W.ingot(), 'D', DURA.ingot(), 'M', ModItems.mechanism_revolver_2 }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', ModItems.bolt_tungsten, 'I', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); + addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', W.bolt(), 'I', MINGRADE.ingot() }); + addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', W.bolt(), 'I', DESH.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateCast(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel }); @@ -449,7 +450,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_brick), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', ModBlocks.brick_concrete }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', ModItems.bolt_tungsten, 'B', ModBlocks.reinforced_brick, 'T', ANY_TAR.any() }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', STEEL.bolt(), 'B', ModBlocks.reinforced_brick, 'T', ANY_TAR.any() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.glass }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass_pane), 16), new Object[] { " ", "GGG", "GGG", 'G', ModBlocks.reinforced_glass}); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_laminate_pane), 16), new Object[] { " ", "LLL", "LLL", 'L', ModBlocks.reinforced_laminate}); @@ -512,6 +513,14 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rail_highspeed, 16), new Object[] { "S S", "SIS", "S S", 'S', STEEL.ingot(), 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.rail_booster, 6), new Object[] { "S S", "CIC", "SRS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'R', MINGRADE.ingot(), 'C', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_straight, 4), new Object[] { "B B", "SSS", "W W", 'B', STEEL.bolt(), 'S', ModBlocks.steel_beam, 'W', KEY_SLAB }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight, 1), new Object[] { ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight_short, 5), new Object[] { ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_buffer, 1), new Object[] { " S", "RS", 'R', ModBlocks.rail_large_straight, 'S', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve, 1), new Object[] { "R ", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve_wide, 1), new Object[] { "RR", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_ramp, 1), new Object[] { " R ", "SSS", 'R', ModBlocks.rail_large_straight, 'S', KEY_SLAB }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', ModItems.wire_aluminium, 'C', ModItems.circuit_aluminium, 'H', ModItems.hull_small_aluminium, 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); addShapelessAuto(new ItemStack(ModItems.powder_ice, 4), new Object[] { Items.snowball, KNO.dust(), REDSTONE.dust() }); addShapelessAuto(new ItemStack(ModItems.powder_poison, 4), new Object[] { Items.spider_eye, REDSTONE.dust(), NETHERQUARTZ.gem() }); @@ -599,21 +608,21 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'K', Fluids.KEROSENE.getDict(1000) }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ANY_RUBBER.ingot(), 'L', Fluids.LUBRICANT.getDict(1000), 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', STEEL.bolt(), 'K', Fluids.KEROSENE.getDict(1000) }); + addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ANY_RUBBER.ingot(), 'L', Fluids.LUBRICANT.getDict(1000), 'B', STEEL.bolt(), 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ANY_RUBBER.ingot(), 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'C', ModItems.circuit_schrabidium, 'E', EUPH.ingot() }); addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LYL", "EWE", "LYL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock, 'Y', ModItems.billet_yharonite }); - addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); + addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', STEEL.bolt() }); addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DESH.dust(), 'T', KEY_TOOL_SCREWDRIVER }); addRecipeAuto(new ItemStack(ModItems.key_red, 1), new Object[] { "RCA", "CIC", "KCR", 'R', KEY_RED, 'C', STAR.wireDense(), 'A', ModItems.gem_alexandrite, 'I', ModItems.ingot_chainsteel, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.pin, 1), new Object[] { "W ", " W", " W", 'W', ModItems.wire_copper }); - addRecipeAuto(new ItemStack(ModItems.padlock_rusty, 1), new Object[] { "I", "B", "I", 'I', IRON.ingot(), 'B', ModItems.bolt_tungsten }); - addRecipeAuto(new ItemStack(ModItems.padlock, 1), new Object[] { " P ", "PBP", "PPP", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); - addRecipeAuto(new ItemStack(ModItems.padlock_reinforced, 1), new Object[] { " P ", "PBP", "PDP", 'P', ALLOY.plate(), 'D', ModItems.plate_desh, 'B', ModItems.bolt_dura_steel }); - addRecipeAuto(new ItemStack(ModItems.padlock_unbreakable, 1), new Object[] { " P ", "PBP", "PDP", 'P', BIGMT.plate(), 'D', DIAMOND.gem(), 'B', ModItems.bolt_dura_steel }); + addRecipeAuto(new ItemStack(ModItems.padlock_rusty, 1), new Object[] { "I", "B", "I", 'I', IRON.ingot(), 'B', STEEL.bolt() }); + addRecipeAuto(new ItemStack(ModItems.padlock, 1), new Object[] { " P ", "PBP", "PPP", 'P', STEEL.plate(), 'B', STEEL.bolt() }); + addRecipeAuto(new ItemStack(ModItems.padlock_reinforced, 1), new Object[] { " P ", "PBP", "PDP", 'P', ALLOY.plate(), 'D', ModItems.plate_desh, 'B', DURA.bolt() }); + addRecipeAuto(new ItemStack(ModItems.padlock_unbreakable, 1), new Object[] { " P ", "PBP", "PDP", 'P', BIGMT.plate(), 'D', DIAMOND.gem(), 'B', DURA.bolt() }); addRecipeAuto(new ItemStack(ModItems.record_lc, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', LAPIS.dust() }); addRecipeAuto(new ItemStack(ModItems.record_ss, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', ALLOY.dust() }); @@ -648,7 +657,7 @@ public class CraftingManager { } //not so Temporary Crappy Recipes - addRecipeAuto(new ItemStack(ModItems.piston_selenium, 1), new Object[] { "SSS", "STS", " D ", 'S', STEEL.plate(), 'T', W.ingot(), 'D', ModItems.bolt_dura_steel }); + addRecipeAuto(new ItemStack(ModItems.piston_selenium, 1), new Object[] { "SSS", "STS", " D ", 'S', STEEL.plate(), 'T', W.ingot(), 'D', DURA.bolt() }); addShapelessAuto(new ItemStack(ModItems.catalyst_clay), new Object[] { IRON.dust(), Items.clay_ball }); addRecipeAuto(new ItemStack(ModItems.singularity_spark, 1), new Object[] { "XAX", "BCB", "XAX", 'X', ModItems.plate_dineutronium, 'A', ModItems.singularity_counter_resonant, 'B', ModItems.singularity_super_heated, 'C', ModItems.black_hole }); addRecipeAuto(new ItemStack(ModItems.singularity_spark, 1), new Object[] { "XBX", "ACA", "XBX", 'X', ModItems.plate_dineutronium, 'A', ModItems.singularity_counter_resonant, 'B', ModItems.singularity_super_heated, 'C', ModItems.black_hole }); @@ -696,7 +705,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine_seal), new Object[] { "ISI", "SCS", "ISI", 'I', BIGMT.ingot(), 'S', STAR.ingot(), 'C', ModItems.chlorine_pinwheel }); addRecipeAuto(new ItemStack(ModBlocks.vent_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_cloud, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.vent_pink_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_pink_cloud, 'D', Blocks.dispenser }); - addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "FFF", "BBB", "TTT", 'F', Items.flint, 'B', ModItems.bolt_tungsten, 'T', W.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "BBB", "BBB", "TTT", 'B', STEEL.bolt(), 'T', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'C', ModBlocks.crate_steel }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index ec9ace167..b30c1b05b 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -25,6 +25,7 @@ import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; import com.hbm.inventory.recipes.*; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.loader.SerializableRecipe; @@ -270,6 +271,9 @@ public class MainRegistry { loadConfig(PreEvent); HbmPotion.init(); + /* For whichever fucking reason, replacing the bolt items with a bolt autogen broke all autogen items, most likely due to the load order. + * This "fix" just makes sure that the material system is loaded first no matter what. */ + Mats.MAT_STONE.getUnlocalizedName(); Fluids.init(); ModBlocks.mainRegistry(); ModItems.mainRegistry(); @@ -1183,6 +1187,8 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.brick_dungeon_tile"); ignoreMappings.add("hbm:tile.brick_dungeon_circle"); ignoreMappings.add("hbm:tile.bomber"); + ignoreMappings.add("hbm:item.bolt_tungsten"); + ignoreMappings.add("hbm:item.bolt_dura_steel"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 72e07c9b8..ea2a605c9 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1,7 +1,6 @@ package com.hbm.main; import java.lang.reflect.Method; -import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Random; @@ -13,10 +12,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.MoveContext; -import com.hbm.blocks.rail.IRailNTM.RailCheckType; -import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; @@ -69,7 +64,6 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java index 7ab0e8af3..9417e7d8a 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java @@ -216,7 +216,6 @@ public class ItemRenderWeaponLilMac implements IItemRenderer { double s1 = 0.075D; GL11.glScaled(s1, s1, s1); - GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(0F, 1F, 0F); break; @@ -248,6 +247,7 @@ public class ItemRenderWeaponLilMac implements IItemRenderer { ResourceManager.lilmac.renderPart("Bullets"); ResourceManager.lilmac.renderPart("Casings"); ResourceManager.lilmac.renderPart("Pivot"); + ResourceManager.lilmac.renderPart("Hammer"); GL11.glShadeModel(GL11.GL_FLAT); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java index 6549a7e90..c9a3fe5b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java @@ -212,15 +212,15 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE static { for(int i = 0; i < ItemWasteShort.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(150, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(15, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(1500, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(150, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); } for(int i = 0; i < ItemWasteLong.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(50, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(5, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(500, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(50, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); } - fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(5, 5 * 60 * 20, null)); + fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(50, 5 * 60 * 20, null)); } private Triplet grabResult(ItemStack stack) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index b5ce978b9..6921bf4f1 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1294,8 +1294,7 @@ item.bobmazon_tools.name=Bobmazon: Werkzeuge item.bobmazon_weapons.name=Bobmazon: Waffen und Sprengstoffe item.bolt_compound.name=Verstärkte Turbinenwelle item.bolt_dura_steel.name=Schnellarbeitsstahlbolzen -item.bolt_tungsten.name=Wolframbolzen -item.boltgun.name=Pneumatische Nietenpistole +item.bolt.name=%sbolzen item.bomb_caller.name=Luftschlag Zielmarker item.bomb_waffle.name=Massenvernichtungswaffel item.guide_book.name=Handbuch diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 845be3e2f..b95a4f36b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1955,8 +1955,7 @@ item.bobmazon_materials.name=Bobmazon: Materials item.bobmazon_tools.name=Bobmazon: Tools item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives item.bolt_compound.name=Reinforced Turbine Shaft -item.bolt_dura_steel.name=High-Speed Steel Bolt -item.bolt_tungsten.name=Tungsten Bolt +item.bolt.name=%s Bolt item.boltgun.name=Pneumatic Rivet Gun item.bomb_caller.name=Airstrike Designator item.bomb_waffle.name=Waffle of Mass Destruction diff --git a/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png b/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png index 95ddf654fe6482557994ad29b2c392e7be0ad7f3..55e55b543a6b77fb53adec9f26735d09c8a91a76 100644 GIT binary patch delta 358 zcmV-s0h#{h0`>xs8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0WC>HK~y-6rITBZ z!Y~X)kDE}5X$ukpq}c*HpZy@Q4(Nk6YU2553n`C}VJt<7<2bq3*O8xZv}r&D7K>q6 zJNT;HOa!WGnBzU0=WsYA03=C*F$NJq$Ly}_cxR^*Smz*w0DlZ~-}i45UYRXRXj>TX zmB z!jI!3P?lh`40gK=?>(yeR7CInOZWhJ4ps!}y8fKP0_Fmc8Gix*005AYXf^-<00d`2O+f$vv5yPiLEe_5;Bkj7fO`8r4b%bhEP?) or%_Ae9*`ae@WlHB?tj8o9}3KF$6||kBLDyZ07*qoM6N<$f)|{OH2?qr diff --git a/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png b/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png index 69c2027cb86c5248673957310ffaac3943c41fed..1a8d8d45090bf4e72c039d800b95d308e2c33b27 100644 GIT binary patch delta 377 zcmV-<0fzpq1BnBW8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0YFJaK~y-6rIX!~ zf-nq)zd-A#fX=w;Gwk>@`|!^297?Ic2-%AYfXS7a1pwnVjpoMpcKq&N)n$Wz095(7lHqMRy7SmkR*1*=$lU%Q8X>@BajQg0d`2 z{6hg%#ajCWf1DQ)ilV?INy2isgSHK@ABWhsFX02EX^IgMD9g_&oX_Wp3ggMQx9)Kq z4;0!FBIg`twQ^c9-)@5ff#AJ-(+ut`O($o7BuQ=*ocjpAs$x#3(~}CophCY7RaFhS zuIq^781Fr1yPzfv%`>p|lo zA0UcR%tbV~`wPBG4b9MkFbI#L7`nS&)s&o$$ZkeTfgBFV*{Gb4$;G%vgM7bF4*Ekl zBbB^7Ep*!jBJ{kE1O!sBB5Z%&3q-|)WvfnM0_mHW9wb*4GW!+fjbW=gIn<*K0U zq#6}IHqw~9uYdOt$w>_Fd7$BVN_v6bqcXSCO`eZ|6){x$+|1Z;o|lsj?`=byE>HYp zO3vhNwgsG$jfexPM1`-d;Cnj@B*x21mm^x?cu3?j7enc2u%To=j@m*Sm>a_}Pzt9+ z1sv>uIVGE$_dMwG#hMa7O;?(G;C7gO#*_XSA`#esqZbs&4+sSxvLD9GH2?qr07*qo IM6N<$g1kVnhX4Qo diff --git a/src/main/resources/assets/hbm/textures/items/bolt.png b/src/main/resources/assets/hbm/textures/items/bolt.png new file mode 100644 index 0000000000000000000000000000000000000000..32c36b42eff3297d311994d4c2f42f8dbef9d8b5 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf Date: Sat, 6 Jan 2024 02:18:38 -0600 Subject: [PATCH 062/376] 2:15 am forgive my terrible coding --- .../java/com/hbm/crafting/ToolRecipes.java | 5 +- .../inventory/recipes/AssemblerRecipes.java | 6 + .../java/com/hbm/items/tool/ItemPipette.java | 110 ++++++++++++------ src/main/resources/assets/hbm/lang/en_US.lang | 6 +- .../assets/hbm/textures/items/pipette.png | Bin 186 -> 250 bytes .../hbm/textures/items/pipette_boron.png | Bin 0 -> 280 bytes .../hbm/textures/items/pipette_laboratory.png | Bin 0 -> 366 bytes .../items/pipette_laboratory_overlay.png | Bin 0 -> 141 bytes .../hbm/textures/items/pipette_overlay.png | Bin 159 -> 222 bytes 9 files changed, 87 insertions(+), 40 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/pipette_boron.png create mode 100644 src/main/resources/assets/hbm/textures/items/pipette_laboratory.png create mode 100644 src/main/resources/assets/hbm/textures/items/pipette_laboratory_overlay.png diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 8b8f2c27c..0247bd6cc 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -128,7 +128,10 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker }); - + + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette, 1), new Object[] { " L", " G ", "G ", 'L', ModItems.ingot_biorubber, 'G', KEY_CLEARGLASS}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_boron, 1), new Object[] { " P", " B ", "B ", 'P', ANY_RUBBER.ingot(), 'B', ModBlocks.glass_boron}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', ModItems.wire_red_copper, 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 315ac6eef..cc918d0cc 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -696,6 +696,12 @@ public class AssemblerRecipes { new ComparableStack(ModItems.motor, 2), }, 200); + makeRecipe(new ComparableStack(ModItems.pipette_laboratory, 1),new AStack[] { + new ComparableStack(ModBlocks.glass_boron, 2), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 1), + new ComparableStack(ModItems.circuit_aluminium, 2) + }, 30); + makeRecipe(new ComparableStack(ModBlocks.turret_chekhov, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index f18bdd681..b59d6c42a 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -5,6 +5,7 @@ import api.hbm.fluid.IFillableItem; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -23,16 +24,13 @@ import java.util.List; public class ItemPipette extends Item implements IFillableItem { public ItemPipette() { - this.setMaxDamage(0); + this.canRepair = false; + this.setMaxDamage(1); } @SideOnly(Side.CLIENT) protected IIcon overlayIcon; - public int amount = this.getMaxFill(); - - public FluidType type = Fluids.NONE; - - public int getMaxFill() { + public short getMaxFill() { if(this == ModItems.pipette_laboratory) return 50; else @@ -43,24 +41,41 @@ public class ItemPipette extends Item implements IFillableItem { stack.stackTagCompound = new NBTTagCompound(); - this.setFill(stack, type, 0); + this.setFill(stack, Fluids.NONE, (short) 0); //sets "type" and "fill" NBT + stack.stackTagCompound.setShort("capacity", this.getMaxFill()); //set "capacity" } - public void setFill(ItemStack stack, FluidType type, int fill) { + public FluidType getType(ItemStack stack) { if(!stack.hasTagCompound()) { initNBT(stack); } - this.type = type; - stack.stackTagCompound.setInteger(type.getName(), fill); + return Fluids.fromID(stack.stackTagCompound.getShort("type")); } - public int getFill(ItemStack stack, FluidType type) { + public short getCapacity(ItemStack stack) { if(!stack.hasTagCompound()) { initNBT(stack); } - return stack.stackTagCompound.getInteger(type.getName()); + return stack.stackTagCompound.getShort("capacity"); + } + + public void setFill(ItemStack stack, FluidType type, short fill) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + stack.stackTagCompound.setShort("type", (short) type.getID()); + stack.stackTagCompound.setShort("fill", fill); + } + + public short getFill(ItemStack stack) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + return stack.stackTagCompound.getShort("fill"); } @Override @@ -71,17 +86,19 @@ public class ItemPipette extends Item implements IFillableItem { } if(!world.isRemote) { - if (this.getFill(stack, type) == 0) { - - if(this != ModItems.pipette_laboratory) - this.amount = player.isSneaking() ? Math.min(this.amount + 50, 1_000) : Math.max(this.amount - 50, 50); - else - this.amount = player.isSneaking() ? Math.min(this.amount + 1, 50) : Math.max(this.amount - 1, 1); - - - player.addChatMessage(new ChatComponentText(this.amount + "/" + this.getMaxFill() + "mB")); + // ok i need to add some explanation + if (this.getFill(stack) == 0) { //if the pipette is empty + int a; + if(this == ModItems.pipette_laboratory) //if the pipette is a laboratory pipette + //if the player is sneaking then the capacity should increase, else it should decrease (Math.min and Math.max for negative numbers/going over capacity) + a = player.isSneaking() ? Math.min(this.getCapacity(stack) + 1, 50) : Math.max(this.getCapacity(stack) - 1, 1); + else //if its not a laboratory pipette + //if the player is sneaking then the capacity should increase, else it should decrease + a = player.isSneaking() ? Math.min(this.getCapacity(stack) + 50, 1_000) : Math.max(this.getCapacity(stack) - 50, 50); + stack.stackTagCompound.setShort("capacity", (short) a); // set the capacity to the new value + player.addChatMessage(new ChatComponentText(a + "/" + this.getMaxFill() + "mB")); // send new value in chat for player to see } else { - player.addChatMessage(new ChatComponentText("Pipette not empty!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKey("desc.item.pipette.noEmpty"))); // if pipette is not empty, no chance in capacity and tell player } } return stack; @@ -89,17 +106,21 @@ public class ItemPipette extends Item implements IFillableItem { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - if(this == ModItems.pipette_laboratory) - list.add("Now with 50x more precision!"); - list.add("Fluid: " + type.getLocalizedName()); - list.add("Amount: " + this.getFill(stack, type) + "/" + amount + "mB (" + this.getMaxFill() + "mB)"); + if(this == ModItems.pipette_laboratory) { + list.add(I18nUtil.resolveKey("desc.item.pipette.corrosive")); + list.add(I18nUtil.resolveKey("desc.item.pipette.laboratory")); + } + if(this == ModItems.pipette_boron) + list.add(I18nUtil.resolveKey("desc.item.pipette.corrosive")); + if(this == ModItems.pipette) + list.add(I18nUtil.resolveKey("desc.item.pipette.noCorrosive")); + list.add("Fluid: " + this.getType(stack).getLocalizedName()); + list.add("Amount: " + this.getFill(stack) + "/" + this.getCapacity(stack) + "mB (" + this.getMaxFill() + "mB)"); } @Override public boolean acceptsFluid(FluidType type, ItemStack stack) { - if(this == ModItems.pipette_boron || this == ModItems.pipette_laboratory) - return (type == this.type || this.getFill(stack, type) == 0 && !type.isAntimatter()); - return (type == this.type || this.getFill(stack, type) == 0) && (!type.isCorrosive() && !type.isAntimatter()); + return (type == this.getType(stack) || this.getFill(stack) == 0) && (!type.isAntimatter()); } @Override @@ -108,27 +129,37 @@ public class ItemPipette extends Item implements IFillableItem { if(!acceptsFluid(type, stack)) return amount; - if(this.getFill(stack, type) == 0) - this.setFill(stack, type, 0); + if(this.getFill(stack) == 0) + this.setFill(stack, type, (short) 0); - int req = this.amount - this.getFill(stack, type); + int req = this.getCapacity(stack) - this.getFill(stack); int toFill = Math.min(req, amount); - this.setFill(stack, type, this.getFill(stack, type) + toFill); + this.setFill(stack, type, (short) (this.getFill(stack) + toFill)); + + //fizzling checks + if(this.getFill(stack) > 0 && (this.getType(stack).isCorrosive() && type != Fluids.ACID)) /*hydrogen peroxide corroding glass? unheard of! */ { + if(this == ModItems.pipette) { + //fizzle it! + stack.stackSize = 0; + } + } return amount - toFill; } @Override public boolean providesFluid(FluidType type, ItemStack stack) { - return this.type == type; + return this.getType(stack) == type; } @Override public int tryEmpty(FluidType type, int amount, ItemStack stack) { if(providesFluid(type, stack)) { - int toUnload = Math.min(amount, this.getFill(stack, type)); - this.setFill(stack, type,this.getFill(stack, type) - toUnload); + int toUnload = Math.min(amount, this.getFill(stack)); + this.setFill(stack, type,(short) (this.getFill(stack) - toUnload)); + if(this.getFill(stack) == 0) + this.setFill(stack, Fluids.NONE, (short) 0); return toUnload; } return amount; @@ -140,7 +171,10 @@ public class ItemPipette extends Item implements IFillableItem { @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister icon) { super.registerIcons(icon); - this.overlayIcon = icon.registerIcon("hbm:pipette_overlay"); + if (this == ModItems.pipette_laboratory) + this.overlayIcon = icon.registerIcon("hbm:pipette_laboratory_overlay"); + else + this.overlayIcon = icon.registerIcon("hbm:pipette_overlay"); } @Override @@ -161,7 +195,7 @@ public class ItemPipette extends Item implements IFillableItem { if(pass == 0) { return 0xffffff; } else { - int j = Fluids.fromID(stack.getItemDamage()).getColor(); + int j = this.getType(stack).getColor(); if(j < 0) { j = 0xffffff; diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 401e6b48f..b091bfe19 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1003,7 +1003,11 @@ desc.item.kitArmor=Armor will be displaced by new set. desc.item.kitHaz=Armor will be displaced by hazmat suit. desc.item.kitPack=What a bargain! desc.item.kitPool=Please empty inventory before opening! -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pipette.corrosive=Can handle corrosive liquids. +desc.item.pipette.laboratory=Now with 50x more precision! +desc.item.pipette.noCorrosive=§eCannot handle corrosive liquids. +desc.item.pipette.noEmpty=§ePipette not empty! desc.item.rtgDecay=Decays to: %s desc.item.rtgHeat=Power Level: %s desc.item.storage.capacity=Capacity %s%%s diff --git a/src/main/resources/assets/hbm/textures/items/pipette.png b/src/main/resources/assets/hbm/textures/items/pipette.png index 00ebcd67423fdf013dbc4b3cac6c2339cb30d27a..b4c5c7e2275107903c7128234c030d494f8d342f 100644 GIT binary patch delta 172 zcmV;d08{_E0r~-uR)3F4L_t(IPh+4v*tBWWe-MUp85p57Q2?az+qZ9E_V3@n8De8& z8JWO5BEZRa|No2I_<}Wp3<1$Z1CVAYlVQb^|NrOBn+N9;1h>B+G=sprhp2qK0A2H@ z7bIwY^@9SN(KUno4P_Dr557`hGYBAuI7xm60hnfxlSy(m2qnOrPO?TA0NGBmlLrA{ aU;qH_#%$%hC*|}20000f{a-&hU7Mr9 z-ZnT%-yKvj~bQf3rCef$61IX{c} z3KoAQ7D}?H#XCKH%=%*1^t%d+`6ORsvcZlIEljf=87z-@elq4bVA4Ft zXVPXzhG!*{Ob;FS^|}22I1y13Hf{HNrE^*Ox&H$mRfI5V#aP P8AN%y`njxgN@xNA9nEF| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pipette_laboratory.png b/src/main/resources/assets/hbm/textures/items/pipette_laboratory.png new file mode 100644 index 0000000000000000000000000000000000000000..314f232058bce08647d5f447235165df72ac3620 GIT binary patch literal 366 zcmV-!0g?WRP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0Ru@yK~y+TV;~2V z?t1?p$|N78F1tazA?0hY!4-e`^5s8FbK?ASgbk_P`T(q`anGy&Ak8mcy!e0j?p?S> zMktLHH12-!zur{>tOlg<$B!QjfB*hv`1kK0SYB0Cm5~X|!U2#qS65e~XrA{}22A61 z0SJJc&BMdP0CYB3Gsuv+kHi_e-2@pskN^CS*MOzh{{MgToq@qe;2vDFhK2@;9%d+w z0cKxqQX2aKYzazlqk20gk@?PB>-Z0t2U+GQhw90J~e2Q!#9U2mk;8 M07*qoM6N<$f=Jh$AOHXW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pipette_laboratory_overlay.png b/src/main/resources/assets/hbm/textures/items/pipette_laboratory_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..8b1d9fef83cff6a7d8c78046da069a7ebd7e28db GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucK_yQY#}EtuWC_;A2_gwi-tzzdw;Oq~i)7aQ g>18@Qg^`VoK}VZA>h`1$&Op@+p00i_>zopr0Lt1Vo&W#< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pipette_overlay.png b/src/main/resources/assets/hbm/textures/items/pipette_overlay.png index 7615025c908ca3a3f87d77f8fc5cd59ff08ec233..c6bf6aadb19ac2f570b7dff1c3831c26b9c83d68 100644 GIT binary patch delta 144 zcmV;B0B`@F0p0-9G+qGG$j8FK@cai< z00}TcX`BG0`RgAB25z7My8Mh7>hZb&ruh>PW77-*I9))ZbN00{s|MNUMnLSTZ%Bs$dq delta 80 zcmcb|IG=Gsn5T)Si(`m|f3gJYVMYU|%$NuEQ`i{SWPOx$2r%Y&FiFA7n8Uy^GlpS( jS`5R@Z-EX11_lfaOzT+K;!VVu7=Xaj)z4*}Q$iB}0sa?} From 67d0b833c7bed23c70d6e63761073f05a18814b7 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sat, 6 Jan 2024 02:28:36 -0600 Subject: [PATCH 063/376] swapping the sneaking control for changing capacity, seems more natural to shift to decrease. --- src/main/java/com/hbm/items/tool/ItemPipette.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index b59d6c42a..a09ff9809 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -91,10 +91,10 @@ public class ItemPipette extends Item implements IFillableItem { int a; if(this == ModItems.pipette_laboratory) //if the pipette is a laboratory pipette //if the player is sneaking then the capacity should increase, else it should decrease (Math.min and Math.max for negative numbers/going over capacity) - a = player.isSneaking() ? Math.min(this.getCapacity(stack) + 1, 50) : Math.max(this.getCapacity(stack) - 1, 1); + a = !player.isSneaking() ? Math.min(this.getCapacity(stack) + 1, 50) : Math.max(this.getCapacity(stack) - 1, 1); else //if its not a laboratory pipette //if the player is sneaking then the capacity should increase, else it should decrease - a = player.isSneaking() ? Math.min(this.getCapacity(stack) + 50, 1_000) : Math.max(this.getCapacity(stack) - 50, 50); + a = !player.isSneaking() ? Math.min(this.getCapacity(stack) + 50, 1_000) : Math.max(this.getCapacity(stack) - 50, 50); stack.stackTagCompound.setShort("capacity", (short) a); // set the capacity to the new value player.addChatMessage(new ChatComponentText(a + "/" + this.getMaxFill() + "mB")); // send new value in chat for player to see } else { From 4c3945c92420bb6a3682e3f752a5ec2f2371aea1 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 6 Jan 2024 22:59:40 +0100 Subject: [PATCH 064/376] getting railed again --- changelog | 11 +- src/main/java/com/hbm/blocks/ModBlocks.java | 26 +- .../java/com/hbm/blocks/bomb/NukeN45.java | 137 -- .../blocks/rail/BlockRailWaypointSystem.java | 2 - ...dCurve.java => RailStandardCurveBase.java} | 21 +- .../blocks/rail/RailStandardCurveWide.java | 239 -- .../blocks/rail/RailStandardCurveWide7.java | 113 + .../blocks/rail/RailStandardCurveWide9.java | 148 ++ .../java/com/hbm/entity/EntityMappings.java | 1 + .../missile/EntityMissileAntiBallistic.java | 3 +- .../entity/missile/EntityMissileBaseNT.java | 3 +- .../entity/missile/EntityMissileDoomsday.java | 5 - .../entity/missile/EntityMissileShuttle.java | 5 - .../entity/missile/EntityMissileStealth.java | 33 + .../entity/missile/EntityMissileTier0.java | 5 - .../entity/missile/EntityMissileTier1.java | 5 - .../entity/missile/EntityMissileTier2.java | 5 - .../entity/missile/EntityMissileTier3.java | 5 - .../entity/missile/EntityMissileTier4.java | 5 - .../hbm/entity/train/EntityRailCarBase.java | 4 +- .../hbm/entity/train/EntityRailCarCargo.java | 16 +- .../entity/train/EntityRailCarRidable.java | 2 +- .../handler/guncfg/Gun44MagnumFactory.java | 2 +- .../inventory/container/ContainerNukeN45.java | 82 - .../com/hbm/inventory/gui/GUINukeN45.java | 73 - .../inventory/recipes/AssemblerRecipes.java | 1 + src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/special/ItemTrain.java | 28 +- src/main/java/com/hbm/main/ClientProxy.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 6 +- .../com/hbm/main/ModEventHandlerClient.java | 6 + .../java/com/hbm/main/ResourceManager.java | 5 +- .../java/com/hbm/packet/AuxGaugePacket.java | 6 - .../entity/rocket/RenderMissileGeneric.java | 4 + .../tileentity/RenderLaunchPadTier1.java | 6 +- .../hbm/render/tileentity/RenderNukeN45.java | 113 - .../render/tileentity/RenderSolarBoiler.java | 2 +- .../java/com/hbm/tileentity/TileMappings.java | 1 - .../tileentity/bomb/TileEntityLaunchPad.java | 4 +- .../tileentity/bomb/TileEntityNukeN45.java | 326 --- .../machine/TileEntityMachineArcWelder.java | 2 +- .../machine/TileEntityMachineRadarNT.java | 1 - .../machine/TileEntitySolarBoiler.java | 8 +- .../turret/TileEntityTurretBaseNT.java | 6 +- src/main/resources/assets/hbm/lang/de_DE.lang | 23 +- src/main/resources/assets/hbm/lang/en_US.lang | 30 +- .../blocks/rail_standard_bend_wide9.obj | 1966 +++++++++++++++++ .../assets/hbm/models/missile_stealth.obj | 384 ++++ .../hbm/textures/items/missile_stealth.png | Bin 0 -> 253 bytes .../hbm/textures/models/missile_stealth.png | Bin 0 -> 1126 bytes 50 files changed, 2772 insertions(+), 1112 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/bomb/NukeN45.java rename src/main/java/com/hbm/blocks/rail/{RailStandardCurve.java => RailStandardCurveBase.java} (94%) delete mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java create mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileStealth.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerNukeN45.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUINukeN45.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderNukeN45.java delete mode 100644 src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj create mode 100644 src/main/resources/assets/hbm/models/missile_stealth.obj create mode 100644 src/main/resources/assets/hbm/textures/items/missile_stealth.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_stealth.png diff --git a/changelog b/changelog index 76672bd58..8aa4089d6 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,10 @@ * Will automatically do single ingredient 2x2 or 3x3 recipes like compressing ingots into blocks at up to 9 operations per tick * Input is strictly on the top and output on the bottom * The side acts as an output for the ingredients as a way to de-clog the funnel from leftover materials +* Stealth missile + * A missile that is not picked up by radars, turrets or ABMs + * Marginally more powerful than a tier 1 HE missile + * Somewhat expensive, takes a full minute to make in the assembler ## Changed * Updated russian localization @@ -23,14 +27,19 @@ * Now features proper animations for drawing the weapon, firing and reloading, as well as new sounds * Comes with a new and improved 3D model as well as a cylinder gap flash when firing * Is now part of the red room loot pool + * Durability has been drastically increased * Powder box recipes now produce 8 boxes from the same amount of ingredients, making cyclotron recipes more affordable * Buffed the radiation-powered engine, all valid fuels now produce 10x more energy per tick * Removed tungsten and HSS bolts as dedicated items, they are now a single bolt item that uses the autogen system * Regular steel is now also a valid bolt material which will replace tungsten in many recipes where tungsten just doesn't make sense * Bolts Are now 1/8 of an ingot instead of 1/2 which makes some recipes marginally cheaper, as well as making them equal to GregTech bolts * Bolts are oredicted and interchangeable, as well as recycleable in the crucible +* The N45 naval mine has been obliterated +* The solar boiler's ray rendering is no longer bound by particle settings, instead it will be disabled when fast graphics are enabaled +* The solar boiler's internal buffer has been reduced, its steam output is now capped at 10,000mB/t (which should be 20kHE/t or 0.8MHE/s) ## Fixed * Fixed afterburn upgrades not being craftable with bakelite * Fixed bismuth block not being properly oredicted -* Powder detectors that are used in the same network as diodes should now be somewhat less wrong \ No newline at end of file +* Powder detectors that are used in the same network as diodes should now be somewhat less wrong +* Fixed horrifying gamebreaking issue that would frequently cause crashes, corrupt worlds and bluescreen PCs where the red copper block and the advanced alloy block had inconsistent colors diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f67d7a6f0..3b7a3fd1c 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -664,7 +664,6 @@ public class ModBlocks { public static Block nuke_custom; public static Block nuke_solinium; public static Block nuke_n2; - public static Block nuke_n45; public static Block nuke_fstbmb; public static Block bomb_multi; @@ -1174,7 +1173,8 @@ public class ModBlocks { public static Block rail_large_straight; public static Block rail_large_straight_short; public static Block rail_large_curve; - public static Block rail_large_curve_wide; + public static Block rail_large_curve_7; + public static Block rail_large_curve_9; public static Block rail_large_ramp; public static Block rail_large_buffer; public static Block rail_large_switch; @@ -1803,7 +1803,6 @@ public class ModBlocks { nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":custom"); nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); - nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":code"); nuke_fstbmb = new NukeBalefire(Material.iron).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); @@ -2252,14 +2251,15 @@ public class ModBlocks { rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_straight_short = new RailStandardStraightShort().setBlockName("rail_large_straight_short").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_curve_wide = new RailStandardCurveWide().setBlockName("rail_large_curve_wide").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); - rail_large_switch = new RailStandardSwitch().setBlockName("rail_large_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_switch_flipped = new RailStandardSwitchFlipped().setBlockName("rail_large_switch_flipped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_straight_short = new RailStandardStraightShort().setBlockName("rail_large_straight_short").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve = new RailStandardCurveBase().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve_7 = new RailStandardCurveWide7().setBlockName("rail_large_curve_7").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve_9 = new RailStandardCurveWide9().setBlockName("rail_large_curve_9").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); + rail_large_switch = new RailStandardSwitch().setBlockName("rail_large_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_switch_flipped = new RailStandardSwitchFlipped().setBlockName("rail_large_switch_flipped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); 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"); @@ -2994,7 +2994,6 @@ public class ModBlocks { GameRegistry.registerBlock(nuke_fleija, nuke_fleija.getUnlocalizedName()); GameRegistry.registerBlock(nuke_solinium, nuke_solinium.getUnlocalizedName()); GameRegistry.registerBlock(nuke_n2, nuke_n2.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_n45, nuke_n45.getUnlocalizedName()); GameRegistry.registerBlock(nuke_fstbmb, nuke_fstbmb.getUnlocalizedName()); GameRegistry.registerBlock(nuke_custom, nuke_custom.getUnlocalizedName()); @@ -3561,7 +3560,8 @@ public class ModBlocks { register(rail_large_straight); register(rail_large_straight_short); register(rail_large_curve); - register(rail_large_curve_wide); + register(rail_large_curve_7); + register(rail_large_curve_9); register(rail_large_ramp); register(rail_large_buffer); register(rail_large_switch); diff --git a/src/main/java/com/hbm/blocks/bomb/NukeN45.java b/src/main/java/com/hbm/blocks/bomb/NukeN45.java deleted file mode 100644 index df47fae70..000000000 --- a/src/main/java/com/hbm/blocks/bomb/NukeN45.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.hbm.blocks.bomb; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IBomb; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class NukeN45 extends BlockContainer implements IBomb { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory = false; - - public NukeN45(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityNukeN45(); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - if(!keepInventory) { - ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if(tileentityfurnace != null) { - for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if(itemstack != null) { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while(itemstack.stackSize > 0) { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if(j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if(itemstack.hasTagCompound()) { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @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()) { - TileEntityNukeN45 entity = (TileEntityNukeN45) world.getTileEntity(x, y, z); - if(entity != null) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.nuke_n45); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public BombReturnCode explode(World world, int x, int y, int z) { - - if(!world.isRemote) { - TileEntityNukeN45 entity = (TileEntityNukeN45) world.getTileEntity(x, y, z); - - if(entity.getType() == 100) { - entity.primed = true; - return BombReturnCode.TRIGGERED; - } else if(!entity.primed && entity.getType() > 0) { - int t = entity.getType(); - entity.clearSlots(); - entity.explode(world, x, y, z, t); - return BombReturnCode.DETONATED; - } - - return BombReturnCode.ERROR_MISSING_COMPONENT; - } - - return BombReturnCode.UNDEFINED; - } -} diff --git a/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java index 7ef5f4fb0..9cf026cd1 100644 --- a/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java +++ b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java @@ -158,8 +158,6 @@ public abstract class BlockRailWaypointSystem extends BlockDummyable implements currentPos = nextNode; } - if(!world.isRemote) PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + distRemaining).color(EnumChatFormatting.RED).flush(), 1), new TargetPoint(world.provider.dimensionId, x, y, z, 50)); - info.overshoot = distRemaining; info.pos = new BlockPos(currentPos.xCoord, currentPos.yCoord, currentPos.zCoord); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java similarity index 94% rename from src/main/java/com/hbm/blocks/rail/RailStandardCurve.java rename to src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java index e4e394469..101c7801f 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java @@ -22,9 +22,11 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardCurve extends BlockDummyable implements IRailNTM, IRenderBlock { +public class RailStandardCurveBase extends BlockDummyable implements IRailNTM, IRenderBlock { + + protected int width = 4; - public RailStandardCurve() { + public RailStandardCurveBase() { super(Material.iron); } @@ -59,8 +61,8 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM, IRend ForgeDirection dir = ForgeDirection.getOrientation(meta); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - double turnRadius = 4D; - double axisDist = 4.5D; + double turnRadius = width; + double axisDist = width + 0.5D; Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * axisDist; @@ -105,7 +107,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM, IRend double angleOvershoot = effAngle - 90D; moveAngle -= angleOvershoot; double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)).yaw((float) moveAngle); + info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * width + rot.offsetX * (width + 1), y, cZ - dir.offsetZ * width + rot.offsetZ * (width + 1))).yaw((float) moveAngle); return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y + 0.1875, axisZ - dir.offsetZ * turnRadius); } @@ -130,7 +132,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM, IRend @Override public int[] getDimensions() { - return new int[] {0, 0, 4, 0, 4, 0}; + return new int[] {0, 0, width, 0, width, 0}; } @Override @@ -208,9 +210,10 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM, IRend @Override @SideOnly(Side.CLIENT) public void renderInventory(Tessellator tessellator, Block block, int metadata) { - GL11.glScaled(0.2, 0.2, 0.2); - GL11.glTranslated(2.5, -0.0625, -1.5); - GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + GL11.glRotated(45, 0, 1, 0); + GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(2, 0, 2); tessellator.startDrawingQuads(); ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java deleted file mode 100644 index 221832df8..000000000 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide.java +++ /dev/null @@ -1,239 +0,0 @@ -package com.hbm.blocks.rail; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.BlockDummyable; -import com.hbm.lib.Library; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; -import net.minecraftforge.common.util.ForgeDirection; - -public class RailStandardCurveWide extends BlockDummyable implements IRailNTM, IRenderBlock { - - public RailStandardCurveWide() { - super(Material.iron); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return null; - } - - @Override - public int getRenderType() { - return renderID; - } - - @Override - public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { - return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); - } - - @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { - return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); - } - - /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ - public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { - int[] pos = this.findCore(world, x, y, z); - if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); - int cX = pos[0]; - int cY = pos[1]; - int cZ = pos[2]; - int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; - ForgeDirection dir = ForgeDirection.getOrientation(meta); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - double turnRadius = 6D; - double axisDist = 6.5D; - - Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); - double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * axisDist; - double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * axisDist; - - Vec3 dist = Vec3.createVectorHelper(vec.xCoord - axisX, 0, vec.zCoord - axisZ); - dist = dist.normalize(); - dist.xCoord *= turnRadius; - dist.zCoord *= turnRadius; - - double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; - - if(speed == 0) { - info.dist(0).pos(new BlockPos(x, y, z)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); - } - - double angleDeg = Math.atan2(dist.xCoord, dist.zCoord) * 180D / Math.PI + 90; - if(dir == Library.NEG_X) angleDeg -= 90; - if(dir == Library.POS_X) angleDeg += 90; - if(dir == Library.POS_Z) angleDeg += 180; - angleDeg = MathHelper.wrapAngleTo180_double(angleDeg); - double length90Deg = turnRadius * Math.PI / 2D; - double angularChange = speed / length90Deg * 90D; - - ForgeDirection moveDir = ForgeDirection.UNKNOWN; - - if(Math.abs(motionX) > Math.abs(motionZ)) { - moveDir = motionX > 0 ? Library.POS_X : Library.NEG_X; - } else { - moveDir = motionZ > 0 ? Library.POS_Z : Library.NEG_Z; - } - - if(moveDir == dir || moveDir == rot.getOpposite()) { - angularChange *= -1; - } - - double effAngle = angleDeg + angularChange; - moveAngle += angularChange; - - if(effAngle > 90) { - double angleOvershoot = effAngle - 90D; - moveAngle -= angleOvershoot; - double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 6 + rot.offsetX * 7, y, cZ - dir.offsetZ * 6 + rot.offsetZ * 7)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y + 0.1875, axisZ - dir.offsetZ * turnRadius); - } - - if(effAngle < 0) { - double angleOvershoot = -effAngle; - moveAngle -= angleOvershoot; - double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y + 0.1875, axisZ -rot.offsetZ * turnRadius); - } - - double radianChange = angularChange * Math.PI / 180D; - dist.rotateAroundY((float) radianChange); - - return Vec3.createVectorHelper(axisX + dist.xCoord, y + 0.1875, axisZ + dist.zCoord); - } - - @Override - public TrackGauge getGauge(World world, int x, int y, int z) { - return TrackGauge.STANDARD; - } - - @Override - public int[] getDimensions() { - return new int[] {0, 0, 6, 0, 6, 0}; - } - - @Override - public int getOffset() { - return 0; - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { - - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - dir = dir.getOpposite(); - - int dX = dir.offsetX; - int dZ = dir.offsetZ; - int rX = rot.offsetX; - int rZ = rot.offsetZ; - - return world.getBlock(x + dX, y, z + dZ).isReplaceable(world, x + dX, y, z + dZ) && - world.getBlock(x + rX, y, z + rZ).isReplaceable(world, x + rX, y, z + rZ) && - world.getBlock(x + dX + rX, y, z + dZ + rZ).isReplaceable(world, x + dX + rX, y, z + dZ + rZ) && - world.getBlock(x + dX + rX * 2, y, z + dZ + rZ * 2).isReplaceable(world, x + dX + rX * 2, y, z + dZ + rZ * 2) && - world.getBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ).isReplaceable(world, x + dX * 2 + rX, y, z + dZ * 2 + rZ) && - world.getBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2).isReplaceable(world, x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2) && - world.getBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ).isReplaceable(world, x + dX * 3 + rX, y, z + dZ * 3 + rZ) && - world.getBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2).isReplaceable(world, x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2) && - world.getBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3).isReplaceable(world, x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3) && - world.getBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3).isReplaceable(world, x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3) && - world.getBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3).isReplaceable(world, x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3) && - world.getBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4).isReplaceable(world, x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4) && - world.getBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4).isReplaceable(world, x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4); - } - - @Override - protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { - - BlockDummyable.safeRem = true; - - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - dir = dir.getOpposite(); - - int dX = dir.offsetX; - int dZ = dir.offsetZ; - int rX = rot.offsetX; - int rZ = rot.offsetZ; - - world.setBlock(x + dX, y, z + dZ, this, dir.ordinal(), 3); - world.setBlock(x + dX * 2, y, z + dZ * 2, this, dir.ordinal(), 3); - world.setBlock(x + rX, y, z + rZ, this, rot.ordinal(), 3); - world.setBlock(x + dX + rX, y, z + dZ + rZ, this, rot.ordinal(), 3); - world.setBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ, this, rot.ordinal(), 3); - world.setBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ, this, dir.ordinal(), 3); - world.setBlock(x + dX * 4 + rX, y, z + dZ * 4 + rZ, this, dir.ordinal(), 3); - world.setBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2, this, rot.ordinal(), 3); - world.setBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2, this, dir.ordinal(), 3); - world.setBlock(x + dX * 4 + rX * 2, y, z + dZ * 4 + rZ * 2, this, dir.ordinal(), 3); - world.setBlock(x + dX * 5 + rX * 2, y, z + dZ * 5 + rZ * 2, this, dir.ordinal(), 3); - world.setBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3, this, rot.ordinal(), 3); - world.setBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3, this, dir.ordinal(), 3); - world.setBlock(x + dX * 5 + rX * 3, y, z + dZ * 5 + rZ * 3, this, dir.ordinal(), 3); - world.setBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4, this, rot.ordinal(), 3); - world.setBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4, this, dir.ordinal(), 3); - world.setBlock(x + dX * 6 + rX * 4, y, z + dZ * 6 + rZ * 4, this, dir.ordinal(), 3); - world.setBlock(x + dX * 5 + rX * 5, y, z + dZ * 5 + rZ * 5, this, rot.ordinal(), 3); - world.setBlock(x + dX * 5 + rX * 6, y, z + dZ * 5 + rZ * 6, this, rot.ordinal(), 3); - world.setBlock(x + dX * 6 + rX * 5, y, z + dZ * 6 + rZ * 5, this, rot.ordinal(), 3); - world.setBlock(x + dX * 6 + rX * 6, y, z + dZ * 6 + rZ * 6, this, rot.ordinal(), 3); - - BlockDummyable.safeRem = false; - } - - @Override - @SideOnly(Side.CLIENT) - public void renderInventory(Tessellator tessellator, Block block, int metadata) { - GL11.glScaled(0.12, 0.12, 0.12); - GL11.glTranslated(2.5, -0.0625, -3); - GL11.glRotated(90, 0, 1, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - } - - @Override - @SideOnly(Side.CLIENT) - public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { - if(meta < 12) return; - float rotation = 0; - if(meta == 15) rotation = 90F / 180F * (float) Math.PI; - if(meta == 12) rotation = 180F / 180F * (float) Math.PI; - if(meta == 14) rotation = 270F / 180F * (float) Math.PI; - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - } -} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java new file mode 100644 index 000000000..99c370760 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java @@ -0,0 +1,113 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardCurveWide7 extends RailStandardCurveBase { + + public RailStandardCurveWide7() { + super(); + this.width = 6; + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + return world.getBlock(x + dX, y, z + dZ).isReplaceable(world, x + dX, y, z + dZ) && + world.getBlock(x + rX, y, z + rZ).isReplaceable(world, x + rX, y, z + rZ) && + world.getBlock(x + dX + rX, y, z + dZ + rZ).isReplaceable(world, x + dX + rX, y, z + dZ + rZ) && + world.getBlock(x + dX + rX * 2, y, z + dZ + rZ * 2).isReplaceable(world, x + dX + rX * 2, y, z + dZ + rZ * 2) && + world.getBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ).isReplaceable(world, x + dX * 2 + rX, y, z + dZ * 2 + rZ) && + world.getBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2).isReplaceable(world, x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2) && + world.getBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ).isReplaceable(world, x + dX * 3 + rX, y, z + dZ * 3 + rZ) && + world.getBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2).isReplaceable(world, x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2) && + world.getBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3).isReplaceable(world, x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3).isReplaceable(world, x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3) && + world.getBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3).isReplaceable(world, x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4).isReplaceable(world, x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4) && + world.getBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4).isReplaceable(world, x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4); + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + world.setBlock(x + dX, y, z + dZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2, y, z + dZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + rX, y, z + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX, y, z + dZ + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX, y, z + dZ * 4 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 2, y, z + dZ * 4 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 2, y, z + dZ * 5 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 3, y, z + dZ * 5 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4, this, dir.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 4, y, z + dZ * 6 + rZ * 4, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 5, y, z + dZ * 5 + rZ * 5, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 6, y, z + dZ * 5 + rZ * 6, this, rot.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 5, y, z + dZ * 6 + rZ * 5, this, rot.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 6, y, z + dZ * 6 + rZ * 6, this, rot.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.225, 0.225, 0.225); + GL11.glRotated(45, 0, 1, 0); + GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(3, 0, 3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java new file mode 100644 index 000000000..bb48b111b --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java @@ -0,0 +1,148 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardCurveWide9 extends RailStandardCurveBase { + + public RailStandardCurveWide9() { + super(); + this.width = 8; + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + int[][] dim = new int[][] { + {1, 0}, + {2, 0}, + {0, 1}, + {1, 1}, + {2, 1}, + {3, 1}, + {4, 1}, + {2, 2}, + {3, 2}, + {4, 2}, + {5, 2}, + {4, 3}, + {5, 3}, + {5, 4}, + {6, 3}, + {6, 4}, + {7, 4}, + {6, 5}, + {7, 5}, + {6, 6}, + {7, 6}, + {7, 7}, + {7, 8}, + {8, 6}, + {8, 7}, + {8, 8}, + }; + + for(int[] array : dim) { + if(!world.getBlock(x + dX * array[0] + rX * array[1], y, z + dZ * array[0] + rZ * array[1]).isReplaceable(world, x + dX * array[0] + rX * array[1], y, z + dZ * array[0] + rZ * array[1])) return false; + } + + return true; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + int d = dir.ordinal(); + int r = rot.ordinal(); + + int[][] dim = new int[][] { + {1, 0, d}, + {2, 0, d}, + {0, 1, r}, + {1, 1, d}, + {2, 1, d}, + {3, 1, d}, + {4, 1, d}, + {2, 2, r}, + {3, 2, r}, + {4, 2, r}, + {5, 2, d}, + {4, 3, r}, + {5, 3, r}, + {5, 4, r}, + {6, 3, d}, + {6, 4, d}, + {7, 4, d}, + {6, 5, r}, + {7, 5, r}, + {6, 6, r}, + {7, 6, r}, + {7, 7, r}, + {7, 8, r}, + {8, 6, d}, + {8, 7, d}, + {8, 8, d}, + }; + + for(int[] array : dim) { + world.setBlock(x + dX * array[0] + rX * array[1], y, z + dZ * array[0] + rZ * array[1], this, array[2], 3); + } + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.175, 0.175, 0.175); + GL11.glRotated(45, 0, 1, 0); + GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(4, 0, 4); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 904f4920c..36892a6b0 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -223,6 +223,7 @@ public class EntityMappings { addEntity(EntityAcidBomb.class, "entity_acid_bomb", 1000); addEntity(EntityFallingBlockNT.class, "entity_falling_block_nt", 1000); addEntity(EntityBoatRubber.class, "entity_rubber_boat", 250, false); + addEntity(EntityMissileStealth.class, "entity_missile_stealth", 1000); addEntity(EntityItemWaste.class, "entity_item_waste", 100); addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index b0f2ef6be..3dbb048d8 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -108,7 +108,8 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements for(Entity e : TileEntityMachineRadarNT.matchingEntities) { if(e.dimension != this.dimension) continue; - if(!(e instanceof EntityMissileBaseNT)) continue; + if(!(e instanceof EntityMissileBaseNT)) continue; //can only lock onto missiles + if(e instanceof EntityMissileStealth) continue; //cannot lack onto missiles with stealth coating Vec3 vec = Vec3.createVectorHelper(e.posX - posX, e.posY - posY, e.posZ - posZ); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 631f75cb0..70ac4e39c 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -15,7 +15,6 @@ import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.main.MainRegistry; -import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -31,7 +30,7 @@ import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; -public abstract class EntityMissileBaseNT extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable, IRadarDetectableNT { +public abstract class EntityMissileBaseNT extends EntityThrowableInterp implements IChunkLoader, IRadarDetectableNT { public int startX; public int startZ; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java index 63e14e7f3..552f88379 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java @@ -105,11 +105,6 @@ public class EntityMissileDoomsday extends EntityMissileBaseNT { return null; } - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } - @Override public String getUnlocalizedName() { return "radar.target.doomsday"; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java index 356588f64..7a0b89ef8 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java @@ -61,11 +61,6 @@ public class EntityMissileShuttle extends EntityMissileBaseNT { return new ItemStack(ModItems.missile_generic); } - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } - @Override public String getUnlocalizedName() { return "radar.target.shuttle"; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java new file mode 100644 index 000000000..a04805c51 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java @@ -0,0 +1,33 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMissileStealth extends EntityMissileBaseNT { + + public EntityMissileStealth(World world) { super(world); } + public EntityMissileStealth(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.bolt, 4, Mats.MAT_STEEL.id)); + return list; + } + + @Override public String getUnlocalizedName() { return "radar.target.tier1"; } + @Override public int getBlipLevel() { return IRadarDetectableNT.TIER1; } + @Override public boolean canBeSeenBy(Object radar) { return false; } + + @Override public void onImpact() { this.explodeStandard(20F, 24, false, true); } + @Override public ItemStack getDebrisRareDrop() { return DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC); } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java index d1d6ecba9..f0239aa53 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -37,11 +37,6 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { return list; } - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } - @Override public String getUnlocalizedName() { return "radar.target.tier0"; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java index 6fb39039e..99de6e68e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -25,11 +25,6 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { return list; } - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } - @Override public String getUnlocalizedName() { return "radar.target.tier1"; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java index a0b71922f..421e5ba35 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java @@ -29,11 +29,6 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { return list; } - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } - @Override public String getUnlocalizedName() { return "radar.target.tier2"; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java index e046a2f6c..0c7342cc2 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -31,11 +31,6 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { return list; } - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } - @Override public String getUnlocalizedName() { return "radar.target.tier3"; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java index 826f4143f..fb56144ad 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -30,11 +30,6 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { return list; } - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } - @Override public String getUnlocalizedName() { return "radar.target.tier4"; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index a913f1c64..ef6b7f526 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -131,7 +131,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { data.setInteger("color", 0x0000ff); data.setFloat("scale", 1.5F); data.setString("text", id + " (#" + train.ltuIndex + ")"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); + //PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); } } @@ -891,6 +891,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { @SideOnly(Side.CLIENT) public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { List text = new ArrayList(); - ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); //none of this shit is going to work anyway + //ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java index 4bf5f2ee2..65deb95b5 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java @@ -22,7 +22,7 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.dataWatcher.addObject(10, new Integer(0)); } - public int countVacantSlots() { + public int countOccupiedSlots() { int slots = 0; for(int i = 0; i < this.getSizeInventory(); i++) { @@ -53,11 +53,9 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.slots[slot] = null; } - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } } else { - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -67,10 +65,8 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(this.slots[slot] != null) { ItemStack itemstack = this.slots[slot]; this.slots[slot] = null; - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } else { - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -82,8 +78,12 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { stack.stackSize = this.getInventoryStackLimit(); } - - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); + } + + @Override + public void onUpdate() { + super.onUpdate(); + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countOccupiedSlots()); } @Override @@ -142,7 +142,7 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II } } - this.dataWatcher.updateObject(10, this.countVacantSlots()); + this.dataWatcher.updateObject(10, this.countOccupiedSlots()); } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index da9a66f4e..8ac621cf2 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -291,6 +291,6 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { text.add("Front: " + this.coupledFront); text.add("Back: " + this.coupledBack);*/ text.add("Nearest seat: " + this.getNearestSeat(MainRegistry.proxy.me())); - ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); + //ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index d6baf146d..5beeccad4 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -83,7 +83,7 @@ public class Gun44MagnumFactory { GunConfiguration config = getBaseConfig(); - config.durability = 4000; + config.durability = 31_000; config.name = "ifScope"; config.manufacturer = EnumGunManufacturer.IF; diff --git a/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java b/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java deleted file mode 100644 index 9829f3210..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.bomb.TileEntityNukeN45; -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.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerNukeN45 extends Container { - - private TileEntityNukeN45 diFurnace; - - public ContainerNukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { - - diFurnace = tedf; - - //Payload - this.addSlotToContainer(new Slot(tedf, 0, 44, 35)); - //Range up - this.addSlotToContainer(new Slot(tedf, 1, 116, 35)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 1) { - if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 2, false)) - { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeN45.java b/src/main/java/com/hbm/inventory/gui/GUINukeN45.java deleted file mode 100644 index 055cc2a30..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUINukeN45.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerNukeN45; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.bomb.TileEntityNukeN45; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUINukeN45 extends GuiInfoContainer { - - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_n45.png"); - private TileEntityNukeN45 diFurnace; - - public GUINukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { - super(new ContainerNukeN45(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 168; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - String[] text = new String[] { "The first slot holds the payload.", - "Acceptable payloads:", - " -Det Cord", - " -TNT", - " -Explosive Charge", - " -Nuclear Charge", - "Using detonator while in mine mode will", - "arm the mine, set to explode when", - "it detects a large entity nearby."}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "The second slot is for green machine", - "upgrades. Entity detection range increases", - "by 5 blocks for every level.", - "When left empty, the mine can not be armed", - "an will behave like a regular bomb." }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(diFurnace.primed) - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 121, guiTop + 22, 6, 8, mouseX, mouseY, new String[]{ "Mine armed!" } ); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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.primed) { - drawTexturedModalRect(guiLeft + 121, guiTop + 22, 176, 0, 6, 8); - } - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - } -} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 315ac6eef..a8c0b40ae 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -197,6 +197,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); + makeRecipe(new ComparableStack(ModItems.missile_stealth, 1), new AStack[] { new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(CU.plate(), 10), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_gold), new OreDictStack(STEEL.bolt(), 32) },1200); makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel), new ComparableStack(ModItems.circuit_gold, 1) },600); makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.board_copper, 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_small_steel, 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 4e0445c06..12dafee58 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1321,6 +1321,7 @@ public class ModItems { public static Item missile_schrabidium; public static Item missile_emp; public static Item missile_shuttle; + public static Item missile_stealth; public static Item mp_thruster_10_kerosene; public static Item mp_thruster_10_kerosene_tec; @@ -3940,6 +3941,7 @@ public class ModItems { missile_schrabidium = new Item().setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); missile_emp = new Item().setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); missile_shuttle = new ItemMissileShuttle().setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); + missile_stealth = new Item().setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_carrier"); missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); @@ -6862,6 +6864,7 @@ public class ModItems { GameRegistry.registerItem(missile_schrabidium, missile_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(missile_emp, missile_emp.getUnlocalizedName()); GameRegistry.registerItem(missile_shuttle, missile_shuttle.getUnlocalizedName()); + GameRegistry.registerItem(missile_stealth, missile_stealth.getUnlocalizedName()); GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 007d31a91..6ecadd476 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -44,9 +44,9 @@ public class ItemTrain extends ItemEnumMulti { public static enum EnumTrainType { // Engine Gauge Max Speed Accel. Eng. Brake Parking Brake - CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"), + CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s²", "<1m/s", "Yes"), CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No"), - TUNNEL_BORE(TrainTunnelBore.class, "NONE", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"); + TUNNEL_BORE(TrainTunnelBore.class, "NONE", "Standard Gauge", "10m/s", "0.2m/s²", "<1m/s", "Yes"); public Class train; public String engine; @@ -78,20 +78,24 @@ public class ItemTrain extends ItemEnumMulti { try { train = type.train.getConstructor(World.class).newInstance(world); } catch(Exception e) { } if(train != null && train.getGauge() == ((IRailNTM) b).getGauge(world, x, y, z)) { - if(!world.isRemote) { - train.setPosition(x + fx, y + fy, z + fz); - BlockPos anchor = train.getCurrentAnchorPos(); - train.rotationYaw = entity.rotationYaw; - Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE, 0)); + + train.setPosition(x + fx, y + fy, z + fz); + BlockPos anchor = train.getCurrentAnchorPos(); + train.rotationYaw = entity.rotationYaw; + Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE, 0)); + if(corePos != null) { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT, train.getCollisionSpan() - train.getLengthSpan())); Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK, train.getCollisionSpan() - train.getLengthSpan())); - train.rotationYaw = train.generateYaw(frontPos, backPos); - world.spawnEntityInWorld(train); + if(frontPos != null && backPos != null) { + if(!world.isRemote) { + train.rotationYaw = train.generateYaw(frontPos, backPos); + world.spawnEntityInWorld(train); + } + stack.stackSize--; + return true; + } } - - stack.stackSize--; - return true; } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c94f66408..c86d957a1 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -185,7 +185,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeSolinium.class, new RenderNukeSolinium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN2.class, new RenderNukeN2()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeMan.class, new RenderNukeMan()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN45.class, new RenderNukeN45()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeBalefire.class, new RenderNukeFstbmb()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBombMulti.class, new RenderBombMulti()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeMike.class, new RenderNukeMike()); @@ -668,6 +667,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileDecoy.class, new RenderMissileGeneric()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileStealth.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileAntiBallistic.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileIncendiary.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCluster.class, new RenderMissileGeneric()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d3887d25e..8e9cce423 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -518,8 +518,12 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight_short, 5), new Object[] { ModBlocks.rail_large_straight }); addRecipeAuto(new ItemStack(ModBlocks.rail_large_buffer, 1), new Object[] { " S", "RS", 'R', ModBlocks.rail_large_straight, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve, 1), new Object[] { "R ", " R", 'R', ModBlocks.rail_large_straight }); - addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve_wide, 1), new Object[] { "RR", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve_7, 1), new Object[] { "RR", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve_9, 1), new Object[] { "RR ", " R", " R", 'R', ModBlocks.rail_large_straight }); addRecipeAuto(new ItemStack(ModBlocks.rail_large_ramp, 1), new Object[] { " R ", "SSS", 'R', ModBlocks.rail_large_straight, 'S', KEY_SLAB }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_switch, 1), new Object[] { "R R", " RR", " R", 'R', ModBlocks.rail_large_straight }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch), new Object[] { ModBlocks.rail_large_switch_flipped }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch_flipped), new Object[] { ModBlocks.rail_large_switch }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', ModItems.wire_aluminium, 'C', ModItems.circuit_aluminium, 'H', ModItems.hull_small_aluminium, 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); addShapelessAuto(new ItemStack(ModItems.powder_ice, 4), new Object[] { Items.snowball, KNO.dust(), REDSTONE.dust() }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index ea2a605c9..72e07c9b8 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1,6 +1,7 @@ package com.hbm.main; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Random; @@ -12,6 +13,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; +import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; @@ -64,6 +69,7 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 89f81b449..b27890ada 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1047,6 +1047,7 @@ public class ResourceManager { //Missiles public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asDisplayList(); public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asDisplayList(); + public static final IModelCustom missileStealth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_stealth.obj"), false).asDisplayList(); public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")); public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")); public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); @@ -1191,6 +1192,7 @@ public class ResourceManager { public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_bu.png"); public static final ResourceLocation missileV2_decoy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_decoy.png"); public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png"); + public static final ResourceLocation missileStealth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_stealth.png"); public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong.png"); public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_emp.png"); public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_inc.png"); @@ -1469,7 +1471,8 @@ public class ResourceManager { public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); public static final IModelCustom rail_standard_straight_short = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_short.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); - public static final IModelCustom rail_standard_curve_wide = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide.obj")); + public static final IModelCustom rail_standard_curve_wide7 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide.obj")); + public static final IModelCustom rail_standard_curve_wide9 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide9.obj")); public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); public static final IModelCustom rail_standard_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")); public static final IModelCustom rail_standard_switch = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch.obj")); diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java index 09b5139c8..e97a68ce1 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/AuxGaugePacket.java @@ -5,7 +5,6 @@ import com.hbm.items.weapon.ItemMissile.PartSize; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.bomb.TileEntityCompactLauncher; import com.hbm.tileentity.bomb.TileEntityLaunchTable; -import com.hbm.tileentity.bomb.TileEntityNukeN45; import com.hbm.tileentity.machine.TileEntityAMSBase; import com.hbm.tileentity.machine.TileEntityAMSEmitter; import com.hbm.tileentity.machine.TileEntityAMSLimiter; @@ -127,11 +126,6 @@ public class AuxGaugePacket implements IMessage { if(m.id == 0) boiler.heat = m.value; } - if (te instanceof TileEntityNukeN45) { - TileEntityNukeN45 nuke = (TileEntityNukeN45)te; - - nuke.primed = m.value == 1; - } if (te instanceof TileEntityCompactLauncher) { TileEntityCompactLauncher launcher = (TileEntityCompactLauncher)te; diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 1dff79e27..5e017039c 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -3,6 +3,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; import com.hbm.entity.missile.EntityMissileAntiBallistic; +import com.hbm.entity.missile.EntityMissileStealth; import com.hbm.entity.missile.EntityMissileTier1.*; import com.hbm.main.ResourceManager; @@ -28,6 +29,9 @@ public class RenderMissileGeneric extends Render { GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileABM.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); + } else if(entity instanceof EntityMissileStealth) { + bindTexture(ResourceManager.missileStealth_tex); + ResourceManager.missileStealth.renderAll(); } else { if(entity instanceof EntityMissileGeneric) diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index 8b6e245aa..f2b5f3cb8 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -32,19 +32,21 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { //TODO: add a registry for missile rendering to be reused here and for the entity renderer if(toRender.getItem() == ModItems.missile_generic) { - GL11.glScalef(1.0F, 1.0F, 1.0F); bindTexture(ResourceManager.missileV2_HE_tex); GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileV2.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_decoy) { - GL11.glScalef(1.0F, 1.0F, 1.0F); bindTexture(ResourceManager.missileV2_decoy_tex); GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileV2.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } + if(toRender.getItem() == ModItems.missile_stealth) { + bindTexture(ResourceManager.missileStealth_tex); + ResourceManager.missileStealth.renderAll(); + } if(toRender.getItem() == ModItems.missile_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); bindTexture(ResourceManager.missileStrong_HE_tex); diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java b/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java deleted file mode 100644 index 415d2c26f..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderNukeN45 extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - boolean standing = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord - 1, tileEntity.zCoord).isNormalCube(); - - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.universal); - - GL11.glPushMatrix(); - - //GL11.glScaled(2.0D, 2.0D, 2.0D); - - if(standing) { - ResourceManager.n45_stand.renderAll(); - } - - double d = 0.25; - - if(((TileEntityNukeN45)tileEntity).primed) - d /= 4D; - - GL11.glTranslated(0, standing ? 1D : 0.5D, 0); - - ResourceManager.n45_globe.renderAll(); - - GL11.glRotated(90, 1, 0, 0); - - for(int i = 0; i < 8; i++) { - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(45, 0, 0, 1); - } - - GL11.glRotated(45, 0, 0, 1); - - for(int i = 0; i < 4; i++) { - GL11.glRotated(-45, 1, 0, 0); - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(45, 1, 0, 0); - GL11.glRotated(90, 0, 0, 1); - } - - GL11.glRotated(-90, 0, 0, 1); - - for(int i = 0; i < 4; i++) { - GL11.glRotated(45, 1, 0, 0); - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(-45, 1, 0, 0); - GL11.glRotated(90, 0, 0, 1); - } - - GL11.glRotated(45, 0, 0, 1); - GL11.glRotated(-90, 1, 0, 0); - - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - - if(!standing) { - int depth = 0; - - for(int i = 0; i < 51; i++) { - - if(!tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord - i - 1, tileEntity.zCoord).isNormalCube()) { - depth++; - } else { - break; - } - } - - if(depth != 0 && depth < 51) { - - GL11.glTranslated(0, -1D, 0); - - for(int i = 0; i < depth + 1; i++) { - - ResourceManager.n45_chain.renderAll(); - GL11.glTranslated(0, -1, 0); - } - } - } - - GL11.glPopMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java index 0dad6fd63..54c3c1ad1 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java @@ -38,7 +38,7 @@ public class RenderSolarBoiler extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); - if(te instanceof TileEntitySolarBoiler && Minecraft.getMinecraft().gameSettings.particleSetting < 2) { + if(te instanceof TileEntitySolarBoiler && !Minecraft.getMinecraft().gameSettings.fancyGraphics) { TileEntitySolarBoiler boiler = (TileEntitySolarBoiler) te; Tessellator tess = Tessellator.instance; diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 1eef03148..ea45e6402 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -128,7 +128,6 @@ public class TileMappings { put(TileEntityLandmine.class, "tileentity_landmine"); put(TileEntityMachineKeyForge.class, "tileentity_key_forge"); put(TileEntitySellafield.class, "tileentity_sellafield_core"); - put(TileEntityNukeN45.class, "tileentity_n45"); put(TileEntityBlastDoor.class, "tileentity_blast_door"); put(TileEntitySafe.class, "tileentity_safe"); put(TileEntityMachineGasCent.class, "tileentity_gas_centrifuge"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index aa3ae9816..6451f6f02 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -12,6 +12,7 @@ import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileDoomsday; import com.hbm.entity.missile.EntityMissileShuttle; +import com.hbm.entity.missile.EntityMissileStealth; import com.hbm.entity.missile.EntityMissileTier0.*; import com.hbm.entity.missile.EntityMissileTier1.*; import com.hbm.entity.missile.EntityMissileTier2.*; @@ -88,8 +89,9 @@ public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnerg missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class); missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class); missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class); - + missiles.put(new ComparableStack(ModItems.missile_doomsday), EntityMissileDoomsday.class); + missiles.put(new ComparableStack(ModItems.missile_stealth), EntityMissileStealth.class); } public ItemStack toRender; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java deleted file mode 100644 index 07cd73d6a..000000000 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java +++ /dev/null @@ -1,326 +0,0 @@ -package com.hbm.tileentity.bomb; - -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.inventory.container.ContainerNukeN45; -import com.hbm.inventory.gui.GUINukeN45; -import com.hbm.items.ModItems; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.potion.Potion; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityNukeN45 extends TileEntity implements ISidedInventory, IGUIProvider { - - public ItemStack slots[]; - private String customName; - - public boolean primed = false; - - public TileEntityNukeN45() { - slots = new ItemStack[2]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.nukeN45"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() { - - } - - @Override - public void closeInventory() { - - } - - @Override - public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { - return false; - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return new int[0]; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - primed = nbt.getBoolean("primed"); - - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - nbt.setBoolean("primed", primed); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - public void updateEntity() { - - if(!worldObj.isRemote) { - - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, primed ? 1 : 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - - if(primed) { - - if(getType() == 0) { - return; - } - - int rad = 0; - - if(slots[1] != null) { - - if(slots[1].getItem() == ModItems.upgrade_effect_1) - rad = 5; - if(slots[1].getItem() == ModItems.upgrade_effect_2) - rad = 10; - if(slots[1].getItem() == ModItems.upgrade_effect_3) - rad = 15; - } - - if(rad == 0) { - primed = false; - return; - } - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - rad, yCoord + 0.5 - rad, zCoord + 0.5 - rad, xCoord + 0.5 + rad, yCoord + 0.5 + rad, zCoord + 0.5 + rad)); - - for(Object o : list) { - - Entity e = (Entity)o; - - if(e instanceof EntityLivingBase && e.width * e.width * e.height >= 0.5 && !((EntityLivingBase)e).isPotionActive(Potion.invisibility.id)) { - int t = getType(); - this.clearSlots(); - explode(worldObj, xCoord, yCoord, zCoord, t); - break; - } - } - } - } - - } - - public static void explode(World world, int x, int y, int z, int type) { - - if(!world.isRemote) { - world.setBlockToAir(x, y, z); - - //System.out.println(type); - - switch(type) { - case 1: - world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 1.5F, true); - break; - case 2: - world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 4.0F, true); - break; - case 3: - ExplosionLarge.explode(world, x, y, z, 15, true, false, false); - break; - case 4: - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int)(BombConfig.missileRadius * 0.75F), x + 0.5, y + 0.5, z + 0.5)); - EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius * 0.75F); - break; - } - } - } - - public int getType() { - - if(!primed && slots[1] != null) { - - if(slots[1].getItem() == ModItems.upgrade_effect_1 || - slots[1].getItem() == ModItems.upgrade_effect_2 || - slots[1].getItem() == ModItems.upgrade_effect_3) - return 100; - } - - if(slots[0] != null) { - - if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_cord)) - return 1; - if(slots[0].getItem() == Item.getItemFromBlock(Blocks.tnt)) - return 2; - if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_charge)) - return 3; - if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_nuke)) - return 4; - } - - return 0; - } - - public void clearSlots() { - for(int i = 0; i < slots.length; i++) - { - slots[i] = null; - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerNukeN45(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUINukeN45(player.inventory, this); - } - -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index 8bcfe28db..6a4d19226 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -354,7 +354,7 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { - info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electric_furnace_off)); + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_arc_welder)); if(type == UpgradeType.SPEED) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 100 / 6) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 93d4a8218..d3bdc3ff1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -21,7 +21,6 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; -import com.hbm.saveddata.satellites.Satellite.Interfaces; import com.hbm.saveddata.satellites.SatelliteLaser; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index ab91d87c3..0a41526db 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -30,18 +30,14 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui public HashSet secondary = new HashSet(); public TileEntitySolarBoiler() { - water = new FluidTank(Fluids.WATER, 16000, 0); - steam = new FluidTank(Fluids.STEAM, 1600000, 1); + water = new FluidTank(Fluids.WATER, 100, 0); + steam = new FluidTank(Fluids.STEAM, 10_000, 1); } @Override public void updateEntity() { if(!worldObj.isRemote) { - - //if(worldObj.getTotalWorldTime() % 5 == 0) { - fillFluidInit(Fluids.STEAM); - //} this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index fa55c200b..53496d00a 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -29,6 +29,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatExternal; import api.hbm.energy.IEnergyUser; +import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -642,6 +643,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(targetMachines) { + if(e instanceof IRadarDetectableNT && !((IRadarDetectableNT)e).canBeSeenBy(this)) return false; if(e instanceof EntityMissileBaseNT) return true; if(e instanceof EntityMissileCustom) return true; if(e instanceof EntityMinecart) return true; @@ -653,9 +655,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(targetPlayers ) { - if(e instanceof FakePlayer) - return false; - + if(e instanceof FakePlayer) return false; if(e instanceof EntityPlayer) return true; for(Class c : CompatExternal.turretTargetPlayer) if(c.isAssignableFrom(e.getClass())) return true; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6921bf4f1..3ab0b70e1 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1292,9 +1292,9 @@ item.bobmazon_machines.name=Bobmazon: Blöcke und Maschinen item.bobmazon_materials.name=Bobmazon: Ressourcen item.bobmazon_tools.name=Bobmazon: Werkzeuge item.bobmazon_weapons.name=Bobmazon: Waffen und Sprengstoffe -item.bolt_compound.name=Verstärkte Turbinenwelle -item.bolt_dura_steel.name=Schnellarbeitsstahlbolzen item.bolt.name=%sbolzen +item.bolt_compound.name=Verstärkte Turbinenwelle +item.boltgun.name=Pneumatische Nietenpistole item.bomb_caller.name=Luftschlag Zielmarker item.bomb_waffle.name=Massenvernichtungswaffel item.guide_book.name=Handbuch @@ -2316,18 +2316,10 @@ item.missile_nuclear_cluster.name=H-Rakete item.missile_rain.name=Schüttbombenregen item.missile_schrabidium.name=Schrabidiumrakete item.missile_shuttle.name=Reliant Robin Space Shuttle -item.missile_skin_camo.name=Raketenskin: Camouflage -item.missile_skin_desert.name=Raketenskin: Wüstencamouflage -item.missile_skin_flames.name=Raketenskin: Krasse Flammen -item.missile_skin_manly_pink.name=Raketenskin: Männliches Pink -item.missile_skin_metal.name=Raketenskin: Metall -item.missile_skin_orange_insulation.name=Raketenskin: Oranger Isolator -item.missile_skin_sleek.name=Raketenskin: IF-R&D -item.missile_skin_soviet_glory.name=Raketenskin: Sowjetischer Ruhm -item.missile_skin_soviet_stank.name=Raketenskin: Sowjetischer Mief item.missile_soyuz.name=Soyuz-FG item.missile_soyuz_lander.name=Orbitalmodul item.missile_strong.name=Starke HE Rakete +item.missile_stealth.name=Stealth-Rakete item.missile_taint.name=Verdorbene Rakete item.missile_volcano.name=Tectonic Missile item.missile_volcano.desc=Mit der Kraft von Kernwaffen können wir einen Vulkan beschwören! @@ -4383,6 +4375,15 @@ tile.radiorec.name=UKW Radio tile.rail_booster.name=Hochgeschwindigkeits-Boosterschienen tile.rail_highspeed.name=Hochgeschwindigkeitsschienen tile.rail_narrow.name=Schmalspurschienen +tile.rail_large_buffer.name=Normalspur-Prellbock (5m) +tile.rail_large_curve.name=Normalspur-Kurve (5m) +tile.rail_large_curve_7.name=Normalspur-Kurve (7m) +tile.rail_large_curve_9.name=Normalspur-Kurve (9m) +tile.rail_large_ramp.name=Normalspur-Rampe (5m) +tile.rail_large_straight.name=Normalspur-Schiene (5m) +tile.rail_large_straight_short.name=Normalspur-Schiene (1m) +tile.rail_large_switch.name=Normalspur-Weiche (15m, Links) +tile.rail_large_switch_flipped.name=Normalspur-Weiche (15m, Rechts) tile.rail_wood.name=Holzschienen tile.rbmk_absorber.name=RBMK Bor-Neutronenabsorber tile.rbmk_blank.name=RBMK Strukturteil diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b95a4f36b..33604be1b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1954,8 +1954,8 @@ item.bobmazon_machines.name=Bobmazon: Blocks and Machines item.bobmazon_materials.name=Bobmazon: Materials item.bobmazon_tools.name=Bobmazon: Tools item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives -item.bolt_compound.name=Reinforced Turbine Shaft item.bolt.name=%s Bolt +item.bolt_compound.name=Reinforced Turbine Shaft item.boltgun.name=Pneumatic Rivet Gun item.bomb_caller.name=Airstrike Designator item.bomb_waffle.name=Waffle of Mass Destruction @@ -3058,27 +3058,10 @@ item.missile_nuclear_cluster.name=Thermonuclear Missile item.missile_rain.name=Bomblet Rain item.missile_schrabidium.name=Schrabidium Missile item.missile_shuttle.name=Reliant Robin Space Shuttle -item.missile_skin_camo.name=Missile Skin: Camo -item.missile_skin_color.desc=I can't find my missile anymore! -item.missile_skin_desert.name=Missile Skin: Desert Camo -item.missile_skin_desert.desc=Looks like sand, tastes like metal. -item.missile_skin_flames.name=Missile Skin: Sick Flames -item.missile_skin_flames.desc=Radical! -item.missile_skin_manly_pink.name=Missile Skin: Manly Pink -item.missile_skin_manly_pink.desc=Pink, the manliest color of them all. -item.missile_skin_metal.name=Missile Skin: Metal -item.missile_skin_metal.desc=Metal sheets and metal bolts, reinforced with metal. -item.missile_skin_orange_insulation.name=Missile Skin: Orange Insulation -item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not attempt to drink contents. -item.missile_skin_sleek.name=Missile Skin: IF-R&D -item.missile_skin_sleek.desc=Chevrons are cool! -item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory -item.missile_skin_soviet_glory.desc=услуга перевода недоступна -item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank -item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG item.missile_soyuz_lander.name=Orbital Module item.missile_soyuz_lander.desc=Doubles as a crappy lander! +item.missile_stealth.name=Stealth Missile item.missile_strong.name=Strong HE Missile item.missile_taint.name=Taint-Tipped Missile item.missile_volcano.name=Tectonic Missile @@ -5382,6 +5365,15 @@ tile.radiobox.name=Rosenberg Pest Control Box tile.radiorec.name=FM Radio tile.rail_booster.name=High Speed Booster Rail tile.rail_highspeed.name=High Speed Rail +tile.rail_large_buffer.name=Standard Gauge Buffer Stop Rail (5m) +tile.rail_large_curve.name=Standard Gauge Curve Rail (5m) +tile.rail_large_curve_7.name=Standard Gauge Curve Rail (7m) +tile.rail_large_curve_9.name=Standard Gauge Curve Rail (9m) +tile.rail_large_ramp.name=Standard Gauge Ramp Rail (5m) +tile.rail_large_straight.name=Standard Gauge Rail (5m) +tile.rail_large_straight_short.name=Standard Gauge Rail (1m) +tile.rail_large_switch.name=Standard Gauge Switch Rail (15m, Left) +tile.rail_large_switch_flipped.name=Standard Gauge Switch Rail (15m, Right) tile.rail_narrow.name=Narrow Gauge Cart Rail tile.rail_wood.name=Wooden Tracks tile.rbmk_absorber.name=RBMK Boron Neutron Absorber diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj new file mode 100644 index 000000000..d03d672a0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj @@ -0,0 +1,1966 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_curve_wide9.blend' +# www.blender.org +o Plane.001 +v -1.312500 0.062500 0.500000 +v -1.312500 0.187500 0.500000 +v -1.250000 0.062500 0.500000 +v -1.250000 0.187500 0.500000 +v 0.250000 0.062500 0.500000 +v 0.312499 0.062500 0.500000 +v 0.312499 0.187500 0.500000 +v 0.250000 0.187500 0.500000 +v -1.502724 0.000000 0.229277 +v 0.492993 0.000000 0.098470 +v -1.527250 0.000000 -0.144921 +v 0.468467 0.000000 -0.275727 +v -1.527250 0.062500 -0.144921 +v -1.502724 0.062500 0.229277 +v 0.492993 0.062500 0.098470 +v 0.468467 0.062500 -0.275727 +v 0.414277 0.125000 -0.146907 +v 0.102446 0.125000 -0.126468 +v 0.422452 0.125000 -0.022174 +v 0.110621 0.125000 -0.001736 +v 0.414277 0.062500 -0.146907 +v 0.102446 0.062500 -0.126468 +v 0.422452 0.062500 -0.022174 +v 0.110621 0.062500 -0.001736 +v -1.448533 0.062500 0.100457 +v -1.136702 0.062500 0.080018 +v -1.456709 0.062500 -0.024276 +v -1.144878 0.062500 -0.044714 +v -1.448533 0.125000 0.100457 +v -1.136702 0.125000 0.080018 +v -1.456709 0.125000 -0.024276 +v -1.144878 0.125000 -0.044714 +v 0.202066 0.187500 -0.414624 +v 0.264223 0.187500 -0.421157 +v 0.264223 0.062500 -0.421157 +v 0.202066 0.062500 -0.414624 +v -1.289716 0.187500 -0.257831 +v -1.289716 0.062500 -0.257831 +v -1.351874 0.187500 -0.251298 +v -1.351874 0.062500 -0.251298 +v 0.119925 0.187500 -1.332222 +v 0.119925 0.062500 -1.332222 +v 0.058792 0.187500 -1.319227 +v 0.058792 0.062500 -1.319227 +v -1.469564 0.062500 -0.994365 +v -1.408430 0.062500 -1.007360 +v -1.408430 0.187500 -1.007360 +v -1.469564 0.187500 -0.994365 +v -0.118814 0.187500 -2.223212 +v -0.118814 0.062500 -2.223212 +v -0.178254 0.187500 -2.203898 +v -0.178254 0.062500 -2.203898 +v -1.664281 0.062500 -1.721060 +v -1.604840 0.062500 -1.740373 +v -1.604840 0.187500 -1.740373 +v -1.664281 0.187500 -1.721060 +v -0.449381 0.187500 -3.084367 +v -0.449381 0.062500 -3.084367 +v -0.506476 0.187500 -3.058946 +v -0.506476 0.062500 -3.058946 +v -1.933891 0.062500 -2.423420 +v -1.876795 0.062500 -2.448841 +v -1.876795 0.187500 -2.448841 +v -1.933891 0.187500 -2.423420 +v -0.868151 0.187500 -3.906250 +v -0.868151 0.062500 -3.906250 +v -0.922276 0.187500 -3.875000 +v -0.922276 0.062500 -3.875000 +v -2.275442 0.062500 -3.093750 +v -2.221315 0.062500 -3.125000 +v -2.221315 0.187500 -3.125000 +v -2.275442 0.187500 -3.093750 +v -1.370537 0.187500 -4.679857 +v -1.370537 0.062500 -4.679857 +v -1.421100 0.187500 -4.643121 +v -1.421100 0.062500 -4.643121 +v -2.685189 0.062500 -3.724707 +v -2.634626 0.062500 -3.761444 +v -2.634626 0.187500 -3.761444 +v -2.685189 0.187500 -3.724707 +v -1.951035 0.187500 -5.396713 +v -1.951035 0.062500 -5.396713 +v -1.997481 0.187500 -5.354893 +v -1.997481 0.062500 -5.354893 +v -3.158646 0.062500 -4.309377 +v -3.112200 0.062500 -4.351198 +v -3.112200 0.187500 -4.351198 +v -3.158646 0.187500 -4.309377 +v -2.603286 0.187500 -6.048964 +v -2.603286 0.062500 -6.048964 +v -2.645105 0.187500 -6.002518 +v -2.645105 0.062500 -6.002518 +v -3.690623 0.062500 -4.841354 +v -3.648803 0.062500 -4.887801 +v -3.648803 0.187500 -4.887801 +v -3.690623 0.187500 -4.841354 +v -3.320142 0.187500 -6.629462 +v -3.320142 0.062500 -6.629462 +v -3.356877 0.187500 -6.578900 +v -3.356877 0.062500 -6.578900 +v -4.275292 0.062500 -5.314811 +v -4.238556 0.062500 -5.365375 +v -4.238556 0.187500 -5.365375 +v -4.275292 0.187500 -5.314811 +v -4.093749 0.187500 -7.131849 +v -4.093749 0.062500 -7.131849 +v -4.124998 0.187500 -7.077724 +v -4.124998 0.062500 -7.077724 +v -4.906249 0.062500 -5.724559 +v -4.875000 0.062500 -5.778686 +v -4.875000 0.187500 -5.778686 +v -4.906249 0.187500 -5.724559 +v -4.915632 0.187500 -7.550620 +v -4.915632 0.062500 -7.550620 +v -4.941052 0.187500 -7.493525 +v -4.941052 0.062500 -7.493525 +v -5.576580 0.062500 -6.066110 +v -5.551159 0.062500 -6.123206 +v -5.551159 0.187500 -6.123206 +v -5.576580 0.187500 -6.066110 +v -5.776787 0.187500 -7.881186 +v -5.776787 0.062500 -7.881186 +v -5.796100 0.187500 -7.821747 +v -5.796100 0.062500 -7.821747 +v -6.278940 0.062500 -6.335721 +v -6.259626 0.062500 -6.395162 +v -6.259626 0.187500 -6.395162 +v -6.278940 0.187500 -6.335721 +v -6.667778 0.187500 -8.119927 +v -6.667778 0.062500 -8.119927 +v -6.680771 0.187500 -8.058794 +v -6.680771 0.062500 -8.058794 +v -7.005634 0.062500 -6.530438 +v -6.992640 0.062500 -6.591572 +v -6.992640 0.187500 -6.591572 +v -7.005634 0.187500 -6.530438 +v -7.578842 0.187500 -8.264227 +v -7.578842 0.062500 -8.264227 +v -7.585375 0.187500 -8.202069 +v -7.585375 0.062500 -8.202069 +v -7.748702 0.062500 -6.648129 +v -7.742168 0.062500 -6.710286 +v -7.742168 0.187500 -6.710286 +v -7.748702 0.187500 -6.648129 +v -8.500000 0.187500 -8.312503 +v -8.500000 0.062500 -8.312503 +v -8.499999 0.187500 -8.250003 +v -8.499999 0.062500 -8.250003 +v -8.500000 0.062500 -6.687503 +v -8.500000 0.062500 -6.750003 +v -8.500000 0.187500 -6.750003 +v -8.500000 0.187500 -6.687503 +v -1.593841 0.000000 -0.657635 +v 0.369080 0.000000 -1.040966 +v -1.665715 0.000000 -1.025683 +v 0.297205 0.000000 -1.409014 +v -1.665715 0.062500 -1.025683 +v -1.593841 0.062500 -0.657635 +v 0.369080 0.062500 -1.040966 +v 0.297205 0.062500 -1.409014 +v 0.259823 0.125000 -1.274352 +v -0.046885 0.125000 -1.214457 +v 0.283780 0.125000 -1.151670 +v -0.022925 0.125000 -1.091774 +v 0.259823 0.062500 -1.274352 +v -0.046885 0.062500 -1.214457 +v 0.283780 0.062500 -1.151670 +v -0.022925 0.062500 -1.091774 +v -1.556457 0.062500 -0.792297 +v -1.249751 0.062500 -0.852192 +v -1.580416 0.062500 -0.914979 +v -1.273710 0.062500 -0.974875 +v -1.556457 0.125000 -0.792297 +v -1.249751 0.125000 -0.852192 +v -1.580416 0.125000 -0.914979 +v -1.273710 0.125000 -0.974875 +v -1.804025 0.000000 -1.549166 +v 0.092067 0.000000 -2.185431 +v -1.923324 0.000000 -1.904684 +v -0.027232 0.000000 -2.540948 +v -1.923324 0.062500 -1.904684 +v -1.804025 0.062500 -1.549166 +v 0.092067 0.062500 -2.185431 +v -0.027232 0.062500 -2.540948 +v -0.046719 0.125000 -2.402559 +v -0.342983 0.125000 -2.303143 +v -0.006952 0.125000 -2.284053 +v -0.303216 0.125000 -2.184637 +v -0.046719 0.062500 -2.402559 +v -0.342983 0.062500 -2.303143 +v -0.006952 0.062500 -2.284053 +v -0.303216 0.062500 -2.184637 +v -1.784539 0.062500 -1.687555 +v -1.488274 0.062500 -1.786972 +v -1.824306 0.062500 -1.806061 +v -1.528041 0.062500 -1.905477 +v -1.784539 0.125000 -1.687555 +v -1.488274 0.125000 -1.786972 +v -1.824306 0.125000 -1.806061 +v -1.528041 0.125000 -1.905477 +v -2.128780 0.000000 -2.405635 +v -0.331959 0.000000 -3.283946 +v -2.293463 0.000000 -2.742540 +v -0.496641 0.000000 -3.620850 +v -2.293463 0.062500 -2.742540 +v -2.128780 0.062500 -2.405635 +v -0.331959 0.062500 -3.283946 +v -0.496641 0.062500 -3.620850 +v -0.497897 0.125000 -3.481102 +v -0.778651 0.125000 -3.343866 +v -0.443003 0.125000 -3.368800 +v -0.723756 0.125000 -3.231565 +v -0.497897 0.062500 -3.481102 +v -0.778651 0.062500 -3.343866 +v -0.443003 0.062500 -3.368800 +v -0.723756 0.062500 -3.231565 +v -2.127524 0.062500 -2.545384 +v -1.846769 0.062500 -2.682620 +v -2.182419 0.062500 -2.657685 +v -1.901665 0.062500 -2.794921 +v -2.127524 0.125000 -2.545384 +v -1.846769 0.125000 -2.682620 +v -2.182419 0.125000 -2.657685 +v -1.901665 0.125000 -2.794921 +v -2.562548 0.000000 -3.212389 +v -0.895741 0.000000 -4.317718 +v -2.769797 0.000000 -3.524915 +v -1.102990 0.000000 -4.630244 +v -2.769797 0.062500 -3.524915 +v -2.562548 0.062500 -3.212389 +v -0.895741 0.062500 -4.317718 +v -1.102990 0.062500 -4.630244 +v -1.085994 0.125000 -4.491527 +v -1.346433 0.125000 -4.318820 +v -1.016911 0.125000 -4.387352 +v -1.277349 0.125000 -4.214644 +v -1.085994 0.062500 -4.491527 +v -1.346433 0.062500 -4.318820 +v -1.016911 0.062500 -4.387352 +v -1.277349 0.062500 -4.214644 +v -2.579544 0.062500 -3.351105 +v -2.319104 0.062500 -3.523814 +v -2.648627 0.062500 -3.455281 +v -2.388188 0.062500 -3.627988 +v -2.579544 0.125000 -3.351105 +v -2.319104 0.125000 -3.523814 +v -2.648627 0.125000 -3.455281 +v -2.388188 0.125000 -3.627988 +v -3.097907 0.000000 -3.955622 +v -1.589635 0.000000 -5.269057 +v -3.344176 0.000000 -4.238423 +v -1.835903 0.000000 -5.551857 +v -3.344176 0.062500 -4.238423 +v -3.097907 0.062500 -3.955622 +v -1.589635 0.062500 -5.269057 +v -1.835903 0.062500 -5.551857 +v -1.800947 0.125000 -5.416546 +v -2.036615 0.125000 -5.211322 +v -1.718857 0.125000 -5.322279 +v -1.954525 0.125000 -5.117055 +v -1.800947 0.062500 -5.416546 +v -2.036615 0.062500 -5.211322 +v -1.718857 0.062500 -5.322279 +v -1.954525 0.062500 -5.117055 +v -3.132864 0.062500 -4.090933 +v -2.897195 0.062500 -4.296158 +v -3.214954 0.062500 -4.185201 +v -2.979286 0.062500 -4.390424 +v -3.132864 0.125000 -4.090933 +v -2.897195 0.125000 -4.296158 +v -3.214954 0.125000 -4.185201 +v -2.979286 0.125000 -4.390424 +v -3.725698 0.000000 -4.622618 +v -2.401767 0.000000 -6.121686 +v -4.006773 0.000000 -4.870855 +v -2.682841 0.000000 -6.369922 +v -4.006773 0.062500 -4.870855 +v -3.725698 0.062500 -4.622618 +v -2.401767 0.062500 -6.121686 +v -2.682841 0.062500 -6.369922 +v -2.630522 0.125000 -6.240331 +v -2.837387 0.125000 -6.006102 +v -2.536831 0.125000 -6.157585 +v -2.743695 0.125000 -5.923357 +v -2.630522 0.062500 -6.240331 +v -2.837387 0.062500 -6.006102 +v -2.536831 0.062500 -6.157585 +v -2.743695 0.062500 -5.923357 +v -3.778018 0.062500 -4.752209 +v -3.571152 0.062500 -4.986439 +v -3.871710 0.062500 -4.834955 +v -3.664845 0.062500 -5.069184 +v -3.778018 0.125000 -4.752209 +v -3.571152 0.125000 -4.986439 +v -3.871710 0.125000 -4.834955 +v -3.664845 0.125000 -5.069184 +v -4.435179 0.000000 -5.201965 +v -3.318242 0.000000 -6.861015 +v -4.746251 0.000000 -5.411391 +v -3.629313 0.000000 -7.070441 +v -4.746251 0.062500 -5.411391 +v -4.435179 0.062500 -5.201965 +v -3.318242 0.062500 -6.861015 +v -3.629313 0.062500 -7.070441 +v -3.560526 0.125000 -6.948788 +v -3.735048 0.125000 -6.689561 +v -3.456836 0.125000 -6.878979 +v -3.631357 0.125000 -6.619753 +v -3.560526 0.062500 -6.948788 +v -3.735048 0.062500 -6.689561 +v -3.456836 0.062500 -6.878979 +v -3.631357 0.062500 -6.619753 +v -4.503965 0.062500 -5.323618 +v -4.329443 0.062500 -5.582846 +v -4.607657 0.062500 -5.393427 +v -4.433135 0.062500 -5.652653 +v -4.503965 0.125000 -5.323618 +v -4.329443 0.125000 -5.582846 +v -4.607657 0.125000 -5.393427 +v -4.433135 0.125000 -5.652653 +v -5.214210 0.000000 -5.683750 +v -4.323378 0.000000 -7.474396 +v -5.549956 0.000000 -5.850781 +v -4.659122 0.000000 -7.641427 +v -5.549956 0.062500 -5.850781 +v -5.214210 0.062500 -5.683750 +v -4.323378 0.062500 -7.474396 +v -4.659122 0.062500 -7.641427 +v -4.575046 0.125000 -7.529794 +v -4.714239 0.125000 -7.250005 +v -4.463130 0.125000 -7.474116 +v -4.602324 0.125000 -7.194328 +v -4.575046 0.062500 -7.529794 +v -4.714239 0.062500 -7.250005 +v -4.463130 0.062500 -7.474116 +v -4.602324 0.062500 -7.194328 +v -5.298286 0.062500 -5.795384 +v -5.159094 0.062500 -6.075173 +v -5.410203 0.062500 -5.851061 +v -5.271009 0.062500 -6.130849 +v -5.298286 0.125000 -5.795384 +v -5.159094 0.125000 -6.075173 +v -5.410203 0.125000 -5.851061 +v -5.271009 0.125000 -6.130849 +v -6.049461 0.000000 -6.059729 +v -5.399977 0.000000 -7.951333 +v -6.404138 0.000000 -6.181507 +v -5.754651 0.000000 -8.073112 +v -6.404138 0.062500 -6.181507 +v -6.049461 0.062500 -6.059729 +v -5.399977 0.062500 -7.951333 +v -5.754651 0.062500 -8.073112 +v -5.656723 0.125000 -7.973407 +v -5.758205 0.125000 -7.677843 +v -5.538497 0.125000 -7.932814 +v -5.639980 0.125000 -7.637251 +v -5.656723 0.062500 -7.973407 +v -5.758205 0.062500 -7.677843 +v -5.538497 0.062500 -7.932814 +v -5.639980 0.062500 -7.637251 +v -6.147390 0.062500 -6.159434 +v -6.045908 0.062500 -6.454998 +v -6.265616 0.062500 -6.200027 +v -6.164133 0.062500 -6.495589 +v -6.147390 0.125000 -6.159434 +v -6.045908 0.125000 -6.454998 +v -6.265616 0.125000 -6.200027 +v -6.164133 0.125000 -6.495589 +v -6.926642 0.000000 -6.323469 +v -6.529619 0.000000 -8.283666 +v -7.294180 0.000000 -6.397911 +v -6.897154 0.000000 -8.358108 +v -7.294180 0.062500 -6.397911 +v -6.926642 0.062500 -6.323469 +v -6.529619 0.062500 -8.283666 +v -6.897154 0.062500 -8.358108 +v -6.787049 0.125000 -8.272038 +v -6.849084 0.125000 -7.965756 +v -6.664536 0.125000 -8.247224 +v -6.726572 0.125000 -7.940943 +v -6.787049 0.062500 -8.272038 +v -6.849084 0.062500 -7.965756 +v -6.664536 0.062500 -8.247224 +v -6.726572 0.062500 -7.940943 +v -7.036747 0.062500 -6.409539 +v -6.974712 0.062500 -6.715820 +v -7.159261 0.062500 -6.434352 +v -7.097224 0.062500 -6.740633 +v -7.036747 0.125000 -6.409539 +v -6.974712 0.125000 -6.715820 +v -7.159261 0.125000 -6.434352 +v -7.097224 0.125000 -6.740633 +v -7.830744 0.000000 -6.470458 +v -7.692974 0.000000 -8.465706 +v -8.204854 0.000000 -6.496290 +v -8.067081 0.000000 -8.491539 +v -8.204854 0.062500 -6.496290 +v -7.830744 0.062500 -6.470458 +v -7.692974 0.062500 -8.465706 +v -8.067081 0.062500 -8.491539 +v -7.946684 0.125000 -8.420578 +v -7.968211 0.125000 -8.108818 +v -7.821981 0.125000 -8.411966 +v -7.843508 0.125000 -8.100208 +v -7.946684 0.062500 -8.420578 +v -7.968211 0.062500 -8.108818 +v -7.821981 0.062500 -8.411966 +v -7.843508 0.062500 -8.100208 +v -7.951141 0.062500 -6.541420 +v -7.929615 0.062500 -6.853178 +v -8.075846 0.062500 -6.550030 +v -8.054317 0.062500 -6.861787 +v -7.951141 0.125000 -6.541420 +v -7.929615 0.125000 -6.853178 +v -8.075846 0.125000 -6.550030 +v -8.054317 0.125000 -6.861787 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9979 0.0000 0.0654 +vn 0.0654 0.0000 0.9979 +vn 0.9979 0.0000 -0.0654 +vn -0.0654 0.0000 -0.9979 +vn 0.9986 0.0000 -0.0523 +vn -0.9986 0.0000 0.0523 +vn -0.9659 0.0000 0.2588 +vn 0.9877 0.0000 -0.1564 +vn -0.9877 0.0000 0.1564 +vn -0.9336 0.0000 0.3584 +vn 0.9659 0.0000 -0.2588 +vn 0.9336 0.0000 -0.3584 +vn 0.8387 0.0000 -0.5446 +vn 0.8910 0.0000 -0.4540 +vn -0.8910 0.0000 0.4540 +vn -0.8387 0.0000 0.5446 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7771 0.0000 0.6293 +vn 0.7771 0.0000 -0.6293 +vn 0.6293 0.0000 -0.7771 +vn 0.5446 0.0000 -0.8387 +vn -0.5446 0.0000 0.8387 +vn -0.6293 0.0000 0.7771 +vn -0.4540 0.0000 0.8910 +vn 0.3584 0.0000 -0.9336 +vn 0.4540 0.0000 -0.8910 +vn 0.2588 0.0000 -0.9659 +vn -0.3584 0.0000 0.9336 +vn -0.1564 0.0000 0.9877 +vn -0.2588 0.0000 0.9659 +vn -0.0523 0.0000 0.9986 +vn 0.1564 0.0000 -0.9877 +vn -1.0000 0.0000 0.0000 +vn 0.0523 0.0000 -0.9986 +vn -0.9815 0.0000 0.1917 +vn 0.1917 0.0000 0.9815 +vn 0.9815 0.0000 -0.1917 +vn -0.1917 0.0000 -0.9815 +vn -0.9480 0.0000 0.3181 +vn 0.3181 0.0000 0.9480 +vn 0.9480 0.0000 -0.3181 +vn -0.3181 0.0000 -0.9480 +vn -0.8984 0.0000 0.4392 +vn 0.4392 0.0000 0.8984 +vn 0.8984 0.0000 -0.4392 +vn -0.4392 0.0000 -0.8984 +vn -0.8334 0.0000 0.5527 +vn 0.5527 0.0000 0.8334 +vn 0.8334 0.0000 -0.5527 +vn -0.5527 0.0000 -0.8334 +vn -0.7541 0.0000 0.6567 +vn 0.6567 0.0000 0.7541 +vn 0.7541 0.0000 -0.6567 +vn -0.6567 0.0000 -0.7541 +vn -0.6620 0.0000 0.7495 +vn 0.7495 0.0000 0.6620 +vn 0.6620 0.0000 -0.7495 +vn -0.7495 0.0000 -0.6620 +vn -0.5585 0.0000 0.8295 +vn 0.8295 0.0000 0.5585 +vn 0.5585 0.0000 -0.8295 +vn -0.8295 0.0000 -0.5585 +vn -0.4454 0.0000 0.8953 +vn 0.8953 0.0000 0.4454 +vn 0.4454 0.0000 -0.8953 +vn -0.8953 0.0000 -0.4454 +vn -0.3247 0.0000 0.9458 +vn 0.9458 0.0000 0.3247 +vn 0.3247 0.0000 -0.9458 +vn -0.9458 0.0000 -0.3247 +vn -0.1985 0.0000 0.9801 +vn 0.9801 0.0000 0.1985 +vn 0.1985 0.0000 -0.9801 +vn -0.9801 0.0000 -0.1985 +vn -0.0689 0.0000 0.9976 +vn 0.9976 0.0000 0.0689 +vn 0.0689 0.0000 -0.9976 +vn -0.9976 0.0000 -0.0689 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/1 6/5/1 7/6/1 +f 9/7/2 12/8/2 10/9/2 +f 14/10/3 16/11/3 13/12/3 +f 9/13/4 13/14/4 11/15/4 +f 10/16/5 14/17/5 9/18/5 +f 12/19/6 15/20/6 10/9/6 +f 11/21/7 16/11/7 12/8/7 +f 29/22/4 27/23/4 25/24/4 +f 20/25/3 17/26/3 18/27/3 +f 17/26/6 23/28/6 21/29/6 +f 19/30/5 24/31/5 23/32/5 +f 18/27/7 21/33/7 22/34/7 +f 20/25/4 22/35/4 24/36/4 +f 31/37/7 28/38/7 27/39/7 +f 30/40/5 25/41/5 26/42/5 +f 32/43/6 26/44/6 28/45/6 +f 29/22/3 32/43/3 31/37/3 +f 40/46/2 3/47/2 1/48/2 +f 7/49/3 33/50/3 8/51/3 +f 35/52/8 7/49/8 6/53/8 +f 39/54/9 1/55/9 2/56/9 +f 37/57/3 2/56/3 4/58/3 +f 36/59/2 6/53/2 5/60/2 +f 33/50/9 5/61/9 8/51/9 +f 38/62/8 4/58/8 3/47/8 +f 34/63/3 43/64/3 33/65/3 +f 45/66/2 38/67/2 40/68/2 +f 51/69/10 44/70/10 43/71/10 +f 52/72/2 42/73/2 44/74/2 +f 42/75/11 34/63/11 35/76/11 +f 48/77/12 40/78/12 39/79/12 +f 47/80/3 39/79/3 37/81/3 +f 44/82/2 35/76/2 36/83/2 +f 43/64/12 36/84/12 33/65/12 +f 46/85/11 37/81/11 38/67/11 +f 55/86/3 64/87/3 56/88/3 +f 64/87/13 53/89/13 56/88/13 +f 54/90/14 47/91/14 46/92/14 +f 45/93/2 54/90/2 46/92/2 +f 41/94/3 51/69/3 43/71/3 +f 50/95/14 41/94/14 42/73/14 +f 56/96/10 45/97/10 48/98/10 +f 55/99/3 48/98/3 47/91/3 +f 57/100/3 67/101/3 59/102/3 +f 69/103/2 62/104/2 61/105/2 +f 60/106/2 50/107/2 52/108/2 +f 59/109/13 52/110/13 51/111/13 +f 62/112/15 55/86/15 54/113/15 +f 61/114/2 54/113/2 53/115/2 +f 49/116/3 59/109/3 51/111/3 +f 58/117/15 49/116/15 50/107/15 +f 77/118/2 70/119/2 69/120/2 +f 78/121/16 71/122/16 70/119/16 +f 66/123/17 57/100/17 58/124/17 +f 72/125/18 61/126/18 64/127/18 +f 63/128/3 72/125/3 64/127/3 +f 68/129/2 58/124/2 60/130/2 +f 67/101/18 60/131/18 59/102/18 +f 70/132/17 63/128/17 62/104/17 +f 84/133/2 74/134/2 76/135/2 +f 79/136/3 88/137/3 80/138/3 +f 65/139/3 75/140/3 67/141/3 +f 74/142/16 65/139/16 66/143/16 +f 80/144/19 69/145/19 72/146/19 +f 71/122/3 80/144/3 72/146/3 +f 76/147/2 66/143/2 68/148/2 +f 75/140/19 68/149/19 67/141/19 +f 96/150/20 85/151/20 88/152/20 +f 90/153/21 81/154/21 82/155/21 +f 83/156/22 76/157/22 75/158/22 +f 86/159/23 79/136/23 78/160/23 +f 85/161/2 78/160/2 77/162/2 +f 73/163/3 83/156/3 75/158/3 +f 82/164/23 73/163/23 74/134/23 +f 88/137/22 77/165/22 80/138/22 +f 101/166/2 94/167/2 93/168/2 +f 102/169/24 95/170/24 94/167/24 +f 87/171/3 96/150/3 88/152/3 +f 92/172/2 82/155/2 84/173/2 +f 91/174/20 84/175/20 83/176/20 +f 94/177/21 87/171/21 86/178/21 +f 93/179/2 86/178/2 85/180/2 +f 81/154/3 91/174/3 83/176/3 +f 110/181/25 103/182/25 102/183/25 +f 107/184/26 100/185/26 99/186/26 +f 89/187/3 99/188/3 91/189/3 +f 98/190/24 89/187/24 90/191/24 +f 104/192/27 93/193/27 96/194/27 +f 95/170/3 104/192/3 96/194/3 +f 100/195/2 90/191/2 92/196/2 +f 99/188/27 92/197/27 91/189/27 +f 111/198/3 120/199/3 112/200/3 +f 120/199/28 109/201/28 112/200/28 +f 109/202/2 102/183/2 101/203/2 +f 97/204/3 107/184/3 99/186/3 +f 106/205/25 97/204/25 98/206/25 +f 112/207/26 101/208/26 104/209/26 +f 103/182/3 112/207/3 104/209/3 +f 108/210/2 98/206/2 100/211/2 +f 122/212/29 113/213/29 114/214/29 +f 113/213/3 123/215/3 115/216/3 +f 116/217/2 106/218/2 108/219/2 +f 115/220/28 108/221/28 107/222/28 +f 118/223/30 111/198/30 110/224/30 +f 117/225/2 110/224/2 109/226/2 +f 105/227/3 115/220/3 107/222/3 +f 114/228/30 105/227/30 106/218/30 +f 133/229/2 126/230/2 125/231/2 +f 134/232/31 127/233/31 126/230/31 +f 128/234/32 117/235/32 120/236/32 +f 119/237/3 128/234/3 120/236/3 +f 124/238/2 114/214/2 116/239/2 +f 123/215/32 116/240/32 115/216/32 +f 126/241/29 119/237/29 118/242/29 +f 125/243/2 118/242/2 117/244/2 +f 139/245/33 132/246/33 131/247/33 +f 140/248/2 130/249/2 132/250/2 +f 121/251/3 131/252/3 123/253/3 +f 130/254/31 121/251/31 122/255/31 +f 136/256/34 125/257/34 128/258/34 +f 127/233/3 136/256/3 128/258/3 +f 132/259/2 122/255/2 124/260/2 +f 131/252/34 124/261/34 123/253/34 +f 151/262/3 144/263/3 143/264/3 +f 152/265/35 141/266/35 144/263/35 +f 142/267/36 135/268/36 134/269/36 +f 133/270/2 142/267/2 134/269/2 +f 129/271/3 139/245/3 131/247/3 +f 138/272/36 129/271/36 130/249/36 +f 144/273/33 133/274/33 136/275/33 +f 143/276/3 136/275/3 135/268/3 +f 146/277/37 147/278/37 145/279/37 +f 152/280/37 150/281/37 149/282/37 +f 148/283/2 138/284/2 140/285/2 +f 147/286/35 140/287/35 139/288/35 +f 150/289/38 143/264/38 142/290/38 +f 149/291/2 142/290/2 141/292/2 +f 137/293/3 147/286/3 139/288/3 +f 146/294/38 137/293/38 138/284/38 +f 155/295/2 154/296/2 153/297/2 +f 159/298/3 157/299/3 158/300/3 +f 153/301/39 157/302/39 155/303/39 +f 154/304/40 158/305/40 153/306/40 +f 156/307/41 159/308/41 154/296/41 +f 155/295/42 160/309/42 156/310/42 +f 173/311/39 171/312/39 169/313/39 +f 164/314/3 161/315/3 162/316/3 +f 161/315/41 167/317/41 165/318/41 +f 163/319/40 168/320/40 167/321/40 +f 162/316/42 165/322/42 166/323/42 +f 164/314/39 166/324/39 168/325/39 +f 175/326/42 172/327/42 171/328/42 +f 174/329/40 169/330/40 170/331/40 +f 176/332/41 170/333/41 172/334/41 +f 173/311/3 176/332/3 175/326/3 +f 179/335/2 178/336/2 177/337/2 +f 183/338/3 181/339/3 182/340/3 +f 177/341/43 181/342/43 179/343/43 +f 178/344/44 182/345/44 177/346/44 +f 180/347/45 183/348/45 178/336/45 +f 179/335/46 184/349/46 180/350/46 +f 197/351/43 195/352/43 193/353/43 +f 188/354/3 185/355/3 186/356/3 +f 185/355/45 191/357/45 189/358/45 +f 187/359/44 192/360/44 191/361/44 +f 186/356/46 189/362/46 190/363/46 +f 188/354/43 190/364/43 192/365/43 +f 199/366/46 196/367/46 195/368/46 +f 198/369/44 193/370/44 194/371/44 +f 200/372/45 194/373/45 196/374/45 +f 197/351/3 200/372/3 199/366/3 +f 203/375/2 202/376/2 201/377/2 +f 207/378/3 205/379/3 206/380/3 +f 201/381/47 205/382/47 203/383/47 +f 202/384/48 206/385/48 201/386/48 +f 204/387/49 207/388/49 202/376/49 +f 203/375/50 208/389/50 204/390/50 +f 221/391/47 219/392/47 217/393/47 +f 212/394/3 209/395/3 210/396/3 +f 209/395/49 215/397/49 213/398/49 +f 211/399/48 216/400/48 215/401/48 +f 210/396/50 213/402/50 214/403/50 +f 212/394/47 214/404/47 216/405/47 +f 223/406/50 220/407/50 219/408/50 +f 222/409/48 217/410/48 218/411/48 +f 224/412/49 218/413/49 220/414/49 +f 221/391/3 224/412/3 223/406/3 +f 227/415/2 226/416/2 225/417/2 +f 231/418/3 229/419/3 230/420/3 +f 225/421/51 229/422/51 227/423/51 +f 226/424/52 230/425/52 225/426/52 +f 228/427/53 231/428/53 226/416/53 +f 227/415/54 232/429/54 228/430/54 +f 245/431/51 243/432/51 241/433/51 +f 236/434/3 233/435/3 234/436/3 +f 233/435/53 239/437/53 237/438/53 +f 235/439/52 240/440/52 239/441/52 +f 234/436/54 237/442/54 238/443/54 +f 236/434/51 238/444/51 240/445/51 +f 247/446/54 244/447/54 243/448/54 +f 246/449/52 241/450/52 242/451/52 +f 248/452/53 242/453/53 244/454/53 +f 245/431/3 248/452/3 247/446/3 +f 251/455/2 250/456/2 249/457/2 +f 255/458/3 253/459/3 254/460/3 +f 249/461/55 253/462/55 251/463/55 +f 250/464/56 254/465/56 249/466/56 +f 252/467/57 255/468/57 250/456/57 +f 251/455/58 256/469/58 252/470/58 +f 269/471/55 267/472/55 265/473/55 +f 260/474/3 257/475/3 258/476/3 +f 257/475/57 263/477/57 261/478/57 +f 259/479/56 264/480/56 263/481/56 +f 258/476/58 261/482/58 262/483/58 +f 260/474/55 262/484/55 264/485/55 +f 271/486/58 268/487/58 267/488/58 +f 270/489/56 265/490/56 266/491/56 +f 272/492/57 266/493/57 268/494/57 +f 269/471/3 272/492/3 271/486/3 +f 275/495/2 274/496/2 273/497/2 +f 279/498/3 277/499/3 278/500/3 +f 273/501/59 277/502/59 275/503/59 +f 274/504/60 278/505/60 273/506/60 +f 276/507/61 279/508/61 274/496/61 +f 275/495/62 280/509/62 276/510/62 +f 293/511/59 291/512/59 289/513/59 +f 284/514/3 281/515/3 282/516/3 +f 281/515/61 287/517/61 285/518/61 +f 283/519/60 288/520/60 287/521/60 +f 282/516/62 285/522/62 286/523/62 +f 284/514/59 286/524/59 288/525/59 +f 295/526/62 292/527/62 291/528/62 +f 294/529/60 289/530/60 290/531/60 +f 296/532/61 290/533/61 292/534/61 +f 293/511/3 296/532/3 295/526/3 +f 299/535/2 298/536/2 297/537/2 +f 303/538/3 301/539/3 302/540/3 +f 297/541/63 301/542/63 299/543/63 +f 298/544/64 302/545/64 297/546/64 +f 300/547/65 303/548/65 298/536/65 +f 299/535/66 304/549/66 300/550/66 +f 317/551/63 315/552/63 313/553/63 +f 308/554/3 305/555/3 306/556/3 +f 305/555/65 311/557/65 309/558/65 +f 307/559/64 312/560/64 311/561/64 +f 306/556/66 309/562/66 310/563/66 +f 308/554/63 310/564/63 312/565/63 +f 319/566/66 316/567/66 315/568/66 +f 318/569/64 313/570/64 314/571/64 +f 320/572/65 314/573/65 316/574/65 +f 317/551/3 320/572/3 319/566/3 +f 323/575/2 322/576/2 321/577/2 +f 327/578/3 325/579/3 326/580/3 +f 321/581/67 325/582/67 323/583/67 +f 322/584/68 326/585/68 321/586/68 +f 324/587/69 327/588/69 322/576/69 +f 323/575/70 328/589/70 324/590/70 +f 341/591/67 339/592/67 337/593/67 +f 332/594/3 329/595/3 330/596/3 +f 329/595/69 335/597/69 333/598/69 +f 331/599/68 336/600/68 335/601/68 +f 330/596/70 333/602/70 334/603/70 +f 332/594/67 334/604/67 336/605/67 +f 343/606/70 340/607/70 339/608/70 +f 342/609/68 337/610/68 338/611/68 +f 344/612/69 338/613/69 340/614/69 +f 341/591/3 344/612/3 343/606/3 +f 347/615/2 346/616/2 345/617/2 +f 351/618/3 349/619/3 350/620/3 +f 345/621/71 349/622/71 347/623/71 +f 346/624/72 350/625/72 345/626/72 +f 348/627/73 351/628/73 346/616/73 +f 347/615/74 352/629/74 348/630/74 +f 365/631/71 363/632/71 361/633/71 +f 356/634/3 353/635/3 354/636/3 +f 353/635/73 359/637/73 357/638/73 +f 355/639/72 360/640/72 359/641/72 +f 354/636/74 357/642/74 358/643/74 +f 356/634/71 358/644/71 360/645/71 +f 367/646/74 364/647/74 363/648/74 +f 366/649/72 361/650/72 362/651/72 +f 368/652/73 362/653/73 364/654/73 +f 365/631/3 368/652/3 367/646/3 +f 371/655/2 370/656/2 369/657/2 +f 375/658/3 373/659/3 374/660/3 +f 369/661/75 373/662/75 371/663/75 +f 370/664/76 374/665/76 369/666/76 +f 372/667/77 375/668/77 370/656/77 +f 371/655/78 376/669/78 372/670/78 +f 389/671/75 387/672/75 385/673/75 +f 380/674/3 377/675/3 378/676/3 +f 377/675/77 383/677/77 381/678/77 +f 379/679/76 384/680/76 383/681/76 +f 378/676/78 381/682/78 382/683/78 +f 380/674/75 382/684/75 384/685/75 +f 391/686/78 388/687/78 387/688/78 +f 390/689/76 385/690/76 386/691/76 +f 392/692/77 386/693/77 388/694/77 +f 389/671/3 392/692/3 391/686/3 +f 395/695/2 394/696/2 393/697/2 +f 399/698/3 397/699/3 398/700/3 +f 393/701/79 397/702/79 395/703/79 +f 394/704/80 398/705/80 393/706/80 +f 396/707/81 399/708/81 394/696/81 +f 395/695/82 400/709/82 396/710/82 +f 413/711/79 411/712/79 409/713/79 +f 404/714/3 401/715/3 402/716/3 +f 401/715/81 407/717/81 405/718/81 +f 403/719/80 408/720/80 407/721/80 +f 402/716/82 405/722/82 406/723/82 +f 404/714/79 406/724/79 408/725/79 +f 415/726/82 412/727/82 411/728/82 +f 414/729/80 409/730/80 410/731/80 +f 416/732/81 410/733/81 412/734/81 +f 413/711/3 416/732/3 415/726/3 +f 3/1/1 4/735/1 2/2/1 +f 8/4/1 5/736/1 6/5/1 +f 9/7/2 11/21/2 12/8/2 +f 14/10/3 15/737/3 16/11/3 +f 9/13/4 14/738/4 13/14/4 +f 10/16/5 15/739/5 14/17/5 +f 12/19/6 16/740/6 15/20/6 +f 11/21/7 13/12/7 16/11/7 +f 29/22/4 31/37/4 27/23/4 +f 20/25/3 19/30/3 17/26/3 +f 17/26/6 19/30/6 23/28/6 +f 19/30/5 20/25/5 24/31/5 +f 18/27/7 17/26/7 21/33/7 +f 20/25/4 18/27/4 22/35/4 +f 31/37/7 32/43/7 28/38/7 +f 30/40/5 29/22/5 25/41/5 +f 32/43/6 30/40/6 26/44/6 +f 29/22/3 30/40/3 32/43/3 +f 40/46/2 38/62/2 3/47/2 +f 7/49/3 34/741/3 33/50/3 +f 35/52/8 34/741/8 7/49/8 +f 39/54/9 40/742/9 1/55/9 +f 37/57/3 39/54/3 2/56/3 +f 36/59/2 35/52/2 6/53/2 +f 33/50/9 36/743/9 5/61/9 +f 38/62/8 37/57/8 4/58/8 +f 34/63/3 41/744/3 43/64/3 +f 45/66/2 46/85/2 38/67/2 +f 51/69/10 52/745/10 44/70/10 +f 52/72/2 50/95/2 42/73/2 +f 42/75/11 41/744/11 34/63/11 +f 48/77/12 45/746/12 40/78/12 +f 47/80/3 48/77/3 39/79/3 +f 44/82/2 42/75/2 35/76/2 +f 43/64/12 44/747/12 36/84/12 +f 46/85/11 47/80/11 37/81/11 +f 55/86/3 63/748/3 64/87/3 +f 64/87/13 61/749/13 53/89/13 +f 54/90/14 55/99/14 47/91/14 +f 45/93/2 53/750/2 54/90/2 +f 41/94/3 49/751/3 51/69/3 +f 50/95/14 49/751/14 41/94/14 +f 56/96/10 53/752/10 45/97/10 +f 55/99/3 56/96/3 48/98/3 +f 57/100/3 65/753/3 67/101/3 +f 69/103/2 70/132/2 62/104/2 +f 60/106/2 58/117/2 50/107/2 +f 59/109/13 60/754/13 52/110/13 +f 62/112/15 63/748/15 55/86/15 +f 61/114/2 62/112/2 54/113/2 +f 49/116/3 57/755/3 59/109/3 +f 58/117/15 57/755/15 49/116/15 +f 77/118/2 78/121/2 70/119/2 +f 78/121/16 79/756/16 71/122/16 +f 66/123/17 65/753/17 57/100/17 +f 72/125/18 69/757/18 61/126/18 +f 63/128/3 71/758/3 72/125/3 +f 68/129/2 66/123/2 58/124/2 +f 67/101/18 68/759/18 60/131/18 +f 70/132/17 71/758/17 63/128/17 +f 84/133/2 82/164/2 74/134/2 +f 79/136/3 87/760/3 88/137/3 +f 65/139/3 73/761/3 75/140/3 +f 74/142/16 73/761/16 65/139/16 +f 80/144/19 77/762/19 69/145/19 +f 71/122/3 79/756/3 80/144/3 +f 76/147/2 74/142/2 66/143/2 +f 75/140/19 76/763/19 68/149/19 +f 96/150/20 93/764/20 85/151/20 +f 90/153/21 89/765/21 81/154/21 +f 83/156/22 84/766/22 76/157/22 +f 86/159/23 87/760/23 79/136/23 +f 85/161/2 86/159/2 78/160/2 +f 73/163/3 81/767/3 83/156/3 +f 82/164/23 81/767/23 73/163/23 +f 88/137/22 85/768/22 77/165/22 +f 101/166/2 102/169/2 94/167/2 +f 102/169/24 103/769/24 95/170/24 +f 87/171/3 95/770/3 96/150/3 +f 92/172/2 90/153/2 82/155/2 +f 91/174/20 92/771/20 84/175/20 +f 94/177/21 95/770/21 87/171/21 +f 93/179/2 94/177/2 86/178/2 +f 81/154/3 89/765/3 91/174/3 +f 110/181/25 111/772/25 103/182/25 +f 107/184/26 108/773/26 100/185/26 +f 89/187/3 97/774/3 99/188/3 +f 98/190/24 97/774/24 89/187/24 +f 104/192/27 101/775/27 93/193/27 +f 95/170/3 103/769/3 104/192/3 +f 100/195/2 98/190/2 90/191/2 +f 99/188/27 100/776/27 92/197/27 +f 111/198/3 119/777/3 120/199/3 +f 120/199/28 117/778/28 109/201/28 +f 109/202/2 110/181/2 102/183/2 +f 97/204/3 105/779/3 107/184/3 +f 106/205/25 105/779/25 97/204/25 +f 112/207/26 109/780/26 101/208/26 +f 103/182/3 111/772/3 112/207/3 +f 108/210/2 106/205/2 98/206/2 +f 122/212/29 121/781/29 113/213/29 +f 113/213/3 121/781/3 123/215/3 +f 116/217/2 114/228/2 106/218/2 +f 115/220/28 116/782/28 108/221/28 +f 118/223/30 119/777/30 111/198/30 +f 117/225/2 118/223/2 110/224/2 +f 105/227/3 113/783/3 115/220/3 +f 114/228/30 113/783/30 105/227/30 +f 133/229/2 134/232/2 126/230/2 +f 134/232/31 135/784/31 127/233/31 +f 128/234/32 125/785/32 117/235/32 +f 119/237/3 127/786/3 128/234/3 +f 124/238/2 122/212/2 114/214/2 +f 123/215/32 124/787/32 116/240/32 +f 126/241/29 127/786/29 119/237/29 +f 125/243/2 126/241/2 118/242/2 +f 139/245/33 140/788/33 132/246/33 +f 140/248/2 138/272/2 130/249/2 +f 121/251/3 129/789/3 131/252/3 +f 130/254/31 129/789/31 121/251/31 +f 136/256/34 133/790/34 125/257/34 +f 127/233/3 135/784/3 136/256/3 +f 132/259/2 130/254/2 122/255/2 +f 131/252/34 132/791/34 124/261/34 +f 151/262/3 152/265/3 144/263/3 +f 152/265/35 149/792/35 141/266/35 +f 142/267/36 143/276/36 135/268/36 +f 133/270/2 141/793/2 142/267/2 +f 129/271/3 137/794/3 139/245/3 +f 138/272/36 137/794/36 129/271/36 +f 144/273/33 141/795/33 133/274/33 +f 143/276/3 144/273/3 136/275/3 +f 146/277/37 148/796/37 147/278/37 +f 152/280/37 151/797/37 150/281/37 +f 148/283/2 146/294/2 138/284/2 +f 147/286/35 148/798/35 140/287/35 +f 150/289/38 151/262/38 143/264/38 +f 149/291/2 150/289/2 142/290/2 +f 137/293/3 145/799/3 147/286/3 +f 146/294/38 145/799/38 137/293/38 +f 155/295/2 156/310/2 154/296/2 +f 159/298/3 160/309/3 157/299/3 +f 153/301/39 158/800/39 157/302/39 +f 154/304/40 159/801/40 158/305/40 +f 156/307/41 160/802/41 159/308/41 +f 155/295/42 157/299/42 160/309/42 +f 173/311/39 175/326/39 171/312/39 +f 164/314/3 163/319/3 161/315/3 +f 161/315/41 163/319/41 167/317/41 +f 163/319/40 164/314/40 168/320/40 +f 162/316/42 161/315/42 165/322/42 +f 164/314/39 162/316/39 166/324/39 +f 175/326/42 176/332/42 172/327/42 +f 174/329/40 173/311/40 169/330/40 +f 176/332/41 174/329/41 170/333/41 +f 173/311/3 174/329/3 176/332/3 +f 179/335/2 180/350/2 178/336/2 +f 183/338/3 184/349/3 181/339/3 +f 177/341/43 182/803/43 181/342/43 +f 178/344/44 183/804/44 182/345/44 +f 180/347/45 184/805/45 183/348/45 +f 179/335/46 181/339/46 184/349/46 +f 197/351/43 199/366/43 195/352/43 +f 188/354/3 187/359/3 185/355/3 +f 185/355/45 187/359/45 191/357/45 +f 187/359/44 188/354/44 192/360/44 +f 186/356/46 185/355/46 189/362/46 +f 188/354/43 186/356/43 190/364/43 +f 199/366/46 200/372/46 196/367/46 +f 198/369/44 197/351/44 193/370/44 +f 200/372/45 198/369/45 194/373/45 +f 197/351/3 198/369/3 200/372/3 +f 203/375/2 204/390/2 202/376/2 +f 207/378/3 208/389/3 205/379/3 +f 201/381/47 206/806/47 205/382/47 +f 202/384/48 207/807/48 206/385/48 +f 204/387/49 208/808/49 207/388/49 +f 203/375/50 205/379/50 208/389/50 +f 221/391/47 223/406/47 219/392/47 +f 212/394/3 211/399/3 209/395/3 +f 209/395/49 211/399/49 215/397/49 +f 211/399/48 212/394/48 216/400/48 +f 210/396/50 209/395/50 213/402/50 +f 212/394/47 210/396/47 214/404/47 +f 223/406/50 224/412/50 220/407/50 +f 222/409/48 221/391/48 217/410/48 +f 224/412/49 222/409/49 218/413/49 +f 221/391/3 222/409/3 224/412/3 +f 227/415/2 228/430/2 226/416/2 +f 231/418/3 232/429/3 229/419/3 +f 225/421/51 230/809/51 229/422/51 +f 226/424/52 231/810/52 230/425/52 +f 228/427/53 232/811/53 231/428/53 +f 227/415/54 229/419/54 232/429/54 +f 245/431/51 247/446/51 243/432/51 +f 236/434/3 235/439/3 233/435/3 +f 233/435/53 235/439/53 239/437/53 +f 235/439/52 236/434/52 240/440/52 +f 234/436/54 233/435/54 237/442/54 +f 236/434/51 234/436/51 238/444/51 +f 247/446/54 248/452/54 244/447/54 +f 246/449/52 245/431/52 241/450/52 +f 248/452/53 246/449/53 242/453/53 +f 245/431/3 246/449/3 248/452/3 +f 251/455/2 252/470/2 250/456/2 +f 255/458/3 256/469/3 253/459/3 +f 249/461/55 254/812/55 253/462/55 +f 250/464/56 255/813/56 254/465/56 +f 252/467/57 256/814/57 255/468/57 +f 251/455/58 253/459/58 256/469/58 +f 269/471/55 271/486/55 267/472/55 +f 260/474/3 259/479/3 257/475/3 +f 257/475/57 259/479/57 263/477/57 +f 259/479/56 260/474/56 264/480/56 +f 258/476/58 257/475/58 261/482/58 +f 260/474/55 258/476/55 262/484/55 +f 271/486/58 272/492/58 268/487/58 +f 270/489/56 269/471/56 265/490/56 +f 272/492/57 270/489/57 266/493/57 +f 269/471/3 270/489/3 272/492/3 +f 275/495/2 276/510/2 274/496/2 +f 279/498/3 280/509/3 277/499/3 +f 273/501/59 278/815/59 277/502/59 +f 274/504/60 279/816/60 278/505/60 +f 276/507/61 280/817/61 279/508/61 +f 275/495/62 277/499/62 280/509/62 +f 293/511/59 295/526/59 291/512/59 +f 284/514/3 283/519/3 281/515/3 +f 281/515/61 283/519/61 287/517/61 +f 283/519/60 284/514/60 288/520/60 +f 282/516/62 281/515/62 285/522/62 +f 284/514/59 282/516/59 286/524/59 +f 295/526/62 296/532/62 292/527/62 +f 294/529/60 293/511/60 289/530/60 +f 296/532/61 294/529/61 290/533/61 +f 293/511/3 294/529/3 296/532/3 +f 299/535/2 300/550/2 298/536/2 +f 303/538/3 304/549/3 301/539/3 +f 297/541/63 302/818/63 301/542/63 +f 298/544/64 303/819/64 302/545/64 +f 300/547/65 304/820/65 303/548/65 +f 299/535/66 301/539/66 304/549/66 +f 317/551/63 319/566/63 315/552/63 +f 308/554/3 307/559/3 305/555/3 +f 305/555/65 307/559/65 311/557/65 +f 307/559/64 308/554/64 312/560/64 +f 306/556/66 305/555/66 309/562/66 +f 308/554/63 306/556/63 310/564/63 +f 319/566/66 320/572/66 316/567/66 +f 318/569/64 317/551/64 313/570/64 +f 320/572/65 318/569/65 314/573/65 +f 317/551/3 318/569/3 320/572/3 +f 323/575/2 324/590/2 322/576/2 +f 327/578/3 328/589/3 325/579/3 +f 321/581/67 326/821/67 325/582/67 +f 322/584/68 327/822/68 326/585/68 +f 324/587/69 328/823/69 327/588/69 +f 323/575/70 325/579/70 328/589/70 +f 341/591/67 343/606/67 339/592/67 +f 332/594/3 331/599/3 329/595/3 +f 329/595/69 331/599/69 335/597/69 +f 331/599/68 332/594/68 336/600/68 +f 330/596/70 329/595/70 333/602/70 +f 332/594/67 330/596/67 334/604/67 +f 343/606/70 344/612/70 340/607/70 +f 342/609/68 341/591/68 337/610/68 +f 344/612/69 342/609/69 338/613/69 +f 341/591/3 342/609/3 344/612/3 +f 347/615/2 348/630/2 346/616/2 +f 351/618/3 352/629/3 349/619/3 +f 345/621/71 350/824/71 349/622/71 +f 346/624/72 351/825/72 350/625/72 +f 348/627/73 352/826/73 351/628/73 +f 347/615/74 349/619/74 352/629/74 +f 365/631/71 367/646/71 363/632/71 +f 356/634/3 355/639/3 353/635/3 +f 353/635/73 355/639/73 359/637/73 +f 355/639/72 356/634/72 360/640/72 +f 354/636/74 353/635/74 357/642/74 +f 356/634/71 354/636/71 358/644/71 +f 367/646/74 368/652/74 364/647/74 +f 366/649/72 365/631/72 361/650/72 +f 368/652/73 366/649/73 362/653/73 +f 365/631/3 366/649/3 368/652/3 +f 371/655/2 372/670/2 370/656/2 +f 375/658/3 376/669/3 373/659/3 +f 369/661/75 374/827/75 373/662/75 +f 370/664/76 375/828/76 374/665/76 +f 372/667/77 376/829/77 375/668/77 +f 371/655/78 373/659/78 376/669/78 +f 389/671/75 391/686/75 387/672/75 +f 380/674/3 379/679/3 377/675/3 +f 377/675/77 379/679/77 383/677/77 +f 379/679/76 380/674/76 384/680/76 +f 378/676/78 377/675/78 381/682/78 +f 380/674/75 378/676/75 382/684/75 +f 391/686/78 392/692/78 388/687/78 +f 390/689/76 389/671/76 385/690/76 +f 392/692/77 390/689/77 386/693/77 +f 389/671/3 390/689/3 392/692/3 +f 395/695/2 396/710/2 394/696/2 +f 399/698/3 400/709/3 397/699/3 +f 393/701/79 398/830/79 397/702/79 +f 394/704/80 399/831/80 398/705/80 +f 396/707/81 400/832/81 399/708/81 +f 395/695/82 397/699/82 400/709/82 +f 413/711/79 415/726/79 411/712/79 +f 404/714/3 403/719/3 401/715/3 +f 401/715/81 403/719/81 407/717/81 +f 403/719/80 404/714/80 408/720/80 +f 402/716/82 401/715/82 405/722/82 +f 404/714/79 402/716/79 406/724/79 +f 415/726/82 416/732/82 412/727/82 +f 414/729/80 413/711/80 409/730/80 +f 416/732/81 414/729/81 410/733/81 +f 413/711/3 414/729/3 416/732/3 diff --git a/src/main/resources/assets/hbm/models/missile_stealth.obj b/src/main/resources/assets/hbm/models/missile_stealth.obj new file mode 100644 index 000000000..f723b225a --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_stealth.obj @@ -0,0 +1,384 @@ +# Blender v2.79 (sub 0) OBJ File: 'MissileStealth.blend' +# www.blender.org +o Cylinder +v 0.487139 0.500000 -0.281250 +v 0.487139 0.500000 0.281250 +v 0.000000 0.500000 0.562500 +v -0.487139 0.500000 0.281250 +v 0.000000 0.500000 -0.562500 +v -0.487139 0.500000 -0.281250 +v 0.000000 1.000000 -0.750000 +v -0.649519 1.000000 -0.375000 +v -0.649519 1.000000 0.375000 +v 0.000000 1.000000 0.750000 +v 0.649519 1.000000 0.375000 +v 0.649519 1.000000 -0.375000 +v 0.000000 7.000000 -0.750000 +v -0.649519 7.000000 -0.375000 +v -0.649519 7.000000 0.375000 +v 0.000000 7.000000 0.750000 +v 0.649519 7.000000 0.375000 +v 0.649519 7.000000 -0.375000 +v 0.000000 11.000000 0.000000 +v 0.755918 -0.020288 -1.295622 +v 0.255918 0.979712 -0.429596 +v 0.505918 -0.020288 -0.862609 +v 0.755918 1.479711 -1.295621 +v 0.255918 3.479711 -0.429596 +v 0.310045 0.979712 -0.398346 +v 0.310045 3.479711 -0.398346 +v 0.810045 -0.020288 -1.264372 +v 0.560045 -0.020288 -0.831359 +v 0.810045 1.479711 -1.264371 +v 0.689955 1.479712 1.333705 +v 0.439955 -0.020288 0.900692 +v 0.689955 -0.020288 1.333705 +v 0.189955 3.479711 0.467680 +v 0.189955 0.979712 0.467680 +v 0.244082 3.479711 0.436430 +v 0.744082 1.479712 1.302455 +v 0.494082 -0.020288 0.869442 +v 0.244082 0.979712 0.436430 +v 0.744082 -0.020288 1.302455 +v -1.500000 -0.020288 -0.006834 +v -0.500000 0.979712 -0.006834 +v -1.000000 -0.020288 -0.006834 +v -1.500000 1.479712 -0.006834 +v -0.500000 3.479712 -0.006834 +v -0.500000 0.979712 -0.069334 +v -0.500000 3.479712 -0.069334 +v -1.500000 -0.020288 -0.069334 +v -1.000000 -0.020288 -0.069334 +v -1.500000 1.479712 -0.069334 +v -0.744082 -0.020288 -1.302455 +v -0.244082 0.979712 -0.436430 +v -0.494082 -0.020288 -0.869442 +v -0.744082 1.479711 -1.302455 +v -0.244082 3.479711 -0.436430 +v -0.189955 0.979712 -0.467680 +v -0.189955 3.479711 -0.467680 +v -0.689956 -0.020288 -1.333705 +v -0.439955 -0.020288 -0.900692 +v -0.689956 1.479711 -1.333705 +v 1.500000 1.479712 0.069333 +v 1.000000 -0.020288 0.069334 +v 1.500000 -0.020288 0.069333 +v 0.500000 3.479711 0.069334 +v 0.500000 0.979712 0.069334 +v 0.500000 3.479711 0.006834 +v 1.500000 1.479712 0.006834 +v 1.000000 -0.020288 0.006834 +v 0.500000 0.979712 0.006834 +v 1.500000 -0.020288 0.006833 +v -0.755918 -0.020288 1.295621 +v -0.255918 0.979712 0.429596 +v -0.505918 -0.020288 0.862609 +v -0.755918 1.479712 1.295621 +v -0.255918 3.479712 0.429596 +v -0.310045 0.979712 0.398346 +v -0.310045 3.479712 0.398346 +v -0.810045 -0.020288 1.264371 +v -0.560045 -0.020288 0.831359 +v -0.810045 1.479712 1.264371 +vt 0.400000 0.047619 +vt 0.511111 0.000000 +vt 0.533333 0.047619 +vt 0.666667 0.047619 +vt 0.777778 -0.000000 +vt 0.800000 0.047619 +vt 0.133333 0.047619 +vt 0.244444 0.000000 +vt 0.266667 0.047619 +vt 0.644444 0.000000 +vt 0.022222 0.000000 +vt 0.111111 0.000000 +vt 0.850033 0.099935 +vt 0.800066 0.053571 +vt 0.850033 0.007208 +vt 0.266667 0.619048 +vt 0.000000 0.619048 +vt 0.000000 0.047619 +vt 0.533333 0.619048 +vt 0.133333 0.619048 +vt 0.666667 0.619048 +vt 0.400000 0.619048 +vt 0.377778 0.000000 +vt 0.600000 1.000000 +vt 0.800000 0.619048 +vt 0.733333 1.000000 +vt 0.066667 1.000000 +vt 0.200000 1.000000 +vt 0.333333 1.000000 +vt 0.466667 1.000000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.977778 0.202381 +vt 0.988889 0.202381 +vt 0.988889 0.583333 +vt 0.988889 0.107143 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.977778 0.202381 +vt 0.977778 0.107143 +vt 0.988889 0.392857 +vt 0.977778 0.583333 +vt 0.977778 0.392857 +vt 0.988889 0.250000 +vt 0.988889 0.202381 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.977778 0.202381 +vt 0.988889 0.202381 +vt 0.988889 0.583333 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.988889 0.202381 +vt 0.977778 0.202381 +vt 0.988889 0.583333 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.988889 0.202381 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.988889 0.583333 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.977778 0.250000 +vt 0.977778 0.202381 +vt 0.988889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.988889 0.202381 +vt 0.977778 0.202381 +vt 0.988889 0.583333 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.422222 0.000000 +vt 0.688889 0.000000 +vt 0.155556 0.000000 +vt 0.555556 -0.000000 +vt 0.949967 0.007208 +vt 0.999934 0.053571 +vt 0.949967 0.099935 +vt 0.288889 0.000000 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vt 0.988889 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vt 0.977778 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vn -0.4756 -0.3089 -0.8237 +vn -0.4756 -0.3089 0.8237 +vn 0.9511 -0.3089 0.0000 +vn -0.9511 -0.3089 0.0000 +vn 0.4756 -0.3089 0.8237 +vn -0.0000 -1.0000 0.0000 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 0.8660 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.5000 0.0000 0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.4756 -0.3089 -0.8237 +vn -0.9871 0.1603 0.0000 +vn -0.4935 0.1603 0.8548 +vn 0.4935 0.1603 0.8548 +vn 0.9871 0.1603 0.0000 +vn 0.4935 0.1603 -0.8548 +vn -0.4935 0.1603 -0.8548 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 -0.0000 0.5000 +vn 0.4472 0.4472 -0.7746 +vn -0.4472 -0.4472 0.7746 +vn -0.4472 -0.4472 -0.7746 +vn 0.4472 0.4472 0.7746 +vn -0.8660 -0.0000 0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.8944 0.4472 0.0000 +vn 0.8944 -0.4472 0.0000 +vn -0.4472 0.4472 -0.7746 +vn 0.4472 -0.4472 0.7746 +vn -0.8944 -0.4472 0.0000 +vn 0.8944 0.4472 -0.0000 +vn -0.4472 0.4472 0.7746 +vn 0.4472 -0.4472 -0.7746 +s off +f 7/1/1 6/2/1 8/3/1 +f 9/4/2 3/5/2 10/6/2 +f 11/7/3 1/8/3 12/9/3 +f 8/3/4 4/10/4 9/4/4 +f 11/7/5 3/11/5 2/12/5 +f 2/13/6 3/14/6 4/15/6 +f 7/1/7 18/16/7 12/9/7 +f 11/7/8 16/17/8 10/18/8 +f 9/4/9 14/19/9 8/3/9 +f 12/9/10 17/20/10 11/7/10 +f 10/6/11 15/21/11 9/4/11 +f 8/3/12 13/22/12 7/1/12 +f 12/9/13 5/23/13 7/1/13 +f 14/19/14 15/21/14 19/24/14 +f 15/21/15 16/25/15 19/26/15 +f 16/17/16 17/20/16 19/27/16 +f 17/20/17 18/16/17 19/28/17 +f 18/16/18 13/22/18 19/29/18 +f 13/22/19 14/19/19 19/30/19 +f 23/31/20 20/32/20 22/33/20 +f 28/34/21 27/35/21 29/36/21 +f 23/37/7 27/35/7 20/38/7 +f 20/38/6 28/39/6 22/40/6 +f 24/41/22 29/36/22 23/37/22 +f 21/42/23 28/39/23 25/43/23 +f 38/44/24 31/45/24 34/46/24 +f 36/47/25 33/48/25 30/49/25 +f 39/50/6 31/45/6 37/51/6 +f 36/47/8 32/52/8 39/50/8 +f 31/53/26 32/52/26 30/49/26 +f 36/54/27 39/55/27 37/56/27 +f 43/57/28 40/58/28 42/59/28 +f 48/60/29 47/61/29 49/62/29 +f 43/63/9 47/61/9 40/64/9 +f 40/64/6 48/65/6 42/66/6 +f 44/67/30 49/62/30 43/63/30 +f 42/66/31 45/68/31 41/69/31 +f 53/70/26 50/71/26 52/72/26 +f 58/73/27 57/74/27 59/75/27 +f 53/76/12 57/74/12 50/77/12 +f 52/78/6 57/74/6 58/79/6 +f 54/80/32 59/75/32 53/76/32 +f 52/78/33 55/81/33 51/82/33 +f 67/83/34 64/84/34 68/85/34 +f 65/86/35 60/87/35 66/88/35 +f 67/83/6 62/89/6 61/90/6 +f 66/88/10 62/89/10 69/91/10 +f 61/92/28 62/89/28 60/87/28 +f 66/93/29 69/94/29 67/95/29 +f 73/96/21 70/97/21 72/98/21 +f 78/99/20 77/100/20 79/101/20 +f 73/102/11 77/100/11 70/103/11 +f 72/104/6 77/100/6 78/105/6 +f 74/106/36 79/101/36 73/102/36 +f 72/104/37 75/107/37 71/108/37 +f 7/1/1 5/109/1 6/2/1 +f 9/4/2 4/110/2 3/5/2 +f 11/7/3 2/111/3 1/8/3 +f 8/3/4 6/112/4 4/10/4 +f 11/7/5 10/18/5 3/11/5 +f 4/15/6 6/113/6 5/114/6 +f 5/114/6 1/115/6 4/15/6 +f 1/115/6 2/13/6 4/15/6 +f 7/1/7 13/22/7 18/16/7 +f 11/7/8 17/20/8 16/17/8 +f 9/4/9 15/21/9 14/19/9 +f 12/9/10 18/16/10 17/20/10 +f 10/6/11 16/25/11 15/21/11 +f 8/3/12 14/19/12 13/22/12 +f 12/9/13 1/116/13 5/23/13 +f 22/33/20 21/117/20 23/31/20 +f 21/117/20 24/118/20 23/31/20 +f 26/119/21 25/120/21 29/36/21 +f 25/120/21 28/34/21 29/36/21 +f 23/37/7 29/36/7 27/35/7 +f 20/38/6 27/35/6 28/39/6 +f 24/41/22 26/121/22 29/36/22 +f 21/42/23 22/40/23 28/39/23 +f 38/44/24 37/51/24 31/45/24 +f 36/47/25 35/122/25 33/48/25 +f 39/50/6 32/52/6 31/45/6 +f 36/47/8 30/49/8 32/52/8 +f 33/123/26 34/124/26 30/49/26 +f 34/124/26 31/53/26 30/49/26 +f 37/56/27 38/125/27 36/54/27 +f 38/125/27 35/126/27 36/54/27 +f 42/59/28 41/127/28 43/57/28 +f 41/127/28 44/128/28 43/57/28 +f 46/129/29 45/130/29 49/62/29 +f 45/130/29 48/60/29 49/62/29 +f 43/63/9 49/62/9 47/61/9 +f 40/64/6 47/61/6 48/65/6 +f 44/67/30 46/131/30 49/62/30 +f 42/66/31 48/65/31 45/68/31 +f 52/72/26 51/132/26 53/70/26 +f 51/132/26 54/133/26 53/70/26 +f 56/134/27 55/135/27 59/75/27 +f 55/135/27 58/73/27 59/75/27 +f 53/76/12 59/75/12 57/74/12 +f 52/78/6 50/77/6 57/74/6 +f 54/80/32 56/136/32 59/75/32 +f 52/78/33 58/79/33 55/81/33 +f 67/83/34 61/90/34 64/84/34 +f 65/86/35 63/137/35 60/87/35 +f 67/83/6 69/91/6 62/89/6 +f 66/88/10 60/87/10 62/89/10 +f 63/138/28 64/139/28 60/87/28 +f 64/139/28 61/92/28 60/87/28 +f 67/95/29 68/140/29 66/93/29 +f 68/140/29 65/141/29 66/93/29 +f 72/98/21 71/142/21 73/96/21 +f 71/142/21 74/143/21 73/96/21 +f 76/144/20 75/145/20 79/101/20 +f 75/145/20 78/99/20 79/101/20 +f 73/102/11 79/101/11 77/100/11 +f 72/104/6 70/103/6 77/100/6 +f 74/106/36 76/146/36 79/101/36 +f 72/104/37 78/105/37 75/107/37 diff --git a/src/main/resources/assets/hbm/textures/items/missile_stealth.png b/src/main/resources/assets/hbm/textures/items/missile_stealth.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a8d3af2ed767ef632b764e199ac151ee024c5a GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfr0pziwvvzhc+AGLE~Omb$oToSwAr{pLx>e<`#u9I!b*eczVK zgVpkkbBY;ms_Yiu@4aOj0=7>TjQSRqzkXn@3TT`!@;92D+cY)78&qol`;+0NNH~ AKL7v# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_stealth.png b/src/main/resources/assets/hbm/textures/models/missile_stealth.png new file mode 100644 index 0000000000000000000000000000000000000000..8ebb99bfe5137a9f95d91ed69473544007f4c932 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^Q9!(cgAGU~eEKN>q*#ibJVQ8upoSx*1IU&2ba4!+ znDch7VbLQ80ax}@f|{J-7yt4faP^onY16@L4;-aD_b-3SR()@E(S~o$ceA4SIg|6f zMB5T8cn*J9QOmo(_p$#y%bLRrniDQK8oW@DC=uYX;$V|yY36HkWG|dimsHhSvNtZ> z?|hwh4nl5`)r&%z%NBi~=6-p${eT<$K_vb9&FgBLi{8$jw)dyp4HOfT%wBw&6~FV} z`?L9}g^SNW-~6(#>hoG1zFWUue0vtX@S@{{KDYa)iZ5LDKL05oNH6sNuJ^4aERI%E zwc2w^O@4)WxC`hv>&aiO(O7GH323^9`{I0{0z>JNpKn&%2!DUJ{m|<2iRfeBk`|RJY|51Hl^1>I@ z4^IYs*?ZxIf=By{YDHP;ec!*B-=7EaDNB8Sx78)ZUvVDC*(zV$TdO9!2p9w$|Ky^5 zLC#q8{%#gnww>{O*krzoKucZff0@1xo7@L7Yx8g?GnZhR?>ptL_H-9m;`~K-&iT*tRn=t| zEa2w=}$l!CiJn{|4*7S?S0Sm2_V-! zh~7S{#G;0K$zezD)!snYMk~nj*{jyB_B<}FD7$EWAkdj0>16e&a}Gf1{Ec5PX}uKq zt9f~?UViZIzt^AH9#T6c_(7)R?Ou-T_}6FGFZ^@r@y+*pe{XUAdbvh_PASX5NU--n zK?d^heQt1ID04u93>4Ik6Cj}il;UVA>DVU@mIC{5FGLC)%B^52L6-NgZ+!UvWBz?$ zb^*yAiayk{g8$GL&Z(REF3vC7e}A>Sw~hI)%Y0Y;Kc7B-|NZxp-FH`=ds^hV{IX{6 z;~$?I3a^2KHg$He*UPfqw!%Sjl5v88Q{HQj%zyo_Po59& z0_u&`n|^lfxpcXwe}N$KQFKJ?c!}` zH9sy2GOk>p#dFK!^~#5*x&Pb$6#rLt|Fr$@E^&_yKCS Date: Sun, 7 Jan 2024 20:58:31 +0100 Subject: [PATCH 065/376] mostly fixes, supply crate changes --- changelog | 14 +- gradle.properties | 2 +- .../hbm/blocks/generic/BlockAmmoCrate.java | 25 +++- .../com/hbm/blocks/generic/BlockCanCrate.java | 120 +++++++++--------- .../com/hbm/blocks/generic/BlockCrate.java | 21 +-- .../blocks/generic/BlockDecoContainer.java | 16 +-- .../com/hbm/blocks/generic/BlockPedestal.java | 7 + .../com/hbm/entity/mob/EntityGlyphid.java | 4 +- .../hbm/entity/projectile/EntityBoxcar.java | 63 ++++----- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/weapon/trainImpact.ogg | Bin 0 -> 30762 bytes .../assets/hbm/textures/items/book_of_2.png | Bin 0 -> 1088 bytes 13 files changed, 144 insertions(+), 131 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg create mode 100644 src/main/resources/assets/hbm/textures/items/book_of_2.png diff --git a/changelog b/changelog index 8aa4089d6..169a6f798 100644 --- a/changelog +++ b/changelog @@ -27,7 +27,8 @@ * Now features proper animations for drawing the weapon, firing and reloading, as well as new sounds * Comes with a new and improved 3D model as well as a cylinder gap flash when firing * Is now part of the red room loot pool - * Durability has been drastically increased + * Durability has been drastically increased (31k instead of 4k) + * The boxcar now has new impact sounds and spawns fewer particles * Powder box recipes now produce 8 boxes from the same amount of ingredients, making cyclotron recipes more affordable * Buffed the radiation-powered engine, all valid fuels now produce 10x more energy per tick * Removed tungsten and HSS bolts as dedicated items, they are now a single bolt item that uses the autogen system @@ -35,11 +36,20 @@ * Bolts Are now 1/8 of an ingot instead of 1/2 which makes some recipes marginally cheaper, as well as making them equal to GregTech bolts * Bolts are oredicted and interchangeable, as well as recycleable in the crucible * The N45 naval mine has been obliterated -* The solar boiler's ray rendering is no longer bound by particle settings, instead it will be disabled when fast graphics are enabaled +* The solar boiler's ray rendering is no longer bound by particle settings, instead it will be disabled when fast graphics are enabled * The solar boiler's internal buffer has been reduced, its steam output is now capped at 10,000mB/t (which should be 20kHE/t or 0.8MHE/s) +* All crates except the jungle dungeon one now drop themselves when mined + * Supply and conserve crates do not need a tool because they are made of wood, the ammo crate requires a pickaxe + * All of those crates are now opened with the crowbar instead in order to be consistent with each other +* Standard gauge rails are now craftable and visible in the transportation tab + * You can now play around with the new rail types in creative mode, as none of the train cars are currently craftable + * Coupling should work, but coupling info is not saved to NBT so links will be lost when leaving the world + * Trains might randomly derail on 5m curves, idk why ## Fixed * Fixed afterburn upgrades not being craftable with bakelite * Fixed bismuth block not being properly oredicted * Powder detectors that are used in the same network as diodes should now be somewhat less wrong * Fixed horrifying gamebreaking issue that would frequently cause crashes, corrupt worlds and bluescreen PCs where the red copper block and the advanced alloy block had inconsistent colors +* Fixed file cabinets not dropping their contents +* Fixed some sides of the pedestal not rendering diff --git a/gradle.properties b/gradle.properties index 5c90623a5..e134592d6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4824 +mod_build_number=4837 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java index f7612ee69..a2925f119 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java @@ -12,6 +12,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -38,11 +39,31 @@ public class BlockAmmoCrate extends Block { public IIcon getIcon(int side, int metadata) { return side == 0 ? this.iconBottom : (side == 1 ? this.iconTop : this.blockIcon); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; + } + return false; + } Random rand = new Random(); - @Override - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + public void dropContents(World world, int x, int y, int z) { + ArrayList items = getContents(world, x, y, z); + + for(ItemStack item : items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + + public ArrayList getContents(World world, int x, int y, int z) { ArrayList ret = new ArrayList(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java index f9b27c5a8..67e8c5e9b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java @@ -11,9 +11,7 @@ import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class BlockCanCrate extends Block { @@ -21,79 +19,77 @@ public class BlockCanCrate extends Block { public BlockCanCrate(Material p_i45394_1_) { super(p_i45394_1_); } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override - public int getRenderType(){ + public int getRenderType() { return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - @Override + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { - - if(world.isRemote) - { - player.addChatMessage(new ChatComponentText("The one crate you are allowed to smash!")); + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; } - - return true; - } - - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - ArrayList ret = new ArrayList(); - - int count = quantityDropped(metadata, fortune, world.rand); - for(int i = 0; i < count; i++) { - Item item = getItemDropped(metadata, world.rand, fortune); - if(item != null) - ret.add(new ItemStack(item, 1, damageDropped(metadata, world.rand, item))); - } - - return ret; - } - - //pain - public int damageDropped(int meta, Random rand, Item item) { - if(item != ModItems.canned_conserve) - return damageDropped(meta); - else - return Math.abs(rand.nextInt() % EnumFoodType.values().length); - } - - @Override - public Item getItemDropped(int i, Random rand, int j) { - - List items = new ArrayList(); - for(int a = 0; a < EnumFoodType.values().length; a++) - items.add(ModItems.canned_conserve); - items.add(ModItems.can_smart); - items.add(ModItems.can_creature); - items.add(ModItems.can_redbomb); - items.add(ModItems.can_mrsugar); - items.add(ModItems.can_overcharge); - items.add(ModItems.can_luna); - items.add(ModItems.can_breen); - items.add(ModItems.can_bepis); - items.add(ModItems.pudding); - - return items.get(rand.nextInt(items.size())); - } - - @Override - public int quantityDropped(Random rand) { - - return 5 + rand.nextInt(4); - } + return false; + } + Random rand = new Random(); + + public void dropContents(World world, int x, int y, int z) { + ArrayList items = getContents(world, x, y, z); + + for(ItemStack item : items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + + public ArrayList getContents(World world, int x, int y, int z) { + ArrayList ret = new ArrayList(); + + int count = getContentAmount(world.rand); + for(int i = 0; i < count; i++) { + ret.add(getRandomItem(world.rand)); + } + + return ret; + } + + public ItemStack getRandomItem(Random rand) { + + List items = new ArrayList(); + for(int a = 0; a < EnumFoodType.values().length; a++) + items.add(new ItemStack(ModItems.canned_conserve, 1, a)); + items.add(new ItemStack(ModItems.can_smart)); + items.add(new ItemStack(ModItems.can_creature)); + items.add(new ItemStack(ModItems.can_redbomb)); + items.add(new ItemStack(ModItems.can_mrsugar)); + items.add(new ItemStack(ModItems.can_overcharge)); + items.add(new ItemStack(ModItems.can_luna)); + items.add(new ItemStack(ModItems.can_breen)); + items.add(new ItemStack(ModItems.can_bepis)); + items.add(new ItemStack(ModItems.pudding)); + + return items.get(rand.nextInt(items.size())); + } + + public int getContentAmount(Random rand) { + return 5 + rand.nextInt(4); + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index 7921a0e71..412b7ed2d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -14,7 +14,6 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class BlockCrate extends BlockFalling { @@ -29,25 +28,17 @@ public class BlockCrate extends BlockFalling { super(p_i45394_1_); } - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return null; - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { - dropItems(world, x, y, z); - world.setBlockToAir(x, y, z); - world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); - return true; - } else { - if(world.isRemote) { - player.addChatMessage(new ChatComponentText("I'll need a crate opening device to get the loot, smashing the whole thing won't work...")); + if(!world.isRemote) { + dropItems(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); } + return true; } - - return true; + return false; } public void setDrops() { diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java b/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java index d98221129..ac7a1cdb5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java @@ -58,9 +58,9 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro } else { TileEntity entity = world.getTileEntity(x, y, z); if(entity instanceof TileEntityLockableBase) { //annoying accommodations for the filing cabinet, but whatever, could potentially be useful - if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) + if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) { return false; - else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) { + } else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; } @@ -99,13 +99,13 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro if(itemstack.hasTagCompound()) { entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - - float f3 = 0.05F; - entityitem.motionX = (float) rand.nextGaussian() * f3; - entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) rand.nextGaussian() * f3; - world.spawnEntityInWorld(entityitem); } + + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java index 2930323f7..9f4ace30b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java @@ -18,6 +18,7 @@ import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockPedestal extends BlockContainer { @@ -62,6 +63,12 @@ public class BlockPedestal extends BlockContainer { public boolean renderAsNormalBlock() { return false; } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index ba5d41f5e..dfe3c6376 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -107,9 +107,9 @@ public class EntityGlyphid extends EntityMob { @Override protected void entityInit() { super.entityInit(); - this.dataWatcher.addObject(DW_WALL, new Byte((byte) 0)); //wall climbing + this.dataWatcher.addObject(DW_WALL, new Byte((byte) 0)); //wall climbing this.dataWatcher.addObject(DW_ARMOR, new Byte((byte) 0b11111)); //armor - this.dataWatcher.addObject(DW_SUBTYPE, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc) + this.dataWatcher.addObject(DW_SUBTYPE, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc) } @Override diff --git a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java index 74a4f9a47..8871bd430 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java @@ -32,49 +32,36 @@ public class EntityBoxcar extends EntityThrowable { this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - /*this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ;*/ - this.motionY -= 0.03; if(motionY < -1.5) motionY = -1.5; - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10000.0F, 0.5F + this.rand.nextFloat() * 0.1F); - this.setDead(); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); - - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.boxcar, 1000); - } - - if(!worldObj.isRemote) - worldObj.setBlock((int)(this.posX - 0.5), (int)(this.posY + 0.5), (int)(this.posZ - 0.5), ModBlocks.boxcar); - } - } + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:weapon.trainImpact", 100.0F, 1.0F); + this.setDead(); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); + //ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); + //ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); + + List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.boxcar, 1000); + } + + if(!worldObj.isRemote) + worldObj.setBlock((int) (this.posX - 0.5), (int) (this.posY + 0.5), (int) (this.posZ - 0.5), ModBlocks.boxcar); + } + } @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - - } + protected void onImpact(MovingObjectPosition p_70184_1_) { } - @Override + @Override @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 25000; - } + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 12297eb61..a5cbbc5ea 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4824)"; + public static final String VERSION = "1.0.27 BETA (4837)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index adc21ea33..b7038f609 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -202,6 +202,7 @@ "weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]}, "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, "weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]}, + "weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg b/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg new file mode 100644 index 0000000000000000000000000000000000000000..22b179fda9ec4755c62a0c699903cf88535516ce GIT binary patch literal 30762 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 Date: Sun, 7 Jan 2024 21:11:56 +0100 Subject: [PATCH 066/376] yeah whatever --- changelog | 1 + src/main/java/com/hbm/blocks/ModBlocks.java | 4 ++-- src/main/java/com/hbm/config/MobConfig.java | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/changelog b/changelog index 169a6f798..a8d2087f6 100644 --- a/changelog +++ b/changelog @@ -53,3 +53,4 @@ * Fixed horrifying gamebreaking issue that would frequently cause crashes, corrupt worlds and bluescreen PCs where the red copper block and the advanced alloy block had inconsistent colors * Fixed file cabinets not dropping their contents * Fixed some sides of the pedestal not rendering +* Fixed particle accelerator window blocks not dropping when mined diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 3b7a3fd1c..24fef696d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1904,7 +1904,7 @@ public class ModBlocks { hadron_plating_yellow = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_yellow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_yellow"); hadron_plating_striped = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_striped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_striped"); hadron_plating_voltz = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_voltz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_voltz"); - hadron_plating_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_plating_glass", Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_glass"); + hadron_plating_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_plating_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_glass"); hadron_coil_alloy = new BlockHadronCoil(Material.iron, 10).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_alloy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_alloy"); hadron_coil_gold = new BlockHadronCoil(Material.iron, 25).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_gold"); hadron_coil_neodymium = new BlockHadronCoil(Material.iron, 50).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_neodymium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_neodymium"); @@ -1921,7 +1921,7 @@ public class ModBlocks { hadron_power_10g = new BlockHadronPower(Material.iron, 10000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); hadron_diode = new BlockHadronDiode(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); hadron_analysis = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis"); - hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass"); + hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass"); hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_access"); hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_core"); hadron_cooler = new BlockHadronCooler(Material.iron).setBlockName("hadron_cooler").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 7f9d45c9d..1d57e39c8 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -59,7 +59,7 @@ public class MobConfig { public static boolean rampantMode = false; public static boolean rampantNaturalScoutSpawn = false; public static double rampantScoutSpawnThresh = 20; - public static int rampantScoutSpawnChance = 1000; + public static int rampantScoutSpawnChance = 600; public static boolean scoutInitialSpawn = false; public static boolean rampantExtendedTargetting = false; public static boolean rampantDig = false; @@ -154,8 +154,8 @@ public class MobConfig { config.addCustomCategoryComment(CATEGORY, "The individual features of rampant can be used regardless of whether the main rampant toggle is enabled or not"); rampantNaturalScoutSpawn = CommonConfig.createConfigBool(config, CATEGORY,"12.R02_rampantScoutSpawn", "Whether scouts should spawn natually in highly polluted chunks", false); - rampantScoutSpawnChance = CommonConfig.createConfigInt(config, CATEGORY, "12.R02.1_rampantScoutSpawnChance", "How much soot is needed for scouts to naturally spawn", 20); - rampantScoutSpawnThresh = CommonConfig.createConfigDouble(config, CATEGORY, "12.R02.2_rampantScoutSpawnThresh", "How often scouts naturally spawn per mob population, 1/x format, the bigger the number, the more uncommon the scouts", 600); + rampantScoutSpawnThresh = CommonConfig.createConfigDouble(config, CATEGORY, "12.R02.1_rampantScoutSpawnThresh", "How much soot is needed for scouts to naturally spawn", 20); + rampantScoutSpawnChance = CommonConfig.createConfigInt(config, CATEGORY, "12.R02.2_rampantScoutSpawnChance", "How often scouts naturally spawn per mob population, 1/x format, the bigger the number, the more uncommon the scouts", 600); rampantExtendedTargetting = CommonConfig.createConfigBool(config, CATEGORY,"12.R03_rampantExtendedTargeting", "Whether Glyphids should have the extended targetting always enabled", false); rampantDig = CommonConfig.createConfigBool(config, CATEGORY,"12.R04_rampantDig", "Whether Glyphids should be able to dig to waypoints", false); rampantGlyphidGuidance = CommonConfig.createConfigBool(config, CATEGORY,"12.R05_rampantGlyphidGuidance", "Whether Glyphids should always expand toward a player's spawnpoint", false); From bc879f1bec399768907f6a65b25607884a4eb2ee Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 7 Jan 2024 21:59:28 +0100 Subject: [PATCH 067/376] can you like fuck off --- src/main/java/com/hbm/main/MainRegistry.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index b30c1b05b..c9b458f71 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1189,6 +1189,8 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.bomber"); ignoreMappings.add("hbm:item.bolt_tungsten"); ignoreMappings.add("hbm:item.bolt_dura_steel"); + ignoreMappings.add("hbm:tile.rail_large_curve_wide"); + ignoreMappings.add("hbm:tile.nuke_n45"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); From 8dde233a5b87a18cd19a2b664211fb238e1a7fa9 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 8 Jan 2024 16:46:39 +0100 Subject: [PATCH 068/376] i should kill myself --- changelog | 59 ++----------------- .../com/hbm/items/machine/ItemWatzPellet.java | 4 +- .../tileentity/machine/TileEntityWatz.java | 2 +- 3 files changed, 7 insertions(+), 58 deletions(-) diff --git a/changelog b/changelog index a8d2087f6..8bf2eb32a 100644 --- a/changelog +++ b/changelog @@ -1,56 +1,5 @@ -## Added -* Satellite radar relay - * Can be linked to a death ray - * Allows the death ray to be used with the radar's targeting system -* Combinator funnel - * Has 9 input and 9 output slots - * Will automatically do single ingredient 2x2 or 3x3 recipes like compressing ingots into blocks at up to 9 operations per tick - * Input is strictly on the top and output on the bottom - * The side acts as an output for the ingredients as a way to de-clog the funnel from leftover materials -* Stealth missile - * A missile that is not picked up by radars, turrets or ABMs - * Marginally more powerful than a tier 1 HE missile - * Somewhat expensive, takes a full minute to make in the assembler - ## Changed -* Updated russian localization -* Nerfed scrap and dust even further -* Tiny dusts now shred into the generic tiny dust instead of scrap -* Tiny dust now shreds into more tiny dust, just like dust shreds into dust -* Updated the strange stone's texture to be more blatant about what it is -* Added more OC compat for the RBMK console -* Inverted large door's redstone behavior to be in line with vanilla iron doors -* The FEL now has a humming sound when it is active -* Updated the gadget's model - * The wires will not render on the fast graphic setting for performance reasons -* Remade Lil'Pipsqueak - * Now features proper animations for drawing the weapon, firing and reloading, as well as new sounds - * Comes with a new and improved 3D model as well as a cylinder gap flash when firing - * Is now part of the red room loot pool - * Durability has been drastically increased (31k instead of 4k) - * The boxcar now has new impact sounds and spawns fewer particles -* Powder box recipes now produce 8 boxes from the same amount of ingredients, making cyclotron recipes more affordable -* Buffed the radiation-powered engine, all valid fuels now produce 10x more energy per tick -* Removed tungsten and HSS bolts as dedicated items, they are now a single bolt item that uses the autogen system - * Regular steel is now also a valid bolt material which will replace tungsten in many recipes where tungsten just doesn't make sense - * Bolts Are now 1/8 of an ingot instead of 1/2 which makes some recipes marginally cheaper, as well as making them equal to GregTech bolts - * Bolts are oredicted and interchangeable, as well as recycleable in the crucible -* The N45 naval mine has been obliterated -* The solar boiler's ray rendering is no longer bound by particle settings, instead it will be disabled when fast graphics are enabled -* The solar boiler's internal buffer has been reduced, its steam output is now capped at 10,000mB/t (which should be 20kHE/t or 0.8MHE/s) -* All crates except the jungle dungeon one now drop themselves when mined - * Supply and conserve crates do not need a tool because they are made of wood, the ammo crate requires a pickaxe - * All of those crates are now opened with the crowbar instead in order to be consistent with each other -* Standard gauge rails are now craftable and visible in the transportation tab - * You can now play around with the new rail types in creative mode, as none of the train cars are currently craftable - * Coupling should work, but coupling info is not saved to NBT so links will be lost when leaving the world - * Trains might randomly derail on 5m curves, idk why - -## Fixed -* Fixed afterburn upgrades not being craftable with bakelite -* Fixed bismuth block not being properly oredicted -* Powder detectors that are used in the same network as diodes should now be somewhat less wrong -* Fixed horrifying gamebreaking issue that would frequently cause crashes, corrupt worlds and bluescreen PCs where the red copper block and the advanced alloy block had inconsistent colors -* Fixed file cabinets not dropping their contents -* Fixed some sides of the pedestal not rendering -* Fixed particle accelerator window blocks not dropping when mined +* The watz now cools up to 20% of its current heat level instead of 10%, making reactors a lot cooler and therefore react faster, which means more energy and faster depletion rates + * Mud production rates have been halved, to prevent currently working setups from exploding instantly + * This is your reminder that you can achieve more power, mud and depletion by building larger watz powerplants, i.e. stacking more watz segments on top of each other. Your tiny poo reactors make me sick. +* Watz pellets now have a 50% smaller yield, halving the expected time until depletion diff --git a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java index be5e0ad7f..f4dfbeae7 100644 --- a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java @@ -49,7 +49,7 @@ public class ItemWatzPellet extends ItemEnumMulti { NQD( 0x4B4B4B, 0x121212, 2_000, 20, 0.01D, new FunctionLinear(2D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null), NQR( 0x2D2D2D, 0x0B0B0B, 2_500, 30, 0.01D, new FunctionLinear(1.5D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null); - public double yield = 1_000_000_000; + public double yield = 500_000_000; public int colorLight; public int colorDark; public double mudContent; //how much mud per reaction flux should be produced @@ -64,7 +64,7 @@ public class ItemWatzPellet extends ItemEnumMulti { this.colorDark = colorDark; this.passive = passive; this.heatEmission = heatEmission; - this.mudContent = mudContent; + this.mudContent = mudContent / 2D; this.burnFunc = burnFunction; this.heatDiv = heatDivisor; this.absorbFunc = absorbFunction; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index a1f6d8b65..32ec41b3e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -169,7 +169,7 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand public void updateCoolant(FluidTank[] tanks) { - double coolingFactor = 0.1D; //10% per tick, TEMP + double coolingFactor = 0.2D; //20% per tick double heatToUse = this.heat * coolingFactor; FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); From 7e665932d1e00a7d37fa220ceefddca1cadf3aa4 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 8 Jan 2024 21:51:56 +0100 Subject: [PATCH 069/376] crater biome test --- .../hbm/entity/effect/EntityFalloutRain.java | 10 ++++++ .../java/com/hbm/items/tool/ItemWandD.java | 14 ++++++-- .../java/com/hbm/packet/BiomeSyncPacket.java | 8 +++-- src/main/java/com/hbm/world/WorldUtil.java | 18 ++++++---- .../com/hbm/world/biome/BiomeGenCrater.java | 36 +++++++++++++++++++ 5 files changed, 75 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/world/biome/BiomeGenCrater.java diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 4eae334d6..35b0c595a 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -6,6 +6,8 @@ import com.hbm.config.FalloutConfigJSON; import com.hbm.config.FalloutConfigJSON.FalloutEntry; import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.saveddata.AuxSavedData; +import com.hbm.world.WorldUtil; +import com.hbm.world.biome.BiomeGenCrater; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -58,8 +60,10 @@ public class EntityFalloutRain extends Entity { for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { stomp(x, z, Math.hypot(x - posX, z - posZ) * 100 / getScale()); + //WorldUtil.setBiome(worldObj, x, z, BiomeGenCrater.craterBiome); } } + //WorldUtil.syncBiomeChange(worldObj, chunkPosX, chunkPosZ); } else if (!outerChunksToProcess.isEmpty()) { long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); @@ -70,9 +74,11 @@ public class EntityFalloutRain extends Entity { double distance = Math.hypot(x - posX, z - posZ); if(distance <= getScale()) { stomp(x, z, distance * 100 / getScale()); + //WorldUtil.setBiome(worldObj, x, z, BiomeGenCrater.craterBiome); } } } + //WorldUtil.syncBiomeChange(worldObj, chunkPosX, chunkPosZ); } else { setDead(); @@ -161,6 +167,10 @@ public class EntityFalloutRain extends Entity { for(FalloutEntry entry : FalloutConfigJSON.entries) { + if(b == Blocks.grass) { + break; + } + if(entry.eval(worldObj, x, y, z, b, meta, dist)) { if(entry.isSolid()) { depth++; diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 3c1a0da33..64d5158ce 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -4,8 +4,11 @@ import java.util.List; import com.hbm.lib.Library; import com.hbm.saveddata.TomSaveData; +import com.hbm.world.WorldUtil; +import com.hbm.world.biome.BiomeGenCrater; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; @@ -40,11 +43,18 @@ public class ItemWandD extends Item { TimeAnalyzer.endCount(); TimeAnalyzer.dump();*/ - TomSaveData data = TomSaveData.forWorld(world); + /*TomSaveData data = TomSaveData.forWorld(world); data.impact = true; data.fire = 0F; data.dust = 0F; - data.markDirty(); + data.markDirty();*/ + + /*for(int i = -5; i <= 5; i++) { + for(int j = -5; j <= 5; j++) { + WorldUtil.setBiome(world, pos.blockX + i, pos.blockZ + j, BiomeGenCrater.craterBiome); + WorldUtil.syncBiomeChangeBlock(world, pos.blockX + i, pos.blockZ + j); + } + }*/ /*EntityTomBlast tom = new EntityTomBlast(world); tom.posX = pos.blockX; diff --git a/src/main/java/com/hbm/packet/BiomeSyncPacket.java b/src/main/java/com/hbm/packet/BiomeSyncPacket.java index aa8f992ea..203ddc281 100644 --- a/src/main/java/com/hbm/packet/BiomeSyncPacket.java +++ b/src/main/java/com/hbm/packet/BiomeSyncPacket.java @@ -28,8 +28,8 @@ public class BiomeSyncPacket implements IMessage { } public BiomeSyncPacket(int blockX, int blockZ, byte biome) { - this.chunkX = blockX << 4; - this.chunkZ = blockZ << 4; + this.chunkX = blockX >> 4; + this.chunkZ = blockZ >> 4; this.blockX = (byte) (blockX & 15); this.blockZ = (byte) (blockZ & 15); this.biome = biome; @@ -63,7 +63,6 @@ public class BiomeSyncPacket implements IMessage { this.blockX = buf.readByte(); this.blockZ = buf.readByte(); } else { - buf.writeBoolean(true); this.biomeArray = new byte[256]; for(int i = 0; i < 256; i++) { this.biomeArray[i] = buf.readByte(); @@ -80,12 +79,15 @@ public class BiomeSyncPacket implements IMessage { World world = Minecraft.getMinecraft().theWorld; if(!world.getChunkProvider().chunkExists(m.chunkX, m.chunkZ)) return null; Chunk chunk = world.getChunkFromChunkCoords(m.chunkX, m.chunkZ); + chunk.isModified = true; if(m.biomeArray == null) { chunk.getBiomeArray()[(m.blockZ & 15) << 4 | (m.blockX & 15)] = m.biome; + world.markBlockRangeForRenderUpdate(m.chunkX << 4, 0, m.chunkZ << 4, m.chunkX << 4, 255, m.chunkZ << 4); } else { for(int i = 0; i < 256; i++) { chunk.getBiomeArray()[i] = m.biomeArray[i]; + world.markBlockRangeForRenderUpdate(m.chunkX << 4, 0, m.chunkZ << 4, (m.chunkX << 4) + 15, 255, (m.chunkZ << 4) + 15); } } diff --git a/src/main/java/com/hbm/world/WorldUtil.java b/src/main/java/com/hbm/world/WorldUtil.java index f8667dad7..ef9c0f361 100644 --- a/src/main/java/com/hbm/world/WorldUtil.java +++ b/src/main/java/com/hbm/world/WorldUtil.java @@ -21,6 +21,18 @@ public class WorldUtil { public static void setBiome(World world, int x, int z, BiomeGenBase biome) { Chunk chunk = world.getChunkFromBlockCoords(x, z); chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)] = (byte)(biome.biomeID & 255); + chunk.isModified = true; + } + + public static void syncBiomeChange(World world, int x, int z) { + Chunk chunk = world.getChunkFromBlockCoords(x, z); + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); + } + + public static void syncBiomeChangeBlock(World world, int x, int z) { + Chunk chunk = world.getChunkFromBlockCoords(x, z); + byte biome = chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)]; + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, biome), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); } public static void syncBiomeChange(World world, Chunk chunk) { @@ -69,12 +81,6 @@ public class WorldUtil { } } } - - public static void syncBiomeChange(World world, int x, int z) { - Chunk chunk = world.getChunkFromBlockCoords(x, z); - //byte biome = chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)]; - PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); - } public static Chunk provideChunk(WorldServer world, int chunkX, int chunkZ) { ChunkProviderServer provider = world.theChunkProviderServer; diff --git a/src/main/java/com/hbm/world/biome/BiomeGenCrater.java b/src/main/java/com/hbm/world/biome/BiomeGenCrater.java new file mode 100644 index 000000000..e3d5e7876 --- /dev/null +++ b/src/main/java/com/hbm/world/biome/BiomeGenCrater.java @@ -0,0 +1,36 @@ +package com.hbm.world.biome; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeGenCrater extends BiomeGenBase { + + //public static final BiomeGenBase craterBiome = new BiomeGenCrater(50 /* TEMP */).setDisableRain(); + + public BiomeGenCrater(int id) { + super(id); + this.waterColorMultiplier = 0xE0FFAE; //swamp color + this.setBiomeName("Crater"); + } + + @Override + @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int x, int y, int z) { + double noise = plantNoise.func_151601_a((double) x * 0.225D, (double) z * 0.225D); + return noise < -0.1D ? 0x606060 : 0x505050; + } + + @Override + @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor(int x, int y, int z) { + return 0x6A7039; + } + + @Override + @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float temp) { + //return 0x66BBA9; + return 0x6B9189; + } +} From e3d167ff01dc317004635af4c4491b3eb8b0448e Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 9 Jan 2024 13:08:15 +0100 Subject: [PATCH 070/376] yeag --- changelog | 5 ++ .../java/com/hbm/config/CommonConfig.java | 1 + .../com/hbm/config/FalloutConfigJSON.java | 51 +++++++----- src/main/java/com/hbm/config/WorldConfig.java | 9 ++ .../hbm/entity/effect/EntityFalloutRain.java | 46 ++++++---- .../entity/logic/EntityNukeExplosionMK5.java | 4 +- .../java/com/hbm/items/tool/ItemWandD.java | 13 ++- src/main/java/com/hbm/main/MainRegistry.java | 3 + .../com/hbm/main/ModEventHandlerRenderer.java | 14 ++++ .../java/com/hbm/util/ContaminationUtil.java | 2 +- src/main/java/com/hbm/world/WorldUtil.java | 14 ++-- .../com/hbm/world/biome/BiomeGenCrater.java | 36 -------- .../hbm/world/biome/BiomeGenCraterBase.java | 83 +++++++++++++++++++ src/main/resources/assets/hbm/lang/en_US.lang | 2 +- 14 files changed, 193 insertions(+), 90 deletions(-) delete mode 100644 src/main/java/com/hbm/world/biome/BiomeGenCrater.java create mode 100644 src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java diff --git a/changelog b/changelog index 8bf2eb32a..8ba38aaa3 100644 --- a/changelog +++ b/changelog @@ -3,3 +3,8 @@ * Mud production rates have been halved, to prevent currently working setups from exploding instantly * This is your reminder that you can achieve more power, mud and depletion by building larger watz powerplants, i.e. stacking more watz segments on top of each other. Your tiny poo reactors make me sick. * Watz pellets now have a 50% smaller yield, halving the expected time until depletion +* Adjusted the nuclear flash's intensity, the flash will now deal less and less radiation the longer it goes on +* The nuclear flash now bypasses radiation resistance, being only affected by blocks and distance + +## Fixed +* Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index 578f98bef..8d809ccf4 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -25,6 +25,7 @@ public class CommonConfig { public static final String CATEGORY_HAZARD = "14_hazard"; public static final String CATEGORY_STRUCTURES = "15_structures"; public static final String CATEGORY_POLLUTION = "16_pollution"; + public static final String CATEGORY_BIOMES = "17_biomes"; public static final String CATEGORY_528 = "528"; public static final String CATEGORY_LBSM = "LESS BULLSHIT MODE"; diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index eba732a84..de787053b 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -55,13 +55,8 @@ public class FalloutConfigJSON { private static void initDefault() { double woodEffectRange = 65D; - /* destroy all leaves within the radios, kill all leaves outside of it */ - entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); - entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); - entries.add(new FalloutEntry() .mB(ModBlocks.waste_leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); - entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); - entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); + /* petrify all wooden things possible */ entries.add(new FalloutEntry() .mB(Blocks.log) .prim(new Triplet(ModBlocks.waste_log, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.log2) .prim(new Triplet(ModBlocks.waste_log, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.red_mushroom_block).mM(10) .prim(new Triplet(ModBlocks.waste_log, 0, 1)) .max(woodEffectRange)); @@ -69,24 +64,33 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry() .mB(Blocks.red_mushroom_block) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.brown_mushroom_block) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.planks) .prim(new Triplet(ModBlocks.waste_planks, 0, 1)) .max(woodEffectRange)); - - FalloutEntry stoneCore = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield, 1, 1)).max(5).sol(true); - FalloutEntry stoneInner = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield, 0, 1)).min(5).max(15).sol(true); - FalloutEntry stoneOuter = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield_slaked, 0, 1)).min(15).max(50).sol(true); + /* if it can't be petrified, destroy it */ + entries.add(new FalloutEntry() .mMa(Material.wood) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + /* destroy all leaves within the radios, kill all leaves outside of it */ + entries.add(new FalloutEntry() .mMa(Material.leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mMa(Material.plants) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mB(ModBlocks.waste_leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); + entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); - entries.add(stoneCore.clone().mB(Blocks.stone)); - entries.add(stoneInner.clone().mB(Blocks.stone)); + + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.sellafield_slaked, 0, 1)).max(35).sol(true).mMa(Material.ground)); + + //FalloutEntry stoneCore = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield, 1, 1)).max(5).sol(true); + //FalloutEntry stoneInner = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield, 0, 1)).min(5).max(15).sol(true); + FalloutEntry stoneOuter = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield_slaked, 0, 1)).max(50).sol(true); + + //entries.add(stoneCore.clone().mB(Blocks.stone)); + //entries.add(stoneInner.clone().mB(Blocks.stone)); entries.add(stoneOuter.clone().mB(Blocks.stone)); - entries.add(stoneCore.clone().mB(Blocks.gravel)); - entries.add(stoneInner.clone().mB(Blocks.gravel)); + //entries.add(stoneCore.clone().mB(Blocks.gravel)); + //entries.add(stoneInner.clone().mB(Blocks.gravel)); entries.add(stoneOuter.clone().mB(Blocks.gravel)); /* recontaminate slaked sellafield */ - entries.add(stoneCore.clone().mB(ModBlocks.sellafield_slaked)); - entries.add(stoneInner.clone().mB(ModBlocks.sellafield_slaked)); + //entries.add(stoneCore.clone().mB(ModBlocks.sellafield_slaked)); + //entries.add(stoneInner.clone().mB(ModBlocks.sellafield_slaked)); - entries.add(new FalloutEntry() - .mB(Blocks.grass) - .prim(new Triplet(ModBlocks.waste_earth, 0, 1))); + //entries.add(new FalloutEntry().mB(Blocks.grass).prim(new Triplet(ModBlocks.waste_earth, 0, 1))); entries.add(new FalloutEntry() .mB(Blocks.mycelium) .prim(new Triplet(ModBlocks.waste_mycelium, 0, 1))); @@ -125,14 +129,14 @@ public class FalloutConfigJSON { /// COMPAT /// Block deepslate = Compat.tryLoadBlock(Compat.MOD_EF, "deepslate"); if(deepslate != null) { //identical to stone - entries.add(stoneCore.clone().mB(deepslate)); - entries.add(stoneInner.clone().mB(deepslate)); + //entries.add(stoneCore.clone().mB(deepslate)); + //entries.add(stoneInner.clone().mB(deepslate)); entries.add(stoneOuter.clone().mB(deepslate)); } Block stone = Compat.tryLoadBlock(Compat.MOD_EF, "stone"); if(stone != null) { //identical to stone - entries.add(stoneCore.clone().mB(stone)); - entries.add(stoneInner.clone().mB(stone)); + //entries.add(stoneCore.clone().mB(stone)); + //entries.add(stoneInner.clone().mB(stone)); entries.add(stoneOuter.clone().mB(stone)); } } @@ -191,6 +195,7 @@ public class FalloutConfigJSON { private double minDist = 0.0D; private double maxDist = 100.0D; + /** Whether the depth value should be decremented when this block is converted */ private boolean isSolid = false; public FalloutEntry clone() { diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 46add586c..30b356306 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -107,6 +107,10 @@ public class WorldConfig { public static int meteorStrikeChance = 20 * 60 * 180; public static int meteorShowerChance = 20 * 60 * 5; public static int meteorShowerDuration = 6000; + + public static int craterBiomeId = 80; + public static int craterBiomeInnerId = 81; + public static int craterBiomeOuterId = 82; public static void loadFromConfig(Configuration config) { @@ -218,6 +222,11 @@ public class WorldConfig { meteorShowerChance = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.04_meteorShowerChance", "The probability of a meteor spawning during meteor shower (an average of once every nTH ticks)", 20 * 60 * 15); meteorShowerDuration = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.05_meteorShowerDuration", "Max duration of meteor shower in ticks", 20 * 60 * 30); + final String CATEGORY_BIOMES = CommonConfig.CATEGORY_BIOMES; + craterBiomeId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.00_craterBiomeId", "The numeric ID for the crater biome", 80); + craterBiomeInnerId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.01_craterBiomeInnerId", "The numeric ID for the inner crater biome", 81); + craterBiomeOuterId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.02_craterBiomeOuterId", "The numeric ID for the outer crater biome", 82); + radioStructure = CommonConfig.setDefZero(radioStructure, 1000); antennaStructure = CommonConfig.setDefZero(antennaStructure, 1000); atomStructure = CommonConfig.setDefZero(atomStructure, 1000); diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 35b0c595a..2ce57ccfe 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -7,7 +7,7 @@ import com.hbm.config.FalloutConfigJSON.FalloutEntry; import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.saveddata.AuxSavedData; import com.hbm.world.WorldUtil; -import com.hbm.world.biome.BiomeGenCrater; +import com.hbm.world.biome.BiomeGenCraterBase; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -17,6 +17,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.common.util.ForgeDirection; @@ -57,28 +58,40 @@ public class EntityFalloutRain extends Entity { long chunkPos = chunksToProcess.remove(chunksToProcess.size() - 1); // Just so it doesn't shift the whole list every time int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); + boolean biomeModified = false; for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { - stomp(x, z, Math.hypot(x - posX, z - posZ) * 100 / getScale()); - //WorldUtil.setBiome(worldObj, x, z, BiomeGenCrater.craterBiome); + double percent = Math.hypot(x - posX, z - posZ) * 100 / getScale(); + stomp(x, z, percent); + BiomeGenBase biome = getBiomeChange(percent, getScale()); + if(biome != null) { + WorldUtil.setBiome(worldObj, x, z, biome); + biomeModified = true; + } } } - //WorldUtil.syncBiomeChange(worldObj, chunkPosX, chunkPosZ); + if(biomeModified) WorldUtil.syncBiomeChange(worldObj, chunkPosX << 4, chunkPosZ << 4); } else if (!outerChunksToProcess.isEmpty()) { long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); + boolean biomeModified = false; for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { double distance = Math.hypot(x - posX, z - posZ); if(distance <= getScale()) { - stomp(x, z, distance * 100 / getScale()); - //WorldUtil.setBiome(worldObj, x, z, BiomeGenCrater.craterBiome); + double percent = distance * 100 / getScale(); + stomp(x, z, percent); + BiomeGenBase biome = getBiomeChange(percent, getScale()); + if(biome != null) { + WorldUtil.setBiome(worldObj, x, z, biome); + biomeModified = true; + } } } } - //WorldUtil.syncBiomeChange(worldObj, chunkPosX, chunkPosZ); + if(biomeModified) WorldUtil.syncBiomeChange(worldObj, chunkPosX << 4, chunkPosZ << 4); } else { setDead(); @@ -99,6 +112,13 @@ public class EntityFalloutRain extends Entity { } } } + + public static BiomeGenBase getBiomeChange(double dist, int scale) { + if(scale >= 150 && dist < 15) return BiomeGenCraterBase.craterInnerBiome; + if(scale >= 100 && dist < 50) return BiomeGenCraterBase.craterBiome; + if(scale >= 25) return BiomeGenCraterBase.craterOuterBiome; + return null; + } private final List chunksToProcess = new ArrayList<>(); private final List outerChunksToProcess = new ArrayList<>(); @@ -129,25 +149,21 @@ public class EntityFalloutRain extends Entity { Collections.reverse(outerChunksToProcess); } - //private List changedPositions = new ArrayList(); - - // TODO cache chunks? private void stomp(int x, int z, double dist) { int depth = 0; for(int y = 255; y >= 0; y--) { - if(depth >= 3) - return; + if(depth >= 3) return; Block b = worldObj.getBlock(x, y, z); + + if(b.getMaterial() == Material.air) continue; + Block ab = worldObj.getBlock(x, y + 1, z); int meta = worldObj.getBlockMetadata(x, y, z); - if(b.getMaterial() == Material.air) - continue; - if(b != ModBlocks.fallout && (ab == Blocks.air || (ab.isReplaceable(worldObj, x, y + 1, z) && !ab.getMaterial().isLiquid()))) { double d = dist / 100; diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index 15cb2679b..90596a9af 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -63,7 +63,7 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { } if(!worldObj.isRemote && fallout && explosion != null && this.ticksExisted < 10) { - radiate(500_000, this.length * 2); + radiate(2_500_000F / (this.ticksExisted * 5 + 1), this.length * 2); } if(!mute) { @@ -131,7 +131,7 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { eRads /= (float)res; eRads /= (float)(len * len); - ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); + ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.RAD_BYPASS, eRads); } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 64d5158ce..05f3e197f 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -3,12 +3,10 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.lib.Library; -import com.hbm.saveddata.TomSaveData; import com.hbm.world.WorldUtil; -import com.hbm.world.biome.BiomeGenCrater; +import com.hbm.world.biome.BiomeGenCraterBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; @@ -49,12 +47,13 @@ public class ItemWandD extends Item { data.dust = 0F; data.markDirty();*/ - /*for(int i = -5; i <= 5; i++) { + for(int i = -5; i <= 5; i++) { for(int j = -5; j <= 5; j++) { - WorldUtil.setBiome(world, pos.blockX + i, pos.blockZ + j, BiomeGenCrater.craterBiome); - WorldUtil.syncBiomeChangeBlock(world, pos.blockX + i, pos.blockZ + j); + WorldUtil.setBiome(world, pos.blockX + i, pos.blockZ + j, BiomeGenCraterBase.craterBiome); } - }*/ + } + + WorldUtil.syncBiomeChange(world, pos.blockX, pos.blockZ); /*EntityTomBlast tom = new EntityTomBlast(world); tom.posX = pos.blockX; diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index c9b458f71..050d0c61a 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -47,6 +47,7 @@ import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.util.*; +import com.hbm.world.biome.BiomeGenCraterBase; import com.hbm.world.feature.BedrockOre; import com.hbm.world.feature.OreCave; import com.hbm.world.feature.OreLayer3D; @@ -294,6 +295,8 @@ public class MainRegistry { MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent OreDictManager.registerGroups(); //important to run first OreDictManager.registerOres(); + + BiomeGenCraterBase.initDictionary(); Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8"); Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e"); diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 50156b735..47431818c 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -10,6 +10,7 @@ import com.hbm.items.armor.IArmorDisableModel; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.packet.PermaSyncHandler; import com.hbm.render.model.ModelMan; +import com.hbm.world.biome.BiomeGenCraterBase; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -27,6 +28,8 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors; @@ -369,6 +372,17 @@ public class ModEventHandlerRenderer { @SubscribeEvent(priority = EventPriority.LOW) public void tintFog(FogColors event) { + + EntityPlayer player = MainRegistry.proxy.me(); + BiomeGenBase biome = player.worldObj.getBiomeGenForCoords((int) Math.floor(player.posX), (int) Math.floor(player.posZ)); + + if(biome instanceof BiomeGenCraterBase) { + int color = ForgeHooksClient.getSkyBlendColour(player.worldObj, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ)); + event.red = ((color & 0xff0000) >> 16) / 255F; + event.green = ((color & 0x00ff00) >> 8) / 255F; + event.blue = (color & 0x0000ff) / 255F; + } + float soot = (float) (renderSoot - RadiationConfig.sootFogThreshold); float sootColor = 0.15F; float sootReq = (float) RadiationConfig.sootFogDivisor; diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index c09b3ba4a..63689591b 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -254,7 +254,7 @@ public class ContaminationUtil { DIGAMMA, //preventable by fau armor or stability DIGAMMA2, //preventable by robes CREATIVE, //preventable by creative mode, for rad calculation armor piece bonuses still apply - RAD_BYPASS, //same as craative but will not apply radiation resistance calculation + RAD_BYPASS, //same as creative but will not apply radiation resistance calculation NONE //not preventable } diff --git a/src/main/java/com/hbm/world/WorldUtil.java b/src/main/java/com/hbm/world/WorldUtil.java index ef9c0f361..b06cf9d86 100644 --- a/src/main/java/com/hbm/world/WorldUtil.java +++ b/src/main/java/com/hbm/world/WorldUtil.java @@ -26,7 +26,7 @@ public class WorldUtil { public static void syncBiomeChange(World world, int x, int z) { Chunk chunk = world.getChunkFromBlockCoords(x, z); - PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x >> 4, z >> 4, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); } public static void syncBiomeChangeBlock(World world, int x, int z) { @@ -83,10 +83,14 @@ public class WorldUtil { } public static Chunk provideChunk(WorldServer world, int chunkX, int chunkZ) { - ChunkProviderServer provider = world.theChunkProviderServer; - Chunk chunk = (Chunk) provider.loadedChunkHashMap.getValueByKey(ChunkCoordIntPair.chunkXZ2Int(chunkX, chunkZ)); - if(chunk != null) return chunk; - return loadChunk(world, provider, chunkX, chunkZ); + try { + ChunkProviderServer provider = world.theChunkProviderServer; + Chunk chunk = (Chunk) provider.loadedChunkHashMap.getValueByKey(ChunkCoordIntPair.chunkXZ2Int(chunkX, chunkZ)); + if(chunk != null) return chunk; + return loadChunk(world, provider, chunkX, chunkZ); + } catch(Throwable x) { + return null; + } } private static Chunk loadChunk(WorldServer world, ChunkProviderServer provider, int chunkX, int chunkZ) { diff --git a/src/main/java/com/hbm/world/biome/BiomeGenCrater.java b/src/main/java/com/hbm/world/biome/BiomeGenCrater.java deleted file mode 100644 index e3d5e7876..000000000 --- a/src/main/java/com/hbm/world/biome/BiomeGenCrater.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hbm.world.biome; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.biome.BiomeGenBase; - -public class BiomeGenCrater extends BiomeGenBase { - - //public static final BiomeGenBase craterBiome = new BiomeGenCrater(50 /* TEMP */).setDisableRain(); - - public BiomeGenCrater(int id) { - super(id); - this.waterColorMultiplier = 0xE0FFAE; //swamp color - this.setBiomeName("Crater"); - } - - @Override - @SideOnly(Side.CLIENT) - public int getBiomeGrassColor(int x, int y, int z) { - double noise = plantNoise.func_151601_a((double) x * 0.225D, (double) z * 0.225D); - return noise < -0.1D ? 0x606060 : 0x505050; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBiomeFoliageColor(int x, int y, int z) { - return 0x6A7039; - } - - @Override - @SideOnly(Side.CLIENT) - public int getSkyColorByTemp(float temp) { - //return 0x66BBA9; - return 0x6B9189; - } -} diff --git a/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java b/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java new file mode 100644 index 000000000..6f3afd39a --- /dev/null +++ b/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java @@ -0,0 +1,83 @@ +package com.hbm.world.biome; + +import com.hbm.config.WorldConfig; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary; +import static net.minecraftforge.common.BiomeDictionary.Type.*; + +public class BiomeGenCraterBase extends BiomeGenBase { + + public static final BiomeGenBase craterBiome = new BiomeGenCrater(WorldConfig.craterBiomeId).setDisableRain().setBiomeName("Crater"); + public static final BiomeGenBase craterInnerBiome = new BiomeGenCraterInner(WorldConfig.craterBiomeInnerId).setDisableRain().setBiomeName("Inner Crater"); + public static final BiomeGenBase craterOuterBiome = new BiomeGenCraterOuter(WorldConfig.craterBiomeOuterId).setDisableRain().setBiomeName("Outer Crater"); + + public static void initDictionary() { + BiomeDictionary.registerBiomeType(craterBiome, DRY, DEAD, WASTELAND); + BiomeDictionary.registerBiomeType(craterInnerBiome, DRY, DEAD, WASTELAND); + BiomeDictionary.registerBiomeType(craterOuterBiome, DRY, DEAD, WASTELAND); + } + + public BiomeGenCraterBase(int id) { + super(id); + this.waterColorMultiplier = 0xE0FFAE; //swamp color + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.spawnableCaveCreatureList.clear(); + } + + public static class BiomeGenCrater extends BiomeGenCraterBase { + + public BiomeGenCrater(int id) { super(id); } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int x, int y, int z) { + double noise = plantNoise.func_151601_a((double) x * 0.225D, (double) z * 0.225D); + return noise < -0.1D ? 0x606060 : 0x505050; + } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor(int x, int y, int z) { return 0x6A7039; } + + @Override @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float temp) { return 0x525A52; } + } + + public static class BiomeGenCraterOuter extends BiomeGenCraterBase { + + public BiomeGenCraterOuter(int id) { super(id); } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int x, int y, int z) { + double noise = plantNoise.func_151601_a((double) x * 0.225D, (double) z * 0.225D); + return noise < -0.1D ? 0x776F59 : 0x6F6752; + } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor(int x, int y, int z) { return 0x6A7039; } + + @Override @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float temp) { return 0x6B9189; } + + } + + public static class BiomeGenCraterInner extends BiomeGenCraterBase { + + public BiomeGenCraterInner(int id) { super(id); } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int x, int y, int z) { + double noise = plantNoise.func_151601_a((double) x * 0.225D, (double) z * 0.225D); + return noise < -0.1D ? 0x404040 : 0x303030; + } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor(int x, int y, int z) { return 0x6A7039; } + + @Override @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float temp) { return 0x424A42; } + + } +} diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 33604be1b..80aae005a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5109,7 +5109,7 @@ tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower tile.machine_fracking_tower.name=Hydraulic Fracking Tower tile.machine_funnel.name=Combinator Funnel -tile.machine_funnel.desc=Automatically compresses items in a 2x2 or 3x3 crafting grid$Top: Input$Bottom: Output$Side: Output for clearing incredients +tile.machine_funnel.desc=Automatically compresses items in a 2x2 or 3x3 crafting grid$Top: Input$Bottom: Output$Side: Output for clearing ingredients tile.machine_gascent.name=Gas Centrifuge tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator From abf0b858e6e072b79d36d617b6ec979cba35397d Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 9 Jan 2024 21:45:46 +0100 Subject: [PATCH 071/376] sellafite variants, some torex tests --- changelog | 4 ++ src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../blocks/generic/BlockSellafieldSlaked.java | 53 ++++++++++++++ .../com/hbm/config/FalloutConfigJSON.java | 67 +++++------------- .../hbm/entity/effect/EntityFalloutRain.java | 6 +- .../hbm/entity/effect/EntityNukeTorex.java | 65 +++++++++++++++-- .../java/com/hbm/items/tool/ItemWandD.java | 11 +-- .../hbm/render/entity/effect/RenderTorex.java | 2 +- .../hbm/world/biome/BiomeGenCraterBase.java | 5 ++ .../textures/blocks/sellafield_slaked_1.png | Bin 0 -> 750 bytes .../textures/blocks/sellafield_slaked_2.png | Bin 0 -> 783 bytes .../textures/blocks/sellafield_slaked_3.png | Bin 0 -> 704 bytes 12 files changed, 149 insertions(+), 66 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_1.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_2.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_3.png diff --git a/changelog b/changelog index 8ba38aaa3..8e9ac0516 100644 --- a/changelog +++ b/changelog @@ -1,10 +1,14 @@ ## Changed +* Nuclear craters have been reworked + * The fallout effect no longer creates dead grass, instead it converts the area into three new biomes, the outer crater, crater and inner crater + * The entire crater is now slaked sellafite which now has texture variance to look more like debris, as well as getting darker towards the center * The watz now cools up to 20% of its current heat level instead of 10%, making reactors a lot cooler and therefore react faster, which means more energy and faster depletion rates * Mud production rates have been halved, to prevent currently working setups from exploding instantly * This is your reminder that you can achieve more power, mud and depletion by building larger watz powerplants, i.e. stacking more watz segments on top of each other. Your tiny poo reactors make me sick. * Watz pellets now have a 50% smaller yield, halving the expected time until depletion * Adjusted the nuclear flash's intensity, the flash will now deal less and less radiation the longer it goes on * The nuclear flash now bypasses radiation resistance, being only affected by blocks and distance +* Mushroom clouds' initial scale is now based on the total scale instead of all spawning roughly at the same size, causing fireballs to be comically small for huge bombs ## Fixed * Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 24fef696d..613279cd8 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1776,7 +1776,7 @@ public class ModBlocks { sand_dirty_red = new BlockFalling(Material.sand).setBlockName("sand_dirty_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_dirty_red"); stone_cracked = new BlockFalling(Material.rock).setBlockName("stone_cracked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":stone_cracked"); - sellafield_slaked = new BlockGeneric(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); + sellafield_slaked = new BlockSellafieldSlaked(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); sellafield = new BlockSellafield(Material.rock).setBlockName("sellafield").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); /*sellafield_0 = new BlockHazard(Material.rock).setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); sellafield_1 = new BlockHazard(Material.rock).setBlockName("sellafield_1").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_1"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java new file mode 100644 index 000000000..d30efb41a --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java @@ -0,0 +1,53 @@ +package com.hbm.blocks.generic; + +import java.awt.Color; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockSellafieldSlaked extends Block { + + public IIcon[] icons; + + public BlockSellafieldSlaked(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; + l = l * l * 42317861L + l * 11L; + int i = (int)(l >> 16 & 3L); + return icons[(int)(Math.abs(i) % icons.length)]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[meta % icons.length]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons = new IIcon[4]; + icons[0] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked"); + icons[1] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_1"); + icons[2] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_2"); + icons[3] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_3"); + } + + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + return Color.HSBtoRGB(0F, 0F, 1F - meta / 15F); + } +} diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index de787053b..5c59d3a83 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -69,26 +69,29 @@ public class FalloutConfigJSON { /* destroy all leaves within the radios, kill all leaves outside of it */ entries.add(new FalloutEntry() .mMa(Material.leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mMa(Material.plants) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mMa(Material.vine) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(ModBlocks.waste_leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); - - entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.sellafield_slaked, 0, 1)).max(35).sol(true).mMa(Material.ground)); - - //FalloutEntry stoneCore = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield, 1, 1)).max(5).sol(true); - //FalloutEntry stoneInner = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield, 0, 1)).min(5).max(15).sol(true); - FalloutEntry stoneOuter = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield_slaked, 0, 1)).max(50).sol(true); + entries.add(new FalloutEntry().mB(Blocks.mossy_cobblestone).prim(new Triplet(Blocks.coal_ore, 0, 1))); + entries.add(new FalloutEntry().mB(Blocks.coal_ore).prim(new Triplet(Blocks.diamond_ore, 0, 3), new Triplet(Blocks.emerald_ore, 0, 2)).c(0.5)); + entries.add(new FalloutEntry().mB(ModBlocks.ore_lignite).prim(new Triplet(Blocks.diamond_ore, 0, 1)).c(0.2)); + entries.add(new FalloutEntry().mB(ModBlocks.ore_uranium).prim(new Triplet(ModBlocks.ore_schrabidium, 0, 1), new Triplet(ModBlocks.ore_uranium_scorched, 0, 99))); + entries.add(new FalloutEntry().mB(ModBlocks.ore_nether_uranium).prim(new Triplet(ModBlocks.ore_nether_schrabidium, 0, 1), new Triplet(ModBlocks.ore_nether_uranium_scorched, 0, 99))); + entries.add(new FalloutEntry().mB(ModBlocks.ore_gneiss_uranium).prim(new Triplet(ModBlocks.ore_gneiss_schrabidium, 0, 1), new Triplet(ModBlocks.ore_gneiss_uranium_scorched, 0, 99))); - //entries.add(stoneCore.clone().mB(Blocks.stone)); - //entries.add(stoneInner.clone().mB(Blocks.stone)); - entries.add(stoneOuter.clone().mB(Blocks.stone)); - //entries.add(stoneCore.clone().mB(Blocks.gravel)); - //entries.add(stoneInner.clone().mB(Blocks.gravel)); - entries.add(stoneOuter.clone().mB(Blocks.gravel)); - /* recontaminate slaked sellafield */ - //entries.add(stoneCore.clone().mB(ModBlocks.sellafield_slaked)); - //entries.add(stoneInner.clone().mB(ModBlocks.sellafield_slaked)); + Block deepslate = Compat.tryLoadBlock(Compat.MOD_EF, "deepslate"); + Block stone = Compat.tryLoadBlock(Compat.MOD_EF, "stone"); + + for(int i = 1; i <= 10; i++) { + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.rock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mB(Blocks.gravel)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.ground)); + if(i <= 9) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.grass)); + if(deepslate != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mB(deepslate)); + if(stone != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mB(stone)); + } //entries.add(new FalloutEntry().mB(Blocks.grass).prim(new Triplet(ModBlocks.waste_earth, 0, 1))); entries.add(new FalloutEntry() @@ -105,40 +108,6 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry() .mB(Blocks.clay) .prim(new Triplet(Blocks.hardened_clay, 0, 1))); - entries.add(new FalloutEntry() - .mB(Blocks.mossy_cobblestone) - .prim(new Triplet(Blocks.coal_ore, 0, 1))); - entries.add(new FalloutEntry() - .mB(Blocks.coal_ore) - .prim(new Triplet(Blocks.diamond_ore, 0, 3), new Triplet(Blocks.emerald_ore, 0, 2)) - .c(0.5)); - entries.add(new FalloutEntry() - .mB(ModBlocks.ore_lignite) - .prim(new Triplet(Blocks.diamond_ore, 0, 1)) - .c(0.2)); - entries.add(new FalloutEntry() - .mB(ModBlocks.ore_uranium) - .prim(new Triplet(ModBlocks.ore_schrabidium, 0, 1), new Triplet(ModBlocks.ore_uranium_scorched, 0, 99))); - entries.add(new FalloutEntry() - .mB(ModBlocks.ore_nether_uranium) - .prim(new Triplet(ModBlocks.ore_nether_schrabidium, 0, 1), new Triplet(ModBlocks.ore_nether_uranium_scorched, 0, 99))); - entries.add(new FalloutEntry() - .mB(ModBlocks.ore_gneiss_uranium) - .prim(new Triplet(ModBlocks.ore_gneiss_schrabidium, 0, 1), new Triplet(ModBlocks.ore_gneiss_uranium_scorched, 0, 99))); - - /// COMPAT /// - Block deepslate = Compat.tryLoadBlock(Compat.MOD_EF, "deepslate"); - if(deepslate != null) { //identical to stone - //entries.add(stoneCore.clone().mB(deepslate)); - //entries.add(stoneInner.clone().mB(deepslate)); - entries.add(stoneOuter.clone().mB(deepslate)); - } - Block stone = Compat.tryLoadBlock(Compat.MOD_EF, "stone"); - if(stone != null) { //identical to stone - //entries.add(stoneCore.clone().mB(stone)); - //entries.add(stoneInner.clone().mB(stone)); - entries.add(stoneOuter.clone().mB(stone)); - } } private static void writeDefault(File file) { diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 2ce57ccfe..bcc6cd6b3 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -115,7 +115,7 @@ public class EntityFalloutRain extends Entity { public static BiomeGenBase getBiomeChange(double dist, int scale) { if(scale >= 150 && dist < 15) return BiomeGenCraterBase.craterInnerBiome; - if(scale >= 100 && dist < 50) return BiomeGenCraterBase.craterBiome; + if(scale >= 100 && dist < 55) return BiomeGenCraterBase.craterBiome; if(scale >= 25) return BiomeGenCraterBase.craterOuterBiome; return null; } @@ -183,10 +183,6 @@ public class EntityFalloutRain extends Entity { for(FalloutEntry entry : FalloutConfigJSON.entries) { - if(b == Blocks.grass) { - break; - } - if(entry.eval(worldObj, x, y, z, b, meta, dist)) { if(entry.isSolid()) { depth++; diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 56f2a9f67..0ded68a02 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -59,6 +59,8 @@ public class EntityNukeTorex extends Entity { if(worldObj.isRemote) { + if(ticksExisted == 1) this.setScale((float) s); + if(lastSpawnY == -1) { lastSpawnY = posY - 3; } @@ -82,7 +84,7 @@ public class EntityNukeTorex extends Entity { double x = posX + rand.nextGaussian() * range; double z = posZ + rand.nextGaussian() * range; Cloudlet cloud = new Cloudlet(x, lastSpawnY, z, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime); - cloud.setScale(1F + this.ticksExisted * 0.005F * (float) cs, 5F * (float) cs); + cloud.setScale(1F + this.ticksExisted * 0.005F * (float) s, 5F * (float) cs); cloudlets.add(cloud); } @@ -104,13 +106,44 @@ public class EntityNukeTorex extends Entity { // spawn ring clouds if(ticksExisted < 200) { + lifetime *= s; for(int i = 0; i < 2; i++) { Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); - cloud.setScale(1F + this.ticksExisted * 0.005F * (float) cs * 0.5F, 3F * (float) (cs * s)); + cloud.setScale(1F + this.ticksExisted * 0.0025F * (float) (cs * s), 3F * (float) (cs * s)); cloudlets.add(cloud); } } + // spawn condensation clouds + if(ticksExisted > 200 && ticksExisted < 600) { + + for(int i = 0; i < 50; i++) { + for(int j = 0; j < 4; j++) { + float angle = (float) (Math.PI * 2 * rand.nextDouble()); + Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * 3, 0, 0); + vec.rotateAroundZ((float) (Math.PI / 45 * j)); + vec.rotateAroundY(angle); + Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight - 5 + j * s, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); + cloud.setScale(0.125F * (float) (cs * s), 3F * (float) (cs * s)); + cloudlets.add(cloud); + } + } + } + if(ticksExisted > 300 && ticksExisted < 600) { + + for(int i = 0; i < 50; i++) { + for(int j = 0; j < 4; j++) { + float angle = (float) (Math.PI * 2 * rand.nextDouble()); + Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * 2, 0, 0); + vec.rotateAroundZ((float) (Math.PI / 45 * j)); + vec.rotateAroundY(angle); + Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight + 25 + j * s, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); + cloud.setScale(0.125F * (float) (cs * s), 3F * (float) (cs * s)); + cloudlets.add(cloud); + } + } + } + for(Cloudlet cloud : cloudlets) { cloud.update(); } @@ -131,7 +164,7 @@ public class EntityNukeTorex extends Entity { } public EntityNukeTorex setScale(float scale) { - getDataWatcher().updateObject(10, scale); + if(!worldObj.isRemote) getDataWatcher().updateObject(10, scale); this.coreHeight = this.coreHeight / 1.5D * scale; this.convectionHeight = this.convectionHeight / 1.5D * scale; this.torusWidth = this.torusWidth / 1.5D * scale; @@ -270,6 +303,11 @@ public class EntityNukeTorex extends Entity { this.motionX = motion.xCoord; this.motionY = motion.yCoord; this.motionZ = motion.zCoord; + } else if(this.type == TorexType.CONDENSATION) { + Vec3 motion = getCondensationMotion(); + this.motionX = motion.xCoord; + this.motionY = motion.yCoord; + this.motionZ = motion.zCoord; } double mult = this.motionMult * getSimulationSpeed(); @@ -281,6 +319,15 @@ public class EntityNukeTorex extends Entity { this.updateColor(); } + private Vec3 getCondensationMotion() { + Vec3 delta = Vec3.createVectorHelper(posX - EntityNukeTorex.this.posX, 0, posZ - EntityNukeTorex.this.posZ); + double speed = 0.00002 * EntityNukeTorex.this.getScale() * EntityNukeTorex.this.ticksExisted; + delta.xCoord *= speed; + //delta.yCoord *= speed * 0.75 * EntityNukeTorex.this.getScale(); + delta.zCoord *= speed; + return delta; + } + private Vec3 getRingMotion(double simPosX, double simPosZ) { /*Vec3 targetPos = Vec3.createVectorHelper( @@ -440,6 +487,11 @@ public class EntityNukeTorex extends Entity { } public Vec3 getInterpColor(float interp) { + + if(this.type == TorexType.CONDENSATION) { + return Vec3.createVectorHelper(1F, 1F, 1F); + } + double greying = EntityNukeTorex.this.getGreying(); if(this.type == TorexType.RING) { @@ -453,7 +505,9 @@ public class EntityNukeTorex extends Entity { } public float getAlpha() { - return (1F - ((float)age / (float)cloudletLife)) * EntityNukeTorex.this.getAlpha(); + float alpha = (1F - ((float)age / (float)cloudletLife)) * EntityNukeTorex.this.getAlpha(); + if(this.type == TorexType.CONDENSATION) alpha *= 0.25; + return alpha; } private float startingScale = 1; @@ -479,7 +533,8 @@ public class EntityNukeTorex extends Entity { public static enum TorexType { STANDARD, - RING + RING, + CONDENSATION } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 05f3e197f..01eecea43 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,7 +2,9 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; +import com.hbm.util.TrackerUtil; import com.hbm.world.WorldUtil; import com.hbm.world.biome.BiomeGenCraterBase; @@ -47,13 +49,13 @@ public class ItemWandD extends Item { data.dust = 0F; data.markDirty();*/ - for(int i = -5; i <= 5; i++) { + /*for(int i = -5; i <= 5; i++) { for(int j = -5; j <= 5; j++) { WorldUtil.setBiome(world, pos.blockX + i, pos.blockZ + j, BiomeGenCraterBase.craterBiome); } } - WorldUtil.syncBiomeChange(world, pos.blockX, pos.blockZ); + WorldUtil.syncBiomeChange(world, pos.blockX, pos.blockZ);*/ /*EntityTomBlast tom = new EntityTomBlast(world); tom.posX = pos.blockX; @@ -62,12 +64,11 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - /*EntityNukeTorex torex = new EntityNukeTorex(world); + EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); torex.setScale(1.5F); - torex.setType(1); world.spawnEntityInWorld(torex); - TrackerUtil.setTrackingRange(world, torex, 1000);*/ + TrackerUtil.setTrackingRange(world, torex, 1000); /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index e90761d3e..10094d1ad 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -138,7 +138,7 @@ public class RenderTorex extends Render { float f4 = ActiveRenderInfo.rotationXY; float f5 = ActiveRenderInfo.rotationXZ; - float brightness = 0.75F * cloud.colorMod; + float brightness = cloud.type == cloud.type.CONDENSATION ? 0.9F : 0.75F * cloud.colorMod; Vec3 color = cloud.getInterpColor(interp); tess.setColorRGBA_F((float)color.xCoord * brightness, (float)color.yCoord * brightness, (float)color.zCoord * brightness, alpha); diff --git a/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java b/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java index 6f3afd39a..467ee78ef 100644 --- a/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java +++ b/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java @@ -6,6 +6,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.BiomeDictionary; + import static net.minecraftforge.common.BiomeDictionary.Type.*; public class BiomeGenCraterBase extends BiomeGenBase { @@ -20,6 +21,10 @@ public class BiomeGenCraterBase extends BiomeGenBase { BiomeDictionary.registerBiomeType(craterOuterBiome, DRY, DEAD, WASTELAND); } + public int getWaterColorMultiplier() { + return 0x505020; //0x50d030 + } + public BiomeGenCraterBase(int id) { super(id); this.waterColorMultiplier = 0xE0FFAE; //swamp color diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_1.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_1.png new file mode 100644 index 0000000000000000000000000000000000000000..32bd9afb47479dd98c8084895817f3e5f31b962b GIT binary patch literal 750 zcmVW}$crdUvb4&OPVr8in<$D{EEYWb`YRUm1-D_J@>YE<@NnM# z^(O$v7?e_o2-Rwp+uINkp;@ot`#z&^fTKO4C_+6y=>QOfcRbpxP_6HNinJE$_xs!g zJ&Z8`+<%Xz0g%h(ct4qPKk4B7@cnmo zyi9Oimv*}iz`OI;Jg(F*#$c_@1ObvHVXK&9ct7JNxJJ!Ip|!?Z3qZf$=Yh*{=ZKS| zV{V6iT-RkIr`Rgy0Js|sXdixoYmA}u>)mr16o}SuxF(DWP)OYp~k?eu%y4n0+u({mYMVh9#)>=g6sMhxYXti4F zUkL(4gze1|0BXWH;4$ozWj}M=dYPg#_YBZ5fS`eFSDH_ zNe1=8zs7nc)ND3mHlOn1#ZOpk$rnGP-q@$}^h*Frn-v~cw%I6GNs@$vgM)PkOkrK5 z&XYqf|Gpw$+{m&&0lu|g3 zLpT~S8V2MGC6rQFYne|!(%SzV90#p6JC!o(CJb?17vJ{@x|jc>-e|V*JP*(FP)e~; g-pX7WW0=RnzmG;vjW=2QE&u=k07*qoM6N<$f@RfTGynhq literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_2.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_2.png new file mode 100644 index 0000000000000000000000000000000000000000..32f32cfa3d48a6b9d7e6b131a5e522fa9d3d7e92 GIT binary patch literal 783 zcmV+q1MvKbP)1Pwd5#c*q9};t7^M{Z-5#YCzVIn#1xb=1 zJb~z}lY)#r^u8)9J+V`N(ef zowjZ9T#waiMQ1G{PjmkM@`b)1u(l)1a$Zg^c%Da9*8oIeh%W?6YpS}YC<^MjX0ccx z0NS?2T8lP@&RU`{B+GKnN9Sm*+3)vgV=%^$XE{yNFquqve0ap0PA8v(Amoqt?{OT5 zrmnHCuPl}e>bgcNO`hkJWl7g{xUP%QhL>Nz&{`t~;QHe=4-XI2RZSGdbhbk&g;tuX zlJxyR5+`(Ri>xHFl3a{0Xj_B0zP?5&h0%sAOL1Kftrd@tkHk@g5dK>#iR*b>&Snh# zfUG286d|6UpUKl4rPW(kL6+qJIIjC9(t_hKD`o^?fa|)XNs1o`{s+|iht~Ja&IJGf N002ovPDHLkV1hTPY32X` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_3.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_3.png new file mode 100644 index 0000000000000000000000000000000000000000..834cb05fd04b62b3a0a6c4fec2e764547f5298b8 GIT binary patch literal 704 zcmV;x0zdtUP)Zdy}gAj%jo-_-``&VwANg&SBjz_%QB)UB7{Jm=QK^j`Fti#Q(j+RQN|d) zzP^~I3GY2Z2%K|F(?lG{NGTb|k#QW6Qc@HJ!!Xcw9c|m9K0ZDOArL|!%Q67^zGs>y z@;pZ=g_M%M@44M>SZit9mJkAe{`^5X=U6V67-Ik!hJmsynWkx8r4++35JKQ|I^n%1 z&vT@dh&YZ(l7znRNz;_|dd+IJ!dgpNmaJAQlu{UDsOuUb1VRYLam0I%+U<7ypJ|%7 zUawedXYRw{fOC$bC`i*3=N!fuk|e=ei?G(>y`R~=_e4=d9LIcqev;=oRaMdVJyJ^I zIA*a};JrsmiE5e#r4-XNp|vK8A|8(iLI^gS4Y%8kaU7|tiYSVZQvP#aDPCS)P(la* zq?Bl_ky3KM-zm$IEXxQXa6X@Te}5-UQ{p&gyWL`~1wd`LTcniKb Date: Wed, 10 Jan 2024 16:12:22 +0100 Subject: [PATCH 072/376] fixes, radiation config for crater biome --- changelog | 2 ++ src/main/java/com/hbm/config/WorldConfig.java | 14 +++++++--- .../com/hbm/handler/EntityEffectHandler.java | 26 +++++++++++++++++++ .../java/com/hbm/hazard/HazardRegistry.java | 23 ++++++++++++++++ 4 files changed, 62 insertions(+), 3 deletions(-) diff --git a/changelog b/changelog index 8e9ac0516..4add55244 100644 --- a/changelog +++ b/changelog @@ -2,6 +2,7 @@ * Nuclear craters have been reworked * The fallout effect no longer creates dead grass, instead it converts the area into three new biomes, the outer crater, crater and inner crater * The entire crater is now slaked sellafite which now has texture variance to look more like debris, as well as getting darker towards the center + * The biomes being overridden means that nukes are now a solution to thaumcraft taint. Yay! * The watz now cools up to 20% of its current heat level instead of 10%, making reactors a lot cooler and therefore react faster, which means more energy and faster depletion rates * Mud production rates have been halved, to prevent currently working setups from exploding instantly * This is your reminder that you can achieve more power, mud and depletion by building larger watz powerplants, i.e. stacking more watz segments on top of each other. Your tiny poo reactors make me sick. @@ -12,3 +13,4 @@ ## Fixed * Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes +* Fixed PWR fuel rods not having any radiation value assigned to them diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 30b356306..4aa3068b1 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -111,6 +111,10 @@ public class WorldConfig { public static int craterBiomeId = 80; public static int craterBiomeInnerId = 81; public static int craterBiomeOuterId = 82; + public static float craterBiomeRad = 5F; + public static float craterBiomeInnerRad = 25F; + public static float craterBiomeOuterRad = 0.5F; + public static float craterBiomeWaterMult = 5F; public static void loadFromConfig(Configuration config) { @@ -223,9 +227,13 @@ public class WorldConfig { meteorShowerDuration = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.05_meteorShowerDuration", "Max duration of meteor shower in ticks", 20 * 60 * 30); final String CATEGORY_BIOMES = CommonConfig.CATEGORY_BIOMES; - craterBiomeId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.00_craterBiomeId", "The numeric ID for the crater biome", 80); - craterBiomeInnerId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.01_craterBiomeInnerId", "The numeric ID for the inner crater biome", 81); - craterBiomeOuterId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.02_craterBiomeOuterId", "The numeric ID for the outer crater biome", 82); + craterBiomeId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.B00_craterBiomeId", "The numeric ID for the crater biome", 80); + craterBiomeInnerId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.B01_craterBiomeInnerId", "The numeric ID for the inner crater biome", 81); + craterBiomeOuterId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.B02_craterBiomeOuterId", "The numeric ID for the outer crater biome", 82); + craterBiomeRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_METEOR, "17.R00_craterBiomeRad", "RAD/s for the crater biome", 0.5D); + craterBiomeInnerRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_METEOR, "17.R01_craterBiomeInnerRad", "RAD/s for the inner crater biome", 5D); + craterBiomeOuterRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_METEOR, "17.R02_craterBiomeOuterRad", "RAD/s for the outer crater biome", 25D); + craterBiomeWaterMult = (float) CommonConfig.createConfigDouble(config, CATEGORY_METEOR, "17.R03_craterBiomeWaterMult", "Multiplier for RAD/s in crater biomes when in water", 5D); radioStructure = CommonConfig.setDefZero(radioStructure, 1000); antennaStructure = CommonConfig.setDefZero(antennaStructure, 1000); diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 296724e2d..b9ec033e7 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.config.BombConfig; import com.hbm.config.GeneralConfig; import com.hbm.config.RadiationConfig; +import com.hbm.config.WorldConfig; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; @@ -30,6 +31,7 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; +import com.hbm.world.biome.BiomeGenCraterBase; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; @@ -48,6 +50,7 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; public class EntityEffectHandler { @@ -57,6 +60,17 @@ public class EntityEffectHandler { HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity)); HbmLivingProps.setRadEnv(entity, 0); } + + if(entity instanceof EntityPlayer && entity == MainRegistry.proxy.me()) { + EntityPlayer player = MainRegistry.proxy.me(); + if(player != null) { + BiomeGenBase biome = player.worldObj.getBiomeGenForCoords((int) Math.floor(player.posX), (int) Math.floor(player.posZ)); + if(biome == BiomeGenCraterBase.craterBiome || biome == BiomeGenCraterBase.craterInnerBiome) { + Random rand = player.getRNG(); + for(int i = 0; i < 3; i++) player.worldObj.spawnParticle("townaura", player.posX + rand.nextGaussian() * 3, player.posY + rand.nextGaussian() * 2, player.posZ + rand.nextGaussian() * 3, 0, 0, 0); + } + } + } if(entity instanceof EntityPlayerMP) { HbmLivingProps props = HbmLivingProps.getData(entity); @@ -89,6 +103,18 @@ public class EntityEffectHandler { if(GeneralConfig.enable528 && entity instanceof EntityLivingBase && !entity.isImmuneToFire() && entity.worldObj.provider.isHellWorld) { entity.setFire(5); } + + BiomeGenBase biome = entity.worldObj.getBiomeGenForCoords((int) Math.floor(entity.posX), (int) Math.floor(entity.posZ)); + float radiation = 0; + if(biome == BiomeGenCraterBase.craterOuterBiome) radiation = WorldConfig.craterBiomeOuterRad; + if(biome == BiomeGenCraterBase.craterBiome) radiation = WorldConfig.craterBiomeRad; + if(biome == BiomeGenCraterBase.craterInnerBiome) radiation = WorldConfig.craterBiomeInnerRad; + + if(entity.isWet()) radiation *= WorldConfig.craterBiomeWaterMult; + + if(radiation > 0) { + ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, radiation / 20F); + } } handleContamination(entity); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index b670bfde7..4b0476d24 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -13,6 +13,7 @@ import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.material.MaterialShapes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; @@ -442,6 +443,22 @@ public class HazardRegistry { HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.DU), makeData(RADIATION, u238 * ingot * 4)); HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.NQD), makeData(RADIATION, u235 * ingot * 4)); HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.NQR), makeData(RADIATION, pu239 * ingot * 4)); + + registerPWRFuel(EnumPWRFuel.MEU, uf * billet * 2); + registerPWRFuel(EnumPWRFuel.HEU233, u233 * billet * 2); + registerPWRFuel(EnumPWRFuel.HEU235, u235 * billet * 2); + registerPWRFuel(EnumPWRFuel.MEN, npf * billet * 2); + registerPWRFuel(EnumPWRFuel.HEN237, np237 * billet * 2); + registerPWRFuel(EnumPWRFuel.MOX, mox * billet * 2); + registerPWRFuel(EnumPWRFuel.MEP, purg * billet * 2); + registerPWRFuel(EnumPWRFuel.HEP239, pu239 * billet * 2); + registerPWRFuel(EnumPWRFuel.HEP241, pu241 * billet * 2); + registerPWRFuel(EnumPWRFuel.MEA, amrg * billet * 2); + registerPWRFuel(EnumPWRFuel.HEA242, am242 * billet * 2); + registerPWRFuel(EnumPWRFuel.HES326, sa326 * billet * 2); + registerPWRFuel(EnumPWRFuel.HES327, sa327 * billet * 2); + registerPWRFuel(EnumPWRFuel.BFB_AM_MIX, amrg * billet); + registerPWRFuel(EnumPWRFuel.BFB_PU241, pu241 * billet); HazardSystem.register(powder_yellowcake, makeData(RADIATION, yc * powder)); HazardSystem.register(block_yellowcake, makeData(RADIATION, yc * block * powder_mult)); @@ -535,6 +552,12 @@ public class HazardRegistry { private static HazardData makeData(HazardTypeBase hazard, float level) { return new HazardData().addEntry(hazard, level); } private static HazardData makeData(HazardTypeBase hazard, float level, boolean override) { return new HazardData().addEntry(hazard, level, override); } + private static void registerPWRFuel(EnumPWRFuel fuel, float baseRad) { + HazardSystem.register(DictFrame.fromOne(ModItems.pwr_fuel, fuel), makeData(RADIATION, baseRad)); + HazardSystem.register(DictFrame.fromOne(ModItems.pwr_fuel_hot, fuel), makeData(RADIATION, baseRad * 10).addEntry(HOT, 5)); + HazardSystem.register(DictFrame.fromOne(ModItems.pwr_fuel_depleted, fuel), makeData(RADIATION, baseRad * 10)); + } + private static void registerRBMKPellet(Item pellet, float base, float dep) { registerRBMKPellet(pellet, base, dep, false, 0F, 0F); } private static void registerRBMKPellet(Item pellet, float base, float dep, boolean linear) { registerRBMKPellet(pellet, base, dep, linear, 0F, 0F); } private static void registerRBMKPellet(Item pellet, float base, float dep, boolean linear, float blinding, float digamma) { From 3dcf5a8e4784df304e861004b548d3fff4dc9675 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 10 Jan 2024 20:48:34 +0100 Subject: [PATCH 073/376] killed useless blocks, sellafite ores --- changelog | 3 + src/main/java/com/hbm/blocks/ModBlocks.java | 40 +- .../com/hbm/blocks/generic/BlockCrate.java | 3 +- .../blocks/generic/BlockSellafieldOre.java | 93 ++++ .../hbm/blocks/machine/DummyBlockDrill.java | 61 --- .../blocks/machine/MachineMiningDrill.java | 232 -------- .../com/hbm/config/FalloutConfigJSON.java | 7 +- src/main/java/com/hbm/config/WorldConfig.java | 14 +- .../hbm/entity/effect/EntityNukeTorex.java | 4 +- .../ContainerMachineMiningDrill.java | 116 ---- .../inventory/gui/GUIMachineMiningDrill.java | 69 --- .../com/hbm/items/special/ItemStarterKit.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 - src/main/java/com/hbm/main/MainRegistry.java | 6 + src/main/java/com/hbm/main/NEIConfig.java | 3 - .../com/hbm/packet/LoopedSoundPacket.java | 12 - .../java/com/hbm/packet/PacketDispatcher.java | 2 - .../java/com/hbm/packet/TEDrillPacket.java | 67 --- .../hbm/render/item/ItemRenderLibrary.java | 13 - .../render/tileentity/RenderMiningDrill.java | 68 --- .../java/com/hbm/sound/SoundLoopMiner.java | 39 -- .../java/com/hbm/tileentity/TileMappings.java | 1 - .../machine/TileEntityMachineMiningDrill.java | 495 ------------------ .../textures/blocks/ore_overlay_diamond.png | Bin 0 -> 212 bytes .../textures/blocks/ore_overlay_emerald.png | Bin 0 -> 143 bytes 25 files changed, 124 insertions(+), 1227 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java delete mode 100644 src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java delete mode 100644 src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java delete mode 100644 src/main/java/com/hbm/packet/TEDrillPacket.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java delete mode 100644 src/main/java/com/hbm/sound/SoundLoopMiner.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_overlay_diamond.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_overlay_emerald.png diff --git a/changelog b/changelog index 4add55244..ff00a3277 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,8 @@ * The fallout effect no longer creates dead grass, instead it converts the area into three new biomes, the outer crater, crater and inner crater * The entire crater is now slaked sellafite which now has texture variance to look more like debris, as well as getting darker towards the center * The biomes being overridden means that nukes are now a solution to thaumcraft taint. Yay! + * There are now new ore variants for the block conversions which match the surrounding sellafite + * Berylliumm ore now has a 100% chance of being converted into emerald * The watz now cools up to 20% of its current heat level instead of 10%, making reactors a lot cooler and therefore react faster, which means more energy and faster depletion rates * Mud production rates have been halved, to prevent currently working setups from exploding instantly * This is your reminder that you can achieve more power, mud and depletion by building larger watz powerplants, i.e. stacking more watz segments on top of each other. Your tiny poo reactors make me sick. @@ -10,6 +12,7 @@ * Adjusted the nuclear flash's intensity, the flash will now deal less and less radiation the longer it goes on * The nuclear flash now bypasses radiation resistance, being only affected by blocks and distance * Mushroom clouds' initial scale is now based on the total scale instead of all spawning roughly at the same size, causing fireballs to be comically small for huge bombs +* Removed the old mining drill for good ## Fixed * Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 613279cd8..5b304c9ce 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -534,12 +534,8 @@ public class ModBlocks { public static Block sellafield_slaked; public static Block sellafield; - /*public static Block sellafield_0; - public static Block sellafield_1; - public static Block sellafield_2; - public static Block sellafield_3; - public static Block sellafield_4; - public static Block sellafield_core;*/ + public static Block ore_sellafield_diamond; + public static Block ore_sellafield_emerald; public static Block geysir_water; public static Block geysir_chlorine; @@ -783,8 +779,6 @@ public class ModBlocks { public static Block capacitor_tantalium; public static Block capacitor_schrabidate; - @Deprecated public static Block machine_coal_off; - @Deprecated public static Block machine_coal_on; public static Block machine_wood_burner; public static Block red_wire_coated; @@ -1035,10 +1029,7 @@ public class ModBlocks { public static Block machine_deaerator; public static final int guiID_machine_deaerator = 74; - public static Block machine_drill; - public static Block drill_pipe; public static Block machine_excavator; - public static Block machine_autosaw; public static Block machine_mining_laser; @@ -1260,8 +1251,6 @@ public class ModBlocks { public static Block volcano_core; - public static Block dummy_block_drill; - public static Block dummy_port_drill; public static Block dummy_block_ams_limiter; public static Block dummy_port_ams_limiter; public static Block dummy_block_ams_emitter; @@ -1778,12 +1767,8 @@ public class ModBlocks { sellafield_slaked = new BlockSellafieldSlaked(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); sellafield = new BlockSellafield(Material.rock).setBlockName("sellafield").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); - /*sellafield_0 = new BlockHazard(Material.rock).setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); - sellafield_1 = new BlockHazard(Material.rock).setBlockName("sellafield_1").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_1"); - sellafield_2 = new BlockHazard(Material.rock).setBlockName("sellafield_2").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_2"); - sellafield_3 = new BlockHazard(Material.rock).setBlockName("sellafield_3").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_3"); - sellafield_4 = new BlockHazard(Material.rock).setBlockName("sellafield_4").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_4"); - sellafield_core = new BlockHazard(Material.rock).setBlockName("sellafield_core").setStepSound(Block.soundTypeStone).setHardness(10.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_core");*/ + ore_sellafield_diamond = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_diamond").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_diamond"); + ore_sellafield_emerald = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_emerald").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_emerald"); geysir_water = new BlockGeysir(Material.rock).setBlockName("geysir_water").setStepSound(Block.soundTypeStone).setHardness(5.0F); geysir_chlorine = new BlockGeysir(Material.rock).setBlockName("geysir_chlorine").setStepSound(Block.soundTypeStone).setHardness(5.0F); @@ -1948,10 +1933,7 @@ public class ModBlocks { capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); - machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); - machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); machine_wood_burner = new MachineWoodBurner(Material.iron).setBlockName("machine_wood_burner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_diesel = new MachineDiesel().setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_combustion_engine = new MachineCombustionEngine().setBlockName("machine_combustion_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2295,9 +2277,7 @@ public class ModBlocks { machine_catalytic_reformer = new MachineCatalyticReformer(Material.iron).setBlockName("machine_catalytic_reformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_coker = new MachineCoker(Material.iron).setBlockName("machine_coker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_autosaw = new MachineAutosaw().setBlockName("machine_autosaw").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_drill"); machine_excavator = new MachineExcavator().setBlockName("machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - drill_pipe = new BlockNoDrop(Material.iron).setBlockName("drill_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":drill_pipe"); machine_mining_laser = new MachineMiningLaser(Material.iron).setBlockName("machine_mining_laser").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_mining_laser"); barricade = new BlockNoDrop(Material.sand).setBlockName("barricade").setHardness(1.0F).setResistance(2.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barricade"); machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler"); @@ -2446,8 +2426,6 @@ public class ModBlocks { Fluid liquidConcrete = new GenericFluid("concrete_liquid").setViscosity(2000); concrete_liquid = new GenericFiniteFluid(liquidConcrete, Material.rock, "concrete_liquid", "concrete_liquid_flowing").setQuantaPerBlock(4).setBlockName("concrete_liquid").setResistance(500F); - dummy_block_drill = new DummyBlockDrill(Material.iron, false).setBlockName("dummy_block_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead"); - dummy_port_drill = new DummyBlockDrill(Material.iron, true).setBlockName("dummy_port_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead"); dummy_block_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_block_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); dummy_port_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_port_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); dummy_block_ams_emitter = new DummyBlockAMSEmitter(Material.iron).setBlockName("dummy_block_ams_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); @@ -2975,7 +2953,9 @@ public class ModBlocks { GameRegistry.registerBlock(impact_dirt, impact_dirt.getUnlocalizedName()); //RAD - GameRegistry.registerBlock(sellafield_slaked, sellafield_slaked.getUnlocalizedName()); + register(sellafield_slaked); + register(ore_sellafield_diamond); + register(ore_sellafield_emerald); GameRegistry.registerBlock(sellafield, ItemBlockNamedMeta.class, sellafield.getUnlocalizedName()); //Geysirs @@ -3184,8 +3164,6 @@ public class ModBlocks { GameRegistry.registerBlock(machine_nuke_furnace_on, machine_nuke_furnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_rtg_furnace_off, machine_rtg_furnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_rtg_furnace_on, machine_rtg_furnace_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_coal_off, machine_coal_off.getUnlocalizedName()); - GameRegistry.registerBlock(machine_coal_on, machine_coal_on.getUnlocalizedName()); register(machine_wood_burner); register(machine_diesel); register(machine_selenium); @@ -3399,7 +3377,6 @@ public class ModBlocks { register(machine_catalytic_cracker); register(machine_catalytic_reformer); register(machine_coker); - register(machine_drill); register(machine_autosaw); register(machine_excavator); register(machine_mining_laser); @@ -3594,8 +3571,6 @@ public class ModBlocks { //GameRegistry.registerBlock(concrete_liquid, concrete_liquid.getUnlocalizedName()); //Multiblock Dummy Blocks - GameRegistry.registerBlock(dummy_block_drill, dummy_block_drill.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_drill, dummy_port_drill.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_ams_limiter, dummy_block_ams_limiter.getUnlocalizedName()); GameRegistry.registerBlock(dummy_port_ams_limiter, dummy_port_ams_limiter.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_ams_emitter, dummy_block_ams_emitter.getUnlocalizedName()); @@ -3614,7 +3589,6 @@ public class ModBlocks { //Other Technical Blocks GameRegistry.registerBlock(oil_pipe, oil_pipe.getUnlocalizedName()); - GameRegistry.registerBlock(drill_pipe, drill_pipe.getUnlocalizedName()); GameRegistry.registerBlock(vent_chlorine, vent_chlorine.getUnlocalizedName()); GameRegistry.registerBlock(vent_cloud, vent_cloud.getUnlocalizedName()); GameRegistry.registerBlock(vent_pink_cloud, vent_pink_cloud.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index 412b7ed2d..219d3d70a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -124,7 +124,7 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 9); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_reactor_breeding), 6); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 7); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_coal_off), 10); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_wood_burner), 10); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_selenium), 7); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4); @@ -134,7 +134,6 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembler), 10); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_drill), 4); BlockCrate.addToListWithWeight(metalList, ModItems.centrifuge_element, 6); BlockCrate.addToListWithWeight(metalList, ModItems.motor, 8); BlockCrate.addToListWithWeight(metalList, ModItems.coil_tungsten, 7); diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java new file mode 100644 index 000000000..6c17f2143 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java @@ -0,0 +1,93 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ModBlocks; +import com.hbm.render.block.RenderBlockMultipass; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; + +public class BlockSellafieldOre extends BlockSellafieldSlaked implements IBlockMultiPass { + + public BlockSellafieldOre(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(this.getTextureName()); + super.registerBlockIcons(reg); + } + + @Override + public int getRenderType() { + return IBlockMultiPass.getRenderType(); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + if(RenderBlockMultipass.currentPass == 1) return this.blockIcon; + return super.getIcon(world, x, y, z, side); + } + + @Override + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) { + if(RenderBlockMultipass.currentPass == 1) return 0xffffff; + return super.colorMultiplier(world, x, y, z); + } + + @Override + public int getPasses() { + return 2; + } + + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + if(this == ModBlocks.ore_sellafield_diamond) return Items.diamond; + if(this == ModBlocks.ore_sellafield_emerald) return Items.emerald; + return null; + } + + @Override + public int quantityDropped(Random rand) { + return 1; + } + + @Override + public int quantityDroppedWithBonus(int fortune, Random rand) { + if(fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(0, rand, fortune)) { + int j = rand.nextInt(fortune + 2) - 1; + if(j < 0) j = 0; + return this.quantityDropped(rand) * (j + 1); + } else { + return this.quantityDropped(rand); + } + } + + private Random rand = new Random(); + + @Override + public int getExpDrop(IBlockAccess world, int meta, int fortune) { + if(this.getItemDropped(meta, rand, fortune) != Item.getItemFromBlock(this)) { + int j1 = 0; + + if(this == ModBlocks.ore_sellafield_diamond) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); + if(this == ModBlocks.ore_sellafield_emerald) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); + + return j1; + } + return 0; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java b/src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java deleted file mode 100644 index 752120244..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hbm.blocks.machine; - - -import com.hbm.blocks.ModBlocks; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockDrill extends DummyOldBase { - - public DummyBlockDrill(Material p_i45386_1_, boolean port) { - super(p_i45386_1_, port); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.machine_drill); - } - - @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()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityMachineMiningDrill entity = (TileEntityMachineMiningDrill) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c); - } - } - return true; - } else { - return false; - } - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java b/src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java deleted file mode 100644 index c4aa5e156..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java +++ /dev/null @@ -1,232 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class MachineMiningDrill extends BlockContainer implements IMultiblock { - - public MachineMiningDrill(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineMiningDrill(); - - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.machine_drill); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if (i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_drill); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_drill); - TileEntity te2 = world.getTileEntity(x - 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_drill); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_drill); - TileEntity te2 = world.getTileEntity(x, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_drill); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_drill); - TileEntity te2 = world.getTileEntity(x - 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_drill); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_drill); - TileEntity te2 = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - } - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } -} diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index 5c59d3a83..f9ac9452d 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -75,8 +75,6 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); entries.add(new FalloutEntry().mB(Blocks.mossy_cobblestone).prim(new Triplet(Blocks.coal_ore, 0, 1))); - entries.add(new FalloutEntry().mB(Blocks.coal_ore).prim(new Triplet(Blocks.diamond_ore, 0, 3), new Triplet(Blocks.emerald_ore, 0, 2)).c(0.5)); - entries.add(new FalloutEntry().mB(ModBlocks.ore_lignite).prim(new Triplet(Blocks.diamond_ore, 0, 1)).c(0.2)); entries.add(new FalloutEntry().mB(ModBlocks.ore_uranium).prim(new Triplet(ModBlocks.ore_schrabidium, 0, 1), new Triplet(ModBlocks.ore_uranium_scorched, 0, 99))); entries.add(new FalloutEntry().mB(ModBlocks.ore_nether_uranium).prim(new Triplet(ModBlocks.ore_nether_schrabidium, 0, 1), new Triplet(ModBlocks.ore_nether_uranium_scorched, 0, 99))); entries.add(new FalloutEntry().mB(ModBlocks.ore_gneiss_uranium).prim(new Triplet(ModBlocks.ore_gneiss_schrabidium, 0, 1), new Triplet(ModBlocks.ore_gneiss_uranium_scorched, 0, 99))); @@ -85,8 +83,11 @@ public class FalloutConfigJSON { Block stone = Compat.tryLoadBlock(Compat.MOD_EF, "stone"); for(int i = 1; i <= 10; i++) { + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, 10 - i, 3), new Triplet(ModBlocks.ore_sellafield_emerald, 10 - i, 2)).c(0.5).max(i * 5).sol(true).mB(Blocks.coal_ore)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, 10 - i, 1)).c(0.2).max(i * 5).sol(true).mB(ModBlocks.ore_lignite)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_emerald, 10 - i, 1)).max(i * 5).sol(true).mB(ModBlocks.ore_beryllium)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.rock)); - entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mB(Blocks.gravel)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.sand)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.ground)); if(i <= 9) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.grass)); if(deepslate != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mB(deepslate)); diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 4aa3068b1..801563946 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -227,13 +227,13 @@ public class WorldConfig { meteorShowerDuration = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.05_meteorShowerDuration", "Max duration of meteor shower in ticks", 20 * 60 * 30); final String CATEGORY_BIOMES = CommonConfig.CATEGORY_BIOMES; - craterBiomeId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.B00_craterBiomeId", "The numeric ID for the crater biome", 80); - craterBiomeInnerId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.B01_craterBiomeInnerId", "The numeric ID for the inner crater biome", 81); - craterBiomeOuterId = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "17.B02_craterBiomeOuterId", "The numeric ID for the outer crater biome", 82); - craterBiomeRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_METEOR, "17.R00_craterBiomeRad", "RAD/s for the crater biome", 0.5D); - craterBiomeInnerRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_METEOR, "17.R01_craterBiomeInnerRad", "RAD/s for the inner crater biome", 5D); - craterBiomeOuterRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_METEOR, "17.R02_craterBiomeOuterRad", "RAD/s for the outer crater biome", 25D); - craterBiomeWaterMult = (float) CommonConfig.createConfigDouble(config, CATEGORY_METEOR, "17.R03_craterBiomeWaterMult", "Multiplier for RAD/s in crater biomes when in water", 5D); + craterBiomeId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B00_craterBiomeId", "The numeric ID for the crater biome", 80); + craterBiomeInnerId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B01_craterBiomeInnerId", "The numeric ID for the inner crater biome", 81); + craterBiomeOuterId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B02_craterBiomeOuterId", "The numeric ID for the outer crater biome", 82); + craterBiomeRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R00_craterBiomeRad", "RAD/s for the crater biome", 5D); + craterBiomeInnerRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R01_craterBiomeInnerRad", "RAD/s for the inner crater biome", 25D); + craterBiomeOuterRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R02_craterBiomeOuterRad", "RAD/s for the outer crater biome", 0.5D); + craterBiomeWaterMult = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R03_craterBiomeWaterMult", "Multiplier for RAD/s in crater biomes when in water", 5D); radioStructure = CommonConfig.setDefZero(radioStructure, 1000); antennaStructure = CommonConfig.setDefZero(antennaStructure, 1000); diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 0ded68a02..8959e0685 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -117,7 +117,7 @@ public class EntityNukeTorex extends Entity { // spawn condensation clouds if(ticksExisted > 200 && ticksExisted < 600) { - for(int i = 0; i < 50; i++) { + for(int i = 0; i < 20; i++) { for(int j = 0; j < 4; j++) { float angle = (float) (Math.PI * 2 * rand.nextDouble()); Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * 3, 0, 0); @@ -131,7 +131,7 @@ public class EntityNukeTorex extends Entity { } if(ticksExisted > 300 && ticksExisted < 600) { - for(int i = 0; i < 50; i++) { + for(int i = 0; i < 20; i++) { for(int j = 0; j < 4; j++) { float angle = (float) (Math.PI * 2 * rand.nextDouble()); Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * 2, 0, 0); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java b/src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java deleted file mode 100644 index 4bc3aa5c0..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -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.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineMiningDrill extends Container { - -private TileEntityMachineMiningDrill nukeBoy; - - private int warning; - - public ContainerMachineMiningDrill(InventoryPlayer invPlayer, TileEntityMachineMiningDrill tedf) { - - nukeBoy = tedf; - - //Battery - this.addSlotToContainer(new Slot(tedf, 0, 44, 53)); - //Outputs - this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 98, 17)); - this.addSlotToContainer(new Slot(tedf, 3, 116, 17)); - this.addSlotToContainer(new Slot(tedf, 4, 80, 35)); - this.addSlotToContainer(new Slot(tedf, 5, 98, 35)); - this.addSlotToContainer(new Slot(tedf, 6, 116, 35)); - this.addSlotToContainer(new Slot(tedf, 7, 80, 53)); - this.addSlotToContainer(new Slot(tedf, 8, 98, 53)); - this.addSlotToContainer(new Slot(tedf, 9, 116, 53)); - //Upgrades - this.addSlotToContainer(new Slot(tedf, 10, 152, 17)); - this.addSlotToContainer(new Slot(tedf, 11, 152, 35)); - this.addSlotToContainer(new Slot(tedf, 12, 152, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - - this.detectAndSendChanges(); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 12) { - if (!this.mergeItemStack(var5, 13, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 13, false)) - { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return nukeBoy.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) { - ICrafting par1 = (ICrafting) this.crafters.get(i); - - if(this.warning != this.nukeBoy.warning) { - par1.sendProgressBarUpdate(this, 1, this.nukeBoy.warning); - } - } - - this.warning = this.nukeBoy.warning; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) { - nukeBoy.warning = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java b/src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java deleted file mode 100644 index c027203dc..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineMiningDrill; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; -import com.hbm.util.I18nUtil; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineMiningDrill extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_drill.png"); - private TileEntityMachineMiningDrill diFurnace; - - public GUIMachineMiningDrill(InventoryPlayer invPlayer, TileEntityMachineMiningDrill tedf) { - super(new ContainerMachineMiningDrill(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.maxPower); - - String[] upgradeText = new String[4]; - upgradeText[0] = I18nUtil.resolveKey("desc.gui.upgrade"); - upgradeText[1] = I18nUtil.resolveKey("desc.gui.upgrade.speed"); - upgradeText[2] = I18nUtil.resolveKey("desc.gui.upgrade.effectiveness"); - upgradeText[3] = I18nUtil.resolveKey("desc.gui.upgrade.power"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 141, guiTop + 39, 8, 8, guiLeft + 100, guiTop + 39 + 16 + 8, upgradeText); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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 + 8, guiTop + 69 - i, 176, 52 - i, 16, i); - } - - int k = diFurnace.warning; - if(k == 2) - drawTexturedModalRect(guiLeft + 44, guiTop + 17, 192, 0, 16, 16); - if(k == 1) - drawTexturedModalRect(guiLeft + 44, guiTop + 17, 208, 0, 16, 16); - - this.drawInfoPanel(guiLeft + 141, guiTop + 39, 8, 8, 8); - } -} diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 1890a002d..a13c09e92 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -215,7 +215,7 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_potato, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.screwdriver, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_coal_off, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_excavator, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_diesel, 2)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_selenium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 64)); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c86d957a1..2f05943e1 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -223,7 +223,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineGasFlare.class, new RenderGasFlare()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyBrick.class, new RenderChimneyBrick()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyIndustrial.class, new RenderChimneyIndustrial()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningLaser.class, new RenderLaserMiner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssemfac.class, new RenderAssemfac()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 050d0c61a..60d667a0b 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1194,6 +1194,12 @@ public class MainRegistry { ignoreMappings.add("hbm:item.bolt_dura_steel"); ignoreMappings.add("hbm:tile.rail_large_curve_wide"); ignoreMappings.add("hbm:tile.nuke_n45"); + ignoreMappings.add("hbm:tile.machine_coal_off"); + ignoreMappings.add("hbm:tile.machine_coal_on"); + ignoreMappings.add("hbm:tile.machine_drill"); + ignoreMappings.add("hbm:tile.drill_pipe"); + ignoreMappings.add("hbm:tile.dummy_block_drill"); + ignoreMappings.add("hbm:tile.dummy_port_drill"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 1d1697804..11cdcbcb9 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -88,7 +88,6 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); API.hideItem(ItemBattery.getFullBattery(ModItems.memory)); - API.hideItem(new ItemStack(ModBlocks.machine_coal_on)); API.hideItem(new ItemStack(ModBlocks.machine_electric_furnace_on)); API.hideItem(new ItemStack(ModBlocks.machine_difurnace_on)); API.hideItem(new ItemStack(ModBlocks.machine_nuke_furnace_on)); @@ -110,7 +109,6 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModItems.burnt_bark)); API.hideItem(new ItemStack(ModItems.ams_core_thingy)); } - API.hideItem(new ItemStack(ModBlocks.dummy_block_drill)); API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_base)); API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_emitter)); API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_limiter)); @@ -118,7 +116,6 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.dummy_block_blast)); API.hideItem(new ItemStack(ModBlocks.dummy_block_uf6)); API.hideItem(new ItemStack(ModBlocks.dummy_block_puf6)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_drill)); API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_base)); API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_emitter)); API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_limiter)); diff --git a/src/main/java/com/hbm/packet/LoopedSoundPacket.java b/src/main/java/com/hbm/packet/LoopedSoundPacket.java index ed0ff966b..0312680a0 100644 --- a/src/main/java/com/hbm/packet/LoopedSoundPacket.java +++ b/src/main/java/com/hbm/packet/LoopedSoundPacket.java @@ -54,18 +54,6 @@ public class LoopedSoundPacket implements IMessage { @SideOnly(Side.CLIENT) public IMessage onMessage(LoopedSoundPacket m, MessageContext ctx) { TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineMiningDrill) { - - boolean flag = true; - for(int i = 0; i < SoundLoopMiner.list.size(); i++) { - if(SoundLoopMiner.list.get(i).getTE() == te && !SoundLoopMiner.list.get(i).isDonePlaying()) - flag = false; - } - - if(flag && te.getWorldObj().isRemote && ((TileEntityMachineMiningDrill)te).torque > 0.2F) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopMiner(new ResourceLocation("hbm:block.minerOperate"), te)); - } if (te != null && te instanceof TileEntityMachineAssembler) { diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 9414d49a0..629b49309 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -17,8 +17,6 @@ public class PacketDispatcher { //Machine type for marker rendering wrapper.registerMessage(TEStructurePacket.Handler.class, TEStructurePacket.class, i++, Side.CLIENT); - //Mining drill rotation for rendering - wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, i++, Side.CLIENT); //Fluid packet for GUI wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); //Sound packet that keeps client and server separated diff --git a/src/main/java/com/hbm/packet/TEDrillPacket.java b/src/main/java/com/hbm/packet/TEDrillPacket.java deleted file mode 100644 index f157550f0..000000000 --- a/src/main/java/com/hbm/packet/TEDrillPacket.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEDrillPacket implements IMessage { - - int x; - int y; - int z; - float spin; - float torque; - - public TEDrillPacket() - { - - } - - public TEDrillPacket(int x, int y, int z, float spin, float torque) - { - this.x = x; - this.y = y; - this.z = z; - this.spin = spin; - this.torque = torque; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - spin = buf.readFloat(); - torque = buf.readFloat(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeFloat(spin); - buf.writeFloat(torque); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEDrillPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineMiningDrill) { - - TileEntityMachineMiningDrill gen = (TileEntityMachineMiningDrill) te; - gen.rotation = m.spin; - gen.torque = m.torque; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index c9ca79fb9..afc1b518d 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -322,19 +322,6 @@ public class ItemRenderLibrary { GL11.glShadeModel(GL11.GL_FLAT); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_drill), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, -2, 0); - GL11.glScaled(3, 3, 3); - } - public void renderCommon() { - GL11.glRotated(180, 0, 1, 0); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.drill_body_tex); ResourceManager.drill_body.renderAll(); - bindTexture(ResourceManager.drill_bolt_tex); ResourceManager.drill_bolt.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_mining_laser), new ItemRenderBase() { public void renderInventory() { GL11.glTranslated(0, -0.5, 0); diff --git a/src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java b/src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java deleted file mode 100644 index a034556c5..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderMiningDrill extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - } - - bindTexture(ResourceManager.drill_body_tex); - - ResourceManager.drill_body.renderAll(); - - GL11.glPopMatrix(); - - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - GL11.glRotatef(((TileEntityMachineMiningDrill)tileEntity).rotation, 0F, 1F, 0F); - - bindTexture(ResourceManager.drill_bolt_tex); - ResourceManager.drill_bolt.renderAll(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/sound/SoundLoopMiner.java b/src/main/java/com/hbm/sound/SoundLoopMiner.java deleted file mode 100644 index 0655f0bdf..000000000 --- a/src/main/java/com/hbm/sound/SoundLoopMiner.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class SoundLoopMiner extends SoundLoopMachine { - - public static List list = new ArrayList(); - - public SoundLoopMiner(ResourceLocation path, TileEntity te) { - super(path, te); - list.add(this); - } - - @Override - public void update() { - super.update(); - - if(te instanceof TileEntityMachineMiningDrill) { - TileEntityMachineMiningDrill drill = (TileEntityMachineMiningDrill)te; - - if(this.volume != 3) - volume = 3; - - if(drill.torque <= 0.5F) - this.donePlaying = true; - } - } - - public TileEntity getTE() { - return te; - } - -} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index ea45e6402..b9469a2cf 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -95,7 +95,6 @@ public class TileMappings { put(TileEntityMachineExposureChamber.class, "tileentity_exposure_chamber"); put(TileEntityMachineRTG.class, "tileentity_machine_rtg"); put(TileEntityStructureMarker.class, "tileentity_structure_marker"); - put(TileEntityMachineMiningDrill.class, "tileentity_mining_drill"); put(TileEntityMachineExcavator.class, "tileentity_ntm_excavator"); put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple"); put(TileEntityFluidDuct.class, "tileentity_universal_duct"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java deleted file mode 100644 index f34c79c98..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java +++ /dev/null @@ -1,495 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.UpgradeManager; -import com.hbm.inventory.container.ContainerMachineMiningDrill; -import com.hbm.inventory.gui.GUIMachineMiningDrill; -import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.LoopedSoundPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEDrillPacket; -import com.hbm.sound.SoundLoopMachine; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.block.IDrillInteraction; -import api.hbm.block.IMiningDrill; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityMachineMiningDrill extends TileEntityMachineBase implements IEnergyUser, IMiningDrill, IGUIProvider { - - public long power; - public int warning; - public static final long maxPower = 100000; - int age = 0; - int timer = 50; - int radius = 100; - int consumption = 100; - int fortune = 0; - boolean flag = true; - public float torque; - public float rotation; - SoundLoopMachine sound; - - public TileEntityMachineMiningDrill() { - super(13); - } - - @Override - public String getName() { - return "container.miningDrill"; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - return true; - - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.power = nbt.getLong("power"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - this.updateConnections(); - - this.consumption = 100; - this.timer = 50; - this.radius = 1; - this.fortune = 0; - - UpgradeManager.eval(slots, 10, 12); - this.radius += Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); - this.consumption += Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3) * 80; - - this.timer -= Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) * 15; - this.consumption += Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) * 300; - - this.consumption -= Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3) * 30; - this.timer += Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3) * 5; - - this.fortune += Math.min(UpgradeManager.getLevel(UpgradeType.FORTUNE), 3); - this.timer += Math.min(UpgradeManager.getLevel(UpgradeType.FORTUNE), 3) * 15; - - age++; - if(age >= timer) - age -= timer; - - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - if(power >= consumption) { - - //operation start - - if(age == timer - 1) { - warning = 0; - - //warning 0, green: drill is operational - //warning 1, red: drill is full, has no power or the drill is jammed - //warning 2, yellow: drill has reached max depth - - for(int i = this.yCoord - 1; i > this.yCoord - 1 - 100; i--) { - - if(i <= 3) { - //Code 2: The drilling ended - warning = 2; - break; - } - - if(worldObj.getBlock(xCoord, i, zCoord) != ModBlocks.drill_pipe) { - - if(worldObj.getBlock(xCoord, i, zCoord).isReplaceable(worldObj, xCoord, i, zCoord) || this.tryDrill(xCoord, i, zCoord)) { - - if(worldObj.getBlock(xCoord, i, zCoord).isReplaceable(worldObj, xCoord, i, zCoord)) { - worldObj.setBlock(xCoord, i, zCoord, ModBlocks.drill_pipe); - } - - break; - - } else { - this.warning = 1; - break; - } - } - - if(this.drill(xCoord, i, zCoord, radius)) - break; - } - } - - //operation end - - power -= consumption; - } else { - warning = 1; - } - - int meta = worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord); - TileEntity te = null; - if(meta == 2) { - te = worldObj.getTileEntity(xCoord - 2, yCoord, zCoord); - //worldObj.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - if(meta == 3) { - te = worldObj.getTileEntity(xCoord + 2, yCoord, zCoord); - //worldObj.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - if(meta == 4) { - te = worldObj.getTileEntity(xCoord, yCoord, zCoord + 2); - //worldObj.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - if(meta == 5) { - te = worldObj.getTileEntity(xCoord, yCoord, zCoord - 2); - //worldObj.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - - if(te != null && te instanceof IInventory) { - IInventory chest = (IInventory)te; - - for(int i = 1; i < 10; i++) - if(tryFillContainer(chest, i)) - break; - } - - if(warning == 0) { - torque += 0.1; - if(torque > (100/timer)) - torque = (100/timer); - } else { - torque -= 0.1F; - if(torque < -(100/timer)) - torque = -(100/timer); - } - - if(torque < 0) { - torque = 0; - } - rotation += torque; - if(rotation >= 360) - rotation -= 360; - - PacketDispatcher.wrapper.sendToAllAround(new TEDrillPacket(xCoord, yCoord, zCoord, rotation, torque), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - - private void updateConnections() { - this.getBlockMetadata(); - - if(this.blockMetadata == 5 || this.blockMetadata == 4) { - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - - } else if(this.blockMetadata == 3 || this.blockMetadata == 2) { - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - } - } - - public boolean tryFillContainer(IInventory inventory, int slot) { - - int size = inventory.getSizeInventory(); - - for(int i = 0; i < size; i++) { - if(inventory.getStackInSlot(i) != null) { - - if(slots[slot] == null) - return false; - - ItemStack sta1 = inventory.getStackInSlot(i).copy(); - ItemStack sta2 = slots[slot].copy(); - - if(!inventory.isItemValidForSlot(i, sta2)) - continue; - - if(sta1 != null && sta2 != null) { - sta1.stackSize = 1; - sta2.stackSize = 1; - - if(ItemStack.areItemStacksEqual(sta1, sta2) && ItemStack.areItemStackTagsEqual(sta1, sta2) && inventory.getStackInSlot(i).stackSize < inventory.getStackInSlot(i).getMaxStackSize()) { - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - ItemStack sta3 = inventory.getStackInSlot(i).copy(); - sta3.stackSize++; - inventory.setInventorySlotContents(i, sta3); - - return true; - } - } - } - } - for(int i = 0; i < size; i++) { - - if(slots[slot] == null) - return false; - - ItemStack sta2 = slots[slot].copy(); - - if(!inventory.isItemValidForSlot(i, sta2)) - continue; - - if(inventory.getStackInSlot(i) == null && sta2 != null) { - sta2.stackSize = 1; - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - inventory.setInventorySlotContents(i, sta2); - - return true; - } - } - - return false; - } - - //Method: isOre - //"make it oreo!" - //"ok" - public boolean isOreo(int x, int y, int z) { - - Block b = worldObj.getBlock(x, y, z); - float hardness = b.getBlockHardness(worldObj, x, y, z); - - return hardness < 70 && hardness >= 0; - } - - public boolean isMinableOreo(int x, int y, int z) { - - Block b = worldObj.getBlock(x, y, z); - float hardness = b.getBlockHardness(worldObj, x, y, z); - - return (hardness < 70 && hardness >= 0) || b instanceof IDrillInteraction; - } - - /** - * returns true if there has been a successful mining operation - * returns false if no block could be mined and the drill is ready to extend - * */ - public boolean drill(int x, int y, int z, int rad) { - - if(!flag) - return false; - - for(int ix = x - rad; ix <= x + rad; ix++) { - for(int iz = z - rad; iz <= z + rad; iz++) { - - if(ix != x || iz != z) - if(tryDrill(ix, y, iz)) - return true; - } - } - - return false; - } - - /** - * returns true if there has been a successful mining operation - * returns false if no block could be mined, as it is either air or unmineable - * */ - public boolean tryDrill(int x, int y, int z) { - - if(worldObj.getBlock(x, y, z).isAir(worldObj, x, y, z) || !isMinableOreo(x, y, z)) - return false; - if(worldObj.getBlock(x, y, z).getMaterial().isLiquid()) { - worldObj.func_147480_a(x, y, z, false); - return false; - } - - Block b = worldObj.getBlock(x, y, z); - int meta = worldObj.getBlockMetadata(x, y, z); - - if(b instanceof IDrillInteraction) { - IDrillInteraction in = (IDrillInteraction) b; - - ItemStack sta = in.extractResource(worldObj, x, y, z, meta, this); - - if(sta != null && hasSpace(sta)) { - this.addItemToInventory(sta); - } - - if(!in.canBreak(worldObj, x, y, z, meta, this)) - return true; //true because the block is still there and mining should continue - } - - ItemStack stack = new ItemStack(b.getItemDropped(meta, worldObj.rand, fortune), b.quantityDropped(meta, fortune, worldObj.rand), b.damageDropped(meta)); - - //yup that worked - if(stack != null && stack.getItem() == null) { - worldObj.func_147480_a(x, y, z, false); - return true; - } - - if(hasSpace(stack)) { - this.addItemToInventory(stack); - worldObj.func_147480_a(x, y, z, false); - return true; - } - - return true; - } - - public boolean hasSpace(ItemStack stack) { - - ItemStack st = stack.copy(); - - if(st == null) - return true; - - for(int i = 1; i < 10; i++) { - if(slots[i] == null) - return true; - } - - st.stackSize = 1; - - ItemStack[] fakeArray = slots.clone(); - boolean flag = true; - for(int i = 0; i < stack.stackSize; i++) { - if(!canAddItemToArray(st, fakeArray)) - flag = false; - } - - return flag; - } - - public void addItemToInventory(ItemStack stack) { - - ItemStack st = stack.copy(); - - if(st == null) - return; - - int size = st.stackSize; - st.stackSize = 1; - - for(int i = 0; i < size; i++) - canAddItemToArray(st, this.slots); - - } - - public boolean canAddItemToArray(ItemStack stack, ItemStack[] array) { - - ItemStack st = stack.copy(); - - if(stack == null || st == null) - return true; - - for(int i = 1; i < 10; i++) { - - if(array[i] != null) { - ItemStack sta = array[i].copy(); - - if(stack == null || st == null) - return true; - - if(sta != null && sta.getItem() == st.getItem() && sta.stackSize < st.getMaxStackSize()) { - array[i].stackSize++; - return true; - } - } - } - - for(int i = 1; i < 10; i++) { - if(array[i] == null) { - array[i] = stack.copy(); - return true; - } - } - - return false; - } - - @Override - public void setPower(long i) { - power = i; - - } - - @Override - public long getPower() { - return power; - - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public DrillType getDrillTier() { - return DrillType.INDUSTRIAL; - } - - @Override - public int getDrillRating() { - return 50; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineMiningDrill(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineMiningDrill(player.inventory, this); - } -} diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_diamond.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..af9244eddcecd3103ba842ca6b5eec77b9849999 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfW0>-d7j?yusKfzD#^boFyt=akR{0ETW> AbpQYW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_emerald.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_emerald.png new file mode 100644 index 0000000000000000000000000000000000000000..60d3d6548701cbe0ffe682df01c209703bd30e21 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf=&{xbbr6@|tG2Lb|&_o7LS3j3^P6 Date: Wed, 10 Jan 2024 18:13:46 -0500 Subject: [PATCH 074/376] coca cola, dont forget the ice! fixed various strand caster problems --- .../java/com/hbm/blocks/machine/MachineStrandCaster.java | 4 ---- .../inventory/container/ContainerMachineStrandCaster.java | 5 +++-- src/main/java/com/hbm/main/ResourceManager.java | 2 +- .../com/hbm/tileentity/machine/TileEntityFoundryBasin.java | 5 ----- .../hbm/tileentity/machine/TileEntityFoundryCastingBase.java | 3 --- .../com/hbm/tileentity/machine/TileEntityFoundryMold.java | 5 ----- .../tileentity/machine/TileEntityMachineStrandCaster.java | 4 ++-- 7 files changed, 6 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java index 9f4a7f745..9b2c6ced5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -137,7 +137,6 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce player.getHeldItem().stackSize--; world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); cast.markDirty(); - world.markBlockForUpdate(x, y, z); return true; } @@ -154,7 +153,6 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce cast.amount = 0; cast.type = null; cast.markDirty(); - world.markBlockForUpdate(x, y, z); } return true; } @@ -225,10 +223,8 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce } cast.markDirty(); - world.markBlockForUpdate(x, y, z); cast.slots[0] = null; - cast.markDirty(); return true; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java b/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java index bc9e89e46..6c503f6ce 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotNonRetarded; import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; import com.hbm.util.InventoryUtil; @@ -22,7 +23,7 @@ public class ContainerMachineStrandCaster extends Container { //output for (int i = 0; i < 3; i++) { for (int j = 0; j < 2; j++) { - this.addSlotToContainer(new SlotNonRetarded(this.caster, j + i * 2 + 1, 125 + j * 18, 26 + i * 18)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, this.caster, j + i * 2 + 1, 125 + j * 18, 26 + i * 18)); } } @@ -54,7 +55,7 @@ public class ContainerMachineStrandCaster extends Container { slot.onSlotChange(originalStack, stack); - } else if (!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 0, 7, false)) { + } else if (!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 1, 2, false)) { return null; } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index e846749c5..7ea56b820 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -52,7 +52,7 @@ public class ResourceManager { public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")); //Caster o' Strands - public static final IModelCustom strand_caster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/strand_caster.obj")); + public static final IModelCustom strand_caster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/strand_caster.obj")); //Furnaces public static final IModelCustom furnace_iron = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_iron.obj")); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java index 9003229c6..6c65fb4c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java @@ -12,11 +12,6 @@ public class TileEntityFoundryBasin extends TileEntityFoundryCastingBase impleme super(2); } - @Override - public String getName() { - return null; - } - @Override public void updateEntity() { super.updateEntity(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java index 3267ac602..da2a8d8a5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java @@ -26,9 +26,6 @@ public abstract class TileEntityFoundryCastingBase extends TileEntityFoundryBase } public int cooloff = 100; - - public abstract String getName(); - @Override public void updateEntity() { super.updateEntity(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java index 146e79b1b..f2e476a3e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java @@ -8,11 +8,6 @@ public class TileEntityFoundryMold extends TileEntityFoundryCastingBase implemen super(2); } - @Override - public String getName() { - return null; - } - @Override public void updateEntity() { super.updateEntity(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index b7044b33f..62f04d8e4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -37,7 +37,6 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase public FluidTank water; public FluidTank steam; - @Override public String getName() { return "container.machineStrandCaster"; } @@ -66,9 +65,10 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase } if (this.amount >= this.getCapacity()) { + //In case of overfill problems, spit out the excess as scrap if (amount > getCapacity()) { ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, amount)); - EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, scrap); + EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord + 2, zCoord + 0.5, scrap); worldObj.spawnEntityInWorld(item); } this.amount = this.getCapacity(); From a647f93f15ab7aef05b68ca9f12eaecff52411a9 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 11 Jan 2024 16:35:55 +0100 Subject: [PATCH 075/376] incinerated old garbage --- changelog | 4 +- .../java/com/hbm/blocks/IBlockMultiPass.java | 3 + src/main/java/com/hbm/blocks/ModBlocks.java | 25 +- .../com/hbm/blocks/generic/BlockMarker.java | 159 ---- .../hbm/blocks/generic/BlockSellafield.java | 68 +- .../blocks/generic/BlockSellafieldOre.java | 14 +- .../blocks/generic/BlockSellafieldSlaked.java | 2 +- .../hbm/blocks/machine/MachineCMBFactory.java | 131 --- .../com/hbm/blocks/machine/MachineCoal.java | 21 - .../java/com/hbm/blocks/machine/WatzCore.java | 20 - .../com/hbm/blocks/machine/WatzHatch.java | 158 ---- .../com/hbm/config/FalloutConfigJSON.java | 23 +- .../com/hbm/inventory/OreDictManager.java | 4 +- .../container/ContainerMachineCMBFactory.java | 115 --- .../container/ContainerWatzCore.java | 138 --- .../inventory/gui/GUIMachineCMBFactory.java | 59 -- .../com/hbm/inventory/gui/GUIWatzCore.java | 61 -- .../java/com/hbm/items/tool/ItemWandS.java | 10 +- .../com/hbm/items/weapon/ItemAmmoHIMARS.java | 2 +- src/main/java/com/hbm/lib/Library.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 - .../java/com/hbm/main/CraftingManager.java | 2 - src/main/java/com/hbm/main/MainRegistry.java | 4 + .../com/hbm/main/ModEventHandlerRenderer.java | 84 +- .../java/com/hbm/packet/PacketDispatcher.java | 2 - .../com/hbm/packet/TEStructurePacket.java | 62 -- .../render/block/RenderBlockMultipass.java | 52 +- .../tileentity/RenderStructureMaker.java | 239 ------ .../render/util/RenderAccessoryUtility.java | 6 +- .../java/com/hbm/tileentity/TileMappings.java | 3 - .../machine/TileEntityMachineCMBFactory.java | 385 --------- .../machine/TileEntityStructureMarker.java | 39 - .../machine/TileEntityWatzCore.java | 787 ----------------- .../machine/storage/TileEntityBarrel.java | 7 +- src/main/java/com/hbm/util/ArmorUtil.java | 1 + .../com/hbm/world/machine/NuclearReactor.java | 208 ----- src/main/java/com/hbm/world/machine/Watz.java | 795 ------------------ src/main/resources/assets/hbm/lang/en_US.lang | 4 +- .../blocks/ore_overlay_schrabidium.png | Bin 0 -> 245 bytes .../textures/blocks/ore_overlay_uranium.png | Bin 0 -> 260 bytes .../blocks/ore_overlay_uranium_scorched.png | Bin 0 -> 673 bytes .../hbm/textures/models/capes/CapeAlcater.png | Bin 0 -> 1281 bytes .../hbm/textures/models/capes/CapeHbm.png | Bin 1876 -> 0 bytes 43 files changed, 215 insertions(+), 3485 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/generic/BlockMarker.java delete mode 100644 src/main/java/com/hbm/blocks/machine/MachineCMBFactory.java delete mode 100644 src/main/java/com/hbm/blocks/machine/MachineCoal.java delete mode 100644 src/main/java/com/hbm/blocks/machine/WatzCore.java delete mode 100644 src/main/java/com/hbm/blocks/machine/WatzHatch.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineCMBFactory.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerWatzCore.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineCMBFactory.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIWatzCore.java delete mode 100644 src/main/java/com/hbm/packet/TEStructurePacket.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java delete mode 100644 src/main/java/com/hbm/world/machine/NuclearReactor.java delete mode 100644 src/main/java/com/hbm/world/machine/Watz.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_overlay_schrabidium.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_overlay_uranium.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_overlay_uranium_scorched.png create mode 100644 src/main/resources/assets/hbm/textures/models/capes/CapeAlcater.png delete mode 100644 src/main/resources/assets/hbm/textures/models/capes/CapeHbm.png diff --git a/changelog b/changelog index ff00a3277..b9c3bc58e 100644 --- a/changelog +++ b/changelog @@ -12,8 +12,10 @@ * Adjusted the nuclear flash's intensity, the flash will now deal less and less radiation the longer it goes on * The nuclear flash now bypasses radiation resistance, being only affected by blocks and distance * Mushroom clouds' initial scale is now based on the total scale instead of all spawning roughly at the same size, causing fireballs to be comically small for huge bombs -* Removed the old mining drill for good +* Removed the old mining drill, combustion generator, old watz core, structure marker and CMB furnace for good ## Fixed * Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes * Fixed PWR fuel rods not having any radiation value assigned to them +* Fixed trenchmaster helmet not having gas mask protection +* Fixed large thermobaric artillery rocket still using the wrong slag block diff --git a/src/main/java/com/hbm/blocks/IBlockMultiPass.java b/src/main/java/com/hbm/blocks/IBlockMultiPass.java index da8739558..c5140f394 100644 --- a/src/main/java/com/hbm/blocks/IBlockMultiPass.java +++ b/src/main/java/com/hbm/blocks/IBlockMultiPass.java @@ -11,4 +11,7 @@ public interface IBlockMultiPass { return renderID; } + public default boolean shouldRenderItemMulti() { + return false; + } } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 5b304c9ce..7e2d27e99 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -536,6 +536,8 @@ public class ModBlocks { public static Block sellafield; public static Block ore_sellafield_diamond; public static Block ore_sellafield_emerald; + public static Block ore_sellafield_uranium_scorched; + public static Block ore_sellafield_schrabidium; public static Block geysir_water; public static Block geysir_chlorine; @@ -627,8 +629,6 @@ public class ModBlocks { public static Block tesla; - public static Block marker_structure; - public static Block muffler; public static Block sat_mapper; @@ -929,9 +929,7 @@ public class ModBlocks { public static Block watz_control; public static Block watz_cooler; public static Block watz_end; - public static Block watz_hatch; public static Block watz_conductor; - public static Block watz_core; public static Block fwatz_conductor; public static Block fwatz_cooler; @@ -970,8 +968,6 @@ public class ModBlocks { public static Block machine_shredder_large; public static final int guiID_machine_shredder_large = 76; - public static Block machine_combine_factory; - public static Block machine_teleporter; public static Block teleanchor; public static Block field_disturber; @@ -1769,6 +1765,8 @@ public class ModBlocks { sellafield = new BlockSellafield(Material.rock).setBlockName("sellafield").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); ore_sellafield_diamond = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_diamond").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_diamond"); ore_sellafield_emerald = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_emerald").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_emerald"); + ore_sellafield_uranium_scorched = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_uranium_scorched").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_uranium_scorched"); + ore_sellafield_schrabidium = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_schrabidium").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_schrabidium"); geysir_water = new BlockGeysir(Material.rock).setBlockName("geysir_water").setStepSound(Block.soundTypeStone).setHardness(5.0F); geysir_chlorine = new BlockGeysir(Material.rock).setBlockName("geysir_chlorine").setStepSound(Block.soundTypeStone).setHardness(5.0F); @@ -1940,8 +1938,6 @@ public class ModBlocks { machine_shredder = new MachineShredder(Material.iron).setBlockName("machine_shredder").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_shredder_large = new MachineShredderLarge(Material.iron).setBlockName("machine_shredder_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":code"); - machine_combine_factory = new MachineCMBFactory(Material.iron).setBlockName("machine_combine_factory").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); - machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); teleanchor = new MachineTeleanchor().setBlockName("teleanchor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); field_disturber = new MachineFieldDisturber().setBlockName("field_disturber").setHardness(5.0F).setResistance(200.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":field_disturber"); @@ -2094,9 +2090,7 @@ public class ModBlocks { watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side"); watz_cooler = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_cooler_top").setBlockName("watz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_cooler_side"); watz_end = new BlockToolConversion(Material.iron).addVariant("_bolted").setBlockName("watz_end").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_casing"); - watz_hatch = new WatzHatch(Material.iron).setBlockName("watz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_hatch"); watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top"); - watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_computer"); watz = new Watz().setBlockName("watz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); watz_pump = new WatzPump().setBlockName("watz_pump").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2161,8 +2155,6 @@ public class ModBlocks { tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); - marker_structure = new BlockMarker(Material.iron).setBlockName("marker_structure").setHardness(0.1F).setResistance(0.1F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":marker_structure"); - muffler = new BlockGeneric(Material.cloth).setBlockName("muffler").setHardness(0.8F).setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":muffler"); launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); @@ -2956,6 +2948,8 @@ public class ModBlocks { register(sellafield_slaked); register(ore_sellafield_diamond); register(ore_sellafield_emerald); + register(ore_sellafield_uranium_scorched); + register(ore_sellafield_schrabidium); GameRegistry.registerBlock(sellafield, ItemBlockNamedMeta.class, sellafield.getUnlocalizedName()); //Geysirs @@ -3384,7 +3378,6 @@ public class ModBlocks { register(machine_turbofan); register(machine_turbinegas); GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName()); - GameRegistry.registerBlock(machine_combine_factory, machine_combine_factory.getUnlocalizedName()); GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName()); GameRegistry.registerBlock(teleanchor, teleanchor.getUnlocalizedName()); GameRegistry.registerBlock(field_disturber, field_disturber.getUnlocalizedName()); @@ -3395,9 +3388,6 @@ public class ModBlocks { GameRegistry.registerBlock(radiorec, radiorec.getUnlocalizedName()); GameRegistry.registerBlock(radiobox, radiobox.getUnlocalizedName()); - //Multiblock Helpers - GameRegistry.registerBlock(marker_structure, marker_structure.getUnlocalizedName()); - //The muffler GameRegistry.registerBlock(muffler, muffler.getUnlocalizedName()); @@ -3463,7 +3453,6 @@ public class ModBlocks { GameRegistry.registerBlock(fusion_motor, fusion_motor.getUnlocalizedName()); GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName()); GameRegistry.registerBlock(fusion_hatch, fusion_hatch.getUnlocalizedName()); - //GameRegistry.registerBlock(fusion_core, fusion_core.getUnlocalizedName()); GameRegistry.registerBlock(plasma, ItemBlockLore.class, plasma.getUnlocalizedName()); GameRegistry.registerBlock(iter, iter.getUnlocalizedName()); GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); @@ -3472,9 +3461,7 @@ public class ModBlocks { GameRegistry.registerBlock(watz_control, watz_control.getUnlocalizedName()); GameRegistry.registerBlock(watz_cooler, watz_cooler.getUnlocalizedName()); register(watz_end); - GameRegistry.registerBlock(watz_hatch, watz_hatch.getUnlocalizedName()); GameRegistry.registerBlock(watz_conductor, watz_conductor.getUnlocalizedName()); - GameRegistry.registerBlock(watz_core, watz_core.getUnlocalizedName()); GameRegistry.registerBlock(watz, watz.getUnlocalizedName()); GameRegistry.registerBlock(watz_pump, watz_pump.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockMarker.java b/src/main/java/com/hbm/blocks/generic/BlockMarker.java deleted file mode 100644 index 25e70dd8c..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockMarker.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.hbm.blocks.generic; - -import java.util.Random; - -import com.hbm.tileentity.machine.TileEntityStructureMarker; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class BlockMarker extends BlockContainer { - - public BlockMarker(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityStructureMarker(); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) { - return null; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public int getRenderType() { - return 2; - } - - private boolean func_150107_m(World p_150107_1_, int p_150107_2_, int p_150107_3_, int p_150107_4_) { - if(World.doesBlockHaveSolidTopSurface(p_150107_1_, p_150107_2_, p_150107_3_, p_150107_4_)) { - return true; - } else { - Block block = p_150107_1_.getBlock(p_150107_2_, p_150107_3_, p_150107_4_); - return block.canPlaceTorchOnTop(p_150107_1_, p_150107_2_, p_150107_3_, p_150107_4_); - } - } - - @Override - public boolean canPlaceBlockAt(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_) { - return func_150107_m(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 6, 2); - } - if(i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 7, 2); - } - if(i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 8, 2); - } - if(i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 9, 2); - } - } - - @Override - public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_) { - super.updateTick(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, p_149674_5_); - - if(p_149674_1_.getBlockMetadata(p_149674_2_, p_149674_3_, p_149674_4_) == 0) { - this.onBlockAdded(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_); - } - } - - @Override - public void onNeighborBlockChange(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_) { - this.func_150108_b(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_, p_149695_5_); - } - - protected boolean func_150108_b(World p_150108_1_, int p_150108_2_, int p_150108_3_, int p_150108_4_, Block p_150108_5_) { - if(this.func_150109_e(p_150108_1_, p_150108_2_, p_150108_3_, p_150108_4_)) { - boolean flag = false; - - if(!this.func_150107_m(p_150108_1_, p_150108_2_, p_150108_3_ - 1, p_150108_4_)) { - flag = true; - } - - if(flag) { - this.dropBlockAsItem(p_150108_1_, p_150108_2_, p_150108_3_, p_150108_4_, p_150108_1_.getBlockMetadata(p_150108_2_, p_150108_3_, p_150108_4_), 0); - p_150108_1_.setBlockToAir(p_150108_2_, p_150108_3_, p_150108_4_); - return true; - } else { - return false; - } - } else { - return true; - } - } - - protected boolean func_150109_e(World p_150109_1_, int p_150109_2_, int p_150109_3_, int p_150109_4_) { - if(!this.canPlaceBlockAt(p_150109_1_, p_150109_2_, p_150109_3_, p_150109_4_)) { - if(p_150109_1_.getBlock(p_150109_2_, p_150109_3_, p_150109_4_) == this) { - this.dropBlockAsItem(p_150109_1_, p_150109_2_, p_150109_3_, p_150109_4_, p_150109_1_.getBlockMetadata(p_150109_2_, p_150109_3_, p_150109_4_), 0); - p_150109_1_.setBlockToAir(p_150109_2_, p_150109_3_, p_150109_4_); - } - - return false; - } else { - return true; - } - } - - @Override - public MovingObjectPosition collisionRayTrace(World p_149731_1_, int p_149731_2_, int p_149731_3_, int p_149731_4_, Vec3 p_149731_5_, Vec3 p_149731_6_) { - float f = 0.15F; - f = 0.1F; - this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.6F, 0.5F + f); - - return super.collisionRayTrace(p_149731_1_, p_149731_2_, p_149731_3_, p_149731_4_, p_149731_5_, p_149731_6_); - } - - @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) { - int i = ((TileEntityStructureMarker) world.getTileEntity(x, y, z)).type + 1; - if(i > 2) i -= 3; - if(i == 0) player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Nuclear Reactor")); - if(i == 1) player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Watz Power Plant")); - if(i == 2) player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Fusionary Watz Plant")); - return true; - } else if(!player.isSneaking()) { - if(world.getTileEntity(x, y, z) != null && world.getTileEntity(x, y, z) instanceof TileEntityStructureMarker) { - ((TileEntityStructureMarker) world.getTileEntity(x, y, z)).type++; - } - return true; - } else { - return false; - } - } - -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafield.java b/src/main/java/com/hbm/blocks/generic/BlockSellafield.java index 03c53b9f4..aea70d140 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafield.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafield.java @@ -8,11 +8,14 @@ import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; +import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; +import com.hbm.render.icon.TextureAtlasSpriteMutatable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -20,12 +23,17 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockSellafield extends BlockHazard { - //Sellafite blocks should probably be entirely metadata, but removing them now might mess with shit - //...Ah, fuck it! Noone cares anyway. + @SideOnly(Side.CLIENT) + protected IIcon[][] icons; + + public static final int SELLAFITE_LEVELS = 6; + public static final int TEXTURE_VARIANTS = 4; + public BlockSellafield(Material mat) { super(mat); this.setCreativeTab(MainRegistry.blockTab); @@ -56,10 +64,6 @@ public class BlockSellafield extends BlockHazard { } @Override public void onBlockAdded(World world, int x, int y, int z) { } - - - @SideOnly(Side.CLIENT) - protected IIcon[] icons; @Override public int damageDropped(int meta) { @@ -69,24 +73,62 @@ public class BlockSellafield extends BlockHazard { @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tabs, List list) { - for(byte i = 0; i < 6; i++) { + for(byte i = 0; i < SELLAFITE_LEVELS; i++) { list.add(new ItemStack(item, 1, i)); } } @Override @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - super.registerBlockIcons(iconRegister); - icons = new IIcon[6]; + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + icons = new IIcon[SELLAFITE_LEVELS][TEXTURE_VARIANTS]; + String[] names = new String[] { + RefStrings.MODID + ":sellafield_slaked", + RefStrings.MODID + ":sellafield_slaked_1", + RefStrings.MODID + ":sellafield_slaked_2", + RefStrings.MODID + ":sellafield_slaked_3" + }; - for(byte i = 0; i < 6; i++) - icons[i] = iconRegister.registerIcon(RefStrings.MODID + ":sellafield_" + i); + if(reg instanceof TextureMap) { + TextureMap map = (TextureMap) reg; + + int[][] colors = new int[][] { + {0x4C7939, 0x41463F}, + {0x418223, 0x3E443B}, + {0x338C0E, 0x3B5431}, + {0x1C9E00, 0x394733}, + {0x02B200, 0x37492F}, + {0x00D300, 0x324C26} + }; + + for(int level = 0; level < SELLAFITE_LEVELS; level++) { + int[] tint = colors[level]; + + for(int subtype = 0; subtype < TEXTURE_VARIANTS; subtype++) { + String texName = names[subtype]; + String placeholderName = texName + "-" + level + "-" + subtype; + TextureAtlasSpriteMutatable mutableIcon = new TextureAtlasSpriteMutatable(placeholderName, new RGBMutatorInterpolatedComponentRemap(0x858384, 0x434343, tint[0], tint[1])).setBlockAtlas(); + map.setTextureEntry(placeholderName, mutableIcon); + icons[level][subtype] = mutableIcon; + } + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; + l = l * l * 42317861L + l * 11L; + int i = (int)(l >> 16 & 3L); + int meta = world.getBlockMetadata(x, y, z); + return icons[(int)(Math.abs(meta) % SELLAFITE_LEVELS)][(int)(Math.abs(i) % TEXTURE_VARIANTS)]; } @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { - return this.icons[meta % this.icons.length]; + return this.icons[(int) Math.abs(meta) % this.icons.length][0]; } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java index 6c17f2143..a923c5343 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java @@ -41,6 +41,13 @@ public class BlockSellafieldOre extends BlockSellafieldSlaked implements IBlockM return super.getIcon(world, x, y, z, side); } + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + if(RenderBlockMultipass.currentPass == 1) return this.blockIcon; + return icons[0]; + } + @Override @SideOnly(Side.CLIENT) public int colorMultiplier(IBlockAccess world, int x, int y, int z) { @@ -53,11 +60,16 @@ public class BlockSellafieldOre extends BlockSellafieldSlaked implements IBlockM return 2; } + @Override + public boolean shouldRenderItemMulti() { + return true; + } + @Override public Item getItemDropped(int meta, Random rand, int fortune) { if(this == ModBlocks.ore_sellafield_diamond) return Items.diamond; if(this == ModBlocks.ore_sellafield_emerald) return Items.emerald; - return null; + return Item.getItemFromBlock(this); } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java index d30efb41a..6812249a4 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java @@ -32,7 +32,7 @@ public class BlockSellafieldSlaked extends Block { @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { - return icons[meta % icons.length]; + return icons[0]; } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineCMBFactory.java b/src/main/java/com/hbm/blocks/machine/MachineCMBFactory.java deleted file mode 100644 index 92210dd35..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineCMBFactory.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineCMBFactory; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class MachineCMBFactory extends BlockContainer { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - - @SideOnly(Side.CLIENT) - private IIcon iconTop; - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_cmb_top"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_cmb_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_combine_factory); - } - - public MachineCMBFactory(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineCMBFactory(); - } - - @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()) - { - TileEntityMachineCMBFactory entity = (TileEntityMachineCMBFactory) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineCMBFactory tileentityfurnace = (TileEntityMachineCMBFactory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCoal.java b/src/main/java/com/hbm/blocks/machine/MachineCoal.java deleted file mode 100644 index 4b28a5e94..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineCoal.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.blocks.machine; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -import com.hbm.tileentity.machine.TileEntityMachineCoal; - -@Deprecated -public class MachineCoal extends BlockContainer { - - public MachineCoal(boolean blockState) { - super(Material.iron); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineCoal(); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/WatzCore.java b/src/main/java/com/hbm/blocks/machine/WatzCore.java deleted file mode 100644 index 0289ece20..000000000 --- a/src/main/java/com/hbm/blocks/machine/WatzCore.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.machine.TileEntityWatzCore; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class WatzCore extends BlockContainer { - - public WatzCore(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityWatzCore(); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/WatzHatch.java b/src/main/java/com/hbm/blocks/machine/WatzHatch.java deleted file mode 100644 index 157a02036..000000000 --- a/src/main/java/com/hbm/blocks/machine/WatzHatch.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityWatzCore; - -import api.hbm.fluid.IFluidConnectorBlock; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class WatzHatch extends Block implements IFluidConnectorBlock { - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - - public WatzHatch(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":watz_hatch"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":reinforced_brick"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(this); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - //this.setDefaultDirection(world, x, y, z); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - - @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()) - { - if(world.getBlockMetadata(x, y, z) == 2) - { - if(world.getTileEntity(x, y, z + 3) instanceof TileEntityWatzCore) - { - if(((TileEntityWatzCore)world.getTileEntity(x, y, z + 3)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z + 3); - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 3) - { - if(world.getTileEntity(x, y, z - 3) instanceof TileEntityWatzCore) - { - if(((TileEntityWatzCore)world.getTileEntity(x, y, z - 3)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z - 3); - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 4) - { - if(world.getTileEntity(x + 3, y, z) instanceof TileEntityWatzCore) - { - if(((TileEntityWatzCore)world.getTileEntity(x + 3, y, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x + 3, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 5) - { - if(world.getTileEntity(x - 3, y, z) instanceof TileEntityWatzCore) - { - if(((TileEntityWatzCore)world.getTileEntity(x - 3, y, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x - 3, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Core not found!")); - } - } - return true; - } else { - return false; - } - } - - @Override - public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { - return type == Fluids.WATZ; - } -} diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index f9ac9452d..645a12413 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -75,23 +75,24 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); entries.add(new FalloutEntry().mB(Blocks.mossy_cobblestone).prim(new Triplet(Blocks.coal_ore, 0, 1))); - entries.add(new FalloutEntry().mB(ModBlocks.ore_uranium).prim(new Triplet(ModBlocks.ore_schrabidium, 0, 1), new Triplet(ModBlocks.ore_uranium_scorched, 0, 99))); entries.add(new FalloutEntry().mB(ModBlocks.ore_nether_uranium).prim(new Triplet(ModBlocks.ore_nether_schrabidium, 0, 1), new Triplet(ModBlocks.ore_nether_uranium_scorched, 0, 99))); - entries.add(new FalloutEntry().mB(ModBlocks.ore_gneiss_uranium).prim(new Triplet(ModBlocks.ore_gneiss_schrabidium, 0, 1), new Triplet(ModBlocks.ore_gneiss_uranium_scorched, 0, 99))); Block deepslate = Compat.tryLoadBlock(Compat.MOD_EF, "deepslate"); Block stone = Compat.tryLoadBlock(Compat.MOD_EF, "stone"); for(int i = 1; i <= 10; i++) { - entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, 10 - i, 3), new Triplet(ModBlocks.ore_sellafield_emerald, 10 - i, 2)).c(0.5).max(i * 5).sol(true).mB(Blocks.coal_ore)); - entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, 10 - i, 1)).c(0.2).max(i * 5).sol(true).mB(ModBlocks.ore_lignite)); - entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_emerald, 10 - i, 1)).max(i * 5).sol(true).mB(ModBlocks.ore_beryllium)); - entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.rock)); - entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.sand)); - entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.ground)); - if(i <= 9) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mMa(Material.grass)); - if(deepslate != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mB(deepslate)); - if(stone != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, 10 - i, 1)).max(i * 5).sol(true).mB(stone)); + int m = 10 - i; + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 3), new Triplet(ModBlocks.ore_sellafield_emerald, m, 2)) .c(0.5) .max(i * 5).sol(true).mB(Blocks.coal_ore)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 1)) .c(0.2) .max(i * 5).sol(true).mB(ModBlocks.ore_lignite)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_emerald, m, 1)) .max(i * 5).sol(true).mB(ModBlocks.ore_beryllium)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 99)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 99)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.rock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.sand)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.ground)); + if(i <= 9) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.grass)); + if(deepslate != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mB(deepslate)); + if(stone != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mB(stone)); } //entries.add(new FalloutEntry().mB(Blocks.grass).prim(new Triplet(ModBlocks.waste_earth, 0, 1))); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index e6ca773e5..ee56d55cb 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -320,7 +320,7 @@ public class OreDictManager { /* * RADIOACTIVE */ - U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); + U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium, ore_sellafield_uranium_scorched) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); U233 .rad(HazardRegistry.u233) .nugget(nugget_u233) .billet(billet_u233) .ingot(ingot_u233) .block(block_u233); U235 .rad(HazardRegistry.u235) .nugget(nugget_u235) .billet(billet_u235) .ingot(ingot_u235) .block(block_u235); U238 .rad(HazardRegistry.u238) .nugget(nugget_u238) .billet(billet_u238) .ingot(ingot_u238) .block(block_u238); @@ -342,7 +342,7 @@ public class OreDictManager { CO60 .rad(HazardRegistry.co60) .hot(1) .nugget(nugget_co60) .billet(billet_co60) .ingot(ingot_co60) .dust(powder_co60); AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198); PB209 .rad(HazardRegistry.pb209) .blinding(50F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209); - SA326 .rad(HazardRegistry.sa326) .blinding(50F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium).plate(plate_schrabidium).plateCast(Mats.MAT_SCHRABIDIUM.make(plate_cast)).block(block_schrabidium).ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium) .oreNether(ore_nether_schrabidium); + SA326 .rad(HazardRegistry.sa326) .blinding(50F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium).plate(plate_schrabidium).plateCast(Mats.MAT_SCHRABIDIUM.make(plate_cast)).block(block_schrabidium).ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium, ore_sellafield_schrabidium) .oreNether(ore_nether_schrabidium); SA327 .rad(HazardRegistry.sa327) .blinding(50F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium); SBD .rad(HazardRegistry.sb) .blinding(50F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCMBFactory.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCMBFactory.java deleted file mode 100644 index bedd1b951..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCMBFactory.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotCraftingOutput; -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineCMBFactory; - -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.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineCMBFactory extends Container { - - private TileEntityMachineCMBFactory diFurnace; - private int progress; - - public ContainerMachineCMBFactory(InventoryPlayer invPlayer, TileEntityMachineCMBFactory tedf) { - - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 62 + 9, 17)); - this.addSlotToContainer(new Slot(tedf, 1, 80 + 9, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 62 + 9, 53)); - this.addSlotToContainer(new Slot(tedf, 3, 80 + 9, 53)); - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 4, 134 + 9, 35)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 5, 62 - 9, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 1, this.diFurnace.process); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 5) { - if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) - { - return null; - } - } - else - { - if (!this.mergeItemStack(var5, 0, 4, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.progress != this.diFurnace.process) - { - par1.sendProgressBarUpdate(this, 1, this.diFurnace.process); - } - } - - this.progress = this.diFurnace.process; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) - { - diFurnace.process = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerWatzCore.java b/src/main/java/com/hbm/inventory/container/ContainerWatzCore.java deleted file mode 100644 index a3760e10c..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerWatzCore.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.items.ModItems; -import com.hbm.items.special.WatzFuel; -import com.hbm.tileentity.machine.TileEntityWatzCore; - -import api.hbm.energy.IBatteryItem; -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.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerWatzCore extends Container { - - private TileEntityWatzCore diFurnace; - - public ContainerWatzCore(InventoryPlayer invPlayer, TileEntityWatzCore tedf) { - - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 8, 18)); - this.addSlotToContainer(new Slot(tedf, 1, 26, 18)); - this.addSlotToContainer(new Slot(tedf, 2, 44, 18)); - this.addSlotToContainer(new Slot(tedf, 3, 62, 18)); - this.addSlotToContainer(new Slot(tedf, 4, 80, 18)); - this.addSlotToContainer(new Slot(tedf, 5, 98, 18)); - this.addSlotToContainer(new Slot(tedf, 6, 8, 36)); - this.addSlotToContainer(new Slot(tedf, 7, 26, 36)); - this.addSlotToContainer(new Slot(tedf, 8, 44, 36)); - this.addSlotToContainer(new Slot(tedf, 9, 62, 36)); - this.addSlotToContainer(new Slot(tedf, 10, 80, 36)); - this.addSlotToContainer(new Slot(tedf, 11, 98, 36)); - this.addSlotToContainer(new Slot(tedf, 12, 8, 54)); - this.addSlotToContainer(new Slot(tedf, 13, 26, 54)); - this.addSlotToContainer(new Slot(tedf, 14, 44, 54)); - this.addSlotToContainer(new Slot(tedf, 15, 62, 54)); - this.addSlotToContainer(new Slot(tedf, 16, 80, 54)); - this.addSlotToContainer(new Slot(tedf, 17, 98, 54)); - this.addSlotToContainer(new Slot(tedf, 18, 8, 72)); - this.addSlotToContainer(new Slot(tedf, 19, 26, 72)); - this.addSlotToContainer(new Slot(tedf, 20, 44, 72)); - this.addSlotToContainer(new Slot(tedf, 21, 62, 72)); - this.addSlotToContainer(new Slot(tedf, 22, 80, 72)); - this.addSlotToContainer(new Slot(tedf, 23, 98, 72)); - this.addSlotToContainer(new Slot(tedf, 24, 8, 90)); - this.addSlotToContainer(new Slot(tedf, 25, 26, 90)); - this.addSlotToContainer(new Slot(tedf, 26, 44, 90)); - this.addSlotToContainer(new Slot(tedf, 27, 62, 90)); - this.addSlotToContainer(new Slot(tedf, 28, 80, 90)); - this.addSlotToContainer(new Slot(tedf, 29, 98, 90)); - this.addSlotToContainer(new Slot(tedf, 30, 8, 108)); - this.addSlotToContainer(new Slot(tedf, 31, 26, 108)); - this.addSlotToContainer(new Slot(tedf, 32, 44, 108)); - this.addSlotToContainer(new Slot(tedf, 33, 62, 108)); - this.addSlotToContainer(new Slot(tedf, 34, 80, 108)); - this.addSlotToContainer(new Slot(tedf, 35, 98, 108)); - //Mud Input - this.addSlotToContainer(new Slot(tedf, 36, 134, 108 - 18)); - //Battery - this.addSlotToContainer(new Slot(tedf, 37, 152, 108 - 18)); - //Filter - this.addSlotToContainer(new Slot(tedf, 38, 116, 63)); - //Mud Output - this.addSlotToContainer(new Slot(tedf, 39, 134, 108)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= 39) { - if(!this.mergeItemStack(var5, 40, this.inventorySlots.size(), true)) { - return null; - } - - } else { - - if(var5.getItem() == ModItems.titanium_filter) { - if(!this.mergeItemStack(var5, 38, 39, false)) { - return null; - } - } else if(var5.getItem() instanceof WatzFuel) { - if(!this.mergeItemStack(var5, 0, 36, false)) { - return null; - } - } else if(var5.getItem() instanceof IBatteryItem) { - if(!this.mergeItemStack(var5, 37, 38, false)) { - return null; - } - } else { - if(!this.mergeItemStack(var5, 36, 37, false)) { - return null; - } - } - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - - var4.onPickupFromSlot(p_82846_1_, var5); - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCMBFactory.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCMBFactory.java deleted file mode 100644 index 1391cf2c4..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCMBFactory.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineCMBFactory; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineCMBFactory; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineCMBFactory extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_cmb_manufactory.png"); - private TileEntityMachineCMBFactory diFurnace; - - public GUIMachineCMBFactory(InventoryPlayer invPlayer, TileEntityMachineCMBFactory tedf) { - super(new ContainerMachineCMBFactory(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 106 - 88, 16, 88, diFurnace.power, diFurnace.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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 + 8, guiTop + 69 - i, 176, 52 - i, 16, i); - } - - int j1 = diFurnace.getProgressScaled(24); - drawTexturedModalRect(guiLeft + 101 + 9, guiTop + 34, 208, 0, j1 + 1, 16); - - diFurnace.tank.renderTank(guiLeft + 26, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java b/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java deleted file mode 100644 index 68aa1a7c5..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerWatzCore; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityWatzCore; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIWatzCore extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_watz_multiblock.png"); - private TileEntityWatzCore diFurnace; - - public GUIWatzCore(InventoryPlayer invPlayer, TileEntityWatzCore tedf) { - super(new ContainerWatzCore(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - //this.ySize = 222; - this.ySize = 256; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 106 - 18 - 70, 16, 70); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 106 - 70, 16, 70 - 18, diFurnace.power, diFurnace.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory")/* + String.valueOf(diFurnace.powerList)*/, 8, this.ySize - 96 + 2 - 34, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.powerList + " HE/tick"), 8, this.ySize - 50 + 2 + 13, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.heatList + " heat"), 8, this.ySize - 50 + 2 + 22, 4210752); - this.fontRendererObj.drawString(String.valueOf((diFurnace.decayMultiplier * diFurnace.heat)/100 /100 + " waste/tick"), 8, this.ySize - 50 + 2 + 31, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.powerMultiplier + "% power"), 100, this.ySize - 50 + 2 + 13, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.heatMultiplier + "% heat"), 100, this.ySize - 50 + 2 + 22, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.decayMultiplier + "% decay"), 100, this.ySize - 50 + 2 + 31, 4210752); - } - - @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); - - int l = (int)diFurnace.getPowerScaled(70); - drawTexturedModalRect(guiLeft + 152, guiTop + 106 - 18 - l, 192, 70 - l, 16, l); - - diFurnace.tank.renderTank(guiLeft + 134, guiTop + 106 - 18, this.zLevel, 16, 70); - } -} diff --git a/src/main/java/com/hbm/items/tool/ItemWandS.java b/src/main/java/com/hbm/items/tool/ItemWandS.java index ea7ba07fa..f2b7143b7 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandS.java +++ b/src/main/java/com/hbm/items/tool/ItemWandS.java @@ -4,8 +4,6 @@ import java.util.List; import java.util.Random; import com.hbm.world.machine.FWatz; -import com.hbm.world.machine.NuclearReactor; -import com.hbm.world.machine.Watz; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -19,10 +17,8 @@ public class ItemWandS extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Creative-only item"); - list.add("\"Instant structures for everyone!\""); - list.add("(Cycle with shift-right click,"); - list.add("spawn structures with right click!)"); + list.add("DEPRECATED"); + if(itemstack.stackTagCompound != null) { switch(itemstack.stackTagCompound.getInteger("building")) @@ -58,10 +54,8 @@ public class ItemWandS extends Item { switch(stack.stackTagCompound.getInteger("building")) { case 0: - new NuclearReactor().generate(world, rand, x, up ? y : y - 4, z); break; case 1: - new Watz().generate(world, rand, x, up ? y : y - 12, z); break; case 2: new FWatz().generateHull(world, rand, x, up ? y : y - 18, z); diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index 4eac7ec1f..a5784742f 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -216,7 +216,7 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[LARGE_TB] = new HIMARSRocket("single_tb", "himars_single_tb", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 50F, 12F, true, ModBlocks.slag, 1); + standardExplosion(rocket, mop, 50F, 12F, true, ModBlocks.block_slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 35); }}; diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 3cd331dae..77c0bd6b1 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -76,6 +76,7 @@ public class Library { public static String Barnaby99_x = "b04cf173-cff0-4acd-aa19-3d835224b43d"; public static String Ma118 = "1121cb7a-8773-491f-8e2b-221290c93d81"; public static String Adam29Adam29 = "bbae7bfa-0eba-40ac-a0dd-f3b715e73e61"; + public static String Alcater = "0b399a4a-8545-45a1-be3d-ece70d7d48e9"; public static Set contributors = Sets.newHashSet(new String[] { "06ab7c03-55ce-43f8-9d3c-2850e3c652de", //mustang_rudolf @@ -167,7 +168,6 @@ public class Library { world.getBlock(x, y, z) == ModBlocks.reactor_hatch || world.getBlock(x, y, z) == ModBlocks.reactor_conductor || world.getBlock(x, y, z) == ModBlocks.fusion_hatch || - world.getBlock(x, y, z) == ModBlocks.watz_hatch || world.getBlock(x, y, z) == ModBlocks.fwatz_hatch || world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_limiter || world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_emitter || diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 2f05943e1..9001d143a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -337,7 +337,6 @@ public class ClientProxy extends ServerProxy { //DecoContainer ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFileCabinet.class, new RenderFileCabinet()); //multiblocks - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStructureMarker.class, new RenderStructureMaker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMultiblock.class, new RenderMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzStruct.class, new RenderSoyuzMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITERStruct.class, new RenderITERMultiblock()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 8e9cce423..4eb46ca3a 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -107,8 +107,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', "ingotBrick" }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', "ingotNetherBrick" }); - addRecipeAuto(new ItemStack(ModBlocks.marker_structure, 1), new Object[] { "L", "G", "R", 'L', LAPIS.dust(), 'G', Items.glowstone_dust, 'R', Blocks.redstone_torch }); - addRecipeAuto(new ItemStack(ModItems.circuit_raw, 1), new Object[] { "A", "R", "S", 'S', STEEL.plate(), 'R', REDSTONE.dust(), 'A', ModItems.wire_aluminium }); addRecipeAuto(new ItemStack(ModItems.circuit_bismuth_raw, 1), new Object[] { "RPR", "ABA", "RPR", 'R', REDSTONE.dust(), 'P', ANY_PLASTIC.ingot(), 'A', (GeneralConfig.enable528 ? ModItems.circuit_tantalium : ASBESTOS.ingot()), 'B', ModItems.ingot_bismuth }); addRecipeAuto(new ItemStack(ModItems.circuit_tantalium_raw, 1), new Object[] { "RWR", "PTP", "RWR", 'R', REDSTONE.dust(), 'W', ModItems.wire_gold, 'P', CU.plate(), 'T', TA.nugget() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 60d667a0b..1456c584f 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1200,6 +1200,10 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.drill_pipe"); ignoreMappings.add("hbm:tile.dummy_block_drill"); ignoreMappings.add("hbm:tile.dummy_port_drill"); + ignoreMappings.add("hbm:tile.machine_combine_factory"); + ignoreMappings.add("hbm:tile.watz_core"); + ignoreMappings.add("hbm:tile.watz_hatch"); + ignoreMappings.add("hbm:tile.marker_structure"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 47431818c..1d589bf3a 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -21,6 +21,7 @@ import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.client.settings.GameSettings; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.EnumAction; @@ -28,14 +29,16 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; -import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors; import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.common.ForgeModContainer; public class ModEventHandlerRenderer { @@ -374,14 +377,10 @@ public class ModEventHandlerRenderer { public void tintFog(FogColors event) { EntityPlayer player = MainRegistry.proxy.me(); - BiomeGenBase biome = player.worldObj.getBiomeGenForCoords((int) Math.floor(player.posX), (int) Math.floor(player.posZ)); - - if(biome instanceof BiomeGenCraterBase) { - int color = ForgeHooksClient.getSkyBlendColour(player.worldObj, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ)); - event.red = ((color & 0xff0000) >> 16) / 255F; - event.green = ((color & 0x00ff00) >> 8) / 255F; - event.blue = (color & 0x0000ff) / 255F; - } + Vec3 color = getFogBlendColor(player.worldObj, (int) Math.floor(player.posX), (int) Math.floor(player.posZ), event.renderPartialTicks); + event.red = (float) color.xCoord; + event.green = (float) color.yCoord; + event.blue = (float) color.zCoord; float soot = (float) (renderSoot - RadiationConfig.sootFogThreshold); float sootColor = 0.15F; @@ -404,4 +403,71 @@ public class ModEventHandlerRenderer { GL11.glTranslated(horizontal * mult, vertical * mult, 0); } } + + private static boolean fogInit = false; + private static int fogX; + private static int fogZ; + private static Vec3 fogRGBMultiplier; + + /** Same procedure as getting the blended sky color but for fog */ + public static Vec3 getFogBlendColor(World world, int playerX, int playerZ, double partialTicks) { + + if(playerX == fogX && playerZ == fogZ && fogInit) return fogRGBMultiplier; + + fogInit = true; + GameSettings settings = Minecraft.getMinecraft().gameSettings; + int[] ranges = ForgeModContainer.blendRanges; + int distance = 0; + + if(settings.fancyGraphics && settings.renderDistanceChunks >= 0 && settings.renderDistanceChunks < ranges.length) { + distance = ranges[settings.renderDistanceChunks]; + } + + float r = 0F; + float g = 0F; + float b = 0F; + + int divider = 0; + + for(int x = -distance; x <= distance; x++) { + for(int z = -distance; z <= distance; z++) { + BiomeGenBase biome = world.getBiomeGenForCoords(playerX + x, playerZ + z); + Vec3 color = getBiomeFogColors(world, biome, partialTicks); + r += color.xCoord; + g += color.yCoord; + b += color.zCoord; + divider++; + } + } + + fogX = playerX; + fogZ = playerZ; + + fogRGBMultiplier = Vec3.createVectorHelper(r / divider, g / divider, b / divider); + return fogRGBMultiplier; + } + + /** Returns the current biome's fog color adjusted for brightness if in a crater, or the world's cached fog color if not */ + public static Vec3 getBiomeFogColors(World world, BiomeGenBase biome, double partialTicks) { + + Vec3 worldFog = world.getFogColor((float) partialTicks); + double r = worldFog.xCoord; + double g = worldFog.yCoord; + double b = worldFog.zCoord; + + if(biome instanceof BiomeGenCraterBase) { + int color = biome.getSkyColorByTemp(biome.temperature); + r = ((color & 0xff0000) >> 16) / 255F; + g = ((color & 0x00ff00) >> 8) / 255F; + b = (color & 0x0000ff) / 255F; + + float celestialAngle = world.getCelestialAngle((float) partialTicks); + float skyBrightness = MathHelper.clamp_float(MathHelper.cos(celestialAngle * (float) Math.PI * 2.0F) * 2.0F + 0.5F, 0F, 1F); + r *= skyBrightness; + g *= skyBrightness; + b *= skyBrightness; + } + + return Vec3.createVectorHelper(r, g, b); + } } diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 629b49309..5bc992dd8 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -15,8 +15,6 @@ public class PacketDispatcher { { int i = 0; - //Machine type for marker rendering - wrapper.registerMessage(TEStructurePacket.Handler.class, TEStructurePacket.class, i++, Side.CLIENT); //Fluid packet for GUI wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); //Sound packet that keeps client and server separated diff --git a/src/main/java/com/hbm/packet/TEStructurePacket.java b/src/main/java/com/hbm/packet/TEStructurePacket.java deleted file mode 100644 index 59af50274..000000000 --- a/src/main/java/com/hbm/packet/TEStructurePacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityStructureMarker; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEStructurePacket implements IMessage { - - int x; - int y; - int z; - int type; - - public TEStructurePacket() - { - - } - - public TEStructurePacket(int x, int y, int z, int type) - { - this.x = x; - this.y = y; - this.z = z; - this.type = type; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEStructurePacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityStructureMarker) { - - TileEntityStructureMarker marker = (TileEntityStructureMarker) te; - marker.type = m.type; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/render/block/RenderBlockMultipass.java b/src/main/java/com/hbm/render/block/RenderBlockMultipass.java index 9932ae2a1..181407f36 100644 --- a/src/main/java/com/hbm/render/block/RenderBlockMultipass.java +++ b/src/main/java/com/hbm/render/block/RenderBlockMultipass.java @@ -41,31 +41,35 @@ public class RenderBlockMultipass implements ISimpleBlockRenderingHandler { renderer.setRenderBoundsFromBlock(block); GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + IBlockMultiPass multi = (IBlockMultiPass) block; - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); - tessellator.draw(); + for(int i = 0; i < (multi.shouldRenderItemMulti() ? multi.getPasses() : 1); i++) { + this.currentPass = i; + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); + tessellator.draw(); + } /** terrible hack to make this shit work */ if(block == ModBlocks.ore_random) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java b/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java deleted file mode 100644 index 20d55b4d6..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java +++ /dev/null @@ -1,239 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL14; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityStructureMarker; -import com.hbm.world.machine.FWatz; -import com.hbm.world.machine.NuclearReactor; -import com.hbm.world.machine.Watz; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.init.Blocks; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class RenderStructureMaker extends TileEntitySpecialRenderer { - - float pixel = 1F/16F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glRotatef(180, 0F, 0F, 1F); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_BLEND); - GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL14.glBlendEquation(GL14.GL_FUNC_ADD); - GL11.glColor4f(0.5f, 0.25f, 1.0f, 1f); - this.renderBlocks((int)x, (int)y, (int)z, ((TileEntityStructureMarker)tileentity).type, tileentity.getWorldObj().getBlockMetadata(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord)); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_BLEND); - GL11.glPopMatrix(); - } - - public void renderBlocks(int x, int y, int z, int type, int meta) { - int offsetX = 0; - int offsetZ = 0; - if(type == 0) { - - if(meta == 6) { - offsetZ = 3; - } - if(meta == 7) { - offsetX = 3; - } - if(meta == 8) { - offsetZ = -3; - } - if(meta == 9) { - offsetX = -3; - } - - GL11.glTranslatef(-2 + offsetX, -3, -2 + offsetZ); - for(int a = 0; a < 5; a++) { - for(int b = 0; b < 5; b++) { - for(int c = 0; c < 5; c++) { - - Block block = Blocks.air; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("R")) - block = ModBlocks.reactor_element; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("#")) - block = ModBlocks.reactor_computer; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.reactor_control; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("A")) - block = ModBlocks.reactor_hatch; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("I")) - block = ModBlocks.reactor_conductor; - //if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("B")) - // block = ModBlocks.brick_concrete; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - if(type == 1) { - - if(meta == 6) { - offsetZ = 4; - } - if(meta == 7) { - offsetX = 4; - } - if(meta == 8) { - offsetZ = -4; - } - if(meta == 9) { - offsetX = -4; - } - - GL11.glTranslatef(-3 + offsetX, -12, -3 + offsetZ); - for(int a = 0; a < 7; a++) { - for(int b = 0; b < 13; b++) { - for(int c = 0; c < 7; c++) { - - Block block = Blocks.air; - if(Watz.array[b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.reinforced_brick; - if(Watz.array[b][a].substring(c, c + 1).equals("A")) - block = ModBlocks.watz_hatch; - if(Watz.array[b][a].substring(c, c + 1).equals("R")) - block = ModBlocks.watz_control; - if(Watz.array[b][a].substring(c, c + 1).equals("S")) - block = ModBlocks.watz_end; - if(Watz.array[b][a].substring(c, c + 1).equals("I")) - block = ModBlocks.watz_conductor; - if(Watz.array[b][a].substring(c, c + 1).equals("#")) - block = ModBlocks.watz_core; - if(Watz.array[b][a].substring(c, c + 1).equals("K")) - block = ModBlocks.watz_cooler; - if(Watz.array[b][a].substring(c, c + 1).equals("W")) - block = ModBlocks.watz_element; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - if(type == 2) { - - if(meta == 6) { - offsetZ = 10; - } - if(meta == 7) { - offsetX = 10; - } - if(meta == 8) { - offsetZ = -10; - } - if(meta == 9) { - offsetX = -10; - } - - GL11.glTranslatef(-9 + offsetX, -18, -9 + offsetZ); - for(int a = 0; a < 19; a++) { - for(int b = 0; b < 19; b++) { - for(int c = 0; c < 19; c++) { - - Block block = Blocks.air; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("X")) - block = ModBlocks.fwatz_scaffold; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("H")) - block = ModBlocks.fwatz_hatch; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("S")) - block = ModBlocks.fwatz_cooler; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("T")) - block = ModBlocks.fwatz_tank; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("M")) - block = ModBlocks.fwatz_conductor; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.fwatz_computer; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("#")) - block = ModBlocks.fwatz_core; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - } - - public void renderSmolBlockAt(ResourceLocation loc1, ResourceLocation loc2, int x, int y, int z) { - GL11.glPushMatrix(); - GL11.glTranslatef(x, y, z); - GL11.glRotatef(180, 0F, 0F, 1F); - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); - this.bindTexture(loc2); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 1, 1); - this.bindTexture(loc2); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 1, 1); - this.bindTexture(loc2); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); - this.bindTexture(loc2); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); - this.bindTexture(loc1); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); - this.bindTexture(loc1); - tesseract.draw(); - GL11.glPopMatrix(); - - } - -} diff --git a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java index d2ea47b0f..5b8d04cc7 100644 --- a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java +++ b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java @@ -44,6 +44,7 @@ public class RenderAccessoryUtility { private static ResourceLocation pheo = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapePheo.png"); private static ResourceLocation vaer = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeVaer.png"); private static ResourceLocation adam = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeAdam.png"); + private static ResourceLocation alcater = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeAlcater.png"); public static ResourceLocation getCloakFromPlayer(EntityPlayer player) { @@ -51,7 +52,7 @@ public class RenderAccessoryUtility { String name = player.getDisplayName(); if(uuid.equals(Library.HbMinecraft)) { - return (MainRegistry.polaroidID == 11 ? hbm : hbm2); + return (MainRegistry.polaroidID == 11 ? hbm2 : hbm); } if(uuid.equals(Library.Drillgon)) { @@ -123,6 +124,9 @@ public class RenderAccessoryUtility { if(uuid.equals(Library.Adam29Adam29)) { return adam; } + if(uuid.equals(Library.Alcater)) { + return alcater; + } if(Library.contributors.contains(uuid)) { return wiki; } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index b9469a2cf..f8060cbd2 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -82,9 +82,7 @@ public class TileMappings { put(TileEntityConverterRfHe.class, "tileentity_converter_rfhe"); put(TileEntityMachineSchrabidiumTransmutator.class, "tileentity_schrabidium_transmutator"); put(TileEntityMachineDiesel.class, "tileentity_diesel_generator"); - put(TileEntityWatzCore.class, "tileentity_watz_multiblock"); put(TileEntityMachineShredder.class, "tileentity_machine_shredder"); - put(TileEntityMachineCMBFactory.class, "tileentity_machine_cmb"); put(TileEntityFWatzCore.class, "tileentity_fwatz_multiblock"); put(TileEntityMachineTeleporter.class, "tileentity_teleblock"); put(TileEntityHatch.class, "tileentity_seal_lid"); @@ -94,7 +92,6 @@ public class TileMappings { put(TileEntityMachineCyclotron.class, "tileentity_cyclotron"); put(TileEntityMachineExposureChamber.class, "tileentity_exposure_chamber"); put(TileEntityMachineRTG.class, "tileentity_machine_rtg"); - put(TileEntityStructureMarker.class, "tileentity_structure_marker"); put(TileEntityMachineExcavator.class, "tileentity_ntm_excavator"); put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple"); put(TileEntityFluidDuct.class, "tileentity_universal_duct"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java deleted file mode 100644 index 9232bc0da..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java +++ /dev/null @@ -1,385 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerMachineCMBFactory; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineCMBFactory; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; -import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.world.World; - -public class TileEntityMachineCMBFactory extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { - - private ItemStack slots[]; - - public long power = 0; - public int process = 0; - public int soundCycle = 0; - public static final long maxPower = 100000000; - public static final int processSpeed = 200; - public FluidTank tank; - - private static final int[] slots_top = new int[] {1, 3}; - private static final int[] slots_bottom = new int[] {0, 2, 4}; - private static final int[] slots_side = new int[] {0, 2}; - - private String customName; - - public TileEntityMachineCMBFactory() { - slots = new ItemStack[6]; - tank = new FluidTank(Fluids.WATZ, 8000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineCMB"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - switch(i) - { - case 0: - if(stack.getItem() instanceof IBatteryItem) - return true; - break; - case 1: - if(stack.getItem() == ModItems.ingot_magnetized_tungsten || stack.getItem() == ModItems.powder_magnetized_tungsten) - return true; - break; - case 2: - if(stack.getItem() == ModItems.bucket_mud) - return true; - break; - case 3: - if(stack.getItem() == ModItems.ingot_advanced_alloy || stack.getItem() == ModItems.powder_advanced_alloy) - return true; - break; - } - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tank.readFromNBT(nbt, "watz"); - process = nbt.getShort("process"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - tank.writeToNBT(nbt, "watz"); - nbt.setShort("process", (short) process); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 4) - return true; - if(i == 0) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) - return true; - if(i == 2) - if(itemStack.getItem() == Items.bucket) - return true; - - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (process * i) / processSpeed; - } - - public boolean canProcess() { - - boolean b = false; - - if(tank.getFill() >= 1 && power >= 100000 && slots[1] != null && slots[3] != null && (slots[4] == null || slots[4].stackSize <= 60)) - { - boolean flag0 = slots[1].getItem() == ModItems.ingot_magnetized_tungsten || slots[1].getItem() == ModItems.powder_magnetized_tungsten; - boolean flag1 = slots[3].getItem() == ModItems.ingot_advanced_alloy || slots[3].getItem() == ModItems.powder_advanced_alloy; - - b = flag0 && flag1; - } - - return b; - } - - public boolean isProcessing() { - return process > 0; - } - - public void process() { - tank.setFill(tank.getFill() - 1); - power -= 100000; - - process++; - - if(process >= processSpeed) { - - slots[1].stackSize--; - if (slots[1].stackSize == 0) { - slots[1] = null; - } - - slots[3].stackSize--; - if (slots[3].stackSize == 0) { - slots[3] = null; - } - - if(slots[4] == null) - { - slots[4] = new ItemStack(ModItems.ingot_combine_steel, 4); - } else { - - slots[4].stackSize += 4; - } - - process = 0; - } - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - this.updateConnections(); - - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - tank.loadTank(2, 5, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if (canProcess()) { - process(); - if(soundCycle == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "minecart.base", 1.0F, 1.5F); - soundCycle++; - - if(soundCycle >= 25) - soundCycle = 0; - } else { - process = 0; - } - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - - private void updateConnections() { - this.updateStandardConnections(worldObj, this); - this.subscribeToAllAround(tank.getTankType(), this); - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] { tank }; - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] { tank }; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineCMBFactory(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineCMBFactory(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java deleted file mode 100644 index e6551423b..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEStructurePacket; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; - -public class TileEntityStructureMarker extends TileEntity { - - //0: Nuclear Reactor - //1: Watz Power Plant - //2: Fusionary Watz Plant - public int type = 0; - - @Override - public void updateEntity() { - - if(this.type > 2) - type -= 3; - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new TEStructurePacket(xCoord, yCoord, zCoord, type), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = nbt.getInteger("type"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("type", type); - } - -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java deleted file mode 100644 index ad410410b..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ /dev/null @@ -1,787 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.interfaces.IReactor; -import com.hbm.inventory.container.ContainerWatzCore; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIWatzCore; -import com.hbm.items.ModItems; -import com.hbm.items.special.WatzFuel; -import com.hbm.items.tool.ItemTitaniumFilter; -import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardSender; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -@Deprecated -public class TileEntityWatzCore extends TileEntityLoadedBase implements ISidedInventory, IReactor, IEnergyGenerator, IFluidContainer, IFluidSource, IFluidStandardSender, IGUIProvider { - - public long power; - public final static long maxPower = 100000000; - public int heat; - - public int heatMultiplier; - public int powerMultiplier; - public int decayMultiplier; - - public int heatList; - public int wasteList; - public int powerList; - - Random rand = new Random(); - - private ItemStack slots[]; - public int age = 0; - public List list1 = new ArrayList(); - public FluidTank tank; - - private String customName; - - public TileEntityWatzCore() { - slots = new ItemStack[40]; - tank = new FluidTank(Fluids.WATZ, 64000, 0); - } - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.watzPowerplant"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return true; - } - } - - @Override - public void openInventory() {} - - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return null; - } - - @Override - public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { - return false; - } - - @Override - public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tank.readFromNBT(nbt, "watz"); - - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - nbt.setLong("power", power); - tank.writeToNBT(nbt, "watz"); - - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public boolean isStructureValid(World world) { - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 3, this.yCoord + i, this.zCoord - 1) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 3, this.yCoord + i, this.zCoord + 1) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord - 2) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord + 2) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord - 3) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord - 2) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord) != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord + 2) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord + 3) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 0, this.yCoord + i, this.zCoord - 2) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 0, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 0, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 0, this.yCoord + i, this.zCoord + 2) != ModBlocks.watz_control) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord - 3) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord - 2) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord) != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord + 2) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord + 3) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord - 2) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord + 2) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 3, this.yCoord + i, this.zCoord - 1) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 3, this.yCoord + i, this.zCoord + 1) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord) != ModBlocks.watz_conductor) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord) != ModBlocks.watz_conductor) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord + 3, this.yCoord + i, this.zCoord) != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 3, this.yCoord + i, this.zCoord) != ModBlocks.reinforced_brick) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord - 3, this.yCoord + i, this.zCoord) != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 3, this.yCoord + i, this.zCoord) != ModBlocks.reinforced_brick) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord + 3) != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord + 3) != ModBlocks.reinforced_brick) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord - 3) != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord - 3) != ModBlocks.reinforced_brick) - return false; - } - - if(world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord) != ModBlocks.watz_hatch) - return false; - - if(world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord) != ModBlocks.watz_hatch) - return false; - - if(world.getBlock(this.xCoord, this.yCoord, this.zCoord + 3) != ModBlocks.watz_hatch) - return false; - - if(world.getBlock(this.xCoord, this.yCoord, this.zCoord - 3) != ModBlocks.watz_hatch) - return false; - - for(int i = -3; i <= 3; i++) - { - for(int j = -3; j <= 3; j++) - { - if(world.getBlock(this.xCoord + i, this.yCoord + 6, this.zCoord + j) != ModBlocks.watz_end && world.getBlock(this.xCoord + i, this.yCoord + 6, this.zCoord + j) != ModBlocks.watz_conductor) - return false; - } - } - for(int i = -3; i <= 3; i++) - { - for(int j = -3; j <= 3; j++) - { - if(world.getBlock(this.xCoord + i, this.yCoord - 6, this.zCoord + j) != ModBlocks.watz_end && world.getBlock(this.xCoord + i, this.yCoord - 6, this.zCoord + j) != ModBlocks.watz_conductor) - return false; - } - } - - return true; - } - - @Override - public boolean isCoatingValid(World world) { - { - return true; - } - - //return false; - } - - @Override - public boolean hasFuse() { - return slots[38] != null && slots[38].getItem() == ModItems.titanium_filter && ItemTitaniumFilter.getDura(slots[38]) > 0; - } - - @Override - public int getWaterScaled(int i) { - return 0; - } - - @Override - public long getPowerScaled(long i) { - return (power/100 * i) / (maxPower/100); - } - - @Override - public int getCoolantScaled(int i) { - return 0; - } - - @Override - public int getHeatScaled(int i) { - return 0; - } - - @Override - public void updateEntity() { - - if(this.isStructureValid(this.worldObj)) { - - powerMultiplier = 100; - heatMultiplier = 100; - decayMultiplier = 100; - powerList = 0; - heatList = 0; - heat = 0; - - if (hasFuse()) { - - //Adds power and heat - for (int i = 0; i < 36; i++) { - surveyPellet(slots[i]); - } - //Calculates modifiers - for (int i = 0; i < 36; i++) { - surveyPelletAgain(slots[i]); - } - //Decays pellet by (DECAYMULTIPLIER * DEFAULTDECAY=100)/100 ticks - for (int i = 0; i < 36; i++) { - decayPellet(i); - } - } - - if(!worldObj.isRemote) { - - age++; - if (age >= 20) { - age = 0; - } - - this.sendPower(worldObj, xCoord, yCoord + 7, zCoord, ForgeDirection.UP); - this.sendPower(worldObj, xCoord, yCoord - 7, zCoord, ForgeDirection.DOWN); - - this.sendFluid(tank, worldObj, xCoord + 4, yCoord, zCoord, Library.POS_X); - this.sendFluid(tank, worldObj, xCoord, yCoord, zCoord + 4, Library.POS_Z); - this.sendFluid(tank, worldObj, xCoord - 4, yCoord, zCoord, Library.NEG_X); - this.sendFluid(tank, worldObj, xCoord, yCoord, zCoord - 4, Library.NEG_Z); - - if (age == 9 || age == 19) { - fillFluidInit(tank.getTankType()); - } - - //Only damages filter when heat is present (thus waste being created) - if (heatList > 0) { - ItemTitaniumFilter.setDura(slots[38], ItemTitaniumFilter.getDura(slots[38]) - 1); - } - - heatList *= heatMultiplier; - heatList /= 100; - heat = heatList; - - powerList *= powerMultiplier; - powerList /= 100; - power += powerList; - - tank.setFill(tank.getFill() + ((decayMultiplier * heat) / 100) / 100); - - if(power > maxPower) - power = maxPower; - - //Gets rid of 1/4 of the total waste, if at least one access hatch is not occupied - if(tank.getFill() > tank.getMaxFill()) - emptyWaste(); - - power = Library.chargeItemsFromTE(slots, 37, power, maxPower); - - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tank.unloadTank(36, 39, slots); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - } - - public void surveyPellet(ItemStack stack) { - if(stack != null && stack.getItem() instanceof WatzFuel) - { - WatzFuel fuel = (WatzFuel)stack.getItem(); - this.powerList += fuel.power; - this.heatList += fuel.heat; - } - } - - public void surveyPelletAgain(ItemStack stack) { - if(stack != null && stack.getItem() instanceof WatzFuel) - { - WatzFuel fuel = (WatzFuel)stack.getItem(); - this.powerMultiplier *= fuel.powerMultiplier; - this.heatMultiplier *= fuel.heatMultiplier; - this.decayMultiplier *= fuel.decayMultiplier; - } - } - - public void decayPellet(int i) { - if(slots[i] != null && slots[i].getItem() instanceof WatzFuel) - { - WatzFuel fuel = (WatzFuel)slots[i].getItem(); - WatzFuel.setLifeTime(slots[i], WatzFuel.getLifeTime(slots[i]) + this.decayMultiplier); - WatzFuel.updateDamage(slots[i]); - if(WatzFuel.getLifeTime(slots[i]) >= fuel.lifeTime) - { - if(slots[i].getItem() == ModItems.pellet_lead) - slots[i] = new ItemStack(ModItems.powder_lead); - else - slots[i] = new ItemStack(ModItems.pellet_lead); - } - } - } - - public void emptyWaste() { - tank.setFill(tank.getFill() / 4); - tank.setFill(tank.getFill() * 3); - if (!worldObj.isRemote) { - if (this.worldObj.getBlock(this.xCoord + 4, this.yCoord, this.zCoord) == Blocks.air) - { - this.worldObj.setBlock(this.xCoord + 4, this.yCoord, this.zCoord, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - } - else if (this.worldObj.getBlock(this.xCoord - 4, this.yCoord, this.zCoord) == Blocks.air) - { - this.worldObj.setBlock(this.xCoord - 4, this.yCoord, this.zCoord, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - } - else if (this.worldObj.getBlock(this.xCoord, this.yCoord, this.zCoord + 4) == Blocks.air) - { - this.worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord + 4, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - } - else if (this.worldObj.getBlock(this.xCoord, this.yCoord, this.zCoord - 4) == Blocks.air) - { - this.worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord - 4, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - } - else { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, - AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 50, 50)); - - for(EntityPlayer player : players) { - player.triggerAchievement(MainRegistry.achWatzBoom); - } - - if (rand.nextInt(10) != 0) { - for (int i = -3; i <= 3; i++) - for (int j = -5; j <= 5; j++) - for (int k = -3; k <= 3; k++) - if (rand.nextInt(2) == 0) - this.worldObj.setBlock(this.xCoord + i, this.yCoord + j, this.zCoord + k, - ModBlocks.mud_block); - this.worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "random.explode", 3.0F, 0.75F); - } else { - EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, xCoord, yCoord, zCoord, BombConfig.fleijaRadius); - if(!ex.isDead) { - worldObj.spawnEntityInWorld(ex); - EntityCloudFleija cloud = new EntityCloudFleija(worldObj, BombConfig.fleijaRadius); - cloud.posX = xCoord + 0.5; - cloud.posY = yCoord + 0.5; - cloud.posZ = zCoord + 0.6; - worldObj.spawnEntityInWorld(cloud); - } - } - } - } - } - - @Override - public boolean getTact() { - if(age >= 0 && age < 10) - { - return true; - } - - return false; - } - - @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 setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 4, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 4, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 4, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 4, getTact(), type); - - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - return tank.getFill(); - } - - @Override - public void setFluidFill(int i, FluidType type) { - tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return list1; - } - - @Override - public void clearFluidList(FluidType type) { - list1.clear(); - } - @Override - public FluidTank[] getSendingTanks() { - return new FluidTank[] { tank }; - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] { tank }; - } - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerWatzCore(player.inventory, this); - } - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIWatzCore(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 66ea25fcb..9ce319342 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -87,6 +87,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc public long transferFluid(FluidType type, int pressure, long fluid) { long toTransfer = Math.min(getDemand(type, pressure), fluid); tank.setFill(tank.getFill() + (int) toTransfer); + this.markChanged(); return fluid - toTransfer; } @@ -109,12 +110,6 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc tank.setFill(transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; - age++; - if(age >= 20) { - age = 0; - this.markChanged(); - } - if((mode == 1 || mode == 2) && (age == 9 || age == 19)) fillFluidInit(tank.getTankType()); diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index 33272462b..ddf3d89dd 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -63,6 +63,7 @@ public class ArmorUtil { ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.envsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.trenchmaster_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); //Ob ihr wirklich richtig steht, seht ihr wenn das Licht angeht! registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); diff --git a/src/main/java/com/hbm/world/machine/NuclearReactor.java b/src/main/java/com/hbm/world/machine/NuclearReactor.java deleted file mode 100644 index c9117a619..000000000 --- a/src/main/java/com/hbm/world/machine/NuclearReactor.java +++ /dev/null @@ -1,208 +0,0 @@ -//Schematic to java Structure by jajo_11 | inspired by "MITHION'S .SCHEMATIC TO JAVA CONVERTINGTOOL" - -package com.hbm.world.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class NuclearReactor extends WorldGenerator -{ - public static String[][] array2 = new String[][] { - { - " ", - " BBB ", - " B B ", - " BBB ", - " " - }, - { - " BBB ", - "BRCRB", - "BCICB", - "BRCRB", - " BBB " - }, - { - " BAB ", - "BRCRB", - "AC#CA", - "BRCRB", - " BAB " - }, - { - " BBB ", - "BRCRB", - "BCICB", - "BRCRB", - " BBB " - }, - { - " ", - " BBB ", - " B B ", - " BBB ", - " " - } - }; - - Block Block1 = ModBlocks.brick_concrete; - Block Block2 = ModBlocks.reactor_element; - Block Block3 = ModBlocks.reactor_control; - Block Block4 = ModBlocks.reactor_conductor; - Block Block5 = ModBlocks.reactor_hatch; - Block Block6 = ModBlocks.reactor_computer; - - @Override - public boolean generate(World world, Random rand, int x, int y, int z) - { - int i = rand.nextInt(1); - - if(i == 0) - { - generate_r0(world, rand, x, y, z); - } - - return true; - - } - - public boolean generate_r0(World world, Random rand, int x, int y, int z) - { - x -= 2; - z -= 2; - - world.setBlock(x + 0, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 2, ModBlocks.fluid_duct, 0, 3); - world.setBlock(x + 3, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 1, z + 1, Block3, 0, 3); - world.setBlock(x + 3, y + 1, z + 1, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 2, Block3, 0, 3); - world.setBlock(x + 2, y + 1, z + 2, Block4, 0, 3); - world.setBlock(x + 3, y + 1, z + 2, Block3, 0, 3); - world.setBlock(x + 4, y + 1, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 2, y + 1, z + 3, Block3, 0, 3); - world.setBlock(x + 3, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 0, Block5, 2, 3); - world.setBlock(x + 3, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 2, z + 1, Block3, 0, 3); - world.setBlock(x + 3, y + 2, z + 1, Block2, 0, 3); - world.setBlock(x + 4, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 2, Block5, 4, 3); - world.setBlock(x + 1, y + 2, z + 2, Block3, 0, 3); - world.setBlock(x + 2, y + 2, z + 2, Block6, 0, 3); - world.setBlock(x + 3, y + 2, z + 2, Block3, 0, 3); - world.setBlock(x + 4, y + 2, z + 2, Block5, 5, 3); - world.setBlock(x + 0, y + 2, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 3, Block2, 0, 3); - world.setBlock(x + 2, y + 2, z + 3, Block3, 0, 3); - world.setBlock(x + 3, y + 2, z + 3, Block2, 0, 3); - world.setBlock(x + 4, y + 2, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 4, Block5, 3, 3); - world.setBlock(x + 3, y + 2, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 2, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 3, z + 1, Block3, 0, 3); - world.setBlock(x + 3, y + 3, z + 1, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 2, Block3, 0, 3); - world.setBlock(x + 2, y + 3, z + 2, Block4, 0, 3); - world.setBlock(x + 3, y + 3, z + 2, Block3, 0, 3); - world.setBlock(x + 4, y + 3, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 2, y + 3, z + 3, Block3, 0, 3); - world.setBlock(x + 3, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 2, ModBlocks.fluid_duct, 0, 3); - world.setBlock(x + 3, y + 4, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + 4, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 4, Block1, 0, 3); - return true; - - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/machine/Watz.java b/src/main/java/com/hbm/world/machine/Watz.java deleted file mode 100644 index 1fcfdafb3..000000000 --- a/src/main/java/com/hbm/world/machine/Watz.java +++ /dev/null @@ -1,795 +0,0 @@ -//Schematic to java Structure by jajo_11 | inspired by "MITHION'S .SCHEMATIC TO JAVA CONVERTINGTOOL" - -package com.hbm.world.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class Watz extends WorldGenerator -{ - public static String[][] array = new String[][] { - { - "SSSSSSS", - "SSSSSSS", - "SSSSSSS", - "SSSISSS", - "SSSSSSS", - "SSSSSSS", - "SSSSSSS" - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CAC ", - " CWRWC ", - "CWRKRWC", - "ARK#KRA", - "CWRKRWC", - " CWRWC ", - " CAC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - "SSSSSSS", - "SSSSSSS", - "SSSSSSS", - "SSSISSS", - "SSSSSSS", - "SSSSSSS", - "SSSSSSS" - } - }; - - @Override - public boolean generate(World world, Random rand, int x, int y, int z) - { - int i = rand.nextInt(1); - - if(i == 0) - { - generate_r0(world, rand, x, y, z); - } - - return true; - - } - - public boolean generate_r0(World world, Random rand, int x, int y, int z) - { - x -= 3; - z -= 3; - - world.setBlock(x + 0, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 1, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 1, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 1, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 1, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 1, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 1, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 1, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 1, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 1, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 1, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 1, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 1, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 1, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 1, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 1, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 1, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 1, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 1, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 1, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 1, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 1, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 1, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 1, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 1, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 1, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 1, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 1, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 1, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 1, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 1, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 1, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 1, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 1, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 1, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 2, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 2, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 2, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 2, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 2, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 2, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 2, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 2, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 2, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 2, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 2, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 2, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 2, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 2, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 2, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 2, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 2, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 2, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 2, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 2, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 2, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 2, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 2, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 2, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 2, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 2, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 2, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 2, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 2, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 2, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 2, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 2, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 2, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 2, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 3, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 3, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 3, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 3, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 3, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 3, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 3, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 3, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 3, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 3, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 3, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 3, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 3, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 3, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 3, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 3, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 3, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 3, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 3, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 3, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 3, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 3, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 3, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 3, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 3, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 3, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 3, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 3, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 3, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 3, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 3, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 3, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 3, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 3, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 4, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 4, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 4, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 4, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 4, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 4, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 4, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 4, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 4, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 4, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 4, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 4, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 4, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 4, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 4, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 4, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 4, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 4, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 4, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 4, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 4, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 4, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 4, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 4, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 4, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 4, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 4, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 4, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 4, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 4, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 4, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 4, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 5, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 5, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 5, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 5, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 5, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 5, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 5, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 5, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 5, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 5, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 5, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 5, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 5, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 5, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 5, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 5, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 5, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 5, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 5, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 5, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 5, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 5, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 5, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 5, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 5, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 5, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 5, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 5, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 5, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 5, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 5, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 5, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 5, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 5, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 5, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 5, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 5, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 5, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 5, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 5, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 5, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 5, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 5, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 5, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 5, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 5, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 5, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 5, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 5, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 6, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 6, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 6, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 6, z + 0, ModBlocks.watz_hatch, 2, 3); - world.setBlock(x + 4, y + 6, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 6, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 6, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 6, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 6, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 6, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 6, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 6, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 6, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 6, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 6, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 6, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 6, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 6, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 6, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 6, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 6, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 6, z + 3, ModBlocks.watz_hatch, 4, 3); - world.setBlock(x + 1, y + 6, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 6, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 6, z + 3, ModBlocks.watz_core, 0, 3); - world.setBlock(x + 4, y + 6, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 6, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 6, z + 3, ModBlocks.watz_hatch, 5, 3); - world.setBlock(x + 0, y + 6, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 6, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 6, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 6, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 6, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 6, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 6, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 6, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 6, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 6, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 6, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 6, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 6, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 6, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 6, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 6, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 6, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 6, z + 6, ModBlocks.watz_hatch, 3, 3); - world.setBlock(x + 4, y + 6, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 6, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 6, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 7, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 7, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 7, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 7, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 7, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 7, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 7, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 7, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 7, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 7, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 7, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 7, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 7, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 7, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 7, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 7, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 7, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 7, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 7, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 7, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 7, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 7, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 7, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 7, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 7, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 7, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 7, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 7, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 7, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 7, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 7, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 7, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 7, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 7, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 7, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 7, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 7, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 7, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 7, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 7, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 7, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 7, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 7, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 7, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 7, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 7, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 7, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 7, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 7, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 8, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 8, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 8, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 8, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 8, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 8, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 8, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 8, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 8, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 8, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 8, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 8, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 8, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 8, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 8, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 8, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 8, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 8, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 8, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 8, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 8, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 8, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 8, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 8, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 8, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 8, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 8, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 8, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 8, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 8, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 8, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 8, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 8, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 8, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 8, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 8, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 8, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 8, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 8, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 8, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 8, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 8, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 8, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 8, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 8, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 8, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 8, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 8, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 8, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 9, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 9, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 9, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 9, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 9, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 9, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 9, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 9, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 9, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 9, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 9, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 9, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 9, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 9, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 9, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 9, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 9, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 9, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 9, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 9, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 9, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 9, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 9, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 9, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 9, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 9, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 9, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 9, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 9, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 9, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 9, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 9, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 9, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 9, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 9, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 9, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 9, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 9, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 9, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 9, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 9, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 9, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 9, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 9, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 9, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 9, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 9, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 9, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 9, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 10, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 10, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 10, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 10, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 10, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 10, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 10, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 10, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 10, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 10, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 10, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 10, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 10, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 10, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 10, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 10, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 10, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 10, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 10, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 10, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 10, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 10, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 10, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 10, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 10, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 10, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 10, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 10, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 10, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 10, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 10, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 10, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 10, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 10, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 10, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 10, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 10, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 10, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 10, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 10, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 10, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 10, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 10, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 10, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 10, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 10, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 10, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 10, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 10, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 11, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 11, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 11, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 11, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 11, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 11, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 11, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 11, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 11, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 11, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 11, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 11, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 11, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 11, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 11, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 11, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 11, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 11, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 11, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 11, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 11, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 11, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 11, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 11, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 11, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 11, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 11, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 11, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 11, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 11, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 11, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 11, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 11, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 11, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 11, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 11, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 11, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 11, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 11, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 11, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 11, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 11, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 11, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 11, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 11, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 11, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 11, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 11, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 11, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - return true; - - } - -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 80aae005a..bf2b878be 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4779,7 +4779,7 @@ tile.corium_block.name=Corium tile.crane_boxer.name=Conveyor Boxer tile.crane_boxer.desc=Loads a configurable amount of stacks into boxes which move along conveyor belts$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_extractor.name=Conveyor Ejector -tile.crane_extractor.desc=Takes items from inventories and places them on covneyor belts$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side +tile.crane_extractor.desc=Takes items from inventories and places them on conveyor belts$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side tile.crane_grabber.name=Conveyor Grabber tile.crane_grabber.desc=Takes items from passing conveyors and places them into containers$Will only take items from the closest lane$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_inserter.name=Conveyor Inserter @@ -5409,7 +5409,7 @@ tile.red_barrel.name=Explosive Barrel tile.red_cable.name=Red Copper Cable tile.red_cable_classic.name=Red Copper Cable (Classic) tile.red_cable_gauge.name=Power Gauge -tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per tick.$Split networks connected by energy$stroage blocks are considered as one shared network. +tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per tick.$Split networks connected by energy$storage blocks are considered as one shared network. tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector tile.red_pylon.name=Electricity Pole diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_schrabidium.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_schrabidium.png new file mode 100644 index 0000000000000000000000000000000000000000..40fafd83fd36a33bc47224b453aeae122b0fbfc1 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf8>E$le^)`EFk6W`yS z?v(o`9nXFZwtlKu1s7qFVX01we`x<>sL>xm9O8Y6v^$v!th2&GkLbfQJ=tb rGS_NPKMsF!EsArQO7#BxMQ@m|uiF{=xXL9E=xzp2S3j3^P68~V+;p;%qVmf`=K8KB%nqH?b8jc4S@bcl zit?y>zjsZ~H2aoH4JQVN(9=^~E)_T5(ORi4~6J61<{MDF}G`&xa1c@$s?icDqWg zk}wQ0#-O!k@@*hNP?q!azF2FSO_R=_O#Hq5dfe@H6+ol88<)Zmous@y`*cxURs}1Q z%%&)EQ7e@8K{Kx3*b}War>CdtS1N#6G9^jp68J^JFhl|BPiQyyYH=|Lc=NO8qx-kw z*?fjqC{iwO$*Y&I6)S<0lM`o*Aq+!?<8$&n$M<~78(V0t$z3Xw$%HIh(C-Z|&0|fl zf7pz1;Fd}}-{VHLK^TUY`UV(H`m%j>N3_xW``6izEj)O5&-HpeQL4ajFj_lAQRDy; zGe?_5vMi#oS%XCFJ42!4&$emz!7;T+`49HkUEFxoI0PS&@u7I^yXi9n;M#UYhU0-$uJ1~oFS&YUo7JWORI6Q&aS(27;M|g;R}yP2*5+t4m)z!fp2wHo zpc6%rTNMJd51X;NbGIF53ybgh%;qzaMB{rtNFys;g7}x2}(YR*1ULrEXEk> zwVQGgb*{gPF)1J4_t(PJS_QDEy@N*l{>|s#o~6}p#5>znxp>xJr(?3z;2hXICruMs zyR3d<|F9J=78##E{O5N2=pfD)mV)vnU1$k{5@&zE>i~QQLQ_yZ_<+E+00000NkvXX Hu0mjfEdV|n literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/capes/CapeAlcater.png b/src/main/resources/assets/hbm/textures/models/capes/CapeAlcater.png new file mode 100644 index 0000000000000000000000000000000000000000..0d883299e4a1d5b24ee1d5e1897e556f285bb596 GIT binary patch literal 1281 zcmV+c1^)VpP)AVoyzJ{NO|2_zkDDFncDq|GIG@k8<4vtAY=;}US%`Psrhn|{CMVZy za$RA2QXb&^{G7|nOO&cE3yzMCO3kb431sItOG*P=TwL()H}BJ75znvyhv0d^3a>UO zJMQ0m<1Mu@4^Rr zF7G{YIXOA0%@fGZza8w^Y(~_U%VjWXf#n5_Wa||4)iv+lg}tuJXfz_Z=1p;XKA&q_ z5uyR=CzS~DeLryX9^iuN#C{NK>&|G(i32J%AGmzibHj`)kydW;_Z37Fhl*eQTjM@*1Eh z1l*JivH>4d=m|svn1j{>Xyg1%MgS`#5X>U40g?s~^&R;0d+?rt7hXp%0u`%=O3?u3 zkk11|As~|me)uE&{L?;kI{9>PbWkK1hdvJw?)s$bR~9_62yVJVIv0>h0*MANhnqD( zM(C+14`5s1DsWag;J^zsR$VAGh5jr+qXAa60ISy;pD!A~I8q+K^E{q=^%K5)sSj!z zyY;9w`;Vr4_;L?aBIa6whyUWA39sGR!&O(Q zg_enaRSi(~7+5qw{p6kkhQlEX1t0%0=gjJH2Arv&Jr0fFqhGH$bM}Mx!uA)iK`CMB zVi2Jj@*04kz;iqv^Wb;=j_ddPJosgzea~^6(y_W~0f=aT`pG{9gbatnO2wP=`FwSq zPN!=>BfGsFXnz+Fv1y6cIt@_Qy2ADpdVr>OsOZaBeHYeu+WasY| z`Lh7(`&svGtt$wEAP7Qbq>Q8GTqh3M9RS+~KRA9{Mq`Qb`6?`y~9pF|me zvwlkP{N#<-jEeynz;gYR;`vE0pc$7C&~jA6byng5TFx@j0R4`(?YL3R1Bd|_Kq(F2 zZ&sHj24DcCG=RO?trQK=azq2{IE`q4#C$OT18778NFKl(8qolf2QUNC06R`84Nx?m zi1kJ5hyfTt)w6&UMP~saVgLqE^(-Jok;e!T4bXB#1ME0e^8l&&CGrDe00vMs4^UJO zphFD60IKEzik=R1hz4jmq5*cCs(FB-`H}}Pn5}98*Nlq+7{FFFfosM^1GF5`06R`y r^#Gy)45qGn0MP)3Qdd2IZk_)DS-bD8tYjeZ00000NkvXXu0mjfde}(i literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/capes/CapeHbm.png b/src/main/resources/assets/hbm/textures/models/capes/CapeHbm.png deleted file mode 100644 index 3a189322ff4b1284d5ea50650e01d561ed25f3ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1876 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58aSANzu9-rxB9>7?J!r~ZC1_4mtZ zKVMG&`Eth3motCAn(_1XqMxr9e|@z5`-i>XKA-*i_1c%u559bV`Q;}Nz5ep^-IrhQ zfsPpkqai@g5O7RVcm~QWB|(0{|3@}p2>#Bl3JiPB0*}aI1_r);Ak6s6Y2yK)pk#?_ zL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io{`~4h0Li83`{#cT^vIy;@-{)&p+fK(DLw7 zHPcJmCFcMC*H4exSa^`_uAEIz`MZ;wRG<8`*}OZQvDtq2CRP3KGc~du7)lyGap+k7 zyWHQrl96SD5>p8SN26mqquOMb^oAGzl^edX|26R3%CLiZ&A%f&3CtB`43{_(m_Pgy zWv<|7n8e{=t#Ez4*a3gW2bzgu4rLAt?KPPj80_M_o_<|?eEa(h{RBpX*h{OQ`--p_ zFg#0BWV)Qskk-iAw(L5?wl#ZpvfTN4Ud~;inCWa{I8WZ+ry74H!+1|HHS!6!WEcK= z$Z$qc;Zi^Q1Em)-X2}I=m;2clTxJsbe|yJ*s|?krWkVYnSVRS`GfL~u4G?YE=INl` z@bSmGhKCF??tY9Nt{bA5kJmkADRU7!@S4f*+1~3iPo{H}FwBrzFeP3=z|_ft{Rx9x z>0djJE`~YhPHb0qo9B=t+EQ|$ZgyR@A1}jYK8HY-D9#hxnhOL^ls9jdw+zw3Ugxnuk!Df%@gAI6~FkaGSdm?fX@fkUH>n-US7z-FJbc}ruF}$7RU=9$Wat2 zbvVzxp8Ln`yep17>zEiy4|whsmh)(P5Mb!QXyVSuw1Gv%wt+8!C4$+3!(^ZCzS#Fn zzn(Q5Q*mKXocPUzn{GcI$AQ;AVIi zcYyt$c}Szm-xGWv*0b6$B>r{2$165Tm*L{<145D~6mI<7eem<%DaZNan1z-)?-z*d zDqADfFzIUO-R1xJ1 Date: Thu, 11 Jan 2024 21:51:07 +0100 Subject: [PATCH 076/376] guess what? even more removals! --- changelog | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 29 - .../java/com/hbm/blocks/generic/BlockOre.java | 2 +- .../com/hbm/blocks/machine/BlockPillar.java | 60 +- .../hbm/blocks/machine/BlockRotatable.java | 63 - .../com/hbm/blocks/machine/ReactorCore.java | 23 - .../com/hbm/blocks/machine/ReactorHatch.java | 158 --- .../container/ContainerReactorMultiblock.java | 88 -- .../inventory/gui/GUIMachineRadarNTSlots.java | 1 + .../inventory/gui/GUIReactorMultiblock.java | 189 --- src/main/java/com/hbm/lib/Library.java | 20 +- .../java/com/hbm/main/CraftingManager.java | 2 + src/main/java/com/hbm/main/MainRegistry.java | 10 +- .../java/com/hbm/packet/AuxButtonPacket.java | 25 - .../java/com/hbm/tileentity/TileMappings.java | 1 - .../TileEntityMachineReactorLarge.java | 1017 ----------------- .../java/com/hbm/world/dungeon/Spaceship.java | 2 +- .../com/hbm/world/dungeon/Spaceship2.java | 2 +- .../hbm/textures/blocks/inserter_side.png | Bin 423 -> 0 bytes .../hbm/textures/blocks/inserter_top.png | Bin 546 -> 0 bytes .../blocks/machine_deuterium_front.png | Bin 393 -> 0 bytes .../blocks/machine_deuterium_side.png | Bin 450 -> 0 bytes .../textures/blocks/machine_diesel_bottom.png | Bin 463 -> 0 bytes .../textures/blocks/machine_diesel_front.png | Bin 390 -> 0 bytes .../textures/blocks/machine_diesel_side.png | Bin 356 -> 0 bytes .../textures/blocks/machine_diesel_top.png | Bin 313 -> 0 bytes .../hbm/textures/blocks/machine_drill.png | Bin 368 -> 0 bytes .../textures/blocks/machine_refinery_side.png | Bin 542 -> 0 bytes .../blocks/machine_refinery_side_alt.png | Bin 522 -> 0 bytes .../textures/blocks/machine_refinery_top.png | Bin 490 -> 0 bytes .../textures/blocks/machine_rtg_side_blue.png | Bin 581 -> 0 bytes .../textures/blocks/machine_rtg_side_cyan.png | Bin 611 -> 0 bytes .../blocks/machine_rtg_side_green.png | Bin 611 -> 0 bytes .../textures/blocks/machine_rtg_side_grey.png | Bin 573 -> 0 bytes .../blocks/machine_rtg_side_orange.png | Bin 578 -> 0 bytes .../blocks/machine_rtg_side_purple.png | Bin 591 -> 0 bytes .../textures/blocks/machine_rtg_side_red.png | Bin 585 -> 0 bytes .../blocks/machine_rtg_side_yellow.png | Bin 614 -> 0 bytes .../hbm/textures/blocks/machine_rtg_top.png | Bin 562 -> 0 bytes .../textures/blocks/machine_rtg_top_blue.png | Bin 667 -> 0 bytes .../textures/blocks/machine_rtg_top_cyan.png | Bin 656 -> 0 bytes .../textures/blocks/machine_rtg_top_green.png | Bin 683 -> 0 bytes .../textures/blocks/machine_rtg_top_grey.png | Bin 663 -> 0 bytes .../blocks/machine_rtg_top_orange.png | Bin 654 -> 0 bytes .../blocks/machine_rtg_top_purple.png | Bin 677 -> 0 bytes .../textures/blocks/machine_rtg_top_red.png | Bin 661 -> 0 bytes .../blocks/machine_rtg_top_yellow.png | Bin 669 -> 0 bytes .../hbm/textures/blocks/marker_structure.png | Bin 197 -> 0 bytes 48 files changed, 24 insertions(+), 1670 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/machine/BlockRotatable.java delete mode 100644 src/main/java/com/hbm/blocks/machine/ReactorCore.java delete mode 100644 src/main/java/com/hbm/blocks/machine/ReactorHatch.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerReactorMultiblock.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIReactorMultiblock.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java delete mode 100644 src/main/resources/assets/hbm/textures/blocks/inserter_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/inserter_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_deuterium_front.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_deuterium_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_diesel_bottom.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_diesel_front.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_diesel_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_diesel_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_drill.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_refinery_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_refinery_side_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_refinery_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_blue.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_cyan.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_green.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_grey.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_orange.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_purple.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_red.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_yellow.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_blue.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_cyan.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_green.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_grey.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_orange.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_purple.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_red.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_yellow.png delete mode 100755 src/main/resources/assets/hbm/textures/blocks/marker_structure.png diff --git a/changelog b/changelog index b9c3bc58e..fdc381f0e 100644 --- a/changelog +++ b/changelog @@ -12,7 +12,7 @@ * Adjusted the nuclear flash's intensity, the flash will now deal less and less radiation the longer it goes on * The nuclear flash now bypasses radiation resistance, being only affected by blocks and distance * Mushroom clouds' initial scale is now based on the total scale instead of all spawning roughly at the same size, causing fireballs to be comically small for huge bombs -* Removed the old mining drill, combustion generator, old watz core, structure marker and CMB furnace for good +* Removed the old mining drill, combustion generator, old watz core, structure marker, all old large reactor parts and CMB furnace for good ## Fixed * Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7e2d27e99..c7ecebe51 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -902,14 +902,6 @@ public class ModBlocks { public static Block pwr_port; public static Block pwr_controller; public static Block pwr_block; - - @Deprecated public static Block reactor_element; - @Deprecated public static Block reactor_control; - @Deprecated public static Block reactor_hatch; - @Deprecated public static Block reactor_ejector; - @Deprecated public static Block reactor_inserter; - @Deprecated public static Block reactor_conductor; - @Deprecated public static Block reactor_computer; public static Block fusion_conductor; public static Block fusion_center; @@ -1271,8 +1263,6 @@ public class ModBlocks { public static Block pink_double_slab; public static Block pink_stairs; - public static Block ff; - public static Material materialGas = new MaterialGas(); private static void initializeBlock() { @@ -2068,14 +2058,6 @@ public class ModBlocks { pwr_port = new BlockGenericPWR(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block"); - - reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); - reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); - reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_ejector = new BlockRotatable(Material.iron).setBlockName("reactor_ejector").setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_inserter = new BlockRotatable(Material.iron).setBlockName("reactor_inserter").setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_conductor_top").setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); - reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); @@ -2441,8 +2423,6 @@ public class ModBlocks { pink_slab = new BlockPinkSlab(false, Material.wood).setBlockName("pink_slab").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); pink_double_slab = new BlockPinkSlab(true, Material.wood).setBlockName("pink_double_slab").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); pink_stairs = new BlockGenericStairs(pink_planks, 0).setBlockName("pink_stairs").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); - - ff = new BlockFF(Material.iron).setBlockName("ff").setHardness(0.5F).setStepSound(Block.soundTypeGravel).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":code"); } private static void registerBlock() { @@ -3440,14 +3420,6 @@ public class ModBlocks { register(pwr_block); //Multiblock Generators - GameRegistry.registerBlock(reactor_element, reactor_element.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_control, reactor_control.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_hatch, reactor_hatch.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_ejector, reactor_ejector.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_inserter, reactor_inserter.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_conductor, reactor_conductor.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_computer, reactor_computer.getUnlocalizedName()); - register(fusion_conductor); GameRegistry.registerBlock(fusion_center, fusion_center.getUnlocalizedName()); GameRegistry.registerBlock(fusion_motor, fusion_motor.getUnlocalizedName()); @@ -3606,7 +3578,6 @@ public class ModBlocks { GameRegistry.registerBlock(pink_slab, pink_slab.getUnlocalizedName()); GameRegistry.registerBlock(pink_double_slab, pink_double_slab.getUnlocalizedName()); GameRegistry.registerBlock(pink_stairs, pink_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(ff, ff.getUnlocalizedName()); } private static void register(Block b) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index d862c4ea5..97aae0c8c 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -127,7 +127,7 @@ public class BlockOre extends Block { case 23: return Item.getItemFromBlock(ModBlocks.fusion_conductor); case 24: - return Item.getItemFromBlock(ModBlocks.reactor_computer); + return Item.getItemFromBlock(ModBlocks.pwr_fuel); case 25: return Item.getItemFromBlock(ModBlocks.machine_diesel); case 26: diff --git a/src/main/java/com/hbm/blocks/machine/BlockPillar.java b/src/main/java/com/hbm/blocks/machine/BlockPillar.java index a030210b0..8158e9416 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockPillar.java +++ b/src/main/java/com/hbm/blocks/machine/BlockPillar.java @@ -1,23 +1,15 @@ package com.hbm.blocks.machine; -import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; -import api.hbm.fluid.IFluidConnectorBlock; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -public class BlockPillar extends Block implements IFluidConnectorBlock { +public class BlockPillar extends Block { @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -37,18 +29,13 @@ public class BlockPillar extends Block implements IFluidConnectorBlock { textureAlt = bottom; } - public Block setBlockTextureName(String name) { - - if(textureTop.isEmpty()) - textureTop = name; - - if(textureAlt.isEmpty()) - textureAlt = name; - - this.textureName = name; - - return this; - } + public Block setBlockTextureName(String name) { + + if(textureTop.isEmpty()) textureTop = name; + if(textureAlt.isEmpty()) textureAlt = name; + this.textureName = name; + return this; + } @Override @SideOnly(Side.CLIENT) @@ -62,37 +49,6 @@ public class BlockPillar extends Block implements IFluidConnectorBlock { @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { - - if(this == ModBlocks.reactor_element && metadata == 1) - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.iconAlt); - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); } - - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - - if(this != ModBlocks.reactor_element) - return super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ); - - if(player.isSneaking()) - { - if(world.getBlockMetadata(x, y, z) == 0) { - world.setBlockMetadataWithNotify(x, y, z, 1, 3); - } else { - world.setBlockMetadataWithNotify(x, y, z, 0, 3); - } - - return true; - } - - return false; - } - - @Override - public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { - if(this != ModBlocks.reactor_conductor) return false; - return type == Fluids.WATER || type == Fluids.COOLANT || type == Fluids.STEAM || type == Fluids.HOTSTEAM || type == Fluids.SUPERHOTSTEAM || type == Fluids.ULTRAHOTSTEAM; - } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockRotatable.java b/src/main/java/com/hbm/blocks/machine/BlockRotatable.java deleted file mode 100644 index d3e7d538e..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockRotatable.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class BlockRotatable extends Block { - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - - public BlockRotatable(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - - if(this == ModBlocks.reactor_ejector) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":reactor_ejector"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_concrete"); - } - if(this == ModBlocks.reactor_inserter) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":reactor_inserter"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_concrete"); - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/ReactorCore.java b/src/main/java/com/hbm/blocks/machine/ReactorCore.java deleted file mode 100644 index 847ece06f..000000000 --- a/src/main/java/com/hbm/blocks/machine/ReactorCore.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class ReactorCore extends BlockContainer { - - public boolean keepInventory = false; - public Random field_149933_a = new Random(); - - public ReactorCore(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return null; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/ReactorHatch.java b/src/main/java/com/hbm/blocks/machine/ReactorHatch.java deleted file mode 100644 index b83e57aa1..000000000 --- a/src/main/java/com/hbm/blocks/machine/ReactorHatch.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; - -import api.hbm.fluid.IFluidConnectorBlock; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class ReactorHatch extends Block implements IFluidConnectorBlock { - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - - public ReactorHatch(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":reactor_hatch"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_concrete"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(this); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - //this.setDefaultDirection(world, x, y, z); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - - @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()) - { - if(world.getBlockMetadata(x, y, z) == 2) - { - if(world.getTileEntity(x, y, z + 2) instanceof TileEntityMachineReactorLarge) - { - if(((TileEntityMachineReactorLarge)world.getTileEntity(x, y, z + 2)).checkBody()) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z + 2); - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 3) - { - if(world.getTileEntity(x, y, z - 2) instanceof TileEntityMachineReactorLarge) - { - if(((TileEntityMachineReactorLarge)world.getTileEntity(x, y, z - 2)).checkBody()) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z - 2); - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 4) - { - if(world.getTileEntity(x + 2, y, z) instanceof TileEntityMachineReactorLarge) - { - if(((TileEntityMachineReactorLarge)world.getTileEntity(x + 2, y, z)).checkBody()) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x + 2, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 5) - { - if(world.getTileEntity(x - 2, y, z) instanceof TileEntityMachineReactorLarge) - { - if(((TileEntityMachineReactorLarge)world.getTileEntity(x - 2, y, z)).checkBody()) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x - 2, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor Error: Reactor Core not found!")); - } - } - return true; - } else { - return false; - } - } - - @Override - public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { - return type == Fluids.WATER || type == Fluids.COOLANT || type == Fluids.STEAM || type == Fluids.HOTSTEAM || type == Fluids.SUPERHOTSTEAM || type == Fluids.ULTRAHOTSTEAM; - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerReactorMultiblock.java b/src/main/java/com/hbm/inventory/container/ContainerReactorMultiblock.java deleted file mode 100644 index e84e79fd9..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerReactorMultiblock.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerReactorMultiblock extends Container { - - private TileEntityMachineReactorLarge diFurnace; - - public ContainerReactorMultiblock(InventoryPlayer invPlayer, TileEntityMachineReactorLarge tedf) { - - diFurnace = tedf; - - //Water in - this.addSlotToContainer(new Slot(tedf, 0, 8, 90)); - //Water out - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 8, 108)); - //Coolant in - this.addSlotToContainer(new Slot(tedf, 2, 26, 90)); - //Coolant out - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 26, 108)); - - //Fuel in - this.addSlotToContainer(new Slot(tedf, 4, 80, 36)); - //Fuel out - this.addSlotToContainer(new SlotTakeOnly(tedf, 5, 80, 72)); - //Waste in - this.addSlotToContainer(new Slot(tedf, 6, 152, 36)); - //Waste out - this.addSlotToContainer(new SlotTakeOnly(tedf, 7, 152, 72)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 7) { - if (!this.mergeItemStack(var5, 8, this.inventorySlots.size(), true)) - { - return null; - } - } else { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java index 77f1f3a60..2c9338326 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java @@ -52,6 +52,7 @@ public class GUIMachineRadarNTSlots extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.radar.hasCustomInventoryName() ? this.radar.getInventoryName() : I18n.format(this.radar.getInventoryName()); + if(MainRegistry.polaroidID == 11) name = "Reda"; this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorMultiblock.java b/src/main/java/com/hbm/inventory/gui/GUIReactorMultiblock.java deleted file mode 100644 index 7cf44051e..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorMultiblock.java +++ /dev/null @@ -1,189 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerReactorMultiblock; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIReactorMultiblock extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_reactor_large_experimental.png"); - private TileEntityMachineReactorLarge diFurnace; - - public GUIReactorMultiblock(InventoryPlayer invPlayer, TileEntityMachineReactorLarge tedf) { - super(new ContainerReactorMultiblock(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 88 - 52, 16, 52); - diFurnace.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 88 - 52, 16, 52); - diFurnace.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 108, 88, 4); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 114, 88, 4, new String[] { "Hull Temperature:", " " + Math.round((diFurnace.hullHeat) * 0.00001 * 980 + 20) + "°C" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 120, 88, 4, new String[] { "Core Temperature:", " " + Math.round((diFurnace.coreHeat) * 0.00002 * 980 + 20) + "°C" }); - - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 115, guiTop + 17, 18, 90, new String[] { "Operating Level: " + diFurnace.rods + "%" }); - - String fuel = ""; - - switch(diFurnace.type) { - case URANIUM: - fuel = "Uranium"; - break; - case MOX: - fuel = "MOX"; - break; - case PLUTONIUM: - fuel = "Plutonium"; - break; - case SCHRABIDIUM: - fuel = "Schrabidium"; - break; - case THORIUM: - fuel = "Thorium"; - break; - default: - fuel = "ERROR"; - break; - } - - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 98, guiTop + 18, 16, 88, new String[] { fuel + ": " + (diFurnace.fuel / diFurnace.fuelMult) + "/" + (diFurnace.maxFuel / diFurnace.fuelMult) + "ng" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 18, 16, 88, new String[] { "Depleted " + fuel + ": " + (diFurnace.waste / diFurnace.fuelMult) + "/" + (diFurnace.maxWaste / diFurnace.fuelMult) + "ng" }); - - String[] text0 = new String[] { diFurnace.rods > 0 ? "Reactor is ON" : "Reactor is OFF"}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 52, guiTop + 53, 18, 18, mouseX, mouseY, text0); - - String s = "0"; - - FluidType type = diFurnace.tanks[2].getTankType(); - if(type == Fluids.STEAM) s = "1x"; - if(type == Fluids.HOTSTEAM) s = "10x"; - if(type == Fluids.SUPERHOTSTEAM) s = "100x"; - - String[] text4 = new String[] { "Steam compression switch", - "Current compression level: " + s}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 63, guiTop + 107, 14, 18, mouseX, mouseY, text4); - } - - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - if(guiLeft + 115 <= x && guiLeft + 115 + 18 > x && guiTop + 17 < y && guiTop + 17 + 90 >= y) { - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - - int rods = (y - (guiTop + 24)) * 100 / 76; - - if(rods < 0) - rods = 0; - - if(rods > 100) - rods = 100; - - rods = 100 - rods; - - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, rods, 0)); - } - - if(guiLeft + 63 <= x && guiLeft + 63 + 14 > x && guiTop + 107 < y && guiTop + 107 + 18 >= y) { - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - int c = 0; - - FluidType type = diFurnace.tanks[2].getTankType(); - if(type == Fluids.STEAM) c = 0; - if(type == Fluids.HOTSTEAM) c = 1; - if(type == Fluids.SUPERHOTSTEAM) c = 2; - - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, c, 1)); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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); - - int k = diFurnace.rods; - drawTexturedModalRect(guiLeft + 115, guiTop + 107 - 14 - (k * 76 / 100), 208, 36, 18, 14); - - if(diFurnace.rods > 0) - drawTexturedModalRect(guiLeft + 52, guiTop + 53, 212, 0, 18, 18); - - int q = diFurnace.getFuelScaled(88); - drawTexturedModalRect(guiLeft + 98, guiTop + 106 - q, 176, 124 - q, 16, q); - - int j = diFurnace.getWasteScaled(88); - drawTexturedModalRect(guiLeft + 134, guiTop + 106 - j, 192, 124 - j, 16, j); - - int s = diFurnace.size; - - if(s < 8) - drawTexturedModalRect(guiLeft + 50, guiTop + 17, 208, 50 + s * 18, 22, 18); - else - drawTexturedModalRect(guiLeft + 50, guiTop + 17, 230, 50 + (s - 8) * 18, 22, 18); - - - FluidType type = diFurnace.tanks[2].getTankType(); - if(type == Fluids.STEAM) drawTexturedModalRect(guiLeft + 63, guiTop + 107, 176, 18, 14, 18); - if(type == Fluids.HOTSTEAM) drawTexturedModalRect(guiLeft + 63, guiTop + 107, 190, 18, 14, 18); - if(type == Fluids.SUPERHOTSTEAM) drawTexturedModalRect(guiLeft + 63, guiTop + 107, 204, 18, 14, 18); - - if(diFurnace.hasHullHeat()) { - int i = diFurnace.getHullHeatScaled(88); - - i = (int) Math.min(i, 160); - - drawTexturedModalRect(guiLeft + 80, guiTop + 114, 0, 226, i, 4); - } - - if(diFurnace.hasCoreHeat()) { - int i = diFurnace.getCoreHeatScaled(88); - - i = (int) Math.min(i, 160); - - drawTexturedModalRect(guiLeft + 80, guiTop + 120, 0, 230, i, 4); - } - - if(diFurnace.tanks[2].getFill() > 0) { - int i = diFurnace.getSteamScaled(88); - - //i = (int) Math.min(i, 160); - - int offset = 234; - - if(type == Fluids.HOTSTEAM) offset += 4; - if(type == Fluids.SUPERHOTSTEAM) offset += 8; - - drawTexturedModalRect(guiLeft + 80, guiTop + 108, 0, offset, i, 4); - } - - diFurnace.tanks[0].renderTank(guiLeft + 8, guiTop + 88, this.zLevel, 16, 52); - diFurnace.tanks[1].renderTank(guiLeft + 26, guiTop + 88, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 77c0bd6b1..f42d5a4c3 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -77,6 +77,7 @@ public class Library { public static String Ma118 = "1121cb7a-8773-491f-8e2b-221290c93d81"; public static String Adam29Adam29 = "bbae7bfa-0eba-40ac-a0dd-f3b715e73e61"; public static String Alcater = "0b399a4a-8545-45a1-be3d-ece70d7d48e9"; + public static String ege444 = "42ee978c-442a-4cd8-95b6-29e469b6df10"; public static Set contributors = Sets.newHashSet(new String[] { "06ab7c03-55ce-43f8-9d3c-2850e3c652de", //mustang_rudolf @@ -165,8 +166,6 @@ public class Library { return true; if((tileentity != null && (tileentity instanceof IFluidAcceptor || tileentity instanceof IFluidSource)) || - world.getBlock(x, y, z) == ModBlocks.reactor_hatch || - world.getBlock(x, y, z) == ModBlocks.reactor_conductor || world.getBlock(x, y, z) == ModBlocks.fusion_hatch || world.getBlock(x, y, z) == ModBlocks.fwatz_hatch || world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_limiter || @@ -390,23 +389,6 @@ public class Library { Block block = worldObj.getBlock(x, y, z); TileEntity tileentity = worldObj.getTileEntity(x, y, z); - //Large Nuclear Reactor - if(block == ModBlocks.reactor_hatch && worldObj.getBlock(x, y, z + 2) == ModBlocks.reactor_computer) - { - tileentity = worldObj.getTileEntity(x, y, z + 2); - } - if(block == ModBlocks.reactor_hatch && worldObj.getBlock(x, y, z - 2) == ModBlocks.reactor_computer) - { - tileentity = worldObj.getTileEntity(x, y, z - 2); - } - if(block == ModBlocks.reactor_hatch && worldObj.getBlock(x + 2, y, z) == ModBlocks.reactor_computer) - { - tileentity = worldObj.getTileEntity(x + 2, y, z); - } - if(block == ModBlocks.reactor_hatch && worldObj.getBlock(x - 2, y, z) == ModBlocks.reactor_computer) - { - tileentity = worldObj.getTileEntity(x - 2, y, z); - } //FWatz Reactor if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x, y + 11, z + 9) == ModBlocks.fwatz_core) { diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4eb46ca3a..b4fb99e14 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1079,6 +1079,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.ore_nether_uranium, 8), new Object[] { "OOO", "OBO", "OOO", 'O', ModBlocks.ore_nether_uranium_scorched, 'B', Items.water_bucket }); addShapelessAuto(new ItemStack(ModBlocks.ore_gneiss_uranium, 1), new Object[] { ModBlocks.ore_gneiss_uranium_scorched, Items.water_bucket }); addRecipeAuto(new ItemStack(ModBlocks.ore_gneiss_uranium, 8), new Object[] { "OOO", "OBO", "OOO", 'O', ModBlocks.ore_gneiss_uranium_scorched, 'B', Items.water_bucket }); + addShapelessAuto(new ItemStack(ModBlocks.ore_uranium, 1), new Object[] { ModBlocks.ore_sellafield_uranium_scorched, Items.water_bucket }); + addRecipeAuto(new ItemStack(ModBlocks.ore_uranium, 8), new Object[] { "OOO", "OBO", "OOO", 'O', ModBlocks.ore_sellafield_uranium_scorched, 'B', Items.water_bucket }); addRecipeAuto(new ItemStack(ModItems.plate_iron, 4), new Object[] { "##", "##", '#', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_gold, 4), new Object[] { "##", "##", '#', GOLD.ingot() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 1456c584f..b02fb3722 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -43,7 +43,6 @@ import com.hbm.saveddata.satellites.Satellite; import com.hbm.tileentity.TileMappings; import com.hbm.tileentity.bomb.TileEntityLaunchPad; import com.hbm.tileentity.bomb.TileEntityNukeCustom; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.util.*; @@ -864,7 +863,6 @@ public class MainRegistry { ArmorUtil.register(); HazmatRegistry.registerHazmats(); FluidContainerRegistry.register(); - TileEntityMachineReactorLarge.registerAll(); BlockToolConversion.registerRecipes(); AchievementHandler.register(); @@ -1204,6 +1202,14 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.watz_core"); ignoreMappings.add("hbm:tile.watz_hatch"); ignoreMappings.add("hbm:tile.marker_structure"); + ignoreMappings.add("hbm:tile.reactor_element"); + ignoreMappings.add("hbm:tile.reactor_control"); + ignoreMappings.add("hbm:tile.reactor_hatch"); + ignoreMappings.add("hbm:tile.reactor_ejector"); + ignoreMappings.add("hbm:tile.reactor_inserter"); + ignoreMappings.add("hbm:tile.reactor_conductor"); + ignoreMappings.add("hbm:tile.reactor_computer"); + ignoreMappings.add("hbm:tile.ff"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/packet/AuxButtonPacket.java b/src/main/java/com/hbm/packet/AuxButtonPacket.java index 3cb163883..922b1704a 100644 --- a/src/main/java/com/hbm/packet/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/AuxButtonPacket.java @@ -13,7 +13,6 @@ import com.hbm.tileentity.machine.TileEntityCoreStabilizer; import com.hbm.tileentity.machine.TileEntityForceField; import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; import com.hbm.tileentity.machine.TileEntitySoyuzLauncher; import com.hbm.tileentity.machine.storage.TileEntityBarrel; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; @@ -85,30 +84,6 @@ public class AuxButtonPacket implements IMessage { field.isOn = !field.isOn; } - if (te instanceof TileEntityMachineReactorLarge) { - TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge)te; - - if(m.id == 0) - reactor.rods = m.value; - - if(m.id == 1) { - FluidType type = Fluids.STEAM; - int fill = reactor.tanks[2].getFill(); - - switch(m.value) { - case 0: type = Fluids.HOTSTEAM; fill = (int)Math.floor(fill / 10D); break; - case 1: type = Fluids.SUPERHOTSTEAM; fill = (int)Math.floor(fill / 10D); break; - case 2: type = Fluids.STEAM; fill = (int)Math.floor(fill * 100); break; - } - - if(fill > reactor.tanks[2].getMaxFill()) - fill = reactor.tanks[2].getMaxFill(); - - reactor.tanks[2].setTankType(type); - reactor.tanks[2].setFill(fill); - } - } - if (te instanceof TileEntityMachineMissileAssembly) { TileEntityMachineMissileAssembly assembly = (TileEntityMachineMissileAssembly)te; diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index f8060cbd2..0a9afce70 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -135,7 +135,6 @@ public class TileMappings { put(TileEntityMachineShredderLarge.class, "tileentity_machine_big_shredder"); put(TileEntityRFDuct.class, "tileentity_hbm_rfduct"); put(TileEntityReactorControl.class, "tileentity_reactor_remote_control"); - put(TileEntityMachineReactorLarge.class, "tileentity_large_reactor"); put(TileEntityWasteDrum.class, "tileentity_waste_drum"); put(TileEntityDecon.class, "tileentity_decon"); put(TileEntityMachineSatDock.class, "tileentity_miner_dock"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java deleted file mode 100644 index 9cfafeb0d..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java +++ /dev/null @@ -1,1017 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.MobConfig; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.container.ContainerReactorMultiblock; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIReactorMultiblock; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemFuelRod; -import com.hbm.lib.Library; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.fluid.IFluidStandardTransceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityMachineReactorLarge extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider { - - private ItemStack slots[]; - - public int hullHeat; - public final int maxHullHeat = 100000; - public int coreHeat; - public final int maxCoreHeat = 50000; - public int rods; - public final int rodsMax = 100; - public int age = 0; - public List list = new ArrayList(); - public FluidTank[] tanks; - public ReactorFuelType type; - public int fuel; - public int maxFuel = 240 * fuelMult; - public int waste; - public int maxWaste = 240 * fuelMult; - - public static int fuelMult = 1000; - public static int cycleDuration = 24000; - private static int fuelBase = 240 * fuelMult; - private static int waterBase = 128 * 1000; - private static int coolantBase = 64 * 1000; - private static int steamBase = 32 * 1000; - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16 }; - private static final int[] slots_side = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 }; - - private String customName; - - public TileEntityMachineReactorLarge() { - slots = new ItemStack[8]; - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.WATER, 128000, 0); - tanks[1] = new FluidTank(Fluids.COOLANT, 64000, 1); - tanks[2] = new FluidTank(Fluids.STEAM, 32000, 2); - type = ReactorFuelType.URANIUM; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.reactorLarge"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - coreHeat = nbt.getInteger("heat"); - hullHeat = nbt.getInteger("hullHeat"); - rods = nbt.getInteger("rods"); - fuel = nbt.getInteger("fuel"); - waste = nbt.getInteger("waste"); - slots = new ItemStack[getSizeInventory()]; - tanks[0].readFromNBT(nbt, "water"); - tanks[1].readFromNBT(nbt, "coolant"); - tanks[2].readFromNBT(nbt, "steam"); - type = ReactorFuelType.getEnum(nbt.getInteger("type")); - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("heat", coreHeat); - nbt.setInteger("hullHeat", hullHeat); - nbt.setInteger("rods", rods); - nbt.setInteger("fuel", fuel); - nbt.setInteger("waste", waste); - NBTTagList list = new NBTTagList(); - tanks[0].writeToNBT(nbt, "water"); - tanks[1].writeToNBT(nbt, "coolant"); - tanks[2].writeToNBT(nbt, "steam"); - nbt.setInteger("type", type.getID()); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - - } - - public int getCoreHeatScaled(int i) { - return (coreHeat * i) / maxCoreHeat; - } - - public int getHullHeatScaled(int i) { - return (hullHeat * i) / maxHullHeat; - } - - public int getFuelScaled(int i) { - return (fuel * i) / maxFuel; - } - - public int getWasteScaled(int i) { - return (waste * i) / maxWaste; - } - - public int getSteamScaled(int i) { - return (tanks[2].getFill() * i) / tanks[2].getMaxFill(); - } - - public boolean hasCoreHeat() { - return coreHeat > 0; - } - - public boolean hasHullHeat() { - return hullHeat > 0; - } - - public boolean checkBody() { - - return worldObj.getBlock(xCoord + 1, yCoord, zCoord + 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord - 1, yCoord, zCoord + 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord - 1, yCoord, zCoord - 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord + 1, yCoord, zCoord - 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord + 1, yCoord, zCoord) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord - 1, yCoord, zCoord) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord, zCoord + 1) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord, zCoord - 1) == ModBlocks.reactor_control; - } - - public boolean checkSegment(int offset) { - - return worldObj.getBlock(xCoord + 1, yCoord + offset, zCoord + 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord - 1, yCoord + offset, zCoord + 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord - 1, yCoord + offset, zCoord - 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord + 1, yCoord + offset, zCoord - 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord + 1, yCoord + offset, zCoord) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord - 1, yCoord + offset, zCoord) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord + offset, zCoord + 1) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord + offset, zCoord - 1) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord + offset, zCoord) == ModBlocks.reactor_conductor; - } - - private float checkHull() { - - float max = getSize() * 12; - float count = 0; - - for(int y = yCoord - depth; y <= yCoord + height; y++) { - - if(blocksRad(xCoord - 1, y, zCoord + 2)) - count++; - if(blocksRad(xCoord, y, zCoord + 2)) - count++; - if(blocksRad(xCoord + 1, y, zCoord + 2)) - count++; - - if(blocksRad(xCoord - 1, y, zCoord - 2)) - count++; - if(blocksRad(xCoord, y, zCoord - 2)) - count++; - if(blocksRad(xCoord + 1, y, zCoord - 2)) - count++; - - if(blocksRad(xCoord + 2, y, zCoord - 1)) - count++; - if(blocksRad(xCoord + 2, y, zCoord)) - count++; - if(blocksRad(xCoord + 2, y, zCoord + 1)) - count++; - - if(blocksRad(xCoord - 2, y, zCoord - 1)) - count++; - if(blocksRad(xCoord - 2, y, zCoord)) - count++; - if(blocksRad(xCoord - 2, y, zCoord + 1)) - count++; - } - - if(count == 0) - return 1; - - //System.out.println(count + "/" + max); - - return 1 - (count / max); - } - - private boolean blocksRad(int x, int y, int z) { - - Block b = worldObj.getBlock(x, y, z); - - if(b == ModBlocks.block_lead || b == ModBlocks.block_desh || b == ModBlocks.brick_concrete) - return true; - - if(b.getExplosionResistance(null) >= 100) - return true; - - return false; - } - - int height; - int depth; - public int size; - - private void caluclateSize() { - - height = 0; - depth = 0; - - for(int i = 0; i < 7; i++) { - - if(checkSegment(i + 1)) - height++; - else - break; - } - - for(int i = 0; i < 7; i++) { - - if(checkSegment(-i - 1)) - depth++; - else - break; - } - - size = height + depth + 1; - } - - private int getSize() { - return size; - } - - private void generate() { - - int consumption = (int) (((double)maxFuel / cycleDuration) * rods / 100); - - if(consumption > fuel) - consumption = fuel; - - if(consumption + waste > maxWaste) - consumption = maxWaste - waste; - - fuel -= consumption; - waste += consumption; - - int heat = (int) (((double)consumption / size) * type.heat / fuelMult); - - this.coreHeat += heat; - - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote && checkBody()) { - - age++; - if (age >= 20) { - age = 0; - } - - fillFluidInit(tanks[2].getTankType()); - - caluclateSize(); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, size, 3), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - - tanks[0].changeTankSize(waterBase * getSize()); - tanks[1].changeTankSize(coolantBase * getSize()); - tanks[2].changeTankSize(steamBase * getSize()); - - maxWaste = maxFuel = fuelBase * getSize(); - - if(!worldObj.isRemote) { - - if(waste > maxWaste) - waste = maxWaste; - - if(fuel > maxFuel) - fuel = maxFuel; - - tanks[0].loadTank(0, 1, slots); - tanks[1].loadTank(2, 3, slots); - - //Change fuel type if empty - if(fuel == 0) { - - if(slots[4] != null && !getFuelType(slots[4].getItem()).toString().equals(ReactorFuelType.UNKNOWN.toString())) { - - this.type = getFuelType(slots[4].getItem()); - this.waste = 0; - - } - } - - //Meteorite sword - if(slots[4] != null && coreHeat > 0 && slots[4].getItem() == ModItems.meteorite_sword_bred) - slots[4] = new ItemStack(ModItems.meteorite_sword_irradiated); - - //Load fuel - if(slots[4] != null && getFuelContent(slots[4], type) > 0) { - - int cont = getFuelContent(slots[4], type) * fuelMult; - - if(fuel + cont <= maxFuel) { - - if(!slots[4].getItem().hasContainerItem()) { - - slots[4].stackSize--; - fuel += cont; - - } else if(slots[5] == null) { - - slots[5] = new ItemStack(slots[4].getItem().getContainerItem()); - slots[4].stackSize--; - fuel += cont; - - } else if(slots[4].getItem().getContainerItem() == slots[5].getItem() && slots[5].stackSize < slots[5].getMaxStackSize()) { - - slots[4].stackSize--; - slots[5].stackSize++; - fuel += cont; - - } - - if(slots[4].stackSize == 0) - slots[4] = null; - } - } - - //Unload waste - if(slots[6] != null && getWasteAbsorbed(slots[6].getItem(), type) > 0) { - - int absorbed = getWasteAbsorbed(slots[6].getItem(), type) * fuelMult; - - if(absorbed <= waste) { - - if(slots[7] == null) { - - waste -= absorbed; - slots[7] = new ItemStack(getWaste(slots[6].getItem(), type)); - slots[6].stackSize--; - - } else if(slots[7] != null && slots[7].getItem() == getWaste(slots[6].getItem(), type) && slots[7].stackSize < slots[7].getMaxStackSize()) { - - waste -= absorbed; - slots[7].stackSize++; - slots[6].stackSize--; - } - - if(slots[6].stackSize == 0) - slots[6] = null; - } - - } - - if(rods > 0) - generate(); - - if (this.coreHeat > 0 && this.tanks[1].getFill() > 0 && this.hullHeat < this.maxHullHeat) { - this.hullHeat += this.coreHeat * 0.175; - this.coreHeat -= this.coreHeat * 0.1; - - this.tanks[1].setFill(this.tanks[1].getFill() - 10); - - if (this.tanks[1].getFill() < 0) - this.tanks[1].setFill(0); - } - - if (this.hullHeat > maxHullHeat) { - this.hullHeat = maxHullHeat; - } - - if (this.hullHeat > 0 && this.tanks[0].getFill() > 0) { - generateSteam(); - this.hullHeat -= this.hullHeat * 0.085; - } - - if (this.coreHeat > maxCoreHeat) { - this.explode(); - } - - if (rods > 0 && coreHeat > 0 && age == 5) { - - float rad = (float)coreHeat / (float)maxCoreHeat * 50F; - rad *= checkHull(); - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, rad); - } - - for (int i = 0; i < 3; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if(worldObj.getBlock(xCoord, yCoord, zCoord - 2) == ModBlocks.reactor_ejector && worldObj.getBlockMetadata(xCoord, yCoord, zCoord - 2) == 2) - tryEjectInto(xCoord, yCoord, zCoord - 3); - if(worldObj.getBlock(xCoord, yCoord, zCoord + 2) == ModBlocks.reactor_ejector && worldObj.getBlockMetadata(xCoord, yCoord, zCoord + 2) == 3) - tryEjectInto(xCoord, yCoord, zCoord + 3); - if(worldObj.getBlock(xCoord - 2, yCoord, zCoord) == ModBlocks.reactor_ejector && worldObj.getBlockMetadata(xCoord - 2, yCoord, zCoord) == 4) - tryEjectInto(xCoord - 3, yCoord, zCoord); - if(worldObj.getBlock(xCoord + 2, yCoord, zCoord) == ModBlocks.reactor_ejector && worldObj.getBlockMetadata(xCoord + 2, yCoord, zCoord) == 5) - tryEjectInto(xCoord + 3, yCoord, zCoord); - - if(worldObj.getBlock(xCoord, yCoord, zCoord - 2) == ModBlocks.reactor_inserter && worldObj.getBlockMetadata(xCoord, yCoord, zCoord - 2) == 2) - tryInsertFrom(xCoord, yCoord, zCoord - 3); - if(worldObj.getBlock(xCoord, yCoord, zCoord + 2) == ModBlocks.reactor_inserter && worldObj.getBlockMetadata(xCoord, yCoord, zCoord + 2) == 3) - tryInsertFrom(xCoord, yCoord, zCoord + 3); - if(worldObj.getBlock(xCoord - 2, yCoord, zCoord) == ModBlocks.reactor_inserter && worldObj.getBlockMetadata(xCoord - 2, yCoord, zCoord) == 4) - tryInsertFrom(xCoord - 3, yCoord, zCoord); - if(worldObj.getBlock(xCoord + 2, yCoord, zCoord) == ModBlocks.reactor_inserter && worldObj.getBlockMetadata(xCoord + 2, yCoord, zCoord) == 5) - tryInsertFrom(xCoord + 3, yCoord, zCoord); - - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, rods, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, coreHeat, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, hullHeat, 2), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, fuel, 4), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, waste, 5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, type.getID(), 6), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - - private void tryEjectInto(int x, int y, int z) { - - int wSize = type.toString().equals(ReactorFuelType.SCHRABIDIUM.toString()) ? 60 * fuelMult : 6 * fuelMult; - - if(waste < wSize) - return; - - TileEntity te = worldObj.getTileEntity(x, y, z); - - if(te instanceof IInventory) { - - IInventory chest = (IInventory)te; - - Item waste = ModItems.waste_uranium; - - switch(type) { - case PLUTONIUM: - waste = ModItems.waste_plutonium; - break; - case MOX: - waste = ModItems.waste_mox; - break; - case SCHRABIDIUM: - waste = ModItems.waste_schrabidium; - break; - case THORIUM: - waste = ModItems.waste_thorium; - break; - default: - waste = ModItems.waste_uranium; - break; - } - - for(int i = 0; i < chest.getSizeInventory(); i++) { - - if(chest.isItemValidForSlot(i, new ItemStack(waste, 1, 1)) && chest.getStackInSlot(i) != null && chest.getStackInSlot(i).getItem() == waste && chest.getStackInSlot(i).stackSize < chest.getStackInSlot(i).getMaxStackSize()) { - chest.setInventorySlotContents(i, new ItemStack(waste, chest.getStackInSlot(i).stackSize + 1, 1)); - this.waste -= wSize; - return; - } - } - - for(int i = 0; i < chest.getSizeInventory(); i++) { - - if(chest.isItemValidForSlot(i, new ItemStack(waste, 1, 1)) && chest.getStackInSlot(i) == null) { - chest.setInventorySlotContents(i, new ItemStack(waste, 1, 1)); - this.waste -= wSize; - return; - } - } - } - } - - private void tryInsertFrom(int x, int y, int z) { - - TileEntity te = worldObj.getTileEntity(x, y, z); - - if(te instanceof IInventory) { - - IInventory chest = (IInventory)te; - - if(fuel > 0) { - for(int i = 0; i < chest.getSizeInventory(); i++) { - - if(chest.getStackInSlot(i) != null) { - int cont = getFuelContent(chest.getStackInSlot(i), type) * fuelMult; - - if(cont > 0 && fuel + cont <= maxFuel) { - - Item container = chest.getStackInSlot(i).getItem().getContainerItem(); - - chest.decrStackSize(i, 1); - fuel += cont; - - if(chest.getStackInSlot(i) == null && container != null) - chest.setInventorySlotContents(i, new ItemStack(container)); - } - } - } - } else { - for(int i = 0; i < chest.getSizeInventory(); i++) { - - if(chest.getStackInSlot(i) != null) { - int cont = getFuelContent(chest.getStackInSlot(i), getFuelType(chest.getStackInSlot(i).getItem())) * fuelMult; - - if(cont > 0 && fuel + cont <= maxFuel) { - - Item container = chest.getStackInSlot(i).getItem().getContainerItem(); - - type = getFuelType(chest.getStackInSlot(i).getItem()); - chest.decrStackSize(i, 1); - fuel += cont; - - if(chest.getStackInSlot(i) == null && container != null) - chest.setInventorySlotContents(i, new ItemStack(container)); - } - } - } - } - } - } - - private void generateSteam() { - - //function of SHS produced per tick - //maxes out at heat% * tank capacity / 20 - - double statSteMaFiFiLe = 8000; - - double steam = (((double)hullHeat / (double)maxHullHeat) * (/*(double)tanks[2].getMaxFill()*/statSteMaFiFiLe / 50D)) * size; - - double water = steam; - - FluidType type = tanks[2].getTankType(); - if(type == Fluids.STEAM) water /= 100D; - if(type == Fluids.HOTSTEAM) water /= 10; - - tanks[0].setFill(tanks[0].getFill() - (int)Math.ceil(water)); - tanks[2].setFill(tanks[2].getFill() + (int)Math.floor(steam)); - - if(tanks[0].getFill() < 0) - tanks[0].setFill(0); - - if(tanks[2].getFill() > tanks[2].getMaxFill()) - tanks[2].setFill(tanks[2].getMaxFill()); - - } - - private void explode() { - for (int i = 0; i < slots.length; i++) { - this.slots[i] = null; - } - - int rad = (int)(((long)fuel) * 25000L / (fuelBase * 15L)); - - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, rad); - - worldObj.createExplosion(null, this.xCoord, this.yCoord, this.zCoord, 7.5F, true); - ExplosionNukeGeneric.waste(worldObj, this.xCoord, this.yCoord, this.zCoord, 35); - - for(int i = yCoord - depth; i <= yCoord + height; i++) { - - if(worldObj.rand.nextInt(2) == 0) { - randomizeRadBlock(this.xCoord + 1, i, this.zCoord + 1); - } - if(worldObj.rand.nextInt(2) == 0) { - randomizeRadBlock(this.xCoord + 1, i, this.zCoord - 1); - } - if(worldObj.rand.nextInt(2) == 0) { - randomizeRadBlock(this.xCoord - 1, i, this.zCoord - 1); - } - if(worldObj.rand.nextInt(2) == 0) { - randomizeRadBlock(this.xCoord - 1, i, this.zCoord + 1); - } - - if(worldObj.rand.nextInt(5) == 0) { - worldObj.createExplosion(null, this.xCoord, this.yCoord, this.zCoord, 5.0F, true); - } - } - - worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, ModBlocks.sellafield, 5, 3); - - if(MobConfig.enableElementals) { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(100, 100, 100)); - - for(EntityPlayer player : players) { - player.getEntityData().getCompoundTag(player.PERSISTED_NBT_TAG).setBoolean("radMark", true); - } - } - } - - private void randomizeRadBlock(int x, int y, int z) { - - int rand = worldObj.rand.nextInt(20); - - if(rand < 7) - worldObj.setBlock(x, y, z, ModBlocks.toxic_block); - else if(rand < 10) - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 0, 3); - else if(rand < 14) - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 1, 3); - else if(rand < 17) - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 2, 3); - else if(rand < 19) - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 3, 3); - else - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 4, 3); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public void fillFluidInit(FluidType type) { - - for(ForgeDirection dir : new ForgeDirection[] {Library.POS_X, Library.NEG_X, Library.POS_Z, Library.NEG_Z}) { - - if(worldObj.getBlock(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2) == ModBlocks.reactor_hatch) { - fillFluid(this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, getTact(), type); - for(int i = 0; i < 2; i++) this.trySubscribe(tanks[i].getTankType(), worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, Library.NEG_X); - this.sendFluid(tanks[2], worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, Library.NEG_X); - } else { - for(int i = 0; i < 2; i++) this.tryUnsubscribe(tanks[i].getTankType(), worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3); - } - } - - fillFluid(this.xCoord, this.yCoord + height + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - depth - 1, this.zCoord, getTact(), type); - - this.sendFluid(tanks[2], worldObj, this.xCoord, this.yCoord + height + 1, this.zCoord, Library.POS_Y); - this.sendFluid(tanks[2], worldObj, this.xCoord, this.yCoord - depth - 1, this.zCoord, Library.NEG_Y); - } - - @Override - public boolean getTact() { - return this.worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 3 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - - public enum ReactorFuelType { - - URANIUM(250000), - THORIUM(200000), - PLUTONIUM(312500), - MOX(250000), - SCHRABIDIUM(2085000), - UNKNOWN(1); - - private ReactorFuelType(int i) { - heat = i; - } - - //Heat per nugget burned - private int heat; - - public int getHeat() { - return heat; - } - - public int getID() { - return Arrays.asList(ReactorFuelType.values()).indexOf(this); - } - - public static ReactorFuelType getEnum(int i) { - if(i < ReactorFuelType.values().length) - return ReactorFuelType.values()[i]; - else - return ReactorFuelType.URANIUM; - } - } - - static class ReactorFuelEntry { - - int value; - ReactorFuelType type; - Item item; - - public ReactorFuelEntry(int value, ReactorFuelType type, Item item) { - this.value = value; - this.type = type; - this.item = item; - } - } - - static class ReactorWasteEntry { - - int value; - ReactorFuelType type; - Item in; - Item out; - - public ReactorWasteEntry(int value, ReactorFuelType type, Item in, Item out) { - this.value = value; - this.type = type; - this.in = in; - this.out = out; - } - } - - //TODO: turn this steaming hot garbage into hashmaps - static List fuels = new ArrayList(); - static List wastes = new ArrayList(); - - public static void registerAll() { - - TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.URANIUM, ModItems.nugget_uranium_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.URANIUM, ModItems.ingot_uranium_fuel); - - TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.PLUTONIUM, ModItems.nugget_plutonium_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.PLUTONIUM, ModItems.ingot_plutonium_fuel); - - TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.MOX, ModItems.nugget_mox_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.MOX, ModItems.ingot_mox_fuel); - - TileEntityMachineReactorLarge.registerFuelEntry(10, ReactorFuelType.SCHRABIDIUM, ModItems.nugget_schrabidium_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(90, ReactorFuelType.SCHRABIDIUM, ModItems.ingot_schrabidium_fuel); - - TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.THORIUM, ModItems.nugget_thorium_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.THORIUM, ModItems.ingot_thorium_fuel); - } - - public static void registerFuelEntry(int nuggets, ReactorFuelType type, Item fuel) { - - fuels.add(new ReactorFuelEntry(nuggets, type, fuel)); - } - - public static void registerWasteEntry(int nuggets, ReactorFuelType type, Item in, Item out) { - - wastes.add(new ReactorWasteEntry(nuggets, type, in, out)); - } - - public static int getFuelContent(ItemStack item, ReactorFuelType type) { - - if(item == null) - return 0; - - for(ReactorFuelEntry ent : fuels) { - if(ent.item == item.getItem() && type.toString().equals(ent.type.toString())) { - - int value = ent.value; - - //if it's a fuel rod that has been used up, multiply by damage and floor it - if(item.getItem() instanceof ItemFuelRod) { - - double mult = 1D - ((double)ItemFuelRod.getLifeTime(item) / (double)((ItemFuelRod)item.getItem()).lifeTime); - return (int)Math.floor(mult * value); - } - - return value; - } - } - - return 0; - } - - public static ReactorFuelType getFuelType(Item item) { - - for(ReactorFuelEntry ent : fuels) { - if(ent.item == item) - return ent.type; - } - - return ReactorFuelType.UNKNOWN; - } - - public static Item getWaste(Item item, ReactorFuelType type) { - - for(ReactorWasteEntry ent : wastes) { - if(ent.in == item && type.toString().equals(ent.type.toString())) - return ent.out; - } - - return null; - } - - public static int getWasteAbsorbed(Item item, ReactorFuelType type) { - - for(ReactorWasteEntry ent : wastes) { - if(ent.in == item && type.toString().equals(ent.type.toString())) - return ent.value; - } - - return 0; - } - - @Override - public FluidTank[] getAllTanks() { - return tanks; - } - - @Override - public FluidTank[] getSendingTanks() { - return new FluidTank[] {tanks[2]}; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tanks[0], tanks[1]}; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerReactorMultiblock(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIReactorMultiblock(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship.java b/src/main/java/com/hbm/world/dungeon/Spaceship.java index c5f4cc5e2..ff8ca297b 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship.java @@ -22,7 +22,7 @@ public class Spaceship extends WorldGenerator Block Block3 = ModBlocks.deco_steel; Block Block4 = ModBlocks.fusion_heater; Block Block5 = ModBlocks.block_meteor; - Block Block6 = ModBlocks.reactor_element; + Block Block6 = ModBlocks.pwr_fuel; Block Block7 = ModBlocks.cable_switch; Block Block8 = ModBlocks.fusion_hatch; Block Block9 = ModBlocks.reinforced_light; diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship2.java b/src/main/java/com/hbm/world/dungeon/Spaceship2.java index 165fd93d8..d94cb01ae 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship2.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship2.java @@ -18,7 +18,7 @@ public class Spaceship2 Block Block3 = ModBlocks.deco_steel; Block Block4 = ModBlocks.fusion_heater; Block Block5 = ModBlocks.block_meteor; - Block Block6 = ModBlocks.reactor_element; + Block Block6 = ModBlocks.pwr_fuel; Block Block8 = ModBlocks.fusion_hatch; Block Block9 = ModBlocks.reinforced_light; Block Block10 = ModBlocks.reinforced_glass; diff --git a/src/main/resources/assets/hbm/textures/blocks/inserter_side.png b/src/main/resources/assets/hbm/textures/blocks/inserter_side.png deleted file mode 100644 index 528fcd142717749e6df35df380d65155ae22dde9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmV;Y0a*TtP)jh$SbXZs$80pQmmT`6T{0pRg?7+{(vBiB$>TjIS(RaX|A za}2}4G)=%~#LKdn)zu}o3VzDn@ApQmQxOq6-Fv@QP%Yf=_b)TR6tuBY5M$(ayWzbz zpokD-{P_KQ^X(L*?e==TP}P4v>Go-xf@+}!)b15reb+sNVE?5B{!ji>!55gg5QZOVH!D>ICzxOy2W)V_CtuuSPX6IN_25%Yi!Ubj zEnp*p>B0KIyV{j{NLI)#g$@im%;!7%POw}qo6F@w9LH#_0f?dq0Il_3cK4N1B8@Rr zRYed4)O8JjF$RFTt}({ooWnWS=5%YMQVM{wEZaiwGsaxm*4oyWBne8XcLZJsg8=~6 zTBMXX=P1jPD2lkdyF+VDk|dO6iI*0EwHD_bi#Udx8;-ZPEYg%Fj`{iUz+;v{6!Got z4Py*aN`w&C2&}ab1oWSu=>ye#4#50l+OO3Lr4&umpp-%gL8z3%YZOHsdp!X5`#k_z zma$&1$+C=NuSXb$bccp?#5u>8GzDNd9J1ML*zI=AW;60UXOX5YtzJUs+|>&GqTqZ! z15i~J)>`sB2jEkOC9k0n;%bGjPfr9vz-F^yG#W7;kJ)aw6h*;mJZ`D<_aVCo03Nf9 zJkOa~!L@wfq>c3BJ2emLGfj kH%XEN2bZe?^J zG%heMHvEiZ-v9ss2T4RhR5(wSkxNd6KoCWH2TmQk09WF|Na%ok2Yd#sfR`YFm>4Aj z!aiJx2dW=o&@XwOL2;`>SKY2wNs_p(tF;b-AWhRO%kn%Y3TWT=U$5|ws;cU9XBdWY z9H(g_!iSAGjukyjb_d%5&-3oL|448PoZQS n$kPBXg-`Cs5{W>2L2La7B2o1`#MN!000000NkvXXu0mjf9zvY^ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_deuterium_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_deuterium_side.png deleted file mode 100644 index bd8c49821ffd95564de940f298bd514a0e858c82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)N2bZe?^J zG%heMHvEiZ-v9ssKuJVFR5(wKl21;;P!Nab0>&*aG*MS>Jc#jNByIRppo_LFH~=ZO zsYZ>_#+K3^!*~$C_Xa4SF?=B}zmnIPj~Qe#nK+K)y6$i|^nE`Ff-np@6>`7dA8g=` z%x1H9OP=RNQIuuL32%Qf9*>0@>!%|yFZ6o7EX&d~J#afPnOnNuuIW%!6(+cGl9wCS zWo=;%6m6CMaoc-=j`#p>oJo?rT*;y%*||Jk$ijk29LE|=ht+C@4B^AFyp`|!)33Xe z=S$fZ)?j{g6h-C_1emG;t;yEyHw;DtZbr$>C{0-wmB8+5Kr!~HuuYWKQ&JP%m->LtO{?xg sxpqp&Kxa8H0scjJqQnq6_uO3f2hTL~EU`g*U;qFB07*qoM6N<$f}iEQ%>V!Z diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_diesel_bottom.png deleted file mode 100644 index 8c88d493cb95edfa9a3e937660310ae378978dcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;(#7eog=Y0YFJaK~y+TZIVAygFqO?_X3Ws7CNI=HfboJ zA(=^1f#;CM5(kbz#RNzy;0{{oj9S@v5XXb~TOQfqpEqIWeQ)3U_JfV_2F&(Q38v*# z9|K_O5Pp?{acbMP+wC?8g1ZTvE)V9z31wLpML__5J3w4I#124!hk`vi?RGoJd_KP) z0H5mEfDJ@Z1k(m?0f$x>Sg+UP35&&odb8PRq}NOHaAKa$%=5V+Bb|=E@7oi2I6d$j z<$0cES(>K$Ye<*JjwI%w3CCiOsbT}pBm%_k{!h{Kyl*CD<2~Q~OGW?y002ovPDHLk FV1hInz`+0j diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_front.png b/src/main/resources/assets/hbm/textures/blocks/machine_diesel_front.png deleted file mode 100644 index 81a7fb19b45bb45973bb009824ca900e3d0506d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJAr}6n{cFXV90XcB|Acg%OjwYs=+NYDAhq;TEraz;_6IUbg{#}2 z6<3zOH(1y8J*F-3S)Gnczr(etwF?abEghn=r>9<&;u4nSGEnEtxhztbHglHnja<$L zOnYaCaX*{Pbm9d+L-Nym*5}{*2et7nPMYVC(DV3%d0nsQB|ZgqhnWJGIkz!=nD+dq z_~K_Wj7RR+3s_X#WxmT)*u8~WFYdT+&$is?P|?eqZivj?d&+m#yWeuWt8`9%dLmjH z+b(>pP^N9+x@?A7X_rlSw`X)Mn&3ZcS!QfF)2w|}i7TQt9u*#w2(ekrlpu0xp&6gU gtXpsGrIO?Ry;5E?VbkXIz#w4oboFyt=akR{0GjfX^Z)<= diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_diesel_side.png deleted file mode 100644 index babe6929c5e8a11c7738b6aa8866e75017110567..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ2n({>wkn#dggm?ic2+BVj|VGkz+B_+(wGe5s*8uy(Ci{Gzn{?_f`zWlkg#bNjC zOEqh((u=JA!3^kmw$70R?HPDrxw%)Zjo y>$p&2@s*yC7r*cIGugdJR6jaH{LhTo9{Da!=Ej8+u08~MkipZ{&t;ucLK6U1kB#pD diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_diesel_top.png deleted file mode 100644 index 2dc9eeb634b95036106e577853ac97a88c0ff531..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJAo;cA%NkQe#u6F%QhMg)YkSc&9LVL z>Q$h1>SfE!)S0b$k)KM8nV{AW2wF#ynJFTrH@e*PJ-{f6BnSfAH^ZK++Hfos$uF|u zwGgzrlD@t0I;jFxYV}a|_7Cydut~3`e|mNy8=E@-^*5QV==+btj+=;`epT}H^puP-hzMG1wALu45D`*J9706cY&M8UfvKix zxVyUpU^E(0RaHUW?RI<>^Z6X*oFm2vK#Y->mzOUI-h1xv?+Z+=*K4e`#28sD7PM`P za}Hz7fAiPZS8i@@0N89csL5nP*L7KibB+)~k$dk8ylq-wMSP17(E z5w_bc)>c=P(uHQY^?_~ki_kDH&_Osxe1E8wT2qEH}W4GHe zN@qk#ESF2_y575Retyp7;X^6i};lg-4Mjb}50f3J>l*X!K>oIHdU}dVDP_se&(B2*pE~1br;2k*X}?TwZ*LhmzB~-n g@pf8k^BWQ2H`^f~Nj4kllK=n!07*qoM6N<$f}8pAsQ>@~ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_refinery_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_refinery_side_alt.png deleted file mode 100644 index 5d6cc6d8439e3294af0a02904fff85d147d41227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmV+l0`>igP)dBYYlBk znzJ}GSk66*JFEF7^OKp(L~OTPr<6hnK^TUFVThCxAq37jS`$K0mL)=nPE5ve%zC{B zpx5gW1VKk!*EN6H<#Iu4t!bJDfTn3U91ed9j4^CBn@&u=UN5SuqG=kg*DGn7qP0dT z^-uqJJhEIa0VvB7nIs8Wmia2Q)>vyhzA>f~Ptz2DBuS6}N-1Ab>l-0ycUI2;Zg29QNj_$f#!(ORRm{yF^Mx~@Gx9uJ}@qAW{# zqtS>w&si)MNGY+_l4TiLmU)ijnCW!tIZaarg8{?g5ZSIMKoA62YkzTDQOm74=aA3m z(@!A?0_wU(DMc8Dp0(CgRpt5dcn|~uN-28d@tFC1PM+sPQG_vu`Fze~GVvTm5u?$_ zbDE|kNkYHhN9=Yx*RJOO+Ua!q`Ap~Y+4uC>U%ODBzq6_;pCg3e8|F+UONPfy@Bjb+ M07*qoM6N<$f<gsK>UqZ0V7t@wRA0&*h0tMM(0S(88Sdg zoEY#Ub_a;4d3{uUXLRMC>+|{8vfJ&Va}E(9NfMGIL2HeO5M$&i5us@sL}W0g^E_v> z*#IyajZjJrHs5YHUg>Z+puP8m5C8}vaKGPQZum&rTFdo%C4|87c;r3K?RNXi_IkYr zplKSkF^1V}MhJoP`OJ2^Wi%QM_%D~s!1i=H1;7}C25`;+;JxR1y?zd%ZQH(qwHD_b zF-E?8`-*drBp?F*`_JBXUDt>R)>?FyWh|FVx~{_*gE0nxaSof!gb)IUgYCzSF%(4s zK%VDl5ut5c;1OfjbpX7*(Wi62^I(O3zDKC*x=*31D!lgq1P}YY#rp?>wU+07m1W6z zJbt856a|aL0ukYKIx(Bg9<6`;>YF{~y(dl6K7}mH9tcg-01#vB>sR_S-WVggs;WVZ z`~7~fP$@NtRzxVv5~UQ*IrL;QVYONjLSR0hqm&w)&~@F*w~?kP`hRTy3rBxs`&q{r gNs?snJKy8{2DK9Yj1bF#Q2+n{07*qoM6N<$f}gtE@c;k- diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_blue.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_blue.png deleted file mode 100644 index 5ddff42de0e4ed5cfb4e9a88ed120dde8694255e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)h02OgTJW2!y zA`TpQAW%`(vArG-hhz=8V#%`P8UOS9|7Xm_#f8Qg`JdIcEiT4L*L8>p)>@1)sA@e! z2#5$x(@;u5RV%zu=TPY40;J!|`z zoHHQ=hG8JaNC<(x?^)|3hGD3=v)K%@SSmLX9w|n!zY|`IPX1O*TL-Wj(*MnoWv7W?G=b{x%mLI+XoCL{e%z#PF3mqo@IQ4 zi0lg}J%E$?;QZ$LfWGYAGG}LJDk79pY9Hi1i&4bUT5D~!7~tsW2qz-U=kp3MR!~(| zx1IxV`SUHM6r6Jm!%)G!_t;VjecvB=zTIwFxhIekq{MpmqBc*{GypVBgL4i$nM_D2 z;l0OuPfCfkeGJ2}+k23&@{kY$DJ62wq?Bly26K9Ps$JLBe~wjFcV6#Y5rGgmzq!U3 zQ*{7HDeVBJ(`mgN6UOAR7e;OV6Sz-5Ck71 zF@}I-lSLp9ygmI_-C5`~k?hjY^rrf&s_#@aM@L7+d(Z!zwrw%qd-}ddL{Li6G!3Pc z`a0(j5wzCioGGPLffysEX_^|Olmb9RFvcJvlu|IpP)b25Ma~(mbrn~}7_7B8=djlD zv{;Z*!Z}Bb5$`?DIfh~2^Th=*#v0po9ZE!)PN!^dZ}a=%fv)TLb$?ISb#z_F&dv^_ z(TJaScT6S|e%#(N8jWb%mSGrP1)OuFls=$ZiW1Mq@5ZIl~Sgls|e!09P#`sFXT1(&ebX^BPN(q4Jbjs6WLC%?v zXJFK-j<&9Qzcz9Sugq(AogLM@E z#+Zs$DOC{zY;0^`M1-xattzn2P)gz3^)&!{Cnw~bF~$&Mtm4*MRL+@U7~U~otyVnF z=foI^G4i}z*5T1w1E96W7=s#*$Al2D)?%$Cguv5cfrua?q?AZ0@#*}$Qb{QhLO^Rx zb8v7_`o6DyuCqKZm+)p}2!Z|6Q<|o!J^+LeFhJb}0HqYpId*3=lv1RW>d^dcY)a|1 xjkaxZ&QVIKi?YV2wXU0(QoZ73q^gJ z1;H+huuw$=FT4^T#3q|bauP4r2^8-PgpiYy@BI0`Qym{4=f3axpVc%Cy6=0su0upn zN>No6Ip=aZ=MWL03w3c8WADqjMkc*GfF8^O4M~-z?Ie- zYc0+>thLO~X2ckA&JjYO?|Ync7-N_{oe@GPzHQs0M1;v?!uIwyzuw=lvjachE@<19 zwr$zn-DNZy@#Eq%?IwJGyS-cS5^)H-qtbjB^g1bH*6M{fozl2mm=}42Hi~0QRqr?xZgWB0_a|c$h_m zlv2?_9MS-^)`eQ7RG}DPZEX!LB5ZAK6@Vc^&Y7F%QvmiZPe>`DwI+m6z^%2YloH06 zJDe|K(3!$7gl17 zc<-s}n(E--Aa`9?>Kvkcdo?9z5Lszs|LTaUs!AUKy!R`B_4V~)92^Gc7-JF5U>h1O xBIu@RaL$o)E`yR%Ds>K%7-K|hUEYRq{sSHsZWg=EOCA6K002ovPDHLkV1kww45|PC diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_grey.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_grey.png deleted file mode 100644 index 7128c950c49532429e596014805eda560da51dc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmV-D0>b@?P)Nkl>foBVOJw6s39b|iXi^cxg{YI2)ZbO zn7w;@(uaEe>eZ_%cYS?rF-HC;27>_-V`MlSqN;fBan508}{lgW8Wni(%IcchexnFj|K zOZnMsiijXh(=Z$k8I4Am87U-B(n# zROqMC$HT*qf8?tw?&|8wRF#}_*@Iq1Z(=5Eb|L61m>GwM?*X{K z|3=Ok5uxk4Lf$kDKIcqb*Gn^>&*$v#pVGE1ZQF8m^r0+IRaF2~Rkbj&H=}Lal9)`+ zOQqhAot*<_vuRP+ueZb)8I4AzPc!57^*5)dp9?UA!1MDjR#sMu4*+f3B0#wX0Pj5^ z1a5D?;Jq)q@OOv^DW!#i!C*iL0W&Lyl5;NY^ioqwh)Bu7;++2gl$B)g%1Mad00000 LNkvXXu0mjf_0$M` diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_orange.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_orange.png deleted file mode 100644 index da4f8ad1ff3a45c4bf164e3eb0cf6c54d1f8d354..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)S8lmnT8xqZvH5(C#29JYmYg%*dz^Ea zS@o()&Y2Jbr4-Dp0*vE`IOl4T_a1X+P3A;A7W;tlmOTd`&{HJa?ZRgkJ$5j8w|E=3sptTjIQf=D)-1a zR|e3Ln_NGfjYt2`&+Bc?W;0Ss48u@$FtKB}AmgV13Si0c;#(uo$D` Q`~Uy|07*qoM6N<$g6dKT2LJ#7 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_purple.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_purple.png deleted file mode 100644 index c0b633247da9f83c8a44ab44fdf15174672058c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0( z&3o@DrO#9cLI`;8>HD5bzwVGyYO#BJdziz+L*3oo#TdiQ__$^ID9-^95&FL8MtIap z|2%q$suDuLmQwKElXGUZS~d2?*$E*8mdoYF=fR9IYrj}5G=#vFKld7_s(hQgA?Mu0 zyt=%-$g0RSJmXVh8|5mHKx+&PD>wbJ+f#>`i%6_&03$T%8$uAZlx!vD#M<9 z-FwZJ*=jlf#27IL2M4;dv(p}j0Amc++O`XWHvbA;NWwe>k%V$K;6 dX&9`}`7eb+dl=|LZ;t=~002ovPDHLkV1kZN5B>lE diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_red.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_red.png deleted file mode 100644 index 076167a90ed2a0dacf766b91c86fdbed126983d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P)H8iL!CH$k232h~ zgn)?9bse=mO7G$jjKtyoPAtIbskq`pIF!1*BlALpkU0z0q*kB=?& zpF2CKDltZ^h!8@cl)`K_Yv^Y;H^dlud3l-pJRW1rt35e6(HJA|Z*QAZRr$TQM=7O= z`Qh$v&i`kBALks-dr#l@tgo-5s+3XySY2J^?B)g$;n(giD=RB=8BC{BLI^ljWf%s& zZEPSSje%ikcYyQl?fLXY5E0DL(UFP>wbnKVV-}-`V{5Iot;GNf3kx_AVQp=#0gMc) z%E$YA0KRW-QftLIN6xu{d+)KeR)%4i>-lUp>8!+W27>$*mX2;=dXwY4?AUH)P+fv*?W z)OAf=*Q~FvGZ+l`^5Hk55qv(oW-u5~RTXX9E&!~xgb@o%JbwOwn;Y^zJ-EVqzhJ=_L(?=&CXf<@ zu!t}ok2yb@A_C7|?l2nN&tNzlVy#7|lxW+QCodi$A^>+(wcK3+c)Gv!SNej8P;72) zCJ`aVm~{~PGytu2rdBDHDF#?tT0)BmtE;OSppTGJ;^W&X0K0oT#2C?9YTih=|zLbZQ=ANte>3BiXZ zN*|24-g!rBz02M0^daQT+Cm4GU1n#$-QUctIz2s=JkL=|VT@^pQVJ1aV@fGrUS3d2 zc|OzWbeK#gh={lO-bBO$W?9DV?JcG(O8}mpo(O^ftu+A7xn^yQ@eWs2#lyqHdT--w zx7!p&fpZQ3Yb^kET>~%}3@FQzAPA`Iy76mIk1<$lvDWgM#q|4q^zVe#uaxC-Ns=UJ zt-aSY0OuU5)e3;uET*j;RaKEY&G5r9uUX7^JpL;;9w3fmDryqop0a;RyiGi)(fdPIz3*yap4Iw;Z%uE%x^I z2s>Q>dZRP4yD7#P3a5Eo%sBq|nKVuPDr{>K5uzyK==_Ss&6L8e`MJ{^onLuzo7rsB z>bhoUX9sI7lZ(qHXmW8$nx;(?Z7vlN%=QbmTQ-hkq9`KI^CtV7@`Yjec1A=uQvd(}07*qoM6N<$g1Jck A761SM diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_blue.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_blue.png deleted file mode 100644 index 74c8aba72816ad9242b96336b7640527082a375d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)h7(=_)!5G7N?ky*39i6j7~K zp;QC!DXTK)g$-8YkDR_Z0Ox2Ax?Dd0!1Ch}JbMPfY&eTC2JO8k3`5XnJf|3PZtQbY zwEvaRIfru&9Rxwze-r^=t!1It;d<^p3%w3nYc5M$EZ**6rG)$YG%v9f3I#;HUiXzs zg(OKho8JZRdHryR_ny)dud3j8wQej1XV>S2= z)hf)*LAeY;K+}I=nXd#vz|Z+zlu`_bL&Vb3lF#S!IG0XbN{Mq0Ap}xNthL$FOngEJ zthK2Mxm*ro4BmT^B+0IB(&yw7t+i;avlyi3{0FIxGH&0EZzBKz002ovPDHLkV1k+P BEDHbt diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_cyan.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_cyan.png deleted file mode 100644 index c62daaeb5a42158dbfe8690ac2ad12957376c11b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3^P)4u1!Vy$2nubN{S$zMk_b>BJeK@BK!{gB zNTB=@TG18?-LztP6JK9HxI=Zt7Jo1rKQ{^z7=iYkhNMx%jqjwDGC zLJ&fTQEQEJ4k;zxdqM~ipe#$25CW|=kLTwscDn#L=Xklg8tb;$?UE!3-g};VJr=uN zwAP5VwY6Z3iO9dMuVYb?Bx4|DS@L0bH#VtOtBBRr)ljWg5km0u@-ot2*xCX>DMg;= zJokDLXklxM5CTO}kT~biT4SxHC<=@*yjx#KYt6&S3HOJGNGVy`*%@Oagm`0FsZ?;z z@#W|UV+=FxHiN-{$MbWhTPHO-TlW0rh&FTCGN{ zR-<08^V;w8`QU)pexKjBw|v^)=g-|8N-44|Bg---CnvGiqCyDdd5$p#fTAey-jnA! z-up4y|4Qhb!#RhVn3%v?8v(4fOt)G*-rO+TYN3?kTd&7lyNyi}@;r}ul}ZJ%va%AU zrl#=T^Kx}X2!W-Y9YP3vKRpFtZgVs04=~^9M7C-~S1HACI0WGS@R0dVhq=wox8D|G zOhy1HB}yqov)K$<>-aEoppR4NtMZnsn9@2jo!lTw3}+cA{(OKFi@E{77{kpCXbt1_F1?edpJ^-~;CUYR z_U;d`5kdeUv)L@xT8@^!5JfPtIZG5pG@msXug@^CIm_24hlF9sz;{rqk)* z`#v&?B7z{GScF0Wf*{~>yTyZdi(GEE__5ifykFzz%N9y0MsLAr0K>z>7-LY*Il?eR z>n^o8jS&TGX z|Nfho&1Mm$Qpx4>d6FdIVx#NA)Xrm^bF`j+1YmNjmiiAcwNpvisw7DW!w{tuS65y1 z#_|DEI~69kYF)Jj12zJ9o`+HjQLR>;?h62%t~3D{8tV7m8=_uH`E@xRbAwjfFvfIU@O>YxHO@JbBuTff-)DaljWH;t(in8t`43OWGw!Pl RJOBUy002ovPDHLkV1h83JSG4D diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_grey.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_grey.png deleted file mode 100644 index aa04dc3c97bd98dca6c990fb96e6d337861ad455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P)l&b?&krVo;%dF{R|?96`W`A!K}4|DVvIpm ztJ`~zh!8~)Wm%%C6~KHx#~EYr-m|;=iZs0fKt$+v-z`;3(<`jClx4}@-doc23hzDU zAbE!Ip>x@ilX5Deq0r4G#Z%W<6~_!8W>~fcHg0@SZley{#1cvS;pSp z+Y0FB<`Pw;+ktF&>{Yole=@>@c6tpIpfEoFqwTx7(;H&1RFG zoj!MWUwHH87!e^&ujuzbaC39X`uaKmtE;Pc?{TV1mSuSFt44_kS(YIpOSJ#BP(%qHan8}{yk;~y!&=M3!$Xx!dVPj*1 zX0u5g$Nc>HjbFb~;y9+)J0OZ8X0sXQ@bFOA*4C6k%d*6qdYj{PpI_U5NGWk5J1mz=p4ETTwr!_EUDs4q#XWxy zGvjW)%NZZ|IsC|<`VLj)w9NQpc*Wzq%bkro0BqO>B0@AXQcB1`x*0Hjt{)O(*0Tx z8Mk|~Xs0;m@ZNLouUNEGR;yJ9u(`R3YBzE3J*wI#=bZbcx&3p_k#p`;7>!1V2xdkp orFY$JpSMoTITK^-W6;_88$K0Ksx;jNd;&Od|DcVtI z7p*lpXD)?%9Cdc_-lN9jvD9_lC|{i2Z9Z9RmqbDcd>lM)g7kVl)Mzx4UayBzip%wV zLMaIX=1*M5SC5JEtwl1Hu2tb_WM7K|G$AThWFj4 zOW7!;0MOlTmy{Btuh*%nihZ`Is)}_$JOd4$L;w>6Fpe>&)l#1%;}r zD9e&zYlw)@Z}&OxZu4RIjK97=CZ)vDV3%vNN4&F7SY2HOU}a?m?>$yTaL(atzi1SJ zloHN4Qc6o{|B5iBL`n%;6a_Ixs;UAYn#i7Pa^=SZ_F9`*Yq|LCF8jq6I%3m)92PqbR-1FiIfu2DX*C64%nc5U z9S+PkN+}d-2_t|p25T*9GMR|?zA;>=?f}qgwU+8W@%guW(Tut=1|33RI2`hK_bG$H zfX}C2^X1GN%Ccl_ZH<1vPf-+n`r{@4{rQTbD7cy*VvM1#Yt;Jsx^z07rsG;`Qc5VL z&{`8?Y=-9KO({i;aY3QoZsWa2M94WeTX$0D$tK1avDP*=Sgi9;zu!d#^nc8F00000 LNkvXXu0mjf?Ws9P diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_red.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_red.png deleted file mode 100644 index 6065c582a698beac4bfda1369f3dc2d969efe970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4w^i&uQ_S80PxUXO#tMT{}*{Q1LSmZ6>F_4PI2YPA|_ zZEa0vXJ@IZim#84hzQ**Lqzy|bp^mtvl;XU=w?}{)>KtRp63{2==b{oY@MIe%`%Rf zO_Wk77?TkoiXx0Ls7|LNqy7Q5ude}^n3x#rdxZJ5x*Dt=MG>mqZcCb`e7U{l`{E)Z zLKH>pKRh5JjC|6~GL%wit=YM`p_^q427`Bk>FMb(ajiAp`v7*%1=Eb)lu|h7-c^X> v7;7yeLRD2^>qdQ!HqkkUF($;|eVzXTZjns!=VsbR00000NkvXXu0mjf{T?;P diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_yellow.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_yellow.png deleted file mode 100644 index 00431d187fadd41788fdb69f8ba270d25f2e5463..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmV;O0%HA%P)S#|BWjY z3W!pvI*5CS3SlM%r4Jd{$1YPITgZvepF>J2c^+bNa?*ui$k+EL zJbr#3=Nz8rakP1gb6{`~7oW zvO2GXJX<@>-ObFbVcUih_np%(@g^tj3i`Ik)n7k;0&iPo!rwKYI#?K-IKDSZJT{MK swoK1j`<=18{@Q^v^BCXxX}U65%bUpkaQB-h4s-{Dr>mdKI;Vst0DP-QY5)KL From b548b90bb3c8f86dc3d65ff877970693b1f64d8b Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 12 Jan 2024 10:12:46 +0100 Subject: [PATCH 077/376] fixed the last recipes only using polymer --- src/main/java/com/hbm/crafting/ConsumableRecipes.java | 4 ++-- src/main/java/com/hbm/crafting/WeaponRecipes.java | 2 +- src/main/java/com/hbm/inventory/recipes/MagicRecipes.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index e7be64e7e..3ebdae6c8 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -164,8 +164,8 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_polonium, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', PO210.block() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_era, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', ModItems.ingot_semtex }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ANY_RUBBER.ingot(), 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_sapi, 1), new Object[] { "PKP", "DPD", "PKP", 'P', POLYMER.ingot(), 'K', ModItems.insert_kevlar, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', POLYMER.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_sapi, 1), new Object[] { "PKP", "DPD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_kevlar, 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ASBESTOS.ingot(), 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', ModItems.ingot_meteorite_forged }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_yharonite, 1), new Object[] { "YIY", "IYI", "YIY", 'Y', ModItems.billet_yharonite, 'I', ModItems.insert_du }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index e671dc1ca..d820dd9dc 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -160,7 +160,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', STEEL.bolt(), 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ModItems.ingot_polymer, 'M', ModItems.mechanism_rifle_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lunatic_marksman), new Object[] { " GN", "SSM", " A", 'G', KEY_ANYPANE, 'N', ModItems.powder_nitan_mix, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'A', ANY_RESISTANTALLOY.plateCast() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun), new Object[] { "CCC", "SSM", " P", 'C', ModBlocks.capacitor_copper, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 0), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() }); diff --git a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java index 21e8ca942..1cee88f3f 100644 --- a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java @@ -95,7 +95,7 @@ public class MagicRecipes { recipes.add(new MagicRecipe(new ItemStack(ModItems.gun_darter), new OreDictStack(STEEL.plate()), new OreDictStack(STEEL.plate()), - new ComparableStack(ModItems.ingot_polymer), + new OreDictStack(ANY_PLASTIC.ingot()), new OreDictStack(GOLD.plate()))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart, 4, ItemAmmoEnums.AmmoDart.NUCLEAR.ordinal()), From 6b34f063246eb212114719791ea690defcc3f842 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 12 Jan 2024 14:20:34 +0100 Subject: [PATCH 078/376] faster chemplant ejector --- changelog | 1 + .../items/machine/ItemAssemblyTemplate.java | 2 +- .../machine/TileEntityMachineChemplant.java | 69 ++++++++++-------- .../TileEntityMachineChemplantBase.java | 72 ++++++++++--------- 4 files changed, 81 insertions(+), 63 deletions(-) diff --git a/changelog b/changelog index fdc381f0e..6fb4ecbcd 100644 --- a/changelog +++ b/changelog @@ -19,3 +19,4 @@ * Fixed PWR fuel rods not having any radiation value assigned to them * Fixed trenchmaster helmet not having gas mask protection * Fixed large thermobaric artillery rocket still using the wrong slag block +* Fixed some of the assembly templates having broken names due to using the wrong way of translating the output diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index 6c338eec9..a25a54983 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -106,7 +106,7 @@ public class ItemAssemblyTemplate extends Item { return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET; } - String s1 = ("" + StatCollector.translateToLocal(out.getUnlocalizedName() + ".name")).trim(); + String s1 = out.getDisplayName().trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 00523e45b..3c421facd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -428,41 +428,50 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; int[] access = sided != null ? sided.getAccessibleSlotsFromSide(dir.ordinal()) : null; - for(int i = 5; i <= 8; i++) { - - ItemStack out = slots[i]; - - if(out != null) { + boolean shouldOutput = true; + + while(shouldOutput) { + shouldOutput = false; + outer: + for(int i = 5; i <= 8; i++) { - for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { - - int slot = access != null ? access[j] : j; + ItemStack out = slots[i]; + + if(out != null) { - if(!inv.isItemValidForSlot(slot, out)) - continue; + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - ItemStack target = inv.getStackInSlot(slot); - - if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize()) { - this.decrStackSize(i, 1); - target.stackSize++; - return; + if(!inv.isItemValidForSlot(slot, out)) + continue; + + ItemStack target = inv.getStackInSlot(slot); + + if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < Math.min(target.getMaxStackSize(), inv.getInventoryStackLimit())) { + int toDec = Math.min(out.stackSize, Math.min(target.getMaxStackSize(), inv.getInventoryStackLimit()) - target.stackSize); + this.decrStackSize(i, toDec); + target.stackSize += toDec; + shouldOutput = true; + break outer; + } } - } - - for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { - - int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(slot, out)) - continue; - - if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, dir.ordinal()) : inv.isItemValidForSlot(slot, out))) { - ItemStack copy = out.copy(); - copy.stackSize = 1; - inv.setInventorySlotContents(slot, copy); - this.decrStackSize(i, 1); - return; + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; + + if(!inv.isItemValidForSlot(slot, out)) + continue; + + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, dir.ordinal()) : inv.isItemValidForSlot(slot, out))) { + ItemStack copy = out.copy(); + copy.stackSize = 1; + inv.setInventorySlotContents(slot, copy); + this.decrStackSize(i, 1); + shouldOutput = true; + break outer; + } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 129a665fd..162a456f2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -271,42 +271,50 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa IInventory inv = (IInventory) te; ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; - - for(int i = indices[2]; i <= indices[3]; i++) { - - ItemStack out = slots[i]; - - if(out != null) { - - for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { - int slot = access != null ? access[j] : j; + boolean shouldOutput = true; + while(shouldOutput) { + shouldOutput = false; + outer: + for(int i = indices[2]; i <= indices[3]; i++) { + + ItemStack out = slots[i]; + + if(out != null) { - if(!inv.isItemValidForSlot(slot, out)) - continue; - - ItemStack target = inv.getStackInSlot(slot); - - if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { - this.decrStackSize(i, 1); - target.stackSize++; - return; + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; + + if(!inv.isItemValidForSlot(slot, out)) + continue; + + ItemStack target = inv.getStackInSlot(slot); + + if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { + int toDec = Math.min(out.stackSize, Math.min(target.getMaxStackSize(), inv.getInventoryStackLimit()) - target.stackSize); + this.decrStackSize(i, toDec); + target.stackSize += toDec; + shouldOutput = true; + break outer; + } } - } - - for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { - - int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(slot, out)) - continue; - - if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) { - ItemStack copy = out.copy(); - copy.stackSize = 1; - inv.setInventorySlotContents(slot, copy); - this.decrStackSize(i, 1); - return; + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; + + if(!inv.isItemValidForSlot(slot, out)) + continue; + + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) { + ItemStack copy = out.copy(); + copy.stackSize = 1; + inv.setInventorySlotContents(slot, copy); + this.decrStackSize(i, 1); + shouldOutput = true; + break outer; + } } } } From 9a955245cb03442da3f81a505e8412cca956eacd Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 12 Jan 2024 20:58:03 +0100 Subject: [PATCH 079/376] preview render thing --- changelog | 2 + .../hbm/inventory/gui/GUIScreenPreview.java | 110 ++++++++++++++++++ .../com/hbm/main/ModEventHandlerClient.java | 79 ++++++++----- 3 files changed, 162 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java diff --git a/changelog b/changelog index 6fb4ecbcd..15939683f 100644 --- a/changelog +++ b/changelog @@ -13,6 +13,8 @@ * The nuclear flash now bypasses radiation resistance, being only affected by blocks and distance * Mushroom clouds' initial scale is now based on the total scale instead of all spawning roughly at the same size, causing fireballs to be comically small for huge bombs * Removed the old mining drill, combustion generator, old watz core, structure marker, all old large reactor parts and CMB furnace for good +* Chemical plants will now eject all their outputs within a single tick if possible, increasing the throughput of fast recipes with many outputs, like asphalt +* Hitting CTRL + ALT when hovering over an item now displays a preview of that item. Useful if you want to get authentic renders for a wiki, or just like staring at things. ## Fixed * Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java b/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java new file mode 100644 index 000000000..56e50ee60 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java @@ -0,0 +1,110 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenPreview extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/nei/gui_nei.png"); + protected ItemStack preview; + protected int zoom = 1; + + public GUIScreenPreview(ItemStack stack) { + this.preview = stack; + } + + public void drawScreen(int mouseX, int mouseY, float f) { + + if(this.mc.theWorld != null) { + this.drawRect(0, 0, this.width, this.height, 0xFFC6C6C6); + } else { + this.drawBackground(0); + } + + if(!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && Mouse.next()) { + int scroll = Mouse.getEventDWheel(); + + if(scroll < 0 && this.zoom > 1) this.zoom--; + if(scroll > 0 && this.zoom < 15) this.zoom++; + } + + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + protected void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(texture); + ScaledResolution res = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); + GL11.glScaled(zoom, zoom, zoom); + this.drawTexturedModalRect(res.getScaledWidth_double() / 2D / zoom - 9D, res.getScaledHeight_double() / 2D / zoom - 9D, 5, 87, 18, 18); + GL11.glPopMatrix(); + + this.fontRendererObj.drawString("Zoom: " + zoom, 2, this.height - 20, 0xff0000); + this.fontRendererObj.drawString("Windows Scale: " + res.getScaleFactor(), 2, this.height - 10, 0xff0000); + } + + public void drawTexturedModalRect(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { + double f = 0.00390625D; + double f1 = 0.00390625D; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV((double) (x + 0), (double) (y + sizeY), (double) this.zLevel, (double) ((float) (sourceX + 0) * f), (double) ((float) (sourceY + sizeY) * f1)); + tessellator.addVertexWithUV((double) (x + sizeX), (double) (y + sizeY), (double) this.zLevel, (double) ((float) (sourceX + sizeX) * f), (double) ((float) (sourceY + sizeY) * f1)); + tessellator.addVertexWithUV((double) (x + sizeX), (double) (y + 0), (double) this.zLevel, (double) ((float) (sourceX + sizeX) * f), (double) ((float) (sourceY + 0) * f1)); + tessellator.addVertexWithUV((double) (x + 0), (double) (y + 0), (double) this.zLevel, (double) ((float) (sourceX + 0) * f), (double) ((float) (sourceY + 0) * f1)); + tessellator.draw(); + } + + protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { + + if(preview == null) return; + + GL11.glPushMatrix(); + RenderHelper.enableGUIStandardItemLighting(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_DEPTH_TEST); + + GL11.glScaled(zoom, zoom, zoom); + + ScaledResolution res = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); + GL11.glTranslated(res.getScaledWidth_double() / 2D / zoom, res.getScaledHeight_double() / 2D / zoom, -200); + + this.zLevel = 200.0F; + itemRender.zLevel = 200.0F; + + GL11.glEnable(GL11.GL_DEPTH_TEST); + itemRender.renderItemAndEffectIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), preview, -8, -8); + itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), preview, -8, -8, null); + + itemRender.zLevel = 0.0F; + this.zLevel = 0.0F; + + GL11.glPopMatrix(); + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } +} diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 72e07c9b8..2aa380413 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -34,6 +34,7 @@ import com.hbm.interfaces.IItemHUD; import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIArmorTable; +import com.hbm.inventory.gui.GUIScreenPreview; import com.hbm.items.ISyncButtons; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; @@ -931,40 +932,28 @@ public class ModEventHandlerClient { } } - if(mc.currentScreen instanceof GuiContainer && Keyboard.isKeyDown(Keyboard.KEY_F1)) { - - ScaledResolution scaledresolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); - int width = scaledresolution.getScaledWidth(); - int height = scaledresolution.getScaledHeight(); - int mouseX = Mouse.getX() * width / mc.displayWidth; - int mouseY = height - Mouse.getY() * height / mc.displayHeight - 1; + if(Keyboard.isKeyDown(Keyboard.KEY_F1)) { - GuiContainer container = (GuiContainer) mc.currentScreen; - - for(Object o : container.inventorySlots.inventorySlots) { - Slot slot = (Slot) o; - - if(slot.getHasStack()) { - try { - Method isMouseOverSlot = ReflectionHelper.findMethod(GuiContainer.class, container, new String[] {"func_146981_a", "isMouseOverSlot"}, Slot.class, int.class, int.class); - - if((boolean) isMouseOverSlot.invoke(container, slot, mouseX, mouseY)) { - - ComparableStack comp = new ComparableStack(slot.getStack()).makeSingular(); - CanneryBase cannery = Jars.canneries.get(comp); - - if(cannery != null) { - FMLCommonHandler.instance().showGuiScreen(new GuiWorldInAJar(cannery.createScript(), cannery.getName(), cannery.getIcon(), cannery.seeAlso())); - } - - break; - } - - } catch(Exception ex) { } + ItemStack stack = getMouseOverStack(); + if(stack != null) { + ComparableStack comp = new ComparableStack(stack).makeSingular(); + CanneryBase cannery = Jars.canneries.get(comp); + if(cannery != null) { + FMLCommonHandler.instance().showGuiScreen(new GuiWorldInAJar(cannery.createScript(), cannery.getName(), cannery.getIcon(), cannery.seeAlso())); } } } + if(Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) && Keyboard.isKeyDown(Keyboard.KEY_LMENU)) { + + ItemStack stack = getMouseOverStack(); + if(stack != null) { + stack = stack.copy(); + stack.stackSize = 1; + FMLCommonHandler.instance().showGuiScreen(new GUIScreenPreview(stack)); + } + } + if(event.phase == Phase.START) { EntityPlayer player = mc.thePlayer; @@ -985,6 +974,38 @@ public class ModEventHandlerClient { } } + public static ItemStack getMouseOverStack() { + + Minecraft mc = Minecraft.getMinecraft(); + if(mc.currentScreen instanceof GuiContainer) { + + ScaledResolution scaledresolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + int width = scaledresolution.getScaledWidth(); + int height = scaledresolution.getScaledHeight(); + int mouseX = Mouse.getX() * width / mc.displayWidth; + int mouseY = height - Mouse.getY() * height / mc.displayHeight - 1; + + GuiContainer container = (GuiContainer) mc.currentScreen; + + for(Object o : container.inventorySlots.inventorySlots) { + Slot slot = (Slot) o; + + if(slot.getHasStack()) { + try { + Method isMouseOverSlot = ReflectionHelper.findMethod(GuiContainer.class, container, new String[] {"func_146981_a", "isMouseOverSlot"}, Slot.class, int.class, int.class); + + if((boolean) isMouseOverSlot.invoke(container, slot, mouseX, mouseY)) { + return slot.getStack(); + } + + } catch(Exception ex) { } + } + } + } + + return null; + } + @SideOnly(Side.CLIENT) @SubscribeEvent(priority = EventPriority.LOWEST) public void onClientTickLast(ClientTickEvent event) { From 27d613e1c2138e8b2a73189f0d6f20aade4ee97c Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sun, 7 Jan 2024 16:17:59 -0500 Subject: [PATCH 080/376] his name is jim, and he likes throwing rocks at people --- .../com/hbm/entity/mob/EntityGlyphid.java | 3 +- .../hbm/entity/mob/EntityGlyphidDigger.java | 120 +++++++++++++++++- .../hbm/entity/projectile/EntityRubble.java | 34 ++--- 3 files changed, 138 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index dfe3c6376..d23688bde 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -176,8 +176,7 @@ public class EntityGlyphid extends EntityMob { protected Entity findPlayerToAttack() { if(this.isPotionActive(Potion.blindness)) return null; - EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); - return entityplayer; + return this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java index 09801fe4b..1f9b2d343 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java @@ -1,12 +1,26 @@ package com.hbm.entity.mob; +import com.hbm.entity.projectile.EntityRubble; +import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.init.Blocks; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; import net.minecraft.world.World; +import java.util.List; + public class EntityGlyphidDigger extends EntityGlyphid { + protected Entity lastTarget; + protected double lastX; + protected double lastY; + protected double lastZ; public EntityGlyphidDigger(World world) { super(world); @@ -18,17 +32,119 @@ public class EntityGlyphidDigger extends EntityGlyphid { @Override public double getScale() { - return 1.25D; + return 1.3D; } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(35D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); } + public int timer = 0; + @Override + public void onUpdate(){ + super.onUpdate(); + Entity e = this.getEntityToAttack(); + if (e != null) { + + this.lastX = e.posX; + this.lastY = e.posY; + this.lastZ = e.posZ; + + if (--timer <= 0) { + groundSlam(); + timer = 120; + } + } + } + /** + * Mainly composed of crusty old power fist code, with some touch ups + **/ + public void groundSlam(){ + if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < (useExtendedTargeting() ? 128D : 16D)) { + Entity e = this.getEntityToAttack(); + + boolean topAttack = false; + + int l = 6; + float part = -1F / 16F; + + int bugX = (int) posX; + int bugY = (int) posY; + int bugZ = (int) posZ; + + Vec3 vec0 = getLookVec(); + + List list = Library.getBlockPosInPath(bugX, bugY, bugZ, l, vec0); + + for (int i = 0; i < 8; i++) { + vec0.rotateAroundY(part); + list.addAll(Library.getBlockPosInPath(bugX, bugY - 1, bugZ, l, vec0)); + } + + double velX = e.posX - lastX; + double velY = e.posY - lastY; + double velZ = e.posZ - lastZ; + + if(this.lastTarget != e) { + velX = velY = velZ = 0; + } else if (this.getDistanceToEntity(e) < 11) { + topAttack = true; + } + + int prediction = 60; + Vec3 delta = Vec3.createVectorHelper(e.posX - posX + velX * prediction, (e.posY + e.height / 2) - (posY + 1) + velY * prediction, e.posZ - posZ + velZ * prediction); + double len = delta.lengthVector(); + if(len < 3) return; + double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + + double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double y = delta.yCoord; + double v0 = 1.2; + double v02 = v0 * v0; + double g = 0.07D; + double upperLower = topAttack ? 1 : -1; + double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); + Vec3 fireVec = null; + if(!Double.isNaN(targetPitch)) { + + fireVec = Vec3.createVectorHelper(v0, 0, 0); + fireVec.rotateAroundZ((float) -targetPitch); + fireVec.rotateAroundY((float) -(targetYaw + Math.PI * 0.5)); + } + + for (int[] ints : list) { + + int x1 = ints[0]; + int y1 = ints[1]; + int z1 = ints[2]; + + + Block b = worldObj.getBlock(x1, y1, z1); + float k = b.getExplosionResistance(null); + + if (k < 6000 && b.isNormalCube()) { + + EntityRubble rubble = new EntityRubble(worldObj); + rubble.posX = x1 + 0.5F; + rubble.posY = y1 + 2; + rubble.posZ = z1 + 0.5F; + + rubble.setMetaBasedOnBlock(b, worldObj.getBlockMetadata(x1, y1, z1)); + + if(fireVec != null) + rubble.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, rand.nextFloat()); + + worldObj.spawnEntityInWorld(rubble); + + worldObj.setBlock(x1, y1, z1, Blocks.air); + } + } + } + } @Override public boolean isArmorBroken(float amount) { return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); diff --git a/src/main/java/com/hbm/entity/projectile/EntityRubble.java b/src/main/java/com/hbm/entity/projectile/EntityRubble.java index 82aedea6b..5f8144cf7 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRubble.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRubble.java @@ -12,16 +12,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -public class EntityRubble extends EntityThrowable { +public class EntityRubble extends EntityThrowableInterp { - public EntityRubble(World p_i1773_1_) + public EntityRubble(World world) { - super(p_i1773_1_); - } - - public EntityRubble(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); + super(world); } @Override @@ -30,19 +25,18 @@ public class EntityRubble extends EntityThrowable { this.dataWatcher.addObject(17, (int)Integer.valueOf(0)); } - public EntityRubble(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + public EntityRubble(World world, double x, double y, double z) { + super(world, x, y, z); } @Override - protected void onImpact(MovingObjectPosition p_70184_1_) + protected void onImpact(MovingObjectPosition mop) { - if (p_70184_1_.entityHit != null) + if (mop.entityHit != null) { byte b0 = 15; - p_70184_1_.entityHit.attackEntityFrom(ModDamageSource.rubble, b0); + mop.entityHit.attackEntityFrom(ModDamageSource.rubble, b0); } if(this.ticksExisted > 2) { @@ -55,7 +49,17 @@ public class EntityRubble extends EntityThrowable { PacketDispatcher.wrapper.sendToAllAround(new ParticleBurstPacket((int)Math.floor(posX), (int)posY, (int)Math.floor(posZ), this.dataWatcher.getWatchableObjectInt(16), this.dataWatcher.getWatchableObjectInt(17)), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 50)); } } - + + @Override + public double getGravityVelocity() { + return 0.07D; + } + + @Override + protected float getAirDrag() { + return 1F; + } + public void setMetaBasedOnBlock(Block b, int i) { this.dataWatcher.updateObject(16, Block.getIdFromBlock(b)); From a410efcf56a23b612701573edcff87f33d007970 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sun, 7 Jan 2024 16:24:31 -0500 Subject: [PATCH 081/376] sgouts --- src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java | 7 +++++++ .../java/com/hbm/handler/pollution/PollutionHandler.java | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index 7e0378bbd..2d7b5c887 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -81,6 +81,7 @@ public class EntityGlyphidScout extends EntityGlyphid { target.setLocationAndAngles(dirVec.xCoord, dirVec.yCoord, dirVec.zCoord, 0, 0); target.maxAge = 300; target.radius = 6; + target.setWaypointType(TASK_BUILD_HIVE); worldObj.spawnEntityInWorld(target); hasTarget = true; @@ -291,6 +292,12 @@ public class EntityGlyphidScout extends EntityGlyphid { return false; } + @Override + protected Entity findPlayerToAttack() { + if(this.isPotionActive(Potion.blindness)) return null; + + return this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 8D); + } ///RAMPANT MODE STUFFS /** Finds the direction from the bug's location to the target and adds it to their current coord diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 28cd279c4..cdb218fb3 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -11,6 +11,7 @@ import java.util.UUID; import com.hbm.config.MobConfig; import com.hbm.config.RadiationConfig; +import com.hbm.entity.mob.EntityGlyphidDigger; import com.hbm.entity.mob.EntityGlyphidScout; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; @@ -362,8 +363,11 @@ public class PollutionHandler { if (soot >= MobConfig.rampantScoutSpawnThresh) { EntityGlyphidScout scout = new EntityGlyphidScout(event.world); + EntityGlyphidDigger digger = new EntityGlyphidDigger(event.world); scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); + digger.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); event.world.spawnEntityInWorld(scout); + event.world.spawnEntityInWorld(digger); } } } From acf65b8922aa73980f1ace0301502a3143bb6bf8 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 11 Jan 2024 18:40:08 -0500 Subject: [PATCH 082/376] minor scout tweak no.45 --- src/main/java/com/hbm/config/MobConfig.java | 4 ++-- .../java/com/hbm/entity/mob/EntityGlyphidScout.java | 10 ++++++++-- .../com/hbm/handler/pollution/PollutionHandler.java | 1 + 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 1d57e39c8..e777a25bc 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -58,7 +58,7 @@ public class MobConfig { public static boolean rampantMode = false; public static boolean rampantNaturalScoutSpawn = false; - public static double rampantScoutSpawnThresh = 20; + public static double rampantScoutSpawnThresh = 14; public static int rampantScoutSpawnChance = 600; public static boolean scoutInitialSpawn = false; public static boolean rampantExtendedTargetting = false; @@ -101,7 +101,7 @@ public class MobConfig { spawnMax = CommonConfig.createConfigDouble(config, CATEGORY, "12.G07_spawnMax", "Maximum amount of glyphids being able to exist at once through natural spawning", 50); targetingThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G08_targetingThreshold", "Minimum amount of soot required for glyphids' extended targeting range to activate", 1D); - scoutSwarmSpawnChance = CommonConfig.createConfigInt(config, CATEGORY,"12.G10_scoutSwarmSpawn", "How likely are scouts to spawn in swarms, 1 in x chance format", 2); + scoutSwarmSpawnChance = CommonConfig.createConfigInt(config, CATEGORY,"12.G10_scoutSwarmSpawn", "How likely are scouts to spawn in swarms, 1 in x chance format", 3); largeHiveChance = CommonConfig.createConfigInt(config, CATEGORY,"12.G11_largeHiveChance", "The chance for a large hive to spawn, formula: 1/x", 5); largeHiveThreshold = CommonConfig.createConfigInt(config, CATEGORY,"12.G12_largeHiveThreshold", "The soot threshold for a large hive to spawn", 20); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index 2d7b5c887..4d1e08a89 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -112,6 +112,10 @@ public class EntityGlyphidScout extends EntityGlyphid { hasTarget = true; } } + //fixes edge case where glyphids have no task and yet hasTarget is true + if(taskWaypoint == null && hasTarget){ + hasTarget = false; + } if (getCurrentTask() == TASK_TERRAFORM && super.isAtDestination() && canBuildHiveHere()) { communicate(TASK_TERRAFORM, taskWaypoint); @@ -295,9 +299,11 @@ public class EntityGlyphidScout extends EntityGlyphid { @Override protected Entity findPlayerToAttack() { if(this.isPotionActive(Potion.blindness)) return null; - - return this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 8D); + //no extended targeting, and a low attack distance, ensures the scouts are focused in expanding, and not in chasing the player + return this.worldObj.getClosestVulnerablePlayerToEntity(this, 10); } + + ///RAMPANT MODE STUFFS /** Finds the direction from the bug's location to the target and adds it to their current coord diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index cdb218fb3..e946caeef 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -363,6 +363,7 @@ public class PollutionHandler { if (soot >= MobConfig.rampantScoutSpawnThresh) { EntityGlyphidScout scout = new EntityGlyphidScout(event.world); + //escort for the scout, which can also deal with obstacles EntityGlyphidDigger digger = new EntityGlyphidDigger(event.world); scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); digger.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); From 87cf1c80c3d259c25bf11167e75b2c9d1fde9aed Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 12 Jan 2024 19:01:08 -0500 Subject: [PATCH 083/376] ouch. --- .../java/com/hbm/entity/mob/EntityGlyphidDigger.java | 10 ++++++---- .../java/com/hbm/entity/projectile/EntityRubble.java | 7 +------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java index 1f9b2d343..f0c8d6a12 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java @@ -64,7 +64,7 @@ public class EntityGlyphidDigger extends EntityGlyphid { * Mainly composed of crusty old power fist code, with some touch ups **/ public void groundSlam(){ - if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < (useExtendedTargeting() ? 128D : 16D)) { + if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < 30) { Entity e = this.getEntityToAttack(); boolean topAttack = false; @@ -91,7 +91,9 @@ public class EntityGlyphidDigger extends EntityGlyphid { if(this.lastTarget != e) { velX = velY = velZ = 0; - } else if (this.getDistanceToEntity(e) < 11) { + } + + if (this.getDistanceToEntity(e) > 20) { topAttack = true; } @@ -105,7 +107,7 @@ public class EntityGlyphidDigger extends EntityGlyphid { double y = delta.yCoord; double v0 = 1.2; double v02 = v0 * v0; - double g = 0.07D; + double g = 0.03D; double upperLower = topAttack ? 1 : -1; double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); Vec3 fireVec = null; @@ -126,7 +128,7 @@ public class EntityGlyphidDigger extends EntityGlyphid { Block b = worldObj.getBlock(x1, y1, z1); float k = b.getExplosionResistance(null); - if (k < 6000 && b.isNormalCube()) { + if (k < 200 && b.isNormalCube()) { EntityRubble rubble = new EntityRubble(worldObj); rubble.posX = x1 + 0.5F; diff --git a/src/main/java/com/hbm/entity/projectile/EntityRubble.java b/src/main/java/com/hbm/entity/projectile/EntityRubble.java index 5f8144cf7..05459bcfd 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRubble.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRubble.java @@ -12,7 +12,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -public class EntityRubble extends EntityThrowableInterp { +public class EntityRubble extends EntityThrowableNT { public EntityRubble(World world) { @@ -50,11 +50,6 @@ public class EntityRubble extends EntityThrowableInterp { } } - @Override - public double getGravityVelocity() { - return 0.07D; - } - @Override protected float getAirDrag() { return 1F; From c88ee74f7f548228c4c2dac367bd99d411362cd7 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sat, 13 Jan 2024 08:04:43 -0500 Subject: [PATCH 084/376] flixes and tweaks --- src/main/java/com/hbm/entity/mob/EntityGlyphid.java | 2 +- .../java/com/hbm/entity/mob/EntityGlyphidBlaster.java | 2 +- .../com/hbm/entity/mob/EntityGlyphidBombardier.java | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index d23688bde..c0cbb40f2 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -315,7 +315,7 @@ public class EntityGlyphid extends EntityMob { if(source.isFireDamage()) { amount *= 0.7F; } else if(source.getDamageType().equals("player")) { - amount *= 1.5F; + amount *= getScale() < 1.25 ? 1.5 : getScale() < 1.3 ? 0.8 : 0.5; } else if(source == ModDamageSource.acid || source.equals(new DamageSource(ModDamageSource.s_acid))){ amount = 0; } else if(source == DamageSource.inWall) { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java index ef2ccde88..5eecc8132 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java @@ -60,7 +60,7 @@ public class EntityGlyphidBlaster extends EntityGlyphidBombardier { @Override public float getBombDamage() { - return 10F; + return 15F; } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java index 7fda8206d..8a2093b63 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java @@ -46,7 +46,7 @@ public class EntityGlyphidBombardier extends EntityGlyphid { if(this.ticksExisted % 60 == 1) { - boolean topAttack = rand.nextBoolean(); + boolean topAttack = false; double velX = e.posX - lastX; double velY = e.posY - lastY; @@ -55,7 +55,11 @@ public class EntityGlyphidBombardier extends EntityGlyphid { if(this.lastTarget != e || Vec3.createVectorHelper(velX, velY, velZ).lengthVector() > 30) { velX = velY = velZ = 0; } - + + if (this.getDistanceToEntity(e) > 20) { + topAttack = true; + } + int prediction = topAttack ? 60 : 20; Vec3 delta = Vec3.createVectorHelper(e.posX - posX + velX * prediction, (e.posY + e.height / 2) - (posY + 1) + velY * prediction, e.posZ - posZ + velZ * prediction); double len = delta.lengthVector(); @@ -91,7 +95,7 @@ public class EntityGlyphidBombardier extends EntityGlyphid { } public float getBombDamage() { - return 1.5F; + return 5F; } public int getBombCount() { From 3854161ac926dd90793b04f3384c33f283f927cf Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sun, 14 Jan 2024 12:11:21 -0500 Subject: [PATCH 085/376] forgor --- src/main/java/com/hbm/handler/pollution/PollutionHandler.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index e946caeef..934a0524b 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -355,7 +355,8 @@ public class PollutionHandler { && !event.world.isRemote && event.world.provider.dimensionId == 0 && event.type == EnumCreatureType.monster - && event.world.canBlockSeeTheSky(event.x, event.y, event.z)) { + && event.world.canBlockSeeTheSky(event.x, event.y, event.z) + && !event.isCanceled()) { if (event.world.rand.nextInt(MobConfig.rampantScoutSpawnChance) == 0) { From 32a658bd1245407875e4cf6c426d19ca668107d1 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 14 Jan 2024 18:56:25 +0100 Subject: [PATCH 086/376] reda! --- changelog | 12 +- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../blocks/machine/MachineBigAssTank9000.java | 22 +- .../hbm/blocks/machine/MachineFluidTank.java | 22 +- .../hbm/blocks/machine/MachineRadarLarge.java | 98 + .../com/hbm/blocks/machine/SoyuzLauncher.java | 12 +- .../hbm/handler/nei/ConstructionHandler.java | 10 +- .../hbm/inventory/gui/GUIMachineRadarNT.java | 20 +- .../inventory/recipes/AssemblerRecipes.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../hbm/render/item/ItemRenderLibrary.java | 6 +- .../render/tileentity/RenderRadarLarge.java | 58 + .../hbm/tileentity/TileEntityMachineBase.java | 25 + .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityMachineRadarLarge.java | 41 + .../machine/TileEntityMachineRadarNT.java | 41 +- .../machine/storage/TileEntityBarrel.java | 4 +- .../storage/TileEntityMachineFluidTank.java | 4 +- .../java/com/hbm/world/feature/BiomeCave.java | 4 +- .../java/com/hbm/world/feature/DeepLayer.java | 4 +- .../java/com/hbm/world/feature/OreCave.java | 4 +- .../java/com/hbm/world/feature/OreLayer.java | 3 +- .../com/hbm/world/feature/OreLayer3D.java | 5 +- .../com/hbm/world/feature/SchistStratum.java | 4 +- .../hbm/world/generator/DungeonToolbox.java | 8 - src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/models/machines/radar_large.obj | 2479 +++++++++++++++++ .../textures/models/machines/radar_large.png | Bin 0 -> 6403 bytes 31 files changed, 2832 insertions(+), 68 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineRadarLarge.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderRadarLarge.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java create mode 100644 src/main/resources/assets/hbm/models/machines/radar_large.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/radar_large.png diff --git a/changelog b/changelog index 15939683f..acd5b1383 100644 --- a/changelog +++ b/changelog @@ -1,10 +1,14 @@ +## Added +* Large Radar + * A giant version of the radar with 3x the scan range + ## Changed * Nuclear craters have been reworked * The fallout effect no longer creates dead grass, instead it converts the area into three new biomes, the outer crater, crater and inner crater * The entire crater is now slaked sellafite which now has texture variance to look more like debris, as well as getting darker towards the center * The biomes being overridden means that nukes are now a solution to thaumcraft taint. Yay! * There are now new ore variants for the block conversions which match the surrounding sellafite - * Berylliumm ore now has a 100% chance of being converted into emerald + * Beryllium ore now has a 100% chance of being converted into emerald * The watz now cools up to 20% of its current heat level instead of 10%, making reactors a lot cooler and therefore react faster, which means more energy and faster depletion rates * Mud production rates have been halved, to prevent currently working setups from exploding instantly * This is your reminder that you can achieve more power, mud and depletion by building larger watz powerplants, i.e. stacking more watz segments on top of each other. Your tiny poo reactors make me sick. @@ -15,6 +19,11 @@ * Removed the old mining drill, combustion generator, old watz core, structure marker, all old large reactor parts and CMB furnace for good * Chemical plants will now eject all their outputs within a single tick if possible, increasing the throughput of fast recipes with many outputs, like asphalt * Hitting CTRL + ALT when hovering over an item now displays a preview of that item. Useful if you want to get authentic renders for a wiki, or just like staring at things. +* 256k tanks and BAT9000s can now output comparator signals from their fluid ports +* Trenchmaster general damage multiplier has been halved, making it twice as strong +* Updated generation rules for layers like schist and hematite, they will now only replace things tagged as stone, just like most ores +* Mushroom clouds now have two additional outer condensation rings, those are not entirely finished and are still subject to change +* Small radars are now a tad cheaper ## Fixed * Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes @@ -22,3 +31,4 @@ * Fixed trenchmaster helmet not having gas mask protection * Fixed large thermobaric artillery rocket still using the wrong slag block * Fixed some of the assembly templates having broken names due to using the wrong way of translating the output +* Fixed the soyuz launcher's NEI construction recipe showing the wrong amount of blocks diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c7ecebe51..035491dc3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1046,6 +1046,7 @@ public class ModBlocks { public static Block soyuz_launcher; public static Block machine_radar; + public static Block machine_radar_large; public static Block radar_screen; public static Block machine_turbofan; @@ -2141,6 +2142,7 @@ public class ModBlocks { launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); + machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); radar_screen = new MachineRadarScreen(Material.iron).setBlockName("radar_screen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_missile_assembly = new MachineMissileAssembly(Material.iron).setBlockName("machine_missile_assembly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_missile_assembly"); @@ -3473,6 +3475,7 @@ public class ModBlocks { GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); GameRegistry.registerBlock(soyuz_capsule, soyuz_capsule.getUnlocalizedName()); GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName()); + GameRegistry.registerBlock(machine_radar_large, machine_radar_large.getUnlocalizedName()); GameRegistry.registerBlock(radar_screen, radar_screen.getUnlocalizedName()); //Guide diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index 300f9b019..df23f7204 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -129,13 +129,21 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent @Override public int getComparatorInputOverride(World world, int x, int y, int z, int side) { - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityMachineBAT9000)) - return 0; - - TileEntityMachineBAT9000 tank = (TileEntityMachineBAT9000) te; - return tank.getComparatorPower(); + int meta = world.getBlockMetadata(x, y, z); + + if(meta >= 6) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return 0; + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityMachineBAT9000)) + return 0; + + TileEntityMachineBAT9000 tank = (TileEntityMachineBAT9000) te; + return tank.getComparatorPower(); + } + + return 0; } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index 32274741c..edf93170f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -169,13 +169,21 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP @Override public int getComparatorInputOverride(World world, int x, int y, int z, int side) { - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityMachineFluidTank)) - return 0; - - TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) te; - return tank.getComparatorPower(); + int meta = world.getBlockMetadata(x, y, z); + + if(meta >= 6) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return 0; + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityMachineFluidTank)) + return 0; + + TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) te; + return tank.getComparatorPower(); + } + + return 0; } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineRadarLarge.java b/src/main/java/com/hbm/blocks/machine/MachineRadarLarge.java new file mode 100644 index 000000000..40d42e249 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineRadarLarge.java @@ -0,0 +1,98 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineRadarLarge; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineRadarLarge extends BlockDummyable { + + public MachineRadarLarge(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineRadarLarge(); + if(meta >= 6) return new TileEntityProxyCombo().power(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(y < TileEntityMachineRadarNT.radarAltitude) { + if(world.isRemote) + player.addChatMessage(new ChatComponentText("[Radar] Error: Radar altitude not sufficient.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + return true; + } + + if(world.isRemote && !player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + return true; + } else if(!player.isSneaking()) { + return true; + } else { + return false; + } + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + x += dir.offsetX * o; + z += dir.offsetZ * o; + this.makeExtra(world, x + 1, y, z); + this.makeExtra(world, x - 1, y, z); + this.makeExtra(world, x, y, z + 1); + this.makeExtra(world, x, y, z - 1); + } + + @Override + public boolean canProvidePower() { + return true; + } + + @Override + public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) { + int meta = world.getBlockMetadata(x, y, z); + if(meta >= 6) { + ForgeDirection dir = ForgeDirection.getOrientation(m); + TileEntity tile = world.getTileEntity(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + if(tile instanceof TileEntityMachineRadarNT) { + TileEntityMachineRadarNT entity = (TileEntityMachineRadarNT) tile; + return entity.getRedPower(); + } + } + return 0; + } + + @Override + public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) { + return isProvidingWeakPower(world, x, y, z, m); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java b/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java index 44aa51658..3a5b6445b 100644 --- a/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java +++ b/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java @@ -209,13 +209,15 @@ public class SoyuzLauncher extends BlockDummyable { } } - for(int l = 0; l < 10; l++) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 38))); - for(int l = 0; l < 8; l++) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 41))); + for(int l = 0; l < 6; l++) + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 64))); + for(int l = 0; l < 4; l++) + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 64))); for(int l = 0; l < 6; l++) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 64))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 53))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 30))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 63))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 38))); world.func_147453_f(x, y, z, p_149749_5_); } diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index e2e95fa22..91f46bd1d 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -83,12 +83,12 @@ public class ConstructionHandler extends NEIUniversalHandler { /* SOYUZ LAUNCHER */ ItemStack[] soysauce = new ItemStack[] { - new ItemStack(ModBlocks.struct_launcher, 60), - ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.struct_launcher, 320), EnumChatFormatting.RED + "5x64"), - new ItemStack(ModBlocks.struct_scaffold, 53), + new ItemStack(ModBlocks.struct_launcher, 30), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.struct_launcher, 384), EnumChatFormatting.RED + "6x64"), + new ItemStack(ModBlocks.struct_scaffold, 63), ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.struct_scaffold, 384), EnumChatFormatting.RED + "6x64"), - new ItemStack(ModBlocks.concrete_smooth, 8), - ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.concrete_smooth, 320), EnumChatFormatting.RED + "5x64"),}; + new ItemStack(ModBlocks.concrete_smooth, 38), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.concrete_smooth, 320), EnumChatFormatting.RED + "4x64"),}; bufferedRecipes.put(soysauce, new ItemStack(ModBlocks.soyuz_launcher)); bufferedTools.put(soysauce, new ItemStack(ModBlocks.struct_soyuz_core)); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java index accefedf1..68fd71f77 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -94,8 +94,8 @@ public class GUIMachineRadarNT extends GuiScreen { if(!radar.entries.isEmpty()) { for(RadarEntry m : radar.entries) { - int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; - int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; + int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 117; if(mouseX + 5 > x && mouseX - 4 <= x && mouseY + 5 > z && mouseY - 4 <= z) { @@ -107,8 +107,8 @@ public class GUIMachineRadarNT extends GuiScreen { } if(checkClick(mouseX, mouseY, 8, 17, 200, 200)) { - int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); - int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) radar.getRange() * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) radar.getRange() * 2 + 1) / 192D + radar.zCoord); this.func_146283_a(Arrays.asList(tX + " / " + tZ), lastMouseX, lastMouseY); } } @@ -190,8 +190,8 @@ public class GUIMachineRadarNT extends GuiScreen { if(!radar.entries.isEmpty()) { for(RadarEntry m : radar.entries) { - double x = (m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D; - double z = (m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D; + double x = (m.posX - radar.xCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D) - 4D; + double z = (m.posZ - radar.zCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D) - 4D; int t = m.blipLevel; drawTexturedModalRectDouble(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); } @@ -226,8 +226,8 @@ public class GUIMachineRadarNT extends GuiScreen { if(!radar.entries.isEmpty()) { for(RadarEntry m : radar.entries) { - int x = guiLeft + (int) ((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; - int z = guiTop + (int) ((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; + int x = guiLeft + (int) ((m.posX - radar.xCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int) ((m.posZ - radar.zCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 117; if(lastMouseX + 5 > x && lastMouseX - 4 <= x && lastMouseY + 5 > z && lastMouseY - 4 <= z) { NBTTagCompound data = new NBTTagCompound(); @@ -239,8 +239,8 @@ public class GUIMachineRadarNT extends GuiScreen { } } - int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); - int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) radar.getRange() * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) radar.getRange() * 2 + 1) / 192D + radar.zCoord); NBTTagCompound data = new NBTTagCompound(); data.setInteger("launchPosX", tX); data.setInteger("launchPosZ", tZ); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index a8c0b40ae..2a0416386 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -361,7 +361,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar_large, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 6), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.coil_copper, 32), new ComparableStack(ModItems.crt_display, 4), },600); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 12dafee58..d7c0bc745 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4979,7 +4979,7 @@ public class ModItems { ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); aMatTrench.customCraftingMaterial = ModItems.plate_iron; - trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.25F).setThreshold(5.0F) + trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.125F).setThreshold(5.0F) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 1)) .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 9001d143a..fa962250c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -242,6 +242,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineEPress.class, new RenderEPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadGen.class, new RenderRadGen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarNT.class, new RenderRadar()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarLarge.class, new RenderRadarLarge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarScreen.class, new RenderRadarScreen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSeleniumEngine.class, new RenderSelenium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorResearch.class, new RenderSmallReactor()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index b27890ada..9033ff37a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -245,6 +245,7 @@ public class ResourceManager { public static final IModelCustom radar_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj")); public static final IModelCustom radar_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj")); public static final IModelCustom radar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj")); + public static final IModelCustom radar_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar_large.obj")); public static final IModelCustom radar_screen = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj")); //Forcefield @@ -661,6 +662,7 @@ public class ResourceManager { public static final ResourceLocation radar_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_head.png"); public static final ResourceLocation radar_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_base.png"); public static final ResourceLocation radar_dish_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_dish.png"); + public static final ResourceLocation radar_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_large.png"); public static final ResourceLocation radar_screen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_screen.png"); //Forcefield diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index afc1b518d..4b25b2f23 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -291,7 +291,9 @@ public class ItemRenderLibrary { GL11.glDisable(GL11.GL_CULL_FACE); GL11.glScaled(0.5, 0.5, 0.5); GL11.glTranslatef(0, 0, 3); + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.pumpjack_tex); ResourceManager.pumpjack.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glEnable(GL11.GL_CULL_FACE); }}); @@ -338,7 +340,7 @@ public class ItemRenderLibrary { renderers.put(Item.getItemFromBlock(ModBlocks.machine_turbofan), new ItemRenderBase() { public void renderInventory() { GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(2, 2, 2); + GL11.glScaled(2.25, 2.25, 2.25); } public void renderCommon() { GL11.glShadeModel(GL11.GL_SMOOTH); @@ -1137,7 +1139,9 @@ public class ItemRenderLibrary { public void renderCommon() { GL11.glScaled(0.25, 0.25, 0.25); GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.fracking_tower_tex); ResourceManager.fracking_tower.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_FLAT); }}); diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadarLarge.java b/src/main/java/com/hbm/render/tileentity/RenderRadarLarge.java new file mode 100644 index 000000000..ab6c3bfad --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderRadarLarge.java @@ -0,0 +1,58 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderRadarLarge extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + bindTexture(ResourceManager.radar_large_tex); + ResourceManager.radar_large.renderPart("Radar"); + + TileEntityMachineRadarNT radar = (TileEntityMachineRadarNT) tileEntity; + GL11.glRotatef(radar.prevRotation + (radar.rotation - radar.prevRotation) * f, 0F, -1F, 0F); + + ResourceManager.radar_large.renderPart("Dish"); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_radar_large); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glRotated(180, 0, 1, 0); + GL11.glScaled(0.5, 0.5, 0.5); + bindTexture(ResourceManager.radar_large_tex); + ResourceManager.radar_large.renderPart("Radar"); + GL11.glRotated(System.currentTimeMillis() % 3600 * 0.1D, 0, -1, 0); + ResourceManager.radar_large.renderPart("Dish"); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index bf1318f0f..f826dd3e3 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -5,9 +5,11 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.BufPacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -221,4 +223,27 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme return Math.max(volume, 0); } + + public void updateRedstoneConnection(DirPos pos) { + + int x = pos.getX(); + int y = pos.getY(); + int z = pos.getZ(); + ForgeDirection dir = pos.getDir(); + Block block1 = worldObj.getBlock(x, y, z); + + block1.onNeighborChange(worldObj, x, y, z, xCoord, yCoord, zCoord); + block1.onNeighborBlockChange(worldObj, x, y, z, this.getBlockType()); + if(block1.isNormalCube(worldObj, x, y, z)) { + x += dir.offsetX; + y += dir.offsetY; + z += dir.offsetZ; + Block block2 = worldObj.getBlock(x, y, z); + + if(block2.getWeakChanges(worldObj, x, y, z)) { + block2.onNeighborChange(worldObj, x, y, z, xCoord, yCoord, zCoord); + block2.onNeighborBlockChange(worldObj, x, y, z, this.getBlockType()); + } + } + } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 0a9afce70..407e28545 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -112,6 +112,7 @@ public class TileMappings { put(TileEntityMachineRadGen.class, "tileentity_radgen"); put(TileEntityMachineTransformer.class, "tileentity_transformer"); put(TileEntityMachineRadarNT.class, "tileentity_radar"); + put(TileEntityMachineRadarLarge.class, "tileentity_radar_large"); put(TileEntityMachineRadarScreen.class, "tileentity_radar_screen"); put(TileEntityBroadcaster.class, "tileentity_pink_cloud_broadcaster"); put(TileEntityMachineSeleniumEngine.class, "tileentity_selenium_engine"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java new file mode 100644 index 000000000..4fd6d497b --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java @@ -0,0 +1,41 @@ +package com.hbm.tileentity.machine; + +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.DirPos; + +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityMachineRadarLarge extends TileEntityMachineRadarNT { + + @Override + public int getRange() { + return radarLargeRange; + } + + @Override + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z), + }; + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 5, + yCoord, + zCoord - 5, + xCoord + 6, + yCoord + 10, + zCoord + 6 + ); + } + + return bb; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 357779cc7..5d04f2aa6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -19,6 +19,8 @@ import com.hbm.items.ModItems; import com.hbm.items.tool.ItemCoordinateBase; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.Satellite.Interfaces; @@ -30,6 +32,7 @@ import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Triplet; import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.world.WorldUtil; import api.hbm.energy.IEnergyUser; @@ -37,10 +40,12 @@ import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.IRadarDetectableNT.RadarScanParams; import api.hbm.entity.RadarEntry; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -54,6 +59,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.ForgeDirection; /** * Now with SmЯt™ lag-free entity detection! (patent pending) @@ -82,6 +88,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public static int maxPower = 100_000; public static int consumption = 500; public static int radarRange = 1_000; + public static int radarLargeRange = 3_000; public static int radarBuffer = 30; public static int radarAltitude = 55; public static int chunkLoadCap = 10; @@ -102,6 +109,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); consumption = IConfigurableMachine.grab(obj, "L:consumption", consumption); radarRange = IConfigurableMachine.grab(obj, "I:radarRange", radarRange); + radarLargeRange = IConfigurableMachine.grab(obj, "I:radarLargeRange", radarLargeRange); radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer); radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude); chunkLoadCap = IConfigurableMachine.grab(obj, "I:chunkLoadCap", chunkLoadCap); @@ -113,6 +121,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I writer.name("L:powerCap").value(maxPower); writer.name("L:consumption").value(consumption); writer.name("I:radarRange").value(radarRange); + writer.name("I:radarLargeRange").value(radarLargeRange); writer.name("I:radarBuffer").value(radarBuffer); writer.name("I:radarAltitude").value(radarAltitude); writer.name("B:generateChunks").value(generateChunks); @@ -126,6 +135,10 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public String getName() { return "container.radar"; } + + public int getRange() { + return radarRange; + } @Override public void updateEntity() { @@ -136,14 +149,19 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I this.power = Library.chargeTEFromItems(slots, 9, power, maxPower); - if(worldObj.getTotalWorldTime() % 20 == 0) this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); this.jammed = false; allocateTargets(); if(this.lastPower != getRedPower()) { - this.markDirty(); + this.markChanged(); + for(DirPos pos : getConPos()) this.updateRedstoneConnection(pos); } lastPower = getRedPower(); @@ -161,11 +179,11 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I int chunkLoads = 0; for(int i = 0; i < 100; i++) { int index = (int) (worldObj.getTotalWorldTime() % 400) * 100 + i; - int iX = (index % 200) * radarRange * 2 / 200; - int iZ = index / 200 * radarRange * 2 / 200; + int iX = (index % 200) * getRange() * 2 / 200; + int iZ = index / 200 * getRange() * 2 / 200; - int x = xCoord - radarRange + iX; - int z = zCoord - radarRange + iZ; + int x = xCoord - getRange() + iX; + int z = zCoord - getRange() + iZ; if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) { this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); @@ -217,6 +235,15 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } } + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z), + }; + } + @Override public void serialize(ByteBuf buf) { buf.writeLong(this.power); @@ -341,7 +368,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I /// PROXIMITY /// if(redMode) { - double maxRange = WeaponConfig.radarRange * Math.sqrt(2D); + double maxRange = this.getRange() * Math.sqrt(2D); int power = 0; for(int i = 0; i < entries.size(); i++) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 9ce319342..49db2fe90 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -97,8 +97,10 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc if(!worldObj.isRemote) { byte comp = this.getComparatorPower(); //do comparator shenanigans - if(comp != this.lastRedstone) + if(comp != this.lastRedstone) { this.markDirty(); + for(DirPos pos : getConPos()) this.updateRedstoneConnection(pos); + } this.lastRedstone = comp; tank.setType(0, 1, slots); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index dc147cbbf..ebb5b49e1 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -131,8 +131,10 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements } byte comp = this.getComparatorPower(); //comparator shit - if(comp != this.lastRedstone) + if(comp != this.lastRedstone) { this.markDirty(); + for(DirPos pos : getConPos()) this.updateRedstoneConnection(pos); + } this.lastRedstone = comp; if(tank.getFill() > 0) { diff --git a/src/main/java/com/hbm/world/feature/BiomeCave.java b/src/main/java/com/hbm/world/feature/BiomeCave.java index 1dc57bd73..be98089b6 100644 --- a/src/main/java/com/hbm/world/feature/BiomeCave.java +++ b/src/main/java/com/hbm/world/feature/BiomeCave.java @@ -3,11 +3,11 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.BlockEnums.EnumBiomeType; -import com.hbm.world.generator.DungeonToolbox; import com.hbm.blocks.ModBlocks; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; +import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase.TempCategory; @@ -96,7 +96,7 @@ public class BiomeCave { private static void handleBiome(World world, int x, int y, int z, EnumBiomeType type) { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && DungeonToolbox.allowedToReplace(target)) { + if(target.isNormalCube() && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { boolean shouldGen = false; diff --git a/src/main/java/com/hbm/world/feature/DeepLayer.java b/src/main/java/com/hbm/world/feature/DeepLayer.java index 69216034d..18ddb5d57 100644 --- a/src/main/java/com/hbm/world/feature/DeepLayer.java +++ b/src/main/java/com/hbm/world/feature/DeepLayer.java @@ -3,11 +3,11 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.util.ForgeDirection; @@ -51,7 +51,7 @@ public class DeepLayer { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { boolean lava = false; diff --git a/src/main/java/com/hbm/world/feature/OreCave.java b/src/main/java/com/hbm/world/feature/OreCave.java index 7f879866b..3679b8d4c 100644 --- a/src/main/java/com/hbm/world/feature/OreCave.java +++ b/src/main/java/com/hbm/world/feature/OreCave.java @@ -5,11 +5,11 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockStalagmite; import com.hbm.inventory.RecipesCommon.MetaBlock; -import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; @@ -104,7 +104,7 @@ public class OreCave { for(int y = yLevel - range; y <= yLevel + range; y++) { Block genTarget = world.getBlock(x, y, z); - if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground) && DungeonToolbox.allowedToReplace(genTarget)) { + if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground) && genTarget.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { boolean shouldGen = false; boolean canGenFluid = event.rand.nextBoolean(); diff --git a/src/main/java/com/hbm/world/feature/OreLayer.java b/src/main/java/com/hbm/world/feature/OreLayer.java index aacf1c416..fb4b84543 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer.java +++ b/src/main/java/com/hbm/world/feature/OreLayer.java @@ -3,7 +3,6 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.inventory.RecipesCommon.MetaBlock; -import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; @@ -100,7 +99,7 @@ public class OreLayer { if(event.rand.nextFloat() < density) { Block genTarget = world.getBlock(x, y, z); - if(genTarget.isReplaceableOreGen(world, x, y, z, target) && DungeonToolbox.allowedToReplace(genTarget)) { + if(genTarget.isReplaceableOreGen(world, x, y, z, target) && genTarget.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { world.setBlock(x, y, z, ore.block, ore.meta, 2); } } diff --git a/src/main/java/com/hbm/world/feature/OreLayer3D.java b/src/main/java/com/hbm/world/feature/OreLayer3D.java index 50fba58b3..84b8f88b0 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer3D.java +++ b/src/main/java/com/hbm/world/feature/OreLayer3D.java @@ -2,11 +2,10 @@ package com.hbm.world.feature; import java.util.Random; -import com.hbm.world.generator.DungeonToolbox; - import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; @@ -76,7 +75,7 @@ public class OreLayer3D { if(nX * nY * nZ > threshold) { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { world.setBlock(x, y, z, block, meta, 2); } } diff --git a/src/main/java/com/hbm/world/feature/SchistStratum.java b/src/main/java/com/hbm/world/feature/SchistStratum.java index d83ec528e..56ae0dbdb 100644 --- a/src/main/java/com/hbm/world/feature/SchistStratum.java +++ b/src/main/java/com/hbm/world/feature/SchistStratum.java @@ -3,11 +3,11 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.event.terraingen.DecorateBiomeEvent; @@ -52,7 +52,7 @@ public class SchistStratum { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { world.setBlock(x, y, z, ModBlocks.stone_gneiss, 0, 2); } } diff --git a/src/main/java/com/hbm/world/generator/DungeonToolbox.java b/src/main/java/com/hbm/world/generator/DungeonToolbox.java index b5ab4499c..7e0a899f9 100644 --- a/src/main/java/com/hbm/world/generator/DungeonToolbox.java +++ b/src/main/java/com/hbm/world/generator/DungeonToolbox.java @@ -94,12 +94,4 @@ public class DungeonToolbox { genFlowers.func_150550_a(flower, meta); genFlowers.generate(world, rand, x, y, z); } - - public static boolean allowedToReplace(Block block) { - - if(block == Blocks.end_portal_frame) return false; - if(block == Blocks.bedrock) return false; - - return true; - } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 3ab0b70e1..5076c1fd6 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4147,6 +4147,7 @@ tile.machine_press.name=Befeuerte Presse tile.machine_puf6_tank.name=Plutoniumhexafluorid-Tank tile.machine_pumpjack.name=Pferdekopfpumpe tile.machine_radar.name=Radar +tile.machine_radar_large.name=Großes Radar tile.machine_radgen.name=Strahlenbetriebener Generator tile.machine_reactor.name=Brutreaktor tile.machine_reactor_on.name=Brutreaktor diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index bf2b878be..e185542ef 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5136,6 +5136,7 @@ tile.machine_press.name=Burner Press tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank tile.machine_pumpjack.name=Pumpjack tile.machine_radar.name=Radar +tile.machine_radar_large.name=Large Radar tile.machine_radgen.name=Radiation-Powered Engine tile.machine_radiolysis.name=Radioisotope Thermoelectric Generator and Radiolysis Chamber tile.machine_reactor.name=Breeding Reactor diff --git a/src/main/resources/assets/hbm/models/machines/radar_large.obj b/src/main/resources/assets/hbm/models/machines/radar_large.obj new file mode 100644 index 000000000..0e7e4da41 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/radar_large.obj @@ -0,0 +1,2479 @@ +# Blender v2.79 (sub 0) OBJ File: 'radar_large.blend' +# www.blender.org +o Dish +v -0.218750 5.500000 0.500000 +v 0.218750 5.500000 0.500000 +v -0.218750 5.500000 -0.500000 +v 0.218750 5.500000 -0.500000 +v 0.500000 5.500000 0.218750 +v 0.500000 5.500000 -0.218750 +v -0.500000 5.500000 0.218750 +v -0.500000 5.500000 -0.218750 +v -0.218750 7.000000 0.500000 +v 0.218750 7.000000 0.500000 +v -0.218750 7.000000 -0.500000 +v 0.218750 7.000000 -0.500000 +v 0.500000 7.000000 0.218750 +v 0.500000 7.000000 -0.218750 +v -0.500000 7.000000 0.218750 +v -0.500000 7.000000 -0.218750 +v -0.500000 7.000000 0.500000 +v -0.500000 6.500000 0.500000 +v -0.500000 7.000000 -0.500000 +v -0.500000 6.500000 -0.500000 +v -1.000000 7.000000 -0.500000 +v -1.000000 7.000000 0.500000 +v -1.000000 6.500000 0.500000 +v -1.000000 6.500000 -0.500000 +v -0.125000 7.375000 2.500000 +v -0.125000 7.125000 2.500000 +v -0.375000 7.375000 2.500000 +v -0.375000 7.125000 2.500000 +v 1.000000 7.000000 0.500000 +v 1.000000 6.500000 0.500000 +v 1.000000 7.000000 -0.500000 +v 1.000000 6.500000 -0.500000 +v 0.500000 7.000000 -0.500000 +v 0.500000 7.000000 0.500000 +v 0.500000 6.500000 0.500000 +v 0.500000 6.500000 -0.500000 +v 0.375000 7.375000 2.500000 +v 0.375000 7.125000 2.500000 +v 0.125000 7.375000 2.500000 +v 0.125000 7.125000 2.500000 +v -1.000000 7.250000 2.500000 +v 1.000000 7.250000 2.500000 +v -1.000000 7.000000 2.500000 +v 1.000000 7.000000 2.500000 +v -1.000000 7.000000 2.625000 +v -1.000000 7.250000 2.625000 +v 1.000000 7.250000 2.625000 +v 1.000000 7.000000 2.625000 +v -0.250000 7.125000 2.375000 +v 0.250000 7.125000 2.375000 +v -0.250000 7.375000 2.375000 +v 0.250000 7.375000 2.375000 +v -0.250000 7.375000 2.125000 +v -0.250000 7.125000 2.125000 +v 0.250000 7.125000 2.125000 +v 0.250000 7.375000 2.125000 +v -1.000000 7.500000 -1.500000 +v 1.000000 7.500000 -1.500000 +v -1.000000 9.500000 -1.500000 +v 1.000000 9.500000 -1.500000 +v -2.000000 7.500000 -1.250000 +v 2.000000 7.500000 -1.250000 +v -2.000000 9.500000 -1.250000 +v 2.000000 9.500000 -1.250000 +v -3.000000 7.500000 -0.500000 +v 3.000000 7.500000 -0.500000 +v -3.000000 9.500000 -0.500000 +v 3.000000 9.500000 -0.500000 +v -1.000000 7.000000 -1.250000 +v 1.000000 7.000000 -1.250000 +v -1.000000 10.000000 -1.250000 +v 1.000000 10.000000 -1.250000 +v -2.000000 7.000000 -1.000000 +v 2.000000 7.000000 -1.000000 +v -2.000000 10.000000 -1.000000 +v 2.000000 10.000000 -1.000000 +v -1.031250 7.500000 -1.468750 +v -0.968750 7.500000 -1.468750 +v -1.031250 7.500000 -1.531250 +v -0.968750 7.500000 -1.531250 +v -1.031250 9.500000 -1.468750 +v -0.968750 9.500000 -1.468750 +v -1.031250 9.500000 -1.531250 +v -0.968750 9.500000 -1.531250 +v -1.031250 10.000000 -1.281250 +v -1.031250 10.000000 -1.218750 +v -0.968750 10.000000 -1.218750 +v -0.968750 10.000000 -1.281250 +v -1.031250 7.000000 -1.281250 +v -1.031250 7.000000 -1.218750 +v -0.968750 7.000000 -1.218750 +v -0.968750 7.000000 -1.281250 +v -0.031250 7.500000 -1.468750 +v 0.031250 7.500000 -1.468750 +v -0.031250 7.500000 -1.531250 +v 0.031250 7.500000 -1.531250 +v -0.031250 9.500000 -1.468750 +v 0.031250 9.500000 -1.468750 +v -0.031250 9.500000 -1.531250 +v 0.031250 9.500000 -1.531250 +v -0.031250 10.000000 -1.281250 +v -0.031250 10.000000 -1.218750 +v 0.031250 10.000000 -1.218750 +v 0.031250 10.000000 -1.281250 +v -0.031250 7.000000 -1.281250 +v -0.031250 7.000000 -1.218750 +v 0.031250 7.000000 -1.218750 +v 0.031250 7.000000 -1.281250 +v 0.968750 7.500000 -1.468750 +v 1.031250 7.500000 -1.468750 +v 0.968750 7.500000 -1.531250 +v 1.031250 7.500000 -1.531250 +v 0.968750 9.500000 -1.468750 +v 1.031250 9.500000 -1.468750 +v 0.968750 9.500000 -1.531250 +v 1.031250 9.500000 -1.531250 +v 0.968750 10.000000 -1.281250 +v 0.968750 10.000000 -1.218750 +v 1.031250 10.000000 -1.218750 +v 1.031250 10.000000 -1.281250 +v 0.968750 7.000000 -1.281250 +v 0.968750 7.000000 -1.218750 +v 1.031250 7.000000 -1.218750 +v 1.031250 7.000000 -1.281250 +v -2.031250 7.500000 -1.218750 +v -1.968750 7.500000 -1.218750 +v -2.031250 7.500000 -1.281250 +v -1.968750 7.500000 -1.281250 +v -2.031250 9.500000 -1.218750 +v -1.968750 9.500000 -1.218750 +v -2.031250 9.500000 -1.281250 +v -1.968750 9.500000 -1.281250 +v -2.031250 10.000000 -1.031250 +v -2.031250 10.000000 -0.968750 +v -1.968750 10.000000 -0.968750 +v -1.968750 10.000000 -1.031250 +v -2.031250 7.000000 -1.031250 +v -2.031250 7.000000 -0.968750 +v -1.968750 7.000000 -0.968750 +v -1.968750 7.000000 -1.031250 +v 1.968750 7.500000 -1.218750 +v 2.031250 7.500000 -1.218750 +v 1.968750 7.500000 -1.281250 +v 2.031250 7.500000 -1.281250 +v 1.968750 9.500000 -1.218750 +v 2.031250 9.500000 -1.218750 +v 1.968750 9.500000 -1.281250 +v 2.031250 9.500000 -1.281250 +v 1.968750 10.000000 -1.031250 +v 1.968750 10.000000 -0.968750 +v 2.031250 10.000000 -0.968750 +v 2.031250 10.000000 -1.031250 +v 1.968750 7.000000 -1.031250 +v 1.968750 7.000000 -0.968750 +v 2.031250 7.000000 -0.968750 +v 2.031250 7.000000 -1.031250 +v -3.031250 7.500000 -0.468750 +v -2.968750 7.500000 -0.468750 +v -3.031250 7.500000 -0.531250 +v -2.968750 7.500000 -0.531250 +v -3.031250 9.500000 -0.468750 +v -2.968750 9.500000 -0.468750 +v -3.031250 9.500000 -0.531250 +v -2.968750 9.500000 -0.531250 +v 2.968750 7.500000 -0.468750 +v 3.031250 7.500000 -0.468750 +v 2.968750 7.500000 -0.531250 +v 3.031250 7.500000 -0.531250 +v 2.968750 9.500000 -0.468750 +v 3.031250 9.500000 -0.468750 +v 2.968750 9.500000 -0.531250 +v 3.031250 9.500000 -0.531250 +v -0.625000 6.750000 -1.750000 +v -0.625000 7.000000 -1.750000 +v -0.875000 6.750000 -1.750000 +v -0.875000 7.000000 -1.750000 +v 0.875000 6.750000 -1.750000 +v 0.875000 7.000000 -1.750000 +v 0.625000 6.750000 -1.750000 +v 0.625000 7.000000 -1.750000 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 8.531250 -2.281250 +v -1.000000 8.468750 -2.281250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 8.531250 -2.281250 +v 1.000000 8.468750 -2.281250 +v -2.000000 8.531250 -2.031250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 8.468750 -2.031250 +v 2.000000 8.531250 -2.031250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 8.468750 -2.031250 +v 3.000000 8.531250 -1.281250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 8.468750 -1.281250 +v -3.000000 8.531250 -1.281250 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 8.468750 -1.281250 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 9.500000 -0.531250 +v -3.000000 9.437500 -0.531250 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 7.562500 -0.531250 +v -3.000000 7.500000 -0.531250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 9.500000 -1.281250 +v -2.000000 9.437500 -1.281250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 7.562500 -1.281250 +v -2.000000 7.500000 -1.281250 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 9.500000 -1.531250 +v -1.000000 9.437500 -1.531250 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 7.562500 -1.531250 +v -1.000000 7.500000 -1.531250 +v 0.000000 8.531250 -2.218750 +v 0.000000 8.468750 -2.218750 +v 0.000000 9.500000 -1.531250 +v 0.000000 9.437500 -1.531250 +v 0.000000 8.531250 -2.218750 +v 0.000000 8.468750 -2.218750 +v 0.000000 7.562500 -1.531250 +v 0.000000 7.500000 -1.531250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 9.500000 -1.531250 +v 1.000000 9.437500 -1.531250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 7.562500 -1.531250 +v 1.000000 7.500000 -1.531250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 9.500000 -1.281250 +v 2.000000 9.437500 -1.281250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 7.562500 -1.281250 +v 2.000000 7.500000 -1.281250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 9.500000 -0.531250 +v 3.000000 9.437500 -0.531250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 7.562500 -0.531250 +v 3.000000 7.500000 -0.531250 +v 0.816250 7.000000 -1.687500 +v 0.878750 7.000000 -1.687500 +v 0.816250 7.000000 -1.750000 +v 0.878750 7.000000 -1.750000 +v 0.816250 8.500000 -2.218750 +v 0.878750 8.500000 -2.218750 +v 0.816250 8.500000 -2.281250 +v 0.878750 8.500000 -2.281250 +v -0.683750 7.000000 -1.687500 +v -0.621250 7.000000 -1.687500 +v -0.683750 7.000000 -1.750000 +v -0.621250 7.000000 -1.750000 +v -0.683750 8.500000 -2.218750 +v -0.621250 8.500000 -2.218750 +v -0.683750 8.500000 -2.281250 +v -0.621250 8.500000 -2.281250 +v 0.628750 7.000000 -1.687500 +v 0.691250 7.000000 -1.687500 +v 0.628750 7.000000 -1.750000 +v 0.691250 7.000000 -1.750000 +v 0.628750 8.500000 -2.218750 +v 0.691250 8.500000 -2.218750 +v 0.628750 8.500000 -2.281250 +v 0.691250 8.500000 -2.281250 +v -0.871250 7.000000 -1.687500 +v -0.808750 7.000000 -1.687500 +v -0.871250 7.000000 -1.750000 +v -0.808750 7.000000 -1.750000 +v -0.871250 8.500000 -2.218750 +v -0.808750 8.500000 -2.218750 +v -0.871250 8.500000 -2.281250 +v -0.808750 8.500000 -2.281250 +v -0.125000 7.249850 2.450611 +v 0.125000 7.249850 2.450611 +v -0.125000 7.491331 2.515315 +v 0.125000 7.491331 2.515315 +v -0.125000 7.991632 1.614094 +v -0.125000 7.267187 1.419980 +v 0.125000 7.267187 1.419980 +v 0.125000 7.991632 1.614094 +v -0.218750 7.375000 2.312500 +v 0.218750 7.375000 2.312500 +v -0.218750 7.375000 2.187500 +v 0.218750 7.375000 2.187500 +v 0.218750 7.562500 2.312500 +v -0.218750 7.562500 2.312500 +v 0.218750 7.562500 2.187500 +v -0.218750 7.562500 2.187500 +v -1.000000 7.500000 -1.500000 +v 1.000000 7.500000 -1.500000 +v -1.000000 9.500000 -1.500000 +v 1.000000 9.500000 -1.500000 +v -2.000000 7.500000 -1.250000 +v 2.000000 7.500000 -1.250000 +v -2.000000 9.500000 -1.250000 +v 2.000000 9.500000 -1.250000 +v -3.000000 7.500000 -0.500000 +v 3.000000 7.500000 -0.500000 +v -3.000000 9.500000 -0.500000 +v 3.000000 9.500000 -0.500000 +v -1.000000 7.000000 -1.250000 +v 1.000000 7.000000 -1.250000 +v -1.000000 10.000000 -1.250000 +v 1.000000 10.000000 -1.250000 +v -2.000000 7.000000 -1.000000 +v 2.000000 7.000000 -1.000000 +v -2.000000 10.000000 -1.000000 +v 2.000000 10.000000 -1.000000 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 9.500000 -0.531250 +v -3.000000 9.437500 -0.531250 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 7.562500 -0.531250 +v -3.000000 7.500000 -0.531250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 9.500000 -1.281250 +v -2.000000 9.437500 -1.281250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 7.562500 -1.281250 +v -2.000000 7.500000 -1.281250 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 9.500000 -1.531250 +v -1.000000 9.437500 -1.531250 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 7.562500 -1.531250 +v -1.000000 7.500000 -1.531250 +v 0.000000 8.531250 -2.218750 +v 0.000000 8.468750 -2.218750 +v 0.000000 9.500000 -1.531250 +v 0.000000 9.437500 -1.531250 +v 0.000000 8.531250 -2.218750 +v 0.000000 8.468750 -2.218750 +v 0.000000 7.562500 -1.531250 +v 0.000000 7.500000 -1.531250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 9.500000 -1.531250 +v 1.000000 9.437500 -1.531250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 7.562500 -1.531250 +v 1.000000 7.500000 -1.531250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 9.500000 -1.281250 +v 2.000000 9.437500 -1.281250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 7.562500 -1.281250 +v 2.000000 7.500000 -1.281250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 9.500000 -0.531250 +v 3.000000 9.437500 -0.531250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 7.562500 -0.531250 +v 3.000000 7.500000 -0.531250 +vt 0.708333 0.066667 +vt 0.681818 0.266667 +vt 0.681818 0.066667 +vt 0.602273 0.066667 +vt 0.575758 0.266667 +vt 0.575758 0.066667 +vt 0.734848 0.266667 +vt 0.734848 0.066667 +vt 0.628788 0.266667 +vt 0.628788 0.066667 +vt 0.761364 0.266667 +vt 0.761364 0.066667 +vt 0.655303 0.266667 +vt 0.655303 0.066667 +vt 0.787879 0.266667 +vt 0.787879 0.066667 +vt 0.592803 0.400000 +vt 0.575758 0.304167 +vt 0.619318 0.266667 +vt 0.863636 0.333333 +vt 0.893939 0.200000 +vt 0.893939 0.333333 +vt 0.924242 0.200000 +vt 0.954545 0.333333 +vt 0.924242 0.333333 +vt 0.924242 0.200000 +vt 0.946970 0.033333 +vt 0.954545 0.200000 +vt 0.984848 0.333333 +vt 0.962121 0.600000 +vt 0.954545 0.200000 +vt 0.984848 0.200000 +vt 0.901515 0.600000 +vt 0.916667 0.633333 +vt 0.901515 0.633333 +vt 0.916667 0.600000 +vt 0.946970 0.600000 +vt 0.931818 0.600000 +vt 0.871212 0.600000 +vt 0.863636 0.333333 +vt 0.893939 0.200000 +vt 0.893939 0.333333 +vt 0.954545 0.333333 +vt 0.924242 0.333333 +vt 0.946970 0.033333 +vt 0.977273 0.600000 +vt 0.962121 0.600000 +vt 0.984848 0.333333 +vt 0.984848 0.200000 +vt 0.901515 0.600000 +vt 0.916667 0.633333 +vt 0.901515 0.633333 +vt 0.946970 0.600000 +vt 0.931818 0.600000 +vt 0.871212 0.600000 +vt 0.818182 0.016667 +vt 0.833333 0.275000 +vt 0.818182 0.275000 +vt 0.795455 0.275000 +vt 0.810606 0.016667 +vt 0.810606 0.275000 +vt 0.810606 -0.000000 +vt 0.795455 0.016667 +vt 0.795455 -0.000000 +vt 0.795455 0.291667 +vt 0.810606 0.291667 +vt 0.787879 0.016667 +vt 0.787879 0.275000 +vt 0.772727 0.300000 +vt 0.742424 0.333333 +vt 0.742424 0.300000 +vt 0.742424 0.366667 +vt 0.772727 0.400000 +vt 0.742424 0.400000 +vt 0.772727 0.333333 +vt 0.772727 0.266667 +vt 0.787879 0.333333 +vt 0.772727 0.366667 +vt 0.727273 0.366667 +vt 0.727273 0.333333 +vt 0.727273 0.466667 +vt 0.606061 0.733333 +vt 0.606061 0.466667 +vt 0.787879 0.733333 +vt 0.727273 0.733333 +vt 0.545455 0.466667 +vt 0.787879 0.466667 +vt 0.848485 0.733333 +vt 0.545455 0.733333 +vt 0.484848 0.466667 +vt 0.606061 0.800000 +vt 0.545455 0.800000 +vt 0.727273 0.400000 +vt 0.787879 0.400000 +vt 0.606061 0.400000 +vt 0.727273 0.800000 +vt 0.484848 0.733333 +vt 0.787879 0.800000 +vt 0.545455 0.400000 +vt 0.848485 0.466667 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.863636 0.466667 +vt 0.859848 0.733333 +vt 0.859848 0.466667 +vt 0.852273 0.466667 +vt 0.848485 0.733333 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.863636 0.466667 +vt 0.859848 0.733333 +vt 0.859848 0.466667 +vt 0.852273 0.466667 +vt 0.848485 0.733333 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.856061 0.808333 +vt 0.852273 0.800000 +vt 0.856061 0.800000 +vt 0.852273 0.400000 +vt 0.856061 0.391667 +vt 0.856061 0.400000 +vt 0.852273 0.400000 +vt 0.856061 0.391667 +vt 0.856061 0.400000 +vt 0.856061 0.808333 +vt 0.852273 0.800000 +vt 0.856061 0.800000 +vt 0.901515 -0.000000 +vt 0.916667 0.033333 +vt 0.901515 0.033333 +vt 0.901515 -0.000000 +vt 0.916667 0.033333 +vt 0.901515 0.033333 +vt 0.871212 0.033333 +vt 0.886364 0.033333 +vt 0.871212 0.033333 +vt 0.886364 0.033333 +vt 0.977273 0.033333 +vt 0.977273 0.033333 +vt 0.606061 0.800000 +vt 0.727273 0.808333 +vt 0.606061 0.808333 +vt 0.606061 0.825000 +vt 0.727273 0.833333 +vt 0.606061 0.833333 +vt 0.727273 0.816667 +vt 0.606061 0.816667 +vt 0.727273 0.825000 +vt 0.545455 0.825000 +vt 0.787879 0.825000 +vt 0.787879 0.833333 +vt 0.484848 0.816667 +vt 0.545455 0.816667 +vt 0.545455 0.808333 +vt 0.545455 0.800000 +vt 0.848485 0.825000 +vt 0.848485 0.833333 +vt 0.787879 0.816667 +vt 0.727273 0.800000 +vt 0.787879 0.808333 +vt 0.848485 0.808333 +vt 0.852273 0.816667 +vt 0.848485 0.816667 +vt 0.787879 0.800000 +vt 0.481061 0.816667 +vt 0.484848 0.808333 +vt 0.484848 0.800000 +vt 0.545455 0.833333 +vt 0.484848 0.825000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.484848 0.533333 +vt 0.481061 0.733333 +vt 0.481061 0.533333 +vt 0.473485 0.533333 +vt 0.469697 0.733333 +vt 0.469697 0.533333 +vt 0.477273 0.533333 +vt 0.477273 0.733333 +vt 0.473485 0.733333 +vt 0.484848 0.533333 +vt 0.481061 0.733333 +vt 0.481061 0.533333 +vt 0.473485 0.533333 +vt 0.469697 0.733333 +vt 0.469697 0.533333 +vt 0.477273 0.533333 +vt 0.477273 0.733333 +vt 0.473485 0.733333 +vt 0.484848 0.533333 +vt 0.481061 0.733333 +vt 0.481061 0.533333 +vt 0.473485 0.533333 +vt 0.469697 0.733333 +vt 0.469697 0.533333 +vt 0.477273 0.533333 +vt 0.477273 0.733333 +vt 0.473485 0.733333 +vt 0.484848 0.533333 +vt 0.481061 0.733333 +vt 0.481061 0.533333 +vt 0.473485 0.533333 +vt 0.469697 0.733333 +vt 0.469697 0.533333 +vt 0.477273 0.533333 +vt 0.477273 0.733333 +vt 0.473485 0.733333 +vt 0.924242 1.000000 +vt 0.939394 0.966667 +vt 0.939394 1.000000 +vt 0.939394 0.833333 +vt 0.924242 0.733333 +vt 0.939394 0.733333 +vt 0.924242 0.966667 +vt 0.939394 0.600000 +vt 0.924242 0.600000 +vt 0.863636 0.766667 +vt 0.924242 0.833333 +vt 0.863636 0.800000 +vt 1.000000 0.800000 +vt 1.000000 0.766667 +vt 0.731061 0.291667 +vt 0.704545 0.308333 +vt 0.704545 0.291667 +vt 0.742424 0.308333 +vt 0.742424 0.291667 +vt 0.731061 0.266667 +vt 0.704545 0.266667 +vt 0.693182 0.291667 +vt 0.693182 0.308333 +vt 0.704545 0.333333 +vt 0.731061 0.308333 +vt 0.731061 0.333333 +vt 0.606061 0.733333 +vt 0.727273 0.466667 +vt 0.606061 0.466667 +vt 0.787879 0.733333 +vt 0.727273 0.733333 +vt 0.545455 0.466667 +vt 0.848485 0.733333 +vt 0.787879 0.466667 +vt 0.484848 0.466667 +vt 0.545455 0.733333 +vt 0.606061 0.800000 +vt 0.727273 0.400000 +vt 0.606061 0.400000 +vt 0.727273 0.800000 +vt 0.484848 0.733333 +vt 0.545455 0.800000 +vt 0.787879 0.800000 +vt 0.545455 0.400000 +vt 0.848485 0.466667 +vt 0.787879 0.400000 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.708333 0.266667 +vt 0.602273 0.266667 +vt 0.636364 0.304167 +vt 0.636364 0.362500 +vt 0.619318 0.400000 +vt 0.575758 0.362500 +vt 0.592803 0.266667 +vt 0.863636 0.200000 +vt 0.931818 0.033333 +vt 0.977273 0.600000 +vt 0.886364 0.600000 +vt 0.863636 0.200000 +vt 0.931818 0.033333 +vt 0.916667 0.600000 +vt 0.886364 0.600000 +vt 0.833333 0.016667 +vt 0.742424 0.266667 +vt 0.787879 0.366667 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.733333 +vt 0.863636 0.733333 +vt 0.852273 0.808333 +vt 0.852273 0.391667 +vt 0.852273 0.391667 +vt 0.852273 0.808333 +vt 0.916667 0.000000 +vt 0.916667 -0.000000 +vt 0.962121 0.033333 +vt 0.962121 0.033333 +vt 0.852273 0.808333 +vt 0.848485 0.800000 +vt 0.481061 0.808333 +vt 0.484848 0.833333 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.484848 0.733333 +vt 0.484848 0.733333 +vt 0.484848 0.733333 +vt 0.484848 0.733333 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9950 0.0000 -0.0995 +vn 0.0000 -0.9545 0.2983 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.9829 -0.1843 +vn -0.9545 0.0000 0.2983 +vn 0.9829 0.0000 -0.1843 +vn -0.9829 0.0000 -0.1843 +vn 0.9545 0.0000 0.2983 +vn -0.2425 0.0000 0.9701 +vn 0.2425 0.0000 0.9701 +vn -0.6000 0.0000 0.8000 +vn 0.6000 0.0000 0.8000 +vn 0.2182 -0.4364 0.8729 +vn -0.2182 0.4364 0.8729 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 0.4472 0.8944 +vn 0.2182 0.4364 0.8729 +vn -0.2182 -0.4364 0.8729 +vn 0.5571 -0.3714 0.7428 +vn -0.5571 -0.3714 0.7428 +vn 0.5571 0.3714 0.7428 +vn -0.5571 0.3714 0.7428 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 -0.4472 -0.8944 +vn 0.9950 0.0000 -0.0995 +vn 0.0000 -0.9806 -0.1961 +vn -0.6000 0.0000 -0.8000 +vn -0.2425 0.0000 -0.9701 +vn 0.2425 0.0000 -0.9701 +vn 0.6000 0.0000 -0.8000 +vn 0.0000 0.3338 0.9426 +vn 0.0000 -0.3338 -0.9426 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 0.8743 0.4854 +vn 0.0000 -0.9999 -0.0168 +vn -0.2182 0.4364 -0.8729 +vn 0.2182 -0.4364 -0.8729 +vn -0.2182 -0.4364 -0.8729 +vn 0.2182 0.4364 -0.8729 +vn -0.5571 0.3714 -0.7428 +vn 0.5571 0.3714 -0.7428 +vn -0.5571 -0.3714 -0.7428 +vn 0.5571 -0.3714 -0.7428 +s off +f 4/1/1 14/2/1 6/3/1 +f 1/4/2 15/5/2 7/6/2 +f 11/7/3 4/1/3 3/8/3 +f 10/9/4 1/4/4 2/10/4 +f 16/11/5 3/8/5 8/12/5 +f 13/13/6 2/10/6 5/14/6 +f 14/2/7 5/14/7 6/3/7 +f 15/15/8 8/12/8 7/16/8 +f 10/17/9 14/18/9 11/19/9 +f 18/20/7 19/21/7 17/22/7 +f 21/23/8 23/24/8 22/25/8 +f 19/21/9 22/25/9 17/22/9 +f 33/26/10 179/27/10 36/28/10 +f 18/29/11 28/30/11 23/24/11 +f 18/29/12 24/31/12 20/32/12 +f 25/33/4 28/34/4 26/35/4 +f 17/22/13 27/36/13 25/33/13 +f 22/25/14 28/37/14 27/38/14 +f 17/22/15 26/39/15 18/20/15 +f 30/40/7 31/41/7 29/42/7 +f 33/26/8 35/43/8 34/44/8 +f 31/41/9 34/44/9 29/42/9 +f 21/23/10 175/45/10 24/31/10 +f 35/43/11 38/46/11 40/47/11 +f 30/48/12 36/28/12 32/49/12 +f 37/50/4 40/51/4 38/52/4 +f 34/44/13 37/50/13 29/42/13 +f 34/44/16 40/53/16 39/54/16 +f 29/42/17 38/55/17 30/40/17 +f 42/56/3 43/57/3 41/58/3 +f 45/59/4 47/60/4 46/61/4 +f 42/62/7 48/63/7 44/64/7 +f 43/65/8 46/61/8 41/66/8 +f 44/67/12 45/59/12 43/68/12 +f 41/58/9 47/60/9 42/56/9 +f 50/69/4 51/70/4 49/71/4 +f 53/72/3 55/73/3 54/74/3 +f 52/75/9 53/72/9 51/70/9 +f 49/71/12 55/76/12 50/69/12 +f 50/77/7 56/78/7 52/75/7 +f 51/70/8 54/79/8 49/80/8 +f 58/81/4 59/82/4 57/83/4 +f 58/81/18 64/84/18 60/85/18 +f 59/82/19 61/86/19 57/83/19 +f 62/87/20 68/88/20 64/84/20 +f 63/89/21 65/90/21 61/86/21 +f 63/89/22 71/91/22 75/92/22 +f 62/87/23 70/93/23 74/94/23 +f 60/85/24 71/91/24 59/82/24 +f 57/83/25 70/93/25 58/81/25 +f 61/86/26 69/95/26 57/83/26 +f 64/84/27 72/96/27 60/85/27 +f 63/89/28 75/92/28 67/97/28 +f 64/84/29 68/88/29 76/98/29 +f 61/86/30 65/90/30 73/99/30 +f 62/87/31 74/94/31 66/100/31 +f 77/101/25 91/102/25 78/103/25 +f 82/104/7 88/105/7 87/106/7 +f 78/103/4 81/107/4 77/101/4 +f 80/108/7 82/104/7 78/109/7 +f 77/101/8 83/110/8 79/111/8 +f 79/111/3 84/112/3 80/108/3 +f 87/113/9 85/114/9 86/115/9 +f 81/107/8 85/114/8 83/110/8 +f 83/110/32 88/105/32 84/112/32 +f 82/116/24 86/117/24 81/107/24 +f 89/118/12 91/119/12 90/120/12 +f 78/109/7 92/121/7 80/108/7 +f 77/101/8 89/118/8 90/122/8 +f 80/108/33 89/118/33 79/111/33 +f 93/123/25 107/124/25 94/125/25 +f 98/126/7 104/127/7 103/128/7 +f 94/125/4 97/129/4 93/123/4 +f 96/130/7 98/126/7 94/131/7 +f 93/123/8 99/132/8 95/133/8 +f 95/133/3 100/134/3 96/130/3 +f 103/135/9 101/136/9 102/137/9 +f 97/129/8 101/136/8 99/132/8 +f 99/132/32 104/127/32 100/134/32 +f 98/138/24 102/139/24 97/129/24 +f 105/140/12 107/141/12 106/142/12 +f 94/131/7 108/143/7 96/130/7 +f 93/123/8 105/140/8 106/144/8 +f 96/130/33 105/140/33 95/133/33 +f 109/145/25 123/146/25 110/147/25 +f 114/148/7 120/149/7 119/150/7 +f 110/147/4 113/151/4 109/145/4 +f 112/152/7 114/148/7 110/153/7 +f 109/145/8 115/154/8 111/155/8 +f 111/155/3 116/156/3 112/152/3 +f 119/157/9 117/158/9 118/159/9 +f 113/151/8 117/158/8 115/154/8 +f 115/154/32 120/149/32 116/156/32 +f 114/160/24 118/161/24 113/151/24 +f 121/162/12 123/163/12 122/164/12 +f 110/153/7 124/165/7 112/152/7 +f 109/145/8 121/162/8 122/166/8 +f 112/152/33 121/162/33 111/155/33 +f 125/167/25 139/168/25 126/169/25 +f 130/170/7 136/171/7 135/172/7 +f 126/169/4 129/173/4 125/167/4 +f 128/174/7 130/170/7 126/175/7 +f 125/167/8 131/176/8 127/177/8 +f 127/177/3 132/178/3 128/174/3 +f 135/179/9 133/180/9 134/181/9 +f 129/173/8 133/180/8 131/176/8 +f 131/176/32 136/171/32 132/178/32 +f 130/182/24 134/183/24 129/173/24 +f 137/184/12 139/185/12 138/186/12 +f 126/175/7 140/187/7 128/174/7 +f 125/167/8 137/184/8 138/188/8 +f 128/174/33 137/184/33 127/177/33 +f 141/189/25 155/190/25 142/191/25 +f 146/192/7 152/193/7 151/194/7 +f 142/191/4 145/195/4 141/189/4 +f 144/196/7 146/192/7 142/197/7 +f 141/189/8 147/198/8 143/199/8 +f 143/199/3 148/200/3 144/196/3 +f 151/201/9 149/202/9 150/203/9 +f 145/195/8 149/202/8 147/198/8 +f 147/198/32 152/193/32 148/200/32 +f 146/204/24 150/205/24 145/195/24 +f 153/206/12 155/207/12 154/208/12 +f 142/197/7 156/209/7 144/196/7 +f 141/189/8 153/206/8 154/210/8 +f 144/196/33 153/206/33 143/199/33 +f 158/211/4 161/212/4 157/213/4 +f 160/214/7 162/215/7 158/216/7 +f 157/213/8 163/217/8 159/218/8 +f 159/218/3 164/219/3 160/214/3 +f 166/220/4 169/221/4 165/222/4 +f 168/223/7 170/224/7 166/225/7 +f 165/222/8 171/226/8 167/227/8 +f 167/227/3 172/228/3 168/223/3 +f 161/229/9 164/230/9 163/231/9 +f 160/232/12 157/233/12 159/234/12 +f 168/235/12 165/236/12 167/237/12 +f 169/238/9 172/239/9 171/240/9 +f 173/241/3 176/242/3 174/243/3 +f 177/244/3 180/245/3 178/246/3 +f 19/21/34 173/247/34 174/248/34 +f 31/41/34 177/249/34 178/250/34 +f 24/31/35 173/251/35 20/32/35 +f 36/28/35 177/252/35 32/49/35 +f 19/21/9 176/242/9 21/23/9 +f 31/41/9 180/245/9 33/26/9 +f 182/253/4 185/254/4 181/255/4 +f 184/256/12 186/257/12 182/258/12 +f 181/255/9 187/259/9 183/260/9 +f 183/260/3 188/261/3 184/256/3 +f 182/258/12 192/262/12 184/256/12 +f 186/257/12 196/263/12 195/264/12 +f 192/262/36 201/265/36 189/266/36 +f 181/255/9 189/266/9 190/267/9 +f 184/256/37 189/266/37 183/260/37 +f 181/255/19 191/268/19 182/253/19 +f 195/264/12 200/269/12 199/270/12 +f 185/254/9 193/271/9 187/259/9 +f 187/259/38 196/263/38 188/261/38 +f 186/272/18 194/273/18 185/254/18 +f 198/274/7 200/275/7 197/276/7 +f 194/273/9 197/276/9 193/271/9 +f 193/271/39 200/269/39 196/263/39 +f 195/277/20 198/274/20 194/273/20 +f 204/278/8 202/279/8 201/265/8 +f 190/267/21 203/280/21 191/268/21 +f 191/281/12 204/282/12 192/262/12 +f 190/267/9 201/265/9 202/279/9 +f 205/283/7 208/284/7 206/285/7 +f 210/286/7 211/287/7 212/288/7 +f 213/289/7 216/290/7 214/291/7 +f 218/292/7 219/293/7 220/294/7 +f 221/295/7 224/296/7 222/297/7 +f 226/298/7 227/299/7 228/300/7 +f 229/301/7 232/302/7 230/303/7 +f 234/304/7 235/305/7 236/306/7 +f 237/307/7 240/308/7 238/309/7 +f 242/310/7 243/311/7 244/312/7 +f 245/313/7 248/314/7 246/315/7 +f 250/316/7 251/317/7 252/318/7 +f 253/319/7 256/320/7 254/321/7 +f 258/322/7 259/323/7 260/324/7 +f 262/325/40 265/326/40 261/327/40 +f 264/328/7 266/329/7 262/330/7 +f 263/331/8 265/326/8 267/332/8 +f 263/331/41 268/333/41 264/328/41 +f 270/334/40 273/335/40 269/336/40 +f 272/337/7 274/338/7 270/339/7 +f 271/340/8 273/335/8 275/341/8 +f 271/340/41 276/342/41 272/337/41 +f 278/343/40 281/344/40 277/345/40 +f 280/346/7 282/347/7 278/348/7 +f 279/349/8 281/344/8 283/350/8 +f 279/349/41 284/351/41 280/346/41 +f 286/352/40 289/353/40 285/354/40 +f 288/355/7 290/356/7 286/357/7 +f 287/358/8 289/353/8 291/359/8 +f 287/358/41 292/360/41 288/355/41 +f 294/361/42 295/362/42 293/363/42 +f 297/364/43 299/365/43 298/366/43 +f 296/367/44 297/364/44 295/362/44 +f 293/368/45 299/365/45 294/369/45 +f 294/370/7 300/371/7 296/372/7 +f 295/373/8 298/366/8 293/374/8 +f 305/375/9 308/376/9 306/377/9 +f 304/378/7 305/375/7 302/379/7 +f 302/380/4 306/377/4 301/381/4 +f 301/382/8 308/376/8 303/383/8 +f 303/384/3 307/385/3 304/386/3 +f 311/387/3 310/388/3 309/389/3 +f 316/390/38 310/388/38 312/391/38 +f 313/392/37 311/387/37 309/389/37 +f 320/393/39 314/394/39 316/390/39 +f 317/395/36 315/396/36 313/392/36 +f 315/396/46 323/397/46 311/387/46 +f 314/394/47 322/398/47 310/388/47 +f 323/397/32 312/391/32 311/387/32 +f 322/398/33 309/389/33 310/388/33 +f 321/399/48 313/392/48 309/389/48 +f 324/400/49 316/390/49 312/391/49 +f 315/396/50 319/401/50 327/402/50 +f 316/390/51 328/403/51 320/393/51 +f 313/392/52 325/404/52 317/395/52 +f 314/394/53 318/405/53 326/406/53 +f 332/407/8 329/408/8 330/409/8 +f 334/410/8 335/411/8 333/412/8 +f 340/413/8 337/414/8 338/415/8 +f 342/416/8 343/417/8 341/418/8 +f 348/419/8 345/420/8 346/421/8 +f 350/422/8 351/423/8 349/424/8 +f 356/425/8 353/426/8 354/427/8 +f 358/428/8 359/429/8 357/430/8 +f 364/431/8 361/432/8 362/433/8 +f 366/434/8 367/435/8 365/436/8 +f 372/437/8 369/438/8 370/439/8 +f 374/440/8 375/441/8 373/442/8 +f 380/443/8 377/444/8 378/445/8 +f 382/446/8 383/447/8 381/448/8 +f 4/1/1 12/449/1 14/2/1 +f 1/4/2 9/450/2 15/5/2 +f 11/7/3 12/449/3 4/1/3 +f 10/9/4 9/450/4 1/4/4 +f 16/11/5 11/7/5 3/8/5 +f 13/13/6 10/9/6 2/10/6 +f 14/2/7 13/13/7 5/14/7 +f 15/15/8 16/11/8 8/12/8 +f 11/19/9 16/451/9 15/452/9 +f 15/452/9 9/453/9 10/17/9 +f 10/17/9 13/454/9 14/18/9 +f 14/18/9 12/455/9 11/19/9 +f 11/19/9 15/452/9 10/17/9 +f 18/20/7 20/456/7 19/21/7 +f 21/23/8 24/31/8 23/24/8 +f 19/21/9 21/23/9 22/25/9 +f 33/26/10 180/457/10 179/27/10 +f 18/29/11 26/458/11 28/30/11 +f 18/29/12 23/24/12 24/31/12 +f 25/33/4 27/36/4 28/34/4 +f 17/22/13 22/25/13 27/36/13 +f 22/25/14 23/24/14 28/37/14 +f 17/22/15 25/459/15 26/39/15 +f 30/40/7 32/460/7 31/41/7 +f 33/26/8 36/28/8 35/43/8 +f 31/41/9 33/26/9 34/44/9 +f 21/23/10 176/461/10 175/45/10 +f 35/43/11 30/48/11 38/46/11 +f 30/48/12 35/43/12 36/28/12 +f 37/50/4 39/462/4 40/51/4 +f 34/44/13 39/462/13 37/50/13 +f 34/44/16 35/43/16 40/53/16 +f 29/42/17 37/463/17 38/55/17 +f 42/56/3 44/464/3 43/57/3 +f 45/59/4 48/63/4 47/60/4 +f 42/62/7 47/60/7 48/63/7 +f 43/65/8 45/59/8 46/61/8 +f 44/67/12 48/63/12 45/59/12 +f 41/58/9 46/61/9 47/60/9 +f 50/69/4 52/75/4 51/70/4 +f 53/72/3 56/78/3 55/73/3 +f 52/75/9 56/78/9 53/72/9 +f 49/71/12 54/465/12 55/76/12 +f 50/77/7 55/466/7 56/78/7 +f 51/70/8 53/72/8 54/79/8 +f 58/81/4 60/85/4 59/82/4 +f 58/81/18 62/87/18 64/84/18 +f 59/82/19 63/89/19 61/86/19 +f 62/87/20 66/100/20 68/88/20 +f 63/89/21 67/97/21 65/90/21 +f 63/89/22 59/82/22 71/91/22 +f 62/87/23 58/81/23 70/93/23 +f 60/85/24 72/96/24 71/91/24 +f 57/83/25 69/95/25 70/93/25 +f 61/86/26 73/99/26 69/95/26 +f 64/84/27 76/98/27 72/96/27 +f 77/101/25 90/122/25 91/102/25 +f 82/104/7 84/112/7 88/105/7 +f 78/103/4 82/116/4 81/107/4 +f 80/108/7 84/112/7 82/104/7 +f 77/101/8 81/107/8 83/110/8 +f 79/111/3 83/110/3 84/112/3 +f 87/113/9 88/105/9 85/114/9 +f 81/107/8 86/117/8 85/114/8 +f 83/110/32 85/114/32 88/105/32 +f 82/116/24 87/467/24 86/117/24 +f 89/118/12 92/121/12 91/119/12 +f 78/109/7 91/468/7 92/121/7 +f 77/101/8 79/111/8 89/118/8 +f 80/108/33 92/121/33 89/118/33 +f 93/123/25 106/144/25 107/124/25 +f 98/126/7 100/134/7 104/127/7 +f 94/125/4 98/138/4 97/129/4 +f 96/130/7 100/134/7 98/126/7 +f 93/123/8 97/129/8 99/132/8 +f 95/133/3 99/132/3 100/134/3 +f 103/135/9 104/127/9 101/136/9 +f 97/129/8 102/139/8 101/136/8 +f 99/132/32 101/136/32 104/127/32 +f 98/138/24 103/469/24 102/139/24 +f 105/140/12 108/143/12 107/141/12 +f 94/131/7 107/470/7 108/143/7 +f 93/123/8 95/133/8 105/140/8 +f 96/130/33 108/143/33 105/140/33 +f 109/145/25 122/166/25 123/146/25 +f 114/148/7 116/156/7 120/149/7 +f 110/147/4 114/160/4 113/151/4 +f 112/152/7 116/156/7 114/148/7 +f 109/145/8 113/151/8 115/154/8 +f 111/155/3 115/154/3 116/156/3 +f 119/157/9 120/149/9 117/158/9 +f 113/151/8 118/161/8 117/158/8 +f 115/154/32 117/158/32 120/149/32 +f 114/160/24 119/471/24 118/161/24 +f 121/162/12 124/165/12 123/163/12 +f 110/153/7 123/472/7 124/165/7 +f 109/145/8 111/155/8 121/162/8 +f 112/152/33 124/165/33 121/162/33 +f 125/167/25 138/188/25 139/168/25 +f 130/170/7 132/178/7 136/171/7 +f 126/169/4 130/182/4 129/173/4 +f 128/174/7 132/178/7 130/170/7 +f 125/167/8 129/173/8 131/176/8 +f 127/177/3 131/176/3 132/178/3 +f 135/179/9 136/171/9 133/180/9 +f 129/173/8 134/183/8 133/180/8 +f 131/176/32 133/180/32 136/171/32 +f 130/182/24 135/473/24 134/183/24 +f 137/184/12 140/187/12 139/185/12 +f 126/175/7 139/474/7 140/187/7 +f 125/167/8 127/177/8 137/184/8 +f 128/174/33 140/187/33 137/184/33 +f 141/189/25 154/210/25 155/190/25 +f 146/192/7 148/200/7 152/193/7 +f 142/191/4 146/204/4 145/195/4 +f 144/196/7 148/200/7 146/192/7 +f 141/189/8 145/195/8 147/198/8 +f 143/199/3 147/198/3 148/200/3 +f 151/201/9 152/193/9 149/202/9 +f 145/195/8 150/205/8 149/202/8 +f 147/198/32 149/202/32 152/193/32 +f 146/204/24 151/475/24 150/205/24 +f 153/206/12 156/209/12 155/207/12 +f 142/197/7 155/476/7 156/209/7 +f 141/189/8 143/199/8 153/206/8 +f 144/196/33 156/209/33 153/206/33 +f 158/211/4 162/477/4 161/212/4 +f 160/214/7 164/219/7 162/215/7 +f 157/213/8 161/212/8 163/217/8 +f 159/218/3 163/217/3 164/219/3 +f 166/220/4 170/478/4 169/221/4 +f 168/223/7 172/228/7 170/224/7 +f 165/222/8 169/221/8 171/226/8 +f 167/227/3 171/226/3 172/228/3 +f 161/229/9 162/479/9 164/230/9 +f 160/232/12 158/480/12 157/233/12 +f 168/235/12 166/481/12 165/236/12 +f 169/238/9 170/482/9 172/239/9 +f 173/241/3 175/483/3 176/242/3 +f 177/244/3 179/484/3 180/245/3 +f 19/21/34 20/456/34 173/247/34 +f 31/41/34 32/460/34 177/249/34 +f 24/31/35 175/485/35 173/251/35 +f 36/28/35 179/486/35 177/252/35 +f 19/21/9 174/243/9 176/242/9 +f 31/41/9 178/246/9 180/245/9 +f 182/253/4 186/272/4 185/254/4 +f 184/256/12 188/261/12 186/257/12 +f 181/255/9 185/254/9 187/259/9 +f 183/260/3 187/259/3 188/261/3 +f 182/258/12 191/281/12 192/262/12 +f 186/257/12 188/261/12 196/263/12 +f 192/262/36 204/282/36 201/265/36 +f 181/255/9 183/260/9 189/266/9 +f 184/256/37 192/262/37 189/266/37 +f 181/255/19 190/267/19 191/268/19 +f 195/264/12 196/263/12 200/269/12 +f 185/254/9 194/273/9 193/271/9 +f 187/259/38 193/271/38 196/263/38 +f 186/272/18 195/277/18 194/273/18 +f 198/274/7 199/487/7 200/275/7 +f 194/273/9 198/274/9 197/276/9 +f 193/271/39 197/276/39 200/269/39 +f 195/277/20 199/488/20 198/274/20 +f 204/278/8 203/489/8 202/279/8 +f 190/267/21 202/279/21 203/280/21 +f 191/281/12 203/490/12 204/282/12 +f 190/267/9 189/266/9 201/265/9 +f 205/283/7 207/491/7 208/284/7 +f 210/286/7 209/492/7 211/287/7 +f 213/289/7 215/493/7 216/290/7 +f 218/292/7 217/494/7 219/293/7 +f 221/295/7 223/495/7 224/296/7 +f 226/298/7 225/496/7 227/299/7 +f 229/301/7 231/497/7 232/302/7 +f 234/304/7 233/498/7 235/305/7 +f 237/307/7 239/499/7 240/308/7 +f 242/310/7 241/500/7 243/311/7 +f 245/313/7 247/501/7 248/314/7 +f 250/316/7 249/502/7 251/317/7 +f 253/319/7 255/503/7 256/320/7 +f 258/322/7 257/504/7 259/323/7 +f 262/325/40 266/505/40 265/326/40 +f 264/328/7 268/333/7 266/329/7 +f 263/331/8 261/327/8 265/326/8 +f 263/331/41 267/332/41 268/333/41 +f 270/334/40 274/506/40 273/335/40 +f 272/337/7 276/342/7 274/338/7 +f 271/340/8 269/336/8 273/335/8 +f 271/340/41 275/341/41 276/342/41 +f 278/343/40 282/507/40 281/344/40 +f 280/346/7 284/351/7 282/347/7 +f 279/349/8 277/345/8 281/344/8 +f 279/349/41 283/350/41 284/351/41 +f 286/352/40 290/508/40 289/353/40 +f 288/355/7 292/360/7 290/356/7 +f 287/358/8 285/354/8 289/353/8 +f 287/358/41 291/359/41 292/360/41 +f 294/361/42 296/367/42 295/362/42 +f 297/364/43 300/371/43 299/365/43 +f 296/367/44 300/371/44 297/364/44 +f 293/368/45 298/366/45 299/365/45 +f 294/370/7 299/365/7 300/371/7 +f 295/373/8 297/364/8 298/366/8 +f 305/375/9 307/385/9 308/376/9 +f 304/378/7 307/385/7 305/375/7 +f 302/380/4 305/375/4 306/377/4 +f 301/382/8 306/377/8 308/376/8 +f 303/384/3 308/376/3 307/385/3 +f 311/387/3 312/391/3 310/388/3 +f 316/390/38 314/394/38 310/388/38 +f 313/392/37 315/396/37 311/387/37 +f 320/393/39 318/405/39 314/394/39 +f 317/395/36 319/401/36 315/396/36 +f 315/396/46 327/402/46 323/397/46 +f 314/394/47 326/406/47 322/398/47 +f 323/397/32 324/400/32 312/391/32 +f 322/398/33 321/399/33 309/389/33 +f 321/399/48 325/404/48 313/392/48 +f 324/400/49 328/403/49 316/390/49 +f 332/407/8 331/509/8 329/408/8 +f 334/410/8 336/510/8 335/411/8 +f 340/413/8 339/511/8 337/414/8 +f 342/416/8 344/512/8 343/417/8 +f 348/419/8 347/513/8 345/420/8 +f 350/422/8 352/514/8 351/423/8 +f 356/425/8 355/515/8 353/426/8 +f 358/428/8 360/516/8 359/429/8 +f 364/431/8 363/517/8 361/432/8 +f 366/434/8 368/518/8 367/435/8 +f 372/437/8 371/519/8 369/438/8 +f 374/440/8 376/520/8 375/441/8 +f 380/443/8 379/521/8 377/444/8 +f 382/446/8 384/522/8 383/447/8 +o Radar +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.500000 4.500000 1.500000 +v 1.500000 4.500000 1.500000 +v -1.500000 4.500000 -1.500000 +v 1.500000 4.500000 -1.500000 +v -1.500000 5.000000 1.500000 +v 1.500000 5.000000 1.500000 +v -1.500000 5.000000 -1.500000 +v 1.500000 5.000000 -1.500000 +v -0.312500 5.000000 0.750000 +v 0.312500 5.000000 0.750000 +v -0.312500 5.000000 -0.750000 +v 0.312500 5.000000 -0.750000 +v 0.750000 5.000000 0.312500 +v 0.750000 5.000000 -0.312500 +v -0.750000 5.000000 0.312500 +v -0.750000 5.000000 -0.312500 +v -0.312500 5.500000 0.750000 +v 0.312500 5.500000 0.750000 +v -0.312500 5.500000 -0.750000 +v 0.312500 5.500000 -0.750000 +v 0.750000 5.500000 0.312500 +v 0.750000 5.500000 -0.312500 +v -0.750000 5.500000 0.312500 +v -0.750000 5.500000 -0.312500 +v -1.250000 5.875000 0.750000 +v 1.250000 5.875000 0.750000 +v -1.250000 5.875000 -0.750000 +v 1.250000 5.875000 -0.750000 +v 1.187500 5.000000 -0.687500 +v 1.312500 5.000000 -0.687500 +v 1.187500 5.000000 -0.812500 +v 1.312500 5.000000 -0.812500 +v 1.187500 6.000000 -0.812500 +v 1.187500 6.000000 -0.687500 +v 1.312500 6.000000 -0.687500 +v 1.312500 6.000000 -0.812500 +v 1.187500 5.000000 0.812500 +v 1.312500 5.000000 0.812500 +v 1.187500 5.000000 0.687500 +v 1.312500 5.000000 0.687500 +v 1.187500 6.000000 0.687500 +v 1.187500 6.000000 0.812500 +v 1.312500 6.000000 0.812500 +v 1.312500 6.000000 0.687500 +v -1.312500 5.000000 -0.687500 +v -1.187500 5.000000 -0.687500 +v -1.312500 5.000000 -0.812500 +v -1.187500 5.000000 -0.812500 +v -1.312500 6.000000 -0.812500 +v -1.312500 6.000000 -0.687500 +v -1.187500 6.000000 -0.687500 +v -1.187500 6.000000 -0.812500 +v -1.312500 5.000000 0.812500 +v -1.187500 5.000000 0.812500 +v -1.312500 5.000000 0.687500 +v -1.187500 5.000000 0.687500 +v -1.312500 6.000000 0.687500 +v -1.312500 6.000000 0.812500 +v -1.187500 6.000000 0.812500 +v -1.187500 6.000000 0.687500 +v -0.687500 5.000000 -1.187500 +v -0.687500 5.000000 -1.312500 +v -0.812500 5.000000 -1.187500 +v -0.812500 5.000000 -1.312500 +v -0.812500 6.000000 -1.187500 +v -0.687500 6.000000 -1.187500 +v -0.687500 6.000000 -1.312500 +v -0.812500 6.000000 -1.312500 +v 0.812500 5.000000 -1.187500 +v 0.812500 5.000000 -1.312500 +v 0.687500 5.000000 -1.187500 +v 0.687500 5.000000 -1.312500 +v 0.687500 6.000000 -1.187500 +v 0.812500 6.000000 -1.187500 +v 0.812500 6.000000 -1.312500 +v 0.687500 6.000000 -1.312500 +v -0.687500 5.000000 1.312500 +v -0.687500 5.000000 1.187500 +v -0.812500 5.000000 1.312500 +v -0.812500 5.000000 1.187500 +v -0.812500 6.000000 1.312500 +v -0.687500 6.000000 1.312500 +v -0.687500 6.000000 1.187500 +v -0.812500 6.000000 1.187500 +v 0.812500 5.000000 1.312500 +v 0.812500 5.000000 1.187500 +v 0.687500 5.000000 1.312500 +v 0.687500 5.000000 1.187500 +v 0.687500 6.000000 1.312500 +v 0.812500 6.000000 1.312500 +v 0.812500 6.000000 1.187500 +v 0.687500 6.000000 1.187500 +v 0.750000 5.875000 1.250000 +v 0.750000 5.875000 -1.250000 +v -0.750000 5.875000 1.250000 +v -0.750000 5.875000 -1.250000 +v -1.250000 5.750000 0.750000 +v 1.250000 5.750000 0.750000 +v -1.250000 5.750000 -0.750000 +v 1.250000 5.750000 -0.750000 +v 0.750000 5.750000 1.250000 +v 0.750000 5.750000 -1.250000 +v -0.750000 5.750000 1.250000 +v -0.750000 5.750000 -1.250000 +v -1.250000 5.500000 0.750000 +v 1.250000 5.500000 0.750000 +v -1.250000 5.500000 -0.750000 +v 1.250000 5.500000 -0.750000 +v 0.750000 5.500000 1.250000 +v 0.750000 5.500000 -1.250000 +v -0.750000 5.500000 1.250000 +v -0.750000 5.500000 -1.250000 +v -1.250000 5.375000 0.750000 +v 1.250000 5.375000 0.750000 +v -1.250000 5.375000 -0.750000 +v 1.250000 5.375000 -0.750000 +v 0.750000 5.375000 1.250000 +v 0.750000 5.375000 -1.250000 +v -0.750000 5.375000 1.250000 +v -0.750000 5.375000 -1.250000 +v -1.250000 1.000000 1.250000 +v -0.750000 1.000000 1.250000 +v -1.250000 1.000000 0.750000 +v -0.750000 1.000000 0.750000 +v -1.250000 4.500000 1.250000 +v -0.750000 4.500000 1.250000 +v -1.250000 4.500000 0.750000 +v -0.750000 4.500000 0.750000 +v 0.750000 1.000000 1.250000 +v 1.250000 1.000000 1.250000 +v 0.750000 1.000000 0.750000 +v 1.250000 1.000000 0.750000 +v 0.750000 4.500000 1.250000 +v 1.250000 4.500000 1.250000 +v 0.750000 4.500000 0.750000 +v 1.250000 4.500000 0.750000 +v -1.250000 1.000000 -0.750000 +v -0.750000 1.000000 -0.750000 +v -1.250000 1.000000 -1.250000 +v -0.750000 1.000000 -1.250000 +v -1.250000 4.500000 -0.750000 +v -0.750000 4.500000 -0.750000 +v -1.250000 4.500000 -1.250000 +v -0.750000 4.500000 -1.250000 +v 0.750000 1.000000 -0.750000 +v 1.250000 1.000000 -0.750000 +v 0.750000 1.000000 -1.250000 +v 1.250000 1.000000 -1.250000 +v 0.750000 4.500000 -0.750000 +v 1.250000 4.500000 -0.750000 +v 0.750000 4.500000 -1.250000 +v 1.250000 4.500000 -1.250000 +v -1.062500 1.000000 -0.750000 +v -0.937500 1.000000 0.750000 +v -1.062500 1.250000 -0.750000 +v -0.937500 1.250000 0.750000 +v -1.062500 2.500000 0.750000 +v -0.937500 2.500000 -0.750000 +v -1.062500 2.750000 0.750000 +v -0.937500 2.750000 -0.750000 +v -1.062500 2.750000 -0.750000 +v -0.937500 2.750000 0.750000 +v -1.062500 3.000000 -0.750000 +v -0.937500 3.000000 0.750000 +v -1.062500 4.250000 0.750000 +v -0.937500 4.250000 -0.750000 +v -1.062500 4.500000 0.750000 +v -0.937500 4.500000 -0.750000 +v 0.937500 4.500000 0.750000 +v 1.062500 4.500000 -0.750000 +v 0.937500 4.250000 0.750000 +v 1.062500 4.250000 -0.750000 +v 0.937500 3.000000 -0.750000 +v 1.062500 3.000000 0.750000 +v 0.937500 2.750000 -0.750000 +v 1.062500 2.750000 0.750000 +v 0.937500 2.750000 0.750000 +v 1.062500 2.750000 -0.750000 +v 0.937500 2.500000 0.750000 +v 1.062500 2.500000 -0.750000 +v 0.937500 1.250000 -0.750000 +v 1.062500 1.250000 0.750000 +v 0.937500 1.000000 -0.750000 +v 1.062500 1.000000 0.750000 +v 0.750000 1.000000 -1.062500 +v -0.750000 1.000000 -0.937500 +v 0.750000 1.250000 -1.062500 +v -0.750000 1.250000 -0.937500 +v -0.750000 2.500000 -1.062500 +v 0.750000 2.500000 -0.937500 +v -0.750000 2.750000 -1.062500 +v 0.750000 2.750000 -0.937500 +v 0.750000 2.750000 -1.062500 +v -0.750000 2.750000 -0.937500 +v 0.750000 3.000000 -1.062500 +v -0.750000 3.000000 -0.937500 +v -0.750000 4.250000 -1.062500 +v 0.750000 4.250000 -0.937500 +v -0.750000 4.500000 -1.062500 +v 0.750000 4.500000 -0.937500 +v -0.750000 4.500000 0.937500 +v 0.750000 4.500000 1.062500 +v -0.750000 4.250000 0.937500 +v 0.750000 4.250000 1.062500 +v 0.750000 3.000000 0.937500 +v -0.750000 3.000000 1.062500 +v 0.750000 2.750000 0.937500 +v -0.750000 2.750000 1.062500 +v -0.750000 2.750000 0.937500 +v 0.750000 2.750000 1.062500 +v -0.750000 2.500000 0.937500 +v 0.750000 2.500000 1.062500 +v 0.750000 1.250000 0.937500 +v -0.750000 1.250000 1.062500 +v 0.750000 1.000000 0.937500 +v -0.750000 1.000000 1.062500 +v -0.750000 5.375000 -1.250000 +v -0.750000 5.375000 1.250000 +v 0.750000 5.375000 -1.250000 +v 0.750000 5.375000 1.250000 +v 1.250000 5.375000 -0.750000 +v -1.250000 5.375000 -0.750000 +v 1.250000 5.375000 0.750000 +v -1.250000 5.375000 0.750000 +v -0.750000 5.500000 -1.250000 +v -0.750000 5.500000 1.250000 +v 0.750000 5.500000 -1.250000 +v 0.750000 5.500000 1.250000 +v 1.250000 5.500000 -0.750000 +v -1.250000 5.500000 -0.750000 +v 1.250000 5.500000 0.750000 +v -1.250000 5.500000 0.750000 +v -0.750000 5.750000 -1.250000 +v -0.750000 5.750000 1.250000 +v 0.750000 5.750000 -1.250000 +v 0.750000 5.750000 1.250000 +v 1.250000 5.750000 -0.750000 +v -1.250000 5.750000 -0.750000 +v 1.250000 5.750000 0.750000 +v -1.250000 5.750000 0.750000 +v -0.750000 5.875000 -1.250000 +v -0.750000 5.875000 1.250000 +v 0.750000 5.875000 -1.250000 +v 0.750000 5.875000 1.250000 +v 1.250000 5.875000 -0.750000 +v -1.250000 5.875000 -0.750000 +v 1.250000 5.875000 0.750000 +v -1.250000 5.875000 0.750000 +v -0.750000 1.000000 1.062500 +v 0.750000 1.000000 0.937500 +v -0.750000 1.250000 1.062500 +v 0.750000 1.250000 0.937500 +v 0.750000 2.500000 1.062500 +v -0.750000 2.500000 0.937500 +v 0.750000 2.750000 1.062500 +v -0.750000 2.750000 0.937500 +v -0.750000 2.750000 1.062500 +v 0.750000 2.750000 0.937500 +v -0.750000 3.000000 1.062500 +v 0.750000 3.000000 0.937500 +v 0.750000 4.250000 1.062500 +v -0.750000 4.250000 0.937500 +v 0.750000 4.500000 1.062500 +v -0.750000 4.500000 0.937500 +v 0.750000 4.500000 -0.937500 +v -0.750000 4.500000 -1.062500 +v 0.750000 4.250000 -0.937500 +v -0.750000 4.250000 -1.062500 +v -0.750000 3.000000 -0.937500 +v 0.750000 3.000000 -1.062500 +v -0.750000 2.750000 -0.937500 +v 0.750000 2.750000 -1.062500 +v 0.750000 2.750000 -0.937500 +v -0.750000 2.750000 -1.062500 +v 0.750000 2.500000 -0.937500 +v -0.750000 2.500000 -1.062500 +v -0.750000 1.250000 -0.937500 +v 0.750000 1.250000 -1.062500 +v -0.750000 1.000000 -0.937500 +v 0.750000 1.000000 -1.062500 +v 1.062500 1.000000 0.750000 +v 0.937500 1.000000 -0.750000 +v 1.062500 1.250000 0.750000 +v 0.937500 1.250000 -0.750000 +v 1.062500 2.500000 -0.750000 +v 0.937500 2.500000 0.750000 +v 1.062500 2.750000 -0.750000 +v 0.937500 2.750000 0.750000 +v 1.062500 2.750000 0.750000 +v 0.937500 2.750000 -0.750000 +v 1.062500 3.000000 0.750000 +v 0.937500 3.000000 -0.750000 +v 1.062500 4.250000 -0.750000 +v 0.937500 4.250000 0.750000 +v 1.062500 4.500000 -0.750000 +v 0.937500 4.500000 0.750000 +v -0.937500 4.500000 -0.750000 +v -1.062500 4.500000 0.750000 +v -0.937500 4.250000 -0.750000 +v -1.062500 4.250000 0.750000 +v -0.937500 3.000000 0.750000 +v -1.062500 3.000000 -0.750000 +v -0.937500 2.750000 0.750000 +v -1.062500 2.750000 -0.750000 +v -0.937500 2.750000 -0.750000 +v -1.062500 2.750000 0.750000 +v -0.937500 2.500000 -0.750000 +v -1.062500 2.500000 0.750000 +v -0.937500 1.250000 0.750000 +v -1.062500 1.250000 -0.750000 +v -0.937500 1.000000 0.750000 +v -1.062500 1.000000 -0.750000 +vt 0.000000 0.000000 +vt 0.181818 0.400000 +vt 0.000000 0.400000 +vt 0.181818 0.533333 +vt 0.000000 0.933333 +vt 0.000000 0.533333 +vt 0.181818 0.400000 +vt 0.000000 0.533333 +vt 0.000000 0.400000 +vt 0.181818 0.400000 +vt 0.000000 0.533333 +vt 0.000000 0.400000 +vt 0.181818 0.400000 +vt 0.000000 0.533333 +vt 0.000000 0.400000 +vt 0.181818 0.000000 +vt 0.363636 0.400000 +vt 0.181818 0.400000 +vt 0.363636 0.466667 +vt 0.181818 0.866667 +vt 0.181818 0.466667 +vt 0.363636 0.400000 +vt 0.181818 0.466667 +vt 0.181818 0.400000 +vt 0.363636 0.400000 +vt 0.181818 0.466667 +vt 0.181818 0.400000 +vt 0.363636 0.400000 +vt 0.181818 0.466667 +vt 0.181818 0.400000 +vt 0.674242 0.066667 +vt 0.636364 0.000000 +vt 0.674242 0.000000 +vt 0.522727 0.066667 +vt 0.484848 0.000000 +vt 0.522727 0.000000 +vt 0.712121 0.000000 +vt 0.560606 0.000000 +vt 0.750000 0.000000 +vt 0.712121 0.066667 +vt 0.598485 0.000000 +vt 0.560606 0.066667 +vt 0.598485 0.066667 +vt 0.787879 0.000000 +vt 0.750000 0.066667 +vt 0.511364 0.266667 +vt 0.484848 0.125000 +vt 0.549242 0.066667 +vt 0.378788 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.666667 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.378788 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.666667 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.378788 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.378788 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.378788 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.378788 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.454545 0.516667 +vt 0.484848 0.533333 +vt 0.454545 0.533333 +vt 0.454545 0.516667 +vt 0.484848 0.533333 +vt 0.454545 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.363636 0.516667 +vt 0.454545 0.533333 +vt 0.363636 0.533333 +vt 0.484848 0.516667 +vt 0.484848 0.533333 +vt 0.454545 0.533333 +vt 0.484848 0.516667 +vt 0.484848 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.454545 0.500000 +vt 0.484848 0.516667 +vt 0.454545 0.516667 +vt 0.454545 0.500000 +vt 0.484848 0.516667 +vt 0.454545 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.363636 0.500000 +vt 0.454545 0.516667 +vt 0.363636 0.516667 +vt 0.484848 0.500000 +vt 0.484848 0.516667 +vt 0.454545 0.516667 +vt 0.484848 0.500000 +vt 0.484848 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.454545 -0.000000 +vt 0.424242 0.466667 +vt 0.424242 -0.000000 +vt 0.393939 -0.000000 +vt 0.363636 0.466667 +vt 0.363636 -0.000000 +vt 0.484848 -0.000000 +vt 0.454545 0.466667 +vt 0.454545 -0.000000 +vt 0.424242 -0.000000 +vt 0.393939 0.466667 +vt 0.393939 -0.000000 +vt 0.363636 0.466667 +vt 0.363636 -0.000000 +vt 0.424242 0.466667 +vt 0.484848 -0.000000 +vt 0.454545 0.466667 +vt 0.393939 0.466667 +vt 0.424242 -0.000000 +vt 0.393939 0.466667 +vt 0.393939 -0.000000 +vt 0.484848 -0.000000 +vt 0.454545 0.466667 +vt 0.454545 -0.000000 +vt 0.393939 -0.000000 +vt 0.363636 0.466667 +vt 0.363636 -0.000000 +vt 0.454545 -0.000000 +vt 0.424242 0.466667 +vt 0.424242 -0.000000 +vt 0.393939 0.466667 +vt 0.484848 -0.000000 +vt 0.454545 0.466667 +vt 0.424242 0.466667 +vt 0.363636 0.466667 +vt 0.363636 -0.000000 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.454545 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.454545 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.484848 0.500000 +vt 0.484848 0.516667 +vt 0.484848 0.500000 +vt 0.454545 0.516667 +vt 0.484848 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.454545 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.484848 0.516667 +vt 0.454545 0.500000 +vt 0.484848 0.516667 +vt 0.454545 0.500000 +vt 0.454545 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.454545 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.484848 0.516667 +vt 0.484848 0.533333 +vt 0.484848 0.516667 +vt 0.454545 0.533333 +vt 0.484848 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.454545 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.484848 0.533333 +vt 0.454545 0.516667 +vt 0.484848 0.533333 +vt 0.454545 0.516667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.181818 0.000000 +vt 0.181818 0.933333 +vt 0.181818 0.533333 +vt 0.181818 0.533333 +vt 0.181818 0.533333 +vt 0.363636 0.000000 +vt 0.363636 0.866667 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.636364 0.066667 +vt 0.484848 0.066667 +vt 0.787879 0.066667 +vt 0.575758 0.125000 +vt 0.575758 0.208333 +vt 0.549242 0.266667 +vt 0.484848 0.208333 +vt 0.511364 0.066667 +vt 0.378788 0.683333 +vt 0.378788 0.683333 +vt 0.393939 0.666667 +vt 0.393939 0.666667 +vt 0.378788 0.683333 +vt 0.378788 0.683333 +vt 0.393939 0.666667 +vt 0.393939 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.683333 +vt 0.393939 0.666667 +vt 0.393939 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.683333 +vt 0.393939 0.666667 +vt 0.393939 0.666667 +vt 0.484848 0.516667 +vt 0.484848 0.516667 +vt 0.454545 0.516667 +vt 0.454545 0.516667 +vt 0.484848 0.500000 +vt 0.484848 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.484848 0.466667 +vt 0.484848 0.466667 +vt 0.484848 0.466667 +vt 0.484848 0.466667 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.484848 0.500000 +vt 0.484848 0.500000 +vt 0.454545 0.516667 +vt 0.454545 0.516667 +vt 0.484848 0.516667 +vt 0.484848 0.516667 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.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 +s off +f 387/523/54 386/524/54 385/525/54 +f 390/526/55 391/527/55 389/528/55 +f 385/529/56 391/530/56 387/531/56 +f 387/532/57 392/533/57 388/534/57 +f 386/524/58 389/528/58 385/525/58 +f 388/535/59 390/536/59 386/537/59 +f 395/538/54 394/539/54 393/540/54 +f 398/541/55 399/542/55 397/543/55 +f 393/544/56 399/545/56 395/546/56 +f 395/547/57 400/548/57 396/549/57 +f 394/539/58 397/543/58 393/540/58 +f 396/550/59 398/551/59 394/552/59 +f 412/553/60 406/554/60 404/555/60 +f 409/556/61 407/557/61 401/558/61 +f 403/559/57 412/553/57 404/555/57 +f 402/560/58 409/556/58 401/558/58 +f 408/561/62 411/562/62 403/559/62 +f 405/563/63 410/564/63 402/560/63 +f 406/554/59 413/565/59 405/563/59 +f 407/566/56 416/567/56 408/561/56 +f 410/568/55 414/569/55 411/570/55 +f 435/571/55 433/572/55 434/573/55 +f 427/574/55 425/575/55 426/576/55 +f 423/577/57 428/578/57 424/579/57 +f 422/580/58 426/576/58 421/581/58 +f 424/579/59 427/574/59 422/580/59 +f 421/581/56 425/582/56 423/583/56 +f 431/584/57 436/585/57 432/586/57 +f 430/587/58 434/573/58 429/588/58 +f 432/586/59 435/571/59 430/587/59 +f 429/588/56 433/589/56 431/590/56 +f 451/591/55 449/592/55 450/593/55 +f 443/594/55 441/595/55 442/596/55 +f 439/597/57 444/598/57 440/599/57 +f 438/600/58 442/596/58 437/601/58 +f 440/599/59 443/594/59 438/600/59 +f 437/601/56 441/602/56 439/603/56 +f 447/604/57 452/605/57 448/606/57 +f 446/607/58 450/593/58 445/608/58 +f 448/606/59 451/591/59 446/607/59 +f 445/608/56 449/609/56 447/610/56 +f 467/611/55 465/612/55 466/613/55 +f 459/614/55 457/615/55 458/616/55 +f 455/617/56 460/618/56 456/619/56 +f 454/620/59 458/616/59 453/621/59 +f 456/622/57 459/623/57 454/620/57 +f 453/621/58 457/615/58 455/617/58 +f 463/624/56 468/625/56 464/626/56 +f 462/627/59 466/613/59 461/628/59 +f 464/629/57 467/630/57 462/627/57 +f 461/628/58 465/612/58 463/624/58 +f 483/631/55 481/632/55 482/633/55 +f 475/634/55 473/635/55 474/636/55 +f 471/637/56 476/638/56 472/639/56 +f 470/640/59 474/636/59 469/641/59 +f 472/642/57 475/643/57 470/640/57 +f 469/641/58 473/635/58 471/637/58 +f 479/644/56 484/645/56 480/646/56 +f 478/647/59 482/633/59 477/648/59 +f 480/649/57 483/650/57 478/647/57 +f 477/648/58 481/632/58 479/644/58 +f 492/651/60 486/652/60 420/653/60 +f 489/654/61 487/655/61 417/656/61 +f 490/657/59 420/653/59 418/658/59 +f 495/659/58 485/660/58 487/661/58 +f 485/660/63 490/662/63 418/663/63 +f 488/664/62 491/665/62 419/666/62 +f 491/667/56 417/656/56 419/668/56 +f 494/669/57 488/664/57 486/670/57 +f 508/671/60 502/672/60 500/673/60 +f 505/674/61 503/675/61 497/676/61 +f 506/677/59 500/673/59 498/678/59 +f 511/679/58 501/680/58 503/681/58 +f 501/680/63 506/682/63 498/683/63 +f 504/684/62 507/685/62 499/686/62 +f 507/687/56 497/676/56 499/688/56 +f 510/689/57 504/684/57 502/690/57 +f 524/691/59 526/692/59 522/693/59 +f 521/694/56 527/695/56 523/696/56 +f 516/697/59 518/698/59 514/699/59 +f 513/700/56 519/701/56 515/702/56 +f 515/702/57 520/703/57 516/704/57 +f 514/699/58 517/705/58 513/700/58 +f 523/706/57 528/707/57 524/691/57 +f 522/693/58 525/708/58 521/694/58 +f 540/709/59 542/710/59 538/711/59 +f 537/712/56 543/713/56 539/714/56 +f 532/715/59 534/716/59 530/717/59 +f 529/718/56 535/719/56 531/720/56 +f 531/720/57 536/721/57 532/715/57 +f 530/722/58 533/723/58 529/718/58 +f 539/714/57 544/724/57 540/709/57 +f 538/711/58 541/725/58 537/726/58 +f 550/727/59 548/728/59 546/729/59 +f 547/730/59 549/731/59 545/732/59 +f 558/733/59 556/734/59 554/735/59 +f 555/736/59 557/737/59 553/738/59 +f 566/739/56 564/740/56 568/741/56 +f 563/742/56 565/743/56 567/744/56 +f 574/745/56 572/746/56 576/747/56 +f 571/748/56 573/749/56 575/750/56 +f 582/751/58 580/752/58 578/753/58 +f 579/754/58 581/755/58 577/756/58 +f 590/757/58 588/758/58 586/759/58 +f 587/760/58 589/761/58 585/762/58 +f 598/763/57 596/764/57 600/765/57 +f 595/766/57 597/767/57 599/768/57 +f 606/769/57 604/770/57 608/771/57 +f 603/772/57 605/773/57 607/774/57 +f 617/775/58 611/776/58 619/777/58 +f 624/778/59 614/779/59 622/780/59 +f 614/781/63 617/775/63 622/782/63 +f 615/783/62 620/784/62 623/785/62 +f 620/784/57 610/786/57 618/787/57 +f 621/788/56 615/789/56 623/790/56 +f 618/791/60 616/792/60 624/778/60 +f 619/793/61 613/794/61 621/788/61 +f 633/795/58 627/796/58 635/797/58 +f 640/798/59 630/799/59 638/800/59 +f 630/801/63 633/795/63 638/802/63 +f 631/803/62 636/804/62 639/805/62 +f 636/804/57 626/806/57 634/807/57 +f 637/808/56 631/809/56 639/810/56 +f 634/811/60 632/812/60 640/798/60 +f 635/813/61 629/814/61 637/808/61 +f 644/815/58 646/816/58 642/817/58 +f 645/818/58 643/819/58 641/820/58 +f 652/821/58 654/822/58 650/823/58 +f 653/824/58 651/825/58 649/826/58 +f 660/827/57 662/828/57 664/829/57 +f 661/830/57 659/831/57 663/832/57 +f 668/833/57 670/834/57 672/835/57 +f 669/836/57 667/837/57 671/838/57 +f 676/839/59 678/840/59 674/841/59 +f 677/842/59 675/843/59 673/844/59 +f 684/845/59 686/846/59 682/847/59 +f 685/848/59 683/849/59 681/850/59 +f 692/851/56 694/852/56 696/853/56 +f 693/854/56 691/855/56 695/856/56 +f 700/857/56 702/858/56 704/859/56 +f 701/860/56 699/861/56 703/862/56 +f 387/523/54 388/863/54 386/524/54 +f 390/526/55 392/864/55 391/527/55 +f 385/529/56 389/865/56 391/530/56 +f 387/532/57 391/866/57 392/533/57 +f 386/524/58 390/526/58 389/528/58 +f 388/535/59 392/867/59 390/536/59 +f 395/538/54 396/868/54 394/539/54 +f 398/541/55 400/869/55 399/542/55 +f 393/544/56 397/870/56 399/545/56 +f 395/547/57 399/871/57 400/548/57 +f 394/539/58 398/541/58 397/543/58 +f 396/550/59 400/872/59 398/551/59 +f 412/553/60 414/873/60 406/554/60 +f 409/556/61 415/874/61 407/557/61 +f 403/559/57 411/562/57 412/553/57 +f 402/560/58 410/564/58 409/556/58 +f 408/561/62 416/567/62 411/562/62 +f 405/563/63 413/565/63 410/564/63 +f 406/554/59 414/873/59 413/565/59 +f 407/566/56 415/875/56 416/567/56 +f 411/570/55 416/876/55 415/877/55 +f 415/877/55 409/878/55 410/568/55 +f 410/568/55 413/879/55 414/569/55 +f 414/569/55 412/880/55 411/570/55 +f 411/570/55 415/877/55 410/568/55 +f 435/571/55 436/881/55 433/572/55 +f 427/574/55 428/882/55 425/575/55 +f 423/577/57 425/883/57 428/578/57 +f 422/580/58 427/574/58 426/576/58 +f 424/579/59 428/578/59 427/574/59 +f 421/581/56 426/576/56 425/582/56 +f 431/584/57 433/884/57 436/585/57 +f 430/587/58 435/571/58 434/573/58 +f 432/586/59 436/585/59 435/571/59 +f 429/588/56 434/573/56 433/589/56 +f 451/591/55 452/885/55 449/592/55 +f 443/594/55 444/886/55 441/595/55 +f 439/597/57 441/887/57 444/598/57 +f 438/600/58 443/594/58 442/596/58 +f 440/599/59 444/598/59 443/594/59 +f 437/601/56 442/596/56 441/602/56 +f 447/604/57 449/888/57 452/605/57 +f 446/607/58 451/591/58 450/593/58 +f 448/606/59 452/605/59 451/591/59 +f 445/608/56 450/593/56 449/609/56 +f 467/611/55 468/889/55 465/612/55 +f 459/614/55 460/890/55 457/615/55 +f 455/617/56 457/615/56 460/618/56 +f 454/620/59 459/623/59 458/616/59 +f 456/622/57 460/891/57 459/623/57 +f 453/621/58 458/616/58 457/615/58 +f 463/624/56 465/612/56 468/625/56 +f 462/627/59 467/630/59 466/613/59 +f 464/629/57 468/892/57 467/630/57 +f 461/628/58 466/613/58 465/612/58 +f 483/631/55 484/893/55 481/632/55 +f 475/634/55 476/894/55 473/635/55 +f 471/637/56 473/635/56 476/638/56 +f 470/640/59 475/643/59 474/636/59 +f 472/642/57 476/895/57 475/643/57 +f 469/641/58 474/636/58 473/635/58 +f 479/644/56 481/632/56 484/645/56 +f 478/647/59 483/650/59 482/633/59 +f 480/649/57 484/896/57 483/650/57 +f 477/648/58 482/633/58 481/632/58 +f 492/651/60 494/897/60 486/652/60 +f 489/654/61 495/898/61 487/655/61 +f 490/657/59 492/651/59 420/653/59 +f 495/659/58 493/899/58 485/660/58 +f 485/660/63 493/899/63 490/662/63 +f 488/664/62 496/900/62 491/665/62 +f 491/667/56 489/654/56 417/656/56 +f 494/669/57 496/900/57 488/664/57 +f 508/671/60 510/901/60 502/672/60 +f 505/674/61 511/902/61 503/675/61 +f 506/677/59 508/671/59 500/673/59 +f 511/679/58 509/903/58 501/680/58 +f 501/680/63 509/903/63 506/682/63 +f 504/684/62 512/904/62 507/685/62 +f 507/687/56 505/674/56 497/676/56 +f 510/689/57 512/904/57 504/684/57 +f 524/691/59 528/707/59 526/692/59 +f 521/694/56 525/708/56 527/695/56 +f 516/697/59 520/905/59 518/698/59 +f 513/700/56 517/705/56 519/701/56 +f 515/702/57 519/701/57 520/703/57 +f 514/699/58 518/698/58 517/705/58 +f 523/706/57 527/906/57 528/707/57 +f 522/693/58 526/692/58 525/708/58 +f 540/709/59 544/724/59 542/710/59 +f 537/712/56 541/907/56 543/713/56 +f 532/715/59 536/721/59 534/716/59 +f 529/718/56 533/723/56 535/719/56 +f 531/720/57 535/719/57 536/721/57 +f 530/722/58 534/908/58 533/723/58 +f 539/714/57 543/713/57 544/724/57 +f 538/711/58 542/710/58 541/725/58 +f 550/727/59 552/909/59 548/728/59 +f 547/730/59 551/910/59 549/731/59 +f 558/733/59 560/911/59 556/734/59 +f 555/736/59 559/912/59 557/737/59 +f 566/739/56 562/913/56 564/740/56 +f 563/742/56 561/914/56 565/743/56 +f 574/745/56 570/915/56 572/746/56 +f 571/748/56 569/916/56 573/749/56 +f 582/751/58 584/917/58 580/752/58 +f 579/754/58 583/918/58 581/755/58 +f 590/757/58 592/919/58 588/758/58 +f 587/760/58 591/920/58 589/761/58 +f 598/763/57 594/921/57 596/764/57 +f 595/766/57 593/922/57 597/767/57 +f 606/769/57 602/923/57 604/770/57 +f 603/772/57 601/924/57 605/773/57 +f 617/775/58 609/925/58 611/776/58 +f 624/778/59 616/792/59 614/779/59 +f 614/781/63 609/925/63 617/775/63 +f 615/783/62 612/926/62 620/784/62 +f 620/784/57 612/926/57 610/786/57 +f 621/788/56 613/794/56 615/789/56 +f 618/791/60 610/927/60 616/792/60 +f 619/793/61 611/928/61 613/794/61 +f 633/795/58 625/929/58 627/796/58 +f 640/798/59 632/812/59 630/799/59 +f 630/801/63 625/929/63 633/795/63 +f 631/803/62 628/930/62 636/804/62 +f 636/804/57 628/930/57 626/806/57 +f 637/808/56 629/814/56 631/809/56 +f 634/811/60 626/931/60 632/812/60 +f 635/813/61 627/932/61 629/814/61 +f 644/815/58 648/933/58 646/816/58 +f 645/818/58 647/934/58 643/819/58 +f 652/821/58 656/935/58 654/822/58 +f 653/824/58 655/936/58 651/825/58 +f 660/827/57 658/937/57 662/828/57 +f 661/830/57 657/938/57 659/831/57 +f 668/833/57 666/939/57 670/834/57 +f 669/836/57 665/940/57 667/837/57 +f 676/839/59 680/941/59 678/840/59 +f 677/842/59 679/942/59 675/843/59 +f 684/845/59 688/943/59 686/846/59 +f 685/848/59 687/944/59 683/849/59 +f 692/851/56 690/945/56 694/852/56 +f 693/854/56 689/946/56 691/855/56 +f 700/857/56 698/947/56 702/858/56 +f 701/860/56 697/948/56 699/861/56 diff --git a/src/main/resources/assets/hbm/textures/models/machines/radar_large.png b/src/main/resources/assets/hbm/textures/models/machines/radar_large.png new file mode 100644 index 0000000000000000000000000000000000000000..e59f207233e41bfb71ab00622da25d62e1e7acd6 GIT binary patch literal 6403 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 KszSpi?Ee9C Date: Sun, 14 Jan 2024 20:02:31 +0100 Subject: [PATCH 087/376] fixed strandcaster UV --- changelog | 7 +- gradle.properties | 2 +- .../java/com/hbm/blocks/generic/BlockOre.java | 6 +- .../com/hbm/inventory/OreDictManager.java | 4 +- .../inventory/gui/GUIMachineStrandCaster.java | 106 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../render/tileentity/RenderRadarScreen.java | 1 + .../render/tileentity/RenderStrandCaster.java | 3 +- .../render/util/RenderAccessoryUtility.java | 4 + .../TileEntityMachineStrandCaster.java | 555 ++++---- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../hbm/models/machines/strand_caster.obj | 1225 ++++++++++------- .../assets/hbm/textures/items/bottle_rad.png | Bin 293 -> 300 bytes .../hbm/textures/models/capes/CapeJame.png | Bin 0 -> 852 bytes 15 files changed, 1107 insertions(+), 816 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/capes/CapeJame.png diff --git a/changelog b/changelog index acd5b1383..beb97cf8c 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,8 @@ ## Added * Large Radar * A giant version of the radar with 3x the scan range +* Strand caster + * Watercooled foundry basin that processes large amounts of material at once ## Changed * Nuclear craters have been reworked @@ -23,7 +25,8 @@ * Trenchmaster general damage multiplier has been halved, making it twice as strong * Updated generation rules for layers like schist and hematite, they will now only replace things tagged as stone, just like most ores * Mushroom clouds now have two additional outer condensation rings, those are not entirely finished and are still subject to change -* Small radars are now a tad cheaper +* Small radars are now a lot cheaper +* Increased crucible pouring speed by 50% ## Fixed * Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes @@ -32,3 +35,5 @@ * Fixed large thermobaric artillery rocket still using the wrong slag block * Fixed some of the assembly templates having broken names due to using the wrong way of translating the output * Fixed the soyuz launcher's NEI construction recipe showing the wrong amount of blocks +* Fixed molten meteorite cobble dropping itself in addition to turning into lava +* Fixed S~Cola RAD not being radish-colored diff --git a/gradle.properties b/gradle.properties index e134592d6..a48d727f4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4837 +mod_build_number=4844 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 97aae0c8c..269f6b037 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -205,6 +205,9 @@ public class BlockOre extends Block { if(this == ModBlocks.ore_cobalt || this == ModBlocks.ore_nether_cobalt) { return ModItems.fragment_cobalt; } + if(this == ModBlocks.block_meteor_molten) { + return null; + } return Item.getItemFromBlock(this); } @@ -345,8 +348,7 @@ public class BlockOre extends Block { public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int i) { if(this == ModBlocks.block_meteor_molten) { - if(!world.isRemote) - world.setBlock(x, y, z, Blocks.lava); + if(!world.isRemote) world.setBlock(x, y, z, Blocks.lava); } } } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index ee56d55cb..a5ffef0e6 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -314,8 +314,8 @@ public class OreDictManager { GOLD.plate(plate_gold).dust(powder_gold).ore(ore_gneiss_gold); LAPIS.dust(powder_lapis); NETHERQUARTZ.gem(Items.quartz).dust(powder_quartz).ore(Blocks.quartz_ore); - DIAMOND.dust(powder_diamond).ore(gravel_diamond); - EMERALD.dust(powder_emerald); + DIAMOND.dust(powder_diamond).ore(gravel_diamond, ore_sellafield_diamond); + EMERALD.dust(powder_emerald, ore_sellafield_emerald); /* * RADIOACTIVE diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java index a2e959621..f30b6d7a1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java @@ -2,7 +2,6 @@ package com.hbm.inventory.gui; import com.hbm.inventory.container.ContainerMachineStrandCaster; import com.hbm.inventory.material.Mats; -import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; import com.hbm.util.I18nUtil; @@ -21,78 +20,77 @@ import java.util.List; public class GUIMachineStrandCaster extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_strand_caster.png"); - private TileEntityMachineStrandCaster caster; + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_strand_caster.png"); + private TileEntityMachineStrandCaster caster; - public GUIMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster tedf) { - super(new ContainerMachineStrandCaster(invPlayer, tedf)); - caster = tedf; + public GUIMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster tedf) { + super(new ContainerMachineStrandCaster(invPlayer, tedf)); + caster = tedf; - this.xSize = 176; - this.ySize = 214; - } + this.xSize = 176; + this.ySize = 214; + } - @Override - public void drawScreen(int x, int y, float interp) { - super.drawScreen(x, y, interp); + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); - drawStackInfo(x, y, 16, 17); + drawStackInfo(x, y, 16, 17); - caster.water.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 14, 16, 24); - caster.steam.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 64, 16, 24); - } + caster.water.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 14, 16, 24); + caster.steam.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 65, 16, 24); + } - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.caster.hasCustomInventoryName() ? this.caster.getInventoryName() : I18n.format(this.caster.getInventoryName()); + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.caster.hasCustomInventoryName() ? this.caster.getInventoryName() : I18n.format(this.caster.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 0xffffff); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + @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); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if (caster.amount != 0) { + if(caster.amount != 0) { - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - int targetHeight = Math.min((caster.amount) * 79 / caster.getCapacity(), 92); + int targetHeight = Math.min((caster.amount) * 79 / caster.getCapacity(), 92); - int hex = caster.type.moltenColor; - //hex = 0xC18336; - Color color = new Color(hex); - GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); - drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(1F, 1F, 1F, 0.3F); - drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); - GL11.glDisable(GL11.GL_BLEND); + int hex = caster.type.moltenColor; + // hex = 0xC18336; + Color color = new Color(hex); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 0.3F); + drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); + GL11.glDisable(GL11.GL_BLEND); - } - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor3f(255, 255, 255); + } + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor3f(255, 255, 255); - caster.water.renderTank(guiLeft + 82, guiTop + 38, this.zLevel, 16, 24); - caster.steam.renderTank(guiLeft + 82, guiTop + 90, this.zLevel, 16, 24); + caster.water.renderTank(guiLeft + 82, guiTop + 38, this.zLevel, 16, 24); + caster.steam.renderTank(guiLeft + 82, guiTop + 89, this.zLevel, 16, 24); - } + } + protected void drawStackInfo(int mouseX, int mouseY, int x, int y) { - protected void drawStackInfo(int mouseX, int mouseY, int x, int y) { + List list = new ArrayList(); - List list = new ArrayList(); - - if (caster.type == null) list.add(EnumChatFormatting.RED + "Empty"); - else - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey(caster.type.getUnlocalizedName()) + ": " + Mats.formatAmount(caster.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + x, guiTop + y, 36, 81, mouseX, mouseY, list); - } + if(caster.type == null) + list.add(EnumChatFormatting.RED + "Empty"); + else + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey(caster.type.getUnlocalizedName()) + ": " + Mats.formatAmount(caster.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + x, guiTop + y, 36, 81, mouseX, mouseY, list); + } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index a5cbbc5ea..89362f753 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4837)"; + public static final String VERSION = "1.0.27 BETA (4844)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java index 92342b53b..90130463e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java @@ -56,6 +56,7 @@ public class RenderRadarScreen extends TileEntitySpecialRenderer implements IIte GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glShadeModel(GL11.GL_SMOOTH); tess.draw(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java index 6d9579ab0..5655e97fc 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java +++ b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java @@ -16,7 +16,6 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import java.awt.*; import java.nio.DoubleBuffer; public class RenderStrandCaster extends TileEntitySpecialRenderer implements IItemRendererProvider { @@ -70,7 +69,7 @@ public class RenderStrandCaster extends TileEntitySpecialRenderer implements IIt buf.put(new double[] { 0, 0, -1, 0.5} ); buf.rewind(); GL11.glClipPlane(GL11.GL_CLIP_PLANE0, buf); - GL11.glTranslated(0,0,-offset + 3.4); + GL11.glTranslated(0,0,Math.max(-offset + 3.4, 0)); ResourceManager.strand_caster.renderPart("plate"); GL11.glDisable(GL11.GL_CLIP_PLANE0); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java index 5b8d04cc7..7b99b1719 100644 --- a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java +++ b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java @@ -45,6 +45,7 @@ public class RenderAccessoryUtility { private static ResourceLocation vaer = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeVaer.png"); private static ResourceLocation adam = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeAdam.png"); private static ResourceLocation alcater = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeAlcater.png"); + private static ResourceLocation jame = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeJame.png"); public static ResourceLocation getCloakFromPlayer(EntityPlayer player) { @@ -127,6 +128,9 @@ public class RenderAccessoryUtility { if(uuid.equals(Library.Alcater)) { return alcater; } + if(uuid.equals(Library.ege444)) { + return jame; + } if(Library.contributors.contains(uuid)) { return wiki; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 62f04d8e4..8a73e683f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -34,300 +34,299 @@ import net.minecraftforge.common.util.ForgeDirection; //god thank you bob for this base class public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase implements IGUIProvider, ICrucibleAcceptor, ISidedInventory, IFluidStandardTransceiver, INBTPacketReceiver, IInventory { - public FluidTank water; - public FluidTank steam; + public FluidTank water; + public FluidTank steam; - public String getName() { - return "container.machineStrandCaster"; - } + public String getName() { + return "container.machineStrandCaster"; + } - @Override - public String getInventoryName() { - return getName(); - } + @Override + public String getInventoryName() { + return getName(); + } - public TileEntityMachineStrandCaster() { - super(7); - water = new FluidTank(Fluids.WATER, 64_000); - steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); - } + public TileEntityMachineStrandCaster() { + super(7); + water = new FluidTank(Fluids.WATER, 64_000); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); + } + @Override + public void updateEntity() { - @Override - public void updateEntity() { + if(!worldObj.isRemote) { - if (!worldObj.isRemote) { + if(this.lastType != this.type || this.lastAmount != this.amount) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + this.lastType = this.type; + this.lastAmount = this.amount; + } - if (this.lastType != this.type || this.lastAmount != this.amount) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - this.lastType = this.type; - this.lastAmount = this.amount; - } + if(this.amount >= this.getCapacity()) { + // In case of overfill problems, spit out the excess as scrap + if(amount > getCapacity()) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, amount)); + EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord + 2, zCoord + 0.5, scrap); + worldObj.spawnEntityInWorld(item); + } + this.amount = this.getCapacity(); - if (this.amount >= this.getCapacity()) { - //In case of overfill problems, spit out the excess as scrap - if (amount > getCapacity()) { - ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, amount)); - EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord + 2, zCoord + 0.5, scrap); - worldObj.spawnEntityInWorld(item); - } - this.amount = this.getCapacity(); + } - } + if(this.amount == 0) { + this.type = null; + } - if (this.amount == 0) { - this.type = null; - } + this.updateConnections(); - this.updateConnections(); + ItemMold.Mold mold = this.getInstalledMold(); - ItemMold.Mold mold = this.getInstalledMold(); + if(canProcess()) { - if (canProcess()) { + int itemsCasted = Math.min(amount / mold.getCost(), 9); - int itemsCasted = Math.min(amount / mold.getCost(), 9); + for(int j = 0; j < itemsCasted; j++) { + this.amount -= mold.getCost(); - for (int j = 0; j < itemsCasted; j++) { - this.amount -= mold.getCost(); + ItemStack out = mold.getOutput(type); - ItemStack out = mold.getOutput(type); - - for (int i = 1; i < 7; i++) { - if (slots[i] == null) { - slots[i] = out.copy(); - break; - } - - if (slots[i].isItemEqual(out) && slots[i].stackSize + out.stackSize <= out.getMaxStackSize()) { - slots[i].stackSize += out.stackSize; - break; - } - - } - } - markChanged(); - - water.setFill(water.getFill() - getWaterRequired() * itemsCasted); - steam.setFill(steam.getFill() + getWaterRequired() * itemsCasted); - } - } - - NBTTagCompound data = new NBTTagCompound(); - - water.writeToNBT(data, "w"); - steam.writeToNBT(data, "s"); - - this.networkPack(data, 150); - - } - - public boolean canProcess() { - ItemMold.Mold mold = this.getInstalledMold(); - if (type != null && mold != null && this.amount >= mold.getCost() * 9 && mold.getOutput(type) != null) { - for (int i = 1; i < 7; i++) { - if (slots[i] == null || slots[i].isItemEqual(mold.getOutput(type)) && slots[i].stackSize + mold.getOutput(type).stackSize <= mold.getOutput(type).getMaxStackSize()) - return water.getFill() >= getWaterRequired() && steam.getFill() < steam.getMaxFill(); - - } - } - - return false; - } - - public DirPos[] getFluidConPos() { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - return new DirPos[]{ - new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), - new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()), - new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX * 5, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 5, rot), - new DirPos(xCoord - rot.offsetX - dir.offsetX * 5, yCoord, zCoord - rot.offsetZ + dir.offsetZ * 5, rot.getOpposite()), - }; - } - - public int[][] getMetalPourPos() { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - return new int[][]{ - new int[]{xCoord + rot.offsetX - dir.offsetX, yCoord + 2, zCoord + rot.offsetZ - dir.offsetZ}, - new int[]{xCoord - dir.offsetX, yCoord + 2, zCoord - dir.offsetZ}, - new int[]{xCoord + rot.offsetX, yCoord + 2, zCoord + rot.offsetZ}, - new int[]{xCoord, yCoord + 2, zCoord}, - }; - } - - @Override - public ItemMold.Mold getInstalledMold() { - if (slots[0] == null) return null; - - if (slots[0].getItem() == ModItems.mold) { - return ((ItemMold) slots[0].getItem()).getMold(slots[0]); - } - - return null; - } - - @Override - public int getMoldSize() { - return getInstalledMold().size; - } - - @Override - public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { - - if (side != ForgeDirection.UP) return false; - for (int[] pos : getMetalPourPos()) { - if (pos[0] == x && pos[1] == y && pos[2] == z) { - return this.standardCheck(world, x, y, z, side, stack); - } - } - return false; - - } - - @Override - public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { - if (this.type != null && this.type != stack.material) return false; - return !(this.amount >= this.getCapacity() || getInstalledMold() == null); - } - - @Override - public int getCapacity() { - ItemMold.Mold mold = this.getInstalledMold(); - return mold == null ? 50000 : mold.getCost() * 10; - } - - private int getWaterRequired() { - return getInstalledMold() != null ? 5 * getInstalledMold().getCost() : 50; - } - - private void updateConnections() { - for (DirPos pos : getFluidConPos()) { - this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } - for (DirPos pos : getFluidConPos()) { - sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } - } - - @Override - public FluidTank[] getSendingTanks() { - return new FluidTank[]{steam}; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[]{water}; - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[]{water, steam}; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineStrandCaster(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineStrandCaster(player.inventory, this); - } - - public void networkPack(NBTTagCompound nbt, int range) { - if (!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); - } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - water.readFromNBT(nbt, "w"); - steam.readFromNBT(nbt, "s"); - - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - water.writeToNBT(nbt, "w"); - steam.writeToNBT(nbt, "s"); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - water.readFromNBT(nbt, "w"); - steam.readFromNBT(nbt, "s"); - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - - if (i == 0) { - return stack.getItem() == ModItems.mold; - } - - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } - - @Override - public int[] getAccessibleSlotsFromSide(int meta) { - return new int[]{1, 2, 3, 4, 5, 6}; - } - - public void markChanged() { - this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; - } - } - - - @Override - public boolean canInsertItem(int slot, ItemStack itemStack, int side) { - return this.isItemValidForSlot(slot, itemStack); - } - - @Override - public boolean canExtractItem(int slot, ItemStack itemStack, int side) { - return !this.isItemValidForSlot(slot, itemStack); - } - - AxisAlignedBB bb = null; - - @Override - public AxisAlignedBB getRenderBoundingBox() { - - if (bb == null) { - bb = AxisAlignedBB.getBoundingBox( - xCoord - 7, - yCoord, - zCoord - 7, - xCoord + 7, - yCoord + 3, - zCoord + 7 - ); - } - return bb; - } + for(int i = 1; i < 7; i++) { + if(slots[i] == null) { + slots[i] = out.copy(); + break; + } + if(slots[i].isItemEqual(out) && slots[i].stackSize + out.stackSize <= out.getMaxStackSize()) { + slots[i].stackSize += out.stackSize; + break; + } + + } + } + markChanged(); + + water.setFill(water.getFill() - getWaterRequired() * itemsCasted); + steam.setFill(steam.getFill() + getWaterRequired() * itemsCasted); + } + } + + NBTTagCompound data = new NBTTagCompound(); + + water.writeToNBT(data, "w"); + steam.writeToNBT(data, "s"); + + this.networkPack(data, 150); + + } + + public boolean canProcess() { + ItemMold.Mold mold = this.getInstalledMold(); + if(type != null && mold != null && this.amount >= mold.getCost() * 9 && mold.getOutput(type) != null) { + for(int i = 1; i < 7; i++) { + if(slots[i] == null || slots[i].isItemEqual(mold.getOutput(type)) && slots[i].stackSize + mold.getOutput(type).stackSize <= mold.getOutput(type).getMaxStackSize()) + return water.getFill() >= getWaterRequired() && steam.getFill() < steam.getMaxFill(); + + } + } + + return false; + } + + public DirPos[] getFluidConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), + new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX * 5, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 5, rot), + new DirPos(xCoord - rot.offsetX - dir.offsetX * 5, yCoord, zCoord - rot.offsetZ + dir.offsetZ * 5, rot.getOpposite()) + }; + } + + public int[][] getMetalPourPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new int[][] { + new int[] { xCoord + rot.offsetX - dir.offsetX, yCoord + 2, zCoord + rot.offsetZ - dir.offsetZ }, + new int[] { xCoord - dir.offsetX, yCoord + 2, zCoord - dir.offsetZ }, + new int[] { xCoord + rot.offsetX, yCoord + 2, zCoord + rot.offsetZ }, + new int[] { xCoord, yCoord + 2, zCoord } + }; + } + + @Override + public ItemMold.Mold getInstalledMold() { + if(slots[0] == null) + return null; + + if(slots[0].getItem() == ModItems.mold) { + return ((ItemMold) slots[0].getItem()).getMold(slots[0]); + } + + return null; + } + + @Override + public int getMoldSize() { + return getInstalledMold().size; + } + + @Override + public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + + if(side != ForgeDirection.UP) + return false; + for(int[] pos : getMetalPourPos()) { + if(pos[0] == x && pos[1] == y && pos[2] == z) { + return this.standardCheck(world, x, y, z, side, stack); + } + } + return false; + + } + + @Override + public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + if(this.type != null && this.type != stack.material) + return false; + return !(this.amount >= this.getCapacity() || getInstalledMold() == null); + } + + @Override + public int getCapacity() { + ItemMold.Mold mold = this.getInstalledMold(); + return mold == null ? 50000 : mold.getCost() * 10; + } + + private int getWaterRequired() { + return getInstalledMold() != null ? 5 * getInstalledMold().getCost() : 50; + } + + private void updateConnections() { + for(DirPos pos : getFluidConPos()) { + this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + for(DirPos pos : getFluidConPos()) { + sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { steam }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { water }; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { water, steam }; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineStrandCaster(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineStrandCaster(player.inventory, this); + } + + public void networkPack(NBTTagCompound nbt, int range) { + if(!worldObj.isRemote) + PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + water.readFromNBT(nbt, "w"); + steam.readFromNBT(nbt, "s"); + + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + water.writeToNBT(nbt, "w"); + steam.writeToNBT(nbt, "s"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + water.readFromNBT(nbt, "w"); + steam.readFromNBT(nbt, "s"); + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + + if(i == 0) { + return stack.getItem() == ModItems.mold; + } + + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 1, 2, 3, 4, 5, 6 }; + } + + public void markChanged() { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + } + + @Override + public boolean canInsertItem(int slot, ItemStack itemStack, int side) { + return this.isItemValidForSlot(slot, itemStack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return !this.isItemValidForSlot(slot, itemStack); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 7, + yCoord, + zCoord - 7, + xCoord + 7, + yCoord + 3, + zCoord + 7); + } + return bb; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5076c1fd6..d89423eae 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4299,6 +4299,10 @@ tile.ore_random.name=%s-Erz tile.ore_rare.name=Seltenerden-Erz tile.ore_reiium.name=Reiit tile.ore_schrabidium.name=Schrabidiumerz +tile.ore_sellafield_diamond.name=Sellafit-Diamanterz +tile.ore_sellafield_emerald.name=Sellafit-Smaragderz +tile.ore_sellafield_schrabidium.name=Sellafit-Schrabidiumerz +tile.ore_sellafield_uranium_scorched.name=Verschmortes Sellafit-Uranerz tile.ore_sulfur.name=Schwefelerz tile.ore_tektite_osmiridium.name=Osmiridiumreiches Tektit tile.ore_thorium.name=Thoriumerz diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e8a6504bc..37c9c6234 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5291,6 +5291,10 @@ tile.ore_random.name=%s Ore tile.ore_rare.name=Rare Earth Ore tile.ore_reiium.name=Reiite tile.ore_schrabidium.name=Schrabidium Ore +tile.ore_sellafield_diamond.name=Sellafite Diamond Ore +tile.ore_sellafield_emerald.name=Sellafite Emerald Ore +tile.ore_sellafield_schrabidium.name=Sellafite Schrabidium Ore +tile.ore_sellafield_uranium_scorched.name=Scorched Sellafite Uranium Ore tile.ore_sulfur.name=Sulfur Ore tile.ore_tektite_osmiridium.name=Osmiridium-Infused Tektite tile.ore_thorium.name=Thorium Ore diff --git a/src/main/resources/assets/hbm/models/machines/strand_caster.obj b/src/main/resources/assets/hbm/models/machines/strand_caster.obj index 2a009d538..eb3b63b98 100644 --- a/src/main/resources/assets/hbm/models/machines/strand_caster.obj +++ b/src/main/resources/assets/hbm/models/machines/strand_caster.obj @@ -1,11 +1,55 @@ -# Blender 3.6.1 +# Blender v2.79 (sub 0) OBJ File: 'strand_caster.blend' # www.blender.org -mtllib strand_caster.mtl +o plate +v -0.500000 0.937500 -1.500000 +v 0.500000 0.937500 -1.500000 +v -0.500000 0.937500 -5.250000 +v 0.500000 0.937500 -5.250000 +v -0.500000 1.062500 -5.250000 +v -0.500000 1.062500 -1.500000 +v 0.500000 1.062500 -1.500000 +v 0.500000 1.062500 -5.250000 +vt 0.890625 0.566667 +vt 0.656250 0.700000 +vt 0.656250 0.566667 +vt 0.656250 0.566667 +vt 0.890625 0.700000 +vt 0.656250 0.700000 +vt 0.664062 0.700000 +vt 0.656250 0.566667 +vt 0.664062 0.566667 +vt 0.890625 0.683333 +vt 0.656250 0.700000 +vt 0.656250 0.683333 +vt 0.656250 0.583333 +vt 0.890625 0.566667 +vt 0.890625 0.583333 +vt 0.890625 0.700000 +vt 0.890625 0.566667 +vt 0.656250 0.700000 +vt 0.890625 0.700000 +vt 0.656250 0.566667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 4/10/4 7/11/4 2/12/4 +f 1/13/5 5/14/5 3/15/5 +f 3/1/1 4/16/1 2/2/1 +f 7/4/2 8/17/2 5/5/2 +f 3/7/3 5/18/3 8/8/3 +f 4/10/4 8/19/4 7/11/4 +f 1/13/5 6/20/5 5/14/5 o caster v -1.000000 0.000000 1.000000 v 1.000000 0.000000 1.000000 -v -1.000000 -0.000000 -6.000000 -v 1.000000 -0.000000 -6.000000 +v -1.000000 0.000000 -6.000000 +v 1.000000 0.000000 -6.000000 v -1.000000 0.750000 -6.000000 v -1.000000 0.750000 1.000000 v 1.000000 0.750000 1.000000 @@ -32,12 +76,14 @@ v -0.750000 2.000000 -0.750000 v 0.750000 2.000000 -0.750000 v -0.750000 0.500000 -1.500000 v -0.750000 0.500000 0.750000 +v 0.750000 0.500000 0.750000 v 0.750000 0.500000 -1.500000 v -0.750000 0.750000 -5.750000 v -0.750000 0.750000 0.750000 v 0.750000 0.750000 0.750000 v 0.750000 0.750000 -5.750000 v -0.750000 0.500000 -5.750000 +v -0.750000 0.500000 0.750000 v 0.750000 0.500000 0.750000 v 0.750000 0.500000 -5.750000 v 0.750000 1.250000 -1.500000 @@ -266,8 +312,8 @@ v 0.750000 0.750000 -0.125000 v 0.750000 2.000000 -0.125000 v 0.838388 0.750000 -0.088388 v 0.838388 2.000000 -0.088388 -v 0.875000 0.750000 -0.000000 -v 0.875000 2.000000 -0.000000 +v 0.875000 0.750000 0.000000 +v 0.875000 2.000000 0.000000 v 0.838388 0.750000 0.088388 v 0.838388 2.000000 0.088388 v 0.750000 0.750000 0.125000 @@ -298,8 +344,8 @@ v -0.750000 0.750000 0.125000 v -0.750000 2.000000 0.125000 v -0.838388 0.750000 0.088388 v -0.838388 2.000000 0.088388 -v -0.875000 0.750000 -0.000000 -v -0.875000 2.000000 -0.000000 +v -0.875000 0.750000 0.000000 +v -0.875000 2.000000 0.000000 v -0.838388 0.750000 -0.088388 v -0.838388 2.000000 -0.088388 v -0.750000 0.750000 0.375000 @@ -322,49 +368,6 @@ v -0.875000 0.750000 -0.500000 v -0.875000 2.000000 -0.500000 v -0.838388 0.750000 -0.588388 v -0.838388 2.000000 -0.588388 -vn -0.0000 -1.0000 -0.0000 -vn -0.0000 1.0000 -0.0000 -vn -0.0000 -0.0000 -1.0000 -vn -0.0000 -0.0000 1.0000 -vn 1.0000 -0.0000 -0.0000 -vn -1.0000 -0.0000 -0.0000 -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.7311 0.2611 0.6303 -vn -0.9955 -0.0000 -0.0949 -vn -0.9947 -0.0393 -0.0948 -vn -0.6333 -0.2962 -0.7150 -vn -0.0000 -0.3827 -0.9239 -vn 0.6333 -0.2962 -0.7150 -vn 0.9955 -0.0000 -0.0949 -vn 0.7311 0.2611 0.6303 -vn 0.9947 -0.0393 -0.0948 -vn -0.6630 -0.0000 -0.7486 -vn 0.6630 -0.0000 -0.7486 -vn 0.6794 0.4063 -0.6110 -vn 0.9987 0.0196 -0.0473 -vn 0.7574 -0.0000 0.6530 -vn -0.9987 0.0196 -0.0473 -vn -0.7263 -0.3800 0.5728 -vn -0.7574 -0.0000 0.6530 -vn -0.6794 0.4063 -0.6110 -vn -0.0000 -0.5562 0.8311 -vn 0.7263 -0.3800 0.5728 -vn 0.7071 -0.5000 0.5000 -vn -0.7071 -0.5000 0.5000 -vn -0.0000 0.5628 -0.8266 -vn -0.7071 0.5000 -0.5000 -vn 0.3827 -0.0000 -0.9239 -vn 0.7071 -0.0000 -0.7071 -vn 0.7071 -0.0000 0.7071 -vn 0.3827 -0.0000 0.9239 -vn -0.3827 -0.0000 0.9239 -vn -0.7071 -0.0000 0.7071 -vn -0.7071 -0.0000 -0.7071 -vn -0.3827 -0.0000 -0.9239 -vn 0.7071 0.5000 -0.5000 vt 0.484375 0.100000 vt 0.046875 0.366667 vt 0.046875 0.100000 @@ -379,13 +382,34 @@ vt 0.484375 -0.000000 vt 0.656250 0.600000 vt 0.531250 0.466667 vt 0.656250 0.466667 +vt 0.656250 0.466667 +vt 0.531250 0.600000 +vt 0.531250 0.466667 +vt 0.531250 0.466667 +vt 0.656250 0.600000 vt 0.531250 0.600000 vt 0.531250 0.200000 +vt 0.656250 0.466667 +vt 0.656250 0.600000 +vt 0.531250 0.466667 +vt 0.656250 0.466667 vt 0.539062 0.616667 +vt 0.531250 0.600000 vt 0.648438 0.616667 vt 0.539062 0.733333 +vt 0.539062 0.616667 +vt 0.656250 0.600000 +vt 0.539062 0.616667 +vt 0.539062 0.616667 +vt 0.531250 0.600000 +vt 0.539062 0.733333 vt 0.648438 0.966667 vt 0.539062 0.966667 +vt 0.648438 0.616667 +vt 0.539062 0.733333 +vt 0.648438 0.616667 +vt 0.648438 0.616667 +vt 0.539062 0.733333 vt 0.468750 0.733333 vt 0.062500 0.766667 vt 0.062500 0.733333 @@ -401,7 +425,7 @@ vt 0.765625 0.100000 vt 0.906250 0.200000 vt 1.000000 -0.000000 vt 1.000000 0.200000 -vt 0.058594 0.500000 +vt 0.062500 0.500000 vt 0.468750 0.700000 vt 0.468750 0.966667 vt 0.062500 0.966667 @@ -425,6 +449,7 @@ vt 0.695312 0.450000 vt 0.687500 0.450000 vt 0.695312 0.466667 vt 0.679688 0.450000 +vt 0.695312 0.450000 vt 0.835938 0.550000 vt 0.851562 0.566667 vt 0.835938 0.566667 @@ -433,10 +458,37 @@ vt 0.656250 0.516667 vt 0.656250 0.500000 vt 0.695312 0.433333 vt 0.835938 0.450000 +vt 0.695312 0.450000 vt 0.835938 0.433333 vt 0.843750 0.450000 +vt 0.695312 0.466667 +vt 0.679688 0.500000 +vt 0.851562 0.500000 +vt 0.679688 0.450000 +vt 0.695312 0.450000 vt 0.835938 0.466667 vt 0.851562 0.450000 +vt 0.695312 0.433333 +vt 0.835938 0.450000 +vt 0.679688 0.516667 +vt 0.835938 0.550000 +vt 0.851562 0.566667 +vt 0.835938 0.566667 +vt 0.656250 0.516667 +vt 0.656250 0.500000 +vt 0.695312 0.550000 +vt 0.679688 0.566667 +vt 0.835938 0.466667 +vt 0.851562 0.450000 +vt 0.835938 0.433333 +vt 0.843750 0.450000 +vt 0.687500 0.433333 +vt 0.687500 0.450000 +vt 0.875000 0.500000 +vt 0.851562 0.516667 +vt 0.902344 0.391667 +vt 0.667969 0.408333 +vt 0.667969 0.391667 vt 0.902344 0.391667 vt 0.667969 0.408333 vt 0.667969 0.391667 @@ -445,19 +497,37 @@ vt 0.914062 0.408333 vt 0.902344 0.408333 vt 0.656250 0.391667 vt 0.667969 0.433333 +vt 0.902344 0.408333 +vt 0.667969 0.433333 +vt 0.914062 0.408333 +vt 0.656250 0.391667 +vt 0.902344 0.366667 vt 0.531250 0.100000 vt 0.000000 0.366667 vt 0.046875 -0.000000 vt 0.656250 0.200000 vt 0.648438 0.733333 -vt 0.621094 0.200000 +vt 0.648438 0.733333 +vt 0.648438 0.733333 +vt 0.648438 0.733333 +vt 0.625000 0.200000 +vt 0.531250 0.200000 vt 0.695312 0.566667 vt 0.875000 0.516667 vt 0.843750 0.433333 +vt 0.835938 0.450000 +vt 0.695312 0.566667 +vt 0.835938 0.450000 +vt 0.843750 0.433333 +vt 0.875000 0.516667 vt 0.667969 0.366667 vt 0.914062 0.391667 vt 0.656250 0.408333 vt 0.902344 0.433333 +vt 0.902344 0.433333 +vt 0.914062 0.391667 +vt 0.656250 0.408333 +vt 0.667969 0.366667 vt 0.921875 0.200000 vt 0.929688 0.400000 vt 0.921875 0.400000 @@ -469,11 +539,113 @@ vt 0.945312 0.400000 vt 0.937500 0.400000 vt 0.968750 0.200000 vt 0.976562 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.929688 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.921875 0.400000 +vt 0.914062 0.400000 +vt 0.921875 0.200000 +vt 0.921875 0.400000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.929688 0.200000 +vt 0.937500 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.400000 +vt 0.929688 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.200000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.921875 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 vt 0.929688 0.200000 vt 0.914062 0.200000 vt 0.914062 0.400000 vt 0.953125 0.200000 +vt 0.960938 0.400000 vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.921875 0.400000 +vt 0.960938 0.200000 +vt 0.968750 0.400000 +vt 0.960938 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.929688 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.921875 0.400000 +vt 0.914062 0.400000 +vt 0.921875 0.200000 +vt 0.921875 0.400000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.929688 0.200000 +vt 0.937500 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.400000 +vt 0.929688 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.200000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.960938 0.200000 vt 0.945312 0.200000 vt 0.695312 0.341667 vt 0.703125 0.333333 @@ -500,6 +672,42 @@ vt 0.742188 0.325000 vt 0.742188 0.200000 vt 0.750000 0.308333 vt 0.742188 0.308333 +vt 0.718750 0.358333 +vt 0.726562 0.333333 +vt 0.726562 0.358333 +vt 0.734375 0.200000 +vt 0.734375 0.308333 +vt 0.695312 0.200000 +vt 0.703125 0.308333 +vt 0.695312 0.308333 +vt 0.718750 0.200000 +vt 0.718750 0.308333 +vt 0.703125 0.200000 +vt 0.695312 0.341667 +vt 0.703125 0.333333 +vt 0.703125 0.350000 +vt 0.687500 0.200000 +vt 0.687500 0.308333 +vt 0.710938 0.333333 +vt 0.710938 0.358333 +vt 0.718750 0.333333 +vt 0.726562 0.308333 +vt 0.703125 0.316667 +vt 0.734375 0.333333 +vt 0.742188 0.341667 +vt 0.734375 0.350000 +vt 0.734375 0.316667 +vt 0.742188 0.333333 +vt 0.710938 0.200000 +vt 0.695312 0.333333 +vt 0.710938 0.308333 +vt 0.687500 0.333333 +vt 0.695312 0.325000 +vt 0.750000 0.333333 +vt 0.742188 0.325000 +vt 0.742188 0.200000 +vt 0.750000 0.308333 +vt 0.742188 0.308333 vt 0.734375 0.200000 vt 0.734375 0.308333 vt 0.695312 0.200000 @@ -513,434 +721,501 @@ vt 0.687500 0.308333 vt 0.710938 0.200000 vt 0.687500 0.366667 vt 0.679688 0.200000 +vt 0.687500 0.200000 vt 0.679688 0.366667 +vt 0.671875 0.200000 vt 0.671875 0.366667 vt 0.664062 0.200000 vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.679688 0.200000 +vt 0.687500 0.366667 +vt 0.687500 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.679688 0.200000 +vt 0.687500 0.366667 +vt 0.687500 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 vt 0.976562 0.200000 vt 0.750000 0.200000 vt 0.726562 0.200000 +vt 0.750000 0.200000 +vt 0.726562 0.200000 vt 0.656250 0.366667 -s 0 -usemtl -f 3/1/1 2/2/1 1/3/1 -f 5/4/2 35/5/2 8/6/2 -f 3/1/3 8/7/3 4/8/3 -f 2/2/4 6/9/4 1/3/4 -f 4/8/5 7/10/5 2/2/5 -f 1/3/6 5/11/6 3/1/6 -f 12/12/4 9/13/4 10/14/4 -f 13/14/3 16/15/3 14/13/3 -f 10/13/5 16/12/5 12/15/5 -f 9/16/1 14/14/1 10/13/1 -f 11/12/6 13/13/6 9/14/6 -f 11/12/2 19/17/2 15/15/2 -f 17/18/5 23/19/5 19/17/5 -f 16/12/2 18/17/2 12/15/2 -f 15/12/2 20/17/2 16/15/2 -f 12/12/2 17/17/2 11/15/2 -f 22/19/2 23/20/2 21/21/2 -f 19/18/4 24/19/4 20/17/4 -f 20/18/6 22/19/6 18/17/6 -f 18/18/3 21/19/3 17/17/3 -f 35/22/6 37/23/6 34/24/6 -f 7/10/2 33/25/2 6/26/2 -f 37/27/5 31/28/5 39/29/5 -f 27/30/6 29/31/6 30/32/6 -f 39/29/3 29/31/3 40/33/3 -f 25/34/4 37/35/4 26/36/4 -f 8/6/2 34/37/2 7/10/2 -f 6/26/2 32/38/2 5/4/2 -f 37/23/2 36/39/2 30/40/2 -f 33/41/5 36/39/5 32/42/5 -f 32/43/4 38/44/4 35/45/4 -f 34/46/3 30/40/3 33/47/3 -f 28/48/7 40/33/7 27/49/7 -f 157/50/6 153/51/6 162/52/6 -f 183/53/3 180/54/3 179/55/3 -f 155/56/3 160/57/3 156/58/3 -f 160/59/5 154/60/5 156/57/5 -f 178/61/6 184/62/6 182/63/6 -f 163/64/4 153/65/4 154/66/4 -f 164/67/1 177/68/1 161/57/1 -f 178/69/4 181/70/4 177/68/4 -f 161/59/5 179/55/5 158/64/5 -f 171/55/2 162/52/2 163/64/2 -f 161/59/5 169/60/5 167/57/5 -f 177/71/5 183/72/5 179/55/5 -f 157/67/1 165/68/1 160/57/1 -f 179/55/2 159/52/2 158/64/2 -f 166/61/6 176/62/6 174/63/6 -f 160/59/5 171/55/5 163/64/5 -f 162/52/6 166/61/6 157/50/6 -f 158/64/4 170/65/4 169/66/4 -f 159/52/6 178/61/6 164/50/6 -f 164/50/6 170/51/6 159/52/6 -f 165/71/5 175/72/5 171/55/5 -f 166/69/4 173/70/4 165/68/4 -f 168/56/3 161/57/3 167/58/3 -f 175/53/3 172/54/3 171/55/3 -f 191/73/2 188/74/2 187/75/2 -f 190/73/2 185/74/2 186/75/2 -f 187/75/5 200/76/5 191/73/5 -f 190/73/3 197/77/3 189/78/3 -f 185/74/4 194/79/4 186/75/4 -f 189/78/6 193/80/6 185/74/6 -f 192/78/6 195/80/6 188/74/6 -f 191/73/3 199/77/3 192/78/3 -f 188/74/4 196/79/4 187/75/4 -f 186/75/5 198/76/5 190/73/5 -f 3/1/1 4/8/1 2/2/1 -f 5/4/2 32/38/2 35/5/2 -f 3/1/3 5/81/3 8/7/3 -f 2/2/4 7/82/4 6/9/4 -f 4/8/5 8/6/5 7/10/5 -f 1/3/6 6/83/6 5/11/6 -f 12/12/4 11/15/4 9/13/4 -f 13/14/3 15/12/3 16/15/3 -f 10/13/5 14/14/5 16/12/5 -f 9/16/1 13/84/1 14/14/1 -f 11/12/6 15/15/6 13/13/6 -f 11/12/2 17/18/2 19/17/2 -f 17/18/5 21/85/5 23/19/5 -f 16/12/2 20/18/2 18/17/2 -f 15/12/2 19/18/2 20/17/2 -f 12/12/2 18/18/2 17/17/2 -f 22/19/2 24/85/2 23/20/2 -f 19/18/4 23/85/4 24/19/4 -f 20/18/6 24/85/6 22/19/6 -f 18/18/3 22/85/3 21/19/3 -f 35/22/6 38/44/6 37/23/6 -f 7/10/2 34/37/2 33/25/2 -f 39/29/5 28/86/5 37/27/5 -f 28/86/5 26/16/5 37/27/5 -f 30/32/6 25/34/6 27/30/6 -f 27/30/6 40/33/6 29/31/6 -f 39/29/3 31/28/3 29/31/3 -f 25/34/4 30/32/4 37/35/4 -f 8/6/2 35/5/2 34/37/2 -f 6/26/2 33/25/2 32/38/2 -f 37/23/2 38/44/2 36/39/2 -f 33/41/5 30/40/5 36/39/5 -f 32/43/4 36/39/4 38/44/4 -f 34/46/3 37/23/3 30/40/3 -f 28/48/7 39/29/7 40/33/7 -f 157/50/6 155/87/6 153/51/6 -f 183/53/3 184/88/3 180/54/3 -f 155/56/3 157/67/3 160/57/3 -f 160/59/5 163/64/5 154/60/5 -f 178/61/6 180/54/6 184/62/6 -f 163/64/4 162/52/4 153/65/4 -f 164/67/1 178/69/1 177/68/1 -f 178/69/4 182/89/4 181/70/4 -f 161/59/5 177/71/5 179/55/5 -f 171/55/2 172/54/2 162/52/2 -f 161/59/5 158/64/5 169/60/5 -f 177/71/5 181/68/5 183/72/5 -f 157/67/1 166/69/1 165/68/1 -f 179/55/2 180/54/2 159/52/2 -f 166/61/6 172/54/6 176/62/6 -f 160/59/5 165/71/5 171/55/5 -f 162/52/6 172/54/6 166/61/6 -f 158/64/4 159/52/4 170/65/4 -f 159/52/6 180/54/6 178/61/6 -f 164/50/6 168/87/6 170/51/6 -f 165/71/5 173/68/5 175/72/5 -f 166/69/4 174/89/4 173/70/4 -f 168/56/3 164/67/3 161/57/3 -f 175/53/3 176/88/3 172/54/3 -f 191/73/2 192/78/2 188/74/2 -f 190/73/2 189/78/2 185/74/2 -f 187/75/5 196/90/5 200/76/5 -f 190/73/3 198/91/3 197/77/3 -f 185/74/4 193/92/4 194/79/4 -f 189/78/6 197/93/6 193/80/6 -f 192/78/6 199/93/6 195/80/6 -f 191/73/3 200/91/3 199/77/3 -f 188/74/4 195/92/4 196/79/4 -f 186/75/5 194/90/5 198/76/5 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +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.7311 0.2611 0.6303 +vn -0.9955 -0.0000 -0.0949 +vn -0.9947 -0.0393 -0.0948 +vn -0.6333 -0.2962 -0.7150 +vn -0.0000 -0.3827 -0.9239 +vn 0.6333 -0.2962 -0.7150 +vn 0.9955 -0.0000 -0.0949 +vn 0.7311 0.2611 0.6303 +vn 0.9947 -0.0393 -0.0948 +vn -0.6630 -0.0000 -0.7486 +vn 0.6630 -0.0000 -0.7486 +vn 0.6794 0.4063 -0.6110 +vn 0.9987 0.0196 -0.0473 +vn 0.7574 -0.0000 0.6530 +vn -0.9987 0.0196 -0.0473 +vn -0.7263 -0.3800 0.5728 +vn -0.7574 -0.0000 0.6530 +vn -0.6794 0.4063 -0.6110 +vn 0.0000 -0.5562 0.8311 +vn 0.7263 -0.3800 0.5728 +vn 0.7071 -0.5000 0.5000 +vn -0.7071 -0.5000 0.5000 +vn 0.0000 0.5628 -0.8266 +vn -0.7071 0.5000 -0.5000 +vn 0.3827 0.0000 -0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 -0.9239 +vn 0.7071 0.5000 -0.5000 +s off +f 11/21/6 10/22/6 9/23/6 +f 13/24/7 44/25/7 16/26/7 +f 11/21/8 16/27/8 12/28/8 +f 10/22/9 14/29/9 9/23/9 +f 12/28/10 15/30/10 10/22/10 +f 9/23/11 13/31/11 11/21/11 +f 20/32/9 17/33/9 18/34/9 +f 21/35/8 24/36/8 22/37/8 +f 18/38/10 24/39/10 20/40/10 +f 17/41/6 22/42/6 18/38/6 +f 19/43/11 21/44/11 17/45/11 +f 19/43/7 27/46/7 23/47/7 +f 25/48/10 31/49/10 27/46/10 +f 24/39/7 26/50/7 20/40/7 +f 23/51/7 28/52/7 24/36/7 +f 20/32/7 25/53/7 19/54/7 +f 30/55/7 31/56/7 29/57/7 +f 27/58/9 32/59/9 28/52/9 +f 28/60/11 30/55/11 26/50/11 +f 26/61/8 29/62/8 25/53/8 +f 44/63/11 47/64/11 43/65/11 +f 15/30/7 42/66/7 14/67/7 +f 39/68/10 40/69/10 49/70/10 +f 35/71/11 37/72/11 38/73/11 +f 49/70/8 37/72/8 50/74/8 +f 33/75/9 39/76/9 34/77/9 +f 16/26/7 43/78/7 15/30/7 +f 14/67/7 41/79/7 13/24/7 +f 47/64/7 45/80/7 46/81/7 +f 42/82/10 45/80/10 41/83/10 +f 41/84/9 48/85/9 44/86/9 +f 43/87/8 46/81/8 42/88/8 +f 36/89/12 50/74/12 35/90/12 +f 167/91/11 163/92/11 172/93/11 +f 193/94/8 190/95/8 189/96/8 +f 165/97/8 170/98/8 166/99/8 +f 170/100/10 164/101/10 166/102/10 +f 188/103/11 194/104/11 192/105/11 +f 173/106/9 163/107/9 164/108/9 +f 174/109/6 187/110/6 171/111/6 +f 188/112/9 191/113/9 187/110/9 +f 171/114/10 189/96/10 168/115/10 +f 181/116/7 172/93/7 173/106/7 +f 171/114/10 179/117/10 177/118/10 +f 187/119/10 193/120/10 189/96/10 +f 167/121/6 175/122/6 170/98/6 +f 189/96/7 169/123/7 168/115/7 +f 176/124/11 186/125/11 184/126/11 +f 170/100/10 181/116/10 173/106/10 +f 172/93/11 176/124/11 167/91/11 +f 168/115/9 180/127/9 179/128/9 +f 169/123/11 188/103/11 174/129/11 +f 174/129/11 180/130/11 169/123/11 +f 175/131/10 185/132/10 181/116/10 +f 176/133/9 183/134/9 175/122/9 +f 178/135/8 171/111/8 177/136/8 +f 185/137/8 182/138/8 181/116/8 +f 201/139/7 198/140/7 197/141/7 +f 200/142/7 195/143/7 196/144/7 +f 197/141/10 210/145/10 201/139/10 +f 200/142/8 207/146/8 199/147/8 +f 195/143/9 204/148/9 196/144/9 +f 199/147/11 203/149/11 195/143/11 +f 202/150/11 205/151/11 198/140/11 +f 201/139/8 209/152/8 202/150/8 +f 198/140/9 206/153/9 197/141/9 +f 196/144/10 208/154/10 200/142/10 +f 11/21/6 12/28/6 10/22/6 +f 13/24/7 41/79/7 44/25/7 +f 11/21/8 13/155/8 16/27/8 +f 10/22/9 15/156/9 14/29/9 +f 12/28/10 16/26/10 15/30/10 +f 9/23/11 14/157/11 13/31/11 +f 20/32/9 19/54/9 17/33/9 +f 21/35/8 23/51/8 24/36/8 +f 18/38/10 22/42/10 24/39/10 +f 17/41/6 21/158/6 22/42/6 +f 19/43/11 23/47/11 21/44/11 +f 19/43/7 25/48/7 27/46/7 +f 25/48/10 29/159/10 31/49/10 +f 24/39/7 28/60/7 26/50/7 +f 23/51/7 27/58/7 28/52/7 +f 20/32/7 26/61/7 25/53/7 +f 30/55/7 32/160/7 31/56/7 +f 27/58/9 31/161/9 32/59/9 +f 28/60/11 32/160/11 30/55/11 +f 26/61/8 30/162/8 29/62/8 +f 44/63/11 48/85/11 47/64/11 +f 15/30/7 43/78/7 42/66/7 +f 49/70/10 36/163/10 39/68/10 +f 36/163/10 34/164/10 39/68/10 +f 38/73/11 33/75/11 35/71/11 +f 35/71/11 50/74/11 37/72/11 +f 49/70/8 40/69/8 37/72/8 +f 33/75/9 38/73/9 39/76/9 +f 16/26/7 44/25/7 43/78/7 +f 14/67/7 42/66/7 41/79/7 +f 47/64/7 48/85/7 45/80/7 +f 42/82/10 46/81/10 45/80/10 +f 41/84/9 45/80/9 48/85/9 +f 43/87/8 47/64/8 46/81/8 +f 36/89/12 49/70/12 50/74/12 +f 167/91/11 165/165/11 163/92/11 +f 193/94/8 194/166/8 190/95/8 +f 165/97/8 167/121/8 170/98/8 +f 170/100/10 173/106/10 164/101/10 +f 188/103/11 190/95/11 194/104/11 +f 173/106/9 172/93/9 163/107/9 +f 174/109/6 188/112/6 187/110/6 +f 188/112/9 192/167/9 191/113/9 +f 171/114/10 187/119/10 189/96/10 +f 181/116/7 182/138/7 172/93/7 +f 171/114/10 168/115/10 179/117/10 +f 187/119/10 191/168/10 193/120/10 +f 167/121/6 176/133/6 175/122/6 +f 189/96/7 190/95/7 169/123/7 +f 176/124/11 182/138/11 186/125/11 +f 170/100/10 175/131/10 181/116/10 +f 172/93/11 182/138/11 176/124/11 +f 168/115/9 169/123/9 180/127/9 +f 169/123/11 190/95/11 188/103/11 +f 174/129/11 178/169/11 180/130/11 +f 175/131/10 183/170/10 185/132/10 +f 176/133/9 184/171/9 183/134/9 +f 178/135/8 174/109/8 171/111/8 +f 185/137/8 186/172/8 182/138/8 +f 201/139/7 202/150/7 198/140/7 +f 200/142/7 199/147/7 195/143/7 +f 197/141/10 206/173/10 210/145/10 +f 200/142/8 208/174/8 207/146/8 +f 195/143/9 203/175/9 204/148/9 +f 199/147/11 207/176/11 203/149/11 +f 202/150/11 209/177/11 205/151/11 +f 201/139/8 210/178/8 209/152/8 +f 198/140/9 205/179/9 206/153/9 +f 196/144/10 204/180/10 208/154/10 s 1 -f 80/94/8 81/95/4 79/96/8 -f 44/97/3 45/98/9 43/99/3 -f 68/100/10 69/101/2 67/102/10 -f 46/103/9 47/104/1 45/98/9 -f 84/100/10 85/101/2 83/102/10 -f 66/105/4 67/102/10 65/95/4 -f 48/106/1 49/96/8 47/107/1 -f 64/94/8 65/95/4 63/96/8 -f 50/94/8 51/95/4 49/96/8 -f 62/106/1 63/96/8 61/107/1 -f 52/105/4 53/102/10 51/95/4 -f 72/108/7 42/99/3 71/109/7 -f 60/103/9 61/104/1 59/98/9 -f 54/100/10 55/101/2 53/102/10 -f 41/97/3 59/98/9 42/99/3 -f 56/110/2 57/109/7 55/101/2 -f 82/105/4 83/102/10 81/95/4 -f 70/110/2 71/109/7 69/101/2 -f 58/108/7 43/99/3 57/109/7 -f 78/106/1 79/96/8 77/107/1 -f 88/108/7 74/99/3 87/109/7 -f 76/103/9 77/104/1 75/98/9 -f 73/97/3 75/98/9 74/99/3 -f 86/110/2 87/109/7 85/101/2 -f 96/94/8 97/95/4 95/96/8 -f 100/100/10 101/101/2 99/102/10 -f 98/105/4 99/102/10 97/95/4 -f 94/106/1 95/96/8 93/107/1 -f 104/108/7 90/99/3 103/109/7 -f 92/103/9 93/104/1 91/98/9 -f 89/97/3 91/98/9 90/99/3 -f 102/110/2 103/109/7 101/101/2 -f 144/94/8 145/95/4 143/96/8 -f 108/97/3 109/98/9 107/99/3 -f 132/100/10 133/101/2 131/102/10 -f 110/103/9 111/104/1 109/98/9 -f 148/100/10 149/101/2 147/102/10 -f 130/105/4 131/102/10 129/95/4 -f 112/106/1 113/96/8 111/107/1 -f 128/94/8 129/95/4 127/96/8 -f 114/94/8 115/95/4 113/96/8 -f 126/106/1 127/96/8 125/107/1 -f 116/105/4 117/102/10 115/95/4 -f 136/108/7 106/99/3 135/109/7 -f 124/103/9 125/104/1 123/98/9 -f 118/100/10 119/101/2 117/102/10 -f 105/97/3 123/98/9 106/99/3 -f 120/110/2 121/109/7 119/101/2 -f 146/105/4 147/102/10 145/95/4 -f 134/110/2 135/109/7 133/101/2 -f 122/108/7 107/99/3 121/109/7 -f 142/106/1 143/96/8 141/107/1 -f 152/108/7 138/99/3 151/109/7 -f 140/103/9 141/104/1 139/98/9 -f 137/97/3 139/98/9 138/99/3 -f 150/110/2 151/109/7 149/101/2 -f 204/111/11 211/112/12 203/113/13 -f 202/114/14 209/115/3 201/116/15 -f 209/115/3 208/117/16 201/116/15 -f 214/118/17 206/119/18 207/120/19 -f 203/113/13 210/121/20 202/114/14 -f 215/122/21 207/120/19 208/117/16 -f 209/115/3 222/123/22 215/122/21 -f 221/124/23 213/125/24 214/118/17 -f 218/126/25 210/121/20 211/112/12 -f 215/122/21 221/124/23 214/118/17 -f 219/127/26 211/112/12 212/128/27 -f 217/129/28 209/115/3 210/121/20 -f 204/111/11 205/130/29 212/128/27 -f 212/128/27 205/130/29 219/127/26 -f 205/131/29 206/119/18 213/125/24 -f 213/125/24 220/132/30 205/131/29 -f 236/133/31 205/134/29 220/135/30 -f 230/116/15 245/122/21 223/117/16 -f 222/123/22 235/136/5 221/137/23 -f 234/138/32 218/139/25 219/140/26 -f 232/141/7 222/123/22 216/142/33 -f 235/136/5 220/135/30 221/137/23 -f 233/143/6 217/129/28 218/139/25 -f 227/111/11 241/112/12 228/113/13 -f 238/144/8 219/140/26 205/145/29 -f 228/113/13 240/121/20 229/114/14 -f 239/115/3 252/123/22 245/122/21 -f 248/126/25 240/121/20 241/112/12 -f 240/121/20 230/116/15 229/114/14 -f 244/118/17 225/119/18 224/120/19 -f 245/122/21 224/120/19 223/117/16 -f 251/124/23 243/125/24 244/118/17 -f 231/146/34 216/142/33 217/129/28 -f 245/122/21 251/124/23 244/118/17 -f 242/128/27 248/126/25 241/112/12 -f 247/129/28 239/115/3 240/121/20 -f 227/111/11 226/130/29 242/128/27 -f 242/128/27 226/130/29 249/127/26 -f 226/131/29 225/119/18 243/125/24 -f 243/125/24 250/132/30 226/131/29 -f 258/133/31 226/134/29 250/135/30 -f 252/123/22 257/136/5 251/137/23 -f 256/138/32 248/139/25 249/140/26 -f 254/141/7 252/123/22 246/142/33 -f 257/136/5 250/135/30 251/137/23 -f 255/143/6 247/129/28 248/139/25 -f 260/144/8 249/140/26 226/145/29 -f 253/146/34 246/142/33 247/129/28 -f 262/147/35 263/148/36 261/144/35 -f 264/149/36 265/48/5 263/148/36 -f 266/150/5 267/151/37 265/48/5 -f 268/152/37 269/84/38 267/151/37 -f 274/149/36 275/48/5 273/148/36 -f 272/147/35 273/148/36 271/144/35 -f 276/150/5 277/151/37 275/48/5 -f 278/152/37 279/84/38 277/151/37 -f 284/149/36 285/48/5 283/148/36 -f 282/147/35 283/148/36 281/144/35 -f 286/150/5 287/151/37 285/48/5 -f 288/152/37 289/84/38 287/151/37 -f 294/147/39 295/148/40 293/144/39 -f 296/149/40 297/48/6 295/148/40 -f 298/150/6 299/151/41 297/48/6 -f 300/152/41 291/84/42 299/151/41 -f 304/147/39 305/148/40 303/144/39 -f 306/149/40 307/48/6 305/148/40 -f 308/150/6 309/151/41 307/48/6 -f 310/152/41 301/84/42 309/151/41 -f 314/147/39 315/148/40 313/144/39 -f 316/149/40 317/48/6 315/148/40 -f 318/150/6 319/151/41 317/48/6 -f 320/152/41 311/84/42 319/151/41 -f 80/94/8 82/105/4 81/95/4 -f 44/97/3 46/103/9 45/98/9 -f 68/100/10 70/110/2 69/101/2 -f 46/103/9 48/153/1 47/104/1 -f 84/100/10 86/110/2 85/101/2 -f 66/105/4 68/100/10 67/102/10 -f 48/106/1 50/94/8 49/96/8 -f 64/94/8 66/105/4 65/95/4 -f 50/94/8 52/105/4 51/95/4 -f 62/106/1 64/94/8 63/96/8 -f 52/105/4 54/100/10 53/102/10 -f 72/108/7 41/97/3 42/99/3 -f 60/103/9 62/153/1 61/104/1 -f 54/100/10 56/110/2 55/101/2 -f 41/97/3 60/103/9 59/98/9 -f 56/110/2 58/108/7 57/109/7 -f 82/105/4 84/100/10 83/102/10 -f 70/110/2 72/108/7 71/109/7 -f 58/108/7 44/97/3 43/99/3 -f 78/106/1 80/94/8 79/96/8 -f 88/108/7 73/97/3 74/99/3 -f 76/103/9 78/153/1 77/104/1 -f 73/97/3 76/103/9 75/98/9 -f 86/110/2 88/108/7 87/109/7 -f 96/94/8 98/105/4 97/95/4 -f 100/100/10 102/110/2 101/101/2 -f 98/105/4 100/100/10 99/102/10 -f 94/106/1 96/94/8 95/96/8 -f 104/108/7 89/97/3 90/99/3 -f 92/103/9 94/153/1 93/104/1 -f 89/97/3 92/103/9 91/98/9 -f 102/110/2 104/108/7 103/109/7 -f 144/94/8 146/105/4 145/95/4 -f 108/97/3 110/103/9 109/98/9 -f 132/100/10 134/110/2 133/101/2 -f 110/103/9 112/153/1 111/104/1 -f 148/100/10 150/110/2 149/101/2 -f 130/105/4 132/100/10 131/102/10 -f 112/106/1 114/94/8 113/96/8 -f 128/94/8 130/105/4 129/95/4 -f 114/94/8 116/105/4 115/95/4 -f 126/106/1 128/94/8 127/96/8 -f 116/105/4 118/100/10 117/102/10 -f 136/108/7 105/97/3 106/99/3 -f 124/103/9 126/153/1 125/104/1 -f 118/100/10 120/110/2 119/101/2 -f 105/97/3 124/103/9 123/98/9 -f 120/110/2 122/108/7 121/109/7 -f 146/105/4 148/100/10 147/102/10 -f 134/110/2 136/108/7 135/109/7 -f 122/108/7 108/97/3 107/99/3 -f 142/106/1 144/94/8 143/96/8 -f 152/108/7 137/97/3 138/99/3 -f 140/103/9 142/153/1 141/104/1 -f 137/97/3 140/103/9 139/98/9 -f 150/110/2 152/108/7 151/109/7 -f 204/111/11 212/128/27 211/112/12 -f 202/114/14 210/121/20 209/115/3 -f 209/115/3 215/122/21 208/117/16 -f 214/118/17 213/125/24 206/119/18 -f 203/113/13 211/112/12 210/121/20 -f 215/122/21 214/118/17 207/120/19 -f 209/115/3 216/142/33 222/123/22 -f 221/124/23 220/132/30 213/125/24 -f 218/126/25 217/129/28 210/121/20 -f 215/122/21 222/123/22 221/124/23 -f 219/127/26 218/126/25 211/112/12 -f 217/129/28 216/142/33 209/115/3 -f 236/133/31 238/154/8 205/134/29 -f 230/116/15 239/115/3 245/122/21 -f 222/123/22 237/155/43 235/136/5 -f 234/138/32 233/143/6 218/139/25 -f 232/141/7 237/155/43 222/123/22 -f 235/136/5 236/133/31 220/135/30 -f 233/143/6 231/146/34 217/129/28 -f 227/111/11 242/128/27 241/112/12 -f 238/144/8 234/138/32 219/140/26 -f 228/113/13 241/112/12 240/121/20 -f 239/115/3 246/142/33 252/123/22 -f 248/126/25 247/129/28 240/121/20 -f 240/121/20 239/115/3 230/116/15 -f 244/118/17 243/125/24 225/119/18 -f 245/122/21 244/118/17 224/120/19 -f 251/124/23 250/132/30 243/125/24 -f 231/146/34 232/141/7 216/142/33 -f 245/122/21 252/123/22 251/124/23 -f 242/128/27 249/127/26 248/126/25 -f 247/129/28 246/142/33 239/115/3 -f 258/133/31 260/154/8 226/134/29 -f 252/123/22 259/155/43 257/136/5 -f 256/138/32 255/143/6 248/139/25 -f 254/141/7 259/155/43 252/123/22 -f 257/136/5 258/133/31 250/135/30 -f 255/143/6 253/146/34 247/129/28 -f 260/144/8 256/138/32 249/140/26 -f 253/146/34 254/141/7 246/142/33 -f 262/147/35 264/149/36 263/148/36 -f 264/149/36 266/150/5 265/48/5 -f 266/150/5 268/152/37 267/151/37 -f 268/152/37 270/156/38 269/84/38 -f 274/149/36 276/150/5 275/48/5 -f 272/147/35 274/149/36 273/148/36 -f 276/150/5 278/152/37 277/151/37 -f 278/152/37 280/156/38 279/84/38 -f 284/149/36 286/150/5 285/48/5 -f 282/147/35 284/149/36 283/148/36 -f 286/150/5 288/152/37 287/151/37 -f 288/152/37 290/156/38 289/84/38 -f 294/147/39 296/149/40 295/148/40 -f 296/149/40 298/150/6 297/48/6 -f 298/150/6 300/152/41 299/151/41 -f 300/152/41 292/156/42 291/84/42 -f 304/147/39 306/149/40 305/148/40 -f 306/149/40 308/150/6 307/48/6 -f 308/150/6 310/152/41 309/151/41 -f 310/152/41 302/156/42 301/84/42 -f 314/147/39 316/149/40 315/148/40 -f 316/149/40 318/150/6 317/48/6 -f 318/150/6 320/152/41 319/151/41 -f 320/152/41 312/156/42 311/84/42 -o plate -v -0.500000 0.937500 -1.500000 -v 0.500000 0.937500 -1.500000 -v -0.500000 0.937500 -5.250000 -v 0.500000 0.937500 -5.250000 -v -0.500000 1.062500 -5.250000 -v -0.500000 1.062500 -1.500000 -v 0.500000 1.062500 -1.500000 -v 0.500000 1.062500 -5.250000 -vn -0.0000 -1.0000 -0.0000 -vn -0.0000 1.0000 -0.0000 -vn -0.0000 -0.0000 -1.0000 -vn 1.0000 -0.0000 -0.0000 -vn -1.0000 -0.0000 -0.0000 -vt 0.890625 0.566667 -vt 0.656250 0.700000 -vt 0.656250 0.566667 -vt 0.890625 0.700000 -vt 0.664062 0.700000 -vt 0.664062 0.566667 -vt 0.890625 0.683333 -vt 0.656250 0.683333 -vt 0.656250 0.583333 -vt 0.890625 0.583333 -s 0 -usemtl -f 323/157/44 322/158/44 321/159/44 -f 327/159/45 325/160/45 326/158/45 -f 323/161/46 328/159/46 324/162/46 -f 324/163/47 327/158/47 322/164/47 -f 321/165/48 325/157/48 323/166/48 -f 323/157/44 324/160/44 322/158/44 -f 327/159/45 328/157/45 325/160/45 -f 323/161/46 325/158/46 328/159/46 -f 324/163/47 328/160/47 327/158/47 -f 321/165/48 326/159/48 325/157/48 +f 90/181/13 91/182/9 89/183/13 +f 54/184/8 55/185/14 53/186/8 +f 78/187/15 79/188/7 77/189/15 +f 56/190/14 57/191/6 55/185/14 +f 94/192/15 95/193/7 93/194/15 +f 76/195/9 77/189/15 75/196/9 +f 58/197/6 59/198/13 57/199/6 +f 74/200/13 75/196/9 73/201/13 +f 60/202/13 61/203/9 59/198/13 +f 72/204/6 73/201/13 71/205/6 +f 62/206/9 63/207/15 61/203/9 +f 82/208/12 52/209/8 81/210/12 +f 70/211/14 71/212/6 69/213/14 +f 64/214/15 65/215/7 63/207/15 +f 51/216/8 69/213/14 52/209/8 +f 66/217/7 67/218/12 65/215/7 +f 92/219/9 93/194/15 91/182/9 +f 80/220/7 81/210/12 79/188/7 +f 68/221/12 53/186/8 67/218/12 +f 88/222/6 89/183/13 87/223/6 +f 98/224/12 84/225/8 97/226/12 +f 86/227/14 87/228/6 85/229/14 +f 83/230/8 85/229/14 84/225/8 +f 96/231/7 97/226/12 95/193/7 +f 106/232/13 107/233/9 105/234/13 +f 110/235/15 111/236/7 109/237/15 +f 108/238/9 109/237/15 107/233/9 +f 104/239/6 105/234/13 103/240/6 +f 114/241/12 100/242/8 113/243/12 +f 102/244/14 103/245/6 101/246/14 +f 99/247/8 101/246/14 100/242/8 +f 112/248/7 113/243/12 111/236/7 +f 154/249/13 155/250/9 153/251/13 +f 118/252/8 119/253/14 117/254/8 +f 142/255/15 143/256/7 141/257/15 +f 120/258/14 121/259/6 119/253/14 +f 158/260/15 159/261/7 157/262/15 +f 140/263/9 141/257/15 139/264/9 +f 122/265/6 123/266/13 121/267/6 +f 138/268/13 139/264/9 137/269/13 +f 124/270/13 125/271/9 123/266/13 +f 136/272/6 137/269/13 135/273/6 +f 126/274/9 127/275/15 125/271/9 +f 146/276/12 116/277/8 145/278/12 +f 134/279/14 135/280/6 133/281/14 +f 128/282/15 129/283/7 127/275/15 +f 115/284/8 133/281/14 116/277/8 +f 130/285/7 131/286/12 129/283/7 +f 156/287/9 157/262/15 155/250/9 +f 144/288/7 145/278/12 143/256/7 +f 132/289/12 117/254/8 131/286/12 +f 152/290/6 153/251/13 151/291/6 +f 162/292/12 148/293/8 161/294/12 +f 150/295/14 151/296/6 149/297/14 +f 147/298/8 149/297/14 148/293/8 +f 160/299/7 161/294/12 159/261/7 +f 214/300/16 221/301/17 213/302/18 +f 212/303/19 219/304/8 211/305/20 +f 219/304/8 218/306/21 211/305/20 +f 224/307/22 216/308/23 217/309/24 +f 213/302/18 220/310/25 212/303/19 +f 225/311/26 217/309/24 218/306/21 +f 219/304/8 232/312/27 225/311/26 +f 231/313/28 223/314/29 224/307/22 +f 228/315/30 220/310/25 221/301/17 +f 225/311/26 231/313/28 224/307/22 +f 229/316/31 221/301/17 222/317/32 +f 227/318/33 219/304/8 220/310/25 +f 214/300/16 215/319/34 222/317/32 +f 222/317/32 215/319/34 229/316/31 +f 215/320/34 216/308/23 223/314/29 +f 223/314/29 230/321/35 215/320/34 +f 246/322/36 215/323/34 230/324/35 +f 240/325/20 255/326/26 233/327/21 +f 232/312/27 245/328/10 231/329/28 +f 244/330/37 228/331/30 229/332/31 +f 242/333/12 232/312/27 226/334/38 +f 245/328/10 230/324/35 231/329/28 +f 243/335/11 227/318/33 228/331/30 +f 237/336/16 251/337/17 238/338/18 +f 248/339/13 229/332/31 215/340/34 +f 238/338/18 250/341/25 239/342/19 +f 249/343/8 262/344/27 255/326/26 +f 258/345/30 250/341/25 251/337/17 +f 250/341/25 240/325/20 239/342/19 +f 254/346/22 235/347/23 234/348/24 +f 255/326/26 234/348/24 233/327/21 +f 261/349/28 253/350/29 254/346/22 +f 241/351/39 226/334/38 227/318/33 +f 255/326/26 261/349/28 254/346/22 +f 252/352/32 258/345/30 251/337/17 +f 257/353/33 249/343/8 250/341/25 +f 237/336/16 236/354/34 252/352/32 +f 252/352/32 236/354/34 259/355/31 +f 236/356/34 235/347/23 253/350/29 +f 253/350/29 260/357/35 236/356/34 +f 268/358/36 236/359/34 260/360/35 +f 262/344/27 267/361/10 261/362/28 +f 266/363/37 258/364/30 259/365/31 +f 264/366/12 262/344/27 256/367/38 +f 267/361/10 260/360/35 261/362/28 +f 265/368/11 257/353/33 258/364/30 +f 270/369/13 259/365/31 236/370/34 +f 263/371/39 256/367/38 257/353/33 +f 272/372/40 273/373/41 271/374/40 +f 274/375/41 275/376/10 273/373/41 +f 276/377/10 277/378/42 275/376/10 +f 278/379/42 279/380/43 277/378/42 +f 284/381/41 285/382/10 283/383/41 +f 282/384/40 283/383/41 281/385/40 +f 286/386/10 287/387/42 285/382/10 +f 288/388/42 289/389/43 287/387/42 +f 294/390/41 295/391/10 293/392/41 +f 292/393/40 293/392/41 291/394/40 +f 296/395/10 297/396/42 295/391/10 +f 298/397/42 299/398/43 297/396/42 +f 304/399/44 305/400/45 303/401/44 +f 306/402/45 307/403/11 305/400/45 +f 308/404/11 309/405/46 307/403/11 +f 310/406/46 301/407/47 309/405/46 +f 314/408/44 315/409/45 313/410/44 +f 316/411/45 317/412/11 315/409/45 +f 318/413/11 319/414/46 317/412/11 +f 320/415/46 311/416/47 319/414/46 +f 324/417/44 325/418/45 323/419/44 +f 326/420/45 327/421/11 325/418/45 +f 328/422/11 329/423/46 327/421/11 +f 330/424/46 321/425/47 329/423/46 +f 90/181/13 92/219/9 91/182/9 +f 54/184/8 56/190/14 55/185/14 +f 78/187/15 80/220/7 79/188/7 +f 56/190/14 58/426/6 57/191/6 +f 94/192/15 96/231/7 95/193/7 +f 76/195/9 78/187/15 77/189/15 +f 58/197/6 60/202/13 59/198/13 +f 74/200/13 76/195/9 75/196/9 +f 60/202/13 62/206/9 61/203/9 +f 72/204/6 74/200/13 73/201/13 +f 62/206/9 64/214/15 63/207/15 +f 82/208/12 51/216/8 52/209/8 +f 70/211/14 72/427/6 71/212/6 +f 64/214/15 66/217/7 65/215/7 +f 51/216/8 70/211/14 69/213/14 +f 66/217/7 68/221/12 67/218/12 +f 92/219/9 94/192/15 93/194/15 +f 80/220/7 82/208/12 81/210/12 +f 68/221/12 54/184/8 53/186/8 +f 88/222/6 90/181/13 89/183/13 +f 98/224/12 83/230/8 84/225/8 +f 86/227/14 88/428/6 87/228/6 +f 83/230/8 86/227/14 85/229/14 +f 96/231/7 98/224/12 97/226/12 +f 106/232/13 108/238/9 107/233/9 +f 110/235/15 112/248/7 111/236/7 +f 108/238/9 110/235/15 109/237/15 +f 104/239/6 106/232/13 105/234/13 +f 114/241/12 99/247/8 100/242/8 +f 102/244/14 104/429/6 103/245/6 +f 99/247/8 102/244/14 101/246/14 +f 112/248/7 114/241/12 113/243/12 +f 154/249/13 156/287/9 155/250/9 +f 118/252/8 120/258/14 119/253/14 +f 142/255/15 144/288/7 143/256/7 +f 120/258/14 122/430/6 121/259/6 +f 158/260/15 160/299/7 159/261/7 +f 140/263/9 142/255/15 141/257/15 +f 122/265/6 124/270/13 123/266/13 +f 138/268/13 140/263/9 139/264/9 +f 124/270/13 126/274/9 125/271/9 +f 136/272/6 138/268/13 137/269/13 +f 126/274/9 128/282/15 127/275/15 +f 146/276/12 115/284/8 116/277/8 +f 134/279/14 136/431/6 135/280/6 +f 128/282/15 130/285/7 129/283/7 +f 115/284/8 134/279/14 133/281/14 +f 130/285/7 132/289/12 131/286/12 +f 156/287/9 158/260/15 157/262/15 +f 144/288/7 146/276/12 145/278/12 +f 132/289/12 118/252/8 117/254/8 +f 152/290/6 154/249/13 153/251/13 +f 162/292/12 147/298/8 148/293/8 +f 150/295/14 152/432/6 151/296/6 +f 147/298/8 150/295/14 149/297/14 +f 160/299/7 162/292/12 161/294/12 +f 214/300/16 222/317/32 221/301/17 +f 212/303/19 220/310/25 219/304/8 +f 219/304/8 225/311/26 218/306/21 +f 224/307/22 223/314/29 216/308/23 +f 213/302/18 221/301/17 220/310/25 +f 225/311/26 224/307/22 217/309/24 +f 219/304/8 226/334/38 232/312/27 +f 231/313/28 230/321/35 223/314/29 +f 228/315/30 227/318/33 220/310/25 +f 225/311/26 232/312/27 231/313/28 +f 229/316/31 228/315/30 221/301/17 +f 227/318/33 226/334/38 219/304/8 +f 246/322/36 248/433/13 215/323/34 +f 240/325/20 249/343/8 255/326/26 +f 232/312/27 247/434/48 245/328/10 +f 244/330/37 243/335/11 228/331/30 +f 242/333/12 247/434/48 232/312/27 +f 245/328/10 246/322/36 230/324/35 +f 243/335/11 241/351/39 227/318/33 +f 237/336/16 252/352/32 251/337/17 +f 248/339/13 244/330/37 229/332/31 +f 238/338/18 251/337/17 250/341/25 +f 249/343/8 256/367/38 262/344/27 +f 258/345/30 257/353/33 250/341/25 +f 250/341/25 249/343/8 240/325/20 +f 254/346/22 253/350/29 235/347/23 +f 255/326/26 254/346/22 234/348/24 +f 261/349/28 260/357/35 253/350/29 +f 241/351/39 242/333/12 226/334/38 +f 255/326/26 262/344/27 261/349/28 +f 252/352/32 259/355/31 258/345/30 +f 257/353/33 256/367/38 249/343/8 +f 268/358/36 270/435/13 236/359/34 +f 262/344/27 269/436/48 267/361/10 +f 266/363/37 265/368/11 258/364/30 +f 264/366/12 269/436/48 262/344/27 +f 267/361/10 268/358/36 260/360/35 +f 265/368/11 263/371/39 257/353/33 +f 270/369/13 266/363/37 259/365/31 +f 263/371/39 264/366/12 256/367/38 +f 272/372/40 274/375/41 273/373/41 +f 274/375/41 276/377/10 275/376/10 +f 276/377/10 278/379/42 277/378/42 +f 278/379/42 280/437/43 279/380/43 +f 284/381/41 286/386/10 285/382/10 +f 282/384/40 284/381/41 283/383/41 +f 286/386/10 288/388/42 287/387/42 +f 288/388/42 290/438/43 289/389/43 +f 294/390/41 296/395/10 295/391/10 +f 292/393/40 294/390/41 293/392/41 +f 296/395/10 298/397/42 297/396/42 +f 298/397/42 300/439/43 299/398/43 +f 304/399/44 306/402/45 305/400/45 +f 306/402/45 308/404/11 307/403/11 +f 308/404/11 310/406/46 309/405/46 +f 310/406/46 302/440/47 301/407/47 +f 314/408/44 316/411/45 315/409/45 +f 316/411/45 318/413/11 317/412/11 +f 318/413/11 320/415/46 319/414/46 +f 320/415/46 312/441/47 311/416/47 +f 324/417/44 326/420/45 325/418/45 +f 326/420/45 328/422/11 327/421/11 +f 328/422/11 330/424/46 329/423/46 +f 330/424/46 322/442/47 321/425/47 diff --git a/src/main/resources/assets/hbm/textures/items/bottle_rad.png b/src/main/resources/assets/hbm/textures/items/bottle_rad.png index 554d5cdf825fb09a1f68d938a52e0367fde1a494..b1aa2e0a1eac55a9c902801037511d9edd7cc3c5 100644 GIT binary patch delta 256 zcmV+b0ssD`0;~d%G=JksL_t(Ijiu8uP6IIz1<)6SXeo(+YK3SKbVzCFR@{Iaa0@oK z;3T0VP3lFIAOsCap-6#{5TY5X4J_;35crMl@%Nwa8JmBi*S3+1fExvPFl^CHrvY46~7`yWbc5It?*O$eC`L_SzA#niN<|!tdwf4=3@F$ab@1K8W{`VgIh?47If(XD71Hgr)Q|m++Az_60 zH04i^+~cqR&3<2tT|O5d9V8FG3-y68LOMM-A8bAtTTaueopP-)k|Dbsx1mYGt)O?7 z5G=AijWu|C5G=qfjZdPNP^BR)W;rfqrIt`2!U(y?wsF^!<=S1?Z=v3Tc|U)rP{RAj zUUO}n&K~TyS)4l2P|-*;wKmP#&OWuB=6}T#xmZU|6jkA<00000NkvXXu0mjfUE*^F diff --git a/src/main/resources/assets/hbm/textures/models/capes/CapeJame.png b/src/main/resources/assets/hbm/textures/models/capes/CapeJame.png new file mode 100644 index 0000000000000000000000000000000000000000..4a7615d18df2c1f7a60300402d697a619fa775ab GIT binary patch literal 852 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$Aj3=B-?JzX3_D&pSWcFYQK6gc*=b64qWMiy7c zm`WD@2evG%jskbIn;toxVBOQe{z2p&Z`UIw>3)IuiCSydt*l%B+}BXz)Bl6+>hG^+ zx4(SFr*iJ1+g#gQb6!q2UH3ZT$&1I&-e-%lBka5*kd!}`5G2ZKbp13@zLRQ>uKVwz*>&w{_PCVOmLM~2t z%H*d%j_W_VbyvUhQSHp?%zru>*Yg|hJ&JlJW_T(~#q4-YjqNGfXDku3vi1H&PB|^T zVEc~!cdr+BOPw@b8GoDOo6f1HyceQ16qDCG>P+09-fbx!|Gv5CHm||<9Ztt~x=wP5 zJR4K>dGVbx<}YOr*K2;7?IiiUY`@B>tZ7N>53@f#=GPz}e56*k-tXi0WTnVGYx1ry zh^b?`A^p!++4}!Ok)Ko7^?dqU-h1_zOVQc)PvRcg7;0QMbGY+&yXo>^JAccIf%~TK zm-hI>6uD@P+UX$S1u?f7_Rg&+@A|Rm@m$S~$J9?{Rc*XJf%WM#e}?(h!70yA&$#=& zbJHwS$DMD56{;WWF1oH@7kKBS;Z2#yfV|%2ZM9oG zdF#aWHEw+kPi?=^JtSDb%;$IS@e8!vk ziq#p;4?f2)roF24XAa4hez3DIt>j?RU2ECi`Q`J~D!iFPtbr<=jtA~lt8@mdSPE3J z{n)PSRS Date: Sun, 14 Jan 2024 20:15:32 +0100 Subject: [PATCH 088/376] updated contributors list --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a48d727f4..1b2ab7ac0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,4 +16,4 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ (OpenComputers integration), martemen (project settings), Pvndols (thorium fuel recipe, gas turbine),\ \ JamesH2 (blood mechanics, nitric acid, particle emitter), sdddddf80 (recipe configs, chinese localization,\ \ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\ - \ 70k (textures), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks) + \ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks) From 534daf7782919fb77e5a72e6af55fd27068ea7b4 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 14 Jan 2024 14:15:46 -0600 Subject: [PATCH 089/376] changed lab pipette from assembler to anvil, fixed rubber shit, should be done (circuits are because its considered a "micropipette" and is therefore much more complex than a normal pipette.) --- src/main/java/com/hbm/crafting/ToolRecipes.java | 4 ++-- .../java/com/hbm/inventory/recipes/AssemblerRecipes.java | 6 ------ .../java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java | 7 +++++++ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 0247bd6cc..bc5cdd935 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -129,8 +129,8 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette, 1), new Object[] { " L", " G ", "G ", 'L', ModItems.ingot_biorubber, 'G', KEY_CLEARGLASS}); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_boron, 1), new Object[] { " P", " B ", "B ", 'P', ANY_RUBBER.ingot(), 'B', ModBlocks.glass_boron}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette, 1), new Object[] { " L", " G ", "G ", 'L', ANY_RUBBER.ingot(), 'G', KEY_CLEARGLASS}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_boron, 1), new Object[] { " P", " B ", "B ", 'P', RUBBER.ingot(), 'B', ModBlocks.glass_boron}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index cc918d0cc..315ac6eef 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -696,12 +696,6 @@ public class AssemblerRecipes { new ComparableStack(ModItems.motor, 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pipette_laboratory, 1),new AStack[] { - new ComparableStack(ModBlocks.glass_boron, 2), - new OreDictStack(ANY_HARDPLASTIC.ingot(), 1), - new ComparableStack(ModItems.circuit_aluminium, 2) - }, 30); - makeRecipe(new ComparableStack(ModBlocks.turret_chekhov, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 86921434e..a5dd5e1ba 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -422,6 +422,13 @@ public class AnvilRecipes { new ComparableStack(Items.leather, 4), new ComparableStack(Items.feather, 24) }, new AnvilOutput(new ItemStack(ModItems.wings_limp))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(ModBlocks.glass_boron, 2), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 1), + new ComparableStack(ModItems.circuit_aluminium, 2) + }, new AnvilOutput(new ItemStack(ModItems.pipette_laboratory))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { From 413d14e2639c53383521c8ee0091320c4eff013a Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 14 Jan 2024 22:08:06 +0100 Subject: [PATCH 090/376] fuck me with a rusty knife --- src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java index 0036d36e6..4967059fc 100644 --- a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -50,6 +50,7 @@ public class ArmorTrenchmaster extends ArmorFSB { @Override public void handleHurt(LivingHurtEvent event) { + super.handleHurt(event); EntityLivingBase e = event.entityLiving; @@ -68,6 +69,7 @@ public class ArmorTrenchmaster extends ArmorFSB { @Override public void handleAttack(LivingAttackEvent event) { + super.handleAttack(event); EntityLivingBase e = event.entityLiving; From 4ad1dcea73d4fba588c28216b69f8e41ee457e0c Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 14 Jan 2024 22:43:29 +0100 Subject: [PATCH 091/376] mushroom machine broke --- .../com/hbm/blocks/generic/BlockMush.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockMush.java b/src/main/java/com/hbm/blocks/generic/BlockMush.java index 1651682a5..a13511b5f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMush.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMush.java @@ -1,5 +1,6 @@ package com.hbm.blocks.generic; +import java.util.HashSet; import java.util.Random; import java.util.Set; @@ -47,17 +48,19 @@ public class BlockMush extends Block implements IGrowable, IPlantable { } } - private static final Set canGrowOn = Sets.newHashSet(new Block[] { - ModBlocks.waste_earth, - ModBlocks.waste_mycelium, - ModBlocks.waste_trinitite, - ModBlocks.waste_trinitite_red, - ModBlocks.block_waste, - ModBlocks.block_waste_painted, - ModBlocks.block_waste_vitrified - }); + private static final Set canGrowOn = new HashSet(); public boolean canMushGrowHere(World world, int x, int y, int z) { + if(canGrowOn.isEmpty()) { + canGrowOn.add(ModBlocks.waste_earth); + canGrowOn.add(ModBlocks.waste_mycelium); + canGrowOn.add(ModBlocks.waste_trinitite); + canGrowOn.add(ModBlocks.waste_trinitite_red); + canGrowOn.add(ModBlocks.block_waste); + canGrowOn.add(ModBlocks.block_waste_painted); + canGrowOn.add(ModBlocks.block_waste_vitrified); + } + Block block = world.getBlock(x, y - 1, z); return canGrowOn.contains(block); } @@ -75,7 +78,7 @@ public class BlockMush extends Block implements IGrowable, IPlantable { */ @Override public boolean func_149851_a(World world, int x, int y, int z, boolean b) { - return this.canMushGrowHere(world, x, y, z); + return canBlockStay(world, x, y, z); } /** From fbd9347fb8928732bd24aad982fd10369495a648 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 15 Jan 2024 09:37:41 +0100 Subject: [PATCH 092/376] Fixes --- changelog | 41 +-- .../blocks/machine/MachineStrandCaster.java | 327 +++++++++--------- src/main/java/com/hbm/config/WorldConfig.java | 2 + .../hbm/entity/effect/EntityFalloutRain.java | 3 + src/main/java/com/hbm/main/MainRegistry.java | 2 +- .../machine/TileEntityMachineRadarNT.java | 12 +- .../TileEntityMachineStrandCaster.java | 13 +- .../blocks/reactor_control_side_alt.png | Bin 497 -> 0 bytes .../blocks/reactor_control_top_alt.png | Bin 515 -> 0 bytes .../blocks/reactor_element_side_alt.png | Bin 566 -> 0 bytes .../blocks/reactor_element_top_alt.png | Bin 492 -> 0 bytes .../hbm/textures/blocks/reactor_side_alt.png | Bin 466 -> 0 bytes .../hbm/textures/blocks/reactor_top_alt.png | Bin 492 -> 0 bytes 13 files changed, 179 insertions(+), 221 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/blocks/reactor_control_side_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/reactor_control_top_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/reactor_element_side_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/reactor_element_top_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/reactor_side_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/reactor_top_alt.png diff --git a/changelog b/changelog index beb97cf8c..11d3c4adf 100644 --- a/changelog +++ b/changelog @@ -1,39 +1,8 @@ -## Added -* Large Radar - * A giant version of the radar with 3x the scan range -* Strand caster - * Watercooled foundry basin that processes large amounts of material at once - ## Changed -* Nuclear craters have been reworked - * The fallout effect no longer creates dead grass, instead it converts the area into three new biomes, the outer crater, crater and inner crater - * The entire crater is now slaked sellafite which now has texture variance to look more like debris, as well as getting darker towards the center - * The biomes being overridden means that nukes are now a solution to thaumcraft taint. Yay! - * There are now new ore variants for the block conversions which match the surrounding sellafite - * Beryllium ore now has a 100% chance of being converted into emerald -* The watz now cools up to 20% of its current heat level instead of 10%, making reactors a lot cooler and therefore react faster, which means more energy and faster depletion rates - * Mud production rates have been halved, to prevent currently working setups from exploding instantly - * This is your reminder that you can achieve more power, mud and depletion by building larger watz powerplants, i.e. stacking more watz segments on top of each other. Your tiny poo reactors make me sick. -* Watz pellets now have a 50% smaller yield, halving the expected time until depletion -* Adjusted the nuclear flash's intensity, the flash will now deal less and less radiation the longer it goes on -* The nuclear flash now bypasses radiation resistance, being only affected by blocks and distance -* Mushroom clouds' initial scale is now based on the total scale instead of all spawning roughly at the same size, causing fireballs to be comically small for huge bombs -* Removed the old mining drill, combustion generator, old watz core, structure marker, all old large reactor parts and CMB furnace for good -* Chemical plants will now eject all their outputs within a single tick if possible, increasing the throughput of fast recipes with many outputs, like asphalt -* Hitting CTRL + ALT when hovering over an item now displays a preview of that item. Useful if you want to get authentic renders for a wiki, or just like staring at things. -* 256k tanks and BAT9000s can now output comparator signals from their fluid ports -* Trenchmaster general damage multiplier has been halved, making it twice as strong -* Updated generation rules for layers like schist and hematite, they will now only replace things tagged as stone, just like most ores -* Mushroom clouds now have two additional outer condensation rings, those are not entirely finished and are still subject to change -* Small radars are now a lot cheaper -* Increased crucible pouring speed by 50% +* there is now a config option to disable the biome change caused by fallout. The config will also determine whether the biomes are registered at all, which prevents them from conflicting with other mods' biomes when disabled. ## Fixed -* Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes -* Fixed PWR fuel rods not having any radiation value assigned to them -* Fixed trenchmaster helmet not having gas mask protection -* Fixed large thermobaric artillery rocket still using the wrong slag block -* Fixed some of the assembly templates having broken names due to using the wrong way of translating the output -* Fixed the soyuz launcher's NEI construction recipe showing the wrong amount of blocks -* Fixed molten meteorite cobble dropping itself in addition to turning into lava -* Fixed S~Cola RAD not being radish-colored +* Fixed trenchmaster armor not doing most of the armor calculation, making it the worst armor +* Fixed glowing mushrooms not being able to be bonemealed +* Fixed strand caster having one port that does not work with certain rotations +* Fixed fallout being able to replace bedrock diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java index 9b2c6ced5..4a33bff5f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -10,12 +10,8 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMold; import com.hbm.items.machine.ItemScraps; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.TileEntityCrucible; -import com.hbm.tileentity.machine.TileEntityFoundryCastingBase; import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; import com.hbm.util.I18nUtil; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.item.EntityItem; @@ -30,203 +26,204 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.ArrayList; import java.util.List; -import java.util.Random; public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcceptor, ILookOverlay, IToolable { - public MachineStrandCaster() { - super(Material.iron); - } + public MachineStrandCaster() { + super(Material.iron); + } - //reminder, if the machine is a solid brick, get dimensions will already handle it without the need to use fillSapce - //the order is up, down, forward, backward, left, right - //x is for left(-)/right(+), z is for forward(+)/backward(-), y you already know - @Override - public int[] getDimensions() { - return new int[]{0, 0, 6, 0, 1, 0}; - } + // reminder, if the machine is a solid brick, get dimensions will already + // handle it without the need to use fillSapce + // the order is up, down, forward, backward, left, right + // x is for left(-)/right(+), z is for forward(+)/backward(-), y you already + // know + @Override + public int[] getDimensions() { + return new int[] { 0, 0, 6, 0, 1, 0 }; + } - @Override - public int getOffset() { - return 0; - } + @Override + public int getOffset() { + return 0; + } - @Override - public TileEntity createNewTileEntity(World world, int meta) { - if (meta >= 12) return new TileEntityMachineStrandCaster(); - if (meta >= 6) return new TileEntityProxyCombo(true, false, true).moltenMetal(); - return null; - } + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineStrandCaster(); + if(meta >= 6) return new TileEntityProxyCombo(true, false, true).moltenMetal(); + return null; + } - @Override - public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { - super.fillSpace(world, x, y, z, dir, o); + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); - x += dir.offsetX * o; - z += dir.offsetZ * o; + x += dir.offsetX * o; + z += dir.offsetZ * o; - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - //up,down;forward,backward;left,right - MultiblockHandlerXR.fillSpace(world, x, y, z, new int[]{2, 0, 1, 0, 1, 0}, this, dir); - //Fluid ports - this.makeExtra(world, x + rot.offsetX - dir.offsetX, y, z + rot.offsetZ - dir.offsetZ); - this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); - this.makeExtra(world, x - dir.offsetX * 5, y, z - dir.offsetZ * 5); - this.makeExtra(world, x + rot.offsetX - dir.offsetX * 5, y, z + rot.offsetZ - dir.offsetZ * 5); - //Molten slop ports - this.makeExtra(world, x + rot.offsetX - dir.offsetX, y + 2, z + rot.offsetZ - dir.offsetZ); - this.makeExtra(world, x - dir.offsetX, y + 2, z - dir.offsetZ); - this.makeExtra(world, x + rot.offsetX, y + 2, z + rot.offsetZ); - this.makeExtra(world, x, y + 2, z); - } + // up,down;forward,backward;left,right + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] { 2, 0, 1, 0, 1, 0 }, this, dir); + // Fluid ports + this.makeExtra(world, x + rot.offsetX - dir.offsetX, y, z + rot.offsetZ - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX * 5, y, z - dir.offsetZ * 5); + this.makeExtra(world, x + rot.offsetX - dir.offsetX * 5, y, z + rot.offsetZ - dir.offsetZ * 5); + // Molten slop ports + this.makeExtra(world, x + rot.offsetX - dir.offsetX, y + 2, z + rot.offsetZ - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y + 2, z - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX, y + 2, z + rot.offsetZ); + this.makeExtra(world, x, y + 2, z); + } - @Override - public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + @Override + public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { - TileEntity poured = world.getTileEntity(x, y, z); - if (!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return false; + TileEntity poured = world.getTileEntity(x, y, z); + if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return false; - int[] pos = this.findCore(world, x, y, z); - if (pos == null) return false; - TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); - if (!(tile instanceof TileEntityMachineStrandCaster)) return false; - TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(tile instanceof TileEntityMachineStrandCaster)) return false; + TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; - return caster.canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack); - } + return caster.canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack); + } - @Override - public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + @Override + public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { - TileEntity poured = world.getTileEntity(x, y, z); - if (!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return stack; + TileEntity poured = world.getTileEntity(x, y, z); + if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return stack; - int[] pos = this.findCore(world, x, y, z); - if (pos == null) return stack; - TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); - if (!(tile instanceof TileEntityMachineStrandCaster)) return stack; - TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return stack; + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(tile instanceof TileEntityMachineStrandCaster)) return stack; + TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; - return caster.pour(world, x, y, z, dX, dY, dZ, side, stack); - } + return caster.pour(world, x, y, z, dX, dY, dZ, side, stack); + } - @Override - public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { - return false; - } + @Override + public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + return false; + } - @Override - public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { - return null; - } + @Override + public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + return null; + } - @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; - } + @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; + } - int[] coords = findCore(world, x, y, z); - TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); - if (cast != null) { - //insert mold - if (player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) { - cast.slots[0] = player.getHeldItem().copy(); - cast.slots[0].stackSize = 1; - player.getHeldItem().stackSize--; - world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); - cast.markDirty(); - return true; + int[] coords = findCore(world, x, y, z); + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); + if(cast != null) { + // insert mold + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) { + cast.slots[0] = player.getHeldItem().copy(); + cast.slots[0].stackSize = 1; + player.getHeldItem().stackSize--; + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + cast.markDirty(); + return true; - } + } - if (player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && player.getHeldItem().getItem().getToolClasses(player.getHeldItem()).contains("shovel")) { - if (cast.amount > 0) { - ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); - if (!player.inventory.addItemStackToInventory(scrap)) { - EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); - world.spawnEntityInWorld(item); - } else { - player.inventoryContainer.detectAndSendChanges(); - } - cast.amount = 0; - cast.type = null; - cast.markDirty(); - } - return true; - } - } - return this.standardOpenBehavior(world, x, y, z, player, 0); - } + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && player.getHeldItem().getItem().getToolClasses(player.getHeldItem()).contains("shovel")) { + if(cast.amount > 0) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); + if(!player.inventory.addItemStackToInventory(scrap)) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } + cast.amount = 0; + cast.type = null; + cast.markDirty(); + } + return true; + } + } + return this.standardOpenBehavior(world, x, y, z, player, 0); + } - @Override - public void breakBlock(World world, int x, int y, int z, Block b, int i) { + @Override + public void breakBlock(World world, int x, int y, int z, Block b, int i) { - TileEntity te = world.getTileEntity(x, y, z); - if (te instanceof TileEntityMachineStrandCaster) { - TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) te; + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TileEntityMachineStrandCaster) { + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) te; - if (cast.amount > 0) { - ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); - EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); - world.spawnEntityInWorld(item); - cast.amount = 0; //just for safety - } - } - super.breakBlock(world, x, y, z, b, i); - } + if(cast.amount > 0) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); + world.spawnEntityInWorld(item); + cast.amount = 0; // just for safety + } + } + super.breakBlock(world, x, y, z, b, i); + } - public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { - int[] coords = findCore(world, x, y, z); - if (coords == null) return; + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + int[] coords = findCore(world, x, y, z); + if(coords == null) + return; - TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); - List text = new ArrayList(); - if (cast != null) { - if (cast.slots[0] == null) { - text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast")); - } else if (cast.slots[0].getItem() == ModItems.mold) { - ItemMold.Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]); - text.add(EnumChatFormatting.BLUE + mold.getTitle()); - } - } - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text); - } + List text = new ArrayList(); + if(cast != null) { + if(cast.slots[0] == null) { + text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast")); + } else if(cast.slots[0].getItem() == ModItems.mold) { + ItemMold.Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]); + text.add(EnumChatFormatting.BLUE + mold.getTitle()); + } + } + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text); + } - @Override - protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { - x += dir.offsetX * o; - z += dir.offsetZ * o; + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + x += dir.offsetX * o; + z += dir.offsetZ * o; - if (!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir)) return false; - return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[]{2, 0, 1, 0, 1, 0}, x, y, z, dir); - } + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir)) + return false; + return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] { 2, 0, 1, 0, 1, 0 }, x, y, z, dir); + } - @Override - public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { - if (tool != ToolType.SCREWDRIVER) - return false; + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if(tool != ToolType.SCREWDRIVER) + return false; - int[] coords = findCore(world, x, y, z); - TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); + int[] coords = findCore(world, x, y, z); + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); - if (cast.slots[0] == null) - return false; + if(cast.slots[0] == null) + return false; - if (!player.inventory.addItemStackToInventory(cast.slots[0].copy())) { - EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, cast.slots[0].copy()); - world.spawnEntityInWorld(item); - } else { - player.inventoryContainer.detectAndSendChanges(); - } + if(!player.inventory.addItemStackToInventory(cast.slots[0].copy())) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, cast.slots[0].copy()); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } - cast.markDirty(); + cast.slots[0] = null; + cast.markDirty(); - cast.slots[0] = null; - - return true; - } + return true; + } } - diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 801563946..227010114 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -108,6 +108,7 @@ public class WorldConfig { public static int meteorShowerChance = 20 * 60 * 5; public static int meteorShowerDuration = 6000; + public static boolean enableCraterBiomes = true; public static int craterBiomeId = 80; public static int craterBiomeInnerId = 81; public static int craterBiomeOuterId = 82; @@ -227,6 +228,7 @@ public class WorldConfig { meteorShowerDuration = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.05_meteorShowerDuration", "Max duration of meteor shower in ticks", 20 * 60 * 30); final String CATEGORY_BIOMES = CommonConfig.CATEGORY_BIOMES; + enableCraterBiomes = CommonConfig.createConfigBool(config, CATEGORY_BIOMES, "17.B_toggle", "Enables the biome change caused by nuclear explosions", true); craterBiomeId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B00_craterBiomeId", "The numeric ID for the crater biome", 80); craterBiomeInnerId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B01_craterBiomeInnerId", "The numeric ID for the inner crater biome", 81); craterBiomeOuterId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B02_craterBiomeOuterId", "The numeric ID for the outer crater biome", 82); diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index bcc6cd6b3..2f59a0408 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.config.FalloutConfigJSON; import com.hbm.config.FalloutConfigJSON.FalloutEntry; +import com.hbm.config.WorldConfig; import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.saveddata.AuxSavedData; import com.hbm.world.WorldUtil; @@ -114,6 +115,7 @@ public class EntityFalloutRain extends Entity { } public static BiomeGenBase getBiomeChange(double dist, int scale) { + if(!WorldConfig.enableCraterBiomes) return null; if(scale >= 150 && dist < 15) return BiomeGenCraterBase.craterInnerBiome; if(scale >= 100 && dist < 55) return BiomeGenCraterBase.craterBiome; if(scale >= 25) return BiomeGenCraterBase.craterOuterBiome; @@ -160,6 +162,7 @@ public class EntityFalloutRain extends Entity { Block b = worldObj.getBlock(x, y, z); if(b.getMaterial() == Material.air) continue; + if(b == Blocks.bedrock) return; Block ab = worldObj.getBlock(x, y + 1, z); int meta = worldObj.getBlockMetadata(x, y, z); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index b02fb3722..5809ea4ee 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -295,7 +295,7 @@ public class MainRegistry { OreDictManager.registerGroups(); //important to run first OreDictManager.registerOres(); - BiomeGenCraterBase.initDictionary(); + if(WorldConfig.enableCraterBiomes) BiomeGenCraterBase.initDictionary(); Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8"); Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 5d04f2aa6..ab8f13643 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -8,7 +8,6 @@ import java.util.function.Function; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; -import com.hbm.config.WeaponConfig; import com.hbm.extprop.HbmLivingProps; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerMachineRadarNT; @@ -19,11 +18,8 @@ import com.hbm.items.ModItems; import com.hbm.items.tool.ItemCoordinateBase; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; -import com.hbm.saveddata.satellites.Satellite.Interfaces; import com.hbm.saveddata.satellites.SatelliteHorizons; import com.hbm.saveddata.satellites.SatelliteLaser; import com.hbm.tileentity.IConfigurableMachine; @@ -40,12 +36,10 @@ import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.IRadarDetectableNT.RadarScanParams; import api.hbm.entity.RadarEntry; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -59,7 +53,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.WorldServer; -import net.minecraftforge.common.util.ForgeDirection; /** * Now with SmЯt™ lag-free entity detection! (patent pending) @@ -462,12 +455,9 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I int z = data.getInteger("launchPosZ"); int y = 60; //one day I will make radars transmit Y coordinate as well and you will be butchered alhamdulila worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - sat.onCoordAction(world,player,x,y,z); + sat.onCoordAction(world, player, x, y, z); } - } - - } if(link != null && link.getItem() == ModItems.radar_linker) { BlockPos pos = ItemCoordinateBase.getPosition(link); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 8a73e683f..c6dd3bc92 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -139,10 +139,10 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase ForgeDirection rot = dir.getRotation(ForgeDirection.UP); return new DirPos[] { - new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), - new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), + new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()), new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX * 5, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 5, rot), - new DirPos(xCoord - rot.offsetX - dir.offsetX * 5, yCoord, zCoord - rot.offsetZ + dir.offsetZ * 5, rot.getOpposite()) + new DirPos(xCoord - rot.offsetX - dir.offsetX * 5, yCoord, zCoord - rot.offsetZ - dir.offsetZ * 5, rot.getOpposite()) }; } @@ -192,8 +192,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase @Override public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { - if(this.type != null && this.type != stack.material) - return false; + if(this.type != null && this.type != stack.material) return false; return !(this.amount >= this.getCapacity() || getInstalledMold() == null); } @@ -210,9 +209,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase private void updateConnections() { for(DirPos pos : getFluidConPos()) { this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } - for(DirPos pos : getFluidConPos()) { - sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_control_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_control_side_alt.png deleted file mode 100644 index 20d8225885dcf020db53a665379a3aee60a9c819..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmVJktEXW+ZmIU3AVNgrF=-%CbaCi4cMqBPoOsSZfhN+%c(?V!Pb} zP!t7|$>eVH^?K#2I2;a0?>)mX@bvVH5CV^n-*UqLFlmgT?|YO|7-MkG<>bV?_gPJ1 zr_%{*EmCVu(=@!jy#UZO4MkB9W8`@J3BYtZ&Fks(0l;#(L~D%%aL(mQecxvVxSxIkeVz?{Ur%W27w0%)IycG7~e#V2nXlRmEnr;duO!6aGe*r6(K7g4P0q*&(FI)55sV0;a?^%mkWL0=iZO~jajmgm~#$mEyZH7V7*>*KA&;U(KJo| z5>raCTCLDpXEvYDsjBK`!CFgQ*H~+@)@B8Xja4NE5MxB96Jv~78bDc=nT^|Vyi(300000NkvXXu0mjfg}~zz diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_control_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_control_top_alt.png deleted file mode 100644 index bd53b0db81099c88e421ef9c2ece0cb2e85b2444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515 zcmV+e0{s1nP)g2b5QZNocB&{iAj-#KFJ1LeDN_Fh|Nn$k^^il$t`Mz& zLd=jvTD%7~*&x*Yn42Gs?RnpsQM1|1iwH_7j4>Ev&|0IE!h25>N-3OkD5Wl#?)7?P zSq4B51cYIDak;80K8vTPCv;ucoK7e5e1(Yc`1rL=_!p*&qM$5Gno73YMVs8PqFA=o zG;FoXan7NwwG4+t27?ny3B%!#APDf@b9)OQL{S7l6h&AIRkda?7+|eM1Bl3{I{y~> za5!8&;JwEfbHTc1dhbz6Q4|G1k|d1BW0uQ;JYQk0B~4S}IA*cf^8Eb$SLqgOEpKna z%gY*TExle3t(4+$IJD+e)%wcBKQX=E?o&l01IZJTP{h#$6Gxct_Lqu3E3q*wb`zZj%7+zmD zhzJi4Unt8GfcN(!BEsF>2oXW|`+X*p2}R+_vJ7K>w`;ShTf>@RIv&H8#c_=G-s7BO zI!&mmHQn85SU0-Ndw*W0`Fwt5p!dEVsP1+)QsBJKKLH{G`ev1RvJU_N002ovPDHLk FV1l4z<_7=( diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_element_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_element_side_alt.png deleted file mode 100644 index b73f785d0a6b12463df1c608f46eccf61c4fd578..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}P)0eUo7J0E)Fqupm zZc!9OX__(^3>XXse13j%a&p4Q#|OjVkSxo{vW!lr!)mocYt7r+8~uKte!owerbGb7 z7_7BeYuRizIOmwnW>i&0RaGpPOSIO65cZ~u%Cf{5!~Oj|+p{r-%galgb2#TXKR>4| zOT713YnjjI=jdLq$JyB#@9*y@rSRUPwWizcvR<#T)-s(=IXXIOx`q%))08Ah z&>})vmRww1v_|vZQ&kn-djPJluMcnG`}@1KgD0@Lqxc_xgkjsoO7-2ynl+dwTKT756wH(b&XOAV+=aWGDf2jbzKueKqciUx=8 z_dDNoI2@3V$Ajnd$?k!hMzmL)<6thIRWiJ}N=Em@ZJvs!DBQW8SIT1%eiq-lx-Fvbi5^WLMB zqG=j{k6tHP*EPl%;yA`y+c(E?+>h|dtE!5ss*p*Nuvjc8%aRZRZQBl#_TKk_{nm6k zMG7IP>-sCI|4H6%H>|asPNz3i>-8Fd^ZESdtyU|v){JJe8T0wPM>U(xP)gyPBg-t+mwHA>Z)V)vu0000N2bZe?^J zG%heMHD!e|WdHyHP)S5VR5(w4l4(!EKoCIt!@!n8%Yv}9YW?8xp@9SlF-o8*w;E6U z)xKpAH}%-OOt#1Fyq#I6(MVkP*z;OJ5I39WT3>WJmqdYiwc4rGB7uLLBuOWed&siK z+3a~fe<8wny#9$&XAXN5-u{DG;QM+w%=-NaxUMUc(I`LQ`+m23o2EBVDk+m;xqQPU zj^ikbwAPEotH72)5QJe!lnfmBTdA=dN-68J89Wld-XsoZ$Khx}Fa;)PfRu+NRq z0Zarkpp@rNU}vb;Pn|fvwqF47NqmHIxlFBONZsg~G;UudGT=b(=#=z>%07*qo IM6N<$f{m%fJOBUy diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_top_alt.png deleted file mode 100644 index f93b61cb9f29d65c0de8e74f203e31795093c8ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmVN2bZe?^J zG%heMHD!e|WdHyHYDq*vR5(v%l5J1IFcgLR!+_1Pjcvl%l=(sB0||i;FcE?97NW+t z_^*AogLR2FC(UWs^*+75CXNfoxpdub5ada6lcu-*{vD%)Z@2rtpGoX7MKM~fp3!FW zy4$_)_aAwlXIU0SQ4j>n<*BYH8W_%~&C5-39EV{j!wON`Ffg8%&SsnGbk%CL9LKq+ zVm{v@OtabaJP$J(J)lM-Dl;69Uul|(1b;YuN;*~981Y>AjFcn^0NU|if~-toxI0PV zApo09o`4Y^W;}jGAPMY@1WB*gqeScV3t|eMZfukM)?i?=>|T@lH@0fDiy#r_Dv?X| zQE`L>gGJJmD3Qo;I(<_mNHEfN`(~w_1g6uuHhDh8fm9*>F<5C`KZM~`i9~S_R3zo4 zFpI@bU_xb`SA(rYA_EM1FKPvtssyAC)(c2w^Kl0|m#S(+zV8d8E*{O$()@>P57Wke3u&Q;9-0000 Date: Mon, 15 Jan 2024 10:19:39 +0100 Subject: [PATCH 093/376] cleaned up pipettes, chemplant loading change delay --- changelog | 10 +- .../java/com/hbm/crafting/ToolRecipes.java | 1 + .../inventory/recipes/anvil/AnvilRecipes.java | 7 - .../java/com/hbm/items/tool/ItemPipette.java | 296 +++++++++--------- .../machine/TileEntityMachineChemplant.java | 20 +- .../assets/hbm/textures/items/pipette.png | Bin 250 -> 205 bytes .../hbm/textures/items/pipette_boron.png | Bin 280 -> 213 bytes .../hbm/textures/items/pipette_empty.png | Bin 0 -> 91 bytes .../items/pipette_laboratory_overlay.png | Bin 141 -> 104 bytes .../hbm/textures/items/pipette_overlay.png | Bin 222 -> 151 bytes 10 files changed, 173 insertions(+), 161 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/pipette_empty.png diff --git a/changelog b/changelog index 11d3c4adf..bec2826a5 100644 --- a/changelog +++ b/changelog @@ -1,5 +1,13 @@ +## Added +* Pipettes + * Precision tools for carrying small amounts of liquids + * Come in three variants, normal, boron (corrosion-resistant) and laboratory (smaller capacity, more precision) + * Unlike most fluid containers, can be partially filled + * Capacity can be changed by right-clicking if the pipette is empty + ## Changed -* there is now a config option to disable the biome change caused by fallout. The config will also determine whether the biomes are registered at all, which prevents them from conflicting with other mods' biomes when disabled. +* There is now a config option to disable the biome change caused by fallout. The config will also determine whether the biomes are registered at all, which prevents them from conflicting with other mods' biomes when disabled. +* Chemical plants now have a timer that starts after loading/unloading fluids using item fluid containers from the input buffers, this creates a delay between switching from loading and unloading, making it possible to retrieve fluids using pipettes. ## Fixed * Fixed trenchmaster armor not doing most of the armor calculation, making it the worst armor diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index bc5cdd935..5d1edf7e4 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -131,6 +131,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette, 1), new Object[] { " L", " G ", "G ", 'L', ANY_RUBBER.ingot(), 'G', KEY_CLEARGLASS}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_boron, 1), new Object[] { " P", " B ", "B ", 'P', RUBBER.ingot(), 'B', ModBlocks.glass_boron}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_laboratory, 1), new Object[] { " C", " R ", "P ", 'C', ModItems.circuit_aluminium, 'R', RUBBER.ingot(), 'P', ModItems.pipette_boron }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index a5dd5e1ba..86921434e 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -422,13 +422,6 @@ public class AnvilRecipes { new ComparableStack(Items.leather, 4), new ComparableStack(Items.feather, 24) }, new AnvilOutput(new ItemStack(ModItems.wings_limp))).setTier(2)); - - constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] { - new ComparableStack(ModBlocks.glass_boron, 2), - new OreDictStack(ANY_HARDPLASTIC.ingot(), 1), - new ComparableStack(ModItems.circuit_aluminium, 2) - }, new AnvilOutput(new ItemStack(ModItems.pipette_laboratory))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index a09ff9809..b7829ae2c 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -23,186 +23,180 @@ import java.util.List; public class ItemPipette extends Item implements IFillableItem { - public ItemPipette() { - this.canRepair = false; - this.setMaxDamage(1); - } + public ItemPipette() { + this.canRepair = false; + this.setMaxDamage(1); + } - @SideOnly(Side.CLIENT) protected IIcon overlayIcon; + @SideOnly(Side.CLIENT) protected IIcon overlayIcon; + @SideOnly(Side.CLIENT) protected IIcon emptyIcon; - public short getMaxFill() { - if(this == ModItems.pipette_laboratory) - return 50; - else - return 1_000; - } + public short getMaxFill() { + if(this == ModItems.pipette_laboratory) return 50; + else return 1_000; + } - public void initNBT(ItemStack stack) { + public void initNBT(ItemStack stack) { + stack.stackTagCompound = new NBTTagCompound(); + this.setFill(stack, Fluids.NONE, (short) 0); // sets "type" and "fill" NBT + stack.stackTagCompound.setShort("capacity", this.getMaxFill()); // set "capacity" + } - stack.stackTagCompound = new NBTTagCompound(); + public FluidType getType(ItemStack stack) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } - this.setFill(stack, Fluids.NONE, (short) 0); //sets "type" and "fill" NBT - stack.stackTagCompound.setShort("capacity", this.getMaxFill()); //set "capacity" - } + return Fluids.fromID(stack.stackTagCompound.getShort("type")); + } - public FluidType getType(ItemStack stack) { - if(!stack.hasTagCompound()) { - initNBT(stack); - } + public short getCapacity(ItemStack stack) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } - return Fluids.fromID(stack.stackTagCompound.getShort("type")); - } + return stack.stackTagCompound.getShort("capacity"); + } - public short getCapacity(ItemStack stack) { - if(!stack.hasTagCompound()) { - initNBT(stack); - } + public void setFill(ItemStack stack, FluidType type, short fill) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } - return stack.stackTagCompound.getShort("capacity"); - } + stack.stackTagCompound.setShort("type", (short) type.getID()); + stack.stackTagCompound.setShort("fill", fill); + } - public void setFill(ItemStack stack, FluidType type, short fill) { - if(!stack.hasTagCompound()) { - initNBT(stack); - } + public short getFill(ItemStack stack) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } - stack.stackTagCompound.setShort("type", (short) type.getID()); - stack.stackTagCompound.setShort("fill", fill); - } + return stack.stackTagCompound.getShort("fill"); + } - public short getFill(ItemStack stack) { - if(!stack.hasTagCompound()) { - initNBT(stack); - } + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - return stack.stackTagCompound.getShort("fill"); - } + if(!stack.hasTagCompound()) { + initNBT(stack); + } - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(!world.isRemote) { + if(this.getFill(stack) == 0) { + int a; + if(this == ModItems.pipette_laboratory) + a = !player.isSneaking() ? Math.min(this.getCapacity(stack) + 1, 50) : Math.max(this.getCapacity(stack) - 1, 1); + else + a = !player.isSneaking() ? Math.min(this.getCapacity(stack) + 50, 1_000) : Math.max(this.getCapacity(stack) - 50, 50); + stack.stackTagCompound.setShort("capacity", (short) a); + player.addChatMessage(new ChatComponentText(a + "/" + this.getMaxFill() + "mB")); + } else { + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKey("desc.item.pipette.noEmpty"))); + } + } + return stack; + } - if(!stack.hasTagCompound()) { - initNBT(stack); - } + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + if(this == ModItems.pipette_laboratory) { + list.add(I18nUtil.resolveKey("desc.item.pipette.corrosive")); + list.add(I18nUtil.resolveKey("desc.item.pipette.laboratory")); + } + if(this == ModItems.pipette_boron) + list.add(I18nUtil.resolveKey("desc.item.pipette.corrosive")); + if(this == ModItems.pipette) + list.add(I18nUtil.resolveKey("desc.item.pipette.noCorrosive")); + list.add("Fluid: " + this.getType(stack).getLocalizedName()); + list.add("Amount: " + this.getFill(stack) + "/" + this.getCapacity(stack) + "mB (" + this.getMaxFill() + "mB)"); + } - if(!world.isRemote) { - // ok i need to add some explanation - if (this.getFill(stack) == 0) { //if the pipette is empty - int a; - if(this == ModItems.pipette_laboratory) //if the pipette is a laboratory pipette - //if the player is sneaking then the capacity should increase, else it should decrease (Math.min and Math.max for negative numbers/going over capacity) - a = !player.isSneaking() ? Math.min(this.getCapacity(stack) + 1, 50) : Math.max(this.getCapacity(stack) - 1, 1); - else //if its not a laboratory pipette - //if the player is sneaking then the capacity should increase, else it should decrease - a = !player.isSneaking() ? Math.min(this.getCapacity(stack) + 50, 1_000) : Math.max(this.getCapacity(stack) - 50, 50); - stack.stackTagCompound.setShort("capacity", (short) a); // set the capacity to the new value - player.addChatMessage(new ChatComponentText(a + "/" + this.getMaxFill() + "mB")); // send new value in chat for player to see - } else { - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKey("desc.item.pipette.noEmpty"))); // if pipette is not empty, no chance in capacity and tell player - } - } - return stack; - } + @Override + public boolean acceptsFluid(FluidType type, ItemStack stack) { + return (type == this.getType(stack) || this.getFill(stack) == 0) && (!type.isAntimatter()); + } - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - if(this == ModItems.pipette_laboratory) { - list.add(I18nUtil.resolveKey("desc.item.pipette.corrosive")); - list.add(I18nUtil.resolveKey("desc.item.pipette.laboratory")); - } - if(this == ModItems.pipette_boron) - list.add(I18nUtil.resolveKey("desc.item.pipette.corrosive")); - if(this == ModItems.pipette) - list.add(I18nUtil.resolveKey("desc.item.pipette.noCorrosive")); - list.add("Fluid: " + this.getType(stack).getLocalizedName()); - list.add("Amount: " + this.getFill(stack) + "/" + this.getCapacity(stack) + "mB (" + this.getMaxFill() + "mB)"); - } + @Override + public int tryFill(FluidType type, int amount, ItemStack stack) { - @Override - public boolean acceptsFluid(FluidType type, ItemStack stack) { - return (type == this.getType(stack) || this.getFill(stack) == 0) && (!type.isAntimatter()); - } + if(!acceptsFluid(type, stack)) + return amount; - @Override - public int tryFill(FluidType type, int amount, ItemStack stack) { + if(this.getFill(stack) == 0) + this.setFill(stack, type, (short) 0); - if(!acceptsFluid(type, stack)) - return amount; + int req = this.getCapacity(stack) - this.getFill(stack); + int toFill = Math.min(req, amount); - if(this.getFill(stack) == 0) - this.setFill(stack, type, (short) 0); + this.setFill(stack, type, (short) (this.getFill(stack) + toFill)); - int req = this.getCapacity(stack) - this.getFill(stack); - int toFill = Math.min(req, amount); + // fizzling checks + if(this.getFill(stack) > 0 && (this.getType(stack).isCorrosive() && type != Fluids.ACID)) { + if(this == ModItems.pipette) { + stack.stackSize = 0; + } + } - this.setFill(stack, type, (short) (this.getFill(stack) + toFill)); + return amount - toFill; + } - //fizzling checks - if(this.getFill(stack) > 0 && (this.getType(stack).isCorrosive() && type != Fluids.ACID)) /*hydrogen peroxide corroding glass? unheard of! */ { - if(this == ModItems.pipette) { - //fizzle it! - stack.stackSize = 0; - } - } + @Override + public boolean providesFluid(FluidType type, ItemStack stack) { + return this.getType(stack) == type; + } - return amount - toFill; - } + @Override + public int tryEmpty(FluidType type, int amount, ItemStack stack) { + if(providesFluid(type, stack)) { + int toUnload = Math.min(amount, this.getFill(stack)); + this.setFill(stack, type, (short) (this.getFill(stack) - toUnload)); + if(this.getFill(stack) == 0) + this.setFill(stack, Fluids.NONE, (short) 0); + return toUnload; + } + return amount; + } - @Override - public boolean providesFluid(FluidType type, ItemStack stack) { - return this.getType(stack) == type; - } + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister icon) { + super.registerIcons(icon); + if(this == ModItems.pipette_laboratory) + this.overlayIcon = icon.registerIcon("hbm:pipette_laboratory_overlay"); + else + this.overlayIcon = icon.registerIcon("hbm:pipette_overlay"); + + this.emptyIcon = icon.registerIcon("hbm:pipette_empty"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(ItemStack stack, int pass) { + if(getFill(stack) == 0 && pass == 1) return this.emptyIcon; + return pass == 1 ? this.overlayIcon : getIconFromDamageForRenderPass(stack.getItemDamage(), pass); + } - @Override - public int tryEmpty(FluidType type, int amount, ItemStack stack) { - if(providesFluid(type, stack)) { - int toUnload = Math.min(amount, this.getFill(stack)); - this.setFill(stack, type,(short) (this.getFill(stack) - toUnload)); - if(this.getFill(stack) == 0) - this.setFill(stack, Fluids.NONE, (short) 0); - return toUnload; - } - return amount; - } + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } - //this took me way too long to figure out + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + if(pass == 0) { + return 0xffffff; + } else { + int j = this.getType(stack).getColor(); - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister icon) { - super.registerIcons(icon); - if (this == ModItems.pipette_laboratory) - this.overlayIcon = icon.registerIcon("hbm:pipette_laboratory_overlay"); - else - this.overlayIcon = icon.registerIcon("hbm:pipette_overlay"); - } + if(j < 0) { + j = 0xffffff; + } - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) { - return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean requiresMultipleRenderPasses() { - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack stack, int pass) { - if(pass == 0) { - return 0xffffff; - } else { - int j = this.getType(stack).getColor(); - - if(j < 0) { - j = 0xffffff; - } - - return j; - } - } + return j; + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 3c421facd..110e79c9a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -86,6 +86,12 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements public String getName() { return "container.chemplant"; } + + // last successful load + int lsl0 = 0; + int lsl1 = 0; + int lsu0 = 0; + int lsu1 = 0; @Override public void updateEntity() { @@ -98,11 +104,21 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements this.isProgressing = false; this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); - if(!tanks[0].loadTank(17, 19, slots) && (slots[17] == null || slots[17].getItem() != ModItems.fluid_barrel_infinite)) tanks[0].unloadTank(17, 19, slots); - if(!tanks[1].loadTank(18, 20, slots) && (slots[18] == null || slots[18].getItem() != ModItems.fluid_barrel_infinite)) tanks[1].unloadTank(18, 20, slots); + int fluidDelay = 40; + + if(lsu0 >= fluidDelay && tanks[0].loadTank(17, 19, slots)) lsl0 = 0; + if(lsu1 >= fluidDelay && tanks[1].loadTank(18, 20, slots)) lsl1 = 0; + + if(lsl0 >= fluidDelay && slots[17] != null && slots[17].getItem() != ModItems.fluid_barrel_infinite) if(tanks[0].unloadTank(17, 19, slots)) lsu0 = 0; + if(lsl1 >= fluidDelay && slots[18] != null && slots[18].getItem() != ModItems.fluid_barrel_infinite) if(tanks[1].unloadTank(18, 20, slots)) lsu1 = 0; tanks[2].unloadTank(9, 11, slots); tanks[3].unloadTank(10, 12, slots); + + if(lsl0 < fluidDelay) lsl0++; + if(lsl1 < fluidDelay) lsl1++; + if(lsu0 < fluidDelay) lsu0++; + if(lsu1 < fluidDelay) lsu1++; loadItems(); unloadItems(); diff --git a/src/main/resources/assets/hbm/textures/items/pipette.png b/src/main/resources/assets/hbm/textures/items/pipette.png index b4c5c7e2275107903c7128234c030d494f8d342f..a24218949eefc5925fc372ce4f715746dac584d3 100644 GIT binary patch delta 177 zcmV;i08an<0nGuBB!2{RLP=Bz2nYy#2xN!=004wZL_t(Ijm?lT3c^4TMPI-p>Fq=FSU;5CABp5M%5PTjAj@ z0o+bKwN{UJfdNuhbHc}rRn4+p^gVpMI^gNK!~71X?10aY9V%vMKkmAD4W}%*YQs|9 f4X*9(%72j=TxexSwm3N{00000NkvXXu0mjf!W>Ok delta 222 zcmV<403rX)0r~-uB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pFk4Z#9R5(v#pgY*KY14lYhH@Dgp)^qdr19IgZ(#QC-@h4RV`CYa zz&s+r$#?(%i`)2uHG&KQ(L@7~W+;KtUGt_F zBxrv1g94k;HG}*OWfBGtzEWT_2q1?zNqzCuPO_5+0bpPN Y0PeoCIA2c diff --git a/src/main/resources/assets/hbm/textures/items/pipette_boron.png b/src/main/resources/assets/hbm/textures/items/pipette_boron.png index 746c115f7781c96492fe2a3aa2cfae03de8398aa..7bf66ade3f382e17332ec4fe9fb1c1e3192348c4 100644 GIT binary patch delta 185 zcmV;q07n0q0@VSKB!2{RLP=Bz2nYy#2xN!=004|hL_t(Ijm?lT3Iah4Mc;x~n6u6q zQrk{#E7msl7A`V{2->XJ45{V-v0B!#(YPSKE|ACn3H%xnF%hwG?!0mc0f15pF~)B3 zsl2_a0SvnhwN_8=Bm<GZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8Z$$(}BbAr}703#@0D=ijRrXe*MGSZET+u;k+`6ORsvcZlIEljf=87z-@elq4bVA4FtXVPXzhG!*{Ob;FS^|}22I1y1GU}oXkrG1_qXNM_)$E)e-c@Ne9i)o$YKTtzQZ8Qcszea z3Q$nV)5S5w!arGpb#a17LX)@r|Nreqp6nu-b$@!9&Q4)uV`I?K=8n2O>4P&+HG`+C KpUXO@geCw8TOl+6 diff --git a/src/main/resources/assets/hbm/textures/items/pipette_overlay.png b/src/main/resources/assets/hbm/textures/items/pipette_overlay.png index c6bf6aadb19ac2f570b7dff1c3831c26b9c83d68..207f90f2e2fa58a0b4575d67d37045177e071025 100644 GIT binary patch delta 122 zcmV-=0EPeF0ha-gBy$9FLP=Bz2nYy#2xN!=002%&L_t(IjqQ%X4!|G?#l-*rTHxND zFvet4=8|3Pk)-sMa#+U902uFeMGn#3^JRd$`g8$6R7FHSEk7<$)h4COQSYCmGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8Z$Vow*x5DWig3DzUcvHJi2@Bj1hf4zn{-;4z&aSWGE96xm6!yon#22KN~%sC88 ze!iAxW6N8>xa&`k#H)|H7?%AM7D&F#!(A9f~<$@3Z-85x%Fn5~Ixz0(i0pTX1B&t;ucLK6Uu1xNM( From 5618be2d638ba83ceccc0a646c0c5998c61c945f Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 15 Jan 2024 15:51:26 +0100 Subject: [PATCH 094/376] missile rendering, fixes --- changelog | 7 + .../hbm/items/machine/ItemMachineUpgrade.java | 78 ------- src/main/java/com/hbm/main/ClientProxy.java | 36 +++- .../render/item/ItemRenderMissileGeneric.java | 192 ++++++++++++++++++ .../render/item/ItemRendererMeteorSword.java | 182 ++++++++++++----- .../tileentity/RenderLaunchPadTier1.java | 190 +---------------- .../hbm/tileentity/IUpgradeInfoProvider.java | 2 + .../machine/TileEntityMachineCyclotron.java | 45 +++- .../machine/TileEntityMachineExcavator.java | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 + 10 files changed, 417 insertions(+), 319 deletions(-) create mode 100644 src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java diff --git a/changelog b/changelog index bec2826a5..7293090d2 100644 --- a/changelog +++ b/changelog @@ -8,9 +8,16 @@ ## Changed * There is now a config option to disable the biome change caused by fallout. The config will also determine whether the biomes are registered at all, which prevents them from conflicting with other mods' biomes when disabled. * Chemical plants now have a timer that starts after loading/unloading fluids using item fluid containers from the input buffers, this creates a delay between switching from loading and unloading, making it possible to retrieve fluids using pipettes. +* In addition to delaying overheats, efficiency upgrades now reduce the cyclotron's coolant demand +* Removed the tooltips from common upgrades, as the info was incomplete and outdated anyway +* Meteorite swords now render their variant glint in first person view +* Meteorite swords are now a lot larger, similar to most other NTM swords +* Non-custom missile items now render in 3D ## Fixed * Fixed trenchmaster armor not doing most of the armor calculation, making it the worst armor * Fixed glowing mushrooms not being able to be bonemealed * Fixed strand caster having one port that does not work with certain rotations * Fixed fallout being able to replace bedrock +* Fixed the upgrade info of the large mining drill being incorrect +* Fixed cyclotron not having the new upgrade info tooltip diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 3e165b474..99619f968 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -57,84 +57,6 @@ public class ItemMachineUpgrade extends Item { } } - if(this.type == UpgradeType.SPEED) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Delay -" + (15 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Laser Miner:"); - list.add("Delay ÷" + (1 + this.tier) + " / Consumption +" + (625 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Electric Furnace:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (50 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Assembly Machine:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Chemical Plant:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (25 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Crystallizer:"); - list.add("Delay -" + (20 * this.tier) + "% / Consumption +" + (1000 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("Speed x" + (1 + this.tier)); - list.add(EnumChatFormatting.RED + "Flare Stack:"); - list.add("Speed x" + (1 + this.tier)); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Damage +" + (0.25 * (double)this.tier) + "dmg/t"); - } - - if(this.type == UpgradeType.EFFECT) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Radius +" + this.tier + "m / Consumption +" + (80 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Crystallizer:"); - list.add("+" + (5 * this.tier) + "% chance of not consuming an item / Acid consumption +" + (1000 * this.tier) + "mB"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("-" + (100 - 100 / (this.tier + 1)) + "% chance of incrementing overheat counter"); - list.add(EnumChatFormatting.RED + "Flare Stack:"); - list.add("+" + (100 * this.tier / 3) + "% power production"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Range +" + (3 * this.tier) + "m"); - } - - if(this.type == UpgradeType.POWER) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Electric Furnace:"); - list.add("Consumption -" + (15 * this.tier) + "HE/t / Delay +" + (10 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Assembly Machine:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Chemical Plant:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Consumption -" + (25 * this.tier) + "% / Delay +" + (10 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("Consumption -" + (100 * this.tier) + "kHE/t"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Consumption -" + (150 * this.tier) + "HE/t"); - list.add("Consumption when firing -" + (1500 * this.tier) + "HE/t"); - } - - if(this == ModItems.upgrade_fortune_1) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +1 / Delay +15"); - } - - if(this == ModItems.upgrade_fortune_2) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +2 / Delay +30"); - } - - if(this == ModItems.upgrade_fortune_3) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +3 / Delay +45"); - } - - if(this.type == UpgradeType.AFTERBURN) { - list.add(EnumChatFormatting.RED + "Turbofan:"); - list.add("Production x" + (this.tier + 1) + " / Consumption x" + (this.tier + 2)); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Afterburn +" + (this.tier * 3) + "s"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Burn " + (this.tier * 10) + "mB of gas for " + (this.tier * 50) + "HE/t"); - } - if(this == ModItems.upgrade_radius) { list.add(EnumChatFormatting.RED + "Forcefield Range Upgrade"); list.add("Radius +16 / Consumption +500"); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index e323183b7..8116119b3 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -41,6 +41,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; + import java.util.Random; import com.hbm.blocks.ModBlocks; @@ -90,6 +91,7 @@ import com.hbm.render.entity.mob.*; import com.hbm.render.entity.projectile.*; import com.hbm.render.entity.rocket.*; import com.hbm.render.item.*; +import com.hbm.render.item.ItemRenderMissileGeneric.RenderMissileType; import com.hbm.render.item.block.*; import com.hbm.render.item.weapon.*; import com.hbm.render.loader.HmfModelLoader; @@ -415,10 +417,36 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.cmb_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); MinecraftForgeClient.registerItemRenderer(ModItems.dnt_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); - /*for(ItemSwordMeteorite sword : ItemSwordMeteorite.swords) { - MinecraftForgeClient.registerItemRenderer(sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); - }*/ - + ItemRenderMissileGeneric.init(); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_taint, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_micro, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_bhole, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_schrabidium, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_emp, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_stealth, new ItemRenderMissileGeneric(RenderMissileType.TYPE_STEALTH)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_generic, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_incendiary, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_buster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_decoy, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_anti_ballistic, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ABM)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_incendiary_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_cluster_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_buster_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_emp_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_burst, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_inferno, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_rain, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_drill, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_volcano, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_endo, new ItemRenderMissileGeneric(RenderMissileType.TYPE_THERMAL)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_exo, new ItemRenderMissileGeneric(RenderMissileType.TYPE_THERMAL)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday, new ItemRenderMissileGeneric(RenderMissileType.TYPE_DOOMSDAY)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_carrier, new ItemRenderMissileGeneric(RenderMissileType.TYPE_CARRIER)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_shuttle, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ROBIN)); //test crap MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.test_bomb_advanced), new ItemRenderTestBombAdvanced()); diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java new file mode 100644 index 000000000..64763d78b --- /dev/null +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -0,0 +1,192 @@ +package com.hbm.render.item; + +import java.util.HashMap; +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.IModelCustom; + +public class ItemRenderMissileGeneric implements IItemRenderer { + + public static HashMap> renderers = new HashMap(); + + protected RenderMissileType type; + + public static enum RenderMissileType { + TYPE_TIER0, + TYPE_TIER1, + TYPE_TIER2, + TYPE_TIER3, + TYPE_STEALTH, + TYPE_ABM, + TYPE_NUCLEAR, + TYPE_THERMAL, + TYPE_DOOMSDAY, + TYPE_CARRIER, + TYPE_ROBIN + } + + public ItemRenderMissileGeneric(RenderMissileType type) { + this.type = type; + } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + Consumer renderer = renderers.get(new ComparableStack(item).makeSingular()); + if(renderer == null) return; + + GL11.glPushMatrix(); + + double guiScale = 1; + double guiOffset = 0; + + switch(this.type) { + case TYPE_TIER0: guiScale = 2.25D; guiOffset = 7.5D; break; + case TYPE_TIER1: guiScale = 2.5D; guiOffset = 8.5D; break; + case TYPE_TIER2: guiScale = 2D; guiOffset = 6.5D; break; + case TYPE_TIER3: guiScale = 1.25D; guiOffset = 1D; break; + case TYPE_STEALTH: guiScale = 1.75D; guiOffset = 4.75D; break; + case TYPE_ABM: guiScale = 2.25D; guiOffset = 7D; break; + case TYPE_NUCLEAR: guiScale = 1.75D; guiOffset = 4D; break; + case TYPE_THERMAL: guiScale = 1.75D; guiOffset = 4.5D; break; + case TYPE_DOOMSDAY: guiScale = 1.5D; guiOffset = 3D; break; + case TYPE_CARRIER: guiScale = 0.625D; guiOffset = -17D; break; + case TYPE_ROBIN: guiScale = 1.25D; guiOffset = 2D; break; + } + + switch(type) { + case EQUIPPED: + double s = 0.15; + GL11.glTranslated(0.5, -0.25, 0); + GL11.glScaled(s, s, s); + break; + case EQUIPPED_FIRST_PERSON: + double heldScale = 0.1; + GL11.glTranslated(0.5, 0.25, 0); + GL11.glScaled(heldScale, heldScale, heldScale); + break; + case ENTITY: + double s2 = 0.15; + GL11.glScaled(s2, s2, s2); + break; + case INVENTORY: + RenderHelper.enableGUIStandardItemLighting(); + GL11.glScaled(guiScale, guiScale, guiScale); + GL11.glRotated(135, 0, 0, 1); + GL11.glRotatef(System.currentTimeMillis() / 15 % 360, 0, 1, 0); + GL11.glTranslated(0, -16 + guiOffset, 0); + break; + default: break; + } + + GL11.glDisable(GL11.GL_CULL_FACE); + renderer.accept(Minecraft.getMinecraft().renderEngine); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + public static Consumer generateStandard(ResourceLocation texture, IModelCustom model) { return generateWithScale(texture, model, 1F); } + public static Consumer generateLarge(ResourceLocation texture, IModelCustom model) { return generateWithScale(texture, model, 1.5F); } + public static Consumer generateDouble(ResourceLocation texture, IModelCustom model) { return generateWithScale(texture, model, 2F); } + + public static Consumer generateWithScale(ResourceLocation texture, IModelCustom model, float scale) { + return x -> { + GL11.glScalef(scale, scale, scale); + GL11.glShadeModel(GL11.GL_SMOOTH); + x.bindTexture(texture); model.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }; + } + + public static void init() { + + renderers.put(new ComparableStack(ModItems.missile_taint), generateDouble(ResourceManager.missileTaint_tex, ResourceManager.missileTaint)); + renderers.put(new ComparableStack(ModItems.missile_micro), generateDouble(ResourceManager.missileMicro_tex, ResourceManager.missileTaint)); + renderers.put(new ComparableStack(ModItems.missile_bhole), generateDouble(ResourceManager.missileMicroBHole_tex, ResourceManager.missileTaint)); + renderers.put(new ComparableStack(ModItems.missile_schrabidium), generateDouble(ResourceManager.missileMicroSchrab_tex, ResourceManager.missileTaint)); + renderers.put(new ComparableStack(ModItems.missile_emp), generateDouble(ResourceManager.missileMicroEMP_tex, ResourceManager.missileTaint)); + + renderers.put(new ComparableStack(ModItems.missile_stealth), x -> { + GL11.glShadeModel(GL11.GL_SMOOTH); + x.bindTexture(ResourceManager.missileStealth_tex); ResourceManager.missileStealth.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }); + + renderers.put(new ComparableStack(ModItems.missile_generic), generateStandard(ResourceManager.missileV2_HE_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_incendiary), generateStandard(ResourceManager.missileV2_IN_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_cluster), generateStandard(ResourceManager.missileV2_CL_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_buster), generateStandard(ResourceManager.missileV2_BU_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_decoy), generateStandard(ResourceManager.missileV2_decoy_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_anti_ballistic), generateStandard(ResourceManager.missileAA_tex, ResourceManager.missileABM)); + + renderers.put(new ComparableStack(ModItems.missile_strong), generateLarge(ResourceManager.missileStrong_HE_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_incendiary_strong), generateLarge(ResourceManager.missileStrong_IN_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_cluster_strong), generateLarge(ResourceManager.missileStrong_CL_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_buster_strong), generateLarge(ResourceManager.missileStrong_BU_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_emp_strong), generateLarge(ResourceManager.missileStrong_EMP_tex, ResourceManager.missileStrong)); + + renderers.put(new ComparableStack(ModItems.missile_burst), generateStandard(ResourceManager.missileHuge_HE_tex, ResourceManager.missileHuge)); + renderers.put(new ComparableStack(ModItems.missile_inferno), generateStandard(ResourceManager.missileHuge_IN_tex, ResourceManager.missileHuge)); + renderers.put(new ComparableStack(ModItems.missile_rain), generateStandard(ResourceManager.missileHuge_CL_tex, ResourceManager.missileHuge)); + renderers.put(new ComparableStack(ModItems.missile_drill), generateStandard(ResourceManager.missileHuge_BU_tex, ResourceManager.missileHuge)); + + renderers.put(new ComparableStack(ModItems.missile_nuclear), generateLarge(ResourceManager.missileNuclear_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateLarge(ResourceManager.missileMIRV_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_volcano), generateLarge(ResourceManager.missileVolcano_tex, ResourceManager.missileNuclear)); + + renderers.put(new ComparableStack(ModItems.missile_endo), generateLarge(ResourceManager.missileEndo_tex, ResourceManager.missileThermo)); + renderers.put(new ComparableStack(ModItems.missile_exo), generateLarge(ResourceManager.missileExo_tex, ResourceManager.missileThermo)); + + renderers.put(new ComparableStack(ModItems.missile_doomsday), generateDouble(ResourceManager.missileDoomsday_tex, ResourceManager.missileDoomsday)); + + renderers.put(new ComparableStack(ModItems.missile_carrier), x -> { + GL11.glScalef(2F, 2F, 2F); + x.bindTexture(ResourceManager.missileCarrier_tex); + ResourceManager.missileCarrier.renderAll(); + GL11.glTranslated(0.0D, 0.5D, 0.0D); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + x.bindTexture(ResourceManager.missileBooster_tex); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(-2.5D, 0.0D, 0.0D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, -2.5D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + }); + + renderers.put(new ComparableStack(ModItems.missile_shuttle), generateStandard(ResourceManager.missileShuttle_tex, ResourceManager.missileShuttle)); + } +} diff --git a/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java b/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java index fa0dc5387..27834f8e0 100644 --- a/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java +++ b/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java @@ -6,10 +6,14 @@ import com.hbm.render.util.RenderItemStack; import com.hbm.render.util.RenderMiscEffects; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureUtil; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; import net.minecraftforge.client.IItemRenderer; public class ItemRendererMeteorSword implements IItemRenderer { @@ -17,16 +21,16 @@ public class ItemRendererMeteorSword implements IItemRenderer { float r; float g; float b; - + public ItemRendererMeteorSword(float r, float g, float b) { this.r = r; this.g = g; this.b = b; } - + @Override public boolean handleRenderType(ItemStack stack, ItemRenderType type) { - return type == ItemRenderType.INVENTORY; + return type != ItemRenderType.ENTITY; } @Override @@ -39,56 +43,138 @@ public class ItemRendererMeteorSword implements IItemRenderer { GL11.glPushMatrix(); RenderHelper.enableGUIStandardItemLighting(); - Minecraft mc = Minecraft.getMinecraft(); - RenderItemStack.renderItem.renderItemIntoGUI(mc.fontRenderer, mc.renderEngine, item, 0, 0); + switch(type) { - mc.renderEngine.bindTexture(RenderMiscEffects.glint); + case EQUIPPED_FIRST_PERSON: + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(-90, 0, 0, 1); + GL11.glTranslated(0.5, 0.5, 0); + GL11.glTranslated(-0.5, -0.5, 0); + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(-90, 0, 0, 1); + GL11.glTranslated(0.5, 0.5, 0); + GL11.glScaled(1.36 * 2, 1.36 * 2, 0.68 * 2); + GL11.glTranslated(-0.5, -0.5, 0.25); + break; + case EQUIPPED: + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(-90, 0, 0, 1); + GL11.glTranslated(0.2, 0.55, 0); + GL11.glRotated(45, 0, 0, 1); + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(-45, 0, 0, 1); + GL11.glScaled(1.7, 1.7, 0.85); + break; + case INVENTORY: + break; + + default: break; + } - GL11.glDepthFunc(GL11.GL_EQUAL); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDepthMask(false); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_BLEND); - - for (int j1 = 0; j1 < 2; ++j1) { - OpenGlHelper.glBlendFunc(772, 1, 0, 0); - float f = 0.00390625F; - float f1 = 0.00390625F; - float f2 = (float)(Minecraft.getSystemTime() % (long)(3000 + j1 * 1873)) / (3000.0F + (float)(j1 * 1873)) * 256.0F; - float f3 = 0.0F; - Tessellator tessellator = Tessellator.instance; - float f4 = 4.0F; + if(data.length > 1 && data[1] instanceof EntityLivingBase) { + EntityLivingBase entity = (EntityLivingBase) data[1]; + IIcon iicon = entity.getItemIcon(item, 0); - if (j1 == 1) - { - f4 = -1.0F; - } - - float in = 0.36F; - - GL11.glColor4f(r * in, g * in, b * in, 1.0F); - - int p_77018_2_ = 0; - int p_77018_4_ = 16; - int p_77018_3_ = 0; - int p_77018_5_ = 16; - int zLevel = 0; + if(iicon == null) { + return; + } - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV((double)(p_77018_2_ + 0), (double)(p_77018_3_ + p_77018_5_), (double)zLevel, (double)((f2 + (float)p_77018_5_ * f4) * f), (double)((f3 + (float)p_77018_5_) * f1)); - tessellator.addVertexWithUV((double)(p_77018_2_ + p_77018_4_), (double)(p_77018_3_ + p_77018_5_), (double)zLevel, (double)((f2 + (float)p_77018_4_ + (float)p_77018_5_ * f4) * f), (double)((f3 + (float)p_77018_5_) * f1)); - tessellator.addVertexWithUV((double)(p_77018_2_ + p_77018_4_), (double)(p_77018_3_ + 0), (double)zLevel, (double)((f2 + (float)p_77018_4_) * f), (double)((f3 + 0.0F) * f1)); - tessellator.addVertexWithUV((double)(p_77018_2_ + 0), (double)(p_77018_3_ + 0), (double)zLevel, (double)((f2 + 0.0F) * f), (double)((f3 + 0.0F) * f1)); - tessellator.draw(); - } + Minecraft.getMinecraft().getTextureManager().bindTexture(Minecraft.getMinecraft().getTextureManager().getResourceLocation(item.getItemSpriteNumber())); + TextureUtil.func_152777_a(false, false, 1.0F); + Tessellator tessellator = Tessellator.instance; + ItemRenderer.renderItemIn2D(tessellator, iicon.getMaxU(), iicon.getMinV(), iicon.getMinU(), iicon.getMaxV(), iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); + renderGlint3D(tessellator, 0.0625F); + } else { + RenderItemStack.renderItemStackNoEffect(0, 0, 0, item); + renderGlintFlat(); + } - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); } + + public void renderGlintFlat() { + + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(RenderMiscEffects.glint); + + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDepthMask(false); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + + for(int j1 = 0; j1 < 2; ++j1) { + OpenGlHelper.glBlendFunc(772, 1, 0, 0); + float scaleU = 0.00390625F; + float scaleV = 0.00390625F; + float anim = (float) (Minecraft.getSystemTime() % (long) (3000 + j1 * 1873)) / (3000.0F + (float) (j1 * 1873)) * 256.0F; + float offsetV = 0.0F; + Tessellator tessellator = Tessellator.instance; + float sizeMultU = 4.0F; + + if(j1 == 1) { + sizeMultU = -1.0F; + } + + float in = 0.36F; + GL11.glColor4f(r * in, g * in, b * in, 1.0F); + + int x = 0; + int sizeX = 16; + int y = 0; + int sizeY = 16; + int zLevel = 0; + + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(x + 0, y + sizeY, zLevel, (anim + sizeY * sizeMultU) * scaleU, (offsetV + sizeY) * scaleV); + tessellator.addVertexWithUV(x + sizeX, y + sizeY, zLevel, (anim + sizeX + sizeY * sizeMultU) * scaleU, (offsetV + sizeY) * scaleV); + tessellator.addVertexWithUV(x + sizeX, y + 0, zLevel, (anim + sizeX) * scaleU, (offsetV + 0.0F) * scaleV); + tessellator.addVertexWithUV(x + 0, y + 0, zLevel, (anim + 0.0F) * scaleU, (offsetV + 0.0F) * scaleV); + tessellator.draw(); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDepthMask(true); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthFunc(GL11.GL_LEQUAL); + } + + public void renderGlint3D(Tessellator tessellator, float depth) { + + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(RenderMiscEffects.glint); + + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + + float in = 0.36F; + GL11.glColor4f(r * in, g * in, b * in, 1.0F); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + + GL11.glPushMatrix(); + float scale = 0.125F; + GL11.glScalef(scale, scale, scale); + float offset = (float) (Minecraft.getSystemTime() % 3000L) / 3000.0F * 8.0F; + GL11.glTranslatef(offset, 0.0F, 0.0F); + GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, depth); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glScalef(scale, scale, scale); + offset = (float) (Minecraft.getSystemTime() % 4873L) / 4873.0F * 8.0F; + GL11.glTranslatef(-offset, 0.0F, 0.0F); + GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, depth); + GL11.glPopMatrix(); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthFunc(GL11.GL_LEQUAL); + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index f2b5f3cb8..fe97935ec 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -1,11 +1,15 @@ package com.hbm.render.tileentity; +import java.util.function.Consumer; + import org.lwjgl.opengl.GL11; -import com.hbm.items.ModItems; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderMissileGeneric; import com.hbm.tileentity.bomb.TileEntityLaunchPad; +import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -29,188 +33,8 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { if(toRender != null) { GL11.glTranslated(0, 1, 0); - - //TODO: add a registry for missile rendering to be reused here and for the entity renderer - if(toRender.getItem() == ModItems.missile_generic) { - bindTexture(ResourceManager.missileV2_HE_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileV2.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_decoy) { - bindTexture(ResourceManager.missileV2_decoy_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileV2.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_stealth) { - bindTexture(ResourceManager.missileStealth_tex); - ResourceManager.missileStealth.renderAll(); - } - if(toRender.getItem() == ModItems.missile_strong) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_HE_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileStrong.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_cluster) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_CL_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileV2.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_nuclear) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileNuclear_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(toRender.getItem() == ModItems.missile_incendiary) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_IN_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileV2.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_buster) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_BU_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileV2.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_incendiary_strong) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_IN_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileStrong.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_cluster_strong) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_CL_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileStrong.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_buster_strong) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_BU_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileStrong.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_burst) { - bindTexture(ResourceManager.missileHuge_HE_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileHuge.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_inferno) { - bindTexture(ResourceManager.missileHuge_IN_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileHuge.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_rain) { - bindTexture(ResourceManager.missileHuge_CL_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileHuge.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_drill) { - bindTexture(ResourceManager.missileHuge_BU_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileHuge.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_endo) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileEndo_tex); - ResourceManager.missileThermo.renderAll(); - } - if(toRender.getItem() == ModItems.missile_exo) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileExo_tex); - ResourceManager.missileThermo.renderAll(); - } - if(toRender.getItem() == ModItems.missile_nuclear_cluster) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileMIRV_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(toRender.getItem() == ModItems.missile_doomsday) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileDoomsday_tex); - ResourceManager.missileDoomsday.renderAll(); - } - if(toRender.getItem() == ModItems.missile_taint) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileTaint_tex); - ResourceManager.missileTaint.renderAll(); - } - if(toRender.getItem() == ModItems.missile_micro) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicro_tex); - ResourceManager.missileTaint.renderAll(); - } - if(toRender.getItem() == ModItems.missile_carrier) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileCarrier_tex); - ResourceManager.missileCarrier.renderAll(); - GL11.glTranslated(0.0D, 0.5D, 0.0D); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - bindTexture(ResourceManager.missileBooster_tex); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(-2.5D, 0.0D, 0.0D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, -2.5D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - } - if(toRender.getItem() == ModItems.missile_anti_ballistic) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileAA_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileABM.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_bhole) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroBHole_tex); - ResourceManager.missileTaint.renderAll(); - } - if(toRender.getItem() == ModItems.missile_schrabidium) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroSchrab_tex); - ResourceManager.missileTaint.renderAll(); - } - if(toRender.getItem() == ModItems.missile_emp) { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroEMP_tex); - ResourceManager.missileTaint.renderAll(); - } - if(toRender.getItem() == ModItems.missile_emp_strong) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_EMP_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileStrong.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(toRender.getItem() == ModItems.missile_volcano) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileVolcano_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(toRender.getItem() == ModItems.missile_shuttle) { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileShuttle_tex); - ResourceManager.missileShuttle.renderAll(); - } + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(toRender).makeSingular()); + renderer.accept(this.field_147501_a.field_147553_e); } } diff --git a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java index f1a420b5f..90a348e1c 100644 --- a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java +++ b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java @@ -22,8 +22,10 @@ public interface IUpgradeInfoProvider { public static final String KEY_ACID = "upgrade.acid"; public static final String KEY_BURN = "upgrade.burn"; public static final String KEY_CONSUMPTION = "upgrade.consumption"; + public static final String KEY_COOLANT_CONSUMPTION = "upgrade.coolantConsumption"; public static final String KEY_DELAY = "upgrade.delay"; public static final String KEY_EFFICIENCY = "upgrade.efficiency"; public static final String KEY_FORTUNE = "upgrade.fortune"; + public static final String KEY_OVERHEAT_CHANCE = "upgrade.overheatChance"; public static final String KEY_RANGE = "upgrade.range"; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 9d30a9f22..f5a489a8c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityBlackHole; import com.hbm.entity.logic.EntityBalefire; @@ -21,12 +22,15 @@ import com.hbm.inventory.gui.GUIMachineCyclotron; import com.hbm.inventory.recipes.CyclotronRecipes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IConditionalInvAccess; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; @@ -42,14 +46,15 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess { +public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000000; - public int consumption = 1000000; + public int consumption = 1_000_000; public boolean isOn; @@ -98,7 +103,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements if(isOn) { - int defConsumption = consumption - 100000 * getConsumption(); + int defConsumption = consumption - 100_000 * getConsumption(); if(canProcess() && power >= defConsumption) { @@ -111,14 +116,16 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements this.markDirty(); } + int safety = this.getSafety(); + if(coolant.getFill() > 0) { countdown = 0; - if(worldObj.rand.nextInt(3) == 0) + if(worldObj.rand.nextInt(3 * safety) == 0) coolant.setFill(coolant.getFill() - 1); - } else if(worldObj.rand.nextInt(this.getSafety()) == 0) { + } else if(worldObj.rand.nextInt(safety) == 0) { countdown++; @@ -576,4 +583,32 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements return new int[] {6, 7, 8}; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.EFFECT; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_cyclotron)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 10) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_COOLANT_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_OVERHEAT_CHANCE, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.EFFECT) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 87ba3eb7f..04064d367 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -852,7 +852,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_excavator)); if(type == UpgradeType.SPEED) { - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level / 2 + 1)) + "%")); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 200 / (level + 2)) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); } if(type == UpgradeType.POWER) { diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 1cb4290c0..1ab2a42b8 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5668,9 +5668,11 @@ turret.players=Target Players: %s upgrade.acid=Acid required %s upgrade.burn=Burn %smb/t for %sHE upgrade.consumption=Consumption %s +upgrade.coolantConsumption=Coolant Consumption %s upgrade.delay=Process time %s upgrade.efficiency=Efficiency %s upgrade.fortune=Fortune %s +upgrade.overheatChance=Overheat chance %s upgrade.range=Range %s upgrade.gui.title=§lAcceptable Upgrades:§r From e62955f667fe3fe780b615315105268677f2be71 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 15 Jan 2024 19:53:35 +0100 Subject: [PATCH 095/376] radar fixes --- changelog | 4 ++ gradle.properties | 2 +- .../java/com/hbm/inventory/gui/GUIFunnel.java | 28 +++++++++- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../render/tileentity/RenderRadarScreen.java | 5 +- .../machine/TileEntityMachineFunnel.java | 50 ++++++++++++++++-- .../machine/TileEntityMachineRadarLarge.java | 22 ++++++++ .../machine/TileEntityMachineRadarNT.java | 10 +--- .../machine/TileEntityMachineRadarScreen.java | 3 ++ .../textures/gui/processing/gui_funnel.png | Bin 1164 -> 1486 bytes 10 files changed, 108 insertions(+), 18 deletions(-) diff --git a/changelog b/changelog index 7293090d2..4ed8554c2 100644 --- a/changelog +++ b/changelog @@ -6,6 +6,7 @@ * Capacity can be changed by right-clicking if the pipette is empty ## Changed +* Updated russian localization * There is now a config option to disable the biome change caused by fallout. The config will also determine whether the biomes are registered at all, which prevents them from conflicting with other mods' biomes when disabled. * Chemical plants now have a timer that starts after loading/unloading fluids using item fluid containers from the input buffers, this creates a delay between switching from loading and unloading, making it possible to retrieve fluids using pipettes. * In addition to delaying overheats, efficiency upgrades now reduce the cyclotron's coolant demand @@ -13,6 +14,7 @@ * Meteorite swords now render their variant glint in first person view * Meteorite swords are now a lot larger, similar to most other NTM swords * Non-custom missile items now render in 3D +* Combinator funnels can now be configured whether to only do 3x3, 2x2 or both recipe types ## Fixed * Fixed trenchmaster armor not doing most of the armor calculation, making it the worst armor @@ -21,3 +23,5 @@ * Fixed fallout being able to replace bedrock * Fixed the upgrade info of the large mining drill being incorrect * Fixed cyclotron not having the new upgrade info tooltip +* Fixed the large radar not actually having a larger scan range +* Fixed radar blips going out of bounds when using a radar screen with a large radar or a radar with a different config diff --git a/gradle.properties b/gradle.properties index 1b2ab7ac0..963b4f95a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4844 +mod_build_number=4845 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/inventory/gui/GUIFunnel.java b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java index 1ee5069b3..817be3b10 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFunnel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java @@ -4,15 +4,18 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFunnel; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineFunnel; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; -public class GUIFunnel extends GuiContainer { +public class GUIFunnel extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_funnel.png"); private TileEntityMachineFunnel funnel; @@ -24,6 +27,25 @@ public class GUIFunnel extends GuiContainer { this.xSize = 176; this.ySize = 168; } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 159, guiTop + 73, 10, 10, mouseX, mouseY, "Mode: " + (funnel.mode == funnel.MODE_3x3 ? "3x3 only" : funnel.mode == funnel.MODE_2x2 ? "2x2 only" : "3x3 then 2x2")); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(this.checkClick(x, y, 159, 73, 10, 10)) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, funnel.xCoord, funnel.yCoord, funnel.zCoord)); + } + } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { @@ -38,5 +60,7 @@ public class GUIFunnel extends GuiContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + drawTexturedModalRect(guiLeft + 159, guiTop + 73, 176, funnel.mode * 10, 10, 10); } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 89362f753..df5d5a653 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4844)"; + public static final String VERSION = "1.0.27 BETA (4845)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java index 90130463e..5980da6a6 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java @@ -7,7 +7,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.gui.GUIMachineRadarNT; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; -import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; import api.hbm.entity.RadarEntry; @@ -71,8 +70,8 @@ public class RenderRadarScreen extends TileEntitySpecialRenderer implements IIte for(RadarEntry entry : screen.entries) { - double sX = (entry.posX - screen.refX) / ((double) TileEntityMachineRadarNT.radarRange + 1) * (0.875D); - double sZ = (entry.posZ - screen.refZ) / ((double) TileEntityMachineRadarNT.radarRange + 1) * (0.875D); + double sX = (entry.posX - screen.refX) / ((double) screen.range + 1) * (0.875D); + double sZ = (entry.posZ - screen.refZ) / ((double) screen.range + 1) * (0.875D); double size = 0.0625D; tess.addVertexWithUV(0.38, 1 - sZ + size, 0.5 - sX + size, 216D / 256D, (entry.blipLevel * 8F + 8F) / 256F); tess.addVertexWithUV(0.38, 1 - sZ + size, 0.5 - sX - size, 224D / 256D, (entry.blipLevel * 8F + 8F) / 256F); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java index ee40ccf8f..3a1933554 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerFunnel; import com.hbm.inventory.gui.GUIFunnel; import com.hbm.tileentity.IGUIProvider; @@ -8,6 +9,7 @@ import com.hbm.tileentity.machine.TileEntityMachineAutocrafter.InventoryCrafting import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -15,9 +17,15 @@ import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class TileEntityMachineFunnel extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityMachineFunnel extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { + + public int mode = 0; + public static final int MODE_ALL = 0; + public static final int MODE_3x3 = 1; + public static final int MODE_2x2 = 2; public TileEntityMachineFunnel() { super(18); @@ -37,9 +45,9 @@ public class TileEntityMachineFunnel extends TileEntityMachineBase implements IG if(slots[i] != null) { int stacksize = 9; - ItemStack compressed = slots[i].stackSize < 9 ? null : this.getFrom9(slots[i]); + ItemStack compressed = (mode == MODE_2x2 || slots[i].stackSize < 9) ? null : this.getFrom9(slots[i]); if(compressed == null) { - compressed = slots[i].stackSize < 4 ? null : this.getFrom4(slots[i]); + compressed = (mode == MODE_3x3 || slots[i].stackSize < 4) ? null : this.getFrom4(slots[i]); stacksize = 4; } @@ -54,8 +62,20 @@ public class TileEntityMachineFunnel extends TileEntityMachineBase implements IG } } } + + this.networkPackNT(15); } } + + @Override + public void serialize(ByteBuf buf) { + buf.writeInt(this.mode); + } + + @Override + public void deserialize(ByteBuf buf) { + this.mode = buf.readInt(); + } public int[] topAccess = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; public int[] bottomAccess = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17 }; @@ -104,6 +124,18 @@ public class TileEntityMachineFunnel extends TileEntityMachineBase implements IG } return null; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.mode = nbt.getInteger("mode"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("mode", mode); + } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -115,4 +147,16 @@ public class TileEntityMachineFunnel extends TileEntityMachineBase implements IG public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIFunnel(player.inventory, this); } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + this.mode++; + if(mode > 2) mode = 0; + this.markDirty(); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java index 4fd6d497b..79b60e6b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java @@ -1,12 +1,34 @@ package com.hbm.tileentity.machine; +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.lib.Library; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.util.fauxpointtwelve.DirPos; import net.minecraft.util.AxisAlignedBB; public class TileEntityMachineRadarLarge extends TileEntityMachineRadarNT { + public static int radarLargeRange = 3_000; + + @Override + public String getConfigName() { + return "radar_large"; + } + + @Override + public void readIfPresent(JsonObject obj) { + radarLargeRange = IConfigurableMachine.grab(obj, "I:radarLargeRange", radarLargeRange); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:radarLargeRange").value(radarLargeRange); + } + @Override public int getRange() { return radarLargeRange; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index ab8f13643..b29d37ea4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -81,7 +81,6 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public static int maxPower = 100_000; public static int consumption = 500; public static int radarRange = 1_000; - public static int radarLargeRange = 3_000; public static int radarBuffer = 30; public static int radarAltitude = 55; public static int chunkLoadCap = 10; @@ -102,7 +101,6 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); consumption = IConfigurableMachine.grab(obj, "L:consumption", consumption); radarRange = IConfigurableMachine.grab(obj, "I:radarRange", radarRange); - radarLargeRange = IConfigurableMachine.grab(obj, "I:radarLargeRange", radarLargeRange); radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer); radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude); chunkLoadCap = IConfigurableMachine.grab(obj, "I:chunkLoadCap", chunkLoadCap); @@ -114,7 +112,6 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I writer.name("L:powerCap").value(maxPower); writer.name("L:consumption").value(consumption); writer.name("I:radarRange").value(radarRange); - writer.name("I:radarLargeRange").value(radarLargeRange); writer.name("I:radarBuffer").value(radarBuffer); writer.name("I:radarAltitude").value(radarAltitude); writer.name("B:generateChunks").value(generateChunks); @@ -207,6 +204,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I screen.refX = xCoord; screen.refY = yCoord; screen.refZ = zCoord; + screen.range = this.getRange(); screen.linked = true; } } @@ -328,7 +326,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I if(this.power < consumption) return; this.power -= consumption; - int scan = this.scanRange(); + int scan = this.getRange(); RadarScanParams params = new RadarScanParams(this.scanMissiles, this.scanShells, this.scanPlayers, this.smartMode); @@ -394,10 +392,6 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I return 0; } - - protected int scanRange() { - return radarRange; - } @Override public void setPower(long i) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java index 663b6835a..ba08f0d82 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java @@ -21,6 +21,7 @@ public class TileEntityMachineRadarScreen extends TileEntity implements IBufPack public int refX; public int refY; public int refZ; + public int range; public boolean linked; @Override @@ -43,6 +44,7 @@ public class TileEntityMachineRadarScreen extends TileEntity implements IBufPack buf.writeInt(refX); buf.writeInt(refY); buf.writeInt(refZ); + buf.writeInt(range); buf.writeInt(entries.size()); for(RadarEntry entry : entries) entry.toBytes(buf); } @@ -53,6 +55,7 @@ public class TileEntityMachineRadarScreen extends TileEntity implements IBufPack refX = buf.readInt(); refY = buf.readInt(); refZ = buf.readInt(); + range = buf.readInt(); int count = buf.readInt(); this.entries.clear(); for(int i = 0; i < count; i++) { diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_funnel.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_funnel.png index 23f79d5049a806457297ce20f7eebfa8c03f68f8..2f4670d815c6ca5f19ed7351966cf3b21774c99b 100644 GIT binary patch literal 1486 zcmcIkdo0B5v!&32wH+7WNf+}k8Z~{ z+7ey6;GZR}A0DxK8g^(x!5U_~=C?i-U+-M=f3d%hf7L9_X1eN+J0EVB0g}fDA*r=FO zkQQRCjO2?G!XHlCzcZ6#`hJjOg5ejZ2p2gd$GR^&@tMZ+7)MJl%K&7oL>Dl2=GC|( zrklfkV)Zwz1;JcD&+MZ%Rf7{_BpF*oPRz~hO*I$^Rg}b?wy8>Kv8`mJu;TSuFCqBb^nG7x82^KhCg*bouLOYDQ6@ z)@M+&c#reQ|7W|+M6n*L?H!mOP}LiOVq-wuAV~(Alz}IucN6JggeKZmzJ_qiAjzhc zN~NHTy-4BhPN4wt`wiWiZddNr+~k}(Y(k$uCG^Ilh^St@;>T=0OVmvP}}7T zbY*IZX0H@UmFfzej^$woYH;>=D+alLVlKWuZ6)tMyViI%5>0k(rJKb zT|T$W_YZ`d?=o*)_-Wps1@RM=zsob$X)!h=FfkltVQAuHU=e2EP-77AVNjUC z;9vlk*n948+V#@a`3rJyOC7)1H}|OZ^wX(d`R>o=b+~$*d4t>i@1}i=Wv#o*YrIPB z^%zk#<1`f_VOA~YaC_U;?|)xOZ%l4a&RUfecJ$UIU6wd-lOjf|7s3gv#BV1Q}M~Z|1*Py?0d$XEpzVeYZiTFZ*=Yzc5aw|lOd$mh9Ub)ZTw@4TN^i59AEmfE`|vy*a-L>7|=Q2 zY#O%Zu73afs(I3JzT;1P9Q=;YY`9&>iN|Ni5tZ}p@qyUuYxgxO*WKSUxA<+0-t?>1 zHTh-?p`|O{cW$4&^KtU4-$a`RiS`XQKQr`wv;A0RRDQ!hIP|iKZ)j+}?4AcM3fAs7 zepV@6FyILdE!`Wp+U_6U<_W@$Z)EC@cRKw3D2FTcU=M~l94XH~Sib>kE#uq&*k!?A z3&9iT9+uDH*dqU)k)%L812*DtU79~jlX8*Lg)&4Wq}^vJ(b_Oq`Avb%)rb~1MuPTU#2rDZ#?T3t=|AL-qY33 JWt~$(69D_sk5d2u From 197b2837fb67ff3f7ba2e86ab221c65a347e8b7a Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 16 Jan 2024 07:42:34 +0100 Subject: [PATCH 096/376] =?UTF-8?q?CURSE=20OF=20RAH=20=F0=93=8E=A2?= =?UTF-8?q?=F0=93=85=B2=F0=93=82=8B=F0=93=8B=B4=F0=93=85=82=20=F0=93=85=B1?= =?UTF-8?q?=F0=93=86=91=20=F0=93=82=8B=F0=93=84=BF=F0=93=89=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hbm/render/tileentity/RenderLaunchPadTier1.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index fe97935ec..a7e1a1c49 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -34,7 +34,7 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { if(toRender != null) { GL11.glTranslated(0, 1, 0); Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(toRender).makeSingular()); - renderer.accept(this.field_147501_a.field_147553_e); + if(renderer != null) renderer.accept(this.field_147501_a.field_147553_e); } } From 6865f59519ded1d3bac1db0bbca3827879fa4947 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 16 Jan 2024 15:51:24 +0100 Subject: [PATCH 097/376] small foxes --- changelog | 28 ++----------------- .../hbm/entity/effect/EntityFalloutRain.java | 2 +- .../com/hbm/inventory/OreDictManager.java | 2 +- .../entity/rocket/RenderMissileNuclear.java | 1 + 4 files changed, 6 insertions(+), 27 deletions(-) diff --git a/changelog b/changelog index 4ed8554c2..0743f38db 100644 --- a/changelog +++ b/changelog @@ -1,27 +1,5 @@ -## Added -* Pipettes - * Precision tools for carrying small amounts of liquids - * Come in three variants, normal, boron (corrosion-resistant) and laboratory (smaller capacity, more precision) - * Unlike most fluid containers, can be partially filled - * Capacity can be changed by right-clicking if the pipette is empty - -## Changed -* Updated russian localization -* There is now a config option to disable the biome change caused by fallout. The config will also determine whether the biomes are registered at all, which prevents them from conflicting with other mods' biomes when disabled. -* Chemical plants now have a timer that starts after loading/unloading fluids using item fluid containers from the input buffers, this creates a delay between switching from loading and unloading, making it possible to retrieve fluids using pipettes. -* In addition to delaying overheats, efficiency upgrades now reduce the cyclotron's coolant demand -* Removed the tooltips from common upgrades, as the info was incomplete and outdated anyway -* Meteorite swords now render their variant glint in first person view -* Meteorite swords are now a lot larger, similar to most other NTM swords -* Non-custom missile items now render in 3D -* Combinator funnels can now be configured whether to only do 3x3, 2x2 or both recipe types ## Fixed -* Fixed trenchmaster armor not doing most of the armor calculation, making it the worst armor -* Fixed glowing mushrooms not being able to be bonemealed -* Fixed strand caster having one port that does not work with certain rotations -* Fixed fallout being able to replace bedrock -* Fixed the upgrade info of the large mining drill being incorrect -* Fixed cyclotron not having the new upgrade info tooltip -* Fixed the large radar not actually having a larger scan range -* Fixed radar blips going out of bounds when using a radar screen with a large radar or a radar with a different config +* Fixed sellafite emerald ore being oredicted as emerald dust +* Fixed fire replacing petrified wood, creating tons of dead trees with holes in them +* Fixed inconsistent scaling with nuclear missiles diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 2f59a0408..70ebac3dc 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -178,7 +178,7 @@ public class EntityFalloutRain extends Entity { } if(dist < 65 && b.isFlammable(worldObj, x, y, z, ForgeDirection.UP)) { - if(rand.nextInt(5) == 0) + if(rand.nextInt(5) == 0 && worldObj.getBlock(x, y + 1, z).isAir(worldObj, x, y + 1, z)) setBlock(x, y + 1, z, Blocks.fire); } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index a5ffef0e6..4995290e8 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -315,7 +315,7 @@ public class OreDictManager { LAPIS.dust(powder_lapis); NETHERQUARTZ.gem(Items.quartz).dust(powder_quartz).ore(Blocks.quartz_ore); DIAMOND.dust(powder_diamond).ore(gravel_diamond, ore_sellafield_diamond); - EMERALD.dust(powder_emerald, ore_sellafield_emerald); + EMERALD.dust(powder_emerald).ore(ore_sellafield_emerald); /* * RADIOACTIVE diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java index f69443b8f..9282833db 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java @@ -18,6 +18,7 @@ public class RenderMissileNuclear extends Render { GL11.glPushMatrix(); GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glScalef(1.5F, 1.5F, 1.5F); GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); From 2d80856d5f7eec4e900ac230bccc60e2c1445f29 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 17 Jan 2024 18:51:54 +0100 Subject: [PATCH 098/376] more foxes, somehow --- changelog | 3 +++ .../java/com/hbm/entity/effect/EntityFalloutRain.java | 2 +- .../java/com/hbm/inventory/fluid/tank/FluidTank.java | 6 +++++- src/main/java/com/hbm/items/ModItems.java | 10 ++++++++-- .../machine/TileEntityFoundryCastingBase.java | 1 - .../tileentity/machine/TileEntityMachineChemplant.java | 4 ++-- src/main/resources/assets/hbm/lang/en_US.lang | 8 ++++---- 7 files changed, 23 insertions(+), 11 deletions(-) diff --git a/changelog b/changelog index 0743f38db..22dc7d698 100644 --- a/changelog +++ b/changelog @@ -3,3 +3,6 @@ * Fixed sellafite emerald ore being oredicted as emerald dust * Fixed fire replacing petrified wood, creating tons of dead trees with holes in them * Fixed inconsistent scaling with nuclear missiles +* Fixed BFB rods being called ZFB in hot and depleted variants +* Fixed infinite water barrels voiding water completely after the chemplant's input buffer runs full, infinite barrels can no longer void water in chemplants +* Fixed fallout affecting things on Y:0 like bedrock ores and oil diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 70ebac3dc..40bae46eb 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -155,7 +155,7 @@ public class EntityFalloutRain extends Entity { int depth = 0; - for(int y = 255; y >= 0; y--) { + for(int y = 255; y >= 1; y--) { if(depth >= 3) return; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 4294759bb..508f94c01 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -1,7 +1,9 @@ package com.hbm.inventory.fluid.tank; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.lwjgl.opengl.GL11; @@ -15,6 +17,7 @@ import com.hbm.packet.TEFluidPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -22,8 +25,9 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; public class FluidTank { - + public static final List loadingHandlers = new ArrayList(); + public static final Set noDualUnload = new HashSet(); static { loadingHandlers.add(new FluidLoaderStandard()); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8141f5483..af65ba54f 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -9,6 +9,7 @@ import com.hbm.handler.WeaponAbility; import com.hbm.handler.guncfg.*; import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.Mats; import com.hbm.items.ItemAmmoEnums.*; @@ -3008,6 +3009,7 @@ public class ModItems { component_limiter = new Item().setUnlocalizedName("component_limiter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_limiter"); component_emitter = new Item().setUnlocalizedName("component_emitter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_emitter"); chlorine_pinwheel = new ItemInfiniteFluid(Fluids.CHLORINE, 1, 2).setUnlocalizedName("chlorine_pinwheel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chlorine_pinwheel"); + FluidTank.noDualUnload.add(chlorine_pinwheel); ring_starmetal = new Item().setUnlocalizedName("ring_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ring_starmetal"); flywheel_beryllium = new Item().setUnlocalizedName("flywheel_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flywheel_beryllium"); deuterium_filter = new Item().setUnlocalizedName("deuterium_filter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":deuterium_filter"); @@ -3238,8 +3240,6 @@ public class ModItems { singularity_spark = new ItemDrop().setUnlocalizedName("singularity_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_spark_alt"); pellet_antimatter = new ItemDrop().setUnlocalizedName("pellet_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":pellet_antimatter"); crystal_xen = new ItemDrop().setUnlocalizedName("crystal_xen").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":crystal_xen"); - inf_water = new ItemInfiniteFluid(Fluids.WATER, 50).setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water"); - inf_water_mk2 = new ItemInfiniteFluid(Fluids.WATER, 500).setUnlocalizedName("inf_water_mk2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water_mk2"); stamp_stone_flat = new ItemStamp(10, StampType.FLAT).setUnlocalizedName("stamp_stone_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_flat"); stamp_stone_plate = new ItemStamp(10, StampType.PLATE).setUnlocalizedName("stamp_stone_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_plate"); @@ -4658,7 +4658,13 @@ public class ModItems { pipette = new ItemPipette().setUnlocalizedName("pipette").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette"); pipette_boron = new ItemPipette().setUnlocalizedName("pipette_boron").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_boron"); pipette_laboratory = new ItemPipette().setUnlocalizedName("pipette_laboratory").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_laboratory"); + inf_water = new ItemInfiniteFluid(Fluids.WATER, 50).setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water"); + inf_water_mk2 = new ItemInfiniteFluid(Fluids.WATER, 500).setUnlocalizedName("inf_water_mk2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water_mk2"); + FluidTank.noDualUnload.add(fluid_barrel_infinite); + FluidTank.noDualUnload.add(inf_water); + FluidTank.noDualUnload.add(inf_water_mk2); + disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java index da2a8d8a5..a4645bade 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java @@ -7,7 +7,6 @@ import com.hbm.items.machine.ItemMold.Mold; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 110e79c9a..1c7fe4c47 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -109,8 +109,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(lsu0 >= fluidDelay && tanks[0].loadTank(17, 19, slots)) lsl0 = 0; if(lsu1 >= fluidDelay && tanks[1].loadTank(18, 20, slots)) lsl1 = 0; - if(lsl0 >= fluidDelay && slots[17] != null && slots[17].getItem() != ModItems.fluid_barrel_infinite) if(tanks[0].unloadTank(17, 19, slots)) lsu0 = 0; - if(lsl1 >= fluidDelay && slots[18] != null && slots[18].getItem() != ModItems.fluid_barrel_infinite) if(tanks[1].unloadTank(18, 20, slots)) lsu1 = 0; + if(lsl0 >= fluidDelay && slots[17] != null && !FluidTank.noDualUnload.contains(slots[17].getItem())) if(tanks[0].unloadTank(17, 19, slots)) lsu0 = 0; + if(lsl1 >= fluidDelay && slots[18] != null && !FluidTank.noDualUnload.contains(slots[18].getItem())) if(tanks[1].unloadTank(18, 20, slots)) lsu1 = 0; tanks[2].unloadTank(9, 11, slots); tanks[3].unloadTank(10, 12, slots); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 1ab2a42b8..2d45971c6 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3676,8 +3676,8 @@ item.pwr_fuel.men.name=MEN PWR Fuel Rod item.pwr_fuel.mep.name=MEP PWR Fuel Rod item.pwr_fuel.meu.name=MEU PWR Fuel Rod item.pwr_fuel.mox.name=MOX PWR Fuel Rod -item.pwr_fuel_depleted.bfb_am_mix.name=Depleted Fuel Grade Americium PWR ZFB Rod -item.pwr_fuel_depleted.bfb_pu241.name=Depleted Plutonium-241 PWR ZFB Rod +item.pwr_fuel_depleted.bfb_am_mix.name=Depleted Fuel Grade Americium PWR BFB Rod +item.pwr_fuel_depleted.bfb_pu241.name=Depleted Plutonium-241 PWR BFB Rod item.pwr_fuel_depleted.hea242.name=Depleted HEA-242 PWR Fuel Rod item.pwr_fuel_depleted.hen237.name=Depleted HEN-237 PWR Fuel Rod item.pwr_fuel_depleted.hep239.name=Depleted HEP-239 PWR Fuel Rod @@ -3691,8 +3691,8 @@ item.pwr_fuel_depleted.men.name=Depleted MEN PWR Fuel Rod item.pwr_fuel_depleted.mep.name=Depleted MEP PWR Fuel Rod item.pwr_fuel_depleted.meu.name=Depleted MEU PWR Fuel Rod item.pwr_fuel_depleted.mox.name=Depleted MOX PWR Fuel Rod -item.pwr_fuel_hot.bfb_am_mix.name=Hot Fuel Grade Americium PWR ZFB Rod -item.pwr_fuel_hot.bfb_pu241.name=Hot Plutonium-241 PWR ZFB Rod +item.pwr_fuel_hot.bfb_am_mix.name=Hot Fuel Grade Americium PWR BFB Rod +item.pwr_fuel_hot.bfb_pu241.name=Hot Plutonium-241 PWR BFB Rod item.pwr_fuel_hot.hea242.name=Hot HEA-242 PWR Fuel Rod item.pwr_fuel_hot.hen237.name=Hot HEN-237 PWR Fuel Rod item.pwr_fuel_hot.hep239.name=Hot HEP-239 PWR Fuel Rod From aa6d0708cd9e5e1476f74baa1ca82d8271a7a7c7 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 18 Jan 2024 21:37:22 +0100 Subject: [PATCH 099/376] silo hatch --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../hbm/blocks/generic/BlockDoorGeneric.java | 13 +- .../java/com/hbm/main/ResourceManager.java | 3 + .../java/com/hbm/tileentity/DoorDecl.java | 63 ++++ .../assets/hbm/models/doors/silo_hatch.obj | 344 ++++++++++++++++++ .../hbm/textures/models/doors/silo_hatch.png | Bin 0 -> 851 bytes 6 files changed, 423 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/doors/silo_hatch.obj create mode 100644 src/main/resources/assets/hbm/textures/models/doors/silo_hatch.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 923ba0029..31d8488d5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -602,6 +602,7 @@ public class ModBlocks { public static Block sliding_blast_door; public static Block fire_door; public static Block transition_seal; + public static Block silo_hatch; // 1.12.2 Doors public static Block secure_access_door; @@ -2115,6 +2116,7 @@ public class ModBlocks { sliding_blast_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDE_DOOR).setBlockName("sliding_blast_door").setHardness(10.0F).setResistance(750.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":sliding_blast_door"); fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); + silo_hatch = new BlockDoorGeneric(Material.iron, DoorDecl.SILO_HATCH).setBlockName("silo_hatch").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); secure_access_door = new BlockDoorGeneric(Material.iron, DoorDecl.SECURE_ACCESS_DOOR).setBlockName("secure_access_door").setHardness(20.0F).setResistance(2_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); large_vehicle_door = new BlockDoorGeneric(Material.iron, DoorDecl.LARGE_VEHICLE_DOOR).setBlockName("large_vehicle_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); qe_containment = new BlockDoorGeneric(Material.iron, DoorDecl.QE_CONTAINMENT).setBlockName("qe_containment").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3052,6 +3054,7 @@ public class ModBlocks { GameRegistry.registerBlock(blast_door, blast_door.getUnlocalizedName()); GameRegistry.registerBlock(fire_door, fire_door.getUnlocalizedName()); GameRegistry.registerBlock(transition_seal, transition_seal.getUnlocalizedName()); + GameRegistry.registerBlock(silo_hatch, silo_hatch.getUnlocalizedName()); GameRegistry.registerBlock(sliding_blast_door, sliding_blast_door.getUnlocalizedName()); //Doors diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index 5d44d76f0..841d834f9 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -43,7 +43,7 @@ public class BlockDoorGeneric extends BlockDummyable { @Override public int getOffset(){ - return 0; + return type.getBlockOffset(); } @Override @@ -80,8 +80,8 @@ public class BlockDoorGeneric extends BlockDummyable { Math.min(box.minX, box.maxX), Math.min(box.minY, box.maxY), Math.min(box.minZ, box.maxZ), Math.max(box.minX, box.maxX), Math.max(box.minY, box.maxY), Math.max(box.minZ, box.maxZ)); - if(box.minY == y && box.maxY == y) - return; + if(box.minY == y && box.maxY == y) return; + if(box.minX == box.maxX && box.minY == box.maxY && box.minZ == box.maxZ) return; if(box != null && box.intersectsWith(entityBox)) { collidingBoxes.add(box); @@ -91,6 +91,13 @@ public class BlockDoorGeneric extends BlockDummyable { // return; //super.addCollisionBoxesToList(worldIn, x, y, z, entityBox, collidingBoxes, entityIn); } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + AxisAlignedBB aabb = this.getBoundingBox(world, x, y, z); + if(aabb.minX == aabb.maxX && aabb.minY == aabb.maxY && aabb.minZ == aabb.maxZ) return null; + return aabb; + } @Override //should fix AI pathfinding public boolean getBlocksMovement(IBlockAccess world, int x, int y, int z) { //btw the method name is the exact opposite of that it's doing, check net.minecraft.pathfinding.PathNavigate#512 diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 0eeb22d63..599ccb1d2 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -349,6 +349,9 @@ public class ResourceManager { public static WavefrontObjDisplayList large_vehicle_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/large_vehicle_door.obj"))); public static final ResourceLocation qe_containment_decal = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment_decal.png"); + public static final ResourceLocation silo_hatch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch.png"); + public static WavefrontObjDisplayList silo_hatch = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch.obj"))); + //Lantern public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index 5f81ef8f5..c0fcadc02 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -862,6 +862,65 @@ public abstract class DoorDecl { }; + public static final DoorDecl SILO_HATCH = new DoorDecl() { + + @Override public String getOpenSoundEnd() { return "hbm:door.wgh_big_stop"; }; + @Override public String getOpenSoundLoop() { return "hbm:door.wgh_big_start"; }; + @Override public String getOpenSoundStart() { return null; }; + @Override public String getCloseSoundStart() { return null; }; + @Override public String getCloseSoundEnd() { return "hbm:door.wgh_big_stop"; }; + @Override public float getSoundVolume() { return 2; } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("Hatch".equals(partName)) { + set(trans, 0, 0.25F * Library.smoothstep(getNormTime(openTicks, 0, 10), 0, 1), 0); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + if("Hatch".equals(partName)) { + set(orig, 0F, 0.875F, -1.875F); + return; + } + set(orig, 0, 0, 0); + super.getOrigin(partName, orig); + }; + + @Override + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + if("Hatch".equals(partName)) { + set(rot, Library.smoothstep(getNormTime(openTicks, 20, 100), 0, 1) * -240, 0, 0); + return; + } + super.getRotation(partName, openTicks, rot); + }; + + @Override + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return true; + }; + + @Override public int timeToOpen() { return 60; }; + @Override public int[][] getDoorOpenRanges() { return new int[][] { { 1, 0, 1, -3, 3, 0 }, { 0, 0, 1, -3, 3, 0 }, { -1, 0, 1, -3, 3, 0 } }; } + @Override public float getDoorRangeOpenTime(int ticks, int idx) { return getNormTime(ticks, 20, 20); }; + + + @Override public int getBlockOffset() { return 2; } + @Override public int[] getDimensions() { return new int[] { 0, 0, 2, 2, 2, 2 }; } + @Override @SideOnly(Side.CLIENT) public ResourceLocation getTextureForPart(String partName) { return ResourceManager.silo_hatch_tex; } + @Override public ResourceLocation getTextureForPart(int skinIndex, String partName) { return ResourceManager.silo_hatch_tex; } + @Override @SideOnly(Side.CLIENT) public WavefrontObjDisplayList getModel() { return ResourceManager.silo_hatch; } + + }; + public static final DoorDecl LARGE_VEHICLE_DOOR = new DoorDecl() { @Override @@ -948,6 +1007,10 @@ public abstract class DoorDecl { public abstract int[][] getDoorOpenRanges(); public abstract int[] getDimensions(); + + public int getBlockOffset() { + return 0; + } public float getDoorRangeOpenTime(int ticks, int idx) { return getNormTime(ticks); diff --git a/src/main/resources/assets/hbm/models/doors/silo_hatch.obj b/src/main/resources/assets/hbm/models/doors/silo_hatch.obj new file mode 100644 index 000000000..e500f7adf --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/silo_hatch.obj @@ -0,0 +1,344 @@ +# Blender v2.79 (sub 0) OBJ File: 'silo_hatch.blend' +# www.blender.org +o Hatch +v -1.750000 0.750000 1.750000 +v 1.750000 0.750000 1.750000 +v -1.750000 0.750000 -1.750000 +v 1.750000 0.750000 -1.750000 +v -1.750000 1.000000 -1.750000 +v -1.750000 1.000000 1.750000 +v 1.750000 1.000000 1.750000 +v 1.750000 1.000000 -1.750000 +v -1.500000 0.750000 -1.500000 +v -1.500000 0.750000 1.500000 +v 1.500000 0.750000 1.500000 +v 1.500000 0.750000 -1.500000 +v -1.500000 0.500000 -1.500000 +v -1.500000 0.500000 1.500000 +v 1.500000 0.500000 1.500000 +v 1.500000 0.500000 -1.500000 +v -1.000000 0.750000 -1.500000 +v 1.000000 0.750000 -1.500000 +v -1.000000 0.750000 -2.000000 +v 1.000000 0.750000 -2.000000 +v -1.000000 0.500000 -2.000000 +v -1.000000 0.500000 -1.500000 +v 1.000000 0.500000 -1.500000 +v 1.000000 0.500000 -2.000000 +vt 0.588235 0.333333 +vt 0.970588 0.309524 +vt 1.000000 0.333333 +vt 1.000000 0.357143 +vt 0.588235 0.690476 +vt 0.588235 0.357143 +vt 1.000000 0.333333 +vt 0.588235 0.357143 +vt 0.588235 0.333333 +vt 1.000000 0.333333 +vt 0.588235 0.357143 +vt 0.588235 0.333333 +vt 1.000000 0.333333 +vt 0.588235 0.357143 +vt 0.588235 0.333333 +vt 0.970588 0.309524 +vt 0.970588 0.309524 +vt 0.970588 0.309524 +vt 0.617647 0.309524 +vt 0.970588 0.285714 +vt 0.617647 0.309524 +vt 0.970588 0.285714 +vt 0.617647 0.309524 +vt 0.970588 0.285714 +vt 0.617647 0.309524 +vt 0.970588 0.285714 +vt 0.970588 0.000000 +vt 0.617647 0.285714 +vt 0.617647 -0.000000 +vt 0.852941 0.809524 +vt 0.617647 0.761905 +vt 0.852941 0.761905 +vt 0.617647 0.738095 +vt 0.852941 0.690476 +vt 0.852941 0.738095 +vt 0.558824 0.761905 +vt 0.911765 0.738095 +vt 0.911765 0.761905 +vt 1.000000 0.690476 +vt 1.000000 0.357143 +vt 1.000000 0.357143 +vt 1.000000 0.357143 +vt 0.617647 0.285714 +vt 0.617647 0.285714 +vt 0.617647 0.285714 +vt 0.617647 0.809524 +vt 0.617647 0.690476 +vt 0.558824 0.738095 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 1/1/1 11/2/1 2/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/3/4 6/6/4 1/1/4 +f 4/10/5 7/11/5 2/12/5 +f 1/13/6 5/14/6 3/15/6 +f 2/12/1 12/16/1 4/10/1 +f 4/9/1 9/17/1 3/7/1 +f 3/15/1 10/18/1 1/13/1 +f 11/19/5 16/20/5 12/16/5 +f 9/21/6 14/22/6 10/18/6 +f 12/23/3 13/24/3 9/17/3 +f 10/25/4 15/26/4 11/2/4 +f 16/27/1 14/28/1 13/29/1 +f 17/30/2 20/31/2 19/32/2 +f 24/33/1 22/34/1 21/35/1 +f 18/36/5 24/33/5 20/31/5 +f 20/31/3 21/35/3 19/32/3 +f 19/32/6 22/37/6 17/38/6 +f 1/1/1 10/25/1 11/2/1 +f 7/4/2 8/39/2 5/5/2 +f 3/7/3 5/40/3 8/8/3 +f 2/3/4 7/4/4 6/6/4 +f 4/10/5 8/41/5 7/11/5 +f 1/13/6 6/42/6 5/14/6 +f 2/12/1 11/19/1 12/16/1 +f 4/9/1 12/23/1 9/17/1 +f 3/15/1 9/21/1 10/18/1 +f 11/19/5 15/43/5 16/20/5 +f 9/21/6 13/44/6 14/22/6 +f 12/23/3 16/45/3 13/24/3 +f 10/25/4 14/28/4 15/26/4 +f 16/27/1 15/26/1 14/28/1 +f 17/30/2 18/46/2 20/31/2 +f 24/33/1 23/47/1 22/34/1 +f 18/36/5 23/48/5 24/33/5 +f 20/31/3 24/33/3 21/35/3 +f 19/32/6 21/35/6 22/37/6 +o Frame +v -2.500000 0.000000 2.500000 +v 2.500000 0.000000 2.500000 +v -2.500000 0.000000 -2.500000 +v 2.500000 0.000000 -2.500000 +v -2.500000 0.250000 2.500000 +v 2.500000 0.250000 2.500000 +v -2.500000 0.250000 -2.500000 +v 2.500000 0.250000 -2.500000 +v -2.250000 1.000000 2.250000 +v 2.250000 1.000000 2.250000 +v -2.250000 1.000000 -2.250000 +v 2.250000 1.000000 -2.250000 +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 0.750000 -1.500000 +v -1.500000 0.750000 1.500000 +v 1.500000 0.750000 1.500000 +v 1.500000 0.750000 -1.500000 +v -1.750000 0.750000 1.750000 +v 1.750000 0.750000 1.750000 +v -1.750000 0.750000 -1.750000 +v 1.750000 0.750000 -1.750000 +v -1.750000 1.000000 1.750000 +v 1.750000 1.000000 1.750000 +v -1.750000 1.000000 -1.750000 +v 1.750000 1.000000 -1.750000 +v -1.000000 0.750000 -1.750000 +v 1.000000 0.750000 -1.750000 +v 1.000000 0.500000 -1.500000 +v -1.000000 0.500000 -1.500000 +v -1.000000 1.000000 -1.750000 +v 1.000000 1.000000 -1.750000 +v -1.000000 1.000000 -2.000000 +v 1.000000 1.000000 -2.000000 +v -1.000000 0.500000 -2.000000 +v 1.000000 0.500000 -2.000000 +v -1.000000 0.750000 -1.500000 +v 1.000000 0.750000 -1.500000 +vt 0.117647 0.761905 +vt 0.470588 0.761905 +vt 0.176471 0.809524 +vt 0.588235 0.500000 +vt 0.029412 0.571429 +vt -0.000000 0.500000 +vt 0.588235 0.476190 +vt 0.000000 0.500000 +vt 0.000000 0.476190 +vt 0.588235 0.476190 +vt -0.000000 0.476190 +vt 0.588235 0.476190 +vt -0.000000 0.500000 +vt -0.000000 0.476190 +vt 0.588235 0.476190 +vt -0.000000 0.500000 +vt -0.000000 0.476190 +vt 0.470588 0.380952 +vt 0.588235 0.500000 +vt 0.029412 0.571429 +vt 0.588235 0.500000 +vt 0.029412 0.571429 +vt 0.588235 0.500000 +vt 0.029412 0.571429 +vt 0.000000 0.000000 +vt 0.117647 0.380952 +vt 0.470588 0.833333 +vt 0.117647 0.761905 +vt 0.470588 0.761905 +vt 0.470588 0.833333 +vt 0.117647 0.761905 +vt 0.470588 0.761905 +vt 0.470588 0.833333 +vt 0.117647 0.761905 +vt 0.470588 0.761905 +vt 0.470588 0.095238 +vt 0.588235 0.000000 +vt 0.117647 0.095238 +vt 0.088235 0.857143 +vt 0.117647 0.833333 +vt 0.088235 0.857143 +vt 0.117647 0.833333 +vt 0.176471 0.857143 +vt 0.117647 0.833333 +vt 0.176471 0.833333 +vt 0.088235 0.857143 +vt 0.117647 0.833333 +vt 0.500000 0.857143 +vt 0.088235 0.880952 +vt 0.500000 0.857143 +vt 0.088235 0.880952 +vt 0.500000 0.857143 +vt 0.088235 0.880952 +vt 0.500000 0.619048 +vt 0.558824 0.571429 +vt 0.500000 0.952381 +vt 0.558824 1.000000 +vt 0.176471 0.928571 +vt 0.411765 0.976190 +vt 0.176471 0.976190 +vt 0.088235 0.619048 +vt 0.029412 1.000000 +vt 0.176471 0.880952 +vt 0.411765 0.928571 +vt 0.117647 0.928571 +vt 0.117647 0.904762 +vt 0.147059 0.904762 +vt 0.176471 0.880952 +vt 0.088235 0.857143 +vt 0.500000 0.857143 +vt 0.411765 0.880952 +vt 0.411765 0.857143 +vt 0.470588 0.833333 +vt 0.411765 0.833333 +vt 0.441176 0.904762 +vt 0.470588 0.928571 +vt 0.411765 0.809524 +vt 0.558824 0.571429 +vt 0.558824 0.571429 +vt 0.558824 0.571429 +vt 0.500000 0.880952 +vt 0.500000 0.880952 +vt 0.500000 0.880952 +vt 0.088235 0.952381 +vt 0.411765 0.880952 +vt 0.147059 0.880952 +vt 0.088235 0.880952 +vt 0.500000 0.880952 +vt 0.176471 0.952381 +vt 0.411765 0.952381 +vt 0.441176 0.880952 +vt 0.470588 0.904762 +vn 0.0000 0.0000 1.0000 +vn 0.9487 0.3162 0.0000 +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.9487 0.3162 0.0000 +vn 0.0000 0.3162 -0.9487 +vn 0.0000 0.3162 0.9487 +vn 0.0000 1.0000 0.0000 +s off +f 39/49/7 40/50/7 56/51/7 +f 32/52/8 34/53/8 30/54/8 +f 26/55/7 29/56/7 25/57/7 +f 28/58/9 30/54/9 26/59/9 +f 25/60/10 31/61/10 27/62/10 +f 27/63/11 32/64/11 28/65/11 +f 25/57/12 38/66/12 26/55/12 +f 29/67/13 35/68/13 31/61/13 +f 31/69/14 36/70/14 32/64/14 +f 30/71/15 33/72/15 29/56/15 +f 27/73/12 37/74/12 25/57/12 +f 42/75/11 38/76/11 37/77/11 +f 43/78/10 40/79/10 38/80/10 +f 41/81/9 37/82/9 39/83/9 +f 26/55/12 40/84/12 28/85/12 +f 28/85/12 39/86/12 27/73/12 +f 42/75/16 46/87/16 43/88/16 +f 43/78/16 48/89/16 44/90/16 +f 53/91/16 41/92/16 63/93/16 +f 41/81/16 45/94/16 42/95/16 +f 45/96/11 50/97/11 46/87/11 +f 46/98/10 52/99/10 48/89/10 +f 47/100/9 49/101/9 45/94/9 +f 50/102/16 33/72/16 34/103/16 +f 52/104/16 34/103/16 36/105/16 +f 61/106/7 60/107/7 59/108/7 +f 49/109/16 35/110/16 33/72/16 +f 56/111/16 62/112/16 61/106/16 +f 59/113/9 57/114/9 53/115/9 +f 57/116/7 47/117/7 53/91/7 +f 48/118/7 58/119/7 54/120/7 +f 35/110/16 60/107/16 36/105/16 +f 44/121/16 54/120/16 64/122/16 +f 54/123/10 60/124/10 62/112/10 +f 63/93/7 41/92/7 56/51/7 +f 41/92/7 39/49/7 56/51/7 +f 40/50/7 44/121/7 55/125/7 +f 44/121/7 64/122/7 55/125/7 +f 40/50/7 55/125/7 56/51/7 +f 32/52/8 36/126/8 34/53/8 +f 26/55/7 30/71/7 29/56/7 +f 28/58/9 32/52/9 30/54/9 +f 25/60/10 29/67/10 31/61/10 +f 27/63/11 31/69/11 32/64/11 +f 25/57/12 37/74/12 38/66/12 +f 29/67/13 33/127/13 35/68/13 +f 31/69/14 35/128/14 36/70/14 +f 30/71/15 34/103/15 33/72/15 +f 27/73/12 39/86/12 37/74/12 +f 42/75/11 43/88/11 38/76/11 +f 43/78/10 44/90/10 40/79/10 +f 41/81/9 42/95/9 37/82/9 +f 26/55/12 38/66/12 40/84/12 +f 28/85/12 40/84/12 39/86/12 +f 42/75/16 45/96/16 46/87/16 +f 43/78/16 46/98/16 48/89/16 +f 53/91/16 47/117/16 41/92/16 +f 41/81/16 47/100/16 45/94/16 +f 45/96/11 49/129/11 50/97/11 +f 46/98/10 50/130/10 52/99/10 +f 47/100/9 51/131/9 49/101/9 +f 50/102/16 49/109/16 33/72/16 +f 52/104/16 50/102/16 34/103/16 +f 61/106/7 62/112/7 60/107/7 +f 49/109/16 51/132/16 35/110/16 +f 56/111/16 55/133/16 62/112/16 +f 63/134/9 56/111/9 53/115/9 +f 56/111/9 61/106/9 53/115/9 +f 61/106/9 59/113/9 53/115/9 +f 57/116/7 51/135/7 47/117/7 +f 48/118/7 52/136/7 58/119/7 +f 35/110/16 51/132/16 59/108/16 +f 51/132/16 57/137/16 59/108/16 +f 58/138/16 52/104/16 60/107/16 +f 52/104/16 36/105/16 60/107/16 +f 35/110/16 59/108/16 60/107/16 +f 44/121/16 48/118/16 54/120/16 +f 55/133/10 64/139/10 54/123/10 +f 54/123/10 58/140/10 60/124/10 +f 62/112/10 55/133/10 54/123/10 diff --git a/src/main/resources/assets/hbm/textures/models/doors/silo_hatch.png b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch.png new file mode 100644 index 0000000000000000000000000000000000000000..226f0c34d26c415c67e70f3f8eb974c19288e945 GIT binary patch literal 851 zcmeAS@N?(olHy`uVBq!ia0vp^9YDN-gAGVpi!Dn5QY^(zo*^7SP{WY|lw{`eba4!+ znDh4T!Ks(SBpL!U`Fba~I%zI!2}$%p`}qtN<>+1IoZPlAYo1Sk zcG6g`oqKtrMf^YM|J8DBg|AKjc=<=`H~dx;nB?G*pI6)P^77jLf~P;;Z?pZk*x1p7 zNs+U~_&V()VRw-#rzh z#^I@;(l|lPzB%UJ;q`YvZ+|v3Sxy+J9%#Y+yZ!6;cK`TYvisHh9mH$N=mXxl!Y==Bfwot>u;KkxhR3EQ3*SFa7foAj+h@q2||cEwlY6Z7<5%sZEw z+da?m-`)-7f8RZoDm1Y_I)TMWh~wq6{j;kro`2qUKIQR_SH@F0fns3CfFwN?mK^=9 z&|W>gFn50Pth%#Sbx&^nN_#hX2FSH6PM`GB)@6S$c%Nh;1meOqZsOl`;r7EXMfa2E zY>PY*zC84Mq7TTypnw7U35jvGPW*9oYX4D4_`nri>aLw|*Xr>uLbas3QP^Ouq-ftB3uJIX+Tx#YdwWUJf_9Pg$>{Ild^ zO@sW^yqDV_Zuu&dcM8oixUF!;rAP1ANX!4pPyJ!z1C7xwKa5wp*Rxgb|LiUSjT&GC zRJ{D${J-q8y!dN#N3mZPJ^X(s#M$vZ)|epr#&FXAbDj#?H-lB~&jb2q>iPfYAO5)@ ztvr3 Date: Thu, 18 Jan 2024 17:57:42 -0500 Subject: [PATCH 100/376] augh. --- .../hbm/tileentity/machine/TileEntityMachineStrandCaster.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 62f04d8e4..7bbecbc4d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -67,7 +67,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase if (this.amount >= this.getCapacity()) { //In case of overfill problems, spit out the excess as scrap if (amount > getCapacity()) { - ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, amount)); + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, Math.max(amount - getCapacity(), amount))); EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord + 2, zCoord + 0.5, scrap); worldObj.spawnEntityInWorld(item); } From 3b83ac077ec278d053a80a9636424b926494c7a1 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 18 Jan 2024 18:01:55 -0500 Subject: [PATCH 101/376] Merge branch 'master' into roundtwo From 801c2155c7727e0f152b58b554398ec35b3a589f Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 18 Jan 2024 18:10:35 -0500 Subject: [PATCH 102/376] FUCK --- .../hbm/tileentity/machine/TileEntityMachineStrandCaster.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 8a1be5c06..3e78fb541 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -66,7 +66,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase if (this.amount >= this.getCapacity()) { //In case of overfill problems, spit out the excess as scrap if (amount > getCapacity()) { - ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, Math.max(amount - getCapacity(), amount))); + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, Math.max(amount - getCapacity(), 0))); EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord + 2, zCoord + 0.5, scrap); worldObj.spawnEntityInWorld(item); } From a21955eefdbd59e9ff81b2ea4c038d645127506c Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 19 Jan 2024 11:14:25 +0100 Subject: [PATCH 103/376] silo hatch texture, door recipe changes --- changelog | 9 +++++++++ .../inventory/recipes/AssemblerRecipes.java | 15 ++++++++------- src/main/java/com/hbm/items/ModItems.java | 3 +++ .../java/com/hbm/items/tool/ItemBoltgun.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 3 ++- .../hbm/render/item/ItemRenderLibrary.java | 17 +++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 3 +++ src/main/resources/assets/hbm/lang/en_US.lang | 3 +++ .../assets/hbm/textures/items/bolt_spike.png | Bin 0 -> 224 bytes .../hbm/textures/models/doors/silo_hatch.png | Bin 851 -> 10594 bytes .../textures/models/doors/silo_hatch_base.png | Bin 0 -> 1347 bytes 11 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/bolt_spike.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/silo_hatch_base.png diff --git a/changelog b/changelog index 22dc7d698..f0a283661 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,11 @@ +## Added +* Silo hatch + * The final missing door from 1.12, remade from scratch + * Comes with a brand-new model that fits perfectly over 3x3 missile launch tubes + * Has a 5x5 frame + +## Changed +* Simplified door recipes ## Fixed * Fixed sellafite emerald ore being oredicted as emerald dust @@ -6,3 +14,4 @@ * Fixed BFB rods being called ZFB in hot and depleted variants * Fixed infinite water barrels voiding water completely after the chemplant's input buffer runs full, infinite barrels can no longer void water in chemplants * Fixed fallout affecting things on Y:0 like bedrock ores and oil +* Fixed projectiles not being able to pass through open doors diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 547df6609..f66125e0b 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1212,13 +1212,14 @@ public class AssemblerRecipes { new OreDictStack(DURA.bolt(), 16), new ComparableStack(ModItems.motor, 2) }, 200); - makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 36), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 4), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 500); - makeRecipe(new ComparableStack(ModBlocks.water_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeRed", 1)}, 500); - makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plate(), 24), new OreDictStack("plateAdvancedAlloy", 8), new ComparableStack(ModItems.plate_polymer, 8), new OreDictStack("blockSteel", 2), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeBlack", 4)}, 500); - makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); - makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 32), new OreDictStack("plateAdvancedAlloy", 12), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 6), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 500); - makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 48), new OreDictStack("plateAdvancedAlloy", 16), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 1000); - makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 500); + makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 16), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 400); + makeRecipe(new ComparableStack(ModBlocks.water_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 16), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeRed", 1)}, 200); + makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeBlack", 4)}, 400); + makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); + makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 400); + makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 4000); + makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 200); + makeRecipe(new ComparableStack(ModBlocks.silo_hatch, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 4)}, 200); if(Loader.isModLoaded("Mekanism")) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index af65ba54f..a640258bd 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -330,6 +330,7 @@ public class ModItems { public static Item plate_dalekanium; public static Item plate_euphemium; public static Item bolt; + public static Item bolt_spike; public static Item bolt_compound; public static Item plate_polymer; public static Item plate_kevlar; @@ -2602,6 +2603,7 @@ public class ModItems { plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium"); plate_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium"); bolt = new ItemAutogen(MaterialShapes.BOLT).setUnlocalizedName("bolt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt"); + bolt_spike = new ItemCustomLore().setUnlocalizedName("bolt_spike").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_spike"); bolt_compound = new Item().setUnlocalizedName("bolt_compound").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_compound"); plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_polymer"); plate_kevlar = new Item().setUnlocalizedName("plate_kevlar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_kevlar"); @@ -6058,6 +6060,7 @@ public class ModItems { //Bolts GameRegistry.registerItem(bolt, bolt.getUnlocalizedName()); + GameRegistry.registerItem(bolt_spike, bolt_spike.getUnlocalizedName()); GameRegistry.registerItem(bolt_compound, bolt_compound.getUnlocalizedName()); //Cloth diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index 437aa97e2..b0d216289 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -50,7 +50,7 @@ public class ItemBoltgun extends Item implements IAnimatedItem { World world = player.worldObj; if(!entity.isEntityAlive()) return false; - ItemStack[] bolts = new ItemStack[] { Mats.MAT_STEEL.make(ModItems.bolt), Mats.MAT_TUNGSTEN.make(ModItems.bolt), Mats.MAT_DURA.make(ModItems.bolt)}; + ItemStack[] bolts = new ItemStack[] { new ItemStack(ModItems.bolt_spike), Mats.MAT_STEEL.make(ModItems.bolt), Mats.MAT_TUNGSTEN.make(ModItems.bolt), Mats.MAT_DURA.make(ModItems.bolt)}; for(ItemStack bolt : bolts) { for(int i = 0; i < player.inventory.getSizeInventory(); i++) { diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index b4fb99e14..b22fa676f 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -96,6 +96,7 @@ public class CraftingManager { addRecipeAuto(Mats.MAT_TUNGSTEN.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', W.ingot()}); addRecipeAuto(Mats.MAT_STEEL.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', STEEL.ingot()}); addRecipeAuto(Mats.MAT_DURA.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', DURA.ingot()}); + addRecipeAuto(new ItemStack(ModItems.bolt_spike, 2), new Object[] { "BB", "B ", "B ", 'B', STEEL.bolt()}); addRecipeAuto(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', STEEL.block() }); addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', DURA.bolt(), 'T', W.bolt(), 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); @@ -511,7 +512,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rail_highspeed, 16), new Object[] { "S S", "SIS", "S S", 'S', STEEL.ingot(), 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.rail_booster, 6), new Object[] { "S S", "CIC", "SRS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'R', MINGRADE.ingot(), 'C', ModItems.coil_copper }); - addRecipeAuto(new ItemStack(ModBlocks.rail_large_straight, 4), new Object[] { "B B", "SSS", "W W", 'B', STEEL.bolt(), 'S', ModBlocks.steel_beam, 'W', KEY_SLAB }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_straight, 4), new Object[] { "B B", "SSS", "W W", 'B', ModItems.bolt_spike, 'S', ModBlocks.steel_beam, 'W', KEY_SLAB }); addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight, 1), new Object[] { ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short }); addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight_short, 5), new Object[] { ModBlocks.rail_large_straight }); addRecipeAuto(new ItemStack(ModBlocks.rail_large_buffer, 1), new Object[] { " S", "RS", 'R', ModBlocks.rail_large_straight, 'S', STEEL.ingot() }); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 4b25b2f23..cec57ea6d 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -730,6 +730,23 @@ public class ItemRenderLibrary { GL11.glShadeModel(GL11.GL_FLAT); } }); + renderers.put(Item.getItemFromBlock(ModBlocks.silo_hatch), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(2, 2, 2); + } + public void renderCommon() { + bindTexture(ResourceManager.silo_hatch_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glRotated(90, 0, 1, 0); + ResourceManager.silo_hatch.renderPart("Frame"); + GL11.glTranslated(0, 0.875, -1.875); + GL11.glRotated(-120, 1, 0, 0); + GL11.glTranslated(0, -0.875, 1.875); + ResourceManager.silo_hatch.renderPart("Hatch"); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); renderers.put(Item.getItemFromBlock(ModBlocks.qe_containment), new ItemRenderBase(){ public void renderInventory() { GL11.glTranslated(0, -3.5, 0); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index d89423eae..a4220206f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1294,6 +1294,7 @@ item.bobmazon_tools.name=Bobmazon: Werkzeuge item.bobmazon_weapons.name=Bobmazon: Waffen und Sprengstoffe item.bolt.name=%sbolzen item.bolt_compound.name=Verstärkte Turbinenwelle +item.bolt_spike.name=Gleisnagel item.boltgun.name=Pneumatische Nietenpistole item.bomb_caller.name=Luftschlag Zielmarker item.bomb_waffle.name=Massenvernichtungswaffel @@ -4471,6 +4472,8 @@ tile.sellafield_4.name=Infernales Sellafit tile.sellafield_core.name=Sellafit-Corium tile.sellafield_slaked.name=Gelöschtes Sellafit tile.semtex.name=Semtex +tile.silo_hatch.name=Siloluke +tile.sliding_blast_door.name=Sprengtür tile.solar_mirror.name=Heliostatspiegel tile.soyuz_capsule.name=Landekapsel tile.soyuz_launcher.name=Soyuz-Startplatform diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 2d45971c6..05365875c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1961,6 +1961,8 @@ item.bobmazon_tools.name=Bobmazon: Tools item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives item.bolt.name=%s Bolt item.bolt_compound.name=Reinforced Turbine Shaft +item.bolt_spike.name=Railroad Spike +item.bolt_spike.desc=Radiates a threatening aura, somehow item.boltgun.name=Pneumatic Rivet Gun item.bomb_caller.name=Airstrike Designator item.bomb_waffle.name=Waffle of Mass Destruction @@ -5474,6 +5476,7 @@ tile.sellafield.4.name=Infernal Sellafite tile.sellafield.5.name=Sellafite-Corium tile.sellafield_slaked.name=Slaked Sellafite tile.semtex.name=Semtex +tile.silo_hatch.name=Silo Hatch tile.sliding_blast_door.name=Sliding Blast Door tile.solar_mirror.name=Heliostat Mirror tile.soyuz_capsule.name=Cargo Landing Capsule diff --git a/src/main/resources/assets/hbm/textures/items/bolt_spike.png b/src/main/resources/assets/hbm/textures/items/bolt_spike.png new file mode 100644 index 0000000000000000000000000000000000000000..88e310d5f4ec55a0292b6cb8438aa6953647d4c1 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfaSXBO zecR{D)odW(Hh-zWBen1X(G#^tl%LdD_M{64KGHMPTB6OWyVQQR-mUGGXAJJ2IWYfy z@EqxDw_>KL26>qsm*7-<^X|9Y^BBeg))lX`gwRzd&( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/doors/silo_hatch.png b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch.png index 226f0c34d26c415c67e70f3f8eb974c19288e945..7a85f0e33d9c155a36c562bf6de046a49f879486 100644 GIT binary patch literal 10594 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 literal 851 zcmeAS@N?(olHy`uVBq!ia0vp^9YDN-gAGVpi!Dn5QY^(zo*^7SP{WY|lw{`eba4!+ znDh4T!Ks(SBpL!U`Fba~I%zI!2}$%p`}qtN<>+1IoZPlAYo1Sk zcG6g`oqKtrMf^YM|J8DBg|AKjc=<=`H~dx;nB?G*pI6)P^77jLf~P;;Z?pZk*x1p7 zNs+U~_&V()VRw-#rzh z#^I@;(l|lPzB%UJ;q`YvZ+|v3Sxy+J9%#Y+yZ!6;cK`TYvisHh9mH$N=mXxl!Y==Bfwot>u;KkxhR3EQ3*SFa7foAj+h@q2||cEwlY6Z7<5%sZEw z+da?m-`)-7f8RZoDm1Y_I)TMWh~wq6{j;kro`2qUKIQR_SH@F0fns3CfFwN?mK^=9 z&|W>gFn50Pth%#Sbx&^nN_#hX2FSH6PM`GB)@6S$c%Nh;1meOqZsOl`;r7EXMfa2E zY>PY*zC84Mq7TTypnw7U35jvGPW*9oYX4D4_`nri>aLw|*Xr>uLbas3QP^Ouq-ftB3uJIX+Tx#YdwWUJf_9Pg$>{Ild^ zO@sW^yqDV_Zuu&dcM8oixUF!;rAP1ANX!4pPyJ!z1C7xwKa5wp*Rxgb|LiUSjT&GC zRJ{D${J-q8y!dN#N3mZPJ^X(s#M$vZ)|epr#&FXAbDj#?H-lB~&jb2q>iPfYAO5)@ ztvr3Eakt zG3V{w^V!nw630H4ua#e>80h`jOvP-kL~@YkQvyNYsr`$^mR-Mm!CB+(rG^EG-U z+42{w!d1@&_q?_`aQgA#1+TT%Jx-O)kn`12VPabOVe^dHCw(urJ2V!tFZuuL#kQ-t zy0+0PohS9SFI_{c1a}nkb)1enx~(*}zV_jb?83(~6K<4S zS#F;BTxP*XT3Wq&#LE%I!2aZs>iS9#XDY{vcD%gk0O7}iZN+@~&Y7RPRBzt;ok z`oK9xeQncQl3QbJPh?cg^vVDC)pVKyNBgr>Rnse9~moyLC z_PufE&z!krvUTs?y-xk+a{X`ref0D5+w(0XL;$D^=tQ8Mf*@wlyUTaNs=Gx!6@7s* zc0#q>Vb-?kh7vqldmU$*+FdUd5<4ZcHtL7h<&w;;Gjx+gQ?DA<%1)PK5fVLevBIY8 z*LTIL387bWgjtRRUXzjA<^FN6xU&P7*dq3ioj^qhdw|R%nR$NQ-=%l{`f_jGySoez zv%c*6V0g!V-uvJ41qAq$_NJfuQsw1P)A{zN(dOr`FEl$SDNNwt0LE-*12R+VOWfNP z_RAZN?0VjC^%|c?PBm`?zb#Z<)XnBI>)0JO>+*8=#~wO!N93@S`?h7ZZpET4rF=TG zxH+pF7iZb;_?xQ_lBrfvoeI6{OYu>F4A0?9%9q zx`ICYe1Pd@X_JF8)I}@LmdXd*iuujhs>v2~yXUoo+0~X;)#bJxIo!6c*+* z{qyPDWhP0Hv+f*7uiI_^_i?i1;}vV}ZB}2{E^sAkdwoXvtjgng^ECYUn|P37W~ZNj z(#ub?tEO%1yEFexM#amoksnj7U%dakmA?^~#DZ#CCnmsLx#!nX`KL*@cbgw>X{h+{?yNy)u4~ygCqD-pNnZWQ(~q|Y zwmkXsmpma%HRp4*0O*^)`IdBDBzxyzC_vblB9ag1Z(bk*xI_1m?g%b{}nhdra zQq3swfjyQ;5j|BqziHR~$=p%v8m@e`lZcQH=0S?}C0qTRlXksVzmvkY>$;S?^ zCmTw(S*P|gi@Nf|6UUO>YNprH&nwU07J27 Date: Fri, 19 Jan 2024 14:33:28 +0100 Subject: [PATCH 104/376] why are there so many foxes, make it stop --- changelog | 3 +++ .../com/hbm/entity/mob/EntityGlyphid.java | 1 - .../hbm/entity/mob/EntityGlyphidDigger.java | 6 +++--- .../hbm/entity/mob/EntityGlyphidScout.java | 19 ++++++++++++++++++ .../handler/pollution/PollutionHandler.java | 14 +++++++------ .../gui/processing/gui_strand_caster.png | Bin 16344 -> 11637 bytes 6 files changed, 33 insertions(+), 10 deletions(-) diff --git a/changelog b/changelog index f0a283661..8c5d6df54 100644 --- a/changelog +++ b/changelog @@ -15,3 +15,6 @@ * Fixed infinite water barrels voiding water completely after the chemplant's input buffer runs full, infinite barrels can no longer void water in chemplants * Fixed fallout affecting things on Y:0 like bedrock ores and oil * Fixed projectiles not being able to pass through open doors +* Fixed material dupe caused by strand caster overflowing +* Fixed rampant mode glyphid scout spawn ignoring light level +* Fixed glyphid diggers' debris attack being able to break concrete diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index c0cbb40f2..b9e88e699 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -23,7 +23,6 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java index f0c8d6a12..354162f3f 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java @@ -1,5 +1,6 @@ package com.hbm.entity.mob; +import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRubble; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; @@ -9,7 +10,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.init.Blocks; -import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -126,9 +126,9 @@ public class EntityGlyphidDigger extends EntityGlyphid { Block b = worldObj.getBlock(x1, y1, z1); - float k = b.getExplosionResistance(null); + float k = b.getExplosionResistance(this, worldObj, x1, y1, z1, posX, posY, posZ); - if (k < 200 && b.isNormalCube()) { + if (k < ModBlocks.concrete.getExplosionResistance(this) && b.isNormalCube()) { EntityRubble rubble = new EntityRubble(worldObj); rubble.posX = x1 + 0.5F; diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index 4d1e08a89..e6a5a4564 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -325,4 +325,23 @@ public class EntityGlyphidScout extends EntityGlyphid { } return PollutionHandler.targetCoords; } + + /** Vanilla implementation, minus the RNG */ + @Override + public boolean isValidLightLevel() { + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.boundingBox.minY); + int z = MathHelper.floor_double(this.posZ); + + int light = this.worldObj.getBlockLightValue(x, y, z); + + if(this.worldObj.isThundering()) { + int skylightSubtracted = this.worldObj.skylightSubtracted; + this.worldObj.skylightSubtracted = 10; + light = this.worldObj.getBlockLightValue(x, y, z); + this.worldObj.skylightSubtracted = skylightSubtracted; + } + + return light <= 7; + } } diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 934a0524b..61c6e9bc4 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -364,12 +364,14 @@ public class PollutionHandler { if (soot >= MobConfig.rampantScoutSpawnThresh) { EntityGlyphidScout scout = new EntityGlyphidScout(event.world); - //escort for the scout, which can also deal with obstacles - EntityGlyphidDigger digger = new EntityGlyphidDigger(event.world); - scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); - digger.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); - event.world.spawnEntityInWorld(scout); - event.world.spawnEntityInWorld(digger); + if(scout.isValidLightLevel()) { + //escort for the scout, which can also deal with obstacles + EntityGlyphidDigger digger = new EntityGlyphidDigger(event.world); + scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); + digger.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); + event.world.spawnEntityInWorld(scout); + event.world.spawnEntityInWorld(digger); + } } } } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_strand_caster.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_strand_caster.png index 9f3253374240386f1091cfcace39043063e5c338..2af67e09eb749ed526c61c2ef58bd3f7ff5bd5e1 100644 GIT binary patch literal 11637 zcmcI~cR1Dm|M&Yia_pmFvSe9_XsNilJZ1(wl3sC@p`&VG?m+VR%zP0?ve_ zpv2E;i;5>yu_Rc?cZRCkaAHiYrXxyNtx%$CABC>g?o=>ZaoU76PUy>A33E9swj}rG zWy0?l7q2giU!mYvW}>8G>kRPE#uGa?)49lr%c+IAr!#N|*yH@Ymc*WR5$}6jDzh%a*)n$75|MiozM7vJ@ihXb4lgu=cg|yyiv&H#s*jp zZA7EYqxj-9C^htBdeauhke)MoB{TnimJs>5{~H*-z~$fq4*hk1SQlmcBh~m|ZTpa& zlK*LV@O=~P_fZ~L3q-|86YP}xNVAI5?WPg4>J?>eYU=pwCzo6kHnX^M>*@%q!)0q5 z999%kCuBUbm!X42Rmai>%(m>-o6sb(`M&!1$g~%1LQ*>}b zT+;p=ova?Ay#S#8c{8Vlwy1yHXJTyRx zad;hrL-iHGVHv^lL_zU^cGF*O&r>(;h*d6hoWs}2O@i5>dR0>os-A_rWZKA@3bPb{ zcTk(47nv1iHIx!Vl-k0gSDFuZAfCHS6qN)Ao1*(*`AK5xs=+{sW6&#g?d(*F{l4uW zR>*zv(|zj~!564#f^QH~#FKl7H&3T-zyR+|$pr_)G_Hp=vTs!}QhG!6uJ4}7PbgXa;rgCa-f>E-ghS9x zleGJ^^p{MP+8ldSK|I;;Bo_oWp9(y}c!t@eIreE^zAYp72>F zEuKC9$iYFQQ_nQ6ob7Wh?^}8>Q7O(9@aMu#EfR8&I=!lZOr5oHb!B7~w@_x;?drO2 zQRC07N^SVwC@1gfy-!bc--TXF5Vx_h;a&b|Y;0`X6~!UFy4kM>R~FnIz8!F`@0iXh zIFqXF?DA5u?5}!VNaWt}0$tWfFX{I&THd#Vb5XK=Jw)s(`ZQ_`tk8` zWeVKv!w~{Ot9(==*HAUH59gSyf9lvv?PJrP?1hV})Ua;Zva+(`k`l`9P#HgSGJ+ce zHA(P1s!x)%hoFFf06_9ii*zjv5`L+@ru6#t>ygpXrtWS==h5)Iyrem+htn_BIqL`b zaIAVp)=na>(kt*%>%?In3(U9GwZ%&etTXRNoT>ULi!zjrWMrl)Jjcfuz2s!z+7o;k zS}KR1_)XZ^P(QZFmeE&>{HDEShi8Ls?D{S-s;5i%(5HQO&M*{Fp$^u5O973iWSWYF zcttyvJ|&SJO0*Q$)x{XU4{PNLpttW%Y1rDjEOos@Cum{dtl0VUtwjI*wbnicdHJ4= z$(9b;)}_(%bYa@=6xmR)rlzJwXY*=OCEQfrp&{V}N1#`EO?24dgK5Eoh!bK{hBBdi z?AjusQ$&_W`x-k!_VnUxdC4JVQ;n1e6aW$~fQJPe{;1%VUJZt&7pqg9&v}?}rPC?fKGrB?k`&SIP?1hr6V% z$7>6qP?R22ykF{n`8zt&6fS1`ao$Mmx_ld7xhfc|u-oC9_ zU<`*WK6@TxJ%9U;C2RNEcY8bxvKS6qteksLl{6oB(FfsfEo*xAHJotn6rH|Ilb7hm zny*VvjwejbsMo_HG5KlXVtQKM$l{OKIlxzMAwN8rx;ZBj zG4&)^gE4@UZg!@9u3}7??Av5;?-1!_9*CaBmPxPeTJBD`Au$K*goCd7S(C%nw`p){ zEd+(k+U~4Tkw|}xt*@^yFrMTtL6MiV+HX$)m07GbH8q7Ghh(ZIiF!7*cl`}New;Qh zU_rIgWZz?-t0NY;HT#@UwFdNqpE++i85x=S-Ca40;V3Qkry0ry@fG`G#H+x<=Pojo zn~NKtOWWQ!Zc!yf4Y7JRGl;Pb7rDt1{UuLe z_hPRCMB!F+OZerCdyS*onbT&J#Pdn?EBVsAyt_kh`F`rv4=`8PU?B;(3DQ~Ef~JQX zE;%qkg*~OUROiI$vtL5&d50Z-X-&gQ;h)MngQ9HOsi{$vdVO6c`pEDbJWwNL4BfJo zzr<0k!8U9_V9}xejzk0kkz*(_o?>TjkC2y_m$-g1FK=>}xLD!0c80#`h(-({Vr9?N z!s5%aYwHDsX57uGM9_VV1my3((Dqw#AX$BP)PS{>;mcMzs zE;JO*79PAY+oNW1s-o~29jmx?P!Knu$kfV8>$646!h%!2nVDI`w{Isfgw|hGzLI@G zYt5{}2_0)FPU=(yuS&DK+`&x2mv)nr^$(&tiQ+GezSfbeN`BRw8HNto`c%8KcV+J3g4%$?wkzCiHNF@Xe^Dz?~c6+qt-msfJ!3v4m&1xE=GD zJ3p_C=S;mT2*MJ-<_tQm@yWNa=}1;QbnmuF7LM4=P&4n&zUdTRtv?+P!7B)`#*SNZILTFRadUajSC^(;{egRYDs)X2Tm-EGFNF$APQpQ?A{N; zHmxg~qd%Jy_36jYTb*9LCAYBSxQMq>3=ukZ^TeeAps+I0@O~+q(aW!1y(+G*rq?iV z-`jEljPi7Ak$#_4AP(G2nmh7As~R0))(w(N<- z-ppwgZR;){UdkrRj$rH4?R_NlSOBd%D*7pG-?LnibVS|Fnnu~n1@oa$;bNl)sKhR4|;MqCL2aMin*{xocb$dF^abC^V%Z%0qixc_m zr*2*F{yFMqZR4=V9vbS!czr@RM?^0A^^=3Jn|J?68K#|9Vw`_(A2jx`l_)s-$s{1= zrsmA2VejfU2C3~iY!FoKf6sMtt$zqzv|Ij%(K`8N5&SV%!y8#Is@fGbgLoNSSyk1u z2UStv_w#32zf{Eae(Pkx1)`izeM!Nz>zaXAdv z@=|B>KH{A7z-tes-HPfBvGwmB^WKfu6q6^OD@$!X8R|njllDI?AXYmid(wWnPVJL6 zpb)KxR(n5&S4p#YwSFn!l+&>QvD{M{1bpjTzzd8 z+Le{IwJ*(mMmi&y)!_Cjc|wp(Eiy{fJq)R4V7;dVOyUe%yhQtFLaBjdROcqG9k`Rb z;@(DgYhX~GbB5!n-NyG0O+A7(CKtiZ4rgnqI5Ozl#MF^%zY*4KRKOYkSbCs^AuG}Gj#m+KhJSno5^p!=30Tw7aG)OS{2c3Lt93S2sV%3^ zd@(V_Gf$~^d~$ZjNg_r|bJs`9wrLtC$`i3*c2VG9ro+;@ahsS;*Fq7f{*`_<-~ae9 zV@id^_zp~YJckWOKMadR|KokfH-g!E4M2ujGP>l)S+}wW{FJ^CGaVhB>8)F#D|;T4 zgzZ3wWESaH`I}^C7nk%wr{*V$edZv!Gc*dz5C%D%-vMbB_%o%0ohcpS)hkPg)hSUF zYde+GJ=k@5zsrL3RNb;NY|FQ}xI}ZT>3f-@3uoaID8fddvnhqWj=)JW-L<>U%ppEd z+xCidzDT*L+Z;rlH((6w+IHVJxoikIoDu+q{??%f`1lNu?C0W5EC z&;WN|oIl?3&8c*}QhaNBoA+&}dR=*W1d-@N&D*>5AYE9y8p{oJrz+ANPo4Vt69x48 zlt#nQ5R2{`xtB>wXOnhd!YNa_HNmxmDb^6%)T%%P?hCdxB$jRD-IO2B=}tDmp#+Zj zae)}Q-hHj|l^i}WE#oYk^oc}ojM2o%l6T)nBzpVhnc}H2hX=M~e}}qKg3qc6H|8l` zSb=dQH$_dGCT2|rF;#bsrkf4JJ30Rf5pG)%IJ?&Gx6)0ud0~2=|EFH$S)m^XuVe5n zpG4_$_aSgMX6YAmW)*kM+$~vaSL|F|7(h&@EX)M0o?~V6U)JSlwFdcHYFJdoh)hAg;x0u~*e&Y|X+xX$T_UUkSHYwg~BTnxI z3FZ*EMlo8JzUZ%DSnDxGB{K`Eg>W0-H%H2%{A(CHK2DCCv+QcW4YAsvWQ|xSSq=mJ znus@UEDOEFXfVFq62(#MA}&y|%U-j$9xU1%;XZtCDh7R>+>(O7qd@eJJb&xdnx?pNZP=dWxFEs}#{hCG4{rjSf#dp*3W@ubEvqBN! zI7N8g8ExBNu0FgMc3fqm=s?)~SU54Ja`M%p-TUtv-}NQ?Zl!Yf1njXVl&6Z|$(vvE z;g4n7k>eGlt!UQY*R#xGKJ+=*8#Cg-xeqT;COM)ZNWbZ!e0^UDXQIEmkZ@$%tedPj z8yjshg|yT`o9aqbthxuo-w1T92!^67IKRA*g8B> z0F4u-ioJJ%Ndn7RZ-9kbyUGtg7fzCzJ@bfc1jTaPVTyt5ts!F(G{nOl&hr}~aUTn@ zpEFtErrAVO;DO37NH6a@_q3X4zHw4)Aujpfo5o-ku_AxZh~=)&C&AbTzpz%}Gd*E~ zoIy2?obrURlN8|@S>`bY-v&C{&n_+~lW}+cvP0H)8AXD1zTk$c`~>^Lxb9id^T=&n z#X{1z#y)H;1r`r1UT`h_+1dVmy`Kd8-OR+_fx)iB+j^1XrYq(6GkC?XD4!FpM7T^I zcB*^D9`CMj!Tw0zQPZ^APM4>hi&%iAfpuAfPS3fO$MzvyT!($@N&6cJD0q!87@XwT z-E;DU%joq|F1tFryZ>8IvH@FSVC7dN&t%s6_r3GP_veE+iVkMxFb7k8+cRm$TlKuK zwDvN^ZwwbNl>IQiH=RX>+e@ptEcNMw1%!_yRJZJoaziT=9wDbH#Q6%3)| z4*h+1-_`@m1#Cv`!Z6G$<=fqs6h9UtHru~(#o_MYZ01Z&QxFGZUTaDlHe{CF z_LJ7aVVQWRYDEzX%?YH$mCmc-Eb!DvlyUT7>2hM~yZTerhi>cB)L$6)E;yU@qiF!? zSBy#fzY(#jR)v)Jnc1K#${*7VaA7u0tE?>hia(Bf=v){c5PY#`_jQ)H~w2oJb^?e|kGDZ@NzuclH^sf}_k@a4U z0!{hSZ>ejQCCctxbUnGYRs2Cq`e&NU1&Onb0rmrGZDW=u5?90n_-L%HrH+?O6w7|B z)s%C(^%FrvYBkn<7%%LZoY!E|v!2-0Wb~!b8c@*=cj`t3V=-PMNad@5TdZnKz&3)p zl|M174+|t%pK%zx$R)QOKCxzrnj00`VIwk=?=wucusq=LxMnx;TREIB3TC!4#EG2I za#oY6oI6Gxz;~Qw>q-NOl0h!&K(>;EhWUy(muu{=7QnyfrO{(g2?Q5z}u3 zq+p818H@Vy^X+kH60$5m=A;w5MQa_kl|45vt&S{&#hSaSKdu{;`&IyNaryonMSoK*QQ3dlb~L5b_5yZSW~p#-?d;1(AV6#W77N zq{5i!$1ggm_r<>1KHz3-_&gr0yLH-Ff_^ThRAaRFb%dAf0FRanJcFU;%E3encg+2a ziNKYt>>M@s$owPIpA90&|7nf=g5&|t0|*9=#%aDkmR1KNE)Oabd_A;I{t5{2T0Thk zLtUX;si;x5E>h9xQyY5CjS}J8m$-MUXkuH5_~4FAwO;4=>RnsTjN@uRr^3k~-5v4S zYc)c0|3<9h_93kO+sAm!YF|2rbnTg!*6$8qp_x&k!ELugD`$3lU3^RK&1)k+#~NpL z1rKUVUwvJBS7`OlIkR|)i?w(Z{eL-G0{0V(@U7x~j@<-40uX!m* zH@n{?y=y>8bo%*0q%qrq3%?E>*3y=hptv%H=ncZO#M=!X?V8z*e)2a@!0z_rL69ZE z)cr3F)p6FfNm|6!dx)WN2CZmavQkytd9AdNdqSW}L;xW}Q|ElIiCvrcEVu z;O}}0>lJG#dx&Wd#S>?z;60(YJk@T}a;MHt&XcQ7Zjg_KROuc@%I=mw?hcCQ#!bz3 z9G^SHdfKI7l`sA$4>@H(hy%5fdx-2^2`46qlAjKXAz&sIGMHf}PE=+$B&|{}NfJH`+<(lEdWvqu zUs?aHMcs@KT5Pn%SLyNI7UbYWR~~e{ZA{1P&h3}~7)oDS`Q3Rur=NWjUSTrq{vk_u z>2HbkHnHD{7_7wkNduoE}~C_rT017nFtl?~a?KUtl-c`QuCCsyu|O z;o3)9(aPb9C)A0^UX2;1{NFMQer=khR4?@13)FbYN&T@DiC>e1llQJ z85rM~;Sb;|)q==Dvhga0{7t(e=;Pb>$0KZ^AksIS!POFDoClmv1MV9RP7HFN(pL)f zKB$e2D4Xp%PR+InA91-gr{gClsRKL!fW6v42D1kfj%-+~saS(Q{?xg9^+hNI30!X` zYtr3Si|RrDY7d#Wqw1S#nwZiW1_<)TeCCFUjC_eAa1jxUflq<6nN|%b(y7 zNBq2Qo(QX=l|rk<1iAey4bMAI9(!E@9>jeAsi}^P+JbY zRb$<4p#I&JU|Kk?Dwz@&0ZO;)mhHz|*-q1_qsb;coz0{Jf}DKNBW@L&EPQ>=lAC2$ z0$*&13K|zcq!NEMkZT7$4Bm%47ZBrNcq5I5x}Bj74^Rp6w`Ao-tvBDAaC?bz|C7r zJUE#YH~hWR60%f0l53J|rHZ0L`22Pl6$l#F9$eqBrG8mF5jrkBDk?2jj;t}E91J!RjN&Zg{V(%FuzAGn)_>^c10%8e}4%9r-wQ#g!?=;odv`Eqi^(&HZu zuL$~2M^<7@TIVts4;@VpUr(&{?;MqP>e`@^d$a7ynxxgup9RnwpkR? z1*!|)ej!j8{wJ*RTnG14Ol`w*Dx=MIU<#4DS$~U!hcij`zzkzRJ-R+GG(UPa;$X@a zYRZ)mGCHhYh}->J`!4>ieZgyiN@TXcMmojlxNW#!#pcz&0{?~tHxOb< z{6pjSg4pw3Dfd6kf_I>{T-yK#>^&q-yG;!eP}QOD)KdM(8+m#Q2={}1Qa+WP)%631oHb8L2^ zEn?$j5oia4D?Rqs2`HWB4m|Ybee|XK*QkSUfB^}Q@#dUmby6ekiyh?Widgi(nb=OF zx@U*SD{l+#2JQbqH+C<$l*s+6M=I~k9V*iB8k}WDETG+A0Pub-R>^#d5fbQEuNn=j zSoPlb?9J)ZTYwaL=r|6>uPIyhgsza>YZ_L%x&o304{g2?ill918L`-@Yu4?Aca;2# zqtd%#d$xJ~*n9ouPo5LmjIf3?IX!U;7Z!RB$kDfYuv`z(I4Kes!dMopTv9&VFCJr! zBl1Q>yG8i(rrjGytV$dSLp{=ozusDneXvc-@teD0>&0BgeyN50(^z%T!Fqe+cu~#z zMT?2docWP0Sy1?nI6dI`ZLJifVpJ@8sk+4QOKF#42`4go#coXMVqeTA{K|7Zz1^bQ zK$UoGf4*7I34eKa3jJhV^CkYSQ0x!n`0E~}Fmo^XO5kU9G~z&ip1BIndA^$iv`ghu zm5iFmp^RH}{`)9DJgd87bEgiH9$XP6giqZ>YT~~j)9?liQ#mc3-}rF(U;QZo*gsAn zuli7*U3-tOi)z4Zu8}tD=P>SIkSG42TUXI<7amK%=U!m|~H_dj5or;Jt&rF z-Ky^GluUy$(>+Dr9PBOOjQ3_kH{yM$MME=k9>)Z;y?Ahr}9|P{= zGlkass*6m8)9lRFE{BOWEQr%kQ-6y)xI(r%To+M}Iuzxd*HG%yLQx)9jl%O#hx`wI zGw=ubqV1b}Tr9%3B=|Du&c@X~598rFHPNA#bFvL$blU%-)>5@nOV|7O(n+>(Io$SG zz)HhlI8XMt7JBzMG#({A208G@K7}DPo%Sg&+=@LWs?sSj0Au<>uf_@ezkJNp{jn3u zz0X60)o$0UOms;TvOIHA>=HKKtYCzEWWP8FK7f>0k+I>!RzaL@wIsopYSXAHRQnA@ zSqEBWCP{i9i1I=cO7<8JwQcOul8a-qAe-G0x>2|odjr6E6@_$!?F-V<2wqC4{-YQ* zFV7?8bp87MeT9#`2_4e|u2;bA)m6nhPCLYR-8)%X*z{2h;7>+Iyl>Uh^>HhE056HW zP-1@W6m3}NrkV0hDCEjxm(kc8s@gP75^0X7+3b3KI8(epKN7TybMk0gJpgQ0FRN8* zu2DYPrGr2AcYmqt;6iJ&IlNj?pTS^?HciJz@LJlU9Br6twcF6HRPQMq&xvoY<)F(9 z#vN?fz^19Q4ckXOXn;tnQ3tXP=%HAEs3+N|dFy3kR>t1w z3c02wXM;rmWF0{4g(G4elL53nTGk*N!$$zo-!%hs z2kNuCfG>y5+Dz zu3?%mt<3D2Mn^W)0mbDfAoh3q}R!q$tEo{-NH?cvRY9{=Yg2(jBO)-|K)`xwSe}&5i zsqm{CoEmT{tuPRI3ZNlFqh>Ho0IoeH1N1k=%P*Cc(3d%ZVfj}R8jnV3oatIYOCltK#j?hGQ-o;N_Py5Z|ECc!g|kEiZe1Y+N#9> zRC=y58t?vtE6u7(O;{QY>j z(Lil0ko$&qy!Kna&#pjnxrR?yev-qv9EoPih4p`#cgsEb|4v^2#S?l-Nx&-=)QrJJ z%Jlz%f<^qJ)5zIRz4kERl%F&Gm%fB2v8%;ae{Q-V`^ijq%r725Jwmp32((7Q9|vAa1x(t9-Ol$WPEOx!U@&C6?3J^XS~FH6byDF`zcc#ahEujX+v z^{pPNtmm+YNVFtkwtxA0d3eyASy6Zz&huwF!Kyn;Ib=t~PalBdeU~V0+^W|!FC$rL vCVxNViQ@Jv0c`o7M9lwB?@ad19KtP4j05=ez8?p3)X-H8UG+j$>yZBiHJ1$# literal 16344 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 Date: Sun, 21 Jan 2024 00:28:26 +0100 Subject: [PATCH 105/376] molysite, mud hole --- changelog | 20 +++++ .../java/com/hbm/blocks/BlockEnumMulti.java | 12 ++- src/main/java/com/hbm/blocks/BlockRemap.java | 18 +++-- src/main/java/com/hbm/blocks/ModBlocks.java | 33 ++++++-- .../com/hbm/blocks/bomb/BlockVolcano.java | 49 +++++++----- .../java/com/hbm/blocks/fluid/RadBlock.java | 71 +++++++++++++++++ .../java/com/hbm/blocks/fluid/RadFluid.java | 31 ++++++++ .../com/hbm/blocks/fluid/VolcanicBlock.java | 57 ++++++-------- .../com/hbm/blocks/gas/BlockGasClorine.java | 2 +- .../com/hbm/blocks/generic/BlockFissure.java | 15 ++++ .../hbm/blocks/generic/BlockOreBasalt.java | 74 ++++++++++++++++++ .../blocks/generic/BlockSellafieldOre.java | 3 + .../com/hbm/config/FalloutConfigJSON.java | 1 + .../java/com/hbm/crafting/WeaponRecipes.java | 2 +- .../hbm/entity/effect/EntityFalloutRain.java | 7 +- .../hbm/entity/projectile/EntityShrapnel.java | 11 ++- .../com/hbm/explosion/ExplosionChaos.java | 2 +- .../java/com/hbm/explosion/ExplosionNT.java | 5 +- .../com/hbm/handler/EntityEffectHandler.java | 2 +- .../handler/guncfg/BulletConfigFactory.java | 2 +- .../com/hbm/inventory/OreDictManager.java | 11 ++- .../java/com/hbm/inventory/fluid/Fluids.java | 10 +-- .../inventory/recipes/CombinationRecipes.java | 1 + src/main/java/com/hbm/items/ModItems.java | 6 ++ .../com/hbm/items/armor/ArmorGasMask.java | 4 +- .../java/com/hbm/items/armor/ArmorHEV.java | 3 +- .../com/hbm/items/armor/ItemModGasmask.java | 4 +- .../bomb/TileEntityLaunchTable.java | 2 +- .../TileEntityMachineExposureChamber.java | 18 +++++ .../machine/TileEntityMachineRadGen.java | 14 ++-- src/main/java/com/hbm/util/ArmorRegistry.java | 6 +- src/main/java/com/hbm/util/ArmorUtil.java | 38 ++++----- src/main/resources/assets/hbm/lang/de_DE.lang | 15 +++- src/main/resources/assets/hbm/lang/en_US.lang | 19 +++-- ...t_asbestos.png => ore_basalt_asbestos.png} | Bin ...t_fluorite.png => ore_basalt_fluorite.png} | Bin .../{basalt_gem.png => ore_basalt_gem.png} | Bin .../textures/blocks/ore_basalt_molysite.png | Bin 0 -> 926 bytes ...alt_overlay.png => ore_basalt_overlay.png} | Bin ...asalt_sulfur.png => ore_basalt_sulfur.png} | Bin .../textures/blocks/ore_overlay_radgem.png | Bin 0 -> 162 bytes .../hbm/textures/blocks/rad_lava_flowing.png | Bin 0 -> 10650 bytes .../blocks/rad_lava_flowing.png.mcmeta | 5 ++ .../hbm/textures/blocks/rad_lava_still.png | Bin 0 -> 10616 bytes .../textures/blocks/rad_lava_still.png.mcmeta | 45 +++++++++++ .../hbm/textures/blocks/volcano_rad_core.png | Bin 0 -> 1433 bytes .../blocks/volcano_rad_core.png.mcmeta | 5 ++ .../assets/hbm/textures/items/gem_rad.png | Bin 0 -> 465 bytes .../hbm/textures/items/powder_molysite.png | Bin 0 -> 441 bytes 49 files changed, 495 insertions(+), 128 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/fluid/RadBlock.java create mode 100644 src/main/java/com/hbm/blocks/fluid/RadFluid.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java rename src/main/resources/assets/hbm/textures/blocks/{basalt_asbestos.png => ore_basalt_asbestos.png} (100%) rename src/main/resources/assets/hbm/textures/blocks/{basalt_fluorite.png => ore_basalt_fluorite.png} (100%) rename src/main/resources/assets/hbm/textures/blocks/{basalt_gem.png => ore_basalt_gem.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite.png rename src/main/resources/assets/hbm/textures/blocks/{basalt_overlay.png => ore_basalt_overlay.png} (100%) rename src/main/resources/assets/hbm/textures/blocks/{basalt_sulfur.png => ore_basalt_sulfur.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_overlay_radgem.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/items/gem_rad.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_molysite.png diff --git a/changelog b/changelog index 8c5d6df54..74a6aa77b 100644 --- a/changelog +++ b/changelog @@ -3,9 +3,24 @@ * The final missing door from 1.12, remade from scratch * Comes with a brand-new model that fits perfectly over 3x3 missile launch tubes * Has a 5x5 frame +* Molysite + * Found in basalt from volcanos + * Can be combination-smelted into iron and chlorine + * Don't make me pull another chlorocalcite +* Rad volcanos + * Created when fallout affects a volcano core + * Uses a new volcanic lava type that produces sellafite, as well as sellafite gem ores +* Radioactive gem + * Created when fallout affects diamond ore, or if radioactive volcanic lava touches diamond ore + * Currenly only used in the radiation powered engine as powerful long-lasting fuel + * When depleted, turns back into a regular diamond ## Changed * Simplified door recipes +* Fissure bombs now require tantalium +* Removed the "nerve agent" hazard class because no gas used it +* Fissures now continuously spawn volcanic lava, making basalt renewable without having an entire volcano +* Volcanic lava now turns diamond ore into gem-rich basalt ## Fixed * Fixed sellafite emerald ore being oredicted as emerald dust @@ -18,3 +33,8 @@ * Fixed material dupe caused by strand caster overflowing * Fixed rampant mode glyphid scout spawn ignoring light level * Fixed glyphid diggers' debris attack being able to break concrete +* Fixed `canLaunch` function of custom missile launch pads demanding a designator, preventing launch pads without designator from working even when the position is supplied by a radar +* Fixed none of the helmets or filters protecting against corrosive gasses (blistering agents) like mustard gas +* Fixed fallout layers being able to generate below roofs +* Fixed exposure chamber not saving anything to NBT besides slots +* Fixed crash caused by wearing the full PaA set and then putting on an HEV helmet (why would anyone ever do this??) diff --git a/src/main/java/com/hbm/blocks/BlockEnumMulti.java b/src/main/java/com/hbm/blocks/BlockEnumMulti.java index d581bfd2d..0dd222f82 100644 --- a/src/main/java/com/hbm/blocks/BlockEnumMulti.java +++ b/src/main/java/com/hbm/blocks/BlockEnumMulti.java @@ -36,7 +36,7 @@ public class BlockEnumMulti extends BlockMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US)); + this.icons[i] = reg.registerIcon(this.getTextureMultiName(num)); } } else { this.blockIcon = reg.registerIcon(this.getTextureName()); @@ -47,12 +47,20 @@ public class BlockEnumMulti extends BlockMulti { if(this.multiName) { Enum num = EnumUtil.grabEnumSafely(this.theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); + return getUnlocalizedMultiName(num); } return this.getUnlocalizedName(); } + public String getTextureMultiName(Enum num) { + return this.getTextureName() + "." + num.name().toLowerCase(Locale.US); + } + + public String getUnlocalizedMultiName(Enum num) { + return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); + } + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { diff --git a/src/main/java/com/hbm/blocks/BlockRemap.java b/src/main/java/com/hbm/blocks/BlockRemap.java index c9d66894f..1939b2830 100644 --- a/src/main/java/com/hbm/blocks/BlockRemap.java +++ b/src/main/java/com/hbm/blocks/BlockRemap.java @@ -3,10 +3,12 @@ package com.hbm.blocks; import java.util.ArrayList; import java.util.Random; -import com.hbm.lib.RefStrings; - +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -21,12 +23,16 @@ public class BlockRemap extends Block implements ILookOverlay { this.remapMeta = meta; this.setTickRandomly(true); } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int meta, int side) { + return this.remapBlock.getIcon(meta, side); + } @Override - public Block setBlockName(String name) { - super.setBlockName(name); - this.setBlockTextureName(RefStrings.MODID + ":" + name); - return this; + public Item getItemDropped(int meta, Random rand, int fortune) { + return this.remapBlock.getItemDropped(meta, rand, fortune); } @Override diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 31d8488d5..c22a7589b 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -152,10 +152,11 @@ public class ModBlocks { public static Block depth_dnt; public static Block basalt; - public static Block basalt_sulfur; - public static Block basalt_fluorite; - public static Block basalt_asbestos; - public static Block basalt_gem; + public static Block ore_basalt; + @Deprecated public static Block basalt_sulfur; + @Deprecated public static Block basalt_fluorite; + @Deprecated public static Block basalt_asbestos; + @Deprecated public static Block basalt_gem; public static Block basalt_smooth; public static Block basalt_brick; public static Block basalt_polished; @@ -538,6 +539,7 @@ public class ModBlocks { public static Block ore_sellafield_emerald; public static Block ore_sellafield_uranium_scorched; public static Block ore_sellafield_schrabidium; + public static Block ore_sellafield_radgem; public static Block geysir_water; public static Block geysir_chlorine; @@ -1234,6 +1236,9 @@ public class ModBlocks { public static Block volcanic_lava_block; public static Fluid volcanic_lava_fluid; public static final Material fluidvolcanic = (new MaterialLiquid(MapColor.redColor)); + public static Block rad_lava_block; + public static Fluid rad_lava_fluid; + public static final Material fluidradlava = (new MaterialLiquid(MapColor.redColor)); public static Block sulfuric_acid_block; public static Fluid sulfuric_acid_fluid; @@ -1241,6 +1246,7 @@ public class ModBlocks { public static Block concrete_liquid; public static Block volcano_core; + public static Block volcano_rad_core; public static Block dummy_block_ams_limiter; public static Block dummy_port_ams_limiter; @@ -1377,10 +1383,11 @@ public class ModBlocks { stone_deep_cobble = new BlockDeepCobble().setBlockName("stone_deep_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F); basalt = new BlockGeneric(Material.rock).setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt"); - basalt_sulfur = new BlockOre(Material.rock).setBlockName("basalt_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_sulfur"); - basalt_fluorite = new BlockOre(Material.rock).setBlockName("basalt_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_fluorite"); - basalt_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("basalt_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_asbestos"); - basalt_gem = new BlockCluster(Material.rock).setBlockName("basalt_gem").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_gem"); + ore_basalt = new BlockOreBasalt().setBlockName("ore_basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_basalt"); + basalt_sulfur = new BlockRemap(ore_basalt, 0).setBlockName("basalt_sulfur"); + basalt_fluorite = new BlockRemap(ore_basalt, 1).setBlockName("basalt_fluorite"); + basalt_asbestos = new BlockRemap(ore_basalt, 2).setBlockName("basalt_asbestos"); + basalt_gem = new BlockRemap(ore_basalt, 3).setBlockName("basalt_gem"); basalt_smooth = new BlockGeneric(Material.rock).setBlockName("basalt_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_smooth"); basalt_brick = new BlockGeneric(Material.rock).setBlockName("basalt_brick").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_brick"); basalt_polished = new BlockGeneric(Material.rock).setBlockName("basalt_polished").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_polished"); @@ -1760,6 +1767,7 @@ public class ModBlocks { ore_sellafield_emerald = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_emerald").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_emerald"); ore_sellafield_uranium_scorched = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_uranium_scorched").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_uranium_scorched"); ore_sellafield_schrabidium = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_schrabidium").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_schrabidium"); + ore_sellafield_radgem = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_radgem").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_radgem"); geysir_water = new BlockGeysir(Material.rock).setBlockName("geysir_water").setStepSound(Block.soundTypeStone).setHardness(5.0F); geysir_chlorine = new BlockGeysir(Material.rock).setBlockName("geysir_chlorine").setStepSound(Block.soundTypeStone).setHardness(5.0F); @@ -2369,6 +2377,7 @@ public class ModBlocks { transission_hatch = new BlockTransission(Material.iron).setBlockName("transission_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transission_hatch"); volcano_core = new BlockVolcano().setBlockName("volcano_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_core"); + volcano_rad_core = new BlockVolcano().setBlockName("volcano_rad_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_rad_core"); statue_elb = new DecoBlockAlt(Material.iron).setBlockName("#null").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); statue_elb_g = new DecoBlockAlt(Material.iron).setBlockName("#void").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); @@ -2399,6 +2408,10 @@ public class ModBlocks { FluidRegistry.registerFluid(volcanic_lava_fluid); volcanic_lava_block = new VolcanicBlock(volcanic_lava_fluid, Material.lava).setBlockName("volcanic_lava_block").setResistance(500F); + rad_lava_fluid = new RadFluid().setLuminosity(15).setDensity(3000).setViscosity(3000).setTemperature(1300).setUnlocalizedName("rad_lava_fluid"); + FluidRegistry.registerFluid(rad_lava_fluid); + rad_lava_block = new RadBlock(rad_lava_fluid, Material.lava).setBlockName("rad_lava_block").setResistance(500F); + sulfuric_acid_fluid = new GenericFluid("sulfuric_acid_fluid").setDensity(1840).setViscosity(1000).setTemperature(273); FluidRegistry.registerFluid(sulfuric_acid_fluid); sulfuric_acid_block = new GenericFluidBlock(sulfuric_acid_fluid, Material.water, "sulfuric_acid_still", "sulfuric_acid_flowing").setDamage(ModDamageSource.acid, 5F).setBlockName("sulfuric_acid_block").setResistance(500F); @@ -2543,6 +2556,7 @@ public class ModBlocks { GameRegistry.registerBlock(ore_depth_nether_neodymium, ItemBlockBase.class, ore_depth_nether_neodymium.getUnlocalizedName()); //Basalt ores + register(ore_basalt); GameRegistry.registerBlock(basalt_sulfur, basalt_sulfur.getUnlocalizedName()); GameRegistry.registerBlock(basalt_fluorite, basalt_fluorite.getUnlocalizedName()); GameRegistry.registerBlock(basalt_asbestos, basalt_asbestos.getUnlocalizedName()); @@ -2936,6 +2950,7 @@ public class ModBlocks { register(ore_sellafield_emerald); register(ore_sellafield_uranium_scorched); register(ore_sellafield_schrabidium); + register(ore_sellafield_radgem); GameRegistry.registerBlock(sellafield, ItemBlockNamedMeta.class, sellafield.getUnlocalizedName()); //Geysirs @@ -3459,6 +3474,7 @@ public class ModBlocks { GameRegistry.registerBlock(fire_digamma, fire_digamma.getUnlocalizedName()); GameRegistry.registerBlock(digamma_matter, digamma_matter.getUnlocalizedName()); register(volcano_core); + register(volcano_rad_core); //AMS GameRegistry.registerBlock(ams_base, ams_base.getUnlocalizedName()); @@ -3535,6 +3551,7 @@ public class ModBlocks { GameRegistry.registerBlock(schrabidic_block, schrabidic_block.getUnlocalizedName()); GameRegistry.registerBlock(corium_block, corium_block.getUnlocalizedName()); GameRegistry.registerBlock(volcanic_lava_block, volcanic_lava_block.getUnlocalizedName()); + GameRegistry.registerBlock(rad_lava_block, rad_lava_block.getUnlocalizedName()); GameRegistry.registerBlock(sulfuric_acid_block, sulfuric_acid_block.getUnlocalizedName()); //GameRegistry.registerBlock(concrete_liquid, concrete_liquid.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java index 2766da2ce..0d586e803 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java @@ -81,8 +81,9 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB } public static class TileEntityVolcanoCore extends TileEntity { - + private static List volcanoExplosion = Arrays.asList(new ExAttrib[] {ExAttrib.NODROP, ExAttrib.LAVA_V, ExAttrib.NOSOUND, ExAttrib.ALLMOD, ExAttrib.NOHURT}); + private static List volcanoRadExplosion = Arrays.asList(new ExAttrib[] {ExAttrib.NODROP, ExAttrib.LAVA_R, ExAttrib.NOSOUND, ExAttrib.ALLMOD, ExAttrib.NOHURT}); public int volcanoTimer; @@ -118,15 +119,28 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB if(this.shouldGrow()) { worldObj.setBlock(xCoord, yCoord + 1, zCoord, this.getBlockType(), this.getBlockMetadata(), 3); - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.volcanic_lava_block); + worldObj.setBlock(xCoord, yCoord, zCoord, getLava()); return; } else if(this.isExtinguishing()) { - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.volcanic_lava_block); + worldObj.setBlock(xCoord, yCoord, zCoord, getLava()); return; } } } } + + public boolean isRadioacitve() { + return this.getBlockType() == ModBlocks.volcano_rad_core; + } + + protected Block getLava() { + if(isRadioacitve()) return ModBlocks.rad_lava_block; + return ModBlocks.volcanic_lava_block; + } + + protected List getExpAttrb() { + return this.isRadioacitve() ? this.volcanoRadExplosion : this.volcanoExplosion; + } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -185,20 +199,15 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB } /* TODO */ - private boolean doesPyroclastic() { - return false; - } - - private double getPyroclasticRange() { - return 0D; - } + private boolean doesPyroclastic() { return false; } + private double getPyroclasticRange() { return 0D; } /** Causes two magma explosions, one from bedrock to the core and one from the core to 15 blocks above. */ private void blastMagmaChannel() { ExplosionNT explosion = new ExplosionNT(worldObj, null, xCoord + 0.5, yCoord + worldObj.rand.nextInt(15) + 1.5, zCoord + 0.5, 7); - explosion.addAllAttrib(volcanoExplosion).explode(); + explosion.addAllAttrib(getExpAttrb()).explode(); ExplosionNT explosion2 = new ExplosionNT(worldObj, null, xCoord + 0.5 + worldObj.rand.nextGaussian() * 3, worldObj.rand.nextInt(yCoord + 1), zCoord + 0.5 + worldObj.rand.nextGaussian() * 3, 10); - explosion2.addAllAttrib(volcanoExplosion).explode(); + explosion2.addAllAttrib(getExpAttrb()).explode(); } /** Causes two magma explosions at a random position around the core, one at normal and one at half range. */ @@ -207,7 +216,7 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB for(int i = 0; i < 2; i++) { double dist = size / (double) (i + 1); ExplosionNT explosion = new ExplosionNT(worldObj, null, xCoord + 0.5 + worldObj.rand.nextGaussian() * dist, yCoord + 0.5 + worldObj.rand.nextGaussian() * dist, zCoord + 0.5 + worldObj.rand.nextGaussian() * dist, 7); - explosion.addAllAttrib(volcanoExplosion).explode(); + explosion.addAllAttrib(getExpAttrb()).explode(); } } @@ -224,7 +233,7 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB if(!b.isAir(worldObj, x, y, z) && b.getExplosionResistance(null) < Blocks.obsidian.getExplosionResistance(null)) { //turn into lava if solid block, otherwise just break - worldObj.setBlock(x, y, z, b.isNormalCube() ? ModBlocks.volcanic_lava_block : Blocks.air); + worldObj.setBlock(x, y, z, b.isNormalCube() ? this.getLava() : Blocks.air); } } } @@ -236,8 +245,8 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB int rY = yCoord + worldObj.rand.nextInt(11); int rZ = zCoord - 10 + worldObj.rand.nextInt(21); - if(worldObj.getBlock(rX, rY, rZ) == Blocks.air && worldObj.getBlock(rX, rY - 1, rZ) == ModBlocks.volcanic_lava_block) - worldObj.setBlock(rX, rY, rZ, ModBlocks.volcanic_lava_block); + if(worldObj.getBlock(rX, rY, rZ) == Blocks.air && worldObj.getBlock(rX, rY - 1, rZ) == this.getLava()) + worldObj.setBlock(rX, rY, rZ, this.getLava()); } /** Creates a 3x3x3 lava sphere around the core. */ @@ -248,7 +257,7 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB for(int k = -1; k <= 1; k++) { if(i != 0 || j != 0 || k != 0) { - worldObj.setBlock(xCoord + i, yCoord + j, zCoord + k, ModBlocks.volcanic_lava_block); + worldObj.setBlock(xCoord + i, yCoord + j, zCoord + k, this.getLava()); } } } @@ -264,7 +273,11 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB frag.motionY = 1D + worldObj.rand.nextDouble(); frag.motionX = worldObj.rand.nextGaussian() * 0.2D; frag.motionZ = worldObj.rand.nextGaussian() * 0.2D; - frag.setVolcano(true); + if(this.isRadioacitve()) { + frag.setRadVolcano(true); + } else { + frag.setVolcano(true); + } worldObj.spawnEntityInWorld(frag); } } diff --git a/src/main/java/com/hbm/blocks/fluid/RadBlock.java b/src/main/java/com/hbm/blocks/fluid/RadBlock.java new file mode 100644 index 000000000..8828bd954 --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/RadBlock.java @@ -0,0 +1,71 @@ +package com.hbm.blocks.fluid; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.init.Blocks; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.fluids.Fluid; + +public class RadBlock extends VolcanicBlock { + + @SideOnly(Side.CLIENT) public static IIcon stillIconRad; + @SideOnly(Side.CLIENT) public static IIcon flowingIconRad; + + public RadBlock(Fluid fluid, Material material) { + super(fluid, material); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister register) { + stillIconRad = register.registerIcon(RefStrings.MODID + ":rad_lava_still"); + flowingIconRad = register.registerIcon(RefStrings.MODID + ":rad_lava_flowing"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1) ? stillIconRad : flowingIconRad; + } + + @Override + public void onSolidify(World world, int x, int y, int z, int lavaCount, int basaltCount, Random rand) { + int r = rand.nextInt(400); + + Block above = world.getBlock(x, y + 10, z); + boolean canMakeGem = lavaCount + basaltCount == 6 && lavaCount < 3 && (above == ModBlocks.sellafield_slaked || above == ModBlocks.rad_lava_block); + int meta = 5 + rand.nextInt(3); + + if(r < 2) world.setBlock(x, y, z, ModBlocks.ore_sellafield_diamond, meta, 3); + else if(r == 2) world.setBlock(x, y, z, ModBlocks.ore_sellafield_emerald, meta, 3); + else if(r < 20 && canMakeGem) world.setBlock(x, y, z, ModBlocks.ore_sellafield_radgem, meta, 3); + else world.setBlock(x, y, z, ModBlocks.sellafield_slaked, meta, 3); + } + + @Override + public Block getBasaltForCheck() { + return ModBlocks.sellafield_slaked; + } + + @Override + public Block getReaction(World world, int x, int y, int z) { + + Block b = world.getBlock(x, y, z); + if(b.getMaterial() == Material.water) return Blocks.stone; + if(b == Blocks.log || b == Blocks.log2) return ModBlocks.waste_log; + if(b == Blocks.planks) return ModBlocks.waste_planks; + if(b == Blocks.leaves || b == Blocks.leaves2) return Blocks.fire; + if(b == Blocks.diamond_ore) return ModBlocks.ore_sellafield_radgem; + if(b == ModBlocks.ore_uranium || b == ModBlocks.ore_gneiss_uranium) return world.rand.nextInt(5) == 0 ? ModBlocks.ore_sellafield_schrabidium : ModBlocks.ore_sellafield_uranium_scorched; + return null; + } +} diff --git a/src/main/java/com/hbm/blocks/fluid/RadFluid.java b/src/main/java/com/hbm/blocks/fluid/RadFluid.java new file mode 100644 index 000000000..77de22cab --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/RadFluid.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.fluid; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.Fluid; + +public class RadFluid extends Fluid { + + public RadFluid() { + super("rad_lava_fluid"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon() { + return getStillIcon(); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getStillIcon() { + return RadBlock.stillIconRad; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getFlowingIcon() { + return RadBlock.flowingIconRad; + } +} diff --git a/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java b/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java index d81ec02ad..d82d67808 100644 --- a/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java @@ -51,26 +51,18 @@ public class VolcanicBlock extends BlockFluidClassic { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { Block b = getReaction(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - if(b != null) - world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, b); + if(b != null) world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, b, b == ModBlocks.ore_basalt ? 3 : 0, 3); } } public Block getReaction(World world, int x, int y, int z) { Block b = world.getBlock(x, y, z); - if(b.getMaterial() == Material.water) { - return Blocks.stone; - } - if(b == Blocks.log || b == Blocks.log2) { - return ModBlocks.waste_log; - } - if(b == Blocks.planks) { - return ModBlocks.waste_planks; - } - if(b == Blocks.leaves || b == Blocks.leaves2) { - return Blocks.fire; - } + if(b.getMaterial() == Material.water) return Blocks.stone; + if(b == Blocks.log || b == Blocks.log2) return ModBlocks.waste_log; + if(b == Blocks.planks) return ModBlocks.waste_planks; + if(b == Blocks.leaves || b == Blocks.leaves2) return Blocks.fire; + if(b == Blocks.diamond_ore) return ModBlocks.ore_basalt; return null; } @@ -87,30 +79,33 @@ public class VolcanicBlock extends BlockFluidClassic { if(b == this) lavaCount++; - if(b == ModBlocks.basalt) { + if(b == getBasaltForCheck()) { basaltCount++; } } if(!world.isRemote && ((!this.isSourceBlock(world, x, y, z) && lavaCount < 2) || (rand.nextInt(5) == 0) && lavaCount < 5) && world.getBlock(x, y - 1, z) != this) { - - int r = rand.nextInt(200); - - Block above = world.getBlock(x, y + 10, z); - boolean canMakeGem = lavaCount + basaltCount == 6 && lavaCount < 3 && (above == ModBlocks.basalt || above == ModBlocks.volcanic_lava_block); - - if(r < 2) - world.setBlock(x, y, z, ModBlocks.basalt_sulfur); - else if(r == 2) - world.setBlock(x, y, z, ModBlocks.basalt_asbestos); - else if(r == 3) - world.setBlock(x, y, z, ModBlocks.basalt_fluorite); - else if(r < 14 && canMakeGem) - world.setBlock(x, y, z, ModBlocks.basalt_gem); - else - world.setBlock(x, y, z, ModBlocks.basalt); + this.onSolidify(world, x, y, z, lavaCount, basaltCount, rand); } } + + public Block getBasaltForCheck() { + return ModBlocks.basalt; + } + + public void onSolidify(World world, int x, int y, int z, int lavaCount, int basaltCount, Random rand) { + int r = rand.nextInt(200); + + Block above = world.getBlock(x, y + 10, z); + boolean canMakeGem = lavaCount + basaltCount == 6 && lavaCount < 3 && (above == ModBlocks.basalt || above == ModBlocks.volcanic_lava_block); + + if(r < 2) world.setBlock(x, y, z, ModBlocks.ore_basalt, 0, 3); + else if(r == 2) world.setBlock(x, y, z, ModBlocks.ore_basalt, 1, 3); + else if(r == 3) world.setBlock(x, y, z, ModBlocks.ore_basalt, 2, 3); + else if(r == 4) world.setBlock(x, y, z, ModBlocks.ore_basalt, 4, 3); + else if(r < 15 && canMakeGem) world.setBlock(x, y, z, ModBlocks.ore_basalt, 3, 3); + else world.setBlock(x, y, z, ModBlocks.basalt); + } @Override public boolean canDisplace(IBlockAccess world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java b/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java index 19033a933..f35be20f5 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java @@ -40,7 +40,7 @@ public class BlockGasClorine extends BlockGasBase { EntityLivingBase entityLiving = (EntityLivingBase) entity; - if(ArmorRegistry.hasAllProtection(entityLiving, 3, HazardClass.GAS_CHLORINE)) { + if(ArmorRegistry.hasAllProtection(entityLiving, 3, HazardClass.GAS_LUNG)) { ArmorUtil.damageGasMaskFilter(entityLiving, 1); } else { diff --git a/src/main/java/com/hbm/blocks/generic/BlockFissure.java b/src/main/java/com/hbm/blocks/generic/BlockFissure.java index 003bd8e23..dac40abf0 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFissure.java +++ b/src/main/java/com/hbm/blocks/generic/BlockFissure.java @@ -1,6 +1,9 @@ package com.hbm.blocks.generic; +import java.util.Random; + import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; @@ -11,6 +14,7 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; +import net.minecraft.world.World; public class BlockFissure extends Block implements IBlockMultiPass { @@ -21,6 +25,7 @@ public class BlockFissure extends Block implements IBlockMultiPass { this.setBlockTextureName("bedrock"); this.setBlockUnbreakable(); this.setResistance(1_000_000); + this.setTickRandomly(true); } @Override @@ -41,6 +46,16 @@ public class BlockFissure extends Block implements IBlockMultiPass { return this.overlay; } + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z)) world.setBlock(x, y + 1, z, ModBlocks.volcanic_lava_block); + } + + @Override + public boolean shouldRenderItemMulti() { + return true; + } + @Override public int getPasses() { return 2; diff --git a/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java new file mode 100644 index 000000000..51affeaad --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java @@ -0,0 +1,74 @@ +package com.hbm.blocks.generic; + +import java.util.Locale; +import java.util.Random; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockOreBasalt extends BlockEnumMulti { + + public BlockOreBasalt() { + super(Material.rock, EnumBasaltOreType.class, true, true); + } + + public static enum EnumBasaltOreType { + SULFUR, + FLUORITE, + ASBESTOS, + GEM, + MOLYSITE + } + + public String getTextureMultiName(Enum num) { + return this.getTextureName() + "_" + num.name().toLowerCase(Locale.US); + } + + public String getUnlocalizedMultiName(Enum num) { + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); + } + + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + if(meta == EnumBasaltOreType.SULFUR.ordinal()) return ModItems.sulfur; + if(meta == EnumBasaltOreType.FLUORITE.ordinal()) return ModItems.fluorite; + if(meta == EnumBasaltOreType.ASBESTOS.ordinal()) return ModItems.ingot_asbestos; + if(meta == EnumBasaltOreType.GEM.ordinal()) return ModItems.gem_volcanic; + if(meta == EnumBasaltOreType.MOLYSITE.ordinal()) return ModItems.powder_molysite; + return super.getItemDropped(meta, rand, fortune); + } + + @Override + public void onEntityWalking(World world, int x, int y, int z, Entity entity) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == EnumBasaltOreType.ASBESTOS.ordinal() && world.getBlock(x, y + 1, z) == Blocks.air) { + if(world.rand.nextInt(10) == 0) world.setBlock(x, y + 1, z, ModBlocks.gas_asbestos); + for(int i = 0; i < 5; i++) world.spawnParticle("townaura", x + world.rand.nextFloat(), y + 1.1, z + world.rand.nextFloat(), 0.0D, 0.0D, 0.0D); + } + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == EnumBasaltOreType.ASBESTOS.ordinal()) for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { + world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_asbestos); + } + } + } + + @Override + public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float chance, int fortune) { + if(meta == EnumBasaltOreType.ASBESTOS.ordinal()) world.setBlock(x, y, z, ModBlocks.gas_asbestos); + super.dropBlockAsItemWithChance(world, x, y, z, meta, chance, fortune); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java index a923c5343..262b2e60e 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; import com.hbm.render.block.RenderBlockMultipass; import cpw.mods.fml.relauncher.Side; @@ -69,6 +70,7 @@ public class BlockSellafieldOre extends BlockSellafieldSlaked implements IBlockM public Item getItemDropped(int meta, Random rand, int fortune) { if(this == ModBlocks.ore_sellafield_diamond) return Items.diamond; if(this == ModBlocks.ore_sellafield_emerald) return Items.emerald; + if(this == ModBlocks.ore_sellafield_radgem) return ModItems.gem_rad; return Item.getItemFromBlock(this); } @@ -97,6 +99,7 @@ public class BlockSellafieldOre extends BlockSellafieldSlaked implements IBlockM if(this == ModBlocks.ore_sellafield_diamond) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); if(this == ModBlocks.ore_sellafield_emerald) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); + if(this == ModBlocks.ore_sellafield_radgem) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); return j1; } diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index 645a12413..b962781da 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -87,6 +87,7 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_emerald, m, 1)) .max(i * 5).sol(true).mB(ModBlocks.ore_beryllium)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 99)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 99)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_radgem, m, 1)) .max(i * 5).sol(true).mB(Blocks.diamond_ore)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.rock)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.sand)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.ground)); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index d820dd9dc..885ec1a96 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -379,7 +379,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.tnt, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_tnt, 'S', ModItems.safety_fuse }); CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.semtex, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_semtex, 'S', ModItems.safety_fuse }); CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.c4, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_c4, 'S', ModItems.safety_fuse }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.fissure_bomb, 1), new Object[] { "SUS", "RPR", "SUS", 'S', ModBlocks.semtex, 'U', U238.block(), 'R', OreDictManager.getReflector(), 'P', PU239.billet() }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.fissure_bomb, 1), new Object[] { "SUS", "RPR", "SUS", 'S', ModBlocks.semtex, 'U', U238.block(), 'R', TA.ingot(), 'P', PU239.billet() }); //IF Grenades diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 40bae46eb..458419d3d 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -164,10 +164,15 @@ public class EntityFalloutRain extends Entity { if(b.getMaterial() == Material.air) continue; if(b == Blocks.bedrock) return; + if(b == ModBlocks.volcano_core) { + worldObj.setBlock(x, y, z, ModBlocks.volcano_rad_core, worldObj.getBlockMetadata(x, y, z), 3); + continue; + } + Block ab = worldObj.getBlock(x, y + 1, z); int meta = worldObj.getBlockMetadata(x, y, z); - if(b != ModBlocks.fallout && (ab == Blocks.air || (ab.isReplaceable(worldObj, x, y + 1, z) && !ab.getMaterial().isLiquid()))) { + if(depth == 0 && b != ModBlocks.fallout && (ab == Blocks.air || (ab.isReplaceable(worldObj, x, y + 1, z) && !ab.getMaterial().isLiquid()))) { double d = dist / 100; diff --git a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java index c7cc1a674..a847e7e96 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java +++ b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java @@ -52,13 +52,14 @@ public class EntityShrapnel extends EntityThrowable { if(!worldObj.isRemote) this.setDead(); - if(this.dataWatcher.getWatchableObjectByte(16) == 2) { + int b = this.dataWatcher.getWatchableObjectByte(16); + if(b == 2 || b == 4) { if(!worldObj.isRemote) { if(motionY < -0.2D) { if(worldObj.getBlock(mop.blockX, mop.blockY + 1, mop.blockZ).isReplaceable(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ)) - worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.volcanic_lava_block); + worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, b == 2 ? ModBlocks.volcanic_lava_block : ModBlocks.rad_lava_block); for(int x = mop.blockX - 1; x <= mop.blockX + 1; x++) { for(int y = mop.blockY; y <= mop.blockY + 2; y++) { @@ -73,7 +74,7 @@ public class EntityShrapnel extends EntityThrowable { if(motionY > 0) { ExplosionNT explosion = new ExplosionNT(worldObj, null, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 7); explosion.addAttrib(ExAttrib.NODROP); - explosion.addAttrib(ExAttrib.LAVA_V); + explosion.addAttrib(b == 2 ? ExAttrib.LAVA_V : ExAttrib.LAVA_R); explosion.addAttrib(ExAttrib.NOSOUND); explosion.addAttrib(ExAttrib.ALLMOD); explosion.addAttrib(ExAttrib.NOHURT); @@ -108,6 +109,10 @@ public class EntityShrapnel extends EntityThrowable { this.dataWatcher.updateObject(16, (byte) (b ? 3 : 0)); } + public void setRadVolcano(boolean b) { + this.dataWatcher.updateObject(16, (byte) (b ? 4 : 0)); + } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index 820f3df46..ea23952ef 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -538,7 +538,7 @@ public class ExplosionChaos { if(entity.getDistance(x, y, z) > range) continue; - if(ArmorRegistry.hasAnyProtection(entity, 3, HazardClass.GAS_CHLORINE, HazardClass.GAS_CORROSIVE)) { + if(ArmorRegistry.hasAnyProtection(entity, 3, HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING)) { ArmorUtil.damageGasMaskFilter(entity, 1); } else { entity.addPotionEffect(new PotionEffect(Potion.blindness.getId(), 5 * 20, 0)); diff --git a/src/main/java/com/hbm/explosion/ExplosionNT.java b/src/main/java/com/hbm/explosion/ExplosionNT.java index 1f56cc251..5de3072b3 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNT.java +++ b/src/main/java/com/hbm/explosion/ExplosionNT.java @@ -273,6 +273,8 @@ public class ExplosionNT extends Explosion { } } else if(has(ExAttrib.LAVA_V)) { this.worldObj.setBlock(i, j, k, ModBlocks.volcanic_lava_block); + } else if(has(ExAttrib.LAVA_R)) { + this.worldObj.setBlock(i, j, k, ModBlocks.rad_lava_block); } } } @@ -327,7 +329,8 @@ public class ExplosionNT extends Explosion { DIGAMMA, DIGAMMA_CIRCUIT, LAVA, //again the same thing but lava - LAVA_V, //again the same thing but volcaniclava + LAVA_V, //again the same thing but volcanic lava + LAVA_R, //again the same thing but radioactive lava ERRODE, //will turn select blocks into gravel or sand ALLMOD, //block placer attributes like fire are applied for all destroyed blocks ALLDROP, //miner TNT! diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index b9ec033e7..61e96b2b2 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -528,7 +528,7 @@ public class EntityEffectHandler { if(!RadiationConfig.enablePollution) return; - if(RadiationConfig.enablePoison && !ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_CORROSIVE) && entity.ticksExisted % 60 == 0) { + if(RadiationConfig.enablePoison && !ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_BLISTERING) && entity.ticksExisted % 60 == 0) { float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.POISON); diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index 9e1e8bc13..5dac19082 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -376,7 +376,7 @@ public class BulletConfigFactory { EntityLivingBase entity = (EntityLivingBase) e; - if(ArmorRegistry.hasAllProtection(entity, 3, HazardClass.GAS_CHLORINE)) + if(ArmorRegistry.hasAllProtection(entity, 3, HazardClass.GAS_LUNG)) continue; PotionEffect eff0 = new PotionEffect(Potion.poison.id, duration, 2, true); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 4995290e8..930675550 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -12,6 +12,7 @@ import static com.hbm.inventory.OreDictManager.DictFrame.*; import static com.hbm.inventory.OreNames.*; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockOreBasalt.EnumBasaltOreType; import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.config.GeneralConfig; import com.hbm.hazard.HazardData; @@ -216,6 +217,7 @@ public class OreDictManager { public static final DictFrame CINNABAR = new DictFrame("Cinnabar"); public static final DictFrame BORAX = new DictFrame("Borax"); public static final DictFrame CHLOROCALCITE = new DictFrame("Chlorocalcite"); + public static final DictFrame MOLYSITE = new DictFrame("Molysite"); public static final DictFrame SODALITE = new DictFrame("Sodalite"); public static final DictFrame VOLCANIC = new DictFrame("Volcanic"); public static final DictFrame HEMATITE = new DictFrame("Hematite"); @@ -390,15 +392,15 @@ public class OreDictManager { EUPH .nugget(nugget_euphemium) .ingot(ingot_euphemium) .dust(powder_euphemium) .block(block_euphemium); DNT .nugget(nugget_dineutronium) .ingot(ingot_dineutronium) .dust(powder_dineutronium) .block(block_dineutronium); FIBER .ingot(ingot_fiberglass) .block(block_fiberglass); - ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, basalt_asbestos, DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS)); + ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, basalt_asbestos, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.ASBESTOS), DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS)); OSMIRIDIUM .nugget(nugget_osmiridium) .ingot(ingot_osmiridium); /* * DUST AND GEM ORES */ - S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); + S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.SULFUR), ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); KNO .dust(niter) .block(block_niter) .ore(ore_niter); - F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, basalt_fluorite); + F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, basalt_fluorite, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.FLUORITE)); LIGNITE .gem(lignite) .dust(powder_lignite) .ore(ore_lignite); COALCOKE .gem(fromOne(coke, EnumCokeType.COAL)) .block(fromOne(block_coke, EnumCokeType.COAL)); PETCOKE .gem(fromOne(coke, EnumCokeType.PETROLEUM)) .block(fromOne(block_coke, EnumCokeType.PETROLEUM)); @@ -406,8 +408,9 @@ public class OreDictManager { CINNABAR .crystal(cinnebar) .gem(cinnebar) .ore(ore_cinnebar, ore_depth_cinnebar); BORAX .dust(powder_borax) .ore(ore_depth_borax); CHLOROCALCITE .dust(powder_chlorocalcite); + MOLYSITE .dust(powder_molysite) .ore(DictFrame.fromOne(ore_basalt, EnumBasaltOreType.MOLYSITE)); SODALITE .gem(gem_sodalite); - VOLCANIC .gem(gem_volcanic) .ore(basalt_gem); + VOLCANIC .gem(gem_volcanic) .ore(basalt_gem, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.GEM)); HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE)); MALACHITE .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); SLAG .block(block_slag); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 2669476ed..527133b66 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -496,12 +496,12 @@ public class Fluids { metaOrder.add(PHEROMONE_M); for(FluidType custom : customFluids) metaOrder.add(custom); - CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_CHLORINE, false))); - PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_CHLORINE, false))); - MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_CORROSIVE, false)) - .addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0)))); + CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_LUNG, false))); + PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_LUNG, false))); + MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_BLISTERING, false)) + .addEntry(new ToxinEffects(HazardClass.GAS_BLISTERING, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0)))); ESTRADIOL.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.PARTICLE_FINE, false).add(new PotionEffect(HbmPotion.death.id, 60 * 60 * 20, 0)))); - REDMUD.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, false).add(new PotionEffect(Potion.wither.id, 30 * 20, 2)))); + REDMUD.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.GAS_BLISTERING, false).add(new PotionEffect(Potion.wither.id, 30 * 20, 2)))); double eff_steam_boil = 1.0D; double eff_steam_heatex = 0.25D; diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 2b70c1359..3c5b8bdd2 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -45,6 +45,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); //recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); + recipes.put(MOLYSITE.dust(), new Pair(new ItemStack(Items.iron_ingot), new FluidStack(Fluids.CHLORINE, 250))); recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(SODALITE.gem(), new Pair(new ItemStack(ModItems.powder_sodium), new FluidStack(Fluids.CHLORINE, 100))); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a640258bd..506af64a9 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -425,6 +425,7 @@ public class ModItems { public static Item gem_sodalite; public static Item gem_tantalium; public static Item gem_volcanic; + public static Item gem_rad; public static Item gem_alexandrite; public static Item powder_lead; @@ -523,6 +524,7 @@ public class ModItems { public static Item powder_impure_osmiridium; public static Item powder_borax; public static Item powder_chlorocalcite; + public static Item powder_molysite; public static Item powder_lanthanium; public static Item powder_actinium; @@ -2859,6 +2861,7 @@ public class ModItems { gem_sodalite = new ItemCustomLore().setUnlocalizedName("gem_sodalite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_sodalite"); gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); gem_volcanic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_volcanic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_volcanic"); + gem_rad = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_rad").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_rad"); gem_alexandrite = new ItemAlexandrite().setUnlocalizedName("gem_alexandrite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_alexandrite"); powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); @@ -2965,6 +2968,7 @@ public class ModItems { powder_impure_osmiridium = new Item().setUnlocalizedName("powder_impure_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_impure_osmiridium"); powder_borax = new Item().setUnlocalizedName("powder_borax").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_borax"); powder_chlorocalcite = new Item().setUnlocalizedName("powder_chlorocalcite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_chlorocalcite"); + powder_molysite = new Item().setUnlocalizedName("powder_molysite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_molysite"); fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium"); fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cobalt"); @@ -5819,6 +5823,7 @@ public class ModItems { GameRegistry.registerItem(powder_impure_osmiridium, powder_impure_osmiridium.getUnlocalizedName()); GameRegistry.registerItem(powder_borax, powder_borax.getUnlocalizedName()); GameRegistry.registerItem(powder_chlorocalcite, powder_chlorocalcite.getUnlocalizedName()); + GameRegistry.registerItem(powder_molysite, powder_molysite.getUnlocalizedName()); GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName()); GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName()); GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName()); @@ -5944,6 +5949,7 @@ public class ModItems { GameRegistry.registerItem(gem_sodalite, gem_sodalite.getUnlocalizedName()); GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName()); GameRegistry.registerItem(gem_volcanic, gem_volcanic.getUnlocalizedName()); + GameRegistry.registerItem(gem_rad, gem_rad.getUnlocalizedName()); GameRegistry.registerItem(gem_alexandrite, gem_alexandrite.getUnlocalizedName()); //Fragments diff --git a/src/main/java/com/hbm/items/armor/ArmorGasMask.java b/src/main/java/com/hbm/items/armor/ArmorGasMask.java index 5cb086925..1359848e8 100644 --- a/src/main/java/com/hbm/items/armor/ArmorGasMask.java +++ b/src/main/java/com/hbm/items/armor/ArmorGasMask.java @@ -148,9 +148,9 @@ public class ArmorGasMask extends ItemArmor implements IGasMask { public ArrayList getBlacklist(ItemStack stack, EntityLivingBase entity) { if(this == ModItems.gas_mask_mono) { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CHLORINE, HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT, HazardClass.BACTERIA})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA})); } else { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_BLISTERING})); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorHEV.java b/src/main/java/com/hbm/items/armor/ArmorHEV.java index b1fd292db..df2666d68 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHEV.java +++ b/src/main/java/com/hbm/items/armor/ArmorHEV.java @@ -3,6 +3,7 @@ package com.hbm.items.armor; import org.lwjgl.opengl.GL11; import com.hbm.extprop.HbmLivingProps; +import com.hbm.items.ModItems; import com.hbm.render.model.ModelArmorHEV; import cpw.mods.fml.relauncher.Side; @@ -45,7 +46,7 @@ public class ArmorHEV extends ArmorFSBPowered { @Override public void handleOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - if(this.hasFSBArmorIgnoreCharge(player)) { + if(this.hasFSBArmorIgnoreCharge(player) && player.inventory.armorInventory[2].getItem() == ModItems.hev_plate) { if(event.type == ElementType.ARMOR) { event.setCanceled(true); diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java index 7c8fd77f6..cacecfc27 100644 --- a/src/main/java/com/hbm/items/armor/ItemModGasmask.java +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -99,9 +99,9 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { public ArrayList getBlacklist(ItemStack stack, EntityLivingBase entity) { if(this == ModItems.attachment_mask_mono) { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CHLORINE, HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT, HazardClass.BACTERIA})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA})); } else { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_BLISTERING})); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 709db4fdb..164046197 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -261,7 +261,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public boolean canLaunch() { - if(power >= maxPower * 0.75 && isMissileValid() && hasDesignator() && hasFuel()) + if(power >= maxPower * 0.75 && isMissileValid() && hasFuel()) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java index e8f98a245..550deda1a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -25,6 +25,8 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -45,6 +47,22 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl public boolean isOn = false; public float rotation; public float prevRotation; + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.progress = nbt.getInteger("progress"); + this.power = nbt.getLong("power"); + this.savedParticles = nbt.getInteger("savedParticles"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("progress", progress); + nbt.setLong("power", power); + nbt.setInteger("savedParticles", savedParticles); + } public TileEntityMachineExposureChamber() { /* diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java index c9a3fe5b5..776289454 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java @@ -18,6 +18,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -212,15 +213,16 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE static { for(int i = 0; i < ItemWasteShort.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(1500, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(150, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(1500, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(150, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); } for(int i = 0; i < ItemWasteLong.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(500, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(50, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(500, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(50, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); } - - fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(50, 5 * 60 * 20, null)); + + fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(50, 5 * 60 * 20, null)); + fuels.put( new ComparableStack(ModItems.gem_rad), new Triplet(25_000, 30 * 60 * 20, new ItemStack(Items.diamond))); } private Triplet grabResult(ItemStack stack) { diff --git a/src/main/java/com/hbm/util/ArmorRegistry.java b/src/main/java/com/hbm/util/ArmorRegistry.java index fc1a20601..c098d6a89 100644 --- a/src/main/java/com/hbm/util/ArmorRegistry.java +++ b/src/main/java/com/hbm/util/ArmorRegistry.java @@ -100,14 +100,14 @@ public class ArmorRegistry { } public static enum HazardClass { - GAS_CHLORINE("hazard.gasChlorine"), //also attacks eyes -> no half mask + GAS_LUNG("hazard.gasChlorine"), //also attacks eyes -> no half mask GAS_MONOXIDE("hazard.gasMonoxide"), //only affects lungs GAS_INERT("hazard.gasInert"), //SA PARTICLE_COARSE("hazard.particleCoarse"), //only affects lungs PARTICLE_FINE("hazard.particleFine"), //only affects lungs BACTERIA("hazard.bacteria"), //no half masks - NERVE_AGENT("hazard.nerveAgent"), //aggressive nerve agent, also attacks skin - GAS_CORROSIVE("hazard.corrosive"), //corrosive substance, also attacks skin + //NERVE_AGENT("hazard.nerveAgent"), //aggressive nerve agent, also attacks skin + GAS_BLISTERING("hazard.corrosive"), //corrosive substance, also attacks skin SAND("hazard.sand"), //blinding sand particles LIGHT("hazard.light"); //blinding light diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index ddf3d89dd..5d84f1d3d 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -30,16 +30,16 @@ public class ArmorUtil { */ public static void register() { - ArmorRegistry.registerHazard(ModItems.gas_mask_filter, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.NERVE_AGENT); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA); ArmorRegistry.registerHazard(ModItems.gas_mask_filter_mono, HazardClass.PARTICLE_COARSE, HazardClass.GAS_MONOXIDE); - ArmorRegistry.registerHazard(ModItems.gas_mask_filter_combo, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.NERVE_AGENT); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter_combo, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE); ArmorRegistry.registerHazard(ModItems.gas_mask_filter_rag, HazardClass.PARTICLE_COARSE); - ArmorRegistry.registerHazard(ModItems.gas_mask_filter_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_CHLORINE); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_LUNG); ArmorRegistry.registerHazard(ModItems.gas_mask, HazardClass.SAND, HazardClass.LIGHT); ArmorRegistry.registerHazard(ModItems.gas_mask_m65, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.mask_rag, HazardClass.PARTICLE_COARSE); - ArmorRegistry.registerHazard(ModItems.mask_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_CHLORINE); + ArmorRegistry.registerHazard(ModItems.mask_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_LUNG); ArmorRegistry.registerHazard(ModItems.goggles, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.ashglasses, HazardClass.LIGHT, HazardClass.SAND); @@ -52,23 +52,23 @@ public class ArmorUtil { ArmorRegistry.registerHazard(ModItems.hazmat_helmet_grey, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.hazmat_paa_helmet, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.liquidator_helmet, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.t45_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.ajr_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.ajro_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.steamsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.hev_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.fau_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.dns_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.schrabidium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.envsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.trenchmaster_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.t45_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.ajr_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.ajro_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.steamsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.hev_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.fau_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.dns_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.schrabidium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.envsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.trenchmaster_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); //Ob ihr wirklich richtig steht, seht ihr wenn das Licht angeht! - registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.biochemgas.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.radiation.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.biochemgas.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.radiation.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); } private static void registerIfExists(String domain, String name, HazardClass... classes) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a4220206f..a3c117d78 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -567,6 +567,7 @@ flare.valve=Flussventil fluid.acid_fluid=Säure fluid.corium_fluid=Corium fluid.mud_fluid=Giftiger Schlamm +fluid.rad_lava_fluid=Vulkanische Lava fluid.schrabidic_fluid=Schrabidische Säure fluid.toxic_fluid=Stereotypischer grüner Schleim fluid.volcanic_lava_fluid=Vulkanische Lava @@ -1853,6 +1854,7 @@ item.gear_large.name=Großes Zahnrad item.gear_large_steel.name=Großes Stahlzahnrad item.geiger_counter.name=Mobiler Geigerzähler item.gem_alexandrite.name=Alexandrit +item.gem_rad.name=Radioaktiver Edelstein item.gem_sodalite.name=Sodalith item.gem_tantalium.name=Tantal-Polykristall item.gem_volcanic.name=Vulkanischer Edelstein @@ -2795,6 +2797,7 @@ item.powder_magic.name=Pulverisierte Verzauberung item.powder_magnetized_tungsten.name=Magnetisierter Wolframstaub item.powder_meteorite.name=Meteoritenstaub item.powder_meteorite_tiny.name=Kleiner Haufen Meteoritenstaub +item.powder_molysite.name=Molysit item.powder_neodymium.name=Neodymstaub item.powder_neodymium_tiny.name=Kleiner Haufen Neodymstaub item.powder_neptunium.name=Neptuniumstaub @@ -3541,13 +3544,9 @@ tile.barrel_steel.name=Stahlfass tile.barrel_tcalloy.name=Technetiumstahlfass tile.barricade.name=Sandsäcke tile.basalt.name=Basalt -tile.basalt_asbestos.name=Asbestreicher Basalt tile.basalt_brick.name=Basaltziegel -tile.basalt_fluorite.name=Fluoritreicher Basalt -tile.basalt_gem.name=Edelsteinreicher Basalt tile.basalt_polished.name=Polierter Basalt tile.basalt_smooth.name=Glatter Basalt -tile.basalt_sulfur.name=Schwefelreicher Basalt tile.basalt_tiles.name=Basaltfliesen tile.blast_door.name=Abschluss-Sprengtür tile.block_actinium.name=Actiniumblock @@ -4244,6 +4243,11 @@ tile.ore_alexandrite.name=Alexandriterz tile.ore_aluminium.name=Aluminiumerz tile.ore_asbestos.name=Asbesterz tile.ore_australium.name=Australisches Erz +tile.ore_basalt_asbestos.name=Asbestreicher Basalt +tile.ore_basalt_fluorite.name=Fluoritreicher Basalt +tile.ore_basalt_gem.name=Edelsteinreicher Basalt +tile.ore_basalt_molysite.name=Molysitreicher Basalt +tile.ore_basalt_sulfur.name=Schwefelreicher Basalt tile.ore_bedrock.name=Bedrock-Erz tile.ore_bedrock_coltan.name=Bedrock-Coltanerz tile.ore_bedrock_oil.name=Bedrock-Ölvorkommen @@ -4302,6 +4306,7 @@ tile.ore_reiium.name=Reiit tile.ore_schrabidium.name=Schrabidiumerz tile.ore_sellafield_diamond.name=Sellafit-Diamanterz tile.ore_sellafield_emerald.name=Sellafit-Smaragderz +tile.ore_sellafield_radgem.name=Sellafite-Edelsteinerz tile.ore_sellafield_schrabidium.name=Sellafit-Schrabidiumerz tile.ore_sellafield_uranium_scorched.name=Verschmortes Sellafit-Uranerz tile.ore_sulfur.name=Schwefelerz @@ -4368,6 +4373,7 @@ tile.pwr_port.name=PWR Zugangsport tile.pwr_port.desc=Erlaubt IO für Items und Flüssigkeiten$Platzierung: Hülle tile.pwr_reflector.name=PWR Neutronenreflektor tile.pwr_reflector.desc=Reflektier Neutronen auf Brennstäbe zurück$Platzierung: Hülle, für höhere Reaktivität$Gültiger Block für Hülle +tile.volcanic_lava_block.name=Vulkanische Lava tile.radar_screen.name=Radarbildschirm tile.radio_telex.name=Telex-Maschine tile.radio_torch_counter.name=Redstone-over-Radio Itemzähler @@ -4556,6 +4562,7 @@ tile.vent_cloud.name=Wolken-Auslass tile.vent_pink_cloud.name=Pinker Wolken-Auslass tile.vitrified_barrel.name=Fass voll vitrifiziertem Atommüll tile.volcano_core.name=Vulkankern +tile.volcano_rad_core.name=Rad-Vulkankern tile.volcanic_lava_block.name=Vulkanische Lava tile.waste_earth.name=Totes Gras tile.waste_leaves.name=Tote Blätter diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 05365875c..5c5bf6d10 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1081,6 +1081,7 @@ flare.valve=Flow Valve fluid.acid_fluid=Acid fluid.corium_fluid=Corium fluid.mud_fluid=Poisonous Mud +fluid.rad_lava_fluid=Volcanic Lava fluid.schrabidic_fluid=Schrabidic Acid fluid.toxic_fluid=Stereotypical Green Ooze fluid.volcanic_lava_fluid=Volcanic Lava @@ -2513,8 +2514,8 @@ item.fluid_barrel_infinite.name=Infinite Fluid Barrel item.fluid_duct.name=Fluid Duct: item.fluid_identifier.name=Fluid Identifier item.fluid_identifier.info=Universal fluid identifier for: -item.fluid_identifier.usage0=Right click fluid ducts to designate them for that fluid. -item.fluid_identifier.usage1=Shift right click fluid ducts to designate adjacent ducts +item.fluid_identifier.usage0=Right click fluid ducts to set their fluid type. +item.fluid_identifier.usage1=Shift right click fluid ducts to set adjacent ducts item.fluid_identifier.usage2=up to a maximum range of 64 ducts. item.fluid_identifier_multi.name=Multi Fluid Identifier item.fluid_identifier_multi.info=Universal fluid identifier for: @@ -2574,6 +2575,7 @@ item.gear_large.name=Large Gear item.gear_large_steel.name=Large Steel Gear item.geiger_counter.name=Handheld Geiger Counter item.gem_alexandrite.name=Alexandrite +item.gem_rad.name=Radioactive Gem item.gem_sodalite.name=Sodalite item.gem_tantalium.name=Tantalium Polycrystal item.gem_tantalium.desc='Tantalum' @@ -3604,6 +3606,7 @@ item.powder_magic.name=Pulverized Enchantment item.powder_magnetized_tungsten.name=Magnetized Tungsten Powder item.powder_meteorite.name=Meteorite Powder item.powder_meteorite_tiny.name=Tiny Pile of Meteorite Powder +item.powder_molysite.name=Molysite item.powder_neodymium.name=Neodymium Powder item.powder_neodymium_tiny.name=Tiny Pile of Neodymium Powder item.powder_neptunium.name=Neptunium Powder @@ -4502,13 +4505,9 @@ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags tile.basalt.name=Basalt -tile.basalt_asbestos.name=Asbestos-Rich Basalt tile.basalt_brick.name=Basalt Bricks -tile.basalt_fluorite.name=Fluorite-Rich Basalt -tile.basalt_gem.name=Gem-Rich Basalt tile.basalt_polished.name=Polished Basalt tile.basalt_smooth.name=Smooth Basalt -tile.basalt_sulfur.name=Sulfur-Rich Basalt tile.basalt_tiles.name=Basalt Tiles tile.blast_door.name=Sliding Blast Door tile.block_actinium.name=Block of Actinium @@ -5244,6 +5243,11 @@ tile.ore_alexandrite.name=Alexandrite Ore tile.ore_aluminium.name=Aluminium Ore tile.ore_asbestos.name=Asbestos Ore tile.ore_australium.name=Australian Ore +tile.ore_basalt_asbestos.name=Asbestos-Rich Basalt +tile.ore_basalt_fluorite.name=Fluorite-Rich Basalt +tile.ore_basalt_gem.name=Gem-Rich Basalt +tile.ore_basalt_molysite.name=Molysite-Rich Basalt +tile.ore_basalt_sulfur.name=Sulfur-Rich Basalt tile.ore_bedrock.name=Bedrock Ore tile.ore_bedrock_coltan.name=Bedrock Coltan Ore tile.ore_bedrock_oil.name=Bedrock Oil Deposit @@ -5302,6 +5306,7 @@ tile.ore_reiium.name=Reiite tile.ore_schrabidium.name=Schrabidium Ore tile.ore_sellafield_diamond.name=Sellafite Diamond Ore tile.ore_sellafield_emerald.name=Sellafite Emerald Ore +tile.ore_sellafield_radgem.name=Sellafite Radioactive Gem Ore tile.ore_sellafield_schrabidium.name=Sellafite Schrabidium Ore tile.ore_sellafield_uranium_scorched.name=Scorched Sellafite Uranium Ore tile.ore_sulfur.name=Sulfur Ore @@ -5369,6 +5374,7 @@ tile.pwr_port.name=PWR Access Port tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing tile.pwr_reflector.name=PWR Neutron Reflector tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material +tile.rad_lava_block.name=Volcanic Lava tile.radar_screen.name=Radar Screen tile.radio_telex.name=Telex Machine tile.radio_torch_counter.name=Redstone-over-Radio Item Counter @@ -5563,6 +5569,7 @@ tile.vinyl_tile.small.name=Small Vinyl Tiles tile.vitrified_barrel.name=Vitrified Nuclear Waste Drum tile.volcanic_lava_block.name=Volcanic Lava tile.volcano_core.name=Volcano Core +tile.volcano_rad_core.name=Rad Volcano Core tile.waste_earth.name=Dead Grass tile.waste_leaves.name=Dead Leaves tile.waste_log.name=Charred Log diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_asbestos.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_asbestos.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos.png diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_fluorite.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_fluorite.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite.png diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_gem.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_gem.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem.png diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite.png new file mode 100644 index 0000000000000000000000000000000000000000..e688aeaac0858ed7b7f052db0fa358e19bb12936 GIT binary patch literal 926 zcmV;P17ZA$P)R0OlWahwV)J4J;ei#^Y+kW-{7D8{=&$}h`ztS zkEUtN&CQ`G3W-F5QmMq)*cghUu(h?t-rgQ3Cns2~R(w7m~L^!!1VMq+uPgp_xIy=yYYBD9DHO0op1}2jU zfEMc^_dk2W;o%|qd>#O^*^Fx4;Z_hxztDL6_%XR$4gR3e+r0&t?f!g%h(;P?AkU0o%eZRXSaPcfSxa;JR)MN!b3vrIngVQFaz zS(eFWv;P-$I|fk{1!KKlk4Tb4I-MpE2$0ES$Ye5jy=*tdf1n~s64h!I zNs?GuS>fvH3Lz8<>6)g|Xf#Nt(+qv*#_ct8TBu?-KOh(kl1io6+}y-svEX*Q+1=g6 zX0u_p+c64)5Sg5uq`SMDfq?;X?`qW4GT(gl3{_RJ+wF98bl`HiD3{9&4GrP<`zaQS zsH*ybF&GSDwOXlEDoBzhkYyR6Ig9s>NIZ5)OG^vR&MRzu0>I(bI%4ZbeE-E90Lf$$qbQ1zd-q(_)jU3b z4bg7G^YJ4F2M4*nzNS)cVtsubTjw=a$;d?iFC>#mYPA}&EMssu9C*ABX>SW*xc!>v zzaEoHrI2MAm&-*s9AZ;sG+n1!t)lBX<#L%+Dur=&b~a)*n<*3uTwGjmb8~~U z{hYG$H?RK6lgs6hWf{BO&bd9?4Be7TvRaJ31ofr%T*4EZ&G#We# z{lvxTEuyiFcs!2B<6%7XgwOAO%f=sRdV72M4@3}!vhXX`*Z=?k07*qoM6N<$f^HtW As{jB1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_overlay.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_overlay.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_overlay.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_overlay.png diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_sulfur.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_sulfur.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur.png diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_radgem.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_radgem.png new file mode 100644 index 0000000000000000000000000000000000000000..bb30dc075c2480d1b6b59790d45452c9a8ab39ae GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf%b8^xx>e%Pj;#_P5LUbQ*oEbG($2D18R8}< z`tAGt(R^5YWuch?uqUirT}Z&}ih+770iKx-ZbhN*9r8!VeH>j5oc@O1TaS?83{ F1OVkjH)8+* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png new file mode 100644 index 0000000000000000000000000000000000000000..be3c5aa62943dc5a63024a62e8c0b1b4b120b99a GIT binary patch literal 10650 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 SZ2)0Q45+-CT&0X@;Qs;*0z|z4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta new file mode 100755 index 000000000..df9c61a80 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png new file mode 100644 index 0000000000000000000000000000000000000000..4784bb63244a3d7efebe69715df8e5f37081b0f2 GIT binary patch literal 10616 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 Ar2qf` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png.mcmeta new file mode 100755 index 000000000..55438bf34 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png.mcmeta @@ -0,0 +1,45 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png new file mode 100644 index 0000000000000000000000000000000000000000..f804bda85e812070df7fdc586dc3ca9c9b992055 GIT binary patch literal 1433 zcmV;K1!nq*P)1uYGt;$fyOWw=&=?d95vHb7?Vq-d(Le;DrP!in zBN2%=8gH~QF(yRQE29?%O-wZ22&f1w>qTinVoHsoMT&Mz*+R4iK@ttoisff_=gb)| zmYsIm+CrS0nPkrSX1@2l-;-BsZf*{OAV5lq@B0Agx{eS6r4+@>_kDyA_`Z*(X_%&o zX_^QC%d)7bs30DX6OYG9BoZVN304hGU|AN4L;}mQuq=z0hnBGD_z;$56^eSEM>dQ&v_+X=y3%9&Thu%T@ffk5Y5+EK*7gDJ4M=@WZ-0dAfH2 zJ4xYS(xZ^gl8LFW?yn5K!85~UO+B_;gSc@IzZ+=OYG z#9}dk$pQd|VNgvazVD-y!t=bsA|WF0wFA90_W!{v-`|CyX&OQZimd>2rZike02oVF zq3b%juG6yP3SD$l($S8)KTUt5g;rl*AKY^6JAkl%v;8puy!2-{*o-BsxNG;1xMZ+4 zKZ#O`iHQlu$Hx(-X_8<42o5%x_PfzHw4szjDMf5!2QC@fcS~F{#5Q)|`+lekfGDcz zU`P5bI#J)y7H(Ebk;~=qJTLr6C}K60B-47hd1@g5DJ4=$JkJZo1rWJhjvxr=YCXZu z)+~1VbYupE5IET3ulv4F5Cr(XkLP&^P1A_?A3-S<4pZ@^@B1uIjZ#e|PR}oF?Thnv zUp=C?k9pKi#1I{*L9{|#bU*KQD_4SJWxt; z_3BjsN=ix)LQs3?9LHDRJ~=o-P=EM504E+@%*4dRBoE#>*bw2tGl$A?up>OEKYX6y zmL+_@_KuJTT1`z&kVqsbEiDas@D{HDu&r~HD|_}v1paW{6>_;8*=&|XS$P1=&4c&*9}Ia= zgh!DFucz)QII-sd_x1hC*1kCR_MVCIVAtRphB+BJ(ZR;S=KWRUGkEa9z(YK{@+)8( z4<0`HH=oxni2U{q@!*U5%frPt!h<>U!LGqIGxEXip_bY6!E8L}qI*U@c(G+Dk`E$0 z*xp-57u}(VsZPPNJtH9xc9KG^Tl?QU80KU+6JyCL%qjUmN;!W%*tI@4Z$5B(e))eq zaIkR?q=*BJ*faBiONLx36B=r2KG?Qn2>_pVC|2x0MSr7(q3b&317C(hP2~aU0td>H zn`rwe2SE4cpNYj{xUEYO;yQScOYIMf&&h)=JRa$HdOnz!2LN{Zbi}5`X9xTG@`2mB zlw?}J@qEzO|3}CJm&~mB;H{n-w)VxjukTm3_twpx4~kqY9^v4sTW9d#`GJMJxAHGw n8V_DLdK+)norwr}Jv{gqyYH=GnMS&K00000NkvXXu0mjf{R5hu literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta new file mode 100644 index 000000000..fc4bc9855 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 4 + } +} diff --git a/src/main/resources/assets/hbm/textures/items/gem_rad.png b/src/main/resources/assets/hbm/textures/items/gem_rad.png new file mode 100644 index 0000000000000000000000000000000000000000..d177e51f951bd14b5d67cbd45384ff5c6c905e4c GIT binary patch literal 465 zcmV;?0WSWDP)y617|V80Upp1 z8s^;Grn#X9ugb()#SQS0zoj)aLNL%t*3K{xouB~Bti#oEYTxl^vXe` zjL|1!9PFLopmD#D!Ze;lg#di5?a4`#FIsj02Z4=-gWxoEfkt^0$^=dgOUzBL)70Hq z6wt5%2hh5MJS<#c8qZ~6sG9G7y+yf*(i&X^1;F}d{m<|TDTSyw&}yx3My7ZL~szPIEaXkK?HX}gpMv1wBYEh ze?brte}R)aD^5DNxVY2`J|anok78|$^^wLwEiHXaj-L6RkMCYC{L_%-_=vL@A95Pa zxEjf^nJDUrkF=O|cD7PNtvRutypkBFZ#YcKdZ2eS#PnjMW|OLbU%4&f{GD+i} zz5NR$#m21`G4&k&iFaBQcSRGS;$U6PXnF>ZTEtcgoLdG-!{W+JlNPfS)i->%L4;cw zTa!50GzAIZ^h{q11U#z%YJU?h#U^Q4TpEwun9ukpJ}~qgaz+Nt!^fS-(WWJo8vK%o z4?B6GKwc~`I2Yp5c*0g+xiO!yPCf}ZUYZ;)#~V*V)e7s|rxjsSOC8@~KY`_k`xE9D j2I_z4 Date: Sun, 21 Jan 2024 20:16:10 +0100 Subject: [PATCH 106/376] the foxes have taken over, torex tweaks --- changelog | 11 +++ gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 2 - .../java/com/hbm/blocks/fluid/RadBlock.java | 10 ++ .../hbm/blocks/generic/BlockDoorGeneric.java | 21 ++++- .../blocks/generic/BlockGlyphidSpawner.java | 5 +- .../com/hbm/blocks/generic/BlockKeyhole.java | 2 + .../hbm/entity/effect/EntityNukeTorex.java | 88 +++++++++--------- .../java/com/hbm/hazard/HazardRegistry.java | 3 + src/main/java/com/hbm/items/ModItems.java | 6 ++ .../java/com/hbm/items/armor/ItemModCard.java | 48 ++++++++++ .../hbm/items/armor/ItemModNightVision.java | 44 ++++----- .../java/com/hbm/items/tool/ItemLock.java | 46 +++------ .../java/com/hbm/items/tool/ItemWandD.java | 18 +++- .../com/hbm/items/weapon/ItemGunBase.java | 11 +++ src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../hbm/render/entity/effect/RenderTorex.java | 7 +- .../java/com/hbm/tileentity/DoorDecl.java | 5 + .../hbm/tileentity/TileEntityDoorGeneric.java | 2 + .../machine/TileEntityLockableBase.java | 1 + src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/textures/blocks/rad_lava_flowing.png | Bin 10650 -> 9055 bytes .../hbm/textures/blocks/rad_lava_still.png | Bin 10616 -> 8678 bytes .../assets/hbm/textures/items/card_aos.png | Bin 0 -> 157 bytes .../assets/hbm/textures/items/card_qos.png | Bin 0 -> 178 bytes 26 files changed, 223 insertions(+), 115 deletions(-) create mode 100644 src/main/java/com/hbm/items/armor/ItemModCard.java create mode 100644 src/main/resources/assets/hbm/textures/items/card_aos.png create mode 100644 src/main/resources/assets/hbm/textures/items/card_qos.png diff --git a/changelog b/changelog index 74a6aa77b..df4205477 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,7 @@ * The final missing door from 1.12, remade from scratch * Comes with a brand-new model that fits perfectly over 3x3 missile launch tubes * Has a 5x5 frame + * Can be opened and closed with a detonator * Molysite * Found in basalt from volcanos * Can be combination-smelted into iron and chlorine @@ -21,6 +22,15 @@ * Removed the "nerve agent" hazard class because no gas used it * Fissures now continuously spawn volcanic lava, making basalt renewable without having an entire volcano * Volcanic lava now turns diamond ore into gem-rich basalt +* Mushroom clouds have been tweaked + * Their scale no longer scales linearly, but rather with a square root function, this prevents tsar clouds from being so huge that the top fails to render due to clipping through the skybox + * Their default scale is now somewhat larger + * The flash scale has been increased + * Their general scaling is now consistent, larger clouds will no longer be chubby with a comically small ring + * Shockwave particles now have momentum, making them sweep over the landscape, as well as being 1.5x denser and slightly larger + * Effect shamelessly stolen from NTM-EE + * Outer condensation rings' spawning is no longer fixed, the time now scales with the size + * The inner condensation ring's spawn time is also now based on scale, which means larger clouds will no longer end up with comically thin rings due to not spawning enough cloudlets ## Fixed * Fixed sellafite emerald ore being oredicted as emerald dust @@ -38,3 +48,4 @@ * Fixed fallout layers being able to generate below roofs * Fixed exposure chamber not saving anything to NBT besides slots * Fixed crash caused by wearing the full PaA set and then putting on an HEV helmet (why would anyone ever do this??) +* Fixed large doors only being lockable by clicking on the core block diff --git a/gradle.properties b/gradle.properties index 963b4f95a..dfdd7bdff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4845 +mod_build_number=4851 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c22a7589b..fec0b2fc0 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1235,10 +1235,8 @@ public class ModBlocks { public static Block volcanic_lava_block; public static Fluid volcanic_lava_fluid; - public static final Material fluidvolcanic = (new MaterialLiquid(MapColor.redColor)); public static Block rad_lava_block; public static Fluid rad_lava_fluid; - public static final Material fluidradlava = (new MaterialLiquid(MapColor.redColor)); public static Block sulfuric_acid_block; public static Fluid sulfuric_acid_fluid; diff --git a/src/main/java/com/hbm/blocks/fluid/RadBlock.java b/src/main/java/com/hbm/blocks/fluid/RadBlock.java index 8828bd954..7ab22af70 100644 --- a/src/main/java/com/hbm/blocks/fluid/RadBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/RadBlock.java @@ -4,12 +4,17 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -37,6 +42,11 @@ public class RadBlock extends VolcanicBlock { return (side == 0 || side == 1) ? stillIconRad : flowingIconRad; } + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + if(entity instanceof EntityLivingBase) ContaminationUtil.contaminate((EntityLivingBase) entity, HazardType.RADIATION, ContaminationType.CREATIVE, 5F); + } + @Override public void onSolidify(World world, int x, int y, int z, int lavaCount, int basaltCount, Random rand) { int r = rand.nextInt(400); diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index 841d834f9..fbe36d426 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -3,7 +3,9 @@ package com.hbm.blocks.generic; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IBomb; import com.hbm.items.special.ItemDoorSkin; +import com.hbm.items.tool.ItemLock; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -20,7 +22,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class BlockDoorGeneric extends BlockDummyable { +public class BlockDoorGeneric extends BlockDummyable implements IBomb { public DoorDecl type; @@ -45,6 +47,22 @@ public class BlockDoorGeneric extends BlockDummyable { public int getOffset(){ return type.getBlockOffset(); } + + @Override + public BombReturnCode explode(World world, int x, int y, int z) { + int[] pos1 = findCore(world, x, y, z); + if(pos1 == null) return BombReturnCode.ERROR_INCOMPATIBLE; + TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]); + if(door != null) { + DoorDecl decl = door.getDoorType(); + if(!decl.remoteControllable()) return BombReturnCode.ERROR_INCOMPATIBLE; + if(door.tryToggle(null)) { + return BombReturnCode.TRIGGERED; + } + } + + return BombReturnCode.ERROR_INCOMPATIBLE; + } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer playerIn, int side, float hitX, float hitY, float hitZ){ @@ -148,5 +166,4 @@ public class BlockDoorGeneric extends BlockDummyable { } return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index e4d07db08..eb211f871 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -100,7 +100,8 @@ public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti { if(!worldObj.isRemote && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { if(initialSpawn || worldObj.getTotalWorldTime() % MobConfig.swarmCooldown == 0) { - + + initialSpawn = false; int count = 0; for(Object e : worldObj.loadedEntityList) { @@ -126,8 +127,6 @@ public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti { if(this.getBlockMetadata() == 1) scout.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED); trySpawnEntity(scout); } - - initialSpawn = false; } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java index f1c96e0b7..7c195a114 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -232,6 +232,8 @@ public class BlockKeyhole extends BlockStone { pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wd40), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.scrumpy), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wild_p), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_aos), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_qos), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.starmetal_sword), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.radaway_flush), 5)); diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 8959e0685..628416174 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -2,6 +2,7 @@ package com.hbm.entity.effect; import java.util.ArrayList; +import com.hbm.util.BobMathUtil; import com.hbm.util.TrackerUtil; import cpw.mods.fml.relauncher.Side; @@ -53,7 +54,7 @@ public class EntityNukeTorex extends Entity { @Override public void onUpdate() { - double s = this.getScale(); + double s = 1.5; //this.getScale(); double cs = 1.5; int maxAge = this.getMaxAge(); @@ -84,61 +85,61 @@ public class EntityNukeTorex extends Entity { double x = posX + rand.nextGaussian() * range; double z = posZ + rand.nextGaussian() * range; Cloudlet cloud = new Cloudlet(x, lastSpawnY, z, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime); - cloud.setScale(1F + this.ticksExisted * 0.005F * (float) s, 5F * (float) cs); + cloud.setScale(1F + this.ticksExisted * 0.005F * (float) cs, 5F * (float) cs); cloudlets.add(cloud); } // spawn shock clouds - if(ticksExisted < 100) { + if(ticksExisted < 150) { int cloudCount = ticksExisted * 5; int shockLife = Math.max(300 - ticksExisted * 20, 50); for(int i = 0; i < cloudCount; i++) { - Vec3 vec = Vec3.createVectorHelper((ticksExisted * 2 + rand.nextDouble()) * 2, 0, 0); + Vec3 vec = Vec3.createVectorHelper((ticksExisted * 1.5 + rand.nextDouble()) * 1.5, 0, 0); float rot = (float) (Math.PI * 2 * rand.nextDouble()); vec.rotateAroundY(rot); - this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 1, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0, shockLife) - .setScale(5F, 2F) - .setMotion(0)); + this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 1, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0, shockLife, TorexType.SHOCK) + .setScale(7F, 2F) + .setMotion(ticksExisted > 15 ? 0.75 : 0)); } } // spawn ring clouds - if(ticksExisted < 200) { + if(ticksExisted < 130 * s) { lifetime *= s; for(int i = 0; i < 2; i++) { Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); - cloud.setScale(1F + this.ticksExisted * 0.0025F * (float) (cs * s), 3F * (float) (cs * s)); + cloud.setScale(1F + this.ticksExisted * 0.0025F * (float) (cs * cs), 3F * (float) (cs * cs)); cloudlets.add(cloud); } } // spawn condensation clouds - if(ticksExisted > 200 && ticksExisted < 600) { + if(ticksExisted > 130 * s && ticksExisted < 600 * s) { for(int i = 0; i < 20; i++) { for(int j = 0; j < 4; j++) { float angle = (float) (Math.PI * 2 * rand.nextDouble()); - Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * 3, 0, 0); + Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * (3 + rand.nextDouble()), 0, 0); vec.rotateAroundZ((float) (Math.PI / 45 * j)); vec.rotateAroundY(angle); Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight - 5 + j * s, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); - cloud.setScale(0.125F * (float) (cs * s), 3F * (float) (cs * s)); + cloud.setScale(0.125F * (float) (cs), 3F * (float) (cs)); cloudlets.add(cloud); } } } - if(ticksExisted > 300 && ticksExisted < 600) { + if(ticksExisted > 200 * s && ticksExisted < 600 * s) { for(int i = 0; i < 20; i++) { for(int j = 0; j < 4; j++) { float angle = (float) (Math.PI * 2 * rand.nextDouble()); - Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * 2, 0, 0); + Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * (3 + rand.nextDouble() * 0.5), 0, 0); vec.rotateAroundZ((float) (Math.PI / 45 * j)); vec.rotateAroundY(angle); - Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight + 25 + j * s, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); - cloud.setScale(0.125F * (float) (cs * s), 3F * (float) (cs * s)); + Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight + 25 + j * cs, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); + cloud.setScale(0.125F * (float) (cs), 3F * (float) (cs)); cloudlets.add(cloud); } } @@ -147,12 +148,12 @@ public class EntityNukeTorex extends Entity { for(Cloudlet cloud : cloudlets) { cloud.update(); } - coreHeight += 0.15/* * s*/; - torusWidth += 0.05/* * s*/; + coreHeight += 0.15 / s; + torusWidth += 0.05 / s; rollerSize = torusWidth * 0.35; convectionHeight = coreHeight + rollerSize; - int maxHeat = (int) (50 * s); + int maxHeat = (int) (50 * cs); heat = maxHeat - Math.pow((maxHeat * this.ticksExisted) / maxAge, 1); cloudlets.removeIf(x -> x.isDead); @@ -298,6 +299,14 @@ public class EntityNukeTorex extends Entity { this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + } else if(this.type == TorexType.SHOCK) { + + double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); + Vec3 motion = Vec3.createVectorHelper(1, 0, 0); + motion.rotateAroundY(this.angle); + this.motionX = motion.xCoord * factor; + this.motionY = motion.yCoord * factor; + this.motionZ = motion.zCoord * factor; } else if(this.type == TorexType.RING) { Vec3 motion = getRingMotion(simPosX, simPosZ); this.motionX = motion.xCoord; @@ -321,30 +330,14 @@ public class EntityNukeTorex extends Entity { private Vec3 getCondensationMotion() { Vec3 delta = Vec3.createVectorHelper(posX - EntityNukeTorex.this.posX, 0, posZ - EntityNukeTorex.this.posZ); - double speed = 0.00002 * EntityNukeTorex.this.getScale() * EntityNukeTorex.this.ticksExisted; + double speed = 0.00002 * EntityNukeTorex.this.ticksExisted; delta.xCoord *= speed; - //delta.yCoord *= speed * 0.75 * EntityNukeTorex.this.getScale(); delta.zCoord *= speed; return delta; } private Vec3 getRingMotion(double simPosX, double simPosZ) { - /*Vec3 targetPos = Vec3.createVectorHelper( - (EntityNukeTorex.this.posX + torusWidth * 1), - (EntityNukeTorex.this.posY + coreHeight * 0.5), - EntityNukeTorex.this.posZ); - - Vec3 delta = Vec3.createVectorHelper(targetPos.xCoord - simPosX, targetPos.yCoord - this.posY, targetPos.zCoord - simPosZ); - - double speed = 0.125D; - delta.xCoord *= speed; - delta.yCoord *= speed; - delta.zCoord *= speed; - - delta.rotateAroundY(this.angle); - return delta;*/ - if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) return Vec3.createVectorHelper(0, 0, 0); @@ -392,9 +385,6 @@ public class EntityNukeTorex extends Entity { /* simulated on a 2D-plane along the X/Y axis */ private Vec3 getConvectionMotion(double simPosX, double simPosZ) { - if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) - return Vec3.createVectorHelper(0, 0, 0); - /* the position of the torus' outer ring center */ Vec3 torusPos = Vec3.createVectorHelper( (EntityNukeTorex.this.posX + torusWidth), @@ -480,10 +470,19 @@ public class EntityNukeTorex extends Entity { } public Vec3 getInterpPos(float interp) { - return Vec3.createVectorHelper( + float scale = (float) EntityNukeTorex.this.getScale(); + Vec3 base = Vec3.createVectorHelper( prevPosX + (posX - prevPosX) * interp, prevPosY + (posY - prevPosY) * interp, prevPosZ + (posZ - prevPosZ) * interp); + + if(this.type != TorexType.SHOCK) { //no rescale for the shockwave as this messes with the positions + base.xCoord = ((base.xCoord) - EntityNukeTorex.this.posX) * scale + EntityNukeTorex.this.posX; + base.yCoord = ((base.yCoord) - EntityNukeTorex.this.posY) * scale + EntityNukeTorex.this.posY; + base.zCoord = ((base.zCoord) - EntityNukeTorex.this.posZ) * scale + EntityNukeTorex.this.posZ; + } + + return base; } public Vec3 getInterpColor(float interp) { @@ -514,7 +513,9 @@ public class EntityNukeTorex extends Entity { private float growingScale = 5F; public float getScale() { - return startingScale + ((float)age / (float)cloudletLife) * growingScale; + float base = startingScale + ((float)age / (float)cloudletLife) * growingScale; + if(this.type != TorexType.SHOCK) base *= (float) EntityNukeTorex.this.getScale(); + return base; } public Cloudlet setScale(float start, float grow) { @@ -533,6 +534,7 @@ public class EntityNukeTorex extends Entity { public static enum TorexType { STANDARD, + SHOCK, RING, CONDENSATION } @@ -548,14 +550,14 @@ public class EntityNukeTorex extends Entity { } public static void statFac(World world, double x, double y, double z, float scale) { - EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float(scale * 0.01F, 0.5F, 5F)); + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)); torex.setPosition(x, y, z); world.spawnEntityInWorld(torex); TrackerUtil.setTrackingRange(world, torex, 1000); } public static void statFacBale(World world, double x, double y, double z, float scale) { - EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float(scale * 0.01F, 0.5F, 5F)).setType(1); + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)).setType(1); torex.setPosition(x, y, z); world.spawnEntityInWorld(torex); TrackerUtil.setTrackingRange(world, torex, 1000); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 4b0476d24..4a3516112 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -223,6 +223,9 @@ public class HazardRegistry { HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 3), makeData(RADIATION, 4F)); HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 4), makeData(RADIATION, 5F)); HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 5), makeData(RADIATION, 10F)); + + HazardSystem.register(new ItemStack(ModBlocks.ore_sellafield_radgem), makeData(RADIATION, 25F)); + HazardSystem.register(new ItemStack(ModItems.gem_rad), makeData(RADIATION, 25F)); registerOtherFuel(rod_zirnox, EnumZirnoxType.NATURAL_URANIUM_FUEL.ordinal(), u * rod_dual, wst * rod_dual * 11.5F, false); registerOtherFuel(rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), uf * rod_dual, wst * rod_dual * 10F, false); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 506af64a9..0e09d243c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2207,6 +2207,8 @@ public class ModItems { public static Item defuser_gold; public static Item ballistic_gauntlet; public static Item night_vision; + public static Item card_aos; + public static Item card_qos; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -3452,6 +3454,8 @@ public class ModItems { defuser_gold = new ItemModDefuser().setUnlocalizedName("defuser_gold").setTextureName(RefStrings.MODID + ":defuser_gold"); ballistic_gauntlet = new ItemModTwoKick().setUnlocalizedName("ballistic_gauntlet").setTextureName(RefStrings.MODID + ":ballistic_gauntlet"); night_vision = new ItemModNightVision().setUnlocalizedName("night_vision").setTextureName(RefStrings.MODID + ":night_vision"); + card_aos = new ItemModCard().setUnlocalizedName(null).setTextureName(RefStrings.MODID + ":card_aos"); + card_qos = new ItemModCard().setUnlocalizedName(null).setTextureName(RefStrings.MODID + ":card_qos"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -7726,6 +7730,8 @@ public class ModItems { GameRegistry.registerItem(defuser_gold, defuser_gold.getUnlocalizedName()); GameRegistry.registerItem(ballistic_gauntlet, ballistic_gauntlet.getUnlocalizedName()); GameRegistry.registerItem(night_vision, night_vision.getUnlocalizedName()); + GameRegistry.registerItem(card_aos, card_aos.getUnlocalizedName()); + GameRegistry.registerItem(card_qos, card_qos.getUnlocalizedName()); //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ItemModCard.java b/src/main/java/com/hbm/items/armor/ItemModCard.java new file mode 100644 index 000000000..aee3e2152 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModCard.java @@ -0,0 +1,48 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; + +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class ItemModCard extends ItemArmorMod { + + public ItemModCard() { + super(ArmorModHandler.helmet_only, true, false, false, false); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + if(this == ModItems.card_aos) { + list.add(EnumChatFormatting.RED + "Top of the line!"); + list.add(EnumChatFormatting.RED + "Guns now have a 33% chance to not consume ammo."); + } + if(this == ModItems.card_qos) { + list.add(EnumChatFormatting.RED + "Power!"); + list.add(EnumChatFormatting.RED + "Adds a 33% chance to tank damage with no cap."); + } + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); + } + + @Override + public void modDamage(LivingHurtEvent event, ItemStack armor) { + if(this == ModItems.card_qos && event.entityLiving.getRNG().nextInt(3) == 0 && event.entityLiving instanceof EntityPlayer) { + HbmPlayerProps.plink((EntityPlayer) event.entityLiving, "random.break", 0.5F, 1.0F + event.entityLiving.getRNG().nextFloat() * 0.5F); + event.ammount = 0; + event.setCanceled(true); + } + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModNightVision.java b/src/main/java/com/hbm/items/armor/ItemModNightVision.java index 6df89d2a6..96af954c3 100644 --- a/src/main/java/com/hbm/items/armor/ItemModNightVision.java +++ b/src/main/java/com/hbm/items/armor/ItemModNightVision.java @@ -12,30 +12,30 @@ import net.minecraft.util.EnumChatFormatting; import java.util.List; public class ItemModNightVision extends ItemArmorMod { - public ItemModNightVision() { - super(ArmorModHandler.helmet_only, true, false, false, false); - } + public ItemModNightVision() { + super(ArmorModHandler.helmet_only, true, false, false, false); + } - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.AQUA + I18n.format("item.night_vision.description.item")); - list.add(""); - super.addInformation(itemstack, player, list, bool); - } + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.AQUA + I18n.format("item.night_vision.description.item")); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } - @Override - public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); - } + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); + } - @Override - public void modUpdate(EntityLivingBase entity, ItemStack armor) { - if(!entity.worldObj.isRemote && entity instanceof EntityPlayer && armor.getItem() instanceof ArmorFSBPowered && ArmorFSBPowered.hasFSBArmor((EntityPlayer)entity)) { - entity.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); + @Override + public void modUpdate(EntityLivingBase entity, ItemStack armor) { + if(!entity.worldObj.isRemote && entity instanceof EntityPlayer && armor.getItem() instanceof ArmorFSBPowered && ArmorFSBPowered.hasFSBArmor((EntityPlayer) entity)) { + entity.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); - if(entity.getRNG().nextInt(50) == 0) { - armor.damageItem(1, entity); - } - } - } + if(entity.getRNG().nextInt(50) == 0) { + armor.damageItem(1, entity); + } + } + } } diff --git a/src/main/java/com/hbm/items/tool/ItemLock.java b/src/main/java/com/hbm/items/tool/ItemLock.java index 0672f90a7..083d6b13a 100644 --- a/src/main/java/com/hbm/items/tool/ItemLock.java +++ b/src/main/java/com/hbm/items/tool/ItemLock.java @@ -1,7 +1,7 @@ package com.hbm.items.tool; -import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntityLockableBase; +import com.hbm.util.CompatExternal; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -17,51 +17,29 @@ public class ItemLock extends ItemKeyPin { } @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) - { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { + if(this.getPins(stack) != 0) { - TileEntity te = world.getTileEntity(x, y, z); - + TileEntity te = CompatExternal.getCoreFromPos(world, x, y, z); + if(te != null && te instanceof TileEntityLockableBase) { - TileEntityLockableBase tile = (TileEntityLockableBase)te; - + TileEntityLockableBase tile = (TileEntityLockableBase) te; + if(tile.isLocked()) return false; - + tile.setPins(this.getPins(stack)); tile.lock(); tile.setMod(lockMod); - world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F); + world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F); stack.stackSize--; - + return true; } - - if(te != null && te instanceof TileEntityDummy) { - - TileEntityDummy dummy = (TileEntityDummy)te; - TileEntity target = world.getTileEntity(dummy.targetX, dummy.targetY, dummy.targetZ); - - if(target != null && target instanceof TileEntityLockableBase) { - TileEntityLockableBase tile = (TileEntityLockableBase)target; - - if(tile.isLocked()) - return false; - - tile.setPins(this.getPins(stack)); - tile.lock(); - tile.setMod(lockMod); - - world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F); - stack.stackSize--; - - return true; - } - } } - + return false; - } + } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 01eecea43..8d642887d 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; +import com.hbm.util.BobMathUtil; import com.hbm.util.TrackerUtil; import com.hbm.world.WorldUtil; import com.hbm.world.biome.BiomeGenCraterBase; @@ -11,6 +12,7 @@ import com.hbm.world.biome.BiomeGenCraterBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -64,11 +66,17 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - EntityNukeTorex torex = new EntityNukeTorex(world); - torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); - torex.setScale(1.5F); - world.spawnEntityInWorld(torex); - TrackerUtil.setTrackingRange(world, torex, 1000); + List del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50)); + + if(!del.isEmpty()) { + for(EntityNukeTorex torex : del) torex.setDead(); + } else { + EntityNukeTorex torex = new EntityNukeTorex(world); + torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); + torex.setScale((float) BobMathUtil.squirt( 1.5 ) * 1.5F); + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); + } /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 58671762f..640c35e93 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -6,6 +6,7 @@ import org.lwjgl.input.Mouse; import com.hbm.config.GeneralConfig; import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.handler.ArmorModHandler; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; @@ -580,6 +581,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(hasInfinity(stack, config)) return; if(isTrenchMaster(player) && player.getRNG().nextInt(3) == 0) return; + if(hasAoS(player) && player.getRNG().nextInt(3) == 0) return; if(config.reloadType != GunConfiguration.RELOAD_NONE) { setMag(stack, getMag(stack) - 1); @@ -831,4 +833,13 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu public static boolean isTrenchMaster(EntityPlayer player) { return player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() == ModItems.trenchmaster_plate && ArmorFSB.hasFSBArmor(player); } + + public static boolean hasAoS(EntityPlayer player) { + if(player.inventory.armorInventory[3] != null) { + ItemStack[] mods = ArmorModHandler.pryMods(player.inventory.armorInventory[3]); + ItemStack helmet = mods[ArmorModHandler.helmet_only]; + return helmet != null && helmet.getItem() == ModItems.card_aos; + } + return false; + } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index df5d5a653..49b97021c 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4845)"; + public static final String VERSION = "1.0.27 BETA (4851)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index 10094d1ad..809f403f4 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -77,7 +77,10 @@ public class RenderTorex extends Render { for(Cloudlet cloudlet : cloudlets) { Vec3 vec = cloudlet.getInterpPos(interp); - tessellateCloudlet(tess, vec.xCoord - cloud.posX, vec.yCoord - cloud.posY, vec.zCoord - cloud.posZ, cloudlet, interp); + double x = vec.xCoord - cloud.posX; + double y = vec.yCoord - cloud.posY; + double z = vec.zCoord - cloud.posZ; + tessellateCloudlet(tess, x, y, z, cloudlet, interp); } tess.draw(); @@ -114,7 +117,7 @@ public class RenderTorex extends Render { float x = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); float y = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); float z = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); - tessellateFlash(tess, x, y + cloud.coreHeight, z, (float) (10 * cloud.rollerSize), alpha, interp); + tessellateFlash(tess, x, y + cloud.coreHeight, z, (float) (25 * cloud.rollerSize), alpha, interp); } tess.draw(); diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index c0fcadc02..584f23d2c 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -870,6 +870,7 @@ public abstract class DoorDecl { @Override public String getCloseSoundStart() { return null; }; @Override public String getCloseSoundEnd() { return "hbm:door.wgh_big_stop"; }; @Override public float getSoundVolume() { return 2; } + @Override public boolean remoteControllable() { return true; } @Override @SideOnly(Side.CLIENT) @@ -1012,6 +1013,10 @@ public abstract class DoorDecl { return 0; } + public boolean remoteControllable() { + return false; + } + public float getDoorRangeOpenTime(int ticks, int idx) { return getNormTime(ticks); } diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 68e49db3f..526b9ce5c 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -175,6 +175,8 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public boolean tryToggle(EntityPlayer player){ + if(this.isLocked() && player == null) return false; + if(state == 0 && redstonePower > 0){ //Redstone "power locks" doors, just like minecraft iron doors return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java index 7e32bc7b7..5e65220a5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java @@ -68,6 +68,7 @@ public abstract class TileEntityLockableBase extends TileEntity { if(!isLocked) { return true; } else { + if(player == null) return false; ItemStack stack = player.getHeldItem(); if(stack != null && stack.getItem() instanceof ItemKey && diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a3c117d78..80f97bbc0 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1413,6 +1413,8 @@ item.cape_nostalgia.name=DrNostalgias Cape item.cape_radiation.name=Cape (Radioaktiv) item.cape_schrabidium.name=Cape (Schrabidisch) item.cape_vertice.name=Lord Vertices Cape +item.card_aos.name=Pik-Ass +item.card_qos.name=Pik-Königin item.cart.crate.name=Stahlkistenlore item.cart.destroyer.name=Schuttzerstörende Lore item.cart.empty.name=Lore diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5c5bf6d10..7572149a1 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2109,6 +2109,8 @@ item.cape_nostalgia.name=DrNostalgia's Cape item.cape_radiation.name=Cape (Radiation) item.cape_schrabidium.name=Cape (Schrabidic) item.cape_vertice.name=Lord Vertice's Cape +item.card_aos.name=Ace of Spades +item.card_qos.name=Queen of Spades item.cart.crate.name=Crate Cart item.cart.destroyer.name=Scrap Destroying Cart item.cart.empty.name=Minecart diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png index be3c5aa62943dc5a63024a62e8c0b1b4b120b99a..022cf119b66b108489fe1b8c63b99d7870bbcc8f 100644 GIT binary patch literal 9055 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 F{vQQew~_z= literal 10650 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 SZ2)0Q45+-CT&0X@;Qs;*0z|z4 diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png index 4784bb63244a3d7efebe69715df8e5f37081b0f2..41cb6cd137444d6ab4a299a23d69db0c00d15730 100644 GIT binary patch literal 8678 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 Ar2qf` diff --git a/src/main/resources/assets/hbm/textures/items/card_aos.png b/src/main/resources/assets/hbm/textures/items/card_aos.png new file mode 100644 index 0000000000000000000000000000000000000000..ac561fc531107030a4c40444af03d2ea7d5636be GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|u0R?H{{R2qeE0k%Ad9gi z$S;_|;n|HeAjiqm#WAEJF4=)iiHC=$XC{zH+AJd>u{q2)K_FUcYl~ubYKWTivr8+c w@&sK@^G!^M-YTTAJBN#z*?AeWi#QVlgIY76GS`3KZy;MdUHx3vIVCg!0LY0dga7~l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/card_qos.png b/src/main/resources/assets/hbm/textures/items/card_qos.png new file mode 100644 index 0000000000000000000000000000000000000000..bb254cd8b2a02b8b183dfcb6e146bdf747aeed4e GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW1=2vE$WZ^Ef#LrahX4Qn z>-5(r0)-e$g8YIR9G=}s19JR4T^vIy;&RU(iy%l{nm+(#7D;dnK T>GLUOD#&V2S3j3^P6 Date: Mon, 22 Jan 2024 00:01:27 +0100 Subject: [PATCH 107/376] the --- .../java/com/hbm/inventory/gui/GUIAnvil.java | 44 ++++++++++++++++--- .../gui/GUIScreenTemplateFolder.java | 1 + 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index 6f8ef4a10..024905dd8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -44,6 +44,7 @@ public class GUIAnvil extends GuiContainer { int size; int selection; private GuiTextField search; + private InventoryPlayer playerInventory; public GUIAnvil(InventoryPlayer player, int tier) { super(new ContainerAnvil(player, tier)); @@ -51,7 +52,8 @@ public class GUIAnvil extends GuiContainer { this.tier = tier; this.xSize = 176; this.ySize = 222; - + + this.playerInventory = player; for(AnvilConstructionRecipe recipe : AnvilRecipes.getConstruction()) { if(recipe.isTierValid(this.tier)) this.originList.add(recipe); @@ -243,7 +245,7 @@ public class GUIAnvil extends GuiContainer { if(this.selection >= 0) { AnvilConstructionRecipe recipe = recipes.get(this.selection); - List list = recipeToList(recipe); + List list = recipeToList(recipe,playerInventory); int longest = 0; for(String s : list) { @@ -274,7 +276,7 @@ public class GUIAnvil extends GuiContainer { * @param recipe * @return */ - public List recipeToList(AnvilConstructionRecipe recipe) { + public List recipeToList(AnvilConstructionRecipe recipe,InventoryPlayer inventory) { List list = new ArrayList(); @@ -283,16 +285,44 @@ public class GUIAnvil extends GuiContainer { for(AStack stack : recipe.input) { if(stack instanceof ComparableStack) { ItemStack input = ((ComparableStack) stack).toStack(); - list.add(">" + input.stackSize + "x " + input.getDisplayName()); - + boolean hasItem = false; + for (int i = 0; i < inventory.mainInventory.length; i++) { + ItemStack stackItem = inventory.mainInventory[i]; + if(stackItem == null) + { + continue; + } + if (stackItem.getItem() == input.getItem() && stackItem.stackSize >= stack.stacksize) { + hasItem = true; + } + } + if(hasItem) { + list.add(">" + input.stackSize + "x " + input.getDisplayName()); + }else { + list.add(EnumChatFormatting.RED + ">" + input.stackSize + "x " + input.getDisplayName()); + } } else if(stack instanceof OreDictStack) { OreDictStack input = (OreDictStack) stack; ArrayList ores = OreDictionary.getOres(input.name); if(ores.size() > 0) { ItemStack inStack = ores.get((int) (Math.abs(System.currentTimeMillis() / 1000) % ores.size())); - list.add(">" + input.stacksize + "x " + inStack.getDisplayName()); - + boolean hasItem = false; + for (int i = 0; i < inventory.mainInventory.length; i++) { + ItemStack stackItem = inventory.mainInventory[i]; + if(stackItem == null) + { + continue; + } + if (stackItem.getItem() == inStack.getItem() && stackItem.stackSize >= stack.stacksize) { + hasItem = true; + } + } + if (hasItem) { + list.add(">" + input.stacksize + "x " + inStack.getDisplayName()); + } else { + list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + inStack.getDisplayName()); + } } else { list.add("I AM ERROR"); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index a563eb732..06e2d2e70 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -186,6 +186,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { this.search.setDisabledTextColour(0xffffff); this.search.setEnableBackgroundDrawing(false); this.search.setMaxStringLength(100); + this.search.setFocused(true); } @Override From 3d345de4d53fd4d61c6331144dd33d090371b75b Mon Sep 17 00:00:00 2001 From: 245tt Date: Mon, 22 Jan 2024 10:08:41 +0100 Subject: [PATCH 108/376] the 2 --- src/main/java/com/hbm/inventory/gui/GUIAnvil.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index 024905dd8..253dad133 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -286,17 +286,19 @@ public class GUIAnvil extends GuiContainer { if(stack instanceof ComparableStack) { ItemStack input = ((ComparableStack) stack).toStack(); boolean hasItem = false; + int amount =0; for (int i = 0; i < inventory.mainInventory.length; i++) { ItemStack stackItem = inventory.mainInventory[i]; if(stackItem == null) { continue; } - if (stackItem.getItem() == input.getItem() && stackItem.stackSize >= stack.stacksize) { + if (stackItem.getItem() == input.getItem() && input.getItemDamage() == stackItem.getItemDamage()) { hasItem = true; + amount +=stackItem.stackSize; } } - if(hasItem) { + if(hasItem && amount >= stack.stacksize) { list.add(">" + input.stackSize + "x " + input.getDisplayName()); }else { list.add(EnumChatFormatting.RED + ">" + input.stackSize + "x " + input.getDisplayName()); @@ -308,17 +310,19 @@ public class GUIAnvil extends GuiContainer { if(ores.size() > 0) { ItemStack inStack = ores.get((int) (Math.abs(System.currentTimeMillis() / 1000) % ores.size())); boolean hasItem = false; + int amount =0; for (int i = 0; i < inventory.mainInventory.length; i++) { ItemStack stackItem = inventory.mainInventory[i]; if(stackItem == null) { continue; } - if (stackItem.getItem() == inStack.getItem() && stackItem.stackSize >= stack.stacksize) { + if (stackItem.getItem() == inStack.getItem() && inStack.getItemDamage() == stackItem.getItemDamage()) { hasItem = true; + amount += stackItem.stackSize; } } - if (hasItem) { + if (hasItem && amount >= stack.stacksize) { list.add(">" + input.stacksize + "x " + inStack.getDisplayName()); } else { list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + inStack.getDisplayName()); From a67faa99df919dd3f9c193cd20c7835473c02d96 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 22 Jan 2024 14:43:00 +0100 Subject: [PATCH 109/376] muffler 2: the remufflering --- changelog | 54 ++---------------- src/main/java/com/hbm/blocks/ModBlocks.java | 7 --- .../com/hbm/blocks/generic/BlockMush.java | 1 - .../hbm/blocks/generic/BlockOreBasalt.java | 5 ++ src/main/java/com/hbm/items/ModItems.java | 9 ++- .../com/hbm/items/machine/ItemMuffler.java | 31 ++++++++++ .../java/com/hbm/main/CraftingManager.java | 4 +- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../hbm/tileentity/TileEntityLoadedBase.java | 18 ++++++ .../hbm/tileentity/TileEntityMachineBase.java | 36 +++++------- .../bomb/TileEntityNukeBalefire.java | 2 +- .../tileentity/machine/TileEntityAshpit.java | 1 + .../machine/TileEntityConveyorPress.java | 3 +- .../tileentity/machine/TileEntityCore.java | 3 +- .../machine/TileEntityCoreEmitter.java | 1 + .../machine/TileEntityCoreInjector.java | 3 +- .../machine/TileEntityCoreReceiver.java | 1 + .../machine/TileEntityCoreStabilizer.java | 1 + .../machine/TileEntityCrucible.java | 1 + .../machine/TileEntityCustomMachine.java | 2 + .../machine/TileEntityDeuteriumExtractor.java | 2 + .../machine/TileEntityDiFurnaceRTG.java | 2 + .../machine/TileEntityElectrolyser.java | 2 + .../hbm/tileentity/machine/TileEntityFEL.java | 3 + .../machine/TileEntityFireboxBase.java | 4 +- .../machine/TileEntityFurnaceCombination.java | 2 + .../machine/TileEntityFurnaceIron.java | 4 +- .../machine/TileEntityFurnaceSteel.java | 2 + .../tileentity/machine/TileEntityHadron.java | 2 + .../machine/TileEntityHeatBoiler.java | 5 +- .../TileEntityHeatBoilerIndustrial.java | 5 +- .../machine/TileEntityHeaterElectric.java | 5 +- .../machine/TileEntityHeaterOilburner.java | 2 + .../tileentity/machine/TileEntityITER.java | 2 + .../machine/TileEntityMachineArcWelder.java | 2 + .../machine/TileEntityMachineAssembler.java | 16 +----- .../machine/TileEntityMachineAssemfac.java | 2 + .../machine/TileEntityMachineAutocrafter.java | 2 + .../machine/TileEntityMachineCentrifuge.java | 5 +- .../machine/TileEntityMachineChemfac.java | 2 + .../machine/TileEntityMachineChemplant.java | 4 +- .../TileEntityMachineCombustionEngine.java | 2 + .../machine/TileEntityMachineCompressor.java | 4 +- .../TileEntityMachineCrystallizer.java | 1 + .../machine/TileEntityMachineCyclotron.java | 2 + .../machine/TileEntityMachineDiesel.java | 3 +- .../machine/TileEntityMachineEPress.java | 4 +- .../TileEntityMachineElectricFurnace.java | 2 + .../machine/TileEntityMachineExcavator.java | 2 + .../TileEntityMachineExposureChamber.java | 1 - .../machine/TileEntityMachineFunnel.java | 2 + .../machine/TileEntityMachineGasCent.java | 2 + .../machine/TileEntityMachineIGenerator.java | 2 + .../TileEntityMachineLargeTurbine.java | 2 + .../machine/TileEntityMachineMiningLaser.java | 1 + .../machine/TileEntityMachineMixer.java | 2 + .../TileEntityMachinePlasmaHeater.java | 2 + .../machine/TileEntityMachinePress.java | 4 +- .../machine/TileEntityMachineRadGen.java | 2 + .../machine/TileEntityMachineRadarNT.java | 5 +- .../machine/TileEntityMachineRadiolysis.java | 2 + .../TileEntityMachineReactorBreeding.java | 2 + ...eEntityMachineSchrabidiumTransmutator.java | 2 + .../TileEntityMachineSeleniumEngine.java | 2 +- .../machine/TileEntityMachineShredder.java | 2 +- .../machine/TileEntityMachineTurbineGas.java | 7 ++- .../machine/TileEntityMachineTurbofan.java | 4 +- .../machine/TileEntityMachineWoodBurner.java | 2 + .../machine/TileEntityMicrowave.java | 2 + .../machine/TileEntityPWRController.java | 5 +- .../machine/TileEntityReactorControl.java | 2 + .../machine/TileEntityReactorResearch.java | 2 + .../machine/TileEntityReactorZirnox.java | 2 + .../tileentity/machine/TileEntitySILEX.java | 1 + .../machine/TileEntitySoyuzLauncher.java | 2 + .../machine/TileEntitySteamEngine.java | 2 +- .../tileentity/machine/TileEntityTesla.java | 1 + .../tileentity/machine/TileEntityWatz.java | 2 + .../TileEntityMachineCatalyticReformer.java | 2 + .../machine/oil/TileEntityMachineCoker.java | 2 + .../oil/TileEntityMachineGasFlare.java | 6 +- .../oil/TileEntityMachineLiquefactor.java | 2 + .../oil/TileEntityMachinePumpjack.java | 4 +- .../oil/TileEntityMachineRefinery.java | 5 +- .../oil/TileEntityMachineSolidifier.java | 2 + .../oil/TileEntityMachineVacuumDistill.java | 5 +- .../machine/oil/TileEntityOilDrillBase.java | 2 + .../machine/storage/TileEntityBarrel.java | 2 + .../storage/TileEntityMachineBattery.java | 3 +- .../network/TileEntityCraneBoxer.java | 2 + .../network/TileEntityCraneExtractor.java | 2 + .../network/TileEntityCraneGrabber.java | 2 + .../network/TileEntityCraneRouter.java | 2 + .../network/TileEntityRadioTorchCounter.java | 2 + .../turret/TileEntityTurretBaseNT.java | 1 + src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/items/upgrade_muffler.png | Bin 0 -> 438 bytes 98 files changed, 268 insertions(+), 128 deletions(-) create mode 100644 src/main/java/com/hbm/items/machine/ItemMuffler.java create mode 100644 src/main/resources/assets/hbm/textures/items/upgrade_muffler.png diff --git a/changelog b/changelog index df4205477..bc41e7d19 100644 --- a/changelog +++ b/changelog @@ -1,51 +1,9 @@ ## Added -* Silo hatch - * The final missing door from 1.12, remade from scratch - * Comes with a brand-new model that fits perfectly over 3x3 missile launch tubes - * Has a 5x5 frame - * Can be opened and closed with a detonator -* Molysite - * Found in basalt from volcanos - * Can be combination-smelted into iron and chlorine - * Don't make me pull another chlorocalcite -* Rad volcanos - * Created when fallout affects a volcano core - * Uses a new volcanic lava type that produces sellafite, as well as sellafite gem ores -* Radioactive gem - * Created when fallout affects diamond ore, or if radioactive volcanic lava touches diamond ore - * Currenly only used in the radiation powered engine as powerful long-lasting fuel - * When depleted, turns back into a regular diamond - -## Changed -* Simplified door recipes -* Fissure bombs now require tantalium -* Removed the "nerve agent" hazard class because no gas used it -* Fissures now continuously spawn volcanic lava, making basalt renewable without having an entire volcano -* Volcanic lava now turns diamond ore into gem-rich basalt -* Mushroom clouds have been tweaked - * Their scale no longer scales linearly, but rather with a square root function, this prevents tsar clouds from being so huge that the top fails to render due to clipping through the skybox - * Their default scale is now somewhat larger - * The flash scale has been increased - * Their general scaling is now consistent, larger clouds will no longer be chubby with a comically small ring - * Shockwave particles now have momentum, making them sweep over the landscape, as well as being 1.5x denser and slightly larger - * Effect shamelessly stolen from NTM-EE - * Outer condensation rings' spawning is no longer fixed, the time now scales with the size - * The inner condensation ring's spawn time is also now based on scale, which means larger clouds will no longer end up with comically thin rings due to not spawning enough cloudlets +* Muffler + * An upgrade-like item that replaces the old muffler block + * Creates 16 when crafted, however it is not returned when the muffled machine is broken + * Should work with pretty much all machines that use looped sounds, as well as a few other noisy ones (copressors, diesel generators, presses) + * Simply right-click to install, doesn't need to be inserted into an upgrade slot, in fact it works on a few machines that have no GUI at all ## Fixed -* Fixed sellafite emerald ore being oredicted as emerald dust -* Fixed fire replacing petrified wood, creating tons of dead trees with holes in them -* Fixed inconsistent scaling with nuclear missiles -* Fixed BFB rods being called ZFB in hot and depleted variants -* Fixed infinite water barrels voiding water completely after the chemplant's input buffer runs full, infinite barrels can no longer void water in chemplants -* Fixed fallout affecting things on Y:0 like bedrock ores and oil -* Fixed projectiles not being able to pass through open doors -* Fixed material dupe caused by strand caster overflowing -* Fixed rampant mode glyphid scout spawn ignoring light level -* Fixed glyphid diggers' debris attack being able to break concrete -* Fixed `canLaunch` function of custom missile launch pads demanding a designator, preventing launch pads without designator from working even when the position is supplied by a radar -* Fixed none of the helmets or filters protecting against corrosive gasses (blistering agents) like mustard gas -* Fixed fallout layers being able to generate below roofs -* Fixed exposure chamber not saving anything to NBT besides slots -* Fixed crash caused by wearing the full PaA set and then putting on an HEV helmet (why would anyone ever do this??) -* Fixed large doors only being lockable by clicking on the core block +* Fixed basalt ores dropping their items with invalid metadata diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fec0b2fc0..47a1bbff1 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -632,8 +632,6 @@ public class ModBlocks { public static Block tesla; - public static Block muffler; - public static Block sat_mapper; public static Block sat_scanner; public static Block sat_radar; @@ -2148,8 +2146,6 @@ public class ModBlocks { tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); - muffler = new BlockGeneric(Material.cloth).setBlockName("muffler").setHardness(0.8F).setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":muffler"); - launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3389,9 +3385,6 @@ public class ModBlocks { GameRegistry.registerBlock(radiorec, radiorec.getUnlocalizedName()); GameRegistry.registerBlock(radiobox, radiobox.getUnlocalizedName()); - //The muffler - GameRegistry.registerBlock(muffler, muffler.getUnlocalizedName()); - //Multiblock Parts GameRegistry.registerBlock(struct_launcher, struct_launcher.getUnlocalizedName()); GameRegistry.registerBlock(struct_scaffold, struct_scaffold.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockMush.java b/src/main/java/com/hbm/blocks/generic/BlockMush.java index a13511b5f..d914992ca 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMush.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMush.java @@ -4,7 +4,6 @@ import java.util.HashSet; import java.util.Random; import java.util.Set; -import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.world.feature.HugeMush; diff --git a/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java index 51affeaad..d650c0b95 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java @@ -47,6 +47,11 @@ public class BlockOreBasalt extends BlockEnumMulti { return super.getItemDropped(meta, rand, fortune); } + @Override + public int damageDropped(int meta) { + return 0; + } + @Override public void onEntityWalking(World world, int x, int y, int z, Entity entity) { int meta = world.getBlockMetadata(x, y, z); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0e09d243c..d2ad9d3b1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1855,6 +1855,8 @@ public class ModItems { /*public static Item factory_core_titanium; public static Item factory_core_advanced;*/ + public static Item upgrade_muffler; + public static Item upgrade_template; public static Item upgrade_speed_1; public static Item upgrade_speed_2; @@ -3454,8 +3456,8 @@ public class ModItems { defuser_gold = new ItemModDefuser().setUnlocalizedName("defuser_gold").setTextureName(RefStrings.MODID + ":defuser_gold"); ballistic_gauntlet = new ItemModTwoKick().setUnlocalizedName("ballistic_gauntlet").setTextureName(RefStrings.MODID + ":ballistic_gauntlet"); night_vision = new ItemModNightVision().setUnlocalizedName("night_vision").setTextureName(RefStrings.MODID + ":night_vision"); - card_aos = new ItemModCard().setUnlocalizedName(null).setTextureName(RefStrings.MODID + ":card_aos"); - card_qos = new ItemModCard().setUnlocalizedName(null).setTextureName(RefStrings.MODID + ":card_qos"); + card_aos = new ItemModCard().setUnlocalizedName("card_aos").setTextureName(RefStrings.MODID + ":card_aos"); + card_qos = new ItemModCard().setUnlocalizedName("card_qos").setTextureName(RefStrings.MODID + ":card_qos"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -4488,6 +4490,8 @@ public class ModItems { fusion_shield_chlorophyte = new ItemFusionShield(60 * 60 * 60 * 15, 9000).setUnlocalizedName("fusion_shield_chlorophyte").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_chlorophyte"); fusion_shield_vaporwave = new ItemFusionShield(60 * 60 * 60 * 10, 1916169).setUnlocalizedName("fusion_shield_vaporwave").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_vaporwave"); + upgrade_muffler = new ItemMuffler().setUnlocalizedName("upgrade_muffler").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_muffler"); + upgrade_template = new ItemCustomLore().setUnlocalizedName("upgrade_template").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_template"); upgrade_speed_1 = new ItemMachineUpgrade(UpgradeType.SPEED, 1).setUnlocalizedName("upgrade_speed_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_1"); upgrade_speed_2 = new ItemMachineUpgrade(UpgradeType.SPEED, 2).setUnlocalizedName("upgrade_speed_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_2"); @@ -6517,6 +6521,7 @@ public class ModItems { GameRegistry.registerItem(scraps, scraps.getUnlocalizedName()); //Machine Upgrades + GameRegistry.registerItem(upgrade_muffler, upgrade_muffler.getUnlocalizedName()); GameRegistry.registerItem(upgrade_template, upgrade_template.getUnlocalizedName()); GameRegistry.registerItem(upgrade_speed_1, upgrade_speed_1.getUnlocalizedName()); GameRegistry.registerItem(upgrade_speed_2, upgrade_speed_2.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemMuffler.java b/src/main/java/com/hbm/items/machine/ItemMuffler.java new file mode 100644 index 000000000..915fd65d7 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemMuffler.java @@ -0,0 +1,31 @@ +package com.hbm.items.machine; + +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatExternal; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class ItemMuffler extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { + TileEntity te = CompatExternal.getCoreFromPos(world, x, y, z); + + if(te != null && te instanceof TileEntityMachineBase) { + TileEntityMachineBase tile = (TileEntityMachineBase) te; + if(!tile.muffled) { + tile.muffled = true; + world.playSoundAtEntity(player, "hbm:item.upgradePlug", 1.0F, 1.0F); + stack.stackSize--; + tile.markDirty(); + return true; + } + } + + return false; + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index b22fa676f..73d321015 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -329,7 +329,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate(), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', STEEL.bolt() }); - addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); + addRecipeAuto(new ItemStack(ModItems.upgrade_muffler, 16), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); @@ -988,7 +988,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.field_disturber), new Object[] { "ICI", "CAC", "ICI", 'I', STAR.ingot(), 'C', KEY_CIRCUIT_BISMUTH, 'A', ModItems.gem_alexandrite }); addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish }); - addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModBlocks.muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); + addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModItems.upgrade_muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 5809ea4ee..6ed8c16ab 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1210,6 +1210,7 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.reactor_conductor"); ignoreMappings.add("hbm:tile.reactor_computer"); ignoreMappings.add("hbm:tile.ff"); + ignoreMappings.add("hbm:tile.muffler"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java index f2ab912aa..cb529b2d9 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java @@ -3,11 +3,13 @@ package com.hbm.tileentity; import com.hbm.sound.AudioWrapper; import api.hbm.energy.ILoadedTile; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; public class TileEntityLoadedBase extends TileEntity implements ILoadedTile { public boolean isLoaded = true; + public boolean muffled = false; @Override public boolean isLoaded() { @@ -28,4 +30,20 @@ public class TileEntityLoadedBase extends TileEntity implements ILoadedTile { audio.startSound(); return audio; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.muffled = nbt.getBoolean("muffled"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("muffled", muffled); + } + + public float getVolume(float baseVolume) { + return muffled ? baseVolume * 0.1F : baseVolume; + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index f826dd3e3..a76902ab9 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -1,6 +1,5 @@ package com.hbm.tileentity; -import com.hbm.blocks.ModBlocks; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.BufPacket; import com.hbm.packet.NBTPacket; @@ -157,17 +156,28 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme @Deprecated public void processGauge(int val, int id) { } @Deprecated public void networkPack(NBTTagCompound nbt, int range) { + nbt.setBoolean("muffled", muffled); if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - @Deprecated public void networkUnpack(NBTTagCompound nbt) { } + + @Deprecated + public void networkUnpack(NBTTagCompound nbt) { + this.muffled = nbt.getBoolean("muffled"); + } /** Sends a sync packet that uses ByteBuf for efficient information-cramming */ public void networkPackNT(int range) { if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - @Override public void serialize(ByteBuf buf) { } - @Override public void deserialize(ByteBuf buf) { } + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(muffled); + } + + @Override public void deserialize(ByteBuf buf) { + this.muffled = buf.readBoolean(); + } @Deprecated public void handleButtonPacket(int value, int meta) { } @@ -206,24 +216,6 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme nbt.setTag("items", list); } - public int countMufflers() { - - int count = 0; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - if(worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ) == ModBlocks.muffler) - count++; - - return count; - } - - public float getVolume(int toSilence) { - - float volume = 1 - (countMufflers() / (float)toSilence); - - return Math.max(volume, 0); - } - public void updateRedstoneConnection(DirPos pos) { int x = pos.getX(); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java index 4044d26df..829898ae3 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java @@ -64,7 +64,7 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU } public void networkUnpack(NBTTagCompound data) { - + super.networkUnpack(data); timer = data.getInteger("timer"); started = data.getBoolean("started"); loaded = data.getBoolean("loaded"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java index cd78eb206..183c48ad6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java @@ -109,6 +109,7 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.playersUsing = nbt.getInteger("playersUsing"); this.isFull = nbt.getBoolean("isFull"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java index c4f7eaf9f..982b55616 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java @@ -163,7 +163,7 @@ public class TileEntityConveyorPress extends TileEntityMachineBase implements IE } } - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", getVolume(1.5F), 1.0F); if(slots[0].getMaxDamage() != 0) { slots[0].setItemDamage(slots[0].getItemDamage() + 1); @@ -180,6 +180,7 @@ public class TileEntityConveyorPress extends TileEntityMachineBase implements IE @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.power = nbt.getLong("power"); this.syncPress = nbt.getInteger("press"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java index 24817d855..3b12f505b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java @@ -156,8 +156,9 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide } } - + public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); tanks[0].setTankType(Fluids.fromID(data.getInteger("tank0"))); tanks[1].setTankType(Fluids.fromID(data.getInteger("tank1"))); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 92a83d81b..7346c6168 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -177,6 +177,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); power = data.getLong("power"); watts = data.getInteger("watts"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index b0fb0c484..e5862e2ab 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -110,8 +110,9 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl this.networkPack(data, 250); } } - + public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); beam = data.getInteger("beam"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index c3fbf28d6..565c9a6ee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -78,6 +78,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); joules = data.getLong("joules"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 6e6413032..437d9cfa6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -105,6 +105,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); power = data.getLong("power"); watts = data.getInteger("watts"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index e486b7a60..7894a916c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -235,6 +235,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.recipeStack.clear(); this.wasteStack.clear(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 9c906623d..ca7ce6f0e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -364,6 +364,8 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.machineType = nbt.getString("type"); if(this.config == null) this.init(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index b902dfd3e..268ca8277 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -61,6 +61,8 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); tanks[0].readFromNBT(data, "water"); tanks[1].readFromNBT(data, "heavyWater"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java index 7c7891802..224beb56d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java @@ -79,6 +79,8 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + progress = nbt.getShort("progress"); processSpeed = nbt.getShort("speed"); byte[] modes = nbt.getByteArray("modes"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 04b147c79..c999c9a5a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -242,6 +242,8 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progressFluid = nbt.getInteger("progressFluid"); this.progressOre = nbt.getInteger("progressOre"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index f1b1c1a28..5619478c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -202,6 +202,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, audio = rebootAudio(audio); } + audio.updateVolume(getVolume(2F)); audio.updatePitch((audioDuration - 10) / 100F + 0.5F); } else { @@ -226,6 +227,8 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); this.isOn = nbt.getBoolean("isOn"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index 5a52abb70..c52d0270d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -109,7 +109,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i } this.wasOn = true; - if(worldObj.rand.nextInt(15) == 0) { + if(worldObj.rand.nextInt(15) == 0 && !this.muffled) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "fire.fire", 1.0F, 0.5F + worldObj.rand.nextFloat() * 0.5F); } } @@ -184,6 +184,8 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.maxBurnTime = nbt.getInteger("maxBurnTime"); this.burnTime = nbt.getInteger("burnTime"); this.burnHeat = nbt.getInteger("burnHeat"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index 4b6c42214..81fb4c1c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -168,6 +168,8 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.wasOn = nbt.getBoolean("wasOn"); this.heat = nbt.getInteger("heat"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 9a00a9bba..b30350152 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -93,7 +93,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI this.progress++; this.burnTime--; - if(this.progress % 15 == 0) { + if(this.progress % 15 == 0 && !this.muffled) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "fire.fire", 1.0F, 0.5F + worldObj.rand.nextFloat() * 0.5F); } @@ -142,6 +142,8 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.maxBurnTime = nbt.getInteger("maxBurnTime"); this.burnTime = nbt.getInteger("burnTime"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java index 77d212d9e..4d6d7cbab 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java @@ -123,6 +123,8 @@ public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGU @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.progress = nbt.getIntArray("progress"); this.bonus = nbt.getIntArray("bonus"); this.heat = nbt.getInteger("heat"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index fed73cb60..173feb6de 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -193,6 +193,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.isOn = data.getBoolean("isOn"); this.power = data.getLong("power"); this.analysisOnly = data.getBoolean("analysis"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index 39b72b06c..312210f98 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -94,6 +94,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid data.setBoolean("exploded", this.hasExploded); data.setBoolean("isOn", this.isOn); + data.setBoolean("muffled", this.muffled); INBTPacketReceiver.networkPack(this, data, 25); } else { @@ -109,7 +110,8 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -150,6 +152,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid @Override public void networkUnpack(NBTTagCompound nbt) { this.hasExploded = nbt.getBoolean("exploded"); + this.muffled = nbt.getBoolean("muffled"); this.heat = nbt.getInteger("heat"); this.tanks[0].readFromNBT(nbt, "0"); this.tanks[1].readFromNBT(nbt, "1"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java index fa447da65..fe337615f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java @@ -75,6 +75,7 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme } data.setBoolean("isOn", this.isOn); + data.setBoolean("muffled", this.muffled); INBTPacketReceiver.networkPack(this, data, 25); } else { @@ -90,7 +91,8 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -134,6 +136,7 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme this.tanks[0].readFromNBT(nbt, "0"); this.tanks[1].readFromNBT(nbt, "1"); this.isOn = nbt.getBoolean("isOn"); + this.muffled = nbt.getBoolean("muffled"); } protected void tryPullHeat() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java index 35569da50..11e57b625 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java @@ -49,6 +49,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH data.setByte("s", (byte) this.setting); data.setInteger("h", this.heatEnergy); data.setBoolean("o", isOn); + data.setBoolean("muffled", muffled); INBTPacketReceiver.networkPack(this, data, 25); } else { @@ -60,7 +61,8 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -103,6 +105,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH this.setting = nbt.getByte("s"); this.heatEnergy = nbt.getInteger("h"); this.isOn = nbt.getBoolean("o"); + this.muffled = nbt.getBoolean("muffled"); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 964ef74fd..254d8d027 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -108,6 +108,8 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + tank.readFromNBT(nbt, "tank"); isOn = nbt.getBoolean("isOn"); heatEnergy = nbt.getInteger("h"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index f7a078115..59f759c71 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -356,6 +356,8 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.isOn = data.getBoolean("isOn"); this.power = data.getLong("power"); this.blanket = data.getInteger("blanket"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index 6a4d19226..f42fd7b9d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -197,6 +197,8 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.maxPower = nbt.getLong("maxPower"); this.consumption = nbt.getLong("consumption"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index b549a6335..d0bd26ea0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -120,7 +120,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i this.networkPack(data, 150); } else { - float volume = this.getVolume(2); + float volume = this.getVolume(2F); if(isProgressing && volume > 0) { @@ -145,6 +145,8 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getIntArray("progress"); this.maxProgress = nbt.getIntArray("maxProgress"); @@ -247,18 +249,6 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i public double getMaxRenderDistanceSquared() { return 65536.0D; } - - public int countMufflers() { - - int count = 0; - - for(int x = xCoord - 1; x <= xCoord + 1; x++) - for(int z = zCoord - 1; z <= zCoord + 1; z++) - if(worldObj.getBlock(x, yCoord - 1, z) == ModBlocks.muffler) - count++; - - return count; - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 009bc53e7..a44f0e996 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -117,6 +117,8 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getIntArray("progress"); this.maxProgress = nbt.getIntArray("maxProgress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index b93815fdb..f3abfb2ba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -207,6 +207,8 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); modes = new String[9]; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index 835324307..73e60b196 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -218,7 +218,8 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.updatePitch((audioDuration - 10) / 100F + 0.5F); } else { @@ -233,6 +234,8 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); this.progress = data.getInteger("progress"); this.isProgressing = data.getBoolean("isProgressing"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 7f8a84d03..4fbfdfab9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -159,6 +159,8 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getIntArray("progress"); this.maxProgress = nbt.getIntArray("maxProgress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 1c7fe4c47..00318242c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -183,7 +183,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements worldObj.spawnParticle("cloud", x, y, z, 0.0, 0.1, 0.0); } - float volume = 1;//this.getVolume(2); + float volume = this.getVolume(1F); if(isProgressing && volume > 0) { @@ -213,6 +213,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); this.maxProgress = nbt.getInteger("maxProgress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 38fce4e2a..65c10d86d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -144,6 +144,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin } audio.keepAlive(); + audio.updateVolume(this.getVolume(1F)); } else { @@ -203,6 +204,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.playersUsing = nbt.getInteger("playersUsing"); this.setting = nbt.getInteger("setting"); this.power = nbt.getLong("power"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 9a05a00b5..0d9c557d2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -146,7 +146,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement if(this.pistonDir) { this.piston -= randSpeed; if(this.piston <= 0) { - MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:item.boltgun", 0.5F, 0.75F); + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:item.boltgun", this.getVolume(0.5F), 0.75F); this.pistonDir = !this.pistonDir; } } else { @@ -165,6 +165,8 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement private float randSpeed = 0.1F; public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.progress = nbt.getInteger("progress"); this.processTime = nbt.getInteger("processTime"); this.powerRequirement = nbt.getInteger("powerRequirement"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index bac1b5928..5e6d51bbe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -155,6 +155,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); this.power = data.getLong("power"); this.progress = data.getShort("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index f5a489a8c..618ce4f80 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -201,6 +201,8 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.isOn = data.getBoolean("isOn"); this.power = data.getLong("power"); this.progress = data.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index f1c7097e7..be79c3f6e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -162,6 +162,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); power = data.getInteger("power"); powerCap = data.getInteger("powerCap"); @@ -197,7 +198,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen if(!shutUp) { if (soundCycle == 0) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", 0.75F * this.getVolume(3), 0.5F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", this.getVolume(0.75F), 0.5F); } soundCycle++; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index 7e6b2c4cb..d75431102 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -86,7 +86,7 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE this.press += stampSpeed; if(this.press >= this.maxPress) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", getVolume(1.5F), 1.0F); ItemStack output = PressRecipes.getOutput(slots[2], slots[1]); if(slots[3] == null) { slots[3] = output.copy(); @@ -142,6 +142,8 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.syncPress = nbt.getInteger("press"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 8626dcf6c..a790d6265 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -236,6 +236,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.maxProgress = nbt.getInteger("MaxProgress"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 04064d367..321ea65dc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -214,6 +214,8 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.enableDrill = nbt.getBoolean("d"); this.enableCrusher = nbt.getBoolean("c"); this.enableWalling = nbt.getBoolean("w"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java index 550deda1a..160a35b0b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -26,7 +26,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java index 3a1933554..3b7a8f6fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java @@ -69,11 +69,13 @@ public class TileEntityMachineFunnel extends TileEntityMachineBase implements IG @Override public void serialize(ByteBuf buf) { + super.serialize(buf); buf.writeInt(this.mode); } @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); this.mode = buf.readInt(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index eb993e4f7..dbfc389bd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -167,6 +167,8 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); this.progress = data.getInteger("progress"); this.isProgressing = data.getBoolean("isProgressing"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 7cf0c451f..6d68a4c76 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -262,6 +262,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.spin = nbt.getInteger("spin"); this.burn = nbt.getIntArray("burn"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index acdc7ee38..1d8eefaa0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -149,6 +149,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); this.shouldTurn = data.getBoolean("operational"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 89bfd1028..fd4e39243 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -202,6 +202,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); this.power = data.getLong("power"); this.lastTargetX = data.getInteger("lastX"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index ffd1deccb..d4d8c40cc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -140,6 +140,8 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.processTime = nbt.getInteger("processTime"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 2ddf52c34..583aa45ee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -151,6 +151,8 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java index c049d696e..58a31e5bd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java @@ -91,7 +91,7 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU this.press += stampSpeed; if(this.press >= this.maxPress) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", getVolume(1.5F), 1.0F); ItemStack output = PressRecipes.getOutput(slots[2], slots[1]); if(slots[3] == null) { slots[3] = output.copy(); @@ -161,6 +161,8 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.speed = nbt.getInteger("speed"); this.burnTime = nbt.getInteger("burnTime"); this.syncPress = nbt.getInteger("press"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java index 776289454..e44e62e8a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java @@ -118,6 +118,8 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.progress = nbt.getIntArray("progress"); this.maxProgress = nbt.getIntArray("maxProgress"); this.production = nbt.getIntArray("production"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index b29d37ea4..f43773020 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -7,7 +7,6 @@ import java.util.function.Function; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.blocks.ModBlocks; import com.hbm.extprop.HbmLivingProps; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerMachineRadarNT; @@ -155,7 +154,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } lastPower = getRedPower(); - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { + if(!this.muffled) { pingTimer++; @@ -237,6 +236,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I @Override public void serialize(ByteBuf buf) { + super.serialize(buf); buf.writeLong(this.power); buf.writeBoolean(this.scanMissiles); buf.writeBoolean(this.scanShells); @@ -266,6 +266,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); this.power = buf.readLong(); this.scanMissiles = buf.readBoolean(); this.scanShells = buf.readBoolean(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index 1cbe50ab4..1e63bd80f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -105,6 +105,8 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); this.heat = data.getInteger("heat"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java index 3a8cec7ca..42ac92f71 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java @@ -72,6 +72,8 @@ public class TileEntityMachineReactorBreeding extends TileEntityMachineBase impl } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + flux = data.getInteger("flux"); progress = data.getFloat("progress"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index bed920b68..83b516c43 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -183,6 +183,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } + audio.updateVolume(getVolume(1F)); } else { if(audio != null) { @@ -226,6 +227,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); this.power = data.getLong("power"); this.process = data.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index c55778131..d366b287f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -305,7 +305,7 @@ public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implem if(!shutUp) { if (soundCycle == 0) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", 1.0F, 0.5F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", this.getVolume(1.0F), 0.5F); } soundCycle++; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index ee1e8fb32..ab6c81d37 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -249,7 +249,7 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I flag1 = true; } if(soundCycle == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "minecart.base", 1.0F, 0.75F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "minecart.base", getVolume(1.0F), 0.75F); soundCycle++; if(soundCycle >= 50) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 21bb03777..9a92c3db8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -176,17 +176,17 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement if(audio == null) { //if there is no sound playing, start it - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 2.0F); audio.startSound(); } else if(!audio.isPlaying()) { audio.stopSound(); - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 2.0F); audio.startSound(); } audio.updatePitch((float) (0.55 + 0.1 * rpm / 10)); //dynamic pitch update based on rpm - audio.updateVolume(100F); //yeah i need this + audio.updateVolume(getVolume(2F)); //yeah i need this } else { @@ -378,6 +378,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.power = nbt.getLong("power"); this.rpm = nbt.getInteger("rpm"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 4c7e068b3..247983bda 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -318,7 +318,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem } audio.keepAlive(); - audio.updateVolume(momentum); + audio.updateVolume(getVolume(momentum)); audio.updatePitch(momentum / 200F + 0.5F + this.afterburner * 0.16F); } else { @@ -382,6 +382,8 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.afterburner = nbt.getByte("after"); this.wasOn = nbt.getBoolean("wasOn"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index 42510532f..d4a1f7700 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -150,6 +150,8 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.burnTime = nbt.getInteger("burnTime"); this.maxBurnTime = nbt.getInteger("maxBurnTime"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java index 5253e4aec..baf799651 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java @@ -81,6 +81,8 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + power = data.getLong("power"); time = data.getInteger("time"); speed = data.getInteger("speed"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 03e34f0fe..974c78122 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -292,7 +292,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -376,6 +377,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + tanks[0].readFromNBT(nbt, "t0"); tanks[1].readFromNBT(nbt, "t1"); rodCount = nbt.getInteger("rodCount"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index 63ea4818e..7169ce7f4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -151,6 +151,8 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.heat = data.getInteger("heat"); this.level = data.getDouble("level"); this.flux = data.getInteger("flux"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 0bc646eee..8e1816775 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -161,6 +161,8 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.heat = data.getInteger("heat"); this.water = data.getByte("water"); this.level = data.getDouble("level"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index 43536fedb..2064b13f9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -133,6 +133,8 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.heat = data.getInteger("heat"); this.pressure = data.getInteger("pressure"); this.isOn = data.getBoolean("isOn"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index 454714695..7148b06b1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -101,6 +101,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.currentFill = nbt.getInteger("fill"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index 6f85b34fd..01a399e72 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -193,6 +193,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + power = data.getLong("power"); mode = data.getByte("mode"); starting = data.getBoolean("starting"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java index 2d70dc4c6..3c0f29220 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java @@ -109,7 +109,7 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui if(this.rotor >= 360D) { this.rotor -= 360D; - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", 1.0F, 0.5F + (acceleration / 80F)); + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", getVolume(1.0F), 0.5F + (acceleration / 80F)); } data.setLong("power", this.powerBuffer); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java index f3c930d3e..664327e1f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java @@ -147,6 +147,7 @@ public class TileEntityTesla extends TileEntityMachineBase implements IEnergyUse } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); int s = data.getShort("length"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index 32ec41b3e..9168d4387 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -293,6 +293,8 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.heat = nbt.getInteger("heat"); this.isOn = nbt.getBoolean("isOn"); this.isLocked = nbt.getBoolean("lock"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java index 04e534de5..5ef5ed3c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java @@ -83,6 +83,8 @@ public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase im @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); for(int i = 0; i < 4; i++) tanks[i].readFromNBT(nbt, "" + i); } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java index f2adcb771..8e812e5ac 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java @@ -175,6 +175,8 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.wasOn = nbt.getBoolean("wasOn"); this.heat = nbt.getInteger("heat"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 25d5f4029..c73041b75 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -129,7 +129,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements tank.getTankType().onFluidRelease(this, tank, eject); if(worldObj.getTotalWorldTime() % 7 == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", 1.5F, 0.5F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", getVolume(1.5F), 0.5F); } } else { @@ -159,7 +159,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements } if(worldObj.getTotalWorldTime() % 3 == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", getVolume(1.5F), 0.75F); if(worldObj.getTotalWorldTime() % 20 == 0) { PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); @@ -234,6 +234,8 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); this.doesBurn = nbt.getBoolean("doesBurn"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 01b59adc8..2cd37bd61 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -169,6 +169,8 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); this.usage = nbt.getInteger("usage"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index dd11a3431..9788943a9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -123,8 +123,8 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { @Override public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.indicator = nbt.getInteger("indicator"); + super.networkUnpack(nbt); + this.speed = nbt.getFloat("speed"); } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 27e48d4a1..4ee78cd48 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -231,7 +231,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -271,6 +272,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); this.hasExploded = nbt.getBoolean("exploded"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index 1677a5321..1f900c83b 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -172,6 +172,8 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); this.usage = nbt.getInteger("usage"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index 9fc45de36..326608afc 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -98,7 +98,8 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -138,6 +139,8 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 4c785a486..940cb14d5 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -177,6 +177,8 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.indicator = nbt.getInteger("indicator"); } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 49db2fe90..37ea7fbfb 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -261,6 +261,8 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + mode = data.getShort("mode"); } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index c27670d37..f20d2f7fb 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -322,7 +322,8 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } @Override - public void networkUnpack(NBTTagCompound nbt) { + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.power = nbt.getLong("power"); this.delta = nbt.getLong("delta"); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java index 2996d102a..a634dcc79 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java @@ -151,6 +151,8 @@ public class TileEntityCraneBoxer extends TileEntityCraneBase implements IGUIPro } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.mode = nbt.getByte("mode"); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index d947f9922..8f08fa356 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -172,6 +172,8 @@ public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGU } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.isWhitelist = nbt.getBoolean("isWhitelist"); this.matcher.modes = new String[this.matcher.modes.length]; this.matcher.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java index e6dc6b48b..cec453cd8 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java @@ -137,6 +137,8 @@ public class TileEntityCraneGrabber extends TileEntityCraneBase implements IGUIP } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.isWhitelist = nbt.getBoolean("isWhitelist"); this.matcher.modes = new String[this.matcher.modes.length]; this.matcher.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java index 68db57165..603e839e4 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java @@ -57,6 +57,8 @@ public class TileEntityCraneRouter extends TileEntityMachineBase implements IGUI @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + for(int i = 0; i < patterns.length; i++) { NBTTagCompound compound = data.getCompoundTag("pattern" + i); patterns[i].readFromNBT(compound); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java index 809fec28f..90328882b 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java @@ -75,6 +75,8 @@ public class TileEntityRadioTorchCounter extends TileEntityMachineBase implement } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.polling = nbt.getBoolean("polling"); this.lastCount = nbt.getIntArray("last"); this.matcher.modes = new String[this.matcher.modes.length]; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 53496d00a..4420667ba 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -291,6 +291,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 80f97bbc0..3a7ac08cf 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3337,6 +3337,7 @@ item.upgrade_fortune_2.name=Glückupgrade Mk.II item.upgrade_fortune_3.name=Glückupgrade Mk.III item.upgrade_gc_speed.name=Gaszentrifugen-Geschwindigkeitsupgrade item.upgrade_health.name=Kraftfeld-Resistenzupgrade +item.upgrade_muffler.name=Schalldämpfer item.upgrade_nullifier.name=Müllvernichter-Upgrade item.upgrade_overdrive_1.name=Overdrive-Upgrade Mk.I item.upgrade_overdrive_2.name=Overdrive-Upgrade Mk.II diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 7572149a1..1ca85dd75 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4261,6 +4261,7 @@ item.upgrade_fortune_2.name=Fortune Upgrade Mk.II item.upgrade_fortune_3.name=Fortune Upgrade Mk.III item.upgrade_gc_speed.name=Gas Centrifuge Overclocking Upgrade item.upgrade_health.name=Emitter Health Upgrade +item.upgrade_muffler.name=Muffler item.upgrade_nullifier.name=Scrap Destroyer Upgrade item.upgrade_overdrive_1.name=Overdrive Upgrade Mk.I item.upgrade_overdrive_2.name=Overdrive Upgrade Mk.II diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_muffler.png b/src/main/resources/assets/hbm/textures/items/upgrade_muffler.png new file mode 100644 index 0000000000000000000000000000000000000000..423195122eec3b39faa1c9f992b73026a64b84a8 GIT binary patch literal 438 zcmV;n0ZIOeP)-9LF&+PYmthN09^|N^k>-Cz=W Date: Mon, 22 Jan 2024 21:05:09 +0100 Subject: [PATCH 110/376] and all that --- changelog | 3 ++- .../com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java | 2 ++ .../java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java | 1 + .../java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java | 2 ++ src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java | 2 -- src/main/java/com/hbm/items/armor/ItemModCard.java | 1 + src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java | 2 ++ src/main/java/com/hbm/sound/AudioDynamic.java | 2 +- .../tileentity/machine/TileEntityMachineCombustionEngine.java | 2 +- .../com/hbm/tileentity/machine/TileEntityMachineTurbofan.java | 2 +- 10 files changed, 13 insertions(+), 6 deletions(-) diff --git a/changelog b/changelog index bc41e7d19..f406cefee 100644 --- a/changelog +++ b/changelog @@ -2,8 +2,9 @@ * Muffler * An upgrade-like item that replaces the old muffler block * Creates 16 when crafted, however it is not returned when the muffled machine is broken - * Should work with pretty much all machines that use looped sounds, as well as a few other noisy ones (copressors, diesel generators, presses) + * Should work with pretty much all machines that use looped sounds, as well as a few other noisy ones (compressors, diesel generators, presses) * Simply right-click to install, doesn't need to be inserted into an upgrade slot, in fact it works on a few machines that have no GUI at all ## Fixed * Fixed basalt ores dropping their items with invalid metadata +* Fixed creative infinite fluid tanks not being able to fill fluid gauges at >0PU diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java index 8228afc44..9113bdfff 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java @@ -16,6 +16,8 @@ public class FluidLoaderFillableItem extends FluidLoadingHandler { public boolean fill(ItemStack stack, FluidTank tank) { + if(tank.pressure != 0) return false; + if(stack == null) return false; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java index 8ceac7946..adc4c49d9 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java @@ -18,6 +18,7 @@ public class FluidLoaderInfinite extends FluidLoadingHandler { ItemInfiniteFluid item = (ItemInfiniteFluid) slots[in].getItem(); + if(!item.allowPressure(tank.pressure)) return false; if(item.getType() != null && tank.type != item.getType()) return false; if(item.getChance() <= 1 || rand.nextInt(item.getChance()) == 0) { diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java index d4c784396..c8fcecbb4 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java @@ -10,6 +10,8 @@ public class FluidLoaderStandard extends FluidLoadingHandler { @Override public boolean fillItem(ItemStack[] slots, int in, int out, FluidTank tank) { + if(tank.pressure != 0) return false; + if(slots[in] == null) return true; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 508f94c01..5f093bc66 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -126,8 +126,6 @@ public class FluidTank { if(slots[in] == null) return false; - if(this.pressure != 0) return false; //for now, canisters can only be loaded from high-pressure tanks, not unloaded - int prev = this.getFill(); for(FluidLoadingHandler handler : loadingHandlers) { diff --git a/src/main/java/com/hbm/items/armor/ItemModCard.java b/src/main/java/com/hbm/items/armor/ItemModCard.java index aee3e2152..4249d0591 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCard.java +++ b/src/main/java/com/hbm/items/armor/ItemModCard.java @@ -16,6 +16,7 @@ public class ItemModCard extends ItemArmorMod { public ItemModCard() { super(ArmorModHandler.helmet_only, true, false, false, false); + this.setCreativeTab(null); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java b/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java index 011b596b6..2223059ee 100644 --- a/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java +++ b/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.ModItems; import net.minecraft.item.Item; @@ -23,4 +24,5 @@ public class ItemInfiniteFluid extends Item { public FluidType getType() { return this.type; } public int getAmount() { return this.amount; } public int getChance() { return this.chance; } + public boolean allowPressure(int pressure) { return this == ModItems.fluid_barrel_infinite || pressure == 0; } } diff --git a/src/main/java/com/hbm/sound/AudioDynamic.java b/src/main/java/com/hbm/sound/AudioDynamic.java index 3799b7d05..db13d09b3 100644 --- a/src/main/java/com/hbm/sound/AudioDynamic.java +++ b/src/main/java/com/hbm/sound/AudioDynamic.java @@ -62,7 +62,7 @@ public class AudioDynamic extends MovingSound { } public void setVolume(float volume) { - this.volume = volume; + this.maxVolume = volume; } public void setRange(float range) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 65c10d86d..9cad71b9d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -142,7 +142,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + audio.keepAlive(); audio.updateVolume(this.getVolume(1F)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 247983bda..01c4cc7ce 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -318,7 +318,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem } audio.keepAlive(); - audio.updateVolume(getVolume(momentum)); + audio.updateVolume(getVolume(momentum / 50F)); audio.updatePitch(momentum / 200F + 0.5F + this.afterburner * 0.16F); } else { From 99372b478ffa0d6a0c0e027117bf98e6a9c98579 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 22 Jan 2024 16:41:25 -0800 Subject: [PATCH 111/376] lmoa --- .../java/com/hbm/items/tool/ItemWandD.java | 91 +-- .../java/com/hbm/lib/HbmChestContents.java | 24 - src/main/java/com/hbm/lib/HbmWorld.java | 8 +- .../com/hbm/world/gen/MapGenNTMFeatures.java | 15 +- .../hbm/world/gen/MapGenSpecialFeatures.java | 128 ---- .../com/hbm/world/gen/NTMWorldGenerator.java | 7 - .../gen/component/BrutalistFeatures.java | 623 ------------------ .../hbm/world/gen/component/Component.java | 16 - .../hbm/world/gen/component/RuinFeatures.java | 26 - .../world/gen/component/SpecialFeatures.java | 89 --- src/main/resources/assets/hbm/lang/en_US.lang | 6 - 11 files changed, 18 insertions(+), 1015 deletions(-) delete mode 100644 src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java delete mode 100644 src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java delete mode 100644 src/main/java/com/hbm/world/gen/component/SpecialFeatures.java diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 0cb61cc3c..c8dcbbe19 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -5,16 +5,12 @@ import java.util.List; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; import com.hbm.util.TrackerUtil; -import com.hbm.world.WorldUtil; -import com.hbm.world.biome.BiomeGenCraterBase; -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -38,88 +34,13 @@ public class ItemWandD extends Item { //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); - int mI = 2; - int mK = 2; + /*int i = pos.blockX >> 4; + int j = pos.blockZ >> 4; - if(!player.isSneaking()) { - for(int i = 0; i < mI; i++) { - for(int k = 0; k < mK; k++) { - for(int j = 0; j < 6; j++) { - double r = world.rand.nextGaussian(); - - Block b; - int meta = 0; - if(r < -1) { - b = Blocks.iron_bars; - } else if(r < .1) { - - int h = world.rand.nextInt(20); - if(h < 5) - b = ModBlocks.brick_concrete_broken_stairs; - else if(h < 10) - b = ModBlocks.brick_concrete_cracked_stairs; - else - b = ModBlocks.brick_concrete_stairs; - - meta = world.rand.nextInt(16); - } else { - int h = world.rand.nextInt(20); - if(h < 5) - b = ModBlocks.brick_concrete_broken; - else if(h < 10) - b = ModBlocks.brick_concrete_cracked; - else - b = ModBlocks.brick_concrete; - } - - world.setBlock(pos.blockX + i, pos.blockY + j + 1, pos.blockZ + k, b, meta, 2); - } - } - } - } else { - for(int i = 0; i < mI; i++) { - for(int k = 0; k < mK; k++) { - double r = world.rand.nextGaussian(); - - Block b; - int meta = 0; - if(r < -2) { - b = Blocks.iron_bars; - } else if(r < -1) { - b = ModBlocks.concrete_brick_slab; - meta = 8; - int h = world.rand.nextInt(20); - - if(h < 5) - meta |= 3; - else if(h < 10) - meta |= 2; - - } else if(r < .1) { - - int h = world.rand.nextInt(20); - if(h < 5) - b = ModBlocks.brick_concrete_broken_stairs; - else if(h < 10) - b = ModBlocks.brick_concrete_cracked_stairs; - else - b = ModBlocks.brick_concrete_stairs; - - meta = world.rand.nextInt(16); - } else { - int h = world.rand.nextInt(20); - if(h < 5) - b = ModBlocks.brick_concrete_broken; - else if(h < 10) - b = ModBlocks.brick_concrete_cracked; - else - b = ModBlocks.brick_concrete; - } - - world.setBlock(pos.blockX + i, pos.blockY + 1, pos.blockZ + k, b, meta, 2); - } - } - } + i = (i << 4) + 8; + j = (j << 4) + 8; + Component comp = new ElevatedPrefab1(world.rand, i, 64, j); + comp.addComponentParts(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32));*/ /*int i = pos.blockX >> 4; int j = pos.blockZ >> 4; diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 38eca93a0..964bfc4dc 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -459,28 +459,4 @@ public class HbmChestContents { return ItemBookLore.createBook(key, pages, 0x1E1E1E, 0x46EA44); } - - public static ItemStack generateRuinBook(Random rand, int chunkX, int chunkZ) { - ChunkCoordIntPair pair = HbmWorld.worldGenerator.specialFeatureGen.findClosestPosition(chunkX, chunkZ); - int[] vec = new int[] { pair.chunkXPos - chunkX, pair.chunkZPos - chunkZ }; - int dist = (int) Math.sqrt(vec[0] * vec[0] + vec[1] * vec[1]); - - String conf = "book_lore.ruin_special."; - if(dist > 128) { - dist -= dist * .5F * (.5F - rand.nextFloat()); - conf += "low"; - } else if(dist > 64) { - dist -= dist * .25F * (.5F - rand.nextFloat()); - conf += "med"; - } else { - conf += "high"; - } - - String angle = Math.round(Math.toDegrees(Math.atan2(vec[0], vec[1])) * 10000D) / 10000D + ""; - String res = (Math.round((dist * 16) / 1000D * 100D) / 100D) + ""; - - ItemStack book = ItemBookLore.createBook("ruin_special", 1, 0x770011, 0xFFFFFF); - ItemBookLore.addArgs(book, 0, res, angle, conf); - return book; - } } diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index b2ff4699c..e8c745f28 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -2,14 +2,11 @@ package com.hbm.lib; import com.hbm.world.gen.MapGenNTMFeatures; import com.hbm.world.gen.NTMWorldGenerator; -import com.hbm.world.gen.MapGenSpecialFeatures.SpecialStart; -import com.hbm.world.gen.component.BrutalistFeatures; import com.hbm.world.gen.component.BunkerComponents; +import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import com.hbm.world.gen.component.CivilianFeatures; import com.hbm.world.gen.component.OfficeFeatures; import com.hbm.world.gen.component.RuinFeatures; -import com.hbm.world.gen.component.SpecialFeatures; -import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.registry.GameRegistry; @@ -30,7 +27,6 @@ public class HbmWorld { //MapGenStructureIO.func_143031_a(StructureComponentTest.class, "HFR_COMPONENT"); MapGenStructureIO.registerStructure(MapGenNTMFeatures.Start.class, "NTMFeatures"); MapGenStructureIO.registerStructure(BunkerStart.class, "NTMBunker"); - MapGenStructureIO.registerStructure(SpecialStart.class, "NTMSpecialFeatures"); registerNTMFeatures(); registerWorldGen(new HbmWorldGen(), 1); @@ -51,7 +47,5 @@ public class HbmWorld { OfficeFeatures.registerComponents(); RuinFeatures.registerComponents(); BunkerComponents.registerComponents(); - BrutalistFeatures.registerComponents(); - SpecialFeatures.registerComponents(); } } diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index 5b24ea05a..dc5487eb3 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -7,11 +7,18 @@ import java.util.Random; import com.hbm.config.GeneralConfig; import com.hbm.config.StructureConfig; -import com.hbm.world.gen.component.BrutalistFeatures.*; import com.hbm.world.gen.component.BunkerComponents.BunkerStart; -import com.hbm.world.gen.component.CivilianFeatures.*; -import com.hbm.world.gen.component.OfficeFeatures.*; -import com.hbm.world.gen.component.RuinFeatures.*; +import com.hbm.world.gen.component.CivilianFeatures.NTMHouse1; +import com.hbm.world.gen.component.CivilianFeatures.NTMHouse2; +import com.hbm.world.gen.component.CivilianFeatures.NTMLab1; +import com.hbm.world.gen.component.CivilianFeatures.NTMLab2; +import com.hbm.world.gen.component.CivilianFeatures.NTMWorkshop1; +import com.hbm.world.gen.component.OfficeFeatures.LargeOffice; +import com.hbm.world.gen.component.OfficeFeatures.LargeOfficeCorner; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin1; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin2; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin3; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin4; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; diff --git a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java b/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java deleted file mode 100644 index e6a104c8d..000000000 --- a/src/main/java/com/hbm/world/gen/MapGenSpecialFeatures.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.hbm.world.gen; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Random; -import java.util.Set; - -import com.hbm.config.GeneralConfig; -import com.hbm.world.gen.component.SpecialFeatures.SpecialContainer; - -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.World; -import net.minecraft.world.gen.structure.MapGenStructure; -import net.minecraft.world.gen.structure.MapGenStructureIO; -import net.minecraft.world.gen.structure.StructureComponent; -import net.minecraft.world.gen.structure.StructureStart; - -//stuff like the exclusive n rare shipping containers. -//it's 'special' because it's not unique but also limited -public class MapGenSpecialFeatures extends MapGenStructure { - //suuuuuper efficient for .contains() - //do i even need chunkcoordintpairs? idk - Set locs = new HashSet(); - - /** String ID for this MapGen */ - @Override - public String func_143025_a() { - return "NTMSpecialFeatures"; - } - - public void setWorld(World world) { - this.worldObj = world; - } - - @Override - protected boolean canSpawnStructureAtCoords(int chunkX, int chunkZ) { - if(locs.isEmpty()) - generatePositions(); - - return locs.contains(new ChunkCoordIntPair(chunkX, chunkZ)); - } - - //i'll probs make a system to predict which locations are what in advance - //seems like biomes can be cached/gen'd without creating the chunk, thankfully - public ChunkCoordIntPair findClosestPosition(int chunkX, int chunkZ) { - if(locs.isEmpty()) - generatePositions(); - - ChunkCoordIntPair pair = new ChunkCoordIntPair(0, 0); - long dist = Long.MAX_VALUE; - for(ChunkCoordIntPair loc : locs) { - int x = loc.chunkXPos - chunkX; - int z = loc.chunkZPos - chunkZ; - long cont = x * x + z * z; - - if(cont < dist) { - pair = loc; - dist = cont; - } - } - - return pair; - } - - protected void generatePositions() { - //for safety: maybe mandate interactions with these methods to an outside class/wrapper who say "fuck you" - Random rand = new Random(this.worldObj.getSeed()); - double theta = rand.nextDouble() * Math.PI * 2; - int ringMax = 4; //each ring of structures has more (and is farther) than the last - int ringDist = 1; - final int total = 16; //for now - //no biome checks necessary, underground caches can always be a backup - for(int i = 1; i <= total; i++) { - double dist = 312D * (1.25 * ringDist + rand.nextDouble() * 0.5); //5k blocks * random dist in the region of a ring - int cX = (int)Math.round(Math.cos(theta) * dist); - int cZ = (int)Math.round(Math.sin(theta) * dist); - - ChunkCoordIntPair pair = new ChunkCoordIntPair(cX, cZ); - locs.add(pair); - - if(GeneralConfig.enableDebugMode) - System.out.println("SpecialFeature: " + (pair.chunkXPos * 16 + 8) + ", Y, " + (pair.chunkZPos * 16 + 8)); - - theta += Math.PI * 2 / ringMax; - - if(i == (ringDist - 1) * 4 + ringMax) { - ringDist++; - //maybe insert random theta each time? - if(i + ringDist * 4 > total) //last ring may be sparser, but evenly spaced too - ringMax = total - i; - else - ringMax = ringDist * 4; - } - } - } - - @Override - protected StructureStart getStructureStart(int chunkX, int chunkZ) { - return new SpecialStart(this.worldObj, this.rand, chunkX, chunkZ); - } - - public static class SpecialStart extends StructureStart { - - public SpecialStart() {} - - public SpecialStart(World world, Random rand, int chunkX, int chunkZ) { - super(chunkX, chunkZ); - - //test - SpecialContainer shipping = new SpecialContainer(rand, chunkX * 16 + 8, 64, chunkZ * 16 + 8); - this.components.add(shipping); - - if(GeneralConfig.enableDebugMode) { - System.out.print("[Debug] StructureStart at " + (chunkX * 16 + 8) + ", " + 64 + ", " + (chunkZ * 16 + 8) + "\n[Debug] Components: "); - this.components.forEach((component) -> { - System.out.print(MapGenStructureIO.func_143036_a((StructureComponent) component) + " "); - }); - - System.out.print("\n"); - } - - this.updateBoundingBox(); - } - } - -} diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 45d7a24a2..cd29b0150 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -17,9 +17,7 @@ import static net.minecraftforge.event.terraingen.TerrainGen.*; import net.minecraftforge.event.world.WorldEvent; public class NTMWorldGenerator implements IWorldGenerator { - //turns out minecraft is cringe and WorldEvent.Load can be/is called after chunks are provided private MapGenNTMFeatures scatteredFeatureGen = new MapGenNTMFeatures(); - public MapGenSpecialFeatures specialFeatureGen = new MapGenSpecialFeatures(); private final Random rand = new Random(); //A central random, used to cleanly generate our stuff without affecting vanilla or modded seeds. @@ -27,8 +25,6 @@ public class NTMWorldGenerator implements IWorldGenerator { @SubscribeEvent public void onLoad(WorldEvent.Load event) { scatteredFeatureGen = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); - specialFeatureGen = (MapGenSpecialFeatures) getModdedMapGen(new MapGenSpecialFeatures(), EventType.CUSTOM); - specialFeatureGen.setWorld(event.world); //doesn't matter on the client so we're good anyway hasPopulationEvent = false; } @@ -71,9 +67,6 @@ public class NTMWorldGenerator implements IWorldGenerator { this.scatteredFeatureGen.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); this.scatteredFeatureGen.generateStructuresInChunk(world, rand, chunkX, chunkZ); - - this.specialFeatureGen.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); - this.specialFeatureGen.generateStructuresInChunk(world, rand, chunkX, chunkZ); } /* diff --git a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java b/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java deleted file mode 100644 index 9ba8696a7..000000000 --- a/src/main/java/com/hbm/world/gen/component/BrutalistFeatures.java +++ /dev/null @@ -1,623 +0,0 @@ -package com.hbm.world.gen.component; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; -import com.hbm.world.gen.NTMWorldGenerator; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.gen.feature.WorldGenShrub; -import net.minecraft.world.gen.structure.MapGenStructureIO; -import net.minecraft.world.gen.structure.StructureBoundingBox; -import net.minecraft.world.gen.structure.StructureComponent; -import net.minecraftforge.common.BiomeDictionary; -import net.minecraftforge.common.BiomeDictionary.Type; - -//civilian features is fucking cringe :P -public class BrutalistFeatures { - - public static void registerComponents() { - MapGenStructureIO.func_143031_a(ElevatedPrefab1.class, "NTMElevatedPrefab1"); - } - - //might be other than a lab, placeholder :P - public static class ElevatedPrefab1 extends Component { - - protected int type; - - public ElevatedPrefab1() { super(); } - - public ElevatedPrefab1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 16, 11, 14); - - this.type = rand.nextInt(2); - } - - /** Set to NBT */ - protected void func_143012_a(NBTTagCompound nbt) { - super.func_143012_a(nbt); - nbt.setInteger("type", type); - } - - /** Get from NBT */ - protected void func_143011_b(NBTTagCompound nbt) { - super.func_143011_b(nbt); - this.type = nbt.getInteger("type"); - } - - @Override - public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { - - if(hpos == -1 && !this.setAverageHeight(world, box, this.boundingBox.minY)) { - return false; - } - - BiomeGenBase biome = world.getBiomeGenForCoords(this.boundingBox.minX, this.boundingBox.minZ); - DirtyGlass glass = new DirtyGlass(biome, 0.1F, true); - - final int stairMetaW = getStairMeta(0); - final int stairMetaE = getStairMeta(1); - final int stairMetaN = getStairMeta(2); - final int stairMetaS = getStairMeta(3); - - //greater pillars - for(int i = 2; i <= 12; i+=5) { - fillWithBlocks(world, box, i, 0, 2, i, 1, 4, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, i, 4, 2, i, 5, 4, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, i+1, 0, 2, i+1, 5, 4, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, i+2, 0, 2, i+2, 1, 4, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, i+2, 4, 2, i+2, 5, 4, ModBlocks.concrete_smooth); - - for(int j = 0; j <= 1; j++) { - final int u = j * 4; - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | u, i, 2 + j, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | u, i+2, 2 + j, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW | u, i, 2 + j, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | u, i+2, 2 + j, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | u, i, 2 + j, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | u, i+2, 2 + j, 4, box); - } - - placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i, 2, i, 4, -1, box); - placeFoundationUnderneath(world, ModBlocks.concrete_pillar, 0, i+1, 2, i+1, 4, -1, box); - placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i+2, 2, i+2, 4, -1, box); - } - - //lesser pillars - for(int i = 2; i <= 12; i+=5) { - fillWithBlocks(world, box, i, 0, 10, i, 1, 12, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, i, 3, 10, i, 3, 12, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, i+1, 0, 10, i+1, 3, 12, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, i+2, 0, 10, i+2, 1, 12, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, i+2, 3, 10, i+2, 3, 12, ModBlocks.concrete_smooth); - - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, i, 2, 10, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, i+2, 2, 10, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW, i, 2, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE, i+2, 2, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS, i, 2, 12, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS, i+2, 2, 12, box); - - placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i, 10, i, 12, -1, box); - placeFoundationUnderneath(world, ModBlocks.concrete_pillar, 0, i+1, 10, i+1, 12, -1, box); - placeFoundationUnderneath(world, ModBlocks.concrete_smooth, 0, i+2, 10, i+2, 12, -1, box); - } - - fillWithAir(world, box, 1, 5, 9, 15, 7, 13); - fillWithAir(world, box, 13, 6, 8, 14, 6, 8); - fillWithAir(world, box, 13, 7, 6, 14, 8, 8); - fillWithAir(world, box, 1, 7, 1, 15, 9, 5); - - /* lower floor */ - //lower slabs - fillWithMetadataBlocks(world, box, 0, 3, 9, 16, 3, 9, ModBlocks.concrete_slab, 8); - fillWithMetadataBlocks(world, box, 1, 3, 10, 1, 3, 12, ModBlocks.concrete_slab, 8); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 0, 3, 11, box); - fillWithMetadataBlocks(world, box, 0, 3, 13, 16, 3, 13, ModBlocks.concrete_slab, 8); - fillWithMetadataBlocks(world, box, 5, 3, 10, 6, 3, 12, ModBlocks.concrete_slab, 8); - fillWithMetadataBlocks(world, box, 10, 3, 10, 11, 3, 12, ModBlocks.concrete_slab, 8); - fillWithMetadataBlocks(world, box, 15, 3, 10, 15, 3, 12, ModBlocks.concrete_slab, 8); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 16, 3, 11, box); - //floor & lining - fillWithBlocks(world, box, 1, 4, 9, 15, 4, 13, ModBlocks.deco_titanium); - fillWithMetadataBlocks(world, box, 0, 4, 8, 16, 4, 8, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); - fillWithBlocks(world, box, 0, 4, 9, 0, 4, 13, ModBlocks.concrete_smooth); - fillWithMetadataBlocks(world, box, 0, 4, 14, 16, 4, 14, ModBlocks.concrete_smooth_stairs, stairMetaS | 4); - fillWithBlocks(world, box, 16, 4, 9, 16, 4, 13, ModBlocks.concrete_smooth); - //walls - fillWithBlocks(world, box, 0, 5, 8, 1, 6, 8, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 4, 5, 8, 12, 6, 8, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 0, 7, 8, 12, 7, 8, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 15, 5, 8, 16, 6, 8, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 15, 7, 8, 16, 7, 8, ModBlocks.concrete_smooth); - - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 5, 9, box); - fillWithBlocks(world, box, 0, 5, 11, 0, 6, 11, ModBlocks.concrete_colored_ext); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 5, 13, box); - fillWithBlocks(world, box, 0, 5, 14, 0, 6, 14, ModBlocks.concrete_colored_ext); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 0, 7, 9, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 0, 7, 11, box); - fillWithBlocks(world, box, 0, 7, 13, 0, 7, 14, ModBlocks.concrete_smooth); - - fillWithBlocks(world, box, 4, 5, 14, 4, 6, 14, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 6, 5, 14, 6, 6, 14, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 8, 5, 14, 8, 6, 14, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 10, 5, 14, 10, 6, 14, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 12, 5, 14, 12, 6, 14, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 16, 5, 14, 16, 6, 14, ModBlocks.concrete_colored_ext); - fillWithMetadataBlocks(world, box, 1, 7, 14, 3, 7, 14, ModBlocks.concrete_smooth_stairs, stairMetaS | 4); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 4, 7, 14, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 6, 7, 14, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 8, 7, 14, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 10, 7, 14, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 7, 14, box); - fillWithMetadataBlocks(world, box, 13, 7, 14, 15, 7, 14, ModBlocks.concrete_smooth_stairs, stairMetaS | 4); - - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 5, 13, box); - fillWithBlocks(world, box, 16, 5, 11, 16, 6, 11, ModBlocks.concrete_colored_ext); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 5, 9, box); - fillWithBlocks(world, box, 16, 7, 13, 16, 7, 14, ModBlocks.concrete_smooth); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 16, 7, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 16, 7, 9, box); - //windows - fillWithRandomizedBlocks(world, box, 0, 6, 9, 0, 6, 9, rand, glass); - fillWithRandomizedBlocks(world, box, 0, 5, 10, 0, 7, 10, rand, glass); - fillWithRandomizedBlocks(world, box, 0, 5, 12, 0, 7, 12, rand, glass); - fillWithRandomizedBlocks(world, box, 0, 6, 13, 0, 6, 13, rand, glass); - fillWithRandomizedBlocks(world, box, 1, 5, 14, 3, 6, 14, rand, glass); - fillWithRandomizedBlocks(world, box, 5, 5, 14, 5, 7, 14, rand, glass); - fillWithRandomizedBlocks(world, box, 7, 5, 14, 7, 7, 14, rand, glass); - fillWithRandomizedBlocks(world, box, 9, 5, 14, 9, 7, 14, rand, glass); - fillWithRandomizedBlocks(world, box, 11, 5, 14, 11, 7, 14, rand, glass); - fillWithRandomizedBlocks(world, box, 13, 5, 14, 15, 6, 14, rand, glass); - fillWithRandomizedBlocks(world, box, 16, 6, 13, 16, 6, 13, rand, glass); - fillWithRandomizedBlocks(world, box, 16, 5, 12, 16, 7, 12, rand, glass); - fillWithRandomizedBlocks(world, box, 16, 5, 10, 16, 7, 10, rand, glass); - fillWithRandomizedBlocks(world, box, 16, 6, 9, 16, 6, 9, rand, glass); - //ceiling with liner - fillWithMetadataBlocks(world, box, 1, 8, 9, 15, 8, 13, ModBlocks.vinyl_tile, 1); - fillWithMetadataBlocks(world, box, 0, 8, 8, 11, 8, 8, ModBlocks.concrete_smooth_stairs, stairMetaN); - fillWithBlocks(world, box, 12, 8, 8, 12, 8, 9, ModBlocks.concrete_smooth); - fillWithMetadataBlocks(world, box, 13, 8, 9, 14, 8, 9, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); - fillWithBlocks(world, box, 15, 8, 8, 15, 8, 9, ModBlocks.concrete_smooth); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN, 16, 8, 8, box); - fillWithBlocks(world, box, 16, 8, 9, 16, 8, 13, ModBlocks.concrete_smooth); - fillWithMetadataBlocks(world, box, 0, 8, 14, 16, 8, 14, ModBlocks.concrete_smooth_stairs, stairMetaS); - fillWithBlocks(world, box, 0, 8, 9, 0, 8, 13, ModBlocks.concrete_smooth); - //upper slabs - fillWithBlocks(world, box, 0, 9, 9, 16, 9, 9, ModBlocks.concrete_slab); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 0, 0, 9, 11, box); - fillWithBlocks(world, box, 0, 9, 13, 16, 9, 13, ModBlocks.concrete_slab); - fillWithBlocks(world, box, 1, 9, 10, 15, 9, 12, ModBlocks.concrete_slab); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 0, 16, 9, 11, box); - fillWithBlocks(world, box, 12, 9, 8, 15, 9, 8, ModBlocks.concrete_slab); - - /* middle stairs */ - //stairs - fillWithMetadataBlocks(world, box, 13, 5, 8, 14, 5, 8, ModBlocks.concrete_smooth_stairs, stairMetaS); - fillWithMetadataBlocks(world, box, 13, 6, 7, 14, 6, 7, ModBlocks.concrete_smooth_stairs, stairMetaS); - fillWithMetadataBlocks(world, box, 12, 5, 7, 15, 5, 7, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); - //walls - fillWithBlocks(world, box, 12, 6, 7, 12, 8, 7, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 15, 6, 7, 15, 8, 7, ModBlocks.concrete_smooth); - //ceiling - fillWithMetadataBlocks(world, box, 12, 9, 7, 15, 9, 7, ModBlocks.concrete_smooth_stairs, stairMetaS); - fillWithMetadataBlocks(world, box, 13, 9, 6, 14, 9, 6, ModBlocks.concrete_slab, 8); - - /* upper floor */ - //lower slabs - fillWithMetadataBlocks(world, box, 0, 5, 1, 16, 5, 1, ModBlocks.concrete_slab, 8); - fillWithMetadataBlocks(world, box, 1, 5, 2, 1, 5, 4, ModBlocks.concrete_slab, 8); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 0, 5, 3, box); - fillWithMetadataBlocks(world, box, 0, 5, 5, 16, 5, 5, ModBlocks.concrete_slab, 8); - fillWithMetadataBlocks(world, box, 12, 5, 6, 15, 5, 6, ModBlocks.concrete_slab, 8); - fillWithMetadataBlocks(world, box, 5, 5, 2, 6, 5, 4, ModBlocks.concrete_slab, 8); - fillWithMetadataBlocks(world, box, 10, 5, 2, 11, 5, 4, ModBlocks.concrete_slab, 8); - fillWithMetadataBlocks(world, box, 15, 5, 2, 15, 5, 4, ModBlocks.concrete_slab, 8); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 16, 5, 3, box); - //floor and lining - fillWithBlocks(world, box, 1, 6, 1, 15, 6, 5, ModBlocks.deco_titanium); - fillWithBlocks(world, box, 13, 6, 6, 14, 6, 6, ModBlocks.deco_titanium); - fillWithMetadataBlocks(world, box, 0, 6, 0, 16, 6, 0, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); - fillWithBlocks(world, box, 0, 6, 1, 0, 6, 5, ModBlocks.concrete_smooth); - fillWithMetadataBlocks(world, box, 0, 6, 6, 11, 6, 6, ModBlocks.concrete_smooth_stairs, stairMetaS | 4); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 6, 6, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 15, 6, 6, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 16, 6, 6, box); - fillWithBlocks(world, box, 16, 6, 1, 16, 6, 5, ModBlocks.concrete_smooth); - //walls - fillWithBlocks(world, box, 0, 7, 0, 0, 8, 0, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 4, 7, 0, 4, 8, 0, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 6, 7, 0, 6, 8, 0, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 10, 7, 0, 10, 8, 0, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 12, 7, 0, 12, 8, 0, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 16, 7, 0, 16, 8, 0, ModBlocks.concrete_colored_ext); - fillWithMetadataBlocks(world, box, 1, 9, 0, 3, 9, 0, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 4, 9, 0, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 6, 9, 0, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 1, 10, 9, 0, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 9, 0, box); - fillWithMetadataBlocks(world, box, 13, 9, 0, 15, 9, 0, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); - - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 7, 1, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 0, 7, 5, box); - fillWithBlocks(world, box, 0, 9, 0, 0, 9, 1, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 0, 9, 5, 0, 9, 6, ModBlocks.concrete_smooth); - - fillWithBlocks(world, box, 0, 7, 6, 12, 8, 6, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 15, 7, 6, 16, 8, 6, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 1, 9, 6, 12, 9, 6, ModBlocks.concrete_smooth); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 15, 9, 6, box); - - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 7, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 16, 7, 1, box); - fillWithBlocks(world, box, 16, 9, 5, 16, 9, 6, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 16, 9, 0, 16, 9, 1, ModBlocks.concrete_smooth); - //windows - fillWithRandomizedBlocks(world, box, 1, 7, 0, 3, 8, 0, rand, glass); - fillWithRandomizedBlocks(world, box, 5, 7, 0, 5, 9, 0, rand, glass); - fillWithRandomizedBlocks(world, box, 7, 7, 0, 9, 9, 0, rand, glass); - fillWithRandomizedBlocks(world, box, 11, 7, 0, 11, 9, 0, rand, glass); - fillWithRandomizedBlocks(world, box, 13, 7, 0, 15, 8, 0, rand, glass); - fillWithRandomizedBlocks(world, box, 0, 8, 1, 0, 8, 1, rand, glass); - fillWithRandomizedBlocks(world, box, 0, 7, 2, 0, 9, 4, rand, glass); - fillWithRandomizedBlocks(world, box, 0, 8, 5, 0, 8, 5, rand, glass); - fillWithRandomizedBlocks(world, box, 16, 8, 5, 16, 8, 5, rand, glass); - fillWithRandomizedBlocks(world, box, 16, 7, 2, 16, 9, 4, rand, glass); - fillWithRandomizedBlocks(world, box, 16, 8, 1, 16, 8, 1, rand, glass); - //ceiling with liner - fillWithMetadataBlocks(world, box, 1, 10, 1, 15, 10, 5, ModBlocks.vinyl_tile, 1); - fillWithMetadataBlocks(world, box, 0, 10, 0, 16, 10, 0, ModBlocks.concrete_smooth_stairs, stairMetaN); - fillWithBlocks(world, box, 0, 10, 1, 0, 10, 5, ModBlocks.concrete_smooth); - fillWithMetadataBlocks(world, box, 0, 10, 6, 16, 10, 6, ModBlocks.concrete_smooth_stairs, stairMetaS); - fillWithBlocks(world, box, 16, 10, 1, 16, 10, 5, ModBlocks.concrete_smooth); - //slabs - fillWithBlocks(world, box, 0, 11, 1, 16, 11, 1, ModBlocks.concrete_slab); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 0, 0, 11, 3, box); - fillWithBlocks(world, box, 1, 11, 2, 15, 11, 4, ModBlocks.concrete_slab); - fillWithBlocks(world, box, 0, 11, 5, 16, 11, 5, ModBlocks.concrete_slab); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 0, 16, 11, 3, box); - - //stairs (probably wip) - fillWithMetadataBlocks(world, box, 2, 4, 7, 3, 4, 7, ModBlocks.steel_grate, 7); - placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 4, 4, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 5, 3, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 6, 3, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 7, 2, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 8, 2, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 9, 1, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 10, 1, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 11, 0, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 3, 12, 0, 7, box); - final int decoMetaS = getDecoMeta(2); - final int decoMetaN = getDecoMeta(3); - final int decoMetaE = getDecoMeta(4); - placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, decoMetaE, 1, 5, 7, box); - fillWithMetadataBlocks(world, box, 2, 4, 6, 3, 5, 6, ModBlocks.steel_wall, decoMetaS); - fillWithMetadataBlocks(world, box, 4, 4, 6, 5, 4, 6, ModBlocks.steel_wall, decoMetaS); - fillWithMetadataBlocks(world, box, 5, 3, 6, 7, 3, 6, ModBlocks.steel_wall, decoMetaS); - fillWithMetadataBlocks(world, box, 7, 2, 6, 9, 2, 6, ModBlocks.steel_wall, decoMetaS); - fillWithMetadataBlocks(world, box, 9, 1, 6, 11, 1, 6, ModBlocks.steel_wall, decoMetaS); - fillWithMetadataBlocks(world, box, 11, 0, 6, 12, 0, 6, ModBlocks.steel_wall, decoMetaS); - fillWithMetadataBlocks(world, box, 5, 3, 8, 7, 3, 8, ModBlocks.steel_wall, decoMetaN); - fillWithMetadataBlocks(world, box, 7, 2, 8, 9, 2, 8, ModBlocks.steel_wall, decoMetaN); - fillWithMetadataBlocks(world, box, 9, 1, 8, 11, 1, 8, ModBlocks.steel_wall, decoMetaN); - fillWithMetadataBlocks(world, box, 11, 0, 8, 12, 0, 8, ModBlocks.steel_wall, decoMetaN); - - /* Deco */ - //lights - for(int j = 4; j <= 12; j+=4) - placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, j, 8, 11, box); - for(int j = 4; j <= 12; j+=4) - placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, j, 10, 3, box); - //doors - placeDoor(world, box, ModBlocks.door_office, 1, false, false, 3, 5, 8); - placeDoor(world, box, ModBlocks.door_office, 1, true, false, 2, 5, 8); - - final int decoModelMetaN = getDecoModelMeta(0); - final int decoModelMetaS = getDecoModelMeta(1); - final int decoModelMetaW = getDecoModelMeta(2); - final int decoModelMetaE = getDecoModelMeta(3); - final int decoMetaW = getDecoMeta(5); - switch(this.type) { - default: //machinery lab - //lower floor - placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 1, 5, 9, box); - placeBlockAtCurrentPosition(world, Blocks.fence, 0, 1, 5, 11, box); - placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 1, 6, 11, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 1, 5, 13, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 2, 5, 13, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 1, 6, 13, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaS | 4, 5, 5, 9, box); //desk 1 - fillWithMetadataBlocks(world, box, 5, 5, 10, 5, 5, 11, Blocks.spruce_stairs, stairMetaE | 4); - placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 6, 5, 11, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 7, 5, 11, box); - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaS, 7, 5, 9, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaN, 6, 6, 11, box); - placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairMetaW | 4, 11, 5, 9, box); //desk 2 - fillWithMetadataBlocks(world, box, 9, 5, 9, 10, 5, 9, Blocks.dark_oak_stairs, stairMetaS | 4); - placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 13, 9, 5, 10, box); - placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairMetaN | 4, 9, 5, 11, box); - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaW, 11, 5, 10, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaS, 10, 6, 9, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 13, 5, 13, box); //desk 3 - fillWithMetadataBlocks(world, box, 14, 5, 13, 15, 5, 13, Blocks.wooden_slab, 9); - placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 15, 5, 12, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaS | 4, 15, 5, 11, box); - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaE, 14, 5, 12, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaN, 14, 6, 13, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 15, 5, 10, box); - placeBlockAtCurrentPosition(world, Blocks.fence, 0, 15, 5, 9, box); - placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 15, 6, 9, box); - //loot - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelMetaS, 8, 5, 9, HbmChestContents.officeTrash, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelMetaN, 12, 5, 13, HbmChestContents.filingCabinet, 6); - //there were supposed to be paintings included, but i don't want to figure out how to - //force the art type on both the server and clientside - //upper floor - placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 15, 7, 5, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 15, 7, 1, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 14, 7, 1, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 14, 8, 1, box); - fillWithBlocks(world, box, 8, 7, 3, 11, 7, 3, ModBlocks.tile_lab); //central table - placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, decoMetaW, 12, 7, 3, box); - fillWithMetadataBlocks(world, box, 8, 7, 2, 11, 7, 2, ModBlocks.steel_wall, decoMetaS); - placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, decoMetaE, 7, 7, 3, box); - fillWithMetadataBlocks(world, box, 8, 7, 4, 11, 7, 4, ModBlocks.steel_wall, decoMetaN); - fillWithBlocks(world, box, 10, 7, 5, 12, 7, 5, ModBlocks.cm_sheet); //machine 1 - placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 12, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 11, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 10, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_sheet, 0, 12, 9, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_port, 0, 11, 9, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_sheet, 0, 10, 9, 5, box); - placeBlockAtCurrentPosition(world, Blocks.stone_button, getButtonMeta(4), 11, 9, 4, box); - fillWithMetadataBlocks(world, box, 9, 7, 5, 9, 8, 5, ModBlocks.steel_wall, decoMetaW); //locker - placeBlockAtCurrentPosition(world, ModBlocks.steel_roof, decoMetaN, 8, 9, 5, box); - fillWithMetadataBlocks(world, box, 7, 7, 5, 7, 8, 5, ModBlocks.steel_wall, decoMetaE); - fillWithBlocks(world, box, 4, 7, 5, 6, 7, 5, ModBlocks.cm_block); //machine 2 - placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 6, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_circuit, 0, 5, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 4, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_engine, 0, 6, 9, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 9, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_engine, 0, 4, 9, 5, box); - placeLever(world, box, 4, false, 5, 8, 4); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 4, 7, 1, box); //table - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 5, 7, 1, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 1, 7, 1, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaW | 4, 2, 7, 5, box); //desk - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaE | 4, 1, 7, 5, box); - placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 2, 2, 7, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaN, 2, 8, 5, box); - //loot - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelMetaS, 13, 7, 1, HbmChestContents.filingCabinet, 4); - if(rand.nextInt(2) == 0) - generateLoreBook(world, box, 13, 7, 1, 4, HbmChestContents.generateLabBook(rand)); - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 8, 7, 5, HbmChestContents.labVault, 4); - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 8, 8, 5, HbmChestContents.machineParts, 5); - break; - case 1: //hazmat - //lower floor - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaS | 4, 1, 5, 9, box); //table - placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 10, 1, 5, 10, box); - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaN | 4, 1, 5, 11, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 1, 6, 10, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 1, 5, 13, box); - fillWithMetadataBlocks(world, box, 5, 5, 9, 11, 5, 9, ModBlocks.concrete_asbestos_stairs, stairMetaS | 4); //con. desk - fillWithMetadataBlocks(world, box, 5, 5, 10, 7, 5, 10, ModBlocks.concrete_slab, 10); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_asbestos_stairs, stairMetaN | 4, 7, 5, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 10, 11, 5, 10, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_asbestos_stairs, stairMetaN | 4, 11, 5, 11, box); - fillWithMetadataBlocks(world, box, 4, 6, 9, 4, 7, 9, ModBlocks.steel_wall, decoMetaE); //bank of tape recorders - fillWithMetadataBlocks(world, box, 5, 6, 9, 5, 7, 9, ModBlocks.tape_recorder, decoMetaN); - placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 6, 6, 9, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 7, 6, 9, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 6, 7, 9, box); - placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 7, 7, 9, box); - placeBlockAtCurrentPosition(world, Blocks.lever, 3, 6, 7, 10, box); - placeBlockAtCurrentPosition(world, Blocks.stone_button, 3, 7, 6, 10, box); - fillWithMetadataBlocks(world, box, 8, 6, 9, 8, 7, 9, ModBlocks.steel_corner, decoMetaW); - placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 9, 6, 9, box); - fillWithMetadataBlocks(world, box, 10, 6, 9, 10, 7, 9, ModBlocks.steel_corner, decoMetaN); - placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 11, 6, 9, box); - placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 11, 7, 9, box); - fillWithMetadataBlocks(world, box, 12, 6, 9, 12, 7, 9, ModBlocks.steel_wall, decoMetaW); - placeBlockAtCurrentPosition(world, Blocks.stone_button, 3, 11, 6, 10, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 5, 5, 11, box); //chairs and computers - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 8, 5, 12, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 10, 5, 11, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 6, 6, 10, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 7, 5, 12, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 10, 5, 10, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaE, 7, 6, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 11, 6, 11, box); - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaE | 4, 14, 5, 13, box); //table - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaW | 4, 15, 5, 13, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 15, 5, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 15, 5, 9, box); - //loot - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelMetaS | 1, 9, 7, 9, HbmChestContents.filingCabinet, 3); - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 14, 6, 13, HbmChestContents.modGeneric, 3); - //upper floor - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaW | 4, 15, 7, 5, box); //desks - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaE | 4, 15, 7, 4, box); - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaS | 4, 15, 7, 2, box); - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaW | 4, 15, 7, 1, box); - placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 13, 7, 2, box); - placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 14, 7, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 15, 8, 4, box); - for(int i = 3; i <= 9; i+=6) { //hazmat tables - fillWithMetadataBlocks(world, box, i, 7, 3, i, 7, 5, ModBlocks.concrete_asbestos_stairs, stairMetaW | 4); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_asbestos_stairs, stairMetaN | 4, i+1, 7, 3, box); - fillWithMetadataBlocks(world, box, i+2, 7, 3, i+2, 7, 5, ModBlocks.concrete_asbestos_stairs, stairMetaE | 4); - fillWithMetadataBlocks(world, box, i+1, 7, 4, i+1, 7, 5, ModBlocks.concrete_colored_ext, 5); - } - placeBlockAtCurrentPosition(world, ModBlocks.block_electrical_scrap, 0, 10, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 4, 8, 4, box); - fillWithMetadataBlocks(world, box, 6, 7, 5, 8, 7, 5, ModBlocks.cm_block, 1); //machine - placeBlockAtCurrentPosition(world, ModBlocks.cm_circuit, 2, 6, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_port, 1, 7, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_circuit, 2, 8, 8, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_sheet, 1, 6, 9, 5, box); - placeBlockAtCurrentPosition(world, Blocks.redstone_lamp, 0, 7, 9, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_sheet, 1, 8, 9, 5, box); - placeBlockAtCurrentPosition(world, Blocks.lever, 4, 7, 8, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.geiger, decoMetaE, 6, 7, 4, box); //geiger - if(rand.nextInt(2) == 0) - placeBlockAtCurrentPosition(world, ModBlocks.crate_metal, 0, 6, 7, 1, box); - else - placeRandomBobble(world, box, rand, 6, 7, 1 ); - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaS | 4, 1, 7, 1, box); //desk - placeBlockAtCurrentPosition(world, Blocks.birch_stairs, stairMetaE | 4, 2, 7, 1, box); - placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 1, 7, 3, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 2, 8, 1, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 1, 7, 5, box); - //loot - generateInvContents(world, box, rand, ModBlocks.crate_iron, 8, 7, 3, HbmChestContents.nuclearFuel, 8); - generateInvContents(world, box, rand, ModBlocks.crate_iron, 2, 7, 5, HbmChestContents.nukeTrash, 6); - //other crate - placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 2, 8, 5, box); - - break; - } - - //webs - randomlyFillWithBlocks(world, box, rand, 0.15F, 0, 6, 7, 10, 8, 7, Blocks.web); - randomlyFillWithBlocks(world, box, rand, 0.4F, 11, 5, 7, 11, 9, 7, Blocks.web); - randomlyFillWithBlocks(world, box, rand, 0.4F, 16, 5, 7, 16, 9, 7, Blocks.web); - - placeWebs(world, box, rand, 1, 5, 9, 15, 7, 13, 0.10F, 0.01F); - placeWebs(world, box, rand, 13, 7, 6, 14, 8, 8, 0.20F, 0F); - placeWebs(world, box, rand, 1, 7, 1, 15, 9, 5, 0.10F, 0.01F); - - //test - //plan is: biome-dependent overgrowth, integrated neatly - /*generateShrubs(world, box, rand, 0, 0, 16, 1, 4); - generateShrubs(world, box, rand, 0, 13, 16, 14, 2); - generateShrubs(world, box, rand, 0, 4, 16, 8, 2);*/ - - - return true; - } - - protected void placeWebs(World world, StructureBoundingBox box, Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, float chance, float bigWebChance) { - if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) - return; - - for(int x = minX; x <= maxX; x++) { - - for(int z = minZ; z <= maxZ; z++) { - int posX = getXWithOffset(x, z); - int posZ = getZWithOffset(x, z); - - if(posX >= box.minX && posX <= box.maxX && posZ >= box.minZ && posZ <= box.maxZ) { - for(int y = minY; y <= maxY; y++) { - int posY = getYWithOffset(y); - - if(world.getBlock(posX, posY, posZ) == Blocks.web) continue; - - boolean onWall = (x == minX || x == maxX || z == minZ || z == maxZ); - boolean onCeiling = (y == minY || y == maxY); //floor or ceiling, really - //this will go over the subchunk boundaries, but trees already do that all the time; it's only really an issue if it causes updates or - //goes over the 2x2 chunk area entirely - if(onWall && onCeiling && rand.nextFloat() <= bigWebChance) { - - for(int j = Math.max(minY, y - 1); j <= Math.min(maxY, y + 1); j++) { //on one hand, eugh. on the other, good-looking webs! - int fac = 2 - Math.abs(j - y); //rounds out the edges with distance from starting block - - int maxI = Math.min(maxX, x + 1); - for(int i = Math.max(minX, x - 1); i <= maxI; i++) { - - int maxK = Math.min(maxZ, z + 1); - for(int k = Math.max(minZ, z - 1); k <= maxK; k++) { - int posI = getXWithOffset(i, k); - int posJ = getYWithOffset(j); - int posK = getZWithOffset(i, k); - - if(world.isAirBlock(posI, posJ, posK) && (Math.abs(i - x) != fac || Math.abs(k - z) != fac || rand.nextInt(3) == 0)) - world.setBlock(posI, posJ, posK, Blocks.web, 0, 2); - - } - } - } - } else if((onWall || onCeiling) && world.isAirBlock(posX, posY, posZ) && rand.nextFloat() <= chance) - world.setBlock(posX, posY, posZ, Blocks.web, 0, 2); - } - } - } - } - } - - /*protected void generateShrubs(World world, StructureBoundingBox box, Random rand, int minX, int minZ, int maxX, int maxZ, int startY) { - int startX = Math.min(this.getXWithOffset(minX, minZ), this.getXWithOffset(maxX, maxZ)); - int startZ = Math.min(this.getZWithOffset(minX, minZ), this.getZWithOffset(maxX, maxZ)); - int endX = Math.max(this.getXWithOffset(minX, minZ), this.getXWithOffset(maxX, maxZ)) - startX; - int endZ = Math.max(this.getZWithOffset(minX, minZ), this.getZWithOffset(maxX, maxZ)) - startZ; - - int attempts = rand.nextInt(2); - WorldGenShrub shrub = new WorldGenShrub(0, 0); - - for(int i = 0; i < attempts; i++) { - int posX = startX + rand.nextInt(endX <= 0 ? 1 : endX); - int posY = this.getYWithOffset(startY); - int posZ = startZ + rand.nextInt(endZ <= 0 ? 1 : endZ); - - if(box.isVecInside(posX, posY, posZ)) { - int brake = 0; - - do { - Block block = world.getBlock(posX, posY, posZ); - - if(!((block.isAir(world, posX, posY, posZ) || block.isFoliage(world, posX, posY, posZ) || block.isLeaves(world, posX, posY, posZ)) && posY > 0)) { - shrub.generate(world, rand, posX, posY, posZ); - break; - } - - posY--; - } while(brake++ <= 15); - } - } - }*/ - } - - //the block selector in general is kinda mid, i might just replace it entirely - public static class DirtyGlass extends StructureComponent.BlockSelector { - protected boolean webs; - protected float chance; - protected int meta; //argh - - public DirtyGlass(BiomeGenBase biome, float chance, boolean webs) { - if(BiomeDictionary.isBiomeOfType(biome, Type.COLD)) - this.meta = 8; //fogged-up - else if(NTMWorldGenerator.doesBiomeHaveTypes(biome, Type.WASTELAND, Type.JUNGLE, Type.SANDY, Type.SAVANNA, Type.SWAMP)) - this.meta = 12; //super dirty - else - this.meta = 7; //dirty - - this.field_151562_a = Blocks.stained_glass_pane; - this.chance = chance; - this.webs = webs; - } - - @Override - public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { - if(rand.nextFloat() <= chance) { - this.selectedBlockMetaData = 0; - if(webs && rand.nextInt(3) == 0) - this.field_151562_a = Blocks.web; - else - this.field_151562_a = Blocks.air; - } else { - this.field_151562_a = Blocks.stained_glass_pane; - this.selectedBlockMetaData = meta; - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index e11e5aca5..f1263b23a 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -436,22 +436,6 @@ abstract public class Component extends StructureComponent { } } - protected void placeLootBlock(World world, StructureBoundingBox box, Random rand, int featureX, int featureY, int featureZ, ItemStack stack) { - int posX = this.getXWithOffset(featureX, featureZ); - int posY = this.getYWithOffset(featureY); - int posZ = this.getZWithOffset(featureX, featureZ); - - if(!box.isVecInside(posX, posY, posZ)) return; - - world.setBlock(posX, posY, posZ, ModBlocks.deco_loot, 0, 2); - - TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(posX, posY, posZ); - - if(loot != null && loot.items.isEmpty()) { - loot.addItem(stack, rand.nextGaussian() * 0.02, 0, rand.nextGaussian() * 0.02); - } - } - /** * Places random bobblehead with a randomized orientation at specified location */ diff --git a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java index ff494c6b0..914b01b7e 100644 --- a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java @@ -3,10 +3,8 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraft.world.gen.structure.MapGenStructureIO; import net.minecraft.world.gen.structure.StructureBoundingBox; @@ -20,21 +18,6 @@ public class RuinFeatures { MapGenStructureIO.func_143031_a(NTMRuin4.class, "NTMRuin4"); } - public static void placeBook(World world, StructureBoundingBox box, Random rand, int minX, int minZ, int maxX, int maxZ, Component com) { - int i = minX + rand.nextInt(maxX); - int j = minZ + rand.nextInt(maxZ); - - int posX = com.getXWithOffset(i, j); - int posZ = com.getZWithOffset(i, j); - - if(box.isVecInside(posX, 64, posZ)) { - int topHeight = world.getTopSolidOrLiquidBlock(posX, posZ); - - ItemStack book = HbmChestContents.generateRuinBook(rand, posX >> 4, posZ >> 4); - com.placeLootBlock(world, box, rand, i, topHeight - com.getBoundingBox().minY, j, book); - } - } - public static class NTMRuin1 extends Component { private static ConcreteBricks RandomConcreteBricks = new ConcreteBricks(); @@ -103,9 +86,6 @@ public class RuinFeatures { this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); - if(rand.nextInt(3) == 0) //it's all in one chunk so it's fine - placeBook(world, box, rand, 1, 1, 7, 9, this); - return true; } } @@ -226,9 +206,6 @@ public class RuinFeatures { this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 8 - 1, 0, 3, Blocks.gravel, Blocks.air, false); this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 5, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); - if(rand.nextInt(3) == 0) - placeBook(world, box, rand, 1, 5, 7, 9, this); - return true; } } @@ -290,9 +267,6 @@ public class RuinFeatures { this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 4, 0, 5, Blocks.gravel, Blocks.air, false); this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 6, 10 - 1, 0, 11 - 1, Blocks.gravel, Blocks.air, false); - if(rand.nextInt(3) == 0) - placeBook(world, box, rand, 1, 1, 4, 10, this); - return true; } } diff --git a/src/main/java/com/hbm/world/gen/component/SpecialFeatures.java b/src/main/java/com/hbm/world/gen/component/SpecialFeatures.java deleted file mode 100644 index 7664f2b6e..000000000 --- a/src/main/java/com/hbm/world/gen/component/SpecialFeatures.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.hbm.world.gen.component; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.gen.structure.MapGenStructureIO; -import net.minecraft.world.gen.structure.StructureBoundingBox; - -public class SpecialFeatures { - - public static void registerComponents() { - MapGenStructureIO.func_143031_a(SpecialContainer.class, "NTMSpecialContainer"); - } - - public static class SpecialContainer extends Component { - - public SpecialContainer() { - - } - - public SpecialContainer(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 3, 3, 9); - - } - - @Override - public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { - - if(hpos == -1 && !this.setAverageHeight(world, box, this.boundingBox.minY)) { - return false; - } - - fillWithAir(world, box, 1, 1, 1, 2, 2, 8); - - //floor - fillWithBlocks(world, box, 0, 0, 0, 3, 0, 1, ModBlocks.deco_steel); - fillWithBlocks(world, box, 1, 0, 2, 2, 0, 7, ModBlocks.deco_steel); - fillWithBlocks(world, box, 0, 0, 8, 3, 0, 9, ModBlocks.deco_steel); - fillWithBlocks(world, box, 1, 0, 1, 2, 0, 1, ModBlocks.cm_block); - fillWithBlocks(world, box, 1, 0, 8, 2, 0, 8, ModBlocks.cm_block); - //roof - fillWithBlocks(world, box, 0, 3, 0, 3, 3, 9, ModBlocks.deco_steel); - placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 0, 3, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 3, 3, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 0, 3, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.cm_block, 0, 3, 3, 7, box); - //walls - fillWithBlocks(world, box, 0, 1, 0, 0, 2, 0, ModBlocks.deco_steel); - fillWithBlocks(world, box, 0, 1, 1, 0, 2, 8, ModBlocks.cm_sheet); - fillWithBlocks(world, box, 0, 1, 9, 0, 2, 9, ModBlocks.deco_steel); - fillWithBlocks(world, box, 1, 1, 9, 2, 2, 9, ModBlocks.cm_sheet); - fillWithBlocks(world, box, 3, 1, 9, 3, 2, 9, ModBlocks.deco_steel); - fillWithBlocks(world, box, 3, 1, 1, 3, 2, 8, ModBlocks.cm_sheet); - fillWithBlocks(world, box, 3, 1, 0, 3, 2, 0, ModBlocks.deco_steel); - //doors - placeDoor(world, box, ModBlocks.door_metal, 1, false, false, 2, 1, 0); - placeDoor(world, box, ModBlocks.door_metal, 1, true, false, 1, 1, 0); - - return true; - } - - @Override - protected boolean setAverageHeight(World world, StructureBoundingBox box, int y) { - - int total = 0; - int iterations = 0; - - for(int z = this.boundingBox.minZ; z <= this.boundingBox.maxZ; z++) { - for(int x = this.boundingBox.minX; x <= this.boundingBox.maxX; x++) { - if(box.isVecInside(x, y, z)) { - total += Math.max(world.getTopSolidOrLiquidBlock(x, z), 1); // underwater :3c - iterations++; - } - } - } - - if(iterations == 0) - return false; - - this.hpos = total / iterations; //finds mean of every block in bounding box - this.boundingBox.offset(0, this.hpos - this.boundingBox.minY, 0); - return true; - } - } -} diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3f50734d1..05365875c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -451,12 +451,6 @@ book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CO book_lore.beacon.page.10=using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] -book_lore.ruin_special.name=Detection Printout -book_lore.ruin_special.page.0=§lDETECTION $ ----------------- $ DIST: %1$s km $ THETA: %2$s° $ PROGNOSIS $ %3$s -book_lore.ruin_special.low=Low-confidence detection. Distance is large and imprecise; high chance of interference. -book_lore.ruin_special.med=Medium-confidence detection. Chance of interference is low; further investigation recommended. -book_lore.ruin_special.high=High-confidence detection. Location precisely triangulated by sensors; expedition urgently recommended. - cannery.f1=[ Press F1 for help ] cannery.centrifuge=Gas Centrifuge From 13afe67eb38e3f4b942415e7b0643b450ef4f5c6 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 23 Jan 2024 15:36:49 +1100 Subject: [PATCH 112/376] Add operating sounds to large and chungus turbines --- .../tileentity/machine/TileEntityChungus.java | 57 ++++++++++++++++-- .../TileEntityMachineLargeTurbine.java | 52 +++++++++++++++- src/main/resources/assets/hbm/sounds.json | 2 + .../hbm/sounds/block/chungusTurbine.ogg | Bin 0 -> 94995 bytes .../assets/hbm/sounds/block/largeTurbine.ogg | Bin 0 -> 124189 bytes 5 files changed, 102 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/block/chungusTurbine.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/largeTurbine.ogg diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 2a2e761db..d0c3e0527 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -14,8 +14,10 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -50,11 +52,16 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public FluidTank[] tanks; + private AudioWrapper audio; + private float audioDesync; + public TileEntityChungus() { - tanks = new FluidTank[2]; tanks[0] = new FluidTank(Fluids.STEAM, 1000000000, 0); tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 1000000000, 1); + + Random rand = new Random(); + audioDesync = rand.nextFloat() * 0.05F; } @Override @@ -119,9 +126,9 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc } if(turnTimer > 0) { - - this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration += 0.1F)); - + // Fan accelerates with a random offset to ensure the audio doesn't perfectly align, makes for a more pleasant hum + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration += 0.075F + audioDesync)); + Random rand = worldObj.rand; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection side = dir.getRotation(ForgeDirection.UP); @@ -133,9 +140,29 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc zCoord + 0.5 + dir.offsetZ * (rand.nextDouble() + 1.25) + rand.nextGaussian() * side.offsetZ * 0.65, -dir.offsetX * 0.2, 0, -dir.offsetZ * 0.2); } - } - if(turnTimer < 0) { + + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.chungusTurbineRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); + audio.startSound(); + } + + float turbineSpeed = this.fanAcceleration / 25F; + audio.updateVolume(getVolume(0.5f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + } else { this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration -= 0.1F)); + + if(audio != null) { + if(this.fanAcceleration > 0) { + float turbineSpeed = this.fanAcceleration / 25F; + audio.updateVolume(getVolume(0.5f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + } else { + audio.stopSound(); + audio = null; + } + } } } } @@ -286,6 +313,24 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public String getComponentName() { return "ntm_turbine"; } + + @Override + public void onChunkUnload() { + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } @Callback(direct = true) @Optional.Method(modid = "OpenComputers") diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 1d8eefaa0..5df34faa2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; +import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.CompatHandler; @@ -16,6 +17,8 @@ import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.gui.GUIMachineLargeTurbine; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.DirPos; @@ -51,6 +54,9 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public float rotor; public float lastRotor; public float fanAcceleration = 0F; + + private AudioWrapper audio; + private float audioDesync; public TileEntityMachineLargeTurbine() { super(7); @@ -58,6 +64,9 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks = new FluidTank[2]; tanks[0] = new FluidTank(Fluids.STEAM, 512000, 0); tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 10240000, 1); + + Random rand = new Random(); + audioDesync = rand.nextFloat() * 0.05F; } @Override @@ -129,11 +138,30 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } if(shouldTurn) { + // Fan accelerates with a random offset to ensure the audio doesn't perfectly align, makes for a more pleasant hum + this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.075F + audioDesync)); - this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.1F)); - } - if(!shouldTurn) { + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.largeTurbineRunning", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); + audio.startSound(); + } + + float turbineSpeed = this.fanAcceleration / 15F; + audio.updateVolume(getVolume(0.4f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + } else { this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration -= 0.1F)); + + if(audio != null) { + if(this.fanAcceleration > 0) { + float turbineSpeed = this.fanAcceleration / 15F; + audio.updateVolume(getVolume(0.4f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + } else { + audio.stopSound(); + audio = null; + } + } } } } @@ -293,6 +321,24 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public String getComponentName() { return "ntm_turbine"; } + + @Override + public void onChunkUnload() { + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } @Callback(direct = true) @Optional.Method(modid = "OpenComputers") diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index b7038f609..0ef66227c 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -51,6 +51,8 @@ "block.turbinegasStartup": {"category": "block", "sounds": [{"name": "block/turbinegasStartup", "stream": true}]}, "block.turbinegasRunning": {"category": "block", "sounds": [{"name": "block/turbinegasRunning", "stream": false}]}, "block.turbinegasShutdown": {"category": "block", "sounds": [{"name": "block/turbinegasShutdown", "stream": true}]}, + "block.chungusTurbineRunning": {"category": "block", "sounds": [{"name": "block/chungusTurbine", "stream": false}]}, + "block.largeTurbineRunning": {"category": "block", "sounds": [{"name": "block/largeTurbine", "stream": false}]}, "block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]}, "block.electricHum": {"category": "block", "sounds": [{"name": "block/electricHum", "stream": false}]}, "block.boiler": {"category": "block", "sounds": [{"name": "block/boiler", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/chungusTurbine.ogg b/src/main/resources/assets/hbm/sounds/block/chungusTurbine.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f66133991ef8050a5e3b3bcbe370421f2752d1f4 GIT binary patch literal 94995 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 z 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/largeTurbine.ogg b/src/main/resources/assets/hbm/sounds/block/largeTurbine.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4648b3dd3ecf55e3b02983720f27ebb82f3ecdad GIT binary patch literal 124189 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৮V(28k@xo*x5p&$ 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 Date: Tue, 23 Jan 2024 17:14:03 +1100 Subject: [PATCH 113/376] Add audio to the Fusion Reactor, with spool up/down --- .../tileentity/machine/TileEntityChungus.java | 2 + .../tileentity/machine/TileEntityITER.java | 61 ++++++++++++++++-- .../TileEntityMachineLargeTurbine.java | 2 + src/main/resources/assets/hbm/sounds.json | 1 + .../hbm/sounds/block/fusionReactorSpin.ogg | Bin 0 -> 20235 bytes 5 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/block/fusionReactorSpin.ogg diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index d0c3e0527..e32a41fb8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -316,6 +316,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc @Override public void onChunkUnload() { + super.onChunkUnload(); + if(audio != null) { audio.stopSound(); audio = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 59f759c71..4a7e3de46 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -24,6 +24,7 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.DirPos; @@ -63,6 +64,10 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser public float lastRotor; public boolean isOn; + private float rotorSpeed = 0F; + + private AudioWrapper audio; + public TileEntityITER() { super(5); tanks = new FluidTank[2]; @@ -181,16 +186,38 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser /// END Notif packets /// } else { - + this.lastRotor = this.rotor; + this.rotor += this.rotorSpeed; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } - if(this.isOn && this.power >= this.powerReq) { + if(this.isOn && this.power >= powerReq) { + this.rotorSpeed = Math.max(0F, Math.min(15F, this.rotorSpeed + 0.05F)); + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.fusionReactorRunning", xCoord, yCoord, zCoord, 1.0F, 30F, 1.0F); + audio.startSound(); + } + + float rotorSpeed = this.rotorSpeed / 15F; + audio.updateVolume(getVolume(0.5f * rotorSpeed)); + audio.updatePitch(0.25F + 0.75F * rotorSpeed); + } else { + this.rotorSpeed = Math.max(0F, Math.min(15F, this.rotorSpeed - 0.1F)); - this.rotor += 15F; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; + if(audio != null) { + if(this.rotorSpeed > 0) { + float rotorSpeed = this.rotorSpeed / 15F; + audio.updateVolume(getVolume(0.5f * rotorSpeed)); + audio.updatePitch(0.25F + 0.75F * rotorSpeed); + } else { + audio.stopSound(); + audio = null; + } } } } @@ -477,6 +504,26 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser return 0; } + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 5df34faa2..885408284 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -324,6 +324,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme @Override public void onChunkUnload() { + super.onChunkUnload(); + if(audio != null) { audio.stopSound(); audio = null; diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 0ef66227c..2e3958e45 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -61,6 +61,7 @@ "block.hornFarSingle": {"category": "block", "sounds": [{"name": "block/hornFarSingle", "stream": false}]}, "block.hornFarDual": {"category": "block", "sounds": [{"name": "block/hornFarDual", "stream": false}]}, "block.reactorLoop": {"category": "block", "sounds": [{"name": "block/reactorLoop", "stream": false}]}, + "block.fusionReactorRunning": {"category": "block", "sounds": [{"name": "block/fusionReactorSpin", "stream": false}]}, "block.fel": {"category": "block", "sounds": [{"name": "block/fel", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/fusionReactorSpin.ogg b/src/main/resources/assets/hbm/sounds/block/fusionReactorSpin.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b3752f91c97ed3979c9289bfd1d37bd3537976e0 GIT binary patch literal 20235 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 Ohi$oBF7MwRDc2I~@ZGfl literal 0 HcmV?d00001 From 07610a603db17a07b592648fef4590bf7b67348b Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 23 Jan 2024 19:26:48 +1100 Subject: [PATCH 114/376] Added audio to Hephaestus (this machine is cool as fuck how did I not know about it before) --- .../machine/TileEntityMachineHephaestus.java | 34 ++++++++++++++++++ src/main/resources/assets/hbm/sounds.json | 1 + .../hbm/sounds/block/hephaestusRunning.ogg | Bin 0 -> 53723 bytes 3 files changed, 35 insertions(+) create mode 100644 src/main/resources/assets/hbm/sounds/block/hephaestusRunning.ogg diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java index f629c577b..eb22b3289 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java @@ -8,6 +8,8 @@ import com.hbm.inventory.fluid.trait.FT_Heatable; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; @@ -37,6 +39,8 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements private int[] heat = new int[10]; private long fissureScanTime; + + private AudioWrapper audio; @Override public void updateEntity() { @@ -91,6 +95,16 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements double z = worldObj.rand.nextGaussian() * 2; worldObj.spawnParticle("cloud", xCoord + 0.5 + x, yCoord + 6 + y, zCoord + 0.5 + z, 0, 0, 0); } + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.hephaestusRunning", xCoord, yCoord + 5F, zCoord, 0.75F, 10F, 1.0F); + audio.startSound(); + } + } else { + if(audio != null) { + audio.stopSound(); + audio = null; + } } if(this.rot >= 360F) { @@ -234,6 +248,26 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.UP && dir != ForgeDirection.DOWN; } + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + AxisAlignedBB bb = null; @Override diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 2e3958e45..552af731b 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -63,6 +63,7 @@ "block.reactorLoop": {"category": "block", "sounds": [{"name": "block/reactorLoop", "stream": false}]}, "block.fusionReactorRunning": {"category": "block", "sounds": [{"name": "block/fusionReactorSpin", "stream": false}]}, "block.fel": {"category": "block", "sounds": [{"name": "block/fel", "stream": false}]}, + "block.hephaestusRunning": {"category": "block", "sounds": [{"name": "block/hephaestusRunning", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/hephaestusRunning.ogg b/src/main/resources/assets/hbm/sounds/block/hephaestusRunning.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0129ce67643f9fffdcf1681ece6a47c28de1043e GIT binary patch literal 53723 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

A>D&?Sy6fELz=qHbsE{Qb1cO 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 literal 0 HcmV?d00001 From b5b3131d049ad56a0fba45198f75cd253fc2cf22 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 23 Jan 2024 21:01:05 +1100 Subject: [PATCH 115/376] Fix door audio issue where the open/close loop would sometimes play endlessly due to being dereferenced without being stopped --- src/main/java/com/hbm/main/ClientProxy.java | 9 --- src/main/java/com/hbm/main/ServerProxy.java | 1 - .../sound/AudioWrapperClientStartStop.java | 54 ------------------ .../hbm/tileentity/TileEntityDoorGeneric.java | 56 +++++++++++++++---- 4 files changed, 45 insertions(+), 75 deletions(-) delete mode 100644 src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 8116119b3..fa229ec95 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -104,7 +104,6 @@ import com.hbm.render.util.RenderOverhead; import com.hbm.render.util.RenderOverhead.Marker; import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapperClient; -import com.hbm.sound.AudioWrapperClientStartStop; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.conductor.*; @@ -2009,14 +2008,6 @@ public class ClientProxy extends ServerProxy { audio.setKeepAlive(keepAlive); return audio; } - - /** Only used for doors */ - @Override - public AudioWrapper getLoopedSoundStartStop(World world, String sound, String start, String stop, float x, float y, float z, float volume, float pitch) { - AudioWrapperClientStartStop audio = new AudioWrapperClientStartStop(world, sound == null ? null : new ResourceLocation(sound), start, stop, volume * 5); - audio.updatePosition(x, y, z); - return audio; - } @Override public void playSound(String sound, Object data) { } diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index e30cbe562..554783cee 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -45,7 +45,6 @@ public class ServerProxy { public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch) { return null; } public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch, int keepAlive) { return null; } - public AudioWrapper getLoopedSoundStartStop(World world, String sound, String start, String stop, float x, float y, float z, float volume, float pitch) { return null; } public void playSound(String sound, Object data) { } diff --git a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java b/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java deleted file mode 100644 index 6df22c652..000000000 --- a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.sound; - -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -/** Only used for doors */ -public class AudioWrapperClientStartStop extends AudioWrapperClient { - - public String start; - public String stop; - public World world; - public float ssVol; - public float x, y, z; - - public AudioWrapperClientStartStop(World world, ResourceLocation source, String start, String stop, float vol){ - super(source); - if(sound != null){ - sound.setVolume(vol); - } - this.ssVol = vol; - this.world = world; - this.start = start; - this.stop = stop; - } - - @Override - public void updatePosition(float x, float y, float z){ - this.x = x; - this.y = y; - this.z = z; - super.updatePosition(x, y, z); - } - - @Override - public void startSound(){ - if(start != null){ - world.playSound(x, y, z, start, ssVol * 0.2F, 1, false); - } - super.startSound(); - } - - @Override - public void stopSound(){ - if(stop != null){ - world.playSound(x, y, z, stop, ssVol * 0.2F, 1, false); - } - super.stopSound(); - } - - @Override - public float getVolume(){ - return ssVol; - } -} diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 526b9ce5c..6b4e32d02 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -243,27 +243,49 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public void handleNewState(byte state){ if(this.state != state) { - if(this.state == 0 && state == 3){ - if(audio == null){ - audio = MainRegistry.proxy.getLoopedSoundStartStop(worldObj, getDoorType().getOpenSoundLoop(), getDoorType().getOpenSoundStart(), getDoorType().getOpenSoundEnd(), xCoord, yCoord, zCoord, getDoorType().getSoundVolume(), 1); + DoorDecl doorType = getDoorType(); + + if(this.state == 0 && state == 3){ // Door transitioning to open + if(audio != null) audio.stopSound(); + + if(doorType.getOpenSoundLoop() != null){ + audio = MainRegistry.proxy.getLoopedSound(doorType.getOpenSoundLoop(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); audio.startSound(); } - if(audio2 == null && getDoorType().getSoundLoop2() != null){ - audio2 = MainRegistry.proxy.getLoopedSoundStartStop(worldObj, getDoorType().getSoundLoop2(), null, null, xCoord, yCoord, zCoord, getDoorType().getSoundVolume(), 1); + + if(doorType.getOpenSoundStart() != null){ + worldObj.playSound(xCoord, yCoord, zCoord, doorType.getOpenSoundStart(), doorType.getSoundVolume(), 1F, false); + } + + if(doorType.getSoundLoop2() != null){ + if(audio2 != null) audio2.stopSound(); + + audio2 = MainRegistry.proxy.getLoopedSound(doorType.getSoundLoop2(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); audio2.startSound(); } } - if(this.state == 1 && state == 2){ - if(audio == null){ - audio = MainRegistry.proxy.getLoopedSoundStartStop(worldObj, getDoorType().getCloseSoundLoop(), getDoorType().getCloseSoundStart(), getDoorType().getCloseSoundEnd(), xCoord, yCoord, zCoord, getDoorType().getSoundVolume(), 1); + + if(this.state == 1 && state == 2){ // Door transitioning to closed + if(audio != null) audio.stopSound(); + + if(doorType.getCloseSoundLoop() != null){ + audio = MainRegistry.proxy.getLoopedSound(doorType.getCloseSoundLoop(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); audio.startSound(); } - if(audio2 == null && getDoorType().getSoundLoop2() != null){ - audio2 = MainRegistry.proxy.getLoopedSoundStartStop(worldObj, getDoorType().getSoundLoop2(), null, null, xCoord, yCoord, zCoord, getDoorType().getSoundVolume(), 1); + + if(doorType.getCloseSoundStart() != null){ + worldObj.playSound(xCoord, yCoord, zCoord, doorType.getCloseSoundStart(), doorType.getSoundVolume(), 1F, false); + } + + if(doorType.getSoundLoop2() != null){ + if(audio2 != null) audio2.stopSound(); + + audio2 = MainRegistry.proxy.getLoopedSound(doorType.getSoundLoop2(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); audio2.startSound(); } } - if((this.state == 3 && state == 1) || (this.state == 2 && state == 0)){ + + if((this.state == 3 && state == 1) || (this.state == 2 && state == 0)){ // Door finished any transition if(audio != null){ audio.stopSound(); audio = null; @@ -273,6 +295,18 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn audio2 = null; } } + + if(this.state == 3 && state == 1){ // Door finished transitioning to open + if(doorType.getOpenSoundEnd() != null){ + worldObj.playSound(xCoord, yCoord, zCoord, doorType.getOpenSoundEnd(), doorType.getSoundVolume(), 1F, false); + } + } + + if(this.state == 2 && state == 0){ // Door finished transitioning to closed + if(doorType.getCloseSoundEnd() != null){ + worldObj.playSound(xCoord, yCoord, zCoord, doorType.getCloseSoundEnd(), doorType.getSoundVolume(), 1F, false); + } + } this.state = state; From 5a7367624ffbb610b0df5ad8846477b1c4fe51c6 Mon Sep 17 00:00:00 2001 From: George Paton Date: Wed, 24 Jan 2024 16:12:15 +1100 Subject: [PATCH 116/376] Implement new animation system - is backwards compatible with old animations, since they only use the first 3 values, which are ultimately output identically --- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 83 ++++---- .../hbm/handler/guncfg/Gun20GaugeFactory.java | 16 +- .../hbm/handler/guncfg/Gun45ACPFactory.java | 10 +- .../hbm/handler/guncfg/Gun4GaugeFactory.java | 26 +-- .../hbm/handler/guncfg/Gun50BMGFactory.java | 28 +-- .../hbm/handler/guncfg/Gun556mmFactory.java | 4 +- .../hbm/handler/guncfg/Gun75BoltFactory.java | 20 +- .../hbm/handler/guncfg/Gun762mmFactory.java | 62 +++--- .../hbm/handler/guncfg/GunGaussFactory.java | 4 +- .../hbm/handler/guncfg/GunRocketFactory.java | 20 +- .../java/com/hbm/items/tool/ItemBoltgun.java | 4 +- .../com/hbm/items/weapon/ItemCoilgun.java | 10 +- .../java/com/hbm/items/weapon/ItemGunBio.java | 60 +++--- .../com/hbm/items/weapon/ItemGunCongo.java | 10 +- .../java/com/hbm/items/weapon/ItemGunPip.java | 72 +++---- src/main/java/com/hbm/main/ClientProxy.java | 46 ++--- .../hbm/render/anim/BusAnimationKeyframe.java | 63 ++++--- .../hbm/render/anim/BusAnimationSequence.java | 177 ++++++++++-------- .../com/hbm/render/anim/HbmAnimations.java | 18 +- .../item/weapon/ItemRenderWeaponSpas12.java | 13 +- 20 files changed, 389 insertions(+), 357 deletions(-) diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 8f115d30f..26e2a5264 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -18,6 +18,7 @@ import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationSequence.Dimension; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; @@ -70,13 +71,13 @@ public class Gun12GaugeFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL_TRANSLATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, -2, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) + .addKeyframePosition(0, 0, -2, 100) + .addKeyframePosition(0, 0, 0, 200) ) .addBus("PUMP", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 450)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -1.8, 200)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) + .addKeyframePosition(0, 0, 0, 450) + .addKeyframePosition(0, 0, -1.8, 200) + .addKeyframePosition(0, 0, 0, 200) ) ); @@ -110,20 +111,18 @@ public class Gun12GaugeFactory { config.config = HbmCollection.g12hs; config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("SPAS_RECOIL_TRANSLATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, -2, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - ) - .addBus("SPAS_RECOIL_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-1, 0, 1, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - ) - .addBus("SPAS_PUMP", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 450)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -1.8, 200)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - ) - ); + .addBus("SPAS_RECOIL", new BusAnimationSequence() + .addKeyframePosition(0, 0, -2, 100) + .addKeyframePosition(0, 0, 0, 200) + .addKeyframeRotation(-10, 0, 5, 100) + .addKeyframeRotation(0, 0, 0, 200) + ) + .addBus("SPAS_PUMP", new BusAnimationSequence() + .addKeyframe(Dimension.TZ, 0, 450) + .addKeyframe(Dimension.TZ, -1.8, 200) + .addKeyframe(Dimension.TZ, 0, 200) + ) + ); config.ejector = EJECTOR_SPAS; @@ -200,24 +199,24 @@ public class Gun12GaugeFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("SHOTTY_RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) + .addKeyframePosition(0.5, 0, 0, 50) + .addKeyframePosition(0, 0, 0, 50) ) .addBus("SHOTTY_BREAK", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100)) //do nothing for 100ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 60, 200)) //open - .addKeyframe(new BusAnimationKeyframe(0, 0, 60, 500)) //do nothing for 500ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) //close + .addKeyframePosition(0, 0, 0, 100) //do nothing for 100ms + .addKeyframePosition(0, 0, 60, 200) //open + .addKeyframePosition(0, 0, 60, 500) //do nothing for 500ms + .addKeyframePosition(0, 0, 0, 200) //close ) .addBus("SHOTTY_EJECT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) //do nothing for 300ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 700)) //fling! + .addKeyframePosition(0, 0, 0, 300) //do nothing for 300ms + .addKeyframePosition(1, 0, 0, 700) //fling! ) .addBus("SHOTTY_INSERT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) //do nothing for 300ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 1, 0)) //reposition - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 350)) //come in from the side - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150)) //push + .addKeyframePosition(0, 0, 0, 300) //do nothing for 300ms + .addKeyframePosition(1, 0, 1, 0) //reposition + .addKeyframePosition(1, 0, 0, 350) //come in from the side + .addKeyframePosition(0, 0, 0, 150) //push ) ); @@ -252,26 +251,26 @@ public class Gun12GaugeFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(6.25, 0.25, 2.5, 55)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 55)) + .addKeyframePosition(6.25, 0.25, 2.5, 55) + .addKeyframePosition(0, 0, 0, 55) ) .addBus("EJECT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(25, 0, 0, 100)) + .addKeyframePosition(0, 0, 0, 25) + .addKeyframePosition(25, 0, 0, 100) ) ); config.animations.put(AnimType.RELOAD, new BusAnimation() .addBus("RELOAD", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(60, 0, -10, 400)) - .addKeyframe(new BusAnimationKeyframe(60, 125, -10, 200)) - .addKeyframe(new BusAnimationKeyframe(60, 125, -10, 300)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) + .addKeyframePosition(60, 0, -10, 400) + .addKeyframePosition(60, 125, -10, 200) + .addKeyframePosition(60, 125, -10, 300) + .addKeyframePosition(0, 0, 0, 300) ) .addBus("PUMP", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 900)) - .addKeyframe(new BusAnimationKeyframe(10, 0, 0, 200)) - .addKeyframe(new BusAnimationKeyframe()) + .addKeyframePosition(0, 0, 0, 900) + .addKeyframePosition(10, 0, 0, 200) + .addKeyframePosition(0, 0, 0, 1) ) ); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java index 755296329..573e56e84 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java @@ -50,16 +50,16 @@ public class Gun20GaugeFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 45, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) + .addKeyframePosition(0, 0, 0, 250) + .addKeyframePosition(0, 0, 45, 500) + .addKeyframePosition(0, 0, 0, 500) ) .addBus("LEVER_RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150)) - .addKeyframe(new BusAnimationKeyframe(0, -0.5, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) + .addKeyframePosition(0.5, 0, 0, 50) + .addKeyframePosition(0, 0, 0, 50) + .addKeyframePosition(0, 0, 0, 150) + .addKeyframePosition(0, -0.5, 0, 500) + .addKeyframePosition(0, 0, 0, 500) ) ); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java index 644d37457..0e7916786 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java @@ -81,12 +81,12 @@ public class Gun45ACPFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("SLIDE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 10))// Wait for hammer - .addKeyframe(new BusAnimationKeyframe(0, 0, -3.5, 40))// Slide back - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 40)))// Return + .addKeyframePosition(0, 0, 0, 10)// Wait for hammer + .addKeyframePosition(0, 0, -3.5, 40)// Slide back + .addKeyframePosition(0, 0, 0, 40))// Return .addBus("HAMMER", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(15, 0, 0, 10)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 40)))); + .addKeyframePosition(15, 0, 0, 10) + .addKeyframePosition(0, 0, 0, 40))); return config; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 31447e131..7d979adf4 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -109,25 +109,25 @@ public class Gun4GaugeFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("SAUER_RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) + .addKeyframePosition(0.5, 0, 0, 50) + .addKeyframePosition(0, 0, 0, 50) ) .addBus("SAUER_TILT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.0, 0, 0, 200)) // do nothing for 200ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 30, 150)) //tilt forward - .addKeyframe(new BusAnimationKeyframe(45, 0, 30, 150)) //tilt sideways - .addKeyframe(new BusAnimationKeyframe(45, 0, 30, 200)) //do nothing for 200ms (eject) - .addKeyframe(new BusAnimationKeyframe(0, 0, 30, 150)) //restore sideways - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150)) //restore forward + .addKeyframePosition(0.0, 0, 0, 200) // do nothing for 200ms + .addKeyframePosition(0, 0, 30, 150) //tilt forward + .addKeyframePosition(45, 0, 30, 150) //tilt sideways + .addKeyframePosition(45, 0, 30, 200) //do nothing for 200ms (eject) + .addKeyframePosition(0, 0, 30, 150) //restore sideways + .addKeyframePosition(0, 0, 0, 150) //restore forward ) .addBus("SAUER_COCK", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) //do nothing for 500ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 100)) //pull back lever for 100ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100)) //release lever for 100ms + .addKeyframePosition(0, 0, 0, 500) //do nothing for 500ms + .addKeyframePosition(1, 0, 0, 100) //pull back lever for 100ms + .addKeyframePosition(0, 0, 0, 100) //release lever for 100ms ) .addBus("SAUER_SHELL_EJECT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) //do nothing for 500ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 500)) //FLING! + .addKeyframePosition(0, 0, 0, 500) //do nothing for 500ms + .addKeyframePosition(0, 0, 1, 500) //FLING! ) ); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index 189ad105e..6a99a6109 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -138,20 +138,20 @@ public class Gun50BMGFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(1, 0, 0, 25) + .addKeyframePosition(0, 0, 0, 75) ) ); config.animations.put(AnimType.RELOAD, new BusAnimation() .addBus("TILT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) + .addKeyframePosition(1, 0, 0, 125) + .addKeyframePosition(1, 0, 0, 750) + .addKeyframePosition(0, 0, 0, 125) ) .addBus("MAG", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 200)) - .addKeyframe(new BusAnimationKeyframe(1, 0, 1, 200)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) + .addKeyframePosition(0, 0, 1, 200) + .addKeyframePosition(1, 0, 1, 200) + .addKeyframePosition(0, 0, 0, 200) ) ); @@ -191,8 +191,8 @@ public class Gun50BMGFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(1, 0, 0, 25) + .addKeyframePosition(0, 0, 0, 75) ) ); @@ -238,10 +238,10 @@ public class Gun50BMGFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-0.45, 0.15, 0, 40)) // Moves back and raise slightly - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75))) // Then forward again - .addBus("EJECT", new BusAnimationSequence().addKeyframe(new BusAnimationKeyframe(0, 0, 0, 30)) // Wait - .addKeyframe(new BusAnimationKeyframe(50, 0, 0, 120)))); // Fly // out + .addKeyframePosition(-0.45, 0.15, 0, 40) // Moves back and raise slightly + .addKeyframePosition(0, 0, 0, 75)) // Then forward again + .addBus("EJECT", new BusAnimationSequence().addKeyframePosition(0, 0, 0, 30) // Wait + .addKeyframePosition(50, 0, 0, 120))); // Fly // out config.ejector = EJECTOR_SNIPER; return config; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index 88c9aa190..e3f697b5a 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -94,8 +94,8 @@ public class Gun556mmFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(0.5, 0, 0, 25) + .addKeyframePosition(0, 0, 0, 75) ) ); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java index cc05924f6..2f24b5a02 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java @@ -49,25 +49,25 @@ public class Gun75BoltFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(1, 0, 0, 25) + .addKeyframePosition(0, 0, 0, 75) ) .addBus("EJECT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 75)) + .addKeyframePosition(0, 0, 0, 25) + .addKeyframePosition(0, 0, 1, 75) ) ); config.animations.put(AnimType.RELOAD, new BusAnimation() .addBus("TILT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 250)) - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 1500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) + .addKeyframePosition(1, 0, 0, 250) + .addKeyframePosition(1, 0, 0, 1500) + .addKeyframePosition(0, 0, 0, 250) ) .addBus("MAG", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 500)) - .addKeyframe(new BusAnimationKeyframe(1, 0, 1, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) + .addKeyframePosition(0, 0, 1, 500) + .addKeyframePosition(1, 0, 1, 500) + .addKeyframePosition(0, 0, 0, 500) ) ); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java index 4dec2a175..993751dda 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java @@ -58,15 +58,15 @@ public class Gun762mmFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(1, 0, 0, 25) + .addKeyframePosition(0, 0, 0, 75) ) ); config.animations.put(AnimType.RELOAD, new BusAnimation() .addBus("MAG", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, -1, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) + .addKeyframePosition(0, -1, 0, 500) + .addKeyframePosition(0, 0, 0, 500) ) ); @@ -177,19 +177,19 @@ public class Gun762mmFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(1, 0, 0, 25) + .addKeyframePosition(0, 0, 0, 75) ) .addBus("LEVER_PULL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt + .addKeyframePosition(0, 0, 0, 375) //wait out recoil and lever flick + .addKeyframePosition(-1, 0, 0, 375) //pull back bolt + .addKeyframePosition(0, 0, 0, 375) //release bolt ) .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again + .addKeyframePosition(0, 0, 0, 250) //wait out recoil + .addKeyframePosition(1, 0, 0, 125) //flick up lever in 125ms + .addKeyframePosition(1, 0, 0, 750) //pull action + .addKeyframePosition(0, 0, 0, 125) //flick down lever again ) ); @@ -216,19 +216,19 @@ public class Gun762mmFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(1, 0, 0, 25) + .addKeyframePosition(0, 0, 0, 75) ) .addBus("LEVER_PULL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt + .addKeyframePosition(0, 0, 0, 375) //wait out recoil and lever flick + .addKeyframePosition(-1, 0, 0, 375) //pull back bolt + .addKeyframePosition(0, 0, 0, 375) //release bolt ) .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again + .addKeyframePosition(0, 0, 0, 250) //wait out recoil + .addKeyframePosition(1, 0, 0, 125) //flick up lever in 125ms + .addKeyframePosition(1, 0, 0, 750) //pull action + .addKeyframePosition(0, 0, 0, 125) //flick down lever again ) ); @@ -259,19 +259,19 @@ public class Gun762mmFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(1, 0, 0, 25) + .addKeyframePosition(0, 0, 0, 75) ) .addBus("LEVER_PULL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt + .addKeyframePosition(0, 0, 0, 375) //wait out recoil and lever flick + .addKeyframePosition(-1, 0, 0, 375) //pull back bolt + .addKeyframePosition(0, 0, 0, 375) //release bolt ) .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again + .addKeyframePosition(0, 0, 0, 250) //wait out recoil + .addKeyframePosition(1, 0, 0, 125) //flick up lever in 125ms + .addKeyframePosition(1, 0, 0, 750) //pull action + .addKeyframePosition(0, 0, 0, 125) //flick down lever again ) ); diff --git a/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java index 6fee544a6..93dfe03b9 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java @@ -42,8 +42,8 @@ public class GunGaussFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(1, 0, 0, 25) + .addKeyframePosition(0, 0, 0, 75) ) ); diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java index b6b0714dd..0c9b53a54 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java @@ -84,23 +84,23 @@ public class GunRocketFactory { config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("QUADRO_RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, -0.5, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) + .addKeyframePosition(0, 0, -0.5, 50) + .addKeyframePosition(0, 0, 0, 50) ) ); config.animations.put(AnimType.RELOAD, new BusAnimation() .addBus("QUADRO_RELOAD_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 60, 750)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 60, 3500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 750)) + .addKeyframePosition(0, 0, 60, 750) + .addKeyframePosition(0, 0, 60, 3500) + .addKeyframePosition(0, 0, 0, 750) ) .addBus("QUADRO_RELOAD_PUSH", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-1, -1, 0, 0)) - .addKeyframe(new BusAnimationKeyframe(-1, -1, 0, 750)) - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 3000)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 750)) + .addKeyframePosition(-1, -1, 0, 0) + .addKeyframePosition(-1, -1, 0, 750) + .addKeyframePosition(-1, 0, 0, 500) + .addKeyframePosition(0, 0, 0, 3000) + .addKeyframePosition(0, 0, 0, 750) ) ); diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index b0d216289..c4178aa08 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -128,7 +128,7 @@ public class ItemBoltgun extends Item implements IAnimatedItem { public BusAnimation getAnimation(NBTTagCompound data, ItemStack stack) { return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 1, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 100))); + .addKeyframePosition(1, 0, 1, 50) + .addKeyframePosition(0, 0, 1, 100)); } } diff --git a/src/main/java/com/hbm/items/weapon/ItemCoilgun.java b/src/main/java/com/hbm/items/weapon/ItemCoilgun.java index 9bce20e0e..2cff7857d 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCoilgun.java +++ b/src/main/java/com/hbm/items/weapon/ItemCoilgun.java @@ -23,16 +23,16 @@ public class ItemCoilgun extends ItemGunBase { if(type == AnimType.CYCLE) { return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200))); + .addKeyframePosition(1, 0, 0, 100) + .addKeyframePosition(0, 0, 0, 200)); } if(type == AnimType.RELOAD) { return new BusAnimation() .addBus("RELOAD", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 250)) - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250))); + .addKeyframePosition(1, 0, 0, 250) + .addKeyframePosition(1, 0, 0, 500) + .addKeyframePosition(0, 0, 0, 250)); } GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBio.java b/src/main/java/com/hbm/items/weapon/ItemGunBio.java index 47f1abd58..77ea4a9f7 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBio.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBio.java @@ -70,54 +70,54 @@ public class ItemGunBio extends ItemGunBase { lastShot = System.currentTimeMillis(); return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -3, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) + .addKeyframePosition(0, 0, 0, 50) + .addKeyframePosition(0, 0, -3, 50) + .addKeyframePosition(0, 0, 0, 250) ) .addBus("HAMMER", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 300)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) + .addKeyframePosition(0, 0, 1, 50) + .addKeyframePosition(0, 0, 1, 300) + .addKeyframePosition(0, 0, 0, 200) ) .addBus("DRUM", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50)) + .addKeyframePosition(0, 0, 1, 50) ); } if(type == AnimType.RELOAD) { return new BusAnimation() .addBus("LATCH", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 90, 300)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 90, 2000)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150)) + .addKeyframePosition(0, 0, 90, 300) + .addKeyframePosition(0, 0, 90, 2000) + .addKeyframePosition(0, 0, 0, 150) ) .addBus("FRONT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 45, 150)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 45, 2000)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + .addKeyframePosition(0, 0, 0, 200) + .addKeyframePosition(0, 0, 45, 150) + .addKeyframePosition(0, 0, 45, 2000) + .addKeyframePosition(0, 0, 0, 75) ) .addBus("RELOAD_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) - .addKeyframe(new BusAnimationKeyframe(60, 0, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(60, 0, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(0, -90, -90, 0)) - .addKeyframe(new BusAnimationKeyframe(0, -90, -90, 600)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100)) - .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) + .addKeyframePosition(0, 0, 0, 300) + .addKeyframePosition(60, 0, 0, 500) + .addKeyframePosition(60, 0, 0, 500) + .addKeyframePosition(0, -90, -90, 0) + .addKeyframePosition(0, -90, -90, 600) + .addKeyframePosition(0, 0, 0, 300) + .addKeyframePosition(0, 0, 0, 100) + .addKeyframePosition(-45, 0, 0, 50) + .addKeyframePosition(-45, 0, 0, 100) + .addKeyframePosition(0, 0, 0, 300) ) .addBus("RELOAD_MOVE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) - .addKeyframe(new BusAnimationKeyframe(0, -15, 0, 1000)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 450)) + .addKeyframePosition(0, 0, 0, 300) + .addKeyframePosition(0, -15, 0, 1000) + .addKeyframePosition(0, 0, 0, 450) ) .addBus("DRUM_PUSH", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1600)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -5, 0)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) + .addKeyframePosition(0, 0, 0, 1600) + .addKeyframePosition(0, 0, -5, 0) + .addKeyframePosition(0, 0, 0, 300) ); } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunCongo.java b/src/main/java/com/hbm/items/weapon/ItemGunCongo.java index 7072e772d..4e34d889a 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunCongo.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunCongo.java @@ -23,12 +23,12 @@ public class ItemGunCongo extends ItemGunBase { if(type == AnimType.CYCLE) { return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100))) + .addKeyframePosition(1, 0, 0, 50) + .addKeyframePosition(0, 0, 0, 100)) .addBus("PUMP", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200))); + .addKeyframePosition(0, 0, 0, 500) + .addKeyframePosition(1, 0, 0, 100) + .addKeyframePosition(0, 0, 0, 200)); } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunPip.java b/src/main/java/com/hbm/items/weapon/ItemGunPip.java index 04af2530d..c57e56a70 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunPip.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunPip.java @@ -65,7 +65,7 @@ public class ItemGunPip extends ItemGunBase { if(type == AnimType.EQUIP) { return new BusAnimation() .addBus("ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-360, 0, 0, 350)) + .addKeyframePosition(-360, 0, 0, 350) ); } @@ -74,17 +74,17 @@ public class ItemGunPip extends ItemGunBase { int s = 1; return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50 * s)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -3, 50 * s)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250 * s)) + .addKeyframePosition(0, 0, 0, 50 * s) + .addKeyframePosition(0, 0, -3, 50 * s) + .addKeyframePosition(0, 0, 0, 250 * s) ) .addBus("HAMMER", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50 * s)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 300 * s)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) + .addKeyframePosition(0, 0, 1, 50 * s) + .addKeyframePosition(0, 0, 1, 300 * s) + .addKeyframePosition(0, 0, 0, 200 * s) ) .addBus("DRUM", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50 * s)) + .addKeyframePosition(0, 0, 1, 50 * s) ); } @@ -92,44 +92,44 @@ public class ItemGunPip extends ItemGunBase { int s = 1; return new BusAnimation() .addBus("RELAOD_TILT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 100 * s)) - .addKeyframe(new BusAnimationKeyframe(65, 0, 0, 100 * s)) //200 - .addKeyframe(new BusAnimationKeyframe(45, 0, 0, 50 * s)) //250 - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) //450 - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1450 * s)) //1900 - .addKeyframe(new BusAnimationKeyframe(-80, 0, 0, 100 * s)) //2000 - .addKeyframe(new BusAnimationKeyframe(-80, 0, 0, 100 * s)) //2100 - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) //2300 + .addKeyframePosition(-15, 0, 0, 100 * s) + .addKeyframePosition(65, 0, 0, 100 * s) //200 + .addKeyframePosition(45, 0, 0, 50 * s) //250 + .addKeyframePosition(0, 0, 0, 200 * s) //450 + .addKeyframePosition(0, 0, 0, 1450 * s) //1900 + .addKeyframePosition(-80, 0, 0, 100 * s) //2000 + .addKeyframePosition(-80, 0, 0, 100 * s) //2100 + .addKeyframePosition(0, 0, 0, 200 * s) //2300 ) .addBus("RELOAD_CYLINDER", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) - .addKeyframe(new BusAnimationKeyframe(90, 0, 0, 100 * s)) //300 - .addKeyframe(new BusAnimationKeyframe(90, 0, 0, 1700 * s)) //2000 - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 70 * s)) //2100 + .addKeyframePosition(0, 0, 0, 200 * s) + .addKeyframePosition(90, 0, 0, 100 * s) //300 + .addKeyframePosition(90, 0, 0, 1700 * s) //2000 + .addKeyframePosition(0, 0, 0, 70 * s) //2100 ) .addBus("RELOAD_LIFT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 350 * s)) - .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 250 * s)) //600 - .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 350 * s)) //950 - .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 200 * s)) //1150 - .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 1050 * s)) //2200 - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100 * s)) //2300 + .addKeyframePosition(0, 0, 0, 350 * s) + .addKeyframePosition(-45, 0, 0, 250 * s) //600 + .addKeyframePosition(-45, 0, 0, 350 * s) //950 + .addKeyframePosition(-15, 0, 0, 200 * s) //1150 + .addKeyframePosition(-15, 0, 0, 1050 * s) //2200 + .addKeyframePosition(0, 0, 0, 100 * s) //2300 ) .addBus("RELOAD_JOLT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 600 * s)) - .addKeyframe(new BusAnimationKeyframe(2, 0, 0, 50 * s)) //650 - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100 * s)) //750 + .addKeyframePosition(0, 0, 0, 600 * s) + .addKeyframePosition(2, 0, 0, 50 * s) //650 + .addKeyframePosition(0, 0, 0, 100 * s) //750 ) .addBus("RELOAD_BULLETS", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 650 * s)) - .addKeyframe(new BusAnimationKeyframe(10, 0, 0, 300 * s)) //950 - .addKeyframe(new BusAnimationKeyframe(10, 0, 0, 200 * s)) //1150 - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 700 * s)) //1850 + .addKeyframePosition(0, 0, 0, 650 * s) + .addKeyframePosition(10, 0, 0, 300 * s) //950 + .addKeyframePosition(10, 0, 0, 200 * s) //1150 + .addKeyframePosition(0, 0, 0, 700 * s) //1850 ) .addBus("RELOAD_BULLETS_CON", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 0 * s)) - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 950 * s)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1 * s)) + .addKeyframePosition(1, 0, 0, 0 * s) + .addKeyframePosition(1, 0, 0, 950 * s) + .addKeyframePosition(0, 0, 0, 1 * s) ); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index fa229ec95..54809ab08 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1740,9 +1740,9 @@ public class ClientProxy extends ServerProxy { BusAnimation animation = new BusAnimation() .addBus("GUARD_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(90, 0, 1, 0)) - .addKeyframe(new BusAnimationKeyframe(90, 0, 1, 800)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50))); + .addKeyframePosition(90, 0, 1, 0) + .addKeyframePosition(90, 0, 1, 800) + .addKeyframePosition(0, 0, 1, 50)); HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); } @@ -1756,13 +1756,13 @@ public class ClientProxy extends ServerProxy { BusAnimation animation = new BusAnimation() .addBus("SWING_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(90 - offset, 90 - offset, 35, 75)) - .addKeyframe(new BusAnimationKeyframe(90 + offset, 90 - offset, -45, 150)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500))) + .addKeyframePosition(90 - offset, 90 - offset, 35, 75) + .addKeyframePosition(90 + offset, 90 - offset, -45, 150) + .addKeyframePosition(0, 0, 0, 500)) .addBus("SWING_TRANS", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-3, 0, 0, 75)) - .addKeyframe(new BusAnimationKeyframe(8, 0, 0, 150)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500))); + .addKeyframePosition(-3, 0, 0, 75) + .addKeyframePosition(8, 0, 0, 150) + .addKeyframePosition(0, 0, 0, 500)); Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:weapon.cSwing"), 0.8F + player.getRNG().nextFloat() * 0.2F)); @@ -1781,13 +1781,13 @@ public class ClientProxy extends ServerProxy { BusAnimation animation = new BusAnimation() .addBus("SWING_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 90, forward)) - .addKeyframe(new BusAnimationKeyframe(45, 0, 90, sideways)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, retire))) + .addKeyframePosition(0, 0, 90, forward) + .addKeyframePosition(45, 0, 90, sideways) + .addKeyframePosition(0, 0, 0, retire)) .addBus("SWING_TRANS", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 3, forward)) - .addKeyframe(new BusAnimationKeyframe(2, 0, 2, sideways)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, retire))); + .addKeyframePosition(0, 0, 3, forward) + .addKeyframePosition(2, 0, 2, sideways) + .addKeyframePosition(0, 0, 0, retire)); HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); @@ -1801,15 +1801,15 @@ public class ClientProxy extends ServerProxy { BusAnimation animation = new BusAnimation() .addBus("SWING_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(rot[0], rot[1], rot[2], 0)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 90, forward)) - .addKeyframe(new BusAnimationKeyframe(45, 0, 90, sideways)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, retire))) + .addKeyframePosition(rot[0], rot[1], rot[2], 0) + .addKeyframePosition(0, 0, 90, forward) + .addKeyframePosition(45, 0, 90, sideways) + .addKeyframePosition(0, 0, 0, retire)) .addBus("SWING_TRANS", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(trans[0], trans[1], trans[2], 0)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 3, forward)) - .addKeyframe(new BusAnimationKeyframe(2, 0, 2, sideways)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, retire))); + .addKeyframePosition(trans[0], trans[1], trans[2], 0) + .addKeyframePosition(0, 0, 3, forward) + .addKeyframePosition(2, 0, 2, sideways) + .addKeyframePosition(0, 0, 0, retire)); HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); } diff --git a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java index db0e18261..be03850ff 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java @@ -8,46 +8,55 @@ public class BusAnimationKeyframe { //two frames could be implemented public static enum InterpolationType { NONE, - SMOOTH + LINEAR } - //unimplemented, all current animations are absolute - //whether the transformation happens on its own or relative to the last state - //i.e. 5 with 15 being the previous would be 20 additive and 5 absolute, simple enough - public static enum StateType { - ADDITIVE, - ABSOLTE - } - - public double x; - public double y; - public double z; + // public double x; + // public double y; + // public double z; + + public double value; public InterpolationType interpolationType; public int duration; - public double[] toArray() { - return new double[] {x, y, z}; - } + // public double[] toArray() { + // return new double[] {x, y, z}; + // } //this one can be used for "reset" type keyframes public BusAnimationKeyframe() { - this.x = 0; - this.y = 0; - this.z = 0; + // this.x = 0; + // this.y = 0; + // this.z = 0; + + this.value = 0; this.duration = 1; - this.interpolationType = InterpolationType.SMOOTH; + this.interpolationType = InterpolationType.LINEAR; } - - public BusAnimationKeyframe(double x, double y, double z, int duration) { + + public BusAnimationKeyframe(double value, int duration) { this(); - this.x = x; - this.y = y; - this.z = z; + this.value = value; this.duration = duration; } - - public BusAnimationKeyframe(double x, double y, double z, int duration, InterpolationType interpolation) { - this(x, y, z, duration); + + public BusAnimationKeyframe(double value, int duration, InterpolationType interpolation) { + this(value, duration); this.interpolationType = interpolation; } + + // public BusAnimationKeyframe(double x, double y, double z, int duration) { + // this(); + // this.x = x; + // this.y = y; + // this.z = z; + // this.duration = duration; + // } + + // public BusAnimationKeyframe(double x, double y, double z, int duration, InterpolationType interpolation) { + // this(x, y, z, duration); + // this.interpolationType = interpolation; + // } + + } diff --git a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java index f9de9f4ba..0eafe7ee9 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java @@ -7,105 +7,120 @@ import com.hbm.render.anim.BusAnimationKeyframe.InterpolationType; //the actual bus, a sequence of keyframes with their own behavior and such public class BusAnimationSequence { - - //not actually useful for anything since the renderer usually handles - //this part, but it's nice to have for distinction just in case - public static enum EnumTransformation { - UNDEFINED, - ROTATION, - TRANSLATION, - SCALE + + public static enum Dimension { + TX, + TY, + TZ, + RX, + RY, + RZ, + SX, + SY, + SZ } - private List keyframes = new ArrayList(); - public EnumTransformation transformationType; + + // Storing a matrix of keyframe data, each keyframe stores a SINGLE dimension, so we can stagger frames over each parameter + private List> transformKeyframes = new ArrayList>(9); + + + public BusAnimationSequence() { + // Initialise our keyframe storage, since it's multidimensional + for (int i = 0; i < 9; i++) { + transformKeyframes.add(new ArrayList()); + } + } + + - //appends a keyframe at the end of the sequence - public BusAnimationSequence addKeyframe(BusAnimationKeyframe keyframe) { - - keyframes.add(keyframe); + // Adds a keyframe to the given dimension + public BusAnimationSequence addKeyframe(Dimension dimension, BusAnimationKeyframe keyframe) { + transformKeyframes.get(dimension.ordinal()).add(keyframe); return this; } + + public BusAnimationSequence addKeyframe(Dimension dimension, double value, int duration) { + transformKeyframes.get(dimension.ordinal()).add(new BusAnimationKeyframe(value, duration)); + + return this; + } + + + // Two helper methods for the old hard-coded animations + public BusAnimationSequence addKeyframePosition(double x, double y, double z, int duration) { + addKeyframe(Dimension.TX, new BusAnimationKeyframe(x, duration)); + addKeyframe(Dimension.TY, new BusAnimationKeyframe(y, duration)); + addKeyframe(Dimension.TZ, new BusAnimationKeyframe(z, duration)); + + return this; + } + + public BusAnimationSequence addKeyframeRotation(double x, double y, double z, int duration) { + addKeyframe(Dimension.RX, new BusAnimationKeyframe(x, duration)); + addKeyframe(Dimension.RY, new BusAnimationKeyframe(y, duration)); + addKeyframe(Dimension.RZ, new BusAnimationKeyframe(z, duration)); + + return this; + } + + + //all transformation data is absolute, additive transformations have not yet been implemented public double[] getTransformation(int millis) { - - BusAnimationKeyframe frame = getFrameAtTime(millis); - - if(frame == null) - return null; - - //if no interpolation type is set, just return the new coords - if(frame.interpolationType == InterpolationType.NONE) - return frame.toArray(); - - //if this is the first frame, the "previous" values are 0 - double[] previous = new double[] {0, 0, 0}; - - BusAnimationKeyframe lastFrame = getPreviousFrame(frame); - - if(lastFrame != null) - previous = lastFrame.toArray(); - - //the time elapsed during the frame is the total current time minus the starting timie of the current frame - int frameTime = millis - getStartingTime(frame); - double interpolation = (double)frameTime / (double)frame.duration; + double[] transform = new double[9]; - double interX = (frame.x - previous[0]) * interpolation + previous[0]; - double interY = (frame.y - previous[1]) * interpolation + previous[1]; - double interZ = (frame.z - previous[2]) * interpolation + previous[2]; - - return new double[] {interX, interY, interZ}; - } - - public BusAnimationKeyframe getFrameAtTime(int millis) { + for (int i = 0; i < 9; i++) { + List keyframes = transformKeyframes.get(i); - int time = 0; - - for(BusAnimationKeyframe frame : keyframes) { - time += frame.duration; - - if(millis < time) - return frame; + BusAnimationKeyframe currentFrame = null; + BusAnimationKeyframe previousFrame = null; + + int startTime = 0; + int endTime = 0; + for (BusAnimationKeyframe keyframe: keyframes) { + startTime = endTime; + endTime += keyframe.duration; + previousFrame = currentFrame; + currentFrame = keyframe; + if (millis < endTime) break; + } + + if (currentFrame == null || millis >= endTime) { + // Scale defaults to 1, others are 0 + transform[i] = i >= 6 ? 1 : 0; + continue; + } + + if (currentFrame.interpolationType == InterpolationType.NONE) { + transform[i] = currentFrame.value; + continue; + } + + double a = currentFrame.value; + double b = previousFrame != null ? previousFrame.value : 0; + double t = (double)(millis - startTime) / (double)currentFrame.duration; + + transform[i] = (a - b) * t + b; } - - return null; - } - - public BusAnimationKeyframe getPreviousFrame(BusAnimationKeyframe frame) { - int index = keyframes.indexOf(frame); - - if(index == 0) - return null; - - return keyframes.get(index - 1); - } - - public int getStartingTime(BusAnimationKeyframe start) { - - int time = 0; - - for(BusAnimationKeyframe frame : keyframes) { - - if(frame == start) - break; - - time += frame.duration; - } - - return time; + return transform; } public int getTotalTime() { + int highestTime = 0; - int time = 0; - - for(BusAnimationKeyframe frame : keyframes) { - time += frame.duration; + for (List keyframes: transformKeyframes) { + int time = 0; + for (BusAnimationKeyframe frame: keyframes) { + time += frame.duration; + } + + highestTime = Math.max(time, highestTime); } - return time; + return highestTime; } } diff --git a/src/main/java/com/hbm/render/anim/HbmAnimations.java b/src/main/java/com/hbm/render/anim/HbmAnimations.java index 239ca9bcc..a4b9c7ce7 100644 --- a/src/main/java/com/hbm/render/anim/HbmAnimations.java +++ b/src/main/java/com/hbm/render/anim/HbmAnimations.java @@ -4,6 +4,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import org.lwjgl.opengl.GL11; + public class HbmAnimations { //in flans mod and afaik also MW, there's an issue that there is only one @@ -83,7 +85,21 @@ public class HbmAnimations { } } - return new double[] {0, 0, 0}; + return new double[] { + 0, 0, 0, // position + 0, 0, 0, // rotation + 1, 1, 1 // scale + }; + } + + public static void applyRelevantTransformation(String bus) { + double[] transform = getRelevantTransformation(bus); + + GL11.glTranslated(transform[0], transform[1], transform[2]); + GL11.glRotated(transform[3], 1, 0, 0); + GL11.glRotated(transform[4], 0, 1, 0); + GL11.glRotated(transform[5], 0, 0, 1); + GL11.glScaled(transform[6], transform[7], transform[8]); } } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java index 33de43282..d35d9a8f5 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java @@ -44,24 +44,17 @@ public class ItemRenderWeaponSpas12 implements IItemRenderer { case EQUIPPED_FIRST_PERSON: - double[] recoilT = HbmAnimations.getRelevantTransformation("SPAS_RECOIL_TRANSLATE"); - double[] recoilR = HbmAnimations.getRelevantTransformation("SPAS_RECOIL_ROT"); - double[] pump = HbmAnimations.getRelevantTransformation("SPAS_PUMP"); - double s0 = 0.5D; GL11.glRotated(25, 0, 0, 1); GL11.glTranslated(0, -0.8, 0.1); GL11.glRotated(80, 0, 1, 0); GL11.glScaled(s0, s0, s0); - - int m = 2; - - GL11.glTranslated(recoilT[0]*m, recoilT[1]*m, recoilT[2]*m); - GL11.glRotated(2, recoilR[0]*m, recoilR[1]*m, recoilR[2]*m); + + HbmAnimations.applyRelevantTransformation("SPAS_RECOIL"); ResourceManager.spas_12.renderPart("MainBody"); - GL11.glTranslated(pump[0], pump[1], pump[2]); + HbmAnimations.applyRelevantTransformation("SPAS_PUMP"); ResourceManager.spas_12.renderPart("PumpGrip"); From 94a1c1964034fca424f1c646f199bb6a806b39e3 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 24 Jan 2024 14:48:18 +0100 Subject: [PATCH 117/376] i fell on a vietcong punji stick and now i am paraplegic --- changelog | 22 +++ gradle.properties | 3 +- src/main/java/com/hbm/blocks/ModBlocks.java | 2 - .../hbm/blocks/generic/BlockDeepCobble.java | 43 ----- .../java/com/hbm/blocks/generic/BlockOre.java | 19 +- .../inventory/container/ContainerBook.java | 167 ++++++++---------- .../container/ContainerLemegeton.java | 96 ++++++++++ .../java/com/hbm/inventory/gui/GUIAnvil.java | 44 +++-- .../java/com/hbm/inventory/gui/GUIBook.java | 3 +- .../com/hbm/inventory/gui/GUILemegeton.java | 40 +++++ .../inventory/recipes/AssemblerRecipes.java | 4 +- .../inventory/recipes/LemegetonRecipes.java | 78 ++++++++ .../inventory/recipes/ShredderRecipes.java | 3 + .../inventory/recipes/anvil/AnvilRecipes.java | 15 ++ src/main/java/com/hbm/items/ItemEnums.java | 4 + src/main/java/com/hbm/items/ModItems.java | 6 + .../java/com/hbm/items/special/ItemBook.java | 33 ---- .../com/hbm/items/tool/ItemBookLemegeton.java | 35 ++++ src/main/java/com/hbm/main/MainRegistry.java | 1 + .../java/com/hbm/world/feature/DeepLayer.java | 79 --------- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../textures/gui/processing/gui_lemegeton.png | Bin 0 -> 3013 bytes .../hbm/textures/items/book_lemegeton.png | Bin 0 -> 982 bytes .../assets/hbm/textures/items/chunk_base.png | Bin 0 -> 309 bytes .../hbm/textures/items/chunk_ore.rare.png | Bin 0 -> 452 bytes 26 files changed, 410 insertions(+), 291 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/generic/BlockDeepCobble.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerLemegeton.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUILemegeton.java create mode 100644 src/main/java/com/hbm/inventory/recipes/LemegetonRecipes.java create mode 100644 src/main/java/com/hbm/items/tool/ItemBookLemegeton.java delete mode 100644 src/main/java/com/hbm/world/feature/DeepLayer.java create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_lemegeton.png create mode 100644 src/main/resources/assets/hbm/textures/items/book_lemegeton.png create mode 100644 src/main/resources/assets/hbm/textures/items/chunk_base.png create mode 100644 src/main/resources/assets/hbm/textures/items/chunk_ore.rare.png diff --git a/changelog b/changelog index f406cefee..126875cb3 100644 --- a/changelog +++ b/changelog @@ -4,7 +4,29 @@ * Creates 16 when crafted, however it is not returned when the muffled machine is broken * Should work with pretty much all machines that use looped sounds, as well as a few other noisy ones (compressors, diesel generators, presses) * Simply right-click to install, doesn't need to be inserted into an upgrade slot, in fact it works on a few machines that have no GUI at all +* Lemegeton + * A book that can do material upgrading, like turning steel into HSS, HSS into Tc-steel, lead into gold, gold into bismuth, bismuth into osmiridium, etc. + * Basically allows a material to be upgraded to the next gating material in progression + * Obviously unobtainable in survival mode + * I don't know how this would ever be useful but I was stuck in a phonecall at work for two consecutive hours and didn't have anything else to do + * They should invent handsets that don't hurt when you hold them onto your head for too long + * Has no NEI handler because the call ended before I got to that + +## Changed +* Large turbines, levis and geothermal heat exchangers now have their own sounds when operating +* Anvils will now list ingredients in red if those aren't present in the player's inventory +* Derricks now only need one set of steel pipes instead of 3. They can also be recycled by shredding, returning 32 steel +* Pumpjacks now need a single desh motor instead of two regular ones +* Rare earth ore, instead of detonating into a million fragments that are annoying to process, clog inventories and just cause everyone to not mine that ore in earlygame, will now drop a chunk of rare earth ore + * Rare earth chunks can be shredded directly into one unit of desh blend + * For efficiencymaxxers, silk-touching rare earth still works as expected, yielding two units when shredded + * The luck enchantment should work as expected, dropping multiple chunks. Yay! + * To get things that can be useful in small amounts in earlygame like boron and cobalt (boron for Atlas and cobalt for tools), the rare earth chunk can be hammered down into fragments on a steel anvil + * Cerium and lanthanium, due to being useless, only have a 10% chance of producing a framgent + * Boron and cobalt each produce a guaranteed fragment, as well as an additional one with a 50% chance + * Neodymium and niobium both yield a shard 50% of the time ## Fixed * Fixed basalt ores dropping their items with invalid metadata * Fixed creative infinite fluid tanks not being able to fill fluid gauges at >0PU +* Fixed an issue where repeatedly opening and closing certain doors would cause their sound loop to get stuck running forever diff --git a/gradle.properties b/gradle.properties index dfdd7bdff..211ed111d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,4 +16,5 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ (OpenComputers integration), martemen (project settings), Pvndols (thorium fuel recipe, gas turbine),\ \ JamesH2 (blood mechanics, nitric acid, particle emitter), sdddddf80 (recipe configs, chinese localization,\ \ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\ - \ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks) + \ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks),\ + \ 245tt (anvil GUI improvements), MellowArpeggiation (turbine sounds, sound fixes) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 47a1bbff1..52282b525 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -143,7 +143,6 @@ public class ModBlocks { public static Block stalagmite; public static Block stalactite; public static Block stone_biome; - public static Block stone_deep_cobble; public static Block depth_brick; public static Block depth_tiles; @@ -1376,7 +1375,6 @@ public class ModBlocks { stalagmite = new BlockStalagmite().setBlockName("stalagmite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F); stalactite = new BlockStalagmite().setBlockName("stalactite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F); stone_biome = new BlockBiomeStone().setBlockName("stone_biome").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); - stone_deep_cobble = new BlockDeepCobble().setBlockName("stone_deep_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F); basalt = new BlockGeneric(Material.rock).setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt"); ore_basalt = new BlockOreBasalt().setBlockName("ore_basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_basalt"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockDeepCobble.java b/src/main/java/com/hbm/blocks/generic/BlockDeepCobble.java deleted file mode 100644 index 34c894bbb..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockDeepCobble.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hbm.blocks.generic; - -import java.util.Random; - -import com.hbm.blocks.BlockEnumMulti; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class BlockDeepCobble extends BlockEnumMulti { - - public static enum EnumDeepCobbleTypes { - NORMAL, - BURNING, - STEAMING - } - - public BlockDeepCobble() { - super(Material.rock, EnumDeepCobbleTypes.class, true, true); - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(World world, int x, int y, int z, Random rand) { - super.randomDisplayTick(world, x, y, z, rand); - - int meta = world.getBlockMetadata(x, y, z); - Block b = world.getBlock(x, y + 1, z); - - if(!b.isNormalCube()) { - if(meta == EnumDeepCobbleTypes.BURNING.ordinal()) { - world.spawnParticle("flame", x + rand.nextDouble(), y + 1.0625, z + rand.nextDouble(), 0.0, 0.0, 0.0); - } - - if(meta == EnumDeepCobbleTypes.STEAMING.ordinal()) { - world.spawnParticle("cloud", x + 0.25 + rand.nextDouble() * 0.5, y + 1.0625, z + 0.25 + rand.nextDouble() * 0.5, 0.0, 0.05, 0.0); - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 269f6b037..fef0e1b08 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.interfaces.Spaghetti; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.potion.HbmPotion; import cpw.mods.fml.relauncher.Side; @@ -151,20 +152,7 @@ public class BlockOre extends Block { } } if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) { - switch(rand.nextInt(6)) { - case 0: - return ModItems.fragment_boron; - case 1: - return ModItems.fragment_cerium; - case 2: - return ModItems.fragment_cobalt; - case 3: - return ModItems.fragment_lanthanium; - case 4: - return ModItems.fragment_neodymium; - case 5: - return ModItems.fragment_niobium; - } + return ModItems.chunk_ore; } if(this == ModBlocks.deco_aluminium) { return ModItems.ingot_aluminium; @@ -266,7 +254,8 @@ public class BlockOre extends Block { } @Override - public int damageDropped(int p_149692_1_) { + public int damageDropped(int meta) { + if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) return EnumChunkType.RARE.ordinal(); return this == ModBlocks.waste_planks ? 1 : 0; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerBook.java b/src/main/java/com/hbm/inventory/container/ContainerBook.java index a3959b58a..9e1357dae 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerBook.java +++ b/src/main/java/com/hbm/inventory/container/ContainerBook.java @@ -14,109 +14,93 @@ import net.minecraft.inventory.SlotCrafting; import net.minecraft.item.ItemStack; public class ContainerBook extends Container { - - public InventoryCrafting craftMatrix = new InventoryCrafting(this, 2, 2); - public IInventory craftResult = new InventoryCraftResult(); - public ContainerBook(InventoryPlayer inventory) { - - this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 124, 35)); + public InventoryCrafting craftMatrix = new InventoryCrafting(this, 2, 2); + public IInventory craftResult = new InventoryCraftResult(); - for (int l = 0; l < 2; ++l) { - for (int i1 = 0; i1 < 2; ++i1) { - this.addSlotToContainer(new Slot(this.craftMatrix, i1 + l * 2, 30 + i1 * 36, 17 + l * 36)); - } - } + public ContainerBook(InventoryPlayer inventory) { - for(int l = 0; l < 3; ++l) { - for (int i1 = 0; i1 < 9; ++i1) { - this.addSlotToContainer(new Slot(inventory, i1 + l * 9 + 9, 8 + i1 * 18, 84 + l * 18)); - } - } + this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 124, 35)); - for(int l = 0; l < 9; ++l) { - this.addSlotToContainer(new Slot(inventory, l, 8 + l * 18, 142)); - } + for(int l = 0; l < 2; ++l) { + for(int i1 = 0; i1 < 2; ++i1) { + this.addSlotToContainer(new Slot(this.craftMatrix, i1 + l * 2, 30 + i1 * 36, 17 + l * 36)); + } + } - this.onCraftMatrixChanged(this.craftMatrix); - } - - public void onCraftMatrixChanged(IInventory inventory) { - this.craftResult.setInventorySlotContents(0, MagicRecipes.getRecipe(this.craftMatrix)); - } - - public void onContainerClosed(EntityPlayer player) { - super.onContainerClosed(player); + for(int l = 0; l < 3; ++l) { + for(int i1 = 0; i1 < 9; ++i1) { + this.addSlotToContainer(new Slot(inventory, i1 + l * 9 + 9, 8 + i1 * 18, 84 + l * 18)); + } + } - if (!player.worldObj.isRemote) { - - for (int i = 0; i < 4; ++i) { - ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(i); + for(int l = 0; l < 9; ++l) { + this.addSlotToContainer(new Slot(inventory, l, 8 + l * 18, 142)); + } + + this.onCraftMatrixChanged(this.craftMatrix); + } + + public void onCraftMatrixChanged(IInventory inventory) { + this.craftResult.setInventorySlotContents(0, MagicRecipes.getRecipe(this.craftMatrix)); + } + + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + + if(!player.worldObj.isRemote) { + + for(int i = 0; i < 4; ++i) { + ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(i); + + if(itemstack != null) + player.dropPlayerItemWithRandomChoice(itemstack, false); + } + } + } - if (itemstack != null) - player.dropPlayerItemWithRandomChoice(itemstack, false); - } - } - } - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) - { - ItemStack itemstack = null; - Slot slot = (Slot)this.inventorySlots.get(p_82846_2_); + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) { + ItemStack itemstack = null; + Slot slot = (Slot) this.inventorySlots.get(p_82846_2_); - if (slot != null && slot.getHasStack()) - { - ItemStack itemstack1 = slot.getStack(); - itemstack = itemstack1.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack itemstack1 = slot.getStack(); + itemstack = itemstack1.copy(); - if (p_82846_2_ == 0) - { - if (!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, true)) - { - return null; - } + if(p_82846_2_ == 0) { + if(!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, true)) { + return null; + } - slot.onSlotChange(itemstack1, itemstack); - } - else if (p_82846_2_ >= 10 - 5 && p_82846_2_ < 37 - 5) - { - if (!this.mergeItemStack(itemstack1, 37 - 5, 46 - 5, false)) - { - return null; - } - } - else if (p_82846_2_ >= 37 - 5 && p_82846_2_ < 46 - 5) - { - if (!this.mergeItemStack(itemstack1, 10 - 5, 37 - 5, false)) - { - return null; - } - } - else if (!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, false)) - { - return null; - } + slot.onSlotChange(itemstack1, itemstack); + } else if(p_82846_2_ >= 10 - 5 && p_82846_2_ < 37 - 5) { + if(!this.mergeItemStack(itemstack1, 37 - 5, 46 - 5, false)) { + return null; + } + } else if(p_82846_2_ >= 37 - 5 && p_82846_2_ < 46 - 5) { + if(!this.mergeItemStack(itemstack1, 10 - 5, 37 - 5, false)) { + return null; + } + } else if(!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, false)) { + return null; + } - if (itemstack1.stackSize == 0) - { - slot.putStack((ItemStack)null); - } - else - { - slot.onSlotChanged(); - } + if(itemstack1.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } - if (itemstack1.stackSize == itemstack.stackSize) - { - return null; - } + if(itemstack1.stackSize == itemstack.stackSize) { + return null; + } - slot.onPickupFromSlot(p_82846_1_, itemstack1); - } + slot.onPickupFromSlot(p_82846_1_, itemstack1); + } - return itemstack; - } + return itemstack; + } @Override public boolean canInteractWith(EntityPlayer player) { @@ -124,8 +108,7 @@ public class ContainerBook extends Container { } @Override - public boolean func_94530_a(ItemStack stack, Slot slot) { - return slot.inventory != this.craftResult && super.func_94530_a(stack, slot); - } - + public boolean func_94530_a(ItemStack stack, Slot slot) { + return slot.inventory != this.craftResult && super.func_94530_a(stack, slot); + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java b/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java new file mode 100644 index 000000000..cac140458 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java @@ -0,0 +1,96 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.recipes.LemegetonRecipes; +import com.hbm.items.ModItems; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCraftResult; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.inventory.SlotCrafting; +import net.minecraft.item.ItemStack; + +public class ContainerLemegeton extends Container { + + public InventoryCrafting craftMatrix = new InventoryCrafting(this, 1, 1); + public IInventory craftResult = new InventoryCraftResult(); + + public ContainerLemegeton(InventoryPlayer inventory) { + + this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 107, 35)); + this.addSlotToContainer(new Slot(this.craftMatrix, 0, 49, 35)); + + for(int l = 0; l < 3; ++l) { + for(int i1 = 0; i1 < 9; ++i1) { + this.addSlotToContainer(new Slot(inventory, i1 + l * 9 + 9, 8 + i1 * 18, 84 + l * 18)); + } + } + + for(int l = 0; l < 9; ++l) { + this.addSlotToContainer(new Slot(inventory, l, 8 + l * 18, 142)); + } + + this.onCraftMatrixChanged(this.craftMatrix); + } + + public void onCraftMatrixChanged(IInventory inventory) { + this.craftResult.setInventorySlotContents(0, LemegetonRecipes.getRecipe(this.craftMatrix.getStackInSlot(0))); + } + + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + + if(!player.worldObj.isRemote) { + ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(0); + if(itemstack != null) player.dropPlayerItemWithRandomChoice(itemstack, false); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int slotNo) { + ItemStack itemstack = null; + Slot slot = (Slot) this.inventorySlots.get(slotNo); + + if(slot != null && slot.getHasStack()) { + ItemStack itemstack1 = slot.getStack(); + itemstack = itemstack1.copy(); + + if(slotNo <= 1) { + if(!this.mergeItemStack(itemstack1, 2, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(itemstack1, itemstack); + } else if(!this.mergeItemStack(itemstack1, 1, 2, false)) { + return null; + } + + if(itemstack1.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + + if(itemstack1.stackSize == itemstack.stackSize) { + return null; + } + + slot.onPickupFromSlot(p_82846_1_, itemstack1); + } + + return itemstack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return player.inventory.hasItem(ModItems.book_of_); + } + + @Override + public boolean func_94530_a(ItemStack stack, Slot slot) { + return slot.inventory != this.craftResult && super.func_94530_a(stack, slot); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index 253dad133..ae7dbc1b1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -245,7 +245,7 @@ public class GUIAnvil extends GuiContainer { if(this.selection >= 0) { AnvilConstructionRecipe recipe = recipes.get(this.selection); - List list = recipeToList(recipe,playerInventory); + List list = recipeToList(recipe, playerInventory); int longest = 0; for(String s : list) { @@ -276,53 +276,51 @@ public class GUIAnvil extends GuiContainer { * @param recipe * @return */ - public List recipeToList(AnvilConstructionRecipe recipe,InventoryPlayer inventory) { + public List recipeToList(AnvilConstructionRecipe recipe, InventoryPlayer inventory) { List list = new ArrayList(); - + list.add(EnumChatFormatting.YELLOW + "Inputs:"); - + for(AStack stack : recipe.input) { - if(stack instanceof ComparableStack) { + if(stack instanceof ComparableStack) { ItemStack input = ((ComparableStack) stack).toStack(); boolean hasItem = false; - int amount =0; - for (int i = 0; i < inventory.mainInventory.length; i++) { + int amount = 0; + for(int i = 0; i < inventory.mainInventory.length; i++) { ItemStack stackItem = inventory.mainInventory[i]; - if(stackItem == null) - { + if(stackItem == null) { continue; } - if (stackItem.getItem() == input.getItem() && input.getItemDamage() == stackItem.getItemDamage()) { + if(stackItem.getItem() == input.getItem() && input.getItemDamage() == stackItem.getItemDamage()) { hasItem = true; - amount +=stackItem.stackSize; + amount += stackItem.stackSize; } } if(hasItem && amount >= stack.stacksize) { list.add(">" + input.stackSize + "x " + input.getDisplayName()); - }else { + } else { list.add(EnumChatFormatting.RED + ">" + input.stackSize + "x " + input.getDisplayName()); } } else if(stack instanceof OreDictStack) { OreDictStack input = (OreDictStack) stack; ArrayList ores = OreDictionary.getOres(input.name); - + if(ores.size() > 0) { - ItemStack inStack = ores.get((int) (Math.abs(System.currentTimeMillis() / 1000) % ores.size())); boolean hasItem = false; - int amount =0; - for (int i = 0; i < inventory.mainInventory.length; i++) { + int amount = 0; + for(int i = 0; i < inventory.mainInventory.length; i++) { ItemStack stackItem = inventory.mainInventory[i]; - if(stackItem == null) - { + if(stackItem == null) { continue; } - if (stackItem.getItem() == inStack.getItem() && inStack.getItemDamage() == stackItem.getItemDamage()) { + if(input.matchesRecipe(stackItem, true)) { hasItem = true; amount += stackItem.stackSize; } } - if (hasItem && amount >= stack.stacksize) { + ItemStack inStack = ores.get((int) (Math.abs(System.currentTimeMillis() / 1000) % ores.size())); + if(hasItem && amount >= stack.stacksize) { list.add(">" + input.stacksize + "x " + inStack.getDisplayName()); } else { list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + inStack.getDisplayName()); @@ -335,11 +333,11 @@ public class GUIAnvil extends GuiContainer { list.add(""); list.add(EnumChatFormatting.YELLOW + "Outputs:"); - + for(AnvilOutput stack : recipe.output) { - list.add(">" + stack.stack.stackSize + "x " + stack.stack.getDisplayName() + (stack.chance != 1F ? (" (" + (stack.chance * 100) + "%)" ) : "")); + list.add(">" + stack.stack.stackSize + "x " + stack.stack.getDisplayName() + (stack.chance != 1F ? (" (" + (stack.chance * 100) + "%)") : "")); } - + return list; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIBook.java b/src/main/java/com/hbm/inventory/gui/GUIBook.java index 298aba1bf..8952cef3d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBook.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBook.java @@ -16,6 +16,8 @@ public class GUIBook extends GuiContainer { public GUIBook(InventoryPlayer player) { super(new ContainerBook(player)); + this.xSize = 176; + this.ySize = 166; } protected void drawGuiContainerForegroundLayer(int mX, int mY) { @@ -25,7 +27,6 @@ public class GUIBook extends GuiContainer { } protected void drawGuiContainerBackgroundLayer(float inter, int mX, int mY) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(texture); int left = (this.width - this.xSize) / 2; diff --git a/src/main/java/com/hbm/inventory/gui/GUILemegeton.java b/src/main/java/com/hbm/inventory/gui/GUILemegeton.java new file mode 100644 index 000000000..bc6ec5961 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUILemegeton.java @@ -0,0 +1,40 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerLemegeton; +import com.hbm.lib.RefStrings; + +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 GUILemegeton extends GuiContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_lemegeton.png"); + + public GUILemegeton(InventoryPlayer player) { + super(new ContainerLemegeton(player)); + this.xSize = 176; + this.ySize = 166; + } + + protected void drawGuiContainerForegroundLayer(int mX, int mY) { + + Minecraft.getMinecraft().standardGalacticFontRenderer.drawString("Material Upgrade Conversion", 28, 6, 4210752); + Minecraft.getMinecraft().standardGalacticFontRenderer.drawString("Standard Inventory", 8, this.ySize - 96 + 2, 4210752); + } + + protected void drawGuiContainerBackgroundLayer(float inter, int mX, int mY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(texture); + int left = (this.width - this.xSize) / 2; + int top = (this.height - this.ySize) / 2; + + this.drawTexturedModalRect(left, top, 0, 0, this.xSize, this.ySize); + + if(this.inventorySlots.getSlot(0).getHasStack()) + this.drawTexturedModalRect(left + 7, top + 22, 0, 166, 162, 42); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index f66125e0b..5d725518c 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -277,8 +277,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800); makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600); makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2) }, 400); + makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); + makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); diff --git a/src/main/java/com/hbm/inventory/recipes/LemegetonRecipes.java b/src/main/java/com/hbm/inventory/recipes/LemegetonRecipes.java new file mode 100644 index 000000000..bae7c2f25 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/LemegetonRecipes.java @@ -0,0 +1,78 @@ +package com.hbm.inventory.recipes; + +import java.util.HashMap; +import java.util.Map.Entry; + +import static com.hbm.inventory.OreDictManager.*; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.items.ModItems; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class LemegetonRecipes { + + public static HashMap recipes = new HashMap(); + + public static void register() { + recipes.put(new OreDictStack(IRON.ingot()), new ItemStack(ModItems.ingot_steel)); + recipes.put(new OreDictStack(STEEL.ingot()), new ItemStack(ModItems.ingot_dura_steel)); + recipes.put(new OreDictStack(DURA.ingot()), new ItemStack(ModItems.ingot_tcalloy)); + recipes.put(new OreDictStack(TCALLOY.ingot()), new ItemStack(ModItems.ingot_combine_steel)); + recipes.put(new OreDictStack(CMB.ingot()), new ItemStack(ModItems.ingot_dineutronium)); + + recipes.put(new OreDictStack(TI.ingot()), new ItemStack(ModItems.ingot_saturnite)); + recipes.put(new OreDictStack(BIGMT.ingot()), new ItemStack(ModItems.ingot_starmetal)); + + recipes.put(new OreDictStack(CU.ingot()), new ItemStack(ModItems.ingot_red_copper)); + recipes.put(new OreDictStack(MINGRADE.ingot()), new ItemStack(ModItems.ingot_advanced_alloy)); + recipes.put(new OreDictStack(ALLOY.ingot()), new ItemStack(ModItems.ingot_desh)); + + recipes.put(new OreDictStack(PB.ingot()), new ItemStack(Items.gold_ingot)); + recipes.put(new OreDictStack(GOLD.ingot()), new ItemStack(ModItems.ingot_bismuth)); + recipes.put(new OreDictStack(BI.ingot()), new ItemStack(ModItems.ingot_osmiridium)); + + recipes.put(new OreDictStack(TH232.ingot()), new ItemStack(ModItems.ingot_uranium)); + recipes.put(new OreDictStack(U.ingot()), new ItemStack(ModItems.ingot_u238)); + recipes.put(new OreDictStack(U238.ingot()), new ItemStack(ModItems.ingot_u235)); + recipes.put(new OreDictStack(U235.ingot()), new ItemStack(ModItems.ingot_plutonium)); + recipes.put(new OreDictStack(PU.ingot()), new ItemStack(ModItems.ingot_pu238)); + recipes.put(new OreDictStack(PU238.ingot()), new ItemStack(ModItems.ingot_pu239)); + recipes.put(new OreDictStack(PU239.ingot()), new ItemStack(ModItems.ingot_pu240)); + recipes.put(new OreDictStack(PU240.ingot()), new ItemStack(ModItems.ingot_pu241)); + recipes.put(new OreDictStack(PU241.ingot()), new ItemStack(ModItems.ingot_am241)); + recipes.put(new OreDictStack(AM241.ingot()), new ItemStack(ModItems.ingot_am242)); + + recipes.put(new OreDictStack(RA226.ingot()), new ItemStack(ModItems.ingot_polonium)); + recipes.put(new OreDictStack(PO210.ingot()), new ItemStack(ModItems.ingot_technetium)); + + recipes.put(new OreDictStack(POLYMER.ingot()), new ItemStack(ModItems.ingot_pc)); + recipes.put(new OreDictStack(BAKELITE.ingot()), new ItemStack(ModItems.ingot_pvc)); + recipes.put(new OreDictStack(LATEX.ingot()), new ItemStack(ModItems.ingot_rubber)); + + recipes.put(new OreDictStack(COAL.gem()), new ItemStack(ModItems.ingot_graphite)); + recipes.put(new OreDictStack(GRAPHITE.ingot()), new ItemStack(Items.diamond)); + recipes.put(new OreDictStack(DIAMOND.gem()), new ItemStack(ModItems.ingot_cft)); + + recipes.put(new OreDictStack(F.dust()), new ItemStack(ModItems.gem_sodalite)); + recipes.put(new OreDictStack(SODALITE.gem()), new ItemStack(ModItems.gem_volcanic)); + recipes.put(new OreDictStack(VOLCANIC.gem()), new ItemStack(ModItems.gem_rad)); + recipes.put(new ComparableStack(ModItems.gem_rad), new ItemStack(ModItems.gem_alexandrite)); + + recipes.put(new OreDictStack(KEY_SAND), new ItemStack(ModItems.ingot_fiberglass)); + recipes.put(new OreDictStack(FIBER.ingot()), new ItemStack(ModItems.ingot_asbestos)); + } + + public static ItemStack getRecipe(ItemStack ingredient) { + + for(Entry entry : recipes.entrySet()) { + if(entry.getKey().matchesRecipe(ingredient, true)) { + return entry.getValue().copy(); + } + } + + return null; + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 99e574056..88b5b9207 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -16,6 +16,7 @@ import com.hbm.interfaces.Untested; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.main.MainRegistry; @@ -205,6 +206,8 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(Items.apple, new ItemStack(Items.sugar, 1)); ShredderRecipes.setRecipe(Items.carrot, new ItemStack(Items.sugar, 1)); ShredderRecipes.setRecipe(ModItems.can_empty, new ItemStack(ModItems.powder_aluminium, 2)); + ShredderRecipes.setRecipe(ModBlocks.machine_well, new ItemStack(ModItems.powder_steel, 32)); + ShredderRecipes.setRecipe(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), new ItemStack(ModItems.powder_desh_mix)); List logs = OreDictionary.getOres("logWood"); List planks = OreDictionary.getOres("plankWood"); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 86921434e..3a0c76a39 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -13,6 +13,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.items.ItemAmmoEnums.*; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.food.ItemFlask.EnumInfusion; @@ -703,6 +704,20 @@ public class AnvilRecipes { public static void registerConstructionRecycling() { + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE)), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.fragment_boron)), + new AnvilOutput(new ItemStack(ModItems.fragment_boron), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fragment_lanthanium), 0.1F), + new AnvilOutput(new ItemStack(ModItems.fragment_cobalt)), + new AnvilOutput(new ItemStack(ModItems.fragment_cobalt), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fragment_cerium), 0.1F), + new AnvilOutput(new ItemStack(ModItems.fragment_neodymium), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fragment_niobium), 0.5F), + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.heater_firebox), new AnvilOutput[] { diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index b4d48e009..afe1a97e0 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -50,6 +50,10 @@ public class ItemEnums { MUSTARDWILLOW } + public static enum EnumChunkType { + RARE + } + public static enum EnumAchievementType { GOFISH, ACID, diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d2ad9d3b1..c30370ada 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -552,6 +552,7 @@ public class ModItems { public static Item fragment_boron; public static Item fragment_meteorite; public static Item fragment_coltan; + public static Item chunk_ore; public static Item biomass; public static Item biomass_compressed; @@ -2384,6 +2385,7 @@ public class ModItems { public static Item book_secret; public static Item book_of_; public static Item page_of_; + public static Item book_lemegeton; public static Item burnt_bark; public static Item smoke1; @@ -2983,6 +2985,7 @@ public class ModItems { fragment_boron = new Item().setUnlocalizedName("fragment_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_boron"); fragment_meteorite = new Item().setUnlocalizedName("fragment_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_meteorite"); fragment_coltan = new Item().setUnlocalizedName("fragment_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_coltan"); + chunk_ore = new ItemEnumMulti(EnumChunkType.class, true, true).setUnlocalizedName("chunk_ore").setCreativeTab(MainRegistry.partsTab); biomass = new Item().setUnlocalizedName("biomass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass"); biomass_compressed = new Item().setUnlocalizedName("biomass_compressed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass_compressed"); @@ -5458,6 +5461,7 @@ public class ModItems { book_secret = new ItemCustomLore().setUnlocalizedName("book_secret").setCreativeTab(MainRegistry.polaroidID == 11 ? MainRegistry.consumableTab : null).setTextureName(RefStrings.MODID + ":book_secret"); book_of_ = new ItemBook().setUnlocalizedName("book_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_of_"); page_of_ = new ItemEnumMulti(ItemEnums.EnumPages.class, true, false).setUnlocalizedName("page_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":page_of_"); + book_lemegeton = new ItemBookLemegeton().setUnlocalizedName("book_lemegeton").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_lemegeton"); burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1"); @@ -5970,6 +5974,7 @@ public class ModItems { GameRegistry.registerItem(fragment_boron, fragment_boron.getUnlocalizedName()); GameRegistry.registerItem(fragment_meteorite, fragment_meteorite.getUnlocalizedName()); GameRegistry.registerItem(fragment_coltan, fragment_coltan.getUnlocalizedName()); + GameRegistry.registerItem(chunk_ore, chunk_ore.getUnlocalizedName()); //Things that look like rotten flesh but aren't GameRegistry.registerItem(biomass, biomass.getUnlocalizedName()); @@ -8055,6 +8060,7 @@ public class ModItems { GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); GameRegistry.registerItem(book_of_, book_of_.getUnlocalizedName()); GameRegistry.registerItem(page_of_, page_of_.getUnlocalizedName()); + GameRegistry.registerItem(book_lemegeton, book_lemegeton.getUnlocalizedName()); GameRegistry.registerItem(burnt_bark, burnt_bark.getUnlocalizedName()); //Kits diff --git a/src/main/java/com/hbm/items/special/ItemBook.java b/src/main/java/com/hbm/items/special/ItemBook.java index 5759ea383..56995b012 100644 --- a/src/main/java/com/hbm/items/special/ItemBook.java +++ b/src/main/java/com/hbm/items/special/ItemBook.java @@ -43,37 +43,4 @@ public class ItemBook extends Item implements IGUIProvider { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBook(player.inventory); } - - /*@Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(world.isRemote) - return stack; - - if(!player.isSneaking()) { - List list = world.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox(player.posX - 10, player.posY - 2, player.posZ - 10, player.posX + 10, player.posY + 2, player.posZ + 10)); - - for(Object o : list) { - - if(o instanceof EntityLivingBase) { - EntityLivingBase entity = (EntityLivingBase)o; - - entity.addPotionEffect(new PotionEffect(HbmPotion.telekinesis.id, 20, 0)); - } - } - } else { - if(player.inventory.hasItemStack(new ItemStack(ModItems.ingot_u238m2, 1, 1)) && - player.inventory.hasItemStack(new ItemStack(ModItems.ingot_u238m2, 1, 2)) && - player.inventory.hasItemStack(new ItemStack(ModItems.ingot_u238m2, 1, 3))) { - player.inventory.clearInventory(ModItems.ingot_u238m2, 1); - player.inventory.clearInventory(ModItems.ingot_u238m2, 2); - player.inventory.clearInventory(ModItems.ingot_u238m2, 3); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_u238m2)); - player.inventoryContainer.detectAndSendChanges(); - } - } - - return stack; - }*/ - } diff --git a/src/main/java/com/hbm/items/tool/ItemBookLemegeton.java b/src/main/java/com/hbm/items/tool/ItemBookLemegeton.java new file mode 100644 index 000000000..90bcdd20c --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemBookLemegeton.java @@ -0,0 +1,35 @@ +package com.hbm.items.tool; + +import com.hbm.inventory.container.ContainerLemegeton; +import com.hbm.inventory.gui.GUILemegeton; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemBookLemegeton extends Item implements IGUIProvider { + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(!world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerLemegeton(player.inventory); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUILemegeton(player.inventory); + } +} diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6ed8c16ab..0e53b69ab 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -843,6 +843,7 @@ public class MainRegistry { TileEntityNukeFurnace.registerFuels(); AssemblerRecipes.loadRecipes(); MagicRecipes.register(); + LemegetonRecipes.register(); SILEXRecipes.register(); AnvilRecipes.register(); RefineryRecipes.registerRefinery(); diff --git a/src/main/java/com/hbm/world/feature/DeepLayer.java b/src/main/java/com/hbm/world/feature/DeepLayer.java deleted file mode 100644 index 18ddb5d57..000000000 --- a/src/main/java/com/hbm/world/feature/DeepLayer.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.world.feature; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.gen.NoiseGeneratorPerlin; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; - -public class DeepLayer { - - NoiseGeneratorPerlin noise; - - @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { - - World world = event.world; - if(world.provider == null || world.provider.dimensionId != 0) return; - - if(this.noise == null) { - this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed() + 19), 4); - } - - int cX = event.chunkX; - int cZ = event.chunkZ; - - double scale = 0.01D; - int threshold = 2; - - for(int x = cX + 8; x < cX + 24; x++) { - for(int z = cZ + 8; z < cZ + 24; z++) { - - double n = noise.func_151601_a(x * scale, z * scale); - - if(n > threshold) { - int range = (int)((n - threshold) * 8); - - if(range > 24) - range = 48 - range; - - if(range < 0) - continue; - - for(int y = 1; y <= range; y++) { - - Block target = world.getBlock(x, y, z); - - if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { - - boolean lava = false; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - Block neighbor = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - if(neighbor.getMaterial() == Material.lava) { - lava = true; - break; - } - } - - if(lava || world.rand.nextInt(10) == 0) { - world.setBlock(x, y, z, ModBlocks.stone_deep_cobble, 1, 2); - } else if(world.rand.nextInt(10) == 0 && world.getBlock(x, y + 1, z).getMaterial() == Material.air) { - world.setBlock(x, y, z, ModBlocks.stone_deep_cobble, 2, 2); - } else { - world.setBlock(x, y, z, ModBlocks.stone_deep_cobble, 0, 2); - } - } - } - } - } - } - } -} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 3a7ac08cf..a925fdc1e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1301,6 +1301,7 @@ item.bomb_caller.name=Luftschlag Zielmarker item.bomb_waffle.name=Massenvernichtungswaffel item.guide_book.name=Handbuch item.book_of_.name=Das Buch der Güterwagons +item.book_lemegeton.name=Lemegeton item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=Leere Glasflasche item.bottle2_fritz.name=Fritz-Kola @@ -1472,6 +1473,7 @@ item.chopper_head.name=Jagdschrauber Cockpit item.chopper_tail.name=Jagdschrauber Heck item.chopper_torso.name=Jagdschrauber Rumpf item.chopper_wing.name=Jagdschrauber Seitentragfläche +item.chunk_ore.rare.name=Seltenerdenerz-Brocken item.cigarette.name=FFI-Markenzigarette item.cinnebar.name=Zinnober item.circuit_aluminium.name=Einfacher Schaltkreis diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 1ca85dd75..27fa7b020 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1969,6 +1969,7 @@ item.bomb_caller.name=Airstrike Designator item.bomb_waffle.name=Waffle of Mass Destruction item.book_guide.name=Guide Book item.book_of_.name=The Book of Boxcars +item.book_lemegeton.name=Lemegeton item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=Empty Bottle item.bottle2_fritz.name=Fritz Cola @@ -2169,6 +2170,7 @@ item.chopper_head.name=Hunter Chopper Cockpit item.chopper_tail.name=Hunter Chopper Tail item.chopper_torso.name=Hunter Chopper Body item.chopper_wing.name=Hunter Chopper Wing +item.chunk_ore.rare.name=Rare Earth Ore Chunk item.cigarette.name=FFI-Brand Cigarette item.cinnebar.name=Cinnabar item.circuit_aluminium.name=Basic Circuit diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_lemegeton.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_lemegeton.png new file mode 100644 index 0000000000000000000000000000000000000000..ffdd5c0ee2c36e9a5261c190ed536ed16c580255 GIT binary patch literal 3013 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 Rl9oU6+1ogst~lv=@83vdQxX6G literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/book_lemegeton.png b/src/main/resources/assets/hbm/textures/items/book_lemegeton.png new file mode 100644 index 0000000000000000000000000000000000000000..4cb0fca9af25f8c948c1fc37c82f7fc3d99ee74d GIT binary patch literal 982 zcmV;{11bE8P)n?UJuyG&5KCn|r@|N5Fp_M$^L8)m2`O zr_(6_zVEBC4&V2;_SNC$=4Q*ERkyL<@8x#)|lCHpBBg03M=fYwtx6Y|RNF0BR%GNFYfP6-L7_a2$upWP;~;%5hj@ zSFTlwxUS1$vDlwL)p#t0Vq23C>c@sY3~5)|vDeW%l@eSfQNvbx#x zJnlv#b?OkXtTlJjG%*ZgV?BC&RL;w^?M*;Onx<+zEJ7OsccT#xQG{ulY8+Pf0ZM#L zm9aAgz{bm!gCgI0WQIXNsA=Ty+gmPz0Mj%N6JZ@b38>RV0BGfyf>$<>Z?kOCH zn%IUxK%@!vqhoPjVRA^mdhn^9CLPd#>dM`xV;6|O4olwjf^8D&(F_qw&6ws zWeN<#Aj>j5&to!~aDINiF29=V_`25vpzXS(X}Z&SBY}+#mZeC{=X3ReF$@CS!jVED z*p0az*m)TVA(W7^EK^@Ou*z>ahLzy-=Mr^u>VQoP)9JMFGwN%iu?l?O=jrKbYd%R5 zRVC#(NfNbQ&R1;?B2YU2>(4(}E|(l1ze9?QON`dVhVYXUK zr&Eqx7ss}F`TT+ul3#!Oo$+|QAAu6zzkkoPU~k(tw&SSYDaDG!=a&~wzd1(=iO4cc z%c9#^slR1ebh{l|X0y~933NIgK8^puv2D`ymE|(Swk=wwg%lY8>3q&f_k{7MF|OMt zO=A(#u+}|C;GlP^Wfiu7o<&-G=|;U*SvHi*)+AMgRZ+07*qoM6N<$ Ef@sdt`Tzg` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chunk_base.png b/src/main/resources/assets/hbm/textures/items/chunk_base.png new file mode 100644 index 0000000000000000000000000000000000000000..d7e0ed298018be8422a24cd67e46b82a159819c4 GIT binary patch literal 309 zcmV-50m}Y~P)UBD4`1gu_8#KmvfO(z)D9bYX2r$O@d7dQ@e2{Za=DMzH`?R4Vj+ zpS4UT@~y$8ZR@;cF`G_D01k6Goi7&YOUaAx;|RgClsqfN`s!*V_73jv?dgsXluIQ5 zHn+C)z2i{3xCqT3d%duCS}g#g09tFEOeQf+69CtB0Wb|C>>s<`5Wa6VsaX~PF@T+H z78L}{&Cdf+JwNA3O3ntN?f|}RH1MRPRj-F;;R>Zfft5@KV|*ML1SC=^X3}YTo=3S_ zWp{geJ0)ABV}QDda#TE-WtUQNy5^&vSBc@ayFMUA+Q#ZN--WJoE_w00007XC literal 0 HcmV?d00001 From 24d763d75a886e8e9897a9eb85173ba53df5112a Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 24 Jan 2024 15:27:04 +0100 Subject: [PATCH 118/376] food rebalance, MRE --- changelog | 2 + .../container/ContainerLemegeton.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 28 +++++----- .../java/com/hbm/items/food/ItemConserve.java | 52 +++++++++--------- .../java/com/hbm/items/food/ItemLemon.java | 9 --- .../java/com/hbm/main/CraftingManager.java | 3 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- .../hbm/textures/items/definitelyfood.png | Bin 271 -> 329 bytes 9 files changed, 47 insertions(+), 53 deletions(-) diff --git a/changelog b/changelog index 126875cb3..2fdc7711a 100644 --- a/changelog +++ b/changelog @@ -25,6 +25,8 @@ * Cerium and lanthanium, due to being useless, only have a 10% chance of producing a framgent * Boron and cobalt each produce a guaranteed fragment, as well as an additional one with a 50% chance * Neodymium and niobium both yield a shard 50% of the time +* Rebalanced all the food items so their saturation values aren't ridiculously high (turns out - the number represents a *multiplier* for the hunger value and not a flat number) +* Dirt MREs are now just regular low-quality MREs made from latex packaging and some easily obtainable earlygame ingredients - wheat, rotten flesh and saplings (makes 4) ## Fixed * Fixed basalt ores dropping their items with invalid metadata diff --git a/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java b/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java index cac140458..ec6aeb1e4 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java @@ -86,7 +86,7 @@ public class ContainerLemegeton extends Container { @Override public boolean canInteractWith(EntityPlayer player) { - return player.inventory.hasItem(ModItems.book_of_); + return player.inventory.hasItem(ModItems.book_lemegeton); } @Override diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c30370ada..873b76d31 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4333,30 +4333,30 @@ public class ModItems { glowing_stew = new ItemSoup(6).setUnlocalizedName("glowing_stew").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glowing_stew"); balefire_scrambled = new ItemSoup(6).setUnlocalizedName("balefire_scrambled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_scrambled"); balefire_and_ham = new ItemSoup(6).setUnlocalizedName("balefire_and_ham").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_and_ham"); - lemon = new ItemLemon(3, 5, false).setUnlocalizedName("lemon").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":lemon"); - definitelyfood = new ItemLemon(2, 5, false).setUnlocalizedName("definitelyfood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":definitelyfood"); + lemon = new ItemLemon(3, 0.5F, false).setUnlocalizedName("lemon").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":lemon"); + definitelyfood = new ItemLemon(3, 0.5F, false).setUnlocalizedName("definitelyfood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":definitelyfood"); med_ipecac = new ItemLemon(0, 0, false).setUnlocalizedName("med_ipecac").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ipecac_new"); med_ptsd = new ItemLemon(0, 0, false).setUnlocalizedName("med_ptsd").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ptsd_new"); med_schizophrenia = new ItemLemon(0, 0, false).setUnlocalizedName("med_schizophrenia").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_schizophrenia_new"); - loops = new ItemLemon(4, 5, false).setUnlocalizedName("loops").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loops"); - loop_stew = new ItemLemon(10, 10, false).setUnlocalizedName("loop_stew").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loop_stew"); - spongebob_macaroni = new ItemLemon(5, 5, false).setUnlocalizedName("spongebob_macaroni").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spongebob_macaroni"); - fooditem = new ItemLemon(2, 5, false).setUnlocalizedName("fooditem").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fooditem"); - twinkie = new ItemLemon(3, 5, false).setUnlocalizedName("twinkie").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":twinkie"); - static_sandwich = new ItemLemon(6, 5, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich"); - pudding = new ItemLemon(6, 15, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding"); + loops = new ItemLemon(4, 0.25F, false).setUnlocalizedName("loops").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loops"); + loop_stew = new ItemLemon(10, 0.5F, false).setUnlocalizedName("loop_stew").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loop_stew"); + spongebob_macaroni = new ItemLemon(5, 1F, false).setUnlocalizedName("spongebob_macaroni").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spongebob_macaroni"); + fooditem = new ItemLemon(2, 5F, false).setUnlocalizedName("fooditem").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fooditem"); + twinkie = new ItemLemon(3, 0.25F, false).setUnlocalizedName("twinkie").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":twinkie"); + static_sandwich = new ItemLemon(6, 1F, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich"); + pudding = new ItemLemon(6, 1F, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding"); canteen_13 = new ItemCanteen(1 * 60).setUnlocalizedName("canteen_13").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_13"); canteen_vodka = new ItemCanteen(3 * 60).setUnlocalizedName("canteen_vodka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_vodka"); canteen_fab = new ItemCanteen(2 * 60).setUnlocalizedName("canteen_fab").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_fab"); pancake = new ItemPancake(20, 20, false).setUnlocalizedName("pancake").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pancake"); - nugget = new ItemLemon(200, 200, false).setUnlocalizedName("nugget").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nugget"); + nugget = new ItemLemon(200, 1F, false).setUnlocalizedName("nugget").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nugget"); peas = new ItemPeas().setUnlocalizedName("peas").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":peas"); marshmallow = new ItemMarshmallow().setUnlocalizedName("marshmallow").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":marshmallow"); - cheese = new ItemLemon(5, 10, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese"); - quesadilla = new ItemLemon(8, 10, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla"); + cheese = new ItemLemon(5, 0.75F, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese"); + quesadilla = new ItemLemon(8, 1F, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla"); mucho_mango = new ItemMuchoMango(10).setUnlocalizedName("mucho_mango").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mucho_mango"); - glyphid_meat = new ItemLemon(3, 3, true).setUnlocalizedName("glyphid_meat").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat"); - glyphid_meat_grilled = new ItemLemon(8, 8, true).setPotionEffect(Potion.damageBoost.id, 180, 1, 1F).setUnlocalizedName("glyphid_meat_grilled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat_grilled"); + glyphid_meat = new ItemLemon(3, 0.5F, true).setUnlocalizedName("glyphid_meat").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat"); + glyphid_meat_grilled = new ItemLemon(8, 0.75F, true).setPotionEffect(Potion.damageBoost.id, 180, 1, 1F).setUnlocalizedName("glyphid_meat_grilled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat_grilled"); egg_glyphid = new Item().setUnlocalizedName("egg_glyphid").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":egg_glyphid"); defuser = new ItemTooling(ToolType.DEFUSER, 100).setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser"); diff --git a/src/main/java/com/hbm/items/food/ItemConserve.java b/src/main/java/com/hbm/items/food/ItemConserve.java index 11b2c9bb7..9b45540e6 100644 --- a/src/main/java/com/hbm/items/food/ItemConserve.java +++ b/src/main/java/com/hbm/items/food/ItemConserve.java @@ -105,33 +105,33 @@ public class ItemConserve extends ItemEnumMulti { } public static enum EnumFoodType { - BEEF(8, 5F), - TUNA(4, 5F), - MYSTERY(6, 5F), - PASHTET(4, 5F), - CHEESE(3, 5F), + BEEF(8, 0.75F), + TUNA(4, 0.75F), + MYSTERY(6, 0.5F), + PASHTET(4, 0.5F), + CHEESE(3, 1F), JIZZ(15, 5F), // :3 - MILK(5, 5F), - ASS(6, 5F), // :3 - PIZZA(8, 5F), - TUBE(2, 5F), - TOMATO(4, 5F), - ASBESTOS(7, 5F), - BHOLE(10, 5F), - HOTDOGS(5, 5F), - LEFTOVERS(1, 5F), - YOGURT(3, 5F), - STEW(5, 5F), - CHINESE(6, 5F), - OIL(3, 5F), - FIST(6, 5F), - SPAM(8, 5F), - FRIED(10, 5F), - NAPALM(6, 5F), - DIESEL(6, 5F), - KEROSENE(6, 4F), - RECURSION(1, 5F), - BARK(2, 5F); + MILK(5, 0.25F), + ASS(6, 0.75F), // :3 + PIZZA(8, 075F), + TUBE(2, 0.25F), + TOMATO(4, 0.5F), + ASBESTOS(7, 1F), + BHOLE(10, 1F), + HOTDOGS(5, 0.75F), + LEFTOVERS(1, 0.1F), + YOGURT(3, 0.5F), + STEW(5, 0.5F), + CHINESE(6, 0.1F), + OIL(3, 1F), + FIST(6, 0.75F), + SPAM(8, 1F), + FRIED(10, 0.75F), + NAPALM(6, 1F), + DIESEL(6, 1F), + KEROSENE(6, 1F), + RECURSION(1, 1F), + BARK(2, 1F); protected int foodLevel; protected float saturation; diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index 25bb74a9e..17499655c 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -33,15 +33,6 @@ public class ItemLemon extends ItemFood { list.add("Eh, good enough."); } - if(this == ModItems.definitelyfood) { - list.add("A'right, I got sick and tired of"); - list.add("having to go out, kill things just"); - list.add("to get food and not die, so here is "); - list.add("my absolutely genius solution:"); - list.add(""); - list.add("Have some edible dirt."); - } - if(this == ModItems.med_ipecac) { list.add("Bitter juice that will cause your stomach"); list.add("to forcefully eject its contents."); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 73d321015..d62c493c2 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -223,7 +223,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.shimmer_handle, 1), new Object[] { "GP", "GP", "GP", 'G', GOLD.plate(), 'P', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.shimmer_sledge, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_head }); addRecipeAuto(new ItemStack(ModItems.shimmer_axe, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_axe_head }); - addRecipeAuto(new ItemStack(ModItems.definitelyfood, 1), new Object[] { "DDD", "SDS", "DDD", 'D', Blocks.dirt, 'S', STEEL.plate() }); + addShapelessAuto(new ItemStack(ModItems.definitelyfood, 4), new Object[] { ANY_RUBBER.ingot(), Items.wheat, Items.rotten_flesh, "treeSapling" }); + addShapelessAuto(new ItemStack(ModItems.definitelyfood, 4), new Object[] { ANY_RUBBER.ingot(), Items.wheat, Items.rotten_flesh, Items.wheat_seeds, Items.wheat_seeds, Items.wheat_seeds }); addRecipeAuto(new ItemStack(ModItems.turbine_tungsten, 1), new Object[] { "BBB", "BSB", "BBB", 'B', ModItems.blade_tungsten, 'S', DURA.ingot() }); addRecipeAuto(new ItemStack(ModItems.ring_starmetal, 1), new Object[] { " S ", "S S", " S ", 'S', STAR.ingot() }); addRecipeAuto(new ItemStack(ModItems.flywheel_beryllium, 1), new Object[] { "IBI", "BTB", "IBI", 'B', BE.block(), 'I', IRON.plateCast(), 'T', ModItems.bolt_compound }); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a925fdc1e..bc8b89113 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1676,7 +1676,7 @@ item.debris_fuel.name=RBMK-Kernbrennstoffbrocken item.debris_graphite.name=Heißer Graphitbrocken item.debris_metal.name=Gebrochene Metallleiste item.debris_shrapnel.name=Wartungssteg-Schrapnell -item.definitelyfood.name=GarantiertKeinDreck-Marken Feldration +item.definitelyfood.name=Feldration item.defuser.name=High-Tech Bombenentschärfungsgerät item.defuser_gold.name=Goldener Seitenschneider item.demon_core_closed.name=Bedeckter Dämonenkern diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 27fa7b020..08cd0042d 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2380,7 +2380,7 @@ item.debris_fuel.name=RBMK Fuel Chunk item.debris_graphite.name=Hot Graphite Chunk item.debris_metal.name=Broken Metal Bar item.debris_shrapnel.name=Walkway Shrapnel -item.definitelyfood.name=TotallyNotDirt-Brand MRE +item.definitelyfood.name=MRE item.defuser.name=High-Tech Bomb Defusing Device item.defuser_gold.name=Golden Wire Cutter item.demon_core_closed.name=Closed Demon Core diff --git a/src/main/resources/assets/hbm/textures/items/definitelyfood.png b/src/main/resources/assets/hbm/textures/items/definitelyfood.png index 615a461c4c18eb7aa4432d9a72511fe20c100be5..601e4b63de42221535d02be2b7a6dc8a255f3d75 100644 GIT binary patch delta 287 zcmV+)0pR|R0?7i9Gk*a9Nklwe;zGE24_drZw4=}Zdw3sBl!Iu zqe+0@?^#n>RTO1u-%4o!CeN={vjI_(l4dzkl75+sV(CY%3x6A$X1UeZ4Dnov6b_y% zxxIg6IG*CUlHquY=(M?ecw)UP=!y}_oj&oh)N2&05} zo-H-7D~Ru8&y}1X`zWP3J>0d%lY?!`7aKI*!0Zd4S8f3`Hwb1SQaA*&ur{!Y#sGubjW{YJ5m4u002ovPDHLkV1ixTgM9!1 delta 228 zcmV!YTtBcu620eBfo(Ww`$!Bh;X z7^|0PVYWU#>f9^6KiOU5c*lGj6NC{42*QXUj2xf?P$>H2D_vw6odEE1* Date: Thu, 25 Jan 2024 15:48:24 +0100 Subject: [PATCH 119/376] small tweaks, radar screen fix --- changelog | 6 ++++-- src/main/java/com/hbm/blocks/generic/BlockOre.java | 3 --- .../java/com/hbm/inventory/recipes/AssemblerRecipes.java | 2 +- .../hbm/tileentity/machine/TileEntityMachineRadarNT.java | 6 +++++- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/changelog b/changelog index 2fdc7711a..1a0ac55f7 100644 --- a/changelog +++ b/changelog @@ -20,15 +20,17 @@ * Rare earth ore, instead of detonating into a million fragments that are annoying to process, clog inventories and just cause everyone to not mine that ore in earlygame, will now drop a chunk of rare earth ore * Rare earth chunks can be shredded directly into one unit of desh blend * For efficiencymaxxers, silk-touching rare earth still works as expected, yielding two units when shredded - * The luck enchantment should work as expected, dropping multiple chunks. Yay! + * The fortune enchantment should work as expected, dropping multiple chunks. Yay! * To get things that can be useful in small amounts in earlygame like boron and cobalt (boron for Atlas and cobalt for tools), the rare earth chunk can be hammered down into fragments on a steel anvil - * Cerium and lanthanium, due to being useless, only have a 10% chance of producing a framgent + * Cerium and lanthanium, due to being useless, only have a 10% chance of producing a fragment * Boron and cobalt each produce a guaranteed fragment, as well as an additional one with a 50% chance * Neodymium and niobium both yield a shard 50% of the time * Rebalanced all the food items so their saturation values aren't ridiculously high (turns out - the number represents a *multiplier* for the hunger value and not a flat number) * Dirt MREs are now just regular low-quality MREs made from latex packaging and some easily obtainable earlygame ingredients - wheat, rotten flesh and saplings (makes 4) +* The recipe for the chemical plant has been slightly simplified (again) ## Fixed * Fixed basalt ores dropping their items with invalid metadata * Fixed creative infinite fluid tanks not being able to fill fluid gauges at >0PU * Fixed an issue where repeatedly opening and closing certain doors would cause their sound loop to get stuck running forever +* Fixed radar screens behaving weirdly when out of then intended range. The max interaction range for radars is now infinite, and radars will send a second information packet to players near connected radars diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index fef0e1b08..6a7a4497b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -211,9 +211,6 @@ public class BlockOre extends Block { if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur || this == ModBlocks.basalt_sulfur) { return 2 + rand.nextInt(3); } - if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) { - return 4 + rand.nextInt(8); - } if(this == ModBlocks.block_meteor_broken) { return 1 + rand.nextInt(3); } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 5d725518c..a0831faa8 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -283,7 +283,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); - makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index f43773020..adf805493 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -17,6 +17,8 @@ import com.hbm.items.ModItems; import com.hbm.items.tool.ItemCoordinateBase; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.packet.BufPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteHorizons; @@ -35,6 +37,7 @@ import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.IRadarDetectableNT.RadarScanParams; import api.hbm.entity.RadarEntry; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -205,6 +208,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I screen.refZ = zCoord; screen.range = this.getRange(); screen.linked = true; + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(pos.getX(), pos.getY(), pos.getZ(), this), new TargetPoint(this.worldObj.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), 25)); } } } @@ -512,7 +516,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { return false; } else { - return player.getDistance(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + return true; } } From 174c7271a977696782be8840f6751109ee6537f4 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 26 Jan 2024 13:37:16 +0100 Subject: [PATCH 120/376] shit i really want in my survival world --- changelog | 13 + src/main/java/com/hbm/blocks/ModBlocks.java | 24 +- .../com/hbm/blocks/generic/BlockCluster.java | 1 - .../hbm/blocks/generic/BlockDoorGeneric.java | 1 - .../java/com/hbm/blocks/generic/BlockOre.java | 10 +- .../com/hbm/blocks/generic/BlockOutgas.java | 3 +- .../blocks/machine/MachineBrickFurnace.java | 172 +++++++++++++ .../com/hbm/blocks/network/CraneInserter.java | 14 +- .../blocks/rail/BlockRailWaypointSystem.java | 5 - .../java/com/hbm/crafting/ToolRecipes.java | 1 + .../hbm/entity/projectile/EntityRubble.java | 2 - .../com/hbm/inventory/OreDictManager.java | 8 +- .../container/ContainerFurnaceBrick.java | 78 ++++++ .../hbm/inventory/gui/GUIFurnaceBrick.java | 44 ++++ src/main/java/com/hbm/items/ModItems.java | 6 + .../java/com/hbm/items/tool/ItemSatRelay.java | 10 - .../java/com/hbm/main/CraftingManager.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 4 + .../java/com/hbm/packet/AuxButtonPacket.java | 2 - .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityFurnaceBrick.java | 232 ++++++++++++++++++ .../machine/TileEntityFurnaceIron.java | 4 +- .../machine/TileEntityMachineExcavator.java | 3 +- .../machine/TileEntityMachineWoodBurner.java | 1 - .../network/TileEntityCraneGrabber.java | 4 +- .../network/TileEntityCraneInserter.java | 4 +- src/main/java/com/hbm/util/InventoryUtil.java | 11 + src/main/java/com/hbm/util/ItemStackUtil.java | 37 +++ src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../blocks/machine_furnace_brick_bottom.png | Bin 0 -> 405 bytes .../machine_furnace_brick_front_off.png | Bin 0 -> 614 bytes .../blocks/machine_furnace_brick_front_on.png | Bin 0 -> 649 bytes .../blocks/machine_furnace_brick_side.png | Bin 0 -> 678 bytes .../blocks/machine_furnace_brick_top.png | Bin 0 -> 695 bytes .../gui/processing/gui_furnace_brick.png | Bin 0 -> 12826 bytes .../hbm/textures/items/dwarven_pickaxe.png | Bin 0 -> 313 bytes 37 files changed, 639 insertions(+), 65 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineBrickFurnace.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIFurnaceBrick.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_front_off.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_front_on.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_top.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_brick.png create mode 100644 src/main/resources/assets/hbm/textures/items/dwarven_pickaxe.png diff --git a/changelog b/changelog index 1a0ac55f7..2b9abf3b3 100644 --- a/changelog +++ b/changelog @@ -11,6 +11,17 @@ * I don't know how this would ever be useful but I was stuck in a phonecall at work for two consecutive hours and didn't have anything else to do * They should invent handsets that don't hurt when you hold them onto your head for too long * Has no NEI handler because the call ended before I got to that +* Bricked furnace + * An earlygame machine made from smooth stone and bricks + * Largely identical to vanilla furnaces + * Like the wood burner, it will collect ashes from burnt fuel + * Certain recipes are sped up, sand and cobblestone are smelted at twice the speed while (fire) clay is smelted at quadruple speed + * This means that making a clay brick block now takes as much time using a bricked furnace as one single furnace operation in a vanilla furnace + * I *really* like bricks and I don't feel like waiting until I can get an arc furnace to mass produce them at a sensible pace +* Dwarven pickaxe + * Earlygame tool made from iron and copper + * Has the harvest level of iron, a durability of just 250 but the AoE ability + * Great for getting cobblestone quickly or making tunnels when you don't have desh or electric tools yet ## Changed * Large turbines, levis and geothermal heat exchangers now have their own sounds when operating @@ -28,9 +39,11 @@ * Rebalanced all the food items so their saturation values aren't ridiculously high (turns out - the number represents a *multiplier* for the hunger value and not a flat number) * Dirt MREs are now just regular low-quality MREs made from latex packaging and some easily obtainable earlygame ingredients - wheat, rotten flesh and saplings (makes 4) * The recipe for the chemical plant has been slightly simplified (again) +* Iron furnaces now have a 20% faster base smelting speed, making them complete operations in 8 seconds instead of 10 without upgrades ## Fixed * Fixed basalt ores dropping their items with invalid metadata * Fixed creative infinite fluid tanks not being able to fill fluid gauges at >0PU * Fixed an issue where repeatedly opening and closing certain doors would cause their sound loop to get stuck running forever * Fixed radar screens behaving weirdly when out of then intended range. The max interaction range for radars is now infinite, and radars will send a second information packet to players near connected radars +* Fixed very rare bug where waiting for wood ash to build up in the wood burner and then clearing the slot will remove twice as much ash on the internal counter for the initial ash item created diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 52282b525..05ae45215 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -152,10 +152,6 @@ public class ModBlocks { public static Block basalt; public static Block ore_basalt; - @Deprecated public static Block basalt_sulfur; - @Deprecated public static Block basalt_fluorite; - @Deprecated public static Block basalt_asbestos; - @Deprecated public static Block basalt_gem; public static Block basalt_smooth; public static Block basalt_brick; public static Block basalt_polished; @@ -713,10 +709,11 @@ public class ModBlocks { public static Block machine_puf6_tank; public static Block machine_reactor_breeding; - + + public static Block machine_furnace_brick_off; + public static Block machine_furnace_brick_on; public static Block machine_nuke_furnace_off; public static Block machine_nuke_furnace_on; - public static Block machine_rtg_furnace_off; public static Block machine_rtg_furnace_on; @@ -1378,10 +1375,6 @@ public class ModBlocks { basalt = new BlockGeneric(Material.rock).setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt"); ore_basalt = new BlockOreBasalt().setBlockName("ore_basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_basalt"); - basalt_sulfur = new BlockRemap(ore_basalt, 0).setBlockName("basalt_sulfur"); - basalt_fluorite = new BlockRemap(ore_basalt, 1).setBlockName("basalt_fluorite"); - basalt_asbestos = new BlockRemap(ore_basalt, 2).setBlockName("basalt_asbestos"); - basalt_gem = new BlockRemap(ore_basalt, 3).setBlockName("basalt_gem"); basalt_smooth = new BlockGeneric(Material.rock).setBlockName("basalt_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_smooth"); basalt_brick = new BlockGeneric(Material.rock).setBlockName("basalt_brick").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_brick"); basalt_polished = new BlockGeneric(Material.rock).setBlockName("basalt_polished").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_polished"); @@ -1864,10 +1857,11 @@ public class ModBlocks { machine_puf6_tank = new MachinePuF6Tank(Material.iron).setBlockName("machine_puf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_reactor_breeding = new MachineReactorBreeding(Material.iron).setBlockName("machine_reactor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor"); - + + machine_furnace_brick_off = new MachineBrickFurnace(false).setBlockName("machine_furnace_brick_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_furnace_brick_on = new MachineBrickFurnace(true).setBlockName("machine_furnace_brick_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); machine_nuke_furnace_off = new MachineNukeFurnace(false).setBlockName("machine_nuke_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_nuke_furnace_on = new MachineNukeFurnace(true).setBlockName("machine_nuke_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - machine_rtg_furnace_off = new MachineRtgFurnace(false).setBlockName("machine_rtg_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_rtg_furnace_on = new MachineRtgFurnace(true).setBlockName("machine_rtg_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -2549,10 +2543,6 @@ public class ModBlocks { //Basalt ores register(ore_basalt); - GameRegistry.registerBlock(basalt_sulfur, basalt_sulfur.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_fluorite, basalt_fluorite.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_asbestos, basalt_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_gem, ItemBlockBase.class, basalt_gem.getUnlocalizedName()); //End Ores GameRegistry.registerBlock(ore_tikite, ore_tikite.getUnlocalizedName()); @@ -3136,6 +3126,8 @@ public class ModBlocks { register(foundry_outlet); register(foundry_slagtap); register(slag); + register(machine_furnace_brick_off); + register(machine_furnace_brick_on); register(machine_difurnace_off); register(machine_difurnace_on); register(machine_difurnace_extension); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCluster.java b/src/main/java/com/hbm/blocks/generic/BlockCluster.java index da64a6849..03ed4027e 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCluster.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCluster.java @@ -62,7 +62,6 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr if(this == ModBlocks.cluster_titanium) return ModItems.crystal_titanium; if(this == ModBlocks.cluster_aluminium) return ModItems.crystal_aluminium; if(this == ModBlocks.cluster_copper) return ModItems.crystal_copper; - if(this == ModBlocks.basalt_gem) return ModItems.gem_volcanic; return null; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index fbe36d426..0e496af45 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IBomb; import com.hbm.items.special.ItemDoorSkin; -import com.hbm.items.tool.ItemLock; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.util.fauxpointtwelve.BlockPos; diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 6a7a4497b..f54c9eff6 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -44,13 +44,13 @@ public class BlockOre extends Block { @Spaghetti("*throws up*") @Override public Item getItemDropped(int i, Random rand, int j) { - if(this == ModBlocks.ore_fluorite || this == ModBlocks.basalt_fluorite) { + if(this == ModBlocks.ore_fluorite) { return ModItems.fluorite; } if(this == ModBlocks.ore_niter) { return ModItems.niter; } - if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur || this == ModBlocks.basalt_sulfur) { + if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur) { return ModItems.sulfur; } if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) { @@ -178,7 +178,7 @@ public class BlockOre extends Block { if(this == ModBlocks.deco_asbestos) { return ModItems.ingot_asbestos; } - if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos || this == ModBlocks.basalt_asbestos) { + if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos) { return ModItems.ingot_asbestos; } if(this == ModBlocks.ore_lignite) { @@ -202,13 +202,13 @@ public class BlockOre extends Block { @Override public int quantityDropped(Random rand) { - if(this == ModBlocks.ore_fluorite || this == ModBlocks.basalt_fluorite) { + if(this == ModBlocks.ore_fluorite) { return 2 + rand.nextInt(3); } if(this == ModBlocks.ore_niter) { return 2 + rand.nextInt(3); } - if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur || this == ModBlocks.basalt_sulfur) { + if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur) { return 2 + rand.nextInt(3); } if(this == ModBlocks.block_meteor_broken) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java index 650819005..ae6107817 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java @@ -57,8 +57,7 @@ public class BlockOutgas extends BlockOre { if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos || this == ModBlocks.block_asbestos || this == ModBlocks.deco_asbestos || this == ModBlocks.brick_asbestos || this == ModBlocks.tile_lab || - this == ModBlocks.tile_lab_cracked || this == ModBlocks.tile_lab_broken || - this == ModBlocks.basalt_asbestos) { + this == ModBlocks.tile_lab_cracked || this == ModBlocks.tile_lab_broken) { return ModBlocks.gas_asbestos; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBrickFurnace.java b/src/main/java/com/hbm/blocks/machine/MachineBrickFurnace.java new file mode 100644 index 000000000..48054e36e --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineBrickFurnace.java @@ -0,0 +1,172 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityFurnaceBrick; +import com.hbm.util.ItemStackUtil; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class MachineBrickFurnace extends BlockContainer { + + private final Random rand = new Random(); + private final boolean isActive; + private static boolean keepInventory; + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + @SideOnly(Side.CLIENT) private IIcon iconFront; + + public MachineBrickFurnace(boolean blockState) { + super(Material.iron); + isActive = blockState; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_furnace_brick_top"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_furnace_brick_bottom"); + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_furnace_brick_front_on" : ":machine_furnace_brick_front_off")); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_furnace_brick_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : (side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon))); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityFurnaceBrick(); + } + + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + return Item.getItemFromBlock(ModBlocks.machine_furnace_brick_off); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + this.setDefaultDirection(world, x, y, z); + } + + private void setDefaultDirection(World world, int x, int y, int z) { + if(!world.isRemote) { + Block nZ = world.getBlock(x, y, z - 1); + Block pZ = world.getBlock(x, y, z + 1); + Block nX = world.getBlock(x - 1, y, z); + Block pX = world.getBlock(x + 1, y, z); + + byte meta = 3; + + if(nZ.func_149730_j() && !pZ.func_149730_j()) meta = 3; + if(pZ.func_149730_j() && !nZ.func_149730_j()) meta = 2; + if(nX.func_149730_j() && !pX.func_149730_j()) meta = 5; + if(pX.func_149730_j() && !nX.func_149730_j()) meta = 4; + + world.setBlockMetadataWithNotify(x, y, z, meta, 2); + } + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + + if(itemStack.hasDisplayName()) ((TileEntityFurnaceBrick)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); + } + + @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()) { + TileEntityFurnaceBrick entity = (TileEntityFurnaceBrick) world.getTileEntity(x, y, z); + if(entity != null) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + return true; + } else { + return false; + } + } + + public static void updateBlockState(boolean isProcessing, World world, int x, int y, int z) { + int i = world.getBlockMetadata(x, y, z); + TileEntity entity = world.getTileEntity(x, y, z); + keepInventory = true; + + if(isProcessing) { + world.setBlock(x, y, z, ModBlocks.machine_furnace_brick_on); + } else { + world.setBlock(x, y, z, ModBlocks.machine_furnace_brick_off); + } + + keepInventory = false; + world.setBlockMetadataWithNotify(x, y, z, i, 2); + + if(entity != null) { + entity.validate(); + world.setTileEntity(x, y, z, entity); + } + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + if(!keepInventory) ItemStackUtil.spillItems(world, x, y, z, block, rand); + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random rand) { + if(isActive) { + int meta = world.getBlockMetadata(x, y, z); + float cX = x + 0.5F; + float cY = y + rand.nextFloat() * 0.375F; + float cZ = z + 0.5F; + float off = 0.52F; + float var = rand.nextFloat() * 0.6F - 0.3F; + rand.nextFloat(); + rand.nextFloat(); + + if(meta == 4) { + world.spawnParticle("smoke", cX - off, cY, cZ + var, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", cX - off, cY, cZ + var, 0.0D, 0.0D, 0.0D); + } else if(meta == 5) { + world.spawnParticle("smoke", cX + off, cY, cZ + var, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", cX + off, cY, cZ + var, 0.0D, 0.0D, 0.0D); + } else if(meta == 2) { + world.spawnParticle("smoke", cX + var, cY, cZ - off, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", cX + var, cY, cZ - off, 0.0D, 0.0D, 0.0D); + } else if(meta == 3) { + world.spawnParticle("smoke", cX + var, cY, cZ + off, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", cX + var, cY, cZ + off, 0.0D, 0.0D, 0.0D); + } + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index 97347dc3c..22dcdcad8 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -6,6 +6,8 @@ import api.hbm.conveyor.IEnterableBlock; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityCraneBase; import com.hbm.tileentity.network.TileEntityCraneInserter; +import com.hbm.util.InventoryUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -17,7 +19,6 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -72,7 +73,7 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { if(te instanceof ISidedInventory) { ISidedInventory sided = (ISidedInventory) te; - access = masquerade(sided, outputDirection.getOpposite().ordinal()); + access = InventoryUtil.masquerade(sided, outputDirection.getOpposite().ordinal()); } if(te instanceof IInventory) { @@ -90,15 +91,6 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { } } - public static int[] masquerade(ISidedInventory sided, int side) { - - if(sided instanceof TileEntityFurnace) { - return new int[] {1, 0}; - } - - return sided.getAccessibleSlotsFromSide(side); - } - public static ItemStack addToInventory(IInventory inv, int[] access, ItemStack toAdd, int side) { ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; diff --git a/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java index 9cf026cd1..2a5f8b9ff 100644 --- a/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java +++ b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java @@ -5,18 +5,13 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.entity.train.EntityRailCarBase; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; import com.hbm.util.BobMathUtil; -import com.hbm.util.ChatBuilder; import com.hbm.util.ParticleUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.material.Material; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 5d1edf7e4..df95ca834 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -69,6 +69,7 @@ public class ToolRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dwarven_pickaxe, 1), new Object[] { "CIC", " S ", " S ", 'C', CU.ingot(), 'I', IRON.ingot(), 'S', KEY_STICK }); //Drax CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax, 1), new Object[] { "BDS", "CDC", "FMF", 'B', ModItems.starmetal_pickaxe, 'S', ModItems.starmetal_shovel, 'C', CO.ingot(), 'F', ModItems.fusion_core, 'D', DESH.ingot(), 'M', ModItems.motor_desh }); diff --git a/src/main/java/com/hbm/entity/projectile/EntityRubble.java b/src/main/java/com/hbm/entity/projectile/EntityRubble.java index 05459bcfd..b19f7263b 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRubble.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRubble.java @@ -6,8 +6,6 @@ import com.hbm.packet.ParticleBurstPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 930675550..81875b605 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -392,15 +392,15 @@ public class OreDictManager { EUPH .nugget(nugget_euphemium) .ingot(ingot_euphemium) .dust(powder_euphemium) .block(block_euphemium); DNT .nugget(nugget_dineutronium) .ingot(ingot_dineutronium) .dust(powder_dineutronium) .block(block_dineutronium); FIBER .ingot(ingot_fiberglass) .block(block_fiberglass); - ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, basalt_asbestos, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.ASBESTOS), DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS)); + ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.ASBESTOS), DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS)); OSMIRIDIUM .nugget(nugget_osmiridium) .ingot(ingot_osmiridium); /* * DUST AND GEM ORES */ - S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.SULFUR), ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); + S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.SULFUR), ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); KNO .dust(niter) .block(block_niter) .ore(ore_niter); - F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, basalt_fluorite, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.FLUORITE)); + F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.FLUORITE)); LIGNITE .gem(lignite) .dust(powder_lignite) .ore(ore_lignite); COALCOKE .gem(fromOne(coke, EnumCokeType.COAL)) .block(fromOne(block_coke, EnumCokeType.COAL)); PETCOKE .gem(fromOne(coke, EnumCokeType.PETROLEUM)) .block(fromOne(block_coke, EnumCokeType.PETROLEUM)); @@ -410,7 +410,7 @@ public class OreDictManager { CHLOROCALCITE .dust(powder_chlorocalcite); MOLYSITE .dust(powder_molysite) .ore(DictFrame.fromOne(ore_basalt, EnumBasaltOreType.MOLYSITE)); SODALITE .gem(gem_sodalite); - VOLCANIC .gem(gem_volcanic) .ore(basalt_gem, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.GEM)); + VOLCANIC .gem(gem_volcanic) .ore(DictFrame.fromOne(ore_basalt, EnumBasaltOreType.GEM)); HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE)); MALACHITE .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); SLAG .block(block_slag); diff --git a/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java b/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java new file mode 100644 index 000000000..5492d2478 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java @@ -0,0 +1,78 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.tileentity.machine.TileEntityFurnaceBrick; +import com.hbm.util.InventoryUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; + +public class ContainerFurnaceBrick extends Container { + + private TileEntityFurnaceBrick furnace; + + public ContainerFurnaceBrick(InventoryPlayer invPlayer, TileEntityFurnaceBrick tedf) { + furnace = tedf; + + //input + this.addSlotToContainer(new Slot(tedf, 0, 62, 35)); + //fuel + this.addSlotToContainer(new Slot(tedf, 1, 35, 17)); + //output + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 2, 116, 35)); + //ash + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 3, 35, 53)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 3) { + if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(!TileEntityFurnace.isItemFuel(var5)) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, 1, false)) + return null; + } else { + if(!this.mergeItemStack(var5, 1, 2, false) && !this.mergeItemStack(var5, 0, 1, false)) return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return furnace.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceBrick.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceBrick.java new file mode 100644 index 000000000..31e360e39 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceBrick.java @@ -0,0 +1,44 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerFurnaceBrick; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityFurnaceBrick; + +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIFurnaceBrick extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_furnace_brick.png"); + private TileEntityFurnaceBrick furnace; + + public GUIFurnaceBrick(InventoryPlayer invPlayer, TileEntityFurnaceBrick tile) { + super(new ContainerFurnaceBrick(invPlayer, tile)); + this.furnace = tile; + } + + protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_) { + String name = this.furnace.hasCustomInventoryName() ? this.furnace.getInventoryName() : I18n.format(this.furnace.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 0xffffff); + } + + 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); + this.mc.getTextureManager().bindTexture(texture); + this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, this.xSize, this.ySize); + + if(furnace.isInvalid() && furnace.getWorldObj().getTileEntity(furnace.xCoord, furnace.yCoord, furnace.zCoord) instanceof TileEntityFurnaceBrick) + furnace = (TileEntityFurnaceBrick) furnace.getWorldObj().getTileEntity(furnace.xCoord, furnace.yCoord, furnace.zCoord); + + if(this.furnace.burnTime > 0) { + int b = furnace.burnTime * 13 / furnace.maxBurnTime; + this.drawTexturedModalRect(guiLeft + 62, guiTop + 54 + 12 - b, 176, 12 - b, 14, b + 1); + int p = this.furnace.progress * 24 / 200; + this.drawTexturedModalRect(guiLeft + 85, guiTop + 34, 176, 14, p + 1, 16); + } + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 873b76d31..bbadae89c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2091,6 +2091,7 @@ public class ModItems { public static Item chlorophyte_pickaxe; public static Item mese_pickaxe; public static Item dnt_sword; + public static Item dwarven_pickaxe; public static Item meteorite_sword; public static Item meteorite_sword_seared; @@ -5321,6 +5322,10 @@ public class ModItems { dnt_sword = new ItemSwordAbility(12F, 0, matMese).setUnlocalizedName("dnt_sword").setTextureName(RefStrings.MODID + ":dnt_sword"); + ToolMaterial matDwarf = EnumHelper.addToolMaterial("HBM_DWARVEN", 2, 0, 4F, 0.0F, 10).setRepairItem(new ItemStack(ModItems.ingot_copper)); + dwarven_pickaxe = new ItemToolAbility(5F, -0.1, matDwarf, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.HammerAbility(1)).setUnlocalizedName("dwarven_pickaxe").setMaxDamage(250).setTextureName(RefStrings.MODID + ":dwarven_pickaxe"); + ToolMaterial matMeteorite = EnumHelper.addToolMaterial("HBM_METEORITE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); meteorite_sword = new ItemSwordMeteorite(10F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword"); meteorite_sword_seared = new ItemSwordMeteorite(15F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_seared").setTextureName(RefStrings.MODID + ":meteorite_sword"); @@ -7466,6 +7471,7 @@ public class ModItems { GameRegistry.registerItem(cape_hidden, cape_hidden.getUnlocalizedName()); //Tools + GameRegistry.registerItem(dwarven_pickaxe, dwarven_pickaxe.getUnlocalizedName()); GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName()); GameRegistry.registerItem(schrabidium_hammer, schrabidium_hammer.getUnlocalizedName()); GameRegistry.registerItem(shimmer_sledge, shimmer_sledge.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemSatRelay.java b/src/main/java/com/hbm/items/tool/ItemSatRelay.java index 519befad2..ba040cbd0 100644 --- a/src/main/java/com/hbm/items/tool/ItemSatRelay.java +++ b/src/main/java/com/hbm/items/tool/ItemSatRelay.java @@ -1,16 +1,6 @@ package com.hbm.items.tool; import com.hbm.items.machine.ItemSatChip; -import com.hbm.lib.Library; -import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.Satellite; -import com.hbm.saveddata.satellites.Satellite.Interfaces; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemSatRelay extends ItemSatChip { //Schrabby doesn't fucking know how this works so I HOPE it will create a new item that works without fucking everything up diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d62c493c2..6fef046e3 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -325,6 +325,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel }); addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "H", "G", "H", 'H', STEEL.plateWelded(), 'G', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); + addRecipeAuto(new ItemStack(ModBlocks.machine_furnace_brick_off), new Object[] { "III", "I I", "BBB", 'I', Items.brick, 'B', Blocks.stone }); addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', ModItems.circuit_copper, 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate(), 'R', REDSTONE.dust() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 0e53b69ab..fc7d9bc9c 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1212,6 +1212,10 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.reactor_computer"); ignoreMappings.add("hbm:tile.ff"); ignoreMappings.add("hbm:tile.muffler"); + ignoreMappings.add("hbm:tile.basalt_sulfur"); + ignoreMappings.add("hbm:tile.basalt_fluorite"); + ignoreMappings.add("hbm:tile.basalt_asbestos"); + ignoreMappings.add("hbm:tile.basalt_gem"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/packet/AuxButtonPacket.java b/src/main/java/com/hbm/packet/AuxButtonPacket.java index 922b1704a..ee636bda0 100644 --- a/src/main/java/com/hbm/packet/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/AuxButtonPacket.java @@ -2,8 +2,6 @@ package com.hbm.packet; import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityDuck; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; import com.hbm.items.weapon.ItemMissile.PartSize; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityTickingBase; diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 1eec40138..3686a7b31 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -274,6 +274,7 @@ public class TileMappings { put(TileEntityHeaterElectric.class, "tileentity_electric_heater"); put(TileEntityHeaterHeatex.class, "tileentity_heater_heatex"); put(TileEntityFurnaceIron.class, "tileentity_furnace_iron"); + put(TileEntityFurnaceBrick.class, "tileentity_furnace_brick"); put(TileEntityFurnaceSteel.class, "tileentity_furnace_steel"); put(TileEntityFurnaceCombination.class, "tileentity_combination_oven"); put(TileEntityStirling.class, "tileentity_stirling"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java new file mode 100644 index 000000000..f31af3b06 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java @@ -0,0 +1,232 @@ +package com.hbm.tileentity.machine; + +import java.util.HashMap; + +import com.hbm.blocks.machine.MachineBrickFurnace; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.container.ContainerFurnaceBrick; +import com.hbm.inventory.gui.GUIFurnaceBrick; +import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.world.World; + +public class TileEntityFurnaceBrick extends TileEntityMachineBase implements IGUIProvider { + + private static final int[] slotsTop = new int[] { 0 }; + private static final int[] slotsBottom = new int[] { 2, 1, 3 }; + private static final int[] slotsSides = new int[] {1}; + + public static HashMap burnSpeed = new HashMap(); + + static { + burnSpeed.put(Items.clay_ball, 4); + burnSpeed.put(ModItems.ball_fireclay, 4); + burnSpeed.put(Item.getItemFromBlock(Blocks.netherrack), 4); + burnSpeed.put(Item.getItemFromBlock(Blocks.cobblestone), 2); + burnSpeed.put(Item.getItemFromBlock(Blocks.sand), 2); + } + + public int burnTime; + public int maxBurnTime; + public int progress; + + public int ashLevelWood; + public int ashLevelCoal; + public int ashLevelMisc; + + public TileEntityFurnaceBrick() { + super(4); + } + + @Override + public String getName() { + return "container.furnaceBrick"; + } + + @Override + + public void updateEntity() { + + if(!worldObj.isRemote) { + boolean wasBurning = this.burnTime > 0; + boolean markDirty = false; + + if(this.burnTime > 0) { + this.burnTime--; + } + + if(this.burnTime != 0 || this.slots[1] != null && this.slots[0] != null) { + if(this.burnTime == 0 && this.canSmelt()) { + this.maxBurnTime = this.burnTime = TileEntityFurnace.getItemBurnTime(this.slots[1]); + + if(this.burnTime > 0) { + markDirty = true; + + if(this.slots[1] != null) { + this.slots[1].stackSize--; + + EnumAshType type = TileEntityFireboxBase.getAshFromFuel(slots[1]); + if(type == EnumAshType.WOOD) ashLevelWood += burnTime; + if(type == EnumAshType.COAL) ashLevelCoal += burnTime; + if(type == EnumAshType.MISC) ashLevelMisc += burnTime; + int threshold = 2000; + if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; + if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; + if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + + if(this.slots[1].stackSize == 0) { + this.slots[1] = slots[1].getItem().getContainerItem(slots[1]); + } + } + } + } + + if(this.burnTime > 0 && this.canSmelt()) { + this.progress += this.getBurnSpeed(); + + if(this.progress >= 200) { + this.progress = 0; + this.smeltItem(); + markDirty = true; + } + } else { + this.progress = 0; + } + } + + if(wasBurning != this.burnTime > 0) { + markDirty = true; + MachineBrickFurnace.updateBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); + } + + if(markDirty) { + this.markDirty(); + } + + this.networkPackNT(15); + } + } + + public int getBurnSpeed() { + Integer speed = burnSpeed.get(slots[0].getItem()); + if(speed != null) return speed; + return 1; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot >= 2 ? false : (slot == 1 ? TileEntityFurnace.getItemBurnTime(stack) > 0 : true); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return side == 0 ? slotsBottom : (side == 1 ? slotsTop : slotsSides); + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(burnTime); + buf.writeInt(maxBurnTime); + buf.writeInt(progress); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.burnTime = buf.readInt(); + this.maxBurnTime = buf.readInt(); + this.progress = buf.readInt(); + } + + protected boolean processAsh(int level, EnumAshType type, int threshold) { + + if(level >= threshold) { + if(slots[3] == null) { + slots[3] = DictFrame.fromOne(ModItems.powder_ash, type); + return true; + } else if(slots[3].stackSize < slots[3].getMaxStackSize() && slots[3].getItem() == ModItems.powder_ash && slots[3].getItemDamage() == type.ordinal()) { + slots[3].stackSize++; + return true; + } + } + + return false; + } + + private boolean canSmelt() { + if(this.slots[0] == null) { + return false; + } else { + ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); + if(itemstack == null) + return false; + if(this.slots[2] == null) + return true; + if(!this.slots[2].isItemEqual(itemstack)) + return false; + int result = slots[2].stackSize + itemstack.stackSize; + return result <= getInventoryStackLimit() && result <= this.slots[2].getMaxStackSize(); + } + } + + public void smeltItem() { + if(this.canSmelt()) { + ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); + + if(this.slots[2] == null) { + this.slots[2] = itemstack.copy(); + } else if(this.slots[2].getItem() == itemstack.getItem()) { + this.slots[2].stackSize += itemstack.stackSize; + } + + --this.slots[0].stackSize; + + if(this.slots[0].stackSize <= 0) { + this.slots[0] = null; + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.burnTime = nbt.getInteger("burnTime"); + this.maxBurnTime = nbt.getInteger("maxBurn"); + this.progress = nbt.getInteger("progress"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("burnTime", this.burnTime); + nbt.setInteger("maxBurn", this.maxBurnTime); + nbt.setInteger("progress", this.progress); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerFurnaceBrick(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIFurnaceBrick(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index b30350152..c85bb845d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -36,7 +36,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI public int progress; public int processingTime; - public static final int baseTime = 200; + public static final int baseTime = 160; public ModuleBurnTime burnModule; @@ -63,7 +63,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI if(!worldObj.isRemote) { UpgradeManager.eval(slots, 4, 4); - this.processingTime = baseTime - (100 * Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) / 3); + this.processingTime = baseTime - ((baseTime / 2) * Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) / 3); wasOn = false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 321ea65dc..ac6265b3a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -29,6 +29,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Compat; import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; +import com.hbm.util.InventoryUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; @@ -673,7 +674,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements if(inv instanceof ISidedInventory) { ISidedInventory sided = (ISidedInventory) inv; - access = CraneInserter.masquerade(sided, dir.ordinal()); + access = InventoryUtil.masquerade(sided, dir.ordinal()); } for(ItemStack item : items) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index d4a1f7700..e2d9fc11f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -187,7 +187,6 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement if(level >= threshold) { if(slots[1] == null) { slots[1] = DictFrame.fromOne(ModItems.powder_ash, type); - ashLevelWood -= threshold; return true; } else if(slots[1].stackSize < slots[1].getMaxStackSize() && slots[1].getItem() == ModItems.powder_ash && slots[1].getItemDamage() == type.ordinal()) { slots[1].stackSize++; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java index cec453cd8..e5878bfb3 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java @@ -9,6 +9,8 @@ import com.hbm.inventory.gui.GUICraneGrabber; import com.hbm.items.ModItems; import com.hbm.module.ModulePatternMatcher; import com.hbm.tileentity.IGUIProvider; +import com.hbm.util.InventoryUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -81,7 +83,7 @@ public class TileEntityCraneGrabber extends TileEntityCraneBase implements IGUIP if(te instanceof ISidedInventory) { sided = (ISidedInventory) te; - access = CraneInserter.masquerade(sided, outputSide.getOpposite().ordinal()); + access = InventoryUtil.masquerade(sided, outputSide.getOpposite().ordinal()); } if(te instanceof IInventory) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index 9de4fb7fc..b98985bc2 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -4,6 +4,8 @@ import com.hbm.blocks.network.CraneInserter; import com.hbm.inventory.container.ContainerCraneInserter; import com.hbm.inventory.gui.GUICraneInserter; import com.hbm.tileentity.IGUIProvider; +import com.hbm.util.InventoryUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -42,7 +44,7 @@ public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUI if(te instanceof ISidedInventory) { ISidedInventory sided = (ISidedInventory) te; //access = sided.getAccessibleSlotsFromSide(dir.ordinal()); - access = CraneInserter.masquerade(sided, outputSide.getOpposite().ordinal()); + access = InventoryUtil.masquerade(sided, outputSide.getOpposite().ordinal()); } if(te instanceof IInventory) { diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index 4e6a27661..97cc2bfe7 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -4,16 +4,27 @@ import java.util.List; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput; +import com.hbm.tileentity.machine.TileEntityFurnaceBrick; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; import net.minecraftforge.oredict.OreDictionary; //'t was about time public class InventoryUtil { + public static int[] masquerade(ISidedInventory sided, int side) { + + if(sided instanceof TileEntityFurnace) return new int[] {1, 0}; + if(sided instanceof TileEntityFurnaceBrick) return new int[] {1, 0, 3}; + + return sided.getAccessibleSlotsFromSide(side); + } + /** * Will attempt to cram a much of the given itemstack into the stack array as possible * The rest will be returned diff --git a/src/main/java/com/hbm/util/ItemStackUtil.java b/src/main/java/com/hbm/util/ItemStackUtil.java index 313e9bad3..1ab7af389 100644 --- a/src/main/java/com/hbm/util/ItemStackUtil.java +++ b/src/main/java/com/hbm/util/ItemStackUtil.java @@ -2,12 +2,17 @@ package com.hbm.util; import java.util.ArrayList; import java.util.List; +import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagString; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; public class ItemStackUtil { @@ -161,4 +166,36 @@ public class ItemStackUtil { return list; } + + public static void spillItems(World world, int x, int y, int z, Block block, Random rand) { + IInventory tileentityfurnace = (IInventory) world.getTileEntity(x, y, z); + + if(tileentityfurnace != null) { + for(int slot = 0; slot < tileentityfurnace.getSizeInventory(); ++slot) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(slot); + + if(itemstack != null) { + float oX = rand.nextFloat() * 0.8F + 0.1F; + float oY = rand.nextFloat() * 0.8F + 0.1F; + float oZ = rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = rand.nextInt(21) + 10; + if(j1 > itemstack.stackSize) j1 = itemstack.stackSize; + itemstack.stackSize -= j1; + + EntityItem entityitem = new EntityItem(world, x + oX, y + oY, z + oZ, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + + float motion = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * motion; + entityitem.motionY = (float) rand.nextGaussian() * motion + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * motion; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index bc8b89113..83a7ea76a 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -323,6 +323,7 @@ container.factoryTitanium=Einfache Fabrik container.fluidtank=Tank container.forceField=Kraftfeldgenerator container.frackingTower=Hydraulischer Frackingturm +container.furnaceBrick=Ziegelofen container.furnaceCombination=Kombinationsofen container.furnaceIron=Eiserner Ofen container.furnaceSteel=Stahlofen @@ -1737,6 +1738,7 @@ item.drone.request.name=Logistikdrone item.drone_linker.name=Transportdronen-Linker item.ducttape.name=Klebeband item.dust.name=Staub +item.dwarven_pickaxe.name=Zwergenspitzhacke item.dynosphere_base.name=Blanke Dynosphere item.dynosphere_desh.name=Desh-Dynosphere item.dynosphere_desh_charged.name=Desh-Dynosphere (Geladen) @@ -3947,6 +3949,8 @@ tile.frozen_dirt.name=Gefrorene Erde tile.frozen_grass.name=Gefrorenes Gras tile.frozen_log.name=Gefrorener Baumstamm tile.frozen_planks.name=Gefrorene Holzbretter +tile.machine_furnace_brick_off.name=Ziegelofen +tile.machine_furnace_brick_on.name=Ziegelofen tile.furnace_combination.name=Kombinationsofen tile.furnace_combination.desc=Großer Ofen welcher Holzhokle und Kohlekoks herstellen kann.$Erzeugt flüssige Nebenprodukte.$Wärmetransferrate: ΔT*0.25 TU/t tile.furnace_iron.name=Eiserner Ofen diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 08cd0042d..ae9250687 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -682,6 +682,7 @@ container.fluidtank=Tank container.fileCabinet=Filing Cabinet container.forceField=Forcefield Emitter container.frackingTower=Hydraulic Fracking Tower +container.furnaceBrick=Bricked Furnace container.furnaceCombination=Combination Oven container.furnaceIron=Iron Furnace container.furnaceSteel=Steel Furnace @@ -2446,6 +2447,7 @@ item.dust.name=Dust item.dust.desc=I hate dust! item.dust.desc.P11=Another one bites the dust! item.dust_tiny.name=Tiny Pile of Dust +item.dwarven_pickaxe.name=Dwarven Pickaxe item.dynosphere_base.name=Blank Dynosphere item.dynosphere_desh.name=Desh Dynosphere item.dynosphere_desh_charged.name=Desh Dynosphere (Charged) @@ -4941,6 +4943,8 @@ tile.frozen_dirt.name=Frozen Dirt tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks +tile.machine_furnace_brick_off.name=Bricked Furnace +tile.machine_furnace_brick_on.name=Bricked Furnace tile.furnace_combination.name=Combination Oven tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t tile.furnace_iron.name=Iron Furnace diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..6db8f00c0bfa2336faea0abde93bce673a23dfa7 GIT binary patch literal 405 zcmV;G0c!qChpU>apIOt=ZXO?9F;QfBHZ5ugfzU55-kH-V&9N*%0yWzdp@6YF>;`_dz z0y$?|YXH<*vDWGX?>#9cj4=Q#%Yt)`Qp!JqbzLc?0AP$E=R71DW3&J;oF_Rr=SV35 zV6COKHYD~oBw~zA$8jj4VD=A%NC1uY=VWG*Oie6ybWv1FwX=++f}#{k1+5gkRTqLg z|4bMD0{sUT6a=A&iVHVd6nF6wu+*xFZPO-cGWT&YNuVVb-{p7S_q)B{(H`EJO*(!+ zR?l#F_6GHrPY{}*;rZBklXehNFb&qWn~Yt%%f|8&xs0M6gaD}3dJ}-0A2Mp?$yhnw zuT^QdKIQ5bBUTnasxxF5^zh}+Hc^rw00B@mb=DiZxUNgB)kbO>hfEzyR{-cz;e`1I71mUuXRM zIRZaG3Jq0_B%bF18ZBvJ+xCGrwxr4TM(UVh7^#hp<4`J<_7De&dvF{F$8qpH57i60 zZkkmob)b!O$L)2XJkO(CE)OLB3zbR*qx(Dm0v6EJRKN@9?f?J)07*qoM6N<$f~}R~8fmrHG0PH(HeL;zz(*YfWsLHc6BD9v3r7o05fRb6?Iq&pDiP&y^nC zmCJQc9OWYG!&iDc9}VLbPO{G4Mpci&0^K^Df#g; znx;uUpYI0m?$UE{mfO)`nkJ@cV%s*NUBR-fuAna6J_T?yY8OD$G=y#26bgkM=t*mCWr{q~qHA|6FqBb_UJD-$hIZ6tolw?_kZQHDDJ_4Ye<(QH|cMm>LpA%2#jaQy5 zZSOKUcn?67W^}TQ>+&8xL)TqHyFcPiwao9qn2Sk3-8H16DNDd4PH6W>1@tlqSuis{ zmMt~&pfenEF%1|75p~zl9r`FKu(hUaG{YdG>KdXnDVhP&Bt^V=^)kP@$N-TGloDiF z#$uyE@9gY`AJ?_mXrRUSFC_EbmbP~}`S=#CB*xMR;~@NL@m|~B<$Qk+fZG+1Z=X)k zKYN!2v7Th4dCt*18vw4QQBp9NMpWnF=}o3wOE2jqNpm?l*L@tEB((G&uC@QQS>OJ*c=dE8>qjvK+oHVk zkmjd%NFiy55i?^hew;ArI_$MNEIfG5>E;HWrSang0KMDn0N_OlbHy>NqQ{rLI_)6h zXT3qSSRhK9j5`iP{W@upW*HKY043LEzuhAU0*<>rN(d%go1(1&u$3lEQUDG+JxZPn zz+}NeFRnczGZ`h5BBewv*SI;jDK!~N3Z#@6W3X+Tx!OGdiYCJ?xaj)!2P%V!#{=V# z$@JP(a_c6NSx$HJO%$JJ%YjtV(0Ts_B?ev)j{5WB^*%=Kz4?-s0 zoX3o%as~(OE{%RbJBX-wF7i4GRVknLsIl zF@~vXm9vwROFS-Ws#-;h?>i)e-KJO9Ir{hptt76c5w3&i^+)~k>N=;J8vtAzALHxR z5&HMp`DkJ#F{D|>{vaCwo~2Pz(CSB&2H`pL`wa6V#~mww7DrR?3OHH;u-D2D?6-S_ zX^N5pCG%c4Oz^BcBf5HfjVchwF>w;3mTN2k3tW}~w5^d#cUZI(aTKGZKxf}}kOIoK z#qp1DWavjRv#U?2Z@p!{JVCwFqYfmgK`V(Ak{kD*p-pD^)975G-0%Zt0Y@u7|2@3a zlYo?xN*LxjX!rp`79*gZi)H1ti)LF(F6L3IR!h$hZ d{srVg`VXY{5L$xox_kft002ovPDHLkV1f&-FL?j} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_brick.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_brick.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ffdd9f5301d7b6444989b91fc0825ddccb8e01 GIT binary patch literal 12826 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/dwarven_pickaxe.png b/src/main/resources/assets/hbm/textures/items/dwarven_pickaxe.png new file mode 100644 index 0000000000000000000000000000000000000000..a6540565c2304b2a65558dea1498355402155268 GIT binary patch literal 313 zcmV-90mlA`P) Date: Sat, 27 Jan 2024 17:44:15 +0100 Subject: [PATCH 121/376] return of chlorocalcite, cracked key --- changelog | 6 ++++ .../com/hbm/blocks/generic/BlockKeyhole.java | 30 ++++++++++-------- .../inventory/recipes/CombinationRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 3 ++ src/main/java/com/hbm/main/MainRegistry.java | 2 ++ .../java/com/hbm/main/ModEventHandler.java | 5 +-- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 3 ++ .../hbm/textures/items/key_red_cracked.png | Bin 0 -> 268 bytes 9 files changed, 36 insertions(+), 16 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/key_red_cracked.png diff --git a/changelog b/changelog index 2b9abf3b3..386439537 100644 --- a/changelog +++ b/changelog @@ -22,6 +22,10 @@ * Earlygame tool made from iron and copper * Has the harvest level of iron, a durability of just 250 but the AoE ability * Great for getting cobblestone quickly or making tunnels when you don't have desh or electric tools yet +* Cracked key + * A single-use item that can open red rooms like the red key, but does not work as a skeleton key for locks + * Spawns in dungeon chests or as a rare drop from hostile mobs + * Allows red rooms to be accessed without crafting the red key ## Changed * Large turbines, levis and geothermal heat exchangers now have their own sounds when operating @@ -40,6 +44,8 @@ * Dirt MREs are now just regular low-quality MREs made from latex packaging and some easily obtainable earlygame ingredients - wheat, rotten flesh and saplings (makes 4) * The recipe for the chemical plant has been slightly simplified (again) * Iron furnaces now have a 20% faster base smelting speed, making them complete operations in 8 seconds instead of 10 without upgrades +* Due to rising chlorine prices and a failing halogen market, the recipe of combination smelting chlorocalcite into chlorine and calcium has been added back + * For legacy reasons, the chlorocalcite processing chain involving chemical plants and electrolyzers will continue to work ## Fixed * Fixed basalt ores dropping their items with invalid metadata diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java index 7c195a114..b1306c8cd 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -51,19 +51,23 @@ public class BlockKeyhole extends BlockStone { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.key_red && side != 0 && side != 1) { - if(world.isRemote) return true; - ForgeDirection dir = ForgeDirection.getOrientation(side); - generateRoom(world, x - dir.offsetX * 4, y - 2, z - dir.offsetZ * 4); - int b = 0; - if(side == 2) b = 1; - if(side == 5) b = 2; - if(side == 3) b = 3; - if(side == 4) b = 0; - ItemModDoor.placeDoorBlock(world, x, y - 1, z, b, ModBlocks.door_red); - world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); - player.triggerAchievement(MainRegistry.achRedRoom); - return true; + if(player.getHeldItem() != null) { + boolean cracked = player.getHeldItem().getItem() == ModItems.key_red_cracked; + if((player.getHeldItem().getItem() == ModItems.key_red || cracked) && side != 0 && side != 1) { + if(cracked) player.getHeldItem().stackSize--; + if(world.isRemote) return true; + ForgeDirection dir = ForgeDirection.getOrientation(side); + generateRoom(world, x - dir.offsetX * 4, y - 2, z - dir.offsetZ * 4); + int b = 0; + if(side == 2) b = 1; + if(side == 5) b = 2; + if(side == 3) b = 3; + if(side == 4) b = 0; + ItemModDoor.placeDoorBlock(world, x, y - 1, z, b, ModBlocks.door_red); + world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); + player.triggerAchievement(MainRegistry.achRedRoom); + return true; + } } return false; diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 3c5b8bdd2..1fe93cf7e 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -44,7 +44,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(LIGNITE.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); - //recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); + recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); recipes.put(MOLYSITE.dust(), new Pair(new ItemStack(Items.iron_ingot), new FluidStack(Fluids.CHLORINE, 250))); recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index bbadae89c..0c07cb805 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2347,6 +2347,7 @@ public class ModItems { public static Item key; public static Item key_red; + public static Item key_red_cracked; public static Item key_kit; public static Item key_fake; public static Item pin; @@ -4645,6 +4646,7 @@ public class ModItems { key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); + key_red_cracked = new ItemCustomLore().setUnlocalizedName("key_red_cracked").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red_cracked"); key_kit = new ItemCounterfitKeys().setUnlocalizedName("key_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_pair"); key_fake = new ItemKey().setUnlocalizedName("key_fake").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_gold"); pin = new ItemCustomLore().setUnlocalizedName("pin").setMaxStackSize(8).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pin"); @@ -6872,6 +6874,7 @@ public class ModItems { //Keys and Locks GameRegistry.registerItem(key, key.getUnlocalizedName()); GameRegistry.registerItem(key_red, key_red.getUnlocalizedName()); + GameRegistry.registerItem(key_red_cracked, key_red_cracked.getUnlocalizedName()); GameRegistry.registerItem(key_kit, key_kit.getUnlocalizedName()); GameRegistry.registerItem(key_fake, key_fake.getUnlocalizedName()); GameRegistry.registerItem(mech_key, mech_key.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index fc7d9bc9c..080f463d2 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -347,7 +347,9 @@ public class MainRegistry { ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.bathwater), 1, 1, 1)); ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.serum), 1, 1, 5)); ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.no9), 1, 1, 5)); + ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.key_red_cracked), 1, 1, 5)); ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.heart_piece), 1, 1, 1)); + ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.key_red_cracked), 1, 1, 5)); ChestGenHooks.addItem(ChestGenHooks.PYRAMID_DESERT_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.heart_piece), 1, 1, 1)); ChestGenHooks.addItem(ChestGenHooks.PYRAMID_JUNGLE_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.heart_piece), 1, 1, 1)); ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.scrumpy), 1, 1, 1)); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index d0ab5626f..edd594447 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -322,8 +322,9 @@ public class ModEventHandler { event.entityLiving.dropItem(ModItems.bandaid, 1); } - if(event.entityLiving instanceof IMob && event.entityLiving.getRNG().nextInt(1000) == 0) { - event.entityLiving.dropItem(ModItems.heart_piece, 1); + if(event.entityLiving instanceof IMob) { + if(event.entityLiving.getRNG().nextInt(1000) == 0) event.entityLiving.dropItem(ModItems.heart_piece, 1); + if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.key_red_cracked, 1); } if(event.entityLiving instanceof EntityCyberCrab && event.entityLiving.getRNG().nextInt(500) == 0) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 83a7ea76a..825ebcafd 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2216,6 +2216,7 @@ item.key.name=Schlüssel item.key_fake.name=Gefälschter Schlüssel item.key_kit.name=Schlüssel-Imitationskit item.key_red.name=Roter Schlüssel +item.key_red_cracked.name=Zerbrochener Schlüssel item.kit_toolbox.name=Werkzeugkasten item.kit_toolbox_empty.name=Leerer Werkzeugkasten item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uran-Thorium-Kristallmatrix diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ae9250687..bd97239b7 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2964,6 +2964,9 @@ item.key_kit.name=Key Imitation Kit item.key_red.name=Red Key item.key_red.desc=Explore the other side. item.key_red.desc.P11=§4e§r +item.key_red_cracked.name=Cracked Key +item.key_red_cracked.desc=??? +item.key_red.key_red_cracked.P11=§4???§r item.kit_toolbox.name=Toolbox item.kit_toolbox_empty.name=Empty Toolbox item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix diff --git a/src/main/resources/assets/hbm/textures/items/key_red_cracked.png b/src/main/resources/assets/hbm/textures/items/key_red_cracked.png new file mode 100644 index 0000000000000000000000000000000000000000..7abe81c3cc87b517928e415d6553bf3cc912ce3c GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf zb9M3azTei2)sCxYZCRx`b^1pGJ+a406SW?(tUK@MqZaGJz`^l0r$DbLrqA-pg>DV@ zq8F_53#>(dJW)9ns;vFW%hl%h?sXxBiu;BCAIeL*zvjQs&WWOh+IC4&TrL(d3W@>q z8CsTqxUJ}xU?g@RD|+>;V@G$zZgag=bnzV9fnQ%6I|L-_mX`l5*dy+!k*0Cr|GHg3 P?=X0}`njxgN@xNA@_J|f literal 0 HcmV?d00001 From 67980608acb1bfcb21370d03d67602480b8ec8f0 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 28 Jan 2024 21:37:40 +0100 Subject: [PATCH 122/376] oops --- changelog | 6 + gradle.properties | 2 +- .../hbm/entity/effect/EntityFalloutRain.java | 15 +- .../hbm/entity/effect/EntityNukeTorex.java | 2 + .../container/ContainerFurnaceBrick.java | 3 +- .../java/com/hbm/items/tool/ItemPipette.java | 3 +- .../java/com/hbm/items/tool/ItemWandD.java | 10 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../com/hbm/main/ModEventHandlerRenderer.java | 30 +- .../entity/item/RenderFallingBlockNT.java | 42 +- .../render/tileentity/RenderConnector.java | 1 + .../hbm/render/tileentity/RenderPylon.java | 2 + .../render/tileentity/RenderPylonLarge.java | 1 + .../storage/TileEntityMachineFluidTank.java | 2 + src/main/java/com/hbm/util/TrackerUtil.java | 2 +- .../hbm/models/machines/hydrotreater.obj | 2311 +++++++++++++++++ .../textures/models/machines/hydrotreater.png | Bin 0 -> 941 bytes 17 files changed, 2381 insertions(+), 53 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/machines/hydrotreater.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/hydrotreater.png diff --git a/changelog b/changelog index 386439537..265da8cbc 100644 --- a/changelog +++ b/changelog @@ -46,6 +46,7 @@ * Iron furnaces now have a 20% faster base smelting speed, making them complete operations in 8 seconds instead of 10 without upgrades * Due to rising chlorine prices and a failing halogen market, the recipe of combination smelting chlorocalcite into chlorine and calcium has been added back * For legacy reasons, the chlorocalcite processing chain involving chemical plants and electrolyzers will continue to work +* Outer crater biomes can no longer override inner crater biomes, allowing craters to be "cleaned" by nuking them again with lower yield weapons ## Fixed * Fixed basalt ores dropping their items with invalid metadata @@ -53,3 +54,8 @@ * Fixed an issue where repeatedly opening and closing certain doors would cause their sound loop to get stuck running forever * Fixed radar screens behaving weirdly when out of then intended range. The max interaction range for radars is now infinite, and radars will send a second information packet to players near connected radars * Fixed very rare bug where waiting for wood ash to build up in the wood burner and then clearing the slot will remove twice as much ash on the internal counter for the initial ash item created +* Fixed crater biome fog tinting applying even if there is no nearby crater biome, causing oddities like underground fog being all white instead of being dark as it should be +* Crater biome fog no longer applies underwater, fixing an issue where being in water would cause the fog to be white instead of water-colored +* Fixed "pipette not empty" message crashing servers +* Fixed crash caused by certain modded blocks like Thermal's lumium lights being turned into falling blocks by impulse grenades or nuke aftereffects +* Fixed receiver subscription persisting when 256k tanks explode, causing them to infinitely receive and the void fluids diff --git a/gradle.properties b/gradle.properties index 211ed111d..d6e5796c3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4851 +mod_build_number=4858 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 458419d3d..5ba2952f4 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -64,7 +64,7 @@ public class EntityFalloutRain extends Entity { for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { double percent = Math.hypot(x - posX, z - posZ) * 100 / getScale(); stomp(x, z, percent); - BiomeGenBase biome = getBiomeChange(percent, getScale()); + BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z)); if(biome != null) { WorldUtil.setBiome(worldObj, x, z, biome); biomeModified = true; @@ -84,7 +84,7 @@ public class EntityFalloutRain extends Entity { if(distance <= getScale()) { double percent = distance * 100 / getScale(); stomp(x, z, percent); - BiomeGenBase biome = getBiomeChange(percent, getScale()); + BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z)); if(biome != null) { WorldUtil.setBiome(worldObj, x, z, biome); biomeModified = true; @@ -114,11 +114,14 @@ public class EntityFalloutRain extends Entity { } } - public static BiomeGenBase getBiomeChange(double dist, int scale) { + public static BiomeGenBase getBiomeChange(double dist, int scale, BiomeGenBase original) { if(!WorldConfig.enableCraterBiomes) return null; - if(scale >= 150 && dist < 15) return BiomeGenCraterBase.craterInnerBiome; - if(scale >= 100 && dist < 55) return BiomeGenCraterBase.craterBiome; - if(scale >= 25) return BiomeGenCraterBase.craterOuterBiome; + if(scale >= 150 && dist < 15) + return BiomeGenCraterBase.craterInnerBiome; + if(scale >= 100 && dist < 55 && original != BiomeGenCraterBase.craterInnerBiome) + return BiomeGenCraterBase.craterBiome; + if(scale >= 25 && original != BiomeGenCraterBase.craterInnerBiome && original != BiomeGenCraterBase.craterBiome) + return BiomeGenCraterBase.craterOuterBiome; return null; } diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 628416174..1cb44d301 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -552,6 +552,7 @@ public class EntityNukeTorex extends Entity { public static void statFac(World world, double x, double y, double z, float scale) { EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)); torex.setPosition(x, y, z); + torex.forceSpawn = true; world.spawnEntityInWorld(torex); TrackerUtil.setTrackingRange(world, torex, 1000); } @@ -559,6 +560,7 @@ public class EntityNukeTorex extends Entity { public static void statFacBale(World world, double x, double y, double z, float scale) { EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)).setType(1); torex.setPosition(x, y, z); + torex.forceSpawn = true; world.spawnEntityInWorld(torex); TrackerUtil.setTrackingRange(world, torex, 1000); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java b/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java index 5492d2478..6c362144f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java +++ b/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java @@ -1,6 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotSmelting; import com.hbm.tileentity.machine.TileEntityFurnaceBrick; import com.hbm.util.InventoryUtil; @@ -23,7 +24,7 @@ public class ContainerFurnaceBrick extends Container { //fuel this.addSlotToContainer(new Slot(tedf, 1, 35, 17)); //output - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 2, 116, 35)); + this.addSlotToContainer(new SlotSmelting(invPlayer.player, tedf, 2, 116, 35)); //ash this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 3, 35, 53)); diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index b7829ae2c..110dee982 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -16,6 +16,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -92,7 +93,7 @@ public class ItemPipette extends Item implements IFillableItem { stack.stackTagCompound.setShort("capacity", (short) a); player.addChatMessage(new ChatComponentText(a + "/" + this.getMaxFill() + "mB")); } else { - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKey("desc.item.pipette.noEmpty"))); + player.addChatMessage(new ChatComponentTranslation("desc.item.pipette.noEmpty")); } } return stack; diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 8d642887d..482b03486 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -4,10 +4,6 @@ import java.util.List; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; -import com.hbm.util.BobMathUtil; -import com.hbm.util.TrackerUtil; -import com.hbm.world.WorldUtil; -import com.hbm.world.biome.BiomeGenCraterBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -71,11 +67,7 @@ public class ItemWandD extends Item { if(!del.isEmpty()) { for(EntityNukeTorex torex : del) torex.setDead(); } else { - EntityNukeTorex torex = new EntityNukeTorex(world); - torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); - torex.setScale((float) BobMathUtil.squirt( 1.5 ) * 1.5F); - world.spawnEntityInWorld(torex); - TrackerUtil.setTrackingRange(world, torex, 1000); + EntityNukeTorex.statFac(world, pos.blockX, pos.blockY + 1, pos.blockZ, 150); } /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 49b97021c..713dc1565 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4851)"; + public static final String VERSION = "1.0.27 BETA (4858)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 1d589bf3a..7e2dc368a 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -16,6 +16,7 @@ import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.RenderBlocks; @@ -377,10 +378,14 @@ public class ModEventHandlerRenderer { public void tintFog(FogColors event) { EntityPlayer player = MainRegistry.proxy.me(); - Vec3 color = getFogBlendColor(player.worldObj, (int) Math.floor(player.posX), (int) Math.floor(player.posZ), event.renderPartialTicks); - event.red = (float) color.xCoord; - event.green = (float) color.yCoord; - event.blue = (float) color.zCoord; + if(player.worldObj.getBlock((int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ)).getMaterial() != Material.water) { + Vec3 color = getFogBlendColor(player.worldObj, (int) Math.floor(player.posX), (int) Math.floor(player.posZ), event.red, event.green, event.blue, event.renderPartialTicks); + if(color != null) { + event.red = (float) color.xCoord; + event.green = (float) color.yCoord; + event.blue = (float) color.zCoord; + } + } float soot = (float) (renderSoot - RadiationConfig.sootFogThreshold); float sootColor = 0.15F; @@ -408,9 +413,10 @@ public class ModEventHandlerRenderer { private static int fogX; private static int fogZ; private static Vec3 fogRGBMultiplier; + private static boolean doesBiomeApply = false; /** Same procedure as getting the blended sky color but for fog */ - public static Vec3 getFogBlendColor(World world, int playerX, int playerZ, double partialTicks) { + public static Vec3 getFogBlendColor(World world, int playerX, int playerZ, float red, float green, float blue, double partialTicks) { if(playerX == fogX && playerZ == fogZ && fogInit) return fogRGBMultiplier; @@ -428,11 +434,12 @@ public class ModEventHandlerRenderer { float b = 0F; int divider = 0; + doesBiomeApply = false; for(int x = -distance; x <= distance; x++) { for(int z = -distance; z <= distance; z++) { BiomeGenBase biome = world.getBiomeGenForCoords(playerX + x, playerZ + z); - Vec3 color = getBiomeFogColors(world, biome, partialTicks); + Vec3 color = getBiomeFogColors(world, biome, red, green, blue, partialTicks); r += color.xCoord; g += color.yCoord; b += color.zCoord; @@ -443,17 +450,12 @@ public class ModEventHandlerRenderer { fogX = playerX; fogZ = playerZ; - fogRGBMultiplier = Vec3.createVectorHelper(r / divider, g / divider, b / divider); + if(doesBiomeApply) fogRGBMultiplier = Vec3.createVectorHelper(r / divider, g / divider, b / divider); return fogRGBMultiplier; } /** Returns the current biome's fog color adjusted for brightness if in a crater, or the world's cached fog color if not */ - public static Vec3 getBiomeFogColors(World world, BiomeGenBase biome, double partialTicks) { - - Vec3 worldFog = world.getFogColor((float) partialTicks); - double r = worldFog.xCoord; - double g = worldFog.yCoord; - double b = worldFog.zCoord; + public static Vec3 getBiomeFogColors(World world, BiomeGenBase biome, float r, float g, float b, double partialTicks) { if(biome instanceof BiomeGenCraterBase) { int color = biome.getSkyColorByTemp(biome.temperature); @@ -466,6 +468,8 @@ public class ModEventHandlerRenderer { r *= skyBrightness; g *= skyBrightness; b *= skyBrightness; + + doesBiomeApply = true; } return Vec3.createVectorHelper(r, g, b); diff --git a/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java index e42ebd0f2..ad73dcc96 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java +++ b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java @@ -32,27 +32,29 @@ public class RenderFallingBlockNT extends Render { int iY = MathHelper.floor_double(entity.posY); int iZ = MathHelper.floor_double(entity.posZ); - if(block != null && block != world.getBlock(iX, iY, iZ)) { - GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - this.bindEntityTexture(entity); - GL11.glDisable(GL11.GL_LIGHTING); - - this.renderBlocks.blockAccess = world; - - if(block instanceof BlockFallingNT && ((BlockFallingNT) block).shouldOverrideRenderer()) { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - ((BlockFallingNT) block).overrideRenderer(entity, renderBlocks, tessellator); - tessellator.draw(); - } else { - this.renderBlocks.setRenderBoundsFromBlock(block); - this.renderBlocks.renderBlockSandFalling(block, world, iX, iY, iZ, entity.getDataWatcher().getWatchableObjectInt(11)); + GL11.glPushMatrix(); + try { + if(block != null && block != world.getBlock(iX, iY, iZ)) { + GL11.glTranslated(x, y, z); + this.bindEntityTexture(entity); + GL11.glDisable(GL11.GL_LIGHTING); + + this.renderBlocks.blockAccess = world; + + if(block instanceof BlockFallingNT && ((BlockFallingNT) block).shouldOverrideRenderer()) { + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + ((BlockFallingNT) block).overrideRenderer(entity, renderBlocks, tessellator); + tessellator.draw(); + } else { + this.renderBlocks.setRenderBoundsFromBlock(block); + this.renderBlocks.renderBlockSandFalling(block, world, iX, iY, iZ, entity.getDataWatcher().getWatchableObjectInt(11)); + } + + GL11.glEnable(GL11.GL_LIGHTING); } - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } + } catch(Exception ex) { } + GL11.glPopMatrix(); } protected ResourceLocation getEntityTexture(EntityFallingBlockNT entity) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderConnector.java b/src/main/java/com/hbm/render/tileentity/RenderConnector.java index bbd6b0c5e..0c829b8ea 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderConnector.java +++ b/src/main/java/com/hbm/render/tileentity/RenderConnector.java @@ -12,6 +12,7 @@ public class RenderConnector extends RenderPylonBase { @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { TileEntityConnector con = (TileEntityConnector) te; + GL11.glEnable(GL11.GL_LIGHTING); GL11.glPushMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylon.java b/src/main/java/com/hbm/render/tileentity/RenderPylon.java index f36a62bbf..1256b9d6a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylon.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylon.java @@ -23,6 +23,8 @@ public class RenderPylon extends RenderPylonBase { public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { TileEntityPylon pyl = (TileEntityPylon)te; + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F - ((1F / 16F) * 14F), (float) z + 0.5F); GL11.glRotatef(180, 0F, 0F, 1F); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java b/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java index a5fca8bb9..8df4d64fb 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java @@ -14,6 +14,7 @@ public class RenderPylonLarge extends RenderPylonBase { public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); switch(tile.getBlockMetadata() - BlockDummyable.offset) { case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index ebb5b49e1..5e34651e2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -128,6 +128,8 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements tank.loadTank(2, 3, slots); tank.setType(0, 1, slots); + } else { + for(DirPos pos : getConPos()) this.tryUnsubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ()); } byte comp = this.getComparatorPower(); //comparator shit diff --git a/src/main/java/com/hbm/util/TrackerUtil.java b/src/main/java/com/hbm/util/TrackerUtil.java index 62140046e..5990c8b21 100644 --- a/src/main/java/com/hbm/util/TrackerUtil.java +++ b/src/main/java/com/hbm/util/TrackerUtil.java @@ -47,7 +47,7 @@ public class TrackerUtil { if(world instanceof WorldServer) { WorldServer server = (WorldServer) world; EntityTrackerEntry entry = getTrackerEntry(server, e.getEntityId()); - entry.blocksDistanceThreshold = range; + if(entry != null) entry.blocksDistanceThreshold = range; } } } diff --git a/src/main/resources/assets/hbm/models/machines/hydrotreater.obj b/src/main/resources/assets/hbm/models/machines/hydrotreater.obj new file mode 100644 index 000000000..ff351449e --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/hydrotreater.obj @@ -0,0 +1,2311 @@ +# Blender v2.79 (sub 0) OBJ File: 'hydrotreater.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v 1.500000 0.125000 1.375000 +v 1.500000 0.125000 -1.375000 +v 1.500000 0.875000 1.375000 +v 1.500000 0.875000 -1.375000 +v 1.375000 0.125000 1.375000 +v 1.375000 0.125000 -1.375000 +v 1.375000 0.875000 1.375000 +v 1.375000 0.875000 -1.375000 +v -1.500000 0.125000 -1.375000 +v -1.500000 0.125000 1.375000 +v -1.500000 0.875000 -1.375000 +v -1.500000 0.875000 1.375000 +v -1.375000 0.125000 -1.375000 +v -1.375000 0.125000 1.375000 +v -1.375000 0.875000 -1.375000 +v -1.375000 0.875000 1.375000 +v 1.375000 0.125000 -1.500000 +v -1.375000 0.125000 -1.500000 +v 1.375000 0.875000 -1.500000 +v -1.375000 0.875000 -1.500000 +v 1.375000 0.125000 -1.375000 +v -1.375000 0.125000 -1.375000 +v 1.375000 0.875000 -1.375000 +v -1.375000 0.875000 -1.375000 +v -1.375000 0.125000 1.500000 +v 1.375000 0.125000 1.500000 +v -1.375000 0.875000 1.500000 +v 1.375000 0.875000 1.500000 +v -1.375000 0.125000 1.375000 +v 1.375000 0.125000 1.375000 +v -1.375000 0.875000 1.375000 +v 1.375000 0.875000 1.375000 +v 0.000000 6.000000 -1.500000 +v -0.574025 6.000000 -1.385819 +v -1.060660 6.000000 -1.060660 +v -1.385819 6.000000 -0.574025 +v -1.500000 6.000000 0.000000 +v -1.385819 6.000000 0.574025 +v -1.060660 6.000000 1.060660 +v -0.574025 6.000000 1.385819 +v -0.000000 6.000000 1.500000 +v 0.574025 6.000000 1.385819 +v 1.060660 6.000000 1.060660 +v 1.385819 6.000000 0.574025 +v 1.500000 6.000000 0.000000 +v 1.385819 6.000000 -0.574025 +v 1.060660 6.000000 -1.060660 +v 0.574024 6.000000 -1.385820 +v 0.000000 5.500000 -1.500000 +v -0.574025 5.500000 -1.385819 +v -1.060660 5.500000 -1.060660 +v -1.385819 5.500000 -0.574025 +v -1.500000 5.500000 0.000000 +v -1.385819 5.500000 0.574025 +v -1.060660 5.500000 1.060660 +v -0.574025 5.500000 1.385819 +v -0.000000 5.500000 1.500000 +v 0.574025 5.500000 1.385819 +v 1.060660 5.500000 1.060660 +v 1.385819 5.500000 0.574025 +v 1.500000 5.500000 0.000000 +v 1.385819 5.500000 -0.574025 +v 1.060660 5.500000 -1.060660 +v 0.574024 5.500000 -1.385820 +v -0.000000 6.000000 -1.125000 +v -0.430519 6.000000 -1.039364 +v -0.795495 6.000000 -0.795495 +v -1.039364 6.000000 -0.430519 +v -1.125000 6.000000 0.000000 +v -1.039364 6.000000 0.430519 +v -0.795495 6.000000 0.795495 +v -0.430519 6.000000 1.039364 +v -0.000000 6.000000 1.125000 +v 0.430519 6.000000 1.039365 +v 0.795495 6.000000 0.795496 +v 1.039364 6.000000 0.430519 +v 1.125000 6.000000 0.000000 +v 1.039364 6.000000 -0.430519 +v 0.795495 6.000000 -0.795496 +v 0.430518 6.000000 -1.039365 +v -0.000000 7.000000 -0.750000 +v -0.287013 7.000000 -0.692910 +v -0.530330 7.000000 -0.530330 +v -0.692910 7.000000 -0.287013 +v -0.750000 7.000000 0.000000 +v -0.692910 7.000000 0.287013 +v -0.530330 7.000000 0.530330 +v -0.287013 7.000000 0.692910 +v -0.000000 7.000000 0.750000 +v 0.287012 7.000000 0.692910 +v 0.530330 7.000000 0.530330 +v 0.692909 7.000000 0.287013 +v 0.750000 7.000000 0.000000 +v 0.692909 7.000000 -0.287013 +v 0.530330 7.000000 -0.530330 +v 0.287012 7.000000 -0.692910 +v 0.000000 2.000000 -1.500000 +v -0.574025 2.000000 -1.385819 +v -1.060660 2.000000 -1.060660 +v -1.385819 2.000000 -0.574025 +v -1.500000 2.000000 0.000000 +v -1.385819 2.000000 0.574025 +v -1.060660 2.000000 1.060660 +v -0.574025 2.000000 1.385819 +v -0.000000 2.000000 1.500000 +v 0.574025 2.000000 1.385819 +v 1.060660 2.000000 1.060660 +v 1.385819 2.000000 0.574025 +v 1.500000 2.000000 0.000000 +v 1.385819 2.000000 -0.574025 +v 1.060660 2.000000 -1.060660 +v 0.574024 2.000000 -1.385820 +v 0.000000 2.500000 -1.500000 +v -0.574025 2.500000 -1.385819 +v -1.060660 2.500000 -1.060660 +v -1.385819 2.500000 -0.574025 +v -1.500000 2.500000 0.000000 +v -1.385819 2.500000 0.574025 +v -1.060660 2.500000 1.060660 +v -0.574025 2.500000 1.385819 +v -0.000000 2.500000 1.500000 +v 0.574025 2.500000 1.385819 +v 1.060660 2.500000 1.060660 +v 1.385819 2.500000 0.574025 +v 1.500000 2.500000 0.000000 +v 1.385819 2.500000 -0.574025 +v 1.060660 2.500000 -1.060660 +v 0.574024 2.500000 -1.385820 +v -0.000000 2.500000 -1.375000 +v -0.526190 2.500000 -1.270334 +v -0.972272 2.500000 -0.972272 +v -1.270334 2.500000 -0.526190 +v -1.375000 2.500000 0.000000 +v -1.270334 2.500000 0.526190 +v -0.972272 2.500000 0.972272 +v -0.526190 2.500000 1.270334 +v -0.000000 2.500000 1.375000 +v 0.526189 2.500000 1.270334 +v 0.972272 2.500000 0.972272 +v 1.270334 2.500000 0.526190 +v 1.375000 2.500000 0.000000 +v 1.270334 2.500000 -0.526190 +v 0.972271 2.500000 -0.972272 +v 0.526189 2.500000 -1.270335 +v -0.000000 5.500000 -1.375000 +v -0.526190 5.500000 -1.270334 +v -0.972272 5.500000 -0.972272 +v -1.270334 5.500000 -0.526190 +v -1.375000 5.500000 0.000000 +v -1.270334 5.500000 0.526190 +v -0.972272 5.500000 0.972272 +v -0.526190 5.500000 1.270334 +v -0.000000 5.500000 1.375000 +v 0.526189 5.500000 1.270334 +v 0.972272 5.500000 0.972272 +v 1.270334 5.500000 0.526190 +v 1.375000 5.500000 0.000000 +v 1.270334 5.500000 -0.526190 +v 0.972271 5.500000 -0.972272 +v 0.526189 5.500000 -1.270335 +v -0.000000 2.000000 -1.125000 +v -0.430519 2.000000 -1.039364 +v -0.795495 2.000000 -0.795495 +v -1.039364 2.000000 -0.430519 +v -1.125000 2.000000 0.000000 +v -1.039364 2.000000 0.430519 +v -0.795495 2.000000 0.795495 +v -0.430519 2.000000 1.039364 +v -0.000000 2.000000 1.125000 +v 0.430519 2.000000 1.039365 +v 0.795495 2.000000 0.795496 +v 1.039364 2.000000 0.430519 +v 1.125000 2.000000 0.000000 +v 1.039364 2.000000 -0.430519 +v 0.795495 2.000000 -0.795496 +v 0.430518 2.000000 -1.039365 +v -0.000000 1.000000 -1.125000 +v -0.430519 1.000000 -1.039364 +v -0.795495 1.000000 -0.795495 +v -1.039364 1.000000 -0.430519 +v -1.125000 1.000000 0.000000 +v -1.039364 1.000000 0.430519 +v -0.795495 1.000000 0.795495 +v -0.430519 1.000000 1.039364 +v -0.000000 1.000000 1.125000 +v 0.430519 1.000000 1.039365 +v 0.795495 1.000000 0.795496 +v 1.039364 1.000000 0.430519 +v 1.125000 1.000000 0.000000 +v 1.039364 1.000000 -0.430519 +v 0.795495 1.000000 -0.795496 +v 0.430518 1.000000 -1.039365 +v 1.250368 1.000000 0.121265 +v 1.156535 1.000000 0.139929 +v 1.103383 1.000000 0.219477 +v 1.122048 1.000000 0.313309 +v 1.201595 1.000000 0.366461 +v 1.295428 1.000000 0.347796 +v 1.348580 1.000000 0.268249 +v 1.329915 1.000000 0.174417 +v 1.250368 2.000000 0.121265 +v 1.156535 2.000000 0.139929 +v 1.103383 2.000000 0.219477 +v 1.122048 2.000000 0.313309 +v 1.201595 2.000000 0.366461 +v 1.295428 2.000000 0.347796 +v 1.348580 2.000000 0.268249 +v 1.329915 2.000000 0.174417 +v 1.201595 1.000000 -0.366461 +v 1.122048 1.000000 -0.313309 +v 1.103383 1.000000 -0.219477 +v 1.156535 1.000000 -0.139929 +v 1.250368 1.000000 -0.121265 +v 1.329915 1.000000 -0.174417 +v 1.348580 1.000000 -0.268250 +v 1.295428 1.000000 -0.347796 +v 1.201595 2.000000 -0.366461 +v 1.122048 2.000000 -0.313309 +v 1.103383 2.000000 -0.219477 +v 1.156535 2.000000 -0.139929 +v 1.250368 2.000000 -0.121265 +v 1.329915 2.000000 -0.174417 +v 1.348580 2.000000 -0.268250 +v 1.295428 2.000000 -0.347796 +v -1.250368 1.000000 -0.121264 +v -1.156535 1.000000 -0.139929 +v -1.103383 1.000000 -0.219477 +v -1.122048 1.000000 -0.313309 +v -1.201595 1.000000 -0.366461 +v -1.295428 1.000000 -0.347796 +v -1.348580 1.000000 -0.268249 +v -1.329915 1.000000 -0.174417 +v -1.250368 2.000000 -0.121264 +v -1.156535 2.000000 -0.139929 +v -1.103383 2.000000 -0.219477 +v -1.122048 2.000000 -0.313309 +v -1.201595 2.000000 -0.366461 +v -1.295428 2.000000 -0.347796 +v -1.348580 2.000000 -0.268249 +v -1.329915 2.000000 -0.174417 +v -1.201595 1.000000 0.366461 +v -1.122048 1.000000 0.313309 +v -1.103383 1.000000 0.219477 +v -1.156535 1.000000 0.139929 +v -1.250368 1.000000 0.121265 +v -1.329915 1.000000 0.174417 +v -1.348580 1.000000 0.268250 +v -1.295428 1.000000 0.347797 +v -1.201595 2.000000 0.366461 +v -1.122048 2.000000 0.313309 +v -1.103383 2.000000 0.219477 +v -1.156535 2.000000 0.139929 +v -1.250368 2.000000 0.121265 +v -1.329915 2.000000 0.174417 +v -1.348580 2.000000 0.268250 +v -1.295428 2.000000 0.347797 +v 0.121265 1.000000 -1.250368 +v 0.139929 1.000000 -1.156535 +v 0.219477 1.000000 -1.103384 +v 0.313309 1.000000 -1.122048 +v 0.366461 1.000000 -1.201595 +v 0.347796 1.000000 -1.295428 +v 0.268249 1.000000 -1.348580 +v 0.174417 1.000000 -1.329915 +v 0.121265 2.000000 -1.250368 +v 0.139929 2.000000 -1.156535 +v 0.219477 2.000000 -1.103384 +v 0.313309 2.000000 -1.122048 +v 0.366461 2.000000 -1.201595 +v 0.347796 2.000000 -1.295428 +v 0.268249 2.000000 -1.348580 +v 0.174417 2.000000 -1.329915 +v -0.366461 1.000000 -1.201595 +v -0.313309 1.000000 -1.122048 +v -0.219477 1.000000 -1.103384 +v -0.139929 1.000000 -1.156535 +v -0.121265 1.000000 -1.250368 +v -0.174417 1.000000 -1.329915 +v -0.268249 1.000000 -1.348580 +v -0.347797 1.000000 -1.295428 +v -0.366461 2.000000 -1.201595 +v -0.313309 2.000000 -1.122048 +v -0.219477 2.000000 -1.103384 +v -0.139929 2.000000 -1.156535 +v -0.121265 2.000000 -1.250368 +v -0.174417 2.000000 -1.329915 +v -0.268249 2.000000 -1.348580 +v -0.347797 2.000000 -1.295428 +v -0.121265 1.000000 1.250368 +v -0.139929 1.000000 1.156535 +v -0.219476 1.000000 1.103384 +v -0.313309 1.000000 1.122048 +v -0.366461 1.000000 1.201595 +v -0.347796 1.000000 1.295428 +v -0.268249 1.000000 1.348580 +v -0.174416 1.000000 1.329915 +v -0.121265 2.000000 1.250368 +v -0.139929 2.000000 1.156535 +v -0.219476 2.000000 1.103384 +v -0.313309 2.000000 1.122048 +v -0.366461 2.000000 1.201595 +v -0.347796 2.000000 1.295428 +v -0.268249 2.000000 1.348580 +v -0.174416 2.000000 1.329915 +v 0.366461 1.000000 1.201595 +v 0.313309 1.000000 1.122048 +v 0.219477 1.000000 1.103384 +v 0.139929 1.000000 1.156535 +v 0.121265 1.000000 1.250368 +v 0.174417 1.000000 1.329915 +v 0.268250 1.000000 1.348579 +v 0.347797 1.000000 1.295428 +v 0.366461 2.000000 1.201595 +v 0.313309 2.000000 1.122048 +v 0.219477 2.000000 1.103384 +v 0.139929 2.000000 1.156535 +v 0.121265 2.000000 1.250368 +v 0.174417 2.000000 1.329915 +v 0.268250 2.000000 1.348579 +v 0.347797 2.000000 1.295428 +v 1.325825 1.000000 0.972272 +v 1.149049 1.000000 0.899048 +v 0.972272 1.000000 0.972272 +v 0.899049 1.000000 1.149049 +v 0.972272 1.000000 1.325825 +v 1.149049 1.000000 1.399049 +v 1.325825 1.000000 1.325825 +v 1.399049 1.000000 1.149049 +v 1.325825 3.000000 0.972272 +v 1.149049 3.000000 0.899048 +v 0.972272 3.000000 0.972272 +v 0.899049 3.000000 1.149049 +v 0.972272 3.000000 1.325825 +v 1.149049 3.000000 1.399049 +v 1.325825 3.000000 1.325825 +v 1.399049 3.000000 1.149049 +v 1.274048 3.176777 0.920495 +v 1.133883 3.051777 0.883883 +v 0.883883 3.051777 1.133883 +v 0.920495 3.176777 1.274048 +v 1.060660 3.301777 1.310660 +v 1.222272 3.353553 1.222272 +v 1.310660 3.301777 1.060660 +v 1.149048 3.250000 0.795495 +v 1.097272 3.073223 0.847272 +v 0.847272 3.073223 1.097272 +v 0.795495 3.250000 1.149048 +v 0.847272 3.426777 1.097272 +v 0.972272 3.500000 0.972272 +v 1.097272 3.426777 0.847272 +v 1.008884 3.073223 0.758883 +v 1.060660 3.250000 0.707107 +v 0.707107 3.250000 1.060660 +v 0.758884 3.073223 1.008883 +v 0.758884 3.426777 1.008883 +v 0.883884 3.500000 0.883883 +v 1.008884 3.426777 0.758883 +v 0.883883 3.000000 0.883883 +v -1.325825 1.000000 -0.972271 +v -1.149049 1.000000 -0.899048 +v -0.972272 1.000000 -0.972272 +v -0.899049 1.000000 -1.149049 +v -0.972272 1.000000 -1.325825 +v -1.149049 1.000000 -1.399049 +v -1.325825 1.000000 -1.325825 +v -1.399049 1.000000 -1.149049 +v -1.325825 3.000000 -0.972271 +v -1.149049 3.000000 -0.899048 +v -0.972272 3.000000 -0.972272 +v -0.899049 3.000000 -1.149049 +v -0.972272 3.000000 -1.325825 +v -1.149049 3.000000 -1.399049 +v -1.325825 3.000000 -1.325825 +v -1.399049 3.000000 -1.149049 +v -1.274049 3.176777 -0.920495 +v -1.133883 3.051777 -0.883883 +v -0.883884 3.051777 -1.133883 +v -0.920495 3.176777 -1.274048 +v -1.060660 3.301777 -1.310660 +v -1.222272 3.353553 -1.222271 +v -1.310660 3.301777 -1.060660 +v -1.149049 3.250000 -0.795495 +v -1.097272 3.073223 -0.847272 +v -0.847272 3.073223 -1.097272 +v -0.795495 3.250000 -1.149048 +v -0.847272 3.426777 -1.097272 +v -0.972272 3.500000 -0.972272 +v -1.097272 3.426777 -0.847272 +v -1.008884 3.073223 -0.758883 +v -1.060660 3.250000 -0.707107 +v -0.707107 3.250000 -1.060660 +v -0.758884 3.073223 -1.008883 +v -0.758884 3.426777 -1.008883 +v -0.883884 3.500000 -0.883883 +v -1.008884 3.426777 -0.758883 +v -0.883883 3.000000 -0.883883 +v 0.972272 1.000000 -1.325825 +v 0.899048 1.000000 -1.149049 +v 0.972272 1.000000 -0.972272 +v 1.149049 1.000000 -0.899049 +v 1.325825 1.000000 -0.972272 +v 1.399049 1.000000 -1.149049 +v 1.325825 1.000000 -1.325825 +v 1.149048 1.000000 -1.399049 +v 0.972272 3.000000 -1.325825 +v 0.899048 3.000000 -1.149049 +v 0.972272 3.000000 -0.972272 +v 1.149049 3.000000 -0.899049 +v 1.325825 3.000000 -0.972272 +v 1.399049 3.000000 -1.149049 +v 1.325825 3.000000 -1.325825 +v 1.149048 3.000000 -1.399049 +v 0.920495 3.176776 -1.274048 +v 0.883883 3.051776 -1.133883 +v 1.133883 3.051776 -0.883883 +v 1.274048 3.176776 -0.920495 +v 1.310660 3.301776 -1.060660 +v 1.222272 3.353553 -1.222272 +v 1.060660 3.301776 -1.310660 +v 0.795495 3.250000 -1.149048 +v 0.847272 3.073223 -1.097272 +v 1.097272 3.073223 -0.847272 +v 1.149048 3.250000 -0.795495 +v 1.097272 3.426776 -0.847272 +v 0.972272 3.500000 -0.972272 +v 0.847272 3.426776 -1.097272 +v 0.758883 3.073223 -1.008884 +v 0.707107 3.250000 -1.060660 +v 1.060660 3.250000 -0.707107 +v 1.008884 3.073223 -0.758883 +v 1.008884 3.426776 -0.758883 +v 0.883884 3.500000 -0.883883 +v 0.758884 3.426776 -1.008883 +v 0.883883 3.000000 -0.883883 +v -0.972272 1.000000 1.325825 +v -0.899048 1.000000 1.149049 +v -0.972272 1.000000 0.972272 +v -1.149049 1.000000 0.899049 +v -1.325825 1.000000 0.972272 +v -1.399049 1.000000 1.149049 +v -1.325825 1.000000 1.325825 +v -1.149048 1.000000 1.399049 +v -0.972272 3.000000 1.325825 +v -0.899048 3.000000 1.149049 +v -0.972272 3.000000 0.972272 +v -1.149049 3.000000 0.899049 +v -1.325825 3.000000 0.972272 +v -1.399049 3.000000 1.149049 +v -1.325825 3.000000 1.325825 +v -1.149048 3.000000 1.399049 +v -0.920495 3.176776 1.274049 +v -0.883883 3.051776 1.133883 +v -1.133883 3.051776 0.883883 +v -1.274048 3.176776 0.920495 +v -1.310660 3.301776 1.060660 +v -1.222272 3.353553 1.222272 +v -1.060660 3.301776 1.310660 +v -0.795495 3.250000 1.149049 +v -0.847272 3.073223 1.097272 +v -1.097272 3.073223 0.847272 +v -1.149048 3.250000 0.795495 +v -1.097272 3.426776 0.847272 +v -0.972272 3.500000 0.972272 +v -0.847272 3.426776 1.097272 +v -0.758883 3.073223 1.008883 +v -0.707107 3.250000 1.060660 +v -1.060660 3.250000 0.707107 +v -1.008883 3.073223 0.758883 +v -1.008883 3.426776 0.758883 +v -0.883884 3.500000 0.883883 +v -0.758884 3.426776 1.008884 +v -0.883883 3.000000 0.883883 +v 1.500000 0.312500 -0.812500 +v 1.500000 0.687500 -0.812500 +v 1.500000 0.312500 -1.187500 +v 1.500000 0.687500 -1.187500 +v 1.375000 0.312500 -1.187500 +v 1.375000 0.312500 -0.812500 +v 1.375000 0.687500 -0.812500 +v 1.375000 0.687500 -1.187500 +v 1.500000 0.312500 1.187500 +v 1.500000 0.687500 1.187500 +v 1.500000 0.312500 0.812500 +v 1.500000 0.687500 0.812500 +v 1.375000 0.312500 0.812500 +v 1.375000 0.312500 1.187500 +v 1.375000 0.687500 1.187500 +v 1.375000 0.687500 0.812500 +v -1.500000 0.312500 0.812500 +v -1.500000 0.687500 0.812500 +v -1.500000 0.312500 1.187500 +v -1.500000 0.687500 1.187500 +v -1.375000 0.312500 1.187500 +v -1.375000 0.312500 0.812500 +v -1.375000 0.687500 0.812500 +v -1.375000 0.687500 1.187500 +v -1.500000 0.312500 -1.187500 +v -1.500000 0.687500 -1.187500 +v -1.500000 0.312500 -0.812500 +v -1.500000 0.687500 -0.812500 +v -1.375000 0.312500 -0.812500 +v -1.375000 0.312500 -1.187500 +v -1.375000 0.687500 -1.187500 +v -1.375000 0.687500 -0.812500 +v -0.812500 0.312500 -1.500000 +v -0.812500 0.687500 -1.500000 +v -1.187500 0.312500 -1.500000 +v -1.187500 0.687500 -1.500000 +v -1.187500 0.312500 -1.375000 +v -0.812500 0.312500 -1.375000 +v -0.812500 0.687500 -1.375000 +v -1.187500 0.687500 -1.375000 +v 1.187500 0.312500 -1.500000 +v 1.187500 0.687500 -1.500000 +v 0.812500 0.312500 -1.500000 +v 0.812500 0.687500 -1.500000 +v 0.812500 0.312500 -1.375000 +v 1.187500 0.312500 -1.375000 +v 1.187500 0.687500 -1.375000 +v 0.812500 0.687500 -1.375000 +v 0.812500 0.312500 1.500000 +v 0.812500 0.687500 1.500000 +v 1.187500 0.312500 1.500000 +v 1.187500 0.687500 1.500000 +v 1.187500 0.312500 1.375000 +v 0.812500 0.312500 1.375000 +v 0.812500 0.687500 1.375000 +v 1.187500 0.687500 1.375000 +v -1.187500 0.312500 1.500000 +v -1.187500 0.687500 1.500000 +v -0.812500 0.312500 1.500000 +v -0.812500 0.687500 1.500000 +v -0.812500 0.312500 1.375000 +v -1.187500 0.312500 1.375000 +v -1.187500 0.687500 1.375000 +v -0.812500 0.687500 1.375000 +vt 0.240000 -0.000000 +vt -0.000000 0.375000 +vt -0.000000 -0.000000 +vt -0.000000 0.500000 +vt 0.240000 0.875000 +vt -0.000000 0.875000 +vt 0.000000 0.890625 +vt 0.010000 0.984375 +vt 0.000000 0.984375 +vt 0.230000 0.875000 +vt 0.010000 0.890625 +vt 0.010000 0.875000 +vt 0.240000 0.984375 +vt 0.230000 0.890625 +vt 0.240000 0.890625 +vt 0.000000 0.890625 +vt 0.010000 0.984375 +vt 0.000000 0.984375 +vt 0.010000 1.000000 +vt 0.230000 0.984375 +vt 0.230000 1.000000 +vt 0.230000 0.875000 +vt 0.010000 0.890625 +vt 0.010000 0.875000 +vt 0.240000 0.984375 +vt 0.230000 0.890625 +vt 0.240000 0.890625 +vt 0.010000 1.000000 +vt 0.230000 0.984375 +vt 0.230000 1.000000 +vt 0.000000 0.890625 +vt 0.010000 0.984375 +vt 0.000000 0.984375 +vt 0.230000 0.875000 +vt 0.010000 0.890625 +vt 0.010000 0.875000 +vt 0.240000 0.984375 +vt 0.230000 0.890625 +vt 0.240000 0.890625 +vt 0.000000 0.890625 +vt 0.010000 0.984375 +vt 0.000000 0.984375 +vt 0.010000 1.000000 +vt 0.230000 0.984375 +vt 0.230000 1.000000 +vt 0.230000 0.875000 +vt 0.010000 0.890625 +vt 0.010000 0.875000 +vt 0.240000 0.984375 +vt 0.230000 0.890625 +vt 0.240000 0.890625 +vt 0.010000 1.000000 +vt 0.230000 0.984375 +vt 0.230000 1.000000 +vt 0.230000 0.390625 +vt 0.240000 0.375000 +vt 0.230000 0.390625 +vt -0.000000 0.375000 +vt 0.240000 0.375000 +vt 0.230000 0.484375 +vt 0.240000 0.500000 +vt -0.000000 0.500000 +vt 0.230000 0.484375 +vt 0.240000 0.500000 +vt 0.010000 0.390625 +vt 0.010000 0.484375 +vt -0.000000 0.500000 +vt 0.230000 0.484375 +vt 0.240000 0.500000 +vt 0.230000 0.390625 +vt -0.000000 0.375000 +vt 0.240000 0.375000 +vt 0.230000 0.390625 +vt 0.000000 0.375000 +vt 0.240000 0.375000 +vt 0.000000 0.500000 +vt 0.230000 0.484375 +vt 0.240000 0.500000 +vt 0.010000 0.390625 +vt 0.010000 0.484375 +vt 0.010000 0.390625 +vt 0.010000 0.484375 +vt 0.010000 0.484375 +vt 0.010000 0.390625 +vt 0.600000 0.703125 +vt 0.560000 0.750000 +vt 0.560000 0.703125 +vt 0.280000 0.703125 +vt 0.315000 0.750000 +vt 0.280000 0.750000 +vt 0.640000 0.703125 +vt 0.600000 0.750000 +vt 0.320000 0.703125 +vt 0.355000 0.750000 +vt 0.320000 0.750000 +vt 0.680000 0.703125 +vt 0.640000 0.750000 +vt 0.360000 0.703125 +vt 0.395000 0.750000 +vt 0.360000 0.750000 +vt 0.760000 0.703125 +vt 0.720000 0.750000 +vt 0.720000 0.703125 +vt 0.680000 0.750000 +vt 0.400000 0.703125 +vt 0.435000 0.750000 +vt 0.400000 0.750000 +vt 0.800000 0.703125 +vt 0.760000 0.750000 +vt 0.440000 0.703125 +vt 0.475000 0.750000 +vt 0.445000 0.750000 +vt 0.835000 0.750000 +vt 0.800000 0.750000 +vt 0.480000 0.703125 +vt 0.515000 0.750000 +vt 0.480000 0.750000 +vt 0.840000 0.703125 +vt 0.875000 0.750000 +vt 0.840000 0.750000 +vt 0.520000 0.703125 +vt 0.555000 0.750000 +vt 0.520000 0.750000 +vt 0.240000 0.750000 +vt 0.240000 0.703125 +vt 0.999923 0.451491 +vt 0.941046 0.546755 +vt 0.880076 0.454759 +vt 0.640000 0.234375 +vt 0.680000 0.250000 +vt 0.640000 0.250000 +vt 0.600000 0.250000 +vt 0.600000 0.234375 +vt 0.560000 0.250000 +vt 0.560000 0.234375 +vt 0.520000 0.234375 +vt 0.520000 0.250000 +vt 0.480000 0.234375 +vt 0.480000 0.250000 +vt 0.440000 0.250000 +vt 0.440000 0.234375 +vt 0.400000 0.250000 +vt 0.400000 0.234375 +vt 0.360000 0.234375 +vt 0.360000 0.250000 +vt 0.320000 0.234375 +vt 0.320000 0.250000 +vt 0.280000 0.234375 +vt 0.280000 0.250000 +vt 0.240000 0.250000 +vt 0.240000 0.234375 +vt 0.880000 0.234375 +vt 0.840000 0.250000 +vt 0.840000 0.234375 +vt 0.800000 0.234375 +vt 0.800000 0.250000 +vt 0.760000 0.250000 +vt 0.760000 0.234375 +vt 0.720000 0.250000 +vt 0.720000 0.234375 +vt 0.680000 0.234375 +vt 0.560000 0.640625 +vt 0.600000 0.625000 +vt 0.600000 0.640625 +vt 0.640000 0.640625 +vt 0.680000 0.625000 +vt 0.680000 0.640625 +vt 0.720000 0.640625 +vt 0.720000 0.625000 +vt 0.760000 0.640625 +vt 0.760000 0.625000 +vt 0.800000 0.640625 +vt 0.840000 0.625000 +vt 0.840000 0.640625 +vt 0.880000 0.640625 +vt 0.240000 0.625000 +vt 0.280000 0.640625 +vt 0.240000 0.640625 +vt 0.320000 0.625000 +vt 0.320000 0.640625 +vt 0.360000 0.625000 +vt 0.360000 0.640625 +vt 0.400000 0.625000 +vt 0.400000 0.640625 +vt 0.440000 0.640625 +vt 0.440000 0.625000 +vt 0.480000 0.640625 +vt 0.480000 0.625000 +vt 0.520000 0.640625 +vt 0.520000 0.625000 +vt 0.280000 0.171875 +vt 0.240000 0.125000 +vt 0.275000 0.125000 +vt 0.600000 0.171875 +vt 0.560000 0.125000 +vt 0.595000 0.125000 +vt 0.315000 0.125000 +vt 0.320000 0.171875 +vt 0.640000 0.171875 +vt 0.600000 0.125000 +vt 0.635000 0.125000 +vt 0.355000 0.125000 +vt 0.360000 0.171875 +vt 0.675000 0.125000 +vt 0.680000 0.171875 +vt 0.395000 0.125000 +vt 0.400000 0.171875 +vt 0.760000 0.171875 +vt 0.715000 0.125000 +vt 0.755000 0.125000 +vt 0.720000 0.171875 +vt 0.680000 0.125000 +vt 0.435000 0.125000 +vt 0.440000 0.171875 +vt 0.800000 0.171875 +vt 0.760000 0.125000 +vt 0.795000 0.125000 +vt 0.475000 0.125000 +vt 0.480000 0.171875 +vt 0.835000 0.125000 +vt 0.840000 0.171875 +vt 0.515000 0.125000 +vt 0.520000 0.171875 +vt 0.875000 0.125000 +vt 0.880000 0.171875 +vt 0.555000 0.125000 +vt 0.560000 0.171875 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.595000 0.750000 +vt 0.635000 0.750000 +vt 0.675000 0.750000 +vt 0.755000 0.750000 +vt 0.715000 0.750000 +vt 0.795000 0.750000 +vt 0.880000 0.703125 +vt 0.275000 0.750000 +vt 0.995762 0.487446 +vt 0.983112 0.518176 +vt 0.963898 0.539003 +vt 0.918034 0.540254 +vt 0.898367 0.520487 +vt 0.885038 0.490466 +vt 0.884238 0.418804 +vt 0.896888 0.388074 +vt 0.916102 0.367247 +vt 0.938954 0.359495 +vt 0.961965 0.365996 +vt 0.981633 0.385763 +vt 0.994962 0.415784 +vt 0.880000 0.250000 +vt 0.560000 0.625000 +vt 0.640000 0.625000 +vt 0.800000 0.625000 +vt 0.880000 0.625000 +vt 0.280000 0.625000 +vt 0.240000 0.171875 +vt 0.280000 0.125000 +vt 0.320000 0.125000 +vt 0.640000 0.125000 +vt 0.360000 0.125000 +vt 0.400000 0.125000 +vt 0.440000 0.125000 +vt 0.800000 0.125000 +vt 0.480000 0.125000 +vt 0.840000 0.125000 +vt 0.520000 0.125000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.485000 0.875000 +vt 0.525000 0.875000 +vt 0.565000 0.875000 +vt 0.605000 0.875000 +vt 0.645000 0.875000 +vt 0.685000 0.875000 +vt 0.745000 0.875000 +vt 0.725000 0.875000 +vt 0.765000 0.875000 +vt 0.805000 0.875000 +vt 0.845000 0.875000 +vt 0.245000 0.875000 +vt 0.285000 0.875000 +vt 0.325000 0.875000 +vt 0.385000 0.875000 +vt 0.365000 0.875000 +vt 0.425000 0.875000 +vt 0.405000 0.875000 +vt 0.445000 0.875000 +vt 0.475000 0.000000 +vt 0.835000 0.000000 +vt 0.515000 0.000000 +vt 0.875000 0.000000 +vt 0.555000 0.000000 +vt 0.275000 0.000000 +vt 0.595000 0.000000 +vt 0.315000 -0.000000 +vt 0.635000 0.000000 +vt 0.355000 -0.000000 +vt 0.675000 -0.000000 +vt 0.395000 -0.000000 +vt 0.720000 0.125000 +vt 0.755000 -0.000000 +vt 0.715000 -0.000000 +vt 0.435000 0.000000 +vt 0.795000 -0.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 1.000000 -0.000000 +vt 0.985000 0.250000 +vt 0.985000 0.000000 +vt 0.955000 0.000000 +vt 0.940000 0.250000 +vt 0.940000 0.000000 +vt 0.925000 0.000000 +vt 0.910000 0.250000 +vt 0.910000 -0.000000 +vt 0.895000 0.000000 +vt 0.880000 0.250000 +vt 0.880000 -0.000000 +vt 0.970000 0.250000 +vt 0.970000 0.000000 +vt 0.955000 0.250000 +vt 0.925000 0.250000 +vt 0.895000 0.250000 +vt 0.910000 0.273438 +vt 0.925000 0.296875 +vt 0.910000 0.296875 +vt 0.985000 0.289062 +vt 0.970000 0.296875 +vt 0.970000 0.273438 +vt 0.955000 0.296875 +vt 0.955000 0.257812 +vt 0.925000 0.257812 +vt 0.895000 0.289062 +vt 0.895000 0.296875 +vt 0.940000 0.296875 +vt 0.940000 0.343750 +vt 0.925000 0.335938 +vt 0.910000 0.320312 +vt 0.985000 0.304688 +vt 0.970000 0.320312 +vt 0.955000 0.335938 +vt 0.895000 0.304688 +vt 0.880000 0.296875 +vt 1.000000 0.296875 +vt 0.985000 0.296875 +vt 0.955000 0.343750 +vt 0.940000 0.359375 +vt 1.000000 -0.000000 +vt 0.985000 0.250000 +vt 0.985000 0.000000 +vt 0.910000 0.343750 +vt 0.925000 0.359375 +vt 0.910000 0.359375 +vt 0.970000 0.343750 +vt 0.985000 0.359375 +vt 0.970000 0.359375 +vt 1.000000 0.343750 +vt 0.985000 0.343750 +vt 0.955000 0.359375 +vt 0.880000 0.343750 +vt 0.895000 0.359375 +vt 0.880000 0.359375 +vt 0.925000 0.343750 +vt 0.895000 0.343750 +vt 0.955000 0.000000 +vt 0.940000 0.250000 +vt 0.940000 0.000000 +vt 0.925000 0.000000 +vt 0.910000 0.250000 +vt 0.910000 -0.000000 +vt 0.895000 0.000000 +vt 0.880000 0.250000 +vt 0.880000 -0.000000 +vt 0.970000 0.250000 +vt 0.970000 0.000000 +vt 0.955000 0.250000 +vt 0.925000 0.250000 +vt 0.895000 0.250000 +vt 0.925000 0.257812 +vt 0.910000 0.296875 +vt 0.910000 0.273438 +vt 0.970000 0.273438 +vt 0.985000 0.296875 +vt 0.970000 0.296875 +vt 0.955000 0.257812 +vt 0.955000 0.296875 +vt 0.925000 0.296875 +vt 0.895000 0.296875 +vt 0.895000 0.289062 +vt 0.940000 0.296875 +vt 0.955000 0.335938 +vt 0.940000 0.343750 +vt 0.925000 0.335938 +vt 0.910000 0.320312 +vt 0.985000 0.304688 +vt 0.970000 0.320312 +vt 0.895000 0.304688 +vt 0.880000 0.296875 +vt 0.985000 0.289062 +vt 1.000000 0.296875 +vt 0.955000 0.343750 +vt 0.940000 0.359375 +vt 0.910000 0.343750 +vt 0.925000 0.359375 +vt 0.910000 0.359375 +vt 0.970000 0.343750 +vt 0.985000 0.359375 +vt 0.970000 0.359375 +vt 1.000000 0.343750 +vt 0.985000 0.343750 +vt 0.955000 0.359375 +vt 0.880000 0.343750 +vt 0.895000 0.359375 +vt 0.880000 0.359375 +vt 0.925000 0.343750 +vt 0.895000 0.343750 +vt 1.000000 -0.000000 +vt 0.985000 0.250000 +vt 0.985000 0.000000 +vt 0.955000 0.000000 +vt 0.940000 0.250000 +vt 0.940000 0.000000 +vt 0.925000 0.000000 +vt 0.910000 0.250000 +vt 0.910000 -0.000000 +vt 0.895000 0.000000 +vt 0.880000 0.250000 +vt 0.880000 -0.000000 +vt 0.970000 0.250000 +vt 0.970000 0.000000 +vt 0.955000 0.250000 +vt 0.925000 0.250000 +vt 0.895000 0.250000 +vt 0.910000 0.273438 +vt 0.925000 0.296875 +vt 0.910000 0.296875 +vt 0.985000 0.289062 +vt 0.970000 0.296875 +vt 0.970000 0.273438 +vt 0.955000 0.296875 +vt 0.955000 0.257812 +vt 0.925000 0.257812 +vt 0.895000 0.289062 +vt 0.895000 0.296875 +vt 0.940000 0.296875 +vt 0.955000 0.335938 +vt 0.940000 0.343750 +vt 0.925000 0.335938 +vt 0.910000 0.320312 +vt 0.985000 0.304688 +vt 0.970000 0.320312 +vt 0.895000 0.304688 +vt 0.880000 0.296875 +vt 1.000000 0.296875 +vt 0.985000 0.296875 +vt 0.955000 0.359375 +vt 0.940000 0.359375 +vt 1.000000 -0.000000 +vt 0.985000 0.250000 +vt 0.985000 0.000000 +vt 0.910000 0.343750 +vt 0.925000 0.359375 +vt 0.910000 0.359375 +vt 0.970000 0.343750 +vt 0.985000 0.359375 +vt 0.970000 0.359375 +vt 0.985000 0.343750 +vt 1.000000 0.359375 +vt 0.955000 0.343750 +vt 0.895000 0.343750 +vt 0.880000 0.359375 +vt 0.880000 0.343750 +vt 0.925000 0.343750 +vt 0.895000 0.359375 +vt 0.955000 0.000000 +vt 0.940000 0.250000 +vt 0.940000 0.000000 +vt 0.925000 0.000000 +vt 0.910000 0.250000 +vt 0.910000 -0.000000 +vt 0.895000 0.000000 +vt 0.880000 0.250000 +vt 0.880000 -0.000000 +vt 0.970000 0.250000 +vt 0.970000 0.000000 +vt 0.955000 0.250000 +vt 0.925000 0.250000 +vt 0.895000 0.250000 +vt 0.910000 0.273438 +vt 0.925000 0.296875 +vt 0.910000 0.296875 +vt 0.985000 0.289062 +vt 0.970000 0.296875 +vt 0.970000 0.273438 +vt 0.955000 0.296875 +vt 0.955000 0.257812 +vt 0.925000 0.257812 +vt 0.895000 0.289062 +vt 0.895000 0.296875 +vt 0.940000 0.296875 +vt 0.955000 0.335938 +vt 0.940000 0.343750 +vt 0.925000 0.335938 +vt 0.910000 0.320312 +vt 0.985000 0.304688 +vt 0.970000 0.320312 +vt 0.895000 0.304688 +vt 0.880000 0.296875 +vt 1.000000 0.296875 +vt 0.985000 0.296875 +vt 0.955000 0.359375 +vt 0.940000 0.359375 +vt 0.910000 0.343750 +vt 0.925000 0.359375 +vt 0.910000 0.359375 +vt 0.985000 0.343750 +vt 0.970000 0.359375 +vt 0.970000 0.343750 +vt 1.000000 0.343750 +vt 0.985000 0.359375 +vt 0.955000 0.343750 +vt 0.895000 0.343750 +vt 0.880000 0.359375 +vt 0.880000 0.343750 +vt 0.925000 0.343750 +vt 0.895000 0.359375 +vt 0.505000 0.875000 +vt 0.545000 0.875000 +vt 0.585000 0.875000 +vt 0.625000 0.875000 +vt 0.665000 0.875000 +vt 0.705000 0.875000 +vt 0.785000 0.875000 +vt 0.825000 0.875000 +vt 0.865000 0.875000 +vt 0.265000 0.875000 +vt 0.305000 0.875000 +vt 0.345000 0.875000 +vt 0.465000 0.875000 +vt 0.440000 -0.000000 +vt 0.800000 -0.000000 +vt 0.480000 -0.000000 +vt 0.840000 -0.000000 +vt 0.520000 -0.000000 +vt 0.240000 0.000000 +vt 0.560000 -0.000000 +vt 0.280000 -0.000000 +vt 0.600000 0.000000 +vt 0.320000 0.000000 +vt 0.640000 -0.000000 +vt 0.360000 0.000000 +vt 0.720000 -0.000000 +vt 0.680000 0.000000 +vt 0.400000 -0.000000 +vt 0.760000 -0.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.359375 +vt 1.000000 0.359375 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.343750 +vt 1.000000 0.359375 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn 0.8651 0.3511 0.3583 +vn 0.6621 0.3511 0.6621 +vn 0.9363 0.3511 0.0000 +vn 0.8651 0.3511 -0.3583 +vn 0.6621 0.3511 -0.6621 +vn 0.3583 0.3511 -0.8651 +vn -0.0000 0.3511 -0.9363 +vn -0.3583 0.3511 -0.8651 +vn -0.6621 0.3511 -0.6621 +vn -0.8651 0.3511 -0.3583 +vn -0.9363 0.3511 -0.0000 +vn -0.8651 0.3511 0.3583 +vn -0.6621 0.3511 0.6621 +vn -0.3583 0.3511 0.8651 +vn -0.0000 0.3511 0.9363 +vn 0.3583 0.3511 0.8651 +vn 0.8315 0.0000 -0.5556 +vn 0.9808 0.0000 0.1951 +vn 0.5556 0.0000 0.8315 +vn -0.1951 0.0000 0.9808 +vn -0.8315 0.0000 0.5556 +vn -0.9808 0.0000 -0.1951 +vn -0.5556 0.0000 -0.8315 +vn 0.1951 0.0000 -0.9808 +vn 0.5556 0.0000 -0.8315 +vn 0.9808 0.0000 -0.1951 +vn 0.8315 0.0000 0.5556 +vn 0.1951 0.0000 0.9808 +vn -0.5556 0.0000 0.8315 +vn -0.9808 0.0000 0.1951 +vn -0.8315 0.0000 -0.5556 +vn -0.1951 0.0000 -0.9808 +vn 0.0372 -0.1363 -0.9900 +vn 0.6947 0.1866 0.6947 +vn -0.6727 0.0196 0.7396 +vn -0.5000 -0.7071 -0.5000 +vn 0.7396 0.0196 -0.6727 +vn 0.9891 0.1448 0.0283 +vn 0.0283 0.1448 0.9891 +vn -0.9900 -0.1363 0.0372 +vn -0.0945 0.5294 0.8431 +vn -0.6565 0.0671 0.7513 +vn 0.7513 0.0671 -0.6565 +vn 0.8431 0.5294 -0.0945 +vn -0.8620 -0.4617 0.2090 +vn 0.5000 0.7071 0.5000 +vn 0.1319 0.9824 0.1319 +vn -0.3780 0.7194 0.5828 +vn -0.6923 0.0473 0.7200 +vn 0.4172 -0.6737 -0.6099 +vn 0.7200 0.0473 -0.6923 +vn 0.5828 0.7194 -0.3780 +vn -0.6099 -0.6737 0.4172 +vn 0.2090 -0.4617 -0.8620 +vn -0.0372 -0.1363 0.9900 +vn -0.5000 0.7071 0.5000 +vn 0.5000 -0.7071 -0.5000 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 0.5000 +vn -0.6947 0.1866 -0.6947 +vn 0.6727 0.0196 -0.7396 +vn 0.5000 -0.7071 0.5000 +vn -0.7396 0.0196 0.6727 +vn -0.9891 0.1448 -0.0283 +vn -0.0283 0.1448 -0.9891 +vn 0.9900 -0.1363 -0.0372 +vn 0.6565 0.0671 -0.7513 +vn -0.2090 -0.4617 0.8620 +vn -0.7513 0.0671 0.6565 +vn -0.8431 0.5294 0.0945 +vn 0.0945 0.5294 -0.8431 +vn 0.8620 -0.4617 -0.2090 +vn -0.5000 0.7071 -0.5000 +vn -0.5828 0.7194 0.3780 +vn -0.1319 0.9824 -0.1319 +vn 0.3780 0.7194 -0.5828 +vn 0.6923 0.0473 -0.7200 +vn -0.4172 -0.6737 0.6099 +vn -0.7200 0.0473 0.6923 +vn 0.6099 -0.6737 -0.4172 +vn -0.9900 -0.1363 -0.0372 +vn 0.6947 0.1866 -0.6947 +vn 0.7396 0.0196 0.6727 +vn -0.6727 0.0196 -0.7396 +vn 0.0283 0.1448 -0.9891 +vn 0.9891 0.1448 -0.0283 +vn 0.0372 -0.1363 0.9900 +vn 0.8431 0.5294 0.0945 +vn 0.7513 0.0671 0.6565 +vn -0.6565 0.0671 -0.7513 +vn -0.0945 0.5294 -0.8431 +vn 0.2090 -0.4617 0.8620 +vn -0.3780 0.7194 -0.5828 +vn 0.1319 0.9824 -0.1319 +vn 0.5828 0.7194 0.3780 +vn 0.7200 0.0473 0.6923 +vn -0.6099 -0.6737 -0.4172 +vn -0.6923 0.0473 -0.7200 +vn 0.4172 -0.6737 0.6099 +vn -0.8620 -0.4617 -0.2090 +vn 0.9900 -0.1363 0.0372 +vn -0.6947 0.1866 0.6947 +vn -0.7396 0.0196 -0.6727 +vn 0.6727 0.0196 0.7396 +vn -0.0283 0.1448 0.9891 +vn -0.9891 0.1448 0.0283 +vn -0.0372 -0.1363 -0.9900 +vn -0.8431 0.5294 -0.0945 +vn -0.7513 0.0671 -0.6565 +vn 0.6565 0.0671 0.7513 +vn 0.0945 0.5294 0.8431 +vn -0.2090 -0.4617 -0.8620 +vn 0.3780 0.7194 0.5828 +vn -0.1319 0.9824 0.1319 +vn -0.5828 0.7194 -0.3780 +vn -0.7200 0.0473 -0.6923 +vn 0.6099 -0.6737 0.4172 +vn 0.6923 0.0473 0.7200 +vn -0.4172 -0.6737 -0.6099 +vn 0.8620 -0.4617 0.2090 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 9/7/3 15/8/3 11/9/3 +f 10/10/2 13/11/2 9/12/2 +f 12/13/4 14/14/4 10/15/4 +f 14/14/5 15/8/5 13/11/5 +f 17/16/4 23/17/4 19/18/4 +f 11/19/1 16/20/1 12/21/1 +f 18/22/2 21/23/2 17/24/2 +f 20/25/3 22/26/3 18/27/3 +f 22/26/6 23/17/6 21/23/6 +f 19/28/1 24/29/1 20/30/1 +f 25/31/6 31/32/6 27/33/6 +f 26/34/2 29/35/2 25/36/2 +f 28/37/5 30/38/5 26/39/5 +f 30/38/3 31/32/3 29/35/3 +f 33/40/5 39/41/5 35/42/5 +f 27/43/1 32/44/1 28/45/1 +f 34/46/2 37/47/2 33/48/2 +f 36/49/6 38/50/6 34/51/6 +f 38/50/4 39/41/4 37/47/4 +f 35/52/1 40/53/1 36/54/1 +f 10/55/5 2/2/5 4/56/5 +f 26/57/3 4/58/3 3/59/3 +f 6/4/5 12/60/5 8/61/5 +f 8/62/3 28/63/3 7/64/3 +f 8/62/3 25/65/3 27/66/3 +f 10/55/5 8/61/5 12/60/5 +f 7/67/6 20/68/6 5/69/6 +f 18/70/6 3/71/6 1/72/6 +f 34/73/4 1/74/4 2/75/4 +f 5/76/4 36/77/4 6/78/4 +f 5/76/4 33/79/4 35/80/4 +f 18/70/6 5/69/6 20/68/6 +f 34/73/4 6/78/4 36/77/4 +f 6/4/5 9/81/5 11/82/5 +f 19/83/6 3/71/6 17/84/6 +f 3/59/3 28/63/3 26/57/3 +f 54/85/2 85/86/2 53/87/2 +f 46/88/2 79/89/2 78/90/2 +f 55/91/2 86/92/2 54/85/2 +f 47/93/2 80/94/2 79/95/2 +f 56/96/2 87/97/2 55/91/2 +f 48/98/2 81/99/2 80/100/2 +f 42/101/2 73/102/2 41/103/2 +f 41/103/2 88/104/2 56/96/2 +f 49/105/2 82/106/2 81/107/2 +f 43/108/2 74/109/2 42/101/2 +f 50/110/2 83/111/2 82/112/2 +f 43/108/2 76/113/2 75/114/2 +f 51/115/2 84/116/2 83/117/2 +f 44/118/2 77/119/2 76/120/2 +f 52/121/2 85/122/2 84/123/2 +f 46/88/2 77/124/2 45/125/2 +f 89/126/2 93/127/2 97/128/2 +f 135/129/2 152/130/2 151/131/2 +f 135/129/2 150/132/2 134/133/2 +f 134/133/2 149/134/2 133/135/2 +f 132/136/2 149/134/2 148/137/2 +f 131/138/2 148/137/2 147/139/2 +f 131/138/2 146/140/2 130/141/2 +f 130/141/2 145/142/2 129/143/2 +f 128/144/2 145/142/2 144/145/2 +f 127/146/2 144/145/2 143/147/2 +f 126/148/2 143/147/2 142/149/2 +f 126/148/2 141/150/2 125/151/2 +f 125/152/2 140/153/2 124/154/2 +f 123/155/2 140/153/2 139/156/2 +f 123/155/2 138/157/2 122/158/2 +f 122/158/2 137/159/2 121/160/2 +f 121/160/2 152/130/2 136/161/2 +f 69/162/1 166/163/1 70/164/1 +f 166/163/1 71/165/1 70/164/1 +f 71/165/1 168/166/1 72/167/1 +f 168/166/1 57/168/1 72/167/1 +f 153/169/1 58/170/1 57/168/1 +f 154/171/1 59/172/1 58/170/1 +f 59/172/1 156/173/1 60/174/1 +f 156/173/1 61/175/1 60/174/1 +f 157/176/1 62/177/1 61/178/1 +f 62/177/1 159/179/1 63/180/1 +f 63/180/1 160/181/1 64/182/1 +f 64/182/1 161/183/1 65/184/1 +f 161/183/1 66/185/1 65/184/1 +f 162/186/1 67/187/1 66/185/1 +f 163/188/1 68/189/1 67/187/1 +f 164/190/1 69/162/1 68/189/1 +f 110/191/1 173/192/1 174/193/1 +f 118/194/1 181/195/1 182/196/1 +f 110/191/1 175/197/1 111/198/1 +f 119/199/1 182/200/1 183/201/1 +f 111/198/1 176/202/1 112/203/1 +f 119/199/1 184/204/1 120/205/1 +f 112/203/1 177/206/1 113/207/1 +f 106/208/1 169/209/1 170/210/1 +f 105/211/1 184/212/1 169/209/1 +f 113/207/1 178/213/1 114/214/1 +f 107/215/1 170/216/1 171/217/1 +f 114/214/1 179/218/1 115/219/1 +f 107/215/1 172/220/1 108/221/1 +f 115/219/1 180/222/1 116/223/1 +f 108/221/1 173/224/1 109/225/1 +f 116/223/1 181/226/1 117/227/1 +f 483/228/5 482/229/5 481/230/5 +f 491/231/5 490/232/5 489/233/5 +f 483/228/3 488/234/3 484/235/3 +f 482/229/4 486/236/4 481/230/4 +f 484/235/2 487/237/2 482/229/2 +f 481/230/1 485/238/1 483/228/1 +f 491/231/3 496/239/3 492/240/3 +f 490/232/4 494/241/4 489/233/4 +f 492/240/2 495/242/2 490/232/2 +f 489/233/1 493/243/1 491/231/1 +f 499/244/6 498/245/6 497/246/6 +f 507/247/6 506/248/6 505/249/6 +f 499/244/4 504/250/4 500/251/4 +f 498/245/3 502/252/3 497/246/3 +f 500/251/2 503/253/2 498/245/2 +f 497/246/1 501/254/1 499/244/1 +f 507/247/4 512/255/4 508/256/4 +f 506/248/3 510/257/3 505/249/3 +f 508/256/2 511/258/2 506/248/2 +f 505/249/1 509/259/1 507/247/1 +f 515/260/3 514/261/3 513/262/3 +f 523/263/3 522/264/3 521/265/3 +f 515/260/6 520/266/6 516/267/6 +f 514/261/5 518/268/5 513/262/5 +f 516/267/2 519/269/2 514/261/2 +f 513/262/1 517/270/1 515/260/1 +f 523/263/6 528/271/6 524/272/6 +f 522/264/5 526/273/5 521/265/5 +f 524/272/2 527/274/2 522/264/2 +f 521/265/1 525/275/1 523/263/1 +f 531/276/4 530/277/4 529/278/4 +f 539/279/4 538/280/4 537/281/4 +f 531/276/5 536/282/5 532/283/5 +f 530/277/6 534/284/6 529/278/6 +f 532/283/2 535/285/2 530/277/2 +f 529/278/1 533/286/1 531/276/1 +f 539/279/5 544/287/5 540/288/5 +f 538/280/6 542/289/6 537/281/6 +f 540/288/2 543/290/2 538/280/2 +f 537/281/1 541/291/1 539/279/1 +f 3/1/1 4/56/1 2/2/1 +f 6/4/2 8/61/2 7/5/2 +f 9/7/3 13/11/3 15/8/3 +f 10/10/2 14/14/2 13/11/2 +f 12/13/4 16/20/4 14/14/4 +f 14/14/5 16/20/5 15/8/5 +f 17/16/4 21/23/4 23/17/4 +f 11/19/1 15/8/1 16/20/1 +f 18/22/2 22/26/2 21/23/2 +f 20/25/3 24/29/3 22/26/3 +f 22/26/6 24/29/6 23/17/6 +f 19/28/1 23/17/1 24/29/1 +f 25/31/6 29/35/6 31/32/6 +f 26/34/2 30/38/2 29/35/2 +f 28/37/5 32/44/5 30/38/5 +f 30/38/3 32/44/3 31/32/3 +f 33/40/5 37/47/5 39/41/5 +f 27/43/1 31/32/1 32/44/1 +f 34/46/2 38/50/2 37/47/2 +f 36/49/6 40/53/6 38/50/6 +f 38/50/4 40/53/4 39/41/4 +f 35/52/1 39/41/1 40/53/1 +f 10/55/5 9/81/5 2/2/5 +f 26/57/3 25/65/3 4/58/3 +f 6/4/5 11/82/5 12/60/5 +f 8/62/3 27/66/3 28/63/3 +f 8/62/3 4/58/3 25/65/3 +f 10/55/5 4/56/5 8/61/5 +f 7/67/6 19/83/6 20/68/6 +f 18/70/6 17/84/6 3/71/6 +f 34/73/4 33/79/4 1/74/4 +f 5/76/4 35/80/4 36/77/4 +f 5/76/4 1/74/4 33/79/4 +f 18/70/6 1/72/6 5/69/6 +f 34/73/4 2/75/4 6/78/4 +f 6/4/5 2/2/5 9/81/5 +f 19/83/6 7/67/6 3/71/6 +f 3/59/3 7/64/3 28/63/3 +f 54/85/2 86/292/2 85/86/2 +f 46/88/2 47/93/2 79/89/2 +f 55/91/2 87/293/2 86/92/2 +f 47/93/2 48/98/2 80/94/2 +f 56/96/2 88/294/2 87/97/2 +f 48/98/2 49/105/2 81/99/2 +f 42/101/2 74/295/2 73/102/2 +f 41/103/2 73/296/2 88/104/2 +f 49/105/2 50/110/2 82/106/2 +f 43/108/2 75/297/2 74/109/2 +f 50/110/2 51/115/2 83/111/2 +f 43/108/2 44/118/2 76/113/2 +f 51/115/2 52/121/2 84/116/2 +f 44/118/2 45/298/2 77/119/2 +f 52/121/2 53/87/2 85/122/2 +f 46/88/2 78/299/2 77/124/2 +f 89/126/2 90/300/2 91/301/2 +f 91/301/2 92/302/2 89/126/2 +f 92/302/2 93/127/2 89/126/2 +f 93/127/2 94/303/2 97/128/2 +f 94/303/2 95/304/2 97/128/2 +f 95/304/2 96/305/2 97/128/2 +f 97/128/2 98/306/2 99/307/2 +f 99/307/2 100/308/2 101/309/2 +f 101/309/2 102/310/2 103/311/2 +f 103/311/2 104/312/2 89/126/2 +f 97/128/2 99/307/2 89/126/2 +f 99/307/2 101/309/2 89/126/2 +f 101/309/2 103/311/2 89/126/2 +f 135/129/2 136/161/2 152/130/2 +f 135/129/2 151/131/2 150/132/2 +f 134/133/2 150/132/2 149/134/2 +f 132/136/2 133/135/2 149/134/2 +f 131/138/2 132/136/2 148/137/2 +f 131/138/2 147/139/2 146/140/2 +f 130/141/2 146/140/2 145/142/2 +f 128/144/2 129/143/2 145/142/2 +f 127/146/2 128/144/2 144/145/2 +f 126/148/2 127/146/2 143/147/2 +f 126/148/2 142/149/2 141/150/2 +f 125/152/2 141/313/2 140/153/2 +f 123/155/2 124/154/2 140/153/2 +f 123/155/2 139/156/2 138/157/2 +f 122/158/2 138/157/2 137/159/2 +f 121/160/2 137/159/2 152/130/2 +f 69/162/1 165/314/1 166/163/1 +f 166/163/1 167/315/1 71/165/1 +f 71/165/1 167/315/1 168/166/1 +f 168/166/1 153/169/1 57/168/1 +f 153/169/1 154/171/1 58/170/1 +f 154/171/1 155/316/1 59/172/1 +f 59/172/1 155/316/1 156/173/1 +f 156/173/1 157/317/1 61/175/1 +f 157/176/1 158/318/1 62/177/1 +f 62/177/1 158/318/1 159/179/1 +f 63/180/1 159/179/1 160/181/1 +f 64/182/1 160/181/1 161/183/1 +f 161/183/1 162/186/1 66/185/1 +f 162/186/1 163/188/1 67/187/1 +f 163/188/1 164/190/1 68/189/1 +f 164/190/1 165/314/1 69/162/1 +f 110/191/1 109/319/1 173/192/1 +f 118/194/1 117/227/1 181/195/1 +f 110/191/1 174/320/1 175/197/1 +f 119/199/1 118/194/1 182/200/1 +f 111/198/1 175/321/1 176/202/1 +f 119/199/1 183/322/1 184/204/1 +f 112/203/1 176/323/1 177/206/1 +f 106/208/1 105/211/1 169/209/1 +f 105/211/1 120/205/1 184/212/1 +f 113/207/1 177/324/1 178/213/1 +f 107/215/1 106/208/1 170/216/1 +f 114/214/1 178/325/1 179/218/1 +f 107/215/1 171/326/1 172/220/1 +f 115/219/1 179/327/1 180/222/1 +f 108/221/1 172/328/1 173/224/1 +f 116/223/1 180/329/1 181/226/1 +f 483/228/5 484/235/5 482/229/5 +f 491/231/5 492/240/5 490/232/5 +f 483/228/3 485/330/3 488/234/3 +f 482/229/4 487/331/4 486/236/4 +f 484/235/2 488/332/2 487/237/2 +f 481/230/1 486/333/1 485/238/1 +f 491/231/3 493/334/3 496/239/3 +f 490/232/4 495/335/4 494/241/4 +f 492/240/2 496/336/2 495/242/2 +f 489/233/1 494/337/1 493/243/1 +f 499/244/6 500/251/6 498/245/6 +f 507/247/6 508/256/6 506/248/6 +f 499/244/4 501/338/4 504/250/4 +f 498/245/3 503/339/3 502/252/3 +f 500/251/2 504/340/2 503/253/2 +f 497/246/1 502/341/1 501/254/1 +f 507/247/4 509/342/4 512/255/4 +f 506/248/3 511/343/3 510/257/3 +f 508/256/2 512/344/2 511/258/2 +f 505/249/1 510/345/1 509/259/1 +f 515/260/3 516/267/3 514/261/3 +f 523/263/3 524/272/3 522/264/3 +f 515/260/6 517/346/6 520/266/6 +f 514/261/5 519/347/5 518/268/5 +f 516/267/2 520/348/2 519/269/2 +f 513/262/1 518/349/1 517/270/1 +f 523/263/6 525/350/6 528/271/6 +f 522/264/5 527/351/5 526/273/5 +f 524/272/2 528/352/2 527/274/2 +f 521/265/1 526/353/1 525/275/1 +f 531/276/4 532/283/4 530/277/4 +f 539/279/4 540/288/4 538/280/4 +f 531/276/5 533/354/5 536/282/5 +f 530/277/6 535/355/6 534/284/6 +f 532/283/2 536/356/2 535/285/2 +f 529/278/1 534/357/1 533/286/1 +f 539/279/5 541/358/5 544/287/5 +f 538/280/6 543/359/6 542/289/6 +f 540/288/2 544/360/2 543/290/2 +f 537/281/1 542/361/1 541/291/1 +s 1 +f 69/162/5 54/85/7 53/87/5 +f 62/177/8 47/93/9 46/88/8 +f 70/164/7 55/91/10 54/85/7 +f 63/180/9 48/98/11 47/93/9 +f 71/165/10 56/96/12 55/91/10 +f 64/182/11 49/105/4 48/98/11 +f 57/168/3 42/101/13 41/103/3 +f 72/167/12 41/103/3 56/96/12 +f 65/184/4 50/110/14 49/105/4 +f 58/170/13 43/108/15 42/101/13 +f 66/185/14 51/115/16 50/110/14 +f 59/172/15 44/118/17 43/108/15 +f 67/187/16 52/121/18 51/115/16 +f 60/174/17 45/298/6 44/118/17 +f 68/189/18 53/87/5 52/121/18 +f 61/178/6 46/88/8 45/125/6 +f 84/116/19 99/362/20 83/117/20 +f 85/122/21 100/363/19 84/123/19 +f 86/292/22 101/364/21 85/86/21 +f 87/293/23 102/365/22 86/92/22 +f 88/294/24 103/366/23 87/97/23 +f 73/296/25 104/367/24 88/104/24 +f 73/102/25 90/368/26 89/369/25 +f 75/297/27 90/370/26 74/109/26 +f 76/113/28 91/371/27 75/114/27 +f 77/119/29 92/372/28 76/120/28 +f 78/299/30 93/373/29 77/124/29 +f 79/89/31 94/374/30 78/90/30 +f 80/94/32 95/375/31 79/95/31 +f 80/100/32 97/376/33 96/377/32 +f 81/107/33 98/378/34 97/379/33 +f 83/111/20 98/380/34 82/112/34 +f 117/227/5 132/136/18 116/223/18 +f 110/191/8 125/151/6 109/319/6 +f 118/194/7 133/135/5 117/227/5 +f 111/198/9 126/148/8 110/191/8 +f 119/199/10 134/133/7 118/194/7 +f 112/203/11 127/146/9 111/198/9 +f 120/205/12 135/129/10 119/199/10 +f 113/207/4 128/144/11 112/203/11 +f 106/208/13 121/160/3 105/211/3 +f 105/211/3 136/161/12 120/205/12 +f 114/214/14 129/143/4 113/207/4 +f 107/215/15 122/158/13 106/208/13 +f 115/219/16 130/141/14 114/214/14 +f 108/221/17 123/155/15 107/215/15 +f 116/223/18 131/138/16 115/219/16 +f 109/225/6 124/154/17 108/221/17 +f 137/159/3 168/166/12 152/130/12 +f 146/140/14 161/183/4 145/142/4 +f 139/156/15 154/171/13 138/157/13 +f 147/139/16 162/186/14 146/140/14 +f 140/153/17 155/316/15 139/156/15 +f 148/137/18 163/188/16 147/139/16 +f 141/313/6 156/173/17 140/153/17 +f 149/134/5 164/190/18 148/137/18 +f 142/149/8 157/176/6 141/150/6 +f 150/132/7 165/314/5 149/134/5 +f 143/147/9 158/318/8 142/149/8 +f 151/131/10 166/163/7 150/132/7 +f 144/145/11 159/179/9 143/147/9 +f 152/130/12 167/315/10 151/131/10 +f 145/142/4 160/181/11 144/145/11 +f 138/157/13 153/169/3 137/159/3 +f 178/325/14 195/381/16 179/218/16 +f 171/326/15 188/382/17 172/220/17 +f 179/327/16 196/383/18 180/222/18 +f 172/328/17 189/384/6 173/224/6 +f 180/329/18 197/385/5 181/226/5 +f 173/192/6 190/386/8 174/193/8 +f 181/195/5 198/387/7 182/196/7 +f 174/320/8 191/388/9 175/197/9 +f 182/200/7 199/389/10 183/201/10 +f 175/321/9 192/390/11 176/202/11 +f 183/322/10 200/391/12 184/204/12 +f 176/323/11 193/392/4 177/206/4 +f 169/393/3 186/394/13 170/210/13 +f 184/212/12 185/395/3 169/209/3 +f 177/324/4 194/396/14 178/213/14 +f 170/216/13 187/397/15 171/217/15 +f 208/398/35 215/399/36 207/400/36 +f 206/401/37 213/402/38 205/403/38 +f 204/404/39 211/405/40 203/406/40 +f 202/407/41 209/408/42 201/409/42 +f 201/409/42 216/410/35 208/398/35 +f 207/400/36 214/411/37 206/401/37 +f 205/403/38 212/412/39 204/404/39 +f 203/413/40 210/414/41 202/407/41 +f 224/415/43 231/416/44 223/417/44 +f 222/418/45 229/419/46 221/420/46 +f 220/421/47 227/422/48 219/423/48 +f 218/424/49 225/425/50 217/426/50 +f 217/426/50 232/427/43 224/415/43 +f 223/417/44 230/428/45 222/418/45 +f 221/420/46 228/429/47 220/421/47 +f 219/430/48 226/431/49 218/424/49 +f 240/432/39 247/433/40 239/434/40 +f 238/435/41 245/436/42 237/437/42 +f 236/438/35 243/439/36 235/440/36 +f 234/441/37 241/442/38 233/443/38 +f 233/443/38 248/444/39 240/432/39 +f 239/434/40 246/445/41 238/435/41 +f 237/437/42 244/446/35 236/438/35 +f 235/447/36 242/448/37 234/441/37 +f 256/449/47 263/450/48 255/451/48 +f 254/452/49 261/453/50 253/454/50 +f 252/455/43 259/456/44 251/457/44 +f 250/458/45 257/459/46 249/460/46 +f 249/460/46 264/461/47 256/449/47 +f 255/451/48 262/462/49 254/452/49 +f 253/454/50 260/463/43 252/455/43 +f 251/464/44 258/465/45 250/458/45 +f 272/466/41 279/467/42 271/468/42 +f 270/469/35 277/470/36 269/471/36 +f 268/472/37 275/473/38 267/474/38 +f 266/475/39 273/476/40 265/477/40 +f 265/477/40 280/478/41 272/466/41 +f 271/468/42 278/479/35 270/469/35 +f 269/471/36 276/480/37 268/472/37 +f 267/481/38 274/482/39 266/475/39 +f 288/483/49 295/484/50 287/485/50 +f 286/486/43 293/487/44 285/488/44 +f 284/489/45 291/490/46 283/491/46 +f 282/492/47 289/493/48 281/494/48 +f 281/494/48 296/495/49 288/483/49 +f 287/485/50 294/496/43 286/486/43 +f 285/488/44 292/497/45 284/489/45 +f 283/498/46 290/499/47 282/492/47 +f 304/500/37 311/501/38 303/502/38 +f 302/503/39 309/504/40 301/505/40 +f 300/506/41 307/507/42 299/508/42 +f 298/509/35 305/510/36 297/511/36 +f 297/511/36 312/512/37 304/500/37 +f 303/502/38 310/513/39 302/503/39 +f 301/505/40 308/514/41 300/506/41 +f 299/515/42 306/516/35 298/509/35 +f 320/517/45 327/518/46 319/519/46 +f 318/520/47 325/521/48 317/522/48 +f 316/523/49 323/524/50 315/525/50 +f 314/526/43 321/527/44 313/528/44 +f 313/528/44 328/529/45 320/517/45 +f 319/519/46 326/530/47 318/520/47 +f 317/522/48 324/531/49 316/523/49 +f 315/532/50 322/533/43 314/526/43 +f 331/534/15 338/535/51 330/536/3 +f 336/537/5 343/538/52 335/539/16 +f 334/540/4 341/541/53 333/542/9 +f 332/543/6 339/544/54 331/545/15 +f 330/536/3 337/546/55 329/547/10 +f 329/547/10 344/548/56 336/537/5 +f 335/539/16 342/549/57 334/540/4 +f 333/542/9 340/550/58 332/543/6 +f 341/551/53 349/552/59 348/553/60 +f 338/554/51 345/555/61 337/556/55 +f 337/556/55 351/557/62 344/558/56 +f 343/538/52 349/552/59 342/559/57 +f 340/560/58 348/553/60 347/561/63 +f 343/538/52 351/557/62 350/562/64 +f 351/557/62 357/563/65 350/562/64 +f 348/553/60 356/564/66 355/565/67 +f 345/555/61 353/566/68 352/567/69 +f 345/555/61 358/568/70 351/557/62 +f 350/562/64 356/564/66 349/552/59 +f 348/553/60 354/569/71 347/561/63 +f 340/560/58 347/561/63 339/570/54 +f 347/561/63 354/569/71 339/570/54 +f 338/554/51 339/571/54 346/572/72 +f 346/572/72 339/571/54 353/566/68 +f 358/573/70 364/574/2 357/563/65 +f 369/575/16 376/576/73 368/577/4 +f 355/578/67 363/579/74 361/580/9 +f 352/581/69 359/582/75 360/583/10 +f 339/584/54 359/582/75 353/585/68 +f 352/581/69 365/586/76 358/573/70 +f 339/587/54 362/588/77 366/589/1 +f 357/563/65 363/579/74 356/590/66 +f 355/578/67 362/588/77 354/591/71 +f 374/592/6 381/593/78 373/594/15 +f 372/595/3 379/596/79 371/597/10 +f 370/598/5 377/599/80 369/600/16 +f 368/577/4 375/601/81 367/602/9 +f 367/602/9 382/603/82 374/592/6 +f 373/594/15 380/604/83 372/595/3 +f 371/597/10 378/605/84 370/598/5 +f 380/606/83 386/607/85 379/608/79 +f 375/609/81 384/610/86 383/611/87 +f 382/612/82 383/611/87 389/613/88 +f 381/593/78 387/614/89 380/606/83 +f 379/608/79 385/615/90 378/616/84 +f 382/612/82 388/617/91 381/593/78 +f 388/617/91 396/618/92 395/619/93 +f 386/607/85 394/620/94 393/621/95 +f 383/611/87 391/622/96 390/623/97 +f 389/613/88 390/623/97 396/618/92 +f 388/617/91 394/620/94 387/614/89 +f 386/607/85 392/624/98 385/615/90 +f 378/616/84 385/615/90 377/625/80 +f 385/615/90 392/624/98 377/625/80 +f 376/626/73 377/627/80 384/610/86 +f 384/610/86 377/627/80 391/622/96 +f 396/628/92 402/629/2 395/619/93 +f 393/630/95 401/631/76 399/632/10 +f 390/633/97 397/634/77 398/635/9 +f 377/636/80 397/634/77 391/637/96 +f 390/633/97 403/638/74 396/628/92 +f 377/639/80 400/640/75 404/641/1 +f 395/619/93 401/631/76 394/642/94 +f 393/630/95 400/640/75 392/643/98 +f 407/644/9 414/645/99 406/646/6 +f 412/647/3 419/648/100 411/649/10 +f 410/650/5 417/651/101 409/652/16 +f 408/653/4 415/654/77 407/655/9 +f 406/646/6 413/656/102 405/657/15 +f 405/657/15 420/658/103 412/647/3 +f 411/649/10 418/659/104 410/650/5 +f 409/652/16 416/660/105 408/653/4 +f 417/661/101 425/662/106 424/663/107 +f 414/664/99 421/665/108 413/666/102 +f 413/666/102 427/667/109 420/668/103 +f 419/648/100 425/662/106 418/669/104 +f 416/670/105 424/663/107 423/671/110 +f 420/668/103 426/672/76 419/648/100 +f 426/672/76 434/673/111 433/674/112 +f 424/663/107 432/675/113 431/676/114 +f 421/665/108 429/677/115 428/678/116 +f 421/665/108 434/673/111 427/667/109 +f 426/672/76 432/675/113 425/662/106 +f 424/663/107 430/679/117 423/671/110 +f 416/670/105 423/671/110 415/680/77 +f 423/671/110 430/679/117 415/680/77 +f 414/664/99 415/681/77 422/682/118 +f 422/682/118 415/681/77 429/677/115 +f 433/674/112 441/683/91 440/684/2 +f 445/685/10 452/686/119 444/687/5 +f 431/688/114 439/689/64 437/690/16 +f 428/691/116 435/692/54 436/693/15 +f 429/694/115 442/695/1 435/692/54 +f 434/696/111 436/693/15 441/683/91 +f 430/697/117 442/698/1 415/699/77 +f 433/674/112 439/689/64 432/700/113 +f 431/688/114 438/701/80 430/697/117 +f 450/702/4 457/703/120 449/704/9 +f 448/705/6 455/706/121 447/707/15 +f 446/708/3 453/709/75 445/710/10 +f 444/687/5 451/711/122 443/712/16 +f 443/712/16 458/713/123 450/702/4 +f 449/704/9 456/714/124 448/705/6 +f 447/707/15 454/715/125 446/708/3 +f 455/716/121 463/717/126 462/718/127 +f 452/719/119 459/720/128 451/721/122 +f 451/721/122 465/722/129 458/723/123 +f 457/703/120 463/717/126 456/724/124 +f 454/725/125 462/718/127 461/726/130 +f 458/723/123 464/727/74 457/703/120 +f 464/727/74 472/728/131 471/729/132 +f 462/718/127 470/730/133 469/731/134 +f 459/720/128 467/732/135 466/733/136 +f 465/722/129 466/733/136 472/728/131 +f 464/727/74 470/730/133 463/717/126 +f 462/718/127 468/734/137 461/726/130 +f 454/725/125 461/726/130 453/735/75 +f 461/726/130 468/734/137 453/735/75 +f 452/719/119 453/736/75 460/737/138 +f 460/737/138 453/736/75 467/732/135 +f 471/729/132 479/738/64 478/739/2 +f 469/740/134 477/741/91 475/742/15 +f 467/743/135 474/744/16 466/745/136 +f 453/746/75 473/747/80 467/743/135 +f 466/745/136 479/738/64 472/748/131 +f 468/749/137 480/750/1 453/751/75 +f 471/729/132 477/741/91 470/752/133 +f 469/740/134 476/753/54 468/749/137 +f 69/162/5 70/164/7 54/85/7 +f 62/177/8 63/180/9 47/93/9 +f 70/164/7 71/165/10 55/91/10 +f 63/180/9 64/182/11 48/98/11 +f 71/165/10 72/167/12 56/96/12 +f 64/182/11 65/184/4 49/105/4 +f 57/168/3 58/170/13 42/101/13 +f 72/167/12 57/168/3 41/103/3 +f 65/184/4 66/185/14 50/110/14 +f 58/170/13 59/172/15 43/108/15 +f 66/185/14 67/187/16 51/115/16 +f 59/172/15 60/174/17 44/118/17 +f 67/187/16 68/189/18 52/121/18 +f 60/174/17 61/175/6 45/298/6 +f 68/189/18 69/162/5 53/87/5 +f 61/178/6 62/177/8 46/88/8 +f 84/116/19 100/754/19 99/362/20 +f 85/122/21 101/755/21 100/363/19 +f 86/292/22 102/756/22 101/364/21 +f 87/293/23 103/757/23 102/365/22 +f 88/294/24 104/758/24 103/366/23 +f 73/296/25 89/759/25 104/367/24 +f 73/102/25 74/295/26 90/368/26 +f 75/297/27 91/760/27 90/370/26 +f 76/113/28 92/761/28 91/371/27 +f 77/119/29 93/762/29 92/372/28 +f 78/299/30 94/763/30 93/373/29 +f 79/89/31 95/764/31 94/374/30 +f 80/94/32 96/765/32 95/375/31 +f 80/100/32 81/99/33 97/376/33 +f 81/107/33 82/106/34 98/378/34 +f 83/111/20 99/766/20 98/380/34 +f 117/227/5 133/135/5 132/136/18 +f 110/191/8 126/148/8 125/151/6 +f 118/194/7 134/133/7 133/135/5 +f 111/198/9 127/146/9 126/148/8 +f 119/199/10 135/129/10 134/133/7 +f 112/203/11 128/144/11 127/146/9 +f 120/205/12 136/161/12 135/129/10 +f 113/207/4 129/143/4 128/144/11 +f 106/208/13 122/158/13 121/160/3 +f 105/211/3 121/160/3 136/161/12 +f 114/214/14 130/141/14 129/143/4 +f 107/215/15 123/155/15 122/158/13 +f 115/219/16 131/138/16 130/141/14 +f 108/221/17 124/154/17 123/155/15 +f 116/223/18 132/136/18 131/138/16 +f 109/225/6 125/152/6 124/154/17 +f 137/159/3 153/169/3 168/166/12 +f 146/140/14 162/186/14 161/183/4 +f 139/156/15 155/316/15 154/171/13 +f 147/139/16 163/188/16 162/186/14 +f 140/153/17 156/173/17 155/316/15 +f 148/137/18 164/190/18 163/188/16 +f 141/313/6 157/317/6 156/173/17 +f 149/134/5 165/314/5 164/190/18 +f 142/149/8 158/318/8 157/176/6 +f 150/132/7 166/163/7 165/314/5 +f 143/147/9 159/179/9 158/318/8 +f 151/131/10 167/315/10 166/163/7 +f 144/145/11 160/181/11 159/179/9 +f 152/130/12 168/166/12 167/315/10 +f 145/142/4 161/183/4 160/181/11 +f 138/157/13 154/171/13 153/169/3 +f 178/325/14 194/767/14 195/381/16 +f 171/326/15 187/768/15 188/382/17 +f 179/327/16 195/769/16 196/383/18 +f 172/328/17 188/770/17 189/384/6 +f 180/329/18 196/771/18 197/385/5 +f 173/192/6 189/772/6 190/386/8 +f 181/195/5 197/773/5 198/387/7 +f 174/320/8 190/774/8 191/388/9 +f 182/200/7 198/775/7 199/389/10 +f 175/321/9 191/776/9 192/390/11 +f 183/322/10 199/777/10 200/391/12 +f 176/323/11 192/778/11 193/392/4 +f 169/393/3 185/779/3 186/394/13 +f 184/212/12 200/780/12 185/395/3 +f 177/324/4 193/781/4 194/396/14 +f 170/216/13 186/782/13 187/397/15 +f 208/398/35 216/410/35 215/399/36 +f 206/401/37 214/411/37 213/402/38 +f 204/404/39 212/412/39 211/405/40 +f 202/407/41 210/414/41 209/408/42 +f 201/409/42 209/408/42 216/410/35 +f 207/400/36 215/399/36 214/411/37 +f 205/403/38 213/402/38 212/412/39 +f 203/413/40 211/783/40 210/414/41 +f 224/415/43 232/427/43 231/416/44 +f 222/418/45 230/428/45 229/419/46 +f 220/421/47 228/429/47 227/422/48 +f 218/424/49 226/431/49 225/425/50 +f 217/426/50 225/425/50 232/427/43 +f 223/417/44 231/416/44 230/428/45 +f 221/420/46 229/419/46 228/429/47 +f 219/430/48 227/784/48 226/431/49 +f 240/432/39 248/444/39 247/433/40 +f 238/435/41 246/445/41 245/436/42 +f 236/438/35 244/446/35 243/439/36 +f 234/441/37 242/448/37 241/442/38 +f 233/443/38 241/442/38 248/444/39 +f 239/434/40 247/433/40 246/445/41 +f 237/437/42 245/436/42 244/446/35 +f 235/447/36 243/785/36 242/448/37 +f 256/449/47 264/461/47 263/450/48 +f 254/452/49 262/462/49 261/453/50 +f 252/455/43 260/463/43 259/456/44 +f 250/458/45 258/465/45 257/459/46 +f 249/460/46 257/459/46 264/461/47 +f 255/451/48 263/450/48 262/462/49 +f 253/454/50 261/453/50 260/463/43 +f 251/464/44 259/786/44 258/465/45 +f 272/466/41 280/478/41 279/467/42 +f 270/469/35 278/479/35 277/470/36 +f 268/472/37 276/480/37 275/473/38 +f 266/475/39 274/482/39 273/476/40 +f 265/477/40 273/476/40 280/478/41 +f 271/468/42 279/467/42 278/479/35 +f 269/471/36 277/470/36 276/480/37 +f 267/481/38 275/787/38 274/482/39 +f 288/483/49 296/495/49 295/484/50 +f 286/486/43 294/496/43 293/487/44 +f 284/489/45 292/497/45 291/490/46 +f 282/492/47 290/499/47 289/493/48 +f 281/494/48 289/493/48 296/495/49 +f 287/485/50 295/484/50 294/496/43 +f 285/488/44 293/487/44 292/497/45 +f 283/498/46 291/788/46 290/499/47 +f 304/500/37 312/512/37 311/501/38 +f 302/503/39 310/513/39 309/504/40 +f 300/506/41 308/514/41 307/507/42 +f 298/509/35 306/516/35 305/510/36 +f 297/511/36 305/510/36 312/512/37 +f 303/502/38 311/501/38 310/513/39 +f 301/505/40 309/504/40 308/514/41 +f 299/515/42 307/789/42 306/516/35 +f 320/517/45 328/529/45 327/518/46 +f 318/520/47 326/530/47 325/521/48 +f 316/523/49 324/531/49 323/524/50 +f 314/526/43 322/533/43 321/527/44 +f 313/528/44 321/527/44 328/529/45 +f 319/519/46 327/518/46 326/530/47 +f 317/522/48 325/521/48 324/531/49 +f 315/532/50 323/790/50 322/533/43 +f 331/534/15 339/791/54 338/535/51 +f 336/537/5 344/548/56 343/538/52 +f 334/540/4 342/549/57 341/541/53 +f 332/543/6 340/550/58 339/544/54 +f 330/536/3 338/535/51 337/546/55 +f 329/547/10 337/546/55 344/548/56 +f 335/539/16 343/538/52 342/549/57 +f 333/542/9 341/541/53 340/550/58 +f 341/551/53 342/559/57 349/552/59 +f 338/554/51 346/572/72 345/555/61 +f 337/556/55 345/555/61 351/557/62 +f 343/538/52 350/562/64 349/552/59 +f 340/560/58 341/551/53 348/553/60 +f 343/538/52 344/558/56 351/557/62 +f 351/557/62 358/568/70 357/563/65 +f 348/553/60 349/552/59 356/564/66 +f 345/555/61 346/572/72 353/566/68 +f 345/555/61 352/567/69 358/568/70 +f 350/562/64 357/563/65 356/564/66 +f 348/553/60 355/565/67 354/569/71 +f 358/573/70 365/586/76 364/574/2 +f 369/575/16 377/792/80 376/576/73 +f 355/578/67 356/590/66 363/579/74 +f 352/581/69 353/585/68 359/582/75 +f 339/584/54 366/793/1 359/582/75 +f 352/581/69 360/583/10 365/586/76 +f 339/587/54 354/591/71 362/588/77 +f 357/563/65 364/574/2 363/579/74 +f 355/578/67 361/580/9 362/588/77 +f 374/592/6 382/603/82 381/593/78 +f 372/595/3 380/604/83 379/596/79 +f 370/598/5 378/605/84 377/599/80 +f 368/577/4 376/576/73 375/601/81 +f 367/602/9 375/601/81 382/603/82 +f 373/594/15 381/593/78 380/604/83 +f 371/597/10 379/596/79 378/605/84 +f 380/606/83 387/614/89 386/607/85 +f 375/609/81 376/626/73 384/610/86 +f 382/612/82 375/609/81 383/611/87 +f 381/593/78 388/617/91 387/614/89 +f 379/608/79 386/607/85 385/615/90 +f 382/612/82 389/613/88 388/617/91 +f 388/617/91 389/613/88 396/618/92 +f 386/607/85 387/614/89 394/620/94 +f 383/611/87 384/610/86 391/622/96 +f 389/613/88 383/611/87 390/623/97 +f 388/617/91 395/619/93 394/620/94 +f 386/607/85 393/621/95 392/624/98 +f 396/628/92 403/638/74 402/629/2 +f 393/630/95 394/642/94 401/631/76 +f 390/633/97 391/637/96 397/634/77 +f 377/636/80 404/794/1 397/634/77 +f 390/633/97 398/635/9 403/638/74 +f 377/639/80 392/643/98 400/640/75 +f 395/619/93 402/629/2 401/631/76 +f 393/630/95 399/632/10 400/640/75 +f 407/644/9 415/795/77 414/645/99 +f 412/647/3 420/658/103 419/648/100 +f 410/650/5 418/659/104 417/651/101 +f 408/653/4 416/660/105 415/654/77 +f 406/646/6 414/645/99 413/656/102 +f 405/657/15 413/656/102 420/658/103 +f 411/649/10 419/648/100 418/659/104 +f 409/652/16 417/651/101 416/660/105 +f 417/661/101 418/669/104 425/662/106 +f 414/664/99 422/682/118 421/665/108 +f 413/666/102 421/665/108 427/667/109 +f 419/648/100 426/672/76 425/662/106 +f 416/670/105 417/661/101 424/663/107 +f 420/668/103 427/667/109 426/672/76 +f 426/672/76 427/667/109 434/673/111 +f 424/663/107 425/662/106 432/675/113 +f 421/665/108 422/682/118 429/677/115 +f 421/665/108 428/678/116 434/673/111 +f 426/672/76 433/674/112 432/675/113 +f 424/663/107 431/676/114 430/679/117 +f 433/674/112 434/696/111 441/683/91 +f 445/685/10 453/796/75 452/686/119 +f 431/688/114 432/700/113 439/689/64 +f 428/691/116 429/694/115 435/692/54 +f 429/694/115 415/797/77 442/695/1 +f 434/696/111 428/691/116 436/693/15 +f 430/697/117 438/701/80 442/698/1 +f 433/674/112 440/684/2 439/689/64 +f 431/688/114 437/690/16 438/701/80 +f 450/702/4 458/713/123 457/703/120 +f 448/705/6 456/714/124 455/706/121 +f 446/708/3 454/715/125 453/709/75 +f 444/687/5 452/686/119 451/711/122 +f 443/712/16 451/711/122 458/713/123 +f 449/704/9 457/703/120 456/714/124 +f 447/707/15 455/706/121 454/715/125 +f 455/716/121 456/724/124 463/717/126 +f 452/719/119 460/737/138 459/720/128 +f 451/721/122 459/720/128 465/722/129 +f 457/703/120 464/727/74 463/717/126 +f 454/725/125 455/716/121 462/718/127 +f 458/723/123 465/722/129 464/727/74 +f 464/727/74 465/722/129 472/728/131 +f 462/718/127 463/717/126 470/730/133 +f 459/720/128 460/737/138 467/732/135 +f 465/722/129 459/720/128 466/733/136 +f 464/727/74 471/729/132 470/730/133 +f 462/718/127 469/731/134 468/734/137 +f 471/729/132 472/748/131 479/738/64 +f 469/740/134 470/752/133 477/741/91 +f 467/743/135 473/747/80 474/744/16 +f 453/746/75 480/798/1 473/747/80 +f 466/745/136 474/744/16 479/738/64 +f 468/749/137 476/753/54 480/750/1 +f 471/729/132 478/739/2 477/741/91 +f 469/740/134 475/742/15 476/753/54 diff --git a/src/main/resources/assets/hbm/textures/models/machines/hydrotreater.png b/src/main/resources/assets/hbm/textures/models/machines/hydrotreater.png new file mode 100644 index 0000000000000000000000000000000000000000..51df73ed4d725f086f4c8e8c644d45c76e9b0c72 GIT binary patch literal 941 zcmeAS@N?(olHy`uVBq!ia0vp^CxEztgAGXf1*^>mQY^(zo*^7SP{WbZ!N9h8GYd#zO` zNieg1l92cv#r^9i9=Ry&#!$cS?#$Rt)8_yBeQA2zmG4WZ1)bXc^zokirTzW&|9_TV zpZ|Yle?5ELr_&qN8H%@6ypp*)J=s6i-v9Hzx9gM7w*)V1c2H0d;NW2CPWDgGn>Jm4 z{iC)2ww@|IS0cc1ZeO!aY2Ul=7vo=gU-UdTm5-^h0jipb>ENT6t8QFd|EzZH!BYcCCByCC|0<32t@7_cafIXN_wVe!hl+i@d~N+{t-k%JPK20f zvY+4RdubI=iN7y<ox?|1K+UjJHocG2(8XNxUYy}q4%zQMBU<;j0id>a*R$Ru6;o_fjumF1Ry z``-E=Tf__XZ-Lph)UDrNO=~DH`?XJh>$~z*x(ai8U*DR#defcNZYY)m-C=e;Y3DZ1 zd6yj(B1+=>Y*}aM%d#+SzjJAe{kyumHUB?+*zoh;qeqVv`d=#uyihQC`|MfT>!&-* z%gbkr-byTgu`4foZ9~DNUF&Y|$~ELU7jZ!*$#Fq*fzdI(rDcY1EDk$^jFW9y_O@u< z#`THnLIShOR{ZVTc$~Fm8E^P}zN@}-nh*4q2>2cQFtxryZX@?^g%4a-9O{|VizmnG znXUvz@_o;W%Gt~RZ!IbOb9q|f*U#(z8&vf9Z(Q_LfV=4#|HfzkxR%%5`t|=5!5FF6 z_+9(#!9HMGLyCr3@khN@%e>yS>b{qK)!`GzgR(Ure?Popetm5?-~Vm)&P1o756oE) Wk~0jtq_ctfkHOQ`&t;ucLK6UiO_Q4d literal 0 HcmV?d00001 From 041b768eda0dfa9500cc31b6dc92f890cac14dac Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 29 Jan 2024 09:24:25 +0100 Subject: [PATCH 123/376] brick by brick, suck my --- changelog | 63 ++----------------- gradle.properties | 2 +- .../com/hbm/blocks/generic/BlockDecoCT.java | 17 +++++ .../java/com/hbm/blocks/generic/BlockOre.java | 22 +------ src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../machine/TileEntityElectrolyser.java | 8 +-- .../machine/TileEntityMachineRadarNT.java | 2 +- 7 files changed, 31 insertions(+), 85 deletions(-) diff --git a/changelog b/changelog index 265da8cbc..c44e3345d 100644 --- a/changelog +++ b/changelog @@ -1,61 +1,8 @@ -## Added -* Muffler - * An upgrade-like item that replaces the old muffler block - * Creates 16 when crafted, however it is not returned when the muffled machine is broken - * Should work with pretty much all machines that use looped sounds, as well as a few other noisy ones (compressors, diesel generators, presses) - * Simply right-click to install, doesn't need to be inserted into an upgrade slot, in fact it works on a few machines that have no GUI at all -* Lemegeton - * A book that can do material upgrading, like turning steel into HSS, HSS into Tc-steel, lead into gold, gold into bismuth, bismuth into osmiridium, etc. - * Basically allows a material to be upgraded to the next gating material in progression - * Obviously unobtainable in survival mode - * I don't know how this would ever be useful but I was stuck in a phonecall at work for two consecutive hours and didn't have anything else to do - * They should invent handsets that don't hurt when you hold them onto your head for too long - * Has no NEI handler because the call ended before I got to that -* Bricked furnace - * An earlygame machine made from smooth stone and bricks - * Largely identical to vanilla furnaces - * Like the wood burner, it will collect ashes from burnt fuel - * Certain recipes are sped up, sand and cobblestone are smelted at twice the speed while (fire) clay is smelted at quadruple speed - * This means that making a clay brick block now takes as much time using a bricked furnace as one single furnace operation in a vanilla furnace - * I *really* like bricks and I don't feel like waiting until I can get an arc furnace to mass produce them at a sensible pace -* Dwarven pickaxe - * Earlygame tool made from iron and copper - * Has the harvest level of iron, a durability of just 250 but the AoE ability - * Great for getting cobblestone quickly or making tunnels when you don't have desh or electric tools yet -* Cracked key - * A single-use item that can open red rooms like the red key, but does not work as a skeleton key for locks - * Spawns in dungeon chests or as a rare drop from hostile mobs - * Allows red rooms to be accessed without crafting the red key - ## Changed -* Large turbines, levis and geothermal heat exchangers now have their own sounds when operating -* Anvils will now list ingredients in red if those aren't present in the player's inventory -* Derricks now only need one set of steel pipes instead of 3. They can also be recycled by shredding, returning 32 steel -* Pumpjacks now need a single desh motor instead of two regular ones -* Rare earth ore, instead of detonating into a million fragments that are annoying to process, clog inventories and just cause everyone to not mine that ore in earlygame, will now drop a chunk of rare earth ore - * Rare earth chunks can be shredded directly into one unit of desh blend - * For efficiencymaxxers, silk-touching rare earth still works as expected, yielding two units when shredded - * The fortune enchantment should work as expected, dropping multiple chunks. Yay! - * To get things that can be useful in small amounts in earlygame like boron and cobalt (boron for Atlas and cobalt for tools), the rare earth chunk can be hammered down into fragments on a steel anvil - * Cerium and lanthanium, due to being useless, only have a 10% chance of producing a fragment - * Boron and cobalt each produce a guaranteed fragment, as well as an additional one with a 50% chance - * Neodymium and niobium both yield a shard 50% of the time -* Rebalanced all the food items so their saturation values aren't ridiculously high (turns out - the number represents a *multiplier* for the hunger value and not a flat number) -* Dirt MREs are now just regular low-quality MREs made from latex packaging and some easily obtainable earlygame ingredients - wheat, rotten flesh and saplings (makes 4) -* The recipe for the chemical plant has been slightly simplified (again) -* Iron furnaces now have a 20% faster base smelting speed, making them complete operations in 8 seconds instead of 10 without upgrades -* Due to rising chlorine prices and a failing halogen market, the recipe of combination smelting chlorocalcite into chlorine and calcium has been added back - * For legacy reasons, the chlorocalcite processing chain involving chemical plants and electrolyzers will continue to work -* Outer crater biomes can no longer override inner crater biomes, allowing craters to be "cleaned" by nuking them again with lower yield weapons +* Sped up the electrolyzer, fluid electrolysis now takes 3 seconds instead of 5 and crystal processing now only takes 20 seconds instead of 50 +* Increased electrolyzer pouring speed to 3 nuggets per tick instead of 1 +* Deco blocks now only drop ingots 25% of the time + * The incredibly common structures now only yield a few dozen free ingots instead of several stacks. How horrible! ## Fixed -* Fixed basalt ores dropping their items with invalid metadata -* Fixed creative infinite fluid tanks not being able to fill fluid gauges at >0PU -* Fixed an issue where repeatedly opening and closing certain doors would cause their sound loop to get stuck running forever -* Fixed radar screens behaving weirdly when out of then intended range. The max interaction range for radars is now infinite, and radars will send a second information packet to players near connected radars -* Fixed very rare bug where waiting for wood ash to build up in the wood burner and then clearing the slot will remove twice as much ash on the internal counter for the initial ash item created -* Fixed crater biome fog tinting applying even if there is no nearby crater biome, causing oddities like underground fog being all white instead of being dark as it should be -* Crater biome fog no longer applies underwater, fixing an issue where being in water would cause the fog to be white instead of water-colored -* Fixed "pipette not empty" message crashing servers -* Fixed crash caused by certain modded blocks like Thermal's lumium lights being turned into falling blocks by impulse grenades or nuke aftereffects -* Fixed receiver subscription persisting when 256k tanks explode, causing them to infinitely receive and the void fluids +* Fixed radar screens not working at all and potentially freezing the game diff --git a/gradle.properties b/gradle.properties index d6e5796c3..2bc727da5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4858 +mod_build_number=4859 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoCT.java b/src/main/java/com/hbm/blocks/generic/BlockDecoCT.java index c6197d163..d16524637 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDecoCT.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoCT.java @@ -1,5 +1,9 @@ package com.hbm.blocks.generic; +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; import com.hbm.render.block.ct.CT; import com.hbm.render.block.ct.CTStitchReceiver; import com.hbm.render.block.ct.IBlockCT; @@ -8,6 +12,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.Item; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -35,4 +40,16 @@ public class BlockDecoCT extends BlockOre implements IBlockCT{ public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { return rec.fragCache; } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + if(rand.nextInt(4) != 0) return null; + if(this == ModBlocks.deco_aluminium) return ModItems.ingot_aluminium; + if(this == ModBlocks.deco_beryllium) return ModItems.ingot_beryllium; + if(this == ModBlocks.deco_lead) return ModItems.ingot_lead; + if(this == ModBlocks.deco_red_copper) return ModItems.ingot_red_copper; + if(this == ModBlocks.deco_steel) return ModItems.ingot_steel; + if(this == ModBlocks.deco_tungsten) return ModItems.ingot_tungsten; + return null; + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index f54c9eff6..be87197a0 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -154,29 +154,11 @@ public class BlockOre extends Block { if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) { return ModItems.chunk_ore; } - if(this == ModBlocks.deco_aluminium) { - return ModItems.ingot_aluminium; - } - if(this == ModBlocks.deco_beryllium) { - return ModItems.ingot_beryllium; - } - if(this == ModBlocks.deco_lead) { - return ModItems.ingot_lead; - } - if(this == ModBlocks.deco_red_copper) { - return ModItems.ingot_red_copper; - } - if(this == ModBlocks.deco_steel) { - return ModItems.ingot_steel; - } if(this == ModBlocks.deco_titanium) { - return ModItems.ingot_titanium; - } - if(this == ModBlocks.deco_tungsten) { - return ModItems.ingot_tungsten; + return rand.nextInt(4) == 0 ? ModItems.ingot_titanium : null; } if(this == ModBlocks.deco_asbestos) { - return ModItems.ingot_asbestos; + return rand.nextInt(4) == 0 ? ModItems.ingot_asbestos : null; } if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos) { return ModItems.ingot_asbestos; diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 713dc1565..1315d08e9 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4858)"; + public static final String VERSION = "1.0.27 BETA (4859)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index c999c9a5a..749487b2b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -57,10 +57,10 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn public int usage; public int progressFluid; - public static final int processFluidTimeBase = 100; + public static final int processFluidTimeBase = 60; public int processFluidTime; public int progressOre; - public static final int processOreTimeBase = 1000; + public static final int processOreTimeBase = 600; public int processOreTime; public MaterialStack leftStack; @@ -167,7 +167,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn toCast.add(this.leftStack); Vec3 impact = Vec3.createVectorHelper(0, 0, 0); - MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(1), impact); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(3), impact); if(didPour != null) { NBTTagCompound data = new NBTTagCompound(); @@ -190,7 +190,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn toCast.add(this.rightStack); Vec3 impact = Vec3.createVectorHelper(0, 0, 0); - MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(1), impact); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(3), impact); if(didPour != null) { NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index adf805493..b53f86839 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -208,7 +208,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I screen.refZ = zCoord; screen.range = this.getRange(); screen.linked = true; - PacketDispatcher.wrapper.sendToAllAround(new BufPacket(pos.getX(), pos.getY(), pos.getZ(), this), new TargetPoint(this.worldObj.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), 25)); + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), 25)); } } } From 37490f35a28e5174c5a2d4bb92babc43fbc1c75e Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 30 Jan 2024 13:45:08 +1100 Subject: [PATCH 124/376] A more reliable fix to the door audio issue --- src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 6b4e32d02..5cca88f4c 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -285,7 +285,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } } - if((this.state == 3 && state == 1) || (this.state == 2 && state == 0)){ // Door finished any transition + if(state == 1 || state == 0){ // Door finished any transition if(audio != null){ audio.stopSound(); audio = null; From a067e437a56ffbf35aafe94444cfe6c08a83462c Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 30 Jan 2024 14:00:14 +1100 Subject: [PATCH 125/376] New animation loader! COLLADA supports all the cool things we want to do, but nothing that _implements_ COLLADA as an exporter does... aint that grand Animation set for Colt/Python added --- ntm-animator.blend | Bin 0 -> 1019364 bytes .../com/hbm/handler/GunConfiguration.java | 10 +- .../handler/guncfg/Gun357MagnumFactory.java | 15 +- .../com/hbm/items/weapon/ItemGunBase.java | 4 + src/main/java/com/hbm/main/ClientProxy.java | 1 - .../java/com/hbm/main/ResourceManager.java | 21 +- .../com/hbm/render/anim/AnimationLoader.java | 135 + .../hbm/render/anim/BusAnimationKeyframe.java | 26 - .../hbm/render/anim/BusAnimationSequence.java | 22 +- .../com/hbm/render/anim/HbmAnimations.java | 8 +- .../item/weapon/ItemRenderWeaponFFColt.java | 21 +- .../hbm/models/weapons/animations/python.json | 1 + .../assets/hbm/models/weapons/python.obj | 3710 ++++++++--------- 13 files changed, 1935 insertions(+), 2039 deletions(-) create mode 100644 ntm-animator.blend create mode 100644 src/main/java/com/hbm/render/anim/AnimationLoader.java create mode 100644 src/main/resources/assets/hbm/models/weapons/animations/python.json diff --git a/ntm-animator.blend b/ntm-animator.blend new file mode 100644 index 0000000000000000000000000000000000000000..31ebe5aa08b005fe9b678f5211d5840c87b6561f GIT binary patch literal 1019364 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 animations = new HashMap(); + public HashMap animations = new HashMap(); + //lazy-ish loading for animations, required for loading animations from ResourceManager, since that occurs after we've initialised the guns + public Consumer loadAnimations; + public boolean animationsLoaded = false; //when sneaking, disables crosshair and centers the bullet spawn point public boolean hasSights; //texture overlay when sneaking @@ -79,10 +83,10 @@ public class GunConfiguration implements Cloneable { public String name = ""; public EnumGunManufacturer manufacturer = EnumGunManufacturer.NONE; - public List comment = new ArrayList(); + public List comment = new ArrayList(); //bullet configs for main and alt fire - public List config = new ArrayList(); + public List config = new ArrayList(); //crosshair public Crosshair crosshair; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java index 53b5251db..af9388461 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java @@ -10,10 +10,12 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.lib.ModDamageSource; import com.hbm.potion.HbmPotion; +import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import net.minecraft.potion.PotionEffect; @@ -39,7 +41,7 @@ public class Gun357MagnumFactory { config.roundsPerCycle = 1; config.gunMode = GunConfiguration.MODE_NORMAL; config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; + config.reloadDuration = 30; config.firingDuration = 0; config.ammoCap = 6; config.reloadType = GunConfiguration.RELOAD_FULL; @@ -50,6 +52,11 @@ public class Gun357MagnumFactory { config.reloadSoundEnd = false; config.ejector = EJECTOR_REVOLVER; + + config.loadAnimations = i -> { + config.animations.put(AnimType.CYCLE, ResourceManager.python_anim.get("Fire")); + config.animations.put(AnimType.RELOAD, ResourceManager.python_anim.get("Reload")); + }; return config; } @@ -242,7 +249,7 @@ public class Gun357MagnumFactory { bullet.dmgMin = 10; bullet.dmgMax = 15; - bullet.effects = new ArrayList(); + bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(HbmPotion.radiation.id, 10 * 20, 4)); bullet.spentCasing = CASING357.clone().register("357Nuc").setColor(0xFEFEFE); @@ -328,8 +335,8 @@ public class Gun357MagnumFactory { bullet.dmgMax = 100; bullet.doesRicochet = false; bullet.destroysBlocks = true; - bullet.style = bullet.STYLE_BOLT; - bullet.trail = bullet.BOLT_NIGHTMARE; + bullet.style = BulletConfiguration.STYLE_BOLT; + bullet.trail = BulletConfiguration.BOLT_NIGHTMARE; bullet.damageType = ModDamageSource.s_laser; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 640c35e93..eafabf663 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -784,6 +784,10 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu @SideOnly(Side.CLIENT) public BusAnimation getAnimation(ItemStack stack, AnimType type) { GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; + if (!config.animationsLoaded && config.loadAnimations != null) { + config.loadAnimations.accept(null); + config.animationsLoaded = true; + } return config.animations.get(type); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 54809ab08..1d4798582 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -136,7 +136,6 @@ public class ClientProxy extends ServerProxy { registerClientEventHandler(theInfoSystem); AdvancedModelLoader.registerModelHandler(new HmfModelLoader()); - ResourceManager.loadAnimatedModels(); registerTileEntitySpecialRenderer(); registerItemRenderer(); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 599ccb1d2..9fa0e7ee3 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1,9 +1,13 @@ package com.hbm.main; +import java.util.HashMap; + import com.hbm.animloader.AnimatedModel; import com.hbm.animloader.Animation; import com.hbm.animloader.ColladaLoader; import com.hbm.lib.RefStrings; +import com.hbm.render.anim.AnimationLoader; +import com.hbm.render.anim.BusAnimation; import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.loader.WavefrontObjDisplayList; @@ -318,12 +322,12 @@ public class ResourceManager { public static final ResourceLocation sliding_blast_door_variant1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door_variant1.png"); public static final ResourceLocation sliding_blast_door_variant2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door_variant2.png"); - public static AnimatedModel sliding_blast_door; - public static Animation sliding_blast_door_anim; + public static AnimatedModel sliding_blast_door = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae")); + public static Animation sliding_blast_door_anim = ColladaLoader.loadAnim(1200, new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae")); //Doors - public static AnimatedModel transition_seal; - public static Animation transition_seal_anim; + public static AnimatedModel transition_seal = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"), true); + public static Animation transition_seal_anim = ColladaLoader.loadAnim(24040, new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae")); public static final WavefrontObjDisplayList fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asDisplayList(); //Secure Access Door @@ -840,6 +844,8 @@ public class ResourceManager { public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); public static final IModelCustom congolake = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/congolake.obj")).asDisplayList(); public static final IModelCustom lilmac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lilmac.obj")).asDisplayList(); + + public static final HashMap python_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/python.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -1508,11 +1514,4 @@ public class ResourceManager { public static final IModelCustom deb_zirnox_exchanger = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/zirnox/deb_exchanger.obj")); public static final IModelCustom deb_zirnox_shrapnel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/zirnox/deb_shrapnel.obj")); - public static void loadAnimatedModels(){ - transition_seal = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"), true); - transition_seal_anim = ColladaLoader.loadAnim(24040, new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae")); - - sliding_blast_door = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae")); - sliding_blast_door_anim = ColladaLoader.loadAnim(1200, new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae")); - } } diff --git a/src/main/java/com/hbm/render/anim/AnimationLoader.java b/src/main/java/com/hbm/render/anim/AnimationLoader.java new file mode 100644 index 000000000..89e7bd43a --- /dev/null +++ b/src/main/java/com/hbm/render/anim/AnimationLoader.java @@ -0,0 +1,135 @@ +package com.hbm.render.anim; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import com.google.gson.JsonElement; +import com.google.gson.JsonArray; + +import net.minecraft.client.Minecraft; +import net.minecraft.util.ResourceLocation; + +import com.hbm.render.anim.BusAnimationSequence.Dimension; + +public class AnimationLoader { + + // The collada loader is great, but is not so backwards compatible and spews keyframes rather than doing interpolation + // Yeah - more animation loading is not so great, but 3mb for a single door opening is maybe overkill on a 50mb mod + // and even though the format supports multiple animations, no fucking animation software will actually export multiple animations, + // (even though blender even has a fucking toggle for it, but it doesn't _do_ anything) + // This instead just loads transformation data from a JSON file, turning it into a set of BusAnimations + // See ntm-animator.blend for a JSON format creation script + + // "How do I make animations?" + // See ntm-animator.blend, it has the Colt/Python already setup and animated as an example, it'll generate JSON data that this can load + + public static final Gson gson = new Gson(); + + + public static HashMap load(ResourceLocation file) { + HashMap animations = new HashMap(); + + InputStream in; + try { + in = Minecraft.getMinecraft().getResourceManager().getResource(file).getInputStream(); + } catch (IOException ex) { + return null; + } + + InputStreamReader reader = new InputStreamReader(in); + JsonObject json = gson.fromJson(reader, JsonObject.class); + + // Top level parsing, this is for the animation name as set in Blender + for (Map.Entry root : json.entrySet()) { + BusAnimation animation = new BusAnimation(); + + // Loading the buses for this animation + JsonObject entryObject = root.getValue().getAsJsonObject(); + for (Map.Entry model : entryObject.entrySet()) { + animation.addBus(model.getKey(), loadSequence(model.getValue().getAsJsonObject())); + } + + animations.put(root.getKey(), animation); + } + + return animations; + } + + private static BusAnimationSequence loadSequence(JsonObject json) { + BusAnimationSequence sequence = new BusAnimationSequence(); + + // Location fcurves + if (json.has("location")) { + JsonObject location = json.getAsJsonObject("location"); + + if (location.has("x")) { + addToSequence(sequence, Dimension.TX, location.getAsJsonArray("x")); + } + if (location.has("y")) { + addToSequence(sequence, Dimension.TY, location.getAsJsonArray("y")); + } + if (location.has("z")) { + addToSequence(sequence, Dimension.TZ, location.getAsJsonArray("z")); + } + } + + // Rotation fcurves, only euler at the moment + if (json.has("rotation_euler")) { + JsonObject rotation = json.getAsJsonObject("rotation_euler"); + + if (rotation.has("x")) { + addToSequence(sequence, Dimension.RX, rotation.getAsJsonArray("x")); + } + if (rotation.has("y")) { + addToSequence(sequence, Dimension.RY, rotation.getAsJsonArray("y")); + } + if (rotation.has("z")) { + addToSequence(sequence, Dimension.RZ, rotation.getAsJsonArray("z")); + } + } + + // Scale fcurves + if (json.has("scale")) { + JsonObject scale = json.getAsJsonObject("scale"); + + if (scale.has("x")) { + addToSequence(sequence, Dimension.SX, scale.getAsJsonArray("x")); + } + if (scale.has("y")) { + addToSequence(sequence, Dimension.SY, scale.getAsJsonArray("y")); + } + if (scale.has("z")) { + addToSequence(sequence, Dimension.SZ, scale.getAsJsonArray("z")); + } + } + + // The first location must be undone to return everything to 0,0,0 + // This is required to ensure that rotations occur around the origin of the part, not 0,0,0 + sequence.offset[0] = sequence.getFirstValue(Dimension.TX); + sequence.offset[1] = sequence.getFirstValue(Dimension.TY); + sequence.offset[2] = sequence.getFirstValue(Dimension.TZ); + + return sequence; + } + + private static void addToSequence(BusAnimationSequence sequence, Dimension dimension, JsonArray array) { + for (JsonElement element : array) { + sequence.addKeyframe(dimension, loadKeyframe(element)); + } + } + + private static BusAnimationKeyframe loadKeyframe(JsonElement element) { + JsonArray array = element.getAsJsonArray(); + + double value = array.get(0).getAsDouble(); + int duration = array.get(1).getAsInt(); + + return new BusAnimationKeyframe(value, duration); + } + +} diff --git a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java index be03850ff..3c30e481d 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java @@ -10,25 +10,13 @@ public class BusAnimationKeyframe { NONE, LINEAR } - - // public double x; - // public double y; - // public double z; public double value; public InterpolationType interpolationType; public int duration; - // public double[] toArray() { - // return new double[] {x, y, z}; - // } - //this one can be used for "reset" type keyframes public BusAnimationKeyframe() { - // this.x = 0; - // this.y = 0; - // this.z = 0; - this.value = 0; this.duration = 1; this.interpolationType = InterpolationType.LINEAR; @@ -44,19 +32,5 @@ public class BusAnimationKeyframe { this(value, duration); this.interpolationType = interpolation; } - - // public BusAnimationKeyframe(double x, double y, double z, int duration) { - // this(); - // this.x = x; - // this.y = y; - // this.z = z; - // this.duration = duration; - // } - - // public BusAnimationKeyframe(double x, double y, double z, int duration, InterpolationType interpolation) { - // this(x, y, z, duration); - // this.interpolationType = interpolation; - // } - } diff --git a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java index 0eafe7ee9..1bfb0d686 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java @@ -24,6 +24,8 @@ public class BusAnimationSequence { // Storing a matrix of keyframe data, each keyframe stores a SINGLE dimension, so we can stagger frames over each parameter private List> transformKeyframes = new ArrayList>(9); + public double[] offset = new double[3]; + public BusAnimationSequence() { // Initialise our keyframe storage, since it's multidimensional @@ -42,9 +44,7 @@ public class BusAnimationSequence { } public BusAnimationSequence addKeyframe(Dimension dimension, double value, int duration) { - transformKeyframes.get(dimension.ordinal()).add(new BusAnimationKeyframe(value, duration)); - - return this; + return addKeyframe(dimension, new BusAnimationKeyframe(value, duration)); } @@ -66,11 +66,15 @@ public class BusAnimationSequence { } - + public double getFirstValue(Dimension dimension) { + List keyframes = transformKeyframes.get(dimension.ordinal()); + if (keyframes.size() == 0) return 0; + return keyframes.get(0).value; + } //all transformation data is absolute, additive transformations have not yet been implemented public double[] getTransformation(int millis) { - double[] transform = new double[9]; + double[] transform = new double[12]; for (int i = 0; i < 9; i++) { List keyframes = transformKeyframes.get(i); @@ -88,13 +92,13 @@ public class BusAnimationSequence { if (millis < endTime) break; } - if (currentFrame == null || millis >= endTime) { + if (currentFrame == null) { // Scale defaults to 1, others are 0 transform[i] = i >= 6 ? 1 : 0; continue; } - if (currentFrame.interpolationType == InterpolationType.NONE) { + if (currentFrame.interpolationType == InterpolationType.NONE || millis >= endTime) { transform[i] = currentFrame.value; continue; } @@ -106,6 +110,10 @@ public class BusAnimationSequence { transform[i] = (a - b) * t + b; } + transform[9] = offset[0]; + transform[10] = offset[1]; + transform[11] = offset[2]; + return transform; } diff --git a/src/main/java/com/hbm/render/anim/HbmAnimations.java b/src/main/java/com/hbm/render/anim/HbmAnimations.java index a4b9c7ce7..3d9c0c44c 100644 --- a/src/main/java/com/hbm/render/anim/HbmAnimations.java +++ b/src/main/java/com/hbm/render/anim/HbmAnimations.java @@ -84,21 +84,23 @@ public class HbmAnimations { return trans; } } - + return new double[] { 0, 0, 0, // position 0, 0, 0, // rotation - 1, 1, 1 // scale + 1, 1, 1, // scale + 0, 0, 0 // offset }; } public static void applyRelevantTransformation(String bus) { double[] transform = getRelevantTransformation(bus); - + GL11.glTranslated(transform[0], transform[1], transform[2]); GL11.glRotated(transform[3], 1, 0, 0); GL11.glRotated(transform[4], 0, 1, 0); GL11.glRotated(transform[5], 0, 0, 1); + GL11.glTranslated(-transform[9], -transform[10], -transform[11]); GL11.glScaled(transform[6], transform[7], transform[8]); } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java index a51de09ef..9e02394a5 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java @@ -3,6 +3,7 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -55,8 +56,26 @@ public class ItemRenderWeaponFFColt implements IItemRenderer { GL11.glScaled(s0, s0, s0); GL11.glRotated(100, 0, -1, 0); GL11.glRotated(25, 1, 0, 0); + + HbmAnimations.applyRelevantTransformation("Body"); + Minecraft.getMinecraft().renderEngine.bindTexture(main); + ResourceManager.ff_python.renderPart("Body"); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Cylinder"); + ResourceManager.ff_python.renderPart("Cylinder"); + GL11.glPopMatrix(); + + Minecraft.getMinecraft().renderEngine.bindTexture(grip); + ResourceManager.ff_python.renderPart("Grip"); + + HbmAnimations.applyRelevantTransformation("Hammer"); + Minecraft.getMinecraft().renderEngine.bindTexture(hammer); + ResourceManager.ff_python.renderPart("Hammer"); - break; + GL11.glPopMatrix(); + + return; case EQUIPPED: diff --git a/src/main/resources/assets/hbm/models/weapons/animations/python.json b/src/main/resources/assets/hbm/models/weapons/animations/python.json new file mode 100644 index 000000000..5053774fb --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/python.json @@ -0,0 +1 @@ +{"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [0.1901400089263916, 50.0], [-0.0, 283.3333333333333]], "y": [[0.0, 0.0], [0.22623062133789062, 50.0], [0.0, 283.3333333333333]]}, "rotation_euler": {"x": [[0.0, 16.666666666666668], [50.512076610560676, 66.66666666666666], [0.0, 250.0]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-44.61753114928588, 16.666666666666668], [-44.61753114928588, 183.33333333333334], [0.0, 300.0]]}, "location": {"x": [[0.00012800097465515137, 0.0]], "z": [[0.1478099822998047, 0.0]], "y": [[0.1151699647307396, 0.0]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.1266033947467804, 216.66666666666669], [-0.1256844699382782, 66.66666666666663], [-0.10699314624071121, 100.0], [-0.05540347099304199, 183.33333333333331], [-0.04984791576862335, 83.33333333333337], [-0.04814600944519043, 100.0], [-0.0495946928858757, 50.0], [-0.1901838481426239, 216.66666666666663], [-0.209717258810997, 366.66666666666663], [-0.2682616710662842, 83.33333333333326], [0.06351689994335175, 100.00000000000023], [0.059162016957998276, 83.33333333333326], [0.0, 199.99999999999977]], "z": [[-0.0, 0.0], [0.018239933997392654, 216.66666666666669], [-0.003715081140398979, 66.66666666666663], [0.003378540277481079, 100.0], [0.06673367321491241, 183.33333333333331], [0.13605912029743195, 83.33333333333337], [0.11836071312427521, 100.0], [0.13753235340118408, 50.0], [0.2322661280632019, 216.66666666666663], [0.20868675410747528, 366.66666666666663], [0.15863937139511108, 83.33333333333326], [0.2003980427980423, 100.00000000000023], [0.09448619186878204, 83.33333333333326], [-0.0, 199.99999999999977]], "y": [[0.0, 0.0], [0.04348362237215042, 216.66666666666669], [0.04043026641011238, 66.66666666666663], [0.0498494915664196, 100.0], [0.21255171298980713, 183.33333333333331], [0.027551360428333282, 83.33333333333337], [0.09703753143548965, 100.0], [0.024584002792835236, 50.0], [-0.3309659957885742, 216.66666666666663], [-0.3340303301811218, 366.66666666666663], [-0.1700890064239502, 83.33333333333326], [0.016301512718200684, 100.00000000000023], [-0.015913818031549454, 83.33333333333326], [0.0, 199.99999999999977]]}, "rotation_euler": {"x": [[0.0, 0.0], [3.3686347844983024, 150.0], [0.02222707974050119, 166.66666666666663], [4.537149524119608, 100.00000000000006], [61.414745582626026, 233.33333333333331], [52.280518454609116, 133.33333333333337], [-71.68136001842309, 199.9999999999999], [-67.29034068404862, 366.66666666666674], [-53.072130549224426, 116.66666666666652], [-7.130840436898373, 100.00000000000023], [-2.7997762896148553, 83.33333333333326], [0.0, 199.99999999999977]], "z": [[0.0, 0.0], [-17.712562234959403, 150.0], [13.30397138517142, 166.66666666666663], [5.758366003376731, 100.00000000000006], [5.603675025280636, 233.33333333333331], [6.040763589705493, 133.33333333333337], [-1.4811513876747122, 199.9999999999999], [-0.9937320130296772, 366.66666666666674], [5.75973417564485, 116.66666666666652], [-7.87355264592462, 100.00000000000023], [-5.935155631645579, 83.33333333333326], [-0.0, 199.99999999999977]], "y": [[0.0, 0.0], [-3.362418245136533, 150.0], [5.488280686800564, 166.66666666666663], [2.9251945710321565, 100.00000000000006], [-3.2122371128833507, 233.33333333333331], [-2.2836878362589266, 133.33333333333337], [6.285038902068653, 199.9999999999999], [6.379913644734715, 366.66666666666674], [24.273973215848397, 116.66666666666652], [-30.381999654726528, 100.00000000000023], [-9.056688259237983, 83.33333333333326], [0.0, 199.99999999999977]]}}, "Cylinder": {"location": {"x": [[-0.0010489225387573242, 0.0], [-0.0010489225387573242, 283.3333333333333], [-0.07956840097904205, 83.33333333333331], [-0.07956840097904205, 1200.0], [-0.0010489225387573242, 83.33333333333326]], "z": [[0.07426249980926514, 0.0], [0.07426249980926514, 283.3333333333333], [0.07129553705453873, 83.33333333333331], [0.07129553705453873, 1200.0], [0.07426249980926514, 83.33333333333326]], "y": [[0.10388392210006714, 0.0], [0.10388392210006714, 283.3333333333333], [0.07195358723402023, 83.33333333333331], [0.07195358723402023, 1200.0], [0.10388392210006714, 83.33333333333326]]}}}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/python.obj b/src/main/resources/assets/hbm/models/weapons/python.obj index ce42559c3..dc182636a 100644 --- a/src/main/resources/assets/hbm/models/weapons/python.obj +++ b/src/main/resources/assets/hbm/models/weapons/python.obj @@ -1,1220 +1,5 @@ -# Blender v2.79 (sub 0) OBJ File: 'python.blend' +# Blender 4.0.1 # www.blender.org -o Cylinder -v 0.040155 0.134253 0.138325 -v -0.032489 0.061608 0.138325 -v 0.040155 0.134253 0.000825 -v -0.032489 0.061608 0.000825 -v 0.030419 0.143989 0.000825 -v -0.042225 0.071345 0.000825 -v 0.030419 0.143989 0.138325 -v -0.042225 0.071345 0.138325 -v 0.014778 0.156219 0.138325 -v 0.014778 0.053094 0.138325 -v 0.014778 0.156219 0.000825 -v 0.014778 0.053094 0.000825 -v -0.015300 0.156219 0.000825 -v -0.015300 0.053094 0.000825 -v -0.015300 0.156219 0.138325 -v -0.015300 0.053094 0.138325 -v 0.040951 0.136693 0.138325 -v 0.052051 0.109897 0.138325 -v 0.040951 0.136693 0.000825 -v 0.052051 0.109897 0.000825 -v -0.055316 0.096818 0.000825 -v -0.044217 0.070021 0.000825 -v -0.055316 0.096818 0.138325 -v -0.044217 0.070021 0.138325 -v 0.052632 0.096296 0.138325 -v 0.041944 0.070492 0.138325 -v 0.052632 0.096296 0.000825 -v 0.041944 0.070493 0.000825 -v -0.044628 0.136582 0.000825 -v -0.055316 0.110779 0.000825 -v -0.044628 0.136582 0.138325 -v -0.055316 0.110779 0.138325 -v 0.052103 0.110777 0.138325 -v 0.052103 0.096812 0.138325 -v 0.052103 0.110777 0.103950 -v 0.052103 0.096812 0.103950 -v -0.055319 0.110777 0.103950 -v -0.055319 0.096812 0.103950 -v -0.055319 0.110777 0.138325 -v -0.055319 0.096812 0.138325 -v 0.041306 0.136583 0.138325 -v 0.041306 0.069981 0.138325 -v 0.041306 0.136583 0.000825 -v 0.041306 0.069981 0.000825 -v -0.044631 0.136583 0.000825 -v -0.044631 0.069981 0.000825 -v -0.044631 0.136583 0.138325 -v -0.044631 0.069981 0.138325 -v -0.036145 0.147590 0.000825 -v -0.027101 0.125756 0.000825 -v -0.036145 0.147590 0.138325 -v -0.027101 0.125756 0.138325 -v -0.015304 0.156223 0.000825 -v -0.015304 0.156223 0.138325 -v -0.006260 0.134388 0.138325 -v -0.006260 0.134388 0.000825 -v 0.033630 0.148410 0.138325 -v 0.024586 0.126576 0.138325 -v 0.033630 0.148410 0.000825 -v 0.024586 0.126576 0.000825 -v 0.014774 0.156221 0.000825 -v 0.014774 0.156221 0.138325 -v 0.005730 0.134386 0.138325 -v 0.005730 0.134386 0.000825 -v 0.023594 0.082327 0.138325 -v 0.032639 0.060493 0.138325 -v 0.023594 0.082327 0.000825 -v 0.032639 0.060493 0.000825 -v 0.014774 0.053094 0.138325 -v 0.014774 0.053094 0.000825 -v 0.005730 0.074928 0.138325 -v 0.005730 0.074928 0.000825 -v -0.025114 0.082739 0.000825 -v -0.034158 0.060905 0.000825 -v -0.025114 0.082739 0.138325 -v -0.034158 0.060905 0.138325 -v -0.015301 0.053095 0.138325 -v -0.015301 0.053095 0.000825 -v -0.006257 0.074929 0.138325 -v -0.006257 0.074929 0.000825 -v 0.041811 0.073900 0.138325 -v 0.027931 0.060020 0.138325 -v 0.041811 0.073900 0.000825 -v 0.027931 0.060020 0.000825 -v -0.030834 0.146544 0.000825 -v -0.044713 0.132664 0.000825 -v -0.030834 0.146544 0.138325 -v -0.044713 0.132664 0.138325 -vt 0.232414 0.762673 -vt 0.232414 0.557205 -vt 0.507414 0.762673 -vt 0.507414 0.557205 -vt 0.492586 0.762673 -vt 0.492586 0.557205 -vt 0.767586 0.762673 -vt 0.767586 0.557205 -vt 0.419200 0.507414 -vt 0.419200 0.232414 -vt 0.446738 0.507414 -vt 0.446738 0.232414 -vt 0.419200 0.767586 -vt 0.419200 0.492586 -vt 0.446738 0.767586 -vt 0.446738 0.492586 -vt 0.419200 0.762673 -vt 0.419200 0.557205 -vt 0.446738 0.762673 -vt 0.446738 0.557205 -vt 0.553262 0.762673 -vt 0.553262 0.557205 -vt 0.580800 0.762673 -vt 0.580800 0.557205 -vt 0.232414 0.726953 -vt 0.232414 0.520703 -vt 0.507414 0.726953 -vt 0.507414 0.520703 -vt 0.492586 0.726953 -vt 0.492586 0.520703 -vt 0.767586 0.726953 -vt 0.767586 0.520703 -vt 0.473047 0.507414 -vt 0.473047 0.232414 -vt 0.533204 0.507414 -vt 0.533204 0.232414 -vt 0.473047 0.767586 -vt 0.473047 0.492586 -vt 0.533204 0.767586 -vt 0.533204 0.492586 -vt 0.473047 0.726953 -vt 0.473047 0.520703 -vt 0.533204 0.726953 -vt 0.533204 0.520703 -vt 0.466796 0.726953 -vt 0.466796 0.520703 -vt 0.526953 0.726953 -vt 0.526953 0.520703 -vt 0.232414 0.612558 -vt 0.232414 0.554549 -vt 0.507414 0.612558 -vt 0.507414 0.554549 -vt 0.492586 0.612558 -vt 0.492586 0.554549 -vt 0.767586 0.612558 -vt 0.767586 0.554549 -vt 0.415213 0.507414 -vt 0.415213 0.232414 -vt 0.623611 0.507414 -vt 0.623611 0.232414 -vt 0.415213 0.767586 -vt 0.415213 0.492586 -vt 0.623611 0.767586 -vt 0.623611 0.492586 -vt 0.415213 0.612558 -vt 0.415213 0.554549 -vt 0.623611 0.612558 -vt 0.623611 0.554549 -vt 0.376389 0.612558 -vt 0.376389 0.554549 -vt 0.584787 0.612558 -vt 0.584787 0.554549 -vt 0.232414 0.691931 -vt 0.232414 0.636072 -vt 0.507414 0.691931 -vt 0.507414 0.636072 -vt 0.492586 0.691931 -vt 0.492586 0.636072 -vt 0.767586 0.691931 -vt 0.767586 0.636072 -vt 0.393015 0.507414 -vt 0.393015 0.232414 -vt 0.603561 0.507414 -vt 0.603561 0.232414 -vt 0.393015 0.767586 -vt 0.393015 0.492586 -vt 0.603561 0.767586 -vt 0.603561 0.492586 -vt 0.393015 0.691931 -vt 0.393015 0.636072 -vt 0.603561 0.691931 -vt 0.603561 0.636072 -vt 0.396439 0.691931 -vt 0.396439 0.636072 -vt 0.606985 0.691931 -vt 0.606985 0.636072 -vt 0.232414 0.636072 -vt 0.232414 0.608142 -vt 0.301164 0.636072 -vt 0.301164 0.608142 -vt 0.698836 0.636072 -vt 0.698836 0.608142 -vt 0.767586 0.636072 -vt 0.767586 0.608142 -vt 0.393014 0.301164 -vt 0.393014 0.232414 -vt 0.607857 0.301164 -vt 0.607857 0.232414 -vt 0.393014 0.767586 -vt 0.393014 0.698836 -vt 0.607857 0.767586 -vt 0.607857 0.698836 -vt 0.393014 0.636072 -vt 0.393014 0.608142 -vt 0.607857 0.636072 -vt 0.607857 0.608142 -vt 0.392143 0.636072 -vt 0.392143 0.608142 -vt 0.606986 0.636072 -vt 0.606986 0.608142 -vt 0.232414 0.687679 -vt 0.232414 0.554476 -vt 0.507414 0.687679 -vt 0.507414 0.554476 -vt 0.492586 0.687679 -vt 0.492586 0.554476 -vt 0.767586 0.687679 -vt 0.767586 0.554476 -vt 0.414390 0.507414 -vt 0.414390 0.232414 -vt 0.586265 0.507414 -vt 0.586265 0.232414 -vt 0.414390 0.767586 -vt 0.414390 0.492586 -vt 0.586265 0.767586 -vt 0.586265 0.492586 -vt 0.414390 0.687679 -vt 0.414390 0.554476 -vt 0.586265 0.687679 -vt 0.586265 0.554476 -vt 0.413735 0.687679 -vt 0.413735 0.554476 -vt 0.585610 0.687679 -vt 0.585610 0.554476 -vt 0.492586 0.713286 -vt 0.492586 0.666019 -vt 0.767586 0.713286 -vt 0.767586 0.666019 -vt 0.449452 0.507414 -vt 0.449452 0.232414 -vt 0.494569 0.507414 -vt 0.494569 0.232414 -vt 0.449452 0.713286 -vt 0.449452 0.666019 -vt 0.494569 0.713286 -vt 0.494569 0.666019 -vt 0.505431 0.713286 -vt 0.505431 0.666019 -vt 0.550548 0.713286 -vt 0.550548 0.666019 -vt 0.232414 0.730552 -vt 0.232414 0.683285 -vt 0.507414 0.730552 -vt 0.507414 0.683285 -vt 0.515115 0.507414 -vt 0.515115 0.232414 -vt 0.555935 0.507414 -vt 0.555935 0.232414 -vt 0.515115 0.730552 -vt 0.515115 0.683285 -vt 0.555935 0.730552 -vt 0.555935 0.683285 -vt 0.444065 0.730552 -vt 0.444065 0.683285 -vt 0.484885 0.730552 -vt 0.484885 0.683285 -vt 0.232414 0.567969 -vt 0.232414 0.520703 -vt 0.507414 0.567969 -vt 0.507414 0.520703 -vt 0.533203 0.767586 -vt 0.533203 0.492586 -vt 0.571875 0.767586 -vt 0.571875 0.492586 -vt 0.533203 0.567969 -vt 0.533203 0.520703 -vt 0.571875 0.567969 -vt 0.571875 0.520703 -vt 0.428125 0.567969 -vt 0.428125 0.520703 -vt 0.466797 0.567969 -vt 0.466797 0.520703 -vt 0.492586 0.583590 -vt 0.492586 0.536324 -vt 0.767586 0.583590 -vt 0.767586 0.536324 -vt 0.435334 0.767586 -vt 0.435334 0.492586 -vt 0.476154 0.767586 -vt 0.476154 0.492586 -vt 0.435334 0.583590 -vt 0.435334 0.536324 -vt 0.476154 0.583590 -vt 0.476154 0.536324 -vt 0.523846 0.583590 -vt 0.523846 0.536324 -vt 0.564666 0.583590 -vt 0.564666 0.536324 -vt 0.232414 0.719101 -vt 0.232414 0.679843 -vt 0.507414 0.719101 -vt 0.507414 0.679843 -vt 0.492586 0.719101 -vt 0.492586 0.679843 -vt 0.767586 0.719101 -vt 0.767586 0.679843 -vt 0.414227 0.507414 -vt 0.414227 0.232414 -vt 0.619696 0.507414 -vt 0.619696 0.232414 -vt 0.414227 0.767586 -vt 0.414227 0.492586 -vt 0.619696 0.767586 -vt 0.619696 0.492586 -vt 0.414227 0.719101 -vt 0.414227 0.679843 -vt 0.619696 0.719101 -vt 0.619696 0.679843 -vt 0.380304 0.719101 -vt 0.380304 0.679843 -vt 0.585773 0.719101 -vt 0.585773 0.679843 -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 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -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.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.9239 0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn -0.3827 -0.9239 0.0000 -s off -f 1/1/1 2/2/1 3/3/1 -f 2/2/1 4/4/1 3/3/1 -f 5/5/2 6/6/2 7/7/2 -f 6/6/2 8/8/2 7/7/2 -f 5/9/3 7/10/3 3/11/3 -f 7/10/3 1/12/3 3/11/3 -f 8/13/4 6/14/4 2/15/4 -f 6/14/4 4/16/4 2/15/4 -f 7/17/5 8/18/5 1/19/5 -f 8/18/5 2/20/5 1/19/5 -f 3/21/6 4/22/6 5/23/6 -f 4/22/6 6/24/6 5/23/6 -f 9/25/7 10/26/7 11/27/7 -f 10/26/7 12/28/7 11/27/7 -f 13/29/8 14/30/8 15/31/8 -f 14/30/8 16/32/8 15/31/8 -f 13/33/9 15/34/9 11/35/9 -f 15/34/9 9/36/9 11/35/9 -f 16/37/10 14/38/10 10/39/10 -f 14/38/10 12/40/10 10/39/10 -f 15/41/5 16/42/5 9/43/5 -f 16/42/5 10/44/5 9/43/5 -f 11/45/6 12/46/6 13/47/6 -f 12/46/6 14/48/6 13/47/6 -f 17/49/11 18/50/11 19/51/11 -f 18/50/11 20/52/11 19/51/11 -f 21/53/12 22/54/12 23/55/12 -f 22/54/12 24/56/12 23/55/12 -f 21/57/13 23/58/13 19/59/13 -f 23/58/13 17/60/13 19/59/13 -f 24/61/14 22/62/14 18/63/14 -f 22/62/14 20/64/14 18/63/14 -f 23/65/5 24/66/5 17/67/5 -f 24/66/5 18/68/5 17/67/5 -f 19/69/6 20/70/6 21/71/6 -f 20/70/6 22/72/6 21/71/6 -f 25/73/15 26/74/15 27/75/15 -f 26/74/15 28/76/15 27/75/15 -f 29/77/16 30/78/16 31/79/16 -f 30/78/16 32/80/16 31/79/16 -f 29/81/17 31/82/17 27/83/17 -f 31/82/17 25/84/17 27/83/17 -f 32/85/18 30/86/18 26/87/18 -f 30/86/18 28/88/18 26/87/18 -f 31/89/5 32/90/5 25/91/5 -f 32/90/5 26/92/5 25/91/5 -f 27/93/6 28/94/6 29/95/6 -f 28/94/6 30/96/6 29/95/6 -f 33/97/7 34/98/7 35/99/7 -f 34/98/7 36/100/7 35/99/7 -f 37/101/8 38/102/8 39/103/8 -f 38/102/8 40/104/8 39/103/8 -f 37/105/9 39/106/9 35/107/9 -f 39/106/9 33/108/9 35/107/9 -f 40/109/10 38/110/10 34/111/10 -f 38/110/10 36/112/10 34/111/10 -f 39/113/5 40/114/5 33/115/5 -f 40/114/5 34/116/5 33/115/5 -f 35/117/6 36/118/6 37/119/6 -f 36/118/6 38/120/6 37/119/6 -f 41/121/7 42/122/7 43/123/7 -f 42/122/7 44/124/7 43/123/7 -f 45/125/8 46/126/8 47/127/8 -f 46/126/8 48/128/8 47/127/8 -f 45/129/9 47/130/9 43/131/9 -f 47/130/9 41/132/9 43/131/9 -f 48/133/10 46/134/10 42/135/10 -f 46/134/10 44/136/10 42/135/10 -f 47/137/5 48/138/5 41/139/5 -f 48/138/5 42/140/5 41/139/5 -f 43/141/6 44/142/6 45/143/6 -f 44/142/6 46/144/6 45/143/6 -f 49/145/12 50/146/12 51/147/12 -f 50/146/12 52/148/12 51/147/12 -f 49/149/13 51/150/13 53/151/13 -f 51/150/13 54/152/13 53/151/13 -f 51/153/5 52/154/5 54/155/5 -f 52/154/5 55/156/5 54/155/5 -f 53/157/6 56/158/6 49/159/6 -f 56/158/6 50/160/6 49/159/6 -f 57/161/15 58/162/15 59/163/15 -f 58/162/15 60/164/15 59/163/15 -f 61/165/17 62/166/17 59/167/17 -f 62/166/17 57/168/17 59/167/17 -f 62/169/5 63/170/5 57/171/5 -f 63/170/5 58/172/5 57/171/5 -f 59/173/6 60/174/6 61/175/6 -f 60/174/6 64/176/6 61/175/6 -f 65/177/11 66/178/11 67/179/11 -f 66/178/11 68/180/11 67/179/11 -f 69/181/14 70/182/14 66/183/14 -f 70/182/14 68/184/14 66/183/14 -f 71/185/5 69/186/5 65/187/5 -f 69/186/5 66/188/5 65/187/5 -f 67/189/6 68/190/6 72/191/6 -f 68/190/6 70/192/6 72/191/6 -f 73/193/16 74/194/16 75/195/16 -f 74/194/16 76/196/16 75/195/16 -f 76/197/18 74/198/18 77/199/18 -f 74/198/18 78/200/18 77/199/18 -f 75/201/5 76/202/5 79/203/5 -f 76/202/5 77/204/5 79/203/5 -f 80/205/6 78/206/6 73/207/6 -f 78/206/6 74/208/6 73/207/6 -f 81/209/1 82/210/1 83/211/1 -f 82/210/1 84/212/1 83/211/1 -f 85/213/2 86/214/2 87/215/2 -f 86/214/2 88/216/2 87/215/2 -f 85/217/3 87/218/3 83/219/3 -f 87/218/3 81/220/3 83/219/3 -f 88/221/4 86/222/4 82/223/4 -f 86/222/4 84/224/4 82/223/4 -f 87/225/5 88/226/5 81/227/5 -f 88/226/5 82/228/5 81/227/5 -f 83/229/6 84/230/6 85/231/6 -f 84/230/6 86/232/6 85/231/6 -o Grip -v 0.029437 0.100706 0.311919 -v 0.029437 -0.004763 0.311919 -v 0.029437 0.100706 0.268950 -v 0.029437 -0.004763 0.268950 -v -0.029156 0.100706 0.268950 -v -0.029156 -0.004763 0.268950 -v -0.029156 0.100706 0.311919 -v -0.029156 -0.004763 0.311919 -v 0.029388 0.017106 0.332156 -v 0.029388 -0.174300 0.332156 -v 0.029388 0.017106 0.285281 -v 0.029388 -0.174300 0.285281 -v -0.029181 0.017106 0.285281 -v -0.029181 -0.174300 0.285281 -v -0.029181 0.017106 0.332156 -v -0.029181 -0.174300 0.332156 -v 0.029419 0.085760 0.232858 -v 0.029419 -0.005391 0.324008 -v 0.029419 0.069187 0.216285 -v 0.029419 -0.021963 0.307436 -v -0.029175 0.069187 0.216285 -v -0.029175 -0.021963 0.307436 -v -0.029175 0.085760 0.232858 -v -0.029175 -0.005391 0.324008 -v 0.029462 0.040785 0.284858 -v 0.029462 -0.024175 0.257950 -v 0.029462 0.069187 0.216289 -v 0.029462 0.004227 0.189381 -v -0.029131 0.069187 0.216289 -v -0.029131 0.004227 0.189381 -v -0.029131 0.040785 0.284858 -v -0.029131 -0.024175 0.257950 -v 0.029425 0.004225 0.310469 -v 0.029425 -0.019213 0.310469 -v 0.029425 0.004225 0.189375 -v 0.029425 -0.019213 0.189375 -v -0.029169 0.004225 0.189375 -v -0.029169 -0.019213 0.189375 -v -0.029169 0.004225 0.310469 -v -0.029169 -0.019213 0.310469 -v 0.029456 -0.063915 0.319925 -v 0.029456 -0.080488 0.303353 -v 0.029456 0.021711 0.234299 -v 0.029456 0.005138 0.217726 -v -0.029137 0.021711 0.234299 -v -0.029137 0.005138 0.217726 -v -0.029137 -0.063915 0.319925 -v -0.029137 -0.080488 0.303353 -v 0.029406 0.100711 0.268945 -v 0.029406 -0.040037 0.327245 -v 0.029406 0.085762 0.232856 -v 0.029406 -0.054985 0.291156 -v -0.029188 0.085762 0.232856 -v -0.029188 -0.054985 0.291156 -v -0.029188 0.100711 0.268945 -v -0.029188 -0.040037 0.327245 -v 0.029375 -0.129257 0.319077 -v 0.029375 -0.205044 0.287685 -v 0.029375 -0.120288 0.297424 -v 0.029375 -0.196075 0.266032 -v -0.029188 -0.120288 0.297424 -v -0.029188 -0.196075 0.266032 -v -0.029188 -0.129257 0.319077 -v -0.029188 -0.205044 0.287685 -v 0.029450 0.100710 0.300193 -v 0.029450 -0.040037 0.358492 -v 0.029450 0.085762 0.264104 -v 0.029450 -0.054986 0.322403 -v -0.029144 0.085762 0.264104 -v -0.029144 -0.054986 0.322403 -v -0.029144 0.100710 0.300193 -v -0.029144 -0.040037 0.358492 -v 0.029469 0.075586 0.302363 -v 0.029469 0.006533 0.371416 -v 0.029469 0.047965 0.274741 -v 0.029469 -0.021088 0.343795 -v -0.029125 0.047965 0.274741 -v -0.029125 -0.021088 0.343795 -v -0.029125 0.075586 0.302363 -v -0.029125 0.006533 0.371416 -v 0.029425 0.006539 0.371413 -v 0.029425 -0.126990 0.426723 -v 0.029425 -0.032327 0.277581 -v 0.029425 -0.165857 0.332891 -v -0.029169 -0.032327 0.277581 -v -0.029169 -0.165857 0.332891 -v -0.029169 0.006539 0.371413 -v -0.029169 -0.126990 0.426723 -v 0.029419 -0.126919 0.427336 -v 0.029419 -0.205044 0.427336 -v 0.029419 -0.126919 0.287688 -v 0.029419 -0.205044 0.287688 -v -0.029163 -0.126919 0.287688 -v -0.029163 -0.205044 0.287688 -v -0.029163 -0.126919 0.427336 -v -0.029163 -0.205044 0.427336 -v 0.021613 0.096482 0.310400 -v 0.021613 -0.037047 0.365710 -v 0.021613 0.078544 0.267093 -v 0.021613 -0.054986 0.322403 -v -0.021356 0.078544 0.267093 -v -0.021356 -0.054986 0.322403 -v -0.021356 0.096482 0.310400 -v -0.021356 -0.037047 0.365710 -v 0.021613 0.081113 0.307885 -v 0.021613 0.010678 0.378319 -v 0.021613 0.047967 0.274739 -v 0.021613 -0.022467 0.345174 -v -0.021356 0.047967 0.274739 -v -0.021356 -0.022467 0.345174 -v -0.021356 0.081113 0.307885 -v -0.021356 0.010678 0.378319 -v 0.021613 -0.123013 0.435149 -v 0.021613 -0.205044 0.435149 -v 0.021613 -0.123013 0.287688 -v 0.021613 -0.205044 0.287688 -v -0.021356 -0.123013 0.287688 -v -0.021356 -0.205044 0.287688 -v -0.021356 -0.123013 0.435149 -v -0.021356 -0.205044 0.435149 -v 0.021613 0.011330 0.377885 -v 0.021613 -0.125808 0.434689 -v 0.021613 -0.030526 0.276835 -v 0.021613 -0.167664 0.333640 -v -0.021356 -0.030526 0.276835 -v -0.021356 -0.167664 0.333640 -v -0.021356 0.011330 0.377885 -v -0.021356 -0.125808 0.434689 -vt 0.000000 1.000000 -vt 0.000000 0.789062 -vt 0.085938 1.000000 -vt 0.085938 0.789062 -vt 0.000000 1.000000 -vt 0.000000 0.789062 -vt 0.085938 1.000000 -vt 0.085938 0.789062 -vt 0.890625 1.000000 -vt 0.890625 0.914062 -vt 1.007812 1.000000 -vt 1.007812 0.914062 -vt 0.562500 0.531250 -vt 0.562500 0.320312 -vt 0.679688 0.531250 -vt 0.679688 0.320312 -vt 0.562500 0.531250 -vt 0.562500 0.320312 -vt 0.679688 0.531250 -vt 0.679688 0.320312 -vt 0.000000 1.000000 -vt 0.000000 0.687500 -vt 0.093750 1.000000 -vt 0.093750 0.687500 -vt 0.000000 1.000000 -vt 0.000000 0.687500 -vt 0.093750 1.000000 -vt 0.093750 0.687500 -vt 0.437500 1.000000 -vt 0.437500 0.617188 -vt 0.554688 1.000000 -vt 0.554688 0.617188 -vt 0.000000 1.000000 -vt 0.000000 0.742188 -vt 0.046875 1.000000 -vt 0.046875 0.742188 -vt 0.000000 1.000000 -vt 0.000000 0.742188 -vt 0.046875 1.000000 -vt 0.046875 0.742188 -vt 0.531250 0.468750 -vt 0.531250 0.421875 -vt 0.648438 0.468750 -vt 0.648438 0.421875 -vt 0.562500 0.593750 -vt 0.562500 0.335938 -vt 0.679688 0.593750 -vt 0.679688 0.335938 -vt 0.562500 0.593750 -vt 0.562500 0.335938 -vt 0.679688 0.593750 -vt 0.679688 0.335938 -vt 0.000000 1.000000 -vt 0.000000 0.859375 -vt 0.130307 1.000000 -vt 0.130307 0.859375 -vt 0.000000 1.000000 -vt 0.000000 0.859375 -vt 0.130307 1.000000 -vt 0.130307 0.859375 -vt 0.500000 0.468750 -vt 0.500000 0.338443 -vt 0.617188 0.468750 -vt 0.617188 0.338443 -vt 0.531250 0.468750 -vt 0.531250 0.338443 -vt 0.648438 0.468750 -vt 0.648438 0.338443 -vt 0.500000 0.468750 -vt 0.500000 0.328125 -vt 0.617188 0.468750 -vt 0.617188 0.328125 -vt 0.500000 0.468750 -vt 0.500000 0.328125 -vt 0.617188 0.468750 -vt 0.617188 0.328125 -vt 0.000000 1.000000 -vt 0.000000 0.953125 -vt 0.130307 1.000000 -vt 0.130307 0.953125 -vt 0.015625 1.000000 -vt 0.015625 0.953125 -vt 0.145932 1.000000 -vt 0.145932 0.953125 -vt 0.500000 0.468750 -vt 0.500000 0.338443 -vt 0.617188 0.468750 -vt 0.617188 0.338443 -vt 0.343750 0.703125 -vt 0.343750 0.572818 -vt 0.460938 0.703125 -vt 0.460938 0.572818 -vt 0.500000 0.406250 -vt 0.500000 0.359375 -vt 0.617188 0.406250 -vt 0.617188 0.359375 -vt 0.000000 1.000000 -vt 0.000000 0.953125 -vt 0.218750 1.000000 -vt 0.218750 0.953125 -vt 0.000000 1.000000 -vt 0.000000 0.953125 -vt 0.265625 1.000000 -vt 0.265625 0.953125 -vt 0.890625 0.359375 -vt 0.890625 0.285771 -vt 1.007812 0.359375 -vt 1.007812 0.285771 -vt 0.000000 1.000000 -vt 0.000000 0.695312 -vt 0.078125 1.000000 -vt 0.078125 0.695312 -vt 0.000000 1.000000 -vt 0.000000 0.695312 -vt 0.078125 1.000000 -vt 0.078125 0.695312 -vt 0.890625 1.000000 -vt 0.890625 0.921875 -vt 1.007812 1.000000 -vt 1.007812 0.921875 -vt 0.562500 0.593750 -vt 0.562500 0.289062 -vt 0.679688 0.593750 -vt 0.679688 0.289062 -vt 0.531250 0.593750 -vt 0.531250 0.289062 -vt 0.648438 0.593750 -vt 0.648438 0.289062 -vt 0.000000 1.000000 -vt 0.000000 0.835938 -vt 0.046875 1.000000 -vt 0.046875 0.835938 -vt 0.000000 1.000000 -vt 0.000000 0.835938 -vt 0.046875 1.000000 -vt 0.046875 0.835938 -vt 0.484375 0.046875 -vt 0.484375 0.000000 -vt 0.601562 0.046875 -vt 0.601562 0.000000 -vt 0.687500 0.156250 -vt 0.687500 -0.007812 -vt 0.804688 0.156250 -vt 0.804688 -0.007812 -vt 0.000000 1.000000 -vt 0.000000 0.695312 -vt 0.078125 1.000000 -vt 0.078125 0.695312 -vt 0.000000 1.000000 -vt 0.000000 0.695312 -vt 0.078125 1.000000 -vt 0.078125 0.695312 -vt 0.562500 0.468750 -vt 0.562500 0.390625 -vt 0.679688 0.468750 -vt 0.679688 0.390625 -vt 0.562500 0.437500 -vt 0.562500 0.359375 -vt 0.679688 0.437500 -vt 0.679688 0.359375 -vt 0.562500 0.593750 -vt 0.562500 0.289062 -vt 0.679688 0.593750 -vt 0.679688 0.289062 -vt 0.562500 0.593750 -vt 0.562500 0.289062 -vt 0.679688 0.593750 -vt 0.679688 0.289062 -vt 0.000000 1.000000 -vt 0.000000 0.804688 -vt 0.078125 1.000000 -vt 0.078125 0.804688 -vt 0.000000 1.000000 -vt 0.000000 0.804688 -vt 0.078125 1.000000 -vt 0.078125 0.804688 -vt 0.562500 0.437500 -vt 0.562500 0.359375 -vt 0.679688 0.437500 -vt 0.679688 0.359375 -vt 0.562500 0.500000 -vt 0.562500 0.304688 -vt 0.679688 0.500000 -vt 0.679688 0.304688 -vt 0.562500 0.500000 -vt 0.562500 0.304688 -vt 0.679688 0.500000 -vt 0.679688 0.304688 -vt 0.000000 1.000000 -vt 0.000000 0.710938 -vt 0.203125 1.000000 -vt 0.203125 0.710938 -vt 0.000000 1.000000 -vt 0.000000 0.710938 -vt 0.203125 1.000000 -vt 0.203125 0.710938 -vt 0.562500 0.531250 -vt 0.562500 0.328125 -vt 0.679688 0.531250 -vt 0.679688 0.328125 -vt 0.562500 0.593750 -vt 0.562500 0.304688 -vt 0.679688 0.593750 -vt 0.679688 0.304688 -vt 0.000000 0.734375 -vt 0.000000 0.578125 -vt 0.281250 0.734375 -vt 0.281250 0.578125 -vt 0.000000 0.734375 -vt 0.000000 0.578125 -vt 0.281250 0.734375 -vt 0.281250 0.578125 -vt 0.328125 0.281250 -vt 0.328125 0.001952 -vt 0.445312 0.281250 -vt 0.445312 0.001952 -vt 0.500000 0.500000 -vt 0.500000 0.343750 -vt 0.617188 0.500000 -vt 0.617188 0.343750 -vt 0.500000 0.500000 -vt 0.500000 0.343750 -vt 0.617188 0.500000 -vt 0.617188 0.343750 -vt 0.770499 0.593601 -vt 0.770499 0.304538 -vt 0.864249 0.593601 -vt 0.864249 0.304538 -vt 0.135752 0.593601 -vt 0.135752 0.304538 -vt 0.229502 0.593601 -vt 0.229502 0.304538 -vt 0.921875 1.000000 -vt 0.921875 0.710937 -vt 1.007812 1.000000 -vt 1.007812 0.710937 -vt 0.724961 0.568802 -vt 0.724961 0.369583 -vt 0.818711 0.568802 -vt 0.818711 0.369583 -vt 0.181289 0.568802 -vt 0.181289 0.369583 -vt 0.275039 0.568802 -vt 0.275039 0.369583 -vt 0.921875 1.000000 -vt 0.921875 0.800781 -vt 1.007812 1.000000 -vt 1.007812 0.800781 -vt 0.437500 0.500000 -vt 0.437500 0.335938 -vt 0.732422 0.500000 -vt 0.732422 0.335938 -vt 0.437500 0.500000 -vt 0.437500 0.335938 -vt 0.732422 0.500000 -vt 0.732422 0.335938 -vt 0.562500 0.562500 -vt 0.562500 0.267577 -vt 0.648438 0.562500 -vt 0.648438 0.267577 -vt 0.921875 1.000000 -vt 0.921875 0.705078 -vt 1.007812 1.000000 -vt 1.007812 0.705078 -vt 0.921875 1.000000 -vt 0.921875 0.835938 -vt 1.007812 1.000000 -vt 1.007812 0.835938 -vt 0.531250 0.500000 -vt 0.531250 0.335938 -vt 0.617188 0.500000 -vt 0.617188 0.335938 -vt 0.500000 0.593750 -vt 0.500000 0.296875 -vt 0.718750 0.593750 -vt 0.718750 0.296875 -vt 0.500000 0.593750 -vt 0.500000 0.296875 -vt 0.718750 0.593750 -vt 0.718750 0.296875 -vt 0.921875 1.000000 -vt 0.921875 0.703125 -vt 1.007812 1.000000 -vt 1.007812 0.703125 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -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.9239 0.3827 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 -0.9239 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 0.9239 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.7071 0.7071 -s off -f 89/233/19 90/234/19 91/235/19 -f 90/234/19 92/236/19 91/235/19 -f 93/237/20 94/238/20 95/239/20 -f 94/238/20 96/240/20 95/239/20 -f 93/241/21 95/242/21 91/243/21 -f 95/242/21 89/244/21 91/243/21 -f 95/245/22 96/246/22 89/247/22 -f 96/246/22 90/248/22 89/247/22 -f 91/249/23 92/250/23 93/251/23 -f 92/250/23 94/252/23 93/251/23 -f 97/253/19 98/254/19 99/255/19 -f 98/254/19 100/256/19 99/255/19 -f 101/257/20 102/258/20 103/259/20 -f 102/258/20 104/260/20 103/259/20 -f 99/261/23 100/262/23 101/263/23 -f 100/262/23 102/264/23 101/263/23 -f 105/265/19 106/266/19 107/267/19 -f 106/266/19 108/268/19 107/267/19 -f 109/269/20 110/270/20 111/271/20 -f 110/270/20 112/272/20 111/271/20 -f 109/273/24 111/274/24 107/275/24 -f 111/274/24 105/276/24 107/275/24 -f 111/277/25 112/278/25 105/279/25 -f 112/278/25 106/280/25 105/279/25 -f 107/281/26 108/282/26 109/283/26 -f 108/282/26 110/284/26 109/283/26 -f 113/285/19 114/286/19 115/287/19 -f 114/286/19 116/288/19 115/287/19 -f 117/289/20 118/290/20 119/291/20 -f 118/290/20 120/292/20 119/291/20 -f 117/293/27 119/294/27 115/295/27 -f 119/294/27 113/296/27 115/295/27 -f 120/297/28 118/298/28 114/299/28 -f 118/298/28 116/300/28 114/299/28 -f 119/301/29 120/302/29 113/303/29 -f 120/302/29 114/304/29 113/303/29 -f 115/305/30 116/306/30 117/307/30 -f 116/306/30 118/308/30 117/307/30 -f 121/309/19 122/310/19 123/311/19 -f 122/310/19 124/312/19 123/311/19 -f 125/313/20 126/314/20 127/315/20 -f 126/314/20 128/316/20 127/315/20 -f 125/317/21 127/318/21 123/319/21 -f 127/318/21 121/320/21 123/319/21 -f 128/321/31 126/322/31 122/323/31 -f 126/322/31 124/324/31 122/323/31 -f 123/325/23 124/326/23 125/327/23 -f 124/326/23 126/328/23 125/327/23 -f 129/329/19 130/330/19 131/331/19 -f 130/330/19 132/332/19 131/331/19 -f 133/333/20 134/334/20 135/335/20 -f 134/334/20 136/336/20 135/335/20 -f 136/337/26 134/338/26 130/339/26 -f 134/338/26 132/340/26 130/339/26 -f 137/341/19 138/342/19 139/343/19 -f 138/342/19 140/344/19 139/343/19 -f 141/345/20 142/346/20 143/347/20 -f 142/346/20 144/348/20 143/347/20 -f 141/349/32 143/350/32 139/351/32 -f 143/350/32 137/352/32 139/351/32 -f 143/353/33 144/354/33 137/355/33 -f 144/354/33 138/356/33 137/355/33 -f 139/357/34 140/358/34 141/359/34 -f 140/358/34 142/360/34 141/359/34 -f 145/361/19 146/362/19 147/363/19 -f 146/362/19 148/364/19 147/363/19 -f 149/365/20 150/366/20 151/367/20 -f 150/366/20 152/368/20 151/367/20 -f 152/369/28 150/370/28 146/371/28 -f 150/370/28 148/372/28 146/371/28 -f 147/373/30 148/374/30 149/375/30 -f 148/374/30 150/376/30 149/375/30 -f 153/377/19 154/378/19 155/379/19 -f 154/378/19 156/380/19 155/379/19 -f 157/381/20 158/382/20 159/383/20 -f 158/382/20 160/384/20 159/383/20 -f 157/385/32 159/386/32 155/387/32 -f 159/386/32 153/388/32 155/387/32 -f 160/389/35 158/390/35 154/391/35 -f 158/390/35 156/392/35 154/391/35 -f 159/393/33 160/394/33 153/395/33 -f 160/394/33 154/396/33 153/395/33 -f 155/397/34 156/398/34 157/399/34 -f 156/398/34 158/400/34 157/399/34 -f 161/401/19 162/402/19 163/403/19 -f 162/402/19 164/404/19 163/403/19 -f 165/405/20 166/406/20 167/407/20 -f 166/406/20 168/408/20 167/407/20 -f 168/409/36 166/410/36 162/411/36 -f 166/410/36 164/412/36 162/411/36 -f 167/413/25 168/414/25 161/415/25 -f 168/414/25 162/416/25 161/415/25 -f 163/417/26 164/418/26 165/419/26 -f 164/418/26 166/420/26 165/419/26 -f 169/421/19 170/422/19 171/423/19 -f 170/422/19 172/424/19 171/423/19 -f 173/425/20 174/426/20 175/427/20 -f 174/426/20 176/428/20 175/427/20 -f 173/429/32 175/430/32 171/431/32 -f 175/430/32 169/432/32 171/431/32 -f 175/433/33 176/434/33 169/435/33 -f 176/434/33 170/436/33 169/435/33 -f 177/437/19 178/438/19 179/439/19 -f 178/438/19 180/440/19 179/439/19 -f 181/441/20 182/442/20 183/443/20 -f 182/442/20 184/444/20 183/443/20 -f 184/445/31 182/446/31 178/447/31 -f 182/446/31 180/448/31 178/447/31 -f 183/449/22 184/450/22 177/451/22 -f 184/450/22 178/452/22 177/451/22 -f 179/453/23 180/454/23 181/455/23 -f 180/454/23 182/456/23 181/455/23 -f 185/457/19 186/458/19 187/459/19 -f 186/458/19 188/460/19 187/459/19 -f 189/461/20 190/462/20 191/463/20 -f 190/462/20 192/464/20 191/463/20 -f 191/465/33 192/466/33 185/467/33 -f 192/466/33 186/468/33 185/467/33 -f 193/469/19 194/470/19 195/471/19 -f 194/470/19 196/472/19 195/471/19 -f 197/473/20 198/474/20 199/475/20 -f 198/474/20 200/476/20 199/475/20 -f 199/477/25 200/478/25 193/479/25 -f 200/478/25 194/480/25 193/479/25 -f 201/481/19 202/482/19 203/483/19 -f 202/482/19 204/484/19 203/483/19 -f 205/485/20 206/486/20 207/487/20 -f 206/486/20 208/488/20 207/487/20 -f 205/489/21 207/490/21 203/491/21 -f 207/490/21 201/492/21 203/491/21 -f 208/493/31 206/494/31 202/495/31 -f 206/494/31 204/496/31 202/495/31 -f 207/497/22 208/498/22 201/499/22 -f 208/498/22 202/500/22 201/499/22 -f 203/501/23 204/502/23 205/503/23 -f 204/502/23 206/504/23 205/503/23 -f 209/505/19 210/506/19 211/507/19 -f 210/506/19 212/508/19 211/507/19 -f 213/509/20 214/510/20 215/511/20 -f 214/510/20 216/512/20 215/511/20 -f 215/513/33 216/514/33 209/515/33 -f 216/514/33 210/516/33 209/515/33 -o Hammer -v 0.009894 0.159364 0.192004 -v 0.009894 0.127600 0.223769 -v 0.009894 0.115170 0.147810 -v 0.009894 0.083406 0.179575 -v -0.009638 0.115170 0.147810 -v -0.009638 0.083406 0.179575 -v -0.009638 0.159364 0.192004 -v -0.009638 0.127600 0.223769 -v 0.009894 0.151487 0.265041 -v 0.009894 0.135862 0.265041 -v 0.009894 0.151487 0.220119 -v 0.009894 0.135862 0.220119 -v -0.009638 0.151487 0.220119 -v -0.009638 0.135862 0.220119 -v -0.009638 0.151487 0.265041 -v -0.009638 0.135862 0.265041 -v 0.009894 0.149695 0.230343 -v 0.009894 0.138646 0.241391 -v 0.009894 0.112406 0.193054 -v 0.009894 0.101357 0.204103 -v -0.009638 0.112406 0.193054 -v -0.009638 0.101357 0.204103 -v -0.009638 0.149695 0.230343 -v -0.009638 0.138646 0.241391 -v 0.009894 0.151488 0.220120 -v 0.009894 0.140439 0.231168 -v 0.009894 0.119723 0.188355 -v 0.009894 0.108675 0.199404 -v -0.009638 0.119723 0.188355 -v -0.009638 0.108675 0.199404 -v -0.009638 0.151488 0.220120 -v -0.009638 0.140439 0.231168 -v 0.009894 0.100022 0.248635 -v 0.009894 0.065737 0.234434 -v 0.009894 0.111980 0.219764 -v 0.009894 0.077696 0.205562 -v -0.009638 0.111980 0.219764 -v -0.009638 0.077696 0.205562 -v -0.009638 0.100022 0.248635 -v -0.009638 0.065737 0.234434 -vt 0.024914 0.671166 -vt 0.024914 0.581323 -vt 0.149915 0.671166 -vt 0.149915 0.581323 -vt 0.850086 0.671166 -vt 0.850086 0.581323 -vt 0.975086 0.671166 -vt 0.975086 0.581323 -vt 0.484375 0.149914 -vt 0.484375 0.024914 -vt 0.523438 0.149914 -vt 0.523438 0.024914 -vt 0.484375 0.671166 -vt 0.484375 0.581323 -vt 0.523438 0.671166 -vt 0.523438 0.581323 -vt 0.000000 0.717492 -vt 0.000000 0.686242 -vt 0.068825 0.717492 -vt 0.068825 0.686242 -vt 0.931175 0.717492 -vt 0.931175 0.686242 -vt 1.000000 0.717492 -vt 1.000000 0.686242 -vt 0.484375 0.068825 -vt 0.484375 0.000000 -vt 0.523438 0.068825 -vt 0.523438 0.000000 -vt 0.484375 1.000000 -vt 0.484375 0.931175 -vt 0.523438 1.000000 -vt 0.523438 0.931175 -vt 0.484375 0.717492 -vt 0.484375 0.686242 -vt 0.523438 0.717492 -vt 0.523438 0.686242 -vt 0.000000 0.648480 -vt 0.000000 0.617230 -vt 0.100860 0.648480 -vt 0.100860 0.617230 -vt 0.899140 0.648480 -vt 0.899140 0.617230 -vt 1.000000 0.648480 -vt 1.000000 0.617230 -vt 0.484375 0.100860 -vt 0.484375 0.000000 -vt 0.523438 0.100860 -vt 0.523438 0.000000 -vt 0.484375 1.000000 -vt 0.484375 0.899140 -vt 0.523438 1.000000 -vt 0.523438 0.899140 -vt 0.020413 0.663117 -vt 0.020413 0.631867 -vt 0.110257 0.663117 -vt 0.110257 0.631867 -vt 0.889743 0.663117 -vt 0.889743 0.631867 -vt 0.979587 0.663117 -vt 0.979587 0.631867 -vt 0.484375 0.110257 -vt 0.484375 0.020413 -vt 0.523438 0.110257 -vt 0.523438 0.020413 -vt 0.484375 0.979587 -vt 0.484375 0.889743 -vt 0.523438 0.979587 -vt 0.523438 0.889743 -vt 0.035439 0.644131 -vt 0.035439 0.569912 -vt 0.097939 0.644131 -vt 0.097939 0.569912 -vt 0.902061 0.644131 -vt 0.902061 0.569912 -vt 0.964561 0.644131 -vt 0.964561 0.569912 -vt 0.484375 0.097939 -vt 0.484375 0.035439 -vt 0.523438 0.097939 -vt 0.523438 0.035439 -vt 0.484375 0.644131 -vt 0.484375 0.569912 -vt 0.523438 0.644131 -vt 0.523438 0.569912 -vt 0.476562 0.644131 -vt 0.476562 0.569912 -vt 0.515625 0.644131 -vt 0.515625 0.569912 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 -0.9239 -s off -f 217/517/37 218/518/37 219/519/37 -f 218/518/37 220/520/37 219/519/37 -f 221/521/38 222/522/38 223/523/38 -f 222/522/38 224/524/38 223/523/38 -f 221/525/39 223/526/39 219/527/39 -f 223/526/39 217/528/39 219/527/39 -f 223/529/40 224/530/40 217/531/40 -f 224/530/40 218/532/40 217/531/40 -f 225/533/37 226/534/37 227/535/37 -f 226/534/37 228/536/37 227/535/37 -f 229/537/38 230/538/38 231/539/38 -f 230/538/38 232/540/38 231/539/38 -f 229/541/41 231/542/41 227/543/41 -f 231/542/41 225/544/41 227/543/41 -f 232/545/42 230/546/42 226/547/42 -f 230/546/42 228/548/42 226/547/42 -f 231/549/43 232/550/43 225/551/43 -f 232/550/43 226/552/43 225/551/43 -f 233/553/37 234/554/37 235/555/37 -f 234/554/37 236/556/37 235/555/37 -f 237/557/38 238/558/38 239/559/38 -f 238/558/38 240/560/38 239/559/38 -f 237/561/39 239/562/39 235/563/39 -f 239/562/39 233/564/39 235/563/39 -f 240/565/44 238/566/44 234/567/44 -f 238/566/44 236/568/44 234/567/44 -f 241/569/37 242/570/37 243/571/37 -f 242/570/37 244/572/37 243/571/37 -f 245/573/38 246/574/38 247/575/38 -f 246/574/38 248/576/38 247/575/38 -f 245/577/39 247/578/39 243/579/39 -f 247/578/39 241/580/39 243/579/39 -f 248/581/44 246/582/44 242/583/44 -f 246/582/44 244/584/44 242/583/44 -f 249/585/37 250/586/37 251/587/37 -f 250/586/37 252/588/37 251/587/37 -f 253/589/38 254/590/38 255/591/38 -f 254/590/38 256/592/38 255/591/38 -f 253/593/45 255/594/45 251/595/45 -f 255/594/45 249/596/45 251/595/45 -f 255/597/46 256/598/46 249/599/46 -f 256/598/46 250/600/46 249/599/46 -f 251/601/47 252/602/47 253/603/47 -f 252/602/47 254/604/47 253/603/47 o Body v 0.011850 0.155047 -0.051250 v 0.011850 0.141375 -0.051250 @@ -1778,6 +563,40 @@ v -0.015494 -0.003971 0.123369 v -0.015494 -0.028275 0.123369 v -0.015494 -0.003971 0.144853 v -0.015494 -0.028275 0.144853 +v 0.009894 0.100022 0.248635 +v 0.009894 0.065737 0.234434 +v 0.009894 0.111980 0.219764 +v 0.009894 0.077696 0.205562 +v -0.009638 0.111980 0.219764 +v -0.009638 0.077696 0.205562 +v -0.009638 0.100022 0.248635 +v -0.009638 0.065737 0.234434 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 -0.7071 -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.0000 0.9239 0.3827 +vn 0.7072 0.7071 -0.0000 +vn -0.0000 0.3827 0.9239 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 -0.9239 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.0000 -0.9239 -0.3827 +vn -0.0000 -0.3827 0.9239 +vn -0.0000 0.3827 -0.9239 vt 0.611563 0.724609 vt 0.611563 0.697266 vt 1.000000 0.724609 @@ -1806,10 +625,6 @@ vt 0.480469 1.000000 vt 0.480469 0.611563 vt 0.527344 1.000000 vt 0.527344 0.611563 -vt 0.480469 0.388437 -vt 0.480469 0.000000 -vt 0.527344 0.388437 -vt 0.527344 0.000000 vt 0.472656 0.638787 vt 0.472656 0.611443 vt 0.519531 0.638787 @@ -1870,14 +685,6 @@ vt 0.525334 0.691463 vt 0.525334 0.644588 vt 0.552678 0.691463 vt 0.552678 0.644588 -vt 0.611563 0.691463 -vt 0.611563 0.644588 -vt 1.000000 0.691463 -vt 1.000000 0.644588 -vt 0.000000 0.691463 -vt 0.000000 0.644588 -vt 0.388437 0.691463 -vt 0.388437 0.644588 vt 0.533146 1.000000 vt 0.533146 0.611563 vt 0.560490 1.000000 @@ -1891,13 +698,9 @@ vt 0.439510 0.644588 vt 0.466854 0.691463 vt 0.466854 0.644588 vt 0.611563 0.658318 -vt 0.611563 0.611443 vt 1.000000 0.658318 -vt 1.000000 0.611443 vt 0.000000 0.658318 -vt 0.000000 0.611443 vt 0.388437 0.658318 -vt 0.388437 0.611443 vt 0.480469 0.658318 vt 0.480469 0.611443 vt 0.507812 0.658318 @@ -1905,7 +708,6 @@ vt 0.507812 0.611443 vt 0.492188 0.658318 vt 0.492188 0.611443 vt 0.519531 0.658318 -vt 0.519531 0.611443 vt 0.611563 0.719004 vt 0.611563 0.672129 vt 1.000000 0.719004 @@ -1923,29 +725,15 @@ vt 0.431502 0.672129 vt 0.458846 0.719004 vt 0.458846 0.672129 vt 0.611563 0.732422 -vt 0.611563 0.724609 vt 1.000000 0.732422 -vt 1.000000 0.724609 vt 0.000000 0.732422 -vt 0.000000 0.724609 vt 0.388437 0.732422 -vt 0.388437 0.724609 -vt 0.480469 1.000000 -vt 0.480469 0.611563 -vt 0.527344 1.000000 -vt 0.527344 0.611563 vt 0.472656 0.732422 -vt 0.472656 0.724609 vt 0.519531 0.732422 -vt 0.519531 0.724609 vt 0.611563 0.744141 -vt 0.611563 0.732422 vt 1.000000 0.744141 -vt 1.000000 0.732422 vt 0.000000 0.744141 -vt 0.000000 0.732422 vt 0.388437 0.744141 -vt 0.388437 0.732422 vt 0.488281 1.000000 vt 0.488281 0.611563 vt 0.519531 1.000000 @@ -1962,10 +750,6 @@ vt 0.000000 0.767578 vt 0.000000 0.759766 vt 0.388437 0.767578 vt 0.388437 0.759766 -vt 0.488281 1.000000 -vt 0.488281 0.611563 -vt 0.519531 1.000000 -vt 0.519531 0.611563 vt 0.488281 0.388437 vt 0.488281 0.000000 vt 0.519531 0.388437 @@ -1986,10 +770,6 @@ vt 0.488281 0.759766 vt 0.488281 0.744141 vt 0.519531 0.759766 vt 0.519531 0.744141 -vt 0.480469 0.759766 -vt 0.480469 0.744141 -vt 0.511719 0.759766 -vt 0.511719 0.744141 vt 0.089688 0.759766 vt 0.089688 0.744141 vt 0.212187 0.759766 @@ -1998,14 +778,6 @@ vt 0.787812 0.759766 vt 0.787812 0.744141 vt 0.910312 0.759766 vt 0.910312 0.744141 -vt 0.488281 0.759766 -vt 0.488281 0.744141 -vt 0.519531 0.759766 -vt 0.519531 0.744141 -vt 0.480469 0.759766 -vt 0.480469 0.744141 -vt 0.511719 0.759766 -vt 0.511719 0.744141 vt 0.807813 0.759766 vt 0.807813 0.744141 vt 0.930313 0.759766 @@ -2014,14 +786,6 @@ vt 0.069688 0.759766 vt 0.069688 0.744141 vt 0.192188 0.759766 vt 0.192188 0.744141 -vt 0.488281 0.759766 -vt 0.488281 0.744141 -vt 0.519531 0.759766 -vt 0.519531 0.744141 -vt 0.480469 0.759766 -vt 0.480469 0.744141 -vt 0.511719 0.759766 -vt 0.511719 0.744141 vt 0.611562 0.759766 vt 0.611562 0.744141 vt 0.664062 0.759766 @@ -2030,10 +794,6 @@ vt 0.335938 0.759766 vt 0.335938 0.744141 vt 0.388438 0.759766 vt 0.388438 0.744141 -vt 0.480469 0.759766 -vt 0.480469 0.744141 -vt 0.511719 0.759766 -vt 0.511719 0.744141 vt 0.611563 0.768173 vt 0.611563 0.760360 vt 1.000000 0.768173 @@ -2061,9 +821,7 @@ vt 0.497894 0.766339 vt 0.349688 0.798828 vt 0.349688 0.759766 vt 0.389062 0.798828 -vt 0.389062 0.759766 vt 0.610937 0.798828 -vt 0.610937 0.759766 vt 0.650312 0.798828 vt 0.650312 0.759766 vt 0.500000 0.389062 @@ -2102,17 +860,12 @@ vt 0.677282 0.778632 vt 0.677282 0.770819 vt 0.703063 0.778632 vt 0.703063 0.770819 -vt 0.611563 0.611443 vt 0.611563 0.568474 -vt 1.000000 0.611443 vt 1.000000 0.568474 -vt 0.000000 0.611443 vt 0.000000 0.568474 -vt 0.388437 0.611443 vt 0.388437 0.568474 vt 0.484375 0.611443 vt 0.484375 0.568474 -vt 0.507812 0.611443 vt 0.507812 0.568474 vt 0.611563 0.597828 vt 0.611563 0.554859 @@ -2155,33 +908,22 @@ vt 0.500948 0.571433 vt 0.524385 0.614402 vt 0.524385 0.571433 vt 0.000000 0.594871 -vt 0.000000 0.571433 vt 0.388437 0.594871 -vt 0.388437 0.571433 -vt 0.475615 1.000000 -vt 0.475615 0.611563 vt 0.518584 1.000000 vt 0.518584 0.611563 -vt 0.475615 0.388437 -vt 0.475615 0.000000 vt 0.518584 0.388437 vt 0.518584 0.000000 vt 0.481416 0.594871 vt 0.481416 0.571433 vt 0.524385 0.594871 -vt 0.524385 0.571433 vt 0.000000 0.618308 -vt 0.000000 0.594871 vt 0.388437 0.618308 -vt 0.388437 0.594871 vt 0.497042 0.618308 vt 0.497042 0.594871 vt 0.524386 0.618308 vt 0.524386 0.594871 vt 0.611563 0.594871 -vt 0.611563 0.571433 vt 1.000000 0.594871 -vt 1.000000 0.571433 vt 0.504854 1.000000 vt 0.504854 0.611563 vt 0.532197 1.000000 @@ -2282,8 +1024,6 @@ vt 0.383972 0.632275 vt 0.383972 0.597470 vt 0.488029 0.632275 vt 0.488029 0.597470 -vt 0.458917 0.616027 -vt 0.458917 0.511971 vt 0.498449 0.616027 vt 0.498449 0.511971 vt 0.458917 0.632275 @@ -2410,14 +1150,6 @@ vt 0.432683 0.693698 vt 0.432683 0.640261 vt 0.463854 0.693698 vt 0.463854 0.640261 -vt 0.512513 0.693698 -vt 0.512513 0.640261 -vt 0.615113 0.693698 -vt 0.615113 0.640261 -vt 0.384887 0.693698 -vt 0.384887 0.640261 -vt 0.487487 0.693698 -vt 0.487487 0.640261 vt 0.438307 0.615113 vt 0.438307 0.512513 vt 0.469479 0.615113 @@ -2480,9 +1212,7 @@ vt 0.454724 0.725094 vt 0.454724 0.671657 vt 0.226796 0.775391 vt 0.226796 0.740234 -vt 0.568593 0.775391 vt 0.568593 0.740234 -vt 0.431407 0.775391 vt 0.431407 0.740234 vt 0.773204 0.775391 vt 0.773204 0.740234 @@ -2510,14 +1240,10 @@ vt 0.773204 0.767578 vt 0.773204 0.453126 vt 0.835704 0.767578 vt 0.835704 0.453126 -vt 0.460938 0.226796 vt 0.460938 0.164296 -vt 0.546875 0.226796 vt 0.546875 0.164296 vt 0.460938 0.835704 -vt 0.460938 0.773204 vt 0.546875 0.835704 -vt 0.546875 0.773204 vt 0.460938 0.767578 vt 0.460938 0.453126 vt 0.546875 0.767578 @@ -2527,25 +1253,17 @@ vt 0.453125 0.453126 vt 0.539062 0.767578 vt 0.539062 0.453126 vt 0.226796 0.787109 -vt 0.226796 0.775391 vt 0.359609 0.787109 vt 0.359609 0.775391 vt 0.640391 0.787109 vt 0.640391 0.775391 vt 0.773204 0.787109 -vt 0.773204 0.775391 vt 0.460938 0.359609 -vt 0.460938 0.226796 vt 0.546875 0.359609 -vt 0.546875 0.226796 vt 0.460938 0.787109 -vt 0.460938 0.775391 vt 0.546875 0.787109 -vt 0.546875 0.775391 vt 0.453125 0.787109 -vt 0.453125 0.775391 vt 0.539062 0.787109 -vt 0.539062 0.775391 vt 0.511125 0.598432 vt 0.511125 0.504291 vt 0.616375 0.598432 @@ -2613,9 +1331,7 @@ vt 0.539062 0.646484 vt 0.171687 0.514343 vt 0.171687 0.453404 vt 0.595297 0.514343 -vt 0.595297 0.453404 vt 0.404703 0.514343 -vt 0.404703 0.453404 vt 0.828313 0.514343 vt 0.828313 0.453404 vt 0.468751 0.595297 @@ -2627,9 +1343,7 @@ vt 0.468751 0.404703 vt 0.537501 0.828313 vt 0.537501 0.404703 vt 0.462499 0.514343 -vt 0.462499 0.453404 vt 0.531249 0.514343 -vt 0.531249 0.453404 vt 0.115577 0.764836 vt 0.115577 0.643743 vt 0.146827 0.764836 @@ -2814,8 +1528,6 @@ vt 0.773204 0.798828 vt 0.773204 0.765626 vt 0.835704 0.798828 vt 0.835704 0.765626 -vt 0.460938 0.226796 -vt 0.460938 0.164296 vt 0.476562 0.226796 vt 0.476562 0.164296 vt 0.460938 0.798828 @@ -2827,23 +1539,15 @@ vt 0.523438 0.765626 vt 0.539062 0.798828 vt 0.539062 0.765626 vt 0.164296 0.800782 -vt 0.164296 0.767578 vt 0.226796 0.800782 -vt 0.226796 0.767578 vt 0.773204 0.800782 -vt 0.773204 0.767578 vt 0.835704 0.800782 -vt 0.835704 0.767578 vt 0.535156 0.226796 vt 0.535156 0.164296 -vt 0.546875 0.226796 -vt 0.546875 0.164296 vt 0.535156 0.800782 vt 0.535156 0.767578 vt 0.546875 0.800782 -vt 0.546875 0.767578 vt 0.453125 0.800782 -vt 0.453125 0.767578 vt 0.464844 0.800782 vt 0.464844 0.767578 vt 0.401391 0.545360 @@ -2951,9 +1655,7 @@ vt 0.472658 0.087111 vt 0.533595 0.166971 vt 0.533595 0.087111 vt 0.472658 0.912890 -vt 0.472658 0.833030 vt 0.533595 0.912890 -vt 0.533595 0.833030 vt 0.110501 0.463387 vt 0.110501 0.321028 vt 0.141751 0.463387 @@ -2963,13 +1665,9 @@ vt 0.858249 0.321028 vt 0.889499 0.463387 vt 0.889499 0.321028 vt 0.472658 0.463387 -vt 0.472658 0.321028 vt 0.533595 0.463387 -vt 0.533595 0.321028 vt 0.466405 0.463387 -vt 0.466405 0.321028 vt 0.527342 0.463387 -vt 0.527342 0.321028 vt 0.215787 0.468493 vt 0.215787 0.388634 vt 0.262662 0.468493 @@ -3022,651 +1720,1697 @@ vt 0.466405 0.406572 vt 0.466405 0.357963 vt 0.527342 0.406572 vt 0.527342 0.357963 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 0.0000 +vt 0.035439 0.644131 +vt 0.035439 0.569912 +vt 0.097939 0.644131 +vt 0.097939 0.569912 +vt 0.902061 0.644131 +vt 0.902061 0.569912 +vt 0.964561 0.644131 +vt 0.964561 0.569912 +vt 0.484375 0.097939 +vt 0.484375 0.035439 +vt 0.523438 0.097939 +vt 0.523438 0.035439 +vt 0.484375 0.644131 +vt 0.484375 0.569912 +vt 0.523438 0.644131 +vt 0.523438 0.569912 +vt 0.476562 0.644131 +vt 0.476562 0.569912 +vt 0.515625 0.644131 +vt 0.515625 0.569912 +s 0 +f 1/1/1 2/2/1 3/3/1 +f 2/2/1 4/4/1 3/3/1 +f 5/5/2 6/6/2 7/7/2 +f 6/6/2 8/8/2 7/7/2 +f 8/9/3 6/10/3 2/11/3 +f 6/10/3 4/12/3 2/11/3 +f 3/13/4 4/14/4 5/15/4 +f 4/14/4 6/16/4 5/15/4 +f 9/17/1 10/18/1 11/19/1 +f 10/18/1 12/20/1 11/19/1 +f 13/21/2 14/22/2 15/23/2 +f 14/22/2 16/24/2 15/23/2 +f 13/25/5 15/26/5 11/27/5 +f 15/26/5 9/28/5 11/27/5 +f 16/9/3 14/10/3 10/11/3 +f 14/10/3 12/12/3 10/11/3 +f 11/29/4 12/30/4 13/31/4 +f 12/30/4 14/32/4 13/31/4 +f 17/33/6 18/34/6 19/35/6 +f 18/34/6 20/36/6 19/35/6 +f 21/37/7 22/38/7 23/39/7 +f 22/38/7 24/40/7 23/39/7 +f 23/41/8 24/42/8 17/43/8 +f 24/42/8 18/44/8 17/43/8 +f 19/45/4 20/46/4 21/47/4 +f 20/46/4 22/48/4 21/47/4 +f 25/49/6 26/50/6 27/51/6 +f 26/50/6 28/52/6 27/51/6 +f 29/53/7 30/54/7 31/55/7 +f 30/54/7 32/56/7 31/55/7 +f 31/57/8 32/58/8 25/59/8 +f 32/58/8 26/60/8 25/59/8 +f 27/61/4 28/62/4 29/63/4 +f 28/62/4 30/64/4 29/63/4 +f 33/65/1 34/66/1 35/67/1 +f 34/66/1 36/68/1 35/67/1 +f 37/69/2 38/70/2 39/71/2 +f 38/70/2 40/72/2 39/71/2 +f 37/73/5 39/74/5 35/75/5 +f 39/74/5 33/76/5 35/75/5 +f 40/77/3 38/78/3 34/79/3 +f 38/78/3 36/80/3 34/79/3 +f 39/81/8 40/82/8 33/83/8 +f 40/82/8 34/84/8 33/83/8 +f 35/85/4 36/86/4 37/87/4 +f 36/86/4 38/88/4 37/87/4 +f 41/65/1 42/66/1 43/67/1 +f 42/66/1 44/68/1 43/67/1 +f 45/69/2 46/70/2 47/71/2 +f 46/70/2 48/72/2 47/71/2 +f 45/89/5 47/90/5 43/91/5 +f 47/90/5 41/92/5 43/91/5 +f 48/93/3 46/94/3 42/95/3 +f 46/94/3 44/96/3 42/95/3 +f 43/97/4 44/98/4 45/99/4 +f 44/98/4 46/100/4 45/99/4 +f 49/101/9 50/18/9 51/102/9 +f 50/18/9 52/20/9 51/102/9 +f 53/103/10 54/22/10 55/104/10 +f 54/22/10 56/24/10 55/104/10 +f 55/105/8 56/106/8 49/107/8 +f 56/106/8 50/108/8 49/107/8 +f 51/109/4 52/110/4 53/111/4 +f 52/110/4 54/32/4 53/111/4 +f 57/112/9 58/113/9 59/114/9 +f 58/113/9 60/115/9 59/114/9 +f 61/116/10 62/117/10 63/118/10 +f 62/117/10 64/119/10 63/118/10 +f 63/120/8 64/121/8 57/122/8 +f 64/121/8 58/123/8 57/122/8 +f 59/124/4 60/125/4 61/126/4 +f 60/125/4 62/127/4 61/126/4 +f 65/128/1 66/1/1 67/129/1 +f 66/1/1 68/3/1 67/129/1 +f 69/130/2 70/5/2 71/131/2 +f 70/5/2 72/7/2 71/131/2 +f 69/25/5 71/26/5 67/27/5 +f 71/26/5 65/28/5 67/27/5 +f 67/132/4 68/13/4 69/133/4 +f 68/13/4 70/15/4 69/133/4 +f 73/134/1 74/128/1 75/135/1 +f 74/128/1 76/129/1 75/135/1 +f 77/136/2 78/130/2 79/137/2 +f 78/130/2 80/131/2 79/137/2 +f 77/138/5 79/139/5 75/140/5 +f 79/139/5 73/141/5 75/140/5 +f 75/142/4 76/143/4 77/144/4 +f 76/143/4 78/145/4 77/144/4 +f 81/146/1 82/147/1 83/148/1 +f 82/147/1 84/149/1 83/148/1 +f 85/150/2 86/151/2 87/152/2 +f 86/151/2 88/153/2 87/152/2 +f 85/138/5 87/139/5 83/140/5 +f 87/139/5 81/141/5 83/140/5 +f 88/154/3 86/155/3 82/156/3 +f 86/155/3 84/157/3 82/156/3 +f 83/158/4 84/159/4 85/160/4 +f 84/159/4 86/161/4 85/160/4 +f 89/162/1 90/163/1 91/164/1 +f 90/163/1 92/165/1 91/164/1 +f 93/166/2 94/167/2 95/168/2 +f 94/167/2 96/169/2 95/168/2 +f 95/170/8 96/171/8 89/172/8 +f 96/171/8 90/173/8 89/172/8 +f 91/159/4 92/142/4 93/161/4 +f 92/142/4 94/144/4 93/161/4 +f 97/174/1 98/175/1 99/176/1 +f 98/175/1 100/177/1 99/176/1 +f 101/178/2 102/179/2 103/180/2 +f 102/179/2 104/181/2 103/180/2 +f 103/170/8 104/171/8 97/172/8 +f 104/171/8 98/173/8 97/172/8 +f 99/159/4 100/142/4 101/161/4 +f 100/142/4 102/144/4 101/161/4 +f 105/182/1 106/183/1 107/184/1 +f 106/183/1 108/185/1 107/184/1 +f 109/186/2 110/187/2 111/188/2 +f 110/187/2 112/189/2 111/188/2 +f 111/170/8 112/171/8 105/172/8 +f 112/171/8 106/173/8 105/172/8 +f 107/159/4 108/142/4 109/161/4 +f 108/142/4 110/144/4 109/161/4 +f 113/190/1 114/191/1 115/192/1 +f 114/191/1 116/193/1 115/192/1 +f 117/194/2 118/195/2 119/196/2 +f 118/195/2 120/197/2 119/196/2 +f 115/159/4 116/142/4 117/161/4 +f 116/142/4 118/144/4 117/161/4 +f 121/198/11 122/199/11 123/200/11 +f 122/199/11 124/201/11 123/200/11 +f 125/202/12 126/203/12 123/204/12 +f 126/203/12 121/205/12 123/204/12 +f 123/206/4 124/207/4 125/208/4 +f 124/207/4 127/209/4 125/208/4 +f 128/210/13 129/211/13 130/212/13 +f 129/211/13 131/213/13 130/212/13 +f 128/214/14 130/215/14 132/216/14 +f 130/215/14 133/217/14 132/216/14 +f 132/218/4 134/219/4 128/220/4 +f 134/219/4 129/221/4 128/220/4 +f 135/222/1 136/223/1 137/224/1 +f 136/223/1 138/164/1 137/224/1 +f 139/225/2 140/166/2 141/226/2 +f 140/166/2 142/227/2 141/226/2 +f 139/228/5 141/229/5 137/230/5 +f 141/229/5 135/231/5 137/230/5 +f 137/232/4 138/233/4 139/234/4 +f 138/233/4 140/235/4 139/234/4 +f 143/236/1 144/237/1 145/238/1 +f 144/237/1 146/239/1 145/238/1 +f 147/240/2 148/241/2 149/242/2 +f 148/241/2 150/243/2 149/242/2 +f 147/244/15 149/245/15 145/246/15 +f 149/245/15 143/247/15 145/246/15 +f 151/248/1 152/249/1 153/250/1 +f 152/249/1 154/251/1 153/250/1 +f 155/252/2 156/253/2 157/254/2 +f 156/253/2 158/255/2 157/254/2 +f 159/256/1 160/257/1 161/258/1 +f 160/257/1 162/259/1 161/258/1 +f 163/260/2 164/261/2 165/262/2 +f 164/261/2 166/263/2 165/262/2 +f 167/18/1 168/264/1 169/20/1 +f 168/264/1 170/265/1 169/20/1 +f 171/22/2 172/266/2 173/24/2 +f 172/266/2 174/267/2 173/24/2 +f 169/268/4 170/269/4 171/108/4 +f 170/269/4 172/270/4 171/108/4 +f 175/271/1 176/272/1 177/273/1 +f 176/272/1 178/274/1 177/273/1 +f 179/275/2 180/276/2 181/277/2 +f 180/276/2 182/278/2 181/277/2 +f 182/279/3 180/280/3 176/281/3 +f 180/280/3 178/282/3 176/281/3 +f 177/283/4 178/284/4 179/285/4 +f 178/284/4 180/286/4 179/285/4 +f 183/287/6 184/288/6 185/289/6 +f 184/288/6 186/290/6 185/289/6 +f 187/291/7 188/292/7 189/293/7 +f 188/292/7 190/294/7 189/293/7 +f 187/295/16 189/296/16 185/297/16 +f 189/296/9 183/298/9 185/297/9 +f 190/299/10 188/300/10 184/301/10 +f 188/300/10 186/302/10 184/301/10 +f 189/303/8 190/304/8 183/305/8 +f 190/304/8 184/306/8 183/305/8 +f 185/307/4 186/308/4 187/309/4 +f 186/308/4 188/310/4 187/309/4 +f 191/311/2 192/292/2 193/312/2 +f 192/292/2 194/294/2 193/312/2 +f 191/295/5 193/296/5 195/313/5 +f 193/296/5 196/314/5 195/313/5 +f 194/299/3 192/300/3 197/315/3 +f 192/300/3 198/316/3 197/315/3 +f 195/317/4 198/318/4 191/319/4 +f 198/318/4 192/310/4 191/319/4 +f 199/320/7 200/311/7 201/321/7 +f 200/311/7 202/312/7 201/321/7 +f 203/322/4 204/323/4 199/324/4 +f 204/323/4 200/325/4 199/324/4 +f 205/326/1 206/288/1 207/327/1 +f 206/288/1 208/290/1 207/327/1 +f 209/328/5 210/329/5 207/330/5 +f 210/329/5 205/331/5 207/330/5 +f 211/332/3 212/333/3 206/334/3 +f 212/333/3 208/335/3 206/334/3 +f 207/336/4 208/337/4 209/338/4 +f 208/337/4 212/339/4 209/338/4 +f 213/340/6 214/341/6 215/342/6 +f 214/341/6 216/343/6 215/342/6 +f 217/344/7 218/345/7 219/346/7 +f 218/345/7 220/347/7 219/346/7 +f 217/348/9 219/349/9 215/350/9 +f 219/349/9 213/351/9 215/350/9 +f 220/352/10 218/353/10 214/354/10 +f 218/353/10 216/355/10 214/354/10 +f 219/356/8 220/357/8 213/358/8 +f 220/357/8 214/359/8 213/358/8 +f 215/360/4 216/361/4 217/362/4 +f 216/361/4 218/363/4 217/362/4 +f 221/364/9 222/365/9 223/366/9 +f 222/365/9 224/367/9 223/366/9 +f 223/368/4 225/369/4 221/370/4 +f 225/369/4 226/371/4 221/370/4 +f 227/372/1 228/373/1 229/374/1 +f 228/373/1 230/375/1 229/374/1 +f 231/376/2 232/377/2 233/378/2 +f 232/377/2 234/379/2 233/378/2 +f 231/380/5 233/381/5 229/382/5 +f 233/381/5 227/383/5 229/382/5 +f 233/384/8 234/385/8 227/386/8 +f 234/385/8 228/387/8 227/386/8 +f 235/388/7 236/389/7 237/390/7 +f 236/389/7 238/391/7 237/390/7 +f 238/392/10 236/393/10 239/394/10 +f 236/393/10 240/395/10 239/394/10 +f 237/396/8 238/397/8 241/398/8 +f 238/397/8 239/399/8 241/398/8 +f 242/400/4 240/401/4 235/402/4 +f 240/401/4 236/403/4 235/402/4 +f 243/404/2 244/405/2 245/406/2 +f 244/405/2 246/407/2 245/406/2 +f 243/408/5 245/409/5 247/410/5 +f 245/409/5 248/411/5 247/410/5 +f 246/412/3 244/413/3 249/414/3 +f 244/413/3 250/415/3 249/414/3 +f 245/416/8 246/417/8 248/418/8 +f 246/417/8 249/419/8 248/418/8 +f 247/420/4 250/421/4 243/422/4 +f 250/421/4 244/423/4 243/422/4 +f 251/424/7 252/425/7 253/426/7 +f 252/425/7 254/427/7 253/426/7 +f 251/408/9 253/409/9 255/428/9 +f 253/409/9 256/429/9 255/428/9 +f 253/430/8 254/431/8 256/432/8 +f 254/431/8 257/433/8 256/432/8 +f 255/434/4 258/435/4 251/436/4 +f 258/435/4 252/437/4 251/436/4 +f 259/438/1 260/439/1 261/440/1 +f 260/439/1 262/441/1 261/440/1 +f 263/442/5 264/443/5 261/444/5 +f 264/443/5 259/445/5 261/444/5 +f 265/446/3 266/447/3 260/448/3 +f 266/447/3 262/449/3 260/448/3 +f 264/450/8 265/451/8 259/452/8 +f 265/451/8 260/453/8 259/452/8 +f 261/454/4 262/455/4 263/456/4 +f 262/455/4 266/457/4 263/456/4 +f 267/458/6 268/459/6 269/460/6 +f 268/459/6 270/461/6 269/460/6 +f 271/462/9 272/463/9 269/464/9 +f 272/463/9 267/465/9 269/464/9 +f 272/466/8 273/467/8 267/468/8 +f 273/467/8 268/469/8 267/468/8 +f 269/470/4 270/471/4 271/472/4 +f 270/471/4 274/473/4 271/472/4 +f 275/474/7 276/475/7 277/476/7 +f 276/475/7 278/477/7 277/476/7 +f 275/478/9 277/479/9 279/480/9 +f 277/479/9 280/481/9 279/480/9 +f 277/482/8 278/483/8 280/484/8 +f 278/483/8 281/485/8 280/484/8 +f 279/486/4 282/487/4 275/488/4 +f 282/487/4 276/489/4 275/488/4 +f 283/490/1 284/491/1 285/492/1 +f 284/491/1 286/493/1 285/492/1 +f 287/494/2 288/495/2 289/496/2 +f 288/495/2 290/497/2 289/496/2 +f 287/498/5 289/499/5 285/500/5 +f 289/499/5 283/501/5 285/500/5 +f 289/502/8 290/503/8 283/504/8 +f 290/503/8 284/505/8 283/504/8 +f 285/506/4 286/507/4 287/508/4 +f 286/507/4 288/509/4 287/508/4 +f 291/510/9 292/511/9 293/512/9 +f 292/511/9 294/513/9 293/512/9 +f 295/514/10 296/515/10 297/516/10 +f 296/515/10 298/517/10 297/516/10 +f 298/518/6 296/519/6 292/520/6 +f 296/519/6 294/521/6 292/520/6 +f 297/522/8 298/523/8 291/524/8 +f 298/523/8 292/525/8 291/524/8 +f 293/526/4 294/527/4 295/528/4 +f 294/527/4 296/529/4 295/528/4 +f 299/530/1 300/531/1 301/532/1 +f 300/531/1 302/533/1 301/532/1 +f 303/534/2 304/535/2 305/536/2 +f 304/535/2 306/537/2 305/536/2 +f 303/538/5 305/539/5 301/540/5 +f 305/539/5 299/541/5 301/540/5 +f 306/542/3 304/543/3 300/544/3 +f 304/543/3 302/545/3 300/544/3 +f 305/546/8 306/547/8 299/548/8 +f 306/547/8 300/549/8 299/548/8 +f 301/550/4 302/551/4 303/552/4 +f 302/551/4 304/553/4 303/552/4 +f 307/530/1 308/531/1 309/532/1 +f 308/531/1 310/533/1 309/532/1 +f 311/534/2 312/535/2 313/536/2 +f 312/535/2 314/537/2 313/536/2 +f 311/554/5 313/555/5 309/556/5 +f 313/555/5 307/557/5 309/556/5 +f 314/558/3 312/559/3 308/560/3 +f 312/559/3 310/561/3 308/560/3 +f 313/562/8 314/563/8 307/564/8 +f 314/563/8 308/565/8 307/564/8 +f 309/566/4 310/567/4 311/568/4 +f 310/567/4 312/569/4 311/568/4 +f 315/570/7 316/571/7 317/572/7 +f 316/571/7 318/573/7 317/572/7 +f 317/574/8 318/575/8 319/576/8 +f 318/575/8 320/577/8 319/576/8 +f 321/578/4 322/579/4 315/580/4 +f 322/579/4 316/581/4 315/580/4 +f 323/582/6 324/583/6 325/584/6 +f 324/583/6 326/585/6 325/584/6 +f 327/586/7 328/587/7 329/588/7 +f 328/587/7 330/589/7 329/588/7 +f 330/590/10 328/591/10 324/592/10 +f 328/591/10 326/593/10 324/592/10 +f 329/594/8 330/595/8 323/596/8 +f 330/595/8 324/597/8 323/596/8 +f 325/598/4 326/599/4 327/600/4 +f 326/599/4 328/601/4 327/600/4 +f 331/602/9 332/603/9 333/604/9 +f 332/603/9 334/605/9 333/604/9 +f 335/606/8 336/607/8 331/608/8 +f 336/607/8 332/609/8 331/608/8 +f 333/610/4 334/611/4 337/612/4 +f 334/611/4 338/613/4 337/612/4 +f 339/614/1 340/615/1 341/490/1 +f 340/615/1 342/616/1 341/490/1 +f 343/496/2 344/617/2 345/618/2 +f 344/617/2 346/619/2 345/618/2 +f 343/620/5 345/621/5 341/622/5 +f 345/621/5 339/623/5 341/622/5 +f 346/624/3 344/625/3 340/626/3 +f 344/625/3 342/627/3 340/626/3 +f 345/628/8 346/629/8 339/630/8 +f 346/629/8 340/631/8 339/630/8 +f 341/632/4 342/633/4 343/634/4 +f 342/633/4 344/635/4 343/634/4 +f 347/636/1 348/637/1 349/638/1 +f 348/637/1 350/639/1 349/638/1 +f 351/640/2 352/641/2 353/642/2 +f 352/641/2 354/643/2 353/642/2 +f 351/621/5 353/644/5 349/623/5 +f 353/644/5 347/645/5 349/623/5 +f 354/646/3 352/624/3 348/647/3 +f 352/624/3 350/626/3 348/647/3 +f 353/648/8 354/649/8 347/650/8 +f 354/649/8 348/651/8 347/650/8 +f 349/652/4 350/653/4 351/654/4 +f 350/653/4 352/655/4 351/654/4 +f 355/656/1 356/614/1 357/657/1 +f 356/614/1 358/658/1 357/657/1 +f 359/659/2 360/660/2 361/661/2 +f 360/660/2 362/618/2 361/661/2 +f 359/662/5 361/621/5 357/663/5 +f 361/621/5 355/623/5 357/663/5 +f 361/664/8 362/628/8 355/665/8 +f 362/628/8 356/630/8 355/665/8 +f 357/666/4 358/632/4 359/667/4 +f 358/632/4 360/634/4 359/667/4 +f 363/668/1 364/669/1 365/670/1 +f 364/669/1 366/671/1 365/670/1 +f 367/672/2 368/673/2 369/674/2 +f 368/673/2 370/675/2 369/674/2 +f 367/676/5 369/677/5 365/678/5 +f 369/677/5 363/679/5 365/678/5 +f 370/680/3 368/681/3 364/682/3 +f 368/681/3 366/683/3 364/682/3 +f 369/684/8 370/685/8 363/686/8 +f 370/685/8 364/687/8 363/686/8 +f 365/688/4 366/689/4 367/690/4 +f 366/689/4 368/691/4 367/690/4 +f 371/692/1 372/693/1 373/694/1 +f 372/693/1 374/695/1 373/694/1 +f 375/696/2 376/697/2 377/698/2 +f 376/697/2 378/699/2 377/698/2 +f 377/700/17 378/701/17 371/702/17 +f 378/701/17 372/703/17 371/702/17 +f 373/704/18 374/705/18 375/706/18 +f 374/705/18 376/707/18 375/706/18 +f 379/708/1 380/709/1 381/710/1 +f 380/709/1 382/711/1 381/710/1 +f 383/712/2 384/713/2 385/714/2 +f 384/713/2 386/715/2 385/714/2 +f 383/716/5 385/717/5 381/718/5 +f 385/717/5 379/719/5 381/718/5 +f 386/720/3 384/721/3 380/722/3 +f 384/721/3 382/723/3 380/722/3 +f 385/724/8 386/725/8 379/726/8 +f 386/725/8 380/727/8 379/726/8 +f 381/728/4 382/729/4 383/730/4 +f 382/729/4 384/731/4 383/730/4 +f 387/732/1 388/733/1 389/734/1 +f 388/733/1 390/695/1 389/734/1 +f 391/735/2 392/697/2 393/736/2 +f 392/697/2 394/737/2 393/736/2 +f 391/738/5 393/739/5 389/740/5 +f 393/739/5 387/741/5 389/740/5 +f 394/742/3 392/743/3 388/744/3 +f 392/743/3 390/745/3 388/744/3 +f 389/746/4 390/705/4 391/747/4 +f 390/705/4 392/707/4 391/747/4 +f 395/748/1 396/749/1 397/750/1 +f 396/749/1 398/751/1 397/750/1 +f 399/752/2 400/753/2 401/754/2 +f 400/753/2 402/755/2 401/754/2 +f 402/756/19 400/757/19 396/758/19 +f 400/757/19 398/759/19 396/758/19 +f 401/760/17 402/761/17 395/762/17 +f 402/761/17 396/763/17 395/762/17 +f 397/764/18 398/765/18 399/766/18 +f 398/765/18 400/767/18 399/766/18 +f 403/768/1 404/769/1 405/770/1 +f 404/769/1 406/771/1 405/770/1 +f 407/772/2 408/773/2 409/774/2 +f 408/773/2 410/775/2 409/774/2 +f 407/776/20 409/777/20 405/778/20 +f 409/777/20 403/779/20 405/778/20 +f 410/780/21 408/781/21 404/782/21 +f 408/781/21 406/783/21 404/782/21 +f 409/784/22 410/785/22 403/786/22 +f 410/785/22 404/787/22 403/786/22 +f 405/788/23 406/789/23 407/790/23 +f 406/789/23 408/791/23 407/790/23 +f 411/792/1 412/793/1 413/794/1 +f 412/793/1 414/795/1 413/794/1 +f 415/796/2 416/797/2 417/798/2 +f 416/797/2 418/799/2 417/798/2 +f 415/800/5 417/801/5 413/802/5 +f 417/801/5 411/803/5 413/802/5 +f 418/804/3 416/805/3 412/806/3 +f 416/805/3 414/807/3 412/806/3 +f 413/808/4 414/809/4 415/810/4 +f 414/809/4 416/811/4 415/810/4 +f 419/812/1 420/813/1 421/814/1 +f 420/813/1 422/815/1 421/814/1 +f 423/816/2 424/817/2 425/818/2 +f 424/817/2 426/819/2 425/818/2 +f 423/820/15 425/821/15 421/822/15 +f 425/821/15 419/823/15 421/822/15 +f 426/824/24 424/825/24 420/826/24 +f 424/825/24 422/827/24 420/826/24 +f 425/828/25 426/829/25 419/830/25 +f 426/829/25 420/831/25 419/830/25 +f 421/832/26 422/833/26 423/834/26 +f 422/833/26 424/835/26 423/834/26 +f 427/836/1 428/837/1 429/838/1 +f 428/837/1 430/839/1 429/838/1 +f 431/840/2 432/841/2 433/842/2 +f 432/841/2 434/843/2 433/842/2 +f 431/844/5 433/845/5 429/846/5 +f 433/845/5 427/847/5 429/846/5 +f 434/848/3 432/849/3 428/850/3 +f 432/849/3 430/851/3 428/850/3 +f 433/852/8 434/853/8 427/854/8 +f 434/853/8 428/855/8 427/854/8 +f 429/856/4 430/857/4 431/858/4 +f 430/857/4 432/859/4 431/858/4 +f 435/860/1 436/861/1 437/862/1 +f 436/861/1 438/863/1 437/862/1 +f 439/864/2 440/865/2 441/866/2 +f 440/865/2 442/867/2 441/866/2 +f 439/868/5 441/869/5 437/870/5 +f 441/869/5 435/871/5 437/870/5 +f 442/872/3 440/873/3 436/874/3 +f 440/873/3 438/875/3 436/874/3 +f 441/876/8 442/877/8 435/878/8 +f 442/877/8 436/879/8 435/878/8 +f 437/880/4 438/881/4 439/882/4 +f 438/881/4 440/883/4 439/882/4 +f 443/884/1 444/885/1 445/886/1 +f 444/885/1 446/887/1 445/886/1 +f 447/888/2 448/889/2 449/890/2 +f 448/889/2 450/891/2 449/890/2 +f 447/892/5 449/893/5 445/894/5 +f 449/893/5 443/895/5 445/894/5 +f 450/896/3 448/897/3 444/898/3 +f 448/897/3 446/899/3 444/898/3 +f 449/900/8 450/901/8 443/902/8 +f 450/901/8 444/903/8 443/902/8 +f 451/904/1 452/905/1 453/906/1 +f 452/905/1 454/907/1 453/906/1 +f 455/908/2 456/909/2 457/910/2 +f 456/909/2 458/911/2 457/910/2 +f 458/912/23 456/913/23 452/914/23 +f 456/913/23 454/915/23 452/914/23 +f 457/916/21 458/917/21 451/918/21 +f 458/917/21 452/919/21 451/918/21 +f 453/920/20 454/921/20 455/922/20 +f 454/921/20 456/923/20 455/922/20 +f 459/924/1 460/925/1 461/926/1 +f 460/925/1 462/927/1 461/926/1 +f 463/928/2 464/929/2 465/930/2 +f 464/929/2 466/931/2 465/930/2 +f 463/621/5 465/644/5 461/932/5 +f 465/644/5 459/933/5 461/932/5 +f 465/934/8 466/935/8 459/936/8 +f 466/935/8 460/937/8 459/936/8 +f 461/938/4 462/939/4 463/940/4 +f 462/939/4 464/941/4 463/940/4 +f 467/942/1 468/636/1 469/943/1 +f 468/636/1 470/638/1 469/943/1 +f 471/944/2 472/640/2 473/945/2 +f 472/640/2 474/642/2 473/945/2 +f 471/946/5 473/947/5 469/623/5 +f 473/947/5 467/645/5 469/623/5 +f 473/948/8 474/949/8 467/950/8 +f 474/949/8 468/650/8 467/950/8 +f 469/951/4 470/652/4 471/952/4 +f 470/652/4 472/953/4 471/952/4 +f 475/954/1 476/955/1 477/956/1 +f 476/955/1 478/957/1 477/956/1 +f 479/958/2 480/959/2 481/960/2 +f 480/959/2 482/961/2 481/960/2 +f 479/962/15 481/963/15 477/964/15 +f 481/963/15 475/965/15 477/964/15 +f 482/966/24 480/967/24 476/968/24 +f 480/967/24 478/969/24 476/968/24 +f 481/970/25 482/971/25 475/972/25 +f 482/971/25 476/973/25 475/972/25 +f 483/974/1 484/975/1 485/976/1 +f 484/975/1 486/977/1 485/976/1 +f 487/978/2 488/979/2 489/980/2 +f 488/979/2 490/981/2 489/980/2 +f 490/982/21 488/983/21 484/984/21 +f 488/983/21 486/985/21 484/984/21 +f 491/986/1 492/987/1 493/988/1 +f 492/987/1 494/989/1 493/988/1 +f 495/990/2 496/991/2 497/992/2 +f 496/991/2 498/993/2 497/992/2 +f 493/994/18 494/995/18 495/996/18 +f 494/995/18 496/997/18 495/996/18 +f 499/998/1 500/999/1 501/1000/1 +f 500/999/1 502/1001/1 501/1000/1 +f 503/1002/2 504/1003/2 505/1004/2 +f 504/1003/2 506/1005/2 505/1004/2 +f 505/1006/8 506/1007/8 499/1008/8 +f 506/1007/8 500/1009/8 499/1008/8 +f 501/1010/4 502/1011/4 503/1012/4 +f 502/1011/4 504/1013/4 503/1012/4 +f 507/1014/1 508/1015/1 509/1016/1 +f 508/1015/1 510/1017/1 509/1016/1 +f 511/1018/2 512/1019/2 513/1020/2 +f 512/1019/2 514/1021/2 513/1020/2 +f 511/1022/22 513/1023/22 509/1024/22 +f 513/1023/22 507/1025/22 509/1024/22 +f 514/1026/23 512/1027/23 508/1028/23 +f 512/1027/23 510/1029/23 508/1028/23 +f 515/1030/1 516/1031/1 517/1032/1 +f 516/1031/1 518/1033/1 517/1032/1 +f 519/1034/2 520/1035/2 521/1036/2 +f 520/1035/2 522/1037/2 521/1036/2 +f 519/1038/5 521/1039/5 517/1040/5 +f 521/1039/5 515/1041/5 517/1040/5 +f 522/1042/3 520/1043/3 516/1044/3 +f 520/1043/3 518/1045/3 516/1044/3 +f 523/1046/1 524/1047/1 525/1048/1 +f 524/1047/1 526/1049/1 525/1048/1 +f 527/1050/2 528/1051/2 529/1052/2 +f 528/1051/2 530/1053/2 529/1052/2 +f 527/1054/20 529/1055/20 525/1056/20 +f 529/1055/20 523/1057/20 525/1056/20 +f 530/1058/21 528/1042/21 524/1059/21 +f 528/1042/21 526/1044/21 524/1059/21 +f 531/1060/1 532/1061/1 533/1062/1 +f 532/1061/1 534/1063/1 533/1062/1 +f 535/1064/2 536/1065/2 537/1066/2 +f 536/1065/2 538/1067/2 537/1066/2 +f 537/1068/8 538/1007/8 531/1069/8 +f 538/1007/8 532/1009/8 531/1069/8 +f 533/1070/4 534/1011/4 535/1071/4 +f 534/1011/4 536/1013/4 535/1071/4 +f 539/1072/1 540/1073/1 541/1074/1 +f 540/1073/1 542/1075/1 541/1074/1 +f 543/1076/2 544/1077/2 545/1078/2 +f 544/1077/2 546/1079/2 545/1078/2 +f 545/1080/17 546/1081/17 539/1082/17 +f 546/1081/17 540/1083/17 539/1082/17 +f 541/1084/18 542/1085/18 543/1086/18 +f 542/1085/18 544/1087/18 543/1086/18 +f 547/1088/1 548/1089/1 549/1090/1 +f 548/1089/1 550/1091/1 549/1090/1 +f 551/1092/2 552/1093/2 553/1094/2 +f 552/1093/2 554/1095/2 553/1094/2 +f 551/1096/20 553/1097/20 549/1098/20 +f 553/1097/20 547/1099/20 549/1098/20 +f 554/1100/21 552/1101/21 548/1102/21 +f 552/1101/21 550/1103/21 548/1102/21 +f 549/1104/23 550/1105/23 551/1106/23 +f 550/1105/23 552/1107/23 551/1106/23 +f 555/1108/1 556/1109/1 557/1110/1 +f 556/1109/1 558/1111/1 557/1110/1 +f 559/1112/2 560/1113/2 561/1114/2 +f 560/1113/2 562/1115/2 561/1114/2 +f 561/1116/8 562/1117/8 555/1118/8 +f 562/1117/8 556/1119/8 555/1118/8 +f 557/1120/4 558/1121/4 559/1122/4 +f 558/1121/4 560/1123/4 559/1122/4 +f 563/1124/1 564/1125/1 565/1126/1 +f 564/1125/1 566/1127/1 565/1126/1 +f 567/1128/2 568/1129/2 569/1130/2 +f 568/1129/2 570/1131/2 569/1130/2 +f 567/1132/15 569/1133/15 565/1134/15 +f 569/1133/15 563/1135/15 565/1134/15 +f 569/1136/25 570/1137/25 563/1138/25 +f 570/1137/25 564/1139/25 563/1138/25 +f 565/1140/26 566/1141/26 567/1142/26 +f 566/1141/26 568/1143/26 567/1142/26 +o Cylinder +v 0.040155 0.134253 0.138325 +v -0.032489 0.061608 0.138325 +v 0.040155 0.134253 0.000825 +v -0.032489 0.061608 0.000825 +v 0.030419 0.143989 0.000825 +v -0.042225 0.071345 0.000825 +v 0.030419 0.143989 0.138325 +v -0.042225 0.071345 0.138325 +v 0.014778 0.156219 0.138325 +v 0.014778 0.053094 0.138325 +v 0.014778 0.156219 0.000825 +v 0.014778 0.053094 0.000825 +v -0.015300 0.156219 0.000825 +v -0.015300 0.053094 0.000825 +v -0.015300 0.156219 0.138325 +v -0.015300 0.053094 0.138325 +v 0.040951 0.136693 0.138325 +v 0.052051 0.109897 0.138325 +v 0.040951 0.136693 0.000825 +v 0.052051 0.109897 0.000825 +v -0.055316 0.096818 0.000825 +v -0.044217 0.070021 0.000825 +v -0.055316 0.096818 0.138325 +v -0.044217 0.070021 0.138325 +v 0.052632 0.096296 0.138325 +v 0.041944 0.070492 0.138325 +v 0.052632 0.096296 0.000825 +v 0.041944 0.070493 0.000825 +v -0.044628 0.136582 0.000825 +v -0.055316 0.110779 0.000825 +v -0.044628 0.136582 0.138325 +v -0.055316 0.110779 0.138325 +v 0.052103 0.110777 0.138325 +v 0.052103 0.096812 0.138325 +v 0.052103 0.110777 0.103950 +v 0.052103 0.096812 0.103950 +v -0.055319 0.110777 0.103950 +v -0.055319 0.096812 0.103950 +v -0.055319 0.110777 0.138325 +v -0.055319 0.096812 0.138325 +v 0.041306 0.136583 0.138325 +v 0.041306 0.069981 0.138325 +v 0.041306 0.136583 0.000825 +v 0.041306 0.069981 0.000825 +v -0.044631 0.136583 0.000825 +v -0.044631 0.069981 0.000825 +v -0.044631 0.136583 0.138325 +v -0.044631 0.069981 0.138325 +v -0.036145 0.147590 0.000825 +v -0.027101 0.125756 0.000825 +v -0.036145 0.147590 0.138325 +v -0.027101 0.125756 0.138325 +v -0.015304 0.156223 0.000825 +v -0.015304 0.156223 0.138325 +v -0.006260 0.134388 0.138325 +v -0.006260 0.134388 0.000825 +v 0.033630 0.148410 0.138325 +v 0.024586 0.126576 0.138325 +v 0.033630 0.148410 0.000825 +v 0.024586 0.126576 0.000825 +v 0.014774 0.156221 0.000825 +v 0.014774 0.156221 0.138325 +v 0.005730 0.134386 0.138325 +v 0.005730 0.134386 0.000825 +v 0.023594 0.082327 0.138325 +v 0.032639 0.060493 0.138325 +v 0.023594 0.082327 0.000825 +v 0.032639 0.060493 0.000825 +v 0.014774 0.053094 0.138325 +v 0.014774 0.053094 0.000825 +v 0.005730 0.074928 0.138325 +v 0.005730 0.074928 0.000825 +v -0.025114 0.082739 0.000825 +v -0.034158 0.060905 0.000825 +v -0.025114 0.082739 0.138325 +v -0.034158 0.060905 0.138325 +v -0.015301 0.053095 0.138325 +v -0.015301 0.053095 0.000825 +v -0.006257 0.074929 0.138325 +v -0.006257 0.074929 0.000825 +v 0.041811 0.073900 0.138325 +v 0.027931 0.060020 0.138325 +v 0.041811 0.073900 0.000825 +v 0.027931 0.060020 0.000825 +v -0.030834 0.146544 0.000825 +v -0.044713 0.132664 0.000825 +v -0.030834 0.146544 0.138325 +v -0.044713 0.132664 0.138325 vn 0.7071 -0.7071 -0.0000 -vn -0.7071 0.7071 0.0000 -vn 0.0000 0.0000 1.0000 -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 -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.0000 0.9239 0.3827 -vn 0.0000 0.3827 0.9239 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 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.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 -0.9239 -s off -f 257/605/48 258/606/48 259/607/48 -f 258/606/48 260/608/48 259/607/48 -f 261/609/49 262/610/49 263/611/49 -f 262/610/49 264/612/49 263/611/49 -f 264/613/50 262/614/50 258/615/50 -f 262/614/50 260/616/50 258/615/50 -f 259/617/51 260/618/51 261/619/51 -f 260/618/51 262/620/51 261/619/51 -f 265/621/48 266/622/48 267/623/48 -f 266/622/48 268/624/48 267/623/48 -f 269/625/49 270/626/49 271/627/49 -f 270/626/49 272/628/49 271/627/49 -f 269/629/52 271/630/52 267/631/52 -f 271/630/52 265/632/52 267/631/52 -f 272/633/50 270/634/50 266/635/50 -f 270/634/50 268/636/50 266/635/50 -f 267/637/51 268/638/51 269/639/51 -f 268/638/51 270/640/51 269/639/51 -f 273/641/53 274/642/53 275/643/53 -f 274/642/53 276/644/53 275/643/53 -f 277/645/54 278/646/54 279/647/54 -f 278/646/54 280/648/54 279/647/54 -f 279/649/55 280/650/55 273/651/55 -f 280/650/55 274/652/55 273/651/55 -f 275/653/51 276/654/51 277/655/51 -f 276/654/51 278/656/51 277/655/51 -f 281/657/53 282/658/53 283/659/53 -f 282/658/53 284/660/53 283/659/53 -f 285/661/54 286/662/54 287/663/54 -f 286/662/54 288/664/54 287/663/54 -f 287/665/55 288/666/55 281/667/55 -f 288/666/55 282/668/55 281/667/55 -f 283/669/51 284/670/51 285/671/51 -f 284/670/51 286/672/51 285/671/51 -f 289/673/48 290/674/48 291/675/48 -f 290/674/48 292/676/48 291/675/48 -f 293/677/49 294/678/49 295/679/49 -f 294/678/49 296/680/49 295/679/49 -f 293/681/52 295/682/52 291/683/52 -f 295/682/52 289/684/52 291/683/52 -f 296/685/50 294/686/50 290/687/50 -f 294/686/50 292/688/50 290/687/50 -f 295/689/55 296/690/55 289/691/55 -f 296/690/55 290/692/55 289/691/55 -f 291/693/51 292/694/51 293/695/51 -f 292/694/51 294/696/51 293/695/51 -f 297/697/48 298/698/48 299/699/48 -f 298/698/48 300/700/48 299/699/48 -f 301/701/49 302/702/49 303/703/49 -f 302/702/49 304/704/49 303/703/49 -f 301/705/52 303/706/52 299/707/52 -f 303/706/52 297/708/52 299/707/52 -f 304/709/50 302/710/50 298/711/50 -f 302/710/50 300/712/50 298/711/50 -f 299/713/51 300/714/51 301/715/51 -f 300/714/51 302/716/51 301/715/51 -f 305/717/56 306/718/56 307/719/56 -f 306/718/56 308/720/56 307/719/56 -f 309/721/57 310/722/57 311/723/57 -f 310/722/57 312/724/57 311/723/57 -f 311/725/55 312/726/55 305/727/55 -f 312/726/55 306/728/55 305/727/55 -f 307/729/51 308/730/51 309/731/51 -f 308/730/51 310/732/51 309/731/51 -f 313/733/56 314/734/56 315/735/56 -f 314/734/56 316/736/56 315/735/56 -f 317/737/57 318/738/57 319/739/57 -f 318/738/57 320/740/57 319/739/57 -f 319/741/55 320/742/55 313/743/55 -f 320/742/55 314/744/55 313/743/55 -f 315/745/51 316/746/51 317/747/51 -f 316/746/51 318/748/51 317/747/51 -f 321/749/48 322/750/48 323/751/48 -f 322/750/48 324/752/48 323/751/48 -f 325/753/49 326/754/49 327/755/49 -f 326/754/49 328/756/49 327/755/49 -f 325/757/52 327/758/52 323/759/52 -f 327/758/52 321/760/52 323/759/52 -f 323/761/51 324/762/51 325/763/51 -f 324/762/51 326/764/51 325/763/51 -f 329/765/48 330/766/48 331/767/48 -f 330/766/48 332/768/48 331/767/48 -f 333/769/49 334/770/49 335/771/49 -f 334/770/49 336/772/49 335/771/49 -f 333/773/52 335/774/52 331/775/52 -f 335/774/52 329/776/52 331/775/52 -f 331/777/51 332/778/51 333/779/51 -f 332/778/51 334/780/51 333/779/51 -f 337/781/48 338/782/48 339/783/48 -f 338/782/48 340/784/48 339/783/48 -f 341/785/49 342/786/49 343/787/49 -f 342/786/49 344/788/49 343/787/49 -f 341/789/52 343/790/52 339/791/52 -f 343/790/52 337/792/52 339/791/52 -f 344/793/50 342/794/50 338/795/50 -f 342/794/50 340/796/50 338/795/50 -f 339/797/51 340/798/51 341/799/51 -f 340/798/51 342/800/51 341/799/51 -f 345/801/48 346/802/48 347/803/48 -f 346/802/48 348/804/48 347/803/48 -f 349/805/49 350/806/49 351/807/49 -f 350/806/49 352/808/49 351/807/49 -f 351/809/55 352/810/55 345/811/55 -f 352/810/55 346/812/55 345/811/55 -f 347/813/51 348/814/51 349/815/51 -f 348/814/51 350/816/51 349/815/51 -f 353/817/48 354/818/48 355/819/48 -f 354/818/48 356/820/48 355/819/48 -f 357/821/49 358/822/49 359/823/49 -f 358/822/49 360/824/49 359/823/49 -f 359/825/55 360/826/55 353/827/55 -f 360/826/55 354/828/55 353/827/55 -f 355/829/51 356/830/51 357/831/51 -f 356/830/51 358/832/51 357/831/51 -f 361/833/48 362/834/48 363/835/48 -f 362/834/48 364/836/48 363/835/48 -f 365/837/49 366/838/49 367/839/49 -f 366/838/49 368/840/49 367/839/49 -f 367/841/55 368/842/55 361/843/55 -f 368/842/55 362/844/55 361/843/55 -f 363/845/51 364/846/51 365/847/51 -f 364/846/51 366/848/51 365/847/51 -f 369/849/48 370/850/48 371/851/48 -f 370/850/48 372/852/48 371/851/48 -f 373/853/49 374/854/49 375/855/49 -f 374/854/49 376/856/49 375/855/49 -f 371/857/51 372/858/51 373/859/51 -f 372/858/51 374/860/51 373/859/51 -f 377/861/58 378/862/58 379/863/58 -f 378/862/58 380/864/58 379/863/58 -f 381/865/59 382/866/59 379/867/59 -f 382/866/59 377/868/59 379/867/59 -f 379/869/51 380/870/51 381/871/51 -f 380/870/51 383/872/51 381/871/51 -f 384/873/60 385/874/60 386/875/60 -f 385/874/60 387/876/60 386/875/60 -f 384/877/61 386/878/61 388/879/61 -f 386/878/61 389/880/61 388/879/61 -f 388/881/51 390/882/51 384/883/51 -f 390/882/51 385/884/51 384/883/51 -f 391/885/48 392/886/48 393/887/48 -f 392/886/48 394/888/48 393/887/48 -f 395/889/49 396/890/49 397/891/49 -f 396/890/49 398/892/49 397/891/49 -f 395/893/52 397/894/52 393/895/52 -f 397/894/52 391/896/52 393/895/52 -f 393/897/51 394/898/51 395/899/51 -f 394/898/51 396/900/51 395/899/51 -f 399/901/48 400/902/48 401/903/48 -f 400/902/48 402/904/48 401/903/48 -f 403/905/49 404/906/49 405/907/49 -f 404/906/49 406/908/49 405/907/49 -f 403/909/62 405/910/62 401/911/62 -f 405/910/62 399/912/62 401/911/62 -f 407/913/48 408/914/48 409/915/48 -f 408/914/48 410/916/48 409/915/48 -f 411/917/49 412/918/49 413/919/49 -f 412/918/49 414/920/49 413/919/49 -f 415/921/48 416/922/48 417/923/48 -f 416/922/48 418/924/48 417/923/48 -f 419/925/49 420/926/49 421/927/49 -f 420/926/49 422/928/49 421/927/49 -f 423/929/48 424/930/48 425/931/48 -f 424/930/48 426/932/48 425/931/48 -f 427/933/49 428/934/49 429/935/49 -f 428/934/49 430/936/49 429/935/49 -f 425/937/51 426/938/51 427/939/51 -f 426/938/51 428/940/51 427/939/51 -f 431/941/48 432/942/48 433/943/48 -f 432/942/48 434/944/48 433/943/48 -f 435/945/49 436/946/49 437/947/49 -f 436/946/49 438/948/49 437/947/49 -f 438/949/50 436/950/50 432/951/50 -f 436/950/50 434/952/50 432/951/50 -f 433/953/51 434/954/51 435/955/51 -f 434/954/51 436/956/51 435/955/51 -f 439/957/53 440/958/53 441/959/53 -f 440/958/53 442/960/53 441/959/53 -f 443/961/54 444/962/54 445/963/54 -f 444/962/54 446/964/54 445/963/54 -f 443/965/56 445/966/56 441/967/56 -f 445/966/56 439/968/56 441/967/56 -f 446/969/57 444/970/57 440/971/57 -f 444/970/57 442/972/57 440/971/57 -f 445/973/55 446/974/55 439/975/55 -f 446/974/55 440/976/55 439/975/55 -f 441/977/51 442/978/51 443/979/51 -f 442/978/51 444/980/51 443/979/51 -f 447/981/49 448/982/49 449/983/49 -f 448/982/49 450/984/49 449/983/49 -f 447/985/52 449/986/52 451/987/52 -f 449/986/52 452/988/52 451/987/52 -f 450/989/50 448/990/50 453/991/50 -f 448/990/50 454/992/50 453/991/50 -f 451/993/51 454/994/51 447/995/51 -f 454/994/51 448/996/51 447/995/51 -f 455/997/54 456/998/54 457/999/54 -f 456/998/54 458/1000/54 457/999/54 -f 459/1001/51 460/1002/51 455/1003/51 -f 460/1002/51 456/1004/51 455/1003/51 -f 461/1005/48 462/1006/48 463/1007/48 -f 462/1006/48 464/1008/48 463/1007/48 -f 465/1009/52 466/1010/52 463/1011/52 -f 466/1010/52 461/1012/52 463/1011/52 -f 467/1013/50 468/1014/50 462/1015/50 -f 468/1014/50 464/1016/50 462/1015/50 -f 463/1017/51 464/1018/51 465/1019/51 -f 464/1018/51 468/1020/51 465/1019/51 -f 469/1021/53 470/1022/53 471/1023/53 -f 470/1022/53 472/1024/53 471/1023/53 -f 473/1025/54 474/1026/54 475/1027/54 -f 474/1026/54 476/1028/54 475/1027/54 -f 473/1029/56 475/1030/56 471/1031/56 -f 475/1030/56 469/1032/56 471/1031/56 -f 476/1033/57 474/1034/57 470/1035/57 -f 474/1034/57 472/1036/57 470/1035/57 -f 475/1037/55 476/1038/55 469/1039/55 -f 476/1038/55 470/1040/55 469/1039/55 -f 471/1041/51 472/1042/51 473/1043/51 -f 472/1042/51 474/1044/51 473/1043/51 -f 477/1045/56 478/1046/56 479/1047/56 -f 478/1046/56 480/1048/56 479/1047/56 -f 479/1049/51 481/1050/51 477/1051/51 -f 481/1050/51 482/1052/51 477/1051/51 -f 483/1053/48 484/1054/48 485/1055/48 -f 484/1054/48 486/1056/48 485/1055/48 -f 487/1057/49 488/1058/49 489/1059/49 -f 488/1058/49 490/1060/49 489/1059/49 -f 487/1061/52 489/1062/52 485/1063/52 -f 489/1062/52 483/1064/52 485/1063/52 -f 489/1065/55 490/1066/55 483/1067/55 -f 490/1066/55 484/1068/55 483/1067/55 -f 491/1069/54 492/1070/54 493/1071/54 -f 492/1070/54 494/1072/54 493/1071/54 -f 494/1073/57 492/1074/57 495/1075/57 -f 492/1074/57 496/1076/57 495/1075/57 -f 493/1077/55 494/1078/55 497/1079/55 -f 494/1078/55 495/1080/55 497/1079/55 -f 498/1081/51 496/1082/51 491/1083/51 -f 496/1082/51 492/1084/51 491/1083/51 -f 499/1085/49 500/1086/49 501/1087/49 -f 500/1086/49 502/1088/49 501/1087/49 -f 499/1089/52 501/1090/52 503/1091/52 -f 501/1090/52 504/1092/52 503/1091/52 -f 502/1093/50 500/1094/50 505/1095/50 -f 500/1094/50 506/1096/50 505/1095/50 -f 501/1097/55 502/1098/55 504/1099/55 -f 502/1098/55 505/1100/55 504/1099/55 -f 503/1101/51 506/1102/51 499/1103/51 -f 506/1102/51 500/1104/51 499/1103/51 -f 507/1105/54 508/1106/54 509/1107/54 -f 508/1106/54 510/1108/54 509/1107/54 -f 507/1109/56 509/1110/56 511/1111/56 -f 509/1110/56 512/1112/56 511/1111/56 -f 509/1113/55 510/1114/55 512/1115/55 -f 510/1114/55 513/1116/55 512/1115/55 -f 511/1117/51 514/1118/51 507/1119/51 -f 514/1118/51 508/1120/51 507/1119/51 -f 515/1121/48 516/1122/48 517/1123/48 -f 516/1122/48 518/1124/48 517/1123/48 -f 519/1125/52 520/1126/52 517/1127/52 -f 520/1126/52 515/1128/52 517/1127/52 -f 521/1129/50 522/1130/50 516/1131/50 -f 522/1130/50 518/1132/50 516/1131/50 -f 520/1133/55 521/1134/55 515/1135/55 -f 521/1134/55 516/1136/55 515/1135/55 -f 517/1137/51 518/1138/51 519/1139/51 -f 518/1138/51 522/1140/51 519/1139/51 -f 523/1141/53 524/1142/53 525/1143/53 -f 524/1142/53 526/1144/53 525/1143/53 -f 527/1145/56 528/1146/56 525/1147/56 -f 528/1146/56 523/1148/56 525/1147/56 -f 528/1149/55 529/1150/55 523/1151/55 -f 529/1150/55 524/1152/55 523/1151/55 -f 525/1153/51 526/1154/51 527/1155/51 -f 526/1154/51 530/1156/51 527/1155/51 -f 531/1157/54 532/1158/54 533/1159/54 -f 532/1158/54 534/1160/54 533/1159/54 -f 531/1161/56 533/1162/56 535/1163/56 -f 533/1162/56 536/1164/56 535/1163/56 -f 533/1165/55 534/1166/55 536/1167/55 -f 534/1166/55 537/1168/55 536/1167/55 -f 535/1169/51 538/1170/51 531/1171/51 -f 538/1170/51 532/1172/51 531/1171/51 -f 539/1173/48 540/1174/48 541/1175/48 -f 540/1174/48 542/1176/48 541/1175/48 -f 543/1177/49 544/1178/49 545/1179/49 -f 544/1178/49 546/1180/49 545/1179/49 -f 543/1181/52 545/1182/52 541/1183/52 -f 545/1182/52 539/1184/52 541/1183/52 -f 545/1185/55 546/1186/55 539/1187/55 -f 546/1186/55 540/1188/55 539/1187/55 -f 541/1189/51 542/1190/51 543/1191/51 -f 542/1190/51 544/1192/51 543/1191/51 -f 547/1193/56 548/1194/56 549/1195/56 -f 548/1194/56 550/1196/56 549/1195/56 -f 551/1197/57 552/1198/57 553/1199/57 -f 552/1198/57 554/1200/57 553/1199/57 -f 554/1201/53 552/1202/53 548/1203/53 -f 552/1202/53 550/1204/53 548/1203/53 -f 553/1205/55 554/1206/55 547/1207/55 -f 554/1206/55 548/1208/55 547/1207/55 -f 549/1209/51 550/1210/51 551/1211/51 -f 550/1210/51 552/1212/51 551/1211/51 -f 555/1213/48 556/1214/48 557/1215/48 -f 556/1214/48 558/1216/48 557/1215/48 -f 559/1217/49 560/1218/49 561/1219/49 -f 560/1218/49 562/1220/49 561/1219/49 -f 559/1221/52 561/1222/52 557/1223/52 -f 561/1222/52 555/1224/52 557/1223/52 -f 562/1225/50 560/1226/50 556/1227/50 -f 560/1226/50 558/1228/50 556/1227/50 -f 561/1229/55 562/1230/55 555/1231/55 -f 562/1230/55 556/1232/55 555/1231/55 -f 557/1233/51 558/1234/51 559/1235/51 -f 558/1234/51 560/1236/51 559/1235/51 -f 563/1237/48 564/1238/48 565/1239/48 -f 564/1238/48 566/1240/48 565/1239/48 -f 567/1241/49 568/1242/49 569/1243/49 -f 568/1242/49 570/1244/49 569/1243/49 -f 567/1245/52 569/1246/52 565/1247/52 -f 569/1246/52 563/1248/52 565/1247/52 -f 570/1249/50 568/1250/50 564/1251/50 -f 568/1250/50 566/1252/50 564/1251/50 -f 569/1253/55 570/1254/55 563/1255/55 -f 570/1254/55 564/1256/55 563/1255/55 -f 565/1257/51 566/1258/51 567/1259/51 -f 566/1258/51 568/1260/51 567/1259/51 -f 571/1261/54 572/1262/54 573/1263/54 -f 572/1262/54 574/1264/54 573/1263/54 -f 573/1265/55 574/1266/55 575/1267/55 -f 574/1266/55 576/1268/55 575/1267/55 -f 577/1269/51 578/1270/51 571/1271/51 -f 578/1270/51 572/1272/51 571/1271/51 -f 579/1273/53 580/1274/53 581/1275/53 -f 580/1274/53 582/1276/53 581/1275/53 -f 583/1277/54 584/1278/54 585/1279/54 -f 584/1278/54 586/1280/54 585/1279/54 -f 586/1281/57 584/1282/57 580/1283/57 -f 584/1282/57 582/1284/57 580/1283/57 -f 585/1285/55 586/1286/55 579/1287/55 -f 586/1286/55 580/1288/55 579/1287/55 -f 581/1289/51 582/1290/51 583/1291/51 -f 582/1290/51 584/1292/51 583/1291/51 -f 587/1293/56 588/1294/56 589/1295/56 -f 588/1294/56 590/1296/56 589/1295/56 -f 591/1297/55 592/1298/55 587/1299/55 -f 592/1298/55 588/1300/55 587/1299/55 -f 589/1301/51 590/1302/51 593/1303/51 -f 590/1302/51 594/1304/51 593/1303/51 -f 595/1305/48 596/1306/48 597/1307/48 -f 596/1306/48 598/1308/48 597/1307/48 -f 599/1309/49 600/1310/49 601/1311/49 -f 600/1310/49 602/1312/49 601/1311/49 -f 599/1313/52 601/1314/52 597/1315/52 -f 601/1314/52 595/1316/52 597/1315/52 -f 602/1317/50 600/1318/50 596/1319/50 -f 600/1318/50 598/1320/50 596/1319/50 -f 601/1321/55 602/1322/55 595/1323/55 -f 602/1322/55 596/1324/55 595/1323/55 -f 597/1325/51 598/1326/51 599/1327/51 -f 598/1326/51 600/1328/51 599/1327/51 -f 603/1329/48 604/1330/48 605/1331/48 -f 604/1330/48 606/1332/48 605/1331/48 -f 607/1333/49 608/1334/49 609/1335/49 -f 608/1334/49 610/1336/49 609/1335/49 -f 607/1337/52 609/1338/52 605/1339/52 -f 609/1338/52 603/1340/52 605/1339/52 -f 610/1341/50 608/1342/50 604/1343/50 -f 608/1342/50 606/1344/50 604/1343/50 -f 609/1345/55 610/1346/55 603/1347/55 -f 610/1346/55 604/1348/55 603/1347/55 -f 605/1349/51 606/1350/51 607/1351/51 -f 606/1350/51 608/1352/51 607/1351/51 -f 611/1353/48 612/1354/48 613/1355/48 -f 612/1354/48 614/1356/48 613/1355/48 -f 615/1357/49 616/1358/49 617/1359/49 -f 616/1358/49 618/1360/49 617/1359/49 -f 615/1361/52 617/1362/52 613/1363/52 -f 617/1362/52 611/1364/52 613/1363/52 -f 617/1365/55 618/1366/55 611/1367/55 -f 618/1366/55 612/1368/55 611/1367/55 -f 613/1369/51 614/1370/51 615/1371/51 -f 614/1370/51 616/1372/51 615/1371/51 -f 619/1373/48 620/1374/48 621/1375/48 -f 620/1374/48 622/1376/48 621/1375/48 -f 623/1377/49 624/1378/49 625/1379/49 -f 624/1378/49 626/1380/49 625/1379/49 -f 623/1381/52 625/1382/52 621/1383/52 -f 625/1382/52 619/1384/52 621/1383/52 -f 626/1385/50 624/1386/50 620/1387/50 -f 624/1386/50 622/1388/50 620/1387/50 -f 625/1389/55 626/1390/55 619/1391/55 -f 626/1390/55 620/1392/55 619/1391/55 -f 621/1393/51 622/1394/51 623/1395/51 -f 622/1394/51 624/1396/51 623/1395/51 -f 627/1397/48 628/1398/48 629/1399/48 -f 628/1398/48 630/1400/48 629/1399/48 -f 631/1401/49 632/1402/49 633/1403/49 -f 632/1402/49 634/1404/49 633/1403/49 -f 633/1405/63 634/1406/63 627/1407/63 -f 634/1406/63 628/1408/63 627/1407/63 -f 629/1409/64 630/1410/64 631/1411/64 -f 630/1410/64 632/1412/64 631/1411/64 -f 635/1413/48 636/1414/48 637/1415/48 -f 636/1414/48 638/1416/48 637/1415/48 -f 639/1417/49 640/1418/49 641/1419/49 -f 640/1418/49 642/1420/49 641/1419/49 -f 639/1421/52 641/1422/52 637/1423/52 -f 641/1422/52 635/1424/52 637/1423/52 -f 642/1425/50 640/1426/50 636/1427/50 -f 640/1426/50 638/1428/50 636/1427/50 -f 641/1429/55 642/1430/55 635/1431/55 -f 642/1430/55 636/1432/55 635/1431/55 -f 637/1433/51 638/1434/51 639/1435/51 -f 638/1434/51 640/1436/51 639/1435/51 -f 643/1437/48 644/1438/48 645/1439/48 -f 644/1438/48 646/1440/48 645/1439/48 -f 647/1441/49 648/1442/49 649/1443/49 -f 648/1442/49 650/1444/49 649/1443/49 -f 647/1445/52 649/1446/52 645/1447/52 -f 649/1446/52 643/1448/52 645/1447/52 -f 650/1449/50 648/1450/50 644/1451/50 -f 648/1450/50 646/1452/50 644/1451/50 -f 645/1453/51 646/1454/51 647/1455/51 -f 646/1454/51 648/1456/51 647/1455/51 -f 651/1457/48 652/1458/48 653/1459/48 -f 652/1458/48 654/1460/48 653/1459/48 -f 655/1461/49 656/1462/49 657/1463/49 -f 656/1462/49 658/1464/49 657/1463/49 -f 658/1465/65 656/1466/65 652/1467/65 -f 656/1466/65 654/1468/65 652/1467/65 -f 657/1469/63 658/1470/63 651/1471/63 -f 658/1470/63 652/1472/63 651/1471/63 -f 653/1473/64 654/1474/64 655/1475/64 -f 654/1474/64 656/1476/64 655/1475/64 -f 659/1477/48 660/1478/48 661/1479/48 -f 660/1478/48 662/1480/48 661/1479/48 -f 663/1481/49 664/1482/49 665/1483/49 -f 664/1482/49 666/1484/49 665/1483/49 -f 663/1485/66 665/1486/66 661/1487/66 -f 665/1486/66 659/1488/66 661/1487/66 -f 666/1489/67 664/1490/67 660/1491/67 -f 664/1490/67 662/1492/67 660/1491/67 -f 665/1493/68 666/1494/68 659/1495/68 -f 666/1494/68 660/1496/68 659/1495/68 -f 661/1497/69 662/1498/69 663/1499/69 -f 662/1498/69 664/1500/69 663/1499/69 -f 667/1501/48 668/1502/48 669/1503/48 -f 668/1502/48 670/1504/48 669/1503/48 -f 671/1505/49 672/1506/49 673/1507/49 -f 672/1506/49 674/1508/49 673/1507/49 -f 671/1509/52 673/1510/52 669/1511/52 -f 673/1510/52 667/1512/52 669/1511/52 -f 674/1513/50 672/1514/50 668/1515/50 -f 672/1514/50 670/1516/50 668/1515/50 -f 669/1517/51 670/1518/51 671/1519/51 -f 670/1518/51 672/1520/51 671/1519/51 -f 675/1521/48 676/1522/48 677/1523/48 -f 676/1522/48 678/1524/48 677/1523/48 -f 679/1525/49 680/1526/49 681/1527/49 -f 680/1526/49 682/1528/49 681/1527/49 -f 679/1529/62 681/1530/62 677/1531/62 -f 681/1530/62 675/1532/62 677/1531/62 -f 682/1533/70 680/1534/70 676/1535/70 -f 680/1534/70 678/1536/70 676/1535/70 -f 681/1537/71 682/1538/71 675/1539/71 -f 682/1538/71 676/1540/71 675/1539/71 -f 677/1541/72 678/1542/72 679/1543/72 -f 678/1542/72 680/1544/72 679/1543/72 -f 683/1545/48 684/1546/48 685/1547/48 -f 684/1546/48 686/1548/48 685/1547/48 -f 687/1549/49 688/1550/49 689/1551/49 -f 688/1550/49 690/1552/49 689/1551/49 -f 687/1553/52 689/1554/52 685/1555/52 -f 689/1554/52 683/1556/52 685/1555/52 -f 690/1557/50 688/1558/50 684/1559/50 -f 688/1558/50 686/1560/50 684/1559/50 -f 689/1561/55 690/1562/55 683/1563/55 -f 690/1562/55 684/1564/55 683/1563/55 -f 685/1565/51 686/1566/51 687/1567/51 -f 686/1566/51 688/1568/51 687/1567/51 -f 691/1569/48 692/1570/48 693/1571/48 -f 692/1570/48 694/1572/48 693/1571/48 -f 695/1573/49 696/1574/49 697/1575/49 -f 696/1574/49 698/1576/49 697/1575/49 -f 695/1577/52 697/1578/52 693/1579/52 -f 697/1578/52 691/1580/52 693/1579/52 -f 698/1581/50 696/1582/50 692/1583/50 -f 696/1582/50 694/1584/50 692/1583/50 -f 697/1585/55 698/1586/55 691/1587/55 -f 698/1586/55 692/1588/55 691/1587/55 -f 693/1589/51 694/1590/51 695/1591/51 -f 694/1590/51 696/1592/51 695/1591/51 -f 699/1593/48 700/1594/48 701/1595/48 -f 700/1594/48 702/1596/48 701/1595/48 -f 703/1597/49 704/1598/49 705/1599/49 -f 704/1598/49 706/1600/49 705/1599/49 -f 703/1601/52 705/1602/52 701/1603/52 -f 705/1602/52 699/1604/52 701/1603/52 -f 706/1605/50 704/1606/50 700/1607/50 -f 704/1606/50 702/1608/50 700/1607/50 -f 705/1609/55 706/1610/55 699/1611/55 -f 706/1610/55 700/1612/55 699/1611/55 -f 707/1613/48 708/1614/48 709/1615/48 -f 708/1614/48 710/1616/48 709/1615/48 -f 711/1617/49 712/1618/49 713/1619/49 -f 712/1618/49 714/1620/49 713/1619/49 -f 714/1621/69 712/1622/69 708/1623/69 -f 712/1622/69 710/1624/69 708/1623/69 -f 713/1625/67 714/1626/67 707/1627/67 -f 714/1626/67 708/1628/67 707/1627/67 -f 709/1629/66 710/1630/66 711/1631/66 -f 710/1630/66 712/1632/66 711/1631/66 -f 715/1633/48 716/1634/48 717/1635/48 -f 716/1634/48 718/1636/48 717/1635/48 -f 719/1637/49 720/1638/49 721/1639/49 -f 720/1638/49 722/1640/49 721/1639/49 -f 719/1641/52 721/1642/52 717/1643/52 -f 721/1642/52 715/1644/52 717/1643/52 -f 721/1645/55 722/1646/55 715/1647/55 -f 722/1646/55 716/1648/55 715/1647/55 -f 717/1649/51 718/1650/51 719/1651/51 -f 718/1650/51 720/1652/51 719/1651/51 -f 723/1653/48 724/1654/48 725/1655/48 -f 724/1654/48 726/1656/48 725/1655/48 -f 727/1657/49 728/1658/49 729/1659/49 -f 728/1658/49 730/1660/49 729/1659/49 -f 727/1661/52 729/1662/52 725/1663/52 -f 729/1662/52 723/1664/52 725/1663/52 -f 729/1665/55 730/1666/55 723/1667/55 -f 730/1666/55 724/1668/55 723/1667/55 -f 725/1669/51 726/1670/51 727/1671/51 -f 726/1670/51 728/1672/51 727/1671/51 -f 731/1673/48 732/1674/48 733/1675/48 -f 732/1674/48 734/1676/48 733/1675/48 -f 735/1677/49 736/1678/49 737/1679/49 -f 736/1678/49 738/1680/49 737/1679/49 -f 735/1681/62 737/1682/62 733/1683/62 -f 737/1682/62 731/1684/62 733/1683/62 -f 738/1685/70 736/1686/70 732/1687/70 -f 736/1686/70 734/1688/70 732/1687/70 -f 737/1689/71 738/1690/71 731/1691/71 -f 738/1690/71 732/1692/71 731/1691/71 -f 739/1693/48 740/1694/48 741/1695/48 -f 740/1694/48 742/1696/48 741/1695/48 -f 743/1697/49 744/1698/49 745/1699/49 -f 744/1698/49 746/1700/49 745/1699/49 -f 746/1701/67 744/1702/67 740/1703/67 -f 744/1702/67 742/1704/67 740/1703/67 -f 747/1705/48 748/1706/48 749/1707/48 -f 748/1706/48 750/1708/48 749/1707/48 -f 751/1709/49 752/1710/49 753/1711/49 -f 752/1710/49 754/1712/49 753/1711/49 -f 749/1713/64 750/1714/64 751/1715/64 -f 750/1714/64 752/1716/64 751/1715/64 -f 755/1717/48 756/1718/48 757/1719/48 -f 756/1718/48 758/1720/48 757/1719/48 -f 759/1721/49 760/1722/49 761/1723/49 -f 760/1722/49 762/1724/49 761/1723/49 -f 761/1725/55 762/1726/55 755/1727/55 -f 762/1726/55 756/1728/55 755/1727/55 -f 757/1729/51 758/1730/51 759/1731/51 -f 758/1730/51 760/1732/51 759/1731/51 -f 763/1733/48 764/1734/48 765/1735/48 -f 764/1734/48 766/1736/48 765/1735/48 -f 767/1737/49 768/1738/49 769/1739/49 -f 768/1738/49 770/1740/49 769/1739/49 -f 767/1741/68 769/1742/68 765/1743/68 -f 769/1742/68 763/1744/68 765/1743/68 -f 770/1745/69 768/1746/69 764/1747/69 -f 768/1746/69 766/1748/69 764/1747/69 -f 771/1749/48 772/1750/48 773/1751/48 -f 772/1750/48 774/1752/48 773/1751/48 -f 775/1753/49 776/1754/49 777/1755/49 -f 776/1754/49 778/1756/49 777/1755/49 -f 775/1757/52 777/1758/52 773/1759/52 -f 777/1758/52 771/1760/52 773/1759/52 -f 778/1761/50 776/1762/50 772/1763/50 -f 776/1762/50 774/1764/50 772/1763/50 -f 779/1765/48 780/1766/48 781/1767/48 -f 780/1766/48 782/1768/48 781/1767/48 -f 783/1769/49 784/1770/49 785/1771/49 -f 784/1770/49 786/1772/49 785/1771/49 -f 783/1773/66 785/1774/66 781/1775/66 -f 785/1774/66 779/1776/66 781/1775/66 -f 786/1777/67 784/1778/67 780/1779/67 -f 784/1778/67 782/1780/67 780/1779/67 -f 787/1781/48 788/1782/48 789/1783/48 -f 788/1782/48 790/1784/48 789/1783/48 -f 791/1785/49 792/1786/49 793/1787/49 -f 792/1786/49 794/1788/49 793/1787/49 -f 793/1789/55 794/1790/55 787/1791/55 -f 794/1790/55 788/1792/55 787/1791/55 -f 789/1793/51 790/1794/51 791/1795/51 -f 790/1794/51 792/1796/51 791/1795/51 -f 795/1797/48 796/1798/48 797/1799/48 -f 796/1798/48 798/1800/48 797/1799/48 -f 799/1801/49 800/1802/49 801/1803/49 -f 800/1802/49 802/1804/49 801/1803/49 -f 801/1805/63 802/1806/63 795/1807/63 -f 802/1806/63 796/1808/63 795/1807/63 -f 797/1809/64 798/1810/64 799/1811/64 -f 798/1810/64 800/1812/64 799/1811/64 -f 803/1813/48 804/1814/48 805/1815/48 -f 804/1814/48 806/1816/48 805/1815/48 -f 807/1817/49 808/1818/49 809/1819/49 -f 808/1818/49 810/1820/49 809/1819/49 -f 807/1821/66 809/1822/66 805/1823/66 -f 809/1822/66 803/1824/66 805/1823/66 -f 810/1825/67 808/1826/67 804/1827/67 -f 808/1826/67 806/1828/67 804/1827/67 -f 805/1829/69 806/1830/69 807/1831/69 -f 806/1830/69 808/1832/69 807/1831/69 -f 811/1833/48 812/1834/48 813/1835/48 -f 812/1834/48 814/1836/48 813/1835/48 -f 815/1837/49 816/1838/49 817/1839/49 -f 816/1838/49 818/1840/49 817/1839/49 -f 817/1841/55 818/1842/55 811/1843/55 -f 818/1842/55 812/1844/55 811/1843/55 -f 813/1845/51 814/1846/51 815/1847/51 -f 814/1846/51 816/1848/51 815/1847/51 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +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.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.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3826 -0.9239 -0.0000 +vn -0.3826 -0.9239 -0.0000 +vt 0.232414 0.762673 +vt 0.232414 0.557205 +vt 0.507414 0.762673 +vt 0.507414 0.557205 +vt 0.492586 0.762673 +vt 0.492586 0.557205 +vt 0.767586 0.762673 +vt 0.767586 0.557205 +vt 0.419200 0.507414 +vt 0.419200 0.232414 +vt 0.446738 0.507414 +vt 0.446738 0.232414 +vt 0.419200 0.767586 +vt 0.419200 0.492586 +vt 0.446738 0.767586 +vt 0.446738 0.492586 +vt 0.419200 0.762673 +vt 0.419200 0.557205 +vt 0.446738 0.762673 +vt 0.446738 0.557205 +vt 0.553262 0.762673 +vt 0.553262 0.557205 +vt 0.580800 0.762673 +vt 0.580800 0.557205 +vt 0.232414 0.726953 +vt 0.232414 0.520703 +vt 0.507414 0.726953 +vt 0.507414 0.520703 +vt 0.492586 0.726953 +vt 0.492586 0.520703 +vt 0.767586 0.726953 +vt 0.767586 0.520703 +vt 0.473047 0.507414 +vt 0.473047 0.232414 +vt 0.533204 0.507414 +vt 0.533204 0.232414 +vt 0.473047 0.767586 +vt 0.473047 0.492586 +vt 0.533204 0.767586 +vt 0.533204 0.492586 +vt 0.473047 0.726953 +vt 0.473047 0.520703 +vt 0.533204 0.726953 +vt 0.533204 0.520703 +vt 0.466796 0.726953 +vt 0.466796 0.520703 +vt 0.526953 0.726953 +vt 0.526953 0.520703 +vt 0.232414 0.612558 +vt 0.232414 0.554549 +vt 0.507414 0.612558 +vt 0.507414 0.554549 +vt 0.492586 0.612558 +vt 0.492586 0.554549 +vt 0.767586 0.612558 +vt 0.767586 0.554549 +vt 0.415213 0.507414 +vt 0.415213 0.232414 +vt 0.623611 0.507414 +vt 0.623611 0.232414 +vt 0.415213 0.767586 +vt 0.415213 0.492586 +vt 0.623611 0.767586 +vt 0.623611 0.492586 +vt 0.415213 0.612558 +vt 0.415213 0.554549 +vt 0.623611 0.612558 +vt 0.623611 0.554549 +vt 0.376389 0.612558 +vt 0.376389 0.554549 +vt 0.584787 0.612558 +vt 0.584787 0.554549 +vt 0.232414 0.691931 +vt 0.232414 0.636072 +vt 0.507414 0.691931 +vt 0.507414 0.636072 +vt 0.492586 0.691931 +vt 0.492586 0.636072 +vt 0.767586 0.691931 +vt 0.767586 0.636072 +vt 0.393015 0.507414 +vt 0.393015 0.232414 +vt 0.603561 0.507414 +vt 0.603561 0.232414 +vt 0.393015 0.767586 +vt 0.393015 0.492586 +vt 0.603561 0.767586 +vt 0.603561 0.492586 +vt 0.393015 0.691931 +vt 0.393015 0.636072 +vt 0.603561 0.691931 +vt 0.603561 0.636072 +vt 0.396439 0.691931 +vt 0.396439 0.636072 +vt 0.606985 0.691931 +vt 0.606985 0.636072 +vt 0.232414 0.608142 +vt 0.301164 0.636072 +vt 0.301164 0.608142 +vt 0.698836 0.636072 +vt 0.698836 0.608142 +vt 0.767586 0.608142 +vt 0.393014 0.301164 +vt 0.393014 0.232414 +vt 0.607857 0.301164 +vt 0.607857 0.232414 +vt 0.393014 0.767586 +vt 0.393014 0.698836 +vt 0.607857 0.767586 +vt 0.607857 0.698836 +vt 0.393014 0.636072 +vt 0.393014 0.608142 +vt 0.607857 0.636072 +vt 0.607857 0.608142 +vt 0.392143 0.636072 +vt 0.392143 0.608142 +vt 0.606986 0.636072 +vt 0.606986 0.608142 +vt 0.232414 0.687679 +vt 0.232414 0.554476 +vt 0.507414 0.687679 +vt 0.507414 0.554476 +vt 0.492586 0.687679 +vt 0.492586 0.554476 +vt 0.767586 0.687679 +vt 0.767586 0.554476 +vt 0.414390 0.507414 +vt 0.414390 0.232414 +vt 0.586265 0.507414 +vt 0.586265 0.232414 +vt 0.414390 0.767586 +vt 0.414390 0.492586 +vt 0.586265 0.767586 +vt 0.586265 0.492586 +vt 0.414390 0.687679 +vt 0.414390 0.554476 +vt 0.586265 0.687679 +vt 0.586265 0.554476 +vt 0.413735 0.687679 +vt 0.413735 0.554476 +vt 0.585610 0.687679 +vt 0.585610 0.554476 +vt 0.492586 0.713286 +vt 0.492586 0.666019 +vt 0.767586 0.713286 +vt 0.767586 0.666019 +vt 0.449452 0.507414 +vt 0.449452 0.232414 +vt 0.494569 0.507414 +vt 0.494569 0.232414 +vt 0.449452 0.713286 +vt 0.449452 0.666019 +vt 0.494569 0.713286 +vt 0.494569 0.666019 +vt 0.505431 0.713286 +vt 0.505431 0.666019 +vt 0.550548 0.713286 +vt 0.550548 0.666019 +vt 0.232414 0.730552 +vt 0.232414 0.683285 +vt 0.507414 0.730552 +vt 0.507414 0.683285 +vt 0.515115 0.507414 +vt 0.515115 0.232414 +vt 0.555935 0.507414 +vt 0.555935 0.232414 +vt 0.515115 0.730552 +vt 0.515115 0.683285 +vt 0.555935 0.730552 +vt 0.555935 0.683285 +vt 0.444065 0.730552 +vt 0.444065 0.683285 +vt 0.484885 0.730552 +vt 0.484885 0.683285 +vt 0.232414 0.567969 +vt 0.507414 0.567969 +vt 0.533203 0.767586 +vt 0.533203 0.492586 +vt 0.571875 0.767586 +vt 0.571875 0.492586 +vt 0.533203 0.567969 +vt 0.533203 0.520703 +vt 0.571875 0.567969 +vt 0.571875 0.520703 +vt 0.428125 0.567969 +vt 0.428125 0.520703 +vt 0.466797 0.567969 +vt 0.466797 0.520703 +vt 0.492586 0.583590 +vt 0.492586 0.536324 +vt 0.767586 0.583590 +vt 0.767586 0.536324 +vt 0.435334 0.767586 +vt 0.435334 0.492586 +vt 0.476154 0.767586 +vt 0.476154 0.492586 +vt 0.435334 0.583590 +vt 0.435334 0.536324 +vt 0.476154 0.583590 +vt 0.476154 0.536324 +vt 0.523846 0.583590 +vt 0.523846 0.536324 +vt 0.564666 0.583590 +vt 0.564666 0.536324 +vt 0.232414 0.719101 +vt 0.232414 0.679843 +vt 0.507414 0.719101 +vt 0.507414 0.679843 +vt 0.492586 0.719101 +vt 0.492586 0.679843 +vt 0.767586 0.719101 +vt 0.767586 0.679843 +vt 0.414227 0.507414 +vt 0.414227 0.232414 +vt 0.619696 0.507414 +vt 0.619696 0.232414 +vt 0.414227 0.767586 +vt 0.414227 0.492586 +vt 0.619696 0.767586 +vt 0.619696 0.492586 +vt 0.414227 0.719101 +vt 0.414227 0.679843 +vt 0.619696 0.719101 +vt 0.619696 0.679843 +vt 0.380304 0.719101 +vt 0.380304 0.679843 +vt 0.585773 0.719101 +vt 0.585773 0.679843 +s 0 +f 571/1144/27 572/1145/27 573/1146/27 +f 572/1145/27 574/1147/27 573/1146/27 +f 575/1148/28 576/1149/28 577/1150/28 +f 576/1149/28 578/1151/28 577/1150/28 +f 575/1152/29 577/1153/29 573/1154/29 +f 577/1153/29 571/1155/29 573/1154/29 +f 578/1156/30 576/1157/30 572/1158/30 +f 576/1157/30 574/1159/30 572/1158/30 +f 577/1160/31 578/1161/31 571/1162/31 +f 578/1161/31 572/1163/31 571/1162/31 +f 573/1164/32 574/1165/32 575/1166/32 +f 574/1165/32 576/1167/32 575/1166/32 +f 579/1168/33 580/1169/33 581/1170/33 +f 580/1169/33 582/1171/33 581/1170/33 +f 583/1172/34 584/1173/34 585/1174/34 +f 584/1173/34 586/1175/34 585/1174/34 +f 583/1176/35 585/1177/35 581/1178/35 +f 585/1177/35 579/1179/35 581/1178/35 +f 586/1180/36 584/1181/36 580/1182/36 +f 584/1181/36 582/1183/36 580/1182/36 +f 585/1184/31 586/1185/31 579/1186/31 +f 586/1185/31 580/1187/31 579/1186/31 +f 581/1188/32 582/1189/32 583/1190/32 +f 582/1189/32 584/1191/32 583/1190/32 +f 587/1192/37 588/1193/37 589/1194/37 +f 588/1193/37 590/1195/37 589/1194/37 +f 591/1196/38 592/1197/38 593/1198/38 +f 592/1197/38 594/1199/38 593/1198/38 +f 591/1200/39 593/1201/39 589/1202/39 +f 593/1201/39 587/1203/39 589/1202/39 +f 594/1204/40 592/1205/40 588/1206/40 +f 592/1205/40 590/1207/40 588/1206/40 +f 593/1208/31 594/1209/31 587/1210/31 +f 594/1209/31 588/1211/31 587/1210/31 +f 589/1212/32 590/1213/32 591/1214/32 +f 590/1213/32 592/1215/32 591/1214/32 +f 595/1216/41 596/1217/41 597/1218/41 +f 596/1217/41 598/1219/41 597/1218/41 +f 599/1220/42 600/1221/42 601/1222/42 +f 600/1221/42 602/1223/42 601/1222/42 +f 599/1224/43 601/1225/43 597/1226/43 +f 601/1225/43 595/1227/43 597/1226/43 +f 602/1228/44 600/1229/44 596/1230/44 +f 600/1229/44 598/1231/44 596/1230/44 +f 601/1232/31 602/1233/31 595/1234/31 +f 602/1233/31 596/1235/31 595/1234/31 +f 597/1236/32 598/1237/32 599/1238/32 +f 598/1237/32 600/1239/32 599/1238/32 +f 603/1217/33 604/1240/33 605/1241/33 +f 604/1240/33 606/1242/33 605/1241/33 +f 607/1243/34 608/1244/34 609/1223/34 +f 608/1244/34 610/1245/34 609/1223/34 +f 607/1246/35 609/1247/35 605/1248/35 +f 609/1247/35 603/1249/35 605/1248/35 +f 610/1250/36 608/1251/36 604/1252/36 +f 608/1251/36 606/1253/36 604/1252/36 +f 609/1254/31 610/1255/31 603/1256/31 +f 610/1255/31 604/1257/31 603/1256/31 +f 605/1258/32 606/1259/32 607/1260/32 +f 606/1259/32 608/1261/32 607/1260/32 +f 611/1262/33 612/1263/33 613/1264/33 +f 612/1263/33 614/1265/33 613/1264/33 +f 615/1266/34 616/1267/34 617/1268/34 +f 616/1267/34 618/1269/34 617/1268/34 +f 615/1270/35 617/1271/35 613/1272/35 +f 617/1271/35 611/1273/35 613/1272/35 +f 618/1274/36 616/1275/36 612/1276/36 +f 616/1275/36 614/1277/36 612/1276/36 +f 617/1278/31 618/1279/31 611/1280/31 +f 618/1279/31 612/1281/31 611/1280/31 +f 613/1282/32 614/1283/32 615/1284/32 +f 614/1283/32 616/1285/32 615/1284/32 +f 619/1286/38 620/1287/38 621/1288/38 +f 620/1287/38 622/1289/38 621/1288/38 +f 619/1290/39 621/1291/39 623/1292/39 +f 621/1291/39 624/1293/39 623/1292/39 +f 621/1294/31 622/1295/31 624/1296/31 +f 622/1295/31 625/1297/31 624/1296/31 +f 623/1298/32 626/1299/32 619/1300/32 +f 626/1299/32 620/1301/32 619/1300/32 +f 627/1302/41 628/1303/41 629/1304/41 +f 628/1303/41 630/1305/41 629/1304/41 +f 631/1306/43 632/1307/43 629/1308/43 +f 632/1307/43 627/1309/43 629/1308/43 +f 632/1310/31 633/1311/31 627/1312/31 +f 633/1311/31 628/1313/31 627/1312/31 +f 629/1314/32 630/1315/32 631/1316/32 +f 630/1315/32 634/1317/32 631/1316/32 +f 635/1318/37 636/1169/37 637/1319/37 +f 636/1169/37 638/1171/37 637/1319/37 +f 639/1320/45 640/1321/45 636/1322/45 +f 640/1321/45 638/1323/45 636/1322/45 +f 641/1324/31 639/1325/31 635/1326/31 +f 639/1325/31 636/1327/31 635/1326/31 +f 637/1328/32 638/1329/32 642/1330/32 +f 638/1329/32 640/1331/32 642/1330/32 +f 643/1332/42 644/1333/42 645/1334/42 +f 644/1333/42 646/1335/42 645/1334/42 +f 646/1336/46 644/1337/46 647/1338/46 +f 644/1337/46 648/1339/46 647/1338/46 +f 645/1340/31 646/1341/31 649/1342/31 +f 646/1341/31 647/1343/31 649/1342/31 +f 650/1344/32 648/1345/32 643/1346/32 +f 648/1345/32 644/1347/32 643/1346/32 +f 651/1348/27 652/1349/27 653/1350/27 +f 652/1349/27 654/1351/27 653/1350/27 +f 655/1352/28 656/1353/28 657/1354/28 +f 656/1353/28 658/1355/28 657/1354/28 +f 655/1356/29 657/1357/29 653/1358/29 +f 657/1357/29 651/1359/29 653/1358/29 +f 658/1360/30 656/1361/30 652/1362/30 +f 656/1361/30 654/1363/30 652/1362/30 +f 657/1364/31 658/1365/31 651/1366/31 +f 658/1365/31 652/1367/31 651/1366/31 +f 653/1368/32 654/1369/32 655/1370/32 +f 654/1369/32 656/1371/32 655/1370/32 +o Grip +v 0.029437 0.100706 0.311919 +v 0.029437 -0.004763 0.311919 +v 0.029437 0.100706 0.268950 +v 0.029437 -0.004763 0.268950 +v -0.029156 0.100706 0.268950 +v -0.029156 -0.004763 0.268950 +v -0.029156 0.100706 0.311919 +v -0.029156 -0.004763 0.311919 +v 0.029388 0.017106 0.332156 +v 0.029388 -0.174300 0.332156 +v 0.029388 0.017106 0.285281 +v 0.029388 -0.174300 0.285281 +v -0.029181 0.017106 0.285281 +v -0.029181 -0.174300 0.285281 +v -0.029181 0.017106 0.332156 +v -0.029181 -0.174300 0.332156 +v 0.029419 0.085760 0.232858 +v 0.029419 -0.005391 0.324008 +v 0.029419 0.069187 0.216285 +v 0.029419 -0.021963 0.307436 +v -0.029175 0.069187 0.216285 +v -0.029175 -0.021963 0.307436 +v -0.029175 0.085760 0.232858 +v -0.029175 -0.005391 0.324008 +v 0.029462 0.040785 0.284858 +v 0.029462 -0.024175 0.257950 +v 0.029462 0.069187 0.216289 +v 0.029462 0.004227 0.189381 +v -0.029131 0.069187 0.216289 +v -0.029131 0.004227 0.189381 +v -0.029131 0.040785 0.284858 +v -0.029131 -0.024175 0.257950 +v 0.029425 0.004225 0.310469 +v 0.029425 -0.019213 0.310469 +v 0.029425 0.004225 0.189375 +v 0.029425 -0.019213 0.189375 +v -0.029169 0.004225 0.189375 +v -0.029169 -0.019213 0.189375 +v -0.029169 0.004225 0.310469 +v -0.029169 -0.019213 0.310469 +v 0.029456 -0.063915 0.319925 +v 0.029456 -0.080488 0.303353 +v 0.029456 0.021711 0.234299 +v 0.029456 0.005138 0.217726 +v -0.029137 0.021711 0.234299 +v -0.029137 0.005138 0.217726 +v -0.029137 -0.063915 0.319925 +v -0.029137 -0.080488 0.303353 +v 0.029406 0.100711 0.268945 +v 0.029406 -0.040037 0.327245 +v 0.029406 0.085762 0.232856 +v 0.029406 -0.054985 0.291156 +v -0.029188 0.085762 0.232856 +v -0.029188 -0.054985 0.291156 +v -0.029188 0.100711 0.268945 +v -0.029188 -0.040037 0.327245 +v 0.029375 -0.129257 0.319077 +v 0.029375 -0.205044 0.287685 +v 0.029375 -0.120288 0.297424 +v 0.029375 -0.196075 0.266032 +v -0.029188 -0.120288 0.297424 +v -0.029188 -0.196075 0.266032 +v -0.029188 -0.129257 0.319077 +v -0.029188 -0.205044 0.287685 +v 0.029450 0.100710 0.300193 +v 0.029450 -0.040037 0.358492 +v 0.029450 0.085762 0.264104 +v 0.029450 -0.054986 0.322403 +v -0.029144 0.085762 0.264104 +v -0.029144 -0.054986 0.322403 +v -0.029144 0.100710 0.300193 +v -0.029144 -0.040037 0.358492 +v 0.029469 0.075586 0.302363 +v 0.029469 0.006533 0.371416 +v 0.029469 0.047965 0.274741 +v 0.029469 -0.021088 0.343795 +v -0.029125 0.047965 0.274741 +v -0.029125 -0.021088 0.343795 +v -0.029125 0.075586 0.302363 +v -0.029125 0.006533 0.371416 +v 0.029425 0.006539 0.371413 +v 0.029425 -0.126990 0.426723 +v 0.029425 -0.032327 0.277581 +v 0.029425 -0.165857 0.332891 +v -0.029169 -0.032327 0.277581 +v -0.029169 -0.165857 0.332891 +v -0.029169 0.006539 0.371413 +v -0.029169 -0.126990 0.426723 +v 0.029419 -0.126919 0.427336 +v 0.029419 -0.205044 0.427336 +v 0.029419 -0.126919 0.287688 +v 0.029419 -0.205044 0.287688 +v -0.029163 -0.126919 0.287688 +v -0.029163 -0.205044 0.287688 +v -0.029163 -0.126919 0.427336 +v -0.029163 -0.205044 0.427336 +v 0.021613 0.096482 0.310400 +v 0.021613 -0.037047 0.365710 +v 0.021613 0.078544 0.267093 +v 0.021613 -0.054986 0.322403 +v -0.021356 0.078544 0.267093 +v -0.021356 -0.054986 0.322403 +v -0.021356 0.096482 0.310400 +v -0.021356 -0.037047 0.365710 +v 0.021613 0.081113 0.307885 +v 0.021613 0.010678 0.378319 +v 0.021613 0.047967 0.274739 +v 0.021613 -0.022467 0.345174 +v -0.021356 0.047967 0.274739 +v -0.021356 -0.022467 0.345174 +v -0.021356 0.081113 0.307885 +v -0.021356 0.010678 0.378319 +v 0.021613 -0.123013 0.435149 +v 0.021613 -0.205044 0.435149 +v 0.021613 -0.123013 0.287688 +v 0.021613 -0.205044 0.287688 +v -0.021356 -0.123013 0.287688 +v -0.021356 -0.205044 0.287688 +v -0.021356 -0.123013 0.435149 +v -0.021356 -0.205044 0.435149 +v 0.021613 0.011330 0.377885 +v 0.021613 -0.125808 0.434689 +v 0.021613 -0.030526 0.276835 +v 0.021613 -0.167664 0.333640 +v -0.021356 -0.030526 0.276835 +v -0.021356 -0.167664 0.333640 +v -0.021356 0.011330 0.377885 +v -0.021356 -0.125808 0.434689 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +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.9239 0.3827 +vn -0.0000 -0.9239 -0.3827 +vn -0.0000 -0.3827 0.9239 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 0.9239 -0.3827 +vn -0.0000 0.3827 0.9239 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.7071 0.7071 +vt 0.000000 1.000000 +vt 0.000000 0.789062 +vt 0.085938 1.000000 +vt 0.085938 0.789062 +vt 0.890625 1.000000 +vt 0.890625 0.914062 +vt 1.007812 1.000000 +vt 1.007812 0.914062 +vt 0.562500 0.531250 +vt 0.562500 0.320312 +vt 0.679688 0.531250 +vt 0.679688 0.320312 +vt 0.000000 0.687500 +vt 0.093750 1.000000 +vt 0.093750 0.687500 +vt 0.437500 1.000000 +vt 0.437500 0.617188 +vt 0.554688 1.000000 +vt 0.554688 0.617188 +vt 0.000000 0.742188 +vt 0.046875 1.000000 +vt 0.046875 0.742188 +vt 0.531250 0.468750 +vt 0.531250 0.421875 +vt 0.648438 0.468750 +vt 0.648438 0.421875 +vt 0.562500 0.593750 +vt 0.562500 0.335938 +vt 0.679688 0.593750 +vt 0.679688 0.335938 +vt 0.000000 0.859375 +vt 0.130307 1.000000 +vt 0.130307 0.859375 +vt 0.500000 0.468750 +vt 0.500000 0.338443 +vt 0.617188 0.468750 +vt 0.617188 0.338443 +vt 0.531250 0.338443 +vt 0.648438 0.338443 +vt 0.500000 0.328125 +vt 0.617188 0.328125 +vt 0.000000 0.953125 +vt 0.130307 0.953125 +vt 0.015625 1.000000 +vt 0.015625 0.953125 +vt 0.145932 1.000000 +vt 0.145932 0.953125 +vt 0.343750 0.703125 +vt 0.343750 0.572818 +vt 0.460938 0.703125 +vt 0.460938 0.572818 +vt 0.500000 0.406250 +vt 0.500000 0.359375 +vt 0.617188 0.406250 +vt 0.617188 0.359375 +vt 0.218750 1.000000 +vt 0.218750 0.953125 +vt 0.265625 1.000000 +vt 0.265625 0.953125 +vt 0.890625 0.359375 +vt 0.890625 0.285771 +vt 1.007812 0.359375 +vt 1.007812 0.285771 +vt 0.000000 0.695312 +vt 0.078125 1.000000 +vt 0.078125 0.695312 +vt 0.890625 0.921875 +vt 1.007812 0.921875 +vt 0.562500 0.289062 +vt 0.679688 0.289062 +vt 0.531250 0.593750 +vt 0.531250 0.289062 +vt 0.648438 0.593750 +vt 0.648438 0.289062 +vt 0.000000 0.835938 +vt 0.046875 0.835938 +vt 0.484375 0.046875 +vt 0.484375 0.000000 +vt 0.601562 0.046875 +vt 0.601562 0.000000 +vt 0.687500 0.156250 +vt 0.687500 -0.007812 +vt 0.804688 0.156250 +vt 0.804688 -0.007812 +vt 0.562500 0.468750 +vt 0.562500 0.390625 +vt 0.679688 0.468750 +vt 0.679688 0.390625 +vt 0.562500 0.437500 +vt 0.562500 0.359375 +vt 0.679688 0.437500 +vt 0.679688 0.359375 +vt 0.000000 0.804688 +vt 0.078125 0.804688 +vt 0.562500 0.500000 +vt 0.562500 0.304688 +vt 0.679688 0.500000 +vt 0.679688 0.304688 +vt 0.000000 0.710938 +vt 0.203125 1.000000 +vt 0.203125 0.710938 +vt 0.562500 0.328125 +vt 0.679688 0.328125 +vt 0.000000 0.734375 +vt 0.000000 0.578125 +vt 0.281250 0.734375 +vt 0.281250 0.578125 +vt 0.328125 0.281250 +vt 0.328125 0.001952 +vt 0.445312 0.281250 +vt 0.445312 0.001952 +vt 0.500000 0.500000 +vt 0.500000 0.343750 +vt 0.617188 0.500000 +vt 0.617188 0.343750 +vt 0.770499 0.593601 +vt 0.770499 0.304538 +vt 0.864249 0.593601 +vt 0.864249 0.304538 +vt 0.135752 0.593601 +vt 0.135752 0.304538 +vt 0.229502 0.593601 +vt 0.229502 0.304538 +vt 0.921875 1.000000 +vt 0.921875 0.710937 +vt 1.007812 0.710937 +vt 0.724961 0.568802 +vt 0.724961 0.369583 +vt 0.818711 0.568802 +vt 0.818711 0.369583 +vt 0.181289 0.568802 +vt 0.181289 0.369583 +vt 0.275039 0.568802 +vt 0.275039 0.369583 +vt 0.921875 0.800781 +vt 1.007812 0.800781 +vt 0.437500 0.500000 +vt 0.437500 0.335938 +vt 0.732422 0.500000 +vt 0.732422 0.335938 +vt 0.562500 0.562500 +vt 0.562500 0.267577 +vt 0.648438 0.562500 +vt 0.648438 0.267577 +vt 0.921875 0.705078 +vt 1.007812 0.705078 +vt 0.921875 0.835938 +vt 1.007812 0.835938 +vt 0.531250 0.500000 +vt 0.531250 0.335938 +vt 0.617188 0.335938 +vt 0.500000 0.593750 +vt 0.500000 0.296875 +vt 0.718750 0.593750 +vt 0.718750 0.296875 +vt 0.921875 0.703125 +vt 1.007812 0.703125 +s 0 +f 659/1372/47 660/1373/47 661/1374/47 +f 660/1373/47 662/1375/47 661/1374/47 +f 663/1372/48 664/1373/48 665/1374/48 +f 664/1373/48 666/1375/48 665/1374/48 +f 663/1376/49 665/1377/49 661/1378/49 +f 665/1377/49 659/1379/49 661/1378/49 +f 665/1380/50 666/1381/50 659/1382/50 +f 666/1381/50 660/1383/50 659/1382/50 +f 661/1380/51 662/1381/51 663/1382/51 +f 662/1381/51 664/1383/51 663/1382/51 +f 667/1372/47 668/1384/47 669/1385/47 +f 668/1384/47 670/1386/47 669/1385/47 +f 671/1372/48 672/1384/48 673/1385/48 +f 672/1384/48 674/1386/48 673/1385/48 +f 669/1387/51 670/1388/51 671/1389/51 +f 670/1388/51 672/1390/51 671/1389/51 +f 675/1372/47 676/1391/47 677/1392/47 +f 676/1391/47 678/1393/47 677/1392/47 +f 679/1372/48 680/1391/48 681/1392/48 +f 680/1391/48 682/1393/48 681/1392/48 +f 679/1394/52 681/1395/52 677/1396/52 +f 681/1395/52 675/1397/52 677/1396/52 +f 681/1398/53 682/1399/53 675/1400/53 +f 682/1399/53 676/1401/53 675/1400/53 +f 677/1398/54 678/1399/54 679/1400/54 +f 678/1399/54 680/1401/54 679/1400/54 +f 683/1372/47 684/1402/47 685/1403/47 +f 684/1402/47 686/1404/47 685/1403/47 +f 687/1372/48 688/1402/48 689/1403/48 +f 688/1402/48 690/1404/48 689/1403/48 +f 687/1405/55 689/1406/55 685/1407/55 +f 689/1406/55 683/1408/55 685/1407/55 +f 690/1394/56 688/1409/56 684/1396/56 +f 688/1409/56 686/1410/56 684/1396/56 +f 689/1405/57 690/1411/57 683/1407/57 +f 690/1411/57 684/1412/57 683/1407/57 +f 685/1405/58 686/1411/58 687/1407/58 +f 686/1411/58 688/1412/58 687/1407/58 +f 691/1372/47 692/1413/47 693/1403/47 +f 692/1413/47 694/1414/47 693/1403/47 +f 695/1415/48 696/1416/48 697/1417/48 +f 696/1416/48 698/1418/48 697/1417/48 +f 695/1405/49 697/1406/49 693/1407/49 +f 697/1406/49 691/1408/49 693/1407/49 +f 698/1419/59 696/1420/59 692/1421/59 +f 696/1420/59 694/1422/59 692/1421/59 +f 693/1423/51 694/1424/51 695/1425/51 +f 694/1424/51 696/1426/51 695/1425/51 +f 699/1372/47 700/1413/47 701/1427/47 +f 700/1413/47 702/1428/47 701/1427/47 +f 703/1372/48 704/1413/48 705/1429/48 +f 704/1413/48 706/1430/48 705/1429/48 +f 706/1431/54 704/1432/54 700/1433/54 +f 704/1432/54 702/1434/54 700/1433/54 +f 707/1372/47 708/1435/47 709/1436/47 +f 708/1435/47 710/1437/47 709/1436/47 +f 711/1372/48 712/1435/48 713/1436/48 +f 712/1435/48 714/1437/48 713/1436/48 +f 711/1376/60 713/1438/60 709/1378/60 +f 713/1438/60 707/1439/60 709/1378/60 +f 713/1398/61 714/1440/61 707/1400/61 +f 714/1440/61 708/1441/61 707/1400/61 +f 709/1442/62 710/1443/62 711/1444/62 +f 710/1443/62 712/1445/62 711/1444/62 +f 715/1372/47 716/1446/47 717/1392/47 +f 716/1446/47 718/1447/47 717/1392/47 +f 719/1372/48 720/1446/48 721/1392/48 +f 720/1446/48 722/1447/48 721/1392/48 +f 722/1448/56 720/1449/56 716/1450/56 +f 720/1449/56 718/1451/56 716/1450/56 +f 717/1452/58 718/1453/58 719/1454/58 +f 718/1453/58 720/1455/58 719/1454/58 +f 723/1372/47 724/1435/47 725/1436/47 +f 724/1435/47 726/1437/47 725/1436/47 +f 727/1372/48 728/1435/48 729/1436/48 +f 728/1435/48 730/1437/48 729/1436/48 +f 727/1456/60 729/1457/60 725/1458/60 +f 729/1457/60 723/1459/60 725/1458/60 +f 730/1460/63 728/1461/63 724/1462/63 +f 728/1461/63 726/1463/63 724/1462/63 +f 729/1398/61 730/1440/61 723/1400/61 +f 730/1440/61 724/1441/61 723/1400/61 +f 725/1398/62 726/1440/62 727/1400/62 +f 726/1440/62 728/1441/62 727/1400/62 +f 731/1372/47 732/1464/47 733/1436/47 +f 732/1464/47 734/1465/47 733/1436/47 +f 735/1372/48 736/1464/48 737/1436/48 +f 736/1464/48 738/1465/48 737/1436/48 +f 738/1460/64 736/1461/64 732/1462/64 +f 736/1461/64 734/1463/64 732/1462/64 +f 737/1466/53 738/1467/53 731/1468/53 +f 738/1467/53 732/1469/53 731/1468/53 +f 733/1466/54 734/1467/54 735/1468/54 +f 734/1467/54 736/1469/54 735/1468/54 +f 739/1372/47 740/1470/47 741/1471/47 +f 740/1470/47 742/1472/47 741/1471/47 +f 743/1372/48 744/1470/48 745/1471/48 +f 744/1470/48 746/1472/48 745/1471/48 +f 743/1380/60 745/1473/60 741/1382/60 +f 745/1473/60 739/1474/60 741/1382/60 +f 745/1398/61 746/1467/61 739/1400/61 +f 746/1467/61 740/1469/61 739/1400/61 +f 747/1475/47 748/1476/47 749/1477/47 +f 748/1476/47 750/1478/47 749/1477/47 +f 751/1475/48 752/1476/48 753/1477/48 +f 752/1476/48 754/1478/48 753/1477/48 +f 754/1479/59 752/1480/59 748/1481/59 +f 752/1480/59 750/1482/59 748/1481/59 +f 753/1483/50 754/1484/50 747/1485/50 +f 754/1484/50 748/1486/50 747/1485/50 +f 749/1483/51 750/1484/51 751/1485/51 +f 750/1484/51 752/1486/51 751/1485/51 +f 755/1487/47 756/1488/47 757/1489/47 +f 756/1488/47 758/1490/47 757/1489/47 +f 759/1491/48 760/1492/48 761/1493/48 +f 760/1492/48 762/1494/48 761/1493/48 +f 761/1495/61 762/1496/61 755/1378/61 +f 762/1496/61 756/1497/61 755/1378/61 +f 763/1498/47 764/1499/47 765/1500/47 +f 764/1499/47 766/1501/47 765/1500/47 +f 767/1502/48 768/1503/48 769/1504/48 +f 768/1503/48 770/1505/48 769/1504/48 +f 769/1495/53 770/1506/53 763/1378/53 +f 770/1506/53 764/1507/53 763/1378/53 +f 771/1508/47 772/1509/47 773/1510/47 +f 772/1509/47 774/1511/47 773/1510/47 +f 775/1508/48 776/1509/48 777/1510/48 +f 776/1509/48 778/1511/48 777/1510/48 +f 775/1512/49 777/1513/49 773/1514/49 +f 777/1513/49 771/1515/49 773/1514/49 +f 778/1495/59 776/1516/59 772/1378/59 +f 776/1516/59 774/1517/59 772/1378/59 +f 777/1495/50 778/1518/50 771/1378/50 +f 778/1518/50 772/1519/50 771/1378/50 +f 773/1520/51 774/1521/51 775/1485/51 +f 774/1521/51 776/1522/51 775/1485/51 +f 779/1523/47 780/1524/47 781/1525/47 +f 780/1524/47 782/1526/47 781/1525/47 +f 783/1523/48 784/1524/48 785/1525/48 +f 784/1524/48 786/1526/48 785/1525/48 +f 785/1495/61 786/1527/61 779/1378/61 +f 786/1527/61 780/1528/61 779/1378/61 +o Hammer +v 0.009894 0.159364 0.192004 +v 0.009894 0.127600 0.223769 +v 0.009894 0.115170 0.147810 +v 0.009894 0.083406 0.179575 +v -0.009638 0.115170 0.147810 +v -0.009638 0.083406 0.179575 +v -0.009638 0.159364 0.192004 +v -0.009638 0.127600 0.223769 +v 0.009894 0.151487 0.265041 +v 0.009894 0.135862 0.265041 +v 0.009894 0.151487 0.220119 +v 0.009894 0.135862 0.220119 +v -0.009638 0.151487 0.220119 +v -0.009638 0.135862 0.220119 +v -0.009638 0.151487 0.265041 +v -0.009638 0.135862 0.265041 +v 0.009894 0.149695 0.230343 +v 0.009894 0.138646 0.241391 +v 0.009894 0.112406 0.193054 +v 0.009894 0.101357 0.204103 +v -0.009638 0.112406 0.193054 +v -0.009638 0.101357 0.204103 +v -0.009638 0.149695 0.230343 +v -0.009638 0.138646 0.241391 +v 0.009894 0.151488 0.220120 +v 0.009894 0.140439 0.231168 +v 0.009894 0.119723 0.188355 +v 0.009894 0.108675 0.199404 +v -0.009638 0.119723 0.188355 +v -0.009638 0.108675 0.199404 +v -0.009638 0.151488 0.220120 +v -0.009638 0.140439 0.231168 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 0.7071 0.7071 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.7071 0.7071 +vt 0.024914 0.671166 +vt 0.024914 0.581323 +vt 0.149915 0.671166 +vt 0.149915 0.581323 +vt 0.850086 0.671166 +vt 0.850086 0.581323 +vt 0.975086 0.671166 +vt 0.975086 0.581323 +vt 0.484375 0.149914 +vt 0.484375 0.024914 +vt 0.523438 0.149914 +vt 0.523438 0.024914 +vt 0.484375 0.671166 +vt 0.484375 0.581323 +vt 0.523438 0.671166 +vt 0.523438 0.581323 +vt 0.000000 0.717492 +vt 0.000000 0.686242 +vt 0.068825 0.717492 +vt 0.068825 0.686242 +vt 0.931175 0.717492 +vt 0.931175 0.686242 +vt 1.000000 0.717492 +vt 1.000000 0.686242 +vt 0.484375 0.068825 +vt 0.484375 0.000000 +vt 0.523438 0.068825 +vt 0.523438 0.000000 +vt 0.484375 1.000000 +vt 0.484375 0.931175 +vt 0.523438 1.000000 +vt 0.523438 0.931175 +vt 0.484375 0.717492 +vt 0.484375 0.686242 +vt 0.523438 0.717492 +vt 0.523438 0.686242 +vt 0.000000 0.648480 +vt 0.000000 0.617230 +vt 0.100860 0.648480 +vt 0.100860 0.617230 +vt 0.899140 0.648480 +vt 0.899140 0.617230 +vt 1.000000 0.648480 +vt 1.000000 0.617230 +vt 0.484375 0.100860 +vt 0.523438 0.100860 +vt 0.484375 0.899140 +vt 0.523438 0.899140 +vt 0.020413 0.663117 +vt 0.020413 0.631867 +vt 0.110257 0.663117 +vt 0.110257 0.631867 +vt 0.889743 0.663117 +vt 0.889743 0.631867 +vt 0.979587 0.663117 +vt 0.979587 0.631867 +vt 0.484375 0.110257 +vt 0.484375 0.020413 +vt 0.523438 0.110257 +vt 0.523438 0.020413 +vt 0.484375 0.979587 +vt 0.484375 0.889743 +vt 0.523438 0.979587 +vt 0.523438 0.889743 +s 0 +f 787/1529/65 788/1530/65 789/1531/65 +f 788/1530/65 790/1532/65 789/1531/65 +f 791/1533/66 792/1534/66 793/1535/66 +f 792/1534/66 794/1536/66 793/1535/66 +f 791/1537/67 793/1538/67 789/1539/67 +f 793/1538/67 787/1540/67 789/1539/67 +f 793/1541/68 794/1542/68 787/1543/68 +f 794/1542/68 788/1544/68 787/1543/68 +f 795/1545/65 796/1546/65 797/1547/65 +f 796/1546/65 798/1548/65 797/1547/65 +f 799/1549/66 800/1550/66 801/1551/66 +f 800/1550/66 802/1552/66 801/1551/66 +f 799/1553/69 801/1554/69 797/1555/69 +f 801/1554/69 795/1556/69 797/1555/69 +f 802/1557/70 800/1558/70 796/1559/70 +f 800/1558/70 798/1560/70 796/1559/70 +f 801/1561/71 802/1562/71 795/1563/71 +f 802/1562/71 796/1564/71 795/1563/71 +f 803/1565/65 804/1566/65 805/1567/65 +f 804/1566/65 806/1568/65 805/1567/65 +f 807/1569/66 808/1570/66 809/1571/66 +f 808/1570/66 810/1572/66 809/1571/66 +f 807/1573/67 809/1554/67 805/1574/67 +f 809/1554/67 803/1556/67 805/1574/67 +f 810/1557/72 808/1575/72 804/1559/72 +f 808/1575/72 806/1576/72 804/1559/72 +f 811/1577/65 812/1578/65 813/1579/65 +f 812/1578/65 814/1580/65 813/1579/65 +f 815/1581/66 816/1582/66 817/1583/66 +f 816/1582/66 818/1584/66 817/1583/66 +f 815/1585/67 817/1586/67 813/1587/67 +f 817/1586/67 811/1588/67 813/1587/67 +f 818/1589/72 816/1590/72 812/1591/72 +f 816/1590/72 814/1592/72 812/1591/72 From bad30204cf76c2491ff072b7a7f7b5755418466d Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 30 Jan 2024 17:09:03 +1100 Subject: [PATCH 126/376] Update ntm-animator to include an importer --- ntm-animator.blend | Bin 1019364 -> 1109012 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ntm-animator.blend b/ntm-animator.blend index 31ebe5aa08b005fe9b678f5211d5840c87b6561f..b4094c56615485fcf91b6b3e2af1348c7c0a685d 100644 GIT binary patch delta 45198 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 From 41759d096d7ab84f0afdcf425936a5aabc678bd3 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 30 Jan 2024 18:42:55 +1100 Subject: [PATCH 127/376] Add note to use YZX rotation mode in Blender --- ntm-animator.blend | Bin 1109012 -> 1094484 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ntm-animator.blend b/ntm-animator.blend index b4094c56615485fcf91b6b3e2af1348c7c0a685d..90f7ed2d598580b02b3fd7e020d1fc429d0c8dd8 100644 GIT binary patch delta 127735 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 z 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 From 60de2910332aa3c523acaafc306d1e97c5819ef7 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 30 Jan 2024 19:12:52 +1100 Subject: [PATCH 128/376] Add animations to Cursed 357 --- .../handler/guncfg/Gun357MagnumFactory.java | 5 + .../java/com/hbm/main/ResourceManager.java | 1 + .../item/weapon/ItemRenderWeaponFFCursed.java | 49 +- .../hbm/models/weapons/animations/cursed.json | 1 + .../assets/hbm/models/weapons/cursed.obj | 4166 ++++++++--------- 5 files changed, 2125 insertions(+), 2097 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/animations/cursed.json diff --git a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java index af9388461..29340e37e 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java @@ -129,6 +129,11 @@ public class Gun357MagnumFactory { config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.CURSED_REVOLVER); config.config.add(BulletConfigSyncingUtil.DESH_REVOLVER); + + config.loadAnimations = i -> { + config.animations.put(AnimType.CYCLE, ResourceManager.cursed_anim.get("Fire")); + config.animations.put(AnimType.RELOAD, ResourceManager.cursed_anim.get("Reload")); + }; return config; } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 9fa0e7ee3..b3fdd01a6 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -846,6 +846,7 @@ public class ResourceManager { public static final IModelCustom lilmac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lilmac.obj")).asDisplayList(); public static final HashMap python_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/python.json")); + public static final HashMap cursed_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/cursed.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java index a7d7e585b..a53e3147b 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java @@ -3,6 +3,7 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -39,30 +40,52 @@ public class ItemRenderWeaponFFCursed implements IItemRenderer { case EQUIPPED_FIRST_PERSON: - double s0 = 0.25D; - GL11.glTranslated(0.75, 0.25, 0); + double s0 = 1.5D; + GL11.glTranslated(0.75, 0.5, 0); GL11.glScaled(s0, s0, s0); - GL11.glRotated(170, 0, 1, 0); - GL11.glRotated(25, 0, 0, -1); + GL11.glRotated(100, 0, -1, 0); + GL11.glRotated(20, 1, 0, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + HbmAnimations.applyRelevantTransformation("Body"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_cursed); + ResourceManager.cursed_revolver.renderPart("Body"); + ResourceManager.cursed_revolver.renderPart("Barrel"); + ResourceManager.cursed_revolver.renderPart("Grip"); - break; + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Slide"); + ResourceManager.cursed_revolver.renderPart("Slide"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Magazine"); + ResourceManager.cursed_revolver.renderPart("Magazine"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + + return; case EQUIPPED: - double scale = 0.25D; - GL11.glRotated(105, 0, 1, 0); + double scale = 1.5D; + GL11.glRotated(195, 0, 1, 0); + GL11.glRotated(-10, 0, 0, 1); GL11.glRotated(-10, 1, 0, 0); - GL11.glRotated(10, 0, 0, 1); - GL11.glTranslated(0.2, 0.05, 0.45); + GL11.glTranslated(-0.5, 0.1, -0.25); GL11.glScaled(scale, scale, scale); break; case ENTITY: - double s1 = 0.125D; + double s1 = 1D; GL11.glScaled(s1, s1, s1); - GL11.glTranslated(1, 0, 0); + GL11.glRotated(90, 0, 1, 0); break; @@ -70,10 +93,10 @@ public class ItemRenderWeaponFFCursed implements IItemRenderer { GL11.glEnable(GL11.GL_LIGHTING); - double s = 2.75D; + double s = 17D; GL11.glTranslated(10, 11.5, 0); GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(90, 0, 1, 0); GL11.glScaled(s, s, -s); break; diff --git a/src/main/resources/assets/hbm/models/weapons/animations/cursed.json b/src/main/resources/assets/hbm/models/weapons/animations/cursed.json new file mode 100644 index 000000000..5c355a5aa --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/cursed.json @@ -0,0 +1 @@ +{"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [-0.0, 16.666666666666668], [0.1901400089263916, 50.0], [-0.0, 183.33333333333331]], "y": [[0.0, 0.0], [0.0, 16.666666666666668], [0.040800124406814575, 50.0], [0.0, 183.33333333333331]]}, "rotation_euler": {"x": [[0.0, 33.333333333333336], [38.989947046815615, 66.66666666666666], [0.0, 250.0]]}}, "Slide": {"location": {"z": [[-0.0, 0.0], [0.12989415228366852, 16.666666666666668], [0.12989415228366852, 50.0], [0.09892651438713074, 83.33333333333333], [-0.0, 83.33333333333334]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.0, 100.0], [0.017018239945173264, 116.66666666666669], [-0.09787648171186447, 83.33333333333331], [-0.12292511016130447, 266.66666666666663], [-0.10135655850172043, 133.33333333333337], [-0.1491556018590927, 150.0], [-0.13177432119846344, 400.0], [0.0, 283.33333333333326]], "z": [[-0.0, 0.0], [0.08164123445749283, 100.0], [-0.08178003877401352, 116.66666666666669], [-0.09053938835859299, 83.33333333333331], [-0.05708351731300354, 233.33333333333337], [-0.03883926570415497, 166.66666666666663], [0.0013935839524492621, 150.0], [0.006992057431489229, 400.0], [-0.0, 283.33333333333326]], "y": [[0.0, 0.0], [0.18025973439216614, 100.0], [0.44325628876686096, 116.66666666666669], [0.21647267043590546, 83.33333333333331], [0.27539756894111633, 200.0], [0.10282676666975021, 200.0], [0.16902926564216614, 150.0], [-0.034092918038368225, 400.0], [0.0, 283.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [14.347078728989414, 66.66666666666667], [22.703222659589517, 99.99999999999999], [15.15270124913971, 83.33333333333334], [1.8531396048511795, 100.0], [-18.417429219568255, 266.66666666666674], [-18.417429219568255, 99.99999999999989], [59.33201599901403, 200.0], [72.57186642203102, 216.66666666666663], [62.294070966562636, 116.66666666666674], [54.952785571147, 83.33333333333326], [0.0, 200.0]], "z": [[0.0, 0.0], [-10.592385430902713, 66.66666666666667], [-15.994342771878069, 99.99999999999999], [-11.103182835529408, 83.33333333333334], [-9.371659871492183, 100.0], [-9.698956560103671, 266.66666666666674], [-9.698956560103671, 149.9999999999999], [-50.8729052591287, 150.0], [-75.4402931564371, 216.66666666666663], [-52.8528848919616, 116.66666666666674], [-36.719021845907676, 83.33333333333326], [-0.0, 200.0]], "y": [[0.0, 0.0], [-3.154393948349805, 66.66666666666667], [-4.726022183917031, 99.99999999999999], [-3.3394954899517355, 83.33333333333334], [-2.877424441420499, 100.0], [-5.679812424619238, 266.66666666666674], [-5.679812424619238, 183.33333333333326], [-0.6765985391814631, 116.66666666666663], [21.457408107810238, 216.66666666666663], [34.27835619884117, 116.66666666666674], [43.4361748002513, 83.33333333333326], [0.0, 200.0]]}}, "Magazine": {"location": {"z": [[-0.0, 0.0], [-0.0, 300.0], [0.14596298336982727, 183.33333333333331], [0.41417545080184937, 249.99999999999994], [0.11441206932067871, 200.0000000000001], [-0.0, 133.33333333333337]], "y": [[0.0, 0.0], [0.0, 300.0], [-0.6360859274864197, 183.33333333333331], [-0.6360859274864197, 249.99999999999994], [-0.4159921109676361, 200.0000000000001], [0.0, 133.33333333333337]]}}, "Slide": {"location": {"z": [[-0.0, 0.0], [0.13051199913024902, 16.666666666666668], [0.13051199913024902, 1133.3333333333333], [0.0854932963848114, 66.66666666666652], [-0.0, 50.0]]}}}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/cursed.obj b/src/main/resources/assets/hbm/models/weapons/cursed.obj index 6a0f56ad9..ab664cadc 100644 --- a/src/main/resources/assets/hbm/models/weapons/cursed.obj +++ b/src/main/resources/assets/hbm/models/weapons/cursed.obj @@ -1,1632 +1,293 @@ -# Blender v2.79 (sub 0) OBJ File: 'cursed.blend' +# Blender 4.0.1 # www.blender.org -o Cube.011_Cube.026 -v -3.478718 1.138718 0.014552 -v -3.801282 1.138718 -0.014552 -v -3.478718 1.138718 -0.014552 -v -3.478718 1.461282 0.014552 -v -3.478718 1.423807 0.011171 -v -3.478718 1.423807 -0.011171 -v -3.478718 1.176193 -0.011171 -v -3.478718 1.176193 0.011171 -v -3.801282 1.314552 0.161282 -v -3.478718 1.285448 0.161282 -v -3.478718 1.314552 0.161282 -v -3.801282 1.461282 -0.014552 -v -3.801282 1.423807 -0.011171 -v -3.801282 1.423807 0.011171 -v -3.801282 1.138718 0.014552 -v -3.801282 1.176193 0.011171 -v -3.801282 1.176193 -0.011171 -v -3.801282 1.461282 0.014552 -v -3.478718 1.461282 -0.014552 -v -3.801282 1.314552 -0.161282 -v -3.478718 1.418306 -0.118306 -v -3.478718 1.314552 -0.161282 -v -3.801282 1.418306 -0.118306 -v -3.801282 1.418306 0.118306 -v -3.478718 1.418306 0.118306 -v -3.478718 1.285448 -0.161282 -v -3.801282 1.181694 -0.118306 -v -3.801282 1.285448 -0.161282 -v -3.478718 1.181694 -0.118306 -v -3.801282 1.285448 0.161282 -v -3.478718 1.181694 0.118306 -v -3.801282 1.181694 0.118306 -v -3.478718 1.311171 0.123807 -v -3.801282 1.288829 0.123807 -v -3.801282 1.311171 0.123807 -v -3.801282 1.390817 -0.090817 -v -3.478718 1.311171 -0.123807 -v -3.478718 1.390817 -0.090817 -v -3.478718 1.390817 0.090817 -v -3.801282 1.390817 0.090817 -v -3.478718 1.288829 -0.123807 -v -3.801282 1.209183 -0.090817 -v -3.478718 1.209183 -0.090817 -v -3.801282 1.209183 0.090817 -v -3.478718 1.288829 0.123807 -v -3.478718 1.209183 0.090817 -v -3.801282 1.311171 -0.123807 -v -3.801282 1.288829 -0.123807 -vt 0.588344 0.422031 -vt 0.590616 0.396347 -vt 0.590616 0.422031 -vt 0.816190 0.537904 -vt 0.810508 0.548747 -vt 0.803793 0.545966 -vt 0.767283 0.631233 -vt 0.772965 0.620390 -vt 0.779680 0.623172 -vt 0.404454 0.586481 -vt 0.402136 0.560797 -vt 0.404454 0.560797 -vt 0.556937 0.482545 -vt 0.559591 0.483935 -vt 0.558910 0.485579 -vt 0.579779 0.494514 -vt 0.577125 0.493124 -vt 0.577806 0.491480 -vt 0.587488 0.577888 -vt 0.589806 0.552204 -vt 0.589806 0.577888 -vt 0.589806 0.526521 -vt 0.598067 0.552204 -vt 0.589806 0.552204 -vt 0.598067 0.577888 -vt 0.412715 0.586481 -vt 0.579227 0.552204 -vt 0.579227 0.577888 -vt 0.587488 0.552204 -vt 0.579227 0.526521 -vt 0.587488 0.526521 -vt 0.598051 0.422031 -vt 0.598051 0.396347 -vt 0.402136 0.586481 -vt 0.393875 0.560797 -vt 0.579574 0.396347 -vt 0.579574 0.422031 -vt 0.560711 0.557920 -vt 0.560053 0.548419 -vt 0.560711 0.548419 -vt 0.497042 0.578916 -vt 0.496384 0.569415 -vt 0.497042 0.569415 -vt 0.506272 0.569862 -vt 0.506918 0.579363 -vt 0.506272 0.579363 -vt 0.563051 0.509766 -vt 0.560705 0.500265 -vt 0.563051 0.500265 -vt 0.509408 0.569862 -vt 0.509408 0.579363 -vt 0.499388 0.578916 -vt 0.504161 0.569862 -vt 0.560047 0.500265 -vt 0.557701 0.509766 -vt 0.557701 0.500265 -vt 0.563057 0.557920 -vt 0.494038 0.569415 -vt 0.496384 0.578916 -vt 0.494038 0.578916 -vt 0.557707 0.548419 -vt 0.560053 0.557920 -vt 0.557707 0.557920 -vt 0.560705 0.509766 -vt 0.588344 0.396347 -vt 0.755915 0.565797 -vt 0.745072 0.560115 -vt 0.775747 0.545966 -vt 0.770907 0.534281 -vt 0.807442 0.534281 -vt 0.842024 0.563739 -vt 0.842024 0.600274 -vt 0.830339 0.568579 -vt 0.830339 0.596625 -vt 0.827558 0.603340 -vt 0.838401 0.609022 -vt 0.812566 0.634856 -vt 0.807726 0.623172 -vt 0.776031 0.634856 -vt 0.741449 0.605398 -vt 0.741449 0.568863 -vt 0.753133 0.600559 -vt 0.753133 0.572512 -vt 0.558910 0.492443 -vt 0.563764 0.497297 -vt 0.562373 0.499950 -vt 0.556050 0.493627 -vt 0.556050 0.484686 -vt 0.563260 0.476222 -vt 0.572202 0.476222 -vt 0.564445 0.479082 -vt 0.571309 0.479082 -vt 0.572952 0.479762 -vt 0.574343 0.477109 -vt 0.580666 0.483431 -vt 0.577806 0.484616 -vt 0.580666 0.492373 -vt 0.573456 0.500837 -vt 0.564514 0.500837 -vt 0.572271 0.497977 -vt 0.565407 0.497977 -vt 0.587488 0.552204 -vt 0.598067 0.526521 -vt 0.412715 0.560797 -vt 0.579227 0.552204 -vt 0.393875 0.586481 -vt 0.506918 0.569862 -vt 0.499388 0.569415 -vt 0.504161 0.579363 -vt 0.560047 0.509766 -vt 0.563057 0.548419 -vn 0.0000 -0.9808 0.1951 -vn 0.0000 -0.9808 -0.1951 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.1951 0.9808 -vn 0.0000 -0.1951 0.9808 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.9808 0.1951 -vn 0.0000 0.9808 -0.1951 -vn 0.0000 0.1951 -0.9808 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.1951 -0.9808 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -0.7071 0.7071 -s 1 -f 1/1/1 2/2/2 3/3/2 -f 4/4/3 5/5/3 6/6/3 -f 3/7/3 7/8/3 8/9/3 -f 9/10/4 10/11/5 11/12/4 -f 12/13/6 13/14/6 14/15/6 -f 15/16/6 16/17/6 17/18/6 -f 18/19/7 19/20/8 12/21/8 -f 20/22/9 21/23/10 22/24/9 -f 23/25/10 19/20/8 21/23/10 -f 11/12/4 24/26/11 9/10/4 -f 25/27/11 18/19/7 24/28/11 -f 26/29/12 27/30/13 28/31/12 -f 29/32/13 2/2/2 27/33/13 -f 30/34/5 31/35/14 10/11/5 -f 32/36/14 1/1/1 31/37/14 -f 22/24/9 28/31/12 20/22/9 -f 17/38/7 8/39/8 7/40/7 -f 33/41/12 34/42/9 35/43/12 -f 14/44/2 6/45/1 5/46/2 -f 36/47/14 37/48/5 38/49/14 -f 6/45/1 36/50/14 38/51/14 -f 35/43/12 39/52/13 33/41/12 -f 5/46/2 40/53/13 14/44/2 -f 41/54/4 42/55/11 43/56/11 -f 7/40/7 42/57/11 17/38/7 -f 44/58/10 45/59/9 46/60/10 -f 46/61/10 16/62/8 44/63/10 -f 47/64/5 41/54/4 37/48/5 -f 1/1/1 15/65/1 2/2/2 -f 37/66/3 22/67/3 38/68/3 -f 22/67/3 21/69/3 38/68/3 -f 21/69/3 19/70/3 38/68/3 -f 19/70/3 4/4/3 6/6/3 -f 25/71/3 11/72/3 39/73/3 -f 11/72/3 33/74/3 39/73/3 -f 6/6/3 38/68/3 19/70/3 -f 4/4/3 25/71/3 39/73/3 -f 4/4/3 39/73/3 5/5/3 -f 45/75/3 33/74/3 11/72/3 -f 11/72/3 10/76/3 45/75/3 -f 10/76/3 31/77/3 46/78/3 -f 45/75/3 10/76/3 46/78/3 -f 31/77/3 1/79/3 46/78/3 -f 1/79/3 3/7/3 8/9/3 -f 46/78/3 1/79/3 8/9/3 -f 29/80/3 26/81/3 43/82/3 -f 26/81/3 22/67/3 41/83/3 -f 43/82/3 26/81/3 41/83/3 -f 22/67/3 37/66/3 41/83/3 -f 29/80/3 43/82/3 3/7/3 -f 43/82/3 7/8/3 3/7/3 -f 9/10/4 30/34/5 10/11/5 -f 40/84/6 35/85/6 9/86/6 -f 24/87/6 18/88/6 40/84/6 -f 18/88/6 12/13/6 14/15/6 -f 23/89/6 20/90/6 36/91/6 -f 20/90/6 47/92/6 36/91/6 -f 40/84/6 9/86/6 24/87/6 -f 14/15/6 40/84/6 18/88/6 -f 12/13/6 23/89/6 36/91/6 -f 12/13/6 36/91/6 13/14/6 -f 48/93/6 47/92/6 20/90/6 -f 20/90/6 28/94/6 48/93/6 -f 28/94/6 27/95/6 42/96/6 -f 48/93/6 28/94/6 42/96/6 -f 27/95/6 2/97/6 42/96/6 -f 2/97/6 15/16/6 17/18/6 -f 42/96/6 2/97/6 17/18/6 -f 32/98/6 30/99/6 44/100/6 -f 30/99/6 9/86/6 34/101/6 -f 44/100/6 30/99/6 34/101/6 -f 9/86/6 35/85/6 34/101/6 -f 32/98/6 44/100/6 15/16/6 -f 44/100/6 16/17/6 15/16/6 -f 18/19/7 4/102/7 19/20/8 -f 20/22/9 23/103/10 21/23/10 -f 23/25/10 12/21/8 19/20/8 -f 11/12/4 25/104/11 24/26/11 -f 25/27/11 4/102/7 18/19/7 -f 26/29/12 29/105/13 27/30/13 -f 29/32/13 3/3/2 2/2/2 -f 30/34/5 32/106/14 31/35/14 -f 32/36/14 15/65/1 1/1/1 -f 22/24/9 26/29/12 28/31/12 -f 17/38/7 16/62/8 8/39/8 -f 33/41/12 45/59/9 34/42/9 -f 14/44/2 13/107/1 6/45/1 -f 36/47/14 47/64/5 37/48/5 -f 6/45/1 13/107/1 36/50/14 -f 35/43/12 40/108/13 39/52/13 -f 5/46/2 39/109/13 40/53/13 -f 41/54/4 48/110/4 42/55/11 -f 7/40/7 43/111/11 42/57/11 -f 44/58/10 34/42/9 45/59/9 -f 46/61/10 8/39/8 16/62/8 -f 47/64/5 48/110/4 41/54/4 -o Cube.010_Cube.024 -v -1.174927 0.285547 0.087560 -v -1.174927 0.514453 -0.087560 -v -1.174927 0.285547 -0.087560 -v -1.174927 0.514453 0.087560 -v -1.234927 0.743360 -0.087560 -v -1.115006 0.267911 -0.117540 -v -1.115006 0.530655 -0.117540 -v -0.765073 0.056640 -0.117540 -v -1.170759 0.743360 0.117540 -v -0.765073 0.743360 0.117540 -v -0.765073 0.743360 -0.117540 -v -1.115006 0.530655 0.117540 -v -1.115006 0.267911 0.117540 -v -0.765073 0.056640 0.117540 -v -1.234927 0.076640 0.087560 -v -1.234927 0.076640 -0.087560 -v -1.170726 0.073908 -0.117540 -v -1.170759 0.743360 -0.117540 -v -1.170726 0.073908 0.117540 -v -1.234927 0.743360 0.087560 -vt 0.390067 0.372535 -vt 0.406128 0.365349 -vt 0.406128 0.372535 -vt 0.390067 0.365349 -vt 0.406128 0.358191 -vt 0.790352 0.332178 -vt 0.790352 0.323929 -vt 0.806409 0.338811 -vt 0.698608 0.414236 -vt 0.698608 0.432852 -vt 0.677048 0.432852 -vt 0.770203 0.441932 -vt 0.770203 0.433683 -vt 0.786260 0.427050 -vt 0.743140 0.410105 -vt 0.721579 0.388545 -vt 0.743140 0.388545 -vt 0.745889 0.383929 -vt 0.761950 0.383929 -vt 0.764700 0.386876 -vt 0.350295 0.400769 -vt 0.350102 0.394125 -vt 0.352852 0.394678 -vt 0.330144 0.511110 -vt 0.329953 0.503923 -vt 0.332703 0.504432 -vt 0.350294 0.379751 -vt 0.350102 0.386938 -vt 0.347349 0.379751 -vt 0.352852 0.386429 -vt 0.330146 0.490092 -vt 0.329953 0.496736 -vt 0.327200 0.490178 -vt 0.332703 0.496183 -vt 0.390067 0.379122 -vt 0.406128 0.379122 -vt 0.390067 0.358191 -vt 0.787794 0.317251 -vt 0.806409 0.317251 -vt 0.787795 0.338269 -vt 0.677048 0.414236 -vt 0.679797 0.411291 -vt 0.695858 0.411291 -vt 0.786260 0.448610 -vt 0.767644 0.448610 -vt 0.767646 0.427592 -vt 0.721579 0.410105 -vt 0.764700 0.405498 -vt 0.743140 0.405498 -vt 0.743140 0.386876 -vt 0.347349 0.400683 -vt 0.327200 0.511110 -vn -0.9902 0.1394 0.0000 -vn -0.9918 -0.1278 0.0000 -vn -0.9673 -0.2535 0.0000 -vn -0.2023 0.0306 -0.9788 -vn -0.2051 -0.0283 -0.9783 -vn -0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 0.0000 -vn -0.2051 -0.0283 0.9783 -vn -0.2023 0.0306 0.9788 +o Body +v 0.039030 0.270865 -0.182602 +v -0.039030 0.270865 -0.182602 +v -0.039030 0.270865 -0.049612 +v 0.048496 0.137875 -0.049612 +v -0.048496 0.137875 -0.049612 +v -0.048496 0.137875 -0.182602 +v 0.048496 0.137875 -0.182602 +v 0.048496 0.257886 -0.182602 +v 0.048496 0.257886 -0.049612 +v -0.048496 0.257886 -0.182602 +v -0.048496 0.257886 -0.049612 +v 0.049569 0.280590 -0.050319 +v 0.049569 0.273108 0.054217 +v -0.049569 0.273108 0.054217 +v -0.056483 0.269999 -0.050488 +v -0.056483 0.147028 0.042790 +v -0.056483 0.137805 -0.036642 +v -0.049569 0.280590 -0.050319 +v 0.056483 0.269999 -0.050488 +v 0.056483 0.113015 0.066739 +v -0.056483 0.113015 0.066739 +v -0.056483 0.110740 0.072738 +v 0.052553 0.210653 0.115466 +v -0.052553 0.210653 0.115466 +v -0.049569 0.215450 0.117517 +v 0.052553 0.115536 0.074789 +v 0.052553 0.118481 0.067903 +v 0.052553 0.213598 0.108580 +v 0.056483 0.147028 0.042790 +v 0.056483 0.110740 0.072738 +v 0.056483 0.206509 0.113693 +v 0.049569 0.215450 0.117517 +v 0.056483 0.137805 -0.036642 +v 0.056483 0.137656 -0.052596 +v 0.056483 0.127617 0.025928 +v -0.056483 0.127617 0.025928 +v -0.056483 0.206509 0.113693 +v -0.052553 0.115536 0.074789 +v -0.052553 0.213598 0.108580 +v -0.052553 0.118481 0.067903 +v 0.056483 0.262485 0.053254 +v -0.056484 0.262485 0.053254 +v 0.054976 0.110605 0.067119 +v 0.054976 0.097434 0.017005 +v 0.048309 0.097434 0.017005 +v -0.040425 -0.171169 -0.050457 +v 0.040425 -0.171169 -0.050457 +v 0.040425 0.137547 -0.132337 +v -0.054976 0.137698 -0.106903 +v 0.054976 0.138185 -0.025200 +v -0.054976 0.138185 -0.025200 +v 0.054976 -0.076166 -0.021181 +v 0.048309 -0.083769 -0.018789 +v 0.048309 -0.076166 -0.021181 +v -0.048309 -0.009356 -0.032415 +v -0.048309 0.110605 0.067119 +v -0.048309 -0.025374 -0.031131 +v 0.054976 -0.170719 -0.025102 +v 0.040425 -0.244821 -0.040275 +v -0.054976 0.097435 0.017007 +v -0.054976 0.110605 0.067119 +v -0.054976 -0.170125 0.008377 +v -0.054976 -0.076166 -0.021180 +v -0.048309 -0.083769 -0.018789 +v 0.048309 0.030025 -0.030106 +v 0.048309 0.044544 -0.026498 +v 0.054976 0.137698 -0.106903 +v 0.054976 0.037257 -0.029682 +v 0.054976 0.077314 -0.012178 +v 0.054976 0.115945 0.065739 +v 0.048309 0.110605 0.067119 +v -0.054976 0.129257 0.026818 +v 0.054976 0.129257 0.026818 +v -0.054976 -0.016638 -0.032842 +v -0.048309 -0.016638 -0.032842 +v -0.054976 0.037258 -0.029680 +v -0.048309 0.037258 -0.029680 +v -0.048309 0.030638 -0.030069 +v -0.048309 0.042828 -0.027246 +v -0.054976 0.077314 -0.012176 +v -0.048309 0.077314 -0.012176 +v 0.048309 -0.024239 -0.031355 +v 0.048309 -0.016638 -0.032844 +v 0.054976 -0.016638 -0.032844 +v 0.048309 0.037257 -0.029682 +v 0.048309 0.077314 -0.012178 +v -0.054976 -0.170719 -0.025102 +v 0.048309 -0.170125 0.008377 +v 0.054976 -0.170125 0.008377 +v 0.054976 -0.243777 0.018558 +v -0.048309 -0.083374 -0.018913 +v -0.048309 -0.069301 -0.022525 +v -0.048309 -0.076166 -0.021180 +v 0.048309 -0.068273 -0.022727 +v 0.048309 -0.008551 -0.032369 +v -0.048309 -0.080475 0.114660 +v -0.054976 -0.087095 0.114272 +v -0.048309 -0.085555 -0.001705 +v -0.048309 -0.092665 0.111837 +v 0.048309 -0.087359 -0.001395 +v 0.054976 -0.087095 0.114273 +v 0.048309 -0.094382 0.111089 +v 0.048309 -0.079862 0.114697 +v -0.048309 -0.020475 0.097993 +v -0.054976 -0.027095 0.097605 +v -0.048309 -0.025555 -0.018372 +v -0.048309 -0.032665 0.095171 +v 0.048309 -0.027359 -0.018062 +v 0.054976 -0.027095 0.097607 +v 0.048309 -0.034382 0.094422 +v 0.048309 -0.019863 0.098031 +v -0.048309 0.029525 0.081326 +v -0.054976 0.022905 0.080938 +v -0.048309 0.024445 -0.035038 +v -0.048309 0.017335 0.078504 +v 0.048309 0.022641 -0.034728 +v 0.054976 0.022905 0.080940 +v 0.048309 0.015618 0.077755 +v 0.048309 0.030138 0.081364 +v -0.030080 -0.025485 -0.404784 +v 0.030080 -0.025485 -0.404784 +v 0.030080 0.137827 -0.404784 +v -0.030080 0.137827 -0.404784 +v 0.030080 0.137827 -0.088828 +v -0.030080 0.034929 -0.324529 +v -0.030080 0.077413 -0.324529 +v 0.030080 0.034929 -0.128143 +v 0.030080 0.001589 -0.088828 +v 0.030080 0.077413 -0.128143 +v -0.030080 -0.025485 -0.135682 +v 0.030080 -0.025485 -0.135682 +v -0.030080 0.137827 -0.088828 +v -0.030080 0.077413 -0.128143 +v -0.030080 0.001589 -0.088828 +v -0.030080 0.034929 -0.128143 +v 0.030080 -0.002767 -0.259293 +v 0.030080 -0.002767 -0.193379 +v -0.030080 -0.002767 -0.193379 +v 0.030080 0.034929 -0.324529 +v 0.030080 0.115110 -0.259293 +v -0.030080 0.115110 -0.259293 +v -0.030080 0.115110 -0.193379 +v 0.030080 0.008274 -0.305422 +v -0.030080 -0.002767 -0.259293 +v -0.030080 0.008274 -0.305422 +v 0.030080 0.104069 -0.305422 +v -0.030080 0.104069 -0.305422 +v 0.030080 0.077413 -0.324529 +v 0.030080 0.104069 -0.147250 +v -0.030080 0.104069 -0.147250 +v 0.030080 0.115110 -0.193379 +v 0.030080 0.008274 -0.147250 +v -0.030080 0.008274 -0.147250 +v 0.030080 -0.006341 -0.121959 +v 0.030080 -0.017555 -0.102551 +v -0.030080 -0.006341 -0.121959 +v -0.030080 -0.017555 -0.102551 +v -0.024624 0.275376 0.024624 +v -0.024624 0.294019 0.009987 +v 0.024624 0.294019 0.009987 +v 0.024624 0.324625 0.009850 +v 0.015000 0.324625 0.009850 +v 0.015000 0.324625 -0.006291 +v -0.024624 0.324625 -0.006291 +v -0.015000 0.324625 -0.006291 +v -0.015000 0.324625 0.009850 +v 0.024624 0.275376 -0.006291 +v 0.015000 0.301667 -0.006291 +v -0.024624 0.275376 -0.006291 +v 0.024624 0.275376 0.009850 +v -0.024624 0.275376 0.009850 +v -0.015000 0.301667 0.009952 +v 0.015000 0.301667 0.009952 +v -0.015000 0.301667 -0.006291 +v -0.054976 -0.243777 0.018558 +v -0.048309 -0.243777 0.018558 +v -0.040425 -0.244821 -0.040275 +v -0.054976 -0.244371 -0.014920 +v -0.048309 -0.170125 0.008377 +v 0.048309 -0.243777 0.018558 +v 0.048309 -0.211199 0.142519 +v -0.048309 -0.137546 0.132337 +v -0.048309 -0.211199 0.142519 +v 0.048309 -0.137546 0.132337 +v 0.054976 -0.244371 -0.014920 +v 0.039030 0.270865 -0.049612 +v -0.056483 0.137656 -0.052596 +v -0.040425 0.137547 -0.132337 +v -0.048309 0.097435 0.017007 +v -0.054976 0.115945 0.065739 +v 0.024624 0.275376 0.024624 +v 0.024624 0.324625 -0.006291 +v -0.024624 0.324625 0.009850 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 vn -0.0000 -0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn -0.0425 -0.9991 -0.0000 -vn -0.2440 0.0701 -0.9672 -vn -0.4337 0.0552 -0.8994 -vn -0.2494 -0.0654 0.9662 -vn -0.4357 -0.0512 0.8986 -vn -0.2494 -0.0654 -0.9662 -vn -0.4357 -0.0512 -0.8986 -vn -0.4207 -0.1103 -0.9005 -vn -0.2440 0.0701 0.9672 -vn -0.4337 0.0552 0.8994 -vn -0.4159 0.1195 0.9015 -vn -0.9611 0.2760 0.0000 -vn -0.4159 0.1195 -0.9015 -vn -0.4207 -0.1103 0.9005 -s 1 -f 49/112/15 50/113/16 51/114/15 -f 52/115/16 53/116/17 50/113/16 -f 54/117/18 55/118/19 56/119/20 -f 57/120/21 58/121/21 59/122/21 -f 60/123/22 61/124/23 62/125/24 -f 58/126/25 56/127/25 59/128/25 -f 63/129/26 64/130/26 65/131/26 -f 65/132/27 51/133/28 54/134/18 -f 57/135/29 52/136/30 60/137/22 -f 66/138/31 50/139/32 53/140/33 -f 55/141/19 51/133/28 50/139/32 -f 67/142/34 49/143/35 63/144/36 -f 60/137/22 49/143/35 61/145/23 -f 63/146/37 51/114/15 64/147/37 -f 49/112/15 52/115/16 50/113/16 -f 52/115/16 68/148/17 53/116/17 -f 55/118/19 66/149/31 59/150/20 -f 59/150/20 56/119/20 55/118/19 -f 56/119/20 65/151/27 54/117/18 -f 59/122/21 66/152/21 57/120/21 -f 66/152/21 53/153/21 57/120/21 -f 53/153/21 68/154/21 57/120/21 -f 62/125/24 58/155/24 60/123/22 -f 58/155/24 57/156/29 60/123/22 -f 61/124/23 67/157/34 62/125/24 -f 58/126/25 62/158/25 56/127/25 -f 65/131/26 56/159/26 62/160/26 -f 62/160/26 67/161/26 65/131/26 -f 67/161/26 63/129/26 65/131/26 -f 65/132/27 64/162/38 51/133/28 -f 57/135/29 68/163/39 52/136/30 -f 66/138/31 55/141/19 50/139/32 -f 55/141/19 54/134/18 51/133/28 -f 67/142/34 61/145/23 49/143/35 -f 60/137/22 52/136/30 49/143/35 -f 63/146/37 49/112/15 51/114/15 -o Cube.007_Cube.013 -v -2.844798 -0.068282 0.199844 -v -3.796744 -0.068282 -0.199844 -v -2.844798 -0.068282 -0.199844 -v -2.844798 -0.098655 0.199844 -v -3.796744 -0.098655 -0.199844 -v -2.844798 -0.098655 -0.199844 -v -3.796744 -0.068282 0.199844 -v -3.796744 -0.098655 0.199844 -v -3.801281 0.438718 0.161282 -v -3.801281 0.761282 -0.161282 -v -3.801281 0.438718 -0.161282 -v -3.801281 0.761282 0.161282 -v -3.478718 0.761282 -0.161282 -v -3.478718 0.761282 0.161282 -v -3.478718 0.438718 -0.161282 -v -3.478718 0.438718 0.161282 -v -3.802363 0.027636 0.121162 -v -3.802363 0.312364 -0.121162 -v -3.802363 0.027636 -0.121162 -v -3.802363 0.312364 0.121162 -v -3.517636 0.312364 -0.121162 -v -3.517636 0.312364 0.121162 -v -3.517636 0.027636 -0.121162 -v -3.517636 0.027636 0.121162 -v -3.795573 0.499668 0.015063 -v -3.804427 0.499668 -0.015063 -v -3.795573 0.499668 -0.015063 -v -3.795573 0.524643 -0.075357 -v -3.795573 0.584937 -0.100331 -v -3.795573 0.675357 -0.075357 -v -3.804427 0.615063 0.100332 -v -3.795573 0.584937 0.100332 -v -3.795573 0.615063 0.100332 -v -3.804427 0.675357 -0.075357 -v -3.804427 0.615063 -0.100331 -v -3.804427 0.524643 -0.075357 -v -3.804427 0.700332 0.015063 -v -3.795573 0.700332 -0.015063 -v -3.804427 0.700332 -0.015063 -v -3.795573 0.615063 -0.100331 -v -3.804427 0.675357 0.075357 -v -3.795573 0.675357 0.075357 -v -3.804427 0.584937 -0.100331 -v -3.804427 0.584937 0.100332 -v -3.795573 0.524643 0.075357 -v -3.804427 0.524643 0.075357 -v -3.804427 0.499668 0.015063 -v -3.795573 0.700332 0.015063 -v -3.796744 0.814074 0.286160 -v -2.444716 0.814074 -0.286160 -v -3.796744 0.814074 -0.286160 -v -2.214679 0.340615 0.245095 -v -2.214679 0.306616 0.269747 -v -2.214679 -0.098655 0.286160 -v -3.796744 0.408802 -0.269747 -v -3.796744 0.371850 -0.242954 -v -2.610195 -0.041399 0.286160 -v -2.610195 -0.155912 0.286160 -v -3.796744 0.408802 -0.286160 -v -2.444716 0.814074 0.286160 -v -3.796744 0.408802 0.286160 -v -2.247809 0.408802 0.286160 -v -2.229855 0.371850 0.242954 -v -2.216114 0.343568 0.242954 -v -2.216114 0.343568 -0.242954 -v -3.796744 0.408802 0.269747 -v -3.796744 0.371850 0.242954 -v -2.247809 0.408802 0.269747 -v -3.796744 0.343568 0.242954 -v -2.247809 0.408802 -0.269747 -v -2.247809 0.408802 -0.286160 -v -3.796744 0.306616 0.269747 -v -2.214679 0.306616 0.286160 -v -3.796744 0.306616 -0.269747 -v -2.214679 0.306616 -0.269747 -v -2.229855 0.371850 -0.242954 -v -3.796744 0.343568 -0.242954 -v -2.214679 0.306616 -0.286160 -v -2.214679 -0.098655 -0.286160 -v -2.610195 -0.041399 -0.286160 -v -2.214679 -0.198656 0.249967 -v -2.610195 -0.198656 -0.249967 -v -2.214679 -0.198656 -0.249967 -v -3.796744 0.306616 -0.286160 -v -2.610195 -0.098655 -0.250258 -v -2.610195 -0.155912 -0.286160 -v -2.610195 -0.098655 0.250258 -v -3.796744 -0.098655 -0.250258 -v -3.796744 -0.041399 -0.286160 -v -3.796744 -0.041399 0.286160 -v -3.796744 -0.098655 0.250258 -v -2.214679 -0.140935 0.286160 -v -2.610195 -0.198656 0.249967 -v -2.214679 0.340615 -0.245095 -v -3.796744 0.306616 0.286160 -v -2.214679 -0.140935 -0.286160 -vt 0.497093 0.546556 -vt 0.489787 0.555589 -vt 0.489787 0.546505 -vt 0.558621 0.611549 -vt 0.559091 0.621426 -vt 0.558621 0.621426 -vt 0.489470 0.555592 -vt 0.489470 0.546508 -vt 0.469847 0.629818 -vt 0.469377 0.638902 -vt 0.469377 0.629818 -vt 0.840276 0.397745 -vt 0.812280 0.369750 -vt 0.840276 0.369750 -vt 0.672301 0.547852 -vt 0.644305 0.519856 -vt 0.672301 0.519856 -vt 0.758120 0.546311 -vt 0.730125 0.518315 -vt 0.758120 0.518315 -vt 0.728292 0.544994 -vt 0.700297 0.516998 -vt 0.728292 0.516998 -vt 0.786116 0.512334 -vt 0.758120 0.540329 -vt 0.758120 0.512334 -vt 0.814112 0.512322 -vt 0.786116 0.540318 -vt 0.786116 0.512322 -vt 0.903571 0.559623 -vt 0.865925 0.521977 -vt 0.903571 0.521977 -vt 0.903571 0.521927 -vt 0.865925 0.484281 -vt 0.903571 0.484281 -vt 0.941217 0.559573 -vt 0.903571 0.521927 -vt 0.941217 0.521927 -vt 0.901107 0.443199 -vt 0.863461 0.405553 -vt 0.901107 0.405553 -vt 0.901107 0.367907 -vt 0.863461 0.367907 -vt 0.712878 0.532108 -vt 0.675232 0.569754 -vt 0.675232 0.532108 -vt 0.894503 0.935849 -vt 0.896659 0.921485 -vt 0.896659 0.935849 -vt 0.962007 0.841270 -vt 0.962007 0.836599 -vt 0.966136 0.831303 -vt 0.911963 0.936525 -vt 0.909807 0.922161 -vt 0.911963 0.922161 -vt 0.962007 0.827174 -vt 0.962007 0.822503 -vt 0.966136 0.817207 -vt 0.924171 0.933456 -vt 0.926328 0.919092 -vt 0.926328 0.933456 -vt 0.867931 0.923275 -vt 0.872247 0.937640 -vt 0.867931 0.937640 -vt 0.930644 0.933456 -vt 0.930644 0.919092 -vt 0.916280 0.936525 -vt 0.919855 0.919092 -vt 0.919855 0.933456 -vt 0.865775 0.937640 -vt 0.861459 0.923275 -vt 0.865775 0.923275 -vt 0.900975 0.935849 -vt 0.900975 0.921485 -vt 0.909807 0.936525 -vt 0.905491 0.922161 -vt 0.890187 0.921485 -vt 0.890187 0.935849 -vt 0.497093 0.555641 -vt 0.559091 0.611549 -vt 0.469847 0.638902 -vt 0.812280 0.397745 -vt 0.644305 0.547852 -vt 0.730125 0.546311 -vt 0.700297 0.544994 -vt 0.786116 0.540329 -vt 0.814112 0.540318 -vt 0.865925 0.559623 -vt 0.865925 0.521927 -vt 0.903571 0.559573 -vt 0.863461 0.443199 -vt 0.712878 0.569754 -vt 0.894503 0.921485 -vt 0.962833 0.834606 -vt 0.970808 0.831303 -vt 0.965311 0.844574 -vt 0.972800 0.832128 -vt 0.976103 0.835432 -vt 0.971975 0.845399 -vt 0.976103 0.840103 -vt 0.975278 0.842096 -vt 0.967303 0.845399 -vt 0.962833 0.820510 -vt 0.970808 0.817207 -vt 0.965311 0.830478 -vt 0.972800 0.818032 -vt 0.976103 0.821336 -vt 0.971975 0.831303 -vt 0.976103 0.826007 -vt 0.975278 0.828000 -vt 0.967303 0.831303 -vt 0.924171 0.919092 -vt 0.872247 0.923275 -vt 0.916280 0.922161 -vt 0.861459 0.937640 -vt 0.905491 0.936525 -vt 0.572622 0.567859 -vt 0.583320 0.554957 -vt 0.583320 0.567859 -vt 0.488526 0.563967 -vt 0.487917 0.563443 -vt 0.487511 0.557192 -vt 0.479648 0.573331 -vt 0.480220 0.573993 -vt 0.473368 0.572925 -vt 0.498951 0.544326 -vt 0.497757 0.544336 -vt 0.498354 0.540557 -vt 0.480222 0.617553 -vt 0.486502 0.630456 -vt 0.480222 0.630456 -vt 0.530689 0.627844 -vt 0.526463 0.640782 -vt 0.526463 0.626001 -vt 0.488579 0.564463 -vt 0.488579 0.564014 -vt 0.500587 0.564014 -vt 0.526163 0.640780 -vt 0.525288 0.640780 -vt 0.526163 0.625999 -vt 0.591673 0.554640 -vt 0.590868 0.554640 -vt 0.590798 0.554627 -vt 0.524993 0.640782 -vt 0.525288 0.625827 -vt 0.592139 0.596801 -vt 0.591839 0.611580 -vt 0.591839 0.596799 -vt 0.591673 0.539543 -vt 0.591980 0.554640 -vt 0.590256 0.596799 -vt 0.590828 0.611883 -vt 0.590256 0.611897 -vt 0.591267 0.596799 -vt 0.591839 0.611580 -vt 0.591267 0.611752 -vt 0.590828 0.596799 -vt 0.584740 0.640183 -vt 0.578460 0.640183 -vt 0.579347 0.636409 -vt 0.496650 0.540561 -vt 0.487511 0.544271 -vt 0.487511 0.540497 -vt 0.502261 0.608318 -vt 0.502568 0.593221 -vt 0.502568 0.608318 -vt 0.496363 0.628942 -vt 0.495475 0.628055 -vt 0.497250 0.628055 -vt 0.495475 0.642198 -vt 0.496363 0.641311 -vt 0.497250 0.642198 -vt 0.578460 0.625086 -vt 0.579347 0.625086 -vt 0.497698 0.544327 -vt 0.498951 0.555649 -vt 0.497698 0.555650 -vt 0.488549 0.544262 -vt 0.487511 0.556540 -vt 0.488406 0.555650 -vt 0.496650 0.544336 -vt 0.577573 0.636409 -vt 0.576911 0.640183 -vt 0.576911 0.636409 -vt 0.497912 0.628949 -vt 0.497912 0.641304 -vt 0.572622 0.554957 -vt 0.487511 0.563443 -vt 0.501655 0.557192 -vt 0.500640 0.563967 -vt 0.501655 0.563443 -vt 0.501249 0.563443 -vt 0.487511 0.584936 -vt 0.487511 0.586181 -vt 0.487041 0.584936 -vt 0.486624 0.587069 -vt 0.481231 0.587069 -vt 0.481231 0.586663 -vt 0.480659 0.586001 -vt 0.487511 0.573812 -vt 0.487511 0.575058 -vt 0.487041 0.575058 -vt 0.486624 0.572925 -vt 0.481231 0.573331 -vt 0.481231 0.572925 -vt 0.480659 0.573993 -vt 0.480220 0.586001 -vt 0.479648 0.586663 -vt 0.479648 0.587069 -vt 0.473368 0.587069 -vt 0.479648 0.572925 -vt 0.497913 0.540561 -vt 0.502580 0.540521 -vt 0.502580 0.555618 -vt 0.486502 0.615674 -vt 0.530689 0.640746 -vt 0.501655 0.565049 -vt 0.501655 0.571481 -vt 0.501249 0.565049 -vt 0.487511 0.571481 -vt 0.500587 0.564463 -vt 0.487511 0.565049 -vt 0.487917 0.565049 -vt 0.590798 0.539543 -vt 0.524993 0.625699 -vt 0.592139 0.611582 -vt 0.591980 0.539543 -vt 0.590783 0.611897 -vt 0.591839 0.596799 -vt 0.584740 0.625086 -vt 0.577805 0.640183 -vt 0.502261 0.593221 -vt 0.578460 0.636409 -vt 0.488549 0.555585 -vt 0.496776 0.546559 -vt 0.496776 0.555643 -vt 0.500760 0.555650 -vt 0.501655 0.556540 -vn 0.0000 -1.0000 -0.0000 -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 1.0000 0.0000 0.0000 -vn 0.0000 0.3827 -0.9239 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 -0.9239 0.3827 -vn 0.9903 0.1390 0.0000 -vn 0.8995 0.4370 0.0000 -vn 0.8994 0.4371 0.0000 -vn 0.0000 -0.5870 0.8096 -vn 0.0000 0.5870 0.8096 -vn 0.0001 0.5869 0.8096 -vn 0.0000 0.5870 -0.8096 -vn 0.0000 -0.5870 -0.8096 -vn 0.0000 -0.5312 -0.8472 -vn 0.0000 -0.5312 0.8472 -vn 0.0183 -0.5419 0.8403 -vn 0.0022 -0.6345 0.7729 -vn 0.0000 -0.6462 0.7632 -vn 0.0022 -0.6345 -0.7729 -vn 0.0183 -0.5419 -0.8403 -vn 0.0000 -0.6462 -0.7632 -vn 0.0001 0.5869 -0.8096 -vn 0.0201 -0.5311 0.8471 -vn 0.0201 -0.5311 -0.8471 -s off -f 69/164/40 70/165/40 71/166/40 -f 71/167/41 72/168/41 69/169/41 -f 71/166/42 73/170/42 74/171/42 -f 75/172/43 72/173/43 76/174/43 -f 77/175/41 78/176/41 79/177/41 -f 80/178/44 81/179/44 78/180/44 -f 82/181/45 83/182/45 81/183/45 -f 84/184/40 79/185/40 83/186/40 -f 81/187/43 79/188/43 78/189/43 -f 80/190/42 84/191/42 82/192/42 -f 85/193/41 86/194/41 87/195/41 -f 88/196/44 89/197/44 86/198/44 -f 90/199/45 91/200/45 89/201/45 -f 92/202/40 87/203/40 91/204/40 -f 89/205/43 87/203/43 86/206/43 -f 88/207/42 92/208/42 90/209/42 -f 93/210/40 94/211/40 95/212/40 -f 96/213/45 97/214/45 98/215/45 -f 99/216/42 100/217/42 101/218/42 -f 102/219/41 103/220/41 104/221/41 -f 105/222/44 106/223/44 107/224/44 -f 103/225/46 98/226/46 108/227/46 -f 102/228/47 106/223/47 98/229/47 -f 101/218/48 109/230/48 99/216/48 -f 110/231/49 105/222/49 109/232/49 -f 97/233/50 104/234/50 111/235/50 -f 96/236/51 94/211/51 104/237/51 -f 112/238/52 113/239/52 100/217/52 -f 114/240/53 93/210/53 113/241/53 -f 108/227/43 111/235/43 103/225/43 -f 69/164/40 75/242/40 70/165/40 -f 71/167/41 74/243/41 72/168/41 -f 71/166/42 70/165/42 73/170/42 -f 75/172/43 69/244/43 72/173/43 -f 77/175/41 80/245/41 78/176/41 -f 80/178/44 82/246/44 81/179/44 -f 82/181/45 84/247/45 83/182/45 -f 84/184/40 77/248/40 79/185/40 -f 81/187/43 83/249/43 79/188/43 -f 80/190/42 77/250/42 84/191/42 -f 85/193/41 88/251/41 86/194/41 -f 88/196/44 90/252/44 89/197/44 -f 90/199/45 92/253/45 91/200/45 -f 92/202/40 85/254/40 87/203/40 -f 89/205/43 91/204/43 87/203/43 -f 88/207/42 85/255/42 92/208/42 -f 93/210/40 115/256/40 94/211/40 -f 97/214/45 108/257/45 98/215/45 -f 98/215/45 106/258/45 95/259/45 -f 106/258/45 116/260/45 95/259/45 -f 116/260/45 110/261/45 113/262/45 -f 110/261/45 101/263/45 113/262/45 -f 101/263/45 100/264/45 113/262/45 -f 113/262/45 93/265/45 116/260/45 -f 93/265/45 95/259/45 116/260/45 -f 95/259/45 96/213/45 98/215/45 -f 99/216/42 112/238/42 100/217/42 -f 103/220/41 111/266/41 104/221/41 -f 104/221/41 94/267/41 107/268/41 -f 94/267/41 115/269/41 107/268/41 -f 115/269/41 114/270/41 109/271/41 -f 114/270/41 112/272/41 109/271/41 -f 112/272/41 99/273/41 109/271/41 -f 109/271/41 105/274/41 115/269/41 -f 105/274/41 107/268/41 115/269/41 -f 107/268/41 102/219/41 104/221/41 -f 105/222/44 116/275/44 106/223/44 -f 103/225/46 102/276/46 98/226/46 -f 102/228/47 107/224/47 106/223/47 -f 101/218/48 110/277/48 109/230/48 -f 110/231/49 116/275/49 105/222/49 -f 97/233/50 96/278/50 104/234/50 -f 96/236/51 95/212/51 94/211/51 -f 112/238/52 114/279/52 113/239/52 -f 114/240/53 115/256/53 93/210/53 -f 108/227/43 97/233/43 111/235/43 -s 1 -f 117/280/44 118/281/44 119/282/44 -f 120/283/54 121/284/45 122/285/45 -f 123/286/41 124/287/41 119/288/41 -f 125/289/42 126/290/42 122/291/42 -f 118/292/43 127/293/43 119/294/43 -f 128/295/42 129/296/42 130/297/42 -f 131/298/55 132/299/56 133/300/56 -f 134/301/40 130/297/40 129/296/40 -f 135/302/57 136/303/57 134/301/57 -f 121/304/58 120/305/59 132/306/58 -f 137/307/42 131/308/42 135/302/42 -f 138/309/40 127/310/40 139/311/40 -f 140/312/44 141/313/44 121/304/44 -f 142/314/60 133/315/60 143/316/60 -f 124/317/61 138/318/61 144/319/61 -f 145/320/43 144/319/43 133/315/43 -f 146/321/43 147/322/43 148/323/43 -f 149/324/40 150/325/40 151/326/40 -f 142/327/44 146/328/44 152/329/44 -f 153/330/41 148/331/41 154/332/41 -f 125/333/41 155/334/41 126/335/41 -f 148/323/62 156/336/62 157/337/62 -f 155/338/63 158/339/63 159/340/63 -f 153/341/40 155/338/40 74/171/40 -f 122/285/45 160/342/45 149/343/45 -f 149/324/64 126/290/65 161/344/66 -f 154/345/67 151/346/68 150/347/69 -f 150/348/41 161/349/41 153/330/41 -f 117/280/44 128/350/44 118/281/44 -f 121/284/45 141/351/45 122/285/45 -f 122/285/45 147/352/45 162/353/54 -f 147/352/45 146/354/45 143/355/45 -f 143/355/45 162/353/54 147/352/45 -f 162/353/54 120/283/54 122/285/45 -f 76/356/41 159/357/41 75/358/41 -f 159/357/41 158/359/41 75/358/41 -f 158/359/41 163/360/41 140/361/41 -f 158/359/41 140/361/41 75/358/41 -f 140/361/41 137/362/41 75/358/41 -f 156/363/41 73/364/41 70/365/41 -f 70/365/41 75/358/41 137/362/41 -f 157/366/41 156/363/41 70/365/41 -f 142/367/41 152/368/41 157/366/41 -f 145/369/41 142/367/41 70/365/41 -f 142/367/41 157/366/41 70/365/41 -f 70/365/41 137/362/41 145/369/41 -f 137/362/41 135/370/41 145/369/41 -f 134/371/41 129/372/41 117/373/41 -f 145/369/41 135/370/41 124/287/41 -f 135/370/41 134/371/41 117/373/41 -f 124/287/41 135/370/41 117/373/41 -f 117/373/41 119/288/41 124/287/41 -f 119/288/41 127/374/41 123/286/41 -f 126/290/42 160/375/42 122/291/42 -f 122/291/42 141/376/42 125/289/42 -f 141/376/42 163/377/42 125/289/42 -f 163/377/42 158/339/42 125/289/42 -f 118/292/43 139/378/43 127/293/43 -f 128/295/42 117/379/42 129/296/42 -f 139/380/55 118/381/55 138/382/55 -f 118/381/55 128/383/55 144/384/55 -f 138/382/55 118/381/55 144/384/55 -f 128/383/55 130/385/55 136/386/55 -f 128/383/55 136/386/55 131/298/55 -f 144/384/55 128/383/55 131/298/55 -f 120/283/54 162/353/54 133/300/56 -f 133/300/56 144/384/55 131/298/55 -f 132/299/56 120/283/54 133/300/56 -f 134/301/40 136/303/40 130/297/40 -f 135/302/57 131/308/57 136/303/57 -f 137/387/58 140/312/58 132/306/58 -f 140/312/58 121/304/58 132/306/58 -f 137/307/42 132/388/42 131/308/42 -f 138/309/40 123/389/40 127/310/40 -f 140/312/44 163/390/44 141/313/44 -f 145/320/60 133/315/60 142/314/60 -f 133/315/60 162/391/70 143/316/60 -f 124/317/61 123/392/61 138/318/61 -f 145/320/43 124/317/43 144/319/43 -f 157/337/43 152/393/43 148/323/43 -f 152/393/43 146/321/43 148/323/43 -f 147/322/43 164/394/43 154/345/43 -f 147/322/43 154/345/43 148/323/43 -f 149/324/40 161/344/40 150/325/40 -f 142/327/44 143/395/44 146/328/44 -f 148/323/62 153/396/62 156/336/62 -f 155/338/63 125/289/63 158/339/63 -f 74/171/40 73/170/40 156/397/40 -f 155/338/40 159/340/40 72/398/40 -f 159/340/40 76/399/40 72/398/40 -f 74/171/40 156/397/40 153/341/40 -f 155/338/40 72/398/40 74/171/40 -f 149/343/45 151/400/45 147/352/45 -f 151/400/45 164/401/45 147/352/45 -f 147/352/45 122/285/45 149/343/45 -f 149/324/64 160/375/71 126/290/65 -f 154/345/67 164/394/72 151/346/68 -f 126/335/41 155/334/41 161/349/41 -f 155/334/41 153/330/41 161/349/41 -f 153/330/41 154/332/41 150/348/41 -o Cube.003 -v -3.462471 1.477528 0.177528 -v -3.798125 1.477528 -0.177528 -v -3.462471 1.477528 -0.177528 -v -3.462471 1.122472 -0.177528 -v -3.798125 1.122472 0.177528 -v -3.462471 1.122472 0.177528 -v -3.798125 1.233237 -0.177528 -v -3.798125 1.377309 0.177528 -v -3.798125 1.477528 0.177528 -v -3.798125 1.122472 -0.177528 -v -1.089541 1.688519 -0.192709 -v -1.089541 1.738519 0.192709 -v -1.089541 1.688519 0.192709 -v -2.308404 0.730725 0.338886 -v -2.308404 0.960725 0.338886 -v -2.308404 0.830725 -0.235083 -v -1.089541 0.830725 -0.338886 -v -1.089541 1.566796 -0.338886 -v -1.089541 0.730725 0.338886 -v -2.308404 0.730725 -0.338886 -v -1.089541 0.730725 -0.338886 -v -1.089541 0.830725 0.338886 -v -3.798125 0.830725 0.238886 -v -2.308404 0.730725 0.238886 -v -2.308404 0.830725 0.238886 -v -3.136166 1.377309 0.338886 -v -1.089541 1.566796 0.338886 -v -2.308404 0.830725 -0.238886 -v -3.798125 0.730725 -0.238886 -v -3.798125 0.830725 -0.238886 -v -2.308404 0.960725 -0.338886 -v -3.798125 0.962099 -0.338886 -v -3.136166 1.233237 -0.338886 -v -3.798125 0.730725 0.238886 -v -2.308404 0.730725 -0.238886 -v -3.798125 1.566796 -0.338886 -v -3.798125 1.688519 0.192709 -v -3.798125 1.566796 0.338886 -v -3.798125 1.738519 0.192709 -v -1.089541 1.738519 -0.192709 -v -3.798125 1.738519 -0.192709 -v -3.798125 1.688519 -0.192709 -v -3.798125 1.377309 0.300000 -v -3.136166 1.377309 0.300000 -v -3.136166 1.233238 0.300000 -v -3.798125 1.233238 0.300000 -v -3.136166 1.233238 0.338886 -v -3.136166 1.377309 -0.300000 -v -3.798125 1.377309 -0.338886 -v -3.136166 1.377309 -0.338886 -v -3.136166 1.233237 -0.300000 -v -3.798125 1.233237 -0.338886 -v -3.798125 1.233237 -0.300000 -v -3.798125 1.377309 -0.300000 -v -3.802907 1.737093 0.032363 -v -3.802907 1.942907 -0.032363 -v -3.802907 1.737093 -0.032363 -v -3.802907 1.942907 0.032363 -v -3.597093 1.942907 -0.032363 -v -3.597093 1.942907 0.032363 -v -3.377093 1.737093 -0.032363 -v -3.377093 1.737093 0.032363 -v -3.801233 1.738767 -0.032363 -v -3.522639 1.738767 -0.052363 -v -3.522639 1.738767 -0.032363 -v -3.522639 1.738767 0.032363 -v -3.801233 1.738767 0.052363 -v -3.801233 1.738767 0.032363 -v -3.801233 1.861234 -0.032363 -v -3.801233 1.861234 0.032363 -v -3.653547 1.861234 -0.032363 -v -3.653547 1.861234 0.032363 -v -3.653547 1.861234 0.052363 -v -3.522639 1.738767 0.052363 -v -3.801233 1.861234 0.052363 -v -3.653547 1.861234 -0.052363 -v -3.801233 1.738767 -0.052363 -v -3.801233 1.861234 -0.052363 -v -3.798125 1.233238 0.338886 -v -3.798125 0.962099 0.338886 -v -3.798125 1.377309 0.338886 -vt 0.092911 0.684435 -vt 0.089855 0.671519 -vt 0.092911 0.671519 -vt 0.354586 0.672632 -vt 0.344381 0.685548 -vt 0.344381 0.672632 -vt 0.206551 0.673047 -vt 0.209606 0.685963 -vt 0.206551 0.685963 -vt 0.128661 0.677165 -vt 0.131717 0.677165 -vt 0.131717 0.684187 -vt 0.128661 0.687371 -vt 0.125606 0.687371 -vt 0.125606 0.680046 -vt 0.089855 0.684435 -vt 0.354586 0.685548 -vt 0.209606 0.673047 -vt 0.131717 0.687371 -vt 0.128661 0.687371 -vt 0.125606 0.677165 -vt 0.128661 0.677165 -vt 0.063094 0.517248 -vt 0.077115 0.515811 -vt 0.077115 0.517248 -vt 0.157843 0.697224 -vt 0.151233 0.697224 -vt 0.154969 0.676344 -vt 0.057777 0.541903 -vt 0.057777 0.520746 -vt 0.285202 0.565673 -vt 0.274107 0.541018 -vt 0.285202 0.541018 -vt 0.082432 0.541903 -vt 0.057777 0.544778 -vt 0.136231 0.644951 -vt 0.133357 0.631391 -vt 0.136231 0.631391 -vt 0.151942 0.638926 -vt 0.139968 0.631391 -vt 0.157388 0.620296 -vt 0.109962 0.632696 -vt 0.107088 0.619135 -vt 0.109962 0.619135 -vt 0.113699 0.632696 -vt 0.113738 0.619135 -vt 0.121532 0.625161 -vt 0.076295 0.688899 -vt 0.089855 0.671519 -vt 0.089855 0.688899 -vt 0.103450 0.518685 -vt 0.086070 0.515811 -vt 0.103450 0.515811 -vt 0.231790 0.688984 -vt 0.226472 0.664328 -vt 0.231790 0.664328 -vt 0.176531 0.639683 -vt 0.181848 0.664339 -vt 0.176531 0.664339 -vt 0.133357 0.542324 -vt 0.133260 0.547538 -vt 0.133260 0.542226 -vt 0.101218 0.527071 -vt 0.088302 0.527071 -vt 0.086070 0.518685 -vt 0.088302 0.537276 -vt 0.101218 0.537276 -vt 0.101770 0.543341 -vt 0.271087 0.590329 -vt 0.285107 0.565673 -vt 0.285107 0.590329 -vt 0.087750 0.544778 -vt 0.087750 0.543341 -vt 0.131743 0.542226 -vt 0.133181 0.566881 -vt 0.131743 0.566881 -vt 0.131743 0.566881 -vt 0.133181 0.591537 -vt 0.131743 0.591537 -vt 0.132534 0.634040 -vt 0.131119 0.640066 -vt 0.131119 0.634040 -vt 0.258439 0.613448 -vt 0.257024 0.609307 -vt 0.258439 0.609307 -vt 0.278036 0.607848 -vt 0.279450 0.613874 -vt 0.278036 0.613874 -vt 0.282177 0.607848 -vt 0.278036 0.601822 -vt 0.282177 0.601822 -vt 0.092911 0.677545 -vt 0.094325 0.671519 -vt 0.094325 0.677545 -vt 0.255609 0.613448 -vt 0.257024 0.609307 -vt 0.257024 0.613448 -vt 0.094325 0.683571 -vt 0.092911 0.677545 -vt 0.094325 0.677545 -vt 0.281887 0.485497 -vt 0.277746 0.479471 -vt 0.281887 0.479471 -vt 0.786280 0.515326 -vt 0.770512 0.499558 -vt 0.786280 0.499558 -vt 0.722175 0.451879 -vt 0.737943 0.436111 -vt 0.737943 0.451879 -vt 0.830449 0.815071 -vt 0.846218 0.798216 -vt 0.846218 0.815071 -vt 0.690638 0.451879 -vt 0.706407 0.419256 -vt 0.706407 0.451879 -vt 0.718250 0.533728 -vt 0.723122 0.555072 -vt 0.718250 0.555072 -vt 0.824551 0.567530 -vt 0.819678 0.546186 -vt 0.824551 0.546186 -vt 0.712664 0.451751 -vt 0.722175 0.451879 -vt 0.706407 0.451879 -vt 0.684381 0.451751 -vt 0.674870 0.451879 -vt 0.674998 0.451751 -vt 0.712664 0.440436 -vt 0.706407 0.436111 -vt 0.684381 0.440436 -vt 0.690638 0.451879 -vt 0.722175 0.419256 -vt 0.722047 0.430407 -vt 0.674870 0.419256 -vt 0.690638 0.436111 -vt 0.722047 0.451751 -vt 0.674998 0.430407 -vt 0.764126 0.541124 -vt 0.754743 0.552438 -vt 0.754743 0.531094 -vt 0.825130 0.493798 -vt 0.820258 0.483768 -vt 0.825130 0.483768 -vt 0.825130 0.505113 -vt 0.820258 0.493798 -vt 0.764817 0.561821 -vt 0.759944 0.552438 -vt 0.764817 0.552438 -vt 0.773509 0.542409 -vt 0.764126 0.531094 -vt 0.773509 0.531094 -vt 0.814806 0.546186 -vt 0.819678 0.556215 -vt 0.814806 0.556215 -vt 0.819678 0.567530 -vt 0.814806 0.567530 -vt 0.812468 0.419256 -vt 0.817341 0.428638 -vt 0.812468 0.428638 -vt 0.063094 0.515811 -vt 0.151233 0.672568 -vt 0.157843 0.672568 -vt 0.082432 0.520746 -vt 0.274107 0.565673 -vt 0.082432 0.544778 -vt 0.154969 0.676206 -vt 0.157843 0.676206 -vt 0.133357 0.644951 -vt 0.147801 0.638926 -vt 0.147801 0.644951 -vt 0.140007 0.644951 -vt 0.133357 0.631391 -vt 0.136231 0.620296 -vt 0.133357 0.620296 -vt 0.157388 0.644951 -vt 0.151942 0.644951 -vt 0.107088 0.632696 -vt 0.125673 0.619135 -vt 0.131119 0.619135 -vt 0.125673 0.625161 -vt 0.131119 0.643791 -vt 0.109962 0.643791 -vt 0.107088 0.643791 -vt 0.107088 0.632696 -vt 0.121532 0.619135 -vt 0.076295 0.671519 -vt 0.226472 0.688984 -vt 0.181848 0.639683 -vt 0.083847 0.530254 -vt 0.082432 0.530254 -vt 0.082432 0.522461 -vt 0.107088 0.522461 -vt 0.107088 0.530254 -vt 0.105673 0.530254 -vt 0.105673 0.534395 -vt 0.101218 0.534395 -vt 0.088302 0.530254 -vt 0.107088 0.534395 -vt 0.107088 0.539842 -vt 0.082432 0.539842 -vt 0.082432 0.534395 -vt 0.083847 0.534395 -vt 0.271087 0.565673 -vt 0.101770 0.544778 -vt 0.133181 0.542226 -vt 0.133181 0.566881 -vt 0.132534 0.640066 -vt 0.257024 0.613448 -vt 0.279450 0.607848 -vt 0.278036 0.607848 -vt 0.092911 0.671519 -vt 0.255609 0.609307 -vt 0.092911 0.683571 -vt 0.277746 0.485497 -vt 0.770512 0.515326 -vt 0.722175 0.436111 -vt 0.830449 0.798216 -vt 0.690638 0.419256 -vt 0.723122 0.533728 -vt 0.819678 0.567530 -vt 0.764126 0.552438 -vt 0.820258 0.505113 -vt 0.759944 0.561821 -vt 0.764126 0.552438 -vt 0.819678 0.546186 -vt 0.817341 0.419256 -vn 0.0000 -1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.0000 0.7685 -0.6399 -vn 0.0000 0.7685 0.6399 -vn -0.0000 -0.6093 0.7929 -vn -0.0005 -0.6060 0.7955 -vn 0.0000 -0.6097 0.7926 -vn -0.0000 -0.6094 -0.7928 -vn -0.0005 -0.6060 -0.7955 -vn -0.0006 -0.6057 -0.7957 -vn 0.6832 0.7303 0.0000 -vn -0.0000 -0.6094 0.7928 -vn -0.0006 -0.6057 0.7957 -vn -0.0005 -0.6059 0.7955 -vn 0.0000 -0.6097 -0.7926 -s off -f 165/402/73 166/403/73 167/404/73 -f 168/405/74 165/406/74 167/407/74 -f 168/408/75 169/409/75 170/410/75 -f 167/411/76 166/412/76 171/413/76 -f 170/414/77 169/415/77 172/416/77 -f 165/402/73 173/417/73 166/403/73 -f 168/405/74 170/418/74 165/406/74 -f 168/408/75 174/419/75 169/409/75 -f 171/413/76 174/420/76 168/421/76 -f 168/421/76 167/411/76 171/413/76 -f 172/416/77 173/422/77 165/423/77 -f 165/423/77 170/414/77 172/416/77 -s 1 -f 175/424/78 176/425/78 177/426/78 -f 178/427/74 179/428/74 180/429/74 -f 181/430/78 182/431/78 175/424/78 -f 183/432/73 184/433/73 185/434/73 -f 186/435/78 185/436/78 181/430/78 -f 187/437/76 188/438/76 189/439/76 -f 190/440/76 179/441/76 191/442/76 -f 192/443/77 193/444/77 194/445/77 -f 195/446/77 196/447/77 197/448/77 -f 198/449/73 199/450/73 188/451/73 -f 187/452/74 193/453/74 198/454/74 -f 200/455/79 175/456/79 182/457/79 -f 191/458/80 201/459/80 202/460/80 -f 192/461/78 195/462/78 180/463/78 -f 179/441/81 187/437/82 189/439/83 -f 195/446/84 194/445/85 196/447/86 -f 169/464/74 174/465/74 194/466/74 -f 166/467/74 173/468/74 201/469/74 -f 203/470/75 204/471/75 205/472/75 -f 201/469/74 205/473/74 206/474/74 -f 177/475/76 203/476/76 201/477/76 -f 206/478/77 204/479/77 175/480/77 -f 190/481/73 207/482/73 208/483/73 -f 209/484/74 190/485/74 208/486/74 -f 210/487/75 211/488/75 209/489/75 -f 209/490/76 207/491/76 210/492/76 -f 212/493/73 213/494/73 214/495/73 -f 215/496/74 214/497/74 197/498/74 -f 216/499/75 215/500/75 197/501/75 -f 212/502/77 217/503/77 218/504/77 -f 219/505/74 220/506/74 221/507/74 -f 222/508/75 223/509/75 220/510/75 -f 224/511/87 225/512/87 223/513/87 -f 226/514/73 221/515/73 225/516/73 -f 227/517/73 228/518/73 229/519/73 -f 230/520/73 231/521/73 232/522/73 -f 233/523/77 221/524/77 220/525/77 -f 234/526/76 219/527/76 232/528/76 -f 235/529/77 220/525/77 223/530/77 -f 236/531/76 222/532/76 234/526/76 -f 235/529/77 225/533/77 229/534/77 -f 236/531/76 226/535/76 224/536/76 -f 229/534/77 221/524/77 227/537/77 -f 230/538/76 219/527/76 226/535/76 -f 237/539/76 231/540/76 238/541/76 -f 236/542/87 238/543/87 230/544/87 -f 234/545/75 237/546/75 236/542/75 -f 232/547/74 239/548/74 234/549/74 -f 240/550/77 241/551/77 242/552/77 -f 229/553/87 240/554/87 235/555/87 -f 235/555/75 242/556/75 233/557/75 -f 233/558/74 241/559/74 227/560/74 -f 175/424/78 204/561/78 176/425/78 -f 180/429/74 195/562/74 184/563/74 -f 184/563/74 178/427/74 180/429/74 -f 175/424/78 177/426/78 181/430/78 -f 177/426/78 191/564/78 186/435/78 -f 181/430/78 177/426/78 186/435/78 -f 183/432/73 178/565/73 184/433/73 -f 186/435/78 183/566/78 185/436/78 -f 195/562/74 184/563/74 192/567/74 -f 184/563/74 199/568/74 192/567/74 -f 187/437/76 198/569/76 188/438/76 -f 211/570/76 243/571/76 244/572/76 -f 179/441/76 178/573/76 186/574/76 -f 178/573/76 183/575/76 186/574/76 -f 211/570/76 244/572/76 179/441/76 -f 202/576/76 245/577/76 190/440/76 -f 190/440/76 211/570/76 179/441/76 -f 186/574/76 191/442/76 179/441/76 -f 191/442/76 202/576/76 190/440/76 -f 192/443/77 199/578/77 193/444/77 -f 213/579/77 200/580/77 214/581/77 -f 200/580/77 182/582/77 214/581/77 -f 181/583/77 185/584/77 184/585/77 -f 196/447/77 216/586/77 197/448/77 -f 197/448/77 214/581/77 195/446/77 -f 214/581/77 182/582/77 195/446/77 -f 182/582/77 181/583/77 195/446/77 -f 181/583/77 184/585/77 195/446/77 -f 198/449/73 193/587/73 199/450/73 -f 187/452/74 194/466/74 193/453/74 -f 200/455/79 206/588/79 175/456/79 -f 191/458/80 177/589/80 201/459/80 -f 179/441/88 244/572/89 187/437/90 -f 195/446/84 192/443/91 194/445/85 -f 217/590/74 216/591/74 196/592/74 -f 196/592/74 194/466/74 174/465/74 -f 194/466/74 187/452/74 169/464/74 -f 187/452/74 244/593/74 169/464/74 -f 244/593/74 243/594/74 210/595/74 -f 210/595/74 207/596/74 172/597/74 -f 244/593/74 210/595/74 169/464/74 -f 171/598/74 217/590/74 174/465/74 -f 217/590/74 196/592/74 174/465/74 -f 210/595/74 172/597/74 169/464/74 -f 207/596/74 245/599/74 202/600/74 -f 202/600/74 201/469/74 173/468/74 -f 201/469/74 206/474/74 166/467/74 -f 206/474/74 200/601/74 166/467/74 -f 200/601/74 213/602/74 218/603/74 -f 218/603/74 217/590/74 171/598/74 -f 200/601/74 218/603/74 166/467/74 -f 172/597/74 207/596/74 173/468/74 -f 207/596/74 202/600/74 173/468/74 -f 218/603/74 171/598/74 166/467/74 -f 203/470/75 176/604/75 204/471/75 -f 201/469/74 203/605/74 205/473/74 -f 177/475/76 176/606/76 203/476/76 -f 206/478/77 205/607/77 204/479/77 -f 190/481/73 245/608/73 207/482/73 -f 209/484/74 211/609/74 190/485/74 -f 210/487/75 243/610/75 211/488/75 -f 209/490/76 208/611/76 207/491/76 -f 212/493/73 218/612/73 213/494/73 -f 215/496/74 212/613/74 214/497/74 -f 216/499/75 217/614/75 215/500/75 -f 212/502/77 215/615/77 217/503/77 -f 219/505/74 222/616/74 220/506/74 -f 222/508/75 224/617/75 223/509/75 -f 224/511/87 226/618/87 225/512/87 -f 226/514/73 219/619/73 221/515/73 -f 227/517/73 241/620/73 228/518/73 -f 230/520/73 238/621/73 231/521/73 -f 233/523/77 227/537/77 221/524/77 -f 234/526/76 222/532/76 219/527/76 -f 235/529/77 233/523/77 220/525/77 -f 236/531/76 224/536/76 222/532/76 -f 235/529/77 223/530/77 225/533/77 -f 236/531/76 230/538/76 226/535/76 -f 229/534/77 225/533/77 221/524/77 -f 230/538/76 232/528/76 219/527/76 -f 237/539/76 239/622/76 231/540/76 -f 236/542/87 237/546/87 238/543/87 -f 234/545/75 239/623/75 237/546/75 -f 232/547/74 231/624/74 239/548/74 -f 240/550/77 228/625/77 241/551/77 -f 229/553/87 228/626/87 240/554/87 -f 235/555/75 240/554/75 242/556/75 -f 233/558/74 242/627/74 241/559/74 -o Cube.002_Cube -v -1.095610 1.625188 -0.234177 -v -1.095610 1.625188 0.234177 -v -0.297669 1.625188 0.234177 -v -0.297669 0.827247 -0.290974 -v -0.297669 0.827247 0.290974 -v -1.095610 0.827247 0.290974 -v -1.095610 0.827247 -0.290974 -v -1.095610 1.547310 -0.290974 -v -0.297669 1.547310 -0.290974 -v -1.095610 1.547310 0.290974 -v -0.297669 1.547310 0.290974 -v -0.301915 1.683539 -0.297414 -v 0.325300 1.638647 -0.297414 -v 0.325300 1.638647 0.297414 -v -0.302927 1.619990 0.338900 -v 0.256739 0.882166 0.338900 -v -0.219849 0.826827 0.338900 -v -0.301915 1.683539 0.297414 -v -0.302927 1.619990 -0.338900 -v 0.400435 0.678089 -0.338900 -v 0.400435 0.678089 0.338900 -v 0.436428 0.664438 0.338900 -v 0.692792 1.263916 -0.315319 -v 0.692792 1.263916 0.315319 -v 0.705099 1.292695 0.297414 -v 0.448735 0.693216 -0.315319 -v 0.407419 0.710885 -0.315319 -v 0.651476 1.281585 -0.315319 -v 0.256739 0.882166 -0.338900 -v 0.436428 0.664438 -0.338900 -v 0.682158 1.239051 -0.338900 -v 0.705099 1.292695 -0.297414 -v -0.219849 0.826827 -0.338900 -v -0.315574 0.825936 -0.338900 -v 0.155569 0.765703 -0.338900 -v 0.155569 0.765703 0.338900 -v 0.682158 1.239051 0.338900 -v 0.448735 0.693216 0.315319 -v 0.651476 1.281585 0.315319 -v 0.407419 0.710885 0.315319 -v 0.319523 1.574904 -0.338900 -v 0.319523 1.574904 0.338901 -v 0.402713 0.663629 -0.329854 -v 0.102029 0.584604 -0.329854 -v 0.102029 0.584604 -0.289854 -v -0.302741 -1.027009 0.242548 -v -0.302741 -1.027009 -0.242548 -v -0.794022 0.825278 -0.242548 -v -0.641417 0.826187 0.329854 -v -0.151202 0.829110 -0.329854 -v -0.151202 0.829110 0.329854 -v -0.127086 -0.456995 -0.329854 -v -0.112735 -0.502614 -0.289854 -v -0.127086 -0.456995 -0.289854 -v -0.194491 -0.056135 0.289854 -v 0.402713 0.663629 0.289854 -v -0.186785 -0.152242 0.289854 -v -0.150610 -1.024312 -0.329854 -v -0.241652 -1.468922 -0.242548 -v 0.102041 0.584607 0.329854 -v 0.402713 0.663629 0.329854 -v 0.050261 -1.020750 0.329854 -v -0.127081 -0.456995 0.329854 -v -0.112735 -0.502614 0.289854 -v -0.180638 0.180149 -0.289854 -v -0.158985 0.267266 -0.289854 -v -0.641417 0.826187 -0.329854 -v -0.178092 0.223543 -0.329854 -v -0.073065 0.463883 -0.329854 -v 0.394433 0.695669 -0.329854 -v 0.402713 0.663629 -0.289854 -v 0.160908 0.775540 0.329854 -v 0.160908 0.775540 -0.329854 -v -0.197054 -0.099825 0.329854 -v -0.197054 -0.099825 0.289854 -v -0.178082 0.223545 0.329854 -v -0.178082 0.223545 0.289854 -v -0.180412 0.183825 0.289854 -v -0.163477 0.256966 0.289854 -v -0.073054 0.463886 0.329854 -v -0.073054 0.463886 0.289854 -v -0.188127 -0.145432 -0.289854 -v -0.197061 -0.099827 -0.289854 -v -0.197061 -0.099827 -0.329854 -v -0.178092 0.223543 -0.289854 -v -0.073065 0.463883 -0.289854 -v -0.150610 -1.024312 0.329854 -v 0.050261 -1.020750 -0.289854 -v 0.050261 -1.020750 -0.329854 -v 0.111350 -1.462662 -0.329854 -v -0.113476 -0.500244 0.289854 -v -0.135150 -0.415807 0.289854 -v -0.127081 -0.456995 0.289854 -v -0.136364 -0.409639 -0.289854 -v -0.194215 -0.051306 -0.289854 -v 0.687958 -0.482851 0.289854 -v 0.685628 -0.522570 0.329854 -v -0.010229 -0.513327 0.289854 -v 0.671023 -0.555991 0.289854 -v -0.008370 -0.524153 -0.289854 -v 0.685638 -0.522568 -0.329854 -v 0.666531 -0.566291 -0.289854 -v 0.688183 -0.479174 -0.289854 -v 0.587958 -0.122851 0.289854 -v 0.585628 -0.162570 0.329854 -v -0.110229 -0.153328 0.289854 -v 0.571023 -0.195991 0.289854 -v -0.108370 -0.164153 -0.289854 -v 0.585638 -0.162568 -0.329854 -v 0.566531 -0.206291 -0.289854 -v 0.588183 -0.119175 -0.289854 -v 0.487958 0.177149 0.289854 -v 0.485628 0.137430 0.329854 -v -0.210229 0.146672 0.289854 -v 0.471023 0.104009 0.289854 -v -0.208370 0.135847 -0.289854 -v 0.485638 0.137432 -0.329854 -v 0.466531 0.093709 -0.289854 -v 0.488183 0.180825 -0.289854 -v -2.428700 -0.152910 0.180480 -v -2.428700 -0.152910 -0.180480 -v -2.428700 0.826962 -0.180480 -v -2.428700 0.826962 0.180480 -v -0.532968 0.826962 -0.180480 -v -1.947172 0.209575 0.180480 -v -1.947172 0.464477 0.180480 -v -0.768854 0.209575 -0.180480 -v -0.532968 0.009535 -0.180480 -v -0.768854 0.464477 -0.180480 -v -0.814090 -0.152910 0.180480 -v -0.814090 -0.152910 -0.180480 -v -0.532968 0.826962 0.180480 -v -0.768854 0.464477 0.180480 -v -0.532968 0.009535 0.180480 -v -0.768854 0.209575 0.180480 -v -1.555754 -0.016604 -0.180480 -v -1.160272 -0.016604 -0.180480 -v -1.160272 -0.016604 0.180480 -v -1.947172 0.209575 -0.180480 -v -1.555754 0.690656 -0.180480 -v -1.555754 0.690656 0.180480 -v -1.160272 0.690656 0.180480 -v -1.832528 0.049642 -0.180480 -v -1.555754 -0.016604 0.180480 -v -1.832528 0.049642 0.180480 -v -1.832528 0.624410 -0.180480 -v -1.832528 0.624410 0.180480 -v -1.947172 0.464477 -0.180480 -v -0.883498 0.624410 -0.180480 -v -0.883498 0.624410 0.180480 -v -1.160272 0.690656 -0.180480 -v -0.883497 0.049642 -0.180480 -v -0.883497 0.049642 0.180480 -v -0.731751 -0.038044 -0.180480 -v -0.615307 -0.105331 -0.180480 -v -0.731751 -0.038044 0.180480 -v -0.615307 -0.105331 0.180480 -v 0.147745 1.652255 0.147745 -v 0.059919 1.764108 0.147745 -v 0.059919 1.764108 -0.147745 -v 0.059098 1.947745 -0.147745 -v 0.059098 1.947745 -0.090000 -v -0.037745 1.947745 -0.090000 -v -0.037745 1.947745 0.147745 -v -0.037745 1.947745 0.090000 -v 0.059098 1.947745 0.090000 -v -0.037745 1.652255 -0.147745 -v -0.037745 1.810000 -0.090000 -v -0.037745 1.652255 0.147745 -v 0.059098 1.652255 -0.147745 -v 0.059098 1.652255 0.147745 -v 0.059713 1.810000 0.090000 -v 0.059714 1.810000 -0.090000 -v -0.037745 1.810000 0.090000 -v 0.111350 -1.462662 0.329854 -v 0.111350 -1.462662 0.289854 -v -0.241652 -1.468922 0.242548 -v -0.089520 -1.466224 0.329854 -v 0.050261 -1.020750 0.289854 -v 0.111350 -1.462662 -0.289854 -v 0.855111 -1.267190 -0.289854 -v 0.794022 -0.825277 0.289854 -v 0.855111 -1.267190 0.289854 -v 0.794022 -0.825277 -0.289854 -v -0.089520 -1.466224 -0.329854 -v -0.297669 1.625188 -0.234177 -v -0.315574 0.825936 0.338900 -v -0.794022 0.825278 0.242548 -v 0.102041 0.584607 0.289854 -v 0.394433 0.695669 0.329854 -v 0.147745 1.652255 -0.147745 -v -0.037745 1.947745 -0.147745 -v 0.059098 1.947745 0.147745 +vn -0.0000 -0.0000 -1.0000 +vn -0.8080 0.5892 -0.0000 +vn 0.8080 0.5892 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.9974 0.0714 +vn -0.0000 0.0159 -0.9999 +vn -0.0000 -0.9383 -0.3458 +vn -0.0000 -0.9350 -0.3546 +vn 0.0001 -0.3932 0.9195 +vn -0.0000 -0.3932 0.9195 +vn -0.0001 -0.3932 0.9195 +vn -0.0000 0.7393 0.6734 +vn -0.0000 -0.9971 -0.0760 +vn -0.0000 -1.0000 0.0093 +vn -0.0000 -0.9683 -0.2498 +vn -0.0000 -0.9195 -0.3932 +vn -0.0000 0.9195 0.3932 +vn -0.0000 0.9194 0.3932 +vn 0.8372 0.5456 0.0391 +vn 0.8296 0.5222 0.1976 +vn 0.8199 0.5081 0.2639 +vn -0.8372 0.5456 0.0391 +vn -0.8296 0.5223 0.1976 +vn -0.8370 0.5458 0.0391 +vn -0.7964 0.4439 0.4106 +vn -0.8199 0.5081 0.2639 +vn -0.7981 0.4421 0.4094 +vn 0.7964 0.4439 0.4106 +vn 0.7981 0.4421 0.4094 +vn -0.0000 -0.9672 0.2542 +vn -0.0000 -0.9088 0.4172 +vn -0.0000 -0.1970 -0.9804 +vn -0.0000 -0.2564 -0.9666 +vn -0.0000 1.0000 -0.0060 +vn -0.0000 0.9966 0.0819 +vn -0.0000 0.2466 0.9691 +vn -0.0000 0.3001 0.9539 +vn 0.8640 -0.0963 -0.4941 +vn 0.8658 -0.0685 -0.4957 +vn 0.8635 -0.1025 -0.4938 +vn -0.0000 0.2193 0.9757 +vn -0.0004 0.2997 0.9540 +vn -0.0000 0.2465 0.9691 +vn -0.0000 0.2515 0.9678 +vn -0.0000 0.2502 0.9682 +vn -0.0000 0.9690 0.2472 +vn -0.0000 0.9462 0.3236 +vn -0.0000 0.0674 0.9977 +vn -0.0000 0.1923 0.9813 +vn -0.0000 -0.2331 0.9724 +vn -0.0000 -0.0586 0.9983 +vn -0.0000 -0.4004 0.9163 +vn -0.0000 -0.8233 0.5676 +vn 0.8609 -0.1304 -0.4918 +vn -0.8609 -0.1304 -0.4918 +vn -0.8635 -0.1025 -0.4938 +vn -0.8640 -0.0963 -0.4941 +vn -0.0000 0.1369 0.9906 +vn -0.0015 0.2988 0.9543 +vn -0.7034 0.7102 -0.0310 +vn -0.9984 0.0006 -0.0574 +vn -0.7811 -0.0838 0.6188 +vn -0.5157 -0.7760 0.3632 +vn 0.7461 -0.6645 -0.0415 +vn 0.7333 0.6785 -0.0438 +vn 0.1650 -0.2225 0.9609 +vn -0.1960 -0.2365 0.9516 +vn 0.1649 -0.2225 0.9609 +vn -0.0000 -0.9931 0.1172 +vn -0.0000 0.9931 0.1172 +vn -0.0000 0.9931 -0.1172 +vn -0.0000 -0.9931 -0.1172 +vn -0.0000 0.9725 0.2328 +vn -0.0000 0.5826 0.8128 +vn -0.0000 -0.9725 0.2328 +vn -0.0000 -0.5826 0.8128 +vn -0.0000 -0.5826 -0.8128 +vn -0.0000 -0.9725 -0.2328 +vn -0.0000 0.9725 -0.2328 +vn -0.0000 0.5826 -0.8128 +vn -0.0000 0.6176 0.7865 +vn -0.0000 0.0045 1.0000 +vn -0.0000 -0.9998 0.0177 +vn -0.0000 -0.1369 -0.9906 +vn -0.0000 0.1959 0.9806 +vn -0.8658 -0.0685 -0.4957 +vn 0.8370 0.5458 0.0391 +vn -0.3827 -0.9239 -0.0000 +vn 0.2706 -0.9239 -0.2706 +vn 0.3827 -0.9239 -0.0000 vt 0.711812 0.471594 vt 0.711812 0.446767 vt 0.680964 0.446767 @@ -1647,7 +308,6 @@ vt 0.680964 0.443756 vt 0.680964 0.474605 vt 0.711812 0.474605 vt 0.865063 0.560674 -vt 0.865063 0.529825 vt 0.837225 0.529825 vt 0.196676 0.580182 vt 0.198638 0.568986 @@ -1695,9 +355,7 @@ vt 0.189630 0.503690 vt 0.201945 0.494327 vt 0.190074 0.503035 vt 0.190074 0.494327 -vt 0.214869 0.562501 vt 0.214723 0.553502 -vt 0.214869 0.553699 vt 0.202301 0.555340 vt 0.202066 0.543470 vt 0.202301 0.543470 @@ -1726,7 +384,6 @@ vt 0.428602 0.558400 vt 0.417840 0.553461 vt 0.432501 0.526433 vt 0.432487 0.524369 -vt 0.432487 0.524369 vt 0.447648 0.543050 vt 0.448693 0.547326 vt 0.447763 0.547351 @@ -1770,7 +427,6 @@ vt 0.417840 0.535854 vt 0.417854 0.533789 vt 0.464176 0.557000 vt 0.465113 0.557000 -vt 0.465113 0.557000 vt 0.427707 0.531136 vt 0.429600 0.529132 vt 0.448576 0.560921 @@ -1932,26 +588,16 @@ vt 0.494991 0.451091 vt 0.493032 0.455842 vt 0.481746 0.455842 vt 0.417873 0.531063 -vt 0.417854 0.533789 -vt 0.417873 0.531063 vt 0.448576 0.556854 -vt 0.448576 0.556854 -vt 0.541595 0.470689 vt 0.542206 0.514475 vt 0.552850 0.514475 -vt 0.542206 0.514475 vt 0.428484 0.565354 vt 0.417840 0.565354 -vt 0.417840 0.565354 vt 0.514493 0.548018 vt 0.514493 0.534441 -vt 0.514493 0.534441 -vt 0.417840 0.535854 vt 0.432520 0.529160 -vt 0.432501 0.526433 vt 0.680964 0.471594 vt 0.775071 0.407025 -vt 0.837225 0.529825 vt 0.806377 0.503312 vt 0.809388 0.500301 vt 0.834214 0.500301 @@ -1990,7 +636,6 @@ vt 0.428875 0.560794 vt 0.428555 0.557988 vt 0.448579 0.543024 vt 0.552850 0.502582 -vt 0.552850 0.514475 vt 0.542094 0.507467 vt 0.541847 0.510284 vt 0.541815 0.509915 @@ -2011,7 +656,6 @@ vt 0.526173 0.548955 vt 0.526173 0.533504 vt 0.495877 0.471681 vt 0.432487 0.538011 -vt 0.464176 0.557000 vt 0.430545 0.526471 vt 0.431154 0.522212 vt 0.431408 0.522246 @@ -2024,7 +668,6 @@ vt 0.736752 0.516827 vt 0.721695 0.529910 vt 0.722877 0.532765 vt 0.719261 0.536381 -vt 0.736752 0.516827 vt 0.734319 0.525831 vt 0.733137 0.532765 vt 0.734319 0.529910 @@ -2058,14 +701,12 @@ vt 0.695777 0.485775 vt 0.708600 0.509919 vt 0.699791 0.549500 vt 0.704176 0.549500 -vt 0.704176 0.562879 vt 0.716999 0.509919 vt 0.830378 0.930344 vt 0.830378 0.950852 vt 0.830378 0.845911 vt 0.781459 0.866419 vt 0.830378 0.866419 -vt 0.704176 0.549500 vt 0.708561 0.549500 vt 0.712575 0.562879 vt 0.669019 0.562955 @@ -2076,441 +717,1798 @@ vt 0.480580 0.440448 vt 0.494067 0.440448 vt 0.479684 0.453794 vt 0.495032 0.453794 -vt 0.447639 0.556854 -vt 0.552956 0.470689 -vt 0.428484 0.565354 -vt 0.514493 0.548018 -vt 0.432520 0.529160 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.5892 0.8080 -vn 0.0000 0.5892 -0.8080 -vn 0.0000 -0.0000 1.0000 -vn 0.0714 0.9974 0.0000 -vn -0.9999 0.0159 0.0000 -vn -0.3458 -0.9383 0.0000 -vn -0.3546 -0.9350 0.0000 -vn 0.9195 -0.3932 -0.0001 -vn 0.9195 -0.3932 0.0000 -vn 0.9195 -0.3932 0.0001 -vn 0.6734 0.7393 0.0000 -vn -0.0760 -0.9971 0.0000 -vn 0.0093 -1.0000 0.0000 -vn -0.2498 -0.9683 0.0000 -vn -0.3932 -0.9195 0.0000 -vn -0.3932 -0.9194 0.0000 -vn 0.3932 0.9195 0.0000 -vn 0.0391 0.5455 -0.8372 -vn 0.1976 0.5222 -0.8296 -vn 0.2639 0.5081 -0.8199 -vn 0.0391 0.5456 0.8372 -vn 0.1976 0.5223 0.8296 -vn 0.0391 0.5458 0.8370 -vn 0.4106 0.4439 0.7964 -vn 0.2639 0.5081 0.8199 -vn 0.4094 0.4421 0.7981 -vn 0.4106 0.4439 -0.7964 -vn 0.4094 0.4421 -0.7981 -vn 0.2542 -0.9672 0.0000 -vn 0.4172 -0.9088 0.0000 -vn -0.9804 -0.1970 0.0000 -vn -0.9666 -0.2564 0.0000 -vn -0.0060 1.0000 0.0000 -vn 0.0819 0.9966 0.0000 -vn 0.9691 0.2466 0.0000 -vn 0.9539 0.3001 -0.0000 -vn -0.4941 -0.0963 -0.8640 -vn -0.4957 -0.0685 -0.8658 -vn -0.4938 -0.1025 -0.8635 -vn 0.9757 0.2193 -0.0000 -vn 0.9540 0.2997 0.0004 -vn 0.9691 0.2465 -0.0000 -vn 0.9678 0.2515 0.0000 -vn 0.9682 0.2502 0.0000 -vn 0.2472 0.9690 0.0000 -vn 0.3236 0.9462 0.0000 -vn 0.9977 0.0674 -0.0000 -vn 0.9813 0.1923 0.0000 -vn 0.9724 -0.2331 0.0000 -vn 0.9983 -0.0586 0.0000 -vn 0.9163 -0.4004 0.0000 -vn 0.5676 -0.8233 0.0000 -vn -0.4918 -0.1304 -0.8609 -vn -0.4918 -0.1304 0.8609 -vn -0.4938 -0.1025 0.8635 -vn -0.4941 -0.0963 0.8640 -vn 0.9906 0.1369 0.0000 -vn 0.9543 0.2988 0.0015 -vn -0.0310 0.7102 0.7034 -vn -0.0574 0.0006 0.9984 -vn 0.6188 -0.0838 0.7811 -vn 0.3632 -0.7760 0.5157 -vn -0.0415 -0.6645 -0.7461 -vn -0.0438 0.6785 -0.7333 -vn 0.9609 -0.2225 -0.1650 -vn 0.9516 -0.2365 0.1960 -vn 0.9609 -0.2225 -0.1649 -vn 0.1172 -0.9931 -0.0000 -vn 0.1172 0.9931 0.0000 -vn -0.1172 0.9931 0.0000 -vn -0.1172 -0.9931 0.0000 -vn 0.2328 0.9725 0.0000 -vn 0.8128 0.5826 0.0000 -vn 0.2328 -0.9725 0.0000 -vn 0.8128 -0.5826 0.0000 -vn -0.8128 -0.5826 0.0000 -vn -0.2328 -0.9725 0.0000 -vn -0.2328 0.9725 0.0000 -vn -0.8128 0.5826 0.0000 -vn 0.7865 0.6176 0.0000 -vn 1.0000 0.0045 -0.0000 -vn 0.0177 -0.9998 0.0000 -vn -0.9906 -0.1369 0.0000 -vn 0.9806 0.1959 0.0000 -vn -0.4957 -0.0685 0.8658 -vn 0.0391 0.5458 -0.8370 -vn 0.0000 0.0000 0.0000 s 1 -f 246/628/92 247/629/92 248/630/92 -f 249/631/93 250/632/93 251/633/93 -f 249/634/94 252/635/94 253/636/94 -f 254/637/95 250/638/95 249/639/95 -f 246/640/96 255/641/96 247/642/96 -f 255/643/97 256/644/97 248/630/97 -f 254/645/98 253/646/98 246/628/98 -f 251/647/99 250/648/99 256/649/99 -f 257/650/100 259/651/100 258/652/100 -f 260/653/99 262/654/99 261/655/99 -f 263/656/101 257/657/101 264/658/101 -f 265/659/102 267/660/103 266/661/102 -f 268/662/104 270/663/105 269/664/106 -f 271/665/99 273/666/99 272/667/99 -f 274/668/94 276/669/94 275/670/94 -f 259/671/107 277/672/107 258/673/107 -f 262/674/108 279/675/109 278/676/108 -f 265/677/94 280/678/94 274/668/94 -f 280/678/94 278/679/94 274/668/94 -f 262/654/99 281/680/99 261/655/99 -f 281/680/99 266/681/99 261/655/99 -f 278/676/108 281/682/110 262/674/108 -f 280/683/110 266/661/102 281/684/110 -f 261/655/99 267/685/99 282/686/99 -f 283/687/105 282/688/105 267/689/105 -f 271/690/105 276/691/105 268/662/104 -f 283/687/105 275/692/105 271/690/105 -f 284/693/105 272/694/105 273/695/105 -f 283/696/94 284/697/94 269/698/94 -f 269/699/111 273/700/112 268/701/112 -f 271/690/113 285/702/113 283/687/113 -f 270/663/105 282/688/105 269/664/106 -f 276/691/105 277/672/105 268/662/104 -f 264/703/114 258/704/115 286/705/116 -f 260/653/117 259/706/118 263/707/119 -f 270/663/120 287/708/121 282/688/122 -f 286/709/116 277/672/123 276/691/124 -f 278/679/94 264/703/94 274/668/94 -f 288/710/125 290/711/126 289/712/126 -f 291/713/127 293/714/128 292/715/127 -f 294/716/129 296/717/130 295/718/130 -f 297/719/131 299/720/131 298/721/132 -f 300/722/99 302/723/99 301/724/99 -f 303/725/133 304/726/134 292/727/135 -f 305/728/126 301/729/125 306/730/125 -f 307/731/136 309/732/137 308/733/138 -f 310/734/94 311/735/94 290/736/94 -f 312/737/94 314/738/94 313/739/94 -f 301/740/139 316/741/139 315/742/140 -f 317/743/141 315/744/142 318/745/141 -f 319/746/143 302/747/144 320/748/143 -f 321/749/145 323/750/146 322/751/145 -f 324/752/147 325/753/147 321/754/145 -f 326/755/148 305/728/126 325/753/148 -f 327/756/144 329/757/143 328/758/143 -f 310/759/146 313/760/145 330/761/145 -f 311/762/147 314/763/147 331/764/147 -f 314/763/148 290/711/126 331/764/148 -f 312/737/149 292/727/135 293/765/149 -f 294/766/150 291/767/151 332/768/152 -f 333/769/136 335/770/153 334/771/136 -f 318/745/141 296/717/130 317/743/141 -f 321/772/99 325/773/99 294/766/99 -f 308/733/138 309/732/137 336/774/154 -f 308/733/138 302/747/144 319/746/143 -f 319/746/143 320/748/143 300/775/146 -f 300/775/146 321/749/145 319/746/143 -f 321/754/145 322/776/145 324/752/147 -f 308/733/138 338/777/138 337/778/144 -f 308/733/138 336/774/154 338/777/138 -f 334/771/136 298/721/132 333/769/136 -f 299/720/131 297/719/131 339/779/144 -f 339/779/144 329/757/143 327/756/144 -f 328/758/143 329/757/143 340/780/146 -f 340/780/146 313/760/145 310/759/146 -f 330/781/145 313/782/145 311/762/147 -f 341/783/155 343/784/156 342/785/157 -f 344/786/158 342/785/157 343/784/156 -f 345/787/159 346/788/159 347/789/159 -f 348/790/160 346/791/160 345/792/160 -f 342/793/157 344/794/158 341/795/161 -f 347/796/162 346/797/162 348/798/162 -f 349/799/155 351/800/156 350/801/157 -f 352/802/158 350/801/157 351/800/156 -f 353/803/159 354/804/159 355/805/159 -f 356/806/160 354/807/160 353/808/160 -f 350/809/157 352/810/158 349/811/163 -f 355/812/162 354/813/162 356/814/162 -f 357/815/155 359/816/156 358/817/157 -f 360/818/158 358/817/157 359/816/156 -f 361/819/159 362/820/159 363/821/159 -f 364/822/160 362/823/160 361/824/160 -f 358/825/157 360/826/158 357/827/161 -f 363/828/162 362/829/162 364/830/162 -f 365/831/96 367/832/96 366/833/96 -f 368/834/92 369/835/92 367/836/92 -f 370/837/99 371/838/99 368/839/99 -f 372/840/94 374/841/94 373/842/94 -f 375/843/164 366/844/93 376/845/164 -f 377/846/95 373/847/95 369/848/95 -f 378/849/99 380/850/99 379/851/99 -f 381/852/165 383/853/166 382/854/166 -f 372/855/96 378/856/96 374/857/96 -f 384/858/95 371/859/95 370/860/95 -f 385/861/164 387/862/167 386/863/164 -f 388/864/168 389/865/165 381/852/165 -f 388/866/169 370/860/169 390/867/169 -f 391/868/170 386/863/164 392/869/170 -f 393/870/171 392/871/171 371/859/171 -f 374/857/172 395/872/172 394/873/172 -f 396/874/167 395/875/173 387/862/167 -f 382/854/166 398/876/174 397/877/174 -f 397/878/175 380/879/175 372/855/175 -f 373/842/94 400/880/94 399/881/94 -f 400/880/94 376/882/94 399/881/94 -f 375/883/99 402/884/99 401/885/99 -f 402/884/99 379/851/99 401/885/99 -f 379/886/171 400/887/171 373/847/171 -f 402/888/170 376/845/164 400/889/170 -f 393/890/94 384/891/94 366/892/94 -f 403/893/176 405/894/176 404/895/176 -f 406/896/92 408/897/92 407/898/92 -f 409/899/92 411/900/92 410/901/92 -f 412/902/96 414/903/96 413/904/96 -f 415/905/93 403/906/93 416/907/93 -f 416/908/99 403/909/99 404/910/99 -f 414/911/93 415/905/93 416/907/93 -f 404/912/177 405/913/177 417/914/177 -f 405/915/94 415/916/94 412/917/94 -f 418/918/92 419/919/92 417/920/92 -f 413/921/99 407/922/99 408/923/99 -f 411/924/94 419/925/94 410/926/94 -f 335/927/92 421/928/92 420/929/92 -f 422/930/178 304/931/178 335/927/178 -f 307/932/99 423/933/99 420/934/99 -f 307/731/136 421/935/153 424/936/136 -f 292/715/127 422/937/179 291/713/127 -f 333/938/94 426/939/94 425/940/94 -f 424/941/99 428/942/99 427/943/99 -f 427/944/180 426/945/153 429/946/180 -f 332/768/152 422/947/181 423/933/181 -f 334/948/94 430/949/94 303/725/94 -f 246/628/92 248/630/92 431/950/92 -f 249/631/93 251/633/93 252/951/93 -f 249/634/94 253/636/94 254/952/94 -f 250/638/95 254/637/95 256/953/95 -f 256/953/95 254/637/95 248/954/95 -f 248/954/95 254/637/95 431/955/95 -f 255/641/96 252/956/96 251/957/96 -f 252/956/96 255/641/96 253/958/96 -f 253/958/96 255/641/96 246/640/96 -f 255/643/97 248/630/97 247/629/97 -f 254/645/98 246/628/98 431/950/98 -f 251/647/99 256/649/99 255/959/99 -f 257/650/100 263/960/100 259/651/100 -f 261/655/99 287/961/99 260/653/99 -f 260/653/99 432/962/99 262/654/99 -f 264/658/101 279/963/101 432/964/101 -f 432/964/101 260/965/101 264/658/101 -f 260/965/101 263/656/101 264/658/101 -f 265/659/102 275/966/103 267/660/103 -f 268/662/104 277/672/105 270/663/105 -f 271/665/99 268/967/99 273/666/99 -f 275/670/94 265/677/94 274/668/94 -f 274/668/94 286/705/94 276/669/94 -f 259/671/107 270/663/107 277/672/107 -f 262/674/108 432/968/109 279/675/109 -f 278/676/108 280/969/110 281/682/110 -f 280/683/110 265/659/102 266/661/102 -f 282/686/99 287/961/99 261/655/99 -f 261/655/99 266/681/99 267/685/99 -f 283/687/105 269/664/106 282/688/105 -f 271/690/105 275/692/105 276/691/105 -f 283/687/105 267/689/105 275/692/105 -f 284/693/105 285/702/105 272/694/105 -f 283/696/94 285/970/94 284/697/94 -f 269/699/111 284/971/111 273/700/112 -f 271/690/113 272/694/113 285/702/113 -f 264/703/114 257/972/182 258/704/115 -f 260/653/117 287/961/121 259/706/118 -f 270/663/120 259/671/118 287/708/121 -f 286/709/116 258/673/115 277/672/123 -f 279/973/94 264/703/94 278/679/94 -f 264/703/94 286/705/94 274/668/94 -f 288/710/125 316/974/125 290/711/126 -f 291/713/127 433/975/128 293/714/128 -f 295/718/130 312/976/129 294/716/129 -f 312/976/129 293/977/129 294/716/129 -f 293/977/129 433/978/129 294/716/129 -f 301/724/99 434/979/99 323/980/99 -f 434/979/99 326/981/99 324/982/99 -f 324/982/99 322/983/99 323/980/99 -f 434/979/99 324/982/99 323/980/99 -f 424/941/99 427/943/99 309/984/99 -f 427/943/99 301/724/99 302/723/99 -f 336/985/99 427/943/99 337/986/99 -f 336/985/99 309/984/99 427/943/99 -f 337/986/99 338/987/99 336/985/99 -f 300/722/99 320/988/99 302/723/99 -f 302/723/99 337/986/99 427/943/99 -f 323/980/99 300/722/99 301/724/99 -f 303/725/133 430/949/134 304/726/134 -f 305/728/126 434/989/126 301/729/125 -f 307/731/136 424/936/136 309/732/137 -f 316/990/94 429/991/94 327/992/94 -f 429/991/94 333/938/94 298/993/94 -f 298/993/94 299/994/94 339/995/94 -f 429/991/94 298/993/94 339/995/94 -f 316/990/94 327/992/94 340/996/94 -f 331/997/94 290/736/94 311/735/94 -f 290/736/94 316/990/94 310/734/94 -f 311/735/94 310/734/94 330/998/94 -f 340/996/94 310/734/94 316/990/94 -f 327/992/94 328/999/94 340/996/94 -f 339/995/94 327/992/94 429/991/94 -f 297/1000/94 334/948/94 303/725/94 -f 312/737/94 295/1001/94 314/738/94 -f 295/1001/94 318/1002/94 289/1003/94 -f 318/1002/94 315/1004/94 289/1003/94 -f 315/1004/94 288/1005/94 289/1003/94 -f 297/1000/94 303/725/94 329/1006/94 -f 303/725/94 312/737/94 329/1006/94 -f 295/1001/94 289/1003/94 314/738/94 -f 313/739/94 329/1006/94 312/737/94 -f 315/742/140 435/1007/140 301/740/139 -f 435/1007/140 306/1008/140 301/740/139 -f 301/740/139 427/944/180 429/946/180 -f 316/741/139 288/1009/140 315/742/140 -f 301/740/139 429/946/180 316/741/139 -f 317/743/141 435/1010/142 315/744/142 -f 324/752/147 326/755/147 325/753/147 -f 326/755/148 434/989/126 305/728/126 -f 311/762/147 313/782/145 314/763/147 -f 314/763/148 289/712/126 290/711/126 -f 312/737/149 303/725/133 292/727/135 -f 294/766/150 433/1011/150 291/767/151 -f 333/769/136 425/1012/153 335/770/153 -f 318/745/141 295/718/130 296/717/130 -f 305/1013/99 306/1014/99 435/1015/99 -f 435/1015/99 317/1016/99 305/1013/99 -f 317/1016/99 296/1017/99 305/1013/99 -f 294/766/99 332/768/99 319/1018/99 -f 332/768/99 307/932/99 308/1019/99 -f 332/768/99 308/1019/99 319/1018/99 -f 296/1017/99 294/766/99 325/773/99 -f 305/1013/99 296/1017/99 325/773/99 -f 294/766/99 319/1018/99 321/772/99 -f 308/733/138 337/778/144 302/747/144 -f 300/775/146 323/750/146 321/749/145 -f 334/771/136 297/719/131 298/721/132 -f 339/779/144 297/719/131 329/757/143 -f 340/780/146 329/757/143 313/760/145 -f 365/831/96 368/1020/96 367/832/96 -f 368/834/92 377/1021/92 369/835/92 -f 387/1022/99 395/1023/99 377/1024/99 -f 365/1025/99 375/883/99 389/1026/99 -f 375/883/99 401/885/99 398/1027/99 -f 389/1026/99 375/883/99 383/1028/99 -f 398/1027/99 383/1028/99 375/883/99 -f 387/1022/99 377/1024/99 386/1029/99 -f 377/1024/99 368/839/99 386/1029/99 -f 365/1025/99 389/1026/99 390/1030/99 -f 392/1031/99 386/1029/99 368/839/99 -f 371/838/99 392/1031/99 368/839/99 -f 368/839/99 365/1025/99 370/837/99 -f 365/1025/99 390/1030/99 370/837/99 -f 374/841/94 394/1032/94 369/1033/94 -f 369/1033/94 373/842/94 374/841/94 -f 373/842/94 399/881/94 372/840/94 -f 399/881/94 397/1034/94 372/840/94 -f 375/843/164 365/1035/93 366/844/93 -f 377/846/95 379/886/95 373/847/95 -f 380/850/99 398/1027/99 401/885/99 -f 401/885/99 379/851/99 380/850/99 -f 379/851/99 377/1024/99 378/849/99 -f 377/1024/99 395/1023/99 378/849/99 -f 381/852/165 389/865/165 383/853/166 -f 372/855/96 380/879/96 378/856/96 -f 384/858/95 393/870/95 371/859/95 -f 385/861/164 396/874/167 387/862/167 -f 388/864/168 390/1036/168 389/865/165 -f 388/866/169 384/858/169 370/860/169 -f 391/868/170 385/861/164 386/863/164 -f 393/870/171 391/1037/171 392/871/171 -f 374/857/172 378/856/172 395/872/172 -f 396/874/167 394/1038/173 395/875/173 -f 382/854/166 383/853/166 398/876/174 -f 397/878/175 398/1039/175 380/879/175 -f 379/886/171 402/1040/171 400/887/171 -f 402/888/170 375/843/164 376/845/164 -f 382/1041/94 397/1034/94 376/882/94 -f 397/1034/94 399/881/94 376/882/94 -f 376/882/94 366/892/94 381/1042/94 -f 382/1041/94 376/882/94 381/1042/94 -f 369/1033/94 394/1032/94 396/1043/94 -f 369/1033/94 396/1043/94 385/1044/94 -f 367/1045/94 369/1033/94 385/1044/94 -f 367/1045/94 385/1044/94 391/1046/94 -f 388/1047/94 381/1042/94 366/892/94 -f 384/891/94 388/1047/94 366/892/94 -f 366/892/94 367/1045/94 393/890/94 -f 367/1045/94 391/1046/94 393/890/94 -f 403/893/176 436/1048/176 405/894/176 -f 406/896/92 437/1049/92 408/897/92 -f 409/899/92 438/1050/92 411/900/92 -f 413/904/96 408/1051/96 437/1052/96 -f 414/903/96 409/1053/96 419/1054/96 -f 409/1053/96 410/1055/96 419/1054/96 -f 413/904/96 437/1052/96 412/902/96 -f 414/903/96 419/1054/96 413/904/96 -f 415/905/93 436/1056/93 403/906/93 -f 404/910/99 438/1057/99 409/1058/99 -f 409/1058/99 414/1059/99 404/910/99 -f 414/1059/99 416/908/99 404/910/99 -f 414/911/93 412/1060/93 415/905/93 -f 411/1061/177 438/1062/177 417/914/177 -f 438/1062/177 404/912/177 417/914/177 -f 405/913/177 406/1063/177 418/1064/177 -f 406/1063/177 407/1065/177 418/1064/177 -f 405/913/177 418/1064/177 417/914/177 -f 412/917/94 437/1066/94 405/915/94 -f 437/1066/94 406/1067/94 405/915/94 -f 405/915/94 436/1068/94 415/916/94 -f 418/918/92 413/1069/92 419/919/92 -f 413/921/99 418/1070/99 407/922/99 -f 411/924/94 417/1071/94 419/925/94 -f 425/1072/125 426/1073/125 428/1074/125 -f 425/1072/125 428/1074/125 421/928/125 -f 335/927/183 425/1072/183 421/928/183 -f 430/1075/178 335/927/178 304/931/178 -f 335/927/178 420/929/178 422/930/178 -f 420/929/178 423/1076/178 422/930/178 -f 307/932/99 332/768/99 423/933/99 -f 307/731/136 420/1077/153 421/935/153 -f 292/715/127 304/1078/179 422/937/179 -f 333/938/94 429/991/94 426/939/94 -f 424/941/99 421/1079/99 428/942/99 -f 427/944/180 428/1080/153 426/945/153 -f 332/768/152 291/767/151 422/947/181 -f 334/948/94 335/1081/94 430/949/94 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 4/7/3 7/8/3 8/9/3 +f 9/10/4 5/11/4 4/12/4 +f 1/13/5 10/14/5 2/15/5 +f 10/16/6 11/17/6 3/3/6 +f 9/18/7 8/19/7 1/1/7 +f 6/20/8 5/7/8 11/21/8 +f 12/22/9 14/23/9 13/24/9 +f 15/25/8 17/26/8 16/27/8 +f 18/28/10 12/29/10 19/30/10 +f 20/31/11 22/32/12 21/33/11 +f 23/34/13 25/35/14 24/36/15 +f 26/37/8 28/38/8 27/39/8 +f 29/40/3 31/41/3 30/42/3 +f 14/43/16 32/44/16 13/45/16 +f 17/46/17 34/47/18 33/48/17 +f 20/49/3 35/50/3 29/40/3 +f 35/50/3 33/51/3 29/40/3 +f 17/26/8 36/52/8 16/27/8 +f 36/52/8 21/53/8 16/27/8 +f 33/48/17 36/54/19 17/46/17 +f 35/55/19 21/33/11 36/56/19 +f 16/27/8 22/57/8 37/58/8 +f 38/59/14 37/60/14 22/61/14 +f 26/62/14 31/63/14 23/34/13 +f 38/59/14 30/64/14 26/62/14 +f 39/65/14 27/66/14 28/67/14 +f 38/38/3 39/68/3 24/39/3 +f 24/69/20 28/70/20 23/71/20 +f 26/62/21 40/72/22 38/59/22 +f 25/35/14 37/60/14 24/36/15 +f 31/63/14 32/44/14 23/34/13 +f 19/73/23 13/74/24 41/75/25 +f 15/25/26 14/76/27 18/77/28 +f 25/35/29 42/78/30 37/60/31 +f 41/79/25 32/44/32 31/63/33 +f 33/51/3 19/73/3 29/40/3 +f 43/80/34 45/81/35 44/82/35 +f 46/83/36 48/84/37 47/85/36 +f 49/86/38 51/87/39 50/88/39 +f 52/89/40 54/90/40 53/91/41 +f 55/92/8 57/93/8 56/94/8 +f 58/95/42 59/96/43 47/96/44 +f 60/97/35 56/98/34 61/99/34 +f 62/100/45 64/101/46 63/102/47 +f 65/103/3 66/104/3 45/105/3 +f 67/106/3 69/107/3 68/108/3 +f 56/109/48 71/110/48 70/111/49 +f 72/112/50 70/113/51 73/114/50 +f 74/115/52 57/116/53 75/117/52 +f 76/118/54 78/119/55 77/120/54 +f 79/121/56 80/122/56 76/123/54 +f 81/124/57 60/97/35 80/122/57 +f 82/125/53 84/126/52 83/127/52 +f 65/128/55 68/129/54 85/130/54 +f 66/131/56 69/132/56 86/133/56 +f 69/132/57 45/81/35 86/133/57 +f 67/106/58 47/96/44 48/134/58 +f 49/135/59 46/136/60 87/137/61 +f 88/138/45 90/139/62 89/139/45 +f 73/114/50 51/87/39 72/112/50 +f 76/140/8 80/141/8 49/135/8 +f 63/102/47 64/101/46 91/142/63 +f 63/102/47 57/116/53 74/115/52 +f 74/115/52 75/117/52 55/143/55 +f 55/143/55 76/118/54 74/115/52 +f 76/123/54 77/144/54 79/121/56 +f 63/102/47 93/145/47 92/146/53 +f 63/102/47 91/142/63 93/145/47 +f 89/139/45 53/91/41 88/138/45 +f 54/90/40 52/89/40 94/147/53 +f 94/147/53 84/126/52 82/125/53 +f 83/127/52 84/126/52 95/148/55 +f 95/148/55 68/129/54 65/128/55 +f 85/149/54 68/150/54 66/131/56 +f 96/151/64 98/152/65 97/153/66 +f 99/154/67 97/153/66 98/152/65 +f 100/155/68 101/156/68 102/157/68 +f 103/158/69 101/159/69 100/160/69 +f 97/161/66 99/162/67 96/163/70 +f 102/164/71 101/165/71 103/166/71 +f 104/167/64 106/168/65 105/169/66 +f 107/170/67 105/169/66 106/168/65 +f 108/171/68 109/172/68 110/173/68 +f 111/174/69 109/175/69 108/176/69 +f 105/177/66 107/178/67 104/179/72 +f 110/180/71 109/181/71 111/182/71 +f 112/183/64 114/184/65 113/185/66 +f 115/186/67 113/185/66 114/184/65 +f 116/187/68 117/188/68 118/189/68 +f 119/190/69 117/191/69 116/192/69 +f 113/193/66 115/194/67 112/195/70 +f 118/196/71 117/197/71 119/198/71 +f 120/199/5 122/200/5 121/201/5 +f 123/202/1 124/203/1 122/204/1 +f 125/205/8 126/206/8 123/207/8 +f 127/208/3 129/209/3 128/210/3 +f 130/211/73 121/212/2 131/213/73 +f 132/214/4 128/215/4 124/216/4 +f 133/217/8 135/218/8 134/219/8 +f 136/220/74 138/221/75 137/222/75 +f 127/223/5 133/224/5 129/225/5 +f 139/226/4 126/227/4 125/228/4 +f 140/229/73 142/230/76 141/231/73 +f 143/232/77 144/233/74 136/220/74 +f 143/234/78 125/228/78 145/235/78 +f 146/236/79 141/231/73 147/237/79 +f 148/238/80 147/239/80 126/227/80 +f 129/225/81 150/240/81 149/241/81 +f 151/242/76 150/243/82 142/230/76 +f 137/222/75 153/244/83 152/245/83 +f 152/246/84 135/247/84 127/223/84 +f 128/210/3 155/248/3 154/249/3 +f 155/248/3 131/250/3 154/249/3 +f 130/251/8 157/252/8 156/253/8 +f 157/252/8 134/219/8 156/253/8 +f 134/254/80 155/255/80 128/215/80 +f 157/256/79 131/213/73 155/257/79 +f 148/258/3 139/259/3 121/260/3 +f 158/261/85 160/262/85 159/263/85 +f 161/264/1 163/265/1 162/266/1 +f 164/267/1 166/268/1 165/269/1 +f 167/270/5 169/271/5 168/272/5 +f 170/273/2 158/274/2 171/275/2 +f 171/276/8 158/277/8 159/278/8 +f 169/279/2 170/273/2 171/275/2 +f 159/280/86 160/281/86 172/282/86 +f 160/283/3 170/284/3 167/285/3 +f 173/286/1 174/287/1 172/288/1 +f 168/289/8 162/290/8 163/291/8 +f 166/292/3 174/293/3 165/294/3 +f 90/295/2 176/296/2 175/297/2 +f 177/298/87 59/299/87 90/295/87 +f 62/300/8 178/137/8 175/300/8 +f 62/100/45 176/301/62 179/301/45 +f 47/85/36 177/83/88 46/83/36 +f 88/302/3 181/303/3 180/302/3 +f 179/304/8 183/305/8 182/305/8 +f 182/306/89 181/307/62 184/307/89 +f 87/137/61 177/136/90 178/137/90 +f 89/308/3 185/95/3 58/95/3 +f 1/1/1 3/3/1 186/309/1 +f 4/4/2 6/6/2 7/310/2 +f 4/7/3 8/9/3 9/21/3 +f 5/11/4 9/10/4 11/311/4 +f 11/311/4 9/10/4 3/312/4 +f 3/312/4 9/10/4 186/313/4 +f 10/14/5 7/314/5 6/315/5 +f 7/314/5 10/14/5 8/316/5 +f 8/316/5 10/14/5 1/13/5 +f 10/16/6 3/3/6 2/2/6 +f 9/18/7 1/1/7 186/309/7 +f 6/20/8 11/21/8 10/317/8 +f 12/22/9 18/318/9 14/23/9 +f 16/27/8 42/319/8 15/25/8 +f 15/25/8 187/320/8 17/26/8 +f 19/30/10 34/321/10 187/322/10 +f 187/322/10 15/323/10 19/30/10 +f 15/323/10 18/28/10 19/30/10 +f 20/31/11 30/324/12 22/32/12 +f 23/34/13 32/44/14 25/35/14 +f 26/37/8 23/325/8 28/38/8 +f 30/42/3 20/49/3 29/40/3 +f 29/40/3 41/75/3 31/41/3 +f 14/43/16 25/35/16 32/44/16 +f 17/46/17 187/326/18 34/47/18 +f 33/48/17 35/327/19 36/54/19 +f 35/55/19 20/31/11 21/33/11 +f 37/58/8 42/319/8 16/27/8 +f 16/27/8 21/53/8 22/57/8 +f 38/59/14 24/36/15 37/60/14 +f 26/62/14 30/64/14 31/63/14 +f 38/59/14 22/61/14 30/64/14 +f 39/65/14 40/72/14 27/66/14 +f 38/38/3 40/328/3 39/68/3 +f 24/69/20 39/329/20 28/70/20 +f 26/62/21 27/66/21 40/72/22 +f 19/73/23 12/330/91 13/74/24 +f 15/25/26 42/319/30 14/76/27 +f 25/35/29 14/43/27 42/78/30 +f 41/79/25 13/45/24 32/44/32 +f 34/331/3 19/73/3 33/51/3 +f 19/73/3 41/75/3 29/40/3 +f 43/80/34 71/332/34 45/81/35 +f 46/83/36 188/333/37 48/84/37 +f 50/88/39 67/334/38 49/86/38 +f 67/334/38 48/335/38 49/86/38 +f 48/335/38 188/336/38 49/86/38 +f 56/94/8 189/337/8 78/338/8 +f 189/337/8 81/339/8 79/340/8 +f 79/340/8 77/341/8 78/338/8 +f 189/337/8 79/340/8 78/338/8 +f 179/304/8 182/305/8 64/342/8 +f 182/305/8 56/94/8 57/93/8 +f 91/343/8 182/305/8 92/344/8 +f 91/343/8 64/342/8 182/305/8 +f 92/344/8 93/345/8 91/343/8 +f 55/92/8 75/346/8 57/93/8 +f 57/93/8 92/344/8 182/305/8 +f 78/338/8 55/92/8 56/94/8 +f 58/95/42 185/95/43 59/96/43 +f 60/97/35 189/347/35 56/98/34 +f 62/100/45 179/301/45 64/101/46 +f 71/348/3 184/303/3 82/349/3 +f 184/303/3 88/302/3 53/350/3 +f 53/350/3 54/351/3 94/352/3 +f 184/303/3 53/350/3 94/352/3 +f 71/348/3 82/349/3 95/353/3 +f 86/354/3 45/105/3 66/104/3 +f 45/105/3 71/348/3 65/103/3 +f 66/104/3 65/103/3 85/355/3 +f 95/353/3 65/103/3 71/348/3 +f 82/349/3 83/356/3 95/353/3 +f 94/352/3 82/349/3 184/303/3 +f 52/357/3 89/308/3 58/95/3 +f 67/106/3 50/358/3 69/107/3 +f 50/358/3 73/359/3 44/360/3 +f 73/359/3 70/361/3 44/360/3 +f 70/361/3 43/362/3 44/360/3 +f 52/357/3 58/95/3 84/363/3 +f 58/95/3 67/106/3 84/363/3 +f 50/358/3 44/360/3 69/107/3 +f 68/108/3 84/363/3 67/106/3 +f 70/111/49 190/364/49 56/109/48 +f 190/364/49 61/365/49 56/109/48 +f 56/109/48 182/306/89 184/307/89 +f 71/110/48 43/366/49 70/111/49 +f 56/109/48 184/307/89 71/110/48 +f 72/112/50 190/367/51 70/113/51 +f 79/121/56 81/124/56 80/122/56 +f 81/124/57 189/347/35 60/97/35 +f 66/131/56 68/150/54 69/132/56 +f 69/132/57 44/82/35 45/81/35 +f 67/106/58 58/95/42 47/96/44 +f 49/135/59 188/368/59 46/136/60 +f 88/138/45 180/138/62 90/139/62 +f 73/114/50 50/88/39 51/87/39 +f 60/369/8 61/370/8 190/371/8 +f 190/371/8 72/372/8 60/369/8 +f 72/372/8 51/373/8 60/369/8 +f 49/135/8 87/137/8 74/374/8 +f 87/137/8 62/300/8 63/375/8 +f 87/137/8 63/375/8 74/374/8 +f 51/373/8 49/135/8 80/141/8 +f 60/369/8 51/373/8 80/141/8 +f 49/135/8 74/374/8 76/140/8 +f 63/102/47 92/146/53 57/116/53 +f 55/143/55 78/119/55 76/118/54 +f 89/139/45 52/89/40 53/91/41 +f 94/147/53 52/89/40 84/126/52 +f 95/148/55 84/126/52 68/129/54 +f 120/199/5 123/376/5 122/200/5 +f 123/202/1 132/377/1 124/203/1 +f 142/378/8 150/379/8 132/380/8 +f 120/377/8 130/251/8 144/381/8 +f 130/251/8 156/253/8 153/382/8 +f 144/381/8 130/251/8 138/383/8 +f 153/382/8 138/383/8 130/251/8 +f 142/378/8 132/380/8 141/384/8 +f 132/380/8 123/207/8 141/384/8 +f 120/377/8 144/381/8 145/385/8 +f 147/386/8 141/384/8 123/207/8 +f 126/206/8 147/386/8 123/207/8 +f 123/207/8 120/377/8 125/205/8 +f 120/377/8 145/385/8 125/205/8 +f 129/209/3 149/387/3 124/388/3 +f 124/388/3 128/210/3 129/209/3 +f 128/210/3 154/249/3 127/208/3 +f 154/249/3 152/389/3 127/208/3 +f 130/211/73 120/390/2 121/212/2 +f 132/214/4 134/254/4 128/215/4 +f 135/218/8 153/382/8 156/253/8 +f 156/253/8 134/219/8 135/218/8 +f 134/219/8 132/380/8 133/217/8 +f 132/380/8 150/379/8 133/217/8 +f 136/220/74 144/233/74 138/221/75 +f 127/223/5 135/247/5 133/224/5 +f 139/226/4 148/238/4 126/227/4 +f 140/229/73 151/242/76 142/230/76 +f 143/232/77 145/391/77 144/233/74 +f 143/234/78 139/226/78 125/228/78 +f 146/236/79 140/229/73 141/231/73 +f 148/238/80 146/392/80 147/239/80 +f 129/225/81 133/224/81 150/240/81 +f 151/242/76 149/393/82 150/243/82 +f 137/222/75 138/221/75 153/244/83 +f 152/246/84 153/394/84 135/247/84 +f 134/254/80 157/395/80 155/255/80 +f 157/256/79 130/211/73 131/213/73 +f 137/396/3 152/389/3 131/250/3 +f 152/389/3 154/249/3 131/250/3 +f 131/250/3 121/260/3 136/397/3 +f 137/396/3 131/250/3 136/397/3 +f 124/388/3 149/387/3 151/398/3 +f 124/388/3 151/398/3 140/399/3 +f 122/400/3 124/388/3 140/399/3 +f 122/400/3 140/399/3 146/401/3 +f 143/402/3 136/397/3 121/260/3 +f 139/259/3 143/402/3 121/260/3 +f 121/260/3 122/400/3 148/258/3 +f 122/400/3 146/401/3 148/258/3 +f 158/261/85 191/403/85 160/262/85 +f 161/264/1 192/404/1 163/265/1 +f 164/267/1 193/405/1 166/268/1 +f 168/272/5 163/406/5 192/407/5 +f 169/271/5 164/408/5 174/409/5 +f 164/408/5 165/410/5 174/409/5 +f 168/272/5 192/407/5 167/270/5 +f 169/271/5 174/409/5 168/272/5 +f 170/273/2 191/411/2 158/274/2 +f 159/278/8 193/412/8 164/413/8 +f 164/413/8 169/285/8 159/278/8 +f 169/285/8 171/276/8 159/278/8 +f 169/279/2 167/414/2 170/273/2 +f 166/415/86 193/416/86 172/282/86 +f 193/416/86 159/280/86 172/282/86 +f 160/281/86 161/417/86 173/418/86 +f 161/417/86 162/419/86 173/418/86 +f 160/281/86 173/418/86 172/282/86 +f 167/285/3 192/413/3 160/283/3 +f 192/413/3 161/420/3 160/283/3 +f 160/283/3 191/421/3 170/284/3 +f 173/286/1 168/422/1 174/287/1 +f 168/289/8 173/423/8 162/290/8 +f 166/292/3 172/424/3 174/293/3 +f 180/425/34 181/426/34 183/427/34 +f 180/425/34 183/427/34 176/296/34 +f 90/295/92 180/425/93 176/296/94 +f 185/428/87 90/295/87 59/299/87 +f 90/295/87 175/297/87 177/298/87 +f 175/297/87 178/429/87 177/298/87 +f 62/300/8 87/137/8 178/137/8 +f 62/100/45 175/100/62 176/301/62 +f 47/85/36 59/85/88 177/83/88 +f 88/302/3 184/303/3 181/303/3 +f 179/304/8 176/304/8 183/305/8 +f 182/306/89 183/306/62 181/307/62 +f 87/137/61 46/136/60 177/136/90 +f 89/308/3 90/308/3 185/95/3 +o Slide +v -0.029588 0.246255 -0.577080 +v 0.029588 0.246255 -0.633022 +v 0.029588 0.246255 -0.577080 +v 0.029588 0.187079 -0.577080 +v -0.029588 0.187079 -0.633022 +v -0.029588 0.187079 -0.577080 +v 0.029588 0.205540 -0.633022 +v -0.029588 0.229552 -0.633022 +v -0.029588 0.246255 -0.633022 +v 0.029588 0.187079 -0.633022 +v 0.032118 0.281420 -0.181591 +v -0.032118 0.289754 -0.181591 +v -0.032118 0.281420 -0.181591 +v -0.056481 0.121788 -0.384735 +v -0.056481 0.160121 -0.384735 +v 0.039181 0.138454 -0.384735 +v 0.056481 0.138454 -0.181591 +v 0.056481 0.261133 -0.181591 +v -0.056481 0.121788 -0.181591 +v 0.056481 0.121788 -0.384735 +v 0.056481 0.121788 -0.181591 +v -0.056481 0.138454 -0.181591 +v -0.039814 0.138454 -0.633022 +v -0.039814 0.121788 -0.384735 +v -0.039814 0.138454 -0.384735 +v -0.056481 0.229552 -0.522695 +v -0.056481 0.261133 -0.181591 +v 0.039814 0.138454 -0.384735 +v 0.039814 0.121788 -0.633022 +v 0.039814 0.138454 -0.633022 +v 0.056481 0.160121 -0.384735 +v 0.056481 0.160350 -0.633022 +v 0.056481 0.205540 -0.522695 +v -0.039814 0.121788 -0.633022 +v 0.039814 0.121788 -0.384735 +v 0.056481 0.261133 -0.633022 +v -0.032118 0.281420 -0.633022 +v -0.056481 0.261133 -0.633022 +v -0.032118 0.289754 -0.633022 +v 0.032118 0.289754 -0.181591 +v 0.032118 0.289754 -0.633022 +v 0.032118 0.281420 -0.633022 +v -0.050000 0.229552 -0.633022 +v -0.050000 0.229552 -0.522695 +v -0.050000 0.205540 -0.522695 +v -0.050000 0.205540 -0.633022 +v -0.056481 0.205540 -0.522695 +v 0.050000 0.229552 -0.522695 +v 0.056481 0.229552 -0.633022 +v 0.056481 0.229552 -0.522695 +v 0.050000 0.205540 -0.522695 +v 0.056481 0.205540 -0.633022 +v 0.050000 0.205540 -0.633022 +v 0.050000 0.229552 -0.633022 +v -0.005394 0.289516 -0.633819 +v 0.005394 0.323818 -0.633819 +v 0.005394 0.289516 -0.633819 +v -0.005394 0.323818 -0.633819 +v 0.005394 0.323818 -0.599517 +v -0.005394 0.323818 -0.599517 +v 0.005394 0.289516 -0.562850 +v -0.005394 0.289516 -0.562850 +v 0.005394 0.289795 -0.633540 +v 0.008727 0.289795 -0.587108 +v 0.005394 0.289795 -0.587108 +v -0.005394 0.289795 -0.587108 +v -0.008727 0.289795 -0.633540 +v -0.005394 0.289795 -0.633540 +v 0.005394 0.310206 -0.633540 +v -0.005394 0.310206 -0.633540 +v 0.005394 0.310206 -0.608926 +v -0.005394 0.310206 -0.608926 +v -0.008727 0.310206 -0.608926 +v -0.008727 0.289795 -0.587108 +v -0.008727 0.310206 -0.633540 +v 0.008727 0.310206 -0.608926 +v 0.008727 0.289795 -0.633540 +v 0.008727 0.310206 -0.633540 +v -0.056481 0.205540 -0.633022 +v -0.056481 0.160350 -0.633022 +v -0.056481 0.229552 -0.633022 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.6399 0.7685 -0.0000 +vn -0.6399 0.7685 -0.0000 +vn -0.7929 -0.6093 -0.0000 +vn -0.7955 -0.6060 -0.0005 +vn -0.7926 -0.6097 -0.0000 +vn 0.7928 -0.6094 -0.0000 +vn 0.7955 -0.6060 -0.0005 +vn 0.7957 -0.6057 -0.0006 +vn -0.0000 0.7303 0.6832 +vn -0.7928 -0.6094 -0.0000 +vn -0.7957 -0.6057 -0.0006 +vn 0.7926 -0.6097 -0.0000 +vt 0.092911 0.684435 +vt 0.089855 0.671519 +vt 0.092911 0.671519 +vt 0.354586 0.672632 +vt 0.344381 0.685548 +vt 0.344381 0.672632 +vt 0.206551 0.673047 +vt 0.209606 0.685963 +vt 0.206551 0.685963 +vt 0.128661 0.677165 +vt 0.131717 0.677165 +vt 0.131717 0.684187 +vt 0.128661 0.687371 +vt 0.125606 0.687371 +vt 0.125606 0.680046 +vt 0.089855 0.684435 +vt 0.354586 0.685548 +vt 0.209606 0.673047 +vt 0.131717 0.687371 +vt 0.125606 0.677165 +vt 0.063094 0.517248 +vt 0.077115 0.515811 +vt 0.077115 0.517248 +vt 0.157843 0.697224 +vt 0.151233 0.697224 +vt 0.154969 0.676344 +vt 0.057777 0.541903 +vt 0.057777 0.520746 +vt 0.285202 0.565673 +vt 0.274107 0.541018 +vt 0.285202 0.541018 +vt 0.082432 0.541903 +vt 0.057777 0.544778 +vt 0.136231 0.644951 +vt 0.133357 0.631391 +vt 0.136231 0.631391 +vt 0.151942 0.638926 +vt 0.139968 0.631391 +vt 0.157388 0.620296 +vt 0.109962 0.632696 +vt 0.107088 0.619135 +vt 0.109962 0.619135 +vt 0.113699 0.632696 +vt 0.113738 0.619135 +vt 0.121532 0.625161 +vt 0.076295 0.688899 +vt 0.089855 0.688899 +vt 0.103450 0.518685 +vt 0.086070 0.515811 +vt 0.103450 0.515811 +vt 0.231790 0.688984 +vt 0.226472 0.664328 +vt 0.231790 0.664328 +vt 0.176531 0.639683 +vt 0.181848 0.664339 +vt 0.176531 0.664339 +vt 0.133357 0.542324 +vt 0.133260 0.547538 +vt 0.133260 0.542226 +vt 0.101218 0.527071 +vt 0.088302 0.527071 +vt 0.086070 0.518685 +vt 0.088302 0.537276 +vt 0.101218 0.537276 +vt 0.101770 0.543341 +vt 0.271087 0.590329 +vt 0.285107 0.565673 +vt 0.285107 0.590329 +vt 0.087750 0.544778 +vt 0.087750 0.543341 +vt 0.131743 0.542226 +vt 0.133181 0.566881 +vt 0.131743 0.566881 +vt 0.133181 0.591537 +vt 0.131743 0.591537 +vt 0.132534 0.634040 +vt 0.131119 0.640066 +vt 0.131119 0.634040 +vt 0.258439 0.613448 +vt 0.257024 0.609307 +vt 0.258439 0.609307 +vt 0.278036 0.607848 +vt 0.279450 0.613874 +vt 0.278036 0.613874 +vt 0.282177 0.607848 +vt 0.278036 0.601822 +vt 0.282177 0.601822 +vt 0.092911 0.677545 +vt 0.094325 0.671519 +vt 0.094325 0.677545 +vt 0.255609 0.613448 +vt 0.257024 0.613448 +vt 0.094325 0.683571 +vt 0.281887 0.485497 +vt 0.277746 0.479471 +vt 0.281887 0.479471 +vt 0.786280 0.515326 +vt 0.770512 0.499558 +vt 0.786280 0.499558 +vt 0.722175 0.451879 +vt 0.737943 0.436111 +vt 0.737943 0.451879 +vt 0.830449 0.815071 +vt 0.846218 0.798216 +vt 0.846218 0.815071 +vt 0.690638 0.451879 +vt 0.706407 0.419256 +vt 0.706407 0.451879 +vt 0.718250 0.533728 +vt 0.723122 0.555072 +vt 0.718250 0.555072 +vt 0.824551 0.567530 +vt 0.819678 0.546186 +vt 0.824551 0.546186 +vt 0.712664 0.451751 +vt 0.684381 0.451751 +vt 0.674870 0.451879 +vt 0.674998 0.451751 +vt 0.712664 0.440436 +vt 0.706407 0.436111 +vt 0.684381 0.440436 +vt 0.722175 0.419256 +vt 0.722047 0.430407 +vt 0.674870 0.419256 +vt 0.690638 0.436111 +vt 0.722047 0.451751 +vt 0.674998 0.430407 +vt 0.764126 0.541124 +vt 0.754743 0.552438 +vt 0.754743 0.531094 +vt 0.825130 0.493798 +vt 0.820258 0.483768 +vt 0.825130 0.483768 +vt 0.825130 0.505113 +vt 0.820258 0.493798 +vt 0.764817 0.561821 +vt 0.759944 0.552438 +vt 0.764817 0.552438 +vt 0.773509 0.542409 +vt 0.764126 0.531094 +vt 0.773509 0.531094 +vt 0.814806 0.546186 +vt 0.819678 0.556215 +vt 0.814806 0.556215 +vt 0.819678 0.567530 +vt 0.814806 0.567530 +vt 0.812468 0.419256 +vt 0.817341 0.428638 +vt 0.812468 0.428638 +vt 0.063094 0.515811 +vt 0.151233 0.672568 +vt 0.157843 0.672568 +vt 0.082432 0.520746 +vt 0.274107 0.565673 +vt 0.082432 0.544778 +vt 0.154969 0.676206 +vt 0.157843 0.676206 +vt 0.133357 0.644951 +vt 0.147801 0.638926 +vt 0.147801 0.644951 +vt 0.140007 0.644951 +vt 0.136231 0.620296 +vt 0.133357 0.620296 +vt 0.157388 0.644951 +vt 0.151942 0.644951 +vt 0.107088 0.632696 +vt 0.125673 0.619135 +vt 0.131119 0.619135 +vt 0.125673 0.625161 +vt 0.131119 0.643791 +vt 0.109962 0.643791 +vt 0.107088 0.643791 +vt 0.121532 0.619135 +vt 0.076295 0.671519 +vt 0.226472 0.688984 +vt 0.181848 0.639683 +vt 0.083847 0.530254 +vt 0.082432 0.530254 +vt 0.082432 0.522461 +vt 0.107088 0.522461 +vt 0.107088 0.530254 +vt 0.105673 0.530254 +vt 0.105673 0.534395 +vt 0.101218 0.534395 +vt 0.088302 0.530254 +vt 0.107088 0.534395 +vt 0.107088 0.539842 +vt 0.082432 0.539842 +vt 0.082432 0.534395 +vt 0.083847 0.534395 +vt 0.271087 0.565673 +vt 0.101770 0.544778 +vt 0.133181 0.542226 +vt 0.132534 0.640066 +vt 0.279450 0.607848 +vt 0.255609 0.609307 +vt 0.092911 0.683571 +vt 0.277746 0.485497 +vt 0.770512 0.515326 +vt 0.722175 0.436111 +vt 0.830449 0.798216 +vt 0.690638 0.419256 +vt 0.723122 0.533728 +vt 0.764126 0.552438 +vt 0.820258 0.505113 +vt 0.759944 0.561821 +vt 0.817341 0.419256 +s 0 +f 194/430/95 195/431/95 196/432/95 +f 197/433/96 194/434/96 196/435/96 +f 197/436/97 198/437/97 199/438/97 +f 196/439/98 195/440/98 200/441/98 +f 199/442/99 198/443/99 201/444/99 +f 194/430/95 202/445/95 195/431/95 +f 197/433/96 199/446/96 194/434/96 +f 197/436/97 203/447/97 198/437/97 +f 200/441/98 203/448/98 197/442/98 +f 197/442/98 196/439/98 200/441/98 +f 201/444/99 202/449/99 194/439/99 +f 194/439/99 199/442/99 201/444/99 +s 1 +f 204/450/100 205/451/100 206/452/100 +f 207/453/96 208/454/96 209/455/96 +f 210/456/100 211/457/100 204/450/100 +f 212/458/95 213/459/95 214/460/95 +f 215/461/100 214/462/100 210/456/100 +f 216/463/98 217/464/98 218/465/98 +f 219/466/98 208/467/98 220/468/98 +f 221/469/99 222/470/99 223/471/99 +f 224/472/99 225/473/99 226/474/99 +f 227/475/95 228/431/95 217/476/95 +f 216/477/96 222/478/96 227/479/96 +f 229/480/101 204/481/101 211/482/101 +f 220/483/102 230/484/102 231/485/102 +f 221/486/100 224/487/100 209/488/100 +f 208/467/103 216/463/104 218/465/105 +f 224/472/106 223/471/107 225/473/108 +f 198/489/96 203/490/96 223/491/96 +f 195/492/96 202/493/96 230/494/96 +f 232/495/97 233/496/97 234/497/97 +f 230/494/96 234/498/96 235/499/96 +f 206/500/98 232/501/98 230/502/98 +f 235/502/99 233/503/99 204/504/99 +f 219/505/95 236/506/95 237/507/95 +f 238/508/96 219/509/96 237/510/96 +f 239/511/97 240/512/97 238/513/97 +f 238/514/98 236/515/98 239/516/98 +f 241/517/95 242/518/95 243/519/95 +f 244/520/96 243/509/96 226/521/96 +f 245/522/97 244/517/97 226/519/97 +f 241/523/99 246/524/99 247/525/99 +f 248/526/96 249/527/96 250/528/96 +f 251/529/97 252/530/97 249/531/97 +f 253/532/109 254/533/109 252/534/109 +f 255/535/95 250/536/95 254/537/95 +f 256/538/95 257/539/95 258/540/95 +f 259/541/95 260/542/95 261/543/95 +f 262/544/99 250/529/99 249/537/99 +f 263/545/98 248/546/98 261/547/98 +f 264/548/99 249/537/99 252/549/99 +f 265/550/98 251/535/98 263/545/98 +f 264/548/99 254/551/99 258/552/99 +f 265/550/98 255/553/98 253/554/98 +f 258/552/99 250/529/99 256/555/99 +f 259/556/98 248/546/98 255/553/98 +f 266/557/98 260/558/98 267/559/98 +f 265/560/109 267/561/109 259/562/109 +f 263/563/97 266/564/97 265/560/97 +f 261/565/96 268/566/96 263/567/96 +f 269/568/99 270/569/99 271/570/99 +f 258/571/109 269/572/109 264/573/109 +f 264/573/97 271/574/97 262/575/97 +f 262/576/96 270/577/96 256/578/96 +f 204/450/100 233/579/100 205/451/100 +f 209/455/96 224/580/96 213/581/96 +f 213/581/96 207/453/96 209/455/96 +f 204/450/100 206/452/100 210/456/100 +f 206/452/100 220/582/100 215/461/100 +f 210/456/100 206/452/100 215/461/100 +f 212/458/95 207/583/95 213/459/95 +f 215/461/100 212/584/100 214/462/100 +f 224/580/96 213/581/96 221/585/96 +f 213/581/96 228/586/96 221/585/96 +f 216/463/98 227/587/98 217/464/98 +f 240/588/98 272/589/98 273/590/98 +f 208/467/98 207/464/98 215/591/98 +f 207/464/98 212/592/98 215/591/98 +f 240/588/98 273/590/98 208/467/98 +f 231/593/98 274/594/98 219/466/98 +f 219/466/98 240/588/98 208/467/98 +f 215/591/98 220/468/98 208/467/98 +f 220/468/98 231/593/98 219/466/98 +f 221/469/99 228/595/99 222/470/99 +f 242/596/99 229/597/99 243/598/99 +f 229/597/99 211/599/99 243/598/99 +f 210/600/99 214/601/99 213/595/99 +f 225/473/99 245/602/99 226/474/99 +f 226/474/99 243/598/99 224/472/99 +f 243/598/99 211/599/99 224/472/99 +f 211/599/99 210/600/99 224/472/99 +f 210/600/99 213/595/99 224/472/99 +f 227/475/95 222/603/95 228/431/95 +f 216/477/96 223/491/96 222/478/96 +f 229/480/101 235/604/101 204/481/101 +f 220/483/102 206/605/102 230/484/102 +f 208/467/110 273/590/111 216/463/111 +f 224/472/106 221/469/112 223/471/107 +f 246/606/96 245/607/96 225/608/96 +f 225/608/96 223/491/96 203/490/96 +f 223/491/96 216/477/96 198/489/96 +f 216/477/96 273/609/96 198/489/96 +f 273/609/96 272/610/96 239/611/96 +f 239/611/96 236/612/96 201/613/96 +f 273/609/96 239/611/96 198/489/96 +f 200/614/96 246/606/96 203/490/96 +f 246/606/96 225/608/96 203/490/96 +f 239/611/96 201/613/96 198/489/96 +f 236/612/96 274/615/96 231/616/96 +f 231/616/96 230/494/96 202/493/96 +f 230/494/96 235/499/96 195/492/96 +f 235/499/96 229/617/96 195/492/96 +f 229/617/96 242/618/96 247/619/96 +f 247/619/96 246/606/96 200/614/96 +f 229/617/96 247/619/96 195/492/96 +f 201/613/96 236/612/96 202/493/96 +f 236/612/96 231/616/96 202/493/96 +f 247/619/96 200/614/96 195/492/96 +f 232/495/97 205/620/97 233/496/97 +f 230/494/96 232/621/96 234/498/96 +f 206/500/98 205/622/98 232/501/98 +f 235/502/99 234/501/99 233/503/99 +f 219/505/95 274/623/95 236/506/95 +f 238/508/96 240/521/96 219/509/96 +f 239/511/97 272/624/97 240/512/97 +f 238/514/98 237/511/98 236/515/98 +f 241/517/95 247/432/95 242/518/95 +f 244/520/96 241/625/96 243/509/96 +f 245/522/97 246/626/97 244/517/97 +f 241/523/99 244/627/99 246/524/99 +f 248/526/96 251/628/96 249/527/96 +f 251/529/97 253/629/97 252/530/97 +f 253/532/109 255/630/109 254/533/109 +f 255/535/95 248/631/95 250/536/95 +f 256/538/95 270/632/95 257/539/95 +f 259/541/95 267/574/95 260/542/95 +f 262/544/99 256/555/99 250/529/99 +f 263/545/98 251/535/98 248/546/98 +f 264/548/99 262/544/99 249/537/99 +f 265/550/98 253/554/98 251/535/98 +f 264/548/99 252/549/99 254/551/99 +f 265/550/98 259/556/98 255/553/98 +f 258/552/99 254/551/99 250/529/99 +f 259/556/98 261/547/98 248/546/98 +f 266/557/98 268/633/98 260/558/98 +f 265/560/109 266/564/109 267/561/109 +f 263/563/97 268/634/97 266/564/97 +f 261/565/96 260/635/96 268/566/96 +f 269/568/99 257/633/99 270/569/99 +f 258/571/109 257/542/109 269/572/109 +f 264/573/97 269/572/97 271/574/97 +f 262/576/96 271/636/96 270/577/96 +o Grip +v -0.033307 -0.011380 -0.474134 +v 0.033307 -0.011380 -0.632792 +v 0.033307 -0.011380 -0.474134 +v -0.033307 -0.016443 -0.474134 +v 0.033307 -0.016443 -0.632792 +v 0.033307 -0.016443 -0.474134 +v -0.033307 -0.011380 -0.632792 +v -0.033307 -0.016443 -0.632792 +v -0.026880 0.073120 -0.633548 +v 0.026880 0.126881 -0.633548 +v 0.026880 0.073120 -0.633548 +v -0.026880 0.126881 -0.633548 +v 0.026880 0.126881 -0.579787 +v -0.026880 0.126881 -0.579787 +v 0.026880 0.073120 -0.579787 +v -0.026880 0.073120 -0.579787 +v -0.020194 0.004606 -0.633728 +v 0.020194 0.052061 -0.633728 +v 0.020194 0.004606 -0.633728 +v -0.020194 0.052061 -0.633728 +v 0.020194 0.052061 -0.586274 +v -0.020194 0.052061 -0.586274 +v 0.020194 0.004606 -0.586274 +v -0.020194 0.004606 -0.586274 +v -0.002511 0.083278 -0.632597 +v 0.002510 0.083278 -0.634072 +v 0.002510 0.083278 -0.632597 +v 0.012559 0.087441 -0.632597 +v 0.016722 0.097490 -0.632597 +v 0.012559 0.112560 -0.632597 +v -0.016722 0.102511 -0.634072 +v -0.016722 0.097490 -0.632597 +v -0.016722 0.102511 -0.632597 +v 0.012559 0.112560 -0.634072 +v 0.016722 0.102511 -0.634072 +v 0.012559 0.087441 -0.634072 +v -0.002511 0.116722 -0.634072 +v 0.002510 0.116722 -0.632597 +v 0.002510 0.116722 -0.634072 +v 0.016722 0.102511 -0.632597 +v -0.012560 0.112560 -0.634072 +v -0.012560 0.112560 -0.632597 +v 0.016722 0.097490 -0.634072 +v -0.016722 0.097490 -0.634072 +v -0.012560 0.087441 -0.632597 +v -0.012560 0.087441 -0.634072 +v -0.002511 0.083278 -0.634072 +v -0.002511 0.116722 -0.632597 +v -0.047693 0.135679 -0.632792 +v 0.047693 0.135679 -0.407453 +v 0.047693 0.135679 -0.632792 +v -0.040849 0.056769 -0.369114 +v -0.044958 0.051103 -0.369114 +v -0.047693 -0.016443 -0.369114 +v 0.044958 0.068134 -0.632792 +v 0.040492 0.061975 -0.632792 +v -0.047693 -0.006900 -0.435033 +v -0.047693 -0.025985 -0.435033 +v 0.047693 0.068134 -0.632792 +v -0.047693 0.135679 -0.407453 +v -0.047693 0.068134 -0.632792 +v -0.047693 0.068134 -0.374636 +v -0.040492 0.061975 -0.371643 +v -0.040492 0.057261 -0.369353 +v 0.040492 0.057261 -0.369353 +v -0.044958 0.068134 -0.632792 +v -0.040492 0.061975 -0.632792 +v -0.044958 0.068134 -0.374636 +v -0.040492 0.057261 -0.632792 +v 0.044958 0.068134 -0.374636 +v 0.047693 0.068134 -0.374636 +v -0.044958 0.051103 -0.632792 +v -0.047693 0.051103 -0.369114 +v 0.044958 0.051103 -0.632792 +v 0.044958 0.051103 -0.369114 +v 0.040492 0.061975 -0.371643 +v 0.040492 0.057261 -0.632792 +v 0.047693 0.051103 -0.369114 +v 0.047693 -0.016443 -0.369114 +v 0.047693 -0.006900 -0.435033 +v -0.041661 -0.033109 -0.369114 +v 0.041661 -0.033109 -0.435033 +v 0.041661 -0.033109 -0.369114 +v 0.047693 0.051103 -0.632792 +v 0.041710 -0.016443 -0.435033 +v 0.047693 -0.025985 -0.435033 +v -0.041710 -0.016443 -0.435033 +v 0.041710 -0.016443 -0.632792 +v 0.047693 -0.006900 -0.632792 +v -0.047693 -0.006900 -0.632792 +v -0.041710 -0.016443 -0.632792 +v -0.047693 -0.023489 -0.369114 +v -0.041661 -0.033109 -0.435033 +v 0.040849 0.056769 -0.369114 +v -0.047693 0.051103 -0.632792 +v 0.047693 -0.023489 -0.369114 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 1.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.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.0000 0.1390 0.9903 +vn -0.0000 0.4370 0.8995 +vn -0.0000 0.4370 0.8994 +vn -0.0000 0.4371 0.8994 +vn -0.8096 -0.5870 -0.0000 +vn -0.8096 0.5870 -0.0000 +vn -0.8096 0.5870 0.0001 +vn 0.8096 0.5870 -0.0000 +vn 0.8096 -0.5870 -0.0000 +vn 0.8472 -0.5312 -0.0000 +vn -0.8472 -0.5312 -0.0000 +vn -0.8403 -0.5419 0.0183 +vn -0.7729 -0.6345 0.0022 +vn -0.7632 -0.6462 -0.0000 +vn 0.7729 -0.6345 0.0022 +vn 0.8403 -0.5419 0.0183 +vn 0.7632 -0.6462 -0.0000 +vn -0.0000 0.1391 0.9903 +vn 0.8096 0.5870 0.0001 +vn -0.8471 -0.5311 0.0201 +vn 0.8471 -0.5311 0.0201 +vt 0.497093 0.546556 +vt 0.489787 0.555589 +vt 0.489787 0.546505 +vt 0.558621 0.611549 +vt 0.559091 0.621426 +vt 0.558621 0.621426 +vt 0.489470 0.555592 +vt 0.489470 0.546508 +vt 0.469847 0.629818 +vt 0.469377 0.638902 +vt 0.469377 0.629818 +vt 0.840276 0.397745 +vt 0.812280 0.369750 +vt 0.840276 0.369750 +vt 0.672301 0.547852 +vt 0.644305 0.519856 +vt 0.672301 0.519856 +vt 0.758120 0.546311 +vt 0.730125 0.518315 +vt 0.758120 0.518315 +vt 0.728292 0.544994 +vt 0.700297 0.516998 +vt 0.728292 0.516998 +vt 0.786116 0.512334 +vt 0.758120 0.540329 +vt 0.758120 0.512334 +vt 0.814112 0.512322 +vt 0.786116 0.540318 +vt 0.786116 0.512322 +vt 0.903571 0.559623 +vt 0.865925 0.521977 +vt 0.903571 0.521977 +vt 0.903571 0.521927 +vt 0.865925 0.484281 +vt 0.903571 0.484281 +vt 0.941217 0.559573 +vt 0.941217 0.521927 +vt 0.901107 0.443199 +vt 0.863461 0.405553 +vt 0.901107 0.405553 +vt 0.901107 0.367907 +vt 0.863461 0.367907 +vt 0.712878 0.532108 +vt 0.675232 0.569754 +vt 0.675232 0.532108 +vt 0.894503 0.935849 +vt 0.896659 0.921485 +vt 0.896659 0.935849 +vt 0.962007 0.841270 +vt 0.962007 0.836599 +vt 0.966136 0.831303 +vt 0.911963 0.936525 +vt 0.909807 0.922161 +vt 0.911963 0.922161 +vt 0.962007 0.827174 +vt 0.962007 0.822503 +vt 0.966136 0.817207 +vt 0.924171 0.933456 +vt 0.926328 0.919092 +vt 0.926328 0.933456 +vt 0.867931 0.923275 +vt 0.872247 0.937640 +vt 0.867931 0.937640 +vt 0.930644 0.933456 +vt 0.930644 0.919092 +vt 0.916280 0.936525 +vt 0.919855 0.919092 +vt 0.919855 0.933456 +vt 0.865775 0.937640 +vt 0.861459 0.923275 +vt 0.865775 0.923275 +vt 0.900975 0.935849 +vt 0.900975 0.921485 +vt 0.909807 0.936525 +vt 0.905491 0.922161 +vt 0.890187 0.921485 +vt 0.890187 0.935849 +vt 0.497093 0.555641 +vt 0.559091 0.611549 +vt 0.469847 0.638902 +vt 0.812280 0.397745 +vt 0.644305 0.547852 +vt 0.730125 0.546311 +vt 0.700297 0.544994 +vt 0.786116 0.540329 +vt 0.814112 0.540318 +vt 0.865925 0.559623 +vt 0.865925 0.521927 +vt 0.903571 0.559573 +vt 0.863461 0.443199 +vt 0.712878 0.569754 +vt 0.894503 0.921485 +vt 0.962833 0.834606 +vt 0.970808 0.831303 +vt 0.965311 0.844574 +vt 0.972800 0.832128 +vt 0.976103 0.835432 +vt 0.971975 0.845399 +vt 0.976103 0.840103 +vt 0.975278 0.842096 +vt 0.967303 0.845399 +vt 0.962833 0.820510 +vt 0.970808 0.817207 +vt 0.965311 0.830478 +vt 0.972800 0.818032 +vt 0.976103 0.821336 +vt 0.971975 0.831303 +vt 0.976103 0.826007 +vt 0.975278 0.828000 +vt 0.967303 0.831303 +vt 0.924171 0.919092 +vt 0.872247 0.923275 +vt 0.916280 0.922161 +vt 0.861459 0.937640 +vt 0.905491 0.936525 +vt 0.572622 0.567859 +vt 0.583320 0.554957 +vt 0.583320 0.567859 +vt 0.488526 0.563967 +vt 0.487917 0.563443 +vt 0.487511 0.557192 +vt 0.479648 0.573331 +vt 0.480220 0.573993 +vt 0.473368 0.572925 +vt 0.498951 0.544326 +vt 0.497757 0.544336 +vt 0.498354 0.540557 +vt 0.480222 0.617553 +vt 0.486502 0.630456 +vt 0.480222 0.630456 +vt 0.530689 0.627844 +vt 0.526463 0.640782 +vt 0.526463 0.626001 +vt 0.488579 0.564463 +vt 0.488579 0.564014 +vt 0.500587 0.564014 +vt 0.526163 0.640780 +vt 0.525288 0.640780 +vt 0.526163 0.625999 +vt 0.591673 0.554640 +vt 0.590868 0.554640 +vt 0.590798 0.554627 +vt 0.524993 0.640782 +vt 0.525288 0.625827 +vt 0.592139 0.596801 +vt 0.591839 0.611580 +vt 0.591839 0.596799 +vt 0.591673 0.539543 +vt 0.591980 0.554640 +vt 0.590256 0.596799 +vt 0.590828 0.611883 +vt 0.590256 0.611897 +vt 0.591267 0.596799 +vt 0.591267 0.611752 +vt 0.590828 0.596799 +vt 0.584740 0.640183 +vt 0.578460 0.640183 +vt 0.579347 0.636409 +vt 0.496650 0.540561 +vt 0.487511 0.544271 +vt 0.487511 0.540497 +vt 0.502261 0.608318 +vt 0.502568 0.593221 +vt 0.502568 0.608318 +vt 0.496363 0.628942 +vt 0.495475 0.628055 +vt 0.497250 0.628055 +vt 0.495475 0.642198 +vt 0.496363 0.641311 +vt 0.497250 0.642198 +vt 0.578460 0.625086 +vt 0.579347 0.625086 +vt 0.497698 0.544327 +vt 0.498951 0.555649 +vt 0.497698 0.555650 +vt 0.488549 0.544262 +vt 0.487511 0.556540 +vt 0.488406 0.555650 +vt 0.496650 0.544336 +vt 0.577573 0.636409 +vt 0.576911 0.640183 +vt 0.576911 0.636409 +vt 0.497912 0.628949 +vt 0.497912 0.641304 +vt 0.572622 0.554957 +vt 0.487511 0.563443 +vt 0.501655 0.557192 +vt 0.500640 0.563967 +vt 0.501655 0.563443 +vt 0.501249 0.563443 +vt 0.487511 0.584936 +vt 0.487511 0.586181 +vt 0.487041 0.584936 +vt 0.486624 0.587069 +vt 0.481231 0.587069 +vt 0.481231 0.586663 +vt 0.480659 0.586001 +vt 0.487511 0.573812 +vt 0.487511 0.575058 +vt 0.487041 0.575058 +vt 0.486624 0.572925 +vt 0.481231 0.573331 +vt 0.481231 0.572925 +vt 0.480659 0.573993 +vt 0.480220 0.586001 +vt 0.479648 0.586663 +vt 0.479648 0.587069 +vt 0.473368 0.587069 +vt 0.479648 0.572925 +vt 0.497913 0.540561 +vt 0.502580 0.540521 +vt 0.502580 0.555618 +vt 0.486502 0.615674 +vt 0.530689 0.640746 +vt 0.501655 0.565049 +vt 0.501655 0.571481 +vt 0.501249 0.565049 +vt 0.487511 0.571481 +vt 0.500587 0.564463 +vt 0.487511 0.565049 +vt 0.487917 0.565049 +vt 0.590798 0.539543 +vt 0.524993 0.625699 +vt 0.592139 0.611582 +vt 0.591980 0.539543 +vt 0.590783 0.611897 +vt 0.584740 0.625086 +vt 0.577805 0.640183 +vt 0.502261 0.593221 +vt 0.578460 0.636409 +vt 0.488549 0.555585 +vt 0.496776 0.546559 +vt 0.496776 0.555643 +vt 0.500760 0.555650 +vt 0.501655 0.556540 +s 0 +f 275/637/113 276/638/113 277/639/113 +f 277/640/114 278/641/114 275/642/114 +f 277/639/115 279/643/115 280/644/115 +f 281/645/116 278/646/116 282/647/116 +f 283/648/114 284/649/114 285/650/114 +f 286/651/117 287/652/117 284/653/117 +f 288/654/118 289/655/118 287/656/118 +f 290/657/113 285/658/113 289/659/113 +f 287/660/116 285/661/116 284/662/116 +f 286/663/115 290/664/115 288/665/115 +f 291/666/114 292/667/114 293/668/114 +f 294/669/117 295/670/117 292/671/117 +f 296/672/118 297/669/118 295/673/118 +f 298/674/113 293/675/113 297/676/113 +f 295/677/116 293/675/116 292/678/116 +f 294/679/115 298/680/115 296/681/115 +f 299/682/113 300/683/113 301/684/113 +f 302/685/118 303/686/118 304/687/118 +f 305/688/115 306/689/115 307/690/115 +f 308/691/114 309/692/114 310/693/114 +f 311/694/117 312/695/117 313/696/117 +f 309/697/119 304/698/119 314/699/119 +f 308/700/120 312/695/120 304/701/120 +f 307/690/121 315/702/121 305/688/121 +f 316/703/122 311/694/122 315/704/122 +f 303/705/123 310/706/123 317/707/123 +f 302/708/124 300/683/124 310/709/124 +f 318/710/125 319/711/125 306/689/125 +f 320/712/126 299/682/126 319/713/126 +f 314/699/116 317/707/116 309/697/116 +f 275/637/113 281/714/113 276/638/113 +f 277/640/114 280/715/114 278/641/114 +f 277/639/115 276/638/115 279/643/115 +f 281/645/116 275/716/116 278/646/116 +f 283/648/114 286/717/114 284/649/114 +f 286/651/117 288/718/117 287/652/117 +f 288/654/118 290/719/118 289/655/118 +f 290/657/113 283/720/113 285/658/113 +f 287/660/116 289/721/116 285/661/116 +f 286/663/115 283/722/115 290/664/115 +f 291/666/114 294/723/114 292/667/114 +f 294/669/117 296/724/117 295/670/117 +f 296/672/118 298/725/118 297/669/118 +f 298/674/113 291/726/113 293/675/113 +f 295/677/116 297/676/116 293/675/116 +f 294/679/115 291/727/115 298/680/115 +f 299/682/113 321/728/113 300/683/113 +f 303/686/118 314/729/118 304/687/118 +f 304/687/118 312/730/118 301/731/118 +f 312/730/118 322/732/118 301/731/118 +f 322/732/118 316/733/118 319/734/118 +f 316/733/118 307/735/118 319/734/118 +f 307/735/118 306/736/118 319/734/118 +f 319/734/118 299/737/118 322/732/118 +f 299/737/118 301/731/118 322/732/118 +f 301/731/118 302/685/118 304/687/118 +f 305/688/115 318/710/115 306/689/115 +f 309/692/114 317/738/114 310/693/114 +f 310/693/114 300/739/114 313/740/114 +f 300/739/114 321/741/114 313/740/114 +f 321/741/114 320/742/114 315/743/114 +f 320/742/114 318/744/114 315/743/114 +f 318/744/114 305/745/114 315/743/114 +f 315/743/114 311/746/114 321/741/114 +f 311/746/114 313/740/114 321/741/114 +f 313/740/114 308/691/114 310/693/114 +f 311/694/117 322/747/117 312/695/117 +f 309/697/119 308/748/119 304/698/119 +f 308/700/120 313/696/120 312/695/120 +f 307/690/121 316/749/121 315/702/121 +f 316/703/122 322/747/122 311/694/122 +f 303/705/123 302/750/123 310/706/123 +f 302/708/124 301/684/124 300/683/124 +f 318/710/125 320/751/125 319/711/125 +f 320/712/126 321/728/126 299/682/126 +f 314/699/116 303/705/116 317/707/116 +s 1 +f 323/752/117 324/753/117 325/754/117 +f 326/755/127 327/756/118 328/757/118 +f 329/758/114 330/759/114 325/760/114 +f 331/761/115 332/762/115 328/763/115 +f 324/764/116 333/765/116 325/766/116 +f 334/767/115 335/768/115 336/769/115 +f 337/770/128 338/771/129 339/772/130 +f 340/773/113 336/769/113 335/768/113 +f 341/774/131 342/775/131 340/773/131 +f 327/776/132 326/777/133 338/778/132 +f 343/779/115 337/780/115 341/774/115 +f 344/781/113 333/782/113 345/783/113 +f 346/784/117 347/785/117 327/776/117 +f 348/786/134 339/787/134 349/788/134 +f 330/789/135 344/782/135 350/790/135 +f 351/791/116 350/790/116 339/787/116 +f 352/792/116 353/793/116 354/794/116 +f 355/795/113 356/796/113 357/797/113 +f 348/798/117 352/799/117 358/800/117 +f 359/801/114 354/802/114 360/803/114 +f 331/804/114 361/805/114 332/806/114 +f 354/794/136 362/807/136 363/808/136 +f 361/809/137 364/810/137 365/811/137 +f 359/812/113 361/809/113 280/644/113 +f 328/757/118 366/813/118 355/814/118 +f 355/795/138 332/762/139 367/815/140 +f 360/816/141 357/817/142 356/818/143 +f 356/819/114 367/820/114 359/801/114 +f 323/752/117 334/821/117 324/753/117 +f 327/756/118 347/822/118 328/757/118 +f 328/757/118 353/823/118 368/824/144 +f 353/823/118 352/825/118 349/826/118 +f 349/826/118 368/824/144 353/823/118 +f 368/824/144 326/755/127 328/757/118 +f 282/827/114 365/828/114 281/829/114 +f 365/828/114 364/830/114 281/829/114 +f 364/830/114 369/831/114 346/832/114 +f 364/830/114 346/832/114 281/829/114 +f 346/832/114 343/833/114 281/829/114 +f 362/834/114 279/835/114 276/836/114 +f 276/836/114 281/829/114 343/833/114 +f 363/837/114 362/834/114 276/836/114 +f 348/838/114 358/839/114 363/837/114 +f 351/840/114 348/838/114 276/836/114 +f 348/838/114 363/837/114 276/836/114 +f 276/836/114 343/833/114 351/840/114 +f 343/833/114 341/841/114 351/840/114 +f 340/842/114 335/843/114 323/844/114 +f 351/840/114 341/841/114 330/759/114 +f 341/841/114 340/842/114 323/844/114 +f 330/759/114 341/841/114 323/844/114 +f 323/844/114 325/760/114 330/759/114 +f 325/760/114 333/845/114 329/758/114 +f 332/762/115 366/846/115 328/763/115 +f 328/763/115 347/847/115 331/761/115 +f 347/847/115 369/848/115 331/761/115 +f 369/848/115 364/810/115 331/761/115 +f 324/764/116 345/849/116 333/765/116 +f 334/767/115 323/850/115 335/768/115 +f 345/851/128 324/852/128 344/853/128 +f 324/852/128 334/854/128 350/855/128 +f 344/853/128 324/852/128 350/855/128 +f 334/854/128 336/856/128 342/857/128 +f 334/854/128 342/857/128 337/770/128 +f 350/855/128 334/854/128 337/770/128 +f 326/755/127 368/824/144 339/772/130 +f 339/772/130 350/855/128 337/770/128 +f 338/771/129 326/755/127 339/772/130 +f 340/773/113 342/775/113 336/769/113 +f 341/774/131 337/780/131 342/775/131 +f 343/858/132 346/784/132 338/778/132 +f 346/784/132 327/776/132 338/778/132 +f 343/779/115 338/859/115 337/780/115 +f 344/781/113 329/860/113 333/782/113 +f 346/784/117 369/861/117 347/785/117 +f 351/791/134 339/787/134 348/786/134 +f 339/787/134 368/862/145 349/788/134 +f 330/789/135 329/783/135 344/782/135 +f 351/791/116 330/789/116 350/790/116 +f 363/808/116 358/863/116 354/794/116 +f 358/863/116 352/792/116 354/794/116 +f 353/793/116 370/864/116 360/816/116 +f 353/793/116 360/816/116 354/794/116 +f 355/795/113 367/815/113 356/796/113 +f 348/798/117 349/865/117 352/799/117 +f 354/794/136 359/866/136 362/807/136 +f 361/809/137 331/761/137 364/810/137 +f 280/644/113 279/643/113 362/867/113 +f 361/809/113 365/811/113 278/868/113 +f 365/811/113 282/869/113 278/868/113 +f 280/644/113 362/867/113 359/812/113 +f 361/809/113 278/868/113 280/644/113 +f 355/814/118 357/870/118 353/823/118 +f 357/870/118 370/871/118 353/823/118 +f 353/823/118 328/757/118 355/814/118 +f 355/795/138 366/846/146 332/762/139 +f 360/816/141 370/864/147 357/817/142 +f 332/806/114 361/805/114 367/820/114 +f 361/805/114 359/801/114 367/820/114 +f 359/801/114 360/803/114 356/819/114 +o Trigger +v -0.014593 0.047591 -0.195822 +v 0.014593 0.085742 -0.195822 +v 0.014593 0.047591 -0.195822 +v -0.014593 0.085742 -0.195822 +v 0.014593 0.123894 -0.205822 +v 0.019590 0.044652 -0.185835 +v 0.019590 0.088443 -0.185835 +v 0.019590 0.009440 -0.127512 +v -0.019590 0.123894 -0.195127 +v -0.019590 0.123894 -0.127512 +v 0.019590 0.123894 -0.127512 +v -0.019590 0.088443 -0.185835 +v -0.019590 0.044652 -0.185835 +v -0.019590 0.009440 -0.127512 +v -0.014593 0.012773 -0.205822 +v 0.014593 0.012773 -0.205822 +v 0.019590 0.012318 -0.195121 +v 0.019590 0.123894 -0.195127 +v -0.019590 0.012318 -0.195121 +v -0.014593 0.123894 -0.205822 +vn -0.0000 0.1394 -0.9902 +vn -0.0000 -0.1278 -0.9918 +vn -0.0000 -0.2536 -0.9673 +vn 0.9788 0.0306 -0.2023 +vn 0.9783 -0.0283 -0.2051 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.9783 -0.0283 -0.2051 +vn -0.9788 0.0306 -0.2023 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.9991 -0.0425 +vn 0.9672 0.0701 -0.2440 +vn 0.8994 0.0552 -0.4337 +vn -0.9662 -0.0654 -0.2494 +vn -0.8986 -0.0512 -0.4357 +vn 0.9662 -0.0654 -0.2494 +vn 0.8986 -0.0512 -0.4357 +vn 0.9005 -0.1103 -0.4207 +vn -0.9672 0.0701 -0.2440 +vn -0.8994 0.0552 -0.4337 +vn -0.9015 0.1195 -0.4159 +vn -0.0000 0.2760 -0.9611 +vn 0.9015 0.1195 -0.4159 +vn -0.9005 -0.1103 -0.4207 +vt 0.390067 0.372535 +vt 0.406128 0.365349 +vt 0.406128 0.372535 +vt 0.390067 0.365349 +vt 0.406128 0.358191 +vt 0.790352 0.332178 +vt 0.790352 0.323929 +vt 0.806409 0.338811 +vt 0.698608 0.414236 +vt 0.698608 0.432852 +vt 0.677048 0.432852 +vt 0.770203 0.441932 +vt 0.770203 0.433683 +vt 0.786260 0.427050 +vt 0.743140 0.410105 +vt 0.721579 0.388545 +vt 0.743140 0.388545 +vt 0.745889 0.383929 +vt 0.761950 0.383929 +vt 0.764700 0.386876 +vt 0.350295 0.400769 +vt 0.350102 0.394125 +vt 0.352852 0.394678 +vt 0.330144 0.511110 +vt 0.329953 0.503923 +vt 0.332703 0.504432 +vt 0.350294 0.379751 +vt 0.350102 0.386938 +vt 0.347349 0.379751 +vt 0.352852 0.386429 +vt 0.330146 0.490092 +vt 0.329953 0.496736 +vt 0.327200 0.490178 +vt 0.332703 0.496183 +vt 0.390067 0.379122 +vt 0.406128 0.379122 +vt 0.390067 0.358191 +vt 0.787794 0.317251 +vt 0.806409 0.317251 +vt 0.787795 0.338269 +vt 0.677048 0.414236 +vt 0.679797 0.411291 +vt 0.695858 0.411291 +vt 0.786260 0.448610 +vt 0.767644 0.448610 +vt 0.767646 0.427592 +vt 0.721579 0.410105 +vt 0.764700 0.405498 +vt 0.743140 0.405498 +vt 0.743140 0.386876 +vt 0.347349 0.400683 +vt 0.327200 0.511110 +s 1 +f 371/872/148 372/873/149 373/874/148 +f 374/875/149 375/876/150 372/873/149 +f 376/877/151 377/878/152 378/879/153 +f 379/880/154 380/881/154 381/882/154 +f 382/883/155 383/884/156 384/885/157 +f 380/886/158 378/887/158 381/888/158 +f 385/889/159 386/890/159 387/891/159 +f 387/892/160 373/893/161 376/894/151 +f 379/895/162 374/896/163 382/897/155 +f 388/898/164 372/899/165 375/900/166 +f 377/901/152 373/893/161 372/899/165 +f 389/902/167 371/903/168 385/904/169 +f 382/897/155 371/903/168 383/905/156 +f 385/906/170 373/874/148 386/907/170 +f 371/872/148 374/875/149 372/873/149 +f 374/875/149 390/908/150 375/876/150 +f 377/878/152 388/909/164 381/910/153 +f 381/910/153 378/879/153 377/878/152 +f 378/879/153 387/911/160 376/877/151 +f 381/882/154 388/912/154 379/880/154 +f 388/912/154 375/913/154 379/880/154 +f 375/913/154 390/914/154 379/880/154 +f 384/885/157 380/915/157 382/883/155 +f 380/915/157 379/916/162 382/883/155 +f 383/884/156 389/917/167 384/885/157 +f 380/886/158 384/918/158 378/887/158 +f 387/891/159 378/919/159 384/920/159 +f 384/920/159 389/921/159 387/891/159 +f 389/921/159 385/889/159 387/891/159 +f 387/892/160 386/922/171 373/893/161 +f 379/895/162 390/923/172 374/896/163 +f 388/898/164 377/901/152 372/899/165 +f 377/901/152 376/894/151 373/893/161 +f 389/902/167 383/905/156 371/903/168 +f 382/897/155 374/896/163 371/903/168 +f 385/906/170 371/872/148 373/874/148 +o Barrel +v -0.002425 0.189787 -0.367055 +v 0.002425 0.189787 -0.633548 +v 0.002425 0.189787 -0.367055 +v -0.002425 0.243547 -0.367055 +v -0.001862 0.237302 -0.367055 +v 0.001862 0.237302 -0.367055 +v 0.001862 0.196033 -0.367055 +v -0.001862 0.196033 -0.367055 +v -0.026880 0.219092 -0.633548 +v -0.026880 0.214242 -0.367055 +v -0.026880 0.219092 -0.367055 +v 0.002425 0.243547 -0.633548 +v 0.001862 0.237302 -0.633548 +v -0.001862 0.237302 -0.633548 +v -0.002425 0.189787 -0.633548 +v -0.001862 0.196033 -0.633548 +v 0.001862 0.196033 -0.633548 +v -0.002425 0.243547 -0.633548 +v 0.002425 0.243547 -0.367055 +v 0.026880 0.219092 -0.633548 +v 0.019718 0.236385 -0.367055 +v 0.026880 0.219092 -0.367055 +v 0.019718 0.236385 -0.633548 +v -0.019718 0.236385 -0.633548 +v -0.019718 0.236385 -0.367055 +v 0.026880 0.214242 -0.367055 +v 0.019718 0.196949 -0.633548 +v 0.026880 0.214242 -0.633548 +v 0.019718 0.196949 -0.367055 +v -0.026880 0.214242 -0.633548 +v -0.019718 0.196949 -0.367055 +v -0.019718 0.196949 -0.633548 +v -0.020635 0.218529 -0.367055 +v -0.020635 0.214805 -0.633548 +v -0.020635 0.218529 -0.633548 +v 0.015136 0.231803 -0.633548 +v 0.020635 0.218529 -0.367055 +v 0.015136 0.231803 -0.367055 +v -0.015136 0.231803 -0.367055 +v -0.015136 0.231803 -0.633548 +v 0.020635 0.214805 -0.367055 +v 0.015136 0.201531 -0.633548 +v 0.015136 0.201531 -0.367055 +v -0.015136 0.201531 -0.633548 +v -0.020635 0.214805 -0.367055 +v -0.015136 0.201531 -0.367055 +v 0.020635 0.218529 -0.633548 +v 0.020635 0.214805 -0.633548 +vn -0.1951 -0.9808 -0.0000 +vn 0.1951 -0.9808 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.9808 0.1951 -0.0000 +vn -0.9808 -0.1951 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.1951 0.9808 -0.0000 +vn 0.1951 0.9808 -0.0000 +vn 0.9808 0.1951 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.9808 -0.1951 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vt 0.588344 0.422031 +vt 0.590616 0.396347 +vt 0.590616 0.422031 +vt 0.816190 0.537904 +vt 0.810508 0.548747 +vt 0.803793 0.545966 +vt 0.767283 0.631233 +vt 0.772965 0.620390 +vt 0.779680 0.623172 +vt 0.404454 0.586481 +vt 0.402136 0.560797 +vt 0.404454 0.560797 +vt 0.556937 0.482545 +vt 0.559591 0.483935 +vt 0.558910 0.485579 +vt 0.579779 0.494514 +vt 0.577125 0.493124 +vt 0.577806 0.491480 +vt 0.587488 0.577888 +vt 0.589806 0.552204 +vt 0.589806 0.577888 +vt 0.589806 0.526521 +vt 0.598067 0.552204 +vt 0.598067 0.577888 +vt 0.412715 0.586481 +vt 0.579227 0.552204 +vt 0.579227 0.577888 +vt 0.587488 0.552204 +vt 0.579227 0.526521 +vt 0.587488 0.526521 +vt 0.598051 0.422031 +vt 0.598051 0.396347 +vt 0.402136 0.586481 +vt 0.393875 0.560797 +vt 0.579574 0.396347 +vt 0.579574 0.422031 +vt 0.560711 0.557920 +vt 0.560053 0.548419 +vt 0.560711 0.548419 +vt 0.497042 0.578916 +vt 0.496384 0.569415 +vt 0.497042 0.569415 +vt 0.506272 0.569862 +vt 0.506918 0.579363 +vt 0.506272 0.579363 +vt 0.563051 0.509766 +vt 0.560705 0.500265 +vt 0.563051 0.500265 +vt 0.509408 0.569862 +vt 0.509408 0.579363 +vt 0.499388 0.578916 +vt 0.504161 0.569862 +vt 0.560047 0.500265 +vt 0.557701 0.509766 +vt 0.557701 0.500265 +vt 0.563057 0.557920 +vt 0.494038 0.569415 +vt 0.496384 0.578916 +vt 0.494038 0.578916 +vt 0.557707 0.548419 +vt 0.560053 0.557920 +vt 0.557707 0.557920 +vt 0.560705 0.509766 +vt 0.588344 0.396347 +vt 0.755915 0.565797 +vt 0.745072 0.560115 +vt 0.775747 0.545966 +vt 0.770907 0.534281 +vt 0.807442 0.534281 +vt 0.842024 0.563739 +vt 0.842024 0.600274 +vt 0.830339 0.568579 +vt 0.830339 0.596625 +vt 0.827558 0.603340 +vt 0.838401 0.609022 +vt 0.812566 0.634856 +vt 0.807726 0.623172 +vt 0.776031 0.634856 +vt 0.741449 0.605398 +vt 0.741449 0.568863 +vt 0.753133 0.600559 +vt 0.753133 0.572512 +vt 0.558910 0.492443 +vt 0.563764 0.497297 +vt 0.562373 0.499950 +vt 0.556050 0.493627 +vt 0.556050 0.484686 +vt 0.563260 0.476222 +vt 0.572202 0.476222 +vt 0.564445 0.479082 +vt 0.571309 0.479082 +vt 0.572952 0.479762 +vt 0.574343 0.477109 +vt 0.580666 0.483431 +vt 0.577806 0.484616 +vt 0.580666 0.492373 +vt 0.573456 0.500837 +vt 0.564514 0.500837 +vt 0.572271 0.497977 +vt 0.565407 0.497977 +vt 0.598067 0.526521 +vt 0.412715 0.560797 +vt 0.393875 0.586481 +vt 0.506918 0.569862 +vt 0.499388 0.569415 +vt 0.504161 0.579363 +vt 0.560047 0.509766 +vt 0.563057 0.548419 +s 1 +f 391/924/173 392/925/174 393/926/174 +f 394/927/175 395/928/175 396/929/175 +f 393/930/175 397/931/175 398/932/175 +f 399/933/176 400/934/177 401/935/176 +f 402/936/178 403/937/178 404/938/178 +f 405/939/178 406/940/178 407/941/178 +f 408/942/179 409/943/180 402/944/180 +f 410/945/181 411/946/182 412/943/181 +f 413/947/182 409/943/180 411/946/182 +f 401/935/176 414/948/183 399/933/176 +f 415/949/183 408/942/179 414/950/183 +f 416/951/184 417/952/185 418/953/184 +f 419/954/185 392/925/174 417/955/185 +f 420/956/177 421/957/186 400/934/177 +f 422/958/186 391/924/173 421/959/186 +f 412/943/181 418/953/184 410/945/181 +f 407/960/179 398/961/180 397/962/179 +f 423/963/184 424/964/181 425/965/184 +f 404/966/174 396/967/173 395/968/174 +f 426/969/186 427/970/177 428/971/186 +f 396/967/173 426/972/186 428/973/186 +f 425/965/184 429/974/185 423/963/184 +f 395/968/174 430/975/185 404/966/174 +f 431/976/176 432/977/183 433/978/183 +f 397/962/179 432/979/183 407/960/179 +f 434/980/182 435/981/181 436/982/182 +f 436/983/182 406/984/180 434/985/182 +f 437/986/177 431/976/176 427/970/177 +f 391/924/173 405/987/173 392/925/174 +f 427/988/175 412/989/175 428/990/175 +f 412/989/175 411/991/175 428/990/175 +f 411/991/175 409/992/175 428/990/175 +f 409/992/175 394/927/175 396/929/175 +f 415/993/175 401/994/175 429/995/175 +f 401/994/175 423/996/175 429/995/175 +f 396/929/175 428/990/175 409/992/175 +f 394/927/175 415/993/175 429/995/175 +f 394/927/175 429/995/175 395/928/175 +f 435/997/175 423/996/175 401/994/175 +f 401/994/175 400/998/175 435/997/175 +f 400/998/175 421/999/175 436/1000/175 +f 435/997/175 400/998/175 436/1000/175 +f 421/999/175 391/1001/175 436/1000/175 +f 391/1001/175 393/930/175 398/932/175 +f 436/1000/175 391/1001/175 398/932/175 +f 419/1002/175 416/1003/175 433/1004/175 +f 416/1003/175 412/989/175 431/1005/175 +f 433/1004/175 416/1003/175 431/1005/175 +f 412/989/175 427/988/175 431/1005/175 +f 419/1002/175 433/1004/175 393/930/175 +f 433/1004/175 397/931/175 393/930/175 +f 399/933/176 420/956/177 400/934/177 +f 430/1006/178 425/1007/178 399/1008/178 +f 414/1009/178 408/1010/178 430/1006/178 +f 408/1010/178 402/936/178 404/938/178 +f 413/1011/178 410/1012/178 426/1013/178 +f 410/1012/178 437/1014/178 426/1013/178 +f 430/1006/178 399/1008/178 414/1009/178 +f 404/938/178 430/1006/178 408/1010/178 +f 402/936/178 413/1011/178 426/1013/178 +f 402/936/178 426/1013/178 403/937/178 +f 438/1015/178 437/1014/178 410/1012/178 +f 410/1012/178 418/1016/178 438/1015/178 +f 418/1016/178 417/1017/178 432/1018/178 +f 438/1015/178 418/1016/178 432/1018/178 +f 417/1017/178 392/1019/178 432/1018/178 +f 392/1019/178 405/939/178 407/941/178 +f 432/1018/178 392/1019/178 407/941/178 +f 422/1020/178 420/1021/178 434/1022/178 +f 420/1021/178 399/1008/178 424/1023/178 +f 434/1022/178 420/1021/178 424/1023/178 +f 399/1008/178 425/1007/178 424/1023/178 +f 422/1020/178 434/1022/178 405/939/178 +f 434/1022/178 406/940/178 405/939/178 +f 408/942/179 394/951/179 409/943/180 +f 410/945/181 413/1024/182 411/946/182 +f 413/947/182 402/944/180 409/943/180 +f 401/935/176 415/1025/183 414/948/183 +f 415/949/183 394/951/179 408/942/179 +f 416/951/184 419/949/185 417/952/185 +f 419/954/185 393/926/174 392/925/174 +f 420/956/177 422/1026/186 421/957/186 +f 422/958/186 405/987/173 391/924/173 +f 412/943/181 416/951/184 418/953/184 +f 407/960/179 406/984/180 398/961/180 +f 423/963/184 435/981/181 424/964/181 +f 404/966/174 403/1027/173 396/967/173 +f 426/969/186 437/986/177 427/970/177 +f 396/967/173 403/1027/173 426/972/186 +f 425/965/184 430/1028/185 429/974/185 +f 395/968/174 429/1029/185 430/975/185 +f 431/976/176 438/1030/176 432/977/183 +f 397/962/179 433/1031/183 432/979/183 +f 434/980/182 424/964/181 435/981/181 +f 436/983/182 398/961/180 406/984/180 +f 437/986/177 438/1030/176 431/976/176 +o Magazine +v -0.042117 -0.212138 0.127708 +v -0.042117 0.131847 0.043860 +v -0.042117 -0.244139 -0.012119 +v -0.042117 0.120877 -0.098352 +v 0.041739 -0.212138 0.127708 +v 0.041739 0.131847 0.043860 +v 0.041739 -0.244139 -0.012119 +v 0.041739 0.120877 -0.098352 +v -0.042117 -0.261123 -0.008232 +v -0.042117 -0.229122 0.131595 +v 0.041739 -0.261123 -0.008232 +v 0.041739 -0.229122 0.131595 +v 0.040745 -0.245905 -0.027060 +v -0.043111 -0.245905 -0.027060 +v 0.040745 -0.258158 -0.023173 +v -0.043111 -0.258158 -0.023173 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.2299 -0.9732 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.2368 0.9716 +vn -0.0000 0.9931 -0.1174 +vn -0.0000 0.9970 -0.0769 +vn -0.0000 -0.9748 0.2231 +vn -0.0000 0.2231 0.9748 +vn -0.0000 -0.3024 -0.9532 +vn -0.0000 -0.9809 -0.1947 +vn 0.9976 -0.0178 -0.0671 +vn -0.9976 0.0178 0.0671 +vt 0.466318 0.482313 +s 0 +f 439/1032/187 440/1032/187 442/1032/187 441/1032/187 +f 441/1032/188 442/1032/188 446/1032/188 445/1032/188 +f 445/1032/189 446/1032/189 444/1032/189 443/1032/189 +f 443/1032/190 444/1032/190 440/1032/190 439/1032/190 +f 441/1032/191 445/1032/191 451/1032/191 452/1032/191 +f 446/1032/192 442/1032/192 440/1032/192 444/1032/192 +f 447/1032/193 449/1032/193 450/1032/193 448/1032/193 +f 439/1032/187 441/1032/187 447/1032/187 448/1032/187 +f 445/1032/189 443/1032/189 450/1032/189 449/1032/189 +f 443/1032/194 439/1032/194 448/1032/194 450/1032/194 +f 452/1032/195 451/1032/195 453/1032/195 454/1032/195 +f 449/1032/196 447/1032/196 454/1032/196 453/1032/196 +f 445/1032/197 449/1032/197 453/1032/197 451/1032/197 +f 447/1032/198 441/1032/198 452/1032/198 454/1032/198 From a2e487912ca55f10538ec9ca45da66115fb90548 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 30 Jan 2024 20:33:28 +1100 Subject: [PATCH 129/376] Initial animation work for the Novac --- .../handler/guncfg/Gun44MagnumFactory.java | 9 +- .../java/com/hbm/main/ResourceManager.java | 2 +- .../item/weapon/ItemRenderWeaponNovac.java | 42 +- .../hbm/models/weapons/animations/novac.json | 1 + .../assets/hbm/models/weapons/novac.obj | 4521 +++++++++++------ .../hbm/models/weapons/novac_scoped.obj | 3975 --------------- 6 files changed, 3142 insertions(+), 5408 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/animations/novac.json delete mode 100644 src/main/resources/assets/hbm/models/weapons/novac_scoped.obj diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index 5beeccad4..0d264fd7d 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -15,12 +15,14 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo44Magnum; import com.hbm.lib.HbmCollection; import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; +import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -60,6 +62,11 @@ public class Gun44MagnumFactory { config.config.addAll(HbmCollection.m44Normal); config.ejector = EJECTOR_PIP; + + config.loadAnimations = i -> { + config.animations.put(AnimType.CYCLE, ResourceManager.novac_anim.get("Fire")); + config.animations.put(AnimType.RELOAD, ResourceManager.novac_anim.get("Reload")); + }; return config; } @@ -220,7 +227,7 @@ public class Gun44MagnumFactory { PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); + bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index b3fdd01a6..6c3150656 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -834,7 +834,6 @@ public class ResourceManager { public static final IModelCustom bio_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/bio_revolver.obj")); public static final IModelCustom chemthrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chemthrower.obj")).asDisplayList(); public static final IModelCustom novac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/novac.obj")); - public static final IModelCustom novac_scoped = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/novac_scoped.obj")); public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asDisplayList(); //large fella should be a display list public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_sniper.obj")).asDisplayList(); public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")); @@ -847,6 +846,7 @@ public class ResourceManager { public static final HashMap python_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/python.json")); public static final HashMap cursed_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/cursed.json")); + public static final HashMap novac_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/novac.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java index f99591f9d..b46a6a78f 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -58,8 +59,37 @@ public class ItemRenderWeaponNovac implements IItemRenderer { GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(-0.0F, 0.0F, -1.25F); GL11.glScaled(s0, s0, s0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + HbmAnimations.applyRelevantTransformation("Body"); + ResourceManager.novac.renderPart("Body"); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Cylinder"); + ResourceManager.novac.renderPart("Cylinder"); + GL11.glPushMatrix(); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Hammer"); + ResourceManager.novac.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Trigger"); + ResourceManager.novac.renderPart("Trigger"); + GL11.glPopMatrix(); + + if (item.getItem() == ModItems.gun_revolver_pip) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.novac_scope_tex); + ResourceManager.novac.renderPart("Scope"); + } + + GL11.glShadeModel(GL11.GL_FLAT); - break; + GL11.glPopMatrix(); + + return; case EQUIPPED: @@ -97,15 +127,13 @@ public class ItemRenderWeaponNovac implements IItemRenderer { } GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.novac.renderAllExcept("Scope"); + if(item.getItem() == ModItems.gun_revolver_pip) { - ResourceManager.novac_scoped.renderPart("Gun"); - ResourceManager.novac_scoped.renderPart("Hammer"); - ResourceManager.novac_scoped.renderPart("Cylinder"); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.novac_scope_tex); - ResourceManager.novac_scoped.renderPart("Scope"); - } else { - ResourceManager.novac.renderAll(); + ResourceManager.novac.renderPart("Scope"); } + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); diff --git a/src/main/resources/assets/hbm/models/weapons/animations/novac.json b/src/main/resources/assets/hbm/models/weapons/animations/novac.json new file mode 100644 index 000000000..deeb6b951 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/novac.json @@ -0,0 +1 @@ +{"Fire": {"Body": {"rotation_euler": {"x": [[0.0, 0.0], [29.145301697941925, 83.33333333333333], [0.0, 200.0]]}, "location": {"z": [[-0.0, 0.0], [0.7235583066940308, 50.0], [-0.0, 233.33333333333331]], "y": [[0.0, 0.0], [0.7866886854171753, 50.0], [0.0, 233.33333333333331]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-42.84400081430579, 16.666666666666668], [-42.84400081430579, 250.00000000000003], [0.0, 200.0]]}, "location": {"x": [[0.0, 0.0]], "z": [[1.1140995025634766, 0.0]], "y": [[0.48292604088783264, 0.0]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.04879806935787201, 166.66666666666666], [-0.1566363126039505, 133.33333333333334], [0.0, 166.66666666666669]], "z": [[-0.0, 0.0], [-0.7191624641418457, 166.66666666666666], [-1.058491826057434, 133.33333333333334], [-0.0, 166.66666666666669]], "y": [[0.0, 0.0], [0.7507638931274414, 166.66666666666666], [0.9907249212265015, 133.33333333333334], [0.0, 166.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [-19.391663497116777, 166.66666666666666], [45.102665825653546, 133.33333333333334], [0.0, 166.66666666666669]], "z": [[-0.0, 0.0], [0.5174686318159474, 166.66666666666666], [3.009666081818643, 133.33333333333334], [-0.0, 166.66666666666669]], "y": [[-0.0, 0.0], [1.4431158784559095, 166.66666666666666], [-0.8437833740125396, 133.33333333333334], [0.0, 166.66666666666669]]}}}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/novac.obj b/src/main/resources/assets/hbm/models/weapons/novac.obj index 8144b6735..7f3f04f6c 100644 --- a/src/main/resources/assets/hbm/models/weapons/novac.obj +++ b/src/main/resources/assets/hbm/models/weapons/novac.obj @@ -1,192 +1,96 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender 4.0.1 # www.blender.org -o Hammer -v 0.032000 0.588845 1.091862 -v 0.032000 0.697419 1.159147 -v 0.032000 0.639309 1.194319 -v -0.032000 0.588845 1.091862 -v -0.032000 0.697419 1.159147 -v -0.032000 0.755530 1.130092 -v 0.032000 0.842695 0.952702 -v -0.032000 0.842695 1.107154 -v 0.032000 0.842695 1.107154 -v 0.032000 0.755530 1.130092 -v -0.032000 0.718828 1.220316 -v 0.032000 0.718828 1.220316 -v 0.068452 0.772351 1.279956 -v -0.068452 0.772351 1.279956 -v -0.068452 0.776939 1.464992 -v 0.068452 0.776939 1.464992 -v -0.068452 0.737179 1.463463 -v 0.068452 0.737179 1.463463 -v -0.068452 0.735650 1.390060 -v 0.068452 0.735650 1.390060 -v 0.068452 0.724945 1.304423 -v -0.068452 0.724945 1.304423 -v -0.032000 0.663776 1.232550 -v 0.032000 0.663776 1.232550 -v -0.032000 0.639309 1.194319 -v -0.032000 0.620958 1.237138 -v 0.032000 0.620958 1.237138 -v -0.032000 0.561319 1.335008 -v 0.032000 0.561319 1.335008 -v -0.032000 0.477211 1.387001 -v 0.032000 0.477211 1.387001 -v -0.032000 0.842695 0.952702 -vt 0.343765 0.934799 -vt 0.350946 0.946383 -vt 0.354698 0.940182 -vt 0.343782 0.934821 -vt 0.350963 0.946405 -vt 0.347864 0.952606 -vt 0.390183 0.954876 -vt 0.397012 0.971356 -vt 0.390183 0.971356 -vt 0.397012 0.980973 -vt 0.390183 0.980973 -vt 0.397012 0.987905 -vt 0.390183 0.987905 -vt 0.397012 0.994820 -vt 0.390183 0.994820 -vt 0.379264 0.964780 -vt 0.387814 0.975498 -vt 0.379264 0.979388 -vt 0.359515 0.979388 -vt 0.359515 0.964780 -vt 0.355269 0.979388 -vt 0.355269 0.964780 -vt 0.347436 0.979388 -vt 0.347436 0.964780 -vt 0.338227 0.964780 -vt 0.338227 0.979388 -vt 0.328157 0.975498 -vt 0.328157 0.968670 -vt 0.397043 0.923988 -vt 0.403872 0.928831 -vt 0.397043 0.928831 -vt 0.403872 0.933801 -vt 0.397043 0.933801 -vt 0.403872 0.946030 -vt 0.397043 0.946030 -vt 0.403872 0.956580 -vt 0.397043 0.956580 -vt 0.403872 0.990249 -vt 0.397043 0.990249 -vt 0.390183 0.923988 -vt 0.397012 0.954876 -vt 0.384495 0.954648 -vt 0.384235 0.950410 -vt 0.376401 0.950426 -vt 0.357473 0.948666 -vt 0.367240 0.949494 -vt 0.358777 0.942792 -vt 0.357490 0.948689 -vt 0.367257 0.949516 -vt 0.364763 0.954633 -vt 0.376418 0.950449 -vt 0.384252 0.950432 -vt 0.384512 0.954670 -vt 0.328921 0.961887 -vt 0.347847 0.952584 -vt 0.345400 0.961884 -vt 0.369708 0.931858 -vt 0.375254 0.922884 -vt 0.359266 0.938223 -vt 0.375271 0.922906 -vt 0.369725 0.931881 -vt 0.359283 0.938246 -vt 0.354715 0.940204 -vt 0.358794 0.942814 -vt 0.345417 0.961907 -vt 0.328938 0.961909 -vt 0.387814 0.968670 -vt 0.403872 0.923988 -vt 0.397012 0.923988 -vt 0.364746 0.954610 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.2545 0.9671 -vn 0.0000 0.4472 0.8944 -vn 0.0000 0.9439 -0.3303 -vn 0.0000 0.7442 -0.6679 -vn 0.0000 0.9997 -0.0248 -vn 0.0000 -0.0384 0.9993 -vn 0.0000 -0.9998 0.0208 -vn 0.0000 -0.9923 0.1240 -vn 0.0000 -0.7615 0.6481 -vn 0.0000 -0.8423 0.5390 -vn 0.0000 0.9191 0.3939 -vn 0.0000 0.8539 0.5204 -vn 0.0000 0.5258 0.8506 -vn 0.0000 -0.9353 -0.3538 -vn 0.0000 -0.4807 -0.8769 -vn 0.9164 -0.0869 -0.3908 -vn -0.9050 -0.1951 -0.3780 -vn 0.9050 -0.1951 -0.3780 -vn -0.9164 -0.0869 -0.3908 -s off -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 8/8/3 9/9/3 -f 9/9/4 6/10/4 10/11/4 -f 10/11/5 5/12/5 2/13/5 -f 2/13/6 11/14/6 12/15/6 -f 13/16/7 11/17/7 14/18/7 -f 13/16/8 15/19/8 16/20/8 -f 16/20/9 17/21/9 18/22/9 -f 18/22/10 19/23/10 20/24/10 -f 21/25/11 19/23/11 22/26/11 -f 21/25/12 23/27/12 24/28/12 -f 24/29/13 25/30/13 3/31/13 -f 3/31/14 26/32/14 27/33/14 -f 27/33/15 28/34/15 29/35/15 -f 29/35/16 30/36/16 31/37/16 -f 31/37/17 4/38/17 1/39/17 -f 1/40/18 32/41/18 7/7/18 -f 16/42/1 18/43/1 20/44/1 -f 12/45/19 21/46/19 24/47/19 -f 11/48/20 22/49/20 14/50/20 -f 19/51/2 17/52/2 15/53/2 -f 1/1/1 7/54/1 10/55/1 -f 7/54/1 9/56/1 10/55/1 -f 29/57/1 31/58/1 1/1/1 -f 3/3/1 27/59/1 1/1/1 -f 27/59/1 29/57/1 1/1/1 -f 12/45/1 24/47/1 2/2/1 -f 24/47/1 3/3/1 2/2/1 -f 1/1/1 10/55/1 2/2/1 -f 4/4/2 30/60/2 28/61/2 -f 28/61/2 26/62/2 4/4/2 -f 26/62/2 25/63/2 4/4/2 -f 25/63/2 23/64/2 5/5/2 -f 23/64/2 11/48/2 5/5/2 -f 8/65/2 32/66/2 6/6/2 -f 32/66/2 4/4/2 6/6/2 -f 4/4/2 25/63/2 5/5/2 -f 7/7/3 32/41/3 8/8/3 -f 9/9/4 8/8/4 6/10/4 -f 10/11/5 6/10/5 5/12/5 -f 2/13/6 5/12/6 11/14/6 -f 13/16/7 12/67/7 11/17/7 -f 13/16/8 14/18/8 15/19/8 -f 16/20/9 15/19/9 17/21/9 -f 18/22/10 17/21/10 19/23/10 -f 21/25/11 20/24/11 19/23/11 -f 21/25/12 22/26/12 23/27/12 -f 24/29/13 23/68/13 25/30/13 -f 3/31/14 25/30/14 26/32/14 -f 27/33/15 26/32/15 28/34/15 -f 29/35/16 28/34/16 30/36/16 -f 31/37/17 30/36/17 4/38/17 -f 1/40/18 4/69/18 32/41/18 -f 20/44/1 21/46/1 13/70/1 -f 13/70/1 16/42/1 20/44/1 -f 12/45/21 13/70/21 21/46/21 -f 11/48/22 23/64/22 22/49/22 -f 15/53/2 14/50/2 19/51/2 -f 14/50/2 22/49/2 19/51/2 -o Gun +o Cylinder +v -0.126087 0.227980 0.137402 +v 0.126087 0.227980 0.774998 +v -0.126086 0.227980 0.774998 +v 0.126086 0.227980 0.137402 +v 0.304400 0.406294 0.774998 +v 0.304400 0.406293 0.137402 +v 0.304400 0.658466 0.774998 +v 0.304400 0.658466 0.137402 +v 0.126087 0.836780 0.774998 +v 0.126086 0.836780 0.137402 +v -0.126086 0.836780 0.774998 +v -0.126087 0.836780 0.137402 +v -0.304400 0.658467 0.774998 +v -0.304400 0.658466 0.137402 +v -0.304400 0.406294 0.774998 +v -0.304400 0.406294 0.137402 +vn -0.3827 -0.9239 -0.0000 +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.0000 -0.0000 -1.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.246533 0.894427 +vt 0.118900 0.944907 +vt 0.118900 0.894427 +vt 0.246533 0.944907 +vt 0.118900 0.995387 +vt 0.246533 0.591549 +vt 0.118900 0.642029 +vt 0.118900 0.591549 +vt 0.246533 0.642029 +vt 0.118900 0.692509 +vt 0.246533 0.692509 +vt 0.118900 0.742988 +vt 0.246533 0.742988 +vt 0.118900 0.793468 +vt 0.375332 0.627244 +vt 0.375332 0.677724 +vt 0.253463 0.627244 +vt 0.246533 0.793468 +vt 0.118900 0.843948 +vt 0.246533 0.843948 +vt 0.339638 0.713512 +vt 0.375332 0.799686 +vt 0.289158 0.835381 +vt 0.246533 0.995387 +vt 0.339638 0.713418 +vt 0.289158 0.713418 +vt 0.253463 0.677724 +vt 0.289158 0.591549 +vt 0.339638 0.591549 +vt 0.253464 0.799686 +vt 0.253463 0.749207 +vt 0.289158 0.713512 +vt 0.375332 0.749207 +vt 0.339638 0.835381 +s 1 +f 1/1/1 2/2/2 3/3/1 +f 4/4/2 5/5/3 2/2/2 +f 6/6/3 7/7/4 5/8/3 +f 8/9/4 9/10/5 7/7/4 +f 10/11/5 11/12/6 9/10/5 +f 12/13/6 13/14/7 11/12/6 +f 8/15/8 6/16/8 14/17/8 +f 14/18/7 15/19/9 13/14/7 +f 16/20/9 3/3/1 15/19/9 +f 7/21/10 11/22/10 15/23/10 +f 1/1/1 4/4/2 2/2/2 +f 4/4/2 6/24/3 5/5/3 +f 6/6/3 8/9/4 7/7/4 +f 8/9/4 10/11/5 9/10/5 +f 10/11/5 12/13/6 11/12/6 +f 12/13/6 14/18/7 13/14/7 +f 6/16/8 4/25/8 1/26/8 +f 1/26/8 16/27/8 6/16/8 +f 16/27/8 14/17/8 6/16/8 +f 14/17/8 12/28/8 10/29/8 +f 10/29/8 8/15/8 14/17/8 +f 14/18/7 16/20/9 15/19/9 +f 16/20/9 1/1/1 3/3/1 +f 15/23/10 3/30/10 2/31/10 +f 2/31/10 5/32/10 7/21/10 +f 7/21/10 9/33/10 11/22/10 +f 11/22/10 13/34/10 15/23/10 +f 15/23/10 2/31/10 7/21/10 +o Body v 0.070876 1.068409 0.865754 v 0.141753 1.068409 0.897529 v 0.141753 1.068409 0.865754 @@ -207,32 +111,6 @@ v 0.000000 1.008182 0.897529 v 0.000000 1.008182 0.865754 v 0.070876 1.068409 0.897529 v -0.141753 1.068409 0.897529 -v 0.045500 -0.120256 0.684201 -v 0.045500 -0.026668 0.645664 -v 0.045500 -0.037678 0.759438 -v -0.045500 -0.195494 0.673190 -v -0.045500 -0.241370 0.641994 -v -0.045500 -0.226690 0.735583 -v -0.045500 0.083436 0.570427 -v 0.045500 0.083436 0.570427 -v -0.045500 -0.026668 0.645664 -v 0.045500 -0.195494 0.673190 -v -0.045500 -0.120256 0.684201 -v 0.045500 -0.241370 0.641994 -v 0.045500 -0.301928 0.541066 -v 0.045500 -0.329454 0.561251 -v -0.045500 -0.301928 0.541066 -v 0.045500 -0.292752 0.676861 -v -0.045500 -0.329454 0.561251 -v 0.045500 -0.226690 0.735583 -v -0.045500 -0.292752 0.676861 -v 0.045500 -0.098235 0.761274 -v -0.045500 -0.098235 0.761274 -v 0.045500 0.006363 0.860367 -v -0.045500 -0.037678 0.759438 -v 0.045500 0.120138 0.755768 -v -0.045500 0.006363 0.860367 -v -0.045500 0.120138 0.755768 v 0.021772 0.858479 -2.163888 v 0.021772 0.977946 -2.136619 v 0.021772 0.977946 -1.813800 @@ -573,6 +451,324 @@ v -0.130093 0.275159 0.131254 v 0.130092 0.274881 0.131254 v -0.156306 0.411972 0.131254 v 0.156306 0.412767 0.131254 +v -0.065046 0.477214 1.426684 +v -0.065047 0.708668 1.058814 +v -0.065047 0.613690 1.167382 +v -0.065047 0.530807 1.307363 +v 0.065046 0.708668 1.058814 +v 0.065047 0.477214 1.426684 +v 0.065046 0.530807 1.307363 +v 0.065046 0.613690 1.167382 +v -0.065047 0.633816 1.012052 +v 0.065046 0.538838 1.120620 +v 0.065047 0.402362 1.379922 +v -0.065047 0.455955 1.260601 +v -0.065046 0.402362 1.379922 +v -0.065047 0.538838 1.120620 +v 0.065046 0.633816 1.012052 +v 0.065046 0.455955 1.260601 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.7071 -0.7071 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.7071 0.7071 +vn -0.6475 0.7620 -0.0000 +vn 0.6475 0.7620 -0.0000 +vn -0.0000 0.9761 0.2173 +vn -0.0000 0.9056 0.4242 +vn -0.0000 0.2225 -0.9749 +vn -0.0420 0.7668 -0.6406 +vn 0.0382 0.7683 -0.6390 +vn -0.0000 -1.0000 0.0061 +vn 0.0199 0.9997 0.0174 +vn 0.0205 0.9890 0.1463 +vn -0.0199 0.9997 0.0174 +vn -0.0000 0.9809 0.1946 +vn -0.0000 0.9155 -0.4023 +vn -0.0000 0.4940 -0.8694 +vn -0.0186 0.7451 -0.6667 +vn 0.0187 0.7734 -0.6336 +vn -0.0206 0.9890 0.1463 +vn -0.9292 -0.3696 -0.0000 +vn -0.9658 -0.2592 -0.0000 +vn -0.9821 -0.1882 -0.0000 +vn -0.0000 -0.7788 -0.6273 +vn -0.0000 -0.6466 -0.7629 +vn 0.9658 -0.2592 -0.0000 +vn 0.9292 -0.3696 -0.0000 +vn 0.9821 -0.1882 -0.0000 +vn 0.9538 -0.3003 -0.0000 +vn 0.9151 -0.4033 -0.0000 +vn -0.0000 -0.4648 -0.8854 +vn -0.9538 -0.3003 -0.0000 +vn -0.9151 -0.4033 -0.0000 +vn 0.0797 -0.9968 -0.0000 +vn -0.0777 -0.9970 -0.0000 +vn -0.0797 -0.9968 -0.0000 +vn -0.0000 -0.4649 -0.8853 +vn -0.0000 -0.4649 -0.8854 +vn -0.4332 -0.9013 -0.0000 +vn -0.4666 -0.8845 -0.0000 +vn 0.4332 -0.9013 -0.0000 +vn 0.0777 -0.9970 -0.0000 +vn 0.4666 -0.8845 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn 0.8801 0.4747 -0.0000 +vn -0.5493 0.8356 -0.0000 +vn -0.8801 0.4747 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.5493 0.8356 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn 0.1301 0.6195 0.7741 +vn -0.1301 0.4620 0.8773 +vn 0.1301 0.4620 0.8773 +vn -0.0000 0.5645 -0.8254 +vn -0.0000 0.8133 -0.5819 +vn 0.1295 0.0940 -0.9871 +vn -0.1323 -0.0052 -0.9912 +vn 0.1322 -0.0052 -0.9912 +vn -0.1340 -0.2621 -0.9557 +vn 0.1340 -0.2621 -0.9557 +vn -0.1365 -0.6074 -0.7826 +vn 0.1365 -0.6074 -0.7826 +vn -0.1352 -0.8771 -0.4608 +vn 0.1352 -0.8771 -0.4608 +vn -0.0808 -0.9622 -0.2603 +vn 0.0808 -0.9622 -0.2603 +vn 0.7746 -0.6264 -0.0870 +vn 0.9945 -0.0968 -0.0405 +vn 0.8887 -0.4230 -0.1767 +vn -0.0000 -0.5480 -0.8365 +vn -0.0000 0.8992 -0.4375 +vn 0.8698 0.1565 0.4679 +vn 0.9938 0.0274 0.1074 +vn 0.9228 0.0804 0.3768 +vn 0.0986 0.3350 0.9370 +vn -0.1326 0.3486 0.9278 +vn 0.1326 0.3486 0.9278 +vn -0.1335 0.5772 0.8056 +vn 0.1335 0.5772 0.8056 +vn -0.1301 0.6195 0.7741 +vn -0.9228 0.0804 0.3768 +vn -0.8698 0.1565 0.4679 +vn -0.7544 0.1070 0.6477 +vn 0.1301 0.3290 0.9353 +vn -0.1273 0.2812 0.9512 +vn 0.1273 0.2812 0.9512 +vn 0.4948 0.4049 0.7689 +vn 0.4968 0.2880 0.8187 +vn 0.8601 0.2377 0.4514 +vn 0.8626 0.1679 0.4771 +vn 0.9905 0.0642 0.1218 +vn 0.4781 0.2490 0.8423 +vn 0.8441 0.1520 0.5141 +vn 0.9881 0.0437 0.1477 +vn 0.9909 0.0446 0.1269 +vn 0.4931 0.0825 -0.8661 +vn 0.5089 -0.0045 -0.8608 +vn 0.8591 0.0485 -0.5095 +vn 0.8741 -0.0026 -0.4858 +vn 0.9904 0.0131 -0.1377 +vn 0.5163 -0.2265 -0.8259 +vn 0.8799 -0.1257 -0.4583 +vn 0.9926 -0.0006 -0.1217 +vn 0.5261 -0.5214 -0.6718 +vn 0.8869 -0.2832 -0.3649 +vn 0.9933 -0.0306 -0.1117 +vn 0.5029 -0.7822 -0.3678 +vn 0.9941 -0.0667 -0.0860 +vn -0.9945 -0.0968 -0.0405 +vn -0.7747 -0.6264 -0.0870 +vn -0.8887 -0.4230 -0.1767 +vn 0.5105 0.3024 0.8049 +vn 0.3336 0.5327 0.7778 +vn 0.7543 0.1069 0.6477 +vn 0.0001 0.8288 0.5595 +vn -0.0001 0.8288 0.5595 +vn -0.0000 0.8185 0.5745 +vn 0.5145 0.4994 0.6971 +vn 0.8785 0.2783 0.3884 +vn 0.4948 0.5430 0.6785 +vn 0.8601 0.3187 0.3982 +vn 0.9905 0.0860 0.1075 +vn 0.9931 0.0683 0.0953 +vn -0.9905 0.0642 0.1219 +vn -0.8626 0.1679 0.4771 +vn -0.8601 0.2377 0.4514 +vn -0.4968 0.2880 0.8187 +vn -0.4948 0.4049 0.7689 +vn -0.1301 0.3290 0.9353 +vn -0.9881 0.0437 0.1477 +vn -0.9909 0.0446 0.1269 +vn -0.8441 0.1520 0.5141 +vn -0.4781 0.2490 0.8423 +vn -0.9904 0.0131 -0.1377 +vn -0.8741 -0.0026 -0.4858 +vn -0.8591 0.0485 -0.5095 +vn -0.5089 -0.0045 -0.8608 +vn -0.4931 0.0825 -0.8661 +vn -0.1295 0.0940 -0.9871 +vn -0.9926 -0.0006 -0.1217 +vn -0.8799 -0.1257 -0.4583 +vn -0.5163 -0.2265 -0.8259 +vn -0.9933 -0.0306 -0.1117 +vn -0.8869 -0.2832 -0.3649 +vn -0.5261 -0.5214 -0.6718 +vn -0.9941 -0.0667 -0.0860 +vn -0.5029 -0.7822 -0.3678 +vn -0.3318 -0.9223 -0.1983 +vn 0.3318 -0.9223 -0.1983 +vn 0.4610 -0.8818 -0.0993 +vn -0.3336 0.5327 0.7778 +vn -0.5105 0.3024 0.8049 +vn -0.0986 0.3350 0.9370 +vn -0.9938 0.0274 0.1074 +vn -0.8785 0.2782 0.3884 +vn -0.5145 0.4994 0.6971 +vn -0.9905 0.0860 0.1075 +vn -0.9931 0.0682 0.0953 +vn -0.8601 0.3187 0.3982 +vn -0.4948 0.5430 0.6785 +vn 0.7184 0.6547 -0.2351 +vn 0.7258 0.6612 -0.1896 +vn 0.7397 0.6729 0.0012 +vn -0.7258 0.6612 -0.1896 +vn -0.7184 0.6547 -0.2351 +vn -0.7397 0.6729 0.0012 +vn 0.7127 0.3923 -0.5816 +vn 0.7116 0.2849 -0.6423 +vn 0.7115 0.2849 -0.6424 +vn 0.7070 0.5751 -0.4116 +vn 0.7123 0.4004 -0.5764 +vn 0.7070 0.5751 -0.4115 +vn -0.7124 0.4004 -0.5764 +vn -0.7070 0.5751 -0.4116 +vn -0.7127 0.3923 -0.5816 +vn -0.7070 0.5751 -0.4115 +vn -0.5760 -0.6122 -0.5417 +vn -0.5677 -0.6176 -0.5443 +vn -0.5896 -0.6030 -0.5373 +vn -0.7116 0.2849 -0.6423 +vn -0.7115 0.2849 -0.6424 +vn 0.5759 -0.6122 -0.5417 +vn 0.5677 -0.6176 -0.5443 +vn 0.5579 -0.6239 -0.5472 +vn -0.0000 0.4061 -0.9138 +vn 0.9813 -0.1926 -0.0011 +vn 0.7425 -0.0035 0.6698 +vn -0.7426 -0.0033 0.6697 +vn -0.9813 -0.1925 -0.0011 +vn -0.0002 0.8185 0.5746 +vn 0.0002 0.8185 0.5746 +vn -0.4610 -0.8818 -0.0993 +vn -0.5579 -0.6239 -0.5472 +vn 0.5896 -0.6030 -0.5373 +vn -0.0000 0.2108 0.9775 +vn -0.0000 0.4723 0.8814 +vn -0.0000 0.6194 0.7851 +vn -0.0000 0.6663 0.7457 +vn -0.7406 -0.3560 0.5699 +vn -0.0000 0.4372 0.8994 +vn -0.0000 0.3563 0.9344 +vn -0.0000 0.0622 -0.9981 +vn -0.0000 -0.3276 -0.9448 +vn -0.0000 0.3403 0.9403 +vn -0.0000 -0.5438 -0.8392 +vn -0.0000 -0.9411 0.3382 +vn -0.0000 -0.3867 0.9222 +vn -0.0000 -0.4862 0.8739 +vn -0.0000 -0.5780 -0.8160 +vn -0.0000 0.9933 -0.1158 +vn -0.0000 0.9943 -0.1065 +vn -0.0000 0.9998 0.0187 +vn -0.0000 0.5230 0.8523 +vn -0.0000 0.9338 0.3578 +vn -0.0000 0.8877 0.4603 +vn -0.0000 0.0182 0.9998 +vn 0.7359 0.3588 -0.5743 +vn -0.0000 -0.7290 0.6845 +vn -0.0000 -0.9616 0.2745 +vn -0.0000 -0.4386 -0.8987 +vn -0.0000 -0.3274 -0.9449 +vn -0.0000 -0.9962 -0.0866 +vn -0.0000 -0.9120 -0.4103 +vn -0.0000 -0.6722 -0.7404 +vn -0.0000 -0.9995 -0.0317 +vn 0.7080 0.3088 0.6351 +vn 0.7072 0.3698 0.6026 +vn -0.7080 0.3088 0.6351 +vn -0.7072 0.3698 0.6026 +vn 0.7072 0.2520 0.6606 +vn 0.7071 0.2406 0.6649 +vn 0.7072 0.2519 0.6607 +vn -0.7071 0.2406 0.6649 +vn -0.7072 0.2520 0.6606 +vn -0.7071 0.2519 0.6607 +vn 0.7084 0.3334 0.6221 +vn 0.7138 0.1476 0.6846 +vn -0.7084 0.3333 0.6221 +vn -0.7138 0.1476 0.6846 +vn 0.7071 0.0129 0.7070 +vn -0.7071 0.0129 0.7070 +vn -0.0000 0.9524 0.3048 +vn -0.0000 -0.2132 0.9770 +vn -0.0000 -0.6337 0.7736 +vn -0.0000 0.9308 0.3656 +vn -0.0000 0.9982 0.0595 +vn -0.0000 0.6570 0.7539 +vn -0.0000 0.2580 0.9661 +vn -0.0000 0.7484 -0.6633 +vn -0.0000 0.9693 -0.2458 +vn 0.9853 0.1709 -0.0000 +vn 0.9664 0.2570 0.0001 +vn -0.0000 -0.9442 -0.3293 +vn -0.0000 -0.9989 -0.0474 +vn -0.0000 0.4264 -0.9045 +vn -0.0000 -0.7977 0.6030 +vn 0.9757 -0.2189 -0.0000 +vn 0.9625 -0.2713 0.0001 +vn -0.9751 -0.2217 -0.0000 +vn -0.9616 -0.2746 0.0001 +vn -0.9752 -0.2212 0.0001 +vn 0.9664 0.2571 0.0001 +vn -0.9855 0.1695 -0.0000 +vn 0.9663 0.2574 -0.0000 +vn 0.9679 -0.2515 -0.0000 +vn 0.9758 -0.2185 0.0001 +vn 0.9776 0.2106 -0.0000 +vn -0.9670 0.2549 0.0001 +vn -0.9670 0.2548 0.0001 +vn -0.9673 -0.2536 -0.0000 +vn -0.9669 0.2552 -0.0000 +vn -0.9781 0.2081 -0.0000 +vn 0.5733 0.2131 0.7912 +vn 0.5789 -0.1967 0.7913 +vn 0.5756 0.1979 0.7934 +vn 0.5053 0.4828 0.7152 +vn 0.5758 -0.2183 0.7879 +vn 0.5109 -0.4883 0.7075 +vn -0.5122 -0.4895 0.7058 +vn -0.5766 -0.2205 0.7867 +vn -0.5804 -0.1975 0.7900 +vn -0.5771 0.1993 0.7920 +vn -0.5746 0.2114 0.7907 +vn -0.5052 0.4828 0.7153 +vn -0.0000 -0.6762 -0.7367 +vn -0.0000 0.6889 0.7248 +vn -0.0000 0.8100 0.5864 +vn -0.0000 0.9122 0.4097 +vn -0.0000 0.9403 0.3402 +vn -0.0000 0.7526 0.6584 +vn 0.7406 -0.3560 0.5699 +vn -0.6681 -0.3942 0.6310 +vn -0.6744 0.3912 -0.6262 +vn 0.6744 0.3912 -0.6262 +vn -0.7359 0.3588 -0.5743 +vn 0.6681 -0.3942 0.6310 vt 0.073656 0.779539 vt 0.081399 0.796810 vt 0.073656 0.796810 @@ -623,62 +819,6 @@ vt 0.071362 0.806398 vt 0.054091 0.806398 vt 0.019547 0.806398 vt 0.002275 0.806398 -vt 0.023130 0.630533 -vt 0.028439 0.641072 -vt 0.015114 0.640800 -vt 0.023687 0.621763 -vt 0.026907 0.616152 -vt 0.016156 0.618688 -vt 0.051880 0.644663 -vt 0.062490 0.660213 -vt 0.051880 0.660213 -vt 0.051880 0.632862 -vt 0.062490 0.644663 -vt 0.051880 0.623995 -vt 0.062490 0.632862 -vt 0.051880 0.617526 -vt 0.062490 0.623995 -vt 0.051880 0.603802 -vt 0.062490 0.617526 -vt 0.062519 0.663431 -vt 0.073130 0.667411 -vt 0.062519 0.667411 -vt 0.062519 0.649287 -vt 0.073130 0.663431 -vt 0.062519 0.638981 -vt 0.073130 0.649287 -vt 0.062519 0.623707 -vt 0.073130 0.638981 -vt 0.062519 0.616642 -vt 0.073130 0.623707 -vt 0.062519 0.603802 -vt 0.073130 0.616642 -vt 0.051880 0.682243 -vt 0.062490 0.700264 -vt 0.051880 0.700264 -vt 0.062490 0.682243 -vt 0.038162 0.653207 -vt 0.016938 0.659116 -vt 0.003769 0.646815 -vt 0.014364 0.633776 -vt 0.016213 0.618613 -vt 0.023743 0.621688 -vt 0.022455 0.610413 -vt 0.026964 0.616078 -vt 0.035571 0.605121 -vt 0.038162 0.608143 -vt 0.003713 0.646890 -vt 0.016882 0.659191 -vt 0.015057 0.640875 -vt 0.038105 0.653282 -vt 0.028383 0.641147 -vt 0.014307 0.633851 -vt 0.023073 0.630608 -vt 0.022398 0.610487 -vt 0.038105 0.608218 -vt 0.035515 0.605196 -vt 0.062490 0.603802 -vt 0.073130 0.603802 vt 0.050815 0.964187 vt 0.022923 0.957640 vt 0.023387 0.882167 @@ -1019,11 +1159,10 @@ vt 0.297467 0.534291 vt 0.274155 0.499064 vt 0.297243 0.498318 vt 0.227832 0.136510 -vt 0.174947 0.178032 -vt 0.174947 0.134818 -vt 0.150989 0.134818 -vt 0.123971 0.178032 -vt 0.123971 0.134818 +vt 0.174947 0.167228 +vt 0.174947 0.145622 +vt 0.069017 0.781576 +vt 0.102885 0.781576 vt 0.200788 0.500764 vt 0.132092 0.532286 vt 0.132160 0.500166 @@ -1057,8 +1196,12 @@ vt 0.288579 0.134818 vt 0.227832 0.179723 vt 0.255763 0.532612 vt 0.255630 0.500001 +vt 0.102246 0.178032 +vt 0.123971 0.167228 +vt 0.123971 0.178032 vt 0.322696 0.499422 -vt 0.102246 0.134818 +vt 0.030823 0.812121 +vt 0.000112 0.812121 vt 0.057683 0.266401 vt 0.014470 0.266401 vt 0.057683 0.248783 @@ -1090,7 +1233,6 @@ vt 0.323509 0.532260 vt 0.326077 0.540048 vt 0.274083 0.533455 vt 0.200769 0.532142 -vt 0.102246 0.178032 vt 0.072626 0.178537 vt 0.066927 0.173242 vt 0.014470 0.248783 @@ -1191,7 +1333,10 @@ vt 0.255877 0.406248 vt 0.244051 0.481199 vt 0.226791 0.437985 vt 0.244051 0.437985 -vt 0.150989 0.178032 +vt 0.174947 0.178032 +vt 0.150989 0.145622 +vt 0.123971 0.145622 +vt 0.123971 0.134818 vt 0.194395 0.128706 vt 0.194395 0.018352 vt 0.237608 0.018352 @@ -1208,11 +1353,19 @@ vt 0.241962 0.102774 vt 0.190042 0.102906 vt 0.190042 0.093797 vt 0.395586 0.178032 +vt 0.016266 0.704221 +vt 0.078614 0.704221 +vt 0.078614 0.766911 +vt 0.150989 0.167228 +vt 0.150989 0.178032 vt 0.014470 0.149002 vt 0.054613 0.579282 vt 0.022097 0.579589 vt 0.066620 0.140727 vt 0.072218 0.135325 +vt 0.102246 0.134818 +vt 0.102246 0.145622 +vt 0.102246 0.167228 vt 0.356499 0.246980 vt 0.443465 0.099671 vt 0.433400 0.210690 @@ -1319,1151 +1472,2671 @@ vt 0.252028 0.028822 vt 0.309512 0.028954 vt 0.309512 0.040967 vt 0.419487 0.090821 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -0.6475 0.7620 0.0000 -vn 0.6475 0.7620 0.0000 -vn 0.0000 -0.4751 -0.8800 -vn 0.0000 -0.5642 -0.8256 -vn 0.0000 -0.1223 -0.9925 -vn 0.0000 0.3628 -0.9319 -vn 0.0000 0.7269 -0.6868 -vn 0.0000 0.8575 -0.5145 -vn 0.0000 -0.5913 -0.8064 -vn 0.0000 -0.8388 0.5445 -vn 0.0000 -0.9531 0.3026 -vn 0.0000 -0.4458 0.8952 -vn 0.0000 -0.0834 0.9965 -vn 0.0000 0.0303 0.9995 -vn 0.0000 -0.9165 0.3999 -vn 0.0000 0.6768 0.7362 -vn 0.0000 0.9810 -0.1943 -vn 0.0000 -0.5914 -0.8064 -vn 0.0000 0.9761 0.2173 -vn 0.0000 0.9056 0.4242 -vn 0.0000 0.2225 -0.9749 -vn -0.0420 0.7668 -0.6405 -vn 0.0382 0.7683 -0.6390 -vn 0.0000 -1.0000 0.0061 -vn 0.0199 0.9997 0.0174 -vn 0.0205 0.9890 0.1463 -vn -0.0199 0.9997 0.0174 -vn -0.0000 0.9809 0.1946 -vn 0.0000 0.9155 -0.4023 -vn -0.0000 0.4940 -0.8694 -vn -0.0186 0.7451 -0.6667 -vn 0.0187 0.7735 -0.6336 -vn -0.0206 0.9890 0.1463 -vn -0.9292 -0.3696 -0.0000 -vn -0.9658 -0.2592 -0.0000 -vn -0.9821 -0.1882 0.0000 -vn 0.0000 -0.7788 -0.6273 -vn 0.0000 -0.6466 -0.7629 -vn 0.9658 -0.2592 -0.0000 -vn 0.9292 -0.3696 -0.0000 -vn 0.9821 -0.1882 0.0000 -vn 0.9538 -0.3003 -0.0000 -vn 0.9151 -0.4033 -0.0000 -vn 0.0000 -0.4649 -0.8854 -vn -0.9538 -0.3003 -0.0000 -vn -0.9151 -0.4033 -0.0000 -vn 0.0797 -0.9968 -0.0000 -vn -0.0777 -0.9970 -0.0000 -vn -0.0797 -0.9968 -0.0000 -vn 0.0000 -0.4649 -0.8853 -vn -0.4332 -0.9013 -0.0000 -vn -0.4666 -0.8845 -0.0000 -vn 0.4332 -0.9013 -0.0000 -vn 0.0777 -0.9970 -0.0000 -vn 0.4666 -0.8845 -0.0000 -vn 0.8660 -0.5000 -0.0000 -vn 0.8801 0.4747 0.0000 -vn -0.5493 0.8356 0.0000 -vn -0.8801 0.4747 0.0000 -vn -0.8660 -0.5000 -0.0000 -vn 0.5493 0.8356 0.0000 -vn -0.8660 0.5000 0.0000 -vn 0.8660 0.5000 0.0000 -vn 0.1301 0.6195 0.7741 -vn -0.1301 0.4620 0.8773 -vn 0.1301 0.4620 0.8773 -vn -0.0000 0.5645 -0.8254 -vn -0.0000 0.8133 -0.5819 -vn 0.1295 0.0940 -0.9871 -vn -0.1323 -0.0052 -0.9912 -vn 0.1322 -0.0052 -0.9912 -vn -0.1340 -0.2621 -0.9557 -vn 0.1340 -0.2621 -0.9557 -vn -0.1365 -0.6074 -0.7826 -vn 0.1365 -0.6074 -0.7826 -vn -0.1352 -0.8771 -0.4608 -vn 0.1352 -0.8771 -0.4608 -vn -0.0808 -0.9622 -0.2603 -vn 0.0808 -0.9622 -0.2603 -vn 0.7746 -0.6264 -0.0870 -vn 0.9945 -0.0968 -0.0405 -vn 0.8887 -0.4230 -0.1767 -vn -0.0000 -0.5480 -0.8365 -vn -0.0000 0.8992 -0.4375 -vn 0.8698 0.1565 0.4679 -vn 0.9938 0.0274 0.1074 -vn 0.9228 0.0804 0.3768 -vn 0.0986 0.3350 0.9370 -vn -0.1326 0.3486 0.9278 -vn 0.1326 0.3486 0.9278 -vn -0.1335 0.5772 0.8056 -vn 0.1335 0.5772 0.8056 -vn -0.1301 0.6195 0.7741 -vn -0.9228 0.0804 0.3768 -vn -0.8698 0.1565 0.4679 -vn -0.7544 0.1070 0.6477 -vn 0.1301 0.3290 0.9353 -vn -0.1273 0.2812 0.9512 -vn 0.1273 0.2812 0.9512 -vn 0.4948 0.4049 0.7689 -vn 0.4968 0.2880 0.8187 -vn 0.8601 0.2377 0.4514 -vn 0.8626 0.1679 0.4771 -vn 0.9905 0.0642 0.1218 -vn 0.4781 0.2490 0.8423 -vn 0.8441 0.1520 0.5141 -vn 0.9881 0.0437 0.1477 -vn 0.9909 0.0446 0.1269 -vn 0.4931 0.0825 -0.8661 -vn 0.5089 -0.0045 -0.8608 -vn 0.8591 0.0485 -0.5095 -vn 0.8741 -0.0026 -0.4858 -vn 0.9904 0.0131 -0.1377 -vn 0.5163 -0.2265 -0.8259 -vn 0.8799 -0.1257 -0.4583 -vn 0.9926 -0.0006 -0.1217 -vn 0.5261 -0.5214 -0.6718 -vn 0.8869 -0.2832 -0.3649 -vn 0.9933 -0.0306 -0.1117 -vn 0.5029 -0.7822 -0.3678 -vn 0.9941 -0.0667 -0.0860 -vn -0.9945 -0.0968 -0.0405 -vn -0.7747 -0.6264 -0.0870 -vn -0.8887 -0.4230 -0.1767 -vn 0.5105 0.3024 0.8049 -vn 0.3336 0.5327 0.7778 -vn 0.7543 0.1069 0.6477 -vn 0.0001 0.8288 0.5595 -vn -0.0001 0.8288 0.5595 -vn -0.0000 0.8185 0.5745 -vn 0.5145 0.4994 0.6971 -vn 0.8785 0.2783 0.3884 -vn 0.4948 0.5430 0.6785 -vn 0.8601 0.3187 0.3982 -vn 0.9905 0.0860 0.1075 -vn 0.9931 0.0683 0.0953 -vn -0.9905 0.0642 0.1219 -vn -0.8626 0.1679 0.4771 -vn -0.8601 0.2377 0.4514 -vn -0.4968 0.2880 0.8187 -vn -0.4948 0.4049 0.7689 -vn -0.1301 0.3290 0.9353 -vn -0.9881 0.0437 0.1477 -vn -0.9909 0.0446 0.1269 -vn -0.8441 0.1520 0.5141 -vn -0.4781 0.2490 0.8423 -vn -0.9904 0.0131 -0.1377 -vn -0.8741 -0.0026 -0.4858 -vn -0.8591 0.0485 -0.5095 -vn -0.5089 -0.0045 -0.8608 -vn -0.4931 0.0825 -0.8661 -vn -0.1295 0.0940 -0.9871 -vn -0.9926 -0.0006 -0.1217 -vn -0.8799 -0.1257 -0.4583 -vn -0.5163 -0.2265 -0.8259 -vn -0.9933 -0.0306 -0.1117 -vn -0.8869 -0.2832 -0.3649 -vn -0.5261 -0.5214 -0.6718 -vn -0.9941 -0.0667 -0.0860 -vn -0.5029 -0.7822 -0.3678 -vn -0.3318 -0.9223 -0.1983 -vn 0.3318 -0.9223 -0.1983 -vn 0.4610 -0.8818 -0.0993 -vn -0.3336 0.5327 0.7778 -vn -0.5105 0.3024 0.8049 -vn -0.0986 0.3350 0.9370 -vn -0.9938 0.0274 0.1074 -vn -0.8785 0.2782 0.3884 -vn -0.5145 0.4994 0.6971 -vn -0.9905 0.0860 0.1075 -vn -0.9931 0.0682 0.0953 -vn -0.8601 0.3187 0.3982 -vn -0.4948 0.5430 0.6785 -vn 0.7184 0.6547 -0.2351 -vn 0.7258 0.6612 -0.1896 -vn 0.7397 0.6729 0.0012 -vn -0.7258 0.6612 -0.1896 -vn -0.7184 0.6547 -0.2351 -vn -0.7397 0.6729 0.0012 -vn 0.7127 0.3923 -0.5816 -vn 0.7116 0.2849 -0.6423 -vn 0.7115 0.2849 -0.6424 -vn 0.7070 0.5751 -0.4116 -vn 0.7123 0.4004 -0.5764 -vn 0.7070 0.5751 -0.4115 -vn -0.7124 0.4004 -0.5764 -vn -0.7070 0.5751 -0.4116 -vn -0.7127 0.3923 -0.5816 -vn -0.7070 0.5751 -0.4115 -vn -0.5760 -0.6122 -0.5417 -vn -0.5677 -0.6176 -0.5443 -vn -0.5896 -0.6030 -0.5373 -vn -0.7116 0.2849 -0.6423 -vn -0.7115 0.2849 -0.6424 -vn 0.5759 -0.6122 -0.5417 -vn 0.5677 -0.6176 -0.5443 -vn 0.5579 -0.6239 -0.5472 -vn 0.0000 0.4061 -0.9138 -vn 0.9813 -0.1926 -0.0011 -vn 0.7426 -0.0035 0.6698 -vn -0.7427 -0.0034 0.6697 -vn -0.9813 -0.1925 -0.0011 -vn 0.0001 0.8185 0.5745 -vn 0.0003 0.8185 0.5746 -vn -0.4610 -0.8818 -0.0993 -vn -0.5579 -0.6239 -0.5472 -vn 0.5896 -0.6030 -0.5373 -vn 0.0000 0.2108 0.9775 -vn 0.0000 0.4723 0.8814 -vn 0.0000 0.6194 0.7851 -vn 0.0000 0.6889 0.7248 -vn 0.0000 0.8100 0.5864 -vn 0.0000 0.8877 0.4603 -vn 0.0000 0.4372 0.8994 -vn 0.0000 0.3563 0.9344 -vn 0.0000 0.0622 -0.9981 -vn 0.0000 -0.3276 -0.9448 -vn 0.0000 0.3403 0.9403 -vn 0.0000 -0.5438 -0.8392 -vn 0.0000 -0.9411 0.3382 -vn 0.0000 -0.3867 0.9222 -vn 0.0000 -0.4862 0.8739 -vn 0.0000 -0.5780 -0.8160 -vn 0.0000 0.9933 -0.1158 -vn 0.0000 0.9943 -0.1065 -vn 0.0000 0.9998 0.0187 -vn 0.0000 0.5230 0.8523 -vn 0.0000 0.0182 0.9998 -vn 0.0000 0.9338 0.3578 -vn 0.0000 -0.7290 0.6845 -vn 0.0000 -0.9616 0.2745 -vn 0.0000 -0.4386 -0.8987 -vn 0.0000 -0.3274 -0.9449 -vn 0.0000 -0.9962 -0.0866 -vn 0.0000 -0.9120 -0.4103 -vn 0.0000 -0.6722 -0.7404 -vn 0.0000 -0.9995 -0.0317 -vn 0.7080 0.3088 0.6351 -vn 0.7072 0.3698 0.6026 -vn -0.7080 0.3088 0.6351 -vn -0.7072 0.3698 0.6026 -vn 0.7072 0.2520 0.6606 -vn 0.7071 0.2406 0.6649 -vn 0.7072 0.2519 0.6607 -vn -0.7071 0.2406 0.6649 -vn -0.7072 0.2520 0.6606 -vn -0.7072 0.2519 0.6607 -vn 0.7084 0.3334 0.6221 -vn 0.7138 0.1476 0.6846 -vn -0.7084 0.3333 0.6221 -vn -0.7138 0.1476 0.6846 -vn 0.7071 0.0129 0.7070 -vn -0.7071 0.0129 0.7070 -vn -0.0000 0.9524 0.3048 -vn 0.0000 -0.2132 0.9770 -vn 0.0000 -0.6337 0.7736 -vn 0.0000 0.9308 0.3656 -vn 0.0000 0.9982 0.0595 -vn 0.0000 0.6570 0.7539 -vn 0.0000 0.2580 0.9661 -vn 0.0000 0.7484 -0.6633 -vn 0.0000 0.9693 -0.2458 -vn 0.9853 0.1709 0.0000 -vn 0.9664 0.2570 0.0001 -vn 0.0000 -0.9442 -0.3293 -vn 0.0000 -0.9989 -0.0474 -vn 0.0000 0.4264 -0.9045 -vn 0.0000 -0.7977 0.6030 -vn 0.9757 -0.2189 0.0000 -vn 0.9625 -0.2713 0.0001 -vn -0.9751 -0.2217 0.0000 -vn -0.9616 -0.2746 0.0001 -vn -0.9752 -0.2212 0.0001 -vn 0.9664 0.2571 0.0001 -vn -0.9855 0.1695 0.0000 -vn 0.9663 0.2574 0.0000 -vn 0.9679 -0.2515 0.0000 -vn 0.9758 -0.2185 0.0001 -vn 0.9776 0.2106 0.0000 -vn -0.9670 0.2549 0.0001 -vn -0.9670 0.2548 0.0001 -vn -0.9673 -0.2536 0.0000 -vn -0.9669 0.2552 0.0000 -vn -0.9781 0.2081 0.0000 -vn 0.5733 0.2131 0.7912 -vn 0.5789 -0.1967 0.7913 -vn 0.5756 0.1979 0.7934 -vn 0.5053 0.4828 0.7152 -vn 0.5758 -0.2183 0.7879 -vn 0.5109 -0.4883 0.7075 -vn -0.5122 -0.4895 0.7058 -vn -0.5766 -0.2205 0.7867 -vn -0.5804 -0.1975 0.7900 -vn -0.5771 0.1993 0.7920 -vn -0.5746 0.2114 0.7907 -vn -0.5052 0.4828 0.7153 -vn 0.0000 -0.6762 -0.7367 +vt 0.174947 0.134818 +vt 0.016266 0.844874 +vt 0.078614 0.844874 +vt 0.078614 0.914007 +vt 0.016266 0.766911 +vt 0.069017 0.812121 +vt 0.102885 0.812121 +vt 0.016266 0.914007 +vt 0.150989 0.134818 +vt 0.030823 0.781576 +vt 0.000112 0.781576 s 1 -f 33/71/23 34/72/23 35/73/23 -f 36/74/24 37/75/25 38/76/24 -f 39/77/25 40/78/26 37/79/25 -f 41/80/27 39/81/27 42/82/27 -f 42/83/28 38/76/24 43/84/28 -f 44/85/29 45/86/29 43/87/29 -f 37/88/29 44/85/29 43/87/29 -f 45/89/23 46/90/23 47/91/23 -f 42/82/27 34/92/27 41/80/27 -f 48/93/26 44/94/30 40/78/26 -f 44/95/26 41/96/26 49/97/26 -f 50/98/31 51/99/31 33/71/31 -f 47/91/32 49/100/32 50/98/32 -f 42/101/24 43/102/24 50/103/24 -f 33/71/23 51/99/23 34/72/23 -f 36/74/24 39/104/25 37/75/25 -f 39/77/25 48/93/26 40/78/26 -f 48/105/27 39/81/27 41/80/27 -f 39/81/27 36/106/27 42/82/27 -f 42/83/28 36/74/24 38/76/24 -f 44/85/29 52/107/29 45/86/29 -f 43/87/29 38/108/29 37/88/29 -f 37/88/29 40/109/29 44/85/29 -f 45/89/23 52/110/23 46/90/23 -f 42/82/27 35/111/27 34/92/27 -f 48/93/26 41/112/30 44/94/30 -f 41/96/26 34/113/26 51/114/26 -f 49/97/26 46/115/26 44/95/26 -f 46/115/26 52/116/26 44/95/26 -f 41/96/26 51/114/26 49/97/26 -f 50/98/31 49/100/31 51/99/31 -f 47/91/32 46/90/32 49/100/32 -f 43/102/24 45/117/24 47/118/24 -f 50/103/24 33/119/24 42/101/24 -f 33/119/24 35/120/24 42/101/24 -f 43/102/24 47/118/24 50/103/24 -f 53/121/27 54/122/27 55/123/27 -f 56/124/29 57/125/29 58/126/29 -f 54/127/33 59/128/34 60/129/34 -f 53/130/35 61/131/33 54/127/33 -f 62/132/36 63/133/35 53/130/35 -f 64/134/37 56/135/36 62/132/36 -f 65/136/38 57/137/37 64/134/37 -f 66/138/39 67/139/39 65/140/39 -f 68/141/40 69/142/41 66/138/41 -f 70/143/42 71/144/40 68/141/40 -f 72/145/43 58/146/42 70/143/42 -f 55/147/44 73/148/43 72/145/43 -f 74/149/45 75/150/45 55/147/45 -f 76/151/46 77/152/46 74/153/46 -f 60/129/47 78/154/47 76/151/47 -f 60/155/27 76/156/27 54/122/27 -f 76/156/27 74/157/27 55/123/27 -f 55/123/27 72/158/27 53/121/27 -f 72/158/27 70/159/27 53/121/27 -f 53/121/27 70/159/27 62/160/27 -f 76/156/27 55/123/27 54/122/27 -f 70/159/27 68/161/27 64/162/27 -f 62/160/27 70/159/27 64/162/27 -f 68/161/27 66/163/27 64/162/27 -f 66/163/27 65/164/27 64/162/27 -f 77/165/29 78/166/29 75/167/29 -f 78/166/29 59/168/29 61/169/29 -f 78/166/29 61/169/29 75/167/29 -f 58/126/29 73/170/29 63/171/29 -f 73/170/29 75/167/29 63/171/29 -f 75/167/29 61/169/29 63/171/29 -f 71/172/29 58/126/29 57/125/29 -f 67/173/29 69/174/29 57/125/29 -f 69/174/29 71/172/29 57/125/29 -f 58/126/29 63/171/29 56/124/29 -f 54/127/33 61/131/33 59/128/34 -f 53/130/35 63/133/35 61/131/33 -f 62/132/36 56/135/36 63/133/35 -f 64/134/37 57/137/37 56/135/36 -f 65/136/38 67/175/38 57/137/37 -f 66/138/39 69/142/48 67/139/39 -f 68/141/40 71/144/40 69/142/41 -f 70/143/42 58/146/42 71/144/40 -f 72/145/43 73/148/43 58/146/42 -f 55/147/44 75/150/44 73/148/43 -f 74/149/45 77/176/45 75/150/45 -f 76/151/46 78/154/46 77/152/46 -f 60/129/47 59/128/47 78/154/47 -f 79/177/27 80/178/27 81/179/27 -f 82/180/27 83/181/27 84/182/27 -f 85/183/29 86/184/29 87/185/29 -f 88/186/29 89/187/29 90/188/29 -f 91/189/49 87/190/50 92/191/50 -f 79/192/51 93/193/52 80/194/53 -f 92/195/54 86/196/54 79/192/54 -f 81/197/55 94/198/49 91/189/49 -f 83/199/56 85/200/57 81/197/55 -f 82/201/58 95/202/59 90/203/58 -f 96/204/60 95/202/59 97/205/59 -f 96/204/60 88/206/61 98/207/60 -f 83/199/56 80/208/53 84/209/62 -f 89/210/63 93/211/52 85/200/57 -f 89/212/63 82/201/58 90/203/58 -f 84/209/62 93/211/52 88/213/61 -f 81/179/27 91/214/27 92/215/27 -f 92/215/27 79/177/27 81/179/27 -f 84/182/27 96/216/27 82/180/27 -f 96/216/27 97/217/27 82/180/27 -f 87/185/29 94/218/29 85/183/29 -f 85/183/29 93/219/29 86/184/29 -f 95/220/29 98/221/29 90/188/29 -f 98/221/29 88/186/29 90/188/29 -f 91/189/49 94/198/49 87/190/50 -f 79/192/51 86/196/51 93/193/52 -f 92/195/54 87/222/54 86/196/54 -f 81/197/55 85/200/57 94/198/49 -f 83/199/56 89/210/63 85/200/57 -f 82/201/58 97/205/59 95/202/59 -f 96/204/60 98/207/60 95/202/59 -f 96/204/60 84/223/62 88/206/61 -f 83/199/56 81/197/55 80/208/53 -f 89/210/63 88/213/61 93/211/52 -f 89/212/63 83/224/56 82/201/58 -f 84/209/62 80/208/53 93/211/52 -f 99/225/64 100/226/65 101/227/66 -f 102/228/67 103/229/68 100/230/68 -f 103/231/69 104/232/70 105/233/71 -f 104/234/26 101/235/26 105/236/26 -f 106/237/26 107/238/26 108/239/26 -f 102/240/23 104/232/23 109/241/23 -f 105/236/26 106/237/26 110/242/26 -f 111/243/72 105/233/71 110/244/73 -f 100/230/68 111/245/74 112/246/74 -f 101/227/66 112/247/75 106/248/76 -f 113/249/77 108/250/78 114/251/79 -f 111/245/74 115/252/80 113/253/74 -f 114/254/79 107/255/81 116/256/82 -f 116/256/82 106/248/76 112/247/75 -f 113/249/77 117/257/83 118/258/84 -f 115/259/85 110/244/73 117/257/83 -f 99/225/64 102/240/64 100/226/65 -f 102/228/67 109/260/67 103/229/68 -f 103/231/69 109/241/70 104/232/70 -f 104/234/26 99/261/26 101/235/26 -f 108/239/26 118/262/26 110/242/26 -f 118/262/26 117/263/26 110/242/26 -f 110/242/26 106/237/26 108/239/26 -f 102/240/23 99/225/23 104/232/23 -f 105/236/26 101/235/26 106/237/26 -f 111/243/72 103/231/69 105/233/71 -f 100/230/68 103/229/68 111/245/74 -f 101/227/66 100/226/65 112/247/75 -f 113/249/77 118/258/84 108/250/78 -f 113/253/74 114/264/74 112/246/74 -f 114/264/74 116/265/80 112/246/74 -f 112/246/74 111/245/74 113/253/74 -f 114/254/79 108/266/78 107/255/81 -f 116/256/82 107/255/81 106/248/76 -f 113/249/77 115/259/85 117/257/83 -f 115/259/85 111/243/72 110/244/73 -f 119/267/24 120/268/24 121/269/24 -f 122/270/25 123/271/86 124/272/25 -f 125/273/86 126/274/87 123/275/86 -f 127/276/88 128/277/89 129/278/88 -f 130/279/24 131/280/24 127/281/24 -f 132/282/89 133/283/90 128/277/89 -f 133/283/90 122/270/25 124/272/25 -f 134/284/87 135/285/91 126/274/87 -f 136/286/27 137/287/27 135/285/27 -f 129/288/26 128/289/26 133/290/26 -f 138/291/23 139/292/23 140/293/23 -f 129/278/29 140/293/29 127/276/29 -f 135/294/26 138/295/26 129/288/26 -f 127/281/24 139/296/24 136/297/24 -f 121/298/90 130/299/25 141/300/90 -f 142/301/92 141/300/90 143/302/92 -f 144/303/24 122/304/24 145/305/24 -f 144/306/23 142/301/92 143/302/92 -f 146/307/93 144/308/23 147/309/93 -f 119/310/86 147/309/93 131/311/86 -f 130/299/25 119/310/86 131/311/86 -f 121/269/24 142/312/24 119/267/24 -f 142/312/24 148/313/24 119/267/24 -f 148/313/24 146/314/24 119/267/24 -f 122/270/25 125/315/86 123/271/86 -f 125/273/86 134/284/87 126/274/87 -f 127/276/88 132/282/89 128/277/89 -f 134/316/24 125/317/24 143/318/24 -f 134/316/24 143/318/24 141/319/24 -f 127/281/24 136/297/24 130/279/24 -f 136/297/24 134/316/24 141/319/24 -f 130/279/24 136/297/24 141/319/24 -f 131/280/24 132/320/24 127/281/24 -f 132/282/89 145/321/90 133/283/90 -f 133/283/90 145/321/90 122/270/25 -f 134/284/87 136/286/91 135/285/91 -f 136/286/27 139/292/27 137/287/27 -f 133/290/26 124/322/26 129/288/26 -f 124/322/26 123/323/26 135/294/26 -f 123/323/26 126/324/26 135/294/26 -f 135/294/26 129/288/26 124/322/26 -f 138/291/23 137/287/23 139/292/23 -f 129/278/29 138/291/29 140/293/29 -f 135/294/26 137/325/26 138/295/26 -f 127/281/24 140/326/24 139/296/24 -f 121/298/90 120/327/25 130/299/25 -f 142/301/92 121/298/90 141/300/90 -f 145/305/24 132/320/24 147/328/24 -f 132/320/24 131/280/24 147/328/24 -f 143/318/24 125/317/24 144/303/24 -f 125/317/24 122/304/24 144/303/24 -f 145/305/24 147/328/24 144/303/24 -f 144/306/23 148/329/23 142/301/92 -f 146/307/93 148/330/23 144/308/23 -f 119/310/86 146/307/93 147/309/93 -f 130/299/25 120/327/25 119/310/86 -f 149/331/94 150/332/95 151/333/96 -f 152/334/97 153/335/98 154/336/98 -f 155/337/25 156/338/25 157/339/25 -f 158/340/99 159/341/100 160/342/101 -f 160/342/101 161/343/102 162/344/103 -f 162/344/103 163/345/104 164/346/105 -f 164/346/105 165/347/106 166/348/107 -f 166/348/107 167/349/108 168/350/109 -f 169/351/110 170/352/111 171/353/112 -f 172/354/113 173/355/113 174/356/113 -f 154/336/98 175/357/114 176/358/114 -f 177/359/115 178/360/116 179/361/117 -f 180/362/118 181/363/119 182/364/120 -f 182/364/120 183/365/121 184/366/122 -f 184/366/122 185/367/123 149/331/94 -f 186/368/124 187/369/125 188/370/126 -f 189/371/127 190/372/128 191/373/129 -f 189/371/127 192/374/130 151/333/96 -f 193/375/131 194/376/132 192/374/130 -f 195/377/133 196/378/134 194/376/132 -f 189/371/127 197/379/135 193/375/131 -f 193/375/131 198/380/136 195/377/133 -f 195/377/133 199/381/137 200/382/138 -f 160/342/101 201/383/139 158/340/99 -f 202/384/140 203/385/141 201/383/139 -f 204/386/142 205/387/143 203/385/141 -f 162/344/103 202/384/140 160/342/101 -f 206/388/144 204/386/142 202/384/140 -f 207/389/145 208/390/146 204/386/142 -f 164/346/105 206/388/144 162/344/103 -f 209/391/147 207/389/145 206/388/144 -f 210/392/148 211/393/149 207/389/145 -f 164/346/105 212/394/150 209/391/147 -f 209/391/147 171/353/112 210/392/148 -f 210/392/148 170/352/111 213/395/151 -f 168/350/109 212/394/150 166/348/107 -f 214/396/152 215/397/153 216/398/154 -f 205/399/143 208/400/146 200/401/138 -f 180/362/118 217/402/155 218/403/156 -f 218/403/156 177/359/115 219/404/157 -f 188/370/158 219/404/159 176/405/160 -f 184/366/122 217/402/155 182/364/120 -f 220/406/161 177/359/115 217/402/155 -f 221/407/162 178/360/116 177/359/115 -f 184/366/122 222/408/163 220/406/161 -f 220/406/161 223/409/164 221/407/162 -f 221/407/162 224/410/165 225/411/166 -f 149/331/94 192/374/130 222/408/163 -f 222/408/163 194/376/132 223/409/164 -f 223/409/164 196/378/134 224/410/165 -f 226/412/167 227/413/168 228/414/169 -f 228/414/169 229/415/170 230/416/171 -f 230/416/171 231/417/172 150/332/95 -f 232/418/173 227/413/168 233/419/174 -f 234/420/175 229/415/170 227/413/168 -f 235/421/176 231/417/172 229/415/170 -f 236/422/177 237/423/178 155/424/179 -f 155/424/179 238/425/180 156/426/181 -f 156/426/181 159/341/100 157/427/182 -f 239/428/183 240/429/184 237/423/178 -f 237/423/178 241/430/185 238/425/180 -f 238/425/180 161/343/102 159/341/100 -f 242/431/186 243/432/187 240/429/184 -f 240/429/184 244/433/188 241/430/185 -f 241/430/185 163/345/104 161/343/102 -f 214/396/152 243/432/187 245/434/189 -f 216/398/154 244/433/188 243/432/187 -f 246/435/190 163/345/104 244/433/188 -f 215/397/153 172/436/191 246/435/190 -f 246/435/190 167/349/108 165/347/106 -f 247/437/192 248/438/193 169/351/110 -f 187/369/125 249/439/194 188/370/126 -f 250/440/195 251/441/196 249/439/194 -f 252/442/197 253/443/198 187/369/125 -f 187/369/125 254/444/199 250/440/195 -f 250/440/195 183/365/121 181/363/119 -f 255/445/200 253/443/198 256/446/201 -f 257/447/202 254/444/199 253/443/198 -f 258/448/203 183/365/121 254/444/199 -f 226/412/167 257/447/202 255/445/200 -f 228/414/169 258/448/203 257/447/202 -f 230/416/171 185/367/123 258/448/203 -f 256/449/201 214/450/152 245/451/189 -f 188/370/158 218/403/156 219/404/159 -f 249/439/194 180/362/118 218/403/156 -f 151/333/96 231/417/172 189/371/127 -f 179/452/204 176/358/205 259/453/206 -f 175/357/207 186/454/208 260/455/209 -f 152/334/210 261/456/211 262/457/212 -f 154/336/213 263/458/214 152/334/210 -f 154/336/213 179/452/204 264/459/215 -f 265/460/216 153/335/217 266/461/218 -f 186/454/208 153/335/217 267/462/219 -f 174/356/220 215/463/221 268/464/222 -f 268/464/223 266/461/218 174/356/224 -f 262/457/225 169/465/226 248/466/227 -f 262/457/228 266/461/97 152/334/97 -f 149/331/94 185/367/123 150/332/95 -f 152/334/97 266/461/97 153/335/98 -f 157/339/25 158/467/25 205/468/25 -f 158/467/25 201/469/25 203/470/25 -f 205/468/25 158/467/25 203/470/25 -f 205/468/25 199/471/25 232/472/25 -f 199/471/25 198/473/25 191/474/25 -f 232/472/25 199/471/25 191/474/25 -f 198/473/25 197/475/25 191/474/25 -f 191/474/25 190/476/25 232/472/25 -f 190/476/25 235/477/25 234/478/25 -f 232/472/25 190/476/25 234/478/25 -f 232/472/25 236/479/25 205/468/25 -f 236/479/25 155/337/25 157/339/25 -f 205/468/25 236/479/25 157/339/25 -f 158/340/99 157/427/182 159/341/100 -f 160/342/101 159/341/100 161/343/102 -f 162/344/103 161/343/102 163/345/104 -f 164/346/105 163/345/104 165/347/106 -f 166/348/107 165/347/106 167/349/108 -f 169/351/110 261/480/229 170/352/111 -f 174/356/113 262/457/113 168/481/113 -f 262/457/113 248/466/113 247/482/113 -f 168/481/113 262/457/113 247/482/113 -f 168/481/113 167/483/113 174/356/113 -f 167/483/113 172/354/113 174/356/113 -f 154/336/98 153/335/98 175/357/114 -f 259/484/230 219/404/157 179/361/117 -f 219/404/157 177/359/115 179/361/117 -f 180/362/118 251/441/196 181/363/119 -f 182/364/120 181/363/119 183/365/121 -f 184/366/122 183/365/121 185/367/123 -f 188/370/126 260/485/231 186/368/124 -f 186/368/124 252/442/197 187/369/125 -f 189/371/127 231/417/172 190/372/128 -f 189/371/127 193/375/131 192/374/130 -f 193/375/131 195/377/133 194/376/132 -f 195/377/133 200/382/138 196/378/134 -f 189/371/127 191/373/129 197/379/135 -f 193/375/131 197/379/135 198/380/136 -f 195/377/133 198/380/136 199/381/137 -f 160/342/101 202/384/140 201/383/139 -f 202/384/140 204/386/142 203/385/141 -f 204/386/142 208/390/146 205/387/143 -f 162/344/103 206/388/144 202/384/140 -f 206/388/144 207/389/145 204/386/142 -f 207/389/145 211/393/149 208/390/146 -f 164/346/105 209/391/147 206/388/144 -f 209/391/147 210/392/148 207/389/145 -f 210/392/148 213/395/151 211/393/149 -f 164/346/105 166/348/107 212/394/150 -f 209/391/147 212/394/150 171/353/112 -f 210/392/148 171/353/112 170/352/111 -f 168/350/109 247/437/192 212/394/150 -f 214/396/152 268/486/232 215/397/153 -f 264/487/27 179/488/117 178/489/116 -f 225/490/166 224/491/165 213/492/151 -f 224/491/165 196/493/134 213/492/151 -f 213/492/151 196/493/134 211/494/149 -f 264/487/27 178/489/116 263/495/27 -f 178/489/116 225/490/166 170/496/111 -f 261/497/229 263/495/27 170/496/111 -f 170/496/111 263/495/27 178/489/116 -f 196/493/134 200/401/138 211/494/149 -f 213/492/151 170/496/111 225/490/166 -f 200/401/138 199/498/137 205/399/143 -f 211/494/149 200/401/138 208/400/146 -f 180/362/118 182/364/120 217/402/155 -f 218/403/156 217/402/155 177/359/115 -f 219/404/159 259/484/233 176/405/160 -f 176/405/160 175/499/160 188/370/158 -f 175/499/160 260/485/234 188/370/158 -f 184/366/122 220/406/161 217/402/155 -f 220/406/161 221/407/162 177/359/115 -f 221/407/162 225/411/166 178/360/116 -f 184/366/122 149/331/94 222/408/163 -f 220/406/161 222/408/163 223/409/164 -f 221/407/162 223/409/164 224/410/165 -f 149/331/94 151/333/96 192/374/130 -f 222/408/163 192/374/130 194/376/132 -f 223/409/164 194/376/132 196/378/134 -f 226/412/167 233/419/174 227/413/168 -f 228/414/169 227/413/168 229/415/170 -f 230/416/171 229/415/170 231/417/172 -f 232/418/173 234/420/175 227/413/168 -f 234/420/175 235/421/176 229/415/170 -f 235/421/176 190/372/128 231/417/172 -f 236/422/177 239/428/183 237/423/178 -f 155/424/179 237/423/178 238/425/180 -f 156/426/181 238/425/180 159/341/100 -f 239/428/183 242/431/186 240/429/184 -f 237/423/178 240/429/184 241/430/185 -f 238/425/180 241/430/185 161/343/102 -f 242/431/186 245/434/189 243/432/187 -f 240/429/184 243/432/187 244/433/188 -f 241/430/185 244/433/188 163/345/104 -f 214/396/152 216/398/154 243/432/187 -f 216/398/154 246/435/190 244/433/188 -f 246/435/190 165/347/106 163/345/104 -f 246/435/190 216/398/154 215/397/153 -f 215/397/153 173/500/235 172/436/191 -f 246/435/190 172/436/191 167/349/108 -f 171/353/112 212/394/150 169/351/110 -f 212/394/150 247/437/192 169/351/110 -f 187/369/125 250/440/195 249/439/194 -f 250/440/195 181/363/119 251/441/196 -f 252/442/197 256/446/201 253/443/198 -f 187/369/125 253/443/198 254/444/199 -f 250/440/195 254/444/199 183/365/121 -f 255/445/200 257/447/202 253/443/198 -f 257/447/202 258/448/203 254/444/199 -f 258/448/203 185/367/123 183/365/121 -f 226/412/167 228/414/169 257/447/202 -f 228/414/169 230/416/171 258/448/203 -f 230/416/171 150/332/95 185/367/123 -f 252/501/197 186/502/124 267/503/29 -f 267/503/29 265/504/29 252/501/197 -f 265/504/29 268/505/232 214/450/152 -f 265/504/29 214/450/152 252/501/197 -f 256/449/201 252/501/197 214/450/152 -f 226/506/167 255/507/200 245/451/189 -f 255/507/200 256/449/201 245/451/189 -f 232/508/173 233/509/174 236/510/177 -f 233/509/174 226/506/167 242/511/186 -f 239/512/183 236/510/177 233/509/174 -f 242/511/186 239/512/183 233/509/174 -f 245/451/189 242/511/186 226/506/167 -f 188/370/158 249/439/194 218/403/156 -f 249/439/194 251/441/196 180/362/118 -f 151/333/96 150/332/95 231/417/172 -f 152/334/210 263/458/214 261/456/211 -f 154/336/213 264/459/215 263/458/214 -f 154/336/213 176/358/205 179/452/204 -f 265/460/216 267/462/219 153/335/217 -f 186/454/208 175/357/207 153/335/217 -f 174/356/220 173/355/236 215/463/221 -f 268/464/223 265/460/216 266/461/218 -f 262/457/225 261/456/237 169/465/226 -f 262/457/228 174/356/228 266/461/97 -f 269/513/238 270/514/239 271/515/238 -f 272/516/240 273/517/241 274/518/241 -f 275/519/242 276/520/243 277/521/243 -f 278/522/244 279/523/245 280/524/245 -f 281/525/246 282/526/247 283/527/246 -f 280/524/245 284/528/248 285/529/248 -f 286/530/249 287/531/249 288/532/249 -f 288/532/250 289/533/250 290/534/250 -f 290/534/251 291/535/252 292/536/252 -f 293/537/25 294/538/25 295/539/25 -f 295/539/24 296/540/24 297/541/24 -f 297/542/253 298/543/253 299/544/253 -f 300/545/24 299/544/24 301/546/24 -f 302/547/23 303/548/254 304/549/254 -f 304/549/254 305/550/255 306/551/255 -f 306/551/255 307/552/256 272/516/256 -f 270/514/239 308/553/257 309/554/257 -f 273/517/241 275/519/242 274/518/241 -f 310/555/258 269/513/238 271/515/238 -f 276/520/243 311/556/259 277/521/243 -f 308/553/257 278/522/244 309/554/257 -f 291/535/252 312/557/260 292/536/252 -f 313/558/260 314/559/261 312/557/260 -f 315/560/262 316/561/263 293/537/263 -f 317/562/264 318/563/265 319/564/264 -f 320/565/265 321/566/266 318/563/265 -f 322/567/266 315/560/262 321/566/266 -f 323/568/267 324/569/267 325/570/267 -f 326/571/268 309/554/269 278/522/268 -f 327/572/270 308/553/271 328/573/271 -f 280/524/272 325/574/273 329/575/274 -f 323/576/275 279/523/276 330/577/277 -f 331/578/278 271/515/279 270/514/278 -f 332/579/280 269/513/281 333/580/281 -f 310/555/282 334/581/279 335/582/282 -f 270/514/278 336/583/269 331/578/278 -f 333/580/281 337/584/283 338/585/283 -f 328/573/271 339/586/280 332/579/280 -f 280/524/272 326/571/268 278/522/268 -f 327/572/270 279/523/276 340/587/270 -f 341/588/259 338/589/284 337/590/284 -f 342/591/261 319/564/264 314/559/261 -f 343/592/29 344/593/29 345/594/29 -f 346/595/285 347/596/286 348/597/286 -f 349/598/27 350/599/27 274/600/27 -f 351/601/287 352/602/288 353/603/287 -f 354/604/289 351/601/287 353/603/287 -f 355/605/290 356/606/289 354/604/289 -f 357/607/291 358/608/292 359/609/291 -f 358/608/292 352/602/288 360/610/288 -f 361/611/293 362/612/294 302/613/27 -f 356/614/29 363/615/29 322/616/29 -f 344/617/295 364/618/296 365/619/295 -f 366/620/297 359/609/291 367/621/297 -f 283/527/246 367/621/297 281/525/246 -f 363/622/290 368/623/285 346/624/285 -f 347/596/286 369/625/298 348/597/286 -f 370/626/26 371/627/26 372/628/26 -f 373/629/23 374/630/23 375/631/23 -f 376/632/24 350/633/24 377/634/24 -f 378/635/25 361/636/25 379/637/25 -f 321/638/27 355/639/27 354/640/27 -f 371/641/299 297/642/27 299/643/300 -f 296/644/29 370/645/301 298/646/302 -f 370/645/301 380/647/303 298/646/302 -f 361/611/293 381/648/304 362/612/294 -f 378/649/305 303/650/29 382/651/29 -f 383/652/306 384/653/307 381/648/304 -f 385/654/307 386/655/307 384/653/307 -f 387/656/308 371/641/299 299/643/300 -f 388/657/309 387/656/308 389/658/309 -f 300/659/309 388/657/309 389/658/309 -f 390/660/307 300/659/309 386/655/307 -f 391/661/310 378/649/305 392/662/311 -f 393/663/312 394/664/313 391/661/310 -f 395/665/312 396/666/312 393/663/312 -f 390/667/26 378/668/26 397/669/26 -f 398/670/314 395/665/312 301/671/314 -f 399/672/314 301/671/314 400/673/314 -f 380/647/303 399/672/314 400/673/314 -f 401/674/24 402/675/24 403/676/24 -f 402/675/24 377/634/24 403/676/24 -f 349/598/315 403/677/316 377/678/317 -f 350/599/318 349/598/315 377/678/317 -f 403/677/316 404/679/319 401/680/320 -f 343/592/321 405/681/322 402/682/323 -f 376/683/324 406/684/325 407/685/326 -f 402/682/323 406/684/325 376/683/324 -f 408/686/327 409/687/247 345/688/327 -f 345/688/327 365/619/295 408/686/327 -f 269/513/238 339/586/239 270/514/239 -f 272/516/240 307/552/240 273/517/241 -f 275/519/242 410/689/242 276/520/243 -f 278/522/244 340/587/244 279/523/245 -f 281/525/246 409/687/247 282/526/247 -f 280/524/245 279/523/245 284/528/248 -f 286/530/249 324/569/249 287/531/249 -f 288/532/250 287/531/250 289/533/250 -f 290/534/251 289/533/251 291/535/252 -f 293/537/25 316/561/25 294/538/25 -f 295/539/24 294/538/24 296/540/24 -f 297/542/253 296/690/253 298/543/253 -f 382/691/24 302/692/24 392/693/24 -f 302/692/24 362/694/24 392/693/24 -f 362/694/24 381/695/24 384/696/24 -f 362/694/24 384/696/24 386/697/24 -f 393/698/24 391/699/24 392/693/24 -f 395/700/24 393/698/24 392/693/24 -f 392/693/24 362/694/24 386/697/24 -f 300/545/24 389/701/24 299/544/24 -f 389/701/24 387/702/24 299/544/24 -f 392/693/24 386/697/24 395/700/24 -f 386/697/24 300/545/24 395/700/24 -f 301/546/24 395/700/24 300/545/24 -f 380/703/24 400/704/24 298/543/24 -f 400/704/24 301/546/24 298/543/24 -f 299/544/24 298/543/24 301/546/24 -f 302/547/23 382/705/23 303/548/254 -f 304/549/254 303/548/254 305/550/255 -f 306/551/255 305/550/255 307/552/256 -f 270/514/239 339/586/239 308/553/257 -f 273/517/241 410/689/242 275/519/242 -f 310/555/258 337/584/258 269/513/238 -f 276/520/243 341/588/259 311/556/259 -f 308/553/257 340/587/244 278/522/244 -f 291/535/252 313/558/260 312/557/260 -f 313/558/260 342/591/261 314/559/261 -f 315/560/262 411/706/262 316/561/263 -f 317/562/264 320/565/265 318/563/265 -f 320/565/265 322/567/266 321/566/266 -f 322/567/266 411/706/262 315/560/262 -f 324/569/267 286/530/267 325/570/267 -f 325/570/267 285/707/267 284/708/267 -f 284/708/267 323/568/267 325/570/267 -f 326/571/268 336/583/269 309/554/269 -f 327/572/270 340/587/270 308/553/271 -f 280/524/272 285/529/273 325/574/273 -f 323/576/275 284/528/275 279/523/276 -f 331/578/278 334/581/279 271/515/279 -f 332/579/280 339/586/280 269/513/281 -f 310/555/282 271/515/279 334/581/279 -f 270/514/278 309/554/269 336/583/269 -f 333/580/281 269/513/281 337/584/283 -f 328/573/271 308/553/271 339/586/280 -f 280/524/272 329/575/274 326/571/268 -f 327/572/270 330/577/277 279/523/276 -f 337/590/284 310/709/284 341/588/259 -f 310/709/284 335/710/284 311/556/259 -f 341/588/259 310/709/284 311/556/259 -f 342/591/261 317/562/264 319/564/264 -f 287/711/29 324/712/29 327/713/29 -f 324/712/29 323/714/29 330/715/29 -f 327/713/29 324/712/29 330/715/29 -f 327/713/29 328/716/29 287/711/29 -f 328/716/29 332/717/29 287/711/29 -f 333/718/29 338/719/29 341/720/29 -f 332/717/29 333/718/29 287/711/29 -f 333/718/29 341/720/29 287/711/29 -f 341/720/29 276/721/29 287/711/29 -f 313/722/29 291/723/29 367/724/29 -f 291/723/29 289/725/29 367/724/29 -f 289/725/29 287/711/29 409/726/29 -f 405/681/29 410/727/29 406/684/29 -f 276/721/29 410/727/29 405/681/29 -f 287/711/29 276/721/29 405/681/29 -f 410/727/29 273/728/29 406/684/29 -f 342/729/29 313/722/29 359/730/29 -f 307/731/29 305/732/29 407/685/29 -f 305/732/29 303/650/29 412/733/29 -f 407/685/29 305/732/29 412/733/29 -f 359/730/29 358/734/29 342/729/29 -f 367/724/29 359/730/29 313/722/29 -f 273/728/29 307/731/29 407/685/29 -f 273/728/29 407/685/29 406/684/29 -f 281/735/29 367/724/29 289/725/29 -f 287/711/29 405/681/29 345/594/29 -f 409/726/29 281/735/29 289/725/29 -f 345/594/29 409/726/29 287/711/29 -f 405/681/29 343/592/29 345/594/29 -f 343/592/29 375/736/29 369/737/29 -f 343/592/29 369/737/29 344/593/29 -f 346/595/285 368/738/285 347/596/286 -f 325/739/27 286/740/27 329/741/27 -f 286/740/27 288/742/27 326/743/27 -f 329/741/27 286/740/27 326/743/27 -f 290/744/27 292/745/27 366/746/27 -f 292/745/27 312/747/27 366/746/27 -f 312/747/27 314/748/27 357/749/27 -f 366/746/27 312/747/27 357/749/27 -f 336/750/27 326/743/27 288/742/27 -f 331/751/27 336/750/27 288/742/27 -f 331/751/27 288/742/27 334/752/27 -f 288/742/27 290/744/27 282/753/27 -f 334/752/27 288/742/27 311/754/27 -f 311/754/27 335/755/27 334/752/27 -f 311/754/27 288/742/27 277/756/27 -f 314/748/27 413/757/27 357/749/27 -f 277/756/27 288/742/27 404/679/27 -f 290/744/27 366/746/27 283/758/27 -f 408/759/27 288/742/27 282/753/27 -f 275/760/27 277/756/27 404/679/27 -f 288/742/27 408/759/27 404/679/27 -f 290/744/27 283/758/27 282/753/27 -f 274/600/27 275/760/27 349/598/27 -f 304/761/27 306/762/27 379/763/27 -f 306/762/27 272/764/27 350/599/27 -f 350/599/27 379/763/27 306/762/27 -f 365/765/27 364/766/27 401/680/27 -f 364/766/27 414/767/27 401/680/27 -f 275/760/27 404/679/27 349/598/27 -f 408/759/27 365/765/27 401/680/27 -f 404/679/27 408/759/27 401/680/27 -f 350/599/27 272/764/27 274/600/27 -f 351/601/287 360/610/288 352/602/288 -f 354/604/289 356/606/289 351/601/287 -f 355/605/290 363/622/290 356/606/289 -f 357/607/291 413/768/292 358/608/292 -f 358/608/292 413/768/292 352/602/288 -f 302/613/27 304/761/27 361/611/293 -f 304/761/27 379/763/27 361/611/293 -f 317/769/29 342/729/29 358/734/29 -f 317/769/29 358/734/29 360/770/29 -f 322/616/29 320/771/29 356/614/29 -f 320/771/29 317/769/29 351/772/29 -f 316/773/29 411/774/29 346/775/29 -f 411/774/29 322/616/29 363/615/29 -f 296/644/29 294/776/29 374/777/29 -f 294/776/29 316/773/29 374/777/29 -f 374/777/29 415/778/29 296/644/29 -f 369/737/29 375/736/29 348/779/29 -f 375/736/29 374/777/29 316/773/29 -f 348/779/29 375/736/29 316/773/29 -f 317/769/29 360/770/29 351/772/29 -f 320/771/29 351/772/29 356/614/29 -f 411/774/29 363/615/29 346/775/29 -f 346/775/29 348/779/29 316/773/29 -f 344/617/295 369/625/296 364/618/296 -f 366/620/297 357/607/291 359/609/291 -f 283/527/246 366/620/297 367/621/297 -f 363/622/290 355/605/290 368/623/285 -f 347/596/286 364/618/298 369/625/298 -f 415/780/26 374/781/26 416/782/26 -f 374/781/26 373/783/26 416/782/26 -f 399/784/26 417/785/26 370/626/26 -f 370/626/26 415/780/26 371/627/26 -f 415/780/26 416/782/26 371/627/26 -f 371/627/26 418/786/26 388/787/26 -f 398/788/26 399/784/26 370/626/26 -f 388/787/26 372/628/26 371/627/26 -f 372/628/26 398/788/26 370/626/26 -f 375/631/23 343/789/23 401/790/23 -f 401/790/23 414/791/23 375/631/23 -f 414/791/23 373/629/23 375/631/23 -f 376/632/24 407/792/24 350/633/24 -f 379/637/25 350/793/25 407/794/25 -f 407/794/25 412/795/25 379/637/25 -f 412/795/25 378/635/25 379/637/25 -f 295/796/27 297/642/27 373/797/27 -f 297/642/27 416/798/27 373/797/27 -f 373/797/27 414/767/27 293/799/27 -f 414/767/27 364/766/27 347/800/27 -f 321/638/27 315/801/27 355/639/27 -f 315/801/27 293/799/27 368/802/27 -f 355/639/27 315/801/27 368/802/27 -f 293/799/27 295/796/27 373/797/27 -f 414/767/27 347/800/27 293/799/27 -f 347/800/27 368/802/27 293/799/27 -f 319/803/27 318/804/27 353/805/27 -f 318/804/27 321/638/27 354/640/27 -f 353/805/27 318/804/27 354/640/27 -f 413/757/27 314/748/27 319/803/27 -f 352/806/27 413/757/27 319/803/27 -f 353/805/27 352/806/27 319/803/27 -f 371/641/299 416/798/27 297/642/27 -f 296/644/29 415/778/29 370/645/301 -f 370/645/301 417/807/301 380/647/303 -f 361/611/293 383/652/306 381/648/304 -f 382/651/29 392/662/311 378/649/305 -f 378/649/305 412/733/29 303/650/29 -f 383/652/306 385/654/307 384/653/307 -f 385/654/307 390/660/307 386/655/307 -f 387/656/308 418/808/299 371/641/299 -f 388/657/309 418/808/299 387/656/308 -f 300/659/309 372/809/309 388/657/309 -f 390/660/307 372/809/309 300/659/309 -f 391/661/310 394/664/313 378/649/305 -f 393/663/312 396/666/312 394/664/313 -f 395/665/312 397/810/312 396/666/312 -f 397/669/26 398/788/26 390/667/26 -f 398/788/26 372/628/26 390/667/26 -f 390/667/26 385/811/26 361/812/26 -f 385/811/26 383/813/26 361/812/26 -f 394/814/26 396/815/26 378/668/26 -f 396/815/26 397/669/26 378/668/26 -f 361/812/26 378/668/26 390/667/26 -f 398/670/314 397/810/312 395/665/312 -f 399/672/314 398/670/314 301/671/314 -f 380/647/303 417/807/301 399/672/314 -f 401/674/24 343/816/24 402/675/24 -f 402/675/24 376/632/24 377/634/24 -f 349/598/315 404/679/319 403/677/316 -f 402/682/323 405/681/322 406/684/325 -f 408/686/327 282/526/247 409/687/247 -f 345/688/327 344/617/295 365/619/295 -o Cylinder -v -0.126087 0.227980 0.137402 -v 0.126087 0.227980 0.774998 -v -0.126086 0.227980 0.774998 -v 0.126086 0.227980 0.137402 -v 0.304400 0.406294 0.774998 -v 0.304400 0.406293 0.137402 -v 0.304400 0.658466 0.774998 -v 0.304400 0.658466 0.137402 -v 0.126087 0.836780 0.774998 -v 0.126086 0.836780 0.137402 -v -0.126086 0.836780 0.774998 -v -0.126087 0.836780 0.137402 -v -0.304400 0.658467 0.774998 -v -0.304400 0.658466 0.137402 -v -0.304400 0.406294 0.774998 -v -0.304400 0.406294 0.137402 -vt 0.246533 0.894427 -vt 0.118900 0.944907 -vt 0.118900 0.894427 -vt 0.246533 0.944907 -vt 0.118900 0.995387 -vt 0.246533 0.591549 -vt 0.118900 0.642029 -vt 0.118900 0.591549 -vt 0.246533 0.642029 -vt 0.118900 0.692509 -vt 0.246533 0.692509 -vt 0.118900 0.742988 -vt 0.246533 0.742988 -vt 0.118900 0.793468 -vt 0.375332 0.627244 -vt 0.375332 0.677724 -vt 0.253463 0.627244 -vt 0.246533 0.793468 -vt 0.118900 0.843948 -vt 0.246533 0.843948 -vt 0.339638 0.713512 -vt 0.375332 0.799686 -vt 0.289158 0.835381 -vt 0.246533 0.995387 -vt 0.339638 0.713418 -vt 0.289158 0.713418 -vt 0.253463 0.677724 -vt 0.289158 0.591549 -vt 0.339638 0.591549 -vt 0.253464 0.799686 -vt 0.253463 0.749207 -vt 0.289158 0.713512 -vt 0.375332 0.749207 -vt 0.339638 0.835381 -vn -0.3827 -0.9239 0.0000 -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.0000 0.0000 -1.0000 -vn -0.9239 -0.3827 0.0000 -vn 0.0000 -0.0000 1.0000 +f 17/35/11 18/36/11 19/37/11 +f 20/38/12 21/39/13 22/40/12 +f 23/41/13 24/42/14 21/43/13 +f 25/44/15 23/45/15 26/46/15 +f 26/47/16 22/40/12 27/48/16 +f 28/49/17 29/50/17 27/51/17 +f 21/52/17 28/49/17 27/51/17 +f 29/53/11 30/54/11 31/55/11 +f 26/46/15 18/56/15 25/44/15 +f 32/57/14 28/58/18 24/42/14 +f 28/59/14 25/60/14 33/61/14 +f 34/62/19 35/63/19 17/35/19 +f 31/55/20 33/64/20 34/62/20 +f 26/65/12 27/66/12 34/67/12 +f 17/35/11 35/63/11 18/36/11 +f 20/38/12 23/68/13 21/39/13 +f 23/41/13 32/57/14 24/42/14 +f 32/69/15 23/45/15 25/44/15 +f 23/45/15 20/70/15 26/46/15 +f 26/47/16 20/38/12 22/40/12 +f 28/49/17 36/71/17 29/50/17 +f 27/51/17 22/72/17 21/52/17 +f 21/52/17 24/73/17 28/49/17 +f 29/53/11 36/74/11 30/54/11 +f 26/46/15 19/75/15 18/56/15 +f 32/57/14 25/76/18 28/58/18 +f 25/60/14 18/77/14 35/78/14 +f 33/61/14 30/79/14 28/59/14 +f 30/79/14 36/80/14 28/59/14 +f 25/60/14 35/78/14 33/61/14 +f 34/62/19 33/64/19 35/63/19 +f 31/55/20 30/54/20 33/64/20 +f 27/66/12 29/81/12 31/82/12 +f 34/67/12 17/83/12 26/65/12 +f 17/83/12 19/84/12 26/65/12 +f 27/66/12 31/82/12 34/67/12 +f 37/85/15 38/86/15 39/87/15 +f 40/88/15 41/89/15 42/90/15 +f 43/91/17 44/92/17 45/93/17 +f 46/94/17 47/95/17 48/96/17 +f 49/97/21 45/98/22 50/99/22 +f 37/100/23 51/101/24 38/102/25 +f 50/103/26 44/104/26 37/100/26 +f 39/105/27 52/106/21 49/97/21 +f 41/107/28 43/108/29 39/105/27 +f 40/109/30 53/110/31 48/111/30 +f 54/112/32 53/110/31 55/113/31 +f 54/112/32 46/114/33 56/115/32 +f 41/107/28 38/116/25 42/117/34 +f 47/118/35 51/119/24 43/108/29 +f 47/120/35 40/109/30 48/111/30 +f 42/117/34 51/119/24 46/121/33 +f 39/87/15 49/122/15 50/123/15 +f 50/123/15 37/85/15 39/87/15 +f 42/90/15 54/124/15 40/88/15 +f 54/124/15 55/125/15 40/88/15 +f 45/93/17 52/126/17 43/91/17 +f 43/91/17 51/127/17 44/92/17 +f 53/128/17 56/129/17 48/96/17 +f 56/129/17 46/94/17 48/96/17 +f 49/97/21 52/106/21 45/98/22 +f 37/100/23 44/104/23 51/101/24 +f 50/103/26 45/130/26 44/104/26 +f 39/105/27 43/108/29 52/106/21 +f 41/107/28 47/118/35 43/108/29 +f 40/109/30 55/113/31 53/110/31 +f 54/112/32 56/115/32 53/110/31 +f 54/112/32 42/131/34 46/114/33 +f 41/107/28 39/105/27 38/116/25 +f 47/118/35 46/121/33 51/119/24 +f 47/120/35 41/132/28 40/109/30 +f 42/117/34 38/116/25 51/119/24 +f 57/133/36 58/134/37 59/135/38 +f 60/136/39 61/137/40 58/138/40 +f 61/139/41 62/140/42 63/141/43 +f 62/142/14 59/143/14 63/144/14 +f 64/145/14 65/146/14 66/147/14 +f 60/148/11 62/140/11 67/149/11 +f 63/144/14 64/145/14 68/150/14 +f 69/151/44 63/141/43 68/152/45 +f 58/138/40 69/153/46 70/154/46 +f 59/135/38 70/155/47 64/156/48 +f 71/157/49 66/158/50 72/159/51 +f 69/153/46 73/160/52 71/161/53 +f 72/162/51 65/163/54 74/164/55 +f 74/164/55 64/156/48 70/155/47 +f 71/157/49 75/165/56 76/166/57 +f 73/167/58 68/152/45 75/165/56 +f 57/133/36 60/148/36 58/134/37 +f 60/136/39 67/168/39 61/137/40 +f 61/139/41 67/149/42 62/140/42 +f 62/142/14 57/169/14 59/143/14 +f 66/147/14 76/170/14 68/150/14 +f 76/170/14 75/171/14 68/150/14 +f 68/150/14 64/145/14 66/147/14 +f 60/148/11 57/133/11 62/140/11 +f 63/144/14 59/143/14 64/145/14 +f 69/151/44 61/139/41 63/141/43 +f 58/138/40 61/137/40 69/153/46 +f 59/135/38 58/134/37 70/155/47 +f 71/157/49 76/166/57 66/158/50 +f 71/161/53 72/172/53 70/154/46 +f 72/172/53 74/173/52 70/154/46 +f 70/154/46 69/153/46 71/161/53 +f 72/162/51 66/174/50 65/163/54 +f 74/164/55 65/163/54 64/156/48 +f 71/157/49 73/167/58 75/165/56 +f 73/167/58 69/151/44 68/152/45 +f 77/175/12 78/176/12 79/177/12 +f 80/178/13 81/179/59 82/180/13 +f 83/181/59 84/182/60 81/183/59 +f 85/184/61 86/185/62 87/186/61 +f 88/187/12 89/188/12 85/189/12 +f 90/190/62 91/191/63 86/185/62 +f 91/191/63 80/178/13 82/180/13 +f 92/192/60 93/193/64 84/182/60 +f 94/194/15 95/195/15 93/193/15 +f 87/196/14 86/197/14 91/198/14 +f 96/199/11 97/200/11 98/201/11 +f 87/186/17 98/201/17 85/184/17 +f 93/202/14 96/203/14 87/196/14 +f 85/189/12 97/204/12 94/205/12 +f 79/206/63 88/207/13 99/208/63 +f 100/209/65 99/208/63 101/210/65 +f 102/211/12 80/212/12 103/213/12 +f 102/214/11 100/209/65 101/210/65 +f 104/215/66 102/216/11 105/217/66 +f 77/218/59 105/217/66 89/219/59 +f 88/207/13 77/218/59 89/219/59 +f 79/177/12 100/220/12 77/175/12 +f 100/220/12 106/221/12 77/175/12 +f 106/221/12 104/222/12 77/175/12 +f 80/178/13 83/223/59 81/179/59 +f 83/181/59 92/192/60 84/182/60 +f 85/184/61 90/190/62 86/185/62 +f 92/224/12 83/225/12 101/226/12 +f 92/224/12 101/226/12 99/227/12 +f 85/189/12 94/205/12 88/187/12 +f 94/205/12 92/224/12 99/227/12 +f 88/187/12 94/205/12 99/227/12 +f 89/188/12 90/228/12 85/189/12 +f 90/190/62 103/229/63 91/191/63 +f 91/191/63 103/229/63 80/178/13 +f 92/192/60 94/194/64 93/193/64 +f 94/194/15 97/200/15 95/195/15 +f 91/198/14 82/230/14 87/196/14 +f 82/230/14 81/231/14 93/202/14 +f 81/231/14 84/232/14 93/202/14 +f 93/202/14 87/196/14 82/230/14 +f 96/199/11 95/195/11 97/200/11 +f 87/186/17 96/199/17 98/201/17 +f 93/202/14 95/233/14 96/203/14 +f 85/189/12 98/234/12 97/204/12 +f 79/206/63 78/235/13 88/207/13 +f 100/209/65 79/206/63 99/208/63 +f 103/213/12 90/228/12 105/236/12 +f 90/228/12 89/188/12 105/236/12 +f 101/226/12 83/225/12 102/211/12 +f 83/225/12 80/212/12 102/211/12 +f 103/213/12 105/236/12 102/211/12 +f 102/214/11 106/237/11 100/209/65 +f 104/215/66 106/238/11 102/216/11 +f 77/218/59 104/215/66 105/217/66 +f 88/207/13 78/235/13 77/218/59 +f 107/239/67 108/240/68 109/241/69 +f 110/242/70 111/243/71 112/244/71 +f 113/245/13 114/246/13 115/247/13 +f 116/248/72 117/249/73 118/250/74 +f 118/250/74 119/251/75 120/252/76 +f 120/252/76 121/253/77 122/254/78 +f 122/254/78 123/255/79 124/256/80 +f 124/256/80 125/257/81 126/258/82 +f 127/259/83 128/260/84 129/261/85 +f 130/262/86 131/263/86 132/264/86 +f 112/244/71 133/265/87 134/266/87 +f 135/267/88 136/268/89 137/269/90 +f 138/270/91 139/271/92 140/272/93 +f 140/272/93 141/273/94 142/274/95 +f 142/274/95 143/275/96 107/239/67 +f 144/276/97 145/277/98 146/278/99 +f 147/279/100 148/280/101 149/281/102 +f 147/279/100 150/282/103 109/241/69 +f 151/283/104 152/284/105 150/282/103 +f 153/285/106 154/286/107 152/284/105 +f 147/279/100 155/287/108 151/283/104 +f 151/283/104 156/288/109 153/285/106 +f 153/285/106 157/289/110 158/290/111 +f 118/250/74 159/291/112 116/248/72 +f 160/292/113 161/293/114 159/291/112 +f 162/294/115 163/295/116 161/293/114 +f 120/252/76 160/292/113 118/250/74 +f 164/296/117 162/294/115 160/292/113 +f 165/297/118 166/298/119 162/294/115 +f 122/254/78 164/296/117 120/252/76 +f 167/299/120 165/297/118 164/296/117 +f 168/300/121 169/301/122 165/297/118 +f 122/254/78 170/302/123 167/299/120 +f 167/299/120 129/261/85 168/300/121 +f 168/300/121 128/260/84 171/303/124 +f 126/258/82 170/302/123 124/256/80 +f 172/304/125 173/305/126 174/306/127 +f 163/307/116 166/308/119 158/309/111 +f 138/270/91 175/310/128 176/311/129 +f 176/311/129 135/267/88 177/312/130 +f 146/278/131 177/312/132 134/313/133 +f 142/274/95 175/310/128 140/272/93 +f 178/314/134 135/267/88 175/310/128 +f 179/315/135 136/268/89 135/267/88 +f 142/274/95 180/316/136 178/314/134 +f 178/314/134 181/317/137 179/315/135 +f 179/315/135 182/318/138 183/319/139 +f 107/239/67 150/282/103 180/316/136 +f 180/316/136 152/284/105 181/317/137 +f 181/317/137 154/286/107 182/318/138 +f 184/320/140 185/321/141 186/322/142 +f 186/322/142 187/323/143 188/324/144 +f 188/324/144 189/325/145 108/240/68 +f 190/326/146 185/321/141 191/327/147 +f 192/328/148 187/323/143 185/321/141 +f 193/329/149 189/325/145 187/323/143 +f 194/330/150 195/331/151 113/332/152 +f 113/332/152 196/333/153 114/334/154 +f 114/334/154 117/249/73 115/335/155 +f 197/336/156 198/337/157 195/331/151 +f 195/331/151 199/338/158 196/333/153 +f 196/333/153 119/251/75 117/249/73 +f 200/339/159 201/340/160 198/337/157 +f 198/337/157 202/341/161 199/338/158 +f 199/338/158 121/253/77 119/251/75 +f 172/304/125 201/340/160 203/342/162 +f 174/306/127 202/341/161 201/340/160 +f 204/343/163 121/253/77 202/341/161 +f 173/305/126 130/344/164 204/343/163 +f 204/343/163 125/257/81 123/255/79 +f 205/345/165 206/346/166 127/259/83 +f 145/277/98 207/347/167 146/278/99 +f 208/348/168 209/349/169 207/347/167 +f 210/350/170 211/351/171 145/277/98 +f 145/277/98 212/352/172 208/348/168 +f 208/348/168 141/273/94 139/271/92 +f 213/353/173 211/351/171 214/354/174 +f 215/355/175 212/352/172 211/351/171 +f 216/356/176 141/273/94 212/352/172 +f 184/320/140 215/355/175 213/353/173 +f 186/322/142 216/356/176 215/355/175 +f 188/324/144 143/275/96 216/356/176 +f 214/357/174 172/358/125 203/359/162 +f 146/278/131 176/311/129 177/312/132 +f 207/347/167 138/270/91 176/311/129 +f 109/241/69 189/325/145 147/279/100 +f 137/360/177 134/266/178 217/361/179 +f 133/265/180 144/362/181 218/363/182 +f 110/242/183 219/364/184 220/365/185 +f 112/244/186 221/366/187 110/242/183 +f 112/244/186 137/360/177 222/367/188 +f 223/368/189 111/243/190 224/369/191 +f 144/362/181 111/243/190 225/370/192 +f 132/264/193 173/371/194 226/372/195 +f 226/372/196 224/369/191 132/264/197 +f 220/365/198 127/373/199 206/374/200 +f 220/365/201 224/369/70 110/242/70 +f 107/239/67 143/275/96 108/240/68 +f 110/242/70 224/369/70 111/243/71 +f 115/247/13 116/375/13 163/376/13 +f 116/375/13 159/377/13 161/378/13 +f 163/376/13 116/375/13 161/378/13 +f 163/376/13 157/379/13 190/380/13 +f 157/379/13 156/381/13 149/382/13 +f 190/380/13 157/379/13 149/382/13 +f 156/381/13 155/383/13 149/382/13 +f 149/382/13 148/384/13 190/380/13 +f 148/384/13 193/385/13 192/386/13 +f 190/380/13 148/384/13 192/386/13 +f 190/380/13 194/387/13 163/376/13 +f 194/387/13 113/245/13 115/247/13 +f 163/376/13 194/387/13 115/247/13 +f 116/248/72 115/335/155 117/249/73 +f 118/250/74 117/249/73 119/251/75 +f 120/252/76 119/251/75 121/253/77 +f 122/254/78 121/253/77 123/255/79 +f 124/256/80 123/255/79 125/257/81 +f 127/259/83 219/388/202 128/260/84 +f 132/264/86 220/365/86 126/389/86 +f 220/365/86 206/374/86 205/390/86 +f 126/389/86 220/365/86 205/390/86 +f 126/389/86 125/391/86 132/264/86 +f 125/391/86 130/262/86 132/264/86 +f 112/244/71 111/243/71 133/265/87 +f 217/392/203 177/312/130 137/269/90 +f 177/312/130 135/267/88 137/269/90 +f 138/270/91 209/349/169 139/271/92 +f 140/272/93 139/271/92 141/273/94 +f 142/274/95 141/273/94 143/275/96 +f 146/278/99 218/393/204 144/276/97 +f 144/276/97 210/350/170 145/277/98 +f 147/279/100 189/325/145 148/280/101 +f 147/279/100 151/283/104 150/282/103 +f 151/283/104 153/285/106 152/284/105 +f 153/285/106 158/290/111 154/286/107 +f 147/279/100 149/281/102 155/287/108 +f 151/283/104 155/287/108 156/288/109 +f 153/285/106 156/288/109 157/289/110 +f 118/250/74 160/292/113 159/291/112 +f 160/292/113 162/294/115 161/293/114 +f 162/294/115 166/298/119 163/295/116 +f 120/252/76 164/296/117 160/292/113 +f 164/296/117 165/297/118 162/294/115 +f 165/297/118 169/301/122 166/298/119 +f 122/254/78 167/299/120 164/296/117 +f 167/299/120 168/300/121 165/297/118 +f 168/300/121 171/303/124 169/301/122 +f 122/254/78 124/256/80 170/302/123 +f 167/299/120 170/302/123 129/261/85 +f 168/300/121 129/261/85 128/260/84 +f 126/258/82 205/345/165 170/302/123 +f 172/304/125 226/394/205 173/305/126 +f 222/395/15 137/396/90 136/397/89 +f 183/398/139 182/399/138 171/400/124 +f 182/399/138 154/401/107 171/400/124 +f 171/400/124 154/401/107 169/402/122 +f 222/395/15 136/397/89 221/403/15 +f 136/397/89 183/398/139 128/404/84 +f 219/405/202 221/403/15 128/404/84 +f 128/404/84 221/403/15 136/397/89 +f 154/401/107 158/309/111 169/402/122 +f 171/400/124 128/404/84 183/398/139 +f 158/309/111 157/406/110 163/307/116 +f 169/402/122 158/309/111 166/308/119 +f 138/270/91 140/272/93 175/310/128 +f 176/311/129 175/310/128 135/267/88 +f 177/312/132 217/392/206 134/313/133 +f 134/313/133 133/407/133 146/278/131 +f 133/407/133 218/393/207 146/278/131 +f 142/274/95 178/314/134 175/310/128 +f 178/314/134 179/315/135 135/267/88 +f 179/315/135 183/319/139 136/268/89 +f 142/274/95 107/239/67 180/316/136 +f 178/314/134 180/316/136 181/317/137 +f 179/315/135 181/317/137 182/318/138 +f 107/239/67 109/241/69 150/282/103 +f 180/316/136 150/282/103 152/284/105 +f 181/317/137 152/284/105 154/286/107 +f 184/320/140 191/327/147 185/321/141 +f 186/322/142 185/321/141 187/323/143 +f 188/324/144 187/323/143 189/325/145 +f 190/326/146 192/328/148 185/321/141 +f 192/328/148 193/329/149 187/323/143 +f 193/329/149 148/280/101 189/325/145 +f 194/330/150 197/336/156 195/331/151 +f 113/332/152 195/331/151 196/333/153 +f 114/334/154 196/333/153 117/249/73 +f 197/336/156 200/339/159 198/337/157 +f 195/331/151 198/337/157 199/338/158 +f 196/333/153 199/338/158 119/251/75 +f 200/339/159 203/342/162 201/340/160 +f 198/337/157 201/340/160 202/341/161 +f 199/338/158 202/341/161 121/253/77 +f 172/304/125 174/306/127 201/340/160 +f 174/306/127 204/343/163 202/341/161 +f 204/343/163 123/255/79 121/253/77 +f 204/343/163 174/306/127 173/305/126 +f 173/305/126 131/408/208 130/344/164 +f 204/343/163 130/344/164 125/257/81 +f 129/261/85 170/302/123 127/259/83 +f 170/302/123 205/345/165 127/259/83 +f 145/277/98 208/348/168 207/347/167 +f 208/348/168 139/271/92 209/349/169 +f 210/350/170 214/354/174 211/351/171 +f 145/277/98 211/351/171 212/352/172 +f 208/348/168 212/352/172 141/273/94 +f 213/353/173 215/355/175 211/351/171 +f 215/355/175 216/356/176 212/352/172 +f 216/356/176 143/275/96 141/273/94 +f 184/320/140 186/322/142 215/355/175 +f 186/322/142 188/324/144 216/356/176 +f 188/324/144 108/240/68 143/275/96 +f 210/409/170 144/410/97 225/411/17 +f 225/411/17 223/412/17 210/409/170 +f 223/412/17 226/413/205 172/358/125 +f 223/412/17 172/358/125 210/409/170 +f 214/357/174 210/409/170 172/358/125 +f 184/414/140 213/415/173 203/359/162 +f 213/415/173 214/357/174 203/359/162 +f 190/416/146 191/417/147 194/418/150 +f 191/417/147 184/414/140 200/419/159 +f 197/420/156 194/418/150 191/417/147 +f 200/419/159 197/420/156 191/417/147 +f 203/359/162 200/419/159 184/414/140 +f 146/278/131 207/347/167 176/311/129 +f 207/347/167 209/349/169 138/270/91 +f 109/241/69 108/240/68 189/325/145 +f 110/242/183 221/366/187 219/364/184 +f 112/244/186 222/367/188 221/366/187 +f 112/244/186 134/266/178 137/360/177 +f 223/368/189 225/370/192 111/243/190 +f 144/362/181 133/265/180 111/243/190 +f 132/264/193 131/263/209 173/371/194 +f 226/372/196 223/368/189 224/369/191 +f 220/365/198 219/364/210 127/373/199 +f 220/365/201 132/264/201 224/369/70 +f 227/421/211 228/422/212 229/423/211 +f 230/424/213 378/425/214 381/426/214 +f 384/427/17 391/428/215 386/427/17 +f 236/429/216 237/430/217 238/431/217 +f 239/432/218 240/433/219 241/434/218 +f 238/431/217 242/435/220 243/436/220 +f 244/437/221 245/438/221 246/439/221 +f 246/439/222 247/440/222 248/441/222 +f 248/441/223 249/442/224 250/443/224 +f 251/444/13 252/445/13 253/446/13 +f 253/446/12 254/447/12 255/448/12 +f 255/449/225 256/450/225 257/451/225 +f 258/452/12 257/451/12 259/453/12 +f 260/454/11 261/455/226 262/456/226 +f 262/456/226 263/457/227 264/458/227 +f 264/458/227 265/459/228 230/424/228 +f 228/422/212 266/460/229 267/461/229 +f 299/462/230 380/463/231 234/464/231 +f 268/465/232 227/421/211 229/423/211 +f 380/466/15 389/467/233 388/466/15 +f 266/460/229 236/429/216 267/461/229 +f 249/442/224 270/468/234 250/443/224 +f 271/469/234 272/470/235 270/468/234 +f 273/471/236 274/472/237 251/444/237 +f 275/473/238 276/474/239 277/475/238 +f 278/476/239 279/477/240 276/474/239 +f 280/478/240 273/471/236 279/477/240 +f 281/479/241 282/480/241 283/481/241 +f 284/482/242 267/461/243 236/429/242 +f 285/483/244 266/460/245 286/484/245 +f 238/431/246 283/485/247 287/486/248 +f 281/487/249 237/430/250 288/488/251 +f 289/489/252 229/423/253 228/422/252 +f 290/490/254 227/421/255 291/491/255 +f 268/465/256 292/492/253 293/493/256 +f 228/422/252 294/494/243 289/489/252 +f 291/491/255 295/495/257 296/496/257 +f 286/484/245 297/497/254 290/490/254 +f 238/431/246 284/482/242 236/429/242 +f 285/483/244 237/430/250 298/498/244 +f 299/462/230 296/499/258 295/500/258 +f 300/501/235 277/475/238 272/470/235 +f 301/502/17 302/503/17 303/504/17 +f 304/505/259 305/506/260 306/507/260 +f 307/508/15 308/509/15 232/510/15 +f 309/511/261 310/512/262 311/513/261 +f 312/514/263 309/511/261 311/513/261 +f 313/515/264 314/516/263 312/514/263 +f 315/517/265 316/518/266 317/519/265 +f 316/518/266 310/512/262 318/520/262 +f 319/521/267 320/522/268 260/523/15 +f 314/524/17 321/525/17 280/526/17 +f 302/527/269 322/528/270 323/529/269 +f 324/530/271 317/519/265 325/531/271 +f 241/434/218 325/531/271 239/432/218 +f 321/532/264 326/533/259 304/534/259 +f 305/506/260 327/535/272 306/507/260 +f 328/536/14 329/537/14 330/538/14 +f 331/539/11 332/540/11 333/541/11 +f 334/542/12 308/543/12 335/544/12 +f 336/545/13 319/546/13 337/547/13 +f 279/548/15 313/549/15 312/550/15 +f 329/551/273 255/552/15 257/553/274 +f 254/554/17 328/555/275 256/556/276 +f 328/555/275 338/557/277 256/556/276 +f 319/521/267 339/558/278 320/522/268 +f 336/559/279 261/560/17 340/561/17 +f 341/562/280 342/563/281 339/558/278 +f 343/564/281 344/565/281 342/563/281 +f 345/566/282 329/551/273 257/553/274 +f 346/567/283 345/566/282 347/568/283 +f 258/569/283 346/567/283 347/568/283 +f 348/570/281 258/569/283 344/565/281 +f 349/571/284 336/559/279 350/572/285 +f 351/573/286 352/574/287 349/571/284 +f 353/575/286 354/576/286 351/573/286 +f 348/577/14 336/578/14 355/579/14 +f 356/580/288 353/575/286 259/581/288 +f 357/582/288 259/581/288 358/583/288 +f 338/557/277 357/582/288 358/583/288 +f 359/584/12 360/585/12 361/586/12 +f 360/585/12 335/544/12 361/586/12 +f 307/508/289 361/587/290 335/588/291 +f 308/509/292 307/508/289 335/588/291 +f 361/587/290 362/589/293 359/590/294 +f 301/502/295 363/591/296 360/592/297 +f 334/593/298 364/594/299 365/595/300 +f 360/592/297 364/594/299 334/593/298 +f 366/596/301 367/597/219 303/598/301 +f 303/598/301 323/529/269 366/596/301 +f 227/421/211 297/497/212 228/422/212 +f 230/424/213 265/459/213 231/599/302 +f 384/600/303 383/601/231 235/602/231 +f 236/429/216 298/498/216 237/430/217 +f 239/432/218 367/597/219 240/433/219 +f 238/431/217 237/430/217 242/435/220 +f 244/437/221 282/480/221 245/438/221 +f 246/439/222 245/438/222 247/440/222 +f 248/441/223 247/440/223 249/442/224 +f 251/444/13 274/472/13 252/445/13 +f 253/446/12 252/445/12 254/447/12 +f 255/449/225 254/603/225 256/450/225 +f 340/604/12 260/605/12 350/606/12 +f 260/605/12 320/607/12 350/606/12 +f 320/607/12 339/608/12 342/609/12 +f 320/607/12 342/609/12 344/610/12 +f 351/611/12 349/612/12 350/606/12 +f 353/613/12 351/611/12 350/606/12 +f 350/606/12 320/607/12 344/610/12 +f 258/452/12 347/614/12 257/451/12 +f 347/614/12 345/615/12 257/451/12 +f 350/606/12 344/610/12 353/613/12 +f 344/610/12 258/452/12 353/613/12 +f 259/453/12 353/613/12 258/452/12 +f 338/616/12 358/617/12 256/450/12 +f 358/617/12 259/453/12 256/450/12 +f 257/451/12 256/450/12 259/453/12 +f 260/454/11 340/618/11 261/455/226 +f 262/456/226 261/455/226 263/457/227 +f 264/458/227 263/457/227 265/459/228 +f 228/422/212 297/497/212 266/460/229 +f 389/619/304 387/620/304 392/621/231 +f 268/465/232 295/495/232 227/421/211 +f 380/463/231 379/622/303 368/623/303 +f 266/460/229 298/498/216 236/429/216 +f 249/442/224 271/469/234 270/468/234 +f 271/469/234 300/501/235 272/470/235 +f 273/471/236 369/624/236 274/472/237 +f 275/473/238 278/476/239 276/474/239 +f 278/476/239 280/478/240 279/477/240 +f 280/478/240 369/624/236 273/471/236 +f 282/480/241 244/437/241 283/481/241 +f 283/481/241 243/625/241 242/626/241 +f 242/626/241 281/479/241 283/481/241 +f 284/482/242 294/494/243 267/461/243 +f 285/483/244 298/498/244 266/460/245 +f 238/431/246 243/436/247 283/485/247 +f 281/487/249 242/435/249 237/430/250 +f 289/489/252 292/492/253 229/423/253 +f 290/490/254 297/497/254 227/421/255 +f 268/465/256 229/423/253 292/492/253 +f 228/422/252 267/461/243 294/494/243 +f 291/491/255 227/421/255 295/495/257 +f 286/484/245 266/460/245 297/497/254 +f 238/431/246 287/486/248 284/482/242 +f 285/483/244 288/488/251 237/430/250 +f 295/500/258 268/627/258 299/462/230 +f 268/627/258 293/628/258 269/629/230 +f 268/627/258 382/630/305 377/631/305 +f 300/501/235 275/473/238 277/475/238 +f 245/632/17 282/633/17 285/634/17 +f 282/633/17 281/635/17 288/636/17 +f 285/634/17 282/633/17 288/636/17 +f 285/634/17 286/637/17 245/632/17 +f 286/637/17 290/638/17 245/632/17 +f 291/639/17 296/640/17 299/641/17 +f 290/638/17 291/639/17 245/632/17 +f 291/639/17 299/641/17 245/632/17 +f 299/641/17 234/642/17 245/632/17 +f 271/643/17 249/644/17 325/645/17 +f 249/644/17 247/646/17 325/645/17 +f 247/646/17 245/632/17 367/647/17 +f 363/591/17 368/648/17 364/594/17 +f 234/642/17 368/648/17 363/591/17 +f 245/632/17 234/642/17 363/591/17 +f 368/648/17 231/649/17 364/594/17 +f 300/650/17 271/643/17 317/651/17 +f 265/652/17 263/653/17 365/595/17 +f 263/653/17 261/560/17 370/654/17 +f 365/595/17 263/653/17 370/654/17 +f 317/651/17 316/655/17 300/650/17 +f 325/645/17 317/651/17 271/643/17 +f 231/649/17 265/652/17 365/595/17 +f 231/649/17 365/595/17 364/594/17 +f 239/656/17 325/645/17 247/646/17 +f 245/632/17 363/591/17 303/504/17 +f 367/647/17 239/656/17 247/646/17 +f 303/504/17 367/647/17 245/632/17 +f 363/591/17 301/502/17 303/504/17 +f 301/502/17 333/657/17 327/658/17 +f 301/502/17 327/658/17 302/503/17 +f 304/505/259 326/659/259 305/506/260 +f 283/660/15 244/661/15 287/662/15 +f 244/661/15 246/663/15 284/664/15 +f 287/662/15 244/661/15 284/664/15 +f 248/665/15 250/666/15 324/667/15 +f 250/666/15 270/668/15 324/667/15 +f 270/668/15 272/669/15 315/670/15 +f 324/667/15 270/668/15 315/670/15 +f 294/671/15 284/664/15 246/663/15 +f 289/672/15 294/671/15 246/663/15 +f 289/672/15 246/663/15 292/673/15 +f 246/663/15 248/665/15 240/674/15 +f 292/673/15 246/663/15 269/675/15 +f 269/675/15 293/676/15 292/673/15 +f 269/675/15 246/663/15 235/677/15 +f 272/669/15 371/678/15 315/670/15 +f 235/677/15 246/663/15 362/589/15 +f 248/665/15 324/667/15 241/679/15 +f 366/680/15 246/663/15 240/674/15 +f 233/681/15 235/677/15 362/589/15 +f 246/663/15 366/680/15 362/589/15 +f 248/665/15 241/679/15 240/674/15 +f 232/510/15 233/681/15 307/508/15 +f 262/682/15 264/683/15 337/684/15 +f 264/683/15 230/685/15 308/509/15 +f 308/509/15 337/684/15 264/683/15 +f 323/686/15 322/687/15 359/590/15 +f 322/687/15 372/688/15 359/590/15 +f 233/681/15 362/589/15 307/508/15 +f 366/680/15 323/686/15 359/590/15 +f 362/589/15 366/680/15 359/590/15 +f 308/509/15 230/685/15 232/510/15 +f 309/511/261 318/520/262 310/512/262 +f 312/514/263 314/516/263 309/511/261 +f 313/515/264 321/532/264 314/516/263 +f 315/517/265 371/689/266 316/518/266 +f 316/518/266 371/689/266 310/512/262 +f 260/523/15 262/682/15 319/521/267 +f 262/682/15 337/684/15 319/521/267 +f 275/690/17 300/650/17 316/655/17 +f 275/690/17 316/655/17 318/691/17 +f 280/526/17 278/692/17 314/524/17 +f 278/692/17 275/690/17 309/693/17 +f 274/694/17 369/695/17 304/696/17 +f 369/695/17 280/526/17 321/525/17 +f 254/554/17 252/697/17 332/698/17 +f 252/697/17 274/694/17 332/698/17 +f 332/698/17 373/699/17 254/554/17 +f 327/658/17 333/657/17 306/700/17 +f 333/657/17 332/698/17 274/694/17 +f 306/700/17 333/657/17 274/694/17 +f 275/690/17 318/691/17 309/693/17 +f 278/692/17 309/693/17 314/524/17 +f 369/695/17 321/525/17 304/696/17 +f 304/696/17 306/700/17 274/694/17 +f 302/527/269 327/535/270 322/528/270 +f 324/530/271 315/517/265 317/519/265 +f 241/434/218 324/530/271 325/531/271 +f 321/532/264 313/515/264 326/533/259 +f 305/506/260 322/528/272 327/535/272 +f 373/701/14 332/702/14 374/703/14 +f 332/702/14 331/704/14 374/703/14 +f 357/705/14 375/706/14 328/536/14 +f 328/536/14 373/701/14 329/537/14 +f 373/701/14 374/703/14 329/537/14 +f 329/537/14 376/707/14 346/708/14 +f 356/709/14 357/705/14 328/536/14 +f 346/708/14 330/538/14 329/537/14 +f 330/538/14 356/709/14 328/536/14 +f 333/541/11 301/710/11 359/711/11 +f 359/711/11 372/712/11 333/541/11 +f 372/712/11 331/539/11 333/541/11 +f 334/542/12 365/713/12 308/543/12 +f 337/547/13 308/714/13 365/715/13 +f 365/715/13 370/716/13 337/547/13 +f 370/716/13 336/545/13 337/547/13 +f 253/717/15 255/552/15 331/718/15 +f 255/552/15 374/719/15 331/718/15 +f 331/718/15 372/688/15 251/720/15 +f 372/688/15 322/687/15 305/721/15 +f 279/548/15 273/722/15 313/549/15 +f 273/722/15 251/720/15 326/723/15 +f 313/549/15 273/722/15 326/723/15 +f 251/720/15 253/717/15 331/718/15 +f 372/688/15 305/721/15 251/720/15 +f 305/721/15 326/723/15 251/720/15 +f 277/724/15 276/725/15 311/726/15 +f 276/725/15 279/548/15 312/550/15 +f 311/726/15 276/725/15 312/550/15 +f 371/678/15 272/669/15 277/724/15 +f 310/727/15 371/678/15 277/724/15 +f 311/726/15 310/727/15 277/724/15 +f 329/551/273 374/719/15 255/552/15 +f 254/554/17 373/699/17 328/555/275 +f 328/555/275 375/728/275 338/557/277 +f 319/521/267 341/562/280 339/558/278 +f 340/561/17 350/572/285 336/559/279 +f 336/559/279 370/654/17 261/560/17 +f 341/562/280 343/564/281 342/563/281 +f 343/564/281 348/570/281 344/565/281 +f 345/566/282 376/729/273 329/551/273 +f 346/567/283 376/729/273 345/566/282 +f 258/569/283 330/730/283 346/567/283 +f 348/570/281 330/730/283 258/569/283 +f 349/571/284 352/574/287 336/559/279 +f 351/573/286 354/576/286 352/574/287 +f 353/575/286 355/731/286 354/576/286 +f 355/579/14 356/709/14 348/577/14 +f 356/709/14 330/538/14 348/577/14 +f 348/577/14 343/732/14 319/733/14 +f 343/732/14 341/734/14 319/733/14 +f 352/735/14 354/736/14 336/578/14 +f 354/736/14 355/579/14 336/578/14 +f 319/733/14 336/578/14 348/577/14 +f 356/580/288 355/731/286 353/575/286 +f 357/582/288 356/580/288 259/581/288 +f 338/557/277 375/728/275 357/582/288 +f 359/584/12 301/737/12 360/585/12 +f 360/585/12 334/542/12 335/544/12 +f 307/508/289 362/589/293 361/587/290 +f 360/592/297 363/591/296 364/594/299 +f 366/596/301 240/433/219 367/597/219 +f 303/598/301 302/527/269 323/529/269 +f 368/623/303 378/425/214 231/599/302 +f 384/600/303 232/738/302 381/426/214 +f 380/463/231 368/623/303 234/464/231 +f 390/739/303 386/740/303 391/741/306 +f 389/619/304 392/621/231 388/742/231 +f 382/630/305 269/629/230 235/602/231 +f 382/630/305 235/602/231 383/601/231 +f 379/743/15 388/466/15 390/743/15 +f 379/743/15 390/743/15 385/744/307 +f 386/740/303 388/742/231 392/621/231 +f 390/739/303 391/741/306 385/745/306 +f 386/740/303 390/739/303 388/742/231 +f 384/600/303 235/602/231 233/746/303 +f 384/427/17 381/428/308 391/428/215 +f 384/427/17 386/427/17 392/747/17 +f 299/462/230 377/631/305 380/463/231 +f 382/748/309 389/467/233 377/467/310 +f 383/747/17 387/748/311 382/748/309 +f 384/427/17 392/747/17 383/747/17 +f 379/743/15 385/744/307 378/744/312 +f 368/623/303 379/622/303 378/425/214 +f 382/748/309 387/748/311 389/467/233 +f 385/744/307 391/428/215 381/428/308 +f 384/600/303 233/746/303 232/738/302 +f 380/466/15 377/467/310 389/467/233 +f 385/744/307 381/428/308 378/744/312 +f 379/743/15 380/466/15 388/466/15 +f 383/747/17 392/747/17 387/748/311 +f 230/424/213 231/599/302 378/425/214 +f 381/426/214 232/738/302 230/424/213 +f 377/631/305 299/462/230 268/627/258 +f 268/627/258 269/629/230 382/630/305 +o Hammer +v 0.032000 0.482926 1.114100 +v 0.032000 0.624219 1.281649 +v 0.032000 0.556773 1.273590 +v -0.032000 0.482926 1.114100 +v -0.032000 0.624219 1.281649 +v -0.032000 0.687900 1.294528 +v 0.032000 0.865797 1.208403 +v -0.032000 0.770709 1.330115 +v 0.032000 0.770709 1.330115 +v 0.032000 0.687900 1.294528 +v -0.032000 0.603432 1.343032 +v 0.032000 0.603432 1.343032 +v 0.068452 0.608892 1.422981 +v -0.068452 0.608892 1.422981 +v -0.068452 0.498592 1.571619 +v 0.068452 0.498592 1.571619 +v -0.068452 0.468201 1.545936 +v 0.068452 0.468201 1.545936 +v -0.068452 0.512187 1.487151 +v 0.068452 0.512187 1.487151 +v 0.068452 0.556472 1.413076 +v -0.068452 0.556472 1.413076 +v -0.032000 0.552518 1.318780 +v 0.032000 0.552518 1.318780 +v -0.032000 0.556773 1.273590 +v -0.032000 0.515951 1.296035 +v 0.032000 0.515951 1.296035 +v -0.032000 0.408701 1.336443 +v 0.032000 0.408701 1.336443 +v -0.031291 0.259377 1.231255 +v 0.032709 0.259377 1.231255 +v -0.032000 0.865797 1.208403 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.7880 0.6156 +vn -0.0000 -0.3948 0.9188 +vn -0.0000 -0.1982 0.9802 +vn -0.0000 0.9472 0.3208 +vn -0.0000 0.9977 -0.0681 +vn -0.0000 0.8030 0.5959 +vn -0.0000 -0.6455 0.7638 +vn -0.0000 -0.8007 -0.5991 +vn -0.0000 -0.8583 -0.5131 +vn -0.0000 -0.9991 0.0419 +vn -0.0000 -0.9956 -0.0938 +vn -0.0000 0.4818 0.8763 +vn -0.0000 0.3526 0.9358 +vn -0.0000 -0.5759 0.8175 +vn -0.0000 -0.4642 -0.8857 +vn -0.0000 0.2392 -0.9710 +vn 0.9164 0.1722 -0.3615 +vn -0.9050 0.0790 -0.4180 +vn 1.0000 0.0038 0.0013 +vn -1.0000 -0.0038 -0.0013 +vn 0.9050 0.0790 -0.4180 +vn -0.9164 0.1722 -0.3615 +vt 0.343765 0.934799 +vt 0.350946 0.946383 +vt 0.354698 0.940182 +vt 0.343782 0.934821 +vt 0.350963 0.946405 +vt 0.347864 0.952606 +vt 0.390183 0.954876 +vt 0.397012 0.971356 +vt 0.390183 0.971356 +vt 0.397012 0.980973 +vt 0.390183 0.980973 +vt 0.397012 0.987905 +vt 0.390183 0.987905 +vt 0.397012 0.994820 +vt 0.390183 0.994820 +vt 0.379264 0.964780 +vt 0.387814 0.975498 +vt 0.379264 0.979388 +vt 0.359515 0.979388 +vt 0.359515 0.964780 +vt 0.355269 0.979388 +vt 0.355269 0.964780 +vt 0.347436 0.979388 +vt 0.347436 0.964780 +vt 0.338227 0.964780 +vt 0.338227 0.979388 +vt 0.328157 0.975498 +vt 0.328157 0.968670 +vt 0.397043 0.923988 +vt 0.403872 0.928831 +vt 0.397043 0.928831 +vt 0.403872 0.933801 +vt 0.397043 0.933801 +vt 0.403872 0.946030 +vt 0.397043 0.946030 +vt 0.403872 0.956580 +vt 0.397043 0.956580 +vt 0.403872 0.990249 +vt 0.397043 0.990249 +vt 0.390183 0.923988 +vt 0.397012 0.954876 +vt 0.384495 0.954648 +vt 0.384235 0.950410 +vt 0.376401 0.950426 +vt 0.357473 0.948666 +vt 0.367240 0.949494 +vt 0.358777 0.942792 +vt 0.357490 0.948689 +vt 0.367257 0.949516 +vt 0.364763 0.954633 +vt 0.376418 0.950449 +vt 0.384252 0.950432 +vt 0.384512 0.954670 +vt 0.328921 0.961887 +vt 0.347847 0.952584 +vt 0.345400 0.961884 +vt 0.369708 0.931858 +vt 0.375254 0.922884 +vt 0.359266 0.938223 +vt 0.375271 0.922906 +vt 0.369725 0.931881 +vt 0.359283 0.938246 +vt 0.354715 0.940204 +vt 0.358794 0.942814 +vt 0.345417 0.961907 +vt 0.328938 0.961909 +vt 0.387814 0.968670 +vt 0.403872 0.923988 +vt 0.397012 0.923988 +vt 0.364746 0.954610 +s 0 +f 393/749/313 394/750/313 395/751/313 +f 396/752/314 397/753/314 398/754/314 +f 399/755/315 400/756/315 401/757/315 +f 401/757/316 398/758/316 402/759/316 +f 402/759/317 397/760/317 394/761/317 +f 394/761/318 403/762/318 404/763/318 +f 405/764/319 403/765/319 406/766/319 +f 405/764/320 407/767/320 408/768/320 +f 408/768/321 409/769/321 410/770/321 +f 410/770/322 411/771/322 412/772/322 +f 413/773/323 411/771/323 414/774/323 +f 413/773/324 415/775/324 416/776/324 +f 416/777/325 417/778/325 395/779/325 +f 395/779/326 418/780/326 419/781/326 +f 419/781/327 420/782/327 421/783/327 +f 421/783/328 422/784/328 423/785/328 +f 423/785/329 396/786/329 393/787/329 +f 393/788/330 424/789/330 399/755/330 +f 408/790/313 410/791/313 412/792/313 +f 404/793/331 413/794/331 416/795/331 +f 403/796/332 414/797/332 406/798/332 +f 411/799/314 409/800/314 407/801/314 +f 393/749/313 399/802/313 402/803/313 +f 399/802/313 401/804/313 402/803/313 +f 421/805/333 423/806/333 393/749/333 +f 395/751/313 419/807/313 393/749/313 +f 419/807/313 421/805/313 393/749/313 +f 404/793/313 416/795/313 394/750/313 +f 416/795/313 395/751/313 394/750/313 +f 393/749/313 402/803/313 394/750/313 +f 396/752/334 422/808/334 420/809/334 +f 420/809/314 418/810/314 396/752/314 +f 418/810/314 417/811/314 396/752/314 +f 417/811/314 415/812/314 397/753/314 +f 415/812/314 403/796/314 397/753/314 +f 400/813/314 424/814/314 398/754/314 +f 424/814/314 396/752/314 398/754/314 +f 396/752/314 417/811/314 397/753/314 +f 399/755/315 424/789/315 400/756/315 +f 401/757/316 400/756/316 398/758/316 +f 402/759/317 398/758/317 397/760/317 +f 394/761/318 397/760/318 403/762/318 +f 405/764/319 404/815/319 403/765/319 +f 405/764/320 406/766/320 407/767/320 +f 408/768/321 407/767/321 409/769/321 +f 410/770/322 409/769/322 411/771/322 +f 413/773/323 412/772/323 411/771/323 +f 413/773/324 414/774/324 415/775/324 +f 416/777/325 415/816/325 417/778/325 +f 395/779/326 417/778/326 418/780/326 +f 419/781/327 418/780/327 420/782/327 +f 421/783/328 420/782/328 422/784/328 +f 423/785/329 422/784/329 396/786/329 +f 393/788/330 396/817/330 424/789/330 +f 412/792/313 413/794/313 405/818/313 +f 405/818/313 408/790/313 412/792/313 +f 404/793/335 405/818/335 413/794/335 +f 403/796/336 415/812/336 414/797/336 +f 407/801/314 406/798/314 411/799/314 +f 406/798/314 414/797/314 411/799/314 +o Trigger +v 0.045500 -0.120256 0.684201 +v 0.045500 -0.026668 0.645664 +v 0.045500 -0.037678 0.759438 +v -0.045500 -0.195494 0.673190 +v -0.045500 -0.241370 0.641994 +v -0.045500 -0.226690 0.735583 +v -0.045500 0.083436 0.570427 +v 0.045500 0.083436 0.570427 +v -0.045500 -0.026668 0.645664 +v 0.045500 -0.195494 0.673190 +v -0.045500 -0.120256 0.684201 +v 0.045500 -0.241370 0.641994 +v 0.045500 -0.301928 0.541066 +v 0.045500 -0.329454 0.561251 +v -0.045500 -0.301928 0.541066 +v 0.045500 -0.292752 0.676861 +v -0.045500 -0.329454 0.561251 +v 0.045500 -0.226690 0.735583 +v -0.045500 -0.292752 0.676861 +v 0.045500 -0.098235 0.761274 +v -0.045500 -0.098235 0.761274 +v 0.045500 0.006363 0.860367 +v -0.045500 -0.037678 0.759438 +v 0.045500 0.120138 0.755768 +v -0.045500 0.006363 0.860367 +v -0.045500 0.120138 0.755768 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.4751 -0.8800 +vn -0.0000 -0.5642 -0.8256 +vn -0.0000 -0.1223 -0.9925 +vn -0.0000 0.3628 -0.9319 +vn -0.0000 0.7269 -0.6868 +vn -0.0000 0.8575 -0.5145 +vn -0.0000 -0.5913 -0.8064 +vn -0.0000 -0.5914 -0.8064 +vn -0.0000 -0.8388 0.5445 +vn -0.0000 -0.9531 0.3026 +vn -0.0000 -0.4458 0.8952 +vn -0.0000 -0.0834 0.9965 +vn -0.0000 0.0303 0.9995 +vn -0.0000 -0.9165 0.3999 +vn -0.0000 0.6768 0.7362 +vn -0.0000 0.9810 -0.1943 +vt 0.023130 0.630533 +vt 0.028439 0.641072 +vt 0.015114 0.640800 +vt 0.023687 0.621763 +vt 0.026907 0.616152 +vt 0.016156 0.618688 +vt 0.051880 0.644663 +vt 0.062490 0.660213 +vt 0.051880 0.660213 +vt 0.051880 0.632862 +vt 0.062490 0.644663 +vt 0.051880 0.623995 +vt 0.062490 0.632862 +vt 0.051880 0.617526 +vt 0.062490 0.623995 +vt 0.051880 0.603802 +vt 0.062490 0.617526 +vt 0.062519 0.663431 +vt 0.073130 0.667411 +vt 0.062519 0.667411 +vt 0.062519 0.649287 +vt 0.073130 0.663431 +vt 0.062519 0.638981 +vt 0.073130 0.649287 +vt 0.062519 0.623707 +vt 0.073130 0.638981 +vt 0.062519 0.616642 +vt 0.073130 0.623707 +vt 0.062519 0.603802 +vt 0.073130 0.616642 +vt 0.051880 0.682243 +vt 0.062490 0.700264 +vt 0.051880 0.700264 +vt 0.062490 0.682243 +vt 0.038162 0.653207 +vt 0.016938 0.659116 +vt 0.003769 0.646815 +vt 0.014364 0.633776 +vt 0.016213 0.618613 +vt 0.023743 0.621688 +vt 0.022455 0.610413 +vt 0.026964 0.616078 +vt 0.035571 0.605121 +vt 0.038162 0.608143 +vt 0.003713 0.646890 +vt 0.016882 0.659191 +vt 0.015057 0.640875 +vt 0.038105 0.653282 +vt 0.028383 0.641147 +vt 0.014307 0.633851 +vt 0.023073 0.630608 +vt 0.022398 0.610487 +vt 0.038105 0.608218 +vt 0.035515 0.605196 +vt 0.062490 0.603802 +vt 0.073130 0.603802 s 1 -f 419/817/328 420/818/329 421/819/328 -f 422/820/329 423/821/330 420/818/329 -f 424/822/330 425/823/331 423/824/330 -f 426/825/331 427/826/332 425/823/331 -f 428/827/332 429/828/333 427/826/332 -f 430/829/333 431/830/334 429/828/333 -f 426/831/335 424/832/335 432/833/335 -f 432/834/334 433/835/336 431/830/334 -f 434/836/336 421/819/328 433/835/336 -f 425/837/337 429/838/337 433/839/337 -f 419/817/328 422/820/329 420/818/329 -f 422/820/329 424/840/330 423/821/330 -f 424/822/330 426/825/331 425/823/331 -f 426/825/331 428/827/332 427/826/332 -f 428/827/332 430/829/333 429/828/333 -f 430/829/333 432/834/334 431/830/334 -f 424/832/335 422/841/335 419/842/335 -f 419/842/335 434/843/335 424/832/335 -f 434/843/335 432/833/335 424/832/335 -f 432/833/335 430/844/335 428/845/335 -f 428/845/335 426/831/335 432/833/335 -f 432/834/334 434/836/336 433/835/336 -f 434/836/336 419/817/328 421/819/328 -f 433/839/337 421/846/337 420/847/337 -f 420/847/337 423/848/337 425/837/337 -f 425/837/337 427/849/337 429/838/337 -f 429/838/337 431/850/337 433/839/337 -f 433/839/337 420/847/337 425/837/337 +f 425/819/337 426/820/337 427/821/337 +f 428/822/338 429/823/338 430/824/338 +f 426/825/339 431/826/340 432/827/340 +f 425/828/341 433/829/339 426/825/339 +f 434/830/342 435/831/341 425/828/341 +f 436/832/343 428/833/342 434/830/342 +f 437/834/344 429/835/343 436/832/343 +f 438/836/345 439/837/345 437/838/346 +f 440/839/347 441/840/348 438/836/348 +f 442/841/349 443/842/347 440/839/347 +f 444/843/350 430/844/349 442/841/349 +f 427/845/351 445/846/350 444/843/350 +f 446/847/352 447/848/352 427/845/352 +f 448/849/353 449/850/353 446/851/353 +f 432/827/354 450/852/354 448/849/354 +f 432/853/337 448/854/337 426/820/337 +f 448/854/337 446/855/337 427/821/337 +f 427/821/337 444/856/337 425/819/337 +f 444/856/337 442/857/337 425/819/337 +f 425/819/337 442/857/337 434/858/337 +f 448/854/337 427/821/337 426/820/337 +f 442/857/337 440/859/337 436/860/337 +f 434/858/337 442/857/337 436/860/337 +f 440/859/337 438/861/337 436/860/337 +f 438/861/337 437/862/337 436/860/337 +f 449/863/338 450/864/338 447/865/338 +f 450/864/338 431/866/338 433/867/338 +f 450/864/338 433/867/338 447/865/338 +f 430/824/338 445/868/338 435/869/338 +f 445/868/338 447/865/338 435/869/338 +f 447/865/338 433/867/338 435/869/338 +f 443/870/338 430/824/338 429/823/338 +f 439/871/338 441/872/338 429/823/338 +f 441/872/338 443/870/338 429/823/338 +f 430/824/338 435/869/338 428/822/338 +f 426/825/339 433/829/339 431/826/340 +f 425/828/341 435/831/341 433/829/339 +f 434/830/342 428/833/342 435/831/341 +f 436/832/343 429/835/343 428/833/342 +f 437/834/344 439/873/344 429/835/343 +f 438/836/345 441/840/345 439/837/345 +f 440/839/347 443/842/347 441/840/348 +f 442/841/349 430/844/349 443/842/347 +f 444/843/350 445/846/350 430/844/349 +f 427/845/351 447/848/351 445/846/350 +f 446/847/352 449/874/352 447/848/352 +f 448/849/353 450/852/353 449/850/353 +f 432/827/354 431/826/354 450/852/354 +o Scope +v 0.000000 1.477200 0.088723 +v 0.098039 1.333949 0.145326 +v 0.000000 1.333949 0.088723 +v 0.098039 1.477200 0.145326 +v 0.098039 1.333949 0.258532 +v 0.098039 1.477200 0.258532 +v 0.000000 1.333949 0.315135 +v 0.000000 1.477200 0.315135 +v -0.098039 1.333949 0.258532 +v -0.098039 1.477200 0.258532 +v -0.098039 1.333949 0.145326 +v -0.098039 1.477200 0.145326 +v -0.052355 1.290100 0.088723 +v -0.195606 1.192061 0.145326 +v -0.195606 1.290100 0.088723 +v -0.052355 1.192061 0.145326 +v -0.195606 1.192061 0.258532 +v -0.052355 1.192061 0.258532 +v -0.195606 1.290100 0.315135 +v -0.052355 1.290100 0.315135 +v -0.195606 1.388139 0.258532 +v -0.052355 1.388139 0.258532 +v -0.195606 1.388139 0.145326 +v -0.052355 1.388139 0.145326 +v 0.122250 1.167851 -0.880258 +v 0.172888 1.290101 -0.535252 +v 0.122250 1.167851 -0.535252 +v 0.122250 1.412351 -0.880258 +v 0.122250 1.412351 -0.535252 +v 0.000000 1.462989 -0.535252 +v 0.000000 1.462989 -0.880258 +v -0.122250 1.412351 -0.535252 +v -0.122250 1.412351 -0.880258 +v -0.172888 1.290101 -0.535252 +v -0.172888 1.290101 -0.880258 +v -0.122250 1.167851 -0.535252 +v -0.148774 1.290101 -0.842944 +v 0.000000 1.438875 -0.842944 +v 0.148774 1.290101 -0.842944 +v -0.122250 1.167851 -0.880258 +v 0.000000 1.117213 -0.535252 +v 0.047857 1.242244 1.175174 +v 0.047857 1.337958 1.175174 +v -0.047857 1.337958 1.175174 +v -0.101696 1.188405 0.795065 +v 0.000000 1.118381 0.903662 +v -0.121424 1.168677 0.903662 +v -0.143820 1.290101 0.795065 +v -0.171720 1.290101 0.903662 +v -0.101696 1.391797 0.795065 +v -0.121424 1.411525 0.903662 +v 0.000000 1.433921 0.795065 +v 0.000000 1.461821 0.903662 +v 0.101696 1.391797 0.795065 +v 0.121424 1.411525 0.903662 +v 0.143820 1.290101 0.795065 +v 0.171720 1.290101 0.903662 +v 0.101696 1.188405 0.795065 +v 0.121424 1.168677 0.903662 +v 0.000000 1.146281 0.795065 +v -0.101696 1.188405 -0.426655 +v 0.000000 1.146281 -0.380929 +v -0.101696 1.188405 -0.380929 +v -0.143820 1.290101 -0.426655 +v -0.143820 1.290101 -0.380929 +v -0.101696 1.391797 -0.426655 +v -0.101696 1.391797 -0.380929 +v 0.000000 1.433921 -0.426655 +v 0.000000 1.433921 -0.380929 +v 0.101696 1.391797 -0.426655 +v 0.101696 1.391797 -0.380929 +v 0.143820 1.290101 -0.426655 +v 0.143820 1.290101 -0.380929 +v 0.101696 1.188405 -0.426655 +v 0.101696 1.188405 -0.380929 +v 0.000000 1.146281 -0.426655 +v 0.171720 1.290101 1.200607 +v 0.121424 1.411525 1.200607 +v 0.000000 1.461821 1.200607 +v -0.121424 1.411525 1.200607 +v -0.171720 1.290101 1.200607 +v -0.121424 1.168677 1.200607 +v 0.000000 1.118381 1.200607 +v 0.000000 1.146281 0.387825 +v 0.101696 1.188405 0.425211 +v 0.000000 1.146281 0.425211 +v 0.127181 1.162920 -0.019415 +v 0.127181 1.162920 0.387825 +v 0.143820 1.290101 0.387825 +v 0.143820 1.290101 0.425211 +v 0.101696 1.391797 0.425211 +v 0.143820 1.290101 -0.019415 +v 0.127181 1.417282 0.387825 +v 0.000000 1.433921 0.387825 +v 0.000000 1.433921 0.425211 +v 0.127181 1.417282 -0.019415 +v -0.101696 1.391797 0.425211 +v 0.000000 1.433921 -0.019415 +v -0.127181 1.417282 0.387825 +v -0.143820 1.290101 0.387825 +v -0.143820 1.290101 0.425211 +v -0.127181 1.417282 -0.019415 +v -0.101696 1.188405 0.425211 +v -0.143820 1.290101 -0.019415 +v -0.127181 1.162920 0.387825 +v -0.127181 1.162920 -0.019415 +v 0.000000 1.146281 0.560528 +v -0.101696 1.188405 0.560528 +v -0.143820 1.290101 0.560528 +v -0.101696 1.391797 0.560528 +v 0.000000 1.433921 0.560528 +v 0.101696 1.391797 0.560528 +v 0.143820 1.290101 0.560528 +v 0.101696 1.188405 0.560528 +v 0.000000 1.146281 -0.019415 +v 0.101696 1.188405 -0.056801 +v 0.101696 1.391797 -0.056801 +v -0.101696 1.391797 -0.056801 +v -0.101696 1.188405 -0.056801 +v 0.000000 1.146281 0.726438 +v -0.113307 1.408526 -0.380929 +v 0.000000 1.453522 -0.380929 +v 0.101696 1.188405 0.726438 +v -0.125746 1.106419 0.726438 +v 0.000000 1.113253 0.726438 +v 0.143820 1.290101 0.726438 +v 0.125746 1.106419 0.726438 +v 0.101696 1.391797 0.726438 +v 0.000000 1.433921 -0.214523 +v -0.113307 1.408526 -0.214523 +v -0.101696 1.391797 -0.214523 +v 0.000000 1.433921 0.726438 +v -0.125746 1.106419 0.560528 +v -0.160240 1.306368 0.560528 +v -0.101696 1.391797 0.726438 +v 0.113307 1.408526 -0.380929 +v -0.143820 1.290101 0.726438 +v -0.101696 1.188405 0.726438 +v 0.113307 1.408526 -0.214523 +v 0.000000 1.453522 -0.214523 +v 0.000000 1.146281 -0.056801 +v 0.101696 1.188405 -0.214523 +v -0.113307 1.408526 0.560528 +v 0.143820 1.290101 -0.056801 +v 0.160240 1.306368 -0.380929 +v 0.143820 1.290101 -0.214523 +v -0.160240 1.306368 0.726438 +v 0.101696 1.391797 -0.214523 +v 0.000000 1.433921 -0.056801 +v 0.160240 1.306368 -0.214523 +v 0.000000 1.453522 0.560528 +v -0.143820 1.290101 -0.056801 +v 0.125746 1.106419 -0.380929 +v -0.143820 1.290101 -0.214523 +v -0.113307 1.408526 0.726438 +v -0.101696 1.188405 -0.214523 +v 0.125746 1.106419 -0.214523 +v 0.000000 1.113253 0.560528 +v 0.125746 1.106419 0.560528 +v 0.160240 1.306368 0.726438 +v 0.160240 1.306368 0.560528 +v 0.113307 1.408526 0.726438 +v 0.113307 1.408526 0.560528 +v 0.000000 1.453522 0.726438 +v 0.000000 1.113253 -0.214523 +v -0.160240 1.306368 -0.214523 +v -0.125746 1.106419 -0.380929 +v -0.125746 1.106419 -0.214523 +v -0.160240 1.306368 -0.380929 +v 0.000000 1.146281 -0.214523 +v 0.000000 1.113253 -0.380929 +v -0.106302 1.396403 1.157056 +v -0.150333 1.290101 1.200607 +v -0.150333 1.290101 1.157056 +v 0.000000 1.440434 1.157056 +v -0.106302 1.396403 1.200607 +v 0.106302 1.396403 1.157056 +v 0.000000 1.440434 1.200607 +v 0.150333 1.290101 1.157056 +v 0.106302 1.396403 1.200607 +v 0.000000 1.156786 1.166115 +v 0.106302 1.183800 1.157056 +v 0.094268 1.195833 1.166115 +v 0.133315 1.290101 1.166115 +v 0.094268 1.384369 1.166115 +v 0.000000 1.423417 1.166115 +v -0.094268 1.384369 1.166115 +v -0.133315 1.290101 1.166115 +v -0.106302 1.183800 1.157056 +v -0.094268 1.195833 1.166115 +v 0.000000 1.139768 1.157056 +v 0.000000 1.178299 1.171550 +v 0.079056 1.211045 1.171550 +v 0.111802 1.290101 1.171550 +v 0.079056 1.369157 1.171550 +v 0.000000 1.401903 1.171550 +v -0.079056 1.369157 1.171550 +v -0.111802 1.290101 1.171550 +v -0.079056 1.211045 1.171550 +v 0.000000 1.222421 1.175174 +v 0.067680 1.290101 1.175174 +v 0.000000 1.357781 1.175174 +v -0.067680 1.290101 1.175174 +v -0.047857 1.242244 1.175174 +v 0.000000 1.139768 1.200607 +v 0.121424 1.168677 1.200607 +v 0.106302 1.183800 1.200607 +v 0.150333 1.290101 1.200607 +v -0.106302 1.183800 1.200607 +v -0.105199 1.184902 -0.842944 +v -0.148774 1.290101 -0.880258 +v -0.105199 1.395301 -0.880258 +v -0.105199 1.395301 -0.842944 +v 0.000000 1.438875 -0.880258 +v 0.105199 1.395301 -0.880258 +v 0.105199 1.395301 -0.842944 +v 0.105199 1.184902 -0.880258 +v 0.000000 1.117213 -0.880258 +v 0.000000 1.141327 -0.880258 +v 0.148774 1.290101 -0.880258 +v 0.172888 1.290101 -0.880258 +v -0.105199 1.184902 -0.880258 +v 0.000000 1.141327 -0.842944 +v 0.105199 1.184902 -0.842944 +v 0.127287 1.060470 -0.215130 +v -0.127287 1.060470 -0.215130 +v -0.137370 0.965631 -0.215130 +v 0.127287 1.060470 -0.381779 +v 0.127345 1.113839 -0.215130 +v 0.165068 1.014758 -0.215130 +v 0.165068 1.014758 -0.381779 +v -0.127287 1.060470 -0.381779 +v 0.137370 0.965631 -0.381779 +v -0.127345 1.113839 -0.215130 +v -0.127345 1.113839 -0.381779 +v 0.127345 1.113839 -0.381779 +v -0.165068 0.999696 -0.381779 +v -0.137370 0.965631 -0.381779 +v 0.165068 0.999696 -0.215130 +v 0.137370 0.965631 -0.215130 +v -0.165068 1.014758 -0.381779 +v -0.165068 1.014758 -0.215130 +v 0.165068 0.999696 -0.381779 +v -0.165068 0.999696 -0.215130 +v 0.127287 1.060470 0.727120 +v -0.127287 1.060470 0.727120 +v -0.137370 0.965631 0.727120 +v 0.127345 1.113839 0.560471 +v 0.127287 1.060470 0.560471 +v 0.165068 1.014758 0.727120 +v 0.165068 1.014758 0.560471 +v -0.127287 1.060470 0.560471 +v 0.137370 0.965631 0.560471 +v -0.127345 1.113839 0.727120 +v -0.127345 1.113839 0.560471 +v 0.127345 1.113839 0.727120 +v -0.165068 0.999696 0.560471 +v -0.137370 0.965631 0.560471 +v 0.165068 0.999696 0.727120 +v 0.137370 0.965631 0.727120 +v -0.165068 1.014758 0.560471 +v -0.165068 1.014758 0.727120 +v 0.165068 0.999696 0.560471 +v -0.165068 0.999696 0.727120 +v -0.128673 1.041385 0.864105 +v -0.158890 1.005824 -0.497553 +v -0.158890 1.005824 0.864105 +v 0.128673 1.041385 -0.497553 +v 0.158890 1.005824 0.864105 +v 0.158890 1.005824 -0.497553 +v -0.128673 0.970263 -0.497553 +v 0.128673 0.970263 -0.497553 +v -0.042891 0.970263 -0.078904 +v 0.128673 0.970263 0.864105 +v -0.128673 1.041385 -0.497553 +v -0.042891 1.005824 0.864105 +v -0.042891 0.970263 0.864105 +v -0.042891 0.970263 0.913056 +v -0.128673 0.970263 0.864105 +v 0.128673 1.041385 0.864105 +v 0.042891 0.970263 0.864105 +v 0.042891 0.916053 0.076168 +v 0.042891 0.970263 -0.078904 +v 0.042891 1.005824 0.953107 +v -0.042891 0.970263 0.953107 +v 0.042891 0.970263 0.953107 +v 0.042891 0.894106 0.885317 +v 0.042891 0.970263 0.913056 +v 0.042891 1.005824 0.864105 +v -0.042891 0.868174 0.915839 +v -0.042891 0.894106 0.885317 +v 0.042891 0.868174 0.915839 +v -0.042891 0.970263 -0.078904 +v 0.042891 0.916053 0.864105 +v -0.042891 0.916053 0.076168 +v -0.042891 0.916053 0.864105 +v 0.042891 0.970263 -0.078904 +v -0.042891 1.005824 0.953107 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0011 -0.0000 +vn 0.7708 0.6371 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0011 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.7759 -0.6309 -0.0000 +vn 0.7759 -0.6309 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.7708 0.6371 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7620 0.6475 -0.0000 +vn 0.7620 0.6475 -0.0000 +vn 0.7620 -0.6475 -0.0000 +vn -0.7620 -0.6475 -0.0000 +vn -0.0000 -0.7621 -0.6475 +vn -0.0000 0.3422 -0.9396 +vn -0.0000 -0.3429 0.9394 +vn -0.0000 -0.9440 -0.3300 +vn -0.0000 -0.0000 -0.0000 +vn 0.8660 -0.0000 -0.5000 +vn 0.8660 -0.0000 0.5000 +vn -0.8660 -0.0000 0.5000 +vn -0.8660 -0.0000 -0.5000 +vn -0.0000 -0.8660 -0.5000 +vn -0.0000 -0.8660 0.5000 +vn -0.0000 0.8660 0.5000 +vn -0.0000 0.8660 -0.5000 +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 +vn 0.0362 -0.0362 0.9987 +vn 0.0362 0.0362 0.9987 +vn -0.0362 0.0362 0.9987 +vn -0.6849 -0.6849 -0.2488 +vn -0.0000 -0.9685 -0.2488 +vn -0.9685 -0.0000 -0.2488 +vn -0.6849 0.6849 -0.2488 +vn -0.0000 0.9685 -0.2488 +vn 0.6849 0.6849 -0.2488 +vn 0.9685 -0.0000 -0.2488 +vn 0.6849 -0.6849 -0.2488 +vn -0.6831 -0.6831 0.2586 +vn -0.0000 -0.9660 0.2586 +vn -0.9660 -0.0000 0.2586 +vn -0.6831 0.6831 0.2586 +vn -0.0000 0.9660 0.2586 +vn 0.6831 0.6831 0.2586 +vn 0.9660 -0.0000 0.2586 +vn 0.6831 -0.6831 0.2586 +vn -0.0000 -0.9856 0.1689 +vn 0.1560 -0.8391 0.5211 +vn 0.1297 -0.9916 -0.0000 +vn 0.8391 -0.1560 0.5211 +vn 0.9856 -0.0000 0.1689 +vn 0.9916 -0.1297 -0.0000 +vn 0.8391 0.1560 0.5211 +vn 0.9916 0.1297 -0.0000 +vn 0.1560 0.8391 0.5211 +vn -0.0000 0.9856 0.1689 +vn 0.1297 0.9916 -0.0000 +vn -0.1560 0.8391 0.5211 +vn -0.1297 0.9916 -0.0000 +vn -0.8391 0.1560 0.5211 +vn -0.9856 -0.0000 0.1689 +vn -0.9916 0.1297 -0.0000 +vn -0.8391 -0.1560 0.5211 +vn -0.9916 -0.1297 -0.0000 +vn -0.1560 -0.8391 0.5211 +vn -0.1297 -0.9916 -0.0000 +vn -0.0000 -0.9856 -0.1689 +vn 0.1560 -0.8391 -0.5211 +vn 0.1031 -0.7878 -0.6073 +vn 0.8391 -0.1560 -0.5211 +vn 0.9856 -0.0000 -0.1689 +vn 0.7878 -0.1031 -0.6073 +vn 0.8391 0.1560 -0.5211 +vn 0.7878 0.1031 -0.6073 +vn 0.1560 0.8391 -0.5211 +vn -0.0000 0.9856 -0.1689 +vn 0.1031 0.7878 -0.6073 +vn -0.1560 0.8391 -0.5211 +vn -0.1031 0.7878 -0.6073 +vn -0.8391 0.1560 -0.5211 +vn -0.9856 -0.0000 -0.1689 +vn -0.7878 0.1031 -0.6073 +vn -0.8391 -0.1560 -0.5211 +vn -0.7878 -0.1031 -0.6073 +vn -0.1560 -0.8391 -0.5211 +vn -0.1031 -0.7878 -0.6073 +vn -0.0543 -0.9985 -0.0000 +vn 0.9854 -0.1700 -0.0000 +vn 0.9916 0.1295 -0.0000 +vn 0.6883 0.7255 -0.0000 +vn -0.6883 0.7255 -0.0000 +vn -0.9916 0.1295 -0.0000 +vn -0.9854 -0.1700 -0.0000 +vn 0.0543 -0.9985 -0.0000 +vn -0.0000 -0.3856 0.9227 +vn 0.3323 -0.3323 0.8827 +vn 0.2727 -0.2727 0.9227 +vn 0.4699 -0.0000 0.8827 +vn 0.3856 -0.0000 0.9227 +vn 0.3323 0.3323 0.8827 +vn 0.2727 0.2727 0.9227 +vn -0.0000 0.4699 0.8827 +vn -0.0000 0.3856 0.9227 +vn -0.3323 0.3323 0.8827 +vn -0.2727 0.2727 0.9227 +vn -0.3856 -0.0000 0.9227 +vn -0.4699 -0.0000 0.8827 +vn -0.3323 -0.3323 0.8827 +vn -0.2727 -0.2727 0.9227 +vn -0.0000 -0.4699 0.8827 +vn -0.0000 -0.1839 0.9829 +vn 0.1300 -0.1300 0.9829 +vn 0.1839 -0.0000 0.9829 +vn 0.1300 0.1300 0.9829 +vn -0.0000 0.1839 0.9829 +vn -0.1300 0.1300 0.9829 +vn -0.1839 -0.0000 0.9829 +vn -0.1300 -0.1300 0.9829 +vn -0.0000 -0.0512 0.9987 +vn 0.0512 -0.0000 0.9987 +vn -0.0000 0.0512 0.9987 +vn -0.0512 -0.0000 0.9987 +vn -0.0362 -0.0362 0.9987 +vn 0.1031 -0.7878 0.6073 +vn 0.7878 -0.1031 0.6073 +vn 0.7878 0.1031 0.6073 +vn 0.1031 0.7878 0.6073 +vn -0.1031 0.7878 0.6073 +vn -0.7878 0.1031 0.6073 +vn -0.7878 -0.1031 0.6073 +vn -0.1031 -0.7878 0.6073 +vt 0.862112 0.382430 +vt 0.862112 0.343887 +vt 0.876470 0.342361 +vt 0.781491 0.334765 +vt 0.831474 0.326685 +vt 0.831474 0.334765 +vt 0.831474 0.343744 +vt 0.781491 0.343744 +vt 0.839614 0.332388 +vt 0.839614 0.293845 +vt 0.853972 0.292318 +vt 0.831474 0.420254 +vt 0.781491 0.412174 +vt 0.831474 0.412174 +vt 0.781491 0.288125 +vt 0.781491 0.326685 +vt 0.831474 0.394267 +vt 0.781491 0.400915 +vt 0.781491 0.394268 +vt 0.781491 0.352672 +vt 0.831474 0.346025 +vt 0.831474 0.352672 +vt 0.781491 0.403195 +vt 0.831474 0.403195 +vt 0.781491 0.346025 +vt 0.831474 0.400915 +vt 0.862112 0.332388 +vt 0.862112 0.293845 +vt 0.876470 0.292318 +vt 0.731449 0.326685 +vt 0.781432 0.334765 +vt 0.731449 0.334765 +vt 0.781432 0.343744 +vt 0.731449 0.343744 +vt 0.839614 0.382430 +vt 0.839614 0.343887 +vt 0.853972 0.342361 +vt 0.781432 0.420254 +vt 0.731449 0.412174 +vt 0.781432 0.412174 +vt 0.731449 0.288125 +vt 0.781432 0.326685 +vt 0.781432 0.394268 +vt 0.731449 0.400915 +vt 0.731449 0.394268 +vt 0.731449 0.352672 +vt 0.781432 0.346025 +vt 0.781432 0.352672 +vt 0.731449 0.403195 +vt 0.781432 0.403195 +vt 0.731449 0.346025 +vt 0.781432 0.400915 +vt 0.876470 0.383956 +vt 0.871313 0.388150 +vt 0.869033 0.388150 +vt 0.854032 0.382439 +vt 0.854032 0.343878 +vt 0.869033 0.338167 +vt 0.871313 0.338167 +vt 0.853972 0.333914 +vt 0.848815 0.338108 +vt 0.846534 0.338108 +vt 0.831533 0.332397 +vt 0.831533 0.293836 +vt 0.846534 0.288125 +vt 0.848815 0.288125 +vt 0.781491 0.420254 +vt 0.831474 0.288125 +vt 0.876470 0.333914 +vt 0.871313 0.338108 +vt 0.869033 0.338108 +vt 0.854032 0.332397 +vt 0.854032 0.293836 +vt 0.869033 0.288125 +vt 0.871313 0.288125 +vt 0.853972 0.383956 +vt 0.848815 0.388150 +vt 0.846534 0.388150 +vt 0.831533 0.382439 +vt 0.831533 0.343878 +vt 0.846534 0.338167 +vt 0.848815 0.338167 +vt 0.731449 0.420254 +vt 0.781432 0.288125 +vt 0.064605 0.000179 +vt 0.032391 0.940141 +vt 0.032391 0.000179 +vt 0.242253 0.940141 +vt 0.274466 0.000179 +vt 0.274467 0.940141 +vt 0.484329 0.940141 +vt 0.306680 0.940141 +vt 0.425112 0.651144 +vt 0.306680 0.000179 +vt 0.534226 0.414338 +vt 0.534226 0.236360 +vt 0.583414 0.236360 +vt 0.546318 0.592663 +vt 0.546318 0.568069 +vt 0.512464 0.568069 +vt 0.000178 0.940141 +vt 0.000178 0.000179 +vt 0.064605 0.940141 +vt 0.242253 0.000179 +vt 0.487811 0.005697 +vt 0.519381 0.464564 +vt 0.487811 0.554873 +vt 0.073028 1.000143 +vt 0.097622 0.940817 +vt 0.097622 1.000143 +vt 0.484684 0.568103 +vt 0.531567 0.515434 +vt 0.512383 0.568103 +vt 0.290390 1.000143 +vt 0.256536 0.940817 +vt 0.290390 0.940817 +vt 0.583463 0.236360 +vt 0.558869 0.355012 +vt 0.558869 0.295686 +vt 0.200482 1.000143 +vt 0.172783 0.940817 +vt 0.200482 0.940817 +vt 0.256536 1.000143 +vt 0.172783 1.000143 +vt 0.011475 0.940817 +vt 0.011475 1.000143 +vt 0.398353 0.604156 +vt 0.398156 0.603821 +vt 0.398353 0.604149 +vt 0.533461 0.664397 +vt 0.495970 0.605071 +vt 0.533461 0.605071 +vt 0.519381 0.005697 +vt 0.425288 0.548168 +vt 0.365961 0.661778 +vt 0.365961 0.548168 +vt 0.425288 0.003239 +vt 0.365896 0.651144 +vt 0.365896 0.000179 +vt 0.425112 0.000178 +vt 0.484329 0.000178 +vt 0.558820 0.215462 +vt 0.583414 0.414338 +vt 0.558820 0.435236 +vt 0.531648 0.515400 +vt 0.484765 0.568069 +vt 0.510539 0.497465 +vt 0.484765 0.592663 +vt 0.073028 0.940817 +vt 0.546237 0.568103 +vt 0.546237 0.592696 +vt 0.484684 0.592696 +vt 0.510458 0.497499 +vt 0.534276 0.236360 +vt 0.558869 0.215462 +vt 0.583463 0.414338 +vt 0.558869 0.435236 +vt 0.534276 0.414338 +vt 0.534276 0.355012 +vt 0.534276 0.295686 +vt 0.397971 0.604156 +vt 0.495970 0.664397 +vt 0.425288 0.661778 +vt 0.365961 0.003239 +vt 0.298927 0.396205 +vt 0.426834 0.332251 +vt 0.426834 0.396205 +vt 0.298927 0.332251 +vt 0.426834 0.268298 +vt 0.298927 0.268297 +vt 0.426834 0.204344 +vt 0.298927 0.588067 +vt 0.426834 0.524113 +vt 0.426834 0.588067 +vt 0.482312 0.332251 +vt 0.426926 0.236321 +vt 0.537698 0.236321 +vt 0.298927 0.524113 +vt 0.426834 0.460159 +vt 0.298927 0.460159 +vt 0.537698 0.364320 +vt 0.482312 0.460251 +vt 0.426926 0.364320 +vt 0.298927 0.204344 +vt 0.537698 0.300274 +vt 0.426926 0.300274 +vt 0.482312 0.204344 +vt 0.482312 0.332343 +vt 0.537698 0.428274 +vt 0.426926 0.428274 +vt 0.625763 0.415571 +vt 0.819774 0.344939 +vt 0.820219 0.412768 +vt 0.625356 0.276291 +vt 0.819329 0.277211 +vt 0.818884 0.209376 +vt 0.625153 0.206823 +vt 0.818436 0.141164 +vt 0.624951 0.137496 +vt 0.817982 0.071918 +vt 0.624748 0.068299 +vt 0.817507 -0.000475 +vt 0.739260 0.846264 +vt 0.780443 0.945689 +vt 0.681018 0.986873 +vt 0.626172 0.555444 +vt 0.820667 0.481090 +vt 0.821128 0.551376 +vt 0.696930 0.948356 +vt 0.678415 0.903416 +vt 0.723357 0.884906 +vt 0.876666 0.003400 +vt 0.816718 0.072080 +vt 0.816304 0.006550 +vt 0.876085 0.483878 +vt 0.819483 0.550860 +vt 0.819079 0.483115 +vt 0.876168 0.415340 +vt 0.818684 0.414464 +vt 0.876251 0.346487 +vt 0.818292 0.346212 +vt 0.876334 0.277480 +vt 0.817901 0.278056 +vt 0.876418 0.208392 +vt 0.817509 0.209851 +vt 0.876502 0.139291 +vt 0.817116 0.141387 +vt 0.876585 0.070439 +vt 0.876585 0.549564 +vt 0.900604 0.482520 +vt 0.900604 0.549669 +vt 0.876841 0.068823 +vt 0.900604 0.001360 +vt 0.900604 0.069103 +vt 0.876804 0.137986 +vt 0.900604 0.137993 +vt 0.876767 0.207313 +vt 0.900604 0.207190 +vt 0.876730 0.276558 +vt 0.900604 0.276413 +vt 0.876693 0.345668 +vt 0.900604 0.345495 +vt 0.876657 0.414568 +vt 0.900604 0.414254 +vt 0.876620 0.483158 +vt 0.876877 0.001414 +vt 0.626103 0.208309 +vt 0.626206 0.277009 +vt 0.626310 0.345842 +vt 0.626414 0.414767 +vt 0.626518 0.483792 +vt 0.626623 0.553016 +vt 0.625896 0.071491 +vt 0.814153 0.731675 +vt 0.754704 0.732862 +vt 0.807643 0.713695 +vt 0.837372 0.482857 +vt 0.629071 0.417250 +vt 0.837372 0.417250 +vt 0.695254 0.731675 +vt 0.701764 0.713695 +vt 0.837372 0.351644 +vt 0.648824 0.694528 +vt 0.629071 0.351644 +vt 0.837372 0.286037 +vt 0.860612 0.695197 +vt 0.814182 0.732345 +vt 0.807672 0.714365 +vt 0.629071 0.286037 +vt 0.837372 0.220430 +vt 0.754732 0.733532 +vt 0.629071 0.220430 +vt 0.837372 0.154823 +vt 0.695283 0.732345 +vt 0.701793 0.714365 +vt 0.629071 0.154823 +vt 0.837372 0.089217 +vt 0.648853 0.695197 +vt 0.629071 0.089217 +vt 0.837372 0.023610 +vt 0.860583 0.694528 +vt 0.629071 0.548464 +vt 0.837372 0.548464 +vt 0.636324 0.548220 +vt 0.705538 0.491917 +vt 0.705538 0.548220 +vt 0.705538 0.154102 +vt 0.636324 0.097799 +vt 0.705538 0.097799 +vt 0.636324 0.210405 +vt 0.705538 0.210405 +vt 0.636324 0.266707 +vt 0.705538 0.266707 +vt 0.636324 0.323010 +vt 0.705538 0.323010 +vt 0.636324 0.379312 +vt 0.705538 0.379312 +vt 0.636324 0.435615 +vt 0.705538 0.435615 +vt 0.636324 0.491917 +vt 0.695333 0.731288 +vt 0.754783 0.732474 +vt 0.754783 0.759036 +vt 0.814233 0.731288 +vt 0.860662 0.694140 +vt 0.877667 0.714545 +vt 0.649050 0.695197 +vt 0.695480 0.732345 +vt 0.632046 0.715602 +vt 0.754930 0.733532 +vt 0.754930 0.760094 +vt 0.814379 0.732345 +vt 0.860809 0.695197 +vt 0.877813 0.715602 +vt 0.648904 0.694140 +vt 0.631899 0.714545 +vt 0.900124 0.071811 +vt 0.902327 0.912035 +vt 0.960283 0.899046 +vt 0.902327 0.922061 +vt 0.900124 0.140016 +vt 0.901890 0.765040 +vt 0.837572 0.744650 +vt 0.901890 0.748146 +vt 0.900124 0.208571 +vt 0.966209 0.744650 +vt 0.953907 0.786586 +vt 0.900124 0.277204 +vt 0.902327 0.911782 +vt 0.844371 0.898793 +vt 0.850310 0.890236 +vt 0.900124 0.345738 +vt 0.975890 0.839400 +vt 0.966645 0.745448 +vt 0.984289 0.847721 +vt 0.900124 0.413996 +vt 0.844371 0.899046 +vt 0.850310 0.890489 +vt 0.900124 0.481829 +vt 0.876005 0.550176 +vt 0.828328 0.838603 +vt 0.849874 0.786586 +vt 0.900124 0.004636 +vt 0.960283 0.898792 +vt 0.902327 0.921808 +vt 0.711854 0.496239 +vt 0.631181 0.439936 +vt 0.711854 0.439936 +vt 0.954344 0.891417 +vt 0.960283 0.899974 +vt 0.711854 0.383634 +vt 0.820365 0.846792 +vt 0.828764 0.838472 +vt 0.631181 0.383634 +vt 0.711854 0.327331 +vt 0.849874 0.890620 +vt 0.819929 0.846923 +vt 0.631181 0.327331 +vt 0.711854 0.271028 +vt 0.954344 0.890236 +vt 0.984289 0.846539 +vt 0.631181 0.271028 +vt 0.711854 0.214726 +vt 0.902327 0.912963 +vt 0.902327 0.922989 +vt 0.631181 0.214726 +vt 0.711854 0.158423 +vt 0.838009 0.744520 +vt 0.850310 0.786455 +vt 0.631181 0.158423 +vt 0.711854 0.102121 +vt 0.901891 0.912166 +vt 0.843935 0.899176 +vt 0.631181 0.552542 +vt 0.711854 0.552541 +vt 0.975890 0.838219 +vt 0.966645 0.744267 +vt 0.397199 0.874901 +vt 0.482061 0.810488 +vt 0.482061 0.874901 +vt 0.397199 0.810488 +vt 0.482061 0.706705 +vt 0.397199 0.706705 +vt 0.482061 0.649202 +vt 0.397199 0.649202 +vt 0.482061 0.586843 +vt 0.397199 0.586843 +vt 0.482061 0.524485 +vt 0.397199 0.524485 +vt 0.482061 0.466981 +vt 0.397199 0.466981 +vt 0.482061 0.363198 +vt 0.397199 0.939314 +vt 0.482061 0.939314 +vt 0.396382 0.874901 +vt 0.311267 0.810488 +vt 0.396382 0.810488 +vt 0.396382 0.706705 +vt 0.311267 0.706705 +vt 0.396382 0.649202 +vt 0.311267 0.649202 +vt 0.396382 0.586843 +vt 0.311267 0.586843 +vt 0.396382 0.524485 +vt 0.311267 0.524485 +vt 0.396382 0.466981 +vt 0.311267 0.363198 +vt 0.396382 0.363198 +vt 0.311267 0.939314 +vt 0.396382 0.939314 +vt 0.902327 0.765837 +vt 0.838009 0.745448 +vt 0.902327 0.748944 +vt 0.954344 0.787383 +vt 0.820365 0.846539 +vt 0.828764 0.838219 +vt 0.975453 0.838603 +vt 0.983852 0.846923 +vt 0.954344 0.890489 +vt 0.984289 0.846793 +vt 0.828764 0.839400 +vt 0.850310 0.787383 +vt 0.838009 0.744267 +vt 0.850310 0.786202 +vt 0.953907 0.890619 +vt 0.959846 0.899176 +vt 0.975890 0.838472 +vt 0.966645 0.744520 +vt 0.850310 0.891417 +vt 0.820365 0.847721 +vt 0.902327 0.764656 +vt 0.954344 0.786202 +vt 0.902327 0.747763 +vt 0.901891 0.922191 +vt 0.902327 0.764909 +vt 0.902327 0.748016 +vt 0.954344 0.786455 +vt 0.844371 0.899974 +vt 0.640899 0.140025 +vt 0.663174 0.198878 +vt 0.640899 0.198878 +vt 0.640899 0.081173 +vt 0.663175 0.140025 +vt 0.640899 0.493140 +vt 0.663174 0.551992 +vt 0.640899 0.551992 +vt 0.640899 0.434287 +vt 0.663174 0.493140 +vt 0.736235 0.979788 +vt 0.680093 0.989178 +vt 0.683934 0.979737 +vt 0.637595 0.946681 +vt 0.646986 0.942722 +vt 0.637595 0.886581 +vt 0.647035 0.890422 +vt 0.680092 0.844083 +vt 0.684051 0.853475 +vt 0.740193 0.844085 +vt 0.736352 0.853526 +vt 0.773300 0.890541 +vt 0.782692 0.886581 +vt 0.782692 0.946682 +vt 0.773251 0.942841 +vt 0.740194 0.989180 +vt 0.731842 0.969217 +vt 0.688303 0.969155 +vt 0.657557 0.938328 +vt 0.657617 0.894790 +vt 0.688445 0.864046 +vt 0.731984 0.864107 +vt 0.762729 0.894934 +vt 0.762669 0.938473 +vt 0.723236 0.948412 +vt 0.678362 0.929721 +vt 0.697051 0.884851 +vt 0.741925 0.903542 +vt 0.741872 0.929847 +vt 0.799881 0.604423 +vt 0.785094 0.666531 +vt 0.777359 0.658796 +vt 0.722987 0.692257 +vt 0.722987 0.681318 +vt 0.660879 0.666531 +vt 0.668614 0.658796 +vt 0.635153 0.604424 +vt 0.646092 0.604424 +vt 0.799881 0.604346 +vt 0.785094 0.666454 +vt 0.777359 0.658718 +vt 0.722987 0.681240 +vt 0.722987 0.692179 +vt 0.660879 0.666454 +vt 0.668614 0.658718 +vt 0.646092 0.604346 +vt 0.635153 0.604346 +vt 0.663174 0.257730 +vt 0.640899 0.257730 +vt 0.663174 0.316582 +vt 0.640899 0.316582 +vt 0.663174 0.375435 +vt 0.640899 0.375435 +vt 0.663174 0.434287 +vt 0.625999 0.139796 +vt 0.642973 0.084114 +vt 0.662059 0.142357 +vt 0.642973 0.142357 +vt 0.662059 0.200599 +vt 0.642973 0.200599 +vt 0.662059 0.258841 +vt 0.642973 0.258841 +vt 0.662059 0.317083 +vt 0.642973 0.317083 +vt 0.723487 0.680169 +vt 0.660957 0.666602 +vt 0.669679 0.657881 +vt 0.777296 0.657881 +vt 0.723487 0.692503 +vt 0.799585 0.604072 +vt 0.786018 0.666602 +vt 0.669775 0.658077 +vt 0.635153 0.604268 +vt 0.647487 0.604268 +vt 0.723584 0.680365 +vt 0.661054 0.666798 +vt 0.777393 0.658077 +vt 0.723584 0.692699 +vt 0.799681 0.604268 +vt 0.786114 0.666798 +vt 0.635056 0.604072 +vt 0.647390 0.604072 +vt 0.642973 0.491810 +vt 0.662059 0.550052 +vt 0.642973 0.550052 +vt 0.642973 0.433568 +vt 0.662059 0.491810 +vt 0.642973 0.375326 +vt 0.662059 0.433568 +vt 0.662059 0.375326 +vt 0.625967 0.485397 +vt 0.625560 0.345878 +vt 0.624550 0.000408 +vt 0.639834 0.945689 +vt 0.639834 0.887447 +vt 0.681018 0.846264 +vt 0.780443 0.887447 +vt 0.739260 0.986873 +vt 0.625795 0.004394 +vt 0.754704 0.759424 +vt 0.629071 0.482857 +vt 0.631819 0.714933 +vt 0.877616 0.715602 +vt 0.754732 0.760094 +vt 0.631849 0.715602 +vt 0.629071 0.023610 +vt 0.877587 0.714933 +vt 0.636324 0.154102 +vt 0.701844 0.713307 +vt 0.807723 0.713307 +vt 0.701990 0.714365 +vt 0.807869 0.714365 +vt 0.900124 0.549107 +vt 0.631181 0.496239 +vt 0.631181 0.102121 +vt 0.397199 0.363198 +vt 0.311267 0.874901 +vt 0.311267 0.466981 +vt 0.663175 0.081173 +vt 0.810820 0.604423 +vt 0.810820 0.604346 +vt 0.662059 0.084114 +vt 0.811918 0.604072 +vt 0.812015 0.604268 +s 0 +f 675/875/355 676/876/355 677/877/355 +f 678/878/356 679/879/356 675/880/356 +f 678/878/357 680/881/357 681/882/357 +f 682/883/358 678/884/358 683/885/358 +f 684/886/359 682/887/359 676/888/359 +f 685/889/360 679/879/360 686/890/360 +f 677/891/361 687/892/361 688/893/361 +f 683/894/362 689/895/362 690/896/362 +f 683/894/363 677/891/363 688/893/363 +f 676/888/364 691/897/364 692/898/364 +f 681/882/365 689/895/365 693/899/365 +f 692/898/366 687/892/366 694/900/366 +f 695/901/355 696/902/355 697/903/355 +f 698/904/356 695/905/356 699/906/356 +f 699/906/357 700/907/357 701/908/357 +f 702/909/358 699/910/358 703/911/358 +f 704/912/359 702/913/359 696/914/359 +f 705/915/360 706/916/360 698/904/360 +f 697/917/361 707/918/361 708/919/361 +f 703/920/362 709/921/362 710/922/362 +f 703/920/363 697/917/363 708/919/363 +f 696/914/364 711/923/364 712/924/364 +f 701/908/365 709/921/365 713/925/365 +f 712/924/366 707/918/366 714/926/366 +f 677/877/355 690/927/355 675/875/355 +f 690/927/355 689/928/355 680/929/355 +f 675/875/355 690/927/355 680/929/355 +f 675/875/355 679/930/355 684/931/355 +f 676/876/355 692/932/355 677/877/355 +f 692/932/355 694/933/355 677/877/355 +f 675/875/355 684/931/355 676/876/355 +f 678/878/356 686/890/356 679/879/356 +f 678/878/357 675/880/357 680/881/357 +f 683/885/358 688/934/358 682/883/358 +f 688/934/358 687/935/358 691/936/358 +f 682/883/358 688/934/358 691/936/358 +f 682/883/358 685/937/358 686/938/358 +f 678/884/358 681/939/358 683/885/358 +f 681/939/358 693/940/358 683/885/358 +f 682/883/358 686/938/358 678/884/358 +f 684/886/359 685/941/359 682/887/359 +f 685/889/360 684/942/360 679/879/360 +f 677/891/361 694/900/361 687/892/361 +f 683/894/362 693/899/362 689/895/362 +f 683/894/363 690/896/363 677/891/363 +f 676/888/364 682/887/364 691/897/364 +f 681/882/365 680/881/365 689/895/365 +f 692/898/366 691/897/366 687/892/366 +f 697/903/355 710/943/355 695/901/355 +f 710/943/355 709/944/355 700/945/355 +f 695/901/355 710/943/355 700/945/355 +f 695/901/355 706/946/355 704/947/355 +f 696/902/355 712/948/355 697/903/355 +f 712/948/355 714/949/355 697/903/355 +f 695/901/355 704/947/355 696/902/355 +f 698/904/356 706/916/356 695/905/356 +f 699/906/357 695/905/357 700/907/357 +f 703/911/358 708/950/358 702/909/358 +f 708/950/358 707/951/358 711/952/358 +f 702/909/358 708/950/358 711/952/358 +f 702/909/358 705/953/358 698/954/358 +f 699/910/358 701/955/358 703/911/358 +f 701/955/358 713/956/358 703/911/358 +f 702/909/358 698/954/358 699/910/358 +f 704/912/359 705/957/359 702/913/359 +f 705/915/360 704/958/360 706/916/360 +f 697/917/361 714/926/361 707/918/361 +f 703/920/362 713/925/362 709/921/362 +f 703/920/363 710/922/363 697/917/363 +f 696/914/364 702/913/364 711/923/364 +f 701/908/365 700/907/365 709/921/365 +f 712/924/366 711/923/366 707/918/366 +f 715/959/367 716/960/367 717/961/367 +f 718/962/368 719/963/368 720/964/368 +f 721/965/363 722/966/363 723/967/363 +f 720/964/369 724/968/369 722/966/369 +f 722/969/358 721/970/358 725/971/358 +f 726/972/366 727/973/366 728/974/366 +f 717/961/370 721/975/370 729/976/370 +f 725/977/360 730/978/360 718/962/360 +f 731/979/365 732/980/365 733/981/365 +f 734/982/355 735/983/355 736/984/355 +f 736/985/365 737/986/365 738/987/365 +f 731/988/363 728/989/363 727/990/363 +f 730/991/355 726/992/355 739/993/355 +f 737/994/371 740/995/371 741/996/371 +f 738/997/372 741/996/372 728/989/372 +f 735/983/373 742/998/373 736/984/373 +f 726/999/360 734/982/360 739/1000/360 +f 723/1001/355 733/1002/355 743/1003/355 +f 727/1004/355 744/1005/355 731/1006/355 +f 745/980/366 746/1007/366 727/979/366 +f 745/1008/374 733/1009/374 732/1010/374 +f 732/1010/363 746/1011/363 745/1008/363 +f 715/959/367 725/977/367 716/960/367 +f 718/962/368 730/978/368 719/963/368 +f 722/966/363 724/968/363 747/1012/363 +f 724/968/363 731/1013/363 747/1012/363 +f 727/1014/363 729/1015/363 723/967/363 +f 729/1015/363 721/965/363 723/967/363 +f 722/966/363 747/1012/363 723/967/363 +f 720/964/369 719/963/369 724/968/369 +f 716/1016/358 725/971/358 721/970/358 +f 725/971/358 718/1017/358 722/969/358 +f 718/1017/358 720/1018/358 722/969/358 +f 728/974/366 741/1019/366 735/1020/366 +f 741/1019/366 740/1021/366 735/1020/366 +f 735/1020/366 748/1022/366 728/974/366 +f 748/1022/366 726/972/366 728/974/366 +f 717/961/370 716/960/370 721/975/370 +f 725/977/360 715/959/360 730/978/360 +f 733/981/375 747/981/375 731/979/375 +f 731/979/365 744/1007/365 732/980/365 +f 734/982/355 748/1023/355 735/983/355 +f 738/987/365 731/1024/365 739/1025/365 +f 739/1025/365 734/1026/365 738/987/365 +f 734/1026/365 736/985/365 738/987/365 +f 736/985/365 742/1027/365 737/986/365 +f 731/988/363 738/997/363 728/989/363 +f 724/1028/355 719/1029/355 730/991/355 +f 730/991/355 715/1030/355 726/992/355 +f 715/1030/355 717/1031/355 729/1032/355 +f 726/992/355 715/1030/355 729/1032/355 +f 729/1032/355 727/1033/355 726/992/355 +f 731/1034/355 724/1028/355 739/993/355 +f 724/1028/355 730/991/355 739/993/355 +f 737/994/371 742/998/371 740/995/371 +f 738/997/372 737/994/372 741/996/372 +f 735/983/373 740/995/373 742/998/373 +f 726/999/360 748/1023/360 734/982/360 +f 723/1001/355 747/1035/355 733/1002/355 +f 727/1004/355 746/1036/355 744/1005/355 +f 727/979/375 723/981/375 743/981/375 +f 743/981/366 745/980/366 727/979/366 +f 745/1008/374 743/1037/374 733/1009/374 +f 732/1010/363 744/1038/363 746/1011/363 +s 1 +f 451/1039/358 452/1040/376 453/1041/358 +f 454/1042/376 455/1043/377 452/1040/376 +f 456/1044/377 457/1045/355 455/1043/377 +f 458/1046/355 459/1047/378 457/1048/355 +f 451/1049/360 460/1050/360 456/1051/360 +f 460/1052/378 461/1053/379 459/1047/378 +f 462/1054/379 453/1041/358 461/1053/379 +f 452/1055/363 457/1056/363 461/1057/363 +f 451/1039/358 454/1042/376 452/1040/376 +f 454/1042/376 456/1044/377 455/1043/377 +f 456/1044/377 458/1058/355 457/1045/355 +f 458/1046/355 460/1052/378 459/1047/378 +f 456/1051/360 454/1059/360 451/1049/360 +f 451/1049/360 462/1060/360 460/1050/360 +f 460/1050/360 458/1061/360 456/1051/360 +f 460/1052/378 462/1054/379 461/1053/379 +f 462/1054/379 451/1039/358 453/1041/358 +f 461/1057/363 453/1062/363 452/1055/363 +f 452/1055/363 455/1063/363 457/1056/363 +f 457/1056/363 459/1064/363 461/1057/363 +f 463/1039/358 464/1040/380 465/1041/358 +f 466/1042/380 467/1043/381 464/1040/380 +f 468/1044/381 469/1045/355 467/1043/381 +f 470/1046/355 471/1047/382 469/1048/355 +f 463/1049/365 472/1050/365 468/1051/365 +f 472/1052/382 473/1053/383 471/1047/382 +f 474/1054/383 465/1041/358 473/1053/383 +f 464/1055/366 469/1056/366 473/1057/366 +f 463/1039/358 466/1042/380 464/1040/380 +f 466/1042/380 468/1044/381 467/1043/381 +f 468/1044/381 470/1058/355 469/1045/355 +f 470/1046/355 472/1052/382 471/1047/382 +f 468/1051/365 466/1059/365 463/1049/365 +f 463/1049/365 474/1060/365 472/1050/365 +f 472/1050/365 470/1061/365 468/1051/365 +f 472/1052/382 474/1054/383 473/1053/383 +f 474/1054/383 463/1039/358 465/1041/358 +f 473/1057/366 465/1062/366 464/1055/366 +f 464/1055/366 467/1063/366 469/1056/366 +f 469/1056/366 471/1064/366 473/1057/366 +f 475/1065/384 476/1066/365 477/1067/384 +f 476/1066/365 478/1068/385 479/1069/385 +f 478/1068/385 480/1070/360 479/1069/385 +f 481/1071/360 482/1072/386 480/1070/360 +f 483/1073/386 484/1074/366 482/1072/386 +f 485/1075/366 486/1076/387 484/1074/366 +f 487/1077/358 488/1078/358 489/1079/358 +f 490/1080/387 491/1081/363 486/1082/387 +f 492/1083/388 493/1084/389 494/1085/390 +f 495/1086/391 496/1087/392 497/1088/391 +f 498/1089/393 497/1090/391 499/1091/393 +f 500/1092/394 499/1091/393 501/1093/394 +f 502/1094/395 501/1093/394 503/1095/395 +f 504/1096/396 503/1095/395 505/1097/396 +f 506/1098/397 505/1097/396 507/1099/397 +f 508/1100/398 507/1099/397 509/1101/398 +f 510/1102/392 509/1101/398 496/1087/392 +f 511/1103/387 512/1104/363 513/1105/387 +f 514/1106/366 513/1107/387 515/1108/366 +f 516/1109/386 515/1108/366 517/1110/386 +f 518/1111/360 517/1110/386 519/1112/360 +f 520/1113/385 519/1112/360 521/1114/385 +f 522/1115/365 521/1114/385 523/1116/365 +f 524/1117/384 523/1116/365 525/1118/384 +f 526/1119/363 525/1118/384 512/1104/363 +f 486/1082/399 526/1119/400 511/1103/399 +f 484/1074/401 511/1120/399 514/1106/401 +f 482/1072/402 514/1106/401 516/1109/402 +f 480/1070/403 516/1109/402 518/1111/403 +f 520/1113/404 480/1070/403 518/1111/403 +f 522/1115/405 479/1069/404 520/1113/404 +f 524/1117/406 476/1066/405 522/1115/405 +f 491/1081/400 524/1117/406 526/1119/400 +f 527/1121/365 509/1101/384 507/1099/365 +f 528/1122/385 507/1099/365 505/1097/385 +f 529/1123/360 505/1097/385 503/1095/360 +f 530/1124/386 503/1095/360 501/1093/386 +f 531/1125/366 501/1093/386 499/1091/366 +f 532/1126/387 499/1091/366 497/1090/387 +f 533/1127/363 497/1088/387 496/1087/363 +f 534/1128/407 535/1129/408 536/1130/363 +f 534/1131/363 537/1132/409 538/1133/409 +f 535/1129/410 539/1134/411 540/1135/365 +f 537/1132/412 539/1136/365 538/1133/412 +f 539/1134/411 541/1137/413 540/1135/365 +f 542/1138/365 543/1139/414 539/1136/365 +f 541/1140/415 544/1141/416 545/1142/360 +f 546/1143/417 544/1144/360 543/1139/417 +f 544/1141/416 547/1145/418 545/1142/360 +f 548/1146/360 549/1147/419 544/1144/360 +f 547/1145/420 550/1148/421 551/1149/366 +f 552/1150/422 550/1151/366 549/1147/422 +f 550/1148/421 553/1152/423 551/1149/366 +f 554/1153/366 555/1154/424 550/1151/366 +f 553/1155/425 534/1128/407 536/1130/363 +f 556/1156/426 534/1131/363 555/1157/426 +f 553/1158/387 557/1159/363 558/1160/387 +f 559/1161/366 553/1162/387 558/1163/387 +f 547/1164/386 559/1161/366 560/1165/386 +f 545/1166/360 560/1165/386 561/1167/360 +f 541/1168/385 561/1167/360 562/1169/385 +f 540/1170/365 562/1169/385 563/1171/365 +f 535/1172/384 563/1171/365 564/1173/384 +f 536/1174/363 564/1173/384 557/1159/363 +f 565/1175/427 566/1176/428 537/1177/429 +f 566/1176/430 542/1178/431 537/1177/432 +f 542/1178/431 567/1179/433 546/1180/434 +f 567/1181/435 548/1182/436 546/1183/437 +f 548/1182/436 568/1184/438 552/1185/439 +f 568/1184/440 554/1186/441 552/1185/442 +f 554/1186/441 569/1187/443 556/1188/444 +f 569/1189/445 565/1175/427 556/1190/446 +f 570/1191/363 508/1100/384 510/1102/363 +f 519/1192/358 571/1193/358 572/1194/358 +f 573/1195/384 506/1098/365 508/1100/384 +f 570/1196/355 574/1197/355 575/1198/355 +f 576/1199/365 504/1096/385 506/1098/365 +f 570/1196/355 577/1200/355 573/1201/355 +f 578/1202/385 502/1094/360 504/1096/385 +f 579/1203/355 580/1204/355 581/1205/355 +f 582/1206/360 500/1092/386 502/1094/360 +f 559/1207/358 583/1208/358 584/1209/358 +f 585/1210/386 498/1089/366 500/1092/386 +f 519/1192/358 586/1211/358 521/1212/358 +f 587/1213/366 495/1214/387 498/1089/366 +f 587/1215/355 574/1197/355 588/1216/355 +f 588/1217/387 510/1102/363 495/1086/387 +f 579/1203/355 589/1218/355 590/1219/355 +f 591/1220/363 592/1221/384 566/1222/384 +f 560/1223/358 584/1209/358 593/1224/358 +f 592/1221/384 594/1225/365 566/1222/384 +f 521/1212/358 595/1226/358 523/1227/358 +f 596/1228/365 567/1229/385 594/1225/365 +f 585/1230/355 597/1231/355 587/1215/355 +f 598/1232/385 599/1233/360 567/1229/385 +f 598/1234/355 600/1235/355 589/1218/355 +f 579/1236/360 568/1237/386 599/1233/360 +f 561/1238/358 593/1224/358 601/1239/358 +f 581/1240/386 602/1241/366 568/1237/386 +f 523/1227/358 603/1242/358 525/1243/358 +f 604/1244/366 569/1245/387 602/1241/366 +f 582/1246/355 605/1247/355 585/1230/355 +f 606/1248/387 591/1220/363 569/1249/387 +f 596/1250/355 607/1251/355 600/1235/355 +f 608/1252/363 577/1253/447 575/1254/363 +f 609/1255/448 610/1256/449 577/1253/448 +f 611/1257/449 612/1258/450 610/1256/449 +f 613/1259/450 614/1260/360 612/1258/450 +f 601/1261/360 605/1262/451 614/1260/360 +f 593/1263/451 597/1264/452 605/1262/451 +f 584/1265/452 574/1266/453 597/1264/452 +f 583/1267/454 575/1254/363 574/1268/454 +f 615/1269/363 603/1270/447 607/1271/447 +f 603/1270/448 600/1272/449 607/1271/448 +f 595/1273/449 589/1274/450 600/1272/449 +f 586/1275/450 590/1276/360 589/1274/450 +f 572/1277/360 580/1278/451 590/1276/360 +f 571/1279/451 616/1280/452 580/1278/451 +f 616/1280/452 617/1281/453 618/1282/453 +f 617/1283/454 615/1269/363 618/1284/454 +f 557/1285/358 609/1286/358 608/1287/358 +f 557/1285/358 583/1208/358 558/1288/358 +f 581/1205/355 616/1289/355 604/1290/355 +f 576/1291/355 577/1200/355 610/1292/355 +f 517/1293/358 619/1294/358 571/1193/358 +f 563/1295/358 609/1286/358 564/1296/358 +f 604/1290/355 618/1297/355 606/1298/355 +f 578/1299/355 610/1292/355 612/1300/355 +f 515/1301/358 617/1302/358 619/1294/358 +f 562/1303/358 611/1304/358 563/1295/358 +f 620/1305/355 607/1251/355 592/1306/355 +f 620/1305/355 618/1297/355 615/1307/355 +f 582/1246/355 612/1300/355 614/1308/355 +f 512/1309/358 603/1242/358 621/1310/358 +f 512/1309/358 617/1302/358 513/1311/358 +f 561/1238/358 613/1312/358 562/1303/358 +f 622/1313/384 623/1314/365 624/1315/365 +f 625/1316/363 626/1317/384 622/1313/384 +f 627/1318/387 628/1319/363 625/1320/363 +f 629/1321/366 630/1322/387 627/1318/387 +f 631/1323/455 632/1324/456 633/1325/457 +f 633/1325/457 629/1326/458 634/1327/459 +f 634/1327/459 627/1328/460 635/1329/461 +f 635/1329/461 625/1330/462 636/1331/463 +f 636/1331/463 622/1332/464 637/1333/465 +f 638/1334/466 622/1332/464 624/1335/467 +f 638/1334/466 639/1336/468 640/1337/469 +f 640/1337/469 641/1338/470 631/1323/455 +f 642/1339/471 633/1325/457 643/1340/472 +f 643/1340/472 634/1327/459 644/1341/473 +f 644/1341/473 635/1329/461 645/1342/474 +f 645/1342/474 636/1331/463 646/1343/475 +f 646/1343/475 637/1333/465 647/1344/476 +f 648/1345/477 637/1333/465 638/1334/466 +f 648/1345/477 640/1337/469 649/1346/478 +f 642/1339/471 640/1337/469 631/1323/455 +f 650/1347/479 643/1340/472 492/1083/388 +f 651/1348/480 643/1340/472 644/1341/473 +f 651/1348/480 645/1342/474 493/1084/389 +f 652/1349/481 645/1342/474 646/1343/475 +f 652/1349/481 647/1344/476 494/1085/390 +f 494/1085/390 648/1345/477 653/1350/482 +f 653/1350/482 649/1346/478 654/1351/483 +f 650/1347/479 649/1346/478 642/1339/471 +f 655/1352/355 656/1353/355 657/1354/355 +f 657/1354/355 527/1355/355 658/1356/355 +f 658/1356/355 528/1357/355 630/1358/355 +f 630/1358/355 529/1359/355 628/1360/355 +f 628/1361/355 530/1362/355 626/1363/355 +f 623/1364/355 530/1362/355 531/1365/355 +f 623/1364/355 532/1366/355 659/1367/355 +f 655/1368/355 532/1366/355 533/1369/355 +f 624/1315/365 659/1370/385 639/1371/385 +f 639/1371/385 655/1372/360 641/1373/360 +f 641/1373/360 657/1374/386 632/1375/386 +f 632/1375/386 658/1376/366 629/1321/366 +f 656/1377/384 496/1087/363 509/1101/384 +f 660/1378/385 661/1379/365 487/1380/365 +f 487/1380/365 662/1381/384 663/1382/384 +f 663/1382/384 664/1383/363 488/1384/363 +f 488/1384/363 665/1385/387 666/1386/387 +f 667/1387/358 668/1388/358 669/1389/358 +f 670/1390/358 475/1391/358 667/1387/358 +f 665/1392/358 671/1393/358 670/1390/358 +f 664/1394/358 478/1395/358 665/1396/358 +f 662/1397/358 481/1398/358 664/1394/358 +f 661/1399/358 483/1400/358 662/1397/358 +f 672/1401/358 485/1402/358 661/1399/358 +f 669/1389/358 490/1403/358 672/1404/358 +f 673/1405/360 672/1406/385 660/1407/385 +f 674/1408/386 669/1409/360 673/1405/360 +f 489/1410/366 667/1411/386 674/1408/386 +f 666/1386/387 670/1412/366 489/1410/366 +f 668/1413/363 477/1067/384 491/1081/363 +f 475/1065/384 671/1414/365 476/1066/365 +f 476/1066/365 671/1414/365 478/1068/385 +f 478/1068/385 481/1071/360 480/1070/360 +f 481/1071/360 483/1073/386 482/1072/386 +f 483/1073/386 485/1075/366 484/1074/366 +f 485/1075/366 490/1415/387 486/1076/387 +f 489/1079/358 674/1416/358 487/1077/358 +f 674/1416/358 673/1417/358 487/1077/358 +f 673/1417/358 660/1418/358 487/1077/358 +f 487/1077/358 663/1419/358 488/1078/358 +f 488/1078/358 666/1420/358 489/1079/358 +f 490/1080/387 668/1413/363 491/1081/363 +f 654/1351/483 650/1347/479 492/1083/388 +f 492/1083/388 651/1348/480 493/1084/389 +f 493/1084/389 652/1349/481 494/1085/390 +f 494/1085/390 653/1350/482 654/1351/483 +f 654/1351/483 492/1083/388 494/1085/390 +f 495/1086/391 510/1102/392 496/1087/392 +f 498/1089/393 495/1214/391 497/1090/391 +f 500/1092/394 498/1089/393 499/1091/393 +f 502/1094/395 500/1092/394 501/1093/394 +f 504/1096/396 502/1094/395 503/1095/395 +f 506/1098/397 504/1096/396 505/1097/396 +f 508/1100/398 506/1098/397 507/1099/397 +f 510/1102/392 508/1100/398 509/1101/398 +f 511/1103/387 526/1119/363 512/1104/363 +f 514/1106/366 511/1120/387 513/1107/387 +f 516/1109/386 514/1106/366 515/1108/366 +f 518/1111/360 516/1109/386 517/1110/386 +f 520/1113/385 518/1111/360 519/1112/360 +f 522/1115/365 520/1113/385 521/1114/385 +f 524/1117/384 522/1115/365 523/1116/365 +f 526/1119/363 524/1117/384 525/1118/384 +f 486/1082/399 491/1081/400 526/1119/400 +f 484/1074/401 486/1076/399 511/1120/399 +f 482/1072/402 484/1074/401 514/1106/401 +f 480/1070/403 482/1072/402 516/1109/402 +f 520/1113/404 479/1069/404 480/1070/403 +f 522/1115/405 476/1066/405 479/1069/404 +f 524/1117/406 477/1067/406 476/1066/405 +f 491/1081/400 477/1067/406 524/1117/406 +f 527/1121/365 656/1377/384 509/1101/384 +f 528/1122/385 527/1121/365 507/1099/365 +f 529/1123/360 528/1122/385 505/1097/385 +f 530/1124/386 529/1123/360 503/1095/360 +f 531/1125/366 530/1124/386 501/1093/386 +f 532/1126/387 531/1125/366 499/1091/366 +f 533/1127/363 532/1421/387 497/1088/387 +f 534/1128/407 538/1422/484 535/1129/408 +f 534/1131/363 565/1423/363 537/1132/409 +f 535/1129/410 538/1422/485 539/1134/411 +f 537/1132/412 542/1138/365 539/1136/365 +f 539/1134/411 543/1424/486 541/1137/413 +f 542/1138/365 546/1143/414 543/1139/414 +f 541/1140/415 543/1425/487 544/1141/416 +f 546/1143/417 548/1146/360 544/1144/360 +f 544/1141/416 549/1426/488 547/1145/418 +f 548/1146/360 552/1150/419 549/1147/419 +f 547/1145/420 549/1426/489 550/1148/421 +f 552/1150/422 554/1153/366 550/1151/366 +f 550/1148/421 555/1427/490 553/1152/423 +f 554/1153/366 556/1428/424 555/1154/424 +f 553/1155/425 555/1429/491 534/1128/407 +f 556/1156/426 565/1423/363 534/1131/363 +f 553/1158/387 536/1174/363 557/1159/363 +f 559/1161/366 551/1430/366 553/1162/387 +f 547/1164/386 551/1430/366 559/1161/366 +f 545/1166/360 547/1164/386 560/1165/386 +f 541/1168/385 545/1166/360 561/1167/360 +f 540/1170/365 541/1168/385 562/1169/385 +f 535/1172/384 540/1170/365 563/1171/365 +f 536/1174/363 535/1172/384 564/1173/384 +f 565/1175/427 591/1431/363 566/1176/428 +f 566/1176/430 594/1432/365 542/1178/431 +f 542/1178/431 594/1432/365 567/1179/433 +f 567/1181/435 599/1433/360 548/1182/436 +f 548/1182/436 599/1433/360 568/1184/438 +f 568/1184/440 602/1434/366 554/1186/441 +f 554/1186/441 602/1434/366 569/1187/443 +f 569/1189/445 591/1431/363 565/1175/427 +f 570/1191/363 573/1195/384 508/1100/384 +f 519/1192/358 517/1293/358 571/1193/358 +f 573/1195/384 576/1199/365 506/1098/365 +f 570/1196/355 588/1216/355 574/1197/355 +f 576/1199/365 578/1202/385 504/1096/385 +f 570/1196/355 575/1198/355 577/1200/355 +f 578/1202/385 582/1206/360 502/1094/360 +f 579/1203/355 590/1219/355 580/1204/355 +f 582/1206/360 585/1210/386 500/1092/386 +f 559/1207/358 558/1288/358 583/1208/358 +f 585/1210/386 587/1213/366 498/1089/366 +f 519/1192/358 572/1194/358 586/1211/358 +f 587/1213/366 588/1435/387 495/1214/387 +f 587/1215/355 597/1231/355 574/1197/355 +f 588/1217/387 570/1191/363 510/1102/363 +f 579/1203/355 598/1234/355 589/1218/355 +f 591/1220/363 620/1436/363 592/1221/384 +f 560/1223/358 559/1207/358 584/1209/358 +f 592/1221/384 596/1228/365 594/1225/365 +f 521/1212/358 586/1211/358 595/1226/358 +f 596/1228/365 598/1232/385 567/1229/385 +f 585/1230/355 605/1247/355 597/1231/355 +f 598/1232/385 579/1236/360 599/1233/360 +f 598/1234/355 596/1250/355 600/1235/355 +f 579/1236/360 581/1240/386 568/1237/386 +f 561/1238/358 560/1223/358 593/1224/358 +f 581/1240/386 604/1244/366 602/1241/366 +f 523/1227/358 595/1226/358 603/1242/358 +f 604/1244/366 606/1437/387 569/1245/387 +f 582/1246/355 614/1308/355 605/1247/355 +f 606/1248/387 620/1436/363 591/1220/363 +f 596/1250/355 592/1306/355 607/1251/355 +f 608/1252/363 609/1255/447 577/1253/447 +f 609/1255/448 611/1257/449 610/1256/449 +f 611/1257/449 613/1259/450 612/1258/450 +f 613/1259/450 601/1261/360 614/1260/360 +f 601/1261/360 593/1263/451 605/1262/451 +f 593/1263/451 584/1265/452 597/1264/452 +f 584/1265/452 583/1438/453 574/1266/453 +f 583/1267/454 608/1252/363 575/1254/363 +f 615/1269/363 621/1439/363 603/1270/447 +f 603/1270/448 595/1273/449 600/1272/449 +f 595/1273/449 586/1275/450 589/1274/450 +f 586/1275/450 572/1277/360 590/1276/360 +f 572/1277/360 571/1279/451 580/1278/451 +f 571/1279/451 619/1440/452 616/1280/452 +f 616/1280/452 619/1440/452 617/1281/453 +f 617/1283/454 621/1439/363 615/1269/363 +f 557/1285/358 564/1296/358 609/1286/358 +f 557/1285/358 608/1287/358 583/1208/358 +f 581/1205/355 580/1204/355 616/1289/355 +f 576/1291/355 573/1201/355 577/1200/355 +f 517/1293/358 515/1301/358 619/1294/358 +f 563/1295/358 611/1304/358 609/1286/358 +f 604/1290/355 616/1289/355 618/1297/355 +f 578/1299/355 576/1291/355 610/1292/355 +f 515/1301/358 513/1311/358 617/1302/358 +f 562/1303/358 613/1312/358 611/1304/358 +f 620/1305/355 615/1307/355 607/1251/355 +f 620/1305/355 606/1298/355 618/1297/355 +f 582/1246/355 578/1299/355 612/1300/355 +f 512/1309/358 525/1243/358 603/1242/358 +f 512/1309/358 621/1310/358 617/1302/358 +f 561/1238/358 601/1239/358 613/1312/358 +f 622/1313/384 626/1317/384 623/1314/365 +f 625/1316/363 628/1441/363 626/1317/384 +f 627/1318/387 630/1322/387 628/1319/363 +f 629/1321/366 658/1376/366 630/1322/387 +f 631/1323/455 641/1338/470 632/1324/456 +f 633/1325/457 632/1324/456 629/1326/458 +f 634/1327/459 629/1326/458 627/1328/460 +f 635/1329/461 627/1328/460 625/1330/462 +f 636/1331/463 625/1330/462 622/1332/464 +f 638/1334/466 637/1333/465 622/1332/464 +f 638/1334/466 624/1335/467 639/1336/468 +f 640/1337/469 639/1336/468 641/1338/470 +f 642/1339/471 631/1323/455 633/1325/457 +f 643/1340/472 633/1325/457 634/1327/459 +f 644/1341/473 634/1327/459 635/1329/461 +f 645/1342/474 635/1329/461 636/1331/463 +f 646/1343/475 636/1331/463 637/1333/465 +f 648/1345/477 647/1344/476 637/1333/465 +f 648/1345/477 638/1334/466 640/1337/469 +f 642/1339/471 649/1346/478 640/1337/469 +f 650/1347/479 642/1339/471 643/1340/472 +f 651/1348/480 492/1083/388 643/1340/472 +f 651/1348/480 644/1341/473 645/1342/474 +f 652/1349/481 493/1084/389 645/1342/474 +f 652/1349/481 646/1343/475 647/1344/476 +f 494/1085/390 647/1344/476 648/1345/477 +f 653/1350/482 648/1345/477 649/1346/478 +f 650/1347/479 654/1351/483 649/1346/478 +f 655/1352/355 533/1442/355 656/1353/355 +f 657/1354/355 656/1353/355 527/1355/355 +f 658/1356/355 527/1355/355 528/1357/355 +f 630/1358/355 528/1357/355 529/1359/355 +f 628/1361/355 529/1443/355 530/1362/355 +f 623/1364/355 626/1363/355 530/1362/355 +f 623/1364/355 531/1365/355 532/1366/355 +f 655/1368/355 659/1367/355 532/1366/355 +f 624/1315/365 623/1314/365 659/1370/385 +f 639/1371/385 659/1370/385 655/1372/360 +f 641/1373/360 655/1372/360 657/1374/386 +f 632/1375/386 657/1374/386 658/1376/366 +f 656/1377/384 533/1127/363 496/1087/363 +f 660/1378/385 672/1444/385 661/1379/365 +f 487/1380/365 661/1379/365 662/1381/384 +f 663/1382/384 662/1381/384 664/1383/363 +f 488/1384/363 664/1383/363 665/1385/387 +f 667/1387/358 475/1391/358 668/1388/358 +f 670/1390/358 671/1393/358 475/1391/358 +f 665/1392/358 478/1445/358 671/1393/358 +f 664/1394/358 481/1398/358 478/1395/358 +f 662/1397/358 483/1400/358 481/1398/358 +f 661/1399/358 485/1402/358 483/1400/358 +f 672/1401/358 490/1446/358 485/1402/358 +f 669/1389/358 668/1388/358 490/1403/358 +f 673/1405/360 669/1409/360 672/1406/385 +f 674/1408/386 667/1411/386 669/1409/360 +f 489/1410/366 670/1412/366 667/1411/386 +f 666/1386/387 665/1385/387 670/1412/366 +f 668/1413/363 475/1065/384 477/1067/384 diff --git a/src/main/resources/assets/hbm/models/weapons/novac_scoped.obj b/src/main/resources/assets/hbm/models/weapons/novac_scoped.obj deleted file mode 100644 index 376e474b8..000000000 --- a/src/main/resources/assets/hbm/models/weapons/novac_scoped.obj +++ /dev/null @@ -1,3975 +0,0 @@ -# Blender v2.79 (sub 0) OBJ File: '' -# www.blender.org -o Scope -v 0.000000 1.477200 0.088723 -v 0.098039 1.333949 0.145326 -v 0.000000 1.333949 0.088723 -v 0.098039 1.477200 0.145326 -v 0.098039 1.333949 0.258532 -v 0.098039 1.477200 0.258532 -v 0.000000 1.333949 0.315135 -v 0.000000 1.477200 0.315135 -v -0.098039 1.333949 0.258532 -v -0.098039 1.477200 0.258532 -v -0.098039 1.333949 0.145326 -v -0.098039 1.477200 0.145326 -v -0.052355 1.290100 0.088723 -v -0.195606 1.192061 0.145326 -v -0.195606 1.290100 0.088723 -v -0.052355 1.192061 0.145326 -v -0.195606 1.192061 0.258532 -v -0.052355 1.192061 0.258532 -v -0.195606 1.290100 0.315135 -v -0.052355 1.290100 0.315135 -v -0.195606 1.388139 0.258532 -v -0.052355 1.388139 0.258532 -v -0.195606 1.388139 0.145326 -v -0.052355 1.388139 0.145326 -v 0.122250 1.167851 -0.880258 -v 0.172888 1.290101 -0.535252 -v 0.122250 1.167851 -0.535252 -v 0.122250 1.412351 -0.880258 -v 0.122250 1.412351 -0.535252 -v 0.000000 1.462989 -0.535252 -v 0.000000 1.462989 -0.880258 -v -0.122250 1.412351 -0.535252 -v -0.122250 1.412351 -0.880258 -v -0.172888 1.290101 -0.535252 -v -0.172888 1.290101 -0.880258 -v -0.122250 1.167851 -0.535252 -v -0.148774 1.290101 -0.842944 -v 0.000000 1.438875 -0.842944 -v 0.148774 1.290101 -0.842944 -v -0.122250 1.167851 -0.880258 -v 0.000000 1.117213 -0.535252 -v 0.047857 1.242244 1.175174 -v 0.047857 1.337958 1.175174 -v -0.047857 1.337958 1.175174 -v -0.101696 1.188405 0.795065 -v 0.000000 1.118381 0.903662 -v -0.121424 1.168677 0.903662 -v -0.143820 1.290101 0.795065 -v -0.171720 1.290101 0.903662 -v -0.101696 1.391797 0.795065 -v -0.121424 1.411525 0.903662 -v 0.000000 1.433921 0.795065 -v 0.000000 1.461821 0.903662 -v 0.101696 1.391797 0.795065 -v 0.121424 1.411525 0.903662 -v 0.143820 1.290101 0.795065 -v 0.171720 1.290101 0.903662 -v 0.101696 1.188405 0.795065 -v 0.121424 1.168677 0.903662 -v 0.000000 1.146281 0.795065 -v -0.101696 1.188405 -0.426655 -v 0.000000 1.146281 -0.380929 -v -0.101696 1.188405 -0.380929 -v -0.143820 1.290101 -0.426655 -v -0.143820 1.290101 -0.380929 -v -0.101696 1.391797 -0.426655 -v -0.101696 1.391797 -0.380929 -v 0.000000 1.433921 -0.426655 -v 0.000000 1.433921 -0.380929 -v 0.101696 1.391797 -0.426655 -v 0.101696 1.391797 -0.380929 -v 0.143820 1.290101 -0.426655 -v 0.143820 1.290101 -0.380929 -v 0.101696 1.188405 -0.426655 -v 0.101696 1.188405 -0.380929 -v 0.000000 1.146281 -0.426655 -v 0.171720 1.290101 1.200607 -v 0.121424 1.411525 1.200607 -v 0.000000 1.461821 1.200607 -v -0.121424 1.411525 1.200607 -v -0.171720 1.290101 1.200607 -v -0.121424 1.168677 1.200607 -v 0.000000 1.118381 1.200607 -v 0.000000 1.146281 0.387825 -v 0.101696 1.188405 0.425211 -v 0.000000 1.146281 0.425211 -v 0.127181 1.162920 -0.019415 -v 0.127181 1.162920 0.387825 -v 0.143820 1.290101 0.387825 -v 0.143820 1.290101 0.425211 -v 0.101696 1.391797 0.425211 -v 0.143820 1.290101 -0.019415 -v 0.127181 1.417282 0.387825 -v 0.000000 1.433921 0.387825 -v 0.000000 1.433921 0.425211 -v 0.127181 1.417282 -0.019415 -v -0.101696 1.391797 0.425211 -v 0.000000 1.433921 -0.019415 -v -0.127181 1.417282 0.387825 -v -0.143820 1.290101 0.387825 -v -0.143820 1.290101 0.425211 -v -0.127181 1.417282 -0.019415 -v -0.101696 1.188405 0.425211 -v -0.143820 1.290101 -0.019415 -v -0.127181 1.162920 0.387825 -v -0.127181 1.162920 -0.019415 -v 0.000000 1.146281 0.560528 -v -0.101696 1.188405 0.560528 -v -0.143820 1.290101 0.560528 -v -0.101696 1.391797 0.560528 -v 0.000000 1.433921 0.560528 -v 0.101696 1.391797 0.560528 -v 0.143820 1.290101 0.560528 -v 0.101696 1.188405 0.560528 -v 0.000000 1.146281 -0.019415 -v 0.101696 1.188405 -0.056801 -v 0.101696 1.391797 -0.056801 -v -0.101696 1.391797 -0.056801 -v -0.101696 1.188405 -0.056801 -v 0.000000 1.146281 0.726438 -v -0.113307 1.408526 -0.380929 -v 0.000000 1.453522 -0.380929 -v 0.101696 1.188405 0.726438 -v -0.125746 1.106419 0.726438 -v 0.000000 1.113253 0.726438 -v 0.143820 1.290101 0.726438 -v 0.125746 1.106419 0.726438 -v 0.101696 1.391797 0.726438 -v 0.000000 1.433921 -0.214523 -v -0.113307 1.408526 -0.214523 -v -0.101696 1.391797 -0.214523 -v 0.000000 1.433921 0.726438 -v -0.125746 1.106419 0.560528 -v -0.160240 1.306368 0.560528 -v -0.101696 1.391797 0.726438 -v 0.113307 1.408526 -0.380929 -v -0.143820 1.290101 0.726438 -v -0.101696 1.188405 0.726438 -v 0.113307 1.408526 -0.214523 -v 0.000000 1.453522 -0.214523 -v 0.000000 1.146281 -0.056801 -v 0.101696 1.188405 -0.214523 -v -0.113307 1.408526 0.560528 -v 0.143820 1.290101 -0.056801 -v 0.160240 1.306368 -0.380929 -v 0.143820 1.290101 -0.214523 -v -0.160240 1.306368 0.726438 -v 0.101696 1.391797 -0.214523 -v 0.000000 1.433921 -0.056801 -v 0.160240 1.306368 -0.214523 -v 0.000000 1.453522 0.560528 -v -0.143820 1.290101 -0.056801 -v 0.125746 1.106419 -0.380929 -v -0.143820 1.290101 -0.214523 -v -0.113307 1.408526 0.726438 -v -0.101696 1.188405 -0.214523 -v 0.125746 1.106419 -0.214523 -v 0.000000 1.113253 0.560528 -v 0.125746 1.106419 0.560528 -v 0.160240 1.306368 0.726438 -v 0.160240 1.306368 0.560528 -v 0.113307 1.408526 0.726438 -v 0.113307 1.408526 0.560528 -v 0.000000 1.453522 0.726438 -v 0.000000 1.113253 -0.214523 -v -0.160240 1.306368 -0.214523 -v -0.125746 1.106419 -0.380929 -v -0.125746 1.106419 -0.214523 -v -0.160240 1.306368 -0.380929 -v 0.000000 1.146281 -0.214523 -v 0.000000 1.113253 -0.380929 -v -0.106302 1.396403 1.157056 -v -0.150333 1.290101 1.200607 -v -0.150333 1.290101 1.157056 -v 0.000000 1.440434 1.157056 -v -0.106302 1.396403 1.200607 -v 0.106302 1.396403 1.157056 -v 0.000000 1.440434 1.200607 -v 0.150333 1.290101 1.157056 -v 0.106302 1.396403 1.200607 -v 0.000000 1.156786 1.166115 -v 0.106302 1.183800 1.157056 -v 0.094268 1.195833 1.166115 -v 0.133315 1.290101 1.166115 -v 0.094268 1.384369 1.166115 -v 0.000000 1.423417 1.166115 -v -0.094268 1.384369 1.166115 -v -0.133315 1.290101 1.166115 -v -0.106302 1.183800 1.157056 -v -0.094268 1.195833 1.166115 -v 0.000000 1.139768 1.157056 -v 0.000000 1.178299 1.171550 -v 0.079056 1.211045 1.171550 -v 0.111802 1.290101 1.171550 -v 0.079056 1.369157 1.171550 -v 0.000000 1.401903 1.171550 -v -0.079056 1.369157 1.171550 -v -0.111802 1.290101 1.171550 -v -0.079056 1.211045 1.171550 -v 0.000000 1.222421 1.175174 -v 0.067680 1.290101 1.175174 -v 0.000000 1.357781 1.175174 -v -0.067680 1.290101 1.175174 -v -0.047857 1.242244 1.175174 -v 0.000000 1.139768 1.200607 -v 0.121424 1.168677 1.200607 -v 0.106302 1.183800 1.200607 -v 0.150333 1.290101 1.200607 -v -0.106302 1.183800 1.200607 -v -0.105199 1.184902 -0.842944 -v -0.148774 1.290101 -0.880258 -v -0.105199 1.395301 -0.880258 -v -0.105199 1.395301 -0.842944 -v 0.000000 1.438875 -0.880258 -v 0.105199 1.395301 -0.880258 -v 0.105199 1.395301 -0.842944 -v 0.105199 1.184902 -0.880258 -v 0.000000 1.117213 -0.880258 -v 0.000000 1.141327 -0.880258 -v 0.148774 1.290101 -0.880258 -v 0.172888 1.290101 -0.880258 -v -0.105199 1.184902 -0.880258 -v 0.000000 1.141327 -0.842944 -v 0.105199 1.184902 -0.842944 -v 0.127287 1.060470 -0.215130 -v -0.127287 1.060470 -0.215130 -v -0.137370 0.965631 -0.215130 -v 0.127287 1.060470 -0.381779 -v 0.127345 1.113839 -0.215130 -v 0.165068 1.014758 -0.215130 -v 0.165068 1.014758 -0.381779 -v -0.127287 1.060470 -0.381779 -v 0.137370 0.965631 -0.381779 -v -0.127345 1.113839 -0.215130 -v -0.127345 1.113839 -0.381779 -v 0.127345 1.113839 -0.381779 -v -0.165068 0.999696 -0.381779 -v -0.137370 0.965631 -0.381779 -v 0.165068 0.999696 -0.215130 -v 0.137370 0.965631 -0.215130 -v -0.165068 1.014758 -0.381779 -v -0.165068 1.014758 -0.215130 -v 0.165068 0.999696 -0.381779 -v -0.165068 0.999696 -0.215130 -v 0.127287 1.060470 0.727120 -v -0.127287 1.060470 0.727120 -v -0.137370 0.965631 0.727120 -v 0.127345 1.113839 0.560471 -v 0.127287 1.060470 0.560471 -v 0.165068 1.014758 0.727120 -v 0.165068 1.014758 0.560471 -v -0.127287 1.060470 0.560471 -v 0.137370 0.965631 0.560471 -v -0.127345 1.113839 0.727120 -v -0.127345 1.113839 0.560471 -v 0.127345 1.113839 0.727120 -v -0.165068 0.999696 0.560471 -v -0.137370 0.965631 0.560471 -v 0.165068 0.999696 0.727120 -v 0.137370 0.965631 0.727120 -v -0.165068 1.014758 0.560471 -v -0.165068 1.014758 0.727120 -v 0.165068 0.999696 0.560471 -v -0.165068 0.999696 0.727120 -v -0.128673 1.041385 0.864105 -v -0.158890 1.005824 -0.497553 -v -0.158890 1.005824 0.864105 -v 0.128673 1.041385 -0.497553 -v 0.158890 1.005824 0.864105 -v 0.158890 1.005824 -0.497553 -v -0.128673 0.970263 -0.497553 -v 0.128673 0.970263 -0.497553 -v -0.042891 0.970263 -0.078904 -v 0.128673 0.970263 0.864105 -v -0.128673 1.041385 -0.497553 -v -0.042891 1.005824 0.864105 -v -0.042891 0.970263 0.864105 -v -0.042891 0.970263 0.913056 -v -0.128673 0.970263 0.864105 -v 0.128673 1.041385 0.864105 -v 0.042891 0.970263 0.864105 -v 0.042891 0.916053 0.076168 -v 0.042891 0.970263 -0.078904 -v 0.042891 1.005824 0.953107 -v -0.042891 0.970263 0.953107 -v 0.042891 0.970263 0.953107 -v 0.042891 0.894106 0.885317 -v 0.042891 0.970263 0.913056 -v 0.042891 1.005824 0.864105 -v -0.042891 0.868174 0.915839 -v -0.042891 0.894106 0.885317 -v 0.042891 0.868174 0.915839 -v -0.042891 0.970263 -0.078904 -v 0.042891 0.916053 0.864105 -v -0.042891 0.916053 0.076168 -v -0.042891 0.916053 0.864105 -v 0.042891 0.970263 -0.078904 -v -0.042891 1.005824 0.953107 -vt 0.862112 0.382430 -vt 0.862112 0.343887 -vt 0.876470 0.342361 -vt 0.781491 0.334765 -vt 0.831474 0.326685 -vt 0.831474 0.334765 -vt 0.831474 0.343744 -vt 0.781491 0.343744 -vt 0.839614 0.332388 -vt 0.839614 0.293845 -vt 0.853972 0.292318 -vt 0.831474 0.420254 -vt 0.781491 0.412174 -vt 0.831474 0.412174 -vt 0.781491 0.288125 -vt 0.781491 0.326685 -vt 0.831474 0.394267 -vt 0.781491 0.400915 -vt 0.781491 0.394268 -vt 0.781491 0.352672 -vt 0.831474 0.346025 -vt 0.831474 0.352672 -vt 0.781491 0.403195 -vt 0.831474 0.403195 -vt 0.781491 0.346025 -vt 0.831474 0.400915 -vt 0.862112 0.332388 -vt 0.862112 0.293845 -vt 0.876470 0.292318 -vt 0.731449 0.326685 -vt 0.781432 0.334765 -vt 0.731449 0.334765 -vt 0.781432 0.343744 -vt 0.731449 0.343744 -vt 0.839614 0.382430 -vt 0.839614 0.343887 -vt 0.853972 0.342361 -vt 0.781432 0.420254 -vt 0.731449 0.412174 -vt 0.781432 0.412174 -vt 0.731449 0.288125 -vt 0.781432 0.326685 -vt 0.781432 0.394268 -vt 0.731449 0.400915 -vt 0.731449 0.394268 -vt 0.731449 0.352672 -vt 0.781432 0.346025 -vt 0.781432 0.352672 -vt 0.731449 0.403195 -vt 0.781432 0.403195 -vt 0.731449 0.346025 -vt 0.781432 0.400915 -vt 0.876470 0.383956 -vt 0.871313 0.388150 -vt 0.869033 0.388150 -vt 0.854032 0.382439 -vt 0.854032 0.343878 -vt 0.869033 0.338167 -vt 0.871313 0.338167 -vt 0.853972 0.333914 -vt 0.848815 0.338108 -vt 0.846534 0.338108 -vt 0.831533 0.332397 -vt 0.831533 0.293836 -vt 0.846534 0.288125 -vt 0.848815 0.288125 -vt 0.781491 0.420254 -vt 0.831474 0.288125 -vt 0.876470 0.333914 -vt 0.871313 0.338108 -vt 0.869033 0.338108 -vt 0.854032 0.332397 -vt 0.854032 0.293836 -vt 0.869033 0.288125 -vt 0.871313 0.288125 -vt 0.853972 0.383956 -vt 0.848815 0.388150 -vt 0.846534 0.388150 -vt 0.831533 0.382439 -vt 0.831533 0.343878 -vt 0.846534 0.338167 -vt 0.848815 0.338167 -vt 0.731449 0.420254 -vt 0.781432 0.288125 -vt 0.064605 0.000179 -vt 0.032391 0.940141 -vt 0.032391 0.000179 -vt 0.242253 0.940141 -vt 0.274466 0.000179 -vt 0.274467 0.940141 -vt 0.484329 0.940141 -vt 0.306680 0.940141 -vt 0.425112 0.651144 -vt 0.306680 0.000179 -vt 0.534226 0.414338 -vt 0.534226 0.236360 -vt 0.583414 0.236360 -vt 0.546318 0.592663 -vt 0.546318 0.568069 -vt 0.512464 0.568069 -vt 0.000178 0.940141 -vt 0.000178 0.000179 -vt 0.064605 0.940141 -vt 0.242253 0.000179 -vt 0.487811 0.005697 -vt 0.519381 0.464564 -vt 0.487811 0.554873 -vt 0.073028 1.000143 -vt 0.097622 0.940817 -vt 0.097622 1.000143 -vt 0.484684 0.568103 -vt 0.531567 0.515434 -vt 0.512383 0.568103 -vt 0.290390 1.000143 -vt 0.256536 0.940817 -vt 0.290390 0.940817 -vt 0.583463 0.236360 -vt 0.558869 0.355012 -vt 0.558869 0.295686 -vt 0.200482 1.000143 -vt 0.172783 0.940817 -vt 0.200482 0.940817 -vt 0.256536 1.000143 -vt 0.172783 1.000143 -vt 0.011475 0.940817 -vt 0.011475 1.000143 -vt 0.398353 0.604156 -vt 0.398156 0.603821 -vt 0.398353 0.604149 -vt 0.533461 0.664397 -vt 0.495970 0.605071 -vt 0.533461 0.605071 -vt 0.519381 0.464564 -vt 0.519381 0.005697 -vt 0.487811 0.005697 -vt 0.425288 0.548168 -vt 0.365961 0.661778 -vt 0.365961 0.548168 -vt 0.425288 0.003239 -vt 0.365896 0.651144 -vt 0.365896 0.000179 -vt 0.425112 0.000178 -vt 0.484329 0.000178 -vt 0.558820 0.215462 -vt 0.583414 0.414338 -vt 0.558820 0.435236 -vt 0.531648 0.515400 -vt 0.484765 0.568069 -vt 0.510539 0.497465 -vt 0.484765 0.592663 -vt 0.487811 0.554873 -vt 0.519381 0.005697 -vt 0.073028 0.940817 -vt 0.546237 0.568103 -vt 0.546237 0.592696 -vt 0.484684 0.592696 -vt 0.510458 0.497499 -vt 0.534276 0.236360 -vt 0.558869 0.215462 -vt 0.583463 0.414338 -vt 0.558869 0.435236 -vt 0.534276 0.414338 -vt 0.534276 0.355012 -vt 0.534276 0.295686 -vt 0.397971 0.604156 -vt 0.495970 0.664397 -vt 0.487811 0.554873 -vt 0.487811 0.554873 -vt 0.425288 0.661778 -vt 0.365961 0.003239 -vt 0.298927 0.396205 -vt 0.426834 0.332251 -vt 0.426834 0.396205 -vt 0.298927 0.332251 -vt 0.426834 0.268298 -vt 0.298927 0.268297 -vt 0.426834 0.204344 -vt 0.298927 0.588067 -vt 0.426834 0.524113 -vt 0.426834 0.588067 -vt 0.482312 0.332251 -vt 0.426926 0.236321 -vt 0.537698 0.236321 -vt 0.298927 0.524113 -vt 0.426834 0.460159 -vt 0.298927 0.460159 -vt 0.537698 0.364320 -vt 0.482312 0.460251 -vt 0.426926 0.364320 -vt 0.298927 0.204344 -vt 0.537698 0.300274 -vt 0.426926 0.300274 -vt 0.482312 0.204344 -vt 0.482312 0.332343 -vt 0.537698 0.428274 -vt 0.426926 0.428274 -vt 0.298927 0.396205 -vt 0.426834 0.332251 -vt 0.426834 0.396205 -vt 0.298927 0.332251 -vt 0.426834 0.268298 -vt 0.298927 0.268297 -vt 0.426834 0.204344 -vt 0.298927 0.588067 -vt 0.426834 0.524113 -vt 0.426834 0.588067 -vt 0.482312 0.332251 -vt 0.426926 0.236321 -vt 0.537698 0.236321 -vt 0.298927 0.524113 -vt 0.426834 0.460159 -vt 0.298927 0.460159 -vt 0.537698 0.364320 -vt 0.482312 0.460251 -vt 0.426926 0.364320 -vt 0.298927 0.204344 -vt 0.537698 0.300274 -vt 0.426926 0.300274 -vt 0.482312 0.204344 -vt 0.482312 0.332343 -vt 0.537698 0.428274 -vt 0.426926 0.428274 -vt 0.625763 0.415571 -vt 0.819774 0.344939 -vt 0.820219 0.412768 -vt 0.625356 0.276291 -vt 0.819329 0.277211 -vt 0.818884 0.209376 -vt 0.625153 0.206823 -vt 0.818436 0.141164 -vt 0.624951 0.137496 -vt 0.817982 0.071918 -vt 0.624748 0.068299 -vt 0.817507 -0.000475 -vt 0.739260 0.846264 -vt 0.780443 0.945689 -vt 0.681018 0.986873 -vt 0.626172 0.555444 -vt 0.820667 0.481090 -vt 0.821128 0.551376 -vt 0.696930 0.948356 -vt 0.678415 0.903416 -vt 0.723357 0.884906 -vt 0.876666 0.003400 -vt 0.816718 0.072080 -vt 0.816304 0.006550 -vt 0.876085 0.483878 -vt 0.819483 0.550860 -vt 0.819079 0.483115 -vt 0.876168 0.415340 -vt 0.818684 0.414464 -vt 0.876251 0.346487 -vt 0.818292 0.346212 -vt 0.876334 0.277480 -vt 0.817901 0.278056 -vt 0.876418 0.208392 -vt 0.817509 0.209851 -vt 0.876502 0.139291 -vt 0.817116 0.141387 -vt 0.876585 0.070439 -vt 0.876585 0.549564 -vt 0.900604 0.482520 -vt 0.900604 0.549669 -vt 0.876841 0.068823 -vt 0.900604 0.001360 -vt 0.900604 0.069103 -vt 0.876804 0.137986 -vt 0.900604 0.137993 -vt 0.876767 0.207313 -vt 0.900604 0.207190 -vt 0.876730 0.276558 -vt 0.900604 0.276413 -vt 0.876693 0.345668 -vt 0.900604 0.345495 -vt 0.876657 0.414568 -vt 0.900604 0.414254 -vt 0.876620 0.483158 -vt 0.876877 0.001414 -vt 0.626103 0.208309 -vt 0.626206 0.277009 -vt 0.626310 0.345842 -vt 0.626414 0.414767 -vt 0.626518 0.483792 -vt 0.626623 0.553016 -vt 0.625896 0.071491 -vt 0.814153 0.731675 -vt 0.754704 0.732862 -vt 0.807643 0.713695 -vt 0.837372 0.482857 -vt 0.629071 0.417250 -vt 0.837372 0.417250 -vt 0.695254 0.731675 -vt 0.701764 0.713695 -vt 0.837372 0.351644 -vt 0.648824 0.694528 -vt 0.629071 0.351644 -vt 0.837372 0.286037 -vt 0.860612 0.695197 -vt 0.814182 0.732345 -vt 0.807672 0.714365 -vt 0.629071 0.286037 -vt 0.837372 0.220430 -vt 0.754732 0.733532 -vt 0.629071 0.220430 -vt 0.837372 0.154823 -vt 0.695283 0.732345 -vt 0.701793 0.714365 -vt 0.629071 0.154823 -vt 0.837372 0.089217 -vt 0.648853 0.695197 -vt 0.629071 0.089217 -vt 0.837372 0.023610 -vt 0.860583 0.694528 -vt 0.629071 0.548464 -vt 0.837372 0.548464 -vt 0.636324 0.548220 -vt 0.705538 0.491917 -vt 0.705538 0.548220 -vt 0.705538 0.154102 -vt 0.636324 0.097799 -vt 0.705538 0.097799 -vt 0.636324 0.210405 -vt 0.705538 0.210405 -vt 0.636324 0.266707 -vt 0.705538 0.266707 -vt 0.636324 0.323010 -vt 0.705538 0.323010 -vt 0.636324 0.379312 -vt 0.705538 0.379312 -vt 0.636324 0.435615 -vt 0.705538 0.435615 -vt 0.636324 0.491917 -vt 0.695333 0.731288 -vt 0.754783 0.732474 -vt 0.754783 0.759036 -vt 0.814233 0.731288 -vt 0.860662 0.694140 -vt 0.877667 0.714545 -vt 0.649050 0.695197 -vt 0.695480 0.732345 -vt 0.632046 0.715602 -vt 0.754930 0.733532 -vt 0.754930 0.760094 -vt 0.814379 0.732345 -vt 0.860809 0.695197 -vt 0.877813 0.715602 -vt 0.648904 0.694140 -vt 0.631899 0.714545 -vt 0.900124 0.071811 -vt 0.902327 0.912035 -vt 0.960283 0.899046 -vt 0.902327 0.922061 -vt 0.900124 0.140016 -vt 0.901890 0.765040 -vt 0.837572 0.744650 -vt 0.901890 0.748146 -vt 0.900124 0.208571 -vt 0.966209 0.744650 -vt 0.953907 0.786586 -vt 0.900124 0.277204 -vt 0.902327 0.911782 -vt 0.844371 0.898793 -vt 0.850310 0.890236 -vt 0.900124 0.345738 -vt 0.975890 0.839400 -vt 0.966645 0.745448 -vt 0.984289 0.847721 -vt 0.900124 0.413996 -vt 0.844371 0.899046 -vt 0.850310 0.890489 -vt 0.900124 0.481829 -vt 0.876005 0.550176 -vt 0.828328 0.838603 -vt 0.849874 0.786586 -vt 0.900124 0.004636 -vt 0.960283 0.898792 -vt 0.902327 0.921808 -vt 0.711854 0.496239 -vt 0.631181 0.439936 -vt 0.711854 0.439936 -vt 0.954344 0.891417 -vt 0.960283 0.899974 -vt 0.711854 0.383634 -vt 0.820365 0.846792 -vt 0.828764 0.838472 -vt 0.631181 0.383634 -vt 0.711854 0.327331 -vt 0.849874 0.890620 -vt 0.819929 0.846923 -vt 0.631181 0.327331 -vt 0.711854 0.271028 -vt 0.954344 0.890236 -vt 0.984289 0.846539 -vt 0.631181 0.271028 -vt 0.711854 0.214726 -vt 0.902327 0.912963 -vt 0.902327 0.922989 -vt 0.631181 0.214726 -vt 0.711854 0.158423 -vt 0.838009 0.744520 -vt 0.850310 0.786455 -vt 0.631181 0.158423 -vt 0.711854 0.102121 -vt 0.901891 0.912166 -vt 0.843935 0.899176 -vt 0.631181 0.552542 -vt 0.711854 0.552541 -vt 0.975890 0.838219 -vt 0.966645 0.744267 -vt 0.397199 0.874901 -vt 0.482061 0.810488 -vt 0.482061 0.874901 -vt 0.397199 0.810488 -vt 0.482061 0.706705 -vt 0.397199 0.706705 -vt 0.482061 0.649202 -vt 0.397199 0.649202 -vt 0.482061 0.586843 -vt 0.397199 0.586843 -vt 0.482061 0.524485 -vt 0.397199 0.524485 -vt 0.482061 0.466981 -vt 0.397199 0.466981 -vt 0.482061 0.363198 -vt 0.397199 0.939314 -vt 0.482061 0.939314 -vt 0.396382 0.874901 -vt 0.311267 0.810488 -vt 0.396382 0.810488 -vt 0.396382 0.706705 -vt 0.311267 0.706705 -vt 0.396382 0.649202 -vt 0.311267 0.649202 -vt 0.396382 0.586843 -vt 0.311267 0.586843 -vt 0.396382 0.524485 -vt 0.311267 0.524485 -vt 0.396382 0.466981 -vt 0.311267 0.363198 -vt 0.396382 0.363198 -vt 0.311267 0.939314 -vt 0.396382 0.939314 -vt 0.902327 0.765837 -vt 0.838009 0.745448 -vt 0.902327 0.748944 -vt 0.954344 0.787383 -vt 0.820365 0.846539 -vt 0.828764 0.838219 -vt 0.975453 0.838603 -vt 0.983852 0.846923 -vt 0.954344 0.890489 -vt 0.984289 0.846793 -vt 0.828764 0.839400 -vt 0.850310 0.787383 -vt 0.838009 0.744267 -vt 0.850310 0.786202 -vt 0.953907 0.890619 -vt 0.959846 0.899176 -vt 0.975890 0.838472 -vt 0.966645 0.744520 -vt 0.850310 0.891417 -vt 0.820365 0.847721 -vt 0.902327 0.764656 -vt 0.954344 0.786202 -vt 0.902327 0.747763 -vt 0.901891 0.922191 -vt 0.902327 0.764909 -vt 0.902327 0.748016 -vt 0.954344 0.786455 -vt 0.844371 0.899974 -vt 0.640899 0.140025 -vt 0.663174 0.198878 -vt 0.640899 0.198878 -vt 0.640899 0.081173 -vt 0.663175 0.140025 -vt 0.640899 0.493140 -vt 0.663174 0.551992 -vt 0.640899 0.551992 -vt 0.640899 0.434287 -vt 0.663174 0.493140 -vt 0.736235 0.979788 -vt 0.680093 0.989178 -vt 0.683934 0.979737 -vt 0.637595 0.946681 -vt 0.646986 0.942722 -vt 0.637595 0.886581 -vt 0.647035 0.890422 -vt 0.680092 0.844083 -vt 0.684051 0.853475 -vt 0.740193 0.844085 -vt 0.736352 0.853526 -vt 0.773300 0.890541 -vt 0.782692 0.886581 -vt 0.782692 0.946682 -vt 0.773251 0.942841 -vt 0.740194 0.989180 -vt 0.731842 0.969217 -vt 0.688303 0.969155 -vt 0.657557 0.938328 -vt 0.657617 0.894790 -vt 0.688445 0.864046 -vt 0.731984 0.864107 -vt 0.762729 0.894934 -vt 0.762669 0.938473 -vt 0.723236 0.948412 -vt 0.678362 0.929721 -vt 0.697051 0.884851 -vt 0.741925 0.903542 -vt 0.741872 0.929847 -vt 0.799881 0.604423 -vt 0.785094 0.666531 -vt 0.777359 0.658796 -vt 0.722987 0.692257 -vt 0.722987 0.681318 -vt 0.660879 0.666531 -vt 0.668614 0.658796 -vt 0.635153 0.604424 -vt 0.646092 0.604424 -vt 0.799881 0.604346 -vt 0.785094 0.666454 -vt 0.777359 0.658718 -vt 0.722987 0.681240 -vt 0.722987 0.692179 -vt 0.660879 0.666454 -vt 0.668614 0.658718 -vt 0.646092 0.604346 -vt 0.635153 0.604346 -vt 0.663174 0.257730 -vt 0.640899 0.257730 -vt 0.663174 0.316582 -vt 0.640899 0.316582 -vt 0.663174 0.375435 -vt 0.640899 0.375435 -vt 0.663174 0.434287 -vt 0.625999 0.139796 -vt 0.642973 0.084114 -vt 0.662059 0.142357 -vt 0.642973 0.142357 -vt 0.662059 0.200599 -vt 0.642973 0.200599 -vt 0.662059 0.258841 -vt 0.642973 0.258841 -vt 0.662059 0.317083 -vt 0.642973 0.317083 -vt 0.723487 0.680169 -vt 0.660957 0.666602 -vt 0.669679 0.657881 -vt 0.777296 0.657881 -vt 0.723487 0.692503 -vt 0.799585 0.604072 -vt 0.786018 0.666602 -vt 0.669775 0.658077 -vt 0.635153 0.604268 -vt 0.647487 0.604268 -vt 0.723584 0.680365 -vt 0.661054 0.666798 -vt 0.777393 0.658077 -vt 0.723584 0.692699 -vt 0.799681 0.604268 -vt 0.786114 0.666798 -vt 0.635056 0.604072 -vt 0.647390 0.604072 -vt 0.642973 0.491810 -vt 0.662059 0.550052 -vt 0.642973 0.550052 -vt 0.642973 0.433568 -vt 0.662059 0.491810 -vt 0.642973 0.375326 -vt 0.662059 0.433568 -vt 0.662059 0.375326 -vt 0.625967 0.485397 -vt 0.625560 0.345878 -vt 0.624550 0.000408 -vt 0.639834 0.945689 -vt 0.639834 0.887447 -vt 0.681018 0.846264 -vt 0.780443 0.887447 -vt 0.739260 0.986873 -vt 0.625795 0.004394 -vt 0.754704 0.759424 -vt 0.629071 0.482857 -vt 0.631819 0.714933 -vt 0.877616 0.715602 -vt 0.754732 0.760094 -vt 0.631849 0.715602 -vt 0.629071 0.023610 -vt 0.877587 0.714933 -vt 0.636324 0.154102 -vt 0.701844 0.713307 -vt 0.807723 0.713307 -vt 0.701990 0.714365 -vt 0.807869 0.714365 -vt 0.900124 0.549107 -vt 0.631181 0.496239 -vt 0.631181 0.102121 -vt 0.397199 0.363198 -vt 0.311267 0.874901 -vt 0.311267 0.466981 -vt 0.663175 0.081173 -vt 0.810820 0.604423 -vt 0.810820 0.604346 -vt 0.662059 0.084114 -vt 0.811918 0.604072 -vt 0.812015 0.604268 -vn 0.0000 0.0000 1.0000 -vn 1.0000 -0.0011 0.0000 -vn 0.7708 0.6371 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 -0.0011 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.7759 -0.6309 0.0000 -vn 0.7759 -0.6309 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.7708 0.6371 0.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.7620 0.6475 0.0000 -vn 0.7620 0.6475 0.0000 -vn 0.7620 -0.6475 -0.0000 -vn -0.7620 -0.6475 -0.0000 -vn 0.0000 -0.7621 -0.6475 -vn 0.0000 0.3422 -0.9396 -vn 0.0000 -0.3429 0.9394 -vn 0.0000 -0.9440 -0.3300 -vn 0.0000 0.0000 0.0000 -vn 0.8660 0.0000 -0.5000 -vn 0.8660 0.0000 0.5000 -vn -0.8660 0.0000 0.5000 -vn -0.8660 0.0000 -0.5000 -vn 0.0000 -0.8660 -0.5000 -vn 0.0000 -0.8660 0.5000 -vn 0.0000 0.8660 0.5000 -vn 0.0000 0.8660 -0.5000 -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 -vn 0.0362 -0.0362 0.9987 -vn 0.0362 0.0362 0.9987 -vn -0.0362 0.0362 0.9987 -vn -0.6849 -0.6849 -0.2488 -vn 0.0000 -0.9685 -0.2488 -vn -0.9685 -0.0000 -0.2488 -vn -0.6849 0.6849 -0.2488 -vn -0.0000 0.9685 -0.2488 -vn 0.6849 0.6849 -0.2488 -vn 0.9685 0.0000 -0.2488 -vn 0.6849 -0.6849 -0.2488 -vn -0.6831 -0.6831 0.2586 -vn -0.0000 -0.9660 0.2586 -vn -0.9660 0.0000 0.2586 -vn -0.6831 0.6831 0.2586 -vn 0.0000 0.9660 0.2586 -vn 0.6831 0.6831 0.2586 -vn 0.9660 0.0000 0.2586 -vn 0.6831 -0.6831 0.2586 -vn 0.0000 -0.9856 0.1689 -vn 0.1560 -0.8391 0.5211 -vn 0.1297 -0.9916 0.0000 -vn 0.8391 -0.1560 0.5211 -vn 0.9856 0.0000 0.1689 -vn 0.9916 -0.1297 0.0000 -vn 0.8391 0.1560 0.5211 -vn 0.9916 0.1297 0.0000 -vn 0.1560 0.8391 0.5211 -vn -0.0000 0.9856 0.1689 -vn 0.1297 0.9916 0.0000 -vn -0.1560 0.8391 0.5211 -vn -0.1297 0.9916 0.0000 -vn -0.8391 0.1560 0.5211 -vn -0.9856 0.0000 0.1689 -vn -0.9916 0.1297 0.0000 -vn -0.8391 -0.1560 0.5211 -vn -0.9916 -0.1297 0.0000 -vn -0.1560 -0.8391 0.5211 -vn -0.1297 -0.9916 0.0000 -vn 0.0000 -0.9856 -0.1689 -vn 0.1560 -0.8391 -0.5211 -vn 0.1031 -0.7878 -0.6073 -vn 0.8391 -0.1560 -0.5211 -vn 0.9856 0.0000 -0.1689 -vn 0.7878 -0.1031 -0.6073 -vn 0.8391 0.1560 -0.5211 -vn 0.7878 0.1031 -0.6073 -vn 0.1560 0.8391 -0.5211 -vn -0.0000 0.9856 -0.1689 -vn 0.1031 0.7878 -0.6073 -vn -0.1560 0.8391 -0.5211 -vn -0.1031 0.7878 -0.6073 -vn -0.8391 0.1560 -0.5211 -vn -0.9856 0.0000 -0.1689 -vn -0.7878 0.1031 -0.6073 -vn -0.8391 -0.1560 -0.5211 -vn -0.7878 -0.1031 -0.6073 -vn -0.1560 -0.8391 -0.5211 -vn -0.1031 -0.7878 -0.6073 -vn -0.0543 -0.9985 0.0000 -vn 0.9854 -0.1700 0.0000 -vn 0.9916 0.1295 0.0000 -vn 0.6883 0.7255 0.0000 -vn -0.6883 0.7255 0.0000 -vn -0.9916 0.1295 0.0000 -vn -0.9854 -0.1700 0.0000 -vn 0.0543 -0.9985 0.0000 -vn 0.0000 -0.3856 0.9227 -vn 0.3323 -0.3323 0.8827 -vn 0.2727 -0.2727 0.9227 -vn 0.4699 -0.0000 0.8827 -vn 0.3856 -0.0000 0.9227 -vn 0.3323 0.3323 0.8827 -vn 0.2727 0.2727 0.9227 -vn 0.0000 0.4699 0.8827 -vn 0.0000 0.3856 0.9227 -vn -0.3323 0.3323 0.8827 -vn -0.2727 0.2727 0.9227 -vn -0.3856 -0.0000 0.9227 -vn -0.4699 -0.0000 0.8827 -vn -0.3323 -0.3323 0.8827 -vn -0.2727 -0.2727 0.9227 -vn 0.0000 -0.4699 0.8827 -vn 0.0000 -0.1839 0.9829 -vn 0.1300 -0.1300 0.9829 -vn 0.1839 -0.0000 0.9829 -vn 0.1300 0.1300 0.9829 -vn -0.0000 0.1839 0.9829 -vn -0.1300 0.1300 0.9829 -vn -0.1839 -0.0000 0.9829 -vn -0.1300 -0.1300 0.9829 -vn 0.0000 -0.0512 0.9987 -vn 0.0512 -0.0000 0.9987 -vn 0.0000 0.0512 0.9987 -vn -0.0512 0.0000 0.9987 -vn -0.0362 -0.0362 0.9987 -vn 0.1031 -0.7878 0.6073 -vn 0.7878 -0.1031 0.6073 -vn 0.7878 0.1031 0.6073 -vn 0.1031 0.7878 0.6073 -vn -0.1031 0.7878 0.6073 -vn -0.7878 0.1031 0.6073 -vn -0.7878 -0.1031 0.6073 -vn -0.1031 -0.7878 0.6073 -s off -f 225/1/1 226/2/1 227/3/1 -f 228/4/2 229/5/2 225/6/2 -f 228/4/3 230/7/3 231/8/3 -f 232/9/4 228/10/4 233/11/4 -f 234/12/5 232/13/5 226/14/5 -f 235/15/6 229/5/6 236/16/6 -f 227/17/7 237/18/7 238/19/7 -f 233/20/8 239/21/8 240/22/8 -f 233/20/9 227/17/9 238/19/9 -f 226/14/10 241/23/10 242/24/10 -f 231/8/11 239/21/11 243/25/11 -f 242/24/12 237/18/12 244/26/12 -f 245/27/1 246/28/1 247/29/1 -f 248/30/2 245/31/2 249/32/2 -f 249/32/3 250/33/3 251/34/3 -f 252/35/4 249/36/4 253/37/4 -f 254/38/5 252/39/5 246/40/5 -f 255/41/6 256/42/6 248/30/6 -f 247/43/7 257/44/7 258/45/7 -f 253/46/8 259/47/8 260/48/8 -f 253/46/9 247/43/9 258/45/9 -f 246/40/10 261/49/10 262/50/10 -f 251/34/11 259/47/11 263/51/11 -f 262/50/12 257/44/12 264/52/12 -f 227/3/1 240/53/1 225/1/1 -f 240/53/1 239/54/1 230/55/1 -f 225/1/1 240/53/1 230/55/1 -f 225/1/1 229/56/1 234/57/1 -f 226/2/1 242/58/1 227/3/1 -f 242/58/1 244/59/1 227/3/1 -f 225/1/1 234/57/1 226/2/1 -f 228/4/2 236/16/2 229/5/2 -f 228/4/3 225/6/3 230/7/3 -f 233/11/4 238/60/4 232/9/4 -f 238/60/4 237/61/4 241/62/4 -f 232/9/4 238/60/4 241/62/4 -f 232/9/4 235/63/4 236/64/4 -f 228/10/4 231/65/4 233/11/4 -f 231/65/4 243/66/4 233/11/4 -f 232/9/4 236/64/4 228/10/4 -f 234/12/5 235/67/5 232/13/5 -f 235/15/6 234/68/6 229/5/6 -f 227/17/7 244/26/7 237/18/7 -f 233/20/8 243/25/8 239/21/8 -f 233/20/9 240/22/9 227/17/9 -f 226/14/10 232/13/10 241/23/10 -f 231/8/11 230/7/11 239/21/11 -f 242/24/12 241/23/12 237/18/12 -f 247/29/1 260/69/1 245/27/1 -f 260/69/1 259/70/1 250/71/1 -f 245/27/1 260/69/1 250/71/1 -f 245/27/1 256/72/1 254/73/1 -f 246/28/1 262/74/1 247/29/1 -f 262/74/1 264/75/1 247/29/1 -f 245/27/1 254/73/1 246/28/1 -f 248/30/2 256/42/2 245/31/2 -f 249/32/3 245/31/3 250/33/3 -f 253/37/4 258/76/4 252/35/4 -f 258/76/4 257/77/4 261/78/4 -f 252/35/4 258/76/4 261/78/4 -f 252/35/4 255/79/4 248/80/4 -f 249/36/4 251/81/4 253/37/4 -f 251/81/4 263/82/4 253/37/4 -f 252/35/4 248/80/4 249/36/4 -f 254/38/5 255/83/5 252/39/5 -f 255/41/6 254/84/6 256/42/6 -f 247/43/7 264/52/7 257/44/7 -f 253/46/8 263/51/8 259/47/8 -f 253/46/9 260/48/9 247/43/9 -f 246/40/10 252/39/10 261/49/10 -f 251/34/11 250/33/11 259/47/11 -f 262/50/12 261/49/12 257/44/12 -f 265/85/13 266/86/13 267/87/13 -f 268/88/14 269/89/14 270/90/14 -f 271/91/9 272/92/9 273/93/9 -f 270/90/15 274/94/15 272/92/15 -f 272/95/4 271/96/4 275/97/4 -f 276/98/12 277/99/12 278/100/12 -f 267/87/16 271/101/16 279/102/16 -f 275/103/6 280/104/6 268/88/6 -f 281/105/11 282/106/11 283/107/11 -f 284/108/1 285/109/1 286/110/1 -f 286/111/11 287/112/11 288/113/11 -f 281/114/9 278/115/9 277/116/9 -f 280/117/1 276/118/1 289/119/1 -f 287/120/17 290/121/17 291/122/17 -f 288/123/18 291/122/18 278/115/18 -f 285/109/19 292/124/19 286/110/19 -f 276/125/6 284/108/6 289/126/6 -f 273/127/1 283/128/1 293/129/1 -f 277/130/1 294/131/1 281/132/1 -f 295/133/12 296/134/12 277/135/12 -f 295/136/20 283/137/20 282/138/20 -f 282/138/9 296/139/9 295/136/9 -f 265/85/13 275/103/13 266/86/13 -f 268/88/14 280/104/14 269/89/14 -f 272/92/9 274/94/9 297/140/9 -f 274/94/9 281/141/9 297/140/9 -f 277/142/9 279/143/9 273/93/9 -f 279/143/9 271/91/9 273/93/9 -f 272/92/9 297/140/9 273/93/9 -f 270/90/15 269/89/15 274/94/15 -f 266/144/4 275/97/4 271/96/4 -f 275/97/4 268/145/4 272/95/4 -f 268/145/4 270/146/4 272/95/4 -f 278/100/12 291/147/12 285/148/12 -f 291/147/12 290/149/12 285/148/12 -f 285/148/12 298/150/12 278/100/12 -f 298/150/12 276/98/12 278/100/12 -f 267/87/16 266/86/16 271/101/16 -f 275/103/6 265/85/6 280/104/6 -f 283/107/21 297/151/21 281/105/21 -f 281/105/11 294/152/11 282/106/11 -f 284/108/1 298/153/1 285/109/1 -f 288/113/11 281/154/11 289/155/11 -f 289/155/11 284/156/11 288/113/11 -f 284/156/11 286/111/11 288/113/11 -f 286/111/11 292/157/11 287/112/11 -f 281/114/9 288/123/9 278/115/9 -f 274/158/1 269/159/1 280/117/1 -f 280/117/1 265/160/1 276/118/1 -f 265/160/1 267/161/1 279/162/1 -f 276/118/1 265/160/1 279/162/1 -f 279/162/1 277/163/1 276/118/1 -f 281/164/1 274/158/1 289/119/1 -f 274/158/1 280/117/1 289/119/1 -f 287/120/17 292/124/17 290/121/17 -f 288/123/18 287/120/18 291/122/18 -f 285/109/19 290/121/19 292/124/19 -f 276/125/6 298/153/6 284/108/6 -f 273/127/1 297/165/1 283/128/1 -f 277/130/1 296/166/1 294/131/1 -f 277/135/21 273/167/21 293/168/21 -f 293/168/12 295/133/12 277/135/12 -f 295/136/20 293/169/20 283/137/20 -f 282/138/9 294/170/9 296/139/9 -s 1 -f 1/171/4 2/172/22 3/173/4 -f 4/174/22 5/175/23 2/172/22 -f 6/176/23 7/177/1 5/175/23 -f 8/178/1 9/179/24 7/180/1 -f 1/181/6 10/182/6 6/183/6 -f 10/184/24 11/185/25 9/179/24 -f 12/186/25 3/173/4 11/185/25 -f 2/187/9 7/188/9 11/189/9 -f 1/171/4 4/174/22 2/172/22 -f 4/174/22 6/176/23 5/175/23 -f 6/176/23 8/190/1 7/177/1 -f 8/178/1 10/184/24 9/179/24 -f 6/183/6 4/191/6 1/181/6 -f 1/181/6 12/192/6 10/182/6 -f 10/182/6 8/193/6 6/183/6 -f 10/184/24 12/186/25 11/185/25 -f 12/186/25 1/171/4 3/173/4 -f 11/189/9 3/194/9 2/187/9 -f 2/187/9 5/195/9 7/188/9 -f 7/188/9 9/196/9 11/189/9 -f 13/197/4 14/198/26 15/199/4 -f 16/200/26 17/201/27 14/198/26 -f 18/202/27 19/203/1 17/201/27 -f 20/204/1 21/205/28 19/206/1 -f 13/207/11 22/208/11 18/209/11 -f 22/210/28 23/211/29 21/205/28 -f 24/212/29 15/199/4 23/211/29 -f 14/213/12 19/214/12 23/215/12 -f 13/197/4 16/200/26 14/198/26 -f 16/200/26 18/202/27 17/201/27 -f 18/202/27 20/216/1 19/203/1 -f 20/204/1 22/210/28 21/205/28 -f 18/209/11 16/217/11 13/207/11 -f 13/207/11 24/218/11 22/208/11 -f 22/208/11 20/219/11 18/209/11 -f 22/210/28 24/212/29 23/211/29 -f 24/212/29 13/197/4 15/199/4 -f 23/215/12 15/220/12 14/213/12 -f 14/213/12 17/221/12 19/214/12 -f 19/214/12 21/222/12 23/215/12 -f 25/223/30 26/224/11 27/225/30 -f 26/224/11 28/226/31 29/227/31 -f 28/226/31 30/228/6 29/227/31 -f 31/229/6 32/230/32 30/228/6 -f 33/231/32 34/232/12 32/230/32 -f 35/233/12 36/234/33 34/232/12 -f 37/235/4 38/236/4 39/237/4 -f 40/238/33 41/239/9 36/240/33 -f 42/241/34 43/242/35 44/243/36 -f 45/244/37 46/245/38 47/246/37 -f 48/247/39 47/248/37 49/249/39 -f 50/250/40 49/249/39 51/251/40 -f 52/252/41 51/251/40 53/253/41 -f 54/254/42 53/253/41 55/255/42 -f 56/256/43 55/255/42 57/257/43 -f 58/258/44 57/257/43 59/259/44 -f 60/260/38 59/259/44 46/245/38 -f 61/261/33 62/262/9 63/263/33 -f 64/264/12 63/265/33 65/266/12 -f 66/267/32 65/266/12 67/268/32 -f 68/269/6 67/268/32 69/270/6 -f 70/271/31 69/270/6 71/272/31 -f 72/273/11 71/272/31 73/274/11 -f 74/275/30 73/274/11 75/276/30 -f 76/277/9 75/276/30 62/262/9 -f 36/240/45 76/277/46 61/261/45 -f 34/232/47 61/278/45 64/264/47 -f 32/230/48 64/264/47 66/267/48 -f 30/228/49 66/267/48 68/269/49 -f 70/271/50 30/228/49 68/269/49 -f 72/273/51 29/227/50 70/271/50 -f 74/275/52 26/224/51 72/273/51 -f 41/239/46 74/275/52 76/277/46 -f 77/279/11 59/259/30 57/257/11 -f 78/280/31 57/257/11 55/255/31 -f 79/281/6 55/255/31 53/253/6 -f 80/282/32 53/253/6 51/251/32 -f 81/283/12 51/251/32 49/249/12 -f 82/284/33 49/249/12 47/248/33 -f 83/285/9 47/246/33 46/245/9 -f 84/286/53 85/287/54 86/288/9 -f 84/289/9 87/290/55 88/291/55 -f 85/287/56 89/292/57 90/293/11 -f 87/290/58 89/294/11 88/291/58 -f 89/292/57 91/295/59 90/293/11 -f 92/296/11 93/297/60 89/294/11 -f 91/298/61 94/299/62 95/300/6 -f 96/301/63 94/302/6 93/297/63 -f 94/299/62 97/303/64 95/300/6 -f 98/304/6 99/305/65 94/302/6 -f 97/303/66 100/306/67 101/307/12 -f 102/308/68 100/309/12 99/305/68 -f 100/306/67 103/310/69 101/307/12 -f 104/311/12 105/312/70 100/309/12 -f 103/313/71 84/286/53 86/288/9 -f 106/314/72 84/289/9 105/315/72 -f 103/316/33 107/317/9 108/318/33 -f 109/319/12 103/320/33 108/321/33 -f 97/322/32 109/319/12 110/323/32 -f 95/324/6 110/323/32 111/325/6 -f 91/326/31 111/325/6 112/327/31 -f 90/328/11 112/327/31 113/329/11 -f 85/330/30 113/329/11 114/331/30 -f 86/332/9 114/331/30 107/317/9 -f 115/333/73 116/334/74 87/335/75 -f 116/334/76 92/336/77 87/335/78 -f 92/336/77 117/337/79 96/338/80 -f 117/339/81 98/340/82 96/341/83 -f 98/340/82 118/342/84 102/343/85 -f 118/342/86 104/344/87 102/343/88 -f 104/344/87 119/345/89 106/346/90 -f 119/347/91 115/333/73 106/348/92 -f 120/349/9 58/258/30 60/260/9 -f 69/350/4 121/351/4 122/352/4 -f 123/353/30 56/256/11 58/258/30 -f 120/354/1 124/355/1 125/356/1 -f 126/357/11 54/254/31 56/256/11 -f 120/354/1 127/358/1 123/359/1 -f 128/360/31 52/252/6 54/254/31 -f 129/361/1 130/362/1 131/363/1 -f 132/364/6 50/250/32 52/252/6 -f 109/365/4 133/366/4 134/367/4 -f 135/368/32 48/247/12 50/250/32 -f 69/350/4 136/369/4 71/370/4 -f 137/371/12 45/372/33 48/247/12 -f 137/373/1 124/355/1 138/374/1 -f 138/375/33 60/260/9 45/244/33 -f 129/361/1 139/376/1 140/377/1 -f 141/378/9 142/379/30 116/380/30 -f 110/381/4 134/367/4 143/382/4 -f 142/379/30 144/383/11 116/380/30 -f 71/370/4 145/384/4 73/385/4 -f 146/386/11 117/387/31 144/383/11 -f 135/388/1 147/389/1 137/373/1 -f 148/390/31 149/391/6 117/387/31 -f 148/392/1 150/393/1 139/376/1 -f 129/394/6 118/395/32 149/391/6 -f 111/396/4 143/382/4 151/397/4 -f 131/398/32 152/399/12 118/395/32 -f 73/385/4 153/400/4 75/401/4 -f 154/402/12 119/403/33 152/399/12 -f 132/404/1 155/405/1 135/388/1 -f 156/406/33 141/378/9 119/407/33 -f 146/408/1 157/409/1 150/393/1 -f 158/410/9 127/411/93 125/412/9 -f 159/413/94 160/414/95 127/411/94 -f 161/415/95 162/416/96 160/414/95 -f 163/417/96 164/418/6 162/416/96 -f 151/419/6 155/420/97 164/418/6 -f 143/421/97 147/422/98 155/420/97 -f 134/423/98 124/424/99 147/422/98 -f 133/425/100 125/412/9 124/426/100 -f 165/427/9 153/428/93 157/429/93 -f 153/428/94 150/430/95 157/429/94 -f 145/431/95 139/432/96 150/430/95 -f 136/433/96 140/434/6 139/432/96 -f 122/435/6 130/436/97 140/434/6 -f 121/437/97 166/438/98 130/436/97 -f 166/438/98 167/439/99 168/440/99 -f 167/441/100 165/427/9 168/442/100 -f 107/443/4 159/444/4 158/445/4 -f 107/443/4 133/366/4 108/446/4 -f 131/363/1 166/447/1 154/448/1 -f 126/449/1 127/358/1 160/450/1 -f 67/451/4 169/452/4 121/351/4 -f 113/453/4 159/444/4 114/454/4 -f 154/448/1 168/455/1 156/456/1 -f 128/457/1 160/450/1 162/458/1 -f 65/459/4 167/460/4 169/452/4 -f 112/461/4 161/462/4 113/453/4 -f 170/463/1 157/409/1 142/464/1 -f 170/463/1 168/455/1 165/465/1 -f 132/404/1 162/458/1 164/466/1 -f 62/467/4 153/400/4 171/468/4 -f 62/467/4 167/460/4 63/469/4 -f 111/396/4 163/470/4 112/461/4 -f 172/471/30 173/472/11 174/473/11 -f 175/474/9 176/475/30 172/471/30 -f 177/476/33 178/477/9 175/478/9 -f 179/479/12 180/480/33 177/476/33 -f 181/481/101 182/482/102 183/483/103 -f 183/483/103 179/484/104 184/485/105 -f 184/485/105 177/486/106 185/487/107 -f 185/487/107 175/488/108 186/489/109 -f 186/489/109 172/490/110 187/491/111 -f 188/492/112 172/490/110 174/493/113 -f 188/492/112 189/494/114 190/495/115 -f 190/495/115 191/496/116 181/481/101 -f 192/497/117 183/483/103 193/498/118 -f 193/498/118 184/485/105 194/499/119 -f 194/499/119 185/487/107 195/500/120 -f 195/500/120 186/489/109 196/501/121 -f 196/501/121 187/491/111 197/502/122 -f 198/503/123 187/491/111 188/492/112 -f 198/503/123 190/495/115 199/504/124 -f 192/497/117 190/495/115 181/481/101 -f 200/505/125 193/498/118 42/241/34 -f 201/506/126 193/498/118 194/499/119 -f 201/506/126 195/500/120 43/242/35 -f 202/507/127 195/500/120 196/501/121 -f 202/507/127 197/502/122 44/243/36 -f 44/243/36 198/503/123 203/508/128 -f 203/508/128 199/504/124 204/509/129 -f 200/505/125 199/504/124 192/497/117 -f 205/510/1 206/511/1 207/512/1 -f 207/512/1 77/513/1 208/514/1 -f 208/514/1 78/515/1 180/516/1 -f 180/516/1 79/517/1 178/518/1 -f 178/519/1 80/520/1 176/521/1 -f 173/522/1 80/520/1 81/523/1 -f 173/522/1 82/524/1 209/525/1 -f 205/526/1 82/524/1 83/527/1 -f 174/473/11 209/528/31 189/529/31 -f 189/529/31 205/530/6 191/531/6 -f 191/531/6 207/532/32 182/533/32 -f 182/533/32 208/534/12 179/479/12 -f 206/535/30 46/245/9 59/259/30 -f 210/536/31 211/537/11 37/538/11 -f 37/538/11 212/539/30 213/540/30 -f 213/540/30 214/541/9 38/542/9 -f 38/542/9 215/543/33 216/544/33 -f 217/545/4 218/546/4 219/547/4 -f 220/548/4 25/549/4 217/545/4 -f 215/550/4 221/551/4 220/548/4 -f 214/552/4 28/553/4 215/554/4 -f 212/555/4 31/556/4 214/552/4 -f 211/557/4 33/558/4 212/555/4 -f 222/559/4 35/560/4 211/557/4 -f 219/547/4 40/561/4 222/562/4 -f 223/563/6 222/564/31 210/565/31 -f 224/566/32 219/567/6 223/563/6 -f 39/568/12 217/569/32 224/566/32 -f 216/544/33 220/570/12 39/568/12 -f 218/571/9 27/225/30 41/239/9 -f 25/223/30 221/572/11 26/224/11 -f 26/224/11 221/572/11 28/226/31 -f 28/226/31 31/229/6 30/228/6 -f 31/229/6 33/231/32 32/230/32 -f 33/231/32 35/233/12 34/232/12 -f 35/233/12 40/573/33 36/234/33 -f 39/237/4 224/574/4 37/235/4 -f 224/574/4 223/575/4 37/235/4 -f 223/575/4 210/576/4 37/235/4 -f 37/235/4 213/577/4 38/236/4 -f 38/236/4 216/578/4 39/237/4 -f 40/238/33 218/571/9 41/239/9 -f 204/509/129 200/505/125 42/241/34 -f 42/241/34 201/506/126 43/242/35 -f 43/242/35 202/507/127 44/243/36 -f 44/243/36 203/508/128 204/509/129 -f 204/509/129 42/241/34 44/243/36 -f 45/244/37 60/260/38 46/245/38 -f 48/247/39 45/372/37 47/248/37 -f 50/250/40 48/247/39 49/249/39 -f 52/252/41 50/250/40 51/251/40 -f 54/254/42 52/252/41 53/253/41 -f 56/256/43 54/254/42 55/255/42 -f 58/258/44 56/256/43 57/257/43 -f 60/260/38 58/258/44 59/259/44 -f 61/261/33 76/277/9 62/262/9 -f 64/264/12 61/278/33 63/265/33 -f 66/267/32 64/264/12 65/266/12 -f 68/269/6 66/267/32 67/268/32 -f 70/271/31 68/269/6 69/270/6 -f 72/273/11 70/271/31 71/272/31 -f 74/275/30 72/273/11 73/274/11 -f 76/277/9 74/275/30 75/276/30 -f 36/240/45 41/239/46 76/277/46 -f 34/232/47 36/234/45 61/278/45 -f 32/230/48 34/232/47 64/264/47 -f 30/228/49 32/230/48 66/267/48 -f 70/271/50 29/227/50 30/228/49 -f 72/273/51 26/224/51 29/227/50 -f 74/275/52 27/225/52 26/224/51 -f 41/239/46 27/225/52 74/275/52 -f 77/279/11 206/535/30 59/259/30 -f 78/280/31 77/279/11 57/257/11 -f 79/281/6 78/280/31 55/255/31 -f 80/282/32 79/281/6 53/253/6 -f 81/283/12 80/282/32 51/251/32 -f 82/284/33 81/283/12 49/249/12 -f 83/285/9 82/579/33 47/246/33 -f 84/286/53 88/580/130 85/287/54 -f 84/289/9 115/581/9 87/290/55 -f 85/287/56 88/580/131 89/292/57 -f 87/290/58 92/296/11 89/294/11 -f 89/292/57 93/582/132 91/295/59 -f 92/296/11 96/301/60 93/297/60 -f 91/298/61 93/583/133 94/299/62 -f 96/301/63 98/304/6 94/302/6 -f 94/299/62 99/584/134 97/303/64 -f 98/304/6 102/308/65 99/305/65 -f 97/303/66 99/584/135 100/306/67 -f 102/308/68 104/311/12 100/309/12 -f 100/306/67 105/585/136 103/310/69 -f 104/311/12 106/586/70 105/312/70 -f 103/313/71 105/587/137 84/286/53 -f 106/314/72 115/581/9 84/289/9 -f 103/316/33 86/332/9 107/317/9 -f 109/319/12 101/588/12 103/320/33 -f 97/322/32 101/588/12 109/319/12 -f 95/324/6 97/322/32 110/323/32 -f 91/326/31 95/324/6 111/325/6 -f 90/328/11 91/326/31 112/327/31 -f 85/330/30 90/328/11 113/329/11 -f 86/332/9 85/330/30 114/331/30 -f 115/333/73 141/589/9 116/334/74 -f 116/334/76 144/590/11 92/336/77 -f 92/336/77 144/590/11 117/337/79 -f 117/339/81 149/591/6 98/340/82 -f 98/340/82 149/591/6 118/342/84 -f 118/342/86 152/592/12 104/344/87 -f 104/344/87 152/592/12 119/345/89 -f 119/347/91 141/589/9 115/333/73 -f 120/349/9 123/353/30 58/258/30 -f 69/350/4 67/451/4 121/351/4 -f 123/353/30 126/357/11 56/256/11 -f 120/354/1 138/374/1 124/355/1 -f 126/357/11 128/360/31 54/254/31 -f 120/354/1 125/356/1 127/358/1 -f 128/360/31 132/364/6 52/252/6 -f 129/361/1 140/377/1 130/362/1 -f 132/364/6 135/368/32 50/250/32 -f 109/365/4 108/446/4 133/366/4 -f 135/368/32 137/371/12 48/247/12 -f 69/350/4 122/352/4 136/369/4 -f 137/371/12 138/593/33 45/372/33 -f 137/373/1 147/389/1 124/355/1 -f 138/375/33 120/349/9 60/260/9 -f 129/361/1 148/392/1 139/376/1 -f 141/378/9 170/594/9 142/379/30 -f 110/381/4 109/365/4 134/367/4 -f 142/379/30 146/386/11 144/383/11 -f 71/370/4 136/369/4 145/384/4 -f 146/386/11 148/390/31 117/387/31 -f 135/388/1 155/405/1 147/389/1 -f 148/390/31 129/394/6 149/391/6 -f 148/392/1 146/408/1 150/393/1 -f 129/394/6 131/398/32 118/395/32 -f 111/396/4 110/381/4 143/382/4 -f 131/398/32 154/402/12 152/399/12 -f 73/385/4 145/384/4 153/400/4 -f 154/402/12 156/595/33 119/403/33 -f 132/404/1 164/466/1 155/405/1 -f 156/406/33 170/594/9 141/378/9 -f 146/408/1 142/464/1 157/409/1 -f 158/410/9 159/413/93 127/411/93 -f 159/413/94 161/415/95 160/414/95 -f 161/415/95 163/417/96 162/416/96 -f 163/417/96 151/419/6 164/418/6 -f 151/419/6 143/421/97 155/420/97 -f 143/421/97 134/423/98 147/422/98 -f 134/423/98 133/596/99 124/424/99 -f 133/425/100 158/410/9 125/412/9 -f 165/427/9 171/597/9 153/428/93 -f 153/428/94 145/431/95 150/430/95 -f 145/431/95 136/433/96 139/432/96 -f 136/433/96 122/435/6 140/434/6 -f 122/435/6 121/437/97 130/436/97 -f 121/437/97 169/598/98 166/438/98 -f 166/438/98 169/598/98 167/439/99 -f 167/441/100 171/597/9 165/427/9 -f 107/443/4 114/454/4 159/444/4 -f 107/443/4 158/445/4 133/366/4 -f 131/363/1 130/362/1 166/447/1 -f 126/449/1 123/359/1 127/358/1 -f 67/451/4 65/459/4 169/452/4 -f 113/453/4 161/462/4 159/444/4 -f 154/448/1 166/447/1 168/455/1 -f 128/457/1 126/449/1 160/450/1 -f 65/459/4 63/469/4 167/460/4 -f 112/461/4 163/470/4 161/462/4 -f 170/463/1 165/465/1 157/409/1 -f 170/463/1 156/456/1 168/455/1 -f 132/404/1 128/457/1 162/458/1 -f 62/467/4 75/401/4 153/400/4 -f 62/467/4 171/468/4 167/460/4 -f 111/396/4 151/397/4 163/470/4 -f 172/471/30 176/475/30 173/472/11 -f 175/474/9 178/599/9 176/475/30 -f 177/476/33 180/480/33 178/477/9 -f 179/479/12 208/534/12 180/480/33 -f 181/481/101 191/496/116 182/482/102 -f 183/483/103 182/482/102 179/484/104 -f 184/485/105 179/484/104 177/486/106 -f 185/487/107 177/486/106 175/488/108 -f 186/489/109 175/488/108 172/490/110 -f 188/492/112 187/491/111 172/490/110 -f 188/492/112 174/493/113 189/494/114 -f 190/495/115 189/494/114 191/496/116 -f 192/497/117 181/481/101 183/483/103 -f 193/498/118 183/483/103 184/485/105 -f 194/499/119 184/485/105 185/487/107 -f 195/500/120 185/487/107 186/489/109 -f 196/501/121 186/489/109 187/491/111 -f 198/503/123 197/502/122 187/491/111 -f 198/503/123 188/492/112 190/495/115 -f 192/497/117 199/504/124 190/495/115 -f 200/505/125 192/497/117 193/498/118 -f 201/506/126 42/241/34 193/498/118 -f 201/506/126 194/499/119 195/500/120 -f 202/507/127 43/242/35 195/500/120 -f 202/507/127 196/501/121 197/502/122 -f 44/243/36 197/502/122 198/503/123 -f 203/508/128 198/503/123 199/504/124 -f 200/505/125 204/509/129 199/504/124 -f 205/510/1 83/600/1 206/511/1 -f 207/512/1 206/511/1 77/513/1 -f 208/514/1 77/513/1 78/515/1 -f 180/516/1 78/515/1 79/517/1 -f 178/519/1 79/601/1 80/520/1 -f 173/522/1 176/521/1 80/520/1 -f 173/522/1 81/523/1 82/524/1 -f 205/526/1 209/525/1 82/524/1 -f 174/473/11 173/472/11 209/528/31 -f 189/529/31 209/528/31 205/530/6 -f 191/531/6 205/530/6 207/532/32 -f 182/533/32 207/532/32 208/534/12 -f 206/535/30 83/285/9 46/245/9 -f 210/536/31 222/602/31 211/537/11 -f 37/538/11 211/537/11 212/539/30 -f 213/540/30 212/539/30 214/541/9 -f 38/542/9 214/541/9 215/543/33 -f 217/545/4 25/549/4 218/546/4 -f 220/548/4 221/551/4 25/549/4 -f 215/550/4 28/603/4 221/551/4 -f 214/552/4 31/556/4 28/553/4 -f 212/555/4 33/558/4 31/556/4 -f 211/557/4 35/560/4 33/558/4 -f 222/559/4 40/604/4 35/560/4 -f 219/547/4 218/546/4 40/561/4 -f 223/563/6 219/567/6 222/564/31 -f 224/566/32 217/569/32 219/567/6 -f 39/568/12 220/570/12 217/569/32 -f 216/544/33 215/543/33 220/570/12 -f 218/571/9 25/223/30 27/225/30 -o Hammer -v 0.032000 0.588845 1.091862 -v 0.032000 0.697419 1.159147 -v 0.032000 0.639309 1.194319 -v -0.032000 0.588845 1.091862 -v -0.032000 0.697419 1.159147 -v -0.032000 0.755530 1.130092 -v 0.032000 0.842695 0.952702 -v -0.032000 0.842695 1.107154 -v 0.032000 0.842695 1.107154 -v 0.032000 0.755530 1.130092 -v -0.032000 0.718828 1.220316 -v 0.032000 0.718828 1.220316 -v 0.068452 0.772351 1.279956 -v -0.068452 0.772351 1.279956 -v -0.068452 0.776939 1.464992 -v 0.068452 0.776939 1.464992 -v -0.068452 0.737179 1.463463 -v 0.068452 0.737179 1.463463 -v -0.068452 0.735650 1.390060 -v 0.068452 0.735650 1.390060 -v 0.068452 0.724945 1.304423 -v -0.068452 0.724945 1.304423 -v -0.032000 0.663776 1.232550 -v 0.032000 0.663776 1.232550 -v -0.032000 0.639309 1.194319 -v -0.032000 0.620958 1.237138 -v 0.032000 0.620958 1.237138 -v -0.032000 0.561319 1.335008 -v 0.032000 0.561319 1.335008 -v -0.032000 0.477211 1.387001 -v 0.032000 0.477211 1.387001 -v -0.032000 0.842695 0.952702 -vt 0.343765 0.934799 -vt 0.350946 0.946383 -vt 0.354698 0.940182 -vt 0.343782 0.934821 -vt 0.350963 0.946405 -vt 0.347864 0.952606 -vt 0.390183 0.954876 -vt 0.397012 0.971356 -vt 0.390183 0.971356 -vt 0.397012 0.980973 -vt 0.390183 0.980973 -vt 0.397012 0.987905 -vt 0.390183 0.987905 -vt 0.397012 0.994820 -vt 0.390183 0.994820 -vt 0.379264 0.964780 -vt 0.387814 0.975498 -vt 0.379264 0.979388 -vt 0.359515 0.979388 -vt 0.359515 0.964780 -vt 0.355269 0.979388 -vt 0.355269 0.964780 -vt 0.347436 0.979388 -vt 0.347436 0.964780 -vt 0.338227 0.964780 -vt 0.338227 0.979388 -vt 0.328157 0.975498 -vt 0.328157 0.968670 -vt 0.397043 0.923988 -vt 0.403872 0.928831 -vt 0.397043 0.928831 -vt 0.403872 0.933801 -vt 0.397043 0.933801 -vt 0.403872 0.946030 -vt 0.397043 0.946030 -vt 0.403872 0.956580 -vt 0.397043 0.956580 -vt 0.403872 0.990249 -vt 0.397043 0.990249 -vt 0.390183 0.923988 -vt 0.397012 0.954876 -vt 0.384495 0.954648 -vt 0.384235 0.950410 -vt 0.376401 0.950426 -vt 0.357473 0.948666 -vt 0.367240 0.949494 -vt 0.358777 0.942792 -vt 0.357490 0.948689 -vt 0.367257 0.949516 -vt 0.364763 0.954633 -vt 0.376418 0.950449 -vt 0.384252 0.950432 -vt 0.384512 0.954670 -vt 0.328921 0.961887 -vt 0.347847 0.952584 -vt 0.345400 0.961884 -vt 0.369708 0.931858 -vt 0.375254 0.922884 -vt 0.359266 0.938223 -vt 0.375271 0.922906 -vt 0.369725 0.931881 -vt 0.359283 0.938246 -vt 0.354715 0.940204 -vt 0.358794 0.942814 -vt 0.345417 0.961907 -vt 0.328938 0.961909 -vt 0.387814 0.968670 -vt 0.403872 0.923988 -vt 0.397012 0.923988 -vt 0.364746 0.954610 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.2545 0.9671 -vn 0.0000 0.4472 0.8944 -vn 0.0000 0.9439 -0.3303 -vn 0.0000 0.7442 -0.6679 -vn 0.0000 0.9997 -0.0248 -vn 0.0000 -0.0384 0.9993 -vn 0.0000 -0.9998 0.0208 -vn 0.0000 -0.9923 0.1240 -vn 0.0000 -0.7615 0.6481 -vn 0.0000 -0.8423 0.5390 -vn 0.0000 0.9191 0.3939 -vn 0.0000 0.8539 0.5204 -vn 0.0000 0.5258 0.8506 -vn 0.0000 -0.9353 -0.3538 -vn 0.0000 -0.4807 -0.8769 -vn 0.9164 -0.0869 -0.3908 -vn -0.9050 -0.1951 -0.3780 -vn 0.9050 -0.1951 -0.3780 -vn -0.9164 -0.0869 -0.3908 -s off -f 299/605/138 300/606/138 301/607/138 -f 302/608/139 303/609/139 304/610/139 -f 305/611/140 306/612/140 307/613/140 -f 307/613/141 304/614/141 308/615/141 -f 308/615/142 303/616/142 300/617/142 -f 300/617/143 309/618/143 310/619/143 -f 311/620/144 309/621/144 312/622/144 -f 311/620/145 313/623/145 314/624/145 -f 314/624/146 315/625/146 316/626/146 -f 316/626/147 317/627/147 318/628/147 -f 319/629/148 317/627/148 320/630/148 -f 319/629/149 321/631/149 322/632/149 -f 322/633/150 323/634/150 301/635/150 -f 301/635/151 324/636/151 325/637/151 -f 325/637/152 326/638/152 327/639/152 -f 327/639/153 328/640/153 329/641/153 -f 329/641/154 302/642/154 299/643/154 -f 299/644/155 330/645/155 305/611/155 -f 314/646/138 316/647/138 318/648/138 -f 310/649/156 319/650/156 322/651/156 -f 309/652/157 320/653/157 312/654/157 -f 317/655/139 315/656/139 313/657/139 -f 299/605/138 305/658/138 308/659/138 -f 305/658/138 307/660/138 308/659/138 -f 327/661/138 329/662/138 299/605/138 -f 301/607/138 325/663/138 299/605/138 -f 325/663/138 327/661/138 299/605/138 -f 310/649/138 322/651/138 300/606/138 -f 322/651/138 301/607/138 300/606/138 -f 299/605/138 308/659/138 300/606/138 -f 302/608/139 328/664/139 326/665/139 -f 326/665/139 324/666/139 302/608/139 -f 324/666/139 323/667/139 302/608/139 -f 323/667/139 321/668/139 303/609/139 -f 321/668/139 309/652/139 303/609/139 -f 306/669/139 330/670/139 304/610/139 -f 330/670/139 302/608/139 304/610/139 -f 302/608/139 323/667/139 303/609/139 -f 305/611/140 330/645/140 306/612/140 -f 307/613/141 306/612/141 304/614/141 -f 308/615/142 304/614/142 303/616/142 -f 300/617/143 303/616/143 309/618/143 -f 311/620/144 310/671/144 309/621/144 -f 311/620/145 312/622/145 313/623/145 -f 314/624/146 313/623/146 315/625/146 -f 316/626/147 315/625/147 317/627/147 -f 319/629/148 318/628/148 317/627/148 -f 319/629/149 320/630/149 321/631/149 -f 322/633/150 321/672/150 323/634/150 -f 301/635/151 323/634/151 324/636/151 -f 325/637/152 324/636/152 326/638/152 -f 327/639/153 326/638/153 328/640/153 -f 329/641/154 328/640/154 302/642/154 -f 299/644/155 302/673/155 330/645/155 -f 318/648/138 319/650/138 311/674/138 -f 311/674/138 314/646/138 318/648/138 -f 310/649/158 311/674/158 319/650/158 -f 309/652/159 321/668/159 320/653/159 -f 313/657/139 312/654/139 317/655/139 -f 312/654/139 320/653/139 317/655/139 -o Gun -v 0.021772 0.858479 -2.163888 -v 0.021772 0.977946 -2.136619 -v 0.021772 0.977946 -1.813800 -v 0.006439 1.069528 -2.025718 -v 0.006439 0.978873 -1.822862 -v 0.006439 0.978924 -2.135519 -v -0.021772 0.977946 -1.813800 -v -0.021772 0.858479 -2.163888 -v -0.021772 0.862374 -1.530190 -v -0.006439 0.979031 -2.135490 -v -0.006439 0.978873 -1.822863 -v -0.006439 1.069528 -2.025718 -v 0.021772 0.977946 -1.776917 -v 0.021772 0.862374 -1.530190 -v -0.021772 0.977946 -2.136619 -v -0.021772 0.977946 -1.776917 -v -0.006439 1.067725 -2.088842 -v 0.006439 1.035261 -2.120404 -v 0.006439 1.067725 -2.088842 -v -0.006439 1.035261 -2.120404 -v 0.045500 -0.120256 0.684201 -v 0.045500 -0.026668 0.645664 -v 0.045500 -0.037678 0.759438 -v -0.045500 -0.195494 0.673190 -v -0.045500 -0.241370 0.641994 -v -0.045500 -0.226690 0.735583 -v -0.045500 0.083436 0.570427 -v 0.045500 0.083436 0.570427 -v -0.045500 -0.026668 0.645664 -v 0.045500 -0.195494 0.673190 -v -0.045500 -0.120256 0.684201 -v 0.045500 -0.241370 0.641994 -v 0.045500 -0.301928 0.541066 -v 0.045500 -0.329454 0.561251 -v -0.045500 -0.301928 0.541066 -v 0.045500 -0.292752 0.676861 -v -0.045500 -0.329454 0.561251 -v 0.045500 -0.226690 0.735583 -v -0.045500 -0.292752 0.676861 -v 0.045500 -0.098235 0.761274 -v -0.045500 -0.098235 0.761274 -v 0.045500 0.006363 0.860367 -v -0.045500 -0.037678 0.759438 -v 0.045500 0.120138 0.755768 -v -0.045500 0.006363 0.860367 -v -0.045500 0.120138 0.755768 -v -0.054995 0.616618 -0.028039 -v -0.033567 0.562746 -0.960018 -v -0.033567 0.562746 -0.028039 -v -0.054995 0.616618 -1.026899 -v 0.033567 0.562746 -0.960018 -v 0.054995 0.616618 -0.028039 -v 0.033567 0.562746 -0.028039 -v -0.033567 0.390368 -0.028039 -v -0.025180 0.382701 -0.028039 -v -0.004934 0.379525 -0.028039 -v 0.054995 0.616618 -1.026899 -v 0.033567 0.390368 -0.028039 -v 0.033567 0.390368 -0.869522 -v -0.033567 0.390368 -0.869522 -v 0.004934 0.379525 -0.863829 -v -0.004934 0.379525 -0.863829 -v 0.025180 0.382701 -0.865496 -v -0.025180 0.382701 -0.865496 -v 0.025180 0.382701 -0.028039 -v 0.004934 0.379525 -0.028039 -v -0.091806 0.781963 -0.305483 -v 0.000000 0.834967 -0.305483 -v 0.091806 0.781963 -0.305483 -v 0.000000 0.577301 -2.190801 -v 0.131339 0.653130 -0.116135 -v 0.000000 0.577301 -0.116135 -v 0.131339 0.653130 -2.190801 -v 0.131339 0.804788 -0.116135 -v -0.033282 0.869246 -2.190801 -v -0.131339 0.804788 -0.116135 -v -0.033282 0.869246 -0.116135 -v 0.000000 0.834967 -2.190801 -v -0.091806 0.781963 -2.190801 -v -0.131339 0.804788 -2.190801 -v -0.131339 0.653130 -0.116135 -v 0.131339 0.804788 -2.190801 -v 0.033282 0.869246 -0.116135 -v 0.033282 0.869246 -2.190801 -v 0.033282 0.893686 -0.116135 -v -0.033282 0.893686 -0.116135 -v 0.033282 0.893686 -2.190801 -v -0.033282 0.893686 -2.190801 -v 0.091806 0.781963 -2.190801 -v 0.091806 0.675955 -0.305483 -v 0.091806 0.675955 -2.190801 -v 0.000000 0.622951 -2.190801 -v -0.131339 0.653130 -2.190801 -v -0.091806 0.675955 -0.305483 -v -0.091806 0.675955 -2.190801 -v 0.000000 0.622951 -0.305483 -v 0.038663 0.010816 1.719601 -v -0.038663 -0.245511 1.887638 -v 0.038663 -0.245511 1.887638 -v 0.155101 -0.023361 0.976255 -v -0.155153 0.335495 1.332264 -v 0.155152 0.335496 1.332264 -v -0.165394 -1.094236 1.405764 -v -0.111831 -1.094236 1.351958 -v -0.038663 -1.094236 1.332264 -v 0.038663 -1.094236 1.332264 -v -0.038663 -0.735379 1.366441 -v 0.038663 -0.735379 1.366441 -v -0.038663 -0.493293 1.340808 -v 0.038663 -0.493293 1.340808 -v -0.038663 -0.356585 1.278151 -v 0.038663 -0.356585 1.278151 -v -0.038663 -0.259751 1.158532 -v 0.038663 -0.259751 1.158532 -v -0.038663 -0.208486 0.984799 -v 0.038663 -0.208486 0.984799 -v 0.165394 -0.171143 0.992864 -v 0.185000 -0.127654 1.227930 -v 0.165394 -0.193703 1.193231 -v -0.111832 -0.197420 0.977549 -v -0.124343 -0.190359 0.972923 -v -0.155012 -0.125892 0.930686 -v -0.155169 0.386761 1.437643 -v 0.155169 0.386761 1.437643 -v 0.165394 0.187100 1.505419 -v 0.185000 0.161170 1.436487 -v 0.185000 0.353967 1.437475 -v 0.038663 0.264730 1.561425 -v -0.038663 0.213029 1.574350 -v 0.038663 0.213029 1.574350 -v -0.038663 0.101954 1.631311 -v 0.038663 0.101954 1.631311 -v -0.038663 0.010816 1.719601 -v -0.185000 0.353967 1.437475 -v -0.165395 0.187099 1.505419 -v -0.165395 0.371558 1.459304 -v 0.038663 -0.641392 2.049978 -v -0.038663 -1.094236 2.183837 -v 0.038663 -1.094236 2.183837 -v 0.111832 -0.254688 1.870211 -v 0.111832 -0.647907 2.031459 -v 0.165395 -0.279760 1.822601 -v 0.165395 -0.665706 1.980867 -v 0.185000 -0.314010 1.757564 -v 0.111832 -1.094236 2.163393 -v 0.165395 -1.094236 2.107539 -v 0.185000 -1.094236 2.031240 -v 0.185000 -0.690020 1.911755 -v 0.111832 -1.094236 1.351958 -v 0.111832 -0.735275 1.386145 -v 0.165395 -1.094236 1.405764 -v 0.165395 -0.734991 1.439977 -v 0.185000 -1.094236 1.479263 -v 0.111831 -0.488039 1.359967 -v 0.165395 -0.473687 1.412310 -v 0.185000 -0.734604 1.513514 -v 0.111831 -0.344239 1.294058 -v 0.165394 -0.310507 1.337519 -v 0.185000 -0.454081 1.483811 -v 0.111831 -0.242054 1.167829 -v 0.185000 -0.264429 1.396888 -v -0.185000 -0.127654 1.227930 -v -0.165395 -0.171143 0.992864 -v -0.165395 -0.193703 1.193231 -v 0.111831 0.206081 1.555880 -v 0.111831 0.331394 1.524552 -v 0.165394 0.371558 1.459304 -v 0.111831 0.090410 1.615198 -v 0.165394 0.058870 1.571177 -v 0.111831 -0.001489 1.704225 -v 0.165394 -0.035107 1.662217 -v 0.185000 -0.081029 1.604832 -v 0.185000 0.015786 1.511043 -v -0.185000 -0.314010 1.757564 -v -0.165394 -0.665706 1.980867 -v -0.165394 -0.279760 1.822601 -v -0.111831 -0.647907 2.031460 -v -0.111831 -0.254688 1.870211 -v -0.038663 -0.641392 2.049978 -v -0.185000 -1.094236 2.031240 -v -0.185000 -0.690020 1.911756 -v -0.165394 -1.094236 2.107539 -v -0.111831 -1.094236 2.163393 -v -0.185000 -1.094236 1.479263 -v -0.165394 -0.734991 1.439977 -v -0.111831 -0.735275 1.386145 -v -0.185000 -0.734604 1.513514 -v -0.165395 -0.473687 1.412310 -v -0.111832 -0.488039 1.359967 -v -0.185000 -0.454081 1.483811 -v -0.165395 -0.310507 1.337519 -v -0.111832 -0.344239 1.294059 -v -0.185000 -0.264429 1.396888 -v -0.111832 -0.242054 1.167830 -v 0.111831 -0.197420 0.977549 -v 0.124342 -0.190359 0.972923 -v -0.111832 0.331394 1.524552 -v -0.111832 0.206081 1.555880 -v -0.038663 0.264730 1.561425 -v -0.185000 0.161170 1.436487 -v -0.165395 0.058870 1.571177 -v -0.111832 0.090410 1.615198 -v -0.185000 -0.081029 1.604832 -v -0.185000 0.015786 1.511043 -v -0.165395 -0.035107 1.662217 -v -0.111832 -0.001489 1.704225 -v 0.167489 0.373183 1.456990 -v -0.167489 0.373183 1.456990 -v 0.185000 -0.126088 0.963812 -v 0.155011 -0.125892 0.930686 -v 0.185000 -0.038447 1.002724 -v 0.185000 0.311230 1.349627 -v -0.185000 -0.038447 1.002724 -v -0.155102 -0.023361 0.976255 -v -0.185000 0.311230 1.349627 -v -0.185000 -0.126088 0.963812 -v -0.097892 0.268977 1.622983 -v 0.097892 0.149312 1.674509 -v 0.097892 0.268977 1.622983 -v 0.130092 0.958661 0.861598 -v -0.130093 0.708668 1.058814 -v 0.130092 0.708668 1.058814 -v 0.130092 0.613690 1.167382 -v -0.130093 0.530807 1.307363 -v 0.130092 0.530807 1.307363 -v 0.097892 -0.235169 1.903226 -v -0.097891 -0.628431 2.060954 -v 0.097892 -0.628431 2.060954 -v -0.130092 -0.204556 0.922148 -v 0.130093 -0.133963 0.912969 -v 0.130093 -0.204556 0.922148 -v -0.097891 -0.931319 2.170571 -v 0.097892 -0.931319 2.170571 -v 0.130093 -0.924483 1.955257 -v -0.130092 -0.070062 1.401592 -v 0.130093 -0.070062 1.401592 -v -0.130092 -0.225360 0.969494 -v 0.130093 -0.225360 0.969494 -v -0.130092 -0.300993 0.937781 -v 0.130093 -0.300993 0.937781 -v 0.130092 -0.008544 0.212238 -v -0.130093 -0.008544 -0.085101 -v 0.130092 -0.008544 -0.085101 -v -0.130093 0.275124 -0.085101 -v 0.130092 0.275124 -0.085101 -v -0.130093 0.357148 -0.143201 -v 0.130092 0.357148 -0.143201 -v 0.130092 0.525636 -0.143201 -v -0.130093 0.525636 -0.143201 -v 0.130092 0.921066 -0.143201 -v -0.130093 0.921066 0.307933 -v 0.130092 0.921066 0.307933 -v -0.130093 0.965496 0.495906 -v 0.130092 0.965496 0.495906 -v -0.130093 0.958661 0.861598 -v -0.097892 0.057929 1.734014 -v 0.097892 0.057929 1.734014 -v 0.097892 0.415249 1.620324 -v 0.130093 0.477214 1.426684 -v 0.130093 -0.386514 0.876939 -v -0.130092 -0.386514 0.876940 -v 0.130093 -0.442444 0.786799 -v 0.130092 -0.211485 0.282549 -v -0.130093 -0.008544 0.212238 -v -0.130092 -0.442590 0.623577 -v 0.130093 -0.414803 0.465864 -v 0.130093 -0.442590 0.623577 -v -0.130092 -0.414803 0.465864 -v 0.130093 -0.330356 0.359518 -v -0.130092 -0.330356 0.359518 -v -0.130092 -0.930219 2.135928 -v -0.130092 -0.924483 1.955257 -v 0.130093 -0.930219 2.135928 -v 0.130093 -0.249283 1.874193 -v -0.130092 -0.249284 1.874193 -v -0.130092 0.041082 1.706559 -v 0.130093 -0.639977 2.030890 -v -0.130092 -0.639977 2.030890 -v 0.130093 0.134048 1.646022 -v -0.130092 0.134048 1.646022 -v -0.130092 0.262060 1.590903 -v 0.130093 0.262060 1.590903 -v 0.130093 0.425615 1.587929 -v 0.130093 0.041082 1.706559 -v -0.097892 0.415249 1.620324 -v -0.130092 0.425615 1.587929 -v -0.097892 0.149312 1.674509 -v -0.097892 -0.235169 1.903226 -v -0.130092 0.477214 1.426684 -v -0.130092 -0.442444 0.786799 -v -0.130092 0.221493 0.777850 -v -0.130092 0.032680 0.752116 -v -0.130092 -0.044732 0.859700 -v -0.130092 -0.102226 0.333310 -v 0.130092 -0.022441 0.371767 -v -0.130093 -0.022441 0.371767 -v 0.130092 0.652207 0.905577 -v 0.130092 0.841407 0.777850 -v -0.130092 -0.388426 0.502954 -v 0.130093 -0.403589 0.641508 -v 0.130093 -0.388426 0.502954 -v 0.130092 -0.311756 0.399896 -v 0.130092 -0.193827 0.335099 -v -0.130092 -0.311756 0.399896 -v 0.130093 -0.361856 0.843483 -v -0.130092 -0.404840 0.766055 -v -0.130092 -0.361856 0.843483 -v -0.130092 -0.403589 0.641508 -v 0.130092 0.841407 0.131254 -v 0.130092 0.841530 -0.143201 -v -0.130092 -0.193827 0.335099 -v 0.130092 0.046415 0.462863 -v 0.130092 0.032680 0.752116 -v 0.130093 -0.280523 0.902444 -v -0.130092 -0.280523 0.902444 -v 0.130092 -0.102226 0.333310 -v -0.130093 0.046415 0.462863 -v -0.130093 0.357293 0.131254 -v 0.130092 0.357290 0.131254 -v 0.130092 0.525636 0.131254 -v 0.130092 0.221493 0.131254 -v -0.130093 0.221493 0.131254 -v -0.130093 0.221493 0.431851 -v -0.303465 0.659984 0.777850 -v 0.303465 0.659984 0.777850 -v -0.130093 0.841407 0.131254 -v 0.130092 0.841407 0.322044 -v -0.156306 0.411972 -0.143201 -v 0.173056 0.766475 -0.143201 -v -0.130093 0.921066 -0.143201 -v 0.173056 0.766475 0.131254 -v 0.173056 0.694144 -0.143201 -v 0.173056 0.694144 0.131254 -v 0.130092 0.617043 -0.143201 -v 0.156306 0.412767 -0.143201 -v 0.156306 0.467612 0.131254 -v 0.156306 0.467612 -0.143201 -v 0.130092 0.617043 0.131254 -v -0.173057 0.765680 -0.143201 -v -0.130093 0.841530 -0.143201 -v -0.173057 0.693349 -0.143201 -v -0.173057 0.765680 0.131254 -v -0.130093 0.617043 -0.143201 -v -0.173057 0.693349 0.131254 -v -0.130093 0.617043 0.131254 -v -0.130093 0.525636 0.131254 -v -0.156306 0.466817 0.131254 -v -0.156306 0.466817 -0.143201 -v 0.130092 0.221493 0.777850 -v -0.303465 0.402917 0.777850 -v 0.303465 0.402917 0.777850 -v 0.130092 0.406563 0.905577 -v -0.130093 0.405927 0.905757 -v -0.130093 0.650810 0.906495 -v -0.130093 0.841407 0.777850 -v 0.130092 -0.044732 0.859700 -v -0.130092 -0.133963 0.912969 -v -0.130093 0.613690 1.167382 -v -0.130092 -0.211485 0.282549 -v -0.130093 0.841407 0.322044 -v 0.130093 -0.404840 0.766055 -v 0.130092 0.221493 0.431851 -v -0.130093 0.275159 0.131254 -v 0.130092 0.274881 0.131254 -v -0.156306 0.411972 0.131254 -v 0.156306 0.412767 0.131254 -vt 0.050815 0.964187 -vt 0.022923 0.957640 -vt 0.023387 0.882167 -vt 0.000391 0.939742 -vt 0.021578 0.892311 -vt 0.021578 0.965410 -vt 0.023386 0.882167 -vt 0.050813 0.964187 -vt 0.050813 0.816027 -vt 0.021586 0.965403 -vt 0.021586 0.892311 -vt 0.000415 0.939749 -vt 0.065060 0.879800 -vt 0.054868 0.816027 -vt 0.065060 0.816027 -vt 0.066687 0.963664 -vt 0.076868 0.992314 -vt 0.066687 0.992314 -vt 0.066687 0.815504 -vt 0.076868 0.963664 -vt 0.065060 0.888433 -vt 0.054868 0.879800 -vt 0.061471 0.890563 -vt 0.054868 0.888433 -vt 0.006644 0.864557 -vt 0.003633 0.879321 -vt 0.003633 0.864557 -vt 0.006644 0.889907 -vt 0.006644 0.879321 -vt 0.003633 0.903518 -vt 0.003633 0.889907 -vt 0.065057 0.963856 -vt 0.061468 0.963513 -vt 0.058457 0.890564 -vt 0.054872 0.963859 -vt 0.003633 0.812609 -vt 0.058468 0.963499 -vt 0.023440 0.873544 -vt 0.050815 0.816027 -vt 0.008406 0.961878 -vt 0.000815 0.954500 -vt 0.023439 0.873544 -vt 0.022922 0.957640 -vt 0.000844 0.954507 -vt 0.008438 0.961882 -vt 0.076868 0.815504 -vt 0.006644 0.903544 -vt 0.006644 0.812609 -vt 0.023130 0.630533 -vt 0.028439 0.641072 -vt 0.015114 0.640800 -vt 0.023687 0.621763 -vt 0.026907 0.616152 -vt 0.016156 0.618688 -vt 0.051880 0.644663 -vt 0.062490 0.660213 -vt 0.051880 0.660213 -vt 0.051880 0.632862 -vt 0.062490 0.644663 -vt 0.051880 0.623995 -vt 0.062490 0.632862 -vt 0.051880 0.617526 -vt 0.062490 0.623995 -vt 0.051880 0.603802 -vt 0.062490 0.617526 -vt 0.062519 0.663431 -vt 0.073130 0.667411 -vt 0.062519 0.667411 -vt 0.062519 0.649287 -vt 0.073130 0.663431 -vt 0.062519 0.638981 -vt 0.073130 0.649287 -vt 0.062519 0.623707 -vt 0.073130 0.638981 -vt 0.062519 0.616642 -vt 0.073130 0.623707 -vt 0.062519 0.603802 -vt 0.073130 0.616642 -vt 0.051880 0.682243 -vt 0.062490 0.700264 -vt 0.051880 0.700264 -vt 0.062490 0.682243 -vt 0.038162 0.653207 -vt 0.016938 0.659116 -vt 0.003769 0.646815 -vt 0.014364 0.633776 -vt 0.016213 0.618613 -vt 0.023743 0.621688 -vt 0.022455 0.610413 -vt 0.026964 0.616078 -vt 0.035571 0.605121 -vt 0.038162 0.608143 -vt 0.003713 0.646890 -vt 0.016882 0.659191 -vt 0.015057 0.640875 -vt 0.038105 0.653282 -vt 0.028383 0.641147 -vt 0.014307 0.633851 -vt 0.023073 0.630608 -vt 0.022398 0.610487 -vt 0.038105 0.608218 -vt 0.035515 0.605196 -vt 0.062490 0.603802 -vt 0.073130 0.603802 -vt 0.646204 0.426405 -vt 0.878178 0.440836 -vt 0.646204 0.440836 -vt 0.719647 0.492539 -vt 0.698103 0.514756 -vt 0.698103 0.497914 -vt 0.878178 0.384598 -vt 0.646204 0.399029 -vt 0.646204 0.384598 -vt 0.719705 0.520131 -vt 0.733219 0.497914 -vt 0.733219 0.514756 -vt 0.776463 0.497914 -vt 0.778386 0.500018 -vt 0.779183 0.505097 -vt 0.894825 0.426405 -vt 0.894825 0.399029 -vt 0.776463 0.514756 -vt 0.855653 0.341692 -vt 0.646204 0.341692 -vt 0.649263 0.514756 -vt 0.649263 0.497914 -vt 0.855653 0.483742 -vt 0.646204 0.483742 -vt 0.853950 0.332960 -vt 0.646212 0.329338 -vt 0.853970 0.329334 -vt 0.647090 0.512652 -vt 0.646190 0.507573 -vt 0.854224 0.492481 -vt 0.646190 0.487380 -vt 0.854639 0.487380 -vt 0.646192 0.338059 -vt 0.646192 0.332964 -vt 0.854365 0.338054 -vt 0.719647 0.520131 -vt 0.719705 0.492539 -vt 0.779183 0.507573 -vt 0.778386 0.512652 -vt 0.646190 0.505097 -vt 0.647090 0.500018 -vt 0.646190 0.492481 -vt 0.625344 0.493036 -vt 0.640162 0.518702 -vt 0.625344 0.544367 -vt 0.991730 0.947997 -vt 0.418732 0.989883 -vt 0.418732 0.947997 -vt 0.991635 0.719134 -vt 0.418637 0.761020 -vt 0.418637 0.719134 -vt 0.991730 0.831816 -vt 0.418732 0.864225 -vt 0.418732 0.831816 -vt 0.490671 0.507650 -vt 0.475853 0.481984 -vt 0.500255 0.498345 -vt 0.991730 0.864225 -vt 0.418732 0.906111 -vt 0.991635 0.761020 -vt 0.418637 0.793429 -vt 0.991635 0.793430 -vt 0.418685 0.803430 -vt 0.553293 0.462750 -vt 0.580706 0.480770 -vt 0.580706 0.523168 -vt 0.418684 0.821815 -vt 0.991682 0.803430 -vt 0.991682 0.821815 -vt 0.534684 0.462750 -vt 0.553293 0.455917 -vt 0.507087 0.516954 -vt 0.500255 0.516954 -vt 0.945706 0.603823 -vt 0.418637 0.633459 -vt 0.418637 0.603823 -vt 0.945706 0.574187 -vt 0.418637 0.574187 -vt 0.431399 0.507650 -vt 0.418637 0.507650 -vt 0.439836 0.470932 -vt 0.418637 0.544551 -vt 0.945706 0.692732 -vt 0.418637 0.722368 -vt 0.418637 0.692732 -vt 0.945706 0.663096 -vt 0.418637 0.663096 -vt 0.595708 0.544367 -vt 0.580890 0.518702 -vt 0.595708 0.493036 -vt 0.991730 0.989883 -vt 0.482234 0.544367 -vt 0.439836 0.544367 -vt 0.446217 0.533315 -vt 0.475853 0.533315 -vt 0.482234 0.470932 -vt 0.991730 0.906111 -vt 0.543988 0.544367 -vt 0.507270 0.523168 -vt 0.507270 0.480770 -vt 0.534684 0.455917 -vt 0.507087 0.498345 -vt 0.945706 0.633460 -vt 0.446217 0.481984 -vt 0.945706 0.544551 -vt 0.945706 0.722369 -vt 0.943217 0.267157 -vt 0.926816 0.200969 -vt 0.943283 0.201022 -vt 0.518614 0.365977 -vt 0.408575 0.434977 -vt 0.407603 0.364763 -vt 0.691811 0.182540 -vt 0.679816 0.194589 -vt 0.663431 0.198999 -vt 0.790430 0.010515 -vt 0.806586 0.087515 -vt 0.789182 0.087383 -vt 0.807179 0.145714 -vt 0.787864 0.145480 -vt 0.807338 0.184720 -vt 0.787235 0.184419 -vt 0.806826 0.224675 -vt 0.787363 0.224372 -vt 0.804592 0.265004 -vt 0.789455 0.265203 -vt 0.762991 0.269202 -vt 0.734295 0.228422 -vt 0.750382 0.227248 -vt 0.563830 0.425463 -vt 0.561372 0.428039 -vt 0.544436 0.431268 -vt 0.380990 0.436844 -vt 0.380928 0.362943 -vt 0.979855 0.330577 -vt 0.997279 0.332894 -vt 0.977666 0.372086 -vt 0.942886 0.339656 -vt 0.925073 0.327372 -vt 0.943524 0.327508 -vt 0.924933 0.296851 -vt 0.943938 0.297107 -vt 0.926017 0.267118 -vt 0.890449 0.371970 -vt 0.888609 0.330033 -vt 0.898082 0.372863 -vt 0.944098 0.108972 -vt 0.927549 0.003861 -vt 0.945038 0.003989 -vt 0.959510 0.201115 -vt 0.960758 0.109163 -vt 0.976114 0.201189 -vt 0.977479 0.109415 -vt 0.993182 0.201234 -vt 0.962153 0.005475 -vt 0.979285 0.009325 -vt 0.996344 0.014550 -vt 0.994366 0.109702 -vt 0.775076 0.010580 -vt 0.772288 0.086759 -vt 0.759833 0.011018 -vt 0.755934 0.085737 -vt 0.744532 0.011615 -vt 0.769275 0.144608 -vt 0.751693 0.143162 -vt 0.740273 0.084551 -vt 0.767874 0.184311 -vt 0.749248 0.184148 -vt 0.735539 0.141562 -vt 0.768470 0.225353 -vt 0.732209 0.183909 -vt 0.859569 0.229149 -vt 0.830692 0.269217 -vt 0.843603 0.227804 -vt 0.468619 0.053761 -vt 0.510338 0.123074 -vt 0.595077 0.093538 -vt 0.961775 0.328544 -vt 0.957372 0.356859 -vt 0.970094 0.372916 -vt 0.967925 0.378672 -vt 0.962614 0.296741 -vt 0.981202 0.295983 -vt 0.960092 0.266798 -vt 0.976967 0.265877 -vt 0.994071 0.264483 -vt 0.999243 0.294996 -vt 0.876930 0.200545 -vt 0.893760 0.108906 -vt 0.893992 0.200716 -vt 0.910487 0.108862 -vt 0.910592 0.200854 -vt 0.927152 0.108880 -vt 0.876092 0.013774 -vt 0.876866 0.108983 -vt 0.893223 0.008764 -vt 0.910408 0.005131 -vt 0.852123 0.012128 -vt 0.839893 0.086276 -vt 0.836793 0.011364 -vt 0.823504 0.087100 -vt 0.821522 0.010763 -vt 0.806135 0.010538 -vt 0.855599 0.085278 -vt 0.843397 0.143865 -vt 0.825787 0.145081 -vt 0.859584 0.142485 -vt 0.845278 0.184879 -vt 0.826683 0.184818 -vt 0.862281 0.184873 -vt 0.825634 0.225751 -vt 0.818535 0.268782 -vt 0.775293 0.268889 -vt 0.772790 0.270569 -vt 0.910854 0.356249 -vt 0.906755 0.328195 -vt 0.925628 0.339795 -vt 0.871053 0.332174 -vt 0.887683 0.295354 -vt 0.906271 0.296322 -vt 0.875237 0.263718 -vt 0.869636 0.294124 -vt 0.892311 0.265344 -vt 0.909163 0.266501 -vt 0.582746 0.275394 -vt 0.511691 0.273824 -vt 0.532576 0.229852 -vt 0.385204 0.353185 -vt 0.378416 0.357051 -vt 0.385461 0.446926 -vt 0.378416 0.442955 -vt 0.541558 0.357450 -vt 0.542017 0.367230 -vt 0.518528 0.356368 -vt 0.407993 0.355379 -vt 0.520482 0.442763 -vt 0.520351 0.432941 -vt 0.409011 0.444549 -vt 0.558437 0.440307 -vt 0.544431 0.441003 -vt 0.555710 0.356970 -vt 0.559936 0.369073 -vt 0.646114 0.198999 -vt 0.613344 0.166080 -vt 0.629729 0.194589 -vt 0.617734 0.182540 -vt 0.613344 0.042471 -vt 0.696201 0.042471 -vt 0.617734 0.025385 -vt 0.646114 0.008299 -vt 0.629729 0.012877 -vt 0.663431 0.008299 -vt 0.679816 0.012877 -vt 0.691811 0.025385 -vt 0.696201 0.166080 -vt 0.756059 0.278834 -vt 0.569442 0.389177 -vt 0.562759 0.371542 -vt 0.568477 0.408219 -vt 0.970560 0.373529 -vt 0.897611 0.373479 -vt 0.837449 0.278834 -vt 0.578450 0.350139 -vt 0.600326 0.350269 -vt 0.581469 0.311429 -vt 0.582456 0.274854 -vt 0.592028 0.246226 -vt 0.532286 0.229312 -vt 0.600326 0.184395 -vt 0.531487 0.182600 -vt 0.474553 0.313093 -vt 0.511401 0.273284 -vt 0.458214 0.299160 -vt 0.580090 0.000344 -vt 0.900263 0.378672 -vt 0.820992 0.270468 -vt 0.581759 0.311969 -vt 0.600616 0.350809 -vt 0.578739 0.350680 -vt 0.474843 0.313633 -vt 0.458504 0.299700 -vt 0.600616 0.184935 -vt 0.592318 0.246766 -vt 0.580380 0.000884 -vt 0.595367 0.094079 -vt 0.468908 0.054301 -vt 0.531777 0.183140 -vt 0.510628 0.123614 -vt 0.297467 0.534291 -vt 0.274155 0.499064 -vt 0.297243 0.498318 -vt 0.227832 0.136510 -vt 0.174947 0.178032 -vt 0.174947 0.134818 -vt 0.150989 0.134818 -vt 0.123971 0.178032 -vt 0.123971 0.134818 -vt 0.200788 0.500764 -vt 0.132092 0.532286 -vt 0.132160 0.500166 -vt 0.214968 0.437985 -vt 0.226791 0.481199 -vt 0.214968 0.481199 -vt 0.079276 0.532213 -vt 0.079413 0.499857 -vt 0.057683 0.542811 -vt 0.014470 0.373714 -vt 0.057683 0.373714 -vt 0.014470 0.297454 -vt 0.057683 0.297454 -vt 0.014470 0.283833 -vt 0.057683 0.283833 -vt 0.057683 0.113331 -vt 0.013017 0.065497 -vt 0.056230 0.065497 -vt 0.014470 0.016834 -vt 0.057683 0.016834 -vt 0.237608 0.128706 -vt 0.194395 0.112011 -vt 0.237608 0.112011 -vt 0.237608 0.084028 -vt 0.194395 0.084028 -vt 0.395586 0.134818 -vt 0.320659 0.178032 -vt 0.320659 0.134818 -vt 0.288579 0.178032 -vt 0.288579 0.134818 -vt 0.227832 0.179723 -vt 0.255763 0.532612 -vt 0.255630 0.500001 -vt 0.322696 0.499422 -vt 0.102246 0.134818 -vt 0.057683 0.266401 -vt 0.014470 0.266401 -vt 0.057683 0.248783 -vt 0.057683 0.149002 -vt 0.014470 0.113331 -vt 0.014470 0.221674 -vt 0.057683 0.195076 -vt 0.057683 0.221674 -vt 0.014470 0.195076 -vt 0.057683 0.172522 -vt 0.014470 0.172522 -vt 0.016695 0.573883 -vt 0.014470 0.542811 -vt 0.059906 0.573475 -vt 0.200772 0.493328 -vt 0.200752 0.539591 -vt 0.255530 0.540026 -vt 0.081573 0.492375 -vt 0.132204 0.492739 -vt 0.081385 0.539720 -vt 0.132085 0.539722 -vt 0.273731 0.491419 -vt 0.273669 0.541133 -vt 0.297535 0.542407 -vt 0.297180 0.490341 -vt 0.324958 0.491786 -vt 0.255382 0.492566 -vt 0.323509 0.532260 -vt 0.326077 0.540048 -vt 0.274083 0.533455 -vt 0.200769 0.532142 -vt 0.102246 0.178032 -vt 0.072626 0.178537 -vt 0.066927 0.173242 -vt 0.014470 0.248783 -vt 0.252413 0.299074 -vt 0.247711 0.266360 -vt 0.265474 0.253139 -vt 0.347835 0.437985 -vt 0.333125 0.481199 -vt 0.333125 0.437985 -vt 0.278296 0.371798 -vt 0.255762 0.406113 -vt 0.304964 0.380163 -vt 0.126705 0.437985 -vt 0.149854 0.481199 -vt 0.126705 0.481199 -vt 0.105371 0.481199 -vt 0.083023 0.481199 -vt 0.105371 0.437985 -vt 0.185249 0.481199 -vt 0.170540 0.437985 -vt 0.185249 0.437985 -vt 0.149854 0.437985 -vt 0.142525 0.407099 -vt 0.095062 0.406915 -vt 0.094990 0.420685 -vt 0.189013 0.208764 -vt 0.178255 0.228217 -vt 0.182352 0.205687 -vt 0.266064 0.437985 -vt 0.314159 0.481199 -vt 0.266064 0.481199 -vt 0.201933 0.481199 -vt 0.201933 0.437985 -vt 0.083023 0.437985 -vt 0.067806 0.481199 -vt 0.067806 0.437985 -vt 0.314159 0.437985 -vt 0.302377 0.096782 -vt 0.259164 0.096782 -vt 0.259164 0.068822 -vt 0.140317 0.016548 -vt 0.183531 0.016548 -vt 0.183531 0.066473 -vt 0.346660 0.119615 -vt 0.316528 0.047608 -vt 0.346660 0.018813 -vt 0.134626 0.123141 -vt 0.091413 0.123141 -vt 0.091413 0.091454 -vt 0.182465 0.205434 -vt 0.178341 0.227957 -vt 0.189121 0.208518 -vt 0.142811 0.318849 -vt 0.106663 0.304088 -vt 0.096286 0.317803 -vt 0.106731 0.304422 -vt 0.142844 0.319109 -vt 0.096399 0.318133 -vt 0.096132 0.328492 -vt 0.095144 0.391955 -vt 0.142645 0.407391 -vt 0.173442 0.421287 -vt 0.095018 0.421173 -vt 0.142550 0.392168 -vt 0.095208 0.379505 -vt 0.142550 0.379683 -vt 0.095240 0.364539 -vt 0.095994 0.328301 -vt 0.142493 0.338592 -vt 0.095735 0.337534 -vt 0.095447 0.348525 -vt 0.141439 0.364519 -vt 0.095064 0.392252 -vt 0.095040 0.407371 -vt 0.095061 0.379937 -vt 0.142633 0.392298 -vt 0.095152 0.364467 -vt 0.142649 0.379782 -vt 0.259164 0.053641 -vt 0.302377 0.016377 -vt 0.302377 0.053641 -vt 0.141702 0.349557 -vt 0.095557 0.348555 -vt 0.142514 0.338724 -vt 0.095886 0.337698 -vt 0.419487 0.047607 -vt 0.389355 0.119615 -vt 0.389355 0.018813 -vt 0.243991 0.335751 -vt 0.246078 0.369705 -vt 0.275064 0.330321 -vt 0.252421 0.298907 -vt 0.275116 0.330356 -vt 0.244051 0.335934 -vt 0.246192 0.369866 -vt 0.278506 0.371699 -vt 0.255877 0.406248 -vt 0.244051 0.481199 -vt 0.226791 0.437985 -vt 0.244051 0.437985 -vt 0.150989 0.178032 -vt 0.194395 0.128706 -vt 0.194395 0.018352 -vt 0.237608 0.018352 -vt 0.194395 0.031562 -vt 0.237608 0.031562 -vt 0.244744 0.044028 -vt 0.244744 0.056041 -vt 0.237608 0.068846 -vt 0.187260 0.056173 -vt 0.187260 0.044160 -vt 0.194395 0.068846 -vt 0.241962 0.093665 -vt 0.241962 0.102774 -vt 0.190042 0.102906 -vt 0.190042 0.093797 -vt 0.395586 0.178032 -vt 0.014470 0.149002 -vt 0.054613 0.579282 -vt 0.022097 0.579589 -vt 0.066620 0.140727 -vt 0.072218 0.135325 -vt 0.356499 0.246980 -vt 0.443465 0.099671 -vt 0.433400 0.210690 -vt 0.471476 0.094183 -vt 0.456341 0.143787 -vt 0.407763 0.260852 -vt 0.398402 0.276971 -vt 0.390252 0.298924 -vt 0.391156 0.326394 -vt 0.364541 0.338678 -vt 0.344885 0.348510 -vt 0.267887 0.196031 -vt 0.278108 0.210100 -vt 0.272278 0.213559 -vt 0.283524 0.222603 -vt 0.274257 0.237995 -vt 0.322365 0.363503 -vt 0.305026 0.380279 -vt 0.252889 0.186910 -vt 0.262384 0.200164 -vt 0.271393 0.428457 -vt 0.206113 0.428467 -vt 0.175785 0.407489 -vt 0.249506 0.193155 -vt 0.275676 0.226164 -vt 0.193774 0.297327 -vt 0.199154 0.268291 -vt 0.347835 0.481199 -vt 0.471677 0.094230 -vt 0.443665 0.099691 -vt 0.456496 0.143819 -vt 0.356562 0.246916 -vt 0.433493 0.210699 -vt 0.283614 0.222464 -vt 0.278212 0.209955 -vt 0.272378 0.213407 -vt 0.268007 0.195875 -vt 0.253020 0.186738 -vt 0.262499 0.200002 -vt 0.407809 0.260835 -vt 0.398434 0.276945 -vt 0.390263 0.298890 -vt 0.274330 0.237845 -vt 0.364518 0.338619 -vt 0.391142 0.326361 -vt 0.344854 0.348432 -vt 0.249629 0.192979 -vt 0.275762 0.226016 -vt 0.265530 0.252980 -vt 0.322320 0.363406 -vt 0.173251 0.421067 -vt 0.205929 0.428299 -vt 0.175622 0.407277 -vt 0.271272 0.428353 -vt 0.247754 0.266183 -vt 0.199195 0.268058 -vt 0.193783 0.297091 -vt 0.170540 0.481199 -vt 0.225914 0.187076 -vt 0.228912 0.193503 -vt 0.199895 0.191746 -vt 0.206028 0.196086 -vt 0.157686 0.258627 -vt 0.169596 0.225253 -vt 0.177851 0.243385 -vt 0.106758 0.258651 -vt 0.143323 0.296417 -vt 0.143126 0.305374 -vt 0.184116 0.256688 -vt 0.302377 0.110423 -vt 0.302377 0.119336 -vt 0.259164 0.110469 -vt 0.259163 0.119336 -vt 0.306730 0.078591 -vt 0.306730 0.087700 -vt 0.254810 0.087568 -vt 0.254810 0.078459 -vt 0.302377 0.068822 -vt 0.183531 0.123939 -vt 0.140317 0.123939 -vt 0.140317 0.066473 -vt 0.316528 0.090821 -vt 0.091413 0.015750 -vt 0.134626 0.015750 -vt 0.134626 0.091454 -vt 0.106775 0.258282 -vt 0.143314 0.296134 -vt 0.143108 0.305052 -vt 0.157734 0.258343 -vt 0.184169 0.256437 -vt 0.169686 0.224983 -vt 0.177919 0.243125 -vt 0.226046 0.186873 -vt 0.200022 0.191514 -vt 0.206150 0.195860 -vt 0.229036 0.193303 -vt 0.142898 0.329338 -vt 0.142852 0.329212 -vt 0.141690 0.349257 -vt 0.141520 0.364833 -vt 0.252028 0.040835 -vt 0.259164 0.016377 -vt 0.252028 0.028822 -vt 0.309512 0.028954 -vt 0.309512 0.040967 -vt 0.419487 0.090821 -vn 1.0000 -0.0000 0.0000 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.9761 0.2173 -vn 0.0000 0.9056 0.4242 -vn 0.0000 0.2225 -0.9749 -vn -0.0420 0.7668 -0.6405 -vn 0.0382 0.7683 -0.6390 -vn 0.0000 -1.0000 0.0061 -vn 0.0199 0.9997 0.0174 -vn 0.0205 0.9890 0.1463 -vn -0.0199 0.9997 0.0174 -vn -0.0000 0.9809 0.1946 -vn 0.0000 0.9155 -0.4023 -vn -0.0000 0.4940 -0.8694 -vn -0.0186 0.7451 -0.6667 -vn 0.0187 0.7735 -0.6336 -vn -0.0206 0.9890 0.1463 -vn 0.0000 -0.4751 -0.8800 -vn 0.0000 -0.5642 -0.8256 -vn 0.0000 -0.1223 -0.9925 -vn 0.0000 0.3628 -0.9319 -vn 0.0000 0.7269 -0.6868 -vn 0.0000 0.8575 -0.5145 -vn 0.0000 -0.5913 -0.8064 -vn 0.0000 -0.8388 0.5445 -vn 0.0000 -0.9531 0.3026 -vn 0.0000 -0.4458 0.8952 -vn 0.0000 -0.0834 0.9965 -vn 0.0000 0.0303 0.9995 -vn 0.0000 -0.9165 0.3999 -vn 0.0000 0.6768 0.7362 -vn 0.0000 0.9810 -0.1943 -vn 0.0000 -0.5914 -0.8064 -vn -0.9292 -0.3696 -0.0000 -vn -0.9658 -0.2592 -0.0000 -vn -0.9821 -0.1882 0.0000 -vn 0.0000 -0.7788 -0.6273 -vn 0.0000 -0.6466 -0.7629 -vn 0.9658 -0.2592 -0.0000 -vn 0.9292 -0.3696 -0.0000 -vn 0.9821 -0.1882 0.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.9538 -0.3003 -0.0000 -vn 0.9151 -0.4033 -0.0000 -vn 0.0000 -0.4649 -0.8854 -vn -0.9538 -0.3003 -0.0000 -vn -0.9151 -0.4033 -0.0000 -vn 0.0797 -0.9968 -0.0000 -vn -0.0777 -0.9970 -0.0000 -vn -0.0797 -0.9968 -0.0000 -vn 0.0000 -0.4649 -0.8853 -vn -0.4332 -0.9013 -0.0000 -vn -0.4666 -0.8845 -0.0000 -vn 0.4332 -0.9013 -0.0000 -vn 0.0777 -0.9970 -0.0000 -vn 0.4666 -0.8845 -0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.5000 -0.8660 -0.0000 -vn 0.8660 -0.5000 -0.0000 -vn 0.8801 0.4747 0.0000 -vn -0.5493 0.8356 0.0000 -vn -0.8801 0.4747 0.0000 -vn -0.8660 -0.5000 -0.0000 -vn -0.5000 -0.8660 -0.0000 -vn 0.5493 0.8356 0.0000 -vn -0.8660 0.5000 0.0000 -vn 0.8660 0.5000 0.0000 -vn 0.1301 0.6195 0.7741 -vn -0.1301 0.4620 0.8773 -vn 0.1301 0.4620 0.8773 -vn -0.0000 0.5645 -0.8254 -vn -0.0000 0.8133 -0.5819 -vn 0.0000 -1.0000 -0.0000 -vn 0.1295 0.0940 -0.9871 -vn -0.1323 -0.0052 -0.9912 -vn 0.1322 -0.0052 -0.9912 -vn -0.1340 -0.2621 -0.9557 -vn 0.1340 -0.2621 -0.9557 -vn -0.1365 -0.6074 -0.7826 -vn 0.1365 -0.6074 -0.7826 -vn -0.1352 -0.8771 -0.4608 -vn 0.1352 -0.8771 -0.4608 -vn -0.0808 -0.9622 -0.2603 -vn 0.0808 -0.9622 -0.2603 -vn 0.7746 -0.6264 -0.0870 -vn 0.9945 -0.0968 -0.0405 -vn 0.8887 -0.4230 -0.1767 -vn -0.0000 -0.5480 -0.8365 -vn -0.0000 0.8992 -0.4375 -vn 0.8698 0.1565 0.4679 -vn 0.9938 0.0274 0.1074 -vn 0.9228 0.0804 0.3768 -vn 0.0986 0.3350 0.9370 -vn -0.1326 0.3486 0.9278 -vn 0.1326 0.3486 0.9278 -vn -0.1335 0.5772 0.8056 -vn 0.1335 0.5772 0.8056 -vn -0.1301 0.6195 0.7741 -vn -0.9228 0.0804 0.3768 -vn -0.8698 0.1565 0.4679 -vn -0.7544 0.1070 0.6477 -vn 0.1301 0.3290 0.9353 -vn -0.1273 0.2812 0.9512 -vn 0.1273 0.2812 0.9512 -vn 0.4948 0.4049 0.7689 -vn 0.4968 0.2880 0.8187 -vn 0.8601 0.2377 0.4514 -vn 0.8626 0.1679 0.4771 -vn 0.9905 0.0642 0.1218 -vn 0.4781 0.2490 0.8423 -vn 0.8441 0.1520 0.5141 -vn 0.9881 0.0437 0.1477 -vn 0.9909 0.0446 0.1269 -vn 0.4931 0.0825 -0.8661 -vn 0.5089 -0.0045 -0.8608 -vn 0.8591 0.0485 -0.5095 -vn 0.8741 -0.0026 -0.4858 -vn 0.9904 0.0131 -0.1377 -vn 0.5163 -0.2265 -0.8259 -vn 0.8799 -0.1257 -0.4583 -vn 0.9926 -0.0006 -0.1217 -vn 0.5261 -0.5214 -0.6718 -vn 0.8869 -0.2832 -0.3649 -vn 0.9933 -0.0306 -0.1117 -vn 0.5029 -0.7822 -0.3678 -vn 0.9941 -0.0667 -0.0860 -vn -0.9945 -0.0968 -0.0405 -vn -0.7747 -0.6264 -0.0870 -vn -0.8887 -0.4230 -0.1767 -vn 0.5105 0.3024 0.8049 -vn 0.3336 0.5327 0.7778 -vn 0.7543 0.1069 0.6477 -vn 0.0001 0.8288 0.5595 -vn -0.0001 0.8288 0.5595 -vn -0.0000 0.8185 0.5745 -vn 0.5145 0.4994 0.6971 -vn 0.8785 0.2783 0.3884 -vn 0.4948 0.5430 0.6785 -vn 0.8601 0.3187 0.3982 -vn 0.9905 0.0860 0.1075 -vn 0.9931 0.0683 0.0953 -vn -0.9905 0.0642 0.1219 -vn -0.8626 0.1679 0.4771 -vn -0.8601 0.2377 0.4514 -vn -0.4968 0.2880 0.8187 -vn -0.4948 0.4049 0.7689 -vn -0.1301 0.3290 0.9353 -vn -0.9881 0.0437 0.1477 -vn -0.9909 0.0446 0.1269 -vn -0.8441 0.1520 0.5141 -vn -0.4781 0.2490 0.8423 -vn -0.9904 0.0131 -0.1377 -vn -0.8741 -0.0026 -0.4858 -vn -0.8591 0.0485 -0.5095 -vn -0.5089 -0.0045 -0.8608 -vn -0.4931 0.0825 -0.8661 -vn -0.1295 0.0940 -0.9871 -vn -0.9926 -0.0006 -0.1217 -vn -0.8799 -0.1257 -0.4583 -vn -0.5163 -0.2265 -0.8259 -vn -0.9933 -0.0306 -0.1117 -vn -0.8869 -0.2832 -0.3649 -vn -0.5261 -0.5214 -0.6718 -vn -0.9941 -0.0667 -0.0860 -vn -0.5029 -0.7822 -0.3678 -vn -0.3318 -0.9223 -0.1983 -vn 0.3318 -0.9223 -0.1983 -vn 0.4610 -0.8818 -0.0993 -vn -0.3336 0.5327 0.7778 -vn -0.5105 0.3024 0.8049 -vn -0.0986 0.3350 0.9370 -vn -0.9938 0.0274 0.1074 -vn -0.8785 0.2782 0.3884 -vn -0.5145 0.4994 0.6971 -vn -0.9905 0.0860 0.1075 -vn -0.9931 0.0682 0.0953 -vn -0.8601 0.3187 0.3982 -vn -0.4948 0.5430 0.6785 -vn 0.7184 0.6547 -0.2351 -vn 0.7258 0.6612 -0.1896 -vn 0.7397 0.6729 0.0012 -vn -0.7258 0.6612 -0.1896 -vn -0.7184 0.6547 -0.2351 -vn -0.7397 0.6729 0.0012 -vn 0.7127 0.3923 -0.5816 -vn 0.7116 0.2849 -0.6423 -vn 0.7115 0.2849 -0.6424 -vn 0.7070 0.5751 -0.4116 -vn 0.7123 0.4004 -0.5764 -vn 0.7070 0.5751 -0.4115 -vn -0.7124 0.4004 -0.5764 -vn -0.7070 0.5751 -0.4116 -vn -0.7127 0.3923 -0.5816 -vn -0.7070 0.5751 -0.4115 -vn -0.5760 -0.6122 -0.5417 -vn -0.5677 -0.6176 -0.5443 -vn -0.5896 -0.6030 -0.5373 -vn -0.7116 0.2849 -0.6423 -vn -0.7115 0.2849 -0.6424 -vn 0.5759 -0.6122 -0.5417 -vn 0.5677 -0.6176 -0.5443 -vn 0.5579 -0.6239 -0.5472 -vn 0.0000 0.4061 -0.9138 -vn 0.9813 -0.1926 -0.0011 -vn 0.7426 -0.0035 0.6698 -vn -0.7427 -0.0034 0.6697 -vn -0.9813 -0.1925 -0.0011 -vn 0.0001 0.8185 0.5745 -vn 0.0003 0.8185 0.5746 -vn -0.4610 -0.8818 -0.0993 -vn -0.5579 -0.6239 -0.5472 -vn 0.5896 -0.6030 -0.5373 -vn 0.0000 0.2108 0.9775 -vn 0.0000 0.4723 0.8814 -vn 0.0000 0.6194 0.7851 -vn 0.0000 0.6889 0.7248 -vn 0.0000 0.8100 0.5864 -vn 0.0000 0.8877 0.4603 -vn 0.0000 0.4372 0.8994 -vn 0.0000 0.3563 0.9344 -vn 0.0000 0.0622 -0.9981 -vn 0.0000 -0.3276 -0.9448 -vn 0.0000 0.3403 0.9403 -vn 0.0000 -0.5438 -0.8392 -vn 0.0000 -0.9411 0.3382 -vn 0.0000 -0.3867 0.9222 -vn 0.0000 -0.4862 0.8739 -vn 0.0000 -0.5780 -0.8160 -vn 0.0000 0.9933 -0.1158 -vn 0.0000 0.9943 -0.1065 -vn 0.0000 0.9998 0.0187 -vn 0.0000 0.5230 0.8523 -vn 0.0000 0.0182 0.9998 -vn 0.0000 0.9338 0.3578 -vn 0.0000 -0.7290 0.6845 -vn 0.0000 -0.9616 0.2745 -vn 0.0000 -0.4386 -0.8987 -vn 0.0000 -0.3274 -0.9449 -vn 0.0000 -0.9962 -0.0866 -vn 0.0000 -0.9120 -0.4103 -vn 0.0000 -0.6722 -0.7404 -vn 0.0000 -0.9995 -0.0317 -vn 0.7080 0.3088 0.6351 -vn 0.7072 0.3698 0.6026 -vn -0.7080 0.3088 0.6351 -vn -0.7072 0.3698 0.6026 -vn 0.7072 0.2520 0.6606 -vn 0.7071 0.2406 0.6649 -vn 0.7072 0.2519 0.6607 -vn -0.7071 0.2406 0.6649 -vn -0.7072 0.2520 0.6606 -vn -0.7072 0.2519 0.6607 -vn 0.7084 0.3334 0.6221 -vn 0.7138 0.1476 0.6846 -vn -0.7084 0.3333 0.6221 -vn -0.7138 0.1476 0.6846 -vn 0.7071 0.0129 0.7070 -vn -0.7071 0.0129 0.7070 -vn -0.0000 0.9524 0.3048 -vn 0.0000 -0.2132 0.9770 -vn 0.0000 -0.6337 0.7736 -vn 0.0000 0.9308 0.3656 -vn 0.0000 0.9982 0.0595 -vn 0.0000 0.6570 0.7539 -vn 0.0000 0.2580 0.9661 -vn 0.0000 0.7484 -0.6633 -vn 0.0000 0.9693 -0.2458 -vn 0.9853 0.1709 0.0000 -vn 0.9664 0.2570 0.0001 -vn 0.0000 -0.9442 -0.3293 -vn 0.0000 -0.9989 -0.0474 -vn 0.0000 0.4264 -0.9045 -vn 0.0000 -0.7977 0.6030 -vn 0.9757 -0.2189 0.0000 -vn 0.9625 -0.2713 0.0001 -vn -0.9751 -0.2217 0.0000 -vn -0.9616 -0.2746 0.0001 -vn -0.9752 -0.2212 0.0001 -vn 0.9664 0.2571 0.0001 -vn -0.9855 0.1695 0.0000 -vn 0.9663 0.2574 0.0000 -vn 0.9679 -0.2515 0.0000 -vn 0.9758 -0.2185 0.0001 -vn 0.9776 0.2106 0.0000 -vn -0.9670 0.2549 0.0001 -vn -0.9670 0.2548 0.0001 -vn -0.9673 -0.2536 0.0000 -vn -0.9669 0.2552 0.0000 -vn -0.9781 0.2081 0.0000 -vn 0.5733 0.2131 0.7912 -vn 0.5789 -0.1967 0.7913 -vn 0.5756 0.1979 0.7934 -vn 0.5053 0.4828 0.7152 -vn 0.5758 -0.2183 0.7879 -vn 0.5109 -0.4883 0.7075 -vn -0.5122 -0.4895 0.7058 -vn -0.5766 -0.2205 0.7867 -vn -0.5804 -0.1975 0.7900 -vn -0.5771 0.1993 0.7920 -vn -0.5746 0.2114 0.7907 -vn -0.5052 0.4828 0.7153 -vn 0.0000 -0.6762 -0.7367 -s 1 -f 331/675/160 332/676/160 333/677/160 -f 334/678/160 335/679/160 336/680/160 -f 337/681/161 338/682/161 339/683/161 -f 340/684/161 341/685/161 342/686/161 -f 343/687/162 339/688/163 344/689/163 -f 331/690/164 345/691/165 332/692/166 -f 344/693/167 338/694/167 331/690/167 -f 333/695/168 346/696/162 343/687/162 -f 335/697/169 337/698/170 333/695/168 -f 334/699/171 347/700/172 342/701/171 -f 348/702/173 347/700/172 349/703/172 -f 348/702/173 340/704/174 350/705/173 -f 335/697/169 332/706/166 336/707/175 -f 341/708/176 345/709/165 337/698/170 -f 341/710/176 334/699/171 342/701/171 -f 336/707/175 345/709/165 340/711/174 -f 333/677/160 343/712/160 344/713/160 -f 344/713/160 331/675/160 333/677/160 -f 336/680/160 348/714/160 334/678/160 -f 348/714/160 349/715/160 334/678/160 -f 339/683/161 346/716/161 337/681/161 -f 337/681/161 345/717/161 338/682/161 -f 347/718/161 350/719/161 342/686/161 -f 350/719/161 340/684/161 342/686/161 -f 343/687/162 346/696/162 339/688/163 -f 331/690/164 338/694/164 345/691/165 -f 344/693/167 339/720/167 338/694/167 -f 333/695/168 337/698/170 346/696/162 -f 335/697/169 341/708/176 337/698/170 -f 334/699/171 349/703/172 347/700/172 -f 348/702/173 350/705/173 347/700/172 -f 348/702/173 336/721/175 340/704/174 -f 335/697/169 333/695/168 332/706/166 -f 341/708/176 340/711/174 345/709/165 -f 341/710/176 335/722/169 334/699/171 -f 336/707/175 332/706/166 345/709/165 -f 351/723/160 352/724/160 353/725/160 -f 354/726/161 355/727/161 356/728/161 -f 352/729/177 357/730/178 358/731/178 -f 351/732/179 359/733/177 352/729/177 -f 360/734/180 361/735/179 351/732/179 -f 362/736/181 354/737/180 360/734/180 -f 363/738/182 355/739/181 362/736/181 -f 364/740/183 365/741/183 363/742/183 -f 366/743/184 367/744/185 364/740/185 -f 368/745/186 369/746/184 366/743/184 -f 370/747/187 356/748/186 368/745/186 -f 353/749/188 371/750/187 370/747/187 -f 372/751/189 373/752/189 353/749/189 -f 374/753/190 375/754/190 372/755/190 -f 358/731/191 376/756/191 374/753/191 -f 358/757/160 374/758/160 352/724/160 -f 374/758/160 372/759/160 353/725/160 -f 353/725/160 370/760/160 351/723/160 -f 370/760/160 368/761/160 351/723/160 -f 351/723/160 368/761/160 360/762/160 -f 374/758/160 353/725/160 352/724/160 -f 368/761/160 366/763/160 362/764/160 -f 360/762/160 368/761/160 362/764/160 -f 366/763/160 364/765/160 362/764/160 -f 364/765/160 363/766/160 362/764/160 -f 375/767/161 376/768/161 373/769/161 -f 376/768/161 357/770/161 359/771/161 -f 376/768/161 359/771/161 373/769/161 -f 356/728/161 371/772/161 361/773/161 -f 371/772/161 373/769/161 361/773/161 -f 373/769/161 359/771/161 361/773/161 -f 369/774/161 356/728/161 355/727/161 -f 365/775/161 367/776/161 355/727/161 -f 367/776/161 369/774/161 355/727/161 -f 356/728/161 361/773/161 354/726/161 -f 352/729/177 359/733/177 357/730/178 -f 351/732/179 361/735/179 359/733/177 -f 360/734/180 354/737/180 361/735/179 -f 362/736/181 355/739/181 354/737/180 -f 363/738/182 365/777/182 355/739/181 -f 364/740/183 367/744/192 365/741/183 -f 366/743/184 369/746/184 367/744/185 -f 368/745/186 356/748/186 369/746/184 -f 370/747/187 371/750/187 356/748/186 -f 353/749/188 373/752/188 371/750/187 -f 372/751/189 375/778/189 373/752/189 -f 374/753/190 376/756/190 375/754/190 -f 358/731/191 357/730/191 376/756/191 -f 377/779/193 378/780/194 379/781/195 -f 380/782/196 381/783/197 378/784/197 -f 381/785/198 382/786/199 383/787/200 -f 382/788/201 379/789/201 383/790/201 -f 384/791/201 385/792/201 386/793/201 -f 380/794/202 382/786/202 387/795/202 -f 383/790/201 384/791/201 388/796/201 -f 389/797/203 383/787/200 388/798/204 -f 378/784/197 389/799/205 390/800/205 -f 379/781/195 390/801/206 384/802/207 -f 391/803/208 386/804/209 392/805/210 -f 389/799/205 393/806/211 391/807/205 -f 392/808/210 385/809/212 394/810/213 -f 394/810/213 384/802/207 390/801/206 -f 391/803/208 395/811/214 396/812/215 -f 393/813/216 388/798/204 395/811/214 -f 377/779/193 380/794/193 378/780/194 -f 380/782/196 387/814/196 381/783/197 -f 381/785/198 387/795/199 382/786/199 -f 382/788/201 377/815/201 379/789/201 -f 386/793/201 396/816/201 388/796/201 -f 396/816/201 395/817/201 388/796/201 -f 388/796/201 384/791/201 386/793/201 -f 380/794/202 377/779/202 382/786/202 -f 383/790/201 379/789/201 384/791/201 -f 389/797/203 381/785/198 383/787/200 -f 378/784/197 381/783/197 389/799/205 -f 379/781/195 378/780/194 390/801/206 -f 391/803/208 396/812/215 386/804/209 -f 391/807/205 392/818/205 390/800/205 -f 392/818/205 394/819/211 390/800/205 -f 390/800/205 389/799/205 391/807/205 -f 392/808/210 386/820/209 385/809/212 -f 394/810/213 385/809/212 384/802/207 -f 391/803/208 393/813/216 395/811/214 -f 393/813/216 389/797/203 388/798/204 -f 397/821/217 398/822/217 399/823/217 -f 400/824/218 401/825/219 402/826/218 -f 403/827/219 404/828/220 401/829/219 -f 405/830/221 406/831/222 407/832/221 -f 408/833/217 409/834/217 405/835/217 -f 410/836/222 411/837/223 406/831/222 -f 411/837/223 400/824/224 402/826/224 -f 412/838/220 413/839/225 404/828/220 -f 414/840/160 415/841/160 413/839/160 -f 407/842/201 406/843/201 411/844/201 -f 416/845/202 417/846/202 418/847/202 -f 407/832/161 418/847/161 405/830/161 -f 413/848/201 416/849/201 407/842/201 -f 405/835/217 417/850/217 414/851/217 -f 399/852/224 408/853/224 419/854/224 -f 420/855/226 419/854/161 421/856/226 -f 422/857/217 400/858/217 423/859/217 -f 422/860/202 420/855/226 421/856/226 -f 424/861/227 422/862/202 425/863/227 -f 397/864/160 425/863/227 409/865/160 -f 408/853/218 397/864/218 409/865/218 -f 399/823/217 420/866/217 397/821/217 -f 420/866/217 426/867/217 397/821/217 -f 426/867/217 424/868/217 397/821/217 -f 400/824/218 403/869/219 401/825/219 -f 403/827/219 412/838/220 404/828/220 -f 405/830/221 410/836/222 406/831/222 -f 412/870/217 403/871/217 421/872/217 -f 412/870/217 421/872/217 419/873/217 -f 405/835/217 414/851/217 408/833/217 -f 414/851/217 412/870/217 419/873/217 -f 408/833/217 414/851/217 419/873/217 -f 409/834/217 410/874/217 405/835/217 -f 410/836/222 423/875/223 411/837/223 -f 411/837/223 423/875/223 400/824/224 -f 412/838/220 414/840/225 413/839/225 -f 414/840/160 417/846/160 415/841/160 -f 411/844/201 402/876/201 407/842/201 -f 402/876/201 401/877/201 413/848/201 -f 401/877/201 404/878/201 413/848/201 -f 413/848/201 407/842/201 402/876/201 -f 416/845/202 415/841/202 417/846/202 -f 407/832/161 416/845/161 418/847/161 -f 413/848/201 415/879/201 416/849/201 -f 405/835/217 418/880/217 417/850/217 -f 399/852/224 398/881/224 408/853/224 -f 420/855/226 399/852/161 419/854/161 -f 423/859/217 410/874/217 425/882/217 -f 410/874/217 409/834/217 425/882/217 -f 421/872/217 403/871/217 422/857/217 -f 403/871/217 400/858/217 422/857/217 -f 423/859/217 425/882/217 422/857/217 -f 422/860/202 426/883/202 420/855/226 -f 424/861/227 426/884/202 422/862/202 -f 397/864/160 424/861/227 425/863/227 -f 408/853/218 398/881/218 397/864/218 -f 427/885/228 428/886/229 429/887/230 -f 430/888/231 431/889/232 432/890/232 -f 433/891/233 434/892/233 435/893/233 -f 436/894/234 437/895/235 438/896/236 -f 438/896/236 439/897/237 440/898/238 -f 440/898/238 441/899/239 442/900/240 -f 442/900/240 443/901/241 444/902/242 -f 444/902/242 445/903/243 446/904/244 -f 447/905/245 448/906/246 449/907/247 -f 450/908/248 451/909/248 452/910/248 -f 432/890/232 453/911/249 454/912/249 -f 455/913/250 456/914/251 457/915/252 -f 458/916/253 459/917/254 460/918/255 -f 460/918/255 461/919/256 462/920/257 -f 462/920/257 463/921/258 427/885/228 -f 464/922/259 465/923/260 466/924/261 -f 467/925/262 468/926/263 469/927/264 -f 467/925/262 470/928/265 429/887/230 -f 471/929/266 472/930/267 470/928/265 -f 473/931/268 474/932/269 472/930/267 -f 467/925/262 475/933/270 471/929/266 -f 471/929/266 476/934/271 473/931/268 -f 473/931/268 477/935/272 478/936/273 -f 438/896/236 479/937/274 436/894/234 -f 480/938/275 481/939/276 479/937/274 -f 482/940/277 483/941/278 481/939/276 -f 440/898/238 480/938/275 438/896/236 -f 484/942/279 482/940/277 480/938/275 -f 485/943/280 486/944/281 482/940/277 -f 442/900/240 484/942/279 440/898/238 -f 487/945/282 485/943/280 484/942/279 -f 488/946/283 489/947/284 485/943/280 -f 442/900/240 490/948/285 487/945/282 -f 487/945/282 449/907/247 488/946/283 -f 488/946/283 448/906/246 491/949/286 -f 446/904/244 490/948/285 444/902/242 -f 492/950/287 493/951/288 494/952/289 -f 483/953/278 486/954/281 478/955/273 -f 458/916/253 495/956/290 496/957/291 -f 496/957/291 455/913/250 497/958/292 -f 466/924/293 497/958/294 454/959/295 -f 462/920/257 495/956/290 460/918/255 -f 498/960/296 455/913/250 495/956/290 -f 499/961/297 456/914/251 455/913/250 -f 462/920/257 500/962/298 498/960/296 -f 498/960/296 501/963/299 499/961/297 -f 499/961/297 502/964/300 503/965/301 -f 427/885/228 470/928/265 500/962/298 -f 500/962/298 472/930/267 501/963/299 -f 501/963/299 474/932/269 502/964/300 -f 504/966/302 505/967/303 506/968/304 -f 506/968/304 507/969/305 508/970/306 -f 508/970/306 509/971/307 428/886/229 -f 510/972/308 505/967/303 511/973/309 -f 512/974/310 507/969/305 505/967/303 -f 513/975/311 509/971/307 507/969/305 -f 514/976/312 515/977/313 433/978/314 -f 433/978/314 516/979/315 434/980/316 -f 434/980/316 437/895/235 435/981/317 -f 517/982/318 518/983/319 515/977/313 -f 515/977/313 519/984/320 516/979/315 -f 516/979/315 439/897/237 437/895/235 -f 520/985/321 521/986/322 518/983/319 -f 518/983/319 522/987/323 519/984/320 -f 519/984/320 441/899/239 439/897/237 -f 492/950/287 521/986/322 523/988/324 -f 494/952/289 522/987/323 521/986/322 -f 524/989/325 441/899/239 522/987/323 -f 493/951/288 450/990/326 524/989/325 -f 524/989/325 445/903/243 443/901/241 -f 525/991/327 526/992/328 447/905/245 -f 465/923/260 527/993/329 466/924/261 -f 528/994/330 529/995/331 527/993/329 -f 530/996/332 531/997/333 465/923/260 -f 465/923/260 532/998/334 528/994/330 -f 528/994/330 461/919/256 459/917/254 -f 533/999/335 531/997/333 534/1000/336 -f 535/1001/337 532/998/334 531/997/333 -f 536/1002/338 461/919/256 532/998/334 -f 504/966/302 535/1001/337 533/999/335 -f 506/968/304 536/1002/338 535/1001/337 -f 508/970/306 463/921/258 536/1002/338 -f 534/1003/336 492/1004/287 523/1005/324 -f 466/924/293 496/957/291 497/958/294 -f 527/993/329 458/916/253 496/957/291 -f 429/887/230 509/971/307 467/925/262 -f 457/1006/339 454/912/340 537/1007/341 -f 453/911/342 464/1008/343 538/1009/344 -f 430/888/345 539/1010/346 540/1011/347 -f 432/890/348 541/1012/349 430/888/345 -f 432/890/348 457/1006/339 542/1013/350 -f 543/1014/351 431/889/352 544/1015/353 -f 464/1008/343 431/889/352 545/1016/354 -f 452/910/355 493/1017/356 546/1018/357 -f 546/1018/358 544/1015/353 452/910/359 -f 540/1011/360 447/1019/361 526/1020/362 -f 540/1011/363 544/1015/231 430/888/231 -f 427/885/228 463/921/258 428/886/229 -f 430/888/231 544/1015/231 431/889/232 -f 435/893/233 436/1021/233 483/1022/233 -f 436/1021/233 479/1023/233 481/1024/233 -f 483/1022/233 436/1021/233 481/1024/233 -f 483/1022/233 477/1025/233 510/1026/233 -f 477/1025/233 476/1027/233 469/1028/233 -f 510/1026/233 477/1025/233 469/1028/233 -f 476/1027/233 475/1029/233 469/1028/233 -f 469/1028/233 468/1030/233 510/1026/233 -f 468/1030/233 513/1031/233 512/1032/233 -f 510/1026/233 468/1030/233 512/1032/233 -f 510/1026/233 514/1033/233 483/1022/233 -f 514/1033/233 433/891/233 435/893/233 -f 483/1022/233 514/1033/233 435/893/233 -f 436/894/234 435/981/317 437/895/235 -f 438/896/236 437/895/235 439/897/237 -f 440/898/238 439/897/237 441/899/239 -f 442/900/240 441/899/239 443/901/241 -f 444/902/242 443/901/241 445/903/243 -f 447/905/245 539/1034/364 448/906/246 -f 452/910/248 540/1011/248 446/1035/248 -f 540/1011/248 526/1020/248 525/1036/248 -f 446/1035/248 540/1011/248 525/1036/248 -f 446/1035/248 445/1037/248 452/910/248 -f 445/1037/248 450/908/248 452/910/248 -f 432/890/232 431/889/232 453/911/249 -f 537/1038/365 497/958/292 457/915/252 -f 497/958/292 455/913/250 457/915/252 -f 458/916/253 529/995/331 459/917/254 -f 460/918/255 459/917/254 461/919/256 -f 462/920/257 461/919/256 463/921/258 -f 466/924/261 538/1039/366 464/922/259 -f 464/922/259 530/996/332 465/923/260 -f 467/925/262 509/971/307 468/926/263 -f 467/925/262 471/929/266 470/928/265 -f 471/929/266 473/931/268 472/930/267 -f 473/931/268 478/936/273 474/932/269 -f 467/925/262 469/927/264 475/933/270 -f 471/929/266 475/933/270 476/934/271 -f 473/931/268 476/934/271 477/935/272 -f 438/896/236 480/938/275 479/937/274 -f 480/938/275 482/940/277 481/939/276 -f 482/940/277 486/944/281 483/941/278 -f 440/898/238 484/942/279 480/938/275 -f 484/942/279 485/943/280 482/940/277 -f 485/943/280 489/947/284 486/944/281 -f 442/900/240 487/945/282 484/942/279 -f 487/945/282 488/946/283 485/943/280 -f 488/946/283 491/949/286 489/947/284 -f 442/900/240 444/902/242 490/948/285 -f 487/945/282 490/948/285 449/907/247 -f 488/946/283 449/907/247 448/906/246 -f 446/904/244 525/991/327 490/948/285 -f 492/950/287 546/1040/367 493/951/288 -f 542/1041/160 457/1042/252 456/1043/251 -f 503/1044/301 502/1045/300 491/1046/286 -f 502/1045/300 474/1047/269 491/1046/286 -f 491/1046/286 474/1047/269 489/1048/284 -f 542/1041/160 456/1043/251 541/1049/160 -f 456/1043/251 503/1044/301 448/1050/246 -f 539/1051/364 541/1049/160 448/1050/246 -f 448/1050/246 541/1049/160 456/1043/251 -f 474/1047/269 478/955/273 489/1048/284 -f 491/1046/286 448/1050/246 503/1044/301 -f 478/955/273 477/1052/272 483/953/278 -f 489/1048/284 478/955/273 486/954/281 -f 458/916/253 460/918/255 495/956/290 -f 496/957/291 495/956/290 455/913/250 -f 497/958/294 537/1038/368 454/959/295 -f 454/959/295 453/1053/295 466/924/293 -f 453/1053/295 538/1039/369 466/924/293 -f 462/920/257 498/960/296 495/956/290 -f 498/960/296 499/961/297 455/913/250 -f 499/961/297 503/965/301 456/914/251 -f 462/920/257 427/885/228 500/962/298 -f 498/960/296 500/962/298 501/963/299 -f 499/961/297 501/963/299 502/964/300 -f 427/885/228 429/887/230 470/928/265 -f 500/962/298 470/928/265 472/930/267 -f 501/963/299 472/930/267 474/932/269 -f 504/966/302 511/973/309 505/967/303 -f 506/968/304 505/967/303 507/969/305 -f 508/970/306 507/969/305 509/971/307 -f 510/972/308 512/974/310 505/967/303 -f 512/974/310 513/975/311 507/969/305 -f 513/975/311 468/926/263 509/971/307 -f 514/976/312 517/982/318 515/977/313 -f 433/978/314 515/977/313 516/979/315 -f 434/980/316 516/979/315 437/895/235 -f 517/982/318 520/985/321 518/983/319 -f 515/977/313 518/983/319 519/984/320 -f 516/979/315 519/984/320 439/897/237 -f 520/985/321 523/988/324 521/986/322 -f 518/983/319 521/986/322 522/987/323 -f 519/984/320 522/987/323 441/899/239 -f 492/950/287 494/952/289 521/986/322 -f 494/952/289 524/989/325 522/987/323 -f 524/989/325 443/901/241 441/899/239 -f 524/989/325 494/952/289 493/951/288 -f 493/951/288 451/1054/370 450/990/326 -f 524/989/325 450/990/326 445/903/243 -f 449/907/247 490/948/285 447/905/245 -f 490/948/285 525/991/327 447/905/245 -f 465/923/260 528/994/330 527/993/329 -f 528/994/330 459/917/254 529/995/331 -f 530/996/332 534/1000/336 531/997/333 -f 465/923/260 531/997/333 532/998/334 -f 528/994/330 532/998/334 461/919/256 -f 533/999/335 535/1001/337 531/997/333 -f 535/1001/337 536/1002/338 532/998/334 -f 536/1002/338 463/921/258 461/919/256 -f 504/966/302 506/968/304 535/1001/337 -f 506/968/304 508/970/306 536/1002/338 -f 508/970/306 428/886/229 463/921/258 -f 530/1055/332 464/1056/259 545/1057/161 -f 545/1057/161 543/1058/161 530/1055/332 -f 543/1058/161 546/1059/367 492/1004/287 -f 543/1058/161 492/1004/287 530/1055/332 -f 534/1003/336 530/1055/332 492/1004/287 -f 504/1060/302 533/1061/335 523/1005/324 -f 533/1061/335 534/1003/336 523/1005/324 -f 510/1062/308 511/1063/309 514/1064/312 -f 511/1063/309 504/1060/302 520/1065/321 -f 517/1066/318 514/1064/312 511/1063/309 -f 520/1065/321 517/1066/318 511/1063/309 -f 523/1005/324 520/1065/321 504/1060/302 -f 466/924/293 527/993/329 496/957/291 -f 527/993/329 529/995/331 458/916/253 -f 429/887/230 428/886/229 509/971/307 -f 430/888/345 541/1012/349 539/1010/346 -f 432/890/348 542/1013/350 541/1012/349 -f 432/890/348 454/912/340 457/1006/339 -f 543/1014/351 545/1016/354 431/889/352 -f 464/1008/343 453/911/342 431/889/352 -f 452/910/355 451/909/371 493/1017/356 -f 546/1018/358 543/1014/351 544/1015/353 -f 540/1011/360 539/1010/372 447/1019/361 -f 540/1011/363 452/910/363 544/1015/231 -f 547/1067/373 548/1068/374 549/1069/373 -f 550/1070/375 551/1071/376 552/1072/376 -f 553/1073/377 554/1074/378 555/1075/378 -f 556/1076/379 557/1077/380 558/1078/380 -f 559/1079/381 560/1080/382 561/1081/381 -f 558/1078/380 562/1082/383 563/1083/383 -f 564/1084/384 565/1085/384 566/1086/384 -f 566/1086/385 567/1087/385 568/1088/385 -f 568/1088/386 569/1089/387 570/1090/387 -f 571/1091/233 572/1092/233 573/1093/233 -f 573/1093/217 574/1094/217 575/1095/217 -f 575/1096/388 576/1097/388 577/1098/388 -f 578/1099/217 577/1098/217 579/1100/217 -f 580/1101/202 581/1102/389 582/1103/389 -f 582/1103/389 583/1104/390 584/1105/390 -f 584/1105/390 585/1106/391 550/1070/391 -f 548/1068/374 586/1107/392 587/1108/392 -f 551/1071/376 553/1073/377 552/1072/376 -f 588/1109/393 547/1067/373 549/1069/373 -f 554/1074/378 589/1110/394 555/1075/378 -f 586/1107/392 556/1076/379 587/1108/392 -f 569/1089/387 590/1111/395 570/1090/387 -f 591/1112/395 592/1113/396 590/1111/395 -f 593/1114/397 594/1115/398 571/1091/398 -f 595/1116/399 596/1117/400 597/1118/399 -f 598/1119/400 599/1120/401 596/1117/400 -f 600/1121/401 593/1114/397 599/1120/401 -f 601/1122/402 602/1123/402 603/1124/402 -f 604/1125/403 587/1108/404 556/1076/403 -f 605/1126/405 586/1107/406 606/1127/406 -f 558/1078/407 603/1128/408 607/1129/409 -f 601/1130/410 557/1077/411 608/1131/412 -f 609/1132/413 549/1069/414 548/1068/413 -f 610/1133/415 547/1067/416 611/1134/416 -f 588/1109/417 612/1135/414 613/1136/417 -f 548/1068/413 614/1137/404 609/1132/413 -f 611/1134/416 615/1138/418 616/1139/418 -f 606/1127/406 617/1140/415 610/1133/415 -f 558/1078/407 604/1125/403 556/1076/403 -f 605/1126/405 557/1077/411 618/1141/405 -f 619/1142/394 616/1143/419 615/1144/419 -f 620/1145/396 597/1118/399 592/1113/396 -f 621/1146/161 622/1147/161 623/1148/161 -f 624/1149/420 625/1150/421 626/1151/421 -f 627/1152/160 628/1153/160 552/1154/160 -f 629/1155/422 630/1156/423 631/1157/422 -f 632/1158/424 629/1155/422 631/1157/422 -f 633/1159/425 634/1160/424 632/1158/424 -f 635/1161/426 636/1162/427 637/1163/426 -f 636/1162/427 630/1156/423 638/1164/423 -f 639/1165/428 640/1166/429 580/1167/160 -f 634/1168/161 641/1169/161 600/1170/161 -f 622/1171/430 642/1172/431 643/1173/430 -f 644/1174/432 637/1163/426 645/1175/432 -f 561/1081/381 645/1175/432 559/1079/381 -f 641/1176/425 646/1177/420 624/1178/420 -f 625/1150/421 647/1179/433 626/1151/421 -f 648/1180/201 649/1181/201 650/1182/201 -f 651/1183/202 652/1184/202 653/1185/202 -f 654/1186/217 628/1187/217 655/1188/217 -f 656/1189/233 639/1190/233 657/1191/233 -f 599/1192/160 633/1193/160 632/1194/160 -f 649/1195/434 575/1196/160 577/1197/435 -f 574/1198/161 648/1199/436 576/1200/437 -f 648/1199/436 658/1201/438 576/1200/437 -f 639/1165/428 659/1202/439 640/1166/429 -f 656/1203/440 581/1204/161 660/1205/161 -f 661/1206/441 662/1207/442 659/1202/439 -f 663/1208/442 664/1209/442 662/1207/442 -f 665/1210/443 649/1195/434 577/1197/435 -f 666/1211/444 665/1210/443 667/1212/444 -f 578/1213/444 666/1211/444 667/1212/444 -f 668/1214/442 578/1213/444 664/1209/442 -f 669/1215/445 656/1203/440 670/1216/446 -f 671/1217/447 672/1218/448 669/1215/445 -f 673/1219/447 674/1220/447 671/1217/447 -f 668/1221/201 656/1222/201 675/1223/201 -f 676/1224/449 673/1219/447 579/1225/449 -f 677/1226/449 579/1225/449 678/1227/449 -f 658/1201/438 677/1226/449 678/1227/449 -f 679/1228/217 680/1229/217 681/1230/217 -f 680/1229/217 655/1188/217 681/1230/217 -f 627/1152/450 681/1231/451 655/1232/452 -f 628/1153/453 627/1152/450 655/1232/452 -f 681/1231/451 682/1233/454 679/1234/455 -f 621/1146/456 683/1235/457 680/1236/458 -f 654/1237/459 684/1238/460 685/1239/461 -f 680/1236/458 684/1238/460 654/1237/459 -f 686/1240/462 687/1241/382 623/1242/462 -f 623/1242/462 643/1173/430 686/1240/462 -f 547/1067/373 617/1140/374 548/1068/374 -f 550/1070/375 585/1106/375 551/1071/376 -f 553/1073/377 688/1243/377 554/1074/378 -f 556/1076/379 618/1141/379 557/1077/380 -f 559/1079/381 687/1241/382 560/1080/382 -f 558/1078/380 557/1077/380 562/1082/383 -f 564/1084/384 602/1123/384 565/1085/384 -f 566/1086/385 565/1085/385 567/1087/385 -f 568/1088/386 567/1087/386 569/1089/387 -f 571/1091/233 594/1115/233 572/1092/233 -f 573/1093/217 572/1092/217 574/1094/217 -f 575/1096/388 574/1244/388 576/1097/388 -f 660/1245/217 580/1246/217 670/1247/217 -f 580/1246/217 640/1248/217 670/1247/217 -f 640/1248/217 659/1249/217 662/1250/217 -f 640/1248/217 662/1250/217 664/1251/217 -f 671/1252/217 669/1253/217 670/1247/217 -f 673/1254/217 671/1252/217 670/1247/217 -f 670/1247/217 640/1248/217 664/1251/217 -f 578/1099/217 667/1255/217 577/1098/217 -f 667/1255/217 665/1256/217 577/1098/217 -f 670/1247/217 664/1251/217 673/1254/217 -f 664/1251/217 578/1099/217 673/1254/217 -f 579/1100/217 673/1254/217 578/1099/217 -f 658/1257/217 678/1258/217 576/1097/217 -f 678/1258/217 579/1100/217 576/1097/217 -f 577/1098/217 576/1097/217 579/1100/217 -f 580/1101/202 660/1259/202 581/1102/389 -f 582/1103/389 581/1102/389 583/1104/390 -f 584/1105/390 583/1104/390 585/1106/391 -f 548/1068/374 617/1140/374 586/1107/392 -f 551/1071/376 688/1243/377 553/1073/377 -f 588/1109/393 615/1138/393 547/1067/373 -f 554/1074/378 619/1142/394 589/1110/394 -f 586/1107/392 618/1141/379 556/1076/379 -f 569/1089/387 591/1112/395 590/1111/395 -f 591/1112/395 620/1145/396 592/1113/396 -f 593/1114/397 689/1260/397 594/1115/398 -f 595/1116/399 598/1119/400 596/1117/400 -f 598/1119/400 600/1121/401 599/1120/401 -f 600/1121/401 689/1260/397 593/1114/397 -f 602/1123/402 564/1084/402 603/1124/402 -f 603/1124/402 563/1261/402 562/1262/402 -f 562/1262/402 601/1122/402 603/1124/402 -f 604/1125/403 614/1137/404 587/1108/404 -f 605/1126/405 618/1141/405 586/1107/406 -f 558/1078/407 563/1083/408 603/1128/408 -f 601/1130/410 562/1082/410 557/1077/411 -f 609/1132/413 612/1135/414 549/1069/414 -f 610/1133/415 617/1140/415 547/1067/416 -f 588/1109/417 549/1069/414 612/1135/414 -f 548/1068/413 587/1108/404 614/1137/404 -f 611/1134/416 547/1067/416 615/1138/418 -f 606/1127/406 586/1107/406 617/1140/415 -f 558/1078/407 607/1129/409 604/1125/403 -f 605/1126/405 608/1131/412 557/1077/411 -f 615/1144/419 588/1263/419 619/1142/394 -f 588/1263/419 613/1264/419 589/1110/394 -f 619/1142/394 588/1263/419 589/1110/394 -f 620/1145/396 595/1116/399 597/1118/399 -f 565/1265/161 602/1266/161 605/1267/161 -f 602/1266/161 601/1268/161 608/1269/161 -f 605/1267/161 602/1266/161 608/1269/161 -f 605/1267/161 606/1270/161 565/1265/161 -f 606/1270/161 610/1271/161 565/1265/161 -f 611/1272/161 616/1273/161 619/1274/161 -f 610/1271/161 611/1272/161 565/1265/161 -f 611/1272/161 619/1274/161 565/1265/161 -f 619/1274/161 554/1275/161 565/1265/161 -f 591/1276/161 569/1277/161 645/1278/161 -f 569/1277/161 567/1279/161 645/1278/161 -f 567/1279/161 565/1265/161 687/1280/161 -f 683/1235/161 688/1281/161 684/1238/161 -f 554/1275/161 688/1281/161 683/1235/161 -f 565/1265/161 554/1275/161 683/1235/161 -f 688/1281/161 551/1282/161 684/1238/161 -f 620/1283/161 591/1276/161 637/1284/161 -f 585/1285/161 583/1286/161 685/1239/161 -f 583/1286/161 581/1204/161 690/1287/161 -f 685/1239/161 583/1286/161 690/1287/161 -f 637/1284/161 636/1288/161 620/1283/161 -f 645/1278/161 637/1284/161 591/1276/161 -f 551/1282/161 585/1285/161 685/1239/161 -f 551/1282/161 685/1239/161 684/1238/161 -f 559/1289/161 645/1278/161 567/1279/161 -f 565/1265/161 683/1235/161 623/1148/161 -f 687/1280/161 559/1289/161 567/1279/161 -f 623/1148/161 687/1280/161 565/1265/161 -f 683/1235/161 621/1146/161 623/1148/161 -f 621/1146/161 653/1290/161 647/1291/161 -f 621/1146/161 647/1291/161 622/1147/161 -f 624/1149/420 646/1292/420 625/1150/421 -f 603/1293/160 564/1294/160 607/1295/160 -f 564/1294/160 566/1296/160 604/1297/160 -f 607/1295/160 564/1294/160 604/1297/160 -f 568/1298/160 570/1299/160 644/1300/160 -f 570/1299/160 590/1301/160 644/1300/160 -f 590/1301/160 592/1302/160 635/1303/160 -f 644/1300/160 590/1301/160 635/1303/160 -f 614/1304/160 604/1297/160 566/1296/160 -f 609/1305/160 614/1304/160 566/1296/160 -f 609/1305/160 566/1296/160 612/1306/160 -f 566/1296/160 568/1298/160 560/1307/160 -f 612/1306/160 566/1296/160 589/1308/160 -f 589/1308/160 613/1309/160 612/1306/160 -f 589/1308/160 566/1296/160 555/1310/160 -f 592/1302/160 691/1311/160 635/1303/160 -f 555/1310/160 566/1296/160 682/1233/160 -f 568/1298/160 644/1300/160 561/1312/160 -f 686/1313/160 566/1296/160 560/1307/160 -f 553/1314/160 555/1310/160 682/1233/160 -f 566/1296/160 686/1313/160 682/1233/160 -f 568/1298/160 561/1312/160 560/1307/160 -f 552/1154/160 553/1314/160 627/1152/160 -f 582/1315/160 584/1316/160 657/1317/160 -f 584/1316/160 550/1318/160 628/1153/160 -f 628/1153/160 657/1317/160 584/1316/160 -f 643/1319/160 642/1320/160 679/1234/160 -f 642/1320/160 692/1321/160 679/1234/160 -f 553/1314/160 682/1233/160 627/1152/160 -f 686/1313/160 643/1319/160 679/1234/160 -f 682/1233/160 686/1313/160 679/1234/160 -f 628/1153/160 550/1318/160 552/1154/160 -f 629/1155/422 638/1164/423 630/1156/423 -f 632/1158/424 634/1160/424 629/1155/422 -f 633/1159/425 641/1176/425 634/1160/424 -f 635/1161/426 691/1322/427 636/1162/427 -f 636/1162/427 691/1322/427 630/1156/423 -f 580/1167/160 582/1315/160 639/1165/428 -f 582/1315/160 657/1317/160 639/1165/428 -f 595/1323/161 620/1283/161 636/1288/161 -f 595/1323/161 636/1288/161 638/1324/161 -f 600/1170/161 598/1325/161 634/1168/161 -f 598/1325/161 595/1323/161 629/1326/161 -f 594/1327/161 689/1328/161 624/1329/161 -f 689/1328/161 600/1170/161 641/1169/161 -f 574/1198/161 572/1330/161 652/1331/161 -f 572/1330/161 594/1327/161 652/1331/161 -f 652/1331/161 693/1332/161 574/1198/161 -f 647/1291/161 653/1290/161 626/1333/161 -f 653/1290/161 652/1331/161 594/1327/161 -f 626/1333/161 653/1290/161 594/1327/161 -f 595/1323/161 638/1324/161 629/1326/161 -f 598/1325/161 629/1326/161 634/1168/161 -f 689/1328/161 641/1169/161 624/1329/161 -f 624/1329/161 626/1333/161 594/1327/161 -f 622/1171/430 647/1179/431 642/1172/431 -f 644/1174/432 635/1161/426 637/1163/426 -f 561/1081/381 644/1174/432 645/1175/432 -f 641/1176/425 633/1159/425 646/1177/420 -f 625/1150/421 642/1172/433 647/1179/433 -f 693/1334/201 652/1335/201 694/1336/201 -f 652/1335/201 651/1337/201 694/1336/201 -f 677/1338/201 695/1339/201 648/1180/201 -f 648/1180/201 693/1334/201 649/1181/201 -f 693/1334/201 694/1336/201 649/1181/201 -f 649/1181/201 696/1340/201 666/1341/201 -f 676/1342/201 677/1338/201 648/1180/201 -f 666/1341/201 650/1182/201 649/1181/201 -f 650/1182/201 676/1342/201 648/1180/201 -f 653/1185/202 621/1343/202 679/1344/202 -f 679/1344/202 692/1345/202 653/1185/202 -f 692/1345/202 651/1183/202 653/1185/202 -f 654/1186/217 685/1346/217 628/1187/217 -f 657/1191/233 628/1347/233 685/1348/233 -f 685/1348/233 690/1349/233 657/1191/233 -f 690/1349/233 656/1189/233 657/1191/233 -f 573/1350/160 575/1196/160 651/1351/160 -f 575/1196/160 694/1352/160 651/1351/160 -f 651/1351/160 692/1321/160 571/1353/160 -f 692/1321/160 642/1320/160 625/1354/160 -f 599/1192/160 593/1355/160 633/1193/160 -f 593/1355/160 571/1353/160 646/1356/160 -f 633/1193/160 593/1355/160 646/1356/160 -f 571/1353/160 573/1350/160 651/1351/160 -f 692/1321/160 625/1354/160 571/1353/160 -f 625/1354/160 646/1356/160 571/1353/160 -f 597/1357/160 596/1358/160 631/1359/160 -f 596/1358/160 599/1192/160 632/1194/160 -f 631/1359/160 596/1358/160 632/1194/160 -f 691/1311/160 592/1302/160 597/1357/160 -f 630/1360/160 691/1311/160 597/1357/160 -f 631/1359/160 630/1360/160 597/1357/160 -f 649/1195/434 694/1352/160 575/1196/160 -f 574/1198/161 693/1332/161 648/1199/436 -f 648/1199/436 695/1361/436 658/1201/438 -f 639/1165/428 661/1206/441 659/1202/439 -f 660/1205/161 670/1216/446 656/1203/440 -f 656/1203/440 690/1287/161 581/1204/161 -f 661/1206/441 663/1208/442 662/1207/442 -f 663/1208/442 668/1214/442 664/1209/442 -f 665/1210/443 696/1362/434 649/1195/434 -f 666/1211/444 696/1362/434 665/1210/443 -f 578/1213/444 650/1363/444 666/1211/444 -f 668/1214/442 650/1363/444 578/1213/444 -f 669/1215/445 672/1218/448 656/1203/440 -f 671/1217/447 674/1220/447 672/1218/448 -f 673/1219/447 675/1364/447 674/1220/447 -f 675/1223/201 676/1342/201 668/1221/201 -f 676/1342/201 650/1182/201 668/1221/201 -f 668/1221/201 663/1365/201 639/1366/201 -f 663/1365/201 661/1367/201 639/1366/201 -f 672/1368/201 674/1369/201 656/1222/201 -f 674/1369/201 675/1223/201 656/1222/201 -f 639/1366/201 656/1222/201 668/1221/201 -f 676/1224/449 675/1364/447 673/1219/447 -f 677/1226/449 676/1224/449 579/1225/449 -f 658/1201/438 695/1361/436 677/1226/449 -f 679/1228/217 621/1370/217 680/1229/217 -f 680/1229/217 654/1186/217 655/1188/217 -f 627/1152/450 682/1233/454 681/1231/451 -f 680/1236/458 683/1235/457 684/1238/460 -f 686/1240/462 560/1080/382 687/1241/382 -f 623/1242/462 622/1171/430 643/1173/430 -o Cylinder -v -0.126087 0.227980 0.137402 -v 0.126087 0.227980 0.774998 -v -0.126086 0.227980 0.774998 -v 0.126086 0.227980 0.137402 -v 0.304400 0.406294 0.774998 -v 0.304400 0.406293 0.137402 -v 0.304400 0.658466 0.774998 -v 0.304400 0.658466 0.137402 -v 0.126087 0.836780 0.774998 -v 0.126086 0.836780 0.137402 -v -0.126086 0.836780 0.774998 -v -0.126087 0.836780 0.137402 -v -0.304400 0.658467 0.774998 -v -0.304400 0.658466 0.137402 -v -0.304400 0.406294 0.774998 -v -0.304400 0.406294 0.137402 -vt 0.246533 0.894427 -vt 0.118900 0.944907 -vt 0.118900 0.894427 -vt 0.246533 0.944907 -vt 0.118900 0.995387 -vt 0.246533 0.591549 -vt 0.118900 0.642029 -vt 0.118900 0.591549 -vt 0.246533 0.642029 -vt 0.118900 0.692509 -vt 0.246533 0.692509 -vt 0.118900 0.742988 -vt 0.246533 0.742988 -vt 0.118900 0.793468 -vt 0.375332 0.627244 -vt 0.375332 0.677724 -vt 0.253463 0.627244 -vt 0.246533 0.793468 -vt 0.118900 0.843948 -vt 0.246533 0.843948 -vt 0.339638 0.713512 -vt 0.375332 0.799686 -vt 0.289158 0.835381 -vt 0.246533 0.995387 -vt 0.339638 0.713418 -vt 0.289158 0.713418 -vt 0.253463 0.677724 -vt 0.289158 0.591549 -vt 0.339638 0.591549 -vt 0.253464 0.799686 -vt 0.253463 0.749207 -vt 0.289158 0.713512 -vt 0.375332 0.749207 -vt 0.339638 0.835381 -vn -0.3827 -0.9239 0.0000 -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.0000 0.0000 -1.0000 -vn -0.9239 -0.3827 0.0000 -vn 0.0000 -0.0000 1.0000 -s 1 -f 697/1371/463 698/1372/464 699/1373/463 -f 700/1374/464 701/1375/465 698/1372/464 -f 702/1376/465 703/1377/466 701/1378/465 -f 704/1379/466 705/1380/467 703/1377/466 -f 706/1381/467 707/1382/468 705/1380/467 -f 708/1383/468 709/1384/469 707/1382/468 -f 704/1385/470 702/1386/470 710/1387/470 -f 710/1388/469 711/1389/471 709/1384/469 -f 712/1390/471 699/1373/463 711/1389/471 -f 703/1391/472 707/1392/472 711/1393/472 -f 697/1371/463 700/1374/464 698/1372/464 -f 700/1374/464 702/1394/465 701/1375/465 -f 702/1376/465 704/1379/466 703/1377/466 -f 704/1379/466 706/1381/467 705/1380/467 -f 706/1381/467 708/1383/468 707/1382/468 -f 708/1383/468 710/1388/469 709/1384/469 -f 702/1386/470 700/1395/470 697/1396/470 -f 697/1396/470 712/1397/470 702/1386/470 -f 712/1397/470 710/1387/470 702/1386/470 -f 710/1387/470 708/1398/470 706/1399/470 -f 706/1399/470 704/1385/470 710/1387/470 -f 710/1388/469 712/1390/471 711/1389/471 -f 712/1390/471 697/1371/463 699/1373/463 -f 711/1393/472 699/1400/472 698/1401/472 -f 698/1401/472 701/1402/472 703/1391/472 -f 703/1391/472 705/1403/472 707/1392/472 -f 707/1392/472 709/1404/472 711/1393/472 -f 711/1393/472 698/1401/472 703/1391/472 From 2faf317e0d6b44ceddcc947a1cab6e5b55bec4a6 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 30 Jan 2024 20:55:04 +1100 Subject: [PATCH 130/376] silly duffer moment --- .../java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java index b46a6a78f..eb3fdf4d6 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java @@ -68,7 +68,7 @@ public class ItemRenderWeaponNovac implements IItemRenderer { GL11.glPushMatrix(); HbmAnimations.applyRelevantTransformation("Cylinder"); ResourceManager.novac.renderPart("Cylinder"); - GL11.glPushMatrix(); + GL11.glPopMatrix(); GL11.glPushMatrix(); HbmAnimations.applyRelevantTransformation("Hammer"); From 3638ad475bcba3de7be761d7461cc3264e3349fa Mon Sep 17 00:00:00 2001 From: FOlkvangrField Date: Tue, 30 Jan 2024 21:58:43 +0800 Subject: [PATCH 131/376] Compatibility with old configs Add compatibility with old configs. If the newly added option is not read, it will be automatically written to the default value. --- .../hbm/config/CustomMachineConfigJSON.java | 15 +++++++-- .../recipes/CustomMachineRecipes.java | 33 +++++++++++++++---- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java index 83fda4ef5..adbd60981 100644 --- a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -159,12 +159,21 @@ public class CustomMachineConfigJSON { configuration.fluidOutCap = machineObject.get("fluidOutCap").getAsInt(); configuration.itemOutCount = machineObject.get("itemOutCount").getAsInt(); configuration.generatorMode = machineObject.get("generatorMode").getAsBoolean(); - configuration.maxPollutionCap = machineObject.get("maxPollutionCap").getAsInt(); - configuration.fluxMode = machineObject.get("fluxMode").getAsBoolean(); + if(machineObject.get("maxPollutionCap")!=null) { + configuration.maxPollutionCap = machineObject.get("maxPollutionCap").getAsInt(); + } + else configuration.maxPollutionCap = 0; + if(machineObject.get("fluxMode")!=null) { + configuration.fluxMode = machineObject.get("fluxMode").getAsBoolean(); + } + else configuration.fluxMode = false; configuration.recipeSpeedMult = machineObject.get("recipeSpeedMult").getAsDouble(); configuration.recipeConsumptionMult = machineObject.get("recipeConsumptionMult").getAsDouble(); configuration.maxPower = machineObject.get("maxPower").getAsLong(); - configuration.maxHeat = machineObject.get("maxHeat").getAsInt(); + if(machineObject.get("maxHeat")!=null) { + configuration.maxHeat = machineObject.get("maxHeat").getAsInt(); + } + else configuration.maxHeat = 0; if(machineObject.has("recipeShape") && machineObject.has("recipeParts")) { JsonArray recipeShape = machineObject.get("recipeShape").getAsJsonArray(); diff --git a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java index 965593025..132a48bca 100644 --- a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java @@ -79,14 +79,33 @@ public class CustomMachineRecipes extends SerializableRecipe { recipeInstance.outputItems = this.readItemStackArrayChance(rec.get("outputItems").getAsJsonArray()); recipeInstance.duration = rec.get("duration").getAsInt(); recipeInstance.consumptionPerTick = rec.get("consumptionPerTick").getAsInt(); - recipeInstance.pollutionMode = rec.get("pollutionMode").getAsBoolean(); - recipeInstance.pollutionType = rec.get("pollutionType").getAsString(); - recipeInstance.pollutionAmount = rec.get("pollutionAmount").getAsFloat(); - recipeInstance.radiationMode = rec.get("radiationMode").getAsBoolean(); - recipeInstance.radiationAmount = rec.get("radiationAmount").getAsFloat(); - recipeInstance.flux = rec.get("flux").getAsInt(); - recipeInstance.heat = rec.get("heat").getAsInt(); + if(rec.get("pollutionMode")!=null) { + recipeInstance.pollutionMode = rec.get("pollutionMode").getAsBoolean(); + recipeInstance.pollutionType = rec.get("pollutionType").getAsString(); + recipeInstance.pollutionAmount = rec.get("pollutionAmount").getAsFloat(); + } + else { + recipeInstance.pollutionMode = false; + recipeInstance.pollutionType = ""; + recipeInstance.pollutionAmount = 0; + } + if(rec.get("radiationMode")!=null) { + recipeInstance.radiationMode = rec.get("radiationMode").getAsBoolean(); + recipeInstance.radiationAmount = rec.get("radiationAmount").getAsFloat(); + } + else { + recipeInstance.radiationMode = false; + recipeInstance.radiationAmount = 0; + } + if(rec.get("flux")!=null) { + recipeInstance.flux = rec.get("flux").getAsInt(); + } + else recipeInstance.flux = 0; + if(rec.get("heat")!=null) { + recipeInstance.heat = rec.get("heat").getAsInt(); + } + else recipeInstance.heat = 0; list.add(recipeInstance); } From a5ad9c8f5a7870bf3d8f12f96b36e73bd0c29fc6 Mon Sep 17 00:00:00 2001 From: George Paton Date: Wed, 31 Jan 2024 09:51:51 +1100 Subject: [PATCH 132/376] Scrap the reload animation on the novac --- src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java | 1 - .../resources/assets/hbm/models/weapons/animations/novac.json | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index 0d264fd7d..9f7a5aca7 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -65,7 +65,6 @@ public class Gun44MagnumFactory { config.loadAnimations = i -> { config.animations.put(AnimType.CYCLE, ResourceManager.novac_anim.get("Fire")); - config.animations.put(AnimType.RELOAD, ResourceManager.novac_anim.get("Reload")); }; return config; diff --git a/src/main/resources/assets/hbm/models/weapons/animations/novac.json b/src/main/resources/assets/hbm/models/weapons/animations/novac.json index deeb6b951..809acd865 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/novac.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/novac.json @@ -1 +1 @@ -{"Fire": {"Body": {"rotation_euler": {"x": [[0.0, 0.0], [29.145301697941925, 83.33333333333333], [0.0, 200.0]]}, "location": {"z": [[-0.0, 0.0], [0.7235583066940308, 50.0], [-0.0, 233.33333333333331]], "y": [[0.0, 0.0], [0.7866886854171753, 50.0], [0.0, 233.33333333333331]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-42.84400081430579, 16.666666666666668], [-42.84400081430579, 250.00000000000003], [0.0, 200.0]]}, "location": {"x": [[0.0, 0.0]], "z": [[1.1140995025634766, 0.0]], "y": [[0.48292604088783264, 0.0]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.04879806935787201, 166.66666666666666], [-0.1566363126039505, 133.33333333333334], [0.0, 166.66666666666669]], "z": [[-0.0, 0.0], [-0.7191624641418457, 166.66666666666666], [-1.058491826057434, 133.33333333333334], [-0.0, 166.66666666666669]], "y": [[0.0, 0.0], [0.7507638931274414, 166.66666666666666], [0.9907249212265015, 133.33333333333334], [0.0, 166.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [-19.391663497116777, 166.66666666666666], [45.102665825653546, 133.33333333333334], [0.0, 166.66666666666669]], "z": [[-0.0, 0.0], [0.5174686318159474, 166.66666666666666], [3.009666081818643, 133.33333333333334], [-0.0, 166.66666666666669]], "y": [[-0.0, 0.0], [1.4431158784559095, 166.66666666666666], [-0.8437833740125396, 133.33333333333334], [0.0, 166.66666666666669]]}}}} \ No newline at end of file +{"Fire": {"Body": {"rotation_euler": {"x": [[0.0, 0.0], [29.145301697941925, 83.33333333333333], [0.0, 200.0]]}, "location": {"z": [[-0.0, 0.0], [0.7235583066940308, 50.0], [-0.0, 233.33333333333331]], "y": [[0.0, 0.0], [0.7866886854171753, 50.0], [0.0, 233.33333333333331]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-42.84400081430579, 16.666666666666668], [-42.84400081430579, 250.00000000000003], [0.0, 200.0]]}, "location": {"x": [[0.0, 0.0]], "z": [[1.1140995025634766, 0.0]], "y": [[0.48292604088783264, 0.0]]}}}} \ No newline at end of file From 67c4273ebf1f28a36c30100eea6bd2c45370fdb1 Mon Sep 17 00:00:00 2001 From: George Paton Date: Wed, 31 Jan 2024 12:08:50 +1100 Subject: [PATCH 133/376] Add offsets to file format, so sequential animations don't have fucky offsets --- ntm-animator.blend | Bin 1094484 -> 1098396 bytes .../com/hbm/render/anim/AnimationLoader.java | 30 +++++++++++++----- .../com/hbm/render/anim/BusAnimation.java | 2 +- .../hbm/render/anim/BusAnimationSequence.java | 7 ---- .../hbm/models/weapons/animations/cursed.json | 2 +- .../hbm/models/weapons/animations/novac.json | 2 +- .../hbm/models/weapons/animations/python.json | 2 +- 7 files changed, 26 insertions(+), 19 deletions(-) diff --git a/ntm-animator.blend b/ntm-animator.blend index 90f7ed2d598580b02b3fd7e020d1fc429d0c8dd8..ca5f2a6586e5e3fd084ee389f54a61fd0f1a7db0 100644 GIT binary patch delta 145782 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

hX4jZ;5$-wh`Q*?4T`X;L3>UJ?*$EovWfy z-}^Gf@sqZ$l#_@7EQPA%EhF>3zKys-O5IpusFCl+Y?w zq6s%QbY|S-_zkYN%He5UdcEyyJb19j3ioa$3^=+Xf89Z)kc1|SnAwI+5>z)+J^yaL zeB_{f1fQogRUy&xrpNAf@nh4`@_}j-ZHSK208eW zrh>LTf6mz1CcOjU;y4qbYgwt`v16TJ=s6m6=Q`rT_{B;w0%7!BiCq;eKl(W&X3;Do6k687 zQ&{&avB=dxk&hefo@yJrUHuzWI~~(+-t2D0o{6x#-Gzq0)UlUsbY6q~>_c#uxQ=?G z(FwP~S4?K#Jw`)?yyMVJ^dhkwhoHMODmgK)rNpQ_R%E6%FxNg~xqm>W*j!h`u58~G zTfdeI3ZlnO_WL>P>E|zISLQ)F@W!#g=MO7%$5_rf{ja4C;H`jU!EeqAP#BI zMiYnUTnmzpc;H|cc?XJzz$UFJ~0!=f5Y|Xo+NF|Mhhu( z8lik!K+0A#oE+j`W-N`6yfQASaq;2C%}RZ$-nMb^N4y|os})YsUSG(x?#3uJ8j3*$ z#ySj1v+%P7Sl~uC^HekE@Uu*5QC8n~oGg{J>z4NzT6dasC+hn*H_G-Bl3mx@L#b?8 zjVD3Eo%kN4ENcCrUoE3iY(F(|DJ(d1)$QJG$THpg^My#?)ETZUBL`JR2~iZhpB8+H z3>RuD#Rxght<=Q*bYPt!d$01Uqa7PDf1h64G7uIi?pa_g$sM{#P=n#}-nO{xi$rEm zIdZXN&{mP4{rpP=w`HGt6nlgBv)7(J{_XAU@G)0wYiq2LAv}#u^d+3(dUfw|7Il2;6`}BA+i_omE|3olU$vFo02;N|Bg7?weM! z(^x!HRv|L@j2bt5H2&FRG^PQL_eD7W9Q)pLOz&1RONkskOVRy`pr7ZWr%0ef|VUmGrMO|}qq-11dSP+OFvfdj>bI-9+bqkzCxl2VL(5zsI z0Kz=pQwnl&GY5xQ`TPzypBcB+MmA-UYdRomE!FBbuZEX8b*1VZSZUPmH+r8$7}KRF z;6?WWY%pTj$x?SR>#=?FA!^ctF!rj$&{=|FC#y36BdSPJ_>;iTx3_dsZQf6j14pyW zeiq8ekP|)9X5^@4pRJXnKTm8e#wP)bch4AWGrzEz$JXy*h?5)G&t)Q2r=F6w*BX@h+t@5Q>omDI~(;6k3@oGAiTBQV1eKt=^PTJch zv8)&n%lr*b!Vr%)eDZH&FiEm{oZ|r^#@PuF?74-8i9dH| zHZn+-skvjbR`2J;t8Wfv`=NfQQNM?np{WJ4qfC0%kx*So!jS$GPkXHI!na-PC&FYu z>&F8(I52+-h8Iuksh3Q31VD+UEu$u_crZJuD5G<03k=x!7UCso#4Icr3=Iu6m=h}Q zJy-}k>)^#xR==ox~U8-9bSBNkCu=@$^g; z&we9B+3P^AF!ASd+gV>O=By;Dsj(%6b(_QwZlX}hG0D;4vDVv7t;orfD51T7f_6K5 zWWkdCT@4_a>RRQZTQ*GeSb1Ha0fKsNorA85$ULffT`DFb5{> zq*01O=-8MlkggGTNB2-0IQ9(e{sE*xfMi;V0tz*9x5*#92X09y1h{3u*1&bcjp)|V z(aF+bF-fHt78aIe>Nn$JVPyq`DgG|4fW%6p*Fi--Buj}7k3Y&u29_RVY2}hD`7H=J z)?;%ZVRU;;-gL$WgDk|;TDVlNZsQqc5}RRh{favHPXB|a-9#y+cDVu8y#0b@Yq{V3 zei~borj~WS8Z4!v5Xdl@1_90@gXncX*-}h>>-|BO2`8oB-3k1DPxM?ubh2RK8+R_I zS+1Ai+ z9|wpQg|~H^m-iWqUkvTz2{Uk5-RBAn^lfGK7sgh?>X=}I=}-I@k;jbEZ1~PS=G2l< zDc#=<3i{pOTu68fE#GbNk(sA27SGpZDwbm3b}`M5TE5kvOSLfO8CGq$G{1u&A{xATj|i2@*-c>s+;X45br-XNqPJ__f1 zpZg!fo;*X+IC5#9>RT>KA^wH?jcF~Nw9!IU>)%UjrJ0EG11&-vo83kE+$ns%8U4xv z(S^p#!a!Z;=n^JqoqozRSkDigxM3|15k%~V{Zt~BtPWYKQ+&*b- zy$}zEJ&kppNuzAHh`O9pYPOZIM-8j7DoRrMaQ-H8;o!#DC{{L)<||$q4vv5)17B?; zykkWv7Qh+$d||9r|De9HaSj=&{rm@J-TLJIEKkj+uS97$;VY;Pb!Dd9f`a=l<@jQ~ zjzfEUdx?5xQ0Oaf_M0n6Vy*$|+HvSMxhks$dvP)B#b+ZwO?E00&_~Q-q}n}4rM`Qh81=z4HIhr#ORE zr1dcFNrN)SY$NrU*zDL)BR*6ni{a0(Yqyg7CYKE9Jzq0-I)htuKb0a?Ta}+il0O<7 z6S?yHSB_T-=%WFvd47Ig(-eAmXxsSxJKudX8PKK@2Gym*3#*VNNrGa>N~+%E-pTs;#YjR5BMPQ`I9XYP zhR&;nVKBhGYDj57OTc2pX4Ujz*fLBR^8K-KPG?GMS~|q*=Qs1(O-n9l)%P2wyE=UH$QmlT%Uz@K}Co&D74!%#UxUB!B*?A#e3P z+8-XLwgx^_98~5J4dl}3jgtM43^jVskTupiS~LUq_y6ceDm8c3sTmf7rNDzMylw8@%+}@S=hG^} zjGH|ZfSSUmFteaKT?4(G!optT#^+eVnqpK~L7SV<8_!$uEX(X7g4ZnU>`r@=MRn5x zKT<7h%zm}a)~#kkwg|VP?r`wa5hSbm=yL2pU}4plvNij$lzOa|hZ})Ml642JU#wW; zl{LMJP_aJxFQ=4IHqnzV@hZe+w`cb(iLI@C*~=|$597{gL80m1r|JMA_Tbl9jMXI66J{Dg%X=&8i!{ zj^lpLan!7XHF{jX6zapEi5Tgtyy%S+=v##B6GL|Ob1$QQ6Bm|Y33A5GaaysNKOK*4 zDJoRTJe??C3_WP}@v+?W+#+?!q1uVwYYYciAL?#{mG=q8wVu*r8B~`jV9y2Np6B&M z`&lOz4HqnSya-p;WQfCRG=n*elzsq)R)(Ggw<|2@e9iKa}O?ZwYv;Z3I-o)6`<4pO`pL(0rj$>qV%1#YS2s)4f_| z=~;MPm)7QFa^4kC4VOTY_`yE>ayHHLW)jvaZfT0GY;4Rf?{O_C4k{*DU4EZ&c!;9N z9#54Z|7rN66LF#(j$^@cf5X)}c)k+uMWtP4G%Klz#KOiFGVJ@sB~ZT@ITZF=!^N05 zJ?m+_JT$Xdq``XTcOPx^!tuR$_UJTNCKjHSo+%uP?%-LiOzYjMveR?C`z4?7fU@GP zh_X}Yj;h5^Y?e3>sV=TinWBNjE`?dNG;sq}gob>W7O8e4-w>%Vb0u7m9f5|JgkE5^Z&GfiP*xdXsS}-G*EmK~@CB)ZJYsn|a&0 zy=tJ>uGSK>M0&ju+o`%b@=3l;D}rn_NdI}+J{K4~u(Pw1Se_g0O212JuJ81`Gj1JT z2e-4ZQjE`EvMCwkA}MQT@%TAgSIIkHS5FyT?&RYn@KvN1E54>$9!J1^&Sw5#aFW969~YEaA4r)}fZC~@HVb{YthQ%y-LW_3EoVu!&Me%jWBlW|=fuaeXx| zwk(lCv`ZR|9O^4C5`a+dNen&NAqSvk#lJojFHKR6(J~5_X<{h=DdhR#f?MJ`+0mSQ zc?ZL!*@oGkjQq9fqP?I?;i$&M2B2VB=j4Gp#qM9A)_|pmi`XW)uVJTIp9Qa{(95(a zcM`QF#Be-ZXb7DF>a(ox`#Nz%zedw|i>oR^?e99CikB2TRr3xitLzvyr=w7MT>EB~ zf^^{#`u@Eea&a!ppPSyFAo~QjXm@}A8Mk~$BI9S2&^8yt#zrrd=RI$pi7}_paA!1> zT9dwfxqRuhzP>JW_JbSi!{O1<%up;|+7DtTPD~_fWS|5>eS%*%-4r>~Ug<`YApg{V zY;26ehb?Ug(P(yqEO7gJJJYV;70N|2u<7`g@M{Y6Egc?E7D~hlxw*ZSSV8tDp`DZJ`QrQ?wAkLi=o;ZQo8e$@e{7iy z7p#@2KXv%aI!ptdmw}Eh5>IeAcE<`N(b`f;$} z;x=QT1w*ui6fv^79s#H~h2v*g|N4i!1_T7snm@e&Qx*Khn~HGJ(s_f6Y_55r04iQU z_YRa74^&>&SP04Lo+^Z^Va&L6Zfh`i1JzJjJme!Oo>5!>%^$Peg41*s!x;i}$75;B z&zDl8r9lKYmcK9y)5fL~1w%N9NlC?-q=4YH?m%&*+Rz)8OLAt)=isF4ZWj}?@7PeC!kt8_fz07 zSgcy;W+&HeA=(9qJ`^>0^r~0Xr;HHG5Q^GL`QCF&6oc_JOS275a*LIhC^dyeM10jV zxA@hjy`+eLk-8slEXC_D$0zzt>so30S(GG;RnE#;4LTr=q*DpnmV7XGHY3nxiZ7EP zlf{zXsfcT`eSTsgAJpC+plIl2n^cSq8Z=`2L|MR-K?|>=V3>uKT0K!vx`n?Ok_A5L zT{nA-_R;THwyClWMhs#`OIrG{x|V8PI7Bh>^9GCQ>!raVhKK&34=PhwhA%YNX<+(M zU$%hiZKM2R?5y*~m%Y+CW@+Y7lrZ5O7g;5Vt6;+)a+bYy2LU71^N^)-uf=^^OESNk ziA+KnRLuFf3Agk)f={%d^NXu&gDL-@H_znS94H#UHj-gSj3Hha1vfrjSo zh$P>~@`I~_1NJ?mPS4MsJ1=8nW7h{qcd5p}jmJ#5%xwzI174#Gd~Z}G7=EFsE7wHU z2}W|*8zwb04Bbl=78a6_lCH(dP>zifuZ|kH$e;yGHyYLUmSX{NK2qn!mEYr)ehw%9 zNK1;f9KHvcS5NV;Fk3zXhwqi}-l1SYm5!_grh3ED=av~- zYy88CivFE>>2+^4t(!Uy)V#uU38F-$EmNp}TGiGRO?27x3XF2GCkR+&WgN>Os zlp>0kB9|X!VHrC_EzjKpt2BBQk;l}QjF{Y_GcWO%Qxz&0OQ~vX~KS6)h#y=P2 zS3cv6-L*Yi;(dG&Xz`to_1o~)wuGR&b8}Zb#!xvG6$tV9K_yCn?sfwIheL_)2z?Nw zk-IzZLC`O?qMFyRpA-}ne8|yI-S?kruYavadn^l}Wu80(*CAF;+qyT)Gc7%miH@L( zo|6nKvT~14b)MdE<;!E`KaEQY zPHFb*T=z}rHpcLn5ae6g4F7ChI>)jx)6-DN+asS5H@|HPvU%4$^dNnY@`N4%Mpk^x zzMWbS&c@13y#D$Fs!?YL>O*)&^2XdRf)y8^60Kr1YWrIAX1#pw463A|m@tNh<8cD6 zlmd+iPVVNmV?*fj!UQ!0@BZP*nm(=7OMsDMboe&`|Z-WjlW9 z=hN}G?C|RbpsPffZ`PGCNVl*T6XLL|kKeR;QNF%cYuz`9uTWa1{#uY44LOEKvFe0a z^dxAx)9|Y0V@3ey(%F%3SSmBVvNh(Bkk^}WUt^8fkDd+{GnZNNv_oVEWcNz^P+#Bg%Be-vCDzH=e-Qc;mfR& z?`hfX)Rdl`w4cFVFGU{~lKP#mPFF=AUpAd;US*S$b%yg)L;t!_0!J9DEPco$4W&C9H<)t(T`%amY?6_L$cNQ44&F4zF}*JpYF}FJL9#MQKkpO zqsy-GNx7Hb^4n8&O$A6!4F>APn@5h^LM6_#gJ(cj$Jp3J$R&?N3~{njpDd7g3}JjWYy`8j7k z&*s0aS?)QNVf6d@Y&-47dHh{H>Zid?pz-F}P?#B)98Iic(H@fiV}{ou1YqP~4tf1k z%BTCDA;>VJG*1TW=m(nCGoQy#(V{2Y=fdvcsQ7kk{o}pYi}{&b+l`N8<#Km#zWB7P z4*?Hvz*3?NqBLYsEKHGP81ee)^sIqyEjey!-ZZJ{reJ>Vl(loitGGVzCwz&Uxi5cn zJnok-DA&EFOtnn=!Ly8fF8lf2_v0rUi%zTrYUIP4{`XvGQ7jPLA9ec8M16POrVQU4 z8=7{vV5Lk+gFt?7G&n6YbNN%{cf;%E1i$Wv0sMuRkG6QOQ4Q?n$Kz|u$9^pjeD2PN z%I?OSg&s1O79NUgs3$icJevi*z)mc)ns~d!v_TT_;ZioGKo&Pojp>(3N-C&AL9UED z!a6BiPmEz)!FQj#=pe}VQbm%Dd(ybtOC0?YMFp;rx=7|S_X@(@%SAuw5SkHfk-@In#~<~SuVVyq``B%cmqf4Y@9x;|SVX7p zGwlrvA#bA71qQj7-D97IouN93m{QiCMI1o~9_(TS`n&qqbXHnm^dXEdi!?nzdI}~FU-{5WeOfl>3 zk&C-*zR@A#*8A^%efej`w1g3r24$n^ALBS!QEt3+b@X~%Uzjo|pO#vyBMA9C%=60< zY7yBJnODB$QGkGwZA!m5<`d}2vhOiWD!rS>9*_As(EY7bTN?)pg4?AD&o6bw$mnF& zvu2weQF9I7aHPn)!D7BY`{C;w`760Q=&C8fO(ZGTn_3LgBF*ypcZ%Ob%V@UW<-*zB z+Q=iz^^~T_IfI{gt-&hl(u2?4;Qdb9Hs?{im>M{dHfr=p0 zksUis#T?>zRXjWx>P>FH^mcMes47Vv`%an;q+15b(;@6RcGA^NSh$$q_Y zbIXxf9nbc5x-g3$XE#o><<__<^l0dgwuSrBbmQyN4b2zakCBn5U2(>%7dWkn7Z*If zYw33Dnm7yZVX4k};NNbd4{WFT7_$bbxe~(XIG1t8vsr%M!i|=x;)a5=&}($LPw)_c zEI4`5m}@#{)ORL?Dl!*dckl#KF+*gVN)HsM(xz>IiVL<2*8)R$>!85xQD2|!*5h0r ze`}Pw)3?X$>aRHLCI!f?3%9C{=EnSONM{2R*x`p|Y%S+I3@J^=h|7(~h=bKy>$~gIvJUu;1ani@Vem7!jw5Cm)f=2HXU7T3u^}mY= z!ev6hsVt-B{J1dF z`I^$3_VE|b5rp3%T-0yX?HZWG7RV*4>50L6&Y4To7_g*%#pQ5~cO`Vp+;ZBoyw>^h z9xX)v>4b}{n+uo6J%*h}Z*)~tllYN*Kv{+uUOzu=*_yEEwYrAE@4lqguKTMc3FdT3 zjM=P6o6VIRGVmvv^@Bj4c}L0Fx-Fixt&7zA7_v&wQaUlcG`-V(;mmIL>dmLl%pr(I z+&5^C9*0Q{b-(cnQAcdX(d3yv4-#G5W!`{}?x&15i5`X?hks0JPQMLTH#Lnf<*$tt zdOK+S`Sudo@8q}FZ$IBd<4=1B>&q=yk3h+VBhI)`)E1AMPV}+$}mNW=R4>cW93(_(0huBKD@ZqDxbd?usNO8d(!uf<_Y z#Gx5VcKmXSYRFdVIzLvWy&G89KCk_(U)k4jkmT|1`t1E>k1SIs7+oAK58{535E?*0 z&)~#vO`P}SHb1_zc9-Pq`&Ol+9Sq@2{s7@)B#jat^X={H`Do$c+sCzaDo|o*w9gG^ z=*{kNPS}%trkRuN*Oo4sH1Si&+d6Xkf~c^?Gk6)56Cm{aoFR+w&2#c6<0N zazv!t&S2!M;K(C+KTcah1BHDnwGXVED!`u<=$i~*m8b$d)aPJ>5D_!yz6 z<%!6}Oy){PwZ-nv&dOZE>%31)K;4RvzTADqcdbCGL96>uamwa{2%2ngT}^wnA72kh zRm43nUMxU4v-woqSb=*hNLH=7lN)9uir|i?J#{~~ zw$+At$R}`h(&h@?T(ghQFLw6*q$&*U;rHs<&r>PWk~o+}Q6>|*WfqfQ-+X`j3__K^ zEsBQ4Q+j+eF-6BSxmZMR3Jy5NDR{D&H-)D>Mw41b6C&UCiXhkFUUh@r<+vaO& z-2Psk0b86R9TVYO{wdO^eX4ZQ#e(+VuV0#METLZC;b*>j9*qywY&8ZHj5EcFKP4G? zhG~F93`@t-_f1@FqZ;~QlO=E?hbuJoZR5NvXn9`2f#U8u92R6@j22|yuKGHdBUbJ7 zj?Z|d`)!i@>2CQ+1N)tDf?C+Ev4`mX{;O&2v!7F>`w3h@&AR4^+QhL;htVl4$$@g( zt5#C^2H6J8wE1E18I`iZX7sq!sIwKEN5-;JkIN$VIJv^kHfGgS`VBfiO7KUcabOeA<*XTEA;f-wne@{K6jP_lrAo<0vC7Fv?QRWW{10 z@3qPir|UUQ^4|9FUXBC2kPDhH_dvbUwzd`AO~*)f?=AEjrRLOXA8k4L5U3n31=^|_ zvzLYo%PWt#c{w3ATxlFXo}z|_JC8i*xWLb7eTRxt<}xiaQ&`!ELKe9cO-7q4#%sz> z`7XI${K*IiCaBMDHgC)lxNv%N=mMcGA$B{mkQn znb0V)#I?!i?F^W?56&;Qvp@FwDZBB?r$M2kKkTl6ZQO{y!aGABI$Nr#8d`-@cEAChc&kQLmyE%Hc!lZlJDB-qih zLAvO}G}&l!{GdKbIL%aA#_4td#%VrzLixCFQS|jie?RiGxBF&XOl3xCbR-egb%`=^ zMD=vL6u(S7OoPmr`(u!tFJlh(wz~SC_uPbDpI@MVc1KNoA@Tap^C`BrQ7tV-j)o1F zvZ83m2F;!qQJDQMci=go{XXH2*(qYsdC`ez)`oDt2neX3Xp+s>GQ9{#8>CA+pn|^o zRyatVF`(vBq7xcfY9M_i*xu8Fa!=vlxJx~)MI@W7TZP`=@mU&{7FC9sZ<6A!%wXH% zUuSLe^M%pv@xJ@)Pe$6858P}ltoDcBmxDFfW`o-ems=EigUa7QnMU;VOp_w$;^gw; zbrQn}P(s8jg~xG%W?c(qacAmkYPuTin%bJ#zehg|+nV$v52&h4YYejeWTT)E;G)p| zC7*D*M`KI#p3RbwUR%x?Drb)O)hMN#c}mvxLXCwrjzZzAw$%%xuy`ygXq;2tT1qX9 zPVRfpUCizv_)g}RM7XMo%c5FMsN`8D_G|mjs?SYt?{)>!GPu{Wvvm* zjQjPV@z7|Wu4m8T)}rXe$h@c}@Vf!4^`K_e-Xcs%H{9xoSkB=~-`r&P6DZT~bhQB< zLa?3csf35`KV`1PXuX>_%F|<00@WXe{0S(4?R6QV^J`EwV1XUGSV!|X-s9z zvYz~@mRaccKoYm_74Sg))|(W%Dj0chc1d9x(QxMa_}PfVGG8Xd+$FuE*4q1^WMpL$ zG-VQ-3GM%iNYTxWj}UJnFgt+Ubt-!*#zBLeReL6 zaP&ymaYOWar3{{aufQLlC!NnquGub^=W%k)UR7B&OlJHDwEImbe>-QzDDf~aEU+g} z8zgEz)jqnvUpBp)Tm+u<09P$`nKJ!Q3Yt6Rl4tsrsde}L+ckb zj)qBUu*lsg^7~n~mb3F}%7m0&oY)N9 z_>=L)Zl7zMn&#G9sbK0(Ek?c9Eecuz_6p;}bakp@X_(HG?pDl0+(gSOk|RM0Wn$8faDHV9 zbV+G3%p_^MKkTtQn_!2aSCnFw!EJe@f;5sg@#gMMXmH}z27LW`=vJU7>I1wS{|N&6%Xo+rbg11$FkQWe(Qr^t5lgC zLP<%44NL!w$f+^E>ZF0OK2*FbMOU}|1--Z>CU?~7d<+_O1!npE`+Y05BE0K6L^XX( zGquV1HtC6}bV%7d^)H$n06<>*!8bT%UqMtE>31+jjieiUcV%W8t7AT0Ua-@ag zqy*R!Op5+uPircW4h}MbJdl=s$*FCVPyV72oV~?|ak%!o)C~F#kenW&+zb^FU;nEYhUj9o6_N&X3u$kUx4b;v_sI?~ z{^1bJL zk|ng^0|!aB!ZrswO;5g#6;j7ZFZJ?}(DLB5Z8FR>!)1t12cLNZ6I@A>J9xw&r~? zlTSFo&;PZo^hBcEFQ$FiXn_7>^P$)7!CsCIGdGC8t2=^ybZY8tkwIHs$-zsf=#59z YXiIw64M_Q)XI>HHq?9Df#NP$}KVsaB@c;k- literal 17952 zcmV*UKwH0wP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizyJUazyWI3i3tDzMYTypK~#8N?Y#+j zT-S9b_}31g02FqB1VE4!Ns-zmTCx_~)Y4KcOCGl~krln`uU?Y{HBbMATf-RHS#-&IMJux#9W-@OQhLO9=j9!HKGfzRi|&MS7JqM`y` zuNRR>1YVC9LqkJ2cI+5NMn(`0htb~Nj^5s0EpKaWL-+Y^oasE{aW-s!*zu&KAHfBgBlZeOT8e*|n zDsE_K(Dk~zyEP_QH<3uB>NCAme(Tn)y6)MtXEkQoa^Q915|#-H#N6y0M#n}~z$(HO z=)3{-rY6+a z*K3~X+FBz#n;q=Lv+rU9+r_p+RaF)0>gqJlw&F5|-V41rb@G&&WBH<|r$;?)^Yimg z$?78;Au`FdSSaCQc*n-Z)MM1z+KQT*8WoQH`}gDe>#s+3wJ|HK8*wv(Hx0TlD=RD2 z0l4E%9%woBiQfQUGNwJ-ZgG&VG*;%pe77{}GuT#c7sdO7u+r=ih2 z$H>Isz@U>#N3Qzr=O7j&J#;?Sk);mJ8C@AWwi z;+5cEXdDfG20#3g_WPtE0w!joXz&H#5BT-YuCYI$X$?Vhw`Xk9ehCr>Oj(e1LaZAy z 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 From b1d7dc1738d8b33ad5b1f7ba15fe6d5c67ba8dda Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 1 Feb 2024 22:07:54 +1100 Subject: [PATCH 145/376] Why not fix up the audio while I'm eeeere --- src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java | 1 + src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java | 1 + src/main/java/com/hbm/items/weapon/ItemGunBase.java | 2 ++ 3 files changed, 4 insertions(+) diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 5ff3a41b0..267ed5228 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -101,6 +101,7 @@ public class Gun12GaugeFactory { config.allowsInfinity = true; config.crosshair = Crosshair.CIRCLE; config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; + config.reloadSoundEnd = false; config.firingSound = "hbm:weapon.shotgunPump"; config.name = "spas12"; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index de94a6be9..786346617 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -78,6 +78,7 @@ public class Gun4GaugeFactory { config.durability = 3000; config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; + config.reloadSoundEnd = false; config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.65F; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 6b5af4a37..4edb48d46 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -374,6 +374,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu resetReloadCycle(player, stack); AnimType animType = availableFills <= 1 ? AnimType.RELOAD_END : AnimType.RELOAD_CYCLE; PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(animType.ordinal()), (EntityPlayerMP) player); + if (availableFills > 1 && !mainConfig.reloadSoundEnd) + world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); } if(hasLoaded && mainConfig.reloadSoundEnd) From 9965ada88f948fb582bdeccab672b88235ff91d8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 1 Feb 2024 16:54:12 +0100 Subject: [PATCH 146/376] ough --- changelog | 3 +- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../blocks/machine/MachineHydrotreater.java | 43 ++++ .../ContainerMachineHydrotreater.java | 107 +++++++++ .../hbm/inventory/fluid/tank/FluidTank.java | 14 ++ .../inventory/gui/GUIMachineHydrotreater.java | 73 ++++++ .../recipes/HydrotreatingRecipes.java | 84 +++++++ .../recipes/loader/SerializableRecipe.java | 1 + src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 8 +- .../render/tileentity/RenderHydrotreater.java | 52 +++++ .../TileEntityMachineCatalyticReformer.java | 2 +- .../oil/TileEntityMachineHydrotreater.java | 208 ++++++++++++++++++ .../gui/processing/gui_catalytic_reformer.png | Bin 5356 -> 5395 bytes .../gui/processing/gui_hydrotreater.png | Bin 5217 -> 5260 bytes 15 files changed, 594 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java create mode 100644 src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderHydrotreater.java create mode 100644 src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java diff --git a/changelog b/changelog index 1f341a394..78ba0dbd9 100644 --- a/changelog +++ b/changelog @@ -10,4 +10,5 @@ * If I see one more person complaining about the chances I'm reducing it down to 10% * Catalytic reformers now have a tooltip informing about the need for a catalytic converter * Several guns now have reload animations including most .357 revolvers and Samuel -* Updated stealth missile texture \ No newline at end of file +* Updated stealth missile texture +* Some of the larger oil machines now render using display lists which should make them somewhat more performant \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 5b57c94af..403ff7508 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -987,6 +987,7 @@ public class ModBlocks { public static Block fraction_spacer; public static Block machine_catalytic_cracker; public static Block machine_catalytic_reformer; + public static Block machine_hydrotreater; public static Block machine_coker; public static Block machine_boiler_off; @@ -2253,6 +2254,7 @@ public class ModBlocks { fraction_spacer = new FractionSpacer(Material.iron).setBlockName("fraction_spacer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_catalytic_cracker = new MachineCatalyticCracker(Material.iron).setBlockName("machine_catalytic_cracker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_catalytic_reformer = new MachineCatalyticReformer(Material.iron).setBlockName("machine_catalytic_reformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_hydrotreater = new MachineHydrotreater(Material.iron).setBlockName("machine_hydrotreater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_coker = new MachineCoker(Material.iron).setBlockName("machine_coker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_autosaw = new MachineAutosaw().setBlockName("machine_autosaw").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_excavator = new MachineExcavator().setBlockName("machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3361,6 +3363,7 @@ public class ModBlocks { register(fraction_spacer); register(machine_catalytic_cracker); register(machine_catalytic_reformer); + register(machine_hydrotreater); register(machine_coker); register(machine_autosaw); register(machine_excavator); diff --git a/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java b/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java new file mode 100644 index 000000000..e689fb4df --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java @@ -0,0 +1,43 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.oil.TileEntityMachineHydrotreater; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineHydrotreater extends BlockDummyable { + + public MachineHydrotreater(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineHydrotreater(); + if(meta >= 6) return new TileEntityProxyCombo().fluid().power(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return standardOpenBehavior(world, x, y, z, player, side); + } + + @Override public int[] getDimensions() { return new int[] {6, 0, 1, 1, 1, 1}; } + @Override public int getOffset() { return 1; } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ + 1); + this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ - 1); + this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ + 1); + this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ - 1); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java b/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java new file mode 100644 index 000000000..375e0d753 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java @@ -0,0 +1,107 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.oil.TileEntityMachineHydrotreater; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineHydrotreater extends Container { + + private TileEntityMachineHydrotreater hydrotreater; + + public ContainerMachineHydrotreater(InventoryPlayer invPlayer, TileEntityMachineHydrotreater tedf) { + + hydrotreater = tedf; + + //Battery + this.addSlotToContainer(new Slot(tedf, 0, 17, 90)); + //Canister Input + this.addSlotToContainer(new Slot(tedf, 1, 35, 90)); + //Canister Output + this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 35, 108)); + //Hydrogen Input + this.addSlotToContainer(new Slot(tedf, 3, 53, 90)); + //Hydrogen Output + this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 53, 108)); + //Desulfated Oil Input + this.addSlotToContainer(new Slot(tedf, 5, 125, 90)); + //Desulfated Oil Output + this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 125, 108)); + //Sour Gas Input + this.addSlotToContainer(new Slot(tedf, 7, 143, 90)); + //Sour Gas Oil Output + this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 143, 108)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 9, 17, 108)); + //Catalyst + this.addSlotToContainer(new Slot(tedf, 10, 89, 36)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 156 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 214)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 10) { + if(!this.mergeItemStack(var5, 11, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 9, 10, false)) { + return null; + } + } else if(var3.getItem() == ModItems.catalytic_converter) { + if(!this.mergeItemStack(var5, 10, 11, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 1, 2, false)) + if(!this.mergeItemStack(var5, 3, 4, false)) + if(!this.mergeItemStack(var5, 5, 6, false)) + if(!this.mergeItemStack(var5, 7, 8, false)) + return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return hydrotreater.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 5f093bc66..719b0eda3 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -15,6 +15,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEFluidPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.Item; @@ -300,5 +301,18 @@ public class FluidTank { this.pressure = nbt.getShort(s + "_p"); } + + public void serialize(ByteBuf buf) { + buf.writeInt(fluid); + buf.writeInt(maxFluid); + buf.writeInt(type.getID()); + buf.writeShort((short) pressure); + } + public void deserialize(ByteBuf buf) { + fluid = buf.readInt(); + maxFluid = buf.readInt(); + type = Fluids.fromID(buf.readInt()); + pressure = buf.readShort(); + } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java b/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java new file mode 100644 index 000000000..2704a5ce4 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java @@ -0,0 +1,73 @@ +package com.hbm.inventory.gui; + +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineHydrotreater; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.oil.TileEntityMachineHydrotreater; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineHydrotreater extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_hydrotreater.png"); + private TileEntityMachineHydrotreater refinery; + + public GUIMachineHydrotreater(InventoryPlayer invPlayer, TileEntityMachineHydrotreater tedf) { + super(new ContainerMachineHydrotreater(invPlayer, tedf)); + refinery = tedf; + + this.xSize = 176; + this.ySize = 238; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + refinery.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 70 - 52, 16, 52); + refinery.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 70 - 52, 16, 52); + refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 70 - 52, 16, 52); + refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 70 - 52, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 70 - 52, 16, 52, refinery.power, refinery.maxPower); + + if(this.mc.thePlayer.inventory.getItemStack() == null && this.isMouseOverSlot(this.inventorySlots.getSlot(10), mouseX, mouseY) && !this.inventorySlots.getSlot(10).getHasStack()) { + List lines = new ArrayList(); + ItemStack converter = new ItemStack(ModItems.catalytic_converter); + lines.add(new Object[] {converter}); + lines.add(new Object[] {converter.getDisplayName()}); + this.drawStackText(lines, mouseX, mouseY, this.fontRendererObj); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.refinery.hasCustomInventoryName() ? this.refinery.getInventoryName() : I18n.format(this.refinery.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 5, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @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); + + int j = (int) (refinery.power * 54 / refinery.maxPower); + drawTexturedModalRect(guiLeft + 17, guiTop + 70 - j, 176, 52 - j, 16, j); + + refinery.tanks[0].renderTank(guiLeft + 35, guiTop + 70, this.zLevel, 16, 52); + refinery.tanks[1].renderTank(guiLeft + 53, guiTop + 70, this.zLevel, 16, 52); + refinery.tanks[2].renderTank(guiLeft + 125, guiTop + 70, this.zLevel, 16, 52); + refinery.tanks[3].renderTank(guiLeft + 143, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java new file mode 100644 index 000000000..7d828e044 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java @@ -0,0 +1,84 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map.Entry; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.util.Tuple.Triplet; + +import net.minecraft.item.ItemStack; + +public class HydrotreatingRecipes extends SerializableRecipe { + + private static HashMap> recipes = new HashMap(); + + @Override + public void registerDefaults() { + + } + + public static Triplet getOutput(FluidType type) { + return recipes.get(type); + } + + public static HashMap getRecipes() { + + HashMap map = new HashMap(); + + for(Entry> recipe : recipes.entrySet()) { + map.put(new ItemStack[] { + ItemFluidIcon.make(recipe.getKey(), 1000), + ItemFluidIcon.make(recipe.getValue().getX().type, recipe.getValue().getX().fill * 10) }, + new ItemStack[] { + ItemFluidIcon.make(recipe.getValue().getY().type, recipe.getValue().getY().fill * 10), + ItemFluidIcon.make(recipe.getValue().getZ().type, recipe.getValue().getZ().fill * 10) }); + } + + return map; + } + + @Override + public String getFileName() { + return "hbmHydrotreating.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + FluidType input = Fluids.fromName(obj.get("input").getAsString()); + FluidStack hydrogen = this.readFluidStack(obj.get("hydrogen").getAsJsonArray()); + FluidStack output1 = this.readFluidStack(obj.get("output1").getAsJsonArray()); + FluidStack output2 = this.readFluidStack(obj.get("output2").getAsJsonArray()); + + recipes.put(input, new Triplet(hydrogen, output1, output2)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry> rec = (Entry>) recipe; + + writer.name("input").value(rec.getKey().getName()); + writer.name("hydrogen"); this.writeFluidStack(rec.getValue().getX(), writer); + writer.name("output1"); this.writeFluidStack(rec.getValue().getY(), writer); + writer.name("output2"); this.writeFluidStack(rec.getValue().getZ(), writer); + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index f54138b0f..ac32b1332 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -52,6 +52,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new FractionRecipes()); recipeHandlers.add(new CrackingRecipes()); recipeHandlers.add(new ReformingRecipes()); + recipeHandlers.add(new HydrotreatingRecipes()); recipeHandlers.add(new LiquefactionRecipes()); recipeHandlers.add(new SolidificationRecipes()); recipeHandlers.add(new CokerRecipes()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index bd1511af5..b7d57b144 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -294,6 +294,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAutosaw.class, new RenderAutosaw()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineVacuumDistill.class, new RenderVacuumDistill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticReformer.class, new RenderCatalyticReformer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineHydrotreater.class, new RenderHydrotreater()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCoker.class, new RenderCoker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFan.class, new RenderFan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPistonInserter.class, new RenderPistonInserter()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 0edf21cfc..151131393 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -80,12 +80,13 @@ public class ResourceManager { public static final IModelCustom refinery_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery_exploded.obj")); public static final IModelCustom fraction_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_tower.obj")); public static final IModelCustom fraction_spacer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_spacer.obj")); - public static final IModelCustom cracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cracking_tower.obj")); - public static final IModelCustom catalytic_reformer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/catalytic_reformer.obj")); + public static final IModelCustom cracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cracking_tower.obj")).asDisplayList(); + public static final IModelCustom catalytic_reformer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/catalytic_reformer.obj")).asDisplayList(); + public static final IModelCustom hydrotreater = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hydrotreater.obj")).asDisplayList(); public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj")); public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")); public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj")); - public static final IModelCustom coker = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/coker.obj")); + public static final IModelCustom coker = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/coker.obj")).asDisplayList(); //Flare Stack public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")); @@ -479,6 +480,7 @@ public class ResourceManager { public static final ResourceLocation fraction_spacer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fraction_spacer.png"); public static final ResourceLocation cracking_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cracking_tower.png"); public static final ResourceLocation catalytic_reformer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/catalytic_reformer.png"); + public static final ResourceLocation hydrotreater_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/hydrotreater.png"); public static final ResourceLocation liquefactor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/liquefactor.png"); public static final ResourceLocation solidifier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solidifier.png"); public static final ResourceLocation compressor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/compressor.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderHydrotreater.java b/src/main/java/com/hbm/render/tileentity/RenderHydrotreater.java new file mode 100644 index 000000000..b2e3b319a --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderHydrotreater.java @@ -0,0 +1,52 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderHydrotreater extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.hydrotreater_tex); + ResourceManager.hydrotreater.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_hydrotreater); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(4, 4, 4); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.hydrotreater_tex); + ResourceManager.hydrotreater.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java index 5ef5ed3c2..66f4b6eab 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java @@ -55,7 +55,7 @@ public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase im if(!worldObj.isRemote) { - this.updateConnections(); + if(this.worldObj.getTotalWorldTime() % 20 == 0) this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); tanks[0].setType(9, slots); tanks[0].loadTank(1, 2, slots); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java new file mode 100644 index 000000000..dfafab682 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java @@ -0,0 +1,208 @@ +package com.hbm.tileentity.machine.oil; + +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.container.ContainerMachineHydrotreater; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineHydrotreater; +import com.hbm.inventory.recipes.HydrotreatingRecipes; +import com.hbm.items.ModItems; +import com.hbm.lib.Library; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IPersistentNBT; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Triplet; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineHydrotreater extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { + + public long power; + public static final long maxPower = 1_000_000; + + public FluidTank[] tanks; + + public TileEntityMachineHydrotreater() { + super(11); + + this.tanks = new FluidTank[4]; + this.tanks[0] = new FluidTank(Fluids.OIL, 64_000); + this.tanks[1] = new FluidTank(Fluids.HYDROGEN, 64_000); + this.tanks[2] = new FluidTank(Fluids.NONE, 24_000); + this.tanks[3] = new FluidTank(Fluids.SOURGAS, 24_000); + } + + @Override + public String getName() { + return "container.hydrotreater"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(this.worldObj.getTotalWorldTime() % 20 == 0) this.updateConnections(); + power = Library.chargeTEFromItems(slots, 0, power, maxPower); + tanks[0].setType(9, slots); + + tanks[0].loadTank(1, 2, slots); + tanks[1].loadTank(3, 4, slots); + + reform(); + + tanks[2].unloadTank(5, 6, slots); + tanks[3].unloadTank(7, 8, slots); + + for(DirPos pos : getConPos()) { + for(int i = 2; i < 4; i++) { + if(tanks[i].getFill() > 0) { + this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + } + } + } + + private void reform() { + + Triplet out = HydrotreatingRecipes.getOutput(tanks[0].getTankType()); + if(out == null) { + tanks[2].setTankType(Fluids.NONE); + tanks[3].setTankType(Fluids.NONE); + return; + } + + tanks[1].setTankType(out.getX().type); + tanks[2].setTankType(out.getY().type); + tanks[3].setTankType(out.getZ().type); + + if(power < 20_000) return; + if(tanks[0].getFill() < 50) return; + if(tanks[1].getFill() < out.getX().fill) return; + if(slots[10] == null || slots[10].getItem() != ModItems.catalytic_converter) return; + + if(tanks[2].getFill() + out.getY().fill > tanks[2].getMaxFill()) return; + if(tanks[3].getFill() + out.getZ().fill > tanks[3].getMaxFill()) return; + + tanks[0].setFill(tanks[0].getFill() - 50); + tanks[1].setFill(tanks[1].getFill() - out.getX().fill); + tanks[2].setFill(tanks[2].getFill() + out.getY().fill); + tanks[3].setFill(tanks[3].getFill() + out.getZ().fill); + + power -= 20_000; + } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); + tanks[2].readFromNBT(nbt, "t2"); + tanks[3].readFromNBT(nbt, "t3"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + tanks[0].writeToNBT(nbt, "t0"); + tanks[1].writeToNBT(nbt, "t1"); + tanks[2].writeToNBT(nbt, "t2"); + tanks[3].writeToNBT(nbt, "t3"); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 7, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + @Override public FluidTank[] getAllTanks() { return tanks; } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[2], tanks[3]}; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0], tanks[1]}; } + @Override public boolean canConnect(ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.DOWN; } + @Override public boolean canConnect(FluidType type, ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.DOWN; } + + @Override + public void writeNBT(NBTTagCompound nbt) { + if(tanks[0].getFill() == 0 && tanks[1].getFill() == 0 && tanks[2].getFill() == 0 && tanks[3].getFill() == 0) return; + NBTTagCompound data = new NBTTagCompound(); + for(int i = 0; i < 4; i++) this.tanks[i].writeToNBT(data, "" + i); + nbt.setTag(NBT_PERSISTENT_KEY, data); + } + + @Override + public void readNBT(NBTTagCompound nbt) { + NBTTagCompound data = nbt.getCompoundTag(NBT_PERSISTENT_KEY); + for(int i = 0; i < 4; i++) this.tanks[i].readFromNBT(data, "" + i); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineHydrotreater(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineHydrotreater(player.inventory, this); + } +} diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png index 077d004fd381c2d6147f8d9563c16b672e1bf44c..8806f89c767dc577139e7000da7ee16ca3bd5c91 100644 GIT binary patch literal 5395 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 literal 5356 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 F{|~=%;=%v` diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png index 255588ac747fb0eb1540d7a012d0a73726f74c6a..451e335558b66a73ea3cbafbbe914e7c3b61218a 100644 GIT binary patch delta 4637 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%0A=v>oX$52+4_)%Cb*+AI-=wAG35ci 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 Date: Thu, 1 Feb 2024 21:37:57 +0100 Subject: [PATCH 147/376] this fucking sucks --- changelog | 6 +- .../blocks/generic/BlockGlyphidSpawner.java | 9 ++ .../java/com/hbm/entity/EntityMappings.java | 9 ++ .../com/hbm/entity/effect/EntityMist.java | 2 +- .../com/hbm/entity/logic/EntityWaypoint.java | 9 +- .../mob/{ => glyphid}/EntityGlyphid.java | 64 +++------ .../{ => glyphid}/EntityGlyphidBehemoth.java | 38 ++---- .../{ => glyphid}/EntityGlyphidBlaster.java | 33 +---- .../EntityGlyphidBombardier.java | 11 +- .../{ => glyphid}/EntityGlyphidBrawler.java | 33 +---- .../{ => glyphid}/EntityGlyphidBrenda.java | 33 +---- .../{ => glyphid}/EntityGlyphidDigger.java | 22 +-- .../{ => glyphid}/EntityGlyphidNuclear.java | 45 ++---- .../mob/{ => glyphid}/EntityGlyphidScout.java | 21 +-- .../hbm/entity/mob/glyphid/GlyphidStats.java | 129 ++++++++++++++++++ .../hbm/entity/projectile/EntityAcidBomb.java | 2 +- .../hbm/entity/projectile/EntityChemical.java | 2 +- .../handler/pollution/PollutionHandler.java | 7 +- .../container/ContainerFurnaceBrick.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 8 ++ .../hbm/render/entity/mob/RenderGlyphid.java | 2 +- .../entity/mob/RenderGlyphidNuclear.java | 4 +- .../tileentity/deco/TileEntityLantern.java | 2 +- 23 files changed, 272 insertions(+), 221 deletions(-) rename src/main/java/com/hbm/entity/mob/{ => glyphid}/EntityGlyphid.java (93%) rename src/main/java/com/hbm/entity/mob/{ => glyphid}/EntityGlyphidBehemoth.java (83%) rename src/main/java/com/hbm/entity/mob/{ => glyphid}/EntityGlyphidBlaster.java (72%) rename src/main/java/com/hbm/entity/mob/{ => glyphid}/EntityGlyphidBombardier.java (84%) rename src/main/java/com/hbm/entity/mob/{ => glyphid}/EntityGlyphidBrawler.java (67%) rename src/main/java/com/hbm/entity/mob/{ => glyphid}/EntityGlyphidBrenda.java (82%) rename src/main/java/com/hbm/entity/mob/{ => glyphid}/EntityGlyphidDigger.java (85%) rename src/main/java/com/hbm/entity/mob/{ => glyphid}/EntityGlyphidNuclear.java (92%) rename src/main/java/com/hbm/entity/mob/{ => glyphid}/EntityGlyphidScout.java (96%) create mode 100644 src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java diff --git a/changelog b/changelog index 78ba0dbd9..43d903393 100644 --- a/changelog +++ b/changelog @@ -11,4 +11,8 @@ * Catalytic reformers now have a tooltip informing about the need for a catalytic converter * Several guns now have reload animations including most .357 revolvers and Samuel * Updated stealth missile texture -* Some of the larger oil machines now render using display lists which should make them somewhat more performant \ No newline at end of file +* Some of the larger oil machines now render using display lists which should make them somewhat more performant +* Glyphid diggers can no longer yeet multiblocks or blocks with tile entity + +## Fixed +* Fixed dupe caused by shift-clicking ashes out of the bricked furnace \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index eb211f871..8a94eea57 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -6,6 +6,15 @@ import java.util.function.Function; import com.hbm.blocks.IBlockMulti; import com.hbm.config.MobConfig; import com.hbm.entity.mob.*; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidBehemoth; +import com.hbm.entity.mob.glyphid.EntityGlyphidBlaster; +import com.hbm.entity.mob.glyphid.EntityGlyphidBombardier; +import com.hbm.entity.mob.glyphid.EntityGlyphidBrawler; +import com.hbm.entity.mob.glyphid.EntityGlyphidBrenda; +import com.hbm.entity.mob.glyphid.EntityGlyphidDigger; +import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; +import com.hbm.entity.mob.glyphid.EntityGlyphidScout; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 36892a6b0..65a8ae261 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -16,6 +16,15 @@ import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidBehemoth; +import com.hbm.entity.mob.glyphid.EntityGlyphidBlaster; +import com.hbm.entity.mob.glyphid.EntityGlyphidBombardier; +import com.hbm.entity.mob.glyphid.EntityGlyphidBrawler; +import com.hbm.entity.mob.glyphid.EntityGlyphidBrenda; +import com.hbm.entity.mob.glyphid.EntityGlyphidDigger; +import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; +import com.hbm.entity.mob.glyphid.EntityGlyphidScout; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; diff --git a/src/main/java/com/hbm/entity/effect/EntityMist.java b/src/main/java/com/hbm/entity/effect/EntityMist.java index 0348b4fd2..50df95ae6 100644 --- a/src/main/java/com/hbm/entity/effect/EntityMist.java +++ b/src/main/java/com/hbm/entity/effect/EntityMist.java @@ -2,7 +2,7 @@ package com.hbm.entity.effect; import java.util.List; -import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphid; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/entity/logic/EntityWaypoint.java b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java index 33712524e..2c9f37780 100644 --- a/src/main/java/com/hbm/entity/logic/EntityWaypoint.java +++ b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java @@ -1,16 +1,17 @@ package com.hbm.entity.logic; import com.hbm.config.MobConfig; -import com.hbm.entity.mob.EntityGlyphid; -import static com.hbm.entity.mob.EntityGlyphid.*; -import com.hbm.entity.mob.EntityGlyphidNuclear; -import com.hbm.entity.mob.EntityGlyphidScout; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; +import com.hbm.entity.mob.glyphid.EntityGlyphidScout; import com.hbm.main.MainRegistry; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import static com.hbm.entity.mob.glyphid.EntityGlyphid.*; + import java.util.List; public class EntityWaypoint extends Entity { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java similarity index 93% rename from src/main/java/com/hbm/entity/mob/EntityGlyphid.java rename to src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java index b9e88e699..9062f2db3 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java @@ -1,4 +1,4 @@ -package com.hbm.entity.mob; +package com.hbm.entity.mob.glyphid; import java.util.Arrays; import java.util.Collections; @@ -7,6 +7,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.config.MobConfig; import com.hbm.entity.logic.EntityWaypoint; +import com.hbm.entity.mob.EntityParasiteMaggot; import com.hbm.entity.pathfinder.PathFinderUtils; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.*; @@ -114,9 +115,17 @@ public class EntityGlyphid extends EntityMob { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(30D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getGrunt().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getGrunt().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getGrunt().damage); + } + + public int getDivisorPerArmorPoint() { + return GlyphidStats.getStats().getGrunt().divisor; + } + + public float getDamageThreshold() { + return GlyphidStats.getStats().getGrunt().damageThreshold; } @Override @@ -290,43 +299,9 @@ public class EntityGlyphid extends EntityMob { if(source.getEntity() instanceof EntityGlyphid) { return false; } - - if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote && !source.isFireDamage() && !source.getDamageType().equals(ModDamageSource.s_cryolator)) { - byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); - - if(armor != 0) { //if at least one bit of armor is present - - if(amount < getDamageThreshold()) return false; - - //chances of armor being broken off - if(amount > 1 && isArmorBroken(amount)) { - breakOffArmor(); - amount *= 0.25F; - } - - amount -= getDamageThreshold(); - if(amount < 0) return true; - } - - amount = this.calculateDamage(amount); - } - - if(source.isFireDamage()) { - amount *= 0.7F; - } else if(source.getDamageType().equals("player")) { - amount *= getScale() < 1.25 ? 1.5 : getScale() < 1.3 ? 0.8 : 0.5; - } else if(source == ModDamageSource.acid || source.equals(new DamageSource(ModDamageSource.s_acid))){ - amount = 0; - } else if(source == DamageSource.inWall) { - amount *= 15F; - } - - if(this.isPotionActive(HbmPotion.phosphorus.getId())){ - amount *= 1.5F; - } boolean alive = this.getHealth() > 0; - boolean wasAttacked = super.attackEntityFrom(source, amount); + boolean wasAttacked = GlyphidStats.getStats().handleAttack(this, source, amount); if(alive && this.getHealth() <= 0) { if(doesInfectedSpawnMaggots() && this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED) { @@ -348,6 +323,11 @@ public class EntityGlyphid extends EntityMob { return wasAttacked; } + + /** Provides a direct entrypoint from outside to access the superclass' implementation because otherwise we end up wwith infinite recursion */ + public boolean attackSuperclass(DamageSource source, float amount) { + return super.attackEntityFrom(source, amount); + } public boolean doesInfectedSpawnMaggots() { return true; @@ -364,7 +344,7 @@ public class EntityGlyphid extends EntityMob { for(int i = 0; i < 5; i++) { if((armor & (1 << i)) > 0) { - divisor++; + divisor += getDivisorPerArmorPoint(); } } @@ -373,10 +353,6 @@ public class EntityGlyphid extends EntityMob { return amount; } - public float getDamageThreshold() { - return 0.5F; - } - public void breakOffArmor() { byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); List indices = Arrays.asList(0, 1, 2, 3, 4); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java similarity index 83% rename from src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java rename to src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java index 27f2595d9..78c88ac25 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java @@ -1,4 +1,4 @@ -package com.hbm.entity.mob; +package com.hbm.entity.mob.glyphid; import com.hbm.entity.effect.EntityMist; import com.hbm.entity.projectile.EntityChemical; @@ -36,10 +36,14 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(130D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(25D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBehemoth().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBehemoth().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBehemoth().damage); } + + @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBehemoth().divisor; } + @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBehemoth().damageThreshold; } + public int timer = 120; int breathTime = 0; @@ -63,11 +67,6 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { timer = 120; } } - - } - @Override - public boolean attackEntityAsMob(Entity victum) { - return super.attackEntityAsMob(victum); } @Override @@ -108,25 +107,4 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { public int swingDuration() { return 100; } - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 4; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 2.5F; - } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java similarity index 72% rename from src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java rename to src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java index 5eecc8132..66f501855 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java @@ -1,4 +1,4 @@ -package com.hbm.entity.mob; +package com.hbm.entity.mob.glyphid; import com.hbm.main.ResourceManager; @@ -26,38 +26,19 @@ public class EntityGlyphidBlaster extends EntityGlyphidBombardier { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(10D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBlaster().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBlaster().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBlaster().damage); } + @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBlaster().divisor; } + @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBlaster().damageThreshold; } + @Override public boolean isArmorBroken(float amount) { return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); } - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 2; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 1.0F; - } - @Override public float getBombDamage() { return 15F; diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java similarity index 84% rename from src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java rename to src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java index 8a2093b63..a5efe58e7 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java @@ -1,4 +1,4 @@ -package com.hbm.entity.mob; +package com.hbm.entity.mob.glyphid; import com.hbm.entity.projectile.EntityAcidBomb; import com.hbm.main.ResourceManager; @@ -28,9 +28,14 @@ public class EntityGlyphidBombardier extends EntityGlyphid { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); - + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBombardier().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBombardier().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBombardier().damage); } + + @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBombardier().divisor; } + @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBombardier().damageThreshold; } + @Override public void onUpdate() { super.onUpdate(); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java similarity index 67% rename from src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java rename to src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java index 48d274667..13750a233 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java @@ -1,4 +1,4 @@ -package com.hbm.entity.mob; +package com.hbm.entity.mob.glyphid; import com.hbm.main.ResourceManager; @@ -26,35 +26,16 @@ public class EntityGlyphidBrawler extends EntityGlyphid { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(10D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBrawler().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBrawler().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBrawler().damage); } + @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBrawler().divisor; } + @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBrawler().damageThreshold; } + @Override public boolean isArmorBroken(float amount) { return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); } - - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - float divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 3; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 1.0F; - } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java similarity index 82% rename from src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java rename to src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java index 33926bbde..b7c492fb6 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java @@ -1,4 +1,4 @@ -package com.hbm.entity.mob; +package com.hbm.entity.mob.glyphid; import com.hbm.entity.effect.EntityMist; import com.hbm.inventory.fluid.Fluids; @@ -32,39 +32,20 @@ public class EntityGlyphidBrenda extends EntityGlyphid { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(250D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.2D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBrenda().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBrenda().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBrenda().damage); } + @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBrenda().divisor; } + @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBrenda().damageThreshold; } + @Override public boolean isArmorBroken(float amount) { // amount < 5 ? 5 : amount < 10 ? 3 : 2; return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.12, 2), 100); } - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 5; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 10F; - } - @Override public void onDeath(DamageSource source) { super.onDeath(source); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java similarity index 85% rename from src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java rename to src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java index 354162f3f..01f7b65f3 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java @@ -1,5 +1,6 @@ -package com.hbm.entity.mob; +package com.hbm.entity.mob.glyphid; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRubble; import com.hbm.lib.Library; @@ -38,17 +39,21 @@ public class EntityGlyphidDigger extends EntityGlyphid { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getDigger().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getDigger().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getDigger().damage); } + @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getDigger().divisor; } + @Override public float getDamageThreshold() { return GlyphidStats.getStats().getDigger().damageThreshold; } + public int timer = 0; + @Override public void onUpdate(){ super.onUpdate(); Entity e = this.getEntityToAttack(); - if (e != null) { + if (e != null && this.isEntityAlive()) { this.lastX = e.posX; this.lastY = e.posY; @@ -60,9 +65,8 @@ public class EntityGlyphidDigger extends EntityGlyphid { } } } - /** - * Mainly composed of crusty old power fist code, with some touch ups - **/ + + /** Mainly composed of crusty old power fist code, with some touch ups **/ public void groundSlam(){ if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < 30) { Entity e = this.getEntityToAttack(); @@ -128,7 +132,7 @@ public class EntityGlyphidDigger extends EntityGlyphid { Block b = worldObj.getBlock(x1, y1, z1); float k = b.getExplosionResistance(this, worldObj, x1, y1, z1, posX, posY, posZ); - if (k < ModBlocks.concrete.getExplosionResistance(this) && b.isNormalCube()) { + if (k < ModBlocks.concrete.getExplosionResistance(this) && b.isNormalCube() && !(b instanceof BlockDummyable) && worldObj.getTileEntity(x1, y1, z1) == null) { EntityRubble rubble = new EntityRubble(worldObj); rubble.posX = x1 + 0.5F; diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java similarity index 92% rename from src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java rename to src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java index b8342bf6f..6710afc85 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java @@ -1,7 +1,8 @@ -package com.hbm.entity.mob; +package com.hbm.entity.mob.glyphid; import com.hbm.blocks.ModBlocks; import com.hbm.entity.logic.EntityWaypoint; +import com.hbm.entity.mob.EntityParasiteMaggot; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; @@ -45,6 +46,17 @@ public class EntityGlyphidNuclear extends EntityGlyphid { return 2D; } + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getNuclear().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getNuclear().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getNuclear().damage); + } + + @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getNuclear().divisor; } + @Override public float getDamageThreshold() { return GlyphidStats.getStats().getNuclear().damageThreshold; } + @Override public void onUpdate() { super.onUpdate(); @@ -86,42 +98,11 @@ public class EntityGlyphidNuclear extends EntityGlyphid { } } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); - } - @Override public boolean isArmorBroken(float amount) { return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.12, 2), 100); } - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 5; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 10F; - } - @Override public boolean doesInfectedSpawnMaggots() { return false; diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java similarity index 96% rename from src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java rename to src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java index e6a5a4564..28137a780 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java @@ -1,4 +1,4 @@ -package com.hbm.entity.mob; +package com.hbm.entity.mob.glyphid; import com.hbm.blocks.ModBlocks; import com.hbm.config.MobConfig; @@ -54,19 +54,22 @@ public class EntityGlyphidScout extends EntityGlyphid { return 0.75D; } + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getScout().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getScout().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getScout().damage); + } + + @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getScout().divisor; } + @Override public float getDamageThreshold() { return GlyphidStats.getStats().getScout().damageThreshold; } + @Override public boolean isArmorBroken(float amount) { return this.rand.nextInt(100) <= Math.min(Math.pow(amount, 2), 100); } - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.5D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2D); - } - @Override public void onUpdate() { super.onUpdate(); diff --git a/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java new file mode 100644 index 000000000..354f8137e --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java @@ -0,0 +1,129 @@ +package com.hbm.entity.mob.glyphid; + +import com.hbm.lib.ModDamageSource; +import com.hbm.potion.HbmPotion; + +import net.minecraft.util.DamageSource; + +public abstract class GlyphidStats { + + public static GlyphidStats GLYPHID_STATS_70K = new GlyphidStats70K(); + public static GlyphidStats GLYPHID_STATS_NT = new GlyphidStatsNT(); + + public static GlyphidStats getStats() { + return GLYPHID_STATS_70K; + } + + protected StatBundle statsGrunt; + protected StatBundle statsBombardier; + protected StatBundle statsBrawler; + protected StatBundle statsDigger; + protected StatBundle statsBlaster; + protected StatBundle statsBehemoth; + protected StatBundle statsBrenda; + protected StatBundle statsNuclear; + protected StatBundle statsScout; + + public static class StatBundle { + public final double health; + public final double speed; + public final double damage; + public final int divisor; + public final float damageThreshold; + + public StatBundle(double health, double speed, double damage, int divisor, float damageThreshold) { + this.health = health; + this.speed = speed; + this.damage = damage; + this.divisor = divisor; + this.damageThreshold = damageThreshold; + } + } + + public abstract boolean handleAttack(EntityGlyphid glyphid, DamageSource source, float amount); + + /** Tier 1 */ public StatBundle getGrunt() { return statsGrunt; } + /** Tier 1 Ranged */ public StatBundle getBombardier() { return statsBombardier; } + /** Tier 2 */ public StatBundle getBrawler() { return statsBrawler; } + /** Tier 2 Specialist */ public StatBundle getDigger() { return statsDigger; } + /** Tier 2 Ranged */ public StatBundle getBlaster() { return statsBlaster; } + /** Tier 3 */ public StatBundle getBehemoth() { return statsBehemoth; } + /** Tier 4 */ public StatBundle getBrenda() { return statsBrenda; } + /** Tier 4 Specialist */ public StatBundle getNuclear() { return statsNuclear; } + /** Tier 0 */ public StatBundle getScout() { return statsScout; } + + public static class GlyphidStats70K extends GlyphidStats { + + public GlyphidStats70K() { + this.statsGrunt = new StatBundle(30D, 1D, 5D, 1, 0.5F); + this.statsBombardier = new StatBundle(20D, 1D, 5D, 1, 0.5F); + this.statsBrawler = new StatBundle(50D, 1D, 10D, 3, 1F); + this.statsDigger = new StatBundle(50D, 1D, 5D, 1, 0.5F); + this.statsBlaster = new StatBundle(50D, 1D, 10D, 2, 1F); + this.statsBehemoth = new StatBundle(130D, 0.8D, 25D, 4, 2.5F); + this.statsBrenda = new StatBundle(250D, 1.2D, 50D, 5, 10F); + this.statsNuclear = new StatBundle(100D, 0.8D, 50D, 5, 10F); + this.statsScout = new StatBundle(20D, 1.5D, 2D, 1, 0.5F); + } + + @Override + public boolean handleAttack(EntityGlyphid glyphid, DamageSource source, float amount) { + + if(!source.isDamageAbsolute() && !source.isUnblockable() && !glyphid.worldObj.isRemote && !source.isFireDamage() && !source.getDamageType().equals(ModDamageSource.s_cryolator)) { + byte armor = glyphid.getDataWatcher().getWatchableObjectByte(glyphid.DW_ARMOR); + + if(armor != 0) { //if at least one bit of armor is present + + if(amount < glyphid.getDamageThreshold()) return false; + + //chances of armor being broken off + if(amount > 1 && glyphid.isArmorBroken(amount)) { + glyphid.breakOffArmor(); + amount *= 0.25F; + } + + amount -= glyphid.getDamageThreshold(); + if(amount < 0) return true; + } + + amount = glyphid.calculateDamage(amount); + } + + if(source.isFireDamage()) { + amount *= 0.7F; + } else if(source.getDamageType().equals("player")) { + amount *= glyphid.getScale() < 1.25 ? 1.5 : glyphid.getScale() < 1.3 ? 0.8 : 0.5; + } else if(source == ModDamageSource.acid || ModDamageSource.s_acid.equals(source.getDamageType())){ + amount = 0; + } else if(source == DamageSource.inWall) { + amount *= 15F; + } + + if(glyphid.isPotionActive(HbmPotion.phosphorus.getId())){ + amount *= 1.5F; + } + + return glyphid.attackSuperclass(source, amount); + } + } + + public static class GlyphidStatsNT extends GlyphidStats { + + public GlyphidStatsNT() { + this.statsGrunt = new StatBundle(30D, 1D, 5D, 1, 0.5F); + this.statsBombardier = new StatBundle(20D, 1D, 5D, 1, 0.5F); + this.statsBrawler = new StatBundle(50D, 1D, 10D, 3, 1F); + this.statsDigger = new StatBundle(50D, 1D, 5D, 1, 0.5F); + this.statsBlaster = new StatBundle(50D, 1D, 10D, 2, 1F); + this.statsBehemoth = new StatBundle(130D, 0.8D, 25D, 4, 2.5F); + this.statsBrenda = new StatBundle(250D, 1.2D, 50D, 5, 10F); + this.statsNuclear = new StatBundle(100D, 0.8D, 50D, 5, 10F); + this.statsScout = new StatBundle(20D, 1.5D, 2D, 1, 0.5F); + } + + @Override + public boolean handleAttack(EntityGlyphid glyphid, DamageSource source, float amount) { + return true; + } + } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java index dd928b885..183d00c01 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java +++ b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java @@ -1,6 +1,6 @@ package com.hbm.entity.projectile; -import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphid; import com.hbm.lib.ModDamageSource; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/entity/projectile/EntityChemical.java b/src/main/java/com/hbm/entity/projectile/EntityChemical.java index ed30224e6..240d8f9d5 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChemical.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChemical.java @@ -4,7 +4,7 @@ import java.awt.Color; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphid; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 61c6e9bc4..9bb436a5c 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -10,9 +10,10 @@ import java.util.UUID; import com.hbm.config.MobConfig; import com.hbm.config.RadiationConfig; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidDigger; +import com.hbm.entity.mob.glyphid.EntityGlyphidScout; -import com.hbm.entity.mob.EntityGlyphidDigger; -import com.hbm.entity.mob.EntityGlyphidScout; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; @@ -332,7 +333,7 @@ public class PollutionHandler { PollutionData data = getPollutionData(world, (int) Math.floor(event.x), (int) Math.floor(event.y), (int) Math.floor(event.z)); if(data == null) return; - if(living instanceof IMob) { + if(living instanceof IMob && !(living instanceof EntityGlyphid)) { if(data.pollution[PollutionType.SOOT.ordinal()] > RadiationConfig.buffMobThreshold) { if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null && living.getEntityAttribute(SharedMonsterAttributes.maxHealth).getModifier(maxHealth) == null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier(maxHealth, "Soot Anger Health Increase", 1D, 1)); diff --git a/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java b/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java index 6c362144f..8ca1ee0a0 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java +++ b/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java @@ -49,7 +49,7 @@ public class ContainerFurnaceBrick extends Container { var3 = var5.copy(); if(par2 <= 3) { - if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { return null; } } else { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index b7d57b144..9ed67796e 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -66,6 +66,14 @@ import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidBehemoth; +import com.hbm.entity.mob.glyphid.EntityGlyphidBlaster; +import com.hbm.entity.mob.glyphid.EntityGlyphidBombardier; +import com.hbm.entity.mob.glyphid.EntityGlyphidBrawler; +import com.hbm.entity.mob.glyphid.EntityGlyphidBrenda; +import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; +import com.hbm.entity.mob.glyphid.EntityGlyphidScout; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java index 6ad109605..f5dc00064 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java @@ -2,7 +2,7 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; -import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphid; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java index 88c74cc21..2cd0abf45 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java @@ -2,8 +2,8 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; -import com.hbm.entity.mob.EntityGlyphid; -import com.hbm.entity.mob.EntityGlyphidNuclear; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; import com.hbm.main.ResourceManager; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java index 65be4a600..a3db452bb 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java @@ -2,7 +2,7 @@ package com.hbm.tileentity.deco; import java.util.List; -import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphid; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; From dc653d485e56c64bf6815a91d3164f98564eb850 Mon Sep 17 00:00:00 2001 From: George Paton Date: Fri, 2 Feb 2024 16:30:06 +1100 Subject: [PATCH 148/376] Add alt-fire sound to SPAS-12, and adjust animation to fit --- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 2 +- .../hbm/models/weapons/animations/spas12.json | 2 +- src/main/resources/assets/hbm/sounds.json | 1 + .../hbm/sounds/weapon/shotgunShootPumpAlt.ogg | Bin 0 -> 18347 bytes 4 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/weapon/shotgunShootPumpAlt.ogg diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 267ed5228..ae35fbdbc 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -138,7 +138,7 @@ public class Gun12GaugeFactory { config.firingDuration = 10; config.ammoCap = 8; config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.shotgunPump"; + config.firingSound = "hbm:weapon.shotgunPumpAlt"; config.reloadType = GunConfiguration.RELOAD_SINGLE; config.config = HbmCollection.g12hs; diff --git a/src/main/resources/assets/hbm/models/weapons/animations/spas12.json b/src/main/resources/assets/hbm/models/weapons/animations/spas12.json index a0da01372..f54a77a32 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/spas12.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/spas12.json @@ -1 +1 @@ -{"anim": {"Fire": {"MainBody": {"location": {"z": [[-0.0, 0.0], [0.7581773996353149, 16.666666666666668], [0.8946337699890137, 50.0], [1.6292921304702759, 50.0], [0.27919262647628784, 383.3333333333333], [0.13398613035678864, 33.33333333333337], [-0.08360463380813599, 83.33333333333337], [-0.28197288513183594, 116.66666666666652], [-0.4585123360157013, 83.33333333333337], [-0.0, 216.66666666666663]], "y": [[0.0, 0.0], [-0.055255696177482605, 16.666666666666668], [0.06926095485687256, 50.0], [-0.035571567714214325, 50.0], [0.14532151818275452, 383.3333333333333], [0.14532163739204407, 33.33333333333337], [0.2893771231174469, 83.33333333333337], [0.059010088443756104, 116.66666666666652], [0.3883959650993347, 83.33333333333337], [0.0, 216.66666666666663]], "x": [[0.0, 0.0], [0.09942026436328888, 16.666666666666668], [-0.04042813181877136, 50.0], [0.13011114299297333, 50.0], [0.026651103049516678, 383.3333333333333], [0.0, 33.33333333333337], [-0.11603647470474243, 83.33333333333337], [-0.3945091962814331, 116.66666666666652], [-0.30177658796310425, 83.33333333333337], [0.0, 216.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-8.462898079780109, 16.666666666666668], [19.266058025827537, 83.33333333333333], [1.500494163239071, 233.33333333333331], [6.633028929431163, 216.66666666666669], [8.546770241466927, 100.0], [12.210589580193902, 133.33333333333337], [7.617799627548077, 66.66666666666663], [0.539266273417544, 116.66666666666663], [0.0, 33.33333333333337]], "z": [[-0.0, 0.0], [-2.3773901342652737, 16.666666666666668], [-0.0, 316.66666666666663], [-0.0, 216.66666666666669], [-2.5606105990811003, 100.0], [-8.612766944322175, 133.33333333333337], [-9.193280943580838, 66.66666666666663], [-1.0644272457036594, 116.66666666666663], [-0.0, 33.33333333333337]], "y": [[0.0, 0.0], [-2.661507434160998, 16.666666666666668], [-0.0, 316.66666666666663], [0.0, 216.66666666666669], [5.899426058323597, 100.0], [-1.813550761204728, 133.33333333333337], [-5.824772090695357, 66.66666666666663], [-0.9415905623492115, 116.66666666666663], [0.0, 33.33333333333337]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0], [-0.0, 550.0], [1.3243759870529175, 100.0], [1.0643759965896606, 216.66666666666674], [-0.0, 66.66666666666663]]}}}, "FireAlt": {"MainBody": {"location": {"x": [[0.0, 0.0], [0.0, 183.33333333333331], [0.0, 366.6666666666667], [-0.11603647470474243, 66.66666666666674], [-0.3945091962814331, 83.33333333333326], [-0.30177658796310425, 83.33333333333337], [0.0, 233.33333333333326]], "z": [[-0.0, 0.0], [1.8780767917633057, 33.333333333333336], [0.46677228808403015, 149.99999999999997], [0.13398613035678864, 366.6666666666667], [-0.08360463380813599, 66.66666666666674], [-0.28197288513183594, 83.33333333333326], [-0.4585123360157013, 83.33333333333337], [-0.0, 233.33333333333326]], "y": [[0.0, 0.0], [0.7429239749908447, 50.0], [1.0745543241500854, 133.33333333333331], [0.14532163739204407, 366.6666666666667], [0.2893771231174469, 66.66666666666674], [0.059010088443756104, 83.33333333333326], [0.3883959650993347, 83.33333333333337], [0.0, 233.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 16.666666666666668], [22.4874603988034, 83.33333333333333], [13.903672239582296, 50.0], [6.633028929431163, 83.33333333333334], [8.546770241466927, 416.66666666666663], [12.210589580193902, 100.0], [7.269988465764457, 66.66666666666663], [0.0, 150.0]], "z": [[-0.0, 0.0], [-11.095223957599051, 100.0], [-0.0, 133.33333333333334], [-2.5606105990811003, 416.66666666666663], [-8.612766944322175, 100.0], [-12.303416119882606, 66.66666666666663], [-0.0, 150.0]], "y": [[0.0, 0.0], [-2.9238404860292015, 100.0], [0.0, 133.33333333333334], [5.899426058323597, 416.66666666666663], [-1.813550761204728, 100.0], [-6.207043691275808, 66.66666666666663], [0.0, 150.0]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0], [-0.0, 550.0], [1.3243759870529175, 100.0], [1.0643759965896606, 216.66666666666674], [-0.0, 66.66666666666663]]}}}, "Reload": {"MainBody": {"location": {"x": [[-0.7295733690261841, 0.0], [-0.7295733690261841, 83.33333333333333], [-0.7295733690261841, 99.99999999999999], [-0.5556169748306274, 133.33333333333331], [-0.6492857933044434, 116.66666666666674], [-0.7295733690261841, 100.0]], "z": [[-0.29214829206466675, 0.0], [-0.29214829206466675, 83.33333333333333], [-0.29214829206466675, 99.99999999999999], [-0.30703651905059814, 133.33333333333331], [-0.29901978373527527, 116.66666666666674], [-0.29214829206466675, 100.0]], "y": [[0.2915276288986206, 0.0], [0.2915276288986206, 83.33333333333333], [0.2915276288986206, 99.99999999999999], [0.4859994053840637, 133.33333333333331], [0.38128381967544556, 116.66666666666674], [0.2915276288986206, 100.0]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [1.6652197564429725, 83.33333333333333], [2.2122143889063857, 133.33333333333337], [9.618481563755287, 116.66666666666663], [5.616534990827301, 100.00000000000006], [2.2122143889063857, 100.0]], "z": [[-48.21786729477217, 0.0], [-45.59814140842461, 83.33333333333333], [-48.21786729477217, 133.33333333333337], [-53.60401787046082, 116.66666666666663], [-50.637738430910574, 100.00000000000006], [-48.21786729477217, 100.0]], "y": [[27.10300512666912, 0.0], [27.402903365198746, 83.33333333333333], [27.10300512666912, 133.33333333333337], [28.044826741511347, 116.66666666666663], [27.549100149288286, 100.00000000000006], [27.10300512666912, 100.0]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [-5.029141902923584e-08, 133.33333333333334], [0.004309347365051508, 83.33333333333334], [0.004309249576181173, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[1.5591249465942383, 0.0], [1.0179417133331299, 133.33333333333334], [-0.1231224536895752, 83.33333333333334], [-0.11966821551322937, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.6872029304504395, 0.0], [-2.3433218002319336, 133.33333333333334], [-1.7275460958480835, 83.33333333333334], [-0.3831302523612976, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [-0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}, "ReloadEmptyStart": {"MainBody": {"location": {"x": [[0.0, 0.0], [-0.3959049880504608, 100.0], [-0.8907862305641174, 50.0], [-0.912574291229248, 133.33333333333331], [-0.8907862305641174, 183.33333333333337], [-0.7295733690261841, 333.3333333333333]], "z": [[-0.0, 0.0], [-0.04771782457828522, 100.0], [-0.10736510902643204, 50.0], [-0.1299014389514923, 133.33333333333331], [-0.10736510902643204, 183.33333333333337], [-0.29214829206466675, 333.3333333333333]], "y": [[0.0, 0.0], [0.08693332225084305, 100.0], [0.1955999732017517, 50.0], [0.07320505380630493, 133.33333333333331], [0.1955999732017517, 183.33333333333337], [0.2915276288986206, 333.3333333333333]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.215149959628216, 116.66666666666667], [14.341662388977594, 66.66666666666664], [10.053024175167023, 150.0], [14.341662388977594, 183.33333333333331], [9.347183888601442, 83.33333333333337], [3.4013761500584048, 133.33333333333326], [2.2122143889063857, 66.66666666666674]], "z": [[-0.0, 0.0], [17.232944643893813, 116.66666666666667], [47.39059819759481, 66.66666666666664], [51.027851515545024, 150.0], [47.39059819759481, 183.33333333333331], [8.022402104733061, 83.33333333333337], [-38.844487923156436, 133.33333333333326], [-48.21786729477217, 66.66666666666674]], "y": [[0.0, 0.0], [-3.394506473857253, 116.66666666666667], [-9.334892963190004, 66.66666666666664], [-8.375116488567105, 150.0], [-9.334892963190004, 183.33333333333331], [5.668946020536571, 83.33333333333337], [23.530662511496125, 133.33333333333326], [27.10300512666912, 66.66666666666674]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0], [-0.0, 183.33333333333331], [1.0550689697265625, 66.66666666666669], [1.0550689697265625, 166.66666666666669], [-0.0, 99.99999999999994]]}}, "Shell": {"location": {"x": [[1.089231252670288, 0.0], [0.8341609239578247, 150.0], [1.3178642988204956, 100.0], [1.0271152257919312, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[1.2379006147384644, 0.0], [1.0393552780151367, 150.0], [1.1692359447479248, 100.0], [0.8952870965003967, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[-2.3190526962280273, 0.0], [-3.043679714202881, 150.0], [0.42155078053474426, 100.0], [0.3692183494567871, 33.333333333333314], [0.0, 66.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 150.0], [-4.686586806083493, 100.0], [-4.686586806083493, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[-0.0, 0.0], [-0.0, 150.0], [-0.5807879005165506, 100.0], [-0.5807879005165506, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[0.0, 0.0], [0.0, 150.0], [15.393064143768921, 100.0], [15.393064143768921, 33.333333333333314], [0.0, 66.66666666666669]]}}}, "ReloadEnd": {"MainBody": {"location": {"x": [[-0.7295733690261841, 0.0], [-0.5471799969673157, 166.66666666666666], [-0.15633714199066162, 100.00000000000003], [0.0, 150.0]], "z": [[-0.29214829206466675, 0.0], [-0.21911121904850006, 166.66666666666666], [-0.06260320544242859, 100.00000000000003], [-0.0, 150.0]], "y": [[0.2915276288986206, 0.0], [0.21864572167396545, 166.66666666666666], [0.0624702125787735, 100.00000000000003], [0.0, 150.0]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [1.6591607383189364, 166.66666666666666], [0.47404597097185575, 100.00000000000003], [0.0, 150.0]], "z": [[-48.21786729477217, 0.0], [-36.16339961730548, 166.66666666666666], [-10.332401110335347, 100.00000000000003], [-0.0, 150.0]], "y": [[27.10300512666912, 0.0], [20.327254271888663, 166.66666666666666], [5.807786690890005, 100.00000000000003], [0.0, 150.0]]}}}, "ReloadStart": {"MainBody": {"location": {"x": [[0.0, 0.0], [-0.7295733690261841, 166.66666666666666], [-0.7152981162071228, 50.00000000000003], [-0.7095879912376404, 66.66666666666663], [-0.7295733690261841, 116.66666666666669]], "z": [[-0.0, 0.0], [-0.29214829206466675, 166.66666666666666], [-0.28362342715263367, 50.00000000000003], [-0.28021347522735596, 66.66666666666663], [-0.29214829206466675, 116.66666666666669]], "y": [[0.0, 0.0], [0.2915276288986206, 166.66666666666666], [0.4171614646911621, 50.00000000000003], [0.4674150049686432, 66.66666666666663], [0.2915276288986206, 116.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [2.2122143889063857, 166.66666666666666], [5.485797059263618, 50.00000000000003], [6.795230554293333, 66.66666666666663], [2.2122143889063857, 116.66666666666669]], "z": [[-0.0, 0.0], [-48.21786729477217, 166.66666666666666], [-50.902555110315724, 50.00000000000003], [-51.976428187476394, 66.66666666666663], [-48.21786729477217, 116.66666666666669]], "y": [[0.0, 0.0], [27.10300512666912, 166.66666666666666], [26.843731145775436, 50.00000000000003], [26.74002155341796, 66.66666666666663], [27.10300512666912, 116.66666666666669]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [1.2852251529693604e-07, 133.33333333333334], [0.0, 83.33333333333334], [0.004309284035116434, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[-0.0, 0.0], [0.8857776522636414, 133.33333333333334], [-0.0984112098813057, 83.33333333333334], [-0.2392037808895111, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.806074380874634, 0.0], [-2.2905659675598145, 133.33333333333334], [-1.7331905364990234, 83.33333333333334], [-0.3817155361175537, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [-0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}}, "offset": {}} \ No newline at end of file +{"anim": {"Fire": {"MainBody": {"location": {"z": [[-0.0, 0.0], [0.7581773996353149, 16.666666666666668], [0.8946337699890137, 50.0], [1.6292921304702759, 50.0], [0.27919262647628784, 383.3333333333333], [0.13398613035678864, 33.33333333333337], [-0.08360463380813599, 83.33333333333337], [-0.28197288513183594, 116.66666666666652], [-0.4585123360157013, 83.33333333333337], [-0.0, 216.66666666666663]], "y": [[0.0, 0.0], [-0.055255696177482605, 16.666666666666668], [0.06926095485687256, 50.0], [-0.035571567714214325, 50.0], [0.14532151818275452, 383.3333333333333], [0.14532163739204407, 33.33333333333337], [0.2893771231174469, 83.33333333333337], [0.059010088443756104, 116.66666666666652], [0.3883959650993347, 83.33333333333337], [0.0, 216.66666666666663]], "x": [[0.0, 0.0], [0.09942026436328888, 16.666666666666668], [-0.04042813181877136, 50.0], [0.13011114299297333, 50.0], [0.026651103049516678, 383.3333333333333], [0.0, 33.33333333333337], [-0.11603647470474243, 83.33333333333337], [-0.3945091962814331, 116.66666666666652], [-0.30177658796310425, 83.33333333333337], [0.0, 216.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-8.462898079780109, 16.666666666666668], [19.266058025827537, 83.33333333333333], [1.500494163239071, 233.33333333333331], [6.633028929431163, 216.66666666666669], [8.546770241466927, 100.0], [12.210589580193902, 133.33333333333337], [7.617799627548077, 66.66666666666663], [0.539266273417544, 116.66666666666663], [0.0, 33.33333333333337]], "z": [[-0.0, 0.0], [-2.3773901342652737, 16.666666666666668], [-0.0, 316.66666666666663], [-0.0, 216.66666666666669], [-2.5606105990811003, 100.0], [-8.612766944322175, 133.33333333333337], [-9.193280943580838, 66.66666666666663], [-1.0644272457036594, 116.66666666666663], [-0.0, 33.33333333333337]], "y": [[0.0, 0.0], [-2.661507434160998, 16.666666666666668], [-0.0, 316.66666666666663], [0.0, 216.66666666666669], [5.899426058323597, 100.0], [-1.813550761204728, 133.33333333333337], [-5.824772090695357, 66.66666666666663], [-0.9415905623492115, 116.66666666666663], [0.0, 33.33333333333337]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0], [-0.0, 550.0], [1.3243759870529175, 100.0], [1.0643759965896606, 216.66666666666674], [-0.0, 66.66666666666663]]}}}, "FireAlt": {"MainBody": {"location": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [0.0, 499.99999999999994], [-0.11603647470474243, 66.66666666666674], [-0.3945091962814331, 83.33333333333337], [-0.30177658796310425, 83.33333333333326], [0.0, 233.33333333333326]], "z": [[-0.0, 0.0], [1.8780767917633057, 33.333333333333336], [0.46677228808403015, 183.33333333333334], [0.13398613035678864, 499.99999999999994], [-0.08360463380813599, 66.66666666666674], [-0.28197288513183594, 83.33333333333337], [-0.4585123360157013, 83.33333333333326], [-0.0, 233.33333333333326]], "y": [[0.0, 0.0], [0.7429239749908447, 50.0], [1.0745543241500854, 166.66666666666669], [0.14532163739204407, 499.99999999999994], [0.2893771231174469, 66.66666666666674], [0.059010088443756104, 83.33333333333337], [0.3883959650993347, 83.33333333333326], [0.0, 233.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 16.666666666666668], [22.4874603988034, 100.0], [13.903672239582296, 66.66666666666664], [6.633028929431163, 83.33333333333337], [8.546770241466927, 550.0], [12.210589580193902, 100.0], [7.269988465764457, 66.66666666666663], [0.0, 150.0]], "z": [[-0.0, 0.0], [-11.095223957599051, 116.66666666666667], [-0.0, 150.0], [-2.5606105990811003, 550.0], [-8.612766944322175, 100.0], [-12.303416119882606, 66.66666666666663], [-0.0, 150.0]], "y": [[0.0, 0.0], [-2.9238404860292015, 116.66666666666667], [0.0, 150.0], [5.899426058323597, 550.0], [-1.813550761204728, 100.0], [-6.207043691275808, 66.66666666666663], [0.0, 150.0]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0], [-0.0, 816.6666666666666], [1.3243759870529175, 100.0], [1.0643759965896606, 216.66666666666663], [-0.0, 66.66666666666674]]}}}, "Reload": {"MainBody": {"location": {"x": [[-0.7295733690261841, 0.0], [-0.7295733690261841, 83.33333333333333], [-0.7295733690261841, 99.99999999999999], [-0.5556169748306274, 133.33333333333331], [-0.6492857933044434, 116.66666666666674], [-0.7295733690261841, 100.0]], "z": [[-0.29214829206466675, 0.0], [-0.29214829206466675, 83.33333333333333], [-0.29214829206466675, 99.99999999999999], [-0.30703651905059814, 133.33333333333331], [-0.29901978373527527, 116.66666666666674], [-0.29214829206466675, 100.0]], "y": [[0.2915276288986206, 0.0], [0.2915276288986206, 83.33333333333333], [0.2915276288986206, 99.99999999999999], [0.4859994053840637, 133.33333333333331], [0.38128381967544556, 116.66666666666674], [0.2915276288986206, 100.0]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [1.6652197564429725, 83.33333333333333], [2.2122143889063857, 133.33333333333337], [9.618481563755287, 116.66666666666663], [5.616534990827301, 100.00000000000006], [2.2122143889063857, 100.0]], "z": [[-48.21786729477217, 0.0], [-45.59814140842461, 83.33333333333333], [-48.21786729477217, 133.33333333333337], [-53.60401787046082, 116.66666666666663], [-50.637738430910574, 100.00000000000006], [-48.21786729477217, 100.0]], "y": [[27.10300512666912, 0.0], [27.402903365198746, 83.33333333333333], [27.10300512666912, 133.33333333333337], [28.044826741511347, 116.66666666666663], [27.549100149288286, 100.00000000000006], [27.10300512666912, 100.0]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [-5.029141902923584e-08, 133.33333333333334], [0.004309347365051508, 83.33333333333334], [0.004309249576181173, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[1.5591249465942383, 0.0], [1.0179417133331299, 133.33333333333334], [-0.1231224536895752, 83.33333333333334], [-0.11966821551322937, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.6872029304504395, 0.0], [-2.3433218002319336, 133.33333333333334], [-1.7275460958480835, 83.33333333333334], [-0.3831302523612976, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [-0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}, "ReloadEmptyStart": {"MainBody": {"location": {"x": [[0.0, 0.0], [-0.3959049880504608, 100.0], [-0.8907862305641174, 50.0], [-0.912574291229248, 133.33333333333331], [-0.8907862305641174, 183.33333333333337], [-0.7295733690261841, 333.3333333333333]], "z": [[-0.0, 0.0], [-0.04771782457828522, 100.0], [-0.10736510902643204, 50.0], [-0.1299014389514923, 133.33333333333331], [-0.10736510902643204, 183.33333333333337], [-0.29214829206466675, 333.3333333333333]], "y": [[0.0, 0.0], [0.08693332225084305, 100.0], [0.1955999732017517, 50.0], [0.07320505380630493, 133.33333333333331], [0.1955999732017517, 183.33333333333337], [0.2915276288986206, 333.3333333333333]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.215149959628216, 116.66666666666667], [14.341662388977594, 66.66666666666664], [10.053024175167023, 150.0], [14.341662388977594, 183.33333333333331], [9.347183888601442, 83.33333333333337], [3.4013761500584048, 133.33333333333326], [2.2122143889063857, 66.66666666666674]], "z": [[-0.0, 0.0], [17.232944643893813, 116.66666666666667], [47.39059819759481, 66.66666666666664], [51.027851515545024, 150.0], [47.39059819759481, 183.33333333333331], [8.022402104733061, 83.33333333333337], [-38.844487923156436, 133.33333333333326], [-48.21786729477217, 66.66666666666674]], "y": [[0.0, 0.0], [-3.394506473857253, 116.66666666666667], [-9.334892963190004, 66.66666666666664], [-8.375116488567105, 150.0], [-9.334892963190004, 183.33333333333331], [5.668946020536571, 83.33333333333337], [23.530662511496125, 133.33333333333326], [27.10300512666912, 66.66666666666674]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0], [-0.0, 183.33333333333331], [1.0550689697265625, 66.66666666666669], [1.0550689697265625, 166.66666666666669], [-0.0, 99.99999999999994]]}}, "Shell": {"location": {"x": [[1.089231252670288, 0.0], [0.8341609239578247, 150.0], [1.3178642988204956, 100.0], [1.0271152257919312, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[1.2379006147384644, 0.0], [1.0393552780151367, 150.0], [1.1692359447479248, 100.0], [0.8952870965003967, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[-2.3190526962280273, 0.0], [-3.043679714202881, 150.0], [0.42155078053474426, 100.0], [0.3692183494567871, 33.333333333333314], [0.0, 66.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 150.0], [-4.686586806083493, 100.0], [-4.686586806083493, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[-0.0, 0.0], [-0.0, 150.0], [-0.5807879005165506, 100.0], [-0.5807879005165506, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[0.0, 0.0], [0.0, 150.0], [15.393064143768921, 100.0], [15.393064143768921, 33.333333333333314], [0.0, 66.66666666666669]]}}}, "ReloadEnd": {"MainBody": {"location": {"x": [[-0.7295733690261841, 0.0], [-0.5471799969673157, 166.66666666666666], [-0.15633714199066162, 100.00000000000003], [0.0, 150.0]], "z": [[-0.29214829206466675, 0.0], [-0.21911121904850006, 166.66666666666666], [-0.06260320544242859, 100.00000000000003], [-0.0, 150.0]], "y": [[0.2915276288986206, 0.0], [0.21864572167396545, 166.66666666666666], [0.0624702125787735, 100.00000000000003], [0.0, 150.0]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [1.6591607383189364, 166.66666666666666], [0.47404597097185575, 100.00000000000003], [0.0, 150.0]], "z": [[-48.21786729477217, 0.0], [-36.16339961730548, 166.66666666666666], [-10.332401110335347, 100.00000000000003], [-0.0, 150.0]], "y": [[27.10300512666912, 0.0], [20.327254271888663, 166.66666666666666], [5.807786690890005, 100.00000000000003], [0.0, 150.0]]}}}, "ReloadStart": {"MainBody": {"location": {"x": [[0.0, 0.0], [-0.7295733690261841, 166.66666666666666], [-0.7152981162071228, 50.00000000000003], [-0.7095879912376404, 66.66666666666663], [-0.7295733690261841, 116.66666666666669]], "z": [[-0.0, 0.0], [-0.29214829206466675, 166.66666666666666], [-0.28362342715263367, 50.00000000000003], [-0.28021347522735596, 66.66666666666663], [-0.29214829206466675, 116.66666666666669]], "y": [[0.0, 0.0], [0.2915276288986206, 166.66666666666666], [0.4171614646911621, 50.00000000000003], [0.4674150049686432, 66.66666666666663], [0.2915276288986206, 116.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [2.2122143889063857, 166.66666666666666], [5.485797059263618, 50.00000000000003], [6.795230554293333, 66.66666666666663], [2.2122143889063857, 116.66666666666669]], "z": [[-0.0, 0.0], [-48.21786729477217, 166.66666666666666], [-50.902555110315724, 50.00000000000003], [-51.976428187476394, 66.66666666666663], [-48.21786729477217, 116.66666666666669]], "y": [[0.0, 0.0], [27.10300512666912, 166.66666666666666], [26.843731145775436, 50.00000000000003], [26.74002155341796, 66.66666666666663], [27.10300512666912, 116.66666666666669]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [1.2852251529693604e-07, 133.33333333333334], [0.0, 83.33333333333334], [0.004309284035116434, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[-0.0, 0.0], [0.8857776522636414, 133.33333333333334], [-0.0984112098813057, 83.33333333333334], [-0.2392037808895111, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.806074380874634, 0.0], [-2.2905659675598145, 133.33333333333334], [-1.7331905364990234, 83.33333333333334], [-0.3817155361175537, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [-0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}}, "offset": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 552af731b..c50ce0410 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -199,6 +199,7 @@ "weapon.extinguisher": {"category": "player", "sounds": [{"name": "weapon/extinguisher", "stream": false}]}, "weapon.robin_explosion": {"category": "player", "sounds": [{"name": "weapon/robin_explosion", "stream": false}]}, "weapon.shotgunPump": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPump", "stream": false}]}, + "weapon.shotgunPumpAlt": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPumpAlt", "stream": false}]}, "weapon.explosionMedium": {"category": "player", "sounds": [{"name": "weapon/explosion_medium", "stream": false}]}, "weapon.hicalShot": {"category": "player", "sounds": [{"name": "weapon/hicalShot", "stream": false}]}, "weapon.coilgunReload": {"category": "player", "sounds": [{"name": "weapon/coilgunReload", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/shotgunShootPumpAlt.ogg b/src/main/resources/assets/hbm/sounds/weapon/shotgunShootPumpAlt.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b4d1bac67c69aca233c7653055f763cc79a860ea GIT binary patch literal 18347 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 Date: Fri, 2 Feb 2024 14:59:02 +0100 Subject: [PATCH 149/376] missile stuff --- changelog | 10 ++- .../java/com/hbm/entity/EntityMappings.java | 10 +-- .../entity/missile/EntityMissileBaseNT.java | 29 +++++++-- .../hbm/entity/mob/glyphid/EntityGlyphid.java | 17 +++-- .../mob/glyphid/EntityGlyphidBehemoth.java | 2 +- .../mob/glyphid/EntityGlyphidBlaster.java | 2 +- .../mob/glyphid/EntityGlyphidBombardier.java | 2 +- .../mob/glyphid/EntityGlyphidBrawler.java | 2 +- .../mob/glyphid/EntityGlyphidBrenda.java | 2 +- .../mob/glyphid/EntityGlyphidDigger.java | 2 +- .../mob/glyphid/EntityGlyphidNuclear.java | 2 +- .../mob/glyphid/EntityGlyphidScout.java | 2 +- .../hbm/entity/mob/glyphid/GlyphidStats.java | 22 +++---- .../projectile/EntityThrowableInterp.java | 3 + .../entity/projectile/EntityThrowableNT.java | 3 - .../java/com/hbm/items/tool/IItemAbility.java | 4 +- src/main/java/com/hbm/main/ClientProxy.java | 9 +-- .../com/hbm/particle/ParticleContrail.java | 65 ++++++++++--------- .../com/hbm/particle/ParticleSmokePlume.java | 13 +++- .../entity/rocket/RenderMissileCustom.java | 36 +++++----- .../entity/rocket/RenderMissileDoomsday.java | 24 +++---- .../entity/rocket/RenderMissileGeneric.java | 1 + .../entity/rocket/RenderMissileHuge.java | 21 +++--- .../entity/rocket/RenderMissileMirv.java | 15 +++-- .../entity/rocket/RenderMissileNuclear.java | 11 ++-- .../entity/rocket/RenderMissileShuttle.java | 14 ++-- .../entity/rocket/RenderMissileStrong.java | 24 +++---- .../entity/rocket/RenderMissileTaint.java | 19 +++--- .../entity/rocket/RenderMissileThermo.java | 19 +++--- .../tileentity/bomb/TileEntityLaunchPad.java | 19 +++++- 30 files changed, 224 insertions(+), 180 deletions(-) diff --git a/changelog b/changelog index 43d903393..880789371 100644 --- a/changelog +++ b/changelog @@ -13,6 +13,14 @@ * Updated stealth missile texture * Some of the larger oil machines now render using display lists which should make them somewhat more performant * Glyphid diggers can no longer yeet multiblocks or blocks with tile entity +* Parasite-infested glyphids now explode into gore when the parasites pop out +* Missiles now have a top acceleration twice as much as the previous acceleration, but instead of being static, the acceleration goes up from 0 to max within 3 seconds + * This makes missiles reach top speed faster while also making the launches themselves slower and more pleasant +* Strange stone can no longer be destroyed via AoE, making it easier to find without accidentally mining it +* Launch pads now spawn launch smoke just like custom missile compact launchers ## Fixed -* Fixed dupe caused by shift-clicking ashes out of the bricked furnace \ No newline at end of file +* Fixed dupe caused by shift-clicking ashes out of the bricked furnace +* Fixed missiles jerkingly rotating when launching, they should now smoothly transition from being part of the launch pad to being an entity +* Fixed missile control and launch smoke shifting around when the player is moving +* Fixed fast-moving missiles spawning too few particles, causing holes in the contrail \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 65a8ae261..26dbf0d9b 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -16,15 +16,7 @@ import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; -import com.hbm.entity.mob.glyphid.EntityGlyphid; -import com.hbm.entity.mob.glyphid.EntityGlyphidBehemoth; -import com.hbm.entity.mob.glyphid.EntityGlyphidBlaster; -import com.hbm.entity.mob.glyphid.EntityGlyphidBombardier; -import com.hbm.entity.mob.glyphid.EntityGlyphidBrawler; -import com.hbm.entity.mob.glyphid.EntityGlyphidBrenda; -import com.hbm.entity.mob.glyphid.EntityGlyphidDigger; -import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; -import com.hbm.entity.mob.glyphid.EntityGlyphidScout; +import com.hbm.entity.mob.glyphid.*; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 70ac4e39c..c4faafcd2 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -14,10 +14,12 @@ import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.main.MainRegistry; +import com.hbm.util.TrackerUtil; import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.EntityTrackerEntry; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; @@ -26,6 +28,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; @@ -66,6 +69,8 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen accelXZ = decelY = 1 / vector.lengthVector(); decelY *= 2; velocity = 0; + + this.rotationYaw = (float) (Math.atan2(targetX - posX, targetZ - posZ) * 180.0D / Math.PI); this.setSize(1.5F, 1.5F); } @@ -105,9 +110,12 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen @Override public void onUpdate() { + this.lastTickPosX = this.posX; + this.lastTickPosY = this.posY; + this.lastTickPosZ = this.posZ; super.onUpdate(); - if(velocity < 4) velocity += 0.025; + if(velocity < 4) velocity += MathHelper.clamp_double(this.ticksExisted / 60D * 0.05D, 0, 0.05); if(!worldObj.isRemote) { @@ -141,15 +149,18 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen this.setDead(); return; } - + + this.rotationYaw = (float) (Math.atan2(targetX - posX, targetZ - posZ) * 180.0D / Math.PI); + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + EntityTrackerEntry tracker = TrackerUtil.getTrackerEntry((WorldServer) worldObj, this.getEntityId()); + if(tracker != null) tracker.lastYaw += 100; //coax the tracker into sending smother updates + loadNeighboringChunks((int) Math.floor(posX / 16), (int) Math.floor(posZ / 16)); } else { this.spawnContrail(); } - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); while(this.rotationPitch - this.prevRotationPitch >= 180.0F) 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; @@ -160,8 +171,12 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen } protected void spawnContrail() { - Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); - MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2); + Vec3 vec = Vec3.createVectorHelper(this.lastTickPosX - this.posX, this.lastTickPosY - this.posY, this.lastTickPosZ - this.posZ); + double len = vec.lengthVector(); + vec = vec.normalize(); + for(int i = 0; i < Math.max(Math.min(len, 10), 1); i++) { + MainRegistry.proxy.particleControl(posX - vec.xCoord * i, posY - vec.yCoord * i, posZ - vec.zCoord * i, 2); + } } @Override diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java index 9062f2db3..c3cc5b847 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java @@ -14,10 +14,11 @@ import com.hbm.explosion.vanillant.standard.*; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; import com.hbm.main.ResourceManager; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; -import com.hbm.potion.HbmPotion; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -120,7 +121,7 @@ public class EntityGlyphid extends EntityMob { this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getGrunt().damage); } - public int getDivisorPerArmorPoint() { + public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getGrunt().divisor; } @@ -318,6 +319,14 @@ public class EntityGlyphid extends EntityMob { maggot.velocityChanged = true; this.worldObj.spawnEntityInWorld(maggot); } + + worldObj.playSoundEffect(posX, posY, posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", this.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, posX, posY + height * 0.5, posZ), new TargetPoint(dimension, posX, posY + height * 0.5, posZ, 150)); + } } @@ -340,7 +349,7 @@ public class EntityGlyphid extends EntityMob { public float calculateDamage(float amount) { byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); - int divisor = 1; + float divisor = 1; for(int i = 0; i < 5; i++) { if((armor & (1 << i)) > 0) { diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java index 78c88ac25..28bc49068 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java @@ -41,7 +41,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBehemoth().damage); } - @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBehemoth().divisor; } + @Override public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBehemoth().divisor; } @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBehemoth().damageThreshold; } public int timer = 120; diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java index 66f501855..fb0b7c320 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java @@ -31,7 +31,7 @@ public class EntityGlyphidBlaster extends EntityGlyphidBombardier { this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBlaster().damage); } - @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBlaster().divisor; } + @Override public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBlaster().divisor; } @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBlaster().damageThreshold; } @Override diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java index a5efe58e7..6a2f437cf 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java @@ -33,7 +33,7 @@ public class EntityGlyphidBombardier extends EntityGlyphid { this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBombardier().damage); } - @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBombardier().divisor; } + @Override public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBombardier().divisor; } @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBombardier().damageThreshold; } @Override diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java index 13750a233..134f66ca7 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java @@ -31,7 +31,7 @@ public class EntityGlyphidBrawler extends EntityGlyphid { this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBrawler().damage); } - @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBrawler().divisor; } + @Override public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBrawler().divisor; } @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBrawler().damageThreshold; } @Override diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java index b7c492fb6..a4b2f8367 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java @@ -37,7 +37,7 @@ public class EntityGlyphidBrenda extends EntityGlyphid { this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBrenda().damage); } - @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBrenda().divisor; } + @Override public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBrenda().divisor; } @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBrenda().damageThreshold; } @Override diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java index 01f7b65f3..1e044dcca 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java @@ -44,7 +44,7 @@ public class EntityGlyphidDigger extends EntityGlyphid { this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getDigger().damage); } - @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getDigger().divisor; } + @Override public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getDigger().divisor; } @Override public float getDamageThreshold() { return GlyphidStats.getStats().getDigger().damageThreshold; } public int timer = 0; diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java index 6710afc85..7c1ce74e1 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java @@ -54,7 +54,7 @@ public class EntityGlyphidNuclear extends EntityGlyphid { this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getNuclear().damage); } - @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getNuclear().divisor; } + @Override public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getNuclear().divisor; } @Override public float getDamageThreshold() { return GlyphidStats.getStats().getNuclear().damageThreshold; } @Override diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java index 28137a780..251bd23d9 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java @@ -62,7 +62,7 @@ public class EntityGlyphidScout extends EntityGlyphid { this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getScout().damage); } - @Override public int getDivisorPerArmorPoint() { return GlyphidStats.getStats().getScout().divisor; } + @Override public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getScout().divisor; } @Override public float getDamageThreshold() { return GlyphidStats.getStats().getScout().damageThreshold; } @Override diff --git a/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java index 354f8137e..f54f30487 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java @@ -28,10 +28,10 @@ public abstract class GlyphidStats { public final double health; public final double speed; public final double damage; - public final int divisor; + public final float divisor; public final float damageThreshold; - public StatBundle(double health, double speed, double damage, int divisor, float damageThreshold) { + public StatBundle(double health, double speed, double damage, float divisor, float damageThreshold) { this.health = health; this.speed = speed; this.damage = damage; @@ -55,15 +55,15 @@ public abstract class GlyphidStats { public static class GlyphidStats70K extends GlyphidStats { public GlyphidStats70K() { - this.statsGrunt = new StatBundle(30D, 1D, 5D, 1, 0.5F); - this.statsBombardier = new StatBundle(20D, 1D, 5D, 1, 0.5F); - this.statsBrawler = new StatBundle(50D, 1D, 10D, 3, 1F); - this.statsDigger = new StatBundle(50D, 1D, 5D, 1, 0.5F); - this.statsBlaster = new StatBundle(50D, 1D, 10D, 2, 1F); - this.statsBehemoth = new StatBundle(130D, 0.8D, 25D, 4, 2.5F); - this.statsBrenda = new StatBundle(250D, 1.2D, 50D, 5, 10F); - this.statsNuclear = new StatBundle(100D, 0.8D, 50D, 5, 10F); - this.statsScout = new StatBundle(20D, 1.5D, 2D, 1, 0.5F); + this.statsGrunt = new StatBundle(30D, 1D, 5D, 1F, 0.5F); + this.statsBombardier = new StatBundle(20D, 1D, 5D, 1F, 0.5F); + this.statsBrawler = new StatBundle(50D, 1D, 10D, 3F, 1F); + this.statsDigger = new StatBundle(50D, 1D, 5D, 1F, 0.5F); + this.statsBlaster = new StatBundle(50D, 1D, 10D, 2F, 1F); + this.statsBehemoth = new StatBundle(130D, 0.8D, 25D, 4F, 2.5F); + this.statsBrenda = new StatBundle(250D, 1.2D, 50D, 5F, 10F); + this.statsNuclear = new StatBundle(100D, 0.8D, 50D, 5F, 10F); + this.statsScout = new StatBundle(20D, 1.5D, 2D, 1F, 0.5F); } @Override diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java index b0ac2f773..5c14254dd 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java @@ -34,6 +34,9 @@ public abstract class EntityThrowableInterp extends EntityThrowableNT { if(!worldObj.isRemote) { super.onUpdate(); } else { + this.lastTickPosX = this.posX; + this.lastTickPosY = this.posY; + this.lastTickPosZ = this.posZ; if(this.turnProgress > 0) { double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 40964b9d3..a96f66097 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -142,9 +142,6 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { @Override public void onUpdate() { - this.lastTickPosX = this.posX; - this.lastTickPosY = this.posY; - this.lastTickPosZ = this.posZ; super.onUpdate(); if(this.throwableShake > 0) { diff --git a/src/main/java/com/hbm/items/tool/IItemAbility.java b/src/main/java/com/hbm/items/tool/IItemAbility.java index f02dccf4e..4096a2a6b 100644 --- a/src/main/java/com/hbm/items/tool/IItemAbility.java +++ b/src/main/java/com/hbm/items/tool/IItemAbility.java @@ -3,6 +3,8 @@ package com.hbm.items.tool; import java.util.ArrayList; import java.util.Random; +import com.hbm.blocks.ModBlocks; + import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.enchantment.Enchantment; @@ -43,7 +45,7 @@ public interface IItemAbility { Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); - if(!(canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) || block == Blocks.bedrock) + if(!(canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) || block == Blocks.bedrock || block == ModBlocks.stone_keyhole) return; Block refBlock = world.getBlock(refX, refY, refZ); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 9ed67796e..1b8a9e3ad 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -66,14 +66,7 @@ import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; -import com.hbm.entity.mob.glyphid.EntityGlyphid; -import com.hbm.entity.mob.glyphid.EntityGlyphidBehemoth; -import com.hbm.entity.mob.glyphid.EntityGlyphidBlaster; -import com.hbm.entity.mob.glyphid.EntityGlyphidBombardier; -import com.hbm.entity.mob.glyphid.EntityGlyphidBrawler; -import com.hbm.entity.mob.glyphid.EntityGlyphidBrenda; -import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; -import com.hbm.entity.mob.glyphid.EntityGlyphidScout; +import com.hbm.entity.mob.glyphid.*; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; diff --git a/src/main/java/com/hbm/particle/ParticleContrail.java b/src/main/java/com/hbm/particle/ParticleContrail.java index 9a972bee4..5e0da75b0 100644 --- a/src/main/java/com/hbm/particle/ParticleContrail.java +++ b/src/main/java/com/hbm/particle/ParticleContrail.java @@ -8,11 +8,13 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -28,9 +30,9 @@ public class ParticleContrail extends EntityFX { super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); theRenderEngine = p_i1213_1_; maxAge = 100 + rand.nextInt(40); - - this.particleRed = this.particleGreen = this.particleBlue = 0; - this.particleScale = 1F; + + this.particleRed = this.particleGreen = this.particleBlue = 0; + this.particleScale = 1F; } public ParticleContrail(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_, float red, float green, float blue, float scale) { @@ -38,24 +40,23 @@ public class ParticleContrail extends EntityFX { theRenderEngine = p_i1213_1_; maxAge = 100 + rand.nextInt(40); - this.particleRed = red; - this.particleGreen = green; - this.particleBlue = blue; - - this.particleScale = scale; + this.particleRed = red; + this.particleGreen = green; + this.particleBlue = blue; + + this.particleScale = scale; } public void onUpdate() { this.prevPosX = this.posX; this.prevPosY = this.posY; this.prevPosZ = this.posZ; - - particleAlpha = 1 - ((float) age / (float) maxAge); - - ++this.age; - - if (this.age == this.maxAge) { + particleAlpha = 1 - ((float) age / (float) maxAge); + + ++this.age; + + if(this.age == this.maxAge) { this.setDead(); } } @@ -65,40 +66,44 @@ public class ParticleContrail extends EntityFX { } public void renderParticle(Tessellator p_70539_1_, float p_70539_2_, float p_70539_3_, float p_70539_4_, float p_70539_5_, float p_70539_6_, float p_70539_7_) { - + this.theRenderEngine.bindTexture(texture); - + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_BLEND); GL11.glDepthMask(false); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); RenderHelper.disableStandardItemLighting(); - + Random urandom = new Random(this.getEntityId()); + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)p_70539_2_; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)p_70539_2_; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)p_70539_2_; + for(int i = 0; i < 6; i++) { - + p_70539_1_.startDrawingQuads(); - float mod = urandom.nextFloat() * 0.2F + 0.2F; p_70539_1_.setColorRGBA_F(this.particleRed + mod, this.particleGreen + mod, this.particleBlue + mod, this.particleAlpha); p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); p_70539_1_.setBrightness(240); - + float scale = particleAlpha + 0.5F * this.particleScale; - float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double)p_70539_2_ - interpPosX) + urandom.nextGaussian() * 0.5); - float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double)p_70539_2_ - interpPosY) + urandom.nextGaussian() * 0.5); - float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double)p_70539_2_ - interpPosZ) + urandom.nextGaussian() * 0.5); - - p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale - p_70539_7_ * scale), 1, 1); - p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale + p_70539_7_ * scale), 1, 0); - p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale + p_70539_7_ * scale), 0, 0); - p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale - p_70539_7_ * scale), 0, 1); + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - dX) + urandom.nextGaussian() * 0.5); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - dY) + urandom.nextGaussian() * 0.5); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - dZ) + urandom.nextGaussian() * 0.5); + + p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale - p_70539_6_ * scale), (double) (pY - p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale - p_70539_7_ * scale), 1, 1); + p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale + p_70539_6_ * scale), (double) (pY + p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale + p_70539_7_ * scale), 1, 0); + p_70539_1_.addVertexWithUV((double) (pX + p_70539_3_ * scale + p_70539_6_ * scale), (double) (pY + p_70539_4_ * scale), (double) (pZ + p_70539_5_ * scale + p_70539_7_ * scale), 0, 0); + p_70539_1_.addVertexWithUV((double) (pX + p_70539_3_ * scale - p_70539_6_ * scale), (double) (pY - p_70539_4_ * scale), (double) (pZ + p_70539_5_ * scale - p_70539_7_ * scale), 0, 1); p_70539_1_.draw(); } - + GL11.glPolygonOffset(0.0F, 0.0F); GL11.glEnable(GL11.GL_LIGHTING); } diff --git a/src/main/java/com/hbm/particle/ParticleSmokePlume.java b/src/main/java/com/hbm/particle/ParticleSmokePlume.java index bc6c9c2c5..c17b2e6ea 100644 --- a/src/main/java/com/hbm/particle/ParticleSmokePlume.java +++ b/src/main/java/com/hbm/particle/ParticleSmokePlume.java @@ -8,11 +8,13 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -73,6 +75,11 @@ public class ParticleSmokePlume extends EntityFX { RenderHelper.disableStandardItemLighting(); Random urandom = new Random(this.getEntityId()); + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)p_70539_2_; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)p_70539_2_; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)p_70539_2_; for(int i = 0; i < 6; i++) { @@ -85,9 +92,9 @@ public class ParticleSmokePlume extends EntityFX { p_70539_1_.setBrightness(240); float scale = 0.5F; - float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - interpPosX) + urandom.nextGaussian() * 0.5); - float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - interpPosY) + urandom.nextGaussian() * 0.5); - float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - interpPosZ) + urandom.nextGaussian() * 0.5); + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - dX) + urandom.nextGaussian() * 0.5); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - dY) + urandom.nextGaussian() * 0.5); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - dZ) + urandom.nextGaussian() * 0.5); p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale - p_70539_6_ * scale), (double) (pY - p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale - p_70539_7_ * scale), 1, 1); p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale + p_70539_6_ * scale), (double) (pY + p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale + p_70539_7_ * scale), 1, 0); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileCustom.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileCustom.java index e7fd50aa1..be59b8aa1 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileCustom.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileCustom.java @@ -16,27 +16,26 @@ import net.minecraft.util.ResourceLocation; public class RenderMissileCustom extends Render { @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + + int w = entity.getDataWatcher().getWatchableObjectInt(9); + int f = entity.getDataWatcher().getWatchableObjectInt(10); + int s = entity.getDataWatcher().getWatchableObjectInt(11); + int t = entity.getDataWatcher().getWatchableObjectInt(12); + MissileMultipart missile = new MissileMultipart(); + missile.warhead = MissilePart.getPart(Item.getItemById(w)); + missile.fuselage = MissilePart.getPart(Item.getItemById(f)); + missile.fins = MissilePart.getPart(Item.getItemById(s)); + missile.thruster = MissilePart.getPart(Item.getItemById(t)); + + MissilePronter.prontMissile(missile, Minecraft.getMinecraft().getTextureManager()); - int w = p_76986_1_.getDataWatcher().getWatchableObjectInt(9); - int f = p_76986_1_.getDataWatcher().getWatchableObjectInt(10); - int s = p_76986_1_.getDataWatcher().getWatchableObjectInt(11); - int t = p_76986_1_.getDataWatcher().getWatchableObjectInt(12); - - MissileMultipart missile = new MissileMultipart(); - missile.warhead = MissilePart.getPart(Item.getItemById(w)); - missile.fuselage = MissilePart.getPart(Item.getItemById(f)); - missile.fins = MissilePart.getPart(Item.getItemById(s)); - missile.thruster = MissilePart.getPart(Item.getItemById(t)); - - MissilePronter.prontMissile(missile, Minecraft.getMinecraft().getTextureManager()); - GL11.glPopMatrix(); } @@ -44,5 +43,4 @@ public class RenderMissileCustom extends Render { protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return ResourceManager.universal; } - } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java index f67f888e0..cff1937a5 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java @@ -9,22 +9,24 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderMissileDoomsday extends Render { - - public RenderMissileDoomsday() { } + + public RenderMissileDoomsday() { + } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - GL11.glScalef(2F, 2F, 2F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + GL11.glScalef(2F, 2F, 2F); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.missileDoomsday_tex); - ResourceManager.missileDoomsday.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.missileDoomsday_tex); + ResourceManager.missileDoomsday.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 5e017039c..657819463 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -23,6 +23,7 @@ public class RenderMissileGeneric extends Render { GL11.glTranslatef((float) x, (float) y, (float) z); GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); if(entity instanceof EntityMissileAntiBallistic) { bindTexture(ResourceManager.missileAA_tex); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java index 00df032dc..c2c484c6f 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java @@ -15,21 +15,18 @@ public class RenderMissileHuge extends Render { } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - if(p_76986_1_ instanceof EntityMissileBurst) - bindTexture(ResourceManager.missileHuge_HE_tex); - if(p_76986_1_ instanceof EntityMissileInferno) - bindTexture(ResourceManager.missileHuge_IN_tex); - if(p_76986_1_ instanceof EntityMissileRain) - bindTexture(ResourceManager.missileHuge_CL_tex); - if(p_76986_1_ instanceof EntityMissileDrill) - bindTexture(ResourceManager.missileHuge_BU_tex); + if(entity instanceof EntityMissileBurst) bindTexture(ResourceManager.missileHuge_HE_tex); + if(entity instanceof EntityMissileInferno) bindTexture(ResourceManager.missileHuge_IN_tex); + if(entity instanceof EntityMissileRain) bindTexture(ResourceManager.missileHuge_CL_tex); + if(entity instanceof EntityMissileDrill) bindTexture(ResourceManager.missileHuge_BU_tex); GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileHuge.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java index 413da7814..de0358088 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java @@ -13,16 +13,17 @@ public class RenderMissileMirv extends Render { public RenderMissileMirv() { } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(ResourceManager.missileMIRV_tex); - ResourceManager.missileNuclear.renderAll(); + + bindTexture(ResourceManager.missileMIRV_tex); + ResourceManager.missileNuclear.renderAll(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java index 9282833db..9af283e9d 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java @@ -14,15 +14,16 @@ public class RenderMissileNuclear extends Render { public RenderMissileNuclear() { } @Override - public void doRender(Entity missile, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - if(missile instanceof EntityMissileVolcano) + if(entity instanceof EntityMissileVolcano) bindTexture(ResourceManager.missileVolcano_tex); else bindTexture(ResourceManager.missileNuclear_tex); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileShuttle.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileShuttle.java index eff8e7b16..a874418d6 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileShuttle.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileShuttle.java @@ -13,16 +13,16 @@ public class RenderMissileShuttle extends Render { public RenderMissileShuttle() { } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glScalef(1F, 1F, 1F); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - bindTexture(ResourceManager.missileShuttle_tex); - ResourceManager.missileShuttle.renderAll(); + bindTexture(ResourceManager.missileShuttle_tex); + ResourceManager.missileShuttle.renderAll(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java index 5b31dbd04..4c1804342 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java @@ -14,24 +14,20 @@ public class RenderMissileStrong extends Render { public RenderMissileStrong() { } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - if(p_76986_1_ instanceof EntityMissileStrong) - bindTexture(ResourceManager.missileStrong_HE_tex); - if(p_76986_1_ instanceof EntityMissileIncendiaryStrong) - bindTexture(ResourceManager.missileStrong_IN_tex); - if(p_76986_1_ instanceof EntityMissileClusterStrong) - bindTexture(ResourceManager.missileStrong_CL_tex); - if(p_76986_1_ instanceof EntityMissileBusterStrong) - bindTexture(ResourceManager.missileStrong_BU_tex); - if(p_76986_1_ instanceof EntityMissileEMPStrong) - bindTexture(ResourceManager.missileStrong_EMP_tex); + if(entity instanceof EntityMissileStrong) bindTexture(ResourceManager.missileStrong_HE_tex); + if(entity instanceof EntityMissileIncendiaryStrong) bindTexture(ResourceManager.missileStrong_IN_tex); + if(entity instanceof EntityMissileClusterStrong) bindTexture(ResourceManager.missileStrong_CL_tex); + if(entity instanceof EntityMissileBusterStrong) bindTexture(ResourceManager.missileStrong_BU_tex); + if(entity instanceof EntityMissileEMPStrong) bindTexture(ResourceManager.missileStrong_EMP_tex); GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileStrong.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java index 65643516f..ca6c1f3fa 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java @@ -15,18 +15,19 @@ public class RenderMissileTaint extends Render { } @Override - public void doRender(Entity missile, double x, double y, double z, float f1, float f2) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)x, (float)y, (float)z); - GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * f2 - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * f2, 0.0F, 0.0F, 1.0F); - GL11.glScalef(2F, 2F, 2F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + GL11.glScalef(2F, 2F, 2F); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(getEntityTexture(missile)); - ResourceManager.missileTaint.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_CULL_FACE); + bindTexture(getEntityTexture(entity)); + ResourceManager.missileTaint.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java index c19a36c83..3eb929325 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java @@ -14,19 +14,18 @@ public class RenderMissileThermo extends Render { public RenderMissileThermo() { } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); GL11.glScalef(1.5F, 1.5F, 1.5F); - - if(p_76986_1_ instanceof EntityMissileEndo) - bindTexture(ResourceManager.missileEndo_tex); - if(p_76986_1_ instanceof EntityMissileExo) - bindTexture(ResourceManager.missileExo_tex); - ResourceManager.missileThermo.renderAll(); + + if(entity instanceof EntityMissileEndo) bindTexture(ResourceManager.missileEndo_tex); + if(entity instanceof EntityMissileExo) bindTexture(ResourceManager.missileExo_tex); + ResourceManager.missileThermo.renderAll(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 6451f6f02..cbf89a7f9 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.bomb; import java.util.HashMap; +import java.util.List; import org.apache.logging.log4j.Level; @@ -126,6 +127,22 @@ public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnerg data.setShort("meta", (short) slots[0].getItemDamage()); } networkPack(data, 250); + } else { + + + List entities = worldObj.getEntitiesWithinAABB(EntityMissileBaseNT.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); + + if(!entities.isEmpty()) { + + for(int i = 0; i < 15; i++) { + + boolean dir = worldObj.rand.nextBoolean(); + float moX = (float) (dir ? 0 : worldObj.rand.nextGaussian() * 0.5F); + float moZ = (float) (!dir ? 0 : worldObj.rand.nextGaussian() * 0.5F); + + MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] { moX, 0, moZ }); + } + } } } @@ -304,7 +321,7 @@ public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnerg if(clazz != null) { try { - EntityMissileBaseNT missile = clazz.getConstructor(World.class, float.class, float.class, float.class, int.class, int.class).newInstance(worldObj, xCoord + 0.5F, yCoord + 2F, zCoord + 0.5F, targetX, targetZ); + EntityMissileBaseNT missile = clazz.getConstructor(World.class, float.class, float.class, float.class, int.class, int.class).newInstance(worldObj, xCoord + 0.5F, yCoord + 1F, zCoord + 0.5F, targetX, targetZ); worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); if(GeneralConfig.enableExtendedLogging) MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + xCoord + " / " + yCoord + " / " + zCoord + " to " + xCoord + " / " + zCoord + "!"); return missile; From 26db2c707607a07217b21796bc35880790ad2df9 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 4 Feb 2024 01:36:26 +0100 Subject: [PATCH 150/376] ribbed for her pleasure --- changelog | 2 + .../java/com/hbm/blocks/test/TestMissile.java | 25 - .../java/com/hbm/entity/EntityMappings.java | 3 - .../hbm/entity/effect/EntityNukeCloudBig.java | 97 - .../entity/effect/EntityNukeCloudSmall.java | 150 -- .../entity/missile/EntityMissileBaseNT.java | 13 +- .../entity/missile/EntityMissileTier0.java | 5 + .../hbm/entity/missile/EntityTestMissile.java | 275 --- .../hbm/entity/train/EntityRailCarBase.java | 5 +- .../hbm/explosion/ExplosionNukeGeneric.java | 2 - src/main/java/com/hbm/main/ClientProxy.java | 9 +- .../java/com/hbm/main/ResourceManager.java | 17 +- .../com/hbm/particle/ParticleContrail.java | 8 +- .../render/entity/effect/RenderBigNuke.java | 178 -- .../render/entity/effect/RenderSmallNuke.java | 104 - .../entity/effect/RenderSmallNukeAlt.java | 177 -- .../entity/effect/RenderSmallNukeMK3.java | 217 -- .../entity/effect/RenderSmallNukeMK4.java | 379 --- .../entity/rocket/RenderMissileTaint.java | 8 +- .../render/item/ItemRenderMissileGeneric.java | 16 +- .../com/hbm/world/gen/NTMWorldGenerator.java | 4 - .../resources/assets/hbm/models/Missile.obj | 704 ------ .../assets/hbm/models/NukeCloudHuge.obj | 945 -------- .../assets/hbm/models/NukeCloudSmall.obj | 1061 --------- .../assets/hbm/models/missileGeneric.obj | 689 ------ .../assets/hbm/models/missileHuge.obj | 657 ------ .../assets/hbm/models/missileMIRV.obj | 472 ---- .../assets/hbm/models/missileTaint.obj | 528 ----- .../resources/assets/hbm/models/missileV2.obj | 599 ----- .../assets/hbm/models/missile_micro.obj | 1023 ++++++++ src/main/resources/assets/hbm/models/mush.hmf | 2093 ----------------- src/main/resources/assets/hbm/models/mush.obj | 2093 ----------------- .../hbm/textures/models/missileMicro.png | Bin 8015 -> 0 bytes .../hbm/textures/models/missileMicroBHole.png | Bin 8379 -> 0 bytes .../hbm/textures/models/missileMicroEMP.png | Bin 6286 -> 0 bytes .../textures/models/missileMicroSchrab.png | Bin 6667 -> 0 bytes .../hbm/textures/models/missile_micro.png | Bin 0 -> 704 bytes .../textures/models/missile_micro_bhole.png | Bin 0 -> 707 bytes .../hbm/textures/models/missile_micro_emp.png | Bin 0 -> 713 bytes .../textures/models/missile_micro_schrab.png | Bin 0 -> 697 bytes .../textures/models/missile_micro_taint.png | Bin 0 -> 2622 bytes 41 files changed, 1075 insertions(+), 11483 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/test/TestMissile.java delete mode 100644 src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java delete mode 100644 src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityTestMissile.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/RenderBigNuke.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/RenderSmallNuke.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/RenderSmallNukeAlt.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK3.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java delete mode 100644 src/main/resources/assets/hbm/models/Missile.obj delete mode 100644 src/main/resources/assets/hbm/models/NukeCloudHuge.obj delete mode 100644 src/main/resources/assets/hbm/models/NukeCloudSmall.obj delete mode 100644 src/main/resources/assets/hbm/models/missileGeneric.obj delete mode 100644 src/main/resources/assets/hbm/models/missileHuge.obj delete mode 100644 src/main/resources/assets/hbm/models/missileMIRV.obj delete mode 100644 src/main/resources/assets/hbm/models/missileTaint.obj delete mode 100644 src/main/resources/assets/hbm/models/missileV2.obj create mode 100644 src/main/resources/assets/hbm/models/missile_micro.obj delete mode 100644 src/main/resources/assets/hbm/models/mush.hmf delete mode 100644 src/main/resources/assets/hbm/models/mush.obj delete mode 100644 src/main/resources/assets/hbm/textures/models/missileMicro.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileMicroBHole.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileMicroEMP.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileMicroSchrab.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_micro.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_micro_bhole.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_micro_emp.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_micro_schrab.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_micro_taint.png diff --git a/changelog b/changelog index 880789371..c0cb151c4 100644 --- a/changelog +++ b/changelog @@ -18,6 +18,8 @@ * This makes missiles reach top speed faster while also making the launches themselves slower and more pleasant * Strange stone can no longer be destroyed via AoE, making it easier to find without accidentally mining it * Launch pads now spawn launch smoke just like custom missile compact launchers +* Remodeled all tier 0 missiles +* Tier 0 missiles now have a much thinner contrail to match their size better ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/src/main/java/com/hbm/blocks/test/TestMissile.java b/src/main/java/com/hbm/blocks/test/TestMissile.java deleted file mode 100644 index 9ad7a0a0d..000000000 --- a/src/main/java/com/hbm/blocks/test/TestMissile.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.hbm.blocks.test; - -import com.hbm.entity.missile.EntityTestMissile; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class TestMissile extends Block { - - public TestMissile(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) - { - if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) - { - EntityTestMissile missile = new EntityTestMissile(p_149695_1_, x + 150, z + 150, x + 0.5F, y + 2F, z + 0.5F); - p_149695_1_.spawnEntityInWorld(missile); - } - } - -} diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 26dbf0d9b..84d4aab87 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -48,8 +48,6 @@ public class EntityMappings { addEntity(EntityGrenadeFrag.class, "entity_grenade_frag", 250); addEntity(EntityGrenadeFire.class, "entity_grenade_fire", 250); addEntity(EntityGrenadeCluster.class, "entity_grenade_cluster", 250); - addEntity(EntityTestMissile.class, "entity_test_missile", 1000); - addEntity(EntityNukeCloudSmall.class, "entity_nuke_cloud_small", 10000); addEntity(EntityBullet.class, "entity_bullet", 250); addEntity(EntityGrenadeFlare.class, "entity_grenade_flare", 500); addEntity(EntityGrenadeElectric.class, "entity_grenade_electric", 500); @@ -78,7 +76,6 @@ public class EntityMappings { addEntity(EntityMissileMirv.class, "entity_missile_mirv", 1000); addEntity(EntityMIRV.class, "entity_mirvlet", 1000); addEntity(EntitySmokeFX.class, "entity_smoke_fx", 1000); - addEntity(EntityNukeCloudBig.class, "entity_nuke_cloud_big", 1000); addEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 1000); addEntity(EntityBSmokeFX.class, "entity_b_smoke_fx", 1000); addEntity(EntityGrenadePlasma.class, "entity_grenade_plasma", 500); diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java b/src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java deleted file mode 100644 index f8377f8b0..000000000 --- a/src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.hbm.entity.effect; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class EntityNukeCloudBig extends Entity { - - public int maxAge = 1000; - public int age; - public float scale = 0; - public float ring = 0; - public float height = 0; - - public EntityNukeCloudBig(World p_i1582_1_) { - super(p_i1582_1_); - this.setSize(1, 80); - this.ignoreFrustumCheck = true; - this.isImmuneToFire = true; - this.age = 0; - scale = 0; - ring = 0; - height = 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } - - public EntityNukeCloudBig(World p_i1582_1_, int maxAge) { - super(p_i1582_1_); - this.setSize(20, 40); - this.isImmuneToFire = true; - this.maxAge = maxAge; - } - - @Override - public void onUpdate() { - //super.onUpdate(); - this.age++; - this.worldObj.spawnEntityInWorld(new EntityLightningBolt(this.worldObj, this.posX, this.posY + 200, this.posZ)); - - if(this.age >= this.maxAge) - { - this.age = 0; - this.setDead(); - } - ring += 0.1F; - - if(age < 150) - { - height = -60F + ((age - 100) * 60 / 50); - if(scale < 1.5) - { - scale += 0.02; - } - } - - if(age > 100) - { - if(scale < 1.5) - { - scale += 0.02; - } - } else { - scale = 0; - } - } - - @Override - protected void entityInit() { - - } - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - age = p_70037_1_.getShort("age"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - p_70014_1_.setShort("age", (short)age); - - } -} diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java b/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java deleted file mode 100644 index 2aee5b349..000000000 --- a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.hbm.entity.effect; - -import java.util.ArrayList; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -@Deprecated -public class EntityNukeCloudSmall extends Entity { - - public int maxAge = 1000; - public int age; - - public static int cloudletLife = 50; - public ArrayList cloudlets = new ArrayList(); - - public EntityNukeCloudSmall(World p_i1582_1_) { - super(p_i1582_1_); - this.setSize(20, 40); - this.ignoreFrustumCheck = true; - this.isImmuneToFire = true; - this.age = 0; - this.noClip = true; - } - - public EntityNukeCloudSmall(World p_i1582_1_, int maxAge, float scale) { - super(p_i1582_1_); - this.setSize(20, 40); - this.isImmuneToFire = true; - this.maxAge = maxAge; - this.noClip = true; - this.dataWatcher.updateObject(18, scale); - } - - @Override - public void onUpdate() { - - this.age++; - - this.worldObj.lastLightningBolt = 2; - - if(this.age >= this.maxAge) - { - this.age = 0; - this.setDead(); - } - - int cloudCount = age * 3; - - Vec3 vec = Vec3.createVectorHelper(age * 2, 0, 0); - - int toRem = 0; - - for(int i = 0; i < this.cloudlets.size(); i++) { - - if(age > cloudlets.get(i).age + cloudletLife) - toRem = i; - else - break; - } - - for(int i = 0; i < toRem; i++) - this.cloudlets.remove(0); - - if(age < 200) { - for(int i = 0; i < cloudCount; i++) { - vec.rotateAroundY((float)(Math.PI * 2 * worldObj.rand.nextDouble())); - - this.cloudlets.add(new Cloudlet(vec.xCoord, worldObj.getHeightValue((int) (vec.xCoord + posX), (int) (vec.zCoord + posZ)), vec.zCoord, age)); - } - } - - this.dataWatcher.updateObject(16, (short)maxAge); - this.dataWatcher.updateObject(17, (short)age); - } - - @Override - protected void entityInit() { - this.dataWatcher.addObject(16, (short)maxAge); - this.dataWatcher.addObject(17, (short)age); - this.dataWatcher.addObject(18, 1.0F); - this.dataWatcher.addObject(19, Byte.valueOf((byte)0)); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - maxAge = p_70037_1_.getShort("maxAge"); - age = p_70037_1_.getShort("age"); - this.dataWatcher.updateObject(18, p_70037_1_.getFloat("scale")); - this.dataWatcher.updateObject(19, p_70037_1_.getByte("type")); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - p_70014_1_.setShort("maxAge", (short)maxAge); - p_70014_1_.setShort("age", (short)age); - p_70014_1_.setFloat("scale", this.dataWatcher.getWatchableObjectFloat(18)); - p_70014_1_.setByte("type", this.dataWatcher.getWatchableObjectByte(19)); - - } - - public static EntityNukeCloudSmall statFac(World world, double x, double y, double z, float radius) { - - EntityNukeCloudSmall cloud = new EntityNukeCloudSmall(world, (int)radius * 5, radius * 0.005F); - cloud.posX = x; - cloud.posY = y; - cloud.posZ = z; - cloud.dataWatcher.updateObject(19, (byte)0); - - return cloud; - } - - public static EntityNukeCloudSmall statFacBale(World world, double x, double y, double z, float radius, int maxAge) { - - EntityNukeCloudSmall cloud = new EntityNukeCloudSmall(world, (int)radius * 5, radius * 0.005F); - cloud.posX = x; - cloud.posY = y; - cloud.posZ = z; - cloud.dataWatcher.updateObject(19, (byte)1); - - return cloud; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return true; - } - - public static class Cloudlet { - - public double posX; - public double posY; - public double posZ; - public int age; - - public Cloudlet(double posX, double posY, double posZ, int age) { - this.posX = posX; - this.posY = posY; - this.posZ = posZ; - this.age = age; - } - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index c4faafcd2..c8c88ce6c 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -175,9 +175,20 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen double len = vec.lengthVector(); vec = vec.normalize(); for(int i = 0; i < Math.max(Math.min(len, 10), 1); i++) { - MainRegistry.proxy.particleControl(posX - vec.xCoord * i, posY - vec.yCoord * i, posZ - vec.zCoord * i, 2); + int j = i - 1; + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("posX", posX - vec.xCoord * j); + data.setDouble("posY", posY - vec.yCoord * j); + data.setDouble("posZ", posZ - vec.zCoord * j); + data.setString("type", "missileContrail"); + data.setFloat("scale", this.getContrailScale()); + MainRegistry.proxy.effectNT(data); } } + + protected float getContrailScale() { + return 1F; + } @Override public void readEntityFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java index f0239aa53..a3b7a6ba9 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -46,6 +46,11 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { public int getBlipLevel() { return IRadarDetectableNT.TIER0; } + + @Override + protected float getContrailScale() { + return 0.5F; + } public static class EntityMissileMicro extends EntityMissileTier0 { public EntityMissileMicro(World world) { super(world); } diff --git a/src/main/java/com/hbm/entity/missile/EntityTestMissile.java b/src/main/java/com/hbm/entity/missile/EntityTestMissile.java deleted file mode 100644 index e44151751..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityTestMissile.java +++ /dev/null @@ -1,275 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.calc.EasyLocation; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityTestMissile extends EntityThrowable { - - EasyLocation origin; - EasyLocation loc0; - EasyLocation loc1; - EasyLocation loc2; - EasyLocation loc3; - EasyLocation loc4; - EasyLocation loc5; - EasyLocation loc6; - EasyLocation loc7; - EasyLocation target; - - public int lengthX; - public int lengthZ; - public double lengthFlight; - public int baseHeight = 0; - public double missileSpeed = 3; - - public int phase = 0; - - public EntityTestMissile(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityTestMissile(World p_i1582_1_, int x, int z, double a, double b, double c) { - super(p_i1582_1_); - this.posX = a; - this.posY = b; - this.posZ = c; - - this.motionY = 0.1; - - lengthX = (int) (x - this.posX); - lengthZ = (int) (z - this.posZ); - lengthFlight = Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthZ, 2)); - - - origin = new EasyLocation(this.posX, this.posY, this.posZ); - - loc0 = new EasyLocation(this.posX, this.posY + baseHeight, this.posZ); - loc1 = new EasyLocation(this.posX + lengthX/lengthFlight * 10, this.posY + baseHeight + 20, this.posZ + lengthZ/lengthFlight * 10); - loc2 = new EasyLocation(this.posX + lengthX/lengthFlight * 30, this.posY + baseHeight + 40, this.posZ + lengthZ/lengthFlight * 30); - loc3 = new EasyLocation(this.posX + lengthX/lengthFlight * 50, this.posY + baseHeight + 50, this.posZ + lengthZ/lengthFlight * 50); - - loc4 = new EasyLocation(x - (lengthX/lengthFlight * 50), this.posY + baseHeight + 50, z - (lengthZ/lengthFlight * 50)); - loc5 = new EasyLocation(x - (lengthX/lengthFlight * 30), this.posY + baseHeight + 40, z - (lengthZ/lengthFlight * 30)); - loc6 = new EasyLocation(x - (lengthX/lengthFlight * 10), this.posY + baseHeight + 20, z - (lengthZ/lengthFlight * 10)); - loc7 = new EasyLocation(x, this.posY + baseHeight, z); - - - target = new EasyLocation(x, 0, z); - - /*this.worldObj.setBlock((int)loc0.posX, (int)loc0.posY, (int)loc0.posZ, Blocks.dirt); - this.worldObj.setBlock((int)loc1.posX, (int)loc1.posY, (int)loc1.posZ, Blocks.dirt); - this.worldObj.setBlock((int)loc2.posX, (int)loc2.posY, (int)loc2.posZ, Blocks.dirt); - this.worldObj.setBlock((int)loc3.posX, (int)loc3.posY, (int)loc3.posZ, Blocks.dirt); - this.worldObj.setBlock((int)loc4.posX, (int)loc4.posY, (int)loc4.posZ, Blocks.stone); - this.worldObj.setBlock((int)loc5.posX, (int)loc5.posY, (int)loc5.posZ, Blocks.stone); - this.worldObj.setBlock((int)loc6.posX, (int)loc6.posY, (int)loc6.posZ, Blocks.stone); - this.worldObj.setBlock((int)loc7.posX, (int)loc7.posY, (int)loc7.posZ, Blocks.stone);*/ - - /*System.out.print("\n" + loc0.posX + " " + loc0.posY + " " + loc0.posZ); - System.out.print("\n" + loc1.posX + " " + loc1.posY + " " + loc1.posZ); - System.out.print("\n" + loc2.posX + " " + loc2.posY + " " + loc2.posZ); - System.out.print("\n" + loc3.posX + " " + loc3.posY + " " + loc3.posZ); - System.out.print("\n"); - System.out.print("\n" + loc4.posX + " " + loc4.posY + " " + loc4.posZ); - System.out.print("\n" + loc5.posX + " " + loc5.posY + " " + loc5.posZ); - System.out.print("\n" + loc6.posX + " " + loc6.posY + " " + loc6.posZ); - System.out.print("\n" + loc7.posX + " " + loc7.posY + " " + loc7.posZ);*/ - } - - @Override - protected void entityInit() { - - } - - @Override - public void onUpdate() - { - //super.onUpdate(); - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - this.rotation(); - - switch(phase) - { - case 0: - if(loc0 != null) - { - freePizzaGoddammit(loc0); - if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX && - loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY && - loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ) - { - this.phase = 1; - } - } - break; - case 1: - if(loc1 != null) - { - freePizzaGoddammit(loc1); - if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX && - loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY && - loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ) - { - this.phase = 2; - } - } - break; - case 2: - if(loc2 != null) - { - freePizzaGoddammit(loc2); - if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX && - loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY && - loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ) - { - this.phase = 3; - } - } - break; - case 3: - if(loc3 != null) - { - freePizzaGoddammit(loc3); - if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX && - loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY && - loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ) - { - this.phase = 4; - } - } - break; - case 4: - if(loc4 != null) - { - freePizzaGoddammit(loc4); - if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX && - loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY && - loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ) - { - this.phase = 5; - } - } - break; - case 5: - if(loc5 != null) - { - freePizzaGoddammit(loc5); - if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX && - loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY && - loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ) - { - this.phase = 6; - } - } - break; - case 6: - if(loc6 != null) - { - freePizzaGoddammit(loc6); - if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX && - loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY && - loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ) - { - this.phase = 7; - } - } - break; - case 7: - if(loc7 != null) - { - freePizzaGoddammit(loc7); - if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX && - loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY && - loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ) - { - this.phase = 8; - } - } - break; - case 8: - if(target != null) - { - freePizzaGoddammit(target); - if(target.posX + 2 > this.posX && target.posX - 2 < this.posX && - target.posY + 2 > this.posY && target.posY - 2 < this.posY && - target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ) - { - this.phase = -1; - } - } - break; - } - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - if(!this.worldObj.isRemote) - { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5.0F, true); - } - this.setDead(); - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - } - - private void freePizzaGoddammit(EasyLocation loc) { - double x = loc.posX - this.posX; - double y = loc.posY - this.posY; - double z = loc.posZ - this.posZ; - lengthFlight = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2)); - - this.motionX = x / this.lengthFlight * missileSpeed; - this.motionY = y / this.lengthFlight * missileSpeed; - this.motionZ = z / this.lengthFlight * missileSpeed; - } - - private void rotation() { - /*EasyVector vec0 = new EasyVector(this.motionX, this.motionZ); - - EasyVector vec1 = new EasyVector(this.motionY, vec0.getResult()); - - this.rotationYaw = (float)Math.acos((vec0.a * 0 + vec0.b * 1) / (vec0.getResult() * 1)); - //this.rotationPitch = (float)Math.acos((vec0.a * vec1.a + vec0.b * vec1.b) / (vec0.getResult() * vec1.getResult())) * 10; - - this.rotationPitch = (float)Math.acos((vec0.a * vec1.a + vec0.b * vec1.b) / (vec0.getResult() * vec1.getResult())) * 100 - 90; - if(this.rotationPitch < 0) - this.rotationPitch += 180; - - System.out.print("\n" + this.rotationYaw); - System.out.print("\n" + this.rotationPitch);*/ - float f2; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - 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; - } - } - -} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index ef6b7f526..30045a22e 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -12,11 +12,8 @@ import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -890,7 +887,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { @Override @SideOnly(Side.CLIENT) public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { - List text = new ArrayList(); + //List text = new ArrayList(); //ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java index c2a58d0a1..1a62d8865 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java @@ -20,7 +20,6 @@ import net.minecraftforge.common.util.ForgeDirection; import com.hbm.blocks.ModBlocks; import com.hbm.config.VersatileConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.grenade.EntityGrenadeASchrab; import com.hbm.entity.grenade.EntityGrenadeNuclear; import com.hbm.entity.missile.EntityMIRV; @@ -103,7 +102,6 @@ public class ExplosionNukeGeneric { private static boolean isExplosionExempt(Entity e) { if (e instanceof EntityOcelot || - e instanceof EntityNukeCloudSmall || e instanceof EntityMIRV || e instanceof EntityGrenadeASchrab || e instanceof EntityGrenadeNuclear || diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 1b8a9e3ad..728f13789 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -691,7 +691,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeImpactGeneric.class, new RenderGenericGrenade()); RenderingRegistry.registerEntityRenderingHandler(EntityDisperserCanister.class, new RenderGenericGrenade()); //missiles - RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileDecoy.class, new RenderMissileGeneric()); @@ -727,8 +726,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMissileExo.class, new RenderMissileThermo()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileShuttle.class, new RenderMissileShuttle()); //effects - RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudSmall.class, new RenderSmallNukeMK4()); - RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudBig.class, new RenderBigNuke()); RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleija.class, new RenderCloudFleija()); RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleijaRainbow.class, new RenderCloudRainbow()); RenderingRegistry.registerEntityRenderingHandler(EntityCloudSolinium.class, new RenderCloudSolinium()); @@ -980,6 +977,12 @@ public class ClientProxy extends ServerProxy { double y = data.getDouble("posY"); double z = data.getDouble("posZ"); + if("missileContrail".equals(type)) { + float scale = data.hasKey("scale") ? data.getFloat("scale") : 1F; + ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0, 0, 0, scale); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + } + if("smoke".equals(type)) { String mode = data.getString("mode"); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index ceaadf140..89bf64e26 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1070,13 +1070,12 @@ public class ResourceManager { public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asDisplayList(); public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asDisplayList(); public static final IModelCustom missileStealth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_stealth.obj"), false).asDisplayList(); - public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")); - public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")); + public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")).asDisplayList(); + public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")).asDisplayList(); public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); - public static final IModelCustom missileMIRV = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileMIRV.obj")); public static final IModelCustom missileThermo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileThermo.obj")); public static final IModelCustom missileDoomsday = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileDoomsday.obj")); - public static final IModelCustom missileTaint = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileTaint.obj")); + public static final IModelCustom missileMicro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_micro.obj")).asDisplayList(); public static final IModelCustom missileShuttle = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileShuttle.obj")); public static final IModelCustom missileCarrier = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileCarrier.obj")); public static final IModelCustom missileBooster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileBooster.obj")); @@ -1230,17 +1229,17 @@ public class ResourceManager { public static final ResourceLocation missileEndo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileEndo.png"); public static final ResourceLocation missileExo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileExo.png"); public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileDoomsday.png"); - public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileTaint.png"); + public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_taint.png"); public static final ResourceLocation missileShuttle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileShuttle.png"); - public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicro.png"); + public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro.png"); public static final ResourceLocation missileCarrier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileCarrier.png"); public static final ResourceLocation missileBooster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileBooster.png"); public static final ResourceLocation minerRocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/minerRocket.png"); public static final ResourceLocation bobmazon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bobmazon.png"); public static final ResourceLocation siege_dropship_tex = new ResourceLocation(RefStrings.MODID, "textures/models/siege_dropship.png"); - public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroBHole.png"); - public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroSchrab.png"); - public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroEMP.png"); + public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_bhole.png"); + public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_schrab.png"); + public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_emp.png"); public static final ResourceLocation soyuz_engineblock = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/engineblock.png"); public static final ResourceLocation soyuz_bottomstage = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/bottomstage.png"); diff --git a/src/main/java/com/hbm/particle/ParticleContrail.java b/src/main/java/com/hbm/particle/ParticleContrail.java index 5e0da75b0..5bdacfcad 100644 --- a/src/main/java/com/hbm/particle/ParticleContrail.java +++ b/src/main/java/com/hbm/particle/ParticleContrail.java @@ -92,10 +92,10 @@ public class ParticleContrail extends EntityFX { p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); p_70539_1_.setBrightness(240); - float scale = particleAlpha + 0.5F * this.particleScale; - float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - dX) + urandom.nextGaussian() * 0.5); - float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - dY) + urandom.nextGaussian() * 0.5); - float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - dZ) + urandom.nextGaussian() * 0.5); + float scale = (particleAlpha + 0.5F) * this.particleScale; + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - dX) + urandom.nextGaussian() * 0.5 * this.particleScale); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - dY) + urandom.nextGaussian() * 0.5 * this.particleScale); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - dZ) + urandom.nextGaussian() * 0.5 * this.particleScale); p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale - p_70539_6_ * scale), (double) (pY - p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale - p_70539_7_ * scale), 1, 1); p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale + p_70539_6_ * scale), (double) (pY + p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale + p_70539_7_ * scale), 1, 0); diff --git a/src/main/java/com/hbm/render/entity/effect/RenderBigNuke.java b/src/main/java/com/hbm/render/entity/effect/RenderBigNuke.java deleted file mode 100644 index f05f050ef..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderBigNuke.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.hbm.render.entity.effect; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudBig; -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderBigNuke extends Render { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/NukeCloudHuge.obj"); - private IModelCustom blastModel; - private ResourceLocation blastTexture; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private ResourceLocation ringTexture; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - private ResourceLocation ringBigTexture; - public float scale = 0; - public float ring = 0; - - public RenderBigNuke() { - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/NukeCloudFire.png"); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - ringBigTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - scale = 0; - ring = 0; - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - if(((EntityNukeCloudBig)p_76986_1_).age > 100) - { - this.renderMush((EntityNukeCloudBig)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - this.renderCloud((EntityNukeCloudBig)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } else { - this.renderFlare((EntityNukeCloudBig)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - this.renderRing((EntityNukeCloudBig)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - public void renderMush(EntityNukeCloudBig p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - if(p_76986_1_.age < 150) - { - //GL11.glTranslatef(0.0F, -60F + ((p_76986_1_.age - 100) * 60 / 50), 0.0F); - GL11.glTranslatef(0.0F, p_76986_1_.height, 0.0F); - } - GL11.glScalef(10.0F, 10.0F, 10.0F); - - bindTexture(blastTexture); - blastModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderCloud(EntityNukeCloudBig p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslatef(0.0F, 80F, 0.0F); - /*if(scale < 1.5) - { - scale += 0.02; - }*/ - GL11.glScalef(p_76986_1_.scale, 1.0F, p_76986_1_.scale); - GL11.glScalef(125F, 25.0F, 125F); - - bindTexture(ringBigTexture); - ringBigModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderRing(EntityNukeCloudBig p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslatef(0.0F, 23F, 0.0F); - //ring += 0.1F; - GL11.glScalef(p_76986_1_.ring * 10, 50F, p_76986_1_.ring * 10); - - bindTexture(ringTexture); - ringModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderFlare(EntityNukeCloudBig p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - Tessellator tessellator = Tessellator.instance; - RenderHelper.disableStandardItemLighting(); - float f1 = (p_76986_1_.ticksExisted + 2.0F) / 200.0F; - float f2 = 0.0F; - int count = 250; - - if(p_76986_1_.ticksExisted < 250) - { - count = p_76986_1_.ticksExisted * 3; - } - - if (f1 > 0.8F) - { - f2 = (f1 - 0.8F) / 0.2F; - } - - Random random = new Random(432L); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - GL11.glPushMatrix(); - //GL11.glTranslatef(0.0F, -1.0F, -2.0F); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_ + 15, (float)p_76986_6_); - GL11.glScalef(7.5F, 7.5F, 7.5F); - - //for (int i = 0; (float)i < (f1 + f1 * f1) / 2.0F * 60.0F; ++i) - for(int i = 0; i < count; i++) - { - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F + f1 * 90.0F, 0.0F, 0.0F, 1.0F); - tessellator.startDrawing(6); - float f3 = random.nextFloat() * 20.0F + 5.0F + f2 * 10.0F; - float f4 = random.nextFloat() * 2.0F + 1.0F + f2 * 2.0F; - //tessellator.setColorRGBA_I(16777215, (int)(255.0F * (1.0F - f2))); - tessellator.setColorRGBA_I(59345715, (int)(255.0F * (1.0F - f2))); - tessellator.addVertex(0.0D, 0.0D, 0.0D); - //tessellator.setColorRGBA_I(16711935, 0); - tessellator.setColorRGBA_I(59345735, 0); - tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4); - tessellator.addVertex(0.866D * f4, f3, -0.5F * f4); - tessellator.addVertex(0.0D, f3, 1.0F * f4); - tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4); - tessellator.draw(); - } - - GL11.glPopMatrix(); - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_BLEND); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_ALPHA_TEST); - RenderHelper.enableStandardItemLighting(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderSmallNuke.java b/src/main/java/com/hbm/render/entity/effect/RenderSmallNuke.java deleted file mode 100644 index 7eda6e0f4..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderSmallNuke.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderSmallNuke extends Render { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/NukeCloudSmall.obj"); - private IModelCustom blastModel; - private ResourceLocation blastTexture; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private ResourceLocation ringTexture; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - private ResourceLocation ringBigTexture; - public float scale = 0; - public float ring = 0; - public float color = 0; - public int alpha = 0; - - public RenderSmallNuke() { - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/NukeCloudFire.png"); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - ringBigTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - scale = 0; - ring = 0; - color = 0; - alpha = 0; - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glScalef(4.0F, 4.0F, 4.0F); - if(scale < 1) - scale += 0.01F; - { - GL11.glScalef(scale, scale, scale); - } - - if(((EntityNukeCloudSmall)p_76986_1_).age > ((EntityNukeCloudSmall)p_76986_1_).maxAge - 150) - { - if(color < 0.75) - color += 0.005; - } - - GL11.glColor4f(1.0f - color, 1.0f - color, 1.0f - color, 1.0F - alpha); - - //GL11.glTranslatef(0.0F, -2.5F, 0.0F); - //GL11.glTranslatef(0.0F, 11F, 0.0F); - - bindTexture(blastTexture); - blastModel.renderAll(); - - GL11.glTranslatef(0, 15F, 0); - GL11.glScalef(20.0F, 5.0F, 20.0F); - - bindTexture(ringBigTexture); - ringBigModel.renderAll(); - - GL11.glScalef(1/scale, 1/scale, 1/scale); - GL11.glTranslatef(0, -4.75F, 0); - //GL11.glScalef(1/20.0F, 1/5.0F, 1/20.0F); - ring += 0.1F; - { - GL11.glScalef(ring, 5, ring); - } - - GL11.glTranslatef(0, 1F, 0); - bindTexture(ringTexture); - ringModel.renderAll(); - - GL11.glPopMatrix(); - - if(((EntityNukeCloudSmall)p_76986_1_).age >= ((EntityNukeCloudSmall)p_76986_1_).maxAge - 1) - { - scale = 0; - ring = 0; - color = 0; - } - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeAlt.java b/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeAlt.java deleted file mode 100644 index b62f5b58b..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeAlt.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.hbm.render.entity.effect; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderSmallNukeAlt extends Render { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/NukeCloudSmall.obj"); - private IModelCustom blastModel; - private ResourceLocation blastTexture; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private ResourceLocation ringTexture; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - private ResourceLocation ringBigTexture; - public float scale = 0; - public float ring = 0; - - public RenderSmallNukeAlt() { - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/NukeCloudFire.png"); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - ringBigTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - scale = 0; - ring = 0; - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - if(((EntityNukeCloudSmall)p_76986_1_).age > 100) - { - this.renderMush((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - this.renderCloud((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } else { - this.renderFlare((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - this.renderRing((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - public void renderMush(EntityNukeCloudSmall p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - if(p_76986_1_.age < 150) - { - //GL11.glTranslatef(0.0F, -60F + ((p_76986_1_.age - 100) * 60 / 50), 0.0F); - GL11.glTranslatef(0.0F, p_76986_1_.height, 0.0F); - } - GL11.glScalef(4.0F, 4.0F, 4.0F); - - bindTexture(blastTexture); - blastModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderCloud(EntityNukeCloudSmall p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslatef(0.0F, 60F, 0.0F); - /*if(scale < 1.5) - { - scale += 0.02; - }*/ - //GL11.glScalef(p_76986_1_.scale, 1.0F, p_76986_1_.scale); - GL11.glScalef(50F, 25.0F, 50F); - - bindTexture(ringBigTexture); - ringBigModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderRing(EntityNukeCloudSmall p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslatef(0.0F, 18F, 0.0F); - //ring += 0.1F; - - bindTexture(ringTexture); - ringModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderFlare(EntityNukeCloudSmall p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - Tessellator tessellator = Tessellator.instance; - RenderHelper.disableStandardItemLighting(); - float f1 = (p_76986_1_.age + 2.0F) / 200.0F; - float f2 = 0.0F; - int count = 250; - - if(p_76986_1_.age < 250) - { - count = p_76986_1_.age * 3; - } - - if (f1 > 0.8F) - { - f2 = (f1 - 0.8F) / 0.2F; - } - - Random random = new Random(432L); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - GL11.glPushMatrix(); - //GL11.glTranslatef(0.0F, -1.0F, -2.0F); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_ + 15, (float)p_76986_6_); - GL11.glScalef(5F, 5F, 5F); - - //for (int i = 0; (float)i < (f1 + f1 * f1) / 2.0F * 60.0F; ++i) - for(int i = 0; i < count; i++) - { - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F + f1 * 90.0F, 0.0F, 0.0F, 1.0F); - tessellator.startDrawing(6); - float f3 = random.nextFloat() * 20.0F + 5.0F + f2 * 10.0F; - float f4 = random.nextFloat() * 2.0F + 1.0F + f2 * 2.0F; - //tessellator.setColorRGBA_I(16777215, (int)(255.0F * (1.0F - f2))); - tessellator.setColorRGBA_I(59345715, (int)(255.0F * (1.0F - f2))); - tessellator.addVertex(0.0D, 0.0D, 0.0D); - //tessellator.setColorRGBA_I(16711935, 0); - tessellator.setColorRGBA_I(59345735, 0); - tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4); - tessellator.addVertex(0.866D * f4, f3, -0.5F * f4); - tessellator.addVertex(0.0D, f3, 1.0F * f4); - tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4); - tessellator.draw(); - } - - GL11.glPopMatrix(); - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_BLEND); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_ALPHA_TEST); - RenderHelper.enableStandardItemLighting(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK3.java b/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK3.java deleted file mode 100644 index 5434244c0..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK3.java +++ /dev/null @@ -1,217 +0,0 @@ -package com.hbm.render.entity.effect; - - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.lib.RefStrings; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderSmallNukeMK3 extends Render { - - //what the fuck is all this, i thought you made the resource manager - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/mush.hmf"); - private IModelCustom blastModel; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - public float scale = 0; - public float ring = 0; - - //can't you just instantiate the AMLs as a whole like a normal person smh - public RenderSmallNukeMK3() { - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - scale = 0; - ring = 0; - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - render((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - //choreographic analysis of a nuclear blast - //by VeeTee McFuckface - - //shockwave: rapidly expanding sphere of compressed air - // optional: wave of ground dust, make sphere white to pair it with the flash - // use multiple rings if necessary, but make them thinner (maybe fire-y) - // duration: something like two seconds, the thing is fast - - //fireball: similar story to the shockwave, but with color - // slower expanding bubble that raises upwards - // use one of those large donuts for the dust on the ground - // optional: dust clouds descending from top to bottom of the sphere (adjust radius based on height for smoothness) - // use lighter tone (vapor) - // duration: ~5 seconds, maybe less - - //mushroom: large donut to simulate breakthrough of the cloud layer (more vapor) - // use more rings around the shaft, make them wobble (use a sine function for the height, look at RR for reference) - // make the thing larger, this isn't a children's birthday and your excuses "too big" are shit - // make the fireball fade so it looks like the cloud is formed by it - // use more rings. really. - // more polygons, this is a cloud, not a metal pillar made by a seven-yo - // duration: as long as you want - - // - - - //your other render classes look like shit, write code like a sensible person for once. good luck, you'll need it - public void render(EntityNukeCloudSmall cloud, double posX, double posY, double posZ, float fa, float fb) { - GL11.glPushMatrix(); - GL11.glTranslatef((float)posX, (float)posY + 0.25F, (float)posZ); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - - float size = cloud.getDataWatcher().getWatchableObjectFloat(18); - GL11.glScalef(size, size, size); - - int age = cloud.age; - int shockScale = age * 4; - int fireScale = (int)((age - 25) * 1.5); - - if(age < 50) { - GL11.glPushMatrix(); - GL11.glColor4f(0.2F, 0.2F, 0.2F, 0.9F); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - - GL11.glScalef(shockScale, shockScale, shockScale); - GL11.glScalef(2, 2, 2); - - for(float i = 0.9F; i <= 1; i += 0.05F) { - GL11.glScalef(i, i, i); - ResourceManager.sphere_ruv.renderAll(); - ResourceManager.sphere_iuv.renderAll(); - GL11.glScalef(1/i, 1/i, 1/i); - } - - GL11.glDisable(GL11.GL_BLEND); - - GL11.glColor4f(0.4F, 0.4F, 0.4F, 1F); - - GL11.glScalef(0.6F, 1F / shockScale * 5, 0.6F); - ringModel.renderAll(); - GL11.glScalef(1.1F, 1F, 1.1F); - ringModel.renderAll(); - GL11.glScalef(1.1F, 1F, 1.1F); - ringModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - if(age >= 50 && age < 150) { - GL11.glPushMatrix(); - - if(cloud.getDataWatcher().getWatchableObjectByte(19) == 1) - GL11.glColor4f(0.2F, 0.7F, 0.0F, 0.9F); - else - GL11.glColor4f(0.4F, 0.15F, 0.0F, 0.9F); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glTranslatef(0, fireScale * 0.75F, 0); - - GL11.glScalef(fireScale * 0.85F, fireScale, fireScale * 0.85F); - - for(float i = 0.6F; i <= 1; i += 0.2F) { - GL11.glScalef(i, i, i); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/i, 1/i, 1/i); - } - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - if(age >= 150) { - GL11.glPushMatrix(); - bindTexture(getEntityTexture(cloud)); - GL11.glTranslatef(0, -50, 0); - GL11.glScalef(6, 6, 6); - GL11.glDisable(GL11.GL_CULL_FACE); - blastModel.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glColor4f(0.4F, 0.4F, 0.4F, 1F); - GL11.glScalef(10, 10, 10); - float f = 1.8F + (((float)Math.sin(((double)age) / 20 + 90) * 0.25F) * 0.5F); - float f1 = 1 + ((float)Math.sin(((double)age) / 10) * 0.15F); - GL11.glScalef(f, 1, f); - GL11.glTranslatef(0, 3.5F + f1 * 0.25F, 0); - ringModel.renderAll(); - GL11.glTranslatef(0, - f1 * 0.25F * 2, 0); - ringModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - if(age >= 50) { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glScalef(2, 2, 2); - GL11.glColor4f(0.4F, 0.4F, 0.4F, 1F); - float f = (float)Math.min((age - 50) * 0.5, 20); - GL11.glScalef(f, 15, f); - //ringBigModel.renderAll(); - GL11.glScalef(1.5F, 1, 1.5F); - GL11.glTranslatef(0, -0.15F, 0); - //ringBigModel.renderAll(); - GL11.glScalef(1.5F, 1, 1.5F); - GL11.glTranslatef(0, -0.15F, 0); - //ringBigModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glScalef(2, 2, 2); - GL11.glColor4f(0.6F, 0.6F, 0.6F, 1F); - float f0 = (float)Math.min((age - 50) * 0.25, 20) * 5F; - GL11.glScalef(f0, 15, f0); - GL11.glTranslatef(0, 3.5F, 0); - ringBigModel.renderAll(); - GL11.glTranslatef(0, 1F, 0); - GL11.glScalef(0.65F, 1, 0.65F); - ringModel.renderAll(); - //GL11.glTranslatef(0, -2F, 0); - //ringModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } - - //very professional, i love me some null textures /s - - //there, fixed it ~bob - @Override - protected ResourceLocation getEntityTexture(Entity ent) { - - if(ent.getDataWatcher().getWatchableObjectByte(19) == 1) - return ResourceManager.balefire; - - return ResourceManager.fireball; - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java b/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java deleted file mode 100644 index bb2f8b852..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java +++ /dev/null @@ -1,379 +0,0 @@ -package com.hbm.render.entity.effect; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.effect.EntityNukeCloudSmall.Cloudlet; -import com.hbm.lib.RefStrings; -import com.hbm.main.ResourceManager; -import com.hbm.render.loader.HFRWavefrontObject; - -import net.minecraft.client.renderer.ActiveRenderInfo; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderSmallNukeMK4 extends Render { - - public static final IModelCustom mush = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/mush.obj")); - public static final IModelCustom shockwave = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/ring_roller.obj")); - public static final IModelCustom thinring = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/ring_thin.obj")); - private static final ResourceLocation cloudlet = new ResourceLocation(RefStrings.MODID + ":textures/particle/particle_base.png"); - - /* - * // // ////// ////// // // - * //// //// // // // //// // - * // // // ////// // // //// - * // // // // // // // - * // // // // ////// // // - */ - - /** - * Look how nice and clean this is! - */ - @Override - public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { - - GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - - EntityNukeCloudSmall cloud = (EntityNukeCloudSmall)entity; - - mushWrapper(cloud, interp); - cloudletWrapper(cloud, interp); - flashWrapper(cloud, interp); - - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) { - return null; - } - - /* - * // // ////// ////// ////// ////// ////// ////// ////// - * // // // // // // // // // // // // // // - * // // // //// ////// ////// ////// //// //// ////// - * //// //// // // // // // // // // // // - * // // // // // // // // ////// // // ////// - */ - - /** - * Wrapper for the initial flash - * Caps the rendering at 60 ticks and sets the alpha function - * @param cloud - * @param interp - */ - private void flashWrapper(EntityNukeCloudSmall cloud, float interp) { - - if(cloud.age < 60) { - - GL11.glPushMatrix(); - //Function [0, 1] that determines the scale and intensity (inverse!) of the flash - double scale = (cloud.ticksExisted + interp) / 60D; - GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F); - - //Euler function to slow down the scale as it progresses - //Makes it start fast and the fade-out is nice and smooth - scale = scale * Math.pow(Math.E, -scale) * 2.717391304D; - - renderFlash(scale); - GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - GL11.glPopMatrix(); - } - } - - /** - * Wrapper for the entire mush (head + stem) - * Renders the entire thing twice to allow for smooth color gradients - * @param cloud - * @param interp - */ - private void mushWrapper(EntityNukeCloudSmall cloud, float interp) { - - float size = cloud.getDataWatcher().getWatchableObjectFloat(18) * 5; - - GL11.glPushMatrix(); - - GL11.glScalef(size, size, size); - - boolean balefire = cloud.getDataWatcher().getWatchableObjectByte(19) == 1; - - if(balefire) - bindTexture(ResourceManager.balefire); - else - bindTexture(ResourceManager.fireball); - - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - //Float [0, 1] for the initial solid-colored layer fade-in - float func = MathHelper.clamp_float((cloud.ticksExisted + interp) * 0.0075F, 0, 1); - //Function that determines how high the cloud has risen. The values are the results of trial and error and i forgot what they mean - double height = Math.max(20 - 30 * 20 / ((((cloud.ticksExisted + interp) * 0.5) - 60 * 0.1) + 1), 0); - - if(balefire) - GL11.glColor4f(1.0F - (1.0F - 0.64F) * func, 1.0F, 1.0F - (1.0F - 0.5F) * func, 1F); - else - GL11.glColor4f(1.0F, 1.0F - (1.0F - 0.7F) * func, 1.0F - (1.0F - 0.48F) * func, 1F); - - renderMushHead(cloud.ticksExisted + interp, height); - renderMushStem(cloud.ticksExisted + interp, height); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - - //Float [0.75, 0] That determines the occupancy of the texture layer - float texAlpha = func * 0.875F; - - GL11.glColor4f(1F, 1F, 1F, texAlpha); - //Sets blend to "how you'd expect it" mode - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glEnable(GL11.GL_BLEND); - - //And now we fuck with texture transformations - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glLoadIdentity(); - - GL11.glTranslated(0, -(cloud.ticksExisted + interp) * 0.035, 0); - - GL11.glMatrixMode(GL11.GL_MODELVIEW); - - GL11.glPushMatrix(); - //It's the thing that makes glow-in-the-dark work - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); - renderMushHead(cloud.ticksExisted + interp, height); - renderMushStem(cloud.ticksExisted + interp, height); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopAttrib(); - GL11.glPopMatrix(); - - //Clean this up otherwise the game becomes one-dimensional - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glLoadIdentity(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } - - /** - * Adds all cloudlets to the tessellator and then draws them - * @param cloud - * @param interp - */ - private void cloudletWrapper(EntityNukeCloudSmall cloud, float interp) { - - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - //To prevent particles cutting off before fully fading out - GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.01F); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDepthMask(false); - - bindTexture(cloudlet); - - Tessellator tess = Tessellator.instance; - tess.startDrawingQuads(); - - for(Cloudlet cloudlet : cloud.cloudlets) { - float scale = cloud.age + interp - cloudlet.age; - tessellateCloudlet(tess, cloudlet.posX, cloudlet.posY - cloud.posY + 2, cloudlet.posZ, scale, cloud.getDataWatcher().getWatchableObjectByte(19)); - } - - /*Random rand = new Random(cloud.getEntityId()); - float size = cloud.getDataWatcher().getWatchableObjectFloat(18); - - for(int i = 0; i < 300 * size; i++) { - - float scale = size * 10; - Vec3 vec = Vec3.createVectorHelper(rand.nextGaussian() * scale, 0, rand.nextGaussian() * scale); - - tessellateCloudlet(tess, vec.xCoord, (scale - vec.lengthVector()) * rand.nextDouble() * 0.5, vec.zCoord - 10, (float)(cloud.age * cloud.cloudletLife) / cloud.maxAge, cloud.getDataWatcher().getWatchableObjectByte(19)); - }*/ - - tess.draw(); - - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_ALPHA_TEST); - RenderHelper.enableStandardItemLighting(); - GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - GL11.glDisable(GL11.GL_BLEND); - GL11.glPopMatrix(); - } - - /* - * ////// ////// // // //// ////// ////// ////// ////// ////// - * // // // //// // // // // // // // // // // - * //// //// // //// // // //// //// //// //// ////// - * // // // // // // // // // // // // // // - * // // ////// // // //// ////// // // ////// // // ////// - */ - - /** - * Once again the recycled ender dragon death animation - * It worked so well the last 14 times, let's go for 15 - * @param intensity Double [0, 1] that determines scale and alpha - */ - private void renderFlash(double intensity) { - - GL11.glScalef(0.2F, 0.2F, 0.2F); - - double inverse = 1.0D - intensity; - - Tessellator tessellator = Tessellator.instance; - RenderHelper.disableStandardItemLighting(); - - Random random = new Random(432L); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - - GL11.glPushMatrix(); - - float scale = 100; - - for(int i = 0; i < 300; i++) { - - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - - float vert1 = (random.nextFloat() * 20.0F + 5.0F + 1 * 10.0F) * (float)(intensity * scale); - float vert2 = (random.nextFloat() * 2.0F + 1.0F + 1 * 2.0F) * (float)(intensity * scale); - - tessellator.startDrawing(6); - - tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, (float) inverse); - tessellator.addVertex(0.0D, 0.0D, 0.0D); - tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 0.0F); - tessellator.addVertex(-0.866D * vert2, vert1, -0.5F * vert2); - tessellator.addVertex(0.866D * vert2, vert1, -0.5F * vert2); - tessellator.addVertex(0.0D, vert1, 1.0F * vert2); - tessellator.addVertex(-0.866D * vert2, vert1, -0.5F * vert2); - tessellator.draw(); - } - - GL11.glPopMatrix(); - - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_BLEND); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_ALPHA_TEST); - RenderHelper.enableStandardItemLighting(); - } - - /** - * Render call for the mush head model - * Includes offset and smoothing - * Also scales the fireball along XZ - * @param progress Lifetime + interpolation number - * @param height The current animation offset - */ - private void renderMushHead(float progress, double height) { - - GL11.glPushMatrix(); - - double expansion = 100; - double width = Math.min(progress, expansion) / expansion * 0.3 + 0.7; - - GL11.glTranslated(0, -26 + height, 0); - GL11.glScaled(width, 1, width); - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glDisable(GL11.GL_ALPHA_TEST); - mush.renderPart("Ball"); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } - - /** - * Render call for the mush stem model - * Includes offset and smoothing - * @param progress Lifetime + interpolation number - * @param height The current animation offset - */ - private void renderMushStem(float progress, double height) { - - GL11.glPushMatrix(); - - GL11.glTranslated(0, -26 + height, 0); - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glDisable(GL11.GL_ALPHA_TEST); - mush.renderPart("Stem"); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } - - /** - * Adds one cloudlet (one face) to the tessellator. - * Rotation is done using ActiveRenderInfo, which I'd assume runs on magic - * But hey, if it works for particles, why not here too? - * @param tess - * @param posX - * @param posY - * @param posZ - * @param age The mush' age when the cloudlet was created - * @param type DataWatcher byte #19 which differentiates between different mush types - */ - private void tessellateCloudlet(Tessellator tess, double posX, double posY, double posZ, float age, int type) { - - float alpha = 1F - Math.max(age / (float)(EntityNukeCloudSmall.cloudletLife), 0F); - float alphaorig = alpha; - - float scale = 5F * (alpha * 0.5F + 0.5F); - - if(age < 3) - alpha = age * 0.333F; - - float f1 = ActiveRenderInfo.rotationX; - float f2 = ActiveRenderInfo.rotationZ; - float f3 = ActiveRenderInfo.rotationYZ; - float f4 = ActiveRenderInfo.rotationXY; - float f5 = ActiveRenderInfo.rotationXZ; - - Random rand = new Random((long) ((posX * 5 + posY * 25 + posZ * 125) * 1000D)); - - float brightness = rand.nextFloat() * 0.25F + 0.25F; - - if(type == 1) { - tess.setColorRGBA_F(0.25F * alphaorig, alphaorig - brightness * 0.5F, 0.25F * alphaorig, alpha); - } else { - - tess.setColorRGBA_F(brightness, brightness, brightness, alpha); - } - - tess.addVertexWithUV((double)(posX - f1 * scale - f3 * scale), (double)(posY - f5 * scale), (double)(posZ - f2 * scale - f4 * scale), 1, 1); - tess.addVertexWithUV((double)(posX - f1 * scale + f3 * scale), (double)(posY + f5 * scale), (double)(posZ - f2 * scale + f4 * scale), 1, 0); - tess.addVertexWithUV((double)(posX + f1 * scale + f3 * scale), (double)(posY + f5 * scale), (double)(posZ + f2 * scale + f4 * scale), 0, 0); - tess.addVertexWithUV((double)(posX + f1 * scale - f3 * scale), (double)(posY - f5 * scale), (double)(posZ + f2 * scale - f4 * scale), 0, 1); - - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java index ca6c1f3fa..519ed3ec3 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java @@ -22,12 +22,12 @@ public class RenderMissileTaint extends Render { GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - GL11.glScalef(2F, 2F, 2F); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(getEntityTexture(entity)); - ResourceManager.missileTaint.renderAll(); GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(getEntityTexture(entity)); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileMicro.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java index 64763d78b..c50916252 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -70,7 +70,7 @@ public class ItemRenderMissileGeneric implements IItemRenderer { double guiOffset = 0; switch(this.type) { - case TYPE_TIER0: guiScale = 2.25D; guiOffset = 7.5D; break; + case TYPE_TIER0: guiScale = 3.75D; guiOffset = 10.75D; break; case TYPE_TIER1: guiScale = 2.5D; guiOffset = 8.5D; break; case TYPE_TIER2: guiScale = 2D; guiOffset = 6.5D; break; case TYPE_TIER3: guiScale = 1.25D; guiOffset = 1D; break; @@ -82,6 +82,10 @@ public class ItemRenderMissileGeneric implements IItemRenderer { case TYPE_CARRIER: guiScale = 0.625D; guiOffset = -17D; break; case TYPE_ROBIN: guiScale = 1.25D; guiOffset = 2D; break; } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); switch(type) { case EQUIPPED: @@ -130,11 +134,11 @@ public class ItemRenderMissileGeneric implements IItemRenderer { public static void init() { - renderers.put(new ComparableStack(ModItems.missile_taint), generateDouble(ResourceManager.missileTaint_tex, ResourceManager.missileTaint)); - renderers.put(new ComparableStack(ModItems.missile_micro), generateDouble(ResourceManager.missileMicro_tex, ResourceManager.missileTaint)); - renderers.put(new ComparableStack(ModItems.missile_bhole), generateDouble(ResourceManager.missileMicroBHole_tex, ResourceManager.missileTaint)); - renderers.put(new ComparableStack(ModItems.missile_schrabidium), generateDouble(ResourceManager.missileMicroSchrab_tex, ResourceManager.missileTaint)); - renderers.put(new ComparableStack(ModItems.missile_emp), generateDouble(ResourceManager.missileMicroEMP_tex, ResourceManager.missileTaint)); + renderers.put(new ComparableStack(ModItems.missile_taint), generateStandard(ResourceManager.missileTaint_tex, ResourceManager.missileMicro)); + renderers.put(new ComparableStack(ModItems.missile_micro), generateStandard(ResourceManager.missileMicro_tex, ResourceManager.missileMicro)); + renderers.put(new ComparableStack(ModItems.missile_bhole), generateStandard(ResourceManager.missileMicroBHole_tex, ResourceManager.missileMicro)); + renderers.put(new ComparableStack(ModItems.missile_schrabidium), generateStandard(ResourceManager.missileMicroSchrab_tex, ResourceManager.missileMicro)); + renderers.put(new ComparableStack(ModItems.missile_emp), generateStandard(ResourceManager.missileMicroEMP_tex, ResourceManager.missileMicro)); renderers.put(new ComparableStack(ModItems.missile_stealth), x -> { GL11.glShadeModel(GL11.GL_SMOOTH); diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index a672e32a3..52f975161 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -97,10 +97,6 @@ public class NTMWorldGenerator implements IWorldGenerator { if(StructureConfig.enableStructures) generateOverworldStructures(world, chunkGenerator, chunkX, chunkZ); //Do it through the post-population generation directly } - final int posX = (chunkX << 4) + 8; - final int posZ = (chunkZ << 4) + 8; - BiomeGenBase biome = world.getBiomeGenForCoords(posX, posZ); - /* biome dictionary my beloved <3 * no check for tom here because the event handler already checks for decoration events, + this way they won't become permanently extinct. */ diff --git a/src/main/resources/assets/hbm/models/Missile.obj b/src/main/resources/assets/hbm/models/Missile.obj deleted file mode 100644 index 34659fbf8..000000000 --- a/src/main/resources/assets/hbm/models/Missile.obj +++ /dev/null @@ -1,704 +0,0 @@ -# Blender v2.70 (sub 0) OBJ File: 'Missile.blend' -# www.blender.org -o Cylinder -v -0.109738 3.500000 -0.551692 -v -0.109738 3.750000 -0.551692 -v 0.109738 3.500000 -0.551692 -v 0.109738 3.750000 -0.551692 -v 0.312508 3.500000 -0.467702 -v 0.312508 3.750000 -0.467702 -v 0.467702 3.500000 -0.312508 -v 0.467702 3.750000 -0.312508 -v 0.551692 3.500000 -0.109738 -v 0.551692 3.750000 -0.109738 -v 0.551692 3.500000 0.109738 -v 0.551692 3.750000 0.109738 -v 0.467702 3.500000 0.312508 -v 0.467702 3.750000 0.312508 -v 0.312508 3.500000 0.467702 -v 0.312508 3.750000 0.467702 -v 0.109738 3.500000 0.551692 -v 0.109738 3.750000 0.551692 -v -0.109738 3.500000 0.551692 -v -0.109738 3.750000 0.551692 -v -0.312508 3.500000 0.467702 -v -0.312508 3.750000 0.467702 -v -0.467702 3.500000 0.312508 -v -0.467702 3.750000 0.312508 -v -0.551692 3.500000 0.109738 -v -0.551692 3.750000 0.109738 -v -0.551692 3.500000 -0.109738 -v -0.551692 3.750000 -0.109738 -v -0.467702 3.500000 -0.312508 -v -0.467702 3.750000 -0.312508 -v -0.312508 3.500000 -0.467702 -v -0.312508 3.750000 -0.467702 -v -0.097545 1.000000 -0.490393 -v -0.097545 3.500000 -0.490393 -v 0.097545 1.000000 -0.490393 -v 0.097545 3.500000 -0.490393 -v 0.277785 1.000000 -0.415735 -v 0.277785 3.500000 -0.415735 -v 0.415735 1.000000 -0.277785 -v 0.415735 3.500000 -0.277785 -v 0.490393 1.000000 -0.097545 -v 0.490393 3.500000 -0.097545 -v 0.490393 1.000000 0.097545 -v 0.490393 3.500000 0.097545 -v 0.415735 1.000000 0.277785 -v 0.415735 3.500000 0.277785 -v 0.277785 1.000000 0.415735 -v 0.277785 3.500000 0.415735 -v 0.097545 1.000000 0.490393 -v 0.097545 3.500000 0.490393 -v -0.097545 1.000000 0.490393 -v -0.097545 3.500000 0.490393 -v -0.277785 1.000000 0.415735 -v -0.277785 3.500000 0.415735 -v -0.415735 1.000000 0.277785 -v -0.415735 3.500000 0.277785 -v -0.490393 1.000000 0.097545 -v -0.490393 3.500000 0.097545 -v -0.490393 1.000000 -0.097545 -v -0.490393 3.500000 -0.097545 -v -0.415735 1.000000 -0.277785 -v -0.415735 3.500000 -0.277785 -v -0.277785 1.000000 -0.415735 -v -0.277785 3.500000 -0.415735 -v -0.036579 4.750000 -0.183897 -v 0.036580 4.750000 -0.183897 -v 0.104169 4.750000 -0.155901 -v 0.155901 4.750000 -0.104169 -v 0.183897 4.750000 -0.036579 -v 0.183897 4.750000 0.036579 -v 0.155901 4.750000 0.104169 -v 0.104170 4.750000 0.155901 -v 0.036580 4.750000 0.183897 -v -0.036579 4.750000 0.183897 -v -0.104169 4.750000 0.155901 -v -0.155901 4.750000 0.104169 -v -0.183897 4.750000 0.036579 -v -0.183897 4.750000 -0.036579 -v -0.155900 4.750000 -0.104169 -v -0.104169 4.750000 -0.155901 -v -0.146318 0.000000 -0.735589 -v 0.146318 0.000000 -0.735589 -v 0.416678 0.000000 -0.623602 -v 0.623602 0.000000 -0.416678 -v 0.735589 0.000000 -0.146318 -v 0.735589 0.000000 0.146318 -v 0.623602 0.000000 0.416678 -v 0.416678 0.000000 0.623602 -v 0.146318 0.000000 0.735589 -v -0.146318 0.000000 0.735589 -v -0.416678 0.000000 0.623602 -v -0.623602 0.000000 0.416678 -v -0.735589 0.000000 0.146318 -v -0.735589 0.000000 -0.146318 -v -0.623602 0.000000 -0.416678 -v -0.416678 0.000000 -0.623602 -vt 0.406722 0.903820 -vt 0.371027 0.903820 -vt 0.371027 0.863107 -vt 0.351511 0.964074 -vt 0.315817 0.964074 -vt 0.315817 0.923362 -vt 0.935031 0.050484 -vt 0.899337 0.050484 -vt 0.899337 0.009771 -vt 0.045453 0.943524 -vt 0.009758 0.943524 -vt 0.009758 0.902811 -vt 0.249022 0.929334 -vt 0.213328 0.929334 -vt 0.213328 0.888621 -vt 0.406722 0.964074 -vt 0.371027 0.964074 -vt 0.371027 0.923362 -vt 0.505245 0.903820 -vt 0.469551 0.903820 -vt 0.469551 0.863107 -vt 0.191893 0.955207 -vt 0.156199 0.955207 -vt 0.156199 0.914494 -vt 0.136683 0.974389 -vt 0.100988 0.974389 -vt 0.100988 0.933677 -vt 0.351511 0.903820 -vt 0.315817 0.903820 -vt 0.315817 0.863107 -vt 0.505245 0.964074 -vt 0.469551 0.964074 -vt 0.469551 0.923362 -vt 0.009758 0.842556 -vt 0.045453 0.842556 -vt 0.045453 0.883269 -vt 0.935031 0.110738 -vt 0.899337 0.110738 -vt 0.899337 0.070026 -vt 0.899337 0.136733 -vt 0.935031 0.136733 -vt 0.935031 0.177445 -vt 0.954548 0.563561 -vt 0.966446 0.390045 -vt 0.978344 0.390045 -vt 0.213328 0.948876 -vt 0.249022 0.948876 -vt 0.249022 0.989588 -vt 0.191893 0.894952 -vt 0.156199 0.894952 -vt 0.156199 0.854239 -vt 0.023418 0.307846 -vt 0.031869 0.313501 -vt 0.019727 0.342853 -vt 0.556490 0.416897 -vt 0.524761 0.416897 -vt 0.524761 0.009771 -vt 0.627250 0.009771 -vt 0.658979 0.009771 -vt 0.658979 0.416897 -vt 0.780984 0.009771 -vt 0.812712 0.009771 -vt 0.812712 0.416897 -vt 0.710223 0.416897 -vt 0.678495 0.416897 -vt 0.678495 0.009771 -vt 0.761468 0.416897 -vt 0.729739 0.416897 -vt 0.729739 0.009771 -vt 0.454001 0.416897 -vt 0.422272 0.416897 -vt 0.422272 0.009771 -vt 0.473517 0.436439 -vt 0.505245 0.436439 -vt 0.505245 0.843565 -vt 0.351511 0.843565 -vt 0.319783 0.843565 -vt 0.319783 0.436439 -vt 0.300267 0.843565 -vt 0.268538 0.843565 -vt 0.268538 0.436439 -vt 0.217294 0.268895 -vt 0.249022 0.268895 -vt 0.249022 0.676021 -vt 0.300267 0.416897 -vt 0.268538 0.416897 -vt 0.268538 0.009771 -vt 0.402756 0.416897 -vt 0.371028 0.416897 -vt 0.371027 0.009771 -vt 0.505245 0.416897 -vt 0.473517 0.416897 -vt 0.473517 0.009771 -vt 0.351511 0.416897 -vt 0.319783 0.416897 -vt 0.319783 0.009771 -vt 0.454000 0.436439 -vt 0.454000 0.843565 -vt 0.422272 0.843565 -vt 0.576006 0.009771 -vt 0.607734 0.009771 -vt 0.607734 0.416897 -vt 0.840160 0.009771 -vt 0.871889 0.009771 -vt 0.879821 0.177445 -vt 0.136683 0.878230 -vt 0.136683 0.890144 -vt 0.089833 0.858799 -vt 0.603768 0.984388 -vt 0.615666 0.810872 -vt 0.627564 0.810872 -vt 0.658979 0.984388 -vt 0.670877 0.810872 -vt 0.682775 0.810872 -vt 0.773680 0.984388 -vt 0.737986 0.984388 -vt 0.749884 0.810872 -vt 0.112561 0.834697 -vt 0.076867 0.834697 -vt 0.088765 0.661181 -vt 0.895999 0.990229 -vt 0.860305 0.990229 -vt 0.872203 0.816713 -vt 0.951210 0.990229 -vt 0.915515 0.990229 -vt 0.927413 0.816713 -vt 0.935031 0.563561 -vt 0.899337 0.563561 -vt 0.911235 0.390045 -vt 0.915515 0.797171 -vt 0.927414 0.623655 -vt 0.939312 0.623655 -vt 0.112561 0.641639 -vt 0.076867 0.641639 -vt 0.088765 0.468123 -vt 0.213328 0.869079 -vt 0.225226 0.695563 -vt 0.237124 0.695563 -vt 0.860305 0.797171 -vt 0.872203 0.623655 -vt 0.884101 0.623655 -vt 0.954548 0.370503 -vt 0.966446 0.196987 -vt 0.978344 0.196987 -vt 0.899337 0.370503 -vt 0.911235 0.196987 -vt 0.923133 0.196987 -vt 0.524761 0.984388 -vt 0.536659 0.810872 -vt 0.548557 0.810872 -vt 0.805094 0.984387 -vt 0.816992 0.810872 -vt 0.828891 0.810872 -vt 0.061624 0.028008 -vt 0.105594 0.009771 -vt 0.027971 0.197418 -vt 0.181274 0.468123 -vt 0.189206 0.635798 -vt 0.141614 0.635798 -vt 0.049419 0.655340 -vt 0.057351 0.823014 -vt 0.009758 0.823014 -vt 0.871889 0.249223 -vt 0.879821 0.416897 -vt 0.832228 0.416897 -vt 0.765748 0.436439 -vt 0.773680 0.604113 -vt 0.726087 0.604113 -vt 0.532693 0.791330 -vt 0.524761 0.623655 -vt 0.572354 0.623655 -vt 0.698639 0.436439 -vt 0.706571 0.604113 -vt 0.658979 0.604113 -vt 0.181274 0.655340 -vt 0.189206 0.823014 -vt 0.141614 0.823014 -vt 0.631531 0.604113 -vt 0.599802 0.604113 -vt 0.591870 0.436439 -vt 0.599802 0.791330 -vt 0.591870 0.623655 -vt 0.639463 0.623655 -vt 0.698639 0.623655 -vt 0.706571 0.791330 -vt 0.658979 0.791330 -vt 0.049419 0.468123 -vt 0.057351 0.635798 -vt 0.009758 0.635798 -vt 0.801128 0.436439 -vt 0.832857 0.436439 -vt 0.840789 0.604113 -vt 0.564422 0.436439 -vt 0.572354 0.604113 -vt 0.524761 0.604113 -vt 0.801128 0.623655 -vt 0.832857 0.623655 -vt 0.840789 0.791330 -vt 0.765748 0.791330 -vt 0.734019 0.791330 -vt 0.726087 0.623655 -vt 0.009758 0.376609 -vt 0.009758 0.340867 -vt 0.031869 0.403976 -vt 0.023418 0.409630 -vt 0.054305 0.426441 -vt 0.048657 0.434904 -vt 0.081635 0.448581 -vt 0.117329 0.448581 -vt 0.083618 0.438599 -vt 0.150307 0.434904 -vt 0.115346 0.438599 -vt 0.175547 0.409630 -vt 0.144660 0.426441 -vt 0.179237 0.374624 -vt 0.189206 0.376609 -vt 0.189206 0.340867 -vt 0.167095 0.313501 -vt 0.175547 0.307846 -vt 0.144660 0.291036 -vt 0.150307 0.282573 -vt 0.115346 0.278878 -vt 0.117329 0.268895 -vt 0.081635 0.268895 -vt 0.054305 0.291036 -vt 0.048658 0.282573 -vt 0.406722 0.863107 -vt 0.351511 0.923362 -vt 0.935031 0.009771 -vt 0.045453 0.902811 -vt 0.249022 0.888621 -vt 0.406722 0.923362 -vt 0.505245 0.863107 -vt 0.191893 0.914494 -vt 0.136683 0.933677 -vt 0.351511 0.863107 -vt 0.505245 0.923362 -vt 0.009758 0.883269 -vt 0.935031 0.070026 -vt 0.899337 0.177445 -vt 0.990242 0.563561 -vt 0.213328 0.989588 -vt 0.191893 0.854239 -vt 0.556490 0.009771 -vt 0.627250 0.416897 -vt 0.780984 0.416897 -vt 0.710223 0.009771 -vt 0.761468 0.009771 -vt 0.454000 0.009771 -vt 0.473517 0.843565 -vt 0.351511 0.436439 -vt 0.300267 0.436439 -vt 0.217294 0.676021 -vt 0.300267 0.009771 -vt 0.402756 0.009771 -vt 0.505245 0.009771 -vt 0.351511 0.009771 -vt 0.422272 0.436439 -vt 0.576006 0.416897 -vt 0.832228 0.177445 -vt 0.132130 0.901151 -vt 0.123716 0.909575 -vt 0.112724 0.914135 -vt 0.100826 0.914135 -vt 0.081420 0.901151 -vt 0.076867 0.890144 -vt 0.089833 0.909575 -vt 0.076867 0.878230 -vt 0.081420 0.867223 -vt 0.100826 0.854239 -vt 0.112724 0.854239 -vt 0.123716 0.858799 -vt 0.132130 0.867223 -vt 0.639463 0.984388 -vt 0.694673 0.984388 -vt 0.761782 0.810872 -vt 0.100663 0.661181 -vt 0.884101 0.816713 -vt 0.939312 0.816713 -vt 0.923133 0.390045 -vt 0.951210 0.797171 -vt 0.100663 0.468123 -vt 0.249022 0.869079 -vt 0.895999 0.797171 -vt 0.990242 0.370503 -vt 0.935031 0.370503 -vt 0.560456 0.984388 -vt 0.840789 0.984388 -vt 0.197156 0.028008 -vt 0.230809 0.061706 -vt 0.249022 0.105734 -vt 0.249022 0.153390 -vt 0.230809 0.197418 -vt 0.197156 0.231116 -vt 0.153186 0.249353 -vt 0.153186 0.009771 -vt 0.061624 0.231116 -vt 0.009758 0.153390 -vt 0.009758 0.105734 -vt 0.027971 0.061706 -vt 0.105594 0.249353 -vt 0.149546 0.468123 -vt 0.017690 0.655340 -vt 0.840160 0.249223 -vt 0.734020 0.436439 -vt 0.564422 0.791330 -vt 0.666911 0.436439 -vt 0.149545 0.655340 -vt 0.639463 0.436439 -vt 0.631530 0.791330 -vt 0.666911 0.623655 -vt 0.017690 0.468123 -vt 0.793196 0.604113 -vt 0.532693 0.436439 -vt 0.793196 0.791330 -vt 0.773680 0.623655 -vt 0.019727 0.374623 -vt 0.167095 0.403976 -vt 0.179237 0.342853 -vt 0.083618 0.278878 -vn 0.000000 0.000000 -1.000000 -vn 0.382684 0.000000 -0.923879 -vn 0.707107 0.000000 -0.707107 -vn 0.923879 0.000000 -0.382684 -vn 1.000000 0.000000 0.000000 -vn 0.923880 0.000000 0.382684 -vn 0.707107 0.000000 0.707107 -vn 0.382684 0.000000 0.923879 -vn 0.000000 0.000000 1.000000 -vn -0.382683 0.000000 0.923880 -vn -0.707107 0.000000 0.707107 -vn -0.923880 0.000000 0.382683 -vn -1.000000 0.000000 -0.000000 -vn -0.923880 0.000000 -0.382683 -vn 0.663644 0.345188 -0.663643 -vn -0.382683 0.000000 -0.923880 -vn -0.707106 0.000000 -0.707107 -vn 0.000000 -1.000000 0.000000 -vn 0.382683 0.000000 -0.923880 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 0.382683 -vn -0.923879 0.000000 0.382683 -vn -0.923879 0.000000 -0.382684 -vn -0.707107 0.000000 -0.707107 -vn 0.371674 0.238142 -0.897300 -vn 0.000000 1.000000 0.000006 -vn -0.867092 0.345187 -0.359162 -vn 0.867092 0.345188 0.359161 -vn 0.000000 0.345187 0.938534 -vn -0.867092 0.345188 0.359162 -vn 0.867092 0.345188 -0.359161 -vn -0.663643 0.345188 -0.663644 -vn 0.663644 0.345188 0.663643 -vn -0.359162 0.345188 0.867092 -vn 0.359162 0.345188 -0.867092 -vn -0.938534 0.345188 0.000001 -vn 0.938534 0.345188 0.000001 -vn -0.359160 0.345187 -0.867093 -vn 0.000000 0.345188 -0.938534 -vn 0.359162 0.345188 0.867092 -vn -0.663643 0.345188 0.663644 -vn -0.971230 0.238142 0.000000 -vn 0.971230 0.238142 -0.000000 -vn -0.371673 0.238142 -0.897300 -vn 0.000000 0.238142 -0.971230 -vn 0.371674 0.238142 0.897300 -vn -0.686763 0.238142 0.686764 -vn 0.686763 0.238142 -0.686764 -vn -0.897300 0.238142 -0.371674 -vn 0.897300 0.238142 0.371674 -vn 0.000000 0.238142 0.971230 -vn -0.897300 0.238142 0.371674 -vn 0.897300 0.238142 -0.371674 -vn -0.686763 0.238142 -0.686764 -vn 0.686763 0.238142 0.686763 -vn -0.371674 0.238142 0.897300 -vn 0.000000 -1.000000 0.000003 -vn 0.000000 -1.000000 -0.000002 -vn 0.000000 -1.000000 0.000009 -vn 0.000000 -1.000000 0.000002 -vn 0.923879 0.000000 0.382684 -vn 0.707107 0.000000 0.707106 -vn 0.000001 0.000000 1.000000 -vn -0.382684 0.000000 0.923879 -vn -0.923879 0.000000 0.382684 -vn -0.707107 0.000000 -0.707106 -vn 0.000000 -1.000000 -0.000009 -vn 0.382683 0.000000 0.923880 -vn 0.000000 1.000000 0.000058 -vn 0.000000 1.000000 -0.000015 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 -0.000001 -vn 0.000000 1.000000 -0.000029 -vn 0.000000 1.000000 -0.000004 -vn 0.000000 1.000000 -0.000016 -vn -0.867092 0.345188 -0.359161 -vn 0.000000 1.000000 0.000002 -vn 0.867092 0.345187 0.359162 -vn 0.000001 0.345187 0.938534 -vn -0.867093 0.345188 0.359159 -vn 0.867091 0.345187 -0.359165 -vn -0.663643 0.345187 -0.663644 -vn 0.663643 0.345187 0.663644 -vn -0.359161 0.345188 0.867092 -vn 0.359162 0.345187 -0.867092 -vn -0.938534 0.345188 0.000000 -vn 0.938534 0.345188 0.000000 -vn -0.359162 0.345188 -0.867092 -vn 0.359161 0.345188 0.867092 -vn -0.663644 0.345188 0.663644 -vn -0.371674 0.238142 -0.897300 -vn 0.686764 0.238142 -0.686764 -vn 0.686764 0.238142 0.686763 -vn -0.371673 0.238142 0.897300 -vn 0.000000 -1.000000 0.000005 -vn 0.000000 -1.000000 -0.000010 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/4/2 6/5/2 5/6/2 -f 6/7/3 8/8/3 7/9/3 -f 8/10/4 10/11/4 9/12/4 -f 10/13/5 12/14/5 11/15/5 -f 12/16/6 14/17/6 13/18/6 -f 14/19/7 16/20/7 15/21/7 -f 16/22/8 18/23/8 17/24/8 -f 18/25/9 20/26/9 19/27/9 -f 20/28/10 22/29/10 21/30/10 -f 22/31/11 24/32/11 23/33/11 -f 24/34/12 26/35/12 25/36/12 -f 26/37/13 28/38/13 27/39/13 -f 28/40/14 30/41/14 29/42/14 -f 6/43/15 67/44/15 68/45/15 -f 32/46/16 2/47/16 1/48/16 -f 30/49/17 32/50/17 31/51/17 -f 5/52/18 38/53/18 36/54/18 -f 34/55/1 36/56/1 35/57/1 -f 36/58/19 38/59/19 37/60/19 -f 38/61/3 40/62/3 39/63/3 -f 40/64/20 42/65/20 41/66/20 -f 42/67/5 44/68/5 43/69/5 -f 44/70/21 46/71/21 45/72/21 -f 46/73/7 48/74/7 47/75/7 -f 48/76/8 50/77/8 49/78/8 -f 50/79/9 52/80/9 51/81/9 -f 52/82/10 54/83/10 53/84/10 -f 54/85/11 56/86/11 55/87/11 -f 56/88/22 58/89/22 57/90/22 -f 58/91/13 60/92/13 59/93/13 -f 60/94/23 62/95/23 61/96/23 -f 63/97/16 64/98/16 34/99/16 -f 62/100/24 64/101/24 63/102/24 -f 35/103/25 37/104/25 83/105/25 -f 68/106/26 67/107/26 73/108/26 -f 28/109/27 78/110/27 79/111/27 -f 12/112/28 70/113/28 71/114/28 -f 20/115/29 18/116/29 73/117/29 -f 26/118/30 24/119/30 76/120/30 -f 10/121/31 8/122/31 68/123/31 -f 32/124/32 30/125/32 79/126/32 -f 16/127/33 14/128/33 71/129/33 -f 20/130/34 74/131/34 75/132/34 -f 6/133/35 4/134/35 66/135/35 -f 26/136/36 77/137/36 78/138/36 -f 10/139/37 69/140/37 70/141/37 -f 32/142/38 80/143/38 65/144/38 -f 2/145/39 65/146/39 66/147/39 -f 16/148/40 72/149/40 73/150/40 -f 22/151/41 75/152/41 76/153/41 -f 96/154/18 81/155/18 92/156/18 -f 59/157/42 94/158/42 93/159/42 -f 43/160/43 86/161/43 85/162/43 -f 33/163/44 81/164/44 96/165/44 -f 35/166/45 82/167/45 81/168/45 -f 49/169/46 89/170/46 88/171/46 -f 55/172/47 92/173/47 91/174/47 -f 39/175/48 84/176/48 83/177/48 -f 59/178/49 61/179/49 95/180/49 -f 45/181/50 87/182/50 86/183/50 -f 51/184/51 90/185/51 89/186/51 -f 57/187/52 93/188/52 92/189/52 -f 39/190/53 41/191/53 85/192/53 -f 63/193/54 96/194/54 95/195/54 -f 45/196/55 47/197/55 88/198/55 -f 51/199/56 53/200/56 91/201/56 -f 1/202/57 3/203/57 36/54/57 -f 64/204/18 31/205/18 1/202/18 -f 62/206/18 29/207/18 31/205/18 -f 27/208/18 29/207/18 62/206/18 -f 25/209/18 27/208/18 60/210/18 -f 23/211/58 25/209/58 58/212/58 -f 21/213/18 23/211/18 56/214/18 -f 52/215/59 19/216/59 21/213/59 -f 17/217/60 19/216/60 52/215/60 -f 48/218/18 15/219/18 17/217/18 -f 46/220/18 13/221/18 15/219/18 -f 44/222/18 11/223/18 13/221/18 -f 9/224/18 11/223/18 44/222/18 -f 40/225/18 7/226/18 9/224/18 -f 38/53/18 5/52/18 7/226/18 -f 1/227/1 2/1/1 3/3/1 -f 3/228/19 4/4/19 5/6/19 -f 5/229/3 6/7/3 7/9/3 -f 7/230/4 8/10/4 9/12/4 -f 9/231/5 10/13/5 11/15/5 -f 11/232/61 12/16/61 13/18/61 -f 13/233/62 14/19/62 15/21/62 -f 15/234/8 16/22/8 17/24/8 -f 17/235/63 18/25/63 19/27/63 -f 19/236/64 20/28/64 21/30/64 -f 21/237/11 22/31/11 23/33/11 -f 23/238/65 24/34/65 25/36/65 -f 25/239/13 26/37/13 27/39/13 -f 27/240/14 28/40/14 29/42/14 -f 8/241/15 6/43/15 68/45/15 -f 31/242/16 32/46/16 1/48/16 -f 29/243/66 30/49/66 31/51/66 -f 3/203/67 5/52/67 36/54/67 -f 33/244/1 34/55/1 35/57/1 -f 35/245/19 36/58/19 37/60/19 -f 37/246/3 38/61/3 39/63/3 -f 39/247/20 40/64/20 41/66/20 -f 41/248/5 42/67/5 43/69/5 -f 43/249/21 44/70/21 45/72/21 -f 45/250/7 46/73/7 47/75/7 -f 47/251/68 48/76/68 49/78/68 -f 49/252/9 50/79/9 51/81/9 -f 51/253/10 52/82/10 53/84/10 -f 53/254/11 54/85/11 55/87/11 -f 55/255/65 56/88/65 57/90/65 -f 57/256/13 58/91/13 59/93/13 -f 59/257/23 60/94/23 61/96/23 -f 33/258/16 63/97/16 34/99/16 -f 61/259/24 62/100/24 63/102/24 -f 82/260/25 35/103/25 83/105/25 -f 67/107/69 66/261/69 65/262/69 -f 65/262/70 80/263/70 79/264/70 -f 77/265/71 76/266/71 78/267/71 -f 75/268/72 79/264/72 76/266/72 -f 75/268/73 74/269/73 73/108/73 -f 73/108/71 72/270/71 71/271/71 -f 71/271/74 70/272/74 69/273/74 -f 76/266/71 79/264/71 78/267/71 -f 67/107/75 65/262/75 79/264/75 -f 71/271/71 69/273/71 68/106/71 -f 71/271/71 68/106/71 73/108/71 -f 30/274/76 28/109/76 79/111/76 -f 67/107/77 79/264/77 75/268/77 -f 14/275/78 12/112/78 71/114/78 -f 67/107/71 75/268/71 73/108/71 -f 74/276/79 20/115/79 73/117/79 -f 77/277/80 26/118/80 76/120/80 -f 69/278/81 10/121/81 68/123/81 -f 80/279/82 32/124/82 79/126/82 -f 72/280/83 16/127/83 71/129/83 -f 22/281/84 20/130/84 75/132/84 -f 67/282/85 6/133/85 66/135/85 -f 28/283/86 26/136/86 78/138/86 -f 12/284/87 10/139/87 70/141/87 -f 2/285/88 32/142/88 65/144/88 -f 4/286/39 2/145/39 66/147/39 -f 18/287/89 16/148/89 73/150/89 -f 24/288/90 22/151/90 76/153/90 -f 92/156/18 81/155/18 83/289/18 -f 83/289/18 84/290/18 85/291/18 -f 86/292/18 87/293/18 85/291/18 -f 88/294/18 89/295/18 87/293/18 -f 81/155/18 82/296/18 83/289/18 -f 92/156/18 89/295/18 91/297/18 -f 92/156/18 93/298/18 94/299/18 -f 94/299/18 95/300/18 96/154/18 -f 85/291/18 89/295/18 92/156/18 -f 87/293/18 89/295/18 85/291/18 -f 85/291/18 92/156/18 83/289/18 -f 92/156/18 94/299/18 96/154/18 -f 89/295/18 90/301/18 91/297/18 -f 57/302/42 59/157/42 93/159/42 -f 41/303/43 43/160/43 85/162/43 -f 63/304/91 33/163/91 96/165/91 -f 33/305/45 35/166/45 81/168/45 -f 47/306/46 49/169/46 88/171/46 -f 53/307/47 55/172/47 91/174/47 -f 37/308/92 39/175/92 83/177/92 -f 94/309/49 59/178/49 95/180/49 -f 43/310/50 45/181/50 86/183/50 -f 49/311/51 51/184/51 89/186/51 -f 55/312/52 57/187/52 92/189/52 -f 84/313/53 39/190/53 85/192/53 -f 61/314/54 63/193/54 95/195/54 -f 87/315/93 45/196/93 88/198/93 -f 90/316/94 51/199/94 91/201/94 -f 34/317/18 1/202/18 36/54/18 -f 34/317/18 64/204/18 1/202/18 -f 64/204/18 62/206/18 31/205/18 -f 60/210/18 27/208/18 62/206/18 -f 58/212/18 25/209/18 60/210/18 -f 56/214/60 23/211/60 58/212/60 -f 54/318/95 21/213/95 56/214/95 -f 54/318/18 52/215/18 21/213/18 -f 50/319/18 17/217/18 52/215/18 -f 50/319/96 48/218/96 17/217/96 -f 48/218/18 46/220/18 15/219/18 -f 46/220/18 44/222/18 13/221/18 -f 42/320/18 9/224/18 44/222/18 -f 42/320/18 40/225/18 9/224/18 -f 40/225/18 38/53/18 7/226/18 diff --git a/src/main/resources/assets/hbm/models/NukeCloudHuge.obj b/src/main/resources/assets/hbm/models/NukeCloudHuge.obj deleted file mode 100644 index b4528b6f0..000000000 --- a/src/main/resources/assets/hbm/models/NukeCloudHuge.obj +++ /dev/null @@ -1,945 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'NukeCloudHuge.blend' -# www.blender.org -o Cylinder -v -0.000000 0.000000 -6.000000 -v -0.000000 1.000000 -3.125000 -v 2.296101 0.000000 -5.543277 -v 1.195886 1.000000 -2.887124 -v 4.242640 0.000000 -4.242640 -v 2.209708 1.000000 -2.209709 -v 5.543277 0.000000 -2.296101 -v 2.887123 1.000000 -1.195886 -v 6.000000 0.000000 0.000000 -v 3.125000 1.000000 0.000000 -v 5.543277 0.000000 2.296101 -v 2.887123 1.000000 1.195886 -v 4.242640 0.000000 4.242640 -v 2.209708 1.000000 2.209709 -v 2.296101 0.000000 5.543277 -v 1.195886 1.000000 2.887124 -v 0.000001 0.000000 6.000000 -v 0.000000 1.000000 3.125000 -v -2.296099 0.000000 5.543278 -v -1.195885 1.000000 2.887124 -v -4.242640 0.000000 4.242642 -v -2.209708 1.000000 2.209710 -v -5.543277 0.000000 2.296102 -v -2.887124 1.000000 1.195886 -v -6.000000 0.000000 -0.000000 -v -3.125000 1.000000 -0.000000 -v -5.543277 0.000000 -2.296102 -v -2.887124 1.000000 -1.195886 -v -4.242640 0.000000 -4.242642 -v -2.209708 1.000000 -2.209710 -v -2.296098 0.000000 -5.543279 -v -1.195884 1.000000 -2.887124 -v -0.000000 2.000000 -1.500000 -v 0.574025 2.000000 -1.385819 -v 1.060660 2.000000 -1.060660 -v 1.385819 2.000000 -0.574025 -v 1.500000 2.000000 0.000000 -v 1.385819 2.000000 0.574025 -v 1.060660 2.000000 1.060660 -v 0.574025 2.000000 1.385819 -v 0.000000 2.000000 1.500000 -v -0.574025 2.000000 1.385819 -v -1.060660 2.000000 1.060660 -v -1.385819 2.000000 0.574025 -v -1.500000 2.000000 -0.000000 -v -1.385819 2.000000 -0.574025 -v -1.060660 2.000000 -1.060660 -v -0.574024 2.000000 -1.385820 -v -0.000000 8.000000 -0.750000 -v 0.287013 8.000000 -0.692910 -v 0.530330 8.000000 -0.530330 -v 0.692910 8.000000 -0.287013 -v 0.750000 8.000000 0.000000 -v 0.692910 8.000000 0.287013 -v 0.530330 8.000000 0.530330 -v 0.287013 8.000000 0.692910 -v 0.000000 8.000000 0.750000 -v -0.287012 8.000000 0.692910 -v -0.530330 8.000000 0.530330 -v -0.692910 8.000000 0.287013 -v -0.750000 8.000000 -0.000000 -v -0.692910 8.000000 -0.287013 -v -0.530330 8.000000 -0.530330 -v -0.287012 8.000000 -0.692910 -v -0.000000 6.000000 -3.000000 -v 1.148050 6.000000 -2.771638 -v 2.121320 6.000000 -2.121320 -v 2.771638 6.000000 -1.148050 -v 3.000000 6.000000 0.000000 -v 2.771638 6.000000 1.148051 -v 2.121320 6.000000 2.121320 -v 1.148050 6.000000 2.771638 -v 0.000000 6.000000 3.000000 -v -1.148050 6.000000 2.771639 -v -2.121320 6.000000 2.121321 -v -2.771639 6.000000 1.148051 -v -3.000000 6.000000 -0.000000 -v -2.771639 6.000000 -1.148051 -v -2.121320 6.000000 -2.121321 -v -1.148049 6.000000 -2.771639 -v -0.000001 6.000000 -5.000000 -v 1.913417 6.000000 -4.619398 -v 3.535533 6.000000 -3.535534 -v 4.619397 6.000000 -1.913417 -v 5.000000 6.000000 0.000000 -v 4.619397 6.000000 1.913418 -v 3.535533 6.000000 3.535534 -v 1.913417 6.000000 4.619398 -v 0.000000 6.000000 5.000000 -v -1.913417 6.000000 4.619398 -v -3.535533 6.000000 3.535535 -v -4.619398 6.000000 1.913418 -v -5.000000 6.000000 -0.000000 -v -4.619398 6.000000 -1.913418 -v -3.535533 6.000000 -3.535535 -v -1.913416 6.000000 -4.619399 -v -0.000001 7.000000 -6.500000 -v 2.487442 7.000000 -6.005217 -v 4.596193 7.000000 -4.596194 -v 6.005217 7.000000 -2.487442 -v 6.499999 7.000000 0.000000 -v 6.005217 7.000000 2.487443 -v 4.596193 7.000000 4.596194 -v 2.487442 7.000000 6.005217 -v 0.000000 7.000000 6.500000 -v -2.487442 7.000000 6.005218 -v -4.596194 7.000000 4.596196 -v -6.005218 7.000000 2.487443 -v -6.500001 7.000000 -0.000000 -v -6.005217 7.000000 -2.487443 -v -4.596193 7.000000 -4.596196 -v -2.487440 7.000000 -6.005219 -v -0.000001 8.000000 -7.150000 -v 2.736187 8.000000 -6.605739 -v 5.055813 8.000000 -5.055813 -v 6.605738 8.000000 -2.736187 -v 7.149999 8.000000 0.000000 -v 6.605738 8.000000 2.736187 -v 5.055813 8.000000 5.055813 -v 2.736187 8.000000 6.605739 -v 0.000001 8.000000 7.150000 -v -2.736186 8.000000 6.605740 -v -5.055813 8.000000 5.055815 -v -6.605740 8.000000 2.736188 -v -7.150000 8.000000 -0.000000 -v -6.605739 8.000000 -2.736188 -v -5.055813 8.000000 -5.055815 -v -2.736184 8.000000 -6.605741 -v -0.000001 9.500000 -6.250000 -v 2.391771 9.500000 -5.774247 -v 4.419416 9.500000 -4.419417 -v 5.774246 9.500000 -2.391771 -v 6.250000 9.500000 0.000000 -v 5.774246 9.500000 2.391772 -v 4.419416 9.500000 4.419417 -v 2.391771 9.500000 5.774247 -v 0.000000 9.500000 6.250000 -v -2.391771 9.500000 5.774248 -v -4.419417 9.500000 4.419419 -v -5.774248 9.500000 2.391772 -v -6.250000 9.500000 -0.000000 -v -5.774247 9.500000 -2.391773 -v -4.419416 9.500000 -4.419419 -v -2.391769 9.500000 -5.774248 -v -0.000000 10.500000 -3.500000 -v 1.339392 10.500000 -3.233578 -v 2.474873 10.500000 -2.474874 -v 3.233578 10.500000 -1.339392 -v 3.500000 10.500000 0.000000 -v 3.233578 10.500000 1.339392 -v 2.474873 10.500000 2.474874 -v 1.339392 10.500000 3.233578 -v 0.000000 10.500000 3.500000 -v -1.339391 10.500000 3.233579 -v -2.474874 10.500000 2.474874 -v -3.233579 10.500000 1.339393 -v -3.500000 10.500000 -0.000000 -v -3.233578 10.500000 -1.339393 -v -2.474873 10.500000 -2.474874 -v -1.339391 10.500000 -3.233579 -v -0.000000 11.000000 -1.000000 -v 0.382683 11.000000 -0.923880 -v 0.707106 11.000000 -0.707107 -v 0.923879 11.000000 -0.382683 -v 1.000000 11.000000 0.000000 -v 0.923879 11.000000 0.382684 -v 0.707106 11.000000 0.707107 -v 0.382683 11.000000 0.923880 -v -0.000000 11.000000 1.000000 -v -0.382684 11.000000 0.923880 -v -0.707107 11.000000 0.707107 -v -0.923880 11.000000 0.382684 -v -1.000000 11.000000 -0.000000 -v -0.923880 11.000000 -0.382684 -v -0.707107 11.000000 -0.707107 -v -0.382683 11.000000 -0.923880 -v 0.000000 11.250500 0.000000 -vt 0.749890 0.583032 -vt 0.708368 0.565532 -vt 0.733595 0.459782 -vt 0.663424 0.565532 -vt 0.647304 0.459782 -vt 0.621902 0.583032 -vt 0.567581 0.493381 -vt 0.590122 0.615366 -vt 0.572923 0.657614 -vt 0.473541 0.636579 -vt 0.572923 0.703342 -vt 0.473541 0.724377 -vt 0.590122 0.745589 -vt 0.506564 0.805492 -vt 0.621902 0.777924 -vt 0.567581 0.867574 -vt 0.663424 0.795423 -vt 0.647304 0.901173 -vt 0.708368 0.795423 -vt 0.749890 0.777924 -vt 0.813318 0.867575 -vt 0.781670 0.745589 -vt 0.874336 0.805492 -vt 0.798869 0.703342 -vt 0.907358 0.724377 -vt 0.798869 0.657614 -vt 0.907358 0.636579 -vt 0.650625 0.633704 -vt 0.635370 0.649224 -vt 0.781670 0.615366 -vt 0.813318 0.493381 -vt 0.922728 0.518034 -vt 0.938204 0.737805 -vt 0.930519 0.740416 -vt 0.735569 0.669503 -vt 0.627115 0.691453 -vt 0.635370 0.711731 -vt 0.670556 0.735652 -vt 0.692128 0.735652 -vt 0.692128 0.625304 -vt 0.670556 0.625304 -vt 0.727314 0.711731 -vt 0.735569 0.691453 -vt 0.627115 0.669503 -vt 0.727314 0.649224 -vt 0.712059 0.633704 -vt 0.712059 0.727252 -vt 0.976322 0.459782 -vt 0.964547 0.515208 -vt 0.942811 0.515208 -vt 0.650625 0.727252 -vt 0.242205 0.266674 -vt 0.252246 0.262474 -vt 0.298672 0.332635 -vt 0.959113 0.736392 -vt 0.948245 0.736392 -vt 1.000000 0.523255 -vt 0.976840 0.740416 -vt 0.969154 0.737805 -vt 0.927209 0.741881 -vt 0.947256 0.962205 -vt 0.937330 0.964292 -vt 0.392623 0.776124 -vt 0.401827 0.997180 -vt 0.390982 0.997913 -vt 0.948897 0.740416 -vt 0.969121 0.741881 -vt 0.968212 0.962205 -vt 0.945516 0.000000 -vt 0.950950 0.221184 -vt 0.940909 0.222597 -vt 0.967253 0.000000 -vt 0.987335 0.002826 -vt 0.971860 0.222597 -vt 0.984630 0.518034 -vt 0.428529 0.781763 -vt 0.419779 1.000000 -vt 0.411939 0.997913 -vt 0.370935 0.777589 -vt 0.381057 1.000000 -vt 0.958100 0.961473 -vt 0.412848 0.777589 -vt 0.984803 0.746055 -vt 0.976053 0.964292 -vt 0.961819 0.221184 -vt 0.258508 0.349435 -vt 0.272999 0.423000 -vt 0.200543 0.423000 -vt 0.264090 0.244574 -vt 0.346049 0.261036 -vt 0.329413 0.301594 -vt 0.264090 0.233599 -vt 0.259931 0.223460 -vt 0.329413 0.176580 -vt 0.213610 0.223460 -vt 0.144129 0.176580 -vt 0.174869 0.145538 -vt 0.242205 0.211500 -vt 0.258508 0.128739 -vt 0.298672 0.145538 -vt 0.209451 0.244574 -vt 0.127492 0.261036 -vt 0.127492 0.217137 -vt 0.221295 0.215700 -vt 0.215034 0.128739 -vt 0.221295 0.262474 -vt 0.174869 0.332635 -vt 0.144129 0.301594 -vt 0.215034 0.349435 -vt 0.259931 0.254714 -vt 0.346049 0.217137 -vt 0.252246 0.215700 -vt 0.209451 0.233599 -vt 0.231336 0.211500 -vt 0.213610 0.254714 -vt 0.231336 0.266674 -vt 0.133602 0.395001 -vt 0.189674 0.478174 -vt 0.391174 0.343265 -vt 0.418902 0.202504 -vt 0.339940 0.083173 -vt 0.391174 0.134908 -vt 0.054639 0.202504 -vt 0.200542 0.055174 -vt 0.272999 0.055174 -vt 0.082367 0.343265 -vt 0.054639 0.275669 -vt 0.339940 0.395001 -vt 0.418902 0.275669 -vt 0.082367 0.134908 -vt 0.133602 0.083173 -vt 0.012127 0.565699 -vt 0.040349 0.552155 -vt 0.027010 0.648817 -vt 0.370890 0.441775 -vt 0.283867 0.478174 -vt 0.473541 0.286644 -vt 0.437495 0.103655 -vt 0.473541 0.191529 -vt 0.036046 0.103655 -vt 0.102651 0.036399 -vt 0.283867 0.000000 -vt 0.370890 0.036399 -vt 0.000000 0.286644 -vt 0.000000 0.191529 -vt 0.189674 0.000000 -vt 0.102651 0.441775 -vt 0.036046 0.374519 -vt 0.437495 0.374519 -vt 0.090501 0.655402 -vt 0.090501 0.746859 -vt 0.089239 0.462044 -vt 0.015974 0.388062 -vt 0.237396 0.657564 -vt 0.264031 0.650998 -vt 0.270949 0.755390 -vt 0.457568 0.388062 -vt 0.384302 0.462044 -vt 0.351085 0.674706 -vt 0.351085 0.579591 -vt 0.378094 0.574836 -vt 0.384302 0.016130 -vt 0.457567 0.090112 -vt 0.129996 0.752467 -vt 0.157260 0.755391 -vt 0.176961 0.850938 -vt 0.000000 0.748688 -vt 0.000000 0.653573 -vt 0.123707 0.657564 -vt 0.129996 0.569068 -vt 0.157260 0.553652 -vt 0.243685 0.752466 -vt 0.290650 0.850937 -vt 0.243685 0.569068 -vt 0.270949 0.553652 -vt 0.363211 0.762580 -vt 0.378094 0.679462 -vt 0.363211 0.491717 -vt 0.391433 0.478174 -vt 0.015974 0.090112 -vt 0.089239 0.016130 -vt 0.027010 0.753444 -vt 0.040349 0.850105 -vt 0.150342 0.650998 -vt 0.571499 0.034999 -vt 0.654544 0.000000 -vt 0.669765 0.101152 -vt 0.220175 0.568195 -vt 0.214127 0.653287 -vt 0.333863 0.744540 -vt 0.351085 0.828060 -vt 0.333863 0.568195 -vt 0.327816 0.653287 -vt 0.391433 0.776124 -vt 0.441586 0.672877 -vt 0.453246 0.496926 -vt 0.441586 0.581420 -vt 0.064997 0.478174 -vt 0.123707 0.506238 -vt 0.102162 0.570908 -vt 0.102162 0.831353 -vt 0.220174 0.744540 -vt 0.176961 0.478174 -vt 0.237396 0.502217 -vt 0.290650 0.478174 -vt 0.351084 0.502217 -vt 0.123707 0.896023 -vt 0.925434 0.275619 -vt 0.821464 0.255499 -vt 0.821464 0.204283 -vt 0.827476 0.034999 -vt 0.766607 0.120751 -vt 0.720102 0.101152 -vt 0.827476 0.424784 -vt 0.766607 0.339031 -vt 0.802200 0.302816 -vt 0.654544 0.459782 -vt 0.669765 0.358630 -vt 0.720102 0.358630 -vt 0.507939 0.360114 -vt 0.587667 0.302816 -vt 0.623260 0.339031 -vt 0.473541 0.184163 -vt 0.568404 0.204283 -vt 0.568404 0.255499 -vt 0.623260 0.120751 -vt 0.587667 0.156966 -vt 0.891035 0.099668 -vt 0.925434 0.184163 -vt 0.744431 0.000000 -vt 0.891035 0.360114 -vt 0.744431 0.459782 -vt 0.571499 0.424783 -vt 0.473541 0.275619 -vt 0.507939 0.099668 -vt 0.802200 0.156966 -vt 0.685466 0.266674 -vt 0.699848 0.266674 -vt 0.713135 0.261074 -vt 0.656505 0.237208 -vt 0.691516 0.229891 -vt 0.662009 0.250727 -vt 0.672179 0.261074 -vt 0.723304 0.250727 -vt 0.728808 0.237208 -vt 0.728808 0.222575 -vt 0.723304 0.209055 -vt 0.662009 0.209055 -vt 0.656505 0.222575 -vt 0.713135 0.198708 -vt 0.699848 0.193109 -vt 0.685466 0.193109 -vt 0.672179 0.198708 -vt 0.506564 0.555464 -vt 0.733595 0.901173 -vt 0.874336 0.555464 -vt 0.907358 0.523255 -vt 0.931036 0.459782 -vt 0.907358 0.746055 -vt 0.925434 0.002826 -vt 0.351085 0.781763 -vt 0.147906 0.839327 -vt 0.261595 0.839327 -vt 0.012127 0.836562 -vt 0.453246 0.757371 -vt 0.064997 0.924087 -vt 0.237396 0.828060 -vn 0.065200 0.942500 -0.327800 -vn 0.185700 0.942500 -0.277900 -vn 0.277900 0.942500 -0.185700 -vn 0.327800 0.942500 -0.065200 -vn 0.327800 0.942500 0.065200 -vn 0.277900 0.942500 0.185700 -vn 0.185700 0.942500 0.277900 -vn 0.065200 0.942500 0.327800 -vn -0.065200 0.942500 0.327800 -vn -0.185700 0.942500 0.277900 -vn -0.277900 0.942500 0.185700 -vn -0.327800 0.942500 0.065200 -vn -0.327800 0.942500 -0.065200 -vn -0.277900 0.942500 -0.185700 -vn 0.521300 0.847100 -0.103700 -vn -0.065200 0.942500 -0.327800 -vn -0.185700 0.942500 -0.277900 -vn 0.193600 0.121700 0.973500 -vn -0.295300 0.847100 -0.441900 -vn 0.295300 0.847100 0.441900 -vn -0.295300 0.847100 0.441900 -vn 0.295300 0.847100 -0.441900 -vn -0.521300 0.847100 -0.103700 -vn 0.521300 0.847100 0.103700 -vn -0.103700 0.847100 -0.521300 -vn 0.103700 0.847100 -0.521300 -vn 0.103700 0.847100 0.521300 -vn -0.441900 0.847100 0.295300 -vn 0.441900 0.847100 -0.295300 -vn -0.441900 0.847100 -0.295300 -vn 0.441900 0.847100 0.295300 -vn -0.103700 0.847100 0.521300 -vn -0.521300 0.847100 0.103700 -vn 0.131000 -0.741000 -0.658600 -vn 0.825300 0.121700 0.551400 -vn 0.973500 0.121700 -0.193600 -vn -0.551400 0.121700 -0.825300 -vn 0.551400 0.121700 -0.825300 -vn -0.973500 0.121700 -0.193600 -vn -0.825300 0.121700 0.551400 -vn -0.193600 0.121700 0.973500 -vn 0.551400 0.121700 0.825300 -vn 0.973500 0.121700 0.193600 -vn -0.193600 0.121700 -0.973500 -vn 0.825300 0.121700 -0.551400 -vn -0.825300 0.121700 -0.551400 -vn 0.193600 0.121700 -0.973500 -vn -0.973500 0.121700 0.193600 -vn -0.551400 0.121700 0.825300 -vn 0.000000 -1.000000 0.000000 -vn -0.373100 -0.741000 -0.558400 -vn -0.658600 -0.741000 -0.131000 -vn 0.131000 -0.741000 0.658600 -vn -0.558400 -0.741000 0.373100 -vn 0.558400 -0.741000 0.373100 -vn -0.131000 -0.741000 0.658600 -vn 0.658600 -0.741000 -0.131000 -vn 0.373100 -0.741000 -0.558400 -vn -0.131000 -0.741000 -0.658600 -vn -0.558400 -0.741000 -0.373100 -vn -0.658600 -0.741000 0.131000 -vn 0.373100 -0.741000 0.558400 -vn -0.373100 -0.741000 0.558400 -vn 0.658600 -0.741000 0.131000 -vn 0.558400 -0.741000 -0.373100 -vn -0.467400 -0.827000 0.312300 -vn 0.164500 -0.537600 -0.827000 -vn -0.109700 -0.827000 0.551400 -vn 0.312300 -0.827000 0.467400 -vn 0.551400 -0.827000 0.109700 -vn -0.109700 -0.827000 -0.551400 -vn 0.467400 -0.827000 -0.312300 -vn -0.467400 -0.827000 -0.312300 -vn 0.109700 -0.827000 -0.551400 -vn -0.551400 -0.827000 0.109700 -vn -0.312300 -0.827000 0.467400 -vn 0.109700 -0.827000 0.551400 -vn 0.467400 -0.827000 0.312300 -vn 0.551400 -0.827000 -0.109700 -vn -0.312300 -0.827000 -0.467400 -vn 0.312300 -0.827000 -0.467400 -vn -0.551400 -0.827000 -0.109700 -vn 0.478800 0.507200 -0.716600 -vn -0.827000 -0.537600 0.164500 -vn -0.468500 -0.537600 0.701100 -vn 0.164500 -0.537600 0.827000 -vn 0.701100 -0.537600 0.468500 -vn 0.827000 -0.537600 -0.164500 -vn -0.468500 -0.537600 -0.701100 -vn 0.468500 -0.537600 -0.701100 -vn -0.827000 -0.537600 -0.164500 -vn -0.701100 -0.537600 0.468500 -vn -0.164500 -0.537600 0.827000 -vn 0.468500 -0.537600 0.701100 -vn 0.827000 -0.537600 0.164500 -vn -0.164500 -0.537600 -0.827000 -vn 0.701100 -0.537600 -0.468500 -vn -0.701100 -0.537600 -0.468500 -vn 0.289000 0.937600 -0.193100 -vn -0.845300 0.507200 -0.168100 -vn -0.716600 0.507200 0.478800 -vn -0.168100 0.507200 0.845300 -vn 0.478800 0.507200 0.716600 -vn 0.845300 0.507200 0.168100 -vn -0.168100 0.507200 -0.845300 -vn 0.716600 0.507200 -0.478800 -vn -0.716600 0.507200 -0.478800 -vn 0.168100 0.507200 -0.845300 -vn -0.845300 0.507200 0.168100 -vn -0.478800 0.507200 0.716600 -vn 0.168100 0.507200 0.845300 -vn 0.716600 0.507200 0.478800 -vn 0.845300 0.507200 -0.168100 -vn -0.478800 0.507200 -0.716600 -vn -0.289000 0.937600 -0.193100 -vn 0.067800 0.937600 -0.341000 -vn -0.341000 0.937600 0.067800 -vn -0.193100 0.937600 0.289000 -vn 0.067800 0.937600 0.341000 -vn 0.289000 0.937600 0.193100 -vn 0.341000 0.937600 -0.067800 -vn -0.193100 0.937600 -0.289000 -vn 0.193100 0.937600 -0.289000 -vn -0.341000 0.937600 -0.067800 -vn -0.289000 0.937600 0.193100 -vn -0.067800 0.937600 0.341000 -vn 0.193100 0.937600 0.289000 -vn 0.341000 0.937600 0.067800 -vn -0.067800 0.937600 -0.341000 -vn -0.111000 0.979800 0.166100 -vn -0.166100 0.979800 0.111000 -vn 0.137500 0.968900 0.205800 -vn 0.048300 0.968900 0.242700 -vn -0.048300 0.968900 0.242700 -vn -0.137500 0.968900 0.205800 -vn -0.205800 0.968900 0.137500 -vn -0.242700 0.968900 0.048300 -vn -0.242700 0.968900 -0.048300 -vn -0.205800 0.968900 -0.137500 -vn -0.137500 0.968900 -0.205800 -vn 0.242700 0.968900 0.048300 -vn -0.048300 0.968900 -0.242700 -vn 0.048300 0.968900 -0.242700 -vn 0.137500 0.968900 -0.205800 -vn 0.205800 0.968900 -0.137500 -vn 0.242700 0.968900 -0.048300 -vn 0.205800 0.968900 0.137500 -vn -0.039000 0.979800 0.196000 -vn 0.039000 0.979800 0.196000 -vn 0.111000 0.979800 0.166100 -vn 0.166100 0.979800 0.111000 -vn 0.196000 0.979800 0.039000 -vn 0.196000 0.979800 -0.039000 -vn 0.166100 0.979800 -0.111000 -vn 0.111000 0.979800 -0.166100 -vn 0.039000 0.979800 -0.196000 -vn -0.039000 0.979800 -0.196000 -vn -0.111000 0.979800 -0.166100 -vn -0.166100 0.979800 -0.111000 -vn -0.196000 0.979800 -0.039000 -vn -0.196000 0.979800 0.039000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 7/7/4 8/6/4 10/8/4 -f 10/8/5 12/9/5 11/10/5 -f 12/9/6 14/11/6 13/12/6 -f 14/11/7 16/13/7 15/14/7 -f 15/14/8 16/13/8 18/15/8 -f 17/16/9 18/15/9 20/17/9 -f 19/18/10 20/17/10 22/19/10 -f 22/19/11 24/20/11 23/21/11 -f 24/20/12 26/22/12 25/23/12 -f 26/22/13 28/24/13 27/25/13 -f 28/24/14 30/26/14 29/27/14 -f 8/6/15 36/28/15 37/29/15 -f 32/30/16 2/1/16 1/31/16 -f 29/27/17 30/26/17 32/30/17 -f 40/32/18 56/33/18 57/34/18 -f 32/30/19 30/26/19 47/35/19 -f 14/11/20 39/36/20 40/37/20 -f 20/17/21 42/38/21 43/39/21 -f 4/2/22 34/40/22 35/41/22 -f 26/22/23 45/42/23 46/43/23 -f 10/8/24 37/29/24 38/44/24 -f 2/1/25 32/30/25 48/45/25 -f 4/2/26 2/1/26 33/46/26 -f 18/15/27 16/13/27 40/37/27 -f 22/19/28 43/39/28 44/47/28 -f 6/4/29 35/41/29 36/28/29 -f 28/24/30 46/43/30 47/35/30 -f 12/48/31 38/49/31 39/50/31 -f 18/15/32 41/51/32 42/38/32 -f 24/20/33 44/47/33 45/42/33 -f 58/52/34 57/53/34 73/54/34 -f 38/49/35 54/55/35 55/56/35 -f 36/57/36 52/58/36 53/59/36 -f 47/60/37 63/61/37 64/62/37 -f 34/63/38 50/64/38 51/65/38 -f 46/66/39 45/67/39 61/68/39 -f 43/69/40 59/70/40 60/71/40 -f 42/72/41 41/73/41 57/74/41 -f 39/50/42 55/56/42 56/33/42 -f 38/49/43 37/75/43 53/59/43 -f 48/76/44 64/77/44 49/78/44 -f 35/79/45 51/65/45 52/80/45 -f 46/66/46 62/81/46 63/61/46 -f 33/82/47 49/78/47 50/64/47 -f 44/83/48 60/84/48 61/68/48 -f 42/72/49 58/85/49 59/70/49 -f 74/86/50 90/87/50 91/88/50 -f 55/89/51 71/90/51 72/91/51 -f 54/92/52 53/93/52 69/94/52 -f 64/95/53 80/96/53 65/97/53 -f 51/98/54 67/99/54 68/100/54 -f 62/101/55 78/102/55 79/103/55 -f 49/104/56 65/97/56 66/105/56 -f 60/106/57 76/107/57 77/108/57 -f 58/52/58 74/86/58 75/109/58 -f 56/110/59 72/91/59 73/54/59 -f 54/92/60 70/111/60 71/90/60 -f 52/112/61 68/100/61 69/94/61 -f 63/113/62 79/103/62 80/96/62 -f 51/98/63 50/114/63 66/105/63 -f 61/115/64 77/108/64 78/102/64 -f 60/106/65 59/116/65 75/109/65 -f 92/117/66 91/88/66 107/118/66 -f 73/54/50 72/91/50 88/119/50 -f 71/90/50 70/111/50 86/120/50 -f 68/100/50 84/121/50 85/122/50 -f 80/96/50 79/103/50 95/123/50 -f 66/105/50 82/124/50 83/125/50 -f 77/108/50 93/126/50 94/127/50 -f 75/109/50 91/88/50 92/117/50 -f 73/54/50 89/128/50 90/87/50 -f 71/90/50 87/129/50 88/119/50 -f 70/111/50 69/94/50 85/122/50 -f 80/96/50 96/130/50 81/131/50 -f 67/99/50 83/125/50 84/121/50 -f 79/103/50 78/102/50 94/127/50 -f 65/97/50 81/131/50 82/124/50 -f 76/107/50 92/117/50 93/126/50 -f 97/132/67 113/133/67 114/134/67 -f 89/128/68 105/135/68 106/136/68 -f 88/119/69 87/129/69 103/137/69 -f 85/122/70 101/138/70 102/139/70 -f 96/130/71 112/140/71 97/141/71 -f 83/125/72 99/142/72 100/143/72 -f 94/127/73 110/144/73 111/145/73 -f 81/131/74 97/141/74 98/146/74 -f 92/117/75 108/147/75 109/148/75 -f 90/87/76 106/136/76 107/118/76 -f 89/128/77 88/119/77 104/149/77 -f 86/120/78 102/139/78 103/137/78 -f 84/121/79 100/143/79 101/138/79 -f 96/130/80 95/123/80 111/145/80 -f 82/124/81 98/146/81 99/142/81 -f 94/127/82 93/126/82 109/148/82 -f 114/134/83 130/150/83 131/151/83 -f 108/147/84 124/152/84 125/153/84 -f 106/154/85 122/155/85 123/156/85 -f 104/149/86 120/157/86 121/158/86 -f 103/159/87 102/160/87 118/161/87 -f 100/143/88 116/162/88 117/163/88 -f 111/164/89 127/165/89 128/166/89 -f 99/167/90 98/168/90 114/134/90 -f 110/169/91 109/170/91 125/171/91 -f 107/172/92 123/156/92 124/173/92 -f 106/154/93 105/174/93 121/175/93 -f 104/176/94 103/159/94 119/177/94 -f 102/160/95 101/178/95 117/179/95 -f 112/140/96 128/180/96 113/181/96 -f 99/167/97 115/182/97 116/183/97 -f 110/169/98 126/184/98 127/165/98 -f 132/185/99 131/186/99 147/187/99 -f 125/171/100 141/188/100 142/189/100 -f 123/156/101 139/190/101 140/191/101 -f 121/175/102 137/192/102 138/193/102 -f 120/194/103 119/177/103 135/195/103 -f 117/179/104 133/196/104 134/197/104 -f 128/198/105 144/199/105 129/200/105 -f 115/182/106 131/151/106 132/201/106 -f 126/184/107 142/189/107 143/202/107 -f 113/133/108 129/200/108 130/150/108 -f 124/203/109 140/204/109 141/188/109 -f 122/155/110 138/193/110 139/190/110 -f 120/205/111 136/206/111 137/192/111 -f 119/177/112 118/161/112 134/197/112 -f 116/183/113 132/201/113 133/207/113 -f 128/166/114 127/165/114 143/202/114 -f 142/208/115 158/209/115 159/210/115 -f 129/211/116 145/212/116 146/213/116 -f 140/214/117 156/215/117 157/216/117 -f 138/217/118 154/218/118 155/219/118 -f 136/220/119 152/221/119 153/222/119 -f 134/223/120 150/224/120 151/225/120 -f 132/185/121 148/226/121 149/227/121 -f 144/228/122 143/229/122 159/210/122 -f 131/186/123 130/230/123 146/213/123 -f 142/208/124 141/231/124 157/216/124 -f 139/232/125 155/219/125 156/215/125 -f 137/233/126 153/222/126 154/218/126 -f 135/234/127 151/225/127 152/221/127 -f 133/235/128 149/227/128 150/224/128 -f 144/228/129 160/236/129 145/212/129 -f 170/237/130 171/238/130 155/219/130 -f 171/238/131 172/239/131 156/215/131 -f 167/240/132 177/241/132 168/242/132 -f 168/242/133 177/241/133 169/243/133 -f 169/243/134 177/241/134 170/237/134 -f 170/237/135 177/241/135 171/238/135 -f 171/238/136 177/241/136 172/239/136 -f 172/239/137 177/241/137 173/244/137 -f 173/244/138 177/241/138 174/245/138 -f 174/245/139 177/241/139 175/246/139 -f 175/246/140 177/241/140 176/247/140 -f 165/248/141 177/241/141 166/249/141 -f 176/247/142 177/241/142 161/250/142 -f 161/250/143 177/241/143 162/251/143 -f 162/251/144 177/241/144 163/252/144 -f 163/252/145 177/241/145 164/253/145 -f 164/253/146 177/241/146 165/248/146 -f 167/240/147 166/249/147 177/241/147 -f 169/243/148 170/237/148 154/218/148 -f 168/242/149 169/243/149 153/222/149 -f 151/225/150 167/240/150 168/242/150 -f 166/249/151 167/240/151 151/225/151 -f 165/248/152 166/249/152 150/224/152 -f 148/226/153 164/253/153 165/248/153 -f 147/187/154 163/252/154 164/253/154 -f 162/251/155 163/252/155 147/187/155 -f 161/250/156 162/251/156 146/213/156 -f 176/247/157 161/250/157 145/212/157 -f 175/246/158 176/247/158 160/236/158 -f 158/209/159 174/245/159 175/246/159 -f 157/216/160 173/244/160 174/245/160 -f 172/239/161 173/244/161 157/216/161 -f 1/31/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 9/254/4 7/7/4 10/8/4 -f 9/254/5 10/8/5 11/10/5 -f 11/10/6 12/9/6 13/12/6 -f 13/12/7 14/11/7 15/14/7 -f 17/16/8 15/14/8 18/15/8 -f 19/18/9 17/16/9 20/17/9 -f 21/255/10 19/18/10 22/19/10 -f 21/255/11 22/19/11 23/21/11 -f 23/21/12 24/20/12 25/23/12 -f 25/23/13 26/22/13 27/25/13 -f 27/25/14 28/24/14 29/27/14 -f 10/8/15 8/6/15 37/29/15 -f 31/256/16 32/30/16 1/31/16 -f 31/256/17 29/27/17 32/30/17 -f 41/257/18 40/32/18 57/34/18 -f 48/45/19 32/30/19 47/35/19 -f 16/13/20 14/11/20 40/37/20 -f 22/19/21 20/17/21 43/39/21 -f 6/4/22 4/2/22 35/41/22 -f 28/24/23 26/22/23 46/43/23 -f 12/9/24 10/8/24 38/44/24 -f 33/46/25 2/1/25 48/45/25 -f 34/40/26 4/2/26 33/46/26 -f 41/51/27 18/15/27 40/37/27 -f 24/20/28 22/19/28 44/47/28 -f 8/6/29 6/4/29 36/28/29 -f 30/26/30 28/24/30 47/35/30 -f 14/258/31 12/48/31 39/50/31 -f 20/17/32 18/15/32 42/38/32 -f 26/22/33 24/20/33 45/42/33 -f 74/86/34 58/52/34 73/54/34 -f 39/50/35 38/49/35 55/56/35 -f 37/75/36 36/57/36 53/59/36 -f 48/259/37 47/60/37 64/62/37 -f 35/79/38 34/63/38 51/65/38 -f 62/81/39 46/66/39 61/68/39 -f 44/260/40 43/69/40 60/71/40 -f 58/85/41 42/72/41 57/74/41 -f 40/32/42 39/50/42 56/33/42 -f 54/55/43 38/49/43 53/59/43 -f 33/82/44 48/76/44 49/78/44 -f 36/261/45 35/79/45 52/80/45 -f 47/60/46 46/66/46 63/61/46 -f 34/63/47 33/82/47 50/64/47 -f 45/67/48 44/83/48 61/68/48 -f 43/69/49 42/72/49 59/70/49 -f 75/109/50 74/86/50 91/88/50 -f 56/110/51 55/89/51 72/91/51 -f 70/111/52 54/92/52 69/94/52 -f 49/104/53 64/95/53 65/97/53 -f 52/112/54 51/98/54 68/100/54 -f 63/113/55 62/101/55 79/103/55 -f 50/114/56 49/104/56 66/105/56 -f 61/115/57 60/106/57 77/108/57 -f 59/116/58 58/52/58 75/109/58 -f 57/53/59 56/110/59 73/54/59 -f 55/89/60 54/92/60 71/90/60 -f 53/93/61 52/112/61 69/94/61 -f 64/95/62 63/113/62 80/96/62 -f 67/99/63 51/98/63 66/105/63 -f 62/101/64 61/115/64 78/102/64 -f 76/107/65 60/106/65 75/109/65 -f 108/147/66 92/117/66 107/118/66 -f 89/128/50 73/54/50 88/119/50 -f 87/129/50 71/90/50 86/120/50 -f 69/94/50 68/100/50 85/122/50 -f 96/130/50 80/96/50 95/123/50 -f 67/99/50 66/105/50 83/125/50 -f 78/102/50 77/108/50 94/127/50 -f 76/107/50 75/109/50 92/117/50 -f 74/86/50 73/54/50 90/87/50 -f 72/91/50 71/90/50 88/119/50 -f 86/120/50 70/111/50 85/122/50 -f 65/97/50 80/96/50 81/131/50 -f 68/100/50 67/99/50 84/121/50 -f 95/123/50 79/103/50 94/127/50 -f 66/105/50 65/97/50 82/124/50 -f 77/108/50 76/107/50 93/126/50 -f 98/168/67 97/132/67 114/134/67 -f 90/87/68 89/128/68 106/136/68 -f 104/149/69 88/119/69 103/137/69 -f 86/120/70 85/122/70 102/139/70 -f 81/131/71 96/130/71 97/141/71 -f 84/121/72 83/125/72 100/143/72 -f 95/123/73 94/127/73 111/145/73 -f 82/124/74 81/131/74 98/146/74 -f 93/126/75 92/117/75 109/148/75 -f 91/88/76 90/87/76 107/118/76 -f 105/135/77 89/128/77 104/149/77 -f 87/129/78 86/120/78 103/137/78 -f 85/122/79 84/121/79 101/138/79 -f 112/140/80 96/130/80 111/145/80 -f 83/125/81 82/124/81 99/142/81 -f 110/144/82 94/127/82 109/148/82 -f 115/182/83 114/134/83 131/151/83 -f 109/148/84 108/147/84 125/153/84 -f 107/172/85 106/154/85 123/156/85 -f 105/135/86 104/149/86 121/158/86 -f 119/177/87 103/159/87 118/161/87 -f 101/138/88 100/143/88 117/163/88 -f 112/262/89 111/164/89 128/166/89 -f 115/182/90 99/167/90 114/134/90 -f 126/184/91 110/169/91 125/171/91 -f 108/263/92 107/172/92 124/173/92 -f 122/155/93 106/154/93 121/175/93 -f 120/194/94 104/176/94 119/177/94 -f 118/161/95 102/160/95 117/179/95 -f 97/141/96 112/140/96 113/181/96 -f 100/264/97 99/167/97 116/183/97 -f 111/164/98 110/169/98 127/165/98 -f 148/226/99 132/185/99 147/187/99 -f 126/184/100 125/171/100 142/189/100 -f 124/173/101 123/156/101 140/191/101 -f 122/155/102 121/175/102 138/193/102 -f 136/265/103 120/194/103 135/195/103 -f 118/161/104 117/179/104 134/197/104 -f 113/133/105 128/198/105 129/200/105 -f 116/183/106 115/182/106 132/201/106 -f 127/165/107 126/184/107 143/202/107 -f 114/134/108 113/133/108 130/150/108 -f 125/171/109 124/203/109 141/188/109 -f 123/156/110 122/155/110 139/190/110 -f 121/175/111 120/205/111 137/192/111 -f 135/195/112 119/177/112 134/197/112 -f 117/266/113 116/183/113 133/207/113 -f 144/267/114 128/166/114 143/202/114 -f 143/229/115 142/208/115 159/210/115 -f 130/230/116 129/211/116 146/213/116 -f 141/231/117 140/214/117 157/216/117 -f 139/232/118 138/217/118 155/219/118 -f 137/233/119 136/220/119 153/222/119 -f 135/234/120 134/223/120 151/225/120 -f 133/235/121 132/185/121 149/227/121 -f 160/236/122 144/228/122 159/210/122 -f 147/187/123 131/186/123 146/213/123 -f 158/209/124 142/208/124 157/216/124 -f 140/214/125 139/232/125 156/215/125 -f 138/217/126 137/233/126 154/218/126 -f 136/220/127 135/234/127 152/221/127 -f 134/223/128 133/235/128 150/224/128 -f 129/211/129 144/228/129 145/212/129 -f 154/218/130 170/237/130 155/219/130 -f 155/219/131 171/238/131 156/215/131 -f 153/222/148 169/243/148 154/218/148 -f 152/221/149 168/242/149 153/222/149 -f 152/221/150 151/225/150 168/242/150 -f 150/224/151 166/249/151 151/225/151 -f 149/227/152 165/248/152 150/224/152 -f 149/227/153 148/226/153 165/248/153 -f 148/226/154 147/187/154 164/253/154 -f 146/213/155 162/251/155 147/187/155 -f 145/212/156 161/250/156 146/213/156 -f 160/236/157 176/247/157 145/212/157 -f 159/210/158 175/246/158 160/236/158 -f 159/210/159 158/209/159 175/246/159 -f 158/209/160 157/216/160 174/245/160 -f 156/215/161 172/239/161 157/216/161 diff --git a/src/main/resources/assets/hbm/models/NukeCloudSmall.obj b/src/main/resources/assets/hbm/models/NukeCloudSmall.obj deleted file mode 100644 index 68653848a..000000000 --- a/src/main/resources/assets/hbm/models/NukeCloudSmall.obj +++ /dev/null @@ -1,1061 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'NukeCloudSmall.blend' -# www.blender.org -o Cylinder -v 0.000000 1.500000 -3.125000 -v 1.195886 1.500000 -2.887124 -v 2.296101 0.000000 -5.543277 -v 2.209708 1.500000 -2.209709 -v 4.242640 0.000000 -4.242640 -v 2.887123 1.500000 -1.195886 -v 5.543277 0.000000 -2.296101 -v 3.125000 1.500000 0.000000 -v 6.000000 0.000000 0.000000 -v 2.887123 1.500000 1.195886 -v 5.543277 -0.000000 2.296101 -v 2.209708 1.500000 2.209709 -v 4.242640 -0.000000 4.242640 -v 1.195886 1.500000 2.887124 -v 2.296101 -0.000000 5.543277 -v 0.000000 1.500000 3.125000 -v 0.000001 -0.000000 6.000000 -v -1.195885 1.500000 2.887124 -v -2.209708 1.500000 2.209710 -v -4.242640 -0.000000 4.242642 -v -2.887124 1.500000 1.195886 -v -5.543277 -0.000000 2.296102 -v -3.125000 1.500000 0.000000 -v -2.887124 1.500000 -1.195886 -v -5.543277 0.000000 -2.296102 -v -2.209708 1.500000 -2.209710 -v 1.385819 3.000000 -0.574025 -v 1.500000 3.000000 0.000000 -v -1.195884 1.500000 -2.887124 -v 0.000000 0.000000 -6.000000 -v -4.242640 0.000000 -4.242642 -v 0.574025 3.000000 1.385819 -v 0.430519 11.000000 1.039366 -v 0.000000 11.000000 1.125000 -v -1.060660 3.000000 -1.060660 -v -0.574024 3.000000 -1.385820 -v 1.060660 3.000000 1.060660 -v -0.574025 3.000000 1.385819 -v 0.574025 3.000000 -1.385819 -v -1.500000 3.000000 0.000000 -v -1.385819 3.000000 -0.574025 -v 1.385819 3.000000 0.574025 -v 0.000000 3.000000 -1.500000 -v 0.000000 3.000000 1.500000 -v -1.060660 3.000000 1.060660 -v -1.385819 3.000000 0.574025 -v 1.060660 3.000000 -1.060660 -v 0.000000 13.000000 1.968752 -v -0.753407 13.000000 1.818890 -v 1.039365 11.000000 0.430520 -v 0.795495 11.000000 0.795496 -v 1.039365 11.000000 -0.430519 -v 1.125000 11.000000 0.000000 -v -0.795495 11.000000 -0.795494 -v -0.430518 11.000000 -1.039365 -v 0.430519 11.000000 -1.039365 -v -1.125000 11.000000 0.000000 -v -1.039365 11.000000 -0.430519 -v -0.795495 11.000000 0.795496 -v -1.039365 11.000000 0.430520 -v -0.430518 11.000000 1.039366 -v 0.000000 11.000000 -1.125000 -v 0.795495 11.000000 -0.795494 -v -1.392116 13.000000 1.392118 -v -1.793829 12.500000 4.330688 -v 1.392116 13.000000 1.392118 -v 1.968750 13.000000 0.000002 -v 1.818887 13.000000 0.753410 -v -0.753407 13.000000 -1.818887 -v 1.392116 13.000000 -1.392115 -v -1.818887 13.000000 -0.753407 -v 0.000000 13.000000 -1.968748 -v 0.753407 13.000000 -1.818886 -v -1.818887 13.000000 0.753410 -v 0.753407 13.000000 1.818889 -v 1.818887 13.000000 -0.753406 -v -1.392116 13.000000 -1.392116 -v -1.968750 13.000000 0.000002 -v -4.330685 12.500000 1.793830 -v -3.314562 12.500000 3.314564 -v -3.662591 13.500000 3.662595 -v 1.793829 12.500000 4.330687 -v 0.000000 12.500000 4.687500 -v 4.330685 12.500000 1.793830 -v 3.314562 12.500000 3.314564 -v 4.330685 12.500000 -1.793827 -v 4.687500 12.500000 0.000002 -v -3.314562 12.500000 -3.314563 -v -1.793828 12.500000 -4.330686 -v 1.793828 12.500000 -4.330685 -v -4.687500 12.500000 0.000002 -v -4.330685 12.500000 -1.793828 -v 3.314562 12.500000 -3.314562 -v 0.000000 12.500000 -4.687500 -v 1.982180 13.500000 -4.785407 -v 0.000000 13.500000 -5.179687 -v 0.000000 14.500000 -4.222969 -v 0.000000 13.500000 5.179688 -v -1.982180 13.500000 4.785408 -v 3.662591 13.500000 3.662592 -v 1.982181 13.500000 4.785408 -v 5.179687 13.500000 0.000002 -v 4.785407 13.500000 1.982183 -v -1.982179 13.500000 -4.785408 -v 3.662591 13.500000 -3.662591 -v 4.785407 13.500000 -1.982179 -v -4.785408 13.500000 -1.982180 -v -4.785408 13.500000 1.982183 -v -5.179689 13.500000 0.000002 -v -3.662591 13.500000 -3.662592 -v 2.986090 14.500000 -2.986088 -v 1.616060 14.500000 -3.901513 -v 2.160069 15.000000 -5.214867 -v -3.901515 14.500000 1.616063 -v -4.222969 14.500000 0.000002 -v -1.616060 14.500000 3.901517 -v -2.986090 14.500000 2.986092 -v 1.616060 14.500000 3.901517 -v 0.000000 14.500000 4.222970 -v 3.901514 14.500000 1.616062 -v 2.986090 14.500000 2.986092 -v 3.901514 14.500000 -1.616058 -v 4.222969 14.500000 0.000002 -v -2.986090 14.500000 -2.986088 -v -1.616059 14.500000 -3.901513 -v -3.901515 14.500000 -1.616060 -v 5.214867 15.000000 -2.160067 -v 3.991285 15.000000 -3.991285 -v 5.220437 16.750000 -5.220435 -v -5.644531 15.000000 0.000002 -v -5.214868 15.000000 -2.160068 -v -3.991286 15.000000 3.991289 -v -5.214868 15.000000 2.160072 -v 0.000000 15.000000 5.644533 -v -2.160068 15.000000 5.214869 -v 3.991285 15.000000 3.991288 -v 2.160069 15.000000 5.214869 -v 5.644531 15.000000 0.000002 -v 5.214867 15.000000 2.160070 -v -2.160066 15.000000 -5.214868 -v 0.000000 15.000000 -5.644530 -v -3.991286 15.000000 -3.991286 -v -6.820830 16.750000 -2.825279 -v -5.220437 16.750000 -5.220436 -v 0.000000 16.750000 -7.382811 -v -6.820830 16.750000 2.825283 -v -2.825279 16.750000 6.820832 -v -5.220437 16.750000 5.220439 -v 2.825280 16.750000 6.820832 -v 6.820829 16.750000 2.825283 -v 5.220437 16.750000 5.220439 -v 6.820829 16.750000 -2.825278 -v 7.382812 16.750000 0.000002 -v -2.825278 16.750000 -6.820829 -v 2.825280 16.750000 -6.820828 -v -7.382812 16.750000 0.000002 -v 0.000001 16.750000 7.382814 -v -1.435062 18.500000 3.464551 -v -2.651650 18.500000 2.651653 -v -3.464549 18.500000 1.435066 -v 2.651650 18.500000 2.651652 -v 0.000000 19.000500 0.000002 -v 1.435062 18.500000 3.464549 -v 0.000000 18.500000 3.750002 -v -3.750000 18.500000 0.000002 -v -3.464549 18.500000 -1.435062 -v -2.651650 18.500000 -2.651649 -v -1.435061 18.500000 -3.464547 -v 3.749999 18.500000 0.000002 -v 3.464547 18.500000 1.435066 -v 0.000000 18.500000 -3.749998 -v 1.435062 18.500000 -3.464546 -v 2.651650 18.500000 -2.651648 -v 3.464547 18.500000 -1.435061 -v -2.296099 -0.000000 5.543278 -v -6.000000 0.000000 0.000000 -v -2.296098 0.000000 -5.543279 -vt 0.068894 0.830663 -vt 0.068894 0.856838 -vt 0.000332 0.868878 -vt 0.068894 0.518164 -vt 0.068894 0.544338 -vt 0.000332 0.556379 -vt 0.068893 0.268164 -vt 0.068893 0.294338 -vt 0.000332 0.306378 -vt 0.068894 0.580663 -vt 0.068894 0.606838 -vt 0.000332 0.618878 -vt 0.068895 0.768163 -vt 0.068895 0.794338 -vt 0.000332 0.806378 -vt 0.068893 0.205664 -vt 0.068893 0.231838 -vt 0.000332 0.243878 -vt 0.068893 0.080663 -vt 0.068893 0.106838 -vt 0.000332 0.118878 -vt 0.068894 0.893162 -vt 0.068894 0.919337 -vt 0.000332 0.931377 -vt 0.000332 0.381124 -vt 0.068894 0.393164 -vt 0.068894 0.419339 -vt 0.068893 0.018163 -vt 0.068893 0.044338 -vt 0.000332 0.056378 -vt 0.000332 0.131123 -vt 0.068893 0.143163 -vt 0.068893 0.169338 -vt 0.000332 0.693623 -vt 0.068894 0.705663 -vt 0.068894 0.731838 -vt 0.068894 0.643163 -vt 0.068894 0.669338 -vt 0.000332 0.681378 -vt 0.000332 0.318624 -vt 0.068894 0.330664 -vt 0.068894 0.356838 -vt 0.115877 0.587469 -vt 0.115877 0.600033 -vt 0.068894 0.955663 -vt 0.068894 0.981837 -vt 0.000332 0.993878 -vt 0.000332 0.443623 -vt 0.068894 0.455663 -vt 0.068895 0.481838 -vt 0.115877 0.899968 -vt 0.287793 0.901539 -vt 0.287792 0.910961 -vt 0.115877 0.462469 -vt 0.115877 0.475033 -vt 0.115876 0.087469 -vt 0.115876 0.024969 -vt 0.115877 0.524969 -vt 0.115877 0.649969 -vt 0.115877 0.662532 -vt 0.115878 0.774969 -vt 0.115878 0.787532 -vt 0.115877 0.962468 -vt 0.115877 0.975032 -vt 0.115877 0.837469 -vt 0.115877 0.850033 -vt 0.115877 0.912532 -vt 0.115875 0.149969 -vt 0.115875 0.162532 -vt 0.115875 0.274969 -vt 0.115875 0.287533 -vt 0.115876 0.337469 -vt 0.115876 0.350033 -vt 0.115875 0.212469 -vt 0.115877 0.399970 -vt 0.115877 0.412534 -vt 0.115877 0.712469 -vt 0.287792 0.401540 -vt 0.334254 0.398006 -vt 0.334255 0.414496 -vt 0.287788 0.214039 -vt 0.287788 0.223462 -vt 0.287792 0.589039 -vt 0.287792 0.598462 -vt 0.287793 0.464040 -vt 0.287793 0.473462 -vt 0.115877 0.537533 -vt 0.287792 0.526540 -vt 0.287792 0.651539 -vt 0.287792 0.660962 -vt 0.287788 0.151539 -vt 0.287788 0.160962 -vt 0.287792 0.410963 -vt 0.115876 0.100032 -vt 0.287788 0.089039 -vt 0.287793 0.776539 -vt 0.287793 0.785962 -vt 0.287792 0.964039 -vt 0.287792 0.973461 -vt 0.287788 0.276539 -vt 0.287788 0.339040 -vt 0.287788 0.348462 -vt 0.287792 0.839039 -vt 0.287792 0.848462 -vt 0.287793 0.714039 -vt 0.287793 0.723462 -vt 0.287789 0.026539 -vt 0.287789 0.035962 -vt 0.334252 0.039495 -vt 0.334252 0.023006 -vt 0.392490 0.011620 -vt 0.287788 0.098462 -vt 0.334251 0.085506 -vt 0.334256 0.773005 -vt 0.334256 0.789495 -vt 0.334255 0.960505 -vt 0.287788 0.285962 -vt 0.334251 0.273006 -vt 0.334251 0.335506 -vt 0.334255 0.835506 -vt 0.334255 0.851995 -vt 0.334256 0.710506 -vt 0.334255 0.898005 -vt 0.334255 0.914495 -vt 0.334251 0.210506 -vt 0.334255 0.585506 -vt 0.334256 0.460506 -vt 0.334256 0.476996 -vt 0.287792 0.535962 -vt 0.334255 0.523006 -vt 0.334255 0.648006 -vt 0.334255 0.664495 -vt 0.334251 0.148005 -vt 0.334251 0.164495 -vt 0.392489 0.175881 -vt 0.392490 0.136620 -vt 0.416326 0.134558 -vt 0.392493 0.886619 -vt 0.392493 0.925881 -vt 0.392489 0.199120 -vt 0.392490 0.238381 -vt 0.392493 0.574120 -vt 0.392493 0.613382 -vt 0.392494 0.449120 -vt 0.392494 0.488382 -vt 0.334255 0.539496 -vt 0.392493 0.511620 -vt 0.392493 0.636620 -vt 0.392493 0.675881 -vt 0.392493 0.386621 -vt 0.392493 0.425882 -vt 0.392490 0.074120 -vt 0.392490 0.113381 -vt 0.392494 0.761620 -vt 0.392494 0.800881 -vt 0.334255 0.976995 -vt 0.392493 0.949119 -vt 0.392489 0.261620 -vt 0.392489 0.300882 -vt 0.392490 0.324120 -vt 0.392490 0.363382 -vt 0.392493 0.824120 -vt 0.392493 0.863381 -vt 0.334256 0.726995 -vt 0.392494 0.699120 -vt 0.416330 0.865442 -vt 0.416330 0.822059 -vt 0.445767 0.826065 -vt 0.416329 0.384559 -vt 0.416329 0.427943 -vt 0.416326 0.072058 -vt 0.416326 0.115442 -vt 0.416330 0.759559 -vt 0.416330 0.802942 -vt 0.416329 0.947058 -vt 0.416329 0.990442 -vt 0.416326 0.259559 -vt 0.416326 0.302943 -vt 0.416326 0.322059 -vt 0.416330 0.697059 -vt 0.416330 0.740443 -vt 0.416326 0.009558 -vt 0.416326 0.052942 -vt 0.416330 0.884558 -vt 0.416330 0.927942 -vt 0.416326 0.197059 -vt 0.416330 0.572059 -vt 0.416330 0.615443 -vt 0.416330 0.447059 -vt 0.416330 0.490443 -vt 0.416330 0.509559 -vt 0.416330 0.552943 -vt 0.416330 0.634559 -vt 0.445767 0.548936 -vt 0.445767 0.513566 -vt 0.477562 0.507612 -vt 0.445767 0.701065 -vt 0.445767 0.736436 -vt 0.445763 0.013565 -vt 0.445763 0.048936 -vt 0.445767 0.888565 -vt 0.445767 0.923935 -vt 0.445763 0.201065 -vt 0.445763 0.236436 -vt 0.445767 0.576065 -vt 0.445767 0.611436 -vt 0.445767 0.451066 -vt 0.445767 0.486436 -vt 0.445767 0.638565 -vt 0.445767 0.673936 -vt 0.445763 0.138565 -vt 0.445763 0.173936 -vt 0.445766 0.388566 -vt 0.445766 0.423937 -vt 0.445763 0.076065 -vt 0.445767 0.763565 -vt 0.445767 0.798936 -vt 0.445766 0.951065 -vt 0.445766 0.986435 -vt 0.445763 0.263566 -vt 0.445764 0.326066 -vt 0.445764 0.361436 -vt 0.477559 0.304890 -vt 0.477559 0.257612 -vt 0.530006 0.250332 -vt 0.477563 0.632612 -vt 0.477562 0.679889 -vt 0.477559 0.132612 -vt 0.477559 0.179889 -vt 0.477562 0.382613 -vt 0.477562 0.429890 -vt 0.477559 0.070112 -vt 0.477559 0.117389 -vt 0.477563 0.757612 -vt 0.477563 0.804889 -vt 0.477562 0.945111 -vt 0.477560 0.320112 -vt 0.445767 0.861436 -vt 0.477563 0.820112 -vt 0.477563 0.695112 -vt 0.477559 0.007611 -vt 0.477560 0.054889 -vt 0.477563 0.882612 -vt 0.477563 0.929889 -vt 0.477559 0.195112 -vt 0.477559 0.242389 -vt 0.477562 0.570112 -vt 0.477563 0.445112 -vt 0.477563 0.492390 -vt 0.530006 0.312833 -vt 0.530006 0.374670 -vt 0.477563 0.867389 -vt 0.530009 0.812832 -vt 0.477563 0.742389 -vt 0.530009 0.687832 -vt 0.530006 0.000332 -vt 0.530006 0.062169 -vt 0.530009 0.875332 -vt 0.530006 0.187832 -vt 0.530006 0.249669 -vt 0.530009 0.562833 -vt 0.530009 0.624669 -vt 0.530009 0.437833 -vt 0.530009 0.499669 -vt 0.530009 0.500333 -vt 0.530009 0.562169 -vt 0.530009 0.625332 -vt 0.530009 0.687169 -vt 0.530006 0.125332 -vt 0.530006 0.187169 -vt 0.530008 0.375333 -vt 0.530006 0.062832 -vt 0.530006 0.124669 -vt 0.530009 0.750332 -vt 0.530009 0.812169 -vt 0.530008 0.937832 -vt 0.530008 0.999668 -vt 0.615219 0.015545 -vt 0.615219 0.046955 -vt 0.615219 0.140546 -vt 0.615219 0.171955 -vt 0.615219 0.078046 -vt 0.694899 0.093750 -vt 0.615219 0.109455 -vt 0.615221 0.890546 -vt 0.694901 0.906250 -vt 0.615221 0.921955 -vt 0.615221 0.390546 -vt 0.694901 0.406251 -vt 0.615221 0.421956 -vt 0.694899 0.031250 -vt 0.694899 0.156251 -vt 0.615222 0.703046 -vt 0.694901 0.718751 -vt 0.615222 0.734455 -vt 0.615221 0.640546 -vt 0.694901 0.656251 -vt 0.615221 0.671955 -vt 0.615219 0.328047 -vt 0.694899 0.343751 -vt 0.615219 0.359456 -vt 0.615222 0.453047 -vt 0.694901 0.468751 -vt 0.615222 0.484456 -vt 0.615222 0.765546 -vt 0.694901 0.781250 -vt 0.615222 0.796955 -vt 0.615221 0.953046 -vt 0.694901 0.968750 -vt 0.615221 0.984455 -vt 0.615221 0.828046 -vt 0.694901 0.843750 -vt 0.615221 0.859455 -vt 0.615221 0.515547 -vt 0.694901 0.531251 -vt 0.615221 0.546956 -vt 0.615219 0.265546 -vt 0.694899 0.281251 -vt 0.615219 0.296955 -vt 0.615221 0.578046 -vt 0.694901 0.593751 -vt 0.615221 0.609456 -vt 0.615219 0.234455 -vt 0.615219 0.203046 -vt 0.694899 0.218751 -vt 0.530008 0.437170 -vt 0.530009 0.937169 -vt 0.530006 0.312169 -vt 0.000332 0.818623 -vt 0.000332 0.506123 -vt 0.000332 0.256124 -vt 0.000332 0.568623 -vt 0.000332 0.756123 -vt 0.000332 0.193623 -vt 0.000332 0.068623 -vt 0.000332 0.881122 -vt 0.000332 0.431379 -vt 0.000332 0.006123 -vt 0.000332 0.181378 -vt 0.000332 0.743878 -vt 0.000332 0.631123 -vt 0.000332 0.368878 -vt 0.000332 0.943622 -vt 0.000332 0.493879 -vt 0.115876 0.037532 -vt 0.115875 0.225032 -vt 0.115877 0.725032 -vt 0.392490 0.050881 -vt 0.334251 0.101995 -vt 0.334251 0.289496 -vt 0.334251 0.351996 -vt 0.334251 0.226996 -vt 0.334255 0.601996 -vt 0.416326 0.177942 -vt 0.392493 0.550882 -vt 0.392493 0.988381 -vt 0.392494 0.738381 -vt 0.416326 0.365443 -vt 0.416326 0.240443 -vt 0.416330 0.677943 -vt 0.477562 0.554890 -vt 0.445763 0.111436 -vt 0.445763 0.298936 -vt 0.477562 0.992389 -vt 0.477559 0.367390 -vt 0.477562 0.617390 -vt 0.530009 0.874669 -vt 0.530009 0.749669 -vn 0.091600 0.882900 -0.460600 -vn 0.260900 0.882900 -0.390500 -vn 0.390500 0.882900 -0.260900 -vn 0.460600 0.882900 -0.091600 -vn 0.460600 0.882900 0.091600 -vn 0.390500 0.882900 0.260900 -vn 0.260900 0.882900 0.390500 -vn 0.091600 0.882900 0.460600 -vn -0.091600 0.882900 0.460600 -vn -0.260900 0.882900 0.390500 -vn -0.390500 0.882900 0.260900 -vn -0.460600 0.882900 0.091600 -vn -0.460600 0.882900 -0.091600 -vn -0.390500 0.882900 -0.260900 -vn 0.672200 0.728200 -0.133700 -vn -0.091600 0.882900 -0.460600 -vn -0.260900 0.882900 -0.390500 -vn 0.194900 0.045900 0.979800 -vn -0.380800 0.728200 -0.569900 -vn 0.380800 0.728200 0.569900 -vn -0.380800 0.728200 0.569900 -vn 0.380800 0.728200 -0.569900 -vn -0.672200 0.728200 -0.133700 -vn 0.672200 0.728200 0.133700 -vn -0.133700 0.728200 -0.672200 -vn 0.133700 0.728200 -0.672200 -vn 0.133700 0.728200 0.672200 -vn -0.569900 0.728200 0.380800 -vn 0.569900 0.728200 -0.380800 -vn -0.569900 0.728200 -0.380800 -vn 0.569900 0.728200 0.380800 -vn -0.133700 0.728200 0.672200 -vn -0.672200 0.728200 0.133700 -vn -0.180300 -0.382300 0.906300 -vn 0.830600 0.045900 0.555000 -vn 0.979800 0.045900 -0.194900 -vn -0.555000 0.045900 -0.830600 -vn 0.555000 0.045900 -0.830600 -vn -0.979800 0.045900 -0.194900 -vn -0.830600 0.045900 0.555000 -vn -0.194900 0.045900 0.979800 -vn 0.555000 0.045900 0.830600 -vn 0.979800 0.045900 0.194900 -vn -0.194900 0.045900 -0.979800 -vn 0.830600 0.045900 -0.555000 -vn -0.830600 0.045900 -0.555000 -vn 0.194900 0.045900 -0.979800 -vn -0.979800 0.045900 0.194900 -vn -0.555000 0.045900 0.830600 -vn 0.102400 -0.982900 -0.153200 -vn 0.513400 -0.382300 0.768300 -vn 0.906300 -0.382300 0.180300 -vn -0.180300 -0.382300 -0.906300 -vn 0.768300 -0.382300 -0.513400 -vn -0.768300 -0.382300 -0.513400 -vn 0.180300 -0.382300 -0.906300 -vn -0.906300 -0.382300 0.180300 -vn -0.513400 -0.382300 0.768300 -vn 0.180300 -0.382300 0.906300 -vn 0.768300 -0.382300 0.513400 -vn 0.906300 -0.382300 -0.180300 -vn -0.513400 -0.382300 -0.768300 -vn 0.513400 -0.382300 -0.768300 -vn -0.906300 -0.382300 -0.180300 -vn -0.768300 -0.382300 0.513400 -vn -0.748800 -0.434700 0.500300 -vn -0.036000 -0.982900 -0.180800 -vn -0.153200 -0.982900 -0.102400 -vn -0.180800 -0.982900 0.036000 -vn 0.102400 -0.982900 0.153200 -vn -0.102400 -0.982900 0.153200 -vn 0.180800 -0.982900 0.036000 -vn 0.153200 -0.982900 -0.102400 -vn 0.036000 -0.982900 -0.180800 -vn -0.102400 -0.982900 -0.153200 -vn -0.180800 -0.982900 -0.036000 -vn 0.036000 -0.982900 0.180800 -vn -0.153200 -0.982900 0.102400 -vn 0.153200 -0.982900 0.102400 -vn -0.036000 -0.982900 0.180800 -vn 0.180800 -0.982900 -0.036000 -vn 0.142300 0.684300 -0.715200 -vn -0.175700 -0.434700 0.883300 -vn 0.500300 -0.434700 0.748800 -vn 0.883300 -0.434700 0.175700 -vn -0.175700 -0.434700 -0.883300 -vn 0.748800 -0.434700 -0.500300 -vn -0.748800 -0.434700 -0.500300 -vn 0.175700 -0.434700 -0.883300 -vn -0.883300 -0.434700 0.175700 -vn -0.500300 -0.434700 0.748800 -vn 0.175700 -0.434700 0.883300 -vn 0.748800 -0.434700 0.500300 -vn 0.883300 -0.434700 -0.175700 -vn -0.500300 -0.434700 -0.748800 -vn 0.500300 -0.434700 -0.748800 -vn -0.883300 -0.434700 -0.175700 -vn 0.187500 -0.941300 -0.280700 -vn -0.715200 0.684300 0.142300 -vn -0.405100 0.684300 0.606300 -vn 0.142300 0.684300 0.715200 -vn 0.606300 0.684300 0.405100 -vn 0.715200 0.684300 -0.142300 -vn -0.405100 0.684300 -0.606300 -vn 0.405100 0.684300 -0.606300 -vn -0.715200 0.684300 -0.142300 -vn -0.606300 0.684300 0.405100 -vn -0.142300 0.684300 0.715200 -vn 0.405100 0.684300 0.606300 -vn 0.715200 0.684300 0.142300 -vn -0.142300 0.684300 -0.715200 -vn 0.606300 0.684300 -0.405100 -vn -0.606300 0.684300 -0.405100 -vn 0.595600 -0.697800 -0.397900 -vn -0.331100 -0.941300 -0.065900 -vn -0.280700 -0.941300 0.187500 -vn -0.065900 -0.941300 0.331100 -vn 0.187500 -0.941300 0.280700 -vn 0.331100 -0.941300 0.065900 -vn -0.065900 -0.941300 -0.331100 -vn 0.280700 -0.941300 -0.187500 -vn -0.280700 -0.941300 -0.187500 -vn 0.065900 -0.941300 -0.331100 -vn -0.331100 -0.941300 0.065900 -vn -0.187500 -0.941300 0.280700 -vn 0.065900 -0.941300 0.331100 -vn 0.280700 -0.941300 0.187500 -vn 0.331100 -0.941300 -0.065900 -vn -0.187500 -0.941300 -0.280700 -vn -0.595600 -0.697800 -0.397900 -vn 0.139700 -0.697800 -0.702500 -vn -0.702500 -0.697800 0.139700 -vn -0.397900 -0.697800 0.595600 -vn 0.139700 -0.697800 0.702500 -vn 0.595600 -0.697800 0.397900 -vn 0.702500 -0.697800 -0.139700 -vn -0.397900 -0.697800 -0.595600 -vn 0.397900 -0.697800 -0.595600 -vn -0.702500 -0.697800 -0.139700 -vn -0.595600 -0.697800 0.397900 -vn -0.139700 -0.697800 0.702500 -vn 0.397900 -0.697800 0.595600 -vn 0.702500 -0.697800 0.139700 -vn -0.139700 -0.697800 -0.702500 -vn -0.244900 0.897600 0.366600 -vn -0.366600 0.897600 0.244900 -vn 0.074900 0.990900 0.112100 -vn 0.026300 0.990900 0.132200 -vn -0.026300 0.990900 0.132200 -vn -0.074900 0.990900 0.112100 -vn -0.112100 0.990900 0.074900 -vn -0.132200 0.990900 0.026300 -vn -0.132200 0.990900 -0.026300 -vn -0.112100 0.990900 -0.074900 -vn -0.074900 0.990900 -0.112100 -vn 0.132200 0.990900 0.026300 -vn -0.026300 0.990900 -0.132200 -vn 0.026300 0.990900 -0.132200 -vn 0.074900 0.990900 -0.112100 -vn 0.112100 0.990900 -0.074900 -vn 0.132200 0.990900 -0.026300 -vn 0.112100 0.990900 0.074900 -vn -0.086000 0.897600 0.432400 -vn 0.086000 0.897600 0.432400 -vn 0.244900 0.897600 0.366600 -vn 0.366600 0.897600 0.244900 -vn 0.432400 0.897600 0.086000 -vn 0.432400 0.897600 -0.086000 -vn 0.366600 0.897600 -0.244900 -vn 0.244900 0.897600 -0.366600 -vn 0.086000 0.897600 -0.432400 -vn -0.086000 0.897600 -0.432400 -vn -0.244900 0.897600 -0.366600 -vn -0.366600 0.897600 -0.244900 -vn -0.432400 0.897600 -0.086000 -vn -0.432400 0.897600 0.086000 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/4/2 4/5/2 5/6/2 -f 4/7/3 6/8/3 7/9/3 -f 6/10/4 8/11/4 9/12/4 -f 8/13/5 10/14/5 11/15/5 -f 10/16/6 12/17/6 13/18/6 -f 12/19/7 14/20/7 15/21/7 -f 14/22/8 16/23/8 17/24/8 -f 17/25/9 16/26/9 18/27/9 -f 18/28/10 19/29/10 20/30/10 -f 20/31/11 19/32/11 21/33/11 -f 22/34/12 21/35/12 23/36/12 -f 23/37/13 24/38/13 25/39/13 -f 25/40/14 24/41/14 26/42/14 -f 6/10/15 27/43/15 28/44/15 -f 29/45/16 1/46/16 30/47/16 -f 31/48/17 26/49/17 29/50/17 -f 32/51/18 33/52/18 34/53/18 -f 26/49/19 35/54/19 36/55/19 -f 14/20/20 12/19/20 37/56/20 -f 19/29/21 18/28/21 38/57/21 -f 4/5/22 2/4/22 39/58/22 -f 23/37/23 40/59/23 41/60/23 -f 8/13/24 28/61/24 42/62/24 -f 29/45/25 36/63/25 43/64/25 -f 1/1/26 43/65/26 39/66/26 -f 14/22/27 32/51/27 44/67/27 -f 19/32/28 45/68/28 46/69/28 -f 4/7/29 47/70/29 27/71/29 -f 24/41/30 41/72/30 35/73/30 -f 12/17/31 10/16/31 42/74/31 -f 16/26/32 44/75/32 38/76/32 -f 23/36/33 21/35/33 46/77/33 -f 34/78/34 48/79/34 49/80/34 -f 42/74/35 50/81/35 51/82/35 -f 27/43/36 52/83/36 53/84/36 -f 35/54/37 54/85/37 55/86/37 -f 47/87/38 39/58/38 56/88/38 -f 40/59/39 57/89/39 58/90/39 -f 45/68/40 59/91/40 60/92/40 -f 44/75/41 34/78/41 61/93/41 -f 32/94/42 37/56/42 51/95/42 -f 28/61/43 53/96/43 50/97/43 -f 36/63/44 55/98/44 62/99/44 -f 27/71/45 47/70/45 63/100/45 -f 41/72/46 58/101/46 54/102/46 -f 43/65/47 62/103/47 56/104/47 -f 46/77/48 60/105/48 57/106/48 -f 38/57/49 61/107/49 59/108/49 -f 64/109/50 49/110/50 65/111/50 -f 33/112/51 51/95/51 66/113/51 -f 53/96/52 67/114/52 68/115/52 -f 62/99/53 55/98/53 69/116/53 -f 52/117/54 63/100/54 70/118/54 -f 54/102/55 58/101/55 71/119/55 -f 62/103/56 72/120/56 73/121/56 -f 57/106/57 60/105/57 74/122/57 -f 59/108/58 61/107/58 49/110/58 -f 33/52/59 75/123/59 48/124/59 -f 51/82/60 50/81/60 68/125/60 -f 53/84/61 52/83/61 76/126/61 -f 54/85/62 77/127/62 69/128/62 -f 63/129/63 56/88/63 73/130/63 -f 57/89/64 78/131/64 71/132/64 -f 59/91/65 64/133/65 74/134/65 -f 79/135/66 80/136/66 81/137/66 -f 75/123/67 82/138/67 83/139/67 -f 68/125/68 84/140/68 85/141/68 -f 76/126/69 86/142/69 87/143/69 -f 77/127/70 88/144/70 89/145/70 -f 70/146/71 73/130/71 90/147/71 -f 78/131/72 91/148/72 92/149/72 -f 74/134/73 64/133/73 80/136/73 -f 48/79/74 83/150/74 65/151/74 -f 66/113/75 85/152/75 82/153/75 -f 67/114/76 87/154/76 84/155/76 -f 72/156/77 69/116/77 89/157/77 -f 70/118/78 93/158/78 86/159/78 -f 71/119/79 92/160/79 88/161/79 -f 72/120/80 94/162/80 90/163/80 -f 78/164/81 74/122/81 79/165/81 -f 95/166/82 96/167/82 97/168/82 -f 83/150/83 98/169/83 99/170/83 -f 85/152/84 100/171/84 101/172/84 -f 87/154/85 102/173/85 103/174/85 -f 89/157/86 104/175/86 96/176/86 -f 93/158/87 105/177/87 106/178/87 -f 88/161/88 92/160/88 107/179/88 -f 94/162/89 96/167/89 95/166/89 -f 79/165/90 108/180/90 109/181/90 -f 65/111/91 99/182/91 81/183/91 -f 82/138/92 101/184/92 98/185/92 -f 85/141/93 84/140/93 103/186/93 -f 86/142/94 106/187/94 102/188/94 -f 88/144/95 110/189/95 104/190/95 -f 90/147/96 95/191/96 105/192/96 -f 92/149/97 91/148/97 109/193/97 -f 111/194/98 112/195/98 113/196/98 -f 108/180/99 114/197/99 115/198/99 -f 99/182/100 116/199/100 117/200/100 -f 101/184/101 118/201/101 119/202/101 -f 103/186/102 120/203/102 121/204/102 -f 106/187/103 122/205/103 123/206/103 -f 110/189/104 124/207/104 125/208/104 -f 95/191/105 112/195/105 111/194/105 -f 109/193/106 115/209/106 126/210/106 -f 81/137/107 117/211/107 114/212/107 -f 98/169/108 119/213/108 116/214/108 -f 101/172/109 100/171/109 121/215/109 -f 102/173/110 123/216/110 120/217/110 -f 104/175/111 125/218/111 97/219/111 -f 106/178/112 105/177/112 111/220/112 -f 107/179/113 126/221/113 124/222/113 -f 127/223/114 128/224/114 129/225/114 -f 115/209/115 130/226/115 131/227/115 -f 117/211/116 132/228/116 133/229/116 -f 119/213/117 134/230/117 135/231/117 -f 121/215/118 136/232/118 137/233/118 -f 123/216/119 138/234/119 139/235/119 -f 97/219/120 125/218/120 140/236/120 -f 111/220/121 128/224/121 127/223/121 -f 124/222/122 126/221/122 131/237/122 -f 112/238/123 97/168/123 141/239/123 -f 115/198/124 114/197/124 133/240/124 -f 116/199/125 135/241/125 132/242/125 -f 118/201/126 137/243/126 134/244/126 -f 120/203/127 139/245/127 136/246/127 -f 123/206/128 122/205/128 127/247/128 -f 124/207/129 142/248/129 140/249/129 -f 131/237/130 143/250/130 144/251/130 -f 113/252/131 141/239/131 145/253/131 -f 130/254/132 133/240/132 146/255/132 -f 135/241/133 147/256/133 148/257/133 -f 134/244/134 137/243/134 149/258/134 -f 139/245/135 150/259/135 151/260/135 -f 127/247/136 152/261/136 153/262/136 -f 142/248/137 144/263/137 154/264/137 -f 113/196/138 155/265/138 129/266/138 -f 130/226/139 156/267/139 143/268/139 -f 132/228/140 148/269/140 146/270/140 -f 135/231/141 134/230/141 157/271/141 -f 136/232/142 151/272/142 149/273/142 -f 138/234/143 153/274/143 150/275/143 -f 140/236/144 154/276/144 145/277/144 -f 158/278/145 159/279/145 148/257/145 -f 159/280/146 160/281/146 146/270/146 -f 161/282/147 162/283/147 163/284/147 -f 163/285/148 162/286/148 164/287/148 -f 164/288/149 162/289/149 158/290/149 -f 158/278/150 162/291/150 159/279/150 -f 159/280/151 162/292/151 160/281/151 -f 160/293/152 162/294/152 165/295/152 -f 165/296/153 162/297/153 166/298/153 -f 166/299/154 162/300/154 167/301/154 -f 167/302/155 162/303/155 168/304/155 -f 169/305/156 162/306/156 170/307/156 -f 168/308/157 162/309/157 171/310/157 -f 171/311/158 162/312/158 172/313/158 -f 172/314/159 162/315/159 173/316/159 -f 173/317/160 162/318/160 174/319/160 -f 174/320/161 162/321/161 169/322/161 -f 161/323/162 170/324/162 162/325/162 -f 164/288/163 158/290/163 147/326/163 -f 163/285/164 164/287/164 157/327/164 -f 161/282/165 163/284/165 149/273/165 -f 170/324/166 161/323/166 151/260/166 -f 169/305/167 170/307/167 150/275/167 -f 174/320/168 169/322/168 153/262/168 -f 173/317/169 174/319/169 152/328/169 -f 172/314/170 173/316/170 129/266/170 -f 145/253/171 171/311/171 172/313/171 -f 154/276/172 168/308/172 171/310/172 -f 167/302/173 168/304/173 154/264/173 -f 166/299/174 167/301/174 144/251/174 -f 165/296/175 166/298/175 143/268/175 -f 146/255/176 160/293/176 165/295/176 -f 30/329/1 1/1/1 3/3/1 -f 3/330/2 2/4/2 5/6/2 -f 5/331/3 4/7/3 7/9/3 -f 7/332/4 6/10/4 9/12/4 -f 9/333/5 8/13/5 11/15/5 -f 11/334/6 10/16/6 13/18/6 -f 13/335/7 12/19/7 15/21/7 -f 15/336/8 14/22/8 17/24/8 -f 175/337/9 17/25/9 18/27/9 -f 175/338/10 18/28/10 20/30/10 -f 22/339/11 20/31/11 21/33/11 -f 176/340/12 22/34/12 23/36/12 -f 176/341/13 23/37/13 25/39/13 -f 31/342/14 25/40/14 26/42/14 -f 8/11/15 6/10/15 28/44/15 -f 177/343/16 29/45/16 30/47/16 -f 177/344/17 31/48/17 29/50/17 -f 44/67/18 32/51/18 34/53/18 -f 29/50/19 26/49/19 36/55/19 -f 32/94/20 14/20/20 37/56/20 -f 45/345/21 19/29/21 38/57/21 -f 47/87/22 4/5/22 39/58/22 -f 24/38/23 23/37/23 41/60/23 -f 10/14/24 8/13/24 42/62/24 -f 1/46/25 29/45/25 43/64/25 -f 2/2/26 1/1/26 39/66/26 -f 16/23/27 14/22/27 44/67/27 -f 21/33/28 19/32/28 46/69/28 -f 6/8/29 4/7/29 27/71/29 -f 26/42/30 24/41/30 35/73/30 -f 37/346/31 12/17/31 42/74/31 -f 18/27/32 16/26/32 38/76/32 -f 40/347/33 23/36/33 46/77/33 -f 61/93/34 34/78/34 49/80/34 -f 37/346/35 42/74/35 51/82/35 -f 28/44/36 27/43/36 53/84/36 -f 36/55/37 35/54/37 55/86/37 -f 63/129/38 47/87/38 56/88/38 -f 41/60/39 40/59/39 58/90/39 -f 46/69/40 45/68/40 60/92/40 -f 38/76/41 44/75/41 61/93/41 -f 33/112/42 32/94/42 51/95/42 -f 42/62/43 28/61/43 50/97/43 -f 43/64/44 36/63/44 62/99/44 -f 52/117/45 27/71/45 63/100/45 -f 35/73/46 41/72/46 54/102/46 -f 39/66/47 43/65/47 56/104/47 -f 40/347/48 46/77/48 57/106/48 -f 45/345/49 38/57/49 59/108/49 -f 80/348/50 64/109/50 65/111/50 -f 75/349/51 33/112/51 66/113/51 -f 50/97/52 53/96/52 68/115/52 -f 72/156/53 62/99/53 69/116/53 -f 76/350/54 52/117/54 70/118/54 -f 77/351/55 54/102/55 71/119/55 -f 56/104/56 62/103/56 73/121/56 -f 78/164/57 57/106/57 74/122/57 -f 64/109/58 59/108/58 49/110/58 -f 34/53/59 33/52/59 48/124/59 -f 66/352/60 51/82/60 68/125/60 -f 67/353/61 53/84/61 76/126/61 -f 55/86/62 54/85/62 69/128/62 -f 70/146/63 63/129/63 73/130/63 -f 58/90/64 57/89/64 71/132/64 -f 60/92/65 59/91/65 74/134/65 -f 108/354/66 79/135/66 81/137/66 -f 48/124/67 75/123/67 83/139/67 -f 66/352/68 68/125/68 85/141/68 -f 67/353/69 76/126/69 87/143/69 -f 69/128/70 77/127/70 89/145/70 -f 93/355/71 70/146/71 90/147/71 -f 71/132/72 78/131/72 92/149/72 -f 79/135/73 74/134/73 80/136/73 -f 49/80/74 48/79/74 65/151/74 -f 75/349/75 66/113/75 82/153/75 -f 68/115/76 67/114/76 84/155/76 -f 94/356/77 72/156/77 89/157/77 -f 76/350/78 70/118/78 86/159/78 -f 77/351/79 71/119/79 88/161/79 -f 73/121/80 72/120/80 90/163/80 -f 91/357/81 78/164/81 79/165/81 -f 112/238/82 95/166/82 97/168/82 -f 65/151/83 83/150/83 99/170/83 -f 82/153/84 85/152/84 101/172/84 -f 84/155/85 87/154/85 103/174/85 -f 94/356/86 89/157/86 96/176/86 -f 86/159/87 93/158/87 106/178/87 -f 110/358/88 88/161/88 107/179/88 -f 90/163/89 94/162/89 95/166/89 -f 91/357/90 79/165/90 109/181/90 -f 80/348/91 65/111/91 81/183/91 -f 83/139/92 82/138/92 98/185/92 -f 100/359/93 85/141/93 103/186/93 -f 87/143/94 86/142/94 102/188/94 -f 89/145/95 88/144/95 104/190/95 -f 93/355/96 90/147/96 105/192/96 -f 107/360/97 92/149/97 109/193/97 -f 128/361/98 111/194/98 113/196/98 -f 109/181/99 108/180/99 115/198/99 -f 81/183/100 99/182/100 117/200/100 -f 98/185/101 101/184/101 119/202/101 -f 100/359/102 103/186/102 121/204/102 -f 102/188/103 106/187/103 123/206/103 -f 104/190/104 110/189/104 125/208/104 -f 105/192/105 95/191/105 111/194/105 -f 107/360/106 109/193/106 126/210/106 -f 108/354/107 81/137/107 114/212/107 -f 99/170/108 98/169/108 116/214/108 -f 118/362/109 101/172/109 121/215/109 -f 103/174/110 102/173/110 120/217/110 -f 96/176/111 104/175/111 97/219/111 -f 122/363/112 106/178/112 111/220/112 -f 110/358/113 107/179/113 124/222/113 -f 152/328/114 127/223/114 129/225/114 -f 126/210/115 115/209/115 131/227/115 -f 114/212/116 117/211/116 133/229/116 -f 116/214/117 119/213/117 135/231/117 -f 118/362/118 121/215/118 137/233/118 -f 120/217/119 123/216/119 139/235/119 -f 141/364/120 97/219/120 140/236/120 -f 122/363/121 111/220/121 127/223/121 -f 142/365/122 124/222/122 131/237/122 -f 113/252/123 112/238/123 141/239/123 -f 130/254/124 115/198/124 133/240/124 -f 117/200/125 116/199/125 132/242/125 -f 119/202/126 118/201/126 134/244/126 -f 121/204/127 120/203/127 136/246/127 -f 138/366/128 123/206/128 127/247/128 -f 125/208/129 124/207/129 140/249/129 -f 142/365/130 131/237/130 144/251/130 -f 155/367/131 113/252/131 145/253/131 -f 156/368/132 130/254/132 146/255/132 -f 132/242/133 135/241/133 148/257/133 -f 157/327/134 134/244/134 149/258/134 -f 136/246/135 139/245/135 151/260/135 -f 138/366/136 127/247/136 153/262/136 -f 140/249/137 142/248/137 154/264/137 -f 128/361/138 113/196/138 129/266/138 -f 131/227/139 130/226/139 143/268/139 -f 133/229/140 132/228/140 146/270/140 -f 147/326/141 135/231/141 157/271/141 -f 137/233/142 136/232/142 149/273/142 -f 139/235/143 138/234/143 150/275/143 -f 141/364/144 140/236/144 145/277/144 -f 147/256/145 158/278/145 148/257/145 -f 148/269/146 159/280/146 146/270/146 -f 157/271/163 164/288/163 147/326/163 -f 149/258/164 163/285/164 157/327/164 -f 151/272/165 161/282/165 149/273/165 -f 150/259/166 170/324/166 151/260/166 -f 153/274/167 169/305/167 150/275/167 -f 152/261/168 174/320/168 153/262/168 -f 129/225/169 173/317/169 152/328/169 -f 155/265/170 172/314/170 129/266/170 -f 155/367/171 145/253/171 172/313/171 -f 145/277/172 154/276/172 171/310/172 -f 144/263/173 167/302/173 154/264/173 -f 143/250/174 166/299/174 144/251/174 -f 156/267/175 165/296/175 143/268/175 -f 156/368/176 146/255/176 165/295/176 diff --git a/src/main/resources/assets/hbm/models/missileGeneric.obj b/src/main/resources/assets/hbm/models/missileGeneric.obj deleted file mode 100644 index 82b20117e..000000000 --- a/src/main/resources/assets/hbm/models/missileGeneric.obj +++ /dev/null @@ -1,689 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileGeneric.blend' -# www.blender.org -o Cylinder -v 0.097545 2.500000 -0.490393 -v 0.277785 2.500000 -0.415735 -v 0.277785 0.500000 -0.415735 -v 0.415735 2.500000 -0.277785 -v 0.415735 0.500000 -0.277785 -v 0.490393 2.500000 -0.097545 -v 0.490393 0.500000 -0.097545 -v 0.490393 2.500000 0.097545 -v 0.415735 2.500000 0.277785 -v 0.415735 0.500000 0.277785 -v 0.277785 2.500000 0.415735 -v 0.277785 0.500000 0.415735 -v 0.097545 2.500000 0.490393 -v 0.097545 0.500000 0.490393 -v -0.097545 2.500000 0.490393 -v -0.277785 2.500000 0.415735 -v -0.277785 0.500000 0.415735 -v -0.415735 2.500000 0.277785 -v -0.415735 0.500000 0.277785 -v -0.490393 2.500000 0.097545 -v -0.490393 0.500000 0.097545 -v -0.490393 2.500000 -0.097545 -v -0.415735 2.500000 -0.277785 -v -0.415735 0.500000 -0.277785 -v 0.367794 3.500000 -0.073159 -v 0.367794 3.500000 0.073159 -v -0.277785 0.500000 -0.415735 -v -0.277785 2.500000 -0.415735 -v -0.097545 2.500000 -0.490393 -v -0.097545 0.500000 0.490393 -v -0.082913 -0.000000 0.416834 -v 0.082913 -0.000000 0.416834 -v -0.236117 0.000000 -0.353375 -v -0.082913 0.000000 -0.416834 -v -0.353375 0.000000 -0.236117 -v -0.416834 -0.000000 0.082913 -v -0.353375 -0.000000 0.236117 -v 0.416834 0.000000 -0.082913 -v 0.353375 0.000000 -0.236117 -v 0.236117 -0.000000 0.353375 -v 0.353375 -0.000000 0.236117 -v -0.236117 -0.000000 0.353375 -v 0.236117 0.000000 -0.353375 -v 0.082913 0.000000 -0.416834 -v -0.490393 0.500000 -0.097545 -v -0.416834 0.000000 -0.082913 -v 0.490393 0.500000 0.097545 -v 0.416834 -0.000000 0.082913 -v -0.097545 0.500000 -0.490393 -v 0.097545 0.500000 -0.490393 -v 0.036579 3.750000 -0.717794 -v -0.073159 4.500000 -0.367794 -v 0.073159 4.500000 -0.367794 -v -0.208339 3.500000 -0.311801 -v -0.073159 3.500000 -0.367794 -v 0.073159 3.500000 -0.367794 -v 0.208339 3.500000 0.311801 -v -0.208339 3.500000 0.311801 -v -0.311801 3.500000 0.208339 -v 0.208339 3.500000 -0.311801 -v 0.311801 3.500000 -0.208339 -v -0.367795 3.500000 -0.073159 -v -0.311801 3.500000 -0.208339 -v 0.073159 3.500000 0.367794 -v -0.073159 3.500000 0.367795 -v 0.311801 3.500000 0.208339 -v -0.367795 3.500000 0.073159 -v -0.208339 4.500000 0.311801 -v -0.073159 4.500000 0.367795 -v 0.000000 5.500000 0.000000 -v -0.367795 4.500000 0.073159 -v -0.367795 4.500000 -0.073159 -v -0.036580 3.750000 -0.717794 -v 0.073159 4.500000 0.367794 -v -0.367795 3.750000 -0.036579 -v 0.367794 4.500000 -0.073159 -v 0.367794 4.500000 0.073159 -v -0.311801 4.500000 0.208339 -v -0.311801 4.500000 -0.208339 -v -0.208339 4.500000 -0.311801 -v 0.208338 4.500000 -0.311801 -v 0.311801 4.500000 -0.208339 -v 0.311801 4.500000 0.208339 -v 0.208339 4.500000 0.311801 -v 0.490393 0.500000 -0.048772 -v 0.490393 2.500000 -0.048772 -v -0.490393 2.500000 0.048773 -v 0.490393 2.500000 0.048773 -v -0.367795 4.250000 -0.036579 -v -0.036580 4.000000 -0.717794 -v 0.036579 4.000000 -0.717794 -v 0.036579 3.750000 -0.367794 -v -0.036580 3.750000 -0.367794 -v 0.036579 4.250000 -0.367794 -v -0.367795 3.750000 0.036580 -v -0.367795 4.250000 0.036580 -v -0.036580 4.250000 -0.367794 -v -0.036580 4.000000 0.717795 -v 0.036579 4.000000 0.717795 -v 0.036579 3.750000 0.717795 -v -0.036580 3.750000 0.717795 -v 0.036579 4.250000 0.367795 -v 0.036579 3.750000 0.367795 -v -0.036580 4.250000 0.367795 -v -0.036580 3.750000 0.367795 -v -0.717795 3.750000 -0.036579 -v -0.717795 3.750000 0.036580 -v -0.717795 4.000000 0.036580 -v -0.717795 4.000000 -0.036579 -v 0.367794 4.250000 -0.036579 -v 0.367794 4.250000 0.036580 -v 0.367794 3.750000 -0.036579 -v 0.367794 3.750000 0.036580 -v 0.717794 4.000000 0.036580 -v 0.717794 4.000000 -0.036579 -v 0.717794 3.750000 -0.036579 -v 0.717794 3.750000 0.036580 -v -0.490393 0.500000 0.048773 -v -0.490393 2.500000 -0.048772 -v -0.490393 0.500000 -0.048772 -v 0.490393 0.500000 0.048773 -v 0.990393 0.500000 -0.048772 -v 0.990393 0.500000 0.048773 -v -0.990393 0.500000 0.048773 -v -0.990393 0.500000 -0.048772 -v -0.048772 0.500000 -0.490393 -v -0.048772 2.500000 -0.490393 -v 0.048772 2.500000 0.490393 -v 0.048773 2.500000 -0.490393 -v 0.048772 0.500000 0.490393 -v -0.048773 2.500000 0.490393 -v -0.048773 0.500000 0.490393 -v 0.048773 0.500000 -0.490393 -v -0.048772 0.500000 -0.990393 -v 0.048773 0.500000 -0.990393 -v 0.048772 0.500000 0.990393 -v -0.048773 0.500000 0.990393 -vt 0.675359 0.367717 -vt 0.649979 0.367716 -vt 0.649980 0.107528 -vt 0.624599 0.367716 -vt 0.624599 0.107528 -vt 0.599219 0.367716 -vt 0.599219 0.107528 -vt 0.979922 0.367717 -vt 0.954542 0.367717 -vt 0.954542 0.107528 -vt 0.929161 0.367717 -vt 0.929162 0.107528 -vt 0.903781 0.367717 -vt 0.903782 0.107528 -vt 0.878401 0.367717 -vt 0.853021 0.367717 -vt 0.853021 0.107528 -vt 0.827641 0.367717 -vt 0.827641 0.107528 -vt 0.802261 0.367717 -vt 0.802261 0.107528 -vt 0.776880 0.367717 -vt 0.751500 0.367717 -vt 0.751500 0.107528 -vt 0.596047 0.498786 -vt 0.577011 0.498786 -vt 0.726120 0.107528 -vt 0.726120 0.367717 -vt 0.700740 0.367717 -vt 0.878401 0.107528 -vt 0.880305 0.041781 -vt 0.901878 0.041781 -vt 0.157460 0.217655 -vt 0.165715 0.237586 -vt 0.142205 0.202401 -vt 0.804164 0.041781 -vt 0.825737 0.041781 -vt 0.601122 0.041780 -vt 0.622696 0.041780 -vt 0.728024 0.041781 -vt 0.931065 0.041781 -vt 0.952639 0.041781 -vt 0.854925 0.041781 -vt 0.876498 0.041781 -vt 0.651883 0.041780 -vt 0.673456 0.041780 -vt 0.776881 0.107528 -vt 0.778784 0.041781 -vt 0.800357 0.041781 -vt 0.573839 0.107528 -vt 0.575742 0.041781 -vt 0.597315 0.041781 -vt 0.700740 0.107528 -vt 0.702643 0.041781 -vt 0.724217 0.041781 -vt 0.675360 0.107528 -vt 0.677263 0.041781 -vt 0.698836 0.041781 -vt 0.905685 0.041781 -vt 0.927258 0.041781 -vt 0.829544 0.041781 -vt 0.851118 0.041781 -vt 0.626503 0.041780 -vt 0.648076 0.041781 -vt 0.753404 0.041781 -vt 0.956446 0.041781 -vt 0.978019 0.041781 -vt 0.722948 0.498786 -vt 0.703912 0.498786 -vt 0.697567 0.498786 -vt 0.678532 0.498786 -vt 0.925989 0.498785 -vt 0.849848 0.498785 -vt 0.830813 0.498785 -vt 0.646807 0.498785 -vt 0.627772 0.498785 -vt 0.773708 0.498785 -vt 0.754673 0.498785 -vt 0.976749 0.498785 -vt 0.900609 0.498786 -vt 0.881573 0.498786 -vt 0.824468 0.498785 -vt 0.621427 0.498785 -vt 0.748328 0.498785 -vt 0.729293 0.498785 -vt 0.951369 0.498785 -vt 0.932334 0.498785 -vt 0.875228 0.498785 -vt 0.856193 0.498785 -vt 0.672187 0.498785 -vt 0.799088 0.498786 -vt 0.426882 0.171875 -vt 0.445917 0.171875 -vt 0.436400 0.310489 -vt 0.417365 0.310489 -vt 0.407847 0.171875 -vt 0.398330 0.310490 -vt 0.388812 0.171875 -vt 0.379295 0.310489 -vt 0.369777 0.171875 -vt 0.360259 0.310490 -vt 0.350742 0.171875 -vt 0.341224 0.310490 -vt 0.331707 0.171875 -vt 0.322189 0.310489 -vt 0.312672 0.171875 -vt 0.464953 0.171875 -vt 0.455436 0.310489 -vt 0.303154 0.310490 -vt 0.293637 0.171875 -vt 0.284119 0.310490 -vt 0.274602 0.171875 -vt 0.265085 0.310490 -vt 0.255566 0.171875 -vt 0.246049 0.310490 -vt 0.236531 0.171875 -vt 0.227014 0.310489 -vt 0.217496 0.171875 -vt 0.522058 0.171875 -vt 0.512541 0.310489 -vt 0.503023 0.171875 -vt 0.493505 0.310489 -vt 0.483988 0.171875 -vt 0.474470 0.310490 -vt 0.192477 0.443094 -vt 0.255582 0.427318 -vt 0.255582 0.695515 -vt 0.916817 0.883810 -vt 0.904127 0.883810 -vt 0.916817 0.615614 -vt 0.979922 0.631390 -vt 0.841022 0.631390 -vt 0.904127 0.615614 -vt 0.916817 0.550567 -vt 0.904127 0.550567 -vt 0.268272 0.362271 -vt 0.268272 0.427318 -vt 0.255582 0.362271 -vt 0.426882 0.041780 -vt 0.331707 0.041780 -vt 0.274601 0.041781 -vt 0.464953 0.041780 -vt 0.522058 0.792829 -vt 0.522058 0.857876 -vt 0.476525 0.792829 -vt 0.503023 0.041780 -vt 0.106568 0.658093 -vt 0.106568 0.625569 -vt 0.152101 0.690617 -vt 0.097051 0.658093 -vt 0.051518 0.690617 -vt 0.097051 0.625569 -vt 0.106568 0.580036 -vt 0.097051 0.580036 -vt 0.445918 0.041780 -vt 0.217496 0.041781 -vt 0.236531 0.041781 -vt 0.522058 0.041780 -vt 0.097051 0.714049 -vt 0.106568 0.714049 -vt 0.312672 0.041780 -vt 0.152101 0.625569 -vt 0.051518 0.625569 -vt 0.979922 0.107529 -vt 0.573839 0.367716 -vt 0.142205 0.294345 -vt 0.122274 0.302600 -vt 0.157460 0.279090 -vt 0.165715 0.259159 -vt 0.065515 0.279090 -vt 0.080770 0.294345 -vt 0.057260 0.259159 -vt 0.057260 0.237586 -vt 0.065515 0.217655 -vt 0.080770 0.202400 -vt 0.100701 0.194145 -vt 0.122274 0.194145 -vt 0.100701 0.302600 -vt 0.749597 0.041781 -vt 0.774977 0.041781 -vt 0.467007 0.825352 -vt 0.421474 0.857876 -vt 0.467007 0.792829 -vt 0.906954 0.498785 -vt 0.957714 0.498785 -vt 0.805433 0.498785 -vt 0.602391 0.498785 -vt 0.653152 0.498785 -vt 0.780053 0.498786 -vt 0.331377 0.443094 -vt 0.268272 0.695515 -vt 0.407847 0.041780 -vt 0.467007 0.881308 -vt 0.476525 0.825352 -vt 0.350742 0.041780 -vt 0.476525 0.747295 -vt 0.467007 0.747295 -vt 0.255566 0.041781 -vt 0.476525 0.881308 -vt 0.421474 0.792829 -vt 0.483988 0.041780 -vt 0.324160 0.792829 -vt 0.324160 0.825352 -vt 0.314643 0.825352 -vt 0.314643 0.792829 -vt 0.314643 0.747295 -vt 0.269110 0.857876 -vt 0.269110 0.792829 -vt 0.293636 0.041781 -vt 0.369693 0.857876 -vt 0.388812 0.041780 -vt 0.369777 0.041780 -vt 0.324160 0.881308 -vt 0.314643 0.881308 -vt 0.324160 0.747295 -vt 0.369693 0.792829 -vt 0.162278 0.825352 -vt 0.171796 0.825352 -vt 0.171796 0.881308 -vt 0.171796 0.792829 -vt 0.162278 0.792829 -vt 0.162278 0.747295 -vt 0.116745 0.857876 -vt 0.116745 0.792829 -vt 0.217329 0.792829 -vt 0.217329 0.857876 -vt 0.162278 0.881308 -vt 0.171796 0.747295 -vt 0.383158 0.443094 -vt 0.446263 0.427318 -vt 0.446263 0.695515 -vt 0.726137 0.883810 -vt 0.713447 0.883810 -vt 0.726136 0.615614 -vt 0.789241 0.631390 -vt 0.458953 0.695515 -vt 0.650341 0.631390 -vt 0.713446 0.615614 -vt 0.726136 0.550567 -vt 0.713446 0.550567 -vt 0.458953 0.362271 -vt 0.458953 0.427318 -vt 0.446263 0.362271 -vt 0.522058 0.443094 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 0.000000 -0.707100 -vn 0.923900 -0.000000 -0.382700 -vn 0.923900 -0.000000 0.382700 -vn 0.707100 -0.000000 0.707100 -vn 0.382700 -0.000000 0.923900 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 -0.000000 0.707100 -vn -0.923900 -0.000000 0.382700 -vn -0.923900 0.000000 -0.382700 -vn 0.992600 0.121700 0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.707100 0.000000 -0.707100 -vn 0.000000 -0.145600 0.989400 -vn -0.000000 -1.000000 -0.000000 -vn -0.914000 -0.145600 0.378600 -vn 0.914000 -0.145600 -0.378600 -vn -0.699600 -0.145600 -0.699600 -vn 0.699600 -0.145600 0.699600 -vn -0.378600 -0.145600 0.914000 -vn 0.378600 -0.145600 -0.914000 -vn -0.989400 -0.145600 0.000000 -vn 0.997400 -0.072300 0.000000 -vn 0.989400 -0.145600 0.000000 -vn -0.378600 -0.145600 -0.914000 -vn 0.000000 -0.145600 -0.989400 -vn 0.378600 -0.145600 0.914000 -vn -0.699600 -0.145600 0.699600 -vn 0.699600 -0.145600 -0.699600 -vn -0.914000 -0.145600 -0.378600 -vn 0.914000 -0.145600 0.378600 -vn -0.379800 0.121700 -0.917000 -vn 0.000000 0.121700 -0.992600 -vn 0.379800 0.121700 0.917000 -vn -0.701900 0.121700 0.701900 -vn 0.701900 0.121700 -0.701900 -vn -0.917000 0.121700 -0.379800 -vn 0.917000 0.121700 0.379800 -vn 0.000000 0.121700 0.992600 -vn -0.917000 0.121700 0.379800 -vn 0.917000 0.121700 -0.379800 -vn -0.701900 0.121700 -0.701900 -vn 0.701900 0.121700 0.701900 -vn -0.379800 0.121700 0.917000 -vn 0.379800 0.121700 -0.917000 -vn -0.992600 0.121700 0.000000 -vn -0.359200 0.345200 0.867100 -vn -0.663600 0.345200 0.663600 -vn -0.867100 0.345200 0.359200 -vn -0.938500 0.345200 0.000000 -vn -0.867100 0.345200 -0.359200 -vn -0.663600 0.345200 -0.663600 -vn -0.359200 0.345200 -0.867100 -vn 0.000000 0.345200 0.938500 -vn 0.000000 0.345200 -0.938500 -vn 0.359200 0.345200 -0.867100 -vn 0.663600 0.345200 -0.663600 -vn 0.867100 0.345200 -0.359200 -vn 0.938500 0.345200 0.000000 -vn 0.867100 0.345200 0.359200 -vn 0.663600 0.345200 0.663600 -vn 0.359200 0.345200 0.867100 -vn 0.000000 -0.000000 1.000000 -vn -0.970100 0.242500 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.195100 -0.000000 0.980800 -vn 1.000000 0.000000 0.000000 -vn -0.195100 -0.000000 0.980800 -vn 0.980800 -0.000000 0.195100 -vn 0.980800 0.000000 -0.195100 -vn 0.000000 0.813700 -0.581200 -vn -0.195100 0.000000 -0.980800 -vn 0.195100 0.000000 -0.980800 -vn 0.970100 0.242500 0.000000 -vn -0.581200 0.813700 0.000000 -vn -0.980800 0.000000 0.195100 -vn -0.980800 0.000000 -0.195100 -vn 0.000000 0.813700 0.581200 -vn 0.581200 0.813700 0.000000 -vn 0.000000 0.242500 0.970100 -vn -0.000000 0.242500 -0.970100 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/2/2 4/4/2 5/5/2 -f 4/4/3 6/6/3 7/7/3 -f 8/8/4 9/9/4 10/10/4 -f 9/9/5 11/11/5 12/12/5 -f 11/11/6 13/13/6 14/14/6 -f 15/15/7 16/16/7 17/17/7 -f 16/16/8 18/18/8 19/19/8 -f 18/18/9 20/20/9 21/21/9 -f 22/22/10 23/23/10 24/24/10 -f 6/6/11 25/25/11 26/26/11 -f 27/27/12 28/28/12 29/29/12 -f 23/23/13 28/28/13 27/27/13 -f 30/30/14 31/31/14 32/32/14 -f 33/33/15 34/34/15 35/35/15 -f 21/21/16 36/36/16 37/37/16 -f 7/7/17 38/38/17 39/39/17 -f 24/24/18 27/27/18 33/40/18 -f 12/12/19 40/41/19 41/42/19 -f 17/17/20 42/43/20 31/44/20 -f 3/3/21 43/45/21 44/46/21 -f 45/47/22 46/48/22 36/49/22 -f 47/50/23 48/51/24 38/52/24 -f 49/53/25 34/54/25 33/55/25 -f 50/56/26 44/57/26 34/58/26 -f 14/14/27 32/59/27 40/60/27 -f 19/19/28 37/61/28 42/62/28 -f 5/5/29 39/63/29 43/64/29 -f 45/47/30 24/24/30 35/65/30 -f 10/10/31 41/66/31 48/67/31 -f 28/28/32 54/68/32 55/69/32 -f 29/29/33 55/70/33 56/71/33 -f 13/13/34 11/11/34 57/72/34 -f 16/16/35 58/73/35 59/74/35 -f 2/2/36 60/75/36 61/76/36 -f 22/22/37 62/77/37 63/78/37 -f 9/9/38 8/8/38 26/79/38 -f 13/13/39 64/80/39 65/81/39 -f 20/20/40 18/18/40 59/82/40 -f 6/6/41 4/4/41 61/83/41 -f 23/23/42 63/84/42 54/85/42 -f 9/9/43 66/86/43 57/87/43 -f 15/15/44 65/88/44 58/89/44 -f 2/2/45 1/1/45 56/90/45 -f 22/22/46 20/20/46 67/91/46 -f 68/92/47 69/93/47 70/94/47 -f 68/92/48 70/95/48 78/96/48 -f 78/96/49 70/97/49 71/98/49 -f 71/98/50 70/99/50 72/100/50 -f 72/100/51 70/101/51 79/102/51 -f 79/102/52 70/103/52 80/104/52 -f 80/104/53 70/105/53 52/106/53 -f 74/107/54 70/108/54 69/93/54 -f 52/106/55 70/109/55 53/110/55 -f 53/110/56 70/111/56 81/112/56 -f 81/112/57 70/113/57 82/114/57 -f 82/114/58 70/115/58 76/116/58 -f 76/116/59 70/117/59 77/118/59 -f 77/119/60 70/120/60 83/121/60 -f 83/121/61 70/122/61 84/123/61 -f 84/123/62 70/124/62 74/107/62 -f 121/125/63 123/126/63 88/127/63 -f 87/128/64 119/129/64 124/130/64 -f 118/131/63 87/128/63 124/130/63 -f 120/132/65 125/133/65 119/129/65 -f 118/134/15 124/130/15 120/135/15 -f 85/136/15 122/137/15 121/138/15 -f 21/21/66 20/20/66 22/22/66 -f 50/56/65 49/53/65 29/29/65 -f 124/130/15 125/133/15 120/135/15 -f 58/139/8 68/92/8 78/96/8 -f 79/102/13 80/104/13 54/140/13 -f 60/141/2 81/112/2 82/114/2 -f 84/123/6 74/107/67 64/142/67 -f 95/143/63 96/144/63 107/145/63 -f 66/146/5 83/121/5 84/123/5 -f 90/147/66 73/148/66 97/149/66 -f 91/150/68 94/151/68 51/152/68 -f 93/153/15 73/148/15 92/154/15 -f 68/92/7 58/139/7 65/155/69 -f 51/152/65 73/148/65 91/150/65 -f 26/156/70 25/157/71 76/116/71 -f 66/146/4 26/158/70 77/119/70 -f 82/114/3 76/116/71 25/157/71 -f 94/159/72 91/150/72 97/160/72 -f 55/161/73 52/106/73 53/110/74 -f 73/148/66 93/162/66 97/149/66 -f 94/151/68 92/163/68 51/152/68 -f 73/148/15 51/152/15 92/154/15 -f 73/148/65 90/147/65 91/150/65 -f 91/150/72 90/147/72 97/160/72 -f 50/56/1 1/1/1 3/3/1 -f 3/3/2 2/2/2 5/5/2 -f 5/5/3 4/4/3 7/7/3 -f 47/164/4 8/8/4 10/10/4 -f 10/10/5 9/9/5 12/12/5 -f 12/12/6 11/11/6 14/14/6 -f 30/30/7 15/15/7 17/17/7 -f 17/17/8 16/16/8 19/19/8 -f 19/19/9 18/18/9 21/21/9 -f 45/47/10 22/22/10 24/24/10 -f 8/165/11 6/6/11 26/26/11 -f 49/53/12 27/27/12 29/29/12 -f 24/24/13 23/23/13 27/27/13 -f 14/14/14 30/30/14 32/32/14 -f 5/5/17 7/7/17 39/39/17 -f 39/166/15 38/167/15 43/168/15 -f 38/167/15 35/35/15 44/169/15 -f 40/170/15 38/167/15 41/171/15 -f 40/170/15 32/172/15 31/173/15 -f 31/173/15 42/174/15 37/175/15 -f 37/175/15 36/176/15 46/177/15 -f 19/19/16 21/21/16 37/37/16 -f 38/167/15 44/169/15 43/168/15 -f 38/167/15 37/175/15 46/177/15 -f 40/170/15 31/173/15 37/175/15 -f 38/167/15 40/170/15 37/175/15 -f 35/35/15 34/34/15 44/169/15 -f 38/167/15 48/178/15 41/171/15 -f 35/35/15 38/167/15 46/177/15 -f 35/179/18 24/24/18 33/40/18 -f 10/10/19 12/12/19 41/42/19 -f 30/30/20 17/17/20 31/44/20 -f 50/56/21 3/3/21 44/46/21 -f 21/21/22 45/47/22 36/49/22 -f 47/50/23 38/52/24 7/7/23 -f 27/27/25 49/53/25 33/55/25 -f 49/53/26 50/56/26 34/58/26 -f 12/12/27 14/14/27 40/60/27 -f 17/17/28 19/19/28 42/62/28 -f 3/3/29 5/5/29 43/64/29 -f 46/180/30 45/47/30 35/65/30 -f 47/164/31 10/10/31 48/67/31 -f 109/181/65 89/182/65 106/183/65 -f 29/29/32 28/28/32 55/69/32 -f 1/1/33 29/29/33 56/71/33 -f 64/184/34 13/13/34 57/72/34 -f 18/18/35 16/16/35 59/74/35 -f 4/4/36 2/2/36 61/76/36 -f 23/23/37 22/22/37 63/78/37 -f 66/185/38 9/9/38 26/79/38 -f 15/15/39 13/13/39 65/81/39 -f 67/186/40 20/20/40 59/82/40 -f 25/187/41 6/6/41 61/83/41 -f 28/28/42 23/23/42 54/85/42 -f 11/11/43 9/9/43 57/87/43 -f 16/16/44 15/15/44 58/89/44 -f 60/188/45 2/2/45 56/90/45 -f 62/189/46 22/22/46 67/91/46 -f 85/190/65 86/191/65 122/137/65 -f 7/7/23 6/6/68 8/165/68 -f 119/129/64 125/133/64 124/130/64 -f 123/126/75 122/137/75 86/191/75 -f 14/14/63 13/13/63 15/15/63 -f 122/137/15 123/126/15 121/138/15 -f 59/192/8 58/139/8 78/96/8 -f 89/193/76 109/181/76 108/194/76 -f 63/195/13 79/102/13 54/140/13 -f 95/196/15 107/145/15 75/197/15 -f 61/198/2 60/141/2 82/114/2 -f 106/183/66 107/145/66 109/181/66 -f 96/199/76 89/193/76 108/194/76 -f 96/144/63 108/194/63 107/145/63 -f 89/182/65 75/200/65 106/183/65 -f 107/145/15 106/183/15 75/197/15 -f 107/145/66 108/194/66 109/181/66 -f 57/201/5 66/146/5 84/123/5 -f 100/202/63 99/203/63 98/204/63 -f 100/202/15 101/205/15 105/206/15 -f 104/207/66 105/208/66 101/205/66 -f 81/112/1 60/141/1 56/209/74 -f 102/210/68 99/203/68 100/202/68 -f 55/161/73 54/140/12 80/104/12 -f 67/211/77 71/98/77 72/100/78 -f 62/212/78 72/100/78 79/102/10 -f 102/213/79 104/214/79 99/203/79 -f 78/96/9 71/98/77 67/211/77 -f 101/205/63 100/202/63 98/204/63 -f 103/215/15 100/202/15 105/206/15 -f 104/214/79 98/204/79 99/203/79 -f 98/204/66 104/207/66 101/205/66 -f 103/216/68 102/210/68 100/202/68 -f 114/217/80 115/218/80 110/219/80 -f 116/220/68 115/218/68 114/217/68 -f 116/220/15 117/221/15 113/222/15 -f 111/223/63 113/224/63 117/221/63 -f 116/220/65 112/225/65 110/226/65 -f 111/227/80 114/217/80 110/219/80 -f 117/221/68 116/220/68 114/217/68 -f 112/228/15 116/220/15 113/222/15 -f 114/217/63 111/223/63 117/221/63 -f 115/218/65 116/220/65 110/226/65 -f 74/107/67 69/93/69 65/155/69 -f 133/229/68 135/230/68 129/231/68 -f 128/232/81 131/233/81 136/234/81 -f 130/235/68 128/232/68 136/234/68 -f 129/231/82 135/230/82 127/236/82 -f 132/237/66 137/238/66 131/233/66 -f 130/239/15 136/234/15 132/240/15 -f 126/241/15 134/242/15 133/243/15 -f 136/234/15 137/238/15 132/240/15 -f 126/244/66 127/236/66 134/242/66 -f 131/233/81 137/238/81 136/234/81 -f 135/230/82 134/242/82 127/236/82 -f 134/242/15 135/230/15 133/243/15 -f 86/191/75 88/127/75 123/126/75 -f 45/47/66 21/21/66 22/22/66 -f 1/1/65 50/56/65 29/29/65 -f 57/201/6 84/123/6 64/142/67 -f 69/93/69 68/92/7 65/155/69 -f 77/118/70 26/156/70 76/116/71 -f 83/121/4 66/146/4 77/119/70 -f 61/198/3 82/114/3 25/157/71 -f 56/209/74 55/161/73 53/110/74 -f 47/50/23 7/7/23 8/165/68 -f 30/30/63 14/14/63 15/15/63 -f 53/110/74 81/112/1 56/209/74 -f 52/106/73 55/161/73 80/104/12 -f 62/212/78 67/211/77 72/100/78 -f 63/195/10 62/212/78 79/102/10 -f 59/192/9 78/96/9 67/211/77 -f 64/142/67 74/107/67 65/155/69 diff --git a/src/main/resources/assets/hbm/models/missileHuge.obj b/src/main/resources/assets/hbm/models/missileHuge.obj deleted file mode 100644 index 0835cc5e0..000000000 --- a/src/main/resources/assets/hbm/models/missileHuge.obj +++ /dev/null @@ -1,657 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileHuge.blend' -# www.blender.org -o Cylinder -v 0.264256 0.500000 -0.178243 -v 0.352341 0.000000 -0.237657 -v 0.234573 0.000000 -0.354401 -v -0.264256 0.500000 0.178243 -v -0.352341 -0.000000 0.237657 -v -0.234573 -0.000000 0.354402 -v 0.312351 0.500000 -0.063548 -v 0.416468 0.000000 -0.084731 -v -0.312351 0.500000 0.063548 -v -0.416468 -0.000000 0.084731 -v 0.312894 0.500000 0.060821 -v 0.417192 -0.000000 0.081094 -v -0.312894 0.500000 -0.060820 -v -0.417192 0.000000 -0.081094 -v 0.265801 0.500000 0.175930 -v 0.354401 -0.000000 0.234573 -v -0.265801 0.500000 -0.175930 -v -0.354401 0.000000 -0.234573 -v 0.178243 0.500000 0.264256 -v 0.237657 -0.000000 0.352341 -v -0.178243 0.500000 -0.264256 -v -0.237657 0.000000 -0.352341 -v 0.063548 0.500000 0.312351 -v 0.084731 -0.000000 0.416468 -v 0.060820 0.500000 -0.312894 -v 0.081094 0.000000 -0.417192 -v -0.084731 0.000000 -0.416468 -v -0.063548 0.500000 -0.312351 -v -0.060820 0.500000 0.312894 -v -0.081094 -0.000000 0.417192 -v 0.279597 0.500000 0.414519 -v 0.099684 0.500000 0.489962 -v 0.095404 0.500000 -0.490814 -v -0.175930 0.500000 0.265802 -v -0.490814 0.500000 -0.095405 -v -0.490814 2.500000 -0.095405 -v -0.416943 2.500000 -0.275969 -v -0.279596 0.500000 -0.414519 -v -0.416943 0.500000 -0.275969 -v 0.416943 0.500000 0.275968 -v -0.489962 0.500000 0.099684 -v 0.490814 0.500000 0.095405 -v 0.414519 0.500000 -0.279596 -v 0.489962 0.500000 -0.099684 -v -0.414519 0.500000 0.279597 -v 0.275968 0.500000 -0.416943 -v -0.095404 0.500000 0.490814 -v -0.275968 0.500000 0.416943 -v 0.175930 0.500000 -0.265801 -v -0.099684 0.500000 -0.489962 -v 0.414519 2.500000 -0.279596 -v 0.310889 4.000000 -0.209697 -v 0.367472 4.000000 -0.074763 -v 0.416943 2.500000 0.275968 -v 0.279596 2.500000 0.414519 -v -0.279596 2.500000 -0.414519 -v 0.099684 2.500000 0.489962 -v -0.099684 2.500000 -0.489962 -v 0.095404 2.500000 -0.490814 -v -0.095404 2.500000 0.490814 -v 0.275968 2.500000 -0.416943 -v -0.275968 2.500000 0.416943 -v -0.414519 2.500000 0.279597 -v 0.489962 2.500000 -0.099684 -v -0.489962 2.500000 0.099684 -v 0.490814 2.500000 0.095405 -v 0.074763 5.500000 0.367472 -v 0.056072 6.000000 0.275604 -v -0.053665 6.000000 0.276083 -v -0.310889 4.000000 0.209697 -v 0.368110 4.000000 0.071553 -v -0.367472 4.000000 0.074763 -v -0.368110 4.000000 -0.071553 -v 0.312707 4.000000 0.206976 -v 0.209697 4.000000 0.310889 -v -0.312707 4.000000 -0.206976 -v -0.209697 4.000000 -0.310889 -v 0.074763 4.000000 0.367472 -v -0.074763 4.000000 -0.367472 -v -0.071553 4.000000 0.368110 -v 0.071553 4.000000 -0.368110 -v -0.206976 4.000000 0.312707 -v 0.206976 4.000000 -0.312707 -v 0.233166 6.000000 -0.157273 -v 0.155232 6.000000 -0.234530 -v 0.000000 6.500000 0.000000 -v 0.206976 5.500000 -0.312707 -v 0.071553 5.500000 -0.368110 -v 0.053665 6.000000 -0.276083 -v -0.206977 5.500000 0.312707 -v -0.071554 5.500000 0.368110 -v -0.155233 6.000000 0.234530 -v -0.233167 6.000000 0.157273 -v 0.310889 5.500000 -0.209697 -v 0.275603 6.000000 -0.056072 -v -0.367472 5.500000 0.074763 -v -0.310889 5.500000 0.209697 -v 0.367471 5.500000 -0.074763 -v 0.276082 6.000000 0.053665 -v -0.368110 5.500000 -0.071553 -v -0.275604 6.000000 0.056072 -v 0.368110 5.500000 0.071553 -v 0.234530 6.000000 0.155232 -v -0.276083 6.000000 -0.053665 -v -0.234531 6.000000 -0.155232 -v 0.312707 5.500000 0.206976 -v 0.157273 6.000000 0.233167 -v -0.312707 5.500000 -0.206976 -v -0.157273 6.000000 -0.233167 -v 0.209697 5.500000 0.310889 -v -0.074763 5.500000 -0.367472 -v -0.056073 6.000000 -0.275604 -v -0.209697 5.500000 -0.310889 -vt 0.149260 0.839187 -vt 0.109237 0.763560 -vt 0.134278 0.751582 -vt 0.310796 0.812746 -vt 0.324618 0.728305 -vt 0.351807 0.733896 -vt 0.131270 0.849663 -vt 0.085250 0.777529 -vt 0.290131 0.810219 -vt 0.297065 0.724936 -vt 0.114187 0.861563 -vt 0.062473 0.793394 -vt 0.269330 0.809375 -vt 0.269330 0.723810 -vt 0.407390 0.849663 -vt 0.453410 0.777529 -vt 0.476186 0.793394 -vt 0.248528 0.810219 -vt 0.241595 0.724936 -vt 0.389399 0.839187 -vt 0.429422 0.763560 -vt 0.227864 0.812746 -vt 0.214042 0.728305 -vt 0.370619 0.830203 -vt 0.404382 0.751582 -vt 0.187487 0.822771 -vt 0.160206 0.741672 -vt 0.186853 0.733896 -vt 0.207472 0.816939 -vt 0.351172 0.822771 -vt 0.378453 0.741672 -vt 0.914489 0.049954 -vt 0.881833 0.049954 -vt 0.887752 0.020197 -vt 0.840254 0.735366 -vt 0.923908 0.679471 -vt 0.979803 0.763125 -vt 0.587926 0.049954 -vt 0.593845 0.020198 -vt 0.614663 0.020198 -vt 0.331187 0.816939 -vt 0.718551 0.049954 -vt 0.718551 0.384736 -vt 0.685895 0.384736 -vt 0.653238 0.049954 -vt 0.659157 0.020198 -vt 0.679976 0.020197 -vt 0.920408 0.020197 -vt 0.941227 0.020197 -vt 0.685895 0.049954 -vt 0.691814 0.020197 -vt 0.712632 0.020198 -vt 0.947146 0.049954 -vt 0.953064 0.020197 -vt 0.973883 0.020197 -vt 0.751207 0.049954 -vt 0.724470 0.020198 -vt 0.457300 0.049954 -vt 0.463219 0.020197 -vt 0.484038 0.020197 -vt 0.757126 0.020198 -vt 0.777945 0.020197 -vt 0.522613 0.049954 -vt 0.489957 0.049954 -vt 0.495875 0.020197 -vt 0.783864 0.049954 -vt 0.789783 0.020197 -vt 0.810601 0.020198 -vt 0.555269 0.049954 -vt 0.528532 0.020197 -vt 0.849177 0.049954 -vt 0.816520 0.049954 -vt 0.822439 0.020198 -vt 0.561188 0.020197 -vt 0.582007 0.020198 -vt 0.855095 0.020197 -vt 0.875914 0.020197 -vt 0.168041 0.830203 -vt 0.620582 0.049954 -vt 0.626501 0.020198 -vt 0.647319 0.020198 -vt 0.522612 0.384736 -vt 0.518530 0.636659 -vt 0.494038 0.636659 -vt 0.947147 0.384735 -vt 0.914490 0.384735 -vt 0.653238 0.384736 -vt 0.881834 0.384736 -vt 0.620582 0.384736 -vt 0.587925 0.384736 -vt 0.849177 0.384736 -vt 0.555269 0.384736 -vt 0.816521 0.384736 -vt 0.783864 0.384736 -vt 0.489956 0.384736 -vt 0.751208 0.384736 -vt 0.457300 0.384736 -vt 0.979802 0.049954 -vt 0.979803 0.384735 -vt 0.341013 0.271283 -vt 0.337952 0.356383 -vt 0.319582 0.356383 -vt 0.779783 0.636660 -vt 0.485874 0.636661 -vt 0.461382 0.636661 -vt 0.747126 0.636660 -vt 0.722634 0.636660 -vt 0.975722 0.636658 -vt 0.714469 0.636661 -vt 0.943066 0.636659 -vt 0.918573 0.636659 -vt 0.681813 0.636661 -vt 0.657320 0.636661 -vt 0.910409 0.636660 -vt 0.885917 0.636660 -vt 0.616500 0.636662 -vt 0.649156 0.636659 -vt 0.877753 0.636661 -vt 0.853261 0.636661 -vt 0.583843 0.636661 -vt 0.845096 0.636661 -vt 0.820604 0.636661 -vt 0.551187 0.636660 -vt 0.526694 0.636660 -vt 0.812439 0.636661 -vt 0.074658 0.356383 -vt 0.093028 0.356383 -vt 0.083843 0.451970 -vt 0.096089 0.271283 -vt 0.120582 0.271283 -vt 0.117520 0.356383 -vt 0.292028 0.271283 -vt 0.316521 0.271283 -vt 0.313459 0.356382 -vt 0.288967 0.356382 -vt 0.270598 0.356382 -vt 0.071597 0.271283 -vt 0.068535 0.356382 -vt 0.050166 0.356382 -vt 0.243044 0.271283 -vt 0.267536 0.271283 -vt 0.264475 0.356383 -vt 0.047105 0.271283 -vt 0.044043 0.356383 -vt 0.025674 0.356383 -vt 0.218551 0.271283 -vt 0.239982 0.356383 -vt 0.414490 0.271283 -vt 0.411429 0.356382 -vt 0.393060 0.356382 -vt 0.215490 0.356383 -vt 0.197121 0.356383 -vt 0.389998 0.271283 -vt 0.386937 0.356382 -vt 0.368567 0.356382 -vt 0.194059 0.271283 -vt 0.190997 0.356383 -vt 0.172628 0.356383 -vt 0.365505 0.271283 -vt 0.362444 0.356383 -vt 0.344075 0.356383 -vt 0.145074 0.271283 -vt 0.142013 0.356383 -vt 0.123643 0.356383 -vt 0.169567 0.271283 -vt 0.166505 0.356383 -vt 0.059350 0.451969 -vt 0.034858 0.451971 -vt 0.402245 0.451970 -vt 0.377753 0.451970 -vt 0.099151 0.356383 -vt 0.108335 0.451971 -vt 0.353260 0.451971 -vt 0.328767 0.451971 -vt 0.304275 0.451969 -vt 0.295090 0.356382 -vt 0.279783 0.451970 -vt 0.255291 0.451971 -vt 0.246106 0.356383 -vt 0.230798 0.451971 -vt 0.221613 0.356383 -vt 0.206306 0.451971 -vt 0.181813 0.451970 -vt 0.157321 0.451971 -vt 0.148136 0.356383 -vt 0.132828 0.451972 -vt 0.169567 0.020197 -vt 0.145075 0.020197 -vt 0.365505 0.020197 -vt 0.194059 0.020197 -vt 0.389997 0.020197 -vt 0.218551 0.020197 -vt 0.414489 0.020197 -vt 0.243043 0.020197 -vt 0.047106 0.020197 -vt 0.022612 0.271283 -vt 0.267536 0.020197 -vt 0.071598 0.020197 -vt 0.292028 0.020197 -vt 0.096090 0.020197 -vt 0.316520 0.020197 -vt 0.120582 0.020197 -vt 0.341012 0.020197 -vt 0.424472 0.861563 -vt 0.908570 0.020197 -vt 0.969181 0.788769 -vt 0.949553 0.808397 -vt 0.923908 0.819020 -vt 0.896150 0.819020 -vt 0.870505 0.808397 -vt 0.850877 0.788769 -vt 0.840254 0.763124 -vt 0.850877 0.709721 -vt 0.870505 0.690094 -vt 0.896150 0.679471 -vt 0.949553 0.690094 -vt 0.969180 0.709722 -vt 0.979803 0.735366 -vt 0.745288 0.020198 -vt 0.516694 0.020197 -vt 0.549350 0.020197 -vt 0.843257 0.020197 -vt 0.755291 0.636661 -vt 0.951230 0.636658 -vt 0.689977 0.636661 -vt 0.592008 0.636662 -vt 0.624664 0.636659 -vt 0.559351 0.636661 -vt 0.787947 0.636661 -vt 0.022613 0.020197 -vn 0.689200 0.204000 -0.695200 -vn -0.689200 0.204000 0.695200 -vn 0.902800 0.204000 -0.378600 -vn -0.902800 0.204000 0.378600 -vn 0.979000 0.204000 -0.004300 -vn -0.979000 0.204000 0.004300 -vn 0.906100 0.204000 0.370700 -vn -0.906100 0.204000 -0.370700 -vn 0.695200 0.204000 0.689200 -vn -0.695200 0.204000 -0.689200 -vn 0.378600 0.204000 0.902800 -vn -0.004300 0.204000 -0.979000 -vn -0.378600 0.204000 -0.902800 -vn 0.004300 0.204000 0.979000 -vn -0.000000 -1.000000 -0.000000 -vn -0.370700 0.204000 0.906100 -vn -0.925500 0.000000 -0.378700 -vn -0.925500 0.000000 -0.378600 -vn 0.370700 0.204000 -0.906100 -vn 0.919100 0.081500 -0.385400 -vn 0.710200 0.000000 0.704000 -vn -0.710200 0.000000 -0.704000 -vn 0.386700 -0.000000 0.922200 -vn -0.004400 0.000000 -1.000000 -vn -0.386700 0.000000 -0.922200 -vn 0.004400 -0.000000 1.000000 -vn 0.378600 0.000000 -0.925500 -vn -0.378700 -0.000000 0.925500 -vn 0.704000 0.000000 -0.710200 -vn -0.704000 -0.000000 0.710200 -vn 0.922200 0.000000 -0.386700 -vn -0.922200 -0.000000 0.386700 -vn 1.000000 0.000000 -0.004400 -vn -1.000000 0.000000 0.004400 -vn 0.925500 -0.000000 0.378700 -vn 0.004300 0.180900 0.983500 -vn -0.919100 0.081500 0.385400 -vn 0.996700 0.081500 -0.004400 -vn 0.996700 0.081500 -0.004300 -vn -0.996700 0.081500 0.004400 -vn -0.996700 0.081500 0.004300 -vn 0.922500 0.081500 0.377400 -vn -0.922500 0.081500 -0.377400 -vn 0.707800 0.081500 0.701700 -vn -0.707800 0.081500 -0.701700 -vn 0.385400 0.081500 0.919100 -vn -0.004400 0.081500 -0.996700 -vn -0.004300 0.081500 -0.996700 -vn -0.385400 0.081500 -0.919100 -vn 0.004400 0.081500 0.996700 -vn 0.004300 0.081500 0.996700 -vn 0.377400 0.081500 -0.922500 -vn -0.377400 0.081500 0.922500 -vn 0.701700 0.081500 -0.707800 -vn -0.701700 0.081500 0.707800 -vn 0.616400 0.483100 -0.621800 -vn 0.372400 0.180900 -0.910300 -vn -0.372400 0.180900 0.910300 -vn 0.692400 0.180900 -0.698500 -vn -0.692400 0.180900 0.698500 -vn 0.907000 0.180900 -0.380300 -vn -0.907000 0.180900 0.380300 -vn 0.983500 0.180900 -0.004300 -vn -0.983500 0.180900 0.004300 -vn 0.910300 0.180900 0.372400 -vn -0.910300 0.180900 -0.372400 -vn 0.698500 0.180900 0.692400 -vn -0.698500 0.180900 -0.692400 -vn 0.380300 0.180900 0.907000 -vn -0.004300 0.180900 -0.983500 -vn -0.380300 0.180900 -0.907000 -vn 0.807500 0.483100 -0.338600 -vn 0.875600 0.483100 -0.003800 -vn 0.810400 0.483100 0.331500 -vn 0.621800 0.483100 0.616400 -vn 0.331500 0.483100 -0.810400 -vn 0.338600 0.483100 0.807500 -vn 0.003800 0.483100 0.875600 -vn -0.331500 0.483100 0.810400 -vn -0.616400 0.483100 0.621800 -vn -0.807500 0.483100 0.338600 -vn -0.875600 0.483100 0.003800 -vn -0.810400 0.483100 -0.331500 -vn -0.621800 0.483100 -0.616400 -vn -0.338600 0.483100 -0.807500 -vn -0.003800 0.483100 -0.875600 -vn 0.925500 -0.000000 0.378600 -vn -0.378600 -0.000000 0.925500 -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 8/8/3 2/2/3 -f 9/9/4 10/10/4 5/5/4 -f 11/11/5 12/12/5 8/8/5 -f 13/13/6 14/14/6 10/10/6 -f 15/15/7 16/16/7 12/17/7 -f 17/18/8 18/19/8 14/14/8 -f 19/20/9 20/21/9 16/16/9 -f 21/22/10 22/23/10 18/19/10 -f 23/24/11 24/25/11 20/21/11 -f 25/26/12 26/27/12 27/28/12 -f 28/29/13 27/28/13 22/23/13 -f 29/30/14 30/31/14 24/25/14 -f 31/32/15 32/33/15 23/34/15 -f 24/35/15 10/36/15 27/37/15 -f 33/38/15 25/39/15 28/40/15 -f 34/41/16 6/6/16 30/31/16 -f 35/42/17 36/43/18 37/44/18 -f 38/45/15 21/46/15 17/47/15 -f 31/32/15 19/48/15 15/49/15 -f 39/50/15 17/51/15 13/52/15 -f 40/53/15 15/54/15 11/55/15 -f 41/56/15 35/42/15 13/57/15 -f 42/58/15 11/59/15 7/60/15 -f 41/56/15 9/61/15 4/62/15 -f 43/63/15 44/64/15 7/65/15 -f 45/66/15 4/67/15 34/68/15 -f 46/69/15 43/63/15 1/70/15 -f 47/71/15 48/72/15 34/73/15 -f 46/69/15 49/74/15 25/75/15 -f 47/71/15 29/76/15 23/77/15 -f 49/78/19 3/3/19 26/27/19 -f 50/79/15 28/80/15 21/81/15 -f 51/82/20 52/83/20 53/84/20 -f 40/53/21 54/85/21 55/86/21 -f 39/50/22 37/44/22 56/87/22 -f 31/32/23 55/86/23 57/88/23 -f 50/79/24 58/89/24 59/90/24 -f 50/79/25 38/45/25 56/87/25 -f 32/33/26 57/88/26 60/91/26 -f 33/38/27 59/90/27 61/92/27 -f 47/71/28 60/91/28 62/93/28 -f 46/69/29 61/92/29 51/82/29 -f 48/72/30 62/93/30 63/94/30 -f 43/63/31 51/82/31 64/95/31 -f 45/66/32 63/94/32 65/96/32 -f 44/64/33 64/95/33 66/97/33 -f 41/56/34 65/96/34 36/43/34 -f 42/98/35 66/99/35 54/85/35 -f 67/100/36 68/101/36 69/102/36 -f 65/96/37 63/94/37 70/103/37 -f 64/95/38 53/104/39 71/105/39 -f 65/96/40 72/106/41 73/107/41 -f 54/85/42 66/99/42 71/108/42 -f 37/44/43 36/43/43 73/109/43 -f 54/85/44 74/110/44 75/111/44 -f 37/44/45 76/112/45 77/113/45 -f 55/86/46 75/114/46 78/115/46 -f 59/90/47 58/89/47 79/116/48 -f 58/89/49 56/87/49 77/117/49 -f 57/88/50 78/118/51 80/119/51 -f 61/92/52 59/90/52 81/120/52 -f 60/91/53 80/121/53 82/122/53 -f 61/92/54 83/123/54 52/124/54 -f 63/94/55 62/93/55 82/125/55 -f 84/126/56 85/127/56 86/128/56 -f 87/129/57 88/130/57 89/131/57 -f 90/132/58 91/133/58 69/134/58 -f 87/129/59 85/127/59 84/126/59 -f 90/132/60 92/135/60 93/136/60 -f 94/137/61 84/138/61 95/139/61 -f 96/140/62 97/141/62 93/142/62 -f 98/143/63 95/144/63 99/145/63 -f 100/146/64 96/140/64 101/147/64 -f 102/148/65 99/149/65 103/150/65 -f 100/146/66 104/151/66 105/152/66 -f 106/153/67 103/154/67 107/155/67 -f 108/156/68 105/157/68 109/158/68 -f 110/159/69 107/160/69 68/161/69 -f 111/162/70 112/163/70 89/164/70 -f 111/162/71 113/165/71 109/166/71 -f 84/138/72 86/167/72 95/139/72 -f 95/144/73 86/168/73 99/145/73 -f 99/149/74 86/169/74 103/150/74 -f 103/154/75 86/170/75 107/155/75 -f 85/171/76 89/131/76 86/172/76 -f 107/160/77 86/173/77 68/161/77 -f 68/101/78 86/174/78 69/102/78 -f 69/134/79 86/175/79 92/176/79 -f 92/135/80 86/177/80 93/136/80 -f 93/142/81 86/178/81 101/179/81 -f 101/147/82 86/180/82 104/181/82 -f 104/151/83 86/182/83 105/152/83 -f 105/157/84 86/183/84 109/158/84 -f 109/166/85 86/184/85 112/185/85 -f 112/163/86 86/186/86 89/164/86 -f 77/187/25 113/165/25 111/162/25 -f 79/188/24 111/162/24 88/130/24 -f 75/189/23 110/159/23 67/100/23 -f 76/190/22 108/156/22 113/165/22 -f 74/191/21 106/153/21 110/159/21 -f 73/192/18 100/146/18 108/156/18 -f 71/193/87 102/148/87 106/153/87 -f 72/194/34 96/140/34 100/146/34 -f 53/195/33 98/143/33 102/196/33 -f 70/197/32 97/141/32 96/140/32 -f 52/198/31 94/137/31 98/143/31 -f 82/199/30 90/132/30 97/141/30 -f 83/200/29 87/129/29 94/137/29 -f 80/201/88 91/133/88 90/132/88 -f 81/202/27 88/130/27 87/129/27 -f 80/201/26 78/203/26 67/100/26 -f 49/78/1 1/1/1 3/3/1 -f 34/41/2 4/4/2 6/6/2 -f 1/1/3 7/7/3 2/2/3 -f 4/4/4 9/9/4 5/5/4 -f 7/7/5 11/11/5 8/8/5 -f 9/9/6 13/13/6 10/10/6 -f 11/204/7 15/15/7 12/17/7 -f 13/13/8 17/18/8 14/14/8 -f 15/15/9 19/20/9 16/16/9 -f 17/18/10 21/22/10 18/19/10 -f 19/20/11 23/24/11 20/21/11 -f 28/29/12 25/26/12 27/28/12 -f 21/22/13 28/29/13 22/23/13 -f 23/24/14 29/30/14 24/25/14 -f 19/205/15 31/32/15 23/34/15 -f 27/37/15 26/206/15 3/207/15 -f 3/207/15 2/208/15 8/209/15 -f 8/209/15 12/210/15 16/211/15 -f 16/211/15 20/212/15 24/35/15 -f 24/35/15 30/213/15 10/36/15 -f 6/214/15 5/215/15 10/36/15 -f 10/36/15 14/216/15 18/217/15 -f 18/217/15 22/218/15 10/36/15 -f 27/37/15 3/207/15 8/209/15 -f 8/209/15 16/211/15 24/35/15 -f 30/213/15 6/214/15 10/36/15 -f 10/36/15 22/218/15 27/37/15 -f 27/37/15 8/209/15 24/35/15 -f 50/79/15 33/38/15 28/40/15 -f 29/30/16 34/41/16 30/31/16 -f 39/50/17 35/42/17 37/44/18 -f 39/50/15 38/45/15 17/47/15 -f 40/53/15 31/32/15 15/49/15 -f 35/42/15 39/50/15 13/52/15 -f 42/98/15 40/53/15 11/55/15 -f 9/219/15 41/56/15 13/57/15 -f 44/64/15 42/58/15 7/60/15 -f 45/66/15 41/56/15 4/62/15 -f 1/220/15 43/63/15 7/65/15 -f 48/72/15 45/66/15 34/68/15 -f 49/221/15 46/69/15 1/70/15 -f 29/222/15 47/71/15 34/73/15 -f 33/38/15 46/69/15 25/75/15 -f 32/33/15 47/71/15 23/77/15 -f 25/26/19 49/78/19 26/27/19 -f 38/45/15 50/79/15 21/81/15 -f 64/95/20 51/82/20 53/84/20 -f 31/32/21 40/53/21 55/86/21 -f 38/45/22 39/50/22 56/87/22 -f 32/33/23 31/32/23 57/88/23 -f 33/38/24 50/79/24 59/90/24 -f 58/89/25 50/79/25 56/87/25 -f 47/71/26 32/33/26 60/91/26 -f 46/69/27 33/38/27 61/92/27 -f 48/72/28 47/71/28 62/93/28 -f 43/63/29 46/69/29 51/82/29 -f 45/66/30 48/72/30 63/94/30 -f 44/64/31 43/63/31 64/95/31 -f 41/56/32 45/66/32 65/96/32 -f 42/58/33 44/64/33 66/97/33 -f 35/42/34 41/56/34 36/43/34 -f 40/53/35 42/98/35 54/85/35 -f 91/133/36 67/100/36 69/102/36 -f 72/223/37 65/96/37 70/103/37 -f 66/97/38 64/95/38 71/105/39 -f 36/43/40 65/96/40 73/107/41 -f 74/224/42 54/85/42 71/108/42 -f 76/225/43 37/44/43 73/109/43 -f 55/86/44 54/85/44 75/111/44 -f 56/87/45 37/44/45 77/113/45 -f 57/88/46 55/86/46 78/115/46 -f 81/226/48 59/90/47 79/116/48 -f 79/227/49 58/89/49 77/117/49 -f 60/91/50 57/88/50 80/119/51 -f 83/228/52 61/92/52 81/120/52 -f 62/93/53 60/91/53 82/122/53 -f 51/82/54 61/92/54 52/124/54 -f 70/229/55 63/94/55 82/125/55 -f 85/171/57 87/129/57 89/131/57 -f 92/176/58 90/132/58 69/134/58 -f 94/137/59 87/129/59 84/126/59 -f 97/141/60 90/132/60 93/136/60 -f 98/143/61 94/137/61 95/139/61 -f 101/179/62 96/140/62 93/142/62 -f 102/196/63 98/143/63 99/145/63 -f 104/181/64 100/146/64 101/147/64 -f 106/153/65 102/148/65 103/150/65 -f 108/156/66 100/146/66 105/152/66 -f 110/159/67 106/153/67 107/155/67 -f 113/165/68 108/156/68 109/158/68 -f 67/100/69 110/159/69 68/161/69 -f 88/130/70 111/162/70 89/164/70 -f 112/185/71 111/162/71 109/166/71 -f 79/188/25 77/187/25 111/162/25 -f 81/202/24 79/188/24 88/130/24 -f 78/203/23 75/189/23 67/100/23 -f 77/187/22 76/190/22 113/165/22 -f 75/189/21 74/191/21 110/159/21 -f 76/190/18 73/192/18 108/156/18 -f 74/191/87 71/193/87 106/153/87 -f 73/192/34 72/194/34 100/146/34 -f 71/230/33 53/195/33 102/196/33 -f 72/194/32 70/197/32 96/140/32 -f 53/195/31 52/198/31 98/143/31 -f 70/197/30 82/199/30 97/141/30 -f 52/198/29 83/200/29 94/137/29 -f 82/199/88 80/201/88 90/132/88 -f 83/200/27 81/202/27 87/129/27 -f 91/133/26 80/201/26 67/100/26 diff --git a/src/main/resources/assets/hbm/models/missileMIRV.obj b/src/main/resources/assets/hbm/models/missileMIRV.obj deleted file mode 100644 index f28ac0a44..000000000 --- a/src/main/resources/assets/hbm/models/missileMIRV.obj +++ /dev/null @@ -1,472 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileMIRV.blend' -# www.blender.org -o Cylinder -v -0.097545 2.000000 -0.490393 -v 0.097545 2.000000 -0.490393 -v 0.097545 0.000000 -0.490393 -v 0.277785 2.000000 -0.415735 -v 0.277785 0.000000 -0.415735 -v 0.415735 2.000000 -0.277785 -v 0.415735 0.000000 -0.277785 -v 0.490393 2.000000 -0.097545 -v 0.490393 0.000000 -0.097545 -v 0.490393 2.000000 0.097545 -v 0.490393 -0.000000 0.097545 -v 0.415735 2.000000 0.277785 -v 0.415735 -0.000000 0.277785 -v 0.277785 2.000000 0.415735 -v 0.277785 -0.000000 0.415735 -v 0.097545 2.000000 0.490393 -v 0.097545 -0.000000 0.490393 -v -0.097545 2.000000 0.490393 -v -0.097545 -0.000000 0.490393 -v -0.277785 2.000000 0.415735 -v -0.277785 -0.000000 0.415735 -v -0.415735 2.000000 0.277785 -v -0.415735 -0.000000 0.277785 -v -0.490393 2.000000 0.097545 -v -0.490393 -0.000000 0.097545 -v -0.490393 2.000000 -0.097545 -v -0.490393 0.000000 -0.097545 -v -0.415735 2.000000 -0.277785 -v -0.415735 0.000000 -0.277785 -v 0.367795 3.500000 0.073159 -v 0.311801 3.500000 0.208339 -v -0.277785 2.000000 -0.415735 -v -0.097545 0.000000 -0.490393 -v -0.277785 0.000000 -0.415735 -v -0.367794 3.500000 -0.073159 -v -0.367795 5.000000 -0.073159 -v -0.311801 5.000000 -0.208339 -v -0.208339 3.500000 0.311801 -v -0.311801 3.500000 0.208339 -v -0.208339 3.500000 -0.311801 -v -0.073159 3.500000 -0.367794 -v 0.311801 3.500000 -0.208339 -v 0.073159 3.500000 0.367794 -v -0.311801 3.500000 -0.208339 -v 0.073159 3.500000 -0.367794 -v 0.208339 3.500000 -0.311801 -v 0.208339 3.500000 0.311801 -v -0.367794 3.500000 0.073159 -v 0.367795 3.500000 -0.073159 -v -0.073159 3.500000 0.367795 -v -0.311801 5.000000 0.208339 -v -0.228654 6.000000 0.152782 -v -0.269716 6.000000 0.053650 -v 0.311801 5.000000 0.208339 -v 0.208339 5.000000 0.311801 -v -0.208339 5.000000 -0.311801 -v 0.073159 5.000000 0.367794 -v -0.073159 5.000000 -0.367794 -v 0.073159 5.000000 -0.367794 -v -0.073159 5.000000 0.367795 -v 0.208339 5.000000 -0.311801 -v -0.208339 5.000000 0.311801 -v 0.311801 5.000000 -0.208339 -v 0.367794 5.000000 -0.073159 -v -0.367795 5.000000 0.073159 -v 0.367794 5.000000 0.073159 -v 0.228654 6.000000 -0.152782 -v 0.152782 6.000000 -0.228654 -v 0.000000 7.000000 0.000000 -v 0.269716 6.000000 -0.053650 -v -0.269716 6.000000 -0.053650 -v 0.269716 6.000000 0.053650 -v 0.228654 6.000000 0.152782 -v -0.228654 6.000000 -0.152782 -v 0.152782 6.000000 0.228654 -v -0.053650 6.000000 -0.269716 -v 0.053650 6.000000 -0.269716 -v -0.152782 6.000000 -0.228654 -v 0.053650 6.000000 0.269716 -v -0.053650 6.000000 0.269716 -v -0.152782 6.000000 0.228654 -vt 0.614465 0.355173 -vt 0.582182 0.355174 -vt 0.582181 0.024218 -vt 0.549899 0.355174 -vt 0.549898 0.024218 -vt 0.517616 0.355174 -vt 0.517615 0.024218 -vt 0.485333 0.355174 -vt 0.485331 0.024218 -vt 0.453049 0.355174 -vt 0.453048 0.024218 -vt 0.969580 0.355174 -vt 0.937297 0.355174 -vt 0.937298 0.024218 -vt 0.905014 0.355174 -vt 0.905015 0.024218 -vt 0.872730 0.355174 -vt 0.872732 0.024218 -vt 0.840447 0.355174 -vt 0.840448 0.024218 -vt 0.808164 0.355173 -vt 0.808165 0.024218 -vt 0.775881 0.355173 -vt 0.775881 0.024218 -vt 0.743598 0.355173 -vt 0.743598 0.024218 -vt 0.711315 0.355173 -vt 0.711315 0.024218 -vt 0.679032 0.355173 -vt 0.679031 0.024218 -vt 0.965543 0.604218 -vt 0.941331 0.604218 -vt 0.646748 0.355173 -vt 0.614465 0.024218 -vt 0.646748 0.024218 -vt 0.872257 0.814551 -vt 0.807283 0.717237 -vt 0.904596 0.652263 -vt 0.211315 0.024218 -vt 0.211315 0.272435 -vt 0.187102 0.272435 -vt 0.804128 0.604218 -vt 0.779916 0.604218 -vt 0.642713 0.604218 -vt 0.618501 0.604218 -vt 0.513581 0.604218 -vt 0.868694 0.604218 -vt 0.707279 0.604218 -vt 0.683067 0.604218 -vt 0.578147 0.604218 -vt 0.553935 0.604218 -vt 0.933260 0.604218 -vt 0.909048 0.604218 -vt 0.771845 0.604218 -vt 0.747633 0.604218 -vt 0.481298 0.604218 -vt 0.457086 0.604218 -vt 0.836411 0.604218 -vt 0.812199 0.604218 -vt 0.674996 0.604218 -vt 0.650784 0.604218 -vt 0.545864 0.604218 -vt 0.900977 0.604218 -vt 0.876765 0.604218 -vt 0.610430 0.604218 -vt 0.586218 0.604218 -vt 0.739562 0.604218 -vt 0.715350 0.604218 -vt 0.259740 0.272435 -vt 0.256511 0.438707 -vt 0.238756 0.438707 -vt 0.380801 0.024219 -vt 0.380801 0.272435 -vt 0.356589 0.272435 -vt 0.187103 0.024218 -vt 0.162890 0.272435 -vt 0.356589 0.024219 -vt 0.332377 0.272435 -vt 0.138679 0.024218 -vt 0.138678 0.272435 -vt 0.114465 0.272435 -vt 0.162891 0.024218 -vt 0.332377 0.024219 -vt 0.308164 0.272435 -vt 0.114466 0.024218 -vt 0.090253 0.272434 -vt 0.308165 0.024219 -vt 0.283952 0.272435 -vt 0.090254 0.024218 -vt 0.066041 0.272434 -vt 0.283952 0.024219 -vt 0.066042 0.024218 -vt 0.041828 0.272434 -vt 0.259740 0.024219 -vt 0.235527 0.272435 -vt 0.041829 0.024218 -vt 0.017616 0.272434 -vt 0.235528 0.024219 -vt 0.405014 0.024219 -vt 0.405014 0.272435 -vt 0.069268 0.438705 -vt 0.087024 0.438705 -vt 0.078146 0.610096 -vt 0.038599 0.438707 -vt 0.232299 0.438707 -vt 0.214543 0.438707 -vt 0.401786 0.438707 -vt 0.384030 0.438707 -vt 0.208086 0.438707 -vt 0.190330 0.438707 -vt 0.377573 0.438706 -vt 0.183874 0.438706 -vt 0.353361 0.438707 -vt 0.135449 0.438707 -vt 0.117693 0.438707 -vt 0.159662 0.438707 -vt 0.329149 0.438707 -vt 0.311393 0.438707 -vt 0.111237 0.438707 -vt 0.093481 0.438707 -vt 0.304936 0.438707 -vt 0.287180 0.438707 -vt 0.280723 0.438706 -vt 0.262968 0.438706 -vt 0.062812 0.438707 -vt 0.045056 0.438707 -vt 0.296057 0.610098 -vt 0.320271 0.610099 -vt 0.344483 0.610101 -vt 0.335605 0.438707 -vt 0.368695 0.610095 -vt 0.359817 0.438706 -vt 0.392908 0.610101 -vt 0.102358 0.610101 -vt 0.029721 0.610100 -vt 0.020843 0.438707 -vt 0.053934 0.610099 -vt 0.271846 0.610095 -vt 0.247634 0.610098 -vt 0.223421 0.610099 -vt 0.199207 0.610098 -vt 0.174995 0.610095 -vt 0.166118 0.438706 -vt 0.150783 0.610101 -vt 0.141906 0.438707 -vt 0.126570 0.610099 -vt 0.969581 0.024218 -vt 0.934418 0.664628 -vt 0.957238 0.687463 -vt 0.969581 0.717294 -vt 0.969570 0.749577 -vt 0.957206 0.779398 -vt 0.934370 0.802218 -vt 0.904540 0.814562 -vt 0.842436 0.802186 -vt 0.819616 0.779351 -vt 0.807272 0.749521 -vt 0.819648 0.687416 -vt 0.842483 0.664596 -vt 0.872313 0.652252 -vt 0.489369 0.604218 -vt 0.844482 0.604218 -vt 0.521652 0.604218 -vt 0.017617 0.024218 -vn 0.000000 0.000000 -1.000000 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 0.000000 -0.707100 -vn 0.923900 -0.000000 -0.382700 -vn 1.000000 0.000000 0.000000 -vn 0.923900 -0.000000 0.382700 -vn 0.707100 -0.000000 0.707100 -vn 0.382700 -0.000000 0.923900 -vn 0.000000 -0.000000 1.000000 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 -0.000000 0.707100 -vn -0.923900 -0.000000 0.382700 -vn -1.000000 0.000000 0.000000 -vn -0.923900 0.000000 -0.382700 -vn 0.920800 0.081500 0.381400 -vn -0.382700 0.000000 -0.923900 -vn -0.707100 0.000000 -0.707100 -vn -0.000000 -1.000000 -0.000000 -vn -0.704800 0.081500 0.704800 -vn -0.381400 0.081500 -0.920800 -vn 0.920800 0.081500 -0.381400 -vn 0.000000 0.081500 0.996700 -vn -0.920800 0.081500 -0.381400 -vn 0.381400 0.081500 -0.920800 -vn 0.704800 0.081500 0.704800 -vn -0.920800 0.081500 0.381400 -vn 0.996700 0.081500 0.000000 -vn -0.381400 0.081500 0.920800 -vn -0.704800 0.081500 -0.704800 -vn 0.704800 0.081500 -0.704800 -vn 0.381400 0.081500 0.920800 -vn 0.000000 0.081500 -0.996700 -vn -0.996700 0.081500 0.000000 -vn -0.919500 0.097600 0.380900 -vn 0.682700 0.260400 -0.682700 -vn 0.995200 0.097600 0.000000 -vn -0.995200 0.097600 0.000000 -vn 0.919500 0.097600 0.380900 -vn -0.919500 0.097600 -0.380900 -vn 0.703700 0.097600 0.703700 -vn -0.703700 0.097600 -0.703700 -vn 0.380900 0.097600 0.919500 -vn 0.000000 0.097600 -0.995200 -vn -0.380900 0.097600 -0.919500 -vn 0.000000 0.097600 0.995200 -vn 0.380900 0.097600 -0.919500 -vn -0.380900 0.097600 0.919500 -vn 0.703700 0.097600 -0.703700 -vn -0.703700 0.097600 0.703700 -vn 0.919500 0.097600 -0.380900 -vn -0.369500 0.260400 0.892000 -vn 0.000000 0.260400 0.965500 -vn 0.369500 0.260400 0.892000 -vn 0.682700 0.260400 0.682700 -vn 0.892000 0.260400 0.369500 -vn 0.369500 0.260400 -0.892000 -vn 0.965500 0.260400 0.000000 -vn 0.892000 0.260400 -0.369500 -vn -0.682700 0.260400 0.682700 -vn -0.892000 0.260400 0.369500 -vn -0.965500 0.260400 0.000000 -vn -0.892000 0.260400 -0.369500 -vn -0.682700 0.260400 -0.682700 -vn -0.369500 0.260400 -0.892000 -vn 0.000000 0.260400 -0.965500 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/2/2 4/4/2 5/5/2 -f 4/4/3 6/6/3 7/7/3 -f 6/6/4 8/8/4 9/9/4 -f 8/8/5 10/10/5 11/11/5 -f 10/12/6 12/13/6 13/14/6 -f 12/13/7 14/15/7 15/16/7 -f 14/15/8 16/17/8 17/18/8 -f 16/17/9 18/19/9 19/20/9 -f 18/19/10 20/21/10 21/22/10 -f 20/21/11 22/23/11 23/24/11 -f 22/23/12 24/25/12 25/26/12 -f 24/25/13 26/27/13 27/28/13 -f 26/27/14 28/29/14 29/30/14 -f 10/12/15 30/31/15 31/32/15 -f 32/33/16 1/1/16 33/34/16 -f 28/29/17 32/33/17 34/35/17 -f 15/36/18 23/37/18 34/38/18 -f 35/39/14 36/40/14 37/41/14 -f 20/21/19 38/42/19 39/43/19 -f 32/33/20 40/44/20 41/45/20 -f 8/8/21 6/6/21 42/46/21 -f 18/19/22 16/17/22 43/47/22 -f 26/27/23 35/48/23 44/49/23 -f 2/2/24 45/50/24 46/51/24 -f 12/13/25 31/52/25 47/53/25 -f 22/23/26 39/54/26 48/55/26 -f 8/8/27 49/56/27 30/57/27 -f 18/19/28 50/58/28 38/59/28 -f 28/29/29 44/60/29 40/61/29 -f 6/6/30 4/4/30 46/62/30 -f 14/15/31 47/63/31 43/64/31 -f 1/1/32 41/65/32 45/66/32 -f 24/25/33 48/67/33 35/68/33 -f 51/69/34 52/70/34 53/71/34 -f 31/72/7 54/73/7 55/74/7 -f 44/75/17 37/41/17 56/76/17 -f 47/77/8 55/74/8 57/78/8 -f 41/79/1 58/80/1 59/81/1 -f 40/82/16 56/76/16 58/80/16 -f 43/83/9 57/78/9 60/84/9 -f 45/85/2 59/81/2 61/86/2 -f 50/87/10 60/84/10 62/88/10 -f 46/89/3 61/86/3 63/90/3 -f 38/91/11 62/88/11 51/69/11 -f 42/92/4 63/90/4 64/93/4 -f 39/94/12 51/69/12 65/95/12 -f 49/96/5 64/93/5 66/97/5 -f 48/98/13 65/95/13 36/40/13 -f 30/99/6 66/100/6 54/73/6 -f 67/101/35 68/102/35 69/103/35 -f 66/97/36 64/93/36 70/104/36 -f 65/95/37 53/105/37 71/106/37 -f 66/100/38 72/107/38 73/108/38 -f 36/40/39 71/109/39 74/110/39 -f 55/74/40 54/73/40 73/111/40 -f 56/76/41 37/41/41 74/112/41 -f 57/78/42 55/74/42 75/113/42 -f 58/80/43 76/114/43 77/115/43 -f 58/80/44 56/76/44 78/116/44 -f 57/78/45 79/117/45 80/118/45 -f 59/81/46 77/119/46 68/120/46 -f 60/84/47 80/121/47 81/122/47 -f 61/86/48 68/102/48 67/101/48 -f 62/88/49 81/123/49 52/124/49 -f 63/90/50 67/125/50 70/126/50 -f 80/121/51 69/127/51 81/122/51 -f 79/117/52 69/128/52 80/118/52 -f 75/113/53 69/129/53 79/130/53 -f 73/111/54 69/131/54 75/132/54 -f 72/107/55 69/133/55 73/108/55 -f 77/119/56 69/134/56 68/120/56 -f 70/104/57 69/135/57 72/136/57 -f 67/125/58 69/137/58 70/126/58 -f 81/123/59 69/138/59 52/124/59 -f 52/70/60 69/139/60 53/71/60 -f 53/105/61 69/140/61 71/106/61 -f 71/109/62 69/141/62 74/110/62 -f 74/112/63 69/142/63 78/143/63 -f 78/116/64 69/144/64 76/145/64 -f 76/114/65 69/146/65 77/115/65 -f 33/34/1 1/1/1 3/3/1 -f 3/3/2 2/2/2 5/5/2 -f 5/5/3 4/4/3 7/7/3 -f 7/7/4 6/6/4 9/9/4 -f 9/9/5 8/8/5 11/11/5 -f 11/147/6 10/12/6 13/14/6 -f 13/14/7 12/13/7 15/16/7 -f 15/16/8 14/15/8 17/18/8 -f 17/18/9 16/17/9 19/20/9 -f 19/20/10 18/19/10 21/22/10 -f 21/22/11 20/21/11 23/24/11 -f 23/24/12 22/23/12 25/26/12 -f 25/26/13 24/25/13 27/28/13 -f 27/28/14 26/27/14 29/30/14 -f 12/13/15 10/12/15 31/32/15 -f 34/35/16 32/33/16 33/34/16 -f 29/30/17 28/29/17 34/35/17 -f 34/38/18 33/148/18 3/149/18 -f 3/149/18 5/150/18 34/38/18 -f 7/151/18 9/152/18 15/36/18 -f 11/153/18 13/154/18 15/36/18 -f 15/36/18 17/155/18 23/37/18 -f 19/156/18 21/157/18 23/37/18 -f 23/37/18 25/158/18 27/159/18 -f 27/159/18 29/160/18 23/37/18 -f 34/38/18 5/150/18 7/151/18 -f 9/152/18 11/153/18 15/36/18 -f 17/155/18 19/156/18 23/37/18 -f 23/37/18 29/160/18 34/38/18 -f 34/38/18 7/151/18 15/36/18 -f 44/75/14 35/39/14 37/41/14 -f 22/23/19 20/21/19 39/43/19 -f 1/1/20 32/33/20 41/45/20 -f 49/161/21 8/8/21 42/46/21 -f 50/162/22 18/19/22 43/47/22 -f 28/29/23 26/27/23 44/49/23 -f 4/4/24 2/2/24 46/51/24 -f 14/15/25 12/13/25 47/53/25 -f 24/25/26 22/23/26 48/55/26 -f 10/10/27 8/8/27 30/57/27 -f 20/21/28 18/19/28 38/59/28 -f 32/33/29 28/29/29 40/61/29 -f 42/163/30 6/6/30 46/62/30 -f 16/17/31 14/15/31 43/64/31 -f 2/2/32 1/1/32 45/66/32 -f 26/27/33 24/25/33 35/68/33 -f 65/95/34 51/69/34 53/71/34 -f 47/77/7 31/72/7 55/74/7 -f 40/82/17 44/75/17 56/76/17 -f 43/83/8 47/77/8 57/78/8 -f 45/85/1 41/79/1 59/81/1 -f 41/79/16 40/82/16 58/80/16 -f 50/87/9 43/83/9 60/84/9 -f 46/89/2 45/85/2 61/86/2 -f 38/91/10 50/87/10 62/88/10 -f 42/92/3 46/89/3 63/90/3 -f 39/94/11 38/91/11 51/69/11 -f 49/96/4 42/92/4 64/93/4 -f 48/98/12 39/94/12 65/95/12 -f 30/164/5 49/96/5 66/97/5 -f 35/39/13 48/98/13 36/40/13 -f 31/72/6 30/99/6 54/73/6 -f 72/136/36 66/97/36 70/104/36 -f 36/40/37 65/95/37 71/106/37 -f 54/73/38 66/100/38 73/108/38 -f 37/41/39 36/40/39 74/110/39 -f 75/132/40 55/74/40 73/111/40 -f 78/143/41 56/76/41 74/112/41 -f 79/130/42 57/78/42 75/113/42 -f 59/81/43 58/80/43 77/115/43 -f 76/145/44 58/80/44 78/116/44 -f 60/84/45 57/78/45 80/118/45 -f 61/86/46 59/81/46 68/120/46 -f 62/88/47 60/84/47 81/122/47 -f 63/90/48 61/86/48 67/101/48 -f 51/69/49 62/88/49 52/124/49 -f 64/93/50 63/90/50 70/126/50 diff --git a/src/main/resources/assets/hbm/models/missileTaint.obj b/src/main/resources/assets/hbm/models/missileTaint.obj deleted file mode 100644 index eca5a7b9a..000000000 --- a/src/main/resources/assets/hbm/models/missileTaint.obj +++ /dev/null @@ -1,528 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'missileTaint.blend' -# www.blender.org -o Cylinder -v 0.000000 0.350000 -0.250000 -v -0.000000 4.000000 -0.062500 -v 0.125000 0.350000 -0.216506 -v 0.031250 4.000000 -0.054127 -v 0.216506 0.350000 -0.125000 -v 0.054127 4.000000 -0.031250 -v 0.250000 0.350000 0.000000 -v 0.062500 4.000000 0.000000 -v 0.216506 0.350000 0.125000 -v 0.054127 4.000000 0.031250 -v 0.125000 0.350000 0.216506 -v 0.031250 4.000000 0.054127 -v 0.000000 0.350000 0.250000 -v 0.000000 4.000000 0.062500 -v -0.125000 0.350000 0.216506 -v -0.031250 4.000000 0.054127 -v -0.216506 0.350000 0.125000 -v -0.054127 4.000000 0.031250 -v -0.250000 0.350000 0.000000 -v -0.062500 4.000000 0.000000 -v -0.216506 0.350000 -0.125000 -v -0.054127 4.000000 -0.031250 -v -0.125000 0.350000 -0.216506 -v -0.031250 4.000000 -0.054127 -v 0.000000 2.750000 -0.250000 -v -0.000000 3.250000 -0.225000 -v -0.000000 3.750000 -0.150000 -v 0.075000 3.750000 -0.129904 -v 0.112500 3.250000 -0.194856 -v 0.125000 2.750000 -0.216506 -v 0.129904 3.750000 -0.075000 -v 0.194856 3.250000 -0.112500 -v 0.216506 2.750000 -0.125000 -v 0.150000 3.750000 0.000000 -v 0.225000 3.250000 0.000000 -v 0.250000 2.750000 0.000000 -v 0.129904 3.750000 0.075000 -v 0.194856 3.250000 0.112500 -v 0.216506 2.750000 0.125000 -v 0.075000 3.750000 0.129904 -v 0.112500 3.250000 0.194856 -v 0.125000 2.750000 0.216506 -v 0.000000 3.750000 0.150000 -v 0.000000 3.250000 0.225000 -v 0.000000 2.750000 0.250000 -v -0.075000 3.750000 0.129904 -v -0.112500 3.250000 0.194856 -v -0.125000 2.750000 0.216506 -v -0.129904 3.750000 0.075000 -v -0.194856 3.250000 0.112500 -v -0.216506 2.750000 0.125000 -v -0.150000 3.750000 0.000000 -v -0.225000 3.250000 0.000000 -v -0.250000 2.750000 0.000000 -v -0.129904 3.750000 -0.075000 -v -0.194856 3.250000 -0.112500 -v -0.216506 2.750000 -0.125000 -v -0.075000 3.750000 -0.129904 -v -0.112500 3.250000 -0.194856 -v -0.125000 2.750000 -0.216506 -v -0.000000 0.350000 -0.175000 -v 0.087500 0.350000 -0.151554 -v 0.151554 0.350000 -0.087500 -v 0.175000 0.350000 0.000000 -v 0.151554 0.350000 0.087500 -v 0.087500 0.350000 0.151554 -v 0.000000 0.350000 0.175000 -v -0.087500 0.350000 0.151554 -v -0.151554 0.350000 0.087500 -v -0.175000 0.350000 0.000000 -v -0.151554 0.350000 -0.087500 -v -0.087500 0.350000 -0.151554 -v -0.000000 0.000000 -0.250000 -v 0.125000 0.000000 -0.216506 -v 0.216506 0.000000 -0.125000 -v 0.250000 0.000000 0.000000 -v 0.216506 0.000000 0.125000 -v 0.125000 0.000000 0.216506 -v -0.000000 0.000000 0.250000 -v -0.125000 0.000000 0.216506 -v -0.216506 0.000000 0.125000 -v -0.250000 0.000000 0.000000 -v -0.216507 0.000000 -0.125000 -v -0.125000 0.000000 -0.216506 -v 0.000000 0.650000 -0.250000 -v 0.250000 0.650000 0.000000 -v 0.000000 0.650000 0.250000 -v -0.250000 0.650000 0.000000 -v -0.000000 0.650000 -0.750000 -v 0.750000 0.650000 -0.000000 -v 0.000000 0.650000 0.750000 -v -0.750000 0.650000 0.000000 -v 0.000000 1.150000 -0.250000 -v 0.250000 1.150000 0.000000 -v 0.000000 1.150000 0.250000 -v -0.250000 1.150000 0.000000 -v -0.000000 1.050000 -0.750000 -v 0.750000 1.050000 -0.000000 -v 0.000000 1.050000 0.750000 -v -0.750000 1.050000 0.000000 -vt 0.121181 0.903536 -vt 0.115495 0.969798 -vt 0.107372 0.969798 -vt 0.083002 0.969797 -vt 0.074879 0.969797 -vt 0.069193 0.903536 -vt 0.056196 0.903536 -vt 0.050509 0.969797 -vt 0.042386 0.969797 -vt 0.407930 0.969798 -vt 0.399807 0.969798 -vt 0.394121 0.903536 -vt 0.381124 0.903536 -vt 0.375438 0.969798 -vt 0.367314 0.969798 -vt 0.348631 0.903536 -vt 0.342945 0.969798 -vt 0.334822 0.969798 -vt 0.316138 0.903536 -vt 0.310452 0.969798 -vt 0.302329 0.969798 -vt 0.277959 0.969798 -vt 0.269836 0.969798 -vt 0.264150 0.903536 -vt 0.251153 0.903536 -vt 0.245466 0.969798 -vt 0.237343 0.969798 -vt 0.212973 0.969798 -vt 0.204850 0.969798 -vt 0.199164 0.903536 -vt 0.480519 0.782469 -vt 0.510835 0.774346 -vt 0.506774 0.789504 -vt 0.147988 0.969797 -vt 0.139865 0.969797 -vt 0.134178 0.903535 -vt 0.186167 0.903536 -vt 0.180481 0.969798 -vt 0.172357 0.969798 -vt 0.257652 0.048392 -vt 0.262525 0.030203 -vt 0.285270 0.030203 -vt 0.192666 0.650994 -vt 0.160173 0.650994 -vt 0.160174 0.048392 -vt 0.191041 0.776683 -vt 0.161798 0.776683 -vt 0.166671 0.903536 -vt 0.127680 0.650994 -vt 0.127682 0.048392 -vt 0.158548 0.776682 -vt 0.129305 0.776682 -vt 0.153674 0.903536 -vt 0.225159 0.650994 -vt 0.192667 0.048392 -vt 0.223534 0.776683 -vt 0.194290 0.776683 -vt 0.218660 0.903536 -vt 0.257651 0.650994 -vt 0.225159 0.048392 -vt 0.256027 0.776683 -vt 0.226783 0.776683 -vt 0.231657 0.903536 -vt 0.290144 0.650994 -vt 0.288519 0.776683 -vt 0.259276 0.776683 -vt 0.283645 0.903536 -vt 0.322637 0.650994 -vt 0.290144 0.048392 -vt 0.321012 0.776683 -vt 0.291769 0.776683 -vt 0.296642 0.903536 -vt 0.355129 0.650994 -vt 0.322637 0.048392 -vt 0.353505 0.776683 -vt 0.324261 0.776683 -vt 0.329135 0.903536 -vt 0.387622 0.650994 -vt 0.355129 0.048392 -vt 0.385998 0.776683 -vt 0.356754 0.776683 -vt 0.361628 0.903536 -vt 0.420115 0.650994 -vt 0.387621 0.048392 -vt 0.418490 0.776683 -vt 0.389247 0.776683 -vt 0.413617 0.903536 -vt 0.062695 0.650994 -vt 0.030202 0.650994 -vt 0.030204 0.048392 -vt 0.061070 0.776682 -vt 0.031827 0.776682 -vt 0.036700 0.903536 -vt 0.095188 0.650994 -vt 0.062697 0.048392 -vt 0.093563 0.776683 -vt 0.064319 0.776682 -vt 0.088689 0.903536 -vt 0.095189 0.048392 -vt 0.126056 0.776683 -vt 0.096812 0.776683 -vt 0.101686 0.903536 -vt 0.696232 0.316491 -vt 0.647140 0.241209 -vt 0.675280 0.224963 -vt 0.295018 0.030203 -vt 0.317763 0.030203 -vt 0.327510 0.030203 -vt 0.350255 0.030203 -vt 0.360003 0.030203 -vt 0.382748 0.030203 -vt 0.392495 0.030203 -vt 0.415240 0.030203 -vt 0.132555 0.030203 -vt 0.155300 0.030203 -vt 0.100063 0.030202 -vt 0.122808 0.030203 -vt 0.035078 0.030202 -vt 0.057823 0.030202 -vt 0.165048 0.030203 -vt 0.187793 0.030203 -vt 0.067570 0.030202 -vt 0.090315 0.030202 -vt 0.197540 0.030203 -vt 0.230033 0.030203 -vt 0.675280 0.136191 -vt 0.586508 0.224963 -vt 0.570262 0.164331 -vt 0.766808 0.115239 -vt 0.691526 0.164331 -vt 0.480519 0.191949 -vt 0.480519 0.169205 -vt 0.545858 0.056035 -vt 0.565555 0.044663 -vt 0.614647 0.119945 -vt 0.619521 0.330951 -vt 0.614647 0.241209 -vt 0.781268 0.191949 -vt 0.691526 0.196823 -vt 0.506352 0.095541 -vt 0.586508 0.136191 -vt 0.619521 0.030202 -vt 0.642266 0.030202 -vt 0.647140 0.119945 -vt 0.545858 0.305119 -vt 0.755436 0.265613 -vt 0.715930 0.056035 -vt 0.494979 0.245915 -vt 0.570262 0.196823 -vt 0.606062 0.491790 -vt 0.480519 0.516898 -vt 0.480519 0.391356 -vt 0.606062 0.577303 -vt 0.606061 0.702845 -vt 0.480519 0.677736 -vt 0.792008 0.391356 -vt 0.792008 0.516898 -vt 0.666466 0.491790 -vt 0.792008 0.677736 -vt 0.666466 0.702845 -vt 0.666466 0.577302 -vt 0.499739 0.793565 -vt 0.491616 0.793565 -vt 0.484581 0.789504 -vt 0.480519 0.774346 -vt 0.484581 0.767311 -vt 0.491616 0.763249 -vt 0.499739 0.763249 -vt 0.506774 0.767311 -vt 0.510835 0.782469 -vt 0.420114 0.048392 -vt 0.715930 0.305119 -vt 0.220285 0.030203 -vt 0.252778 0.030203 -vt 0.755436 0.095541 -vt 0.642266 0.330951 -vt 0.781268 0.169205 -vt 0.494980 0.115239 -vt 0.565556 0.316491 -vt 0.766808 0.245915 -vt 0.696232 0.044663 -vt 0.506352 0.265613 -vt 0.606061 0.391356 -vt 0.480519 0.577303 -vt 0.666466 0.391356 -vt 0.792008 0.577303 -vn 0.245200 0.320300 -0.915000 -vn 0.669900 0.320300 -0.669900 -vn 0.915000 0.320300 -0.245200 -vn 0.915000 0.320300 0.245200 -vn 0.669900 0.320300 0.669900 -vn 0.245200 0.320300 0.915000 -vn -0.245200 0.320300 0.915000 -vn -0.669900 0.320300 0.669900 -vn -0.915000 0.320300 0.245200 -vn -0.915000 0.320300 -0.245200 -vn 0.000000 1.000000 0.000000 -vn -0.245200 0.320300 -0.915000 -vn -0.669900 0.320300 -0.669900 -vn 0.000000 -1.000000 -0.000000 -vn -0.707100 0.000000 -0.707100 -vn -0.706300 0.048200 -0.706300 -vn -0.699800 0.143400 -0.699800 -vn -0.258800 0.000000 -0.965900 -vn -0.258500 0.048200 -0.964800 -vn -0.256100 0.143400 -0.955900 -vn -0.965900 0.000000 -0.258800 -vn -0.964800 0.048200 -0.258500 -vn -0.955900 0.143400 -0.256100 -vn -0.965900 0.000000 0.258800 -vn -0.964800 0.048200 0.258500 -vn -0.955900 0.143400 0.256100 -vn -0.707100 0.000000 0.707100 -vn -0.706300 0.048200 0.706300 -vn -0.699800 0.143400 0.699800 -vn -0.258800 0.000000 0.965900 -vn -0.258500 0.048200 0.964800 -vn -0.256100 0.143400 0.955900 -vn 0.258800 0.000000 0.965900 -vn 0.258500 0.048200 0.964800 -vn 0.256100 0.143400 0.955900 -vn 0.707100 0.000000 0.707100 -vn 0.706300 0.048200 0.706300 -vn 0.699800 0.143400 0.699800 -vn 0.965900 0.000000 0.258800 -vn 0.964800 0.048200 0.258500 -vn 0.955900 0.143400 0.256100 -vn 0.965900 0.000000 -0.258800 -vn 0.964800 0.048200 -0.258500 -vn 0.955900 0.143400 -0.256100 -vn 0.707100 0.000000 -0.707100 -vn 0.706300 0.048200 -0.706300 -vn 0.699800 0.143400 -0.699800 -vn 0.258800 0.000000 -0.965900 -vn 0.258500 0.048200 -0.964800 -vn 0.256100 0.143400 -0.955900 -vn -0.253400 0.202700 0.945900 -vn 0.945900 0.202700 0.253400 -vn -0.692400 0.202700 -0.692400 -vn 0.253400 0.202700 -0.945900 -vn -0.692400 0.202700 0.692400 -vn 0.692400 0.202700 0.692400 -vn -0.253400 0.202700 -0.945900 -vn 0.692400 0.202700 -0.692400 -vn -0.945900 0.202700 0.253400 -vn 0.253400 0.202700 0.945900 -vn 0.945900 0.202700 -0.253400 -vn -0.945900 0.202700 -0.253400 -vn 1.000000 0.000000 -0.000000 -vn -0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -s off -f 27/1/1 2/2/1 4/3/1 -f 4/4/2 6/5/2 31/6/2 -f 31/7/3 6/8/3 8/9/3 -f 8/10/4 10/11/4 37/12/4 -f 37/13/5 10/14/5 12/15/5 -f 40/16/6 12/17/6 14/18/6 -f 43/19/7 14/20/7 16/21/7 -f 16/22/8 18/23/8 49/24/8 -f 49/25/9 18/26/9 20/27/9 -f 20/28/10 22/29/10 55/30/10 -f 22/31/11 10/32/11 6/33/11 -f 24/34/12 2/35/12 27/36/12 -f 55/37/13 22/38/13 24/39/13 -f 17/40/14 69/41/14 68/42/14 -f 57/43/15 60/44/15 23/45/15 -f 56/46/16 59/47/16 60/44/16 -f 55/37/17 58/48/17 59/47/17 -f 60/44/18 25/49/18 1/50/18 -f 60/44/19 59/51/19 26/52/19 -f 59/51/20 58/53/20 27/36/20 -f 54/54/21 57/43/21 21/55/21 -f 54/54/22 53/56/22 56/57/22 -f 52/58/23 55/30/23 56/57/23 -f 51/59/24 54/54/24 19/60/24 -f 50/61/25 53/62/25 54/54/25 -f 50/61/26 49/25/26 52/63/26 -f 48/64/27 51/59/27 17/40/27 -f 48/64/28 47/65/28 50/66/28 -f 46/67/29 49/24/29 50/66/29 -f 45/68/30 48/64/30 15/69/30 -f 44/70/31 47/71/31 48/64/31 -f 44/70/32 43/19/32 46/72/32 -f 42/73/33 45/68/33 13/74/33 -f 41/75/34 44/76/34 45/68/34 -f 40/16/35 43/77/35 44/76/35 -f 39/78/36 42/73/36 11/79/36 -f 38/80/37 41/81/37 42/73/37 -f 37/13/38 40/82/38 41/81/38 -f 36/83/39 39/78/39 9/84/39 -f 36/83/40 35/85/40 38/86/40 -f 34/87/41 37/12/41 38/86/41 -f 33/88/42 36/89/42 7/90/42 -f 32/91/43 35/92/43 36/89/43 -f 32/91/44 31/7/44 34/93/44 -f 30/94/45 33/88/45 5/95/45 -f 30/94/46 29/96/46 32/97/46 -f 29/96/47 28/98/47 31/6/47 -f 25/49/48 30/94/48 3/99/48 -f 26/100/49 29/101/49 30/94/49 -f 26/100/50 27/1/50 28/102/50 -f 68/103/51 80/104/51 79/105/51 -f 15/69/14 68/106/14 67/107/14 -f 13/74/14 67/108/14 66/109/14 -f 11/79/14 66/110/14 65/111/14 -f 9/84/14 65/112/14 64/113/14 -f 1/50/14 61/114/14 72/115/14 -f 3/99/14 62/116/14 61/117/14 -f 7/90/14 64/118/14 63/119/14 -f 23/45/14 72/120/14 71/121/14 -f 5/95/14 63/122/14 62/123/14 -f 19/60/14 21/55/14 71/124/14 -f 17/40/14 19/60/14 70/125/14 -f 76/126/14 82/127/14 84/128/14 -f 65/129/52 77/130/52 76/126/52 -f 71/131/53 72/132/53 84/128/53 -f 61/133/54 62/134/54 74/135/54 -f 69/136/55 81/137/55 80/104/55 -f 66/138/56 78/139/56 77/130/56 -f 61/140/57 73/141/57 84/128/57 -f 62/142/58 63/143/58 75/144/58 -f 70/145/59 82/127/59 81/137/59 -f 67/146/60 79/105/60 78/139/60 -f 64/147/61 76/126/61 75/144/61 -f 71/148/62 83/149/62 82/127/62 -f 97/150/63 93/151/63 85/152/63 -f 86/153/64 94/154/64 98/155/64 -f 88/156/65 96/157/65 100/158/65 -f 99/159/66 95/160/66 87/161/66 -f 28/102/1 27/1/1 4/3/1 -f 28/98/2 4/4/2 31/6/2 -f 34/93/3 31/7/3 8/9/3 -f 34/87/4 8/10/4 37/12/4 -f 40/82/5 37/13/5 12/15/5 -f 43/77/6 40/16/6 14/18/6 -f 46/72/7 43/19/7 16/21/7 -f 46/67/8 16/22/8 49/24/8 -f 52/63/9 49/25/9 20/27/9 -f 52/58/10 20/28/10 55/30/10 -f 6/33/11 4/162/11 2/163/11 -f 2/163/11 24/164/11 22/31/11 -f 22/31/11 20/165/11 18/166/11 -f 18/166/11 16/167/11 14/168/11 -f 14/168/11 12/169/11 10/32/11 -f 10/32/11 8/170/11 6/33/11 -f 6/33/11 2/163/11 22/31/11 -f 22/31/11 18/166/11 14/168/11 -f 14/168/11 10/32/11 22/31/11 -f 58/53/12 24/34/12 27/36/12 -f 58/48/13 55/37/13 24/39/13 -f 15/69/14 17/40/14 68/42/14 -f 21/55/15 57/43/15 23/45/15 -f 57/43/16 56/46/16 60/44/16 -f 56/46/17 55/37/17 59/47/17 -f 23/45/18 60/44/18 1/50/18 -f 25/49/19 60/44/19 26/52/19 -f 26/52/20 59/51/20 27/36/20 -f 19/60/21 54/54/21 21/55/21 -f 57/43/22 54/54/22 56/57/22 -f 53/56/23 52/58/23 56/57/23 -f 17/40/24 51/59/24 19/60/24 -f 51/59/25 50/61/25 54/54/25 -f 53/62/26 50/61/26 52/63/26 -f 15/69/27 48/64/27 17/40/27 -f 51/59/28 48/64/28 50/66/28 -f 47/65/29 46/67/29 50/66/29 -f 13/74/30 45/68/30 15/69/30 -f 45/68/31 44/70/31 48/64/31 -f 47/71/32 44/70/32 46/72/32 -f 11/79/33 42/73/33 13/74/33 -f 42/73/34 41/75/34 45/68/34 -f 41/75/35 40/16/35 44/76/35 -f 9/84/36 39/78/36 11/79/36 -f 39/78/37 38/80/37 42/73/37 -f 38/80/38 37/13/38 41/81/38 -f 7/171/39 36/83/39 9/84/39 -f 39/78/40 36/83/40 38/86/40 -f 35/85/41 34/87/41 38/86/41 -f 5/95/42 33/88/42 7/90/42 -f 33/88/43 32/91/43 36/89/43 -f 35/92/44 32/91/44 34/93/44 -f 3/99/45 30/94/45 5/95/45 -f 33/88/46 30/94/46 32/97/46 -f 32/97/47 29/96/47 31/6/47 -f 1/50/48 25/49/48 3/99/48 -f 25/49/49 26/100/49 30/94/49 -f 29/101/50 26/100/50 28/102/50 -f 67/172/51 68/103/51 79/105/51 -f 13/74/14 15/69/14 67/107/14 -f 11/79/14 13/74/14 66/109/14 -f 9/84/14 11/79/14 65/111/14 -f 7/171/14 9/84/14 64/113/14 -f 23/45/14 1/50/14 72/115/14 -f 1/50/14 3/99/14 61/117/14 -f 5/95/14 7/90/14 63/119/14 -f 21/55/14 23/45/14 71/121/14 -f 3/99/14 5/95/14 62/123/14 -f 70/173/14 19/60/14 71/124/14 -f 69/174/14 17/40/14 70/125/14 -f 84/128/14 73/141/14 74/135/14 -f 74/135/14 75/144/14 76/126/14 -f 76/126/14 77/130/14 78/139/14 -f 78/139/14 79/105/14 80/104/14 -f 80/104/14 81/137/14 82/127/14 -f 82/127/14 83/149/14 84/128/14 -f 84/128/14 74/135/14 76/126/14 -f 76/126/14 78/139/14 80/104/14 -f 80/104/14 82/127/14 76/126/14 -f 64/175/52 65/129/52 76/126/52 -f 83/149/53 71/131/53 84/128/53 -f 73/141/54 61/133/54 74/135/54 -f 68/176/55 69/136/55 80/104/55 -f 65/177/56 66/138/56 77/130/56 -f 72/178/57 61/140/57 84/128/57 -f 74/135/58 62/142/58 75/144/58 -f 69/179/59 70/145/59 81/137/59 -f 66/180/60 67/146/60 78/139/60 -f 63/181/61 64/147/61 75/144/61 -f 70/182/62 71/148/62 82/127/62 -f 89/183/63 97/150/63 85/152/63 -f 90/184/64 86/153/64 98/155/64 -f 92/185/65 88/156/65 100/158/65 -f 91/186/66 99/159/66 87/161/66 diff --git a/src/main/resources/assets/hbm/models/missileV2.obj b/src/main/resources/assets/hbm/models/missileV2.obj deleted file mode 100644 index a4c0171f0..000000000 --- a/src/main/resources/assets/hbm/models/missileV2.obj +++ /dev/null @@ -1,599 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileV2.blend' -# www.blender.org -o Cylinder -v -0.416943 1.750000 -0.275969 -v -0.312707 0.250000 -0.206976 -v -0.368110 0.250000 -0.071553 -v 0.414519 1.750000 -0.279596 -v 0.310889 0.250000 -0.209697 -v 0.206976 0.250000 -0.312707 -v -0.275968 1.750000 0.416943 -v -0.414519 1.750000 0.279597 -v -0.310889 0.250000 0.209697 -v 0.099684 1.750000 0.489962 -v 0.074763 0.250000 0.367472 -v 0.209697 0.250000 0.310889 -v -0.279596 1.750000 -0.414519 -v -0.099684 1.750000 -0.489962 -v -0.074763 0.250000 -0.367472 -v 0.095404 1.750000 -0.490814 -v 0.275968 1.750000 -0.416943 -v -0.095404 1.750000 0.490814 -v -0.206976 0.250000 0.312707 -v 0.279597 1.750000 0.414519 -v 0.312707 0.250000 0.206976 -v -0.209697 0.250000 -0.310889 -v 0.489962 1.750000 -0.099684 -v 0.367472 0.250000 -0.074763 -v -0.489962 1.750000 0.099684 -v -0.367472 0.250000 0.074763 -v 0.489962 3.250000 -0.099684 -v 0.490814 3.250000 0.095405 -v 0.157273 -0.000000 0.233167 -v 0.490814 1.750000 0.095405 -v 0.416943 1.750000 0.275968 -v -0.275968 3.250000 0.416943 -v -0.206976 4.250000 0.312707 -v -0.310889 4.250000 0.209697 -v -0.279596 3.250000 -0.414519 -v -0.099684 3.250000 -0.489962 -v 0.095405 3.250000 -0.490814 -v 0.279597 3.250000 0.414519 -v 0.099684 3.250000 0.489962 -v -0.414519 3.250000 0.279597 -v 0.275968 3.250000 -0.416943 -v 0.414519 3.250000 -0.279596 -v -0.490814 1.750000 -0.095405 -v -0.490814 3.250000 -0.095405 -v -0.416943 3.250000 -0.275969 -v 0.416943 3.250000 0.275968 -v -0.489962 3.250000 0.099684 -v -0.095404 3.250000 0.490814 -v 0.074763 4.250000 0.367472 -v -0.071553 4.250000 0.368110 -v 0.312707 4.250000 0.206976 -v 0.209697 4.250000 0.310889 -v 0.367472 4.250000 -0.074763 -v 0.368110 4.250000 0.071553 -v -0.209697 4.250000 -0.310889 -v -0.074763 4.250000 -0.367472 -v 0.206976 4.250000 -0.312707 -v 0.310889 4.250000 -0.209697 -v -0.368110 4.250000 -0.071553 -v -0.312707 4.250000 -0.206976 -v 0.071553 4.250000 -0.368110 -v -0.367472 4.250000 0.074763 -v 0.000000 5.250000 0.000000 -v -0.489962 1.750000 0.051186 -v -0.368110 0.250000 -0.034432 -v 0.071553 0.250000 -0.368110 -v 0.367472 0.250000 -0.038726 -v 0.489962 1.750000 -0.051186 -v 0.038726 0.250000 0.367472 -v 0.051186 1.750000 0.489962 -v 0.368110 0.250000 0.071553 -v -0.071553 0.250000 0.368110 -v 0.056072 -0.000000 0.275604 -v -0.053665 -0.000000 0.276083 -v -0.276083 0.000000 -0.053665 -v -0.056072 0.000000 -0.275604 -v -0.157273 0.000000 -0.233167 -v 0.053665 0.000000 -0.276083 -v -0.155232 -0.000000 0.234530 -v -0.233167 -0.000000 0.157273 -v 0.275604 0.000000 -0.056072 -v 0.233167 0.000000 -0.157273 -v 0.276083 -0.000000 0.053665 -v -0.234530 0.000000 -0.155232 -v 0.155232 0.000000 -0.234530 -v -0.275604 -0.000000 0.056072 -v 0.234530 -0.000000 0.155232 -v -0.051186 1.750000 -0.489962 -v -0.038726 0.250000 -0.367472 -v 0.046358 1.750000 -0.490814 -v -0.040084 0.000000 -0.990064 -v 0.033074 0.000000 -0.990702 -v 0.034432 0.250000 -0.368110 -v -0.367472 0.250000 0.038726 -v -0.490814 1.750000 -0.046358 -v -0.990702 0.000000 -0.033074 -v -0.990064 -0.000000 0.040084 -v -0.046358 1.750000 0.490814 -v -0.033074 -0.000000 0.990703 -v 0.040084 -0.000000 0.990064 -v -0.034432 0.250000 0.368110 -v 0.490814 1.750000 0.046358 -v 0.990064 0.000000 -0.040084 -v 0.990702 -0.000000 0.033074 -v 0.368110 0.250000 0.034432 -vt 0.601459 0.261980 -vt 0.604770 0.057671 -vt 0.624633 0.057671 -vt 0.696990 0.261981 -vt 0.700300 0.057672 -vt 0.720163 0.057672 -vt 0.967508 0.261981 -vt 0.941023 0.261981 -vt 0.944335 0.057671 -vt 0.792523 0.261982 -vt 0.795834 0.057673 -vt 0.815697 0.057673 -vt 0.574975 0.261980 -vt 0.548491 0.261980 -vt 0.551801 0.057671 -vt 0.749959 0.261981 -vt 0.723475 0.261981 -vt 0.726785 0.057672 -vt 0.993992 0.261981 -vt 0.970819 0.057671 -vt 0.819007 0.261982 -vt 0.822318 0.057673 -vt 0.842181 0.057673 -vt 0.578285 0.057671 -vt 0.670506 0.261981 -vt 0.673816 0.057672 -vt 0.914539 0.261980 -vt 0.917851 0.057671 -vt 0.670507 0.465612 -vt 0.644022 0.465612 -vt 0.824801 0.021512 -vt 0.871975 0.261982 -vt 0.845491 0.261982 -vt 0.848802 0.057673 -vt 0.967507 0.465611 -vt 0.964196 0.602381 -vt 0.944333 0.602381 -vt 0.574974 0.465611 -vt 0.548490 0.465611 -vt 0.522006 0.465611 -vt 0.819006 0.465613 -vt 0.792522 0.465613 -vt 0.941023 0.465611 -vt 0.723475 0.465612 -vt 0.696991 0.465612 -vt 0.627943 0.261980 -vt 0.627943 0.465611 -vt 0.601459 0.465611 -vt 0.871975 0.465613 -vt 0.845491 0.465613 -vt 0.766038 0.261982 -vt 0.914538 0.465611 -vt 0.993991 0.465611 -vt 0.749959 0.465612 -vt 0.888054 0.465611 -vt 0.789211 0.602382 -vt 0.769348 0.602382 -vt 0.842180 0.602383 -vt 0.822316 0.602383 -vt 0.667197 0.602382 -vt 0.647334 0.602382 -vt 0.571664 0.602380 -vt 0.551801 0.602380 -vt 0.720165 0.602381 -vt 0.700302 0.602381 -vt 0.624632 0.602381 -vt 0.604769 0.602381 -vt 0.545180 0.602380 -vt 0.525317 0.602381 -vt 0.937711 0.602381 -vt 0.990680 0.602381 -vt 0.970817 0.602381 -vt 0.815695 0.602383 -vt 0.795832 0.602383 -vt 0.868664 0.602383 -vt 0.693681 0.602381 -vt 0.598148 0.602381 -vt 0.746649 0.602382 -vt 0.911227 0.602381 -vt 0.891364 0.602381 -vt 0.858732 0.747027 -vt 0.848801 0.602382 -vt 0.683750 0.747025 -vt 0.673818 0.602381 -vt 0.657266 0.747026 -vt 0.832248 0.747027 -vt 0.710234 0.747024 -vt 0.736718 0.747027 -vt 0.726786 0.602382 -vt 0.535248 0.747025 -vt 0.561732 0.747025 -vt 0.805763 0.747028 -vt 0.779279 0.747026 -vt 0.980747 0.747026 -vt 0.954264 0.747024 -vt 0.927779 0.747025 -vt 0.917848 0.602381 -vt 0.588216 0.747025 -vt 0.578285 0.602381 -vt 0.614700 0.747025 -vt 0.901295 0.747025 -vt 0.422370 0.713895 -vt 0.423581 0.466820 -vt 0.435612 0.713895 -vt 0.251725 0.359662 -vt 0.252936 0.112587 -vt 0.264967 0.359662 -vt 0.424134 0.021510 -vt 0.434067 0.021510 -vt 0.423581 0.112591 -vt 0.505927 0.522061 -vt 0.433513 0.466820 -vt 0.351361 0.522314 -vt 0.424134 0.375743 -vt 0.435613 0.359665 -vt 0.422370 0.359665 -vt 0.433513 0.112591 -vt 0.505927 0.167831 -vt 0.263420 0.021510 -vt 0.262868 0.112587 -vt 0.253488 0.021510 -vt 0.888055 0.261980 -vt 0.891366 0.057671 -vt 0.911230 0.057671 -vt 0.180716 0.168081 -vt 0.335282 0.167827 -vt 0.431033 0.759972 -vt 0.436734 0.746209 -vt 0.489692 0.735675 -vt 0.554284 0.021510 -vt 0.569181 0.021510 -vt 0.525317 0.057671 -vt 0.527800 0.021510 -vt 0.542697 0.021510 -vt 0.990682 0.057672 -vt 0.973302 0.021510 -vt 0.946818 0.021510 -vt 0.961715 0.021510 -vt 0.676299 0.021511 -vt 0.691196 0.021511 -vt 0.647332 0.057671 -vt 0.649814 0.021510 -vt 0.664712 0.021510 -vt 0.607252 0.021510 -vt 0.622150 0.021510 -vt 0.580768 0.021510 -vt 0.595666 0.021510 -vt 0.798317 0.021512 -vt 0.813214 0.021512 -vt 0.769350 0.057671 -vt 0.771832 0.021510 -vt 0.786730 0.021510 -vt 0.729267 0.021511 -vt 0.744165 0.021511 -vt 0.702783 0.021511 -vt 0.717680 0.021511 -vt 0.920334 0.021510 -vt 0.935231 0.021510 -vt 0.893849 0.021510 -vt 0.908747 0.021510 -vt 0.851285 0.021512 -vt 0.866183 0.021512 -vt 0.964198 0.057671 -vt 0.571664 0.057671 -vt 0.746648 0.057672 -vt 0.598149 0.057671 -vt 0.693679 0.057672 -vt 0.937714 0.057671 -vt 0.644022 0.261981 -vt 0.839699 0.021512 -vt 0.868665 0.057673 -vt 0.522006 0.261980 -vt 0.766038 0.465612 -vt 0.351361 0.168085 -vt 0.545180 0.057671 -vt 0.667195 0.057671 -vt 0.789213 0.057671 -vt 0.489692 0.799167 -vt 0.475929 0.804868 -vt 0.500226 0.788633 -vt 0.431033 0.774870 -vt 0.461031 0.804868 -vt 0.447268 0.799167 -vt 0.436734 0.788633 -vt 0.447268 0.735675 -vt 0.475929 0.729974 -vt 0.461032 0.729974 -vt 0.505927 0.774870 -vt 0.505927 0.759972 -vt 0.500226 0.746209 -vt 0.988200 0.021510 -vt 0.262744 0.466032 -vt 0.252812 0.466032 -vt 0.253365 0.374955 -vt 0.264843 0.713106 -vt 0.251601 0.713106 -vt 0.180592 0.521526 -vt 0.335159 0.521272 -vt 0.263297 0.374955 -vt 0.434066 0.375743 -vn -0.922500 -0.081500 -0.377400 -vn 0.701700 -0.081500 -0.707800 -vn -0.701700 -0.081500 0.707800 -vn 0.385400 -0.081500 0.919100 -vn -0.385400 -0.081500 -0.919100 -vn 0.377400 -0.081500 -0.922500 -vn -0.377400 -0.081500 0.922500 -vn 0.707800 -0.081500 0.701700 -vn -0.707800 -0.081500 -0.701700 -vn 0.919100 -0.081500 -0.385400 -vn -0.919100 -0.081500 0.385400 -vn 1.000000 -0.000000 -0.004400 -vn 0.666500 -0.345200 0.660700 -vn 0.922500 -0.081500 0.377400 -vn -0.698800 0.121700 0.704900 -vn -0.386700 0.000000 -0.922200 -vn -0.004400 0.000000 -1.000000 -vn 0.386700 -0.000000 0.922200 -vn -0.704000 -0.000000 0.710200 -vn 0.704000 0.000000 -0.710200 -vn -0.925500 0.000000 -0.378700 -vn 0.925500 -0.000000 0.378700 -vn 0.004400 -0.000000 1.000000 -vn -0.922200 0.000000 0.386700 -vn 0.922200 0.000000 -0.386700 -vn -0.710200 0.000000 -0.704000 -vn 0.710200 -0.000000 0.704000 -vn -0.378700 -0.000000 0.925500 -vn -0.378600 -0.000000 0.925500 -vn 0.378700 0.000000 -0.925500 -vn -1.000000 0.000000 0.004400 -vn 0.004300 0.121700 0.992600 -vn 0.704900 0.121700 0.698800 -vn 0.992600 0.121700 -0.004300 -vn -0.383800 0.121700 -0.915300 -vn 0.698800 0.121700 -0.704900 -vn -0.918700 0.121700 -0.375800 -vn -0.004300 0.121700 -0.992600 -vn -0.915300 0.121700 0.383800 -vn -0.375800 0.121700 0.918700 -vn 0.383800 0.121700 0.915300 -vn 0.918700 0.121700 0.375800 -vn 0.915300 0.121700 -0.383800 -vn -0.704900 0.121700 -0.698800 -vn 0.375800 0.121700 -0.918700 -vn -0.992600 0.121700 0.004300 -vn 0.868700 0.345200 0.355400 -vn 0.865500 0.345200 -0.362900 -vn 0.938500 0.345200 -0.004100 -vn 0.666500 0.345200 0.660700 -vn 0.660700 0.345200 -0.666500 -vn 0.355400 0.345200 -0.868700 -vn -0.004100 0.345200 -0.938500 -vn -0.362900 0.345200 -0.865500 -vn 0.362900 0.345200 0.865500 -vn 0.004100 0.345200 0.938500 -vn -0.355400 0.345200 0.868700 -vn -0.660700 0.345200 0.666500 -vn -0.865500 0.345200 0.362900 -vn -0.666500 0.345200 -0.660700 -vn -0.868700 0.345200 -0.355400 -vn -0.938500 0.345200 0.004100 -vn -0.961500 0.274700 0.008400 -vn 0.961500 0.274700 -0.008400 -vn -0.003200 -0.928000 -0.372600 -vn -0.003300 -0.928000 -0.372600 -vn 0.005300 -0.007900 1.000000 -vn 0.001000 -0.007900 -1.000000 -vn 0.372600 -0.928000 -0.003200 -vn 0.008400 0.274700 0.961500 -vn 1.000000 -0.007900 -0.005300 -vn -0.372600 -0.928000 0.003200 -vn -0.996700 -0.081500 0.004400 -vn -0.996700 -0.081500 0.004300 -vn -0.001000 -0.007900 1.000000 -vn -0.005300 -0.007900 -1.000000 -vn 0.000000 -1.000000 -0.000000 -vn -0.362900 -0.345200 -0.865500 -vn -0.004100 -0.345200 -0.938500 -vn -0.355400 -0.345200 0.868700 -vn -0.355400 -0.345200 0.868600 -vn -0.660700 -0.345200 0.666500 -vn 0.865500 -0.345200 -0.362900 -vn 0.938500 -0.345200 -0.004100 -vn -0.868700 -0.345200 -0.355400 -vn -0.868600 -0.345200 -0.355400 -vn -0.666500 -0.345200 -0.660700 -vn 0.362900 -0.345200 0.865500 -vn 0.004100 -0.345200 0.938500 -vn 0.355400 -0.345200 -0.868700 -vn 0.355400 -0.345200 -0.868600 -vn 0.660700 -0.345200 -0.666500 -vn -0.865500 -0.345200 0.362900 -vn -0.938500 -0.345200 0.004100 -vn 0.868700 -0.345200 0.355400 -vn 0.868600 -0.345200 0.355400 -vn 0.378600 0.000000 -0.925500 -vn -1.000000 -0.007900 -0.001000 -vn -0.004300 -0.081500 -0.996700 -vn -0.004400 -0.081500 -0.996700 -vn 0.996700 -0.081500 -0.004300 -vn 0.996700 -0.081500 -0.004400 -vn 0.004300 -0.081500 0.996700 -vn 0.004400 -0.081500 0.996700 -vn 0.003200 -0.928000 0.372600 -vn -0.008400 0.274700 -0.961500 -vn 1.000000 -0.007900 0.001000 -vn -1.000000 -0.007900 0.005300 -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 8/8/3 9/9/3 -f 10/10/4 11/11/4 12/12/4 -f 13/13/5 14/14/5 15/15/5 -f 16/16/6 17/17/6 6/18/6 -f 18/19/7 7/7/7 19/20/7 -f 20/21/8 12/22/8 21/23/8 -f 1/1/9 13/13/9 22/24/9 -f 4/4/10 23/25/10 24/26/10 -f 8/8/11 25/27/11 26/28/11 -f 23/25/12 27/29/12 28/30/12 -f 21/23/13 12/22/13 29/31/13 -f 30/32/14 31/33/14 21/34/14 -f 32/35/15 33/36/15 34/37/15 -f 13/13/16 35/38/16 36/39/16 -f 14/14/17 36/39/17 37/40/17 -f 20/21/18 38/41/18 39/42/18 -f 7/7/19 32/35/19 40/43/19 -f 17/17/20 41/44/20 42/45/20 -f 43/46/21 44/47/21 45/48/21 -f 30/32/22 28/49/22 46/50/22 -f 18/51/23 10/10/23 39/42/23 -f 8/8/24 40/43/24 47/52/24 -f 4/4/25 42/45/25 27/29/25 -f 1/1/26 45/48/26 35/38/26 -f 20/21/27 31/33/27 46/50/27 -f 18/19/28 48/53/29 32/35/28 -f 16/16/30 37/54/30 41/44/30 -f 25/27/31 47/52/31 44/55/31 -f 39/42/32 49/56/32 50/57/32 -f 46/50/33 51/58/33 52/59/33 -f 27/29/34 53/60/34 54/61/34 -f 35/38/35 55/62/35 56/63/35 -f 41/44/36 57/64/36 58/65/36 -f 44/47/37 59/66/37 60/67/37 -f 36/39/38 56/68/38 61/69/38 -f 47/52/39 40/43/39 34/70/39 -f 48/53/40 50/71/40 33/72/40 -f 38/41/41 52/73/41 49/74/41 -f 46/50/42 28/49/42 54/75/42 -f 27/29/43 42/45/43 58/76/43 -f 35/38/44 45/48/44 60/77/44 -f 41/44/45 37/54/45 61/78/45 -f 47/52/46 62/79/46 59/80/46 -f 54/75/47 63/81/47 51/82/47 -f 58/76/48 63/83/48 53/84/48 -f 53/60/49 63/85/49 54/61/49 -f 52/59/50 51/58/50 63/86/50 -f 57/64/51 63/87/51 58/65/51 -f 61/78/52 63/88/52 57/89/52 -f 56/68/53 63/90/53 61/69/53 -f 55/62/54 63/91/54 56/63/54 -f 52/73/55 63/92/55 49/74/55 -f 49/56/56 63/93/56 50/57/56 -f 50/71/57 63/94/57 33/72/57 -f 33/36/58 63/95/58 34/37/58 -f 34/70/59 63/96/59 62/97/59 -f 60/77/60 63/98/60 55/99/60 -f 59/66/61 63/100/61 60/67/61 -f 62/79/62 63/101/62 59/80/62 -f 95/102/63 96/103/63 64/104/63 -f 102/105/64 104/106/64 68/107/64 -f 101/108/65 69/109/65 99/110/66 -f 94/111/67 64/104/67 97/112/67 -f 65/113/68 96/103/68 95/102/68 -f 97/112/69 96/103/69 65/114/69 -f 70/115/70 98/116/70 100/117/70 -f 70/115/71 100/117/71 69/118/71 -f 69/109/65 100/117/66 99/110/66 -f 67/119/72 103/120/72 105/121/72 -f 43/122/73 3/123/74 26/124/74 -f 105/125/75 104/106/75 102/105/75 -f 67/126/76 68/107/76 103/120/76 -f 73/127/77 74/128/77 75/129/77 -f 15/15/78 76/130/78 77/131/78 -f 66/132/79 78/133/79 76/134/79 -f 72/135/80 19/20/80 79/136/81 -f 9/9/82 80/137/82 79/138/82 -f 24/26/83 81/139/83 82/140/83 -f 71/141/84 83/142/84 81/143/84 -f 2/2/85 84/144/86 75/145/86 -f 22/24/87 77/146/87 84/147/87 -f 11/11/88 73/148/88 29/149/88 -f 72/150/89 74/151/89 73/152/89 -f 6/18/90 85/153/91 78/154/91 -f 5/5/92 82/155/92 85/156/92 -f 26/28/93 86/157/93 80/158/93 -f 3/123/94 75/159/94 86/160/94 -f 21/34/95 87/161/96 83/162/96 -f 43/46/1 1/1/1 3/3/1 -f 17/17/2 4/4/2 6/6/2 -f 19/163/3 7/7/3 9/9/3 -f 20/21/4 10/10/4 12/12/4 -f 22/164/5 13/13/5 15/15/5 -f 66/165/6 16/16/6 6/18/6 -f 72/135/7 18/19/7 19/20/7 -f 31/33/8 20/21/8 21/23/8 -f 2/166/9 1/1/9 22/24/9 -f 5/167/10 4/4/10 24/26/10 -f 9/168/11 8/8/11 26/28/11 -f 30/169/12 23/25/12 28/30/12 -f 87/170/13 21/23/13 29/31/13 -f 71/171/14 30/32/14 21/34/14 -f 40/43/15 32/35/15 34/37/15 -f 14/14/16 13/13/16 36/39/16 -f 16/172/17 14/14/17 37/40/17 -f 10/10/18 20/21/18 39/42/18 -f 8/8/19 7/7/19 40/43/19 -f 4/4/20 17/17/20 42/45/20 -f 1/1/21 43/46/21 45/48/21 -f 31/33/22 30/32/22 46/50/22 -f 48/173/23 18/51/23 39/42/23 -f 25/27/24 8/8/24 47/52/24 -f 23/25/25 4/4/25 27/29/25 -f 13/13/26 1/1/26 35/38/26 -f 38/41/27 20/21/27 46/50/27 -f 7/7/29 18/19/28 32/35/28 -f 17/17/97 16/16/30 41/44/30 -f 43/122/31 25/27/31 44/55/31 -f 48/173/32 39/42/32 50/57/32 -f 38/41/33 46/50/33 52/59/33 -f 28/30/34 27/29/34 54/61/34 -f 36/39/35 35/38/35 56/63/35 -f 42/45/36 41/44/36 58/65/36 -f 45/48/37 44/47/37 60/67/37 -f 37/40/38 36/39/38 61/69/38 -f 62/97/39 47/52/39 34/70/39 -f 32/35/40 48/53/40 33/72/40 -f 39/42/41 38/41/41 49/74/41 -f 51/82/42 46/50/42 54/75/42 -f 53/84/43 27/29/43 58/76/43 -f 55/99/44 35/38/44 60/77/44 -f 57/89/45 41/44/45 61/78/45 -f 44/55/46 47/52/46 59/80/46 -f 96/103/63 97/112/63 64/104/63 -f 104/106/64 103/120/64 68/107/64 -f 101/174/98 99/110/98 98/116/98 -f 66/132/99 15/175/99 14/14/100 -f 24/176/101 23/25/102 30/169/102 -f 11/177/103 10/10/104 18/51/104 -f 98/116/70 99/110/70 100/117/70 -f 103/120/72 104/106/72 105/121/72 -f 85/178/77 82/179/77 78/180/77 -f 29/181/77 81/182/77 83/183/77 -f 87/184/77 29/181/77 83/183/77 -f 73/127/77 81/182/77 29/181/77 -f 79/185/77 86/186/77 74/128/77 -f 79/185/77 80/187/77 86/186/77 -f 15/175/79 66/132/79 76/134/79 -f 76/188/77 75/129/77 77/189/77 -f 78/180/77 81/182/77 73/127/77 -f 78/180/77 82/179/77 81/182/77 -f 74/128/77 86/186/77 75/129/77 -f 75/129/77 76/188/77 73/127/77 -f 76/188/77 78/180/77 73/127/77 -f 22/164/78 15/15/78 77/131/78 -f 75/129/77 84/190/77 77/189/77 -f 74/191/81 72/135/80 79/136/81 -f 19/163/82 9/9/82 79/138/82 -f 5/167/83 24/26/83 82/140/83 -f 24/176/84 71/141/84 81/143/84 -f 3/3/85 2/2/85 75/145/86 -f 2/166/87 22/24/87 84/147/87 -f 12/12/88 11/11/88 29/149/88 -f 11/177/89 72/150/89 73/152/89 -f 66/165/90 6/18/90 78/154/91 -f 6/6/92 5/5/92 85/156/92 -f 9/168/93 26/28/93 80/158/93 -f 26/124/94 3/123/94 86/160/94 -f 71/171/95 21/34/95 83/162/96 -f 91/192/105 92/193/105 93/194/105 -f 92/193/106 91/192/106 88/195/106 -f 90/196/107 93/197/107 92/193/107 -f 89/198/108 88/195/108 91/192/108 -f 89/199/105 91/192/105 93/194/105 -f 90/196/106 92/193/106 88/195/106 -f 94/200/69 97/112/69 65/114/69 -f 25/27/73 43/122/73 26/124/74 -f 16/172/100 66/132/99 14/14/100 -f 71/141/101 24/176/101 30/169/102 -f 72/150/103 11/177/103 18/51/104 diff --git a/src/main/resources/assets/hbm/models/missile_micro.obj b/src/main/resources/assets/hbm/models/missile_micro.obj new file mode 100644 index 000000000..3af3d6293 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_micro.obj @@ -0,0 +1,1023 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_micro.blend' +# www.blender.org +o Circle +v 0.164063 4.750000 -0.284164 +v 0.284165 4.750000 -0.164062 +v 0.328125 4.750000 0.000000 +v 0.284165 4.750000 0.164063 +v 0.164062 4.750000 0.284165 +v -0.000000 4.750000 0.328125 +v -0.164063 4.750000 0.284165 +v -0.284165 4.750000 0.164063 +v -0.328125 4.750000 0.000000 +v -0.284165 4.750000 -0.164062 +v -0.164062 4.750000 -0.284165 +v 0.000000 4.750000 -0.328125 +v 0.000000 0.000000 -0.375000 +v -0.187500 0.000000 -0.324760 +v -0.324760 0.000000 -0.187500 +v -0.375000 0.000000 0.000000 +v -0.324760 0.000000 0.187500 +v -0.187500 0.000000 0.324760 +v -0.000000 0.000000 0.375000 +v 0.187500 0.000000 0.324760 +v 0.324759 0.000000 0.187500 +v 0.375000 0.000000 0.000000 +v 0.324760 0.000000 -0.187500 +v 0.187500 0.000000 -0.324759 +v 0.000000 1.500000 -0.375000 +v -0.187500 1.500000 -0.324760 +v -0.324760 1.500000 -0.187500 +v -0.375000 1.500000 0.000000 +v -0.324760 1.500000 0.187500 +v -0.187500 1.500000 0.324760 +v -0.000000 1.500000 0.375000 +v 0.187500 1.500000 0.324760 +v 0.324759 1.500000 0.187500 +v 0.375000 1.500000 0.000000 +v 0.324760 1.500000 -0.187500 +v 0.187500 1.500000 -0.324759 +v 0.000000 1.500000 -0.312500 +v -0.156250 1.500000 -0.270633 +v -0.270633 1.500000 -0.156250 +v -0.312500 1.500000 0.000000 +v -0.270633 1.500000 0.156250 +v -0.156250 1.500000 0.270633 +v -0.000000 1.500000 0.312500 +v 0.156250 1.500000 0.270633 +v 0.270633 1.500000 0.156250 +v 0.312500 1.500000 0.000000 +v 0.270633 1.500000 -0.156250 +v 0.156250 1.500000 -0.270633 +v 0.000000 1.750000 -0.312500 +v -0.156250 1.750000 -0.270633 +v -0.270633 1.750000 -0.156250 +v -0.312500 1.750000 0.000000 +v -0.270633 1.750000 0.156250 +v -0.156250 1.750000 0.270633 +v -0.000000 1.750000 0.312500 +v 0.156250 1.750000 0.270633 +v 0.270633 1.750000 0.156250 +v 0.312500 1.750000 0.000000 +v 0.270633 1.750000 -0.156250 +v 0.156250 1.750000 -0.270633 +v 0.000000 1.750000 -0.375000 +v -0.187500 1.750000 -0.324760 +v -0.324760 1.750000 -0.187500 +v -0.375000 1.750000 0.000000 +v -0.324760 1.750000 0.187500 +v -0.187500 1.750000 0.324760 +v -0.000000 1.750000 0.375000 +v 0.187500 1.750000 0.324760 +v 0.324759 1.750000 0.187500 +v 0.375000 1.750000 0.000000 +v 0.324760 1.750000 -0.187500 +v 0.187500 1.750000 -0.324759 +v 0.000000 2.500000 -0.375000 +v -0.187500 2.500000 -0.324760 +v -0.324760 2.500000 -0.187500 +v -0.375000 2.500000 0.000000 +v -0.324760 2.500000 0.187500 +v -0.187500 2.500000 0.324760 +v -0.000000 2.500000 0.375000 +v 0.187500 2.500000 0.324760 +v 0.324759 2.500000 0.187500 +v 0.375000 2.500000 0.000000 +v 0.324760 2.500000 -0.187500 +v 0.187500 2.500000 -0.324759 +v 0.000000 2.500000 -0.312500 +v -0.156250 2.500000 -0.270633 +v -0.270633 2.500000 -0.156250 +v -0.312500 2.500000 0.000000 +v -0.270633 2.500000 0.156250 +v -0.156250 2.500000 0.270633 +v -0.000000 2.500000 0.312500 +v 0.156250 2.500000 0.270633 +v 0.270633 2.500000 0.156250 +v 0.312500 2.500000 0.000000 +v 0.270633 2.500000 -0.156250 +v 0.156250 2.500000 -0.270633 +v 0.000000 2.750000 -0.312500 +v -0.156250 2.750000 -0.270633 +v -0.270633 2.750000 -0.156250 +v -0.312500 2.750000 0.000000 +v -0.270633 2.750000 0.156250 +v -0.156250 2.750000 0.270633 +v -0.000000 2.750000 0.312500 +v 0.156250 2.750000 0.270633 +v 0.270633 2.750000 0.156250 +v 0.312500 2.750000 0.000000 +v 0.270633 2.750000 -0.156250 +v 0.156250 2.750000 -0.270633 +v 0.000000 2.750000 -0.375000 +v -0.187500 2.750000 -0.324760 +v -0.324760 2.750000 -0.187500 +v -0.375000 2.750000 0.000000 +v -0.324760 2.750000 0.187500 +v -0.187500 2.750000 0.324760 +v -0.000000 2.750000 0.375000 +v 0.187500 2.750000 0.324760 +v 0.324759 2.750000 0.187500 +v 0.375000 2.750000 0.000000 +v 0.324760 2.750000 -0.187500 +v 0.187500 2.750000 -0.324759 +v 0.000000 3.500000 -0.375000 +v -0.187500 3.500000 -0.324760 +v -0.324760 3.500000 -0.187500 +v -0.375000 3.500000 0.000000 +v -0.324760 3.500000 0.187500 +v -0.187500 3.500000 0.324760 +v -0.000000 3.500000 0.375000 +v 0.187500 3.500000 0.324760 +v 0.324759 3.500000 0.187500 +v 0.375000 3.500000 0.000000 +v 0.324760 3.500000 -0.187500 +v 0.187500 3.500000 -0.324759 +v 0.000000 3.500000 -0.312500 +v -0.156250 3.500000 -0.270633 +v -0.270633 3.500000 -0.156250 +v -0.312500 3.500000 0.000000 +v -0.270633 3.500000 0.156250 +v -0.156250 3.500000 0.270633 +v -0.000000 3.500000 0.312500 +v 0.156250 3.500000 0.270633 +v 0.270633 3.500000 0.156250 +v 0.312500 3.500000 0.000000 +v 0.270633 3.500000 -0.156250 +v 0.156250 3.500000 -0.270633 +v 0.000000 3.750000 -0.312500 +v -0.156250 3.750000 -0.270633 +v -0.270633 3.750000 -0.156250 +v -0.312500 3.750000 0.000000 +v -0.270633 3.750000 0.156250 +v -0.156250 3.750000 0.270633 +v -0.000000 3.750000 0.312500 +v 0.156250 3.750000 0.270633 +v 0.270633 3.750000 0.156250 +v 0.312500 3.750000 0.000000 +v 0.270633 3.750000 -0.156250 +v 0.156250 3.750000 -0.270633 +v 0.000000 3.750000 -0.375000 +v -0.187500 3.750000 -0.324760 +v -0.324760 3.750000 -0.187500 +v -0.375000 3.750000 0.000000 +v -0.324760 3.750000 0.187500 +v -0.187500 3.750000 0.324760 +v -0.000000 3.750000 0.375000 +v 0.187500 3.750000 0.324760 +v 0.324759 3.750000 0.187500 +v 0.375000 3.750000 0.000000 +v 0.324760 3.750000 -0.187500 +v 0.187500 3.750000 -0.324759 +v 0.000000 4.500000 -0.375000 +v -0.187500 4.500000 -0.324760 +v -0.324760 4.500000 -0.187500 +v -0.375000 4.500000 0.000000 +v -0.324760 4.500000 0.187500 +v -0.187500 4.500000 0.324760 +v -0.000000 4.500000 0.375000 +v 0.187500 4.500000 0.324760 +v 0.324759 4.500000 0.187500 +v 0.375000 4.500000 0.000000 +v 0.324760 4.500000 -0.187500 +v 0.187500 4.500000 -0.324759 +v 0.000000 5.000000 0.000000 +v -0.198874 1.531250 -0.154680 +v -0.198874 0.031250 -0.154680 +v -0.154680 1.531250 -0.198874 +v -0.154680 0.031250 -0.198874 +v -0.530330 1.031250 -0.530330 +v -0.530330 0.031250 -0.530330 +v 0.530330 0.031250 0.530330 +v 0.530330 1.031250 0.530330 +v 0.154680 0.031250 0.198874 +v 0.154680 1.531250 0.198874 +v 0.198874 0.031250 0.154680 +v 0.198874 1.531250 0.154680 +v -0.154680 1.531250 0.198874 +v -0.154680 0.031250 0.198874 +v -0.198874 1.531250 0.154680 +v -0.198874 0.031250 0.154680 +v -0.530330 1.031250 0.530330 +v -0.530330 0.031250 0.530330 +v 0.530330 0.031250 -0.530330 +v 0.530330 1.031250 -0.530330 +v 0.198874 0.031250 -0.154680 +v 0.198874 1.531250 -0.154680 +v 0.154680 0.031250 -0.198874 +v 0.154680 1.531250 -0.198874 +v 0.000000 0.000000 -0.250000 +v -0.125000 0.000000 -0.216506 +v -0.216506 0.000000 -0.125000 +v -0.250000 0.000000 0.000000 +v -0.216506 0.000000 0.125000 +v -0.125000 0.000000 0.216506 +v -0.000000 0.000000 0.250000 +v 0.125000 0.000000 0.216506 +v 0.216506 0.000000 0.125000 +v 0.250000 0.000000 0.000000 +v 0.216506 0.000000 -0.125000 +v 0.125000 0.000000 -0.216506 +v -0.000000 0.500000 0.000000 +v 0.334759 2.937500 0.187500 +v 0.385000 2.937500 0.000000 +v 0.334760 2.937500 -0.187500 +v 0.334759 3.312500 0.187500 +v 0.385000 3.312500 0.000000 +v 0.334760 3.312500 -0.187500 +v -0.334760 2.937500 -0.187500 +v -0.385000 2.937500 -0.000000 +v -0.334760 2.937500 0.187500 +v -0.334760 3.312500 -0.187500 +v -0.385000 3.312500 -0.000000 +v -0.334760 3.312500 0.187500 +vt 0.576923 0.354167 +vt 0.634615 0.364583 +vt 0.576923 0.364583 +vt 0.634615 0.354167 +vt 0.692308 0.364583 +vt 0.057692 0.354167 +vt 0.000000 0.364583 +vt 0.000000 0.354167 +vt 0.115385 0.354167 +vt 0.057692 0.364583 +vt 0.173077 0.354167 +vt 0.115385 0.364583 +vt 0.230769 0.354167 +vt 0.173077 0.364583 +vt 0.288462 0.354167 +vt 0.230769 0.364583 +vt 0.346154 0.354167 +vt 0.288462 0.364583 +vt 0.403846 0.364583 +vt 0.346154 0.364583 +vt 0.403846 0.354167 +vt 0.461538 0.364583 +vt 0.519231 0.354167 +vt 0.461538 0.354167 +vt 0.519231 0.364583 +vt 0.519231 0.406250 +vt 0.461538 0.416667 +vt 0.461538 0.406250 +vt 0.576923 0.406250 +vt 0.519231 0.416667 +vt 0.634615 0.406250 +vt 0.576923 0.416667 +vt 0.692308 0.406250 +vt 0.634615 0.416667 +vt 0.057692 0.406250 +vt 0.000000 0.416667 +vt 0.000000 0.406250 +vt 0.115385 0.416667 +vt 0.057692 0.416667 +vt 0.115385 0.406250 +vt 0.173077 0.416667 +vt 0.230769 0.406250 +vt 0.173077 0.406250 +vt 0.288462 0.406250 +vt 0.230769 0.416667 +vt 0.346154 0.416667 +vt 0.288462 0.416667 +vt 0.403846 0.406250 +vt 0.346154 0.406250 +vt 0.403846 0.416667 +vt 0.519231 0.593750 +vt 0.461538 0.604167 +vt 0.461538 0.593750 +vt 0.576923 0.593750 +vt 0.519231 0.604167 +vt 0.634615 0.593750 +vt 0.576923 0.604167 +vt 0.692308 0.593750 +vt 0.634615 0.604167 +vt 0.057692 0.593750 +vt 0.000000 0.604167 +vt 0.000000 0.593750 +vt 0.115385 0.604167 +vt 0.057692 0.604167 +vt 0.115385 0.593750 +vt 0.173077 0.604167 +vt 0.230769 0.593750 +vt 0.173077 0.593750 +vt 0.288462 0.593750 +vt 0.230769 0.604167 +vt 0.346154 0.604167 +vt 0.288462 0.604167 +vt 0.403846 0.593750 +vt 0.346154 0.593750 +vt 0.403846 0.604167 +vt 0.519231 0.781250 +vt 0.461538 0.791667 +vt 0.461538 0.781250 +vt 0.576923 0.781250 +vt 0.519231 0.791667 +vt 0.634615 0.781250 +vt 0.576923 0.791667 +vt 0.692308 0.781250 +vt 0.634615 0.791667 +vt 0.057692 0.781250 +vt 0.000000 0.791667 +vt 0.000000 0.781250 +vt 0.115385 0.791667 +vt 0.057692 0.791667 +vt 0.115385 0.781250 +vt 0.173077 0.791667 +vt 0.230769 0.781250 +vt 0.173077 0.781250 +vt 0.288462 0.781250 +vt 0.230769 0.791667 +vt 0.346154 0.791667 +vt 0.288462 0.791667 +vt 0.403846 0.781250 +vt 0.346154 0.781250 +vt 0.403846 0.791667 +vt 0.519231 0.541667 +vt 0.461538 0.552083 +vt 0.461538 0.541667 +vt 0.576923 0.541667 +vt 0.519231 0.552083 +vt 0.634615 0.552083 +vt 0.576923 0.552083 +vt 0.634615 0.541667 +vt 0.692308 0.552083 +vt 0.057692 0.541667 +vt 0.000000 0.552083 +vt 0.000000 0.541667 +vt 0.115385 0.541667 +vt 0.057692 0.552083 +vt 0.173077 0.541667 +vt 0.115385 0.552083 +vt 0.230769 0.541667 +vt 0.173077 0.552083 +vt 0.288462 0.541667 +vt 0.230769 0.552083 +vt 0.346154 0.541667 +vt 0.288462 0.552083 +vt 0.403846 0.552083 +vt 0.346154 0.552083 +vt 0.403846 0.541667 +vt 0.519231 0.729167 +vt 0.461538 0.739583 +vt 0.461538 0.729167 +vt 0.576923 0.729167 +vt 0.519231 0.739583 +vt 0.634615 0.739583 +vt 0.576923 0.739583 +vt 0.634615 0.729167 +vt 0.692308 0.739583 +vt 0.057692 0.729167 +vt 0.000000 0.739583 +vt 0.000000 0.729167 +vt 0.115385 0.729167 +vt 0.057692 0.739583 +vt 0.173077 0.729167 +vt 0.115385 0.739583 +vt 0.230769 0.729167 +vt 0.173077 0.739583 +vt 0.288462 0.729167 +vt 0.230769 0.739583 +vt 0.346154 0.729167 +vt 0.288462 0.739583 +vt 0.403846 0.739583 +vt 0.346154 0.739583 +vt 0.403846 0.729167 +vt 0.846154 0.000000 +vt 0.692308 0.010417 +vt 0.692308 0.000000 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.692308 0.010417 +vt 0.846154 0.177083 +vt 0.846154 0.010417 +vt 0.846154 0.177083 +vt 0.692308 0.010417 +vt 0.846154 0.010417 +vt 0.692308 0.010417 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.846154 0.000000 +vt 0.692308 0.000000 +vt 0.846154 0.000000 +vt 0.692308 0.010417 +vt 0.692308 0.000000 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.692308 0.010417 +vt 0.846154 0.177083 +vt 0.846154 0.010417 +vt 0.846154 0.177083 +vt 0.692308 0.010417 +vt 0.846154 0.010417 +vt 0.692308 0.010417 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.846154 0.000000 +vt 0.692308 0.000000 +vt 0.346154 0.083333 +vt 0.403846 0.104167 +vt 0.346154 0.104167 +vt 0.403846 0.083333 +vt 0.461538 0.104167 +vt 0.461538 0.083333 +vt 0.519231 0.104167 +vt 0.519231 0.083333 +vt 0.576923 0.104167 +vt 0.615385 0.083333 +vt 0.634615 0.104167 +vt 0.634615 0.083333 +vt 0.692308 0.104167 +vt 0.000000 0.083333 +vt 0.057692 0.104167 +vt 0.000000 0.104167 +vt 0.057692 0.083333 +vt 0.115385 0.104167 +vt 0.115385 0.083333 +vt 0.173077 0.104167 +vt 0.173077 0.083333 +vt 0.230769 0.104167 +vt 0.230769 0.083333 +vt 0.288462 0.104167 +vt 0.288462 0.083333 +vt 0.692308 0.354167 +vt 0.692308 0.416667 +vt 0.692308 0.604167 +vt 0.692308 0.791667 +vt 0.692308 0.541667 +vt 0.692308 0.729167 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.384615 0.083333 +vt 0.442308 0.083333 +vt 0.500000 0.083333 +vt 0.557692 0.083333 +vt 0.576923 0.083333 +vt 0.673077 0.083333 +vt 0.038462 0.083333 +vt 0.096154 0.083333 +vt 0.153846 0.083333 +vt 0.211538 0.083333 +vt 0.269231 0.083333 +vt 0.326923 0.083333 +vt 0.576923 0.916667 +vt 0.000000 0.916667 +vt 0.403846 0.916667 +vt 0.230769 0.916667 +vt 0.634615 0.916667 +vt 0.057692 0.916667 +vt 0.461538 0.916667 +vt 0.288462 0.916667 +vt 0.115385 0.916667 +vt 0.519231 0.916667 +vt 0.346154 0.916667 +vt 0.173077 0.916667 +vt 0.288462 0.958333 +vt 0.115385 0.958333 +vt 0.557692 0.958333 +vt 0.519231 0.958333 +vt 0.346154 0.958333 +vt 0.211538 0.958333 +vt 0.173077 0.958333 +vt 0.576923 0.958333 +vt 0.000000 0.958333 +vt 0.442308 0.958333 +vt 0.403846 0.958333 +vt 0.230769 0.958333 +vt 0.692308 0.916667 +vt 0.634615 0.958333 +vt 0.057692 0.958333 +vt 0.461538 0.958333 +vt 0.038462 0.958333 +vt 0.019231 1.000000 +vt 0.096154 0.958333 +vt 0.076923 1.000000 +vt 0.153846 0.958333 +vt 0.134615 1.000000 +vt 0.192308 1.000000 +vt 0.269231 0.958333 +vt 0.250000 1.000000 +vt 0.326923 0.958333 +vt 0.307692 1.000000 +vt 0.384615 0.958333 +vt 0.365385 1.000000 +vt 0.423077 1.000000 +vt 0.500000 0.958333 +vt 0.480769 1.000000 +vt 0.538462 1.000000 +vt 0.615385 0.958333 +vt 0.596154 1.000000 +vt 0.673077 0.958333 +vt 0.653846 1.000000 +vt 0.019231 0.000000 +vt 0.653846 0.000000 +vt 0.596154 0.000000 +vt 0.538462 0.000000 +vt 0.480769 0.000000 +vt 0.423077 0.000000 +vt 0.365385 0.000000 +vt 0.307692 0.000000 +vt 0.250000 0.000000 +vt 0.192308 0.000000 +vt 0.134615 0.000000 +vt 0.076923 0.000000 +vt 0.846154 0.270833 +vt 0.692308 0.437500 +vt 0.692308 0.270833 +vt 1.000000 0.270833 +vt 0.846154 0.437500 +vt 0.846154 0.270833 +vt 0.692308 0.437500 +vt 0.692308 0.270833 +vt 1.000000 0.270833 +vt 0.846154 0.437500 +vt 1.000000 0.437500 +vt 1.000000 0.437500 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.5000 0.7071 -0.5000 +vn -0.7498 0.0000 0.6616 +vn 0.6616 0.0000 -0.7498 +vn -0.6616 0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.6616 0.0000 0.7498 +vn -0.7498 0.0000 -0.6616 +vn 0.7498 0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn 0.5000 0.7071 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 0.0000 0.8660 +vn 0.0000 0.0000 1.0000 +vn -0.8660 0.0000 0.5000 +vn -1.0000 0.0000 0.0000 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.0000 0.0000 -1.0000 +vn 0.8660 0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.8624 0.0912 -0.4979 +vn 0.0000 0.0912 -0.9958 +vn 0.4979 0.0912 0.8624 +vn -0.8624 0.0912 0.4979 +vn 0.4979 0.0912 -0.8624 +vn -0.4979 0.0912 -0.8624 +vn 0.8624 0.0912 0.4979 +vn -0.4979 0.0912 0.8624 +vn -0.8624 0.0912 -0.4979 +vn 0.9958 0.0912 0.0000 +vn 0.0000 0.0912 0.9958 +vn -0.9958 0.0912 0.0000 +vn -0.4330 0.5000 0.7500 +vn -0.7500 0.5000 -0.4330 +vn 0.7500 0.5000 -0.4330 +vn 0.8660 0.5000 0.0000 +vn -0.0000 0.5000 0.8660 +vn -0.7500 0.5000 0.4330 +vn -0.8660 0.5000 -0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.7500 0.5000 0.4330 +vn 0.4330 0.5000 0.7500 +vn 0.4330 0.5000 -0.7500 +vn -0.4330 0.5000 -0.7500 +vn 0.4472 -0.4472 0.7746 +vn -0.0000 -0.4472 0.8944 +vn -0.4472 -0.4472 0.7746 +vn -0.7746 -0.4472 0.4472 +vn -0.8944 -0.4472 -0.0000 +vn -0.7746 -0.4472 -0.4472 +vn -0.4472 -0.4472 -0.7746 +vn 0.0000 -0.4472 -0.8944 +vn 0.4472 -0.4472 -0.7746 +vn 0.7746 -0.4472 -0.4472 +vn 0.8944 -0.4472 -0.0000 +vn 0.7746 -0.4472 0.4472 +vn 0.9659 0.0000 0.2588 +vn 0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 0.2588 +s off +f 35/1/1 48/2/1 47/3/1 +f 36/4/1 37/5/1 48/2/1 +f 26/6/1 37/7/1 25/8/1 +f 27/9/1 38/10/1 26/6/1 +f 28/11/1 39/12/1 27/9/1 +f 29/13/1 40/14/1 28/11/1 +f 30/15/1 41/16/1 29/13/1 +f 31/17/1 42/18/1 30/15/1 +f 31/17/1 44/19/1 43/20/1 +f 32/21/1 45/22/1 44/19/1 +f 34/23/1 45/22/1 33/24/1 +f 35/1/1 46/25/1 34/23/1 +f 58/26/2 69/27/2 57/28/2 +f 59/29/2 70/30/2 58/26/2 +f 60/31/2 71/32/2 59/29/2 +f 49/33/2 72/34/2 60/31/2 +f 50/35/2 61/36/2 49/37/2 +f 50/35/2 63/38/2 62/39/2 +f 51/40/2 64/41/2 63/38/2 +f 53/42/2 64/41/2 52/43/2 +f 54/44/2 65/45/2 53/42/2 +f 54/44/2 67/46/2 66/47/2 +f 56/48/2 67/46/2 55/49/2 +f 57/28/2 68/50/2 56/48/2 +f 106/51/2 117/52/2 105/53/2 +f 107/54/2 118/55/2 106/51/2 +f 108/56/2 119/57/2 107/54/2 +f 97/58/2 120/59/2 108/56/2 +f 98/60/2 109/61/2 97/62/2 +f 98/60/2 111/63/2 110/64/2 +f 99/65/2 112/66/2 111/63/2 +f 101/67/2 112/66/2 100/68/2 +f 102/69/2 113/70/2 101/67/2 +f 102/69/2 115/71/2 114/72/2 +f 104/73/2 115/71/2 103/74/2 +f 105/53/2 116/75/2 104/73/2 +f 154/76/2 165/77/2 153/78/2 +f 155/79/2 166/80/2 154/76/2 +f 156/81/2 167/82/2 155/79/2 +f 145/83/2 168/84/2 156/81/2 +f 146/85/2 157/86/2 145/87/2 +f 146/85/2 159/88/2 158/89/2 +f 147/90/2 160/91/2 159/88/2 +f 149/92/2 160/91/2 148/93/2 +f 150/94/2 161/95/2 149/92/2 +f 150/94/2 163/96/2 162/97/2 +f 152/98/2 163/96/2 151/99/2 +f 153/78/2 164/100/2 152/98/2 +f 82/101/1 93/102/1 81/103/1 +f 83/104/1 94/105/1 82/101/1 +f 83/104/1 96/106/1 95/107/1 +f 84/108/1 85/109/1 96/106/1 +f 74/110/1 85/111/1 73/112/1 +f 75/113/1 86/114/1 74/110/1 +f 76/115/1 87/116/1 75/113/1 +f 77/117/1 88/118/1 76/115/1 +f 78/119/1 89/120/1 77/117/1 +f 79/121/1 90/122/1 78/119/1 +f 79/121/1 92/123/1 91/124/1 +f 80/125/1 93/102/1 92/123/1 +f 130/126/1 141/127/1 129/128/1 +f 131/129/1 142/130/1 130/126/1 +f 131/129/1 144/131/1 143/132/1 +f 132/133/1 133/134/1 144/131/1 +f 122/135/1 133/136/1 121/137/1 +f 123/138/1 134/139/1 122/135/1 +f 124/140/1 135/141/1 123/138/1 +f 125/142/1 136/143/1 124/140/1 +f 126/144/1 137/145/1 125/142/1 +f 127/146/1 138/147/1 126/144/1 +f 127/146/1 140/148/1 139/149/1 +f 128/150/1 141/127/1 140/148/1 +f 187/151/2 185/152/2 183/153/2 +f 184/154/3 186/155/3 182/156/3 +f 183/157/4 186/158/4 187/159/4 +f 186/158/5 185/152/5 187/159/5 +f 189/160/6 190/161/6 188/162/6 +f 192/163/7 189/160/7 188/162/7 +f 191/164/8 189/165/8 193/166/8 +f 188/167/2 190/161/2 192/168/2 +f 199/169/2 197/170/2 195/171/2 +f 196/172/9 198/173/9 194/174/9 +f 195/175/10 198/176/10 199/177/10 +f 198/176/11 197/170/11 199/177/11 +f 201/178/12 202/179/12 200/180/12 +f 204/181/13 201/178/13 200/180/13 +f 203/182/14 201/183/14 205/184/14 +f 200/185/2 202/179/2 204/186/2 +f 212/187/2 20/188/2 19/189/2 +f 213/190/2 21/191/2 20/188/2 +f 214/192/2 22/193/2 21/191/2 +f 215/194/2 23/195/2 22/193/2 +f 23/195/2 217/196/2 24/197/2 +f 217/198/2 13/199/2 24/197/2 +f 206/200/2 14/201/2 13/202/2 +f 207/203/2 15/204/2 14/201/2 +f 208/205/2 16/206/2 15/204/2 +f 209/207/2 17/208/2 16/206/2 +f 210/209/2 18/210/2 17/208/2 +f 211/211/2 19/189/2 18/210/2 +f 35/1/1 36/4/1 48/2/1 +f 36/4/1 25/212/1 37/5/1 +f 26/6/1 38/10/1 37/7/1 +f 27/9/1 39/12/1 38/10/1 +f 28/11/1 40/14/1 39/12/1 +f 29/13/1 41/16/1 40/14/1 +f 30/15/1 42/18/1 41/16/1 +f 31/17/1 43/20/1 42/18/1 +f 31/17/1 32/21/1 44/19/1 +f 32/21/1 33/24/1 45/22/1 +f 34/23/1 46/25/1 45/22/1 +f 35/1/1 47/3/1 46/25/1 +f 58/26/2 70/30/2 69/27/2 +f 59/29/2 71/32/2 70/30/2 +f 60/31/2 72/34/2 71/32/2 +f 49/33/2 61/213/2 72/34/2 +f 50/35/2 62/39/2 61/36/2 +f 50/35/2 51/40/2 63/38/2 +f 51/40/2 52/43/2 64/41/2 +f 53/42/2 65/45/2 64/41/2 +f 54/44/2 66/47/2 65/45/2 +f 54/44/2 55/49/2 67/46/2 +f 56/48/2 68/50/2 67/46/2 +f 57/28/2 69/27/2 68/50/2 +f 106/51/2 118/55/2 117/52/2 +f 107/54/2 119/57/2 118/55/2 +f 108/56/2 120/59/2 119/57/2 +f 97/58/2 109/214/2 120/59/2 +f 98/60/2 110/64/2 109/61/2 +f 98/60/2 99/65/2 111/63/2 +f 99/65/2 100/68/2 112/66/2 +f 101/67/2 113/70/2 112/66/2 +f 102/69/2 114/72/2 113/70/2 +f 102/69/2 103/74/2 115/71/2 +f 104/73/2 116/75/2 115/71/2 +f 105/53/2 117/52/2 116/75/2 +f 154/76/2 166/80/2 165/77/2 +f 155/79/2 167/82/2 166/80/2 +f 156/81/2 168/84/2 167/82/2 +f 145/83/2 157/215/2 168/84/2 +f 146/85/2 158/89/2 157/86/2 +f 146/85/2 147/90/2 159/88/2 +f 147/90/2 148/93/2 160/91/2 +f 149/92/2 161/95/2 160/91/2 +f 150/94/2 162/97/2 161/95/2 +f 150/94/2 151/99/2 163/96/2 +f 152/98/2 164/100/2 163/96/2 +f 153/78/2 165/77/2 164/100/2 +f 82/101/1 94/105/1 93/102/1 +f 83/104/1 95/107/1 94/105/1 +f 83/104/1 84/108/1 96/106/1 +f 84/108/1 73/216/1 85/109/1 +f 74/110/1 86/114/1 85/111/1 +f 75/113/1 87/116/1 86/114/1 +f 76/115/1 88/118/1 87/116/1 +f 77/117/1 89/120/1 88/118/1 +f 78/119/1 90/122/1 89/120/1 +f 79/121/1 91/124/1 90/122/1 +f 79/121/1 80/125/1 92/123/1 +f 80/125/1 81/103/1 93/102/1 +f 130/126/1 142/130/1 141/127/1 +f 131/129/1 143/132/1 142/130/1 +f 131/129/1 132/133/1 144/131/1 +f 132/133/1 121/217/1 133/134/1 +f 122/135/1 134/139/1 133/136/1 +f 123/138/1 135/141/1 134/139/1 +f 124/140/1 136/143/1 135/141/1 +f 125/142/1 137/145/1 136/143/1 +f 126/144/1 138/147/1 137/145/1 +f 127/146/1 139/149/1 138/147/1 +f 127/146/1 128/150/1 140/148/1 +f 128/150/1 129/128/1 141/127/1 +f 183/157/4 182/218/4 186/158/4 +f 186/158/5 184/154/5 185/152/5 +f 189/160/6 191/164/6 190/161/6 +f 192/163/7 193/219/7 189/160/7 +f 195/175/10 194/220/10 198/176/10 +f 198/176/11 196/172/11 197/170/11 +f 201/178/12 203/182/12 202/179/12 +f 204/181/13 205/221/13 201/178/13 +f 212/187/2 213/222/2 20/188/2 +f 213/190/2 214/223/2 21/191/2 +f 214/192/2 215/224/2 22/193/2 +f 215/194/2 216/225/2 23/195/2 +f 23/195/2 216/226/2 217/196/2 +f 217/198/2 206/227/2 13/199/2 +f 206/200/2 207/228/2 14/201/2 +f 207/203/2 208/229/2 15/204/2 +f 208/205/2 209/230/2 16/206/2 +f 209/207/2 210/231/2 17/208/2 +f 210/209/2 211/232/2 18/210/2 +f 211/211/2 212/233/2 19/189/2 +s 1 +f 23/195/15 34/23/16 22/193/16 +f 20/188/17 31/17/18 19/189/18 +f 17/208/19 28/11/20 16/206/20 +f 24/197/21 35/1/15 23/195/15 +f 14/201/22 25/8/23 13/202/23 +f 21/191/24 32/21/17 20/188/17 +f 18/210/25 29/13/19 17/208/19 +f 13/199/23 36/4/21 24/197/21 +f 15/204/26 26/6/22 14/201/22 +f 22/193/16 33/24/24 21/191/24 +f 19/189/18 30/15/25 18/210/25 +f 16/206/20 27/9/26 15/204/26 +f 45/22/24 56/48/17 44/19/17 +f 42/18/25 53/42/19 41/16/19 +f 37/5/23 60/31/21 48/2/21 +f 39/12/26 50/35/22 38/10/22 +f 46/25/16 57/28/24 45/22/24 +f 43/20/18 54/44/25 42/18/25 +f 40/14/20 51/40/26 39/12/26 +f 47/3/15 58/26/16 46/25/16 +f 44/19/17 55/49/18 43/20/18 +f 41/16/19 52/43/20 40/14/20 +f 48/2/21 59/29/15 47/3/15 +f 38/10/22 49/37/23 37/7/23 +f 72/34/21 83/104/15 71/32/15 +f 62/39/22 73/112/23 61/36/23 +f 69/27/24 80/125/17 68/50/17 +f 66/47/25 77/117/19 65/45/19 +f 61/213/23 84/108/21 72/34/21 +f 63/38/26 74/110/22 62/39/22 +f 70/30/16 81/103/24 69/27/24 +f 67/46/18 78/119/25 66/47/25 +f 64/41/20 75/113/26 63/38/26 +f 71/32/15 82/101/16 70/30/16 +f 68/50/17 79/121/18 67/46/18 +f 65/45/19 76/115/20 64/41/20 +f 93/102/24 104/73/17 92/123/17 +f 90/122/25 101/67/19 89/120/19 +f 85/109/23 108/56/21 96/106/21 +f 87/116/26 98/60/22 86/114/22 +f 94/105/16 105/53/24 93/102/24 +f 91/124/18 102/69/25 90/122/25 +f 88/118/20 99/65/26 87/116/26 +f 95/107/15 106/51/16 94/105/16 +f 92/123/17 103/74/18 91/124/18 +f 89/120/19 100/68/20 88/118/20 +f 96/106/21 107/54/15 95/107/15 +f 86/114/22 97/62/23 85/111/23 +f 120/59/21 131/129/15 119/57/15 +f 110/64/22 121/137/23 109/61/23 +f 117/52/24 128/150/17 116/75/17 +f 114/72/25 125/142/19 113/70/19 +f 109/214/23 132/133/21 120/59/21 +f 111/63/26 122/135/22 110/64/22 +f 118/55/16 129/128/24 117/52/24 +f 115/71/18 126/144/25 114/72/25 +f 112/66/20 123/138/26 111/63/26 +f 119/57/15 130/126/16 118/55/16 +f 116/75/17 127/146/18 115/71/18 +f 113/70/19 124/140/20 112/66/20 +f 141/127/24 152/98/17 140/148/17 +f 138/147/25 149/92/19 137/145/19 +f 133/134/23 156/81/21 144/131/21 +f 135/141/26 146/85/22 134/139/22 +f 142/130/16 153/78/24 141/127/24 +f 139/149/18 150/94/25 138/147/25 +f 136/143/20 147/90/26 135/141/26 +f 143/132/15 154/76/16 142/130/16 +f 140/148/17 151/99/18 139/149/18 +f 137/145/19 148/93/20 136/143/20 +f 144/131/21 155/79/15 143/132/15 +f 134/139/22 145/87/23 133/136/23 +f 168/84/21 179/234/27 167/82/15 +f 158/89/22 169/235/28 157/86/23 +f 165/77/24 176/236/29 164/100/17 +f 162/97/25 173/237/30 161/95/19 +f 157/215/23 180/238/31 168/84/21 +f 159/88/26 170/239/32 158/89/22 +f 166/80/16 177/240/33 165/77/24 +f 163/96/18 174/241/34 162/97/25 +f 160/91/20 171/242/35 159/88/26 +f 167/82/15 178/243/36 166/80/16 +f 164/100/17 175/244/37 163/96/18 +f 161/95/19 172/245/38 160/91/20 +f 175/244/37 7/246/39 174/241/34 +f 172/245/38 10/247/40 171/242/35 +f 178/243/36 2/248/41 3/249/42 +f 176/236/29 6/250/43 175/244/37 +f 172/245/38 8/251/44 9/252/45 +f 180/238/31 2/253/41 179/234/27 +f 170/239/32 12/254/46 169/235/28 +f 176/236/29 4/255/47 5/256/48 +f 174/241/34 8/257/44 173/237/30 +f 169/258/28 1/259/49 180/238/31 +f 171/242/35 11/260/50 170/239/32 +f 178/243/36 4/261/47 177/240/33 +f 12/254/46 11/262/50 181/263/1 +f 11/260/50 10/264/40 181/265/1 +f 10/247/40 9/266/45 181/267/1 +f 9/252/45 8/251/44 181/268/1 +f 8/257/44 7/269/39 181/270/1 +f 7/246/39 6/271/43 181/272/1 +f 6/250/43 5/273/48 181/274/1 +f 5/256/48 4/255/47 181/275/1 +f 4/261/47 3/276/42 181/277/1 +f 3/249/42 2/248/41 181/278/1 +f 2/253/41 1/279/49 181/280/1 +f 1/259/49 12/281/46 181/282/1 +f 207/228/51 206/200/52 218/283/2 +f 206/227/52 217/198/53 218/284/2 +f 217/196/53 216/226/54 218/285/2 +f 216/225/54 215/194/55 218/286/2 +f 215/224/55 214/192/56 218/287/2 +f 214/223/56 213/190/57 218/288/2 +f 213/222/57 212/187/58 218/289/2 +f 212/233/58 211/211/59 218/290/2 +f 211/232/59 210/209/60 218/291/2 +f 210/231/60 209/207/61 218/292/2 +f 209/230/61 208/205/62 218/293/2 +f 208/229/62 207/203/51 218/294/2 +f 220/295/16 222/296/63 219/297/63 +f 221/298/64 223/299/16 220/295/16 +f 226/300/20 228/301/65 225/302/65 +f 227/303/66 229/304/20 226/300/20 +f 23/195/15 35/1/15 34/23/16 +f 20/188/17 32/21/17 31/17/18 +f 17/208/19 29/13/19 28/11/20 +f 24/197/21 36/4/21 35/1/15 +f 14/201/22 26/6/22 25/8/23 +f 21/191/24 33/24/24 32/21/17 +f 18/210/25 30/15/25 29/13/19 +f 13/199/23 25/212/23 36/4/21 +f 15/204/26 27/9/26 26/6/22 +f 22/193/16 34/23/16 33/24/24 +f 19/189/18 31/17/18 30/15/25 +f 16/206/20 28/11/20 27/9/26 +f 45/22/24 57/28/24 56/48/17 +f 42/18/25 54/44/25 53/42/19 +f 37/5/23 49/33/23 60/31/21 +f 39/12/26 51/40/26 50/35/22 +f 46/25/16 58/26/16 57/28/24 +f 43/20/18 55/49/18 54/44/25 +f 40/14/20 52/43/20 51/40/26 +f 47/3/15 59/29/15 58/26/16 +f 44/19/17 56/48/17 55/49/18 +f 41/16/19 53/42/19 52/43/20 +f 48/2/21 60/31/21 59/29/15 +f 38/10/22 50/35/22 49/37/23 +f 72/34/21 84/108/21 83/104/15 +f 62/39/22 74/110/22 73/112/23 +f 69/27/24 81/103/24 80/125/17 +f 66/47/25 78/119/25 77/117/19 +f 61/213/23 73/216/23 84/108/21 +f 63/38/26 75/113/26 74/110/22 +f 70/30/16 82/101/16 81/103/24 +f 67/46/18 79/121/18 78/119/25 +f 64/41/20 76/115/20 75/113/26 +f 71/32/15 83/104/15 82/101/16 +f 68/50/17 80/125/17 79/121/18 +f 65/45/19 77/117/19 76/115/20 +f 93/102/24 105/53/24 104/73/17 +f 90/122/25 102/69/25 101/67/19 +f 85/109/23 97/58/23 108/56/21 +f 87/116/26 99/65/26 98/60/22 +f 94/105/16 106/51/16 105/53/24 +f 91/124/18 103/74/18 102/69/25 +f 88/118/20 100/68/20 99/65/26 +f 95/107/15 107/54/15 106/51/16 +f 92/123/17 104/73/17 103/74/18 +f 89/120/19 101/67/19 100/68/20 +f 96/106/21 108/56/21 107/54/15 +f 86/114/22 98/60/22 97/62/23 +f 120/59/21 132/133/21 131/129/15 +f 110/64/22 122/135/22 121/137/23 +f 117/52/24 129/128/24 128/150/17 +f 114/72/25 126/144/25 125/142/19 +f 109/214/23 121/217/23 132/133/21 +f 111/63/26 123/138/26 122/135/22 +f 118/55/16 130/126/16 129/128/24 +f 115/71/18 127/146/18 126/144/25 +f 112/66/20 124/140/20 123/138/26 +f 119/57/15 131/129/15 130/126/16 +f 116/75/17 128/150/17 127/146/18 +f 113/70/19 125/142/19 124/140/20 +f 141/127/24 153/78/24 152/98/17 +f 138/147/25 150/94/25 149/92/19 +f 133/134/23 145/83/23 156/81/21 +f 135/141/26 147/90/26 146/85/22 +f 142/130/16 154/76/16 153/78/24 +f 139/149/18 151/99/18 150/94/25 +f 136/143/20 148/93/20 147/90/26 +f 143/132/15 155/79/15 154/76/16 +f 140/148/17 152/98/17 151/99/18 +f 137/145/19 149/92/19 148/93/20 +f 144/131/21 156/81/21 155/79/15 +f 134/139/22 146/85/22 145/87/23 +f 168/84/21 180/238/31 179/234/27 +f 158/89/22 170/239/32 169/235/28 +f 165/77/24 177/240/33 176/236/29 +f 162/97/25 174/241/34 173/237/30 +f 157/215/23 169/258/28 180/238/31 +f 159/88/26 171/242/35 170/239/32 +f 166/80/16 178/243/36 177/240/33 +f 163/96/18 175/244/37 174/241/34 +f 160/91/20 172/245/38 171/242/35 +f 167/82/15 179/234/27 178/243/36 +f 164/100/17 176/236/29 175/244/37 +f 161/95/19 173/237/30 172/245/38 +f 175/244/37 6/271/43 7/246/39 +f 172/245/38 9/266/45 10/247/40 +f 178/243/36 179/234/27 2/248/41 +f 176/236/29 5/273/48 6/250/43 +f 172/245/38 173/237/30 8/251/44 +f 180/238/31 1/279/49 2/253/41 +f 170/239/32 11/262/50 12/254/46 +f 176/236/29 177/240/33 4/255/47 +f 174/241/34 7/269/39 8/257/44 +f 169/258/28 12/281/46 1/259/49 +f 171/242/35 10/264/40 11/260/50 +f 178/243/36 3/276/42 4/261/47 +f 220/295/16 223/299/16 222/296/63 +f 221/298/64 224/305/64 223/299/16 +f 226/300/20 229/304/20 228/301/65 +f 227/303/66 230/306/66 229/304/20 diff --git a/src/main/resources/assets/hbm/models/mush.hmf b/src/main/resources/assets/hbm/models/mush.hmf deleted file mode 100644 index f68b80d1e..000000000 --- a/src/main/resources/assets/hbm/models/mush.hmf +++ /dev/null @@ -1,2093 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'mush.blend' -# www.blender.org -o Cylinder -v -0.000000 0.000000 -2.999999 -v -0.000000 4.000000 -2.000000 -v 0.585271 0.000000 -2.942355 -v 0.390181 4.000000 -1.961570 -v 1.148050 0.000000 -2.771638 -v 0.765367 4.000000 -1.847759 -v 1.666710 0.000000 -2.494408 -v 1.111140 4.000000 -1.662939 -v 2.121320 0.000000 -2.121320 -v 1.414213 4.000000 -1.414213 -v 2.494409 0.000000 -1.666710 -v 1.662939 4.000000 -1.111140 -v 2.771638 0.000000 -1.148050 -v 1.847759 4.000000 -0.765367 -v 2.942355 0.000000 -0.585271 -v 1.961570 4.000000 -0.390180 -v 3.000000 0.000000 0.000000 -v 2.000000 4.000000 0.000000 -v 2.942356 0.000000 0.585271 -v 1.961571 4.000000 0.390181 -v 2.771638 0.000000 1.148051 -v 1.847759 4.000000 0.765367 -v 2.494409 0.000000 1.666711 -v 1.662939 4.000000 1.111141 -v 2.121320 0.000000 2.121321 -v 1.414213 4.000000 1.414214 -v 1.666710 0.000000 2.494410 -v 1.111140 4.000000 1.662940 -v 1.148050 0.000000 2.771640 -v 0.765366 4.000000 1.847760 -v 0.585270 0.000000 2.942357 -v 0.390180 4.000000 1.961571 -v -0.000001 0.000000 3.000000 -v -0.000001 4.000000 2.000000 -v -0.585272 0.000000 2.942356 -v -0.390182 4.000000 1.961571 -v -1.148052 0.000000 2.771639 -v -0.765368 4.000000 1.847759 -v -1.666712 0.000000 2.494409 -v -1.111142 4.000000 1.662939 -v -2.121322 0.000000 2.121320 -v -1.414215 4.000000 1.414213 -v -2.494411 0.000000 1.666710 -v -1.662940 4.000000 1.111140 -v -2.771640 0.000000 1.148049 -v -1.847760 4.000000 0.765366 -v -2.942357 0.000000 0.585269 -v -1.961571 4.000000 0.390179 -v -3.000000 0.000000 -0.000002 -v -2.000000 4.000000 -0.000002 -v -2.942356 0.000000 -0.585274 -v -1.961570 4.000000 -0.390182 -v -2.771638 0.000000 -1.148053 -v -1.847758 4.000000 -0.765369 -v -2.494407 0.000000 -1.666713 -v -1.662938 4.000000 -1.111142 -v -2.121318 0.000000 -2.121322 -v -1.414212 4.000000 -1.414215 -v -1.666708 0.000000 -2.494411 -v -1.111138 4.000000 -1.662940 -v -1.148046 0.000000 -2.771640 -v -0.765364 4.000000 -1.847760 -v -0.585267 0.000000 -2.942356 -v -0.390178 4.000000 -1.961571 -v 0.292634 9.000000 -1.471178 -v -0.000001 9.000000 -1.500000 -v 0.574024 9.000000 -1.385819 -v 0.833354 9.000000 -1.247204 -v 1.060659 9.000000 -1.060660 -v 1.247203 9.000000 -0.833355 -v 1.385818 9.000000 -0.574025 -v 1.471177 9.000000 -0.292635 -v 1.499999 9.000000 0.000000 -v 1.471177 9.000000 0.292635 -v 1.385818 9.000000 0.574025 -v 1.247203 9.000000 0.833355 -v 1.060659 9.000000 1.060660 -v 0.833354 9.000000 1.247205 -v 0.574024 9.000000 1.385820 -v 0.292634 9.000000 1.471178 -v -0.000002 9.000000 1.500000 -v -0.292637 9.000000 1.471178 -v -0.574027 9.000000 1.385819 -v -0.833357 9.000000 1.247204 -v -1.060662 9.000000 1.060660 -v -1.247206 9.000000 0.833355 -v -1.385821 9.000000 0.574024 -v -1.471179 9.000000 0.292634 -v -1.500001 9.000000 -0.000001 -v -1.471179 9.000000 -0.292637 -v -1.385820 9.000000 -0.574027 -v -1.247205 9.000000 -0.833357 -v -1.060660 9.000000 -1.060661 -v -0.833355 9.000000 -1.247205 -v -0.574024 9.000000 -1.385820 -v -0.292635 9.000000 -1.471178 -v 0.243864 22.000000 -1.225981 -v 0.000001 22.000000 -1.250000 -v 0.478355 22.000000 -1.154849 -v 0.694464 22.000000 -1.039337 -v 0.883885 22.000000 -0.883883 -v 1.039338 22.000000 -0.694463 -v 1.154850 22.000000 -0.478354 -v 1.225983 22.000000 -0.243863 -v 1.250001 22.000000 -0.000000 -v 1.225983 22.000000 0.243863 -v 1.154851 22.000000 0.478354 -v 1.039338 22.000000 0.694463 -v 0.883885 22.000000 0.883884 -v 0.694464 22.000000 1.039337 -v 0.478355 22.000000 1.154850 -v 0.243864 22.000000 1.225982 -v 0.000001 22.000000 1.250000 -v -0.243862 22.000000 1.225982 -v -0.478354 22.000000 1.154849 -v -0.694462 22.000000 1.039337 -v -0.883883 22.000000 0.883883 -v -1.039336 22.000000 0.694462 -v -1.154849 22.000000 0.478353 -v -1.225981 22.000000 0.243862 -v -1.249999 22.000000 -0.000001 -v -1.225980 22.000000 -0.243864 -v -1.154848 22.000000 -0.478356 -v -1.039335 22.000000 -0.694464 -v -0.883881 22.000000 -0.883884 -v -0.694460 22.000000 -1.039338 -v -0.478351 22.000000 -1.154850 -v -0.243860 22.000000 -1.225982 -v 0.390184 20.000000 -1.961570 -v 0.000004 20.000000 -2.000000 -v 0.765370 20.000000 -1.847759 -v 1.111144 20.000000 -1.662939 -v 1.414217 20.000000 -1.414213 -v 1.662943 20.000000 -1.111140 -v 1.847763 20.000000 -0.765367 -v 1.961574 20.000000 -0.390180 -v 2.000004 20.000000 0.000000 -v 1.961574 20.000000 0.390181 -v 1.847763 20.000000 0.765367 -v 1.662943 20.000000 1.111141 -v 1.414217 20.000000 1.414214 -v 1.111144 20.000000 1.662940 -v 0.765370 20.000000 1.847760 -v 0.390184 20.000000 1.961571 -v 0.000003 20.000000 2.000000 -v -0.390178 20.000000 1.961571 -v -0.765364 20.000000 1.847759 -v -1.111138 20.000000 1.662939 -v -1.414211 20.000000 1.414213 -v -1.662936 20.000000 1.111140 -v -1.847756 20.000000 0.765366 -v -1.961567 20.000000 0.390179 -v -1.999996 20.000000 -0.000002 -v -1.961566 20.000000 -0.390182 -v -1.847754 20.000000 -0.765369 -v -1.662934 20.000000 -1.111142 -v -1.414208 20.000000 -1.414215 -v -1.111135 20.000000 -1.662941 -v -0.765361 20.000000 -1.847760 -v -0.390174 20.000000 -1.961571 -v 0.546257 20.000000 -2.746198 -v 0.000004 20.000000 -2.799999 -v 1.071518 20.000000 -2.586862 -v 1.555601 20.000000 -2.328114 -v 1.979903 20.000000 -1.979898 -v 2.328119 20.000000 -1.555596 -v 2.586867 20.000000 -1.071513 -v 2.746203 20.000000 -0.546253 -v 2.800004 20.000000 0.000000 -v 2.746203 20.000000 0.546253 -v 2.586867 20.000000 1.071514 -v 2.328119 20.000000 1.555597 -v 1.979903 20.000000 1.979900 -v 1.555601 20.000000 2.328115 -v 1.071517 20.000000 2.586864 -v 0.546256 20.000000 2.746200 -v 0.000003 20.000000 2.800000 -v -0.546250 20.000000 2.746199 -v -1.071511 20.000000 2.586863 -v -1.555594 20.000000 2.328115 -v -1.979896 20.000000 1.979898 -v -2.328112 20.000000 1.555596 -v -2.586860 20.000000 1.071512 -v -2.746195 20.000000 0.546251 -v -2.799996 20.000000 -0.000002 -v -2.746194 20.000000 -0.546255 -v -2.586858 20.000000 -1.071516 -v -2.328109 20.000000 -1.555599 -v -1.979892 20.000000 -1.979901 -v -1.555590 20.000000 -2.328117 -v -1.071506 20.000000 -2.586864 -v -0.546245 20.000000 -2.746199 -v 0.663312 21.000000 -3.334670 -v 0.000004 21.000000 -3.400000 -v 1.301128 21.000000 -3.141190 -v 1.888944 21.000000 -2.826996 -v 2.404167 21.000000 -2.404163 -v 2.827002 21.000000 -1.888938 -v 3.141195 21.000000 -1.301123 -v 3.334675 21.000000 -0.663307 -v 3.400004 21.000000 0.000000 -v 3.334675 21.000000 0.663307 -v 3.141196 21.000000 1.301124 -v 2.827002 21.000000 1.888939 -v 2.404167 21.000000 2.404164 -v 1.888943 21.000000 2.826997 -v 1.301127 21.000000 3.141191 -v 0.663311 21.000000 3.334671 -v 0.000003 21.000000 3.400000 -v -0.663304 21.000000 3.334670 -v -1.301121 21.000000 3.141190 -v -1.888936 21.000000 2.826996 -v -2.404160 21.000000 2.404162 -v -2.826994 21.000000 1.888937 -v -3.141187 21.000000 1.301122 -v -3.334666 21.000000 0.663305 -v -3.399996 21.000000 -0.000003 -v -3.334665 21.000000 -0.663310 -v -3.141184 21.000000 -1.301127 -v -2.826990 21.000000 -1.888942 -v -2.404155 21.000000 -2.404165 -v -1.888931 21.000000 -2.826999 -v -1.301115 21.000000 -3.141192 -v -0.663298 21.000000 -3.334670 -v 0.663312 22.000000 -3.334670 -v 0.000005 22.000000 -3.400000 -v 1.301129 22.000000 -3.141190 -v 1.888944 22.000000 -2.826996 -v 2.404168 22.000000 -2.404163 -v 2.827002 22.000000 -1.888938 -v 3.141195 22.000000 -1.301123 -v 3.334675 22.000000 -0.663307 -v 3.400005 22.000000 0.000000 -v 3.334675 22.000000 0.663307 -v 3.141196 22.000000 1.301124 -v 2.827002 22.000000 1.888939 -v 2.404168 22.000000 2.404164 -v 1.888944 22.000000 2.826997 -v 1.301128 22.000000 3.141191 -v 0.663311 22.000000 3.334671 -v 0.000004 22.000000 3.400000 -v -0.663304 22.000000 3.334670 -v -1.301120 22.000000 3.141190 -v -1.888936 22.000000 2.826996 -v -2.404160 22.000000 2.404162 -v -2.826993 22.000000 1.888937 -v -3.141187 22.000000 1.301122 -v -3.334666 22.000000 0.663305 -v -3.399995 22.000000 -0.000003 -v -3.334665 22.000000 -0.663310 -v -3.141184 22.000000 -1.301127 -v -2.826989 22.000000 -1.888942 -v -2.404155 22.000000 -2.404165 -v -1.888930 22.000000 -2.826999 -v -1.301114 22.000000 -3.141192 -v -0.663297 22.000000 -3.334670 -v 0.468222 24.000000 -2.353884 -v 0.000006 24.000000 -2.400000 -v 0.918446 24.000000 -2.217310 -v 1.333374 24.000000 -1.995527 -v 1.697062 24.000000 -1.697056 -v 1.995533 24.000000 -1.333368 -v 2.217317 24.000000 -0.918440 -v 2.353890 24.000000 -0.468216 -v 2.400005 24.000000 0.000000 -v 2.353890 24.000000 0.468217 -v 2.217317 24.000000 0.918440 -v 1.995533 24.000000 1.333369 -v 1.697062 24.000000 1.697057 -v 1.333374 24.000000 1.995528 -v 0.918445 24.000000 2.217312 -v 0.468222 24.000000 2.353885 -v 0.000005 24.000000 2.400000 -v -0.468212 24.000000 2.353885 -v -0.918436 24.000000 2.217311 -v -1.333364 24.000000 1.995527 -v -1.697052 24.000000 1.697056 -v -1.995522 24.000000 1.333368 -v -2.217306 24.000000 0.918439 -v -2.353879 24.000000 0.468215 -v -2.399995 24.000000 -0.000002 -v -2.353878 24.000000 -0.468219 -v -2.217304 24.000000 -0.918442 -v -1.995520 24.000000 -1.333371 -v -1.697048 24.000000 -1.697058 -v -1.333360 24.000000 -1.995528 -v -0.918431 24.000000 -2.217312 -v -0.468208 24.000000 -2.353885 -v 1.053494 23.000000 -5.296239 -v 0.000006 23.000000 -5.399999 -v 2.066497 23.000000 -4.988948 -v 3.000085 23.000000 -4.489934 -v 3.818383 23.000000 -3.818375 -v 4.489942 23.000000 -3.000077 -v 4.988955 23.000000 -2.066489 -v 5.296246 23.000000 -1.053487 -v 5.400004 23.000000 0.000001 -v 5.296246 23.000000 1.053488 -v 4.988955 23.000000 2.066491 -v 4.489942 23.000000 3.000080 -v 3.818383 23.000000 3.818377 -v 3.000085 23.000000 4.489937 -v 2.066496 23.000000 4.988951 -v 1.053492 23.000000 5.296242 -v 0.000004 23.000000 5.400001 -v -1.053484 23.000000 5.296241 -v -2.066487 23.000000 4.988949 -v -3.000076 23.000000 4.489935 -v -3.818373 23.000000 3.818375 -v -4.489932 23.000000 3.000077 -v -4.988945 23.000000 2.066488 -v -5.296236 23.000000 1.053484 -v -5.399994 23.000000 -0.000004 -v -5.296233 23.000000 -1.053492 -v -4.988941 23.000000 -2.066495 -v -4.489926 23.000000 -3.000083 -v -3.818366 23.000000 -3.818380 -v -3.000067 23.000000 -4.489939 -v -2.066477 23.000000 -4.988951 -v -1.053474 23.000000 -5.296240 -v 1.755819 24.000000 -8.827065 -v 0.000006 24.000000 -8.999997 -v 3.444157 24.000000 -8.314913 -v 5.000138 24.000000 -7.483224 -v 6.363967 24.000000 -6.363959 -v 7.483233 24.000000 -5.000129 -v 8.314921 24.000000 -3.444148 -v 8.827073 24.000000 -1.755811 -v 9.000004 24.000000 0.000002 -v 8.827074 24.000000 1.755814 -v 8.314922 24.000000 3.444152 -v 7.483233 24.000000 5.000134 -v 6.363967 24.000000 6.363963 -v 5.000138 24.000000 7.483229 -v 3.444156 24.000000 8.314919 -v 1.755817 24.000000 8.827070 -v 0.000003 24.000000 9.000002 -v -1.755810 24.000000 8.827069 -v -3.444149 24.000000 8.314917 -v -5.000130 24.000000 7.483226 -v -6.363959 24.000000 6.363959 -v -7.483224 24.000000 5.000129 -v -8.314913 24.000000 3.444147 -v -8.827063 24.000000 1.755807 -v -8.999994 24.000000 -0.000006 -v -8.827060 24.000000 -1.755820 -v -8.314906 24.000000 -3.444158 -v -7.483214 24.000000 -5.000139 -v -6.363947 24.000000 -6.363967 -v -5.000115 24.000000 -7.483231 -v -3.444133 24.000000 -8.314919 -v -1.755793 24.000000 -8.827067 -v 2.038701 26.000000 -10.249203 -v 0.000007 26.000000 -10.449997 -v 3.999049 26.000000 -9.654537 -v 5.805717 26.000000 -8.688854 -v 7.389273 26.000000 -7.389263 -v 8.688865 26.000000 -5.805706 -v 9.654549 26.000000 -3.999039 -v 10.249214 26.000000 -2.038692 -v 10.450004 26.000000 0.000002 -v 10.249214 26.000000 2.038695 -v 9.654549 26.000000 3.999043 -v 8.688865 26.000000 5.805711 -v 7.389273 26.000000 7.389268 -v 5.805716 26.000000 8.688861 -v 3.999047 26.000000 9.654545 -v 2.038698 26.000000 10.249209 -v 0.000004 26.000000 10.450003 -v -2.038691 26.000000 10.249207 -v -3.999040 26.000000 9.654542 -v -5.805707 26.000000 8.688857 -v -7.389263 26.000000 7.389264 -v -8.688853 26.000000 5.805706 -v -9.654536 26.000000 3.999037 -v -10.249200 26.000000 2.038688 -v -10.449993 26.000000 -0.000007 -v -10.249197 26.000000 -2.038702 -v -9.654529 26.000000 -3.999050 -v -8.688843 26.000000 -5.805717 -v -7.389249 26.000000 -7.389272 -v -5.805690 26.000000 -8.688862 -v -3.999021 26.000000 -9.654544 -v -2.038671 26.000000 -10.249207 -v 1.950911 28.000000 -9.807850 -v 0.000007 28.000000 -9.999997 -v 3.826842 28.000000 -9.238792 -v 5.555710 28.000000 -8.314693 -v 7.071075 28.000000 -7.071065 -v 8.314704 28.000000 -5.555699 -v 9.238802 28.000000 -3.826832 -v 9.807859 28.000000 -1.950901 -v 10.000003 28.000000 0.000002 -v 9.807860 28.000000 1.950905 -v 9.238803 28.000000 3.826835 -v 8.314704 28.000000 5.555705 -v 7.071075 28.000000 7.071070 -v 5.555709 28.000000 8.314699 -v 3.826840 28.000000 9.238799 -v 1.950908 28.000000 9.807856 -v 0.000004 28.000000 10.000002 -v -1.950900 28.000000 9.807855 -v -3.826832 28.000000 9.238796 -v -5.555700 28.000000 8.314696 -v -7.071065 28.000000 7.071066 -v -8.314693 28.000000 5.555699 -v -9.238791 28.000000 3.826830 -v -9.807847 28.000000 1.950897 -v -9.999993 28.000000 -0.000007 -v -9.807844 28.000000 -1.950911 -v -9.238784 28.000000 -3.826842 -v -8.314682 28.000000 -5.555710 -v -7.071051 28.000000 -7.071074 -v -5.555684 28.000000 -8.314701 -v -3.826813 28.000000 -9.238798 -v -1.950881 28.000000 -9.807853 -v 0.975460 31.000000 -4.903925 -v 0.000008 31.000000 -4.999999 -v 1.913425 31.000000 -4.619397 -v 2.777859 31.000000 -4.157347 -v 3.535542 31.000000 -3.535533 -v 4.157357 31.000000 -2.777850 -v 4.619406 31.000000 -1.913416 -v 4.903934 31.000000 -0.975451 -v 5.000006 31.000000 0.000001 -v 4.903935 31.000000 0.975452 -v 4.619406 31.000000 1.913418 -v 4.157357 31.000000 2.777852 -v 3.535542 31.000000 3.535535 -v 2.777859 31.000000 4.157349 -v 1.913425 31.000000 4.619399 -v 0.975459 31.000000 4.903927 -v 0.000007 31.000000 5.000000 -v -0.975445 31.000000 4.903927 -v -1.913411 31.000000 4.619398 -v -2.777845 31.000000 4.157348 -v -3.535528 31.000000 3.535533 -v -4.157342 31.000000 2.777849 -v -4.619391 31.000000 1.913415 -v -4.903919 31.000000 0.975448 -v -4.999992 31.000000 -0.000004 -v -4.903917 31.000000 -0.975456 -v -4.619387 31.000000 -1.913421 -v -4.157336 31.000000 -2.777855 -v -3.535521 31.000000 -3.535537 -v -2.777837 31.000000 -4.157351 -v -1.913402 31.000000 -4.619400 -v -0.975436 31.000000 -4.903927 -v 0.195100 32.000000 -0.980785 -v 0.000009 32.000000 -1.000000 -v 0.382693 32.000000 -0.923880 -v 0.555579 32.000000 -0.831470 -v 0.707116 32.000000 -0.707107 -v 0.831479 32.000000 -0.555570 -v 0.923889 32.000000 -0.382683 -v 0.980794 32.000000 -0.195090 -v 1.000009 32.000000 -0.000000 -v 0.980795 32.000000 0.195090 -v 0.923889 32.000000 0.382683 -v 0.831479 32.000000 0.555570 -v 0.707116 32.000000 0.707107 -v 0.555579 32.000000 0.831470 -v 0.382692 32.000000 0.923880 -v 0.195099 32.000000 0.980785 -v 0.000009 32.000000 1.000000 -v -0.195082 32.000000 0.980785 -v -0.382675 32.000000 0.923879 -v -0.555561 32.000000 0.831469 -v -0.707098 32.000000 0.707106 -v -0.831461 32.000000 0.555570 -v -0.923871 32.000000 0.382683 -v -0.980776 32.000000 0.195089 -v -0.999991 32.000000 -0.000001 -v -0.980776 32.000000 -0.195091 -v -0.923870 32.000000 -0.382684 -v -0.831460 32.000000 -0.555571 -v -0.707097 32.000000 -0.707108 -v -0.555560 32.000000 -0.831470 -v -0.382673 32.000000 -0.923880 -v -0.195080 32.000000 -0.980786 -vt 0.530549 0.164590 -vt 0.511666 0.163643 -vt 0.521050 -0.034955 -vt 0.492712 0.163326 -vt 0.473760 0.163641 -vt 0.464416 -0.034959 -vt 0.454878 0.164586 -vt 0.436165 -0.032960 -vt 0.530466 0.164544 -vt 0.511584 0.163595 -vt 0.520990 -0.034999 -vt 0.492630 0.163276 -vt 0.492677 -0.035670 -vt 0.473678 0.163590 -vt 0.454796 0.164533 -vt 0.436106 -0.033015 -vt 0.549279 -0.032970 -vt 0.530567 0.164579 -vt 0.492733 -0.035632 -vt 0.511646 0.163658 -vt 0.521031 -0.034940 -vt 0.473740 0.163656 -vt 0.464397 -0.034945 -vt 0.436145 -0.032947 -vt 0.549245 -0.033009 -vt 0.492654 0.406011 -vt 0.478473 0.406094 -vt 0.454848 0.164591 -vt 0.484783 0.841883 -vt 0.481703 0.815945 -vt 0.498141 0.815218 -vt 0.478517 0.406158 -vt 0.480864 1.033334 -vt 0.469047 1.033401 -vt 0.464335 0.406424 -vt 0.521029 0.406412 -vt 0.506854 0.406164 -vt 0.492601 0.406024 -vt 0.478419 0.406106 -vt 0.464379 0.406400 -vt 0.520980 0.406345 -vt 0.492698 0.406075 -vt 0.464248 0.406354 -vt 0.506806 0.406095 -vt 0.521088 0.406401 -vt 0.464301 0.406335 -vt 0.528333 0.932272 -vt 0.515249 0.932270 -vt 0.514645 0.840931 -vt 0.492685 1.033317 -vt 0.504528 1.033347 -vt 0.516218 1.033355 -vt 0.504401 1.033288 -vt 0.492583 1.033266 -vt 0.469077 1.033415 -vt 0.480766 1.033288 -vt 0.516301 1.033331 -vt 0.468949 1.033355 -vt 0.492666 1.033242 -vt 0.469032 1.033331 -vt 0.516241 1.033340 -vt 0.516347 1.033391 -vt 0.489116 0.932391 -vt 0.499639 0.841163 -vt 0.529638 0.841146 -vt 0.544452 0.841822 -vt 0.502170 0.932307 -vt 0.502067 0.931417 -vt 0.489014 0.931490 -vt 0.484772 0.841027 -vt 0.515252 0.932265 -vt 0.499616 0.840324 -vt 0.514609 0.840100 -vt 0.515150 0.931384 -vt 0.529588 0.840325 -vt 0.528233 0.931394 -vt 0.544387 0.841006 -vt 0.502141 0.932422 -vt 0.489088 0.932506 -vt 0.484755 0.841998 -vt 0.515223 0.932380 -vt 0.499611 0.841277 -vt 0.544446 0.841815 -vt 0.528306 0.932383 -vt 0.514619 0.841041 -vt 0.529613 0.841256 -vt 0.544428 0.841933 -vt 0.514653 0.840929 -vt 0.541383 0.932312 -vt 0.514294 0.815010 -vt 0.514115 0.784175 -vt 0.530516 0.783920 -vt 0.530451 0.815198 -vt 0.481734 0.815116 -vt 0.498149 0.814411 -vt 0.546877 0.815869 -vt 0.514282 0.814222 -vt 0.530410 0.814413 -vt 0.546808 0.815091 -vt 0.481674 0.816058 -vt 0.530447 0.815191 -vt 0.498113 0.815331 -vt 0.514273 0.815126 -vt 0.530427 0.815307 -vt 0.497702 0.783983 -vt 0.499096 0.760277 -vt 0.514093 0.760874 -vt 0.497680 0.784096 -vt 0.480598 0.783379 -vt 0.547598 0.783235 -vt 0.514094 0.784288 -vt 0.530497 0.784033 -vt 0.546852 0.815983 -vt 0.480672 0.782607 -vt 0.497751 0.783237 -vt 0.514128 0.783445 -vt 0.530493 0.783201 -vt 0.480562 0.783487 -vt 0.483887 0.758308 -vt 0.495914 0.711438 -vt 0.504773 0.711578 -vt 0.529070 0.760267 -vt 0.544188 0.758255 -vt 0.484000 0.757603 -vt 0.499171 0.759591 -vt 0.514125 0.760200 -vt 0.529050 0.759600 -vt 0.544127 0.757597 -vt 0.483856 0.758415 -vt 0.499074 0.760387 -vt 0.514074 0.760983 -vt 0.529041 0.760372 -vt 0.544161 0.758360 -vt 0.523594 0.711573 -vt 0.529972 0.661378 -vt 0.545561 0.664658 -vt 0.532448 0.711418 -vt 0.496068 0.710899 -vt 0.504878 0.711055 -vt 0.514184 0.711617 -vt 0.514245 0.711102 -vt 0.523616 0.711060 -vt 0.495882 0.711535 -vt 0.504744 0.711675 -vt 0.514158 0.711713 -vt 0.523570 0.711670 -vt 0.513848 0.660219 -vt 0.513669 0.608672 -vt 0.513828 0.659944 -vt 0.529911 0.661083 -vt 0.482091 0.664427 -vt 0.497705 0.661195 -vt 0.545452 0.664348 -vt 0.482051 0.664506 -vt 0.497671 0.661274 -vt 0.513820 0.660298 -vt 0.513851 0.660221 -vt 0.532428 0.711511 -vt 0.529950 0.661456 -vt 0.532453 0.711417 -vt 0.482323 0.664233 -vt 0.497723 0.660949 -vt 0.536884 0.609783 -vt 0.513620 0.608741 -vt 0.513592 0.578273 -vt 0.490435 0.609678 -vt 0.466382 0.613327 -vt 0.536902 0.609745 -vt 0.560895 0.613327 -vt 0.560888 0.613379 -vt 0.466576 0.613222 -vt 0.490460 0.609499 -vt 0.513658 0.608477 -vt 0.536854 0.609547 -vt 0.560808 0.613134 -vt 0.488667 0.578260 -vt 0.489455 0.552993 -vt 0.513561 0.553945 -vt 0.461659 0.578631 -vt 0.538555 0.578237 -vt 0.513596 0.578186 -vt 0.538530 0.578189 -vt 0.565552 0.578473 -vt 0.565547 0.578471 -vt 0.461750 0.578463 -vt 0.488684 0.578059 -vt 0.513584 0.578010 -vt 0.538488 0.578023 -vt 0.565480 0.578318 -vt 0.461632 0.578691 -vt 0.488649 0.578325 -vt 0.464207 0.549432 -vt 0.487190 0.475078 -vt 0.500042 0.478373 -vt 0.537671 0.552949 -vt 0.464147 0.549565 -vt 0.537673 0.552951 -vt 0.489480 0.552845 -vt 0.513557 0.553799 -vt 0.537641 0.552812 -vt 0.562948 0.549342 -vt 0.489444 0.553047 -vt 0.563007 0.549470 -vt 0.513562 0.554003 -vt 0.526690 0.478484 -vt 0.516244 0.422415 -vt 0.518946 0.421679 -vt 0.513331 0.479593 -vt 0.513332 0.479537 -vt 0.539754 0.475224 -vt 0.526709 0.478560 -vt 0.516842 0.409963 -vt 0.517872 0.420415 -vt 0.510888 0.421103 -vt 0.510606 0.422421 -vt 0.507984 0.421679 -vt 0.513413 0.422628 -vt 0.518952 0.421679 -vt 0.549263 -0.032939 -vt 0.541291 0.931450 -vt 0.541364 0.932431 -vt 0.547581 0.783348 -vt 0.547538 0.782523 -vt 0.532439 0.710900 -vt 0.545546 0.664737 -vt 0.539728 0.475174 -vt 0.509859 0.420415 -vt 0.508983 0.419540 -vt 0.508295 0.418510 -vt 0.507822 0.417367 -vt 0.507580 0.416152 -vt 0.508295 0.412556 -vt 0.507580 0.414914 -vt 0.507822 0.413700 -vt 0.508983 0.411527 -vt 0.509859 0.410651 -vt 0.510888 0.409963 -vt 0.512032 0.409490 -vt 0.513246 0.409248 -vt 0.514484 0.409248 -vt 0.515699 0.409490 -vt 0.517872 0.410651 -vt 0.518747 0.411527 -vt 0.519435 0.412556 -vt 0.519909 0.413700 -vt 0.520151 0.414914 -vt 0.520151 0.416152 -vt 0.519909 0.417367 -vt 0.519435 0.418510 -vt 0.518747 0.419540 -vt 0.516842 0.421103 -vt 0.515699 0.421577 -vt 0.514484 0.421818 -vt 0.513246 0.421818 -vt 0.512032 0.421577 -vn 0.095100 0.241400 -0.965700 -vn 0.281700 0.241400 -0.928600 -vn 0.457500 0.241400 -0.855800 -vn 0.615600 0.241400 -0.750100 -vn 0.750100 0.241400 -0.615600 -vn 0.855800 0.241400 -0.457500 -vn 0.928600 0.241400 -0.281700 -vn 0.965700 0.241400 -0.095100 -vn 0.965700 0.241400 0.095100 -vn 0.928600 0.241400 0.281700 -vn 0.855800 0.241400 0.457500 -vn 0.750100 0.241400 0.615600 -vn 0.615600 0.241400 0.750100 -vn 0.457500 0.241400 0.855800 -vn 0.281700 0.241400 0.928600 -vn 0.095100 0.241400 0.965700 -vn -0.095100 0.241400 0.965700 -vn -0.281700 0.241400 0.928600 -vn -0.457500 0.241400 0.855800 -vn -0.615600 0.241400 0.750100 -vn -0.750100 0.241400 0.615600 -vn -0.855800 0.241400 0.457500 -vn -0.928600 0.241400 0.281700 -vn -0.965700 0.241400 0.095100 -vn -0.965700 0.241400 -0.095100 -vn -0.928600 0.241400 -0.281700 -vn -0.855800 0.241400 -0.457500 -vn -0.750100 0.241400 -0.615600 -vn -0.615600 0.241400 -0.750100 -vn -0.457500 0.241400 -0.855800 -vn 0.877600 0.099000 0.469100 -vn -0.095100 0.241400 -0.965700 -vn -0.281700 0.241400 -0.928600 -vn 0.000000 -1.000000 0.000000 -vn 0.634300 0.019100 -0.772900 -vn -0.631300 0.099000 0.769200 -vn -0.631300 0.099000 -0.769200 -vn 0.952200 0.099000 -0.288900 -vn 0.097500 0.099000 0.990300 -vn -0.990300 0.099000 -0.097500 -vn 0.469100 0.099000 -0.877600 -vn 0.769200 0.099000 0.631300 -vn -0.769200 0.099000 0.631300 -vn -0.469100 0.099000 -0.877600 -vn 0.990300 0.099000 -0.097500 -vn -0.097500 0.099000 0.990300 -vn -0.952200 0.099000 -0.288900 -vn 0.631300 0.099000 -0.769200 -vn 0.631300 0.099000 0.769200 -vn -0.877600 0.099000 0.469100 -vn -0.288900 0.099000 -0.952200 -vn 0.990300 0.099000 0.097500 -vn -0.288900 0.099000 0.952200 -vn -0.877600 0.099000 -0.469100 -vn 0.769200 0.099000 -0.631300 -vn 0.469100 0.099000 0.877600 -vn -0.952200 0.099000 0.288900 -vn 0.097500 0.099000 -0.990300 -vn -0.097500 0.099000 -0.990300 -vn 0.952200 0.099000 0.288900 -vn -0.469100 0.099000 0.877600 -vn -0.769200 0.099000 -0.631300 -vn 0.877600 0.099000 -0.469100 -vn 0.288900 0.099000 0.952200 -vn -0.990300 0.099000 0.097500 -vn 0.288900 0.099000 -0.952200 -vn -0.896500 -0.349600 0.272000 -vn -0.290200 0.019100 -0.956800 -vn -0.290200 0.019100 0.956800 -vn 0.772900 0.019100 -0.634300 -vn -0.098000 0.019100 -0.995000 -vn -0.471300 0.019100 0.881800 -vn 0.881800 0.019100 -0.471300 -vn -0.634300 0.019100 0.772900 -vn 0.956800 0.019100 -0.290200 -vn -0.772900 0.019100 0.634300 -vn 0.995000 0.019100 -0.098000 -vn -0.881800 0.019100 0.471300 -vn 0.995000 0.019100 0.098000 -vn -0.956800 0.019100 0.290200 -vn 0.956800 0.019100 0.290200 -vn -0.995000 0.019100 0.098000 -vn 0.881800 0.019100 0.471300 -vn -0.995000 0.019100 -0.098000 -vn 0.772900 0.019100 0.634300 -vn -0.956800 0.019100 -0.290200 -vn 0.634300 0.019100 0.772900 -vn -0.881800 0.019100 -0.471300 -vn 0.471300 0.019100 0.881800 -vn 0.098000 0.019100 -0.995000 -vn -0.772900 0.019100 -0.634300 -vn 0.290200 0.019100 0.956800 -vn 0.290200 0.019100 -0.956800 -vn -0.634300 0.019100 -0.772900 -vn 0.098000 0.019100 0.995000 -vn 0.471300 0.019100 -0.881800 -vn -0.471300 0.019100 -0.881800 -vn -0.098000 0.019100 0.995000 -vn 0.724200 -0.349600 -0.594400 -vn -0.932400 -0.349600 0.091800 -vn 0.826300 -0.349600 -0.441600 -vn -0.932400 -0.349600 -0.091800 -vn 0.896500 -0.349600 -0.272000 -vn -0.896500 -0.349600 -0.272000 -vn 0.932400 -0.349600 -0.091800 -vn -0.826300 -0.349600 -0.441600 -vn 0.932400 -0.349600 0.091800 -vn -0.724200 -0.349600 -0.594400 -vn 0.896500 -0.349600 0.272000 -vn -0.594400 -0.349600 -0.724200 -vn 0.826300 -0.349600 0.441600 -vn -0.441600 -0.349600 -0.826300 -vn -0.091800 -0.349600 0.932400 -vn 0.724200 -0.349600 0.594400 -vn -0.272000 -0.349600 -0.896500 -vn -0.272000 -0.349600 0.896500 -vn 0.594400 -0.349600 0.724200 -vn -0.091800 -0.349600 -0.932400 -vn -0.441600 -0.349600 0.826300 -vn 0.441600 -0.349600 0.826300 -vn 0.091800 -0.349600 -0.932400 -vn -0.594400 -0.349600 0.724200 -vn 0.272000 -0.349600 0.896500 -vn 0.272000 -0.349600 -0.896500 -vn -0.724200 -0.349600 0.594400 -vn 0.091800 -0.349600 0.932400 -vn 0.441600 -0.349600 -0.826300 -vn -0.826300 -0.349600 0.441600 -vn 0.594400 -0.349600 -0.724200 -vn 0.249200 -0.512700 0.821600 -vn -0.290300 0.000000 0.956900 -vn 0.249200 -0.512700 -0.821600 -vn -0.544700 -0.512700 -0.663700 -vn 0.084200 -0.512700 0.854500 -vn 0.404700 -0.512700 -0.757200 -vn -0.404700 -0.512700 -0.757200 -vn -0.084200 -0.512700 0.854500 -vn 0.544700 -0.512700 -0.663700 -vn -0.249200 -0.512700 -0.821600 -vn -0.249200 -0.512700 0.821600 -vn 0.663700 -0.512700 -0.544700 -vn -0.084200 -0.512700 -0.854500 -vn -0.404700 -0.512700 0.757200 -vn 0.757200 -0.512700 -0.404700 -vn -0.544700 -0.512700 0.663700 -vn 0.821600 -0.512700 -0.249200 -vn -0.663700 -0.512700 0.544700 -vn 0.854500 -0.512700 -0.084200 -vn -0.757200 -0.512700 0.404700 -vn 0.854500 -0.512700 0.084200 -vn -0.821600 -0.512700 0.249200 -vn 0.821600 -0.512700 0.249200 -vn -0.854500 -0.512700 0.084200 -vn 0.757200 -0.512700 0.404700 -vn -0.854500 -0.512700 -0.084200 -vn 0.663700 -0.512700 0.544700 -vn -0.821600 -0.512700 -0.249200 -vn 0.544700 -0.512700 0.663700 -vn -0.757200 -0.512700 -0.404700 -vn 0.404700 -0.512700 0.757200 -vn 0.084200 -0.512700 -0.854500 -vn -0.663700 -0.512700 -0.544700 -vn -0.692100 0.445500 0.568000 -vn 0.773000 -0.000000 -0.634400 -vn -0.098000 0.000000 -0.995200 -vn -0.471400 0.000000 0.881900 -vn 0.881900 0.000000 -0.471400 -vn -0.634400 0.000000 0.773000 -vn 0.956900 0.000000 -0.290300 -vn -0.773000 0.000000 0.634400 -vn 0.995200 0.000000 -0.098000 -vn -0.881900 0.000000 0.471400 -vn 0.995200 0.000000 0.098000 -vn -0.956900 0.000000 0.290300 -vn 0.956900 0.000000 0.290300 -vn -0.995200 0.000000 0.098000 -vn 0.881900 0.000000 0.471400 -vn -0.995200 0.000000 -0.098000 -vn 0.773000 0.000000 0.634400 -vn -0.956900 0.000000 -0.290300 -vn 0.634400 -0.000000 0.773000 -vn -0.881900 0.000000 -0.471400 -vn 0.471400 -0.000000 0.881900 -vn 0.098000 -0.000000 -0.995200 -vn -0.773000 0.000000 -0.634400 -vn 0.290300 -0.000000 0.956900 -vn 0.290300 -0.000000 -0.956900 -vn -0.634400 0.000000 -0.773000 -vn 0.098000 -0.000000 0.995200 -vn 0.471400 -0.000000 -0.881900 -vn -0.471400 0.000000 -0.881900 -vn -0.098000 0.000000 0.995200 -vn 0.634400 -0.000000 -0.773000 -vn -0.290300 0.000000 -0.956900 -vn 0.316100 -0.948200 -0.031100 -vn 0.891000 0.445500 -0.087800 -vn -0.789600 0.445500 0.422000 -vn 0.891000 0.445500 0.087800 -vn -0.856700 0.445500 0.259900 -vn 0.856700 0.445500 0.259900 -vn -0.891000 0.445500 0.087800 -vn 0.789600 0.445500 0.422000 -vn -0.891000 0.445500 -0.087800 -vn 0.692100 0.445500 0.568000 -vn -0.856700 0.445500 -0.259900 -vn 0.568000 0.445500 0.692100 -vn -0.789600 0.445500 -0.422000 -vn 0.422000 0.445500 0.789600 -vn 0.087800 0.445500 -0.891000 -vn -0.692100 0.445500 -0.568000 -vn 0.259900 0.445500 0.856700 -vn 0.259900 0.445500 -0.856700 -vn -0.568000 0.445500 -0.692100 -vn 0.087800 0.445500 0.891000 -vn 0.422000 0.445500 -0.789600 -vn -0.422000 0.445500 -0.789600 -vn -0.087800 0.445500 0.891000 -vn 0.568000 0.445500 -0.692100 -vn -0.259900 0.445500 -0.856700 -vn -0.259900 0.445500 0.856700 -vn 0.692100 0.445500 -0.568000 -vn -0.087800 0.445500 -0.891000 -vn -0.422000 0.445500 0.789600 -vn 0.789600 0.445500 -0.422000 -vn -0.568000 0.445500 0.692100 -vn 0.856700 0.445500 -0.259900 -vn -0.237100 -0.963200 -0.126700 -vn -0.280100 -0.948200 -0.149700 -vn 0.316100 -0.948200 0.031100 -vn -0.245500 -0.948200 -0.201500 -vn 0.303900 -0.948200 0.092200 -vn -0.201500 -0.948200 -0.245500 -vn 0.280100 -0.948200 0.149700 -vn -0.149700 -0.948200 -0.280100 -vn -0.031100 -0.948200 0.316100 -vn 0.245500 -0.948200 0.201500 -vn -0.092200 -0.948200 -0.303900 -vn -0.092200 -0.948200 0.303900 -vn 0.201500 -0.948200 0.245500 -vn -0.031100 -0.948200 -0.316100 -vn -0.149700 -0.948200 0.280100 -vn 0.149700 -0.948200 0.280100 -vn 0.031100 -0.948200 -0.316100 -vn -0.201500 -0.948200 0.245500 -vn 0.092200 -0.948200 0.303900 -vn 0.092200 -0.948200 -0.303900 -vn -0.245500 -0.948200 0.201500 -vn 0.031100 -0.948200 0.316100 -vn 0.149700 -0.948200 -0.280100 -vn -0.280100 -0.948200 0.149700 -vn 0.201500 -0.948200 -0.245500 -vn -0.303900 -0.948200 0.092200 -vn 0.245500 -0.948200 -0.201500 -vn -0.316100 -0.948200 0.031100 -vn 0.280100 -0.948200 -0.149700 -vn -0.316100 -0.948200 -0.031100 -vn 0.303900 -0.948200 -0.092200 -vn -0.303900 -0.948200 -0.092200 -vn 0.382300 -0.585100 -0.715200 -vn 0.126700 -0.963200 0.237100 -vn 0.026400 -0.963200 -0.267600 -vn -0.207800 -0.963200 -0.170600 -vn 0.078000 -0.963200 0.257300 -vn 0.078000 -0.963200 -0.257300 -vn -0.170600 -0.963200 -0.207800 -vn 0.026400 -0.963200 0.267600 -vn 0.126700 -0.963200 -0.237100 -vn -0.126700 -0.963200 -0.237100 -vn -0.026400 -0.963200 0.267500 -vn 0.170600 -0.963200 -0.207800 -vn -0.078000 -0.963200 -0.257300 -vn -0.078000 -0.963200 0.257300 -vn 0.207800 -0.963200 -0.170600 -vn -0.026400 -0.963200 -0.267600 -vn -0.126700 -0.963200 0.237100 -vn 0.237100 -0.963200 -0.126700 -vn -0.170600 -0.963200 0.207800 -vn 0.257300 -0.963200 -0.078000 -vn -0.207800 -0.963200 0.170600 -vn 0.267600 -0.963200 -0.026400 -vn -0.237100 -0.963200 0.126700 -vn 0.267600 -0.963200 0.026400 -vn -0.257300 -0.963200 0.078000 -vn 0.257300 -0.963200 0.078000 -vn -0.267600 -0.963200 0.026400 -vn 0.237100 -0.963200 0.126700 -vn -0.267600 -0.963200 -0.026400 -vn 0.207800 -0.963200 0.170600 -vn -0.257300 -0.963200 -0.078000 -vn 0.170600 -0.963200 0.207800 -vn 0.860600 0.218500 -0.460000 -vn -0.382300 -0.585100 -0.715200 -vn -0.079500 -0.585100 0.807000 -vn 0.514500 -0.585100 -0.626900 -vn -0.235400 -0.585100 -0.776000 -vn -0.235400 -0.585100 0.776000 -vn 0.626900 -0.585100 -0.514500 -vn -0.079500 -0.585100 -0.807000 -vn -0.382300 -0.585100 0.715200 -vn 0.715200 -0.585100 -0.382300 -vn -0.514500 -0.585100 0.626900 -vn 0.776000 -0.585100 -0.235400 -vn -0.626900 -0.585100 0.514500 -vn 0.807000 -0.585100 -0.079500 -vn -0.715200 -0.585100 0.382300 -vn 0.807000 -0.585100 0.079500 -vn -0.776000 -0.585100 0.235400 -vn 0.776000 -0.585100 0.235400 -vn -0.807000 -0.585100 0.079500 -vn 0.715200 -0.585100 0.382300 -vn -0.807000 -0.585100 -0.079500 -vn 0.626900 -0.585100 0.514500 -vn -0.776000 -0.585100 -0.235400 -vn 0.514500 -0.585100 0.626900 -vn -0.715200 -0.585100 -0.382300 -vn 0.382300 -0.585100 0.715200 -vn 0.079500 -0.585100 -0.807000 -vn -0.626900 -0.585100 -0.514500 -vn 0.235400 -0.585100 0.776000 -vn 0.235400 -0.585100 -0.776000 -vn -0.514500 -0.585100 -0.626900 -vn 0.079500 -0.585100 0.807000 -vn 0.513800 0.856400 0.050600 -vn -0.619100 0.218500 0.754300 -vn 0.933800 0.218500 -0.283300 -vn -0.754300 0.218500 0.619100 -vn 0.971100 0.218500 -0.095600 -vn -0.860600 0.218500 0.460000 -vn 0.971100 0.218500 0.095600 -vn -0.933800 0.218500 0.283300 -vn 0.933800 0.218500 0.283300 -vn -0.971100 0.218500 0.095600 -vn 0.860600 0.218500 0.460000 -vn -0.971100 0.218500 -0.095600 -vn 0.754300 0.218500 0.619100 -vn -0.933800 0.218500 -0.283300 -vn 0.619100 0.218500 0.754300 -vn -0.860600 0.218500 -0.460000 -vn 0.460000 0.218500 0.860600 -vn 0.095600 0.218500 -0.971100 -vn -0.754300 0.218500 -0.619100 -vn 0.283300 0.218500 0.933800 -vn 0.283300 0.218500 -0.933800 -vn -0.619100 0.218500 -0.754300 -vn 0.095600 0.218500 0.971100 -vn 0.460000 0.218500 -0.860600 -vn -0.460000 0.218500 -0.860600 -vn -0.095600 0.218500 0.971100 -vn 0.619100 0.218500 -0.754300 -vn -0.283300 0.218500 -0.933800 -vn -0.283300 0.218500 0.933800 -vn 0.754300 0.218500 -0.619100 -vn -0.095600 0.218500 -0.971100 -vn -0.460000 0.218500 0.860600 -vn 0.188300 0.969900 0.154600 -vn -0.494100 0.856400 0.149900 -vn 0.494100 0.856400 0.149900 -vn -0.513800 0.856400 0.050600 -vn 0.455400 0.856400 0.243400 -vn -0.513800 0.856400 -0.050600 -vn 0.399100 0.856400 0.327600 -vn -0.494100 0.856400 -0.149900 -vn 0.327600 0.856400 0.399100 -vn -0.455400 0.856400 -0.243400 -vn 0.243400 0.856400 0.455400 -vn 0.050600 0.856400 -0.513800 -vn -0.399100 0.856400 -0.327600 -vn 0.149900 0.856400 0.494100 -vn 0.149900 0.856400 -0.494100 -vn -0.327600 0.856400 -0.399100 -vn 0.050600 0.856400 0.513800 -vn 0.243400 0.856400 -0.455400 -vn -0.243400 0.856400 -0.455400 -vn -0.050600 0.856400 0.513800 -vn 0.327600 0.856400 -0.399100 -vn -0.149900 0.856400 -0.494100 -vn -0.149900 0.856400 0.494100 -vn 0.399100 0.856400 -0.327600 -vn -0.050600 0.856400 -0.513800 -vn -0.243400 0.856400 0.455400 -vn 0.455400 0.856400 -0.243400 -vn -0.327600 0.856400 0.399100 -vn 0.494100 0.856400 -0.149900 -vn -0.399100 0.856400 0.327600 -vn 0.513800 0.856400 -0.050600 -vn -0.455400 0.856400 0.243400 -vn 0.000000 1.000000 -0.000000 -vn -0.233100 0.969900 -0.070700 -vn 0.154600 0.969900 0.188300 -vn -0.214900 0.969900 -0.114900 -vn 0.114900 0.969900 0.214900 -vn 0.023900 0.969900 -0.242500 -vn -0.188300 0.969900 -0.154600 -vn 0.070700 0.969900 0.233100 -vn 0.070700 0.969900 -0.233200 -vn -0.154600 0.969900 -0.188300 -vn 0.023900 0.969900 0.242500 -vn 0.114900 0.969900 -0.214900 -vn -0.114900 0.969900 -0.214900 -vn -0.023900 0.969900 0.242500 -vn 0.154600 0.969900 -0.188300 -vn -0.070700 0.969900 -0.233100 -vn -0.070700 0.969900 0.233100 -vn 0.188300 0.969900 -0.154600 -vn -0.023900 0.969900 -0.242500 -vn -0.114900 0.969900 0.214900 -vn 0.214900 0.969900 -0.114800 -vn -0.154600 0.969900 0.188400 -vn 0.233100 0.969900 -0.070700 -vn -0.188300 0.969900 0.154600 -vn 0.242500 0.969900 -0.023900 -vn -0.214900 0.969900 0.114800 -vn 0.242500 0.969900 0.023900 -vn -0.233100 0.969900 0.070700 -vn 0.233100 0.969900 0.070700 -vn -0.242500 0.969900 0.023900 -vn 0.214900 0.969900 0.114900 -vn -0.242500 0.969900 -0.023900 -vn -0.457400 0.241400 -0.855800 -vn -0.026400 -0.963200 0.267600 -vn 0.000000 1.000000 0.000100 -vn 0.000000 1.000000 -0.000200 -vn 0.070700 0.969900 0.233200 -vn 0.070700 0.969900 -0.233100 -vn 0.214900 0.969900 -0.114900 -vn -0.154600 0.969900 0.188300 -vn -0.214900 0.969900 0.114900 -vn 0.214900 0.969900 0.114800 -s off -f 2/1/1 4/2/1 3/3/1 -f 3/3/2 4/2/2 6/4/2 -f 6/4/3 8/5/3 7/6/3 -f 8/5/4 10/7/4 9/8/4 -f 10/9/5 12/10/5 11/11/5 -f 11/11/6 12/10/6 14/12/6 -f 13/13/7 14/12/7 16/14/7 -f 16/14/8 18/15/8 17/16/8 -f 18/9/9 20/10/9 19/11/9 -f 19/11/10 20/10/10 22/4/10 -f 22/4/11 24/14/11 23/6/11 -f 24/14/12 26/15/12 25/16/12 -f 25/17/13 26/18/13 28/2/13 -f 27/11/14 28/2/14 30/4/14 -f 29/19/15 30/4/15 32/5/15 -f 31/6/16 32/5/16 34/7/16 -f 34/1/17 36/20/17 35/21/17 -f 35/21/18 36/20/18 38/4/18 -f 38/4/19 40/22/19 39/23/19 -f 40/22/20 42/7/20 41/24/20 -f 42/9/21 44/10/21 43/11/21 -f 44/10/22 46/4/22 45/13/22 -f 46/4/23 48/14/23 47/6/23 -f 48/14/24 50/15/24 49/16/24 -f 49/25/25 50/9/25 52/10/25 -f 52/10/26 54/4/26 53/13/26 -f 54/4/27 56/14/27 55/6/27 -f 56/14/28 58/15/28 57/16/28 -f 58/1/29 60/10/29 59/21/29 -f 60/10/30 62/4/30 61/19/30 -f 22/4/31 75/26/31 76/27/31 -f 63/6/32 64/14/32 2/28/32 -f 62/4/33 64/14/33 63/6/33 -f 149/29/34 181/30/34 182/31/34 -f 68/32/35 100/33/35 101/34/35 -f 40/22/36 84/32/36 85/35/36 -f 58/1/37 93/36/37 94/37/37 -f 14/12/38 71/38/38 72/39/38 -f 32/5/39 80/32/39 81/40/39 -f 52/10/40 50/9/40 89/41/40 -f 8/5/41 6/4/41 67/42/41 -f 26/15/42 24/14/42 76/27/42 -f 44/10/43 42/9/43 85/41/43 -f 60/10/44 94/37/44 95/42/44 -f 16/14/45 72/39/45 73/43/45 -f 36/20/46 34/1/46 81/36/46 -f 52/10/47 90/44/47 91/38/47 -f 8/5/48 68/32/48 69/35/48 -f 28/2/49 26/18/49 77/45/49 -f 44/10/50 86/44/50 87/26/50 -f 62/4/51 95/42/51 96/32/51 -f 18/9/52 73/41/52 74/44/52 -f 36/20/53 82/37/53 83/42/53 -f 54/4/54 91/38/54 92/39/54 -f 10/9/55 69/36/55 70/44/55 -f 28/2/56 78/37/56 79/42/56 -f 46/4/57 87/26/57 88/27/57 -f 2/1/58 66/45/58 65/37/58 -f 64/14/59 96/32/59 66/35/59 -f 20/10/60 74/44/60 75/26/60 -f 38/4/61 83/42/61 84/32/61 -f 58/15/62 56/14/62 92/39/62 -f 12/10/63 70/44/63 71/38/63 -f 32/5/64 30/4/64 79/42/64 -f 48/14/65 88/27/65 89/46/65 -f 4/2/66 65/37/66 67/42/66 -f 104/47/67 103/48/67 135/49/67 -f 95/42/68 127/50/68 128/33/68 -f 83/42/69 82/37/69 114/51/69 -f 69/36/70 101/52/70 102/53/70 -f 66/35/71 96/32/71 128/33/71 -f 83/42/72 115/50/72 116/33/72 -f 70/44/73 102/53/73 103/54/73 -f 84/32/74 116/33/74 117/55/74 -f 71/38/75 103/54/75 104/56/75 -f 85/41/76 117/57/76 118/51/76 -f 72/39/77 104/56/77 105/58/77 -f 86/44/78 118/51/78 119/59/78 -f 73/41/79 105/57/79 106/51/79 -f 87/26/80 119/59/80 120/56/80 -f 74/44/81 106/51/81 107/50/81 -f 88/27/82 120/56/82 121/60/82 -f 75/26/83 107/50/83 108/56/83 -f 89/41/84 121/61/84 122/53/84 -f 76/27/85 108/56/85 109/60/85 -f 90/44/86 122/53/86 123/54/86 -f 77/45/87 109/62/87 110/51/87 -f 91/38/88 123/54/88 124/56/88 -f 78/37/89 110/51/89 111/50/89 -f 66/45/90 98/62/90 97/51/90 -f 92/39/91 124/56/91 125/60/91 -f 79/42/92 111/50/92 112/33/92 -f 65/37/93 97/51/93 99/50/93 -f 93/36/94 125/62/94 126/51/94 -f 80/32/95 112/33/95 113/55/95 -f 67/42/96 99/50/96 100/33/96 -f 94/37/97 126/51/97 127/50/97 -f 81/36/98 113/62/98 114/51/98 -f 117/63/99 149/29/99 150/64/99 -f 104/47/100 136/65/100 137/66/100 -f 118/67/101 150/64/101 151/49/101 -f 106/68/102 105/69/102 137/70/102 -f 119/71/103 151/49/103 152/65/103 -f 106/68/104 138/72/104 139/73/104 -f 120/47/105 152/65/105 153/66/105 -f 107/74/106 139/73/106 140/75/106 -f 122/67/107 121/63/107 153/29/107 -f 108/76/108 140/75/108 141/77/108 -f 123/71/109 122/67/109 154/64/109 -f 109/63/110 141/29/110 142/64/110 -f 124/47/111 123/71/111 155/49/111 -f 110/67/112 142/64/112 143/49/112 -f 97/78/113 98/79/113 130/80/113 -f 124/47/114 156/65/114 157/66/114 -f 111/48/115 143/49/115 144/65/115 -f 99/81/116 97/78/116 129/82/116 -f 126/67/117 125/63/117 157/29/117 -f 112/47/118 144/65/118 145/83/118 -f 100/84/119 99/81/119 131/85/119 -f 127/71/120 126/67/120 158/64/120 -f 114/67/121 113/63/121 145/29/121 -f 100/84/122 132/86/122 133/87/122 -f 127/71/123 159/88/123 160/65/123 -f 115/48/124 114/67/124 146/64/124 -f 101/63/125 133/29/125 134/64/125 -f 128/47/126 160/65/126 130/66/126 -f 115/48/127 147/49/127 148/65/127 -f 102/67/128 134/64/128 135/49/128 -f 117/89/129 116/47/129 148/65/129 -f 175/90/130 207/91/130 208/92/130 -f 137/66/34 136/65/34 168/93/34 -f 150/64/34 182/31/34 183/90/34 -f 138/72/34 137/70/34 169/94/34 -f 151/49/34 183/90/34 184/93/34 -f 139/73/34 138/72/34 170/95/34 -f 152/65/34 184/93/34 185/96/34 -f 140/75/34 139/73/34 171/97/34 -f 153/29/34 185/30/34 186/31/34 -f 140/75/34 172/98/34 173/99/34 -f 154/64/34 186/31/34 187/90/34 -f 141/29/34 173/30/34 174/31/34 -f 155/49/34 187/90/34 188/93/34 -f 142/64/34 174/31/34 175/90/34 -f 129/82/34 130/80/34 162/100/34 -f 157/66/34 156/65/34 188/93/34 -f 143/49/34 175/90/34 176/101/34 -f 131/85/34 129/82/34 161/102/34 -f 158/64/34 157/29/34 189/30/34 -f 144/65/34 176/101/34 177/96/34 -f 132/86/34 131/85/34 163/103/34 -f 159/88/34 158/64/34 190/31/34 -f 145/29/34 177/30/34 178/31/34 -f 133/87/34 132/86/34 164/104/34 -f 159/88/34 191/90/34 192/93/34 -f 146/64/34 178/31/34 179/90/34 -f 134/64/34 133/29/34 165/30/34 -f 130/66/34 160/65/34 192/93/34 -f 147/49/34 179/90/34 180/101/34 -f 134/64/34 166/31/34 167/90/34 -f 148/65/34 180/101/34 181/96/34 -f 136/65/34 135/49/34 167/90/34 -f 210/105/131 242/106/131 243/107/131 -f 163/103/132 161/102/132 193/108/132 -f 190/31/133 189/30/133 221/109/133 -f 176/101/134 208/92/134 209/110/134 -f 163/103/135 195/111/135 196/112/135 -f 190/31/136 222/105/136 223/91/136 -f 178/31/137 177/30/137 209/109/137 -f 165/113/138 164/104/138 196/112/138 -f 191/90/139 223/91/139 224/92/139 -f 179/90/140 178/31/140 210/105/140 -f 166/31/141 165/30/141 197/109/141 -f 192/93/142 224/92/142 194/110/142 -f 179/90/143 211/91/143 212/92/143 -f 167/90/144 166/31/144 198/105/144 -f 181/96/145 180/101/145 212/92/145 -f 168/93/146 167/90/146 199/91/146 -f 181/30/147 213/109/147 214/105/147 -f 169/96/148 168/93/148 200/92/148 -f 183/90/149 182/31/149 214/105/149 -f 169/94/150 201/114/150 202/115/150 -f 183/90/151 215/91/151 216/92/151 -f 171/97/152 170/95/152 202/115/152 -f 185/96/153 184/93/153 216/92/153 -f 171/97/154 203/116/154 204/117/154 -f 186/31/155 185/30/155 217/109/155 -f 173/99/156 172/98/156 204/117/156 -f 187/90/157 186/31/157 218/105/157 -f 174/31/158 173/30/158 205/109/158 -f 188/93/159 187/90/159 219/91/159 -f 175/90/160 174/31/160 206/105/160 -f 161/102/161 162/100/161 194/118/161 -f 189/96/162 188/93/162 220/92/162 -f 245/119/163 277/120/163 278/121/163 -f 197/109/164 229/119/164 230/106/164 -f 224/92/165 256/122/165 226/123/165 -f 211/91/166 243/107/166 244/122/166 -f 198/105/167 230/106/167 231/107/167 -f 212/92/168 244/122/168 245/123/168 -f 199/91/169 231/107/169 232/122/169 -f 213/109/170 245/119/170 246/106/170 -f 200/92/171 232/122/171 233/123/171 -f 215/91/172 214/105/172 246/106/172 -f 201/114/173 233/124/173 234/125/173 -f 215/91/174 247/107/174 248/122/174 -f 202/115/175 234/125/175 235/126/175 -f 217/110/176 216/92/176 248/122/176 -f 203/116/177 235/126/177 236/127/177 -f 218/105/178 217/109/178 249/119/178 -f 204/117/179 236/127/179 237/128/179 -f 218/105/180 250/106/180 251/107/180 -f 205/109/181 237/119/181 238/106/181 -f 219/91/182 251/107/182 252/122/182 -f 206/105/183 238/106/183 239/107/183 -f 194/118/184 226/129/184 225/130/184 -f 221/110/185 220/92/185 252/122/185 -f 207/91/186 239/107/186 240/122/186 -f 193/108/187 225/130/187 227/131/187 -f 222/105/188 221/109/188 253/119/188 -f 208/92/189 240/122/189 241/123/189 -f 195/111/190 227/131/190 228/132/190 -f 222/105/191 254/106/191 255/107/191 -f 209/109/192 241/119/192 242/106/192 -f 196/112/193 228/132/193 229/133/193 -f 223/91/194 255/107/194 256/122/194 -f 280/134/195 312/135/195 313/136/195 -f 232/122/196 264/134/196 265/137/196 -f 247/107/197 246/106/197 278/121/197 -f 233/124/198 265/138/198 266/139/198 -f 247/107/199 279/140/199 280/134/199 -f 235/126/200 234/125/200 266/139/200 -f 248/122/201 280/134/201 281/137/201 -f 235/126/202 267/141/202 268/142/202 -f 250/106/203 249/119/203 281/120/203 -f 237/128/204 236/127/204 268/142/204 -f 250/106/205 282/121/205 283/140/205 -f 237/119/206 269/120/206 270/121/206 -f 252/122/207 251/107/207 283/140/207 -f 238/106/208 270/121/208 271/140/208 -f 226/129/209 258/143/209 257/144/209 -f 253/123/210 252/122/210 284/134/210 -f 239/107/211 271/140/211 272/134/211 -f 225/130/212 257/144/212 259/145/212 -f 253/119/213 285/120/213 286/121/213 -f 240/122/214 272/134/214 273/137/214 -f 228/132/215 227/131/215 259/145/215 -f 255/107/216 254/106/216 286/121/216 -f 241/119/217 273/120/217 274/121/217 -f 229/133/218 228/132/218 260/146/218 -f 255/107/219 287/140/219 288/134/219 -f 242/106/220 274/121/220 275/140/220 -f 229/119/221 261/120/221 262/121/221 -f 226/123/222 256/122/222 288/134/222 -f 243/107/223 275/140/223 276/134/223 -f 231/107/224 230/106/224 262/121/224 -f 245/123/225 244/122/225 276/134/225 -f 231/107/226 263/140/226 264/134/226 -f 316/135/227 315/147/227 347/148/227 -f 267/141/228 299/149/228 300/150/228 -f 281/120/229 313/151/229 314/152/229 -f 268/142/230 300/150/230 301/153/230 -f 282/121/231 314/152/231 315/147/231 -f 269/120/232 301/151/232 302/152/232 -f 283/140/233 315/147/233 316/135/233 -f 270/121/234 302/152/234 303/147/234 -f 258/143/235 290/154/235 289/155/235 -f 284/134/236 316/135/236 317/136/236 -f 271/140/237 303/147/237 304/135/237 -f 259/145/238 257/144/238 289/155/238 -f 286/121/239 285/120/239 317/151/239 -f 272/134/240 304/135/240 305/136/240 -f 260/146/241 259/145/241 291/156/241 -f 286/121/242 318/152/242 319/157/242 -f 273/120/243 305/151/243 306/152/243 -f 261/158/244 260/146/244 292/159/244 -f 287/140/245 319/157/245 320/135/245 -f 274/121/246 306/152/246 307/147/246 -f 262/121/247 261/120/247 293/151/247 -f 258/160/248 288/134/248 320/135/248 -f 275/140/249 307/147/249 308/135/249 -f 262/121/250 294/152/250 295/147/250 -f 277/137/251 276/134/251 308/135/251 -f 263/140/252 295/147/252 296/135/252 -f 277/120/253 309/151/253 310/152/253 -f 264/134/254 296/135/254 297/136/254 -f 278/121/255 310/152/255 311/147/255 -f 266/139/256 265/138/256 297/161/256 -f 279/140/257 311/147/257 312/135/257 -f 267/141/258 266/139/258 298/162/258 -f 324/163/259 323/164/259 355/165/259 -f 303/147/260 302/152/260 334/166/260 -f 290/154/261 322/167/261 321/166/261 -f 316/135/262 348/168/262 349/169/262 -f 303/147/263 335/148/263 336/168/263 -f 291/156/264 289/155/264 321/166/264 -f 317/151/265 349/167/265 350/166/265 -f 304/135/266 336/168/266 337/169/266 -f 291/156/267 323/164/267 324/163/267 -f 318/152/268 350/166/268 351/148/268 -f 305/151/269 337/167/269 338/166/269 -f 292/159/270 324/163/270 325/170/270 -f 320/135/271 319/157/271 351/148/271 -f 306/152/272 338/166/272 339/148/272 -f 294/152/273 293/151/273 325/167/273 -f 320/135/274 352/168/274 322/169/274 -f 307/147/275 339/148/275 340/168/275 -f 294/152/276 326/166/276 327/148/276 -f 308/135/277 340/168/277 341/169/277 -f 296/135/278 295/147/278 327/148/278 -f 309/151/279 341/167/279 342/166/279 -f 296/135/280 328/168/280 329/169/280 -f 311/147/281 310/152/281 342/166/281 -f 298/162/282 297/161/282 329/171/282 -f 311/147/283 343/148/283 344/168/283 -f 298/162/284 330/172/284 331/173/284 -f 312/135/285 344/168/285 345/169/285 -f 300/150/286 299/149/286 331/173/286 -f 313/151/287 345/167/287 346/166/287 -f 300/150/288 332/174/288 333/175/288 -f 314/152/289 346/166/289 347/148/289 -f 301/151/290 333/167/290 334/166/290 -f 358/176/291 390/177/291 391/178/291 -f 351/148/292 350/166/292 382/176/292 -f 337/167/293 369/179/293 370/176/293 -f 325/170/294 324/163/294 356/180/294 -f 352/168/295 351/148/295 383/181/295 -f 339/148/296 338/166/296 370/176/296 -f 326/166/297 325/167/297 357/179/297 -f 352/168/298 384/182/298 354/183/298 -f 339/148/299 371/181/299 372/182/299 -f 326/166/300 358/176/300 359/181/300 -f 340/168/301 372/182/301 373/184/301 -f 328/168/302 327/148/302 359/181/302 -f 341/167/303 373/179/303 374/176/303 -f 328/168/304 360/182/304 361/184/304 -f 342/166/305 374/176/305 375/181/305 -f 330/172/306 329/171/306 361/185/306 -f 343/148/307 375/181/307 376/182/307 -f 330/172/308 362/186/308 363/187/308 -f 344/168/309 376/182/309 377/184/309 -f 331/173/310 363/187/310 364/188/310 -f 345/167/311 377/179/311 378/176/311 -f 332/174/312 364/188/312 365/189/312 -f 346/166/313 378/176/313 379/181/313 -f 334/166/314 333/167/314 365/179/314 -f 347/148/315 379/181/315 380/182/315 -f 334/166/316 366/176/316 367/181/316 -f 322/167/317 354/190/317 353/191/317 -f 348/168/318 380/182/318 381/183/318 -f 335/148/319 367/181/319 368/182/319 -f 321/166/320 353/191/320 355/165/320 -f 349/167/321 381/179/321 382/176/321 -f 336/168/322 368/182/322 369/184/322 -f 393/192/323 425/193/323 426/194/323 -f 373/184/324 372/182/324 404/195/324 -f 360/182/325 359/181/325 391/178/325 -f 374/176/326 373/179/326 405/196/326 -f 361/184/327 360/182/327 392/197/327 -f 375/181/328 374/176/328 406/177/328 -f 361/185/329 393/192/329 394/198/329 -f 375/181/330 407/178/330 408/195/330 -f 362/186/331 394/198/331 395/199/331 -f 377/184/332 376/182/332 408/195/332 -f 363/187/333 395/199/333 396/200/333 -f 377/179/334 409/196/334 410/177/334 -f 364/188/335 396/200/335 397/201/335 -f 378/176/336 410/177/336 411/178/336 -f 366/176/337 365/179/337 397/196/337 -f 380/182/338 379/181/338 411/178/338 -f 367/181/339 366/176/339 398/177/339 -f 354/190/340 386/196/340 385/202/340 -f 380/182/341 412/195/341 413/203/341 -f 368/182/342 367/181/342 399/178/342 -f 353/191/343 385/202/343 387/204/343 -f 382/176/344 381/179/344 413/196/344 -f 369/184/345 368/182/345 400/195/345 -f 356/180/346 355/165/346 387/204/346 -f 382/176/347 414/177/347 415/178/347 -f 370/176/348 369/179/348 401/196/348 -f 356/180/349 388/197/349 389/203/349 -f 384/182/350 383/181/350 415/178/350 -f 370/176/351 402/177/351 403/178/351 -f 357/179/352 389/196/352 390/177/352 -f 354/183/353 384/182/353 416/197/353 -f 371/181/354 403/178/354 404/195/354 -f 428/205/355 460/206/355 461/207/355 -f 407/178/356 439/208/356 440/205/356 -f 394/198/357 426/194/357 427/209/357 -f 408/195/358 440/205/358 441/210/358 -f 395/199/359 427/209/359 428/205/359 -f 410/177/360 409/196/360 441/193/360 -f 397/201/361 396/200/361 428/205/361 -f 411/178/362 410/177/362 442/194/362 -f 397/196/363 429/193/363 430/194/363 -f 412/195/364 411/178/364 443/208/364 -f 398/177/365 430/194/365 431/208/365 -f 385/202/366 386/196/366 418/193/366 -f 412/195/367 444/205/367 445/210/367 -f 400/195/368 399/178/368 431/208/368 -f 385/202/369 417/194/369 419/208/369 -f 413/196/370 445/193/370 446/194/370 -f 400/195/371 432/205/371 433/210/371 -f 387/204/372 419/208/372 420/211/372 -f 414/177/373 446/194/373 447/208/373 -f 401/196/374 433/193/374 434/194/374 -f 388/197/375 420/211/375 421/210/375 -f 415/178/376 447/208/376 448/205/376 -f 402/177/377 434/194/377 435/208/377 -f 389/196/378 421/193/378 422/194/378 -f 416/197/379 448/205/379 418/210/379 -f 403/178/380 435/208/380 436/205/380 -f 391/178/381 390/177/381 422/194/381 -f 404/195/382 436/205/382 437/210/382 -f 391/178/383 423/208/383 424/205/383 -f 405/196/384 437/193/384 438/194/384 -f 393/203/385 392/197/385 424/205/385 -f 406/177/386 438/194/386 439/208/386 -f 467/212/387 457/213/387 451/214/387 -f 443/208/388 442/194/388 474/215/388 -f 429/193/389 461/216/389 462/215/389 -f 444/205/390 443/208/390 475/217/390 -f 430/194/391 462/215/391 463/217/391 -f 418/193/392 450/216/392 449/215/392 -f 445/210/393 444/205/393 476/206/393 -f 431/208/394 463/217/394 464/206/394 -f 417/194/395 449/215/395 451/217/395 -f 445/193/396 477/216/396 478/215/396 -f 433/210/397 432/205/397 464/206/397 -f 420/211/398 419/208/398 451/217/398 -f 446/194/399 478/215/399 479/217/399 -f 433/193/400 465/216/400 466/215/400 -f 421/210/401 420/211/401 452/206/401 -f 447/208/402 479/217/402 480/206/402 -f 434/194/403 466/215/403 467/217/403 -f 421/193/404 453/216/404 454/215/404 -f 448/205/405 480/206/405 450/218/405 -f 435/208/406 467/217/406 468/206/406 -f 422/194/407 454/215/407 455/217/407 -f 436/205/408 468/206/408 469/218/408 -f 423/208/409 455/217/409 456/206/409 -f 438/194/410 437/193/410 469/216/410 -f 425/210/411 424/205/411 456/206/411 -f 438/194/412 470/215/412 471/217/412 -f 425/193/413 457/216/413 458/215/413 -f 439/208/414 471/217/414 472/206/414 -f 426/194/415 458/215/415 459/217/415 -f 440/205/416 472/206/416 473/218/416 -f 428/205/417 427/209/417 459/217/417 -f 441/193/418 473/216/418 474/215/418 -f 1/17/1 2/1/1 3/3/1 -f 5/19/2 3/3/2 6/4/2 -f 5/19/3 6/4/3 7/6/3 -f 7/6/4 8/5/4 9/8/4 -f 9/25/5 10/9/5 11/11/5 -f 13/13/6 11/11/6 14/12/6 -f 15/6/7 13/13/7 16/14/7 -f 15/6/8 16/14/8 17/16/8 -f 17/25/9 18/9/9 19/11/9 -f 21/13/10 19/11/10 22/4/10 -f 21/13/11 22/4/11 23/6/11 -f 23/6/12 24/14/12 25/16/12 -f 27/11/13 25/17/13 28/2/13 -f 29/19/14 27/11/14 30/4/14 -f 31/6/15 29/19/15 32/5/15 -f 33/8/16 31/6/16 34/7/16 -f 33/219/17 34/1/17 35/21/17 -f 37/19/18 35/21/18 38/4/18 -f 37/19/19 38/4/19 39/23/19 -f 39/23/20 40/22/20 41/24/20 -f 41/25/21 42/9/21 43/11/21 -f 43/11/22 44/10/22 45/13/22 -f 45/13/23 46/4/23 47/6/23 -f 47/6/24 48/14/24 49/16/24 -f 51/11/25 49/25/25 52/10/25 -f 51/11/26 52/10/26 53/13/26 -f 53/13/27 54/4/27 55/6/27 -f 55/6/28 56/14/28 57/16/28 -f 57/219/29 58/1/29 59/21/29 -f 59/21/419 60/10/419 61/19/419 -f 24/14/31 22/4/31 76/27/31 -f 1/16/32 63/6/32 2/28/32 -f 61/19/33 62/4/33 63/6/33 -f 150/64/34 149/29/34 182/31/34 -f 69/35/35 68/32/35 101/34/35 -f 42/7/36 40/22/36 85/35/36 -f 60/10/37 58/1/37 94/37/37 -f 16/14/38 14/12/38 72/39/38 -f 34/7/39 32/5/39 81/40/39 -f 90/44/40 52/10/40 89/41/40 -f 68/32/41 8/5/41 67/42/41 -f 77/46/42 26/15/42 76/27/42 -f 86/44/43 44/10/43 85/41/43 -f 62/4/44 60/10/44 95/42/44 -f 18/15/45 16/14/45 73/43/45 -f 82/37/46 36/20/46 81/36/46 -f 54/4/47 52/10/47 91/38/47 -f 10/7/48 8/5/48 69/35/48 -f 78/37/49 28/2/49 77/45/49 -f 46/4/50 44/10/50 87/26/50 -f 64/14/51 62/4/51 96/32/51 -f 20/10/52 18/9/52 74/44/52 -f 38/4/53 36/20/53 83/42/53 -f 56/14/54 54/4/54 92/39/54 -f 12/10/55 10/9/55 70/44/55 -f 30/4/56 28/2/56 79/42/56 -f 48/14/57 46/4/57 88/27/57 -f 4/2/58 2/1/58 65/37/58 -f 2/28/59 64/14/59 66/35/59 -f 22/4/60 20/10/60 75/26/60 -f 40/22/61 38/4/61 84/32/61 -f 93/46/62 58/15/62 92/39/62 -f 14/12/63 12/10/63 71/38/63 -f 80/32/64 32/5/64 79/42/64 -f 50/15/65 48/14/65 89/46/65 -f 6/4/66 4/2/66 67/42/66 -f 136/65/67 104/47/67 135/49/67 -f 96/32/68 95/42/68 128/33/68 -f 115/50/69 83/42/69 114/51/69 -f 70/44/70 69/36/70 102/53/70 -f 98/55/71 66/35/71 128/33/71 -f 84/32/72 83/42/72 116/33/72 -f 71/38/73 70/44/73 103/54/73 -f 85/35/74 84/32/74 117/55/74 -f 72/39/75 71/38/75 104/56/75 -f 86/44/76 85/41/76 118/51/76 -f 73/43/77 72/39/77 105/58/77 -f 87/26/78 86/44/78 119/59/78 -f 74/44/79 73/41/79 106/51/79 -f 88/27/80 87/26/80 120/56/80 -f 75/26/81 74/44/81 107/50/81 -f 89/46/82 88/27/82 121/60/82 -f 76/27/83 75/26/83 108/56/83 -f 90/44/84 89/41/84 122/53/84 -f 77/46/85 76/27/85 109/60/85 -f 91/38/86 90/44/86 123/54/86 -f 78/37/87 77/45/87 110/51/87 -f 92/39/88 91/38/88 124/56/88 -f 79/42/89 78/37/89 111/50/89 -f 65/37/90 66/45/90 97/51/90 -f 93/46/91 92/39/91 125/60/91 -f 80/32/92 79/42/92 112/33/92 -f 67/42/93 65/37/93 99/50/93 -f 94/37/94 93/36/94 126/51/94 -f 81/40/95 80/32/95 113/55/95 -f 68/32/96 67/42/96 100/33/96 -f 95/42/97 94/37/97 127/50/97 -f 82/37/98 81/36/98 114/51/98 -f 118/67/99 117/63/99 150/64/99 -f 105/89/100 104/47/100 137/66/100 -f 119/71/101 118/67/101 151/49/101 -f 138/72/102 106/68/102 137/70/102 -f 120/47/103 119/71/103 152/65/103 -f 107/74/104 106/68/104 139/73/104 -f 121/89/105 120/47/105 153/66/105 -f 108/76/106 107/74/106 140/75/106 -f 154/64/107 122/67/107 153/29/107 -f 109/220/108 108/76/108 141/77/108 -f 155/49/109 123/71/109 154/64/109 -f 110/67/110 109/63/110 142/64/110 -f 156/65/111 124/47/111 155/49/111 -f 111/48/112 110/67/112 143/49/112 -f 129/82/113 97/78/113 130/80/113 -f 125/89/114 124/47/114 157/66/114 -f 112/47/115 111/48/115 144/65/115 -f 131/85/116 99/81/116 129/82/116 -f 158/64/117 126/67/117 157/29/117 -f 113/89/118 112/47/118 145/83/118 -f 132/86/119 100/84/119 131/85/119 -f 159/88/120 127/71/120 158/64/120 -f 146/64/121 114/67/121 145/29/121 -f 101/221/122 100/84/122 133/87/122 -f 128/47/123 127/71/123 160/65/123 -f 147/49/124 115/48/124 146/64/124 -f 102/67/125 101/63/125 134/64/125 -f 98/89/126 128/47/126 130/66/126 -f 116/47/127 115/48/127 148/65/127 -f 103/48/128 102/67/128 135/49/128 -f 149/83/129 117/89/129 148/65/129 -f 176/101/130 175/90/130 208/92/130 -f 169/96/34 137/66/34 168/93/34 -f 151/49/34 150/64/34 183/90/34 -f 170/95/34 138/72/34 169/94/34 -f 152/65/34 151/49/34 184/93/34 -f 171/97/34 139/73/34 170/95/34 -f 153/66/34 152/65/34 185/96/34 -f 172/98/34 140/75/34 171/97/34 -f 154/64/34 153/29/34 186/31/34 -f 141/77/34 140/75/34 173/99/34 -f 155/49/34 154/64/34 187/90/34 -f 142/64/34 141/29/34 174/31/34 -f 156/65/34 155/49/34 188/93/34 -f 143/49/34 142/64/34 175/90/34 -f 161/102/34 129/82/34 162/100/34 -f 189/96/34 157/66/34 188/93/34 -f 144/65/34 143/49/34 176/101/34 -f 163/103/34 131/85/34 161/102/34 -f 190/31/34 158/64/34 189/30/34 -f 145/83/34 144/65/34 177/96/34 -f 164/104/34 132/86/34 163/103/34 -f 191/90/34 159/88/34 190/31/34 -f 146/64/34 145/29/34 178/31/34 -f 165/113/34 133/87/34 164/104/34 -f 160/65/34 159/88/34 192/93/34 -f 147/49/34 146/64/34 179/90/34 -f 166/31/34 134/64/34 165/30/34 -f 162/96/34 130/66/34 192/93/34 -f 148/65/34 147/49/34 180/101/34 -f 135/49/34 134/64/34 167/90/34 -f 149/83/34 148/65/34 181/96/34 -f 168/93/34 136/65/34 167/90/34 -f 211/91/131 210/105/131 243/107/131 -f 195/111/132 163/103/132 193/108/132 -f 222/105/133 190/31/133 221/109/133 -f 177/96/134 176/101/134 209/110/134 -f 164/104/135 163/103/135 196/112/135 -f 191/90/136 190/31/136 223/91/136 -f 210/105/137 178/31/137 209/109/137 -f 197/222/138 165/113/138 196/112/138 -f 192/93/139 191/90/139 224/92/139 -f 211/91/140 179/90/140 210/105/140 -f 198/105/141 166/31/141 197/109/141 -f 162/96/142 192/93/142 194/110/142 -f 180/101/143 179/90/143 212/92/143 -f 199/91/144 167/90/144 198/105/144 -f 213/110/145 181/96/145 212/92/145 -f 200/92/146 168/93/146 199/91/146 -f 182/31/147 181/30/147 214/105/147 -f 201/110/148 169/96/148 200/92/148 -f 215/91/149 183/90/149 214/105/149 -f 170/95/150 169/94/150 202/115/150 -f 184/93/151 183/90/151 216/92/151 -f 203/116/152 171/97/152 202/115/152 -f 217/110/153 185/96/153 216/92/153 -f 172/98/154 171/97/154 204/117/154 -f 218/105/155 186/31/155 217/109/155 -f 205/223/156 173/99/156 204/117/156 -f 219/91/157 187/90/157 218/105/157 -f 206/105/158 174/31/158 205/109/158 -f 220/92/159 188/93/159 219/91/159 -f 207/91/160 175/90/160 206/105/160 -f 193/108/161 161/102/161 194/118/161 -f 221/110/162 189/96/162 220/92/162 -f 246/106/163 245/119/163 278/121/163 -f 198/105/164 197/109/164 230/106/164 -f 194/110/165 224/92/165 226/123/165 -f 212/92/166 211/91/166 244/122/166 -f 199/91/167 198/105/167 231/107/167 -f 213/110/168 212/92/168 245/123/168 -f 200/92/169 199/91/169 232/122/169 -f 214/105/170 213/109/170 246/106/170 -f 201/110/171 200/92/171 233/123/171 -f 247/107/172 215/91/172 246/106/172 -f 202/115/173 201/114/173 234/125/173 -f 216/92/174 215/91/174 248/122/174 -f 203/116/175 202/115/175 235/126/175 -f 249/123/176 217/110/176 248/122/176 -f 204/117/177 203/116/177 236/127/177 -f 250/106/178 218/105/178 249/119/178 -f 205/223/179 204/117/179 237/128/179 -f 219/91/180 218/105/180 251/107/180 -f 206/105/181 205/109/181 238/106/181 -f 220/92/182 219/91/182 252/122/182 -f 207/91/183 206/105/183 239/107/183 -f 193/108/184 194/118/184 225/130/184 -f 253/123/185 221/110/185 252/122/185 -f 208/92/186 207/91/186 240/122/186 -f 195/111/187 193/108/187 227/131/187 -f 254/106/188 222/105/188 253/119/188 -f 209/110/189 208/92/189 241/123/189 -f 196/112/190 195/111/190 228/132/190 -f 223/91/191 222/105/191 255/107/191 -f 210/105/192 209/109/192 242/106/192 -f 197/222/193 196/112/193 229/133/193 -f 224/92/194 223/91/194 256/122/194 -f 281/137/195 280/134/195 313/136/195 -f 233/123/196 232/122/196 265/137/196 -f 279/140/197 247/107/197 278/121/197 -f 234/125/198 233/124/198 266/139/198 -f 248/122/199 247/107/199 280/134/199 -f 267/141/200 235/126/200 266/139/200 -f 249/123/201 248/122/201 281/137/201 -f 236/127/202 235/126/202 268/142/202 -f 282/121/203 250/106/203 281/120/203 -f 269/224/204 237/128/204 268/142/204 -f 251/107/205 250/106/205 283/140/205 -f 238/106/206 237/119/206 270/121/206 -f 284/134/207 252/122/207 283/140/207 -f 239/107/208 238/106/208 271/140/208 -f 225/130/209 226/129/209 257/144/209 -f 285/137/210 253/123/210 284/134/210 -f 240/122/211 239/107/211 272/134/211 -f 227/131/212 225/130/212 259/145/212 -f 254/106/213 253/119/213 286/121/213 -f 241/123/214 240/122/214 273/137/214 -f 260/146/215 228/132/215 259/145/215 -f 287/140/216 255/107/216 286/121/216 -f 242/106/217 241/119/217 274/121/217 -f 261/158/218 229/133/218 260/146/218 -f 256/122/219 255/107/219 288/134/219 -f 243/107/220 242/106/220 275/140/220 -f 230/106/221 229/119/221 262/121/221 -f 258/160/222 226/123/222 288/134/222 -f 244/122/223 243/107/223 276/134/223 -f 263/140/224 231/107/224 262/121/224 -f 277/137/225 245/123/225 276/134/225 -f 232/122/226 231/107/226 264/134/226 -f 348/168/227 316/135/227 347/148/227 -f 268/142/228 267/141/228 300/150/228 -f 282/121/229 281/120/229 314/152/229 -f 269/224/230 268/142/230 301/153/230 -f 283/140/231 282/121/231 315/147/231 -f 270/121/232 269/120/232 302/152/232 -f 284/134/233 283/140/233 316/135/233 -f 271/140/234 270/121/234 303/147/234 -f 257/144/235 258/143/235 289/155/235 -f 285/137/236 284/134/236 317/136/236 -f 272/134/237 271/140/237 304/135/237 -f 291/156/238 259/145/238 289/155/238 -f 318/152/239 286/121/239 317/151/239 -f 273/137/240 272/134/240 305/136/240 -f 292/159/241 260/146/241 291/156/241 -f 287/140/242 286/121/242 319/157/242 -f 274/121/243 273/120/243 306/152/243 -f 293/225/244 261/158/244 292/159/244 -f 288/134/245 287/140/245 320/135/245 -f 275/140/246 274/121/246 307/147/246 -f 294/152/247 262/121/247 293/151/247 -f 290/136/248 258/160/248 320/135/248 -f 276/134/249 275/140/249 308/135/249 -f 263/140/250 262/121/250 295/147/250 -f 309/136/251 277/137/251 308/135/251 -f 264/134/252 263/140/252 296/135/252 -f 278/121/253 277/120/253 310/152/253 -f 265/137/254 264/134/254 297/136/254 -f 279/140/255 278/121/255 311/147/255 -f 298/162/256 266/139/256 297/161/256 -f 280/134/257 279/140/257 312/135/257 -f 299/149/258 267/141/258 298/162/258 -f 356/180/259 324/163/259 355/165/259 -f 335/148/260 303/147/260 334/166/260 -f 289/155/261 290/154/261 321/166/261 -f 317/136/262 316/135/262 349/169/262 -f 304/135/263 303/147/263 336/168/263 -f 323/164/264 291/156/264 321/166/264 -f 318/152/265 317/151/265 350/166/265 -f 305/136/266 304/135/266 337/169/266 -f 292/159/267 291/156/267 324/163/267 -f 319/157/268 318/152/268 351/148/268 -f 306/152/420 305/151/420 338/166/420 -f 293/225/270 292/159/270 325/170/270 -f 352/168/271 320/135/271 351/148/271 -f 307/147/272 306/152/272 339/148/272 -f 326/166/273 294/152/273 325/167/273 -f 290/136/274 320/135/274 322/169/274 -f 308/135/275 307/147/275 340/168/275 -f 295/147/276 294/152/276 327/148/276 -f 309/136/277 308/135/277 341/169/277 -f 328/168/278 296/135/278 327/148/278 -f 310/152/279 309/151/279 342/166/279 -f 297/136/280 296/135/280 329/169/280 -f 343/148/281 311/147/281 342/166/281 -f 330/172/282 298/162/282 329/171/282 -f 312/135/283 311/147/283 344/168/283 -f 299/149/284 298/162/284 331/173/284 -f 313/136/285 312/135/285 345/169/285 -f 332/174/286 300/150/286 331/173/286 -f 314/152/287 313/151/287 346/166/287 -f 301/153/288 300/150/288 333/175/288 -f 315/147/289 314/152/289 347/148/289 -f 302/152/290 301/151/290 334/166/290 -f 359/181/291 358/176/291 391/178/291 -f 383/181/292 351/148/292 382/176/292 -f 338/166/293 337/167/293 370/176/293 -f 357/183/294 325/170/294 356/180/294 -f 384/182/295 352/168/295 383/181/295 -f 371/181/296 339/148/296 370/176/296 -f 358/176/297 326/166/297 357/179/297 -f 322/169/298 352/168/298 354/183/298 -f 340/168/299 339/148/299 372/182/299 -f 327/148/300 326/166/300 359/181/300 -f 341/169/301 340/168/301 373/184/301 -f 360/182/302 328/168/302 359/181/302 -f 342/166/303 341/167/303 374/176/303 -f 329/169/304 328/168/304 361/184/304 -f 343/148/305 342/166/305 375/181/305 -f 362/186/306 330/172/306 361/185/306 -f 344/168/307 343/148/307 376/182/307 -f 331/173/308 330/172/308 363/187/308 -f 345/169/309 344/168/309 377/184/309 -f 332/174/310 331/173/310 364/188/310 -f 346/166/311 345/167/311 378/176/311 -f 333/175/312 332/174/312 365/189/312 -f 347/148/313 346/166/313 379/181/313 -f 366/176/314 334/166/314 365/179/314 -f 348/168/315 347/148/315 380/182/315 -f 335/148/316 334/166/316 367/181/316 -f 321/166/317 322/167/317 353/191/317 -f 349/169/318 348/168/318 381/183/318 -f 336/168/319 335/148/319 368/182/319 -f 323/164/320 321/166/320 355/165/320 -f 350/166/321 349/167/321 382/176/321 -f 337/169/322 336/168/322 369/184/322 -f 394/198/323 393/192/323 426/194/323 -f 405/203/324 373/184/324 404/195/324 -f 392/197/325 360/182/325 391/178/325 -f 406/177/326 374/176/326 405/196/326 -f 393/203/327 361/184/327 392/197/327 -f 407/178/328 375/181/328 406/177/328 -f 362/186/329 361/185/329 394/198/329 -f 376/182/330 375/181/330 408/195/330 -f 363/187/331 362/186/331 395/199/331 -f 409/203/332 377/184/332 408/195/332 -f 364/188/333 363/187/333 396/200/333 -f 378/176/334 377/179/334 410/177/334 -f 365/189/335 364/188/335 397/201/335 -f 379/181/336 378/176/336 411/178/336 -f 398/177/337 366/176/337 397/196/337 -f 412/195/338 380/182/338 411/178/338 -f 399/178/339 367/181/339 398/177/339 -f 353/191/340 354/190/340 385/202/340 -f 381/183/341 380/182/341 413/203/341 -f 400/195/342 368/182/342 399/178/342 -f 355/165/343 353/191/343 387/204/343 -f 414/177/344 382/176/344 413/196/344 -f 401/203/345 369/184/345 400/195/345 -f 388/197/346 356/180/346 387/204/346 -f 383/181/347 382/176/347 415/178/347 -f 402/177/348 370/176/348 401/196/348 -f 357/183/349 356/180/349 389/203/349 -f 416/197/350 384/182/350 415/178/350 -f 371/181/351 370/176/351 403/178/351 -f 358/176/352 357/179/352 390/177/352 -f 386/203/353 354/183/353 416/197/353 -f 372/182/354 371/181/354 404/195/354 -f 429/226/355 428/205/355 461/207/355 -f 408/195/356 407/178/356 440/205/356 -f 395/199/357 394/198/357 427/209/357 -f 409/203/358 408/195/358 441/210/358 -f 396/200/359 395/199/359 428/205/359 -f 442/194/360 410/177/360 441/193/360 -f 429/226/361 397/201/361 428/205/361 -f 443/208/362 411/178/362 442/194/362 -f 398/177/363 397/196/363 430/194/363 -f 444/205/364 412/195/364 443/208/364 -f 399/178/365 398/177/365 431/208/365 -f 417/194/366 385/202/366 418/193/366 -f 413/203/367 412/195/367 445/210/367 -f 432/205/368 400/195/368 431/208/368 -f 387/204/369 385/202/369 419/208/369 -f 414/177/370 413/196/370 446/194/370 -f 401/203/371 400/195/371 433/210/371 -f 388/197/372 387/204/372 420/211/372 -f 415/178/373 414/177/373 447/208/373 -f 402/177/374 401/196/374 434/194/374 -f 389/203/375 388/197/375 421/210/375 -f 416/197/376 415/178/376 448/205/376 -f 403/178/377 402/177/377 435/208/377 -f 390/177/378 389/196/378 422/194/378 -f 386/203/379 416/197/379 418/210/379 -f 404/195/380 403/178/380 436/205/380 -f 423/208/381 391/178/381 422/194/381 -f 405/203/382 404/195/382 437/210/382 -f 392/197/383 391/178/383 424/205/383 -f 406/177/384 405/196/384 438/194/384 -f 425/210/385 393/203/385 424/205/385 -f 407/178/386 406/177/386 439/208/386 -f 451/214/421 449/227/421 450/228/421 -f 450/228/387 480/229/387 451/214/387 -f 479/230/387 478/231/387 475/232/387 -f 477/233/387 476/234/387 475/232/387 -f 475/232/387 474/235/387 473/236/387 -f 473/236/387 472/237/387 475/232/387 -f 471/238/387 470/239/387 469/240/387 -f 469/240/387 468/241/387 471/238/387 -f 467/212/421 466/242/421 465/243/421 -f 465/243/422 464/244/422 467/212/422 -f 463/245/387 462/246/387 461/247/387 -f 461/247/387 460/248/387 459/249/387 -f 459/249/387 458/250/387 457/213/387 -f 457/213/387 456/251/387 455/252/387 -f 455/252/387 454/253/387 453/254/387 -f 453/254/387 452/255/387 451/214/387 -f 451/214/387 480/229/387 479/230/387 -f 478/231/387 477/233/387 475/232/387 -f 475/232/387 472/237/387 471/238/387 -f 471/238/387 468/241/387 467/212/387 -f 467/212/387 464/244/387 463/245/387 -f 463/245/387 461/247/387 467/212/387 -f 459/249/387 457/213/387 467/212/387 -f 455/252/387 453/254/387 451/214/387 -f 451/214/387 479/230/387 475/232/387 -f 475/232/387 471/238/387 451/214/387 -f 467/212/387 461/247/387 459/249/387 -f 457/213/387 455/252/387 451/214/387 -f 451/214/387 471/238/387 467/212/387 -f 475/217/388 443/208/388 474/215/388 -f 430/194/389 429/193/389 462/215/389 -f 476/206/390 444/205/390 475/217/390 -f 431/208/391 430/194/391 463/217/391 -f 417/194/392 418/193/392 449/215/392 -f 477/218/393 445/210/393 476/206/393 -f 432/205/423 431/208/423 464/206/423 -f 419/208/424 417/194/424 451/217/424 -f 446/194/396 445/193/396 478/215/396 -f 465/218/397 433/210/397 464/206/397 -f 452/206/398 420/211/398 451/217/398 -f 447/208/399 446/194/399 479/217/399 -f 434/194/400 433/193/400 466/215/400 -f 453/218/401 421/210/401 452/206/401 -f 448/205/402 447/208/402 480/206/402 -f 435/208/403 434/194/403 467/217/403 -f 422/194/404 421/193/404 454/215/404 -f 418/210/405 448/205/405 450/218/405 -f 436/205/406 435/208/406 468/206/406 -f 423/208/425 422/194/425 455/217/425 -f 437/210/426 436/205/426 469/218/426 -f 424/205/409 423/208/409 456/206/409 -f 470/215/410 438/194/410 469/216/410 -f 457/218/411 425/210/411 456/206/411 -f 439/208/427 438/194/427 471/217/427 -f 426/194/413 425/193/413 458/215/413 -f 440/205/414 439/208/414 472/206/414 -f 427/209/415 426/194/415 459/217/415 -f 441/210/416 440/205/416 473/218/416 -f 460/206/428 428/205/428 459/217/428 -f 442/194/418 441/193/418 474/215/418 diff --git a/src/main/resources/assets/hbm/models/mush.obj b/src/main/resources/assets/hbm/models/mush.obj deleted file mode 100644 index f68b80d1e..000000000 --- a/src/main/resources/assets/hbm/models/mush.obj +++ /dev/null @@ -1,2093 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'mush.blend' -# www.blender.org -o Cylinder -v -0.000000 0.000000 -2.999999 -v -0.000000 4.000000 -2.000000 -v 0.585271 0.000000 -2.942355 -v 0.390181 4.000000 -1.961570 -v 1.148050 0.000000 -2.771638 -v 0.765367 4.000000 -1.847759 -v 1.666710 0.000000 -2.494408 -v 1.111140 4.000000 -1.662939 -v 2.121320 0.000000 -2.121320 -v 1.414213 4.000000 -1.414213 -v 2.494409 0.000000 -1.666710 -v 1.662939 4.000000 -1.111140 -v 2.771638 0.000000 -1.148050 -v 1.847759 4.000000 -0.765367 -v 2.942355 0.000000 -0.585271 -v 1.961570 4.000000 -0.390180 -v 3.000000 0.000000 0.000000 -v 2.000000 4.000000 0.000000 -v 2.942356 0.000000 0.585271 -v 1.961571 4.000000 0.390181 -v 2.771638 0.000000 1.148051 -v 1.847759 4.000000 0.765367 -v 2.494409 0.000000 1.666711 -v 1.662939 4.000000 1.111141 -v 2.121320 0.000000 2.121321 -v 1.414213 4.000000 1.414214 -v 1.666710 0.000000 2.494410 -v 1.111140 4.000000 1.662940 -v 1.148050 0.000000 2.771640 -v 0.765366 4.000000 1.847760 -v 0.585270 0.000000 2.942357 -v 0.390180 4.000000 1.961571 -v -0.000001 0.000000 3.000000 -v -0.000001 4.000000 2.000000 -v -0.585272 0.000000 2.942356 -v -0.390182 4.000000 1.961571 -v -1.148052 0.000000 2.771639 -v -0.765368 4.000000 1.847759 -v -1.666712 0.000000 2.494409 -v -1.111142 4.000000 1.662939 -v -2.121322 0.000000 2.121320 -v -1.414215 4.000000 1.414213 -v -2.494411 0.000000 1.666710 -v -1.662940 4.000000 1.111140 -v -2.771640 0.000000 1.148049 -v -1.847760 4.000000 0.765366 -v -2.942357 0.000000 0.585269 -v -1.961571 4.000000 0.390179 -v -3.000000 0.000000 -0.000002 -v -2.000000 4.000000 -0.000002 -v -2.942356 0.000000 -0.585274 -v -1.961570 4.000000 -0.390182 -v -2.771638 0.000000 -1.148053 -v -1.847758 4.000000 -0.765369 -v -2.494407 0.000000 -1.666713 -v -1.662938 4.000000 -1.111142 -v -2.121318 0.000000 -2.121322 -v -1.414212 4.000000 -1.414215 -v -1.666708 0.000000 -2.494411 -v -1.111138 4.000000 -1.662940 -v -1.148046 0.000000 -2.771640 -v -0.765364 4.000000 -1.847760 -v -0.585267 0.000000 -2.942356 -v -0.390178 4.000000 -1.961571 -v 0.292634 9.000000 -1.471178 -v -0.000001 9.000000 -1.500000 -v 0.574024 9.000000 -1.385819 -v 0.833354 9.000000 -1.247204 -v 1.060659 9.000000 -1.060660 -v 1.247203 9.000000 -0.833355 -v 1.385818 9.000000 -0.574025 -v 1.471177 9.000000 -0.292635 -v 1.499999 9.000000 0.000000 -v 1.471177 9.000000 0.292635 -v 1.385818 9.000000 0.574025 -v 1.247203 9.000000 0.833355 -v 1.060659 9.000000 1.060660 -v 0.833354 9.000000 1.247205 -v 0.574024 9.000000 1.385820 -v 0.292634 9.000000 1.471178 -v -0.000002 9.000000 1.500000 -v -0.292637 9.000000 1.471178 -v -0.574027 9.000000 1.385819 -v -0.833357 9.000000 1.247204 -v -1.060662 9.000000 1.060660 -v -1.247206 9.000000 0.833355 -v -1.385821 9.000000 0.574024 -v -1.471179 9.000000 0.292634 -v -1.500001 9.000000 -0.000001 -v -1.471179 9.000000 -0.292637 -v -1.385820 9.000000 -0.574027 -v -1.247205 9.000000 -0.833357 -v -1.060660 9.000000 -1.060661 -v -0.833355 9.000000 -1.247205 -v -0.574024 9.000000 -1.385820 -v -0.292635 9.000000 -1.471178 -v 0.243864 22.000000 -1.225981 -v 0.000001 22.000000 -1.250000 -v 0.478355 22.000000 -1.154849 -v 0.694464 22.000000 -1.039337 -v 0.883885 22.000000 -0.883883 -v 1.039338 22.000000 -0.694463 -v 1.154850 22.000000 -0.478354 -v 1.225983 22.000000 -0.243863 -v 1.250001 22.000000 -0.000000 -v 1.225983 22.000000 0.243863 -v 1.154851 22.000000 0.478354 -v 1.039338 22.000000 0.694463 -v 0.883885 22.000000 0.883884 -v 0.694464 22.000000 1.039337 -v 0.478355 22.000000 1.154850 -v 0.243864 22.000000 1.225982 -v 0.000001 22.000000 1.250000 -v -0.243862 22.000000 1.225982 -v -0.478354 22.000000 1.154849 -v -0.694462 22.000000 1.039337 -v -0.883883 22.000000 0.883883 -v -1.039336 22.000000 0.694462 -v -1.154849 22.000000 0.478353 -v -1.225981 22.000000 0.243862 -v -1.249999 22.000000 -0.000001 -v -1.225980 22.000000 -0.243864 -v -1.154848 22.000000 -0.478356 -v -1.039335 22.000000 -0.694464 -v -0.883881 22.000000 -0.883884 -v -0.694460 22.000000 -1.039338 -v -0.478351 22.000000 -1.154850 -v -0.243860 22.000000 -1.225982 -v 0.390184 20.000000 -1.961570 -v 0.000004 20.000000 -2.000000 -v 0.765370 20.000000 -1.847759 -v 1.111144 20.000000 -1.662939 -v 1.414217 20.000000 -1.414213 -v 1.662943 20.000000 -1.111140 -v 1.847763 20.000000 -0.765367 -v 1.961574 20.000000 -0.390180 -v 2.000004 20.000000 0.000000 -v 1.961574 20.000000 0.390181 -v 1.847763 20.000000 0.765367 -v 1.662943 20.000000 1.111141 -v 1.414217 20.000000 1.414214 -v 1.111144 20.000000 1.662940 -v 0.765370 20.000000 1.847760 -v 0.390184 20.000000 1.961571 -v 0.000003 20.000000 2.000000 -v -0.390178 20.000000 1.961571 -v -0.765364 20.000000 1.847759 -v -1.111138 20.000000 1.662939 -v -1.414211 20.000000 1.414213 -v -1.662936 20.000000 1.111140 -v -1.847756 20.000000 0.765366 -v -1.961567 20.000000 0.390179 -v -1.999996 20.000000 -0.000002 -v -1.961566 20.000000 -0.390182 -v -1.847754 20.000000 -0.765369 -v -1.662934 20.000000 -1.111142 -v -1.414208 20.000000 -1.414215 -v -1.111135 20.000000 -1.662941 -v -0.765361 20.000000 -1.847760 -v -0.390174 20.000000 -1.961571 -v 0.546257 20.000000 -2.746198 -v 0.000004 20.000000 -2.799999 -v 1.071518 20.000000 -2.586862 -v 1.555601 20.000000 -2.328114 -v 1.979903 20.000000 -1.979898 -v 2.328119 20.000000 -1.555596 -v 2.586867 20.000000 -1.071513 -v 2.746203 20.000000 -0.546253 -v 2.800004 20.000000 0.000000 -v 2.746203 20.000000 0.546253 -v 2.586867 20.000000 1.071514 -v 2.328119 20.000000 1.555597 -v 1.979903 20.000000 1.979900 -v 1.555601 20.000000 2.328115 -v 1.071517 20.000000 2.586864 -v 0.546256 20.000000 2.746200 -v 0.000003 20.000000 2.800000 -v -0.546250 20.000000 2.746199 -v -1.071511 20.000000 2.586863 -v -1.555594 20.000000 2.328115 -v -1.979896 20.000000 1.979898 -v -2.328112 20.000000 1.555596 -v -2.586860 20.000000 1.071512 -v -2.746195 20.000000 0.546251 -v -2.799996 20.000000 -0.000002 -v -2.746194 20.000000 -0.546255 -v -2.586858 20.000000 -1.071516 -v -2.328109 20.000000 -1.555599 -v -1.979892 20.000000 -1.979901 -v -1.555590 20.000000 -2.328117 -v -1.071506 20.000000 -2.586864 -v -0.546245 20.000000 -2.746199 -v 0.663312 21.000000 -3.334670 -v 0.000004 21.000000 -3.400000 -v 1.301128 21.000000 -3.141190 -v 1.888944 21.000000 -2.826996 -v 2.404167 21.000000 -2.404163 -v 2.827002 21.000000 -1.888938 -v 3.141195 21.000000 -1.301123 -v 3.334675 21.000000 -0.663307 -v 3.400004 21.000000 0.000000 -v 3.334675 21.000000 0.663307 -v 3.141196 21.000000 1.301124 -v 2.827002 21.000000 1.888939 -v 2.404167 21.000000 2.404164 -v 1.888943 21.000000 2.826997 -v 1.301127 21.000000 3.141191 -v 0.663311 21.000000 3.334671 -v 0.000003 21.000000 3.400000 -v -0.663304 21.000000 3.334670 -v -1.301121 21.000000 3.141190 -v -1.888936 21.000000 2.826996 -v -2.404160 21.000000 2.404162 -v -2.826994 21.000000 1.888937 -v -3.141187 21.000000 1.301122 -v -3.334666 21.000000 0.663305 -v -3.399996 21.000000 -0.000003 -v -3.334665 21.000000 -0.663310 -v -3.141184 21.000000 -1.301127 -v -2.826990 21.000000 -1.888942 -v -2.404155 21.000000 -2.404165 -v -1.888931 21.000000 -2.826999 -v -1.301115 21.000000 -3.141192 -v -0.663298 21.000000 -3.334670 -v 0.663312 22.000000 -3.334670 -v 0.000005 22.000000 -3.400000 -v 1.301129 22.000000 -3.141190 -v 1.888944 22.000000 -2.826996 -v 2.404168 22.000000 -2.404163 -v 2.827002 22.000000 -1.888938 -v 3.141195 22.000000 -1.301123 -v 3.334675 22.000000 -0.663307 -v 3.400005 22.000000 0.000000 -v 3.334675 22.000000 0.663307 -v 3.141196 22.000000 1.301124 -v 2.827002 22.000000 1.888939 -v 2.404168 22.000000 2.404164 -v 1.888944 22.000000 2.826997 -v 1.301128 22.000000 3.141191 -v 0.663311 22.000000 3.334671 -v 0.000004 22.000000 3.400000 -v -0.663304 22.000000 3.334670 -v -1.301120 22.000000 3.141190 -v -1.888936 22.000000 2.826996 -v -2.404160 22.000000 2.404162 -v -2.826993 22.000000 1.888937 -v -3.141187 22.000000 1.301122 -v -3.334666 22.000000 0.663305 -v -3.399995 22.000000 -0.000003 -v -3.334665 22.000000 -0.663310 -v -3.141184 22.000000 -1.301127 -v -2.826989 22.000000 -1.888942 -v -2.404155 22.000000 -2.404165 -v -1.888930 22.000000 -2.826999 -v -1.301114 22.000000 -3.141192 -v -0.663297 22.000000 -3.334670 -v 0.468222 24.000000 -2.353884 -v 0.000006 24.000000 -2.400000 -v 0.918446 24.000000 -2.217310 -v 1.333374 24.000000 -1.995527 -v 1.697062 24.000000 -1.697056 -v 1.995533 24.000000 -1.333368 -v 2.217317 24.000000 -0.918440 -v 2.353890 24.000000 -0.468216 -v 2.400005 24.000000 0.000000 -v 2.353890 24.000000 0.468217 -v 2.217317 24.000000 0.918440 -v 1.995533 24.000000 1.333369 -v 1.697062 24.000000 1.697057 -v 1.333374 24.000000 1.995528 -v 0.918445 24.000000 2.217312 -v 0.468222 24.000000 2.353885 -v 0.000005 24.000000 2.400000 -v -0.468212 24.000000 2.353885 -v -0.918436 24.000000 2.217311 -v -1.333364 24.000000 1.995527 -v -1.697052 24.000000 1.697056 -v -1.995522 24.000000 1.333368 -v -2.217306 24.000000 0.918439 -v -2.353879 24.000000 0.468215 -v -2.399995 24.000000 -0.000002 -v -2.353878 24.000000 -0.468219 -v -2.217304 24.000000 -0.918442 -v -1.995520 24.000000 -1.333371 -v -1.697048 24.000000 -1.697058 -v -1.333360 24.000000 -1.995528 -v -0.918431 24.000000 -2.217312 -v -0.468208 24.000000 -2.353885 -v 1.053494 23.000000 -5.296239 -v 0.000006 23.000000 -5.399999 -v 2.066497 23.000000 -4.988948 -v 3.000085 23.000000 -4.489934 -v 3.818383 23.000000 -3.818375 -v 4.489942 23.000000 -3.000077 -v 4.988955 23.000000 -2.066489 -v 5.296246 23.000000 -1.053487 -v 5.400004 23.000000 0.000001 -v 5.296246 23.000000 1.053488 -v 4.988955 23.000000 2.066491 -v 4.489942 23.000000 3.000080 -v 3.818383 23.000000 3.818377 -v 3.000085 23.000000 4.489937 -v 2.066496 23.000000 4.988951 -v 1.053492 23.000000 5.296242 -v 0.000004 23.000000 5.400001 -v -1.053484 23.000000 5.296241 -v -2.066487 23.000000 4.988949 -v -3.000076 23.000000 4.489935 -v -3.818373 23.000000 3.818375 -v -4.489932 23.000000 3.000077 -v -4.988945 23.000000 2.066488 -v -5.296236 23.000000 1.053484 -v -5.399994 23.000000 -0.000004 -v -5.296233 23.000000 -1.053492 -v -4.988941 23.000000 -2.066495 -v -4.489926 23.000000 -3.000083 -v -3.818366 23.000000 -3.818380 -v -3.000067 23.000000 -4.489939 -v -2.066477 23.000000 -4.988951 -v -1.053474 23.000000 -5.296240 -v 1.755819 24.000000 -8.827065 -v 0.000006 24.000000 -8.999997 -v 3.444157 24.000000 -8.314913 -v 5.000138 24.000000 -7.483224 -v 6.363967 24.000000 -6.363959 -v 7.483233 24.000000 -5.000129 -v 8.314921 24.000000 -3.444148 -v 8.827073 24.000000 -1.755811 -v 9.000004 24.000000 0.000002 -v 8.827074 24.000000 1.755814 -v 8.314922 24.000000 3.444152 -v 7.483233 24.000000 5.000134 -v 6.363967 24.000000 6.363963 -v 5.000138 24.000000 7.483229 -v 3.444156 24.000000 8.314919 -v 1.755817 24.000000 8.827070 -v 0.000003 24.000000 9.000002 -v -1.755810 24.000000 8.827069 -v -3.444149 24.000000 8.314917 -v -5.000130 24.000000 7.483226 -v -6.363959 24.000000 6.363959 -v -7.483224 24.000000 5.000129 -v -8.314913 24.000000 3.444147 -v -8.827063 24.000000 1.755807 -v -8.999994 24.000000 -0.000006 -v -8.827060 24.000000 -1.755820 -v -8.314906 24.000000 -3.444158 -v -7.483214 24.000000 -5.000139 -v -6.363947 24.000000 -6.363967 -v -5.000115 24.000000 -7.483231 -v -3.444133 24.000000 -8.314919 -v -1.755793 24.000000 -8.827067 -v 2.038701 26.000000 -10.249203 -v 0.000007 26.000000 -10.449997 -v 3.999049 26.000000 -9.654537 -v 5.805717 26.000000 -8.688854 -v 7.389273 26.000000 -7.389263 -v 8.688865 26.000000 -5.805706 -v 9.654549 26.000000 -3.999039 -v 10.249214 26.000000 -2.038692 -v 10.450004 26.000000 0.000002 -v 10.249214 26.000000 2.038695 -v 9.654549 26.000000 3.999043 -v 8.688865 26.000000 5.805711 -v 7.389273 26.000000 7.389268 -v 5.805716 26.000000 8.688861 -v 3.999047 26.000000 9.654545 -v 2.038698 26.000000 10.249209 -v 0.000004 26.000000 10.450003 -v -2.038691 26.000000 10.249207 -v -3.999040 26.000000 9.654542 -v -5.805707 26.000000 8.688857 -v -7.389263 26.000000 7.389264 -v -8.688853 26.000000 5.805706 -v -9.654536 26.000000 3.999037 -v -10.249200 26.000000 2.038688 -v -10.449993 26.000000 -0.000007 -v -10.249197 26.000000 -2.038702 -v -9.654529 26.000000 -3.999050 -v -8.688843 26.000000 -5.805717 -v -7.389249 26.000000 -7.389272 -v -5.805690 26.000000 -8.688862 -v -3.999021 26.000000 -9.654544 -v -2.038671 26.000000 -10.249207 -v 1.950911 28.000000 -9.807850 -v 0.000007 28.000000 -9.999997 -v 3.826842 28.000000 -9.238792 -v 5.555710 28.000000 -8.314693 -v 7.071075 28.000000 -7.071065 -v 8.314704 28.000000 -5.555699 -v 9.238802 28.000000 -3.826832 -v 9.807859 28.000000 -1.950901 -v 10.000003 28.000000 0.000002 -v 9.807860 28.000000 1.950905 -v 9.238803 28.000000 3.826835 -v 8.314704 28.000000 5.555705 -v 7.071075 28.000000 7.071070 -v 5.555709 28.000000 8.314699 -v 3.826840 28.000000 9.238799 -v 1.950908 28.000000 9.807856 -v 0.000004 28.000000 10.000002 -v -1.950900 28.000000 9.807855 -v -3.826832 28.000000 9.238796 -v -5.555700 28.000000 8.314696 -v -7.071065 28.000000 7.071066 -v -8.314693 28.000000 5.555699 -v -9.238791 28.000000 3.826830 -v -9.807847 28.000000 1.950897 -v -9.999993 28.000000 -0.000007 -v -9.807844 28.000000 -1.950911 -v -9.238784 28.000000 -3.826842 -v -8.314682 28.000000 -5.555710 -v -7.071051 28.000000 -7.071074 -v -5.555684 28.000000 -8.314701 -v -3.826813 28.000000 -9.238798 -v -1.950881 28.000000 -9.807853 -v 0.975460 31.000000 -4.903925 -v 0.000008 31.000000 -4.999999 -v 1.913425 31.000000 -4.619397 -v 2.777859 31.000000 -4.157347 -v 3.535542 31.000000 -3.535533 -v 4.157357 31.000000 -2.777850 -v 4.619406 31.000000 -1.913416 -v 4.903934 31.000000 -0.975451 -v 5.000006 31.000000 0.000001 -v 4.903935 31.000000 0.975452 -v 4.619406 31.000000 1.913418 -v 4.157357 31.000000 2.777852 -v 3.535542 31.000000 3.535535 -v 2.777859 31.000000 4.157349 -v 1.913425 31.000000 4.619399 -v 0.975459 31.000000 4.903927 -v 0.000007 31.000000 5.000000 -v -0.975445 31.000000 4.903927 -v -1.913411 31.000000 4.619398 -v -2.777845 31.000000 4.157348 -v -3.535528 31.000000 3.535533 -v -4.157342 31.000000 2.777849 -v -4.619391 31.000000 1.913415 -v -4.903919 31.000000 0.975448 -v -4.999992 31.000000 -0.000004 -v -4.903917 31.000000 -0.975456 -v -4.619387 31.000000 -1.913421 -v -4.157336 31.000000 -2.777855 -v -3.535521 31.000000 -3.535537 -v -2.777837 31.000000 -4.157351 -v -1.913402 31.000000 -4.619400 -v -0.975436 31.000000 -4.903927 -v 0.195100 32.000000 -0.980785 -v 0.000009 32.000000 -1.000000 -v 0.382693 32.000000 -0.923880 -v 0.555579 32.000000 -0.831470 -v 0.707116 32.000000 -0.707107 -v 0.831479 32.000000 -0.555570 -v 0.923889 32.000000 -0.382683 -v 0.980794 32.000000 -0.195090 -v 1.000009 32.000000 -0.000000 -v 0.980795 32.000000 0.195090 -v 0.923889 32.000000 0.382683 -v 0.831479 32.000000 0.555570 -v 0.707116 32.000000 0.707107 -v 0.555579 32.000000 0.831470 -v 0.382692 32.000000 0.923880 -v 0.195099 32.000000 0.980785 -v 0.000009 32.000000 1.000000 -v -0.195082 32.000000 0.980785 -v -0.382675 32.000000 0.923879 -v -0.555561 32.000000 0.831469 -v -0.707098 32.000000 0.707106 -v -0.831461 32.000000 0.555570 -v -0.923871 32.000000 0.382683 -v -0.980776 32.000000 0.195089 -v -0.999991 32.000000 -0.000001 -v -0.980776 32.000000 -0.195091 -v -0.923870 32.000000 -0.382684 -v -0.831460 32.000000 -0.555571 -v -0.707097 32.000000 -0.707108 -v -0.555560 32.000000 -0.831470 -v -0.382673 32.000000 -0.923880 -v -0.195080 32.000000 -0.980786 -vt 0.530549 0.164590 -vt 0.511666 0.163643 -vt 0.521050 -0.034955 -vt 0.492712 0.163326 -vt 0.473760 0.163641 -vt 0.464416 -0.034959 -vt 0.454878 0.164586 -vt 0.436165 -0.032960 -vt 0.530466 0.164544 -vt 0.511584 0.163595 -vt 0.520990 -0.034999 -vt 0.492630 0.163276 -vt 0.492677 -0.035670 -vt 0.473678 0.163590 -vt 0.454796 0.164533 -vt 0.436106 -0.033015 -vt 0.549279 -0.032970 -vt 0.530567 0.164579 -vt 0.492733 -0.035632 -vt 0.511646 0.163658 -vt 0.521031 -0.034940 -vt 0.473740 0.163656 -vt 0.464397 -0.034945 -vt 0.436145 -0.032947 -vt 0.549245 -0.033009 -vt 0.492654 0.406011 -vt 0.478473 0.406094 -vt 0.454848 0.164591 -vt 0.484783 0.841883 -vt 0.481703 0.815945 -vt 0.498141 0.815218 -vt 0.478517 0.406158 -vt 0.480864 1.033334 -vt 0.469047 1.033401 -vt 0.464335 0.406424 -vt 0.521029 0.406412 -vt 0.506854 0.406164 -vt 0.492601 0.406024 -vt 0.478419 0.406106 -vt 0.464379 0.406400 -vt 0.520980 0.406345 -vt 0.492698 0.406075 -vt 0.464248 0.406354 -vt 0.506806 0.406095 -vt 0.521088 0.406401 -vt 0.464301 0.406335 -vt 0.528333 0.932272 -vt 0.515249 0.932270 -vt 0.514645 0.840931 -vt 0.492685 1.033317 -vt 0.504528 1.033347 -vt 0.516218 1.033355 -vt 0.504401 1.033288 -vt 0.492583 1.033266 -vt 0.469077 1.033415 -vt 0.480766 1.033288 -vt 0.516301 1.033331 -vt 0.468949 1.033355 -vt 0.492666 1.033242 -vt 0.469032 1.033331 -vt 0.516241 1.033340 -vt 0.516347 1.033391 -vt 0.489116 0.932391 -vt 0.499639 0.841163 -vt 0.529638 0.841146 -vt 0.544452 0.841822 -vt 0.502170 0.932307 -vt 0.502067 0.931417 -vt 0.489014 0.931490 -vt 0.484772 0.841027 -vt 0.515252 0.932265 -vt 0.499616 0.840324 -vt 0.514609 0.840100 -vt 0.515150 0.931384 -vt 0.529588 0.840325 -vt 0.528233 0.931394 -vt 0.544387 0.841006 -vt 0.502141 0.932422 -vt 0.489088 0.932506 -vt 0.484755 0.841998 -vt 0.515223 0.932380 -vt 0.499611 0.841277 -vt 0.544446 0.841815 -vt 0.528306 0.932383 -vt 0.514619 0.841041 -vt 0.529613 0.841256 -vt 0.544428 0.841933 -vt 0.514653 0.840929 -vt 0.541383 0.932312 -vt 0.514294 0.815010 -vt 0.514115 0.784175 -vt 0.530516 0.783920 -vt 0.530451 0.815198 -vt 0.481734 0.815116 -vt 0.498149 0.814411 -vt 0.546877 0.815869 -vt 0.514282 0.814222 -vt 0.530410 0.814413 -vt 0.546808 0.815091 -vt 0.481674 0.816058 -vt 0.530447 0.815191 -vt 0.498113 0.815331 -vt 0.514273 0.815126 -vt 0.530427 0.815307 -vt 0.497702 0.783983 -vt 0.499096 0.760277 -vt 0.514093 0.760874 -vt 0.497680 0.784096 -vt 0.480598 0.783379 -vt 0.547598 0.783235 -vt 0.514094 0.784288 -vt 0.530497 0.784033 -vt 0.546852 0.815983 -vt 0.480672 0.782607 -vt 0.497751 0.783237 -vt 0.514128 0.783445 -vt 0.530493 0.783201 -vt 0.480562 0.783487 -vt 0.483887 0.758308 -vt 0.495914 0.711438 -vt 0.504773 0.711578 -vt 0.529070 0.760267 -vt 0.544188 0.758255 -vt 0.484000 0.757603 -vt 0.499171 0.759591 -vt 0.514125 0.760200 -vt 0.529050 0.759600 -vt 0.544127 0.757597 -vt 0.483856 0.758415 -vt 0.499074 0.760387 -vt 0.514074 0.760983 -vt 0.529041 0.760372 -vt 0.544161 0.758360 -vt 0.523594 0.711573 -vt 0.529972 0.661378 -vt 0.545561 0.664658 -vt 0.532448 0.711418 -vt 0.496068 0.710899 -vt 0.504878 0.711055 -vt 0.514184 0.711617 -vt 0.514245 0.711102 -vt 0.523616 0.711060 -vt 0.495882 0.711535 -vt 0.504744 0.711675 -vt 0.514158 0.711713 -vt 0.523570 0.711670 -vt 0.513848 0.660219 -vt 0.513669 0.608672 -vt 0.513828 0.659944 -vt 0.529911 0.661083 -vt 0.482091 0.664427 -vt 0.497705 0.661195 -vt 0.545452 0.664348 -vt 0.482051 0.664506 -vt 0.497671 0.661274 -vt 0.513820 0.660298 -vt 0.513851 0.660221 -vt 0.532428 0.711511 -vt 0.529950 0.661456 -vt 0.532453 0.711417 -vt 0.482323 0.664233 -vt 0.497723 0.660949 -vt 0.536884 0.609783 -vt 0.513620 0.608741 -vt 0.513592 0.578273 -vt 0.490435 0.609678 -vt 0.466382 0.613327 -vt 0.536902 0.609745 -vt 0.560895 0.613327 -vt 0.560888 0.613379 -vt 0.466576 0.613222 -vt 0.490460 0.609499 -vt 0.513658 0.608477 -vt 0.536854 0.609547 -vt 0.560808 0.613134 -vt 0.488667 0.578260 -vt 0.489455 0.552993 -vt 0.513561 0.553945 -vt 0.461659 0.578631 -vt 0.538555 0.578237 -vt 0.513596 0.578186 -vt 0.538530 0.578189 -vt 0.565552 0.578473 -vt 0.565547 0.578471 -vt 0.461750 0.578463 -vt 0.488684 0.578059 -vt 0.513584 0.578010 -vt 0.538488 0.578023 -vt 0.565480 0.578318 -vt 0.461632 0.578691 -vt 0.488649 0.578325 -vt 0.464207 0.549432 -vt 0.487190 0.475078 -vt 0.500042 0.478373 -vt 0.537671 0.552949 -vt 0.464147 0.549565 -vt 0.537673 0.552951 -vt 0.489480 0.552845 -vt 0.513557 0.553799 -vt 0.537641 0.552812 -vt 0.562948 0.549342 -vt 0.489444 0.553047 -vt 0.563007 0.549470 -vt 0.513562 0.554003 -vt 0.526690 0.478484 -vt 0.516244 0.422415 -vt 0.518946 0.421679 -vt 0.513331 0.479593 -vt 0.513332 0.479537 -vt 0.539754 0.475224 -vt 0.526709 0.478560 -vt 0.516842 0.409963 -vt 0.517872 0.420415 -vt 0.510888 0.421103 -vt 0.510606 0.422421 -vt 0.507984 0.421679 -vt 0.513413 0.422628 -vt 0.518952 0.421679 -vt 0.549263 -0.032939 -vt 0.541291 0.931450 -vt 0.541364 0.932431 -vt 0.547581 0.783348 -vt 0.547538 0.782523 -vt 0.532439 0.710900 -vt 0.545546 0.664737 -vt 0.539728 0.475174 -vt 0.509859 0.420415 -vt 0.508983 0.419540 -vt 0.508295 0.418510 -vt 0.507822 0.417367 -vt 0.507580 0.416152 -vt 0.508295 0.412556 -vt 0.507580 0.414914 -vt 0.507822 0.413700 -vt 0.508983 0.411527 -vt 0.509859 0.410651 -vt 0.510888 0.409963 -vt 0.512032 0.409490 -vt 0.513246 0.409248 -vt 0.514484 0.409248 -vt 0.515699 0.409490 -vt 0.517872 0.410651 -vt 0.518747 0.411527 -vt 0.519435 0.412556 -vt 0.519909 0.413700 -vt 0.520151 0.414914 -vt 0.520151 0.416152 -vt 0.519909 0.417367 -vt 0.519435 0.418510 -vt 0.518747 0.419540 -vt 0.516842 0.421103 -vt 0.515699 0.421577 -vt 0.514484 0.421818 -vt 0.513246 0.421818 -vt 0.512032 0.421577 -vn 0.095100 0.241400 -0.965700 -vn 0.281700 0.241400 -0.928600 -vn 0.457500 0.241400 -0.855800 -vn 0.615600 0.241400 -0.750100 -vn 0.750100 0.241400 -0.615600 -vn 0.855800 0.241400 -0.457500 -vn 0.928600 0.241400 -0.281700 -vn 0.965700 0.241400 -0.095100 -vn 0.965700 0.241400 0.095100 -vn 0.928600 0.241400 0.281700 -vn 0.855800 0.241400 0.457500 -vn 0.750100 0.241400 0.615600 -vn 0.615600 0.241400 0.750100 -vn 0.457500 0.241400 0.855800 -vn 0.281700 0.241400 0.928600 -vn 0.095100 0.241400 0.965700 -vn -0.095100 0.241400 0.965700 -vn -0.281700 0.241400 0.928600 -vn -0.457500 0.241400 0.855800 -vn -0.615600 0.241400 0.750100 -vn -0.750100 0.241400 0.615600 -vn -0.855800 0.241400 0.457500 -vn -0.928600 0.241400 0.281700 -vn -0.965700 0.241400 0.095100 -vn -0.965700 0.241400 -0.095100 -vn -0.928600 0.241400 -0.281700 -vn -0.855800 0.241400 -0.457500 -vn -0.750100 0.241400 -0.615600 -vn -0.615600 0.241400 -0.750100 -vn -0.457500 0.241400 -0.855800 -vn 0.877600 0.099000 0.469100 -vn -0.095100 0.241400 -0.965700 -vn -0.281700 0.241400 -0.928600 -vn 0.000000 -1.000000 0.000000 -vn 0.634300 0.019100 -0.772900 -vn -0.631300 0.099000 0.769200 -vn -0.631300 0.099000 -0.769200 -vn 0.952200 0.099000 -0.288900 -vn 0.097500 0.099000 0.990300 -vn -0.990300 0.099000 -0.097500 -vn 0.469100 0.099000 -0.877600 -vn 0.769200 0.099000 0.631300 -vn -0.769200 0.099000 0.631300 -vn -0.469100 0.099000 -0.877600 -vn 0.990300 0.099000 -0.097500 -vn -0.097500 0.099000 0.990300 -vn -0.952200 0.099000 -0.288900 -vn 0.631300 0.099000 -0.769200 -vn 0.631300 0.099000 0.769200 -vn -0.877600 0.099000 0.469100 -vn -0.288900 0.099000 -0.952200 -vn 0.990300 0.099000 0.097500 -vn -0.288900 0.099000 0.952200 -vn -0.877600 0.099000 -0.469100 -vn 0.769200 0.099000 -0.631300 -vn 0.469100 0.099000 0.877600 -vn -0.952200 0.099000 0.288900 -vn 0.097500 0.099000 -0.990300 -vn -0.097500 0.099000 -0.990300 -vn 0.952200 0.099000 0.288900 -vn -0.469100 0.099000 0.877600 -vn -0.769200 0.099000 -0.631300 -vn 0.877600 0.099000 -0.469100 -vn 0.288900 0.099000 0.952200 -vn -0.990300 0.099000 0.097500 -vn 0.288900 0.099000 -0.952200 -vn -0.896500 -0.349600 0.272000 -vn -0.290200 0.019100 -0.956800 -vn -0.290200 0.019100 0.956800 -vn 0.772900 0.019100 -0.634300 -vn -0.098000 0.019100 -0.995000 -vn -0.471300 0.019100 0.881800 -vn 0.881800 0.019100 -0.471300 -vn -0.634300 0.019100 0.772900 -vn 0.956800 0.019100 -0.290200 -vn -0.772900 0.019100 0.634300 -vn 0.995000 0.019100 -0.098000 -vn -0.881800 0.019100 0.471300 -vn 0.995000 0.019100 0.098000 -vn -0.956800 0.019100 0.290200 -vn 0.956800 0.019100 0.290200 -vn -0.995000 0.019100 0.098000 -vn 0.881800 0.019100 0.471300 -vn -0.995000 0.019100 -0.098000 -vn 0.772900 0.019100 0.634300 -vn -0.956800 0.019100 -0.290200 -vn 0.634300 0.019100 0.772900 -vn -0.881800 0.019100 -0.471300 -vn 0.471300 0.019100 0.881800 -vn 0.098000 0.019100 -0.995000 -vn -0.772900 0.019100 -0.634300 -vn 0.290200 0.019100 0.956800 -vn 0.290200 0.019100 -0.956800 -vn -0.634300 0.019100 -0.772900 -vn 0.098000 0.019100 0.995000 -vn 0.471300 0.019100 -0.881800 -vn -0.471300 0.019100 -0.881800 -vn -0.098000 0.019100 0.995000 -vn 0.724200 -0.349600 -0.594400 -vn -0.932400 -0.349600 0.091800 -vn 0.826300 -0.349600 -0.441600 -vn -0.932400 -0.349600 -0.091800 -vn 0.896500 -0.349600 -0.272000 -vn -0.896500 -0.349600 -0.272000 -vn 0.932400 -0.349600 -0.091800 -vn -0.826300 -0.349600 -0.441600 -vn 0.932400 -0.349600 0.091800 -vn -0.724200 -0.349600 -0.594400 -vn 0.896500 -0.349600 0.272000 -vn -0.594400 -0.349600 -0.724200 -vn 0.826300 -0.349600 0.441600 -vn -0.441600 -0.349600 -0.826300 -vn -0.091800 -0.349600 0.932400 -vn 0.724200 -0.349600 0.594400 -vn -0.272000 -0.349600 -0.896500 -vn -0.272000 -0.349600 0.896500 -vn 0.594400 -0.349600 0.724200 -vn -0.091800 -0.349600 -0.932400 -vn -0.441600 -0.349600 0.826300 -vn 0.441600 -0.349600 0.826300 -vn 0.091800 -0.349600 -0.932400 -vn -0.594400 -0.349600 0.724200 -vn 0.272000 -0.349600 0.896500 -vn 0.272000 -0.349600 -0.896500 -vn -0.724200 -0.349600 0.594400 -vn 0.091800 -0.349600 0.932400 -vn 0.441600 -0.349600 -0.826300 -vn -0.826300 -0.349600 0.441600 -vn 0.594400 -0.349600 -0.724200 -vn 0.249200 -0.512700 0.821600 -vn -0.290300 0.000000 0.956900 -vn 0.249200 -0.512700 -0.821600 -vn -0.544700 -0.512700 -0.663700 -vn 0.084200 -0.512700 0.854500 -vn 0.404700 -0.512700 -0.757200 -vn -0.404700 -0.512700 -0.757200 -vn -0.084200 -0.512700 0.854500 -vn 0.544700 -0.512700 -0.663700 -vn -0.249200 -0.512700 -0.821600 -vn -0.249200 -0.512700 0.821600 -vn 0.663700 -0.512700 -0.544700 -vn -0.084200 -0.512700 -0.854500 -vn -0.404700 -0.512700 0.757200 -vn 0.757200 -0.512700 -0.404700 -vn -0.544700 -0.512700 0.663700 -vn 0.821600 -0.512700 -0.249200 -vn -0.663700 -0.512700 0.544700 -vn 0.854500 -0.512700 -0.084200 -vn -0.757200 -0.512700 0.404700 -vn 0.854500 -0.512700 0.084200 -vn -0.821600 -0.512700 0.249200 -vn 0.821600 -0.512700 0.249200 -vn -0.854500 -0.512700 0.084200 -vn 0.757200 -0.512700 0.404700 -vn -0.854500 -0.512700 -0.084200 -vn 0.663700 -0.512700 0.544700 -vn -0.821600 -0.512700 -0.249200 -vn 0.544700 -0.512700 0.663700 -vn -0.757200 -0.512700 -0.404700 -vn 0.404700 -0.512700 0.757200 -vn 0.084200 -0.512700 -0.854500 -vn -0.663700 -0.512700 -0.544700 -vn -0.692100 0.445500 0.568000 -vn 0.773000 -0.000000 -0.634400 -vn -0.098000 0.000000 -0.995200 -vn -0.471400 0.000000 0.881900 -vn 0.881900 0.000000 -0.471400 -vn -0.634400 0.000000 0.773000 -vn 0.956900 0.000000 -0.290300 -vn -0.773000 0.000000 0.634400 -vn 0.995200 0.000000 -0.098000 -vn -0.881900 0.000000 0.471400 -vn 0.995200 0.000000 0.098000 -vn -0.956900 0.000000 0.290300 -vn 0.956900 0.000000 0.290300 -vn -0.995200 0.000000 0.098000 -vn 0.881900 0.000000 0.471400 -vn -0.995200 0.000000 -0.098000 -vn 0.773000 0.000000 0.634400 -vn -0.956900 0.000000 -0.290300 -vn 0.634400 -0.000000 0.773000 -vn -0.881900 0.000000 -0.471400 -vn 0.471400 -0.000000 0.881900 -vn 0.098000 -0.000000 -0.995200 -vn -0.773000 0.000000 -0.634400 -vn 0.290300 -0.000000 0.956900 -vn 0.290300 -0.000000 -0.956900 -vn -0.634400 0.000000 -0.773000 -vn 0.098000 -0.000000 0.995200 -vn 0.471400 -0.000000 -0.881900 -vn -0.471400 0.000000 -0.881900 -vn -0.098000 0.000000 0.995200 -vn 0.634400 -0.000000 -0.773000 -vn -0.290300 0.000000 -0.956900 -vn 0.316100 -0.948200 -0.031100 -vn 0.891000 0.445500 -0.087800 -vn -0.789600 0.445500 0.422000 -vn 0.891000 0.445500 0.087800 -vn -0.856700 0.445500 0.259900 -vn 0.856700 0.445500 0.259900 -vn -0.891000 0.445500 0.087800 -vn 0.789600 0.445500 0.422000 -vn -0.891000 0.445500 -0.087800 -vn 0.692100 0.445500 0.568000 -vn -0.856700 0.445500 -0.259900 -vn 0.568000 0.445500 0.692100 -vn -0.789600 0.445500 -0.422000 -vn 0.422000 0.445500 0.789600 -vn 0.087800 0.445500 -0.891000 -vn -0.692100 0.445500 -0.568000 -vn 0.259900 0.445500 0.856700 -vn 0.259900 0.445500 -0.856700 -vn -0.568000 0.445500 -0.692100 -vn 0.087800 0.445500 0.891000 -vn 0.422000 0.445500 -0.789600 -vn -0.422000 0.445500 -0.789600 -vn -0.087800 0.445500 0.891000 -vn 0.568000 0.445500 -0.692100 -vn -0.259900 0.445500 -0.856700 -vn -0.259900 0.445500 0.856700 -vn 0.692100 0.445500 -0.568000 -vn -0.087800 0.445500 -0.891000 -vn -0.422000 0.445500 0.789600 -vn 0.789600 0.445500 -0.422000 -vn -0.568000 0.445500 0.692100 -vn 0.856700 0.445500 -0.259900 -vn -0.237100 -0.963200 -0.126700 -vn -0.280100 -0.948200 -0.149700 -vn 0.316100 -0.948200 0.031100 -vn -0.245500 -0.948200 -0.201500 -vn 0.303900 -0.948200 0.092200 -vn -0.201500 -0.948200 -0.245500 -vn 0.280100 -0.948200 0.149700 -vn -0.149700 -0.948200 -0.280100 -vn -0.031100 -0.948200 0.316100 -vn 0.245500 -0.948200 0.201500 -vn -0.092200 -0.948200 -0.303900 -vn -0.092200 -0.948200 0.303900 -vn 0.201500 -0.948200 0.245500 -vn -0.031100 -0.948200 -0.316100 -vn -0.149700 -0.948200 0.280100 -vn 0.149700 -0.948200 0.280100 -vn 0.031100 -0.948200 -0.316100 -vn -0.201500 -0.948200 0.245500 -vn 0.092200 -0.948200 0.303900 -vn 0.092200 -0.948200 -0.303900 -vn -0.245500 -0.948200 0.201500 -vn 0.031100 -0.948200 0.316100 -vn 0.149700 -0.948200 -0.280100 -vn -0.280100 -0.948200 0.149700 -vn 0.201500 -0.948200 -0.245500 -vn -0.303900 -0.948200 0.092200 -vn 0.245500 -0.948200 -0.201500 -vn -0.316100 -0.948200 0.031100 -vn 0.280100 -0.948200 -0.149700 -vn -0.316100 -0.948200 -0.031100 -vn 0.303900 -0.948200 -0.092200 -vn -0.303900 -0.948200 -0.092200 -vn 0.382300 -0.585100 -0.715200 -vn 0.126700 -0.963200 0.237100 -vn 0.026400 -0.963200 -0.267600 -vn -0.207800 -0.963200 -0.170600 -vn 0.078000 -0.963200 0.257300 -vn 0.078000 -0.963200 -0.257300 -vn -0.170600 -0.963200 -0.207800 -vn 0.026400 -0.963200 0.267600 -vn 0.126700 -0.963200 -0.237100 -vn -0.126700 -0.963200 -0.237100 -vn -0.026400 -0.963200 0.267500 -vn 0.170600 -0.963200 -0.207800 -vn -0.078000 -0.963200 -0.257300 -vn -0.078000 -0.963200 0.257300 -vn 0.207800 -0.963200 -0.170600 -vn -0.026400 -0.963200 -0.267600 -vn -0.126700 -0.963200 0.237100 -vn 0.237100 -0.963200 -0.126700 -vn -0.170600 -0.963200 0.207800 -vn 0.257300 -0.963200 -0.078000 -vn -0.207800 -0.963200 0.170600 -vn 0.267600 -0.963200 -0.026400 -vn -0.237100 -0.963200 0.126700 -vn 0.267600 -0.963200 0.026400 -vn -0.257300 -0.963200 0.078000 -vn 0.257300 -0.963200 0.078000 -vn -0.267600 -0.963200 0.026400 -vn 0.237100 -0.963200 0.126700 -vn -0.267600 -0.963200 -0.026400 -vn 0.207800 -0.963200 0.170600 -vn -0.257300 -0.963200 -0.078000 -vn 0.170600 -0.963200 0.207800 -vn 0.860600 0.218500 -0.460000 -vn -0.382300 -0.585100 -0.715200 -vn -0.079500 -0.585100 0.807000 -vn 0.514500 -0.585100 -0.626900 -vn -0.235400 -0.585100 -0.776000 -vn -0.235400 -0.585100 0.776000 -vn 0.626900 -0.585100 -0.514500 -vn -0.079500 -0.585100 -0.807000 -vn -0.382300 -0.585100 0.715200 -vn 0.715200 -0.585100 -0.382300 -vn -0.514500 -0.585100 0.626900 -vn 0.776000 -0.585100 -0.235400 -vn -0.626900 -0.585100 0.514500 -vn 0.807000 -0.585100 -0.079500 -vn -0.715200 -0.585100 0.382300 -vn 0.807000 -0.585100 0.079500 -vn -0.776000 -0.585100 0.235400 -vn 0.776000 -0.585100 0.235400 -vn -0.807000 -0.585100 0.079500 -vn 0.715200 -0.585100 0.382300 -vn -0.807000 -0.585100 -0.079500 -vn 0.626900 -0.585100 0.514500 -vn -0.776000 -0.585100 -0.235400 -vn 0.514500 -0.585100 0.626900 -vn -0.715200 -0.585100 -0.382300 -vn 0.382300 -0.585100 0.715200 -vn 0.079500 -0.585100 -0.807000 -vn -0.626900 -0.585100 -0.514500 -vn 0.235400 -0.585100 0.776000 -vn 0.235400 -0.585100 -0.776000 -vn -0.514500 -0.585100 -0.626900 -vn 0.079500 -0.585100 0.807000 -vn 0.513800 0.856400 0.050600 -vn -0.619100 0.218500 0.754300 -vn 0.933800 0.218500 -0.283300 -vn -0.754300 0.218500 0.619100 -vn 0.971100 0.218500 -0.095600 -vn -0.860600 0.218500 0.460000 -vn 0.971100 0.218500 0.095600 -vn -0.933800 0.218500 0.283300 -vn 0.933800 0.218500 0.283300 -vn -0.971100 0.218500 0.095600 -vn 0.860600 0.218500 0.460000 -vn -0.971100 0.218500 -0.095600 -vn 0.754300 0.218500 0.619100 -vn -0.933800 0.218500 -0.283300 -vn 0.619100 0.218500 0.754300 -vn -0.860600 0.218500 -0.460000 -vn 0.460000 0.218500 0.860600 -vn 0.095600 0.218500 -0.971100 -vn -0.754300 0.218500 -0.619100 -vn 0.283300 0.218500 0.933800 -vn 0.283300 0.218500 -0.933800 -vn -0.619100 0.218500 -0.754300 -vn 0.095600 0.218500 0.971100 -vn 0.460000 0.218500 -0.860600 -vn -0.460000 0.218500 -0.860600 -vn -0.095600 0.218500 0.971100 -vn 0.619100 0.218500 -0.754300 -vn -0.283300 0.218500 -0.933800 -vn -0.283300 0.218500 0.933800 -vn 0.754300 0.218500 -0.619100 -vn -0.095600 0.218500 -0.971100 -vn -0.460000 0.218500 0.860600 -vn 0.188300 0.969900 0.154600 -vn -0.494100 0.856400 0.149900 -vn 0.494100 0.856400 0.149900 -vn -0.513800 0.856400 0.050600 -vn 0.455400 0.856400 0.243400 -vn -0.513800 0.856400 -0.050600 -vn 0.399100 0.856400 0.327600 -vn -0.494100 0.856400 -0.149900 -vn 0.327600 0.856400 0.399100 -vn -0.455400 0.856400 -0.243400 -vn 0.243400 0.856400 0.455400 -vn 0.050600 0.856400 -0.513800 -vn -0.399100 0.856400 -0.327600 -vn 0.149900 0.856400 0.494100 -vn 0.149900 0.856400 -0.494100 -vn -0.327600 0.856400 -0.399100 -vn 0.050600 0.856400 0.513800 -vn 0.243400 0.856400 -0.455400 -vn -0.243400 0.856400 -0.455400 -vn -0.050600 0.856400 0.513800 -vn 0.327600 0.856400 -0.399100 -vn -0.149900 0.856400 -0.494100 -vn -0.149900 0.856400 0.494100 -vn 0.399100 0.856400 -0.327600 -vn -0.050600 0.856400 -0.513800 -vn -0.243400 0.856400 0.455400 -vn 0.455400 0.856400 -0.243400 -vn -0.327600 0.856400 0.399100 -vn 0.494100 0.856400 -0.149900 -vn -0.399100 0.856400 0.327600 -vn 0.513800 0.856400 -0.050600 -vn -0.455400 0.856400 0.243400 -vn 0.000000 1.000000 -0.000000 -vn -0.233100 0.969900 -0.070700 -vn 0.154600 0.969900 0.188300 -vn -0.214900 0.969900 -0.114900 -vn 0.114900 0.969900 0.214900 -vn 0.023900 0.969900 -0.242500 -vn -0.188300 0.969900 -0.154600 -vn 0.070700 0.969900 0.233100 -vn 0.070700 0.969900 -0.233200 -vn -0.154600 0.969900 -0.188300 -vn 0.023900 0.969900 0.242500 -vn 0.114900 0.969900 -0.214900 -vn -0.114900 0.969900 -0.214900 -vn -0.023900 0.969900 0.242500 -vn 0.154600 0.969900 -0.188300 -vn -0.070700 0.969900 -0.233100 -vn -0.070700 0.969900 0.233100 -vn 0.188300 0.969900 -0.154600 -vn -0.023900 0.969900 -0.242500 -vn -0.114900 0.969900 0.214900 -vn 0.214900 0.969900 -0.114800 -vn -0.154600 0.969900 0.188400 -vn 0.233100 0.969900 -0.070700 -vn -0.188300 0.969900 0.154600 -vn 0.242500 0.969900 -0.023900 -vn -0.214900 0.969900 0.114800 -vn 0.242500 0.969900 0.023900 -vn -0.233100 0.969900 0.070700 -vn 0.233100 0.969900 0.070700 -vn -0.242500 0.969900 0.023900 -vn 0.214900 0.969900 0.114900 -vn -0.242500 0.969900 -0.023900 -vn -0.457400 0.241400 -0.855800 -vn -0.026400 -0.963200 0.267600 -vn 0.000000 1.000000 0.000100 -vn 0.000000 1.000000 -0.000200 -vn 0.070700 0.969900 0.233200 -vn 0.070700 0.969900 -0.233100 -vn 0.214900 0.969900 -0.114900 -vn -0.154600 0.969900 0.188300 -vn -0.214900 0.969900 0.114900 -vn 0.214900 0.969900 0.114800 -s off -f 2/1/1 4/2/1 3/3/1 -f 3/3/2 4/2/2 6/4/2 -f 6/4/3 8/5/3 7/6/3 -f 8/5/4 10/7/4 9/8/4 -f 10/9/5 12/10/5 11/11/5 -f 11/11/6 12/10/6 14/12/6 -f 13/13/7 14/12/7 16/14/7 -f 16/14/8 18/15/8 17/16/8 -f 18/9/9 20/10/9 19/11/9 -f 19/11/10 20/10/10 22/4/10 -f 22/4/11 24/14/11 23/6/11 -f 24/14/12 26/15/12 25/16/12 -f 25/17/13 26/18/13 28/2/13 -f 27/11/14 28/2/14 30/4/14 -f 29/19/15 30/4/15 32/5/15 -f 31/6/16 32/5/16 34/7/16 -f 34/1/17 36/20/17 35/21/17 -f 35/21/18 36/20/18 38/4/18 -f 38/4/19 40/22/19 39/23/19 -f 40/22/20 42/7/20 41/24/20 -f 42/9/21 44/10/21 43/11/21 -f 44/10/22 46/4/22 45/13/22 -f 46/4/23 48/14/23 47/6/23 -f 48/14/24 50/15/24 49/16/24 -f 49/25/25 50/9/25 52/10/25 -f 52/10/26 54/4/26 53/13/26 -f 54/4/27 56/14/27 55/6/27 -f 56/14/28 58/15/28 57/16/28 -f 58/1/29 60/10/29 59/21/29 -f 60/10/30 62/4/30 61/19/30 -f 22/4/31 75/26/31 76/27/31 -f 63/6/32 64/14/32 2/28/32 -f 62/4/33 64/14/33 63/6/33 -f 149/29/34 181/30/34 182/31/34 -f 68/32/35 100/33/35 101/34/35 -f 40/22/36 84/32/36 85/35/36 -f 58/1/37 93/36/37 94/37/37 -f 14/12/38 71/38/38 72/39/38 -f 32/5/39 80/32/39 81/40/39 -f 52/10/40 50/9/40 89/41/40 -f 8/5/41 6/4/41 67/42/41 -f 26/15/42 24/14/42 76/27/42 -f 44/10/43 42/9/43 85/41/43 -f 60/10/44 94/37/44 95/42/44 -f 16/14/45 72/39/45 73/43/45 -f 36/20/46 34/1/46 81/36/46 -f 52/10/47 90/44/47 91/38/47 -f 8/5/48 68/32/48 69/35/48 -f 28/2/49 26/18/49 77/45/49 -f 44/10/50 86/44/50 87/26/50 -f 62/4/51 95/42/51 96/32/51 -f 18/9/52 73/41/52 74/44/52 -f 36/20/53 82/37/53 83/42/53 -f 54/4/54 91/38/54 92/39/54 -f 10/9/55 69/36/55 70/44/55 -f 28/2/56 78/37/56 79/42/56 -f 46/4/57 87/26/57 88/27/57 -f 2/1/58 66/45/58 65/37/58 -f 64/14/59 96/32/59 66/35/59 -f 20/10/60 74/44/60 75/26/60 -f 38/4/61 83/42/61 84/32/61 -f 58/15/62 56/14/62 92/39/62 -f 12/10/63 70/44/63 71/38/63 -f 32/5/64 30/4/64 79/42/64 -f 48/14/65 88/27/65 89/46/65 -f 4/2/66 65/37/66 67/42/66 -f 104/47/67 103/48/67 135/49/67 -f 95/42/68 127/50/68 128/33/68 -f 83/42/69 82/37/69 114/51/69 -f 69/36/70 101/52/70 102/53/70 -f 66/35/71 96/32/71 128/33/71 -f 83/42/72 115/50/72 116/33/72 -f 70/44/73 102/53/73 103/54/73 -f 84/32/74 116/33/74 117/55/74 -f 71/38/75 103/54/75 104/56/75 -f 85/41/76 117/57/76 118/51/76 -f 72/39/77 104/56/77 105/58/77 -f 86/44/78 118/51/78 119/59/78 -f 73/41/79 105/57/79 106/51/79 -f 87/26/80 119/59/80 120/56/80 -f 74/44/81 106/51/81 107/50/81 -f 88/27/82 120/56/82 121/60/82 -f 75/26/83 107/50/83 108/56/83 -f 89/41/84 121/61/84 122/53/84 -f 76/27/85 108/56/85 109/60/85 -f 90/44/86 122/53/86 123/54/86 -f 77/45/87 109/62/87 110/51/87 -f 91/38/88 123/54/88 124/56/88 -f 78/37/89 110/51/89 111/50/89 -f 66/45/90 98/62/90 97/51/90 -f 92/39/91 124/56/91 125/60/91 -f 79/42/92 111/50/92 112/33/92 -f 65/37/93 97/51/93 99/50/93 -f 93/36/94 125/62/94 126/51/94 -f 80/32/95 112/33/95 113/55/95 -f 67/42/96 99/50/96 100/33/96 -f 94/37/97 126/51/97 127/50/97 -f 81/36/98 113/62/98 114/51/98 -f 117/63/99 149/29/99 150/64/99 -f 104/47/100 136/65/100 137/66/100 -f 118/67/101 150/64/101 151/49/101 -f 106/68/102 105/69/102 137/70/102 -f 119/71/103 151/49/103 152/65/103 -f 106/68/104 138/72/104 139/73/104 -f 120/47/105 152/65/105 153/66/105 -f 107/74/106 139/73/106 140/75/106 -f 122/67/107 121/63/107 153/29/107 -f 108/76/108 140/75/108 141/77/108 -f 123/71/109 122/67/109 154/64/109 -f 109/63/110 141/29/110 142/64/110 -f 124/47/111 123/71/111 155/49/111 -f 110/67/112 142/64/112 143/49/112 -f 97/78/113 98/79/113 130/80/113 -f 124/47/114 156/65/114 157/66/114 -f 111/48/115 143/49/115 144/65/115 -f 99/81/116 97/78/116 129/82/116 -f 126/67/117 125/63/117 157/29/117 -f 112/47/118 144/65/118 145/83/118 -f 100/84/119 99/81/119 131/85/119 -f 127/71/120 126/67/120 158/64/120 -f 114/67/121 113/63/121 145/29/121 -f 100/84/122 132/86/122 133/87/122 -f 127/71/123 159/88/123 160/65/123 -f 115/48/124 114/67/124 146/64/124 -f 101/63/125 133/29/125 134/64/125 -f 128/47/126 160/65/126 130/66/126 -f 115/48/127 147/49/127 148/65/127 -f 102/67/128 134/64/128 135/49/128 -f 117/89/129 116/47/129 148/65/129 -f 175/90/130 207/91/130 208/92/130 -f 137/66/34 136/65/34 168/93/34 -f 150/64/34 182/31/34 183/90/34 -f 138/72/34 137/70/34 169/94/34 -f 151/49/34 183/90/34 184/93/34 -f 139/73/34 138/72/34 170/95/34 -f 152/65/34 184/93/34 185/96/34 -f 140/75/34 139/73/34 171/97/34 -f 153/29/34 185/30/34 186/31/34 -f 140/75/34 172/98/34 173/99/34 -f 154/64/34 186/31/34 187/90/34 -f 141/29/34 173/30/34 174/31/34 -f 155/49/34 187/90/34 188/93/34 -f 142/64/34 174/31/34 175/90/34 -f 129/82/34 130/80/34 162/100/34 -f 157/66/34 156/65/34 188/93/34 -f 143/49/34 175/90/34 176/101/34 -f 131/85/34 129/82/34 161/102/34 -f 158/64/34 157/29/34 189/30/34 -f 144/65/34 176/101/34 177/96/34 -f 132/86/34 131/85/34 163/103/34 -f 159/88/34 158/64/34 190/31/34 -f 145/29/34 177/30/34 178/31/34 -f 133/87/34 132/86/34 164/104/34 -f 159/88/34 191/90/34 192/93/34 -f 146/64/34 178/31/34 179/90/34 -f 134/64/34 133/29/34 165/30/34 -f 130/66/34 160/65/34 192/93/34 -f 147/49/34 179/90/34 180/101/34 -f 134/64/34 166/31/34 167/90/34 -f 148/65/34 180/101/34 181/96/34 -f 136/65/34 135/49/34 167/90/34 -f 210/105/131 242/106/131 243/107/131 -f 163/103/132 161/102/132 193/108/132 -f 190/31/133 189/30/133 221/109/133 -f 176/101/134 208/92/134 209/110/134 -f 163/103/135 195/111/135 196/112/135 -f 190/31/136 222/105/136 223/91/136 -f 178/31/137 177/30/137 209/109/137 -f 165/113/138 164/104/138 196/112/138 -f 191/90/139 223/91/139 224/92/139 -f 179/90/140 178/31/140 210/105/140 -f 166/31/141 165/30/141 197/109/141 -f 192/93/142 224/92/142 194/110/142 -f 179/90/143 211/91/143 212/92/143 -f 167/90/144 166/31/144 198/105/144 -f 181/96/145 180/101/145 212/92/145 -f 168/93/146 167/90/146 199/91/146 -f 181/30/147 213/109/147 214/105/147 -f 169/96/148 168/93/148 200/92/148 -f 183/90/149 182/31/149 214/105/149 -f 169/94/150 201/114/150 202/115/150 -f 183/90/151 215/91/151 216/92/151 -f 171/97/152 170/95/152 202/115/152 -f 185/96/153 184/93/153 216/92/153 -f 171/97/154 203/116/154 204/117/154 -f 186/31/155 185/30/155 217/109/155 -f 173/99/156 172/98/156 204/117/156 -f 187/90/157 186/31/157 218/105/157 -f 174/31/158 173/30/158 205/109/158 -f 188/93/159 187/90/159 219/91/159 -f 175/90/160 174/31/160 206/105/160 -f 161/102/161 162/100/161 194/118/161 -f 189/96/162 188/93/162 220/92/162 -f 245/119/163 277/120/163 278/121/163 -f 197/109/164 229/119/164 230/106/164 -f 224/92/165 256/122/165 226/123/165 -f 211/91/166 243/107/166 244/122/166 -f 198/105/167 230/106/167 231/107/167 -f 212/92/168 244/122/168 245/123/168 -f 199/91/169 231/107/169 232/122/169 -f 213/109/170 245/119/170 246/106/170 -f 200/92/171 232/122/171 233/123/171 -f 215/91/172 214/105/172 246/106/172 -f 201/114/173 233/124/173 234/125/173 -f 215/91/174 247/107/174 248/122/174 -f 202/115/175 234/125/175 235/126/175 -f 217/110/176 216/92/176 248/122/176 -f 203/116/177 235/126/177 236/127/177 -f 218/105/178 217/109/178 249/119/178 -f 204/117/179 236/127/179 237/128/179 -f 218/105/180 250/106/180 251/107/180 -f 205/109/181 237/119/181 238/106/181 -f 219/91/182 251/107/182 252/122/182 -f 206/105/183 238/106/183 239/107/183 -f 194/118/184 226/129/184 225/130/184 -f 221/110/185 220/92/185 252/122/185 -f 207/91/186 239/107/186 240/122/186 -f 193/108/187 225/130/187 227/131/187 -f 222/105/188 221/109/188 253/119/188 -f 208/92/189 240/122/189 241/123/189 -f 195/111/190 227/131/190 228/132/190 -f 222/105/191 254/106/191 255/107/191 -f 209/109/192 241/119/192 242/106/192 -f 196/112/193 228/132/193 229/133/193 -f 223/91/194 255/107/194 256/122/194 -f 280/134/195 312/135/195 313/136/195 -f 232/122/196 264/134/196 265/137/196 -f 247/107/197 246/106/197 278/121/197 -f 233/124/198 265/138/198 266/139/198 -f 247/107/199 279/140/199 280/134/199 -f 235/126/200 234/125/200 266/139/200 -f 248/122/201 280/134/201 281/137/201 -f 235/126/202 267/141/202 268/142/202 -f 250/106/203 249/119/203 281/120/203 -f 237/128/204 236/127/204 268/142/204 -f 250/106/205 282/121/205 283/140/205 -f 237/119/206 269/120/206 270/121/206 -f 252/122/207 251/107/207 283/140/207 -f 238/106/208 270/121/208 271/140/208 -f 226/129/209 258/143/209 257/144/209 -f 253/123/210 252/122/210 284/134/210 -f 239/107/211 271/140/211 272/134/211 -f 225/130/212 257/144/212 259/145/212 -f 253/119/213 285/120/213 286/121/213 -f 240/122/214 272/134/214 273/137/214 -f 228/132/215 227/131/215 259/145/215 -f 255/107/216 254/106/216 286/121/216 -f 241/119/217 273/120/217 274/121/217 -f 229/133/218 228/132/218 260/146/218 -f 255/107/219 287/140/219 288/134/219 -f 242/106/220 274/121/220 275/140/220 -f 229/119/221 261/120/221 262/121/221 -f 226/123/222 256/122/222 288/134/222 -f 243/107/223 275/140/223 276/134/223 -f 231/107/224 230/106/224 262/121/224 -f 245/123/225 244/122/225 276/134/225 -f 231/107/226 263/140/226 264/134/226 -f 316/135/227 315/147/227 347/148/227 -f 267/141/228 299/149/228 300/150/228 -f 281/120/229 313/151/229 314/152/229 -f 268/142/230 300/150/230 301/153/230 -f 282/121/231 314/152/231 315/147/231 -f 269/120/232 301/151/232 302/152/232 -f 283/140/233 315/147/233 316/135/233 -f 270/121/234 302/152/234 303/147/234 -f 258/143/235 290/154/235 289/155/235 -f 284/134/236 316/135/236 317/136/236 -f 271/140/237 303/147/237 304/135/237 -f 259/145/238 257/144/238 289/155/238 -f 286/121/239 285/120/239 317/151/239 -f 272/134/240 304/135/240 305/136/240 -f 260/146/241 259/145/241 291/156/241 -f 286/121/242 318/152/242 319/157/242 -f 273/120/243 305/151/243 306/152/243 -f 261/158/244 260/146/244 292/159/244 -f 287/140/245 319/157/245 320/135/245 -f 274/121/246 306/152/246 307/147/246 -f 262/121/247 261/120/247 293/151/247 -f 258/160/248 288/134/248 320/135/248 -f 275/140/249 307/147/249 308/135/249 -f 262/121/250 294/152/250 295/147/250 -f 277/137/251 276/134/251 308/135/251 -f 263/140/252 295/147/252 296/135/252 -f 277/120/253 309/151/253 310/152/253 -f 264/134/254 296/135/254 297/136/254 -f 278/121/255 310/152/255 311/147/255 -f 266/139/256 265/138/256 297/161/256 -f 279/140/257 311/147/257 312/135/257 -f 267/141/258 266/139/258 298/162/258 -f 324/163/259 323/164/259 355/165/259 -f 303/147/260 302/152/260 334/166/260 -f 290/154/261 322/167/261 321/166/261 -f 316/135/262 348/168/262 349/169/262 -f 303/147/263 335/148/263 336/168/263 -f 291/156/264 289/155/264 321/166/264 -f 317/151/265 349/167/265 350/166/265 -f 304/135/266 336/168/266 337/169/266 -f 291/156/267 323/164/267 324/163/267 -f 318/152/268 350/166/268 351/148/268 -f 305/151/269 337/167/269 338/166/269 -f 292/159/270 324/163/270 325/170/270 -f 320/135/271 319/157/271 351/148/271 -f 306/152/272 338/166/272 339/148/272 -f 294/152/273 293/151/273 325/167/273 -f 320/135/274 352/168/274 322/169/274 -f 307/147/275 339/148/275 340/168/275 -f 294/152/276 326/166/276 327/148/276 -f 308/135/277 340/168/277 341/169/277 -f 296/135/278 295/147/278 327/148/278 -f 309/151/279 341/167/279 342/166/279 -f 296/135/280 328/168/280 329/169/280 -f 311/147/281 310/152/281 342/166/281 -f 298/162/282 297/161/282 329/171/282 -f 311/147/283 343/148/283 344/168/283 -f 298/162/284 330/172/284 331/173/284 -f 312/135/285 344/168/285 345/169/285 -f 300/150/286 299/149/286 331/173/286 -f 313/151/287 345/167/287 346/166/287 -f 300/150/288 332/174/288 333/175/288 -f 314/152/289 346/166/289 347/148/289 -f 301/151/290 333/167/290 334/166/290 -f 358/176/291 390/177/291 391/178/291 -f 351/148/292 350/166/292 382/176/292 -f 337/167/293 369/179/293 370/176/293 -f 325/170/294 324/163/294 356/180/294 -f 352/168/295 351/148/295 383/181/295 -f 339/148/296 338/166/296 370/176/296 -f 326/166/297 325/167/297 357/179/297 -f 352/168/298 384/182/298 354/183/298 -f 339/148/299 371/181/299 372/182/299 -f 326/166/300 358/176/300 359/181/300 -f 340/168/301 372/182/301 373/184/301 -f 328/168/302 327/148/302 359/181/302 -f 341/167/303 373/179/303 374/176/303 -f 328/168/304 360/182/304 361/184/304 -f 342/166/305 374/176/305 375/181/305 -f 330/172/306 329/171/306 361/185/306 -f 343/148/307 375/181/307 376/182/307 -f 330/172/308 362/186/308 363/187/308 -f 344/168/309 376/182/309 377/184/309 -f 331/173/310 363/187/310 364/188/310 -f 345/167/311 377/179/311 378/176/311 -f 332/174/312 364/188/312 365/189/312 -f 346/166/313 378/176/313 379/181/313 -f 334/166/314 333/167/314 365/179/314 -f 347/148/315 379/181/315 380/182/315 -f 334/166/316 366/176/316 367/181/316 -f 322/167/317 354/190/317 353/191/317 -f 348/168/318 380/182/318 381/183/318 -f 335/148/319 367/181/319 368/182/319 -f 321/166/320 353/191/320 355/165/320 -f 349/167/321 381/179/321 382/176/321 -f 336/168/322 368/182/322 369/184/322 -f 393/192/323 425/193/323 426/194/323 -f 373/184/324 372/182/324 404/195/324 -f 360/182/325 359/181/325 391/178/325 -f 374/176/326 373/179/326 405/196/326 -f 361/184/327 360/182/327 392/197/327 -f 375/181/328 374/176/328 406/177/328 -f 361/185/329 393/192/329 394/198/329 -f 375/181/330 407/178/330 408/195/330 -f 362/186/331 394/198/331 395/199/331 -f 377/184/332 376/182/332 408/195/332 -f 363/187/333 395/199/333 396/200/333 -f 377/179/334 409/196/334 410/177/334 -f 364/188/335 396/200/335 397/201/335 -f 378/176/336 410/177/336 411/178/336 -f 366/176/337 365/179/337 397/196/337 -f 380/182/338 379/181/338 411/178/338 -f 367/181/339 366/176/339 398/177/339 -f 354/190/340 386/196/340 385/202/340 -f 380/182/341 412/195/341 413/203/341 -f 368/182/342 367/181/342 399/178/342 -f 353/191/343 385/202/343 387/204/343 -f 382/176/344 381/179/344 413/196/344 -f 369/184/345 368/182/345 400/195/345 -f 356/180/346 355/165/346 387/204/346 -f 382/176/347 414/177/347 415/178/347 -f 370/176/348 369/179/348 401/196/348 -f 356/180/349 388/197/349 389/203/349 -f 384/182/350 383/181/350 415/178/350 -f 370/176/351 402/177/351 403/178/351 -f 357/179/352 389/196/352 390/177/352 -f 354/183/353 384/182/353 416/197/353 -f 371/181/354 403/178/354 404/195/354 -f 428/205/355 460/206/355 461/207/355 -f 407/178/356 439/208/356 440/205/356 -f 394/198/357 426/194/357 427/209/357 -f 408/195/358 440/205/358 441/210/358 -f 395/199/359 427/209/359 428/205/359 -f 410/177/360 409/196/360 441/193/360 -f 397/201/361 396/200/361 428/205/361 -f 411/178/362 410/177/362 442/194/362 -f 397/196/363 429/193/363 430/194/363 -f 412/195/364 411/178/364 443/208/364 -f 398/177/365 430/194/365 431/208/365 -f 385/202/366 386/196/366 418/193/366 -f 412/195/367 444/205/367 445/210/367 -f 400/195/368 399/178/368 431/208/368 -f 385/202/369 417/194/369 419/208/369 -f 413/196/370 445/193/370 446/194/370 -f 400/195/371 432/205/371 433/210/371 -f 387/204/372 419/208/372 420/211/372 -f 414/177/373 446/194/373 447/208/373 -f 401/196/374 433/193/374 434/194/374 -f 388/197/375 420/211/375 421/210/375 -f 415/178/376 447/208/376 448/205/376 -f 402/177/377 434/194/377 435/208/377 -f 389/196/378 421/193/378 422/194/378 -f 416/197/379 448/205/379 418/210/379 -f 403/178/380 435/208/380 436/205/380 -f 391/178/381 390/177/381 422/194/381 -f 404/195/382 436/205/382 437/210/382 -f 391/178/383 423/208/383 424/205/383 -f 405/196/384 437/193/384 438/194/384 -f 393/203/385 392/197/385 424/205/385 -f 406/177/386 438/194/386 439/208/386 -f 467/212/387 457/213/387 451/214/387 -f 443/208/388 442/194/388 474/215/388 -f 429/193/389 461/216/389 462/215/389 -f 444/205/390 443/208/390 475/217/390 -f 430/194/391 462/215/391 463/217/391 -f 418/193/392 450/216/392 449/215/392 -f 445/210/393 444/205/393 476/206/393 -f 431/208/394 463/217/394 464/206/394 -f 417/194/395 449/215/395 451/217/395 -f 445/193/396 477/216/396 478/215/396 -f 433/210/397 432/205/397 464/206/397 -f 420/211/398 419/208/398 451/217/398 -f 446/194/399 478/215/399 479/217/399 -f 433/193/400 465/216/400 466/215/400 -f 421/210/401 420/211/401 452/206/401 -f 447/208/402 479/217/402 480/206/402 -f 434/194/403 466/215/403 467/217/403 -f 421/193/404 453/216/404 454/215/404 -f 448/205/405 480/206/405 450/218/405 -f 435/208/406 467/217/406 468/206/406 -f 422/194/407 454/215/407 455/217/407 -f 436/205/408 468/206/408 469/218/408 -f 423/208/409 455/217/409 456/206/409 -f 438/194/410 437/193/410 469/216/410 -f 425/210/411 424/205/411 456/206/411 -f 438/194/412 470/215/412 471/217/412 -f 425/193/413 457/216/413 458/215/413 -f 439/208/414 471/217/414 472/206/414 -f 426/194/415 458/215/415 459/217/415 -f 440/205/416 472/206/416 473/218/416 -f 428/205/417 427/209/417 459/217/417 -f 441/193/418 473/216/418 474/215/418 -f 1/17/1 2/1/1 3/3/1 -f 5/19/2 3/3/2 6/4/2 -f 5/19/3 6/4/3 7/6/3 -f 7/6/4 8/5/4 9/8/4 -f 9/25/5 10/9/5 11/11/5 -f 13/13/6 11/11/6 14/12/6 -f 15/6/7 13/13/7 16/14/7 -f 15/6/8 16/14/8 17/16/8 -f 17/25/9 18/9/9 19/11/9 -f 21/13/10 19/11/10 22/4/10 -f 21/13/11 22/4/11 23/6/11 -f 23/6/12 24/14/12 25/16/12 -f 27/11/13 25/17/13 28/2/13 -f 29/19/14 27/11/14 30/4/14 -f 31/6/15 29/19/15 32/5/15 -f 33/8/16 31/6/16 34/7/16 -f 33/219/17 34/1/17 35/21/17 -f 37/19/18 35/21/18 38/4/18 -f 37/19/19 38/4/19 39/23/19 -f 39/23/20 40/22/20 41/24/20 -f 41/25/21 42/9/21 43/11/21 -f 43/11/22 44/10/22 45/13/22 -f 45/13/23 46/4/23 47/6/23 -f 47/6/24 48/14/24 49/16/24 -f 51/11/25 49/25/25 52/10/25 -f 51/11/26 52/10/26 53/13/26 -f 53/13/27 54/4/27 55/6/27 -f 55/6/28 56/14/28 57/16/28 -f 57/219/29 58/1/29 59/21/29 -f 59/21/419 60/10/419 61/19/419 -f 24/14/31 22/4/31 76/27/31 -f 1/16/32 63/6/32 2/28/32 -f 61/19/33 62/4/33 63/6/33 -f 150/64/34 149/29/34 182/31/34 -f 69/35/35 68/32/35 101/34/35 -f 42/7/36 40/22/36 85/35/36 -f 60/10/37 58/1/37 94/37/37 -f 16/14/38 14/12/38 72/39/38 -f 34/7/39 32/5/39 81/40/39 -f 90/44/40 52/10/40 89/41/40 -f 68/32/41 8/5/41 67/42/41 -f 77/46/42 26/15/42 76/27/42 -f 86/44/43 44/10/43 85/41/43 -f 62/4/44 60/10/44 95/42/44 -f 18/15/45 16/14/45 73/43/45 -f 82/37/46 36/20/46 81/36/46 -f 54/4/47 52/10/47 91/38/47 -f 10/7/48 8/5/48 69/35/48 -f 78/37/49 28/2/49 77/45/49 -f 46/4/50 44/10/50 87/26/50 -f 64/14/51 62/4/51 96/32/51 -f 20/10/52 18/9/52 74/44/52 -f 38/4/53 36/20/53 83/42/53 -f 56/14/54 54/4/54 92/39/54 -f 12/10/55 10/9/55 70/44/55 -f 30/4/56 28/2/56 79/42/56 -f 48/14/57 46/4/57 88/27/57 -f 4/2/58 2/1/58 65/37/58 -f 2/28/59 64/14/59 66/35/59 -f 22/4/60 20/10/60 75/26/60 -f 40/22/61 38/4/61 84/32/61 -f 93/46/62 58/15/62 92/39/62 -f 14/12/63 12/10/63 71/38/63 -f 80/32/64 32/5/64 79/42/64 -f 50/15/65 48/14/65 89/46/65 -f 6/4/66 4/2/66 67/42/66 -f 136/65/67 104/47/67 135/49/67 -f 96/32/68 95/42/68 128/33/68 -f 115/50/69 83/42/69 114/51/69 -f 70/44/70 69/36/70 102/53/70 -f 98/55/71 66/35/71 128/33/71 -f 84/32/72 83/42/72 116/33/72 -f 71/38/73 70/44/73 103/54/73 -f 85/35/74 84/32/74 117/55/74 -f 72/39/75 71/38/75 104/56/75 -f 86/44/76 85/41/76 118/51/76 -f 73/43/77 72/39/77 105/58/77 -f 87/26/78 86/44/78 119/59/78 -f 74/44/79 73/41/79 106/51/79 -f 88/27/80 87/26/80 120/56/80 -f 75/26/81 74/44/81 107/50/81 -f 89/46/82 88/27/82 121/60/82 -f 76/27/83 75/26/83 108/56/83 -f 90/44/84 89/41/84 122/53/84 -f 77/46/85 76/27/85 109/60/85 -f 91/38/86 90/44/86 123/54/86 -f 78/37/87 77/45/87 110/51/87 -f 92/39/88 91/38/88 124/56/88 -f 79/42/89 78/37/89 111/50/89 -f 65/37/90 66/45/90 97/51/90 -f 93/46/91 92/39/91 125/60/91 -f 80/32/92 79/42/92 112/33/92 -f 67/42/93 65/37/93 99/50/93 -f 94/37/94 93/36/94 126/51/94 -f 81/40/95 80/32/95 113/55/95 -f 68/32/96 67/42/96 100/33/96 -f 95/42/97 94/37/97 127/50/97 -f 82/37/98 81/36/98 114/51/98 -f 118/67/99 117/63/99 150/64/99 -f 105/89/100 104/47/100 137/66/100 -f 119/71/101 118/67/101 151/49/101 -f 138/72/102 106/68/102 137/70/102 -f 120/47/103 119/71/103 152/65/103 -f 107/74/104 106/68/104 139/73/104 -f 121/89/105 120/47/105 153/66/105 -f 108/76/106 107/74/106 140/75/106 -f 154/64/107 122/67/107 153/29/107 -f 109/220/108 108/76/108 141/77/108 -f 155/49/109 123/71/109 154/64/109 -f 110/67/110 109/63/110 142/64/110 -f 156/65/111 124/47/111 155/49/111 -f 111/48/112 110/67/112 143/49/112 -f 129/82/113 97/78/113 130/80/113 -f 125/89/114 124/47/114 157/66/114 -f 112/47/115 111/48/115 144/65/115 -f 131/85/116 99/81/116 129/82/116 -f 158/64/117 126/67/117 157/29/117 -f 113/89/118 112/47/118 145/83/118 -f 132/86/119 100/84/119 131/85/119 -f 159/88/120 127/71/120 158/64/120 -f 146/64/121 114/67/121 145/29/121 -f 101/221/122 100/84/122 133/87/122 -f 128/47/123 127/71/123 160/65/123 -f 147/49/124 115/48/124 146/64/124 -f 102/67/125 101/63/125 134/64/125 -f 98/89/126 128/47/126 130/66/126 -f 116/47/127 115/48/127 148/65/127 -f 103/48/128 102/67/128 135/49/128 -f 149/83/129 117/89/129 148/65/129 -f 176/101/130 175/90/130 208/92/130 -f 169/96/34 137/66/34 168/93/34 -f 151/49/34 150/64/34 183/90/34 -f 170/95/34 138/72/34 169/94/34 -f 152/65/34 151/49/34 184/93/34 -f 171/97/34 139/73/34 170/95/34 -f 153/66/34 152/65/34 185/96/34 -f 172/98/34 140/75/34 171/97/34 -f 154/64/34 153/29/34 186/31/34 -f 141/77/34 140/75/34 173/99/34 -f 155/49/34 154/64/34 187/90/34 -f 142/64/34 141/29/34 174/31/34 -f 156/65/34 155/49/34 188/93/34 -f 143/49/34 142/64/34 175/90/34 -f 161/102/34 129/82/34 162/100/34 -f 189/96/34 157/66/34 188/93/34 -f 144/65/34 143/49/34 176/101/34 -f 163/103/34 131/85/34 161/102/34 -f 190/31/34 158/64/34 189/30/34 -f 145/83/34 144/65/34 177/96/34 -f 164/104/34 132/86/34 163/103/34 -f 191/90/34 159/88/34 190/31/34 -f 146/64/34 145/29/34 178/31/34 -f 165/113/34 133/87/34 164/104/34 -f 160/65/34 159/88/34 192/93/34 -f 147/49/34 146/64/34 179/90/34 -f 166/31/34 134/64/34 165/30/34 -f 162/96/34 130/66/34 192/93/34 -f 148/65/34 147/49/34 180/101/34 -f 135/49/34 134/64/34 167/90/34 -f 149/83/34 148/65/34 181/96/34 -f 168/93/34 136/65/34 167/90/34 -f 211/91/131 210/105/131 243/107/131 -f 195/111/132 163/103/132 193/108/132 -f 222/105/133 190/31/133 221/109/133 -f 177/96/134 176/101/134 209/110/134 -f 164/104/135 163/103/135 196/112/135 -f 191/90/136 190/31/136 223/91/136 -f 210/105/137 178/31/137 209/109/137 -f 197/222/138 165/113/138 196/112/138 -f 192/93/139 191/90/139 224/92/139 -f 211/91/140 179/90/140 210/105/140 -f 198/105/141 166/31/141 197/109/141 -f 162/96/142 192/93/142 194/110/142 -f 180/101/143 179/90/143 212/92/143 -f 199/91/144 167/90/144 198/105/144 -f 213/110/145 181/96/145 212/92/145 -f 200/92/146 168/93/146 199/91/146 -f 182/31/147 181/30/147 214/105/147 -f 201/110/148 169/96/148 200/92/148 -f 215/91/149 183/90/149 214/105/149 -f 170/95/150 169/94/150 202/115/150 -f 184/93/151 183/90/151 216/92/151 -f 203/116/152 171/97/152 202/115/152 -f 217/110/153 185/96/153 216/92/153 -f 172/98/154 171/97/154 204/117/154 -f 218/105/155 186/31/155 217/109/155 -f 205/223/156 173/99/156 204/117/156 -f 219/91/157 187/90/157 218/105/157 -f 206/105/158 174/31/158 205/109/158 -f 220/92/159 188/93/159 219/91/159 -f 207/91/160 175/90/160 206/105/160 -f 193/108/161 161/102/161 194/118/161 -f 221/110/162 189/96/162 220/92/162 -f 246/106/163 245/119/163 278/121/163 -f 198/105/164 197/109/164 230/106/164 -f 194/110/165 224/92/165 226/123/165 -f 212/92/166 211/91/166 244/122/166 -f 199/91/167 198/105/167 231/107/167 -f 213/110/168 212/92/168 245/123/168 -f 200/92/169 199/91/169 232/122/169 -f 214/105/170 213/109/170 246/106/170 -f 201/110/171 200/92/171 233/123/171 -f 247/107/172 215/91/172 246/106/172 -f 202/115/173 201/114/173 234/125/173 -f 216/92/174 215/91/174 248/122/174 -f 203/116/175 202/115/175 235/126/175 -f 249/123/176 217/110/176 248/122/176 -f 204/117/177 203/116/177 236/127/177 -f 250/106/178 218/105/178 249/119/178 -f 205/223/179 204/117/179 237/128/179 -f 219/91/180 218/105/180 251/107/180 -f 206/105/181 205/109/181 238/106/181 -f 220/92/182 219/91/182 252/122/182 -f 207/91/183 206/105/183 239/107/183 -f 193/108/184 194/118/184 225/130/184 -f 253/123/185 221/110/185 252/122/185 -f 208/92/186 207/91/186 240/122/186 -f 195/111/187 193/108/187 227/131/187 -f 254/106/188 222/105/188 253/119/188 -f 209/110/189 208/92/189 241/123/189 -f 196/112/190 195/111/190 228/132/190 -f 223/91/191 222/105/191 255/107/191 -f 210/105/192 209/109/192 242/106/192 -f 197/222/193 196/112/193 229/133/193 -f 224/92/194 223/91/194 256/122/194 -f 281/137/195 280/134/195 313/136/195 -f 233/123/196 232/122/196 265/137/196 -f 279/140/197 247/107/197 278/121/197 -f 234/125/198 233/124/198 266/139/198 -f 248/122/199 247/107/199 280/134/199 -f 267/141/200 235/126/200 266/139/200 -f 249/123/201 248/122/201 281/137/201 -f 236/127/202 235/126/202 268/142/202 -f 282/121/203 250/106/203 281/120/203 -f 269/224/204 237/128/204 268/142/204 -f 251/107/205 250/106/205 283/140/205 -f 238/106/206 237/119/206 270/121/206 -f 284/134/207 252/122/207 283/140/207 -f 239/107/208 238/106/208 271/140/208 -f 225/130/209 226/129/209 257/144/209 -f 285/137/210 253/123/210 284/134/210 -f 240/122/211 239/107/211 272/134/211 -f 227/131/212 225/130/212 259/145/212 -f 254/106/213 253/119/213 286/121/213 -f 241/123/214 240/122/214 273/137/214 -f 260/146/215 228/132/215 259/145/215 -f 287/140/216 255/107/216 286/121/216 -f 242/106/217 241/119/217 274/121/217 -f 261/158/218 229/133/218 260/146/218 -f 256/122/219 255/107/219 288/134/219 -f 243/107/220 242/106/220 275/140/220 -f 230/106/221 229/119/221 262/121/221 -f 258/160/222 226/123/222 288/134/222 -f 244/122/223 243/107/223 276/134/223 -f 263/140/224 231/107/224 262/121/224 -f 277/137/225 245/123/225 276/134/225 -f 232/122/226 231/107/226 264/134/226 -f 348/168/227 316/135/227 347/148/227 -f 268/142/228 267/141/228 300/150/228 -f 282/121/229 281/120/229 314/152/229 -f 269/224/230 268/142/230 301/153/230 -f 283/140/231 282/121/231 315/147/231 -f 270/121/232 269/120/232 302/152/232 -f 284/134/233 283/140/233 316/135/233 -f 271/140/234 270/121/234 303/147/234 -f 257/144/235 258/143/235 289/155/235 -f 285/137/236 284/134/236 317/136/236 -f 272/134/237 271/140/237 304/135/237 -f 291/156/238 259/145/238 289/155/238 -f 318/152/239 286/121/239 317/151/239 -f 273/137/240 272/134/240 305/136/240 -f 292/159/241 260/146/241 291/156/241 -f 287/140/242 286/121/242 319/157/242 -f 274/121/243 273/120/243 306/152/243 -f 293/225/244 261/158/244 292/159/244 -f 288/134/245 287/140/245 320/135/245 -f 275/140/246 274/121/246 307/147/246 -f 294/152/247 262/121/247 293/151/247 -f 290/136/248 258/160/248 320/135/248 -f 276/134/249 275/140/249 308/135/249 -f 263/140/250 262/121/250 295/147/250 -f 309/136/251 277/137/251 308/135/251 -f 264/134/252 263/140/252 296/135/252 -f 278/121/253 277/120/253 310/152/253 -f 265/137/254 264/134/254 297/136/254 -f 279/140/255 278/121/255 311/147/255 -f 298/162/256 266/139/256 297/161/256 -f 280/134/257 279/140/257 312/135/257 -f 299/149/258 267/141/258 298/162/258 -f 356/180/259 324/163/259 355/165/259 -f 335/148/260 303/147/260 334/166/260 -f 289/155/261 290/154/261 321/166/261 -f 317/136/262 316/135/262 349/169/262 -f 304/135/263 303/147/263 336/168/263 -f 323/164/264 291/156/264 321/166/264 -f 318/152/265 317/151/265 350/166/265 -f 305/136/266 304/135/266 337/169/266 -f 292/159/267 291/156/267 324/163/267 -f 319/157/268 318/152/268 351/148/268 -f 306/152/420 305/151/420 338/166/420 -f 293/225/270 292/159/270 325/170/270 -f 352/168/271 320/135/271 351/148/271 -f 307/147/272 306/152/272 339/148/272 -f 326/166/273 294/152/273 325/167/273 -f 290/136/274 320/135/274 322/169/274 -f 308/135/275 307/147/275 340/168/275 -f 295/147/276 294/152/276 327/148/276 -f 309/136/277 308/135/277 341/169/277 -f 328/168/278 296/135/278 327/148/278 -f 310/152/279 309/151/279 342/166/279 -f 297/136/280 296/135/280 329/169/280 -f 343/148/281 311/147/281 342/166/281 -f 330/172/282 298/162/282 329/171/282 -f 312/135/283 311/147/283 344/168/283 -f 299/149/284 298/162/284 331/173/284 -f 313/136/285 312/135/285 345/169/285 -f 332/174/286 300/150/286 331/173/286 -f 314/152/287 313/151/287 346/166/287 -f 301/153/288 300/150/288 333/175/288 -f 315/147/289 314/152/289 347/148/289 -f 302/152/290 301/151/290 334/166/290 -f 359/181/291 358/176/291 391/178/291 -f 383/181/292 351/148/292 382/176/292 -f 338/166/293 337/167/293 370/176/293 -f 357/183/294 325/170/294 356/180/294 -f 384/182/295 352/168/295 383/181/295 -f 371/181/296 339/148/296 370/176/296 -f 358/176/297 326/166/297 357/179/297 -f 322/169/298 352/168/298 354/183/298 -f 340/168/299 339/148/299 372/182/299 -f 327/148/300 326/166/300 359/181/300 -f 341/169/301 340/168/301 373/184/301 -f 360/182/302 328/168/302 359/181/302 -f 342/166/303 341/167/303 374/176/303 -f 329/169/304 328/168/304 361/184/304 -f 343/148/305 342/166/305 375/181/305 -f 362/186/306 330/172/306 361/185/306 -f 344/168/307 343/148/307 376/182/307 -f 331/173/308 330/172/308 363/187/308 -f 345/169/309 344/168/309 377/184/309 -f 332/174/310 331/173/310 364/188/310 -f 346/166/311 345/167/311 378/176/311 -f 333/175/312 332/174/312 365/189/312 -f 347/148/313 346/166/313 379/181/313 -f 366/176/314 334/166/314 365/179/314 -f 348/168/315 347/148/315 380/182/315 -f 335/148/316 334/166/316 367/181/316 -f 321/166/317 322/167/317 353/191/317 -f 349/169/318 348/168/318 381/183/318 -f 336/168/319 335/148/319 368/182/319 -f 323/164/320 321/166/320 355/165/320 -f 350/166/321 349/167/321 382/176/321 -f 337/169/322 336/168/322 369/184/322 -f 394/198/323 393/192/323 426/194/323 -f 405/203/324 373/184/324 404/195/324 -f 392/197/325 360/182/325 391/178/325 -f 406/177/326 374/176/326 405/196/326 -f 393/203/327 361/184/327 392/197/327 -f 407/178/328 375/181/328 406/177/328 -f 362/186/329 361/185/329 394/198/329 -f 376/182/330 375/181/330 408/195/330 -f 363/187/331 362/186/331 395/199/331 -f 409/203/332 377/184/332 408/195/332 -f 364/188/333 363/187/333 396/200/333 -f 378/176/334 377/179/334 410/177/334 -f 365/189/335 364/188/335 397/201/335 -f 379/181/336 378/176/336 411/178/336 -f 398/177/337 366/176/337 397/196/337 -f 412/195/338 380/182/338 411/178/338 -f 399/178/339 367/181/339 398/177/339 -f 353/191/340 354/190/340 385/202/340 -f 381/183/341 380/182/341 413/203/341 -f 400/195/342 368/182/342 399/178/342 -f 355/165/343 353/191/343 387/204/343 -f 414/177/344 382/176/344 413/196/344 -f 401/203/345 369/184/345 400/195/345 -f 388/197/346 356/180/346 387/204/346 -f 383/181/347 382/176/347 415/178/347 -f 402/177/348 370/176/348 401/196/348 -f 357/183/349 356/180/349 389/203/349 -f 416/197/350 384/182/350 415/178/350 -f 371/181/351 370/176/351 403/178/351 -f 358/176/352 357/179/352 390/177/352 -f 386/203/353 354/183/353 416/197/353 -f 372/182/354 371/181/354 404/195/354 -f 429/226/355 428/205/355 461/207/355 -f 408/195/356 407/178/356 440/205/356 -f 395/199/357 394/198/357 427/209/357 -f 409/203/358 408/195/358 441/210/358 -f 396/200/359 395/199/359 428/205/359 -f 442/194/360 410/177/360 441/193/360 -f 429/226/361 397/201/361 428/205/361 -f 443/208/362 411/178/362 442/194/362 -f 398/177/363 397/196/363 430/194/363 -f 444/205/364 412/195/364 443/208/364 -f 399/178/365 398/177/365 431/208/365 -f 417/194/366 385/202/366 418/193/366 -f 413/203/367 412/195/367 445/210/367 -f 432/205/368 400/195/368 431/208/368 -f 387/204/369 385/202/369 419/208/369 -f 414/177/370 413/196/370 446/194/370 -f 401/203/371 400/195/371 433/210/371 -f 388/197/372 387/204/372 420/211/372 -f 415/178/373 414/177/373 447/208/373 -f 402/177/374 401/196/374 434/194/374 -f 389/203/375 388/197/375 421/210/375 -f 416/197/376 415/178/376 448/205/376 -f 403/178/377 402/177/377 435/208/377 -f 390/177/378 389/196/378 422/194/378 -f 386/203/379 416/197/379 418/210/379 -f 404/195/380 403/178/380 436/205/380 -f 423/208/381 391/178/381 422/194/381 -f 405/203/382 404/195/382 437/210/382 -f 392/197/383 391/178/383 424/205/383 -f 406/177/384 405/196/384 438/194/384 -f 425/210/385 393/203/385 424/205/385 -f 407/178/386 406/177/386 439/208/386 -f 451/214/421 449/227/421 450/228/421 -f 450/228/387 480/229/387 451/214/387 -f 479/230/387 478/231/387 475/232/387 -f 477/233/387 476/234/387 475/232/387 -f 475/232/387 474/235/387 473/236/387 -f 473/236/387 472/237/387 475/232/387 -f 471/238/387 470/239/387 469/240/387 -f 469/240/387 468/241/387 471/238/387 -f 467/212/421 466/242/421 465/243/421 -f 465/243/422 464/244/422 467/212/422 -f 463/245/387 462/246/387 461/247/387 -f 461/247/387 460/248/387 459/249/387 -f 459/249/387 458/250/387 457/213/387 -f 457/213/387 456/251/387 455/252/387 -f 455/252/387 454/253/387 453/254/387 -f 453/254/387 452/255/387 451/214/387 -f 451/214/387 480/229/387 479/230/387 -f 478/231/387 477/233/387 475/232/387 -f 475/232/387 472/237/387 471/238/387 -f 471/238/387 468/241/387 467/212/387 -f 467/212/387 464/244/387 463/245/387 -f 463/245/387 461/247/387 467/212/387 -f 459/249/387 457/213/387 467/212/387 -f 455/252/387 453/254/387 451/214/387 -f 451/214/387 479/230/387 475/232/387 -f 475/232/387 471/238/387 451/214/387 -f 467/212/387 461/247/387 459/249/387 -f 457/213/387 455/252/387 451/214/387 -f 451/214/387 471/238/387 467/212/387 -f 475/217/388 443/208/388 474/215/388 -f 430/194/389 429/193/389 462/215/389 -f 476/206/390 444/205/390 475/217/390 -f 431/208/391 430/194/391 463/217/391 -f 417/194/392 418/193/392 449/215/392 -f 477/218/393 445/210/393 476/206/393 -f 432/205/423 431/208/423 464/206/423 -f 419/208/424 417/194/424 451/217/424 -f 446/194/396 445/193/396 478/215/396 -f 465/218/397 433/210/397 464/206/397 -f 452/206/398 420/211/398 451/217/398 -f 447/208/399 446/194/399 479/217/399 -f 434/194/400 433/193/400 466/215/400 -f 453/218/401 421/210/401 452/206/401 -f 448/205/402 447/208/402 480/206/402 -f 435/208/403 434/194/403 467/217/403 -f 422/194/404 421/193/404 454/215/404 -f 418/210/405 448/205/405 450/218/405 -f 436/205/406 435/208/406 468/206/406 -f 423/208/425 422/194/425 455/217/425 -f 437/210/426 436/205/426 469/218/426 -f 424/205/409 423/208/409 456/206/409 -f 470/215/410 438/194/410 469/216/410 -f 457/218/411 425/210/411 456/206/411 -f 439/208/427 438/194/427 471/217/427 -f 426/194/413 425/193/413 458/215/413 -f 440/205/414 439/208/414 472/206/414 -f 427/209/415 426/194/415 459/217/415 -f 441/210/416 440/205/416 473/218/416 -f 460/206/428 428/205/428 459/217/428 -f 442/194/418 441/193/418 474/215/418 diff --git a/src/main/resources/assets/hbm/textures/models/missileMicro.png b/src/main/resources/assets/hbm/textures/models/missileMicro.png deleted file mode 100644 index d86823cbc991b6c1e6f4fbac4eb11a3ad6db838f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8015 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 a4S}I((Q#1+J#a%12&%64q*~1~;{N~+w%pSI diff --git a/src/main/resources/assets/hbm/textures/models/missileMicroEMP.png b/src/main/resources/assets/hbm/textures/models/missileMicroEMP.png deleted file mode 100644 index 43135573a74b0d8971a6fd19c743decc4f381979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6286 zcmeI0_dgYW^vCbQb+2`ejKW39ULospaj!itGAeP6%!`|q?YcIZNmj)*Q<;&B?2MEV zB`RdED0}37eg1~;kKgZkJkI+(9_KyIc|G4hydRHuBF;pY5yk@p004~odKmNbNczvA z;PY{JHsk0#KwLGAH35LyH2A3l4FCWJ;EZly&+|%3O3KR0Dk>_fs;X*gYA6&+U0q#6 zLj#RQYieq0X=!O|Yhy4NEEcPyqob><>*C_#>gwv|=H~A1?&0C#>FG%z5WKv+yuH1B ze0+#R;=OzKe0_cW{QUg={ey#pLqbAALqo&D!otJDBO)RqBO_TAscgzr5fiEyjw)$E zmAXNdwWiA1P!(=d6>X_Xc2pHS73D;oZUj�VEPBDk_RhCPzm{$Hc_M#>U3Q#l^?R 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 diff --git a/src/main/resources/assets/hbm/textures/models/missile_micro.png b/src/main/resources/assets/hbm/textures/models/missile_micro.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad9c5d03813fd49ab43d59c946a255072dec7d4 GIT binary patch literal 704 zcmV;x0zdtUP)y9rqj^$W$LuUA7ok9W?9w(0D~=M<6;md)ct<%8w|D-?;;fK_j@O6*A+!k zM3U>hi;$m!cDr5gV6Y{q!{Oj$AXgMcA-Z10aqMU+9H=BoP?jaqG=1q@$}eF9V06%> z{1W`kay}6RvE!$pvMi0AOZg?Js;UsjF{-M1>0HV$LDhBbbik$Y@91;6T$Y}LQlthb-lc8TG!2@j=^YHV1a&+foebm(ae)`oHaVeUox?A|yR;nyu@eNb6Drm@ z{1U>^hn-Nd&S6XNE^UX3_1A=oRl~ou9V*rt{1UuN+d&XJK@dBkVx7Y;VNFLL{Z&%q ztDI{%`n0+c8JiDQQL*ZwF)H~dRID@80*^=xqoK8*0!Ux6nqDd&`t)TND%Kh4m)nyA z#$?cTZq~Hj_CNpVA`E>kfQYtY9ZS_?eVt(XidD~WQ+_o$;=+u5Iy2^{-G^+VGW4-V zC<4%qeMmIoe`LAe%*P2|eHcY2D9`h^U!0xK=eI)X1Od~Neg|bzn2ORnBFV+SAdX{n z$FXlBMR)W`k^}%y*ERAyZ*4`XZU81EqA34Ez(Z8GdTjm{w1R-|L{SR@>_yQF0-i-p zu?j&pw~SXI$mU7kDg@cEil+}YOOEd8gK48r)AZw~6m++-q$d};vz&>tEI&@$lxH~| znOYWZI9V1Pe6sg_;5-Gw3 zNZuj~0@f(&3=e)Re?>GND;B@T3?7W}iVydS4+j7Yww9ME24O<};H_;i*jl2Cka>rj zWbRJIUl^nLe{>OwQ_w$rwhjhcgDHxF>K;0u&#HS!L}aRKp+K@MgS8fUp8x1v%CF%C z!04b$`8C9u?1pQhp6mRTV@8RaO1$T*$9M>bjnEz@>?A>9gDImcE7_ zr_)LGf7xs{*lxGD-EIItVQYvkZA)2}D9f^SFxVR8a5zjd5DO`7vy&>;Is6);OWR2h zJ4p~bsbZbOuOTgc*hv-Z9JYq&(srs?*-2@eom8>T;nxsd+D?MlNrKo(73&;+4QpEZ z3_pYOeulP&rH>mL#@oEJii&j@8n2RXQpGwm4!B368;wD`7eM-o)%QVc*EgJYsbZax zcDnT(@FoM-xLMP-Yk$5OitzL~0EV_=9ZS_?eT`uHiglRb9{DNfTbHrV{>S{Z&!Ld0 zbbYK5G63AzA&3$GJzRb74t3B8dURUm(diXBL4fYa4P{c$oN1yv5G5jLmSfLE zif-wXWf=gVu4@!U;X*}8GXN7BQIz)(a2M6go{-yuRuJ%ipnHv_UAfS$<$PFcf1S1|*K$Kbrd*rl zj>n^6vY$ov`+YMQ7;GOwQ|@}bwhac`M^Ki#TrO>c!PY_>q3(O{pee@?m9E`Pt?olN pEakt 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 g*IPZvLOU)02l{<_AQ6~VT>t<807*qoM6N<$g7D Date: Mon, 5 Feb 2024 16:45:29 +0100 Subject: [PATCH 151/376] desulfurized oils --- changelog | 6 +- .../blocks/machine/FoundryCastingBase.java | 4 +- .../hbm/blocks/machine/MachineRefinery.java | 2 +- .../java/com/hbm/inventory/fluid/Fluids.java | 19 +++ .../hbm/inventory/recipes/CokerRecipes.java | 3 + .../inventory/recipes/FractionRecipes.java | 3 +- .../recipes/HydrotreatingRecipes.java | 29 +++++ .../machine/TileEntityFoundryCastingBase.java | 1 + .../machine/oil/TileEntityMachineCoker.java | 2 +- .../oil/TileEntityMachineRefinery.java | 109 +----------------- 10 files changed, 68 insertions(+), 110 deletions(-) diff --git a/changelog b/changelog index c0cb151c4..6f219b35c 100644 --- a/changelog +++ b/changelog @@ -20,9 +20,13 @@ * Launch pads now spawn launch smoke just like custom missile compact launchers * Remodeled all tier 0 missiles * Tier 0 missiles now have a much thinner contrail to match their size better +* Covneyor ejectors can now eject sulfur out of the side ports of refineries ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace * Fixed missiles jerkingly rotating when launching, they should now smoothly transition from being part of the launch pad to being an entity * Fixed missile control and launch smoke shifting around when the player is moving -* Fixed fast-moving missiles spawning too few particles, causing holes in the contrail \ No newline at end of file +* Fixed fast-moving missiles spawning too few particles, causing holes in the contrail +* Fixed coker units creating soot when not processing anything +* Foundry molds can no longer be removed from basins when there's still material in them, fixing a bug where doing so would void the material +* Fixed molds not saving when cooling off, allowing to dupe metal when leaving and rejoining \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java b/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java index 1ced99e75..661bab7cd 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java @@ -170,8 +170,8 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); - if(cast.slots[0] == null) - return false; + if(cast.slots[0] == null) return false; + if(cast.amount > 0) return false; if(!player.inventory.addItemStackToInventory(cast.slots[0].copy())) { EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, cast.slots[0].copy()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineRefinery.java b/src/main/java/com/hbm/blocks/machine/MachineRefinery.java index 4a720413d..fa7e8e6a6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineRefinery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineRefinery.java @@ -42,7 +42,7 @@ public class MachineRefinery extends BlockDummyable implements IPersistentInfoPr @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityMachineRefinery(); - if(meta >= 6) return new TileEntityProxyCombo().fluid().power(); + if(meta >= 6) return new TileEntityProxyCombo().fluid().power().inventory(); return null; } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 527133b66..7a760f257 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -46,8 +46,12 @@ public class Fluids { public static FluidType OIL; public static FluidType CRACKOIL; public static FluidType COALOIL; + public static FluidType OIL_DS; + public static FluidType CRACKOIL_DS; public static FluidType HOTOIL; public static FluidType HOTCRACKOIL; + public static FluidType HOTOIL_DS; + public static FluidType HOTCRACKOIL_DS; public static FluidType HEAVYOIL; public static FluidType BITUMEN; public static FluidType SMEAR; @@ -56,10 +60,12 @@ public class Fluids { public static FluidType LUBRICANT; public static FluidType NAPHTHA; public static FluidType NAPHTHA_CRACK; + public static FluidType NAPHTHA_DS; public static FluidType DIESEL; public static FluidType DIESEL_CRACK; public static FluidType LIGHTOIL; public static FluidType LIGHTOIL_CRACK; + public static FluidType LIGHTOIL_DS; public static FluidType KEROSENE; public static FluidType GAS; public static FluidType PETROLEUM; @@ -334,6 +340,13 @@ public class Fluids { FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1)); PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2)); + OIL_DS = new FluidType("OIL_DS", 0x020202, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + HOTOIL_DS = new FluidType("HOTOIL_DS", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); + CRACKOIL_DS = new FluidType("CRACKOIL_DS", 0x020202, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); + NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x595744, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + LIGHTOIL_DS = new FluidType("LIGHTOIL_DS", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); + // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -384,18 +397,24 @@ public class Fluids { metaOrder.add(MERCURY); //oils, fuels metaOrder.add(OIL); + metaOrder.add(OIL_DS); metaOrder.add(CRACKOIL); + metaOrder.add(CRACKOIL_DS); metaOrder.add(COALOIL); metaOrder.add(OIL_COKER); metaOrder.add(HOTOIL); + metaOrder.add(HOTOIL_DS); metaOrder.add(HOTCRACKOIL); + metaOrder.add(HOTCRACKOIL_DS); metaOrder.add(HEAVYOIL); metaOrder.add(HEAVYOIL_VACUUM); metaOrder.add(NAPHTHA); + metaOrder.add(NAPHTHA_DS); metaOrder.add(NAPHTHA_CRACK); metaOrder.add(NAPHTHA_COKER); metaOrder.add(REFORMATE); metaOrder.add(LIGHTOIL); + metaOrder.add(LIGHTOIL_DS); metaOrder.add(LIGHTOIL_CRACK); metaOrder.add(LIGHTOIL_VACUUM); metaOrder.add(BITUMEN); diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index d6f9cf30d..944133896 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -38,12 +38,14 @@ public class CokerRecipes extends SerializableRecipe { registerAuto(HEATINGOIL_VACUUM, OIL_COKER); registerAuto(RECLAIMED, NAPHTHA_COKER); registerAuto(NAPHTHA, NAPHTHA_COKER); + registerAuto(NAPHTHA_DS, NAPHTHA_COKER); registerAuto(NAPHTHA_CRACK, NAPHTHA_COKER); registerAuto(DIESEL, NAPHTHA_COKER); registerAuto(DIESEL_REFORM, NAPHTHA_COKER); registerAuto(DIESEL_CRACK, GAS_COKER); registerAuto(DIESEL_CRACK_REFORM, GAS_COKER); registerAuto(LIGHTOIL, GAS_COKER); + registerAuto(LIGHTOIL_DS, GAS_COKER); registerAuto(LIGHTOIL_CRACK, GAS_COKER); registerAuto(LIGHTOIL_VACUUM, GAS_COKER); registerAuto(BIOFUEL, GAS_COKER); @@ -60,6 +62,7 @@ public class CokerRecipes extends SerializableRecipe { registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); + registerRecipe(SOURGAS, 250, new ItemStack(ModItems.sulfur), new FluidStack(GAS_COKER, 150)); } private static void registerAuto(FluidType fluid, FluidType type) { diff --git a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java index b3b673a6a..e26769068 100644 --- a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java @@ -58,12 +58,11 @@ public class FractionRecipes extends SerializableRecipe { fractions.put(Fluids.HEAVYOIL_VACUUM, new Pair(new FluidStack(Fluids.SMEAR, hvac_frac_smear), new FluidStack(Fluids.HEATINGOIL_VACUUM, hvac_frac_heat))); fractions.put(Fluids.REFORMATE, new Pair(new FluidStack(Fluids.AROMATICS, reform_frac_arom), new FluidStack(Fluids.XYLENE, reform_frac_xyle))); fractions.put(Fluids.LIGHTOIL_VACUUM, new Pair(new FluidStack(Fluids.KEROSENE, lvac_frac_kero), new FluidStack(Fluids.REFORMGAS, lvac_frac_gas))); - fractions.put(Fluids.SOURGAS, new Pair(new FluidStack(Fluids.GAS, 30), new FluidStack(Fluids.PETROLEUM, 20))); fractions.put(Fluids.EGG, new Pair(new FluidStack(Fluids.CHOLESTEROL, 50), new FluidStack(Fluids.RADIOSOLVENT, 50))); fractions.put(Fluids.OIL_COKER, new Pair(new FluidStack(Fluids.CRACKOIL, 30), new FluidStack(Fluids.HEATINGOIL, 70))); fractions.put(Fluids.NAPHTHA_COKER, new Pair(new FluidStack(Fluids.NAPHTHA_CRACK, 75), new FluidStack(Fluids.LIGHTOIL_CRACK, 25))); fractions.put(Fluids.GAS_COKER, new Pair(new FluidStack(Fluids.AROMATICS, 25), new FluidStack(Fluids.CARBONDIOXIDE, 75))); - fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50))); + fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50))); } public static Pair getFractions(FluidType oil) { diff --git a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java index 7d828e044..840840c24 100644 --- a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java @@ -23,6 +23,35 @@ public class HydrotreatingRecipes extends SerializableRecipe { @Override public void registerDefaults() { + recipes.put(Fluids.OIL, new Triplet( + new FluidStack(Fluids.HYDROGEN, 5), + new FluidStack(Fluids.OIL_DS, 90), + new FluidStack(Fluids.SOURGAS, 15) + )); + + recipes.put(Fluids.CRACKOIL, new Triplet( + new FluidStack(Fluids.HYDROGEN, 5), + new FluidStack(Fluids.CRACKOIL_DS, 90), + new FluidStack(Fluids.SOURGAS, 15) + )); + + recipes.put(Fluids.GAS, new Triplet( + new FluidStack(Fluids.HYDROGEN, 5), + new FluidStack(Fluids.PETROLEUM, 80), + new FluidStack(Fluids.SOURGAS, 15) + )); + + recipes.put(Fluids.DIESEL_CRACK, new Triplet( + new FluidStack(Fluids.HYDROGEN, 10), + new FluidStack(Fluids.DIESEL, 80), + new FluidStack(Fluids.SOURGAS, 15) + )); + + recipes.put(Fluids.DIESEL_CRACK_REFORM, new Triplet( + new FluidStack(Fluids.HYDROGEN, 10), + new FluidStack(Fluids.DIESEL_REFORM, 80), + new FluidStack(Fluids.SOURGAS, 15) + )); } public static Triplet getOutput(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java index a4645bade..578565ae9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java @@ -54,6 +54,7 @@ public abstract class TileEntityFoundryCastingBase extends TileEntityFoundryBase } cooloff = 200; + this.markDirty(); } } else { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java index 8e812e5ac..cf90645d5 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java @@ -101,7 +101,7 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl } } - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 20); + if(wasOn && worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 20); } for(DirPos pos : getConPos()) { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 4ee78cd48..d1b79b8ea 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -10,9 +10,6 @@ import com.hbm.handler.MultiblockHandlerXR; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; @@ -54,17 +51,13 @@ import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IControlReceiver, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider { public long power = 0; public int sulfur = 0; public static final int maxSulfur = 100; public static final long maxPower = 1000; public FluidTank[] tanks; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - public List list3 = new ArrayList(); - public List list4 = new ArrayList(); public boolean hasExploded = false; public boolean onFire = false; @@ -79,11 +72,11 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements public TileEntityMachineRefinery() { super(12); tanks = new FluidTank[5]; - tanks[0] = new FluidTank(Fluids.HOTOIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.HEAVYOIL, 24_000, 1); - tanks[2] = new FluidTank(Fluids.NAPHTHA, 24_000, 2); - tanks[3] = new FluidTank(Fluids.LIGHTOIL, 24_000, 3); - tanks[4] = new FluidTank(Fluids.PETROLEUM, 24_000, 4); + tanks[0] = new FluidTank(Fluids.HOTOIL, 64_000); + tanks[1] = new FluidTank(Fluids.HEAVYOIL, 24_000); + tanks[2] = new FluidTank(Fluids.NAPHTHA, 24_000); + tanks[3] = new FluidTank(Fluids.LIGHTOIL, 24_000); + tanks[4] = new FluidTank(Fluids.PETROLEUM, 24_000); } @Override @@ -164,14 +157,6 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - if(worldObj.getTotalWorldTime() % 10 == 0) { - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); - fillFluidInit(tanks[3].getTankType()); - fillFluidInit(tanks[4].getTankType()); - } - tanks[0].loadTank(1, 2, slots); refine(); @@ -373,88 +358,6 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements public long getMaxPower() { return maxPower; } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 2, getTact(), type); - - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public int getFluidFill(FluidType type) { - - for(int i = 0; i < 5; i++) { - if(type == tanks[i].getTankType()) { - return tanks[i].getFill(); - } - } - - return 0; - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - for(int i = 0; i < 5; i++) { - if(type == tanks[i].getTankType()) { - tanks[i].setFill(fill); - } - } - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[1].getTankType()) return list1; - if(type == tanks[2].getTankType()) return list2; - if(type == tanks[3].getTankType()) return list3; - if(type == tanks[4].getTankType()) return list4; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[1].getTankType()) list1.clear(); - if(type == tanks[2].getTankType()) list2.clear(); - if(type == tanks[3].getTankType()) list3.clear(); - if(type == tanks[4].getTankType()) list4.clear(); - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 5 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 5 && tanks[index] != null) - tanks[index].setTankType(type); - } @Override public AxisAlignedBB getRenderBoundingBox() { From bcb8a48620895bd8340569f5c27c45f156c52536 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 6 Feb 2024 14:52:06 +1100 Subject: [PATCH 152/376] you know what *siphons your gas* --- .../java/com/hbm/crafting/ToolRecipes.java | 2 + .../hbm/inventory/FluidContainerRegistry.java | 49 +++++++-- .../fluid/tank/FluidLoaderStandard.java | 4 +- .../hbm/inventory/fluid/tank/FluidTank.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 5 + .../hbm/items/machine/ItemFluidSiphon.java | 93 ++++++++++++++++++ .../java/com/hbm/items/tool/ItemPipette.java | 11 ++- src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/textures/items/siphon.png | Bin 0 -> 4418 bytes 9 files changed, 153 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/hbm/items/machine/ItemFluidSiphon.java create mode 100644 src/main/resources/assets/hbm/textures/items/siphon.png diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index df95ca834..27c513745 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -134,6 +134,8 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_boron, 1), new Object[] { " P", " B ", "B ", 'P', RUBBER.ingot(), 'B', ModBlocks.glass_boron}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_laboratory, 1), new Object[] { " C", " R ", "P ", 'C', ModItems.circuit_aluminium, 'R', RUBBER.ingot(), 'P', ModItems.pipette_boron }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.siphon, 1), new Object[] { " GR", " GR", " G ", 'G', KEY_CLEARGLASS, 'R', ANY_RUBBER.ingot()}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', ModItems.wire_red_copper, 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index 5033ee2a4..ac426cf5a 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -1,6 +1,7 @@ package com.hbm.inventory; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import com.hbm.blocks.ModBlocks; @@ -18,8 +19,9 @@ import net.minecraftforge.oredict.OreDictionary; public class FluidContainerRegistry { - //TODO: somehow incorporate hashmaps into this + //TODO: continue incorporating hashmaps into this public static List allContainers = new ArrayList(); + private static HashMap> containerMap = new HashMap>(); public static void register() { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.water_bucket), new ItemStack(Items.bucket), Fluids.WATER, 1000)); @@ -88,6 +90,35 @@ public class FluidContainerRegistry { public static void registerContainer(FluidContainer con) { allContainers.add(con); OreDictionary.registerOre(con.type.getDict(con.content), con.fullContainer); + + if (!containerMap.containsKey(con.type)) + containerMap.put(con.type, new ArrayList()); + + List items = containerMap.get(con.type); + items.add(con); + } + + public static List getContainers(FluidType type) { + return containerMap.get(type); + } + + public static FluidContainer getContainer(FluidType type, ItemStack stack) { + if(stack == null) + return null; + + ItemStack sta = stack.copy(); + sta.stackSize = 1; + + if (!containerMap.containsKey(type)) + return null; + + for (FluidContainer container : getContainers(type)) { + if (ItemStack.areItemStacksEqual(container.emptyContainer, sta) && ItemStack.areItemStackTagsEqual(container.emptyContainer, sta)) { + return container; + } + } + + return null; } public static int getFluidContent(ItemStack stack, FluidType type) { @@ -97,11 +128,12 @@ public class FluidContainerRegistry { ItemStack sta = stack.copy(); sta.stackSize = 1; + + if (!containerMap.containsKey(type)) + return 0; - for(FluidContainer container : allContainers) { - if(container.type == type && - ItemStack.areItemStacksEqual(container.fullContainer, sta) && - ItemStack.areItemStackTagsEqual(container.fullContainer, sta)) + for(FluidContainer container : containerMap.get(type)) { + if(ItemStack.areItemStacksEqual(container.fullContainer, sta) && ItemStack.areItemStackTagsEqual(container.fullContainer, sta)) return container.content; } @@ -131,8 +163,11 @@ public class FluidContainerRegistry { ItemStack sta = stack.copy(); sta.stackSize = 1; - for(FluidContainer container : allContainers) { - if(ItemStack.areItemStacksEqual(container.emptyContainer, sta) && ItemStack.areItemStackTagsEqual(container.emptyContainer, sta) && container.type == type) + if (!containerMap.containsKey(type)) + return null; + + for(FluidContainer container : containerMap.get(type)) { + if(ItemStack.areItemStacksEqual(container.emptyContainer, sta) && ItemStack.areItemStackTagsEqual(container.emptyContainer, sta)) return container.fullContainer.copy(); } diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java index c8fcecbb4..4252f025c 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java @@ -20,8 +20,6 @@ public class FluidLoaderStandard extends FluidLoadingHandler { if(full != null && slots[in] != null && tank.getFill() - FluidContainerRegistry.getFluidContent(full, type) >= 0) { - ItemStack fullContainer = FluidContainerRegistry.getFullContainer(slots[in], type); - if(slots[out] == null) { tank.setFill(tank.getFill() - FluidContainerRegistry.getFluidContent(full, type)); @@ -31,7 +29,7 @@ public class FluidLoaderStandard extends FluidLoadingHandler { slots[in] = null; } - } else if(slots[out] != null && slots[out].getItem() == fullContainer.getItem() && slots[out].getItemDamage() == fullContainer.getItemDamage() && slots[out].stackSize < slots[out].getMaxStackSize()) { + } else if(slots[out] != null && slots[out].getItem() == full.getItem() && slots[out].getItemDamage() == full.getItemDamage() && slots[out].stackSize < slots[out].getMaxStackSize()) { tank.setFill(tank.getFill() - FluidContainerRegistry.getFluidContent(full, type)); slots[in].stackSize--; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 719b0eda3..40172b6bd 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -27,8 +27,8 @@ import net.minecraft.util.MathHelper; public class FluidTank { - public static final List loadingHandlers = new ArrayList(); - public static final Set noDualUnload = new HashSet(); + public static final List loadingHandlers = new ArrayList(); + public static final Set noDualUnload = new HashSet(); static { loadingHandlers.add(new FluidLoaderStandard()); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0b2168673..fc18a256c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -942,6 +942,7 @@ public class ModItems { public static Item pipette; public static Item pipette_boron; public static Item pipette_laboratory; + public static Item siphon; public static Item disperser_canister_empty; public static Item disperser_canister; @@ -4678,6 +4679,7 @@ public class ModItems { pipette = new ItemPipette().setUnlocalizedName("pipette").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette"); pipette_boron = new ItemPipette().setUnlocalizedName("pipette_boron").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_boron"); pipette_laboratory = new ItemPipette().setUnlocalizedName("pipette_laboratory").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_laboratory"); + siphon = new ItemFluidSiphon().setUnlocalizedName("siphon").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":siphon"); inf_water = new ItemInfiniteFluid(Fluids.WATER, 50).setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water"); inf_water_mk2 = new ItemInfiniteFluid(Fluids.WATER, 500).setUnlocalizedName("inf_water_mk2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water_mk2"); @@ -6427,6 +6429,9 @@ public class ModItems { GameRegistry.registerItem(pipette_boron, pipette_boron.getUnlocalizedName()); GameRegistry.registerItem(pipette_laboratory, pipette_laboratory.getUnlocalizedName()); + //Siphon + GameRegistry.registerItem(siphon, siphon.getUnlocalizedName()); + //Disperser Canister GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java b/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java new file mode 100644 index 000000000..35c4123af --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java @@ -0,0 +1,93 @@ +package com.hbm.items.machine; + +import com.hbm.util.CompatExternal; + +import com.hbm.inventory.FluidContainer; +import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemPipette; + +import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.fluid.IFluidStandardTransceiver; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class ItemFluidSiphon extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { + TileEntity te = CompatExternal.getCoreFromPos(world, x, y, z); + + if(te != null && (te instanceof IFluidStandardReceiver || te instanceof IFluidStandardTransceiver)) { + FluidTank[] tanks; + if (te instanceof IFluidStandardReceiver) { + tanks = ((IFluidStandardReceiver) te).getReceivingTanks(); + } else { + tanks = ((IFluidStandardTransceiver) te).getReceivingTanks(); + } + + boolean hasDrainedTank = false; + + // We need to iterate through the inventory for _each_ siphonable tank, so we can handle fluids that can only go into certain containers + // After we successfully siphon any fluid from a tank, we stop further processing, multiple fluid types require multiple clicks + for (FluidTank tank : tanks) { + if (tank.getFill() <= 0) continue; + + ItemStack availablePipette = null; + FluidType tankType = tank.getTankType(); + + for (int j = 0; j < player.inventory.mainInventory.length; j++) { + ItemStack inventoryStack = player.inventory.mainInventory[j]; + if (inventoryStack == null) continue; + + FluidContainer container = FluidContainerRegistry.getContainer(tankType, inventoryStack); + + if (availablePipette == null && inventoryStack.getItem() instanceof ItemPipette) { + ItemPipette pipette = (ItemPipette) inventoryStack.getItem(); + if (!pipette.willFizzle(tankType) && pipette != ModItems.pipette_laboratory) { // Ignoring laboratory pipettes for now + availablePipette = inventoryStack; + } + } + + if (container == null) continue; + + ItemStack full = FluidContainerRegistry.getFullContainer(inventoryStack, tankType); + + while (tank.getFill() >= container.content && inventoryStack.stackSize > 0) { + hasDrainedTank = true; + + inventoryStack.stackSize--; + if (inventoryStack.stackSize <= 0) { + player.inventory.mainInventory[j] = null; + } + + ItemStack filledContainer = full.copy(); + tank.setFill(tank.getFill() - container.content); + player.inventory.addItemStackToInventory(filledContainer); + } + } + + // If the remainder of the tank can only fit into a pipette, fill a pipette with the remainder + // Will not auto-fill fizzlable pipettes, there is no feedback for the fizzle in this case, and that's a touch too unfair + if (availablePipette != null && tank.getFill() < 1000) { + ItemPipette pipette = (ItemPipette) availablePipette.getItem(); + + if (pipette.acceptsFluid(tankType, availablePipette)) { + hasDrainedTank = true; + tank.setFill(pipette.tryFill(tankType, tank.getFill(), availablePipette)); + } + } + + if (hasDrainedTank) return true; + } + } + + return false; + } + +} diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index 110dee982..2ac6a72bd 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -133,15 +133,18 @@ public class ItemPipette extends Item implements IFillableItem { this.setFill(stack, type, (short) (this.getFill(stack) + toFill)); // fizzling checks - if(this.getFill(stack) > 0 && (this.getType(stack).isCorrosive() && type != Fluids.ACID)) { - if(this == ModItems.pipette) { - stack.stackSize = 0; - } + if(this.getFill(stack) > 0 && willFizzle(type)) { + stack.stackSize = 0; } return amount - toFill; } + public boolean willFizzle(FluidType type) { + if (this != ModItems.pipette) return false; + return type.isCorrosive() && type != Fluids.ACID; + } + @Override public boolean providesFluid(FluidType type, ItemStack stack) { return this.getType(stack) == type; diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 04d811ab6..a627dc85e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3667,6 +3667,7 @@ item.power_net_tool.name=Cable Network Analysis Tool item.pipette.name=Pipette item.pipette_boron.name=Boron Pipette item.pipette_laboratory.name=Laboratory Grade Pipette +item.siphon.name=Siphon item.primer_357.name=.357 Magnum Primer (x24) item.primer_44.name=.44 Magnum Primer (x24) item.primer_50.name=Large Caliber Primer (x12) diff --git a/src/main/resources/assets/hbm/textures/items/siphon.png b/src/main/resources/assets/hbm/textures/items/siphon.png new file mode 100644 index 0000000000000000000000000000000000000000..ec759097888e47203b0db85ba8ed51a67b6b29be GIT binary patch literal 4418 zcmeHKdsGzH8J~p&l!pN;slj?!SDIqW?94vc$FPgy?jkEJAS@A5G|tYgRkUh66-_mG)Q~EQy|cR@oaUS!&T0N* z_sq`BcYojSe&6r=?mc@~7v#;0jY^DyASl+HZ7c-$IN_QQ0e+M2KE}bVy~bL?7vf&A zn`P{DB_-zlZc0q~XgdV?&N~Y-Cxy?LaOm!u4AFDe+J>Hs&p*n1`=zpdr9F9HYF0ca z!WMT$UQA3*p-;UzfBwzSwwXSNzS>a3F46m+(seYxm!GM7y6uc1=jx+Vk&Bz>Rwp1? zo}_vwJZ1V|Kb8Dw?!R{4ST?l@f9gg(8nZNMZPD)9>3F)Y{u{%(&(F3l|MF%}&-TaR z8^T35W6BxmR?0gq+p6yTQuI~giPQ01@=GV$^p?-2ot;)1dt#vNSqKu<(FQ|-*e&!VXDEinIQO>A8y^L|PIXr~GhU`@YMU zyKLR<9iy+`u$&hB|YZ2|LvpFmGjS#bLJ#BC@%hPm3oy!4R5)d zQB_x*T>tN8-(R;zPoB*#^4wp?ox@-0dVT7FQ@X0Ul2q^R3mqTYb{Yo@_8}aephPHo% zUCS^tp1s%O(Y>){WnQKKnLk_*Wwr2~>wh#WJ13=S#kYzFJHpV~=$H==9PsyQmO<>s z?mMw=_k`SybpIc_4h|gT2KFESv@dd_oZb7;L!=foorea^Rbt7-2*xSJNybJ=eNH#% zItbFu_PKGQg5t$C%0avIlD>m&5;0BcB@5FmsKsrd%IWMHmMW^rvl2BGgqD=d&WO_a zFhJm>cwFprR=POMr)~MKokw7{l0|D;Cyra-Vxd*@iWwBsJhNu?8GaL01VSbEc2%5wKj~Y~_ zz!h>7*4l6-tklX$SVO2~u#8d@DveSmr*L!xmD$DdxQn0!DnKr!0gqaPtL!Qj4r>V& z2`kYw61FJ_Eo@J-Y1ImiO+hM@BPjA&8gwOIIWj7NiWI0&6xApNUoEMHm1%?uw%I8P z*2v^`8HL+5Dl!-iNnlwF>%>7hX(#TW5Vy+_m_ra8%PcVKC30yH8n6^p;=CO=fHgq7 zNXE-O0b6M&Rm9_ho-#G6mT6IyTA`IIRPtcd0sj{$mIJ*gu*y(rC?BCP7)S?5iwm6! z2!`^+3@nB73~ObWO1(s&5DT8e!xpfhNSw!wI8OmmRIbEOIfkmNG9{)^V`++?$z&Kh z0?&}N-T%MP!txR8f<@1!IWWIJU<$6OBC0C*7JRLw1B*#44lD}{CxR((xQ8MGaRRR3 z5K)f192D3;LJd1)r@x~a?4(AawWSfTMkt=rj;df>qp-syLE1HTr3#fP6{FcX#?E_j zmdbPh9f4M$K?7QeQ$nShH5%_Nr-V8H$zW6tkC04)gpx&s9b+h49r9m#=mLNdTMY0E z+Q8NYc0y!$D-7u+Y&zfLCsc>;aRxv=KFOH$9hYldt}!VvCh&N7jmtGA1;zv(@2>xw zTv1OBQ9uuODkmvRsk{R80=L2orr1;$9; zY%xV%4~q!@aay;l$puWe&Bjct=F{%R-Aj+4Q%s-Ck1(Vs6oq~AnzUuzdk;;$rw0?3 z8`W>@*fY4z;7_{zZij4R%;vIpZrRt&yn=OFuWw1dclvKlUxyFA=xNA+6P+Vbula7|KQ}#pZ-2I{nFNHoqze0Y|$5% zJX0OCe#b0p!Y Date: Tue, 6 Feb 2024 17:40:51 +1100 Subject: [PATCH 153/376] you know what *unsiphons your water* --- .../com/hbm/items/machine/ItemFluidSiphon.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java b/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java index 35c4123af..59f9b1ee5 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java @@ -2,9 +2,13 @@ package com.hbm.items.machine; import com.hbm.util.CompatExternal; +import java.util.List; +import java.util.Arrays; + import com.hbm.inventory.FluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemPipette; @@ -18,6 +22,15 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class ItemFluidSiphon extends Item { + + private static List IGNORED_FLUIDS = Arrays.asList( + Fluids.WATER, + Fluids.SPENTSTEAM, + Fluids.STEAM, + Fluids.HOTSTEAM, + Fluids.SUPERHOTSTEAM, + Fluids.ULTRAHOTSTEAM + ); @Override public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { @@ -37,6 +50,7 @@ public class ItemFluidSiphon extends Item { // After we successfully siphon any fluid from a tank, we stop further processing, multiple fluid types require multiple clicks for (FluidTank tank : tanks) { if (tank.getFill() <= 0) continue; + if (IGNORED_FLUIDS.contains(tank.getTankType())) continue; ItemStack availablePipette = null; FluidType tankType = tank.getTankType(); From 72a252194af1ac1966d9094b9b803b41ea8502d9 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 6 Feb 2024 18:07:21 +1100 Subject: [PATCH 154/376] Add a new "unsiphonable" fluid trait instead of using a static list --- .../java/com/hbm/inventory/fluid/Fluids.java | 11 ++++++----- .../hbm/inventory/fluid/trait/FluidTrait.java | 1 + .../inventory/fluid/trait/FluidTraitSimple.java | 6 ++++++ .../com/hbm/items/machine/ItemFluidSiphon.java | 17 +++-------------- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 527133b66..cb5498d8b 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -185,6 +185,7 @@ public class Fluids { public static final FT_NoID NOID = new FT_NoID(); public static final FT_Delicious DELICIOUS = new FT_Delicious(); public static final FT_Leaded LEADED = new FT_Leaded(); + public static final FT_Unsiphonable UNSIPHONABLE = new FT_Unsiphonable(); public static void init() { @@ -202,11 +203,11 @@ public class Fluids { */ NONE = new FluidType("NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE); - WATER = new FluidType("WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).addTraits(GASEOUS); - HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).addTraits(GASEOUS); - SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).addTraits(GASEOUS); - ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(GASEOUS); + WATER = new FluidType("WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, UNSIPHONABLE); + STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).addTraits(GASEOUS, UNSIPHONABLE); + HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).addTraits(GASEOUS, UNSIPHONABLE); + SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).addTraits(GASEOUS, UNSIPHONABLE); + ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(GASEOUS, UNSIPHONABLE); COOLANT = new FluidType("COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); LAVA = new FluidType("LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200).addTraits(LIQUID, VISCOUS); DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index de7ddc591..c840d3a89 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -38,6 +38,7 @@ public abstract class FluidTrait { traitNameMap.put("pheromone", FT_Pheromone.class); traitNameMap.put("noid", FT_NoID.class); traitNameMap.put("nocontainer", FT_NoContainer.class); + traitNameMap.put("unsiphonable", FT_Unsiphonable.class); } /** Important information that should always be displayed */ diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index f62cd456e..0c5026534 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -62,6 +62,12 @@ public class FluidTraitSimple { } } + public static class FT_Unsiphonable extends FluidTrait { + @Override public void addInfoHidden(List info) { + info.add(EnumChatFormatting.BLUE + "[Ignored by siphon]"); + } + } + public static class FT_NoID extends FluidTrait { } public static class FT_NoContainer extends FluidTrait { } } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java b/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java index 59f9b1ee5..2a7fc95ce 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java @@ -2,14 +2,11 @@ package com.hbm.items.machine; import com.hbm.util.CompatExternal; -import java.util.List; -import java.util.Arrays; - import com.hbm.inventory.FluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Unsiphonable; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemPipette; @@ -22,15 +19,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class ItemFluidSiphon extends Item { - - private static List IGNORED_FLUIDS = Arrays.asList( - Fluids.WATER, - Fluids.SPENTSTEAM, - Fluids.STEAM, - Fluids.HOTSTEAM, - Fluids.SUPERHOTSTEAM, - Fluids.ULTRAHOTSTEAM - ); @Override public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { @@ -50,11 +38,12 @@ public class ItemFluidSiphon extends Item { // After we successfully siphon any fluid from a tank, we stop further processing, multiple fluid types require multiple clicks for (FluidTank tank : tanks) { if (tank.getFill() <= 0) continue; - if (IGNORED_FLUIDS.contains(tank.getTankType())) continue; ItemStack availablePipette = null; FluidType tankType = tank.getTankType(); + if (tankType.hasTrait(FT_Unsiphonable.class)) continue; + for (int j = 0; j < player.inventory.mainInventory.length; j++) { ItemStack inventoryStack = player.inventory.mainInventory[j]; if (inventoryStack == null) continue; From 0de7b319bbae58e1f25018d8c2df6f71a25142ce Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 6 Feb 2024 16:07:13 +0100 Subject: [PATCH 155/376] oil oil oil oil oil --- changelog | 13 +++- .../machine/MachineCatalyticReformer.java | 20 +++++- .../blocks/machine/MachineHydrotreater.java | 20 +++++- .../hbm/entity/item/EntityDeliveryDrone.java | 5 +- .../container/ContainerMachineRefinery.java | 19 +++-- .../ContainerMachineVacuumDistill.java | 2 + .../java/com/hbm/inventory/fluid/Fluids.java | 1 - .../hbm/inventory/gui/GUIMachineRefinery.java | 16 ----- .../inventory/recipes/ChemplantRecipes.java | 36 ++-------- .../inventory/recipes/FractionRecipes.java | 58 +++++---------- .../recipes/HydrotreatingRecipes.java | 18 +++-- .../hbm/inventory/recipes/MixerRecipes.java | 6 +- .../inventory/recipes/RefineryRecipes.java | 66 +++++++++++++++--- src/main/java/com/hbm/items/ItemEnums.java | 5 ++ src/main/java/com/hbm/items/ModItems.java | 6 +- .../java/com/hbm/items/tool/ItemDrone.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../oil/TileEntityMachineHydrotreater.java | 6 +- .../oil/TileEntityMachineRefinery.java | 44 +++--------- .../oil/TileEntityMachineVacuumDistill.java | 24 ++++--- src/main/resources/assets/hbm/lang/de_DE.lang | 9 ++- src/main/resources/assets/hbm/lang/en_US.lang | 11 ++- .../textures/gui/processing/gui_refinery.png | Bin 3327 -> 3023 bytes .../gui/processing/gui_vacuum_distill.png | Bin 3071 -> 3016 bytes ...iknock.png => fuel_additive.antiknock.png} | Bin .../textures/items/fuel_additive.deicer.png | Bin 0 -> 292 bytes 26 files changed, 213 insertions(+), 175 deletions(-) rename src/main/resources/assets/hbm/textures/items/{antiknock.png => fuel_additive.antiknock.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/fuel_additive.deicer.png diff --git a/changelog b/changelog index 6f219b35c..634d881bf 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,12 @@ * Custom machines now have a neutron acceptor which allows them to use flux from the breeding reactor in recipes * There is now a heat acceptor which can accept heat from things like fireboxes or electric heaters * Also added a config option to create pollution +* Hydrotreater + * Tier 3 oil machine (on the same level as vacuum oil and reforming) + * Can de-sulfurize oil, which allows extraction of sour gas directly from crude oil + * Using desulfurized oil skips the (rather destructive) desulfurization process of the standard refinery, yielding higher-quality oils + * Hydrotreating also allows cracked diesel variants to turn into their normal counterparts + * Can convert coal oil directly into coal gasoline ## Changed * Deco bocks now drop all of the time, but they drop themselves instead of ingots @@ -21,6 +27,8 @@ * Remodeled all tier 0 missiles * Tier 0 missiles now have a much thinner contrail to match their size better * Covneyor ejectors can now eject sulfur out of the side ports of refineries +* Refineries and vacuum refineries now have fluid ID slots for changing the recipe +* Removed the remaining old oil separation recipes from the chemical plant ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace @@ -29,4 +37,7 @@ * Fixed fast-moving missiles spawning too few particles, causing holes in the contrail * Fixed coker units creating soot when not processing anything * Foundry molds can no longer be removed from basins when there's still material in them, fixing a bug where doing so would void the material -* Fixed molds not saving when cooling off, allowing to dupe metal when leaving and rejoining \ No newline at end of file +* Fixed molds not saving when cooling off, allowing to dupe metal when leaving and rejoining +* Fixed normal drones loading chunks +* Fixed chunk-loading drones not loading chunks +* Fixed several chemistry templates missing names \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticReformer.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticReformer.java index 9d40aefe7..80c9f2aef 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticReformer.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticReformer.java @@ -1,17 +1,25 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticReformer; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineCatalyticReformer extends BlockDummyable { +public class MachineCatalyticReformer extends BlockDummyable implements IPersistentInfoProvider { public MachineCatalyticReformer(Material mat) { super(mat); @@ -61,4 +69,14 @@ public class MachineCatalyticReformer extends BlockDummyable { public int getOffset() { return 1; } + + @Override + public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { + + for(int i = 0; i < 4; i++) { + FluidTank tank = new FluidTank(Fluids.NONE, 0); + tank.readFromNBT(persistentTag, "" + i); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); + } + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java b/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java index e689fb4df..c1ed1c005 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java @@ -1,16 +1,24 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineHydrotreater; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineHydrotreater extends BlockDummyable { +public class MachineHydrotreater extends BlockDummyable implements IPersistentInfoProvider { public MachineHydrotreater(Material mat) { super(mat); @@ -40,4 +48,14 @@ public class MachineHydrotreater extends BlockDummyable { this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ + 1); this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ - 1); } + + @Override + public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { + + for(int i = 0; i < 4; i++) { + FluidTank tank = new FluidTank(Fluids.NONE, 0); + tank.readFromNBT(persistentTag, "" + i); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); + } + } } diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java index 531c19d3d..58ee212b4 100644 --- a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -21,8 +21,8 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; public FluidStack fluid; + protected boolean chunkLoading = false; private Ticket loaderTicket; - public boolean isChunkLoading = false; public EntityDeliveryDrone(World world) { super(world); @@ -36,6 +36,7 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, public EntityDeliveryDrone setChunkLoading() { init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + this.chunkLoading = true; return this; } @@ -77,6 +78,7 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, } nbt.setByte("load", this.dataWatcher.getWatchableObjectByte(11)); + nbt.setBoolean("chunkLoading", chunkLoading); } @Override @@ -100,6 +102,7 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, } this.dataWatcher.updateObject(11, nbt.getByte("load")); + if(nbt.getBoolean("chunkLoading")) this.setChunkLoading(); } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java index 1a72051a2..000a58cf1 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java @@ -17,7 +17,7 @@ public class ContainerMachineRefinery extends Container { public ContainerMachineRefinery(InventoryPlayer invPlayer, TileEntityMachineRefinery tedf) { testNuke = tedf; - + //Battery this.addSlotToContainer(new Slot(tedf, 0, 8, 90)); //Canister Input @@ -42,17 +42,16 @@ public class ContainerMachineRefinery extends Container { this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 134, 108)); //Sulfur Output this.addSlotToContainer(new SlotTakeOnly(tedf, 11, 152, 36)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 12, 8, 108)); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); } } - - for(int i = 0; i < 9; i++) - { + + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); } } @@ -71,8 +70,8 @@ public class ContainerMachineRefinery extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 11) { - if(!this.mergeItemStack(var5, 12, this.inventorySlots.size(), true)) { + if(par2 <= 12) { + if(!this.mergeItemStack(var5, 13, this.inventorySlots.size(), true)) { return null; } } else if(!this.mergeItemStack(var5, 0, 1, false)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java b/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java index 217391f34..260bfe17d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java @@ -40,6 +40,8 @@ public class ContainerMachineVacuumDistill extends Container { this.addSlotToContainer(new Slot(tedf, 9, 134, 90)); //Petroleum Output this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 134, 108)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 11, 26, 108)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 49f0ea80a..ba9407683 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -124,7 +124,6 @@ public class Fluids { public static FluidType SOLVENT; //oranic solvent in fact public static FluidType BLOOD; //BLOOD ORB! BLOOD ORB! BLOOD ORB! public static FluidType BLOOD_HOT; - public static FluidType PHEROMONE; public static FluidType PHEROMONE_M; public static FluidType SYNGAS; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index c271c162d..04b901816 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -5,15 +5,11 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineRefinery; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUIMachineRefinery extends GuiInfoContainer { @@ -40,18 +36,6 @@ public class GUIMachineRefinery extends GuiInfoContainer { refinery.tanks[4].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 70 - 52, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 70 - 52, 16, 52, refinery.power, refinery.maxPower); } - - @Override - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - if(guiLeft + 64 <= x && guiLeft + 76 > x && guiTop + 20 < y && guiTop + 46 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("toggle", true); //we only need to send one bit, so boolean it is - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, refinery.xCoord, refinery.yCoord, refinery.zCoord)); - } - } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index b581d0ee8..7f88fe3de 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -38,7 +38,6 @@ public class ChemplantRecipes extends SerializableRecipe { @Override public void registerDefaults() { - registerFuelProcessing(); //6-30, formerly oil cracking, coal liquefaction and solidifciation registerOtherOil(); @@ -314,7 +313,7 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids( new FluidStack(Fluids.PETROLEUM, 100), new FluidStack(Fluids.STEAM, 1000)) - .outputItems(new ItemStack(ModItems.antiknock))); + .outputItems(new ItemStack(ModItems.fuel_additive))); recipes.add(new ChemRecipe(4, "FR_REOIL", 30) .inputFluids(new FluidStack(1000, Fluids.SMEAR)) .outputFluids(new FluidStack(800, Fluids.RECLAIMED))); @@ -324,18 +323,18 @@ public class ChemplantRecipes extends SerializableRecipe { new FluidStack(200, Fluids.LUBRICANT)) .outputFluids(new FluidStack(1000, Fluids.PETROIL))); recipes.add(new ChemRecipe(86, "PETROIL_LEADED", 40) - .inputItems(new ComparableStack(ModItems.antiknock)) + .inputItems(new ComparableStack(ModItems.fuel_additive)) .inputFluids(new FluidStack(Fluids.PETROIL, 10_000)) .outputFluids(new FluidStack(Fluids.PETROIL_LEADED, 12_000))); recipes.add(new ChemRecipe(71, "GASOLINE", 40) .inputFluids(new FluidStack(Fluids.NAPHTHA, 1000)) .outputFluids(new FluidStack(Fluids.GASOLINE, 800))); recipes.add(new ChemRecipe(85, "GASOLINE_LEADED", 40) - .inputItems(new ComparableStack(ModItems.antiknock)) + .inputItems(new ComparableStack(ModItems.fuel_additive)) .inputFluids(new FluidStack(Fluids.GASOLINE, 10_000)) .outputFluids(new FluidStack(Fluids.GASOLINE_LEADED, 12_000))); recipes.add(new ChemRecipe(87, "COALGAS_LEADED", 40) - .inputItems(new ComparableStack(ModItems.antiknock)) + .inputItems(new ComparableStack(ModItems.fuel_additive)) .inputFluids(new FluidStack(Fluids.COALGAS, 10_000)) .outputFluids(new FluidStack(Fluids.COALGAS_LEADED, 12_000))); recipes.add(new ChemRecipe(72, "FRACKSOL", 20) @@ -418,33 +417,6 @@ public class ChemplantRecipes extends SerializableRecipe { .outputFluids(new FluidStack(Fluids.SALIENT, 250))); } - - public static void registerFuelProcessing() { - recipes.add(new ChemRecipe(0, "FP_HEAVYOIL", 50) - .inputFluids(new FluidStack(1000, Fluids.HEAVYOIL)) - .outputFluids( - new FluidStack(FractionRecipes.heavy_frac_bitu * 10, Fluids.BITUMEN), - new FluidStack(FractionRecipes.heavy_frac_smear * 10, Fluids.SMEAR) - )); - recipes.add(new ChemRecipe(1, "FP_SMEAR", 50) - .inputFluids(new FluidStack(1000, Fluids.SMEAR)) - .outputFluids( - new FluidStack(FractionRecipes.smear_frac_heat * 10, Fluids.HEATINGOIL), - new FluidStack(FractionRecipes.smear_frac_lube * 10, Fluids.LUBRICANT) - )); - recipes.add(new ChemRecipe(2, "FP_NAPHTHA", 50) - .inputFluids(new FluidStack(1000, Fluids.NAPHTHA)) - .outputFluids( - new FluidStack(FractionRecipes.napht_frac_heat * 10, Fluids.HEATINGOIL), - new FluidStack(FractionRecipes.napht_frac_diesel * 10, Fluids.DIESEL) - )); - recipes.add(new ChemRecipe(3, "FP_LIGHTOIL", 50) - .inputFluids(new FluidStack(1000, Fluids.LIGHTOIL)) - .outputFluids( - new FluidStack(FractionRecipes.light_frac_diesel * 10, Fluids.DIESEL), - new FluidStack(FractionRecipes.light_frac_kero * 10, Fluids.KEROSENE) - )); - } public static void registerOtherOil() { recipes.add(new ChemRecipe(31, "BP_BIOGAS", 60) diff --git a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java index e26769068..8b144c3fb 100644 --- a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java @@ -19,50 +19,28 @@ import net.minecraft.item.ItemStack; public class FractionRecipes extends SerializableRecipe { - public static final int heavy_frac_bitu = 30; - public static final int heavy_frac_smear = 70; - public static final int smear_frac_heat = 60; - public static final int smear_frac_lube = 40; - public static final int napht_frac_heat = 40; - public static final int napht_frac_diesel = 60; - public static final int light_frac_diesel = 40; - public static final int light_frac_kero = 60; - - public static final int ncrack_frac_heat = 30; - public static final int ncrack_frac_diesel = 70; - public static final int lcrack_frac_kero = 70; - public static final int lcrack_frac_petro = 30; - public static final int coal_frac_coalgas = 30; - public static final int coal_frac_oil = 70; - public static final int creo_frac_coaloil = 10; - public static final int creo_frac_bitu = 90; - public static final int reform_frac_arom = 40; - public static final int reform_frac_xyle = 60; - public static final int hvac_frac_smear = 40; - public static final int hvac_frac_heat = 60; - public static final int lvac_frac_kero = 70; - public static final int lvac_frac_gas = 30; - private static Map> fractions = new HashMap(); @Override public void registerDefaults() { - fractions.put(Fluids.HEAVYOIL, new Pair(new FluidStack(Fluids.BITUMEN, heavy_frac_bitu), new FluidStack(Fluids.SMEAR, heavy_frac_smear))); - fractions.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.HEATINGOIL, smear_frac_heat), new FluidStack(Fluids.LUBRICANT, smear_frac_lube))); - fractions.put(Fluids.NAPHTHA, new Pair(new FluidStack(Fluids.HEATINGOIL, napht_frac_heat), new FluidStack(Fluids.DIESEL, napht_frac_diesel))); - fractions.put(Fluids.NAPHTHA_CRACK, new Pair(new FluidStack(Fluids.HEATINGOIL, ncrack_frac_heat), new FluidStack(Fluids.DIESEL_CRACK, ncrack_frac_diesel))); - fractions.put(Fluids.LIGHTOIL, new Pair(new FluidStack(Fluids.DIESEL, light_frac_diesel), new FluidStack(Fluids.KEROSENE, light_frac_kero))); - fractions.put(Fluids.LIGHTOIL_CRACK, new Pair(new FluidStack(Fluids.KEROSENE, lcrack_frac_kero), new FluidStack(Fluids.PETROLEUM, lcrack_frac_petro))); - fractions.put(Fluids.COALOIL, new Pair(new FluidStack(Fluids.COALGAS, coal_frac_coalgas), new FluidStack(Fluids.OIL, coal_frac_oil))); - fractions.put(Fluids.COALCREOSOTE, new Pair(new FluidStack(Fluids.COALOIL, creo_frac_coaloil), new FluidStack(Fluids.BITUMEN, creo_frac_bitu))); - fractions.put(Fluids.HEAVYOIL_VACUUM, new Pair(new FluidStack(Fluids.SMEAR, hvac_frac_smear), new FluidStack(Fluids.HEATINGOIL_VACUUM, hvac_frac_heat))); - fractions.put(Fluids.REFORMATE, new Pair(new FluidStack(Fluids.AROMATICS, reform_frac_arom), new FluidStack(Fluids.XYLENE, reform_frac_xyle))); - fractions.put(Fluids.LIGHTOIL_VACUUM, new Pair(new FluidStack(Fluids.KEROSENE, lvac_frac_kero), new FluidStack(Fluids.REFORMGAS, lvac_frac_gas))); - fractions.put(Fluids.EGG, new Pair(new FluidStack(Fluids.CHOLESTEROL, 50), new FluidStack(Fluids.RADIOSOLVENT, 50))); - fractions.put(Fluids.OIL_COKER, new Pair(new FluidStack(Fluids.CRACKOIL, 30), new FluidStack(Fluids.HEATINGOIL, 70))); - fractions.put(Fluids.NAPHTHA_COKER, new Pair(new FluidStack(Fluids.NAPHTHA_CRACK, 75), new FluidStack(Fluids.LIGHTOIL_CRACK, 25))); - fractions.put(Fluids.GAS_COKER, new Pair(new FluidStack(Fluids.AROMATICS, 25), new FluidStack(Fluids.CARBONDIOXIDE, 75))); - fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50))); + fractions.put(Fluids.HEAVYOIL, new Pair(new FluidStack(Fluids.BITUMEN, 30), new FluidStack(Fluids.SMEAR, 70))); + fractions.put(Fluids.HEAVYOIL_VACUUM, new Pair(new FluidStack(Fluids.SMEAR, 40), new FluidStack(Fluids.HEATINGOIL_VACUUM, 60))); + fractions.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.HEATINGOIL, 60), new FluidStack(Fluids.LUBRICANT, 40))); + fractions.put(Fluids.NAPHTHA, new Pair(new FluidStack(Fluids.HEATINGOIL, 40), new FluidStack(Fluids.DIESEL, 60))); + fractions.put(Fluids.NAPHTHA_DS, new Pair(new FluidStack(Fluids.XYLENE, 60), new FluidStack(Fluids.DIESEL_REFORM, 40))); + fractions.put(Fluids.NAPHTHA_CRACK, new Pair(new FluidStack(Fluids.HEATINGOIL, 30), new FluidStack(Fluids.DIESEL_CRACK, 70))); + fractions.put(Fluids.LIGHTOIL, new Pair(new FluidStack(Fluids.DIESEL, 40), new FluidStack(Fluids.KEROSENE, 60))); + fractions.put(Fluids.LIGHTOIL_DS, new Pair(new FluidStack(Fluids.DIESEL_REFORM, 60), new FluidStack(Fluids.KEROSENE_REFORM, 40))); + fractions.put(Fluids.LIGHTOIL_CRACK, new Pair(new FluidStack(Fluids.KEROSENE, 70), new FluidStack(Fluids.PETROLEUM, 30))); + fractions.put(Fluids.COALOIL, new Pair(new FluidStack(Fluids.COALGAS, 30), new FluidStack(Fluids.OIL, 70))); + fractions.put(Fluids.COALCREOSOTE, new Pair(new FluidStack(Fluids.COALOIL, 10), new FluidStack(Fluids.BITUMEN, 90))); + fractions.put(Fluids.REFORMATE, new Pair(new FluidStack(Fluids.AROMATICS, 40), new FluidStack(Fluids.XYLENE, 60))); + fractions.put(Fluids.LIGHTOIL_VACUUM, new Pair(new FluidStack(Fluids.KEROSENE, 70), new FluidStack(Fluids.REFORMGAS, 30))); + fractions.put(Fluids.EGG, new Pair(new FluidStack(Fluids.CHOLESTEROL, 50), new FluidStack(Fluids.RADIOSOLVENT, 50))); + fractions.put(Fluids.OIL_COKER, new Pair(new FluidStack(Fluids.CRACKOIL, 30), new FluidStack(Fluids.HEATINGOIL, 70))); + fractions.put(Fluids.NAPHTHA_COKER, new Pair(new FluidStack(Fluids.NAPHTHA_CRACK, 75), new FluidStack(Fluids.LIGHTOIL_CRACK, 25))); + fractions.put(Fluids.GAS_COKER, new Pair(new FluidStack(Fluids.AROMATICS, 25), new FluidStack(Fluids.CARBONDIOXIDE, 75))); + fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50))); } public static Pair getFractions(FluidType oil) { diff --git a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java index 840840c24..5836457a5 100644 --- a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java @@ -24,32 +24,38 @@ public class HydrotreatingRecipes extends SerializableRecipe { public void registerDefaults() { recipes.put(Fluids.OIL, new Triplet( - new FluidStack(Fluids.HYDROGEN, 5), + new FluidStack(Fluids.HYDROGEN, 5, 1), new FluidStack(Fluids.OIL_DS, 90), new FluidStack(Fluids.SOURGAS, 15) )); recipes.put(Fluids.CRACKOIL, new Triplet( - new FluidStack(Fluids.HYDROGEN, 5), + new FluidStack(Fluids.HYDROGEN, 5, 1), new FluidStack(Fluids.CRACKOIL_DS, 90), new FluidStack(Fluids.SOURGAS, 15) )); recipes.put(Fluids.GAS, new Triplet( - new FluidStack(Fluids.HYDROGEN, 5), + new FluidStack(Fluids.HYDROGEN, 5, 1), new FluidStack(Fluids.PETROLEUM, 80), new FluidStack(Fluids.SOURGAS, 15) )); recipes.put(Fluids.DIESEL_CRACK, new Triplet( - new FluidStack(Fluids.HYDROGEN, 10), + new FluidStack(Fluids.HYDROGEN, 10, 1), new FluidStack(Fluids.DIESEL, 80), - new FluidStack(Fluids.SOURGAS, 15) + new FluidStack(Fluids.SOURGAS, 30) )); recipes.put(Fluids.DIESEL_CRACK_REFORM, new Triplet( - new FluidStack(Fluids.HYDROGEN, 10), + new FluidStack(Fluids.HYDROGEN, 10, 1), new FluidStack(Fluids.DIESEL_REFORM, 80), + new FluidStack(Fluids.SOURGAS, 30) + )); + + recipes.put(Fluids.COALOIL, new Triplet( + new FluidStack(Fluids.HYDROGEN, 10, 1), + new FluidStack(Fluids.COALGAS, 80), new FluidStack(Fluids.SOURGAS, 15) )); } diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index fe7b40217..35f82fdb7 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -73,9 +73,9 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); register(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); - register(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - register(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - register(Fluids.COALGAS_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); + register(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0))); + register(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0))); + register(Fluids.COALGAS_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0))); register(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index 427f4a329..edf2d005b 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -12,6 +12,7 @@ import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.util.ItemStackUtil; +import com.hbm.util.Tuple.Quartet; import com.hbm.util.Tuple.Quintet; import net.minecraft.item.ItemStack; @@ -28,16 +29,26 @@ public class RefineryRecipes { public static final int crack_frac_aroma = 15; public static final int crack_frac_unsat = 15; + public static final int oilds_frac_heavy = 30; + public static final int oilds_frac_naph = 35; + public static final int oilds_frac_light = 20; + public static final int oilds_frac_unsat = 15; + public static final int crackds_frac_naph = 35; + public static final int crackds_frac_light = 35; + public static final int crackds_frac_aroma = 15; + public static final int crackds_frac_unsat = 15; + public static final int vac_frac_heavy = 40; public static final int vac_frac_reform = 25; public static final int vac_frac_light = 20; public static final int vac_frac_sour = 15; private static Map> refinery = new HashMap(); + private static Map> vacuum = new HashMap(); - public static Map getRefineryRecipe() { + public static HashMap getRefineryRecipe() { - Map recipes = new HashMap(); + HashMap recipes = new HashMap(); for(Entry> recipe : refinery.entrySet()) { @@ -55,15 +66,21 @@ public class RefineryRecipes { return recipes; } - public static HashMap getVacuumRecipe() { + public static HashMap getVacuumRecipe() { HashMap recipes = new HashMap(); - recipes.put(ItemFluidIcon.make(Fluids.OIL, 1000, 2), - new ItemStack[] { - ItemFluidIcon.make(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy * 10), - ItemFluidIcon.make(Fluids.REFORMATE, vac_frac_reform * 10), - ItemFluidIcon.make(Fluids.LIGHTOIL_VACUUM, vac_frac_light * 10), - ItemFluidIcon.make(Fluids.SOURGAS, vac_frac_sour * 10) }); + + for(Entry> recipe : vacuum.entrySet()) { + + Quartet fluids = recipe.getValue(); + + recipes.put(ItemFluidIcon.make(recipe.getKey(), 1000, 2), + new ItemStack[] { + ItemFluidIcon.make(fluids.getW().type, fluids.getW().fill * 10), + ItemFluidIcon.make(fluids.getX().type, fluids.getX().fill * 10), + ItemFluidIcon.make(fluids.getY().type, fluids.getY().fill * 10), + ItemFluidIcon.make(fluids.getZ().type, fluids.getZ().fill * 10) }); + } return recipes; } @@ -83,9 +100,40 @@ public class RefineryRecipes { new FluidStack(Fluids.UNSATURATEDS, crack_frac_unsat), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK) )); + refinery.put(Fluids.HOTOIL_DS, new Quintet( + new FluidStack(Fluids.HEAVYOIL, oilds_frac_heavy), + new FluidStack(Fluids.NAPHTHA_DS, oilds_frac_naph), + new FluidStack(Fluids.LIGHTOIL_DS, oilds_frac_light), + new FluidStack(Fluids.UNSATURATEDS, oilds_frac_unsat), + DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN) + )); + refinery.put(Fluids.HOTCRACKOIL_DS, new Quintet( + new FluidStack(Fluids.NAPHTHA_DS, crackds_frac_naph), + new FluidStack(Fluids.LIGHTOIL_DS, crackds_frac_light), + new FluidStack(Fluids.AROMATICS, crackds_frac_aroma), + new FluidStack(Fluids.UNSATURATEDS, crackds_frac_unsat), + DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN) + )); + + vacuum.put(Fluids.OIL, new Quartet( + new FluidStack(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy), + new FluidStack(Fluids.REFORMATE, vac_frac_reform), + new FluidStack(Fluids.LIGHTOIL_VACUUM, vac_frac_light), + new FluidStack(Fluids.SOURGAS, vac_frac_sour) + )); + vacuum.put(Fluids.OIL_DS, new Quartet( + new FluidStack(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy), + new FluidStack(Fluids.REFORMATE, vac_frac_reform), + new FluidStack(Fluids.LIGHTOIL_VACUUM, vac_frac_light), + new FluidStack(Fluids.REFORMGAS, vac_frac_sour) + )); } public static Quintet getRefinery(FluidType oil) { return refinery.get(oil); } + + public static Quartet getVacuum(FluidType oil) { + return vacuum.get(oil); + } } diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index afe1a97e0..a86838291 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -66,6 +66,11 @@ public class ItemEnums { DIGAMMAFOROURRIGHT } + public static enum EnumFuelAdditive { + ANTIKNOCK, + DEICER + } + public static enum EnumPages { PAGE1, PAGE2, PAGE3, PAGE4, PAGE5, PAGE6, PAGE7, PAGE8 } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index fc18a256c..fa7e4ec70 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -923,7 +923,7 @@ public class ModItems { public static Item inf_water; public static Item inf_water_mk2; - public static Item antiknock; + public static Item fuel_additive; public static Item canister_empty; public static Item canister_full; @@ -3320,7 +3320,7 @@ public class ModItems { thermo_element = new Item().setUnlocalizedName("thermo_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":thermo_element"); catalytic_converter = new Item().setUnlocalizedName("catalytic_converter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":catalytic_converter"); - antiknock = new Item().setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); + fuel_additive = new ItemEnumMulti(ItemEnums.EnumFuelAdditive.class, true, true).setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":canister_empty"); canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_empty"); @@ -6406,7 +6406,7 @@ public class ModItems { GameRegistry.registerItem(inf_water_mk2, inf_water_mk2.getUnlocalizedName()); //Canisters - GameRegistry.registerItem(antiknock, antiknock.getUnlocalizedName()); + GameRegistry.registerItem(fuel_additive, fuel_additive.getUnlocalizedName()); GameRegistry.registerItem(canister_empty, canister_empty.getUnlocalizedName()); GameRegistry.registerItem(canister_full, canister_full.getUnlocalizedName()); GameRegistry.registerItem(canister_napalm, canister_napalm.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemDrone.java b/src/main/java/com/hbm/items/tool/ItemDrone.java index e2c7b5ffe..5df768877 100644 --- a/src/main/java/com/hbm/items/tool/ItemDrone.java +++ b/src/main/java/com/hbm/items/tool/ItemDrone.java @@ -34,7 +34,7 @@ public class ItemDrone extends ItemEnumMulti { if(stack.getItemDamage() < 4) { toSpawn = new EntityDeliveryDrone(world); - if(stack.getItemDamage() % 2 == 0) { + if(stack.getItemDamage() % 2 == 1) { ((EntityDeliveryDrone) toSpawn).setChunkLoading(); } if(stack.getItemDamage() > 1) { diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 080f463d2..cd615d7b1 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1223,6 +1223,7 @@ public class MainRegistry { remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); remapItems.put("hbm:item.man_explosive8", ModItems.explosive_lenses); remapItems.put("hbm:item.briquette_lignite", ModItems.briquette); + remapItems.put("hbm:item.antiknock", ModItems.fuel_additive); for(MissingMapping mapping : event.get()) { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java index dfafab682..66f296d0d 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java @@ -39,7 +39,7 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme this.tanks = new FluidTank[4]; this.tanks[0] = new FluidTank(Fluids.OIL, 64_000); - this.tanks[1] = new FluidTank(Fluids.HYDROGEN, 64_000); + this.tanks[1] = new FluidTank(Fluids.HYDROGEN, 64_000).withPressure(1); this.tanks[2] = new FluidTank(Fluids.NONE, 24_000); this.tanks[3] = new FluidTank(Fluids.SOURGAS, 24_000); } @@ -61,7 +61,7 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme tanks[0].loadTank(1, 2, slots); tanks[1].loadTank(3, 4, slots); - reform(); + if(worldObj.getTotalWorldTime() % 2 == 0) reform(); tanks[2].unloadTank(5, 6, slots); tanks[3].unloadTank(7, 8, slots); @@ -85,7 +85,7 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme return; } - tanks[1].setTankType(out.getX().type); + tanks[1].withPressure(out.getX().pressure).setTankType(out.getX().type); tanks[2].setTankType(out.getY().type); tanks[3].setTankType(out.getZ().type); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index d1b79b8ea..95ec386e1 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -9,7 +9,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; @@ -46,12 +45,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IControlReceiver, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider { public long power = 0; public int sulfur = 0; @@ -70,7 +68,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements private static final int[] slot_access = new int[] {11}; public TileEntityMachineRefinery() { - super(12); + super(13); tanks = new FluidTank[5]; tanks[0] = new FluidTank(Fluids.HOTOIL, 64_000); tanks[1] = new FluidTank(Fluids.HEAVYOIL, 24_000); @@ -157,6 +155,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); + tanks[0].setType(12, slots); tanks[0].loadTank(1, 2, slots); refine(); @@ -268,17 +267,16 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements private void refine() { Quintet refinery = RefineryRecipes.getRefinery(tanks[0].getTankType()); - - if(refinery == null) //usually not possible + if(refinery == null) { + for(int i = 1; i < 5; i++) tanks[i].setTankType(Fluids.NONE); return; + } FluidStack[] stacks = new FluidStack[] {refinery.getV(), refinery.getW(), refinery.getX(), refinery.getY()}; - for(int i = 0; i < stacks.length; i++) - tanks[i + 1].setTankType(stacks[i].type); + for(int i = 0; i < stacks.length; i++) tanks[i + 1].setTankType(stacks[i].type); - if(power < 5 || tanks[0].getFill() < 100) - return; + if(power < 5 || tanks[0].getFill() < 100) return; for(int i = 0; i < stacks.length; i++) { if(tanks[i + 1].getFill() + stacks[i].fill > tanks[i + 1].getMaxFill()) { @@ -289,8 +287,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements this.isOn = true; tanks[0].setFill(tanks[0].getFill() - 100); - for(int i = 0; i < stacks.length; i++) - tanks[i + 1].setFill(tanks[i + 1].getFill() + stacks[i].fill); + for(int i = 0; i < stacks.length; i++) tanks[i + 1].setFill(tanks[i + 1].getFill() + stacks[i].fill); this.sulfur++; @@ -315,7 +312,6 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); - this.power -= 5; } @@ -370,28 +366,6 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements return 65536.0D; } - @Override - public boolean hasPermission(EntityPlayer player) { - return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 25; - } - - @Override - public void receiveControl(NBTTagCompound data) { - - if(data.hasKey("toggle")) { - - for(DirPos pos : getConPos()) { - this.tryUnsubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ()); - } - - if(tanks[0].getTankType() == Fluids.HOTOIL) { - tanks[0].setTankType(Fluids.HOTCRACKOIL); - } else { - tanks[0].setTankType(Fluids.HOTOIL); - } - } - } - @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { tanks[1], tanks[2], tanks[3], tanks[4] }; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index 326608afc..ea3ec152e 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine.oil; +import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerMachineVacuumDistill; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -12,6 +13,7 @@ import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Quartet; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -38,7 +40,7 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem public boolean isOn; public TileEntityMachineVacuumDistill() { - super(11); + super(12); this.tanks = new FluidTank[5]; this.tanks[0] = new FluidTank(Fluids.OIL, 64_000).withPressure(2); @@ -62,6 +64,7 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); + tanks[0].setType(11, slots); tanks[0].loadTank(1, 2, slots); refine(); @@ -147,21 +150,24 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem } private void refine() { + Quartet refinery = RefineryRecipes.getVacuum(tanks[0].getTankType()); + if(refinery == null) { + for(int i = 1; i < 5; i++) tanks[i].setTankType(Fluids.NONE); + return; + } + + FluidStack[] stacks = new FluidStack[] {refinery.getW(), refinery.getX(), refinery.getY(), refinery.getZ()}; + for(int i = 0; i < stacks.length; i++) tanks[i + 1].setTankType(stacks[i].type); if(power < 10_000) return; if(tanks[0].getFill() < 100) return; - if(tanks[1].getFill() + RefineryRecipes.vac_frac_heavy > tanks[1].getMaxFill()) return; - if(tanks[2].getFill() + RefineryRecipes.vac_frac_reform > tanks[2].getMaxFill()) return; - if(tanks[3].getFill() + RefineryRecipes.vac_frac_light > tanks[3].getMaxFill()) return; - if(tanks[4].getFill() + RefineryRecipes.vac_frac_sour > tanks[4].getMaxFill()) return; + for(int i = 0; i < stacks.length; i++) if(tanks[i + 1].getFill() + stacks[i].fill > tanks[i + 1].getMaxFill()) return; this.isOn = true; power -= 10_000; tanks[0].setFill(tanks[0].getFill() - 100); - tanks[1].setFill(tanks[1].getFill() + RefineryRecipes.vac_frac_heavy); - tanks[2].setFill(tanks[2].getFill() + RefineryRecipes.vac_frac_reform); - tanks[3].setFill(tanks[3].getFill() + RefineryRecipes.vac_frac_light); - tanks[4].setFill(tanks[4].getFill() + RefineryRecipes.vac_frac_sour); + + for(int i = 0; i < stacks.length; i++) tanks[i + 1].setFill(tanks[i + 1].getFill() + stacks[i].fill); } private void updateConnections() { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 825ebcafd..0e965f420 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -226,18 +226,21 @@ chem.GASOLINE=Benzinherstellung chem.GASOLINE_LEADED=Bleibenzin mischen chem.HELIUM3=Helium-3-Extraktion aus Mondgestein chem.KEVLAR=Kevlarverbundherstellung +chem.LAMINATE=Laminatherstellung chem.LPG=Petroleumgasverflüssigung chem.LUBRICANT=Schmieröl mischen chem.NITAN=NITAN-Supertreibstoff mischen chem.NITRIC_ACID=Salpetersäureherstellung chem.OIL_SAND=Teersand-Extraktion chem.OSMIRIDIUM_DEATH=Osmiridiumlösung-Herstellung +chem.PC=Polycarbonatherstellung chem.PC_ELECTROLYSIS=Kaliumchloridelektrolyse chem.PEROXIDE=Wasserstoffperoxidherstellung chem.PET=PET-Synthese chem.PETROIL_LEADED=Bleigemisch mischen chem.POLYMER=Polymersynthese chem.PUF6=Plutoniumhexafluoridproduktion +chem.PVC=Polyvinylchloridherstellung chem.RUBBER=Gummiherstellung chem.SAS3=Schrabidiumtrisulfatherstellung chem.SATURN=Saturnitherstellung @@ -258,6 +261,9 @@ chem.SF_PETROIL=Gemischverfestigung chem.SF_PETROLEUM=Petroleumgasverfestigung chem.SF_RECLAIMED=Verfestigung von wiederaufbereitetem Industrieöl chem.SF_SMEAR=Industrieölverfestigung +chem.SHELL_CHLORINE=Chlorgas-Artilleriegeschoss-Herstellung +chem.SHELL_MUSTARD=Senfgas-Artilleriegeschoss-Herstellung +chem.SHELL_PHOSGENE=Phosgen-Artilleriegeschoss-Herstellung chem.SOLID_FUEL=Festbrennstoffherstellung chem.SOLVENT=Organisches Lösungsmittel mischen chem.STEAM=Wasser kochen @@ -1120,7 +1126,6 @@ item.ams_lens.name=Stabilisierer-Linse item.ams_muzzle.name=Strahlenemissions-Mündung item.analyzer.name=Analysierer item.anchor_remote.name=Rückrufgerät -item.antiknock.name=Tetraethyblei-Antiklopfmittel item.apple_euphemium.name=Euphemiumapfel item.apple_lead.name=Bleiapfel item.apple_schrabidium.name=Schrabidiumapfel @@ -1826,6 +1831,8 @@ item.fragment_lanthanium.name=Lanthanfragment item.fragment_meteorite.name=Meteoritenfragment item.fragment_neodymium.name=Neodymfragment item.fragment_niobium.name=Niobium Ffragment +item.fuel_additive.antiknock.name=Tetraethyblei-Antiklopfmittel +item.fuel_additive.deicer.name=Enteisungsmittel item.fuel_tank_large.name=Großer Treibstofftank item.fuel_tank_medium.name=Mittlerer Treibstofftank item.fuel_tank_small.name=Kleiner Treibstofftank diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a627dc85e..0705b1dbc 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -576,6 +576,7 @@ chem.GASOLINE_LEADED=Leaded Gasoline Mixing chem.HEAVY_ELECTROLYSIS=Heavy Water Cryo-Electrolysis chem.HELIUM3=Helium-3 Extraction from Moon Turf chem.KEVLAR=Kevlar Compound Production +chem.LAMINATE=Laminate Production chem.LPG=Petroleum Gas Liquefaction chem.LUBRICANT=Lubricant Mixing chem.METH=Methamphetamine Synthesis @@ -584,12 +585,14 @@ chem.NITAN=NITAN Super Fuel Mixing chem.NITRIC_ACID=Nitric Acid Production chem.OIL_SAND=Tar Sand Extraction chem.OSMIRIDIUM_DEATH=Osmiridic Solution Production +chem.PC=Polycarbonate Synthesis chem.PC_ELECTROLYSIS=Potassium Chloride Electrolysis chem.PEROXIDE=Hydrogen Peroxide Production chem.PET=PET Synthesis chem.PETROIL_LEADED=Leaded Petroil Mixing chem.POLYMER=Polymer Synthesis chem.PUF6=Plutonium Hexafluoride Production +chem.PVC=Polyvinylchloride Synthesis chem.RUBBER=Rubber Production chem.SAS3=Schrabidium Trisulfide Production chem.SATURN=Saturnite Production @@ -610,6 +613,9 @@ chem.SF_PETROIL=Petroil Solidification chem.SF_PETROLEUM=Petroleum Gas Solidification chem.SF_RECLAIMED=Reclaimed Oil Solidification chem.SF_SMEAR=Industrial Oil Solidification +chem.SHELL_CHLORINE=Chlorine Gas Artillery Shell Production +chem.SHELL_MUSTARD=Mustard Gas Artillery Shell Production +chem.SHELL_PHOSGENE=Phosgene Artillery Shell Production chem.SOLID_FUEL=Solid Rocket Fuel Production chem.SOLVENT=Organic Solvent Mixing chem.STEAM=Water Boiling @@ -1780,7 +1786,6 @@ item.ams_muzzle.desc=...it emits an energy-beam thingy. item.analysis_tool.name=Analysis Tool item.analyzer.name=Analyzer item.anchor_remote.name=Recall Device -item.antiknock.name=Tetraethyllead Antiknock Agent item.apple_euphemium.name=Euphemium Apple item.apple_lead.name=Lead Apple item.apple_schrabidium.name=Schrabidium Apple @@ -2548,6 +2553,8 @@ item.fragment_lanthanium.name=Lanthanium Fragment item.fragment_meteorite.name=Meteorite Fragment item.fragment_neodymium.name=Neodymium Fragment item.fragment_niobium.name=Niobium Fragment +item.fuel_additive.antiknock.name=Tetraethyllead Antiknock Agent +item.fuel_additive.deicer.name=Deicer item.fuel_tank_large.name=Large Fuel Tank item.fuel_tank_medium.name=Medium Fuel Tank item.fuel_tank_small.name=Small Fuel Tank @@ -3667,7 +3674,6 @@ item.power_net_tool.name=Cable Network Analysis Tool item.pipette.name=Pipette item.pipette_boron.name=Boron Pipette item.pipette_laboratory.name=Laboratory Grade Pipette -item.siphon.name=Siphon item.primer_357.name=.357 Magnum Primer (x24) item.primer_44.name=.44 Magnum Primer (x24) item.primer_50.name=Large Caliber Primer (x12) @@ -4075,6 +4081,7 @@ item.singularity_spark.name=Spark Singularity item.singularity_super_heated.name=Superheated Resonating Singularity item.siox.name=SiOX Cancer Medication item.siox.desc=Reverses mesothelioma with the power of Asbestos! +item.siphon.name=Siphon item.siren_track.name=Siren Track item.sliding_blast_door_skin.0.name=Sliding Blast Door Skin: Default item.sliding_blast_door_skin.1.name=Sliding Blast Door Skin: Variant 1 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png index 752d061e5224989187977056f726b718f14c68f9..75f2072e8ad3350f6a6cec7c8e0f1461a4d1b135 100644 GIT binary patch literal 3023 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 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_vacuum_distill.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_vacuum_distill.png index 89a07809d31caa847bcfa2360f3ff0311548141e..2685f3e4e17d631d1a217a2391d6f5906349f431 100644 GIT binary patch literal 3016 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⩔r|JmmYDQnSi z1~{u`TuYTP8{1K;qkdxRfO)GQDo2!gv=)T~ZNq_=|x(EjI}QBT2VBXjSa zH`!2FmT*Qo)k#?RP{zi_#*e|BKXh6&EH9BiBHR-0Ui8&DY!?tp8|x73{ytGN1oyvcWI1(hHJ*n?5rNu$z#i1&-FnQ1kyVs^vxvn zg}Cou{>a=kx})y74@p*vp$nE zfwG6x~7Dp4v|?p#u& zrrhK&BX4@3nX$zMCx2$2bW-ccTpR_YQSF_X*w<%{7%*q%4rr@MdVm2YStw?}`II!O zd-+wE{{+cp0o*2g$&WuTP}<@dt>S&3jLPkKPB4LBtM3u!^7H|5HZ3@FVz&l$?N;c0H~1NEPCA=9;ytD@?BD>roML`#^_n49npAjSZNzbm3i{JoT!7yI=-b^bJvS$+q;$GzV*sJu?MF| zf4O34N-vpn>R6- z$2{J7j2chganO=bbr22?J_OA8faMsx*G2AD!9>D?{DV;4v1v#9m2o&tJ(~{v+2V$z zniAN!9fJrePYwXE{g~nN+Cyuky%)lz4&N9Sa2CKsat=mI>bJ$+-K%=d!s`l`YgLKb zjeQ*SnP|V75tpd-UCSsO%5eB~R<%4G`0VzaYRCZ4i%@HBgg4m+^P+C`ROFRzl{gft=8B z)(sjDUPi}@QMkCxGP=f?yLi!<=CiMg5g;1M9X8=VHN=R6s?V$HXtnhWiQg*g;rRTQ zEbnBpahmmYefMT#gx924Tx2BW|HmeGm3BGo+hVwXT?-nL>;JTUQ*Jmf6;t$6g*FMo N@)v7jp}G5S{{}}MFMI$1 diff --git a/src/main/resources/assets/hbm/textures/items/antiknock.png b/src/main/resources/assets/hbm/textures/items/fuel_additive.antiknock.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/antiknock.png rename to src/main/resources/assets/hbm/textures/items/fuel_additive.antiknock.png diff --git a/src/main/resources/assets/hbm/textures/items/fuel_additive.deicer.png b/src/main/resources/assets/hbm/textures/items/fuel_additive.deicer.png new file mode 100644 index 0000000000000000000000000000000000000000..17b91b06b8867685b28b150ff61594011c5c07db GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf8wh=`sT^C%=MiHJh}02D_$foF6W#QloEOE?35shWSPCj2FGqJ(qQO#{Ntsb zZ}9PyPgx2|DxQyewUy4DF+4Hd`-^jq;7besruS?vf|d@qo3;wDlz%(0zg45@=bx$v z=l1e8Jgz$Wt|rNRc2UgwI&+2$zUo Date: Tue, 6 Feb 2024 21:21:59 +0100 Subject: [PATCH 156/376] some UV --- .../hbm/models/weapons/launch_pad_erector.obj | 15672 ++++++++++++++++ .../textures/models/launchpad/erector_v2.png | Bin 0 -> 1621 bytes .../hbm/textures/models/launchpad/pad.png | Bin 0 -> 1993 bytes 3 files changed, 15672 insertions(+) create mode 100644 src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj create mode 100644 src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png create mode 100644 src/main/resources/assets/hbm/textures/models/launchpad/pad.png diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj new file mode 100644 index 000000000..67552a570 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj @@ -0,0 +1,15672 @@ +# Blender v2.79 (sub 0) OBJ File: 'launch_pad_erector.blend' +# www.blender.org +o ABM_Pivot +v 0.125000 1.250000 -1.375000 +v 0.375000 1.250000 -1.375000 +v 0.125000 1.250000 -1.625000 +v 0.375000 1.250000 -1.625000 +v -0.375000 1.250000 -1.375000 +v -0.125000 1.250000 -1.375000 +v -0.375000 1.250000 -1.625000 +v -0.125000 1.250000 -1.625000 +v 0.125000 2.750000 -1.625000 +v 0.125000 2.750000 -1.375000 +v 0.375000 2.750000 -1.375000 +v 0.375000 2.750000 -1.625000 +v -0.375000 2.750000 -1.625000 +v -0.375000 2.750000 -1.375000 +v -0.125000 2.750000 -1.375000 +v -0.125000 2.750000 -1.625000 +v 0.187500 2.750000 -1.437500 +v 0.312500 2.750000 -1.437500 +v 0.187500 2.750000 -1.562500 +v 0.312500 2.750000 -1.562500 +v 0.187500 3.750000 -1.437500 +v 0.312500 3.750000 -1.437500 +v 0.187500 3.750000 -1.562500 +v 0.312500 3.750000 -1.562500 +v -0.312500 2.750000 -1.437500 +v -0.187500 2.750000 -1.437500 +v -0.312500 2.750000 -1.562500 +v -0.187500 2.750000 -1.562500 +v -0.312500 3.750000 -1.437500 +v -0.187500 3.750000 -1.437500 +v -0.312500 3.750000 -1.562500 +v -0.187500 3.750000 -1.562500 +v 0.125000 2.312500 -1.437500 +v 0.125000 2.187500 -1.437500 +v 0.125000 2.312500 -1.562500 +v 0.125000 2.187500 -1.562500 +v -0.125000 2.312500 -1.562500 +v -0.125000 2.312500 -1.437500 +v -0.125000 2.187500 -1.437500 +v -0.125000 2.187500 -1.562500 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 21//1 19//1 17//1 +f 24//2 18//2 20//2 +f 11//3 9//3 10//3 +f 15//3 13//3 14//3 +f 8//2 15//2 6//2 +f 5//1 13//1 7//1 +f 4//2 11//2 2//2 +f 1//1 9//1 3//1 +f 7//4 16//4 8//4 +f 6//5 14//5 5//5 +f 3//4 12//4 4//4 +f 2//5 10//5 1//5 +f 23//4 20//4 19//4 +f 22//5 17//5 18//5 +f 29//1 27//1 25//1 +f 32//2 26//2 28//2 +f 31//4 28//4 27//4 +f 30//5 25//5 26//5 +f 34//2 35//2 33//2 +f 37//1 39//1 38//1 +f 40//4 35//4 36//4 +f 38//5 34//5 33//5 +f 39//6 36//6 34//6 +f 37//3 33//3 35//3 +f 21//1 23//1 19//1 +f 24//2 22//2 18//2 +f 11//3 12//3 9//3 +f 15//3 16//3 13//3 +f 8//2 16//2 15//2 +f 5//1 14//1 13//1 +f 4//2 12//2 11//2 +f 1//1 10//1 9//1 +f 7//4 13//4 16//4 +f 6//5 15//5 14//5 +f 3//4 9//4 12//4 +f 2//5 11//5 10//5 +f 23//4 24//4 20//4 +f 22//5 21//5 17//5 +f 29//1 31//1 27//1 +f 32//2 30//2 26//2 +f 31//4 32//4 28//4 +f 30//5 29//5 25//5 +f 34//2 36//2 35//2 +f 37//1 40//1 39//1 +f 40//4 37//4 35//4 +f 38//5 39//5 34//5 +f 39//6 40//6 36//6 +f 37//3 38//3 33//3 +o ABM_Rope +v 0.000000 10.500000 1.437500 +v 0.000000 10.375000 1.437500 +v 0.000000 10.500000 0.000000 +v 0.000000 10.375000 0.000000 +v 0.000000 10.375000 1.062500 +v 0.000000 10.250000 1.062500 +v 0.000000 10.375000 0.375000 +v 0.000000 10.250000 0.375000 +vn 1.0000 0.0000 0.0000 +s off +f 47//7 44//7 43//7 +f 48//7 45//7 46//7 +f 42//7 45//7 41//7 +f 47//7 48//7 44//7 +f 48//7 47//7 45//7 +f 42//7 46//7 45//7 +o ABM_Erector +v 0.125000 2.750000 -1.625000 +v 0.125000 2.750000 -1.375000 +v 0.375000 2.750000 -1.375000 +v 0.375000 2.750000 -1.625000 +v -0.375000 2.750000 -1.625000 +v -0.375000 2.750000 -1.375000 +v -0.125000 2.750000 -1.375000 +v -0.125000 2.750000 -1.625000 +v 0.125000 9.750000 -1.625000 +v 0.125000 9.750000 -1.375000 +v 0.375000 9.750000 -1.375000 +v 0.375000 9.750000 -1.625000 +v -0.375000 9.750000 -1.625000 +v -0.375000 9.750000 -1.375000 +v -0.125000 9.750000 -1.375000 +v -0.125000 9.750000 -1.625000 +v 0.250000 4.625000 -1.500000 +v 0.500000 4.625000 -1.500000 +v 0.250000 4.875000 -1.500000 +v 0.500000 4.875000 -1.500000 +v 0.250000 4.625000 0.250000 +v 0.500000 4.625000 0.250000 +v 0.250000 4.875000 0.250000 +v 0.500000 4.875000 0.250000 +v -0.500000 4.625000 -1.500000 +v -0.250000 4.625000 -1.500000 +v -0.500000 4.875000 -1.500000 +v -0.250000 4.875000 -1.500000 +v -0.500000 4.625000 0.250000 +v -0.250000 4.625000 0.250000 +v -0.500000 4.875000 0.250000 +v -0.250000 4.875000 0.250000 +v 0.250000 4.625000 -0.250000 +v 0.250000 4.875000 -0.250000 +v -0.250000 4.625000 -0.250000 +v -0.250000 4.875000 -0.250000 +v 0.250000 4.875000 -0.500000 +v 0.250000 4.625000 -0.500000 +v -0.250000 4.625000 -0.500000 +v -0.250000 4.875000 -0.500000 +v 0.250000 9.125000 -1.500000 +v 0.500000 9.125000 -1.500000 +v 0.250000 9.375000 -1.500000 +v 0.500000 9.375000 -1.500000 +v 0.250000 9.125000 0.250000 +v 0.500000 9.125000 0.250000 +v 0.250000 9.375000 0.250000 +v 0.500000 9.375000 0.250000 +v -0.500000 9.125000 -1.500000 +v -0.250000 9.125000 -1.500000 +v -0.500000 9.375000 -1.500000 +v -0.250000 9.375000 -1.500000 +v -0.500000 9.125000 0.250000 +v -0.250000 9.125000 0.250000 +v -0.500000 9.375000 0.250000 +v -0.250000 9.375000 0.250000 +v 0.250000 9.125000 -0.250000 +v 0.250000 9.375000 -0.250000 +v -0.250000 9.125000 -0.250000 +v -0.250000 9.375000 -0.250000 +v 0.250000 9.375000 -0.500000 +v 0.250000 9.125000 -0.500000 +v -0.250000 9.125000 -0.500000 +v -0.250000 9.375000 -0.500000 +v 0.125000 6.312500 -1.437500 +v 0.125000 6.187500 -1.437500 +v 0.125000 6.312500 -1.562500 +v 0.125000 6.187500 -1.562500 +v -0.125000 6.312500 -1.562500 +v -0.125000 6.312500 -1.437500 +v -0.125000 6.187500 -1.437500 +v -0.125000 6.187500 -1.562500 +v 0.125000 7.312500 -1.437500 +v 0.125000 7.187500 -1.437500 +v 0.125000 7.312500 -1.562500 +v 0.125000 7.187500 -1.562500 +v -0.125000 7.312500 -1.562500 +v -0.125000 7.312500 -1.437500 +v -0.125000 7.187500 -1.437500 +v -0.125000 7.187500 -1.562500 +v 0.125000 8.312500 -1.437500 +v 0.125000 8.187500 -1.437500 +v 0.125000 8.312500 -1.562500 +v 0.125000 8.187500 -1.562500 +v -0.125000 8.312500 -1.562500 +v -0.125000 8.312500 -1.437500 +v -0.125000 8.187500 -1.437500 +v -0.125000 8.187500 -1.562500 +v 0.125000 9.312500 -1.437500 +v 0.125000 9.187500 -1.437500 +v 0.125000 9.312500 -1.562500 +v 0.125000 9.187500 -1.562500 +v -0.125000 9.312500 -1.562500 +v -0.125000 9.312500 -1.437500 +v -0.125000 9.187500 -1.437500 +v -0.125000 9.187500 -1.562500 +v 0.125000 3.312500 -1.437500 +v 0.125000 3.187500 -1.437500 +v 0.125000 3.312500 -1.562500 +v 0.125000 3.187500 -1.562500 +v -0.125000 3.312500 -1.562500 +v -0.125000 3.312500 -1.437500 +v -0.125000 3.187500 -1.437500 +v -0.125000 3.187500 -1.562500 +v 0.125000 4.312500 -1.437500 +v 0.125000 4.187500 -1.437500 +v 0.125000 4.312500 -1.562500 +v 0.125000 4.187500 -1.562500 +v -0.125000 4.312500 -1.562500 +v -0.125000 4.312500 -1.437500 +v -0.125000 4.187500 -1.437500 +v -0.125000 4.187500 -1.562500 +v 0.125000 5.312500 -1.437500 +v 0.125000 5.187500 -1.437500 +v 0.125000 5.312500 -1.562500 +v 0.125000 5.187500 -1.562500 +v -0.125000 5.312500 -1.562500 +v -0.125000 5.312500 -1.437500 +v -0.125000 5.187500 -1.437500 +v -0.125000 5.187500 -1.562500 +v 0.250000 4.875000 -0.625000 +v 0.250000 4.875000 -0.875000 +v 0.250000 5.625000 -1.375000 +v 0.250000 5.375000 -1.375000 +v -0.250000 4.875000 -0.625000 +v -0.250000 4.875000 -0.875000 +v -0.250000 5.625000 -1.375000 +v -0.250000 5.375000 -1.375000 +v 0.250000 9.125000 -0.625000 +v 0.250000 9.125000 -0.875000 +v -0.250000 9.125000 -0.625000 +v -0.250000 9.125000 -0.875000 +v 0.250000 8.625000 -1.375000 +v 0.250000 8.375000 -1.375000 +v -0.250000 8.625000 -1.375000 +v -0.250000 8.375000 -1.375000 +v 0.250000 4.625000 -0.625000 +v 0.250000 4.625000 -0.875000 +v -0.250000 4.625000 -0.625000 +v -0.250000 4.625000 -0.875000 +v 0.250000 4.125000 -1.375000 +v 0.250000 3.875000 -1.375000 +v -0.250000 4.125000 -1.375000 +v -0.250000 3.875000 -1.375000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 49//8 51//8 50//8 +f 53//8 55//8 54//8 +f 59//9 57//9 58//9 +f 63//9 61//9 62//9 +f 52//10 59//10 51//10 +f 50//11 57//11 49//11 +f 53//12 64//12 56//12 +f 55//13 62//13 54//13 +f 49//12 60//12 52//12 +f 51//13 58//13 50//13 +f 56//10 63//10 55//10 +f 54//11 61//11 53//11 +f 67//12 66//12 65//12 +f 70//13 71//13 69//13 +f 65//11 71//11 67//11 +f 67//9 72//9 68//9 +f 66//8 69//8 65//8 +f 68//10 70//10 66//10 +f 75//12 74//12 73//12 +f 78//13 79//13 77//13 +f 73//11 79//11 75//11 +f 75//9 80//9 76//9 +f 74//8 77//8 73//8 +f 76//10 78//10 74//10 +f 82//13 83//13 81//13 +f 87//12 85//12 86//12 +f 83//8 86//8 81//8 +f 94//13 95//13 93//13 +f 82//9 88//9 84//9 +f 91//12 90//12 89//12 +f 89//11 95//11 91//11 +f 91//9 96//9 92//9 +f 90//8 93//8 89//8 +f 92//10 94//10 90//10 +f 99//12 98//12 97//12 +f 102//13 103//13 101//13 +f 97//11 103//11 99//11 +f 99//9 104//9 100//9 +f 98//8 101//8 97//8 +f 100//10 102//10 98//10 +f 106//13 107//13 105//13 +f 111//12 109//12 110//12 +f 107//8 110//8 105//8 +f 106//9 112//9 108//9 +f 114//10 115//10 113//10 +f 117//11 119//11 118//11 +f 120//12 115//12 116//12 +f 118//13 114//13 113//13 +f 119//8 116//8 114//8 +f 117//9 113//9 115//9 +f 122//10 123//10 121//10 +f 125//11 127//11 126//11 +f 128//12 123//12 124//12 +f 126//13 122//13 121//13 +f 127//8 124//8 122//8 +f 125//9 121//9 123//9 +f 130//10 131//10 129//10 +f 133//11 135//11 134//11 +f 136//12 131//12 132//12 +f 134//13 130//13 129//13 +f 135//8 132//8 130//8 +f 133//9 129//9 131//9 +f 138//10 139//10 137//10 +f 141//11 143//11 142//11 +f 144//12 139//12 140//12 +f 142//13 138//13 137//13 +f 143//8 140//8 138//8 +f 141//9 137//9 139//9 +f 146//10 147//10 145//10 +f 149//11 151//11 150//11 +f 152//12 147//12 148//12 +f 150//13 146//13 145//13 +f 151//8 148//8 146//8 +f 149//9 145//9 147//9 +f 154//10 155//10 153//10 +f 157//11 159//11 158//11 +f 160//12 155//12 156//12 +f 158//13 154//13 153//13 +f 159//8 156//8 154//8 +f 157//9 153//9 155//9 +f 162//10 163//10 161//10 +f 165//11 167//11 166//11 +f 168//12 163//12 164//12 +f 166//13 162//13 161//13 +f 167//8 164//8 162//8 +f 165//9 161//9 163//9 +f 170//10 171//10 169//10 +f 175//11 174//11 173//11 +f 183//11 179//11 180//11 +f 177//10 181//10 178//10 +f 191//11 187//11 188//11 +f 185//10 189//10 186//10 +f 49//8 52//8 51//8 +f 53//8 56//8 55//8 +f 59//9 60//9 57//9 +f 63//9 64//9 61//9 +f 52//10 60//10 59//10 +f 50//11 58//11 57//11 +f 53//12 61//12 64//12 +f 55//13 63//13 62//13 +f 49//12 57//12 60//12 +f 51//13 59//13 58//13 +f 56//10 64//10 63//10 +f 54//11 62//11 61//11 +f 67//12 68//12 66//12 +f 70//13 72//13 71//13 +f 65//11 69//11 71//11 +f 67//9 71//9 72//9 +f 66//8 70//8 69//8 +f 68//10 72//10 70//10 +f 75//12 76//12 74//12 +f 78//13 80//13 79//13 +f 73//11 77//11 79//11 +f 75//9 79//9 80//9 +f 74//8 78//8 77//8 +f 76//10 80//10 78//10 +f 82//13 84//13 83//13 +f 87//12 88//12 85//12 +f 83//8 87//8 86//8 +f 94//13 96//13 95//13 +f 82//9 85//9 88//9 +f 91//12 92//12 90//12 +f 89//11 93//11 95//11 +f 91//9 95//9 96//9 +f 90//8 94//8 93//8 +f 92//10 96//10 94//10 +f 99//12 100//12 98//12 +f 102//13 104//13 103//13 +f 97//11 101//11 103//11 +f 99//9 103//9 104//9 +f 98//8 102//8 101//8 +f 100//10 104//10 102//10 +f 106//13 108//13 107//13 +f 111//12 112//12 109//12 +f 107//8 111//8 110//8 +f 106//9 109//9 112//9 +f 114//10 116//10 115//10 +f 117//11 120//11 119//11 +f 120//12 117//12 115//12 +f 118//13 119//13 114//13 +f 119//8 120//8 116//8 +f 117//9 118//9 113//9 +f 122//10 124//10 123//10 +f 125//11 128//11 127//11 +f 128//12 125//12 123//12 +f 126//13 127//13 122//13 +f 127//8 128//8 124//8 +f 125//9 126//9 121//9 +f 130//10 132//10 131//10 +f 133//11 136//11 135//11 +f 136//12 133//12 131//12 +f 134//13 135//13 130//13 +f 135//8 136//8 132//8 +f 133//9 134//9 129//9 +f 138//10 140//10 139//10 +f 141//11 144//11 143//11 +f 144//12 141//12 139//12 +f 142//13 143//13 138//13 +f 143//8 144//8 140//8 +f 141//9 142//9 137//9 +f 146//10 148//10 147//10 +f 149//11 152//11 151//11 +f 152//12 149//12 147//12 +f 150//13 151//13 146//13 +f 151//8 152//8 148//8 +f 149//9 150//9 145//9 +f 154//10 156//10 155//10 +f 157//11 160//11 159//11 +f 160//12 157//12 155//12 +f 158//13 159//13 154//13 +f 159//8 160//8 156//8 +f 157//9 158//9 153//9 +f 162//10 164//10 163//10 +f 165//11 168//11 167//11 +f 168//12 165//12 163//12 +f 166//13 167//13 162//13 +f 167//8 168//8 164//8 +f 165//9 166//9 161//9 +f 170//10 172//10 171//10 +f 175//11 176//11 174//11 +f 183//11 184//11 179//11 +f 177//10 182//10 181//10 +f 191//11 192//11 187//11 +f 185//10 190//10 189//10 +o ABM_Pad +v -1.000000 2.000000 1.000000 +v 1.000000 2.000000 1.000000 +v -1.000000 2.000000 -1.000000 +v 1.000000 2.000000 -1.000000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v -1.000000 1.750000 -1.000000 +v -1.000000 1.750000 1.000000 +v 1.000000 1.750000 1.000000 +v 1.000000 1.750000 -1.000000 +v -0.500000 1.750000 -0.500000 +v -0.500000 1.750000 0.500000 +v 0.500000 1.750000 0.500000 +v 0.500000 1.750000 -0.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v 0.562500 1.750000 0.937500 +v 0.937500 1.750000 0.937500 +v 0.562500 1.750000 0.562500 +v 0.937500 1.750000 0.562500 +v 0.562500 1.000000 0.937500 +v 0.937500 1.000000 0.937500 +v 0.562500 1.000000 0.562500 +v 0.937500 1.000000 0.562500 +v 0.562500 1.750000 -0.562500 +v 0.937500 1.750000 -0.562500 +v 0.562500 1.750000 -0.937500 +v 0.937500 1.750000 -0.937500 +v 0.562500 1.000000 -0.562500 +v 0.937500 1.000000 -0.562500 +v 0.562500 1.000000 -0.937500 +v 0.937500 1.000000 -0.937500 +v -0.937500 1.750000 0.937500 +v -0.562500 1.750000 0.937500 +v -0.937500 1.750000 0.562500 +v -0.562500 1.750000 0.562500 +v -0.937500 1.000000 0.937500 +v -0.562500 1.000000 0.937500 +v -0.937500 1.000000 0.562500 +v -0.562500 1.000000 0.562500 +v -0.937500 1.750000 -0.562500 +v -0.562500 1.750000 -0.562500 +v -0.937500 1.750000 -0.937500 +v -0.562500 1.750000 -0.937500 +v -0.937500 1.000000 -0.562500 +v -0.562500 1.000000 -0.562500 +v -0.937500 1.000000 -0.937500 +v -0.562500 1.000000 -0.937500 +v -0.500000 1.000000 -1.250000 +v 0.500000 1.000000 -1.250000 +v -0.500000 1.000000 -1.750000 +v 0.500000 1.000000 -1.750000 +v -0.500000 1.500000 -1.625000 +v -0.500000 1.375000 -1.750000 +v -0.500000 1.375000 -1.250000 +v -0.500000 1.500000 -1.375000 +v 0.500000 1.500000 -1.375000 +v 0.500000 1.375000 -1.250000 +v 0.500000 1.375000 -1.750000 +v 0.500000 1.500000 -1.625000 +v 0.750000 1.750000 0.562500 +v 0.750000 1.000000 0.562500 +v 0.750000 1.750000 -0.562500 +v 0.750000 1.000000 -0.562500 +v -0.750000 1.750000 0.562500 +v -0.750000 1.000000 0.562500 +v -0.750000 1.750000 -0.562500 +v -0.750000 1.000000 -0.562500 +v 0.562500 1.750000 -0.750000 +v 0.562500 1.000000 -0.750000 +v -0.562500 1.750000 -0.750000 +v -0.562500 1.000000 -0.750000 +v 0.562500 1.750000 0.750000 +v 0.562500 1.000000 0.750000 +v -0.562500 1.750000 0.750000 +v -0.562500 1.000000 0.750000 +v 0.500000 1.000000 1.750000 +v 1.000000 1.000000 1.750000 +v 0.500000 1.000000 1.250000 +v 1.000000 1.000000 1.250000 +v -1.000000 1.000000 1.750000 +v -0.500000 1.000000 1.750000 +v -1.000000 1.000000 1.250000 +v -0.500000 1.000000 1.250000 +v 0.500000 11.000000 1.250000 +v 0.500000 11.000000 1.750000 +v 1.000000 11.000000 1.750000 +v 1.000000 11.000000 1.250000 +v -1.000000 11.000000 1.250000 +v -1.000000 11.000000 1.750000 +v -0.500000 11.000000 1.750000 +v -0.500000 11.000000 1.250000 +v -0.500000 10.750000 1.562500 +v 0.500000 10.000000 1.562500 +v -0.500000 11.000000 1.562500 +v 0.500000 10.250000 1.562500 +v -0.500000 10.000000 1.562500 +v 0.500000 9.250000 1.562500 +v -0.500000 10.250000 1.562500 +v 0.500000 9.500000 1.562500 +v -0.500000 9.250000 1.562500 +v 0.500000 8.500000 1.562500 +v -0.500000 9.500000 1.562500 +v 0.500000 8.750000 1.562500 +v -0.500000 8.500000 1.562500 +v 0.500000 7.750000 1.562500 +v -0.500000 8.750000 1.562500 +v 0.500000 8.000000 1.562500 +v -0.500000 7.750000 1.562500 +v 0.500000 7.000000 1.562500 +v -0.500000 8.000000 1.562500 +v 0.500000 7.250000 1.562500 +v -0.500000 7.000000 1.562500 +v 0.500000 6.250000 1.562500 +v -0.500000 7.250000 1.562500 +v 0.500000 6.500000 1.562500 +v -0.500000 6.250000 1.562500 +v 0.500000 5.500000 1.562500 +v -0.500000 6.500000 1.562500 +v 0.500000 5.750000 1.562500 +v -0.500000 5.500000 1.562500 +v 0.500000 4.750000 1.562500 +v -0.500000 5.750000 1.562500 +v 0.500000 5.000000 1.562500 +v -0.500000 4.750000 1.562500 +v 0.500000 4.000000 1.562500 +v -0.500000 5.000000 1.562500 +v 0.500000 4.250000 1.562500 +v -0.500000 4.000000 1.562500 +v 0.500000 3.250000 1.562500 +v -0.500000 4.250000 1.562500 +v 0.500000 3.500000 1.562500 +v -0.500000 3.250000 1.562500 +v 0.500000 2.500000 1.562500 +v -0.500000 3.500000 1.562500 +v 0.500000 2.750000 1.562500 +v -0.500000 2.500000 1.562500 +v 0.500000 1.750000 1.562500 +v -0.500000 2.750000 1.562500 +v 0.500000 2.000000 1.562500 +v -0.500000 1.750000 1.562500 +v 0.500000 1.000000 1.562500 +v -0.500000 2.000000 1.562500 +v 0.500000 1.250000 1.562500 +v 0.500000 10.750000 1.437500 +v -0.500000 10.000000 1.437500 +v 0.500000 11.000000 1.437500 +v -0.500000 10.250000 1.437500 +v 0.500000 10.000000 1.437500 +v -0.500000 9.250000 1.437500 +v 0.500000 10.250000 1.437500 +v -0.500000 9.500000 1.437500 +v 0.500000 9.250000 1.437500 +v -0.500000 8.500000 1.437500 +v 0.500000 9.500000 1.437500 +v -0.500000 8.750000 1.437500 +v 0.500000 8.500000 1.437500 +v -0.500000 7.750000 1.437500 +v 0.500000 8.750000 1.437500 +v -0.500000 8.000000 1.437500 +v 0.500000 7.750000 1.437500 +v -0.500000 7.000000 1.437500 +v 0.500000 8.000000 1.437500 +v -0.500000 7.250000 1.437500 +v 0.500000 7.000000 1.437500 +v -0.500000 6.250000 1.437500 +v 0.500000 7.250000 1.437500 +v -0.500000 6.500000 1.437500 +v 0.500000 6.250000 1.437500 +v -0.500000 5.500000 1.437500 +v 0.500000 6.500000 1.437500 +v -0.500000 5.750000 1.437500 +v 0.500000 5.500000 1.437500 +v -0.500000 4.750000 1.437500 +v 0.500000 5.750000 1.437500 +v -0.500000 5.000000 1.437500 +v 0.500000 4.750000 1.437500 +v -0.500000 4.000000 1.437500 +v 0.500000 5.000000 1.437500 +v -0.500000 4.250000 1.437500 +v 0.500000 4.000000 1.437500 +v -0.500000 3.250000 1.437500 +v 0.500000 4.250000 1.437500 +v -0.500000 3.500000 1.437500 +v 0.500000 3.250000 1.437500 +v -0.500000 2.500000 1.437500 +v 0.500000 3.500000 1.437500 +v -0.500000 2.750000 1.437500 +v 0.500000 2.500000 1.437500 +v -0.500000 1.750000 1.437500 +v 0.500000 2.750000 1.437500 +v -0.500000 2.000000 1.437500 +v 0.500000 1.750000 1.437500 +v -0.500000 1.000000 1.437500 +v 0.500000 2.000000 1.437500 +v -0.500000 1.250000 1.437500 +v -0.937500 1.000000 3.937500 +v -0.562500 1.000000 3.937500 +v -0.937500 1.000000 3.562500 +v -0.562500 1.000000 3.562500 +v -0.937500 2.812500 1.750000 +v -0.562500 2.812500 1.750000 +v -0.937500 3.187500 1.750000 +v -0.562500 3.187500 1.750000 +v 0.562500 1.000000 3.937500 +v 0.937500 1.000000 3.937500 +v 0.562500 1.000000 3.562500 +v 0.937500 1.000000 3.562500 +v 0.562500 2.812500 1.750000 +v 0.937500 2.812500 1.750000 +v 0.562500 3.187500 1.750000 +v 0.937500 3.187500 1.750000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +s off +f 198//14 193//14 194//14 +f 202//15 207//15 203//15 +f 197//14 195//14 193//14 +f 199//14 196//14 195//14 +f 200//14 194//14 196//14 +f 201//15 206//15 202//15 +f 204//15 205//15 201//15 +f 203//15 208//15 204//15 +f 199//16 208//16 200//16 +f 198//17 206//17 197//17 +f 196//17 201//17 195//17 +f 193//16 203//16 194//16 +f 200//18 207//18 198//18 +f 197//19 205//19 199//19 +f 194//19 204//19 196//19 +f 195//18 202//18 193//18 +f 209//14 212//14 211//14 +f 214//19 220//19 216//19 +f 215//18 217//18 213//18 +f 216//17 219//17 215//17 +f 213//16 218//16 214//16 +f 222//19 228//19 224//19 +f 223//18 225//18 221//18 +f 224//17 227//17 223//17 +f 221//16 226//16 222//16 +f 230//19 236//19 232//19 +f 231//18 233//18 229//18 +f 232//17 235//17 231//17 +f 229//16 234//16 230//16 +f 238//19 244//19 240//19 +f 239//18 241//18 237//18 +f 240//17 243//17 239//17 +f 237//16 242//16 238//16 +f 247//17 255//17 248//17 +f 253//14 249//14 252//14 +f 246//16 251//16 245//16 +f 256//19 253//19 254//19 +f 254//20 252//20 251//20 +f 250//21 256//21 255//21 +f 252//18 249//18 250//18 +f 260//19 257//19 258//19 +f 261//18 264//18 262//18 +f 268//17 265//17 266//17 +f 269//16 272//16 270//16 +f 283//14 281//14 282//14 +f 287//14 285//14 286//14 +f 274//16 282//16 273//16 +f 280//19 287//19 278//19 +f 277//18 285//18 279//18 +f 276//19 283//19 274//19 +f 273//18 281//18 275//18 +f 279//17 288//17 280//17 +f 278//16 286//16 277//16 +f 275//17 284//17 276//17 +f 289//17 292//17 290//17 +f 293//17 296//17 294//17 +f 297//17 300//17 298//17 +f 301//17 304//17 302//17 +f 305//17 308//17 306//17 +f 309//17 312//17 310//17 +f 313//17 316//17 314//17 +f 317//17 320//17 318//17 +f 321//17 324//17 322//17 +f 325//17 328//17 326//17 +f 329//17 332//17 330//17 +f 333//17 336//17 334//17 +f 337//17 340//17 338//17 +f 341//17 344//17 343//17 +f 345//17 348//17 347//17 +f 349//17 352//17 351//17 +f 353//17 356//17 355//17 +f 357//17 360//17 359//17 +f 361//17 364//17 363//17 +f 365//17 368//17 367//17 +f 369//17 372//17 371//17 +f 373//17 376//17 375//17 +f 377//17 380//17 379//17 +f 381//17 384//17 383//17 +f 385//17 388//17 387//17 +f 389//17 392//17 391//17 +f 393//18 397//18 395//18 +f 394//20 399//20 393//20 +f 395//22 398//22 396//22 +f 396//19 400//19 394//19 +f 401//18 405//18 403//18 +f 402//20 407//20 401//20 +f 403//22 406//22 404//22 +f 404//19 408//19 402//19 +f 198//14 197//14 193//14 +f 202//15 206//15 207//15 +f 197//14 199//14 195//14 +f 199//14 200//14 196//14 +f 200//14 198//14 194//14 +f 201//15 205//15 206//15 +f 204//15 208//15 205//15 +f 203//15 207//15 208//15 +f 199//16 205//16 208//16 +f 198//17 207//17 206//17 +f 196//17 204//17 201//17 +f 193//16 202//16 203//16 +f 200//18 208//18 207//18 +f 197//19 206//19 205//19 +f 194//19 203//19 204//19 +f 195//18 201//18 202//18 +f 209//14 210//14 212//14 +f 214//19 218//19 220//19 +f 215//18 219//18 217//18 +f 216//17 220//17 219//17 +f 213//16 217//16 218//16 +f 222//19 226//19 228//19 +f 223//18 227//18 225//18 +f 224//17 228//17 227//17 +f 221//16 225//16 226//16 +f 230//19 234//19 236//19 +f 231//18 235//18 233//18 +f 232//17 236//17 235//17 +f 229//16 233//16 234//16 +f 238//19 242//19 244//19 +f 239//18 243//18 241//18 +f 240//17 244//17 243//17 +f 237//16 241//16 242//16 +f 247//17 250//17 255//17 +f 253//14 256//14 249//14 +f 246//16 254//16 251//16 +f 254//19 246//19 248//19 +f 248//19 255//19 254//19 +f 255//19 256//19 254//19 +f 254//20 253//20 252//20 +f 250//21 249//21 256//21 +f 250//18 247//18 245//18 +f 245//18 251//18 250//18 +f 251//18 252//18 250//18 +f 260//19 259//19 257//19 +f 261//18 263//18 264//18 +f 268//17 267//17 265//17 +f 269//16 271//16 272//16 +f 283//14 284//14 281//14 +f 287//14 288//14 285//14 +f 274//16 283//16 282//16 +f 280//19 288//19 287//19 +f 277//18 286//18 285//18 +f 276//19 284//19 283//19 +f 273//18 282//18 281//18 +f 279//17 285//17 288//17 +f 278//16 287//16 286//16 +f 275//17 281//17 284//17 +f 289//17 291//17 292//17 +f 293//17 295//17 296//17 +f 297//17 299//17 300//17 +f 301//17 303//17 304//17 +f 305//17 307//17 308//17 +f 309//17 311//17 312//17 +f 313//17 315//17 316//17 +f 317//17 319//17 320//17 +f 321//17 323//17 324//17 +f 325//17 327//17 328//17 +f 329//17 331//17 332//17 +f 333//17 335//17 336//17 +f 337//17 339//17 340//17 +f 341//17 342//17 344//17 +f 345//17 346//17 348//17 +f 349//17 350//17 352//17 +f 353//17 354//17 356//17 +f 357//17 358//17 360//17 +f 361//17 362//17 364//17 +f 365//17 366//17 368//17 +f 369//17 370//17 372//17 +f 373//17 374//17 376//17 +f 377//17 378//17 380//17 +f 381//17 382//17 384//17 +f 385//17 386//17 388//17 +f 389//17 390//17 392//17 +f 393//18 399//18 397//18 +f 394//20 400//20 399//20 +f 395//22 397//22 398//22 +f 396//19 398//19 400//19 +f 401//18 407//18 405//18 +f 402//20 408//20 407//20 +f 403//22 405//22 406//22 +f 404//19 406//19 408//19 +o Atlas_Rope +v -2.116117 11.000000 2.292893 +v -2.292893 11.000000 2.116117 +v -2.292893 11.000000 2.469670 +v -2.469670 11.000000 2.292893 +v -1.762563 16.250000 1.939340 +v -1.939340 16.250000 1.762563 +v -1.939340 16.250000 2.116117 +v -2.116117 16.250000 1.939340 +v -1.409010 16.750000 1.585786 +v -1.585786 16.750000 1.409010 +v -1.409010 17.000000 1.585786 +v -1.585786 17.000000 1.409010 +v -1.055456 17.000000 0.878680 +v -0.878680 17.000000 1.055456 +v -0.701903 16.750000 0.878680 +v -0.878680 16.750000 0.701903 +v -0.878680 16.750000 1.055456 +v -1.055456 16.750000 0.878680 +v -0.701903 15.250000 0.878680 +v -0.878680 15.250000 0.701903 +v -0.878680 15.250000 1.055456 +v -1.055456 15.250000 0.878680 +v 0.005204 14.250000 0.171573 +v -0.171573 14.250000 -0.005204 +v -0.171573 14.250000 0.348350 +v -0.348350 14.250000 0.171573 +vn 0.5000 -0.7071 -0.5000 +vn -0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.7039 0.0948 0.7039 +vn 0.7039 -0.0948 -0.7039 +vn -0.5000 0.7071 0.5000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 0.7071 -0.5000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.5000 -0.7071 0.5000 +s off +f 418//23 413//23 414//23 +f 410//24 416//24 414//24 +f 409//25 415//25 411//25 +f 411//26 416//26 412//26 +f 410//27 413//27 409//27 +f 421//24 424//24 426//24 +f 420//24 414//24 416//24 +f 415//28 420//28 416//28 +f 417//25 415//25 413//25 +f 420//29 422//29 421//29 +f 418//30 425//30 417//30 +f 425//25 422//25 419//25 +f 423//31 421//31 422//31 +f 428//24 434//24 430//24 +f 424//24 430//24 426//24 +f 423//32 428//32 424//32 +f 425//25 427//25 423//25 +f 426//33 429//33 425//33 +f 427//31 432//31 428//31 +f 427//25 433//25 431//25 +f 430//34 433//34 429//34 +f 418//23 417//23 413//23 +f 410//24 412//24 416//24 +f 409//25 413//25 415//25 +f 411//26 415//26 416//26 +f 410//27 414//27 413//27 +f 426//24 418//24 420//24 +f 420//24 421//24 426//24 +f 420//24 418//24 414//24 +f 415//28 419//28 420//28 +f 417//25 419//25 415//25 +f 420//29 419//29 422//29 +f 418//30 426//30 425//30 +f 419//25 417//25 425//25 +f 425//25 423//25 422//25 +f 423//31 424//31 421//31 +f 428//24 432//24 434//24 +f 424//24 428//24 430//24 +f 423//32 427//32 428//32 +f 425//25 429//25 427//25 +f 426//33 430//33 429//33 +f 427//31 431//31 432//31 +f 427//25 429//25 433//25 +f 430//34 434//34 433//34 +o Atlas_Pivot +v 0.750000 1.500000 -3.750000 +v 1.250000 1.500000 -3.750000 +v 0.750000 1.500000 -4.250000 +v 1.250000 1.500000 -4.250000 +v -1.250000 1.500000 -3.750000 +v -0.750000 1.500000 -3.750000 +v -1.250000 1.500000 -4.250000 +v -0.750000 1.500000 -4.250000 +v 0.750000 2.000000 -2.250000 +v 1.250000 2.000000 -2.250000 +v 0.750000 2.000000 -2.750000 +v 1.250000 2.000000 -2.750000 +v -1.250000 2.000000 -2.250000 +v -0.750000 2.000000 -2.250000 +v -1.250000 2.000000 -2.750000 +v -0.750000 2.000000 -2.750000 +v 0.750000 3.500000 -4.250000 +v 0.750000 3.500000 -3.750000 +v 1.250000 3.500000 -3.750000 +v 1.250000 3.500000 -4.250000 +v -1.250000 3.500000 -4.250000 +v -1.250000 3.500000 -3.750000 +v -0.750000 3.500000 -3.750000 +v -0.750000 3.500000 -4.250000 +v 0.750000 3.500000 -2.750000 +v 0.750000 3.500000 -2.250000 +v 1.250000 3.500000 -2.250000 +v 1.250000 3.500000 -2.750000 +v -1.250000 3.500000 -2.750000 +v -1.250000 3.500000 -2.250000 +v -0.750000 3.500000 -2.250000 +v -0.750000 3.500000 -2.750000 +v 0.812500 3.500000 -3.812500 +v 1.187500 3.500000 -3.812500 +v 0.812500 3.500000 -4.187500 +v 1.187500 3.500000 -4.187500 +v 0.812500 4.500000 -3.812500 +v 1.187500 4.500000 -3.812500 +v 0.812500 4.500000 -4.187500 +v 1.187500 4.500000 -4.187500 +v 0.812500 3.500000 -2.312500 +v 1.187500 3.500000 -2.312500 +v 0.812500 3.500000 -2.687500 +v 1.187500 3.500000 -2.687500 +v 0.812500 4.500000 -2.312500 +v 1.187500 4.500000 -2.312500 +v 0.812500 4.500000 -2.687500 +v 1.187500 4.500000 -2.687500 +v -1.187500 3.500000 -3.812500 +v -0.812500 3.500000 -3.812500 +v -1.187500 3.500000 -4.187500 +v -0.812500 3.500000 -4.187500 +v -1.187500 4.500000 -3.812500 +v -0.812500 4.500000 -3.812500 +v -1.187500 4.500000 -4.187500 +v -0.812500 4.500000 -4.187500 +v -1.187500 3.500000 -2.312500 +v -0.812500 3.500000 -2.312500 +v -1.187500 3.500000 -2.687500 +v -0.812500 3.500000 -2.687500 +v -1.187500 4.500000 -2.312500 +v -0.812500 4.500000 -2.312500 +v -1.187500 4.500000 -2.687500 +v -0.812500 4.500000 -2.687500 +v 1.000000 3.000000 -2.750000 +v 1.000000 2.500000 -2.750000 +v 1.000000 3.000000 -3.750000 +v 1.000000 2.500000 -3.750000 +v -1.000000 3.000000 -2.750000 +v -1.000000 2.500000 -2.750000 +v -1.000000 3.000000 -3.750000 +v -1.000000 2.500000 -3.750000 +v 0.750000 3.000000 -4.250000 +v 0.750000 2.500000 -4.250000 +v -0.750000 3.000000 -4.250000 +v -0.750000 2.500000 -4.250000 +v 0.750000 3.000000 -2.250000 +v 0.750000 2.500000 -2.250000 +v -0.750000 3.000000 -2.250000 +v -0.750000 2.500000 -2.250000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +s off +f 474//35 468//35 470//35 +f 472//36 467//36 468//36 +f 445//37 444//37 443//37 +f 449//37 448//37 447//37 +f 453//38 451//38 452//38 +f 457//38 455//38 456//38 +f 440//36 456//36 439//36 +f 437//39 454//39 438//39 +f 436//36 452//36 435//36 +f 442//35 457//35 440//35 +f 439//40 455//40 441//40 +f 438//35 453//35 436//35 +f 435//40 451//40 437//40 +f 441//39 458//39 442//39 +f 461//38 459//38 460//38 +f 465//38 463//38 464//38 +f 450//35 465//35 448//35 +f 447//40 463//40 449//40 +f 446//35 461//35 444//35 +f 443//40 459//40 445//40 +f 449//39 466//39 450//39 +f 448//36 464//36 447//36 +f 445//39 462//39 446//39 +f 444//36 460//36 443//36 +f 471//40 469//40 467//40 +f 473//39 470//39 469//39 +f 482//35 476//35 478//35 +f 480//36 475//36 476//36 +f 479//40 477//40 475//40 +f 481//39 478//39 477//39 +f 490//35 484//35 486//35 +f 488//36 483//36 484//36 +f 487//40 485//40 483//40 +f 489//39 486//39 485//39 +f 498//35 492//35 494//35 +f 496//36 491//36 492//36 +f 495//40 493//40 491//40 +f 497//39 494//39 493//39 +f 500//35 501//35 499//35 +f 505//40 504//40 503//40 +f 508//39 509//39 507//39 +f 513//36 512//36 511//36 +f 474//35 472//35 468//35 +f 472//36 471//36 467//36 +f 445//37 446//37 444//37 +f 449//37 450//37 448//37 +f 453//38 454//38 451//38 +f 457//38 458//38 455//38 +f 440//36 457//36 456//36 +f 437//39 451//39 454//39 +f 436//36 453//36 452//36 +f 442//35 458//35 457//35 +f 439//40 456//40 455//40 +f 438//35 454//35 453//35 +f 435//40 452//40 451//40 +f 441//39 455//39 458//39 +f 461//38 462//38 459//38 +f 465//38 466//38 463//38 +f 450//35 466//35 465//35 +f 447//40 464//40 463//40 +f 446//35 462//35 461//35 +f 443//40 460//40 459//40 +f 449//39 463//39 466//39 +f 448//36 465//36 464//36 +f 445//39 459//39 462//39 +f 444//36 461//36 460//36 +f 471//40 473//40 469//40 +f 473//39 474//39 470//39 +f 482//35 480//35 476//35 +f 480//36 479//36 475//36 +f 479//40 481//40 477//40 +f 481//39 482//39 478//39 +f 490//35 488//35 484//35 +f 488//36 487//36 483//36 +f 487//40 489//40 485//40 +f 489//39 490//39 486//39 +f 498//35 496//35 492//35 +f 496//36 495//36 491//36 +f 495//40 497//40 493//40 +f 497//39 498//39 494//39 +f 500//35 502//35 501//35 +f 505//40 506//40 504//40 +f 508//39 510//39 509//39 +f 513//36 514//36 512//36 +o Atlas_Erector +v 0.750000 3.500000 -4.250000 +v 0.750000 3.500000 -3.750000 +v 1.250000 3.500000 -3.750000 +v 1.250000 3.500000 -4.250000 +v -1.250000 3.500000 -4.250000 +v -1.250000 3.500000 -3.750000 +v -0.750000 3.500000 -3.750000 +v -0.750000 3.500000 -4.250000 +v 0.750000 3.500000 -2.750000 +v 0.750000 3.500000 -2.250000 +v 1.250000 3.500000 -2.250000 +v 1.250000 3.500000 -2.750000 +v -1.250000 3.500000 -2.750000 +v -1.250000 3.500000 -2.250000 +v -0.750000 3.500000 -2.250000 +v -0.750000 3.500000 -2.750000 +v 0.750000 14.750000 -4.250000 +v 0.750000 14.750000 -3.750000 +v 1.250000 14.750000 -3.750000 +v 1.250000 14.750000 -4.250000 +v -1.250000 14.750000 -4.250000 +v -1.250000 14.750000 -3.750000 +v -0.750000 14.750000 -3.750000 +v -0.750000 14.750000 -4.250000 +v 0.750000 14.750000 -2.750000 +v 0.750000 14.750000 -2.250000 +v 1.250000 14.750000 -2.250000 +v 1.250000 14.750000 -2.750000 +v -1.250000 14.750000 -2.750000 +v -1.250000 14.750000 -2.250000 +v -0.750000 14.750000 -2.250000 +v -0.750000 14.750000 -2.750000 +v 0.750000 12.750000 -2.750000 +v 0.750000 12.750000 -2.250000 +v -0.750000 12.750000 -2.250000 +v -0.750000 12.750000 -2.750000 +v 0.750000 12.250000 -2.750000 +v 0.750000 12.250000 -2.250000 +v -0.750000 12.250000 -2.250000 +v -0.750000 12.250000 -2.750000 +v 0.750000 12.750000 -1.375000 +v -0.750000 12.750000 -1.375000 +v 0.750000 12.250000 -1.375000 +v -0.750000 12.250000 -1.375000 +v 0.750000 12.750000 -1.125000 +v -0.750000 12.750000 -1.125000 +v 0.750000 12.250000 -1.125000 +v -0.750000 12.250000 -1.125000 +v -1.375000 12.749999 -0.750000 +v -1.375000 12.749999 0.250000 +v -1.375000 12.249999 -0.750000 +v -1.375000 12.249999 0.250000 +v -1.125000 12.749999 -0.750000 +v -1.125000 12.749999 0.250000 +v -1.125000 12.249999 -0.750000 +v -1.125000 12.249999 0.250000 +v 1.375000 12.749999 0.250000 +v 1.375000 12.749999 -0.750000 +v 1.375000 12.249999 0.250000 +v 1.375000 12.249999 -0.750000 +v 1.125000 12.749999 0.250000 +v 1.125000 12.749999 -0.750000 +v 1.125000 12.249999 0.250000 +v 1.125000 12.249999 -0.750000 +v 0.750000 12.750000 -4.250000 +v 0.750000 12.750000 -3.750000 +v -0.750000 12.750000 -3.750000 +v -0.750000 12.750000 -4.250000 +v 0.750000 12.250000 -4.250000 +v 0.750000 12.250000 -3.750000 +v -0.750000 12.250000 -3.750000 +v -0.750000 12.250000 -4.250000 +v 0.187500 12.312500 -1.375000 +v 0.562500 12.312500 -1.375000 +v 0.187500 12.687500 -1.375000 +v 0.562500 12.687500 -1.375000 +v 0.187500 12.312500 -3.750000 +v 0.562500 12.312500 -3.750000 +v 0.187500 12.687500 -3.750000 +v 0.562500 12.687500 -3.750000 +v -0.562500 12.312500 -1.375000 +v -0.187500 12.312500 -1.375000 +v -0.562500 12.687500 -1.375000 +v -0.187500 12.687500 -1.375000 +v -0.562500 12.312500 -3.750000 +v -0.187500 12.312500 -3.750000 +v -0.562500 12.687500 -3.750000 +v -0.187500 12.687500 -3.750000 +v 0.750000 8.750000 -2.750000 +v 0.750000 8.750000 -2.250000 +v -0.750000 8.750000 -2.250000 +v -0.750000 8.750000 -2.750000 +v 0.750000 8.250000 -2.750000 +v 0.750000 8.250000 -2.250000 +v -0.750000 8.250000 -2.250000 +v -0.750000 8.250000 -2.750000 +v 0.750000 8.750000 -1.625000 +v -0.750000 8.750000 -1.625000 +v 0.750000 8.250000 -1.625000 +v -0.750000 8.250000 -1.625000 +v 0.750000 8.750000 -1.375000 +v -0.750000 8.750000 -1.375000 +v 0.750000 8.250000 -1.375000 +v -0.750000 8.250000 -1.375000 +v -1.375000 8.749999 -1.000000 +v -1.375000 8.749999 0.250000 +v -1.375000 8.249999 -1.000000 +v -1.375000 8.249999 0.250000 +v -1.125000 8.749999 -1.000000 +v -1.125000 8.749999 0.250000 +v -1.125000 8.249999 -1.000000 +v -1.125000 8.249999 0.250000 +v 1.375000 8.749999 0.250000 +v 1.375000 8.749999 -1.000000 +v 1.375000 8.249999 0.250000 +v 1.375000 8.249999 -1.000000 +v 1.125000 8.749999 0.250000 +v 1.125000 8.749999 -1.000000 +v 1.125000 8.249999 0.250000 +v 1.125000 8.249999 -1.000000 +v 0.750000 8.750000 -4.250000 +v 0.750000 8.750000 -3.750000 +v -0.750000 8.750000 -3.750000 +v -0.750000 8.750000 -4.250000 +v 0.750000 8.250000 -4.250000 +v 0.750000 8.250000 -3.750000 +v -0.750000 8.250000 -3.750000 +v -0.750000 8.250000 -4.250000 +v 0.187500 8.312500 -1.625000 +v 0.562500 8.312500 -1.625000 +v 0.187500 8.687500 -1.625000 +v 0.562500 8.687500 -1.625000 +v 0.187500 8.312500 -3.750000 +v 0.562500 8.312500 -3.750000 +v 0.187500 8.687500 -3.750000 +v 0.562500 8.687500 -3.750000 +v -0.562500 8.312500 -1.625000 +v -0.187500 8.312500 -1.625000 +v -0.562500 8.687500 -1.625000 +v -0.187500 8.687500 -1.625000 +v -0.562500 8.312500 -3.750000 +v -0.187500 8.312500 -3.750000 +v -0.562500 8.687500 -3.750000 +v -0.187500 8.687500 -3.750000 +v 0.750000 4.750000 -2.750000 +v 0.750000 4.750000 -2.250000 +v -0.750000 4.750000 -2.250000 +v -0.750000 4.750000 -2.750000 +v 0.750000 4.250000 -2.750000 +v 0.750000 4.250000 -2.250000 +v -0.750000 4.250000 -2.250000 +v -0.750000 4.250000 -2.750000 +v 0.750000 4.750000 -1.875000 +v -0.750000 4.750000 -1.875000 +v 0.750000 4.250000 -1.875000 +v -0.750000 4.250000 -1.875000 +v 0.750000 4.750000 -1.625000 +v -0.750000 4.750000 -1.625000 +v 0.750000 4.250000 -1.625000 +v -0.750000 4.250000 -1.625000 +v -1.375000 4.749999 -1.250000 +v -1.375000 4.749999 0.250000 +v -1.375000 4.249999 -1.250000 +v -1.375000 4.249999 0.250000 +v -1.125000 4.749999 -1.250000 +v -1.125000 4.749999 0.250000 +v -1.125000 4.249999 -1.250000 +v -1.125000 4.249999 0.250000 +v 1.375000 4.749999 0.250000 +v 1.375000 4.749999 -1.250000 +v 1.375000 4.249999 0.250000 +v 1.375000 4.249999 -1.250000 +v 1.125000 4.749999 0.250000 +v 1.125000 4.749999 -1.250000 +v 1.125000 4.249999 0.250000 +v 1.125000 4.249999 -1.250000 +v 0.750000 4.750000 -4.250000 +v 0.750000 4.750000 -3.750000 +v -0.750000 4.750000 -3.750000 +v -0.750000 4.750000 -4.250000 +v 0.750000 4.250000 -4.250000 +v 0.750000 4.250000 -3.750000 +v -0.750000 4.250000 -3.750000 +v -0.750000 4.250000 -4.250000 +v 0.187500 4.312500 -1.875000 +v 0.562500 4.312500 -1.875000 +v 0.187500 4.687500 -1.875000 +v 0.562500 4.687500 -1.875000 +v 0.187500 4.312500 -3.750000 +v 0.562500 4.312500 -3.750000 +v 0.187500 4.687500 -3.750000 +v 0.562500 4.687500 -3.750000 +v -0.562500 4.312500 -1.875000 +v -0.187500 4.312500 -1.875000 +v -0.562500 4.687500 -1.875000 +v -0.187500 4.687500 -1.875000 +v -0.562500 4.312500 -3.750000 +v -0.187500 4.312500 -3.750000 +v -0.562500 4.687500 -3.750000 +v -0.187500 4.687500 -3.750000 +v 0.750000 12.250000 -4.062500 +v 0.750000 11.750000 -4.062500 +v -0.750000 10.750000 -4.062500 +v -0.750000 10.250000 -4.062500 +v 0.750000 10.750000 -4.062500 +v 0.750000 10.250000 -4.062500 +v -0.750000 9.250000 -4.062500 +v -0.750000 8.750000 -4.062500 +v 0.750000 10.750000 -3.937500 +v 0.750000 10.250000 -3.937500 +v -0.750000 12.250000 -3.937500 +v -0.750000 11.750000 -3.937500 +v 0.750000 9.250000 -3.937500 +v 0.750000 8.750000 -3.937500 +v -0.750000 10.750000 -3.937500 +v -0.750000 10.250000 -3.937500 +v 0.750000 8.250000 -4.062500 +v 0.750000 7.750000 -4.062500 +v -0.750000 6.750000 -4.062500 +v -0.750000 6.250000 -4.062500 +v 0.750000 6.750000 -4.062500 +v 0.750000 6.250000 -4.062500 +v -0.750000 5.250000 -4.062500 +v -0.750000 4.750000 -4.062500 +v 0.750000 6.750000 -3.937500 +v 0.750000 6.250000 -3.937500 +v -0.750000 8.250000 -3.937500 +v -0.750000 7.750000 -3.937500 +v 0.750000 5.250000 -3.937500 +v 0.750000 4.750000 -3.937500 +v -0.750000 6.750000 -3.937500 +v -0.750000 6.250000 -3.937500 +v 0.750000 12.250000 -2.562500 +v 0.750000 11.750000 -2.562500 +v -0.750000 10.750000 -2.562500 +v -0.750000 10.250000 -2.562500 +v 0.750000 10.750000 -2.562500 +v 0.750000 10.250000 -2.562500 +v -0.750000 9.250000 -2.562500 +v -0.750000 8.750000 -2.562500 +v 0.750000 10.750000 -2.437500 +v 0.750000 10.250000 -2.437500 +v -0.750000 12.250000 -2.437500 +v -0.750000 11.750000 -2.437500 +v 0.750000 9.250000 -2.437500 +v 0.750000 8.750000 -2.437500 +v -0.750000 10.750000 -2.437500 +v -0.750000 10.250000 -2.437500 +v 0.750000 8.250000 -2.562500 +v 0.750000 7.750000 -2.562500 +v -0.750000 6.750000 -2.562500 +v -0.750000 6.250000 -2.562500 +v 0.750000 6.750000 -2.562500 +v 0.750000 6.250000 -2.562500 +v -0.750000 5.250000 -2.562500 +v -0.750000 4.750000 -2.562500 +v 0.750000 6.750000 -2.437500 +v 0.750000 6.250000 -2.437500 +v -0.750000 8.250000 -2.437500 +v -0.750000 7.750000 -2.437500 +v 0.750000 5.250000 -2.437500 +v 0.750000 4.750000 -2.437500 +v -0.750000 6.750000 -2.437500 +v -0.750000 6.250000 -2.437500 +v 0.750000 14.750000 -4.062500 +v 0.750000 14.250000 -4.062500 +v -0.750000 13.250000 -4.062500 +v -0.750000 12.750000 -4.062500 +v 0.750000 13.250000 -3.937500 +v 0.750000 12.750000 -3.937500 +v -0.750000 14.750000 -3.937500 +v -0.750000 14.250000 -3.937500 +v 0.750000 14.750000 -2.562500 +v 0.750000 14.250000 -2.562500 +v -0.750000 13.250000 -2.562500 +v -0.750000 12.750000 -2.562500 +v 0.750000 13.250000 -2.437500 +v 0.750000 12.750000 -2.437500 +v -0.750000 14.750000 -2.437500 +v -0.750000 14.250000 -2.437500 +v 1.062500 14.750000 -2.750000 +v 1.062500 14.250000 -2.750000 +v 1.062500 13.250000 -3.750000 +v 1.062500 12.750000 -3.750000 +v 0.937500 13.250000 -2.750000 +v 0.937500 12.750000 -2.750000 +v 0.937500 14.750000 -3.750000 +v 0.937500 14.250000 -3.750000 +v 1.062500 12.250000 -2.750000 +v 1.062500 11.750000 -2.750000 +v 1.062500 10.750000 -3.750000 +v 1.062500 10.250000 -3.750000 +v 0.937500 10.750000 -2.750000 +v 0.937500 10.250000 -2.750000 +v 0.937500 12.250000 -3.750000 +v 0.937500 11.750000 -3.750000 +v 1.062500 10.750000 -2.750000 +v 1.062500 10.250000 -2.750000 +v 1.062500 9.250000 -3.750000 +v 1.062500 8.750000 -3.750000 +v 0.937500 9.250000 -2.750000 +v 0.937500 8.750000 -2.750000 +v 0.937500 10.750000 -3.750000 +v 0.937500 10.250000 -3.750000 +v 1.062500 8.250000 -2.750000 +v 1.062500 7.750000 -2.750000 +v 1.062500 6.750000 -3.750000 +v 1.062500 6.250000 -3.750000 +v 0.937500 6.750000 -2.750000 +v 0.937500 6.250000 -2.750000 +v 0.937500 8.250000 -3.750000 +v 0.937500 7.750000 -3.750000 +v 1.062500 6.750000 -2.750000 +v 1.062500 6.250000 -2.750000 +v 1.062500 5.250000 -3.750000 +v 1.062500 4.750000 -3.750000 +v 0.937500 5.250000 -2.750000 +v 0.937500 4.750000 -2.750000 +v 0.937500 6.750000 -3.750000 +v 0.937500 6.250000 -3.750000 +v -0.937500 14.750000 -2.750000 +v -0.937500 14.250000 -2.750000 +v -0.937500 13.250000 -3.750000 +v -0.937500 12.750000 -3.750000 +v -1.062500 13.250000 -2.750000 +v -1.062500 12.750000 -2.750000 +v -1.062500 14.750000 -3.750000 +v -1.062500 14.250000 -3.750000 +v -0.937500 12.250000 -2.750000 +v -0.937500 11.750000 -2.750000 +v -0.937500 10.750000 -3.750000 +v -0.937500 10.250000 -3.750000 +v -1.062500 10.750000 -2.750000 +v -1.062500 10.250000 -2.750000 +v -1.062500 12.250000 -3.750000 +v -1.062500 11.750000 -3.750000 +v -0.937500 10.750000 -2.750000 +v -0.937500 10.250000 -2.750000 +v -0.937500 9.250000 -3.750000 +v -0.937500 8.750000 -3.750000 +v -1.062500 9.250000 -2.750000 +v -1.062500 8.750000 -2.750000 +v -1.062500 10.750000 -3.750000 +v -1.062500 10.250000 -3.750000 +v -0.937500 8.250000 -2.750000 +v -0.937500 7.750000 -2.750000 +v -0.937500 6.750000 -3.750000 +v -0.937500 6.250000 -3.750000 +v -1.062500 6.750000 -2.750000 +v -1.062500 6.250000 -2.750000 +v -1.062500 8.250000 -3.750000 +v -1.062500 7.750000 -3.750000 +v -0.937500 6.750000 -2.750000 +v -0.937500 6.250000 -2.750000 +v -0.937500 5.250000 -3.750000 +v -0.937500 4.750000 -3.750000 +v -1.062500 5.250000 -2.750000 +v -1.062500 4.750000 -2.750000 +v -1.062500 6.750000 -3.750000 +v -1.062500 6.250000 -3.750000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.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 +s off +f 515//41 517//41 516//41 +f 519//41 521//41 520//41 +f 523//41 525//41 524//41 +f 527//41 529//41 528//41 +f 533//42 531//42 532//42 +f 537//42 535//42 536//42 +f 541//42 539//42 540//42 +f 545//42 543//42 544//42 +f 525//43 540//43 524//43 +f 518//44 533//44 517//44 +f 526//44 541//44 525//44 +f 515//45 534//45 518//45 +f 523//45 542//45 526//45 +f 520//46 535//46 519//46 +f 528//46 543//46 527//46 +f 521//43 536//43 520//43 +f 529//43 544//43 528//43 +f 522//44 537//44 521//44 +f 530//44 545//44 529//44 +f 519//45 538//45 522//45 +f 516//46 531//46 515//46 +f 527//45 546//45 530//45 +f 524//46 539//46 523//46 +f 517//43 532//43 516//43 +f 547//42 549//42 548//42 +f 553//41 551//41 552//41 +f 547//45 554//45 550//45 +f 548//44 551//44 547//44 +f 549//43 552//43 548//43 +f 550//46 553//46 549//46 +f 557//45 556//45 555//45 +f 560//43 561//43 559//43 +f 557//41 578//41 561//41 +f 557//41 562//41 558//41 +f 557//47 572//47 574//47 +f 556//42 559//42 555//42 +f 565//46 564//46 563//46 +f 568//44 569//44 567//44 +f 566//43 568//43 564//43 +f 565//41 570//41 566//41 +f 559//42 572//42 555//42 +f 564//42 567//42 563//42 +f 573//44 572//44 571//44 +f 576//46 577//46 575//46 +f 561//48 576//48 559//48 +f 573//41 578//41 574//41 +f 571//43 577//43 573//43 +f 572//42 575//42 571//42 +f 562//49 567//49 569//49 +f 556//42 567//42 560//42 +f 558//50 563//50 556//50 +f 569//41 558//41 562//41 +f 579//42 581//42 580//42 +f 585//41 583//41 584//41 +f 579//45 586//45 582//45 +f 580//44 583//44 579//44 +f 581//43 584//43 580//43 +f 582//46 585//46 581//46 +f 588//44 594//44 590//44 +f 589//46 591//46 587//46 +f 590//42 593//42 589//42 +f 587//41 592//41 588//41 +f 596//44 602//44 598//44 +f 597//46 599//46 595//46 +f 598//42 601//42 597//42 +f 595//41 600//41 596//41 +f 603//42 605//42 604//42 +f 609//41 607//41 608//41 +f 603//45 610//45 606//45 +f 604//44 607//44 603//44 +f 605//43 608//43 604//43 +f 606//46 609//46 605//46 +f 613//45 612//45 611//45 +f 616//43 617//43 615//43 +f 613//41 634//41 617//41 +f 613//41 618//41 614//41 +f 613//47 628//47 630//47 +f 612//42 615//42 611//42 +f 621//46 620//46 619//46 +f 624//44 625//44 623//44 +f 622//43 624//43 620//43 +f 621//41 626//41 622//41 +f 615//42 628//42 611//42 +f 620//42 623//42 619//42 +f 629//44 628//44 627//44 +f 632//46 633//46 631//46 +f 617//48 632//48 615//48 +f 629//41 634//41 630//41 +f 627//43 633//43 629//43 +f 628//42 631//42 627//42 +f 618//49 623//49 625//49 +f 612//42 623//42 616//42 +f 614//50 619//50 612//50 +f 625//41 614//41 618//41 +f 635//42 637//42 636//42 +f 641//41 639//41 640//41 +f 635//45 642//45 638//45 +f 636//44 639//44 635//44 +f 637//43 640//43 636//43 +f 638//46 641//46 637//46 +f 644//44 650//44 646//44 +f 645//46 647//46 643//46 +f 646//42 649//42 645//42 +f 643//41 648//41 644//41 +f 652//44 658//44 654//44 +f 653//46 655//46 651//46 +f 654//42 657//42 653//42 +f 651//41 656//41 652//41 +f 659//42 661//42 660//42 +f 665//41 663//41 664//41 +f 659//45 666//45 662//45 +f 660//44 663//44 659//44 +f 661//43 664//43 660//43 +f 662//46 665//46 661//46 +f 669//45 668//45 667//45 +f 672//43 673//43 671//43 +f 669//41 690//41 673//41 +f 669//41 674//41 670//41 +f 669//47 684//47 686//47 +f 668//42 671//42 667//42 +f 677//46 676//46 675//46 +f 680//44 681//44 679//44 +f 678//43 680//43 676//43 +f 677//41 682//41 678//41 +f 671//42 684//42 667//42 +f 676//42 679//42 675//42 +f 685//44 684//44 683//44 +f 688//46 689//46 687//46 +f 673//48 688//48 671//48 +f 685//41 690//41 686//41 +f 683//43 689//43 685//43 +f 684//42 687//42 683//42 +f 674//49 679//49 681//49 +f 668//42 679//42 672//42 +f 670//50 675//50 668//50 +f 681//41 670//41 674//41 +f 691//42 693//42 692//42 +f 697//41 695//41 696//41 +f 691//45 698//45 694//45 +f 692//44 695//44 691//44 +f 693//43 696//43 692//43 +f 694//46 697//46 693//46 +f 700//44 706//44 702//44 +f 701//46 703//46 699//46 +f 702//42 705//42 701//42 +f 699//41 704//41 700//41 +f 708//44 714//44 710//44 +f 709//46 711//46 707//46 +f 710//42 713//42 709//42 +f 707//41 712//41 708//41 +f 716//45 717//45 715//45 +f 720//45 721//45 719//45 +f 723//45 726//45 725//45 +f 727//45 730//45 729//45 +f 732//45 733//45 731//45 +f 736//45 737//45 735//45 +f 739//45 742//45 741//45 +f 743//45 746//45 745//45 +f 749//43 748//43 747//43 +f 753//43 752//43 751//43 +f 755//43 758//43 756//43 +f 759//43 762//43 760//43 +f 765//43 764//43 763//43 +f 769//43 768//43 767//43 +f 771//43 774//43 772//43 +f 775//43 778//43 776//43 +f 780//45 781//45 779//45 +f 783//45 786//45 785//45 +f 789//43 788//43 787//43 +f 791//43 794//43 792//43 +f 796//44 797//44 795//44 +f 799//44 802//44 801//44 +f 804//44 805//44 803//44 +f 807//44 810//44 809//44 +f 812//44 813//44 811//44 +f 815//44 818//44 817//44 +f 820//44 821//44 819//44 +f 823//44 826//44 825//44 +f 828//44 829//44 827//44 +f 831//44 834//44 833//44 +f 837//46 836//46 835//46 +f 839//46 842//46 840//46 +f 845//46 844//46 843//46 +f 847//46 850//46 848//46 +f 853//46 852//46 851//46 +f 855//46 858//46 856//46 +f 861//46 860//46 859//46 +f 863//46 866//46 864//46 +f 869//46 868//46 867//46 +f 871//46 874//46 872//46 +f 515//41 518//41 517//41 +f 519//41 522//41 521//41 +f 523//41 526//41 525//41 +f 527//41 530//41 529//41 +f 533//42 534//42 531//42 +f 537//42 538//42 535//42 +f 541//42 542//42 539//42 +f 545//42 546//42 543//42 +f 525//43 541//43 540//43 +f 518//44 534//44 533//44 +f 526//44 542//44 541//44 +f 515//45 531//45 534//45 +f 523//45 539//45 542//45 +f 520//46 536//46 535//46 +f 528//46 544//46 543//46 +f 521//43 537//43 536//43 +f 529//43 545//43 544//43 +f 522//44 538//44 537//44 +f 530//44 546//44 545//44 +f 519//45 535//45 538//45 +f 516//46 532//46 531//46 +f 527//45 543//45 546//45 +f 524//46 540//46 539//46 +f 517//43 533//43 532//43 +f 547//42 550//42 549//42 +f 553//41 554//41 551//41 +f 547//45 551//45 554//45 +f 548//44 552//44 551//44 +f 549//43 553//43 552//43 +f 550//46 554//46 553//46 +f 557//45 558//45 556//45 +f 560//43 562//43 561//43 +f 557//41 574//41 578//41 +f 557//41 561//41 562//41 +f 557//47 555//47 572//47 +f 556//42 560//42 559//42 +f 565//46 566//46 564//46 +f 568//44 570//44 569//44 +f 566//43 570//43 568//43 +f 565//41 569//41 570//41 +f 559//42 576//42 572//42 +f 564//42 568//42 567//42 +f 573//44 574//44 572//44 +f 576//46 578//46 577//46 +f 561//48 578//48 576//48 +f 573//41 577//41 578//41 +f 571//43 575//43 577//43 +f 572//42 576//42 575//42 +f 562//49 560//49 567//49 +f 556//42 563//42 567//42 +f 558//50 565//50 563//50 +f 569//41 565//41 558//41 +f 579//42 582//42 581//42 +f 585//41 586//41 583//41 +f 579//45 583//45 586//45 +f 580//44 584//44 583//44 +f 581//43 585//43 584//43 +f 582//46 586//46 585//46 +f 588//44 592//44 594//44 +f 589//46 593//46 591//46 +f 590//42 594//42 593//42 +f 587//41 591//41 592//41 +f 596//44 600//44 602//44 +f 597//46 601//46 599//46 +f 598//42 602//42 601//42 +f 595//41 599//41 600//41 +f 603//42 606//42 605//42 +f 609//41 610//41 607//41 +f 603//45 607//45 610//45 +f 604//44 608//44 607//44 +f 605//43 609//43 608//43 +f 606//46 610//46 609//46 +f 613//45 614//45 612//45 +f 616//43 618//43 617//43 +f 613//41 630//41 634//41 +f 613//41 617//41 618//41 +f 613//47 611//47 628//47 +f 612//42 616//42 615//42 +f 621//46 622//46 620//46 +f 624//44 626//44 625//44 +f 622//43 626//43 624//43 +f 621//41 625//41 626//41 +f 615//42 632//42 628//42 +f 620//42 624//42 623//42 +f 629//44 630//44 628//44 +f 632//46 634//46 633//46 +f 617//48 634//48 632//48 +f 629//41 633//41 634//41 +f 627//43 631//43 633//43 +f 628//42 632//42 631//42 +f 618//49 616//49 623//49 +f 612//42 619//42 623//42 +f 614//50 621//50 619//50 +f 625//41 621//41 614//41 +f 635//42 638//42 637//42 +f 641//41 642//41 639//41 +f 635//45 639//45 642//45 +f 636//44 640//44 639//44 +f 637//43 641//43 640//43 +f 638//46 642//46 641//46 +f 644//44 648//44 650//44 +f 645//46 649//46 647//46 +f 646//42 650//42 649//42 +f 643//41 647//41 648//41 +f 652//44 656//44 658//44 +f 653//46 657//46 655//46 +f 654//42 658//42 657//42 +f 651//41 655//41 656//41 +f 659//42 662//42 661//42 +f 665//41 666//41 663//41 +f 659//45 663//45 666//45 +f 660//44 664//44 663//44 +f 661//43 665//43 664//43 +f 662//46 666//46 665//46 +f 669//45 670//45 668//45 +f 672//43 674//43 673//43 +f 669//41 686//41 690//41 +f 669//41 673//41 674//41 +f 669//47 667//47 684//47 +f 668//42 672//42 671//42 +f 677//46 678//46 676//46 +f 680//44 682//44 681//44 +f 678//43 682//43 680//43 +f 677//41 681//41 682//41 +f 671//42 688//42 684//42 +f 676//42 680//42 679//42 +f 685//44 686//44 684//44 +f 688//46 690//46 689//46 +f 673//48 690//48 688//48 +f 685//41 689//41 690//41 +f 683//43 687//43 689//43 +f 684//42 688//42 687//42 +f 674//49 672//49 679//49 +f 668//42 675//42 679//42 +f 670//50 677//50 675//50 +f 681//41 677//41 670//41 +f 691//42 694//42 693//42 +f 697//41 698//41 695//41 +f 691//45 695//45 698//45 +f 692//44 696//44 695//44 +f 693//43 697//43 696//43 +f 694//46 698//46 697//46 +f 700//44 704//44 706//44 +f 701//46 705//46 703//46 +f 702//42 706//42 705//42 +f 699//41 703//41 704//41 +f 708//44 712//44 714//44 +f 709//46 713//46 711//46 +f 710//42 714//42 713//42 +f 707//41 711//41 712//41 +f 716//45 718//45 717//45 +f 720//45 722//45 721//45 +f 723//45 724//45 726//45 +f 727//45 728//45 730//45 +f 732//45 734//45 733//45 +f 736//45 738//45 737//45 +f 739//45 740//45 742//45 +f 743//45 744//45 746//45 +f 749//43 750//43 748//43 +f 753//43 754//43 752//43 +f 755//43 757//43 758//43 +f 759//43 761//43 762//43 +f 765//43 766//43 764//43 +f 769//43 770//43 768//43 +f 771//43 773//43 774//43 +f 775//43 777//43 778//43 +f 780//45 782//45 781//45 +f 783//45 784//45 786//45 +f 789//43 790//43 788//43 +f 791//43 793//43 794//43 +f 796//44 798//44 797//44 +f 799//44 800//44 802//44 +f 804//44 806//44 805//44 +f 807//44 808//44 810//44 +f 812//44 814//44 813//44 +f 815//44 816//44 818//44 +f 820//44 822//44 821//44 +f 823//44 824//44 826//44 +f 828//44 830//44 829//44 +f 831//44 832//44 834//44 +f 837//46 838//46 836//46 +f 839//46 841//46 842//46 +f 845//46 846//46 844//46 +f 847//46 849//46 850//46 +f 853//46 854//46 852//46 +f 855//46 857//46 858//46 +f 861//46 862//46 860//46 +f 863//46 865//46 866//46 +f 869//46 870//46 868//46 +f 871//46 873//46 874//46 +o Atlas_Pad +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v -3.500000 2.000000 3.500000 +v 3.500000 2.000000 3.500000 +v -3.500000 2.000000 -3.500000 +v 3.500000 2.000000 -3.500000 +v -3.500000 1.750000 -3.500000 +v -3.500000 1.750000 3.500000 +v 3.500000 1.750000 3.500000 +v 3.500000 1.750000 -3.500000 +v -3.250000 1.750000 3.250000 +v 3.250000 1.750000 3.250000 +v -3.250000 1.750000 -3.250000 +v 3.250000 1.750000 -3.250000 +v -3.250000 1.000000 -3.250000 +v -3.250000 1.000000 3.250000 +v 3.250000 1.000000 3.250000 +v 3.250000 1.000000 -3.250000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v -2.000000 2.000000 -3.500000 +v 2.000000 2.000000 -3.500000 +v -2.000000 1.000000 -4.500000 +v -2.000000 1.000000 -3.500000 +v 2.000000 1.000000 -3.500000 +v 2.000000 1.000000 -4.500000 +v -2.000000 2.000000 -4.000000 +v -2.000000 1.500000 -4.500000 +v 2.000000 1.500000 -4.500000 +v 2.000000 2.000000 -4.000000 +v -1.500000 1.750000 3.500000 +v -3.250000 1.750000 1.500000 +v -1.500000 1.000000 3.250000 +v -1.500000 1.750000 3.250000 +v -1.500000 2.000000 3.500000 +v -1.500000 2.000000 4.500000 +v -1.500000 1.000000 4.500000 +v -4.500000 1.000000 4.500000 +v -4.500000 2.000000 4.500000 +v -3.250000 1.000000 1.500000 +v -3.500000 1.750000 1.500000 +v -3.500000 2.000000 1.500000 +v -4.500000 2.000000 1.500000 +v -4.500000 1.000000 1.500000 +v -3.500000 2.000000 3.500000 +v -4.500000 2.000000 2.000000 +v -4.000000 2.000000 2.000000 +v -4.500000 2.000000 1.500000 +v -4.000000 2.000000 1.500000 +v -4.500000 2.000000 4.500000 +v -4.000000 2.000000 4.500000 +v -4.500000 2.000000 4.000000 +v -4.000000 2.000000 4.000000 +v -2.000000 2.000000 2.000000 +v -1.500000 2.000000 2.000000 +v -2.000000 2.000000 1.500000 +v -1.500000 2.000000 1.500000 +v -2.000000 2.000000 4.500000 +v -1.500000 2.000000 4.500000 +v -2.000000 2.000000 4.000000 +v -1.500000 2.000000 4.000000 +v -4.500000 4.000000 1.500000 +v -4.500000 4.000000 2.000000 +v -4.000000 4.000000 2.000000 +v -4.000000 4.000000 1.500000 +v -4.500000 4.000000 4.000000 +v -4.500000 4.000000 4.500000 +v -4.000000 4.000000 4.500000 +v -4.000000 4.000000 4.000000 +v -2.000000 4.000000 1.500000 +v -2.000000 4.000000 2.000000 +v -1.500000 4.000000 2.000000 +v -1.500000 4.000000 1.500000 +v -2.000000 4.000000 4.000000 +v -2.000000 4.000000 4.500000 +v -1.500000 4.000000 4.500000 +v -1.500000 4.000000 4.000000 +v -4.500000 4.000000 4.500000 +v -1.500000 4.000000 4.500000 +v -4.500000 4.000000 1.500000 +v -1.500000 4.000000 1.500000 +v -4.500000 4.250000 1.500000 +v -4.500000 4.250000 4.500000 +v -1.500000 4.250000 4.500000 +v -1.500000 4.250000 1.500000 +v -4.000000 2.000000 4.250000 +v -2.000000 2.000000 4.250000 +v -4.000000 4.000000 4.250000 +v -2.000000 4.000000 4.250000 +v -2.000000 4.000000 1.750000 +v -4.000000 4.000000 1.750000 +v -2.000000 2.000000 1.750000 +v -4.000000 2.000000 1.750000 +v -1.750000 2.000000 2.000000 +v -1.750000 2.000000 4.000000 +v -1.750000 4.000000 2.000000 +v -1.750000 4.000000 4.000000 +v -4.250000 4.000000 4.000000 +v -4.250000 4.000000 2.000000 +v -4.250000 2.000000 4.000000 +v -4.250000 2.000000 2.000000 +v -4.500000 4.250000 2.000000 +v -4.000000 4.250000 2.000000 +v -4.500000 4.250000 1.500000 +v -4.000000 4.250000 1.500000 +v -4.500000 4.250000 4.500000 +v -4.000000 4.250000 4.500000 +v -4.500000 4.250000 4.000000 +v -4.000000 4.250000 4.000000 +v -2.000000 4.250000 2.000000 +v -1.500000 4.250000 2.000000 +v -2.000000 4.250000 1.500000 +v -1.500000 4.250000 1.500000 +v -2.000000 4.250000 4.500000 +v -1.500000 4.250000 4.500000 +v -2.000000 4.250000 4.000000 +v -1.500000 4.250000 4.000000 +v -4.500000 6.250000 1.500000 +v -4.500000 6.250000 2.000000 +v -4.000000 6.250000 2.000000 +v -4.000000 6.250000 1.500000 +v -4.500000 6.250000 4.000000 +v -4.500000 6.250000 4.500000 +v -4.000000 6.250000 4.500000 +v -4.000000 6.250000 4.000000 +v -2.000000 6.250000 1.500000 +v -2.000000 6.250000 2.000000 +v -1.500000 6.250000 2.000000 +v -1.500000 6.250000 1.500000 +v -2.000000 6.250000 4.000000 +v -2.000000 6.250000 4.500000 +v -1.500000 6.250000 4.500000 +v -1.500000 6.250000 4.000000 +v -4.500000 6.250000 4.500000 +v -1.500000 6.250000 4.500000 +v -4.500000 6.250000 1.500000 +v -1.500000 6.250000 1.500000 +v -4.500000 6.500000 1.500000 +v -4.500000 6.500000 4.500000 +v -1.500000 6.500000 4.500000 +v -1.500000 6.500000 1.500000 +v -4.000000 4.250000 4.250000 +v -2.000000 4.250000 4.250000 +v -4.000000 6.250000 4.250000 +v -2.000000 6.250000 4.250000 +v -2.000000 6.250000 1.750000 +v -4.000000 6.250000 1.750000 +v -2.000000 4.250000 1.750000 +v -4.000000 4.250000 1.750000 +v -1.750000 4.250000 2.000000 +v -1.750000 4.250000 4.000000 +v -1.750000 6.250000 2.000000 +v -1.750000 6.250000 4.000000 +v -4.250000 6.250000 4.000000 +v -4.250000 6.250000 2.000000 +v -4.250000 4.250000 4.000000 +v -4.250000 4.250000 2.000000 +v -4.500000 6.500000 2.000000 +v -4.000000 6.500000 2.000000 +v -4.500000 6.500000 1.500000 +v -4.000000 6.500000 1.500000 +v -4.500000 6.500000 4.500000 +v -4.000000 6.500000 4.500000 +v -4.500000 6.500000 4.000000 +v -4.000000 6.500000 4.000000 +v -2.000000 6.500000 2.000000 +v -1.500000 6.500000 2.000000 +v -2.000000 6.500000 1.500000 +v -1.500000 6.500000 1.500000 +v -2.000000 6.500000 4.500000 +v -1.500000 6.500000 4.500000 +v -2.000000 6.500000 4.000000 +v -1.500000 6.500000 4.000000 +v -4.500000 8.500000 1.500000 +v -4.500000 8.500000 2.000000 +v -4.000000 8.500000 2.000000 +v -4.000000 8.500000 1.500000 +v -4.500000 8.500000 4.000000 +v -4.500000 8.500000 4.500000 +v -4.000000 8.500000 4.500000 +v -4.000000 8.500000 4.000000 +v -2.000000 8.500000 1.500000 +v -2.000000 8.500000 2.000000 +v -1.500000 8.500000 2.000000 +v -1.500000 8.500000 1.500000 +v -2.000000 8.500000 4.000000 +v -2.000000 8.500000 4.500000 +v -1.500000 8.500000 4.500000 +v -1.500000 8.500000 4.000000 +v -4.500000 8.500000 4.500000 +v -1.500000 8.500000 4.500000 +v -4.500000 8.500000 1.500000 +v -1.500000 8.500000 1.500000 +v -4.500000 8.750000 1.500000 +v -4.500000 8.750000 4.500000 +v -1.500000 8.750000 4.500000 +v -1.500000 8.750000 1.500000 +v -4.000000 6.500000 4.250000 +v -2.000000 6.500000 4.250000 +v -4.000000 8.500000 4.250000 +v -2.000000 8.500000 4.250000 +v -2.000000 8.500000 1.750000 +v -4.000000 8.500000 1.750000 +v -2.000000 6.500000 1.750000 +v -4.000000 6.500000 1.750000 +v -1.750000 6.500000 2.000000 +v -1.750000 6.500000 4.000000 +v -1.750000 8.500000 2.000000 +v -1.750000 8.500000 4.000000 +v -4.250000 8.500000 4.000000 +v -4.250000 8.500000 2.000000 +v -4.250000 6.500000 4.000000 +v -4.250000 6.500000 2.000000 +v -4.500000 8.750000 2.000000 +v -4.000000 8.750000 2.000000 +v -4.500000 8.750000 1.500000 +v -4.000000 8.750000 1.500000 +v -4.500000 8.750000 4.500000 +v -4.000000 8.750000 4.500000 +v -4.500000 8.750000 4.000000 +v -4.000000 8.750000 4.000000 +v -2.000000 8.750000 2.000000 +v -1.500000 8.750000 2.000000 +v -2.000000 8.750000 1.500000 +v -1.500000 8.750000 1.500000 +v -2.000000 8.750000 4.500000 +v -1.500000 8.750000 4.500000 +v -2.000000 8.750000 4.000000 +v -1.500000 8.750000 4.000000 +v -4.500000 10.750000 1.500000 +v -4.500000 10.750000 2.000000 +v -4.000000 10.750000 2.000000 +v -4.000000 10.750000 1.500000 +v -4.500000 10.750000 4.000000 +v -4.500000 10.750000 4.500000 +v -4.000000 10.750000 4.500000 +v -4.000000 10.750000 4.000000 +v -2.000000 10.750000 1.500000 +v -2.000000 10.750000 2.000000 +v -1.500000 10.750000 2.000000 +v -1.500000 10.750000 1.500000 +v -2.000000 10.750000 4.000000 +v -2.000000 10.750000 4.500000 +v -1.500000 10.750000 4.500000 +v -1.500000 10.750000 4.000000 +v -4.500000 10.750000 4.500000 +v -1.500000 10.750000 4.500000 +v -4.500000 10.750000 1.500000 +v -1.500000 10.750000 1.500000 +v -4.500000 11.000000 1.500000 +v -4.500000 11.000000 4.500000 +v -1.500000 11.000000 4.500000 +v -1.500000 11.000000 1.500000 +v -4.000000 8.750000 4.250000 +v -2.000000 8.750000 4.250000 +v -4.000000 10.750000 4.250000 +v -2.000000 10.750000 4.250000 +v -2.000000 10.750000 1.750000 +v -4.000000 10.750000 1.750000 +v -2.000000 8.750000 1.750000 +v -4.000000 8.750000 1.750000 +v -1.750000 8.750000 2.000000 +v -1.750000 8.750000 4.000000 +v -1.750000 10.750000 2.000000 +v -1.750000 10.750000 4.000000 +v -4.250000 10.750000 4.000000 +v -4.250000 10.750000 2.000000 +v -4.250000 8.750000 4.000000 +v -4.250000 8.750000 2.000000 +v -3.750000 15.250000 4.625000 +v -4.625000 15.250000 3.750000 +v -3.187500 13.250000 3.750000 +v -3.750000 13.250000 3.187500 +v -3.750000 15.250000 3.187500 +v -3.187500 15.250000 3.750000 +v -3.750000 15.500000 4.625000 +v -4.625000 15.500000 3.750000 +v -4.625000 15.250000 3.750000 +v -3.750000 15.250000 4.625000 +v -2.250000 15.500000 1.375000 +v -2.250000 15.250000 1.375000 +v -1.375000 15.500000 2.250000 +v -1.375000 15.250000 2.250000 +v -3.375000 15.500000 1.750000 +v -2.625000 15.500000 1.750000 +v -1.750000 15.500000 2.625000 +v -1.750000 15.500000 3.375000 +v -2.625000 15.500000 4.250000 +v -3.375000 15.500000 4.250000 +v -4.250000 15.500000 3.375000 +v -4.250000 15.500000 2.625000 +v -4.250000 15.250000 2.625000 +v -4.250000 15.250000 3.375000 +v -1.750000 15.250000 2.625000 +v -1.750000 15.250000 3.375000 +v -2.625000 15.250000 1.750000 +v -3.375000 15.250000 1.750000 +v -2.625000 15.250000 4.250000 +v -3.375000 15.250000 4.250000 +v -3.187500 2.000000 2.437500 +v -2.812500 2.000000 2.437500 +v -3.187500 2.000000 2.062500 +v -2.812500 2.000000 2.062500 +v -3.187500 2.000000 3.937500 +v -2.812500 2.000000 3.937500 +v -3.187500 2.000000 3.562500 +v -2.812500 2.000000 3.562500 +v -3.562500 2.000000 3.187500 +v -3.562500 2.000000 2.812500 +v -3.937500 2.000000 3.187500 +v -3.937500 2.000000 2.812500 +v -2.062500 2.000000 3.187500 +v -2.062500 2.000000 2.812500 +v -2.437500 2.000000 3.187500 +v -2.437500 2.000000 2.812500 +v -3.187500 17.500000 3.562500 +v -2.812500 17.500000 3.562500 +v -2.812500 17.500000 3.937500 +v -3.187500 17.500000 3.937500 +v -3.187500 17.500000 2.062500 +v -2.812500 17.500000 2.062500 +v -2.812500 17.500000 2.437500 +v -3.187500 17.500000 2.437500 +v -3.187500 2.000000 2.250000 +v -2.812500 2.000000 2.250000 +v -3.187500 2.000000 3.750000 +v -2.812500 2.000000 3.750000 +v -3.750000 2.000000 3.187500 +v -3.750000 2.000000 2.812500 +v -2.250000 2.000000 3.187500 +v -2.250000 2.000000 2.812500 +v -3.562500 17.500000 3.187500 +v -3.562500 17.500000 2.812500 +v -3.937500 17.500000 2.812500 +v -3.937500 17.500000 3.187500 +v -2.062500 17.500000 3.187500 +v -2.062500 17.500000 2.812500 +v -2.437500 17.500000 2.812500 +v -2.437500 17.500000 3.187500 +v -3.187500 17.500000 2.250000 +v -2.812500 17.500000 2.250000 +v -3.187500 17.500000 3.750000 +v -2.812500 17.500000 3.750000 +v -3.750000 17.500000 3.187500 +v -3.750000 17.500000 2.812500 +v -2.250000 17.500000 3.187500 +v -2.250000 17.500000 2.812500 +v -3.375000 13.000000 4.250000 +v -2.625000 13.000000 4.250000 +v -3.375000 13.000000 1.750000 +v -2.625000 13.000000 1.750000 +v -1.750000 13.000000 3.375000 +v -1.750000 13.000000 2.625000 +v -4.250000 13.000000 3.375000 +v -4.250000 13.000000 2.625000 +v -4.250000 13.250000 2.625000 +v -4.250000 13.250000 3.375000 +v -3.375000 13.250000 4.250000 +v -2.625000 13.250000 4.250000 +v -1.750000 13.250000 3.375000 +v -1.750000 13.250000 2.625000 +v -2.625000 13.250000 1.750000 +v -3.375000 13.250000 1.750000 +v -4.250000 17.500000 2.625000 +v -4.250000 17.500000 3.375000 +v -3.375000 17.500000 4.250000 +v -2.625000 17.500000 4.250000 +v -1.750000 17.500000 3.375000 +v -1.750000 17.500000 2.625000 +v -2.625000 17.500000 1.750000 +v -3.375000 17.500000 1.750000 +v -4.250000 17.750000 2.625000 +v -4.250000 17.750000 3.375000 +v -3.375000 17.750000 4.250000 +v -2.625000 17.750000 4.250000 +v -1.750000 17.750000 3.375000 +v -1.750000 17.750000 2.625000 +v -2.625000 17.750000 1.750000 +v -3.375000 17.750000 1.750000 +v -1.375000 13.000000 2.250000 +v -1.375000 13.250000 2.250000 +v -2.250000 13.000000 1.375000 +v -2.250000 13.250000 1.375000 +v -3.750000 13.000000 4.625000 +v -4.625000 13.000000 3.750000 +v -4.625000 13.250000 3.750000 +v -3.750000 13.250000 4.625000 +v 1.375000 4.000000 0.250000 +v 1.375000 3.000000 0.250000 +v 1.375000 4.000000 -0.250000 +v 1.375000 3.000000 -0.250000 +v 1.125000 4.000000 -0.250000 +v 1.125000 4.000000 0.250000 +v 1.125000 3.000000 0.250000 +v 1.125000 3.000000 -0.250000 +v 2.500000 2.000000 0.250000 +v 3.500000 2.000000 0.250000 +v 2.500000 2.000000 -0.250000 +v 3.500000 2.000000 -0.250000 +v 2.500000 2.250000 -0.250000 +v 2.500000 2.250000 0.250000 +v 3.500000 2.250000 0.250000 +v 3.500000 2.250000 -0.250000 +v 2.919652 2.029244 0.125000 +v 3.080348 2.220756 0.125000 +v 2.919652 2.029244 -0.125000 +v 3.080348 2.220756 -0.125000 +v 2.125000 2.000000 0.375000 +v 1.875000 2.000000 0.375000 +v 2.125000 2.000000 0.625000 +v 1.875000 2.000000 0.625000 +v 1.196051 3.475517 -0.125000 +v 1.196051 3.475517 0.125000 +v 1.356748 3.667028 0.125000 +v 1.356748 3.667028 -0.125000 +v 1.875000 3.000000 0.125000 +v 2.125000 3.000000 0.125000 +v 2.125000 3.000000 -0.125000 +v 1.875000 3.000000 -0.125000 +v 1.875000 2.000000 -0.375000 +v 2.125000 2.000000 -0.375000 +v 1.875000 2.000000 -0.625000 +v 2.125000 2.000000 -0.625000 +v 1.875000 3.000000 -0.125000 +v 1.875000 3.000000 0.125000 +v 2.125000 3.000000 0.125000 +v 2.125000 3.000000 -0.125000 +v 1.149048 4.000000 -0.795495 +v 1.149048 3.000000 -0.795495 +v 0.795495 4.000000 -1.149048 +v 0.795495 3.000000 -1.149048 +v 0.618718 4.000000 -0.972272 +v 0.972272 4.000000 -0.618718 +v 0.972272 3.000000 -0.618718 +v 0.618718 3.000000 -0.972272 +v 1.944544 2.000000 -1.590990 +v 2.651650 2.000000 -2.298097 +v 1.590990 2.000000 -1.944544 +v 2.298097 2.000000 -2.651650 +v 1.590990 2.250000 -1.944544 +v 1.944544 2.250000 -1.590990 +v 2.651650 2.250000 -2.298097 +v 2.298097 2.250000 -2.651650 +v 2.152894 2.029244 -1.976117 +v 2.266524 2.220756 -2.089747 +v 1.976117 2.029244 -2.152894 +v 2.089747 2.220756 -2.266524 +v 1.767767 2.000000 -1.237437 +v 1.590990 2.000000 -1.060660 +v 1.944544 2.000000 -1.060660 +v 1.767767 2.000000 -0.883883 +v 0.757348 3.475517 -0.934124 +v 0.934124 3.475517 -0.757348 +v 1.047754 3.667028 -0.870978 +v 0.870978 3.667028 -1.047754 +v 1.414214 3.000000 -1.237437 +v 1.590990 3.000000 -1.414214 +v 1.414214 3.000000 -1.590990 +v 1.237437 3.000000 -1.414214 +v 1.060660 2.000000 -1.590990 +v 1.237437 2.000000 -1.767767 +v 0.883883 2.000000 -1.767767 +v 1.060660 2.000000 -1.944544 +v 1.237437 3.000000 -1.414214 +v 1.414214 3.000000 -1.237437 +v 1.590990 3.000000 -1.414214 +v 1.414214 3.000000 -1.590990 +v 0.795495 4.000000 1.149048 +v 0.795495 3.000000 1.149048 +v 1.149048 4.000000 0.795495 +v 1.149048 3.000000 0.795495 +v 0.972272 4.000000 0.618719 +v 0.618718 4.000000 0.972272 +v 0.618718 3.000000 0.972272 +v 0.972272 3.000000 0.618719 +v 1.590990 2.000000 1.944544 +v 2.298097 2.000000 2.651650 +v 1.944543 2.000000 1.590990 +v 2.651650 2.000000 2.298097 +v 1.944543 2.250000 1.590990 +v 1.590990 2.250000 1.944544 +v 2.298097 2.250000 2.651650 +v 2.651650 2.250000 2.298097 +v 1.976117 2.029244 2.152894 +v 2.089747 2.220755 2.266524 +v 2.152894 2.029244 1.976117 +v 2.266524 2.220755 2.089747 +v 1.237437 2.000000 1.767767 +v 1.060660 2.000000 1.590990 +v 1.060660 2.000000 1.944544 +v 0.883883 2.000000 1.767767 +v 0.934124 3.475517 0.757348 +v 0.757348 3.475517 0.934125 +v 0.870978 3.667028 1.047755 +v 1.047754 3.667028 0.870978 +v 1.237437 3.000000 1.414214 +v 1.414213 3.000000 1.590990 +v 1.590990 3.000000 1.414214 +v 1.414214 3.000000 1.237437 +v 1.590990 2.000000 1.060660 +v 1.767767 2.000000 1.237437 +v 1.767767 2.000000 0.883883 +v 1.944544 2.000000 1.060660 +v 1.414214 3.000000 1.237437 +v 1.237437 3.000000 1.414214 +v 1.414213 3.000000 1.590990 +v 1.590990 3.000000 1.414214 +v -0.795495 4.000000 -1.149048 +v -0.795495 3.000000 -1.149048 +v -1.149049 4.000000 -0.795495 +v -1.149049 3.000000 -0.795495 +v -0.972272 4.000000 -0.618719 +v -0.618718 4.000000 -0.972272 +v -0.618718 3.000000 -0.972272 +v -0.972272 3.000000 -0.618719 +v -1.590990 2.000000 -1.944544 +v -2.298097 2.000000 -2.651650 +v -1.944544 2.000000 -1.590990 +v -2.651650 2.000000 -2.298097 +v -1.944544 2.250000 -1.590990 +v -1.590990 2.250000 -1.944544 +v -2.298097 2.250000 -2.651650 +v -2.651650 2.250000 -2.298097 +v -1.976117 2.029244 -2.152894 +v -2.089747 2.220755 -2.266523 +v -2.152894 2.029244 -1.976117 +v -2.266524 2.220755 -2.089746 +v -1.237437 2.000000 -1.767767 +v -1.060660 2.000000 -1.590990 +v -1.060660 2.000000 -1.944544 +v -0.883884 2.000000 -1.767767 +v -0.934124 3.475517 -0.757348 +v -0.757348 3.475517 -0.934124 +v -0.870978 3.667028 -1.047755 +v -1.047755 3.667028 -0.870978 +v -1.237437 3.000000 -1.414213 +v -1.414213 3.000000 -1.590990 +v -1.590990 3.000000 -1.414213 +v -1.414214 3.000000 -1.237437 +v -1.590990 2.000000 -1.060660 +v -1.767767 2.000000 -1.237437 +v -1.767767 2.000000 -0.883883 +v -1.944544 2.000000 -1.060660 +v -1.414214 3.000000 -1.237437 +v -1.237437 3.000000 -1.414213 +v -1.414213 3.000000 -1.590990 +v -1.590990 3.000000 -1.414213 +v -1.375000 4.000000 -0.250000 +v -1.375000 3.000000 -0.250000 +v -1.375000 4.000000 0.250000 +v -1.375000 3.000000 0.250000 +v -1.125000 4.000000 0.250000 +v -1.125000 4.000000 -0.250000 +v -1.125000 3.000000 -0.250000 +v -1.125000 3.000000 0.250000 +v -2.500000 2.000000 -0.250000 +v -3.500000 2.000000 -0.250000 +v -2.500000 2.000000 0.250000 +v -3.500000 2.000000 0.250000 +v -2.500000 2.250000 0.250000 +v -2.500000 2.250000 -0.250000 +v -3.500000 2.250000 -0.250000 +v -3.500000 2.250000 0.250000 +v -2.919652 2.029244 -0.125000 +v -3.080348 2.220755 -0.125000 +v -2.919652 2.029244 0.125000 +v -3.080348 2.220755 0.125001 +v -2.125000 2.000000 -0.375000 +v -1.875000 2.000000 -0.375000 +v -2.125000 2.000000 -0.625000 +v -1.875000 2.000000 -0.625000 +v -1.196051 3.475517 0.125000 +v -1.196051 3.475517 -0.125000 +v -1.356749 3.667028 -0.125000 +v -1.356749 3.667028 0.125000 +v -1.875000 3.000000 -0.125000 +v -2.125000 3.000000 -0.125000 +v -2.125000 3.000000 0.125000 +v -1.875000 3.000000 0.125000 +v -1.875000 2.000000 0.375000 +v -2.125000 2.000000 0.375000 +v -1.875000 2.000000 0.625000 +v -2.125000 2.000000 0.625000 +v -1.875000 3.000000 0.125000 +v -1.875000 3.000000 -0.125000 +v -2.125000 3.000000 -0.125000 +v -2.125000 3.000000 0.125000 +v -1.149048 4.000000 0.795495 +v -1.149048 3.000000 0.795495 +v -0.795495 4.000000 1.149049 +v -0.795495 3.000000 1.149049 +v -0.618718 4.000000 0.972272 +v -0.972272 4.000000 0.618718 +v -0.972272 3.000000 0.618718 +v -0.618718 3.000000 0.972272 +v -1.615781 2.783195 1.792558 +v -1.792558 2.783195 1.615781 +v -1.502151 2.591684 1.678928 +v -1.678928 2.591684 1.502151 +v -1.767767 2.000000 1.237437 +v -1.590990 2.000000 1.060660 +v -1.944544 2.000000 1.060660 +v -1.767767 2.000000 0.883883 +v -0.757348 3.475517 0.934124 +v -0.934124 3.475517 0.757348 +v -1.047754 3.667028 0.870978 +v -0.870978 3.667028 1.047755 +v -1.414213 3.000000 1.237437 +v -1.590990 3.000000 1.414213 +v -1.414213 3.000000 1.590990 +v -1.237437 3.000000 1.414214 +v -1.060660 2.000000 1.590990 +v -1.237437 2.000000 1.767767 +v -0.883883 2.000000 1.767767 +v -1.060660 2.000000 1.944544 +v -1.237437 3.000000 1.414214 +v -1.414213 3.000000 1.237437 +v -1.590990 3.000000 1.414213 +v -1.414213 3.000000 1.590990 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.8412 0.0000 0.5408 +vn -0.5408 0.0000 -0.8412 +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 0.6428 0.7660 0.0000 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 0.4472 0.8944 +vn -0.6428 -0.7660 0.0000 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 -0.4472 0.8944 +vn 0.4545 0.7660 -0.4545 +vn -0.6325 -0.4472 -0.6325 +vn 0.6325 0.4472 0.6325 +vn -0.4545 -0.7660 0.4545 +vn -0.6325 0.4472 -0.6325 +vn 0.6325 -0.4472 0.6325 +vn 0.4545 0.7660 0.4545 +vn 0.6325 -0.4472 -0.6325 +vn -0.6325 0.4472 0.6325 +vn -0.4545 -0.7660 -0.4545 +vn 0.6325 0.4472 -0.6325 +vn -0.6325 -0.4472 0.6325 +vn -0.4545 0.7660 -0.4545 +vn 0.4545 -0.7660 0.4545 +vn -0.6428 0.7660 0.0000 +vn 0.6428 -0.7660 0.0000 +vn 0.4545 -0.7660 -0.4545 +vn -0.4545 0.7660 0.4545 +vn -0.5417 -0.6428 0.5417 +s off +f 902//51 899//51 900//51 +f 875//51 880//51 876//51 +f 885//52 890//52 886//52 +f 880//53 886//53 882//53 +f 881//54 884//54 879//54 +f 882//55 883//55 881//55 +f 879//56 885//56 880//56 +f 890//55 891//55 889//55 +f 886//52 889//52 883//52 +f 883//52 887//52 884//52 +f 884//52 888//52 885//52 +f 877//51 879//51 875//51 +f 887//56 893//56 888//56 +f 888//53 894//53 890//53 +f 889//54 892//54 887//54 +f 878//51 881//51 877//51 +f 876//51 882//51 878//51 +f 896//57 875//57 876//57 +f 895//58 877//58 875//58 +f 897//59 878//59 877//59 +f 898//60 876//60 878//60 +f 911//55 905//55 910//55 +f 904//51 909//51 903//51 +f 912//53 904//53 907//53 +f 903//56 907//56 904//56 +f 910//57 912//57 911//57 +f 910//54 905//54 906//54 +f 925//55 924//55 923//55 +f 921//54 926//54 920//54 +f 919//56 921//56 920//56 +f 913//53 918//53 919//53 +f 927//51 925//51 921//51 +f 962//52 961//52 960//52 +f 961//56 965//56 960//56 +f 966//51 964//51 965//51 +f 962//55 967//55 963//55 +f 968//56 971//56 970//56 +f 960//54 964//54 962//54 +f 963//53 966//53 961//53 +f 937//56 953//56 936//56 +f 931//53 946//53 929//53 +f 939//53 954//53 937//53 +f 930//55 947//55 931//55 +f 938//55 955//55 939//55 +f 932//54 948//54 934//54 +f 940//54 956//54 942//54 +f 933//56 949//56 932//56 +f 941//56 957//56 940//56 +f 935//53 950//53 933//53 +f 943//53 958//53 941//53 +f 934//55 951//55 935//55 +f 928//54 944//54 930//54 +f 942//55 959//55 943//55 +f 936//54 952//54 938//54 +f 929//56 945//56 928//56 +f 972//55 975//55 973//55 +f 979//53 976//53 978//53 +f 983//54 980//54 981//54 +f 1018//52 1017//52 1016//52 +f 1017//56 1021//56 1016//56 +f 1022//51 1020//51 1021//51 +f 1018//55 1023//55 1019//55 +f 1024//56 1027//56 1026//56 +f 1016//54 1020//54 1018//54 +f 1019//53 1022//53 1017//53 +f 993//56 1009//56 992//56 +f 987//53 1002//53 985//53 +f 995//53 1010//53 993//53 +f 986//55 1003//55 987//55 +f 994//55 1011//55 995//55 +f 988//54 1004//54 990//54 +f 996//54 1012//54 998//54 +f 989//56 1005//56 988//56 +f 997//56 1013//56 996//56 +f 991//53 1006//53 989//53 +f 999//53 1014//53 997//53 +f 990//55 1007//55 991//55 +f 984//54 1000//54 986//54 +f 998//55 1015//55 999//55 +f 992//54 1008//54 994//54 +f 985//56 1001//56 984//56 +f 1028//55 1031//55 1029//55 +f 1035//53 1032//53 1034//53 +f 1039//54 1036//54 1037//54 +f 1074//52 1073//52 1072//52 +f 1073//56 1077//56 1072//56 +f 1078//51 1076//51 1077//51 +f 1074//55 1079//55 1075//55 +f 1080//56 1083//56 1082//56 +f 1072//54 1076//54 1074//54 +f 1075//53 1078//53 1073//53 +f 1049//56 1065//56 1048//56 +f 1043//53 1058//53 1041//53 +f 1051//53 1066//53 1049//53 +f 1042//55 1059//55 1043//55 +f 1050//55 1067//55 1051//55 +f 1044//54 1060//54 1046//54 +f 1052//54 1068//54 1054//54 +f 1045//56 1061//56 1044//56 +f 1053//56 1069//56 1052//56 +f 1047//53 1062//53 1045//53 +f 1055//53 1070//53 1053//53 +f 1046//55 1063//55 1047//55 +f 1040//54 1056//54 1042//54 +f 1054//55 1071//55 1055//55 +f 1048//54 1064//54 1050//54 +f 1041//56 1057//56 1040//56 +f 1084//55 1087//55 1085//55 +f 1091//53 1088//53 1090//53 +f 1095//54 1092//54 1093//54 +f 1130//52 1129//52 1128//52 +f 1129//56 1133//56 1128//56 +f 1134//51 1132//51 1133//51 +f 1130//55 1135//55 1131//55 +f 1136//56 1139//56 1138//56 +f 1128//54 1132//54 1130//54 +f 1131//53 1134//53 1129//53 +f 1105//56 1121//56 1104//56 +f 1099//53 1114//53 1097//53 +f 1107//53 1122//53 1105//53 +f 1098//55 1115//55 1099//55 +f 1106//55 1123//55 1107//55 +f 1100//54 1116//54 1102//54 +f 1108//54 1124//54 1110//54 +f 1101//56 1117//56 1100//56 +f 1109//56 1125//56 1108//56 +f 1103//53 1118//53 1101//53 +f 1111//53 1126//53 1109//53 +f 1102//55 1119//55 1103//55 +f 1096//54 1112//54 1098//54 +f 1110//55 1127//55 1111//55 +f 1104//54 1120//54 1106//54 +f 1097//56 1113//56 1096//56 +f 1140//55 1143//55 1141//55 +f 1147//53 1144//53 1146//53 +f 1151//54 1148//54 1149//54 +f 1157//61 1152//61 1154//61 +f 1156//62 1155//62 1153//62 +f 1181//52 1160//52 1175//52 +f 1158//63 1160//63 1161//63 +f 1172//51 1158//51 1171//51 +f 1171//64 1161//64 1181//64 +f 1163//52 1176//52 1178//52 +f 1168//51 1162//51 1167//51 +f 1163//65 1164//65 1165//65 +f 1167//66 1163//66 1178//66 +f 1175//54 1173//54 1174//54 +f 1176//53 1169//53 1177//53 +f 1175//66 1159//66 1172//66 +f 1176//64 1164//64 1168//64 +f 1180//56 1171//56 1181//56 +f 1179//55 1167//55 1178//55 +f 1176//52 1180//52 1175//52 +f 1170//51 1168//51 1166//51 +f 1177//64 1170//64 1180//64 +f 1174//66 1166//66 1179//66 +f 1237//66 1245//66 1232//66 +f 1193//55 1215//55 1191//55 +f 1234//64 1241//64 1231//64 +f 1241//51 1243//51 1245//51 +f 1235//52 1231//52 1236//52 +f 1188//55 1199//55 1189//55 +f 1194//56 1221//56 1196//56 +f 1196//54 1220//54 1197//54 +f 1197//55 1219//55 1195//55 +f 1183//56 1205//56 1182//56 +f 1182//54 1202//54 1184//54 +f 1191//53 1214//53 1190//53 +f 1185//53 1204//53 1183//53 +f 1184//55 1203//55 1185//55 +f 1186//54 1198//54 1188//54 +f 1192//54 1216//54 1193//54 +f 1189//53 1200//53 1187//53 +f 1187//56 1201//56 1186//56 +f 1190//56 1217//56 1192//56 +f 1195//53 1218//53 1194//53 +f 1227//66 1206//66 1211//66 +f 1228//64 1209//64 1212//64 +f 1208//63 1226//63 1210//63 +f 1207//65 1229//65 1213//65 +f 1232//55 1244//55 1233//55 +f 1231//56 1240//56 1230//56 +f 1235//64 1263//64 1243//64 +f 1236//66 1268//66 1239//66 +f 1235//53 1242//53 1234//53 +f 1236//54 1238//54 1237//54 +f 1251//52 1249//52 1247//52 +f 1257//51 1259//51 1261//51 +f 1250//64 1257//64 1249//64 +f 1246//66 1261//66 1253//66 +f 1253//55 1260//55 1252//55 +f 1249//56 1256//56 1248//56 +f 1252//65 1259//65 1251//65 +f 1248//63 1255//63 1247//63 +f 1251//53 1258//53 1250//53 +f 1247//54 1254//54 1246//54 +f 1244//66 1264//66 1233//66 +f 1264//65 1263//65 1262//65 +f 1243//51 1265//51 1244//51 +f 1264//52 1235//52 1233//52 +f 1240//64 1266//64 1230//64 +f 1239//51 1269//51 1240//51 +f 1269//63 1267//63 1266//63 +f 1230//52 1267//52 1236//52 +f 1271//53 1272//53 1270//53 +f 1274//54 1276//54 1275//54 +f 1273//55 1274//55 1272//55 +f 1270//56 1276//56 1271//56 +f 1271//52 1277//52 1273//52 +f 1272//51 1275//51 1270//51 +f 1284//51 1282//51 1283//51 +f 1281//53 1284//53 1279//53 +f 1278//54 1282//54 1280//54 +f 1280//55 1285//55 1281//55 +f 1279//56 1283//56 1278//56 +f 1294//55 1289//55 1288//55 +f 1289//67 1296//67 1287//67 +f 1291//54 1298//54 1301//54 +f 1296//56 1286//56 1287//56 +f 1291//68 1300//68 1290//68 +f 1292//69 1298//69 1293//69 +f 1295//70 1288//70 1286//70 +f 1290//53 1299//53 1292//53 +f 1303//53 1309//53 1308//53 +f 1302//54 1306//54 1304//54 +f 1304//71 1309//71 1305//71 +f 1303//72 1307//72 1302//72 +f 1311//65 1312//65 1310//65 +f 1314//63 1316//63 1315//63 +f 1313//66 1314//66 1312//66 +f 1310//64 1316//64 1311//64 +f 1311//52 1317//52 1313//52 +f 1312//51 1315//51 1310//51 +f 1324//51 1322//51 1323//51 +f 1321//65 1324//65 1319//65 +f 1318//63 1322//63 1320//63 +f 1320//66 1325//66 1321//66 +f 1319//64 1323//64 1318//64 +f 1334//66 1329//66 1328//66 +f 1329//73 1336//73 1327//73 +f 1331//63 1338//63 1341//63 +f 1336//64 1326//64 1327//64 +f 1331//74 1340//74 1330//74 +f 1332//75 1338//75 1333//75 +f 1335//76 1328//76 1326//76 +f 1330//65 1339//65 1332//65 +f 1343//65 1349//65 1348//65 +f 1342//63 1346//63 1344//63 +f 1344//77 1349//77 1345//77 +f 1343//78 1347//78 1342//78 +f 1351//64 1352//64 1350//64 +f 1354//66 1356//66 1355//66 +f 1353//65 1354//65 1352//65 +f 1350//63 1356//63 1351//63 +f 1351//52 1357//52 1353//52 +f 1350//51 1354//51 1355//51 +f 1364//51 1362//51 1363//51 +f 1361//64 1364//64 1359//64 +f 1358//66 1362//66 1360//66 +f 1360//65 1365//65 1361//65 +f 1359//63 1363//63 1358//63 +f 1374//65 1369//65 1368//65 +f 1369//79 1376//79 1367//79 +f 1371//66 1378//66 1381//66 +f 1376//63 1366//63 1367//63 +f 1371//80 1380//80 1370//80 +f 1372//81 1378//81 1373//81 +f 1375//82 1368//82 1366//82 +f 1370//64 1379//64 1372//64 +f 1383//64 1389//64 1388//64 +f 1382//66 1386//66 1384//66 +f 1385//83 1386//83 1389//83 +f 1383//84 1387//84 1382//84 +f 1391//66 1392//66 1390//66 +f 1394//64 1396//64 1395//64 +f 1393//63 1394//63 1392//63 +f 1390//65 1396//65 1391//65 +f 1391//52 1397//52 1393//52 +f 1390//51 1394//51 1395//51 +f 1404//51 1402//51 1403//51 +f 1401//66 1404//66 1399//66 +f 1398//64 1402//64 1400//64 +f 1400//63 1405//63 1401//63 +f 1399//65 1403//65 1398//65 +f 1414//63 1409//63 1408//63 +f 1409//85 1416//85 1407//85 +f 1411//64 1418//64 1421//64 +f 1416//65 1406//65 1407//65 +f 1411//84 1420//84 1410//84 +f 1412//83 1418//83 1413//83 +f 1406//86 1414//86 1408//86 +f 1410//66 1419//66 1412//66 +f 1423//66 1429//66 1428//66 +f 1422//64 1426//64 1424//64 +f 1425//81 1426//81 1429//81 +f 1423//80 1427//80 1422//80 +f 1431//54 1432//54 1430//54 +f 1434//53 1436//53 1435//53 +f 1433//56 1434//56 1432//56 +f 1430//55 1436//55 1431//55 +f 1431//52 1437//52 1433//52 +f 1430//51 1434//51 1435//51 +f 1444//51 1442//51 1443//51 +f 1441//54 1444//54 1439//54 +f 1438//53 1442//53 1440//53 +f 1440//56 1445//56 1441//56 +f 1439//55 1443//55 1438//55 +f 1454//56 1449//56 1448//56 +f 1449//87 1456//87 1447//87 +f 1451//53 1458//53 1461//53 +f 1447//55 1455//55 1446//55 +f 1451//72 1460//72 1450//72 +f 1452//71 1458//71 1453//71 +f 1455//88 1448//88 1446//88 +f 1450//54 1459//54 1452//54 +f 1463//54 1469//54 1468//54 +f 1462//53 1466//53 1464//53 +f 1465//69 1466//69 1469//69 +f 1462//68 1468//68 1467//68 +f 1471//63 1472//63 1470//63 +f 1474//65 1476//65 1475//65 +f 1473//64 1474//64 1472//64 +f 1470//66 1476//66 1471//66 +f 1471//52 1477//52 1473//52 +f 1470//51 1474//51 1475//51 +f 1480//89 1487//89 1486//89 +f 1478//64 1486//64 1489//64 +f 1483//65 1490//65 1493//65 +f 1479//90 1489//90 1488//90 +f 1483//78 1492//78 1482//78 +f 1485//77 1491//77 1490//77 +f 1481//66 1488//66 1487//66 +f 1482//63 1491//63 1484//63 +f 1495//63 1501//63 1500//63 +f 1494//65 1498//65 1496//65 +f 1497//75 1498//75 1501//75 +f 1495//74 1499//74 1494//74 +f 1480//91 1479//91 1481//91 +f 902//51 901//51 899//51 +f 875//51 879//51 880//51 +f 885//52 888//52 890//52 +f 880//53 885//53 886//53 +f 881//54 883//54 884//54 +f 882//55 886//55 883//55 +f 879//56 884//56 885//56 +f 890//55 894//55 891//55 +f 886//52 890//52 889//52 +f 883//52 889//52 887//52 +f 884//52 887//52 888//52 +f 877//51 881//51 879//51 +f 887//56 892//56 893//56 +f 888//53 893//53 894//53 +f 889//54 891//54 892//54 +f 878//51 882//51 881//51 +f 876//51 880//51 882//51 +f 896//57 895//57 875//57 +f 895//58 897//58 877//58 +f 897//59 898//59 878//59 +f 898//60 896//60 876//60 +f 911//55 908//55 905//55 +f 904//51 912//51 909//51 +f 908//53 911//53 907//53 +f 911//53 912//53 907//53 +f 903//56 906//56 907//56 +f 910//57 909//57 912//57 +f 906//54 903//54 909//54 +f 909//54 910//54 906//54 +f 923//55 914//55 922//55 +f 922//55 926//55 923//55 +f 926//55 925//55 923//55 +f 921//54 925//54 926//54 +f 919//56 918//56 921//56 +f 919//53 915//53 913//53 +f 915//53 916//53 913//53 +f 913//53 917//53 918//53 +f 918//51 917//51 927//51 +f 927//51 924//51 925//51 +f 921//51 918//51 927//51 +f 962//52 963//52 961//52 +f 961//56 966//56 965//56 +f 966//51 967//51 964//51 +f 962//55 964//55 967//55 +f 968//56 969//56 971//56 +f 960//54 965//54 964//54 +f 963//53 967//53 966//53 +f 937//56 954//56 953//56 +f 931//53 947//53 946//53 +f 939//53 955//53 954//53 +f 930//55 944//55 947//55 +f 938//55 952//55 955//55 +f 932//54 949//54 948//54 +f 940//54 957//54 956//54 +f 933//56 950//56 949//56 +f 941//56 958//56 957//56 +f 935//53 951//53 950//53 +f 943//53 959//53 958//53 +f 934//55 948//55 951//55 +f 928//54 945//54 944//54 +f 942//55 956//55 959//55 +f 936//54 953//54 952//54 +f 929//56 946//56 945//56 +f 972//55 974//55 975//55 +f 979//53 977//53 976//53 +f 983//54 982//54 980//54 +f 1018//52 1019//52 1017//52 +f 1017//56 1022//56 1021//56 +f 1022//51 1023//51 1020//51 +f 1018//55 1020//55 1023//55 +f 1024//56 1025//56 1027//56 +f 1016//54 1021//54 1020//54 +f 1019//53 1023//53 1022//53 +f 993//56 1010//56 1009//56 +f 987//53 1003//53 1002//53 +f 995//53 1011//53 1010//53 +f 986//55 1000//55 1003//55 +f 994//55 1008//55 1011//55 +f 988//54 1005//54 1004//54 +f 996//54 1013//54 1012//54 +f 989//56 1006//56 1005//56 +f 997//56 1014//56 1013//56 +f 991//53 1007//53 1006//53 +f 999//53 1015//53 1014//53 +f 990//55 1004//55 1007//55 +f 984//54 1001//54 1000//54 +f 998//55 1012//55 1015//55 +f 992//54 1009//54 1008//54 +f 985//56 1002//56 1001//56 +f 1028//55 1030//55 1031//55 +f 1035//53 1033//53 1032//53 +f 1039//54 1038//54 1036//54 +f 1074//52 1075//52 1073//52 +f 1073//56 1078//56 1077//56 +f 1078//51 1079//51 1076//51 +f 1074//55 1076//55 1079//55 +f 1080//56 1081//56 1083//56 +f 1072//54 1077//54 1076//54 +f 1075//53 1079//53 1078//53 +f 1049//56 1066//56 1065//56 +f 1043//53 1059//53 1058//53 +f 1051//53 1067//53 1066//53 +f 1042//55 1056//55 1059//55 +f 1050//55 1064//55 1067//55 +f 1044//54 1061//54 1060//54 +f 1052//54 1069//54 1068//54 +f 1045//56 1062//56 1061//56 +f 1053//56 1070//56 1069//56 +f 1047//53 1063//53 1062//53 +f 1055//53 1071//53 1070//53 +f 1046//55 1060//55 1063//55 +f 1040//54 1057//54 1056//54 +f 1054//55 1068//55 1071//55 +f 1048//54 1065//54 1064//54 +f 1041//56 1058//56 1057//56 +f 1084//55 1086//55 1087//55 +f 1091//53 1089//53 1088//53 +f 1095//54 1094//54 1092//54 +f 1130//52 1131//52 1129//52 +f 1129//56 1134//56 1133//56 +f 1134//51 1135//51 1132//51 +f 1130//55 1132//55 1135//55 +f 1136//56 1137//56 1139//56 +f 1128//54 1133//54 1132//54 +f 1131//53 1135//53 1134//53 +f 1105//56 1122//56 1121//56 +f 1099//53 1115//53 1114//53 +f 1107//53 1123//53 1122//53 +f 1098//55 1112//55 1115//55 +f 1106//55 1120//55 1123//55 +f 1100//54 1117//54 1116//54 +f 1108//54 1125//54 1124//54 +f 1101//56 1118//56 1117//56 +f 1109//56 1126//56 1125//56 +f 1103//53 1119//53 1118//53 +f 1111//53 1127//53 1126//53 +f 1102//55 1116//55 1119//55 +f 1096//54 1113//54 1112//54 +f 1110//55 1124//55 1127//55 +f 1104//54 1121//54 1120//54 +f 1097//56 1114//56 1113//56 +f 1140//55 1142//55 1143//55 +f 1147//53 1145//53 1144//53 +f 1151//54 1150//54 1148//54 +f 1181//52 1161//52 1160//52 +f 1158//63 1159//63 1160//63 +f 1172//51 1159//51 1158//51 +f 1171//64 1158//64 1161//64 +f 1163//52 1165//52 1176//52 +f 1168//51 1164//51 1162//51 +f 1163//65 1162//65 1164//65 +f 1167//66 1162//66 1163//66 +f 1175//54 1172//54 1173//54 +f 1176//53 1168//53 1169//53 +f 1175//66 1160//66 1159//66 +f 1176//64 1165//64 1164//64 +f 1180//56 1170//56 1171//56 +f 1179//55 1166//55 1167//55 +f 1175//52 1174//52 1179//52 +f 1179//52 1178//52 1176//52 +f 1176//52 1177//52 1180//52 +f 1180//52 1181//52 1175//52 +f 1175//52 1179//52 1176//52 +f 1166//51 1173//51 1172//51 +f 1172//51 1171//51 1170//51 +f 1170//51 1169//51 1168//51 +f 1168//51 1167//51 1166//51 +f 1166//51 1172//51 1170//51 +f 1177//64 1169//64 1170//64 +f 1174//66 1173//66 1166//66 +f 1237//66 1238//66 1245//66 +f 1193//55 1216//55 1215//55 +f 1234//64 1242//64 1241//64 +f 1245//51 1238//51 1239//51 +f 1239//51 1240//51 1241//51 +f 1241//51 1242//51 1243//51 +f 1243//51 1244//51 1245//51 +f 1245//51 1239//51 1241//51 +f 1236//52 1237//52 1232//52 +f 1232//52 1233//52 1235//52 +f 1235//52 1234//52 1231//52 +f 1231//52 1230//52 1236//52 +f 1236//52 1232//52 1235//52 +f 1188//55 1198//55 1199//55 +f 1194//56 1218//56 1221//56 +f 1196//54 1221//54 1220//54 +f 1197//55 1220//55 1219//55 +f 1183//56 1204//56 1205//56 +f 1182//54 1205//54 1202//54 +f 1191//53 1215//53 1214//53 +f 1185//53 1203//53 1204//53 +f 1184//55 1202//55 1203//55 +f 1186//54 1201//54 1198//54 +f 1192//54 1217//54 1216//54 +f 1189//53 1199//53 1200//53 +f 1187//56 1200//56 1201//56 +f 1190//56 1214//56 1217//56 +f 1195//53 1219//53 1218//53 +f 1227//66 1222//66 1206//66 +f 1228//64 1225//64 1209//64 +f 1208//63 1224//63 1226//63 +f 1207//65 1223//65 1229//65 +f 1232//55 1245//55 1244//55 +f 1231//56 1241//56 1240//56 +f 1235//64 1262//64 1263//64 +f 1236//66 1267//66 1268//66 +f 1235//53 1243//53 1242//53 +f 1236//54 1239//54 1238//54 +f 1247//52 1246//52 1253//52 +f 1253//52 1252//52 1251//52 +f 1251//52 1250//52 1249//52 +f 1249//52 1248//52 1247//52 +f 1247//52 1253//52 1251//52 +f 1261//51 1254//51 1255//51 +f 1255//51 1256//51 1257//51 +f 1257//51 1258//51 1259//51 +f 1259//51 1260//51 1261//51 +f 1261//51 1255//51 1257//51 +f 1250//64 1258//64 1257//64 +f 1246//66 1254//66 1261//66 +f 1253//55 1261//55 1260//55 +f 1249//56 1257//56 1256//56 +f 1252//65 1260//65 1259//65 +f 1248//63 1256//63 1255//63 +f 1251//53 1259//53 1258//53 +f 1247//54 1255//54 1254//54 +f 1244//66 1265//66 1264//66 +f 1264//65 1265//65 1263//65 +f 1243//51 1263//51 1265//51 +f 1264//52 1262//52 1235//52 +f 1240//64 1269//64 1266//64 +f 1239//51 1268//51 1269//51 +f 1269//63 1268//63 1267//63 +f 1230//52 1266//52 1267//52 +f 1271//53 1273//53 1272//53 +f 1274//54 1277//54 1276//54 +f 1273//55 1277//55 1274//55 +f 1270//56 1275//56 1276//56 +f 1271//52 1276//52 1277//52 +f 1272//51 1274//51 1275//51 +f 1284//51 1285//51 1282//51 +f 1281//53 1285//53 1284//53 +f 1278//54 1283//54 1282//54 +f 1280//55 1282//55 1285//55 +f 1279//56 1284//56 1283//56 +f 1294//55 1297//55 1289//55 +f 1289//67 1297//67 1296//67 +f 1291//54 1293//54 1298//54 +f 1296//56 1295//56 1286//56 +f 1291//68 1301//68 1300//68 +f 1292//69 1299//69 1298//69 +f 1295//70 1294//70 1288//70 +f 1290//53 1300//53 1299//53 +f 1303//53 1305//53 1309//53 +f 1302//54 1307//54 1306//54 +f 1304//71 1306//71 1309//71 +f 1303//72 1308//72 1307//72 +f 1311//65 1313//65 1312//65 +f 1314//63 1317//63 1316//63 +f 1313//66 1317//66 1314//66 +f 1310//64 1315//64 1316//64 +f 1311//52 1316//52 1317//52 +f 1312//51 1314//51 1315//51 +f 1324//51 1325//51 1322//51 +f 1321//65 1325//65 1324//65 +f 1318//63 1323//63 1322//63 +f 1320//66 1322//66 1325//66 +f 1319//64 1324//64 1323//64 +f 1334//66 1337//66 1329//66 +f 1329//73 1337//73 1336//73 +f 1331//63 1333//63 1338//63 +f 1336//64 1335//64 1326//64 +f 1331//74 1341//74 1340//74 +f 1332//75 1339//75 1338//75 +f 1335//76 1334//76 1328//76 +f 1330//65 1340//65 1339//65 +f 1343//65 1345//65 1349//65 +f 1342//63 1347//63 1346//63 +f 1344//77 1346//77 1349//77 +f 1343//78 1348//78 1347//78 +f 1351//64 1353//64 1352//64 +f 1354//66 1357//66 1356//66 +f 1353//65 1357//65 1354//65 +f 1350//63 1355//63 1356//63 +f 1351//52 1356//52 1357//52 +f 1350//51 1352//51 1354//51 +f 1364//51 1365//51 1362//51 +f 1361//64 1365//64 1364//64 +f 1358//66 1363//66 1362//66 +f 1360//65 1362//65 1365//65 +f 1359//63 1364//63 1363//63 +f 1374//65 1377//65 1369//65 +f 1369//79 1377//79 1376//79 +f 1371//66 1373//66 1378//66 +f 1376//63 1375//63 1366//63 +f 1371//80 1381//80 1380//80 +f 1372//81 1379//81 1378//81 +f 1375//82 1374//82 1368//82 +f 1370//64 1380//64 1379//64 +f 1383//64 1385//64 1389//64 +f 1382//66 1387//66 1386//66 +f 1385//83 1384//83 1386//83 +f 1383//84 1388//84 1387//84 +f 1391//66 1393//66 1392//66 +f 1394//64 1397//64 1396//64 +f 1393//63 1397//63 1394//63 +f 1390//65 1395//65 1396//65 +f 1391//52 1396//52 1397//52 +f 1390//51 1392//51 1394//51 +f 1404//51 1405//51 1402//51 +f 1401//66 1405//66 1404//66 +f 1398//64 1403//64 1402//64 +f 1400//63 1402//63 1405//63 +f 1399//65 1404//65 1403//65 +f 1414//63 1417//63 1409//63 +f 1409//85 1417//85 1416//85 +f 1411//64 1413//64 1418//64 +f 1416//65 1415//65 1406//65 +f 1411//84 1421//84 1420//84 +f 1412//83 1419//83 1418//83 +f 1406//86 1415//86 1414//86 +f 1410//66 1420//66 1419//66 +f 1423//66 1425//66 1429//66 +f 1422//64 1427//64 1426//64 +f 1425//81 1424//81 1426//81 +f 1423//80 1428//80 1427//80 +f 1431//54 1433//54 1432//54 +f 1434//53 1437//53 1436//53 +f 1433//56 1437//56 1434//56 +f 1430//55 1435//55 1436//55 +f 1431//52 1436//52 1437//52 +f 1430//51 1432//51 1434//51 +f 1444//51 1445//51 1442//51 +f 1441//54 1445//54 1444//54 +f 1438//53 1443//53 1442//53 +f 1440//56 1442//56 1445//56 +f 1439//55 1444//55 1443//55 +f 1454//56 1457//56 1449//56 +f 1449//87 1457//87 1456//87 +f 1451//53 1453//53 1458//53 +f 1447//55 1456//55 1455//55 +f 1451//72 1461//72 1460//72 +f 1452//71 1459//71 1458//71 +f 1455//88 1454//88 1448//88 +f 1450//54 1460//54 1459//54 +f 1463//54 1465//54 1469//54 +f 1462//53 1467//53 1466//53 +f 1465//69 1464//69 1466//69 +f 1462//68 1463//68 1468//68 +f 1471//63 1473//63 1472//63 +f 1474//65 1477//65 1476//65 +f 1473//64 1477//64 1474//64 +f 1470//66 1475//66 1476//66 +f 1471//52 1476//52 1477//52 +f 1470//51 1472//51 1474//51 +f 1480//89 1481//89 1487//89 +f 1478//64 1480//64 1486//64 +f 1483//65 1485//65 1490//65 +f 1479//90 1478//90 1489//90 +f 1483//78 1493//78 1492//78 +f 1485//77 1484//77 1491//77 +f 1481//66 1479//66 1488//66 +f 1482//63 1492//63 1491//63 +f 1495//63 1497//63 1501//63 +f 1494//65 1499//65 1498//65 +f 1497//75 1496//75 1498//75 +f 1495//74 1500//74 1499//74 +f 1480//91 1478//91 1479//91 +o Huge_Rope +v 0.375000 5.500000 2.500000 +v 0.198223 5.573223 2.500000 +v 0.125000 5.750000 2.500000 +v 0.198223 5.926777 2.500000 +v 0.375000 6.000000 2.500000 +v 0.551777 5.926777 2.500000 +v 0.625000 5.750000 2.500000 +v 0.551777 5.573223 2.500000 +v 0.375000 5.500000 1.000000 +v 0.198223 5.573223 1.000000 +v 0.125000 5.750000 1.000000 +v 0.198223 5.926777 1.000000 +v 0.375000 6.000000 1.000000 +v 0.551777 5.926777 1.000000 +v 0.625000 5.750000 1.000000 +v 0.551777 5.573223 1.000000 +v -0.375000 5.500000 2.500000 +v -0.551777 5.573223 2.500000 +v -0.625000 5.750000 2.500000 +v -0.551777 5.926777 2.500000 +v -0.375000 6.000000 2.500000 +v -0.198223 5.926777 2.500000 +v -0.125000 5.750000 2.500000 +v -0.198223 5.573223 2.500000 +v -0.375000 5.500000 1.000000 +v -0.551777 5.573223 1.000000 +v -0.625000 5.750000 1.000000 +v -0.551777 5.926777 1.000000 +v -0.375000 6.000000 1.000000 +v -0.198223 5.926777 1.000000 +v -0.125000 5.750000 1.000000 +v -0.198223 5.573223 1.000000 +v 0.375000 10.000000 2.250000 +v 0.198223 10.073223 2.250000 +v 0.125000 10.250000 2.250000 +v 0.198223 10.426777 2.250000 +v 0.375000 10.500000 2.250000 +v 0.551777 10.426777 2.250000 +v 0.625000 10.250000 2.250000 +v 0.551777 10.073223 2.250000 +v 0.375000 10.000000 0.750000 +v 0.198223 10.073223 0.750000 +v 0.125000 10.250000 0.750000 +v 0.198223 10.426777 0.750000 +v 0.375000 10.500000 0.750000 +v 0.551777 10.426777 0.750000 +v 0.625000 10.250000 0.750000 +v 0.551777 10.073223 0.750000 +v -0.375000 10.000000 2.250000 +v -0.551777 10.073223 2.250000 +v -0.625000 10.250000 2.250000 +v -0.551777 10.426777 2.250000 +v -0.375000 10.500000 2.250000 +v -0.198223 10.426777 2.250000 +v -0.125000 10.250000 2.250000 +v -0.198223 10.073223 2.250000 +v -0.375000 10.000000 0.750000 +v -0.551777 10.073223 0.750000 +v -0.625000 10.250000 0.750000 +v -0.551777 10.426777 0.750000 +v -0.375000 10.500000 0.750000 +v -0.198223 10.426777 0.750000 +v -0.125000 10.250000 0.750000 +v -0.198223 10.073223 0.750000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +s 1 +f 1504//92 1511//93 1503//93 +f 1503//93 1510//94 1502//94 +f 1509//95 1516//96 1508//96 +f 1509//95 1510//94 1517//95 +f 1507//97 1514//98 1506//98 +f 1505//99 1512//92 1504//92 +f 1508//96 1515//97 1507//97 +f 1506//98 1513//99 1505//99 +f 1520//92 1527//93 1519//93 +f 1519//93 1526//94 1518//94 +f 1525//95 1532//96 1524//96 +f 1525//95 1526//94 1533//95 +f 1523//97 1530//98 1522//98 +f 1521//99 1528//92 1520//92 +f 1524//96 1531//97 1523//97 +f 1522//98 1529//99 1521//99 +f 1536//92 1543//93 1535//93 +f 1535//93 1542//94 1534//94 +f 1541//95 1548//96 1540//96 +f 1541//95 1542//94 1549//95 +f 1539//97 1546//98 1538//98 +f 1537//99 1544//92 1536//92 +f 1540//96 1547//97 1539//97 +f 1538//98 1545//99 1537//99 +f 1552//92 1559//93 1551//93 +f 1551//93 1558//94 1550//94 +f 1557//95 1564//96 1556//96 +f 1557//95 1558//94 1565//95 +f 1555//97 1562//98 1554//98 +f 1553//99 1560//92 1552//92 +f 1556//96 1563//97 1555//97 +f 1554//98 1561//99 1553//99 +f 1504//92 1512//92 1511//93 +f 1503//93 1511//93 1510//94 +f 1509//95 1517//95 1516//96 +f 1509//95 1502//94 1510//94 +f 1507//97 1515//97 1514//98 +f 1505//99 1513//99 1512//92 +f 1508//96 1516//96 1515//97 +f 1506//98 1514//98 1513//99 +f 1520//92 1528//92 1527//93 +f 1519//93 1527//93 1526//94 +f 1525//95 1533//95 1532//96 +f 1525//95 1518//94 1526//94 +f 1523//97 1531//97 1530//98 +f 1521//99 1529//99 1528//92 +f 1524//96 1532//96 1531//97 +f 1522//98 1530//98 1529//99 +f 1536//92 1544//92 1543//93 +f 1535//93 1543//93 1542//94 +f 1541//95 1549//95 1548//96 +f 1541//95 1534//94 1542//94 +f 1539//97 1547//97 1546//98 +f 1537//99 1545//99 1544//92 +f 1540//96 1548//96 1547//97 +f 1538//98 1546//98 1545//99 +f 1552//92 1560//92 1559//93 +f 1551//93 1559//93 1558//94 +f 1557//95 1565//95 1564//96 +f 1557//95 1550//94 1558//94 +f 1555//97 1563//97 1562//98 +f 1553//99 1561//99 1560//92 +f 1556//96 1564//96 1563//97 +f 1554//98 1562//98 1561//99 +o Huge_Pivot +v 0.562500 1.500000 -2.812500 +v 0.937500 1.500000 -2.812500 +v 0.562500 1.500000 -3.187500 +v 0.937500 1.500000 -3.187500 +v -0.937500 1.500000 -2.812500 +v -0.562500 1.500000 -2.812500 +v -0.937500 1.500000 -3.187500 +v -0.562500 1.500000 -3.187500 +v 0.562500 2.000000 -1.812500 +v 0.937500 2.000000 -1.812500 +v 0.562500 2.000000 -2.187500 +v 0.937500 2.000000 -2.187500 +v -0.937500 2.000000 -1.812500 +v -0.562500 2.000000 -1.812500 +v -0.937500 2.000000 -2.187500 +v -0.562500 2.000000 -2.187500 +v 0.562500 3.500000 -3.187500 +v 0.562500 3.500000 -2.812500 +v 0.937500 3.500000 -2.812500 +v 0.937500 3.500000 -3.187500 +v -0.937500 3.500000 -3.187500 +v -0.937500 3.500000 -2.812500 +v -0.562500 3.500000 -2.812500 +v -0.562500 3.500000 -3.187500 +v 0.562500 3.500000 -2.187500 +v 0.562500 3.500000 -1.812500 +v 0.937500 3.500000 -1.812500 +v 0.937500 3.500000 -2.187500 +v -0.937500 3.500000 -2.187500 +v -0.937500 3.500000 -1.812500 +v -0.562500 3.500000 -1.812500 +v -0.562500 3.500000 -2.187500 +v 0.625000 3.500000 -2.875000 +v 0.875000 3.500000 -2.875000 +v 0.625000 3.500000 -3.125000 +v 0.875000 3.500000 -3.125000 +v 0.625000 4.500000 -3.125000 +v 0.625000 4.500000 -2.875000 +v 0.875000 4.500000 -2.875000 +v 0.875000 4.500000 -3.125000 +v 0.625000 3.500000 -1.875000 +v 0.875000 3.500000 -1.875000 +v 0.625000 3.500000 -2.125000 +v 0.875000 3.500000 -2.125000 +v 0.625000 4.500000 -2.125000 +v 0.625000 4.500000 -1.875000 +v 0.875000 4.500000 -1.875000 +v 0.875000 4.500000 -2.125000 +v -0.875000 3.500000 -2.875000 +v -0.625000 3.500000 -2.875000 +v -0.875000 3.500000 -3.125000 +v -0.625000 3.500000 -3.125000 +v -0.875000 4.500000 -3.125000 +v -0.875000 4.500000 -2.875000 +v -0.625000 4.500000 -2.875000 +v -0.625000 4.500000 -3.125000 +v -0.875000 3.500000 -1.875000 +v -0.625000 3.500000 -1.875000 +v -0.875000 3.500000 -2.125000 +v -0.625000 3.500000 -2.125000 +v -0.875000 4.500000 -2.125000 +v -0.875000 4.500000 -1.875000 +v -0.625000 4.500000 -1.875000 +v -0.625000 4.500000 -2.125000 +v 0.750000 2.000000 -2.187500 +v 0.750000 3.500000 -2.187500 +v 0.750000 2.000000 -2.812500 +v 0.750000 3.500000 -2.812500 +v -0.750000 2.000000 -2.187500 +v -0.750000 3.500000 -2.187500 +v -0.750000 2.000000 -2.812500 +v -0.750000 3.500000 -2.812500 +v 0.562500 2.000000 -2.000000 +v -0.562500 2.000000 -2.000000 +v 0.562500 3.500000 -2.000000 +v -0.562500 3.500000 -2.000000 +v 0.562500 2.000000 -3.000000 +v -0.562500 2.000000 -3.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 3.500000 -3.000000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 1607//100 1611//100 1606//100 +f 1608//101 1613//101 1609//101 +f 1576//102 1575//102 1574//102 +f 1580//102 1579//102 1578//102 +f 1584//103 1582//103 1583//103 +f 1588//103 1586//103 1587//103 +f 1572//101 1589//101 1573//101 +f 1571//100 1587//100 1570//100 +f 1568//101 1585//101 1569//101 +f 1567//100 1583//100 1566//100 +f 1573//104 1588//104 1571//104 +f 1570//105 1586//105 1572//105 +f 1569//104 1584//104 1567//104 +f 1566//105 1582//105 1568//105 +f 1592//103 1590//103 1591//103 +f 1596//103 1594//103 1595//103 +f 1575//100 1591//100 1574//100 +f 1581//104 1596//104 1579//104 +f 1578//105 1594//105 1580//105 +f 1577//104 1592//104 1575//104 +f 1574//105 1590//105 1576//105 +f 1580//101 1597//101 1581//101 +f 1579//100 1595//100 1578//100 +f 1576//101 1593//101 1577//101 +f 1600//101 1605//101 1601//101 +f 1599//100 1603//100 1598//100 +f 1601//104 1604//104 1599//104 +f 1598//105 1602//105 1600//105 +f 1609//104 1612//104 1607//104 +f 1606//105 1610//105 1608//105 +f 1623//100 1627//100 1622//100 +f 1624//101 1629//101 1625//101 +f 1616//101 1621//101 1617//101 +f 1615//100 1619//100 1614//100 +f 1617//104 1620//104 1615//104 +f 1614//105 1618//105 1616//105 +f 1625//104 1628//104 1623//104 +f 1622//105 1626//105 1624//105 +f 1630//104 1633//104 1631//104 +f 1637//105 1634//105 1635//105 +f 1639//100 1640//100 1641//100 +f 1644//101 1643//101 1645//101 +f 1607//100 1612//100 1611//100 +f 1608//101 1610//101 1613//101 +f 1576//102 1577//102 1575//102 +f 1580//102 1581//102 1579//102 +f 1584//103 1585//103 1582//103 +f 1588//103 1589//103 1586//103 +f 1572//101 1586//101 1589//101 +f 1571//100 1588//100 1587//100 +f 1568//101 1582//101 1585//101 +f 1567//100 1584//100 1583//100 +f 1573//104 1589//104 1588//104 +f 1570//105 1587//105 1586//105 +f 1569//104 1585//104 1584//104 +f 1566//105 1583//105 1582//105 +f 1592//103 1593//103 1590//103 +f 1596//103 1597//103 1594//103 +f 1575//100 1592//100 1591//100 +f 1581//104 1597//104 1596//104 +f 1578//105 1595//105 1594//105 +f 1577//104 1593//104 1592//104 +f 1574//105 1591//105 1590//105 +f 1580//101 1594//101 1597//101 +f 1579//100 1596//100 1595//100 +f 1576//101 1590//101 1593//101 +f 1600//101 1602//101 1605//101 +f 1599//100 1604//100 1603//100 +f 1601//104 1605//104 1604//104 +f 1598//105 1603//105 1602//105 +f 1609//104 1613//104 1612//104 +f 1606//105 1611//105 1610//105 +f 1623//100 1628//100 1627//100 +f 1624//101 1626//101 1629//101 +f 1616//101 1618//101 1621//101 +f 1615//100 1620//100 1619//100 +f 1617//104 1621//104 1620//104 +f 1614//105 1619//105 1618//105 +f 1625//104 1629//104 1628//104 +f 1622//105 1627//105 1626//105 +f 1630//104 1632//104 1633//104 +f 1637//105 1636//105 1634//105 +f 1639//100 1638//100 1640//100 +f 1644//101 1642//101 1643//101 +o Huge_Erector +v 0.562500 3.500000 -3.187500 +v 0.562500 3.500000 -2.812500 +v 0.937500 3.500000 -2.812500 +v 0.937500 3.500000 -3.187500 +v -0.937500 3.500000 -3.187500 +v -0.937500 3.500000 -2.812500 +v -0.562500 3.500000 -2.812500 +v -0.562500 3.500000 -3.187500 +v 0.562500 3.500000 -2.187500 +v 0.562500 3.500000 -1.812500 +v 0.937500 3.500000 -1.812500 +v 0.937500 3.500000 -2.187500 +v -0.937500 3.500000 -2.187500 +v -0.937500 3.500000 -1.812500 +v -0.562500 3.500000 -1.812500 +v -0.562500 3.500000 -2.187500 +v 0.562500 14.500000 -3.187500 +v 0.562500 14.500000 -2.812500 +v 0.937500 14.500000 -2.812500 +v 0.937500 14.500000 -3.187500 +v -0.937500 14.500000 -3.187500 +v -0.937500 14.500000 -2.812500 +v -0.562500 14.500000 -2.812500 +v -0.562500 14.500000 -3.187500 +v 0.562500 14.500000 -2.187500 +v 0.562500 14.500000 -1.812500 +v 0.937500 14.500000 -1.812500 +v 0.937500 14.500000 -2.187500 +v -0.937500 14.500000 -2.187500 +v -0.937500 14.500000 -1.812500 +v -0.562500 14.500000 -1.812500 +v -0.562500 14.500000 -2.187500 +v 0.937500 5.750000 -1.812500 +v -0.937500 5.750000 -1.812500 +v 0.937500 6.125000 -1.812500 +v -0.937500 6.125000 -1.812500 +v 0.937500 5.750000 -0.812500 +v -0.937500 5.750000 -0.812500 +v 0.937500 6.125000 -0.812500 +v -0.937500 6.125000 -0.812500 +v 0.562500 5.750000 -1.187500 +v -0.562500 5.750000 -1.187500 +v 0.562500 6.125000 -1.187500 +v -0.562500 6.125000 -1.187500 +v 0.937500 8.750000 -1.812500 +v -0.937500 8.750000 -1.812500 +v 0.937500 9.125000 -1.812500 +v -0.937500 9.125000 -1.812500 +v 0.937500 8.750000 -0.562500 +v -0.937500 8.750000 -0.562500 +v 0.937500 9.125000 -0.562500 +v -0.937500 9.125000 -0.562500 +v 0.562500 8.750000 -0.937500 +v -0.562500 8.750000 -0.937500 +v 0.562500 9.125000 -0.937500 +v -0.562500 9.125000 -0.937500 +v 0.937500 10.750000 -1.812500 +v -0.937500 10.750000 -1.812500 +v 0.937500 11.125000 -1.812500 +v -0.937500 11.125000 -1.812500 +v 0.937500 10.750000 -0.562500 +v -0.937500 10.750000 -0.562500 +v 0.937500 11.125000 -0.562500 +v -0.937500 11.125000 -0.562500 +v 0.562500 10.750000 -0.937500 +v -0.562500 10.750000 -0.937500 +v 0.562500 11.125000 -0.937500 +v -0.562500 11.125000 -0.937500 +v -0.562500 10.812500 -1.812500 +v 0.562500 10.812500 -1.812500 +v -0.562500 11.062500 -1.812500 +v 0.562500 11.062500 -1.812500 +v -0.562500 11.062500 -2.062500 +v -0.562500 10.812500 -2.062500 +v 0.562500 10.812500 -2.062500 +v 0.562500 11.062500 -2.062500 +v -0.562500 8.812500 -1.812500 +v 0.562500 8.812500 -1.812500 +v -0.562500 9.062500 -1.812500 +v 0.562500 9.062500 -1.812500 +v -0.562500 9.062500 -2.062500 +v -0.562500 8.812500 -2.062500 +v 0.562500 8.812500 -2.062500 +v 0.562500 9.062500 -2.062500 +v -0.562500 5.812500 -1.812500 +v 0.562500 5.812500 -1.812500 +v -0.562500 6.062500 -1.812500 +v 0.562500 6.062500 -1.812500 +v -0.562500 6.062500 -2.062500 +v -0.562500 5.812500 -2.062500 +v 0.562500 5.812500 -2.062500 +v 0.562500 6.062500 -2.062500 +v 0.750000 3.500000 -2.187500 +v 0.750000 3.500000 -2.812500 +v -0.750000 3.500000 -2.187500 +v -0.750000 3.500000 -2.812500 +v 0.562500 3.500000 -2.000000 +v -0.562500 3.500000 -2.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 3.500000 -3.000000 +v 0.750000 14.500000 -2.187500 +v 0.750000 14.500000 -2.812500 +v -0.750000 14.500000 -2.187500 +v -0.750000 14.500000 -2.812500 +v 0.562500 14.500000 -2.000000 +v -0.562500 14.500000 -2.000000 +v 0.562500 14.500000 -3.000000 +v -0.562500 14.500000 -3.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +s off +f 1646//106 1648//106 1647//106 +f 1650//106 1652//106 1651//106 +f 1654//106 1656//106 1655//106 +f 1658//106 1660//106 1659//106 +f 1664//107 1662//107 1663//107 +f 1668//107 1666//107 1667//107 +f 1672//107 1670//107 1671//107 +f 1676//107 1674//107 1675//107 +f 1650//108 1669//108 1653//108 +f 1647//109 1662//109 1646//109 +f 1658//108 1677//108 1661//108 +f 1655//109 1670//109 1654//109 +f 1648//110 1663//110 1647//110 +f 1656//110 1671//110 1655//110 +f 1649//111 1664//111 1648//111 +f 1657//111 1672//111 1656//111 +f 1646//108 1665//108 1649//108 +f 1654//108 1673//108 1657//108 +f 1651//109 1666//109 1650//109 +f 1659//109 1674//109 1658//109 +f 1652//110 1667//110 1651//110 +f 1660//110 1675//110 1659//110 +f 1653//111 1668//111 1652//111 +f 1661//111 1676//111 1660//111 +f 1679//108 1680//108 1678//108 +f 1689//112 1683//112 1687//112 +f 1679//109 1685//109 1681//109 +f 1679//106 1678//106 1687//106 +f 1680//111 1682//111 1678//111 +f 1680//107 1681//107 1688//107 +f 1684//113 1686//113 1682//113 +f 1688//110 1687//110 1686//110 +f 1691//108 1692//108 1690//108 +f 1701//112 1695//112 1699//112 +f 1691//109 1697//109 1693//109 +f 1691//106 1690//106 1699//106 +f 1692//111 1694//111 1690//111 +f 1692//107 1693//107 1700//107 +f 1696//113 1698//113 1694//113 +f 1700//110 1699//110 1698//110 +f 1703//108 1704//108 1702//108 +f 1713//112 1707//112 1711//112 +f 1703//109 1709//109 1705//109 +f 1703//106 1702//106 1711//106 +f 1704//111 1706//111 1702//111 +f 1704//107 1705//107 1712//107 +f 1708//113 1710//113 1706//113 +f 1712//110 1711//110 1710//110 +f 1722//106 1728//106 1723//106 +f 1718//108 1720//108 1719//108 +f 1717//107 1718//107 1716//107 +f 1714//106 1720//106 1715//106 +f 1725//107 1726//107 1724//107 +f 1726//108 1728//108 1727//108 +f 1730//106 1736//106 1731//106 +f 1733//107 1734//107 1732//107 +f 1734//108 1736//108 1735//108 +f 1745//108 1752//108 1744//108 +f 1748//109 1741//109 1740//109 +f 1750//110 1743//110 1742//110 +f 1739//111 1746//111 1738//111 +f 1646//106 1649//106 1648//106 +f 1650//106 1653//106 1652//106 +f 1654//106 1657//106 1656//106 +f 1658//106 1661//106 1660//106 +f 1664//107 1665//107 1662//107 +f 1668//107 1669//107 1666//107 +f 1672//107 1673//107 1670//107 +f 1676//107 1677//107 1674//107 +f 1650//108 1666//108 1669//108 +f 1647//109 1663//109 1662//109 +f 1658//108 1674//108 1677//108 +f 1655//109 1671//109 1670//109 +f 1648//110 1664//110 1663//110 +f 1656//110 1672//110 1671//110 +f 1649//111 1665//111 1664//111 +f 1657//111 1673//111 1672//111 +f 1646//108 1662//108 1665//108 +f 1654//108 1670//108 1673//108 +f 1651//109 1667//109 1666//109 +f 1659//109 1675//109 1674//109 +f 1652//110 1668//110 1667//110 +f 1660//110 1676//110 1675//110 +f 1653//111 1669//111 1668//111 +f 1661//111 1677//111 1676//111 +f 1679//108 1681//108 1680//108 +f 1689//112 1685//112 1683//112 +f 1679//109 1683//109 1685//109 +f 1678//106 1682//106 1686//106 +f 1687//106 1683//106 1679//106 +f 1678//106 1686//106 1687//106 +f 1680//111 1684//111 1682//111 +f 1681//107 1685//107 1689//107 +f 1688//107 1684//107 1680//107 +f 1681//107 1689//107 1688//107 +f 1684//113 1688//113 1686//113 +f 1688//110 1689//110 1687//110 +f 1691//108 1693//108 1692//108 +f 1701//112 1697//112 1695//112 +f 1691//109 1695//109 1697//109 +f 1690//106 1694//106 1698//106 +f 1699//106 1695//106 1691//106 +f 1690//106 1698//106 1699//106 +f 1692//111 1696//111 1694//111 +f 1693//107 1697//107 1701//107 +f 1700//107 1696//107 1692//107 +f 1693//107 1701//107 1700//107 +f 1696//113 1700//113 1698//113 +f 1700//110 1701//110 1699//110 +f 1703//108 1705//108 1704//108 +f 1713//112 1709//112 1707//112 +f 1703//109 1707//109 1709//109 +f 1702//106 1706//106 1710//106 +f 1711//106 1707//106 1703//106 +f 1702//106 1710//106 1711//106 +f 1704//111 1708//111 1706//111 +f 1705//107 1709//107 1713//107 +f 1712//107 1708//107 1704//107 +f 1705//107 1713//107 1712//107 +f 1708//113 1712//113 1710//113 +f 1712//110 1713//110 1711//110 +f 1722//106 1727//106 1728//106 +f 1718//108 1721//108 1720//108 +f 1717//107 1721//107 1718//107 +f 1714//106 1719//106 1720//106 +f 1725//107 1729//107 1726//107 +f 1726//108 1729//108 1728//108 +f 1730//106 1735//106 1736//106 +f 1733//107 1737//107 1734//107 +f 1734//108 1737//108 1736//108 +f 1745//108 1753//108 1752//108 +f 1748//109 1749//109 1741//109 +f 1750//110 1751//110 1743//110 +f 1739//111 1747//111 1746//111 +o Huge_Pad +v -1.250000 2.000000 1.250000 +v 1.250000 2.000000 1.250000 +v -1.250000 2.000000 -1.250000 +v 1.250000 2.000000 -1.250000 +v -2.500000 2.000000 2.500000 +v 2.500000 2.000000 2.500000 +v -2.500000 2.000000 -2.500000 +v 2.500000 2.000000 -2.500000 +v -2.500000 1.500000 2.500000 +v 2.500000 1.500000 2.500000 +v -2.500000 1.500000 -2.500000 +v 2.500000 1.500000 -2.500000 +v -3.000000 1.500000 3.000000 +v 3.000000 1.500000 3.000000 +v -3.000000 1.500000 -3.000000 +v 3.000000 1.500000 -3.000000 +v -3.000000 1.000000 3.000000 +v 3.000000 1.000000 3.000000 +v -3.000000 1.000000 -3.000000 +v 3.000000 1.000000 -3.000000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -1.250000 2.000000 1.250000 +v 1.250000 2.000000 1.250000 +v -1.250000 2.000000 -1.250000 +v 1.250000 2.000000 -1.250000 +v -1.500000 1.000000 -2.500000 +v 1.500000 1.000000 -2.500000 +v -1.500000 1.000000 -3.500000 +v 1.500000 1.000000 -3.500000 +v -1.500000 2.000000 -3.500000 +v -1.500000 2.000000 -2.500000 +v 1.500000 2.000000 -2.500000 +v 1.500000 2.000000 -3.500000 +v -2.000000 1.000000 4.000000 +v 2.000000 1.000000 4.000000 +v -2.000000 1.000000 2.500000 +v 2.000000 1.000000 2.500000 +v -2.000000 2.000000 2.500000 +v -2.000000 2.000000 4.000000 +v 2.000000 2.000000 4.000000 +v 2.000000 2.000000 2.500000 +v 0.812500 2.000000 3.687500 +v 1.187500 2.000000 3.687500 +v 0.812500 2.000000 3.312500 +v 1.187500 2.000000 3.312500 +v -1.187500 2.000000 3.687500 +v -0.812500 2.000000 3.687500 +v -1.187500 2.000000 3.312500 +v -0.812500 2.000000 3.312500 +v 0.812500 2.000000 2.187500 +v 1.187500 2.000000 2.187500 +v 0.812500 2.000000 1.812500 +v 1.187500 2.000000 1.812500 +v -1.187500 2.000000 2.187500 +v -0.812500 2.000000 2.187500 +v -1.187500 2.000000 1.812500 +v -0.812500 2.000000 1.812500 +v 0.812500 8.000000 3.312500 +v 0.812500 8.000000 3.687500 +v 1.187500 8.000000 3.687500 +v 1.187500 8.000000 3.312500 +v -1.187500 8.000000 3.312500 +v -1.187500 8.000000 3.687500 +v -0.812500 8.000000 3.687500 +v -0.812500 8.000000 3.312500 +v 0.812500 8.000000 1.812500 +v 0.812500 8.000000 2.187500 +v 1.187500 8.000000 2.187500 +v 1.187500 8.000000 1.812500 +v -1.187500 8.000000 1.812500 +v -1.187500 8.000000 2.187500 +v -0.812500 8.000000 2.187500 +v -0.812500 8.000000 1.812500 +v -1.500000 8.000000 4.000000 +v 1.500000 8.000000 4.000000 +v -1.500000 8.000000 1.500000 +v 1.500000 8.000000 1.500000 +v -1.500000 8.250000 1.500000 +v -1.500000 8.250000 4.000000 +v 1.500000 8.250000 4.000000 +v 1.500000 8.250000 1.500000 +v 0.812500 8.250000 2.187500 +v 1.187500 8.250000 2.187500 +v 0.812500 8.250000 1.812500 +v 1.187500 8.250000 1.812500 +v -1.187500 8.250000 2.187500 +v -0.812500 8.250000 2.187500 +v -1.187500 8.250000 1.812500 +v -0.812500 8.250000 1.812500 +v 0.812500 14.250000 1.812500 +v 0.812500 14.250000 2.187500 +v 1.187500 14.250000 2.187500 +v 1.187500 14.250000 1.812500 +v -1.187500 14.250000 1.812500 +v -1.187500 14.250000 2.187500 +v -0.812500 14.250000 2.187500 +v -0.812500 14.250000 1.812500 +v 0.812500 8.250000 3.187500 +v 1.187500 8.250000 3.187500 +v 0.812500 8.250000 2.812500 +v 1.187500 8.250000 2.812500 +v -1.187500 8.250000 3.187500 +v -0.812500 8.250000 3.187500 +v -1.187500 8.250000 2.812500 +v -0.812500 8.250000 2.812500 +v 0.812500 14.250000 2.812500 +v 0.812500 14.250000 3.187500 +v 1.187500 14.250000 3.187500 +v 1.187500 14.250000 2.812500 +v -1.187500 14.250000 2.812500 +v -1.187500 14.250000 3.187500 +v -0.812500 14.250000 3.187500 +v -0.812500 14.250000 2.812500 +v 0.812500 2.000000 2.000000 +v -0.812500 2.000000 2.000000 +v 0.812500 8.000000 2.000000 +v -0.812500 8.000000 2.000000 +v 0.812500 2.000000 3.500000 +v -0.812500 2.000000 3.500000 +v 0.812500 8.000000 3.500000 +v -0.812500 8.000000 3.500000 +v -1.000000 2.000000 3.312500 +v -1.000000 2.000000 2.187500 +v -1.000000 8.000000 3.312500 +v -1.000000 8.000000 2.187500 +v 1.000000 2.000000 3.312500 +v 1.000000 2.000000 2.187500 +v 1.000000 8.000000 3.312500 +v 1.000000 8.000000 2.187500 +v 0.812500 8.250000 2.000000 +v -0.812500 8.250000 2.000000 +v 0.812500 14.250000 2.000000 +v -0.812500 14.250000 2.000000 +v 0.812500 8.250000 3.000000 +v -0.812500 8.250000 3.000000 +v 0.812500 14.250000 3.000000 +v -0.812500 14.250000 3.000000 +v -1.000000 8.250000 2.187500 +v -1.000000 14.250000 2.187500 +v -1.000000 8.250000 2.812500 +v -1.000000 14.250000 2.812500 +v 1.000000 8.250000 2.187500 +v 1.000000 14.250000 2.187500 +v 1.000000 8.250000 2.812500 +v 1.000000 14.250000 2.812500 +v -1.500000 14.250000 3.500000 +v 1.500000 14.250000 3.500000 +v -1.500000 14.250000 1.500000 +v 1.500000 14.250000 1.500000 +v -1.500000 14.500000 1.500000 +v -1.500000 14.500000 3.500000 +v 1.500000 14.500000 3.500000 +v 1.500000 14.500000 1.500000 +v 0.375000 2.000000 2.250000 +v 0.198223 2.000000 2.323223 +v 0.125000 2.000000 2.500000 +v 0.198223 2.000000 2.676777 +v 0.375000 2.000000 2.750000 +v 0.551777 2.000000 2.676777 +v 0.625000 2.000000 2.500000 +v 0.551777 2.000000 2.323223 +v 0.375000 10.000000 2.250000 +v 0.198223 10.000000 2.323223 +v 0.125000 10.000000 2.500000 +v 0.198223 10.000000 2.676777 +v 0.375000 10.000000 2.750000 +v 0.551777 10.000000 2.676777 +v 0.625000 10.000000 2.500000 +v 0.551777 10.000000 2.323223 +v 0.198223 10.051777 2.301777 +v 0.125000 10.176777 2.426777 +v 0.198223 10.301777 2.551777 +v 0.375000 10.353554 2.603553 +v 0.551777 10.301777 2.551777 +v 0.625000 10.176777 2.426777 +v 0.551777 10.051777 2.301777 +v 0.198223 10.073223 2.250000 +v 0.125000 10.250000 2.250000 +v 0.198223 10.426777 2.250000 +v 0.375000 10.500000 2.250000 +v 0.551777 10.426777 2.250000 +v 0.625000 10.250000 2.250000 +v 0.551777 10.073223 2.250000 +v -0.375000 2.000000 2.250000 +v -0.551777 2.000000 2.323223 +v -0.625000 2.000000 2.500000 +v -0.551777 2.000000 2.676777 +v -0.375000 2.000000 2.750000 +v -0.198223 2.000000 2.676777 +v -0.125000 2.000000 2.500000 +v -0.198223 2.000000 2.323223 +v -0.375000 10.000000 2.250000 +v -0.551777 10.000000 2.323223 +v -0.625000 10.000000 2.500000 +v -0.551777 10.000000 2.676777 +v -0.375000 10.000000 2.750000 +v -0.198223 10.000000 2.676777 +v -0.125000 10.000000 2.500000 +v -0.198223 10.000000 2.323223 +v -0.551777 10.051777 2.301777 +v -0.625000 10.176777 2.426777 +v -0.551777 10.301777 2.551777 +v -0.375000 10.353554 2.603553 +v -0.198223 10.301777 2.551777 +v -0.125000 10.176777 2.426777 +v -0.198223 10.051777 2.301777 +v -0.551777 10.073223 2.250000 +v -0.625000 10.250000 2.250000 +v -0.551777 10.426777 2.250000 +v -0.375000 10.500000 2.250000 +v -0.198223 10.426777 2.250000 +v -0.125000 10.250000 2.250000 +v -0.198223 10.073223 2.250000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.6000 -0.8000 +vn 0.8000 0.6000 0.0000 +vn 0.0000 0.6000 0.8000 +vn -0.8000 0.6000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.1866 0.9824 +vn -0.7071 0.0000 0.7071 +vn -0.9987 0.0196 0.0473 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 -0.1944 -0.9809 +vn 0.7263 -0.1363 -0.6737 +vn 0.7071 0.0000 -0.7071 +vn 0.6794 0.1448 0.7194 +vn -0.6794 0.1448 0.7194 +vn -0.7263 -0.1363 -0.6737 +vn 0.9987 0.0196 0.0473 +vn 0.6630 0.5294 0.5294 +vn 0.0000 0.7071 0.7071 +vn -0.6630 0.5294 0.5294 +vn -0.9955 0.0671 0.0671 +vn -0.7574 -0.4617 -0.4617 +vn 0.9955 0.0671 0.0671 +vn -0.6333 0.7150 0.2962 +vn -0.9947 0.0948 0.0393 +vn -0.7311 -0.6303 -0.2611 +vn 0.7574 -0.4617 -0.4617 +vn 0.9947 0.0948 0.0393 +vn 0.0000 0.9239 0.3827 +vn 0.6333 0.7150 0.2962 +vn 0.7311 -0.6303 -0.2611 +s off +f 1778//114 1781//114 1780//114 +f 1754//114 1759//114 1755//114 +f 1756//114 1758//114 1754//114 +f 1757//114 1760//114 1756//114 +f 1755//114 1761//114 1757//114 +f 1761//115 1764//115 1760//115 +f 1758//116 1763//116 1759//116 +f 1759//117 1765//117 1761//117 +f 1760//118 1762//118 1758//118 +f 1763//114 1769//114 1765//114 +f 1762//114 1767//114 1763//114 +f 1764//114 1766//114 1762//114 +f 1765//114 1768//114 1764//114 +f 1767//117 1773//117 1769//117 +f 1768//118 1770//118 1766//118 +f 1769//115 1772//115 1768//115 +f 1766//116 1771//116 1767//116 +f 1775//119 1754//119 1755//119 +f 1774//120 1756//120 1754//120 +f 1776//121 1757//121 1756//121 +f 1777//122 1755//122 1757//122 +f 1788//114 1786//114 1787//114 +f 1784//115 1789//115 1785//115 +f 1785//117 1788//117 1783//117 +f 1782//118 1786//118 1784//118 +f 1796//114 1794//114 1795//114 +f 1793//117 1796//117 1791//117 +f 1790//118 1794//118 1792//118 +f 1791//116 1795//116 1790//116 +f 1809//117 1824//117 1807//117 +f 1800//115 1817//115 1801//115 +f 1808//115 1825//115 1809//115 +f 1802//118 1818//118 1804//118 +f 1810//118 1826//118 1812//118 +f 1803//116 1819//116 1802//116 +f 1811//116 1827//116 1810//116 +f 1805//117 1820//117 1803//117 +f 1813//117 1828//117 1811//117 +f 1804//115 1821//115 1805//115 +f 1798//118 1814//118 1800//118 +f 1812//115 1829//115 1813//115 +f 1806//118 1822//118 1808//118 +f 1799//116 1815//116 1798//116 +f 1807//116 1823//116 1806//116 +f 1801//117 1816//117 1799//117 +f 1832//123 1831//123 1830//123 +f 1836//114 1834//114 1835//114 +f 1832//115 1837//115 1833//115 +f 1831//116 1835//116 1830//116 +f 1833//117 1836//117 1831//117 +f 1830//118 1834//118 1832//118 +f 1841//117 1848//117 1839//117 +f 1840//115 1849//115 1841//115 +f 1842//118 1850//118 1844//118 +f 1843//116 1851//116 1842//116 +f 1845//117 1852//117 1843//117 +f 1844//115 1853//115 1845//115 +f 1838//118 1846//118 1840//118 +f 1839//116 1847//116 1838//116 +f 1857//117 1864//117 1855//117 +f 1856//115 1865//115 1857//115 +f 1858//118 1866//118 1860//118 +f 1859//116 1867//116 1858//116 +f 1861//117 1868//117 1859//117 +f 1860//115 1869//115 1861//115 +f 1854//118 1862//118 1856//118 +f 1855//116 1863//116 1854//116 +f 1904//123 1903//123 1902//123 +f 1872//115 1871//115 1873//115 +f 1875//116 1876//116 1877//116 +f 1879//118 1880//118 1881//118 +f 1884//117 1883//117 1885//117 +f 1888//115 1887//115 1889//115 +f 1891//116 1892//116 1893//116 +f 1894//118 1897//118 1895//118 +f 1901//117 1898//117 1899//117 +f 1908//114 1906//114 1907//114 +f 1904//115 1909//115 1905//115 +f 1903//116 1907//116 1902//116 +f 1905//117 1908//117 1903//117 +f 1902//118 1906//118 1904//118 +f 1939//115 1918//115 1933//115 +f 1948//115 1963//115 1967//115 +f 1778//114 1779//114 1781//114 +f 1754//114 1758//114 1759//114 +f 1756//114 1760//114 1758//114 +f 1757//114 1761//114 1760//114 +f 1755//114 1759//114 1761//114 +f 1761//115 1765//115 1764//115 +f 1758//116 1762//116 1763//116 +f 1759//117 1763//117 1765//117 +f 1760//118 1764//118 1762//118 +f 1763//114 1767//114 1769//114 +f 1762//114 1766//114 1767//114 +f 1764//114 1768//114 1766//114 +f 1765//114 1769//114 1768//114 +f 1767//117 1771//117 1773//117 +f 1768//118 1772//118 1770//118 +f 1769//115 1773//115 1772//115 +f 1766//116 1770//116 1771//116 +f 1775//119 1774//119 1754//119 +f 1774//120 1776//120 1756//120 +f 1776//121 1777//121 1757//121 +f 1777//122 1775//122 1755//122 +f 1788//114 1789//114 1786//114 +f 1784//115 1786//115 1789//115 +f 1785//117 1789//117 1788//117 +f 1782//118 1787//118 1786//118 +f 1796//114 1797//114 1794//114 +f 1793//117 1797//117 1796//117 +f 1790//118 1795//118 1794//118 +f 1791//116 1796//116 1795//116 +f 1809//117 1825//117 1824//117 +f 1800//115 1814//115 1817//115 +f 1808//115 1822//115 1825//115 +f 1802//118 1819//118 1818//118 +f 1810//118 1827//118 1826//118 +f 1803//116 1820//116 1819//116 +f 1811//116 1828//116 1827//116 +f 1805//117 1821//117 1820//117 +f 1813//117 1829//117 1828//117 +f 1804//115 1818//115 1821//115 +f 1798//118 1815//118 1814//118 +f 1812//115 1826//115 1829//115 +f 1806//118 1823//118 1822//118 +f 1799//116 1816//116 1815//116 +f 1807//116 1824//116 1823//116 +f 1801//117 1817//117 1816//117 +f 1832//123 1833//123 1831//123 +f 1836//114 1837//114 1834//114 +f 1832//115 1834//115 1837//115 +f 1831//116 1836//116 1835//116 +f 1833//117 1837//117 1836//117 +f 1830//118 1835//118 1834//118 +f 1841//117 1849//117 1848//117 +f 1840//115 1846//115 1849//115 +f 1842//118 1851//118 1850//118 +f 1843//116 1852//116 1851//116 +f 1845//117 1853//117 1852//117 +f 1844//115 1850//115 1853//115 +f 1838//118 1847//118 1846//118 +f 1839//116 1848//116 1847//116 +f 1857//117 1865//117 1864//117 +f 1856//115 1862//115 1865//115 +f 1858//118 1867//118 1866//118 +f 1859//116 1868//116 1867//116 +f 1861//117 1869//117 1868//117 +f 1860//115 1866//115 1869//115 +f 1854//118 1863//118 1862//118 +f 1855//116 1864//116 1863//116 +f 1904//123 1905//123 1903//123 +f 1872//115 1870//115 1871//115 +f 1875//116 1874//116 1876//116 +f 1879//118 1878//118 1880//118 +f 1884//117 1882//117 1883//117 +f 1888//115 1886//115 1887//115 +f 1891//116 1890//116 1892//116 +f 1894//118 1896//118 1897//118 +f 1901//117 1900//117 1898//117 +f 1908//114 1909//114 1906//114 +f 1904//115 1906//115 1909//115 +f 1903//116 1908//116 1907//116 +f 1905//117 1909//117 1908//117 +f 1902//118 1907//118 1906//118 +f 1933//115 1934//115 1937//115 +f 1934//115 1935//115 1937//115 +f 1935//115 1936//115 1937//115 +f 1937//115 1938//115 1933//115 +f 1938//115 1939//115 1933//115 +f 1963//115 1964//115 1967//115 +f 1964//115 1965//115 1967//115 +f 1965//115 1966//115 1967//115 +f 1967//115 1968//115 1969//115 +f 1969//115 1948//115 1967//115 +s 1 +f 1915//124 1922//125 1914//116 +f 1913//126 1920//127 1912//118 +f 1911//128 1918//129 1910//115 +f 1910//115 1925//130 1917//131 +f 1916//117 1923//132 1915//124 +f 1914//116 1921//133 1913//126 +f 1912//118 1919//134 1911//128 +f 1917//131 1924//135 1916//117 +f 1924//135 1930//136 1923//132 +f 1921//133 1929//137 1928//138 +f 1919//134 1927//139 1926//140 +f 1925//130 1931//141 1924//135 +f 1922//125 1930//136 1929//137 +f 1920//127 1928//138 1927//139 +f 1929//137 1935//142 1928//138 +f 1926//140 1934//143 1933//144 +f 1932//145 1938//146 1931//141 +f 1930//136 1936//147 1929//137 +f 1927//139 1935//142 1934//143 +f 1930//136 1938//146 1937//148 +f 1925//130 1918//129 1932//145 +f 1932//145 1918//129 1939//149 +f 1919//134 1926//140 1918//129 +f 1926//140 1933//144 1918//129 +f 1945//124 1952//125 1944//116 +f 1943//126 1950//127 1942//118 +f 1941//128 1948//129 1940//115 +f 1940//115 1955//130 1947//131 +f 1946//117 1953//132 1945//124 +f 1944//116 1951//133 1943//126 +f 1942//118 1949//134 1941//128 +f 1947//131 1954//135 1946//117 +f 1954//135 1960//136 1953//132 +f 1952//125 1958//138 1951//133 +f 1949//134 1957//139 1956//140 +f 1955//130 1961//141 1954//135 +f 1953//132 1959//137 1952//125 +f 1950//127 1958//138 1957//139 +f 1959//137 1965//142 1958//138 +f 1956//140 1964//143 1963//144 +f 1962//145 1968//146 1961//141 +f 1960//136 1966//147 1959//137 +f 1958//138 1964//143 1957//139 +f 1961//141 1967//148 1960//136 +f 1955//130 1948//129 1962//145 +f 1962//145 1948//129 1969//149 +f 1949//134 1956//140 1948//129 +f 1956//140 1963//144 1948//129 +f 1915//124 1923//132 1922//125 +f 1913//126 1921//133 1920//127 +f 1911//128 1919//134 1918//129 +f 1910//115 1918//129 1925//130 +f 1916//117 1924//135 1923//132 +f 1914//116 1922//125 1921//133 +f 1912//118 1920//127 1919//134 +f 1917//131 1925//130 1924//135 +f 1924//135 1931//141 1930//136 +f 1921//133 1922//125 1929//137 +f 1919//134 1920//127 1927//139 +f 1925//130 1932//145 1931//141 +f 1922//125 1923//132 1930//136 +f 1920//127 1921//133 1928//138 +f 1929//137 1936//147 1935//142 +f 1926//140 1927//139 1934//143 +f 1932//145 1939//149 1938//146 +f 1930//136 1937//148 1936//147 +f 1927//139 1928//138 1935//142 +f 1930//136 1931//141 1938//146 +f 1945//124 1953//132 1952//125 +f 1943//126 1951//133 1950//127 +f 1941//128 1949//134 1948//129 +f 1940//115 1948//129 1955//130 +f 1946//117 1954//135 1953//132 +f 1944//116 1952//125 1951//133 +f 1942//118 1950//127 1949//134 +f 1947//131 1955//130 1954//135 +f 1954//135 1961//141 1960//136 +f 1952//125 1959//137 1958//138 +f 1949//134 1950//127 1957//139 +f 1955//130 1962//145 1961//141 +f 1953//132 1960//136 1959//137 +f 1950//127 1951//133 1958//138 +f 1959//137 1966//147 1965//142 +f 1956//140 1957//139 1964//143 +f 1962//145 1969//149 1968//146 +f 1960//136 1967//148 1966//147 +f 1958//138 1965//142 1964//143 +f 1961//141 1968//146 1967//148 +o Strong_Pad +v -2.500000 2.000000 2.500000 +v 2.500000 2.000000 2.500000 +v -2.500000 2.000000 -2.500000 +v 2.500000 2.000000 -2.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v 2.500000 1.000000 2.500000 +v -2.500000 1.000000 -2.500000 +v -2.500000 1.000000 2.500000 +v 2.500000 1.000000 -2.500000 +v 2.500000 1.000000 1.500000 +v -2.500000 1.000000 1.500000 +v -2.500000 1.000000 -1.500000 +v 2.500000 1.000000 -1.500000 +v -1.500000 1.000000 -2.500000 +v -1.500000 1.000000 2.500000 +v 1.500000 1.000000 2.500000 +v 1.500000 1.000000 -2.500000 +v 2.500000 1.500000 0.500000 +v -2.500000 1.500000 0.500000 +v -2.500000 1.500000 -0.500000 +v 2.500000 1.500000 -0.500000 +v -0.500000 1.500000 -2.500000 +v -0.500000 1.500000 2.500000 +v 0.500000 1.500000 2.500000 +v 0.500000 1.500000 -2.500000 +v -0.500000 1.500000 0.500000 +v 0.500000 1.500000 0.500000 +v -0.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -2.500000 +v 1.500000 1.000000 -2.500000 +v -1.500000 1.000000 -3.500000 +v 1.500000 1.000000 -3.500000 +v -1.500000 2.000000 -2.500000 +v 1.500000 2.000000 -2.500000 +v -1.500000 2.000000 -3.000000 +v -1.500000 1.500000 -3.500000 +v 1.500000 1.500000 -3.500000 +v 1.500000 2.000000 -3.000000 +v -1.000000 1.000000 3.500000 +v 1.000000 1.000000 3.500000 +v -1.000000 1.000000 2.500000 +v 1.000000 1.000000 2.500000 +v -1.000000 11.000000 2.500000 +v -1.000000 11.000000 3.500000 +v 1.000000 11.000000 3.500000 +v 1.000000 11.000000 2.500000 +v 3.250000 1.000000 2.500000 +v 3.500000 1.250000 2.500000 +v 2.500000 1.250000 2.500000 +v 2.750000 1.000000 2.500000 +v 3.500000 1.250000 4.500000 +v 3.250000 1.000000 4.500000 +v 2.750000 1.000000 4.500000 +v 2.500000 1.250000 4.500000 +v 1.500000 1.250000 4.500000 +v 1.750000 1.000000 4.500000 +v 2.250000 1.000000 4.500000 +v 2.500000 1.250000 4.500000 +v 1.750000 1.000000 2.500000 +v 1.500000 1.250000 2.500000 +v 2.500000 1.250000 2.500000 +v 2.250000 1.000000 2.500000 +v 1.500000 1.750000 2.500000 +v 1.750000 2.000000 2.500000 +v 1.750000 2.000000 4.500000 +v 1.500000 1.750000 4.500000 +v 2.500000 1.750000 4.500000 +v 2.250000 2.000000 4.500000 +v 2.250000 2.000000 2.500000 +v 2.500000 1.750000 2.500000 +v 2.500000 1.750000 2.500000 +v 2.750000 2.000000 2.500000 +v 2.750000 2.000000 4.500000 +v 2.500000 1.750000 4.500000 +v 3.500000 1.750000 4.500000 +v 3.250000 2.000000 4.500000 +v 3.250000 2.000000 2.500000 +v 3.500000 1.750000 2.500000 +v -1.750000 1.000000 2.500000 +v -1.500000 1.250000 2.500000 +v -2.500000 1.250000 2.500000 +v -2.250000 1.000000 2.500000 +v -1.500000 1.250000 4.500000 +v -1.750000 1.000000 4.500000 +v -2.250000 1.000000 4.500000 +v -2.500000 1.250000 4.500000 +v -3.500000 1.250000 4.500000 +v -3.250000 1.000000 4.500000 +v -2.750000 1.000000 4.500000 +v -2.500000 1.250000 4.500000 +v -3.250000 1.000000 2.500000 +v -3.500000 1.250000 2.500000 +v -2.500000 1.250000 2.500000 +v -2.750000 1.000000 2.500000 +v -3.500000 1.750000 2.500000 +v -3.250000 2.000000 2.500000 +v -3.250000 2.000000 4.500000 +v -3.500000 1.750000 4.500000 +v -2.500000 1.750000 4.500000 +v -2.750000 2.000000 4.500000 +v -2.750000 2.000000 2.500000 +v -2.500000 1.750000 2.500000 +v -2.500000 1.750000 2.500000 +v -2.250000 2.000000 2.500000 +v -2.250000 2.000000 4.500000 +v -2.500000 1.750000 4.500000 +v -1.500000 1.750000 4.500000 +v -1.750000 2.000000 4.500000 +v -1.750000 2.000000 2.500000 +v -1.500000 1.750000 2.500000 +v 3.000000 2.000000 2.625000 +v 2.911612 2.000000 2.661612 +v 2.875000 2.000000 2.750000 +v 2.911612 2.000000 2.838388 +v 3.000000 2.000000 2.875000 +v 3.088388 2.000000 2.838388 +v 3.125000 2.000000 2.750000 +v 3.088388 2.000000 2.661612 +v 2.963388 2.088388 2.625000 +v 2.900888 2.025888 2.661612 +v 2.900888 2.025888 2.838388 +v 2.963388 2.088388 2.875000 +v 3.025888 2.150888 2.838388 +v 3.051777 2.176777 2.750000 +v 3.025888 2.150888 2.661612 +v 2.875000 2.125000 2.625000 +v 2.875000 2.036612 2.661612 +v 2.875000 2.036612 2.838388 +v 2.875000 2.125000 2.875000 +v 2.875000 2.213388 2.838388 +v 2.875000 2.250000 2.750000 +v 2.875000 2.213388 2.661612 +v 1.000000 2.000000 2.750000 +v 1.000000 2.125000 2.625000 +v 1.000000 2.036612 2.661612 +v 1.000000 2.036612 2.838388 +v 1.000000 2.125000 2.875000 +v 1.000000 2.213388 2.838388 +v 1.000000 2.250000 2.750000 +v 1.000000 2.213388 2.661612 +v 2.000000 2.000000 3.125000 +v 1.911612 2.000000 3.161612 +v 1.875000 2.000000 3.250000 +v 1.911612 2.000000 3.338388 +v 2.000000 2.000000 3.375000 +v 2.088388 2.000000 3.338388 +v 2.125000 2.000000 3.250000 +v 2.088388 2.000000 3.161612 +v 1.963388 2.088388 3.125000 +v 1.900888 2.025888 3.161612 +v 1.900888 2.025888 3.338388 +v 1.963388 2.088388 3.375000 +v 2.025888 2.150888 3.338388 +v 2.051777 2.176777 3.250000 +v 2.025888 2.150888 3.161612 +v 1.875000 2.125000 3.125000 +v 1.875000 2.036612 3.161612 +v 1.875000 2.036612 3.338388 +v 1.875000 2.125000 3.375000 +v 1.875000 2.213388 3.338388 +v 1.875000 2.250000 3.250000 +v 1.875000 2.213388 3.161612 +v 1.000000 2.000000 3.250000 +v 1.000000 2.125000 3.125000 +v 1.000000 2.036612 3.161612 +v 1.000000 2.036612 3.338388 +v 1.000000 2.125000 3.375000 +v 1.000000 2.213388 3.338388 +v 1.000000 2.250000 3.250000 +v 1.000000 2.213388 3.161612 +v -3.000000 2.000000 3.375000 +v -2.911612 2.000000 3.338389 +v -2.875000 2.000000 3.250000 +v -2.911612 2.000000 3.161612 +v -3.000000 2.000000 3.125000 +v -3.088388 2.000000 3.161612 +v -3.125000 2.000000 3.250000 +v -3.088388 2.000000 3.338389 +v -2.963388 2.088388 3.375000 +v -2.900888 2.025888 3.338389 +v -2.900888 2.025888 3.161612 +v -2.963388 2.088388 3.125000 +v -3.025888 2.150888 3.161612 +v -3.051777 2.176777 3.250000 +v -3.025888 2.150888 3.338389 +v -2.875000 2.125000 3.375000 +v -2.875000 2.036612 3.338389 +v -2.875000 2.036612 3.161612 +v -2.875000 2.125000 3.125000 +v -2.875000 2.213388 3.161612 +v -2.875000 2.250000 3.250000 +v -2.875000 2.213388 3.338389 +v -1.000000 2.000000 3.250000 +v -1.000000 2.125000 3.375000 +v -1.000000 2.036612 3.338388 +v -1.000000 2.036612 3.161612 +v -1.000000 2.125000 3.125000 +v -1.000000 2.213388 3.161612 +v -1.000000 2.250000 3.250000 +v -1.000000 2.213388 3.338388 +v -2.000000 2.000000 2.875000 +v -1.911612 2.000000 2.838389 +v -1.875000 2.000000 2.750000 +v -1.911612 2.000000 2.661612 +v -2.000000 2.000000 2.625000 +v -2.088388 2.000000 2.661612 +v -2.125000 2.000000 2.750000 +v -2.088388 2.000000 2.838389 +v -1.963388 2.088388 2.875000 +v -1.900888 2.025888 2.838389 +v -1.900888 2.025888 2.661612 +v -1.963388 2.088388 2.625000 +v -2.025888 2.150888 2.661612 +v -2.051777 2.176777 2.750000 +v -2.025888 2.150888 2.838389 +v -1.875000 2.125000 2.875000 +v -1.875000 2.036612 2.838389 +v -1.875000 2.036612 2.661612 +v -1.875000 2.125000 2.625000 +v -1.875000 2.213388 2.661612 +v -1.875000 2.250000 2.750000 +v -1.875000 2.213388 2.838389 +v -1.000000 2.000000 2.750000 +v -1.000000 2.125000 2.875000 +v -1.000000 2.036612 2.838388 +v -1.000000 2.036612 2.661612 +v -1.000000 2.125000 2.625000 +v -1.000000 2.213388 2.661612 +v -1.000000 2.250000 2.750000 +v -1.000000 2.213388 2.838388 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 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.4472 -0.8944 0.0000 +vn 0.0000 0.7071 -0.7071 +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 +vn 0.5293 0.5293 -0.6630 +vn 0.9239 0.3827 0.0000 +vn 0.7150 0.2962 -0.6332 +vn 0.7150 0.2962 0.6332 +vn 0.0670 0.0670 0.9955 +vn 0.0948 0.0392 0.9947 +vn -0.4617 -0.4617 -0.7573 +vn 0.0948 0.0392 -0.9947 +vn -0.6303 -0.2611 -0.7311 +vn 0.0670 0.0670 -0.9955 +vn -0.4617 -0.4617 0.7573 +vn -0.6303 -0.2611 0.7311 +vn 0.1447 0.7194 0.6794 +vn 0.5293 0.5293 0.6630 +vn -0.1363 -0.6737 -0.7263 +vn 0.0196 0.0473 -0.9987 +vn 0.1866 0.9824 0.0000 +vn -0.1363 -0.6737 0.7263 +vn -0.1944 -0.9809 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.1447 0.7194 -0.6794 +vn 0.0000 0.7071 0.7071 +vn 0.0196 0.0473 0.9987 +vn 0.0000 -0.7071 0.7071 +vn -0.7150 0.2962 0.6332 +vn -0.9239 0.3827 0.0000 +vn -0.7150 0.2962 -0.6332 +vn -0.0670 0.0670 -0.9955 +vn -0.0948 0.0392 -0.9947 +vn 0.4617 -0.4617 0.7573 +vn -0.0948 0.0392 0.9947 +vn 0.6303 -0.2611 0.7311 +vn -0.0670 0.0670 0.9955 +vn -0.5293 0.5293 -0.6630 +vn 0.4617 -0.4617 -0.7573 +vn 0.6303 -0.2611 -0.7311 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.5293 0.5293 0.6630 +vn -0.1866 0.9824 0.0000 +vn 0.1363 -0.6737 -0.7263 +vn 0.1944 -0.9809 0.0000 +vn -0.1447 0.7194 0.6794 +vn -0.1447 0.7194 -0.6794 +s off +f 1975//150 1970//150 1971//150 +f 1977//151 1999//151 1975//151 +f 1974//150 1972//150 1970//150 +f 1976//150 1973//150 1972//150 +f 1977//150 1971//150 1973//150 +f 1971//152 1970//152 1996//152 +f 1970//151 1972//151 1991//151 +f 1972//153 1973//153 1994//153 +f 1973//154 1971//154 1993//154 +f 1974//154 2000//154 1976//154 +f 1976//152 2001//152 1977//152 +f 1975//153 1998//153 1974//153 +f 1990//155 2001//155 1993//155 +f 1995//155 1999//155 1996//155 +f 1992//155 1998//155 1991//155 +f 1997//155 2000//155 1994//155 +f 2005//156 1996//156 1999//156 +f 2005//157 1990//157 1982//157 +f 1993//158 2003//158 1985//158 +f 1997//156 2003//156 2001//156 +f 2002//159 1994//159 2000//159 +f 2002//158 1992//158 1984//158 +f 1991//157 2004//157 1983//157 +f 1995//159 2004//159 1998//159 +f 2008//153 2014//153 2009//153 +f 2011//150 2012//150 2010//150 +f 2015//154 2007//154 2014//154 +f 2007//152 2010//152 2006//152 +f 2013//160 2015//160 2014//160 +f 2006//151 2012//151 2013//151 +f 2035//152 2045//152 2043//152 +f 2022//150 2020//150 2021//150 +f 2019//154 2022//154 2017//154 +f 2016//151 2020//151 2018//151 +f 2018//153 2023//153 2019//153 +f 2017//152 2021//152 2016//152 +f 2028//152 2053//152 2051//152 +f 2045//150 2041//150 2042//150 +f 2038//154 2044//154 2035//154 +f 2037//153 2041//153 2047//153 +f 2036//155 2034//155 2033//155 +f 2033//161 2037//161 2036//161 +f 2039//162 2035//162 2034//162 +f 2043//163 2041//163 2040//163 +f 2047//164 2045//164 2044//164 +f 2032//151 2040//151 2037//151 +f 2053//150 2049//150 2050//150 +f 2025//154 2052//154 2028//154 +f 2026//153 2049//153 2055//153 +f 2027//155 2029//155 2030//155 +f 2030//161 2026//161 2027//161 +f 2024//162 2028//162 2029//162 +f 2051//163 2049//163 2048//163 +f 2055//164 2053//164 2052//164 +f 2031//151 2048//151 2026//151 +f 2067//152 2077//152 2075//152 +f 2060//152 2085//152 2083//152 +f 2077//150 2073//150 2074//150 +f 2070//154 2076//154 2067//154 +f 2069//153 2073//153 2079//153 +f 2068//155 2066//155 2065//155 +f 2065//161 2069//161 2068//161 +f 2071//162 2067//162 2066//162 +f 2075//163 2073//163 2072//163 +f 2079//164 2077//164 2076//164 +f 2064//151 2072//151 2069//151 +f 2085//150 2081//150 2082//150 +f 2057//154 2084//154 2060//154 +f 2058//153 2081//153 2087//153 +f 2059//155 2061//155 2062//155 +f 2062//161 2058//161 2059//161 +f 2056//162 2060//162 2061//162 +f 2083//163 2081//163 2080//163 +f 2087//164 2085//164 2084//164 +f 2063//151 2080//151 2058//151 +f 2208//150 2211//150 2210//150 +f 1975//150 1974//150 1970//150 +f 1977//151 2001//151 1999//151 +f 1974//150 1976//150 1972//150 +f 1976//150 1977//150 1973//150 +f 1977//150 1975//150 1971//150 +f 1988//152 1978//152 1971//152 +f 1970//152 1980//152 1987//152 +f 1970//152 1987//152 1995//152 +f 1996//152 1988//152 1971//152 +f 1970//152 1995//152 1996//152 +f 1983//151 1980//151 1970//151 +f 1972//151 1979//151 1984//151 +f 1972//151 1984//151 1992//151 +f 1991//151 1983//151 1970//151 +f 1972//151 1992//151 1991//151 +f 1986//153 1979//153 1972//153 +f 1973//153 1981//153 1989//153 +f 1973//153 1989//153 1997//153 +f 1994//153 1986//153 1972//153 +f 1973//153 1997//153 1994//153 +f 1985//154 1981//154 1973//154 +f 1971//154 1978//154 1982//154 +f 1971//154 1982//154 1990//154 +f 1993//154 1985//154 1973//154 +f 1971//154 1990//154 1993//154 +f 1974//154 1998//154 2000//154 +f 1976//152 2000//152 2001//152 +f 1975//153 1999//153 1998//153 +f 1990//155 1999//155 2001//155 +f 1995//155 1998//155 1999//155 +f 1992//155 2000//155 1998//155 +f 1997//155 2001//155 2000//155 +f 2005//156 1988//156 1996//156 +f 2005//157 1999//157 1990//157 +f 1993//158 2001//158 2003//158 +f 1997//156 1989//156 2003//156 +f 2002//159 1986//159 1994//159 +f 2002//158 2000//158 1992//158 +f 1991//157 1998//157 2004//157 +f 1995//159 1987//159 2004//159 +f 2008//153 2013//153 2014//153 +f 2011//150 2015//150 2012//150 +f 2011//154 2007//154 2015//154 +f 2007//154 2009//154 2014//154 +f 2007//152 2011//152 2010//152 +f 2013//160 2012//160 2015//160 +f 2013//151 2008//151 2006//151 +f 2006//151 2010//151 2012//151 +f 2043//152 2032//152 2033//152 +f 2033//152 2034//152 2035//152 +f 2035//152 2044//152 2045//152 +f 2045//152 2042//152 2043//152 +f 2043//152 2033//152 2035//152 +f 2022//150 2023//150 2020//150 +f 2019//154 2023//154 2022//154 +f 2016//151 2021//151 2020//151 +f 2018//153 2020//153 2023//153 +f 2017//152 2022//152 2021//152 +f 2051//152 2031//152 2030//152 +f 2030//152 2029//152 2028//152 +f 2028//152 2052//152 2053//152 +f 2053//152 2050//152 2051//152 +f 2051//152 2030//152 2028//152 +f 2045//150 2046//150 2041//150 +f 2038//154 2047//154 2044//154 +f 2047//153 2038//153 2039//153 +f 2039//153 2036//153 2037//153 +f 2037//153 2040//153 2041//153 +f 2041//153 2046//153 2047//153 +f 2047//153 2039//153 2037//153 +f 2036//155 2039//155 2034//155 +f 2033//161 2032//161 2037//161 +f 2039//162 2038//162 2035//162 +f 2043//163 2042//163 2041//163 +f 2047//164 2046//164 2045//164 +f 2032//151 2043//151 2040//151 +f 2053//150 2054//150 2049//150 +f 2025//154 2055//154 2052//154 +f 2055//153 2025//153 2024//153 +f 2024//153 2027//153 2026//153 +f 2026//153 2048//153 2049//153 +f 2049//153 2054//153 2055//153 +f 2055//153 2024//153 2026//153 +f 2027//155 2024//155 2029//155 +f 2030//161 2031//161 2026//161 +f 2024//162 2025//162 2028//162 +f 2051//163 2050//163 2049//163 +f 2055//164 2054//164 2053//164 +f 2031//151 2051//151 2048//151 +f 2075//152 2064//152 2065//152 +f 2065//152 2066//152 2067//152 +f 2067//152 2076//152 2077//152 +f 2077//152 2074//152 2075//152 +f 2075//152 2065//152 2067//152 +f 2083//152 2063//152 2062//152 +f 2062//152 2061//152 2060//152 +f 2060//152 2084//152 2085//152 +f 2085//152 2082//152 2083//152 +f 2083//152 2062//152 2060//152 +f 2077//150 2078//150 2073//150 +f 2070//154 2079//154 2076//154 +f 2079//153 2070//153 2071//153 +f 2071//153 2068//153 2069//153 +f 2069//153 2072//153 2073//153 +f 2073//153 2078//153 2079//153 +f 2079//153 2071//153 2069//153 +f 2068//155 2071//155 2066//155 +f 2065//161 2064//161 2069//161 +f 2071//162 2070//162 2067//162 +f 2075//163 2074//163 2073//163 +f 2079//164 2078//164 2077//164 +f 2064//151 2075//151 2072//151 +f 2085//150 2086//150 2081//150 +f 2057//154 2087//154 2084//154 +f 2087//153 2057//153 2056//153 +f 2056//153 2059//153 2058//153 +f 2058//153 2080//153 2081//153 +f 2081//153 2086//153 2087//153 +f 2087//153 2056//153 2058//153 +f 2059//155 2056//155 2061//155 +f 2062//161 2063//161 2058//161 +f 2056//162 2057//162 2060//162 +f 2083//163 2082//163 2081//163 +f 2087//164 2086//164 2085//164 +f 2063//151 2083//151 2080//151 +f 2208//150 2209//150 2211//150 +s 1 +f 2102//165 2094//166 2095//167 +f 2093//168 2099//169 2092//170 +f 2097//171 2088//172 2089//173 +f 2096//174 2095//167 2088//172 +f 2101//164 2093//168 2094//166 +f 2092//170 2098//175 2091//176 +f 2107//177 2099//169 2100//178 +f 2104//179 2096//174 2097//171 +f 2103//180 2102//165 2096//174 +f 2108//181 2100//178 2101//164 +f 2099//169 2105//182 2098//175 +f 2102//165 2108//181 2101//164 +f 2090//183 2091//176 2098//175 +f 2098//175 2105//182 2090//183 +f 2089//173 2090//183 2097//171 +f 2097//171 2090//183 2104//179 +f 2104//179 2111//153 2103//180 +f 2090//183 2112//184 2104//179 +f 2103//180 2117//160 2109//185 +f 2105//182 2110//155 2090//183 +f 2108//181 2115//186 2107//177 +f 2106//187 2113//188 2105//182 +f 2109//185 2116//150 2108//181 +f 2107//177 2114//152 2106//187 +f 2125//167 2131//164 2124//166 +f 2130//178 2122//170 2123//168 +f 2127//171 2118//172 2119//173 +f 2126//174 2125//167 2118//172 +f 2131//164 2123//168 2124//166 +f 2129//169 2121//176 2122//170 +f 2130//178 2136//187 2129//169 +f 2134//179 2126//174 2127//171 +f 2126//174 2139//185 2132//165 +f 2138//181 2130//178 2131//164 +f 2129//169 2135//182 2128//175 +f 2132//165 2138//181 2131//164 +f 2120//183 2121//176 2128//175 +f 2128//175 2135//182 2120//183 +f 2119//173 2120//183 2127//171 +f 2127//171 2120//183 2134//179 +f 2134//179 2141//153 2133//180 +f 2120//183 2142//184 2134//179 +f 2133//180 2147//160 2139//185 +f 2135//182 2140//155 2120//183 +f 2138//181 2145//186 2137//177 +f 2136//187 2143//188 2135//182 +f 2139//185 2146//150 2138//181 +f 2137//177 2144//152 2136//187 +f 2155//189 2161//163 2154//190 +f 2153//191 2159//192 2152//193 +f 2157//194 2148//195 2149//196 +f 2156//197 2155//189 2148//195 +f 2154//190 2160//198 2153//191 +f 2152//193 2158//199 2151//200 +f 2160//198 2166//201 2159//192 +f 2164//202 2156//197 2157//194 +f 2163//203 2162//204 2156//197 +f 2168//205 2160//198 2161//163 +f 2159//192 2165//206 2158//199 +f 2162//204 2168//205 2161//163 +f 2150//207 2151//200 2158//199 +f 2158//199 2165//206 2150//207 +f 2149//196 2150//207 2157//194 +f 2157//194 2150//207 2164//202 +f 2164//202 2171//152 2163//203 +f 2150//207 2172//188 2164//202 +f 2163//203 2177//186 2169//208 +f 2165//206 2170//155 2150//207 +f 2168//205 2175//160 2167//209 +f 2166//201 2173//184 2165//206 +f 2169//208 2176//150 2168//205 +f 2167//209 2174//153 2166//201 +f 2185//189 2191//163 2184//190 +f 2190//198 2182//193 2183//191 +f 2187//194 2178//195 2179//196 +f 2186//197 2185//189 2178//195 +f 2191//163 2183//191 2184//190 +f 2182//193 2188//199 2181//200 +f 2197//209 2189//192 2190//198 +f 2187//194 2193//203 2186//197 +f 2193//203 2192//204 2186//197 +f 2198//205 2190//198 2191//163 +f 2189//192 2195//206 2188//199 +f 2199//208 2191//163 2192//204 +f 2180//207 2181//200 2188//199 +f 2188//199 2195//206 2180//207 +f 2179//196 2180//207 2187//194 +f 2187//194 2180//207 2194//202 +f 2194//202 2201//152 2193//203 +f 2180//207 2202//188 2194//202 +f 2193//203 2207//186 2199//208 +f 2195//206 2200//155 2180//207 +f 2198//205 2205//160 2197//209 +f 2196//201 2203//184 2195//206 +f 2198//205 2207//186 2206//150 +f 2196//201 2205//160 2204//153 +f 2102//165 2101//164 2094//166 +f 2093//168 2100//178 2099//169 +f 2097//171 2096//174 2088//172 +f 2096//174 2102//165 2095//167 +f 2101//164 2100//178 2093//168 +f 2092//170 2099//169 2098//175 +f 2107//177 2106//187 2099//169 +f 2104//179 2103//180 2096//174 +f 2103//180 2109//185 2102//165 +f 2108//181 2107//177 2100//178 +f 2099//169 2106//187 2105//182 +f 2102//165 2109//185 2108//181 +f 2104//179 2112//184 2111//153 +f 2090//183 2110//155 2112//184 +f 2103//180 2111//153 2117//160 +f 2105//182 2113//188 2110//155 +f 2108//181 2116//150 2115//186 +f 2106//187 2114//152 2113//188 +f 2109//185 2117//160 2116//150 +f 2107//177 2115//186 2114//152 +f 2125//167 2132//165 2131//164 +f 2130//178 2129//169 2122//170 +f 2127//171 2126//174 2118//172 +f 2126//174 2132//165 2125//167 +f 2131//164 2130//178 2123//168 +f 2129//169 2128//175 2121//176 +f 2130//178 2137//177 2136//187 +f 2134//179 2133//180 2126//174 +f 2126//174 2133//180 2139//185 +f 2138//181 2137//177 2130//178 +f 2129//169 2136//187 2135//182 +f 2132//165 2139//185 2138//181 +f 2134//179 2142//184 2141//153 +f 2120//183 2140//155 2142//184 +f 2133//180 2141//153 2147//160 +f 2135//182 2143//188 2140//155 +f 2138//181 2146//150 2145//186 +f 2136//187 2144//152 2143//188 +f 2139//185 2147//160 2146//150 +f 2137//177 2145//186 2144//152 +f 2155//189 2162//204 2161//163 +f 2153//191 2160//198 2159//192 +f 2157//194 2156//197 2148//195 +f 2156//197 2162//204 2155//189 +f 2154//190 2161//163 2160//198 +f 2152//193 2159//192 2158//199 +f 2160//198 2167//209 2166//201 +f 2164//202 2163//203 2156//197 +f 2163//203 2169//208 2162//204 +f 2168//205 2167//209 2160//198 +f 2159//192 2166//201 2165//206 +f 2162//204 2169//208 2168//205 +f 2164//202 2172//188 2171//152 +f 2150//207 2170//155 2172//188 +f 2163//203 2171//152 2177//186 +f 2165//206 2173//184 2170//155 +f 2168//205 2176//150 2175//160 +f 2166//201 2174//153 2173//184 +f 2169//208 2177//186 2176//150 +f 2167//209 2175//160 2174//153 +f 2185//189 2192//204 2191//163 +f 2190//198 2189//192 2182//193 +f 2187//194 2186//197 2178//195 +f 2186//197 2192//204 2185//189 +f 2191//163 2190//198 2183//191 +f 2182//193 2189//192 2188//199 +f 2197//209 2196//201 2189//192 +f 2187//194 2194//202 2193//203 +f 2193//203 2199//208 2192//204 +f 2198//205 2197//209 2190//198 +f 2189//192 2196//201 2195//206 +f 2199//208 2198//205 2191//163 +f 2194//202 2202//188 2201//152 +f 2180//207 2200//155 2202//188 +f 2193//203 2201//152 2207//186 +f 2195//206 2203//184 2200//155 +f 2198//205 2206//150 2205//160 +f 2196//201 2204//153 2203//184 +f 2198//205 2199//208 2207//186 +f 2196//201 2197//209 2205//160 +o Strong_Rope +v 1.000000 5.500000 2.875000 +v 1.000000 5.588388 2.911612 +v 1.000000 5.625000 3.000000 +v 1.000000 5.588388 3.088388 +v 1.000000 5.500000 3.125000 +v 1.000000 5.411612 3.088388 +v 1.000000 5.375000 3.000000 +v 1.000000 5.411612 2.911612 +v 1.025888 5.588388 2.900888 +v 1.088388 5.625000 2.963388 +v 1.150888 5.588388 3.025888 +v 1.176777 5.500000 3.051777 +v 1.150888 5.411612 3.025888 +v 1.088388 5.375000 2.963388 +v 1.025888 5.411612 2.900888 +v 1.036612 5.588388 2.875000 +v 1.125000 5.625000 2.875000 +v 1.213388 5.588388 2.875000 +v 1.250000 5.500000 2.875000 +v 1.213388 5.411612 2.875000 +v 1.125000 5.375000 2.875000 +v 1.036612 5.411612 2.875000 +v 1.000000 5.500000 0.125000 +v 1.036612 5.588388 0.125000 +v 1.125000 5.625000 0.125000 +v 1.213388 5.588388 0.125000 +v 1.250000 5.500000 0.125000 +v 1.213388 5.411612 0.125000 +v 1.125000 5.375000 0.125000 +v 1.036612 5.411612 0.125000 +v 1.025888 5.588388 0.099112 +v 1.088388 5.625000 0.036612 +v 1.150888 5.588388 -0.025888 +v 1.176777 5.500000 -0.051777 +v 1.150888 5.411612 -0.025888 +v 1.088388 5.375000 0.036612 +v 1.025888 5.411612 0.099112 +v 1.000000 5.588388 0.088388 +v 1.000000 5.625000 0.000000 +v 1.000000 5.588388 -0.088388 +v 1.000000 5.500000 -0.125000 +v 1.000000 5.411612 -0.088388 +v 1.000000 5.375000 0.000000 +v 1.000000 5.411612 0.088388 +v 0.750000 5.500000 0.125000 +v 0.750000 5.588388 0.088388 +v 0.750000 5.625000 0.000000 +v 0.750000 5.588388 -0.088388 +v 0.750000 5.500000 -0.125000 +v 0.750000 5.411612 -0.088388 +v 0.750000 5.375000 0.000000 +v 0.750000 5.411612 0.088388 +v 1.000000 7.750000 2.875000 +v 1.000000 7.838388 2.911612 +v 1.000000 7.875000 3.000000 +v 1.000000 7.838388 3.088388 +v 1.000000 7.750000 3.125000 +v 1.000000 7.661612 3.088388 +v 1.000000 7.625000 3.000000 +v 1.000000 7.661612 2.911612 +v 1.025888 7.838388 2.900888 +v 1.088388 7.875000 2.963388 +v 1.150888 7.838388 3.025888 +v 1.176777 7.750000 3.051777 +v 1.150888 7.661612 3.025888 +v 1.088388 7.625000 2.963388 +v 1.025888 7.661612 2.900888 +v 1.036612 7.838388 2.875000 +v 1.125000 7.875000 2.875000 +v 1.213388 7.838388 2.875000 +v 1.250000 7.750000 2.875000 +v 1.213388 7.661612 2.875000 +v 1.125000 7.625000 2.875000 +v 1.036612 7.661612 2.875000 +v 1.000000 7.750000 0.125000 +v 1.036612 7.838388 0.125000 +v 1.125000 7.875000 0.125000 +v 1.213388 7.838388 0.125000 +v 1.250000 7.750000 0.125000 +v 1.213388 7.661612 0.125000 +v 1.125000 7.625000 0.125000 +v 1.036612 7.661612 0.125000 +v 1.025888 7.838388 0.099112 +v 1.088388 7.875000 0.036612 +v 1.150888 7.838388 -0.025888 +v 1.176777 7.750000 -0.051777 +v 1.150888 7.661612 -0.025888 +v 1.088388 7.625000 0.036612 +v 1.025888 7.661612 0.099112 +v 1.000000 7.838388 0.088388 +v 1.000000 7.875000 0.000000 +v 1.000000 7.838388 -0.088388 +v 1.000000 7.750000 -0.125000 +v 1.000000 7.661612 -0.088388 +v 1.000000 7.625000 0.000000 +v 1.000000 7.661612 0.088388 +v 0.625000 7.750000 0.125000 +v 0.625000 7.838388 0.088388 +v 0.625000 7.875000 0.000000 +v 0.625000 7.838388 -0.088388 +v 0.625000 7.750000 -0.125000 +v 0.625000 7.661612 -0.088388 +v 0.625000 7.625000 0.000000 +v 0.625000 7.661612 0.088388 +v -0.250000 8.500000 2.500000 +v 0.250000 8.500000 2.500000 +v -0.250000 9.000000 2.500000 +v 0.250000 9.000000 2.500000 +v -0.250000 8.500000 0.750000 +v 0.250000 8.500000 0.750000 +v -0.250000 9.000000 0.750000 +v 0.250000 9.000000 0.750000 +v 0.000000 11.000000 2.500000 +v 0.000000 10.875000 2.500000 +v 0.000000 11.000000 0.000000 +v 0.000000 10.875000 0.000000 +v 0.000000 10.812500 0.500000 +v 0.000000 10.750000 1.000000 +v 0.000000 10.750000 1.500000 +v 0.000000 10.812500 2.000000 +v 0.000000 10.687500 2.000000 +v 0.000000 10.625000 1.500000 +v 0.000000 10.625000 1.000000 +v 0.000000 10.687500 0.500000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.2962 0.6332 0.7150 +vn 0.3827 0.0000 0.9239 +vn 0.0392 0.9947 0.0948 +vn -0.4617 0.7573 -0.4617 +vn -0.2611 0.7311 -0.6303 +vn -0.2611 -0.7311 -0.6303 +vn 0.0670 -0.9955 0.0670 +vn 0.0392 -0.9947 0.0948 +vn 0.2962 -0.6332 0.7150 +vn 0.0670 0.9955 0.0670 +vn 0.7194 -0.6794 0.1447 +vn 0.5293 -0.6630 0.5293 +vn 0.7194 0.6794 0.1447 +vn 0.5293 0.6630 0.5293 +vn 0.0473 0.9987 0.0196 +vn -0.4617 -0.7573 -0.4617 +vn 0.0473 -0.9987 0.0196 +vn -0.9809 0.0000 -0.1944 +vn -0.6737 0.7263 -0.1363 +vn -0.6737 -0.7263 -0.1363 +vn 0.7194 -0.6794 -0.1447 +vn 0.9824 0.0000 0.1866 +vn 0.7194 0.6794 -0.1447 +vn -0.6737 0.7263 0.1363 +vn -0.6737 -0.7263 0.1363 +vn 0.0473 -0.9987 -0.0196 +vn -0.7071 0.0000 0.7071 +vn 0.9824 0.0000 -0.1866 +vn 0.0473 0.9987 -0.0196 +vn 0.0670 -0.9955 -0.0670 +vn 0.7071 0.0000 -0.7071 +vn 0.0670 0.9955 -0.0670 +vn 0.5293 -0.6630 -0.5293 +vn 0.5293 0.6630 -0.5293 +vn -0.4617 0.7573 0.4617 +vn 0.0196 -0.9987 -0.0473 +vn 0.1447 -0.6794 -0.7194 +vn 0.1866 0.0000 -0.9824 +vn 0.1447 0.6794 -0.7194 +vn -0.1363 0.7263 0.6737 +vn -0.4617 -0.7573 0.4617 +vn 0.0196 0.9987 -0.0473 +vn -0.1363 -0.7263 0.6737 +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.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +s off +f 2316//210 2321//210 2317//210 +f 2317//211 2323//211 2319//211 +f 2318//212 2320//212 2316//212 +f 2319//213 2322//213 2318//213 +f 2328//211 2327//211 2326//211 +f 2325//211 2331//211 2324//211 +f 2332//211 2330//211 2331//211 +f 2333//211 2329//211 2330//211 +f 2329//211 2335//211 2328//211 +f 2316//210 2320//210 2321//210 +f 2317//211 2321//211 2323//211 +f 2318//212 2322//212 2320//212 +f 2319//213 2323//213 2322//213 +f 2328//211 2335//211 2327//211 +f 2325//211 2332//211 2331//211 +f 2332//211 2333//211 2330//211 +f 2333//211 2334//211 2329//211 +f 2329//211 2334//211 2335//211 +s 1 +f 2223//214 2215//215 2216//216 +f 2214//217 2220//218 2213//219 +f 2219//220 2225//221 2218//222 +f 2217//223 2223//214 2216//216 +f 2215//215 2221//224 2214//217 +f 2225//221 2217//223 2218//222 +f 2225//221 2231//225 2224//226 +f 2223//214 2229//227 2222//228 +f 2228//229 2220//218 2221//224 +f 2226//230 2232//231 2225//221 +f 2231//225 2223//214 2224//226 +f 2229//227 2221//224 2222//228 +f 2212//232 2213//219 2220//218 +f 2220//218 2227//233 2212//232 +f 2219//220 2212//232 2226//230 +f 2226//230 2212//232 2233//234 +f 2232//231 2239//235 2231//225 +f 2230//236 2237//237 2229//227 +f 2228//229 2235//238 2227//233 +f 2212//232 2241//239 2233//234 +f 2233//234 2240//240 2232//231 +f 2227//233 2234//241 2212//232 +f 2231//225 2238//242 2230//236 +f 2229//227 2236//243 2228//229 +f 2241//239 2247//244 2240//240 +f 2239//235 2245//245 2238//242 +f 2237//237 2243//246 2236//243 +f 2240//240 2246//247 2239//235 +f 2237//237 2245//245 2244//248 +f 2235//238 2243//246 2242//249 +f 2246//247 2254//250 2253//251 +f 2244//248 2252//252 2251//253 +f 2243//246 2249//254 2242//249 +f 2248//255 2254//250 2247//244 +f 2246//247 2252//252 2245//245 +f 2244//248 2250//256 2243//246 +f 2235//238 2242//249 2234//241 +f 2242//249 2249//254 2234//241 +f 2234//241 2248//255 2241//239 +f 2248//255 2234//241 2255//257 +f 2252//252 2259//258 2251//253 +f 2250//256 2257//259 2249//254 +f 2234//241 2263//260 2255//257 +f 2255//257 2262//210 2254//250 +f 2249//254 2256//261 2234//241 +f 2253//251 2260//262 2252//252 +f 2251//253 2258//213 2250//256 +f 2254//250 2261//263 2253//251 +f 2275//214 2267//215 2268//216 +f 2266//217 2272//218 2265//219 +f 2271//220 2277//221 2270//222 +f 2269//223 2275//214 2268//216 +f 2267//215 2273//224 2266//217 +f 2277//221 2269//223 2270//222 +f 2277//221 2283//225 2276//226 +f 2275//214 2281//227 2274//228 +f 2280//229 2272//218 2273//224 +f 2278//230 2284//231 2277//221 +f 2283//225 2275//214 2276//226 +f 2281//227 2273//224 2274//228 +f 2264//232 2265//219 2272//218 +f 2272//218 2279//233 2264//232 +f 2271//220 2264//232 2278//230 +f 2278//230 2264//232 2285//234 +f 2284//231 2291//235 2283//225 +f 2282//236 2289//237 2281//227 +f 2280//229 2287//238 2279//233 +f 2264//232 2293//239 2285//234 +f 2285//234 2292//240 2284//231 +f 2279//233 2286//241 2264//232 +f 2283//225 2290//242 2282//236 +f 2281//227 2288//243 2280//229 +f 2292//240 2300//255 2299//244 +f 2291//235 2297//245 2290//242 +f 2289//237 2295//246 2288//243 +f 2291//235 2299//244 2298//247 +f 2289//237 2297//245 2296//248 +f 2287//238 2295//246 2294//249 +f 2299//244 2305//251 2298//247 +f 2296//248 2304//252 2303//253 +f 2295//246 2301//254 2294//249 +f 2300//255 2306//250 2299//244 +f 2298//247 2304//252 2297//245 +f 2296//248 2302//256 2295//246 +f 2287//238 2294//249 2286//241 +f 2294//249 2301//254 2286//241 +f 2286//241 2300//255 2293//239 +f 2300//255 2286//241 2307//257 +f 2304//252 2311//258 2303//253 +f 2302//256 2309//259 2301//254 +f 2286//241 2315//260 2307//257 +f 2307//257 2314//210 2306//250 +f 2301//254 2308//261 2286//241 +f 2305//251 2312//262 2304//252 +f 2303//253 2310//213 2302//256 +f 2306//250 2313//263 2305//251 +f 2223//214 2222//228 2215//215 +f 2214//217 2221//224 2220//218 +f 2219//220 2226//230 2225//221 +f 2217//223 2224//226 2223//214 +f 2215//215 2222//228 2221//224 +f 2225//221 2224//226 2217//223 +f 2225//221 2232//231 2231//225 +f 2223//214 2230//236 2229//227 +f 2228//229 2227//233 2220//218 +f 2226//230 2233//234 2232//231 +f 2231//225 2230//236 2223//214 +f 2229//227 2228//229 2221//224 +f 2232//231 2240//240 2239//235 +f 2230//236 2238//242 2237//237 +f 2228//229 2236//243 2235//238 +f 2212//232 2234//241 2241//239 +f 2233//234 2241//239 2240//240 +f 2227//233 2235//238 2234//241 +f 2231//225 2239//235 2238//242 +f 2229//227 2237//237 2236//243 +f 2241//239 2248//255 2247//244 +f 2239//235 2246//247 2245//245 +f 2237//237 2244//248 2243//246 +f 2240//240 2247//244 2246//247 +f 2237//237 2238//242 2245//245 +f 2235//238 2236//243 2243//246 +f 2246//247 2247//244 2254//250 +f 2244//248 2245//245 2252//252 +f 2243//246 2250//256 2249//254 +f 2248//255 2255//257 2254//250 +f 2246//247 2253//251 2252//252 +f 2244//248 2251//253 2250//256 +f 2252//252 2260//262 2259//258 +f 2250//256 2258//213 2257//259 +f 2234//241 2256//261 2263//260 +f 2255//257 2263//260 2262//210 +f 2249//254 2257//259 2256//261 +f 2253//251 2261//263 2260//262 +f 2251//253 2259//258 2258//213 +f 2254//250 2262//210 2261//263 +f 2275//214 2274//228 2267//215 +f 2266//217 2273//224 2272//218 +f 2271//220 2278//230 2277//221 +f 2269//223 2276//226 2275//214 +f 2267//215 2274//228 2273//224 +f 2277//221 2276//226 2269//223 +f 2277//221 2284//231 2283//225 +f 2275//214 2282//236 2281//227 +f 2280//229 2279//233 2272//218 +f 2278//230 2285//234 2284//231 +f 2283//225 2282//236 2275//214 +f 2281//227 2280//229 2273//224 +f 2284//231 2292//240 2291//235 +f 2282//236 2290//242 2289//237 +f 2280//229 2288//243 2287//238 +f 2264//232 2286//241 2293//239 +f 2285//234 2293//239 2292//240 +f 2279//233 2287//238 2286//241 +f 2283//225 2291//235 2290//242 +f 2281//227 2289//237 2288//243 +f 2292//240 2293//239 2300//255 +f 2291//235 2298//247 2297//245 +f 2289//237 2296//248 2295//246 +f 2291//235 2292//240 2299//244 +f 2289//237 2290//242 2297//245 +f 2287//238 2288//243 2295//246 +f 2299//244 2306//250 2305//251 +f 2296//248 2297//245 2304//252 +f 2295//246 2302//256 2301//254 +f 2300//255 2307//257 2306//250 +f 2298//247 2305//251 2304//252 +f 2296//248 2303//253 2302//256 +f 2304//252 2312//262 2311//258 +f 2302//256 2310//213 2309//259 +f 2286//241 2308//261 2315//260 +f 2307//257 2315//260 2314//210 +f 2301//254 2309//259 2308//261 +f 2305//251 2313//263 2312//262 +f 2303//253 2311//258 2310//213 +f 2306//250 2314//210 2313//263 +o Strong_Pivot +v 0.750000 1.500000 -2.750000 +v 0.250000 1.500000 -2.750000 +v 0.250000 1.500000 -3.250000 +v 0.750000 1.500000 -3.250000 +v 0.250000 3.500000 -2.750000 +v 0.750000 3.500000 -2.750000 +v 0.750000 3.500000 -3.250000 +v 0.250000 3.500000 -3.250000 +v -0.250000 1.500000 -2.750000 +v -0.750000 1.500000 -2.750000 +v -0.750000 1.500000 -3.250000 +v -0.250000 1.500000 -3.250000 +v -0.750000 3.500000 -2.750000 +v -0.250000 3.500000 -2.750000 +v -0.250000 3.500000 -3.250000 +v -0.750000 3.500000 -3.250000 +v 0.312500 3.500000 -2.812500 +v 0.687500 3.500000 -2.812500 +v 0.312500 3.500000 -3.187500 +v 0.687500 3.500000 -3.187500 +v 0.312500 4.500000 -2.812500 +v 0.687500 4.500000 -2.812500 +v 0.312500 4.500000 -3.187500 +v 0.687500 4.500000 -3.187500 +v -0.687500 3.500000 -2.812500 +v -0.312500 3.500000 -2.812500 +v -0.687500 3.500000 -3.187500 +v -0.312500 3.500000 -3.187500 +v -0.687500 4.500000 -2.812500 +v -0.312500 4.500000 -2.812500 +v -0.687500 4.500000 -3.187500 +v -0.312500 4.500000 -3.187500 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 2338//264 2336//264 2337//264 +f 2341//265 2343//265 2340//265 +f 2339//266 2341//266 2336//266 +f 2338//267 2342//267 2339//267 +f 2337//268 2343//268 2338//268 +f 2336//269 2340//269 2337//269 +f 2346//264 2344//264 2345//264 +f 2349//265 2351//265 2348//265 +f 2347//266 2349//266 2344//266 +f 2346//267 2350//267 2347//267 +f 2345//268 2351//268 2346//268 +f 2344//269 2348//269 2345//269 +f 2358//267 2355//267 2354//267 +f 2357//269 2352//269 2353//269 +f 2359//266 2353//266 2355//266 +f 2356//268 2354//268 2352//268 +f 2366//267 2363//267 2362//267 +f 2365//269 2360//269 2361//269 +f 2367//266 2361//266 2363//266 +f 2364//268 2362//268 2360//268 +f 2338//264 2339//264 2336//264 +f 2341//265 2342//265 2343//265 +f 2339//266 2342//266 2341//266 +f 2338//267 2343//267 2342//267 +f 2337//268 2340//268 2343//268 +f 2336//269 2341//269 2340//269 +f 2346//264 2347//264 2344//264 +f 2349//265 2350//265 2351//265 +f 2347//266 2350//266 2349//266 +f 2346//267 2351//267 2350//267 +f 2345//268 2348//268 2351//268 +f 2344//269 2349//269 2348//269 +f 2358//267 2359//267 2355//267 +f 2357//269 2356//269 2352//269 +f 2359//266 2357//266 2353//266 +f 2356//268 2358//268 2354//268 +f 2366//267 2367//267 2363//267 +f 2365//269 2364//269 2360//269 +f 2367//266 2365//266 2361//266 +f 2364//268 2366//268 2362//268 +o Strong_Erector +v 0.250000 3.500000 -2.750000 +v 0.750000 3.500000 -2.750000 +v 0.750000 3.500000 -3.250000 +v 0.250000 3.500000 -3.250000 +v -0.750000 3.500000 -2.750000 +v -0.250000 3.500000 -2.750000 +v -0.250000 3.500000 -3.250000 +v -0.750000 3.500000 -3.250000 +v 0.250000 10.000000 -2.750000 +v 0.750000 10.000000 -2.750000 +v 0.750000 10.000000 -3.250000 +v 0.250000 10.000000 -3.250000 +v -0.750000 10.000000 -2.750000 +v -0.250000 10.000000 -2.750000 +v -0.250000 10.000000 -3.250000 +v -0.750000 10.000000 -3.250000 +v 0.250000 9.000000 -1.000000 +v 0.250000 9.000000 -3.500000 +v -0.250000 9.000000 -1.000000 +v -0.250000 9.000000 -3.500000 +v 0.250000 8.500000 -3.500000 +v 0.250000 8.500000 -1.000000 +v -0.250000 8.500000 -1.000000 +v -0.250000 8.500000 -3.500000 +v 0.375000 9.125000 -1.000000 +v -0.375000 9.125000 -1.000000 +v 0.375000 8.375000 -1.000000 +v -0.375000 8.375000 -1.000000 +v 0.375000 9.125000 -0.750000 +v -0.375000 9.125000 -0.750000 +v 0.375000 8.375000 -0.750000 +v -0.375000 8.375000 -0.750000 +v 0.250000 4.500000 -1.000000 +v 0.250000 4.500000 -3.500000 +v -0.250000 4.500000 -1.000000 +v -0.250000 4.500000 -3.500000 +v 0.250000 4.000000 -3.500000 +v 0.250000 4.000000 -1.000000 +v -0.250000 4.000000 -1.000000 +v -0.250000 4.000000 -3.500000 +v 0.375000 4.625000 -1.000000 +v -0.375000 4.625000 -1.000000 +v 0.375000 3.875000 -1.000000 +v -0.375000 3.875000 -1.000000 +v 0.375000 4.625000 -0.750000 +v -0.375000 4.625000 -0.750000 +v 0.375000 3.875000 -0.750000 +v -0.375000 3.875000 -0.750000 +v 0.250000 7.000000 -2.750000 +v 0.750000 7.000000 -2.750000 +v -0.750000 7.000000 -2.750000 +v -0.250000 7.000000 -2.750000 +v 0.250000 6.500000 -2.750000 +v 0.750000 6.500000 -2.750000 +v -0.750000 6.500000 -2.750000 +v -0.250000 6.500000 -2.750000 +v 0.250000 7.000000 -1.250000 +v 0.750000 7.000000 -1.250000 +v -0.750000 7.000000 -1.250000 +v -0.250000 7.000000 -1.250000 +v 0.250000 6.500000 -1.250000 +v 0.750000 6.500000 -1.250000 +v -0.750000 6.500000 -1.250000 +v -0.250000 6.500000 -1.250000 +v 0.750000 7.000000 -1.250000 +v -0.750000 7.000000 -1.250000 +v 0.750000 6.500000 -1.250000 +v -0.750000 6.500000 -1.250000 +v -0.750000 7.000000 -0.750000 +v -0.750000 6.500000 -0.750000 +v 0.750000 6.500000 -0.750000 +v 0.750000 7.000000 -0.750000 +v -1.250000 7.000000 -0.750000 +v -1.250000 6.500000 -0.750000 +v 1.250000 6.500000 -0.750000 +v 1.250000 7.000000 -0.750000 +v -0.750000 7.000000 0.750000 +v -0.750000 6.500000 0.750000 +v 0.750000 6.500000 0.750000 +v 0.750000 7.000000 0.750000 +v -1.250000 7.000000 0.750000 +v -1.250000 6.500000 0.750000 +v 1.250000 6.500000 0.750000 +v 1.250000 7.000000 0.750000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +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 +s off +f 2371//270 2369//270 2368//270 +f 2375//270 2373//270 2372//270 +f 2377//271 2379//271 2376//271 +f 2381//271 2383//271 2380//271 +f 2374//272 2381//272 2373//272 +f 2375//273 2382//273 2374//273 +f 2370//272 2377//272 2369//272 +f 2371//273 2378//273 2370//273 +f 2372//274 2383//274 2375//274 +f 2373//275 2380//275 2372//275 +f 2368//274 2379//274 2371//274 +f 2369//275 2376//275 2368//275 +f 2385//271 2386//271 2384//271 +f 2390//270 2388//270 2389//270 +f 2386//273 2392//273 2384//273 +f 2387//274 2390//274 2386//274 +f 2385//273 2391//273 2387//273 +f 2384//272 2388//272 2385//272 +f 2395//274 2397//274 2393//274 +f 2390//273 2393//273 2386//273 +f 2384//273 2394//273 2389//273 +f 2389//273 2395//273 2390//273 +f 2397//275 2398//275 2396//275 +f 2393//271 2396//271 2392//271 +f 2392//272 2398//272 2394//272 +f 2394//270 2399//270 2395//270 +f 2401//271 2402//271 2400//271 +f 2406//270 2404//270 2405//270 +f 2402//273 2408//273 2400//273 +f 2403//274 2406//274 2402//274 +f 2401//273 2407//273 2403//273 +f 2400//272 2404//272 2401//272 +f 2411//274 2413//274 2409//274 +f 2406//273 2409//273 2402//273 +f 2400//273 2410//273 2405//273 +f 2405//273 2411//273 2406//273 +f 2413//275 2414//275 2412//275 +f 2409//271 2412//271 2408//271 +f 2408//272 2414//272 2410//272 +f 2410//270 2415//270 2411//270 +f 2429//270 2420//270 2421//270 +f 2427//272 2423//272 2419//272 +f 2416//271 2425//271 2417//271 +f 2428//274 2416//274 2420//274 +f 2430//274 2418//274 2422//274 +f 2431//270 2422//270 2423//270 +f 2418//271 2427//271 2419//271 +f 2425//272 2421//272 2417//272 +f 2433//273 2434//273 2435//273 +f 2438//275 2436//275 2437//275 +f 2433//271 2439//271 2432//271 +f 2439//271 2451//271 2443//271 +f 2434//270 2437//270 2435//270 +f 2437//270 2449//270 2441//270 +f 2438//270 2434//270 2442//270 +f 2439//271 2443//271 2432//271 +f 2443//276 2434//276 2432//276 +f 2437//270 2441//270 2435//270 +f 2436//271 2433//271 2440//271 +f 2441//277 2433//277 2435//277 +f 2446//275 2451//275 2447//275 +f 2444//275 2449//275 2445//275 +f 2438//274 2447//274 2439//274 +f 2440//271 2444//271 2436//271 +f 2441//274 2448//274 2440//274 +f 2442//270 2446//270 2438//270 +f 2443//272 2450//272 2442//272 +f 2436//272 2445//272 2437//272 +f 2371//270 2370//270 2369//270 +f 2375//270 2374//270 2373//270 +f 2377//271 2378//271 2379//271 +f 2381//271 2382//271 2383//271 +f 2374//272 2382//272 2381//272 +f 2375//273 2383//273 2382//273 +f 2370//272 2378//272 2377//272 +f 2371//273 2379//273 2378//273 +f 2372//274 2380//274 2383//274 +f 2373//275 2381//275 2380//275 +f 2368//274 2376//274 2379//274 +f 2369//275 2377//275 2376//275 +f 2385//271 2387//271 2386//271 +f 2390//270 2391//270 2388//270 +f 2386//273 2393//273 2392//273 +f 2387//274 2391//274 2390//274 +f 2385//273 2388//273 2391//273 +f 2384//272 2389//272 2388//272 +f 2395//274 2399//274 2397//274 +f 2390//273 2395//273 2393//273 +f 2384//273 2392//273 2394//273 +f 2389//273 2394//273 2395//273 +f 2397//275 2399//275 2398//275 +f 2393//271 2397//271 2396//271 +f 2392//272 2396//272 2398//272 +f 2394//270 2398//270 2399//270 +f 2401//271 2403//271 2402//271 +f 2406//270 2407//270 2404//270 +f 2402//273 2409//273 2408//273 +f 2403//274 2407//274 2406//274 +f 2401//273 2404//273 2407//273 +f 2400//272 2405//272 2404//272 +f 2411//274 2415//274 2413//274 +f 2406//273 2411//273 2409//273 +f 2400//273 2408//273 2410//273 +f 2405//273 2410//273 2411//273 +f 2413//275 2415//275 2414//275 +f 2409//271 2413//271 2412//271 +f 2408//272 2412//272 2414//272 +f 2410//270 2414//270 2415//270 +f 2429//270 2428//270 2420//270 +f 2427//272 2431//272 2423//272 +f 2416//271 2424//271 2425//271 +f 2428//274 2424//274 2416//274 +f 2430//274 2426//274 2418//274 +f 2431//270 2430//270 2422//270 +f 2418//271 2426//271 2427//271 +f 2425//272 2429//272 2421//272 +f 2433//273 2432//273 2434//273 +f 2438//275 2439//275 2436//275 +f 2433//271 2436//271 2439//271 +f 2439//271 2447//271 2451//271 +f 2434//270 2438//270 2437//270 +f 2437//270 2445//270 2449//270 +f 2443//276 2442//276 2434//276 +f 2441//277 2440//277 2433//277 +f 2446//275 2450//275 2451//275 +f 2444//275 2448//275 2449//275 +f 2438//274 2446//274 2447//274 +f 2440//271 2448//271 2444//271 +f 2441//274 2449//274 2448//274 +f 2442//270 2450//270 2446//270 +f 2443//272 2451//272 2450//272 +f 2436//272 2444//272 2445//272 +o Micro_Rope +v -0.187500 5.250000 1.375000 +v -0.275888 5.213388 1.375000 +v -0.312500 5.125000 1.375000 +v -0.275888 5.036612 1.375000 +v -0.187500 5.000000 1.375000 +v -0.099112 5.036612 1.375000 +v -0.062500 5.125000 1.375000 +v -0.099112 5.213388 1.375000 +v -0.187500 5.250000 0.125000 +v -0.275888 5.213388 0.125000 +v -0.312500 5.125000 0.125000 +v -0.275888 5.036612 0.125000 +v -0.187500 5.000000 0.125000 +v -0.099112 5.036612 0.125000 +v -0.062500 5.125000 0.125000 +v -0.099112 5.213388 0.125000 +v 0.187500 4.250000 1.375000 +v 0.099112 4.213388 1.375000 +v 0.062500 4.125000 1.375000 +v 0.099112 4.036612 1.375000 +v 0.187500 4.000000 1.375000 +v 0.275888 4.036612 1.375000 +v 0.312500 4.125000 1.375000 +v 0.275888 4.213388 1.375000 +v 0.187500 4.250000 0.125000 +v 0.099112 4.213388 0.125000 +v 0.062500 4.125000 0.125000 +v 0.099112 4.036612 0.125000 +v 0.187500 4.000000 0.125000 +v 0.275888 4.036612 0.125000 +v 0.312500 4.125000 0.125000 +v 0.275888 4.213388 0.125000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s 1 +f 2460//278 2453//279 2452//278 +f 2467//280 2452//278 2459//280 +f 2465//281 2458//282 2457//281 +f 2463//283 2456//284 2455//283 +f 2461//279 2454//285 2453//279 +f 2466//282 2459//280 2458//282 +f 2464//284 2457//281 2456//284 +f 2462//285 2455//283 2454//285 +f 2476//278 2469//279 2468//278 +f 2483//280 2468//278 2475//280 +f 2481//281 2474//282 2473//281 +f 2479//283 2472//284 2471//283 +f 2477//279 2470//285 2469//279 +f 2482//282 2475//280 2474//282 +f 2480//284 2473//281 2472//284 +f 2478//285 2471//283 2470//285 +f 2460//278 2461//279 2453//279 +f 2467//280 2460//278 2452//278 +f 2465//281 2466//282 2458//282 +f 2463//283 2464//284 2456//284 +f 2461//279 2462//285 2454//285 +f 2466//282 2467//280 2459//280 +f 2464//284 2465//281 2457//281 +f 2462//285 2463//283 2455//283 +f 2476//278 2477//279 2469//279 +f 2483//280 2476//278 2468//278 +f 2481//281 2482//282 2474//282 +f 2479//283 2480//284 2472//284 +f 2477//279 2478//285 2470//285 +f 2482//282 2483//280 2475//280 +f 2480//284 2481//281 2473//281 +f 2478//285 2479//283 2471//283 +o Micro_Pivot +v -0.125000 1.250000 -1.375000 +v 0.125000 1.250000 -1.375000 +v -0.125000 1.250000 -1.625000 +v 0.125000 1.250000 -1.625000 +v -0.125000 3.250000 -1.625000 +v -0.125000 3.250000 -1.375000 +v 0.125000 3.250000 -1.375000 +v 0.125000 3.250000 -1.625000 +v -0.062500 3.250000 -1.437500 +v 0.062500 3.250000 -1.437500 +v -0.062500 3.250000 -1.562500 +v 0.062500 3.250000 -1.562500 +v -0.062500 4.250000 -1.562500 +v -0.062500 4.250000 -1.437500 +v 0.062500 4.250000 -1.437500 +v 0.062500 4.250000 -1.562500 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 2486//286 2485//286 2484//286 +f 2490//287 2488//287 2489//287 +f 2487//288 2490//288 2485//288 +f 2484//289 2488//289 2486//289 +f 2486//290 2491//290 2487//290 +f 2485//291 2489//291 2484//291 +f 2494//290 2499//290 2495//290 +f 2493//291 2497//291 2492//291 +f 2495//288 2498//288 2493//288 +f 2492//289 2496//289 2494//289 +f 2486//286 2487//286 2485//286 +f 2490//287 2491//287 2488//287 +f 2487//288 2491//288 2490//288 +f 2484//289 2489//289 2488//289 +f 2486//290 2488//290 2491//290 +f 2485//291 2490//291 2489//291 +f 2494//290 2496//290 2499//290 +f 2493//291 2498//291 2497//291 +f 2495//288 2499//288 2498//288 +f 2492//289 2497//289 2496//289 +o Micro_Erector +v -0.125000 3.250000 -1.625000 +v -0.125000 3.250000 -1.375000 +v 0.125000 3.250000 -1.375000 +v 0.125000 3.250000 -1.625000 +v -0.125000 6.000000 -1.625000 +v -0.125000 6.250000 -1.375000 +v 0.125000 6.250000 -1.375000 +v 0.125000 6.000000 -1.625000 +v -0.125000 6.250000 -1.375000 +v 0.125000 6.250000 -1.375000 +v -0.125000 6.000000 -1.375000 +v 0.125000 6.000000 -1.375000 +v -0.125000 6.250000 -0.625000 +v 0.125000 6.250000 -0.625000 +v -0.125000 6.000000 -0.625000 +v 0.125000 6.000000 -0.625000 +v 0.375000 6.250000 -0.125000 +v 0.625000 6.250000 -0.125000 +v 0.375000 6.000000 -0.125000 +v 0.625000 6.000000 -0.125000 +v 0.375000 6.250000 0.375000 +v 0.625000 6.250000 0.125000 +v 0.375000 6.000000 0.375000 +v 0.625000 6.000000 0.125000 +v -0.625000 6.250000 -0.125000 +v -0.375000 6.250000 -0.125000 +v -0.625000 6.000000 -0.125000 +v -0.375000 6.000000 -0.125000 +v -0.625000 6.250000 0.125000 +v -0.375000 6.250000 0.375000 +v -0.625000 6.000000 0.125000 +v -0.375000 6.000000 0.375000 +v -0.125000 6.250000 -0.375000 +v 0.125000 6.250000 -0.375000 +v -0.125000 6.000000 -0.375000 +v 0.125000 6.000000 -0.375000 +v -0.125000 4.250000 -1.375000 +v 0.125000 4.250000 -1.375000 +v -0.125000 4.000000 -1.375000 +v 0.125000 4.000000 -1.375000 +v -0.125000 4.250000 -0.625000 +v 0.125000 4.250000 -0.625000 +v -0.125000 4.000000 -0.625000 +v 0.125000 4.000000 -0.625000 +v 0.375000 4.250000 -0.125000 +v 0.625000 4.250000 -0.125000 +v 0.375000 4.000000 -0.125000 +v 0.625000 4.000000 -0.125000 +v 0.375000 4.250000 0.375000 +v 0.625000 4.250000 0.125000 +v 0.375000 4.000000 0.375000 +v 0.625000 4.000000 0.125000 +v -0.625000 4.250000 -0.125000 +v -0.375000 4.250000 -0.125000 +v -0.625000 4.000000 -0.125000 +v -0.375000 4.000000 -0.125000 +v -0.625000 4.250000 0.125000 +v -0.375000 4.250000 0.375000 +v -0.625000 4.000000 0.125000 +v -0.375000 4.000000 0.375000 +v -0.125000 4.250000 -0.375000 +v 0.125000 4.250000 -0.375000 +v -0.125000 4.000000 -0.375000 +v 0.125000 4.000000 -0.375000 +v 0.000000 6.250000 -0.625000 +v 0.000000 6.000000 -0.625000 +v 0.000000 5.500000 -1.375000 +v 0.000000 5.250000 -1.375000 +v 0.000000 5.000000 -1.375000 +v 0.000000 4.750000 -1.375000 +v 0.000000 4.250000 -0.625000 +v 0.000000 4.000000 -0.625000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +s off +f 2500//292 2502//292 2501//292 +f 2506//293 2504//293 2505//293 +f 2500//294 2507//294 2503//294 +f 2502//295 2505//295 2501//295 +f 2502//296 2507//296 2506//296 +f 2501//297 2504//297 2500//297 +f 2526//292 2534//292 2527//292 +f 2526//298 2512//298 2514//298 +f 2509//296 2515//296 2511//296 +f 2508//299 2513//299 2509//299 +f 2510//297 2512//297 2508//297 +f 2511//292 2514//292 2510//292 +f 2520//300 2523//300 2521//300 +f 2518//292 2523//292 2522//292 +f 2517//296 2523//296 2519//296 +f 2516//299 2521//299 2517//299 +f 2518//297 2520//297 2516//297 +f 2525//299 2512//299 2524//299 +f 2528//301 2531//301 2529//301 +f 2527//292 2530//292 2526//292 +f 2525//296 2531//296 2527//296 +f 2525//299 2528//299 2529//299 +f 2526//297 2528//297 2524//297 +f 2532//295 2535//295 2533//295 +f 2515//292 2534//292 2514//292 +f 2534//300 2525//300 2527//300 +f 2512//299 2533//299 2513//299 +f 2533//301 2518//301 2516//301 +f 2517//299 2533//299 2516//299 +f 2517//302 2515//302 2513//302 +f 2535//292 2519//292 2518//292 +f 2554//292 2562//292 2555//292 +f 2554//298 2540//298 2542//298 +f 2537//296 2543//296 2539//296 +f 2536//299 2541//299 2537//299 +f 2538//297 2540//297 2536//297 +f 2539//292 2542//292 2538//292 +f 2548//300 2551//300 2549//300 +f 2546//292 2551//292 2550//292 +f 2545//296 2551//296 2547//296 +f 2544//299 2549//299 2545//299 +f 2546//297 2548//297 2544//297 +f 2553//299 2540//299 2552//299 +f 2556//301 2559//301 2557//301 +f 2555//292 2558//292 2554//292 +f 2553//296 2559//296 2555//296 +f 2553//299 2556//299 2557//299 +f 2554//297 2556//297 2552//297 +f 2560//295 2563//295 2561//295 +f 2543//292 2562//292 2542//292 +f 2562//300 2553//300 2555//300 +f 2540//299 2561//299 2541//299 +f 2561//301 2546//301 2544//301 +f 2545//299 2561//299 2544//299 +f 2545//302 2543//302 2541//302 +f 2563//292 2547//292 2546//292 +f 2565//296 2566//296 2564//296 +f 2570//296 2569//296 2568//296 +f 2500//292 2503//292 2502//292 +f 2506//293 2507//293 2504//293 +f 2500//294 2504//294 2507//294 +f 2502//295 2506//295 2505//295 +f 2502//296 2503//296 2507//296 +f 2501//297 2505//297 2504//297 +f 2526//292 2514//292 2534//292 +f 2526//298 2524//298 2512//298 +f 2509//296 2513//296 2515//296 +f 2508//299 2512//299 2513//299 +f 2510//297 2514//297 2512//297 +f 2511//292 2515//292 2514//292 +f 2520//300 2522//300 2523//300 +f 2518//292 2519//292 2523//292 +f 2517//296 2521//296 2523//296 +f 2516//299 2520//299 2521//299 +f 2518//297 2522//297 2520//297 +f 2525//299 2532//299 2512//299 +f 2528//301 2530//301 2531//301 +f 2527//292 2531//292 2530//292 +f 2525//296 2529//296 2531//296 +f 2525//299 2524//299 2528//299 +f 2526//297 2530//297 2528//297 +f 2532//295 2534//295 2535//295 +f 2515//292 2535//292 2534//292 +f 2534//300 2532//300 2525//300 +f 2512//299 2532//299 2533//299 +f 2533//301 2535//301 2518//301 +f 2517//299 2513//299 2533//299 +f 2517//302 2519//302 2515//302 +f 2535//292 2515//292 2519//292 +f 2554//292 2542//292 2562//292 +f 2554//298 2552//298 2540//298 +f 2537//296 2541//296 2543//296 +f 2536//299 2540//299 2541//299 +f 2538//297 2542//297 2540//297 +f 2539//292 2543//292 2542//292 +f 2548//300 2550//300 2551//300 +f 2546//292 2547//292 2551//292 +f 2545//296 2549//296 2551//296 +f 2544//299 2548//299 2549//299 +f 2546//297 2550//297 2548//297 +f 2553//299 2560//299 2540//299 +f 2556//301 2558//301 2559//301 +f 2555//292 2559//292 2558//292 +f 2553//296 2557//296 2559//296 +f 2553//299 2552//299 2556//299 +f 2554//297 2558//297 2556//297 +f 2560//295 2562//295 2563//295 +f 2543//292 2563//292 2562//292 +f 2562//300 2560//300 2553//300 +f 2540//299 2560//299 2561//299 +f 2561//301 2563//301 2546//301 +f 2545//299 2541//299 2561//299 +f 2545//302 2547//302 2543//302 +f 2563//292 2543//292 2547//292 +f 2565//296 2567//296 2566//296 +f 2570//296 2571//296 2569//296 +o Micro_Pad +v -1.250000 2.000000 1.250000 +v 1.250000 2.000000 1.250000 +v -1.250000 2.000000 -1.250000 +v 1.250000 2.000000 -1.250000 +v -1.250000 1.500000 -1.250000 +v -1.250000 1.500000 1.250000 +v 1.250000 1.500000 1.250000 +v 1.250000 1.500000 -1.250000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v -0.500000 1.500000 0.500000 +v 0.500000 1.500000 0.500000 +v -0.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v 1.250000 1.500000 1.250000 +v 1.250000 1.000000 1.250000 +v 1.250000 1.500000 0.250000 +v 1.250000 1.000000 0.500000 +v 0.250000 1.500000 1.250000 +v 0.500000 1.000000 1.250000 +v 0.500000 1.500000 0.500000 +v 0.500000 1.000000 0.500000 +v 1.250000 1.250000 0.500000 +v 0.500000 1.250000 1.250000 +v 0.500000 1.250000 0.500000 +v 0.500000 1.500000 0.250000 +v 0.250000 1.500000 0.500000 +v -1.250000 1.500000 -1.250000 +v -1.250000 1.000000 -1.250000 +v -1.250000 1.500000 -0.250000 +v -1.250000 1.000000 -0.500000 +v -0.250000 1.500000 -1.250000 +v -0.500000 1.000000 -1.250000 +v -0.500000 1.500000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -1.250000 1.250000 -0.500000 +v -0.500000 1.250000 -1.250000 +v -0.500000 1.250000 -0.500000 +v -0.500000 1.500000 -0.250000 +v -0.250000 1.500000 -0.500000 +v 1.250000 1.500000 -1.250000 +v 1.250000 1.000000 -1.250000 +v 0.250000 1.500000 -1.250000 +v 0.500000 1.000000 -1.250000 +v 1.250000 1.500000 -0.250000 +v 1.250000 1.000000 -0.500000 +v 0.500000 1.500000 -0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 1.250000 -1.250000 +v 1.250000 1.250000 -0.500000 +v 0.500000 1.250000 -0.500000 +v 0.250000 1.500000 -0.500000 +v 0.500000 1.500000 -0.250000 +v -1.250000 1.500000 1.250000 +v -1.250000 1.000000 1.250000 +v -0.250000 1.500000 1.250000 +v -0.500000 1.000000 1.250000 +v -1.250000 1.500000 0.250000 +v -1.250000 1.000000 0.500000 +v -0.500000 1.500000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 1.250000 1.250000 +v -1.250000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v -0.250000 1.500000 0.500000 +v -0.500000 1.500000 0.250000 +v -0.500000 1.000000 -1.250000 +v 0.500000 1.000000 -1.250000 +v -0.500000 1.000000 -1.750000 +v 0.500000 1.000000 -1.750000 +v -0.500000 1.500000 -1.750000 +v -0.500000 1.500000 -1.250000 +v 0.500000 1.500000 -1.250000 +v 0.500000 1.500000 -1.750000 +v -0.875000 1.000000 2.000000 +v -0.625000 1.000000 2.000000 +v -0.875000 1.000000 1.750000 +v -0.625000 1.000000 1.750000 +v 0.625000 1.000000 2.000000 +v 0.875000 1.000000 2.000000 +v 0.625000 1.000000 1.750000 +v 0.875000 1.000000 1.750000 +v -0.875000 2.000000 1.000000 +v -0.625000 2.000000 1.000000 +v -0.875000 2.000000 0.750000 +v -0.625000 2.000000 0.750000 +v 0.625000 2.000000 1.000000 +v 0.875000 2.000000 1.000000 +v 0.625000 2.000000 0.750000 +v 0.875000 2.000000 0.750000 +v -0.875000 8.000000 1.750000 +v -0.875000 8.000000 2.000000 +v -0.625000 8.000000 2.000000 +v -0.625000 8.000000 1.750000 +v 0.625000 8.000000 1.750000 +v 0.625000 8.000000 2.000000 +v 0.875000 8.000000 2.000000 +v 0.875000 8.000000 1.750000 +v -0.875000 8.000000 0.750000 +v -0.875000 8.000000 1.000000 +v -0.625000 8.000000 1.000000 +v -0.625000 8.000000 0.750000 +v 0.625000 8.000000 0.750000 +v 0.625000 8.000000 1.000000 +v 0.875000 8.000000 1.000000 +v 0.875000 8.000000 0.750000 +v -0.625000 1.000000 1.875000 +v 0.625000 1.000000 1.875000 +v -0.625000 8.000000 1.875000 +v 0.625000 8.000000 1.875000 +v -0.625000 2.000000 0.875000 +v 0.625000 2.000000 0.875000 +v -0.625000 8.000000 0.875000 +v 0.625000 8.000000 0.875000 +v 0.750000 1.000000 1.750000 +v 0.750000 8.000000 1.750000 +v 0.750000 1.000000 1.000000 +v 0.750000 8.000000 1.000000 +v -0.750000 1.000000 1.750000 +v -0.750000 8.000000 1.750000 +v -0.750000 1.000000 1.000000 +v -0.750000 8.000000 1.000000 +v -0.312500 1.000000 1.625000 +v -0.062500 1.000000 1.625000 +v -0.312500 1.000000 1.375000 +v -0.062500 1.000000 1.375000 +v 0.062500 1.000000 1.625000 +v 0.312500 1.000000 1.625000 +v 0.062500 1.000000 1.375000 +v 0.312500 1.000000 1.375000 +v -0.312500 6.000000 1.375000 +v -0.312500 6.000000 1.625000 +v -0.062500 6.000000 1.625000 +v -0.062500 6.000000 1.375000 +v 0.062500 6.000000 1.375000 +v 0.062500 6.000000 1.625000 +v 0.312500 6.000000 1.625000 +v 0.312500 6.000000 1.375000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +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 -0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 +s off +f 2580//303 2574//303 2572//303 +f 2581//303 2572//303 2573//303 +f 2573//304 2579//304 2575//304 +f 2574//305 2577//305 2572//305 +f 2575//306 2576//306 2574//306 +f 2572//307 2578//307 2573//307 +f 2584//304 2582//304 2580//304 +f 2582//303 2575//303 2574//303 +f 2583//303 2573//303 2575//303 +f 2577//308 2585//308 2578//308 +f 2578//308 2587//308 2579//308 +f 2579//308 2586//308 2576//308 +f 2576//308 2584//308 2577//308 +f 2589//303 2590//303 2588//303 +f 2586//307 2583//307 2582//307 +f 2587//305 2581//305 2583//305 +f 2585//306 2580//306 2581//306 +f 2593//304 2595//304 2600//304 +f 2595//306 2602//306 2600//306 +f 2592//307 2596//307 2601//307 +f 2594//309 2602//309 2603//309 +f 2601//305 2599//305 2597//305 +f 2603//305 2602//305 2598//305 +f 2602//306 2604//306 2598//306 +f 2604//310 2601//310 2596//310 +f 2606//305 2608//305 2613//305 +f 2608//307 2615//307 2613//307 +f 2605//306 2609//306 2614//306 +f 2607//311 2615//311 2616//311 +f 2614//304 2612//304 2610//304 +f 2616//304 2615//304 2611//304 +f 2615//307 2617//307 2611//307 +f 2617//312 2614//312 2609//312 +f 2619//306 2621//306 2626//306 +f 2621//305 2628//305 2626//305 +f 2618//304 2622//304 2627//304 +f 2629//310 2626//310 2628//310 +f 2627//307 2625//307 2623//307 +f 2629//307 2628//307 2624//307 +f 2628//305 2630//305 2624//305 +f 2630//311 2627//311 2622//311 +f 2632//307 2634//307 2639//307 +f 2634//304 2641//304 2639//304 +f 2631//305 2635//305 2640//305 +f 2642//312 2639//312 2641//312 +f 2640//306 2638//306 2636//306 +f 2642//306 2641//306 2637//306 +f 2641//304 2643//304 2637//304 +f 2643//309 2640//309 2635//309 +f 2650//303 2648//303 2649//303 +f 2644//305 2648//305 2646//305 +f 2646//306 2651//306 2647//306 +f 2645//307 2649//307 2644//307 +f 2647//304 2650//304 2645//304 +f 2654//308 2653//308 2652//308 +f 2658//308 2657//308 2656//308 +f 2662//308 2661//308 2660//308 +f 2666//308 2665//308 2664//308 +f 2670//303 2668//303 2669//303 +f 2674//303 2672//303 2673//303 +f 2678//303 2676//303 2677//303 +f 2682//303 2680//303 2681//303 +f 2663//304 2678//304 2661//304 +f 2654//306 2671//306 2655//306 +f 2662//306 2679//306 2663//306 +f 2656//305 2672//305 2658//305 +f 2664//305 2680//305 2666//305 +f 2657//307 2673//307 2656//307 +f 2665//307 2681//307 2664//307 +f 2659//304 2674//304 2657//304 +f 2667//304 2682//304 2665//304 +f 2658//306 2675//306 2659//306 +f 2652//305 2668//305 2654//305 +f 2666//306 2683//306 2667//306 +f 2660//305 2676//305 2662//305 +f 2653//307 2669//307 2652//307 +f 2661//307 2677//307 2660//307 +f 2655//304 2670//304 2653//304 +f 2686//307 2685//307 2687//307 +f 2690//306 2689//306 2688//306 +f 2692//304 2695//304 2693//304 +f 2699//305 2696//305 2697//305 +f 2702//308 2701//308 2700//308 +f 2706//308 2705//308 2704//308 +f 2710//303 2708//303 2709//303 +f 2714//303 2712//303 2713//303 +f 2703//304 2710//304 2701//304 +f 2700//305 2708//305 2702//305 +f 2706//306 2715//306 2707//306 +f 2705//307 2713//307 2704//307 +f 2702//306 2711//306 2703//306 +f 2701//307 2709//307 2700//307 +f 2707//304 2714//304 2705//304 +f 2704//305 2712//305 2706//305 +f 2580//303 2582//303 2574//303 +f 2581//303 2580//303 2572//303 +f 2573//304 2578//304 2579//304 +f 2574//305 2576//305 2577//305 +f 2575//306 2579//306 2576//306 +f 2572//307 2577//307 2578//307 +f 2584//304 2586//304 2582//304 +f 2582//303 2583//303 2575//303 +f 2583//303 2581//303 2573//303 +f 2577//308 2584//308 2585//308 +f 2578//308 2585//308 2587//308 +f 2579//308 2587//308 2586//308 +f 2576//308 2586//308 2584//308 +f 2589//303 2591//303 2590//303 +f 2586//307 2587//307 2583//307 +f 2587//305 2585//305 2581//305 +f 2585//306 2584//306 2580//306 +f 2594//304 2592//304 2600//304 +f 2592//304 2593//304 2600//304 +f 2595//306 2599//306 2602//306 +f 2597//307 2593//307 2601//307 +f 2593//307 2592//307 2601//307 +f 2594//309 2600//309 2602//309 +f 2601//305 2602//305 2599//305 +f 2604//310 2602//310 2601//310 +f 2607//305 2605//305 2613//305 +f 2605//305 2606//305 2613//305 +f 2608//307 2612//307 2615//307 +f 2610//306 2606//306 2614//306 +f 2606//306 2605//306 2614//306 +f 2607//311 2613//311 2615//311 +f 2614//304 2615//304 2612//304 +f 2617//312 2615//312 2614//312 +f 2620//306 2618//306 2626//306 +f 2618//306 2619//306 2626//306 +f 2621//305 2625//305 2628//305 +f 2623//304 2619//304 2627//304 +f 2619//304 2618//304 2627//304 +f 2629//310 2620//310 2626//310 +f 2627//307 2628//307 2625//307 +f 2630//311 2628//311 2627//311 +f 2633//307 2631//307 2639//307 +f 2631//307 2632//307 2639//307 +f 2634//304 2638//304 2641//304 +f 2636//305 2632//305 2640//305 +f 2632//305 2631//305 2640//305 +f 2642//312 2633//312 2639//312 +f 2640//306 2641//306 2638//306 +f 2643//309 2641//309 2640//309 +f 2650//303 2651//303 2648//303 +f 2644//305 2649//305 2648//305 +f 2646//306 2648//306 2651//306 +f 2645//307 2650//307 2649//307 +f 2647//304 2651//304 2650//304 +f 2654//308 2655//308 2653//308 +f 2658//308 2659//308 2657//308 +f 2662//308 2663//308 2661//308 +f 2666//308 2667//308 2665//308 +f 2670//303 2671//303 2668//303 +f 2674//303 2675//303 2672//303 +f 2678//303 2679//303 2676//303 +f 2682//303 2683//303 2680//303 +f 2663//304 2679//304 2678//304 +f 2654//306 2668//306 2671//306 +f 2662//306 2676//306 2679//306 +f 2656//305 2673//305 2672//305 +f 2664//305 2681//305 2680//305 +f 2657//307 2674//307 2673//307 +f 2665//307 2682//307 2681//307 +f 2659//304 2675//304 2674//304 +f 2667//304 2683//304 2682//304 +f 2658//306 2672//306 2675//306 +f 2652//305 2669//305 2668//305 +f 2666//306 2680//306 2683//306 +f 2660//305 2677//305 2676//305 +f 2653//307 2670//307 2669//307 +f 2661//307 2678//307 2677//307 +f 2655//304 2671//304 2670//304 +f 2686//307 2684//307 2685//307 +f 2690//306 2691//306 2689//306 +f 2692//304 2694//304 2695//304 +f 2699//305 2698//305 2696//305 +f 2702//308 2703//308 2701//308 +f 2706//308 2707//308 2705//308 +f 2710//303 2711//303 2708//303 +f 2714//303 2715//303 2712//303 +f 2703//304 2711//304 2710//304 +f 2700//305 2709//305 2708//305 +f 2706//306 2712//306 2715//306 +f 2705//307 2714//307 2713//307 +f 2702//306 2708//306 2711//306 +f 2701//307 2710//307 2709//307 +f 2707//304 2715//304 2714//304 +f 2704//305 2713//305 2712//305 +o V2_Pad +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v 0.500000 2.000000 -0.500000 +v -0.500000 2.000000 -0.500000 +v -1.500000 1.500000 -1.500000 +v 1.500000 1.500000 -1.500000 +v -1.500000 1.500000 -2.000000 +v 1.500000 1.500000 -2.000000 +v -1.500000 1.000000 -2.000000 +v 1.500000 1.000000 -2.000000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v 0.500000 2.000000 -0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 1.750000 -0.500000 +v 0.500000 1.750000 0.500000 +v -0.500000 1.750000 -0.500000 +v -0.500000 1.750000 0.500000 +v -1.500000 1.750000 -1.500000 +v -1.500000 1.750000 1.500000 +v 1.500000 1.750000 1.500000 +v 1.500000 1.750000 -1.500000 +v 0.750000 1.125000 1.250000 +v 1.250000 1.125000 1.250000 +v 0.750000 1.125000 0.750000 +v 1.250000 1.125000 0.750000 +v 0.750000 1.625000 1.250000 +v 1.250000 1.625000 1.250000 +v 0.750000 1.625000 0.750000 +v 1.250000 1.625000 0.750000 +v 0.625000 1.000000 1.375000 +v 1.375000 1.000000 1.375000 +v 0.625000 1.000000 0.625000 +v 1.375000 1.000000 0.625000 +v 0.625000 1.125000 1.375000 +v 1.375000 1.125000 1.375000 +v 0.625000 1.125000 0.625000 +v 1.375000 1.125000 0.625000 +v 0.625000 1.625000 1.375000 +v 1.375000 1.625000 1.375000 +v 0.625000 1.625000 0.625000 +v 1.375000 1.625000 0.625000 +v 0.625000 1.750000 1.375000 +v 1.375000 1.750000 1.375000 +v 0.625000 1.750000 0.625000 +v 1.375000 1.750000 0.625000 +v -0.250000 1.000000 2.250000 +v 0.250000 1.000000 2.250000 +v -0.250000 1.000000 1.750000 +v 0.250000 1.000000 1.750000 +v -0.250000 10.000000 1.750000 +v -0.250000 10.000000 2.250000 +v 0.250000 10.000000 2.250000 +v 0.250000 10.000000 1.750000 +v 4.000000 2.750000 1.500000 +v 3.750000 2.750000 1.500000 +v 3.750000 2.750000 1.750000 +v 4.000000 2.750000 1.750000 +v 0.750001 2.000000 1.500000 +v 3.750000 2.000000 1.500000 +v 0.750001 1.500000 1.633975 +v 3.750000 1.500000 1.633975 +v 0.750001 1.133975 2.000000 +v 3.750000 1.133975 2.000000 +v 0.750001 1.000000 2.500000 +v 3.750000 1.000000 2.500000 +v 0.750001 1.133975 3.000000 +v 3.750000 1.133975 3.000000 +v 0.750001 1.500000 3.366025 +v 3.750000 1.500000 3.366025 +v 0.750001 2.000000 3.500000 +v 3.750000 2.000000 3.500000 +v 0.750001 2.500000 3.366025 +v 3.750000 2.500000 3.366025 +v 0.750001 2.866026 3.000000 +v 3.750000 2.866026 3.000000 +v 0.750001 3.000000 2.500000 +v 3.750000 3.000000 2.500000 +v 0.750001 2.866026 2.000000 +v 3.750000 2.866026 2.000000 +v 0.750001 2.500001 1.633975 +v 3.750000 2.500001 1.633975 +v 4.000000 1.000000 1.750000 +v 3.750000 1.000000 1.750000 +v 3.750000 1.000000 1.500000 +v 4.000000 1.000000 1.500000 +v 4.000000 1.250000 1.500000 +v 3.750000 1.250000 1.500000 +v 3.750000 1.250000 1.750000 +v 4.000000 1.250000 1.750000 +v 4.000000 1.250000 3.500000 +v 3.750000 1.250000 3.500000 +v 3.750000 1.250000 3.250000 +v 4.000000 1.250000 3.250000 +v 4.000000 1.000000 3.250000 +v 3.750000 1.000000 3.250000 +v 3.750000 1.000000 3.500000 +v 4.000000 1.000000 3.500000 +v 0.750000 1.000000 1.750000 +v 0.500000 1.000000 1.750000 +v 0.500000 1.000000 1.500000 +v 0.750000 1.000000 1.500000 +v 0.750000 1.250000 1.500000 +v 0.500000 1.250000 1.500000 +v 0.500000 1.250000 1.750000 +v 0.750000 1.250000 1.750000 +v 0.750000 1.250000 3.500000 +v 0.500000 1.250000 3.500000 +v 0.500000 1.250000 3.250000 +v 0.750000 1.250000 3.250000 +v 0.750000 1.000000 3.250000 +v 0.500000 1.000000 3.250000 +v 0.500000 1.000000 3.500000 +v 0.750000 1.000000 3.500000 +v 4.000000 3.000000 1.500000 +v 3.750000 3.000000 1.500000 +v 3.750000 3.000000 1.750000 +v 4.000000 3.000000 1.750000 +v 4.000000 3.000000 3.500000 +v 3.750000 3.000000 3.500000 +v 3.750000 3.000000 3.250000 +v 4.000000 3.000000 3.250000 +v 4.000000 2.750000 3.250000 +v 3.750000 2.750000 3.250000 +v 3.750000 2.750000 3.500000 +v 4.000000 2.750000 3.500000 +v 0.750000 2.750000 1.750000 +v 0.500000 2.750000 1.750000 +v 0.500000 2.750000 1.500000 +v 0.750000 2.750000 1.500000 +v 0.750000 3.000000 1.500000 +v 0.500000 3.000000 1.500000 +v 0.500000 3.000000 1.750000 +v 0.750000 3.000000 1.750000 +v 0.750000 3.000000 3.500000 +v 0.500000 3.000000 3.500000 +v 0.500000 3.000000 3.250000 +v 0.750000 3.000000 3.250000 +v 0.750000 2.750000 3.250000 +v 0.500000 2.750000 3.250000 +v 0.500000 2.750000 3.500000 +v 0.750000 2.750000 3.500000 +v 4.000000 1.000000 1.750000 +v 4.000000 1.000000 3.250000 +v 3.875000 1.000000 1.750000 +v 3.875000 1.000000 3.250000 +v 4.000000 1.125000 1.750000 +v 4.000000 1.125000 3.250000 +v 3.875000 1.125000 1.750000 +v 3.875000 1.125000 3.250000 +v 0.625000 1.000000 1.750000 +v 0.625000 1.000000 3.250000 +v 0.500000 1.000000 1.750000 +v 0.500000 1.000000 3.250000 +v 0.625000 1.125000 1.750000 +v 0.625000 1.125000 3.250000 +v 0.500000 1.125000 1.750000 +v 0.500000 1.125000 3.250000 +v 4.000000 2.875000 1.750000 +v 4.000000 2.875000 3.250000 +v 3.875000 2.875000 1.750000 +v 3.875000 2.875000 3.250000 +v 4.000000 3.000000 1.750000 +v 4.000000 3.000000 3.250000 +v 3.875000 3.000000 1.750000 +v 3.875000 3.000000 3.250000 +v 0.625000 2.875000 1.750000 +v 0.625000 2.875000 3.250000 +v 0.500000 2.875000 1.750000 +v 0.500000 2.875000 3.250000 +v 0.625000 3.000000 1.750000 +v 0.625000 3.000000 3.250000 +v 0.500000 3.000000 1.750000 +v 0.500000 3.000000 3.250000 +v 4.000000 2.750000 1.500000 +v 4.000000 1.250000 1.500000 +v 3.875000 2.750000 1.500000 +v 3.875000 1.250000 1.500000 +v 4.000000 2.750000 1.625000 +v 4.000000 1.250000 1.625000 +v 3.875000 2.750000 1.625000 +v 3.875000 1.250000 1.625000 +v 0.625000 2.750000 1.500000 +v 0.625000 1.250000 1.500000 +v 0.500000 2.750000 1.500000 +v 0.500000 1.250000 1.500000 +v 0.625000 2.750000 1.625000 +v 0.625000 1.250000 1.625000 +v 0.500000 2.750000 1.625000 +v 0.500000 1.250000 1.625000 +v 4.000000 2.750000 3.375000 +v 4.000000 1.250000 3.375000 +v 3.875000 2.750000 3.375000 +v 3.875000 1.250000 3.375000 +v 4.000000 2.750000 3.500000 +v 4.000000 1.250000 3.500000 +v 3.875000 2.750000 3.500000 +v 3.875000 1.250000 3.500000 +v 0.625000 2.750000 3.375000 +v 0.625000 1.250000 3.375000 +v 0.500000 2.750000 3.375000 +v 0.500000 1.250000 3.375000 +v 0.625000 2.750000 3.500000 +v 0.625000 1.250000 3.500000 +v 0.500000 2.750000 3.500000 +v 0.500000 1.250000 3.500000 +v 3.750000 1.000000 3.500000 +v 0.750000 1.000000 3.500000 +v 3.750000 1.000000 3.375000 +v 0.750000 1.000000 3.375000 +v 3.750000 1.125000 3.500000 +v 0.750000 1.125000 3.500000 +v 3.750000 1.125000 3.375000 +v 0.750000 1.125000 3.375000 +v 3.750000 2.875000 3.500000 +v 0.750000 2.875000 3.500000 +v 3.750000 2.875000 3.375000 +v 0.750000 2.875000 3.375000 +v 3.750000 3.000000 3.500000 +v 0.750000 3.000000 3.500000 +v 3.750000 3.000000 3.375000 +v 0.750000 3.000000 3.375000 +v 3.750000 1.000000 1.625000 +v 0.750000 1.000000 1.625000 +v 3.750000 1.000000 1.500000 +v 0.750000 1.000000 1.500000 +v 3.750000 1.125000 1.625000 +v 0.750000 1.125000 1.625000 +v 3.750000 1.125000 1.500000 +v 0.750000 1.125000 1.500000 +v 3.750000 2.875000 1.625000 +v 0.750000 2.875000 1.625000 +v 3.750000 2.875000 1.500000 +v 0.750000 2.875000 1.500000 +v 3.750000 3.000000 1.625000 +v 0.750000 3.000000 1.625000 +v 3.750000 3.000000 1.500000 +v 0.750000 3.000000 1.500000 +v 4.000000 1.625000 1.850481 +v 4.000000 2.000000 1.750000 +v 4.000000 1.350481 2.125000 +v 4.000000 1.250000 2.500000 +v 4.000000 1.350481 2.875000 +v 4.000000 1.625000 3.149519 +v 4.000000 2.000000 3.250000 +v 4.000000 2.375000 3.149519 +v 4.000000 2.649519 2.875000 +v 4.000000 2.750000 2.500000 +v 4.000000 2.649520 2.125000 +v 4.000000 2.375001 1.850481 +v 0.500001 2.000000 1.750000 +v 0.500001 1.625000 1.850481 +v 0.500001 1.350481 2.125000 +v 0.500001 1.250000 2.500000 +v 0.500001 1.350481 2.875000 +v 0.500001 1.625000 3.149519 +v 0.500001 2.000000 3.250000 +v 0.500001 2.375000 3.149519 +v 0.500001 2.649519 2.875000 +v 0.500001 2.750000 2.500000 +v 0.500001 2.649520 2.125000 +v 0.500001 2.375001 1.850481 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3620 0.0000 -0.9322 +vn -0.3620 -0.4661 -0.8073 +vn -0.3620 0.0000 -0.9322 +vn 0.3620 -0.4661 -0.8073 +vn -0.3620 -0.8073 -0.4661 +vn 0.3620 -0.8073 -0.4661 +vn -0.3620 -0.9322 0.0000 +vn 0.3620 -0.9322 0.0000 +vn -0.3620 -0.8073 0.4661 +vn 0.3620 -0.8073 0.4661 +vn -0.3620 -0.4661 0.8073 +vn 0.3620 -0.4661 0.8073 +vn -0.3620 0.0000 0.9322 +vn 0.3620 0.0000 0.9322 +vn -0.3620 0.4661 0.8073 +vn 0.3620 0.4661 0.8073 +vn -0.3620 0.8073 0.4661 +vn 0.3620 0.8073 0.4661 +vn -0.3620 0.9322 0.0000 +vn 0.3620 0.9322 0.0000 +vn -0.3620 0.8073 -0.4661 +vn 0.9007 0.3762 0.2172 +vn 0.3620 0.8073 -0.4661 +vn -0.3620 0.4661 -0.8073 +vn 0.3620 0.4661 -0.8073 +vn -0.9007 0.0000 0.4343 +vn -0.9007 -0.2172 0.3762 +vn 0.9007 -0.3762 0.2172 +vn 0.9007 -0.3762 -0.2172 +vn 0.9007 0.3762 -0.2172 +vn 0.9007 0.0000 0.4343 +vn 0.9007 0.2172 0.3762 +vn 0.9007 -0.2172 0.3762 +vn 0.9007 0.2172 -0.3762 +vn 0.9007 0.0000 -0.4343 +vn 0.9007 -0.2172 -0.3762 +vn 0.9007 -0.4343 0.0000 +vn 0.9007 0.4343 0.0000 +vn -0.9007 -0.4343 0.0000 +vn -0.9007 0.2172 0.3762 +vn -0.9007 0.2172 -0.3762 +vn -0.9007 -0.3762 0.2172 +vn -0.9007 0.0000 -0.4343 +vn -0.9007 -0.2172 -0.3762 +vn -0.9007 -0.3762 -0.2172 +vn -0.9007 0.3762 -0.2172 +vn -0.9007 0.4343 0.0000 +vn -0.9007 0.3762 0.2172 +s off +f 2721//313 2722//313 2720//313 +f 2727//314 2720//314 2726//314 +f 2723//315 2724//315 2722//315 +f 2725//316 2721//316 2727//316 +f 2720//317 2724//317 2726//317 +f 2716//313 2729//313 2717//313 +f 2717//313 2731//313 2718//313 +f 2718//313 2730//313 2719//313 +f 2719//313 2728//313 2716//313 +f 2734//313 2732//313 2733//313 +f 2742//318 2739//318 2737//318 +f 2743//318 2737//318 2736//318 +f 2740//318 2736//318 2738//318 +f 2741//318 2738//318 2739//318 +f 2718//317 2737//317 2717//317 +f 2729//316 2743//316 2731//316 +f 2730//317 2741//317 2728//317 +f 2717//315 2739//315 2716//315 +f 2716//316 2738//316 2719//316 +f 2731//315 2740//315 2730//315 +f 2728//314 2742//314 2729//314 +f 2719//314 2736//314 2718//314 +f 2746//315 2751//315 2747//315 +f 2745//314 2748//314 2744//314 +f 2747//316 2749//316 2745//316 +f 2744//317 2750//317 2746//317 +f 2763//316 2765//316 2761//316 +f 2757//313 2758//313 2756//313 +f 2755//316 2757//316 2753//316 +f 2752//317 2758//317 2754//317 +f 2754//315 2759//315 2755//315 +f 2753//314 2756//314 2752//314 +f 2760//317 2766//317 2762//317 +f 2762//315 2767//315 2763//315 +f 2761//314 2764//314 2760//314 +f 2763//318 2760//318 2762//318 +f 2774//313 2772//313 2773//313 +f 2771//316 2774//316 2769//316 +f 2768//317 2772//317 2770//317 +f 2770//315 2775//315 2771//315 +f 2769//314 2773//314 2768//314 +f 2778//318 2776//318 2779//318 +f 2805//318 2807//318 2804//318 +f 2808//313 2810//313 2811//313 +f 2811//314 2805//314 2804//314 +f 2810//317 2806//317 2805//317 +f 2809//315 2807//315 2806//315 +f 2808//316 2804//316 2807//316 +f 2815//316 2819//316 2816//316 +f 2814//315 2816//315 2817//315 +f 2813//317 2817//317 2818//317 +f 2812//314 2818//314 2819//314 +f 2815//313 2813//313 2812//313 +f 2818//318 2816//318 2819//318 +f 2821//318 2823//318 2820//318 +f 2824//313 2826//313 2827//313 +f 2827//314 2821//314 2820//314 +f 2826//317 2822//317 2821//317 +f 2825//315 2823//315 2822//315 +f 2824//316 2820//316 2823//316 +f 2831//316 2835//316 2832//316 +f 2830//315 2832//315 2833//315 +f 2829//317 2833//317 2834//317 +f 2828//314 2834//314 2835//314 +f 2831//313 2829//313 2828//313 +f 2834//318 2832//318 2835//318 +f 2836//313 2838//313 2839//313 +f 2839//314 2778//314 2779//314 +f 2838//317 2777//317 2778//317 +f 2837//315 2776//315 2777//315 +f 2836//316 2779//316 2776//316 +f 2843//316 2847//316 2844//316 +f 2842//315 2844//315 2845//315 +f 2841//317 2845//317 2846//317 +f 2840//314 2846//314 2847//314 +f 2843//313 2841//313 2840//313 +f 2846//318 2844//318 2847//318 +f 2849//318 2851//318 2848//318 +f 2852//313 2854//313 2855//313 +f 2855//314 2849//314 2848//314 +f 2854//317 2850//317 2849//317 +f 2853//315 2851//315 2850//315 +f 2852//316 2848//316 2851//316 +f 2859//316 2863//316 2860//316 +f 2858//315 2860//315 2861//315 +f 2857//317 2861//317 2862//317 +f 2856//314 2862//314 2863//314 +f 2859//313 2857//313 2856//313 +f 2862//318 2860//318 2863//318 +f 2865//318 2866//318 2864//318 +f 2867//317 2870//317 2866//317 +f 2864//316 2869//316 2865//316 +f 2868//313 2871//313 2869//313 +f 2873//318 2874//318 2872//318 +f 2875//317 2878//317 2874//317 +f 2872//316 2877//316 2873//316 +f 2876//313 2879//313 2877//313 +f 2881//318 2882//318 2880//318 +f 2883//317 2886//317 2882//317 +f 2880//316 2885//316 2881//316 +f 2884//313 2887//313 2885//313 +f 2889//318 2890//318 2888//318 +f 2891//317 2894//317 2890//317 +f 2888//316 2893//316 2889//316 +f 2892//313 2895//313 2893//313 +f 2897//315 2898//315 2896//315 +f 2899//317 2902//317 2898//317 +f 2896//316 2901//316 2897//316 +f 2900//314 2903//314 2901//314 +f 2905//315 2906//315 2904//315 +f 2907//317 2910//317 2906//317 +f 2904//316 2909//316 2905//316 +f 2908//314 2911//314 2909//314 +f 2913//315 2914//315 2912//315 +f 2915//317 2918//317 2914//317 +f 2912//316 2917//316 2913//316 +f 2916//314 2919//314 2917//314 +f 2921//315 2922//315 2920//315 +f 2923//317 2926//317 2922//317 +f 2920//316 2925//316 2921//316 +f 2924//314 2927//314 2925//314 +f 2931//318 2928//318 2929//318 +f 2935//315 2930//315 2931//315 +f 2932//314 2929//314 2928//314 +f 2932//313 2935//313 2933//313 +f 2939//318 2936//318 2937//318 +f 2943//315 2938//315 2939//315 +f 2940//314 2937//314 2936//314 +f 2940//313 2943//313 2941//313 +f 2947//318 2944//318 2945//318 +f 2951//315 2946//315 2947//315 +f 2948//314 2945//314 2944//314 +f 2948//313 2951//313 2949//313 +f 2955//318 2952//318 2953//318 +f 2959//315 2954//315 2955//315 +f 2956//314 2953//314 2952//314 +f 2956//313 2959//313 2957//313 +f 2721//313 2723//313 2722//313 +f 2727//314 2721//314 2720//314 +f 2723//315 2725//315 2724//315 +f 2725//316 2723//316 2721//316 +f 2720//317 2722//317 2724//317 +f 2716//313 2728//313 2729//313 +f 2717//313 2729//313 2731//313 +f 2718//313 2731//313 2730//313 +f 2719//313 2730//313 2728//313 +f 2734//313 2735//313 2732//313 +f 2742//318 2741//318 2739//318 +f 2743//318 2742//318 2737//318 +f 2740//318 2743//318 2736//318 +f 2741//318 2740//318 2738//318 +f 2718//317 2736//317 2737//317 +f 2729//316 2742//316 2743//316 +f 2730//317 2740//317 2741//317 +f 2717//315 2737//315 2739//315 +f 2716//316 2739//316 2738//316 +f 2731//315 2743//315 2740//315 +f 2728//314 2741//314 2742//314 +f 2719//314 2738//314 2736//314 +f 2746//315 2750//315 2751//315 +f 2745//314 2749//314 2748//314 +f 2747//316 2751//316 2749//316 +f 2744//317 2748//317 2750//317 +f 2763//316 2767//316 2765//316 +f 2757//313 2759//313 2758//313 +f 2755//316 2759//316 2757//316 +f 2752//317 2756//317 2758//317 +f 2754//315 2758//315 2759//315 +f 2753//314 2757//314 2756//314 +f 2760//317 2764//317 2766//317 +f 2762//315 2766//315 2767//315 +f 2761//314 2765//314 2764//314 +f 2763//318 2761//318 2760//318 +f 2774//313 2775//313 2772//313 +f 2771//316 2775//316 2774//316 +f 2768//317 2773//317 2772//317 +f 2770//315 2772//315 2775//315 +f 2769//314 2774//314 2773//314 +f 2778//318 2777//318 2776//318 +f 2805//318 2806//318 2807//318 +f 2808//313 2809//313 2810//313 +f 2811//314 2810//314 2805//314 +f 2810//317 2809//317 2806//317 +f 2809//315 2808//315 2807//315 +f 2808//316 2811//316 2804//316 +f 2815//316 2812//316 2819//316 +f 2814//315 2815//315 2816//315 +f 2813//317 2814//317 2817//317 +f 2812//314 2813//314 2818//314 +f 2815//313 2814//313 2813//313 +f 2818//318 2817//318 2816//318 +f 2821//318 2822//318 2823//318 +f 2824//313 2825//313 2826//313 +f 2827//314 2826//314 2821//314 +f 2826//317 2825//317 2822//317 +f 2825//315 2824//315 2823//315 +f 2824//316 2827//316 2820//316 +f 2831//316 2828//316 2835//316 +f 2830//315 2831//315 2832//315 +f 2829//317 2830//317 2833//317 +f 2828//314 2829//314 2834//314 +f 2831//313 2830//313 2829//313 +f 2834//318 2833//318 2832//318 +f 2836//313 2837//313 2838//313 +f 2839//314 2838//314 2778//314 +f 2838//317 2837//317 2777//317 +f 2837//315 2836//315 2776//315 +f 2836//316 2839//316 2779//316 +f 2843//316 2840//316 2847//316 +f 2842//315 2843//315 2844//315 +f 2841//317 2842//317 2845//317 +f 2840//314 2841//314 2846//314 +f 2843//313 2842//313 2841//313 +f 2846//318 2845//318 2844//318 +f 2849//318 2850//318 2851//318 +f 2852//313 2853//313 2854//313 +f 2855//314 2854//314 2849//314 +f 2854//317 2853//317 2850//317 +f 2853//315 2852//315 2851//315 +f 2852//316 2855//316 2848//316 +f 2859//316 2856//316 2863//316 +f 2858//315 2859//315 2860//315 +f 2857//317 2858//317 2861//317 +f 2856//314 2857//314 2862//314 +f 2859//313 2858//313 2857//313 +f 2862//318 2861//318 2860//318 +f 2865//318 2867//318 2866//318 +f 2867//317 2871//317 2870//317 +f 2864//316 2868//316 2869//316 +f 2868//313 2870//313 2871//313 +f 2873//318 2875//318 2874//318 +f 2875//317 2879//317 2878//317 +f 2872//316 2876//316 2877//316 +f 2876//313 2878//313 2879//313 +f 2881//318 2883//318 2882//318 +f 2883//317 2887//317 2886//317 +f 2880//316 2884//316 2885//316 +f 2884//313 2886//313 2887//313 +f 2889//318 2891//318 2890//318 +f 2891//317 2895//317 2894//317 +f 2888//316 2892//316 2893//316 +f 2892//313 2894//313 2895//313 +f 2897//315 2899//315 2898//315 +f 2899//317 2903//317 2902//317 +f 2896//316 2900//316 2901//316 +f 2900//314 2902//314 2903//314 +f 2905//315 2907//315 2906//315 +f 2907//317 2911//317 2910//317 +f 2904//316 2908//316 2909//316 +f 2908//314 2910//314 2911//314 +f 2913//315 2915//315 2914//315 +f 2915//317 2919//317 2918//317 +f 2912//316 2916//316 2917//316 +f 2916//314 2918//314 2919//314 +f 2921//315 2923//315 2922//315 +f 2923//317 2927//317 2926//317 +f 2920//316 2924//316 2925//316 +f 2924//314 2926//314 2927//314 +f 2931//318 2930//318 2928//318 +f 2935//315 2934//315 2930//315 +f 2932//314 2933//314 2929//314 +f 2932//313 2934//313 2935//313 +f 2939//318 2938//318 2936//318 +f 2943//315 2942//315 2938//315 +f 2940//314 2941//314 2937//314 +f 2940//313 2942//313 2943//313 +f 2947//318 2946//318 2944//318 +f 2951//315 2950//315 2946//315 +f 2948//314 2949//314 2945//314 +f 2948//313 2950//313 2951//313 +f 2955//318 2954//318 2952//318 +f 2959//315 2958//315 2954//315 +f 2956//314 2957//314 2953//314 +f 2956//313 2958//313 2959//313 +s 1 +f 2781//319 2782//320 2780//321 +f 2783//322 2784//323 2782//320 +f 2785//324 2786//325 2784//323 +f 2787//326 2788//327 2786//325 +f 2789//328 2790//329 2788//327 +f 2791//330 2792//331 2790//329 +f 2793//332 2794//333 2792//331 +f 2795//334 2796//335 2794//333 +f 2797//336 2798//337 2796//335 +f 2799//338 2800//339 2798//337 +f 2795//334 2968//340 2797//336 +f 2801//341 2802//342 2800//339 +f 2803//343 2780//321 2802//342 +f 2790//329 2978//344 2977//345 +f 2964//346 2962//347 2970//348 +f 2795//334 2966//349 2967//350 +f 2791//330 2966//349 2793//332 +f 2789//328 2965//351 2791//330 +f 2787//326 2964//346 2789//328 +f 2781//319 2971//352 2961//353 +f 2781//319 2960//354 2783//322 +f 2787//326 2962//347 2963//355 +f 2803//343 2970//348 2971//352 +f 2785//324 2960//354 2962//347 +f 2801//341 2969//356 2970//348 +f 2797//336 2969//356 2799//338 +f 2975//357 2979//358 2983//359 +f 2790//329 2976//360 2788//327 +f 2786//325 2976//360 2975//357 +f 2802//342 2972//361 2983//359 +f 2780//321 2973//362 2972//361 +f 2786//325 2974//363 2784//323 +f 2802//342 2982//364 2800//339 +f 2784//323 2973//362 2782//320 +f 2800//339 2981//365 2798//337 +f 2796//335 2981//365 2980//366 +f 2796//335 2979//358 2794//333 +f 2794//333 2978//344 2792//331 +f 2781//319 2783//322 2782//320 +f 2783//322 2785//324 2784//323 +f 2785//324 2787//326 2786//325 +f 2787//326 2789//328 2788//327 +f 2789//328 2791//330 2790//329 +f 2791//330 2793//332 2792//331 +f 2793//332 2795//334 2794//333 +f 2795//334 2797//336 2796//335 +f 2797//336 2799//338 2798//337 +f 2799//338 2801//341 2800//339 +f 2795//334 2967//350 2968//340 +f 2801//341 2803//343 2802//342 +f 2803//343 2781//319 2780//321 +f 2790//329 2792//331 2978//344 +f 2962//347 2960//354 2961//353 +f 2961//353 2971//352 2962//347 +f 2971//352 2970//348 2962//347 +f 2970//348 2969//356 2968//340 +f 2968//340 2967//350 2970//348 +f 2967//350 2966//349 2970//348 +f 2966//349 2965//351 2964//346 +f 2964//346 2963//355 2962//347 +f 2966//349 2964//346 2970//348 +f 2795//334 2793//332 2966//349 +f 2791//330 2965//351 2966//349 +f 2789//328 2964//346 2965//351 +f 2787//326 2963//355 2964//346 +f 2781//319 2803//343 2971//352 +f 2781//319 2961//353 2960//354 +f 2787//326 2785//324 2962//347 +f 2803//343 2801//341 2970//348 +f 2785//324 2783//322 2960//354 +f 2801//341 2799//338 2969//356 +f 2797//336 2968//340 2969//356 +f 2983//359 2972//361 2973//362 +f 2973//362 2974//363 2983//359 +f 2974//363 2975//357 2983//359 +f 2975//357 2976//360 2977//345 +f 2977//345 2978//344 2979//358 +f 2979//358 2980//366 2981//365 +f 2981//365 2982//364 2979//358 +f 2982//364 2983//359 2979//358 +f 2975//357 2977//345 2979//358 +f 2790//329 2977//345 2976//360 +f 2786//325 2788//327 2976//360 +f 2802//342 2780//321 2972//361 +f 2780//321 2782//320 2973//362 +f 2786//325 2975//357 2974//363 +f 2802//342 2983//359 2982//364 +f 2784//323 2974//363 2973//362 +f 2800//339 2982//364 2981//365 +f 2796//335 2798//337 2981//365 +f 2796//335 2980//366 2979//358 +f 2794//333 2979//358 2978//344 +o V2_Rope +v 0.000000 9.000000 1.750000 +v 0.000000 8.875000 1.750000 +v 0.000000 9.000000 0.000000 +v 0.000000 8.875000 0.000000 +v 0.000000 8.875000 1.375000 +v 0.000000 8.750000 1.375000 +v 0.000000 8.875000 0.375000 +v 0.000000 8.750000 0.375000 +v 0.312500 2.062500 1.937500 +v 0.268306 2.062500 1.955806 +v 0.250000 2.062500 2.000000 +v 0.268306 2.062500 2.044194 +v 0.312500 2.062500 2.062500 +v 0.356694 2.062500 2.044194 +v 0.375000 2.062500 2.000000 +v 0.356694 2.062500 1.955806 +v 0.330806 2.018306 1.937500 +v 0.299556 1.987056 1.955806 +v 0.286612 1.974112 2.000000 +v 0.299556 1.987056 2.044194 +v 0.330806 2.018306 2.062500 +v 0.362056 2.049556 2.044194 +v 0.362056 2.049556 1.955806 +v 0.375000 2.000000 1.937500 +v 0.375000 1.955806 1.955806 +v 0.375000 1.937500 2.000000 +v 0.375000 1.955806 2.044194 +v 0.375000 2.000000 2.062500 +v 0.375000 2.044194 2.044194 +v 0.375000 2.044194 1.955806 +v 0.500000 2.062500 2.000000 +v 0.500000 2.000000 1.937500 +v 0.500000 1.955806 1.955806 +v 0.500000 1.937500 2.000000 +v 0.500000 1.955806 2.044194 +v 0.500000 2.000000 2.062500 +v 0.500000 2.044194 2.044194 +v 0.500000 2.044194 1.955806 +v 0.312500 5.312500 1.937500 +v 0.268306 5.312500 1.955806 +v 0.250000 5.312500 2.000000 +v 0.268306 5.312500 2.044194 +v 0.312500 5.312500 2.062500 +v 0.356694 5.312500 2.044194 +v 0.375000 5.312500 2.000000 +v 0.356694 5.312500 1.955806 +v 0.312500 4.625000 2.000000 +v 0.268306 4.606694 2.000000 +v 0.250000 4.562500 2.000000 +v 0.268306 4.518306 2.000000 +v 0.312500 4.500000 2.000000 +v 0.356694 4.518306 2.000000 +v 0.375000 4.562500 2.000000 +v 0.356694 4.606694 2.000000 +v 0.312500 4.625000 0.250000 +v 0.268306 4.606694 0.250000 +v 0.250000 4.562500 0.250000 +v 0.268306 4.518306 0.250000 +v 0.312500 4.500000 0.250000 +v 0.356694 4.518306 0.250000 +v 0.375000 4.562500 0.250000 +v 0.356694 4.606694 0.250000 +v 0.268306 5.325444 1.950444 +v 0.250000 5.356694 1.981694 +v 0.268306 5.387944 2.012944 +v 0.312500 5.400888 2.025888 +v 0.356694 5.387944 2.012944 +v 0.375000 5.356694 1.981694 +v 0.356694 5.325444 1.950444 +v 0.268306 5.330806 1.937500 +v 0.250000 5.375000 1.937500 +v 0.268306 5.419194 1.937500 +v 0.312500 5.437500 1.937500 +v 0.356694 5.419194 1.937500 +v 0.375000 5.375000 1.937500 +v 0.356694 5.330806 1.937500 +v 0.312500 5.312500 0.187500 +v 0.268306 5.330806 0.187500 +v 0.250000 5.375000 0.187500 +v 0.268306 5.419194 0.187500 +v 0.312500 5.437500 0.187500 +v 0.356694 5.419194 0.187500 +v 0.375000 5.375000 0.187500 +v 0.356694 5.330806 0.187500 +vn 1.0000 0.0000 0.0000 +vn -0.0473 -0.0196 0.9987 +vn 0.4617 0.4617 0.7573 +vn 0.6737 0.1363 0.7263 +vn -0.9824 -0.1866 0.0000 +vn -0.5293 -0.5293 0.6630 +vn -0.7194 -0.1447 0.6794 +vn -0.0473 -0.0196 -0.9987 +vn -0.5293 -0.5293 -0.6630 +vn -0.7194 -0.1447 -0.6794 +vn 0.4617 0.4617 -0.7573 +vn -0.0670 -0.0670 -0.9955 +vn -0.0670 -0.0670 0.9955 +vn -0.7071 -0.7071 0.0000 +vn -0.0196 -0.0473 -0.9987 +vn -0.0196 -0.0473 0.9987 +vn -0.1447 -0.7194 -0.6794 +vn -0.1866 -0.9824 0.0000 +vn 0.1363 0.6737 0.7263 +vn -0.1447 -0.7194 0.6794 +vn 0.7071 0.7071 0.0000 +vn 0.6737 0.1363 -0.7263 +vn 0.1363 0.6737 -0.7263 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.9987 0.0196 0.0473 +vn 0.0000 0.1866 0.9824 +vn -0.9987 0.0196 0.0473 +vn 0.7263 -0.1363 -0.6737 +vn 0.6794 0.1447 0.7194 +vn -0.6794 0.1447 0.7194 +vn -0.7263 -0.1363 -0.6737 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.6630 0.5293 0.5293 +vn -0.6630 0.5293 0.5293 +vn -0.7573 -0.4617 -0.4617 +vn 0.7573 -0.4617 -0.4617 +vn 0.9955 0.0670 0.0670 +vn -0.9955 0.0670 0.0670 +vn -0.9987 0.0473 0.0196 +vn -0.7263 -0.6737 -0.1363 +vn 0.9987 0.0473 0.0196 +vn 0.0000 0.9824 0.1866 +vn -0.6794 0.7194 0.1447 +vn 0.6794 0.7194 0.1447 +vn 0.7263 -0.6737 -0.1363 +s off +f 2985//367 2988//367 2984//367 +f 2990//367 2987//367 2986//367 +f 2989//367 2990//367 2988//367 +f 2985//367 2989//367 2988//367 +f 2990//367 2991//367 2987//367 +f 2989//367 2991//367 2990//367 +s 1 +f 2996//368 3005//369 2997//370 +f 2994//371 3003//372 2995//373 +f 2992//374 3001//375 2993//376 +f 2992//374 3006//377 3000//378 +f 2996//368 3003//372 3004//379 +f 2993//376 3002//380 2994//371 +f 3006//377 3007//381 3000//378 +f 3003//372 3011//382 3004//379 +f 3002//380 3008//383 3009//384 +f 3005//369 3011//382 3012//385 +f 3002//380 3010//386 3003//372 +f 3001//375 3007//381 3008//383 +f 2997//370 3005//369 2998//387 +f 3005//369 3012//385 2998//387 +f 2998//387 3006//377 2999//388 +f 3006//377 2998//387 3013//389 +f 3013//389 3014//390 3021//391 +f 3013//389 3015//392 3007//381 +f 3012//385 3014//390 2998//387 +f 3010//386 3019//393 3011//382 +f 3009//384 3016//394 3017//395 +f 3011//382 3020//396 3012//385 +f 3009//384 3018//397 3010//386 +f 3007//381 3016//394 3008//383 +f 2999//388 3028//398 2998//387 +f 2997//370 3026//399 2996//368 +f 2995//373 3024//400 2994//371 +f 2993//376 3022//394 2992//374 +f 2992//374 3029//401 2999//388 +f 2998//387 3027//402 2997//370 +f 2996//368 3025//403 2995//373 +f 2994//371 3023//404 2993//376 +f 3040//405 3033//380 3032//405 +f 3038//390 3031//406 3030//390 +f 3045//387 3030//390 3037//387 +f 3043//407 3036//367 3035//407 +f 3041//380 3034//395 3033//380 +f 3039//406 3032//405 3031//406 +f 3044//367 3037//387 3036//367 +f 3042//395 3035//407 3034//395 +f 3028//398 3050//408 3027//402 +f 3026//399 3048//409 3025//403 +f 3024//400 3046//410 3023//404 +f 3028//398 3052//411 3051//412 +f 3027//402 3049//396 3026//399 +f 3024//400 3048//409 3047//413 +f 3046//410 3054//414 3053//415 +f 3052//411 3058//416 3051//412 +f 3050//408 3056//417 3049//396 +f 3047//413 3055//418 3054//414 +f 3050//408 3058//416 3057//419 +f 3048//409 3056//417 3055//418 +f 3023//404 3046//410 3022//394 +f 3046//410 3053//415 3022//394 +f 3029//401 3022//394 3052//411 +f 3052//411 3022//394 3059//420 +f 3059//420 3060//395 3067//407 +f 3059//420 3066//367 3058//416 +f 3053//415 3060//395 3022//394 +f 3057//419 3064//390 3056//417 +f 3055//418 3062//405 3054//414 +f 3058//416 3065//387 3057//419 +f 3056//417 3063//406 3055//418 +f 3053//415 3062//405 3061//380 +f 2996//368 3004//379 3005//369 +f 2994//371 3002//380 3003//372 +f 2992//374 3000//378 3001//375 +f 2992//374 2999//388 3006//377 +f 2996//368 2995//373 3003//372 +f 2993//376 3001//375 3002//380 +f 3006//377 3013//389 3007//381 +f 3003//372 3010//386 3011//382 +f 3002//380 3001//375 3008//383 +f 3005//369 3004//379 3011//382 +f 3002//380 3009//384 3010//386 +f 3001//375 3000//378 3007//381 +f 3013//389 2998//387 3014//390 +f 3013//389 3021//391 3015//392 +f 3012//385 3020//396 3014//390 +f 3010//386 3018//397 3019//393 +f 3009//384 3008//383 3016//394 +f 3011//382 3019//393 3020//396 +f 3009//384 3017//395 3018//397 +f 3007//381 3015//392 3016//394 +f 2999//388 3029//401 3028//398 +f 2997//370 3027//402 3026//399 +f 2995//373 3025//403 3024//400 +f 2993//376 3023//404 3022//394 +f 2992//374 3022//394 3029//401 +f 2998//387 3028//398 3027//402 +f 2996//368 3026//399 3025//403 +f 2994//371 3024//400 3023//404 +f 3040//405 3041//380 3033//380 +f 3038//390 3039//406 3031//406 +f 3045//387 3038//390 3030//390 +f 3043//407 3044//367 3036//367 +f 3041//380 3042//395 3034//395 +f 3039//406 3040//405 3032//405 +f 3044//367 3045//387 3037//387 +f 3042//395 3043//407 3035//407 +f 3028//398 3051//412 3050//408 +f 3026//399 3049//396 3048//409 +f 3024//400 3047//413 3046//410 +f 3028//398 3029//401 3052//411 +f 3027//402 3050//408 3049//396 +f 3024//400 3025//403 3048//409 +f 3046//410 3047//413 3054//414 +f 3052//411 3059//420 3058//416 +f 3050//408 3057//419 3056//417 +f 3047//413 3048//409 3055//418 +f 3050//408 3051//412 3058//416 +f 3048//409 3049//396 3056//417 +f 3059//420 3022//394 3060//395 +f 3059//420 3067//407 3066//367 +f 3053//415 3061//380 3060//395 +f 3057//419 3065//387 3064//390 +f 3055//418 3063//406 3062//405 +f 3058//416 3066//367 3065//387 +f 3056//417 3064//390 3063//406 +f 3053//415 3054//414 3062//405 +o V2_Pivot +v 0.500000 1.250000 -1.625000 +v 0.750000 1.250000 -1.625000 +v 0.500000 1.250000 -1.875000 +v 0.750000 1.250000 -1.875000 +v 0.500000 2.750000 -1.875000 +v 0.500000 2.750000 -1.625000 +v 0.750000 2.750000 -1.625000 +v 0.750000 2.750000 -1.875000 +v -0.750000 1.250000 -1.625000 +v -0.500000 1.250000 -1.625000 +v -0.750000 1.250000 -1.875000 +v -0.500000 1.250000 -1.875000 +v -0.750000 2.750000 -1.875000 +v -0.750000 2.750000 -1.625000 +v -0.500000 2.750000 -1.625000 +v -0.500000 2.750000 -1.875000 +v 0.562500 2.750000 -1.687500 +v 0.687500 2.750000 -1.687500 +v 0.562500 2.750000 -1.812500 +v 0.687500 2.750000 -1.812500 +v 0.562500 3.750000 -1.812500 +v 0.562500 3.750000 -1.687500 +v 0.687500 3.750000 -1.687500 +v 0.687500 3.750000 -1.812500 +v -0.687500 2.750000 -1.687500 +v -0.562500 2.750000 -1.687500 +v -0.687500 2.750000 -1.812500 +v -0.562500 2.750000 -1.812500 +v -0.687500 3.750000 -1.812500 +v -0.687500 3.750000 -1.687500 +v -0.562500 3.750000 -1.687500 +v -0.562500 3.750000 -1.812500 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 3074//421 3072//421 3073//421 +f 3071//422 3074//422 3069//422 +f 3068//423 3072//423 3070//423 +f 3070//424 3075//424 3071//424 +f 3069//425 3073//425 3068//425 +f 3082//421 3080//421 3081//421 +f 3079//422 3082//422 3077//422 +f 3076//423 3080//423 3078//423 +f 3078//424 3083//424 3079//424 +f 3077//425 3081//425 3076//425 +f 3087//422 3090//422 3085//422 +f 3084//423 3088//423 3086//423 +f 3086//424 3091//424 3087//424 +f 3085//425 3089//425 3084//425 +f 3095//422 3098//422 3093//422 +f 3092//423 3096//423 3094//423 +f 3094//424 3099//424 3095//424 +f 3093//425 3097//425 3092//425 +f 3074//421 3075//421 3072//421 +f 3071//422 3075//422 3074//422 +f 3068//423 3073//423 3072//423 +f 3070//424 3072//424 3075//424 +f 3069//425 3074//425 3073//425 +f 3082//421 3083//421 3080//421 +f 3079//422 3083//422 3082//422 +f 3076//423 3081//423 3080//423 +f 3078//424 3080//424 3083//424 +f 3077//425 3082//425 3081//425 +f 3087//422 3091//422 3090//422 +f 3084//423 3089//423 3088//423 +f 3086//424 3088//424 3091//424 +f 3085//425 3090//425 3089//425 +f 3095//422 3099//422 3098//422 +f 3092//423 3097//423 3096//423 +f 3094//424 3096//424 3099//424 +f 3093//425 3098//425 3097//425 +o V2_Erector +v 0.500000 2.750000 -1.875000 +v 0.500000 2.750000 -1.625000 +v 0.750000 2.750000 -1.625000 +v 0.750000 2.750000 -1.875000 +v -0.750000 2.750000 -1.875000 +v -0.750000 2.750000 -1.625000 +v -0.500000 2.750000 -1.625000 +v -0.500000 2.750000 -1.875000 +v 0.500000 7.750000 -1.875000 +v 0.500000 7.750000 -1.625000 +v 0.750000 7.750000 -1.625000 +v 0.750000 7.750000 -1.875000 +v -0.750000 7.750000 -1.875000 +v -0.750000 7.750000 -1.625000 +v -0.500000 7.750000 -1.625000 +v -0.500000 7.750000 -1.875000 +v 0.500000 4.250000 -0.125000 +v 0.500000 4.250000 0.125000 +v 0.750000 4.250000 0.125000 +v 0.750000 4.250000 -0.125000 +v -0.750000 4.250000 -0.125000 +v -0.750000 4.250000 0.125000 +v -0.500000 4.250000 0.125000 +v -0.500000 4.250000 -0.125000 +v 0.500000 7.750000 -0.125000 +v 0.500000 7.750000 0.125000 +v 0.750000 7.750000 0.125000 +v 0.750000 7.750000 -0.125000 +v -0.750000 7.750000 -0.125000 +v -0.750000 7.750000 0.125000 +v -0.500000 7.750000 0.125000 +v -0.500000 7.750000 -0.125000 +v 0.500000 7.250000 -0.125000 +v 0.750000 7.250000 -0.125000 +v -0.750000 7.250000 -0.125000 +v -0.500000 7.250000 -0.125000 +v 0.250000 7.250000 -0.375000 +v -0.250000 7.250000 -0.375000 +v 0.250000 7.250000 -0.625000 +v -0.250000 7.250000 -0.625000 +v 0.500000 7.000000 -0.125000 +v 0.750000 7.000000 -0.125000 +v -0.750000 7.000000 -0.125000 +v -0.500000 7.000000 -0.125000 +v 0.250000 7.000000 -0.375000 +v -0.250000 7.000000 -0.375000 +v 0.250000 7.000000 -0.625000 +v -0.250000 7.000000 -0.625000 +v 0.500000 5.000000 -0.125000 +v 0.750000 5.000000 -0.125000 +v -0.750000 5.000000 -0.125000 +v -0.500000 5.000000 -0.125000 +v 0.250000 5.000000 -0.375000 +v -0.250000 5.000000 -0.375000 +v 0.250000 5.000000 -0.625000 +v -0.250000 5.000000 -0.625000 +v 0.500000 4.750000 -0.125000 +v 0.750000 4.750000 -0.125000 +v -0.750000 4.750000 -0.125000 +v -0.500000 4.750000 -0.125000 +v 0.250000 4.750000 -0.375000 +v -0.250000 4.750000 -0.375000 +v 0.250000 4.750000 -0.625000 +v -0.250000 4.750000 -0.625000 +v 0.500000 7.625000 -0.125000 +v 0.750000 7.625000 -0.125000 +v 0.500000 7.375000 -0.125000 +v 0.750000 7.375000 -0.125000 +v 0.500000 7.625000 -1.625000 +v 0.750000 7.625000 -1.625000 +v 0.500000 7.375000 -1.625000 +v 0.750000 7.375000 -1.625000 +v -0.750000 7.625000 -0.125000 +v -0.500000 7.625000 -0.125000 +v -0.750000 7.375000 -0.125000 +v -0.500000 7.375000 -0.125000 +v -0.750000 7.625000 -1.625000 +v -0.500000 7.625000 -1.625000 +v -0.750000 7.375000 -1.625000 +v -0.500000 7.375000 -1.625000 +v 0.500000 4.625000 -0.125000 +v 0.750000 4.625000 -0.125000 +v 0.500000 4.375000 -0.125000 +v 0.750000 4.375000 -0.125000 +v 0.500000 4.625000 -1.625000 +v 0.750000 4.625000 -1.625000 +v 0.500000 4.375000 -1.625000 +v 0.750000 4.375000 -1.625000 +v -0.750000 4.625000 -0.125000 +v -0.500000 4.625000 -0.125000 +v -0.750000 4.375000 -0.125000 +v -0.500000 4.375000 -0.125000 +v -0.750000 4.625000 -1.625000 +v -0.500000 4.625000 -1.625000 +v -0.750000 4.375000 -1.625000 +v -0.500000 4.375000 -1.625000 +v 0.500000 6.125000 -0.125000 +v 0.750000 6.125000 -0.125000 +v 0.500000 5.875000 -0.125000 +v 0.750000 5.875000 -0.125000 +v 0.500000 6.125000 -1.625000 +v 0.750000 6.125000 -1.625000 +v 0.500000 5.875000 -1.625000 +v 0.750000 5.875000 -1.625000 +v -0.750000 6.125000 -0.125000 +v -0.500000 6.125000 -0.125000 +v -0.750000 5.875000 -0.125000 +v -0.500000 5.875000 -0.125000 +v -0.750000 6.125000 -1.625000 +v -0.500000 6.125000 -1.625000 +v -0.750000 5.875000 -1.625000 +v -0.500000 5.875000 -1.625000 +v 0.500000 7.375000 -1.750000 +v 0.500000 7.125000 -1.750000 +v -0.500000 7.375000 -1.750000 +v -0.500000 7.125000 -1.750000 +v -0.500000 6.375000 -1.750000 +v -0.500000 6.125000 -1.750000 +v 0.500000 6.375000 -1.750000 +v 0.500000 6.125000 -1.750000 +v 0.500000 5.875000 -1.750000 +v 0.500000 5.625000 -1.750000 +v -0.500000 5.875000 -1.750000 +v -0.500000 5.625000 -1.750000 +v -0.500000 4.875000 -1.750000 +v -0.500000 4.625000 -1.750000 +v 0.500000 4.875000 -1.750000 +v 0.500000 4.625000 -1.750000 +v 0.500000 4.375000 -1.750000 +v 0.500000 4.125000 -1.750000 +v -0.500000 4.375000 -1.750000 +v -0.500000 4.125000 -1.750000 +v -0.500000 3.375000 -1.750000 +v -0.500000 3.125000 -1.750000 +v 0.500000 3.375000 -1.750000 +v 0.500000 3.125000 -1.750000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.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 +s off +f 3130//426 3128//426 3129//426 +f 3126//426 3124//426 3125//426 +f 3120//427 3122//427 3121//427 +f 3116//427 3118//427 3117//427 +f 3100//427 3102//427 3101//427 +f 3104//427 3106//427 3105//427 +f 3110//426 3108//426 3109//426 +f 3114//426 3112//426 3113//426 +f 3107//428 3114//428 3106//428 +f 3105//429 3112//429 3104//429 +f 3103//428 3110//428 3102//428 +f 3101//429 3108//429 3100//429 +f 3104//430 3115//430 3107//430 +f 3106//431 3113//431 3105//431 +f 3100//430 3111//430 3103//430 +f 3102//431 3109//431 3101//431 +f 3123//428 3130//428 3122//428 +f 3121//429 3128//429 3120//429 +f 3119//428 3126//428 3118//428 +f 3117//429 3124//429 3116//429 +f 3120//430 3131//430 3123//430 +f 3122//431 3129//431 3121//431 +f 3116//430 3127//430 3119//430 +f 3118//431 3125//431 3117//431 +f 3139//426 3136//426 3138//426 +f 3133//426 3136//426 3132//426 +f 3135//426 3139//426 3134//426 +f 3137//431 3144//431 3136//431 +f 3139//432 3142//432 3134//432 +f 3136//433 3140//433 3132//433 +f 3138//430 3147//430 3139//430 +f 3135//434 3145//434 3137//434 +f 3133//435 3146//435 3138//435 +f 3141//427 3144//427 3146//427 +f 3147//427 3144//427 3145//427 +f 3143//427 3147//427 3145//427 +f 3155//426 3152//426 3154//426 +f 3149//426 3152//426 3148//426 +f 3151//426 3155//426 3150//426 +f 3153//431 3160//431 3152//431 +f 3155//432 3158//432 3150//432 +f 3152//433 3156//433 3148//433 +f 3154//430 3163//430 3155//430 +f 3151//434 3161//434 3153//434 +f 3149//435 3162//435 3154//435 +f 3157//427 3160//427 3162//427 +f 3163//427 3160//427 3161//427 +f 3159//427 3163//427 3161//427 +f 3171//428 3165//428 3167//428 +f 3170//427 3167//427 3166//427 +f 3168//429 3166//429 3164//429 +f 3165//426 3168//426 3164//426 +f 3179//428 3173//428 3175//428 +f 3178//427 3175//427 3174//427 +f 3176//429 3174//429 3172//429 +f 3173//426 3176//426 3172//426 +f 3187//428 3181//428 3183//428 +f 3186//427 3183//427 3182//427 +f 3184//429 3182//429 3180//429 +f 3181//426 3184//426 3180//426 +f 3195//428 3189//428 3191//428 +f 3194//427 3191//427 3190//427 +f 3192//429 3190//429 3188//429 +f 3189//426 3192//426 3188//426 +f 3203//428 3197//428 3199//428 +f 3202//427 3199//427 3198//427 +f 3200//429 3198//429 3196//429 +f 3197//426 3200//426 3196//426 +f 3211//428 3205//428 3207//428 +f 3210//427 3207//427 3206//427 +f 3208//429 3206//429 3204//429 +f 3205//426 3208//426 3204//426 +f 3213//430 3216//430 3212//430 +f 3215//430 3218//430 3219//430 +f 3221//430 3224//430 3220//430 +f 3223//430 3226//430 3227//430 +f 3229//430 3232//430 3228//430 +f 3231//430 3234//430 3235//430 +f 3130//426 3131//426 3128//426 +f 3126//426 3127//426 3124//426 +f 3120//427 3123//427 3122//427 +f 3116//427 3119//427 3118//427 +f 3100//427 3103//427 3102//427 +f 3104//427 3107//427 3106//427 +f 3110//426 3111//426 3108//426 +f 3114//426 3115//426 3112//426 +f 3107//428 3115//428 3114//428 +f 3105//429 3113//429 3112//429 +f 3103//428 3111//428 3110//428 +f 3101//429 3109//429 3108//429 +f 3104//430 3112//430 3115//430 +f 3106//431 3114//431 3113//431 +f 3100//430 3108//430 3111//430 +f 3102//431 3110//431 3109//431 +f 3123//428 3131//428 3130//428 +f 3121//429 3129//429 3128//429 +f 3119//428 3127//428 3126//428 +f 3117//429 3125//429 3124//429 +f 3120//430 3128//430 3131//430 +f 3122//431 3130//431 3129//431 +f 3116//430 3124//430 3127//430 +f 3118//431 3126//431 3125//431 +f 3139//426 3137//426 3136//426 +f 3133//426 3138//426 3136//426 +f 3135//426 3137//426 3139//426 +f 3137//431 3145//431 3144//431 +f 3139//432 3147//432 3142//432 +f 3136//433 3144//433 3140//433 +f 3138//430 3146//430 3147//430 +f 3135//434 3143//434 3145//434 +f 3133//435 3141//435 3146//435 +f 3141//427 3140//427 3144//427 +f 3147//427 3146//427 3144//427 +f 3143//427 3142//427 3147//427 +f 3155//426 3153//426 3152//426 +f 3149//426 3154//426 3152//426 +f 3151//426 3153//426 3155//426 +f 3153//431 3161//431 3160//431 +f 3155//432 3163//432 3158//432 +f 3152//433 3160//433 3156//433 +f 3154//430 3162//430 3163//430 +f 3151//434 3159//434 3161//434 +f 3149//435 3157//435 3162//435 +f 3157//427 3156//427 3160//427 +f 3163//427 3162//427 3160//427 +f 3159//427 3158//427 3163//427 +f 3171//428 3169//428 3165//428 +f 3170//427 3171//427 3167//427 +f 3168//429 3170//429 3166//429 +f 3165//426 3169//426 3168//426 +f 3179//428 3177//428 3173//428 +f 3178//427 3179//427 3175//427 +f 3176//429 3178//429 3174//429 +f 3173//426 3177//426 3176//426 +f 3187//428 3185//428 3181//428 +f 3186//427 3187//427 3183//427 +f 3184//429 3186//429 3182//429 +f 3181//426 3185//426 3184//426 +f 3195//428 3193//428 3189//428 +f 3194//427 3195//427 3191//427 +f 3192//429 3194//429 3190//429 +f 3189//426 3193//426 3192//426 +f 3203//428 3201//428 3197//428 +f 3202//427 3203//427 3199//427 +f 3200//429 3202//429 3198//429 +f 3197//426 3201//426 3200//426 +f 3211//428 3209//428 3205//428 +f 3210//427 3211//427 3207//427 +f 3208//429 3210//429 3206//429 +f 3205//426 3209//426 3208//426 +f 3213//430 3217//430 3216//430 +f 3215//430 3214//430 3218//430 +f 3221//430 3225//430 3224//430 +f 3223//430 3222//430 3226//430 +f 3229//430 3233//430 3232//430 +f 3231//430 3230//430 3234//430 +o Pad +v -4.500000 0.000000 4.500000 +v 4.500000 0.000000 4.500000 +v -4.500000 0.000000 -4.500000 +v 4.500000 0.000000 -4.500000 +v -4.500000 1.000000 4.500000 +v 4.500000 1.000000 4.500000 +v -4.500000 1.000000 -4.500000 +v 4.500000 1.000000 -4.500000 +v -4.500000 0.000000 0.500000 +v 4.500000 0.000000 0.500000 +v -4.500000 1.000000 0.500000 +v 4.500000 1.000000 0.500000 +v 4.500000 0.000000 -0.500000 +v -4.500000 0.000000 -0.500000 +v 4.500000 1.000000 -0.500000 +v -4.500000 1.000000 -0.500000 +v -4.500000 1.000000 0.500000 +v 4.500000 1.000000 0.500000 +v 4.500000 1.000000 -0.500000 +v -4.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 4.500000 0.750000 0.500000 +v 0.500000 0.750000 0.500000 +v 4.500000 1.000000 0.250000 +v 0.500000 1.000000 0.250000 +v 4.500000 1.000000 -0.250000 +v 0.500000 1.000000 -0.250000 +v 4.500000 0.750000 -0.500000 +v 0.500000 0.750000 -0.500000 +v 4.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 4.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -4.500000 1.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -4.500000 1.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -4.500000 0.750000 -0.500000 +v -0.500000 0.750000 -0.500000 +v -4.500000 1.000000 -0.250000 +v -0.500000 1.000000 -0.250000 +v -4.500000 1.000000 0.250000 +v -0.500000 1.000000 0.250000 +v -4.500000 0.750000 0.500000 +v -0.500000 0.750000 0.500000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.000000 0.500000 0.500000 +v 0.000000 0.500000 -0.500000 +vt 0.000000 0.473684 +vt 0.400000 0.526316 +vt 0.000000 0.526316 +vt 0.900000 0.526316 +vt 0.000000 0.473684 +vt 0.900000 0.473684 +vt 0.400000 1.000000 +vt 0.000000 1.000000 +vt 0.900000 0.473684 +vt -0.000000 0.526316 +vt -0.000000 0.473684 +vt 0.900000 0.473684 +vt -0.000000 0.526316 +vt -0.000000 0.473684 +vt 0.900000 0.526316 +vt 0.500000 0.473684 +vt 0.900000 0.473684 +vt 0.000000 0.000000 +vt 0.400000 0.473684 +vt 0.900000 0.526316 +vt -0.000000 0.473684 +vt 0.900000 0.473684 +vt 0.900000 0.526316 +vt 0.500000 0.473684 +vt 0.900000 0.473684 +vt 0.000000 0.473684 +vt 0.400000 0.526316 +vt 0.000000 0.526316 +vt 0.900000 1.000000 +vt 0.500000 0.526316 +vt 0.500000 0.000000 +vt 0.900000 0.000000 +vt 0.500000 0.736842 +vt 0.400000 0.526316 +vt 0.500000 0.526316 +vt 0.400000 1.000000 +vt 0.500000 0.789474 +vt 0.500000 1.000000 +vt 0.925000 0.539474 +vt 0.900000 0.750000 +vt 0.900000 0.539474 +vt 0.975000 0.539474 +vt 0.925000 0.750000 +vt 1.000000 0.539474 +vt 0.975000 0.750000 +vt 0.925000 0.776316 +vt 0.900000 0.776316 +vt 0.900000 0.763158 +vt 0.975000 0.776316 +vt 1.000000 0.763158 +vt 1.000000 0.776316 +vt 0.925000 0.750000 +vt 0.900000 0.763158 +vt 0.900000 0.750000 +vt 0.975000 0.750000 +vt 1.000000 0.750000 +vt 1.000000 0.763158 +vt 0.975000 0.539474 +vt 1.000000 0.526316 +vt 1.000000 0.539474 +vt 0.925000 0.539474 +vt 0.900000 0.539474 +vt 0.900000 0.526316 +vt 0.975000 0.986842 +vt 1.000000 0.986842 +vt 1.000000 1.000000 +vt 0.925000 0.986842 +vt 0.900000 1.000000 +vt 0.900000 0.986842 +vt 1.000000 0.776316 +vt 0.975000 0.986842 +vt 0.975000 0.776316 +vt 0.925000 0.986842 +vt 0.925000 0.776316 +vt 0.900000 0.986842 +vt 0.900000 0.776316 +vt 0.900000 0.473684 +vt 1.000000 0.500000 +vt 0.900000 0.500000 +vt 1.000000 0.526316 +vt 0.900000 0.526316 +vt 1.000000 0.473684 +vt 0.900000 0.421053 +vt 1.000000 0.421053 +vt 0.000000 0.526316 +vt 0.900000 0.526316 +vt 0.900000 0.526316 +vt 0.500000 0.526316 +vt 0.400000 0.000000 +vt -0.000000 0.526316 +vt 0.400000 0.473684 +vt 0.500000 1.000000 +vt 0.400000 0.736842 +vt 0.400000 0.789474 +vt 1.000000 0.750000 +vt 1.000000 0.986842 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 3237/1/436 3247/2/436 3241/3/436 +f 3246/4/437 3245/5/437 3244/6/437 +f 3241/3/438 3246/7/438 3240/8/438 +f 3238/9/437 3243/10/437 3239/11/437 +f 3237/12/439 3240/13/439 3236/14/439 +f 3240/15/440 3244/16/440 3236/17/440 +f 3236/18/441 3245/19/441 3237/1/441 +f 3250/20/439 3249/21/439 3248/22/439 +f 3243/23/436 3248/24/436 3239/25/436 +f 3238/26/440 3251/27/440 3242/28/440 +f 3242/29/438 3250/30/438 3243/23/438 +f 3239/25/441 3249/31/441 3238/32/441 +f 3257/33/438 3253/34/438 3254/35/438 +f 3252/36/438 3259/37/438 3255/38/438 +f 3263/39/442 3260/40/442 3261/41/442 +f 3265/42/441 3262/43/441 3263/39/441 +f 3267/44/443 3264/45/443 3265/42/443 +f 3282/46/440 3274/47/440 3280/48/440 +f 3276/49/440 3278/50/440 3272/51/440 +f 3260/52/436 3262/53/436 3268/54/436 +f 3266/55/436 3270/56/436 3264/57/436 +f 3267/58/440 3265/59/440 3271/60/440 +f 3261/61/440 3269/62/440 3263/63/440 +f 3277/64/436 3273/65/436 3279/66/436 +f 3283/67/436 3281/68/436 3275/69/436 +f 3276/70/443 3279/71/443 3278/72/443 +f 3278/72/441 3281/73/441 3280/74/441 +f 3280/74/442 3283/75/442 3282/76/442 +f 3285/77/444 3289/78/444 3288/79/444 +f 3288/79/445 3286/80/445 3284/81/445 +f 3287/82/441 3284/83/441 3286/84/441 +f 3237/1/436 3245/19/436 3247/2/436 +f 3246/4/437 3247/85/437 3245/5/437 +f 3241/3/438 3247/2/438 3246/7/438 +f 3238/9/437 3242/86/437 3243/10/437 +f 3237/12/439 3241/87/439 3240/13/439 +f 3240/15/440 3246/88/440 3244/16/440 +f 3236/18/441 3244/89/441 3245/19/441 +f 3250/20/439 3251/90/439 3249/21/439 +f 3243/23/436 3250/30/436 3248/24/436 +f 3238/26/440 3249/91/440 3251/27/440 +f 3242/29/438 3251/92/438 3250/30/438 +f 3239/25/441 3248/24/441 3249/31/441 +f 3257/33/438 3256/93/438 3253/34/438 +f 3252/36/438 3258/94/438 3259/37/438 +f 3263/39/442 3262/43/442 3260/40/442 +f 3265/42/441 3264/45/441 3262/43/441 +f 3267/44/443 3266/95/443 3264/45/443 +f 3276/70/443 3277/96/443 3279/71/443 +f 3278/72/441 3279/71/441 3281/73/441 +f 3280/74/442 3281/73/442 3283/75/442 +f 3285/77/444 3287/82/444 3289/78/444 +f 3288/79/445 3289/78/445 3286/80/445 +f 3287/82/441 3285/77/441 3284/83/441 +o Micro_Missile +v 0.324760 3.500000 -0.187500 +v 0.156250 3.500000 -0.270633 +v 0.270633 3.500000 -0.156250 +v 0.187500 3.500000 -0.324759 +v 0.000000 3.500000 -0.312500 +v -0.187500 3.500000 -0.324760 +v 0.000000 3.500000 -0.375000 +v -0.324760 3.500000 -0.187500 +v -0.156250 3.500000 -0.270633 +v -0.375000 3.500000 0.000000 +v -0.270633 3.500000 -0.156250 +v -0.324760 3.500000 0.187500 +v -0.312500 3.500000 0.000000 +v -0.187500 3.500000 0.324760 +v -0.270633 3.500000 0.156250 +v 0.000000 3.500000 0.375000 +v -0.156250 3.500000 0.270633 +v 0.156250 3.500000 0.270633 +v 0.000000 3.500000 0.312500 +v 0.187500 3.500000 0.324760 +v 0.270633 3.500000 0.156250 +v 0.375000 3.500000 0.000000 +v 0.324759 3.500000 0.187500 +v 0.312500 3.500000 0.000000 +v 0.312500 3.750000 0.000000 +v 0.324759 3.750000 0.187500 +v 0.270633 3.750000 0.156250 +v 0.270633 3.750000 -0.156250 +v 0.375000 3.750000 0.000000 +v 0.156250 3.750000 -0.270633 +v 0.324760 3.750000 -0.187500 +v 0.000000 3.750000 -0.312500 +v 0.187500 3.750000 -0.324759 +v -0.156250 3.750000 -0.270633 +v 0.000000 3.750000 -0.375000 +v -0.324760 3.750000 -0.187500 +v -0.187500 3.750000 -0.324760 +v -0.270633 3.750000 -0.156250 +v -0.375000 3.750000 0.000000 +v -0.270633 3.750000 0.156250 +v -0.312500 3.750000 0.000000 +v -0.156250 3.750000 0.270633 +v -0.324760 3.750000 0.187500 +v 0.000000 3.750000 0.375000 +v -0.187500 3.750000 0.324760 +v 0.156250 3.750000 0.270633 +v 0.000000 3.750000 0.312500 +v 0.187500 3.750000 0.324760 +v 0.312500 4.750000 0.000000 +v 0.324759 4.750000 0.187500 +v 0.270633 4.750000 0.156250 +v 0.270633 4.750000 -0.156250 +v 0.375000 4.750000 0.000000 +v 0.156250 4.750000 -0.270633 +v 0.324760 4.750000 -0.187500 +v 0.000000 4.750000 -0.312500 +v 0.187500 4.750000 -0.324759 +v -0.156250 4.750000 -0.270633 +v 0.000000 4.750000 -0.375000 +v -0.324760 4.750000 -0.187500 +v -0.187500 4.750000 -0.324760 +v -0.270633 4.750000 -0.156250 +v -0.375000 4.750000 0.000000 +v -0.270633 4.750000 0.156250 +v -0.312500 4.750000 0.000000 +v -0.156250 4.750000 0.270633 +v -0.324760 4.750000 0.187500 +v 0.000000 4.750000 0.375000 +v -0.187500 4.750000 0.324760 +v 0.156250 4.750000 0.270633 +v 0.000000 4.750000 0.312500 +v 0.187500 4.750000 0.324760 +v 0.312500 5.750000 0.000000 +v 0.324759 5.750000 0.187500 +v 0.270633 5.750000 0.156250 +v 0.270633 5.750000 -0.156250 +v 0.375000 5.750000 0.000000 +v 0.156250 5.750000 -0.270633 +v 0.324760 5.750000 -0.187500 +v 0.000000 5.750000 -0.312500 +v 0.187500 5.750000 -0.324759 +v -0.156250 5.750000 -0.270633 +v 0.000000 5.750000 -0.375000 +v -0.324760 5.750000 -0.187500 +v -0.187500 5.750000 -0.324760 +v -0.270633 5.750000 -0.156250 +v -0.375000 5.750000 0.000000 +v -0.270633 5.750000 0.156250 +v -0.312500 5.750000 0.000000 +v -0.156250 5.750000 0.270633 +v -0.324760 5.750000 0.187500 +v 0.000000 5.750000 0.375000 +v -0.187500 5.750000 0.324760 +v 0.156250 5.750000 0.270633 +v 0.000000 5.750000 0.312500 +v 0.187500 5.750000 0.324760 +v 0.375000 4.500000 0.000000 +v 0.270633 4.500000 0.156250 +v 0.324759 4.500000 0.187500 +v 0.324760 4.500000 -0.187500 +v 0.312500 4.500000 0.000000 +v 0.156250 4.500000 -0.270633 +v 0.270633 4.500000 -0.156250 +v 0.187500 4.500000 -0.324759 +v 0.000000 4.500000 -0.312500 +v -0.187500 4.500000 -0.324760 +v 0.000000 4.500000 -0.375000 +v -0.324760 4.500000 -0.187500 +v -0.156250 4.500000 -0.270633 +v -0.375000 4.500000 0.000000 +v -0.270633 4.500000 -0.156250 +v -0.324760 4.500000 0.187500 +v -0.312500 4.500000 0.000000 +v -0.187500 4.500000 0.324760 +v -0.270633 4.500000 0.156250 +v 0.000000 4.500000 0.375000 +v -0.156250 4.500000 0.270633 +v 0.156250 4.500000 0.270633 +v 0.000000 4.500000 0.312500 +v 0.187500 4.500000 0.324760 +v 0.375000 5.500000 0.000000 +v 0.270633 5.500000 0.156250 +v 0.324759 5.500000 0.187500 +v 0.324760 5.500000 -0.187500 +v 0.312500 5.500000 0.000000 +v 0.156250 5.500000 -0.270633 +v 0.270633 5.500000 -0.156250 +v 0.187500 5.500000 -0.324759 +v 0.000000 5.500000 -0.312500 +v -0.187500 5.500000 -0.324760 +v 0.000000 5.500000 -0.375000 +v -0.324760 5.500000 -0.187500 +v -0.156250 5.500000 -0.270633 +v -0.375000 5.500000 0.000000 +v -0.270633 5.500000 -0.156250 +v -0.324760 5.500000 0.187500 +v -0.312500 5.500000 0.000000 +v -0.187500 5.500000 0.324760 +v -0.270633 5.500000 0.156250 +v 0.000000 5.500000 0.375000 +v -0.156250 5.500000 0.270633 +v 0.156250 5.500000 0.270633 +v 0.000000 5.500000 0.312500 +v 0.187500 5.500000 0.324760 +v -0.530330 2.031250 -0.530330 +v -0.154680 2.031250 -0.198874 +v -0.198874 2.031250 -0.154680 +v -0.154680 3.531250 -0.198874 +v -0.530330 3.031250 -0.530330 +v -0.198874 3.531250 -0.154680 +v 0.530330 3.031250 0.530330 +v 0.154680 2.031250 0.198874 +v 0.530330 2.031250 0.530330 +v 0.198874 2.031250 0.154680 +v 0.154680 3.531250 0.198874 +v 0.198874 3.531250 0.154680 +v -0.530330 2.031250 0.530330 +v -0.198874 2.031250 0.154680 +v -0.154680 2.031250 0.198874 +v -0.198874 3.531250 0.154680 +v -0.530330 3.031250 0.530330 +v -0.154680 3.531250 0.198874 +v 0.530330 3.031250 -0.530330 +v 0.198874 2.031250 -0.154680 +v 0.530330 2.031250 -0.530330 +v 0.154680 2.031250 -0.198874 +v 0.198874 3.531250 -0.154680 +v 0.154680 3.531250 -0.198874 +v 0.000000 2.000000 0.250000 +v 0.187500 2.000000 0.324760 +v 0.000000 2.000000 0.375000 +v 0.125000 2.000000 0.216506 +v 0.324759 2.000000 0.187500 +v 0.216506 2.000000 0.125000 +v 0.375000 2.000000 0.000000 +v 0.250000 2.000000 0.000000 +v 0.324760 2.000000 -0.187500 +v 0.125000 2.000000 -0.216506 +v 0.187500 2.000000 -0.324759 +v 0.000000 2.000000 -0.375000 +v 0.000000 2.000000 -0.250000 +v -0.187500 2.000000 -0.324760 +v -0.125000 2.000000 -0.216506 +v -0.324760 2.000000 -0.187500 +v -0.216506 2.000000 -0.125000 +v -0.375000 2.000000 0.000000 +v -0.250000 2.000000 0.000000 +v -0.324760 2.000000 0.187500 +v -0.216506 2.000000 0.125000 +v -0.187500 2.000000 0.324760 +v -0.125000 2.000000 0.216506 +v 0.216506 2.000000 -0.125000 +v 0.324760 6.500000 -0.187500 +v 0.000000 6.500000 -0.375000 +v 0.187500 6.500000 0.324760 +v -0.324760 6.500000 0.187500 +v 0.187500 6.500000 -0.324759 +v -0.187500 6.500000 -0.324760 +v 0.324759 6.500000 0.187500 +v -0.187500 6.500000 0.324760 +v -0.324760 6.500000 -0.187500 +v 0.375000 6.500000 0.000000 +v 0.000000 6.500000 0.375000 +v -0.375000 6.500000 0.000000 +v -0.164063 6.750000 0.284165 +v -0.284165 6.750000 -0.164062 +v 0.284165 6.750000 -0.164062 +v 0.328125 6.750000 0.000000 +v 0.000000 6.750000 0.328125 +v -0.284165 6.750000 0.164063 +v -0.328125 6.750000 0.000000 +v 0.000000 6.750000 -0.328125 +v 0.284165 6.750000 0.164063 +v 0.164062 6.750000 0.284165 +v 0.164063 6.750000 -0.284164 +v -0.164062 6.750000 -0.284165 +v 0.000000 7.000000 0.000000 +v 0.000000 2.500000 0.000000 +v 0.385000 4.937500 0.000000 +v 0.334759 5.312500 0.187500 +v 0.334759 4.937500 0.187500 +v 0.334760 4.937500 -0.187500 +v 0.385000 5.312500 0.000000 +v -0.385000 4.937500 0.000000 +v -0.334760 5.312500 -0.187500 +v -0.334760 4.937500 -0.187500 +v -0.334760 4.937500 0.187500 +v -0.385000 5.312500 0.000000 +v 0.334760 5.312500 -0.187500 +v -0.334760 5.312500 0.187500 +vt 0.576923 0.354167 +vt 0.634615 0.364583 +vt 0.576923 0.364583 +vt 0.634615 0.354167 +vt 0.692308 0.364583 +vt 0.057692 0.354167 +vt 0.000000 0.364583 +vt 0.000000 0.354167 +vt 0.115385 0.354167 +vt 0.057692 0.364583 +vt 0.173077 0.354167 +vt 0.115385 0.364583 +vt 0.230769 0.354167 +vt 0.173077 0.364583 +vt 0.288462 0.354167 +vt 0.230769 0.364583 +vt 0.346154 0.354167 +vt 0.288462 0.364583 +vt 0.403846 0.364583 +vt 0.346154 0.364583 +vt 0.403846 0.354167 +vt 0.461538 0.364583 +vt 0.519231 0.354167 +vt 0.461538 0.354167 +vt 0.519231 0.364583 +vt 0.519231 0.406250 +vt 0.461538 0.416667 +vt 0.461538 0.406250 +vt 0.576923 0.406250 +vt 0.519231 0.416667 +vt 0.634615 0.406250 +vt 0.576923 0.416667 +vt 0.692308 0.406250 +vt 0.634615 0.416667 +vt 0.057692 0.406250 +vt 0.000000 0.416667 +vt 0.000000 0.406250 +vt 0.115385 0.416667 +vt 0.057692 0.416667 +vt 0.115385 0.406250 +vt 0.173077 0.416667 +vt 0.230769 0.406250 +vt 0.173077 0.406250 +vt 0.288462 0.406250 +vt 0.230769 0.416667 +vt 0.346154 0.416667 +vt 0.288462 0.416667 +vt 0.403846 0.406250 +vt 0.346154 0.406250 +vt 0.403846 0.416667 +vt 0.519231 0.593750 +vt 0.461538 0.604167 +vt 0.461538 0.593750 +vt 0.576923 0.593750 +vt 0.519231 0.604167 +vt 0.634615 0.593750 +vt 0.576923 0.604167 +vt 0.692308 0.593750 +vt 0.634615 0.604167 +vt 0.057692 0.593750 +vt 0.000000 0.604167 +vt 0.000000 0.593750 +vt 0.115385 0.604167 +vt 0.057692 0.604167 +vt 0.115385 0.593750 +vt 0.173077 0.604167 +vt 0.230769 0.593750 +vt 0.173077 0.593750 +vt 0.288462 0.593750 +vt 0.230769 0.604167 +vt 0.346154 0.604167 +vt 0.288462 0.604167 +vt 0.403846 0.593750 +vt 0.346154 0.593750 +vt 0.403846 0.604167 +vt 0.519231 0.781250 +vt 0.461538 0.791667 +vt 0.461538 0.781250 +vt 0.576923 0.781250 +vt 0.519231 0.791667 +vt 0.634615 0.781250 +vt 0.576923 0.791667 +vt 0.692308 0.781250 +vt 0.634615 0.791667 +vt 0.057692 0.781250 +vt 0.000000 0.791667 +vt 0.000000 0.781250 +vt 0.115385 0.791667 +vt 0.057692 0.791667 +vt 0.115385 0.781250 +vt 0.173077 0.791667 +vt 0.230769 0.781250 +vt 0.173077 0.781250 +vt 0.288462 0.781250 +vt 0.230769 0.791667 +vt 0.346154 0.791667 +vt 0.288462 0.791667 +vt 0.403846 0.781250 +vt 0.346154 0.781250 +vt 0.403846 0.791667 +vt 0.519231 0.541667 +vt 0.461538 0.552083 +vt 0.461538 0.541667 +vt 0.576923 0.541667 +vt 0.519231 0.552083 +vt 0.634615 0.552083 +vt 0.576923 0.552083 +vt 0.634615 0.541667 +vt 0.692308 0.552083 +vt 0.057692 0.541667 +vt 0.000000 0.552083 +vt 0.000000 0.541667 +vt 0.115385 0.541667 +vt 0.057692 0.552083 +vt 0.173077 0.541667 +vt 0.115385 0.552083 +vt 0.230769 0.541667 +vt 0.173077 0.552083 +vt 0.288462 0.541667 +vt 0.230769 0.552083 +vt 0.346154 0.541667 +vt 0.288462 0.552083 +vt 0.403846 0.552083 +vt 0.346154 0.552083 +vt 0.403846 0.541667 +vt 0.519231 0.729167 +vt 0.461538 0.739583 +vt 0.461538 0.729167 +vt 0.576923 0.729167 +vt 0.519231 0.739583 +vt 0.634615 0.739583 +vt 0.576923 0.739583 +vt 0.634615 0.729167 +vt 0.692308 0.739583 +vt 0.057692 0.729167 +vt 0.000000 0.739583 +vt 0.000000 0.729167 +vt 0.115385 0.729167 +vt 0.057692 0.739583 +vt 0.173077 0.729167 +vt 0.115385 0.739583 +vt 0.230769 0.729167 +vt 0.173077 0.739583 +vt 0.288462 0.729167 +vt 0.230769 0.739583 +vt 0.346154 0.729167 +vt 0.288462 0.739583 +vt 0.403846 0.739583 +vt 0.346154 0.739583 +vt 0.403846 0.729167 +vt 0.846154 0.000000 +vt 0.692308 0.010417 +vt 0.692308 0.000000 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.692308 0.010417 +vt 0.846154 0.177083 +vt 0.846154 0.010417 +vt 0.846154 0.177083 +vt 0.692308 0.010417 +vt 0.846154 0.010417 +vt 0.692308 0.010417 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.846154 0.000000 +vt 0.692308 0.000000 +vt 0.846154 0.000000 +vt 0.692308 0.010417 +vt 0.692308 0.000000 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.692308 0.010417 +vt 0.846154 0.177083 +vt 0.846154 0.010417 +vt 0.846154 0.177083 +vt 0.692308 0.010417 +vt 0.846154 0.010417 +vt 0.692308 0.010417 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.846154 0.000000 +vt 0.692308 0.000000 +vt 0.346154 0.083333 +vt 0.403846 0.104167 +vt 0.346154 0.104167 +vt 0.403846 0.083333 +vt 0.461538 0.104167 +vt 0.461538 0.083333 +vt 0.519231 0.104167 +vt 0.519231 0.083333 +vt 0.576923 0.104167 +vt 0.615385 0.083333 +vt 0.634615 0.104167 +vt 0.634615 0.083333 +vt 0.692308 0.104167 +vt 0.000000 0.083333 +vt 0.057692 0.104167 +vt 0.000000 0.104167 +vt 0.057692 0.083333 +vt 0.115385 0.104167 +vt 0.115385 0.083333 +vt 0.173077 0.104167 +vt 0.173077 0.083333 +vt 0.230769 0.104167 +vt 0.230769 0.083333 +vt 0.288462 0.104167 +vt 0.288462 0.083333 +vt 0.692308 0.354167 +vt 0.692308 0.416667 +vt 0.692308 0.604167 +vt 0.692308 0.791667 +vt 0.692308 0.541667 +vt 0.692308 0.729167 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.384615 0.083333 +vt 0.442308 0.083333 +vt 0.500000 0.083333 +vt 0.557692 0.083333 +vt 0.576923 0.083333 +vt 0.673077 0.083333 +vt 0.038462 0.083333 +vt 0.096154 0.083333 +vt 0.153846 0.083333 +vt 0.211538 0.083333 +vt 0.269231 0.083333 +vt 0.326923 0.083333 +vt 0.576923 0.916667 +vt 0.000000 0.916667 +vt 0.403846 0.916667 +vt 0.230769 0.916667 +vt 0.634615 0.916667 +vt 0.057692 0.916667 +vt 0.461538 0.916667 +vt 0.288462 0.916667 +vt 0.115385 0.916667 +vt 0.519231 0.916667 +vt 0.346154 0.916667 +vt 0.173077 0.916667 +vt 0.288462 0.958333 +vt 0.115385 0.958333 +vt 0.557692 0.958333 +vt 0.519231 0.958333 +vt 0.346154 0.958333 +vt 0.211538 0.958333 +vt 0.173077 0.958333 +vt 0.576923 0.958333 +vt 0.000000 0.958333 +vt 0.442308 0.958333 +vt 0.403846 0.958333 +vt 0.230769 0.958333 +vt 0.692308 0.916667 +vt 0.634615 0.958333 +vt 0.057692 0.958333 +vt 0.461538 0.958333 +vt 0.038462 0.958333 +vt 0.019231 1.000000 +vt 0.096154 0.958333 +vt 0.076923 1.000000 +vt 0.153846 0.958333 +vt 0.134615 1.000000 +vt 0.192308 1.000000 +vt 0.269231 0.958333 +vt 0.250000 1.000000 +vt 0.326923 0.958333 +vt 0.307692 1.000000 +vt 0.384615 0.958333 +vt 0.365385 1.000000 +vt 0.423077 1.000000 +vt 0.500000 0.958333 +vt 0.480769 1.000000 +vt 0.538462 1.000000 +vt 0.615385 0.958333 +vt 0.596154 1.000000 +vt 0.673077 0.958333 +vt 0.653846 1.000000 +vt 0.019231 0.000000 +vt 0.653846 0.000000 +vt 0.596154 0.000000 +vt 0.538462 0.000000 +vt 0.480769 0.000000 +vt 0.423077 0.000000 +vt 0.365385 0.000000 +vt 0.307692 0.000000 +vt 0.250000 0.000000 +vt 0.192308 0.000000 +vt 0.134615 0.000000 +vt 0.076923 0.000000 +vt 0.846154 0.270833 +vt 0.692308 0.437500 +vt 0.692308 0.270833 +vt 1.000000 0.270833 +vt 0.846154 0.437500 +vt 0.846154 0.270833 +vt 0.692308 0.437500 +vt 0.692308 0.270833 +vt 1.000000 0.270833 +vt 0.846154 0.437500 +vt 1.000000 0.437500 +vt 1.000000 0.437500 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.5000 0.7071 -0.5000 +vn -0.7498 -0.0000 0.6616 +vn 0.6616 0.0000 -0.7498 +vn -0.6616 -0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.6616 -0.0000 0.7498 +vn -0.7498 0.0000 -0.6616 +vn 0.7498 0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn 0.5000 0.7071 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 -0.0000 0.8660 +vn 0.0000 -0.0000 1.0000 +vn -0.8660 -0.0000 0.5000 +vn -1.0000 -0.0000 0.0000 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.0000 0.0000 -1.0000 +vn 0.8660 -0.0000 0.5000 +vn -0.5000 -0.0000 0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.8624 0.0912 -0.4979 +vn 0.0000 0.0912 -0.9958 +vn 0.4979 0.0912 0.8624 +vn -0.8624 0.0912 0.4979 +vn 0.4979 0.0912 -0.8624 +vn -0.4979 0.0912 -0.8624 +vn 0.8624 0.0912 0.4979 +vn -0.4979 0.0912 0.8624 +vn -0.8624 0.0912 -0.4979 +vn 0.9958 0.0912 0.0000 +vn 0.0000 0.0912 0.9958 +vn -0.9958 0.0912 -0.0000 +vn -0.4330 0.5000 0.7500 +vn -0.7500 0.5000 -0.4330 +vn 0.7500 0.5000 -0.4330 +vn 0.8660 0.5000 0.0000 +vn 0.0000 0.5000 0.8660 +vn -0.7500 0.5000 0.4330 +vn -0.8660 0.5000 -0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.7500 0.5000 0.4330 +vn 0.4330 0.5000 0.7500 +vn 0.4330 0.5000 -0.7500 +vn -0.4330 0.5000 -0.7500 +vn 0.4472 -0.4472 0.7746 +vn 0.0000 -0.4472 0.8944 +vn -0.4472 -0.4472 0.7746 +vn -0.7746 -0.4472 0.4472 +vn -0.8944 -0.4472 0.0000 +vn -0.7746 -0.4472 -0.4472 +vn -0.4472 -0.4472 -0.7746 +vn 0.0000 -0.4472 -0.8944 +vn 0.4472 -0.4472 -0.7746 +vn 0.7746 -0.4472 -0.4472 +vn 0.8944 -0.4472 0.0000 +vn 0.7746 -0.4472 0.4472 +vn 0.9659 -0.0000 0.2588 +vn 0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 0.2588 +s off +f 3290/97/446 3291/98/446 3292/99/446 +f 3293/100/446 3294/101/446 3291/98/446 +f 3295/102/446 3294/103/446 3296/104/446 +f 3297/105/446 3298/106/446 3295/102/446 +f 3299/107/446 3300/108/446 3297/105/446 +f 3301/109/446 3302/110/446 3299/107/446 +f 3303/111/446 3304/112/446 3301/109/446 +f 3305/113/446 3306/114/446 3303/111/446 +f 3305/113/446 3307/115/446 3308/116/446 +f 3309/117/446 3310/118/446 3307/115/446 +f 3311/119/446 3310/118/446 3312/120/446 +f 3290/97/446 3313/121/446 3311/119/446 +f 3314/122/447 3315/123/447 3316/124/447 +f 3317/125/447 3318/126/447 3314/122/447 +f 3319/127/447 3320/128/447 3317/125/447 +f 3321/129/447 3322/130/447 3319/127/447 +f 3323/131/447 3324/132/447 3321/133/447 +f 3323/131/447 3325/134/447 3326/135/447 +f 3327/136/447 3328/137/447 3325/134/447 +f 3329/138/447 3328/137/447 3330/139/447 +f 3331/140/447 3332/141/447 3329/138/447 +f 3331/140/447 3333/142/447 3334/143/447 +f 3335/144/447 3333/142/447 3336/145/447 +f 3316/124/447 3337/146/447 3335/144/447 +f 3338/147/447 3339/148/447 3340/149/447 +f 3341/150/447 3342/151/447 3338/147/447 +f 3343/152/447 3344/153/447 3341/150/447 +f 3345/154/447 3346/155/447 3343/152/447 +f 3347/156/447 3348/157/447 3345/158/447 +f 3347/156/447 3349/159/447 3350/160/447 +f 3351/161/447 3352/162/447 3349/159/447 +f 3353/163/447 3352/162/447 3354/164/447 +f 3355/165/447 3356/166/447 3353/163/447 +f 3355/165/447 3357/167/447 3358/168/447 +f 3359/169/447 3357/167/447 3360/170/447 +f 3340/149/447 3361/171/447 3359/169/447 +f 3362/172/447 3363/173/447 3364/174/447 +f 3365/175/447 3366/176/447 3362/172/447 +f 3367/177/447 3368/178/447 3365/175/447 +f 3369/179/447 3370/180/447 3367/177/447 +f 3371/181/447 3372/182/447 3369/183/447 +f 3371/181/447 3373/184/447 3374/185/447 +f 3375/186/447 3376/187/447 3373/184/447 +f 3377/188/447 3376/187/447 3378/189/447 +f 3379/190/447 3380/191/447 3377/188/447 +f 3379/190/447 3381/192/447 3382/193/447 +f 3383/194/447 3381/192/447 3384/195/447 +f 3364/174/447 3385/196/447 3383/194/447 +f 3386/197/446 3387/198/446 3388/199/446 +f 3389/200/446 3390/201/446 3386/197/446 +f 3389/200/446 3391/202/446 3392/203/446 +f 3393/204/446 3394/205/446 3391/202/446 +f 3395/206/446 3394/207/446 3396/208/446 +f 3397/209/446 3398/210/446 3395/206/446 +f 3399/211/446 3400/212/446 3397/209/446 +f 3401/213/446 3402/214/446 3399/211/446 +f 3403/215/446 3404/216/446 3401/213/446 +f 3405/217/446 3406/218/446 3403/215/446 +f 3405/217/446 3407/219/446 3408/220/446 +f 3409/221/446 3387/198/446 3407/219/446 +f 3410/222/446 3411/223/446 3412/224/446 +f 3413/225/446 3414/226/446 3410/222/446 +f 3413/225/446 3415/227/446 3416/228/446 +f 3417/229/446 3418/230/446 3415/227/446 +f 3419/231/446 3418/232/446 3420/233/446 +f 3421/234/446 3422/235/446 3419/231/446 +f 3423/236/446 3424/237/446 3421/234/446 +f 3425/238/446 3426/239/446 3423/236/446 +f 3427/240/446 3428/241/446 3425/238/446 +f 3429/242/446 3430/243/446 3427/240/446 +f 3429/242/446 3431/244/446 3432/245/446 +f 3433/246/446 3411/223/446 3431/244/446 +f 3434/247/447 3435/248/447 3436/249/447 +f 3437/250/448 3438/251/448 3439/252/448 +f 3436/253/449 3438/254/449 3434/255/449 +f 3438/254/450 3435/248/450 3434/255/450 +f 3440/256/451 3441/257/451 3442/258/451 +f 3443/259/452 3440/256/452 3442/258/452 +f 3444/260/453 3440/261/453 3445/262/453 +f 3442/263/447 3441/257/447 3443/264/447 +f 3446/265/447 3447/266/447 3448/267/447 +f 3449/268/454 3450/269/454 3451/270/454 +f 3448/271/455 3450/272/455 3446/273/455 +f 3450/272/456 3447/266/456 3446/273/456 +f 3452/274/457 3453/275/457 3454/276/457 +f 3455/277/458 3452/274/458 3454/276/458 +f 3456/278/459 3452/279/459 3457/280/459 +f 3454/281/447 3453/275/447 3455/282/447 +f 3458/283/447 3459/284/447 3460/285/447 +f 3461/286/447 3462/287/447 3459/284/447 +f 3463/288/447 3464/289/447 3462/287/447 +f 3465/290/447 3466/291/447 3464/289/447 +f 3466/291/447 3467/292/447 3468/293/447 +f 3467/294/447 3469/295/447 3468/293/447 +f 3470/296/447 3471/297/447 3469/298/447 +f 3472/299/447 3473/300/447 3471/297/447 +f 3474/301/447 3475/302/447 3473/300/447 +f 3476/303/447 3477/304/447 3475/302/447 +f 3478/305/447 3479/306/447 3477/304/447 +f 3480/307/447 3460/285/447 3479/306/447 +f 3290/97/446 3293/100/446 3291/98/446 +f 3293/100/446 3296/308/446 3294/101/446 +f 3295/102/446 3298/106/446 3294/103/446 +f 3297/105/446 3300/108/446 3298/106/446 +f 3299/107/446 3302/110/446 3300/108/446 +f 3301/109/446 3304/112/446 3302/110/446 +f 3303/111/446 3306/114/446 3304/112/446 +f 3305/113/446 3308/116/446 3306/114/446 +f 3305/113/446 3309/117/446 3307/115/446 +f 3309/117/446 3312/120/446 3310/118/446 +f 3311/119/446 3313/121/446 3310/118/446 +f 3290/97/446 3292/99/446 3313/121/446 +f 3314/122/447 3318/126/447 3315/123/447 +f 3317/125/447 3320/128/447 3318/126/447 +f 3319/127/447 3322/130/447 3320/128/447 +f 3321/129/447 3324/309/447 3322/130/447 +f 3323/131/447 3326/135/447 3324/132/447 +f 3323/131/447 3327/136/447 3325/134/447 +f 3327/136/447 3330/139/447 3328/137/447 +f 3329/138/447 3332/141/447 3328/137/447 +f 3331/140/447 3334/143/447 3332/141/447 +f 3331/140/447 3336/145/447 3333/142/447 +f 3335/144/447 3337/146/447 3333/142/447 +f 3316/124/447 3315/123/447 3337/146/447 +f 3338/147/447 3342/151/447 3339/148/447 +f 3341/150/447 3344/153/447 3342/151/447 +f 3343/152/447 3346/155/447 3344/153/447 +f 3345/154/447 3348/310/447 3346/155/447 +f 3347/156/447 3350/160/447 3348/157/447 +f 3347/156/447 3351/161/447 3349/159/447 +f 3351/161/447 3354/164/447 3352/162/447 +f 3353/163/447 3356/166/447 3352/162/447 +f 3355/165/447 3358/168/447 3356/166/447 +f 3355/165/447 3360/170/447 3357/167/447 +f 3359/169/447 3361/171/447 3357/167/447 +f 3340/149/447 3339/148/447 3361/171/447 +f 3362/172/447 3366/176/447 3363/173/447 +f 3365/175/447 3368/178/447 3366/176/447 +f 3367/177/447 3370/180/447 3368/178/447 +f 3369/179/447 3372/311/447 3370/180/447 +f 3371/181/447 3374/185/447 3372/182/447 +f 3371/181/447 3375/186/447 3373/184/447 +f 3375/186/447 3378/189/447 3376/187/447 +f 3377/188/447 3380/191/447 3376/187/447 +f 3379/190/447 3382/193/447 3380/191/447 +f 3379/190/447 3384/195/447 3381/192/447 +f 3383/194/447 3385/196/447 3381/192/447 +f 3364/174/447 3363/173/447 3385/196/447 +f 3386/197/446 3390/201/446 3387/198/446 +f 3389/200/446 3392/203/446 3390/201/446 +f 3389/200/446 3393/204/446 3391/202/446 +f 3393/204/446 3396/312/446 3394/205/446 +f 3395/206/446 3398/210/446 3394/207/446 +f 3397/209/446 3400/212/446 3398/210/446 +f 3399/211/446 3402/214/446 3400/212/446 +f 3401/213/446 3404/216/446 3402/214/446 +f 3403/215/446 3406/218/446 3404/216/446 +f 3405/217/446 3408/220/446 3406/218/446 +f 3405/217/446 3409/221/446 3407/219/446 +f 3409/221/446 3388/199/446 3387/198/446 +f 3410/222/446 3414/226/446 3411/223/446 +f 3413/225/446 3416/228/446 3414/226/446 +f 3413/225/446 3417/229/446 3415/227/446 +f 3417/229/446 3420/313/446 3418/230/446 +f 3419/231/446 3422/235/446 3418/232/446 +f 3421/234/446 3424/237/446 3422/235/446 +f 3423/236/446 3426/239/446 3424/237/446 +f 3425/238/446 3428/241/446 3426/239/446 +f 3427/240/446 3430/243/446 3428/241/446 +f 3429/242/446 3432/245/446 3430/243/446 +f 3429/242/446 3433/246/446 3431/244/446 +f 3433/246/446 3412/224/446 3411/223/446 +f 3436/253/449 3439/314/449 3438/254/449 +f 3438/254/450 3437/250/450 3435/248/450 +f 3440/256/451 3444/260/451 3441/257/451 +f 3443/259/452 3445/315/452 3440/256/452 +f 3448/271/455 3451/316/455 3450/272/455 +f 3450/272/456 3449/268/456 3447/266/456 +f 3452/274/457 3456/278/457 3453/275/457 +f 3455/277/458 3457/317/458 3452/274/458 +f 3458/283/447 3461/318/447 3459/284/447 +f 3461/286/447 3463/319/447 3462/287/447 +f 3463/288/447 3465/320/447 3464/289/447 +f 3465/290/447 3481/321/447 3466/291/447 +f 3466/291/447 3481/322/447 3467/292/447 +f 3467/294/447 3470/323/447 3469/295/447 +f 3470/296/447 3472/324/447 3471/297/447 +f 3472/299/447 3474/325/447 3473/300/447 +f 3474/301/447 3476/326/447 3475/302/447 +f 3476/303/447 3478/327/447 3477/304/447 +f 3478/305/447 3480/328/447 3479/306/447 +f 3480/307/447 3458/329/447 3460/285/447 +s 1 +f 3466/291/460 3311/119/461 3464/289/461 +f 3459/284/462 3305/113/463 3460/285/463 +f 3477/304/464 3299/107/465 3475/302/465 +f 3468/293/466 3290/97/460 3466/291/460 +f 3471/297/467 3296/104/468 3469/298/468 +f 3462/287/469 3309/117/462 3459/284/462 +f 3479/306/470 3301/109/464 3477/304/464 +f 3469/295/468 3293/100/466 3468/293/466 +f 3473/300/471 3295/102/467 3471/297/467 +f 3464/289/461 3312/120/469 3462/287/469 +f 3460/285/463 3303/111/470 3479/306/470 +f 3475/302/465 3297/105/471 3473/300/471 +f 3310/118/469 3335/144/462 3307/115/462 +f 3306/114/470 3329/138/464 3304/112/464 +f 3294/101/468 3319/127/466 3291/98/466 +f 3300/108/471 3323/131/467 3298/106/467 +f 3313/121/461 3316/124/469 3310/118/469 +f 3308/116/463 3331/140/470 3306/114/470 +f 3302/110/465 3327/136/471 3300/108/471 +f 3292/99/460 3314/122/461 3313/121/461 +f 3307/115/462 3336/145/463 3308/116/463 +f 3304/112/464 3330/139/465 3302/110/465 +f 3291/98/466 3317/125/460 3292/99/460 +f 3298/106/467 3321/133/468 3294/103/468 +f 3322/130/466 3389/200/460 3320/128/460 +f 3326/135/467 3396/208/468 3324/132/468 +f 3315/123/469 3409/221/462 3337/146/462 +f 3334/143/470 3401/213/464 3332/141/464 +f 3324/309/468 3393/204/466 3322/130/466 +f 3325/134/471 3395/206/467 3326/135/467 +f 3318/126/461 3388/199/469 3315/123/469 +f 3333/142/463 3403/215/470 3334/143/470 +f 3328/137/465 3397/209/471 3325/134/471 +f 3320/128/460 3386/197/461 3318/126/461 +f 3337/146/462 3405/217/463 3333/142/463 +f 3332/141/464 3399/211/465 3328/137/465 +f 3387/198/469 3359/169/462 3407/219/462 +f 3406/218/470 3353/163/464 3404/216/464 +f 3394/205/468 3343/152/466 3391/202/466 +f 3400/212/471 3347/156/467 3398/210/467 +f 3390/201/461 3340/149/469 3387/198/469 +f 3408/220/463 3355/165/470 3406/218/470 +f 3402/214/465 3351/161/471 3400/212/471 +f 3392/203/460 3338/147/461 3390/201/461 +f 3407/219/462 3360/170/463 3408/220/463 +f 3404/216/464 3354/164/465 3402/214/465 +f 3391/202/466 3341/150/460 3392/203/460 +f 3398/210/467 3345/158/468 3394/207/468 +f 3346/155/466 3413/225/460 3344/153/460 +f 3350/160/467 3420/233/468 3348/157/468 +f 3339/148/469 3433/246/462 3361/171/462 +f 3358/168/470 3425/238/464 3356/166/464 +f 3348/310/468 3417/229/466 3346/155/466 +f 3349/159/471 3419/231/467 3350/160/467 +f 3342/151/461 3412/224/469 3339/148/469 +f 3357/167/463 3427/240/470 3358/168/470 +f 3352/162/465 3421/234/471 3349/159/471 +f 3344/153/460 3410/222/461 3342/151/461 +f 3361/171/462 3429/242/463 3357/167/463 +f 3356/166/464 3423/236/465 3352/162/465 +f 3411/223/469 3383/194/462 3431/244/462 +f 3430/243/470 3377/188/464 3428/241/464 +f 3418/230/468 3367/177/466 3415/227/466 +f 3424/237/471 3371/181/467 3422/235/467 +f 3414/226/461 3364/174/469 3411/223/469 +f 3432/245/463 3379/190/470 3430/243/470 +f 3426/239/465 3375/186/471 3424/237/471 +f 3416/228/460 3362/172/461 3414/226/461 +f 3431/244/462 3384/195/463 3432/245/463 +f 3428/241/464 3378/189/465 3426/239/465 +f 3415/227/466 3365/175/460 3416/228/460 +f 3422/235/467 3369/183/468 3418/232/468 +f 3370/180/466 3482/330/472 3368/178/460 +f 3374/185/467 3483/331/473 3372/182/468 +f 3363/173/469 3484/332/474 3385/196/462 +f 3382/193/470 3485/333/475 3380/191/464 +f 3372/311/468 3486/334/476 3370/180/466 +f 3373/184/471 3487/335/477 3374/185/467 +f 3366/176/461 3488/336/478 3363/173/469 +f 3381/192/463 3489/337/479 3382/193/470 +f 3376/187/465 3490/338/480 3373/184/471 +f 3368/178/460 3491/339/481 3366/176/461 +f 3385/196/462 3492/340/482 3381/192/463 +f 3380/191/464 3493/341/483 3376/187/465 +f 3492/340/482 3494/342/484 3489/337/479 +f 3493/341/483 3495/343/485 3490/338/480 +f 3491/339/481 3496/344/486 3497/345/487 +f 3484/332/474 3498/346/488 3492/340/482 +f 3493/341/483 3499/347/489 3500/348/490 +f 3486/334/476 3496/349/486 3482/330/472 +f 3487/335/477 3501/350/491 3483/331/473 +f 3484/332/474 3502/351/492 3503/352/493 +f 3489/337/479 3499/353/489 3485/333/475 +f 3483/354/473 3504/355/494 3486/334/476 +f 3490/338/480 3505/356/495 3487/335/477 +f 3491/339/481 3502/357/492 3488/336/478 +f 3501/350/491 3505/358/495 3506/359/446 +f 3505/356/495 3495/360/485 3506/361/446 +f 3495/343/485 3500/362/490 3506/363/446 +f 3500/348/490 3499/347/489 3506/364/446 +f 3499/353/489 3494/365/484 3506/366/446 +f 3494/342/484 3498/367/488 3506/368/446 +f 3498/346/488 3503/369/493 3506/370/446 +f 3503/352/493 3502/351/492 3506/371/446 +f 3502/357/492 3497/372/487 3506/373/446 +f 3497/345/487 3496/344/486 3506/374/446 +f 3496/349/486 3504/375/494 3506/376/446 +f 3504/355/494 3501/377/491 3506/378/446 +f 3472/324/496 3470/296/497 3507/379/447 +f 3470/323/497 3467/294/498 3507/380/447 +f 3467/292/498 3481/322/499 3507/381/447 +f 3481/321/499 3465/290/500 3507/382/447 +f 3465/320/500 3463/288/501 3507/383/447 +f 3463/319/501 3461/286/502 3507/384/447 +f 3461/318/502 3458/283/503 3507/385/447 +f 3458/329/503 3480/307/504 3507/386/447 +f 3480/328/504 3478/305/505 3507/387/447 +f 3478/327/505 3476/303/506 3507/388/447 +f 3476/326/506 3474/301/507 3507/389/447 +f 3474/325/507 3472/299/496 3507/390/447 +f 3508/391/461 3509/392/508 3510/393/508 +f 3511/394/509 3512/395/461 3508/391/461 +f 3513/396/465 3514/397/510 3515/398/510 +f 3516/399/511 3517/400/465 3513/396/465 +f 3466/291/460 3290/97/460 3311/119/461 +f 3459/284/462 3309/117/462 3305/113/463 +f 3477/304/464 3301/109/464 3299/107/465 +f 3468/293/466 3293/100/466 3290/97/460 +f 3471/297/467 3295/102/467 3296/104/468 +f 3462/287/469 3312/120/469 3309/117/462 +f 3479/306/470 3303/111/470 3301/109/464 +f 3469/295/468 3296/308/468 3293/100/466 +f 3473/300/471 3297/105/471 3295/102/467 +f 3464/289/461 3311/119/461 3312/120/469 +f 3460/285/463 3305/113/463 3303/111/470 +f 3475/302/465 3299/107/465 3297/105/471 +f 3310/118/469 3316/124/469 3335/144/462 +f 3306/114/470 3331/140/470 3329/138/464 +f 3294/101/468 3321/129/468 3319/127/466 +f 3300/108/471 3327/136/471 3323/131/467 +f 3313/121/461 3314/122/461 3316/124/469 +f 3308/116/463 3336/145/463 3331/140/470 +f 3302/110/465 3330/139/465 3327/136/471 +f 3292/99/460 3317/125/460 3314/122/461 +f 3307/115/462 3335/144/462 3336/145/463 +f 3304/112/464 3329/138/464 3330/139/465 +f 3291/98/466 3319/127/466 3317/125/460 +f 3298/106/467 3323/131/467 3321/133/468 +f 3322/130/466 3393/204/466 3389/200/460 +f 3326/135/467 3395/206/467 3396/208/468 +f 3315/123/469 3388/199/469 3409/221/462 +f 3334/143/470 3403/215/470 3401/213/464 +f 3324/309/468 3396/312/468 3393/204/466 +f 3325/134/471 3397/209/471 3395/206/467 +f 3318/126/461 3386/197/461 3388/199/469 +f 3333/142/463 3405/217/463 3403/215/470 +f 3328/137/465 3399/211/465 3397/209/471 +f 3320/128/460 3389/200/460 3386/197/461 +f 3337/146/462 3409/221/462 3405/217/463 +f 3332/141/464 3401/213/464 3399/211/465 +f 3387/198/469 3340/149/469 3359/169/462 +f 3406/218/470 3355/165/470 3353/163/464 +f 3394/205/468 3345/154/468 3343/152/466 +f 3400/212/471 3351/161/471 3347/156/467 +f 3390/201/461 3338/147/461 3340/149/469 +f 3408/220/463 3360/170/463 3355/165/470 +f 3402/214/465 3354/164/465 3351/161/471 +f 3392/203/460 3341/150/460 3338/147/461 +f 3407/219/462 3359/169/462 3360/170/463 +f 3404/216/464 3353/163/464 3354/164/465 +f 3391/202/466 3343/152/466 3341/150/460 +f 3398/210/467 3347/156/467 3345/158/468 +f 3346/155/466 3417/229/466 3413/225/460 +f 3350/160/467 3419/231/467 3420/233/468 +f 3339/148/469 3412/224/469 3433/246/462 +f 3358/168/470 3427/240/470 3425/238/464 +f 3348/310/468 3420/313/468 3417/229/466 +f 3349/159/471 3421/234/471 3419/231/467 +f 3342/151/461 3410/222/461 3412/224/469 +f 3357/167/463 3429/242/463 3427/240/470 +f 3352/162/465 3423/236/465 3421/234/471 +f 3344/153/460 3413/225/460 3410/222/461 +f 3361/171/462 3433/246/462 3429/242/463 +f 3356/166/464 3425/238/464 3423/236/465 +f 3411/223/469 3364/174/469 3383/194/462 +f 3430/243/470 3379/190/470 3377/188/464 +f 3418/230/468 3369/179/468 3367/177/466 +f 3424/237/471 3375/186/471 3371/181/467 +f 3414/226/461 3362/172/461 3364/174/469 +f 3432/245/463 3384/195/463 3379/190/470 +f 3426/239/465 3378/189/465 3375/186/471 +f 3416/228/460 3365/175/460 3362/172/461 +f 3431/244/462 3383/194/462 3384/195/463 +f 3428/241/464 3377/188/464 3378/189/465 +f 3415/227/466 3367/177/466 3365/175/460 +f 3422/235/467 3371/181/467 3369/183/468 +f 3370/180/466 3486/334/476 3482/330/472 +f 3374/185/467 3487/335/477 3483/331/473 +f 3363/173/469 3488/336/478 3484/332/474 +f 3382/193/470 3489/337/479 3485/333/475 +f 3372/311/468 3483/354/473 3486/334/476 +f 3373/184/471 3490/338/480 3487/335/477 +f 3366/176/461 3491/339/481 3488/336/478 +f 3381/192/463 3492/340/482 3489/337/479 +f 3376/187/465 3493/341/483 3490/338/480 +f 3368/178/460 3482/330/472 3491/339/481 +f 3385/196/462 3484/332/474 3492/340/482 +f 3380/191/464 3485/333/475 3493/341/483 +f 3492/340/482 3498/367/488 3494/342/484 +f 3493/341/483 3500/362/490 3495/343/485 +f 3491/339/481 3482/330/472 3496/344/486 +f 3484/332/474 3503/369/493 3498/346/488 +f 3493/341/483 3485/333/475 3499/347/489 +f 3486/334/476 3504/375/494 3496/349/486 +f 3487/335/477 3505/358/495 3501/350/491 +f 3484/332/474 3488/336/478 3502/351/492 +f 3489/337/479 3494/365/484 3499/353/489 +f 3483/354/473 3501/377/491 3504/355/494 +f 3490/338/480 3495/360/485 3505/356/495 +f 3491/339/481 3497/372/487 3502/357/492 +f 3508/391/461 3512/395/461 3509/392/508 +f 3511/394/509 3518/401/509 3512/395/461 +f 3513/396/465 3517/400/465 3514/397/510 +f 3516/399/511 3519/402/511 3517/400/465 +o ABM_Missile +v -0.176777 3.500000 -0.176777 +v 0.176777 3.500000 -0.176777 +v 0.176777 3.500000 0.176777 +v 0.154329 2.250000 -0.019030 +v 0.161612 2.250000 -0.161612 +v 0.202165 2.250000 -0.134515 +v 0.250000 2.250000 0.000000 +v 0.250000 2.250000 -0.125000 +v 0.297835 2.250000 -0.134515 +v 0.345671 2.250000 -0.019030 +v 0.338388 2.250000 -0.161612 +v 0.426777 2.250000 -0.073223 +v 0.480970 2.250000 -0.154329 +v 0.365485 2.250000 -0.202165 +v 0.500000 2.250000 -0.250000 +v 0.375000 2.250000 -0.250000 +v 0.480970 2.250000 -0.345671 +v 0.365485 2.250000 -0.297835 +v 0.338388 2.250000 -0.338388 +v 0.426777 2.250000 -0.426777 +v 0.345671 2.250000 -0.480970 +v 0.297835 2.250000 -0.365485 +v 0.250000 2.250000 -0.500000 +v 0.250000 2.250000 -0.375000 +v 0.202165 2.250000 -0.365485 +v 0.154329 2.250000 -0.480970 +v 0.161612 2.250000 -0.338388 +v 0.073223 2.250000 -0.426777 +v 0.000000 2.250000 -0.250000 +v 0.134515 2.250000 -0.202165 +v 0.019030 2.250000 -0.154329 +v 0.019030 2.250000 -0.345671 +v 0.134515 2.250000 -0.297835 +v 0.073223 2.250000 -0.073223 +v 0.125000 2.250000 -0.250000 +v 0.426777 2.000000 -0.426777 +v 0.426777 2.000000 -0.073223 +v 0.073223 2.000000 -0.073223 +v -0.031250 8.000000 -0.125000 +v 0.000000 6.500000 -0.875000 +v -0.031250 6.000000 -0.125000 +v 0.000000 7.500000 -0.875000 +v 0.031250 6.000000 -0.125000 +v 0.031250 8.000000 -0.125000 +v 0.031250 2.500000 -0.125000 +v -0.031250 2.500000 -0.125000 +v 0.000000 2.500000 -1.125000 +v 0.031250 4.500000 -0.125000 +v 0.000000 4.000000 -1.125000 +v -0.031250 4.500000 -0.125000 +v -0.062500 7.750000 -0.875000 +v 0.031250 7.750000 -0.820873 +v 0.031250 7.750000 -0.929127 +v 0.062500 6.250000 -0.875000 +v 0.031250 6.250000 -0.820873 +v -0.031250 6.250000 -0.820873 +v -0.154329 2.250000 0.019030 +v -0.161612 2.250000 0.161612 +v -0.202165 2.250000 0.134515 +v -0.250000 2.250000 0.000000 +v -0.250000 2.250000 0.125000 +v -0.297835 2.250000 0.134515 +v -0.345671 2.250000 0.019030 +v -0.338388 2.250000 0.161612 +v -0.426777 2.250000 0.073223 +v -0.480970 2.250000 0.154329 +v -0.365485 2.250000 0.202165 +v -0.500000 2.250000 0.250000 +v -0.375000 2.250000 0.250000 +v -0.480970 2.250000 0.345671 +v -0.365485 2.250000 0.297835 +v -0.338388 2.250000 0.338388 +v -0.426777 2.250000 0.426777 +v -0.345671 2.250000 0.480970 +v -0.297835 2.250000 0.365485 +v -0.250000 2.250000 0.500000 +v -0.250000 2.250000 0.375000 +v -0.202164 2.250000 0.365485 +v -0.154329 2.250000 0.480970 +v -0.161612 2.250000 0.338388 +v -0.073223 2.250000 0.426777 +v 0.000000 2.250000 0.250000 +v -0.134515 2.250000 0.202165 +v -0.019030 2.250000 0.154329 +v -0.019030 2.250000 0.345671 +v -0.134515 2.250000 0.297835 +v -0.073223 2.250000 0.073223 +v -0.125000 2.250000 0.250000 +v -0.426777 2.000000 0.073223 +v -0.250000 2.000000 0.000000 +v -0.073223 2.000000 0.073223 +v -0.031250 2.500000 0.125000 +v 0.031250 2.500000 0.125000 +v 0.000000 2.500000 1.125000 +v -0.031250 4.500000 0.125000 +v 0.000000 4.000000 1.125000 +v 0.031250 4.500000 0.125000 +v -0.019030 2.250000 -0.154329 +v -0.161612 2.250000 -0.161612 +v -0.134515 2.250000 -0.202165 +v 0.000000 2.250000 -0.250000 +v -0.125000 2.250000 -0.250000 +v -0.134515 2.250000 -0.297835 +v -0.019030 2.250000 -0.345671 +v -0.161612 2.250000 -0.338388 +v -0.073223 2.250000 -0.426777 +v -0.154329 2.250000 -0.480970 +v -0.202165 2.250000 -0.365485 +v -0.250000 2.250000 -0.500000 +v -0.250000 2.250000 -0.375000 +v -0.345671 2.250000 -0.480970 +v -0.297835 2.250000 -0.365485 +v -0.338388 2.250000 -0.338388 +v -0.426777 2.250000 -0.426777 +v -0.480970 2.250000 -0.345671 +v -0.365485 2.250000 -0.297835 +v -0.375000 2.250000 -0.250000 +v -0.500000 2.250000 -0.250000 +v -0.365485 2.250000 -0.202164 +v -0.480970 2.250000 -0.154329 +v -0.338388 2.250000 -0.161612 +v -0.426777 2.250000 -0.073223 +v -0.250000 2.250000 0.000000 +v -0.202165 2.250000 -0.134515 +v -0.154329 2.250000 -0.019030 +v -0.345671 2.250000 -0.019030 +v -0.297835 2.250000 -0.134515 +v -0.073223 2.250000 -0.073223 +v -0.250000 2.250000 -0.125000 +v -0.426777 2.000000 -0.426777 +v -0.073223 2.000000 -0.426777 +v -0.073223 2.000000 -0.073223 +v -0.125000 2.500000 -0.031250 +v -0.125000 2.500000 0.031250 +v -1.125000 2.500000 0.000000 +v -0.125000 4.500000 -0.031250 +v -1.125000 4.000000 0.000000 +v -0.125000 4.500000 0.031250 +v 0.019030 2.250000 0.154329 +v 0.161612 2.250000 0.161612 +v 0.134515 2.250000 0.202165 +v 0.000000 2.250000 0.250000 +v 0.125000 2.250000 0.250000 +v 0.134515 2.250000 0.297835 +v 0.019030 2.250000 0.345671 +v 0.161612 2.250000 0.338388 +v 0.073223 2.250000 0.426777 +v 0.154329 2.250000 0.480970 +v 0.202165 2.250000 0.365485 +v 0.250000 2.250000 0.500000 +v 0.250000 2.250000 0.375000 +v 0.345671 2.250000 0.480970 +v 0.297835 2.250000 0.365485 +v 0.338388 2.250000 0.338388 +v 0.426777 2.250000 0.426777 +v 0.480970 2.250000 0.345671 +v 0.365485 2.250000 0.297835 +v 0.500000 2.250000 0.250000 +v 0.375000 2.250000 0.250000 +v 0.365485 2.250000 0.202164 +v 0.480970 2.250000 0.154329 +v 0.338388 2.250000 0.161612 +v 0.426777 2.250000 0.073223 +v 0.250000 2.250000 0.000000 +v 0.202165 2.250000 0.134515 +v 0.154329 2.250000 0.019030 +v 0.345671 2.250000 0.019030 +v 0.297835 2.250000 0.134515 +v 0.073223 2.250000 0.073223 +v 0.250000 2.250000 0.125000 +v 0.426777 2.000000 0.426777 +v 0.073223 2.000000 0.426777 +v 0.073223 2.000000 0.073223 +v 0.125000 2.500000 0.031250 +v 0.125000 2.500000 -0.031250 +v 1.125000 2.500000 0.000000 +v 0.125000 4.500000 0.031250 +v 1.125000 4.000000 0.000000 +v 0.125000 4.500000 -0.031250 +v 0.031250 8.000000 0.125000 +v 0.000000 6.500000 0.875000 +v 0.031250 6.000000 0.125000 +v 0.000000 7.500000 0.875000 +v -0.031250 6.000000 0.125000 +v -0.031250 8.000000 0.125000 +v -0.062500 7.750000 0.875000 +v -0.031250 7.750000 0.929127 +v 0.062500 7.750000 0.875000 +v -0.062500 6.250000 0.875000 +v -0.031250 6.250000 0.820873 +v 0.031250 6.250000 0.820873 +v -0.125000 8.000000 0.031250 +v -0.875000 6.500000 0.000000 +v -0.125000 6.000000 0.031250 +v -0.875000 7.500000 0.000000 +v -0.125000 6.000000 -0.031250 +v -0.125000 8.000000 -0.031250 +v -0.875000 7.750000 0.062500 +v -0.820873 7.750000 -0.031250 +v -0.929127 7.750000 -0.031250 +v -0.875000 6.250000 -0.062500 +v -0.820873 6.250000 -0.031250 +v -0.820873 6.250000 0.031250 +v 0.125000 6.000000 -0.031250 +v 0.875000 7.500000 0.000000 +v 0.875000 6.500000 0.000000 +v 0.125000 6.000000 0.031250 +v 0.125000 8.000000 0.031250 +v 0.125000 8.000000 -0.031250 +v 0.875000 7.750000 -0.062500 +v 0.820873 7.750000 0.031250 +v 0.929127 7.750000 0.031250 +v 0.875000 6.250000 0.062500 +v 0.820873 6.250000 0.031250 +v 0.820873 6.250000 -0.031250 +v -0.095671 3.500000 -0.230970 +v 0.000000 3.500000 -0.250000 +v 0.095671 3.500000 -0.230970 +v 0.230970 3.500000 -0.095671 +v 0.250000 3.500000 0.000000 +v 0.230970 3.500000 0.095671 +v 0.095671 3.500000 0.230970 +v 0.000000 3.500000 0.250000 +v -0.095671 3.500000 0.230970 +v -0.176777 3.500000 0.176777 +v -0.230970 3.500000 0.095671 +v -0.250000 3.500000 0.000000 +v -0.230970 3.500000 -0.095671 +v 0.019030 2.000000 -0.154329 +v 0.000000 2.000000 -0.250000 +v 0.019030 2.000000 -0.345671 +v 0.073223 2.000000 -0.426777 +v 0.154329 2.000000 -0.480970 +v 0.250000 2.000000 -0.500000 +v 0.345671 2.000000 -0.480970 +v 0.480970 2.000000 -0.345671 +v 0.500000 2.000000 -0.250000 +v 0.480970 2.000000 -0.154329 +v 0.345671 2.000000 -0.019030 +v 0.250000 2.000000 0.000000 +v 0.154329 2.000000 -0.019030 +v -0.031250 7.750000 -0.929127 +v -0.031250 7.750000 -0.820873 +v 0.062500 7.750000 -0.875000 +v -0.062500 6.250000 -0.875000 +v -0.031250 6.250000 -0.929127 +v 0.031250 6.250000 -0.929127 +v -0.019030 2.000000 0.154329 +v 0.000000 2.000000 0.250000 +v -0.019030 2.000000 0.345671 +v -0.073223 2.000000 0.426777 +v -0.154329 2.000000 0.480970 +v -0.250000 2.000000 0.500000 +v -0.345671 2.000000 0.480970 +v -0.426777 2.000000 0.426777 +v -0.480970 2.000000 0.345671 +v -0.500000 2.000000 0.250000 +v -0.480970 2.000000 0.154329 +v -0.345671 2.000000 0.019030 +v -0.154329 2.000000 0.019030 +v -0.154329 2.000000 -0.019030 +v -0.250000 2.000000 0.000000 +v -0.345671 2.000000 -0.019030 +v -0.426777 2.000000 -0.073223 +v -0.480970 2.000000 -0.154329 +v -0.500000 2.000000 -0.250000 +v -0.480970 2.000000 -0.345671 +v -0.345671 2.000000 -0.480970 +v -0.250000 2.000000 -0.500000 +v -0.154329 2.000000 -0.480970 +v -0.019030 2.000000 -0.345671 +v 0.000000 2.000000 -0.250000 +v -0.019030 2.000000 -0.154329 +v 0.154329 2.000000 0.019030 +v 0.250000 2.000000 0.000000 +v 0.345671 2.000000 0.019030 +v 0.426777 2.000000 0.073223 +v 0.480970 2.000000 0.154329 +v 0.500000 2.000000 0.250000 +v 0.480970 2.000000 0.345671 +v 0.345671 2.000000 0.480970 +v 0.250000 2.000000 0.500000 +v 0.154329 2.000000 0.480970 +v 0.019030 2.000000 0.345671 +v 0.000000 2.000000 0.250000 +v 0.019030 2.000000 0.154329 +v 0.031250 7.750000 0.929127 +v 0.031250 7.750000 0.820873 +v -0.031250 7.750000 0.820873 +v 0.062500 6.250000 0.875000 +v 0.031250 6.250000 0.929127 +v -0.031250 6.250000 0.929127 +v -0.929127 7.750000 0.031250 +v -0.820873 7.750000 0.031250 +v -0.875000 7.750000 -0.062500 +v -0.875000 6.250000 0.062500 +v -0.929127 6.250000 0.031250 +v -0.929127 6.250000 -0.031250 +v 0.929127 7.750000 -0.031250 +v 0.820873 7.750000 -0.031250 +v 0.875000 7.750000 0.062500 +v 0.875000 6.250000 -0.062500 +v 0.929127 6.250000 -0.031250 +v 0.929127 6.250000 0.031250 +v 0.143506 9.000000 -0.346455 +v 0.000000 9.000000 -0.375000 +v 0.000000 10.500000 0.000000 +v 0.265165 9.000000 -0.265165 +v 0.346455 9.000000 -0.143506 +v 0.375000 9.000000 0.000000 +v 0.346455 9.000000 0.143506 +v 0.265165 9.000000 0.265165 +v 0.143506 9.000000 0.346455 +v 0.000000 9.000000 0.375000 +v -0.143506 9.000000 0.346455 +v -0.265165 9.000000 0.265165 +v -0.346455 9.000000 0.143506 +v -0.375000 9.000000 0.000000 +v -0.346455 9.000000 -0.143506 +v -0.265165 9.000000 -0.265165 +v -0.143506 9.000000 -0.346455 +v -0.375000 7.500000 0.000000 +v 0.375000 7.500000 0.000000 +v -0.346455 7.500000 0.143506 +v 0.346455 7.500000 -0.143506 +v -0.265165 7.500000 0.265165 +v 0.265165 7.500000 -0.265165 +v -0.143506 7.500000 0.346455 +v 0.143506 7.500000 -0.346455 +v 0.000000 7.500000 0.375000 +v -0.143506 7.500000 -0.346455 +v 0.000000 7.500000 -0.375000 +v 0.143506 7.500000 0.346455 +v -0.265165 7.500000 -0.265165 +v 0.265165 7.500000 0.265165 +v -0.346455 7.500000 -0.143506 +v 0.346455 7.500000 0.143506 +v 0.095671 6.500000 0.230970 +v -0.176777 6.500000 -0.176777 +v 0.176777 6.500000 0.176777 +v -0.230970 6.500000 -0.095671 +v 0.230970 6.500000 0.095671 +v -0.250000 6.500000 0.000000 +v 0.250000 6.500000 0.000000 +v -0.230970 6.500000 0.095671 +v 0.230970 6.500000 -0.095671 +v -0.176777 6.500000 0.176777 +v 0.176777 6.500000 -0.176777 +v -0.095671 6.500000 0.230970 +v 0.095671 6.500000 -0.230970 +v 0.000000 6.500000 0.250000 +v -0.095671 6.500000 -0.230970 +v 0.000000 6.500000 -0.250000 +v 0.019030 3.500000 -0.154329 +v 0.480970 3.500000 -0.345671 +v 0.073223 3.500000 -0.073223 +v 0.426777 3.500000 -0.426777 +v 0.154329 3.500000 -0.019030 +v 0.345671 3.500000 -0.480970 +v 0.250000 3.500000 0.000000 +v 0.250000 3.500000 -0.500000 +v 0.345671 3.500000 -0.019030 +v 0.154329 3.500000 -0.480970 +v 0.426777 3.500000 -0.073223 +v 0.073223 3.500000 -0.426777 +v 0.480970 3.500000 -0.154329 +v 0.000000 3.500000 -0.250000 +v 0.019030 3.500000 -0.345671 +v 0.500000 3.500000 -0.250000 +v 0.125000 4.500000 -0.125000 +v -0.019030 3.500000 0.154329 +v -0.480970 3.500000 0.345671 +v -0.073223 3.500000 0.073223 +v -0.426777 3.500000 0.426777 +v -0.154329 3.500000 0.019030 +v -0.345671 3.500000 0.480970 +v -0.250000 3.500000 0.000000 +v -0.250000 3.500000 0.500000 +v -0.345671 3.500000 0.019030 +v -0.154329 3.500000 0.480970 +v -0.426777 3.500000 0.073223 +v -0.073223 3.500000 0.426777 +v -0.480970 3.500000 0.154329 +v 0.000000 3.500000 0.250000 +v -0.019030 3.500000 0.345671 +v -0.500000 3.500000 0.250000 +v -0.125000 4.500000 0.125000 +v -0.154329 3.500000 -0.019030 +v -0.345671 3.500000 -0.480970 +v -0.073223 3.500000 -0.073223 +v -0.426777 3.500000 -0.426777 +v -0.019030 3.500000 -0.154329 +v -0.480970 3.500000 -0.345671 +v 0.000000 3.500000 -0.250000 +v -0.500000 3.500000 -0.250000 +v -0.019030 3.500000 -0.345671 +v -0.480970 3.500000 -0.154329 +v -0.073223 3.500000 -0.426777 +v -0.426777 3.500000 -0.073223 +v -0.154329 3.500000 -0.480970 +v -0.250000 3.500000 0.000000 +v -0.345671 3.500000 -0.019030 +v -0.250000 3.500000 -0.500000 +v -0.125000 4.500000 -0.125000 +v 0.154329 3.500000 0.019030 +v 0.345671 3.500000 0.480970 +v 0.073223 3.500000 0.073223 +v 0.426777 3.500000 0.426777 +v 0.019030 3.500000 0.154329 +v 0.480970 3.500000 0.345671 +v 0.000000 3.500000 0.250000 +v 0.500000 3.500000 0.250000 +v 0.019030 3.500000 0.345671 +v 0.480970 3.500000 0.154329 +v 0.073223 3.500000 0.426777 +v 0.426777 3.500000 0.073223 +v 0.154329 3.500000 0.480970 +v 0.250000 3.500000 0.000000 +v 0.345671 3.500000 0.019030 +v 0.250000 3.500000 0.500000 +v 0.125000 4.500000 0.125000 +vt 0.720253 0.439829 +vt 0.720253 0.488743 +vt 0.648168 0.488743 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.633240 0.535715 +vt 0.648169 0.511257 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.671053 0.035714 +vt 0.684211 0.053571 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.763158 0.035714 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.946709 0.330357 +vt 0.940460 0.337702 +vt 0.921712 0.330357 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.731302 0.451050 +vt 0.735182 0.464286 +vt 0.731302 0.477522 +vt 0.703716 0.496241 +vt 0.684211 0.498873 +vt 0.664705 0.496241 +vt 0.637119 0.477522 +vt 0.633239 0.464286 +vt 0.637119 0.451050 +vt 0.648169 0.439829 +vt 0.664705 0.432331 +vt 0.684211 0.429698 +vt 0.703716 0.432331 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.684211 0.570302 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.657895 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.940460 0.323013 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.842105 0.294643 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.434211 0.785714 +vt 0.473684 0.785714 +vt 0.447368 1.000000 +vt 0.394737 0.785714 +vt 0.407895 1.000000 +vt 0.355263 0.785714 +vt 0.368421 1.000000 +vt 0.315789 0.785714 +vt 0.328947 1.000000 +vt 0.276316 0.785714 +vt 0.289474 1.000000 +vt 0.236842 0.785714 +vt 0.250000 1.000000 +vt 0.197368 0.785714 +vt 0.210526 1.000000 +vt 0.157895 0.785714 +vt 0.171053 1.000000 +vt 0.131579 1.000000 +vt 0.118421 0.785714 +vt 0.078947 0.785714 +vt 0.092105 1.000000 +vt 0.039474 0.785714 +vt 0.052632 1.000000 +vt 0.000000 0.785714 +vt 0.013158 1.000000 +vt 0.592105 0.785714 +vt 0.631579 0.785714 +vt 0.605263 1.000000 +vt 0.552632 0.785714 +vt 0.565789 1.000000 +vt 0.513158 0.785714 +vt 0.526316 1.000000 +vt 0.486842 1.000000 +vt 0.631579 0.571429 +vt 0.315789 0.571429 +vt 0.039474 0.571429 +vt 0.355263 0.571429 +vt 0.078947 0.571429 +vt 0.394737 0.571429 +vt 0.118421 0.571429 +vt 0.434211 0.571429 +vt 0.157895 0.571429 +vt 0.513158 0.571429 +vt 0.473684 0.571429 +vt 0.197368 0.571429 +vt 0.552632 0.571429 +vt 0.236842 0.571429 +vt 0.592105 0.571429 +vt 0.276316 0.571429 +vt 0.184211 0.428571 +vt 0.539474 0.428571 +vt 0.223684 0.428571 +vt 0.578947 0.428571 +vt 0.263158 0.428571 +vt 0.618421 0.428571 +vt 0.302632 0.428571 +vt 0.000000 0.571429 +vt 0.026316 0.428571 +vt 0.342105 0.428571 +vt 0.065789 0.428571 +vt 0.381579 0.428571 +vt 0.105263 0.428571 +vt 0.421053 0.428571 +vt 0.144737 0.428571 +vt 0.500000 0.428571 +vt 0.460526 0.428571 +vt 0.236842 0.428571 +vt 0.263158 -0.000000 +vt 0.263158 0.428571 +vt 0.052632 0.428571 +vt 0.078947 -0.000000 +vt 0.078947 0.428571 +vt 0.289474 -0.000000 +vt 0.289474 0.428571 +vt 0.105263 -0.000000 +vt 0.105263 0.428571 +vt 0.315789 0.428571 +vt 0.342105 -0.000000 +vt 0.342105 0.428571 +vt 0.315789 -0.000000 +vt 0.131579 -0.000000 +vt 0.131579 0.428571 +vt 0.368421 -0.000000 +vt 0.368421 0.428571 +vt 0.157895 -0.000000 +vt 0.157895 0.428571 +vt 0.394737 -0.000000 +vt 0.394737 0.428571 +vt 0.184211 -0.000000 +vt 0.184211 0.428571 +vt 0.421053 -0.000000 +vt 0.421053 0.428571 +vt 0.210526 -0.000000 +vt 0.210526 0.428571 +vt 0.000000 0.428571 +vt 0.026316 -0.000000 +vt 0.236842 -0.000000 +vt 0.052632 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.789474 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.605263 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.157895 0.428571 +vt 0.513158 0.428571 +vt 0.197368 0.428571 +vt 0.552632 0.428571 +vt 0.236842 0.428571 +vt 0.592105 0.428571 +vt 0.276316 0.428571 +vt 0.315789 0.428571 +vt 0.039474 0.428571 +vt 0.355263 0.428571 +vt 0.078947 0.428571 +vt 0.394737 0.428571 +vt 0.118421 0.428571 +vt 0.473684 0.428571 +vt 0.434211 0.428571 +vt 0.000000 -0.000000 +vt 0.842105 0.517857 +vt 0.421053 -0.000000 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vn 0.0000 -1.0000 0.0000 +vn -0.9991 0.0000 -0.0416 +vn 0.9991 0.0000 -0.0416 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 0.8944 -0.4472 +vn 0.9995 0.0000 -0.0312 +vn -0.9995 0.0000 -0.0312 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn -0.9995 -0.0000 0.0312 +vn 0.9995 -0.0000 0.0312 +vn -0.4472 0.8944 0.0000 +vn -0.0312 0.0000 -0.9995 +vn -0.0312 -0.0000 0.9995 +vn 0.4472 0.8944 0.0000 +vn 0.0312 -0.0000 0.9995 +vn 0.0312 0.0000 -0.9995 +vn 0.9991 -0.0000 0.0416 +vn -0.9991 -0.0000 0.0416 +vn 0.0000 0.8321 0.5547 +vn 0.0000 -0.8321 0.5547 +vn -0.0416 -0.0000 0.9991 +vn -0.0416 0.0000 -0.9991 +vn -0.5547 0.8321 0.0000 +vn -0.5547 -0.8321 0.0000 +vn 0.0416 0.0000 -0.9991 +vn 0.0416 -0.0000 0.9991 +vn 0.5547 0.8321 0.0000 +vn 0.5547 -0.8321 0.0000 +vn 0.3713 0.2425 -0.8963 +vn 0.0000 0.2425 -0.9701 +vn 0.6860 0.2425 -0.6860 +vn 0.8963 0.2425 -0.3713 +vn 0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn 0.6860 0.2425 0.6860 +vn 0.3713 0.2425 0.8963 +vn 0.0000 0.2425 0.9701 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn -0.8963 0.2425 0.3713 +vn -0.9701 0.2425 -0.0000 +vn -0.8963 0.2425 -0.3713 +vn -0.6860 0.2425 -0.6860 +vn -0.3713 0.2425 -0.8963 +vn -0.9239 0.0000 -0.3827 +vn -1.0000 -0.0000 -0.0000 +vn 0.9239 0.0000 0.3827 +vn 1.0000 -0.0000 0.0000 +vn -0.9239 -0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 -0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 -0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 -0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn 0.0000 -0.1240 0.9923 +vn 0.3797 -0.1240 0.9167 +vn -0.3797 -0.1240 -0.9167 +vn -0.7016 -0.1240 -0.7016 +vn 0.7016 -0.1240 0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 0.0000 +vn 0.9923 -0.1240 -0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 -0.9923 +vn 0.0127 0.3525 -0.9357 +vn -0.1164 0.9864 0.1164 +vn 0.3598 0.3824 -0.8511 +vn 0.6504 0.3925 -0.6504 +vn 0.8511 0.3824 -0.3598 +vn 0.9357 0.3525 -0.0127 +vn 0.8863 0.3053 0.3484 +vn 0.6991 0.2457 0.6714 +vn 0.3936 0.1823 0.9010 +vn 0.0149 0.1259 0.9919 +vn -0.3736 0.0869 0.9235 +vn -0.7052 0.0730 0.7052 +vn -0.9235 0.0869 0.3736 +vn -0.9919 0.1259 -0.0149 +vn -0.9010 0.1823 -0.3936 +vn -0.6714 0.2457 -0.6991 +vn -0.3484 0.3053 -0.8863 +vn 0.6325 0.4472 -0.6325 +vn 0.8263 0.4472 -0.3423 +vn 0.3423 0.4472 -0.8263 +vn 0.0000 0.4472 -0.8944 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn -0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 0.0000 +vn -0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 -0.0000 0.8660 +vn -0.5000 -0.0000 0.8660 +vn -0.0127 0.3525 0.9357 +vn 0.1164 0.9864 -0.1164 +vn -0.3598 0.3824 0.8511 +vn -0.6504 0.3925 0.6504 +vn -0.8511 0.3824 0.3598 +vn -0.9357 0.3525 0.0127 +vn -0.8863 0.3053 -0.3484 +vn -0.6991 0.2457 -0.6714 +vn -0.3936 0.1823 -0.9010 +vn -0.0149 0.1259 -0.9919 +vn 0.3736 0.0869 -0.9235 +vn 0.7052 0.0730 -0.7052 +vn 0.9235 0.0869 -0.3736 +vn 0.9919 0.1259 0.0149 +vn 0.9010 0.1823 0.3936 +vn 0.6714 0.2457 0.6991 +vn 0.3484 0.3053 0.8863 +vn -0.9357 0.3525 -0.0127 +vn 0.1164 0.9864 0.1164 +vn -0.8511 0.3824 -0.3598 +vn -0.6504 0.3925 -0.6504 +vn -0.3598 0.3824 -0.8511 +vn -0.0127 0.3525 -0.9357 +vn 0.3484 0.3053 -0.8863 +vn 0.6714 0.2457 -0.6991 +vn 0.9010 0.1823 -0.3936 +vn 0.9919 0.1259 -0.0149 +vn 0.9235 0.0869 0.3736 +vn 0.7052 0.0730 0.7052 +vn 0.3736 0.0869 0.9235 +vn -0.0149 0.1259 0.9919 +vn -0.3936 0.1823 0.9010 +vn -0.6991 0.2457 0.6714 +vn -0.8863 0.3053 0.3484 +vn 0.9357 0.3525 0.0127 +vn -0.1164 0.9864 -0.1164 +vn 0.8511 0.3824 0.3598 +vn 0.6504 0.3925 0.6504 +vn 0.3598 0.3824 0.8511 +vn 0.0127 0.3525 0.9357 +vn -0.3484 0.3053 0.8863 +vn -0.6714 0.2457 0.6991 +vn -0.9010 0.1823 0.3936 +vn -0.9919 0.1259 0.0149 +vn -0.9235 0.0869 -0.3736 +vn -0.7052 0.0730 -0.7052 +vn -0.3736 0.0869 -0.9235 +vn 0.0149 0.1259 -0.9919 +vn 0.3936 0.1823 -0.9010 +vn 0.6991 0.2457 -0.6714 +vn 0.8863 0.3053 -0.3484 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 -0.0000 -0.5000 +vn 0.8660 -0.0000 0.5000 +s off +f 3520/403/512 3521/404/512 3522/405/512 +f 3523/406/512 3524/407/512 3525/408/512 +f 3526/409/512 3525/410/512 3527/411/512 +f 3526/409/512 3528/412/512 3529/413/512 +f 3529/413/512 3530/414/512 3531/415/512 +f 3532/416/512 3530/417/512 3533/418/512 +f 3534/419/512 3533/420/512 3535/421/512 +f 3536/422/512 3535/423/512 3537/424/512 +f 3536/422/512 3538/425/512 3539/426/512 +f 3540/427/512 3538/428/512 3541/429/512 +f 3542/430/512 3541/431/512 3543/432/512 +f 3542/430/512 3544/433/512 3545/434/512 +f 3545/434/512 3546/435/512 3547/436/512 +f 3548/437/512 3549/438/512 3550/439/512 +f 3551/440/512 3546/441/512 3552/442/512 +f 3550/439/512 3524/443/512 3553/444/512 +f 3551/440/512 3554/445/512 3548/437/512 +f 3555/446/512 3556/447/512 3557/448/512 +f 3558/449/513 3559/450/513 3560/451/513 +f 3561/452/514 3562/453/514 3559/450/514 +f 3563/454/515 3561/455/515 3558/456/515 +f 3562/453/516 3560/457/516 3559/458/516 +f 3564/459/512 3565/460/512 3566/461/512 +f 3567/462/517 3568/463/517 3569/464/517 +f 3568/465/518 3564/459/518 3566/461/518 +f 3565/466/519 3568/465/519 3566/461/519 +f 3570/467/520 3571/468/520 3572/469/520 +f 3573/470/512 3574/471/512 3575/472/512 +f 3576/473/512 3577/474/512 3578/475/512 +f 3579/476/512 3578/477/512 3580/478/512 +f 3579/476/512 3581/479/512 3582/480/512 +f 3582/480/512 3583/481/512 3584/482/512 +f 3585/483/512 3583/484/512 3586/485/512 +f 3587/486/512 3586/487/512 3588/488/512 +f 3589/489/512 3588/490/512 3590/491/512 +f 3589/489/512 3591/492/512 3592/493/512 +f 3593/494/512 3591/495/512 3594/496/512 +f 3595/497/512 3594/498/512 3596/499/512 +f 3595/497/512 3597/500/512 3598/501/512 +f 3598/501/512 3599/502/512 3600/503/512 +f 3601/504/512 3602/505/512 3603/506/512 +f 3604/507/512 3599/508/512 3605/509/512 +f 3603/506/512 3577/510/512 3606/511/512 +f 3604/507/512 3607/512/512 3601/504/512 +f 3608/513/512 3609/514/512 3610/515/512 +f 3611/516/512 3612/517/512 3613/518/512 +f 3614/519/521 3615/520/521 3616/521/521 +f 3615/522/522 3611/516/522 3613/518/522 +f 3612/523/523 3615/522/523 3613/518/523 +f 3617/524/512 3618/525/512 3619/526/512 +f 3620/527/512 3619/528/512 3621/529/512 +f 3620/527/512 3622/530/512 3623/531/512 +f 3623/531/512 3624/532/512 3625/533/512 +f 3626/534/512 3624/535/512 3627/536/512 +f 3628/537/512 3627/538/512 3629/539/512 +f 3630/540/512 3629/541/512 3631/542/512 +f 3630/540/512 3632/543/512 3633/544/512 +f 3634/545/512 3632/546/512 3635/547/512 +f 3634/545/512 3636/548/512 3637/549/512 +f 3637/549/512 3638/550/512 3639/551/512 +f 3639/551/512 3640/552/512 3641/553/512 +f 3642/554/512 3643/555/512 3644/556/512 +f 3645/557/512 3640/558/512 3646/559/512 +f 3644/556/512 3618/560/512 3647/561/512 +f 3645/557/512 3648/562/512 3642/554/512 +f 3649/563/512 3650/564/512 3651/565/512 +f 3652/566/512 3653/567/512 3654/568/512 +f 3655/569/524 3656/570/524 3657/571/524 +f 3656/572/525 3652/566/525 3654/568/525 +f 3653/573/526 3656/572/526 3654/568/526 +f 3658/574/512 3659/575/512 3660/576/512 +f 3661/577/512 3660/578/512 3662/579/512 +f 3661/577/512 3663/580/512 3664/581/512 +f 3664/581/512 3665/582/512 3666/583/512 +f 3667/584/512 3665/585/512 3668/586/512 +f 3669/587/512 3668/588/512 3670/589/512 +f 3671/590/512 3670/591/512 3672/592/512 +f 3671/590/512 3673/593/512 3674/594/512 +f 3675/595/512 3673/596/512 3676/597/512 +f 3677/598/512 3676/599/512 3678/600/512 +f 3677/598/512 3679/601/512 3680/602/512 +f 3680/602/512 3681/603/512 3682/604/512 +f 3683/605/512 3684/606/512 3685/607/512 +f 3686/608/512 3681/609/512 3687/610/512 +f 3685/607/512 3659/611/512 3688/612/512 +f 3683/605/512 3687/613/512 3689/614/512 +f 3690/615/512 3691/616/512 3692/617/512 +f 3693/618/512 3694/619/512 3695/620/512 +f 3696/621/527 3697/622/527 3698/623/527 +f 3697/624/528 3693/618/528 3695/620/528 +f 3694/625/529 3697/624/529 3695/620/529 +f 3699/626/530 3700/627/530 3701/628/530 +f 3702/629/531 3703/630/531 3700/627/531 +f 3704/631/532 3702/632/532 3699/633/532 +f 3703/630/533 3701/634/533 3700/635/533 +f 3705/636/520 3706/637/520 3707/638/520 +f 3708/639/512 3709/640/512 3710/641/512 +f 3711/642/534 3712/643/534 3713/644/534 +f 3714/645/535 3715/646/535 3712/643/535 +f 3716/647/536 3714/648/536 3711/649/536 +f 3715/646/537 3713/650/537 3712/651/537 +f 3717/652/520 3718/653/520 3719/654/520 +f 3720/655/512 3721/656/512 3722/657/512 +f 3723/658/538 3724/659/538 3725/660/538 +f 3724/659/539 3726/661/539 3725/660/539 +f 3727/662/540 3724/663/540 3728/664/540 +f 3726/661/541 3723/665/541 3725/666/541 +f 3729/667/520 3730/668/520 3731/669/520 +f 3732/670/512 3733/671/512 3734/672/512 +f 3520/403/512 3735/673/512 3736/674/512 +f 3736/674/512 3737/675/512 3520/403/512 +f 3737/675/512 3521/404/512 3520/403/512 +f 3521/404/512 3738/676/512 3739/677/512 +f 3739/677/512 3740/678/512 3522/405/512 +f 3522/405/512 3741/679/512 3742/680/512 +f 3742/680/512 3743/681/512 3744/682/512 +f 3744/682/512 3745/683/512 3520/403/512 +f 3745/683/512 3746/684/512 3520/403/512 +f 3746/684/512 3747/685/512 3520/403/512 +f 3521/404/512 3739/677/512 3522/405/512 +f 3522/405/512 3742/680/512 3520/403/512 +f 3742/680/512 3744/682/512 3520/403/512 +f 3523/406/512 3553/686/512 3524/407/512 +f 3526/409/512 3523/406/512 3525/410/512 +f 3526/409/512 3527/687/512 3528/412/512 +f 3529/413/512 3528/688/512 3530/414/512 +f 3532/416/512 3531/415/512 3530/417/512 +f 3534/419/512 3532/416/512 3533/420/512 +f 3536/422/512 3534/419/512 3535/423/512 +f 3536/422/512 3537/689/512 3538/425/512 +f 3540/427/512 3539/426/512 3538/428/512 +f 3542/430/512 3540/427/512 3541/431/512 +f 3542/430/512 3543/690/512 3544/433/512 +f 3545/434/512 3544/691/512 3546/435/512 +f 3548/437/512 3554/692/512 3549/438/512 +f 3551/440/512 3547/436/512 3546/441/512 +f 3550/439/512 3549/693/512 3524/443/512 +f 3551/440/512 3552/694/512 3554/445/512 +f 3557/448/512 3748/695/512 3749/696/512 +f 3749/696/512 3750/697/512 3557/448/512 +f 3750/697/512 3751/698/512 3557/448/512 +f 3751/698/512 3752/699/512 3753/700/512 +f 3753/700/512 3754/701/512 3555/446/512 +f 3555/446/512 3755/702/512 3556/447/512 +f 3755/702/512 3756/703/512 3556/447/512 +f 3756/703/512 3757/704/512 3556/447/512 +f 3556/447/512 3758/705/512 3759/706/512 +f 3759/706/512 3760/707/512 3557/448/512 +f 3751/698/512 3753/700/512 3557/448/512 +f 3753/700/512 3555/446/512 3557/448/512 +f 3556/447/512 3759/706/512 3557/448/512 +f 3558/449/513 3561/452/513 3559/450/513 +f 3561/452/514 3563/454/514 3562/453/514 +f 3568/465/518 3567/462/518 3564/459/518 +f 3565/466/519 3569/708/519 3568/465/519 +f 3572/469/520 3761/709/520 3570/467/520 +f 3570/467/520 3762/710/520 3571/468/520 +f 3571/468/520 3763/711/520 3572/469/520 +f 3575/472/512 3764/712/512 3765/713/512 +f 3765/713/512 3766/714/512 3575/472/512 +f 3766/714/512 3573/470/512 3575/472/512 +f 3576/473/512 3606/715/512 3577/474/512 +f 3579/476/512 3576/473/512 3578/477/512 +f 3579/476/512 3580/716/512 3581/479/512 +f 3582/480/512 3581/717/512 3583/481/512 +f 3585/483/512 3584/482/512 3583/484/512 +f 3587/486/512 3585/483/512 3586/487/512 +f 3589/489/512 3587/486/512 3588/490/512 +f 3589/489/512 3590/718/512 3591/492/512 +f 3593/494/512 3592/493/512 3591/495/512 +f 3595/497/512 3593/494/512 3594/498/512 +f 3595/497/512 3596/719/512 3597/500/512 +f 3598/501/512 3597/720/512 3599/502/512 +f 3601/504/512 3607/721/512 3602/505/512 +f 3604/507/512 3600/503/512 3599/508/512 +f 3603/506/512 3602/722/512 3577/510/512 +f 3604/507/512 3605/723/512 3607/512/512 +f 3610/515/512 3767/724/512 3768/725/512 +f 3768/725/512 3769/726/512 3770/727/512 +f 3770/727/512 3771/728/512 3772/729/512 +f 3772/729/512 3773/730/512 3774/731/512 +f 3774/731/512 3775/732/512 3776/733/512 +f 3776/733/512 3777/734/512 3608/513/512 +f 3608/513/512 3778/735/512 3609/514/512 +f 3609/514/512 3779/736/512 3610/515/512 +f 3610/515/512 3768/725/512 3774/731/512 +f 3768/725/512 3770/727/512 3774/731/512 +f 3770/727/512 3772/729/512 3774/731/512 +f 3774/731/512 3776/733/512 3610/515/512 +f 3776/733/512 3608/513/512 3610/515/512 +f 3615/522/522 3614/519/522 3611/516/522 +f 3612/523/523 3616/737/523 3615/522/523 +f 3617/524/512 3647/738/512 3618/525/512 +f 3620/527/512 3617/524/512 3619/528/512 +f 3620/527/512 3621/739/512 3622/530/512 +f 3623/531/512 3622/740/512 3624/532/512 +f 3626/534/512 3625/533/512 3624/535/512 +f 3628/537/512 3626/534/512 3627/538/512 +f 3630/540/512 3628/537/512 3629/541/512 +f 3630/540/512 3631/741/512 3632/543/512 +f 3634/545/512 3633/544/512 3632/546/512 +f 3634/545/512 3635/742/512 3636/548/512 +f 3637/549/512 3636/743/512 3638/550/512 +f 3639/551/512 3638/744/512 3640/552/512 +f 3642/554/512 3648/745/512 3643/555/512 +f 3645/557/512 3641/553/512 3640/558/512 +f 3644/556/512 3643/746/512 3618/560/512 +f 3645/557/512 3646/747/512 3648/562/512 +f 3651/565/512 3780/748/512 3781/749/512 +f 3781/749/512 3782/750/512 3783/751/512 +f 3783/751/512 3784/752/512 3785/753/512 +f 3785/753/512 3786/754/512 3649/563/512 +f 3649/563/512 3787/755/512 3650/564/512 +f 3787/755/512 3788/756/512 3650/564/512 +f 3788/756/512 3789/757/512 3650/564/512 +f 3650/564/512 3790/758/512 3791/759/512 +f 3791/759/512 3792/760/512 3651/565/512 +f 3651/565/512 3781/749/512 3783/751/512 +f 3783/751/512 3785/753/512 3651/565/512 +f 3785/753/512 3649/563/512 3651/565/512 +f 3650/564/512 3791/759/512 3651/565/512 +f 3656/572/525 3655/569/525 3652/566/525 +f 3653/573/526 3657/761/526 3656/572/526 +f 3658/574/512 3688/762/512 3659/575/512 +f 3661/577/512 3658/574/512 3660/578/512 +f 3661/577/512 3662/763/512 3663/580/512 +f 3664/581/512 3663/764/512 3665/582/512 +f 3667/584/512 3666/583/512 3665/585/512 +f 3669/587/512 3667/584/512 3668/588/512 +f 3671/590/512 3669/587/512 3670/591/512 +f 3671/590/512 3672/765/512 3673/593/512 +f 3675/595/512 3674/594/512 3673/596/512 +f 3677/598/512 3675/595/512 3676/599/512 +f 3677/598/512 3678/766/512 3679/601/512 +f 3680/602/512 3679/767/512 3681/603/512 +f 3683/605/512 3689/768/512 3684/606/512 +f 3686/608/512 3682/604/512 3681/609/512 +f 3685/607/512 3684/769/512 3659/611/512 +f 3683/605/512 3686/608/512 3687/613/512 +f 3692/617/512 3793/770/512 3794/771/512 +f 3794/771/512 3795/772/512 3692/617/512 +f 3795/772/512 3796/773/512 3692/617/512 +f 3796/773/512 3797/774/512 3798/775/512 +f 3798/775/512 3799/776/512 3690/615/512 +f 3690/615/512 3800/777/512 3691/616/512 +f 3800/777/512 3801/778/512 3691/616/512 +f 3801/778/512 3802/779/512 3691/616/512 +f 3691/616/512 3803/780/512 3804/781/512 +f 3804/781/512 3805/782/512 3692/617/512 +f 3796/773/512 3798/775/512 3692/617/512 +f 3798/775/512 3690/615/512 3692/617/512 +f 3691/616/512 3804/781/512 3692/617/512 +f 3697/624/528 3696/621/528 3693/618/528 +f 3694/625/529 3698/783/529 3697/624/529 +f 3699/626/530 3702/629/530 3700/627/530 +f 3702/629/531 3704/631/531 3703/630/531 +f 3706/637/520 3806/784/520 3707/638/520 +f 3707/638/520 3807/785/520 3808/786/520 +f 3808/786/520 3705/636/520 3707/638/520 +f 3710/641/512 3809/787/512 3810/788/512 +f 3810/788/512 3811/789/512 3710/641/512 +f 3811/789/512 3708/639/512 3710/641/512 +f 3711/642/534 3714/645/534 3712/643/534 +f 3714/645/535 3716/647/535 3715/646/535 +f 3719/654/520 3812/790/520 3717/652/520 +f 3717/652/520 3813/791/520 3718/653/520 +f 3718/653/520 3814/792/520 3719/654/520 +f 3722/657/512 3815/793/512 3816/794/512 +f 3816/794/512 3817/795/512 3722/657/512 +f 3817/795/512 3720/655/512 3722/657/512 +f 3723/658/538 3728/796/538 3724/659/538 +f 3724/659/539 3727/662/539 3726/661/539 +f 3731/669/520 3818/797/520 3729/667/520 +f 3729/667/520 3819/798/520 3730/668/520 +f 3730/668/520 3820/799/520 3731/669/520 +f 3734/672/512 3821/800/512 3822/801/512 +f 3822/801/512 3823/802/512 3734/672/512 +f 3823/802/512 3732/670/512 3734/672/512 +s 1 +f 3824/803/542 3825/804/543 3826/805/520 +f 3827/806/544 3824/803/542 3826/807/520 +f 3828/808/545 3827/806/544 3826/809/520 +f 3829/810/546 3828/808/545 3826/811/520 +f 3830/812/547 3829/810/546 3826/813/520 +f 3831/814/548 3830/812/547 3826/815/520 +f 3832/816/549 3831/814/548 3826/817/520 +f 3833/818/550 3832/816/549 3826/819/520 +f 3833/818/550 3826/820/520 3834/821/551 +f 3835/822/552 3834/821/551 3826/823/520 +f 3836/824/553 3835/822/552 3826/825/520 +f 3837/826/554 3836/824/553 3826/827/520 +f 3838/828/555 3837/829/554 3826/830/520 +f 3839/831/556 3838/828/555 3826/832/520 +f 3840/833/557 3839/831/556 3826/834/520 +f 3825/804/543 3840/833/557 3826/835/520 +f 3838/828/558 3841/836/559 3837/829/559 +f 3830/812/560 3842/837/561 3829/810/561 +f 3837/826/559 3843/838/562 3836/824/562 +f 3829/810/561 3844/839/563 3828/808/563 +f 3836/824/562 3845/840/564 3835/822/564 +f 3828/808/563 3846/841/565 3827/806/565 +f 3835/822/564 3847/842/566 3834/821/566 +f 3827/806/565 3848/843/567 3824/803/567 +f 3834/821/566 3849/844/568 3833/818/568 +f 3825/804/569 3850/845/570 3840/833/570 +f 3824/803/567 3851/846/569 3825/804/569 +f 3833/818/568 3852/847/571 3832/816/571 +f 3840/833/570 3853/848/572 3839/831/572 +f 3832/816/571 3854/849/573 3831/814/573 +f 3839/831/572 3855/850/558 3838/828/558 +f 3831/814/573 3856/851/560 3830/812/560 +f 3849/844/574 3857/852/575 3852/847/575 +f 3850/845/576 3858/853/577 3853/848/577 +f 3852/847/575 3859/854/578 3854/849/578 +f 3853/848/577 3860/855/579 3855/850/579 +f 3854/849/578 3861/856/580 3856/851/580 +f 3855/850/579 3862/857/581 3841/836/581 +f 3856/851/580 3863/858/582 3842/837/582 +f 3841/859/581 3864/860/583 3843/838/583 +f 3842/837/582 3865/861/584 3844/839/584 +f 3843/838/583 3866/862/585 3845/840/585 +f 3844/839/584 3867/863/586 3846/841/586 +f 3845/840/585 3868/864/587 3847/842/587 +f 3846/841/586 3869/865/588 3848/843/588 +f 3847/842/587 3870/866/574 3849/844/574 +f 3851/846/589 3871/867/576 3850/845/576 +f 3848/843/588 3872/868/589 3851/846/589 +f 3865/869/563 3521/870/565 3867/871/565 +f 3866/872/564 3743/873/566 3868/874/566 +f 3867/871/565 3737/875/567 3869/876/567 +f 3868/874/566 3742/877/568 3870/878/568 +f 3872/879/569 3735/880/570 3871/881/570 +f 3869/876/567 3736/882/569 3872/879/569 +f 3870/878/568 3741/883/571 3857/884/571 +f 3871/881/570 3520/885/572 3858/886/572 +f 3857/884/571 3522/887/573 3859/888/573 +f 3858/886/572 3747/889/558 3860/890/558 +f 3859/888/573 3740/891/560 3861/892/560 +f 3860/890/558 3746/893/559 3862/894/559 +f 3861/892/560 3739/895/561 3863/896/561 +f 3862/897/559 3745/898/562 3864/860/562 +f 3863/896/561 3738/899/563 3865/869/563 +f 3864/860/562 3744/900/564 3866/872/564 +f 3553/444/564 3873/901/562 3550/439/562 +f 3539/426/565 3874/902/563 3536/422/563 +f 3523/406/566 3875/903/564 3553/686/564 +f 3540/427/567 3876/904/565 3539/426/565 +f 3526/409/568 3877/905/566 3523/406/566 +f 3542/430/569 3878/906/567 3540/427/567 +f 3529/413/571 3879/907/568 3526/409/568 +f 3545/434/570 3880/908/569 3542/430/569 +f 3531/415/573 3881/909/571 3529/413/571 +f 3547/436/572 3882/910/570 3545/434/570 +f 3532/416/560 3883/911/573 3531/415/573 +f 3551/440/558 3884/912/572 3547/436/572 +f 3534/419/561 3885/913/560 3532/416/560 +f 3550/439/562 3886/914/559 3548/437/559 +f 3548/437/559 3887/915/558 3551/440/558 +f 3536/422/563 3888/916/561 3534/419/561 +f 3880/908/590 3889/917/591 3878/906/592 +f 3876/904/593 3878/906/592 3889/918/591 +f 3874/902/594 3876/904/593 3889/919/591 +f 3888/916/595 3874/902/594 3889/920/591 +f 3885/913/596 3888/916/595 3889/921/591 +f 3883/911/597 3885/913/596 3889/922/591 +f 3881/909/598 3883/911/597 3889/923/591 +f 3879/907/599 3881/909/598 3889/924/591 +f 3877/905/600 3879/907/599 3889/925/591 +f 3875/903/601 3877/905/600 3889/926/591 +f 3873/901/602 3875/927/601 3889/928/591 +f 3886/914/603 3873/901/602 3889/929/591 +f 3887/915/604 3886/914/603 3889/930/591 +f 3884/912/605 3887/915/604 3889/931/591 +f 3882/910/606 3884/912/605 3889/932/591 +f 3880/908/590 3882/910/606 3889/933/591 +f 3538/425/607 3755/934/608 3555/935/607 +f 3538/428/607 3754/936/609 3541/429/609 +f 3541/431/609 3753/937/610 3543/432/610 +f 3543/690/610 3752/938/611 3544/433/611 +f 3546/435/612 3752/938/611 3751/939/612 +f 3549/438/613 3749/940/614 3748/941/613 +f 3546/441/612 3750/942/615 3552/442/615 +f 3549/693/613 3557/943/616 3524/443/616 +f 3552/694/615 3749/940/614 3554/445/614 +f 3525/408/617 3557/944/616 3760/945/617 +f 3525/410/617 3759/946/618 3527/411/618 +f 3527/687/618 3758/947/619 3528/412/619 +f 3528/688/619 3556/948/620 3530/414/620 +f 3530/417/620 3757/949/621 3533/418/621 +f 3533/420/621 3756/950/622 3535/421/622 +f 3535/423/622 3755/934/608 3537/424/608 +f 3570/951/559 3765/952/623 3764/953/559 +f 3761/954/623 3766/955/624 3765/952/623 +f 3572/956/624 3573/957/561 3766/955/624 +f 3763/958/561 3574/959/625 3573/957/561 +f 3571/960/625 3575/961/626 3574/959/625 +f 3762/962/626 3764/953/559 3575/963/626 +f 3606/511/565 3890/964/563 3603/506/563 +f 3592/493/564 3891/965/562 3589/489/562 +f 3576/473/567 3892/966/565 3606/715/565 +f 3593/494/566 3893/967/564 3592/493/564 +f 3579/476/569 3894/968/567 3576/473/567 +f 3595/497/568 3895/969/566 3593/494/566 +f 3582/480/570 3896/970/569 3579/476/569 +f 3598/501/571 3897/971/568 3595/497/568 +f 3584/482/572 3898/972/570 3582/480/570 +f 3600/503/573 3899/973/571 3598/501/571 +f 3585/483/558 3900/974/572 3584/482/572 +f 3604/507/560 3901/975/573 3600/503/573 +f 3587/486/559 3902/976/558 3585/483/558 +f 3603/506/563 3903/977/561 3601/504/561 +f 3601/504/561 3904/978/560 3604/507/560 +f 3589/489/562 3905/979/559 3587/486/559 +f 3897/971/627 3906/980/628 3895/969/629 +f 3893/967/630 3895/969/629 3906/981/628 +f 3891/965/631 3893/967/630 3906/982/628 +f 3905/979/632 3891/965/631 3906/983/628 +f 3902/976/633 3905/979/632 3906/984/628 +f 3900/974/634 3902/976/633 3906/985/628 +f 3898/972/635 3900/974/634 3906/986/628 +f 3896/970/636 3898/972/635 3906/987/628 +f 3894/968/637 3896/970/636 3906/988/628 +f 3892/966/638 3894/968/637 3906/989/628 +f 3890/964/639 3892/990/638 3906/991/628 +f 3903/977/640 3890/964/639 3906/992/628 +f 3904/978/641 3903/977/640 3906/993/628 +f 3901/975/642 3904/978/641 3906/994/628 +f 3899/973/643 3901/975/642 3906/995/628 +f 3897/971/627 3899/973/643 3906/996/628 +f 3591/492/616 3775/997/613 3774/998/616 +f 3591/495/616 3773/999/617 3594/496/617 +f 3594/498/617 3772/1000/618 3596/499/618 +f 3597/500/619 3772/1000/618 3771/1001/619 +f 3599/502/620 3771/1001/619 3770/1002/620 +f 3607/721/622 3767/1003/608 3602/505/608 +f 3599/508/620 3769/1004/621 3605/509/621 +f 3577/510/607 3767/1003/608 3610/1005/607 +f 3605/723/621 3768/1006/622 3607/512/622 +f 3577/474/607 3779/1007/609 3578/475/609 +f 3578/477/609 3609/1008/610 3580/478/610 +f 3580/716/610 3778/1009/611 3581/479/611 +f 3581/717/611 3608/1010/612 3583/481/612 +f 3583/484/612 3777/1011/615 3586/485/615 +f 3586/487/615 3776/1012/614 3588/488/614 +f 3588/490/614 3775/997/613 3590/491/613 +f 3647/561/573 3907/1013/571 3644/556/571 +f 3633/544/572 3908/1014/570 3630/540/570 +f 3617/524/560 3909/1015/573 3647/738/573 +f 3634/545/558 3910/1016/572 3633/544/572 +f 3620/527/561 3911/1017/560 3617/524/560 +f 3637/549/559 3912/1018/558 3634/545/558 +f 3623/531/563 3913/1019/561 3620/527/561 +f 3639/551/562 3914/1020/559 3637/549/559 +f 3625/533/565 3915/1021/563 3623/531/563 +f 3641/553/564 3916/1022/562 3639/551/562 +f 3626/534/567 3917/1023/565 3625/533/565 +f 3645/557/566 3918/1024/564 3641/553/564 +f 3628/537/569 3919/1025/567 3626/534/567 +f 3644/556/571 3920/1026/568 3642/554/568 +f 3642/554/568 3921/1027/566 3645/557/566 +f 3630/540/570 3922/1028/569 3628/537/569 +f 3914/1020/644 3923/1029/645 3912/1018/646 +f 3910/1016/647 3912/1018/646 3923/1030/645 +f 3908/1014/648 3910/1016/647 3923/1031/645 +f 3922/1028/649 3908/1014/648 3923/1032/645 +f 3919/1025/650 3922/1028/649 3923/1033/645 +f 3917/1023/651 3919/1025/650 3923/1034/645 +f 3915/1021/652 3917/1023/651 3923/1035/645 +f 3913/1019/653 3915/1021/652 3923/1036/645 +f 3911/1017/654 3913/1019/653 3923/1037/645 +f 3909/1015/655 3911/1017/654 3923/1038/645 +f 3907/1013/656 3909/1039/655 3923/1040/645 +f 3920/1026/657 3907/1013/656 3923/1041/645 +f 3921/1027/658 3920/1026/657 3923/1042/645 +f 3918/1024/659 3921/1027/658 3923/1043/645 +f 3916/1022/660 3918/1024/659 3923/1044/645 +f 3914/1020/644 3916/1022/660 3923/1045/645 +f 3631/741/611 3649/1046/612 3632/543/612 +f 3632/546/612 3786/1047/615 3635/547/615 +f 3635/742/615 3785/1048/614 3636/548/614 +f 3636/743/614 3784/1049/613 3638/550/613 +f 3640/552/616 3784/1049/613 3783/1050/616 +f 3648/745/618 3780/1051/619 3643/555/619 +f 3640/558/616 3782/1052/617 3646/559/617 +f 3643/746/619 3651/1053/620 3618/560/620 +f 3646/747/617 3781/1054/618 3648/562/618 +f 3619/526/621 3651/1055/620 3792/1056/621 +f 3619/528/621 3791/1057/622 3621/529/622 +f 3621/739/622 3790/1058/608 3622/530/608 +f 3622/740/608 3650/1059/607 3624/532/607 +f 3624/535/607 3789/1060/609 3627/536/609 +f 3627/538/609 3788/1061/610 3629/539/610 +f 3629/541/610 3787/1062/611 3631/542/611 +f 3688/612/572 3924/1063/570 3685/607/570 +f 3674/594/573 3925/1064/571 3671/590/571 +f 3658/574/558 3926/1065/572 3688/762/572 +f 3675/595/560 3927/1066/573 3674/594/573 +f 3661/577/559 3928/1067/558 3658/574/558 +f 3677/598/561 3929/1068/560 3675/595/560 +f 3664/581/562 3930/1069/559 3661/577/559 +f 3680/602/563 3931/1070/561 3677/598/561 +f 3666/583/564 3932/1071/562 3664/581/562 +f 3682/604/565 3933/1072/563 3680/602/563 +f 3667/584/566 3934/1073/564 3666/583/564 +f 3686/608/567 3935/1074/565 3682/604/565 +f 3669/587/568 3936/1075/566 3667/584/566 +f 3685/607/570 3937/1076/569 3683/605/569 +f 3683/605/569 3938/1077/567 3686/608/567 +f 3671/590/571 3939/1078/568 3669/587/568 +f 3931/1070/661 3940/1079/662 3929/1068/663 +f 3927/1066/664 3929/1068/663 3940/1080/662 +f 3925/1064/665 3927/1066/664 3940/1081/662 +f 3939/1078/666 3925/1064/665 3940/1082/662 +f 3936/1075/667 3939/1078/666 3940/1083/662 +f 3934/1073/668 3936/1075/667 3940/1084/662 +f 3932/1071/669 3934/1073/668 3940/1085/662 +f 3930/1069/670 3932/1071/669 3940/1086/662 +f 3928/1067/671 3930/1069/670 3940/1087/662 +f 3926/1065/672 3928/1067/671 3940/1088/662 +f 3924/1063/673 3926/1089/672 3940/1090/662 +f 3937/1076/674 3924/1063/673 3940/1091/662 +f 3938/1077/675 3937/1076/674 3940/1092/662 +f 3935/1074/676 3938/1077/675 3940/1093/662 +f 3933/1072/677 3935/1074/676 3940/1094/662 +f 3931/1070/661 3933/1072/677 3940/1095/662 +f 3673/593/620 3800/1096/619 3690/1097/620 +f 3673/596/620 3799/1098/621 3676/597/621 +f 3676/599/621 3798/1099/622 3678/600/622 +f 3679/601/608 3798/1099/622 3797/1100/608 +f 3679/767/608 3796/1101/607 3681/603/607 +f 3689/768/610 3793/1102/611 3684/606/611 +f 3687/610/609 3796/1101/607 3795/1103/609 +f 3659/611/612 3793/1102/611 3692/1104/612 +f 3687/613/609 3794/1105/610 3689/614/610 +f 3660/576/615 3692/1106/612 3805/1107/615 +f 3660/578/615 3804/1108/614 3662/579/614 +f 3663/580/613 3804/1108/614 3803/1109/613 +f 3663/764/613 3691/1110/616 3665/582/616 +f 3665/585/616 3802/1111/617 3668/586/617 +f 3668/588/617 3801/1112/618 3670/589/618 +f 3670/591/618 3800/1096/619 3672/592/619 +f 3707/1113/561 3810/1114/625 3809/1115/561 +f 3806/1116/625 3811/1117/626 3810/1114/625 +f 3706/1118/626 3708/1119/559 3811/1117/626 +f 3705/1120/559 3709/1121/623 3708/1119/559 +f 3808/1122/623 3710/1123/624 3709/1121/623 +f 3807/1124/624 3809/1115/561 3710/1125/624 +f 3717/1126/568 3816/1127/678 3815/1128/568 +f 3812/1129/678 3817/1130/679 3816/1127/678 +f 3719/1131/679 3720/1132/569 3817/1130/679 +f 3814/1133/569 3721/1134/680 3720/1132/569 +f 3718/1135/680 3722/1136/681 3721/1134/680 +f 3813/1137/681 3815/1128/568 3722/1138/681 +f 3729/1139/569 3822/1140/680 3821/1141/569 +f 3818/1142/680 3823/1143/681 3822/1140/680 +f 3731/1144/681 3732/1145/568 3823/1143/681 +f 3820/1146/568 3733/1147/678 3732/1145/568 +f 3730/1148/678 3734/1149/679 3733/1147/678 +f 3819/1150/679 3821/1141/569 3734/1151/679 +f 3838/828/558 3855/850/558 3841/836/559 +f 3830/812/560 3856/851/560 3842/837/561 +f 3837/826/559 3841/859/559 3843/838/562 +f 3829/810/561 3842/837/561 3844/839/563 +f 3836/824/562 3843/838/562 3845/840/564 +f 3828/808/563 3844/839/563 3846/841/565 +f 3835/822/564 3845/840/564 3847/842/566 +f 3827/806/565 3846/841/565 3848/843/567 +f 3834/821/566 3847/842/566 3849/844/568 +f 3825/804/569 3851/846/569 3850/845/570 +f 3824/803/567 3848/843/567 3851/846/569 +f 3833/818/568 3849/844/568 3852/847/571 +f 3840/833/570 3850/845/570 3853/848/572 +f 3832/816/571 3852/847/571 3854/849/573 +f 3839/831/572 3853/848/572 3855/850/558 +f 3831/814/573 3854/849/573 3856/851/560 +f 3849/844/574 3870/1152/574 3857/852/575 +f 3850/845/576 3871/1153/576 3858/853/577 +f 3852/847/575 3857/1154/575 3859/854/578 +f 3853/848/577 3858/1155/577 3860/855/579 +f 3854/849/578 3859/1156/578 3861/856/580 +f 3855/850/579 3860/1157/579 3862/857/581 +f 3856/851/580 3861/1158/580 3863/858/582 +f 3841/859/581 3862/897/581 3864/860/583 +f 3842/837/582 3863/1159/582 3865/861/584 +f 3843/838/583 3864/1160/583 3866/862/585 +f 3844/839/584 3865/1161/584 3867/863/586 +f 3845/840/585 3866/1162/585 3868/864/587 +f 3846/841/586 3867/1163/586 3869/865/588 +f 3847/842/587 3868/1164/587 3870/866/574 +f 3851/846/589 3872/1165/589 3871/867/576 +f 3848/843/588 3869/1166/588 3872/868/589 +f 3865/869/563 3738/899/563 3521/870/565 +f 3866/872/564 3744/900/564 3743/873/566 +f 3867/871/565 3521/870/565 3737/875/567 +f 3868/874/566 3743/873/566 3742/877/568 +f 3872/879/569 3736/882/569 3735/880/570 +f 3869/876/567 3737/875/567 3736/882/569 +f 3870/878/568 3742/877/568 3741/883/571 +f 3871/881/570 3735/880/570 3520/885/572 +f 3857/884/571 3741/883/571 3522/887/573 +f 3858/886/572 3520/885/572 3747/889/558 +f 3859/888/573 3522/887/573 3740/891/560 +f 3860/890/558 3747/889/558 3746/893/559 +f 3861/892/560 3740/891/560 3739/895/561 +f 3862/897/559 3746/1167/559 3745/898/562 +f 3863/896/561 3739/895/561 3738/899/563 +f 3864/860/562 3745/898/562 3744/900/564 +f 3553/444/564 3875/927/564 3873/901/562 +f 3539/426/565 3876/904/565 3874/902/563 +f 3523/406/566 3877/905/566 3875/903/564 +f 3540/427/567 3878/906/567 3876/904/565 +f 3526/409/568 3879/907/568 3877/905/566 +f 3542/430/569 3880/908/569 3878/906/567 +f 3529/413/571 3881/909/571 3879/907/568 +f 3545/434/570 3882/910/570 3880/908/569 +f 3531/415/573 3883/911/573 3881/909/571 +f 3547/436/572 3884/912/572 3882/910/570 +f 3532/416/560 3885/913/560 3883/911/573 +f 3551/440/558 3887/915/558 3884/912/572 +f 3534/419/561 3888/916/561 3885/913/560 +f 3550/439/562 3873/901/562 3886/914/559 +f 3548/437/559 3886/914/559 3887/915/558 +f 3536/422/563 3874/902/563 3888/916/561 +f 3538/425/607 3537/689/608 3755/934/608 +f 3538/428/607 3555/935/607 3754/936/609 +f 3541/431/609 3754/936/609 3753/937/610 +f 3543/690/610 3753/937/610 3752/938/611 +f 3546/435/612 3544/691/611 3752/938/611 +f 3549/438/613 3554/692/614 3749/940/614 +f 3546/441/612 3751/939/612 3750/942/615 +f 3549/693/613 3748/941/613 3557/943/616 +f 3552/694/615 3750/942/615 3749/940/614 +f 3525/408/617 3524/407/616 3557/944/616 +f 3525/410/617 3760/945/617 3759/946/618 +f 3527/687/618 3759/946/618 3758/947/619 +f 3528/688/619 3758/947/619 3556/948/620 +f 3530/417/620 3556/948/620 3757/949/621 +f 3533/420/621 3757/949/621 3756/950/622 +f 3535/423/622 3756/950/622 3755/934/608 +f 3570/951/559 3761/954/623 3765/952/623 +f 3761/954/623 3572/956/624 3766/955/624 +f 3572/956/624 3763/958/561 3573/957/561 +f 3763/958/561 3571/960/625 3574/959/625 +f 3571/960/625 3762/1168/626 3575/961/626 +f 3762/962/626 3570/951/559 3764/953/559 +f 3606/511/565 3892/990/565 3890/964/563 +f 3592/493/564 3893/967/564 3891/965/562 +f 3576/473/567 3894/968/567 3892/966/565 +f 3593/494/566 3895/969/566 3893/967/564 +f 3579/476/569 3896/970/569 3894/968/567 +f 3595/497/568 3897/971/568 3895/969/566 +f 3582/480/570 3898/972/570 3896/970/569 +f 3598/501/571 3899/973/571 3897/971/568 +f 3584/482/572 3900/974/572 3898/972/570 +f 3600/503/573 3901/975/573 3899/973/571 +f 3585/483/558 3902/976/558 3900/974/572 +f 3604/507/560 3904/978/560 3901/975/573 +f 3587/486/559 3905/979/559 3902/976/558 +f 3603/506/563 3890/964/563 3903/977/561 +f 3601/504/561 3903/977/561 3904/978/560 +f 3589/489/562 3891/965/562 3905/979/559 +f 3591/492/616 3590/718/613 3775/997/613 +f 3591/495/616 3774/998/616 3773/999/617 +f 3594/498/617 3773/999/617 3772/1000/618 +f 3597/500/619 3596/719/618 3772/1000/618 +f 3599/502/620 3597/720/619 3771/1001/619 +f 3607/721/622 3768/1006/622 3767/1003/608 +f 3599/508/620 3770/1002/620 3769/1004/621 +f 3577/510/607 3602/722/608 3767/1003/608 +f 3605/723/621 3769/1004/621 3768/1006/622 +f 3577/474/607 3610/1169/607 3779/1007/609 +f 3578/477/609 3779/1007/609 3609/1008/610 +f 3580/716/610 3609/1008/610 3778/1009/611 +f 3581/717/611 3778/1009/611 3608/1010/612 +f 3583/484/612 3608/1010/612 3777/1011/615 +f 3586/487/615 3777/1011/615 3776/1012/614 +f 3588/490/614 3776/1012/614 3775/997/613 +f 3647/561/573 3909/1039/573 3907/1013/571 +f 3633/544/572 3910/1016/572 3908/1014/570 +f 3617/524/560 3911/1017/560 3909/1015/573 +f 3634/545/558 3912/1018/558 3910/1016/572 +f 3620/527/561 3913/1019/561 3911/1017/560 +f 3637/549/559 3914/1020/559 3912/1018/558 +f 3623/531/563 3915/1021/563 3913/1019/561 +f 3639/551/562 3916/1022/562 3914/1020/559 +f 3625/533/565 3917/1023/565 3915/1021/563 +f 3641/553/564 3918/1024/564 3916/1022/562 +f 3626/534/567 3919/1025/567 3917/1023/565 +f 3645/557/566 3921/1027/566 3918/1024/564 +f 3628/537/569 3922/1028/569 3919/1025/567 +f 3644/556/571 3907/1013/571 3920/1026/568 +f 3642/554/568 3920/1026/568 3921/1027/566 +f 3630/540/570 3908/1014/570 3922/1028/569 +f 3631/741/611 3787/1062/611 3649/1046/612 +f 3632/546/612 3649/1046/612 3786/1047/615 +f 3635/742/615 3786/1047/615 3785/1048/614 +f 3636/743/614 3785/1048/614 3784/1049/613 +f 3640/552/616 3638/744/613 3784/1049/613 +f 3648/745/618 3781/1054/618 3780/1051/619 +f 3640/558/616 3783/1050/616 3782/1052/617 +f 3643/746/619 3780/1051/619 3651/1053/620 +f 3646/747/617 3782/1052/617 3781/1054/618 +f 3619/526/621 3618/525/620 3651/1055/620 +f 3619/528/621 3792/1056/621 3791/1057/622 +f 3621/739/622 3791/1057/622 3790/1058/608 +f 3622/740/608 3790/1058/608 3650/1059/607 +f 3624/535/607 3650/1059/607 3789/1060/609 +f 3627/538/609 3789/1060/609 3788/1061/610 +f 3629/541/610 3788/1061/610 3787/1062/611 +f 3688/612/572 3926/1089/572 3924/1063/570 +f 3674/594/573 3927/1066/573 3925/1064/571 +f 3658/574/558 3928/1067/558 3926/1065/572 +f 3675/595/560 3929/1068/560 3927/1066/573 +f 3661/577/559 3930/1069/559 3928/1067/558 +f 3677/598/561 3931/1070/561 3929/1068/560 +f 3664/581/562 3932/1071/562 3930/1069/559 +f 3680/602/563 3933/1072/563 3931/1070/561 +f 3666/583/564 3934/1073/564 3932/1071/562 +f 3682/604/565 3935/1074/565 3933/1072/563 +f 3667/584/566 3936/1075/566 3934/1073/564 +f 3686/608/567 3938/1077/567 3935/1074/565 +f 3669/587/568 3939/1078/568 3936/1075/566 +f 3685/607/570 3924/1063/570 3937/1076/569 +f 3683/605/569 3937/1076/569 3938/1077/567 +f 3671/590/571 3925/1064/571 3939/1078/568 +f 3673/593/620 3672/765/619 3800/1096/619 +f 3673/596/620 3690/1097/620 3799/1098/621 +f 3676/599/621 3799/1098/621 3798/1099/622 +f 3679/601/608 3678/766/622 3798/1099/622 +f 3679/767/608 3797/1100/608 3796/1101/607 +f 3689/768/610 3794/1105/610 3793/1102/611 +f 3687/610/609 3681/609/607 3796/1101/607 +f 3659/611/612 3684/769/611 3793/1102/611 +f 3687/613/609 3795/1103/609 3794/1105/610 +f 3660/576/615 3659/575/612 3692/1106/612 +f 3660/578/615 3805/1107/615 3804/1108/614 +f 3663/580/613 3662/763/614 3804/1108/614 +f 3663/764/613 3803/1109/613 3691/1110/616 +f 3665/585/616 3691/1110/616 3802/1111/617 +f 3668/588/617 3802/1111/617 3801/1112/618 +f 3670/591/618 3801/1112/618 3800/1096/619 +f 3707/1113/561 3806/1116/625 3810/1114/625 +f 3806/1116/625 3706/1118/626 3811/1117/626 +f 3706/1118/626 3705/1120/559 3708/1119/559 +f 3705/1120/559 3808/1122/623 3709/1121/623 +f 3808/1122/623 3807/1170/624 3710/1123/624 +f 3807/1124/624 3707/1113/561 3809/1115/561 +f 3717/1126/568 3812/1129/678 3816/1127/678 +f 3812/1129/678 3719/1131/679 3817/1130/679 +f 3719/1131/679 3814/1133/569 3720/1132/569 +f 3814/1133/569 3718/1135/680 3721/1134/680 +f 3718/1135/680 3813/1171/681 3722/1136/681 +f 3813/1137/681 3717/1126/568 3815/1128/568 +f 3729/1139/569 3818/1142/680 3822/1140/680 +f 3818/1142/680 3731/1144/681 3823/1143/681 +f 3731/1144/681 3820/1146/568 3732/1145/568 +f 3820/1146/568 3730/1148/678 3733/1147/678 +f 3730/1148/678 3819/1172/679 3734/1149/679 +f 3819/1150/679 3729/1139/569 3821/1141/569 +o Huge_Missile +v 0.923880 8.500000 0.382684 +v 0.618718 8.500000 0.618719 +v 0.808395 8.500000 0.334848 +v -0.707107 8.500000 -0.707107 +v -0.808395 8.500000 -0.334848 +v -0.923880 8.500000 -0.382683 +v 0.382683 8.500000 0.923880 +v 0.707107 8.500000 0.707107 +v -0.382683 8.500000 -0.923880 +v -0.618718 8.500000 -0.618719 +v 0.000000 8.500000 0.875000 +v 0.334848 8.500000 0.808394 +v 0.000000 8.500000 -1.000000 +v 0.334848 8.500000 -0.808395 +v 0.000000 8.500000 -0.875000 +v -0.334848 8.500000 -0.808394 +v -0.382683 8.500000 0.923880 +v 0.000000 8.500000 1.000000 +v 0.707107 8.500000 -0.707107 +v 0.382683 8.500000 -0.923880 +v -0.707107 8.500000 0.707107 +v -0.334848 8.500000 0.808394 +v 0.808394 8.500000 -0.334848 +v 0.618718 8.500000 -0.618719 +v -0.923880 8.500000 0.382684 +v -0.618718 8.500000 0.618719 +v 0.923879 8.500000 -0.382684 +v 0.875000 8.500000 0.000000 +v -1.000000 8.500000 0.000000 +v -0.808395 8.500000 0.334848 +v 1.000000 8.500000 0.000000 +v 0.265165 2.000000 -0.359835 +v -0.265165 2.000000 -0.359835 +v -0.265165 2.000000 -0.890165 +v -0.875000 8.500000 0.000000 +v 1.000000 8.250000 0.000000 +v 0.808395 8.250000 0.334848 +v 0.923880 8.250000 0.382684 +v 0.923879 8.250000 -0.382684 +v 0.875000 8.250000 0.000000 +v 0.707107 8.250000 -0.707107 +v 0.808394 8.250000 -0.334848 +v 0.382683 8.250000 -0.923880 +v 0.618718 8.250000 -0.618719 +v 0.000000 8.250000 -1.000000 +v 0.334848 8.250000 -0.808395 +v -0.382683 8.250000 -0.923880 +v 0.000000 8.250000 -0.875000 +v -0.618718 8.250000 -0.618719 +v -0.334848 8.250000 -0.808394 +v -0.707107 8.250000 -0.707107 +v -0.808395 8.250000 -0.334848 +v -0.923880 8.250000 -0.382683 +v -0.875000 8.250000 0.000000 +v -1.000000 8.250000 0.000000 +v -0.808395 8.250000 0.334848 +v -0.923880 8.250000 0.382684 +v -0.618718 8.250000 0.618719 +v -0.382683 8.250000 0.923880 +v -0.707107 8.250000 0.707107 +v 0.000000 8.250000 0.875000 +v -0.334848 8.250000 0.808394 +v 0.382683 8.250000 0.923880 +v 0.000000 8.250000 1.000000 +v 0.707107 8.250000 0.707107 +v 0.334848 8.250000 0.808394 +v 0.618718 8.250000 0.618719 +v -0.883883 2.500000 -0.883883 +v 0.883883 2.500000 -0.883884 +v 0.883883 2.500000 0.883884 +v 1.502602 2.375000 -1.502602 +v 0.839689 2.375000 -0.751301 +v 0.751301 2.375000 -0.839689 +v 0.839689 5.375000 -0.751301 +v 1.502602 3.375000 -1.502602 +v 0.751301 5.375000 -0.839689 +v 0.265165 2.000000 0.890165 +v -0.265165 2.000000 0.890165 +v -0.265165 2.000000 0.359835 +v 0.890165 2.000000 0.265165 +v 0.359835 2.000000 0.265165 +v 0.359835 2.000000 -0.265165 +v -0.359835 2.000000 0.265165 +v -0.890165 2.000000 0.265165 +v -0.890165 2.000000 -0.265165 +v -1.502602 2.375000 1.502602 +v -0.839689 2.375000 0.751301 +v -0.751301 2.375000 0.839689 +v -0.839689 5.375000 0.751301 +v -1.502602 3.375000 1.502602 +v -0.751301 5.375000 0.839689 +v -1.502602 2.375000 -1.502602 +v -0.751301 2.375000 -0.839689 +v -0.839689 2.375000 -0.751301 +v -0.751301 5.375000 -0.839689 +v -1.502602 3.375000 -1.502602 +v -0.839689 5.375000 -0.751301 +v 1.502602 2.375000 1.502601 +v 0.751301 2.375000 0.839689 +v 0.839689 2.375000 0.751301 +v 0.751301 5.375000 0.839689 +v 1.502602 3.375000 1.502601 +v 0.839689 5.375000 0.751301 +v -0.143506 2.000000 -0.971455 +v 0.265165 2.000000 -0.890165 +v 0.000000 2.000000 -1.000000 +v 0.143506 2.000000 -0.971455 +v 0.346455 2.000000 -0.768507 +v 0.375000 2.000000 -0.625000 +v 0.346455 2.000000 -0.481493 +v 0.143506 2.000000 -0.278545 +v 0.000000 2.000000 -0.250000 +v -0.143506 2.000000 -0.278545 +v -0.346455 2.000000 -0.481494 +v -0.375000 2.000000 -0.625000 +v -0.346455 2.000000 -0.768506 +v -0.478354 2.500000 -1.154850 +v 0.000000 2.500000 -1.250000 +v 0.478354 2.500000 -1.154850 +v 1.154849 2.500000 -0.478354 +v 1.250000 2.500000 0.000000 +v 1.154849 2.500000 0.478354 +v 0.478354 2.500000 1.154850 +v 0.000000 2.500000 1.250000 +v -0.478354 2.500000 1.154850 +v -0.883883 2.500000 0.883883 +v -1.154849 2.500000 0.478354 +v -1.250000 2.500000 0.000000 +v -1.154849 2.500000 -0.478354 +v -0.143506 2.000000 0.278545 +v 0.265165 2.000000 0.359835 +v 0.000000 2.000000 0.250000 +v 0.143506 2.000000 0.278545 +v 0.346455 2.000000 0.481493 +v 0.375000 2.000000 0.625000 +v 0.346455 2.000000 0.768507 +v 0.143506 2.000000 0.971455 +v 0.000000 2.000000 1.000000 +v -0.143506 2.000000 0.971455 +v -0.346455 2.000000 0.768506 +v -0.375000 2.000000 0.625000 +v -0.346455 2.000000 0.481494 +v 0.481494 2.000000 -0.346455 +v 0.890165 2.000000 -0.265165 +v 0.625000 2.000000 -0.375000 +v 0.768506 2.000000 -0.346455 +v 0.971455 2.000000 -0.143507 +v 1.000000 2.000000 0.000000 +v 0.971455 2.000000 0.143507 +v 0.768506 2.000000 0.346455 +v 0.625000 2.000000 0.375000 +v 0.481494 2.000000 0.346455 +v 0.278545 2.000000 0.143506 +v 0.250000 2.000000 0.000000 +v 0.278545 2.000000 -0.143506 +v -0.768506 2.000000 -0.346455 +v -0.359835 2.000000 -0.265165 +v -0.625000 2.000000 -0.375000 +v -0.481494 2.000000 -0.346455 +v -0.278545 2.000000 -0.143507 +v -0.250000 2.000000 0.000000 +v -0.278545 2.000000 0.143507 +v -0.481494 2.000000 0.346455 +v -0.625000 2.000000 0.375000 +v -0.768506 2.000000 0.346455 +v -0.971455 2.000000 0.143506 +v -1.000000 2.000000 0.000000 +v -0.971455 2.000000 -0.143506 +v -1.250000 7.250000 0.000000 +v -1.154849 7.250000 0.478354 +v -0.707107 11.500000 -0.707107 +v -0.334848 13.000000 -0.808394 +v -0.382683 11.500000 -0.923880 +v 0.707107 11.500000 0.707107 +v 0.334848 13.000000 0.808394 +v 0.382683 11.500000 0.923880 +v -0.923880 11.500000 -0.382683 +v -0.618718 13.000000 -0.618719 +v 0.923880 11.500000 0.382684 +v 0.618718 13.000000 0.618719 +v -1.000000 11.500000 0.000000 +v -0.808395 13.000000 -0.334848 +v 0.875000 13.000000 0.000000 +v 0.808395 13.000000 0.334848 +v -0.923880 11.500000 0.382684 +v -0.875000 13.000000 0.000000 +v 0.923879 11.500000 -0.382684 +v 1.000000 11.500000 0.000000 +v -0.707107 11.500000 0.707107 +v -0.808395 13.000000 0.334848 +v 0.707107 11.500000 -0.707107 +v 0.808394 13.000000 -0.334848 +v -0.382683 11.500000 0.923880 +v -0.618718 13.000000 0.618719 +v 0.382683 11.500000 -0.923880 +v 0.618718 13.000000 -0.618719 +v 0.000000 11.500000 1.000000 +v -0.334848 13.000000 0.808394 +v 0.000000 13.000000 -0.875000 +v 0.000000 11.500000 -1.000000 +v 0.334848 13.000000 -0.808395 +v 0.000000 13.000000 0.875000 +v 1.154849 7.250000 0.478354 +v 1.250000 7.250000 0.000000 +v 0.000000 15.499999 0.000001 +v -1.154849 7.250000 -0.478354 +v 0.883883 7.250000 0.883884 +v -0.883883 7.250000 -0.883883 +v 0.478354 7.250000 1.154850 +v -0.478354 7.250000 -1.154850 +v 0.000000 7.250000 1.250000 +v 0.478354 7.250000 -1.154850 +v 0.000000 7.250000 -1.250000 +v -0.478354 7.250000 1.154850 +v 0.883883 7.250000 -0.883884 +v 0.346455 2.250000 -0.481493 +v 0.176777 2.500000 -0.448223 +v 0.265165 2.250000 -0.359835 +v 0.143506 2.250000 -0.278545 +v 0.095671 2.500000 -0.394030 +v 0.000000 2.500000 -0.375000 +v 0.000000 2.250000 -0.250000 +v -0.143506 2.250000 -0.278545 +v -0.095671 2.500000 -0.394030 +v -0.176777 2.500000 -0.448223 +v -0.265165 2.250000 -0.359835 +v -0.230970 2.500000 -0.529329 +v -0.346455 2.250000 -0.481494 +v -0.250000 2.500000 -0.625000 +v -0.375000 2.250000 -0.625000 +v -0.230970 2.500000 -0.720671 +v -0.346455 2.250000 -0.768506 +v -0.176777 2.500000 -0.801777 +v -0.265165 2.250000 -0.890165 +v -0.143506 2.250000 -0.971455 +v -0.095671 2.500000 -0.855970 +v 0.000000 2.500000 -0.875000 +v 0.000000 2.250000 -1.000000 +v 0.095671 2.500000 -0.855970 +v 0.143506 2.250000 -0.971455 +v 0.176777 2.500000 -0.801777 +v 0.265165 2.250000 -0.890165 +v 0.346455 2.250000 -0.768507 +v 0.230970 2.500000 -0.720671 +v 0.375000 2.250000 -0.625000 +v 0.250000 2.500000 -0.625000 +v 0.230970 2.500000 -0.529329 +v 1.154849 7.250000 -0.478354 +v -0.883883 7.250000 0.883883 +v 0.717107 9.313000 -0.717107 +v 0.392683 10.500000 -0.933880 +v 0.717107 10.500000 -0.717107 +v 0.933879 9.313000 -0.392684 +v 0.933879 10.500000 -0.392684 +v 1.010000 9.313000 -0.010000 +v 1.010000 10.500000 -0.010000 +v 0.346455 2.250000 0.768507 +v 0.176777 2.500000 0.801777 +v 0.265165 2.250000 0.890165 +v 0.143506 2.250000 0.971455 +v 0.095671 2.500000 0.855970 +v 0.000000 2.500000 0.875000 +v 0.000000 2.250000 1.000000 +v -0.143506 2.250000 0.971455 +v -0.095671 2.500000 0.855970 +v -0.176777 2.500000 0.801777 +v -0.265165 2.250000 0.890165 +v -0.230970 2.500000 0.720671 +v -0.346455 2.250000 0.768506 +v -0.250000 2.500000 0.625000 +v -0.375000 2.250000 0.625000 +v -0.346455 2.250000 0.481494 +v -0.230970 2.500000 0.529329 +v -0.176777 2.500000 0.448223 +v -0.265165 2.250000 0.359835 +v -0.143506 2.250000 0.278545 +v -0.095671 2.500000 0.394030 +v 0.000000 2.250000 0.250000 +v 0.000000 2.500000 0.375000 +v 0.095671 2.500000 0.394030 +v 0.143506 2.250000 0.278545 +v 0.265165 2.250000 0.359835 +v 0.176777 2.500000 0.448223 +v 0.346455 2.250000 0.481493 +v 0.230970 2.500000 0.529329 +v 0.375000 2.250000 0.625000 +v 0.250000 2.500000 0.625000 +v 0.230970 2.500000 0.720671 +v 0.971455 2.250000 0.143507 +v 0.801777 2.500000 0.176777 +v 0.890165 2.250000 0.265165 +v 0.768506 2.250000 0.346455 +v 0.720671 2.500000 0.230970 +v 0.625000 2.500000 0.250000 +v 0.625000 2.250000 0.375000 +v 0.481494 2.250000 0.346455 +v 0.529329 2.500000 0.230970 +v 0.448223 2.500000 0.176777 +v 0.359835 2.250000 0.265165 +v 0.394030 2.500000 0.095671 +v 0.278545 2.250000 0.143506 +v 0.375000 2.500000 0.000000 +v 0.250000 2.250000 0.000000 +v 0.278545 2.250000 -0.143506 +v 0.394030 2.500000 -0.095671 +v 0.448223 2.500000 -0.176777 +v 0.359835 2.250000 -0.265165 +v 0.481494 2.250000 -0.346455 +v 0.529329 2.500000 -0.230970 +v 0.625000 2.500000 -0.250000 +v 0.625000 2.250000 -0.375000 +v 0.720671 2.500000 -0.230970 +v 0.768506 2.250000 -0.346455 +v 0.801777 2.500000 -0.176777 +v 0.890165 2.250000 -0.265165 +v 0.971455 2.250000 -0.143507 +v 0.855970 2.500000 -0.095671 +v 1.000000 2.250000 0.000000 +v 0.875000 2.500000 0.000000 +v 0.855970 2.500000 0.095671 +v -0.278545 2.250000 0.143507 +v -0.448223 2.500000 0.176777 +v -0.359835 2.250000 0.265165 +v -0.481494 2.250000 0.346455 +v -0.529329 2.500000 0.230970 +v -0.625000 2.500000 0.250000 +v -0.625000 2.250000 0.375000 +v -0.768506 2.250000 0.346455 +v -0.720671 2.500000 0.230970 +v -0.801777 2.500000 0.176777 +v -0.890165 2.250000 0.265165 +v -0.855970 2.500000 0.095671 +v -0.971455 2.250000 0.143506 +v -0.875000 2.500000 0.000000 +v -1.000000 2.250000 0.000000 +v -0.971455 2.250000 -0.143506 +v -0.855970 2.500000 -0.095671 +v -0.801777 2.500000 -0.176777 +v -0.890165 2.250000 -0.265165 +v -0.768506 2.250000 -0.346455 +v -0.720671 2.500000 -0.230970 +v -0.625000 2.500000 -0.250000 +v -0.625000 2.250000 -0.375000 +v -0.529329 2.500000 -0.230970 +v -0.481494 2.250000 -0.346455 +v -0.448223 2.500000 -0.176777 +v -0.359835 2.250000 -0.265165 +v -0.278545 2.250000 -0.143507 +v -0.394030 2.500000 -0.095671 +v -0.250000 2.250000 0.000000 +v -0.375000 2.500000 0.000000 +v -0.394030 2.500000 0.095671 +v -0.717106 9.313000 0.717107 +v -0.392683 10.500000 0.933880 +v -0.717106 10.500000 0.717107 +v -0.933879 9.313000 0.392684 +v -0.933879 10.500000 0.392684 +v -1.010000 9.313000 0.010000 +v -1.010000 10.500000 0.010000 +v 0.392683 9.313000 -0.933880 +v -0.392683 9.313000 0.933880 +vt 0.291667 0.471698 +vt 0.250000 0.462264 +vt 0.291667 0.462264 +vt 0.583333 0.471698 +vt 0.625000 0.462264 +vt 0.625000 0.471698 +vt 0.208333 0.471698 +vt 0.250000 0.471698 +vt 0.541667 0.471698 +vt 0.583333 0.462264 +vt 0.166667 0.462264 +vt 0.208333 0.462264 +vt 0.500000 0.471698 +vt 0.458333 0.462264 +vt 0.500000 0.462264 +vt 0.541667 0.462264 +vt 0.125000 0.471698 +vt 0.166667 0.471698 +vt 0.416667 0.471698 +vt 0.458333 0.471698 +vt 0.083333 0.471698 +vt 0.125000 0.462264 +vt 0.375000 0.462264 +vt 0.416667 0.462264 +vt 0.041667 0.471698 +vt 0.083333 0.462264 +vt 0.375000 0.471698 +vt 0.333333 0.462264 +vt -0.000000 0.471698 +vt 0.041667 0.462264 +vt 0.333333 0.471698 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.666667 0.462264 +vt 0.666667 0.471698 +vt 0.333333 0.433962 +vt 0.291667 0.443396 +vt 0.291667 0.433962 +vt 0.375000 0.433962 +vt 0.333333 0.443396 +vt 0.416667 0.433962 +vt 0.375000 0.443396 +vt 0.458333 0.433962 +vt 0.416667 0.443396 +vt 0.500000 0.433962 +vt 0.458333 0.443396 +vt 0.541667 0.433962 +vt 0.500000 0.443396 +vt 0.583333 0.443396 +vt 0.541667 0.443396 +vt 0.583333 0.433962 +vt 0.625000 0.443396 +vt 0.625000 0.433962 +vt 0.666667 0.443396 +vt 0.000000 0.433962 +vt 0.041667 0.443396 +vt 0.000000 0.443396 +vt 0.041667 0.433962 +vt 0.083333 0.443396 +vt 0.125000 0.433962 +vt 0.083333 0.433962 +vt 0.166667 0.443396 +vt 0.125000 0.443396 +vt 0.208333 0.433962 +vt 0.166667 0.433962 +vt 0.250000 0.433962 +vt 0.208333 0.443396 +vt 0.250000 0.443396 +vt 0.903652 0.461671 +vt 0.903652 0.594933 +vt 0.707459 0.594933 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.000000 0.462264 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.666667 0.433962 +vt 0.933724 0.492241 +vt 0.944284 0.528302 +vt 0.933724 0.564363 +vt 0.858645 0.615360 +vt 0.805556 0.622533 +vt 0.752466 0.615360 +vt 0.677387 0.564362 +vt 0.666827 0.528302 +vt 0.677387 0.492241 +vt 0.707459 0.461671 +vt 0.752466 0.441244 +vt 0.805556 0.434071 +vt 0.858645 0.441244 +vt 0.888889 0.231132 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt -0.000000 0.358491 +vt 0.055556 0.000000 +vt 0.055556 0.358491 +vt 0.583333 0.698113 +vt 0.541667 0.811321 +vt 0.541667 0.698113 +vt 0.250000 0.698113 +vt 0.208333 0.811321 +vt 0.208333 0.698113 +vt 0.625000 0.698113 +vt 0.583333 0.811321 +vt 0.291667 0.698113 +vt 0.250000 0.811321 +vt 0.666667 0.698113 +vt 0.625000 0.811321 +vt 0.326389 0.811321 +vt 0.291667 0.811321 +vt 0.041667 0.698113 +vt 0.000000 0.811321 +vt -0.000000 0.698113 +vt 0.375000 0.698113 +vt 0.333333 0.811321 +vt 0.333333 0.698113 +vt 0.083333 0.698113 +vt 0.041667 0.811321 +vt 0.416667 0.698113 +vt 0.375000 0.811321 +vt 0.125000 0.698113 +vt 0.083333 0.811321 +vt 0.458333 0.698113 +vt 0.416667 0.811321 +vt 0.166667 0.698113 +vt 0.125000 0.811321 +vt 0.500000 0.811321 +vt 0.500000 0.698113 +vt 0.458333 0.811321 +vt 0.166667 0.811321 +vt 0.388889 0.358491 +vt 0.444444 0.000000 +vt 0.444444 0.358491 +vt 0.576389 0.811321 +vt 0.562500 1.000000 +vt 0.618056 0.811321 +vt 0.604167 1.000000 +vt 0.659722 0.811321 +vt 0.645833 1.000000 +vt 0.034722 0.811321 +vt 0.020833 1.000000 +vt 0.076389 0.811321 +vt 0.062500 1.000000 +vt 0.118056 0.811321 +vt 0.104167 1.000000 +vt 0.159722 0.811321 +vt 0.145833 1.000000 +vt 0.194444 0.811321 +vt 0.187500 1.000000 +vt 0.243056 0.811321 +vt 0.229167 1.000000 +vt 0.284722 0.811321 +vt 0.270833 1.000000 +vt 0.312500 1.000000 +vt 0.368056 0.811321 +vt 0.354167 1.000000 +vt 0.409722 0.811321 +vt 0.395833 1.000000 +vt 0.451389 0.811321 +vt 0.437500 1.000000 +vt 0.493056 0.811321 +vt 0.479167 1.000000 +vt 0.534722 0.811321 +vt 0.520833 1.000000 +vt 0.833333 0.358491 +vt 0.888889 0.000000 +vt 0.888889 0.358491 +vt 0.333333 0.358491 +vt 0.388889 -0.000000 +vt 0.777778 0.358491 +vt 0.833333 0.000000 +vt 0.277778 0.358491 +vt 0.333333 -0.000000 +vt 0.722222 0.358491 +vt 0.777778 0.000000 +vt 0.222222 0.358491 +vt 0.277778 0.000000 +vt 0.611111 0.358491 +vt 0.666667 0.000000 +vt 0.666667 0.358491 +vt 0.729167 0.000000 +vt 0.166667 0.358491 +vt 0.222222 -0.000000 +vt 0.555556 0.358491 +vt 0.611111 0.000000 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.660377 +vt 0.819444 0.641509 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.555556 0.433962 +vt 0.611111 0.433962 +vt 0.500000 0.000000 +vt 0.500000 0.358491 +vt 0.166667 0.433962 +vt 0.111111 0.358491 +vt 0.500000 0.433962 +vt 0.055556 0.433962 +vt 0.111111 0.433962 +vt 0.444444 0.433962 +vt 0.833333 0.433962 +vt 0.888889 0.433962 +vt 0.333333 0.433962 +vt 0.388889 0.433962 +vt 0.777778 0.433962 +vt 0.722222 0.433962 +vt 0.222222 0.433962 +vt 0.277778 0.433962 +vt 0.666667 0.433962 +vt 0.166667 -0.000000 +vt 0.555556 -0.000000 +vt 0.111111 -0.000000 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.641509 +vt 0.777778 0.660377 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.641509 +vt 0.750000 0.660377 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.000000 0.000000 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.6325 0.4472 -0.6325 +vn 0.7498 -0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn -0.6325 0.4472 0.6325 +vn -0.7498 0.0000 -0.6616 +vn 0.6616 -0.0000 0.7498 +vn -0.6325 0.4472 -0.6325 +vn 0.6616 0.0000 -0.7498 +vn -0.7498 -0.0000 0.6616 +vn 0.6325 0.4472 0.6325 +vn -0.6616 0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn -1.0000 0.0000 0.0000 +vn -0.9239 -0.0000 0.3827 +vn -0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 -0.9207 +vn 0.7047 0.0830 0.7047 +vn 0.3814 0.0830 0.9207 +vn -0.9207 0.0830 -0.3814 +vn 0.9207 0.0830 0.3814 +vn -0.9965 0.0830 0.0000 +vn 0.9965 0.0830 -0.0000 +vn -0.9207 0.0830 0.3814 +vn 0.9207 0.0830 -0.3814 +vn -0.7047 0.0830 0.7047 +vn 0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 0.9207 +vn 0.3814 0.0830 -0.9207 +vn -0.0000 0.0830 0.9965 +vn -0.0000 0.0830 -0.9965 +vn 0.9239 -0.0000 0.3827 +vn 1.0000 -0.0000 -0.0000 +vn -0.3612 0.3304 -0.8720 +vn -0.6674 0.3304 -0.6674 +vn -0.8720 0.3304 -0.3612 +vn -0.9439 0.3304 -0.0000 +vn -0.8720 0.3304 0.3612 +vn -0.6674 0.3304 0.6674 +vn -0.3612 0.3304 0.8720 +vn 0.0000 0.3304 0.9439 +vn 0.3612 0.3304 0.8720 +vn 0.6674 0.3304 0.6674 +vn 0.8720 0.3304 0.3612 +vn 0.9439 0.3304 -0.0000 +vn 0.8720 0.3304 -0.3612 +vn 0.6674 0.3304 -0.6674 +vn 0.3612 0.3304 -0.8720 +vn -0.0000 0.3304 -0.9439 +vn -0.9239 0.0000 -0.3827 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 -0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.0000 -0.0000 1.0000 +vn 0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 -0.0000 0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.8263 0.4472 0.3423 +vn 0.3423 0.4472 0.8263 +vn 0.0000 0.4472 0.8944 +vn -0.3423 0.4472 0.8263 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.3423 0.4472 -0.8263 +vn -0.0000 0.4472 -0.8944 +vn 0.3423 0.4472 -0.8263 +vn 0.8263 0.4472 -0.3423 +vn 0.8944 0.4472 0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.9239 0.0000 -0.3827 +vn 0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 -0.8963 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn 0.8963 0.2425 -0.3713 +vn -0.8963 0.2425 0.3713 +vn 0.9701 0.2425 -0.0000 +vn -0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn -0.8963 0.2425 -0.3713 +vn 0.6860 0.2425 0.6860 +vn -0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 0.8963 +vn -0.3713 0.2425 -0.8963 +vn -0.0000 0.2425 0.9701 +vn 0.0000 0.2425 -0.9701 +vn 0.5556 0.0000 -0.8315 +vn 0.9808 0.0000 -0.1951 +vn -0.5556 -0.0000 0.8315 +vn -0.9808 -0.0000 0.1951 +s off +f 3941/1173/682 3942/1174/682 3943/1175/682 +f 3944/1176/682 3945/1177/682 3946/1178/682 +f 3947/1179/682 3942/1174/682 3948/1180/682 +f 3949/1181/682 3950/1182/682 3944/1176/682 +f 3947/1179/682 3951/1183/682 3952/1184/682 +f 3953/1185/682 3954/1186/682 3955/1187/682 +f 3949/1181/682 3955/1187/682 3956/1188/682 +f 3957/1189/682 3951/1183/682 3958/1190/682 +f 3959/1191/682 3954/1186/682 3960/1192/682 +f 3961/1193/682 3962/1194/682 3957/1189/682 +f 3959/1191/682 3963/1195/682 3964/1196/682 +f 3965/1197/682 3966/1198/682 3961/1193/682 +f 3967/1199/682 3968/1200/682 3963/1195/682 +f 3969/1201/682 3970/1202/682 3965/1197/682 +f 3971/1203/682 3943/1175/682 3968/1200/682 +f 3972/1204/682 3973/1205/682 3974/1206/682 +f 3946/1178/682 3975/1207/682 3969/1208/682 +f 3976/1209/683 3977/1210/683 3978/1211/683 +f 3979/1212/683 3980/1213/683 3976/1209/683 +f 3981/1214/683 3982/1215/683 3979/1212/683 +f 3983/1216/683 3984/1217/683 3981/1214/683 +f 3985/1218/683 3986/1219/683 3983/1216/683 +f 3987/1220/683 3988/1221/683 3985/1218/683 +f 3987/1220/683 3989/1222/683 3990/1223/683 +f 3991/1224/683 3992/1225/683 3989/1222/683 +f 3993/1226/683 3994/1227/683 3992/1225/683 +f 3995/1228/683 3996/1229/683 3994/1230/683 +f 3997/1231/683 3998/1232/683 3996/1229/683 +f 3999/1233/683 3998/1232/683 4000/1234/683 +f 3999/1233/683 4001/1235/683 4002/1236/683 +f 4003/1237/683 4001/1235/683 4004/1238/683 +f 4005/1239/683 4006/1240/683 4003/1237/683 +f 3978/1211/683 4007/1241/683 4005/1239/683 +f 4008/1242/682 4009/1243/682 4010/1244/682 +f 4011/1245/682 4012/1246/682 4013/1247/682 +f 4014/1248/684 4015/1249/684 4016/1250/684 +f 4012/1246/685 4015/1251/685 4014/1248/685 +f 4013/1252/686 4015/1251/686 4011/1245/686 +f 4017/1253/682 4018/1254/682 4019/1255/682 +f 4020/1256/682 4021/1257/682 4022/1258/682 +f 4023/1259/682 4024/1260/682 4025/1261/682 +f 4026/1262/682 4027/1263/682 4028/1264/682 +f 4029/1265/687 4030/1266/687 4031/1267/687 +f 4027/1263/688 4030/1268/688 4029/1265/688 +f 4028/1269/689 4030/1268/689 4026/1262/689 +f 4032/1270/682 4033/1271/682 4034/1272/682 +f 4035/1273/690 4036/1274/690 4037/1275/690 +f 4033/1271/691 4036/1276/691 4035/1273/691 +f 4034/1277/692 4036/1276/692 4032/1270/692 +f 4038/1278/682 4039/1279/682 4040/1280/682 +f 4041/1281/693 4042/1282/693 4043/1283/693 +f 4039/1279/694 4042/1284/694 4041/1281/694 +f 4040/1285/695 4042/1284/695 4038/1278/695 +f 3941/1173/682 3948/1180/682 3942/1174/682 +f 3944/1176/682 3950/1182/682 3945/1177/682 +f 3947/1179/682 3952/1184/682 3942/1174/682 +f 3949/1181/682 3956/1188/682 3950/1182/682 +f 3947/1179/682 3958/1190/682 3951/1183/682 +f 3953/1185/682 3960/1192/682 3954/1186/682 +f 3949/1181/682 3953/1185/682 3955/1187/682 +f 3957/1189/682 3962/1194/682 3951/1183/682 +f 3959/1191/682 3964/1196/682 3954/1186/682 +f 3961/1193/682 3966/1198/682 3962/1194/682 +f 3959/1191/682 3967/1199/682 3963/1195/682 +f 3965/1197/682 3970/1202/682 3966/1198/682 +f 3967/1199/682 3971/1203/682 3968/1200/682 +f 3969/1201/682 3975/1286/682 3970/1202/682 +f 3971/1203/682 3941/1173/682 3943/1175/682 +f 3974/1206/682 4044/1287/682 4045/1288/682 +f 4044/1287/682 4046/1289/682 4045/1288/682 +f 4046/1289/682 4047/1290/682 4045/1288/682 +f 4045/1288/682 4048/1291/682 4049/1292/682 +f 4049/1292/682 4050/1293/682 3972/1204/682 +f 3972/1204/682 4051/1294/682 3973/1205/682 +f 4051/1294/682 4052/1295/682 3973/1205/682 +f 4052/1295/682 4053/1296/682 3973/1205/682 +f 3973/1205/682 4054/1297/682 4055/1298/682 +f 4055/1298/682 4056/1299/682 3973/1205/682 +f 4056/1299/682 3974/1206/682 3973/1205/682 +f 4045/1288/682 4049/1292/682 3974/1206/682 +f 4049/1292/682 3972/1204/682 3974/1206/682 +f 3946/1178/682 3945/1177/682 3975/1207/682 +f 3976/1209/683 3980/1213/683 3977/1210/683 +f 3979/1212/683 3982/1215/683 3980/1213/683 +f 3981/1214/683 3984/1217/683 3982/1215/683 +f 3983/1216/683 3986/1219/683 3984/1217/683 +f 3985/1218/683 3988/1221/683 3986/1219/683 +f 3987/1220/683 3990/1223/683 3988/1221/683 +f 3987/1220/683 3991/1224/683 3989/1222/683 +f 3991/1224/683 3993/1226/683 3992/1225/683 +f 3993/1226/683 3995/1300/683 3994/1227/683 +f 3995/1228/683 3997/1231/683 3996/1229/683 +f 3997/1231/683 4000/1234/683 3998/1232/683 +f 3999/1233/683 4002/1236/683 3998/1232/683 +f 3999/1233/683 4004/1238/683 4001/1235/683 +f 4003/1237/683 4006/1240/683 4001/1235/683 +f 4005/1239/683 4007/1241/683 4006/1240/683 +f 3978/1211/683 3977/1210/683 4007/1241/683 +f 4008/1242/682 4057/1301/682 4058/1302/682 +f 4058/1302/682 4059/1303/682 4008/1242/682 +f 4059/1303/682 4009/1243/682 4008/1242/682 +f 4009/1243/682 4060/1304/682 4061/1305/682 +f 4061/1305/682 4062/1306/682 4010/1244/682 +f 4010/1244/682 4063/1307/682 4064/1308/682 +f 4064/1308/682 4065/1309/682 4066/1310/682 +f 4066/1310/682 4067/1311/682 4068/1312/682 +f 4068/1312/682 4069/1313/682 4008/1242/682 +f 4009/1243/682 4061/1305/682 4010/1244/682 +f 4010/1244/682 4064/1308/682 4008/1242/682 +f 4064/1308/682 4066/1310/682 4008/1242/682 +f 4066/1310/682 4068/1312/682 4008/1242/682 +f 4012/1246/685 4011/1245/685 4015/1251/685 +f 4013/1252/686 4016/1314/686 4015/1251/686 +f 4019/1255/682 4070/1315/682 4071/1316/682 +f 4070/1315/682 4072/1317/682 4071/1316/682 +f 4072/1317/682 4073/1318/682 4071/1316/682 +f 4071/1316/682 4074/1319/682 4075/1320/682 +f 4075/1320/682 4076/1321/682 4017/1253/682 +f 4017/1253/682 4077/1322/682 4018/1254/682 +f 4077/1322/682 4078/1323/682 4018/1254/682 +f 4078/1323/682 4079/1324/682 4018/1254/682 +f 4018/1254/682 4080/1325/682 4081/1326/682 +f 4081/1326/682 4082/1327/682 4018/1254/682 +f 4082/1327/682 4019/1255/682 4018/1254/682 +f 4071/1316/682 4075/1320/682 4019/1255/682 +f 4075/1320/682 4017/1253/682 4019/1255/682 +f 4022/1258/682 4083/1328/682 4084/1329/682 +f 4083/1328/682 4085/1330/682 4084/1329/682 +f 4085/1330/682 4086/1331/682 4084/1329/682 +f 4084/1329/682 4087/1332/682 4088/1333/682 +f 4088/1333/682 4089/1334/682 4020/1256/682 +f 4020/1256/682 4090/1335/682 4021/1257/682 +f 4090/1335/682 4091/1336/682 4021/1257/682 +f 4091/1336/682 4092/1337/682 4021/1257/682 +f 4021/1257/682 4093/1338/682 4094/1339/682 +f 4094/1339/682 4095/1340/682 4021/1257/682 +f 4095/1340/682 4022/1258/682 4021/1257/682 +f 4084/1329/682 4088/1333/682 4022/1258/682 +f 4088/1333/682 4020/1256/682 4022/1258/682 +f 4025/1261/682 4096/1341/682 4097/1342/682 +f 4096/1341/682 4098/1343/682 4097/1342/682 +f 4098/1343/682 4099/1344/682 4097/1342/682 +f 4097/1342/682 4100/1345/682 4101/1346/682 +f 4101/1346/682 4102/1347/682 4023/1259/682 +f 4023/1259/682 4103/1348/682 4024/1260/682 +f 4103/1348/682 4104/1349/682 4024/1260/682 +f 4104/1349/682 4105/1350/682 4024/1260/682 +f 4024/1260/682 4106/1351/682 4107/1352/682 +f 4107/1352/682 4108/1353/682 4024/1260/682 +f 4108/1353/682 4025/1261/682 4024/1260/682 +f 4097/1342/682 4101/1346/682 4025/1261/682 +f 4101/1346/682 4023/1259/682 4025/1261/682 +f 4027/1263/688 4026/1262/688 4030/1268/688 +f 4028/1269/689 4031/1354/689 4030/1268/689 +f 4033/1271/691 4032/1270/691 4036/1276/691 +f 4034/1277/692 4037/1355/692 4036/1276/692 +f 4039/1279/694 4038/1278/694 4042/1284/694 +f 4040/1285/695 4043/1356/695 4042/1284/695 +s 1 +f 4109/1357/696 4067/1358/697 4110/1359/697 +f 4111/1360/698 4112/1361/699 4113/1362/699 +f 4114/1363/700 4115/1364/701 4116/1365/701 +f 4117/1366/702 4118/1367/698 4111/1360/698 +f 4119/1368/703 4120/1369/700 4114/1363/700 +f 4121/1370/704 4122/1371/702 4117/1366/702 +f 4119/1368/703 4123/1372/705 4124/1373/703 +f 4125/1374/706 4126/1375/704 4121/1376/704 +f 4127/1377/707 4123/1378/705 4128/1379/705 +f 4129/1380/708 4130/1381/706 4125/1374/706 +f 4131/1382/709 4132/1383/707 4127/1377/707 +f 4133/1384/710 4134/1385/708 4129/1380/708 +f 4135/1386/711 4136/1387/709 4131/1382/709 +f 4137/1388/712 4138/1389/710 4133/1384/710 +f 4113/1362/699 4139/1390/713 4140/1391/713 +f 4140/1391/713 4141/1392/711 4135/1386/711 +f 4116/1365/701 4142/1393/712 4137/1388/712 +f 4143/1394/714 4061/1395/715 4144/1396/715 +f 4112/1361/716 4118/1397/717 4145/1398/683 +f 4118/1367/717 4122/1399/718 4145/1400/683 +f 4122/1371/718 4126/1401/719 4145/1402/683 +f 4126/1375/719 4130/1403/720 4145/1404/683 +f 4130/1381/720 4134/1405/721 4145/1406/683 +f 4134/1385/721 4138/1407/722 4145/1408/683 +f 4138/1389/722 4142/1409/723 4145/1410/683 +f 4142/1393/723 4115/1411/724 4145/1412/683 +f 4115/1364/724 4120/1413/725 4145/1414/683 +f 4120/1369/725 4124/1415/726 4145/1416/683 +f 4124/1373/726 4123/1372/727 4145/1417/683 +f 4123/1378/727 4132/1418/728 4145/1419/683 +f 4132/1383/728 4136/1420/729 4145/1421/683 +f 4136/1387/729 4141/1422/730 4145/1423/683 +f 4141/1392/730 4139/1424/731 4145/1425/683 +f 4139/1390/731 4112/1426/716 4145/1427/683 +f 4146/1428/732 4068/1429/696 4109/1430/696 +f 4147/1431/733 4062/1432/714 4143/1394/714 +f 4148/1433/734 4069/1434/732 4146/1428/732 +f 4149/1435/735 4010/1436/733 4147/1431/733 +f 4150/1437/736 4008/1438/734 4148/1433/734 +f 4151/1439/737 4063/1440/735 4149/1435/735 +f 4152/1441/738 4058/1442/739 4153/1443/739 +f 4153/1443/739 4057/1444/736 4150/1437/736 +f 4154/1445/740 4064/1446/737 4151/1439/737 +f 4155/1447/741 4059/1448/738 4152/1441/738 +f 4156/1449/742 4157/1450/693 4158/1451/693 +f 4159/1452/743 4157/1450/693 4160/1453/743 +f 4159/1452/743 4161/1454/744 4162/1455/744 +f 4163/1456/745 4161/1457/744 4164/1458/745 +f 4163/1456/745 4165/1459/687 4166/1460/687 +f 4166/1460/687 4167/1461/746 4168/1462/746 +f 4168/1462/746 4169/1463/747 4170/1464/747 +f 4170/1464/747 4171/1465/748 4172/1466/748 +f 4172/1466/748 4173/1467/690 4174/1468/690 +f 4175/1469/749 4173/1467/690 4176/1470/749 +f 4175/1469/749 4177/1471/750 4178/1472/750 +f 4178/1472/750 4179/1473/751 4180/1474/751 +f 4180/1474/751 4181/1475/684 4182/1476/684 +f 4183/1477/752 4181/1475/684 4184/1478/752 +f 4185/1479/753 4184/1478/752 4186/1480/753 +f 4056/1481/732 4174/1468/734 3974/1482/734 +f 3972/1483/733 4159/1452/735 4051/1484/735 +f 3974/1482/734 4175/1469/736 4044/1485/736 +f 4051/1484/735 4162/1455/737 4052/1486/737 +f 4046/1487/739 4180/1474/738 4047/1488/738 +f 4044/1485/736 4178/1472/739 4046/1487/739 +f 4052/1489/737 4163/1456/740 4053/1490/740 +f 4047/1488/738 4182/1476/741 4045/1491/741 +f 4053/1490/740 4166/1460/754 3973/1492/754 +f 4045/1491/741 4183/1477/755 4048/1493/755 +f 3973/1492/754 4168/1462/697 4054/1494/697 +f 4048/1493/755 4185/1479/715 4049/1495/715 +f 4054/1494/697 4170/1464/696 4055/1496/696 +f 4049/1495/715 4156/1449/714 4050/1497/714 +f 4055/1496/696 4172/1466/732 4056/1481/732 +f 4050/1497/714 4158/1451/733 3972/1483/733 +f 4185/1479/753 4187/1498/742 4156/1449/742 +f 3981/1499/756 4152/1441/757 3983/1500/757 +f 4144/1396/715 4060/1501/755 4188/1502/755 +f 3956/1188/736 3989/1222/734 3950/1182/734 +f 3952/1184/735 4007/1241/733 3942/1174/733 +f 3950/1182/734 3992/1225/732 3945/1177/732 +f 3942/1174/733 3977/1210/714 3943/1175/714 +f 3945/1177/732 3994/1227/696 3975/1207/696 +f 3943/1175/714 3980/1213/715 3968/1200/715 +f 3975/1286/696 3996/1229/697 3970/1202/697 +f 3968/1200/715 3982/1215/755 3963/1195/755 +f 3970/1202/697 3998/1232/754 3966/1198/754 +f 3963/1195/755 3984/1217/741 3964/1196/741 +f 3966/1198/754 4002/1236/740 3962/1194/740 +f 3964/1196/741 3986/1219/738 3954/1186/738 +f 3962/1194/740 4001/1235/737 3951/1183/737 +f 3955/1187/739 3990/1223/736 3956/1188/736 +f 3954/1186/738 3988/1221/739 3955/1187/739 +f 3951/1183/737 4006/1240/735 3952/1184/735 +f 3999/1503/758 4189/1504/759 4154/1445/758 +f 3979/1505/760 4155/1447/756 3981/1499/756 +f 3997/1506/761 4189/1504/759 4000/1507/759 +f 3976/1508/762 4188/1502/760 3979/1505/760 +f 3997/1506/761 4109/1357/763 4110/1359/761 +f 3976/1508/762 4143/1394/764 4144/1396/762 +f 3993/1509/765 4109/1430/763 3995/1510/763 +f 4005/1511/766 4143/1394/764 3978/1512/764 +f 3991/1513/767 4146/1428/765 3993/1509/765 +f 4005/1511/766 4149/1435/768 4147/1431/766 +f 3987/1514/769 4148/1433/767 3991/1513/767 +f 4004/1515/770 4149/1435/768 4003/1516/768 +f 3985/1517/771 4152/1441/757 4153/1443/771 +f 3985/1517/771 4150/1437/769 3987/1514/769 +f 3999/1503/758 4151/1439/770 4004/1515/770 +f 4189/1504/754 4065/1518/740 4154/1445/740 +f 4188/1502/755 4009/1519/741 4155/1447/741 +f 4110/1359/697 4066/1520/754 4189/1504/754 +f 3941/1173/714 4128/1379/715 4119/1368/714 +f 3971/1203/715 4127/1377/755 4128/1379/715 +f 3967/1199/755 4131/1382/741 4127/1377/755 +f 3959/1191/741 4135/1386/738 4131/1382/741 +f 3960/1192/738 4140/1391/739 4135/1386/738 +f 3953/1185/739 4113/1362/736 4140/1391/739 +f 3949/1181/736 4111/1360/734 4113/1362/736 +f 3944/1176/734 4117/1366/732 4111/1360/734 +f 3946/1178/732 4121/1370/696 4117/1366/732 +f 3969/1201/696 4125/1374/697 4121/1376/696 +f 3965/1197/697 4129/1380/754 4125/1374/697 +f 3961/1193/754 4133/1384/740 4129/1380/754 +f 3957/1189/740 4137/1388/737 4133/1384/740 +f 3958/1190/737 4116/1365/735 4137/1388/737 +f 3947/1179/735 4114/1363/733 4116/1365/735 +f 3948/1180/733 4119/1368/714 4114/1363/733 +f 4190/1521/741 4191/1522/772 4192/1523/741 +f 4193/1524/755 4192/1523/741 4194/1525/755 +f 4195/1526/773 4194/1525/755 4196/1527/773 +f 4197/1528/742 4198/1529/693 4199/1530/693 +f 4200/1531/743 4198/1529/693 4201/1532/743 +f 4200/1531/743 4202/1533/744 4203/1534/744 +f 4204/1535/745 4202/1536/744 4205/1537/745 +f 4204/1535/745 4206/1538/687 4207/1539/687 +f 4207/1539/687 4208/1540/746 4209/1541/746 +f 4209/1541/746 4210/1542/747 4211/1543/747 +f 4212/1544/748 4210/1542/747 4213/1545/748 +f 4212/1544/748 4214/1546/690 4215/1547/690 +f 4216/1548/749 4214/1546/690 4217/1549/749 +f 4218/1550/750 4217/1549/749 4219/1551/750 +f 4218/1550/750 4220/1552/751 4221/1553/751 +f 4222/1554/684 4220/1552/751 4223/1555/684 +f 4224/1556/752 4223/1555/684 4225/1557/752 +f 4226/1558/753 4225/1557/752 4227/1559/753 +f 4082/1560/732 4215/1547/734 4019/1561/734 +f 4017/1562/733 4200/1531/735 4077/1563/735 +f 4019/1561/734 4216/1548/736 4070/1564/736 +f 4077/1563/735 4203/1534/737 4078/1565/737 +f 4072/1566/739 4221/1553/738 4073/1567/738 +f 4070/1564/736 4218/1550/739 4072/1566/739 +f 4078/1568/737 4204/1535/740 4079/1569/740 +f 4073/1567/738 4222/1554/741 4071/1570/741 +f 4079/1569/740 4207/1539/754 4018/1571/754 +f 4071/1570/741 4224/1556/755 4074/1572/755 +f 4018/1571/754 4209/1541/697 4080/1573/697 +f 4074/1572/755 4226/1558/715 4075/1574/715 +f 4080/1573/697 4211/1543/696 4081/1575/696 +f 4075/1574/715 4197/1528/714 4076/1576/714 +f 4081/1575/696 4212/1544/732 4082/1560/732 +f 4076/1576/714 4199/1530/733 4017/1562/733 +f 4226/1558/753 4228/1577/742 4197/1528/742 +f 4229/1578/742 4230/1579/693 4231/1580/693 +f 4232/1581/743 4230/1579/693 4233/1582/743 +f 4232/1581/743 4234/1583/744 4235/1584/744 +f 4236/1585/745 4234/1586/744 4237/1587/745 +f 4236/1585/745 4238/1588/687 4239/1589/687 +f 4239/1589/687 4240/1590/746 4241/1591/746 +f 4241/1591/746 4242/1592/747 4243/1593/747 +f 4244/1594/748 4242/1592/747 4245/1595/748 +f 4244/1594/748 4246/1596/690 4247/1597/690 +f 4248/1598/749 4246/1596/690 4249/1599/749 +f 4248/1598/749 4250/1600/750 4251/1601/750 +f 4251/1601/750 4252/1602/751 4253/1603/751 +f 4253/1603/751 4254/1604/684 4255/1605/684 +f 4256/1606/752 4254/1604/684 4257/1607/752 +f 4258/1608/753 4257/1607/752 4259/1609/753 +f 4095/1610/732 4247/1597/734 4022/1611/734 +f 4020/1612/733 4232/1581/735 4090/1613/735 +f 4022/1611/734 4248/1598/736 4083/1614/736 +f 4090/1613/735 4235/1584/737 4091/1615/737 +f 4085/1616/739 4253/1603/738 4086/1617/738 +f 4083/1614/736 4251/1601/739 4085/1616/739 +f 4091/1618/737 4236/1585/740 4092/1619/740 +f 4086/1617/738 4255/1605/741 4084/1620/741 +f 4092/1619/740 4239/1589/754 4021/1621/754 +f 4084/1620/741 4256/1606/755 4087/1622/755 +f 4021/1621/754 4241/1591/697 4093/1623/697 +f 4087/1622/755 4258/1608/715 4088/1624/715 +f 4093/1623/697 4243/1593/696 4094/1625/696 +f 4088/1624/715 4229/1578/714 4089/1626/714 +f 4094/1625/696 4244/1594/732 4095/1610/732 +f 4089/1626/714 4231/1580/733 4020/1612/733 +f 4258/1608/753 4260/1627/742 4229/1578/742 +f 4261/1628/742 4262/1629/693 4263/1630/693 +f 4264/1631/743 4262/1629/693 4265/1632/743 +f 4264/1631/743 4266/1633/744 4267/1634/744 +f 4268/1635/745 4266/1636/744 4269/1637/745 +f 4268/1635/745 4270/1638/687 4271/1639/687 +f 4271/1639/687 4272/1640/746 4273/1641/746 +f 4273/1641/746 4274/1642/747 4275/1643/747 +f 4276/1644/748 4274/1642/747 4277/1645/748 +f 4276/1644/748 4278/1646/690 4279/1647/690 +f 4280/1648/749 4278/1646/690 4281/1649/749 +f 4280/1648/749 4282/1650/750 4283/1651/750 +f 4283/1651/750 4284/1652/751 4285/1653/751 +f 4285/1653/751 4286/1654/684 4287/1655/684 +f 4288/1656/752 4286/1654/684 4289/1657/752 +f 4290/1658/753 4289/1657/752 4291/1659/753 +f 4108/1660/732 4279/1647/734 4025/1661/734 +f 4023/1662/733 4264/1631/735 4103/1663/735 +f 4025/1661/734 4280/1648/736 4096/1664/736 +f 4103/1663/735 4267/1634/737 4104/1665/737 +f 4098/1666/739 4285/1653/738 4099/1667/738 +f 4096/1664/736 4283/1651/739 4098/1666/739 +f 4104/1668/737 4268/1635/740 4105/1669/740 +f 4099/1667/738 4287/1655/741 4097/1670/741 +f 4105/1669/740 4271/1639/754 4024/1671/754 +f 4097/1670/741 4288/1656/755 4100/1672/755 +f 4024/1671/754 4273/1641/697 4106/1673/697 +f 4100/1672/755 4290/1658/715 4101/1674/715 +f 4106/1673/697 4275/1643/696 4107/1675/696 +f 4101/1674/715 4261/1628/714 4102/1676/714 +f 4107/1675/696 4276/1644/732 4108/1660/732 +f 4102/1676/714 4263/1630/733 4023/1662/733 +f 4290/1658/753 4292/1677/742 4261/1628/742 +f 4293/1678/754 4294/1679/774 4295/1680/754 +f 4296/1681/697 4295/1680/754 4297/1682/697 +f 4298/1683/775 4297/1682/697 4299/1684/775 +f 4109/1357/696 4068/1685/696 4067/1358/697 +f 4111/1360/698 4118/1397/698 4112/1361/699 +f 4114/1363/700 4120/1413/700 4115/1364/701 +f 4117/1366/702 4122/1399/702 4118/1367/698 +f 4119/1368/703 4124/1415/703 4120/1369/700 +f 4121/1370/704 4126/1401/704 4122/1371/702 +f 4119/1368/703 4128/1379/705 4123/1372/705 +f 4125/1374/706 4130/1403/706 4126/1375/704 +f 4127/1377/707 4132/1418/707 4123/1378/705 +f 4129/1380/708 4134/1405/708 4130/1381/706 +f 4131/1382/709 4136/1420/709 4132/1383/707 +f 4133/1384/710 4138/1407/710 4134/1385/708 +f 4135/1386/711 4141/1422/711 4136/1387/709 +f 4137/1388/712 4142/1409/712 4138/1389/710 +f 4113/1362/699 4112/1426/699 4139/1390/713 +f 4140/1391/713 4139/1424/713 4141/1392/711 +f 4116/1365/701 4115/1411/701 4142/1393/712 +f 4143/1394/714 4062/1432/714 4061/1395/715 +f 4146/1428/732 4069/1434/732 4068/1429/696 +f 4147/1431/733 4010/1436/733 4062/1432/714 +f 4148/1433/734 4008/1438/734 4069/1434/732 +f 4149/1435/735 4063/1440/735 4010/1436/733 +f 4150/1437/736 4057/1444/736 4008/1438/734 +f 4151/1439/737 4064/1446/737 4063/1440/735 +f 4152/1441/738 4059/1448/738 4058/1442/739 +f 4153/1443/739 4058/1442/739 4057/1444/736 +f 4154/1445/740 4065/1518/740 4064/1446/737 +f 4155/1447/741 4009/1519/741 4059/1448/738 +f 4156/1449/742 4187/1498/742 4157/1450/693 +f 4159/1452/743 4158/1451/693 4157/1450/693 +f 4159/1452/743 4160/1453/743 4161/1454/744 +f 4163/1456/745 4162/1686/744 4161/1457/744 +f 4163/1456/745 4164/1458/745 4165/1459/687 +f 4166/1460/687 4165/1459/687 4167/1461/746 +f 4168/1462/746 4167/1461/746 4169/1463/747 +f 4170/1464/747 4169/1463/747 4171/1465/748 +f 4172/1466/748 4171/1465/748 4173/1467/690 +f 4175/1469/749 4174/1468/690 4173/1467/690 +f 4175/1469/749 4176/1470/749 4177/1471/750 +f 4178/1472/750 4177/1471/750 4179/1473/751 +f 4180/1474/751 4179/1473/751 4181/1475/684 +f 4183/1477/752 4182/1476/684 4181/1475/684 +f 4185/1479/753 4183/1477/752 4184/1478/752 +f 4056/1481/732 4172/1466/732 4174/1468/734 +f 3972/1483/733 4158/1451/733 4159/1452/735 +f 3974/1482/734 4174/1468/734 4175/1469/736 +f 4051/1484/735 4159/1452/735 4162/1455/737 +f 4046/1487/739 4178/1472/739 4180/1474/738 +f 4044/1485/736 4175/1469/736 4178/1472/739 +f 4052/1489/737 4162/1686/737 4163/1456/740 +f 4047/1488/738 4180/1474/738 4182/1476/741 +f 4053/1490/740 4163/1456/740 4166/1460/754 +f 4045/1491/741 4182/1476/741 4183/1477/755 +f 3973/1492/754 4166/1460/754 4168/1462/697 +f 4048/1493/755 4183/1477/755 4185/1479/715 +f 4054/1494/697 4168/1462/697 4170/1464/696 +f 4049/1495/715 4185/1479/715 4156/1449/714 +f 4055/1496/696 4170/1464/696 4172/1466/732 +f 4050/1497/714 4156/1449/714 4158/1451/733 +f 4185/1479/753 4186/1480/753 4187/1498/742 +f 3981/1499/756 4155/1447/756 4152/1441/757 +f 4144/1396/715 4061/1395/715 4060/1501/755 +f 3956/1188/736 3990/1223/736 3989/1222/734 +f 3952/1184/735 4006/1240/735 4007/1241/733 +f 3950/1182/734 3989/1222/734 3992/1225/732 +f 3942/1174/733 4007/1241/733 3977/1210/714 +f 3945/1177/732 3992/1225/732 3994/1227/696 +f 3943/1175/714 3977/1210/714 3980/1213/715 +f 3975/1286/696 3994/1230/696 3996/1229/697 +f 3968/1200/715 3980/1213/715 3982/1215/755 +f 3970/1202/697 3996/1229/697 3998/1232/754 +f 3963/1195/755 3982/1215/755 3984/1217/741 +f 3966/1198/754 3998/1232/754 4002/1236/740 +f 3964/1196/741 3984/1217/741 3986/1219/738 +f 3962/1194/740 4002/1236/740 4001/1235/737 +f 3955/1187/739 3988/1221/739 3990/1223/736 +f 3954/1186/738 3986/1219/738 3988/1221/739 +f 3951/1183/737 4001/1235/737 4006/1240/735 +f 3999/1503/758 4000/1507/759 4189/1504/759 +f 3979/1505/760 4188/1502/760 4155/1447/756 +f 3997/1506/761 4110/1359/761 4189/1504/759 +f 3976/1508/762 4144/1396/762 4188/1502/760 +f 3997/1506/761 3995/1228/763 4109/1357/763 +f 3976/1508/762 3978/1512/764 4143/1394/764 +f 3993/1509/765 4146/1428/765 4109/1430/763 +f 4005/1511/766 4147/1431/766 4143/1394/764 +f 3991/1513/767 4148/1433/767 4146/1428/765 +f 4005/1511/766 4003/1516/768 4149/1435/768 +f 3987/1514/769 4150/1437/769 4148/1433/767 +f 4004/1515/770 4151/1439/770 4149/1435/768 +f 3985/1517/771 3983/1500/757 4152/1441/757 +f 3985/1517/771 4153/1443/771 4150/1437/769 +f 3999/1503/758 4154/1445/758 4151/1439/770 +f 4189/1504/754 4066/1520/754 4065/1518/740 +f 4188/1502/755 4060/1501/755 4009/1519/741 +f 4110/1359/697 4067/1358/697 4066/1520/754 +f 3941/1173/714 3971/1203/715 4128/1379/715 +f 3971/1203/715 3967/1199/755 4127/1377/755 +f 3967/1199/755 3959/1191/741 4131/1382/741 +f 3959/1191/741 3960/1192/738 4135/1386/738 +f 3960/1192/738 3953/1185/739 4140/1391/739 +f 3953/1185/739 3949/1181/736 4113/1362/736 +f 3949/1181/736 3944/1176/734 4111/1360/734 +f 3944/1176/734 3946/1178/732 4117/1366/732 +f 3946/1178/732 3969/1208/696 4121/1370/696 +f 3969/1201/696 3965/1197/697 4125/1374/697 +f 3965/1197/697 3961/1193/754 4129/1380/754 +f 3961/1193/754 3957/1189/740 4133/1384/740 +f 3957/1189/740 3958/1190/737 4137/1388/737 +f 3958/1190/737 3947/1179/735 4116/1365/735 +f 3947/1179/735 3948/1180/733 4114/1363/733 +f 3948/1180/733 3941/1173/714 4119/1368/714 +f 4190/1521/741 4300/1687/772 4191/1522/772 +f 4193/1524/755 4190/1521/741 4192/1523/741 +f 4195/1526/773 4193/1524/755 4194/1525/755 +f 4197/1528/742 4228/1577/742 4198/1529/693 +f 4200/1531/743 4199/1530/693 4198/1529/693 +f 4200/1531/743 4201/1532/743 4202/1533/744 +f 4204/1535/745 4203/1688/744 4202/1536/744 +f 4204/1535/745 4205/1537/745 4206/1538/687 +f 4207/1539/687 4206/1538/687 4208/1540/746 +f 4209/1541/746 4208/1540/746 4210/1542/747 +f 4212/1544/748 4211/1543/747 4210/1542/747 +f 4212/1544/748 4213/1545/748 4214/1546/690 +f 4216/1548/749 4215/1547/690 4214/1546/690 +f 4218/1550/750 4216/1548/749 4217/1549/749 +f 4218/1550/750 4219/1551/750 4220/1552/751 +f 4222/1554/684 4221/1553/751 4220/1552/751 +f 4224/1556/752 4222/1554/684 4223/1555/684 +f 4226/1558/753 4224/1556/752 4225/1557/752 +f 4082/1560/732 4212/1544/732 4215/1547/734 +f 4017/1562/733 4199/1530/733 4200/1531/735 +f 4019/1561/734 4215/1547/734 4216/1548/736 +f 4077/1563/735 4200/1531/735 4203/1534/737 +f 4072/1566/739 4218/1550/739 4221/1553/738 +f 4070/1564/736 4216/1548/736 4218/1550/739 +f 4078/1568/737 4203/1688/737 4204/1535/740 +f 4073/1567/738 4221/1553/738 4222/1554/741 +f 4079/1569/740 4204/1535/740 4207/1539/754 +f 4071/1570/741 4222/1554/741 4224/1556/755 +f 4018/1571/754 4207/1539/754 4209/1541/697 +f 4074/1572/755 4224/1556/755 4226/1558/715 +f 4080/1573/697 4209/1541/697 4211/1543/696 +f 4075/1574/715 4226/1558/715 4197/1528/714 +f 4081/1575/696 4211/1543/696 4212/1544/732 +f 4076/1576/714 4197/1528/714 4199/1530/733 +f 4226/1558/753 4227/1559/753 4228/1577/742 +f 4229/1578/742 4260/1627/742 4230/1579/693 +f 4232/1581/743 4231/1580/693 4230/1579/693 +f 4232/1581/743 4233/1582/743 4234/1583/744 +f 4236/1585/745 4235/1689/744 4234/1586/744 +f 4236/1585/745 4237/1587/745 4238/1588/687 +f 4239/1589/687 4238/1588/687 4240/1590/746 +f 4241/1591/746 4240/1590/746 4242/1592/747 +f 4244/1594/748 4243/1593/747 4242/1592/747 +f 4244/1594/748 4245/1595/748 4246/1596/690 +f 4248/1598/749 4247/1597/690 4246/1596/690 +f 4248/1598/749 4249/1599/749 4250/1600/750 +f 4251/1601/750 4250/1600/750 4252/1602/751 +f 4253/1603/751 4252/1602/751 4254/1604/684 +f 4256/1606/752 4255/1605/684 4254/1604/684 +f 4258/1608/753 4256/1606/752 4257/1607/752 +f 4095/1610/732 4244/1594/732 4247/1597/734 +f 4020/1612/733 4231/1580/733 4232/1581/735 +f 4022/1611/734 4247/1597/734 4248/1598/736 +f 4090/1613/735 4232/1581/735 4235/1584/737 +f 4085/1616/739 4251/1601/739 4253/1603/738 +f 4083/1614/736 4248/1598/736 4251/1601/739 +f 4091/1618/737 4235/1689/737 4236/1585/740 +f 4086/1617/738 4253/1603/738 4255/1605/741 +f 4092/1619/740 4236/1585/740 4239/1589/754 +f 4084/1620/741 4255/1605/741 4256/1606/755 +f 4021/1621/754 4239/1589/754 4241/1591/697 +f 4087/1622/755 4256/1606/755 4258/1608/715 +f 4093/1623/697 4241/1591/697 4243/1593/696 +f 4088/1624/715 4258/1608/715 4229/1578/714 +f 4094/1625/696 4243/1593/696 4244/1594/732 +f 4089/1626/714 4229/1578/714 4231/1580/733 +f 4258/1608/753 4259/1609/753 4260/1627/742 +f 4261/1628/742 4292/1677/742 4262/1629/693 +f 4264/1631/743 4263/1630/693 4262/1629/693 +f 4264/1631/743 4265/1632/743 4266/1633/744 +f 4268/1635/745 4267/1690/744 4266/1636/744 +f 4268/1635/745 4269/1637/745 4270/1638/687 +f 4271/1639/687 4270/1638/687 4272/1640/746 +f 4273/1641/746 4272/1640/746 4274/1642/747 +f 4276/1644/748 4275/1643/747 4274/1642/747 +f 4276/1644/748 4277/1645/748 4278/1646/690 +f 4280/1648/749 4279/1647/690 4278/1646/690 +f 4280/1648/749 4281/1649/749 4282/1650/750 +f 4283/1651/750 4282/1650/750 4284/1652/751 +f 4285/1653/751 4284/1652/751 4286/1654/684 +f 4288/1656/752 4287/1655/684 4286/1654/684 +f 4290/1658/753 4288/1656/752 4289/1657/752 +f 4108/1660/732 4276/1644/732 4279/1647/734 +f 4023/1662/733 4263/1630/733 4264/1631/735 +f 4025/1661/734 4279/1647/734 4280/1648/736 +f 4103/1663/735 4264/1631/735 4267/1634/737 +f 4098/1666/739 4283/1651/739 4285/1653/738 +f 4096/1664/736 4280/1648/736 4283/1651/739 +f 4104/1668/737 4267/1690/737 4268/1635/740 +f 4099/1667/738 4285/1653/738 4287/1655/741 +f 4105/1669/740 4268/1635/740 4271/1639/754 +f 4097/1670/741 4287/1655/741 4288/1656/755 +f 4024/1671/754 4271/1639/754 4273/1641/697 +f 4100/1672/755 4288/1656/755 4290/1658/715 +f 4106/1673/697 4273/1641/697 4275/1643/696 +f 4101/1674/715 4290/1658/715 4261/1628/714 +f 4107/1675/696 4275/1643/696 4276/1644/732 +f 4102/1676/714 4261/1628/714 4263/1630/733 +f 4290/1658/753 4291/1659/753 4292/1677/742 +f 4293/1678/754 4301/1691/774 4294/1679/774 +f 4296/1681/697 4293/1678/754 4295/1680/754 +f 4298/1683/775 4296/1681/697 4297/1682/697 +o Strong_Missile +v 0.866138 2.750000 0.358766 +v 0.750000 2.750000 0.000000 +v 0.937500 2.750000 0.000000 +v 0.692910 2.750000 -0.287013 +v 0.866138 2.750000 -0.358765 +v 0.662913 2.750000 -0.662913 +v 0.530329 2.750000 -0.530331 +v 0.358766 2.750000 -0.866137 +v 0.287012 2.750000 -0.692910 +v 0.000000 2.750000 -0.937500 +v 0.000000 2.750000 -0.750000 +v -0.358766 2.750000 -0.866137 +v -0.287013 2.750000 -0.692910 +v -0.662913 2.750000 -0.662913 +v -0.692910 2.750000 -0.287013 +v -0.866138 2.750000 -0.358765 +v -0.937500 2.750000 0.000000 +v -0.692910 2.750000 0.287013 +v -0.866138 2.750000 0.358766 +v -0.530329 2.750000 0.530330 +v -0.662913 2.750000 0.662913 +v -0.358766 2.750000 0.866138 +v -0.287013 2.750000 0.692910 +v 0.000000 2.750000 0.937500 +v 0.287013 2.750000 0.692910 +v 0.358766 2.750000 0.866138 +v 0.662913 2.750000 0.662913 +v 0.530329 2.750000 0.530331 +v -0.530329 2.000000 -0.530329 +v 0.530329 2.000000 -0.530331 +v 0.530329 2.000000 0.530331 +v 1.328476 8.750000 -1.328476 +v 0.499836 8.375000 -0.566127 +v 0.499836 9.125000 -0.566127 +v 0.566127 8.375000 -0.499836 +v 0.566127 9.125000 -0.499836 +v 1.328476 8.375000 -1.328476 +v 1.328478 8.750000 1.328477 +v 0.566127 8.375000 0.499836 +v 0.566127 9.125000 0.499836 +v 0.499836 8.375000 0.566127 +v 0.499836 9.125000 0.566127 +v 1.328478 8.375000 1.328477 +v 1.325826 4.250000 1.325825 +v 0.563477 2.375000 0.497184 +v 0.563477 5.375000 0.497184 +v 0.497184 2.375000 0.563475 +v 0.497184 5.375000 0.563475 +v 1.325826 2.375000 1.325824 +v -0.563477 2.375000 -0.497184 +v -1.325826 2.375000 -1.325824 +v -0.497184 2.375000 -0.563475 +v -1.325826 4.250000 -1.325824 +v -0.563477 5.375000 -0.497184 +v -0.497184 5.375000 -0.563475 +v 1.325824 4.250000 -1.325824 +v 0.497184 2.375000 -0.563475 +v 0.497184 5.375000 -0.563475 +v 0.563475 2.375000 -0.497184 +v 0.563475 5.375000 -0.497184 +v 1.325824 2.375000 -1.325824 +v -0.566127 8.375000 -0.499836 +v -1.328476 8.375000 -1.328476 +v -0.499836 8.375000 -0.566127 +v -1.328476 8.750000 -1.328476 +v -0.566127 9.125000 -0.499836 +v -0.499836 9.125000 -0.566127 +v -0.497184 2.375000 0.563477 +v -1.325824 2.375000 1.325824 +v -0.563475 2.375000 0.497184 +v -1.325824 4.250000 1.325825 +v -0.497184 5.375000 0.563477 +v -0.563475 5.375000 0.497184 +v -0.499836 8.375000 0.566127 +v -1.328476 8.375000 1.328477 +v -0.566127 8.375000 0.499836 +v -1.328476 8.750000 1.328477 +v -0.499836 9.125000 0.566127 +v -0.566127 9.125000 0.499836 +v 0.692910 2.750000 0.287013 +v -0.530329 2.750000 -0.530329 +v -0.750000 2.750000 0.000000 +v 0.000000 2.750000 0.750000 +v -0.287013 2.000000 -0.692910 +v 0.000000 2.000000 -0.750000 +v 0.287012 2.000000 -0.692910 +v 0.692910 2.000000 -0.287013 +v 0.750000 2.000000 0.000000 +v 0.692910 2.000000 0.287013 +v 0.287013 2.000000 0.692910 +v 0.000000 2.000000 0.750000 +v -0.287013 2.000000 0.692910 +v -0.530329 2.000000 0.530329 +v -0.692910 2.000000 0.287013 +v -0.750000 2.000000 0.000000 +v -0.692910 2.000000 -0.287013 +v -0.662913 8.187500 -0.662913 +v -0.361636 9.312500 -0.873066 +v -0.358766 8.187500 -0.866137 +v 0.662913 8.187500 0.662913 +v 0.361635 9.312500 0.873066 +v 0.358766 8.187500 0.866138 +v -0.866138 8.187500 -0.358765 +v -0.668216 9.312500 -0.668215 +v 0.866138 8.187500 0.358766 +v 0.668216 9.312500 0.668216 +v -0.937500 8.187500 0.000000 +v -0.873066 9.312500 -0.361636 +v 0.937500 8.187500 0.000000 +v 0.873066 9.312500 0.361637 +v -0.866138 8.187500 0.358766 +v -0.945000 9.312500 0.000000 +v 0.866138 8.187500 -0.358765 +v 0.945000 9.312500 0.000000 +v -0.662913 8.187500 0.662913 +v -0.873066 9.312500 0.361637 +v 0.662913 8.187500 -0.662913 +v 0.873066 9.312500 -0.361636 +v -0.358766 8.187500 0.866138 +v -0.668216 9.312500 0.668216 +v 0.358766 8.187500 -0.866137 +v 0.668216 9.312500 -0.668215 +v 0.000000 8.187500 0.937500 +v -0.361636 9.312500 0.873066 +v 0.000000 9.312500 -0.945000 +v 0.000000 8.187500 -0.937500 +v 0.361635 9.312500 -0.873066 +v 0.000000 9.312500 0.945000 +v -0.287013 9.500000 0.692910 +v 0.000000 9.500000 -0.750000 +v 0.287012 9.500000 -0.692910 +v 0.000000 9.500000 0.750000 +v -0.287013 9.500000 -0.692910 +v 0.287013 9.500000 0.692910 +v -0.530329 9.500000 -0.530329 +v 0.692910 9.500000 0.287013 +v 0.530329 9.500000 0.530331 +v -0.692910 9.500000 -0.287013 +v -0.750000 9.500000 0.000000 +v 0.692910 9.500000 -0.287013 +v 0.750000 9.500000 0.000000 +v -0.692910 9.500000 0.287013 +v -0.530329 9.500000 0.530330 +v 0.530329 9.500000 -0.530331 +v 0.530329 8.000000 0.530331 +v 0.000000 11.000000 0.000000 +v 0.692910 8.000000 0.287013 +v 0.750000 8.000000 0.000000 +v 0.692910 8.000000 -0.287013 +v 0.530329 8.000000 -0.530331 +v 0.000000 8.000000 -0.750000 +v -0.287013 8.000000 -0.692910 +v -0.530329 8.000000 -0.530329 +v -0.692910 8.000000 -0.287013 +v -0.750000 8.000000 0.000000 +v -0.692910 8.000000 0.287013 +v -0.530329 8.000000 0.530330 +v -0.287013 8.000000 0.692910 +v 0.000000 8.000000 0.750000 +v 0.287013 8.000000 0.692910 +v -0.530329 7.250000 -0.530329 +v 0.530329 7.250000 0.530331 +v -0.692910 7.250000 -0.287013 +v 0.692910 7.250000 0.287013 +v -0.750000 7.250000 0.000000 +v 0.750000 7.250000 0.000000 +v -0.692910 7.250000 0.287013 +v 0.692910 7.250000 -0.287013 +v -0.530329 7.250000 0.530330 +v 0.530329 7.250000 -0.530331 +v -0.287013 7.250000 0.692910 +v 0.287012 7.250000 -0.692910 +v 0.287012 8.000000 -0.692910 +v 0.000000 7.250000 0.750000 +v -0.287013 7.250000 -0.692910 +v 0.000000 7.250000 -0.750000 +v 0.287013 7.250000 0.692910 +v -0.358766 5.750000 0.866138 +v 0.358766 5.750000 -0.866137 +v 0.000000 5.750000 0.937500 +v -0.358766 5.750000 -0.866137 +v 0.000000 5.750000 -0.937500 +v 0.358766 5.750000 0.866138 +v -0.662913 5.750000 -0.662913 +v 0.662913 5.750000 0.662913 +v -0.866138 5.750000 -0.358765 +v 0.866138 5.750000 0.358766 +v -0.937500 5.750000 0.000000 +v 0.937500 5.750000 0.000000 +v -0.866138 5.750000 0.358766 +v 0.866138 5.750000 -0.358765 +v -0.662913 5.750000 0.662913 +v 0.662913 5.750000 -0.662913 +vt 0.350000 0.102041 +vt 0.387500 0.081633 +vt 0.400000 0.102041 +vt 0.437500 0.081633 +vt 0.450000 0.102041 +vt 0.450000 0.081633 +vt 0.500000 0.102041 +vt 0.500000 0.081633 +vt 0.550000 0.102041 +vt 0.550000 0.081633 +vt 0.600000 0.102041 +vt 0.600000 0.081633 +vt 0.650000 0.102041 +vt 0.650000 0.081633 +vt 0.700000 0.102041 +vt 0.737500 0.081633 +vt 0.750000 0.102041 +vt 0.750000 0.081633 +vt 0.800000 0.102041 +vt 0.000000 0.102041 +vt 0.037500 0.081633 +vt 0.050000 0.102041 +vt 0.087500 0.081633 +vt 0.100000 0.102041 +vt 0.100000 0.081633 +vt 0.150000 0.102041 +vt 0.150000 0.081633 +vt 0.200000 0.102041 +vt 0.237500 0.081633 +vt 0.250000 0.102041 +vt 0.250000 0.081633 +vt 0.300000 0.102041 +vt 0.300000 0.081633 +vt 0.970508 0.024075 +vt 0.970508 0.139190 +vt 0.829492 0.139190 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.350000 0.081633 +vt 0.400000 0.081633 +vt 0.487500 0.081633 +vt 0.537500 0.081633 +vt 0.587500 0.081633 +vt 0.637500 0.081633 +vt 0.687500 0.081633 +vt 0.700000 0.081633 +vt 0.787500 0.081633 +vt 0.000000 0.081633 +vt 0.050000 0.081633 +vt 0.137500 0.081633 +vt 0.187500 0.081633 +vt 0.200000 0.081633 +vt 0.287500 0.081633 +vt 0.337500 0.081633 +vt 0.992123 0.050483 +vt 0.999714 0.081633 +vt 0.992123 0.112783 +vt 0.938159 0.156836 +vt 0.900000 0.163032 +vt 0.861841 0.156836 +vt 0.807876 0.112783 +vt 0.800286 0.081633 +vt 0.807877 0.050483 +vt 0.829492 0.024075 +vt 0.861841 0.006430 +vt 0.900000 0.000234 +vt 0.938159 0.006430 +vt 0.700000 0.693878 +vt 0.650000 0.816327 +vt 0.650000 0.693878 +vt 0.300000 0.693878 +vt 0.250000 0.816327 +vt 0.250000 0.693878 +vt 0.750000 0.693878 +vt 0.700000 0.816327 +vt 0.350000 0.693878 +vt 0.300000 0.816327 +vt 0.800000 0.693878 +vt 0.750000 0.816327 +vt 0.400000 0.693878 +vt 0.350000 0.816327 +vt 0.050000 0.693878 +vt 0.000000 0.816327 +vt -0.000000 0.693878 +vt 0.450000 0.693878 +vt 0.400000 0.816327 +vt 0.100000 0.693878 +vt 0.050000 0.816327 +vt 0.500000 0.693878 +vt 0.450000 0.816327 +vt 0.150000 0.693878 +vt 0.100000 0.816327 +vt 0.550000 0.693878 +vt 0.500000 0.816327 +vt 0.200000 0.693878 +vt 0.150000 0.816327 +vt 0.600000 0.816327 +vt 0.600000 0.693878 +vt 0.550000 0.816327 +vt 0.200000 0.816327 +vt 0.150000 0.836735 +vt 0.600000 0.836735 +vt 0.550000 0.836735 +vt 0.200000 0.836735 +vt 0.650000 0.836735 +vt 0.250000 0.836735 +vt 0.700000 0.836735 +vt 0.337500 0.836735 +vt 0.300000 0.836735 +vt 0.800000 0.816327 +vt 0.750000 0.836735 +vt 0.350000 0.836735 +vt -0.000000 0.836735 +vt 0.437500 0.836735 +vt 0.400000 0.836735 +vt 0.050000 0.836735 +vt 0.450000 0.836735 +vt 0.100000 0.836735 +vt 0.500000 0.836735 +vt 0.300000 0.673469 +vt 0.687500 0.836735 +vt 0.662500 1.000000 +vt 0.737500 0.836735 +vt 0.712500 1.000000 +vt 0.787500 0.836735 +vt 0.762500 1.000000 +vt 0.037500 0.836735 +vt 0.012500 1.000000 +vt 0.087500 0.836735 +vt 0.062500 1.000000 +vt 0.137500 0.836735 +vt 0.112500 1.000000 +vt 0.187500 0.836735 +vt 0.162500 1.000000 +vt 0.237500 0.836735 +vt 0.212500 1.000000 +vt 0.287500 0.836735 +vt 0.262500 1.000000 +vt 0.312500 1.000000 +vt 0.387500 0.836735 +vt 0.362500 1.000000 +vt 0.412500 1.000000 +vt 0.487500 0.836735 +vt 0.462500 1.000000 +vt 0.537500 0.836735 +vt 0.512500 1.000000 +vt 0.587500 0.836735 +vt 0.562500 1.000000 +vt 0.637500 0.836735 +vt 0.612500 1.000000 +vt 0.350000 0.673469 +vt 0.400000 0.673469 +vt 0.450000 0.673469 +vt 0.500000 0.673469 +vt 0.587500 0.673469 +vt 0.600000 0.673469 +vt 0.650000 0.673469 +vt 0.700000 0.673469 +vt 0.750000 0.673469 +vt 0.000000 0.673469 +vt 0.050000 0.673469 +vt 0.100000 0.673469 +vt 0.150000 0.673469 +vt 0.200000 0.673469 +vt 0.250000 0.673469 +vt 0.687500 0.591837 +vt 0.687500 0.673469 +vt 0.287500 0.591837 +vt 0.287500 0.673469 +vt 0.737500 0.591837 +vt 0.737500 0.673469 +vt 0.337500 0.591837 +vt 0.337500 0.673469 +vt 0.787500 0.591837 +vt 0.787500 0.673469 +vt 0.387500 0.591837 +vt 0.387500 0.673469 +vt 0.037500 0.591837 +vt 0.037500 0.673469 +vt 0.437500 0.591837 +vt 0.437500 0.673469 +vt 0.087500 0.591837 +vt 0.087500 0.673469 +vt 0.487500 0.591837 +vt 0.487500 0.673469 +vt 0.137500 0.591837 +vt 0.137500 0.673469 +vt 0.537500 0.591837 +vt 0.537500 0.673469 +vt 0.187500 0.591837 +vt 0.187500 0.673469 +vt 0.637500 0.591837 +vt 0.637500 0.673469 +vt 0.550000 0.673469 +vt 0.587500 0.591837 +vt 0.237500 0.591837 +vt 0.237500 0.673469 +vt 0.100000 0.591837 +vt 0.150000 0.428571 +vt 0.500000 0.591837 +vt 0.550000 0.428571 +vt 0.150000 0.591837 +vt 0.200000 0.428571 +vt 0.600000 0.591837 +vt 0.650000 0.428571 +vt 0.550000 0.591837 +vt 0.600000 0.428571 +vt 0.250000 0.428571 +vt 0.650000 0.591837 +vt 0.700000 0.428571 +vt 0.250000 0.591837 +vt 0.300000 0.428571 +vt 0.700000 0.591837 +vt 0.750000 0.428571 +vt 0.300000 0.591837 +vt 0.350000 0.428571 +vt 0.750000 0.591837 +vt 0.800000 0.428571 +vt 0.350000 0.591837 +vt 0.400000 0.428571 +vt -0.000000 0.591837 +vt 0.050000 0.428571 +vt 0.400000 0.591837 +vt 0.450000 0.428571 +vt 0.050000 0.591837 +vt 0.100000 0.428571 +vt 0.450000 0.591837 +vt 0.500000 0.428571 +vt 0.000000 0.428571 +vt 0.537500 -0.000000 +vt 0.187500 0.000000 +vt 0.637500 0.000000 +vt 0.587500 0.000000 +vt 0.237500 0.000000 +vt 0.687500 0.000000 +vt 0.287500 0.000000 +vt 0.737500 -0.000000 +vt 0.337500 0.000000 +vt 0.787500 -0.000000 +vt 0.387500 0.000000 +vt 0.037500 -0.000000 +vt 0.437500 0.000000 +vt 0.087500 -0.000000 +vt 0.487500 0.000000 +vt 0.137500 0.000000 +vt 0.200000 0.591837 +vt 0.500000 -0.000000 +vt 0.150000 0.000000 +vt 0.600000 0.000000 +vt 0.550000 0.000000 +vt 0.200000 -0.000000 +vt 0.650000 0.000000 +vt 0.250000 -0.000000 +vt 0.700000 0.000000 +vt 0.300000 -0.000000 +vt 0.750000 0.000000 +vt 0.350000 -0.000000 +vt -0.000000 0.000000 +vt 0.400000 -0.000000 +vt 0.050000 -0.000000 +vt 0.450000 0.000000 +vt 0.100000 0.000000 +vn 0.0000 -1.0000 0.0000 +vn -0.6771 0.0000 -0.7359 +vn 0.7359 0.0000 0.6771 +vn 0.2236 0.9487 -0.2236 +vn 0.7359 0.0000 -0.6771 +vn -0.6771 0.0000 0.7359 +vn 0.2236 0.9487 0.2236 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 -0.5000 +vn 0.6771 0.0000 -0.7359 +vn -0.7359 -0.0000 0.6771 +vn 0.5000 0.7071 -0.5000 +vn -0.2236 0.9487 -0.2236 +vn -0.5000 0.7071 0.5000 +vn -0.7359 0.0000 -0.6771 +vn 0.6771 -0.0000 0.7359 +vn -0.2236 0.9487 0.2236 +vn -0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 -0.9239 +vn 0.7071 -0.0067 0.7071 +vn 0.3827 -0.0067 0.9239 +vn -0.9239 -0.0067 -0.3827 +vn 0.9239 -0.0067 0.3827 +vn -1.0000 -0.0067 -0.0000 +vn 1.0000 -0.0067 0.0000 +vn -0.9239 -0.0067 0.3827 +vn 0.9239 -0.0067 -0.3827 +vn -0.7071 -0.0067 0.7071 +vn 0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 0.9239 +vn 0.3827 -0.0067 -0.9239 +vn -0.0000 -0.0067 1.0000 +vn 0.0000 -0.0067 -1.0000 +vn 0.0000 0.7208 0.6931 +vn -0.2652 0.7208 0.6403 +vn -0.2652 0.7208 -0.6403 +vn 0.0000 0.7208 -0.6931 +vn 0.2652 0.7208 -0.6403 +vn 0.2652 0.7208 -0.6404 +vn 0.2652 0.7208 0.6404 +vn -0.4901 0.7208 -0.4901 +vn 0.4901 0.7208 0.4901 +vn -0.6403 0.7208 -0.2652 +vn 0.6403 0.7208 0.2652 +vn -0.6931 0.7208 0.0000 +vn 0.6931 0.7208 0.0000 +vn -0.6403 0.7208 0.2652 +vn 0.6403 0.7208 -0.2652 +vn -0.4901 0.7208 0.4901 +vn 0.4901 0.7208 -0.4901 +vn 0.5000 -0.7071 0.5000 +vn 0.6533 -0.7071 0.2706 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn 0.0000 1.0000 -0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn 0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 0.0000 +vn 0.8263 0.4472 -0.3423 +vn 0.6325 0.4472 -0.6325 +vn 0.3423 0.4472 -0.8263 +vn 0.0000 0.4472 -0.8944 +vn 0.7071 -0.7071 0.0000 +vn 0.6533 -0.7071 -0.2706 +vn 0.5000 -0.7071 -0.5000 +vn 0.2706 -0.7071 -0.6533 +vn 0.0000 -0.7071 -0.7071 +vn -0.2706 -0.7071 -0.6533 +vn -0.5000 -0.7071 -0.5000 +vn -0.6533 -0.7071 -0.2706 +vn -0.7071 -0.7071 -0.0000 +vn -0.6533 -0.7071 0.2706 +vn -0.5000 -0.7071 0.5000 +vn -0.2706 -0.7071 0.6533 +vn -0.0000 -0.7071 0.7071 +vn 0.2706 -0.7071 0.6533 +vn -0.3827 0.0000 -0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 -0.0000 0.3827 +vn -1.0000 -0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.9239 -0.0000 0.3827 +vn 0.9239 -0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7016 0.1240 0.7016 +vn -0.3797 0.1240 0.9167 +vn 0.7016 0.1240 -0.7016 +vn 0.3797 0.1240 -0.9167 +vn 0.0000 0.1240 0.9923 +vn 0.0000 0.1240 -0.9923 +vn -0.3797 0.1240 -0.9167 +vn 0.3797 0.1240 0.9167 +vn -0.7016 0.1240 -0.7016 +vn 0.7016 0.1240 0.7016 +vn -0.9167 0.1240 -0.3797 +vn 0.9167 0.1240 0.3797 +vn -0.9923 0.1240 -0.0000 +vn 0.9923 0.1240 -0.0000 +vn -0.9167 0.1240 0.3797 +vn 0.9167 0.1240 -0.3797 +s off +f 4302/1692/776 4303/1693/776 4304/1694/776 +f 4304/1694/776 4305/1695/776 4306/1696/776 +f 4305/1697/776 4307/1698/776 4306/1696/776 +f 4308/1699/776 4309/1700/776 4307/1698/776 +f 4310/1701/776 4311/1702/776 4309/1700/776 +f 4312/1703/776 4313/1704/776 4311/1702/776 +f 4314/1705/776 4315/1706/776 4313/1704/776 +f 4315/1706/776 4316/1707/776 4317/1708/776 +f 4316/1709/776 4318/1710/776 4317/1708/776 +f 4318/1711/776 4319/1712/776 4320/1713/776 +f 4320/1713/776 4321/1714/776 4322/1715/776 +f 4321/1716/776 4323/1717/776 4322/1715/776 +f 4324/1718/776 4325/1719/776 4323/1717/776 +f 4325/1719/776 4326/1720/776 4327/1721/776 +f 4326/1722/776 4328/1723/776 4327/1721/776 +f 4329/1724/776 4302/1692/776 4328/1723/776 +f 4330/1725/776 4331/1726/776 4332/1727/776 +f 4333/1728/777 4334/1729/777 4335/1730/777 +f 4336/1731/778 4333/1728/778 4337/1732/778 +f 4333/1733/779 4335/1734/779 4337/1732/779 +f 4334/1735/776 4338/1736/776 4336/1731/776 +f 4339/1737/780 4340/1738/780 4341/1739/780 +f 4342/1740/781 4339/1737/781 4343/1741/781 +f 4339/1742/782 4341/1743/782 4343/1741/782 +f 4340/1744/776 4344/1745/776 4342/1740/776 +f 4345/1746/780 4346/1747/780 4347/1748/780 +f 4348/1749/781 4345/1746/781 4349/1750/781 +f 4345/1751/783 4347/1752/783 4349/1750/783 +f 4346/1753/776 4350/1754/776 4348/1749/776 +f 4351/1755/776 4352/1756/776 4353/1757/776 +f 4354/1758/784 4355/1759/784 4356/1760/784 +f 4353/1757/785 4354/1761/785 4356/1760/785 +f 4354/1761/786 4351/1762/786 4355/1763/786 +f 4357/1764/777 4358/1765/777 4359/1766/777 +f 4360/1767/778 4357/1764/778 4361/1768/778 +f 4357/1769/787 4359/1770/787 4361/1768/787 +f 4358/1771/776 4362/1772/776 4360/1767/776 +f 4363/1773/776 4364/1774/776 4365/1775/776 +f 4366/1776/788 4367/1777/788 4368/1778/788 +f 4365/1775/785 4366/1779/785 4368/1778/785 +f 4366/1779/786 4363/1780/786 4367/1781/786 +f 4369/1782/776 4370/1783/776 4371/1784/776 +f 4372/1785/789 4373/1786/789 4374/1787/789 +f 4371/1784/790 4372/1788/790 4374/1787/790 +f 4372/1788/791 4369/1789/791 4373/1790/791 +f 4375/1791/776 4376/1792/776 4377/1793/776 +f 4378/1794/792 4379/1795/792 4380/1796/792 +f 4377/1793/790 4378/1797/790 4380/1796/790 +f 4378/1797/791 4375/1798/791 4379/1799/791 +f 4302/1692/776 4381/1800/776 4303/1693/776 +f 4304/1694/776 4303/1801/776 4305/1695/776 +f 4305/1697/776 4308/1802/776 4307/1698/776 +f 4308/1699/776 4310/1803/776 4309/1700/776 +f 4310/1701/776 4312/1804/776 4311/1702/776 +f 4312/1703/776 4314/1805/776 4313/1704/776 +f 4314/1705/776 4382/1806/776 4315/1706/776 +f 4315/1706/776 4382/1807/776 4316/1707/776 +f 4316/1709/776 4383/1808/776 4318/1710/776 +f 4318/1711/776 4383/1809/776 4319/1712/776 +f 4320/1713/776 4319/1810/776 4321/1714/776 +f 4321/1716/776 4324/1811/776 4323/1717/776 +f 4324/1718/776 4384/1812/776 4325/1719/776 +f 4325/1719/776 4384/1813/776 4326/1720/776 +f 4326/1722/776 4329/1814/776 4328/1723/776 +f 4329/1724/776 4381/1815/776 4302/1692/776 +f 4330/1725/776 4385/1816/776 4386/1817/776 +f 4386/1817/776 4387/1818/776 4331/1726/776 +f 4331/1726/776 4388/1819/776 4389/1820/776 +f 4389/1820/776 4390/1821/776 4332/1727/776 +f 4332/1727/776 4391/1822/776 4392/1823/776 +f 4392/1823/776 4393/1824/776 4394/1825/776 +f 4394/1825/776 4395/1826/776 4396/1827/776 +f 4396/1827/776 4397/1828/776 4394/1825/776 +f 4397/1828/776 4330/1725/776 4394/1825/776 +f 4330/1725/776 4386/1817/776 4331/1726/776 +f 4331/1726/776 4389/1820/776 4332/1727/776 +f 4332/1727/776 4392/1823/776 4330/1725/776 +f 4392/1823/776 4394/1825/776 4330/1725/776 +f 4333/1728/777 4338/1736/777 4334/1729/777 +f 4336/1731/778 4338/1736/778 4333/1728/778 +f 4339/1737/780 4344/1745/780 4340/1738/780 +f 4342/1740/781 4344/1745/781 4339/1737/781 +f 4345/1746/780 4350/1754/780 4346/1747/780 +f 4348/1749/781 4350/1754/781 4345/1746/781 +f 4353/1757/785 4352/1756/785 4354/1761/785 +f 4354/1761/786 4352/1756/786 4351/1762/786 +f 4357/1764/777 4362/1772/777 4358/1765/777 +f 4360/1767/778 4362/1772/778 4357/1764/778 +f 4365/1775/785 4364/1774/785 4366/1779/785 +f 4366/1779/786 4364/1774/786 4363/1780/786 +f 4371/1784/790 4370/1783/790 4372/1788/790 +f 4372/1788/791 4370/1783/791 4369/1789/791 +f 4377/1793/790 4376/1792/790 4378/1797/790 +f 4378/1797/791 4376/1792/791 4375/1798/791 +s 1 +f 4398/1829/793 4399/1830/794 4400/1831/794 +f 4401/1832/795 4402/1833/796 4403/1834/796 +f 4404/1835/797 4405/1836/793 4398/1829/793 +f 4406/1837/798 4407/1838/795 4401/1832/795 +f 4408/1839/799 4409/1840/797 4404/1835/797 +f 4410/1841/800 4411/1842/798 4406/1837/798 +f 4412/1843/801 4413/1844/799 4408/1845/799 +f 4414/1846/802 4415/1847/800 4410/1841/800 +f 4416/1848/803 4417/1849/801 4412/1843/801 +f 4418/1850/804 4419/1851/802 4414/1846/802 +f 4420/1852/805 4421/1853/803 4416/1848/803 +f 4422/1854/806 4423/1855/804 4418/1850/804 +f 4424/1856/807 4425/1857/805 4420/1852/805 +f 4400/1831/794 4426/1858/808 4427/1859/808 +f 4427/1859/808 4428/1860/806 4422/1854/806 +f 4403/1834/796 4429/1861/807 4424/1856/807 +f 4429/1861/809 4430/1862/810 4425/1857/810 +f 4399/1830/811 4431/1863/812 4426/1858/812 +f 4426/1858/812 4432/1864/813 4428/1860/814 +f 4402/1833/815 4433/1865/809 4429/1861/809 +f 4405/1836/816 4434/1866/811 4399/1830/811 +f 4407/1838/817 4435/1867/815 4402/1833/815 +f 4409/1840/818 4436/1868/816 4405/1836/816 +f 4407/1838/817 4437/1869/819 4438/1870/817 +f 4413/1871/820 4439/1872/818 4409/1840/818 +f 4415/1847/821 4437/1873/819 4411/1842/819 +f 4417/1849/822 4440/1874/820 4413/1844/820 +f 4415/1847/821 4441/1875/823 4442/1876/821 +f 4421/1853/824 4443/1877/822 4417/1849/822 +f 4423/1855/825 4441/1878/823 4419/1851/823 +f 4425/1857/810 4444/1879/824 4421/1853/824 +f 4428/1860/814 4445/1880/825 4423/1855/825 +f 4446/1881/826 4406/1837/827 4401/1832/826 +f 4434/1866/828 4436/1882/829 4447/1883/830 +f 4436/1868/829 4439/1884/831 4447/1885/830 +f 4439/1872/831 4440/1886/832 4447/1887/830 +f 4440/1874/832 4443/1888/833 4447/1889/830 +f 4443/1877/833 4444/1890/834 4447/1891/830 +f 4444/1879/834 4430/1892/835 4447/1893/830 +f 4430/1862/835 4433/1894/836 4447/1895/830 +f 4433/1865/836 4435/1896/837 4447/1897/830 +f 4435/1867/837 4438/1898/838 4447/1899/830 +f 4438/1870/838 4437/1869/839 4447/1900/830 +f 4437/1873/839 4442/1901/840 4447/1902/830 +f 4442/1876/840 4441/1875/841 4447/1903/830 +f 4441/1878/841 4445/1904/842 4447/1905/830 +f 4445/1880/842 4432/1906/843 4447/1907/830 +f 4432/1864/843 4431/1908/844 4447/1909/830 +f 4431/1863/844 4434/1910/828 4447/1911/830 +f 4448/1912/827 4410/1841/845 4406/1837/827 +f 4449/1913/845 4414/1846/846 4410/1841/845 +f 4450/1914/846 4418/1850/847 4414/1846/846 +f 4451/1915/847 4422/1854/848 4418/1850/847 +f 4422/1854/848 4452/1916/849 4427/1859/849 +f 4452/1917/849 4400/1831/850 4427/1859/849 +f 4453/1918/850 4398/1829/851 4400/1831/850 +f 4454/1919/851 4404/1835/852 4398/1829/851 +f 4455/1920/852 4408/1839/853 4404/1835/852 +f 4456/1921/853 4412/1843/854 4408/1845/853 +f 4457/1922/854 4416/1848/855 4412/1843/854 +f 4458/1923/855 4420/1852/856 4416/1848/855 +f 4459/1924/856 4424/1856/857 4420/1852/856 +f 4460/1925/857 4403/1834/858 4424/1856/857 +f 4461/1926/858 4401/1832/826 4403/1834/858 +f 4453/1918/859 4462/1927/860 4454/1928/860 +f 4461/1926/861 4463/1929/862 4446/1930/862 +f 4454/1919/860 4464/1931/863 4455/1932/863 +f 4446/1881/862 4465/1933/864 4448/1934/864 +f 4455/1920/863 4466/1935/865 4456/1936/865 +f 4448/1912/864 4467/1937/866 4449/1938/866 +f 4456/1921/865 4468/1939/867 4457/1940/867 +f 4449/1913/866 4469/1941/868 4450/1942/868 +f 4457/1922/867 4470/1943/869 4458/1944/869 +f 4450/1914/868 4471/1945/870 4451/1946/870 +f 4458/1923/869 4472/1947/871 4459/1948/871 +f 4451/1915/870 4473/1949/872 4474/1950/872 +f 4459/1924/871 4475/1951/873 4460/1952/873 +f 4452/1917/874 4476/1953/859 4453/1954/859 +f 4474/1955/872 4477/1956/874 4452/1916/874 +f 4460/1925/873 4478/1957/861 4461/1958/861 +f 4470/1959/875 4479/1960/876 4472/1947/876 +f 4471/1961/877 4480/1962/878 4473/1949/878 +f 4472/1963/876 4481/1964/879 4475/1951/879 +f 4477/1965/880 4482/1966/881 4476/1953/881 +f 4473/1967/878 4483/1968/880 4477/1956/880 +f 4478/1957/882 4481/1964/879 4484/1969/882 +f 4476/1970/881 4485/1971/883 4462/1927/883 +f 4478/1972/882 4486/1973/884 4463/1929/884 +f 4462/1974/883 4487/1975/885 4464/1931/885 +f 4463/1976/884 4488/1977/886 4465/1933/886 +f 4464/1978/885 4489/1979/887 4466/1935/887 +f 4465/1980/886 4490/1981/888 4467/1937/888 +f 4466/1982/887 4491/1983/889 4468/1939/889 +f 4467/1984/888 4492/1985/890 4469/1941/890 +f 4468/1986/889 4493/1987/875 4470/1943/875 +f 4469/1988/890 4494/1989/877 4471/1945/877 +f 4488/1977/864 4304/1694/866 4490/1981/866 +f 4489/1990/865 4320/1713/867 4491/1983/867 +f 4490/1981/866 4306/1696/868 4492/1985/868 +f 4491/1983/867 4322/1715/869 4493/1987/869 +f 4492/1985/868 4307/1698/870 4494/1989/870 +f 4493/1987/869 4323/1717/871 4479/1960/871 +f 4494/1989/870 4309/1700/872 4480/1962/872 +f 4479/1960/871 4325/1719/873 4481/1964/873 +f 4483/1968/874 4313/1704/859 4482/1966/859 +f 4480/1962/872 4311/1702/874 4483/1968/874 +f 4481/1964/873 4327/1721/861 4484/1969/861 +f 4482/1966/859 4315/1706/860 4485/1971/860 +f 4484/1969/861 4328/1723/862 4486/1973/862 +f 4485/1971/860 4317/1708/863 4487/1975/863 +f 4486/1973/862 4302/1692/864 4488/1977/864 +f 4487/1975/863 4318/1710/865 4489/1979/865 +f 4308/1699/870 4387/1991/872 4310/1803/872 +f 4324/1718/871 4392/1992/873 4384/1812/873 +f 4312/1703/874 4385/1993/859 4314/1805/859 +f 4310/1701/872 4386/1994/874 4312/1804/874 +f 4384/1813/873 4391/1995/861 4326/1720/861 +f 4314/1705/859 4330/1996/860 4382/1806/860 +f 4326/1722/861 4332/1997/862 4329/1814/862 +f 4382/1807/860 4397/1998/863 4316/1707/863 +f 4329/1724/862 4390/1999/864 4381/1815/864 +f 4316/1709/863 4396/2000/865 4383/1808/865 +f 4381/1800/864 4389/2001/866 4303/1693/866 +f 4383/1809/865 4395/2002/867 4319/1712/867 +f 4303/1801/866 4388/2003/868 4305/1695/868 +f 4319/1810/867 4394/2004/869 4321/1714/869 +f 4305/1697/868 4331/2005/870 4308/1802/870 +f 4321/1716/869 4393/2006/871 4324/1811/871 +f 4398/1829/793 4405/1836/793 4399/1830/794 +f 4401/1832/795 4407/1838/795 4402/1833/796 +f 4404/1835/797 4409/1840/797 4405/1836/793 +f 4406/1837/798 4411/1842/798 4407/1838/795 +f 4408/1839/799 4413/1871/799 4409/1840/797 +f 4410/1841/800 4415/1847/800 4411/1842/798 +f 4412/1843/801 4417/1849/801 4413/1844/799 +f 4414/1846/802 4419/1851/802 4415/1847/800 +f 4416/1848/803 4421/1853/803 4417/1849/801 +f 4418/1850/804 4423/1855/804 4419/1851/802 +f 4420/1852/805 4425/1857/805 4421/1853/803 +f 4422/1854/806 4428/1860/806 4423/1855/804 +f 4424/1856/807 4429/1861/807 4425/1857/805 +f 4400/1831/794 4399/1830/794 4426/1858/808 +f 4427/1859/808 4426/1858/808 4428/1860/806 +f 4403/1834/796 4402/1833/796 4429/1861/807 +f 4429/1861/809 4433/1894/809 4430/1862/810 +f 4399/1830/811 4434/1910/811 4431/1863/812 +f 4426/1858/812 4431/1908/812 4432/1864/813 +f 4402/1833/815 4435/1896/815 4433/1865/809 +f 4405/1836/816 4436/1882/816 4434/1866/811 +f 4407/1838/817 4438/1898/817 4435/1867/815 +f 4409/1840/818 4439/1884/818 4436/1868/816 +f 4407/1838/817 4411/1842/819 4437/1869/819 +f 4413/1871/820 4440/1886/820 4439/1872/818 +f 4415/1847/821 4442/1901/821 4437/1873/819 +f 4417/1849/822 4443/1888/822 4440/1874/820 +f 4415/1847/821 4419/1851/823 4441/1875/823 +f 4421/1853/824 4444/1890/824 4443/1877/822 +f 4423/1855/825 4445/1904/825 4441/1878/823 +f 4425/1857/810 4430/1892/810 4444/1879/824 +f 4428/1860/814 4432/1906/813 4445/1880/825 +f 4446/1881/826 4448/1934/827 4406/1837/827 +f 4448/1912/827 4449/1938/845 4410/1841/845 +f 4449/1913/845 4450/1942/846 4414/1846/846 +f 4450/1914/846 4451/1946/847 4418/1850/847 +f 4451/1915/847 4474/1950/848 4422/1854/848 +f 4422/1854/848 4474/1955/848 4452/1916/849 +f 4452/1917/849 4453/1954/850 4400/1831/850 +f 4453/1918/850 4454/1928/851 4398/1829/851 +f 4454/1919/851 4455/1932/852 4404/1835/852 +f 4455/1920/852 4456/1936/853 4408/1839/853 +f 4456/1921/853 4457/1940/854 4412/1843/854 +f 4457/1922/854 4458/1944/855 4416/1848/855 +f 4458/1923/855 4459/1948/856 4420/1852/856 +f 4459/1924/856 4460/1952/857 4424/1856/857 +f 4460/1925/857 4461/1958/858 4403/1834/858 +f 4461/1926/858 4446/1930/826 4401/1832/826 +f 4453/1918/859 4476/1970/859 4462/1927/860 +f 4461/1926/861 4478/1972/861 4463/1929/862 +f 4454/1919/860 4462/1974/860 4464/1931/863 +f 4446/1881/862 4463/1976/862 4465/1933/864 +f 4455/1920/863 4464/1978/863 4466/1935/865 +f 4448/1912/864 4465/1980/864 4467/1937/866 +f 4456/1921/865 4466/1982/865 4468/1939/867 +f 4449/1913/866 4467/1984/866 4469/1941/868 +f 4457/1922/867 4468/1986/867 4470/1943/869 +f 4450/1914/868 4469/1988/868 4471/1945/870 +f 4458/1923/869 4470/1959/869 4472/1947/871 +f 4451/1915/870 4471/1961/870 4473/1949/872 +f 4459/1924/871 4472/1963/871 4475/1951/873 +f 4452/1917/874 4477/1965/874 4476/1953/859 +f 4474/1955/872 4473/1967/872 4477/1956/874 +f 4460/1925/873 4475/2007/873 4478/1957/861 +f 4470/1959/875 4493/1987/875 4479/1960/876 +f 4471/1961/877 4494/1989/877 4480/1962/878 +f 4472/1963/876 4479/1960/876 4481/1964/879 +f 4477/1965/880 4483/1968/880 4482/1966/881 +f 4473/1967/878 4480/1962/878 4483/1968/880 +f 4478/1957/882 4475/2007/879 4481/1964/879 +f 4476/1970/881 4482/1966/881 4485/1971/883 +f 4478/1972/882 4484/1969/882 4486/1973/884 +f 4462/1974/883 4485/1971/883 4487/1975/885 +f 4463/1976/884 4486/1973/884 4488/1977/886 +f 4464/1978/885 4487/1975/885 4489/1979/887 +f 4465/1980/886 4488/1977/886 4490/1981/888 +f 4466/1982/887 4489/1990/887 4491/1983/889 +f 4467/1984/888 4490/1981/888 4492/1985/890 +f 4468/1986/889 4491/1983/889 4493/1987/875 +f 4469/1988/890 4492/1985/890 4494/1989/877 +f 4488/1977/864 4302/1692/864 4304/1694/866 +f 4489/1990/865 4318/1711/865 4320/1713/867 +f 4490/1981/866 4304/1694/866 4306/1696/868 +f 4491/1983/867 4320/1713/867 4322/1715/869 +f 4492/1985/868 4306/1696/868 4307/1698/870 +f 4493/1987/869 4322/1715/869 4323/1717/871 +f 4494/1989/870 4307/1698/870 4309/1700/872 +f 4479/1960/871 4323/1717/871 4325/1719/873 +f 4483/1968/874 4311/1702/874 4313/1704/859 +f 4480/1962/872 4309/1700/872 4311/1702/874 +f 4481/1964/873 4325/1719/873 4327/1721/861 +f 4482/1966/859 4313/1704/859 4315/1706/860 +f 4484/1969/861 4327/1721/861 4328/1723/862 +f 4485/1971/860 4315/1706/860 4317/1708/863 +f 4486/1973/862 4328/1723/862 4302/1692/864 +f 4487/1975/863 4317/1708/863 4318/1710/865 +f 4308/1699/870 4331/2008/870 4387/1991/872 +f 4324/1718/871 4393/2009/871 4392/1992/873 +f 4312/1703/874 4386/2010/874 4385/1993/859 +f 4310/1701/872 4387/2011/872 4386/1994/874 +f 4384/1813/873 4392/2012/873 4391/1995/861 +f 4314/1705/859 4385/2013/859 4330/1996/860 +f 4326/1722/861 4391/2014/861 4332/1997/862 +f 4382/1807/860 4330/2015/860 4397/1998/863 +f 4329/1724/862 4332/2016/862 4390/1999/864 +f 4316/1709/863 4397/2017/863 4396/2000/865 +f 4381/1800/864 4390/2018/864 4389/2001/866 +f 4383/1809/865 4396/2019/865 4395/2002/867 +f 4303/1801/866 4389/2020/866 4388/2003/868 +f 4319/1810/867 4395/2021/867 4394/2004/869 +f 4305/1697/868 4388/2022/868 4331/2005/870 +f 4321/1716/869 4394/2023/869 4393/2006/871 +o V2_Missile +v 0.265165 2.500000 -0.265165 +v 0.265165 2.500000 0.265165 +v -0.265165 2.500000 0.265165 +v 0.729204 3.500000 -0.773398 +v 0.773398 2.000000 -0.729204 +v 0.729204 2.000000 -0.773398 +v -0.773398 3.500000 -0.729204 +v -0.729204 2.000000 -0.773398 +v -0.773398 2.000000 -0.729204 +v -0.198874 2.500000 -0.243068 +v -0.596621 2.000000 -0.552427 +v -0.552427 2.000000 -0.596621 +v 0.243068 2.500000 -0.198874 +v 0.552427 2.000000 -0.596621 +v 0.596621 2.000000 -0.552427 +v -0.729204 3.500000 -0.773398 +v 0.773398 3.500000 -0.729204 +v -0.243068 2.500000 -0.198874 +v 0.198874 2.500000 -0.243068 +v -0.243068 4.500000 -0.198874 +v -0.198874 4.500000 -0.243068 +v 0.198874 4.500000 -0.243068 +v 0.243068 4.500000 -0.198874 +v -0.243068 4.500000 0.198874 +v -0.729204 3.500000 0.773398 +v -0.198874 4.500000 0.243068 +v -0.552427 2.000000 0.596621 +v -0.773398 2.000000 0.729204 +v -0.596621 2.000000 0.552427 +v -0.729204 2.000000 0.773398 +v -0.198874 2.500000 0.243068 +v -0.773398 3.500000 0.729204 +v -0.243068 2.500000 0.198874 +v 0.729204 3.500000 0.773398 +v 0.243068 4.500000 0.198874 +v 0.198874 4.500000 0.243068 +v 0.552427 2.000000 0.596621 +v 0.773398 2.000000 0.729204 +v 0.729204 2.000000 0.773398 +v 0.773398 3.500000 0.729204 +v 0.243068 2.500000 0.198874 +v 0.198874 2.500000 0.243068 +v -0.265165 2.500000 -0.265165 +v -0.143506 2.500000 -0.346455 +v 0.000000 2.500000 -0.375000 +v 0.143506 2.500000 -0.346455 +v 0.346455 2.500000 -0.143506 +v 0.375000 2.500000 0.000000 +v 0.346455 2.500000 0.143506 +v 0.143506 2.500000 0.346455 +v 0.000000 2.500000 0.375000 +v -0.143506 2.500000 0.346455 +v -0.346455 2.500000 0.143506 +v -0.375000 2.500000 0.000000 +v -0.346455 2.500000 -0.143506 +v 0.596621 2.000000 0.552427 +v 0.353553 3.500000 0.353553 +v 0.191342 6.000000 0.461940 +v 0.191342 3.500000 0.461940 +v -0.461940 3.500000 -0.191342 +v -0.353553 6.000000 -0.353553 +v -0.353553 3.500000 -0.353553 +v 0.461940 3.500000 0.191342 +v 0.353553 6.000000 0.353554 +v -0.500000 3.500000 0.000000 +v -0.461940 6.000000 -0.191342 +v 0.500000 3.500000 0.000000 +v 0.461940 6.000000 0.191342 +v -0.461940 3.500000 0.191342 +v -0.500000 6.000000 0.000000 +v 0.461940 3.500000 -0.191342 +v 0.500000 6.000000 0.000000 +v -0.353553 3.500000 0.353553 +v -0.461940 6.000000 0.191342 +v 0.353553 3.500000 -0.353554 +v 0.461940 6.000000 -0.191342 +v -0.191342 3.500000 0.461940 +v -0.353553 6.000000 0.353553 +v 0.191341 3.500000 -0.461940 +v 0.353553 6.000000 -0.353554 +v 0.000000 6.000000 0.500000 +v -0.191342 6.000000 0.461940 +v -0.191342 3.500000 -0.461940 +v 0.000000 6.000000 -0.500000 +v 0.000000 3.500000 -0.500000 +v 0.191341 6.000000 -0.461940 +v 0.000000 3.500000 0.500000 +v -0.191342 6.000000 -0.461940 +v 0.000000 7.500000 -0.375000 +v 0.143506 7.500000 -0.346455 +v 0.000000 7.500000 0.375000 +v -0.265165 7.500000 -0.265165 +v -0.143506 7.500000 -0.346455 +v 0.265165 7.500000 0.265165 +v 0.143506 7.500000 0.346455 +v -0.375000 7.500000 0.000000 +v -0.346455 7.500000 -0.143506 +v 0.375000 7.500000 0.000000 +v 0.346455 7.500000 0.143506 +v -0.265165 7.500000 0.265165 +v -0.346455 7.500000 0.143506 +v 0.346455 7.500000 -0.143506 +v 0.265165 7.500000 -0.265165 +v -0.143506 7.500000 0.346455 +v 0.000000 9.000000 0.000000 +vt 0.954652 0.411214 +vt 0.954652 0.492632 +vt 0.815840 0.492632 +vt 0.803279 0.240385 +vt 0.786885 0.009615 +vt 0.803279 0.009615 +vt 0.803279 0.750000 +vt 0.786885 0.519231 +vt 0.803279 0.519231 +vt 1.000000 0.509615 +vt 0.868852 0.519231 +vt 0.868852 0.509615 +vt 1.000000 -0.000000 +vt 0.868852 0.009615 +vt 0.868852 -0.000000 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 0.596154 +vt 1.000000 0.086538 +vt 0.803279 0.509615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.803279 0.000000 +vt 0.786885 0.240385 +vt 0.803279 0.394231 +vt 0.786885 0.394231 +vt 0.786885 0.394231 +vt 0.803279 0.240385 +vt 0.803279 0.394231 +vt 0.868852 0.009615 +vt 0.803279 0.000000 +vt 0.868852 -0.000000 +vt 0.803279 0.009615 +vt 1.000000 0.086538 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 -0.000000 +vt 0.786885 0.009615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.868852 0.509615 +vt 0.803279 0.519231 +vt 0.803279 0.509615 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 1.000000 0.519231 +vt 1.000000 0.509615 +vt 0.786885 0.519231 +vt 0.815840 0.411214 +vt 0.847684 0.398734 +vt 0.885246 0.394352 +vt 0.922808 0.398734 +vt 0.975929 0.429891 +vt 0.983401 0.451923 +vt 0.975929 0.473955 +vt 0.922808 0.505112 +vt 0.885246 0.509494 +vt 0.847684 0.505112 +vt 0.794563 0.473955 +vt 0.787091 0.451923 +vt 0.794563 0.429891 +vt 1.000000 0.519231 +vt 1.000000 0.009615 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.903846 +vt 1.000000 0.394231 +vt 0.786885 0.240385 +vt 1.000000 0.394231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.009615 +vt 0.868852 0.519231 +vt 1.000000 0.903846 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 0.295082 0.153846 +vt 0.245902 0.538462 +vt 0.245902 0.153846 +vt 0.737705 0.153846 +vt 0.688525 0.538462 +vt 0.688525 0.153846 +vt 0.344262 0.153846 +vt 0.295082 0.538462 +vt 0.786885 0.153846 +vt 0.737705 0.538462 +vt 0.393443 0.153846 +vt 0.344262 0.538462 +vt 0.049180 0.153846 +vt -0.000000 0.538462 +vt -0.000000 0.153846 +vt 0.442623 0.153846 +vt 0.393443 0.538462 +vt 0.098361 0.153846 +vt 0.049180 0.538462 +vt 0.491803 0.153846 +vt 0.442623 0.538462 +vt 0.147541 0.153846 +vt 0.098361 0.538462 +vt 0.540984 0.153846 +vt 0.491803 0.538462 +vt 0.196721 0.538462 +vt 0.147541 0.538462 +vt 0.639344 0.153846 +vt 0.590164 0.538462 +vt 0.590164 0.153846 +vt 0.540984 0.538462 +vt 0.196721 0.153846 +vt 0.639344 0.538462 +vt 0.573770 0.769231 +vt 0.540984 0.769231 +vt 0.196721 0.769231 +vt 0.672131 0.769231 +vt 0.639344 0.769231 +vt 0.278689 0.769231 +vt 0.245902 0.769231 +vt 0.688525 0.769231 +vt 0.295082 0.769231 +vt 0.770492 0.769231 +vt 0.737705 0.769231 +vt 0.377049 0.769231 +vt 0.344262 0.769231 +vt -0.000000 0.769231 +vt 0.393443 0.769231 +vt 0.081967 0.769231 +vt 0.049180 0.769231 +vt 0.442623 0.769231 +vt 0.098361 0.769231 +vt 0.491803 0.769231 +vt 0.147541 0.769231 +vt 0.590164 0.769231 +vt 0.655738 1.000000 +vt 0.721311 0.769231 +vt 0.704918 1.000000 +vt 0.754098 1.000000 +vt 0.032787 0.769231 +vt 0.016393 1.000000 +vt 0.065574 1.000000 +vt 0.131148 0.769231 +vt 0.114754 1.000000 +vt 0.180328 0.769231 +vt 0.163934 1.000000 +vt 0.229508 0.769231 +vt 0.213115 1.000000 +vt 0.262295 1.000000 +vt 0.327869 0.769231 +vt 0.311475 1.000000 +vt 0.360656 1.000000 +vt 0.426230 0.769231 +vt 0.409836 1.000000 +vt 0.475410 0.769231 +vt 0.459016 1.000000 +vt 0.524590 0.769231 +vt 0.508197 1.000000 +vt 0.557377 1.000000 +vt 0.622951 0.769231 +vt 0.606557 1.000000 +vt 0.278689 0.000000 +vt 0.688525 0.000000 +vt 0.721311 0.000000 +vt 0.295082 0.000000 +vt 0.327869 0.000000 +vt 0.737705 0.000000 +vt 0.770492 0.000000 +vt 0.344262 0.000000 +vt 0.377049 0.000000 +vt -0.000000 0.000000 +vt 0.032787 0.000000 +vt 0.426230 0.000000 +vt 0.081967 0.000000 +vt 0.475410 0.000000 +vt 0.131148 0.000000 +vt 0.491803 0.000000 +vt 0.524590 0.000000 +vt 0.180328 0.000000 +vt 0.622951 0.000000 +vt 0.573770 0.000000 +vt 0.196721 0.000000 +vt 0.229508 0.000000 +vt 0.639344 0.000000 +vt 0.672131 0.000000 +vt 0.786885 0.538462 +vt 0.245902 0.000000 +vt 0.393443 0.000000 +vt 0.049180 0.000000 +vt 0.442623 0.000000 +vt 0.098361 0.000000 +vt 0.147541 0.000000 +vt 0.590164 0.000000 +vt 0.540984 0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.5000 -0.7071 0.5000 +vn -0.5000 -0.7071 0.5000 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn -0.5657 0.6000 -0.5657 +vn 0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 0.5657 +vn 0.5000 -0.7071 -0.5000 +vn 0.5657 0.6000 0.5657 +vn -0.5000 -0.7071 -0.5000 +vn 0.7058 -0.0617 0.7058 +vn 0.3824 0.0413 0.9231 +vn 0.3820 -0.0617 0.9221 +vn -0.9221 -0.0617 -0.3820 +vn -0.7065 0.0413 -0.7065 +vn -0.7058 -0.0617 -0.7058 +vn 0.9221 -0.0617 0.3820 +vn 0.7065 0.0413 0.7065 +vn -0.9981 -0.0617 -0.0000 +vn -0.9231 0.0413 -0.3824 +vn 0.9981 -0.0617 0.0000 +vn 0.9231 0.0413 0.3824 +vn -0.9221 -0.0617 0.3820 +vn -0.9991 0.0413 0.0000 +vn 0.9221 -0.0617 -0.3820 +vn 0.9991 0.0413 -0.0000 +vn -0.7058 -0.0617 0.7058 +vn -0.9231 0.0413 0.3824 +vn 0.7058 -0.0617 -0.7058 +vn 0.9231 0.0413 -0.3824 +vn -0.3820 -0.0617 0.9221 +vn -0.7065 0.0413 0.7065 +vn 0.3820 -0.0617 -0.9221 +vn 0.7065 0.0413 -0.7065 +vn -0.0000 0.0413 0.9991 +vn -0.3824 0.0413 0.9231 +vn -0.3820 -0.0617 -0.9221 +vn 0.0000 0.0413 -0.9991 +vn 0.0000 -0.0617 -0.9981 +vn 0.3824 0.0413 -0.9231 +vn 0.0000 -0.0617 0.9981 +vn -0.3824 0.0413 -0.9231 +vn -0.0000 0.1617 -0.9868 +vn 0.3776 0.1617 -0.9117 +vn 0.0000 0.1617 0.9868 +vn -0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 -0.9117 +vn 0.6978 0.1617 0.6978 +vn 0.3776 0.1617 0.9117 +vn -0.9868 0.1617 -0.0000 +vn -0.9117 0.1617 -0.3776 +vn 0.9868 0.1617 -0.0000 +vn 0.9117 0.1617 0.3776 +vn -0.6978 0.1617 0.6978 +vn -0.9117 0.1617 0.3776 +vn 0.9117 0.1617 -0.3776 +vn 0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 0.9117 +vn 0.0000 1.0000 0.0000 +vn 0.7016 -0.1240 0.7016 +vn -0.7016 -0.1240 -0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 0.9923 +vn -0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 -0.9923 +vn 0.3797 -0.1240 0.9167 +s off +f 4495/2024/891 4496/2025/891 4497/2026/891 +f 4498/2027/892 4499/2028/892 4500/2029/892 +f 4501/2030/893 4502/2031/893 4503/2032/893 +f 4504/2033/894 4505/2034/894 4506/2035/894 +f 4507/2036/895 4508/2037/895 4509/2038/895 +f 4510/2039/892 4504/2040/892 4502/2041/892 +f 4511/2042/896 4507/2043/896 4499/2044/896 +f 4501/2030/897 4503/2032/897 4512/2045/897 +f 4498/2027/893 4500/2029/893 4513/2046/893 +f 4505/2034/891 4502/2047/891 4506/2035/891 +f 4510/2048/898 4514/2049/898 4515/2050/898 +f 4509/2038/891 4500/2029/891 4499/2051/891 +f 4511/2052/899 4516/2053/899 4517/2054/899 +f 4518/2055/900 4519/2056/900 4520/2057/900 +f 4521/2058/891 4522/2059/891 4523/2060/891 +f 4519/2056/896 4524/2061/896 4525/2062/896 +f 4526/2063/893 4527/2064/893 4522/2065/893 +f 4527/2066/901 4521/2058/901 4523/2060/901 +f 4519/2056/897 4522/2067/897 4524/2061/897 +f 4528/2068/902 4529/2069/902 4530/2070/902 +f 4531/2071/891 4532/2072/891 4533/2073/891 +f 4534/2074/892 4532/2072/892 4535/2075/892 +f 4528/2076/897 4536/2077/897 4533/2078/897 +f 4535/2079/903 4531/2071/903 4536/2080/903 +f 4534/2074/896 4533/2081/896 4532/2072/896 +f 4537/2082/891 4538/2083/891 4539/2084/891 +f 4539/2084/891 4540/2085/891 4495/2024/891 +f 4495/2024/891 4541/2086/891 4496/2025/891 +f 4541/2086/891 4542/2087/891 4496/2025/891 +f 4542/2087/891 4543/2088/891 4496/2025/891 +f 4496/2025/891 4544/2089/891 4497/2026/891 +f 4544/2089/891 4545/2090/891 4497/2026/891 +f 4545/2090/891 4546/2091/891 4497/2026/891 +f 4497/2026/891 4547/2092/891 4548/2093/891 +f 4548/2093/891 4549/2094/891 4537/2082/891 +f 4537/2082/891 4539/2084/891 4495/2024/891 +f 4497/2026/891 4548/2093/891 4537/2082/891 +f 4537/2082/891 4495/2024/891 4497/2026/891 +f 4498/2027/892 4511/2052/892 4499/2028/892 +f 4501/2030/893 4510/2048/893 4502/2031/893 +f 4504/2033/894 4512/2095/894 4505/2034/894 +f 4507/2036/895 4513/2096/895 4508/2037/895 +f 4515/2097/892 4504/2040/892 4510/2039/892 +f 4504/2040/892 4506/2098/892 4502/2041/892 +f 4517/2099/896 4507/2043/896 4511/2042/896 +f 4507/2043/896 4509/2100/896 4499/2044/896 +f 4505/2034/897 4512/2045/897 4503/2032/897 +f 4512/2045/897 4514/2101/897 4501/2030/897 +f 4508/2037/893 4513/2046/893 4500/2029/893 +f 4513/2046/893 4516/2102/893 4498/2027/893 +f 4505/2034/891 4503/2032/891 4502/2047/891 +f 4510/2048/898 4501/2030/898 4514/2049/898 +f 4509/2038/891 4508/2037/891 4500/2029/891 +f 4511/2052/899 4498/2027/899 4516/2053/899 +f 4518/2055/900 4526/2103/900 4519/2056/900 +f 4521/2058/891 4524/2061/891 4522/2059/891 +f 4521/2058/896 4525/2062/896 4524/2061/896 +f 4525/2062/896 4520/2104/896 4519/2056/896 +f 4518/2105/893 4527/2064/893 4526/2063/893 +f 4527/2064/893 4523/2106/893 4522/2065/893 +f 4527/2066/901 4525/2107/901 4521/2058/901 +f 4519/2056/897 4526/2103/897 4522/2067/897 +f 4528/2068/902 4534/2074/902 4529/2069/902 +f 4531/2071/891 4550/2108/891 4532/2072/891 +f 4550/2108/892 4535/2075/892 4532/2072/892 +f 4535/2075/892 4529/2109/892 4534/2074/892 +f 4530/2110/897 4536/2077/897 4528/2076/897 +f 4536/2077/897 4531/2111/897 4533/2078/897 +f 4535/2079/903 4550/2108/903 4531/2071/903 +f 4534/2074/896 4528/2068/896 4533/2081/896 +s 1 +f 4551/2112/904 4552/2113/905 4553/2114/906 +f 4554/2115/907 4555/2116/908 4556/2117/909 +f 4557/2118/910 4558/2119/911 4551/2112/904 +f 4559/2120/912 4560/2121/913 4554/2115/907 +f 4561/2122/914 4562/2123/915 4557/2118/910 +f 4563/2124/916 4564/2125/917 4559/2126/912 +f 4565/2127/918 4566/2128/919 4561/2122/914 +f 4567/2129/920 4568/2130/921 4563/2124/916 +f 4569/2131/922 4570/2132/923 4565/2127/918 +f 4571/2133/924 4572/2134/925 4567/2129/920 +f 4573/2135/926 4574/2136/927 4569/2131/922 +f 4571/2133/924 4575/2137/928 4576/2138/929 +f 4577/2139/930 4578/2140/931 4579/2141/932 +f 4579/2141/932 4580/2142/933 4573/2135/926 +f 4553/2114/906 4575/2137/928 4581/2143/934 +f 4556/2117/909 4582/2144/935 4577/2139/930 +f 4580/2142/933 4583/2145/936 4584/2146/937 +f 4552/2113/905 4585/2147/938 4575/2137/928 +f 4582/2144/935 4586/2148/939 4587/2149/940 +f 4552/2113/905 4588/2150/941 4589/2151/942 +f 4560/2121/913 4586/2152/939 4555/2116/908 +f 4562/2123/915 4588/2153/941 4558/2119/911 +f 4560/2121/913 4590/2154/943 4591/2155/944 +f 4562/2123/915 4592/2156/945 4593/2157/946 +f 4568/2130/921 4590/2158/943 4564/2125/917 +f 4570/2132/923 4592/2159/945 4566/2128/919 +f 4568/2130/921 4594/2160/947 4595/2161/948 +f 4574/2136/927 4596/2162/949 4570/2132/923 +f 4576/2138/929 4594/2163/947 4572/2134/925 +f 4580/2142/933 4597/2164/950 4574/2136/927 +f 4575/2137/928 4598/2165/951 4576/2138/929 +f 4582/2144/935 4583/2166/936 4578/2140/931 +f 4587/2149/940 4586/2148/939 4599/2167/952 +f 4586/2152/939 4591/2168/944 4599/2169/952 +f 4591/2155/944 4590/2154/943 4599/2170/952 +f 4590/2158/943 4595/2171/948 4599/2172/952 +f 4595/2161/948 4594/2160/947 4599/2173/952 +f 4594/2163/947 4598/2174/951 4599/2175/952 +f 4598/2165/951 4585/2176/938 4599/2177/952 +f 4585/2147/938 4589/2178/942 4599/2179/952 +f 4589/2151/942 4588/2150/941 4599/2180/952 +f 4588/2153/941 4593/2181/946 4599/2182/952 +f 4593/2157/946 4592/2156/945 4599/2183/952 +f 4592/2159/945 4596/2184/949 4599/2185/952 +f 4596/2162/949 4597/2186/950 4599/2187/952 +f 4597/2164/950 4584/2188/937 4599/2189/952 +f 4584/2146/937 4583/2145/936 4599/2190/952 +f 4583/2166/936 4587/2191/940 4599/2192/952 +f 4553/2114/906 4496/2193/953 4551/2112/904 +f 4554/2115/907 4537/2194/954 4549/2195/955 +f 4557/2118/910 4496/2196/953 4543/2197/956 +f 4559/2120/912 4549/2198/955 4548/2199/957 +f 4561/2122/914 4543/2200/956 4542/2201/958 +f 4563/2124/916 4548/2202/957 4547/2203/959 +f 4561/2122/914 4541/2204/960 4565/2127/918 +f 4563/2124/916 4497/2205/961 4567/2129/920 +f 4565/2127/918 4495/2206/962 4569/2131/922 +f 4567/2129/920 4546/2207/963 4571/2133/924 +f 4573/2135/926 4495/2208/962 4540/2209/964 +f 4571/2133/924 4545/2210/965 4581/2143/934 +f 4579/2141/932 4538/2211/966 4577/2139/930 +f 4573/2135/926 4539/2212/967 4579/2141/932 +f 4553/2114/906 4545/2213/965 4544/2214/968 +f 4556/2117/909 4538/2215/966 4537/2216/954 +f 4551/2112/904 4558/2119/911 4552/2113/905 +f 4554/2115/907 4560/2121/913 4555/2116/908 +f 4557/2118/910 4562/2123/915 4558/2119/911 +f 4559/2120/912 4564/2217/917 4560/2121/913 +f 4561/2122/914 4566/2128/919 4562/2123/915 +f 4563/2124/916 4568/2130/921 4564/2125/917 +f 4565/2127/918 4570/2132/923 4566/2128/919 +f 4567/2129/920 4572/2134/925 4568/2130/921 +f 4569/2131/922 4574/2136/927 4570/2132/923 +f 4571/2133/924 4576/2138/929 4572/2134/925 +f 4573/2135/926 4580/2142/933 4574/2136/927 +f 4571/2133/924 4581/2143/934 4575/2137/928 +f 4577/2139/930 4582/2144/935 4578/2140/931 +f 4579/2141/932 4578/2140/931 4580/2142/933 +f 4553/2114/906 4552/2113/905 4575/2137/928 +f 4556/2117/909 4555/2116/908 4582/2144/935 +f 4580/2142/933 4578/2140/931 4583/2145/936 +f 4552/2113/905 4589/2178/942 4585/2147/938 +f 4582/2144/935 4555/2116/908 4586/2148/939 +f 4552/2113/905 4558/2119/911 4588/2150/941 +f 4560/2121/913 4591/2168/944 4586/2152/939 +f 4562/2123/915 4593/2181/946 4588/2153/941 +f 4560/2121/913 4564/2217/917 4590/2154/943 +f 4562/2123/915 4566/2128/919 4592/2156/945 +f 4568/2130/921 4595/2171/948 4590/2158/943 +f 4570/2132/923 4596/2184/949 4592/2159/945 +f 4568/2130/921 4572/2134/925 4594/2160/947 +f 4574/2136/927 4597/2186/950 4596/2162/949 +f 4576/2138/929 4598/2174/951 4594/2163/947 +f 4580/2142/933 4584/2188/937 4597/2164/950 +f 4575/2137/928 4585/2176/938 4598/2165/951 +f 4582/2144/935 4587/2191/940 4583/2166/936 +f 4553/2114/906 4544/2218/968 4496/2193/953 +f 4554/2115/907 4556/2117/909 4537/2194/954 +f 4557/2118/910 4551/2112/904 4496/2196/953 +f 4559/2120/912 4554/2115/907 4549/2198/955 +f 4561/2122/914 4557/2118/910 4543/2200/956 +f 4563/2124/916 4559/2126/912 4548/2202/957 +f 4561/2122/914 4542/2219/958 4541/2204/960 +f 4563/2124/916 4547/2220/959 4497/2205/961 +f 4565/2127/918 4541/2221/960 4495/2206/962 +f 4567/2129/920 4497/2222/961 4546/2207/963 +f 4573/2135/926 4569/2131/922 4495/2208/962 +f 4571/2133/924 4546/2223/963 4545/2210/965 +f 4579/2141/932 4539/2224/967 4538/2211/966 +f 4573/2135/926 4540/2225/964 4539/2212/967 +f 4553/2114/906 4581/2143/934 4545/2213/965 +f 4556/2117/909 4577/2139/930 4538/2215/966 +o Atlas_Missile +v -1.154849 5.312499 -0.478354 +v -0.795495 5.312499 -0.795495 +v -0.883883 5.312499 -0.883883 +v -1.125000 5.312499 0.000000 +v -1.154849 5.312499 0.478354 +v -1.039364 5.312499 0.430519 +v -1.250000 5.312499 0.000000 +v -1.039364 5.312499 -0.430519 +v 0.216506 8.812498 -1.125000 +v 0.000000 9.687498 -1.125000 +v 0.180586 8.812498 -1.089079 +v -0.125000 5.312499 -1.466506 +v 0.125000 5.312499 -1.466506 +v 0.000000 5.312499 -1.500000 +v -0.795495 5.312499 0.795495 +v -0.883883 5.312499 0.883883 +v -0.430519 5.312499 1.039364 +v 0.000000 5.312499 1.250000 +v -0.478354 5.312499 1.154849 +v 0.478354 5.312499 1.154849 +v 0.000000 5.312499 1.125000 +v 0.795495 5.312499 0.795495 +v 0.430519 5.312499 1.039364 +v 1.154849 5.312499 0.478354 +v 0.883883 5.312499 0.883884 +v 1.039364 5.312499 0.430519 +v 1.250000 5.312499 0.000000 +v 1.125000 5.312499 0.000000 +v 1.154849 5.312499 -0.478355 +v 0.795495 5.312499 -0.795495 +v 1.039364 5.312499 -0.430519 +v 0.478354 5.312499 -1.154849 +v 0.883884 5.312499 -0.883883 +v -0.478354 5.312499 -1.154849 +v -0.430519 5.312499 -1.039364 +v 0.000000 5.312499 -1.250000 +v 0.000000 5.312499 -1.125000 +v 0.430519 5.312499 -1.039364 +v 0.883883 2.687500 0.883884 +v 0.687126 2.687500 1.015353 +v 1.154849 2.687500 0.478354 +v 0.750000 2.687500 -1.250000 +v 0.687126 2.687500 -1.015352 +v 0.649519 2.687500 -1.625000 +v -0.649519 2.687500 -1.625000 +v 0.000000 2.687500 -2.000000 +v 0.375000 2.687500 -1.899519 +v -0.375000 2.687500 -1.899519 +v -0.750000 2.687500 -1.250000 +v -0.687126 2.687500 -1.015352 +v 0.000000 2.000000 -1.750000 +v 0.250000 2.000000 -1.683013 +v -0.250000 2.000000 -1.683013 +v 0.000000 2.000000 -0.750000 +v -0.250000 2.000000 -0.816987 +v 0.250000 2.000000 -0.816987 +v 0.500000 2.000000 -1.250000 +v 0.433013 2.000000 -1.000000 +v 0.433013 2.000000 -1.500000 +v -0.500000 2.000000 -1.250000 +v -0.433013 2.000000 -1.500000 +v -0.433013 2.000000 -1.000000 +v 0.000000 2.000000 -0.500000 +v 0.250000 2.000000 -0.433013 +v -0.250000 2.000000 -0.433013 +v 0.000000 2.000000 0.500000 +v -0.250000 2.000000 0.433013 +v 0.250000 2.000000 0.433013 +v 0.500000 2.000000 0.000000 +v 0.433013 2.000000 0.250000 +v 0.433013 2.000000 -0.250000 +v -0.500000 2.000000 -0.000000 +v -0.433013 2.000000 -0.250000 +v -0.433013 2.000000 0.250000 +v 1.250000 2.687500 0.000000 +v 1.154849 2.687500 -0.478355 +v -1.250000 2.687500 0.000000 +v -1.154849 2.687500 -0.478354 +v -1.154849 2.687500 0.478354 +v -0.883883 2.687500 -0.883883 +v 0.883884 2.687500 -0.883883 +v -0.125000 5.376628 -1.642699 +v 0.125000 5.376628 -1.642699 +v -0.216506 8.812498 1.125000 +v 0.000000 9.687498 1.125000 +v -0.180586 8.812498 1.089079 +v -0.750000 2.687500 1.250000 +v -0.687126 2.687500 1.015352 +v -0.649519 2.687500 1.625000 +v 0.649519 2.687500 1.625000 +v 0.000000 2.687500 2.000000 +v -0.375000 2.687500 1.899519 +v 0.375000 2.687500 1.899519 +v 0.750000 2.687500 1.250000 +v 0.000000 2.000000 1.750000 +v -0.250000 2.000000 1.683013 +v 0.250000 2.000000 1.683013 +v 0.000000 2.000000 0.750000 +v 0.250000 2.000000 0.816987 +v -0.250000 2.000000 0.816987 +v -0.500000 2.000000 1.250000 +v -0.433013 2.000000 1.000000 +v -0.433013 2.000000 1.500000 +v 0.500000 2.000000 1.250000 +v 0.433013 2.000000 1.500000 +v 0.433013 2.000000 1.000000 +v -0.883883 2.687500 0.883883 +v -0.478354 4.249999 -1.154849 +v 0.000000 12.812498 -1.125000 +v -0.430519 12.812498 -1.039364 +v 1.039364 12.812498 0.430519 +v -1.125000 12.812498 0.000000 +v 1.125000 12.812498 0.000000 +v -1.039364 12.812498 0.430519 +v 1.039364 12.812498 -0.430519 +v -0.795495 12.812498 0.795496 +v 0.795495 12.812498 -0.795494 +v -0.430519 12.812498 1.039364 +v 0.430519 12.812498 -1.039364 +v 0.000000 12.812498 1.125000 +v 0.430519 12.812498 1.039364 +v -0.795495 12.812498 -0.795494 +v 0.795495 12.812498 0.795495 +v -1.039364 12.812498 -0.430519 +v 0.562500 15.312498 0.000001 +v 0.519682 15.312498 -0.215259 +v 0.397748 15.312498 -0.397747 +v 0.215259 15.312498 -0.519681 +v 0.000000 15.312498 -0.562499 +v -0.215259 15.312498 -0.519681 +v -0.397748 15.312498 -0.397747 +v -0.519682 15.312498 -0.215258 +v -0.519682 15.312498 0.215260 +v -0.562500 15.312498 0.000001 +v -0.215259 15.312498 0.519683 +v -0.397748 15.312498 0.397749 +v 0.000000 15.312498 0.562501 +v 0.215259 15.312498 0.519683 +v 0.397747 15.312498 0.397749 +v 0.519682 15.312498 0.215261 +v 0.000000 16.437496 0.000001 +v 0.000000 4.249999 -1.750000 +v 0.250000 4.249999 -1.683013 +v -0.250000 4.249999 -1.683013 +v -0.433013 4.249999 -1.500000 +v -0.500000 4.249999 -1.250000 +v 0.433013 4.249999 -1.500000 +v 0.500000 4.249999 -1.250000 +v 0.478354 4.249999 -1.154849 +v 0.250000 5.312499 -1.250000 +v 0.216506 5.312499 -1.125000 +v 0.216506 5.312499 -1.375000 +v -0.216506 5.312499 -1.375000 +v -0.250000 5.312499 -1.250000 +v -0.216506 5.312499 -1.125000 +v -0.180586 5.312499 -1.089079 +v -0.216506 8.812498 -1.125000 +v -0.250000 8.812498 -1.250000 +v 0.180586 5.312499 -1.089079 +v 0.216506 8.812498 -1.375000 +v 0.250000 8.812498 -1.250000 +v -0.216506 8.812498 -1.375000 +v -0.125000 8.812498 -1.466506 +v 0.125000 8.812498 -1.466506 +v -0.180586 8.812498 -1.089079 +v 0.478354 4.249999 1.154849 +v 0.324760 2.687500 -1.437500 +v 0.187500 2.687500 -1.574759 +v 0.375000 2.687500 -1.250000 +v 0.324760 2.687500 -1.062500 +v 0.187500 2.687500 -0.925241 +v 0.000000 2.687500 -0.875000 +v 0.500000 2.375000 0.000000 +v 0.433013 2.375000 -0.250000 +v 0.000000 2.375000 0.500000 +v 0.250000 2.375000 0.433013 +v -0.500000 2.375000 0.000000 +v -0.433013 2.375000 0.250000 +v 0.250000 2.375000 -0.433013 +v 0.000000 2.375000 -0.500000 +v -0.250000 2.375000 -0.433013 +v 0.433013 2.375000 0.250000 +v -0.250000 2.375000 0.433013 +v -0.433013 2.375000 -0.250000 +v 0.324760 2.687500 -0.187500 +v 0.375000 2.687500 0.000000 +v 0.187500 2.687500 -0.324759 +v 0.000000 2.687500 -0.375000 +v -0.187500 2.687500 -0.324759 +v -0.324760 2.687500 -0.187500 +v -0.375000 2.687500 0.000000 +v -0.324760 2.687500 0.187500 +v -0.187500 2.687500 0.324759 +v 0.000000 2.687500 0.375000 +v 0.187500 2.687500 0.324759 +v 0.324760 2.687500 0.187500 +v 0.000000 2.687500 -1.625000 +v -0.187500 2.687500 -1.574759 +v -0.324760 2.687500 -1.437500 +v -0.375000 2.687500 -1.250000 +v -0.324760 2.687500 -1.062500 +v -0.187500 2.687500 -0.925241 +v 0.062500 5.687499 -1.466506 +v -0.062500 5.687499 -1.466506 +v 0.000000 4.249999 1.750000 +v -0.250000 4.249999 1.683013 +v 0.250000 4.249999 1.683013 +v 0.433013 4.249999 1.500000 +v 0.500000 4.249999 1.250000 +v -0.433013 4.249999 1.500000 +v -0.500000 4.249999 1.250000 +v -0.478354 4.249999 1.154849 +v -0.250000 5.312499 1.250000 +v -0.216506 5.312499 1.125000 +v -0.216506 5.312499 1.375000 +v 0.000000 5.312499 1.500000 +v 0.125000 5.312499 1.466506 +v 0.216506 5.312499 1.375000 +v 0.250000 5.312499 1.250000 +v 0.216506 5.312499 1.125000 +v 0.218750 5.437499 1.722636 +v -0.218750 6.562499 1.722636 +v -0.218750 5.437499 1.722636 +v 0.125000 7.437499 1.466506 +v -0.125000 7.437499 1.466506 +v 0.250000 7.437499 1.250000 +v 0.216506 7.437499 1.375000 +v 0.378886 6.562499 1.500000 +v -0.378886 5.312499 1.500000 +v 0.378886 6.562499 1.049635 +v 0.216506 7.437499 1.125000 +v 0.180586 7.437499 1.089079 +v 0.218750 6.562499 1.722636 +v -0.250000 8.812498 1.250000 +v -0.216506 8.812498 1.375000 +v -0.125000 8.812498 1.466506 +v 0.125000 8.812498 1.466506 +v 0.216506 8.812498 1.375000 +v 0.250000 8.812498 1.250000 +v 0.216506 8.812498 1.125000 +v 0.180586 8.812498 1.089079 +v -0.324760 2.687500 1.437500 +v -0.187500 2.687500 1.574759 +v -0.324760 2.687500 1.062500 +v -0.375000 2.687500 1.250000 +v -0.187500 2.687500 0.925241 +v 0.000000 2.687500 0.875000 +v 0.000000 2.687500 1.625000 +v 0.187500 2.687500 1.574759 +v 0.324759 2.687500 1.437500 +v 0.375000 2.687500 1.250000 +v 0.324759 2.687500 1.062500 +v 0.187500 2.687500 0.925241 +v -0.378886 6.562499 1.500000 +v -0.216506 7.437499 1.375000 +v -0.378886 5.312499 1.049635 +v 0.378886 5.312499 1.049635 +v 0.378886 5.312499 1.500000 +v -0.250000 7.437499 1.250000 +v -0.378886 6.562499 1.049635 +v -0.216506 7.437499 1.125000 +v -0.180586 7.437499 1.089079 +v 1.140000 12.093748 0.000000 +v 1.053223 10.124998 -0.436259 +v 1.053223 12.093748 -0.436259 +v 0.806102 12.093748 0.806102 +v 1.053223 10.124998 0.436259 +v 1.053223 12.093748 0.436259 +v -1.140000 12.093748 0.000000 +v -1.053223 10.124998 0.436259 +v -1.053223 12.093748 0.436259 +v -0.806102 12.093748 -0.806102 +v -1.053223 10.124998 -0.436259 +v -1.053223 12.093748 -0.436259 +v 0.806102 10.124998 -0.806102 +v 0.806102 12.093748 -0.806102 +v 1.140000 10.124998 0.000000 +v -0.806102 10.124998 0.806102 +v -0.806102 12.093748 0.806102 +v -1.140000 10.124998 0.000000 +v 0.145625 8.406248 1.475167 +v 0.225166 7.874999 1.380000 +v 0.225166 8.406248 1.380000 +v -0.145625 7.874999 1.475167 +v -0.145625 8.406248 1.475167 +v -0.225167 8.406248 1.380000 +v -0.145625 8.406248 -1.475167 +v -0.225167 7.874999 -1.380000 +v -0.225167 8.406248 -1.380000 +v 0.145625 7.874999 -1.475167 +v 0.145625 8.406248 -1.475167 +v 0.225166 8.406248 -1.380000 +v -0.125000 5.312499 1.466506 +v 0.806102 10.124998 0.806102 +v -0.806102 10.124998 -0.806102 +v 0.145625 7.874999 1.475167 +v -0.225167 7.874999 1.380000 +v -0.145625 7.874999 -1.475167 +v 0.225166 7.874999 -1.380000 +v -0.180586 5.312499 1.089079 +v 0.180586 5.312499 1.089079 +vt 0.107143 0.186667 +vt 0.071429 0.195556 +vt 0.071429 0.186667 +vt 0.142857 0.195556 +vt 0.178571 0.186667 +vt 0.178571 0.195556 +vt 0.142857 0.186667 +vt 0.107143 0.195556 +vt 0.576531 0.622222 +vt 0.576531 0.684444 +vt 0.571429 0.622222 +vt 0.790816 0.577778 +vt 0.770408 0.577778 +vt 0.780612 0.573333 +vt 0.214286 0.195556 +vt 0.214286 0.186667 +vt 0.250000 0.195556 +vt 0.285714 0.186667 +vt 0.250000 0.186667 +vt 0.321429 0.186667 +vt 0.285714 0.195556 +vt 0.357143 0.195556 +vt 0.321429 0.195556 +vt 0.392857 0.186667 +vt 0.357143 0.186667 +vt 0.392857 0.195556 +vt 0.428571 0.186667 +vt 0.428571 0.195556 +vt 0.464286 0.186667 +vt 0.500000 0.195556 +vt 0.464286 0.195556 +vt 0.535714 0.186667 +vt 0.500000 0.186667 +vt 0.035714 0.186667 +vt 0.035714 0.195556 +vt 0.000000 0.186667 +vt 0.571429 0.195556 +vt 0.535714 0.195556 +vt 0.744173 0.160632 +vt 0.733441 0.146640 +vt 0.777277 0.179900 +vt 0.918367 0.151111 +vt 0.899213 0.146640 +vt 0.948980 0.143966 +vt 0.948980 0.051590 +vt 0.979592 0.097778 +vt 0.971389 0.124444 +vt 0.971389 0.071111 +vt 0.918367 0.044444 +vt 0.899213 0.048915 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.816327 0.186667 +vt 0.855376 0.179900 +vt 0.816327 0.008889 +vt 0.855376 0.015655 +vt 0.777277 0.015655 +vt 0.888480 0.034924 +vt 0.888480 0.160632 +vt 0.790816 0.591111 +vt 0.770408 0.591111 +vt 0.668367 0.622222 +vt 0.668367 0.684444 +vt 0.663265 0.622222 +vt 0.714286 0.044444 +vt 0.733441 0.048915 +vt 0.683674 0.051590 +vt 0.683674 0.143966 +vt 0.653061 0.097778 +vt 0.661264 0.071111 +vt 0.661264 0.124444 +vt 0.714286 0.151111 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.744173 0.034924 +vt 0.000000 0.195556 +vt 0.571429 0.186667 +vt 0.040816 0.111111 +vt 0.061224 -0.000000 +vt 0.081633 -0.000000 +vt -0.000000 0.728889 +vt 0.035714 0.728889 +vt 0.392857 0.728889 +vt 0.142857 0.728889 +vt 0.428571 0.728889 +vt 0.178571 0.728889 +vt 0.464286 0.728889 +vt 0.214286 0.728889 +vt 0.500000 0.728889 +vt 0.250000 0.728889 +vt 0.535714 0.728889 +vt 0.571429 0.728889 +vt 0.285714 0.728889 +vt 0.321429 0.728889 +vt 0.071429 0.728889 +vt 0.357143 0.728889 +vt 0.107143 0.728889 +vt 0.438776 0.911111 +vt 0.474490 0.911111 +vt 0.510204 0.911111 +vt 0.545918 0.911111 +vt 0.010204 0.911111 +vt 0.045918 0.911111 +vt 0.081633 0.911111 +vt 0.117347 0.911111 +vt 0.168367 0.911111 +vt 0.153061 0.911111 +vt 0.188776 0.911111 +vt 0.239796 0.911111 +vt 0.224490 0.911111 +vt 0.260204 0.911111 +vt 0.295918 0.911111 +vt 0.331633 0.911111 +vt 0.367347 0.911111 +vt 0.403061 0.911111 +vt 0.489796 0.911111 +vt 0.482143 1.000000 +vt 0.232143 1.000000 +vt 0.525510 0.911111 +vt 0.517857 1.000000 +vt 0.275510 0.911111 +vt 0.267857 1.000000 +vt 0.025510 0.911111 +vt 0.017857 1.000000 +vt 0.561224 0.911111 +vt 0.553571 1.000000 +vt 0.311224 0.911111 +vt 0.303571 1.000000 +vt 0.061224 0.911111 +vt 0.053571 1.000000 +vt 0.346939 0.911111 +vt 0.339286 1.000000 +vt 0.096939 0.911111 +vt 0.089286 1.000000 +vt 0.382653 0.911111 +vt 0.375000 1.000000 +vt 0.132653 0.911111 +vt 0.125000 1.000000 +vt 0.418367 0.911111 +vt 0.410714 1.000000 +vt 0.160714 1.000000 +vt 0.454082 0.911111 +vt 0.446429 1.000000 +vt 0.204082 0.911111 +vt 0.196429 1.000000 +vt 0.653061 0.186667 +vt 0.678571 0.297778 +vt 0.658163 0.297778 +vt 0.683673 0.186667 +vt 0.709184 0.297778 +vt 0.688776 0.297778 +vt 0.714286 0.186667 +vt 0.739796 0.297778 +vt 0.719388 0.297778 +vt 0.744898 0.186667 +vt 0.770408 0.297778 +vt 0.750000 0.297778 +vt 0.785714 0.297778 +vt 0.775510 0.186667 +vt 0.795918 0.186667 +vt 0.622449 0.186667 +vt 0.647959 0.297778 +vt 0.627551 0.297778 +vt 0.591837 0.186667 +vt 0.617347 0.297778 +vt 0.596939 0.297778 +vt 0.581633 0.297778 +vt 0.591837 0.297778 +vt 0.591837 0.373333 +vt 0.581633 0.373333 +vt 0.602041 0.373333 +vt 0.632653 0.373333 +vt 0.693878 0.373333 +vt 0.673469 0.373333 +vt 0.724490 0.373333 +vt 0.755102 0.373333 +vt 0.775510 0.373333 +vt 0.785714 0.373333 +vt 0.663265 0.373333 +vt 0.658163 0.622222 +vt 0.658163 0.373333 +vt 0.647959 0.622222 +vt 0.647959 0.373333 +vt 0.576531 0.373333 +vt 0.571429 0.373333 +vt 0.607143 0.373333 +vt 0.596939 0.622222 +vt 0.596939 0.373333 +vt 0.586735 0.622222 +vt 0.586735 0.373333 +vt 0.637755 0.622222 +vt 0.637755 0.373333 +vt 0.627551 0.622222 +vt 0.627551 0.373333 +vt 0.581633 0.688889 +vt 0.591837 0.688889 +vt 0.607143 0.622222 +vt 0.602041 0.688889 +vt 0.632653 0.688889 +vt 0.642857 0.688889 +vt 0.653061 0.688889 +vt 0.663265 0.622222 +vt 0.658163 0.684444 +vt 0.612245 0.111111 +vt 0.571429 0.000000 +vt 0.591837 0.000000 +vt 0.571429 0.186667 +vt 0.612245 0.186667 +vt 0.653061 0.186667 +vt 0.040816 0.186667 +vt 0.081633 0.186667 +vt 0.122449 -0.000000 +vt 0.163265 0.000000 +vt 0.122449 0.186667 +vt 0.204082 0.000000 +vt 0.163265 0.186667 +vt 0.244898 -0.000000 +vt 0.204082 0.186667 +vt 0.367347 0.186667 +vt 0.326531 0.186667 +vt 0.367347 0.111111 +vt 0.408163 0.186667 +vt 0.387755 -0.000000 +vt 0.408163 -0.000000 +vt 0.448980 0.000000 +vt 0.489796 -0.000000 +vt 0.448980 0.186667 +vt 0.530612 -0.000000 +vt 0.489796 0.186667 +vt 0.530612 0.186667 +vt 0.948980 0.235556 +vt 0.964286 0.186667 +vt 0.964286 0.235556 +vt 0.918367 0.186667 +vt 0.933673 0.235556 +vt 0.918367 0.235556 +vt 0.887755 0.186667 +vt 0.903061 0.235556 +vt 0.887755 0.235556 +vt 0.903061 0.186667 +vt 0.933673 0.186667 +vt 0.933673 0.262222 +vt 0.948980 0.235556 +vt 0.948980 0.262222 +vt 0.887755 0.262222 +vt 0.903061 0.235556 +vt 0.903061 0.262222 +vt 0.841837 0.262222 +vt 0.857143 0.235556 +vt 0.857143 0.262222 +vt 0.964286 0.235556 +vt 0.964286 0.262222 +vt 0.795918 0.262222 +vt 0.811224 0.235556 +vt 0.811224 0.262222 +vt 0.918367 0.235556 +vt 0.918367 0.262222 +vt 0.872449 0.235556 +vt 0.872449 0.262222 +vt 0.979592 0.235556 +vt 0.979592 0.262222 +vt 0.826531 0.235556 +vt 0.826531 0.262222 +vt 0.933673 0.235556 +vt 0.887755 0.235556 +vt 0.841837 0.235556 +vt 0.948980 0.284444 +vt 0.933673 0.284444 +vt 0.964286 0.284444 +vt 0.979592 0.284444 +vt 0.811224 0.284444 +vt 0.795918 0.284444 +vt 0.826531 0.284444 +vt 0.841837 0.284444 +vt 0.857143 0.284444 +vt 0.872449 0.284444 +vt 0.887755 0.284444 +vt 0.903061 0.284444 +vt 0.918367 0.284444 +vt 0.979592 0.235556 +vt 0.795918 0.186667 +vt 0.811224 0.235556 +vt 0.795918 0.235556 +vt 0.811224 0.186667 +vt 0.826531 0.235556 +vt 0.826531 0.186667 +vt 0.841837 0.235556 +vt 0.841837 0.186667 +vt 0.857143 0.235556 +vt 0.857143 0.186667 +vt 0.872449 0.235556 +vt 0.872449 0.186667 +vt 0.770408 0.617778 +vt 0.755102 0.591111 +vt 0.806122 0.591111 +vt 0.790816 0.617778 +vt 0.775510 0.617778 +vt 0.785714 0.617778 +vt 0.617347 0.688889 +vt 0.653061 0.186667 +vt 0.678571 0.297778 +vt 0.658163 0.297778 +vt 0.683673 0.186667 +vt 0.709184 0.297778 +vt 0.688776 0.297778 +vt 0.714286 0.186667 +vt 0.739796 0.297778 +vt 0.719388 0.297778 +vt 0.744898 0.186667 +vt 0.770408 0.297778 +vt 0.750000 0.297778 +vt 0.785714 0.297778 +vt 0.775510 0.186667 +vt 0.795918 0.186667 +vt 0.622449 0.186667 +vt 0.647959 0.297778 +vt 0.627551 0.297778 +vt 0.591837 0.186667 +vt 0.617347 0.297778 +vt 0.596939 0.297778 +vt 0.581633 0.297778 +vt 0.591837 0.297778 +vt 0.591837 0.373333 +vt 0.581633 0.373333 +vt 0.602041 0.373333 +vt 0.632653 0.373333 +vt 0.693878 0.373333 +vt 0.673469 0.373333 +vt 0.724490 0.373333 +vt 0.755102 0.373333 +vt 0.775510 0.373333 +vt 0.785714 0.373333 +vt 0.760204 0.382222 +vt 0.724490 0.462222 +vt 0.724490 0.382222 +vt 0.760204 0.524444 +vt 0.724490 0.524444 +vt 0.798469 0.524444 +vt 0.785714 0.524444 +vt 0.780612 0.462222 +vt 0.755102 0.555556 +vt 0.806122 0.573333 +vt 0.765306 0.573333 +vt 0.816327 0.462222 +vt 0.811224 0.524444 +vt 0.816327 0.524444 +vt 0.765306 0.524444 +vt 0.760204 0.462222 +vt 0.678571 0.622222 +vt 0.673469 0.688889 +vt 0.688776 0.622222 +vt 0.683673 0.688889 +vt 0.698980 0.622222 +vt 0.693878 0.688889 +vt 0.719388 0.622222 +vt 0.729592 0.622222 +vt 0.724490 0.688889 +vt 0.739796 0.622222 +vt 0.734694 0.688889 +vt 0.750000 0.622222 +vt 0.744898 0.688889 +vt 0.755102 0.622222 +vt 0.750000 0.684444 +vt 0.857143 0.235556 +vt 0.872449 0.186667 +vt 0.872449 0.235556 +vt 0.826531 0.235556 +vt 0.841837 0.186667 +vt 0.841837 0.235556 +vt 0.795918 0.186667 +vt 0.811224 0.235556 +vt 0.795918 0.235556 +vt 0.811224 0.186667 +vt 0.887755 0.235556 +vt 0.887755 0.186667 +vt 0.903061 0.235556 +vt 0.903061 0.186667 +vt 0.918367 0.235556 +vt 0.933673 0.186667 +vt 0.933673 0.235556 +vt 0.948980 0.235556 +vt 0.948980 0.186667 +vt 0.964286 0.235556 +vt 0.964286 0.186667 +vt 0.979592 0.235556 +vt 0.709184 0.688889 +vt 0.704082 0.462222 +vt 0.719388 0.524444 +vt 0.704082 0.524444 +vt 0.285714 0.111111 +vt 0.285714 0.186667 +vt 0.244898 0.186667 +vt 0.265306 0.000000 +vt 0.668367 0.373333 +vt 0.704082 0.373333 +vt 0.816327 0.373333 +vt 0.780612 0.373333 +vt 0.686224 0.524444 +vt 0.698980 0.524444 +vt 0.668367 0.462222 +vt 0.673469 0.524444 +vt 0.668367 0.524444 +vt 0.750000 0.524444 +vt 0.739796 0.524444 +vt 0.729592 0.524444 +vt 0.719388 0.524444 +vt 0.678571 0.524444 +vt 0.668367 0.524444 +vt 0.663265 0.524444 +vt 0.816327 0.524444 +vt 0.755102 0.524444 +vt 0.688776 0.524444 +vt 0.714286 0.968889 +vt 0.785714 0.688889 +vt 0.785714 0.968889 +vt 0.571429 0.968889 +vt 0.642857 0.688889 +vt 0.642857 0.968889 +vt 0.714286 0.968889 +vt 0.785714 0.688889 +vt 0.785714 0.968889 +vt 0.571429 0.968889 +vt 0.642857 0.688889 +vt 0.642857 0.968889 +vt 0.857143 0.688889 +vt 0.857143 0.968889 +vt 0.714286 0.688889 +vt 0.857143 0.688889 +vt 0.857143 0.968889 +vt 0.714286 0.688889 +vt 0.923469 0.764444 +vt 0.943878 0.688889 +vt 0.943878 0.764444 +vt 0.877551 0.688889 +vt 0.877551 0.764444 +vt 0.857143 0.764444 +vt 0.923469 0.764444 +vt 0.943878 0.688889 +vt 0.943878 0.764444 +vt 0.877551 0.688889 +vt 0.877551 0.764444 +vt 0.857143 0.764444 +vt 0.775510 0.297778 +vt 0.571429 0.186667 +vt 0.612245 0.373333 +vt 0.642857 0.373333 +vt 0.704082 0.373333 +vt 0.663265 0.373333 +vt 0.734694 0.373333 +vt 0.765306 0.373333 +vt 0.948980 0.186667 +vt 0.795918 0.235556 +vt 0.979592 0.186667 +vt 0.775510 0.297778 +vt 0.571429 0.186667 +vt 0.612245 0.373333 +vt 0.642857 0.373333 +vt 0.704082 0.373333 +vt 0.663265 0.373333 +vt 0.734694 0.373333 +vt 0.765306 0.373333 +vt 0.816327 0.555556 +vt 0.780612 0.524444 +vt 0.857143 0.186667 +vt 0.826531 0.186667 +vt 0.918367 0.186667 +vt 0.979592 0.186667 +vt 0.755102 0.524444 +vt 0.698980 0.524444 +vt 0.571429 0.688889 +vt 0.571429 0.688889 +vt 0.923469 0.688889 +vt 0.857143 0.688889 +vt 0.923469 0.688889 +vt 0.857143 0.688889 +vn 0.0000 1.0000 -0.0000 +vn 0.6965 0.1723 0.6965 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.9397 -0.3420 +vn -0.6965 0.1723 -0.6965 +vn -0.5144 -0.0000 -0.8575 +vn -0.5556 0.0000 -0.8315 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 -0.9239 +vn 1.0000 -0.0000 0.0000 +vn 0.9239 -0.0000 0.3827 +vn -0.9239 -0.0000 0.3827 +vn -1.0000 -0.0000 0.0000 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 -0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 -0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 -0.0000 1.0000 +vn 0.3827 -0.0000 0.9239 +vn 0.7071 -0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9013 0.2195 -0.3734 +vn 0.9436 0.3312 -0.0000 +vn 0.9756 0.2195 -0.0000 +vn 0.6899 0.2195 -0.6899 +vn 0.8717 0.3312 -0.3611 +vn 0.3734 0.2195 -0.9013 +vn 0.6672 0.3312 -0.6672 +vn 0.0000 0.2195 -0.9756 +vn 0.3611 0.3312 -0.8717 +vn -0.3733 0.2195 -0.9013 +vn -0.0000 0.3312 -0.9436 +vn -0.6899 0.2195 -0.6899 +vn -0.3611 0.3312 -0.8717 +vn -0.9013 0.2195 -0.3733 +vn -0.6672 0.3312 -0.6672 +vn -0.9756 0.2195 0.0000 +vn -0.8717 0.3312 -0.3611 +vn -0.8717 0.3312 0.3611 +vn -0.9436 0.3312 -0.0000 +vn -0.6899 0.2195 0.6899 +vn -0.9013 0.2195 0.3733 +vn -0.3611 0.3312 0.8717 +vn -0.6672 0.3312 0.6672 +vn -0.0000 0.2195 0.9756 +vn -0.3734 0.2195 0.9013 +vn 0.3734 0.2195 0.9013 +vn -0.0000 0.3312 0.9436 +vn 0.6899 0.2195 0.6899 +vn 0.3611 0.3312 0.8717 +vn 0.9013 0.2195 0.3733 +vn 0.6672 0.3312 0.6672 +vn 0.8717 0.3312 0.3611 +vn 0.4937 0.1580 -0.8551 +vn -0.0000 0.1925 -0.9813 +vn 0.4906 0.1925 -0.8498 +vn -0.0000 0.1580 -0.9874 +vn -0.4906 0.1925 -0.8498 +vn -0.4937 0.1580 -0.8551 +vn -0.8498 0.1925 -0.4906 +vn -0.8551 0.1580 -0.4937 +vn -0.9811 0.1926 -0.0186 +vn -0.9568 0.1891 0.2208 +vn -0.9876 0.1569 -0.0007 +vn -0.9549 0.1504 0.2559 +vn 0.8551 0.1580 -0.4937 +vn 0.8498 0.1925 -0.4906 +vn 0.9876 0.1569 -0.0007 +vn 0.9811 0.1926 -0.0186 +vn 0.9568 0.1891 0.2208 +vn 0.9730 0.2306 -0.0011 +vn 0.9412 0.2249 0.2522 +vn 0.8430 0.2290 -0.4867 +vn -0.0000 0.2290 -0.9734 +vn -0.4867 0.2290 -0.8430 +vn -0.8430 0.2290 -0.4867 +vn -0.9730 0.2306 -0.0011 +vn -0.9412 0.2249 0.2522 +vn -0.8658 0.1046 0.4893 +vn -0.8660 -0.0000 0.5000 +vn -0.9905 0.1370 -0.0100 +vn 0.8660 0.0000 0.5000 +vn 0.8497 0.1670 -0.5001 +vn 0.8660 0.0000 -0.5000 +vn 0.9905 0.1370 -0.0100 +vn 0.9043 0.0825 0.4189 +vn 0.8660 0.0001 0.5000 +vn -0.8497 0.1670 -0.5001 +vn -0.8660 0.0000 -0.5000 +vn -0.3745 0.1870 -0.9082 +vn -0.0746 0.6706 -0.7381 +vn 0.3745 0.1870 -0.9082 +vn -0.7043 0.0895 0.7043 +vn 0.5144 -0.0000 -0.8575 +vn 0.5556 -0.0000 -0.8315 +vn 0.1951 0.0000 -0.9808 +vn -0.1951 -0.0000 -0.9808 +vn 0.1951 -0.0000 0.9808 +vn 0.5144 0.0000 0.8575 +vn 0.5556 0.0000 0.8315 +vn 0.8521 0.1789 -0.4919 +vn 0.4919 0.1789 -0.8521 +vn 0.8521 0.1789 0.4919 +vn 0.9839 0.1789 0.0000 +vn 0.0000 0.1789 0.9839 +vn 0.4919 0.1789 0.8521 +vn 0.5000 -0.0000 0.8660 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn -0.5000 -0.0000 0.8660 +vn 0.9285 0.3714 0.0000 +vn 0.8041 0.3714 -0.4642 +vn 0.4642 0.3714 -0.8041 +vn -0.0000 0.3714 -0.9285 +vn -0.4642 0.3714 -0.8041 +vn -0.8041 0.3714 -0.4642 +vn -0.9285 0.3714 -0.0000 +vn -0.8041 0.3714 0.4642 +vn -0.4642 0.3714 0.8041 +vn -0.0000 0.3714 0.9285 +vn 0.4642 0.3714 0.8041 +vn 0.8041 0.3714 0.4642 +vn -0.0000 0.1789 -0.9839 +vn -0.4919 0.1789 -0.8521 +vn -0.8521 0.1789 -0.4919 +vn -0.9839 0.1789 -0.0000 +vn -0.8521 0.1789 0.4919 +vn -0.4919 0.1789 0.8521 +vn 0.6886 0.4574 -0.5627 +vn 0.2733 0.5153 -0.8122 +vn 0.9846 0.1641 0.0597 +vn -0.6886 0.4574 -0.5627 +vn -0.9846 0.1641 0.0597 +vn -0.2733 0.5153 -0.8122 +vn -0.4937 0.1580 0.8551 +vn 0.0000 0.1925 0.9813 +vn -0.4906 0.1925 0.8498 +vn 0.0000 0.1580 0.9874 +vn 0.4906 0.1925 0.8498 +vn 0.4937 0.1580 0.8551 +vn 0.8498 0.1925 0.4906 +vn 0.8551 0.1580 0.4937 +vn 0.9811 0.1926 0.0186 +vn 0.9568 0.1891 -0.2208 +vn 0.9876 0.1569 0.0007 +vn 0.9549 0.1504 -0.2559 +vn -0.8551 0.1580 0.4937 +vn -0.8498 0.1925 0.4906 +vn -0.9876 0.1569 0.0007 +vn -0.9811 0.1926 0.0186 +vn -0.9568 0.1891 -0.2208 +vn -0.9730 0.2306 0.0011 +vn -0.9412 0.2249 -0.2522 +vn -0.8430 0.2290 0.4867 +vn 0.0000 0.2290 0.9734 +vn 0.4867 0.2290 0.8430 +vn 0.8430 0.2290 0.4867 +vn 0.9730 0.2306 0.0011 +vn 0.9412 0.2249 -0.2522 +vn 0.5098 -0.0000 0.8603 +vn -0.4475 0.1436 0.8827 +vn -0.5098 -0.0000 0.8603 +vn 0.3856 0.2768 0.8802 +vn -0.3856 0.2768 0.8802 +vn 0.9796 0.2009 -0.0044 +vn 0.8462 0.2260 0.4826 +vn 0.9417 0.1046 0.3198 +vn 0.0000 -0.9802 0.1978 +vn 0.0000 -0.8720 0.4896 +vn 0.9968 0.0762 -0.0244 +vn 0.8471 0.1996 -0.4925 +vn 0.6944 0.1887 -0.6944 +vn 0.4475 0.1436 0.8827 +vn -0.9043 0.0825 -0.4189 +vn -0.9905 0.1370 0.0100 +vn 0.0746 0.6706 0.7381 +vn -0.8497 0.1670 0.5001 +vn -0.3745 0.1870 0.9082 +vn 0.3745 0.1870 0.9082 +vn 0.8497 0.1670 0.5001 +vn 0.9905 0.1370 0.0100 +vn 0.8658 0.1046 -0.4893 +vn 0.7043 0.0895 -0.7043 +vn -0.9417 0.1046 0.3198 +vn -0.8462 0.2260 0.4826 +vn -0.5144 -0.0000 0.8575 +vn -0.1951 0.0000 0.9808 +vn -0.5556 -0.0000 0.8315 +vn -0.9661 -0.0000 0.2581 +vn 0.9661 -0.0000 0.2581 +vn -0.9796 0.2009 -0.0044 +vn -0.9968 0.0762 -0.0244 +vn -0.8471 0.1996 -0.4926 +vn -0.6944 0.1887 -0.6944 +vn 0.8315 0.0000 0.5556 +vn -0.8315 -0.0000 -0.5556 +vn 0.8315 -0.0000 -0.5556 +vn -0.8315 -0.0000 0.5556 +vn 0.4235 0.0000 0.9059 +vn 0.7673 0.0000 0.6413 +vn -0.4235 0.0000 0.9059 +vn -0.7673 0.0000 0.6413 +vn -0.4235 0.0000 -0.9059 +vn -0.7673 0.0000 -0.6413 +vn 0.4235 0.0000 -0.9059 +vn 0.7673 0.0000 -0.6413 +vn 0.9549 0.1504 0.2559 +vn 0.4867 0.2290 -0.8430 +vn -0.9549 0.1504 -0.2559 +vn -0.4867 0.2290 0.8430 +s off +f 4600/2226/969 4601/2227/969 4602/2228/969 +f 4603/2229/969 4604/2230/969 4605/2231/969 +f 4606/2232/969 4607/2233/969 4600/2226/969 +f 4608/2234/970 4609/2235/970 4610/2236/970 +f 4611/2237/969 4612/2238/969 4613/2239/969 +f 4614/2240/969 4604/2230/969 4615/2241/969 +f 4615/2241/969 4616/2242/969 4614/2240/969 +f 4617/2243/969 4616/2242/969 4618/2244/969 +f 4619/2245/969 4620/2246/969 4617/2243/969 +f 4619/2245/969 4621/2247/969 4622/2248/969 +f 4623/2249/969 4621/2247/969 4624/2250/969 +f 4625/2251/969 4626/2252/969 4627/2253/969 +f 4628/2254/969 4627/2253/969 4626/2252/969 +f 4628/2254/969 4629/2255/969 4630/2256/969 +f 4631/2257/969 4629/2255/969 4632/2258/969 +f 4633/2259/969 4601/2227/969 4634/2260/969 +f 4634/2260/969 4635/2261/969 4633/2259/969 +f 4631/2257/969 4636/2262/969 4637/2263/969 +f 4638/2264/971 4639/2265/971 4640/2266/971 +f 4641/2267/971 4642/2268/971 4643/2269/971 +f 4642/2268/971 4644/2270/971 4643/2269/971 +f 4643/2269/971 4645/2271/971 4646/2272/971 +f 4647/2273/971 4645/2271/971 4644/2270/971 +f 4648/2274/971 4644/2270/971 4649/2275/971 +f 4643/2269/971 4644/2270/971 4645/2271/971 +f 4650/2276/971 4651/2277/971 4652/2278/971 +f 4653/2279/971 4654/2280/971 4655/2281/971 +f 4656/2282/971 4657/2283/971 4658/2284/971 +f 4659/2285/971 4660/2286/971 4661/2287/971 +f 4661/2287/971 4655/2281/971 4654/2280/971 +f 4652/2278/971 4658/2284/971 4660/2286/971 +f 4661/2287/971 4658/2284/971 4657/2283/971 +f 4662/2288/971 4663/2289/971 4664/2290/971 +f 4665/2291/971 4666/2292/971 4667/2293/971 +f 4668/2294/971 4669/2295/971 4670/2296/971 +f 4671/2297/971 4672/2298/971 4673/2299/971 +f 4673/2299/971 4667/2293/971 4666/2292/971 +f 4664/2290/971 4670/2296/971 4672/2298/971 +f 4673/2299/971 4670/2296/971 4669/2295/971 +f 4674/2300/971 4640/2266/971 4675/2301/971 +f 4676/2302/971 4677/2303/971 4678/2304/971 +f 4679/2305/971 4649/2275/971 4677/2303/971 +f 4680/2306/971 4675/2301/971 4642/2268/971 +f 4675/2301/971 4649/2275/971 4642/2268/971 +f 4678/2304/971 4675/2301/971 4640/2266/971 +f 4612/2238/972 4681/2307/972 4682/2308/972 +f 4683/2309/973 4684/2310/973 4685/2311/973 +f 4686/2312/971 4687/2313/971 4688/2314/971 +f 4687/2313/971 4689/2315/971 4688/2314/971 +f 4688/2314/971 4690/2316/971 4691/2317/971 +f 4692/2318/971 4690/2316/971 4689/2315/971 +f 4693/2319/971 4689/2315/971 4639/2265/971 +f 4688/2314/971 4689/2315/971 4690/2316/971 +f 4694/2320/971 4695/2321/971 4696/2322/971 +f 4697/2323/971 4698/2324/971 4699/2325/971 +f 4700/2326/971 4701/2327/971 4702/2328/971 +f 4703/2329/971 4704/2330/971 4705/2331/971 +f 4698/2324/971 4701/2327/971 4699/2325/971 +f 4696/2322/971 4702/2328/971 4704/2330/971 +f 4705/2331/971 4702/2328/971 4701/2327/971 +f 4706/2332/971 4678/2304/971 4687/2313/971 +f 4687/2313/971 4640/2266/971 4639/2265/971 +f 4600/2226/969 4607/2233/969 4601/2227/969 +f 4603/2229/969 4606/2232/969 4604/2230/969 +f 4606/2232/969 4603/2229/969 4607/2233/969 +f 4614/2240/969 4605/2231/969 4604/2230/969 +f 4615/2241/969 4618/2244/969 4616/2242/969 +f 4617/2243/969 4620/2246/969 4616/2242/969 +f 4619/2245/969 4622/2248/969 4620/2246/969 +f 4619/2245/969 4624/2250/969 4621/2247/969 +f 4623/2249/969 4625/2251/969 4621/2247/969 +f 4625/2251/969 4623/2249/969 4626/2252/969 +f 4628/2254/969 4630/2256/969 4627/2253/969 +f 4628/2254/969 4632/2258/969 4629/2255/969 +f 4631/2257/969 4637/2263/969 4629/2255/969 +f 4633/2259/969 4602/2228/969 4601/2227/969 +f 4634/2260/969 4636/2333/969 4635/2261/969 +f 4631/2257/969 4635/2334/969 4636/2262/969 +f 4642/2268/971 4649/2275/971 4644/2270/971 +f 4661/2287/971 4657/2283/971 4655/2281/971 +f 4652/2278/971 4651/2277/971 4658/2284/971 +f 4661/2287/971 4660/2286/971 4658/2284/971 +f 4673/2299/971 4669/2295/971 4667/2293/971 +f 4664/2290/971 4663/2289/971 4670/2296/971 +f 4673/2299/971 4672/2298/971 4670/2296/971 +f 4675/2301/971 4677/2303/971 4649/2275/971 +f 4678/2304/971 4677/2303/971 4675/2301/971 +f 4612/2238/972 4611/2237/972 4681/2307/972 +f 4687/2313/971 4639/2265/971 4689/2315/971 +f 4698/2324/971 4705/2331/971 4701/2327/971 +f 4696/2322/971 4695/2321/971 4702/2328/971 +f 4705/2331/971 4704/2330/971 4702/2328/971 +f 4687/2313/971 4678/2304/971 4640/2266/971 +s 1 +f 4707/2335/974 4649/2336/975 4679/2337/976 +f 4708/2338/977 4634/2260/978 4709/2339/978 +f 4627/2253/979 4710/2340/980 4625/2251/980 +f 4605/2231/981 4711/2341/982 4603/2229/982 +f 4630/2256/983 4712/2342/979 4627/2253/979 +f 4614/2240/984 4713/2343/981 4605/2231/981 +f 4629/2255/985 4714/2344/983 4630/2256/983 +f 4616/2242/986 4715/2345/984 4614/2240/984 +f 4637/2263/987 4716/2346/985 4629/2255/985 +f 4620/2246/988 4717/2347/986 4616/2242/986 +f 4718/2348/987 4636/2262/977 4708/2349/977 +f 4622/2248/989 4719/2350/988 4620/2246/988 +f 4601/2227/976 4709/2339/978 4634/2260/978 +f 4621/2247/990 4720/2351/989 4622/2248/989 +f 4607/2233/991 4721/2352/976 4601/2227/976 +f 4625/2251/980 4722/2353/990 4621/2247/990 +f 4603/2229/982 4723/2354/991 4607/2233/991 +f 4714/2344/992 4724/2355/993 4712/2342/994 +f 4716/2346/995 4725/2356/996 4714/2344/992 +f 4718/2348/997 4726/2357/998 4716/2346/995 +f 4708/2349/999 4727/2358/1000 4718/2348/997 +f 4709/2339/1001 4728/2359/1002 4708/2338/999 +f 4721/2352/1003 4729/2360/1004 4709/2339/1001 +f 4723/2354/1005 4730/2361/1006 4721/2352/1003 +f 4711/2341/1007 4731/2362/1008 4723/2354/1005 +f 4711/2341/1007 4732/2363/1009 4733/2364/1010 +f 4715/2345/1011 4732/2365/1009 4713/2343/1012 +f 4715/2345/1011 4734/2366/1013 4735/2367/1014 +f 4719/2350/1015 4734/2368/1013 4717/2347/1016 +f 4720/2351/1017 4736/2369/1018 4719/2350/1015 +f 4722/2353/1019 4737/2370/1020 4720/2351/1017 +f 4710/2340/1021 4738/2371/1022 4722/2353/1019 +f 4712/2342/994 4739/2372/1023 4710/2340/1021 +f 4725/2356/996 4726/2373/998 4740/2374/969 +f 4735/2367/1014 4734/2366/1013 4740/2375/969 +f 4726/2357/998 4727/2376/1000 4740/2377/969 +f 4734/2368/1013 4736/2378/1018 4740/2379/969 +f 4728/2359/1002 4729/2380/1004 4740/2381/969 +f 4727/2358/1000 4728/2382/1002 4740/2383/969 +f 4736/2369/1018 4737/2384/1020 4740/2385/969 +f 4729/2360/1004 4730/2386/1006 4740/2387/969 +f 4737/2370/1020 4738/2388/1022 4740/2389/969 +f 4730/2361/1006 4731/2390/1008 4740/2391/969 +f 4738/2371/1022 4739/2392/1023 4740/2393/969 +f 4731/2362/1008 4733/2394/1010 4740/2395/969 +f 4739/2372/1023 4724/2396/993 4740/2397/969 +f 4733/2364/1010 4732/2363/1009 4740/2398/969 +f 4724/2355/993 4725/2399/996 4740/2400/969 +f 4732/2365/1009 4735/2401/1014 4740/2402/969 +f 4646/2403/1024 4741/2404/1025 4742/2405/1026 +f 4645/2406/1027 4743/2407/1028 4741/2408/1025 +f 4647/2409/1029 4744/2410/1030 4743/2411/1028 +f 4644/2412/1031 4745/2413/1032 4744/2414/1030 +f 4707/2415/1033 4648/2416/1034 4649/2417/1035 +f 4643/2418/1036 4742/2419/1026 4746/2420/1037 +f 4641/2421/1038 4746/2422/1037 4747/2423/1039 +f 4748/2424/1040 4641/2421/1038 4747/2425/1039 +f 4748/2424/1040 4749/2426/1041 4750/2427/1042 +f 4746/2422/1037 4749/2428/1041 4747/2423/1039 +f 4742/2419/1026 4751/2429/1043 4746/2420/1037 +f 4743/2407/1028 4613/2430/1044 4741/2408/1025 +f 4613/2431/1044 4742/2405/1026 4741/2404/1025 +f 4744/2410/1030 4611/2432/1045 4743/2411/1028 +f 4745/2413/1032 4752/2433/1046 4744/2414/1030 +f 4753/2434/1047 4707/2415/1033 4754/2435/1048 +f 4755/2436/984 4756/2437/1049 4754/2438/1050 +f 4754/2438/1050 4757/2439/1051 4753/2440/982 +f 4750/2441/1052 4610/2236/990 4758/2442/990 +f 4612/2443/987 4759/2444/1053 4751/2445/1054 +f 4751/2445/1054 4760/2446/1055 4749/2447/979 +f 4749/2447/979 4608/2234/1056 4750/2441/1057 +f 4753/2440/982 4761/2448/1058 4752/2449/1059 +f 4752/2449/1059 4762/2450/1060 4611/2451/978 +f 4608/2234/1056 4760/2446/1055 4609/2452/1061 +f 4760/2446/1055 4759/2444/1053 4609/2453/1061 +f 4759/2444/1053 4763/2454/1062 4609/2455/1061 +f 4762/2450/1060 4761/2448/1058 4609/2456/1061 +f 4761/2448/1058 4757/2439/1051 4609/2457/1061 +f 4757/2439/1051 4756/2437/1049 4609/2458/1061 +f 4756/2437/1049 4764/2459/1063 4609/2460/1061 +f 4748/2461/1064 4680/2462/985 4642/2463/1065 +f 4632/2464/985 4748/2461/1064 4631/2465/987 +f 4631/2465/987 4748/2461/1064 4635/2466/1066 +f 4635/2261/1067 4707/2335/974 4633/2467/978 +f 4602/2468/976 4707/2335/974 4679/2337/976 +f 4677/2469/991 4602/2468/976 4679/2337/976 +f 4676/2470/982 4600/2471/991 4677/2469/991 +f 4678/2472/981 4606/2473/982 4676/2470/982 +f 4706/2474/984 4604/2475/981 4678/2472/981 +f 4619/2476/989 4617/2477/1068 4765/2478/1069 +f 4765/2478/1069 4624/2479/990 4619/2476/989 +f 4765/2478/1069 4639/2480/1070 4638/2481/990 +f 4640/2482/980 4624/2479/990 4638/2481/990 +f 4674/2483/979 4623/2484/980 4640/2482/980 +f 4675/2485/983 4626/2486/979 4674/2483/979 +f 4680/2462/985 4628/2487/983 4675/2485/983 +f 4766/2488/1071 4651/2489/1072 4767/2490/1072 +f 4657/2491/1073 4768/2492/1074 4769/2493/1073 +f 4653/2494/1075 4770/2495/1076 4771/2496/1075 +f 4655/2497/1076 4769/2493/1073 4770/2495/1076 +f 4656/2498/1074 4766/2488/1071 4768/2492/1074 +f 4772/2499/979 4670/2500/1054 4773/2501/1054 +f 4774/2502/988 4667/2503/1077 4775/2504/1077 +f 4776/2505/982 4673/2506/1050 4777/2507/1050 +f 4773/2501/1054 4663/2508/1078 4778/2509/1078 +f 4779/2510/977 4664/2511/1079 4780/2512/1079 +f 4775/2504/1077 4669/2513/1052 4781/2514/1052 +f 4777/2507/1050 4666/2515/1080 4782/2516/1080 +f 4778/2509/1078 4662/2517/977 4779/2518/977 +f 4780/2512/1079 4672/2519/1059 4783/2520/1059 +f 4781/2514/1052 4668/2521/979 4772/2499/979 +f 4782/2516/1080 4665/2522/988 4774/2502/988 +f 4783/2520/1059 4671/2523/982 4776/2505/982 +f 4772/2499/1081 4784/2524/1082 4785/2525/1081 +f 4773/2501/1082 4786/2526/1083 4784/2524/1082 +f 4778/2509/1083 4787/2527/1084 4786/2526/1083 +f 4779/2510/1084 4788/2528/1085 4787/2529/1084 +f 4780/2512/1085 4789/2530/1086 4788/2528/1085 +f 4783/2520/1086 4790/2531/1087 4789/2530/1086 +f 4776/2505/1087 4791/2532/1088 4790/2531/1087 +f 4777/2507/1088 4792/2533/1089 4791/2532/1088 +f 4782/2516/1089 4793/2534/1090 4792/2533/1089 +f 4793/2534/1090 4775/2504/1091 4794/2535/1091 +f 4775/2504/1091 4795/2536/1092 4794/2535/1091 +f 4781/2514/1092 4785/2525/1081 4795/2536/1092 +f 4651/2489/1072 4796/2537/1093 4767/2490/1072 +f 4650/2538/1093 4797/2539/1094 4796/2540/1093 +f 4652/2541/1094 4798/2542/1095 4797/2539/1094 +f 4660/2543/1095 4799/2544/1096 4798/2542/1095 +f 4659/2545/1096 4800/2546/1097 4799/2544/1096 +f 4661/2547/1097 4801/2548/1098 4800/2546/1097 +f 4654/2549/1098 4771/2496/1075 4801/2548/1098 +f 4682/2308/1099 4802/2550/1100 4612/2551/1101 +f 4681/2307/1102 4611/2552/1103 4803/2553/1104 +f 4802/2554/1100 4681/2307/1102 4803/2555/1104 +f 4609/2556/1061 4763/2454/1062 4762/2450/1060 +f 4763/2454/1062 4611/2451/978 4762/2450/1060 +f 4691/2557/1105 4804/2558/1106 4805/2559/1107 +f 4690/2560/1108 4806/2561/1109 4804/2562/1106 +f 4692/2563/1110 4807/2564/1111 4806/2565/1109 +f 4689/2566/1112 4808/2567/1113 4807/2568/1111 +f 4765/2569/1114 4693/2570/1115 4639/2571/1116 +f 4688/2572/1117 4805/2573/1107 4809/2574/1118 +f 4686/2575/1119 4809/2576/1118 4810/2577/1120 +f 4811/2578/1121 4686/2575/1119 4810/2579/1120 +f 4811/2578/1121 4812/2580/1122 4813/2581/1123 +f 4809/2576/1118 4812/2582/1122 4810/2577/1120 +f 4805/2573/1107 4814/2583/1124 4809/2574/1118 +f 4806/2561/1109 4815/2584/1125 4804/2562/1106 +f 4815/2585/1125 4805/2559/1107 4804/2558/1106 +f 4807/2564/1111 4816/2586/1126 4806/2565/1109 +f 4808/2567/1113 4817/2587/1127 4807/2568/1111 +f 4818/2588/1128 4765/2569/1114 4819/2589/1129 +f 4820/2590/1130 4821/2591/1131 4822/2592/1132 +f 4821/2591/1131 4823/2593/1133 4824/2594/1134 +f 4825/2595/1135 4826/2596/1136 4827/2597/1137 +f 4828/2598/1138 4820/2599/1139 4822/2600/1139 +f 4825/2595/1135 4829/2601/1140 4830/2602/1141 +f 4831/2603/1142 4830/2602/1141 4829/2601/1140 +f 4827/2597/1137 4823/2604/1133 4832/2605/1143 +f 4829/2601/1140 4825/2595/1135 4827/2597/1137 +f 4683/2309/1144 4833/2606/1145 4684/2607/1146 +f 4833/2606/1145 4834/2608/1147 4684/2609/1146 +f 4834/2608/1147 4835/2610/1148 4684/2611/1146 +f 4836/2612/1149 4837/2613/1150 4684/2614/1146 +f 4837/2613/1150 4838/2615/1151 4684/2616/1146 +f 4838/2615/1151 4839/2617/1152 4684/2618/1146 +f 4839/2617/1152 4840/2619/1153 4684/2620/1146 +f 4841/2621/1097 4695/2622/1098 4842/2623/1098 +f 4843/2624/1095 4700/2625/1096 4844/2626/1096 +f 4697/2627/1093 4845/2628/1094 4846/2629/1093 +f 4699/2630/1094 4843/2624/1095 4845/2628/1094 +f 4700/2625/1096 4841/2621/1097 4844/2626/1096 +f 4695/2622/1098 4847/2631/1075 4842/2623/1098 +f 4694/2632/1075 4848/2633/1076 4847/2631/1075 +f 4696/2634/1076 4849/2635/1073 4848/2633/1076 +f 4849/2635/1073 4703/2636/1074 4850/2637/1074 +f 4703/2636/1074 4851/2638/1071 4850/2637/1074 +f 4705/2639/1071 4852/2640/1072 4851/2638/1071 +f 4698/2641/1072 4846/2642/1093 4852/2640/1072 +f 4684/2643/1146 4835/2610/1148 4836/2612/1149 +f 4853/2644/1154 4824/2645/1134 4854/2646/1155 +f 4811/2647/1156 4617/2477/1157 4618/2648/986 +f 4615/2649/984 4811/2647/1156 4618/2648/986 +f 4811/2647/1156 4706/2474/984 4687/2650/1158 +f 4853/2644/1154 4855/2651/982 4828/2652/1159 +f 4822/2592/1132 4853/2644/1154 4828/2652/1159 +f 4856/2653/979 4827/2597/1137 4857/2654/1160 +f 4827/2597/1137 4820/2590/1130 4857/2654/1160 +f 4858/2655/1161 4853/2644/1154 4854/2656/1155 +f 4858/2655/1161 4859/2657/1162 4853/2644/1154 +f 4858/2655/1161 4860/2658/1163 4859/2657/1162 +f 4861/2659/1164 4859/2657/1162 4860/2658/1163 +f 4830/2660/1054 4840/2619/1153 4839/2617/1152 +f 4825/2661/979 4839/2617/1152 4838/2615/1151 +f 4826/2662/1052 4838/2615/1151 4837/2613/1150 +f 4835/2610/1148 4823/2663/989 4836/2612/1149 +f 4858/2664/982 4834/2608/1147 4833/2606/1145 +f 4860/2665/1059 4833/2606/1145 4683/2309/1144 +f 4861/2666/976 4683/2309/1144 4685/2311/976 +f 4856/2667/971 4828/2598/1138 4855/2668/971 +f 4823/2663/989 4837/2613/1150 4836/2612/1149 +f 4854/2669/1050 4835/2610/1148 4834/2608/1147 +f 4862/2670/979 4863/2671/983 4864/2672/983 +f 4865/2673/1165 4866/2674/980 4867/2675/980 +f 4868/2676/982 4869/2677/981 4870/2678/981 +f 4871/2679/1166 4872/2680/991 4873/2681/991 +f 4864/2672/983 4874/2682/1167 4875/2683/1167 +f 4867/2675/980 4876/2684/979 4862/2670/979 +f 4870/2678/981 4877/2685/1168 4878/2686/1168 +f 4873/2681/991 4879/2687/982 4868/2676/982 +f 4880/2688/1169 4881/2689/1170 4882/2690/1170 +f 4883/2691/1171 4880/2688/1169 4884/2692/1171 +f 4885/2693/1172 4883/2691/1171 4884/2692/1171 +f 4886/2694/1173 4887/2695/1174 4888/2696/1174 +f 4889/2697/1175 4886/2694/1173 4890/2698/1175 +f 4891/2699/1176 4889/2697/1175 4890/2698/1175 +f 4708/2338/977 4636/2333/977 4634/2260/978 +f 4627/2253/979 4712/2342/979 4710/2340/980 +f 4605/2231/981 4713/2343/981 4711/2341/982 +f 4630/2256/983 4714/2344/983 4712/2342/979 +f 4614/2240/984 4715/2345/984 4713/2343/981 +f 4629/2255/985 4716/2346/985 4714/2344/983 +f 4616/2242/986 4717/2347/986 4715/2345/984 +f 4637/2263/987 4718/2348/987 4716/2346/985 +f 4620/2246/988 4719/2350/988 4717/2347/986 +f 4718/2348/987 4637/2263/987 4636/2262/977 +f 4622/2248/989 4720/2351/989 4719/2350/988 +f 4601/2227/976 4721/2352/976 4709/2339/978 +f 4621/2247/990 4722/2353/990 4720/2351/989 +f 4607/2233/991 4723/2354/991 4721/2352/976 +f 4625/2251/980 4710/2340/980 4722/2353/990 +f 4603/2229/982 4711/2341/982 4723/2354/991 +f 4714/2344/992 4725/2399/996 4724/2355/993 +f 4716/2346/995 4726/2373/998 4725/2356/996 +f 4718/2348/997 4727/2376/1000 4726/2357/998 +f 4708/2349/999 4728/2382/1002 4727/2358/1000 +f 4709/2339/1001 4729/2380/1004 4728/2359/1002 +f 4721/2352/1003 4730/2386/1006 4729/2360/1004 +f 4723/2354/1005 4731/2390/1008 4730/2361/1006 +f 4711/2341/1007 4733/2394/1010 4731/2362/1008 +f 4711/2341/1007 4713/2343/1012 4732/2363/1009 +f 4715/2345/1011 4735/2401/1014 4732/2365/1009 +f 4715/2345/1011 4717/2347/1016 4734/2366/1013 +f 4719/2350/1015 4736/2378/1018 4734/2368/1013 +f 4720/2351/1017 4737/2384/1020 4736/2369/1018 +f 4722/2353/1019 4738/2388/1022 4737/2370/1020 +f 4710/2340/1021 4739/2392/1023 4738/2371/1022 +f 4712/2342/994 4724/2396/993 4739/2372/1023 +f 4646/2403/1024 4645/2406/1027 4741/2404/1025 +f 4645/2406/1027 4647/2409/1029 4743/2407/1028 +f 4647/2409/1029 4644/2412/1031 4744/2410/1030 +f 4644/2412/1031 4648/2416/1034 4745/2413/1032 +f 4707/2415/1033 4745/2700/1032 4648/2416/1034 +f 4643/2418/1036 4646/2403/1024 4742/2419/1026 +f 4641/2421/1038 4643/2418/1036 4746/2422/1037 +f 4748/2424/1040 4642/2701/1177 4641/2421/1038 +f 4748/2424/1040 4747/2425/1039 4749/2426/1041 +f 4746/2422/1037 4751/2702/1043 4749/2428/1041 +f 4742/2419/1026 4612/2703/1178 4751/2429/1043 +f 4743/2407/1028 4611/2704/1045 4613/2430/1044 +f 4613/2431/1044 4612/2705/1178 4742/2405/1026 +f 4744/2410/1030 4752/2706/1046 4611/2432/1045 +f 4745/2413/1032 4753/2707/1047 4752/2433/1046 +f 4753/2434/1047 4745/2700/1032 4707/2415/1033 +f 4755/2436/984 4764/2459/1063 4756/2437/1049 +f 4754/2438/1050 4756/2437/1049 4757/2439/1051 +f 4750/2441/1057 4608/2234/1056 4610/2236/990 +f 4612/2443/987 4763/2454/1062 4759/2444/1053 +f 4751/2445/1054 4759/2444/1053 4760/2446/1055 +f 4749/2447/979 4760/2446/1055 4608/2234/1056 +f 4753/2440/982 4757/2439/1051 4761/2448/1058 +f 4752/2449/1059 4761/2448/1058 4762/2450/1060 +f 4632/2464/985 4680/2462/985 4748/2461/1064 +f 4602/2468/976 4633/2467/978 4707/2335/974 +f 4677/2469/991 4600/2471/991 4602/2468/976 +f 4676/2470/982 4606/2473/982 4600/2471/991 +f 4678/2472/981 4604/2475/981 4606/2473/982 +f 4706/2474/984 4615/2649/984 4604/2475/981 +f 4765/2478/1069 4638/2481/990 4624/2479/990 +f 4640/2482/980 4623/2484/980 4624/2479/990 +f 4674/2483/979 4626/2486/979 4623/2484/980 +f 4675/2485/983 4628/2487/983 4626/2486/979 +f 4680/2462/985 4632/2464/985 4628/2487/983 +f 4766/2488/1071 4658/2708/1071 4651/2489/1072 +f 4657/2491/1073 4656/2498/1074 4768/2492/1074 +f 4653/2494/1075 4655/2497/1076 4770/2495/1076 +f 4655/2497/1076 4657/2491/1073 4769/2493/1073 +f 4656/2498/1074 4658/2708/1071 4766/2488/1071 +f 4772/2499/979 4668/2521/979 4670/2500/1054 +f 4774/2502/988 4665/2522/988 4667/2503/1077 +f 4776/2505/982 4671/2523/982 4673/2506/1050 +f 4773/2501/1054 4670/2500/1054 4663/2508/1078 +f 4779/2510/977 4662/2709/977 4664/2511/1079 +f 4775/2504/1077 4667/2503/1077 4669/2513/1052 +f 4777/2507/1050 4673/2506/1050 4666/2515/1080 +f 4778/2509/1078 4663/2508/1078 4662/2517/977 +f 4780/2512/1079 4664/2511/1079 4672/2519/1059 +f 4781/2514/1052 4669/2513/1052 4668/2521/979 +f 4782/2516/1080 4666/2515/1080 4665/2522/988 +f 4783/2520/1059 4672/2519/1059 4671/2523/982 +f 4772/2499/1081 4773/2501/1082 4784/2524/1082 +f 4773/2501/1082 4778/2509/1083 4786/2526/1083 +f 4778/2509/1083 4779/2518/1084 4787/2527/1084 +f 4779/2510/1084 4780/2512/1085 4788/2528/1085 +f 4780/2512/1085 4783/2520/1086 4789/2530/1086 +f 4783/2520/1086 4776/2505/1087 4790/2531/1087 +f 4776/2505/1087 4777/2507/1088 4791/2532/1088 +f 4777/2507/1088 4782/2516/1089 4792/2533/1089 +f 4782/2516/1089 4774/2502/1090 4793/2534/1090 +f 4793/2534/1090 4774/2502/1090 4775/2504/1091 +f 4775/2504/1091 4781/2514/1092 4795/2536/1092 +f 4781/2514/1092 4772/2499/1081 4785/2525/1081 +f 4651/2489/1072 4650/2710/1093 4796/2537/1093 +f 4650/2538/1093 4652/2541/1094 4797/2539/1094 +f 4652/2541/1094 4660/2543/1095 4798/2542/1095 +f 4660/2543/1095 4659/2545/1096 4799/2544/1096 +f 4659/2545/1096 4661/2547/1097 4800/2546/1097 +f 4661/2547/1097 4654/2549/1098 4801/2548/1098 +f 4654/2549/1098 4653/2494/1075 4771/2496/1075 +f 4802/2554/1100 4682/2308/1099 4681/2307/1102 +f 4763/2454/1062 4612/2443/987 4611/2451/978 +f 4691/2557/1105 4690/2560/1108 4804/2558/1106 +f 4690/2560/1108 4692/2563/1110 4806/2561/1109 +f 4692/2563/1110 4689/2566/1112 4807/2564/1111 +f 4689/2566/1112 4693/2570/1115 4808/2567/1113 +f 4765/2569/1114 4808/2711/1113 4693/2570/1115 +f 4688/2572/1117 4691/2557/1105 4805/2573/1107 +f 4686/2575/1119 4688/2572/1117 4809/2576/1118 +f 4811/2578/1121 4687/2712/1179 4686/2575/1119 +f 4811/2578/1121 4810/2579/1120 4812/2580/1122 +f 4809/2576/1118 4814/2713/1124 4812/2582/1122 +f 4805/2573/1107 4892/2714/1180 4814/2583/1124 +f 4806/2561/1109 4816/2715/1126 4815/2584/1125 +f 4815/2585/1125 4892/2716/1180 4805/2559/1107 +f 4807/2564/1111 4817/2717/1127 4816/2586/1126 +f 4808/2567/1113 4818/2718/1128 4817/2587/1127 +f 4818/2588/1128 4808/2711/1113 4765/2569/1114 +f 4820/2590/1130 4832/2605/1143 4821/2591/1131 +f 4821/2591/1131 4832/2605/1143 4823/2593/1133 +f 4828/2598/1138 4857/2719/1138 4820/2599/1139 +f 4827/2597/1137 4826/2720/1136 4823/2604/1133 +f 4841/2621/1097 4702/2721/1097 4695/2622/1098 +f 4843/2624/1095 4701/2722/1095 4700/2625/1096 +f 4697/2627/1093 4699/2630/1094 4845/2628/1094 +f 4699/2630/1094 4701/2722/1095 4843/2624/1095 +f 4700/2625/1096 4702/2721/1097 4841/2621/1097 +f 4695/2622/1098 4694/2632/1075 4847/2631/1075 +f 4694/2632/1075 4696/2634/1076 4848/2633/1076 +f 4696/2634/1076 4704/2723/1073 4849/2635/1073 +f 4849/2635/1073 4704/2723/1073 4703/2636/1074 +f 4703/2636/1074 4705/2639/1071 4851/2638/1071 +f 4705/2639/1071 4698/2641/1072 4852/2640/1072 +f 4698/2641/1072 4697/2724/1093 4846/2642/1093 +f 4853/2644/1154 4821/2591/1131 4824/2645/1134 +f 4615/2649/984 4706/2474/984 4811/2647/1156 +f 4853/2644/1154 4859/2657/1162 4855/2651/982 +f 4822/2592/1132 4821/2591/1131 4853/2644/1154 +f 4856/2653/979 4829/2601/1140 4827/2597/1137 +f 4827/2597/1137 4832/2605/1143 4820/2590/1130 +f 4830/2660/1054 4831/2725/985 4840/2619/1153 +f 4825/2661/979 4830/2660/1054 4839/2617/1152 +f 4826/2662/1052 4825/2661/979 4838/2615/1151 +f 4835/2610/1148 4824/2726/986 4823/2663/989 +f 4858/2664/982 4854/2669/1050 4834/2608/1147 +f 4860/2665/1059 4858/2664/982 4833/2606/1145 +f 4861/2666/976 4860/2665/1059 4683/2309/1144 +f 4856/2667/971 4857/2719/1138 4828/2598/1138 +f 4823/2663/989 4826/2662/1052 4837/2613/1150 +f 4854/2669/1050 4824/2726/986 4835/2610/1148 +f 4862/2670/979 4876/2684/979 4863/2671/983 +f 4865/2673/1165 4893/2727/1165 4866/2674/980 +f 4868/2676/982 4879/2687/982 4869/2677/981 +f 4871/2679/1166 4894/2728/1166 4872/2680/991 +f 4864/2672/983 4863/2671/983 4874/2682/1167 +f 4867/2675/980 4866/2674/980 4876/2684/979 +f 4870/2678/981 4869/2677/981 4877/2685/1168 +f 4873/2681/991 4872/2680/991 4879/2687/982 +f 4880/2688/1169 4895/2729/1169 4881/2689/1170 +f 4883/2691/1171 4895/2729/1169 4880/2688/1169 +f 4885/2693/1172 4896/2730/1172 4883/2691/1171 +f 4886/2694/1173 4897/2731/1173 4887/2695/1174 +f 4889/2697/1175 4897/2731/1173 4886/2694/1173 +f 4891/2699/1176 4898/2732/1176 4889/2697/1175 +l 4900 4819 +l 4813 4899 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png new file mode 100644 index 0000000000000000000000000000000000000000..06cbb8a9f56b2391a96fe8c7615cd219c646969c GIT binary patch literal 1621 zcmZWqeLT~79A8?Dbj_Wb(~)(tNSV}fWe;sD^eWFZvKOLO)FgJw!{n}c$kgIIChM*T zPcaYOWY(<95Qd9z^OT}7OiaWY_mh{d*Xw?-@9+2d=kxu(-=EL-^M3ylog8d8Xz6Q# zK%fowc0?B-)&g%PL>>56%Z^Ba01n05yFq{_3KEb20;y};6A!sv&Y9?Q4E)hnw|+{7 z)IeIZir1R>m+v_yJW07N@)oWgrRg>I;y4`S5GdOn5-|A5?~*zJ&)3R&_Dpg{=gpR| z%_;F+52$|@6+P&3U!eQ4c=xGk8mbxILhxWjhn(9#6ES!rNpKoe@UelnR`?qff`db^ z;*CHI97rn`q^q`OhvUMmRYK&`kTqqB6Y_mZOXT-%|4#y|IpvbVU$=Tb4Z+4uDhhpT z)^Y1>pzg+YfPn9Qh3A_m3-(4wzLS;MjxFjy zaFzqEXkPI18_C%@8OrEK9;y=+M|Ba@yrr!Gz9k3R+BXd=TcmL3&EB%zB2`U^eE^Qe zQb?QO_;CbOFW}woEott(!*z4Yt{2%7T3Ky1GXwkZy$@`%HQ68(8TYw3fW^x#gqaD- z<(<`|_1u|H(I1*>x+F8vi-oyCqp0*@YS2`jk&@nuGb5go2uh=2In;Jkt04Yam8M$) zyLTEkB~2B~?W#oC4A3)7I2Y>~ON^4f3#x95y?!G{7{-SY zhIQ_`7Gc)Ipg6&T6Av2 z^T=}!OD^NHUXT3m;aBI431_916w_}WHezjhS`}GF0tYXiNz-)7hc;ZVAyfouP+)30 z_G&$@@J<80k>vf?F3VKLll*f_G>@#+u~k^sO6Ij=8_Sv5F&MV3_$EKV8QxfK4y-sE zjmPF{YnY;_v~${udA{Mo4{ha;+UK&?C=7?duBUUs+&ugNNlnjbgm!5oc!#GO#3Kut zZf*uXxe`nQP(dC8g-2!ah$LKT<6ii}AL|WZzL|RfeB&e>$lou`G-dgaxR#Gofh`2j z-NP4Y;{50F#tzj;iZh&a`Y%#B1dQAaUSJsR7zuzc5>IjunY# zPR85aS#HN8%-qY{0umZC&VE95fFb%fAkOTT;X7BEm+ngomA5zaY#P^(6?QgDLr&hmK|t2Hm=kpcA|hKoGs(O$Gm=1 zIsBGWG}`lO%)+C6G4t)t;6_T}vP(GDKh5D&q bV25KOWSZ>KdUP1@p8(k(b|9AEeSi5ED6`&$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/pad.png b/src/main/resources/assets/hbm/textures/models/launchpad/pad.png new file mode 100644 index 0000000000000000000000000000000000000000..37a1af1c4a5bfedde724386d023024b1b9a62525 GIT binary patch literal 1993 zcma)7c~nzp7EeqvVG%Mxwql$hxKT~Ob|hvri!^MNf{{gJb%BOO1ENGkLn2LGh9I~g zv{2GwYt;Zz+6b~FU!3+cfS@`-;_5<;25D4sM@;Bh*_Dgy<5TGYLe1lAY=bTB*B@hVC_ND9zN-I(+ z8|b|hkaS@C>#N@V`!)of=&kie+HtCO=@si(FWKcDVp zLYuc?FW(oJfxc+PBP}b>2zv#Ry~#M;Vh~57%4SncbMJUU&ZV8(hRDmGi@-TMQu)w0 z>tTD~kOkX`n&D=055_`k?=I9{8yCj0B~#qY)flV(&^WI>O{E#gBi7#vdQ^;H8RQBf zfT2S$M%v#T;TcMeO#K;msbJUQ>}NxLU&%9cZyNvMRgms+!hU_KR*W_toK>ZZr6)^? zF!LNyb9Nju#qBJ6-Z@%Qppbzt-YRUn;zBgv^f8-qX7jL_pE4odV4IE1-2%4SNG^f; z+yGs+a-`BF5sz%?LccS@u{SX}Ih%R7y(HNyU8>Y5N=S0<4^Gp?4%=MfF|PNlW)(Zt zZ{2R&J0R0X=NNWB@id{@!N=Ysy*fo@4<4n{;Br>G3KbGh*(VuV+%RqM-zUL%Ns862y{g5&}-Ie_56oWN47=LjkPfnn7 z-$zdpjepPt*nKRMEERMcc}JLJcfbG9-V#U^#IJ`AsEoH$&XWN?z0>~hAg)Z#fY*r= zSmTh2_?2&#FkhMcf6D7VHm*9>Q&=Mtv-3%zG{*h=!L>bJ?4JjVbWIO! z96PX=ld1wvvshx1P;(;(P3oM8iV|l;3dKXT9M=3~WXGZxxnvWh)-WSWnIGpR8nFL- zrB$CE(WiOHF{Q4YK`%~qXE%qui8akYb&kc<)a#Yx6<10EyV+#fdiC~Q+raB{z^#E zeCAIkJ}-xl+eZ~|OnSuKzRId2Z~whwxSt>ZC(*cO6r?0C+%vK)77To?Ytp?%y%)Ix z*mKTcfpSqYeejd6!iTWtiE8s_=AShD1-Uxvbfb!=BUxK5(~2uHSE_C$0?V*G)w4U{ zrQPBnVnF;d8}BH(;0vz@boj<-TX!ATtcV@%feQur)gp z*@5k@ErnlZgzuO)iPN`sznBjHw@ZQBlHNmV5M#Z`>!esp7y(zbgM2ks=%BC;bOQ+W z_NxTZC|H37TM5TVU3!KazE1GfL{+nBL8F+BoZB>Ah^q8q8>TGVERM$D-^OE&6M<9f zf1FjeBLg@syEvVBNyXeWj8|1NzF!`csE?G%gL(#m9v3VPgD+(rpZz-R>i1 zCkaOb=~;)%8J5lIVT8W5L#W(43P_QIfy-?vbTEXW-dnQOw|W_egs7rR5zRN3v@G;t z+qyjMe&OT^FzFoyV6>EJd6_+*Rz{l$@yp`V=4cM(`?9`Schu}R7X)sPL&DJawYp+> zOwH2Gu+-!BYM5Y1ZiT{#>}q}35>J=UE6WE;ZeT8)zCUKYt+w>0WLL7~vRN*}b|;ul zsX?$(*U4T&JnxGnphz!+65p~NlOBuS`^%Q0XbZK!EPM}{vY?% zR6Z=u`sajH>xg5_`u&vr&V*CUtY}V^X`Lt|4b#WL#-0bk@;lO#Kf-$a=6ap*ABl%l y8Umu3@t5BB`|6hJI~E)D>| Date: Wed, 7 Feb 2024 13:48:18 +1100 Subject: [PATCH 157/376] Fucking murder the sound loop, this way it'll call .stop() every update until it is disposed --- .../com/hbm/tileentity/TileEntityDoorGeneric.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 5cca88f4c..0fb24cdb2 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -246,7 +246,10 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn DoorDecl doorType = getDoorType(); if(this.state == 0 && state == 3){ // Door transitioning to open - if(audio != null) audio.stopSound(); + if(audio != null) { + audio.stopSound(); + audio.setKeepAlive(0); + } if(doorType.getOpenSoundLoop() != null){ audio = MainRegistry.proxy.getLoopedSound(doorType.getOpenSoundLoop(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); @@ -266,7 +269,10 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } if(this.state == 1 && state == 2){ // Door transitioning to closed - if(audio != null) audio.stopSound(); + if(audio != null) { + audio.stopSound(); + audio.setKeepAlive(0); + } if(doorType.getCloseSoundLoop() != null){ audio = MainRegistry.proxy.getLoopedSound(doorType.getCloseSoundLoop(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); @@ -288,10 +294,12 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn if(state == 1 || state == 0){ // Door finished any transition if(audio != null){ audio.stopSound(); + audio.setKeepAlive(0); audio = null; } if(audio2 != null){ audio2.stopSound(); + audio.setKeepAlive(0); audio2 = null; } } From a8acfafebfc183ead09a170720d772c98152cb61 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 7 Feb 2024 16:44:07 +0100 Subject: [PATCH 158/376] polluting fluid trait, more oil work --- changelog | 7 +- .../blocks/generic/BlockGlyphidSpawner.java | 1 - .../handler/pollution/PollutionHandler.java | 16 +- .../java/com/hbm/inventory/fluid/Fluids.java | 49 +- .../inventory/fluid/trait/FT_Polluting.java | 91 + .../fluid/trait/FT_VentRadiation.java | 2 +- .../hbm/inventory/fluid/trait/FluidTrait.java | 9 +- .../inventory/recipes/AssemblerRecipes.java | 1 - .../hbm/inventory/recipes/CokerRecipes.java | 1 + .../com/hbm/main/ModEventHandlerClient.java | 4 +- .../java/com/hbm/main/ResourceManager.java | 87 +- .../machine/TileEntityPWRController.java | 23 +- .../machine/rbmk/TileEntityRBMKBase.java | 18 +- .../machine/rbmk/TileEntityRBMKControl.java | 2 +- .../machine/rbmk/TileEntityRBMKRod.java | 5 + .../machine/storage/TileEntityBarrel.java | 5 +- src/main/resources/assets/hbm/lang/de_DE.lang | 5 + src/main/resources/assets/hbm/lang/en_US.lang | 6 + .../assets/hbm/models/bombs/n45_chain.obj | 1133 ----------- .../assets/hbm/models/bombs/n45_globe.obj | 1766 ----------------- .../assets/hbm/models/bombs/n45_knob.obj | 75 - .../assets/hbm/models/bombs/n45_rod.obj | 75 - .../assets/hbm/models/bombs/n45_stand.obj | 166 -- .../hbm/textures/gui/fluids/crackoil_ds.png | Bin 0 -> 446 bytes .../textures/gui/fluids/hotcrackoil_ds.png | Bin 0 -> 576 bytes .../hbm/textures/gui/fluids/hotoil_ds.png | Bin 0 -> 568 bytes .../hbm/textures/gui/fluids/lightoil_ds.png | Bin 0 -> 497 bytes .../hbm/textures/gui/fluids/naphtha_ds.png | Bin 0 -> 553 bytes .../assets/hbm/textures/gui/fluids/oil_ds.png | Bin 0 -> 390 bytes .../textures/models/tank/tank_CRACKOIL_DS.png | Bin 0 -> 1043 bytes .../models/tank/tank_HOTCRACKOIL_DS.png | Bin 0 -> 1275 bytes .../textures/models/tank/tank_HOTOIL_DS.png | Bin 0 -> 1225 bytes .../textures/models/tank/tank_LIGHTOIL_DS.png | Bin 0 -> 1095 bytes .../textures/models/tank/tank_NAPHTHA_DS.png | Bin 0 -> 1050 bytes .../hbm/textures/models/tank/tank_OIL_DS.png | Bin 0 -> 1034 bytes 35 files changed, 224 insertions(+), 3323 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java delete mode 100644 src/main/resources/assets/hbm/models/bombs/n45_chain.obj delete mode 100644 src/main/resources/assets/hbm/models/bombs/n45_globe.obj delete mode 100644 src/main/resources/assets/hbm/models/bombs/n45_knob.obj delete mode 100644 src/main/resources/assets/hbm/models/bombs/n45_rod.obj delete mode 100644 src/main/resources/assets/hbm/models/bombs/n45_stand.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/crackoil_ds.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/hotcrackoil_ds.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/hotoil_ds.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/lightoil_ds.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/naphtha_ds.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/oil_ds.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_CRACKOIL_DS.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_HOTCRACKOIL_DS.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_HOTOIL_DS.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_LIGHTOIL_DS.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_NAPHTHA_DS.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_OIL_DS.png diff --git a/changelog b/changelog index 634d881bf..ec43e17c2 100644 --- a/changelog +++ b/changelog @@ -29,6 +29,10 @@ * Covneyor ejectors can now eject sulfur out of the side ports of refineries * Refineries and vacuum refineries now have fluid ID slots for changing the recipe * Removed the remaining old oil separation recipes from the chemical plant +* More large models have been converted into display lists which should improve performance somewhat +* Corroded barrels now crumble after a while +* PWRs on the edge of unloaded chunks now additionally reset their internal heat value to further reduce the time until they can potentially melt down +* Removed the assembly recipe for the radial engine since it will be retired soon ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace @@ -40,4 +44,5 @@ * Fixed molds not saving when cooling off, allowing to dupe metal when leaving and rejoining * Fixed normal drones loading chunks * Fixed chunk-loading drones not loading chunks -* Fixed several chemistry templates missing names \ No newline at end of file +* Fixed several chemistry templates missing names +* Fixed rampant mode random scout spawns being able to appear inside blocks \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index 8a94eea57..1bd37155a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -5,7 +5,6 @@ import java.util.function.Function; import com.hbm.blocks.IBlockMulti; import com.hbm.config.MobConfig; -import com.hbm.entity.mob.*; import com.hbm.entity.mob.glyphid.EntityGlyphid; import com.hbm.entity.mob.glyphid.EntityGlyphidBehemoth; import com.hbm.entity.mob.glyphid.EntityGlyphidBlaster; diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 9bb436a5c..e012c54d2 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -342,7 +342,7 @@ public class PollutionHandler { } } } - ///RAMPANT MODE STUFFS/// + ///RAMPANT MODE STUFFS/// @SubscribeEvent public void rampantTargetSetter(PlayerSleepInBedEvent event){ @@ -351,13 +351,9 @@ public class PollutionHandler { @SubscribeEvent public void rampantScoutPopulator(WorldEvent.PotentialSpawns event){ - //yell at me if this vertical formatting hurts your brain - if(MobConfig.rampantNaturalScoutSpawn - && !event.world.isRemote - && event.world.provider.dimensionId == 0 - && event.type == EnumCreatureType.monster - && event.world.canBlockSeeTheSky(event.x, event.y, event.z) - && !event.isCanceled()) { + + if(MobConfig.rampantNaturalScoutSpawn && !event.world.isRemote && event.world.provider.dimensionId == 0 && event.type == EnumCreatureType.monster + && event.world.canBlockSeeTheSky(event.x, event.y, event.z) && !event.isCanceled()) { if (event.world.rand.nextInt(MobConfig.rampantScoutSpawnChance) == 0) { @@ -370,8 +366,8 @@ public class PollutionHandler { EntityGlyphidDigger digger = new EntityGlyphidDigger(event.world); scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); digger.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); - event.world.spawnEntityInWorld(scout); - event.world.spawnEntityInWorld(digger); + if(scout.getCanSpawnHere()) event.world.spawnEntityInWorld(scout); + if(digger.getCanSpawnHere()) event.world.spawnEntityInWorld(digger); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index ba9407683..4e224f561 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -218,7 +218,7 @@ public class Fluids { DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS); TRITIUM = new FluidType("TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS, new FT_VentRadiation(0.001F)); OIL = new FluidType("OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); + HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); HEAVYOIL = new FluidType("HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x513F39)).addTraits(new FT_Flammable(50_000), new FT_Combustible(FuelGrade.LOW, 25_000), LIQUID, VISCOUS); BITUMEN = new FluidType("BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5A5877)).addTraits(LIQUID, VISCOUS); SMEAR = new FluidType("SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x624F3B)).addTraits(new FT_Flammable(50_000), LIQUID, VISCOUS); @@ -270,7 +270,7 @@ public class Fluids { HEAVYWATER = new FluidType("HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); CRACKOIL = new FluidType("CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); COALOIL = new FluidType("COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); + HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS); LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID); DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID); @@ -339,13 +339,13 @@ public class Fluids { THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1)); - PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2)); - OIL_DS = new FluidType("OIL_DS", 0x020202, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - HOTOIL_DS = new FluidType("HOTOIL_DS", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); - CRACKOIL_DS = new FluidType("CRACKOIL_DS", 0x020202, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); - NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x595744, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - LIGHTOIL_DS = new FluidType("LIGHTOIL_DS", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); + PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2)); + OIL_DS = new FluidType("OIL_DS", 0x121212, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS); + HOTOIL_DS = new FluidType("HOTOIL_DS", 0x3F180F, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); + CRACKOIL_DS = new FluidType("CRACKOIL_DS", 0x2A1C11, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS); + HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x3A1A28, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); + NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x63614E, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(LIQUID, VISCOUS); + LIGHTOIL_DS = new FluidType(138, "LIGHTOIL_DS", 0x63543E, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -509,10 +509,10 @@ public class Fluids { metaOrder.add(SMOKE); metaOrder.add(SMOKE_LEADED); metaOrder.add(SMOKE_POISON); - //bug meth metaOrder.add(PHEROMONE); metaOrder.add(PHEROMONE_M); + for(FluidType custom : customFluids) metaOrder.add(custom); CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_LUNG, false))); @@ -541,12 +541,16 @@ public class Fluids { HOTSTEAM.addTraits(new FT_Coolable(STEAM, 1, 10, 2).setEff(CoolingType.TURBINE, eff_steam_turbine).setEff(CoolingType.HEATEXCHANGER, eff_steam_cool)); SUPERHOTSTEAM.addTraits(new FT_Coolable(HOTSTEAM, 1, 10, 18).setEff(CoolingType.TURBINE, eff_steam_turbine).setEff(CoolingType.HEATEXCHANGER, eff_steam_cool)); ULTRAHOTSTEAM.addTraits(new FT_Coolable(SUPERHOTSTEAM, 1, 10, 120).setEff(CoolingType.TURBINE, eff_steam_turbine).setEff(CoolingType.HEATEXCHANGER, eff_steam_cool)); - + OIL.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTOIL, 1)); + OIL_DS.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTOIL_DS, 1)); CRACKOIL.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTCRACKOIL, 1)); + CRACKOIL_DS.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTCRACKOIL_DS, 1)); HOTOIL.addTraits(new FT_Coolable(OIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + HOTOIL_DS.addTraits(new FT_Coolable(OIL_DS, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); HOTCRACKOIL.addTraits(new FT_Coolable(CRACKOIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + HOTCRACKOIL_DS.addTraits(new FT_Coolable(CRACKOIL_DS, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); COOLANT_HOT.addTraits(new FT_Coolable(COOLANT, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); @@ -571,13 +575,13 @@ public class Fluids { } - /// EXPERIMENTAL /// + /// FINAL /// long baseline = 100_000L; //we do not know - double demandVeryLow = 0.5D; - double demandLow = 1.0D; - double demandMedium = 1.5D; - double demandHigh = 2.0D; + double demandVeryLow = 0.5D; //for waste gasses + double demandLow = 1.0D; //for fuel oils + double demandMedium = 1.5D; //for processing oils like petroleum and BTX + double demandHigh = 2.0D; //kerosene and jet fuels double complexityRefinery = 1.1D; double complexityFraction = 1.05D; double complexityCracking = 1.25D; @@ -587,13 +591,16 @@ public class Fluids { double complexityLeaded = 1.5D; double complexityVacuum = 3.0D; double complexityReform = 2.5D; - double flammabilityLow = 0.25D; - double flammabilityNormal = 1.0D; - double flammabilityHigh = 2.0D; + double complexityHydro = 2.0D; + double flammabilityLow = 0.25D; //unrefined or low refined oils + double flammabilityNormal = 1.0D; //refined oils + double flammabilityHigh = 2.0D; //satan's asshole - /// the allmighty excel spreadsheet has spoken! /// + /// the almighty excel spreadsheet has spoken! /// registerCalculatedFuel(OIL, (baseline / 1D * flammabilityLow * demandLow), 0, null); + registerCalculatedFuel(OIL_DS, (baseline / 1D * flammabilityLow * demandLow * complexityHydro), 0, null); registerCalculatedFuel(CRACKOIL, (baseline / 1D * flammabilityLow * demandLow * complexityCracking), 0, null); + registerCalculatedFuel(CRACKOIL_DS, (baseline / 1D * flammabilityLow * demandLow * complexityCracking * complexityHydro), 0, null); registerCalculatedFuel(OIL_COKER, (baseline / 1D * flammabilityLow * demandLow * complexityCoker), 0, null); registerCalculatedFuel(GAS, (baseline / 1D * flammabilityNormal * demandVeryLow), 1.25, FuelGrade.GAS); registerCalculatedFuel(GAS_COKER, (baseline / 1D * flammabilityNormal * demandVeryLow * complexityCoker), 1.25, FuelGrade.GAS); @@ -604,6 +611,7 @@ public class Fluids { registerCalculatedFuel(PETROIL_LEADED, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant * complexityLubed * complexityLeaded), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(HEATINGOIL, (baseline / 0.31 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction * complexityFraction), 1.25D, FuelGrade.LOW); registerCalculatedFuel(NAPHTHA, (baseline / 0.25 * flammabilityLow * demandLow * complexityRefinery), 1.5D, FuelGrade.MEDIUM); + registerCalculatedFuel(NAPHTHA_DS, (baseline / 0.25 * flammabilityLow * demandLow * complexityRefinery * complexityHydro), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(NAPHTHA_CRACK, (baseline / 0.40 * flammabilityLow * demandLow * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(NAPHTHA_COKER, (baseline / 0.25 * flammabilityLow * demandLow * complexityCoker), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(GASOLINE, (baseline / 0.20 * flammabilityNormal * demandLow * complexityRefinery * complexityChemplant), 2.5D, FuelGrade.HIGH); @@ -611,6 +619,7 @@ public class Fluids { registerCalculatedFuel(DIESEL, (baseline / 0.21 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction), 2.5D, FuelGrade.HIGH); registerCalculatedFuel(DIESEL_CRACK, (baseline / 0.28 * flammabilityNormal * demandLow * complexityRefinery * complexityCracking * complexityFraction), 2.5D, FuelGrade.HIGH); registerCalculatedFuel(LIGHTOIL, (baseline / 0.15 * flammabilityNormal * demandHigh * complexityRefinery), 1.5D, FuelGrade.MEDIUM); + registerCalculatedFuel(LIGHTOIL_DS, (baseline / 0.15 * flammabilityNormal * demandHigh * complexityRefinery * complexityHydro), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(LIGHTOIL_CRACK, (baseline / 0.30 * flammabilityNormal * demandHigh * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(KEROSENE, (baseline / 0.09 * flammabilityNormal * demandHigh * complexityRefinery * complexityFraction), 1.5D, FuelGrade.AERO); registerCalculatedFuel(PETROLEUM, (baseline / 0.10 * flammabilityNormal * demandMedium * complexityRefinery), 1.25, FuelGrade.GAS); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java new file mode 100644 index 000000000..ba0e70485 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java @@ -0,0 +1,91 @@ +package com.hbm.inventory.fluid.trait; + +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.tank.FluidTank; + +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class FT_Polluting extends FluidTrait { + + //original draft had both of them inside a hashmap for the release type but honestly handling hash maps in hash maps adds more complexity than it removes + public HashMap releaseMap = new HashMap(); + public HashMap burnMap = new HashMap(); + + public FT_Polluting release(PollutionType type, float amount) { + releaseMap.put(type, amount); + return this; + } + + public FT_Polluting burn(PollutionType type, float amount) { + burnMap.put(type, amount); + return this; + } + + @Override + public void addInfo(List info) { + info.add(EnumChatFormatting.GOLD + "[Polluting]"); + } + + @Override + public void addInfoHidden(List info) { + + if(!this.releaseMap.isEmpty()) { + info.add(EnumChatFormatting.GREEN + "When spilled:"); + for(Entry entry : releaseMap.entrySet()) info.add(EnumChatFormatting.GREEN + " - " + entry.getValue() + " " + entry.getKey() + " per mB"); + } + + if(!this.burnMap.isEmpty()) { + info.add(EnumChatFormatting.RED + "When burned:"); + for(Entry entry : burnMap.entrySet()) info.add(EnumChatFormatting.RED + " - " + entry.getValue() + " " + entry.getKey() + " per mB"); + } + } + + @Override + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount, FluidReleaseType type) { + if(type == FluidReleaseType.SPILL) for(Entry entry : releaseMap.entrySet()) PollutionHandler.incrementPollution(world, x, y, z, entry.getKey(), entry.getValue()); + if(type == FluidReleaseType.BURN) for(Entry entry : burnMap.entrySet()) PollutionHandler.incrementPollution(world, x, y, z, entry.getKey(), entry.getValue()); + } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("release").beginObject(); + for(Entry entry : releaseMap.entrySet()) { + writer.name(entry.toString()).value(entry.getValue()); + } + writer.endObject(); + writer.name("burn").beginObject(); + for(Entry entry : burnMap.entrySet()) { + writer.name(entry.toString()).value(entry.getValue()); + } + writer.endObject(); + } + + @Override + public void deserializeJSON(JsonObject obj) { + if(obj.has("release")) { + JsonObject release = obj.get("release").getAsJsonObject(); + for(PollutionType type : PollutionType.values()) { + if(release.has(type.name())) { + releaseMap.put(type, release.get(type.name()).getAsFloat()); + } + } + } + if(obj.has("burn")) { + JsonObject release = obj.get("burn").getAsJsonObject(); + for(PollutionType type : PollutionType.values()) { + if(release.has(type.name())) { + burnMap.put(type, release.get(type.name()).getAsFloat()); + } + } + } + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java index 516ef0e81..976dfedb2 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java @@ -26,7 +26,7 @@ public class FT_VentRadiation extends FluidTrait { } @Override - public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount, FluidReleaseType type) { ChunkRadiationManager.proxy.incrementRad(world, x, y, z, overflowAmount * radPerMB); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index c840d3a89..6b6d8d449 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -25,6 +25,7 @@ public abstract class FluidTrait { traitNameMap.put("toxin", FT_Toxin.class); // x traitNameMap.put("ventradiation", FT_VentRadiation.class); // x traitNameMap.put("pwrmoderator", FT_PWRModerator.class); // x + traitNameMap.put("polluting", FT_Polluting.class); // x traitNameMap.put("gaseous", FT_Gaseous.class); traitNameMap.put("gaseous_art", FT_Gaseous_ART.class); @@ -46,8 +47,14 @@ public abstract class FluidTrait { /* General names of simple traits which are displayed when holding shift */ public void addInfoHidden(List info) { } - public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { } + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount, FluidReleaseType type) { } public void serializeJSON(JsonWriter writer) throws IOException { } public void deserializeJSON(JsonObject obj) { } + + public static enum FluidReleaseType { + VOID, //if fluid is deleted entirely, shouldn't be used + BURN, //if fluid is burned or combusted + SPILL //if fluid is spilled via leakage or the container breaking + } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index a0831faa8..dd1e6b876 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -270,7 +270,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate528(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60); - makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 944133896..6acfc9df1 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -62,6 +62,7 @@ public class CokerRecipes extends SerializableRecipe { registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); + //only cokable gas to extract sulfur content registerRecipe(SOURGAS, 250, new ItemStack(ModItems.sulfur), new FluidStack(GAS_COKER, 150)); } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 687a62625..592132ad5 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1338,7 +1338,9 @@ public class ModEventHandlerClient { case 12: main.splashText = "Imagine being scared by splash texts!"; break; } - if(Math.random() < 0.1) main.splashText = "Redditors aren't people!"; + double d = Math.random(); + if(d < 0.1) main.splashText = "Redditors aren't people!"; + else if(d < 0.2) main.splashText = "Can someone tell me what corrosive fumes the people on Reddit are huffing so I can avoid those more effectively?"; } } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 89bf64e26..907d1c1d8 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -25,35 +25,35 @@ public class ResourceManager { ////Obj TEs //Turrets - public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj")); - public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj")); - public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj")); - public static final IModelCustom turret_richard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_richard.obj")); - public static final IModelCustom turret_howard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard.obj")); - public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj")); - public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj")); - public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj")); - public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")).asDisplayList(); // test! + public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj")).asDisplayList(); + public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj")).asDisplayList(); + public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj")).asDisplayList(); + public static final IModelCustom turret_richard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_richard.obj")).asDisplayList(); + public static final IModelCustom turret_howard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard.obj")).asDisplayList(); + public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj")).asDisplayList(); + public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj")).asDisplayList(); + public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj")).asDisplayList(); + public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")).asDisplayList(); public static final IModelCustom turret_himars = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_himars.obj")).asDisplayList(); - public static final IModelCustom turret_sentry = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_sentry.obj")); + public static final IModelCustom turret_sentry = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_sentry.obj")).asDisplayList(); - public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")); + public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")).asDisplayList(); //Heaters - public static final IModelCustom heater_firebox = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj")); - public static final IModelCustom heater_oven = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj")); - public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj")); - public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false); - public static final IModelCustom heater_heatex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heatex.obj")); + public static final IModelCustom heater_firebox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj"), false).asDisplayList(); + public static final IModelCustom heater_oven = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj"), false).asDisplayList(); + public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj")).asDisplayList(); + public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false).asDisplayList(); + public static final IModelCustom heater_heatex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heatex.obj")).asDisplayList(); //Heat Engines public static final IModelCustom stirling = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/stirling.obj")); public static final IModelCustom sawmill = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/sawmill.obj")); public static final IModelCustom crucible_heat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/crucible.obj")); - public static final IModelCustom boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler.obj")); - public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj")); - public static final IModelCustom boiler_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/industrial_boiler.obj")); - public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")); + public static final IModelCustom boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler.obj")).asDisplayList(); + public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj")).asDisplayList(); + public static final IModelCustom boiler_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/industrial_boiler.obj")).asDisplayList(); + public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")).asDisplayList(); //Caster o' Strands public static final IModelCustom strand_caster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/strand_caster.obj")); @@ -70,40 +70,40 @@ public class ResourceManager { public static final IModelCustom mine_fat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_fat.obj")); //Oil Pumps - public static final IModelCustom derrick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/derrick.obj")); - public static final IModelCustom pumpjack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pumpjack.obj")); - public static final IModelCustom fracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fracking_tower.obj")); + public static final IModelCustom derrick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/derrick.obj")).asDisplayList(); + public static final IModelCustom pumpjack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pumpjack.obj")).asDisplayList(); + public static final IModelCustom fracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fracking_tower.obj")).asDisplayList(); //Refinery - public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj")); - public static final IModelCustom vacuum_distill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/vacuum_distill.obj")); - public static final IModelCustom refinery_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery_exploded.obj")); + public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj")).asDisplayList(); + public static final IModelCustom vacuum_distill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/vacuum_distill.obj")).asDisplayList(); + public static final IModelCustom refinery_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery_exploded.obj")).asDisplayList(); public static final IModelCustom fraction_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_tower.obj")); public static final IModelCustom fraction_spacer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_spacer.obj")); public static final IModelCustom cracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cracking_tower.obj")).asDisplayList(); public static final IModelCustom catalytic_reformer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/catalytic_reformer.obj")).asDisplayList(); public static final IModelCustom hydrotreater = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hydrotreater.obj")).asDisplayList(); - public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj")); - public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")); - public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj")); + public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj")).asDisplayList(); + public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")).asDisplayList(); + public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj")).asDisplayList(); public static final IModelCustom coker = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/coker.obj")).asDisplayList(); //Flare Stack - public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")); - public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj")); - public static final IModelCustom chimney_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_industrial.obj")); + public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")).asDisplayList(); + public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj")).asDisplayList(); + public static final IModelCustom chimney_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_industrial.obj")).asDisplayList(); //Tank - public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")); - public static final IModelCustom fluidtank_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank_exploded.obj")); - public static final IModelCustom bat9000 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/bat9000.obj")); - public static final IModelCustom orbus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/orbus.obj")); + public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")).asDisplayList(); + public static final IModelCustom fluidtank_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank_exploded.obj")).asDisplayList(); + public static final IModelCustom bat9000 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/bat9000.obj")).asDisplayList(); + public static final IModelCustom orbus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/orbus.obj")).asDisplayList(); //Turbofan - public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj")); + public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj")).asDisplayList(); //Gas Turbine - public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj")); + public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj")).asDisplayList(); //Pumps public static final IModelCustom pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pump.obj")).asDisplayList(); @@ -114,9 +114,9 @@ public class ResourceManager { public static final IModelCustom chungus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chungus.obj")).asDisplayList(); //Cooling Tower - public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")); - public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")); - public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")); + public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")).asDisplayList(); + public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")).asDisplayList(); + public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")).asDisplayList(); //Wood burner public static final IModelCustom wood_burner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/wood_burner.obj")); @@ -273,11 +273,6 @@ public class ResourceManager { public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")); public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj")); public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj")); - public static final IModelCustom n45_globe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_globe.obj")); - public static final IModelCustom n45_knob = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_knob.obj")); - public static final IModelCustom n45_rod = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_rod.obj")); - public static final IModelCustom n45_stand = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_stand.obj")); - public static final IModelCustom n45_chain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_chain.obj")); public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")); public static final IModelCustom dud = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/BalefireCrashed.obj")); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 974c78122..28adb277d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -144,14 +144,6 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG connections = connectionsDouble / 2; connectionsControlled = connectionsControlledDouble / 2; - - /*System.out.println("Finalized nuclear reactor!"); - System.out.println("Rods: " + rodCount); - System.out.println("Connections: " + connections); - System.out.println("Controlled connections: " + connectionsControlled); - System.out.println("Heatex: " + heatexCount); - System.out.println("Channels: " + channelCount); - System.out.println("Sources: " + sourceCount);*/ } @Override @@ -172,13 +164,13 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG int chunkX = xCoord >> 4; int chunkZ = zCoord >> 4; - //since fluid sources are often not within 1 chunk, we just do 2 chunks distance and call it a day + //since fluid sources are often not within 1 chunk, we just do 3 chunks distance and call it a day if(!worldObj.getChunkProvider().chunkExists(chunkX, chunkZ) || - !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ + 2) || - !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ - 2) || - !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ + 2) || - !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ - 2)) { - this.unloadDelay = 40; + !worldObj.getChunkProvider().chunkExists(chunkX + 3, chunkZ + 3) || + !worldObj.getChunkProvider().chunkExists(chunkX + 3, chunkZ - 3) || + !worldObj.getChunkProvider().chunkExists(chunkX - 3, chunkZ + 3) || + !worldObj.getChunkProvider().chunkExists(chunkX - 3, chunkZ - 3)) { + this.unloadDelay = 60; } if(this.assembled) { @@ -265,6 +257,9 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG if(this.coreHeat > this.coreHeatCapacity) { meltDown(); } + } else { + this.hullHeat = 0; + this.coreHeat = 0; } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 9e7b3d63e..b57598ff6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -90,7 +90,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements //unused public int trackingRange() { - return 25; + return 15; } @Override @@ -135,14 +135,14 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements this.heat -= processedWater * heatConsumption; } - public static final ForgeDirection[] heatDirs = new ForgeDirection[] { + public static final ForgeDirection[] neighborDirs = new ForgeDirection[] { ForgeDirection.NORTH, ForgeDirection.EAST, ForgeDirection.SOUTH, ForgeDirection.WEST }; - protected TileEntityRBMKBase[] heatCache = new TileEntityRBMKBase[4]; + protected TileEntityRBMKBase[] neighborCache = new TileEntityRBMKBase[4]; /** * Moves heat to neighboring parts, if possible, in a relatively fair manner @@ -156,24 +156,24 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements int steamTot = this.steam; int index = 0; - for(ForgeDirection dir : heatDirs) { + for(ForgeDirection dir : neighborDirs) { - if(heatCache[index] != null && heatCache[index].isInvalid()) - heatCache[index] = null; + if(neighborCache[index] != null && neighborCache[index].isInvalid()) + neighborCache[index] = null; - if(heatCache[index] == null) { + if(neighborCache[index] == null) { TileEntity te = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); if(te instanceof TileEntityRBMKBase) { TileEntityRBMKBase base = (TileEntityRBMKBase) te; - heatCache[index] = base; + neighborCache[index] = base; } } index++; } - for(TileEntityRBMKBase base : heatCache) { + for(TileEntityRBMKBase base : neighborCache) { if(base != null) { rec.add(base); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index 076e5afc6..e06d7ff1a 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -68,7 +68,7 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im @Override public int trackingRange() { - return 150; + return 100; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index e1a0e3384..3f1536eff 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -51,6 +51,11 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM public boolean isModerated() { return ((RBMKRod)this.getBlockType()).moderated; } + + @Override + public int trackingRange() { + return 25; + } @SuppressWarnings("incomplete-switch") //shut the fuck up @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 37ea7fbfb..8688a8c55 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -246,8 +246,9 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F); } - if(b == ModBlocks.barrel_corroded && worldObj.rand.nextInt(3) == 0) { - tank.setFill(tank.getFill() - 1); + if(b == ModBlocks.barrel_corroded ) { + if(worldObj.rand.nextInt(3) == 0) tank.setFill(tank.getFill() - 1); + if(worldObj.rand.nextInt(3 * 60 * 20) == 0) worldObj.func_147480_a(xCoord, yCoord, zCoord, false); } //For when Tom's firestorm hits a barrel full of water diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0e965f420..61b7c73cf 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -671,6 +671,7 @@ hbmfluid.coaloil=Kohleöl hbmfluid.coolant=Kühlflüssigkeit hbmfluid.coolant_hot=Heiße Kühlflüssigkeit hbmfluid.crackoil=Crack-Öl +hbmfluid.crackoil_ds=Entschwefeltes Crack-Öl hbmfluid.cryogel=Kryogel hbmfluid.death=Osmiridiumlösung hbmfluid.deuterium=Deuterium @@ -698,7 +699,9 @@ hbmfluid.heavywater_hot=Heißes Schweres Wasser hbmfluid.helium3=Helium-3 hbmfluid.helium4=Helium-4 hbmfluid.hotcrackoil=Heißes Crack-Öl +hbmfluid.hotcrackoil_ds=Entschwefeltes Heißes Crack-Öl hbmfluid.hotoil=Heißes Rohöl +hbmfluid.hotoil_ds=Entschwefeltes Heißes Rohöl hbmfluid.hotsteam=Dichter Dampf hbmfluid.hydrogen=Flüssiger Wasserstoff hbmfluid.iongel=Ionengel @@ -707,6 +710,7 @@ hbmfluid.kerosene_reform=Düsentreibstoff hbmfluid.lava=Lava hbmfluid.lightoil=Leichtöl hbmfluid.lightoil_crack=Crack-Leichtöl +hbmfluid.lightoil_ds=Entschwefeltes Leichtöl hbmfluid.lightoil_vacuum=Vakuum-Leichtöl hbmfluid.lpg=LPG hbmfluid.lubricant=Schmiermittel @@ -717,6 +721,7 @@ hbmfluid.mustardgas=Senfgas hbmfluid.naphtha=Mitteldestillat hbmfluid.naphtha_coker=Koker-Naphtha hbmfluid.naphtha_crack=Crack-Mitteldestillat +hbmfluid.naphtha_ds=Entschwefeltes Mitteldestillat hbmfluid.nitan=NITAN© 100 Oktan Supertreibstoff hbmfluid.nitric_acid=Salpetersäure hbmfluid.nitroglycerin=Nitroglycerin diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0705b1dbc..fbfd4d425 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1314,6 +1314,7 @@ hbmfluid.colloid=Colloid hbmfluid.coolant=Coolant hbmfluid.coolant_hot=Hot Coolant hbmfluid.crackoil=Cracked Oil +hbmfluid.crackoil_ds=Desulfurized Cracked Oil hbmfluid.cryogel=Cryogel hbmfluid.death=Osmiridic Solution hbmfluid.deuterium=Deuterium @@ -1341,7 +1342,9 @@ hbmfluid.heavywater_hot=Hot Heavy Water hbmfluid.helium3=Helium-3 hbmfluid.helium4=Helium-4 hbmfluid.hotcrackoil=Hot Cracked Oil +hbmfluid.hotcrackoil_ds=Desulfurized Hot Cracked Oil hbmfluid.hotoil=Hot Crude Oil +hbmfluid.hotoil_ds=Desulfurized Hot Crude Oil hbmfluid.hotsteam=Dense Steam hbmfluid.hydrogen=Liquid Hydrogen hbmfluid.iongel=Ionic Gel @@ -1350,6 +1353,7 @@ hbmfluid.kerosene_reform=Jet Fuel hbmfluid.lava=Lava hbmfluid.lightoil=Light Oil hbmfluid.lightoil_crack=Cracked Light Oil +hbmfluid.lightoil_ds=Desulfurized Light Oil hbmfluid.lightoil_vacuum=Vacuum Light Oil hbmfluid.lpg=LPG hbmfluid.lubricant=Engine Lubricant @@ -1360,12 +1364,14 @@ hbmfluid.mustardgas=Mustard Gas hbmfluid.naphtha=Naphtha hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha +hbmfluid.naphtha_ds=Desulfurized Naphtha hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=None hbmfluid.oil=Crude Oil hbmfluid.oil_coker=Coker Oil +hbmfluid.oil_ds=Desulfurized Crude Oil hbmfluid.oxygen=Liquid Oxygen hbmfluid.oxyhydrogen=Oxyhydrogen hbmfluid.pain=Pandemonium(III)tantalite Solution diff --git a/src/main/resources/assets/hbm/models/bombs/n45_chain.obj b/src/main/resources/assets/hbm/models/bombs/n45_chain.obj deleted file mode 100644 index aa2cf4c00..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_chain.obj +++ /dev/null @@ -1,1133 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_chain.blend' -# www.blender.org -o Torus -v 0.000000 -0.000000 -0.110000 -v 0.020000 -0.000000 -0.090000 -v 0.000000 -0.000000 -0.070000 -v -0.020000 -0.000000 -0.090000 -v -0.000000 0.116673 -0.077782 -v 0.020000 0.095459 -0.063640 -v -0.000000 0.074246 -0.049497 -v -0.020000 0.095459 -0.063640 -v -0.000000 0.165000 -0.000000 -v 0.020000 0.135000 -0.000000 -v -0.000000 0.105000 -0.000000 -v -0.020000 0.135000 -0.000000 -v -0.000000 0.116673 0.077782 -v 0.020000 0.095459 0.063640 -v -0.000000 0.074246 0.049497 -v -0.020000 0.095459 0.063640 -v 0.000000 -0.000000 0.110000 -v 0.020000 -0.000000 0.090000 -v 0.000000 -0.000000 0.070000 -v -0.020000 -0.000000 0.090000 -v 0.000000 0.835000 0.000000 -v 0.020000 0.865000 0.000000 -v 0.000000 0.895000 0.000000 -v -0.020000 0.865000 0.000000 -v 0.000000 0.883327 -0.077782 -v 0.020000 0.904541 -0.063640 -v 0.000000 0.925754 -0.049497 -v -0.020000 0.904541 -0.063640 -v 0.000000 1.000000 -0.110000 -v 0.020000 1.000000 -0.090000 -v 0.000000 1.000000 -0.070000 -v -0.020000 1.000000 -0.090000 -v 0.000000 1.000000 0.110000 -v 0.020000 1.000000 0.090000 -v 0.000000 1.000000 0.070000 -v -0.020000 1.000000 0.090000 -v 0.000000 0.883327 0.077782 -v 0.020000 0.904541 0.063640 -v 0.000000 0.925754 0.049498 -v -0.020000 0.904541 0.063640 -v 0.000000 0.501667 0.000000 -v 0.020000 0.531667 0.000000 -v 0.000000 0.561667 0.000000 -v -0.020000 0.531667 0.000000 -v 0.000000 0.549994 -0.077782 -v 0.020000 0.571207 -0.063640 -v 0.000000 0.592420 -0.049497 -v -0.020000 0.571207 -0.063640 -v 0.000000 0.666667 -0.110000 -v 0.020000 0.666667 -0.090000 -v 0.000000 0.666667 -0.070000 -v -0.020000 0.666667 -0.090000 -v -0.000000 0.783339 -0.077782 -v 0.020000 0.762126 -0.063640 -v -0.000000 0.740913 -0.049497 -v -0.020000 0.762126 -0.063640 -v -0.000000 0.831667 -0.000000 -v 0.020000 0.801667 -0.000000 -v -0.000000 0.771667 -0.000000 -v -0.020000 0.801667 -0.000000 -v -0.000000 0.783339 0.077782 -v 0.020000 0.762126 0.063640 -v -0.000000 0.740913 0.049497 -v -0.020000 0.762126 0.063640 -v 0.000000 0.666667 0.110000 -v 0.020000 0.666667 0.090000 -v 0.000000 0.666667 0.070000 -v -0.020000 0.666667 0.090000 -v 0.000000 0.549994 0.077782 -v 0.020000 0.571207 0.063640 -v 0.000000 0.592420 0.049498 -v -0.020000 0.571207 0.063640 -v 0.000000 0.168333 0.000000 -v 0.020000 0.198333 0.000000 -v 0.000000 0.228333 0.000000 -v -0.020000 0.198333 0.000000 -v 0.000000 0.216661 -0.077782 -v 0.020000 0.237874 -0.063640 -v 0.000000 0.259087 -0.049497 -v -0.020000 0.237874 -0.063640 -v 0.000000 0.333333 -0.110000 -v 0.020000 0.333333 -0.090000 -v 0.000000 0.333333 -0.070000 -v -0.020000 0.333333 -0.090000 -v -0.000000 0.450006 -0.077782 -v 0.020000 0.428793 -0.063640 -v -0.000000 0.407579 -0.049497 -v -0.020000 0.428793 -0.063640 -v -0.000000 0.498333 -0.000000 -v 0.020000 0.468333 -0.000000 -v -0.000000 0.438333 -0.000000 -v -0.020000 0.468333 -0.000000 -v -0.000000 0.450006 0.077782 -v 0.020000 0.428793 0.063640 -v -0.000000 0.407579 0.049497 -v -0.020000 0.428793 0.063640 -v 0.000000 0.333333 0.110000 -v 0.020000 0.333333 0.090000 -v 0.000000 0.333333 0.070000 -v -0.020000 0.333333 0.090000 -v 0.000000 0.216661 0.077782 -v 0.020000 0.237874 0.063640 -v 0.000000 0.259087 0.049498 -v -0.020000 0.237874 0.063640 -v -0.000000 0.001667 -0.000000 -v -0.000000 0.031667 -0.020000 -v -0.000000 0.061667 -0.000000 -v -0.000000 0.031667 0.020000 -v -0.077782 0.049994 -0.000000 -v -0.063640 0.071207 -0.020000 -v -0.049497 0.092420 -0.000000 -v -0.063640 0.071207 0.020000 -v -0.110000 0.166667 0.000000 -v -0.090000 0.166667 -0.020000 -v -0.070000 0.166667 0.000000 -v -0.090000 0.166667 0.020000 -v -0.077782 0.283339 0.000000 -v -0.063640 0.262126 -0.020000 -v -0.049497 0.240913 0.000000 -v -0.063640 0.262126 0.020000 -v -0.000000 0.331667 0.000000 -v -0.000000 0.301667 -0.020000 -v -0.000000 0.271667 0.000000 -v -0.000000 0.301667 0.020000 -v 0.077782 0.283339 0.000000 -v 0.063640 0.262126 -0.020000 -v 0.049497 0.240913 0.000000 -v 0.063640 0.262126 0.020000 -v 0.110000 0.166667 0.000000 -v 0.090000 0.166667 -0.020000 -v 0.070000 0.166667 0.000000 -v 0.090000 0.166667 0.020000 -v 0.077782 0.049994 0.000000 -v 0.063640 0.071207 -0.020000 -v 0.049498 0.092421 0.000000 -v 0.063640 0.071207 0.020000 -v -0.000000 0.668333 -0.000000 -v -0.000000 0.698333 -0.020000 -v -0.000000 0.728333 -0.000000 -v -0.000000 0.698333 0.020000 -v -0.077782 0.716661 -0.000000 -v -0.063640 0.737874 -0.020000 -v -0.049497 0.759087 -0.000000 -v -0.063640 0.737874 0.020000 -v -0.110000 0.833333 0.000000 -v -0.090000 0.833333 -0.020000 -v -0.070000 0.833333 0.000000 -v -0.090000 0.833333 0.020000 -v -0.077782 0.950006 0.000000 -v -0.063640 0.928793 -0.020000 -v -0.049497 0.907579 0.000000 -v -0.063640 0.928793 0.020000 -v -0.000000 0.998333 0.000000 -v -0.000000 0.968333 -0.020000 -v -0.000000 0.938333 0.000000 -v -0.000000 0.968333 0.020000 -v 0.077782 0.950006 0.000000 -v 0.063640 0.928793 -0.020000 -v 0.049497 0.907579 0.000000 -v 0.063640 0.928793 0.020000 -v 0.110000 0.833333 0.000000 -v 0.090000 0.833333 -0.020000 -v 0.070000 0.833333 0.000000 -v 0.090000 0.833333 0.020000 -v 0.077782 0.716661 0.000000 -v 0.063640 0.737874 -0.020000 -v 0.049498 0.759087 0.000000 -v 0.063640 0.737874 0.020000 -v -0.000000 0.335000 -0.000000 -v -0.000000 0.365000 -0.020000 -v -0.000000 0.395000 -0.000000 -v -0.000000 0.365000 0.020000 -v -0.077782 0.383327 -0.000000 -v -0.063640 0.404541 -0.020000 -v -0.049497 0.425754 -0.000000 -v -0.063640 0.404541 0.020000 -v -0.110000 0.500000 0.000000 -v -0.090000 0.500000 -0.020000 -v -0.070000 0.500000 0.000000 -v -0.090000 0.500000 0.020000 -v -0.077782 0.616673 0.000000 -v -0.063640 0.595459 -0.020000 -v -0.049497 0.574246 0.000000 -v -0.063640 0.595459 0.020000 -v -0.000000 0.665000 0.000000 -v -0.000000 0.635000 -0.020000 -v -0.000000 0.605000 0.000000 -v -0.000000 0.635000 0.020000 -v 0.077782 0.616673 0.000000 -v 0.063640 0.595459 -0.020000 -v 0.049497 0.574246 0.000000 -v 0.063640 0.595459 0.020000 -v 0.110000 0.500000 0.000000 -v 0.090000 0.500000 -0.020000 -v 0.070000 0.500000 0.000000 -v 0.090000 0.500000 0.020000 -v 0.077782 0.383327 0.000000 -v 0.063640 0.404541 -0.020000 -v 0.049498 0.425754 0.000000 -v 0.063640 0.404541 0.020000 -vt 0.333333 0.000000 -vt 0.333333 0.130952 -vt 0.291667 0.119048 -vt 0.291667 0.869048 -vt 0.291667 0.761905 -vt 0.333333 0.773809 -vt 0.875000 0.488095 -vt 0.916666 0.476191 -vt 0.916666 0.583333 -vt 0.125000 0.535715 -vt 0.166667 0.523810 -vt 0.166667 0.654762 -vt 0.041667 0.654762 -vt 0.041667 0.785714 -vt 0.000000 0.773809 -vt 0.791667 0.869048 -vt 0.791667 0.976190 -vt 0.750000 0.964286 -vt 0.875000 0.773809 -vt 0.916667 0.761905 -vt 0.916667 0.869047 -vt 0.750000 0.642857 -vt 0.708333 0.654762 -vt 0.708333 0.523809 -vt 0.666667 0.130952 -vt 0.708333 0.142857 -vt 0.708333 0.250000 -vt 0.541667 0.869048 -vt 0.583333 0.880952 -vt 0.583333 0.964286 -vt 0.791667 0.964286 -vt 0.791667 0.880952 -vt 0.833333 0.869048 -vt 0.083333 0.535714 -vt 0.083333 0.642857 -vt 0.291667 0.261905 -vt 0.250000 0.250000 -vt 0.250000 0.142857 -vt 0.166667 0.785714 -vt 0.208333 0.797619 -vt 0.208333 0.880953 -vt 0.000000 0.880952 -vt 0.000000 0.797619 -vt 0.583333 0.273810 -vt 0.583333 0.380952 -vt 0.541667 0.392857 -vt 0.250000 0.392857 -vt 0.208333 0.380952 -vt 0.208334 0.273810 -vt 0.916666 0.345238 -vt 0.875000 0.333333 -vt 0.875000 0.250000 -vt 0.916667 0.666667 -vt 0.916667 0.750000 -vt 0.875000 0.761905 -vt 0.583333 0.511905 -vt 0.583333 0.404762 -vt 0.625000 0.392857 -vt 0.666666 0.392857 -vt 0.625000 0.380952 -vt 0.625000 0.273810 -vt 0.083333 0.892857 -vt 0.125000 0.904762 -vt 0.125000 0.988095 -vt 0.958333 0.750000 -vt 0.958333 0.666667 -vt 1.000000 0.654762 -vt 0.500000 0.404762 -vt 0.500000 0.511905 -vt 0.458333 0.523809 -vt 0.125000 0.773810 -vt 0.125000 0.785714 -vt 0.125000 0.892857 -vt 0.083333 0.880952 -vt 0.958333 0.357143 -vt 1.000000 0.345238 -vt 1.000000 0.452381 -vt 0.541667 0.250000 -vt 0.500000 0.261905 -vt 0.500000 0.130952 -vt 0.166667 0.000000 -vt 0.166667 0.130952 -vt 0.125000 0.119048 -vt 0.791666 0.500000 -vt 0.791666 0.607143 -vt 0.750000 0.595238 -vt 0.750000 0.404762 -vt 0.791666 0.392857 -vt 0.208333 0.011905 -vt 0.250000 0.000000 -vt 0.250000 0.130952 -vt 0.083333 0.523810 -vt 0.041667 0.511905 -vt 0.041667 0.404762 -vt 0.916666 0.238095 -vt 0.875000 0.226190 -vt 0.875000 0.142857 -vt 0.041667 0.880952 -vt 0.041667 0.797619 -vt 0.083333 0.785714 -vt 0.500000 0.380952 -vt 0.500000 0.273809 -vt 0.541667 0.261905 -vt 0.583333 0.261905 -vt 0.541667 0.142857 -vt 0.958333 0.000000 -vt 1.000000 0.011905 -vt 1.000000 0.095238 -vt 0.958333 0.333333 -vt 0.958333 0.250000 -vt 1.000000 0.238095 -vt 0.541667 0.535714 -vt 0.541667 0.642857 -vt 0.500000 0.654762 -vt 0.041667 0.130952 -vt 0.041667 0.261905 -vt 0.000000 0.250000 -vt 1.000000 0.761905 -vt 1.000000 0.869047 -vt 0.958333 0.857143 -vt 0.250000 0.785714 -vt 0.250000 0.892857 -vt 0.375000 0.535714 -vt 0.416667 0.523809 -vt 0.416667 0.654762 -vt 0.083333 0.130952 -vt 0.083333 0.261905 -vt 0.041667 0.250000 -vt 0.541667 0.654762 -vt 0.541667 0.761905 -vt 0.500000 0.750000 -vt 0.916666 0.380952 -vt 0.958333 0.369048 -vt 0.958333 0.476190 -vt 0.458333 0.011905 -vt 0.500000 0.000000 -vt 0.416667 0.261905 -vt 0.458333 0.273810 -vt 0.458333 0.380952 -vt 0.500000 0.761905 -vt 0.458333 0.750000 -vt 0.458333 0.666667 -vt 0.416667 0.964286 -vt 0.416667 0.880952 -vt 0.458333 0.869048 -vt 0.125000 0.666667 -vt 0.291667 0.392857 -vt 0.250000 0.380952 -vt 0.250000 0.273810 -vt 0.333333 0.761905 -vt 0.291667 0.750000 -vt 0.291667 0.666667 -vt 0.791666 0.357143 -vt 0.791666 0.273809 -vt 0.833333 0.261905 -vt 0.208333 0.142857 -vt 0.208333 0.250000 -vt 0.166667 0.261905 -vt 0.583333 0.654762 -vt 0.583333 0.523809 -vt 0.625000 0.535714 -vt 0.958333 0.761905 -vt 0.958333 0.869047 -vt 0.916667 0.857143 -vt 0.000000 0.904762 -vt 0.041667 0.892857 -vt 0.041667 1.000000 -vt 0.666666 0.273809 -vt 0.708333 0.261905 -vt 0.708333 0.392857 -vt 0.083333 0.000000 -vt 0.041667 0.119048 -vt 0.416667 0.869048 -vt 0.416667 0.976191 -vt 0.375000 0.964286 -vt 0.750000 0.273809 -vt 0.791666 0.261905 -vt 0.791666 0.369048 -vt 0.250000 0.261905 -vt 0.208333 0.392857 -vt 0.166667 0.380953 -vt 0.166667 0.273810 -vt 0.833333 0.750000 -vt 0.833333 0.666667 -vt 0.833333 0.345238 -vt 0.000000 0.642857 -vt 0.000000 0.535714 -vt 0.041667 0.523810 -vt 0.208333 0.523810 -vt 0.166667 0.511905 -vt 0.166667 0.404762 -vt 0.708334 0.869048 -vt 0.750000 0.880952 -vt 0.958333 0.571428 -vt 0.958333 0.488095 -vt 1.000000 0.476191 -vt 0.125000 0.511905 -vt 0.125000 0.404762 -vt 0.166667 0.392857 -vt 0.291667 0.000000 -vt 0.291667 0.130952 -vt 0.250000 0.119048 -vt 0.833333 0.654762 -vt 0.833333 0.761905 -vt 0.791667 0.750000 -vt 0.916666 0.142857 -vt 0.958333 0.130952 -vt 0.958333 0.238095 -vt 0.041667 0.380952 -vt 0.000000 0.392857 -vt 0.000000 0.261905 -vt 0.750000 0.392857 -vt 0.750000 0.523809 -vt 0.708333 0.511905 -vt 0.833333 0.392857 -vt 0.833333 0.500000 -vt 0.791666 0.488095 -vt 0.875000 0.880952 -vt 0.916667 0.976190 -vt 0.208333 0.773810 -vt 0.625000 0.130952 -vt 0.583333 0.119048 -vt 0.583333 0.011905 -vt 0.791667 0.238095 -vt 0.750000 0.226190 -vt 0.750000 0.142857 -vt 0.166667 0.892857 -vt 0.750000 0.250000 -vt 0.083333 0.392857 -vt 0.875000 0.000000 -vt 0.916666 0.011905 -vt 0.916666 0.095238 -vt 0.791666 0.095238 -vt 0.791666 0.011905 -vt 0.833333 0.000000 -vt 0.416667 0.642857 -vt 0.416667 0.535714 -vt 0.625000 0.261905 -vt 0.583333 0.250000 -vt 0.375000 0.869048 -vt 0.375000 0.976190 -vt 0.333333 0.964286 -vt 0.166667 0.904762 -vt 0.208333 0.892857 -vt 0.208333 1.000000 -vt 0.375000 0.511905 -vt 0.333333 0.523809 -vt 0.333333 0.392857 -vt 0.208333 0.000000 -vt 0.208333 0.130952 -vt 0.166667 0.119048 -vt 0.791667 0.857143 -vt 0.458333 0.773809 -vt 0.500000 0.869047 -vt 0.375000 0.273809 -vt 0.416667 0.392857 -vt 0.666667 0.261905 -vt 0.625000 0.250000 -vt 0.625000 0.142857 -vt 0.750000 0.857143 -vt 0.750000 0.773809 -vt 0.250000 0.964286 -vt 0.250000 0.880953 -vt 0.625000 0.119048 -vt 0.625000 0.011905 -vt 0.666667 0.000000 -vt 0.375000 0.261905 -vt 0.333333 0.250000 -vt 0.333333 0.142857 -vt 0.500000 0.857143 -vt 0.500000 0.773809 -vt 0.833333 0.464286 -vt 0.833333 0.380952 -vt 0.875000 0.369048 -vt 0.500000 0.535714 -vt 0.500000 0.642857 -vt 0.458333 0.654762 -vt 0.250000 0.404762 -vt 0.875000 0.380952 -vt 0.916666 0.369048 -vt 0.291667 0.142857 -vt 0.333333 0.261905 -vt 0.458333 0.130952 -vt 0.458333 0.261905 -vt 0.416667 0.250000 -vt 0.416667 0.761905 -vt 0.375000 0.750000 -vt 0.291667 0.976191 -vt 0.666666 0.642857 -vt 0.625000 0.654762 -vt 0.625000 0.523809 -vt 0.125000 0.392857 -vt 0.083333 0.380953 -vt 0.083333 0.273810 -vt 0.916667 0.654762 -vt 0.666667 0.880952 -vt 0.666667 0.964285 -vt 0.625000 0.976190 -vt 0.458333 0.119048 -vt 0.416667 0.130952 -vt 0.125000 0.261905 -vt 0.083333 0.250000 -vt 0.083333 0.142857 -vt 0.875000 0.857143 -vt 0.916666 0.571429 -vt 0.916666 0.488095 -vt 0.333333 0.119048 -vt 0.333333 0.011905 -vt 0.375000 0.000000 -vt 0.541667 0.130952 -vt 0.541667 0.000000 -vt 0.250000 1.000000 -vt 0.208333 0.988095 -vt 0.541667 0.964285 -vt 0.500000 0.976190 -vt 0.250000 0.642857 -vt 0.208333 0.654762 -vt 0.583333 0.392857 -vt 0.541667 0.511905 -vt 0.375000 0.761905 -vt 0.416667 0.773810 -vt 0.583333 0.857143 -vt 0.291667 0.523810 -vt 0.666666 0.404762 -vt 0.666666 0.511905 -vt 0.250000 0.750000 -vt 0.250000 0.666667 -vt 0.666667 0.857143 -vt 0.666667 0.773809 -vt 0.708334 0.761905 -vt 0.041667 0.773810 -vt 0.041667 0.666667 -vt 0.083333 0.654762 -vt 0.125000 0.011905 -vt 0.583333 0.761905 -vt 0.541667 0.750000 -vt 0.541667 0.666667 -vt 0.791667 0.666667 -vt 0.750000 0.761905 -vt 0.375000 0.642857 -vt 0.333333 0.654762 -vt 0.375000 0.250000 -vt 0.458333 0.761905 -vt 0.416667 0.857143 -vt 0.833333 0.142857 -vt 0.875000 0.130952 -vt 0.875000 0.238095 -vt 0.291667 0.273810 -vt 0.750000 0.261905 -vt 0.708333 0.380952 -vt 0.666667 0.761905 -vt 0.666667 0.869047 -vt 0.625000 0.857143 -vt 0.500000 0.964285 -vt 0.458333 0.976190 -vt 0.291667 0.511905 -vt 0.291667 0.404762 -vt 0.833333 0.511905 -vt 0.833333 0.595238 -vt 0.625000 0.869048 -vt 0.250000 0.773809 -vt 0.208333 0.785714 -vt 0.708333 0.011905 -vt 0.708333 0.119048 -vt 0.166667 0.797619 -vt 0.166667 0.880952 -vt 0.416667 0.750000 -vt 0.416667 0.666667 -vt 0.125000 0.250000 -vt 0.125000 0.142857 -vt 0.000000 0.130952 -vt 0.000000 0.000000 -vt 0.041667 0.011905 -vt 0.083333 1.000000 -vt 0.041667 0.988095 -vt 0.708334 0.666667 -vt 0.750000 0.654762 -vt 0.458333 0.142857 -vt 0.458333 0.392857 -vt 0.791666 0.000000 -vt 0.791666 0.107143 -vt 0.750000 0.095238 -vt 0.333333 0.666667 -vt 0.375000 0.654762 -vt 0.000000 0.523810 -vt 0.625000 0.773809 -vt 0.708334 0.880952 -vt 0.708333 0.964285 -vt 0.666667 0.976190 -vt 0.750000 0.011905 -vt 0.750000 0.119048 -vt 0.708333 0.130952 -vt 0.541667 0.011905 -vt 0.541667 0.119048 -vt 0.875000 0.107143 -vt 0.833333 0.095238 -vt 0.833333 0.011905 -vt 1.000000 0.142857 -vt 1.000000 0.226190 -vt 0.291667 0.642857 -vt 0.291667 0.535714 -vt 0.291667 0.654762 -vt 0.833333 0.583333 -vt 0.833333 0.476191 -vt 0.958333 0.095238 -vt 0.916666 0.107143 -vt 0.916666 0.000000 -vt 0.375000 0.380952 -vt 0.666667 0.750000 -vt 0.625000 0.666667 -vt 0.666667 0.654762 -vt 0.041667 0.273810 -vt 0.458333 0.404762 -vt 0.458333 0.511905 -vt 0.625000 0.761905 -vt 0.583334 0.750000 -vt 0.583333 0.666667 -vt 0.250000 0.857143 -vt 0.583333 0.535714 -vt 0.583333 0.642857 -vt 0.375000 0.404762 -vt 0.833333 0.238095 -vt 0.791667 0.226190 -vt 0.791667 0.142857 -vt 0.833333 0.964286 -vt 0.833333 0.880952 -vt 0.875000 0.869048 -vt 0.125000 0.380953 -vt 0.125000 0.273810 -vt 0.416667 0.000000 -vt 0.375000 0.119047 -vt 0.958333 0.880952 -vt 1.000000 0.976190 -vt 0.125000 0.523810 -vt 0.125000 0.654762 -vt 0.166667 0.642857 -vt 0.333333 0.857143 -vt 0.541667 0.523810 -vt 0.291667 0.011905 -vt 0.875000 0.571429 -vt 0.125000 0.642857 -vt 0.000000 0.666667 -vt 0.750000 0.535714 -vt 0.541667 0.976190 -vt 0.833333 0.976190 -vt 0.875000 0.654762 -vt 0.083333 0.797619 -vt 0.958333 0.440476 -vt 0.750000 0.511905 -vt 0.750000 0.488095 -vt 0.208333 0.119048 -vt 0.916666 0.130952 -vt 0.583333 0.130952 -vt 0.958333 0.107143 -vt 0.500000 0.523809 -vt 0.000000 0.142857 -vt 0.958333 0.773809 -vt 0.041667 0.142857 -vt 0.500000 0.666667 -vt 0.916666 0.464286 -vt 0.833333 0.369048 -vt 0.625000 0.642857 -vt 0.916667 0.773809 -vt 0.000000 0.988095 -vt 0.666667 0.380952 -vt 0.375000 0.880952 -vt 0.750000 0.357143 -vt 0.208333 0.261905 -vt 0.708334 0.976190 -vt 1.000000 0.583333 -vt 0.250000 0.011905 -vt 0.916667 0.226190 -vt 0.708333 0.404762 -vt 0.791666 0.404762 -vt 0.875000 0.964285 -vt 0.208333 0.666667 -vt 0.625000 0.000000 -vt 0.791667 0.130952 -vt 0.166667 1.000000 -vt 0.833333 0.107143 -vt 0.583333 0.142857 -vt 0.333333 0.880952 -vt 0.166667 0.988095 -vt 0.166667 0.011905 -vt 0.791667 0.773809 -vt 0.458333 0.857143 -vt 0.791667 0.761905 -vt 0.375000 0.130952 -vt 0.875000 0.476191 -vt 0.250000 0.511905 -vt 0.875000 0.464286 -vt 0.291667 0.250000 -vt 0.416667 0.142857 -vt 0.375000 0.666667 -vt 0.666666 0.535714 -vt 0.125000 0.130952 -vt 0.958333 0.583333 -vt 0.208333 0.904762 -vt 0.541667 0.880952 -vt 0.250000 0.535714 -vt 0.541667 0.404762 -vt 0.583333 0.773809 -vt 0.375000 0.142857 -vt 0.833333 0.226191 -vt 0.291667 0.380953 -vt 0.708333 0.273809 -vt 0.500000 0.880952 -vt 0.041667 0.904762 -vt 0.708334 0.750000 -vt 0.458333 0.250000 -vt 0.333333 0.750000 -vt 0.583333 0.869047 -vt 0.708333 0.000000 -vt 0.958333 0.011905 -vt 0.666667 0.666667 -vt 0.625000 0.750000 -vt 0.833333 0.130952 -vt 0.875000 0.976190 -vt 0.375000 0.011905 -vt 0.958333 0.964285 -vt 0.166667 0.535715 -vn 0.694000 0.191600 -0.694000 -vn 0.694000 -0.191600 0.694000 -vn -0.694000 -0.191600 0.694000 -vn -0.694000 0.191600 -0.694000 -vn 0.786600 0.524400 -0.325800 -vn 0.786600 -0.524400 0.325800 -vn -0.786600 -0.524400 0.325800 -vn -0.786600 0.524400 -0.325800 -vn 0.786600 0.524400 0.325800 -vn 0.786600 -0.524400 -0.325800 -vn -0.786600 -0.524400 -0.325800 -vn -0.786600 0.524400 0.325800 -vn 0.694000 0.191600 0.694000 -vn 0.694000 -0.191600 -0.694000 -vn -0.694000 -0.191600 -0.694000 -vn -0.694000 0.191600 0.694000 -vn -0.325800 -0.524400 -0.786600 -vn 0.325800 0.524400 -0.786600 -vn 0.325800 0.524400 0.786600 -vn -0.325800 -0.524400 0.786600 -vn -0.325800 0.524400 -0.786600 -vn 0.325800 -0.524400 -0.786600 -vn 0.325800 -0.524400 0.786600 -vn -0.325800 0.524400 0.786600 -s off -f 1/1/1 5/2/1 6/3/1 -f 2/4/2 6/5/2 7/6/2 -f 7/7/3 8/8/3 4/9/3 -f 8/10/4 5/11/4 1/12/4 -f 5/13/5 9/14/5 10/15/5 -f 6/16/6 10/17/6 11/18/6 -f 11/19/7 12/20/7 8/21/7 -f 12/22/8 9/23/8 5/24/8 -f 13/25/9 14/26/9 10/27/9 -f 14/28/10 15/29/10 11/30/10 -f 11/31/11 15/32/11 16/33/11 -f 12/34/12 16/35/12 13/13/12 -f 17/36/13 18/37/13 14/38/13 -f 18/39/14 19/40/14 15/41/14 -f 15/42/15 19/43/15 20/14/15 -f 16/44/16 20/45/16 17/46/16 -f 25/47/10 26/48/10 22/49/10 -f 26/50/9 27/51/9 23/52/9 -f 23/53/12 27/54/12 28/55/12 -f 24/56/11 28/57/11 25/58/11 -f 29/59/14 30/60/14 26/61/14 -f 30/62/13 31/63/13 27/64/13 -f 27/65/16 31/66/16 32/67/16 -f 28/68/15 32/69/15 29/70/15 -f 33/12/2 37/39/2 38/71/2 -f 34/72/1 38/73/1 39/74/1 -f 39/75/4 40/76/4 36/77/4 -f 40/78/3 37/79/3 33/80/3 -f 37/81/6 21/82/6 22/83/6 -f 38/84/5 22/85/5 23/86/5 -f 23/87/8 24/88/8 40/84/8 -f 24/89/7 21/90/7 37/91/7 -f 45/92/10 46/93/10 42/94/10 -f 46/95/9 47/96/9 43/97/9 -f 43/98/12 47/99/12 48/100/12 -f 44/101/11 48/102/11 45/103/11 -f 49/104/14 50/78/14 46/105/14 -f 50/106/13 51/107/13 47/108/13 -f 47/109/16 51/110/16 52/111/16 -f 48/112/15 52/113/15 49/114/15 -f 49/115/1 53/116/1 54/117/1 -f 50/118/2 54/119/2 55/120/2 -f 55/40/3 56/121/3 52/122/3 -f 56/123/4 53/124/4 49/125/4 -f 53/126/5 57/127/5 58/128/5 -f 54/129/6 58/130/6 59/131/6 -f 59/132/7 60/133/7 56/134/7 -f 60/135/8 57/136/8 53/80/8 -f 61/137/9 62/138/9 58/139/9 -f 62/140/10 63/141/10 59/142/10 -f 59/143/11 63/144/11 64/145/11 -f 60/146/12 64/71/12 61/100/12 -f 65/147/13 66/148/13 62/149/13 -f 66/150/14 67/151/14 63/152/14 -f 63/153/15 67/154/15 68/155/15 -f 64/156/16 68/157/16 65/158/16 -f 65/159/2 69/160/2 70/161/2 -f 66/162/1 70/163/1 71/164/1 -f 71/165/4 72/166/4 68/167/4 -f 72/168/3 69/169/3 65/170/3 -f 69/171/6 41/126/6 42/172/6 -f 70/173/5 42/174/5 43/175/5 -f 43/176/8 44/177/8 72/178/8 -f 44/156/7 41/91/7 69/179/7 -f 77/180/10 78/181/10 74/182/10 -f 78/55/9 79/183/9 75/184/9 -f 75/52/12 79/51/12 80/185/12 -f 76/186/11 80/187/11 77/188/11 -f 81/189/14 82/190/14 78/191/14 -f 82/192/13 83/193/13 79/18/13 -f 79/194/16 83/195/16 84/196/16 -f 80/197/15 84/198/15 81/199/15 -f 81/200/1 85/201/1 86/202/1 -f 82/203/2 86/204/2 87/205/2 -f 87/206/3 88/207/3 84/208/3 -f 88/209/4 85/210/4 81/211/4 -f 85/212/5 89/213/5 90/214/5 -f 86/215/6 90/216/6 91/217/6 -f 91/218/7 92/21/7 88/219/7 -f 92/220/8 89/39/8 85/12/8 -f 93/221/9 94/222/9 90/223/9 -f 94/224/10 95/225/10 91/226/10 -f 91/64/11 95/63/11 96/227/11 -f 92/226/12 96/228/12 93/169/12 -f 97/229/13 98/198/13 94/197/13 -f 98/230/14 99/231/14 95/232/14 -f 95/233/15 99/234/15 100/235/15 -f 96/236/16 100/237/16 97/70/16 -f 97/221/2 101/238/2 102/239/2 -f 98/240/1 102/241/1 103/242/1 -f 103/243/4 104/244/4 100/245/4 -f 104/246/3 101/247/3 97/248/3 -f 101/249/6 73/250/6 74/251/6 -f 102/204/5 74/33/5 75/252/5 -f 75/253/8 76/140/8 104/254/8 -f 76/255/7 73/137/7 101/256/7 -f 109/257/17 110/258/17 106/259/17 -f 110/16/18 111/260/18 107/261/18 -f 107/262/19 111/263/19 112/4/19 -f 108/264/20 112/265/20 109/266/20 -f 113/267/15 114/268/15 110/269/15 -f 114/28/1 115/270/1 111/271/1 -f 111/272/13 115/273/13 116/274/13 -f 112/275/3 116/276/3 113/277/3 -f 113/189/4 117/180/4 118/278/4 -f 114/50/14 118/95/14 119/110/14 -f 119/279/2 120/280/2 116/8/2 -f 120/281/16 117/2/16 113/282/16 -f 117/283/21 121/284/21 122/285/21 -f 118/125/22 122/286/22 123/287/22 -f 123/242/23 124/288/23 120/4/23 -f 124/289/24 121/290/24 117/291/24 -f 125/292/18 126/293/18 122/294/18 -f 126/295/17 127/66/17 123/65/17 -f 123/296/20 127/297/20 128/298/20 -f 124/135/19 128/299/19 125/300/19 -f 129/301/1 130/302/1 126/303/1 -f 130/204/15 131/19/15 127/304/15 -f 127/305/3 131/306/3 132/134/3 -f 128/307/13 132/308/13 129/309/13 -f 129/310/14 133/311/14 134/223/14 -f 130/122/4 134/312/4 135/313/4 -f 135/314/16 136/315/16 132/254/16 -f 136/316/2 133/317/2 129/189/2 -f 133/318/22 105/160/22 106/319/22 -f 134/240/21 106/320/21 107/321/21 -f 107/322/24 108/28/24 136/130/24 -f 108/278/23 105/147/23 133/323/23 -f 141/58/17 142/324/17 138/325/17 -f 142/5/18 143/326/18 139/327/18 -f 139/328/19 143/329/19 144/330/19 -f 140/331/20 144/332/20 141/333/20 -f 145/171/15 146/334/15 142/83/15 -f 146/335/1 147/336/1 143/337/1 -f 143/338/13 147/205/13 148/339/13 -f 144/123/3 148/340/3 145/341/3 -f 145/300/4 149/137/4 150/342/4 -f 146/343/14 150/145/14 151/344/14 -f 151/345/2 152/346/2 148/347/2 -f 152/348/16 149/282/16 145/248/16 -f 149/349/21 153/212/21 154/350/21 -f 150/351/22 154/352/22 155/353/22 -f 155/354/23 156/355/23 152/145/23 -f 156/44/24 153/238/24 149/58/24 -f 157/247/18 158/356/18 154/357/18 -f 158/84/17 159/358/17 155/359/17 -f 155/30/20 159/29/20 160/360/20 -f 156/327/19 160/361/19 157/362/19 -f 161/266/1 162/363/1 158/364/1 -f 162/72/15 163/365/15 159/366/15 -f 159/367/3 163/368/3 164/277/3 -f 160/369/13 164/370/13 161/82/13 -f 161/371/14 165/372/14 166/373/14 -f 162/62/4 166/374/4 167/375/4 -f 167/376/16 168/377/16 164/339/16 -f 168/378/2 165/80/2 161/79/2 -f 165/379/22 137/284/22 138/102/22 -f 166/380/21 138/381/21 139/382/21 -f 139/383/24 140/384/24 168/320/24 -f 140/93/23 137/385/23 165/210/23 -f 173/24/17 174/325/17 170/324/17 -f 174/335/18 175/386/18 171/353/18 -f 171/387/19 175/388/19 176/389/19 -f 172/390/20 176/391/20 173/392/20 -f 177/136/15 178/393/15 174/394/15 -f 178/395/1 179/396/1 175/397/1 -f 175/398/13 179/399/13 180/208/13 -f 176/400/3 180/401/3 177/247/3 -f 177/323/4 181/402/4 182/316/4 -f 178/403/14 182/404/14 183/7/14 -f 183/405/2 184/406/2 180/407/2 -f 184/408/16 181/248/16 177/282/16 -f 181/24/21 185/23/21 186/289/21 -f 182/23/22 186/330/22 187/409/22 -f 187/410/23 188/411/23 184/351/23 -f 188/412/24 185/127/24 181/229/24 -f 189/256/18 190/413/18 186/414/18 -f 190/415/17 191/416/17 187/417/17 -f 187/418/20 191/361/20 192/5/20 -f 188/419/19 192/420/19 189/129/19 -f 193/124/1 194/246/1 190/421/1 -f 194/422/15 195/423/15 191/424/15 -f 191/425/3 195/426/3 196/427/3 -f 192/428/13 196/429/13 193/158/13 -f 193/430/14 197/300/14 198/431/14 -f 194/219/4 198/21/4 199/432/4 -f 199/432/16 200/119/16 196/433/16 -f 200/34/2 197/434/2 193/435/2 -f 197/189/22 169/317/22 170/436/22 -f 198/320/21 170/240/21 171/437/21 -f 171/260/24 172/192/24 200/330/24 -f 172/68/23 169/46/23 197/438/23 -f 2/439/1 1/1/1 6/3/1 -f 3/437/2 2/4/2 7/6/2 -f 3/440/3 7/7/3 4/9/3 -f 4/441/4 8/10/4 1/12/4 -f 6/442/5 5/13/5 10/15/5 -f 7/193/6 6/16/6 11/18/6 -f 7/304/7 11/19/7 8/21/7 -f 8/443/8 12/22/8 5/24/8 -f 9/257/9 13/25/9 10/27/9 -f 10/444/10 14/28/10 11/30/10 -f 12/445/11 11/31/11 16/33/11 -f 9/188/12 12/34/12 13/13/12 -f 13/201/13 17/36/13 14/38/13 -f 14/227/14 18/39/14 15/41/14 -f 16/166/15 15/42/15 20/14/15 -f 13/103/16 16/44/16 17/46/16 -f 21/179/10 25/47/10 22/49/10 -f 22/95/9 26/50/9 23/52/9 -f 24/446/12 23/53/12 28/55/12 -f 21/291/11 24/56/11 25/58/11 -f 25/257/14 29/59/14 26/61/14 -f 26/374/13 30/62/13 27/64/13 -f 28/118/16 27/65/16 32/67/16 -f 25/379/15 28/68/15 29/70/15 -f 34/146/2 33/12/2 38/71/2 -f 35/447/1 34/72/1 39/74/1 -f 35/448/4 39/75/4 36/77/4 -f 36/105/3 40/78/3 33/80/3 -f 38/334/6 37/81/6 22/83/6 -f 39/449/5 38/84/5 23/86/5 -f 39/450/8 23/87/8 40/84/8 -f 40/451/7 24/89/7 37/91/7 -f 41/229/10 45/92/10 42/94/10 -f 42/452/9 46/95/9 43/97/9 -f 44/62/12 43/98/12 48/100/12 -f 41/46/11 44/101/11 45/103/11 -f 45/453/14 49/104/14 46/105/14 -f 46/454/13 50/106/13 47/108/13 -f 48/76/16 47/109/16 52/111/16 -f 45/455/15 48/112/15 49/114/15 -f 50/456/1 49/115/1 54/117/1 -f 51/457/2 50/118/2 55/120/2 -f 51/41/3 55/40/3 52/122/3 -f 52/340/4 56/123/4 49/125/4 -f 54/458/5 53/126/5 58/128/5 -f 55/459/6 54/129/6 59/131/6 -f 55/460/7 59/132/7 56/134/7 -f 56/299/8 60/135/8 53/80/8 -f 57/256/9 61/137/9 58/139/9 -f 58/114/10 62/140/10 59/142/10 -f 60/355/11 59/143/11 64/145/11 -f 57/333/12 60/146/12 61/100/12 -f 61/36/13 65/147/13 62/149/13 -f 62/341/14 66/150/14 63/152/14 -f 64/461/15 63/153/15 68/155/15 -f 61/82/16 64/156/16 65/158/16 -f 66/462/2 65/159/2 70/161/2 -f 67/463/1 66/162/1 71/164/1 -f 67/464/4 71/165/4 68/167/4 -f 68/465/3 72/168/3 65/170/3 -f 70/373/6 69/171/6 42/172/6 -f 71/466/5 70/173/5 43/175/5 -f 71/467/8 43/176/8 72/178/8 -f 72/157/7 44/156/7 69/179/7 -f 73/468/10 77/180/10 74/182/10 -f 74/446/9 78/55/9 75/184/9 -f 76/422/12 75/52/12 80/185/12 -f 73/13/11 76/186/11 77/188/11 -f 77/180/14 81/189/14 78/191/14 -f 78/469/13 82/192/13 79/18/13 -f 80/470/16 79/194/16 84/196/16 -f 77/11/15 80/197/15 81/199/15 -f 82/471/1 81/200/1 86/202/1 -f 83/338/2 82/203/2 87/205/2 -f 83/472/3 87/206/3 84/208/3 -f 84/412/4 88/209/4 81/211/4 -f 86/473/5 85/212/5 90/214/5 -f 87/474/6 86/215/6 91/217/6 -f 87/475/7 91/218/7 88/219/7 -f 88/476/8 92/220/8 85/12/8 -f 89/477/9 93/221/9 90/223/9 -f 90/478/10 94/224/10 91/226/10 -f 92/479/11 91/64/11 96/227/11 -f 89/392/12 92/226/12 93/169/12 -f 93/92/13 97/229/13 94/197/13 -f 94/395/14 98/230/14 95/232/14 -f 96/480/15 95/233/15 100/235/15 -f 93/277/16 96/236/16 97/70/16 -f 98/481/2 97/221/2 102/239/2 -f 99/482/1 98/240/1 103/242/1 -f 99/483/4 103/243/4 100/245/4 -f 100/421/3 104/246/3 97/248/3 -f 102/484/6 101/249/6 74/251/6 -f 103/485/5 102/204/5 75/252/5 -f 103/486/8 75/253/8 104/254/8 -f 104/408/7 76/255/7 101/256/7 -f 105/25/17 109/257/17 106/259/17 -f 106/487/18 110/16/18 107/261/18 -f 108/288/19 107/262/19 112/4/19 -f 105/25/20 108/264/20 109/266/20 -f 109/488/15 113/267/15 110/269/15 -f 110/130/1 114/28/1 111/271/1 -f 112/489/13 111/272/13 116/274/13 -f 109/70/3 112/275/3 113/277/3 -f 114/490/4 113/189/4 118/278/4 -f 115/109/14 114/50/14 119/110/14 -f 115/491/2 119/279/2 116/8/2 -f 116/492/16 120/281/16 113/282/16 -f 118/493/21 117/283/21 122/285/21 -f 119/494/22 118/125/22 123/287/22 -f 119/482/23 123/242/23 120/4/23 -f 120/495/24 124/289/24 117/291/24 -f 121/301/18 125/292/18 122/294/18 -f 122/20/17 126/295/17 123/65/17 -f 124/360/20 123/296/20 128/298/20 -f 121/430/19 124/135/19 125/300/19 -f 125/496/1 129/301/1 126/303/1 -f 126/33/15 130/204/15 127/304/15 -f 128/497/3 127/305/3 132/134/3 -f 125/488/13 128/307/13 129/309/13 -f 130/222/14 129/310/14 134/223/14 -f 131/498/4 130/122/4 135/313/4 -f 131/499/16 135/314/16 132/254/16 -f 132/500/2 136/316/2 129/189/2 -f 134/501/22 133/318/22 106/319/22 -f 135/344/21 134/240/21 107/321/21 -f 135/502/24 107/322/24 136/130/24 -f 136/490/23 108/278/23 133/323/23 -f 137/291/17 141/58/17 138/325/17 -f 138/402/18 142/5/18 139/327/18 -f 140/192/19 139/328/19 144/330/19 -f 137/100/20 140/331/20 141/333/20 -f 141/126/15 145/171/15 142/83/15 -f 142/159/1 146/335/1 143/337/1 -f 144/377/13 143/338/13 148/339/13 -f 141/247/3 144/123/3 145/341/3 -f 146/503/4 145/300/4 150/342/4 -f 147/321/14 146/343/14 151/344/14 -f 147/504/2 151/345/2 148/347/2 -f 148/505/16 152/348/16 145/248/16 -f 150/506/21 149/349/21 154/350/21 -f 151/386/22 150/351/22 155/353/22 -f 151/507/23 155/354/23 152/145/23 -f 152/45/24 156/44/24 149/58/24 -f 153/248/18 157/247/18 154/357/18 -f 154/85/17 158/84/17 155/359/17 -f 156/298/20 155/30/20 160/360/20 -f 153/317/19 156/327/19 157/362/19 -f 157/25/1 161/266/1 158/364/1 -f 158/73/15 162/72/15 159/366/15 -f 160/343/3 159/367/3 164/277/3 -f 157/158/13 160/369/13 161/82/13 -f 162/172/14 161/371/14 166/373/14 -f 163/508/4 162/62/4 167/375/4 -f 163/509/16 167/376/16 164/339/16 -f 164/510/2 168/378/2 161/79/2 -f 166/101/22 165/379/22 138/102/22 -f 167/390/21 166/380/21 139/382/21 -f 167/511/24 139/383/24 168/320/24 -f 168/94/23 140/93/23 165/210/23 -f 169/170/17 173/24/17 170/324/17 -f 170/512/18 174/335/18 171/353/18 -f 172/352/19 171/387/19 176/389/19 -f 169/513/20 172/390/20 173/392/20 -f 173/80/15 177/136/15 174/394/15 -f 174/230/1 178/395/1 175/397/1 -f 176/207/13 175/398/13 180/208/13 -f 173/341/3 176/400/3 177/247/3 -f 178/500/4 177/323/4 182/316/4 -f 179/440/14 178/403/14 183/7/14 -f 179/514/2 183/405/2 180/407/2 -f 180/255/16 184/408/16 177/282/16 -f 182/495/21 181/24/21 186/289/21 -f 183/515/22 182/23/22 187/409/22 -f 183/516/23 187/410/23 184/351/23 -f 184/209/24 188/412/24 181/229/24 -f 185/124/18 189/256/18 186/414/18 -f 186/290/17 190/415/17 187/417/17 -f 188/4/20 187/418/20 192/5/20 -f 185/438/19 188/419/19 189/129/19 -f 189/256/1 193/124/1 190/421/1 -f 190/517/15 194/422/15 191/424/15 -f 192/518/3 191/425/3 196/427/3 -f 189/199/13 192/428/13 193/158/13 -f 194/519/14 193/430/14 198/431/14 -f 195/520/4 194/219/4 199/432/4 -f 195/520/16 199/432/16 196/433/16 -f 196/35/2 200/34/2 193/435/2 -f 198/521/22 197/189/22 170/436/22 -f 199/6/21 198/320/21 171/437/21 -f 199/261/24 171/260/24 200/330/24 -f 200/69/23 172/68/23 197/438/23 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_globe.obj b/src/main/resources/assets/hbm/models/bombs/n45_globe.obj deleted file mode 100644 index 1034f8a3e..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_globe.obj +++ /dev/null @@ -1,1766 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_globe.blend' -# www.blender.org -o Icosphere -v 0.000000 -0.500000 0.000000 -v 0.361804 -0.223610 0.262863 -v -0.138194 -0.223610 0.425325 -v -0.447213 -0.223608 0.000000 -v -0.138194 -0.223610 -0.425325 -v 0.361804 -0.223610 -0.262863 -v 0.138194 0.223610 0.425325 -v -0.361804 0.223610 0.262863 -v -0.361804 0.223610 -0.262863 -v 0.138194 0.223610 -0.425325 -v 0.447213 0.223608 0.000000 -v 0.000000 0.500000 0.000000 -v -0.116411 -0.328760 0.358282 -v -0.081228 -0.425327 0.249998 -v -0.038803 -0.483975 0.119426 -v 0.101590 -0.483975 0.073809 -v 0.212661 -0.425327 0.154506 -v 0.304773 -0.328759 0.221428 -v 0.265970 -0.251151 0.340856 -v 0.131434 -0.262869 0.404506 -v -0.014820 -0.251151 0.432092 -v 0.406365 -0.251150 -0.147619 -v 0.425324 -0.262868 0.000000 -v 0.406365 -0.251150 0.147619 -v 0.101590 -0.483975 -0.073809 -v 0.212661 -0.425327 -0.154506 -v 0.304773 -0.328759 -0.221428 -v -0.376721 -0.328757 0.000000 -v -0.262865 -0.425326 0.000000 -v -0.125573 -0.483974 0.000000 -v -0.241986 -0.251151 0.358282 -v -0.344095 -0.262868 0.249998 -v -0.415525 -0.251149 0.119427 -v -0.116411 -0.328760 -0.358282 -v -0.081228 -0.425327 -0.249998 -v -0.038803 -0.483975 -0.119426 -v -0.415525 -0.251149 -0.119427 -v -0.344095 -0.262868 -0.249998 -v -0.241986 -0.251151 -0.358282 -v -0.014820 -0.251151 -0.432092 -v 0.131434 -0.262869 -0.404506 -v 0.265970 -0.251151 -0.340856 -v 0.478313 0.125575 0.073809 -v 0.475529 -0.000000 0.154506 -v 0.430349 -0.125575 0.221429 -v 0.430349 -0.125575 -0.221429 -v 0.475529 0.000000 -0.154506 -v 0.478313 0.125575 -0.073809 -v 0.077608 0.125576 0.477711 -v 0.000000 -0.000000 0.500000 -v -0.077608 -0.125576 0.477711 -v 0.343579 -0.125576 0.340858 -v 0.293893 0.000000 0.404508 -v 0.218003 0.125576 0.432094 -v -0.430349 0.125575 0.221429 -v -0.475529 -0.000000 0.154506 -v -0.478313 -0.125575 0.073809 -v -0.218003 -0.125576 0.432094 -v -0.293893 0.000000 0.404508 -v -0.343579 0.125576 0.340858 -v -0.343579 0.125576 -0.340858 -v -0.293893 -0.000000 -0.404508 -v -0.218003 -0.125576 -0.432094 -v -0.478313 -0.125575 -0.073809 -v -0.475529 0.000000 -0.154506 -v -0.430349 0.125575 -0.221429 -v 0.218003 0.125576 -0.432094 -v 0.293893 -0.000000 -0.404508 -v 0.343579 -0.125576 -0.340858 -v -0.077608 -0.125576 -0.477711 -v 0.000000 0.000000 -0.500000 -v 0.077608 0.125576 -0.477711 -v 0.415525 0.251149 0.119427 -v 0.344095 0.262868 0.249998 -v 0.241986 0.251151 0.358282 -v 0.014820 0.251151 0.432092 -v -0.131434 0.262869 0.404506 -v -0.265970 0.251151 0.340856 -v -0.406365 0.251150 0.147619 -v -0.425324 0.262868 0.000000 -v -0.406365 0.251150 -0.147619 -v -0.265970 0.251151 -0.340856 -v -0.131434 0.262869 -0.404506 -v 0.014820 0.251151 -0.432092 -v 0.241986 0.251151 -0.358282 -v 0.344095 0.262868 -0.249998 -v 0.415525 0.251149 -0.119427 -v 0.038803 0.483975 0.119426 -v 0.081228 0.425327 0.249998 -v 0.116411 0.328760 0.358282 -v 0.376721 0.328757 0.000000 -v 0.262865 0.425326 0.000000 -v 0.125573 0.483974 0.000000 -v -0.101590 0.483975 0.073809 -v -0.212661 0.425327 0.154506 -v -0.304773 0.328759 0.221428 -v -0.101590 0.483975 -0.073809 -v -0.212661 0.425327 -0.154506 -v -0.304773 0.328759 -0.221428 -v 0.038803 0.483975 -0.119426 -v 0.081228 0.425327 -0.249998 -v 0.116411 0.328760 -0.358282 -v 0.180900 0.447215 -0.131431 -v 0.319097 0.361805 -0.131432 -v 0.223605 0.361806 -0.262864 -v -0.069099 0.447215 -0.212660 -v -0.026395 0.361806 -0.344092 -v -0.180902 0.361806 -0.293889 -v -0.223605 0.447215 0.000000 -v -0.335408 0.361805 -0.081229 -v -0.335408 0.361805 0.081229 -v -0.069099 0.447215 0.212660 -v -0.180902 0.361806 0.293889 -v -0.026395 0.361806 0.344092 -v 0.180900 0.447215 0.131431 -v 0.223605 0.361806 0.262864 -v 0.319097 0.361805 0.131432 -v 0.430902 0.138198 -0.212661 -v 0.404510 0.000000 -0.293891 -v 0.335410 0.138199 -0.344095 -v -0.069099 0.138199 -0.475528 -v -0.154508 -0.000000 -0.475528 -v -0.223608 0.138199 -0.425324 -v -0.473607 0.138198 -0.081229 -v -0.500000 0.000000 0.000000 -v -0.473606 0.138198 0.081229 -v -0.223608 0.138198 0.425324 -v -0.154509 -0.000000 0.475528 -v -0.069100 0.138198 0.475528 -v 0.335410 0.138198 0.344095 -v 0.404509 -0.000001 0.293891 -v 0.430902 0.138197 0.212662 -v 0.154509 -0.000000 -0.475528 -v 0.223608 -0.138199 -0.425324 -v 0.069100 -0.138199 -0.475527 -v -0.404509 -0.000000 -0.293892 -v -0.335409 -0.138199 -0.344095 -v -0.430902 -0.138198 -0.212662 -v -0.404509 0.000000 0.293892 -v -0.430902 -0.138198 0.212662 -v -0.335410 -0.138199 0.344095 -v 0.154509 0.000000 0.475528 -v 0.069100 -0.138199 0.475527 -v 0.223608 -0.138199 0.425324 -v 0.500000 0.000000 0.000000 -v 0.473607 -0.138198 0.081229 -v 0.473607 -0.138198 -0.081229 -v 0.180902 -0.361806 -0.293890 -v 0.069098 -0.447215 -0.212661 -v 0.026395 -0.361805 -0.344093 -v -0.223605 -0.361806 -0.262864 -v -0.180901 -0.447214 -0.131431 -v -0.319097 -0.361805 -0.131431 -v -0.319097 -0.361805 0.131432 -v -0.180901 -0.447214 0.131432 -v -0.223605 -0.361805 0.262864 -v 0.335409 -0.361805 -0.081228 -v 0.335409 -0.361805 0.081229 -v 0.223605 -0.447214 0.000000 -v 0.026395 -0.361806 0.344093 -v 0.069099 -0.447215 0.212660 -v 0.180902 -0.361805 0.293890 -vt 0.608486 0.627808 -vt 0.608486 0.706299 -vt 0.534124 0.652932 -vt 0.310435 0.483432 -vt 0.374204 0.437666 -vt 0.374204 0.529197 -vt 0.426628 0.841439 -vt 0.401505 0.915800 -vt 0.348137 0.841439 -vt 0.907272 0.920733 -vt 0.828780 0.920733 -vt 0.882148 0.846372 -vt 0.874545 0.689455 -vt 0.828780 0.625687 -vt 0.920309 0.625687 -vt 0.772490 0.167110 -vt 0.850981 0.167110 -vt 0.797614 0.241473 -vt 0.769801 0.100887 -vt 0.848293 0.100887 -vt 0.794924 0.175250 -vt 0.815700 0.692491 -vt 0.894191 0.692491 -vt 0.840822 0.766854 -vt 0.547368 0.720701 -vt 0.611139 0.674935 -vt 0.611139 0.766466 -vt 0.549115 0.146651 -vt 0.612885 0.100887 -vt 0.612885 0.192418 -vt 0.934454 0.634587 -vt 0.909328 0.708949 -vt 0.855961 0.634587 -vt 0.593092 0.350373 -vt 0.638857 0.414143 -vt 0.547326 0.414143 -vt 0.282846 0.730947 -vt 0.282846 0.652455 -vt 0.357208 0.705822 -vt 0.773203 0.897303 -vt 0.773203 0.818810 -vt 0.847565 0.872178 -vt 0.051567 0.652455 -vt 0.125930 0.677581 -vt 0.051567 0.730949 -vt 0.768055 0.674935 -vt 0.846548 0.674935 -vt 0.793180 0.749298 -vt 0.792634 0.664985 -vt 0.792633 0.586493 -vt 0.866996 0.639860 -vt 0.828382 0.409716 -vt 0.782618 0.345946 -vt 0.874148 0.345946 -vt 0.140480 0.720831 -vt 0.061988 0.720831 -vt 0.115355 0.646469 -vt 0.367596 0.606851 -vt 0.413361 0.670621 -vt 0.321831 0.670621 -vt 0.680539 0.833453 -vt 0.627171 0.907814 -vt 0.602047 0.833453 -vt 0.657253 0.837483 -vt 0.605186 0.919318 -vt 0.564685 0.837483 -vt 0.832307 0.649510 -vt 0.879612 0.727611 -vt 0.782618 0.727611 -vt 0.123857 0.412167 -vt 0.169290 0.491370 -vt 0.077980 0.491370 -vt 0.680124 0.827323 -vt 0.629873 0.910286 -vt 0.588814 0.827323 -vt 0.116896 0.195119 -vt 0.202982 0.239807 -vt 0.116896 0.292113 -vt 0.665837 0.587817 -vt 0.665837 0.688548 -vt 0.578601 0.638183 -vt 0.667838 0.846819 -vt 0.720143 0.932905 -vt 0.623148 0.932905 -vt 0.170616 0.336829 -vt 0.123311 0.414930 -vt 0.073621 0.336829 -vt 0.782618 0.189030 -vt 0.828493 0.109826 -vt 0.873928 0.189030 -vt 0.357473 0.335614 -vt 0.450041 0.335614 -vt 0.397975 0.417450 -vt 0.543461 0.901290 -vt 0.543461 0.804295 -vt 0.629548 0.848985 -vt 0.196306 0.133322 -vt 0.196306 0.225890 -vt 0.114469 0.185389 -vt 0.312994 0.100887 -vt 0.392198 0.146321 -vt 0.312994 0.192197 -vt 0.187189 0.438608 -vt 0.141423 0.502378 -vt 0.095658 0.438608 -vt 0.412255 0.647635 -vt 0.337894 0.594269 -vt 0.412255 0.569144 -vt 0.668119 0.461612 -vt 0.586284 0.409546 -vt 0.668119 0.369045 -vt 0.634770 0.671471 -vt 0.543461 0.671471 -vt 0.593711 0.588508 -vt 0.615574 0.212985 -vt 0.536371 0.258419 -vt 0.536371 0.167110 -vt 0.131228 0.258419 -vt 0.048265 0.208169 -vt 0.131228 0.167110 -vt 0.173654 0.619509 -vt 0.090761 0.669875 -vt 0.090761 0.569144 -vt 0.864399 0.771859 -vt 0.777164 0.721493 -vt 0.864399 0.671128 -vt 0.854488 0.697145 -vt 0.768402 0.749450 -vt 0.768402 0.652455 -vt 0.622805 0.671128 -vt 0.575500 0.749229 -vt 0.525810 0.671128 -vt 0.693357 0.376647 -vt 0.647481 0.455851 -vt 0.602047 0.376647 -vt 0.909465 0.418665 -vt 0.826501 0.377605 -vt 0.909465 0.327354 -vt 0.676350 0.363194 -vt 0.590264 0.407885 -vt 0.590264 0.310890 -vt 0.194997 0.799938 -vt 0.116896 0.750248 -vt 0.194997 0.702943 -vt 0.413141 0.449935 -vt 0.321831 0.449935 -vt 0.367707 0.370732 -vt 0.956812 0.067343 -vt 0.911047 0.131113 -vt 0.865282 0.067343 -vt 0.439665 0.684523 -vt 0.348137 0.684523 -vt 0.393901 0.620754 -vt 0.454467 0.178697 -vt 0.357473 0.178697 -vt 0.404777 0.100597 -vt 0.140652 0.143473 -vt 0.049344 0.143473 -vt 0.099593 0.060510 -vt 0.413360 0.134803 -vt 0.367595 0.213815 -vt 0.321831 0.134803 -vt 0.147373 0.910119 -vt 0.064411 0.859870 -vt 0.147373 0.818810 -vt 0.456893 0.427214 -vt 0.412204 0.513300 -vt 0.359899 0.427214 -vt 0.701307 0.452073 -vt 0.600577 0.452073 -vt 0.650943 0.364838 -vt 0.942479 0.133207 -vt 0.856394 0.185513 -vt 0.856394 0.088518 -vt 0.612225 0.757412 -vt 0.534124 0.710108 -vt 0.612225 0.660418 -vt 0.892722 0.310890 -vt 0.846847 0.390094 -vt 0.801413 0.310890 -vt 0.402596 0.660454 -vt 0.319633 0.619396 -vt 0.402596 0.569144 -vt 0.913570 0.621448 -vt 0.827484 0.666139 -vt 0.827484 0.569144 -vt 0.429367 0.450881 -vt 0.336800 0.450881 -vt 0.377301 0.369045 -vt 0.162855 0.892591 -vt 0.083842 0.938357 -vt 0.083842 0.846827 -vt 0.650181 0.746374 -vt 0.575820 0.771498 -vt 0.575820 0.693006 -vt 0.602047 0.612767 -vt 0.693577 0.612767 -vt 0.647812 0.676536 -vt 0.865297 0.114428 -vt 0.962291 0.114428 -vt 0.914987 0.192528 -vt 0.268715 0.743765 -vt 0.268715 0.652455 -vt 0.351678 0.702706 -vt 0.791954 0.858522 -vt 0.837719 0.779510 -vt 0.883484 0.858522 -vt 0.298093 0.079182 -vt 0.395087 0.079182 -vt 0.345397 0.157282 -vt 0.591241 0.526190 -vt 0.635930 0.440104 -vt 0.688236 0.526190 -vt 0.085282 0.337848 -vt 0.186012 0.337848 -vt 0.135647 0.425084 -vt 0.333594 0.501788 -vt 0.385899 0.415702 -vt 0.430588 0.501788 -vt 0.838116 0.819178 -vt 0.929425 0.819178 -vt 0.888366 0.902142 -vt 0.075276 0.441903 -vt 0.075276 0.350373 -vt 0.154289 0.396139 -vt 0.819907 0.587817 -vt 0.912475 0.587817 -vt 0.860409 0.669653 -vt 0.077266 0.150237 -vt 0.127631 0.067343 -vt 0.177997 0.150237 -vt 0.611383 0.327625 -vt 0.703951 0.327625 -vt 0.663449 0.409462 -vt 0.828780 0.468770 -vt 0.874214 0.389566 -vt 0.920089 0.468770 -vt 0.767242 0.189661 -vt 0.845733 0.189662 -vt 0.820608 0.264024 -vt 0.089306 0.824587 -vt 0.142674 0.898949 -vt 0.064182 0.898949 -vt 0.652442 0.806259 -vt 0.702693 0.889222 -vt 0.611383 0.889222 -vt 0.406831 0.086015 -vt 0.454137 0.164116 -vt 0.357142 0.164116 -vt 0.513533 0.421023 -vt 0.604843 0.421023 -vt 0.559409 0.500226 -vt 0.617518 0.336829 -vt 0.669585 0.418665 -vt 0.577018 0.418665 -vt 0.588825 0.067343 -vt 0.685820 0.067343 -vt 0.633515 0.153429 -vt 0.600578 0.107191 -vt 0.687814 0.157556 -vt 0.600577 0.207921 -vt 0.613812 0.236515 -vt 0.699899 0.184210 -vt 0.699899 0.281204 -vt 0.331167 0.148292 -vt 0.378472 0.070190 -vt 0.428161 0.148292 -vt 0.319771 0.892703 -vt 0.398975 0.846827 -vt 0.398975 0.938137 -vt 0.803261 0.583569 -vt 0.886226 0.624629 -vt 0.803261 0.674880 -vt 0.075945 0.159202 -vt 0.172941 0.159202 -vt 0.128252 0.245288 -vt 0.066422 0.439695 -vt 0.144524 0.489384 -vt 0.066422 0.536690 -vt 0.617055 0.067343 -vt 0.708365 0.067343 -vt 0.662490 0.146546 -vt 0.310435 0.686113 -vt 0.388927 0.686113 -vt 0.363801 0.760475 -vt 0.625047 0.658795 -vt 0.571679 0.733158 -vt 0.546556 0.658795 -vt 0.128375 0.593330 -vt 0.178627 0.676294 -vt 0.087317 0.676294 -vt 0.321587 0.671128 -vt 0.368894 0.749230 -vt 0.271898 0.749230 -vt 0.095658 0.202487 -vt 0.186968 0.202487 -vt 0.141534 0.281691 -vt 0.814170 0.837483 -vt 0.897133 0.887734 -vt 0.814170 0.928793 -vt 0.334913 0.067343 -vt 0.431908 0.067343 -vt 0.379603 0.153431 -vt 0.367199 0.682891 -vt 0.316833 0.770128 -vt 0.266468 0.682891 -vt 0.370387 0.140824 -vt 0.456474 0.088518 -vt 0.456474 0.185514 -vt 0.671778 0.579095 -vt 0.671778 0.670407 -vt 0.588814 0.629347 -vt 0.508595 0.698331 -vt 0.587799 0.652455 -vt 0.587799 0.743767 -vt 0.331167 0.543961 -vt 0.414132 0.585022 -vt 0.331167 0.635273 -vt 0.104257 0.355580 -vt 0.190345 0.310890 -vt 0.190345 0.407886 -vt 0.842205 0.299749 -vt 0.883265 0.382714 -vt 0.791954 0.382714 -vt 0.585156 0.866755 -vt 0.664360 0.912190 -vt 0.585156 0.958067 -vt 0.632846 0.645936 -vt 0.657971 0.720299 -vt 0.579478 0.720299 -vt 0.156472 0.648286 -vt 0.103103 0.722649 -vt 0.077980 0.648286 -vt 0.839929 0.268747 -vt 0.789677 0.185782 -vt 0.880988 0.185782 -vt 0.079753 0.660456 -vt 0.079753 0.569144 -vt 0.162717 0.619395 -vt 0.395600 0.898015 -vt 0.304290 0.898015 -vt 0.349723 0.818810 -vt 0.336762 0.426559 -vt 0.336762 0.329562 -vt 0.414862 0.379252 -vt 0.433348 0.407886 -vt 0.347261 0.363197 -vt 0.433348 0.310890 -vt 0.288858 0.771861 -vt 0.288858 0.671128 -vt 0.376094 0.721494 -vt 0.466231 0.689903 -vt 0.380144 0.637597 -vt 0.466231 0.592906 -vt 0.085535 0.402201 -vt 0.085534 0.310890 -vt 0.168498 0.351949 -vt 0.644497 0.402201 -vt 0.565293 0.356326 -vt 0.644497 0.310890 -vt 0.301440 0.532264 -vt 0.301440 0.439695 -vt 0.383276 0.491762 -vt 0.941118 0.465571 -vt 0.858224 0.415205 -vt 0.941118 0.364838 -vt 0.116896 0.449030 -vt 0.194998 0.498722 -vt 0.116896 0.546026 -vt 0.348137 0.227717 -vt 0.393572 0.148513 -vt 0.439448 0.227717 -vt 0.555892 0.846827 -vt 0.619662 0.892593 -vt 0.555892 0.938358 -vt 0.860078 0.308682 -vt 0.806709 0.383044 -vt 0.781585 0.308682 -vt 0.075759 0.934479 -vt 0.075759 0.837483 -vt 0.153859 0.884787 -vt 0.622028 0.532263 -vt 0.540192 0.491760 -vt 0.622028 0.439695 -vt 0.154332 0.766466 -vt 0.075319 0.720702 -vt 0.154332 0.674935 -vt 0.066423 0.282778 -vt 0.066423 0.185782 -vt 0.144523 0.235471 -vt 0.670568 0.666140 -vt 0.584482 0.621452 -vt 0.670568 0.569144 -vt 0.628967 0.430900 -vt 0.578601 0.343664 -vt 0.679331 0.343664 -vt 0.443660 0.678391 -vt 0.342930 0.678391 -vt 0.393295 0.595496 -vt 0.825036 0.708583 -vt 0.825036 0.617272 -vt 0.907999 0.658330 -vt 0.196523 0.951183 -vt 0.104994 0.951183 -vt 0.150759 0.872170 -vt 0.638504 0.172694 -vt 0.588814 0.094593 -vt 0.685808 0.094593 -vt 0.456893 0.270297 -vt 0.359899 0.270297 -vt 0.404589 0.184210 -vt 0.857791 0.776572 -vt 0.816732 0.693608 -vt 0.908041 0.693608 -vt 0.415032 0.678024 -vt 0.323723 0.678024 -vt 0.369598 0.598819 -vt 0.815700 0.444043 -vt 0.879468 0.489810 -vt 0.815700 0.535575 -vt 0.624669 0.308682 -vt 0.624669 0.400213 -vt 0.560899 0.354448 -vt 0.612226 0.406505 -vt 0.612226 0.503501 -vt 0.534124 0.456197 -vt 0.383285 0.658704 -vt 0.430589 0.736806 -vt 0.333594 0.736806 -vt 0.293382 0.564897 -vt 0.384692 0.564897 -vt 0.339257 0.644102 -vt 0.832456 0.060995 -vt 0.884522 0.142832 -vt 0.791954 0.142832 -vt 0.348205 0.346165 -vt 0.445200 0.346165 -vt 0.392893 0.432253 -vt 0.393297 0.107191 -vt 0.443661 0.194428 -vt 0.342930 0.194428 -vt 0.836248 0.343664 -vt 0.936979 0.343664 -vt 0.886613 0.426559 -vt 0.663120 0.086015 -vt 0.703621 0.167853 -vt 0.611053 0.167853 -vt 0.064547 0.100887 -vt 0.156078 0.100887 -vt 0.110312 0.179901 -vt 0.638547 0.683107 -vt 0.688237 0.761209 -vt 0.591241 0.761209 -vt 0.858224 0.862297 -vt 0.955219 0.862297 -vt 0.910528 0.948385 -vt 0.915549 0.588198 -vt 0.956607 0.671162 -vt 0.865297 0.671162 -vt 0.288144 0.167110 -vt 0.379455 0.167110 -vt 0.333578 0.246315 -vt 0.149027 0.659294 -vt 0.174150 0.733657 -vt 0.095658 0.733657 -vt 0.616286 0.818810 -vt 0.616286 0.910342 -vt 0.552516 0.864576 -vt 0.944253 0.592906 -vt 0.944253 0.689902 -vt 0.866150 0.642597 -vt 0.929425 0.570951 -vt 0.929425 0.662262 -vt 0.846461 0.612012 -vt 0.828780 0.153445 -vt 0.920091 0.153445 -vt 0.874656 0.232650 -vt 0.368035 0.336829 -vt 0.420101 0.418667 -vt 0.327533 0.418667 -vt 0.126232 0.603815 -vt 0.223228 0.603815 -vt 0.170922 0.689903 -vt 0.371319 0.574322 -vt 0.421684 0.661560 -vt 0.320953 0.661560 -vt 0.129972 0.821811 -vt 0.182278 0.907898 -vt 0.085282 0.907898 -vt 0.945884 0.685696 -vt 0.898577 0.763796 -vt 0.848888 0.685696 -vt 0.277412 0.421023 -vt 0.356616 0.466898 -vt 0.277412 0.512333 -vt 0.179884 0.105093 -vt 0.179884 0.197661 -vt 0.098047 0.145595 -vt 0.791954 0.292734 -vt 0.874849 0.343100 -vt 0.791954 0.393466 -vt 0.625297 0.090795 -vt 0.625297 0.183364 -vt 0.543461 0.142863 -vt 0.311248 0.674935 -vt 0.390452 0.720369 -vt 0.311248 0.766246 -vt 0.848371 0.427516 -vt 0.873494 0.501879 -vt 0.795002 0.501879 -vt 0.153518 0.489552 -vt 0.061988 0.489552 -vt 0.107753 0.425782 -vt 0.939732 0.145445 -vt 0.842736 0.145445 -vt 0.890041 0.067343 -vt 0.782618 0.442902 -vt 0.860720 0.395598 -vt 0.860720 0.492594 -vt 0.428110 0.847679 -vt 0.382345 0.926694 -vt 0.336579 0.847679 -vt 0.172941 0.723309 -vt 0.075945 0.723309 -vt 0.125634 0.645207 -vt 0.697573 0.848801 -vt 0.652884 0.934889 -vt 0.600577 0.848801 -vt 0.186013 0.180932 -vt 0.085282 0.180932 -vt 0.135646 0.093695 -vt 0.427565 0.569144 -vt 0.375261 0.655233 -vt 0.330570 0.569144 -vt 0.870255 0.522660 -vt 0.778945 0.522660 -vt 0.820003 0.439695 -vt 0.901838 0.241550 -vt 0.855961 0.162346 -vt 0.947272 0.162346 -vt 0.166086 0.392441 -vt 0.073519 0.392441 -vt 0.125584 0.310605 -vt 0.186013 0.582000 -vt 0.135648 0.664895 -vt 0.085282 0.582000 -vt 0.423735 0.387045 -vt 0.331167 0.387045 -vt 0.371668 0.305208 -vt 0.169290 0.176046 -vt 0.123857 0.255250 -vt 0.077980 0.176046 -vt 0.380612 0.650238 -vt 0.405735 0.724601 -vt 0.327243 0.724601 -vt 0.173738 0.385253 -vt 0.120370 0.310890 -vt 0.198863 0.310890 -vt 0.955162 0.846819 -vt 0.955162 0.943815 -vt 0.877060 0.896510 -vt 0.867724 0.242423 -vt 0.945825 0.195119 -vt 0.945825 0.292115 -vt 0.166331 0.924742 -vt 0.087317 0.878976 -vt 0.166331 0.833211 -vt 0.626425 0.431592 -vt 0.543461 0.381340 -vt 0.626425 0.340280 -vt 0.791954 0.550382 -vt 0.888951 0.550382 -vt 0.836643 0.636470 -vt 0.371320 0.086015 -vt 0.421685 0.173252 -vt 0.320953 0.173252 -vt 0.629548 0.595073 -vt 0.543461 0.647379 -vt 0.543461 0.550382 -vt 0.409081 0.684813 -vt 0.330979 0.637507 -vt 0.409081 0.587817 -vt 0.647923 0.219730 -vt 0.602047 0.140526 -vt 0.693358 0.140526 -vt 0.357473 0.657330 -vt 0.398533 0.574366 -vt 0.448784 0.657330 -vt 0.466232 0.932906 -vt 0.369236 0.932906 -vt 0.413926 0.846819 -vt 0.438000 0.767213 -vt 0.359899 0.717523 -vt 0.438000 0.670217 -vt 0.155756 0.354448 -vt 0.076743 0.400213 -vt 0.076743 0.308682 -vt 0.835332 0.658795 -vt 0.860455 0.733158 -vt 0.781963 0.733158 -vt 0.650183 0.482723 -vt 0.575820 0.536090 -vt 0.575820 0.457597 -vt 0.953025 0.424267 -vt 0.856029 0.424267 -vt 0.903335 0.346165 -vt 0.882066 0.162146 -vt 0.790756 0.162146 -vt 0.841007 0.079182 -vt 0.543461 0.873823 -vt 0.622665 0.828388 -vt 0.622665 0.919699 -vt 0.073519 0.549358 -vt 0.156483 0.599608 -vt 0.073519 0.640669 -vt 0.439926 0.835307 -vt 0.395235 0.921395 -vt 0.342930 0.835307 -vt 0.320953 0.330169 -vt 0.421685 0.330169 -vt 0.371318 0.417406 -vt 0.844730 0.107191 -vt 0.945463 0.107191 -vt 0.895096 0.190085 -vt 0.353507 0.185782 -vt 0.394009 0.267619 -vt 0.301440 0.267619 -vt 0.403983 0.308682 -vt 0.358107 0.387886 -vt 0.312672 0.308682 -vt 0.939029 0.414035 -vt 0.846461 0.414035 -vt 0.898528 0.332198 -vt 0.212319 0.846819 -vt 0.212319 0.943815 -vt 0.126232 0.899125 -vt 0.418637 0.119560 -vt 0.418637 0.212129 -vt 0.336800 0.171627 -vt 0.579478 0.161590 -vt 0.658683 0.207024 -vt 0.579478 0.252900 -vt 0.155852 0.569144 -vt 0.180977 0.643507 -vt 0.102484 0.643507 -vt 0.777728 0.564897 -vt 0.852091 0.618264 -vt 0.777728 0.643390 -vt 0.339227 0.693608 -vt 0.421064 0.745673 -vt 0.339227 0.786176 -vt 0.611383 0.566378 -vt 0.702693 0.566378 -vt 0.652442 0.649343 -vt 0.559512 0.614581 -vt 0.638717 0.569144 -vt 0.638717 0.660455 -vt 0.028834 0.652455 -vt 0.111799 0.702705 -vt 0.028834 0.743767 -vt 0.543461 0.343101 -vt 0.626356 0.292733 -vt 0.626356 0.393465 -vt 0.533011 0.671128 -vt 0.620247 0.721492 -vt 0.533011 0.771860 -vt 0.271486 0.704764 -vt 0.357573 0.652455 -vt 0.357574 0.749452 -vt 0.867724 0.449031 -vt 0.945825 0.496336 -vt 0.867724 0.546027 -vt 0.297568 0.139714 -vt 0.343445 0.060510 -vt 0.388879 0.139714 -vt 0.063075 0.128872 -vt 0.141176 0.079182 -vt 0.141176 0.176179 -vt 0.791954 0.838078 -vt 0.878041 0.793386 -vt 0.878041 0.890382 -vt 0.064849 0.583569 -vt 0.142950 0.633258 -vt 0.064849 0.680565 -vt 0.327243 0.257202 -vt 0.372678 0.177997 -vt 0.418553 0.257202 -vt 0.546556 0.189661 -vt 0.610325 0.235426 -vt 0.546556 0.281193 -vt 0.321831 0.827537 -vt 0.396192 0.880903 -vt 0.321831 0.906029 -vt 0.552003 0.079182 -vt 0.633839 0.131247 -vt 0.552003 0.171750 -vt 0.779721 0.671128 -vt 0.861557 0.711629 -vt 0.779721 0.763697 -vt 0.825036 0.944513 -vt 0.870800 0.865499 -vt 0.916564 0.944513 -vt 0.846461 0.097180 -vt 0.943455 0.097180 -vt 0.893765 0.175282 -vt 0.031677 0.702823 -vt 0.114570 0.652455 -vt 0.114570 0.753187 -vt 0.578601 0.086015 -vt 0.665836 0.136379 -vt 0.578601 0.186747 -vt 0.848888 0.285776 -vt 0.901192 0.199689 -vt 0.945881 0.285776 -vt 0.336800 0.607798 -vt 0.428110 0.607798 -vt 0.387051 0.690763 -vt 0.815700 0.241694 -vt 0.894903 0.195817 -vt 0.894903 0.287127 -vt 0.825036 0.369045 -vt 0.907999 0.410103 -vt 0.825036 0.460356 -vt 0.600577 0.691884 -vt 0.650943 0.608989 -vt 0.701308 0.691884 -vt 0.825689 0.329562 -vt 0.918256 0.329562 -vt 0.877756 0.411399 -vt 0.062209 0.268865 -vt 0.107643 0.189661 -vt 0.153518 0.268865 -vt 0.571948 0.586493 -vt 0.635717 0.632257 -vt 0.571948 0.678024 -vt 0.795773 0.350373 -vt 0.870135 0.403740 -vt 0.795773 0.428865 -vt 0.550926 0.185782 -vt 0.632761 0.237848 -vt 0.550926 0.278350 -vt 0.619085 0.407662 -vt 0.571779 0.329562 -vt 0.668773 0.329562 -vt 0.655024 0.255246 -vt 0.575820 0.300680 -vt 0.575820 0.209370 -vt 0.917363 0.431281 -vt 0.865297 0.349445 -vt 0.957865 0.349445 -vt 0.172940 0.488290 -vt 0.075945 0.488290 -vt 0.128250 0.402204 -vt 0.393295 0.438580 -vt 0.342930 0.351344 -vt 0.443660 0.351344 -vt 0.958954 0.705381 -vt 0.858224 0.705381 -vt 0.908589 0.622487 -vt 0.127818 0.436414 -vt 0.087317 0.354578 -vt 0.179884 0.354578 -vt 0.460138 0.146356 -vt 0.368609 0.146356 -vt 0.414373 0.067343 -vt 0.349556 0.661670 -vt 0.299867 0.583569 -vt 0.396861 0.583569 -vt 0.945881 0.528779 -vt 0.848888 0.528779 -vt 0.893577 0.442693 -vt 0.398532 0.897210 -vt 0.357473 0.814247 -vt 0.448782 0.814247 -vt 0.947270 0.477670 -vt 0.855961 0.477670 -vt 0.901836 0.398466 -vt 0.819368 0.134872 -vt 0.794243 0.060510 -vt 0.872735 0.060510 -vt 0.637326 0.124279 -vt 0.545795 0.124279 -vt 0.591561 0.060510 -vt 0.710808 0.759224 -vt 0.613812 0.759224 -vt 0.661118 0.681124 -vt 0.196305 0.715253 -vt 0.104994 0.715253 -vt 0.155246 0.632290 -vt 0.390409 0.350373 -vt 0.390410 0.441683 -vt 0.311206 0.396249 -vt 0.670651 0.370112 -vt 0.588814 0.422179 -vt 0.588814 0.329611 -vt 0.611486 0.652455 -vt 0.566795 0.738542 -vt 0.514490 0.652455 -vt 0.874849 0.085451 -vt 0.787613 0.135818 -vt 0.787613 0.035087 -vt 0.385899 0.258785 -vt 0.333594 0.172698 -vt 0.430588 0.172698 -vt 0.085316 0.771709 -vt 0.132621 0.693608 -vt 0.182311 0.771709 -vt 0.670788 0.409816 -vt 0.624912 0.489020 -vt 0.579478 0.409816 -vt 0.953105 0.167851 -vt 0.860537 0.167851 -vt 0.912604 0.086015 -vt 0.709234 0.592906 -vt 0.709233 0.689901 -vt 0.623147 0.645211 -vt 0.565997 0.665918 -vt 0.615687 0.587817 -vt 0.662991 0.665918 -vt 0.823919 0.743766 -vt 0.744716 0.698331 -vt 0.823919 0.652455 -vt 0.807743 0.640994 -vt 0.782618 0.566632 -vt 0.861110 0.566632 -vt 0.155712 0.667671 -vt 0.064182 0.667671 -vt 0.109947 0.603902 -vt 0.842204 0.622594 -vt 0.791954 0.539630 -vt 0.883264 0.539630 -vt 0.646345 0.583569 -vt 0.605844 0.665406 -vt 0.553777 0.583569 -vt 0.625434 0.250206 -vt 0.534124 0.250206 -vt 0.579559 0.171003 -vt 0.668119 0.709839 -vt 0.585156 0.659589 -vt 0.668119 0.618529 -vt 0.613391 0.088518 -vt 0.699477 0.133207 -vt 0.613391 0.185513 -vt 0.630697 0.035087 -vt 0.630697 0.135817 -vt 0.543461 0.085451 -vt 0.677327 0.230881 -vt 0.591241 0.283188 -vt 0.591241 0.186192 -vt 0.897270 0.119559 -vt 0.897270 0.210869 -vt 0.814305 0.169809 -vt 0.393571 0.384634 -vt 0.439447 0.463837 -vt 0.348137 0.463837 -vt 0.164829 0.797586 -vt 0.123770 0.880549 -vt 0.073519 0.797586 -vt 0.654422 0.346165 -vt 0.699112 0.432251 -vt 0.602117 0.432251 -vt 0.964719 0.702944 -vt 0.915030 0.781044 -vt 0.867724 0.702944 -vt 0.310435 0.189441 -vt 0.389639 0.234874 -vt 0.310435 0.280750 -vt 0.815127 0.421023 -vt 0.840252 0.495385 -vt 0.761759 0.495385 -vt 0.184460 0.141706 -vt 0.237826 0.067343 -vt 0.262951 0.141706 -vt 0.325414 0.361141 -vt 0.408377 0.310890 -vt 0.408377 0.402199 -vt 0.053503 0.656207 -vt 0.053503 0.564897 -vt 0.136466 0.615149 -vt 0.795633 0.660454 -vt 0.795633 0.569144 -vt 0.874836 0.614578 -vt 0.577981 0.745675 -vt 0.659816 0.693608 -vt 0.659816 0.786175 -vt 0.163106 0.171412 -vt 0.112741 0.088518 -vt 0.213470 0.088518 -vt 0.822753 0.675052 -vt 0.873118 0.587817 -vt 0.923483 0.675052 -vt 0.919352 0.407884 -vt 0.833267 0.355578 -vt 0.919352 0.310890 -vt 0.575554 0.160062 -vt 0.657390 0.119560 -vt 0.657390 0.212127 -vt 0.373118 0.493322 -vt 0.327243 0.414118 -vt 0.418552 0.414118 -vt 0.865297 0.911042 -vt 0.906356 0.828078 -vt 0.956606 0.911042 -vt 0.658501 0.524207 -vt 0.613812 0.438121 -vt 0.710805 0.438121 -vt 0.310776 0.915583 -vt 0.360465 0.837483 -vt 0.407769 0.915583 -vt 0.109946 0.210865 -vt 0.064182 0.131852 -vt 0.155711 0.131852 -vt 0.534124 0.470892 -vt 0.579889 0.407123 -vt 0.625653 0.470892 -vt 0.801703 0.846827 -vt 0.855070 0.921189 -vt 0.776578 0.921189 -vt 0.161442 0.067343 -vt 0.211693 0.150306 -vt 0.120383 0.150306 -vt 0.120495 0.421023 -vt 0.120495 0.512332 -vt 0.037533 0.462081 -vt 0.064182 0.367782 -vt 0.155492 0.367782 -vt 0.110058 0.446985 -vt 0.151619 0.056693 -vt 0.151619 0.153688 -vt 0.073519 0.103998 -vt 0.534124 0.152593 -vt 0.620211 0.197283 -vt 0.534124 0.249588 -vt 0.909988 0.086015 -vt 0.909988 0.186746 -vt 0.822753 0.136381 -vt 0.782618 0.141686 -vt 0.868704 0.193991 -vt 0.782618 0.238681 -vt 0.414130 0.792189 -vt 0.414130 0.883499 -vt 0.331167 0.842440 -vt 0.541608 0.564897 -vt 0.620811 0.610772 -vt 0.541609 0.656207 -vt 0.196305 0.382807 -vt 0.196305 0.475373 -vt 0.114469 0.423308 -vt 0.108395 0.346165 -vt 0.191288 0.396530 -vt 0.108395 0.446896 -vt 0.708378 0.092609 -vt 0.658688 0.170709 -vt 0.611383 0.092609 -vt 0.121042 0.598819 -vt 0.166806 0.677832 -vt 0.075276 0.677832 -vt 0.638086 0.438109 -vt 0.592320 0.501879 -vt 0.546556 0.438109 -vn 0.048200 -0.987800 0.148200 -vn 0.723000 -0.554500 0.412100 -vn -0.126100 -0.987800 0.091600 -vn -0.126100 -0.987800 -0.091600 -vn 0.048200 -0.987800 -0.148200 -vn 0.819300 -0.398700 0.412100 -vn -0.138700 -0.398700 0.906500 -vn -0.905000 -0.398700 0.148200 -vn -0.420600 -0.398700 -0.814900 -vn 0.645100 -0.398700 -0.651900 -vn 0.771100 -0.302400 0.560300 -vn -0.294500 -0.302400 0.906500 -vn -0.953200 -0.302400 0.000000 -vn -0.294500 -0.302400 -0.906500 -vn 0.771100 -0.302400 -0.560300 -vn 0.342700 0.554500 0.758300 -vn -0.615300 0.554500 0.560300 -vn -0.723000 0.554500 -0.412100 -vn 0.168500 0.554500 -0.814900 -vn 0.827100 0.554500 -0.091600 -vn 0.126100 0.987800 -0.091600 -vn 0.391200 0.915800 -0.091400 -vn 0.644100 0.759400 -0.091500 -vn 0.233400 0.957500 -0.169600 -vn 0.207900 0.915800 -0.343800 -vn 0.516800 0.836300 -0.183000 -vn 0.491100 0.794700 -0.356800 -vn 0.333800 0.836300 -0.435000 -vn 0.286000 0.759400 -0.584300 -vn 0.752000 0.636900 -0.169600 -vn 0.726100 0.595500 -0.343800 -vn 0.598700 0.672600 -0.435000 -vn 0.551300 0.595500 -0.584300 -vn 0.393600 0.636900 -0.662800 -vn 0.342700 0.554500 -0.758300 -vn -0.048200 0.987800 -0.148200 -vn 0.033900 0.915800 -0.400300 -vn 0.112100 0.759400 -0.640900 -vn -0.089100 0.957500 -0.274300 -vn -0.262700 0.915800 -0.303900 -vn -0.014400 0.836300 -0.548100 -vn -0.187600 0.794700 -0.577300 -vn -0.310500 0.836300 -0.451900 -vn -0.467400 0.759400 -0.452600 -vn 0.071100 0.636900 -0.767600 -vn -0.102600 0.595500 -0.796800 -vn -0.228700 0.672600 -0.703800 -vn -0.385400 0.595500 -0.704900 -vn -0.508700 0.636900 -0.579200 -vn -0.615300 0.554500 -0.560300 -vn -0.155800 0.987800 0.000000 -vn -0.370200 0.915800 -0.156000 -vn -0.574900 0.759400 -0.304600 -vn -0.288500 0.957500 0.000000 -vn -0.370200 0.915800 0.156000 -vn -0.525700 0.836300 -0.155700 -vn -0.607100 0.794700 0.000000 -vn -0.525700 0.836300 0.155700 -vn -0.574900 0.759400 0.304600 -vn -0.708100 0.636900 -0.304900 -vn -0.789500 0.595500 -0.148700 -vn -0.740000 0.672600 0.000000 -vn -0.789500 0.595500 0.148700 -vn -0.708100 0.636900 0.304900 -vn -0.723000 0.554500 0.412100 -vn -0.048200 0.987800 0.148200 -vn -0.262700 0.915800 0.303900 -vn -0.467400 0.759400 0.452600 -vn -0.089100 0.957500 0.274300 -vn 0.033900 0.915800 0.400300 -vn -0.310500 0.836300 0.451900 -vn -0.187600 0.794700 0.577300 -vn -0.014400 0.836300 0.548100 -vn 0.112100 0.759400 0.640900 -vn -0.508700 0.636900 0.579200 -vn -0.385400 0.595500 0.704900 -vn -0.228700 0.672600 0.703800 -vn -0.102600 0.595500 0.796800 -vn 0.071100 0.636900 0.767600 -vn 0.168500 0.554500 0.814900 -vn 0.126100 0.987800 0.091600 -vn 0.207900 0.915800 0.343800 -vn 0.286000 0.759400 0.584300 -vn 0.233400 0.957500 0.169600 -vn 0.391200 0.915800 0.091500 -vn 0.333800 0.836300 0.435000 -vn 0.491100 0.794700 0.356800 -vn 0.516800 0.836300 0.183000 -vn 0.644100 0.759400 0.091500 -vn 0.393600 0.636900 0.662800 -vn 0.551300 0.595500 0.584300 -vn 0.598700 0.672600 0.435000 -vn 0.726100 0.595500 0.343800 -vn 0.752000 0.636900 0.169600 -vn 0.827100 0.554500 0.091600 -vn 0.905000 0.398700 -0.148200 -vn 0.936600 0.174500 -0.303900 -vn 0.888300 -0.078400 -0.452600 -vn 0.896300 0.348500 -0.274300 -vn 0.803900 0.439900 -0.400300 -vn 0.886900 0.096200 -0.451900 -vn 0.794700 0.187600 -0.577300 -vn 0.754400 0.361100 -0.548100 -vn 0.629100 0.439900 -0.640900 -vn 0.797200 -0.170200 -0.579200 -vn 0.704900 -0.078400 -0.704900 -vn 0.703800 0.096200 -0.703800 -vn 0.578500 0.174500 -0.796800 -vn 0.537900 0.348500 -0.767600 -vn 0.420600 0.398700 -0.814900 -vn 0.138700 0.398700 -0.906500 -vn 0.000400 0.174500 -0.984600 -vn -0.156000 -0.078400 -0.984600 -vn 0.016000 0.348500 -0.937200 -vn -0.132300 0.439900 -0.888300 -vn -0.155700 0.096200 -0.983100 -vn -0.303500 0.187600 -0.934200 -vn -0.288200 0.361100 -0.886900 -vn -0.415100 0.439900 -0.796400 -vn -0.304500 -0.170200 -0.937200 -vn -0.452600 -0.078400 -0.888300 -vn -0.451900 0.096200 -0.886900 -vn -0.579100 0.174500 -0.796400 -vn -0.563800 0.348500 -0.748800 -vn -0.645100 0.398700 -0.651900 -vn -0.819300 0.398700 -0.412100 -vn -0.936300 0.174500 -0.304600 -vn -0.984600 -0.078400 -0.156000 -vn -0.886400 0.348500 -0.304900 -vn -0.885700 0.439900 -0.148700 -vn -0.983100 0.096200 -0.155700 -vn -0.982200 0.187600 0.000000 -vn -0.932500 0.361100 0.000000 -vn -0.885700 0.439900 0.148700 -vn -0.985400 -0.170200 0.000000 -vn -0.984600 -0.078400 0.156000 -vn -0.983100 0.096200 0.155700 -vn -0.936300 0.174500 0.304600 -vn -0.886400 0.348500 0.304900 -vn -0.819300 0.398700 0.412100 -vn -0.645100 0.398700 0.651900 -vn -0.579100 0.174500 0.796400 -vn -0.452600 -0.078400 0.888300 -vn -0.563800 0.348500 0.748800 -vn -0.415100 0.439900 0.796400 -vn -0.451900 0.096200 0.886900 -vn -0.303500 0.187600 0.934200 -vn -0.288200 0.361100 0.886900 -vn -0.132300 0.439900 0.888300 -vn -0.304500 -0.170200 0.937200 -vn -0.156000 -0.078400 0.984600 -vn -0.155700 0.096200 0.983100 -vn 0.000400 0.174500 0.984600 -vn 0.016000 0.348500 0.937200 -vn 0.138700 0.398700 0.906500 -vn 0.420600 0.398700 0.814900 -vn 0.578500 0.174500 0.796800 -vn 0.704900 -0.078400 0.704900 -vn 0.537900 0.348500 0.767600 -vn 0.629100 0.439900 0.640900 -vn 0.703800 0.096200 0.703800 -vn 0.794700 0.187600 0.577300 -vn 0.754400 0.361100 0.548100 -vn 0.803900 0.439900 0.400300 -vn 0.797200 -0.170200 0.579200 -vn 0.888300 -0.078400 0.452600 -vn 0.886900 0.096200 0.451900 -vn 0.936600 0.174500 0.303900 -vn 0.896300 0.348500 0.274400 -vn 0.905000 0.398700 0.148200 -vn 0.294500 0.302400 -0.906500 -vn 0.452600 0.078400 -0.888300 -vn 0.579100 -0.174500 -0.796400 -vn 0.304500 0.170200 -0.937200 -vn 0.156000 0.078400 -0.984600 -vn 0.451900 -0.096200 -0.886900 -vn 0.303500 -0.187600 -0.934200 -vn 0.155700 -0.096200 -0.983100 -vn -0.000400 -0.174500 -0.984600 -vn 0.563800 -0.348500 -0.748800 -vn 0.415100 -0.439900 -0.796400 -vn 0.288200 -0.361100 -0.886900 -vn 0.132300 -0.439900 -0.888300 -vn -0.016000 -0.348500 -0.937200 -vn -0.138700 -0.398700 -0.906500 -vn -0.771100 0.302400 -0.560300 -vn -0.704900 0.078400 -0.704900 -vn -0.578500 -0.174500 -0.796800 -vn -0.797200 0.170200 -0.579200 -vn -0.888300 0.078400 -0.452600 -vn -0.703800 -0.096200 -0.703800 -vn -0.794700 -0.187600 -0.577300 -vn -0.886900 -0.096200 -0.451900 -vn -0.936600 -0.174500 -0.303900 -vn -0.537900 -0.348500 -0.767600 -vn -0.629100 -0.439900 -0.640900 -vn -0.754400 -0.361100 -0.548100 -vn -0.803900 -0.439900 -0.400300 -vn -0.896300 -0.348500 -0.274400 -vn -0.905000 -0.398700 -0.148200 -vn -0.771100 0.302400 0.560300 -vn -0.888300 0.078400 0.452600 -vn -0.936600 -0.174500 0.303900 -vn -0.797200 0.170200 0.579200 -vn -0.704900 0.078400 0.704900 -vn -0.886900 -0.096200 0.451900 -vn -0.794700 -0.187600 0.577400 -vn -0.703800 -0.096200 0.703800 -vn -0.578500 -0.174500 0.796800 -vn -0.896300 -0.348500 0.274400 -vn -0.803900 -0.439900 0.400300 -vn -0.754400 -0.361100 0.548100 -vn -0.629100 -0.439900 0.640900 -vn -0.537900 -0.348500 0.767600 -vn -0.420600 -0.398700 0.814900 -vn 0.294500 0.302400 0.906500 -vn 0.156000 0.078400 0.984600 -vn -0.000400 -0.174500 0.984600 -vn 0.304500 0.170200 0.937200 -vn 0.452600 0.078400 0.888300 -vn 0.155700 -0.096200 0.983100 -vn 0.303500 -0.187600 0.934200 -vn 0.451900 -0.096200 0.886900 -vn 0.579100 -0.174500 0.796400 -vn -0.016000 -0.348500 0.937200 -vn 0.132300 -0.439900 0.888300 -vn 0.288200 -0.361100 0.886900 -vn 0.415100 -0.439900 0.796400 -vn 0.563800 -0.348500 0.748800 -vn 0.645100 -0.398700 0.651900 -vn 0.953200 0.302400 0.000000 -vn 0.984600 0.078400 0.156000 -vn 0.936300 -0.174500 0.304600 -vn 0.985400 0.170200 0.000000 -vn 0.984600 0.078400 -0.156000 -vn 0.983100 -0.096200 0.155700 -vn 0.982200 -0.187600 0.000000 -vn 0.983100 -0.096200 -0.155700 -vn 0.936300 -0.174500 -0.304600 -vn 0.886400 -0.348500 0.304900 -vn 0.885700 -0.439900 0.148700 -vn 0.932500 -0.361100 0.000000 -vn 0.885700 -0.439900 -0.148700 -vn 0.886400 -0.348500 -0.304900 -vn 0.819300 -0.398700 -0.412100 -vn 0.615300 -0.554500 -0.560300 -vn 0.467400 -0.759400 -0.452600 -vn 0.262700 -0.915800 -0.303900 -vn 0.508700 -0.636900 -0.579200 -vn 0.385400 -0.595500 -0.704900 -vn 0.310500 -0.836300 -0.451900 -vn 0.187600 -0.794700 -0.577300 -vn 0.228700 -0.672600 -0.703800 -vn 0.102600 -0.595500 -0.796800 -vn 0.089100 -0.957500 -0.274300 -vn -0.033900 -0.915800 -0.400300 -vn 0.014400 -0.836300 -0.548100 -vn -0.112100 -0.759400 -0.640900 -vn -0.071100 -0.636900 -0.767600 -vn -0.168500 -0.554500 -0.814900 -vn -0.342700 -0.554500 -0.758300 -vn -0.286000 -0.759400 -0.584300 -vn -0.207900 -0.915800 -0.343800 -vn -0.393600 -0.636900 -0.662800 -vn -0.551300 -0.595500 -0.584300 -vn -0.333800 -0.836300 -0.435000 -vn -0.491100 -0.794700 -0.356800 -vn -0.598700 -0.672600 -0.435000 -vn -0.726100 -0.595500 -0.343800 -vn -0.233400 -0.957500 -0.169600 -vn -0.391200 -0.915800 -0.091400 -vn -0.516800 -0.836300 -0.183000 -vn -0.644100 -0.759400 -0.091400 -vn -0.752000 -0.636900 -0.169600 -vn -0.827100 -0.554500 -0.091600 -vn -0.827100 -0.554500 0.091600 -vn -0.644100 -0.759400 0.091500 -vn -0.391200 -0.915800 0.091500 -vn -0.752000 -0.636900 0.169600 -vn -0.726100 -0.595500 0.343800 -vn -0.516800 -0.836300 0.183000 -vn -0.491100 -0.794700 0.356800 -vn -0.598700 -0.672600 0.435000 -vn -0.551300 -0.595500 0.584300 -vn -0.233400 -0.957500 0.169600 -vn -0.207900 -0.915800 0.343800 -vn -0.333800 -0.836300 0.435000 -vn -0.286000 -0.759400 0.584300 -vn -0.393600 -0.636900 0.662800 -vn -0.342700 -0.554500 0.758300 -vn 0.723000 -0.554500 -0.412100 -vn 0.789500 -0.595500 -0.148700 -vn 0.789500 -0.595500 0.148700 -vn 0.708100 -0.636900 -0.304900 -vn 0.574900 -0.759400 -0.304600 -vn 0.740000 -0.672600 -0.000000 -vn 0.607100 -0.794700 0.000000 -vn 0.525700 -0.836300 -0.155700 -vn 0.370200 -0.915800 -0.155900 -vn 0.708100 -0.636900 0.304900 -vn 0.574900 -0.759400 0.304600 -vn 0.525700 -0.836300 0.155700 -vn 0.370200 -0.915800 0.156000 -vn 0.288500 -0.957500 0.000000 -vn 0.155800 -0.987800 0.000000 -vn -0.168500 -0.554500 0.814900 -vn -0.112100 -0.759400 0.640900 -vn -0.033900 -0.915800 0.400300 -vn -0.071100 -0.636900 0.767600 -vn 0.102600 -0.595500 0.796800 -vn 0.014400 -0.836300 0.548100 -vn 0.187600 -0.794700 0.577300 -vn 0.228700 -0.672600 0.703800 -vn 0.385400 -0.595500 0.704900 -vn 0.089100 -0.957500 0.274400 -vn 0.262700 -0.915800 0.303900 -vn 0.310500 -0.836300 0.451900 -vn 0.467400 -0.759400 0.452600 -vn 0.508700 -0.636900 0.579200 -vn 0.615300 -0.554500 0.560300 -s off -f 1/1/1 16/2/1 15/3/1 -f 2/4/2 18/5/2 24/6/2 -f 1/7/3 15/8/3 30/9/3 -f 1/10/4 30/11/4 36/12/4 -f 1/13/5 36/14/5 25/15/5 -f 2/16/6 24/17/6 45/18/6 -f 3/19/7 21/20/7 51/21/7 -f 4/22/8 33/23/8 57/24/8 -f 5/25/9 39/26/9 63/27/9 -f 6/28/10 42/29/10 69/30/10 -f 2/31/11 45/32/11 52/33/11 -f 3/34/12 51/35/12 58/36/12 -f 4/37/13 57/38/13 64/39/13 -f 5/40/14 63/41/14 70/42/14 -f 6/43/15 69/44/15 46/45/15 -f 7/46/16 75/47/16 90/48/16 -f 8/49/17 78/50/17 96/51/17 -f 9/52/18 81/53/18 99/54/18 -f 10/55/19 84/56/19 102/57/19 -f 11/58/20 87/59/20 91/60/20 -f 93/61/21 100/62/21 12/63/21 -f 92/64/22 103/65/22 93/66/22 -f 91/67/23 104/68/23 92/69/23 -f 93/70/24 103/71/24 100/72/24 -f 103/73/25 101/74/25 100/75/25 -f 92/76/26 104/77/26 103/78/26 -f 104/79/27 105/80/27 103/81/27 -f 103/82/28 105/83/28 101/84/28 -f 105/85/29 102/86/29 101/87/29 -f 91/88/30 87/89/30 104/90/30 -f 87/91/31 86/92/31 104/93/31 -f 104/94/32 86/95/32 105/96/32 -f 86/97/33 85/98/33 105/99/33 -f 105/100/34 85/101/34 102/102/34 -f 85/103/35 10/104/35 102/105/35 -f 100/106/36 97/107/36 12/108/36 -f 101/109/37 106/110/37 100/111/37 -f 102/112/38 107/113/38 101/114/38 -f 100/115/39 106/116/39 97/117/39 -f 106/118/40 98/119/40 97/120/40 -f 101/121/41 107/122/41 106/123/41 -f 107/124/42 108/125/42 106/126/42 -f 106/127/43 108/128/43 98/129/43 -f 108/130/44 99/131/44 98/132/44 -f 102/133/45 84/134/45 107/135/45 -f 84/136/46 83/137/46 107/138/46 -f 107/139/47 83/140/47 108/141/47 -f 83/142/48 82/143/48 108/144/48 -f 108/145/49 82/146/49 99/147/49 -f 82/148/50 9/149/50 99/150/50 -f 97/151/51 94/152/51 12/153/51 -f 98/154/52 109/155/52 97/156/52 -f 99/157/53 110/158/53 98/159/53 -f 97/160/54 109/161/54 94/162/54 -f 109/163/55 95/164/55 94/165/55 -f 98/166/56 110/167/56 109/168/56 -f 110/169/57 111/170/57 109/171/57 -f 109/172/58 111/173/58 95/174/58 -f 111/175/59 96/176/59 95/177/59 -f 99/178/60 81/179/60 110/180/60 -f 81/181/61 80/182/61 110/183/61 -f 110/184/62 80/185/62 111/186/62 -f 80/187/63 79/188/63 111/189/63 -f 111/190/64 79/191/64 96/192/64 -f 79/193/65 8/194/65 96/195/65 -f 94/196/66 88/197/66 12/198/66 -f 95/199/67 112/200/67 94/201/67 -f 96/202/68 113/203/68 95/204/68 -f 94/205/69 112/206/69 88/207/69 -f 112/208/70 89/209/70 88/210/70 -f 95/211/71 113/212/71 112/213/71 -f 113/214/72 114/215/72 112/216/72 -f 112/217/73 114/218/73 89/219/73 -f 114/220/74 90/221/74 89/222/74 -f 96/223/75 78/224/75 113/225/75 -f 78/226/76 77/227/76 113/228/76 -f 113/229/77 77/230/77 114/231/77 -f 77/232/78 76/233/78 114/234/78 -f 114/235/79 76/236/79 90/237/79 -f 76/238/80 7/239/80 90/240/80 -f 88/241/81 93/242/81 12/243/81 -f 89/244/82 115/245/82 88/246/82 -f 90/247/83 116/248/83 89/249/83 -f 88/250/84 115/251/84 93/252/84 -f 115/253/85 92/254/85 93/255/85 -f 89/256/86 116/257/86 115/258/86 -f 116/259/87 117/260/87 115/261/87 -f 115/262/88 117/263/88 92/264/88 -f 117/265/89 91/266/89 92/267/89 -f 90/268/90 75/269/90 116/270/90 -f 75/271/91 74/272/91 116/273/91 -f 116/274/92 74/275/92 117/276/92 -f 74/277/93 73/278/93 117/279/93 -f 117/280/94 73/281/94 91/282/94 -f 73/283/95 11/284/95 91/285/95 -f 48/286/96 87/287/96 11/288/96 -f 47/289/97 118/290/97 48/291/97 -f 46/292/98 119/293/98 47/294/98 -f 48/295/99 118/296/99 87/297/99 -f 118/298/100 86/299/100 87/300/100 -f 47/301/101 119/302/101 118/303/101 -f 119/304/102 120/305/102 118/306/102 -f 118/307/103 120/308/103 86/309/103 -f 120/310/104 85/311/104 86/312/104 -f 46/313/105 69/314/105 119/315/105 -f 69/316/106 68/317/106 119/318/106 -f 119/319/107 68/320/107 120/321/107 -f 68/322/108 67/323/108 120/324/108 -f 120/325/109 67/326/109 85/327/109 -f 67/328/110 10/329/110 85/330/110 -f 72/331/111 84/332/111 10/333/111 -f 71/334/112 121/335/112 72/336/112 -f 70/337/113 122/338/113 71/339/113 -f 72/340/114 121/341/114 84/342/114 -f 121/343/115 83/344/115 84/345/115 -f 71/346/116 122/347/116 121/348/116 -f 122/349/117 123/350/117 121/351/117 -f 121/352/118 123/353/118 83/354/118 -f 123/355/119 82/356/119 83/357/119 -f 70/358/120 63/359/120 122/360/120 -f 63/361/121 62/362/121 122/363/121 -f 122/364/122 62/365/122 123/366/122 -f 62/367/123 61/368/123 123/369/123 -f 123/370/124 61/371/124 82/372/124 -f 61/373/125 9/374/125 82/375/125 -f 66/376/126 81/377/126 9/378/126 -f 65/379/127 124/380/127 66/381/127 -f 64/382/128 125/383/128 65/384/128 -f 66/385/129 124/386/129 81/387/129 -f 124/388/130 80/389/130 81/390/130 -f 65/391/131 125/392/131 124/393/131 -f 125/394/132 126/395/132 124/396/132 -f 124/397/133 126/398/133 80/399/133 -f 126/400/134 79/401/134 80/402/134 -f 64/403/135 57/404/135 125/405/135 -f 57/406/136 56/407/136 125/408/136 -f 125/409/137 56/410/137 126/411/137 -f 56/412/138 55/413/138 126/414/138 -f 126/415/139 55/416/139 79/417/139 -f 55/418/140 8/419/140 79/420/140 -f 60/421/141 78/422/141 8/423/141 -f 59/424/142 127/425/142 60/426/142 -f 58/427/143 128/428/143 59/429/143 -f 60/430/144 127/431/144 78/432/144 -f 127/433/145 77/434/145 78/435/145 -f 59/436/146 128/437/146 127/438/146 -f 128/439/147 129/440/147 127/441/147 -f 127/442/148 129/443/148 77/444/148 -f 129/445/149 76/446/149 77/447/149 -f 58/448/150 51/449/150 128/450/150 -f 51/451/151 50/452/151 128/453/151 -f 128/454/152 50/455/152 129/456/152 -f 50/457/153 49/458/153 129/459/153 -f 129/460/154 49/461/154 76/462/154 -f 49/463/155 7/464/155 76/465/155 -f 54/466/156 75/467/156 7/468/156 -f 53/469/157 130/470/157 54/471/157 -f 52/472/158 131/473/158 53/474/158 -f 54/475/159 130/476/159 75/477/159 -f 130/478/160 74/479/160 75/480/160 -f 53/481/161 131/482/161 130/483/161 -f 131/484/162 132/485/162 130/486/162 -f 130/487/163 132/488/163 74/489/163 -f 132/490/164 73/491/164 74/492/164 -f 52/493/165 45/494/165 131/495/165 -f 45/496/166 44/497/166 131/498/166 -f 131/499/167 44/500/167 132/501/167 -f 44/502/168 43/503/168 132/504/168 -f 132/505/169 43/506/169 73/507/169 -f 43/508/170 11/509/170 73/510/170 -f 67/511/171 72/512/171 10/513/171 -f 68/514/172 133/515/172 67/516/172 -f 69/517/173 134/518/173 68/519/173 -f 67/520/174 133/521/174 72/522/174 -f 133/523/175 71/524/175 72/525/175 -f 68/526/176 134/527/176 133/528/176 -f 134/529/177 135/530/177 133/531/177 -f 133/532/178 135/533/178 71/534/178 -f 135/535/179 70/536/179 71/537/179 -f 69/538/180 42/539/180 134/540/180 -f 42/541/181 41/542/181 134/543/181 -f 134/544/182 41/545/182 135/546/182 -f 41/547/183 40/548/183 135/549/183 -f 135/550/184 40/551/184 70/552/184 -f 40/553/185 5/554/185 70/555/185 -f 61/556/186 66/557/186 9/558/186 -f 62/559/187 136/560/187 61/561/187 -f 63/562/188 137/563/188 62/564/188 -f 61/565/189 136/566/189 66/567/189 -f 136/568/190 65/569/190 66/570/190 -f 62/571/191 137/572/191 136/573/191 -f 137/574/192 138/575/192 136/576/192 -f 136/577/193 138/578/193 65/579/193 -f 138/580/194 64/581/194 65/582/194 -f 63/583/195 39/584/195 137/585/195 -f 39/586/196 38/587/196 137/588/196 -f 137/589/197 38/590/197 138/591/197 -f 38/592/198 37/593/198 138/594/198 -f 138/595/199 37/596/199 64/597/199 -f 37/598/200 4/599/200 64/600/200 -f 55/601/201 60/602/201 8/603/201 -f 56/604/202 139/605/202 55/606/202 -f 57/607/203 140/608/203 56/609/203 -f 55/610/204 139/611/204 60/612/204 -f 139/613/205 59/614/205 60/615/205 -f 56/616/206 140/617/206 139/618/206 -f 140/619/207 141/620/207 139/621/207 -f 139/622/208 141/623/208 59/624/208 -f 141/625/209 58/626/209 59/627/209 -f 57/628/210 33/629/210 140/630/210 -f 33/631/211 32/632/211 140/633/211 -f 140/634/212 32/635/212 141/636/212 -f 32/637/213 31/638/213 141/639/213 -f 141/640/214 31/641/214 58/642/214 -f 31/643/215 3/644/215 58/645/215 -f 49/646/216 54/647/216 7/648/216 -f 50/649/217 142/650/217 49/651/217 -f 51/652/218 143/653/218 50/654/218 -f 49/655/219 142/656/219 54/657/219 -f 142/658/220 53/659/220 54/660/220 -f 50/661/221 143/662/221 142/663/221 -f 143/664/222 144/665/222 142/666/222 -f 142/667/223 144/668/223 53/669/223 -f 144/670/224 52/671/224 53/672/224 -f 51/673/225 21/674/225 143/675/225 -f 21/676/226 20/677/226 143/678/226 -f 143/679/227 20/680/227 144/681/227 -f 20/682/228 19/683/228 144/684/228 -f 144/685/229 19/686/229 52/687/229 -f 19/688/230 2/689/230 52/690/230 -f 43/691/231 48/692/231 11/693/231 -f 44/694/232 145/695/232 43/696/232 -f 45/697/233 146/698/233 44/699/233 -f 43/700/234 145/701/234 48/702/234 -f 145/703/235 47/704/235 48/705/235 -f 44/706/236 146/707/236 145/708/236 -f 146/709/237 147/710/237 145/711/237 -f 145/712/238 147/713/238 47/714/238 -f 147/715/239 46/716/239 47/717/239 -f 45/718/240 24/719/240 146/720/240 -f 24/721/241 23/722/241 146/723/241 -f 146/724/242 23/725/242 147/726/242 -f 23/727/243 22/728/243 147/729/243 -f 147/730/244 22/731/244 46/732/244 -f 22/733/245 6/734/245 46/735/245 -f 27/736/246 42/737/246 6/738/246 -f 26/739/247 148/740/247 27/741/247 -f 25/742/248 149/743/248 26/744/248 -f 27/745/249 148/746/249 42/747/249 -f 148/748/250 41/749/250 42/750/250 -f 26/751/251 149/752/251 148/753/251 -f 149/754/252 150/755/252 148/756/252 -f 148/757/253 150/758/253 41/759/253 -f 150/760/254 40/761/254 41/762/254 -f 25/763/255 36/764/255 149/765/255 -f 36/766/256 35/767/256 149/768/256 -f 149/769/257 35/770/257 150/771/257 -f 35/772/258 34/773/258 150/774/258 -f 150/775/259 34/776/259 40/777/259 -f 34/778/260 5/779/260 40/780/260 -f 34/781/261 39/782/261 5/783/261 -f 35/784/262 151/785/262 34/786/262 -f 36/787/263 152/788/263 35/789/263 -f 34/790/264 151/791/264 39/792/264 -f 151/793/265 38/794/265 39/795/265 -f 35/796/266 152/797/266 151/798/266 -f 152/799/267 153/800/267 151/801/267 -f 151/802/268 153/803/268 38/804/268 -f 153/805/269 37/806/269 38/807/269 -f 36/808/270 30/809/270 152/810/270 -f 30/811/271 29/812/271 152/813/271 -f 152/814/272 29/815/272 153/816/272 -f 29/817/273 28/818/273 153/819/273 -f 153/820/274 28/821/274 37/822/274 -f 28/823/275 4/824/275 37/825/275 -f 28/826/276 33/827/276 4/828/276 -f 29/829/277 154/830/277 28/831/277 -f 30/832/278 155/833/278 29/834/278 -f 28/835/279 154/836/279 33/837/279 -f 154/838/280 32/839/280 33/840/280 -f 29/841/281 155/842/281 154/843/281 -f 155/844/282 156/845/282 154/846/282 -f 154/847/283 156/848/283 32/849/283 -f 156/850/284 31/851/284 32/852/284 -f 30/853/285 15/854/285 155/855/285 -f 15/856/286 14/857/286 155/858/286 -f 155/859/287 14/860/287 156/861/287 -f 14/862/288 13/863/288 156/864/288 -f 156/865/289 13/866/289 31/867/289 -f 13/868/290 3/869/290 31/870/290 -f 22/871/291 27/872/291 6/873/291 -f 23/874/292 157/875/292 22/876/292 -f 24/877/293 158/878/293 23/879/293 -f 22/880/294 157/881/294 27/882/294 -f 157/883/295 26/884/295 27/885/295 -f 23/886/296 158/887/296 157/888/296 -f 158/889/297 159/890/297 157/891/297 -f 157/892/298 159/893/298 26/894/298 -f 159/895/299 25/896/299 26/897/299 -f 24/898/300 18/899/300 158/900/300 -f 18/901/301 17/902/301 158/903/301 -f 158/904/302 17/905/302 159/906/302 -f 17/907/303 16/908/303 159/909/303 -f 159/910/304 16/911/304 25/912/304 -f 16/913/305 1/914/305 25/915/305 -f 13/916/306 21/917/306 3/918/306 -f 14/919/307 160/920/307 13/921/307 -f 15/922/308 161/923/308 14/924/308 -f 13/925/309 160/926/309 21/927/309 -f 160/928/310 20/929/310 21/930/310 -f 14/931/311 161/932/311 160/933/311 -f 161/934/312 162/935/312 160/936/312 -f 160/937/313 162/938/313 20/939/313 -f 162/940/314 19/941/314 20/942/314 -f 15/943/315 16/944/315 161/945/315 -f 16/946/316 17/947/316 161/948/316 -f 161/949/317 17/950/317 162/951/317 -f 17/952/318 18/953/318 162/954/318 -f 162/955/319 18/956/319 19/957/319 -f 18/958/320 2/959/320 19/960/320 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_knob.obj b/src/main/resources/assets/hbm/models/bombs/n45_knob.obj deleted file mode 100644 index 65db02879..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_knob.obj +++ /dev/null @@ -1,75 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_knob.blend' -# www.blender.org -o Cylinder -v 0.000000 0.475000 -0.062500 -v 0.000000 0.525000 -0.062500 -v 0.044194 0.475000 -0.044194 -v 0.044194 0.525000 -0.044194 -v 0.062500 0.475000 0.000000 -v 0.062500 0.525000 0.000000 -v 0.044194 0.475000 0.044194 -v 0.044194 0.525000 0.044194 -v -0.000000 0.475000 0.062500 -v -0.000000 0.525000 0.062500 -v -0.044194 0.475000 0.044194 -v -0.044194 0.525000 0.044194 -v -0.062500 0.475000 -0.000000 -v -0.062500 0.525000 -0.000000 -v -0.044194 0.475000 -0.044194 -v -0.044194 0.525000 -0.044194 -vt 0.610389 0.766502 -vt 0.766501 0.610389 -vt 0.929679 0.773566 -vt 0.766501 0.389611 -vt 0.997269 0.389611 -vt 0.610388 0.233498 -vt 0.773565 0.070321 -vt 0.389611 0.233499 -vt 0.389611 0.002731 -vt 0.233498 0.389612 -vt 0.070321 0.226435 -vt 0.233498 0.610389 -vt 0.002731 0.610389 -vt 0.389611 0.766502 -vt 0.610388 0.997269 -vt 0.226434 0.929679 -vt 0.773566 0.929679 -vt 0.997269 0.610388 -vt 0.929678 0.226434 -vt 0.610388 0.002731 -vt 0.226434 0.070322 -vt 0.002731 0.389612 -vt 0.389611 0.997269 -vt 0.070321 0.773566 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn 0.000000 1.000000 0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/12/7 10/8/7 2/1/7 -f 16/14/8 2/1/8 1/15/8 -f 14/12/9 16/14/9 15/16/9 -f 1/17/1 2/1/1 3/3/1 -f 3/18/2 4/2/2 5/5/2 -f 5/19/3 6/4/3 7/7/3 -f 7/20/4 8/6/4 9/9/4 -f 9/21/5 10/8/5 11/11/5 -f 11/22/6 12/10/6 13/13/6 -f 6/4/7 4/2/7 2/1/7 -f 2/1/7 16/14/7 14/12/7 -f 14/12/7 12/10/7 10/8/7 -f 10/8/7 8/6/7 6/4/7 -f 6/4/7 2/1/7 10/8/7 -f 15/23/8 16/14/8 1/15/8 -f 13/24/9 14/12/9 15/16/9 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_rod.obj b/src/main/resources/assets/hbm/models/bombs/n45_rod.obj deleted file mode 100644 index a0a4e6bee..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_rod.obj +++ /dev/null @@ -1,75 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_rod.blend' -# www.blender.org -o Cylinder.001 -v 0.000000 0.512500 -0.031000 -v 0.000000 0.887500 -0.031000 -v 0.021920 0.512500 -0.021920 -v 0.021920 0.887500 -0.021920 -v 0.031000 0.512500 0.000000 -v 0.031000 0.887500 0.000000 -v 0.021920 0.512500 0.021920 -v 0.021920 0.887500 0.021920 -v -0.000000 0.512500 0.031000 -v -0.000000 0.887500 0.031000 -v -0.021920 0.512500 0.021920 -v -0.021920 0.887500 0.021920 -v -0.031000 0.512500 0.000000 -v -0.031000 0.887500 0.000000 -v -0.021920 0.512500 -0.021920 -v -0.021920 0.887500 -0.021920 -vt 0.423308 0.866102 -vt 0.368629 0.866102 -vt 0.368629 0.001892 -vt 0.313950 0.866102 -vt 0.313950 0.001892 -vt 0.259271 0.866102 -vt 0.259272 0.001892 -vt 0.204592 0.866102 -vt 0.204593 0.001892 -vt 0.149913 0.866102 -vt 0.149914 0.001891 -vt 0.095234 0.866102 -vt 0.095236 0.001891 -vt 0.095234 0.998109 -vt 0.040555 0.998108 -vt 0.477987 0.866102 -vt 0.423308 0.001892 -vt 0.040555 0.866102 -vt 0.040557 0.001891 -vt 0.001891 0.959445 -vt 0.001891 0.904766 -vt 0.133898 0.904766 -vt 0.133898 0.959445 -vt 0.477986 0.001892 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn 0.000000 1.000000 0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/12/7 8/14/7 6/15/7 -f 16/16/8 2/1/8 1/17/8 -f 14/12/9 16/18/9 15/19/9 -f 1/17/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 6/15/7 4/20/7 14/12/7 -f 2/21/7 16/18/7 14/12/7 -f 14/12/7 12/22/7 10/23/7 -f 10/23/7 8/14/7 14/12/7 -f 4/20/7 2/21/7 14/12/7 -f 15/24/8 16/16/8 1/17/8 -f 13/13/9 14/12/9 15/19/9 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_stand.obj b/src/main/resources/assets/hbm/models/bombs/n45_stand.obj deleted file mode 100644 index 1e99f7d20..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_stand.obj +++ /dev/null @@ -1,166 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_stand.blend' -# www.blender.org -o Icosphere.001 -v 0.000000 0.100000 -0.125000 -v 0.000000 0.525000 -0.125000 -v 0.088388 0.100000 -0.088388 -v 0.088388 0.525000 -0.088388 -v 0.125000 0.100000 0.000000 -v 0.125000 0.525000 0.000000 -v 0.088388 0.100000 0.088388 -v 0.088388 0.525000 0.088388 -v -0.000000 0.100000 0.125000 -v -0.000000 0.525000 0.125000 -v -0.088388 0.100000 0.088388 -v -0.088388 0.525000 0.088388 -v -0.125000 0.100000 -0.000000 -v -0.125000 0.525000 -0.000000 -v -0.088388 0.100000 -0.088388 -v -0.088388 0.525000 -0.088388 -v 0.000000 0.100000 -0.250000 -v 0.176777 0.100000 -0.176777 -v 0.250000 0.100000 0.000000 -v 0.176777 0.100000 0.176777 -v -0.000000 0.100000 0.250000 -v -0.176777 0.100000 0.176777 -v -0.250000 0.100000 -0.000000 -v -0.176777 0.100000 -0.176777 -v -0.000000 0.000000 -0.375000 -v 0.265165 0.000000 -0.265165 -v 0.375000 0.000000 0.000000 -v 0.265165 0.000000 0.265165 -v -0.000000 0.000000 0.375000 -v -0.265165 0.000000 0.265165 -v -0.375000 0.000000 -0.000000 -v -0.265165 0.000000 -0.265165 -vt 0.590034 0.983303 -vt 0.536822 0.983303 -vt 0.536822 0.746920 -vt 0.483611 0.983303 -vt 0.483611 0.746920 -vt 0.430399 0.983303 -vt 0.430399 0.746920 -vt 0.377187 0.983303 -vt 0.377187 0.746920 -vt 0.323976 0.983303 -vt 0.323976 0.746920 -vt 0.270764 0.983303 -vt 0.270764 0.746920 -vt 0.643246 0.983303 -vt 0.590034 0.746920 -vt 0.696457 0.983303 -vt 0.643246 0.746920 -vt 0.807223 0.505400 -vt 0.737698 0.505400 -vt 0.778425 0.407078 -vt 0.346117 0.113818 -vt 0.444439 0.073092 -vt 0.501535 0.141409 -vt 0.175484 0.456239 -vt 0.224645 0.407078 -vt 0.265371 0.505400 -vt 0.607792 0.676034 -vt 0.558631 0.626872 -vt 0.656953 0.586146 -vt 0.195847 0.194564 -vt 0.265371 0.194564 -vt 0.224645 0.292886 -vt 0.827586 0.243725 -vt 0.778425 0.292886 -vt 0.737698 0.194564 -vt 0.346117 0.655670 -vt 0.346117 0.586146 -vt 0.444439 0.626872 -vt 0.395278 0.023931 -vt 0.656953 0.044294 -vt 0.656953 0.113818 -vt 0.558631 0.073092 -vt 0.649018 0.497465 -vt 0.354051 0.497465 -vt 0.354052 0.202499 -vt 0.292962 0.349982 -vt 0.501535 0.558555 -vt 0.710108 0.349982 -vt 0.649018 0.202499 -vt 0.696457 0.746920 -vt 0.827586 0.456239 -vt 0.195847 0.505400 -vt 0.656953 0.655670 -vt 0.175484 0.243725 -vt 0.807223 0.194564 -vt 0.395278 0.676034 -vt 0.346117 0.044294 -vt 0.607792 0.023931 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn -0.000000 1.000000 -0.000000 -vn -0.250500 0.756000 -0.604800 -vn 0.000000 -1.000000 0.000000 -vn -0.604800 0.756000 0.250500 -vn 0.250500 0.756000 0.604800 -vn 0.604800 0.756000 -0.250500 -vn -0.604800 0.756000 -0.250500 -vn -0.250500 0.756000 0.604800 -vn 0.604800 0.756000 0.250500 -vn 0.250500 0.756000 -0.604800 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 16/14/7 2/1/7 1/15/7 -f 14/16/8 16/14/8 15/17/8 -f 7/18/9 20/19/9 19/20/9 -f 24/21/10 17/22/10 25/23/10 -f 13/24/9 23/25/9 22/26/9 -f 9/27/9 21/28/9 20/29/9 -f 15/30/9 24/31/9 23/32/9 -f 5/33/9 19/34/9 18/35/9 -f 11/36/9 22/37/9 21/38/9 -f 1/39/9 17/22/9 24/21/9 -f 3/40/9 18/41/9 17/42/9 -f 28/43/11 30/44/11 32/45/11 -f 23/25/12 31/46/12 30/44/12 -f 21/28/13 29/47/13 28/43/13 -f 19/34/14 27/48/14 26/49/14 -f 24/31/15 32/45/15 31/46/15 -f 22/37/16 30/44/16 29/47/16 -f 19/20/17 20/19/17 28/43/17 -f 17/42/18 18/41/18 26/49/18 -f 1/15/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 15/17/7 16/14/7 1/15/7 -f 13/50/8 14/16/8 15/17/8 -f 5/51/9 7/18/9 19/20/9 -f 32/45/10 24/21/10 25/23/10 -f 11/52/9 13/24/9 22/26/9 -f 7/53/9 9/27/9 20/29/9 -f 13/54/9 15/30/9 23/32/9 -f 3/55/9 5/33/9 18/35/9 -f 9/56/9 11/36/9 21/38/9 -f 15/57/9 1/39/9 24/21/9 -f 1/58/9 3/40/9 17/42/9 -f 32/45/11 25/23/11 26/49/11 -f 26/49/11 27/48/11 28/43/11 -f 28/43/11 29/47/11 30/44/11 -f 30/44/11 31/46/11 32/45/11 -f 32/45/11 26/49/11 28/43/11 -f 22/26/12 23/25/12 30/44/12 -f 20/29/13 21/28/13 28/43/13 -f 18/35/14 19/34/14 26/49/14 -f 23/32/15 24/31/15 31/46/15 -f 21/38/16 22/37/16 29/47/16 -f 27/48/17 19/20/17 28/43/17 -f 25/23/18 17/42/18 26/49/18 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/crackoil_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/crackoil_ds.png new file mode 100644 index 0000000000000000000000000000000000000000..2df7a278817384c71b643d900c11782b69f260da GIT binary patch literal 446 zcmV;v0YUzWP)B`D zB*{O+ktF1tktCQIwN_M>*4vIqN~wuYszf zsvJ*8R26rhrP65L$|gt>uGcG}Z1`Zw3jp?aE!VOv(}qScl7w388cY%%_s1mu-pbb6 ov^{H>4|(S`CKHIFMMgpX2~(Q`?Q47xmH+?%07*qoM6N<$f(ee!d;kCd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/hotcrackoil_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/hotcrackoil_ds.png new file mode 100644 index 0000000000000000000000000000000000000000..189efe34b68ec70ec54bb168969c35c0e7b56f15 GIT binary patch literal 576 zcmV-G0>AxACs+^H&Af3oIG>0Im4`xy;?PlBfmT2S)(oW- zrpXZTa#dk^RHn(89+gfTZ%crAfxTpw3_<vOEm^)_(~W zjtky1Xs6g_jH3~PYhs&mRS#Nw3c6W6#O1X5RQS0%h3oY~ zN|kw@&+$D+$&n;PVKY!y*PY;ktvR!_S3 zOpl6)U;Z{+FoTcJ%=@Ea+s5@8kZHPosV^7(4$9FUCw+p~Y>HEjb+votraB$EHq?FifX0weoS6*IjyuN-SGE++BdT9>K zd)9TK>^tM5q5?84u$P@uKt$*i-rhbBVXKd^ZIQNRUHy@0*D+ig2dxh<&zX4G5CivH zI*}G}D(Bglmx{D4wr!MBJ!vW4qdy++_3t<{6^P*rq8J)t;M8a@e)b>X;uMzQ_kNlH O0000}M{P)cK-((g6yK`Cw8pzm zczM}Tiqby|ZL5@$Y3A7;ow^MSgHbxjIpglAIE%wHIq*hG34nPv+E!`KSJ-#3|B$J* z;tsWfsxu6RNQ@3JT%5EP?4KoI2{2BuES2dBxrv0++0X_=0+xsXm9|xWpN(wJ`QkLY z?wzo_CIFNUR24JhbT;xPI59K&CW^WnA|l*w@u(Usrv$?UW=5@$)}m&qE1&xWcX;@ocU9w;Sa_O6_4x0$91%)70w zCR!*ZGhF2zc%TVx01k(NPag~Wt+L%ftx-fo zz&*xn+m>aO#LU?5dw_>a{~Shsp2I*nuRcf#N-3C)E9=hd>z?mFj);u7`@=MC+cM8H z%d&93I4U5+6r;O?NJ#nX*KuXrL&lUyDKXFUs+6*Q7Mcd0zJ88vyl-GBnUoU8V@N0x z+o!7veXnan#|*?hFvju(*3)U^%^~M^XXY&A%!8w4iMRh`{SHJ{TgANq0000{zI( z0QEE@r^LFh%<~Lp1m`^>f~wXFrJ$#U!Fv#47>154rBqRg5P%B1A@H7Y98uLyM;bEc z*tV_rm=PL8=Y8kBuIn3b5h11YpEgC6&|YpLsw&Poh7ian1mif8_8mQDnkHeKCQ8nz z8FE^*r}PaK*!LZP>-CCr4iRBl7D9}X+s6lw$Ae{Ay6Q1Ta?YJfJ72FC&N*U?)z&da zwr#^y3EmSg7p7@qSr#y(9Fze3;aJX@eczeJk?{HX$+^~b<k!Wa|Eli2?{0(;P}Of6dmUlwE!1$8LQV+|TXW7h=iY6k!9CTvYyZN`>O-oP zLPODPZ1%Nb5g~-olL#OO%{K~X9U4R@!Vn|3+YMFae!uhe^+h^z5<&<+F ns>;tNr4&+1%=7$~ize(}et9h?6h+|&00000NkvXXu0mjf{W93} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/naphtha_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/naphtha_ds.png new file mode 100644 index 0000000000000000000000000000000000000000..f3f439572898c94cd1e3e947361d05de58b0718f GIT binary patch literal 553 zcmV+^0@nSBP)AhoSgb*HQs!D5(ecu6yF|w{J zAp}&FZQD>)rfK5o>4|;cX|3U$LqzbUl%X_D6FFy6N`w&Ty>kg1#{qzI4uDb$F-BzD zHk@cfJFjJA&B7{%+lqN<3p%? zF~(uV%(&fd0HgTp>x=jIcVdixqwJg;zAoyoudlqly>UH0&-2JYDTUVBh`8jOX{}u| zMOFFu_!zXWF*@hCVy~)P>|~lI_I)RWFuqr;YpsX~>$rtLhzS1yoijW+gqpfc00000NkvXXu0mjf*A)uY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/oil_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/oil_ds.png new file mode 100644 index 0000000000000000000000000000000000000000..1428190b28da3557d812a8c3c6713dda24ac2ecd GIT binary patch literal 390 zcmV;10eSw3P)$=i= zA7nui>RM}<8JD@?IF6y_wHctbc2Wdw&v_crJlDzWCq7=US8~oDl|@D(g1d7G))~ifP-`VdJR_yV+#@NaH_z_= zR=8~&0Hu^Mjg%4+;e@mZs`oy!0eC*2D kuItHbkOt;Og1`0u0cfY}N*_Q0#sB~S07*qoM6N<$g2w2s8UO$Q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_CRACKOIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_CRACKOIL_DS.png new file mode 100644 index 0000000000000000000000000000000000000000..b862004613fc17da7959d3c8bcdef8a162bc2fa7 GIT binary patch literal 1043 zcmV+u1nm2XP)u4T!9L41u1}MSCASUKqnq# zz(oMPoXRDc{)w5L%eddcD&*kU5L5y%Ca8u%F$Z!%Ca8usv>mVpwKlSM+ad#Mq75o zaeN-)6;xckD%4u>>iKY(ycv&pRe|ph5Au0B(RJ6(a;}>~2SK4LU^>^G(*(BKto7M) zJ-RS+fd$lp{y@HBITNH{%TfhZfcjXv$2f@{=Ah>$9F(wB>#pJ+3F*y)P(RByGs5=NQ zQwG7KEjGrZEuiAj7KLJRAd<374y4ePm>Lgoj1GcA2f@`VM_%!&f4h$5y=c)HvBs-8 z51S)iIr55EQ&CF8sJjw$-4GG(k1n3|26({NQ2gI3+>EXpCKNgd3LOOT zs^k5977>xh{XWV5h*uf96uJL;O~fl_T4CSM=fy3Xc$JZEkuQbSezrBb?gfSl+I_uM zH=bJ9LJzfMZ9rB-u|pPms=Mwl8(Llx9&Pd8<9?sKm_MGLL`0-%n!(R_tX>y8JNpH#NW>af%EZg*#53R55tDlv}w%=O! z2D-U7(+weB6@qvL6AB#!lLH+wIS{I%<5gri#VbbLg`n$(355=VLI**-azwm>ig;Bh z;uUU2*9{X29R!6Af_UYKcm);ls!+r$+>EXpCKNgd3LOOT%27`7>K_(zcs-8PjPL*e N002ovPDHLkV1f=v>!JVv literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HOTCRACKOIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_HOTCRACKOIL_DS.png new file mode 100644 index 0000000000000000000000000000000000000000..0238ff593ef244e6c937ac2d51fb794c0eaa483a GIT binary patch literal 1275 zcmeAS@N?(olHy`uVBq!ia0vp^RY2Us!3HEZPulwcNU;<)Dxa?1{iOA;uv8S_?2-{Uu?wgjin5oC!LiH zFPJX~wld*+W^sGE_59-J|Gz7TnjTb{VE=sg{8~G=M-NWBM|OAIk?oBw3(xm~)_sZy6v^MV zTE5-t#haM|YjXBJD-*XX`IX}#)*9C2q+R&I%4m&zfv-8U*_&sHTUW`J+UNYUm;L_v z-lavtMV9mT-~3lockgDg@OmYsxPx64tqCGgoLp;JK58jF5?#{~J`*UqN;B@J)T1w{ zs^#v<%U|D@*~R|g!=qKD@?5qIdhHcJQhk4Z^moNLSC>6aQ}g!}yd6csNk;s@X~aky|1+6c7D0ID$)CxbmGP0jjjvX54?;i&)D<#yOzN<6*;}R3g31V{vjN@!=?W}6&2Ft(w8=EVz{#(CY6lamiwjEWXf$<+tJ&iHf zwNl*o@zl#IlaE^S_B{&KFFtlbcG@-vRJT(^ zaN_2ZOC~>8j#FKsvuWpD^+%y8+Ya5+pMFqxcE!{QSrbnmn$}+$_$C(U(v6}w@7%kd zxF`FdZq=-piGQE{{JO%*TJGeQPdDCFsBC_G@!R9yPlM8qe=7{ttGDz>?KbPqu}iC4 z_wKW$Vq9)WbV0bC?{X!jO%XcxWcfP6Z8Ne~md;;oU1A=oBc>cZ@wJNVdSLYXq)$Fs zwxIO$o@tv;KKZYZ^ZD~0=@pfK=4c+(o~pYm#C+E}>E7edb{8$+zS=5Q8ULnM)Y5G0 z$5p4y1hkdIXUFVX=NDb_GcEMKN%8JK>2f>+|Ma zzkMypmNT(0=dAg*UGaDS$L`s-@--9xuUDbskypN*-f;TgPA{vtnY%1LCT!cc?fIRh zOTT;i?kTd3x%KPmg}-O7uamZ4Qj%qywnu8`mKSgH=cmqB?AhgPvR8fI`<1>g_J$w) zs5QM};oM)sYEi&Eu*mVa_K(wAaSubiK6?Fqa$t&qrNBXrEkeMI`6$%oh<1eFdL!38 iO`;#U2#IPQU0r`A(3<(S;sH>h#^CAd=d#Wzp$Pzh7ib;; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HOTOIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_HOTOIL_DS.png new file mode 100644 index 0000000000000000000000000000000000000000..c616db15a55b3c5431f24d4c69ddf0329fea1c07 GIT binary patch literal 1225 zcmeAS@N?(olHy`uVBq!ia0vp^RY2Us!3HEZPulwcNU;<Eakt zG3V{wjbXP9M2;0MZ7;59sY=ujo}(IF$x~)zBJ6*;ldt6LOYRMqdl#zgel8%lFxYB} z#L*KQm3~`IdjEg>1D4|#?wqyHSkUD?f%p|&1|60FH}4& zwVhR=x_o`b)zfnfOWK#}76=p{oAThEwrb6<7stLX=}p}GF1dBx_1Y5)S3GMz7~#UF zd*R4rxEW}hc9nfc+7CkI@PnpjQ%diG@XdW|m(2Cu@Jg0~Cp)yZwF0_mEz%|isJ zPUP#UMvJ+3BY&jsHRIs?YMBNLLBF$uJEh3OKUDHQhp@8-brk>GFV7)wW7hR zJ`V5b1*TCYk81KKEO*s*+#{qSxZY{eRKqPVR{S`!`asOh z&*k>ht`@-6tm7+}F;#uWMbB$t}N%J63m7_V1A8 zAJ=XDcOYffi_E`ypXx4`9crEQ;HS0;G z<%M0hb51kfP&waw@|Zk(7UO@vN1-aO+^&}{F3bc**VUx?t4>_Ha!h-+?9w;Sm&vX7 zUHbaf7T4SPVWqdf-VlwP^=)dG<+p^@s{_k@jy%44H!XT!;qJGw+(o@bwcn>+_xzj zefu9SFI^biDSm6^{{t@E>*6@2O7=MISn^2p-pa1<56AZ+!WNSCrfPt596ZEvh<0hl b{bfG0`Fm%cxtkZTY+~?q^>bP0l+XkKV|-ih literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_LIGHTOIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_LIGHTOIL_DS.png new file mode 100644 index 0000000000000000000000000000000000000000..99d0f472d78d1c86f535cd1f9935e79e0096130b GIT binary patch literal 1095 zcmV-N1i1T&P)c#16vpxAB2xipOm1NyYmSiMb)Cy{#p-y|opV(5huKarAG65!j{Pk%zz!>P|-zOTmC>F(RN z%NzOl^7FXdG>vSoUbB3b6-6w^;dy;5?BRJWP1DHT?RA!IUu4+|vgo$n&DE=HuJROF zMC3!ZEum->+6W45#AvTjgkE>7b9>#IXwe0EySzDBK0L3pZJT&i5aN{)#49AD&_+;b zBZyauh*xkTUKv5WG9ooz`A!uax)&hi5Ko~OplO=Xbtv=#gq+8TSBj>NSDd3O5gV^U z*1Mp!>N$7czR&vnxBUKk{IDFd9`ULmvGFS89L=HI2nxLb~mFMv$X%M4=ZT=vsG46WEq!s(l;MX`@9KBsN}!oTG_X zil&NJA!yMBiH%oW>o$TMZ3Hg(?=Hx(HbV0cH3SRWOjo^Zb z5j@&rW<1&gPCVM8QcMnn6O#ksb$5F`+8?0MMo?%Y7`;-Y6|efY>xBF*T694|<5k-u zKL?{%1xXpb8f(!^4lD?dwm>pkbmc;Ckf%i(LA+9=5wH5uiWXg=ka!gntwe}dMTv=5 zp)H!uSV1)76@{)u>f@(4M;k$*jUZkrD(T6AwCIBHwZfGu>3gr}br*!uD`=bZD_V4-ZjpD}`;+2M-Lhlv zy$WHv(ETF2mghQ*=VrFhLq&G|Yzf6SS?Hl6KRiBpe^)aeZ6W^`F;~p`@$0vUi0t?K z!F@c{zBSpR`z^J7-R+F+w)dll_c8nZe&s82AMr|wuaK!ljzPRqGIS1}qsSt}D^;PL zvD%q0w8(h8T7s;FcJ*HSt;F@ZzwCOS@BQ7M#m1na3nojU8n4=(YrEsR%jdkW<=WQJ zy0M=(r;?)UEK`a4IkonS5xMxjRyfrxlLLn`>e33n=*fZI*4jO9b`P`d@6Y9WfB$dv zKSND4CkL9oU{Vt>v+HiF54ikKV-C+@wf)S}}R;&Ja4l2K?QD6|p8D@DXBI1#TZ zMZAI&@e0W(v=J2A2;!9@;uV~TSCt}O!HIZNGi>M!!!R>h?#*a-jt N002ovPDHLkV1ij6H13;nT+t|2*5_wa;I^ZjNo!e{V0Z zuIWS*V)VSQ<1-ALlN7tJv}=Vc6)keUDw&g`THXKeph5KD5BrJFV9cKifl%q zWl(4l6k5d5vqCe@x^untth**Ux*?ZW*RLLLPtS_&n|Rd_;*|*E6-J}bA}F*7;#Eb& zD?|~mMAVE|Cq?#xBF4t6)K>+E?iKJH;wkhBbX|9J8w$Mwot2}Lc;%Xprd!)F_ToS~dLeS-6=U5Z$k8Im z(KsMpRWwz+Vyt^%a^sb2KALWA2k}Y-OIsj`94&$zErNTmW>zv@dG?jUjqnXgEzIuu zK%_nl#H)sIai9n;4nz`@8Y0NiBDnWzX54#)D3-Pm!O|8YSlR+foOO#}z(fSIS2N?{ zKtyqIpa?Dw6v4e$NaCzp1Op}_SlVJ{ENy`(mbMVV#epKYI1ow4zMst~v ziZFYH(I~VC3N3L%hN4#p#zR2O@DG{$K8!Bw6&h{c+Rn#x?-R;e* z;!fS!#H&ieBF7%jbr>&AcA7FQa#+y*bN3IAlOM)QlkDhNC&xN^O`Ux*_2S`5e*f8; znb~f)8+?zadT%8=I@YPNcs2AL?zP+PHmM?qh*y=Q3OTmOIfz%441EXBQDn2a@k+X* z_gWb+Nui?)h!wP@B9~CK&_jp6`-jKq&#CQW+j;k&V`#u+EsDphaB!jjbN_MdxzK*l zBK5`(?LSB90=E=hi;s-OMww#W7Ml|EbY*H^OPBh$!egD(_(X-p?sr`HT==?hJI^+r z*UjOr?`{9)x&6&_rOv!L8EXjf3dAe;P-qcc99R(-2O^5uD-q0IiQwWuj7FhFP-qdv ztBQzMh$3EzAYO?eUSTu}ErLReAYN5Oyh0T5N(Avr1n~-^QD_kqS_JW`qL$*-e|9k$ UBqkS>?f?J)07*qoM6N<$g1DCXi~s-t literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_OIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_OIL_DS.png new file mode 100644 index 0000000000000000000000000000000000000000..330e31eedb241867e6396ae49fa618acc115c129 GIT binary patch literal 1034 zcmV+l1oiugP)(0!5QgFQR4y?&!DJQB0nAZv=bEC3F4I@;uV63SD7MS!Nl09g08y&nl7F~7eLd+Q|JQxT(6V+ z5U&hv9j`b?XJTo*((FgPGPG5^((FgPDhORSD0B(P(N3t&(V92nJiZL^3PIex%G6fz z>Qq&e591N93h?{+S$?ipy6)0xu60vrCn$6QRM)ywn!r|?t&T1CqcgKKUTMzJ#4AH7 zO%9|*C#0K&KQ9+mOBLZ-w;PHMfm>h_xm>lQ?H#M9f zM?1l@S3Bd`D+IB$MW$HV0w(CX3&*J23GQAw!QHE!F*y)HOb*OcN|OU=(Fx(%D~w{) z?F3!76D)19GnTeM5KCKRiphb9iphaaOchy#Lc2kso#5`3A**=Re_TiNS+wYcXyetA z#pZ}thOFY%RFn!KUKN6_8zRE<(b>~JAWw^Sf_P=fB3|{Q6)ieLns~Kz9dF{5A&Ypm zBwC3Oud=7@x*2t6V(s!%oTHtf&`uDq45hSkAT2r}{9EBnrSyNVh*z1Q>xK%2c7j4X zLA>htY8nv{`FlJ@c|YP+f^J3bZ*PfsWh_+KucleuvWZs-=@$7`*wF9xM%TTc^+ZSU)otQ~c`F0_cBc;&v(BEti%REjJ@j*cQ! z(3FZCL-gss{cdllYwT~&?LzwzDD=5=iq-uNr4?Bua=aQkxS;}vg!UWCx&3{Y6nE(J zV@WBxZqjw%t~f0@khx!|m?QhUSK1am_Szg3efMhYT-o2g?Gt+4(C_-6Gj@(1dTow~ zS56SGphBUYU~-@#CI=!Y`*`J5(eVm4=(?dop`D=6P7tpQ5w8$Lyvh{u3bWC5Lxn;+ zL7|->UKt`@A&7XDDdH7oqw9tWg?55MJ3+iMlv2F<59d=z`CelEjQ{`u07*qoM6N<$ Ef;;-~WdHyG literal 0 HcmV?d00001 From e5f2ae68604673b48295cd88636938ae45a860ff Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 7 Feb 2024 21:34:18 +0100 Subject: [PATCH 159/376] half a UV because i spent all day playing fucking infinitecraft --- .../hbm/models/weapons/launch_pad_erector.obj | 8252 ++++++++++------- .../textures/models/launchpad/erector_v2.png | Bin 1621 -> 1634 bytes 2 files changed, 4700 insertions(+), 3552 deletions(-) diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj index 67552a570..78abbd05b 100644 --- a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj @@ -5111,10 +5111,10 @@ v -0.250000 8.500000 2.500000 v 0.250000 8.500000 2.500000 v -0.250000 9.000000 2.500000 v 0.250000 9.000000 2.500000 -v -0.250000 8.500000 0.750000 -v 0.250000 8.500000 0.750000 -v -0.250000 9.000000 0.750000 -v 0.250000 9.000000 0.750000 +v -0.250000 8.500000 0.250000 +v 0.250000 8.500000 0.250000 +v -0.250000 9.000000 0.250000 +v 0.250000 9.000000 0.250000 v 0.000000 11.000000 2.500000 v 0.000000 10.875000 2.500000 v 0.000000 11.000000 0.000000 @@ -6615,6 +6615,736 @@ v 0.500001 2.649519 2.875000 v 0.500001 2.750000 2.500000 v 0.500001 2.649520 2.125000 v 0.500001 2.375001 1.850481 +v 0.750000 1.125000 -0.750000 +v 1.250000 1.125000 -0.750000 +v 0.750000 1.125000 -1.250000 +v 1.250000 1.125000 -1.250000 +v 0.750000 1.625000 -0.750000 +v 1.250000 1.625000 -0.750000 +v 0.750000 1.625000 -1.250000 +v 1.250000 1.625000 -1.250000 +v 0.625000 1.000000 -0.625000 +v 1.375000 1.000000 -0.625000 +v 0.625000 1.000000 -1.375000 +v 1.375000 1.000000 -1.375000 +v 0.625000 1.125000 -0.625000 +v 1.375000 1.125000 -0.625000 +v 0.625000 1.125000 -1.375000 +v 1.375000 1.125000 -1.375000 +v 0.625000 1.625000 -0.625000 +v 1.375000 1.625000 -0.625000 +v 0.625000 1.625000 -1.375000 +v 1.375000 1.625000 -1.375000 +v 0.625000 1.750000 -0.625000 +v 1.375000 1.750000 -0.625000 +v 0.625000 1.750000 -1.375000 +v 1.375000 1.750000 -1.375000 +v -1.250000 1.125000 1.250000 +v -0.750000 1.125000 1.250000 +v -1.250000 1.125000 0.750000 +v -0.750000 1.125000 0.750000 +v -1.250000 1.625000 1.250000 +v -0.750000 1.625000 1.250000 +v -1.250000 1.625000 0.750000 +v -0.750000 1.625000 0.750000 +v -1.375000 1.000000 1.375000 +v -0.625000 1.000000 1.375000 +v -1.375000 1.000000 0.625000 +v -0.625000 1.000000 0.625000 +v -1.375000 1.125000 1.375000 +v -0.625000 1.125000 1.375000 +v -1.375000 1.125000 0.625000 +v -0.625000 1.125000 0.625000 +v -1.375000 1.625000 1.375000 +v -0.625000 1.625000 1.375000 +v -1.375000 1.625000 0.625000 +v -0.625000 1.625000 0.625000 +v -1.375000 1.750000 1.375000 +v -0.625000 1.750000 1.375000 +v -1.375000 1.750000 0.625000 +v -0.625000 1.750000 0.625000 +v -1.250000 1.125000 -0.750000 +v -0.750000 1.125000 -0.750000 +v -1.250000 1.125000 -1.250000 +v -0.750000 1.125000 -1.250000 +v -1.250000 1.625000 -0.750000 +v -0.750000 1.625000 -0.750000 +v -1.250000 1.625000 -1.250000 +v -0.750000 1.625000 -1.250000 +v -1.375000 1.000000 -0.625000 +v -0.625000 1.000000 -0.625000 +v -1.375000 1.000000 -1.375000 +v -0.625000 1.000000 -1.375000 +v -1.375000 1.125000 -0.625000 +v -0.625000 1.125000 -0.625000 +v -1.375000 1.125000 -1.375000 +v -0.625000 1.125000 -1.375000 +v -1.375000 1.625000 -0.625000 +v -0.625000 1.625000 -0.625000 +v -1.375000 1.625000 -1.375000 +v -0.625000 1.625000 -1.375000 +v -1.375000 1.750000 -0.625000 +v -0.625000 1.750000 -0.625000 +v -1.375000 1.750000 -1.375000 +v -0.625000 1.750000 -1.375000 +vt 0.265306 0.763158 +vt 0.510204 0.710526 +vt 0.510204 0.763158 +vt 0.265306 0.815789 +vt 0.510204 0.815789 +vt 0.265306 0.710526 +vt 0.510204 0.657895 +vt 0.224490 0.710526 +vt 0.224490 0.763158 +vt 0.551020 0.710526 +vt 0.551020 0.763158 +vt 0.244898 0.552632 +vt 0.163265 0.342105 +vt 0.244898 0.447368 +vt 0.408163 0.342105 +vt 0.326531 0.447368 +vt 0.408163 0.657895 +vt 0.326531 0.552632 +vt 0.163265 0.657895 +vt 0.326531 0.447368 +vt 0.244898 0.552632 +vt 0.244898 0.447368 +vt 0.163265 0.315789 +vt 0.244898 0.105263 +vt 0.244898 0.210526 +vt 0.408163 0.315789 +vt 0.326531 0.210526 +vt 0.408163 -0.000000 +vt 0.326531 0.105263 +vt 0.163265 -0.000000 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.163265 0.342105 +vt 0.408163 0.315789 +vt 0.408163 0.342105 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.163265 0.342105 +vt 0.408163 0.315789 +vt 0.408163 0.342105 +vt 0.163265 0.342105 +vt 0.408163 0.315789 +vt 0.408163 0.342105 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.040816 0.947368 +vt 0.081633 1.000000 +vt 0.040816 1.000000 +vt 0.081633 0.000000 +vt 0.040816 0.000000 +vt 0.163265 0.000000 +vt 0.122449 0.947368 +vt 0.122449 0.000000 +vt 0.081633 0.947368 +vt 0.000000 0.947368 +vt 0.000000 0.000000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.765306 0.315789 +vt 0.775510 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.315789 +vt 0.785714 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.315789 +vt 0.775510 0.473684 +vt 0.765306 0.315789 +vt 0.795918 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.765306 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.775510 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.473684 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.785714 0.473684 +vt 0.775510 0.315789 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.765306 0.315789 +vt 0.775510 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.473684 +vt 0.775510 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.473684 +vt 0.765306 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.315789 +vt 0.775510 0.473684 +vt 0.765306 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.473684 +vt 0.755102 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.785714 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.315789 +vt 0.775510 0.473684 +vt 0.765306 0.315789 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.765306 0.315789 +vt 0.775510 0.473684 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.785714 0.473684 +vt 0.775510 0.315789 +vt 0.724490 0.631579 +vt 0.734694 0.315789 +vt 0.734694 0.631579 +vt 0.714286 0.631579 +vt 0.724490 0.315789 +vt 0.744898 0.315789 +vt 0.755102 0.631579 +vt 0.744898 0.631579 +vt 0.714286 0.631579 +vt 0.724490 0.315789 +vt 0.724490 0.631579 +vt 0.744898 0.631579 +vt 0.755102 0.315789 +vt 0.755102 0.631579 +vt 0.734694 0.315789 +vt 0.734694 0.631579 +vt 0.734694 0.631579 +vt 0.744898 0.315789 +vt 0.744898 0.631579 +vt 0.724490 0.631579 +vt 0.734694 0.315789 +vt 0.755102 0.315789 +vt 0.714286 0.315789 +vt 0.714286 0.631579 +vt 0.744898 0.631579 +vt 0.755102 0.315789 +vt 0.755102 0.631579 +vt 0.734694 0.631579 +vt 0.744898 0.315789 +vt 0.724490 0.315789 +vt 0.714286 0.631579 +vt 0.714286 0.315789 +vt 0.724490 0.631579 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.265306 0.657895 +vt 0.326531 0.552632 +vt 0.244898 0.184211 +vt 0.163265 0.315789 +vt 0.244898 0.184211 +vt 0.244898 0.184211 +vt 0.163265 0.315789 +vt 0.163265 0.315789 +vt 0.244898 0.184211 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.163265 0.947368 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.795918 0.315789 +vt 0.795918 0.315789 +vt 0.755102 0.473684 +vt 0.795918 0.315789 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.795918 0.315789 +vt 0.714286 0.315789 +vt 0.755102 0.315789 +vt 0.714286 0.315789 +vt 0.744898 0.315789 +vt 0.724490 0.315789 +vt 0.755102 0.631579 +vt 0.734694 0.315789 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.683673 0.473684 +vt 0.438776 0.526316 +vt 0.438776 0.473684 +vt 0.683673 0.526316 +vt 0.438776 0.578947 +vt 0.683673 0.578947 +vt 0.438776 0.631579 +vt 0.683673 -0.000000 +vt 0.438776 0.052632 +vt 0.438776 -0.000000 +vt 0.683673 0.052632 +vt 0.438776 0.105263 +vt 0.683673 0.105263 +vt 0.438776 0.157895 +vt 0.683673 0.157895 +vt 0.438776 0.210526 +vt 0.683673 0.210526 +vt 0.438776 0.263158 +vt 0.683673 0.263158 +vt 0.438776 0.315789 +vt 0.683673 0.315789 +vt 0.438776 0.368421 +vt 0.714286 0.256579 +vt 0.683673 0.368421 +vt 0.438776 0.421053 +vt 0.683673 0.421053 +vt 0.408163 0.151316 +vt 0.408163 0.111842 +vt 0.745408 0.011716 +vt 0.805612 0.011716 +vt 0.805612 0.146179 +vt 0.714286 0.164474 +vt 0.714286 0.203947 +vt 0.714286 0.151316 +vt 0.714286 0.098684 +vt 0.714286 0.046053 +vt 0.714286 0.427632 +vt 0.714286 0.467105 +vt 0.714286 0.519737 +vt 0.683673 0.631579 +vt 0.714286 0.585526 +vt 0.714286 0.625000 +vt 0.714286 0.375000 +vt 0.714286 0.414474 +vt 0.714286 0.532895 +vt 0.714286 0.572368 +vt 0.714286 0.322368 +vt 0.714286 0.361842 +vt 0.714286 0.309211 +vt 0.775510 0.159210 +vt 0.827649 0.275658 +vt 0.723372 0.275658 +vt 0.408163 0.059211 +vt 0.408163 0.046053 +vt 0.408163 0.006579 +vt 0.408163 0.467105 +vt 0.408163 0.427632 +vt 0.408163 0.519737 +vt 0.408163 0.480263 +vt 0.408163 0.585526 +vt 0.408163 0.375000 +vt 0.408163 0.532895 +vt 0.408163 0.322368 +vt 0.408163 0.309211 +vt 0.408163 0.269737 +vt 0.408163 0.217105 +vt 0.408163 0.164474 +vt 0.714286 0.217105 +vt 0.827649 0.040131 +vt 0.835715 0.078947 +vt 0.827649 0.117763 +vt 0.775510 0.156579 +vt 0.745408 0.146179 +vt 0.723372 0.117763 +vt 0.715306 0.078947 +vt 0.723372 0.040131 +vt 0.775510 0.001315 +vt 0.714286 0.111842 +vt 0.714286 0.059211 +vt 0.714286 0.006579 +vt 0.714286 0.480263 +vt 0.714286 0.269737 +vt 0.715306 0.236842 +vt 0.723372 0.198026 +vt 0.745408 0.169611 +vt 0.805612 0.169611 +vt 0.827649 0.198026 +vt 0.835715 0.236842 +vt 0.805612 0.304073 +vt 0.775510 0.314474 +vt 0.745408 0.304073 +vt 0.408163 0.098684 +vt 0.408163 0.625000 +vt 0.408163 0.414474 +vt 0.408163 0.572368 +vt 0.408163 0.361842 +vt 0.408163 0.256579 +vt 0.408163 0.203947 vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 @@ -6670,373 +7400,457 @@ vn -0.9007 0.3762 -0.2172 vn -0.9007 0.4343 0.0000 vn -0.9007 0.3762 0.2172 s off -f 2721//313 2722//313 2720//313 -f 2727//314 2720//314 2726//314 -f 2723//315 2724//315 2722//315 -f 2725//316 2721//316 2727//316 -f 2720//317 2724//317 2726//317 -f 2716//313 2729//313 2717//313 -f 2717//313 2731//313 2718//313 -f 2718//313 2730//313 2719//313 -f 2719//313 2728//313 2716//313 -f 2734//313 2732//313 2733//313 -f 2742//318 2739//318 2737//318 -f 2743//318 2737//318 2736//318 -f 2740//318 2736//318 2738//318 -f 2741//318 2738//318 2739//318 -f 2718//317 2737//317 2717//317 -f 2729//316 2743//316 2731//316 -f 2730//317 2741//317 2728//317 -f 2717//315 2739//315 2716//315 -f 2716//316 2738//316 2719//316 -f 2731//315 2740//315 2730//315 -f 2728//314 2742//314 2729//314 -f 2719//314 2736//314 2718//314 -f 2746//315 2751//315 2747//315 -f 2745//314 2748//314 2744//314 -f 2747//316 2749//316 2745//316 -f 2744//317 2750//317 2746//317 -f 2763//316 2765//316 2761//316 -f 2757//313 2758//313 2756//313 -f 2755//316 2757//316 2753//316 -f 2752//317 2758//317 2754//317 -f 2754//315 2759//315 2755//315 -f 2753//314 2756//314 2752//314 -f 2760//317 2766//317 2762//317 -f 2762//315 2767//315 2763//315 -f 2761//314 2764//314 2760//314 -f 2763//318 2760//318 2762//318 -f 2774//313 2772//313 2773//313 -f 2771//316 2774//316 2769//316 -f 2768//317 2772//317 2770//317 -f 2770//315 2775//315 2771//315 -f 2769//314 2773//314 2768//314 -f 2778//318 2776//318 2779//318 -f 2805//318 2807//318 2804//318 -f 2808//313 2810//313 2811//313 -f 2811//314 2805//314 2804//314 -f 2810//317 2806//317 2805//317 -f 2809//315 2807//315 2806//315 -f 2808//316 2804//316 2807//316 -f 2815//316 2819//316 2816//316 -f 2814//315 2816//315 2817//315 -f 2813//317 2817//317 2818//317 -f 2812//314 2818//314 2819//314 -f 2815//313 2813//313 2812//313 -f 2818//318 2816//318 2819//318 -f 2821//318 2823//318 2820//318 -f 2824//313 2826//313 2827//313 -f 2827//314 2821//314 2820//314 -f 2826//317 2822//317 2821//317 -f 2825//315 2823//315 2822//315 -f 2824//316 2820//316 2823//316 -f 2831//316 2835//316 2832//316 -f 2830//315 2832//315 2833//315 -f 2829//317 2833//317 2834//317 -f 2828//314 2834//314 2835//314 -f 2831//313 2829//313 2828//313 -f 2834//318 2832//318 2835//318 -f 2836//313 2838//313 2839//313 -f 2839//314 2778//314 2779//314 -f 2838//317 2777//317 2778//317 -f 2837//315 2776//315 2777//315 -f 2836//316 2779//316 2776//316 -f 2843//316 2847//316 2844//316 -f 2842//315 2844//315 2845//315 -f 2841//317 2845//317 2846//317 -f 2840//314 2846//314 2847//314 -f 2843//313 2841//313 2840//313 -f 2846//318 2844//318 2847//318 -f 2849//318 2851//318 2848//318 -f 2852//313 2854//313 2855//313 -f 2855//314 2849//314 2848//314 -f 2854//317 2850//317 2849//317 -f 2853//315 2851//315 2850//315 -f 2852//316 2848//316 2851//316 -f 2859//316 2863//316 2860//316 -f 2858//315 2860//315 2861//315 -f 2857//317 2861//317 2862//317 -f 2856//314 2862//314 2863//314 -f 2859//313 2857//313 2856//313 -f 2862//318 2860//318 2863//318 -f 2865//318 2866//318 2864//318 -f 2867//317 2870//317 2866//317 -f 2864//316 2869//316 2865//316 -f 2868//313 2871//313 2869//313 -f 2873//318 2874//318 2872//318 -f 2875//317 2878//317 2874//317 -f 2872//316 2877//316 2873//316 -f 2876//313 2879//313 2877//313 -f 2881//318 2882//318 2880//318 -f 2883//317 2886//317 2882//317 -f 2880//316 2885//316 2881//316 -f 2884//313 2887//313 2885//313 -f 2889//318 2890//318 2888//318 -f 2891//317 2894//317 2890//317 -f 2888//316 2893//316 2889//316 -f 2892//313 2895//313 2893//313 -f 2897//315 2898//315 2896//315 -f 2899//317 2902//317 2898//317 -f 2896//316 2901//316 2897//316 -f 2900//314 2903//314 2901//314 -f 2905//315 2906//315 2904//315 -f 2907//317 2910//317 2906//317 -f 2904//316 2909//316 2905//316 -f 2908//314 2911//314 2909//314 -f 2913//315 2914//315 2912//315 -f 2915//317 2918//317 2914//317 -f 2912//316 2917//316 2913//316 -f 2916//314 2919//314 2917//314 -f 2921//315 2922//315 2920//315 -f 2923//317 2926//317 2922//317 -f 2920//316 2925//316 2921//316 -f 2924//314 2927//314 2925//314 -f 2931//318 2928//318 2929//318 -f 2935//315 2930//315 2931//315 -f 2932//314 2929//314 2928//314 -f 2932//313 2935//313 2933//313 -f 2939//318 2936//318 2937//318 -f 2943//315 2938//315 2939//315 -f 2940//314 2937//314 2936//314 -f 2940//313 2943//313 2941//313 -f 2947//318 2944//318 2945//318 -f 2951//315 2946//315 2947//315 -f 2948//314 2945//314 2944//314 -f 2948//313 2951//313 2949//313 -f 2955//318 2952//318 2953//318 -f 2959//315 2954//315 2955//315 -f 2956//314 2953//314 2952//314 -f 2956//313 2959//313 2957//313 -f 2721//313 2723//313 2722//313 -f 2727//314 2721//314 2720//314 -f 2723//315 2725//315 2724//315 -f 2725//316 2723//316 2721//316 -f 2720//317 2722//317 2724//317 -f 2716//313 2728//313 2729//313 -f 2717//313 2729//313 2731//313 -f 2718//313 2731//313 2730//313 -f 2719//313 2730//313 2728//313 -f 2734//313 2735//313 2732//313 -f 2742//318 2741//318 2739//318 -f 2743//318 2742//318 2737//318 -f 2740//318 2743//318 2736//318 -f 2741//318 2740//318 2738//318 -f 2718//317 2736//317 2737//317 -f 2729//316 2742//316 2743//316 -f 2730//317 2740//317 2741//317 -f 2717//315 2737//315 2739//315 -f 2716//316 2739//316 2738//316 -f 2731//315 2743//315 2740//315 -f 2728//314 2741//314 2742//314 -f 2719//314 2738//314 2736//314 -f 2746//315 2750//315 2751//315 -f 2745//314 2749//314 2748//314 -f 2747//316 2751//316 2749//316 -f 2744//317 2748//317 2750//317 -f 2763//316 2767//316 2765//316 -f 2757//313 2759//313 2758//313 -f 2755//316 2759//316 2757//316 -f 2752//317 2756//317 2758//317 -f 2754//315 2758//315 2759//315 -f 2753//314 2757//314 2756//314 -f 2760//317 2764//317 2766//317 -f 2762//315 2766//315 2767//315 -f 2761//314 2765//314 2764//314 -f 2763//318 2761//318 2760//318 -f 2774//313 2775//313 2772//313 -f 2771//316 2775//316 2774//316 -f 2768//317 2773//317 2772//317 -f 2770//315 2772//315 2775//315 -f 2769//314 2774//314 2773//314 -f 2778//318 2777//318 2776//318 -f 2805//318 2806//318 2807//318 -f 2808//313 2809//313 2810//313 -f 2811//314 2810//314 2805//314 -f 2810//317 2809//317 2806//317 -f 2809//315 2808//315 2807//315 -f 2808//316 2811//316 2804//316 -f 2815//316 2812//316 2819//316 -f 2814//315 2815//315 2816//315 -f 2813//317 2814//317 2817//317 -f 2812//314 2813//314 2818//314 -f 2815//313 2814//313 2813//313 -f 2818//318 2817//318 2816//318 -f 2821//318 2822//318 2823//318 -f 2824//313 2825//313 2826//313 -f 2827//314 2826//314 2821//314 -f 2826//317 2825//317 2822//317 -f 2825//315 2824//315 2823//315 -f 2824//316 2827//316 2820//316 -f 2831//316 2828//316 2835//316 -f 2830//315 2831//315 2832//315 -f 2829//317 2830//317 2833//317 -f 2828//314 2829//314 2834//314 -f 2831//313 2830//313 2829//313 -f 2834//318 2833//318 2832//318 -f 2836//313 2837//313 2838//313 -f 2839//314 2838//314 2778//314 -f 2838//317 2837//317 2777//317 -f 2837//315 2836//315 2776//315 -f 2836//316 2839//316 2779//316 -f 2843//316 2840//316 2847//316 -f 2842//315 2843//315 2844//315 -f 2841//317 2842//317 2845//317 -f 2840//314 2841//314 2846//314 -f 2843//313 2842//313 2841//313 -f 2846//318 2845//318 2844//318 -f 2849//318 2850//318 2851//318 -f 2852//313 2853//313 2854//313 -f 2855//314 2854//314 2849//314 -f 2854//317 2853//317 2850//317 -f 2853//315 2852//315 2851//315 -f 2852//316 2855//316 2848//316 -f 2859//316 2856//316 2863//316 -f 2858//315 2859//315 2860//315 -f 2857//317 2858//317 2861//317 -f 2856//314 2857//314 2862//314 -f 2859//313 2858//313 2857//313 -f 2862//318 2861//318 2860//318 -f 2865//318 2867//318 2866//318 -f 2867//317 2871//317 2870//317 -f 2864//316 2868//316 2869//316 -f 2868//313 2870//313 2871//313 -f 2873//318 2875//318 2874//318 -f 2875//317 2879//317 2878//317 -f 2872//316 2876//316 2877//316 -f 2876//313 2878//313 2879//313 -f 2881//318 2883//318 2882//318 -f 2883//317 2887//317 2886//317 -f 2880//316 2884//316 2885//316 -f 2884//313 2886//313 2887//313 -f 2889//318 2891//318 2890//318 -f 2891//317 2895//317 2894//317 -f 2888//316 2892//316 2893//316 -f 2892//313 2894//313 2895//313 -f 2897//315 2899//315 2898//315 -f 2899//317 2903//317 2902//317 -f 2896//316 2900//316 2901//316 -f 2900//314 2902//314 2903//314 -f 2905//315 2907//315 2906//315 -f 2907//317 2911//317 2910//317 -f 2904//316 2908//316 2909//316 -f 2908//314 2910//314 2911//314 -f 2913//315 2915//315 2914//315 -f 2915//317 2919//317 2918//317 -f 2912//316 2916//316 2917//316 -f 2916//314 2918//314 2919//314 -f 2921//315 2923//315 2922//315 -f 2923//317 2927//317 2926//317 -f 2920//316 2924//316 2925//316 -f 2924//314 2926//314 2927//314 -f 2931//318 2930//318 2928//318 -f 2935//315 2934//315 2930//315 -f 2932//314 2933//314 2929//314 -f 2932//313 2934//313 2935//313 -f 2939//318 2938//318 2936//318 -f 2943//315 2942//315 2938//315 -f 2940//314 2941//314 2937//314 -f 2940//313 2942//313 2943//313 -f 2947//318 2946//318 2944//318 -f 2951//315 2950//315 2946//315 -f 2948//314 2949//314 2945//314 -f 2948//313 2950//313 2951//313 -f 2955//318 2954//318 2952//318 -f 2959//315 2958//315 2954//315 -f 2956//314 2957//314 2953//314 -f 2956//313 2958//313 2959//313 +f 2721/1/313 2722/2/313 2720/3/313 +f 2727/4/314 2720/3/314 2726/5/314 +f 2723/6/315 2724/7/315 2722/2/315 +f 2725/8/316 2721/1/316 2727/9/316 +f 2720/3/317 2724/10/317 2726/11/317 +f 2716/12/313 2729/13/313 2717/14/313 +f 2717/14/313 2731/15/313 2718/16/313 +f 2718/16/313 2730/17/313 2719/18/313 +f 2719/18/313 2728/19/313 2716/12/313 +f 2734/20/313 2732/21/313 2733/22/313 +f 2742/23/318 2739/24/318 2737/25/318 +f 2743/26/318 2737/25/318 2736/27/318 +f 2740/28/318 2736/27/318 2738/29/318 +f 2741/30/318 2738/29/318 2739/24/318 +f 2718/31/317 2737/32/317 2717/33/317 +f 2729/13/316 2743/26/316 2731/15/316 +f 2730/34/317 2741/35/317 2728/36/317 +f 2717/37/315 2739/38/315 2716/39/315 +f 2716/40/316 2738/41/316 2719/42/316 +f 2731/43/315 2740/44/315 2730/45/315 +f 2728/46/314 2742/47/314 2729/48/314 +f 2719/49/314 2736/50/314 2718/51/314 +f 2746/52/315 2751/53/315 2747/54/315 +f 2745/55/314 2748/56/314 2744/57/314 +f 2747/58/316 2749/59/316 2745/60/316 +f 2744/61/317 2750/62/317 2746/63/317 +f 2763/64/316 2765/65/316 2761/66/316 +f 2757/67/313 2758/68/313 2756/69/313 +f 2755/70/316 2757/67/316 2753/71/316 +f 2752/72/317 2758/73/317 2754/74/317 +f 2754/75/315 2759/76/315 2755/77/315 +f 2753/78/314 2756/79/314 2752/80/314 +f 2760/81/317 2766/82/317 2762/83/317 +f 2762/84/315 2767/85/315 2763/86/315 +f 2761/87/314 2764/88/314 2760/89/314 +f 2763/64/318 2760/90/318 2762/91/318 +f 2774/92/313 2772/93/313 2773/94/313 +f 2771/95/316 2774/92/316 2769/96/316 +f 2768/97/317 2772/98/317 2770/99/317 +f 2770/99/315 2775/100/315 2771/95/315 +f 2769/96/314 2773/101/314 2768/102/314 +f 2778/103/318 2776/104/318 2779/105/318 +f 2805/106/318 2807/107/318 2804/108/318 +f 2808/109/313 2810/110/313 2811/111/313 +f 2811/112/314 2805/113/314 2804/114/314 +f 2810/110/317 2806/115/317 2805/116/317 +f 2809/117/315 2807/107/315 2806/118/315 +f 2808/119/316 2804/120/316 2807/107/316 +f 2815/121/316 2819/122/316 2816/123/316 +f 2814/124/315 2816/125/315 2817/126/315 +f 2813/127/317 2817/128/317 2818/129/317 +f 2812/130/314 2818/131/314 2819/122/314 +f 2815/132/313 2813/133/313 2812/134/313 +f 2818/135/318 2816/136/318 2819/122/318 +f 2821/137/318 2823/138/318 2820/139/318 +f 2824/140/313 2826/141/313 2827/142/313 +f 2827/142/314 2821/143/314 2820/144/314 +f 2826/145/317 2822/146/317 2821/147/317 +f 2825/148/315 2823/149/315 2822/146/315 +f 2824/150/316 2820/151/316 2823/152/316 +f 2831/153/316 2835/154/316 2832/155/316 +f 2830/156/315 2832/157/315 2833/158/315 +f 2829/159/317 2833/160/317 2834/161/317 +f 2828/162/314 2834/161/314 2835/163/314 +f 2831/153/313 2829/164/313 2828/165/313 +f 2834/161/318 2832/166/318 2835/167/318 +f 2836/168/313 2838/169/313 2839/170/313 +f 2839/171/314 2778/103/314 2779/172/314 +f 2838/173/317 2777/174/317 2778/103/317 +f 2837/175/315 2776/176/315 2777/177/315 +f 2836/168/316 2779/178/316 2776/179/316 +f 2843/180/316 2847/181/316 2844/182/316 +f 2842/183/315 2844/184/315 2845/185/315 +f 2841/186/317 2845/185/317 2846/187/317 +f 2840/188/314 2846/189/314 2847/190/314 +f 2843/191/313 2841/192/313 2840/188/313 +f 2846/193/318 2844/194/318 2847/195/318 +f 2849/196/318 2851/197/318 2848/198/318 +f 2852/199/313 2854/200/313 2855/201/313 +f 2855/202/314 2849/203/314 2848/198/314 +f 2854/204/317 2850/205/317 2849/206/317 +f 2853/207/315 2851/208/315 2850/209/315 +f 2852/210/316 2848/198/316 2851/211/316 +f 2859/212/316 2863/213/316 2860/214/316 +f 2858/215/315 2860/214/315 2861/216/315 +f 2857/217/317 2861/218/317 2862/219/317 +f 2856/220/314 2862/221/314 2863/222/314 +f 2859/223/313 2857/217/313 2856/224/313 +f 2862/225/318 2860/214/318 2863/226/318 +f 2865/227/318 2866/228/318 2864/229/318 +f 2867/230/317 2870/231/317 2866/228/317 +f 2864/229/316 2869/232/316 2865/227/316 +f 2868/233/313 2871/234/313 2869/232/313 +f 2873/235/318 2874/236/318 2872/237/318 +f 2875/238/317 2878/239/317 2874/236/317 +f 2872/237/316 2877/240/316 2873/235/316 +f 2876/241/313 2879/242/313 2877/243/313 +f 2881/244/318 2882/245/318 2880/246/318 +f 2883/247/317 2886/248/317 2882/249/317 +f 2880/246/316 2885/250/316 2881/244/316 +f 2884/251/313 2887/252/313 2885/250/313 +f 2889/253/318 2890/254/318 2888/255/318 +f 2891/256/317 2894/257/317 2890/254/317 +f 2888/258/316 2893/259/316 2889/260/316 +f 2892/261/313 2895/262/313 2893/259/313 +f 2897/263/315 2898/264/315 2896/265/315 +f 2899/266/317 2902/267/317 2898/264/317 +f 2896/265/316 2901/268/316 2897/263/316 +f 2900/269/314 2903/270/314 2901/268/314 +f 2905/271/315 2906/272/315 2904/273/315 +f 2907/274/317 2910/275/317 2906/272/317 +f 2904/273/316 2909/276/316 2905/271/316 +f 2908/277/314 2911/278/314 2909/279/314 +f 2913/280/315 2914/281/315 2912/282/315 +f 2915/283/317 2918/284/317 2914/285/317 +f 2912/282/316 2917/286/316 2913/280/316 +f 2916/287/314 2919/288/314 2917/286/314 +f 2921/289/315 2922/290/315 2920/291/315 +f 2923/292/317 2926/293/317 2922/290/317 +f 2920/294/316 2925/295/316 2921/296/316 +f 2924/297/314 2927/298/314 2925/295/314 +f 2931/299/318 2928/300/318 2929/301/318 +f 2935/302/315 2930/303/315 2931/299/315 +f 2932/304/314 2929/301/314 2928/300/314 +f 2932/304/313 2935/305/313 2933/306/313 +f 2939/307/318 2936/308/318 2937/309/318 +f 2943/310/315 2938/311/315 2939/312/315 +f 2940/313/314 2937/309/314 2936/308/314 +f 2940/313/313 2943/310/313 2941/314/313 +f 2947/315/318 2944/316/318 2945/317/318 +f 2951/318/315 2946/319/315 2947/315/315 +f 2948/320/314 2945/317/314 2944/316/314 +f 2948/321/313 2951/318/313 2949/322/313 +f 2955/323/318 2952/324/318 2953/325/318 +f 2959/326/315 2954/327/315 2955/323/315 +f 2956/328/314 2953/329/314 2952/330/314 +f 2956/328/313 2959/326/313 2957/331/313 +f 2986/332/315 2991/333/315 2987/334/315 +f 2985/335/314 2988/336/314 2984/337/314 +f 2987/338/316 2989/339/316 2985/340/316 +f 2984/341/317 2990/342/317 2986/343/317 +f 3003/344/316 3005/345/316 3001/346/316 +f 2997/347/313 2998/348/313 2996/349/313 +f 2995/350/316 2997/347/316 2993/351/316 +f 2992/352/317 2998/353/317 2994/354/317 +f 2994/355/315 2999/356/315 2995/357/315 +f 2993/358/314 2996/359/314 2992/360/314 +f 3000/361/317 3006/362/317 3002/363/317 +f 3002/364/315 3007/365/315 3003/366/315 +f 3001/367/314 3004/368/314 3000/369/314 +f 3003/344/318 3000/370/318 3002/371/318 +f 3010/372/315 3015/373/315 3011/374/315 +f 3009/375/314 3012/376/314 3008/377/314 +f 3011/378/316 3013/379/316 3009/380/316 +f 3008/381/317 3014/382/317 3010/383/317 +f 3027/384/316 3029/385/316 3025/386/316 +f 3021/387/313 3022/388/313 3020/389/313 +f 3019/390/316 3021/387/316 3017/391/316 +f 3016/392/317 3022/393/317 3018/394/317 +f 3018/395/315 3023/396/315 3019/397/315 +f 3017/398/314 3020/399/314 3016/400/314 +f 3024/401/317 3030/402/317 3026/403/317 +f 3026/404/315 3031/405/315 3027/406/315 +f 3025/407/314 3028/408/314 3024/409/314 +f 3027/384/318 3024/410/318 3026/411/318 +f 3034/412/315 3039/413/315 3035/414/315 +f 3033/415/314 3036/416/314 3032/417/314 +f 3035/418/316 3037/419/316 3033/420/316 +f 3032/421/317 3038/422/317 3034/423/317 +f 3051/424/316 3053/425/316 3049/426/316 +f 3045/427/313 3046/428/313 3044/429/313 +f 3043/430/316 3045/427/316 3041/431/316 +f 3040/432/317 3046/433/317 3042/434/317 +f 3042/435/315 3047/436/315 3043/437/315 +f 3041/438/314 3044/439/314 3040/440/314 +f 3048/441/317 3054/442/317 3050/443/317 +f 3050/444/315 3055/445/315 3051/446/315 +f 3049/447/314 3052/448/314 3048/449/314 +f 3051/424/318 3048/450/318 3050/451/318 +f 2721/1/313 2723/6/313 2722/2/313 +f 2727/4/314 2721/1/314 2720/3/314 +f 2723/6/315 2725/452/315 2724/7/315 +f 2725/8/316 2723/6/316 2721/1/316 +f 2720/3/317 2722/2/317 2724/10/317 +f 2716/12/313 2728/19/313 2729/13/313 +f 2717/14/313 2729/13/313 2731/15/313 +f 2718/16/313 2731/15/313 2730/17/313 +f 2719/18/313 2730/17/313 2728/19/313 +f 2734/20/313 2735/453/313 2732/21/313 +f 2742/23/318 2741/30/318 2739/24/318 +f 2743/26/318 2742/23/318 2737/25/318 +f 2740/28/318 2743/26/318 2736/27/318 +f 2741/30/318 2740/28/318 2738/29/318 +f 2718/31/317 2736/454/317 2737/32/317 +f 2729/13/316 2742/23/316 2743/26/316 +f 2730/34/317 2740/455/317 2741/35/317 +f 2717/37/315 2737/456/315 2739/38/315 +f 2716/40/316 2739/457/316 2738/41/316 +f 2731/43/315 2743/458/315 2740/44/315 +f 2728/46/314 2741/459/314 2742/47/314 +f 2719/49/314 2738/460/314 2736/50/314 +f 2746/52/315 2750/461/315 2751/53/315 +f 2745/55/314 2749/462/314 2748/56/314 +f 2747/58/316 2751/463/316 2749/59/316 +f 2744/61/317 2748/464/317 2750/62/317 +f 2763/64/316 2767/465/316 2765/65/316 +f 2757/67/313 2759/466/313 2758/68/313 +f 2755/70/316 2759/466/316 2757/67/316 +f 2752/72/317 2756/467/317 2758/73/317 +f 2754/75/315 2758/468/315 2759/76/315 +f 2753/78/314 2757/469/314 2756/79/314 +f 2760/81/317 2764/470/317 2766/82/317 +f 2762/84/315 2766/471/315 2767/85/315 +f 2761/87/314 2765/472/314 2764/88/314 +f 2763/64/318 2761/66/318 2760/90/318 +f 2774/92/313 2775/100/313 2772/93/313 +f 2771/95/316 2775/100/316 2774/92/316 +f 2768/97/317 2773/473/317 2772/98/317 +f 2770/99/315 2772/98/315 2775/100/315 +f 2769/96/314 2774/92/314 2773/101/314 +f 2778/103/318 2777/474/318 2776/104/318 +f 2805/106/318 2806/475/318 2807/107/318 +f 2808/109/313 2809/476/313 2810/110/313 +f 2811/112/314 2810/110/314 2805/113/314 +f 2810/110/317 2809/477/317 2806/115/317 +f 2809/117/315 2808/478/315 2807/107/315 +f 2808/119/316 2811/479/316 2804/120/316 +f 2815/121/316 2812/480/316 2819/122/316 +f 2814/124/315 2815/481/315 2816/125/315 +f 2813/127/317 2814/124/317 2817/128/317 +f 2812/130/314 2813/482/314 2818/131/314 +f 2815/132/313 2814/124/313 2813/133/313 +f 2818/135/318 2817/483/318 2816/136/318 +f 2821/137/318 2822/146/318 2823/138/318 +f 2824/140/313 2825/484/313 2826/141/313 +f 2827/142/314 2826/485/314 2821/143/314 +f 2826/145/317 2825/486/317 2822/146/317 +f 2825/148/315 2824/487/315 2823/149/315 +f 2824/150/316 2827/142/316 2820/151/316 +f 2831/153/316 2828/488/316 2835/154/316 +f 2830/156/315 2831/153/315 2832/157/315 +f 2829/159/317 2830/489/317 2833/160/317 +f 2828/162/314 2829/490/314 2834/161/314 +f 2831/153/313 2830/491/313 2829/164/313 +f 2834/161/318 2833/492/318 2832/166/318 +f 2836/168/313 2837/493/313 2838/169/313 +f 2839/171/314 2838/494/314 2778/103/314 +f 2838/173/317 2837/495/317 2777/174/317 +f 2837/175/315 2836/168/315 2776/176/315 +f 2836/168/316 2839/496/316 2779/178/316 +f 2843/180/316 2840/188/316 2847/181/316 +f 2842/183/315 2843/497/315 2844/184/315 +f 2841/186/317 2842/498/317 2845/185/317 +f 2840/188/314 2841/499/314 2846/189/314 +f 2843/191/313 2842/500/313 2841/192/313 +f 2846/193/318 2845/185/318 2844/194/318 +f 2849/196/318 2850/501/318 2851/197/318 +f 2852/199/313 2853/207/313 2854/200/313 +f 2855/202/314 2854/502/314 2849/203/314 +f 2854/204/317 2853/207/317 2850/205/317 +f 2853/207/315 2852/503/315 2851/208/315 +f 2852/210/316 2855/504/316 2848/198/316 +f 2859/212/316 2856/505/316 2863/213/316 +f 2858/215/315 2859/506/315 2860/214/315 +f 2857/217/317 2858/507/317 2861/218/317 +f 2856/220/314 2857/217/314 2862/221/314 +f 2859/223/313 2858/508/313 2857/217/313 +f 2862/225/318 2861/509/318 2860/214/318 +f 2865/227/318 2867/230/318 2866/228/318 +f 2867/230/317 2871/510/317 2870/231/317 +f 2864/229/316 2868/233/316 2869/232/316 +f 2868/233/313 2870/511/313 2871/234/313 +f 2873/235/318 2875/238/318 2874/236/318 +f 2875/238/317 2879/242/317 2878/239/317 +f 2872/237/316 2876/512/316 2877/240/316 +f 2876/241/313 2878/239/313 2879/242/313 +f 2881/244/318 2883/513/318 2882/245/318 +f 2883/247/317 2887/252/317 2886/248/317 +f 2880/246/316 2884/251/316 2885/250/316 +f 2884/251/313 2886/248/313 2887/252/313 +f 2889/253/318 2891/256/318 2890/254/318 +f 2891/256/317 2895/262/317 2894/257/317 +f 2888/258/316 2892/261/316 2893/259/316 +f 2892/261/313 2894/257/313 2895/262/313 +f 2897/263/315 2899/266/315 2898/264/315 +f 2899/266/317 2903/514/317 2902/267/317 +f 2896/265/316 2900/269/316 2901/268/316 +f 2900/269/314 2902/515/314 2903/270/314 +f 2905/271/315 2907/274/315 2906/272/315 +f 2907/274/317 2911/278/317 2910/275/317 +f 2904/273/316 2908/516/316 2909/276/316 +f 2908/277/314 2910/275/314 2911/278/314 +f 2913/280/315 2915/517/315 2914/281/315 +f 2915/283/317 2919/288/317 2918/284/317 +f 2912/282/316 2916/287/316 2917/286/316 +f 2916/287/314 2918/284/314 2919/288/314 +f 2921/289/315 2923/292/315 2922/290/315 +f 2923/292/317 2927/298/317 2926/293/317 +f 2920/294/316 2924/297/316 2925/295/316 +f 2924/297/314 2926/293/314 2927/298/314 +f 2931/299/318 2930/303/318 2928/300/318 +f 2935/302/315 2934/518/315 2930/303/315 +f 2932/304/314 2933/306/314 2929/301/314 +f 2932/304/313 2934/519/313 2935/305/313 +f 2939/307/318 2938/520/318 2936/308/318 +f 2943/310/315 2942/521/315 2938/311/315 +f 2940/313/314 2941/314/314 2937/309/314 +f 2940/313/313 2942/521/313 2943/310/313 +f 2947/315/318 2946/319/318 2944/316/318 +f 2951/318/315 2950/522/315 2946/319/315 +f 2948/320/314 2949/523/314 2945/317/314 +f 2948/321/313 2950/522/313 2951/318/313 +f 2955/323/318 2954/327/318 2952/324/318 +f 2959/326/315 2958/524/315 2954/327/315 +f 2956/328/314 2957/331/314 2953/329/314 +f 2956/328/313 2958/524/313 2959/326/313 +f 2986/332/315 2990/525/315 2991/333/315 +f 2985/335/314 2989/526/314 2988/336/314 +f 2987/338/316 2991/527/316 2989/339/316 +f 2984/341/317 2988/528/317 2990/342/317 +f 3003/344/316 3007/529/316 3005/345/316 +f 2997/347/313 2999/530/313 2998/348/313 +f 2995/350/316 2999/530/316 2997/347/316 +f 2992/352/317 2996/531/317 2998/353/317 +f 2994/355/315 2998/532/315 2999/356/315 +f 2993/358/314 2997/533/314 2996/359/314 +f 3000/361/317 3004/534/317 3006/362/317 +f 3002/364/315 3006/535/315 3007/365/315 +f 3001/367/314 3005/536/314 3004/368/314 +f 3003/344/318 3001/346/318 3000/370/318 +f 3010/372/315 3014/537/315 3015/373/315 +f 3009/375/314 3013/538/314 3012/376/314 +f 3011/378/316 3015/539/316 3013/379/316 +f 3008/381/317 3012/540/317 3014/382/317 +f 3027/384/316 3031/541/316 3029/385/316 +f 3021/387/313 3023/542/313 3022/388/313 +f 3019/390/316 3023/542/316 3021/387/316 +f 3016/392/317 3020/543/317 3022/393/317 +f 3018/395/315 3022/544/315 3023/396/315 +f 3017/398/314 3021/545/314 3020/399/314 +f 3024/401/317 3028/546/317 3030/402/317 +f 3026/404/315 3030/547/315 3031/405/315 +f 3025/407/314 3029/548/314 3028/408/314 +f 3027/384/318 3025/386/318 3024/410/318 +f 3034/412/315 3038/549/315 3039/413/315 +f 3033/415/314 3037/550/314 3036/416/314 +f 3035/418/316 3039/551/316 3037/419/316 +f 3032/421/317 3036/552/317 3038/422/317 +f 3051/424/316 3055/553/316 3053/425/316 +f 3045/427/313 3047/554/313 3046/428/313 +f 3043/430/316 3047/554/316 3045/427/316 +f 3040/432/317 3044/555/317 3046/433/317 +f 3042/435/315 3046/556/315 3047/436/315 +f 3041/438/314 3045/557/314 3044/439/314 +f 3048/441/317 3052/558/317 3054/442/317 +f 3050/444/315 3054/559/315 3055/445/315 +f 3049/447/314 3053/560/314 3052/448/314 +f 3051/424/318 3049/426/318 3048/450/318 s 1 -f 2781//319 2782//320 2780//321 -f 2783//322 2784//323 2782//320 -f 2785//324 2786//325 2784//323 -f 2787//326 2788//327 2786//325 -f 2789//328 2790//329 2788//327 -f 2791//330 2792//331 2790//329 -f 2793//332 2794//333 2792//331 -f 2795//334 2796//335 2794//333 -f 2797//336 2798//337 2796//335 -f 2799//338 2800//339 2798//337 -f 2795//334 2968//340 2797//336 -f 2801//341 2802//342 2800//339 -f 2803//343 2780//321 2802//342 -f 2790//329 2978//344 2977//345 -f 2964//346 2962//347 2970//348 -f 2795//334 2966//349 2967//350 -f 2791//330 2966//349 2793//332 -f 2789//328 2965//351 2791//330 -f 2787//326 2964//346 2789//328 -f 2781//319 2971//352 2961//353 -f 2781//319 2960//354 2783//322 -f 2787//326 2962//347 2963//355 -f 2803//343 2970//348 2971//352 -f 2785//324 2960//354 2962//347 -f 2801//341 2969//356 2970//348 -f 2797//336 2969//356 2799//338 -f 2975//357 2979//358 2983//359 -f 2790//329 2976//360 2788//327 -f 2786//325 2976//360 2975//357 -f 2802//342 2972//361 2983//359 -f 2780//321 2973//362 2972//361 -f 2786//325 2974//363 2784//323 -f 2802//342 2982//364 2800//339 -f 2784//323 2973//362 2782//320 -f 2800//339 2981//365 2798//337 -f 2796//335 2981//365 2980//366 -f 2796//335 2979//358 2794//333 -f 2794//333 2978//344 2792//331 -f 2781//319 2783//322 2782//320 -f 2783//322 2785//324 2784//323 -f 2785//324 2787//326 2786//325 -f 2787//326 2789//328 2788//327 -f 2789//328 2791//330 2790//329 -f 2791//330 2793//332 2792//331 -f 2793//332 2795//334 2794//333 -f 2795//334 2797//336 2796//335 -f 2797//336 2799//338 2798//337 -f 2799//338 2801//341 2800//339 -f 2795//334 2967//350 2968//340 -f 2801//341 2803//343 2802//342 -f 2803//343 2781//319 2780//321 -f 2790//329 2792//331 2978//344 -f 2962//347 2960//354 2961//353 -f 2961//353 2971//352 2962//347 -f 2971//352 2970//348 2962//347 -f 2970//348 2969//356 2968//340 -f 2968//340 2967//350 2970//348 -f 2967//350 2966//349 2970//348 -f 2966//349 2965//351 2964//346 -f 2964//346 2963//355 2962//347 -f 2966//349 2964//346 2970//348 -f 2795//334 2793//332 2966//349 -f 2791//330 2965//351 2966//349 -f 2789//328 2964//346 2965//351 -f 2787//326 2963//355 2964//346 -f 2781//319 2803//343 2971//352 -f 2781//319 2961//353 2960//354 -f 2787//326 2785//324 2962//347 -f 2803//343 2801//341 2970//348 -f 2785//324 2783//322 2960//354 -f 2801//341 2799//338 2969//356 -f 2797//336 2968//340 2969//356 -f 2983//359 2972//361 2973//362 -f 2973//362 2974//363 2983//359 -f 2974//363 2975//357 2983//359 -f 2975//357 2976//360 2977//345 -f 2977//345 2978//344 2979//358 -f 2979//358 2980//366 2981//365 -f 2981//365 2982//364 2979//358 -f 2982//364 2983//359 2979//358 -f 2975//357 2977//345 2979//358 -f 2790//329 2977//345 2976//360 -f 2786//325 2788//327 2976//360 -f 2802//342 2780//321 2972//361 -f 2780//321 2782//320 2973//362 -f 2786//325 2975//357 2974//363 -f 2802//342 2983//359 2982//364 -f 2784//323 2974//363 2973//362 -f 2800//339 2982//364 2981//365 -f 2796//335 2798//337 2981//365 -f 2796//335 2980//366 2979//358 -f 2794//333 2979//358 2978//344 +f 2781/561/319 2782/562/320 2780/563/321 +f 2783/564/322 2784/565/323 2782/562/320 +f 2785/566/324 2786/567/325 2784/565/323 +f 2787/568/326 2788/569/327 2786/570/325 +f 2789/571/328 2790/572/329 2788/569/327 +f 2791/573/330 2792/574/331 2790/572/329 +f 2793/575/332 2794/576/333 2792/574/331 +f 2795/577/334 2796/578/335 2794/576/333 +f 2797/579/336 2798/580/337 2796/578/335 +f 2799/581/338 2800/582/339 2798/580/337 +f 2795/577/334 2968/583/340 2797/579/336 +f 2801/584/341 2802/585/342 2800/582/339 +f 2803/586/343 2780/563/321 2802/585/342 +f 2790/572/329 2978/587/344 2977/588/345 +f 2964/589/346 2962/590/347 2970/591/348 +f 2795/577/334 2966/592/349 2967/593/350 +f 2791/573/330 2966/594/349 2793/575/332 +f 2789/571/328 2965/595/351 2791/573/330 +f 2787/568/326 2964/596/346 2789/571/328 +f 2781/561/319 2971/597/352 2961/598/353 +f 2781/561/319 2960/599/354 2783/564/322 +f 2787/600/326 2962/601/347 2963/602/355 +f 2803/586/343 2970/603/348 2971/604/352 +f 2785/566/324 2960/605/354 2962/606/347 +f 2801/584/341 2969/607/356 2970/608/348 +f 2797/579/336 2969/609/356 2799/581/338 +f 2975/610/357 2979/611/358 2983/612/359 +f 2790/572/329 2976/613/360 2788/569/327 +f 2786/570/325 2976/614/360 2975/615/357 +f 2802/585/342 2972/616/361 2983/617/359 +f 2780/563/321 2973/618/362 2972/619/361 +f 2786/567/325 2974/620/363 2784/565/323 +f 2802/585/342 2982/621/364 2800/582/339 +f 2784/565/323 2973/622/362 2782/562/320 +f 2800/582/339 2981/623/365 2798/580/337 +f 2796/578/335 2981/624/365 2980/625/366 +f 2796/578/335 2979/626/358 2794/576/333 +f 2794/576/333 2978/627/344 2792/574/331 +f 2781/561/319 2783/564/322 2782/562/320 +f 2783/564/322 2785/566/324 2784/565/323 +f 2785/566/324 2787/600/326 2786/567/325 +f 2787/568/326 2789/571/328 2788/569/327 +f 2789/571/328 2791/573/330 2790/572/329 +f 2791/573/330 2793/575/332 2792/574/331 +f 2793/575/332 2795/577/334 2794/576/333 +f 2795/577/334 2797/579/336 2796/578/335 +f 2797/579/336 2799/581/338 2798/580/337 +f 2799/581/338 2801/584/341 2800/582/339 +f 2795/577/334 2967/628/350 2968/583/340 +f 2801/584/341 2803/586/343 2802/585/342 +f 2803/586/343 2781/561/319 2780/563/321 +f 2790/572/329 2792/574/331 2978/587/344 +f 2962/590/347 2960/629/354 2961/630/353 +f 2961/630/353 2971/631/352 2962/590/347 +f 2971/631/352 2970/591/348 2962/590/347 +f 2970/591/348 2969/632/356 2968/633/340 +f 2968/633/340 2967/634/350 2970/591/348 +f 2967/634/350 2966/635/349 2970/591/348 +f 2966/635/349 2965/636/351 2964/589/346 +f 2964/589/346 2963/637/355 2962/590/347 +f 2966/635/349 2964/589/346 2970/591/348 +f 2795/577/334 2793/575/332 2966/592/349 +f 2791/573/330 2965/638/351 2966/594/349 +f 2789/571/328 2964/639/346 2965/595/351 +f 2787/568/326 2963/640/355 2964/596/346 +f 2781/561/319 2803/586/343 2971/597/352 +f 2781/561/319 2961/641/353 2960/599/354 +f 2787/600/326 2785/566/324 2962/601/347 +f 2803/586/343 2801/584/341 2970/603/348 +f 2785/566/324 2783/564/322 2960/605/354 +f 2801/584/341 2799/581/338 2969/607/356 +f 2797/579/336 2968/642/340 2969/609/356 +f 2983/612/359 2972/643/361 2973/644/362 +f 2973/644/362 2974/645/363 2983/612/359 +f 2974/645/363 2975/610/357 2983/612/359 +f 2975/610/357 2976/646/360 2977/647/345 +f 2977/647/345 2978/648/344 2979/611/358 +f 2979/611/358 2980/649/366 2981/650/365 +f 2981/650/365 2982/651/364 2979/611/358 +f 2982/651/364 2983/612/359 2979/611/358 +f 2975/610/357 2977/647/345 2979/611/358 +f 2790/572/329 2977/652/345 2976/613/360 +f 2786/570/325 2788/569/327 2976/614/360 +f 2802/585/342 2780/563/321 2972/616/361 +f 2780/563/321 2782/562/320 2973/618/362 +f 2786/567/325 2975/653/357 2974/620/363 +f 2802/585/342 2983/654/359 2982/621/364 +f 2784/565/323 2974/655/363 2973/622/362 +f 2800/582/339 2982/656/364 2981/623/365 +f 2796/578/335 2798/580/337 2981/624/365 +f 2796/578/335 2980/657/366 2979/626/358 +f 2794/576/333 2979/658/358 2978/627/344 o V2_Rope v 0.000000 9.000000 1.750000 v 0.000000 8.875000 1.750000 @@ -7122,6 +7936,104 @@ v 0.312500 5.437500 0.187500 v 0.356694 5.419194 0.187500 v 0.375000 5.375000 0.187500 v 0.356694 5.330806 0.187500 +vt 0.408163 0.631579 +vt 0.438776 0.644737 +vt 0.408163 0.644737 +vt 0.520408 0.644737 +vt 0.551020 0.631579 +vt 0.551020 0.644737 +vt 0.438776 0.631579 +vt 0.520408 0.631579 +vt 0.816327 0.342105 +vt 0.821429 0.335526 +vt 0.821429 0.342105 +vt 0.806122 0.342105 +vt 0.811224 0.335526 +vt 0.811224 0.342105 +vt 0.795918 0.342105 +vt 0.801020 0.335526 +vt 0.801020 0.342105 +vt 0.836735 0.342105 +vt 0.831633 0.335526 +vt 0.836735 0.335526 +vt 0.816327 0.335526 +vt 0.806122 0.335526 +vt 0.836735 0.328947 +vt 0.816327 0.328947 +vt 0.801020 0.328947 +vt 0.806122 0.328947 +vt 0.821429 0.328947 +vt 0.811224 0.328947 +vt 0.795918 0.328947 +vt 0.826531 0.335526 +vt 0.831633 0.342105 +vt 0.831633 0.328947 +vt 0.826531 0.315789 +vt 0.831633 0.315789 +vt 0.836735 0.315789 +vt 0.826531 0.328947 +vt 0.816327 0.315789 +vt 0.801020 0.315789 +vt 0.806122 0.315789 +vt 0.821429 0.315789 +vt 0.811224 0.315789 +vt 0.826531 0.684211 +vt 0.826531 0.342105 +vt 0.816327 0.684211 +vt 0.806122 0.684211 +vt 0.795918 0.684211 +vt 0.831633 0.684211 +vt 0.821429 0.684211 +vt 0.811224 0.684211 +vt 0.801020 0.684211 +vt 0.806122 0.828947 +vt 0.801020 0.697368 +vt 0.806122 0.697368 +vt 0.816327 0.828947 +vt 0.811224 0.697368 +vt 0.816327 0.697368 +vt 0.821429 0.828947 +vt 0.821429 0.697368 +vt 0.831633 0.828947 +vt 0.826531 0.697368 +vt 0.831633 0.697368 +vt 0.801020 0.828947 +vt 0.795918 0.697368 +vt 0.811224 0.828947 +vt 0.826531 0.828947 +vt 0.836735 0.828947 +vt 0.836735 0.697368 +vt 0.821429 0.690789 +vt 0.811224 0.690789 +vt 0.801020 0.690789 +vt 0.831633 0.690789 +vt 0.826531 0.690789 +vt 0.816327 0.690789 +vt 0.806122 0.690789 +vt 0.806122 0.697368 +vt 0.801020 0.697368 +vt 0.826531 0.697368 +vt 0.816327 0.697368 +vt 0.811224 0.697368 +vt 0.821429 0.697368 +vt 0.795918 0.690789 +vt 0.836735 0.690789 +vt 0.831633 0.697368 +vt 0.836735 0.828947 +vt 0.831633 0.828947 +vt 0.826531 0.828947 +vt 0.795918 0.828947 +vt 0.795918 0.697368 +vt 0.816327 0.828947 +vt 0.806122 0.828947 +vt 0.821429 0.828947 +vt 0.811224 0.828947 +vt 0.801020 0.828947 +vt 0.795918 0.335526 +vt 0.795918 0.315789 +vt 0.836735 0.684211 +vt 0.795918 0.828947 +vt 0.836735 0.697368 vn 1.0000 0.0000 0.0000 vn -0.0473 -0.0196 0.9987 vn 0.4617 0.4617 0.7573 @@ -7177,133 +8089,133 @@ vn -0.6794 0.7194 0.1447 vn 0.6794 0.7194 0.1447 vn 0.7263 -0.6737 -0.1363 s off -f 2985//367 2988//367 2984//367 -f 2990//367 2987//367 2986//367 -f 2989//367 2990//367 2988//367 -f 2985//367 2989//367 2988//367 -f 2990//367 2991//367 2987//367 -f 2989//367 2991//367 2990//367 +f 3057/659/367 3060/660/367 3056/661/367 +f 3062/662/367 3059/663/367 3058/664/367 +f 3061/665/367 3062/662/367 3060/660/367 +f 3057/659/367 3061/665/367 3060/660/367 +f 3062/662/367 3063/666/367 3059/663/367 +f 3061/665/367 3063/666/367 3062/662/367 s 1 -f 2996//368 3005//369 2997//370 -f 2994//371 3003//372 2995//373 -f 2992//374 3001//375 2993//376 -f 2992//374 3006//377 3000//378 -f 2996//368 3003//372 3004//379 -f 2993//376 3002//380 2994//371 -f 3006//377 3007//381 3000//378 -f 3003//372 3011//382 3004//379 -f 3002//380 3008//383 3009//384 -f 3005//369 3011//382 3012//385 -f 3002//380 3010//386 3003//372 -f 3001//375 3007//381 3008//383 -f 2997//370 3005//369 2998//387 -f 3005//369 3012//385 2998//387 -f 2998//387 3006//377 2999//388 -f 3006//377 2998//387 3013//389 -f 3013//389 3014//390 3021//391 -f 3013//389 3015//392 3007//381 -f 3012//385 3014//390 2998//387 -f 3010//386 3019//393 3011//382 -f 3009//384 3016//394 3017//395 -f 3011//382 3020//396 3012//385 -f 3009//384 3018//397 3010//386 -f 3007//381 3016//394 3008//383 -f 2999//388 3028//398 2998//387 -f 2997//370 3026//399 2996//368 -f 2995//373 3024//400 2994//371 -f 2993//376 3022//394 2992//374 -f 2992//374 3029//401 2999//388 -f 2998//387 3027//402 2997//370 -f 2996//368 3025//403 2995//373 -f 2994//371 3023//404 2993//376 -f 3040//405 3033//380 3032//405 -f 3038//390 3031//406 3030//390 -f 3045//387 3030//390 3037//387 -f 3043//407 3036//367 3035//407 -f 3041//380 3034//395 3033//380 -f 3039//406 3032//405 3031//406 -f 3044//367 3037//387 3036//367 -f 3042//395 3035//407 3034//395 -f 3028//398 3050//408 3027//402 -f 3026//399 3048//409 3025//403 -f 3024//400 3046//410 3023//404 -f 3028//398 3052//411 3051//412 -f 3027//402 3049//396 3026//399 -f 3024//400 3048//409 3047//413 -f 3046//410 3054//414 3053//415 -f 3052//411 3058//416 3051//412 -f 3050//408 3056//417 3049//396 -f 3047//413 3055//418 3054//414 -f 3050//408 3058//416 3057//419 -f 3048//409 3056//417 3055//418 -f 3023//404 3046//410 3022//394 -f 3046//410 3053//415 3022//394 -f 3029//401 3022//394 3052//411 -f 3052//411 3022//394 3059//420 -f 3059//420 3060//395 3067//407 -f 3059//420 3066//367 3058//416 -f 3053//415 3060//395 3022//394 -f 3057//419 3064//390 3056//417 -f 3055//418 3062//405 3054//414 -f 3058//416 3065//387 3057//419 -f 3056//417 3063//406 3055//418 -f 3053//415 3062//405 3061//380 -f 2996//368 3004//379 3005//369 -f 2994//371 3002//380 3003//372 -f 2992//374 3000//378 3001//375 -f 2992//374 2999//388 3006//377 -f 2996//368 2995//373 3003//372 -f 2993//376 3001//375 3002//380 -f 3006//377 3013//389 3007//381 -f 3003//372 3010//386 3011//382 -f 3002//380 3001//375 3008//383 -f 3005//369 3004//379 3011//382 -f 3002//380 3009//384 3010//386 -f 3001//375 3000//378 3007//381 -f 3013//389 2998//387 3014//390 -f 3013//389 3021//391 3015//392 -f 3012//385 3020//396 3014//390 -f 3010//386 3018//397 3019//393 -f 3009//384 3008//383 3016//394 -f 3011//382 3019//393 3020//396 -f 3009//384 3017//395 3018//397 -f 3007//381 3015//392 3016//394 -f 2999//388 3029//401 3028//398 -f 2997//370 3027//402 3026//399 -f 2995//373 3025//403 3024//400 -f 2993//376 3023//404 3022//394 -f 2992//374 3022//394 3029//401 -f 2998//387 3028//398 3027//402 -f 2996//368 3026//399 3025//403 -f 2994//371 3024//400 3023//404 -f 3040//405 3041//380 3033//380 -f 3038//390 3039//406 3031//406 -f 3045//387 3038//390 3030//390 -f 3043//407 3044//367 3036//367 -f 3041//380 3042//395 3034//395 -f 3039//406 3040//405 3032//405 -f 3044//367 3045//387 3037//387 -f 3042//395 3043//407 3035//407 -f 3028//398 3051//412 3050//408 -f 3026//399 3049//396 3048//409 -f 3024//400 3047//413 3046//410 -f 3028//398 3029//401 3052//411 -f 3027//402 3050//408 3049//396 -f 3024//400 3025//403 3048//409 -f 3046//410 3047//413 3054//414 -f 3052//411 3059//420 3058//416 -f 3050//408 3057//419 3056//417 -f 3047//413 3048//409 3055//418 -f 3050//408 3051//412 3058//416 -f 3048//409 3049//396 3056//417 -f 3059//420 3022//394 3060//395 -f 3059//420 3067//407 3066//367 -f 3053//415 3061//380 3060//395 -f 3057//419 3065//387 3064//390 -f 3055//418 3063//406 3062//405 -f 3058//416 3066//367 3065//387 -f 3056//417 3064//390 3063//406 -f 3053//415 3054//414 3062//405 +f 3068/667/368 3077/668/369 3069/669/370 +f 3066/670/371 3075/671/372 3067/672/373 +f 3064/673/374 3073/674/375 3065/675/376 +f 3064/676/374 3078/677/377 3072/678/378 +f 3068/667/368 3075/671/372 3076/679/379 +f 3065/675/376 3074/680/380 3066/670/371 +f 3078/677/377 3079/681/381 3072/678/378 +f 3075/671/372 3083/682/382 3076/679/379 +f 3074/680/380 3080/683/383 3081/684/384 +f 3077/668/369 3083/682/382 3084/685/385 +f 3074/680/380 3082/686/386 3075/671/372 +f 3073/674/375 3079/687/381 3080/683/383 +f 3069/669/370 3077/668/369 3070/688/387 +f 3077/668/369 3084/685/385 3070/688/387 +f 3070/688/387 3078/677/377 3071/689/388 +f 3078/677/377 3070/688/387 3085/690/389 +f 3085/690/389 3086/691/390 3093/692/391 +f 3085/690/389 3087/693/392 3079/681/381 +f 3084/685/385 3086/691/390 3070/694/387 +f 3082/686/386 3091/695/393 3083/682/382 +f 3081/684/384 3088/696/394 3089/697/395 +f 3083/682/382 3092/698/396 3084/685/385 +f 3081/684/384 3090/699/397 3082/686/386 +f 3079/687/381 3088/696/394 3080/683/383 +f 3071/689/388 3100/700/398 3070/701/387 +f 3069/669/370 3098/702/399 3068/667/368 +f 3067/672/373 3096/703/400 3066/670/371 +f 3065/675/376 3094/704/394 3064/673/374 +f 3064/676/374 3101/705/401 3071/689/388 +f 3070/701/387 3099/706/402 3069/669/370 +f 3068/667/368 3097/707/403 3067/672/373 +f 3066/670/371 3095/708/404 3065/675/376 +f 3112/709/405 3105/710/380 3104/711/405 +f 3110/712/390 3103/713/406 3102/714/390 +f 3117/715/387 3102/714/390 3109/716/387 +f 3115/717/407 3108/718/367 3107/719/407 +f 3113/720/380 3106/721/395 3105/710/380 +f 3111/722/406 3104/711/405 3103/713/406 +f 3116/723/367 3109/716/387 3108/718/367 +f 3114/724/395 3107/719/407 3106/725/395 +f 3100/700/398 3122/726/408 3099/706/402 +f 3098/702/399 3120/727/409 3097/707/403 +f 3096/703/400 3118/728/410 3095/708/404 +f 3100/700/398 3124/729/411 3123/730/412 +f 3099/706/402 3121/731/396 3098/702/399 +f 3096/703/400 3120/727/409 3119/732/413 +f 3118/728/410 3126/733/414 3125/734/415 +f 3124/729/411 3130/735/416 3123/730/412 +f 3122/726/408 3128/736/417 3121/731/396 +f 3119/732/413 3127/737/418 3126/733/414 +f 3122/726/408 3130/735/416 3129/738/419 +f 3120/727/409 3128/736/417 3127/737/418 +f 3095/708/404 3118/728/410 3094/739/394 +f 3118/728/410 3125/734/415 3094/739/394 +f 3101/705/401 3094/740/394 3124/729/411 +f 3124/729/411 3094/740/394 3131/741/420 +f 3131/741/420 3132/742/395 3139/743/407 +f 3131/741/420 3138/744/367 3130/735/416 +f 3125/734/415 3132/745/395 3094/746/394 +f 3129/738/419 3136/747/390 3128/736/417 +f 3127/737/418 3134/748/405 3126/733/414 +f 3130/735/416 3137/749/387 3129/738/419 +f 3128/736/417 3135/750/406 3127/737/418 +f 3125/734/415 3134/748/405 3133/751/380 +f 3068/667/368 3076/679/379 3077/668/369 +f 3066/670/371 3074/680/380 3075/671/372 +f 3064/673/374 3072/752/378 3073/674/375 +f 3064/676/374 3071/689/388 3078/677/377 +f 3068/667/368 3067/672/373 3075/671/372 +f 3065/675/376 3073/674/375 3074/680/380 +f 3078/677/377 3085/690/389 3079/681/381 +f 3075/671/372 3082/686/386 3083/682/382 +f 3074/680/380 3073/674/375 3080/683/383 +f 3077/668/369 3076/679/379 3083/682/382 +f 3074/680/380 3081/684/384 3082/686/386 +f 3073/674/375 3072/752/378 3079/687/381 +f 3085/690/389 3070/694/387 3086/691/390 +f 3085/690/389 3093/692/391 3087/693/392 +f 3084/685/385 3092/698/396 3086/691/390 +f 3082/686/386 3090/699/397 3091/695/393 +f 3081/684/384 3080/683/383 3088/696/394 +f 3083/682/382 3091/695/393 3092/698/396 +f 3081/684/384 3089/697/395 3090/699/397 +f 3079/687/381 3087/753/392 3088/696/394 +f 3071/689/388 3101/705/401 3100/700/398 +f 3069/669/370 3099/706/402 3098/702/399 +f 3067/672/373 3097/707/403 3096/703/400 +f 3065/675/376 3095/708/404 3094/704/394 +f 3064/676/374 3094/754/394 3101/705/401 +f 3070/701/387 3100/700/398 3099/706/402 +f 3068/667/368 3098/702/399 3097/707/403 +f 3066/670/371 3096/703/400 3095/708/404 +f 3112/709/405 3113/720/380 3105/710/380 +f 3110/712/390 3111/722/406 3103/713/406 +f 3117/715/387 3110/712/390 3102/714/390 +f 3115/717/407 3116/723/367 3108/718/367 +f 3113/720/380 3114/755/395 3106/721/395 +f 3111/722/406 3112/709/405 3104/711/405 +f 3116/723/367 3117/715/387 3109/716/387 +f 3114/724/395 3115/717/407 3107/719/407 +f 3100/700/398 3123/730/412 3122/726/408 +f 3098/702/399 3121/731/396 3120/727/409 +f 3096/703/400 3119/732/413 3118/728/410 +f 3100/700/398 3101/705/401 3124/729/411 +f 3099/706/402 3122/726/408 3121/731/396 +f 3096/703/400 3097/707/403 3120/727/409 +f 3118/728/410 3119/732/413 3126/733/414 +f 3124/729/411 3131/741/420 3130/735/416 +f 3122/726/408 3129/738/419 3128/736/417 +f 3119/732/413 3120/727/409 3127/737/418 +f 3122/726/408 3123/730/412 3130/735/416 +f 3120/727/409 3121/731/396 3128/736/417 +f 3131/741/420 3094/756/394 3132/742/395 +f 3131/741/420 3139/743/407 3138/744/367 +f 3125/734/415 3133/751/380 3132/745/395 +f 3129/738/419 3137/749/387 3136/747/390 +f 3127/737/418 3135/750/406 3134/748/405 +f 3130/735/416 3138/744/367 3137/749/387 +f 3128/736/417 3136/747/390 3135/750/406 +f 3125/734/415 3126/733/414 3134/748/405 o V2_Pivot v 0.500000 1.250000 -1.625000 v 0.750000 1.250000 -1.625000 @@ -7337,48 +8249,92 @@ v -0.687500 3.750000 -1.812500 v -0.687500 3.750000 -1.687500 v -0.562500 3.750000 -1.687500 v -0.562500 3.750000 -1.812500 +vt 0.836735 0.184211 +vt 0.857143 0.157895 +vt 0.857143 0.184211 +vt 0.918367 -0.000000 +vt 0.897959 0.157895 +vt 0.897959 -0.000000 +vt 0.877551 -0.000000 +vt 0.857143 -0.000000 +vt 0.836735 0.157895 +vt 0.836735 -0.000000 +vt 0.877551 0.157895 +vt 0.836735 0.184211 +vt 0.857143 0.157895 +vt 0.857143 0.184211 +vt 0.918367 -0.000000 +vt 0.897959 0.157895 +vt 0.897959 -0.000000 +vt 0.877551 -0.000000 +vt 0.857143 -0.000000 +vt 0.836735 0.157895 +vt 0.836735 -0.000000 +vt 0.877551 0.157895 +vt 0.897959 0.157895 +vt 0.887755 0.263158 +vt 0.887755 0.157895 +vt 0.877551 0.157895 +vt 0.867347 0.263158 +vt 0.867347 0.157895 +vt 0.857143 0.263158 +vt 0.857143 0.157895 +vt 0.877551 0.263158 +vt 0.897959 0.157895 +vt 0.887755 0.263158 +vt 0.887755 0.157895 +vt 0.877551 0.157895 +vt 0.867347 0.263158 +vt 0.867347 0.157895 +vt 0.857143 0.263158 +vt 0.857143 0.157895 +vt 0.877551 0.263158 +vt 0.918367 0.157895 +vt 0.918367 0.157895 +vt 0.897959 0.263158 +vt 0.897959 0.263158 vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 3074//421 3072//421 3073//421 -f 3071//422 3074//422 3069//422 -f 3068//423 3072//423 3070//423 -f 3070//424 3075//424 3071//424 -f 3069//425 3073//425 3068//425 -f 3082//421 3080//421 3081//421 -f 3079//422 3082//422 3077//422 -f 3076//423 3080//423 3078//423 -f 3078//424 3083//424 3079//424 -f 3077//425 3081//425 3076//425 -f 3087//422 3090//422 3085//422 -f 3084//423 3088//423 3086//423 -f 3086//424 3091//424 3087//424 -f 3085//425 3089//425 3084//425 -f 3095//422 3098//422 3093//422 -f 3092//423 3096//423 3094//423 -f 3094//424 3099//424 3095//424 -f 3093//425 3097//425 3092//425 -f 3074//421 3075//421 3072//421 -f 3071//422 3075//422 3074//422 -f 3068//423 3073//423 3072//423 -f 3070//424 3072//424 3075//424 -f 3069//425 3074//425 3073//425 -f 3082//421 3083//421 3080//421 -f 3079//422 3083//422 3082//422 -f 3076//423 3081//423 3080//423 -f 3078//424 3080//424 3083//424 -f 3077//425 3082//425 3081//425 -f 3087//422 3091//422 3090//422 -f 3084//423 3089//423 3088//423 -f 3086//424 3088//424 3091//424 -f 3085//425 3090//425 3089//425 -f 3095//422 3099//422 3098//422 -f 3092//423 3097//423 3096//423 -f 3094//424 3096//424 3099//424 -f 3093//425 3098//425 3097//425 +f 3146/757/421 3144/758/421 3145/759/421 +f 3143/760/422 3146/761/422 3141/762/422 +f 3140/763/423 3144/758/423 3142/764/423 +f 3142/764/424 3147/765/424 3143/766/424 +f 3141/762/425 3145/767/425 3140/763/425 +f 3154/768/421 3152/769/421 3153/770/421 +f 3151/771/422 3154/772/422 3149/773/422 +f 3148/774/423 3152/769/423 3150/775/423 +f 3150/775/424 3155/776/424 3151/777/424 +f 3149/773/425 3153/778/425 3148/774/425 +f 3159/779/422 3162/780/422 3157/781/422 +f 3156/782/423 3160/783/423 3158/784/423 +f 3158/784/424 3163/785/424 3159/786/424 +f 3157/781/425 3161/787/425 3156/782/425 +f 3167/788/422 3170/789/422 3165/790/422 +f 3164/791/423 3168/792/423 3166/793/423 +f 3166/793/424 3171/794/424 3167/795/424 +f 3165/790/425 3169/796/425 3164/791/425 +f 3146/757/421 3147/765/421 3144/758/421 +f 3143/760/422 3147/797/422 3146/761/422 +f 3140/763/423 3145/767/423 3144/758/423 +f 3142/764/424 3144/758/424 3147/765/424 +f 3141/762/425 3146/761/425 3145/767/425 +f 3154/768/421 3155/776/421 3152/769/421 +f 3151/771/422 3155/798/422 3154/772/422 +f 3148/774/423 3153/778/423 3152/769/423 +f 3150/775/424 3152/769/424 3155/776/424 +f 3149/773/425 3154/772/425 3153/778/425 +f 3159/779/422 3163/799/422 3162/780/422 +f 3156/782/423 3161/787/423 3160/783/423 +f 3158/784/424 3160/783/424 3163/785/424 +f 3157/781/425 3162/780/425 3161/787/425 +f 3167/788/422 3171/800/422 3170/789/422 +f 3164/791/423 3169/796/423 3168/792/423 +f 3166/793/424 3168/792/424 3171/794/424 +f 3165/790/425 3170/789/425 3169/796/425 o V2_Erector v 0.500000 2.750000 -1.875000 v 0.500000 2.750000 -1.625000 @@ -7412,22 +8368,14 @@ v -0.750000 7.750000 -0.125000 v -0.750000 7.750000 0.125000 v -0.500000 7.750000 0.125000 v -0.500000 7.750000 -0.125000 -v 0.500000 7.250000 -0.125000 -v 0.750000 7.250000 -0.125000 -v -0.750000 7.250000 -0.125000 -v -0.500000 7.250000 -0.125000 -v 0.250000 7.250000 -0.375000 -v -0.250000 7.250000 -0.375000 -v 0.250000 7.250000 -0.625000 v -0.250000 7.250000 -0.625000 -v 0.500000 7.000000 -0.125000 -v 0.750000 7.000000 -0.125000 -v -0.750000 7.000000 -0.125000 -v -0.500000 7.000000 -0.125000 -v 0.250000 7.000000 -0.375000 -v -0.250000 7.000000 -0.375000 -v 0.250000 7.000000 -0.625000 -v -0.250000 7.000000 -0.625000 +v 0.250000 7.250000 -0.625000 +v -0.250000 7.250000 -0.375000 +v 0.250000 7.250000 -0.375000 +v -0.500000 7.250000 -0.125000 +v -0.750000 7.250000 -0.125000 +v 0.750000 7.250000 -0.125000 +v 0.500000 7.250000 -0.125000 v 0.500000 5.000000 -0.125000 v 0.750000 5.000000 -0.125000 v -0.750000 5.000000 -0.125000 @@ -7492,30 +8440,230 @@ v -0.750000 6.125000 -1.625000 v -0.500000 6.125000 -1.625000 v -0.750000 5.875000 -1.625000 v -0.500000 5.875000 -1.625000 -v 0.500000 7.375000 -1.750000 -v 0.500000 7.125000 -1.750000 -v -0.500000 7.375000 -1.750000 -v -0.500000 7.125000 -1.750000 -v -0.500000 6.375000 -1.750000 -v -0.500000 6.125000 -1.750000 -v 0.500000 6.375000 -1.750000 -v 0.500000 6.125000 -1.750000 -v 0.500000 5.875000 -1.750000 -v 0.500000 5.625000 -1.750000 -v -0.500000 5.875000 -1.750000 -v -0.500000 5.625000 -1.750000 -v -0.500000 4.875000 -1.750000 -v -0.500000 4.625000 -1.750000 -v 0.500000 4.875000 -1.750000 -v 0.500000 4.625000 -1.750000 -v 0.500000 4.375000 -1.750000 -v 0.500000 4.125000 -1.750000 -v -0.500000 4.375000 -1.750000 -v -0.500000 4.125000 -1.750000 -v -0.500000 3.375000 -1.750000 -v -0.500000 3.125000 -1.750000 -v 0.500000 3.375000 -1.750000 -v 0.500000 3.125000 -1.750000 +v 0.500000 7.375000 -1.812500 +v 0.500000 7.125000 -1.812500 +v -0.500000 7.375000 -1.687500 +v -0.500000 7.125000 -1.687500 +v -0.500000 6.375000 -1.812500 +v -0.500000 6.125000 -1.812500 +v 0.500000 6.375000 -1.687500 +v 0.500000 6.125000 -1.687500 +v 0.500000 5.875000 -1.812500 +v 0.500000 5.625000 -1.812500 +v -0.500000 5.875000 -1.687500 +v -0.500000 5.625000 -1.687500 +v -0.500000 4.875000 -1.812500 +v -0.500000 4.625000 -1.812500 +v 0.500000 4.875000 -1.687500 +v 0.500000 4.625000 -1.687500 +v 0.500000 4.375000 -1.812500 +v 0.500000 4.125000 -1.812500 +v -0.500000 4.375000 -1.687500 +v -0.500000 4.125000 -1.687500 +v -0.500000 3.375000 -1.812500 +v -0.500000 3.125000 -1.812500 +v 0.500000 3.375000 -1.687500 +v 0.500000 3.125000 -1.687500 +v 0.500000 7.000000 -0.125000 +v 0.750000 7.000000 -0.125000 +v -0.750000 7.000000 -0.125000 +v -0.500000 7.000000 -0.125000 +v 0.250000 7.000000 -0.375000 +v -0.250000 7.000000 -0.375000 +v 0.250000 7.000000 -0.625000 +v -0.250000 7.000000 -0.625000 +vt 0.918367 0.421053 +vt 0.938776 0.394737 +vt 0.938776 0.421053 +vt 0.918367 0.421053 +vt 0.938776 0.394737 +vt 0.938776 0.421053 +vt 0.938776 0.026316 +vt 0.918367 -0.000000 +vt 0.938776 -0.000000 +vt 0.938776 0.026316 +vt 0.918367 -0.000000 +vt 0.938776 -0.000000 +vt 0.857143 0.263158 +vt 0.836735 0.236842 +vt 0.857143 0.236842 +vt 0.857143 0.263158 +vt 0.836735 0.236842 +vt 0.857143 0.236842 +vt 0.836735 0.815789 +vt 0.857143 0.789474 +vt 0.857143 0.815789 +vt 0.836735 0.815789 +vt 0.857143 0.789474 +vt 0.857143 0.815789 +vt 0.918367 0.263158 +vt 0.897959 0.789474 +vt 0.897959 0.263158 +vt 0.877551 0.263158 +vt 0.918367 0.263158 +vt 0.897959 0.789474 +vt 0.897959 0.263158 +vt 0.877551 0.263158 +vt 0.836735 0.789474 +vt 0.836735 0.263158 +vt 0.877551 0.789474 +vt 0.836735 0.789474 +vt 0.836735 0.263158 +vt 0.877551 0.789474 +vt 1.000000 0.026316 +vt 0.979592 0.394737 +vt 0.979592 0.026316 +vt 0.959184 0.026316 +vt 1.000000 0.026316 +vt 0.979592 0.394737 +vt 0.979592 0.026316 +vt 0.959184 0.026316 +vt 0.918367 0.394737 +vt 0.918367 0.026316 +vt 0.959184 0.394737 +vt 0.918367 0.394737 +vt 0.918367 0.026316 +vt 0.959184 0.394737 +vt 0.653061 0.763158 +vt 0.632653 0.710526 +vt 0.673469 0.763158 +vt 0.551020 0.763158 +vt 0.591837 0.736842 +vt 0.571429 0.763158 +vt 0.591837 0.710526 +vt 0.632653 0.710526 +vt 0.591837 0.736842 +vt 0.591837 0.710526 +vt 0.551020 0.763158 +vt 0.571429 0.763158 +vt 0.653061 0.763158 +vt 0.673469 0.763158 +vt 0.632653 0.763158 +vt 0.591837 0.789474 +vt 0.591837 0.763158 +vt 0.673469 0.684211 +vt 0.673469 0.710526 +vt 0.571429 0.789474 +vt 0.632653 0.684211 +vt 0.632653 0.789474 +vt 0.551020 0.710526 +vt 0.591149 0.684899 +vt 0.551020 0.631579 +vt 0.591837 0.657895 +vt 0.632653 0.657895 +vt 0.653061 0.631579 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.605263 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.605263 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.605263 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 0.918367 0.578947 +vt 0.632653 0.763158 +vt 0.591837 0.789474 +vt 0.591837 0.763158 +vt 0.673469 0.684211 +vt 0.673469 0.710526 +vt 0.571429 0.789474 +vt 0.632653 0.684211 +vt 0.632653 0.789474 +vt 0.551020 0.710526 +vt 0.591149 0.684899 +vt 0.551020 0.631579 +vt 0.591837 0.657895 +vt 0.632653 0.657895 +vt 0.653061 0.631579 +vt 0.918367 0.789474 +vt 0.918367 0.789474 +vt 1.000000 0.394737 +vt 1.000000 0.394737 +vt 0.632653 0.736842 +vt 0.632653 0.736842 +vt 0.653061 0.789474 +vt 0.551020 0.684211 +vt 0.571429 0.631579 +vt 0.673469 0.631579 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 1.000000 0.578947 +vt 1.000000 0.605263 +vt 1.000000 0.578947 +vt 1.000000 0.605263 +vt 1.000000 0.578947 +vt 1.000000 0.605263 +vt 0.653061 0.789474 +vt 0.551020 0.684211 +vt 0.571429 0.631579 +vt 0.673469 0.631579 vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 vn 1.0000 0.0000 0.0000 @@ -7527,162 +8675,162 @@ vn -0.7071 0.0000 0.7071 vn 0.7071 0.0000 0.7071 vn 0.7071 0.0000 -0.7071 s off -f 3130//426 3128//426 3129//426 -f 3126//426 3124//426 3125//426 -f 3120//427 3122//427 3121//427 -f 3116//427 3118//427 3117//427 -f 3100//427 3102//427 3101//427 -f 3104//427 3106//427 3105//427 -f 3110//426 3108//426 3109//426 -f 3114//426 3112//426 3113//426 -f 3107//428 3114//428 3106//428 -f 3105//429 3112//429 3104//429 -f 3103//428 3110//428 3102//428 -f 3101//429 3108//429 3100//429 -f 3104//430 3115//430 3107//430 -f 3106//431 3113//431 3105//431 -f 3100//430 3111//430 3103//430 -f 3102//431 3109//431 3101//431 -f 3123//428 3130//428 3122//428 -f 3121//429 3128//429 3120//429 -f 3119//428 3126//428 3118//428 -f 3117//429 3124//429 3116//429 -f 3120//430 3131//430 3123//430 -f 3122//431 3129//431 3121//431 -f 3116//430 3127//430 3119//430 -f 3118//431 3125//431 3117//431 -f 3139//426 3136//426 3138//426 -f 3133//426 3136//426 3132//426 -f 3135//426 3139//426 3134//426 -f 3137//431 3144//431 3136//431 -f 3139//432 3142//432 3134//432 -f 3136//433 3140//433 3132//433 -f 3138//430 3147//430 3139//430 -f 3135//434 3145//434 3137//434 -f 3133//435 3146//435 3138//435 -f 3141//427 3144//427 3146//427 -f 3147//427 3144//427 3145//427 -f 3143//427 3147//427 3145//427 -f 3155//426 3152//426 3154//426 -f 3149//426 3152//426 3148//426 -f 3151//426 3155//426 3150//426 -f 3153//431 3160//431 3152//431 -f 3155//432 3158//432 3150//432 -f 3152//433 3156//433 3148//433 -f 3154//430 3163//430 3155//430 -f 3151//434 3161//434 3153//434 -f 3149//435 3162//435 3154//435 -f 3157//427 3160//427 3162//427 -f 3163//427 3160//427 3161//427 -f 3159//427 3163//427 3161//427 -f 3171//428 3165//428 3167//428 -f 3170//427 3167//427 3166//427 -f 3168//429 3166//429 3164//429 -f 3165//426 3168//426 3164//426 -f 3179//428 3173//428 3175//428 -f 3178//427 3175//427 3174//427 -f 3176//429 3174//429 3172//429 -f 3173//426 3176//426 3172//426 -f 3187//428 3181//428 3183//428 -f 3186//427 3183//427 3182//427 -f 3184//429 3182//429 3180//429 -f 3181//426 3184//426 3180//426 -f 3195//428 3189//428 3191//428 -f 3194//427 3191//427 3190//427 -f 3192//429 3190//429 3188//429 -f 3189//426 3192//426 3188//426 -f 3203//428 3197//428 3199//428 -f 3202//427 3199//427 3198//427 -f 3200//429 3198//429 3196//429 -f 3197//426 3200//426 3196//426 -f 3211//428 3205//428 3207//428 -f 3210//427 3207//427 3206//427 -f 3208//429 3206//429 3204//429 -f 3205//426 3208//426 3204//426 -f 3213//430 3216//430 3212//430 -f 3215//430 3218//430 3219//430 -f 3221//430 3224//430 3220//430 -f 3223//430 3226//430 3227//430 -f 3229//430 3232//430 3228//430 -f 3231//430 3234//430 3235//430 -f 3130//426 3131//426 3128//426 -f 3126//426 3127//426 3124//426 -f 3120//427 3123//427 3122//427 -f 3116//427 3119//427 3118//427 -f 3100//427 3103//427 3102//427 -f 3104//427 3107//427 3106//427 -f 3110//426 3111//426 3108//426 -f 3114//426 3115//426 3112//426 -f 3107//428 3115//428 3114//428 -f 3105//429 3113//429 3112//429 -f 3103//428 3111//428 3110//428 -f 3101//429 3109//429 3108//429 -f 3104//430 3112//430 3115//430 -f 3106//431 3114//431 3113//431 -f 3100//430 3108//430 3111//430 -f 3102//431 3110//431 3109//431 -f 3123//428 3131//428 3130//428 -f 3121//429 3129//429 3128//429 -f 3119//428 3127//428 3126//428 -f 3117//429 3125//429 3124//429 -f 3120//430 3128//430 3131//430 -f 3122//431 3130//431 3129//431 -f 3116//430 3124//430 3127//430 -f 3118//431 3126//431 3125//431 -f 3139//426 3137//426 3136//426 -f 3133//426 3138//426 3136//426 -f 3135//426 3137//426 3139//426 -f 3137//431 3145//431 3144//431 -f 3139//432 3147//432 3142//432 -f 3136//433 3144//433 3140//433 -f 3138//430 3146//430 3147//430 -f 3135//434 3143//434 3145//434 -f 3133//435 3141//435 3146//435 -f 3141//427 3140//427 3144//427 -f 3147//427 3146//427 3144//427 -f 3143//427 3142//427 3147//427 -f 3155//426 3153//426 3152//426 -f 3149//426 3154//426 3152//426 -f 3151//426 3153//426 3155//426 -f 3153//431 3161//431 3160//431 -f 3155//432 3163//432 3158//432 -f 3152//433 3160//433 3156//433 -f 3154//430 3162//430 3163//430 -f 3151//434 3159//434 3161//434 -f 3149//435 3157//435 3162//435 -f 3157//427 3156//427 3160//427 -f 3163//427 3162//427 3160//427 -f 3159//427 3158//427 3163//427 -f 3171//428 3169//428 3165//428 -f 3170//427 3171//427 3167//427 -f 3168//429 3170//429 3166//429 -f 3165//426 3169//426 3168//426 -f 3179//428 3177//428 3173//428 -f 3178//427 3179//427 3175//427 -f 3176//429 3178//429 3174//429 -f 3173//426 3177//426 3176//426 -f 3187//428 3185//428 3181//428 -f 3186//427 3187//427 3183//427 -f 3184//429 3186//429 3182//429 -f 3181//426 3185//426 3184//426 -f 3195//428 3193//428 3189//428 -f 3194//427 3195//427 3191//427 -f 3192//429 3194//429 3190//429 -f 3189//426 3193//426 3192//426 -f 3203//428 3201//428 3197//428 -f 3202//427 3203//427 3199//427 -f 3200//429 3202//429 3198//429 -f 3197//426 3201//426 3200//426 -f 3211//428 3209//428 3205//428 -f 3210//427 3211//427 3207//427 -f 3208//429 3210//429 3206//429 -f 3205//426 3209//426 3208//426 -f 3213//430 3217//430 3216//430 -f 3215//430 3214//430 3218//430 -f 3221//430 3225//430 3224//430 -f 3223//430 3222//430 3226//430 -f 3229//430 3233//430 3232//430 -f 3231//430 3230//430 3234//430 +f 3202/801/426 3200/802/426 3201/803/426 +f 3198/804/426 3196/805/426 3197/806/426 +f 3192/807/427 3194/808/427 3193/809/427 +f 3188/810/427 3190/811/427 3189/812/427 +f 3172/813/427 3174/814/427 3173/815/427 +f 3176/816/427 3178/817/427 3177/818/427 +f 3182/819/426 3180/820/426 3181/821/426 +f 3186/822/426 3184/823/426 3185/824/426 +f 3179/825/428 3186/826/428 3178/827/428 +f 3177/828/429 3184/823/429 3176/816/429 +f 3175/829/428 3182/830/428 3174/831/428 +f 3173/832/429 3180/820/429 3172/813/429 +f 3176/816/430 3187/833/430 3179/834/430 +f 3178/827/431 3185/835/431 3177/828/431 +f 3172/813/430 3183/836/430 3175/837/430 +f 3174/831/431 3181/838/431 3173/832/431 +f 3195/839/428 3202/840/428 3194/841/428 +f 3193/842/429 3200/802/429 3192/807/429 +f 3191/843/428 3198/844/428 3190/845/428 +f 3189/846/429 3196/805/429 3188/810/429 +f 3192/807/430 3203/847/430 3195/848/430 +f 3194/841/431 3201/849/431 3193/842/431 +f 3188/810/430 3199/850/430 3191/851/430 +f 3190/845/431 3197/852/431 3189/846/431 +f 3208/853/426 3204/854/426 3209/855/426 +f 3210/856/426 3207/857/426 3211/858/426 +f 3204/854/426 3207/857/426 3205/859/426 +f 3219/860/426 3216/861/426 3218/862/426 +f 3213/863/426 3216/861/426 3212/864/426 +f 3215/865/426 3219/860/426 3214/866/426 +f 3217/867/431 3224/868/431 3216/869/431 +f 3219/860/432 3222/870/432 3214/871/432 +f 3216/869/433 3220/872/433 3212/864/433 +f 3218/862/430 3227/873/430 3219/860/430 +f 3215/865/434 3225/874/434 3217/867/434 +f 3213/875/435 3226/876/435 3218/862/435 +f 3221/877/427 3224/878/427 3226/876/427 +f 3227/873/427 3224/878/427 3225/879/427 +f 3223/880/427 3227/873/427 3225/879/427 +f 3235/881/428 3229/882/428 3231/883/428 +f 3234/884/427 3231/885/427 3230/886/427 +f 3232/887/429 3230/886/429 3228/888/429 +f 3229/882/426 3232/887/426 3228/888/426 +f 3243/889/428 3237/890/428 3239/891/428 +f 3242/892/427 3239/893/427 3238/894/427 +f 3240/895/429 3238/894/429 3236/896/429 +f 3237/890/426 3240/895/426 3236/896/426 +f 3251/897/428 3245/898/428 3247/899/428 +f 3250/900/427 3247/901/427 3246/902/427 +f 3248/903/429 3246/902/429 3244/904/429 +f 3245/898/426 3248/903/426 3244/904/426 +f 3259/905/428 3253/906/428 3255/907/428 +f 3258/908/427 3255/909/427 3254/910/427 +f 3256/911/429 3254/910/429 3252/912/429 +f 3253/906/426 3256/911/426 3252/912/426 +f 3267/913/428 3261/914/428 3263/915/428 +f 3266/916/427 3263/917/427 3262/918/427 +f 3264/919/429 3262/918/429 3260/920/429 +f 3261/914/426 3264/919/426 3260/920/426 +f 3275/921/428 3269/922/428 3271/923/428 +f 3274/924/427 3271/925/427 3270/926/427 +f 3272/927/429 3270/926/429 3268/928/429 +f 3269/922/426 3272/927/426 3268/928/426 +f 3277/929/430 3280/930/430 3276/931/430 +f 3279/932/430 3282/933/430 3283/934/430 +f 3285/935/430 3288/936/430 3284/937/430 +f 3287/938/430 3290/939/430 3291/940/430 +f 3293/941/430 3296/942/430 3292/943/430 +f 3295/944/430 3298/945/430 3299/946/430 +f 3206/947/431 3304/948/431 3207/949/431 +f 3204/854/432 3302/950/432 3209/951/432 +f 3207/949/433 3300/952/433 3211/858/433 +f 3205/859/430 3307/953/430 3204/854/430 +f 3208/853/434 3305/954/434 3206/947/434 +f 3210/955/435 3306/956/435 3205/859/435 +f 3301/957/427 3304/958/427 3306/956/427 +f 3307/953/427 3304/958/427 3305/959/427 +f 3303/960/427 3307/953/427 3305/959/427 +f 3202/801/426 3203/847/426 3200/802/426 +f 3198/804/426 3199/850/426 3196/805/426 +f 3192/807/427 3195/848/427 3194/808/427 +f 3188/810/427 3191/851/427 3190/811/427 +f 3172/813/427 3175/837/427 3174/814/427 +f 3176/816/427 3179/834/427 3178/817/427 +f 3182/819/426 3183/836/426 3180/820/426 +f 3186/822/426 3187/833/426 3184/823/426 +f 3179/825/428 3187/961/428 3186/826/428 +f 3177/828/429 3185/835/429 3184/823/429 +f 3175/829/428 3183/962/428 3182/830/428 +f 3173/832/429 3181/838/429 3180/820/429 +f 3176/816/430 3184/823/430 3187/833/430 +f 3178/827/431 3186/826/431 3185/835/431 +f 3172/813/430 3180/820/430 3183/836/430 +f 3174/831/431 3182/830/431 3181/838/431 +f 3195/839/428 3203/963/428 3202/840/428 +f 3193/842/429 3201/849/429 3200/802/429 +f 3191/843/428 3199/964/428 3198/844/428 +f 3189/846/429 3197/852/429 3196/805/429 +f 3192/807/430 3200/802/430 3203/847/430 +f 3194/841/431 3202/840/431 3201/849/431 +f 3188/810/430 3196/805/430 3199/850/430 +f 3190/845/431 3198/844/431 3197/852/431 +f 3208/853/426 3206/965/426 3204/854/426 +f 3210/856/426 3205/859/426 3207/857/426 +f 3204/854/426 3206/965/426 3207/857/426 +f 3219/860/426 3217/966/426 3216/861/426 +f 3213/863/426 3218/862/426 3216/861/426 +f 3215/865/426 3217/966/426 3219/860/426 +f 3217/867/431 3225/874/431 3224/868/431 +f 3219/860/432 3227/873/432 3222/870/432 +f 3216/869/433 3224/868/433 3220/872/433 +f 3218/862/430 3226/876/430 3227/873/430 +f 3215/865/434 3223/967/434 3225/874/434 +f 3213/875/435 3221/968/435 3226/876/435 +f 3221/877/427 3220/969/427 3224/878/427 +f 3227/873/427 3226/876/427 3224/878/427 +f 3223/880/427 3222/970/427 3227/873/427 +f 3235/881/428 3233/971/428 3229/882/428 +f 3234/884/427 3235/972/427 3231/885/427 +f 3232/887/429 3234/884/429 3230/886/429 +f 3229/882/426 3233/971/426 3232/887/426 +f 3243/889/428 3241/973/428 3237/890/428 +f 3242/892/427 3243/974/427 3239/893/427 +f 3240/895/429 3242/892/429 3238/894/429 +f 3237/890/426 3241/973/426 3240/895/426 +f 3251/897/428 3249/975/428 3245/898/428 +f 3250/900/427 3251/976/427 3247/901/427 +f 3248/903/429 3250/900/429 3246/902/429 +f 3245/898/426 3249/975/426 3248/903/426 +f 3259/905/428 3257/977/428 3253/906/428 +f 3258/908/427 3259/978/427 3255/909/427 +f 3256/911/429 3258/908/429 3254/910/429 +f 3253/906/426 3257/977/426 3256/911/426 +f 3267/913/428 3265/979/428 3261/914/428 +f 3266/916/427 3267/980/427 3263/917/427 +f 3264/919/429 3266/916/429 3262/918/429 +f 3261/914/426 3265/979/426 3264/919/426 +f 3275/921/428 3273/981/428 3269/922/428 +f 3274/924/427 3275/982/427 3271/925/427 +f 3272/927/429 3274/924/429 3270/926/429 +f 3269/922/426 3273/981/426 3272/927/426 +f 3277/929/430 3281/983/430 3280/930/430 +f 3279/932/430 3278/984/430 3282/933/430 +f 3285/935/430 3289/985/430 3288/936/430 +f 3287/938/430 3286/986/430 3290/939/430 +f 3293/941/430 3297/987/430 3296/942/430 +f 3295/944/430 3294/988/430 3298/945/430 +f 3206/947/431 3305/954/431 3304/948/431 +f 3204/854/432 3307/953/432 3302/950/432 +f 3207/949/433 3304/948/433 3300/952/433 +f 3205/859/430 3306/956/430 3307/953/430 +f 3208/853/434 3303/989/434 3305/954/434 +f 3210/955/435 3301/990/435 3306/956/435 +f 3301/957/427 3300/991/427 3304/958/427 +f 3307/953/427 3306/956/427 3304/958/427 +f 3303/960/427 3302/992/427 3307/953/427 o Pad v -4.500000 0.000000 4.500000 v 4.500000 0.000000 4.500000 @@ -7845,60 +8993,60 @@ vn 0.0000 -0.7071 0.7071 vn 0.7071 0.7071 0.0000 vn -0.7071 0.7071 0.0000 s off -f 3237/1/436 3247/2/436 3241/3/436 -f 3246/4/437 3245/5/437 3244/6/437 -f 3241/3/438 3246/7/438 3240/8/438 -f 3238/9/437 3243/10/437 3239/11/437 -f 3237/12/439 3240/13/439 3236/14/439 -f 3240/15/440 3244/16/440 3236/17/440 -f 3236/18/441 3245/19/441 3237/1/441 -f 3250/20/439 3249/21/439 3248/22/439 -f 3243/23/436 3248/24/436 3239/25/436 -f 3238/26/440 3251/27/440 3242/28/440 -f 3242/29/438 3250/30/438 3243/23/438 -f 3239/25/441 3249/31/441 3238/32/441 -f 3257/33/438 3253/34/438 3254/35/438 -f 3252/36/438 3259/37/438 3255/38/438 -f 3263/39/442 3260/40/442 3261/41/442 -f 3265/42/441 3262/43/441 3263/39/441 -f 3267/44/443 3264/45/443 3265/42/443 -f 3282/46/440 3274/47/440 3280/48/440 -f 3276/49/440 3278/50/440 3272/51/440 -f 3260/52/436 3262/53/436 3268/54/436 -f 3266/55/436 3270/56/436 3264/57/436 -f 3267/58/440 3265/59/440 3271/60/440 -f 3261/61/440 3269/62/440 3263/63/440 -f 3277/64/436 3273/65/436 3279/66/436 -f 3283/67/436 3281/68/436 3275/69/436 -f 3276/70/443 3279/71/443 3278/72/443 -f 3278/72/441 3281/73/441 3280/74/441 -f 3280/74/442 3283/75/442 3282/76/442 -f 3285/77/444 3289/78/444 3288/79/444 -f 3288/79/445 3286/80/445 3284/81/445 -f 3287/82/441 3284/83/441 3286/84/441 -f 3237/1/436 3245/19/436 3247/2/436 -f 3246/4/437 3247/85/437 3245/5/437 -f 3241/3/438 3247/2/438 3246/7/438 -f 3238/9/437 3242/86/437 3243/10/437 -f 3237/12/439 3241/87/439 3240/13/439 -f 3240/15/440 3246/88/440 3244/16/440 -f 3236/18/441 3244/89/441 3245/19/441 -f 3250/20/439 3251/90/439 3249/21/439 -f 3243/23/436 3250/30/436 3248/24/436 -f 3238/26/440 3249/91/440 3251/27/440 -f 3242/29/438 3251/92/438 3250/30/438 -f 3239/25/441 3248/24/441 3249/31/441 -f 3257/33/438 3256/93/438 3253/34/438 -f 3252/36/438 3258/94/438 3259/37/438 -f 3263/39/442 3262/43/442 3260/40/442 -f 3265/42/441 3264/45/441 3262/43/441 -f 3267/44/443 3266/95/443 3264/45/443 -f 3276/70/443 3277/96/443 3279/71/443 -f 3278/72/441 3279/71/441 3281/73/441 -f 3280/74/442 3281/73/442 3283/75/442 -f 3285/77/444 3287/82/444 3289/78/444 -f 3288/79/445 3289/78/445 3286/80/445 -f 3287/82/441 3285/77/441 3284/83/441 +f 3309/993/436 3319/994/436 3313/995/436 +f 3318/996/437 3317/997/437 3316/998/437 +f 3313/995/438 3318/999/438 3312/1000/438 +f 3310/1001/437 3315/1002/437 3311/1003/437 +f 3309/1004/439 3312/1005/439 3308/1006/439 +f 3312/1007/440 3316/1008/440 3308/1009/440 +f 3308/1010/441 3317/1011/441 3309/993/441 +f 3322/1012/439 3321/1013/439 3320/1014/439 +f 3315/1015/436 3320/1016/436 3311/1017/436 +f 3310/1018/440 3323/1019/440 3314/1020/440 +f 3314/1021/438 3322/1022/438 3315/1015/438 +f 3311/1017/441 3321/1023/441 3310/1024/441 +f 3329/1025/438 3325/1026/438 3326/1027/438 +f 3324/1028/438 3331/1029/438 3327/1030/438 +f 3335/1031/442 3332/1032/442 3333/1033/442 +f 3337/1034/441 3334/1035/441 3335/1031/441 +f 3339/1036/443 3336/1037/443 3337/1034/443 +f 3354/1038/440 3346/1039/440 3352/1040/440 +f 3348/1041/440 3350/1042/440 3344/1043/440 +f 3332/1044/436 3334/1045/436 3340/1046/436 +f 3338/1047/436 3342/1048/436 3336/1049/436 +f 3339/1050/440 3337/1051/440 3343/1052/440 +f 3333/1053/440 3341/1054/440 3335/1055/440 +f 3349/1056/436 3345/1057/436 3351/1058/436 +f 3355/1059/436 3353/1060/436 3347/1061/436 +f 3348/1062/443 3351/1063/443 3350/1064/443 +f 3350/1064/441 3353/1065/441 3352/1066/441 +f 3352/1066/442 3355/1067/442 3354/1068/442 +f 3357/1069/444 3361/1070/444 3360/1071/444 +f 3360/1071/445 3358/1072/445 3356/1073/445 +f 3359/1074/441 3356/1075/441 3358/1076/441 +f 3309/993/436 3317/1011/436 3319/994/436 +f 3318/996/437 3319/1077/437 3317/997/437 +f 3313/995/438 3319/994/438 3318/999/438 +f 3310/1001/437 3314/1078/437 3315/1002/437 +f 3309/1004/439 3313/1079/439 3312/1005/439 +f 3312/1007/440 3318/1080/440 3316/1008/440 +f 3308/1010/441 3316/1081/441 3317/1011/441 +f 3322/1012/439 3323/1082/439 3321/1013/439 +f 3315/1015/436 3322/1022/436 3320/1016/436 +f 3310/1018/440 3321/1083/440 3323/1019/440 +f 3314/1021/438 3323/1084/438 3322/1022/438 +f 3311/1017/441 3320/1016/441 3321/1023/441 +f 3329/1025/438 3328/1085/438 3325/1026/438 +f 3324/1028/438 3330/1086/438 3331/1029/438 +f 3335/1031/442 3334/1035/442 3332/1032/442 +f 3337/1034/441 3336/1037/441 3334/1035/441 +f 3339/1036/443 3338/1087/443 3336/1037/443 +f 3348/1062/443 3349/1088/443 3351/1063/443 +f 3350/1064/441 3351/1063/441 3353/1065/441 +f 3352/1066/442 3353/1065/442 3355/1067/442 +f 3357/1069/444 3359/1074/444 3361/1070/444 +f 3360/1071/445 3361/1070/445 3358/1072/445 +f 3359/1074/441 3357/1069/441 3356/1075/441 o Micro_Missile v 0.324760 3.500000 -0.187500 v 0.156250 3.500000 -0.270633 @@ -8503,423 +9651,423 @@ vn 0.9659 0.0000 -0.2588 vn -0.9659 0.0000 -0.2588 vn -0.9659 0.0000 0.2588 s off -f 3290/97/446 3291/98/446 3292/99/446 -f 3293/100/446 3294/101/446 3291/98/446 -f 3295/102/446 3294/103/446 3296/104/446 -f 3297/105/446 3298/106/446 3295/102/446 -f 3299/107/446 3300/108/446 3297/105/446 -f 3301/109/446 3302/110/446 3299/107/446 -f 3303/111/446 3304/112/446 3301/109/446 -f 3305/113/446 3306/114/446 3303/111/446 -f 3305/113/446 3307/115/446 3308/116/446 -f 3309/117/446 3310/118/446 3307/115/446 -f 3311/119/446 3310/118/446 3312/120/446 -f 3290/97/446 3313/121/446 3311/119/446 -f 3314/122/447 3315/123/447 3316/124/447 -f 3317/125/447 3318/126/447 3314/122/447 -f 3319/127/447 3320/128/447 3317/125/447 -f 3321/129/447 3322/130/447 3319/127/447 -f 3323/131/447 3324/132/447 3321/133/447 -f 3323/131/447 3325/134/447 3326/135/447 -f 3327/136/447 3328/137/447 3325/134/447 -f 3329/138/447 3328/137/447 3330/139/447 -f 3331/140/447 3332/141/447 3329/138/447 -f 3331/140/447 3333/142/447 3334/143/447 -f 3335/144/447 3333/142/447 3336/145/447 -f 3316/124/447 3337/146/447 3335/144/447 -f 3338/147/447 3339/148/447 3340/149/447 -f 3341/150/447 3342/151/447 3338/147/447 -f 3343/152/447 3344/153/447 3341/150/447 -f 3345/154/447 3346/155/447 3343/152/447 -f 3347/156/447 3348/157/447 3345/158/447 -f 3347/156/447 3349/159/447 3350/160/447 -f 3351/161/447 3352/162/447 3349/159/447 -f 3353/163/447 3352/162/447 3354/164/447 -f 3355/165/447 3356/166/447 3353/163/447 -f 3355/165/447 3357/167/447 3358/168/447 -f 3359/169/447 3357/167/447 3360/170/447 -f 3340/149/447 3361/171/447 3359/169/447 -f 3362/172/447 3363/173/447 3364/174/447 -f 3365/175/447 3366/176/447 3362/172/447 -f 3367/177/447 3368/178/447 3365/175/447 -f 3369/179/447 3370/180/447 3367/177/447 -f 3371/181/447 3372/182/447 3369/183/447 -f 3371/181/447 3373/184/447 3374/185/447 -f 3375/186/447 3376/187/447 3373/184/447 -f 3377/188/447 3376/187/447 3378/189/447 -f 3379/190/447 3380/191/447 3377/188/447 -f 3379/190/447 3381/192/447 3382/193/447 -f 3383/194/447 3381/192/447 3384/195/447 -f 3364/174/447 3385/196/447 3383/194/447 -f 3386/197/446 3387/198/446 3388/199/446 -f 3389/200/446 3390/201/446 3386/197/446 -f 3389/200/446 3391/202/446 3392/203/446 -f 3393/204/446 3394/205/446 3391/202/446 -f 3395/206/446 3394/207/446 3396/208/446 -f 3397/209/446 3398/210/446 3395/206/446 -f 3399/211/446 3400/212/446 3397/209/446 -f 3401/213/446 3402/214/446 3399/211/446 -f 3403/215/446 3404/216/446 3401/213/446 -f 3405/217/446 3406/218/446 3403/215/446 -f 3405/217/446 3407/219/446 3408/220/446 -f 3409/221/446 3387/198/446 3407/219/446 -f 3410/222/446 3411/223/446 3412/224/446 -f 3413/225/446 3414/226/446 3410/222/446 -f 3413/225/446 3415/227/446 3416/228/446 -f 3417/229/446 3418/230/446 3415/227/446 -f 3419/231/446 3418/232/446 3420/233/446 -f 3421/234/446 3422/235/446 3419/231/446 -f 3423/236/446 3424/237/446 3421/234/446 -f 3425/238/446 3426/239/446 3423/236/446 -f 3427/240/446 3428/241/446 3425/238/446 -f 3429/242/446 3430/243/446 3427/240/446 -f 3429/242/446 3431/244/446 3432/245/446 -f 3433/246/446 3411/223/446 3431/244/446 -f 3434/247/447 3435/248/447 3436/249/447 -f 3437/250/448 3438/251/448 3439/252/448 -f 3436/253/449 3438/254/449 3434/255/449 -f 3438/254/450 3435/248/450 3434/255/450 -f 3440/256/451 3441/257/451 3442/258/451 -f 3443/259/452 3440/256/452 3442/258/452 -f 3444/260/453 3440/261/453 3445/262/453 -f 3442/263/447 3441/257/447 3443/264/447 -f 3446/265/447 3447/266/447 3448/267/447 -f 3449/268/454 3450/269/454 3451/270/454 -f 3448/271/455 3450/272/455 3446/273/455 -f 3450/272/456 3447/266/456 3446/273/456 -f 3452/274/457 3453/275/457 3454/276/457 -f 3455/277/458 3452/274/458 3454/276/458 -f 3456/278/459 3452/279/459 3457/280/459 -f 3454/281/447 3453/275/447 3455/282/447 -f 3458/283/447 3459/284/447 3460/285/447 -f 3461/286/447 3462/287/447 3459/284/447 -f 3463/288/447 3464/289/447 3462/287/447 -f 3465/290/447 3466/291/447 3464/289/447 -f 3466/291/447 3467/292/447 3468/293/447 -f 3467/294/447 3469/295/447 3468/293/447 -f 3470/296/447 3471/297/447 3469/298/447 -f 3472/299/447 3473/300/447 3471/297/447 -f 3474/301/447 3475/302/447 3473/300/447 -f 3476/303/447 3477/304/447 3475/302/447 -f 3478/305/447 3479/306/447 3477/304/447 -f 3480/307/447 3460/285/447 3479/306/447 -f 3290/97/446 3293/100/446 3291/98/446 -f 3293/100/446 3296/308/446 3294/101/446 -f 3295/102/446 3298/106/446 3294/103/446 -f 3297/105/446 3300/108/446 3298/106/446 -f 3299/107/446 3302/110/446 3300/108/446 -f 3301/109/446 3304/112/446 3302/110/446 -f 3303/111/446 3306/114/446 3304/112/446 -f 3305/113/446 3308/116/446 3306/114/446 -f 3305/113/446 3309/117/446 3307/115/446 -f 3309/117/446 3312/120/446 3310/118/446 -f 3311/119/446 3313/121/446 3310/118/446 -f 3290/97/446 3292/99/446 3313/121/446 -f 3314/122/447 3318/126/447 3315/123/447 -f 3317/125/447 3320/128/447 3318/126/447 -f 3319/127/447 3322/130/447 3320/128/447 -f 3321/129/447 3324/309/447 3322/130/447 -f 3323/131/447 3326/135/447 3324/132/447 -f 3323/131/447 3327/136/447 3325/134/447 -f 3327/136/447 3330/139/447 3328/137/447 -f 3329/138/447 3332/141/447 3328/137/447 -f 3331/140/447 3334/143/447 3332/141/447 -f 3331/140/447 3336/145/447 3333/142/447 -f 3335/144/447 3337/146/447 3333/142/447 -f 3316/124/447 3315/123/447 3337/146/447 -f 3338/147/447 3342/151/447 3339/148/447 -f 3341/150/447 3344/153/447 3342/151/447 -f 3343/152/447 3346/155/447 3344/153/447 -f 3345/154/447 3348/310/447 3346/155/447 -f 3347/156/447 3350/160/447 3348/157/447 -f 3347/156/447 3351/161/447 3349/159/447 -f 3351/161/447 3354/164/447 3352/162/447 -f 3353/163/447 3356/166/447 3352/162/447 -f 3355/165/447 3358/168/447 3356/166/447 -f 3355/165/447 3360/170/447 3357/167/447 -f 3359/169/447 3361/171/447 3357/167/447 -f 3340/149/447 3339/148/447 3361/171/447 -f 3362/172/447 3366/176/447 3363/173/447 -f 3365/175/447 3368/178/447 3366/176/447 -f 3367/177/447 3370/180/447 3368/178/447 -f 3369/179/447 3372/311/447 3370/180/447 -f 3371/181/447 3374/185/447 3372/182/447 -f 3371/181/447 3375/186/447 3373/184/447 -f 3375/186/447 3378/189/447 3376/187/447 -f 3377/188/447 3380/191/447 3376/187/447 -f 3379/190/447 3382/193/447 3380/191/447 -f 3379/190/447 3384/195/447 3381/192/447 -f 3383/194/447 3385/196/447 3381/192/447 -f 3364/174/447 3363/173/447 3385/196/447 -f 3386/197/446 3390/201/446 3387/198/446 -f 3389/200/446 3392/203/446 3390/201/446 -f 3389/200/446 3393/204/446 3391/202/446 -f 3393/204/446 3396/312/446 3394/205/446 -f 3395/206/446 3398/210/446 3394/207/446 -f 3397/209/446 3400/212/446 3398/210/446 -f 3399/211/446 3402/214/446 3400/212/446 -f 3401/213/446 3404/216/446 3402/214/446 -f 3403/215/446 3406/218/446 3404/216/446 -f 3405/217/446 3408/220/446 3406/218/446 -f 3405/217/446 3409/221/446 3407/219/446 -f 3409/221/446 3388/199/446 3387/198/446 -f 3410/222/446 3414/226/446 3411/223/446 -f 3413/225/446 3416/228/446 3414/226/446 -f 3413/225/446 3417/229/446 3415/227/446 -f 3417/229/446 3420/313/446 3418/230/446 -f 3419/231/446 3422/235/446 3418/232/446 -f 3421/234/446 3424/237/446 3422/235/446 -f 3423/236/446 3426/239/446 3424/237/446 -f 3425/238/446 3428/241/446 3426/239/446 -f 3427/240/446 3430/243/446 3428/241/446 -f 3429/242/446 3432/245/446 3430/243/446 -f 3429/242/446 3433/246/446 3431/244/446 -f 3433/246/446 3412/224/446 3411/223/446 -f 3436/253/449 3439/314/449 3438/254/449 -f 3438/254/450 3437/250/450 3435/248/450 -f 3440/256/451 3444/260/451 3441/257/451 -f 3443/259/452 3445/315/452 3440/256/452 -f 3448/271/455 3451/316/455 3450/272/455 -f 3450/272/456 3449/268/456 3447/266/456 -f 3452/274/457 3456/278/457 3453/275/457 -f 3455/277/458 3457/317/458 3452/274/458 -f 3458/283/447 3461/318/447 3459/284/447 -f 3461/286/447 3463/319/447 3462/287/447 -f 3463/288/447 3465/320/447 3464/289/447 -f 3465/290/447 3481/321/447 3466/291/447 -f 3466/291/447 3481/322/447 3467/292/447 -f 3467/294/447 3470/323/447 3469/295/447 -f 3470/296/447 3472/324/447 3471/297/447 -f 3472/299/447 3474/325/447 3473/300/447 -f 3474/301/447 3476/326/447 3475/302/447 -f 3476/303/447 3478/327/447 3477/304/447 -f 3478/305/447 3480/328/447 3479/306/447 -f 3480/307/447 3458/329/447 3460/285/447 +f 3362/1089/446 3363/1090/446 3364/1091/446 +f 3365/1092/446 3366/1093/446 3363/1090/446 +f 3367/1094/446 3366/1095/446 3368/1096/446 +f 3369/1097/446 3370/1098/446 3367/1094/446 +f 3371/1099/446 3372/1100/446 3369/1097/446 +f 3373/1101/446 3374/1102/446 3371/1099/446 +f 3375/1103/446 3376/1104/446 3373/1101/446 +f 3377/1105/446 3378/1106/446 3375/1103/446 +f 3377/1105/446 3379/1107/446 3380/1108/446 +f 3381/1109/446 3382/1110/446 3379/1107/446 +f 3383/1111/446 3382/1110/446 3384/1112/446 +f 3362/1089/446 3385/1113/446 3383/1111/446 +f 3386/1114/447 3387/1115/447 3388/1116/447 +f 3389/1117/447 3390/1118/447 3386/1114/447 +f 3391/1119/447 3392/1120/447 3389/1117/447 +f 3393/1121/447 3394/1122/447 3391/1119/447 +f 3395/1123/447 3396/1124/447 3393/1125/447 +f 3395/1123/447 3397/1126/447 3398/1127/447 +f 3399/1128/447 3400/1129/447 3397/1126/447 +f 3401/1130/447 3400/1129/447 3402/1131/447 +f 3403/1132/447 3404/1133/447 3401/1130/447 +f 3403/1132/447 3405/1134/447 3406/1135/447 +f 3407/1136/447 3405/1134/447 3408/1137/447 +f 3388/1116/447 3409/1138/447 3407/1136/447 +f 3410/1139/447 3411/1140/447 3412/1141/447 +f 3413/1142/447 3414/1143/447 3410/1139/447 +f 3415/1144/447 3416/1145/447 3413/1142/447 +f 3417/1146/447 3418/1147/447 3415/1144/447 +f 3419/1148/447 3420/1149/447 3417/1150/447 +f 3419/1148/447 3421/1151/447 3422/1152/447 +f 3423/1153/447 3424/1154/447 3421/1151/447 +f 3425/1155/447 3424/1154/447 3426/1156/447 +f 3427/1157/447 3428/1158/447 3425/1155/447 +f 3427/1157/447 3429/1159/447 3430/1160/447 +f 3431/1161/447 3429/1159/447 3432/1162/447 +f 3412/1141/447 3433/1163/447 3431/1161/447 +f 3434/1164/447 3435/1165/447 3436/1166/447 +f 3437/1167/447 3438/1168/447 3434/1164/447 +f 3439/1169/447 3440/1170/447 3437/1167/447 +f 3441/1171/447 3442/1172/447 3439/1169/447 +f 3443/1173/447 3444/1174/447 3441/1175/447 +f 3443/1173/447 3445/1176/447 3446/1177/447 +f 3447/1178/447 3448/1179/447 3445/1176/447 +f 3449/1180/447 3448/1179/447 3450/1181/447 +f 3451/1182/447 3452/1183/447 3449/1180/447 +f 3451/1182/447 3453/1184/447 3454/1185/447 +f 3455/1186/447 3453/1184/447 3456/1187/447 +f 3436/1166/447 3457/1188/447 3455/1186/447 +f 3458/1189/446 3459/1190/446 3460/1191/446 +f 3461/1192/446 3462/1193/446 3458/1189/446 +f 3461/1192/446 3463/1194/446 3464/1195/446 +f 3465/1196/446 3466/1197/446 3463/1194/446 +f 3467/1198/446 3466/1199/446 3468/1200/446 +f 3469/1201/446 3470/1202/446 3467/1198/446 +f 3471/1203/446 3472/1204/446 3469/1201/446 +f 3473/1205/446 3474/1206/446 3471/1203/446 +f 3475/1207/446 3476/1208/446 3473/1205/446 +f 3477/1209/446 3478/1210/446 3475/1207/446 +f 3477/1209/446 3479/1211/446 3480/1212/446 +f 3481/1213/446 3459/1190/446 3479/1211/446 +f 3482/1214/446 3483/1215/446 3484/1216/446 +f 3485/1217/446 3486/1218/446 3482/1214/446 +f 3485/1217/446 3487/1219/446 3488/1220/446 +f 3489/1221/446 3490/1222/446 3487/1219/446 +f 3491/1223/446 3490/1224/446 3492/1225/446 +f 3493/1226/446 3494/1227/446 3491/1223/446 +f 3495/1228/446 3496/1229/446 3493/1226/446 +f 3497/1230/446 3498/1231/446 3495/1228/446 +f 3499/1232/446 3500/1233/446 3497/1230/446 +f 3501/1234/446 3502/1235/446 3499/1232/446 +f 3501/1234/446 3503/1236/446 3504/1237/446 +f 3505/1238/446 3483/1215/446 3503/1236/446 +f 3506/1239/447 3507/1240/447 3508/1241/447 +f 3509/1242/448 3510/1243/448 3511/1244/448 +f 3508/1245/449 3510/1246/449 3506/1247/449 +f 3510/1246/450 3507/1240/450 3506/1247/450 +f 3512/1248/451 3513/1249/451 3514/1250/451 +f 3515/1251/452 3512/1248/452 3514/1250/452 +f 3516/1252/453 3512/1253/453 3517/1254/453 +f 3514/1255/447 3513/1249/447 3515/1256/447 +f 3518/1257/447 3519/1258/447 3520/1259/447 +f 3521/1260/454 3522/1261/454 3523/1262/454 +f 3520/1263/455 3522/1264/455 3518/1265/455 +f 3522/1264/456 3519/1258/456 3518/1265/456 +f 3524/1266/457 3525/1267/457 3526/1268/457 +f 3527/1269/458 3524/1266/458 3526/1268/458 +f 3528/1270/459 3524/1271/459 3529/1272/459 +f 3526/1273/447 3525/1267/447 3527/1274/447 +f 3530/1275/447 3531/1276/447 3532/1277/447 +f 3533/1278/447 3534/1279/447 3531/1276/447 +f 3535/1280/447 3536/1281/447 3534/1279/447 +f 3537/1282/447 3538/1283/447 3536/1281/447 +f 3538/1283/447 3539/1284/447 3540/1285/447 +f 3539/1286/447 3541/1287/447 3540/1285/447 +f 3542/1288/447 3543/1289/447 3541/1290/447 +f 3544/1291/447 3545/1292/447 3543/1289/447 +f 3546/1293/447 3547/1294/447 3545/1292/447 +f 3548/1295/447 3549/1296/447 3547/1294/447 +f 3550/1297/447 3551/1298/447 3549/1296/447 +f 3552/1299/447 3532/1277/447 3551/1298/447 +f 3362/1089/446 3365/1092/446 3363/1090/446 +f 3365/1092/446 3368/1300/446 3366/1093/446 +f 3367/1094/446 3370/1098/446 3366/1095/446 +f 3369/1097/446 3372/1100/446 3370/1098/446 +f 3371/1099/446 3374/1102/446 3372/1100/446 +f 3373/1101/446 3376/1104/446 3374/1102/446 +f 3375/1103/446 3378/1106/446 3376/1104/446 +f 3377/1105/446 3380/1108/446 3378/1106/446 +f 3377/1105/446 3381/1109/446 3379/1107/446 +f 3381/1109/446 3384/1112/446 3382/1110/446 +f 3383/1111/446 3385/1113/446 3382/1110/446 +f 3362/1089/446 3364/1091/446 3385/1113/446 +f 3386/1114/447 3390/1118/447 3387/1115/447 +f 3389/1117/447 3392/1120/447 3390/1118/447 +f 3391/1119/447 3394/1122/447 3392/1120/447 +f 3393/1121/447 3396/1301/447 3394/1122/447 +f 3395/1123/447 3398/1127/447 3396/1124/447 +f 3395/1123/447 3399/1128/447 3397/1126/447 +f 3399/1128/447 3402/1131/447 3400/1129/447 +f 3401/1130/447 3404/1133/447 3400/1129/447 +f 3403/1132/447 3406/1135/447 3404/1133/447 +f 3403/1132/447 3408/1137/447 3405/1134/447 +f 3407/1136/447 3409/1138/447 3405/1134/447 +f 3388/1116/447 3387/1115/447 3409/1138/447 +f 3410/1139/447 3414/1143/447 3411/1140/447 +f 3413/1142/447 3416/1145/447 3414/1143/447 +f 3415/1144/447 3418/1147/447 3416/1145/447 +f 3417/1146/447 3420/1302/447 3418/1147/447 +f 3419/1148/447 3422/1152/447 3420/1149/447 +f 3419/1148/447 3423/1153/447 3421/1151/447 +f 3423/1153/447 3426/1156/447 3424/1154/447 +f 3425/1155/447 3428/1158/447 3424/1154/447 +f 3427/1157/447 3430/1160/447 3428/1158/447 +f 3427/1157/447 3432/1162/447 3429/1159/447 +f 3431/1161/447 3433/1163/447 3429/1159/447 +f 3412/1141/447 3411/1140/447 3433/1163/447 +f 3434/1164/447 3438/1168/447 3435/1165/447 +f 3437/1167/447 3440/1170/447 3438/1168/447 +f 3439/1169/447 3442/1172/447 3440/1170/447 +f 3441/1171/447 3444/1303/447 3442/1172/447 +f 3443/1173/447 3446/1177/447 3444/1174/447 +f 3443/1173/447 3447/1178/447 3445/1176/447 +f 3447/1178/447 3450/1181/447 3448/1179/447 +f 3449/1180/447 3452/1183/447 3448/1179/447 +f 3451/1182/447 3454/1185/447 3452/1183/447 +f 3451/1182/447 3456/1187/447 3453/1184/447 +f 3455/1186/447 3457/1188/447 3453/1184/447 +f 3436/1166/447 3435/1165/447 3457/1188/447 +f 3458/1189/446 3462/1193/446 3459/1190/446 +f 3461/1192/446 3464/1195/446 3462/1193/446 +f 3461/1192/446 3465/1196/446 3463/1194/446 +f 3465/1196/446 3468/1304/446 3466/1197/446 +f 3467/1198/446 3470/1202/446 3466/1199/446 +f 3469/1201/446 3472/1204/446 3470/1202/446 +f 3471/1203/446 3474/1206/446 3472/1204/446 +f 3473/1205/446 3476/1208/446 3474/1206/446 +f 3475/1207/446 3478/1210/446 3476/1208/446 +f 3477/1209/446 3480/1212/446 3478/1210/446 +f 3477/1209/446 3481/1213/446 3479/1211/446 +f 3481/1213/446 3460/1191/446 3459/1190/446 +f 3482/1214/446 3486/1218/446 3483/1215/446 +f 3485/1217/446 3488/1220/446 3486/1218/446 +f 3485/1217/446 3489/1221/446 3487/1219/446 +f 3489/1221/446 3492/1305/446 3490/1222/446 +f 3491/1223/446 3494/1227/446 3490/1224/446 +f 3493/1226/446 3496/1229/446 3494/1227/446 +f 3495/1228/446 3498/1231/446 3496/1229/446 +f 3497/1230/446 3500/1233/446 3498/1231/446 +f 3499/1232/446 3502/1235/446 3500/1233/446 +f 3501/1234/446 3504/1237/446 3502/1235/446 +f 3501/1234/446 3505/1238/446 3503/1236/446 +f 3505/1238/446 3484/1216/446 3483/1215/446 +f 3508/1245/449 3511/1306/449 3510/1246/449 +f 3510/1246/450 3509/1242/450 3507/1240/450 +f 3512/1248/451 3516/1252/451 3513/1249/451 +f 3515/1251/452 3517/1307/452 3512/1248/452 +f 3520/1263/455 3523/1308/455 3522/1264/455 +f 3522/1264/456 3521/1260/456 3519/1258/456 +f 3524/1266/457 3528/1270/457 3525/1267/457 +f 3527/1269/458 3529/1309/458 3524/1266/458 +f 3530/1275/447 3533/1310/447 3531/1276/447 +f 3533/1278/447 3535/1311/447 3534/1279/447 +f 3535/1280/447 3537/1312/447 3536/1281/447 +f 3537/1282/447 3553/1313/447 3538/1283/447 +f 3538/1283/447 3553/1314/447 3539/1284/447 +f 3539/1286/447 3542/1315/447 3541/1287/447 +f 3542/1288/447 3544/1316/447 3543/1289/447 +f 3544/1291/447 3546/1317/447 3545/1292/447 +f 3546/1293/447 3548/1318/447 3547/1294/447 +f 3548/1295/447 3550/1319/447 3549/1296/447 +f 3550/1297/447 3552/1320/447 3551/1298/447 +f 3552/1299/447 3530/1321/447 3532/1277/447 s 1 -f 3466/291/460 3311/119/461 3464/289/461 -f 3459/284/462 3305/113/463 3460/285/463 -f 3477/304/464 3299/107/465 3475/302/465 -f 3468/293/466 3290/97/460 3466/291/460 -f 3471/297/467 3296/104/468 3469/298/468 -f 3462/287/469 3309/117/462 3459/284/462 -f 3479/306/470 3301/109/464 3477/304/464 -f 3469/295/468 3293/100/466 3468/293/466 -f 3473/300/471 3295/102/467 3471/297/467 -f 3464/289/461 3312/120/469 3462/287/469 -f 3460/285/463 3303/111/470 3479/306/470 -f 3475/302/465 3297/105/471 3473/300/471 -f 3310/118/469 3335/144/462 3307/115/462 -f 3306/114/470 3329/138/464 3304/112/464 -f 3294/101/468 3319/127/466 3291/98/466 -f 3300/108/471 3323/131/467 3298/106/467 -f 3313/121/461 3316/124/469 3310/118/469 -f 3308/116/463 3331/140/470 3306/114/470 -f 3302/110/465 3327/136/471 3300/108/471 -f 3292/99/460 3314/122/461 3313/121/461 -f 3307/115/462 3336/145/463 3308/116/463 -f 3304/112/464 3330/139/465 3302/110/465 -f 3291/98/466 3317/125/460 3292/99/460 -f 3298/106/467 3321/133/468 3294/103/468 -f 3322/130/466 3389/200/460 3320/128/460 -f 3326/135/467 3396/208/468 3324/132/468 -f 3315/123/469 3409/221/462 3337/146/462 -f 3334/143/470 3401/213/464 3332/141/464 -f 3324/309/468 3393/204/466 3322/130/466 -f 3325/134/471 3395/206/467 3326/135/467 -f 3318/126/461 3388/199/469 3315/123/469 -f 3333/142/463 3403/215/470 3334/143/470 -f 3328/137/465 3397/209/471 3325/134/471 -f 3320/128/460 3386/197/461 3318/126/461 -f 3337/146/462 3405/217/463 3333/142/463 -f 3332/141/464 3399/211/465 3328/137/465 -f 3387/198/469 3359/169/462 3407/219/462 -f 3406/218/470 3353/163/464 3404/216/464 -f 3394/205/468 3343/152/466 3391/202/466 -f 3400/212/471 3347/156/467 3398/210/467 -f 3390/201/461 3340/149/469 3387/198/469 -f 3408/220/463 3355/165/470 3406/218/470 -f 3402/214/465 3351/161/471 3400/212/471 -f 3392/203/460 3338/147/461 3390/201/461 -f 3407/219/462 3360/170/463 3408/220/463 -f 3404/216/464 3354/164/465 3402/214/465 -f 3391/202/466 3341/150/460 3392/203/460 -f 3398/210/467 3345/158/468 3394/207/468 -f 3346/155/466 3413/225/460 3344/153/460 -f 3350/160/467 3420/233/468 3348/157/468 -f 3339/148/469 3433/246/462 3361/171/462 -f 3358/168/470 3425/238/464 3356/166/464 -f 3348/310/468 3417/229/466 3346/155/466 -f 3349/159/471 3419/231/467 3350/160/467 -f 3342/151/461 3412/224/469 3339/148/469 -f 3357/167/463 3427/240/470 3358/168/470 -f 3352/162/465 3421/234/471 3349/159/471 -f 3344/153/460 3410/222/461 3342/151/461 -f 3361/171/462 3429/242/463 3357/167/463 -f 3356/166/464 3423/236/465 3352/162/465 -f 3411/223/469 3383/194/462 3431/244/462 -f 3430/243/470 3377/188/464 3428/241/464 -f 3418/230/468 3367/177/466 3415/227/466 -f 3424/237/471 3371/181/467 3422/235/467 -f 3414/226/461 3364/174/469 3411/223/469 -f 3432/245/463 3379/190/470 3430/243/470 -f 3426/239/465 3375/186/471 3424/237/471 -f 3416/228/460 3362/172/461 3414/226/461 -f 3431/244/462 3384/195/463 3432/245/463 -f 3428/241/464 3378/189/465 3426/239/465 -f 3415/227/466 3365/175/460 3416/228/460 -f 3422/235/467 3369/183/468 3418/232/468 -f 3370/180/466 3482/330/472 3368/178/460 -f 3374/185/467 3483/331/473 3372/182/468 -f 3363/173/469 3484/332/474 3385/196/462 -f 3382/193/470 3485/333/475 3380/191/464 -f 3372/311/468 3486/334/476 3370/180/466 -f 3373/184/471 3487/335/477 3374/185/467 -f 3366/176/461 3488/336/478 3363/173/469 -f 3381/192/463 3489/337/479 3382/193/470 -f 3376/187/465 3490/338/480 3373/184/471 -f 3368/178/460 3491/339/481 3366/176/461 -f 3385/196/462 3492/340/482 3381/192/463 -f 3380/191/464 3493/341/483 3376/187/465 -f 3492/340/482 3494/342/484 3489/337/479 -f 3493/341/483 3495/343/485 3490/338/480 -f 3491/339/481 3496/344/486 3497/345/487 -f 3484/332/474 3498/346/488 3492/340/482 -f 3493/341/483 3499/347/489 3500/348/490 -f 3486/334/476 3496/349/486 3482/330/472 -f 3487/335/477 3501/350/491 3483/331/473 -f 3484/332/474 3502/351/492 3503/352/493 -f 3489/337/479 3499/353/489 3485/333/475 -f 3483/354/473 3504/355/494 3486/334/476 -f 3490/338/480 3505/356/495 3487/335/477 -f 3491/339/481 3502/357/492 3488/336/478 -f 3501/350/491 3505/358/495 3506/359/446 -f 3505/356/495 3495/360/485 3506/361/446 -f 3495/343/485 3500/362/490 3506/363/446 -f 3500/348/490 3499/347/489 3506/364/446 -f 3499/353/489 3494/365/484 3506/366/446 -f 3494/342/484 3498/367/488 3506/368/446 -f 3498/346/488 3503/369/493 3506/370/446 -f 3503/352/493 3502/351/492 3506/371/446 -f 3502/357/492 3497/372/487 3506/373/446 -f 3497/345/487 3496/344/486 3506/374/446 -f 3496/349/486 3504/375/494 3506/376/446 -f 3504/355/494 3501/377/491 3506/378/446 -f 3472/324/496 3470/296/497 3507/379/447 -f 3470/323/497 3467/294/498 3507/380/447 -f 3467/292/498 3481/322/499 3507/381/447 -f 3481/321/499 3465/290/500 3507/382/447 -f 3465/320/500 3463/288/501 3507/383/447 -f 3463/319/501 3461/286/502 3507/384/447 -f 3461/318/502 3458/283/503 3507/385/447 -f 3458/329/503 3480/307/504 3507/386/447 -f 3480/328/504 3478/305/505 3507/387/447 -f 3478/327/505 3476/303/506 3507/388/447 -f 3476/326/506 3474/301/507 3507/389/447 -f 3474/325/507 3472/299/496 3507/390/447 -f 3508/391/461 3509/392/508 3510/393/508 -f 3511/394/509 3512/395/461 3508/391/461 -f 3513/396/465 3514/397/510 3515/398/510 -f 3516/399/511 3517/400/465 3513/396/465 -f 3466/291/460 3290/97/460 3311/119/461 -f 3459/284/462 3309/117/462 3305/113/463 -f 3477/304/464 3301/109/464 3299/107/465 -f 3468/293/466 3293/100/466 3290/97/460 -f 3471/297/467 3295/102/467 3296/104/468 -f 3462/287/469 3312/120/469 3309/117/462 -f 3479/306/470 3303/111/470 3301/109/464 -f 3469/295/468 3296/308/468 3293/100/466 -f 3473/300/471 3297/105/471 3295/102/467 -f 3464/289/461 3311/119/461 3312/120/469 -f 3460/285/463 3305/113/463 3303/111/470 -f 3475/302/465 3299/107/465 3297/105/471 -f 3310/118/469 3316/124/469 3335/144/462 -f 3306/114/470 3331/140/470 3329/138/464 -f 3294/101/468 3321/129/468 3319/127/466 -f 3300/108/471 3327/136/471 3323/131/467 -f 3313/121/461 3314/122/461 3316/124/469 -f 3308/116/463 3336/145/463 3331/140/470 -f 3302/110/465 3330/139/465 3327/136/471 -f 3292/99/460 3317/125/460 3314/122/461 -f 3307/115/462 3335/144/462 3336/145/463 -f 3304/112/464 3329/138/464 3330/139/465 -f 3291/98/466 3319/127/466 3317/125/460 -f 3298/106/467 3323/131/467 3321/133/468 -f 3322/130/466 3393/204/466 3389/200/460 -f 3326/135/467 3395/206/467 3396/208/468 -f 3315/123/469 3388/199/469 3409/221/462 -f 3334/143/470 3403/215/470 3401/213/464 -f 3324/309/468 3396/312/468 3393/204/466 -f 3325/134/471 3397/209/471 3395/206/467 -f 3318/126/461 3386/197/461 3388/199/469 -f 3333/142/463 3405/217/463 3403/215/470 -f 3328/137/465 3399/211/465 3397/209/471 -f 3320/128/460 3389/200/460 3386/197/461 -f 3337/146/462 3409/221/462 3405/217/463 -f 3332/141/464 3401/213/464 3399/211/465 -f 3387/198/469 3340/149/469 3359/169/462 -f 3406/218/470 3355/165/470 3353/163/464 -f 3394/205/468 3345/154/468 3343/152/466 -f 3400/212/471 3351/161/471 3347/156/467 -f 3390/201/461 3338/147/461 3340/149/469 -f 3408/220/463 3360/170/463 3355/165/470 -f 3402/214/465 3354/164/465 3351/161/471 -f 3392/203/460 3341/150/460 3338/147/461 -f 3407/219/462 3359/169/462 3360/170/463 -f 3404/216/464 3353/163/464 3354/164/465 -f 3391/202/466 3343/152/466 3341/150/460 -f 3398/210/467 3347/156/467 3345/158/468 -f 3346/155/466 3417/229/466 3413/225/460 -f 3350/160/467 3419/231/467 3420/233/468 -f 3339/148/469 3412/224/469 3433/246/462 -f 3358/168/470 3427/240/470 3425/238/464 -f 3348/310/468 3420/313/468 3417/229/466 -f 3349/159/471 3421/234/471 3419/231/467 -f 3342/151/461 3410/222/461 3412/224/469 -f 3357/167/463 3429/242/463 3427/240/470 -f 3352/162/465 3423/236/465 3421/234/471 -f 3344/153/460 3413/225/460 3410/222/461 -f 3361/171/462 3433/246/462 3429/242/463 -f 3356/166/464 3425/238/464 3423/236/465 -f 3411/223/469 3364/174/469 3383/194/462 -f 3430/243/470 3379/190/470 3377/188/464 -f 3418/230/468 3369/179/468 3367/177/466 -f 3424/237/471 3375/186/471 3371/181/467 -f 3414/226/461 3362/172/461 3364/174/469 -f 3432/245/463 3384/195/463 3379/190/470 -f 3426/239/465 3378/189/465 3375/186/471 -f 3416/228/460 3365/175/460 3362/172/461 -f 3431/244/462 3383/194/462 3384/195/463 -f 3428/241/464 3377/188/464 3378/189/465 -f 3415/227/466 3367/177/466 3365/175/460 -f 3422/235/467 3371/181/467 3369/183/468 -f 3370/180/466 3486/334/476 3482/330/472 -f 3374/185/467 3487/335/477 3483/331/473 -f 3363/173/469 3488/336/478 3484/332/474 -f 3382/193/470 3489/337/479 3485/333/475 -f 3372/311/468 3483/354/473 3486/334/476 -f 3373/184/471 3490/338/480 3487/335/477 -f 3366/176/461 3491/339/481 3488/336/478 -f 3381/192/463 3492/340/482 3489/337/479 -f 3376/187/465 3493/341/483 3490/338/480 -f 3368/178/460 3482/330/472 3491/339/481 -f 3385/196/462 3484/332/474 3492/340/482 -f 3380/191/464 3485/333/475 3493/341/483 -f 3492/340/482 3498/367/488 3494/342/484 -f 3493/341/483 3500/362/490 3495/343/485 -f 3491/339/481 3482/330/472 3496/344/486 -f 3484/332/474 3503/369/493 3498/346/488 -f 3493/341/483 3485/333/475 3499/347/489 -f 3486/334/476 3504/375/494 3496/349/486 -f 3487/335/477 3505/358/495 3501/350/491 -f 3484/332/474 3488/336/478 3502/351/492 -f 3489/337/479 3494/365/484 3499/353/489 -f 3483/354/473 3501/377/491 3504/355/494 -f 3490/338/480 3495/360/485 3505/356/495 -f 3491/339/481 3497/372/487 3502/357/492 -f 3508/391/461 3512/395/461 3509/392/508 -f 3511/394/509 3518/401/509 3512/395/461 -f 3513/396/465 3517/400/465 3514/397/510 -f 3516/399/511 3519/402/511 3517/400/465 +f 3538/1283/460 3383/1111/461 3536/1281/461 +f 3531/1276/462 3377/1105/463 3532/1277/463 +f 3549/1296/464 3371/1099/465 3547/1294/465 +f 3540/1285/466 3362/1089/460 3538/1283/460 +f 3543/1289/467 3368/1096/468 3541/1290/468 +f 3534/1279/469 3381/1109/462 3531/1276/462 +f 3551/1298/470 3373/1101/464 3549/1296/464 +f 3541/1287/468 3365/1092/466 3540/1285/466 +f 3545/1292/471 3367/1094/467 3543/1289/467 +f 3536/1281/461 3384/1112/469 3534/1279/469 +f 3532/1277/463 3375/1103/470 3551/1298/470 +f 3547/1294/465 3369/1097/471 3545/1292/471 +f 3382/1110/469 3407/1136/462 3379/1107/462 +f 3378/1106/470 3401/1130/464 3376/1104/464 +f 3366/1093/468 3391/1119/466 3363/1090/466 +f 3372/1100/471 3395/1123/467 3370/1098/467 +f 3385/1113/461 3388/1116/469 3382/1110/469 +f 3380/1108/463 3403/1132/470 3378/1106/470 +f 3374/1102/465 3399/1128/471 3372/1100/471 +f 3364/1091/460 3386/1114/461 3385/1113/461 +f 3379/1107/462 3408/1137/463 3380/1108/463 +f 3376/1104/464 3402/1131/465 3374/1102/465 +f 3363/1090/466 3389/1117/460 3364/1091/460 +f 3370/1098/467 3393/1125/468 3366/1095/468 +f 3394/1122/466 3461/1192/460 3392/1120/460 +f 3398/1127/467 3468/1200/468 3396/1124/468 +f 3387/1115/469 3481/1213/462 3409/1138/462 +f 3406/1135/470 3473/1205/464 3404/1133/464 +f 3396/1301/468 3465/1196/466 3394/1122/466 +f 3397/1126/471 3467/1198/467 3398/1127/467 +f 3390/1118/461 3460/1191/469 3387/1115/469 +f 3405/1134/463 3475/1207/470 3406/1135/470 +f 3400/1129/465 3469/1201/471 3397/1126/471 +f 3392/1120/460 3458/1189/461 3390/1118/461 +f 3409/1138/462 3477/1209/463 3405/1134/463 +f 3404/1133/464 3471/1203/465 3400/1129/465 +f 3459/1190/469 3431/1161/462 3479/1211/462 +f 3478/1210/470 3425/1155/464 3476/1208/464 +f 3466/1197/468 3415/1144/466 3463/1194/466 +f 3472/1204/471 3419/1148/467 3470/1202/467 +f 3462/1193/461 3412/1141/469 3459/1190/469 +f 3480/1212/463 3427/1157/470 3478/1210/470 +f 3474/1206/465 3423/1153/471 3472/1204/471 +f 3464/1195/460 3410/1139/461 3462/1193/461 +f 3479/1211/462 3432/1162/463 3480/1212/463 +f 3476/1208/464 3426/1156/465 3474/1206/465 +f 3463/1194/466 3413/1142/460 3464/1195/460 +f 3470/1202/467 3417/1150/468 3466/1199/468 +f 3418/1147/466 3485/1217/460 3416/1145/460 +f 3422/1152/467 3492/1225/468 3420/1149/468 +f 3411/1140/469 3505/1238/462 3433/1163/462 +f 3430/1160/470 3497/1230/464 3428/1158/464 +f 3420/1302/468 3489/1221/466 3418/1147/466 +f 3421/1151/471 3491/1223/467 3422/1152/467 +f 3414/1143/461 3484/1216/469 3411/1140/469 +f 3429/1159/463 3499/1232/470 3430/1160/470 +f 3424/1154/465 3493/1226/471 3421/1151/471 +f 3416/1145/460 3482/1214/461 3414/1143/461 +f 3433/1163/462 3501/1234/463 3429/1159/463 +f 3428/1158/464 3495/1228/465 3424/1154/465 +f 3483/1215/469 3455/1186/462 3503/1236/462 +f 3502/1235/470 3449/1180/464 3500/1233/464 +f 3490/1222/468 3439/1169/466 3487/1219/466 +f 3496/1229/471 3443/1173/467 3494/1227/467 +f 3486/1218/461 3436/1166/469 3483/1215/469 +f 3504/1237/463 3451/1182/470 3502/1235/470 +f 3498/1231/465 3447/1178/471 3496/1229/471 +f 3488/1220/460 3434/1164/461 3486/1218/461 +f 3503/1236/462 3456/1187/463 3504/1237/463 +f 3500/1233/464 3450/1181/465 3498/1231/465 +f 3487/1219/466 3437/1167/460 3488/1220/460 +f 3494/1227/467 3441/1175/468 3490/1224/468 +f 3442/1172/466 3554/1322/472 3440/1170/460 +f 3446/1177/467 3555/1323/473 3444/1174/468 +f 3435/1165/469 3556/1324/474 3457/1188/462 +f 3454/1185/470 3557/1325/475 3452/1183/464 +f 3444/1303/468 3558/1326/476 3442/1172/466 +f 3445/1176/471 3559/1327/477 3446/1177/467 +f 3438/1168/461 3560/1328/478 3435/1165/469 +f 3453/1184/463 3561/1329/479 3454/1185/470 +f 3448/1179/465 3562/1330/480 3445/1176/471 +f 3440/1170/460 3563/1331/481 3438/1168/461 +f 3457/1188/462 3564/1332/482 3453/1184/463 +f 3452/1183/464 3565/1333/483 3448/1179/465 +f 3564/1332/482 3566/1334/484 3561/1329/479 +f 3565/1333/483 3567/1335/485 3562/1330/480 +f 3563/1331/481 3568/1336/486 3569/1337/487 +f 3556/1324/474 3570/1338/488 3564/1332/482 +f 3565/1333/483 3571/1339/489 3572/1340/490 +f 3558/1326/476 3568/1341/486 3554/1322/472 +f 3559/1327/477 3573/1342/491 3555/1323/473 +f 3556/1324/474 3574/1343/492 3575/1344/493 +f 3561/1329/479 3571/1345/489 3557/1325/475 +f 3555/1346/473 3576/1347/494 3558/1326/476 +f 3562/1330/480 3577/1348/495 3559/1327/477 +f 3563/1331/481 3574/1349/492 3560/1328/478 +f 3573/1342/491 3577/1350/495 3578/1351/446 +f 3577/1348/495 3567/1352/485 3578/1353/446 +f 3567/1335/485 3572/1354/490 3578/1355/446 +f 3572/1340/490 3571/1339/489 3578/1356/446 +f 3571/1345/489 3566/1357/484 3578/1358/446 +f 3566/1334/484 3570/1359/488 3578/1360/446 +f 3570/1338/488 3575/1361/493 3578/1362/446 +f 3575/1344/493 3574/1343/492 3578/1363/446 +f 3574/1349/492 3569/1364/487 3578/1365/446 +f 3569/1337/487 3568/1336/486 3578/1366/446 +f 3568/1341/486 3576/1367/494 3578/1368/446 +f 3576/1347/494 3573/1369/491 3578/1370/446 +f 3544/1316/496 3542/1288/497 3579/1371/447 +f 3542/1315/497 3539/1286/498 3579/1372/447 +f 3539/1284/498 3553/1314/499 3579/1373/447 +f 3553/1313/499 3537/1282/500 3579/1374/447 +f 3537/1312/500 3535/1280/501 3579/1375/447 +f 3535/1311/501 3533/1278/502 3579/1376/447 +f 3533/1310/502 3530/1275/503 3579/1377/447 +f 3530/1321/503 3552/1299/504 3579/1378/447 +f 3552/1320/504 3550/1297/505 3579/1379/447 +f 3550/1319/505 3548/1295/506 3579/1380/447 +f 3548/1318/506 3546/1293/507 3579/1381/447 +f 3546/1317/507 3544/1291/496 3579/1382/447 +f 3580/1383/461 3581/1384/508 3582/1385/508 +f 3583/1386/509 3584/1387/461 3580/1383/461 +f 3585/1388/465 3586/1389/510 3587/1390/510 +f 3588/1391/511 3589/1392/465 3585/1388/465 +f 3538/1283/460 3362/1089/460 3383/1111/461 +f 3531/1276/462 3381/1109/462 3377/1105/463 +f 3549/1296/464 3373/1101/464 3371/1099/465 +f 3540/1285/466 3365/1092/466 3362/1089/460 +f 3543/1289/467 3367/1094/467 3368/1096/468 +f 3534/1279/469 3384/1112/469 3381/1109/462 +f 3551/1298/470 3375/1103/470 3373/1101/464 +f 3541/1287/468 3368/1300/468 3365/1092/466 +f 3545/1292/471 3369/1097/471 3367/1094/467 +f 3536/1281/461 3383/1111/461 3384/1112/469 +f 3532/1277/463 3377/1105/463 3375/1103/470 +f 3547/1294/465 3371/1099/465 3369/1097/471 +f 3382/1110/469 3388/1116/469 3407/1136/462 +f 3378/1106/470 3403/1132/470 3401/1130/464 +f 3366/1093/468 3393/1121/468 3391/1119/466 +f 3372/1100/471 3399/1128/471 3395/1123/467 +f 3385/1113/461 3386/1114/461 3388/1116/469 +f 3380/1108/463 3408/1137/463 3403/1132/470 +f 3374/1102/465 3402/1131/465 3399/1128/471 +f 3364/1091/460 3389/1117/460 3386/1114/461 +f 3379/1107/462 3407/1136/462 3408/1137/463 +f 3376/1104/464 3401/1130/464 3402/1131/465 +f 3363/1090/466 3391/1119/466 3389/1117/460 +f 3370/1098/467 3395/1123/467 3393/1125/468 +f 3394/1122/466 3465/1196/466 3461/1192/460 +f 3398/1127/467 3467/1198/467 3468/1200/468 +f 3387/1115/469 3460/1191/469 3481/1213/462 +f 3406/1135/470 3475/1207/470 3473/1205/464 +f 3396/1301/468 3468/1304/468 3465/1196/466 +f 3397/1126/471 3469/1201/471 3467/1198/467 +f 3390/1118/461 3458/1189/461 3460/1191/469 +f 3405/1134/463 3477/1209/463 3475/1207/470 +f 3400/1129/465 3471/1203/465 3469/1201/471 +f 3392/1120/460 3461/1192/460 3458/1189/461 +f 3409/1138/462 3481/1213/462 3477/1209/463 +f 3404/1133/464 3473/1205/464 3471/1203/465 +f 3459/1190/469 3412/1141/469 3431/1161/462 +f 3478/1210/470 3427/1157/470 3425/1155/464 +f 3466/1197/468 3417/1146/468 3415/1144/466 +f 3472/1204/471 3423/1153/471 3419/1148/467 +f 3462/1193/461 3410/1139/461 3412/1141/469 +f 3480/1212/463 3432/1162/463 3427/1157/470 +f 3474/1206/465 3426/1156/465 3423/1153/471 +f 3464/1195/460 3413/1142/460 3410/1139/461 +f 3479/1211/462 3431/1161/462 3432/1162/463 +f 3476/1208/464 3425/1155/464 3426/1156/465 +f 3463/1194/466 3415/1144/466 3413/1142/460 +f 3470/1202/467 3419/1148/467 3417/1150/468 +f 3418/1147/466 3489/1221/466 3485/1217/460 +f 3422/1152/467 3491/1223/467 3492/1225/468 +f 3411/1140/469 3484/1216/469 3505/1238/462 +f 3430/1160/470 3499/1232/470 3497/1230/464 +f 3420/1302/468 3492/1305/468 3489/1221/466 +f 3421/1151/471 3493/1226/471 3491/1223/467 +f 3414/1143/461 3482/1214/461 3484/1216/469 +f 3429/1159/463 3501/1234/463 3499/1232/470 +f 3424/1154/465 3495/1228/465 3493/1226/471 +f 3416/1145/460 3485/1217/460 3482/1214/461 +f 3433/1163/462 3505/1238/462 3501/1234/463 +f 3428/1158/464 3497/1230/464 3495/1228/465 +f 3483/1215/469 3436/1166/469 3455/1186/462 +f 3502/1235/470 3451/1182/470 3449/1180/464 +f 3490/1222/468 3441/1171/468 3439/1169/466 +f 3496/1229/471 3447/1178/471 3443/1173/467 +f 3486/1218/461 3434/1164/461 3436/1166/469 +f 3504/1237/463 3456/1187/463 3451/1182/470 +f 3498/1231/465 3450/1181/465 3447/1178/471 +f 3488/1220/460 3437/1167/460 3434/1164/461 +f 3503/1236/462 3455/1186/462 3456/1187/463 +f 3500/1233/464 3449/1180/464 3450/1181/465 +f 3487/1219/466 3439/1169/466 3437/1167/460 +f 3494/1227/467 3443/1173/467 3441/1175/468 +f 3442/1172/466 3558/1326/476 3554/1322/472 +f 3446/1177/467 3559/1327/477 3555/1323/473 +f 3435/1165/469 3560/1328/478 3556/1324/474 +f 3454/1185/470 3561/1329/479 3557/1325/475 +f 3444/1303/468 3555/1346/473 3558/1326/476 +f 3445/1176/471 3562/1330/480 3559/1327/477 +f 3438/1168/461 3563/1331/481 3560/1328/478 +f 3453/1184/463 3564/1332/482 3561/1329/479 +f 3448/1179/465 3565/1333/483 3562/1330/480 +f 3440/1170/460 3554/1322/472 3563/1331/481 +f 3457/1188/462 3556/1324/474 3564/1332/482 +f 3452/1183/464 3557/1325/475 3565/1333/483 +f 3564/1332/482 3570/1359/488 3566/1334/484 +f 3565/1333/483 3572/1354/490 3567/1335/485 +f 3563/1331/481 3554/1322/472 3568/1336/486 +f 3556/1324/474 3575/1361/493 3570/1338/488 +f 3565/1333/483 3557/1325/475 3571/1339/489 +f 3558/1326/476 3576/1367/494 3568/1341/486 +f 3559/1327/477 3577/1350/495 3573/1342/491 +f 3556/1324/474 3560/1328/478 3574/1343/492 +f 3561/1329/479 3566/1357/484 3571/1345/489 +f 3555/1346/473 3573/1369/491 3576/1347/494 +f 3562/1330/480 3567/1352/485 3577/1348/495 +f 3563/1331/481 3569/1364/487 3574/1349/492 +f 3580/1383/461 3584/1387/461 3581/1384/508 +f 3583/1386/509 3590/1393/509 3584/1387/461 +f 3585/1388/465 3589/1392/465 3586/1389/510 +f 3588/1391/511 3591/1394/511 3589/1392/465 o ABM_Missile v -0.176777 3.500000 -0.176777 v 0.176777 3.500000 -0.176777 @@ -10283,765 +11431,765 @@ vn -0.8660 0.0000 -0.5000 vn 0.8660 -0.0000 -0.5000 vn 0.8660 -0.0000 0.5000 s off -f 3520/403/512 3521/404/512 3522/405/512 -f 3523/406/512 3524/407/512 3525/408/512 -f 3526/409/512 3525/410/512 3527/411/512 -f 3526/409/512 3528/412/512 3529/413/512 -f 3529/413/512 3530/414/512 3531/415/512 -f 3532/416/512 3530/417/512 3533/418/512 -f 3534/419/512 3533/420/512 3535/421/512 -f 3536/422/512 3535/423/512 3537/424/512 -f 3536/422/512 3538/425/512 3539/426/512 -f 3540/427/512 3538/428/512 3541/429/512 -f 3542/430/512 3541/431/512 3543/432/512 -f 3542/430/512 3544/433/512 3545/434/512 -f 3545/434/512 3546/435/512 3547/436/512 -f 3548/437/512 3549/438/512 3550/439/512 -f 3551/440/512 3546/441/512 3552/442/512 -f 3550/439/512 3524/443/512 3553/444/512 -f 3551/440/512 3554/445/512 3548/437/512 -f 3555/446/512 3556/447/512 3557/448/512 -f 3558/449/513 3559/450/513 3560/451/513 -f 3561/452/514 3562/453/514 3559/450/514 -f 3563/454/515 3561/455/515 3558/456/515 -f 3562/453/516 3560/457/516 3559/458/516 -f 3564/459/512 3565/460/512 3566/461/512 -f 3567/462/517 3568/463/517 3569/464/517 -f 3568/465/518 3564/459/518 3566/461/518 -f 3565/466/519 3568/465/519 3566/461/519 -f 3570/467/520 3571/468/520 3572/469/520 -f 3573/470/512 3574/471/512 3575/472/512 -f 3576/473/512 3577/474/512 3578/475/512 -f 3579/476/512 3578/477/512 3580/478/512 -f 3579/476/512 3581/479/512 3582/480/512 -f 3582/480/512 3583/481/512 3584/482/512 -f 3585/483/512 3583/484/512 3586/485/512 -f 3587/486/512 3586/487/512 3588/488/512 -f 3589/489/512 3588/490/512 3590/491/512 -f 3589/489/512 3591/492/512 3592/493/512 -f 3593/494/512 3591/495/512 3594/496/512 -f 3595/497/512 3594/498/512 3596/499/512 -f 3595/497/512 3597/500/512 3598/501/512 -f 3598/501/512 3599/502/512 3600/503/512 -f 3601/504/512 3602/505/512 3603/506/512 -f 3604/507/512 3599/508/512 3605/509/512 -f 3603/506/512 3577/510/512 3606/511/512 -f 3604/507/512 3607/512/512 3601/504/512 -f 3608/513/512 3609/514/512 3610/515/512 -f 3611/516/512 3612/517/512 3613/518/512 -f 3614/519/521 3615/520/521 3616/521/521 -f 3615/522/522 3611/516/522 3613/518/522 -f 3612/523/523 3615/522/523 3613/518/523 -f 3617/524/512 3618/525/512 3619/526/512 -f 3620/527/512 3619/528/512 3621/529/512 -f 3620/527/512 3622/530/512 3623/531/512 -f 3623/531/512 3624/532/512 3625/533/512 -f 3626/534/512 3624/535/512 3627/536/512 -f 3628/537/512 3627/538/512 3629/539/512 -f 3630/540/512 3629/541/512 3631/542/512 -f 3630/540/512 3632/543/512 3633/544/512 -f 3634/545/512 3632/546/512 3635/547/512 -f 3634/545/512 3636/548/512 3637/549/512 -f 3637/549/512 3638/550/512 3639/551/512 -f 3639/551/512 3640/552/512 3641/553/512 -f 3642/554/512 3643/555/512 3644/556/512 -f 3645/557/512 3640/558/512 3646/559/512 -f 3644/556/512 3618/560/512 3647/561/512 -f 3645/557/512 3648/562/512 3642/554/512 -f 3649/563/512 3650/564/512 3651/565/512 -f 3652/566/512 3653/567/512 3654/568/512 -f 3655/569/524 3656/570/524 3657/571/524 -f 3656/572/525 3652/566/525 3654/568/525 -f 3653/573/526 3656/572/526 3654/568/526 -f 3658/574/512 3659/575/512 3660/576/512 -f 3661/577/512 3660/578/512 3662/579/512 -f 3661/577/512 3663/580/512 3664/581/512 -f 3664/581/512 3665/582/512 3666/583/512 -f 3667/584/512 3665/585/512 3668/586/512 -f 3669/587/512 3668/588/512 3670/589/512 -f 3671/590/512 3670/591/512 3672/592/512 -f 3671/590/512 3673/593/512 3674/594/512 -f 3675/595/512 3673/596/512 3676/597/512 -f 3677/598/512 3676/599/512 3678/600/512 -f 3677/598/512 3679/601/512 3680/602/512 -f 3680/602/512 3681/603/512 3682/604/512 -f 3683/605/512 3684/606/512 3685/607/512 -f 3686/608/512 3681/609/512 3687/610/512 -f 3685/607/512 3659/611/512 3688/612/512 -f 3683/605/512 3687/613/512 3689/614/512 -f 3690/615/512 3691/616/512 3692/617/512 -f 3693/618/512 3694/619/512 3695/620/512 -f 3696/621/527 3697/622/527 3698/623/527 -f 3697/624/528 3693/618/528 3695/620/528 -f 3694/625/529 3697/624/529 3695/620/529 -f 3699/626/530 3700/627/530 3701/628/530 -f 3702/629/531 3703/630/531 3700/627/531 -f 3704/631/532 3702/632/532 3699/633/532 -f 3703/630/533 3701/634/533 3700/635/533 -f 3705/636/520 3706/637/520 3707/638/520 -f 3708/639/512 3709/640/512 3710/641/512 -f 3711/642/534 3712/643/534 3713/644/534 -f 3714/645/535 3715/646/535 3712/643/535 -f 3716/647/536 3714/648/536 3711/649/536 -f 3715/646/537 3713/650/537 3712/651/537 -f 3717/652/520 3718/653/520 3719/654/520 -f 3720/655/512 3721/656/512 3722/657/512 -f 3723/658/538 3724/659/538 3725/660/538 -f 3724/659/539 3726/661/539 3725/660/539 -f 3727/662/540 3724/663/540 3728/664/540 -f 3726/661/541 3723/665/541 3725/666/541 -f 3729/667/520 3730/668/520 3731/669/520 -f 3732/670/512 3733/671/512 3734/672/512 -f 3520/403/512 3735/673/512 3736/674/512 -f 3736/674/512 3737/675/512 3520/403/512 -f 3737/675/512 3521/404/512 3520/403/512 -f 3521/404/512 3738/676/512 3739/677/512 -f 3739/677/512 3740/678/512 3522/405/512 -f 3522/405/512 3741/679/512 3742/680/512 -f 3742/680/512 3743/681/512 3744/682/512 -f 3744/682/512 3745/683/512 3520/403/512 -f 3745/683/512 3746/684/512 3520/403/512 -f 3746/684/512 3747/685/512 3520/403/512 -f 3521/404/512 3739/677/512 3522/405/512 -f 3522/405/512 3742/680/512 3520/403/512 -f 3742/680/512 3744/682/512 3520/403/512 -f 3523/406/512 3553/686/512 3524/407/512 -f 3526/409/512 3523/406/512 3525/410/512 -f 3526/409/512 3527/687/512 3528/412/512 -f 3529/413/512 3528/688/512 3530/414/512 -f 3532/416/512 3531/415/512 3530/417/512 -f 3534/419/512 3532/416/512 3533/420/512 -f 3536/422/512 3534/419/512 3535/423/512 -f 3536/422/512 3537/689/512 3538/425/512 -f 3540/427/512 3539/426/512 3538/428/512 -f 3542/430/512 3540/427/512 3541/431/512 -f 3542/430/512 3543/690/512 3544/433/512 -f 3545/434/512 3544/691/512 3546/435/512 -f 3548/437/512 3554/692/512 3549/438/512 -f 3551/440/512 3547/436/512 3546/441/512 -f 3550/439/512 3549/693/512 3524/443/512 -f 3551/440/512 3552/694/512 3554/445/512 -f 3557/448/512 3748/695/512 3749/696/512 -f 3749/696/512 3750/697/512 3557/448/512 -f 3750/697/512 3751/698/512 3557/448/512 -f 3751/698/512 3752/699/512 3753/700/512 -f 3753/700/512 3754/701/512 3555/446/512 -f 3555/446/512 3755/702/512 3556/447/512 -f 3755/702/512 3756/703/512 3556/447/512 -f 3756/703/512 3757/704/512 3556/447/512 -f 3556/447/512 3758/705/512 3759/706/512 -f 3759/706/512 3760/707/512 3557/448/512 -f 3751/698/512 3753/700/512 3557/448/512 -f 3753/700/512 3555/446/512 3557/448/512 -f 3556/447/512 3759/706/512 3557/448/512 -f 3558/449/513 3561/452/513 3559/450/513 -f 3561/452/514 3563/454/514 3562/453/514 -f 3568/465/518 3567/462/518 3564/459/518 -f 3565/466/519 3569/708/519 3568/465/519 -f 3572/469/520 3761/709/520 3570/467/520 -f 3570/467/520 3762/710/520 3571/468/520 -f 3571/468/520 3763/711/520 3572/469/520 -f 3575/472/512 3764/712/512 3765/713/512 -f 3765/713/512 3766/714/512 3575/472/512 -f 3766/714/512 3573/470/512 3575/472/512 -f 3576/473/512 3606/715/512 3577/474/512 -f 3579/476/512 3576/473/512 3578/477/512 -f 3579/476/512 3580/716/512 3581/479/512 -f 3582/480/512 3581/717/512 3583/481/512 -f 3585/483/512 3584/482/512 3583/484/512 -f 3587/486/512 3585/483/512 3586/487/512 -f 3589/489/512 3587/486/512 3588/490/512 -f 3589/489/512 3590/718/512 3591/492/512 -f 3593/494/512 3592/493/512 3591/495/512 -f 3595/497/512 3593/494/512 3594/498/512 -f 3595/497/512 3596/719/512 3597/500/512 -f 3598/501/512 3597/720/512 3599/502/512 -f 3601/504/512 3607/721/512 3602/505/512 -f 3604/507/512 3600/503/512 3599/508/512 -f 3603/506/512 3602/722/512 3577/510/512 -f 3604/507/512 3605/723/512 3607/512/512 -f 3610/515/512 3767/724/512 3768/725/512 -f 3768/725/512 3769/726/512 3770/727/512 -f 3770/727/512 3771/728/512 3772/729/512 -f 3772/729/512 3773/730/512 3774/731/512 -f 3774/731/512 3775/732/512 3776/733/512 -f 3776/733/512 3777/734/512 3608/513/512 -f 3608/513/512 3778/735/512 3609/514/512 -f 3609/514/512 3779/736/512 3610/515/512 -f 3610/515/512 3768/725/512 3774/731/512 -f 3768/725/512 3770/727/512 3774/731/512 -f 3770/727/512 3772/729/512 3774/731/512 -f 3774/731/512 3776/733/512 3610/515/512 -f 3776/733/512 3608/513/512 3610/515/512 -f 3615/522/522 3614/519/522 3611/516/522 -f 3612/523/523 3616/737/523 3615/522/523 -f 3617/524/512 3647/738/512 3618/525/512 -f 3620/527/512 3617/524/512 3619/528/512 -f 3620/527/512 3621/739/512 3622/530/512 -f 3623/531/512 3622/740/512 3624/532/512 -f 3626/534/512 3625/533/512 3624/535/512 -f 3628/537/512 3626/534/512 3627/538/512 -f 3630/540/512 3628/537/512 3629/541/512 -f 3630/540/512 3631/741/512 3632/543/512 -f 3634/545/512 3633/544/512 3632/546/512 -f 3634/545/512 3635/742/512 3636/548/512 -f 3637/549/512 3636/743/512 3638/550/512 -f 3639/551/512 3638/744/512 3640/552/512 -f 3642/554/512 3648/745/512 3643/555/512 -f 3645/557/512 3641/553/512 3640/558/512 -f 3644/556/512 3643/746/512 3618/560/512 -f 3645/557/512 3646/747/512 3648/562/512 -f 3651/565/512 3780/748/512 3781/749/512 -f 3781/749/512 3782/750/512 3783/751/512 -f 3783/751/512 3784/752/512 3785/753/512 -f 3785/753/512 3786/754/512 3649/563/512 -f 3649/563/512 3787/755/512 3650/564/512 -f 3787/755/512 3788/756/512 3650/564/512 -f 3788/756/512 3789/757/512 3650/564/512 -f 3650/564/512 3790/758/512 3791/759/512 -f 3791/759/512 3792/760/512 3651/565/512 -f 3651/565/512 3781/749/512 3783/751/512 -f 3783/751/512 3785/753/512 3651/565/512 -f 3785/753/512 3649/563/512 3651/565/512 -f 3650/564/512 3791/759/512 3651/565/512 -f 3656/572/525 3655/569/525 3652/566/525 -f 3653/573/526 3657/761/526 3656/572/526 -f 3658/574/512 3688/762/512 3659/575/512 -f 3661/577/512 3658/574/512 3660/578/512 -f 3661/577/512 3662/763/512 3663/580/512 -f 3664/581/512 3663/764/512 3665/582/512 -f 3667/584/512 3666/583/512 3665/585/512 -f 3669/587/512 3667/584/512 3668/588/512 -f 3671/590/512 3669/587/512 3670/591/512 -f 3671/590/512 3672/765/512 3673/593/512 -f 3675/595/512 3674/594/512 3673/596/512 -f 3677/598/512 3675/595/512 3676/599/512 -f 3677/598/512 3678/766/512 3679/601/512 -f 3680/602/512 3679/767/512 3681/603/512 -f 3683/605/512 3689/768/512 3684/606/512 -f 3686/608/512 3682/604/512 3681/609/512 -f 3685/607/512 3684/769/512 3659/611/512 -f 3683/605/512 3686/608/512 3687/613/512 -f 3692/617/512 3793/770/512 3794/771/512 -f 3794/771/512 3795/772/512 3692/617/512 -f 3795/772/512 3796/773/512 3692/617/512 -f 3796/773/512 3797/774/512 3798/775/512 -f 3798/775/512 3799/776/512 3690/615/512 -f 3690/615/512 3800/777/512 3691/616/512 -f 3800/777/512 3801/778/512 3691/616/512 -f 3801/778/512 3802/779/512 3691/616/512 -f 3691/616/512 3803/780/512 3804/781/512 -f 3804/781/512 3805/782/512 3692/617/512 -f 3796/773/512 3798/775/512 3692/617/512 -f 3798/775/512 3690/615/512 3692/617/512 -f 3691/616/512 3804/781/512 3692/617/512 -f 3697/624/528 3696/621/528 3693/618/528 -f 3694/625/529 3698/783/529 3697/624/529 -f 3699/626/530 3702/629/530 3700/627/530 -f 3702/629/531 3704/631/531 3703/630/531 -f 3706/637/520 3806/784/520 3707/638/520 -f 3707/638/520 3807/785/520 3808/786/520 -f 3808/786/520 3705/636/520 3707/638/520 -f 3710/641/512 3809/787/512 3810/788/512 -f 3810/788/512 3811/789/512 3710/641/512 -f 3811/789/512 3708/639/512 3710/641/512 -f 3711/642/534 3714/645/534 3712/643/534 -f 3714/645/535 3716/647/535 3715/646/535 -f 3719/654/520 3812/790/520 3717/652/520 -f 3717/652/520 3813/791/520 3718/653/520 -f 3718/653/520 3814/792/520 3719/654/520 -f 3722/657/512 3815/793/512 3816/794/512 -f 3816/794/512 3817/795/512 3722/657/512 -f 3817/795/512 3720/655/512 3722/657/512 -f 3723/658/538 3728/796/538 3724/659/538 -f 3724/659/539 3727/662/539 3726/661/539 -f 3731/669/520 3818/797/520 3729/667/520 -f 3729/667/520 3819/798/520 3730/668/520 -f 3730/668/520 3820/799/520 3731/669/520 -f 3734/672/512 3821/800/512 3822/801/512 -f 3822/801/512 3823/802/512 3734/672/512 -f 3823/802/512 3732/670/512 3734/672/512 +f 3592/1395/512 3593/1396/512 3594/1397/512 +f 3595/1398/512 3596/1399/512 3597/1400/512 +f 3598/1401/512 3597/1402/512 3599/1403/512 +f 3598/1401/512 3600/1404/512 3601/1405/512 +f 3601/1405/512 3602/1406/512 3603/1407/512 +f 3604/1408/512 3602/1409/512 3605/1410/512 +f 3606/1411/512 3605/1412/512 3607/1413/512 +f 3608/1414/512 3607/1415/512 3609/1416/512 +f 3608/1414/512 3610/1417/512 3611/1418/512 +f 3612/1419/512 3610/1420/512 3613/1421/512 +f 3614/1422/512 3613/1423/512 3615/1424/512 +f 3614/1422/512 3616/1425/512 3617/1426/512 +f 3617/1426/512 3618/1427/512 3619/1428/512 +f 3620/1429/512 3621/1430/512 3622/1431/512 +f 3623/1432/512 3618/1433/512 3624/1434/512 +f 3622/1431/512 3596/1435/512 3625/1436/512 +f 3623/1432/512 3626/1437/512 3620/1429/512 +f 3627/1438/512 3628/1439/512 3629/1440/512 +f 3630/1441/513 3631/1442/513 3632/1443/513 +f 3633/1444/514 3634/1445/514 3631/1442/514 +f 3635/1446/515 3633/1447/515 3630/1448/515 +f 3634/1445/516 3632/1449/516 3631/1450/516 +f 3636/1451/512 3637/1452/512 3638/1453/512 +f 3639/1454/517 3640/1455/517 3641/1456/517 +f 3640/1457/518 3636/1451/518 3638/1453/518 +f 3637/1458/519 3640/1457/519 3638/1453/519 +f 3642/1459/520 3643/1460/520 3644/1461/520 +f 3645/1462/512 3646/1463/512 3647/1464/512 +f 3648/1465/512 3649/1466/512 3650/1467/512 +f 3651/1468/512 3650/1469/512 3652/1470/512 +f 3651/1468/512 3653/1471/512 3654/1472/512 +f 3654/1472/512 3655/1473/512 3656/1474/512 +f 3657/1475/512 3655/1476/512 3658/1477/512 +f 3659/1478/512 3658/1479/512 3660/1480/512 +f 3661/1481/512 3660/1482/512 3662/1483/512 +f 3661/1481/512 3663/1484/512 3664/1485/512 +f 3665/1486/512 3663/1487/512 3666/1488/512 +f 3667/1489/512 3666/1490/512 3668/1491/512 +f 3667/1489/512 3669/1492/512 3670/1493/512 +f 3670/1493/512 3671/1494/512 3672/1495/512 +f 3673/1496/512 3674/1497/512 3675/1498/512 +f 3676/1499/512 3671/1500/512 3677/1501/512 +f 3675/1498/512 3649/1502/512 3678/1503/512 +f 3676/1499/512 3679/1504/512 3673/1496/512 +f 3680/1505/512 3681/1506/512 3682/1507/512 +f 3683/1508/512 3684/1509/512 3685/1510/512 +f 3686/1511/521 3687/1512/521 3688/1513/521 +f 3687/1514/522 3683/1508/522 3685/1510/522 +f 3684/1515/523 3687/1514/523 3685/1510/523 +f 3689/1516/512 3690/1517/512 3691/1518/512 +f 3692/1519/512 3691/1520/512 3693/1521/512 +f 3692/1519/512 3694/1522/512 3695/1523/512 +f 3695/1523/512 3696/1524/512 3697/1525/512 +f 3698/1526/512 3696/1527/512 3699/1528/512 +f 3700/1529/512 3699/1530/512 3701/1531/512 +f 3702/1532/512 3701/1533/512 3703/1534/512 +f 3702/1532/512 3704/1535/512 3705/1536/512 +f 3706/1537/512 3704/1538/512 3707/1539/512 +f 3706/1537/512 3708/1540/512 3709/1541/512 +f 3709/1541/512 3710/1542/512 3711/1543/512 +f 3711/1543/512 3712/1544/512 3713/1545/512 +f 3714/1546/512 3715/1547/512 3716/1548/512 +f 3717/1549/512 3712/1550/512 3718/1551/512 +f 3716/1548/512 3690/1552/512 3719/1553/512 +f 3717/1549/512 3720/1554/512 3714/1546/512 +f 3721/1555/512 3722/1556/512 3723/1557/512 +f 3724/1558/512 3725/1559/512 3726/1560/512 +f 3727/1561/524 3728/1562/524 3729/1563/524 +f 3728/1564/525 3724/1558/525 3726/1560/525 +f 3725/1565/526 3728/1564/526 3726/1560/526 +f 3730/1566/512 3731/1567/512 3732/1568/512 +f 3733/1569/512 3732/1570/512 3734/1571/512 +f 3733/1569/512 3735/1572/512 3736/1573/512 +f 3736/1573/512 3737/1574/512 3738/1575/512 +f 3739/1576/512 3737/1577/512 3740/1578/512 +f 3741/1579/512 3740/1580/512 3742/1581/512 +f 3743/1582/512 3742/1583/512 3744/1584/512 +f 3743/1582/512 3745/1585/512 3746/1586/512 +f 3747/1587/512 3745/1588/512 3748/1589/512 +f 3749/1590/512 3748/1591/512 3750/1592/512 +f 3749/1590/512 3751/1593/512 3752/1594/512 +f 3752/1594/512 3753/1595/512 3754/1596/512 +f 3755/1597/512 3756/1598/512 3757/1599/512 +f 3758/1600/512 3753/1601/512 3759/1602/512 +f 3757/1599/512 3731/1603/512 3760/1604/512 +f 3755/1597/512 3759/1605/512 3761/1606/512 +f 3762/1607/512 3763/1608/512 3764/1609/512 +f 3765/1610/512 3766/1611/512 3767/1612/512 +f 3768/1613/527 3769/1614/527 3770/1615/527 +f 3769/1616/528 3765/1610/528 3767/1612/528 +f 3766/1617/529 3769/1616/529 3767/1612/529 +f 3771/1618/530 3772/1619/530 3773/1620/530 +f 3774/1621/531 3775/1622/531 3772/1619/531 +f 3776/1623/532 3774/1624/532 3771/1625/532 +f 3775/1622/533 3773/1626/533 3772/1627/533 +f 3777/1628/520 3778/1629/520 3779/1630/520 +f 3780/1631/512 3781/1632/512 3782/1633/512 +f 3783/1634/534 3784/1635/534 3785/1636/534 +f 3786/1637/535 3787/1638/535 3784/1635/535 +f 3788/1639/536 3786/1640/536 3783/1641/536 +f 3787/1638/537 3785/1642/537 3784/1643/537 +f 3789/1644/520 3790/1645/520 3791/1646/520 +f 3792/1647/512 3793/1648/512 3794/1649/512 +f 3795/1650/538 3796/1651/538 3797/1652/538 +f 3796/1651/539 3798/1653/539 3797/1652/539 +f 3799/1654/540 3796/1655/540 3800/1656/540 +f 3798/1653/541 3795/1657/541 3797/1658/541 +f 3801/1659/520 3802/1660/520 3803/1661/520 +f 3804/1662/512 3805/1663/512 3806/1664/512 +f 3592/1395/512 3807/1665/512 3808/1666/512 +f 3808/1666/512 3809/1667/512 3592/1395/512 +f 3809/1667/512 3593/1396/512 3592/1395/512 +f 3593/1396/512 3810/1668/512 3811/1669/512 +f 3811/1669/512 3812/1670/512 3594/1397/512 +f 3594/1397/512 3813/1671/512 3814/1672/512 +f 3814/1672/512 3815/1673/512 3816/1674/512 +f 3816/1674/512 3817/1675/512 3592/1395/512 +f 3817/1675/512 3818/1676/512 3592/1395/512 +f 3818/1676/512 3819/1677/512 3592/1395/512 +f 3593/1396/512 3811/1669/512 3594/1397/512 +f 3594/1397/512 3814/1672/512 3592/1395/512 +f 3814/1672/512 3816/1674/512 3592/1395/512 +f 3595/1398/512 3625/1678/512 3596/1399/512 +f 3598/1401/512 3595/1398/512 3597/1402/512 +f 3598/1401/512 3599/1679/512 3600/1404/512 +f 3601/1405/512 3600/1680/512 3602/1406/512 +f 3604/1408/512 3603/1407/512 3602/1409/512 +f 3606/1411/512 3604/1408/512 3605/1412/512 +f 3608/1414/512 3606/1411/512 3607/1415/512 +f 3608/1414/512 3609/1681/512 3610/1417/512 +f 3612/1419/512 3611/1418/512 3610/1420/512 +f 3614/1422/512 3612/1419/512 3613/1423/512 +f 3614/1422/512 3615/1682/512 3616/1425/512 +f 3617/1426/512 3616/1683/512 3618/1427/512 +f 3620/1429/512 3626/1684/512 3621/1430/512 +f 3623/1432/512 3619/1428/512 3618/1433/512 +f 3622/1431/512 3621/1685/512 3596/1435/512 +f 3623/1432/512 3624/1686/512 3626/1437/512 +f 3629/1440/512 3820/1687/512 3821/1688/512 +f 3821/1688/512 3822/1689/512 3629/1440/512 +f 3822/1689/512 3823/1690/512 3629/1440/512 +f 3823/1690/512 3824/1691/512 3825/1692/512 +f 3825/1692/512 3826/1693/512 3627/1438/512 +f 3627/1438/512 3827/1694/512 3628/1439/512 +f 3827/1694/512 3828/1695/512 3628/1439/512 +f 3828/1695/512 3829/1696/512 3628/1439/512 +f 3628/1439/512 3830/1697/512 3831/1698/512 +f 3831/1698/512 3832/1699/512 3629/1440/512 +f 3823/1690/512 3825/1692/512 3629/1440/512 +f 3825/1692/512 3627/1438/512 3629/1440/512 +f 3628/1439/512 3831/1698/512 3629/1440/512 +f 3630/1441/513 3633/1444/513 3631/1442/513 +f 3633/1444/514 3635/1446/514 3634/1445/514 +f 3640/1457/518 3639/1454/518 3636/1451/518 +f 3637/1458/519 3641/1700/519 3640/1457/519 +f 3644/1461/520 3833/1701/520 3642/1459/520 +f 3642/1459/520 3834/1702/520 3643/1460/520 +f 3643/1460/520 3835/1703/520 3644/1461/520 +f 3647/1464/512 3836/1704/512 3837/1705/512 +f 3837/1705/512 3838/1706/512 3647/1464/512 +f 3838/1706/512 3645/1462/512 3647/1464/512 +f 3648/1465/512 3678/1707/512 3649/1466/512 +f 3651/1468/512 3648/1465/512 3650/1469/512 +f 3651/1468/512 3652/1708/512 3653/1471/512 +f 3654/1472/512 3653/1709/512 3655/1473/512 +f 3657/1475/512 3656/1474/512 3655/1476/512 +f 3659/1478/512 3657/1475/512 3658/1479/512 +f 3661/1481/512 3659/1478/512 3660/1482/512 +f 3661/1481/512 3662/1710/512 3663/1484/512 +f 3665/1486/512 3664/1485/512 3663/1487/512 +f 3667/1489/512 3665/1486/512 3666/1490/512 +f 3667/1489/512 3668/1711/512 3669/1492/512 +f 3670/1493/512 3669/1712/512 3671/1494/512 +f 3673/1496/512 3679/1713/512 3674/1497/512 +f 3676/1499/512 3672/1495/512 3671/1500/512 +f 3675/1498/512 3674/1714/512 3649/1502/512 +f 3676/1499/512 3677/1715/512 3679/1504/512 +f 3682/1507/512 3839/1716/512 3840/1717/512 +f 3840/1717/512 3841/1718/512 3842/1719/512 +f 3842/1719/512 3843/1720/512 3844/1721/512 +f 3844/1721/512 3845/1722/512 3846/1723/512 +f 3846/1723/512 3847/1724/512 3848/1725/512 +f 3848/1725/512 3849/1726/512 3680/1505/512 +f 3680/1505/512 3850/1727/512 3681/1506/512 +f 3681/1506/512 3851/1728/512 3682/1507/512 +f 3682/1507/512 3840/1717/512 3846/1723/512 +f 3840/1717/512 3842/1719/512 3846/1723/512 +f 3842/1719/512 3844/1721/512 3846/1723/512 +f 3846/1723/512 3848/1725/512 3682/1507/512 +f 3848/1725/512 3680/1505/512 3682/1507/512 +f 3687/1514/522 3686/1511/522 3683/1508/522 +f 3684/1515/523 3688/1729/523 3687/1514/523 +f 3689/1516/512 3719/1730/512 3690/1517/512 +f 3692/1519/512 3689/1516/512 3691/1520/512 +f 3692/1519/512 3693/1731/512 3694/1522/512 +f 3695/1523/512 3694/1732/512 3696/1524/512 +f 3698/1526/512 3697/1525/512 3696/1527/512 +f 3700/1529/512 3698/1526/512 3699/1530/512 +f 3702/1532/512 3700/1529/512 3701/1533/512 +f 3702/1532/512 3703/1733/512 3704/1535/512 +f 3706/1537/512 3705/1536/512 3704/1538/512 +f 3706/1537/512 3707/1734/512 3708/1540/512 +f 3709/1541/512 3708/1735/512 3710/1542/512 +f 3711/1543/512 3710/1736/512 3712/1544/512 +f 3714/1546/512 3720/1737/512 3715/1547/512 +f 3717/1549/512 3713/1545/512 3712/1550/512 +f 3716/1548/512 3715/1738/512 3690/1552/512 +f 3717/1549/512 3718/1739/512 3720/1554/512 +f 3723/1557/512 3852/1740/512 3853/1741/512 +f 3853/1741/512 3854/1742/512 3855/1743/512 +f 3855/1743/512 3856/1744/512 3857/1745/512 +f 3857/1745/512 3858/1746/512 3721/1555/512 +f 3721/1555/512 3859/1747/512 3722/1556/512 +f 3859/1747/512 3860/1748/512 3722/1556/512 +f 3860/1748/512 3861/1749/512 3722/1556/512 +f 3722/1556/512 3862/1750/512 3863/1751/512 +f 3863/1751/512 3864/1752/512 3723/1557/512 +f 3723/1557/512 3853/1741/512 3855/1743/512 +f 3855/1743/512 3857/1745/512 3723/1557/512 +f 3857/1745/512 3721/1555/512 3723/1557/512 +f 3722/1556/512 3863/1751/512 3723/1557/512 +f 3728/1564/525 3727/1561/525 3724/1558/525 +f 3725/1565/526 3729/1753/526 3728/1564/526 +f 3730/1566/512 3760/1754/512 3731/1567/512 +f 3733/1569/512 3730/1566/512 3732/1570/512 +f 3733/1569/512 3734/1755/512 3735/1572/512 +f 3736/1573/512 3735/1756/512 3737/1574/512 +f 3739/1576/512 3738/1575/512 3737/1577/512 +f 3741/1579/512 3739/1576/512 3740/1580/512 +f 3743/1582/512 3741/1579/512 3742/1583/512 +f 3743/1582/512 3744/1757/512 3745/1585/512 +f 3747/1587/512 3746/1586/512 3745/1588/512 +f 3749/1590/512 3747/1587/512 3748/1591/512 +f 3749/1590/512 3750/1758/512 3751/1593/512 +f 3752/1594/512 3751/1759/512 3753/1595/512 +f 3755/1597/512 3761/1760/512 3756/1598/512 +f 3758/1600/512 3754/1596/512 3753/1601/512 +f 3757/1599/512 3756/1761/512 3731/1603/512 +f 3755/1597/512 3758/1600/512 3759/1605/512 +f 3764/1609/512 3865/1762/512 3866/1763/512 +f 3866/1763/512 3867/1764/512 3764/1609/512 +f 3867/1764/512 3868/1765/512 3764/1609/512 +f 3868/1765/512 3869/1766/512 3870/1767/512 +f 3870/1767/512 3871/1768/512 3762/1607/512 +f 3762/1607/512 3872/1769/512 3763/1608/512 +f 3872/1769/512 3873/1770/512 3763/1608/512 +f 3873/1770/512 3874/1771/512 3763/1608/512 +f 3763/1608/512 3875/1772/512 3876/1773/512 +f 3876/1773/512 3877/1774/512 3764/1609/512 +f 3868/1765/512 3870/1767/512 3764/1609/512 +f 3870/1767/512 3762/1607/512 3764/1609/512 +f 3763/1608/512 3876/1773/512 3764/1609/512 +f 3769/1616/528 3768/1613/528 3765/1610/528 +f 3766/1617/529 3770/1775/529 3769/1616/529 +f 3771/1618/530 3774/1621/530 3772/1619/530 +f 3774/1621/531 3776/1623/531 3775/1622/531 +f 3778/1629/520 3878/1776/520 3779/1630/520 +f 3779/1630/520 3879/1777/520 3880/1778/520 +f 3880/1778/520 3777/1628/520 3779/1630/520 +f 3782/1633/512 3881/1779/512 3882/1780/512 +f 3882/1780/512 3883/1781/512 3782/1633/512 +f 3883/1781/512 3780/1631/512 3782/1633/512 +f 3783/1634/534 3786/1637/534 3784/1635/534 +f 3786/1637/535 3788/1639/535 3787/1638/535 +f 3791/1646/520 3884/1782/520 3789/1644/520 +f 3789/1644/520 3885/1783/520 3790/1645/520 +f 3790/1645/520 3886/1784/520 3791/1646/520 +f 3794/1649/512 3887/1785/512 3888/1786/512 +f 3888/1786/512 3889/1787/512 3794/1649/512 +f 3889/1787/512 3792/1647/512 3794/1649/512 +f 3795/1650/538 3800/1788/538 3796/1651/538 +f 3796/1651/539 3799/1654/539 3798/1653/539 +f 3803/1661/520 3890/1789/520 3801/1659/520 +f 3801/1659/520 3891/1790/520 3802/1660/520 +f 3802/1660/520 3892/1791/520 3803/1661/520 +f 3806/1664/512 3893/1792/512 3894/1793/512 +f 3894/1793/512 3895/1794/512 3806/1664/512 +f 3895/1794/512 3804/1662/512 3806/1664/512 s 1 -f 3824/803/542 3825/804/543 3826/805/520 -f 3827/806/544 3824/803/542 3826/807/520 -f 3828/808/545 3827/806/544 3826/809/520 -f 3829/810/546 3828/808/545 3826/811/520 -f 3830/812/547 3829/810/546 3826/813/520 -f 3831/814/548 3830/812/547 3826/815/520 -f 3832/816/549 3831/814/548 3826/817/520 -f 3833/818/550 3832/816/549 3826/819/520 -f 3833/818/550 3826/820/520 3834/821/551 -f 3835/822/552 3834/821/551 3826/823/520 -f 3836/824/553 3835/822/552 3826/825/520 -f 3837/826/554 3836/824/553 3826/827/520 -f 3838/828/555 3837/829/554 3826/830/520 -f 3839/831/556 3838/828/555 3826/832/520 -f 3840/833/557 3839/831/556 3826/834/520 -f 3825/804/543 3840/833/557 3826/835/520 -f 3838/828/558 3841/836/559 3837/829/559 -f 3830/812/560 3842/837/561 3829/810/561 -f 3837/826/559 3843/838/562 3836/824/562 -f 3829/810/561 3844/839/563 3828/808/563 -f 3836/824/562 3845/840/564 3835/822/564 -f 3828/808/563 3846/841/565 3827/806/565 -f 3835/822/564 3847/842/566 3834/821/566 -f 3827/806/565 3848/843/567 3824/803/567 -f 3834/821/566 3849/844/568 3833/818/568 -f 3825/804/569 3850/845/570 3840/833/570 -f 3824/803/567 3851/846/569 3825/804/569 -f 3833/818/568 3852/847/571 3832/816/571 -f 3840/833/570 3853/848/572 3839/831/572 -f 3832/816/571 3854/849/573 3831/814/573 -f 3839/831/572 3855/850/558 3838/828/558 -f 3831/814/573 3856/851/560 3830/812/560 -f 3849/844/574 3857/852/575 3852/847/575 -f 3850/845/576 3858/853/577 3853/848/577 -f 3852/847/575 3859/854/578 3854/849/578 -f 3853/848/577 3860/855/579 3855/850/579 -f 3854/849/578 3861/856/580 3856/851/580 -f 3855/850/579 3862/857/581 3841/836/581 -f 3856/851/580 3863/858/582 3842/837/582 -f 3841/859/581 3864/860/583 3843/838/583 -f 3842/837/582 3865/861/584 3844/839/584 -f 3843/838/583 3866/862/585 3845/840/585 -f 3844/839/584 3867/863/586 3846/841/586 -f 3845/840/585 3868/864/587 3847/842/587 -f 3846/841/586 3869/865/588 3848/843/588 -f 3847/842/587 3870/866/574 3849/844/574 -f 3851/846/589 3871/867/576 3850/845/576 -f 3848/843/588 3872/868/589 3851/846/589 -f 3865/869/563 3521/870/565 3867/871/565 -f 3866/872/564 3743/873/566 3868/874/566 -f 3867/871/565 3737/875/567 3869/876/567 -f 3868/874/566 3742/877/568 3870/878/568 -f 3872/879/569 3735/880/570 3871/881/570 -f 3869/876/567 3736/882/569 3872/879/569 -f 3870/878/568 3741/883/571 3857/884/571 -f 3871/881/570 3520/885/572 3858/886/572 -f 3857/884/571 3522/887/573 3859/888/573 -f 3858/886/572 3747/889/558 3860/890/558 -f 3859/888/573 3740/891/560 3861/892/560 -f 3860/890/558 3746/893/559 3862/894/559 -f 3861/892/560 3739/895/561 3863/896/561 -f 3862/897/559 3745/898/562 3864/860/562 -f 3863/896/561 3738/899/563 3865/869/563 -f 3864/860/562 3744/900/564 3866/872/564 -f 3553/444/564 3873/901/562 3550/439/562 -f 3539/426/565 3874/902/563 3536/422/563 -f 3523/406/566 3875/903/564 3553/686/564 -f 3540/427/567 3876/904/565 3539/426/565 -f 3526/409/568 3877/905/566 3523/406/566 -f 3542/430/569 3878/906/567 3540/427/567 -f 3529/413/571 3879/907/568 3526/409/568 -f 3545/434/570 3880/908/569 3542/430/569 -f 3531/415/573 3881/909/571 3529/413/571 -f 3547/436/572 3882/910/570 3545/434/570 -f 3532/416/560 3883/911/573 3531/415/573 -f 3551/440/558 3884/912/572 3547/436/572 -f 3534/419/561 3885/913/560 3532/416/560 -f 3550/439/562 3886/914/559 3548/437/559 -f 3548/437/559 3887/915/558 3551/440/558 -f 3536/422/563 3888/916/561 3534/419/561 -f 3880/908/590 3889/917/591 3878/906/592 -f 3876/904/593 3878/906/592 3889/918/591 -f 3874/902/594 3876/904/593 3889/919/591 -f 3888/916/595 3874/902/594 3889/920/591 -f 3885/913/596 3888/916/595 3889/921/591 -f 3883/911/597 3885/913/596 3889/922/591 -f 3881/909/598 3883/911/597 3889/923/591 -f 3879/907/599 3881/909/598 3889/924/591 -f 3877/905/600 3879/907/599 3889/925/591 -f 3875/903/601 3877/905/600 3889/926/591 -f 3873/901/602 3875/927/601 3889/928/591 -f 3886/914/603 3873/901/602 3889/929/591 -f 3887/915/604 3886/914/603 3889/930/591 -f 3884/912/605 3887/915/604 3889/931/591 -f 3882/910/606 3884/912/605 3889/932/591 -f 3880/908/590 3882/910/606 3889/933/591 -f 3538/425/607 3755/934/608 3555/935/607 -f 3538/428/607 3754/936/609 3541/429/609 -f 3541/431/609 3753/937/610 3543/432/610 -f 3543/690/610 3752/938/611 3544/433/611 -f 3546/435/612 3752/938/611 3751/939/612 -f 3549/438/613 3749/940/614 3748/941/613 -f 3546/441/612 3750/942/615 3552/442/615 -f 3549/693/613 3557/943/616 3524/443/616 -f 3552/694/615 3749/940/614 3554/445/614 -f 3525/408/617 3557/944/616 3760/945/617 -f 3525/410/617 3759/946/618 3527/411/618 -f 3527/687/618 3758/947/619 3528/412/619 -f 3528/688/619 3556/948/620 3530/414/620 -f 3530/417/620 3757/949/621 3533/418/621 -f 3533/420/621 3756/950/622 3535/421/622 -f 3535/423/622 3755/934/608 3537/424/608 -f 3570/951/559 3765/952/623 3764/953/559 -f 3761/954/623 3766/955/624 3765/952/623 -f 3572/956/624 3573/957/561 3766/955/624 -f 3763/958/561 3574/959/625 3573/957/561 -f 3571/960/625 3575/961/626 3574/959/625 -f 3762/962/626 3764/953/559 3575/963/626 -f 3606/511/565 3890/964/563 3603/506/563 -f 3592/493/564 3891/965/562 3589/489/562 -f 3576/473/567 3892/966/565 3606/715/565 -f 3593/494/566 3893/967/564 3592/493/564 -f 3579/476/569 3894/968/567 3576/473/567 -f 3595/497/568 3895/969/566 3593/494/566 -f 3582/480/570 3896/970/569 3579/476/569 -f 3598/501/571 3897/971/568 3595/497/568 -f 3584/482/572 3898/972/570 3582/480/570 -f 3600/503/573 3899/973/571 3598/501/571 -f 3585/483/558 3900/974/572 3584/482/572 -f 3604/507/560 3901/975/573 3600/503/573 -f 3587/486/559 3902/976/558 3585/483/558 -f 3603/506/563 3903/977/561 3601/504/561 -f 3601/504/561 3904/978/560 3604/507/560 -f 3589/489/562 3905/979/559 3587/486/559 -f 3897/971/627 3906/980/628 3895/969/629 -f 3893/967/630 3895/969/629 3906/981/628 -f 3891/965/631 3893/967/630 3906/982/628 -f 3905/979/632 3891/965/631 3906/983/628 -f 3902/976/633 3905/979/632 3906/984/628 -f 3900/974/634 3902/976/633 3906/985/628 -f 3898/972/635 3900/974/634 3906/986/628 -f 3896/970/636 3898/972/635 3906/987/628 -f 3894/968/637 3896/970/636 3906/988/628 -f 3892/966/638 3894/968/637 3906/989/628 -f 3890/964/639 3892/990/638 3906/991/628 -f 3903/977/640 3890/964/639 3906/992/628 -f 3904/978/641 3903/977/640 3906/993/628 -f 3901/975/642 3904/978/641 3906/994/628 -f 3899/973/643 3901/975/642 3906/995/628 -f 3897/971/627 3899/973/643 3906/996/628 -f 3591/492/616 3775/997/613 3774/998/616 -f 3591/495/616 3773/999/617 3594/496/617 -f 3594/498/617 3772/1000/618 3596/499/618 -f 3597/500/619 3772/1000/618 3771/1001/619 -f 3599/502/620 3771/1001/619 3770/1002/620 -f 3607/721/622 3767/1003/608 3602/505/608 -f 3599/508/620 3769/1004/621 3605/509/621 -f 3577/510/607 3767/1003/608 3610/1005/607 -f 3605/723/621 3768/1006/622 3607/512/622 -f 3577/474/607 3779/1007/609 3578/475/609 -f 3578/477/609 3609/1008/610 3580/478/610 -f 3580/716/610 3778/1009/611 3581/479/611 -f 3581/717/611 3608/1010/612 3583/481/612 -f 3583/484/612 3777/1011/615 3586/485/615 -f 3586/487/615 3776/1012/614 3588/488/614 -f 3588/490/614 3775/997/613 3590/491/613 -f 3647/561/573 3907/1013/571 3644/556/571 -f 3633/544/572 3908/1014/570 3630/540/570 -f 3617/524/560 3909/1015/573 3647/738/573 -f 3634/545/558 3910/1016/572 3633/544/572 -f 3620/527/561 3911/1017/560 3617/524/560 -f 3637/549/559 3912/1018/558 3634/545/558 -f 3623/531/563 3913/1019/561 3620/527/561 -f 3639/551/562 3914/1020/559 3637/549/559 -f 3625/533/565 3915/1021/563 3623/531/563 -f 3641/553/564 3916/1022/562 3639/551/562 -f 3626/534/567 3917/1023/565 3625/533/565 -f 3645/557/566 3918/1024/564 3641/553/564 -f 3628/537/569 3919/1025/567 3626/534/567 -f 3644/556/571 3920/1026/568 3642/554/568 -f 3642/554/568 3921/1027/566 3645/557/566 -f 3630/540/570 3922/1028/569 3628/537/569 -f 3914/1020/644 3923/1029/645 3912/1018/646 -f 3910/1016/647 3912/1018/646 3923/1030/645 -f 3908/1014/648 3910/1016/647 3923/1031/645 -f 3922/1028/649 3908/1014/648 3923/1032/645 -f 3919/1025/650 3922/1028/649 3923/1033/645 -f 3917/1023/651 3919/1025/650 3923/1034/645 -f 3915/1021/652 3917/1023/651 3923/1035/645 -f 3913/1019/653 3915/1021/652 3923/1036/645 -f 3911/1017/654 3913/1019/653 3923/1037/645 -f 3909/1015/655 3911/1017/654 3923/1038/645 -f 3907/1013/656 3909/1039/655 3923/1040/645 -f 3920/1026/657 3907/1013/656 3923/1041/645 -f 3921/1027/658 3920/1026/657 3923/1042/645 -f 3918/1024/659 3921/1027/658 3923/1043/645 -f 3916/1022/660 3918/1024/659 3923/1044/645 -f 3914/1020/644 3916/1022/660 3923/1045/645 -f 3631/741/611 3649/1046/612 3632/543/612 -f 3632/546/612 3786/1047/615 3635/547/615 -f 3635/742/615 3785/1048/614 3636/548/614 -f 3636/743/614 3784/1049/613 3638/550/613 -f 3640/552/616 3784/1049/613 3783/1050/616 -f 3648/745/618 3780/1051/619 3643/555/619 -f 3640/558/616 3782/1052/617 3646/559/617 -f 3643/746/619 3651/1053/620 3618/560/620 -f 3646/747/617 3781/1054/618 3648/562/618 -f 3619/526/621 3651/1055/620 3792/1056/621 -f 3619/528/621 3791/1057/622 3621/529/622 -f 3621/739/622 3790/1058/608 3622/530/608 -f 3622/740/608 3650/1059/607 3624/532/607 -f 3624/535/607 3789/1060/609 3627/536/609 -f 3627/538/609 3788/1061/610 3629/539/610 -f 3629/541/610 3787/1062/611 3631/542/611 -f 3688/612/572 3924/1063/570 3685/607/570 -f 3674/594/573 3925/1064/571 3671/590/571 -f 3658/574/558 3926/1065/572 3688/762/572 -f 3675/595/560 3927/1066/573 3674/594/573 -f 3661/577/559 3928/1067/558 3658/574/558 -f 3677/598/561 3929/1068/560 3675/595/560 -f 3664/581/562 3930/1069/559 3661/577/559 -f 3680/602/563 3931/1070/561 3677/598/561 -f 3666/583/564 3932/1071/562 3664/581/562 -f 3682/604/565 3933/1072/563 3680/602/563 -f 3667/584/566 3934/1073/564 3666/583/564 -f 3686/608/567 3935/1074/565 3682/604/565 -f 3669/587/568 3936/1075/566 3667/584/566 -f 3685/607/570 3937/1076/569 3683/605/569 -f 3683/605/569 3938/1077/567 3686/608/567 -f 3671/590/571 3939/1078/568 3669/587/568 -f 3931/1070/661 3940/1079/662 3929/1068/663 -f 3927/1066/664 3929/1068/663 3940/1080/662 -f 3925/1064/665 3927/1066/664 3940/1081/662 -f 3939/1078/666 3925/1064/665 3940/1082/662 -f 3936/1075/667 3939/1078/666 3940/1083/662 -f 3934/1073/668 3936/1075/667 3940/1084/662 -f 3932/1071/669 3934/1073/668 3940/1085/662 -f 3930/1069/670 3932/1071/669 3940/1086/662 -f 3928/1067/671 3930/1069/670 3940/1087/662 -f 3926/1065/672 3928/1067/671 3940/1088/662 -f 3924/1063/673 3926/1089/672 3940/1090/662 -f 3937/1076/674 3924/1063/673 3940/1091/662 -f 3938/1077/675 3937/1076/674 3940/1092/662 -f 3935/1074/676 3938/1077/675 3940/1093/662 -f 3933/1072/677 3935/1074/676 3940/1094/662 -f 3931/1070/661 3933/1072/677 3940/1095/662 -f 3673/593/620 3800/1096/619 3690/1097/620 -f 3673/596/620 3799/1098/621 3676/597/621 -f 3676/599/621 3798/1099/622 3678/600/622 -f 3679/601/608 3798/1099/622 3797/1100/608 -f 3679/767/608 3796/1101/607 3681/603/607 -f 3689/768/610 3793/1102/611 3684/606/611 -f 3687/610/609 3796/1101/607 3795/1103/609 -f 3659/611/612 3793/1102/611 3692/1104/612 -f 3687/613/609 3794/1105/610 3689/614/610 -f 3660/576/615 3692/1106/612 3805/1107/615 -f 3660/578/615 3804/1108/614 3662/579/614 -f 3663/580/613 3804/1108/614 3803/1109/613 -f 3663/764/613 3691/1110/616 3665/582/616 -f 3665/585/616 3802/1111/617 3668/586/617 -f 3668/588/617 3801/1112/618 3670/589/618 -f 3670/591/618 3800/1096/619 3672/592/619 -f 3707/1113/561 3810/1114/625 3809/1115/561 -f 3806/1116/625 3811/1117/626 3810/1114/625 -f 3706/1118/626 3708/1119/559 3811/1117/626 -f 3705/1120/559 3709/1121/623 3708/1119/559 -f 3808/1122/623 3710/1123/624 3709/1121/623 -f 3807/1124/624 3809/1115/561 3710/1125/624 -f 3717/1126/568 3816/1127/678 3815/1128/568 -f 3812/1129/678 3817/1130/679 3816/1127/678 -f 3719/1131/679 3720/1132/569 3817/1130/679 -f 3814/1133/569 3721/1134/680 3720/1132/569 -f 3718/1135/680 3722/1136/681 3721/1134/680 -f 3813/1137/681 3815/1128/568 3722/1138/681 -f 3729/1139/569 3822/1140/680 3821/1141/569 -f 3818/1142/680 3823/1143/681 3822/1140/680 -f 3731/1144/681 3732/1145/568 3823/1143/681 -f 3820/1146/568 3733/1147/678 3732/1145/568 -f 3730/1148/678 3734/1149/679 3733/1147/678 -f 3819/1150/679 3821/1141/569 3734/1151/679 -f 3838/828/558 3855/850/558 3841/836/559 -f 3830/812/560 3856/851/560 3842/837/561 -f 3837/826/559 3841/859/559 3843/838/562 -f 3829/810/561 3842/837/561 3844/839/563 -f 3836/824/562 3843/838/562 3845/840/564 -f 3828/808/563 3844/839/563 3846/841/565 -f 3835/822/564 3845/840/564 3847/842/566 -f 3827/806/565 3846/841/565 3848/843/567 -f 3834/821/566 3847/842/566 3849/844/568 -f 3825/804/569 3851/846/569 3850/845/570 -f 3824/803/567 3848/843/567 3851/846/569 -f 3833/818/568 3849/844/568 3852/847/571 -f 3840/833/570 3850/845/570 3853/848/572 -f 3832/816/571 3852/847/571 3854/849/573 -f 3839/831/572 3853/848/572 3855/850/558 -f 3831/814/573 3854/849/573 3856/851/560 -f 3849/844/574 3870/1152/574 3857/852/575 -f 3850/845/576 3871/1153/576 3858/853/577 -f 3852/847/575 3857/1154/575 3859/854/578 -f 3853/848/577 3858/1155/577 3860/855/579 -f 3854/849/578 3859/1156/578 3861/856/580 -f 3855/850/579 3860/1157/579 3862/857/581 -f 3856/851/580 3861/1158/580 3863/858/582 -f 3841/859/581 3862/897/581 3864/860/583 -f 3842/837/582 3863/1159/582 3865/861/584 -f 3843/838/583 3864/1160/583 3866/862/585 -f 3844/839/584 3865/1161/584 3867/863/586 -f 3845/840/585 3866/1162/585 3868/864/587 -f 3846/841/586 3867/1163/586 3869/865/588 -f 3847/842/587 3868/1164/587 3870/866/574 -f 3851/846/589 3872/1165/589 3871/867/576 -f 3848/843/588 3869/1166/588 3872/868/589 -f 3865/869/563 3738/899/563 3521/870/565 -f 3866/872/564 3744/900/564 3743/873/566 -f 3867/871/565 3521/870/565 3737/875/567 -f 3868/874/566 3743/873/566 3742/877/568 -f 3872/879/569 3736/882/569 3735/880/570 -f 3869/876/567 3737/875/567 3736/882/569 -f 3870/878/568 3742/877/568 3741/883/571 -f 3871/881/570 3735/880/570 3520/885/572 -f 3857/884/571 3741/883/571 3522/887/573 -f 3858/886/572 3520/885/572 3747/889/558 -f 3859/888/573 3522/887/573 3740/891/560 -f 3860/890/558 3747/889/558 3746/893/559 -f 3861/892/560 3740/891/560 3739/895/561 -f 3862/897/559 3746/1167/559 3745/898/562 -f 3863/896/561 3739/895/561 3738/899/563 -f 3864/860/562 3745/898/562 3744/900/564 -f 3553/444/564 3875/927/564 3873/901/562 -f 3539/426/565 3876/904/565 3874/902/563 -f 3523/406/566 3877/905/566 3875/903/564 -f 3540/427/567 3878/906/567 3876/904/565 -f 3526/409/568 3879/907/568 3877/905/566 -f 3542/430/569 3880/908/569 3878/906/567 -f 3529/413/571 3881/909/571 3879/907/568 -f 3545/434/570 3882/910/570 3880/908/569 -f 3531/415/573 3883/911/573 3881/909/571 -f 3547/436/572 3884/912/572 3882/910/570 -f 3532/416/560 3885/913/560 3883/911/573 -f 3551/440/558 3887/915/558 3884/912/572 -f 3534/419/561 3888/916/561 3885/913/560 -f 3550/439/562 3873/901/562 3886/914/559 -f 3548/437/559 3886/914/559 3887/915/558 -f 3536/422/563 3874/902/563 3888/916/561 -f 3538/425/607 3537/689/608 3755/934/608 -f 3538/428/607 3555/935/607 3754/936/609 -f 3541/431/609 3754/936/609 3753/937/610 -f 3543/690/610 3753/937/610 3752/938/611 -f 3546/435/612 3544/691/611 3752/938/611 -f 3549/438/613 3554/692/614 3749/940/614 -f 3546/441/612 3751/939/612 3750/942/615 -f 3549/693/613 3748/941/613 3557/943/616 -f 3552/694/615 3750/942/615 3749/940/614 -f 3525/408/617 3524/407/616 3557/944/616 -f 3525/410/617 3760/945/617 3759/946/618 -f 3527/687/618 3759/946/618 3758/947/619 -f 3528/688/619 3758/947/619 3556/948/620 -f 3530/417/620 3556/948/620 3757/949/621 -f 3533/420/621 3757/949/621 3756/950/622 -f 3535/423/622 3756/950/622 3755/934/608 -f 3570/951/559 3761/954/623 3765/952/623 -f 3761/954/623 3572/956/624 3766/955/624 -f 3572/956/624 3763/958/561 3573/957/561 -f 3763/958/561 3571/960/625 3574/959/625 -f 3571/960/625 3762/1168/626 3575/961/626 -f 3762/962/626 3570/951/559 3764/953/559 -f 3606/511/565 3892/990/565 3890/964/563 -f 3592/493/564 3893/967/564 3891/965/562 -f 3576/473/567 3894/968/567 3892/966/565 -f 3593/494/566 3895/969/566 3893/967/564 -f 3579/476/569 3896/970/569 3894/968/567 -f 3595/497/568 3897/971/568 3895/969/566 -f 3582/480/570 3898/972/570 3896/970/569 -f 3598/501/571 3899/973/571 3897/971/568 -f 3584/482/572 3900/974/572 3898/972/570 -f 3600/503/573 3901/975/573 3899/973/571 -f 3585/483/558 3902/976/558 3900/974/572 -f 3604/507/560 3904/978/560 3901/975/573 -f 3587/486/559 3905/979/559 3902/976/558 -f 3603/506/563 3890/964/563 3903/977/561 -f 3601/504/561 3903/977/561 3904/978/560 -f 3589/489/562 3891/965/562 3905/979/559 -f 3591/492/616 3590/718/613 3775/997/613 -f 3591/495/616 3774/998/616 3773/999/617 -f 3594/498/617 3773/999/617 3772/1000/618 -f 3597/500/619 3596/719/618 3772/1000/618 -f 3599/502/620 3597/720/619 3771/1001/619 -f 3607/721/622 3768/1006/622 3767/1003/608 -f 3599/508/620 3770/1002/620 3769/1004/621 -f 3577/510/607 3602/722/608 3767/1003/608 -f 3605/723/621 3769/1004/621 3768/1006/622 -f 3577/474/607 3610/1169/607 3779/1007/609 -f 3578/477/609 3779/1007/609 3609/1008/610 -f 3580/716/610 3609/1008/610 3778/1009/611 -f 3581/717/611 3778/1009/611 3608/1010/612 -f 3583/484/612 3608/1010/612 3777/1011/615 -f 3586/487/615 3777/1011/615 3776/1012/614 -f 3588/490/614 3776/1012/614 3775/997/613 -f 3647/561/573 3909/1039/573 3907/1013/571 -f 3633/544/572 3910/1016/572 3908/1014/570 -f 3617/524/560 3911/1017/560 3909/1015/573 -f 3634/545/558 3912/1018/558 3910/1016/572 -f 3620/527/561 3913/1019/561 3911/1017/560 -f 3637/549/559 3914/1020/559 3912/1018/558 -f 3623/531/563 3915/1021/563 3913/1019/561 -f 3639/551/562 3916/1022/562 3914/1020/559 -f 3625/533/565 3917/1023/565 3915/1021/563 -f 3641/553/564 3918/1024/564 3916/1022/562 -f 3626/534/567 3919/1025/567 3917/1023/565 -f 3645/557/566 3921/1027/566 3918/1024/564 -f 3628/537/569 3922/1028/569 3919/1025/567 -f 3644/556/571 3907/1013/571 3920/1026/568 -f 3642/554/568 3920/1026/568 3921/1027/566 -f 3630/540/570 3908/1014/570 3922/1028/569 -f 3631/741/611 3787/1062/611 3649/1046/612 -f 3632/546/612 3649/1046/612 3786/1047/615 -f 3635/742/615 3786/1047/615 3785/1048/614 -f 3636/743/614 3785/1048/614 3784/1049/613 -f 3640/552/616 3638/744/613 3784/1049/613 -f 3648/745/618 3781/1054/618 3780/1051/619 -f 3640/558/616 3783/1050/616 3782/1052/617 -f 3643/746/619 3780/1051/619 3651/1053/620 -f 3646/747/617 3782/1052/617 3781/1054/618 -f 3619/526/621 3618/525/620 3651/1055/620 -f 3619/528/621 3792/1056/621 3791/1057/622 -f 3621/739/622 3791/1057/622 3790/1058/608 -f 3622/740/608 3790/1058/608 3650/1059/607 -f 3624/535/607 3650/1059/607 3789/1060/609 -f 3627/538/609 3789/1060/609 3788/1061/610 -f 3629/541/610 3788/1061/610 3787/1062/611 -f 3688/612/572 3926/1089/572 3924/1063/570 -f 3674/594/573 3927/1066/573 3925/1064/571 -f 3658/574/558 3928/1067/558 3926/1065/572 -f 3675/595/560 3929/1068/560 3927/1066/573 -f 3661/577/559 3930/1069/559 3928/1067/558 -f 3677/598/561 3931/1070/561 3929/1068/560 -f 3664/581/562 3932/1071/562 3930/1069/559 -f 3680/602/563 3933/1072/563 3931/1070/561 -f 3666/583/564 3934/1073/564 3932/1071/562 -f 3682/604/565 3935/1074/565 3933/1072/563 -f 3667/584/566 3936/1075/566 3934/1073/564 -f 3686/608/567 3938/1077/567 3935/1074/565 -f 3669/587/568 3939/1078/568 3936/1075/566 -f 3685/607/570 3924/1063/570 3937/1076/569 -f 3683/605/569 3937/1076/569 3938/1077/567 -f 3671/590/571 3925/1064/571 3939/1078/568 -f 3673/593/620 3672/765/619 3800/1096/619 -f 3673/596/620 3690/1097/620 3799/1098/621 -f 3676/599/621 3799/1098/621 3798/1099/622 -f 3679/601/608 3678/766/622 3798/1099/622 -f 3679/767/608 3797/1100/608 3796/1101/607 -f 3689/768/610 3794/1105/610 3793/1102/611 -f 3687/610/609 3681/609/607 3796/1101/607 -f 3659/611/612 3684/769/611 3793/1102/611 -f 3687/613/609 3795/1103/609 3794/1105/610 -f 3660/576/615 3659/575/612 3692/1106/612 -f 3660/578/615 3805/1107/615 3804/1108/614 -f 3663/580/613 3662/763/614 3804/1108/614 -f 3663/764/613 3803/1109/613 3691/1110/616 -f 3665/585/616 3691/1110/616 3802/1111/617 -f 3668/588/617 3802/1111/617 3801/1112/618 -f 3670/591/618 3801/1112/618 3800/1096/619 -f 3707/1113/561 3806/1116/625 3810/1114/625 -f 3806/1116/625 3706/1118/626 3811/1117/626 -f 3706/1118/626 3705/1120/559 3708/1119/559 -f 3705/1120/559 3808/1122/623 3709/1121/623 -f 3808/1122/623 3807/1170/624 3710/1123/624 -f 3807/1124/624 3707/1113/561 3809/1115/561 -f 3717/1126/568 3812/1129/678 3816/1127/678 -f 3812/1129/678 3719/1131/679 3817/1130/679 -f 3719/1131/679 3814/1133/569 3720/1132/569 -f 3814/1133/569 3718/1135/680 3721/1134/680 -f 3718/1135/680 3813/1171/681 3722/1136/681 -f 3813/1137/681 3717/1126/568 3815/1128/568 -f 3729/1139/569 3818/1142/680 3822/1140/680 -f 3818/1142/680 3731/1144/681 3823/1143/681 -f 3731/1144/681 3820/1146/568 3732/1145/568 -f 3820/1146/568 3730/1148/678 3733/1147/678 -f 3730/1148/678 3819/1172/679 3734/1149/679 -f 3819/1150/679 3729/1139/569 3821/1141/569 +f 3896/1795/542 3897/1796/543 3898/1797/520 +f 3899/1798/544 3896/1795/542 3898/1799/520 +f 3900/1800/545 3899/1798/544 3898/1801/520 +f 3901/1802/546 3900/1800/545 3898/1803/520 +f 3902/1804/547 3901/1802/546 3898/1805/520 +f 3903/1806/548 3902/1804/547 3898/1807/520 +f 3904/1808/549 3903/1806/548 3898/1809/520 +f 3905/1810/550 3904/1808/549 3898/1811/520 +f 3905/1810/550 3898/1812/520 3906/1813/551 +f 3907/1814/552 3906/1813/551 3898/1815/520 +f 3908/1816/553 3907/1814/552 3898/1817/520 +f 3909/1818/554 3908/1816/553 3898/1819/520 +f 3910/1820/555 3909/1821/554 3898/1822/520 +f 3911/1823/556 3910/1820/555 3898/1824/520 +f 3912/1825/557 3911/1823/556 3898/1826/520 +f 3897/1796/543 3912/1825/557 3898/1827/520 +f 3910/1820/558 3913/1828/559 3909/1821/559 +f 3902/1804/560 3914/1829/561 3901/1802/561 +f 3909/1818/559 3915/1830/562 3908/1816/562 +f 3901/1802/561 3916/1831/563 3900/1800/563 +f 3908/1816/562 3917/1832/564 3907/1814/564 +f 3900/1800/563 3918/1833/565 3899/1798/565 +f 3907/1814/564 3919/1834/566 3906/1813/566 +f 3899/1798/565 3920/1835/567 3896/1795/567 +f 3906/1813/566 3921/1836/568 3905/1810/568 +f 3897/1796/569 3922/1837/570 3912/1825/570 +f 3896/1795/567 3923/1838/569 3897/1796/569 +f 3905/1810/568 3924/1839/571 3904/1808/571 +f 3912/1825/570 3925/1840/572 3911/1823/572 +f 3904/1808/571 3926/1841/573 3903/1806/573 +f 3911/1823/572 3927/1842/558 3910/1820/558 +f 3903/1806/573 3928/1843/560 3902/1804/560 +f 3921/1836/574 3929/1844/575 3924/1839/575 +f 3922/1837/576 3930/1845/577 3925/1840/577 +f 3924/1839/575 3931/1846/578 3926/1841/578 +f 3925/1840/577 3932/1847/579 3927/1842/579 +f 3926/1841/578 3933/1848/580 3928/1843/580 +f 3927/1842/579 3934/1849/581 3913/1828/581 +f 3928/1843/580 3935/1850/582 3914/1829/582 +f 3913/1851/581 3936/1852/583 3915/1830/583 +f 3914/1829/582 3937/1853/584 3916/1831/584 +f 3915/1830/583 3938/1854/585 3917/1832/585 +f 3916/1831/584 3939/1855/586 3918/1833/586 +f 3917/1832/585 3940/1856/587 3919/1834/587 +f 3918/1833/586 3941/1857/588 3920/1835/588 +f 3919/1834/587 3942/1858/574 3921/1836/574 +f 3923/1838/589 3943/1859/576 3922/1837/576 +f 3920/1835/588 3944/1860/589 3923/1838/589 +f 3937/1861/563 3593/1862/565 3939/1863/565 +f 3938/1864/564 3815/1865/566 3940/1866/566 +f 3939/1863/565 3809/1867/567 3941/1868/567 +f 3940/1866/566 3814/1869/568 3942/1870/568 +f 3944/1871/569 3807/1872/570 3943/1873/570 +f 3941/1868/567 3808/1874/569 3944/1871/569 +f 3942/1870/568 3813/1875/571 3929/1876/571 +f 3943/1873/570 3592/1877/572 3930/1878/572 +f 3929/1876/571 3594/1879/573 3931/1880/573 +f 3930/1878/572 3819/1881/558 3932/1882/558 +f 3931/1880/573 3812/1883/560 3933/1884/560 +f 3932/1882/558 3818/1885/559 3934/1886/559 +f 3933/1884/560 3811/1887/561 3935/1888/561 +f 3934/1889/559 3817/1890/562 3936/1852/562 +f 3935/1888/561 3810/1891/563 3937/1861/563 +f 3936/1852/562 3816/1892/564 3938/1864/564 +f 3625/1436/564 3945/1893/562 3622/1431/562 +f 3611/1418/565 3946/1894/563 3608/1414/563 +f 3595/1398/566 3947/1895/564 3625/1678/564 +f 3612/1419/567 3948/1896/565 3611/1418/565 +f 3598/1401/568 3949/1897/566 3595/1398/566 +f 3614/1422/569 3950/1898/567 3612/1419/567 +f 3601/1405/571 3951/1899/568 3598/1401/568 +f 3617/1426/570 3952/1900/569 3614/1422/569 +f 3603/1407/573 3953/1901/571 3601/1405/571 +f 3619/1428/572 3954/1902/570 3617/1426/570 +f 3604/1408/560 3955/1903/573 3603/1407/573 +f 3623/1432/558 3956/1904/572 3619/1428/572 +f 3606/1411/561 3957/1905/560 3604/1408/560 +f 3622/1431/562 3958/1906/559 3620/1429/559 +f 3620/1429/559 3959/1907/558 3623/1432/558 +f 3608/1414/563 3960/1908/561 3606/1411/561 +f 3952/1900/590 3961/1909/591 3950/1898/592 +f 3948/1896/593 3950/1898/592 3961/1910/591 +f 3946/1894/594 3948/1896/593 3961/1911/591 +f 3960/1908/595 3946/1894/594 3961/1912/591 +f 3957/1905/596 3960/1908/595 3961/1913/591 +f 3955/1903/597 3957/1905/596 3961/1914/591 +f 3953/1901/598 3955/1903/597 3961/1915/591 +f 3951/1899/599 3953/1901/598 3961/1916/591 +f 3949/1897/600 3951/1899/599 3961/1917/591 +f 3947/1895/601 3949/1897/600 3961/1918/591 +f 3945/1893/602 3947/1919/601 3961/1920/591 +f 3958/1906/603 3945/1893/602 3961/1921/591 +f 3959/1907/604 3958/1906/603 3961/1922/591 +f 3956/1904/605 3959/1907/604 3961/1923/591 +f 3954/1902/606 3956/1904/605 3961/1924/591 +f 3952/1900/590 3954/1902/606 3961/1925/591 +f 3610/1417/607 3827/1926/608 3627/1927/607 +f 3610/1420/607 3826/1928/609 3613/1421/609 +f 3613/1423/609 3825/1929/610 3615/1424/610 +f 3615/1682/610 3824/1930/611 3616/1425/611 +f 3618/1427/612 3824/1930/611 3823/1931/612 +f 3621/1430/613 3821/1932/614 3820/1933/613 +f 3618/1433/612 3822/1934/615 3624/1434/615 +f 3621/1685/613 3629/1935/616 3596/1435/616 +f 3624/1686/615 3821/1932/614 3626/1437/614 +f 3597/1400/617 3629/1936/616 3832/1937/617 +f 3597/1402/617 3831/1938/618 3599/1403/618 +f 3599/1679/618 3830/1939/619 3600/1404/619 +f 3600/1680/619 3628/1940/620 3602/1406/620 +f 3602/1409/620 3829/1941/621 3605/1410/621 +f 3605/1412/621 3828/1942/622 3607/1413/622 +f 3607/1415/622 3827/1926/608 3609/1416/608 +f 3642/1943/559 3837/1944/623 3836/1945/559 +f 3833/1946/623 3838/1947/624 3837/1944/623 +f 3644/1948/624 3645/1949/561 3838/1947/624 +f 3835/1950/561 3646/1951/625 3645/1949/561 +f 3643/1952/625 3647/1953/626 3646/1951/625 +f 3834/1954/626 3836/1945/559 3647/1955/626 +f 3678/1503/565 3962/1956/563 3675/1498/563 +f 3664/1485/564 3963/1957/562 3661/1481/562 +f 3648/1465/567 3964/1958/565 3678/1707/565 +f 3665/1486/566 3965/1959/564 3664/1485/564 +f 3651/1468/569 3966/1960/567 3648/1465/567 +f 3667/1489/568 3967/1961/566 3665/1486/566 +f 3654/1472/570 3968/1962/569 3651/1468/569 +f 3670/1493/571 3969/1963/568 3667/1489/568 +f 3656/1474/572 3970/1964/570 3654/1472/570 +f 3672/1495/573 3971/1965/571 3670/1493/571 +f 3657/1475/558 3972/1966/572 3656/1474/572 +f 3676/1499/560 3973/1967/573 3672/1495/573 +f 3659/1478/559 3974/1968/558 3657/1475/558 +f 3675/1498/563 3975/1969/561 3673/1496/561 +f 3673/1496/561 3976/1970/560 3676/1499/560 +f 3661/1481/562 3977/1971/559 3659/1478/559 +f 3969/1963/627 3978/1972/628 3967/1961/629 +f 3965/1959/630 3967/1961/629 3978/1973/628 +f 3963/1957/631 3965/1959/630 3978/1974/628 +f 3977/1971/632 3963/1957/631 3978/1975/628 +f 3974/1968/633 3977/1971/632 3978/1976/628 +f 3972/1966/634 3974/1968/633 3978/1977/628 +f 3970/1964/635 3972/1966/634 3978/1978/628 +f 3968/1962/636 3970/1964/635 3978/1979/628 +f 3966/1960/637 3968/1962/636 3978/1980/628 +f 3964/1958/638 3966/1960/637 3978/1981/628 +f 3962/1956/639 3964/1982/638 3978/1983/628 +f 3975/1969/640 3962/1956/639 3978/1984/628 +f 3976/1970/641 3975/1969/640 3978/1985/628 +f 3973/1967/642 3976/1970/641 3978/1986/628 +f 3971/1965/643 3973/1967/642 3978/1987/628 +f 3969/1963/627 3971/1965/643 3978/1988/628 +f 3663/1484/616 3847/1989/613 3846/1990/616 +f 3663/1487/616 3845/1991/617 3666/1488/617 +f 3666/1490/617 3844/1992/618 3668/1491/618 +f 3669/1492/619 3844/1992/618 3843/1993/619 +f 3671/1494/620 3843/1993/619 3842/1994/620 +f 3679/1713/622 3839/1995/608 3674/1497/608 +f 3671/1500/620 3841/1996/621 3677/1501/621 +f 3649/1502/607 3839/1995/608 3682/1997/607 +f 3677/1715/621 3840/1998/622 3679/1504/622 +f 3649/1466/607 3851/1999/609 3650/1467/609 +f 3650/1469/609 3681/2000/610 3652/1470/610 +f 3652/1708/610 3850/2001/611 3653/1471/611 +f 3653/1709/611 3680/2002/612 3655/1473/612 +f 3655/1476/612 3849/2003/615 3658/1477/615 +f 3658/1479/615 3848/2004/614 3660/1480/614 +f 3660/1482/614 3847/1989/613 3662/1483/613 +f 3719/1553/573 3979/2005/571 3716/1548/571 +f 3705/1536/572 3980/2006/570 3702/1532/570 +f 3689/1516/560 3981/2007/573 3719/1730/573 +f 3706/1537/558 3982/2008/572 3705/1536/572 +f 3692/1519/561 3983/2009/560 3689/1516/560 +f 3709/1541/559 3984/2010/558 3706/1537/558 +f 3695/1523/563 3985/2011/561 3692/1519/561 +f 3711/1543/562 3986/2012/559 3709/1541/559 +f 3697/1525/565 3987/2013/563 3695/1523/563 +f 3713/1545/564 3988/2014/562 3711/1543/562 +f 3698/1526/567 3989/2015/565 3697/1525/565 +f 3717/1549/566 3990/2016/564 3713/1545/564 +f 3700/1529/569 3991/2017/567 3698/1526/567 +f 3716/1548/571 3992/2018/568 3714/1546/568 +f 3714/1546/568 3993/2019/566 3717/1549/566 +f 3702/1532/570 3994/2020/569 3700/1529/569 +f 3986/2012/644 3995/2021/645 3984/2010/646 +f 3982/2008/647 3984/2010/646 3995/2022/645 +f 3980/2006/648 3982/2008/647 3995/2023/645 +f 3994/2020/649 3980/2006/648 3995/2024/645 +f 3991/2017/650 3994/2020/649 3995/2025/645 +f 3989/2015/651 3991/2017/650 3995/2026/645 +f 3987/2013/652 3989/2015/651 3995/2027/645 +f 3985/2011/653 3987/2013/652 3995/2028/645 +f 3983/2009/654 3985/2011/653 3995/2029/645 +f 3981/2007/655 3983/2009/654 3995/2030/645 +f 3979/2005/656 3981/2031/655 3995/2032/645 +f 3992/2018/657 3979/2005/656 3995/2033/645 +f 3993/2019/658 3992/2018/657 3995/2034/645 +f 3990/2016/659 3993/2019/658 3995/2035/645 +f 3988/2014/660 3990/2016/659 3995/2036/645 +f 3986/2012/644 3988/2014/660 3995/2037/645 +f 3703/1733/611 3721/2038/612 3704/1535/612 +f 3704/1538/612 3858/2039/615 3707/1539/615 +f 3707/1734/615 3857/2040/614 3708/1540/614 +f 3708/1735/614 3856/2041/613 3710/1542/613 +f 3712/1544/616 3856/2041/613 3855/2042/616 +f 3720/1737/618 3852/2043/619 3715/1547/619 +f 3712/1550/616 3854/2044/617 3718/1551/617 +f 3715/1738/619 3723/2045/620 3690/1552/620 +f 3718/1739/617 3853/2046/618 3720/1554/618 +f 3691/1518/621 3723/2047/620 3864/2048/621 +f 3691/1520/621 3863/2049/622 3693/1521/622 +f 3693/1731/622 3862/2050/608 3694/1522/608 +f 3694/1732/608 3722/2051/607 3696/1524/607 +f 3696/1527/607 3861/2052/609 3699/1528/609 +f 3699/1530/609 3860/2053/610 3701/1531/610 +f 3701/1533/610 3859/2054/611 3703/1534/611 +f 3760/1604/572 3996/2055/570 3757/1599/570 +f 3746/1586/573 3997/2056/571 3743/1582/571 +f 3730/1566/558 3998/2057/572 3760/1754/572 +f 3747/1587/560 3999/2058/573 3746/1586/573 +f 3733/1569/559 4000/2059/558 3730/1566/558 +f 3749/1590/561 4001/2060/560 3747/1587/560 +f 3736/1573/562 4002/2061/559 3733/1569/559 +f 3752/1594/563 4003/2062/561 3749/1590/561 +f 3738/1575/564 4004/2063/562 3736/1573/562 +f 3754/1596/565 4005/2064/563 3752/1594/563 +f 3739/1576/566 4006/2065/564 3738/1575/564 +f 3758/1600/567 4007/2066/565 3754/1596/565 +f 3741/1579/568 4008/2067/566 3739/1576/566 +f 3757/1599/570 4009/2068/569 3755/1597/569 +f 3755/1597/569 4010/2069/567 3758/1600/567 +f 3743/1582/571 4011/2070/568 3741/1579/568 +f 4003/2062/661 4012/2071/662 4001/2060/663 +f 3999/2058/664 4001/2060/663 4012/2072/662 +f 3997/2056/665 3999/2058/664 4012/2073/662 +f 4011/2070/666 3997/2056/665 4012/2074/662 +f 4008/2067/667 4011/2070/666 4012/2075/662 +f 4006/2065/668 4008/2067/667 4012/2076/662 +f 4004/2063/669 4006/2065/668 4012/2077/662 +f 4002/2061/670 4004/2063/669 4012/2078/662 +f 4000/2059/671 4002/2061/670 4012/2079/662 +f 3998/2057/672 4000/2059/671 4012/2080/662 +f 3996/2055/673 3998/2081/672 4012/2082/662 +f 4009/2068/674 3996/2055/673 4012/2083/662 +f 4010/2069/675 4009/2068/674 4012/2084/662 +f 4007/2066/676 4010/2069/675 4012/2085/662 +f 4005/2064/677 4007/2066/676 4012/2086/662 +f 4003/2062/661 4005/2064/677 4012/2087/662 +f 3745/1585/620 3872/2088/619 3762/2089/620 +f 3745/1588/620 3871/2090/621 3748/1589/621 +f 3748/1591/621 3870/2091/622 3750/1592/622 +f 3751/1593/608 3870/2091/622 3869/2092/608 +f 3751/1759/608 3868/2093/607 3753/1595/607 +f 3761/1760/610 3865/2094/611 3756/1598/611 +f 3759/1602/609 3868/2093/607 3867/2095/609 +f 3731/1603/612 3865/2094/611 3764/2096/612 +f 3759/1605/609 3866/2097/610 3761/1606/610 +f 3732/1568/615 3764/2098/612 3877/2099/615 +f 3732/1570/615 3876/2100/614 3734/1571/614 +f 3735/1572/613 3876/2100/614 3875/2101/613 +f 3735/1756/613 3763/2102/616 3737/1574/616 +f 3737/1577/616 3874/2103/617 3740/1578/617 +f 3740/1580/617 3873/2104/618 3742/1581/618 +f 3742/1583/618 3872/2088/619 3744/1584/619 +f 3779/2105/561 3882/2106/625 3881/2107/561 +f 3878/2108/625 3883/2109/626 3882/2106/625 +f 3778/2110/626 3780/2111/559 3883/2109/626 +f 3777/2112/559 3781/2113/623 3780/2111/559 +f 3880/2114/623 3782/2115/624 3781/2113/623 +f 3879/2116/624 3881/2107/561 3782/2117/624 +f 3789/2118/568 3888/2119/678 3887/2120/568 +f 3884/2121/678 3889/2122/679 3888/2119/678 +f 3791/2123/679 3792/2124/569 3889/2122/679 +f 3886/2125/569 3793/2126/680 3792/2124/569 +f 3790/2127/680 3794/2128/681 3793/2126/680 +f 3885/2129/681 3887/2120/568 3794/2130/681 +f 3801/2131/569 3894/2132/680 3893/2133/569 +f 3890/2134/680 3895/2135/681 3894/2132/680 +f 3803/2136/681 3804/2137/568 3895/2135/681 +f 3892/2138/568 3805/2139/678 3804/2137/568 +f 3802/2140/678 3806/2141/679 3805/2139/678 +f 3891/2142/679 3893/2133/569 3806/2143/679 +f 3910/1820/558 3927/1842/558 3913/1828/559 +f 3902/1804/560 3928/1843/560 3914/1829/561 +f 3909/1818/559 3913/1851/559 3915/1830/562 +f 3901/1802/561 3914/1829/561 3916/1831/563 +f 3908/1816/562 3915/1830/562 3917/1832/564 +f 3900/1800/563 3916/1831/563 3918/1833/565 +f 3907/1814/564 3917/1832/564 3919/1834/566 +f 3899/1798/565 3918/1833/565 3920/1835/567 +f 3906/1813/566 3919/1834/566 3921/1836/568 +f 3897/1796/569 3923/1838/569 3922/1837/570 +f 3896/1795/567 3920/1835/567 3923/1838/569 +f 3905/1810/568 3921/1836/568 3924/1839/571 +f 3912/1825/570 3922/1837/570 3925/1840/572 +f 3904/1808/571 3924/1839/571 3926/1841/573 +f 3911/1823/572 3925/1840/572 3927/1842/558 +f 3903/1806/573 3926/1841/573 3928/1843/560 +f 3921/1836/574 3942/2144/574 3929/1844/575 +f 3922/1837/576 3943/2145/576 3930/1845/577 +f 3924/1839/575 3929/2146/575 3931/1846/578 +f 3925/1840/577 3930/2147/577 3932/1847/579 +f 3926/1841/578 3931/2148/578 3933/1848/580 +f 3927/1842/579 3932/2149/579 3934/1849/581 +f 3928/1843/580 3933/2150/580 3935/1850/582 +f 3913/1851/581 3934/1889/581 3936/1852/583 +f 3914/1829/582 3935/2151/582 3937/1853/584 +f 3915/1830/583 3936/2152/583 3938/1854/585 +f 3916/1831/584 3937/2153/584 3939/1855/586 +f 3917/1832/585 3938/2154/585 3940/1856/587 +f 3918/1833/586 3939/2155/586 3941/1857/588 +f 3919/1834/587 3940/2156/587 3942/1858/574 +f 3923/1838/589 3944/2157/589 3943/1859/576 +f 3920/1835/588 3941/2158/588 3944/1860/589 +f 3937/1861/563 3810/1891/563 3593/1862/565 +f 3938/1864/564 3816/1892/564 3815/1865/566 +f 3939/1863/565 3593/1862/565 3809/1867/567 +f 3940/1866/566 3815/1865/566 3814/1869/568 +f 3944/1871/569 3808/1874/569 3807/1872/570 +f 3941/1868/567 3809/1867/567 3808/1874/569 +f 3942/1870/568 3814/1869/568 3813/1875/571 +f 3943/1873/570 3807/1872/570 3592/1877/572 +f 3929/1876/571 3813/1875/571 3594/1879/573 +f 3930/1878/572 3592/1877/572 3819/1881/558 +f 3931/1880/573 3594/1879/573 3812/1883/560 +f 3932/1882/558 3819/1881/558 3818/1885/559 +f 3933/1884/560 3812/1883/560 3811/1887/561 +f 3934/1889/559 3818/2159/559 3817/1890/562 +f 3935/1888/561 3811/1887/561 3810/1891/563 +f 3936/1852/562 3817/1890/562 3816/1892/564 +f 3625/1436/564 3947/1919/564 3945/1893/562 +f 3611/1418/565 3948/1896/565 3946/1894/563 +f 3595/1398/566 3949/1897/566 3947/1895/564 +f 3612/1419/567 3950/1898/567 3948/1896/565 +f 3598/1401/568 3951/1899/568 3949/1897/566 +f 3614/1422/569 3952/1900/569 3950/1898/567 +f 3601/1405/571 3953/1901/571 3951/1899/568 +f 3617/1426/570 3954/1902/570 3952/1900/569 +f 3603/1407/573 3955/1903/573 3953/1901/571 +f 3619/1428/572 3956/1904/572 3954/1902/570 +f 3604/1408/560 3957/1905/560 3955/1903/573 +f 3623/1432/558 3959/1907/558 3956/1904/572 +f 3606/1411/561 3960/1908/561 3957/1905/560 +f 3622/1431/562 3945/1893/562 3958/1906/559 +f 3620/1429/559 3958/1906/559 3959/1907/558 +f 3608/1414/563 3946/1894/563 3960/1908/561 +f 3610/1417/607 3609/1681/608 3827/1926/608 +f 3610/1420/607 3627/1927/607 3826/1928/609 +f 3613/1423/609 3826/1928/609 3825/1929/610 +f 3615/1682/610 3825/1929/610 3824/1930/611 +f 3618/1427/612 3616/1683/611 3824/1930/611 +f 3621/1430/613 3626/1684/614 3821/1932/614 +f 3618/1433/612 3823/1931/612 3822/1934/615 +f 3621/1685/613 3820/1933/613 3629/1935/616 +f 3624/1686/615 3822/1934/615 3821/1932/614 +f 3597/1400/617 3596/1399/616 3629/1936/616 +f 3597/1402/617 3832/1937/617 3831/1938/618 +f 3599/1679/618 3831/1938/618 3830/1939/619 +f 3600/1680/619 3830/1939/619 3628/1940/620 +f 3602/1409/620 3628/1940/620 3829/1941/621 +f 3605/1412/621 3829/1941/621 3828/1942/622 +f 3607/1415/622 3828/1942/622 3827/1926/608 +f 3642/1943/559 3833/1946/623 3837/1944/623 +f 3833/1946/623 3644/1948/624 3838/1947/624 +f 3644/1948/624 3835/1950/561 3645/1949/561 +f 3835/1950/561 3643/1952/625 3646/1951/625 +f 3643/1952/625 3834/2160/626 3647/1953/626 +f 3834/1954/626 3642/1943/559 3836/1945/559 +f 3678/1503/565 3964/1982/565 3962/1956/563 +f 3664/1485/564 3965/1959/564 3963/1957/562 +f 3648/1465/567 3966/1960/567 3964/1958/565 +f 3665/1486/566 3967/1961/566 3965/1959/564 +f 3651/1468/569 3968/1962/569 3966/1960/567 +f 3667/1489/568 3969/1963/568 3967/1961/566 +f 3654/1472/570 3970/1964/570 3968/1962/569 +f 3670/1493/571 3971/1965/571 3969/1963/568 +f 3656/1474/572 3972/1966/572 3970/1964/570 +f 3672/1495/573 3973/1967/573 3971/1965/571 +f 3657/1475/558 3974/1968/558 3972/1966/572 +f 3676/1499/560 3976/1970/560 3973/1967/573 +f 3659/1478/559 3977/1971/559 3974/1968/558 +f 3675/1498/563 3962/1956/563 3975/1969/561 +f 3673/1496/561 3975/1969/561 3976/1970/560 +f 3661/1481/562 3963/1957/562 3977/1971/559 +f 3663/1484/616 3662/1710/613 3847/1989/613 +f 3663/1487/616 3846/1990/616 3845/1991/617 +f 3666/1490/617 3845/1991/617 3844/1992/618 +f 3669/1492/619 3668/1711/618 3844/1992/618 +f 3671/1494/620 3669/1712/619 3843/1993/619 +f 3679/1713/622 3840/1998/622 3839/1995/608 +f 3671/1500/620 3842/1994/620 3841/1996/621 +f 3649/1502/607 3674/1714/608 3839/1995/608 +f 3677/1715/621 3841/1996/621 3840/1998/622 +f 3649/1466/607 3682/2161/607 3851/1999/609 +f 3650/1469/609 3851/1999/609 3681/2000/610 +f 3652/1708/610 3681/2000/610 3850/2001/611 +f 3653/1709/611 3850/2001/611 3680/2002/612 +f 3655/1476/612 3680/2002/612 3849/2003/615 +f 3658/1479/615 3849/2003/615 3848/2004/614 +f 3660/1482/614 3848/2004/614 3847/1989/613 +f 3719/1553/573 3981/2031/573 3979/2005/571 +f 3705/1536/572 3982/2008/572 3980/2006/570 +f 3689/1516/560 3983/2009/560 3981/2007/573 +f 3706/1537/558 3984/2010/558 3982/2008/572 +f 3692/1519/561 3985/2011/561 3983/2009/560 +f 3709/1541/559 3986/2012/559 3984/2010/558 +f 3695/1523/563 3987/2013/563 3985/2011/561 +f 3711/1543/562 3988/2014/562 3986/2012/559 +f 3697/1525/565 3989/2015/565 3987/2013/563 +f 3713/1545/564 3990/2016/564 3988/2014/562 +f 3698/1526/567 3991/2017/567 3989/2015/565 +f 3717/1549/566 3993/2019/566 3990/2016/564 +f 3700/1529/569 3994/2020/569 3991/2017/567 +f 3716/1548/571 3979/2005/571 3992/2018/568 +f 3714/1546/568 3992/2018/568 3993/2019/566 +f 3702/1532/570 3980/2006/570 3994/2020/569 +f 3703/1733/611 3859/2054/611 3721/2038/612 +f 3704/1538/612 3721/2038/612 3858/2039/615 +f 3707/1734/615 3858/2039/615 3857/2040/614 +f 3708/1735/614 3857/2040/614 3856/2041/613 +f 3712/1544/616 3710/1736/613 3856/2041/613 +f 3720/1737/618 3853/2046/618 3852/2043/619 +f 3712/1550/616 3855/2042/616 3854/2044/617 +f 3715/1738/619 3852/2043/619 3723/2045/620 +f 3718/1739/617 3854/2044/617 3853/2046/618 +f 3691/1518/621 3690/1517/620 3723/2047/620 +f 3691/1520/621 3864/2048/621 3863/2049/622 +f 3693/1731/622 3863/2049/622 3862/2050/608 +f 3694/1732/608 3862/2050/608 3722/2051/607 +f 3696/1527/607 3722/2051/607 3861/2052/609 +f 3699/1530/609 3861/2052/609 3860/2053/610 +f 3701/1533/610 3860/2053/610 3859/2054/611 +f 3760/1604/572 3998/2081/572 3996/2055/570 +f 3746/1586/573 3999/2058/573 3997/2056/571 +f 3730/1566/558 4000/2059/558 3998/2057/572 +f 3747/1587/560 4001/2060/560 3999/2058/573 +f 3733/1569/559 4002/2061/559 4000/2059/558 +f 3749/1590/561 4003/2062/561 4001/2060/560 +f 3736/1573/562 4004/2063/562 4002/2061/559 +f 3752/1594/563 4005/2064/563 4003/2062/561 +f 3738/1575/564 4006/2065/564 4004/2063/562 +f 3754/1596/565 4007/2066/565 4005/2064/563 +f 3739/1576/566 4008/2067/566 4006/2065/564 +f 3758/1600/567 4010/2069/567 4007/2066/565 +f 3741/1579/568 4011/2070/568 4008/2067/566 +f 3757/1599/570 3996/2055/570 4009/2068/569 +f 3755/1597/569 4009/2068/569 4010/2069/567 +f 3743/1582/571 3997/2056/571 4011/2070/568 +f 3745/1585/620 3744/1757/619 3872/2088/619 +f 3745/1588/620 3762/2089/620 3871/2090/621 +f 3748/1591/621 3871/2090/621 3870/2091/622 +f 3751/1593/608 3750/1758/622 3870/2091/622 +f 3751/1759/608 3869/2092/608 3868/2093/607 +f 3761/1760/610 3866/2097/610 3865/2094/611 +f 3759/1602/609 3753/1601/607 3868/2093/607 +f 3731/1603/612 3756/1761/611 3865/2094/611 +f 3759/1605/609 3867/2095/609 3866/2097/610 +f 3732/1568/615 3731/1567/612 3764/2098/612 +f 3732/1570/615 3877/2099/615 3876/2100/614 +f 3735/1572/613 3734/1755/614 3876/2100/614 +f 3735/1756/613 3875/2101/613 3763/2102/616 +f 3737/1577/616 3763/2102/616 3874/2103/617 +f 3740/1580/617 3874/2103/617 3873/2104/618 +f 3742/1583/618 3873/2104/618 3872/2088/619 +f 3779/2105/561 3878/2108/625 3882/2106/625 +f 3878/2108/625 3778/2110/626 3883/2109/626 +f 3778/2110/626 3777/2112/559 3780/2111/559 +f 3777/2112/559 3880/2114/623 3781/2113/623 +f 3880/2114/623 3879/2162/624 3782/2115/624 +f 3879/2116/624 3779/2105/561 3881/2107/561 +f 3789/2118/568 3884/2121/678 3888/2119/678 +f 3884/2121/678 3791/2123/679 3889/2122/679 +f 3791/2123/679 3886/2125/569 3792/2124/569 +f 3886/2125/569 3790/2127/680 3793/2126/680 +f 3790/2127/680 3885/2163/681 3794/2128/681 +f 3885/2129/681 3789/2118/568 3887/2120/568 +f 3801/2131/569 3890/2134/680 3894/2132/680 +f 3890/2134/680 3803/2136/681 3895/2135/681 +f 3803/2136/681 3892/2138/568 3804/2137/568 +f 3892/2138/568 3802/2140/678 3805/2139/678 +f 3802/2140/678 3891/2164/679 3806/2141/679 +f 3891/2142/679 3801/2131/569 3893/2133/569 o Huge_Missile v 0.923880 8.500000 0.382684 v 0.618718 8.500000 0.618719 @@ -12018,609 +13166,609 @@ vn 0.9808 0.0000 -0.1951 vn -0.5556 -0.0000 0.8315 vn -0.9808 -0.0000 0.1951 s off -f 3941/1173/682 3942/1174/682 3943/1175/682 -f 3944/1176/682 3945/1177/682 3946/1178/682 -f 3947/1179/682 3942/1174/682 3948/1180/682 -f 3949/1181/682 3950/1182/682 3944/1176/682 -f 3947/1179/682 3951/1183/682 3952/1184/682 -f 3953/1185/682 3954/1186/682 3955/1187/682 -f 3949/1181/682 3955/1187/682 3956/1188/682 -f 3957/1189/682 3951/1183/682 3958/1190/682 -f 3959/1191/682 3954/1186/682 3960/1192/682 -f 3961/1193/682 3962/1194/682 3957/1189/682 -f 3959/1191/682 3963/1195/682 3964/1196/682 -f 3965/1197/682 3966/1198/682 3961/1193/682 -f 3967/1199/682 3968/1200/682 3963/1195/682 -f 3969/1201/682 3970/1202/682 3965/1197/682 -f 3971/1203/682 3943/1175/682 3968/1200/682 -f 3972/1204/682 3973/1205/682 3974/1206/682 -f 3946/1178/682 3975/1207/682 3969/1208/682 -f 3976/1209/683 3977/1210/683 3978/1211/683 -f 3979/1212/683 3980/1213/683 3976/1209/683 -f 3981/1214/683 3982/1215/683 3979/1212/683 -f 3983/1216/683 3984/1217/683 3981/1214/683 -f 3985/1218/683 3986/1219/683 3983/1216/683 -f 3987/1220/683 3988/1221/683 3985/1218/683 -f 3987/1220/683 3989/1222/683 3990/1223/683 -f 3991/1224/683 3992/1225/683 3989/1222/683 -f 3993/1226/683 3994/1227/683 3992/1225/683 -f 3995/1228/683 3996/1229/683 3994/1230/683 -f 3997/1231/683 3998/1232/683 3996/1229/683 -f 3999/1233/683 3998/1232/683 4000/1234/683 -f 3999/1233/683 4001/1235/683 4002/1236/683 -f 4003/1237/683 4001/1235/683 4004/1238/683 -f 4005/1239/683 4006/1240/683 4003/1237/683 -f 3978/1211/683 4007/1241/683 4005/1239/683 -f 4008/1242/682 4009/1243/682 4010/1244/682 -f 4011/1245/682 4012/1246/682 4013/1247/682 -f 4014/1248/684 4015/1249/684 4016/1250/684 -f 4012/1246/685 4015/1251/685 4014/1248/685 -f 4013/1252/686 4015/1251/686 4011/1245/686 -f 4017/1253/682 4018/1254/682 4019/1255/682 -f 4020/1256/682 4021/1257/682 4022/1258/682 -f 4023/1259/682 4024/1260/682 4025/1261/682 -f 4026/1262/682 4027/1263/682 4028/1264/682 -f 4029/1265/687 4030/1266/687 4031/1267/687 -f 4027/1263/688 4030/1268/688 4029/1265/688 -f 4028/1269/689 4030/1268/689 4026/1262/689 -f 4032/1270/682 4033/1271/682 4034/1272/682 -f 4035/1273/690 4036/1274/690 4037/1275/690 -f 4033/1271/691 4036/1276/691 4035/1273/691 -f 4034/1277/692 4036/1276/692 4032/1270/692 -f 4038/1278/682 4039/1279/682 4040/1280/682 -f 4041/1281/693 4042/1282/693 4043/1283/693 -f 4039/1279/694 4042/1284/694 4041/1281/694 -f 4040/1285/695 4042/1284/695 4038/1278/695 -f 3941/1173/682 3948/1180/682 3942/1174/682 -f 3944/1176/682 3950/1182/682 3945/1177/682 -f 3947/1179/682 3952/1184/682 3942/1174/682 -f 3949/1181/682 3956/1188/682 3950/1182/682 -f 3947/1179/682 3958/1190/682 3951/1183/682 -f 3953/1185/682 3960/1192/682 3954/1186/682 -f 3949/1181/682 3953/1185/682 3955/1187/682 -f 3957/1189/682 3962/1194/682 3951/1183/682 -f 3959/1191/682 3964/1196/682 3954/1186/682 -f 3961/1193/682 3966/1198/682 3962/1194/682 -f 3959/1191/682 3967/1199/682 3963/1195/682 -f 3965/1197/682 3970/1202/682 3966/1198/682 -f 3967/1199/682 3971/1203/682 3968/1200/682 -f 3969/1201/682 3975/1286/682 3970/1202/682 -f 3971/1203/682 3941/1173/682 3943/1175/682 -f 3974/1206/682 4044/1287/682 4045/1288/682 -f 4044/1287/682 4046/1289/682 4045/1288/682 -f 4046/1289/682 4047/1290/682 4045/1288/682 -f 4045/1288/682 4048/1291/682 4049/1292/682 -f 4049/1292/682 4050/1293/682 3972/1204/682 -f 3972/1204/682 4051/1294/682 3973/1205/682 -f 4051/1294/682 4052/1295/682 3973/1205/682 -f 4052/1295/682 4053/1296/682 3973/1205/682 -f 3973/1205/682 4054/1297/682 4055/1298/682 -f 4055/1298/682 4056/1299/682 3973/1205/682 -f 4056/1299/682 3974/1206/682 3973/1205/682 -f 4045/1288/682 4049/1292/682 3974/1206/682 -f 4049/1292/682 3972/1204/682 3974/1206/682 -f 3946/1178/682 3945/1177/682 3975/1207/682 -f 3976/1209/683 3980/1213/683 3977/1210/683 -f 3979/1212/683 3982/1215/683 3980/1213/683 -f 3981/1214/683 3984/1217/683 3982/1215/683 -f 3983/1216/683 3986/1219/683 3984/1217/683 -f 3985/1218/683 3988/1221/683 3986/1219/683 -f 3987/1220/683 3990/1223/683 3988/1221/683 -f 3987/1220/683 3991/1224/683 3989/1222/683 -f 3991/1224/683 3993/1226/683 3992/1225/683 -f 3993/1226/683 3995/1300/683 3994/1227/683 -f 3995/1228/683 3997/1231/683 3996/1229/683 -f 3997/1231/683 4000/1234/683 3998/1232/683 -f 3999/1233/683 4002/1236/683 3998/1232/683 -f 3999/1233/683 4004/1238/683 4001/1235/683 -f 4003/1237/683 4006/1240/683 4001/1235/683 -f 4005/1239/683 4007/1241/683 4006/1240/683 -f 3978/1211/683 3977/1210/683 4007/1241/683 -f 4008/1242/682 4057/1301/682 4058/1302/682 -f 4058/1302/682 4059/1303/682 4008/1242/682 -f 4059/1303/682 4009/1243/682 4008/1242/682 -f 4009/1243/682 4060/1304/682 4061/1305/682 -f 4061/1305/682 4062/1306/682 4010/1244/682 -f 4010/1244/682 4063/1307/682 4064/1308/682 -f 4064/1308/682 4065/1309/682 4066/1310/682 -f 4066/1310/682 4067/1311/682 4068/1312/682 -f 4068/1312/682 4069/1313/682 4008/1242/682 -f 4009/1243/682 4061/1305/682 4010/1244/682 -f 4010/1244/682 4064/1308/682 4008/1242/682 -f 4064/1308/682 4066/1310/682 4008/1242/682 -f 4066/1310/682 4068/1312/682 4008/1242/682 -f 4012/1246/685 4011/1245/685 4015/1251/685 -f 4013/1252/686 4016/1314/686 4015/1251/686 -f 4019/1255/682 4070/1315/682 4071/1316/682 -f 4070/1315/682 4072/1317/682 4071/1316/682 -f 4072/1317/682 4073/1318/682 4071/1316/682 -f 4071/1316/682 4074/1319/682 4075/1320/682 -f 4075/1320/682 4076/1321/682 4017/1253/682 -f 4017/1253/682 4077/1322/682 4018/1254/682 -f 4077/1322/682 4078/1323/682 4018/1254/682 -f 4078/1323/682 4079/1324/682 4018/1254/682 -f 4018/1254/682 4080/1325/682 4081/1326/682 -f 4081/1326/682 4082/1327/682 4018/1254/682 -f 4082/1327/682 4019/1255/682 4018/1254/682 -f 4071/1316/682 4075/1320/682 4019/1255/682 -f 4075/1320/682 4017/1253/682 4019/1255/682 -f 4022/1258/682 4083/1328/682 4084/1329/682 -f 4083/1328/682 4085/1330/682 4084/1329/682 -f 4085/1330/682 4086/1331/682 4084/1329/682 -f 4084/1329/682 4087/1332/682 4088/1333/682 -f 4088/1333/682 4089/1334/682 4020/1256/682 -f 4020/1256/682 4090/1335/682 4021/1257/682 -f 4090/1335/682 4091/1336/682 4021/1257/682 -f 4091/1336/682 4092/1337/682 4021/1257/682 -f 4021/1257/682 4093/1338/682 4094/1339/682 -f 4094/1339/682 4095/1340/682 4021/1257/682 -f 4095/1340/682 4022/1258/682 4021/1257/682 -f 4084/1329/682 4088/1333/682 4022/1258/682 -f 4088/1333/682 4020/1256/682 4022/1258/682 -f 4025/1261/682 4096/1341/682 4097/1342/682 -f 4096/1341/682 4098/1343/682 4097/1342/682 -f 4098/1343/682 4099/1344/682 4097/1342/682 -f 4097/1342/682 4100/1345/682 4101/1346/682 -f 4101/1346/682 4102/1347/682 4023/1259/682 -f 4023/1259/682 4103/1348/682 4024/1260/682 -f 4103/1348/682 4104/1349/682 4024/1260/682 -f 4104/1349/682 4105/1350/682 4024/1260/682 -f 4024/1260/682 4106/1351/682 4107/1352/682 -f 4107/1352/682 4108/1353/682 4024/1260/682 -f 4108/1353/682 4025/1261/682 4024/1260/682 -f 4097/1342/682 4101/1346/682 4025/1261/682 -f 4101/1346/682 4023/1259/682 4025/1261/682 -f 4027/1263/688 4026/1262/688 4030/1268/688 -f 4028/1269/689 4031/1354/689 4030/1268/689 -f 4033/1271/691 4032/1270/691 4036/1276/691 -f 4034/1277/692 4037/1355/692 4036/1276/692 -f 4039/1279/694 4038/1278/694 4042/1284/694 -f 4040/1285/695 4043/1356/695 4042/1284/695 +f 4013/2165/682 4014/2166/682 4015/2167/682 +f 4016/2168/682 4017/2169/682 4018/2170/682 +f 4019/2171/682 4014/2166/682 4020/2172/682 +f 4021/2173/682 4022/2174/682 4016/2168/682 +f 4019/2171/682 4023/2175/682 4024/2176/682 +f 4025/2177/682 4026/2178/682 4027/2179/682 +f 4021/2173/682 4027/2179/682 4028/2180/682 +f 4029/2181/682 4023/2175/682 4030/2182/682 +f 4031/2183/682 4026/2178/682 4032/2184/682 +f 4033/2185/682 4034/2186/682 4029/2181/682 +f 4031/2183/682 4035/2187/682 4036/2188/682 +f 4037/2189/682 4038/2190/682 4033/2185/682 +f 4039/2191/682 4040/2192/682 4035/2187/682 +f 4041/2193/682 4042/2194/682 4037/2189/682 +f 4043/2195/682 4015/2167/682 4040/2192/682 +f 4044/2196/682 4045/2197/682 4046/2198/682 +f 4018/2170/682 4047/2199/682 4041/2200/682 +f 4048/2201/683 4049/2202/683 4050/2203/683 +f 4051/2204/683 4052/2205/683 4048/2201/683 +f 4053/2206/683 4054/2207/683 4051/2204/683 +f 4055/2208/683 4056/2209/683 4053/2206/683 +f 4057/2210/683 4058/2211/683 4055/2208/683 +f 4059/2212/683 4060/2213/683 4057/2210/683 +f 4059/2212/683 4061/2214/683 4062/2215/683 +f 4063/2216/683 4064/2217/683 4061/2214/683 +f 4065/2218/683 4066/2219/683 4064/2217/683 +f 4067/2220/683 4068/2221/683 4066/2222/683 +f 4069/2223/683 4070/2224/683 4068/2221/683 +f 4071/2225/683 4070/2224/683 4072/2226/683 +f 4071/2225/683 4073/2227/683 4074/2228/683 +f 4075/2229/683 4073/2227/683 4076/2230/683 +f 4077/2231/683 4078/2232/683 4075/2229/683 +f 4050/2203/683 4079/2233/683 4077/2231/683 +f 4080/2234/682 4081/2235/682 4082/2236/682 +f 4083/2237/682 4084/2238/682 4085/2239/682 +f 4086/2240/684 4087/2241/684 4088/2242/684 +f 4084/2238/685 4087/2243/685 4086/2240/685 +f 4085/2244/686 4087/2243/686 4083/2237/686 +f 4089/2245/682 4090/2246/682 4091/2247/682 +f 4092/2248/682 4093/2249/682 4094/2250/682 +f 4095/2251/682 4096/2252/682 4097/2253/682 +f 4098/2254/682 4099/2255/682 4100/2256/682 +f 4101/2257/687 4102/2258/687 4103/2259/687 +f 4099/2255/688 4102/2260/688 4101/2257/688 +f 4100/2261/689 4102/2260/689 4098/2254/689 +f 4104/2262/682 4105/2263/682 4106/2264/682 +f 4107/2265/690 4108/2266/690 4109/2267/690 +f 4105/2263/691 4108/2268/691 4107/2265/691 +f 4106/2269/692 4108/2268/692 4104/2262/692 +f 4110/2270/682 4111/2271/682 4112/2272/682 +f 4113/2273/693 4114/2274/693 4115/2275/693 +f 4111/2271/694 4114/2276/694 4113/2273/694 +f 4112/2277/695 4114/2276/695 4110/2270/695 +f 4013/2165/682 4020/2172/682 4014/2166/682 +f 4016/2168/682 4022/2174/682 4017/2169/682 +f 4019/2171/682 4024/2176/682 4014/2166/682 +f 4021/2173/682 4028/2180/682 4022/2174/682 +f 4019/2171/682 4030/2182/682 4023/2175/682 +f 4025/2177/682 4032/2184/682 4026/2178/682 +f 4021/2173/682 4025/2177/682 4027/2179/682 +f 4029/2181/682 4034/2186/682 4023/2175/682 +f 4031/2183/682 4036/2188/682 4026/2178/682 +f 4033/2185/682 4038/2190/682 4034/2186/682 +f 4031/2183/682 4039/2191/682 4035/2187/682 +f 4037/2189/682 4042/2194/682 4038/2190/682 +f 4039/2191/682 4043/2195/682 4040/2192/682 +f 4041/2193/682 4047/2278/682 4042/2194/682 +f 4043/2195/682 4013/2165/682 4015/2167/682 +f 4046/2198/682 4116/2279/682 4117/2280/682 +f 4116/2279/682 4118/2281/682 4117/2280/682 +f 4118/2281/682 4119/2282/682 4117/2280/682 +f 4117/2280/682 4120/2283/682 4121/2284/682 +f 4121/2284/682 4122/2285/682 4044/2196/682 +f 4044/2196/682 4123/2286/682 4045/2197/682 +f 4123/2286/682 4124/2287/682 4045/2197/682 +f 4124/2287/682 4125/2288/682 4045/2197/682 +f 4045/2197/682 4126/2289/682 4127/2290/682 +f 4127/2290/682 4128/2291/682 4045/2197/682 +f 4128/2291/682 4046/2198/682 4045/2197/682 +f 4117/2280/682 4121/2284/682 4046/2198/682 +f 4121/2284/682 4044/2196/682 4046/2198/682 +f 4018/2170/682 4017/2169/682 4047/2199/682 +f 4048/2201/683 4052/2205/683 4049/2202/683 +f 4051/2204/683 4054/2207/683 4052/2205/683 +f 4053/2206/683 4056/2209/683 4054/2207/683 +f 4055/2208/683 4058/2211/683 4056/2209/683 +f 4057/2210/683 4060/2213/683 4058/2211/683 +f 4059/2212/683 4062/2215/683 4060/2213/683 +f 4059/2212/683 4063/2216/683 4061/2214/683 +f 4063/2216/683 4065/2218/683 4064/2217/683 +f 4065/2218/683 4067/2292/683 4066/2219/683 +f 4067/2220/683 4069/2223/683 4068/2221/683 +f 4069/2223/683 4072/2226/683 4070/2224/683 +f 4071/2225/683 4074/2228/683 4070/2224/683 +f 4071/2225/683 4076/2230/683 4073/2227/683 +f 4075/2229/683 4078/2232/683 4073/2227/683 +f 4077/2231/683 4079/2233/683 4078/2232/683 +f 4050/2203/683 4049/2202/683 4079/2233/683 +f 4080/2234/682 4129/2293/682 4130/2294/682 +f 4130/2294/682 4131/2295/682 4080/2234/682 +f 4131/2295/682 4081/2235/682 4080/2234/682 +f 4081/2235/682 4132/2296/682 4133/2297/682 +f 4133/2297/682 4134/2298/682 4082/2236/682 +f 4082/2236/682 4135/2299/682 4136/2300/682 +f 4136/2300/682 4137/2301/682 4138/2302/682 +f 4138/2302/682 4139/2303/682 4140/2304/682 +f 4140/2304/682 4141/2305/682 4080/2234/682 +f 4081/2235/682 4133/2297/682 4082/2236/682 +f 4082/2236/682 4136/2300/682 4080/2234/682 +f 4136/2300/682 4138/2302/682 4080/2234/682 +f 4138/2302/682 4140/2304/682 4080/2234/682 +f 4084/2238/685 4083/2237/685 4087/2243/685 +f 4085/2244/686 4088/2306/686 4087/2243/686 +f 4091/2247/682 4142/2307/682 4143/2308/682 +f 4142/2307/682 4144/2309/682 4143/2308/682 +f 4144/2309/682 4145/2310/682 4143/2308/682 +f 4143/2308/682 4146/2311/682 4147/2312/682 +f 4147/2312/682 4148/2313/682 4089/2245/682 +f 4089/2245/682 4149/2314/682 4090/2246/682 +f 4149/2314/682 4150/2315/682 4090/2246/682 +f 4150/2315/682 4151/2316/682 4090/2246/682 +f 4090/2246/682 4152/2317/682 4153/2318/682 +f 4153/2318/682 4154/2319/682 4090/2246/682 +f 4154/2319/682 4091/2247/682 4090/2246/682 +f 4143/2308/682 4147/2312/682 4091/2247/682 +f 4147/2312/682 4089/2245/682 4091/2247/682 +f 4094/2250/682 4155/2320/682 4156/2321/682 +f 4155/2320/682 4157/2322/682 4156/2321/682 +f 4157/2322/682 4158/2323/682 4156/2321/682 +f 4156/2321/682 4159/2324/682 4160/2325/682 +f 4160/2325/682 4161/2326/682 4092/2248/682 +f 4092/2248/682 4162/2327/682 4093/2249/682 +f 4162/2327/682 4163/2328/682 4093/2249/682 +f 4163/2328/682 4164/2329/682 4093/2249/682 +f 4093/2249/682 4165/2330/682 4166/2331/682 +f 4166/2331/682 4167/2332/682 4093/2249/682 +f 4167/2332/682 4094/2250/682 4093/2249/682 +f 4156/2321/682 4160/2325/682 4094/2250/682 +f 4160/2325/682 4092/2248/682 4094/2250/682 +f 4097/2253/682 4168/2333/682 4169/2334/682 +f 4168/2333/682 4170/2335/682 4169/2334/682 +f 4170/2335/682 4171/2336/682 4169/2334/682 +f 4169/2334/682 4172/2337/682 4173/2338/682 +f 4173/2338/682 4174/2339/682 4095/2251/682 +f 4095/2251/682 4175/2340/682 4096/2252/682 +f 4175/2340/682 4176/2341/682 4096/2252/682 +f 4176/2341/682 4177/2342/682 4096/2252/682 +f 4096/2252/682 4178/2343/682 4179/2344/682 +f 4179/2344/682 4180/2345/682 4096/2252/682 +f 4180/2345/682 4097/2253/682 4096/2252/682 +f 4169/2334/682 4173/2338/682 4097/2253/682 +f 4173/2338/682 4095/2251/682 4097/2253/682 +f 4099/2255/688 4098/2254/688 4102/2260/688 +f 4100/2261/689 4103/2346/689 4102/2260/689 +f 4105/2263/691 4104/2262/691 4108/2268/691 +f 4106/2269/692 4109/2347/692 4108/2268/692 +f 4111/2271/694 4110/2270/694 4114/2276/694 +f 4112/2277/695 4115/2348/695 4114/2276/695 s 1 -f 4109/1357/696 4067/1358/697 4110/1359/697 -f 4111/1360/698 4112/1361/699 4113/1362/699 -f 4114/1363/700 4115/1364/701 4116/1365/701 -f 4117/1366/702 4118/1367/698 4111/1360/698 -f 4119/1368/703 4120/1369/700 4114/1363/700 -f 4121/1370/704 4122/1371/702 4117/1366/702 -f 4119/1368/703 4123/1372/705 4124/1373/703 -f 4125/1374/706 4126/1375/704 4121/1376/704 -f 4127/1377/707 4123/1378/705 4128/1379/705 -f 4129/1380/708 4130/1381/706 4125/1374/706 -f 4131/1382/709 4132/1383/707 4127/1377/707 -f 4133/1384/710 4134/1385/708 4129/1380/708 -f 4135/1386/711 4136/1387/709 4131/1382/709 -f 4137/1388/712 4138/1389/710 4133/1384/710 -f 4113/1362/699 4139/1390/713 4140/1391/713 -f 4140/1391/713 4141/1392/711 4135/1386/711 -f 4116/1365/701 4142/1393/712 4137/1388/712 -f 4143/1394/714 4061/1395/715 4144/1396/715 -f 4112/1361/716 4118/1397/717 4145/1398/683 -f 4118/1367/717 4122/1399/718 4145/1400/683 -f 4122/1371/718 4126/1401/719 4145/1402/683 -f 4126/1375/719 4130/1403/720 4145/1404/683 -f 4130/1381/720 4134/1405/721 4145/1406/683 -f 4134/1385/721 4138/1407/722 4145/1408/683 -f 4138/1389/722 4142/1409/723 4145/1410/683 -f 4142/1393/723 4115/1411/724 4145/1412/683 -f 4115/1364/724 4120/1413/725 4145/1414/683 -f 4120/1369/725 4124/1415/726 4145/1416/683 -f 4124/1373/726 4123/1372/727 4145/1417/683 -f 4123/1378/727 4132/1418/728 4145/1419/683 -f 4132/1383/728 4136/1420/729 4145/1421/683 -f 4136/1387/729 4141/1422/730 4145/1423/683 -f 4141/1392/730 4139/1424/731 4145/1425/683 -f 4139/1390/731 4112/1426/716 4145/1427/683 -f 4146/1428/732 4068/1429/696 4109/1430/696 -f 4147/1431/733 4062/1432/714 4143/1394/714 -f 4148/1433/734 4069/1434/732 4146/1428/732 -f 4149/1435/735 4010/1436/733 4147/1431/733 -f 4150/1437/736 4008/1438/734 4148/1433/734 -f 4151/1439/737 4063/1440/735 4149/1435/735 -f 4152/1441/738 4058/1442/739 4153/1443/739 -f 4153/1443/739 4057/1444/736 4150/1437/736 -f 4154/1445/740 4064/1446/737 4151/1439/737 -f 4155/1447/741 4059/1448/738 4152/1441/738 -f 4156/1449/742 4157/1450/693 4158/1451/693 -f 4159/1452/743 4157/1450/693 4160/1453/743 -f 4159/1452/743 4161/1454/744 4162/1455/744 -f 4163/1456/745 4161/1457/744 4164/1458/745 -f 4163/1456/745 4165/1459/687 4166/1460/687 -f 4166/1460/687 4167/1461/746 4168/1462/746 -f 4168/1462/746 4169/1463/747 4170/1464/747 -f 4170/1464/747 4171/1465/748 4172/1466/748 -f 4172/1466/748 4173/1467/690 4174/1468/690 -f 4175/1469/749 4173/1467/690 4176/1470/749 -f 4175/1469/749 4177/1471/750 4178/1472/750 -f 4178/1472/750 4179/1473/751 4180/1474/751 -f 4180/1474/751 4181/1475/684 4182/1476/684 -f 4183/1477/752 4181/1475/684 4184/1478/752 -f 4185/1479/753 4184/1478/752 4186/1480/753 -f 4056/1481/732 4174/1468/734 3974/1482/734 -f 3972/1483/733 4159/1452/735 4051/1484/735 -f 3974/1482/734 4175/1469/736 4044/1485/736 -f 4051/1484/735 4162/1455/737 4052/1486/737 -f 4046/1487/739 4180/1474/738 4047/1488/738 -f 4044/1485/736 4178/1472/739 4046/1487/739 -f 4052/1489/737 4163/1456/740 4053/1490/740 -f 4047/1488/738 4182/1476/741 4045/1491/741 -f 4053/1490/740 4166/1460/754 3973/1492/754 -f 4045/1491/741 4183/1477/755 4048/1493/755 -f 3973/1492/754 4168/1462/697 4054/1494/697 -f 4048/1493/755 4185/1479/715 4049/1495/715 -f 4054/1494/697 4170/1464/696 4055/1496/696 -f 4049/1495/715 4156/1449/714 4050/1497/714 -f 4055/1496/696 4172/1466/732 4056/1481/732 -f 4050/1497/714 4158/1451/733 3972/1483/733 -f 4185/1479/753 4187/1498/742 4156/1449/742 -f 3981/1499/756 4152/1441/757 3983/1500/757 -f 4144/1396/715 4060/1501/755 4188/1502/755 -f 3956/1188/736 3989/1222/734 3950/1182/734 -f 3952/1184/735 4007/1241/733 3942/1174/733 -f 3950/1182/734 3992/1225/732 3945/1177/732 -f 3942/1174/733 3977/1210/714 3943/1175/714 -f 3945/1177/732 3994/1227/696 3975/1207/696 -f 3943/1175/714 3980/1213/715 3968/1200/715 -f 3975/1286/696 3996/1229/697 3970/1202/697 -f 3968/1200/715 3982/1215/755 3963/1195/755 -f 3970/1202/697 3998/1232/754 3966/1198/754 -f 3963/1195/755 3984/1217/741 3964/1196/741 -f 3966/1198/754 4002/1236/740 3962/1194/740 -f 3964/1196/741 3986/1219/738 3954/1186/738 -f 3962/1194/740 4001/1235/737 3951/1183/737 -f 3955/1187/739 3990/1223/736 3956/1188/736 -f 3954/1186/738 3988/1221/739 3955/1187/739 -f 3951/1183/737 4006/1240/735 3952/1184/735 -f 3999/1503/758 4189/1504/759 4154/1445/758 -f 3979/1505/760 4155/1447/756 3981/1499/756 -f 3997/1506/761 4189/1504/759 4000/1507/759 -f 3976/1508/762 4188/1502/760 3979/1505/760 -f 3997/1506/761 4109/1357/763 4110/1359/761 -f 3976/1508/762 4143/1394/764 4144/1396/762 -f 3993/1509/765 4109/1430/763 3995/1510/763 -f 4005/1511/766 4143/1394/764 3978/1512/764 -f 3991/1513/767 4146/1428/765 3993/1509/765 -f 4005/1511/766 4149/1435/768 4147/1431/766 -f 3987/1514/769 4148/1433/767 3991/1513/767 -f 4004/1515/770 4149/1435/768 4003/1516/768 -f 3985/1517/771 4152/1441/757 4153/1443/771 -f 3985/1517/771 4150/1437/769 3987/1514/769 -f 3999/1503/758 4151/1439/770 4004/1515/770 -f 4189/1504/754 4065/1518/740 4154/1445/740 -f 4188/1502/755 4009/1519/741 4155/1447/741 -f 4110/1359/697 4066/1520/754 4189/1504/754 -f 3941/1173/714 4128/1379/715 4119/1368/714 -f 3971/1203/715 4127/1377/755 4128/1379/715 -f 3967/1199/755 4131/1382/741 4127/1377/755 -f 3959/1191/741 4135/1386/738 4131/1382/741 -f 3960/1192/738 4140/1391/739 4135/1386/738 -f 3953/1185/739 4113/1362/736 4140/1391/739 -f 3949/1181/736 4111/1360/734 4113/1362/736 -f 3944/1176/734 4117/1366/732 4111/1360/734 -f 3946/1178/732 4121/1370/696 4117/1366/732 -f 3969/1201/696 4125/1374/697 4121/1376/696 -f 3965/1197/697 4129/1380/754 4125/1374/697 -f 3961/1193/754 4133/1384/740 4129/1380/754 -f 3957/1189/740 4137/1388/737 4133/1384/740 -f 3958/1190/737 4116/1365/735 4137/1388/737 -f 3947/1179/735 4114/1363/733 4116/1365/735 -f 3948/1180/733 4119/1368/714 4114/1363/733 -f 4190/1521/741 4191/1522/772 4192/1523/741 -f 4193/1524/755 4192/1523/741 4194/1525/755 -f 4195/1526/773 4194/1525/755 4196/1527/773 -f 4197/1528/742 4198/1529/693 4199/1530/693 -f 4200/1531/743 4198/1529/693 4201/1532/743 -f 4200/1531/743 4202/1533/744 4203/1534/744 -f 4204/1535/745 4202/1536/744 4205/1537/745 -f 4204/1535/745 4206/1538/687 4207/1539/687 -f 4207/1539/687 4208/1540/746 4209/1541/746 -f 4209/1541/746 4210/1542/747 4211/1543/747 -f 4212/1544/748 4210/1542/747 4213/1545/748 -f 4212/1544/748 4214/1546/690 4215/1547/690 -f 4216/1548/749 4214/1546/690 4217/1549/749 -f 4218/1550/750 4217/1549/749 4219/1551/750 -f 4218/1550/750 4220/1552/751 4221/1553/751 -f 4222/1554/684 4220/1552/751 4223/1555/684 -f 4224/1556/752 4223/1555/684 4225/1557/752 -f 4226/1558/753 4225/1557/752 4227/1559/753 -f 4082/1560/732 4215/1547/734 4019/1561/734 -f 4017/1562/733 4200/1531/735 4077/1563/735 -f 4019/1561/734 4216/1548/736 4070/1564/736 -f 4077/1563/735 4203/1534/737 4078/1565/737 -f 4072/1566/739 4221/1553/738 4073/1567/738 -f 4070/1564/736 4218/1550/739 4072/1566/739 -f 4078/1568/737 4204/1535/740 4079/1569/740 -f 4073/1567/738 4222/1554/741 4071/1570/741 -f 4079/1569/740 4207/1539/754 4018/1571/754 -f 4071/1570/741 4224/1556/755 4074/1572/755 -f 4018/1571/754 4209/1541/697 4080/1573/697 -f 4074/1572/755 4226/1558/715 4075/1574/715 -f 4080/1573/697 4211/1543/696 4081/1575/696 -f 4075/1574/715 4197/1528/714 4076/1576/714 -f 4081/1575/696 4212/1544/732 4082/1560/732 -f 4076/1576/714 4199/1530/733 4017/1562/733 -f 4226/1558/753 4228/1577/742 4197/1528/742 -f 4229/1578/742 4230/1579/693 4231/1580/693 -f 4232/1581/743 4230/1579/693 4233/1582/743 -f 4232/1581/743 4234/1583/744 4235/1584/744 -f 4236/1585/745 4234/1586/744 4237/1587/745 -f 4236/1585/745 4238/1588/687 4239/1589/687 -f 4239/1589/687 4240/1590/746 4241/1591/746 -f 4241/1591/746 4242/1592/747 4243/1593/747 -f 4244/1594/748 4242/1592/747 4245/1595/748 -f 4244/1594/748 4246/1596/690 4247/1597/690 -f 4248/1598/749 4246/1596/690 4249/1599/749 -f 4248/1598/749 4250/1600/750 4251/1601/750 -f 4251/1601/750 4252/1602/751 4253/1603/751 -f 4253/1603/751 4254/1604/684 4255/1605/684 -f 4256/1606/752 4254/1604/684 4257/1607/752 -f 4258/1608/753 4257/1607/752 4259/1609/753 -f 4095/1610/732 4247/1597/734 4022/1611/734 -f 4020/1612/733 4232/1581/735 4090/1613/735 -f 4022/1611/734 4248/1598/736 4083/1614/736 -f 4090/1613/735 4235/1584/737 4091/1615/737 -f 4085/1616/739 4253/1603/738 4086/1617/738 -f 4083/1614/736 4251/1601/739 4085/1616/739 -f 4091/1618/737 4236/1585/740 4092/1619/740 -f 4086/1617/738 4255/1605/741 4084/1620/741 -f 4092/1619/740 4239/1589/754 4021/1621/754 -f 4084/1620/741 4256/1606/755 4087/1622/755 -f 4021/1621/754 4241/1591/697 4093/1623/697 -f 4087/1622/755 4258/1608/715 4088/1624/715 -f 4093/1623/697 4243/1593/696 4094/1625/696 -f 4088/1624/715 4229/1578/714 4089/1626/714 -f 4094/1625/696 4244/1594/732 4095/1610/732 -f 4089/1626/714 4231/1580/733 4020/1612/733 -f 4258/1608/753 4260/1627/742 4229/1578/742 -f 4261/1628/742 4262/1629/693 4263/1630/693 -f 4264/1631/743 4262/1629/693 4265/1632/743 -f 4264/1631/743 4266/1633/744 4267/1634/744 -f 4268/1635/745 4266/1636/744 4269/1637/745 -f 4268/1635/745 4270/1638/687 4271/1639/687 -f 4271/1639/687 4272/1640/746 4273/1641/746 -f 4273/1641/746 4274/1642/747 4275/1643/747 -f 4276/1644/748 4274/1642/747 4277/1645/748 -f 4276/1644/748 4278/1646/690 4279/1647/690 -f 4280/1648/749 4278/1646/690 4281/1649/749 -f 4280/1648/749 4282/1650/750 4283/1651/750 -f 4283/1651/750 4284/1652/751 4285/1653/751 -f 4285/1653/751 4286/1654/684 4287/1655/684 -f 4288/1656/752 4286/1654/684 4289/1657/752 -f 4290/1658/753 4289/1657/752 4291/1659/753 -f 4108/1660/732 4279/1647/734 4025/1661/734 -f 4023/1662/733 4264/1631/735 4103/1663/735 -f 4025/1661/734 4280/1648/736 4096/1664/736 -f 4103/1663/735 4267/1634/737 4104/1665/737 -f 4098/1666/739 4285/1653/738 4099/1667/738 -f 4096/1664/736 4283/1651/739 4098/1666/739 -f 4104/1668/737 4268/1635/740 4105/1669/740 -f 4099/1667/738 4287/1655/741 4097/1670/741 -f 4105/1669/740 4271/1639/754 4024/1671/754 -f 4097/1670/741 4288/1656/755 4100/1672/755 -f 4024/1671/754 4273/1641/697 4106/1673/697 -f 4100/1672/755 4290/1658/715 4101/1674/715 -f 4106/1673/697 4275/1643/696 4107/1675/696 -f 4101/1674/715 4261/1628/714 4102/1676/714 -f 4107/1675/696 4276/1644/732 4108/1660/732 -f 4102/1676/714 4263/1630/733 4023/1662/733 -f 4290/1658/753 4292/1677/742 4261/1628/742 -f 4293/1678/754 4294/1679/774 4295/1680/754 -f 4296/1681/697 4295/1680/754 4297/1682/697 -f 4298/1683/775 4297/1682/697 4299/1684/775 -f 4109/1357/696 4068/1685/696 4067/1358/697 -f 4111/1360/698 4118/1397/698 4112/1361/699 -f 4114/1363/700 4120/1413/700 4115/1364/701 -f 4117/1366/702 4122/1399/702 4118/1367/698 -f 4119/1368/703 4124/1415/703 4120/1369/700 -f 4121/1370/704 4126/1401/704 4122/1371/702 -f 4119/1368/703 4128/1379/705 4123/1372/705 -f 4125/1374/706 4130/1403/706 4126/1375/704 -f 4127/1377/707 4132/1418/707 4123/1378/705 -f 4129/1380/708 4134/1405/708 4130/1381/706 -f 4131/1382/709 4136/1420/709 4132/1383/707 -f 4133/1384/710 4138/1407/710 4134/1385/708 -f 4135/1386/711 4141/1422/711 4136/1387/709 -f 4137/1388/712 4142/1409/712 4138/1389/710 -f 4113/1362/699 4112/1426/699 4139/1390/713 -f 4140/1391/713 4139/1424/713 4141/1392/711 -f 4116/1365/701 4115/1411/701 4142/1393/712 -f 4143/1394/714 4062/1432/714 4061/1395/715 -f 4146/1428/732 4069/1434/732 4068/1429/696 -f 4147/1431/733 4010/1436/733 4062/1432/714 -f 4148/1433/734 4008/1438/734 4069/1434/732 -f 4149/1435/735 4063/1440/735 4010/1436/733 -f 4150/1437/736 4057/1444/736 4008/1438/734 -f 4151/1439/737 4064/1446/737 4063/1440/735 -f 4152/1441/738 4059/1448/738 4058/1442/739 -f 4153/1443/739 4058/1442/739 4057/1444/736 -f 4154/1445/740 4065/1518/740 4064/1446/737 -f 4155/1447/741 4009/1519/741 4059/1448/738 -f 4156/1449/742 4187/1498/742 4157/1450/693 -f 4159/1452/743 4158/1451/693 4157/1450/693 -f 4159/1452/743 4160/1453/743 4161/1454/744 -f 4163/1456/745 4162/1686/744 4161/1457/744 -f 4163/1456/745 4164/1458/745 4165/1459/687 -f 4166/1460/687 4165/1459/687 4167/1461/746 -f 4168/1462/746 4167/1461/746 4169/1463/747 -f 4170/1464/747 4169/1463/747 4171/1465/748 -f 4172/1466/748 4171/1465/748 4173/1467/690 -f 4175/1469/749 4174/1468/690 4173/1467/690 -f 4175/1469/749 4176/1470/749 4177/1471/750 -f 4178/1472/750 4177/1471/750 4179/1473/751 -f 4180/1474/751 4179/1473/751 4181/1475/684 -f 4183/1477/752 4182/1476/684 4181/1475/684 -f 4185/1479/753 4183/1477/752 4184/1478/752 -f 4056/1481/732 4172/1466/732 4174/1468/734 -f 3972/1483/733 4158/1451/733 4159/1452/735 -f 3974/1482/734 4174/1468/734 4175/1469/736 -f 4051/1484/735 4159/1452/735 4162/1455/737 -f 4046/1487/739 4178/1472/739 4180/1474/738 -f 4044/1485/736 4175/1469/736 4178/1472/739 -f 4052/1489/737 4162/1686/737 4163/1456/740 -f 4047/1488/738 4180/1474/738 4182/1476/741 -f 4053/1490/740 4163/1456/740 4166/1460/754 -f 4045/1491/741 4182/1476/741 4183/1477/755 -f 3973/1492/754 4166/1460/754 4168/1462/697 -f 4048/1493/755 4183/1477/755 4185/1479/715 -f 4054/1494/697 4168/1462/697 4170/1464/696 -f 4049/1495/715 4185/1479/715 4156/1449/714 -f 4055/1496/696 4170/1464/696 4172/1466/732 -f 4050/1497/714 4156/1449/714 4158/1451/733 -f 4185/1479/753 4186/1480/753 4187/1498/742 -f 3981/1499/756 4155/1447/756 4152/1441/757 -f 4144/1396/715 4061/1395/715 4060/1501/755 -f 3956/1188/736 3990/1223/736 3989/1222/734 -f 3952/1184/735 4006/1240/735 4007/1241/733 -f 3950/1182/734 3989/1222/734 3992/1225/732 -f 3942/1174/733 4007/1241/733 3977/1210/714 -f 3945/1177/732 3992/1225/732 3994/1227/696 -f 3943/1175/714 3977/1210/714 3980/1213/715 -f 3975/1286/696 3994/1230/696 3996/1229/697 -f 3968/1200/715 3980/1213/715 3982/1215/755 -f 3970/1202/697 3996/1229/697 3998/1232/754 -f 3963/1195/755 3982/1215/755 3984/1217/741 -f 3966/1198/754 3998/1232/754 4002/1236/740 -f 3964/1196/741 3984/1217/741 3986/1219/738 -f 3962/1194/740 4002/1236/740 4001/1235/737 -f 3955/1187/739 3988/1221/739 3990/1223/736 -f 3954/1186/738 3986/1219/738 3988/1221/739 -f 3951/1183/737 4001/1235/737 4006/1240/735 -f 3999/1503/758 4000/1507/759 4189/1504/759 -f 3979/1505/760 4188/1502/760 4155/1447/756 -f 3997/1506/761 4110/1359/761 4189/1504/759 -f 3976/1508/762 4144/1396/762 4188/1502/760 -f 3997/1506/761 3995/1228/763 4109/1357/763 -f 3976/1508/762 3978/1512/764 4143/1394/764 -f 3993/1509/765 4146/1428/765 4109/1430/763 -f 4005/1511/766 4147/1431/766 4143/1394/764 -f 3991/1513/767 4148/1433/767 4146/1428/765 -f 4005/1511/766 4003/1516/768 4149/1435/768 -f 3987/1514/769 4150/1437/769 4148/1433/767 -f 4004/1515/770 4151/1439/770 4149/1435/768 -f 3985/1517/771 3983/1500/757 4152/1441/757 -f 3985/1517/771 4153/1443/771 4150/1437/769 -f 3999/1503/758 4154/1445/758 4151/1439/770 -f 4189/1504/754 4066/1520/754 4065/1518/740 -f 4188/1502/755 4060/1501/755 4009/1519/741 -f 4110/1359/697 4067/1358/697 4066/1520/754 -f 3941/1173/714 3971/1203/715 4128/1379/715 -f 3971/1203/715 3967/1199/755 4127/1377/755 -f 3967/1199/755 3959/1191/741 4131/1382/741 -f 3959/1191/741 3960/1192/738 4135/1386/738 -f 3960/1192/738 3953/1185/739 4140/1391/739 -f 3953/1185/739 3949/1181/736 4113/1362/736 -f 3949/1181/736 3944/1176/734 4111/1360/734 -f 3944/1176/734 3946/1178/732 4117/1366/732 -f 3946/1178/732 3969/1208/696 4121/1370/696 -f 3969/1201/696 3965/1197/697 4125/1374/697 -f 3965/1197/697 3961/1193/754 4129/1380/754 -f 3961/1193/754 3957/1189/740 4133/1384/740 -f 3957/1189/740 3958/1190/737 4137/1388/737 -f 3958/1190/737 3947/1179/735 4116/1365/735 -f 3947/1179/735 3948/1180/733 4114/1363/733 -f 3948/1180/733 3941/1173/714 4119/1368/714 -f 4190/1521/741 4300/1687/772 4191/1522/772 -f 4193/1524/755 4190/1521/741 4192/1523/741 -f 4195/1526/773 4193/1524/755 4194/1525/755 -f 4197/1528/742 4228/1577/742 4198/1529/693 -f 4200/1531/743 4199/1530/693 4198/1529/693 -f 4200/1531/743 4201/1532/743 4202/1533/744 -f 4204/1535/745 4203/1688/744 4202/1536/744 -f 4204/1535/745 4205/1537/745 4206/1538/687 -f 4207/1539/687 4206/1538/687 4208/1540/746 -f 4209/1541/746 4208/1540/746 4210/1542/747 -f 4212/1544/748 4211/1543/747 4210/1542/747 -f 4212/1544/748 4213/1545/748 4214/1546/690 -f 4216/1548/749 4215/1547/690 4214/1546/690 -f 4218/1550/750 4216/1548/749 4217/1549/749 -f 4218/1550/750 4219/1551/750 4220/1552/751 -f 4222/1554/684 4221/1553/751 4220/1552/751 -f 4224/1556/752 4222/1554/684 4223/1555/684 -f 4226/1558/753 4224/1556/752 4225/1557/752 -f 4082/1560/732 4212/1544/732 4215/1547/734 -f 4017/1562/733 4199/1530/733 4200/1531/735 -f 4019/1561/734 4215/1547/734 4216/1548/736 -f 4077/1563/735 4200/1531/735 4203/1534/737 -f 4072/1566/739 4218/1550/739 4221/1553/738 -f 4070/1564/736 4216/1548/736 4218/1550/739 -f 4078/1568/737 4203/1688/737 4204/1535/740 -f 4073/1567/738 4221/1553/738 4222/1554/741 -f 4079/1569/740 4204/1535/740 4207/1539/754 -f 4071/1570/741 4222/1554/741 4224/1556/755 -f 4018/1571/754 4207/1539/754 4209/1541/697 -f 4074/1572/755 4224/1556/755 4226/1558/715 -f 4080/1573/697 4209/1541/697 4211/1543/696 -f 4075/1574/715 4226/1558/715 4197/1528/714 -f 4081/1575/696 4211/1543/696 4212/1544/732 -f 4076/1576/714 4197/1528/714 4199/1530/733 -f 4226/1558/753 4227/1559/753 4228/1577/742 -f 4229/1578/742 4260/1627/742 4230/1579/693 -f 4232/1581/743 4231/1580/693 4230/1579/693 -f 4232/1581/743 4233/1582/743 4234/1583/744 -f 4236/1585/745 4235/1689/744 4234/1586/744 -f 4236/1585/745 4237/1587/745 4238/1588/687 -f 4239/1589/687 4238/1588/687 4240/1590/746 -f 4241/1591/746 4240/1590/746 4242/1592/747 -f 4244/1594/748 4243/1593/747 4242/1592/747 -f 4244/1594/748 4245/1595/748 4246/1596/690 -f 4248/1598/749 4247/1597/690 4246/1596/690 -f 4248/1598/749 4249/1599/749 4250/1600/750 -f 4251/1601/750 4250/1600/750 4252/1602/751 -f 4253/1603/751 4252/1602/751 4254/1604/684 -f 4256/1606/752 4255/1605/684 4254/1604/684 -f 4258/1608/753 4256/1606/752 4257/1607/752 -f 4095/1610/732 4244/1594/732 4247/1597/734 -f 4020/1612/733 4231/1580/733 4232/1581/735 -f 4022/1611/734 4247/1597/734 4248/1598/736 -f 4090/1613/735 4232/1581/735 4235/1584/737 -f 4085/1616/739 4251/1601/739 4253/1603/738 -f 4083/1614/736 4248/1598/736 4251/1601/739 -f 4091/1618/737 4235/1689/737 4236/1585/740 -f 4086/1617/738 4253/1603/738 4255/1605/741 -f 4092/1619/740 4236/1585/740 4239/1589/754 -f 4084/1620/741 4255/1605/741 4256/1606/755 -f 4021/1621/754 4239/1589/754 4241/1591/697 -f 4087/1622/755 4256/1606/755 4258/1608/715 -f 4093/1623/697 4241/1591/697 4243/1593/696 -f 4088/1624/715 4258/1608/715 4229/1578/714 -f 4094/1625/696 4243/1593/696 4244/1594/732 -f 4089/1626/714 4229/1578/714 4231/1580/733 -f 4258/1608/753 4259/1609/753 4260/1627/742 -f 4261/1628/742 4292/1677/742 4262/1629/693 -f 4264/1631/743 4263/1630/693 4262/1629/693 -f 4264/1631/743 4265/1632/743 4266/1633/744 -f 4268/1635/745 4267/1690/744 4266/1636/744 -f 4268/1635/745 4269/1637/745 4270/1638/687 -f 4271/1639/687 4270/1638/687 4272/1640/746 -f 4273/1641/746 4272/1640/746 4274/1642/747 -f 4276/1644/748 4275/1643/747 4274/1642/747 -f 4276/1644/748 4277/1645/748 4278/1646/690 -f 4280/1648/749 4279/1647/690 4278/1646/690 -f 4280/1648/749 4281/1649/749 4282/1650/750 -f 4283/1651/750 4282/1650/750 4284/1652/751 -f 4285/1653/751 4284/1652/751 4286/1654/684 -f 4288/1656/752 4287/1655/684 4286/1654/684 -f 4290/1658/753 4288/1656/752 4289/1657/752 -f 4108/1660/732 4276/1644/732 4279/1647/734 -f 4023/1662/733 4263/1630/733 4264/1631/735 -f 4025/1661/734 4279/1647/734 4280/1648/736 -f 4103/1663/735 4264/1631/735 4267/1634/737 -f 4098/1666/739 4283/1651/739 4285/1653/738 -f 4096/1664/736 4280/1648/736 4283/1651/739 -f 4104/1668/737 4267/1690/737 4268/1635/740 -f 4099/1667/738 4285/1653/738 4287/1655/741 -f 4105/1669/740 4268/1635/740 4271/1639/754 -f 4097/1670/741 4287/1655/741 4288/1656/755 -f 4024/1671/754 4271/1639/754 4273/1641/697 -f 4100/1672/755 4288/1656/755 4290/1658/715 -f 4106/1673/697 4273/1641/697 4275/1643/696 -f 4101/1674/715 4290/1658/715 4261/1628/714 -f 4107/1675/696 4275/1643/696 4276/1644/732 -f 4102/1676/714 4261/1628/714 4263/1630/733 -f 4290/1658/753 4291/1659/753 4292/1677/742 -f 4293/1678/754 4301/1691/774 4294/1679/774 -f 4296/1681/697 4293/1678/754 4295/1680/754 -f 4298/1683/775 4296/1681/697 4297/1682/697 +f 4181/2349/696 4139/2350/697 4182/2351/697 +f 4183/2352/698 4184/2353/699 4185/2354/699 +f 4186/2355/700 4187/2356/701 4188/2357/701 +f 4189/2358/702 4190/2359/698 4183/2352/698 +f 4191/2360/703 4192/2361/700 4186/2355/700 +f 4193/2362/704 4194/2363/702 4189/2358/702 +f 4191/2360/703 4195/2364/705 4196/2365/703 +f 4197/2366/706 4198/2367/704 4193/2368/704 +f 4199/2369/707 4195/2370/705 4200/2371/705 +f 4201/2372/708 4202/2373/706 4197/2366/706 +f 4203/2374/709 4204/2375/707 4199/2369/707 +f 4205/2376/710 4206/2377/708 4201/2372/708 +f 4207/2378/711 4208/2379/709 4203/2374/709 +f 4209/2380/712 4210/2381/710 4205/2376/710 +f 4185/2354/699 4211/2382/713 4212/2383/713 +f 4212/2383/713 4213/2384/711 4207/2378/711 +f 4188/2357/701 4214/2385/712 4209/2380/712 +f 4215/2386/714 4133/2387/715 4216/2388/715 +f 4184/2353/716 4190/2389/717 4217/2390/683 +f 4190/2359/717 4194/2391/718 4217/2392/683 +f 4194/2363/718 4198/2393/719 4217/2394/683 +f 4198/2367/719 4202/2395/720 4217/2396/683 +f 4202/2373/720 4206/2397/721 4217/2398/683 +f 4206/2377/721 4210/2399/722 4217/2400/683 +f 4210/2381/722 4214/2401/723 4217/2402/683 +f 4214/2385/723 4187/2403/724 4217/2404/683 +f 4187/2356/724 4192/2405/725 4217/2406/683 +f 4192/2361/725 4196/2407/726 4217/2408/683 +f 4196/2365/726 4195/2364/727 4217/2409/683 +f 4195/2370/727 4204/2410/728 4217/2411/683 +f 4204/2375/728 4208/2412/729 4217/2413/683 +f 4208/2379/729 4213/2414/730 4217/2415/683 +f 4213/2384/730 4211/2416/731 4217/2417/683 +f 4211/2382/731 4184/2418/716 4217/2419/683 +f 4218/2420/732 4140/2421/696 4181/2422/696 +f 4219/2423/733 4134/2424/714 4215/2386/714 +f 4220/2425/734 4141/2426/732 4218/2420/732 +f 4221/2427/735 4082/2428/733 4219/2423/733 +f 4222/2429/736 4080/2430/734 4220/2425/734 +f 4223/2431/737 4135/2432/735 4221/2427/735 +f 4224/2433/738 4130/2434/739 4225/2435/739 +f 4225/2435/739 4129/2436/736 4222/2429/736 +f 4226/2437/740 4136/2438/737 4223/2431/737 +f 4227/2439/741 4131/2440/738 4224/2433/738 +f 4228/2441/742 4229/2442/693 4230/2443/693 +f 4231/2444/743 4229/2442/693 4232/2445/743 +f 4231/2444/743 4233/2446/744 4234/2447/744 +f 4235/2448/745 4233/2449/744 4236/2450/745 +f 4235/2448/745 4237/2451/687 4238/2452/687 +f 4238/2452/687 4239/2453/746 4240/2454/746 +f 4240/2454/746 4241/2455/747 4242/2456/747 +f 4242/2456/747 4243/2457/748 4244/2458/748 +f 4244/2458/748 4245/2459/690 4246/2460/690 +f 4247/2461/749 4245/2459/690 4248/2462/749 +f 4247/2461/749 4249/2463/750 4250/2464/750 +f 4250/2464/750 4251/2465/751 4252/2466/751 +f 4252/2466/751 4253/2467/684 4254/2468/684 +f 4255/2469/752 4253/2467/684 4256/2470/752 +f 4257/2471/753 4256/2470/752 4258/2472/753 +f 4128/2473/732 4246/2460/734 4046/2474/734 +f 4044/2475/733 4231/2444/735 4123/2476/735 +f 4046/2474/734 4247/2461/736 4116/2477/736 +f 4123/2476/735 4234/2447/737 4124/2478/737 +f 4118/2479/739 4252/2466/738 4119/2480/738 +f 4116/2477/736 4250/2464/739 4118/2479/739 +f 4124/2481/737 4235/2448/740 4125/2482/740 +f 4119/2480/738 4254/2468/741 4117/2483/741 +f 4125/2482/740 4238/2452/754 4045/2484/754 +f 4117/2483/741 4255/2469/755 4120/2485/755 +f 4045/2484/754 4240/2454/697 4126/2486/697 +f 4120/2485/755 4257/2471/715 4121/2487/715 +f 4126/2486/697 4242/2456/696 4127/2488/696 +f 4121/2487/715 4228/2441/714 4122/2489/714 +f 4127/2488/696 4244/2458/732 4128/2473/732 +f 4122/2489/714 4230/2443/733 4044/2475/733 +f 4257/2471/753 4259/2490/742 4228/2441/742 +f 4053/2491/756 4224/2433/757 4055/2492/757 +f 4216/2388/715 4132/2493/755 4260/2494/755 +f 4028/2180/736 4061/2214/734 4022/2174/734 +f 4024/2176/735 4079/2233/733 4014/2166/733 +f 4022/2174/734 4064/2217/732 4017/2169/732 +f 4014/2166/733 4049/2202/714 4015/2167/714 +f 4017/2169/732 4066/2219/696 4047/2199/696 +f 4015/2167/714 4052/2205/715 4040/2192/715 +f 4047/2278/696 4068/2221/697 4042/2194/697 +f 4040/2192/715 4054/2207/755 4035/2187/755 +f 4042/2194/697 4070/2224/754 4038/2190/754 +f 4035/2187/755 4056/2209/741 4036/2188/741 +f 4038/2190/754 4074/2228/740 4034/2186/740 +f 4036/2188/741 4058/2211/738 4026/2178/738 +f 4034/2186/740 4073/2227/737 4023/2175/737 +f 4027/2179/739 4062/2215/736 4028/2180/736 +f 4026/2178/738 4060/2213/739 4027/2179/739 +f 4023/2175/737 4078/2232/735 4024/2176/735 +f 4071/2495/758 4261/2496/759 4226/2437/758 +f 4051/2497/760 4227/2439/756 4053/2491/756 +f 4069/2498/761 4261/2496/759 4072/2499/759 +f 4048/2500/762 4260/2494/760 4051/2497/760 +f 4069/2498/761 4181/2349/763 4182/2351/761 +f 4048/2500/762 4215/2386/764 4216/2388/762 +f 4065/2501/765 4181/2422/763 4067/2502/763 +f 4077/2503/766 4215/2386/764 4050/2504/764 +f 4063/2505/767 4218/2420/765 4065/2501/765 +f 4077/2503/766 4221/2427/768 4219/2423/766 +f 4059/2506/769 4220/2425/767 4063/2505/767 +f 4076/2507/770 4221/2427/768 4075/2508/768 +f 4057/2509/771 4224/2433/757 4225/2435/771 +f 4057/2509/771 4222/2429/769 4059/2506/769 +f 4071/2495/758 4223/2431/770 4076/2507/770 +f 4261/2496/754 4137/2510/740 4226/2437/740 +f 4260/2494/755 4081/2511/741 4227/2439/741 +f 4182/2351/697 4138/2512/754 4261/2496/754 +f 4013/2165/714 4200/2371/715 4191/2360/714 +f 4043/2195/715 4199/2369/755 4200/2371/715 +f 4039/2191/755 4203/2374/741 4199/2369/755 +f 4031/2183/741 4207/2378/738 4203/2374/741 +f 4032/2184/738 4212/2383/739 4207/2378/738 +f 4025/2177/739 4185/2354/736 4212/2383/739 +f 4021/2173/736 4183/2352/734 4185/2354/736 +f 4016/2168/734 4189/2358/732 4183/2352/734 +f 4018/2170/732 4193/2362/696 4189/2358/732 +f 4041/2193/696 4197/2366/697 4193/2368/696 +f 4037/2189/697 4201/2372/754 4197/2366/697 +f 4033/2185/754 4205/2376/740 4201/2372/754 +f 4029/2181/740 4209/2380/737 4205/2376/740 +f 4030/2182/737 4188/2357/735 4209/2380/737 +f 4019/2171/735 4186/2355/733 4188/2357/735 +f 4020/2172/733 4191/2360/714 4186/2355/733 +f 4262/2513/741 4263/2514/772 4264/2515/741 +f 4265/2516/755 4264/2515/741 4266/2517/755 +f 4267/2518/773 4266/2517/755 4268/2519/773 +f 4269/2520/742 4270/2521/693 4271/2522/693 +f 4272/2523/743 4270/2521/693 4273/2524/743 +f 4272/2523/743 4274/2525/744 4275/2526/744 +f 4276/2527/745 4274/2528/744 4277/2529/745 +f 4276/2527/745 4278/2530/687 4279/2531/687 +f 4279/2531/687 4280/2532/746 4281/2533/746 +f 4281/2533/746 4282/2534/747 4283/2535/747 +f 4284/2536/748 4282/2534/747 4285/2537/748 +f 4284/2536/748 4286/2538/690 4287/2539/690 +f 4288/2540/749 4286/2538/690 4289/2541/749 +f 4290/2542/750 4289/2541/749 4291/2543/750 +f 4290/2542/750 4292/2544/751 4293/2545/751 +f 4294/2546/684 4292/2544/751 4295/2547/684 +f 4296/2548/752 4295/2547/684 4297/2549/752 +f 4298/2550/753 4297/2549/752 4299/2551/753 +f 4154/2552/732 4287/2539/734 4091/2553/734 +f 4089/2554/733 4272/2523/735 4149/2555/735 +f 4091/2553/734 4288/2540/736 4142/2556/736 +f 4149/2555/735 4275/2526/737 4150/2557/737 +f 4144/2558/739 4293/2545/738 4145/2559/738 +f 4142/2556/736 4290/2542/739 4144/2558/739 +f 4150/2560/737 4276/2527/740 4151/2561/740 +f 4145/2559/738 4294/2546/741 4143/2562/741 +f 4151/2561/740 4279/2531/754 4090/2563/754 +f 4143/2562/741 4296/2548/755 4146/2564/755 +f 4090/2563/754 4281/2533/697 4152/2565/697 +f 4146/2564/755 4298/2550/715 4147/2566/715 +f 4152/2565/697 4283/2535/696 4153/2567/696 +f 4147/2566/715 4269/2520/714 4148/2568/714 +f 4153/2567/696 4284/2536/732 4154/2552/732 +f 4148/2568/714 4271/2522/733 4089/2554/733 +f 4298/2550/753 4300/2569/742 4269/2520/742 +f 4301/2570/742 4302/2571/693 4303/2572/693 +f 4304/2573/743 4302/2571/693 4305/2574/743 +f 4304/2573/743 4306/2575/744 4307/2576/744 +f 4308/2577/745 4306/2578/744 4309/2579/745 +f 4308/2577/745 4310/2580/687 4311/2581/687 +f 4311/2581/687 4312/2582/746 4313/2583/746 +f 4313/2583/746 4314/2584/747 4315/2585/747 +f 4316/2586/748 4314/2584/747 4317/2587/748 +f 4316/2586/748 4318/2588/690 4319/2589/690 +f 4320/2590/749 4318/2588/690 4321/2591/749 +f 4320/2590/749 4322/2592/750 4323/2593/750 +f 4323/2593/750 4324/2594/751 4325/2595/751 +f 4325/2595/751 4326/2596/684 4327/2597/684 +f 4328/2598/752 4326/2596/684 4329/2599/752 +f 4330/2600/753 4329/2599/752 4331/2601/753 +f 4167/2602/732 4319/2589/734 4094/2603/734 +f 4092/2604/733 4304/2573/735 4162/2605/735 +f 4094/2603/734 4320/2590/736 4155/2606/736 +f 4162/2605/735 4307/2576/737 4163/2607/737 +f 4157/2608/739 4325/2595/738 4158/2609/738 +f 4155/2606/736 4323/2593/739 4157/2608/739 +f 4163/2610/737 4308/2577/740 4164/2611/740 +f 4158/2609/738 4327/2597/741 4156/2612/741 +f 4164/2611/740 4311/2581/754 4093/2613/754 +f 4156/2612/741 4328/2598/755 4159/2614/755 +f 4093/2613/754 4313/2583/697 4165/2615/697 +f 4159/2614/755 4330/2600/715 4160/2616/715 +f 4165/2615/697 4315/2585/696 4166/2617/696 +f 4160/2616/715 4301/2570/714 4161/2618/714 +f 4166/2617/696 4316/2586/732 4167/2602/732 +f 4161/2618/714 4303/2572/733 4092/2604/733 +f 4330/2600/753 4332/2619/742 4301/2570/742 +f 4333/2620/742 4334/2621/693 4335/2622/693 +f 4336/2623/743 4334/2621/693 4337/2624/743 +f 4336/2623/743 4338/2625/744 4339/2626/744 +f 4340/2627/745 4338/2628/744 4341/2629/745 +f 4340/2627/745 4342/2630/687 4343/2631/687 +f 4343/2631/687 4344/2632/746 4345/2633/746 +f 4345/2633/746 4346/2634/747 4347/2635/747 +f 4348/2636/748 4346/2634/747 4349/2637/748 +f 4348/2636/748 4350/2638/690 4351/2639/690 +f 4352/2640/749 4350/2638/690 4353/2641/749 +f 4352/2640/749 4354/2642/750 4355/2643/750 +f 4355/2643/750 4356/2644/751 4357/2645/751 +f 4357/2645/751 4358/2646/684 4359/2647/684 +f 4360/2648/752 4358/2646/684 4361/2649/752 +f 4362/2650/753 4361/2649/752 4363/2651/753 +f 4180/2652/732 4351/2639/734 4097/2653/734 +f 4095/2654/733 4336/2623/735 4175/2655/735 +f 4097/2653/734 4352/2640/736 4168/2656/736 +f 4175/2655/735 4339/2626/737 4176/2657/737 +f 4170/2658/739 4357/2645/738 4171/2659/738 +f 4168/2656/736 4355/2643/739 4170/2658/739 +f 4176/2660/737 4340/2627/740 4177/2661/740 +f 4171/2659/738 4359/2647/741 4169/2662/741 +f 4177/2661/740 4343/2631/754 4096/2663/754 +f 4169/2662/741 4360/2648/755 4172/2664/755 +f 4096/2663/754 4345/2633/697 4178/2665/697 +f 4172/2664/755 4362/2650/715 4173/2666/715 +f 4178/2665/697 4347/2635/696 4179/2667/696 +f 4173/2666/715 4333/2620/714 4174/2668/714 +f 4179/2667/696 4348/2636/732 4180/2652/732 +f 4174/2668/714 4335/2622/733 4095/2654/733 +f 4362/2650/753 4364/2669/742 4333/2620/742 +f 4365/2670/754 4366/2671/774 4367/2672/754 +f 4368/2673/697 4367/2672/754 4369/2674/697 +f 4370/2675/775 4369/2674/697 4371/2676/775 +f 4181/2349/696 4140/2677/696 4139/2350/697 +f 4183/2352/698 4190/2389/698 4184/2353/699 +f 4186/2355/700 4192/2405/700 4187/2356/701 +f 4189/2358/702 4194/2391/702 4190/2359/698 +f 4191/2360/703 4196/2407/703 4192/2361/700 +f 4193/2362/704 4198/2393/704 4194/2363/702 +f 4191/2360/703 4200/2371/705 4195/2364/705 +f 4197/2366/706 4202/2395/706 4198/2367/704 +f 4199/2369/707 4204/2410/707 4195/2370/705 +f 4201/2372/708 4206/2397/708 4202/2373/706 +f 4203/2374/709 4208/2412/709 4204/2375/707 +f 4205/2376/710 4210/2399/710 4206/2377/708 +f 4207/2378/711 4213/2414/711 4208/2379/709 +f 4209/2380/712 4214/2401/712 4210/2381/710 +f 4185/2354/699 4184/2418/699 4211/2382/713 +f 4212/2383/713 4211/2416/713 4213/2384/711 +f 4188/2357/701 4187/2403/701 4214/2385/712 +f 4215/2386/714 4134/2424/714 4133/2387/715 +f 4218/2420/732 4141/2426/732 4140/2421/696 +f 4219/2423/733 4082/2428/733 4134/2424/714 +f 4220/2425/734 4080/2430/734 4141/2426/732 +f 4221/2427/735 4135/2432/735 4082/2428/733 +f 4222/2429/736 4129/2436/736 4080/2430/734 +f 4223/2431/737 4136/2438/737 4135/2432/735 +f 4224/2433/738 4131/2440/738 4130/2434/739 +f 4225/2435/739 4130/2434/739 4129/2436/736 +f 4226/2437/740 4137/2510/740 4136/2438/737 +f 4227/2439/741 4081/2511/741 4131/2440/738 +f 4228/2441/742 4259/2490/742 4229/2442/693 +f 4231/2444/743 4230/2443/693 4229/2442/693 +f 4231/2444/743 4232/2445/743 4233/2446/744 +f 4235/2448/745 4234/2678/744 4233/2449/744 +f 4235/2448/745 4236/2450/745 4237/2451/687 +f 4238/2452/687 4237/2451/687 4239/2453/746 +f 4240/2454/746 4239/2453/746 4241/2455/747 +f 4242/2456/747 4241/2455/747 4243/2457/748 +f 4244/2458/748 4243/2457/748 4245/2459/690 +f 4247/2461/749 4246/2460/690 4245/2459/690 +f 4247/2461/749 4248/2462/749 4249/2463/750 +f 4250/2464/750 4249/2463/750 4251/2465/751 +f 4252/2466/751 4251/2465/751 4253/2467/684 +f 4255/2469/752 4254/2468/684 4253/2467/684 +f 4257/2471/753 4255/2469/752 4256/2470/752 +f 4128/2473/732 4244/2458/732 4246/2460/734 +f 4044/2475/733 4230/2443/733 4231/2444/735 +f 4046/2474/734 4246/2460/734 4247/2461/736 +f 4123/2476/735 4231/2444/735 4234/2447/737 +f 4118/2479/739 4250/2464/739 4252/2466/738 +f 4116/2477/736 4247/2461/736 4250/2464/739 +f 4124/2481/737 4234/2678/737 4235/2448/740 +f 4119/2480/738 4252/2466/738 4254/2468/741 +f 4125/2482/740 4235/2448/740 4238/2452/754 +f 4117/2483/741 4254/2468/741 4255/2469/755 +f 4045/2484/754 4238/2452/754 4240/2454/697 +f 4120/2485/755 4255/2469/755 4257/2471/715 +f 4126/2486/697 4240/2454/697 4242/2456/696 +f 4121/2487/715 4257/2471/715 4228/2441/714 +f 4127/2488/696 4242/2456/696 4244/2458/732 +f 4122/2489/714 4228/2441/714 4230/2443/733 +f 4257/2471/753 4258/2472/753 4259/2490/742 +f 4053/2491/756 4227/2439/756 4224/2433/757 +f 4216/2388/715 4133/2387/715 4132/2493/755 +f 4028/2180/736 4062/2215/736 4061/2214/734 +f 4024/2176/735 4078/2232/735 4079/2233/733 +f 4022/2174/734 4061/2214/734 4064/2217/732 +f 4014/2166/733 4079/2233/733 4049/2202/714 +f 4017/2169/732 4064/2217/732 4066/2219/696 +f 4015/2167/714 4049/2202/714 4052/2205/715 +f 4047/2278/696 4066/2222/696 4068/2221/697 +f 4040/2192/715 4052/2205/715 4054/2207/755 +f 4042/2194/697 4068/2221/697 4070/2224/754 +f 4035/2187/755 4054/2207/755 4056/2209/741 +f 4038/2190/754 4070/2224/754 4074/2228/740 +f 4036/2188/741 4056/2209/741 4058/2211/738 +f 4034/2186/740 4074/2228/740 4073/2227/737 +f 4027/2179/739 4060/2213/739 4062/2215/736 +f 4026/2178/738 4058/2211/738 4060/2213/739 +f 4023/2175/737 4073/2227/737 4078/2232/735 +f 4071/2495/758 4072/2499/759 4261/2496/759 +f 4051/2497/760 4260/2494/760 4227/2439/756 +f 4069/2498/761 4182/2351/761 4261/2496/759 +f 4048/2500/762 4216/2388/762 4260/2494/760 +f 4069/2498/761 4067/2220/763 4181/2349/763 +f 4048/2500/762 4050/2504/764 4215/2386/764 +f 4065/2501/765 4218/2420/765 4181/2422/763 +f 4077/2503/766 4219/2423/766 4215/2386/764 +f 4063/2505/767 4220/2425/767 4218/2420/765 +f 4077/2503/766 4075/2508/768 4221/2427/768 +f 4059/2506/769 4222/2429/769 4220/2425/767 +f 4076/2507/770 4223/2431/770 4221/2427/768 +f 4057/2509/771 4055/2492/757 4224/2433/757 +f 4057/2509/771 4225/2435/771 4222/2429/769 +f 4071/2495/758 4226/2437/758 4223/2431/770 +f 4261/2496/754 4138/2512/754 4137/2510/740 +f 4260/2494/755 4132/2493/755 4081/2511/741 +f 4182/2351/697 4139/2350/697 4138/2512/754 +f 4013/2165/714 4043/2195/715 4200/2371/715 +f 4043/2195/715 4039/2191/755 4199/2369/755 +f 4039/2191/755 4031/2183/741 4203/2374/741 +f 4031/2183/741 4032/2184/738 4207/2378/738 +f 4032/2184/738 4025/2177/739 4212/2383/739 +f 4025/2177/739 4021/2173/736 4185/2354/736 +f 4021/2173/736 4016/2168/734 4183/2352/734 +f 4016/2168/734 4018/2170/732 4189/2358/732 +f 4018/2170/732 4041/2200/696 4193/2362/696 +f 4041/2193/696 4037/2189/697 4197/2366/697 +f 4037/2189/697 4033/2185/754 4201/2372/754 +f 4033/2185/754 4029/2181/740 4205/2376/740 +f 4029/2181/740 4030/2182/737 4209/2380/737 +f 4030/2182/737 4019/2171/735 4188/2357/735 +f 4019/2171/735 4020/2172/733 4186/2355/733 +f 4020/2172/733 4013/2165/714 4191/2360/714 +f 4262/2513/741 4372/2679/772 4263/2514/772 +f 4265/2516/755 4262/2513/741 4264/2515/741 +f 4267/2518/773 4265/2516/755 4266/2517/755 +f 4269/2520/742 4300/2569/742 4270/2521/693 +f 4272/2523/743 4271/2522/693 4270/2521/693 +f 4272/2523/743 4273/2524/743 4274/2525/744 +f 4276/2527/745 4275/2680/744 4274/2528/744 +f 4276/2527/745 4277/2529/745 4278/2530/687 +f 4279/2531/687 4278/2530/687 4280/2532/746 +f 4281/2533/746 4280/2532/746 4282/2534/747 +f 4284/2536/748 4283/2535/747 4282/2534/747 +f 4284/2536/748 4285/2537/748 4286/2538/690 +f 4288/2540/749 4287/2539/690 4286/2538/690 +f 4290/2542/750 4288/2540/749 4289/2541/749 +f 4290/2542/750 4291/2543/750 4292/2544/751 +f 4294/2546/684 4293/2545/751 4292/2544/751 +f 4296/2548/752 4294/2546/684 4295/2547/684 +f 4298/2550/753 4296/2548/752 4297/2549/752 +f 4154/2552/732 4284/2536/732 4287/2539/734 +f 4089/2554/733 4271/2522/733 4272/2523/735 +f 4091/2553/734 4287/2539/734 4288/2540/736 +f 4149/2555/735 4272/2523/735 4275/2526/737 +f 4144/2558/739 4290/2542/739 4293/2545/738 +f 4142/2556/736 4288/2540/736 4290/2542/739 +f 4150/2560/737 4275/2680/737 4276/2527/740 +f 4145/2559/738 4293/2545/738 4294/2546/741 +f 4151/2561/740 4276/2527/740 4279/2531/754 +f 4143/2562/741 4294/2546/741 4296/2548/755 +f 4090/2563/754 4279/2531/754 4281/2533/697 +f 4146/2564/755 4296/2548/755 4298/2550/715 +f 4152/2565/697 4281/2533/697 4283/2535/696 +f 4147/2566/715 4298/2550/715 4269/2520/714 +f 4153/2567/696 4283/2535/696 4284/2536/732 +f 4148/2568/714 4269/2520/714 4271/2522/733 +f 4298/2550/753 4299/2551/753 4300/2569/742 +f 4301/2570/742 4332/2619/742 4302/2571/693 +f 4304/2573/743 4303/2572/693 4302/2571/693 +f 4304/2573/743 4305/2574/743 4306/2575/744 +f 4308/2577/745 4307/2681/744 4306/2578/744 +f 4308/2577/745 4309/2579/745 4310/2580/687 +f 4311/2581/687 4310/2580/687 4312/2582/746 +f 4313/2583/746 4312/2582/746 4314/2584/747 +f 4316/2586/748 4315/2585/747 4314/2584/747 +f 4316/2586/748 4317/2587/748 4318/2588/690 +f 4320/2590/749 4319/2589/690 4318/2588/690 +f 4320/2590/749 4321/2591/749 4322/2592/750 +f 4323/2593/750 4322/2592/750 4324/2594/751 +f 4325/2595/751 4324/2594/751 4326/2596/684 +f 4328/2598/752 4327/2597/684 4326/2596/684 +f 4330/2600/753 4328/2598/752 4329/2599/752 +f 4167/2602/732 4316/2586/732 4319/2589/734 +f 4092/2604/733 4303/2572/733 4304/2573/735 +f 4094/2603/734 4319/2589/734 4320/2590/736 +f 4162/2605/735 4304/2573/735 4307/2576/737 +f 4157/2608/739 4323/2593/739 4325/2595/738 +f 4155/2606/736 4320/2590/736 4323/2593/739 +f 4163/2610/737 4307/2681/737 4308/2577/740 +f 4158/2609/738 4325/2595/738 4327/2597/741 +f 4164/2611/740 4308/2577/740 4311/2581/754 +f 4156/2612/741 4327/2597/741 4328/2598/755 +f 4093/2613/754 4311/2581/754 4313/2583/697 +f 4159/2614/755 4328/2598/755 4330/2600/715 +f 4165/2615/697 4313/2583/697 4315/2585/696 +f 4160/2616/715 4330/2600/715 4301/2570/714 +f 4166/2617/696 4315/2585/696 4316/2586/732 +f 4161/2618/714 4301/2570/714 4303/2572/733 +f 4330/2600/753 4331/2601/753 4332/2619/742 +f 4333/2620/742 4364/2669/742 4334/2621/693 +f 4336/2623/743 4335/2622/693 4334/2621/693 +f 4336/2623/743 4337/2624/743 4338/2625/744 +f 4340/2627/745 4339/2682/744 4338/2628/744 +f 4340/2627/745 4341/2629/745 4342/2630/687 +f 4343/2631/687 4342/2630/687 4344/2632/746 +f 4345/2633/746 4344/2632/746 4346/2634/747 +f 4348/2636/748 4347/2635/747 4346/2634/747 +f 4348/2636/748 4349/2637/748 4350/2638/690 +f 4352/2640/749 4351/2639/690 4350/2638/690 +f 4352/2640/749 4353/2641/749 4354/2642/750 +f 4355/2643/750 4354/2642/750 4356/2644/751 +f 4357/2645/751 4356/2644/751 4358/2646/684 +f 4360/2648/752 4359/2647/684 4358/2646/684 +f 4362/2650/753 4360/2648/752 4361/2649/752 +f 4180/2652/732 4348/2636/732 4351/2639/734 +f 4095/2654/733 4335/2622/733 4336/2623/735 +f 4097/2653/734 4351/2639/734 4352/2640/736 +f 4175/2655/735 4336/2623/735 4339/2626/737 +f 4170/2658/739 4355/2643/739 4357/2645/738 +f 4168/2656/736 4352/2640/736 4355/2643/739 +f 4176/2660/737 4339/2682/737 4340/2627/740 +f 4171/2659/738 4357/2645/738 4359/2647/741 +f 4177/2661/740 4340/2627/740 4343/2631/754 +f 4169/2662/741 4359/2647/741 4360/2648/755 +f 4096/2663/754 4343/2631/754 4345/2633/697 +f 4172/2664/755 4360/2648/755 4362/2650/715 +f 4178/2665/697 4345/2633/697 4347/2635/696 +f 4173/2666/715 4362/2650/715 4333/2620/714 +f 4179/2667/696 4347/2635/696 4348/2636/732 +f 4174/2668/714 4333/2620/714 4335/2622/733 +f 4362/2650/753 4363/2651/753 4364/2669/742 +f 4365/2670/754 4373/2683/774 4366/2671/774 +f 4368/2673/697 4365/2670/754 4367/2672/754 +f 4370/2675/775 4368/2673/697 4369/2674/697 o Strong_Missile v 0.866138 2.750000 0.358766 v 0.750000 2.750000 0.000000 @@ -13263,341 +14411,341 @@ vn 0.9923 0.1240 -0.0000 vn -0.9167 0.1240 0.3797 vn 0.9167 0.1240 -0.3797 s off -f 4302/1692/776 4303/1693/776 4304/1694/776 -f 4304/1694/776 4305/1695/776 4306/1696/776 -f 4305/1697/776 4307/1698/776 4306/1696/776 -f 4308/1699/776 4309/1700/776 4307/1698/776 -f 4310/1701/776 4311/1702/776 4309/1700/776 -f 4312/1703/776 4313/1704/776 4311/1702/776 -f 4314/1705/776 4315/1706/776 4313/1704/776 -f 4315/1706/776 4316/1707/776 4317/1708/776 -f 4316/1709/776 4318/1710/776 4317/1708/776 -f 4318/1711/776 4319/1712/776 4320/1713/776 -f 4320/1713/776 4321/1714/776 4322/1715/776 -f 4321/1716/776 4323/1717/776 4322/1715/776 -f 4324/1718/776 4325/1719/776 4323/1717/776 -f 4325/1719/776 4326/1720/776 4327/1721/776 -f 4326/1722/776 4328/1723/776 4327/1721/776 -f 4329/1724/776 4302/1692/776 4328/1723/776 -f 4330/1725/776 4331/1726/776 4332/1727/776 -f 4333/1728/777 4334/1729/777 4335/1730/777 -f 4336/1731/778 4333/1728/778 4337/1732/778 -f 4333/1733/779 4335/1734/779 4337/1732/779 -f 4334/1735/776 4338/1736/776 4336/1731/776 -f 4339/1737/780 4340/1738/780 4341/1739/780 -f 4342/1740/781 4339/1737/781 4343/1741/781 -f 4339/1742/782 4341/1743/782 4343/1741/782 -f 4340/1744/776 4344/1745/776 4342/1740/776 -f 4345/1746/780 4346/1747/780 4347/1748/780 -f 4348/1749/781 4345/1746/781 4349/1750/781 -f 4345/1751/783 4347/1752/783 4349/1750/783 -f 4346/1753/776 4350/1754/776 4348/1749/776 -f 4351/1755/776 4352/1756/776 4353/1757/776 -f 4354/1758/784 4355/1759/784 4356/1760/784 -f 4353/1757/785 4354/1761/785 4356/1760/785 -f 4354/1761/786 4351/1762/786 4355/1763/786 -f 4357/1764/777 4358/1765/777 4359/1766/777 -f 4360/1767/778 4357/1764/778 4361/1768/778 -f 4357/1769/787 4359/1770/787 4361/1768/787 -f 4358/1771/776 4362/1772/776 4360/1767/776 -f 4363/1773/776 4364/1774/776 4365/1775/776 -f 4366/1776/788 4367/1777/788 4368/1778/788 -f 4365/1775/785 4366/1779/785 4368/1778/785 -f 4366/1779/786 4363/1780/786 4367/1781/786 -f 4369/1782/776 4370/1783/776 4371/1784/776 -f 4372/1785/789 4373/1786/789 4374/1787/789 -f 4371/1784/790 4372/1788/790 4374/1787/790 -f 4372/1788/791 4369/1789/791 4373/1790/791 -f 4375/1791/776 4376/1792/776 4377/1793/776 -f 4378/1794/792 4379/1795/792 4380/1796/792 -f 4377/1793/790 4378/1797/790 4380/1796/790 -f 4378/1797/791 4375/1798/791 4379/1799/791 -f 4302/1692/776 4381/1800/776 4303/1693/776 -f 4304/1694/776 4303/1801/776 4305/1695/776 -f 4305/1697/776 4308/1802/776 4307/1698/776 -f 4308/1699/776 4310/1803/776 4309/1700/776 -f 4310/1701/776 4312/1804/776 4311/1702/776 -f 4312/1703/776 4314/1805/776 4313/1704/776 -f 4314/1705/776 4382/1806/776 4315/1706/776 -f 4315/1706/776 4382/1807/776 4316/1707/776 -f 4316/1709/776 4383/1808/776 4318/1710/776 -f 4318/1711/776 4383/1809/776 4319/1712/776 -f 4320/1713/776 4319/1810/776 4321/1714/776 -f 4321/1716/776 4324/1811/776 4323/1717/776 -f 4324/1718/776 4384/1812/776 4325/1719/776 -f 4325/1719/776 4384/1813/776 4326/1720/776 -f 4326/1722/776 4329/1814/776 4328/1723/776 -f 4329/1724/776 4381/1815/776 4302/1692/776 -f 4330/1725/776 4385/1816/776 4386/1817/776 -f 4386/1817/776 4387/1818/776 4331/1726/776 -f 4331/1726/776 4388/1819/776 4389/1820/776 -f 4389/1820/776 4390/1821/776 4332/1727/776 -f 4332/1727/776 4391/1822/776 4392/1823/776 -f 4392/1823/776 4393/1824/776 4394/1825/776 -f 4394/1825/776 4395/1826/776 4396/1827/776 -f 4396/1827/776 4397/1828/776 4394/1825/776 -f 4397/1828/776 4330/1725/776 4394/1825/776 -f 4330/1725/776 4386/1817/776 4331/1726/776 -f 4331/1726/776 4389/1820/776 4332/1727/776 -f 4332/1727/776 4392/1823/776 4330/1725/776 -f 4392/1823/776 4394/1825/776 4330/1725/776 -f 4333/1728/777 4338/1736/777 4334/1729/777 -f 4336/1731/778 4338/1736/778 4333/1728/778 -f 4339/1737/780 4344/1745/780 4340/1738/780 -f 4342/1740/781 4344/1745/781 4339/1737/781 -f 4345/1746/780 4350/1754/780 4346/1747/780 -f 4348/1749/781 4350/1754/781 4345/1746/781 -f 4353/1757/785 4352/1756/785 4354/1761/785 -f 4354/1761/786 4352/1756/786 4351/1762/786 -f 4357/1764/777 4362/1772/777 4358/1765/777 -f 4360/1767/778 4362/1772/778 4357/1764/778 -f 4365/1775/785 4364/1774/785 4366/1779/785 -f 4366/1779/786 4364/1774/786 4363/1780/786 -f 4371/1784/790 4370/1783/790 4372/1788/790 -f 4372/1788/791 4370/1783/791 4369/1789/791 -f 4377/1793/790 4376/1792/790 4378/1797/790 -f 4378/1797/791 4376/1792/791 4375/1798/791 +f 4374/2684/776 4375/2685/776 4376/2686/776 +f 4376/2686/776 4377/2687/776 4378/2688/776 +f 4377/2689/776 4379/2690/776 4378/2688/776 +f 4380/2691/776 4381/2692/776 4379/2690/776 +f 4382/2693/776 4383/2694/776 4381/2692/776 +f 4384/2695/776 4385/2696/776 4383/2694/776 +f 4386/2697/776 4387/2698/776 4385/2696/776 +f 4387/2698/776 4388/2699/776 4389/2700/776 +f 4388/2701/776 4390/2702/776 4389/2700/776 +f 4390/2703/776 4391/2704/776 4392/2705/776 +f 4392/2705/776 4393/2706/776 4394/2707/776 +f 4393/2708/776 4395/2709/776 4394/2707/776 +f 4396/2710/776 4397/2711/776 4395/2709/776 +f 4397/2711/776 4398/2712/776 4399/2713/776 +f 4398/2714/776 4400/2715/776 4399/2713/776 +f 4401/2716/776 4374/2684/776 4400/2715/776 +f 4402/2717/776 4403/2718/776 4404/2719/776 +f 4405/2720/777 4406/2721/777 4407/2722/777 +f 4408/2723/778 4405/2720/778 4409/2724/778 +f 4405/2725/779 4407/2726/779 4409/2724/779 +f 4406/2727/776 4410/2728/776 4408/2723/776 +f 4411/2729/780 4412/2730/780 4413/2731/780 +f 4414/2732/781 4411/2729/781 4415/2733/781 +f 4411/2734/782 4413/2735/782 4415/2733/782 +f 4412/2736/776 4416/2737/776 4414/2732/776 +f 4417/2738/780 4418/2739/780 4419/2740/780 +f 4420/2741/781 4417/2738/781 4421/2742/781 +f 4417/2743/783 4419/2744/783 4421/2742/783 +f 4418/2745/776 4422/2746/776 4420/2741/776 +f 4423/2747/776 4424/2748/776 4425/2749/776 +f 4426/2750/784 4427/2751/784 4428/2752/784 +f 4425/2749/785 4426/2753/785 4428/2752/785 +f 4426/2753/786 4423/2754/786 4427/2755/786 +f 4429/2756/777 4430/2757/777 4431/2758/777 +f 4432/2759/778 4429/2756/778 4433/2760/778 +f 4429/2761/787 4431/2762/787 4433/2760/787 +f 4430/2763/776 4434/2764/776 4432/2759/776 +f 4435/2765/776 4436/2766/776 4437/2767/776 +f 4438/2768/788 4439/2769/788 4440/2770/788 +f 4437/2767/785 4438/2771/785 4440/2770/785 +f 4438/2771/786 4435/2772/786 4439/2773/786 +f 4441/2774/776 4442/2775/776 4443/2776/776 +f 4444/2777/789 4445/2778/789 4446/2779/789 +f 4443/2776/790 4444/2780/790 4446/2779/790 +f 4444/2780/791 4441/2781/791 4445/2782/791 +f 4447/2783/776 4448/2784/776 4449/2785/776 +f 4450/2786/792 4451/2787/792 4452/2788/792 +f 4449/2785/790 4450/2789/790 4452/2788/790 +f 4450/2789/791 4447/2790/791 4451/2791/791 +f 4374/2684/776 4453/2792/776 4375/2685/776 +f 4376/2686/776 4375/2793/776 4377/2687/776 +f 4377/2689/776 4380/2794/776 4379/2690/776 +f 4380/2691/776 4382/2795/776 4381/2692/776 +f 4382/2693/776 4384/2796/776 4383/2694/776 +f 4384/2695/776 4386/2797/776 4385/2696/776 +f 4386/2697/776 4454/2798/776 4387/2698/776 +f 4387/2698/776 4454/2799/776 4388/2699/776 +f 4388/2701/776 4455/2800/776 4390/2702/776 +f 4390/2703/776 4455/2801/776 4391/2704/776 +f 4392/2705/776 4391/2802/776 4393/2706/776 +f 4393/2708/776 4396/2803/776 4395/2709/776 +f 4396/2710/776 4456/2804/776 4397/2711/776 +f 4397/2711/776 4456/2805/776 4398/2712/776 +f 4398/2714/776 4401/2806/776 4400/2715/776 +f 4401/2716/776 4453/2807/776 4374/2684/776 +f 4402/2717/776 4457/2808/776 4458/2809/776 +f 4458/2809/776 4459/2810/776 4403/2718/776 +f 4403/2718/776 4460/2811/776 4461/2812/776 +f 4461/2812/776 4462/2813/776 4404/2719/776 +f 4404/2719/776 4463/2814/776 4464/2815/776 +f 4464/2815/776 4465/2816/776 4466/2817/776 +f 4466/2817/776 4467/2818/776 4468/2819/776 +f 4468/2819/776 4469/2820/776 4466/2817/776 +f 4469/2820/776 4402/2717/776 4466/2817/776 +f 4402/2717/776 4458/2809/776 4403/2718/776 +f 4403/2718/776 4461/2812/776 4404/2719/776 +f 4404/2719/776 4464/2815/776 4402/2717/776 +f 4464/2815/776 4466/2817/776 4402/2717/776 +f 4405/2720/777 4410/2728/777 4406/2721/777 +f 4408/2723/778 4410/2728/778 4405/2720/778 +f 4411/2729/780 4416/2737/780 4412/2730/780 +f 4414/2732/781 4416/2737/781 4411/2729/781 +f 4417/2738/780 4422/2746/780 4418/2739/780 +f 4420/2741/781 4422/2746/781 4417/2738/781 +f 4425/2749/785 4424/2748/785 4426/2753/785 +f 4426/2753/786 4424/2748/786 4423/2754/786 +f 4429/2756/777 4434/2764/777 4430/2757/777 +f 4432/2759/778 4434/2764/778 4429/2756/778 +f 4437/2767/785 4436/2766/785 4438/2771/785 +f 4438/2771/786 4436/2766/786 4435/2772/786 +f 4443/2776/790 4442/2775/790 4444/2780/790 +f 4444/2780/791 4442/2775/791 4441/2781/791 +f 4449/2785/790 4448/2784/790 4450/2789/790 +f 4450/2789/791 4448/2784/791 4447/2790/791 s 1 -f 4398/1829/793 4399/1830/794 4400/1831/794 -f 4401/1832/795 4402/1833/796 4403/1834/796 -f 4404/1835/797 4405/1836/793 4398/1829/793 -f 4406/1837/798 4407/1838/795 4401/1832/795 -f 4408/1839/799 4409/1840/797 4404/1835/797 -f 4410/1841/800 4411/1842/798 4406/1837/798 -f 4412/1843/801 4413/1844/799 4408/1845/799 -f 4414/1846/802 4415/1847/800 4410/1841/800 -f 4416/1848/803 4417/1849/801 4412/1843/801 -f 4418/1850/804 4419/1851/802 4414/1846/802 -f 4420/1852/805 4421/1853/803 4416/1848/803 -f 4422/1854/806 4423/1855/804 4418/1850/804 -f 4424/1856/807 4425/1857/805 4420/1852/805 -f 4400/1831/794 4426/1858/808 4427/1859/808 -f 4427/1859/808 4428/1860/806 4422/1854/806 -f 4403/1834/796 4429/1861/807 4424/1856/807 -f 4429/1861/809 4430/1862/810 4425/1857/810 -f 4399/1830/811 4431/1863/812 4426/1858/812 -f 4426/1858/812 4432/1864/813 4428/1860/814 -f 4402/1833/815 4433/1865/809 4429/1861/809 -f 4405/1836/816 4434/1866/811 4399/1830/811 -f 4407/1838/817 4435/1867/815 4402/1833/815 -f 4409/1840/818 4436/1868/816 4405/1836/816 -f 4407/1838/817 4437/1869/819 4438/1870/817 -f 4413/1871/820 4439/1872/818 4409/1840/818 -f 4415/1847/821 4437/1873/819 4411/1842/819 -f 4417/1849/822 4440/1874/820 4413/1844/820 -f 4415/1847/821 4441/1875/823 4442/1876/821 -f 4421/1853/824 4443/1877/822 4417/1849/822 -f 4423/1855/825 4441/1878/823 4419/1851/823 -f 4425/1857/810 4444/1879/824 4421/1853/824 -f 4428/1860/814 4445/1880/825 4423/1855/825 -f 4446/1881/826 4406/1837/827 4401/1832/826 -f 4434/1866/828 4436/1882/829 4447/1883/830 -f 4436/1868/829 4439/1884/831 4447/1885/830 -f 4439/1872/831 4440/1886/832 4447/1887/830 -f 4440/1874/832 4443/1888/833 4447/1889/830 -f 4443/1877/833 4444/1890/834 4447/1891/830 -f 4444/1879/834 4430/1892/835 4447/1893/830 -f 4430/1862/835 4433/1894/836 4447/1895/830 -f 4433/1865/836 4435/1896/837 4447/1897/830 -f 4435/1867/837 4438/1898/838 4447/1899/830 -f 4438/1870/838 4437/1869/839 4447/1900/830 -f 4437/1873/839 4442/1901/840 4447/1902/830 -f 4442/1876/840 4441/1875/841 4447/1903/830 -f 4441/1878/841 4445/1904/842 4447/1905/830 -f 4445/1880/842 4432/1906/843 4447/1907/830 -f 4432/1864/843 4431/1908/844 4447/1909/830 -f 4431/1863/844 4434/1910/828 4447/1911/830 -f 4448/1912/827 4410/1841/845 4406/1837/827 -f 4449/1913/845 4414/1846/846 4410/1841/845 -f 4450/1914/846 4418/1850/847 4414/1846/846 -f 4451/1915/847 4422/1854/848 4418/1850/847 -f 4422/1854/848 4452/1916/849 4427/1859/849 -f 4452/1917/849 4400/1831/850 4427/1859/849 -f 4453/1918/850 4398/1829/851 4400/1831/850 -f 4454/1919/851 4404/1835/852 4398/1829/851 -f 4455/1920/852 4408/1839/853 4404/1835/852 -f 4456/1921/853 4412/1843/854 4408/1845/853 -f 4457/1922/854 4416/1848/855 4412/1843/854 -f 4458/1923/855 4420/1852/856 4416/1848/855 -f 4459/1924/856 4424/1856/857 4420/1852/856 -f 4460/1925/857 4403/1834/858 4424/1856/857 -f 4461/1926/858 4401/1832/826 4403/1834/858 -f 4453/1918/859 4462/1927/860 4454/1928/860 -f 4461/1926/861 4463/1929/862 4446/1930/862 -f 4454/1919/860 4464/1931/863 4455/1932/863 -f 4446/1881/862 4465/1933/864 4448/1934/864 -f 4455/1920/863 4466/1935/865 4456/1936/865 -f 4448/1912/864 4467/1937/866 4449/1938/866 -f 4456/1921/865 4468/1939/867 4457/1940/867 -f 4449/1913/866 4469/1941/868 4450/1942/868 -f 4457/1922/867 4470/1943/869 4458/1944/869 -f 4450/1914/868 4471/1945/870 4451/1946/870 -f 4458/1923/869 4472/1947/871 4459/1948/871 -f 4451/1915/870 4473/1949/872 4474/1950/872 -f 4459/1924/871 4475/1951/873 4460/1952/873 -f 4452/1917/874 4476/1953/859 4453/1954/859 -f 4474/1955/872 4477/1956/874 4452/1916/874 -f 4460/1925/873 4478/1957/861 4461/1958/861 -f 4470/1959/875 4479/1960/876 4472/1947/876 -f 4471/1961/877 4480/1962/878 4473/1949/878 -f 4472/1963/876 4481/1964/879 4475/1951/879 -f 4477/1965/880 4482/1966/881 4476/1953/881 -f 4473/1967/878 4483/1968/880 4477/1956/880 -f 4478/1957/882 4481/1964/879 4484/1969/882 -f 4476/1970/881 4485/1971/883 4462/1927/883 -f 4478/1972/882 4486/1973/884 4463/1929/884 -f 4462/1974/883 4487/1975/885 4464/1931/885 -f 4463/1976/884 4488/1977/886 4465/1933/886 -f 4464/1978/885 4489/1979/887 4466/1935/887 -f 4465/1980/886 4490/1981/888 4467/1937/888 -f 4466/1982/887 4491/1983/889 4468/1939/889 -f 4467/1984/888 4492/1985/890 4469/1941/890 -f 4468/1986/889 4493/1987/875 4470/1943/875 -f 4469/1988/890 4494/1989/877 4471/1945/877 -f 4488/1977/864 4304/1694/866 4490/1981/866 -f 4489/1990/865 4320/1713/867 4491/1983/867 -f 4490/1981/866 4306/1696/868 4492/1985/868 -f 4491/1983/867 4322/1715/869 4493/1987/869 -f 4492/1985/868 4307/1698/870 4494/1989/870 -f 4493/1987/869 4323/1717/871 4479/1960/871 -f 4494/1989/870 4309/1700/872 4480/1962/872 -f 4479/1960/871 4325/1719/873 4481/1964/873 -f 4483/1968/874 4313/1704/859 4482/1966/859 -f 4480/1962/872 4311/1702/874 4483/1968/874 -f 4481/1964/873 4327/1721/861 4484/1969/861 -f 4482/1966/859 4315/1706/860 4485/1971/860 -f 4484/1969/861 4328/1723/862 4486/1973/862 -f 4485/1971/860 4317/1708/863 4487/1975/863 -f 4486/1973/862 4302/1692/864 4488/1977/864 -f 4487/1975/863 4318/1710/865 4489/1979/865 -f 4308/1699/870 4387/1991/872 4310/1803/872 -f 4324/1718/871 4392/1992/873 4384/1812/873 -f 4312/1703/874 4385/1993/859 4314/1805/859 -f 4310/1701/872 4386/1994/874 4312/1804/874 -f 4384/1813/873 4391/1995/861 4326/1720/861 -f 4314/1705/859 4330/1996/860 4382/1806/860 -f 4326/1722/861 4332/1997/862 4329/1814/862 -f 4382/1807/860 4397/1998/863 4316/1707/863 -f 4329/1724/862 4390/1999/864 4381/1815/864 -f 4316/1709/863 4396/2000/865 4383/1808/865 -f 4381/1800/864 4389/2001/866 4303/1693/866 -f 4383/1809/865 4395/2002/867 4319/1712/867 -f 4303/1801/866 4388/2003/868 4305/1695/868 -f 4319/1810/867 4394/2004/869 4321/1714/869 -f 4305/1697/868 4331/2005/870 4308/1802/870 -f 4321/1716/869 4393/2006/871 4324/1811/871 -f 4398/1829/793 4405/1836/793 4399/1830/794 -f 4401/1832/795 4407/1838/795 4402/1833/796 -f 4404/1835/797 4409/1840/797 4405/1836/793 -f 4406/1837/798 4411/1842/798 4407/1838/795 -f 4408/1839/799 4413/1871/799 4409/1840/797 -f 4410/1841/800 4415/1847/800 4411/1842/798 -f 4412/1843/801 4417/1849/801 4413/1844/799 -f 4414/1846/802 4419/1851/802 4415/1847/800 -f 4416/1848/803 4421/1853/803 4417/1849/801 -f 4418/1850/804 4423/1855/804 4419/1851/802 -f 4420/1852/805 4425/1857/805 4421/1853/803 -f 4422/1854/806 4428/1860/806 4423/1855/804 -f 4424/1856/807 4429/1861/807 4425/1857/805 -f 4400/1831/794 4399/1830/794 4426/1858/808 -f 4427/1859/808 4426/1858/808 4428/1860/806 -f 4403/1834/796 4402/1833/796 4429/1861/807 -f 4429/1861/809 4433/1894/809 4430/1862/810 -f 4399/1830/811 4434/1910/811 4431/1863/812 -f 4426/1858/812 4431/1908/812 4432/1864/813 -f 4402/1833/815 4435/1896/815 4433/1865/809 -f 4405/1836/816 4436/1882/816 4434/1866/811 -f 4407/1838/817 4438/1898/817 4435/1867/815 -f 4409/1840/818 4439/1884/818 4436/1868/816 -f 4407/1838/817 4411/1842/819 4437/1869/819 -f 4413/1871/820 4440/1886/820 4439/1872/818 -f 4415/1847/821 4442/1901/821 4437/1873/819 -f 4417/1849/822 4443/1888/822 4440/1874/820 -f 4415/1847/821 4419/1851/823 4441/1875/823 -f 4421/1853/824 4444/1890/824 4443/1877/822 -f 4423/1855/825 4445/1904/825 4441/1878/823 -f 4425/1857/810 4430/1892/810 4444/1879/824 -f 4428/1860/814 4432/1906/813 4445/1880/825 -f 4446/1881/826 4448/1934/827 4406/1837/827 -f 4448/1912/827 4449/1938/845 4410/1841/845 -f 4449/1913/845 4450/1942/846 4414/1846/846 -f 4450/1914/846 4451/1946/847 4418/1850/847 -f 4451/1915/847 4474/1950/848 4422/1854/848 -f 4422/1854/848 4474/1955/848 4452/1916/849 -f 4452/1917/849 4453/1954/850 4400/1831/850 -f 4453/1918/850 4454/1928/851 4398/1829/851 -f 4454/1919/851 4455/1932/852 4404/1835/852 -f 4455/1920/852 4456/1936/853 4408/1839/853 -f 4456/1921/853 4457/1940/854 4412/1843/854 -f 4457/1922/854 4458/1944/855 4416/1848/855 -f 4458/1923/855 4459/1948/856 4420/1852/856 -f 4459/1924/856 4460/1952/857 4424/1856/857 -f 4460/1925/857 4461/1958/858 4403/1834/858 -f 4461/1926/858 4446/1930/826 4401/1832/826 -f 4453/1918/859 4476/1970/859 4462/1927/860 -f 4461/1926/861 4478/1972/861 4463/1929/862 -f 4454/1919/860 4462/1974/860 4464/1931/863 -f 4446/1881/862 4463/1976/862 4465/1933/864 -f 4455/1920/863 4464/1978/863 4466/1935/865 -f 4448/1912/864 4465/1980/864 4467/1937/866 -f 4456/1921/865 4466/1982/865 4468/1939/867 -f 4449/1913/866 4467/1984/866 4469/1941/868 -f 4457/1922/867 4468/1986/867 4470/1943/869 -f 4450/1914/868 4469/1988/868 4471/1945/870 -f 4458/1923/869 4470/1959/869 4472/1947/871 -f 4451/1915/870 4471/1961/870 4473/1949/872 -f 4459/1924/871 4472/1963/871 4475/1951/873 -f 4452/1917/874 4477/1965/874 4476/1953/859 -f 4474/1955/872 4473/1967/872 4477/1956/874 -f 4460/1925/873 4475/2007/873 4478/1957/861 -f 4470/1959/875 4493/1987/875 4479/1960/876 -f 4471/1961/877 4494/1989/877 4480/1962/878 -f 4472/1963/876 4479/1960/876 4481/1964/879 -f 4477/1965/880 4483/1968/880 4482/1966/881 -f 4473/1967/878 4480/1962/878 4483/1968/880 -f 4478/1957/882 4475/2007/879 4481/1964/879 -f 4476/1970/881 4482/1966/881 4485/1971/883 -f 4478/1972/882 4484/1969/882 4486/1973/884 -f 4462/1974/883 4485/1971/883 4487/1975/885 -f 4463/1976/884 4486/1973/884 4488/1977/886 -f 4464/1978/885 4487/1975/885 4489/1979/887 -f 4465/1980/886 4488/1977/886 4490/1981/888 -f 4466/1982/887 4489/1990/887 4491/1983/889 -f 4467/1984/888 4490/1981/888 4492/1985/890 -f 4468/1986/889 4491/1983/889 4493/1987/875 -f 4469/1988/890 4492/1985/890 4494/1989/877 -f 4488/1977/864 4302/1692/864 4304/1694/866 -f 4489/1990/865 4318/1711/865 4320/1713/867 -f 4490/1981/866 4304/1694/866 4306/1696/868 -f 4491/1983/867 4320/1713/867 4322/1715/869 -f 4492/1985/868 4306/1696/868 4307/1698/870 -f 4493/1987/869 4322/1715/869 4323/1717/871 -f 4494/1989/870 4307/1698/870 4309/1700/872 -f 4479/1960/871 4323/1717/871 4325/1719/873 -f 4483/1968/874 4311/1702/874 4313/1704/859 -f 4480/1962/872 4309/1700/872 4311/1702/874 -f 4481/1964/873 4325/1719/873 4327/1721/861 -f 4482/1966/859 4313/1704/859 4315/1706/860 -f 4484/1969/861 4327/1721/861 4328/1723/862 -f 4485/1971/860 4315/1706/860 4317/1708/863 -f 4486/1973/862 4328/1723/862 4302/1692/864 -f 4487/1975/863 4317/1708/863 4318/1710/865 -f 4308/1699/870 4331/2008/870 4387/1991/872 -f 4324/1718/871 4393/2009/871 4392/1992/873 -f 4312/1703/874 4386/2010/874 4385/1993/859 -f 4310/1701/872 4387/2011/872 4386/1994/874 -f 4384/1813/873 4392/2012/873 4391/1995/861 -f 4314/1705/859 4385/2013/859 4330/1996/860 -f 4326/1722/861 4391/2014/861 4332/1997/862 -f 4382/1807/860 4330/2015/860 4397/1998/863 -f 4329/1724/862 4332/2016/862 4390/1999/864 -f 4316/1709/863 4397/2017/863 4396/2000/865 -f 4381/1800/864 4390/2018/864 4389/2001/866 -f 4383/1809/865 4396/2019/865 4395/2002/867 -f 4303/1801/866 4389/2020/866 4388/2003/868 -f 4319/1810/867 4395/2021/867 4394/2004/869 -f 4305/1697/868 4388/2022/868 4331/2005/870 -f 4321/1716/869 4394/2023/869 4393/2006/871 +f 4470/2821/793 4471/2822/794 4472/2823/794 +f 4473/2824/795 4474/2825/796 4475/2826/796 +f 4476/2827/797 4477/2828/793 4470/2821/793 +f 4478/2829/798 4479/2830/795 4473/2824/795 +f 4480/2831/799 4481/2832/797 4476/2827/797 +f 4482/2833/800 4483/2834/798 4478/2829/798 +f 4484/2835/801 4485/2836/799 4480/2837/799 +f 4486/2838/802 4487/2839/800 4482/2833/800 +f 4488/2840/803 4489/2841/801 4484/2835/801 +f 4490/2842/804 4491/2843/802 4486/2838/802 +f 4492/2844/805 4493/2845/803 4488/2840/803 +f 4494/2846/806 4495/2847/804 4490/2842/804 +f 4496/2848/807 4497/2849/805 4492/2844/805 +f 4472/2823/794 4498/2850/808 4499/2851/808 +f 4499/2851/808 4500/2852/806 4494/2846/806 +f 4475/2826/796 4501/2853/807 4496/2848/807 +f 4501/2853/809 4502/2854/810 4497/2849/810 +f 4471/2822/811 4503/2855/812 4498/2850/812 +f 4498/2850/812 4504/2856/813 4500/2852/814 +f 4474/2825/815 4505/2857/809 4501/2853/809 +f 4477/2828/816 4506/2858/811 4471/2822/811 +f 4479/2830/817 4507/2859/815 4474/2825/815 +f 4481/2832/818 4508/2860/816 4477/2828/816 +f 4479/2830/817 4509/2861/819 4510/2862/817 +f 4485/2863/820 4511/2864/818 4481/2832/818 +f 4487/2839/821 4509/2865/819 4483/2834/819 +f 4489/2841/822 4512/2866/820 4485/2836/820 +f 4487/2839/821 4513/2867/823 4514/2868/821 +f 4493/2845/824 4515/2869/822 4489/2841/822 +f 4495/2847/825 4513/2870/823 4491/2843/823 +f 4497/2849/810 4516/2871/824 4493/2845/824 +f 4500/2852/814 4517/2872/825 4495/2847/825 +f 4518/2873/826 4478/2829/827 4473/2824/826 +f 4506/2858/828 4508/2874/829 4519/2875/830 +f 4508/2860/829 4511/2876/831 4519/2877/830 +f 4511/2864/831 4512/2878/832 4519/2879/830 +f 4512/2866/832 4515/2880/833 4519/2881/830 +f 4515/2869/833 4516/2882/834 4519/2883/830 +f 4516/2871/834 4502/2884/835 4519/2885/830 +f 4502/2854/835 4505/2886/836 4519/2887/830 +f 4505/2857/836 4507/2888/837 4519/2889/830 +f 4507/2859/837 4510/2890/838 4519/2891/830 +f 4510/2862/838 4509/2861/839 4519/2892/830 +f 4509/2865/839 4514/2893/840 4519/2894/830 +f 4514/2868/840 4513/2867/841 4519/2895/830 +f 4513/2870/841 4517/2896/842 4519/2897/830 +f 4517/2872/842 4504/2898/843 4519/2899/830 +f 4504/2856/843 4503/2900/844 4519/2901/830 +f 4503/2855/844 4506/2902/828 4519/2903/830 +f 4520/2904/827 4482/2833/845 4478/2829/827 +f 4521/2905/845 4486/2838/846 4482/2833/845 +f 4522/2906/846 4490/2842/847 4486/2838/846 +f 4523/2907/847 4494/2846/848 4490/2842/847 +f 4494/2846/848 4524/2908/849 4499/2851/849 +f 4524/2909/849 4472/2823/850 4499/2851/849 +f 4525/2910/850 4470/2821/851 4472/2823/850 +f 4526/2911/851 4476/2827/852 4470/2821/851 +f 4527/2912/852 4480/2831/853 4476/2827/852 +f 4528/2913/853 4484/2835/854 4480/2837/853 +f 4529/2914/854 4488/2840/855 4484/2835/854 +f 4530/2915/855 4492/2844/856 4488/2840/855 +f 4531/2916/856 4496/2848/857 4492/2844/856 +f 4532/2917/857 4475/2826/858 4496/2848/857 +f 4533/2918/858 4473/2824/826 4475/2826/858 +f 4525/2910/859 4534/2919/860 4526/2920/860 +f 4533/2918/861 4535/2921/862 4518/2922/862 +f 4526/2911/860 4536/2923/863 4527/2924/863 +f 4518/2873/862 4537/2925/864 4520/2926/864 +f 4527/2912/863 4538/2927/865 4528/2928/865 +f 4520/2904/864 4539/2929/866 4521/2930/866 +f 4528/2913/865 4540/2931/867 4529/2932/867 +f 4521/2905/866 4541/2933/868 4522/2934/868 +f 4529/2914/867 4542/2935/869 4530/2936/869 +f 4522/2906/868 4543/2937/870 4523/2938/870 +f 4530/2915/869 4544/2939/871 4531/2940/871 +f 4523/2907/870 4545/2941/872 4546/2942/872 +f 4531/2916/871 4547/2943/873 4532/2944/873 +f 4524/2909/874 4548/2945/859 4525/2946/859 +f 4546/2947/872 4549/2948/874 4524/2908/874 +f 4532/2917/873 4550/2949/861 4533/2950/861 +f 4542/2951/875 4551/2952/876 4544/2939/876 +f 4543/2953/877 4552/2954/878 4545/2941/878 +f 4544/2955/876 4553/2956/879 4547/2943/879 +f 4549/2957/880 4554/2958/881 4548/2945/881 +f 4545/2959/878 4555/2960/880 4549/2948/880 +f 4550/2949/882 4553/2956/879 4556/2961/882 +f 4548/2962/881 4557/2963/883 4534/2919/883 +f 4550/2964/882 4558/2965/884 4535/2921/884 +f 4534/2966/883 4559/2967/885 4536/2923/885 +f 4535/2968/884 4560/2969/886 4537/2925/886 +f 4536/2970/885 4561/2971/887 4538/2927/887 +f 4537/2972/886 4562/2973/888 4539/2929/888 +f 4538/2974/887 4563/2975/889 4540/2931/889 +f 4539/2976/888 4564/2977/890 4541/2933/890 +f 4540/2978/889 4565/2979/875 4542/2935/875 +f 4541/2980/890 4566/2981/877 4543/2937/877 +f 4560/2969/864 4376/2686/866 4562/2973/866 +f 4561/2982/865 4392/2705/867 4563/2975/867 +f 4562/2973/866 4378/2688/868 4564/2977/868 +f 4563/2975/867 4394/2707/869 4565/2979/869 +f 4564/2977/868 4379/2690/870 4566/2981/870 +f 4565/2979/869 4395/2709/871 4551/2952/871 +f 4566/2981/870 4381/2692/872 4552/2954/872 +f 4551/2952/871 4397/2711/873 4553/2956/873 +f 4555/2960/874 4385/2696/859 4554/2958/859 +f 4552/2954/872 4383/2694/874 4555/2960/874 +f 4553/2956/873 4399/2713/861 4556/2961/861 +f 4554/2958/859 4387/2698/860 4557/2963/860 +f 4556/2961/861 4400/2715/862 4558/2965/862 +f 4557/2963/860 4389/2700/863 4559/2967/863 +f 4558/2965/862 4374/2684/864 4560/2969/864 +f 4559/2967/863 4390/2702/865 4561/2971/865 +f 4380/2691/870 4459/2983/872 4382/2795/872 +f 4396/2710/871 4464/2984/873 4456/2804/873 +f 4384/2695/874 4457/2985/859 4386/2797/859 +f 4382/2693/872 4458/2986/874 4384/2796/874 +f 4456/2805/873 4463/2987/861 4398/2712/861 +f 4386/2697/859 4402/2988/860 4454/2798/860 +f 4398/2714/861 4404/2989/862 4401/2806/862 +f 4454/2799/860 4469/2990/863 4388/2699/863 +f 4401/2716/862 4462/2991/864 4453/2807/864 +f 4388/2701/863 4468/2992/865 4455/2800/865 +f 4453/2792/864 4461/2993/866 4375/2685/866 +f 4455/2801/865 4467/2994/867 4391/2704/867 +f 4375/2793/866 4460/2995/868 4377/2687/868 +f 4391/2802/867 4466/2996/869 4393/2706/869 +f 4377/2689/868 4403/2997/870 4380/2794/870 +f 4393/2708/869 4465/2998/871 4396/2803/871 +f 4470/2821/793 4477/2828/793 4471/2822/794 +f 4473/2824/795 4479/2830/795 4474/2825/796 +f 4476/2827/797 4481/2832/797 4477/2828/793 +f 4478/2829/798 4483/2834/798 4479/2830/795 +f 4480/2831/799 4485/2863/799 4481/2832/797 +f 4482/2833/800 4487/2839/800 4483/2834/798 +f 4484/2835/801 4489/2841/801 4485/2836/799 +f 4486/2838/802 4491/2843/802 4487/2839/800 +f 4488/2840/803 4493/2845/803 4489/2841/801 +f 4490/2842/804 4495/2847/804 4491/2843/802 +f 4492/2844/805 4497/2849/805 4493/2845/803 +f 4494/2846/806 4500/2852/806 4495/2847/804 +f 4496/2848/807 4501/2853/807 4497/2849/805 +f 4472/2823/794 4471/2822/794 4498/2850/808 +f 4499/2851/808 4498/2850/808 4500/2852/806 +f 4475/2826/796 4474/2825/796 4501/2853/807 +f 4501/2853/809 4505/2886/809 4502/2854/810 +f 4471/2822/811 4506/2902/811 4503/2855/812 +f 4498/2850/812 4503/2900/812 4504/2856/813 +f 4474/2825/815 4507/2888/815 4505/2857/809 +f 4477/2828/816 4508/2874/816 4506/2858/811 +f 4479/2830/817 4510/2890/817 4507/2859/815 +f 4481/2832/818 4511/2876/818 4508/2860/816 +f 4479/2830/817 4483/2834/819 4509/2861/819 +f 4485/2863/820 4512/2878/820 4511/2864/818 +f 4487/2839/821 4514/2893/821 4509/2865/819 +f 4489/2841/822 4515/2880/822 4512/2866/820 +f 4487/2839/821 4491/2843/823 4513/2867/823 +f 4493/2845/824 4516/2882/824 4515/2869/822 +f 4495/2847/825 4517/2896/825 4513/2870/823 +f 4497/2849/810 4502/2884/810 4516/2871/824 +f 4500/2852/814 4504/2898/813 4517/2872/825 +f 4518/2873/826 4520/2926/827 4478/2829/827 +f 4520/2904/827 4521/2930/845 4482/2833/845 +f 4521/2905/845 4522/2934/846 4486/2838/846 +f 4522/2906/846 4523/2938/847 4490/2842/847 +f 4523/2907/847 4546/2942/848 4494/2846/848 +f 4494/2846/848 4546/2947/848 4524/2908/849 +f 4524/2909/849 4525/2946/850 4472/2823/850 +f 4525/2910/850 4526/2920/851 4470/2821/851 +f 4526/2911/851 4527/2924/852 4476/2827/852 +f 4527/2912/852 4528/2928/853 4480/2831/853 +f 4528/2913/853 4529/2932/854 4484/2835/854 +f 4529/2914/854 4530/2936/855 4488/2840/855 +f 4530/2915/855 4531/2940/856 4492/2844/856 +f 4531/2916/856 4532/2944/857 4496/2848/857 +f 4532/2917/857 4533/2950/858 4475/2826/858 +f 4533/2918/858 4518/2922/826 4473/2824/826 +f 4525/2910/859 4548/2962/859 4534/2919/860 +f 4533/2918/861 4550/2964/861 4535/2921/862 +f 4526/2911/860 4534/2966/860 4536/2923/863 +f 4518/2873/862 4535/2968/862 4537/2925/864 +f 4527/2912/863 4536/2970/863 4538/2927/865 +f 4520/2904/864 4537/2972/864 4539/2929/866 +f 4528/2913/865 4538/2974/865 4540/2931/867 +f 4521/2905/866 4539/2976/866 4541/2933/868 +f 4529/2914/867 4540/2978/867 4542/2935/869 +f 4522/2906/868 4541/2980/868 4543/2937/870 +f 4530/2915/869 4542/2951/869 4544/2939/871 +f 4523/2907/870 4543/2953/870 4545/2941/872 +f 4531/2916/871 4544/2955/871 4547/2943/873 +f 4524/2909/874 4549/2957/874 4548/2945/859 +f 4546/2947/872 4545/2959/872 4549/2948/874 +f 4532/2917/873 4547/2999/873 4550/2949/861 +f 4542/2951/875 4565/2979/875 4551/2952/876 +f 4543/2953/877 4566/2981/877 4552/2954/878 +f 4544/2955/876 4551/2952/876 4553/2956/879 +f 4549/2957/880 4555/2960/880 4554/2958/881 +f 4545/2959/878 4552/2954/878 4555/2960/880 +f 4550/2949/882 4547/2999/879 4553/2956/879 +f 4548/2962/881 4554/2958/881 4557/2963/883 +f 4550/2964/882 4556/2961/882 4558/2965/884 +f 4534/2966/883 4557/2963/883 4559/2967/885 +f 4535/2968/884 4558/2965/884 4560/2969/886 +f 4536/2970/885 4559/2967/885 4561/2971/887 +f 4537/2972/886 4560/2969/886 4562/2973/888 +f 4538/2974/887 4561/2982/887 4563/2975/889 +f 4539/2976/888 4562/2973/888 4564/2977/890 +f 4540/2978/889 4563/2975/889 4565/2979/875 +f 4541/2980/890 4564/2977/890 4566/2981/877 +f 4560/2969/864 4374/2684/864 4376/2686/866 +f 4561/2982/865 4390/2703/865 4392/2705/867 +f 4562/2973/866 4376/2686/866 4378/2688/868 +f 4563/2975/867 4392/2705/867 4394/2707/869 +f 4564/2977/868 4378/2688/868 4379/2690/870 +f 4565/2979/869 4394/2707/869 4395/2709/871 +f 4566/2981/870 4379/2690/870 4381/2692/872 +f 4551/2952/871 4395/2709/871 4397/2711/873 +f 4555/2960/874 4383/2694/874 4385/2696/859 +f 4552/2954/872 4381/2692/872 4383/2694/874 +f 4553/2956/873 4397/2711/873 4399/2713/861 +f 4554/2958/859 4385/2696/859 4387/2698/860 +f 4556/2961/861 4399/2713/861 4400/2715/862 +f 4557/2963/860 4387/2698/860 4389/2700/863 +f 4558/2965/862 4400/2715/862 4374/2684/864 +f 4559/2967/863 4389/2700/863 4390/2702/865 +f 4380/2691/870 4403/3000/870 4459/2983/872 +f 4396/2710/871 4465/3001/871 4464/2984/873 +f 4384/2695/874 4458/3002/874 4457/2985/859 +f 4382/2693/872 4459/3003/872 4458/2986/874 +f 4456/2805/873 4464/3004/873 4463/2987/861 +f 4386/2697/859 4457/3005/859 4402/2988/860 +f 4398/2714/861 4463/3006/861 4404/2989/862 +f 4454/2799/860 4402/3007/860 4469/2990/863 +f 4401/2716/862 4404/3008/862 4462/2991/864 +f 4388/2701/863 4469/3009/863 4468/2992/865 +f 4453/2792/864 4462/3010/864 4461/2993/866 +f 4455/2801/865 4468/3011/865 4467/2994/867 +f 4375/2793/866 4461/3012/866 4460/2995/868 +f 4391/2802/867 4467/3013/867 4466/2996/869 +f 4377/2689/868 4460/3014/868 4403/2997/870 +f 4393/2708/869 4466/3015/869 4465/2998/871 o V2_Missile v 0.265165 2.500000 -0.265165 v 0.265165 2.500000 0.265165 @@ -13985,189 +15133,189 @@ vn -0.3797 -0.1240 -0.9167 vn 0.0000 -0.1240 -0.9923 vn 0.3797 -0.1240 0.9167 s off -f 4495/2024/891 4496/2025/891 4497/2026/891 -f 4498/2027/892 4499/2028/892 4500/2029/892 -f 4501/2030/893 4502/2031/893 4503/2032/893 -f 4504/2033/894 4505/2034/894 4506/2035/894 -f 4507/2036/895 4508/2037/895 4509/2038/895 -f 4510/2039/892 4504/2040/892 4502/2041/892 -f 4511/2042/896 4507/2043/896 4499/2044/896 -f 4501/2030/897 4503/2032/897 4512/2045/897 -f 4498/2027/893 4500/2029/893 4513/2046/893 -f 4505/2034/891 4502/2047/891 4506/2035/891 -f 4510/2048/898 4514/2049/898 4515/2050/898 -f 4509/2038/891 4500/2029/891 4499/2051/891 -f 4511/2052/899 4516/2053/899 4517/2054/899 -f 4518/2055/900 4519/2056/900 4520/2057/900 -f 4521/2058/891 4522/2059/891 4523/2060/891 -f 4519/2056/896 4524/2061/896 4525/2062/896 -f 4526/2063/893 4527/2064/893 4522/2065/893 -f 4527/2066/901 4521/2058/901 4523/2060/901 -f 4519/2056/897 4522/2067/897 4524/2061/897 -f 4528/2068/902 4529/2069/902 4530/2070/902 -f 4531/2071/891 4532/2072/891 4533/2073/891 -f 4534/2074/892 4532/2072/892 4535/2075/892 -f 4528/2076/897 4536/2077/897 4533/2078/897 -f 4535/2079/903 4531/2071/903 4536/2080/903 -f 4534/2074/896 4533/2081/896 4532/2072/896 -f 4537/2082/891 4538/2083/891 4539/2084/891 -f 4539/2084/891 4540/2085/891 4495/2024/891 -f 4495/2024/891 4541/2086/891 4496/2025/891 -f 4541/2086/891 4542/2087/891 4496/2025/891 -f 4542/2087/891 4543/2088/891 4496/2025/891 -f 4496/2025/891 4544/2089/891 4497/2026/891 -f 4544/2089/891 4545/2090/891 4497/2026/891 -f 4545/2090/891 4546/2091/891 4497/2026/891 -f 4497/2026/891 4547/2092/891 4548/2093/891 -f 4548/2093/891 4549/2094/891 4537/2082/891 -f 4537/2082/891 4539/2084/891 4495/2024/891 -f 4497/2026/891 4548/2093/891 4537/2082/891 -f 4537/2082/891 4495/2024/891 4497/2026/891 -f 4498/2027/892 4511/2052/892 4499/2028/892 -f 4501/2030/893 4510/2048/893 4502/2031/893 -f 4504/2033/894 4512/2095/894 4505/2034/894 -f 4507/2036/895 4513/2096/895 4508/2037/895 -f 4515/2097/892 4504/2040/892 4510/2039/892 -f 4504/2040/892 4506/2098/892 4502/2041/892 -f 4517/2099/896 4507/2043/896 4511/2042/896 -f 4507/2043/896 4509/2100/896 4499/2044/896 -f 4505/2034/897 4512/2045/897 4503/2032/897 -f 4512/2045/897 4514/2101/897 4501/2030/897 -f 4508/2037/893 4513/2046/893 4500/2029/893 -f 4513/2046/893 4516/2102/893 4498/2027/893 -f 4505/2034/891 4503/2032/891 4502/2047/891 -f 4510/2048/898 4501/2030/898 4514/2049/898 -f 4509/2038/891 4508/2037/891 4500/2029/891 -f 4511/2052/899 4498/2027/899 4516/2053/899 -f 4518/2055/900 4526/2103/900 4519/2056/900 -f 4521/2058/891 4524/2061/891 4522/2059/891 -f 4521/2058/896 4525/2062/896 4524/2061/896 -f 4525/2062/896 4520/2104/896 4519/2056/896 -f 4518/2105/893 4527/2064/893 4526/2063/893 -f 4527/2064/893 4523/2106/893 4522/2065/893 -f 4527/2066/901 4525/2107/901 4521/2058/901 -f 4519/2056/897 4526/2103/897 4522/2067/897 -f 4528/2068/902 4534/2074/902 4529/2069/902 -f 4531/2071/891 4550/2108/891 4532/2072/891 -f 4550/2108/892 4535/2075/892 4532/2072/892 -f 4535/2075/892 4529/2109/892 4534/2074/892 -f 4530/2110/897 4536/2077/897 4528/2076/897 -f 4536/2077/897 4531/2111/897 4533/2078/897 -f 4535/2079/903 4550/2108/903 4531/2071/903 -f 4534/2074/896 4528/2068/896 4533/2081/896 +f 4567/3016/891 4568/3017/891 4569/3018/891 +f 4570/3019/892 4571/3020/892 4572/3021/892 +f 4573/3022/893 4574/3023/893 4575/3024/893 +f 4576/3025/894 4577/3026/894 4578/3027/894 +f 4579/3028/895 4580/3029/895 4581/3030/895 +f 4582/3031/892 4576/3032/892 4574/3033/892 +f 4583/3034/896 4579/3035/896 4571/3036/896 +f 4573/3022/897 4575/3024/897 4584/3037/897 +f 4570/3019/893 4572/3021/893 4585/3038/893 +f 4577/3026/891 4574/3039/891 4578/3027/891 +f 4582/3040/898 4586/3041/898 4587/3042/898 +f 4581/3030/891 4572/3021/891 4571/3043/891 +f 4583/3044/899 4588/3045/899 4589/3046/899 +f 4590/3047/900 4591/3048/900 4592/3049/900 +f 4593/3050/891 4594/3051/891 4595/3052/891 +f 4591/3048/896 4596/3053/896 4597/3054/896 +f 4598/3055/893 4599/3056/893 4594/3057/893 +f 4599/3058/901 4593/3050/901 4595/3052/901 +f 4591/3048/897 4594/3059/897 4596/3053/897 +f 4600/3060/902 4601/3061/902 4602/3062/902 +f 4603/3063/891 4604/3064/891 4605/3065/891 +f 4606/3066/892 4604/3064/892 4607/3067/892 +f 4600/3068/897 4608/3069/897 4605/3070/897 +f 4607/3071/903 4603/3063/903 4608/3072/903 +f 4606/3066/896 4605/3073/896 4604/3064/896 +f 4609/3074/891 4610/3075/891 4611/3076/891 +f 4611/3076/891 4612/3077/891 4567/3016/891 +f 4567/3016/891 4613/3078/891 4568/3017/891 +f 4613/3078/891 4614/3079/891 4568/3017/891 +f 4614/3079/891 4615/3080/891 4568/3017/891 +f 4568/3017/891 4616/3081/891 4569/3018/891 +f 4616/3081/891 4617/3082/891 4569/3018/891 +f 4617/3082/891 4618/3083/891 4569/3018/891 +f 4569/3018/891 4619/3084/891 4620/3085/891 +f 4620/3085/891 4621/3086/891 4609/3074/891 +f 4609/3074/891 4611/3076/891 4567/3016/891 +f 4569/3018/891 4620/3085/891 4609/3074/891 +f 4609/3074/891 4567/3016/891 4569/3018/891 +f 4570/3019/892 4583/3044/892 4571/3020/892 +f 4573/3022/893 4582/3040/893 4574/3023/893 +f 4576/3025/894 4584/3087/894 4577/3026/894 +f 4579/3028/895 4585/3088/895 4580/3029/895 +f 4587/3089/892 4576/3032/892 4582/3031/892 +f 4576/3032/892 4578/3090/892 4574/3033/892 +f 4589/3091/896 4579/3035/896 4583/3034/896 +f 4579/3035/896 4581/3092/896 4571/3036/896 +f 4577/3026/897 4584/3037/897 4575/3024/897 +f 4584/3037/897 4586/3093/897 4573/3022/897 +f 4580/3029/893 4585/3038/893 4572/3021/893 +f 4585/3038/893 4588/3094/893 4570/3019/893 +f 4577/3026/891 4575/3024/891 4574/3039/891 +f 4582/3040/898 4573/3022/898 4586/3041/898 +f 4581/3030/891 4580/3029/891 4572/3021/891 +f 4583/3044/899 4570/3019/899 4588/3045/899 +f 4590/3047/900 4598/3095/900 4591/3048/900 +f 4593/3050/891 4596/3053/891 4594/3051/891 +f 4593/3050/896 4597/3054/896 4596/3053/896 +f 4597/3054/896 4592/3096/896 4591/3048/896 +f 4590/3097/893 4599/3056/893 4598/3055/893 +f 4599/3056/893 4595/3098/893 4594/3057/893 +f 4599/3058/901 4597/3099/901 4593/3050/901 +f 4591/3048/897 4598/3095/897 4594/3059/897 +f 4600/3060/902 4606/3066/902 4601/3061/902 +f 4603/3063/891 4622/3100/891 4604/3064/891 +f 4622/3100/892 4607/3067/892 4604/3064/892 +f 4607/3067/892 4601/3101/892 4606/3066/892 +f 4602/3102/897 4608/3069/897 4600/3068/897 +f 4608/3069/897 4603/3103/897 4605/3070/897 +f 4607/3071/903 4622/3100/903 4603/3063/903 +f 4606/3066/896 4600/3060/896 4605/3073/896 s 1 -f 4551/2112/904 4552/2113/905 4553/2114/906 -f 4554/2115/907 4555/2116/908 4556/2117/909 -f 4557/2118/910 4558/2119/911 4551/2112/904 -f 4559/2120/912 4560/2121/913 4554/2115/907 -f 4561/2122/914 4562/2123/915 4557/2118/910 -f 4563/2124/916 4564/2125/917 4559/2126/912 -f 4565/2127/918 4566/2128/919 4561/2122/914 -f 4567/2129/920 4568/2130/921 4563/2124/916 -f 4569/2131/922 4570/2132/923 4565/2127/918 -f 4571/2133/924 4572/2134/925 4567/2129/920 -f 4573/2135/926 4574/2136/927 4569/2131/922 -f 4571/2133/924 4575/2137/928 4576/2138/929 -f 4577/2139/930 4578/2140/931 4579/2141/932 -f 4579/2141/932 4580/2142/933 4573/2135/926 -f 4553/2114/906 4575/2137/928 4581/2143/934 -f 4556/2117/909 4582/2144/935 4577/2139/930 -f 4580/2142/933 4583/2145/936 4584/2146/937 -f 4552/2113/905 4585/2147/938 4575/2137/928 -f 4582/2144/935 4586/2148/939 4587/2149/940 -f 4552/2113/905 4588/2150/941 4589/2151/942 -f 4560/2121/913 4586/2152/939 4555/2116/908 -f 4562/2123/915 4588/2153/941 4558/2119/911 -f 4560/2121/913 4590/2154/943 4591/2155/944 -f 4562/2123/915 4592/2156/945 4593/2157/946 -f 4568/2130/921 4590/2158/943 4564/2125/917 -f 4570/2132/923 4592/2159/945 4566/2128/919 -f 4568/2130/921 4594/2160/947 4595/2161/948 -f 4574/2136/927 4596/2162/949 4570/2132/923 -f 4576/2138/929 4594/2163/947 4572/2134/925 -f 4580/2142/933 4597/2164/950 4574/2136/927 -f 4575/2137/928 4598/2165/951 4576/2138/929 -f 4582/2144/935 4583/2166/936 4578/2140/931 -f 4587/2149/940 4586/2148/939 4599/2167/952 -f 4586/2152/939 4591/2168/944 4599/2169/952 -f 4591/2155/944 4590/2154/943 4599/2170/952 -f 4590/2158/943 4595/2171/948 4599/2172/952 -f 4595/2161/948 4594/2160/947 4599/2173/952 -f 4594/2163/947 4598/2174/951 4599/2175/952 -f 4598/2165/951 4585/2176/938 4599/2177/952 -f 4585/2147/938 4589/2178/942 4599/2179/952 -f 4589/2151/942 4588/2150/941 4599/2180/952 -f 4588/2153/941 4593/2181/946 4599/2182/952 -f 4593/2157/946 4592/2156/945 4599/2183/952 -f 4592/2159/945 4596/2184/949 4599/2185/952 -f 4596/2162/949 4597/2186/950 4599/2187/952 -f 4597/2164/950 4584/2188/937 4599/2189/952 -f 4584/2146/937 4583/2145/936 4599/2190/952 -f 4583/2166/936 4587/2191/940 4599/2192/952 -f 4553/2114/906 4496/2193/953 4551/2112/904 -f 4554/2115/907 4537/2194/954 4549/2195/955 -f 4557/2118/910 4496/2196/953 4543/2197/956 -f 4559/2120/912 4549/2198/955 4548/2199/957 -f 4561/2122/914 4543/2200/956 4542/2201/958 -f 4563/2124/916 4548/2202/957 4547/2203/959 -f 4561/2122/914 4541/2204/960 4565/2127/918 -f 4563/2124/916 4497/2205/961 4567/2129/920 -f 4565/2127/918 4495/2206/962 4569/2131/922 -f 4567/2129/920 4546/2207/963 4571/2133/924 -f 4573/2135/926 4495/2208/962 4540/2209/964 -f 4571/2133/924 4545/2210/965 4581/2143/934 -f 4579/2141/932 4538/2211/966 4577/2139/930 -f 4573/2135/926 4539/2212/967 4579/2141/932 -f 4553/2114/906 4545/2213/965 4544/2214/968 -f 4556/2117/909 4538/2215/966 4537/2216/954 -f 4551/2112/904 4558/2119/911 4552/2113/905 -f 4554/2115/907 4560/2121/913 4555/2116/908 -f 4557/2118/910 4562/2123/915 4558/2119/911 -f 4559/2120/912 4564/2217/917 4560/2121/913 -f 4561/2122/914 4566/2128/919 4562/2123/915 -f 4563/2124/916 4568/2130/921 4564/2125/917 -f 4565/2127/918 4570/2132/923 4566/2128/919 -f 4567/2129/920 4572/2134/925 4568/2130/921 -f 4569/2131/922 4574/2136/927 4570/2132/923 -f 4571/2133/924 4576/2138/929 4572/2134/925 -f 4573/2135/926 4580/2142/933 4574/2136/927 -f 4571/2133/924 4581/2143/934 4575/2137/928 -f 4577/2139/930 4582/2144/935 4578/2140/931 -f 4579/2141/932 4578/2140/931 4580/2142/933 -f 4553/2114/906 4552/2113/905 4575/2137/928 -f 4556/2117/909 4555/2116/908 4582/2144/935 -f 4580/2142/933 4578/2140/931 4583/2145/936 -f 4552/2113/905 4589/2178/942 4585/2147/938 -f 4582/2144/935 4555/2116/908 4586/2148/939 -f 4552/2113/905 4558/2119/911 4588/2150/941 -f 4560/2121/913 4591/2168/944 4586/2152/939 -f 4562/2123/915 4593/2181/946 4588/2153/941 -f 4560/2121/913 4564/2217/917 4590/2154/943 -f 4562/2123/915 4566/2128/919 4592/2156/945 -f 4568/2130/921 4595/2171/948 4590/2158/943 -f 4570/2132/923 4596/2184/949 4592/2159/945 -f 4568/2130/921 4572/2134/925 4594/2160/947 -f 4574/2136/927 4597/2186/950 4596/2162/949 -f 4576/2138/929 4598/2174/951 4594/2163/947 -f 4580/2142/933 4584/2188/937 4597/2164/950 -f 4575/2137/928 4585/2176/938 4598/2165/951 -f 4582/2144/935 4587/2191/940 4583/2166/936 -f 4553/2114/906 4544/2218/968 4496/2193/953 -f 4554/2115/907 4556/2117/909 4537/2194/954 -f 4557/2118/910 4551/2112/904 4496/2196/953 -f 4559/2120/912 4554/2115/907 4549/2198/955 -f 4561/2122/914 4557/2118/910 4543/2200/956 -f 4563/2124/916 4559/2126/912 4548/2202/957 -f 4561/2122/914 4542/2219/958 4541/2204/960 -f 4563/2124/916 4547/2220/959 4497/2205/961 -f 4565/2127/918 4541/2221/960 4495/2206/962 -f 4567/2129/920 4497/2222/961 4546/2207/963 -f 4573/2135/926 4569/2131/922 4495/2208/962 -f 4571/2133/924 4546/2223/963 4545/2210/965 -f 4579/2141/932 4539/2224/967 4538/2211/966 -f 4573/2135/926 4540/2225/964 4539/2212/967 -f 4553/2114/906 4581/2143/934 4545/2213/965 -f 4556/2117/909 4577/2139/930 4538/2215/966 +f 4623/3104/904 4624/3105/905 4625/3106/906 +f 4626/3107/907 4627/3108/908 4628/3109/909 +f 4629/3110/910 4630/3111/911 4623/3104/904 +f 4631/3112/912 4632/3113/913 4626/3107/907 +f 4633/3114/914 4634/3115/915 4629/3110/910 +f 4635/3116/916 4636/3117/917 4631/3118/912 +f 4637/3119/918 4638/3120/919 4633/3114/914 +f 4639/3121/920 4640/3122/921 4635/3116/916 +f 4641/3123/922 4642/3124/923 4637/3119/918 +f 4643/3125/924 4644/3126/925 4639/3121/920 +f 4645/3127/926 4646/3128/927 4641/3123/922 +f 4643/3125/924 4647/3129/928 4648/3130/929 +f 4649/3131/930 4650/3132/931 4651/3133/932 +f 4651/3133/932 4652/3134/933 4645/3127/926 +f 4625/3106/906 4647/3129/928 4653/3135/934 +f 4628/3109/909 4654/3136/935 4649/3131/930 +f 4652/3134/933 4655/3137/936 4656/3138/937 +f 4624/3105/905 4657/3139/938 4647/3129/928 +f 4654/3136/935 4658/3140/939 4659/3141/940 +f 4624/3105/905 4660/3142/941 4661/3143/942 +f 4632/3113/913 4658/3144/939 4627/3108/908 +f 4634/3115/915 4660/3145/941 4630/3111/911 +f 4632/3113/913 4662/3146/943 4663/3147/944 +f 4634/3115/915 4664/3148/945 4665/3149/946 +f 4640/3122/921 4662/3150/943 4636/3117/917 +f 4642/3124/923 4664/3151/945 4638/3120/919 +f 4640/3122/921 4666/3152/947 4667/3153/948 +f 4646/3128/927 4668/3154/949 4642/3124/923 +f 4648/3130/929 4666/3155/947 4644/3126/925 +f 4652/3134/933 4669/3156/950 4646/3128/927 +f 4647/3129/928 4670/3157/951 4648/3130/929 +f 4654/3136/935 4655/3158/936 4650/3132/931 +f 4659/3141/940 4658/3140/939 4671/3159/952 +f 4658/3144/939 4663/3160/944 4671/3161/952 +f 4663/3147/944 4662/3146/943 4671/3162/952 +f 4662/3150/943 4667/3163/948 4671/3164/952 +f 4667/3153/948 4666/3152/947 4671/3165/952 +f 4666/3155/947 4670/3166/951 4671/3167/952 +f 4670/3157/951 4657/3168/938 4671/3169/952 +f 4657/3139/938 4661/3170/942 4671/3171/952 +f 4661/3143/942 4660/3142/941 4671/3172/952 +f 4660/3145/941 4665/3173/946 4671/3174/952 +f 4665/3149/946 4664/3148/945 4671/3175/952 +f 4664/3151/945 4668/3176/949 4671/3177/952 +f 4668/3154/949 4669/3178/950 4671/3179/952 +f 4669/3156/950 4656/3180/937 4671/3181/952 +f 4656/3138/937 4655/3137/936 4671/3182/952 +f 4655/3158/936 4659/3183/940 4671/3184/952 +f 4625/3106/906 4568/3185/953 4623/3104/904 +f 4626/3107/907 4609/3186/954 4621/3187/955 +f 4629/3110/910 4568/3188/953 4615/3189/956 +f 4631/3112/912 4621/3190/955 4620/3191/957 +f 4633/3114/914 4615/3192/956 4614/3193/958 +f 4635/3116/916 4620/3194/957 4619/3195/959 +f 4633/3114/914 4613/3196/960 4637/3119/918 +f 4635/3116/916 4569/3197/961 4639/3121/920 +f 4637/3119/918 4567/3198/962 4641/3123/922 +f 4639/3121/920 4618/3199/963 4643/3125/924 +f 4645/3127/926 4567/3200/962 4612/3201/964 +f 4643/3125/924 4617/3202/965 4653/3135/934 +f 4651/3133/932 4610/3203/966 4649/3131/930 +f 4645/3127/926 4611/3204/967 4651/3133/932 +f 4625/3106/906 4617/3205/965 4616/3206/968 +f 4628/3109/909 4610/3207/966 4609/3208/954 +f 4623/3104/904 4630/3111/911 4624/3105/905 +f 4626/3107/907 4632/3113/913 4627/3108/908 +f 4629/3110/910 4634/3115/915 4630/3111/911 +f 4631/3112/912 4636/3209/917 4632/3113/913 +f 4633/3114/914 4638/3120/919 4634/3115/915 +f 4635/3116/916 4640/3122/921 4636/3117/917 +f 4637/3119/918 4642/3124/923 4638/3120/919 +f 4639/3121/920 4644/3126/925 4640/3122/921 +f 4641/3123/922 4646/3128/927 4642/3124/923 +f 4643/3125/924 4648/3130/929 4644/3126/925 +f 4645/3127/926 4652/3134/933 4646/3128/927 +f 4643/3125/924 4653/3135/934 4647/3129/928 +f 4649/3131/930 4654/3136/935 4650/3132/931 +f 4651/3133/932 4650/3132/931 4652/3134/933 +f 4625/3106/906 4624/3105/905 4647/3129/928 +f 4628/3109/909 4627/3108/908 4654/3136/935 +f 4652/3134/933 4650/3132/931 4655/3137/936 +f 4624/3105/905 4661/3170/942 4657/3139/938 +f 4654/3136/935 4627/3108/908 4658/3140/939 +f 4624/3105/905 4630/3111/911 4660/3142/941 +f 4632/3113/913 4663/3160/944 4658/3144/939 +f 4634/3115/915 4665/3173/946 4660/3145/941 +f 4632/3113/913 4636/3209/917 4662/3146/943 +f 4634/3115/915 4638/3120/919 4664/3148/945 +f 4640/3122/921 4667/3163/948 4662/3150/943 +f 4642/3124/923 4668/3176/949 4664/3151/945 +f 4640/3122/921 4644/3126/925 4666/3152/947 +f 4646/3128/927 4669/3178/950 4668/3154/949 +f 4648/3130/929 4670/3166/951 4666/3155/947 +f 4652/3134/933 4656/3180/937 4669/3156/950 +f 4647/3129/928 4657/3168/938 4670/3157/951 +f 4654/3136/935 4659/3183/940 4655/3158/936 +f 4625/3106/906 4616/3210/968 4568/3185/953 +f 4626/3107/907 4628/3109/909 4609/3186/954 +f 4629/3110/910 4623/3104/904 4568/3188/953 +f 4631/3112/912 4626/3107/907 4621/3190/955 +f 4633/3114/914 4629/3110/910 4615/3192/956 +f 4635/3116/916 4631/3118/912 4620/3194/957 +f 4633/3114/914 4614/3211/958 4613/3196/960 +f 4635/3116/916 4619/3212/959 4569/3197/961 +f 4637/3119/918 4613/3213/960 4567/3198/962 +f 4639/3121/920 4569/3214/961 4618/3199/963 +f 4645/3127/926 4641/3123/922 4567/3200/962 +f 4643/3125/924 4618/3215/963 4617/3202/965 +f 4651/3133/932 4611/3216/967 4610/3203/966 +f 4645/3127/926 4612/3217/964 4611/3204/967 +f 4625/3106/906 4653/3135/934 4617/3205/965 +f 4628/3109/909 4649/3131/930 4610/3207/966 o Atlas_Missile v -1.154849 5.312499 -0.478354 v -0.795495 5.312499 -0.795495 @@ -15190,483 +16338,483 @@ vn 0.4867 0.2290 -0.8430 vn -0.9549 0.1504 -0.2559 vn -0.4867 0.2290 0.8430 s off -f 4600/2226/969 4601/2227/969 4602/2228/969 -f 4603/2229/969 4604/2230/969 4605/2231/969 -f 4606/2232/969 4607/2233/969 4600/2226/969 -f 4608/2234/970 4609/2235/970 4610/2236/970 -f 4611/2237/969 4612/2238/969 4613/2239/969 -f 4614/2240/969 4604/2230/969 4615/2241/969 -f 4615/2241/969 4616/2242/969 4614/2240/969 -f 4617/2243/969 4616/2242/969 4618/2244/969 -f 4619/2245/969 4620/2246/969 4617/2243/969 -f 4619/2245/969 4621/2247/969 4622/2248/969 -f 4623/2249/969 4621/2247/969 4624/2250/969 -f 4625/2251/969 4626/2252/969 4627/2253/969 -f 4628/2254/969 4627/2253/969 4626/2252/969 -f 4628/2254/969 4629/2255/969 4630/2256/969 -f 4631/2257/969 4629/2255/969 4632/2258/969 -f 4633/2259/969 4601/2227/969 4634/2260/969 -f 4634/2260/969 4635/2261/969 4633/2259/969 -f 4631/2257/969 4636/2262/969 4637/2263/969 -f 4638/2264/971 4639/2265/971 4640/2266/971 -f 4641/2267/971 4642/2268/971 4643/2269/971 -f 4642/2268/971 4644/2270/971 4643/2269/971 -f 4643/2269/971 4645/2271/971 4646/2272/971 -f 4647/2273/971 4645/2271/971 4644/2270/971 -f 4648/2274/971 4644/2270/971 4649/2275/971 -f 4643/2269/971 4644/2270/971 4645/2271/971 -f 4650/2276/971 4651/2277/971 4652/2278/971 -f 4653/2279/971 4654/2280/971 4655/2281/971 -f 4656/2282/971 4657/2283/971 4658/2284/971 -f 4659/2285/971 4660/2286/971 4661/2287/971 -f 4661/2287/971 4655/2281/971 4654/2280/971 -f 4652/2278/971 4658/2284/971 4660/2286/971 -f 4661/2287/971 4658/2284/971 4657/2283/971 -f 4662/2288/971 4663/2289/971 4664/2290/971 -f 4665/2291/971 4666/2292/971 4667/2293/971 -f 4668/2294/971 4669/2295/971 4670/2296/971 -f 4671/2297/971 4672/2298/971 4673/2299/971 -f 4673/2299/971 4667/2293/971 4666/2292/971 -f 4664/2290/971 4670/2296/971 4672/2298/971 -f 4673/2299/971 4670/2296/971 4669/2295/971 -f 4674/2300/971 4640/2266/971 4675/2301/971 -f 4676/2302/971 4677/2303/971 4678/2304/971 -f 4679/2305/971 4649/2275/971 4677/2303/971 -f 4680/2306/971 4675/2301/971 4642/2268/971 -f 4675/2301/971 4649/2275/971 4642/2268/971 -f 4678/2304/971 4675/2301/971 4640/2266/971 -f 4612/2238/972 4681/2307/972 4682/2308/972 -f 4683/2309/973 4684/2310/973 4685/2311/973 -f 4686/2312/971 4687/2313/971 4688/2314/971 -f 4687/2313/971 4689/2315/971 4688/2314/971 -f 4688/2314/971 4690/2316/971 4691/2317/971 -f 4692/2318/971 4690/2316/971 4689/2315/971 -f 4693/2319/971 4689/2315/971 4639/2265/971 -f 4688/2314/971 4689/2315/971 4690/2316/971 -f 4694/2320/971 4695/2321/971 4696/2322/971 -f 4697/2323/971 4698/2324/971 4699/2325/971 -f 4700/2326/971 4701/2327/971 4702/2328/971 -f 4703/2329/971 4704/2330/971 4705/2331/971 -f 4698/2324/971 4701/2327/971 4699/2325/971 -f 4696/2322/971 4702/2328/971 4704/2330/971 -f 4705/2331/971 4702/2328/971 4701/2327/971 -f 4706/2332/971 4678/2304/971 4687/2313/971 -f 4687/2313/971 4640/2266/971 4639/2265/971 -f 4600/2226/969 4607/2233/969 4601/2227/969 -f 4603/2229/969 4606/2232/969 4604/2230/969 -f 4606/2232/969 4603/2229/969 4607/2233/969 -f 4614/2240/969 4605/2231/969 4604/2230/969 -f 4615/2241/969 4618/2244/969 4616/2242/969 -f 4617/2243/969 4620/2246/969 4616/2242/969 -f 4619/2245/969 4622/2248/969 4620/2246/969 -f 4619/2245/969 4624/2250/969 4621/2247/969 -f 4623/2249/969 4625/2251/969 4621/2247/969 -f 4625/2251/969 4623/2249/969 4626/2252/969 -f 4628/2254/969 4630/2256/969 4627/2253/969 -f 4628/2254/969 4632/2258/969 4629/2255/969 -f 4631/2257/969 4637/2263/969 4629/2255/969 -f 4633/2259/969 4602/2228/969 4601/2227/969 -f 4634/2260/969 4636/2333/969 4635/2261/969 -f 4631/2257/969 4635/2334/969 4636/2262/969 -f 4642/2268/971 4649/2275/971 4644/2270/971 -f 4661/2287/971 4657/2283/971 4655/2281/971 -f 4652/2278/971 4651/2277/971 4658/2284/971 -f 4661/2287/971 4660/2286/971 4658/2284/971 -f 4673/2299/971 4669/2295/971 4667/2293/971 -f 4664/2290/971 4663/2289/971 4670/2296/971 -f 4673/2299/971 4672/2298/971 4670/2296/971 -f 4675/2301/971 4677/2303/971 4649/2275/971 -f 4678/2304/971 4677/2303/971 4675/2301/971 -f 4612/2238/972 4611/2237/972 4681/2307/972 -f 4687/2313/971 4639/2265/971 4689/2315/971 -f 4698/2324/971 4705/2331/971 4701/2327/971 -f 4696/2322/971 4695/2321/971 4702/2328/971 -f 4705/2331/971 4704/2330/971 4702/2328/971 -f 4687/2313/971 4678/2304/971 4640/2266/971 +f 4672/3218/969 4673/3219/969 4674/3220/969 +f 4675/3221/969 4676/3222/969 4677/3223/969 +f 4678/3224/969 4679/3225/969 4672/3218/969 +f 4680/3226/970 4681/3227/970 4682/3228/970 +f 4683/3229/969 4684/3230/969 4685/3231/969 +f 4686/3232/969 4676/3222/969 4687/3233/969 +f 4687/3233/969 4688/3234/969 4686/3232/969 +f 4689/3235/969 4688/3234/969 4690/3236/969 +f 4691/3237/969 4692/3238/969 4689/3235/969 +f 4691/3237/969 4693/3239/969 4694/3240/969 +f 4695/3241/969 4693/3239/969 4696/3242/969 +f 4697/3243/969 4698/3244/969 4699/3245/969 +f 4700/3246/969 4699/3245/969 4698/3244/969 +f 4700/3246/969 4701/3247/969 4702/3248/969 +f 4703/3249/969 4701/3247/969 4704/3250/969 +f 4705/3251/969 4673/3219/969 4706/3252/969 +f 4706/3252/969 4707/3253/969 4705/3251/969 +f 4703/3249/969 4708/3254/969 4709/3255/969 +f 4710/3256/971 4711/3257/971 4712/3258/971 +f 4713/3259/971 4714/3260/971 4715/3261/971 +f 4714/3260/971 4716/3262/971 4715/3261/971 +f 4715/3261/971 4717/3263/971 4718/3264/971 +f 4719/3265/971 4717/3263/971 4716/3262/971 +f 4720/3266/971 4716/3262/971 4721/3267/971 +f 4715/3261/971 4716/3262/971 4717/3263/971 +f 4722/3268/971 4723/3269/971 4724/3270/971 +f 4725/3271/971 4726/3272/971 4727/3273/971 +f 4728/3274/971 4729/3275/971 4730/3276/971 +f 4731/3277/971 4732/3278/971 4733/3279/971 +f 4733/3279/971 4727/3273/971 4726/3272/971 +f 4724/3270/971 4730/3276/971 4732/3278/971 +f 4733/3279/971 4730/3276/971 4729/3275/971 +f 4734/3280/971 4735/3281/971 4736/3282/971 +f 4737/3283/971 4738/3284/971 4739/3285/971 +f 4740/3286/971 4741/3287/971 4742/3288/971 +f 4743/3289/971 4744/3290/971 4745/3291/971 +f 4745/3291/971 4739/3285/971 4738/3284/971 +f 4736/3282/971 4742/3288/971 4744/3290/971 +f 4745/3291/971 4742/3288/971 4741/3287/971 +f 4746/3292/971 4712/3258/971 4747/3293/971 +f 4748/3294/971 4749/3295/971 4750/3296/971 +f 4751/3297/971 4721/3267/971 4749/3295/971 +f 4752/3298/971 4747/3293/971 4714/3260/971 +f 4747/3293/971 4721/3267/971 4714/3260/971 +f 4750/3296/971 4747/3293/971 4712/3258/971 +f 4684/3230/972 4753/3299/972 4754/3300/972 +f 4755/3301/973 4756/3302/973 4757/3303/973 +f 4758/3304/971 4759/3305/971 4760/3306/971 +f 4759/3305/971 4761/3307/971 4760/3306/971 +f 4760/3306/971 4762/3308/971 4763/3309/971 +f 4764/3310/971 4762/3308/971 4761/3307/971 +f 4765/3311/971 4761/3307/971 4711/3257/971 +f 4760/3306/971 4761/3307/971 4762/3308/971 +f 4766/3312/971 4767/3313/971 4768/3314/971 +f 4769/3315/971 4770/3316/971 4771/3317/971 +f 4772/3318/971 4773/3319/971 4774/3320/971 +f 4775/3321/971 4776/3322/971 4777/3323/971 +f 4770/3316/971 4773/3319/971 4771/3317/971 +f 4768/3314/971 4774/3320/971 4776/3322/971 +f 4777/3323/971 4774/3320/971 4773/3319/971 +f 4778/3324/971 4750/3296/971 4759/3305/971 +f 4759/3305/971 4712/3258/971 4711/3257/971 +f 4672/3218/969 4679/3225/969 4673/3219/969 +f 4675/3221/969 4678/3224/969 4676/3222/969 +f 4678/3224/969 4675/3221/969 4679/3225/969 +f 4686/3232/969 4677/3223/969 4676/3222/969 +f 4687/3233/969 4690/3236/969 4688/3234/969 +f 4689/3235/969 4692/3238/969 4688/3234/969 +f 4691/3237/969 4694/3240/969 4692/3238/969 +f 4691/3237/969 4696/3242/969 4693/3239/969 +f 4695/3241/969 4697/3243/969 4693/3239/969 +f 4697/3243/969 4695/3241/969 4698/3244/969 +f 4700/3246/969 4702/3248/969 4699/3245/969 +f 4700/3246/969 4704/3250/969 4701/3247/969 +f 4703/3249/969 4709/3255/969 4701/3247/969 +f 4705/3251/969 4674/3220/969 4673/3219/969 +f 4706/3252/969 4708/3325/969 4707/3253/969 +f 4703/3249/969 4707/3326/969 4708/3254/969 +f 4714/3260/971 4721/3267/971 4716/3262/971 +f 4733/3279/971 4729/3275/971 4727/3273/971 +f 4724/3270/971 4723/3269/971 4730/3276/971 +f 4733/3279/971 4732/3278/971 4730/3276/971 +f 4745/3291/971 4741/3287/971 4739/3285/971 +f 4736/3282/971 4735/3281/971 4742/3288/971 +f 4745/3291/971 4744/3290/971 4742/3288/971 +f 4747/3293/971 4749/3295/971 4721/3267/971 +f 4750/3296/971 4749/3295/971 4747/3293/971 +f 4684/3230/972 4683/3229/972 4753/3299/972 +f 4759/3305/971 4711/3257/971 4761/3307/971 +f 4770/3316/971 4777/3323/971 4773/3319/971 +f 4768/3314/971 4767/3313/971 4774/3320/971 +f 4777/3323/971 4776/3322/971 4774/3320/971 +f 4759/3305/971 4750/3296/971 4712/3258/971 s 1 -f 4707/2335/974 4649/2336/975 4679/2337/976 -f 4708/2338/977 4634/2260/978 4709/2339/978 -f 4627/2253/979 4710/2340/980 4625/2251/980 -f 4605/2231/981 4711/2341/982 4603/2229/982 -f 4630/2256/983 4712/2342/979 4627/2253/979 -f 4614/2240/984 4713/2343/981 4605/2231/981 -f 4629/2255/985 4714/2344/983 4630/2256/983 -f 4616/2242/986 4715/2345/984 4614/2240/984 -f 4637/2263/987 4716/2346/985 4629/2255/985 -f 4620/2246/988 4717/2347/986 4616/2242/986 -f 4718/2348/987 4636/2262/977 4708/2349/977 -f 4622/2248/989 4719/2350/988 4620/2246/988 -f 4601/2227/976 4709/2339/978 4634/2260/978 -f 4621/2247/990 4720/2351/989 4622/2248/989 -f 4607/2233/991 4721/2352/976 4601/2227/976 -f 4625/2251/980 4722/2353/990 4621/2247/990 -f 4603/2229/982 4723/2354/991 4607/2233/991 -f 4714/2344/992 4724/2355/993 4712/2342/994 -f 4716/2346/995 4725/2356/996 4714/2344/992 -f 4718/2348/997 4726/2357/998 4716/2346/995 -f 4708/2349/999 4727/2358/1000 4718/2348/997 -f 4709/2339/1001 4728/2359/1002 4708/2338/999 -f 4721/2352/1003 4729/2360/1004 4709/2339/1001 -f 4723/2354/1005 4730/2361/1006 4721/2352/1003 -f 4711/2341/1007 4731/2362/1008 4723/2354/1005 -f 4711/2341/1007 4732/2363/1009 4733/2364/1010 -f 4715/2345/1011 4732/2365/1009 4713/2343/1012 -f 4715/2345/1011 4734/2366/1013 4735/2367/1014 -f 4719/2350/1015 4734/2368/1013 4717/2347/1016 -f 4720/2351/1017 4736/2369/1018 4719/2350/1015 -f 4722/2353/1019 4737/2370/1020 4720/2351/1017 -f 4710/2340/1021 4738/2371/1022 4722/2353/1019 -f 4712/2342/994 4739/2372/1023 4710/2340/1021 -f 4725/2356/996 4726/2373/998 4740/2374/969 -f 4735/2367/1014 4734/2366/1013 4740/2375/969 -f 4726/2357/998 4727/2376/1000 4740/2377/969 -f 4734/2368/1013 4736/2378/1018 4740/2379/969 -f 4728/2359/1002 4729/2380/1004 4740/2381/969 -f 4727/2358/1000 4728/2382/1002 4740/2383/969 -f 4736/2369/1018 4737/2384/1020 4740/2385/969 -f 4729/2360/1004 4730/2386/1006 4740/2387/969 -f 4737/2370/1020 4738/2388/1022 4740/2389/969 -f 4730/2361/1006 4731/2390/1008 4740/2391/969 -f 4738/2371/1022 4739/2392/1023 4740/2393/969 -f 4731/2362/1008 4733/2394/1010 4740/2395/969 -f 4739/2372/1023 4724/2396/993 4740/2397/969 -f 4733/2364/1010 4732/2363/1009 4740/2398/969 -f 4724/2355/993 4725/2399/996 4740/2400/969 -f 4732/2365/1009 4735/2401/1014 4740/2402/969 -f 4646/2403/1024 4741/2404/1025 4742/2405/1026 -f 4645/2406/1027 4743/2407/1028 4741/2408/1025 -f 4647/2409/1029 4744/2410/1030 4743/2411/1028 -f 4644/2412/1031 4745/2413/1032 4744/2414/1030 -f 4707/2415/1033 4648/2416/1034 4649/2417/1035 -f 4643/2418/1036 4742/2419/1026 4746/2420/1037 -f 4641/2421/1038 4746/2422/1037 4747/2423/1039 -f 4748/2424/1040 4641/2421/1038 4747/2425/1039 -f 4748/2424/1040 4749/2426/1041 4750/2427/1042 -f 4746/2422/1037 4749/2428/1041 4747/2423/1039 -f 4742/2419/1026 4751/2429/1043 4746/2420/1037 -f 4743/2407/1028 4613/2430/1044 4741/2408/1025 -f 4613/2431/1044 4742/2405/1026 4741/2404/1025 -f 4744/2410/1030 4611/2432/1045 4743/2411/1028 -f 4745/2413/1032 4752/2433/1046 4744/2414/1030 -f 4753/2434/1047 4707/2415/1033 4754/2435/1048 -f 4755/2436/984 4756/2437/1049 4754/2438/1050 -f 4754/2438/1050 4757/2439/1051 4753/2440/982 -f 4750/2441/1052 4610/2236/990 4758/2442/990 -f 4612/2443/987 4759/2444/1053 4751/2445/1054 -f 4751/2445/1054 4760/2446/1055 4749/2447/979 -f 4749/2447/979 4608/2234/1056 4750/2441/1057 -f 4753/2440/982 4761/2448/1058 4752/2449/1059 -f 4752/2449/1059 4762/2450/1060 4611/2451/978 -f 4608/2234/1056 4760/2446/1055 4609/2452/1061 -f 4760/2446/1055 4759/2444/1053 4609/2453/1061 -f 4759/2444/1053 4763/2454/1062 4609/2455/1061 -f 4762/2450/1060 4761/2448/1058 4609/2456/1061 -f 4761/2448/1058 4757/2439/1051 4609/2457/1061 -f 4757/2439/1051 4756/2437/1049 4609/2458/1061 -f 4756/2437/1049 4764/2459/1063 4609/2460/1061 -f 4748/2461/1064 4680/2462/985 4642/2463/1065 -f 4632/2464/985 4748/2461/1064 4631/2465/987 -f 4631/2465/987 4748/2461/1064 4635/2466/1066 -f 4635/2261/1067 4707/2335/974 4633/2467/978 -f 4602/2468/976 4707/2335/974 4679/2337/976 -f 4677/2469/991 4602/2468/976 4679/2337/976 -f 4676/2470/982 4600/2471/991 4677/2469/991 -f 4678/2472/981 4606/2473/982 4676/2470/982 -f 4706/2474/984 4604/2475/981 4678/2472/981 -f 4619/2476/989 4617/2477/1068 4765/2478/1069 -f 4765/2478/1069 4624/2479/990 4619/2476/989 -f 4765/2478/1069 4639/2480/1070 4638/2481/990 -f 4640/2482/980 4624/2479/990 4638/2481/990 -f 4674/2483/979 4623/2484/980 4640/2482/980 -f 4675/2485/983 4626/2486/979 4674/2483/979 -f 4680/2462/985 4628/2487/983 4675/2485/983 -f 4766/2488/1071 4651/2489/1072 4767/2490/1072 -f 4657/2491/1073 4768/2492/1074 4769/2493/1073 -f 4653/2494/1075 4770/2495/1076 4771/2496/1075 -f 4655/2497/1076 4769/2493/1073 4770/2495/1076 -f 4656/2498/1074 4766/2488/1071 4768/2492/1074 -f 4772/2499/979 4670/2500/1054 4773/2501/1054 -f 4774/2502/988 4667/2503/1077 4775/2504/1077 -f 4776/2505/982 4673/2506/1050 4777/2507/1050 -f 4773/2501/1054 4663/2508/1078 4778/2509/1078 -f 4779/2510/977 4664/2511/1079 4780/2512/1079 -f 4775/2504/1077 4669/2513/1052 4781/2514/1052 -f 4777/2507/1050 4666/2515/1080 4782/2516/1080 -f 4778/2509/1078 4662/2517/977 4779/2518/977 -f 4780/2512/1079 4672/2519/1059 4783/2520/1059 -f 4781/2514/1052 4668/2521/979 4772/2499/979 -f 4782/2516/1080 4665/2522/988 4774/2502/988 -f 4783/2520/1059 4671/2523/982 4776/2505/982 -f 4772/2499/1081 4784/2524/1082 4785/2525/1081 -f 4773/2501/1082 4786/2526/1083 4784/2524/1082 -f 4778/2509/1083 4787/2527/1084 4786/2526/1083 -f 4779/2510/1084 4788/2528/1085 4787/2529/1084 -f 4780/2512/1085 4789/2530/1086 4788/2528/1085 -f 4783/2520/1086 4790/2531/1087 4789/2530/1086 -f 4776/2505/1087 4791/2532/1088 4790/2531/1087 -f 4777/2507/1088 4792/2533/1089 4791/2532/1088 -f 4782/2516/1089 4793/2534/1090 4792/2533/1089 -f 4793/2534/1090 4775/2504/1091 4794/2535/1091 -f 4775/2504/1091 4795/2536/1092 4794/2535/1091 -f 4781/2514/1092 4785/2525/1081 4795/2536/1092 -f 4651/2489/1072 4796/2537/1093 4767/2490/1072 -f 4650/2538/1093 4797/2539/1094 4796/2540/1093 -f 4652/2541/1094 4798/2542/1095 4797/2539/1094 -f 4660/2543/1095 4799/2544/1096 4798/2542/1095 -f 4659/2545/1096 4800/2546/1097 4799/2544/1096 -f 4661/2547/1097 4801/2548/1098 4800/2546/1097 -f 4654/2549/1098 4771/2496/1075 4801/2548/1098 -f 4682/2308/1099 4802/2550/1100 4612/2551/1101 -f 4681/2307/1102 4611/2552/1103 4803/2553/1104 -f 4802/2554/1100 4681/2307/1102 4803/2555/1104 -f 4609/2556/1061 4763/2454/1062 4762/2450/1060 -f 4763/2454/1062 4611/2451/978 4762/2450/1060 -f 4691/2557/1105 4804/2558/1106 4805/2559/1107 -f 4690/2560/1108 4806/2561/1109 4804/2562/1106 -f 4692/2563/1110 4807/2564/1111 4806/2565/1109 -f 4689/2566/1112 4808/2567/1113 4807/2568/1111 -f 4765/2569/1114 4693/2570/1115 4639/2571/1116 -f 4688/2572/1117 4805/2573/1107 4809/2574/1118 -f 4686/2575/1119 4809/2576/1118 4810/2577/1120 -f 4811/2578/1121 4686/2575/1119 4810/2579/1120 -f 4811/2578/1121 4812/2580/1122 4813/2581/1123 -f 4809/2576/1118 4812/2582/1122 4810/2577/1120 -f 4805/2573/1107 4814/2583/1124 4809/2574/1118 -f 4806/2561/1109 4815/2584/1125 4804/2562/1106 -f 4815/2585/1125 4805/2559/1107 4804/2558/1106 -f 4807/2564/1111 4816/2586/1126 4806/2565/1109 -f 4808/2567/1113 4817/2587/1127 4807/2568/1111 -f 4818/2588/1128 4765/2569/1114 4819/2589/1129 -f 4820/2590/1130 4821/2591/1131 4822/2592/1132 -f 4821/2591/1131 4823/2593/1133 4824/2594/1134 -f 4825/2595/1135 4826/2596/1136 4827/2597/1137 -f 4828/2598/1138 4820/2599/1139 4822/2600/1139 -f 4825/2595/1135 4829/2601/1140 4830/2602/1141 -f 4831/2603/1142 4830/2602/1141 4829/2601/1140 -f 4827/2597/1137 4823/2604/1133 4832/2605/1143 -f 4829/2601/1140 4825/2595/1135 4827/2597/1137 -f 4683/2309/1144 4833/2606/1145 4684/2607/1146 -f 4833/2606/1145 4834/2608/1147 4684/2609/1146 -f 4834/2608/1147 4835/2610/1148 4684/2611/1146 -f 4836/2612/1149 4837/2613/1150 4684/2614/1146 -f 4837/2613/1150 4838/2615/1151 4684/2616/1146 -f 4838/2615/1151 4839/2617/1152 4684/2618/1146 -f 4839/2617/1152 4840/2619/1153 4684/2620/1146 -f 4841/2621/1097 4695/2622/1098 4842/2623/1098 -f 4843/2624/1095 4700/2625/1096 4844/2626/1096 -f 4697/2627/1093 4845/2628/1094 4846/2629/1093 -f 4699/2630/1094 4843/2624/1095 4845/2628/1094 -f 4700/2625/1096 4841/2621/1097 4844/2626/1096 -f 4695/2622/1098 4847/2631/1075 4842/2623/1098 -f 4694/2632/1075 4848/2633/1076 4847/2631/1075 -f 4696/2634/1076 4849/2635/1073 4848/2633/1076 -f 4849/2635/1073 4703/2636/1074 4850/2637/1074 -f 4703/2636/1074 4851/2638/1071 4850/2637/1074 -f 4705/2639/1071 4852/2640/1072 4851/2638/1071 -f 4698/2641/1072 4846/2642/1093 4852/2640/1072 -f 4684/2643/1146 4835/2610/1148 4836/2612/1149 -f 4853/2644/1154 4824/2645/1134 4854/2646/1155 -f 4811/2647/1156 4617/2477/1157 4618/2648/986 -f 4615/2649/984 4811/2647/1156 4618/2648/986 -f 4811/2647/1156 4706/2474/984 4687/2650/1158 -f 4853/2644/1154 4855/2651/982 4828/2652/1159 -f 4822/2592/1132 4853/2644/1154 4828/2652/1159 -f 4856/2653/979 4827/2597/1137 4857/2654/1160 -f 4827/2597/1137 4820/2590/1130 4857/2654/1160 -f 4858/2655/1161 4853/2644/1154 4854/2656/1155 -f 4858/2655/1161 4859/2657/1162 4853/2644/1154 -f 4858/2655/1161 4860/2658/1163 4859/2657/1162 -f 4861/2659/1164 4859/2657/1162 4860/2658/1163 -f 4830/2660/1054 4840/2619/1153 4839/2617/1152 -f 4825/2661/979 4839/2617/1152 4838/2615/1151 -f 4826/2662/1052 4838/2615/1151 4837/2613/1150 -f 4835/2610/1148 4823/2663/989 4836/2612/1149 -f 4858/2664/982 4834/2608/1147 4833/2606/1145 -f 4860/2665/1059 4833/2606/1145 4683/2309/1144 -f 4861/2666/976 4683/2309/1144 4685/2311/976 -f 4856/2667/971 4828/2598/1138 4855/2668/971 -f 4823/2663/989 4837/2613/1150 4836/2612/1149 -f 4854/2669/1050 4835/2610/1148 4834/2608/1147 -f 4862/2670/979 4863/2671/983 4864/2672/983 -f 4865/2673/1165 4866/2674/980 4867/2675/980 -f 4868/2676/982 4869/2677/981 4870/2678/981 -f 4871/2679/1166 4872/2680/991 4873/2681/991 -f 4864/2672/983 4874/2682/1167 4875/2683/1167 -f 4867/2675/980 4876/2684/979 4862/2670/979 -f 4870/2678/981 4877/2685/1168 4878/2686/1168 -f 4873/2681/991 4879/2687/982 4868/2676/982 -f 4880/2688/1169 4881/2689/1170 4882/2690/1170 -f 4883/2691/1171 4880/2688/1169 4884/2692/1171 -f 4885/2693/1172 4883/2691/1171 4884/2692/1171 -f 4886/2694/1173 4887/2695/1174 4888/2696/1174 -f 4889/2697/1175 4886/2694/1173 4890/2698/1175 -f 4891/2699/1176 4889/2697/1175 4890/2698/1175 -f 4708/2338/977 4636/2333/977 4634/2260/978 -f 4627/2253/979 4712/2342/979 4710/2340/980 -f 4605/2231/981 4713/2343/981 4711/2341/982 -f 4630/2256/983 4714/2344/983 4712/2342/979 -f 4614/2240/984 4715/2345/984 4713/2343/981 -f 4629/2255/985 4716/2346/985 4714/2344/983 -f 4616/2242/986 4717/2347/986 4715/2345/984 -f 4637/2263/987 4718/2348/987 4716/2346/985 -f 4620/2246/988 4719/2350/988 4717/2347/986 -f 4718/2348/987 4637/2263/987 4636/2262/977 -f 4622/2248/989 4720/2351/989 4719/2350/988 -f 4601/2227/976 4721/2352/976 4709/2339/978 -f 4621/2247/990 4722/2353/990 4720/2351/989 -f 4607/2233/991 4723/2354/991 4721/2352/976 -f 4625/2251/980 4710/2340/980 4722/2353/990 -f 4603/2229/982 4711/2341/982 4723/2354/991 -f 4714/2344/992 4725/2399/996 4724/2355/993 -f 4716/2346/995 4726/2373/998 4725/2356/996 -f 4718/2348/997 4727/2376/1000 4726/2357/998 -f 4708/2349/999 4728/2382/1002 4727/2358/1000 -f 4709/2339/1001 4729/2380/1004 4728/2359/1002 -f 4721/2352/1003 4730/2386/1006 4729/2360/1004 -f 4723/2354/1005 4731/2390/1008 4730/2361/1006 -f 4711/2341/1007 4733/2394/1010 4731/2362/1008 -f 4711/2341/1007 4713/2343/1012 4732/2363/1009 -f 4715/2345/1011 4735/2401/1014 4732/2365/1009 -f 4715/2345/1011 4717/2347/1016 4734/2366/1013 -f 4719/2350/1015 4736/2378/1018 4734/2368/1013 -f 4720/2351/1017 4737/2384/1020 4736/2369/1018 -f 4722/2353/1019 4738/2388/1022 4737/2370/1020 -f 4710/2340/1021 4739/2392/1023 4738/2371/1022 -f 4712/2342/994 4724/2396/993 4739/2372/1023 -f 4646/2403/1024 4645/2406/1027 4741/2404/1025 -f 4645/2406/1027 4647/2409/1029 4743/2407/1028 -f 4647/2409/1029 4644/2412/1031 4744/2410/1030 -f 4644/2412/1031 4648/2416/1034 4745/2413/1032 -f 4707/2415/1033 4745/2700/1032 4648/2416/1034 -f 4643/2418/1036 4646/2403/1024 4742/2419/1026 -f 4641/2421/1038 4643/2418/1036 4746/2422/1037 -f 4748/2424/1040 4642/2701/1177 4641/2421/1038 -f 4748/2424/1040 4747/2425/1039 4749/2426/1041 -f 4746/2422/1037 4751/2702/1043 4749/2428/1041 -f 4742/2419/1026 4612/2703/1178 4751/2429/1043 -f 4743/2407/1028 4611/2704/1045 4613/2430/1044 -f 4613/2431/1044 4612/2705/1178 4742/2405/1026 -f 4744/2410/1030 4752/2706/1046 4611/2432/1045 -f 4745/2413/1032 4753/2707/1047 4752/2433/1046 -f 4753/2434/1047 4745/2700/1032 4707/2415/1033 -f 4755/2436/984 4764/2459/1063 4756/2437/1049 -f 4754/2438/1050 4756/2437/1049 4757/2439/1051 -f 4750/2441/1057 4608/2234/1056 4610/2236/990 -f 4612/2443/987 4763/2454/1062 4759/2444/1053 -f 4751/2445/1054 4759/2444/1053 4760/2446/1055 -f 4749/2447/979 4760/2446/1055 4608/2234/1056 -f 4753/2440/982 4757/2439/1051 4761/2448/1058 -f 4752/2449/1059 4761/2448/1058 4762/2450/1060 -f 4632/2464/985 4680/2462/985 4748/2461/1064 -f 4602/2468/976 4633/2467/978 4707/2335/974 -f 4677/2469/991 4600/2471/991 4602/2468/976 -f 4676/2470/982 4606/2473/982 4600/2471/991 -f 4678/2472/981 4604/2475/981 4606/2473/982 -f 4706/2474/984 4615/2649/984 4604/2475/981 -f 4765/2478/1069 4638/2481/990 4624/2479/990 -f 4640/2482/980 4623/2484/980 4624/2479/990 -f 4674/2483/979 4626/2486/979 4623/2484/980 -f 4675/2485/983 4628/2487/983 4626/2486/979 -f 4680/2462/985 4632/2464/985 4628/2487/983 -f 4766/2488/1071 4658/2708/1071 4651/2489/1072 -f 4657/2491/1073 4656/2498/1074 4768/2492/1074 -f 4653/2494/1075 4655/2497/1076 4770/2495/1076 -f 4655/2497/1076 4657/2491/1073 4769/2493/1073 -f 4656/2498/1074 4658/2708/1071 4766/2488/1071 -f 4772/2499/979 4668/2521/979 4670/2500/1054 -f 4774/2502/988 4665/2522/988 4667/2503/1077 -f 4776/2505/982 4671/2523/982 4673/2506/1050 -f 4773/2501/1054 4670/2500/1054 4663/2508/1078 -f 4779/2510/977 4662/2709/977 4664/2511/1079 -f 4775/2504/1077 4667/2503/1077 4669/2513/1052 -f 4777/2507/1050 4673/2506/1050 4666/2515/1080 -f 4778/2509/1078 4663/2508/1078 4662/2517/977 -f 4780/2512/1079 4664/2511/1079 4672/2519/1059 -f 4781/2514/1052 4669/2513/1052 4668/2521/979 -f 4782/2516/1080 4666/2515/1080 4665/2522/988 -f 4783/2520/1059 4672/2519/1059 4671/2523/982 -f 4772/2499/1081 4773/2501/1082 4784/2524/1082 -f 4773/2501/1082 4778/2509/1083 4786/2526/1083 -f 4778/2509/1083 4779/2518/1084 4787/2527/1084 -f 4779/2510/1084 4780/2512/1085 4788/2528/1085 -f 4780/2512/1085 4783/2520/1086 4789/2530/1086 -f 4783/2520/1086 4776/2505/1087 4790/2531/1087 -f 4776/2505/1087 4777/2507/1088 4791/2532/1088 -f 4777/2507/1088 4782/2516/1089 4792/2533/1089 -f 4782/2516/1089 4774/2502/1090 4793/2534/1090 -f 4793/2534/1090 4774/2502/1090 4775/2504/1091 -f 4775/2504/1091 4781/2514/1092 4795/2536/1092 -f 4781/2514/1092 4772/2499/1081 4785/2525/1081 -f 4651/2489/1072 4650/2710/1093 4796/2537/1093 -f 4650/2538/1093 4652/2541/1094 4797/2539/1094 -f 4652/2541/1094 4660/2543/1095 4798/2542/1095 -f 4660/2543/1095 4659/2545/1096 4799/2544/1096 -f 4659/2545/1096 4661/2547/1097 4800/2546/1097 -f 4661/2547/1097 4654/2549/1098 4801/2548/1098 -f 4654/2549/1098 4653/2494/1075 4771/2496/1075 -f 4802/2554/1100 4682/2308/1099 4681/2307/1102 -f 4763/2454/1062 4612/2443/987 4611/2451/978 -f 4691/2557/1105 4690/2560/1108 4804/2558/1106 -f 4690/2560/1108 4692/2563/1110 4806/2561/1109 -f 4692/2563/1110 4689/2566/1112 4807/2564/1111 -f 4689/2566/1112 4693/2570/1115 4808/2567/1113 -f 4765/2569/1114 4808/2711/1113 4693/2570/1115 -f 4688/2572/1117 4691/2557/1105 4805/2573/1107 -f 4686/2575/1119 4688/2572/1117 4809/2576/1118 -f 4811/2578/1121 4687/2712/1179 4686/2575/1119 -f 4811/2578/1121 4810/2579/1120 4812/2580/1122 -f 4809/2576/1118 4814/2713/1124 4812/2582/1122 -f 4805/2573/1107 4892/2714/1180 4814/2583/1124 -f 4806/2561/1109 4816/2715/1126 4815/2584/1125 -f 4815/2585/1125 4892/2716/1180 4805/2559/1107 -f 4807/2564/1111 4817/2717/1127 4816/2586/1126 -f 4808/2567/1113 4818/2718/1128 4817/2587/1127 -f 4818/2588/1128 4808/2711/1113 4765/2569/1114 -f 4820/2590/1130 4832/2605/1143 4821/2591/1131 -f 4821/2591/1131 4832/2605/1143 4823/2593/1133 -f 4828/2598/1138 4857/2719/1138 4820/2599/1139 -f 4827/2597/1137 4826/2720/1136 4823/2604/1133 -f 4841/2621/1097 4702/2721/1097 4695/2622/1098 -f 4843/2624/1095 4701/2722/1095 4700/2625/1096 -f 4697/2627/1093 4699/2630/1094 4845/2628/1094 -f 4699/2630/1094 4701/2722/1095 4843/2624/1095 -f 4700/2625/1096 4702/2721/1097 4841/2621/1097 -f 4695/2622/1098 4694/2632/1075 4847/2631/1075 -f 4694/2632/1075 4696/2634/1076 4848/2633/1076 -f 4696/2634/1076 4704/2723/1073 4849/2635/1073 -f 4849/2635/1073 4704/2723/1073 4703/2636/1074 -f 4703/2636/1074 4705/2639/1071 4851/2638/1071 -f 4705/2639/1071 4698/2641/1072 4852/2640/1072 -f 4698/2641/1072 4697/2724/1093 4846/2642/1093 -f 4853/2644/1154 4821/2591/1131 4824/2645/1134 -f 4615/2649/984 4706/2474/984 4811/2647/1156 -f 4853/2644/1154 4859/2657/1162 4855/2651/982 -f 4822/2592/1132 4821/2591/1131 4853/2644/1154 -f 4856/2653/979 4829/2601/1140 4827/2597/1137 -f 4827/2597/1137 4832/2605/1143 4820/2590/1130 -f 4830/2660/1054 4831/2725/985 4840/2619/1153 -f 4825/2661/979 4830/2660/1054 4839/2617/1152 -f 4826/2662/1052 4825/2661/979 4838/2615/1151 -f 4835/2610/1148 4824/2726/986 4823/2663/989 -f 4858/2664/982 4854/2669/1050 4834/2608/1147 -f 4860/2665/1059 4858/2664/982 4833/2606/1145 -f 4861/2666/976 4860/2665/1059 4683/2309/1144 -f 4856/2667/971 4857/2719/1138 4828/2598/1138 -f 4823/2663/989 4826/2662/1052 4837/2613/1150 -f 4854/2669/1050 4824/2726/986 4835/2610/1148 -f 4862/2670/979 4876/2684/979 4863/2671/983 -f 4865/2673/1165 4893/2727/1165 4866/2674/980 -f 4868/2676/982 4879/2687/982 4869/2677/981 -f 4871/2679/1166 4894/2728/1166 4872/2680/991 -f 4864/2672/983 4863/2671/983 4874/2682/1167 -f 4867/2675/980 4866/2674/980 4876/2684/979 -f 4870/2678/981 4869/2677/981 4877/2685/1168 -f 4873/2681/991 4872/2680/991 4879/2687/982 -f 4880/2688/1169 4895/2729/1169 4881/2689/1170 -f 4883/2691/1171 4895/2729/1169 4880/2688/1169 -f 4885/2693/1172 4896/2730/1172 4883/2691/1171 -f 4886/2694/1173 4897/2731/1173 4887/2695/1174 -f 4889/2697/1175 4897/2731/1173 4886/2694/1173 -f 4891/2699/1176 4898/2732/1176 4889/2697/1175 -l 4900 4819 -l 4813 4899 +f 4779/3327/974 4721/3328/975 4751/3329/976 +f 4780/3330/977 4706/3252/978 4781/3331/978 +f 4699/3245/979 4782/3332/980 4697/3243/980 +f 4677/3223/981 4783/3333/982 4675/3221/982 +f 4702/3248/983 4784/3334/979 4699/3245/979 +f 4686/3232/984 4785/3335/981 4677/3223/981 +f 4701/3247/985 4786/3336/983 4702/3248/983 +f 4688/3234/986 4787/3337/984 4686/3232/984 +f 4709/3255/987 4788/3338/985 4701/3247/985 +f 4692/3238/988 4789/3339/986 4688/3234/986 +f 4790/3340/987 4708/3254/977 4780/3341/977 +f 4694/3240/989 4791/3342/988 4692/3238/988 +f 4673/3219/976 4781/3331/978 4706/3252/978 +f 4693/3239/990 4792/3343/989 4694/3240/989 +f 4679/3225/991 4793/3344/976 4673/3219/976 +f 4697/3243/980 4794/3345/990 4693/3239/990 +f 4675/3221/982 4795/3346/991 4679/3225/991 +f 4786/3336/992 4796/3347/993 4784/3334/994 +f 4788/3338/995 4797/3348/996 4786/3336/992 +f 4790/3340/997 4798/3349/998 4788/3338/995 +f 4780/3341/999 4799/3350/1000 4790/3340/997 +f 4781/3331/1001 4800/3351/1002 4780/3330/999 +f 4793/3344/1003 4801/3352/1004 4781/3331/1001 +f 4795/3346/1005 4802/3353/1006 4793/3344/1003 +f 4783/3333/1007 4803/3354/1008 4795/3346/1005 +f 4783/3333/1007 4804/3355/1009 4805/3356/1010 +f 4787/3337/1011 4804/3357/1009 4785/3335/1012 +f 4787/3337/1011 4806/3358/1013 4807/3359/1014 +f 4791/3342/1015 4806/3360/1013 4789/3339/1016 +f 4792/3343/1017 4808/3361/1018 4791/3342/1015 +f 4794/3345/1019 4809/3362/1020 4792/3343/1017 +f 4782/3332/1021 4810/3363/1022 4794/3345/1019 +f 4784/3334/994 4811/3364/1023 4782/3332/1021 +f 4797/3348/996 4798/3365/998 4812/3366/969 +f 4807/3359/1014 4806/3358/1013 4812/3367/969 +f 4798/3349/998 4799/3368/1000 4812/3369/969 +f 4806/3360/1013 4808/3370/1018 4812/3371/969 +f 4800/3351/1002 4801/3372/1004 4812/3373/969 +f 4799/3350/1000 4800/3374/1002 4812/3375/969 +f 4808/3361/1018 4809/3376/1020 4812/3377/969 +f 4801/3352/1004 4802/3378/1006 4812/3379/969 +f 4809/3362/1020 4810/3380/1022 4812/3381/969 +f 4802/3353/1006 4803/3382/1008 4812/3383/969 +f 4810/3363/1022 4811/3384/1023 4812/3385/969 +f 4803/3354/1008 4805/3386/1010 4812/3387/969 +f 4811/3364/1023 4796/3388/993 4812/3389/969 +f 4805/3356/1010 4804/3355/1009 4812/3390/969 +f 4796/3347/993 4797/3391/996 4812/3392/969 +f 4804/3357/1009 4807/3393/1014 4812/3394/969 +f 4718/3395/1024 4813/3396/1025 4814/3397/1026 +f 4717/3398/1027 4815/3399/1028 4813/3400/1025 +f 4719/3401/1029 4816/3402/1030 4815/3403/1028 +f 4716/3404/1031 4817/3405/1032 4816/3406/1030 +f 4779/3407/1033 4720/3408/1034 4721/3409/1035 +f 4715/3410/1036 4814/3411/1026 4818/3412/1037 +f 4713/3413/1038 4818/3414/1037 4819/3415/1039 +f 4820/3416/1040 4713/3413/1038 4819/3417/1039 +f 4820/3416/1040 4821/3418/1041 4822/3419/1042 +f 4818/3414/1037 4821/3420/1041 4819/3415/1039 +f 4814/3411/1026 4823/3421/1043 4818/3412/1037 +f 4815/3399/1028 4685/3422/1044 4813/3400/1025 +f 4685/3423/1044 4814/3397/1026 4813/3396/1025 +f 4816/3402/1030 4683/3424/1045 4815/3403/1028 +f 4817/3405/1032 4824/3425/1046 4816/3406/1030 +f 4825/3426/1047 4779/3407/1033 4826/3427/1048 +f 4827/3428/984 4828/3429/1049 4826/3430/1050 +f 4826/3430/1050 4829/3431/1051 4825/3432/982 +f 4822/3433/1052 4682/3228/990 4830/3434/990 +f 4684/3435/987 4831/3436/1053 4823/3437/1054 +f 4823/3437/1054 4832/3438/1055 4821/3439/979 +f 4821/3439/979 4680/3226/1056 4822/3433/1057 +f 4825/3432/982 4833/3440/1058 4824/3441/1059 +f 4824/3441/1059 4834/3442/1060 4683/3443/978 +f 4680/3226/1056 4832/3438/1055 4681/3444/1061 +f 4832/3438/1055 4831/3436/1053 4681/3445/1061 +f 4831/3436/1053 4835/3446/1062 4681/3447/1061 +f 4834/3442/1060 4833/3440/1058 4681/3448/1061 +f 4833/3440/1058 4829/3431/1051 4681/3449/1061 +f 4829/3431/1051 4828/3429/1049 4681/3450/1061 +f 4828/3429/1049 4836/3451/1063 4681/3452/1061 +f 4820/3453/1064 4752/3454/985 4714/3455/1065 +f 4704/3456/985 4820/3453/1064 4703/3457/987 +f 4703/3457/987 4820/3453/1064 4707/3458/1066 +f 4707/3253/1067 4779/3327/974 4705/3459/978 +f 4674/3460/976 4779/3327/974 4751/3329/976 +f 4749/3461/991 4674/3460/976 4751/3329/976 +f 4748/3462/982 4672/3463/991 4749/3461/991 +f 4750/3464/981 4678/3465/982 4748/3462/982 +f 4778/3466/984 4676/3467/981 4750/3464/981 +f 4691/3468/989 4689/3469/1068 4837/3470/1069 +f 4837/3470/1069 4696/3471/990 4691/3468/989 +f 4837/3470/1069 4711/3472/1070 4710/3473/990 +f 4712/3474/980 4696/3471/990 4710/3473/990 +f 4746/3475/979 4695/3476/980 4712/3474/980 +f 4747/3477/983 4698/3478/979 4746/3475/979 +f 4752/3454/985 4700/3479/983 4747/3477/983 +f 4838/3480/1071 4723/3481/1072 4839/3482/1072 +f 4729/3483/1073 4840/3484/1074 4841/3485/1073 +f 4725/3486/1075 4842/3487/1076 4843/3488/1075 +f 4727/3489/1076 4841/3485/1073 4842/3487/1076 +f 4728/3490/1074 4838/3480/1071 4840/3484/1074 +f 4844/3491/979 4742/3492/1054 4845/3493/1054 +f 4846/3494/988 4739/3495/1077 4847/3496/1077 +f 4848/3497/982 4745/3498/1050 4849/3499/1050 +f 4845/3493/1054 4735/3500/1078 4850/3501/1078 +f 4851/3502/977 4736/3503/1079 4852/3504/1079 +f 4847/3496/1077 4741/3505/1052 4853/3506/1052 +f 4849/3499/1050 4738/3507/1080 4854/3508/1080 +f 4850/3501/1078 4734/3509/977 4851/3510/977 +f 4852/3504/1079 4744/3511/1059 4855/3512/1059 +f 4853/3506/1052 4740/3513/979 4844/3491/979 +f 4854/3508/1080 4737/3514/988 4846/3494/988 +f 4855/3512/1059 4743/3515/982 4848/3497/982 +f 4844/3491/1081 4856/3516/1082 4857/3517/1081 +f 4845/3493/1082 4858/3518/1083 4856/3516/1082 +f 4850/3501/1083 4859/3519/1084 4858/3518/1083 +f 4851/3502/1084 4860/3520/1085 4859/3521/1084 +f 4852/3504/1085 4861/3522/1086 4860/3520/1085 +f 4855/3512/1086 4862/3523/1087 4861/3522/1086 +f 4848/3497/1087 4863/3524/1088 4862/3523/1087 +f 4849/3499/1088 4864/3525/1089 4863/3524/1088 +f 4854/3508/1089 4865/3526/1090 4864/3525/1089 +f 4865/3526/1090 4847/3496/1091 4866/3527/1091 +f 4847/3496/1091 4867/3528/1092 4866/3527/1091 +f 4853/3506/1092 4857/3517/1081 4867/3528/1092 +f 4723/3481/1072 4868/3529/1093 4839/3482/1072 +f 4722/3530/1093 4869/3531/1094 4868/3532/1093 +f 4724/3533/1094 4870/3534/1095 4869/3531/1094 +f 4732/3535/1095 4871/3536/1096 4870/3534/1095 +f 4731/3537/1096 4872/3538/1097 4871/3536/1096 +f 4733/3539/1097 4873/3540/1098 4872/3538/1097 +f 4726/3541/1098 4843/3488/1075 4873/3540/1098 +f 4754/3300/1099 4874/3542/1100 4684/3543/1101 +f 4753/3299/1102 4683/3544/1103 4875/3545/1104 +f 4874/3546/1100 4753/3299/1102 4875/3547/1104 +f 4681/3548/1061 4835/3446/1062 4834/3442/1060 +f 4835/3446/1062 4683/3443/978 4834/3442/1060 +f 4763/3549/1105 4876/3550/1106 4877/3551/1107 +f 4762/3552/1108 4878/3553/1109 4876/3554/1106 +f 4764/3555/1110 4879/3556/1111 4878/3557/1109 +f 4761/3558/1112 4880/3559/1113 4879/3560/1111 +f 4837/3561/1114 4765/3562/1115 4711/3563/1116 +f 4760/3564/1117 4877/3565/1107 4881/3566/1118 +f 4758/3567/1119 4881/3568/1118 4882/3569/1120 +f 4883/3570/1121 4758/3567/1119 4882/3571/1120 +f 4883/3570/1121 4884/3572/1122 4885/3573/1123 +f 4881/3568/1118 4884/3574/1122 4882/3569/1120 +f 4877/3565/1107 4886/3575/1124 4881/3566/1118 +f 4878/3553/1109 4887/3576/1125 4876/3554/1106 +f 4887/3577/1125 4877/3551/1107 4876/3550/1106 +f 4879/3556/1111 4888/3578/1126 4878/3557/1109 +f 4880/3559/1113 4889/3579/1127 4879/3560/1111 +f 4890/3580/1128 4837/3561/1114 4891/3581/1129 +f 4892/3582/1130 4893/3583/1131 4894/3584/1132 +f 4893/3583/1131 4895/3585/1133 4896/3586/1134 +f 4897/3587/1135 4898/3588/1136 4899/3589/1137 +f 4900/3590/1138 4892/3591/1139 4894/3592/1139 +f 4897/3587/1135 4901/3593/1140 4902/3594/1141 +f 4903/3595/1142 4902/3594/1141 4901/3593/1140 +f 4899/3589/1137 4895/3596/1133 4904/3597/1143 +f 4901/3593/1140 4897/3587/1135 4899/3589/1137 +f 4755/3301/1144 4905/3598/1145 4756/3599/1146 +f 4905/3598/1145 4906/3600/1147 4756/3601/1146 +f 4906/3600/1147 4907/3602/1148 4756/3603/1146 +f 4908/3604/1149 4909/3605/1150 4756/3606/1146 +f 4909/3605/1150 4910/3607/1151 4756/3608/1146 +f 4910/3607/1151 4911/3609/1152 4756/3610/1146 +f 4911/3609/1152 4912/3611/1153 4756/3612/1146 +f 4913/3613/1097 4767/3614/1098 4914/3615/1098 +f 4915/3616/1095 4772/3617/1096 4916/3618/1096 +f 4769/3619/1093 4917/3620/1094 4918/3621/1093 +f 4771/3622/1094 4915/3616/1095 4917/3620/1094 +f 4772/3617/1096 4913/3613/1097 4916/3618/1096 +f 4767/3614/1098 4919/3623/1075 4914/3615/1098 +f 4766/3624/1075 4920/3625/1076 4919/3623/1075 +f 4768/3626/1076 4921/3627/1073 4920/3625/1076 +f 4921/3627/1073 4775/3628/1074 4922/3629/1074 +f 4775/3628/1074 4923/3630/1071 4922/3629/1074 +f 4777/3631/1071 4924/3632/1072 4923/3630/1071 +f 4770/3633/1072 4918/3634/1093 4924/3632/1072 +f 4756/3635/1146 4907/3602/1148 4908/3604/1149 +f 4925/3636/1154 4896/3637/1134 4926/3638/1155 +f 4883/3639/1156 4689/3469/1157 4690/3640/986 +f 4687/3641/984 4883/3639/1156 4690/3640/986 +f 4883/3639/1156 4778/3466/984 4759/3642/1158 +f 4925/3636/1154 4927/3643/982 4900/3644/1159 +f 4894/3584/1132 4925/3636/1154 4900/3644/1159 +f 4928/3645/979 4899/3589/1137 4929/3646/1160 +f 4899/3589/1137 4892/3582/1130 4929/3646/1160 +f 4930/3647/1161 4925/3636/1154 4926/3648/1155 +f 4930/3647/1161 4931/3649/1162 4925/3636/1154 +f 4930/3647/1161 4932/3650/1163 4931/3649/1162 +f 4933/3651/1164 4931/3649/1162 4932/3650/1163 +f 4902/3652/1054 4912/3611/1153 4911/3609/1152 +f 4897/3653/979 4911/3609/1152 4910/3607/1151 +f 4898/3654/1052 4910/3607/1151 4909/3605/1150 +f 4907/3602/1148 4895/3655/989 4908/3604/1149 +f 4930/3656/982 4906/3600/1147 4905/3598/1145 +f 4932/3657/1059 4905/3598/1145 4755/3301/1144 +f 4933/3658/976 4755/3301/1144 4757/3303/976 +f 4928/3659/971 4900/3590/1138 4927/3660/971 +f 4895/3655/989 4909/3605/1150 4908/3604/1149 +f 4926/3661/1050 4907/3602/1148 4906/3600/1147 +f 4934/3662/979 4935/3663/983 4936/3664/983 +f 4937/3665/1165 4938/3666/980 4939/3667/980 +f 4940/3668/982 4941/3669/981 4942/3670/981 +f 4943/3671/1166 4944/3672/991 4945/3673/991 +f 4936/3664/983 4946/3674/1167 4947/3675/1167 +f 4939/3667/980 4948/3676/979 4934/3662/979 +f 4942/3670/981 4949/3677/1168 4950/3678/1168 +f 4945/3673/991 4951/3679/982 4940/3668/982 +f 4952/3680/1169 4953/3681/1170 4954/3682/1170 +f 4955/3683/1171 4952/3680/1169 4956/3684/1171 +f 4957/3685/1172 4955/3683/1171 4956/3684/1171 +f 4958/3686/1173 4959/3687/1174 4960/3688/1174 +f 4961/3689/1175 4958/3686/1173 4962/3690/1175 +f 4963/3691/1176 4961/3689/1175 4962/3690/1175 +f 4780/3330/977 4708/3325/977 4706/3252/978 +f 4699/3245/979 4784/3334/979 4782/3332/980 +f 4677/3223/981 4785/3335/981 4783/3333/982 +f 4702/3248/983 4786/3336/983 4784/3334/979 +f 4686/3232/984 4787/3337/984 4785/3335/981 +f 4701/3247/985 4788/3338/985 4786/3336/983 +f 4688/3234/986 4789/3339/986 4787/3337/984 +f 4709/3255/987 4790/3340/987 4788/3338/985 +f 4692/3238/988 4791/3342/988 4789/3339/986 +f 4790/3340/987 4709/3255/987 4708/3254/977 +f 4694/3240/989 4792/3343/989 4791/3342/988 +f 4673/3219/976 4793/3344/976 4781/3331/978 +f 4693/3239/990 4794/3345/990 4792/3343/989 +f 4679/3225/991 4795/3346/991 4793/3344/976 +f 4697/3243/980 4782/3332/980 4794/3345/990 +f 4675/3221/982 4783/3333/982 4795/3346/991 +f 4786/3336/992 4797/3391/996 4796/3347/993 +f 4788/3338/995 4798/3365/998 4797/3348/996 +f 4790/3340/997 4799/3368/1000 4798/3349/998 +f 4780/3341/999 4800/3374/1002 4799/3350/1000 +f 4781/3331/1001 4801/3372/1004 4800/3351/1002 +f 4793/3344/1003 4802/3378/1006 4801/3352/1004 +f 4795/3346/1005 4803/3382/1008 4802/3353/1006 +f 4783/3333/1007 4805/3386/1010 4803/3354/1008 +f 4783/3333/1007 4785/3335/1012 4804/3355/1009 +f 4787/3337/1011 4807/3393/1014 4804/3357/1009 +f 4787/3337/1011 4789/3339/1016 4806/3358/1013 +f 4791/3342/1015 4808/3370/1018 4806/3360/1013 +f 4792/3343/1017 4809/3376/1020 4808/3361/1018 +f 4794/3345/1019 4810/3380/1022 4809/3362/1020 +f 4782/3332/1021 4811/3384/1023 4810/3363/1022 +f 4784/3334/994 4796/3388/993 4811/3364/1023 +f 4718/3395/1024 4717/3398/1027 4813/3396/1025 +f 4717/3398/1027 4719/3401/1029 4815/3399/1028 +f 4719/3401/1029 4716/3404/1031 4816/3402/1030 +f 4716/3404/1031 4720/3408/1034 4817/3405/1032 +f 4779/3407/1033 4817/3692/1032 4720/3408/1034 +f 4715/3410/1036 4718/3395/1024 4814/3411/1026 +f 4713/3413/1038 4715/3410/1036 4818/3414/1037 +f 4820/3416/1040 4714/3693/1177 4713/3413/1038 +f 4820/3416/1040 4819/3417/1039 4821/3418/1041 +f 4818/3414/1037 4823/3694/1043 4821/3420/1041 +f 4814/3411/1026 4684/3695/1178 4823/3421/1043 +f 4815/3399/1028 4683/3696/1045 4685/3422/1044 +f 4685/3423/1044 4684/3697/1178 4814/3397/1026 +f 4816/3402/1030 4824/3698/1046 4683/3424/1045 +f 4817/3405/1032 4825/3699/1047 4824/3425/1046 +f 4825/3426/1047 4817/3692/1032 4779/3407/1033 +f 4827/3428/984 4836/3451/1063 4828/3429/1049 +f 4826/3430/1050 4828/3429/1049 4829/3431/1051 +f 4822/3433/1057 4680/3226/1056 4682/3228/990 +f 4684/3435/987 4835/3446/1062 4831/3436/1053 +f 4823/3437/1054 4831/3436/1053 4832/3438/1055 +f 4821/3439/979 4832/3438/1055 4680/3226/1056 +f 4825/3432/982 4829/3431/1051 4833/3440/1058 +f 4824/3441/1059 4833/3440/1058 4834/3442/1060 +f 4704/3456/985 4752/3454/985 4820/3453/1064 +f 4674/3460/976 4705/3459/978 4779/3327/974 +f 4749/3461/991 4672/3463/991 4674/3460/976 +f 4748/3462/982 4678/3465/982 4672/3463/991 +f 4750/3464/981 4676/3467/981 4678/3465/982 +f 4778/3466/984 4687/3641/984 4676/3467/981 +f 4837/3470/1069 4710/3473/990 4696/3471/990 +f 4712/3474/980 4695/3476/980 4696/3471/990 +f 4746/3475/979 4698/3478/979 4695/3476/980 +f 4747/3477/983 4700/3479/983 4698/3478/979 +f 4752/3454/985 4704/3456/985 4700/3479/983 +f 4838/3480/1071 4730/3700/1071 4723/3481/1072 +f 4729/3483/1073 4728/3490/1074 4840/3484/1074 +f 4725/3486/1075 4727/3489/1076 4842/3487/1076 +f 4727/3489/1076 4729/3483/1073 4841/3485/1073 +f 4728/3490/1074 4730/3700/1071 4838/3480/1071 +f 4844/3491/979 4740/3513/979 4742/3492/1054 +f 4846/3494/988 4737/3514/988 4739/3495/1077 +f 4848/3497/982 4743/3515/982 4745/3498/1050 +f 4845/3493/1054 4742/3492/1054 4735/3500/1078 +f 4851/3502/977 4734/3701/977 4736/3503/1079 +f 4847/3496/1077 4739/3495/1077 4741/3505/1052 +f 4849/3499/1050 4745/3498/1050 4738/3507/1080 +f 4850/3501/1078 4735/3500/1078 4734/3509/977 +f 4852/3504/1079 4736/3503/1079 4744/3511/1059 +f 4853/3506/1052 4741/3505/1052 4740/3513/979 +f 4854/3508/1080 4738/3507/1080 4737/3514/988 +f 4855/3512/1059 4744/3511/1059 4743/3515/982 +f 4844/3491/1081 4845/3493/1082 4856/3516/1082 +f 4845/3493/1082 4850/3501/1083 4858/3518/1083 +f 4850/3501/1083 4851/3510/1084 4859/3519/1084 +f 4851/3502/1084 4852/3504/1085 4860/3520/1085 +f 4852/3504/1085 4855/3512/1086 4861/3522/1086 +f 4855/3512/1086 4848/3497/1087 4862/3523/1087 +f 4848/3497/1087 4849/3499/1088 4863/3524/1088 +f 4849/3499/1088 4854/3508/1089 4864/3525/1089 +f 4854/3508/1089 4846/3494/1090 4865/3526/1090 +f 4865/3526/1090 4846/3494/1090 4847/3496/1091 +f 4847/3496/1091 4853/3506/1092 4867/3528/1092 +f 4853/3506/1092 4844/3491/1081 4857/3517/1081 +f 4723/3481/1072 4722/3702/1093 4868/3529/1093 +f 4722/3530/1093 4724/3533/1094 4869/3531/1094 +f 4724/3533/1094 4732/3535/1095 4870/3534/1095 +f 4732/3535/1095 4731/3537/1096 4871/3536/1096 +f 4731/3537/1096 4733/3539/1097 4872/3538/1097 +f 4733/3539/1097 4726/3541/1098 4873/3540/1098 +f 4726/3541/1098 4725/3486/1075 4843/3488/1075 +f 4874/3546/1100 4754/3300/1099 4753/3299/1102 +f 4835/3446/1062 4684/3435/987 4683/3443/978 +f 4763/3549/1105 4762/3552/1108 4876/3550/1106 +f 4762/3552/1108 4764/3555/1110 4878/3553/1109 +f 4764/3555/1110 4761/3558/1112 4879/3556/1111 +f 4761/3558/1112 4765/3562/1115 4880/3559/1113 +f 4837/3561/1114 4880/3703/1113 4765/3562/1115 +f 4760/3564/1117 4763/3549/1105 4877/3565/1107 +f 4758/3567/1119 4760/3564/1117 4881/3568/1118 +f 4883/3570/1121 4759/3704/1179 4758/3567/1119 +f 4883/3570/1121 4882/3571/1120 4884/3572/1122 +f 4881/3568/1118 4886/3705/1124 4884/3574/1122 +f 4877/3565/1107 4964/3706/1180 4886/3575/1124 +f 4878/3553/1109 4888/3707/1126 4887/3576/1125 +f 4887/3577/1125 4964/3708/1180 4877/3551/1107 +f 4879/3556/1111 4889/3709/1127 4888/3578/1126 +f 4880/3559/1113 4890/3710/1128 4889/3579/1127 +f 4890/3580/1128 4880/3703/1113 4837/3561/1114 +f 4892/3582/1130 4904/3597/1143 4893/3583/1131 +f 4893/3583/1131 4904/3597/1143 4895/3585/1133 +f 4900/3590/1138 4929/3711/1138 4892/3591/1139 +f 4899/3589/1137 4898/3712/1136 4895/3596/1133 +f 4913/3613/1097 4774/3713/1097 4767/3614/1098 +f 4915/3616/1095 4773/3714/1095 4772/3617/1096 +f 4769/3619/1093 4771/3622/1094 4917/3620/1094 +f 4771/3622/1094 4773/3714/1095 4915/3616/1095 +f 4772/3617/1096 4774/3713/1097 4913/3613/1097 +f 4767/3614/1098 4766/3624/1075 4919/3623/1075 +f 4766/3624/1075 4768/3626/1076 4920/3625/1076 +f 4768/3626/1076 4776/3715/1073 4921/3627/1073 +f 4921/3627/1073 4776/3715/1073 4775/3628/1074 +f 4775/3628/1074 4777/3631/1071 4923/3630/1071 +f 4777/3631/1071 4770/3633/1072 4924/3632/1072 +f 4770/3633/1072 4769/3716/1093 4918/3634/1093 +f 4925/3636/1154 4893/3583/1131 4896/3637/1134 +f 4687/3641/984 4778/3466/984 4883/3639/1156 +f 4925/3636/1154 4931/3649/1162 4927/3643/982 +f 4894/3584/1132 4893/3583/1131 4925/3636/1154 +f 4928/3645/979 4901/3593/1140 4899/3589/1137 +f 4899/3589/1137 4904/3597/1143 4892/3582/1130 +f 4902/3652/1054 4903/3717/985 4912/3611/1153 +f 4897/3653/979 4902/3652/1054 4911/3609/1152 +f 4898/3654/1052 4897/3653/979 4910/3607/1151 +f 4907/3602/1148 4896/3718/986 4895/3655/989 +f 4930/3656/982 4926/3661/1050 4906/3600/1147 +f 4932/3657/1059 4930/3656/982 4905/3598/1145 +f 4933/3658/976 4932/3657/1059 4755/3301/1144 +f 4928/3659/971 4929/3711/1138 4900/3590/1138 +f 4895/3655/989 4898/3654/1052 4909/3605/1150 +f 4926/3661/1050 4896/3718/986 4907/3602/1148 +f 4934/3662/979 4948/3676/979 4935/3663/983 +f 4937/3665/1165 4965/3719/1165 4938/3666/980 +f 4940/3668/982 4951/3679/982 4941/3669/981 +f 4943/3671/1166 4966/3720/1166 4944/3672/991 +f 4936/3664/983 4935/3663/983 4946/3674/1167 +f 4939/3667/980 4938/3666/980 4948/3676/979 +f 4942/3670/981 4941/3669/981 4949/3677/1168 +f 4945/3673/991 4944/3672/991 4951/3679/982 +f 4952/3680/1169 4967/3721/1169 4953/3681/1170 +f 4955/3683/1171 4967/3721/1169 4952/3680/1169 +f 4957/3685/1172 4968/3722/1172 4955/3683/1171 +f 4958/3686/1173 4969/3723/1173 4959/3687/1174 +f 4961/3689/1175 4969/3723/1173 4958/3686/1173 +f 4963/3691/1176 4970/3724/1176 4961/3689/1175 +l 4972 4891 +l 4885 4971 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png index 06cbb8a9f56b2391a96fe8c7615cd219c646969c..d57c5b24327702d40fcfb56d797a97d289c3eff8 100644 GIT binary patch delta 1365 zcmZ8heNYm17)JbJiYI0$Wh&qe8(EmnOV>n2txPRVA;}=WhL!eZnxBDe>NL|d570`j zu9n+W;%N`&=AZ#4v;$tqcV8yJqaO!17$hdm$tSW=i=?r_Y=jYhz z0Kbmr_1HG27D1DMjFH7Z=Yru-XJRIxdJE8KrwK3uWO5e*@<%}Oad5yiQBF0x#HzI{ zt`(-S7M^w`MIZo${s0R)VCx4oZ4;hN8K?UtXDF#)xf1_`YMFXH8~)4TMgbr%&Z*eb zHDGaL0)JZtnuG-ctp3;IW4SKEki0EtxqIl`jbXhDBtN0^QBJzN$kD;ehn=a5XRCwVT?~JsLBv)%bx8F_1na#ob}GNck*55*040Zq$S-! zoW^a*N~|CWli^V0-uceQSMBeRlgGamIGHI?5eRBpDeY8G{f)H=?&#R-G%e{?d$*(A zx;_62_g$3mS;0L=C^9l|mudVgg^X~Q@ejXTWM%!~AyVVV8XzU5t2o;tyb01cuyeE^ z-WOO|Qi1V~Kh2te-CxY3_e*}9-R@E>$orEMMiN(#al)ks3Jsjon{K8kryl5^Z>M(= zG74z{%}u#11uWrdM$;=ydH5Wb86xAU?(*5VV*FEP1EdDzQ+KA1b5zjXj@vN^Or8vT z0S&a)Bx>i;TK|jY_q_KCmkSaY+3*R+4cOcD#7x-=a6zs1lE40)6(G*d$^zvG7iVTf z3zjW=z*luP@3qdLVB5svAS>Uq8I4-nS83mo5yxDSDZ(&wbMr`XhfsJy*UoS`S!?N+ z?lO~i?M@_Oi|6nvIQrVV21q3ZnIawGimJRq>v-|U2kbIO`He$IiCLX8^vd5$R*MgP z^r4*b6i#`W#ikbBi~I>=t!utexBdI*7;&CNg^~l=;kH zcs{3^?NJtwtse=jH$GuU&pN5Ektj1}wWAVd*K+isP+g{Up}>ex1NgGk;tASTbThax zZWrz2+f~p{8JLU3hv;7?*?YtId(i>tK%3vxkaZ`jGg~jD`&k)ta*A)!|X8_zQ*Z2jGC-Jcep+4t;ig zH21IGx+wj@&>e!H-9vT1bwqeMpYo>VtWL>ivdwP1SfcXY%SWmdCMZAIZEP$StEq20 zf5iUagq160&m3+z`qO=Ryq9rV^P*1*O?9AmiTah7kDJwDj_u&#Hl$&aF&j{7f7L)WNr%@W)rPlLKrRn+kTLCv_h@BalZa)rbI delta 1352 zcmaFFbCqX;2_w%$Q}y~YcO2HQH+aG@E0iPU;h)4JHfN_jTr&?Iyp<;SNV-I9Qv3C# zd0SVnUV1(BS6#w{T}$$&vj6?E>sS86sw?ld-TPAYu&;YxD#OYjCw4I(m?FU8peWGb zq`=VXz`)hWAi~6`;s5KKaYyyuLdK1s!{3?yHZ+h7K~_``QN_X(FfXF~!THF&h4yXl zKd(yI&${iHjXH-oe&-A3HhTeI4?ECNQCuiL%-FReo&vg4`AL7N| zpYN3|HfRHT59o|b(#~JrrdMe1etCS`mp`>%Pw&5e>r3swRr9i6noWC}m;LdW!tc8C z4q7frxAtwQ6`zxL+3ftj_Jcb)LptW)ssAMY@%iL^-*vZ}+1#(2uC~75cIKOv~j_(!L8ViL#9+4ouKDOU!Ur zFcSR4s?Kv4z;AR&)*GPpa8R0y?*Xw(g-La9IgeU>cGzS6*YL&PvwC9$Oa8yKshj~T1Wt7Acix=Mo-WQL=*e_D zSh4<^ti+36^OlNNe^uY_$^2g$HWQY3KN}vo^^>RZ)TW+U^>*{!&-U+02~<3_Ne779 zY}mKxFfsNVt(lt1^ZDl7w1&&x-G|GX2Dl9y|NG{9bPEN@zB%XW&ZacyiSK$)0tud)HTAMr2My z7ZuJN|JI1|1015Tyk;oxyr=5xsa@QG@08yAZ_Iyk#&YMox{~y5e~tNFUc@R*+~%7& z!T9$~Ub|`l)sK>ebLIe>Q$!(QUi@SASnwXVfa&msJb1?CgsF@qc-B za{t-SJaWsP{>}QifBWS3ENb?bX77uzwR8P2-Z(qGi eYBJ1DhNtyauQ=y#IBr|Q00f?{elF{r5}E+;5PMqy From 760d7e945658cdc301baea6051996782738eba58 Mon Sep 17 00:00:00 2001 From: fedoraman737 <150987667+fedoraman737@users.noreply.github.com> Date: Wed, 7 Feb 2024 22:40:45 -0600 Subject: [PATCH 160/376] Update TileEntityReactorResearch.java Updated line 435 - last argument in clamp_double changed to 1.0 --- .../com/hbm/tileentity/machine/TileEntityReactorResearch.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 8e1816775..35f116b72 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -432,7 +432,7 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; - targetLevel = MathHelper.clamp_double(newLevel, 0, 100.0); + targetLevel = MathHelper.clamp_double(newLevel, 0, 1.0); return new Object[] {}; } From 88a90aada79ad72cf52b23b70cb194c1faa8b4a3 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 8 Feb 2024 18:01:59 +1100 Subject: [PATCH 161/376] Add new Spotlight block type, spawns SpotlightBeam blocks away from the wall that it is placed on --- src/main/java/com/hbm/blocks/ModBlocks.java | 8 ++ .../com/hbm/blocks/machine/Spotlight.java | 126 ++++++++++++++++ .../com/hbm/blocks/machine/SpotlightBeam.java | 134 ++++++++++++++++++ .../com/hbm/tileentity/TileEntityData.java | 26 ++++ .../java/com/hbm/tileentity/TileMappings.java | 6 +- 5 files changed, 298 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/Spotlight.java create mode 100644 src/main/java/com/hbm/blocks/machine/SpotlightBeam.java create mode 100644 src/main/java/com/hbm/tileentity/TileEntityData.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 403ff7508..b2d396730 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -335,6 +335,9 @@ public class ModBlocks { public static Block lantern; public static Block lantern_behemoth; + public static Block spotlight; + public static Block spotlight_beam; + public static Block reinforced_stone; public static Block concrete_smooth; public static Block concrete_colored; @@ -1559,6 +1562,9 @@ public class ModBlocks { lamp_demon = new DemonLamp().setBlockName("lamp_demon").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_demon"); lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(null).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); + + spotlight = new Spotlight(Material.iron, 8).setBlockName("spotlight").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); + spotlight_beam = new SpotlightBeam().setBlockName("spotlight_beam"); reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); @@ -2738,6 +2744,8 @@ public class ModBlocks { GameRegistry.registerBlock(lamp_demon, lamp_demon.getUnlocalizedName()); GameRegistry.registerBlock(lantern, lantern.getUnlocalizedName()); GameRegistry.registerBlock(lantern_behemoth, lantern_behemoth.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight, spotlight.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_beam, spotlight_beam.getUnlocalizedName()); //Reinforced Blocks GameRegistry.registerBlock(asphalt, ItemBlockBlastInfo.class, asphalt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java new file mode 100644 index 000000000..03e6b4244 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -0,0 +1,126 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class Spotlight extends Block { + + public int beamLength; + + public Spotlight(Material mat, int beamLength) { + super(mat); + setLightLevel(1.0F); + + this.beamLength = beamLength; + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float hx, float hy, float hz, int initData) { + return side << 1; + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + updateBeam(world, x, y, z); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { + ForgeDirection dir = getDirection(metadata); + super.breakBlock(world, x, y, z, block, metadata); + + if (world.isRemote) return; + + unpropagateBeam(world, x, y, z, dir); + } + + // Repropagate the beam if we've become unblocked + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block neighborBlock) { + if (world.isRemote) return; + if (neighborBlock instanceof SpotlightBeam) return; + updateBeam(world, x, y, z); + } + + public void updateBeam(World world, int x, int y, int z) { + if (world.isRemote) return; + + ForgeDirection dir = getDirection(world, x, y, z); + propagateBeam(world, x, y, z, dir, beamLength); + } + + private ForgeDirection getDirection(World world, int x, int y, int z) { + int metadata = world.getBlockMetadata(x, y, z); + return getDirection(metadata); + } + + private ForgeDirection getDirection(int metadata) { + return ForgeDirection.getOrientation(metadata >> 1); + } + + // Recursively add beam blocks, updating any that already exist with new incoming light directions + public static void propagateBeam(World world, int x, int y, int z, ForgeDirection dir, int distance) { + distance--; + if (distance <= 0) return; + + x += dir.offsetX; + y += dir.offsetY; + z += dir.offsetZ; + + Block block = world.getBlock(x, y, z); + if (!block.isAir(world, x, y, z)) return; + + // If we encounter a beam, add a new INCOMING direction to the metadata + // Otherwise, spawn a new beam + if (!(block instanceof SpotlightBeam)) { + world.setBlock(x, y, z, ModBlocks.spotlight_beam); + } + + int meta = SpotlightBeam.setDirection(world, x, y, z, dir, true); + + MainRegistry.logger.info("block meta set to: " + meta + " - should be at least: " + dir.flag); + + propagateBeam(world, x, y, z, dir, distance); + } + + // Recursively delete beam blocks, if they aren't still illuminated from a different direction + public static void unpropagateBeam(World world, int x, int y, int z, ForgeDirection dir) { + x += dir.offsetX; + y += dir.offsetY; + z += dir.offsetZ; + + Block block = world.getBlock(x, y, z); + if (!(block instanceof SpotlightBeam)) return; + + // Remove the metadata associated with this direction + // If all directions are set to zero, delete the beam + if (SpotlightBeam.setDirection(world, x, y, z, dir, false) == 0) { + world.setBlockToAir(x, y, z); + } + + unpropagateBeam(world, x, y, z, dir); + } + + // Travels back through a beam to the source, and if found, repropagates the beam + public static void backPropagate(World world, int x, int y, int z, ForgeDirection dir) { + x -= dir.offsetX; + y -= dir.offsetY; + z -= dir.offsetZ; + + Block block = world.getBlock(x, y, z); + if (block instanceof Spotlight) { + Spotlight spot = (Spotlight) block; + propagateBeam(world, x, y, z, dir, spot.beamLength); + } else if (!(block instanceof SpotlightBeam)) { + return; + } + + backPropagate(world, x, y, z, dir); + } + +} diff --git a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java new file mode 100644 index 000000000..a1a9d1569 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java @@ -0,0 +1,134 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import com.hbm.tileentity.TileEntityData; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class SpotlightBeam extends BlockContainer { + + public SpotlightBeam() { + super(Material.air); + setLightLevel(1.0F); + setLightOpacity(0); + setHardness(-1); + setResistance(1_000_000); + setBlockBounds(0, 0, 0, 0, 0, 0); + } + + // If a block is placed onto the beam, handle the new cutoff + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { + super.breakBlock(world, x, y, z, block, metadata); + if (world.isRemote) return; + + for (ForgeDirection dir : getDirections(metadata)) { + Spotlight.unpropagateBeam(world, x, y, z, dir); + } + } + + // If a block in the beam path is removed, repropagate beam + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block neighborBlock) { + if (world.isRemote) return; + if (neighborBlock instanceof SpotlightBeam) return; + + for (ForgeDirection dir : getDirections(world, x, y, z)) { + Spotlight.backPropagate(world, x, y, z, dir); + } + } + + // Directions are stored as a set of 6 bits: + // 000000 -> no incoming light directions are set, will be removed + // 010000 -> UP bit set, at least one direction is providing light + // 111111 -> ALL directions illuminated, all incoming lights need to be disabled to turn off the beam + public static List getDirections(World world, int x, int y, int z) { + TileEntityData te = (TileEntityData) world.getTileEntity(x, y, z); + return getDirections(te.metadata); + } + + public static List getDirections(int metadata) { + List directions = new ArrayList(6); + for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if ((metadata & dir.flag) == dir.flag) directions.add(dir); + } + return directions; + } + + // Returns the final metadata, so the caller can optionally remove the block + public static int setDirection(World world, int x, int y, int z, ForgeDirection dir, boolean state) { + TileEntityData te = (TileEntityData) world.getTileEntity(x, y, z); + int transformedMetadata = applyDirection(te.metadata, dir, state); + te.metadata = transformedMetadata; + return transformedMetadata; + } + + // Sets the metadata bit for a given direction + public static int applyDirection(int metadata, ForgeDirection direction, boolean state) { + if (state) { + return metadata | direction.flag; + } else { + return metadata & ~direction.flag; + } + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityData(); + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean isAir(IBlockAccess world, int x, int y, int z) { + return true; + } + + @Override + public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) { + return true; + } + + @Override + public boolean isLeaves(IBlockAccess world, int x, int y, int z) { + // This was taken from GregsLighting (cargo cult behaviour) + // This is a bit screwy, but it's needed so that trees are not prevented from growing + // near a floodlight beam. + return true; + } + + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public int quantityDropped(Random par1Random) { + return 0; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { + return null; + } + + @Override + public int getRenderType() { + return -1; + } + +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityData.java b/src/main/java/com/hbm/tileentity/TileEntityData.java new file mode 100644 index 000000000..1356d66c3 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/TileEntityData.java @@ -0,0 +1,26 @@ +package com.hbm.tileentity; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; + +// A whole ass TE just for 2 extra bits +// My kingdom for 2 fucking flags + +// Use this TE if you need more bits, that's it. Blame Mojang +public class TileEntityData extends TileEntity { + + public int metadata; + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + metadata = nbt.getInteger("meta"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("meta", metadata); + } + +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 3686a7b31..b21b0c50f 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -45,8 +45,8 @@ import net.minecraft.tileentity.TileEntity; public class TileMappings { - public static HashMap, String[]> map = new HashMap(); - public static List> configurables = new ArrayList(); + public static HashMap, String[]> map = new HashMap, String[]>(); + public static List> configurables = new ArrayList>(); public static void writeMappings() { put(TileEntityTestBombAdvanced.class, "tilentity_testbombadvanced"); @@ -223,6 +223,8 @@ public class TileMappings { put(TileEntityBlockPWR.class, "tileentity_block_pwr"); put(TileEntityPWRController.class, "tileentity_pwr_controller"); + + put(TileEntityData.class, "tileentity_data"); putNetwork(); putBombs(); From a95079826c64f49510f148906a522c8207bfee44 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 8 Feb 2024 18:12:00 +1100 Subject: [PATCH 162/376] you forgot beam cutting ya ding dong --- src/main/java/com/hbm/blocks/machine/Spotlight.java | 8 ++------ .../java/com/hbm/blocks/machine/SpotlightBeam.java | 11 ++++++----- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java index 03e6b4244..12f12a57e 100644 --- a/src/main/java/com/hbm/blocks/machine/Spotlight.java +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -1,7 +1,6 @@ package com.hbm.blocks.machine; import com.hbm.blocks.ModBlocks; -import com.hbm.main.MainRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -75,15 +74,12 @@ public class Spotlight extends Block { Block block = world.getBlock(x, y, z); if (!block.isAir(world, x, y, z)) return; - // If we encounter a beam, add a new INCOMING direction to the metadata - // Otherwise, spawn a new beam if (!(block instanceof SpotlightBeam)) { world.setBlock(x, y, z, ModBlocks.spotlight_beam); } - int meta = SpotlightBeam.setDirection(world, x, y, z, dir, true); - - MainRegistry.logger.info("block meta set to: " + meta + " - should be at least: " + dir.flag); + // If we encounter an existing beam, add a new INCOMING direction to the metadata + SpotlightBeam.setDirection(world, x, y, z, dir, true); propagateBeam(world, x, y, z, dir, distance); } diff --git a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java index a1a9d1569..479159779 100644 --- a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java +++ b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java @@ -29,12 +29,13 @@ public class SpotlightBeam extends BlockContainer { // If a block is placed onto the beam, handle the new cutoff @Override public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { - super.breakBlock(world, x, y, z, block, metadata); - if (world.isRemote) return; - - for (ForgeDirection dir : getDirections(metadata)) { - Spotlight.unpropagateBeam(world, x, y, z, dir); + if (!world.isRemote) { + for (ForgeDirection dir : getDirections(world, x, y, z)) { + Spotlight.unpropagateBeam(world, x, y, z, dir); + } } + super.breakBlock(world, x, y, z, block, metadata); + } // If a block in the beam path is removed, repropagate beam From 8878b3f9de81ddf7edc84efb1e3ec880997d0414 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 8 Feb 2024 16:28:12 +0100 Subject: [PATCH 163/376] arty sync fix --- changelog | 3 +- .../turret/TileEntityTurretArty.java | 56 ++++------ .../turret/TileEntityTurretBaseNT.java | 58 +++++----- .../turret/TileEntityTurretHIMARS.java | 101 ++++++++---------- 4 files changed, 98 insertions(+), 120 deletions(-) diff --git a/changelog b/changelog index ec43e17c2..080d89a35 100644 --- a/changelog +++ b/changelog @@ -45,4 +45,5 @@ * Fixed normal drones loading chunks * Fixed chunk-loading drones not loading chunks * Fixed several chemistry templates missing names -* Fixed rampant mode random scout spawns being able to appear inside blocks \ No newline at end of file +* Fixed rampant mode random scout spawns being able to appear inside blocks +* Fixed turret rotation sometimes desyncing when out of range, this is especially noticeable with slow-moving arty \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index 3b9c8d3ec..03b54b68b 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -238,24 +238,20 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen this.barrelPos = 0; } } - } - - if(this.mode == this.MODE_MANUAL) { - if(!this.targetQueue.isEmpty()) { - this.tPos = this.targetQueue.get(0); - } - } else { - this.targetQueue.clear(); - } - - if(worldObj.isRemote) { this.lastRotationPitch = this.rotationPitch; this.lastRotationYaw = this.rotationYaw; } - - this.aligned = false; if(!worldObj.isRemote) { + if(this.mode == this.MODE_MANUAL) { + if(!this.targetQueue.isEmpty()) { + this.tPos = this.targetQueue.get(0); + } + } else { + this.targetQueue.clear(); + } + + this.aligned = false; this.updateConnections(); @@ -263,15 +259,12 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen this.target = null; this.stattrak++; } - } - if(target != null && this.mode != this.MODE_MANUAL) { - if(!this.entityInLOS(this.target)) { - this.target = null; + if(target != null && this.mode != this.MODE_MANUAL) { + if(!this.entityInLOS(this.target)) { + this.target = null; + } } - } - - if(!worldObj.isRemote) { if(target != null) { this.tPos = this.getEntityPos(target); @@ -280,18 +273,15 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen this.tPos = null; } } - } - if(isOn() && hasPower()) { - - if(tPos != null) - this.alignTurret(); - } else { - this.target = null; - this.tPos = null; - } - - if(!worldObj.isRemote) { + if(isOn() && hasPower()) { + + if(tPos != null) + this.alignTurret(); + } else { + this.target = null; + this.tPos = null; + } if(!isOn()) this.targetQueue.clear(); @@ -335,10 +325,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen } else { - Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); - vec.rotateAroundZ((float) -this.rotationPitch); - vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - //this will fix the interpolation error when the turret crosses the 360° point if(Math.abs(this.lastRotationYaw - this.rotationYaw) > Math.PI) { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 4420667ba..48b8ea59f 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -84,6 +84,10 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple //only used by clients for interpolation public double lastRotationYaw; public double lastRotationPitch; + //only used by clients for approach + public double syncRotationYaw; + public double syncRotationPitch; + protected int turnProgress; //is the turret on? public boolean isOn = false; //is the turret aimed at the target? @@ -156,46 +160,41 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(worldObj.isRemote) { this.lastRotationPitch = this.rotationPitch; this.lastRotationYaw = this.rotationYaw; + this.rotationPitch = this.syncRotationPitch; + this.rotationYaw = this.syncRotationYaw; } - - this.aligned = false; if(!worldObj.isRemote) { - + + this.aligned = false; this.updateConnections(); if(this.target != null && !target.isEntityAlive()) { this.target = null; this.stattrak++; } - } - - if(target != null) { - if(!this.entityInLOS(this.target)) { - this.target = null; - } - } - - if(!worldObj.isRemote) { + if(target != null) { + if(!this.entityInLOS(this.target)) { + this.target = null; + } + } + if(target != null) { this.tPos = this.getEntityPos(target); } else { this.tPos = null; } - } - - if(isOn() && hasPower()) { - if(tPos != null) - this.alignTurret(); - } else { - - this.target = null; - this.tPos = null; - } - - if(!worldObj.isRemote) { + if(isOn() && hasPower()) { + + if(tPos != null) + this.alignTurret(); + } else { + + this.target = null; + this.tPos = null; + } if(this.target != null && !target.isEntityAlive()) { this.target = null; @@ -237,10 +236,6 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple } else { - Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); - vec.rotateAroundZ((float) -this.rotationPitch); - vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - //this will fix the interpolation error when the turret crosses the 360° point if(Math.abs(this.lastRotationYaw - this.rotationYaw) > Math.PI) { @@ -260,6 +255,8 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple data.setDouble("tY", this.tPos.yCoord); data.setDouble("tZ", this.tPos.zCoord); } + data.setDouble("pitch", this.rotationPitch); + data.setDouble("yaw", this.rotationYaw); data.setLong("power", this.power); data.setBoolean("isOn", this.isOn); data.setBoolean("targetPlayers", this.targetPlayers); @@ -292,7 +289,10 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple @Override public void networkUnpack(NBTTagCompound nbt) { super.networkUnpack(nbt); - + + this.turnProgress = 2; + this.syncRotationPitch = nbt.getDouble("pitch"); + this.syncRotationYaw = nbt.getDouble("yaw"); this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); this.targetPlayers = nbt.getBoolean("targetPlayers"); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index 050040197..1e366da9f 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -135,40 +135,36 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem @Override public void updateEntity() { - this.lastCrane = this.crane; - - if(this.mode == this.MODE_MANUAL) { - if(!this.targetQueue.isEmpty()) { - this.tPos = this.targetQueue.get(0); - } - } else { - this.targetQueue.clear(); - } - if(worldObj.isRemote) { this.lastRotationPitch = this.rotationPitch; this.lastRotationYaw = this.rotationYaw; + this.lastCrane = this.crane; } - - this.aligned = false; if(!worldObj.isRemote) { + if(this.mode == this.MODE_MANUAL) { + if(!this.targetQueue.isEmpty()) { + this.tPos = this.targetQueue.get(0); + } + } else { + this.targetQueue.clear(); + } + + this.aligned = false; + this.updateConnections(); if(this.target != null && !target.isEntityAlive()) { this.target = null; this.stattrak++; } - } - if(target != null && this.mode != this.MODE_MANUAL) { - if(!this.entityInLOS(this.target)) { - this.target = null; + if(target != null && this.mode != this.MODE_MANUAL) { + if(!this.entityInLOS(this.target)) { + this.target = null; + } } - } - - if(!worldObj.isRemote) { if(target != null) { this.tPos = this.getEntityPos(target); @@ -177,51 +173,48 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem this.tPos = null; } } - } - if(isOn() && hasPower()) { - - if(!this.hasAmmo() || this.crane > 0) { + if(isOn() && hasPower()) { - this.turnTowardsAngle(0, this.rotationYaw); - - if(this.aligned) { + if(!this.hasAmmo() || this.crane > 0) { - if(this.hasAmmo()) { - this.crane -= 0.0125F; - } else { - this.crane += 0.0125F; + this.turnTowardsAngle(0, this.rotationYaw); + + if(this.aligned) { - if(this.crane >= 1F && !worldObj.isRemote) { - int available = this.getSpareRocket(); + if(this.hasAmmo()) { + this.crane -= 0.0125F; + } else { + this.crane += 0.0125F; - if(available != -1) { - HIMARSRocket type = ItemAmmoHIMARS.itemTypes[available]; - this.typeLoaded = available; - this.ammo = type.amount; - this.conusmeAmmo(new ComparableStack(ModItems.ammo_himars, 1, available)); + if(this.crane >= 1F) { + int available = this.getSpareRocket(); + + if(available != -1) { + HIMARSRocket type = ItemAmmoHIMARS.itemTypes[available]; + this.typeLoaded = available; + this.ammo = type.amount; + this.conusmeAmmo(new ComparableStack(ModItems.ammo_himars, 1, available)); + } } } } + + this.crane = MathHelper.clamp_float(this.crane, 0F, 1F); + + } else { + + if(tPos != null) { + this.alignTurret(); + } } - this.crane = MathHelper.clamp_float(this.crane, 0F, 1F); - } else { - - if(tPos != null) { - this.alignTurret(); - } + + this.target = null; + this.tPos = null; } - } else { - - this.target = null; - this.tPos = null; - } - - if(!worldObj.isRemote) { - if(!isOn()) this.targetQueue.clear(); if(this.target != null && !target.isEntityAlive()) { @@ -256,10 +249,6 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem } else { - Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); - vec.rotateAroundZ((float) -this.rotationPitch); - vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - //this will fix the interpolation error when the turret crosses the 360° point if(Math.abs(this.lastRotationYaw - this.rotationYaw) > Math.PI) { @@ -277,6 +266,7 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem data.setShort("mode", this.mode); data.setInteger("type", this.typeLoaded); data.setInteger("ammo", this.ammo); + data.setFloat("crane", crane); return data; } @@ -286,6 +276,7 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem this.mode = nbt.getShort("mode"); this.typeLoaded = nbt.getShort("type"); this.ammo = nbt.getInteger("ammo"); + this.crane = nbt.getFloat("crane"); } public boolean hasAmmo() { From 35e9fc0c7df9723bec23baa360eabcefc4a85389 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 8 Feb 2024 21:30:49 +0100 Subject: [PATCH 164/376] more missile UV --- .../hbm/models/weapons/launch_pad_erector.obj | 11110 +++++++++------- .../models/launchpad/erector_micro.png | Bin 0 -> 1163 bytes .../models/launchpad/erector_strong.png | Bin 0 -> 2544 bytes 3 files changed, 6215 insertions(+), 4895 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/launchpad/erector_micro.png create mode 100644 src/main/resources/assets/hbm/textures/models/launchpad/erector_strong.png diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj index 78abbd05b..1b4591165 100644 --- a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj @@ -4406,38 +4406,6 @@ v 3.500000 1.750000 4.500000 v 3.250000 2.000000 4.500000 v 3.250000 2.000000 2.500000 v 3.500000 1.750000 2.500000 -v -1.750000 1.000000 2.500000 -v -1.500000 1.250000 2.500000 -v -2.500000 1.250000 2.500000 -v -2.250000 1.000000 2.500000 -v -1.500000 1.250000 4.500000 -v -1.750000 1.000000 4.500000 -v -2.250000 1.000000 4.500000 -v -2.500000 1.250000 4.500000 -v -3.500000 1.250000 4.500000 -v -3.250000 1.000000 4.500000 -v -2.750000 1.000000 4.500000 -v -2.500000 1.250000 4.500000 -v -3.250000 1.000000 2.500000 -v -3.500000 1.250000 2.500000 -v -2.500000 1.250000 2.500000 -v -2.750000 1.000000 2.500000 -v -3.500000 1.750000 2.500000 -v -3.250000 2.000000 2.500000 -v -3.250000 2.000000 4.500000 -v -3.500000 1.750000 4.500000 -v -2.500000 1.750000 4.500000 -v -2.750000 2.000000 4.500000 -v -2.750000 2.000000 2.500000 -v -2.500000 1.750000 2.500000 -v -2.500000 1.750000 2.500000 -v -2.250000 2.000000 2.500000 -v -2.250000 2.000000 4.500000 -v -2.500000 1.750000 4.500000 -v -1.500000 1.750000 4.500000 -v -1.750000 2.000000 4.500000 -v -1.750000 2.000000 2.500000 -v -1.500000 1.750000 2.500000 v 3.000000 2.000000 2.625000 v 2.911612 2.000000 2.661612 v 2.875000 2.000000 2.750000 @@ -4498,6 +4466,42 @@ v 1.000000 2.125000 3.375000 v 1.000000 2.213388 3.338388 v 1.000000 2.250000 3.250000 v 1.000000 2.213388 3.161612 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v -1.750000 1.000000 2.500000 +v -1.500000 1.250000 2.500000 +v -2.500000 1.250000 2.500000 +v -2.250000 1.000000 2.500000 +v -1.500000 1.250000 4.500000 +v -1.750000 1.000000 4.500000 +v -2.250000 1.000000 4.500000 +v -2.500000 1.250000 4.500000 +v -3.500000 1.250000 4.500000 +v -3.250000 1.000000 4.500000 +v -2.750000 1.000000 4.500000 +v -2.500000 1.250000 4.500000 +v -3.250000 1.000000 2.500000 +v -3.500000 1.250000 2.500000 +v -2.500000 1.250000 2.500000 +v -2.750000 1.000000 2.500000 +v -3.500000 1.750000 2.500000 +v -3.250000 2.000000 2.500000 +v -3.250000 2.000000 4.500000 +v -3.500000 1.750000 4.500000 +v -2.500000 1.750000 4.500000 +v -2.750000 2.000000 4.500000 +v -2.750000 2.000000 2.500000 +v -2.500000 1.750000 2.500000 +v -2.500000 1.750000 2.500000 +v -2.250000 2.000000 2.500000 +v -2.250000 2.000000 4.500000 +v -2.500000 1.750000 4.500000 +v -1.500000 1.750000 4.500000 +v -1.750000 2.000000 4.500000 +v -1.750000 2.000000 2.500000 +v -1.500000 1.750000 2.500000 v -3.000000 2.000000 3.375000 v -2.911612 2.000000 3.338389 v -2.875000 2.000000 3.250000 @@ -4558,10 +4562,402 @@ v -1.000000 2.125000 2.625000 v -1.000000 2.213388 2.661612 v -1.000000 2.250000 2.750000 v -1.000000 2.213388 2.838388 -v -0.500000 2.000000 0.500000 -v 0.500000 2.000000 0.500000 -v -0.500000 2.000000 -0.500000 -v 0.500000 2.000000 -0.500000 +vt 0.102564 0.719101 +vt -0.000000 0.988764 +vt -0.000000 0.539326 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.808989 +vt 0.256410 0.988764 +vt 0.153846 0.808989 +vt 0.256410 0.539326 +vt 0.153846 0.719101 +vt 0.256410 0.539326 +vt -0.000000 0.539326 +vt 0.153846 0.494382 +vt 0.256410 0.539326 +vt -0.000000 0.539326 +vt 0.153846 0.494382 +vt 0.256410 0.539326 +vt -0.000000 0.539326 +vt 0.153846 0.494382 +vt 0.153846 0.494382 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.449438 +vt 0.153846 0.269663 +vt 0.153846 0.449438 +vt -0.000000 0.179775 +vt 0.102564 0.269663 +vt -0.000000 0.269663 +vt 0.153846 0.000000 +vt 0.102564 0.179775 +vt 0.102564 -0.000000 +vt 0.256410 0.269663 +vt 0.153846 0.179775 +vt 0.256410 0.179775 +vt 0.051282 0.359551 +vt 0.051282 0.449438 +vt 0.205128 0.359551 +vt 0.205128 0.449438 +vt 0.205128 0.089888 +vt 0.205128 0.000000 +vt 0.051282 0.089888 +vt 0.051282 -0.000000 +vt 0.794872 0.359551 +vt 0.769231 0.089888 +vt 0.794872 0.089888 +vt 0.717949 0.089888 +vt 0.743590 0.359551 +vt 0.717949 0.359551 +vt 0.743590 0.089888 +vt 0.717949 -0.000000 +vt 0.769231 0.044944 +vt 0.666667 0.089888 +vt 0.666667 0.359551 +vt 0.769231 0.359551 +vt 0.717949 0.449438 +vt 0.769231 0.404494 +vt 0.615385 0.651685 +vt 0.602564 0.719101 +vt 0.564103 0.696629 +vt 0.358974 0.898876 +vt 0.256410 0.988764 +vt 0.256410 0.898876 +vt 0.410256 -0.000000 +vt 0.358974 -0.000000 +vt 0.564103 -0.000000 +vt 0.512821 0.898876 +vt 0.512821 -0.000000 +vt 0.410256 0.898876 +vt 0.256410 -0.000000 +vt 0.615385 0.292135 +vt 0.602564 0.359551 +vt 0.564103 0.337079 +vt 0.564103 0.449438 +vt 0.666667 0.494382 +vt 0.564103 0.494382 +vt 0.666667 0.382022 +vt 0.564103 0.426966 +vt 0.564103 0.382022 +vt 0.666667 0.651685 +vt 0.653846 0.719101 +vt 0.615385 0.696629 +vt 0.666667 0.584270 +vt 0.564103 0.629214 +vt 0.564103 0.584270 +vt 0.666667 0.561798 +vt 0.666667 0.359551 +vt 0.564103 0.359551 +vt 0.564103 0.516854 +vt 0.666667 0.516854 +vt 0.666667 0.426966 +vt 0.564103 0.561798 +vt 0.564103 0.089888 +vt 0.666667 0.134831 +vt 0.564103 0.134831 +vt 0.666667 0.022472 +vt 0.564103 0.067416 +vt 0.564103 0.022472 +vt 0.666667 0.292135 +vt 0.653846 0.359551 +vt 0.615385 0.337079 +vt 0.666667 0.224719 +vt 0.564103 0.269663 +vt 0.564103 0.224719 +vt 0.666667 0.202247 +vt 0.666667 0.000000 +vt 0.564103 -0.000000 +vt 0.564103 0.157303 +vt 0.666667 0.157303 +vt 0.666667 0.067416 +vt 0.564103 0.202247 +vt 0.102564 0.808989 +vt 0.153846 0.719101 +vt 0.153846 0.808989 +vt 0.615385 0.651685 +vt 0.602564 0.719101 +vt 0.564103 0.696629 +vt 0.615385 0.292135 +vt 0.602564 0.359551 +vt 0.564103 0.337079 +vt 0.564103 0.449438 +vt 0.666667 0.494382 +vt 0.564103 0.494382 +vt 0.666667 0.382022 +vt 0.564103 0.426966 +vt 0.564103 0.382022 +vt 0.666667 0.651685 +vt 0.653846 0.719101 +vt 0.615385 0.696629 +vt 0.666667 0.584270 +vt 0.564103 0.629214 +vt 0.564103 0.584270 +vt 0.666667 0.561798 +vt 0.666667 0.359551 +vt 0.564103 0.359551 +vt 0.564103 0.516854 +vt 0.666667 0.516854 +vt 0.666667 0.426966 +vt 0.564103 0.561798 +vt 0.564103 0.089888 +vt 0.666667 0.134831 +vt 0.564103 0.134831 +vt 0.666667 0.022472 +vt 0.564103 0.067416 +vt 0.564103 0.022472 +vt 0.666667 0.292135 +vt 0.653846 0.359551 +vt 0.615385 0.337079 +vt 0.666667 0.224719 +vt 0.564103 0.269663 +vt 0.564103 0.224719 +vt 0.666667 0.202247 +vt 0.666667 0.000000 +vt 0.564103 -0.000000 +vt 0.564103 0.157303 +vt 0.666667 0.157303 +vt 0.666667 0.067416 +vt 0.564103 0.202247 +vt 0.102564 0.224719 +vt 0.205128 0.449438 +vt 0.256410 0.449438 +vt 0.000000 0.449438 +vt 0.051282 0.449438 +vt 0.102564 0.494382 +vt 0.205128 0.449438 +vt 0.256410 0.449438 +vt -0.000000 0.449438 +vt 0.051282 0.449438 +vt 0.102564 0.494382 +vt 0.205128 0.449438 +vt 0.256410 0.449438 +vt 0.000000 0.449438 +vt 0.051282 0.449438 +vt 0.102564 0.494382 +vt 0.256410 0.449438 +vt -0.000000 0.449438 +vt 0.102564 0.494382 +vt 0.102564 0.224719 +vt 0.102564 0.224719 +vt 0.102564 0.224719 +vt -0.000000 0.359551 +vt 0.256410 0.359551 +vt 0.256410 0.089888 +vt -0.000000 0.089888 +vt 0.769231 -0.000000 +vt 0.769231 0.449438 +vt 0.564103 0.651685 +vt 0.576923 0.629214 +vt 0.602564 0.629214 +vt 0.615385 0.696629 +vt 0.576923 0.719101 +vt 0.358974 0.988764 +vt 0.564103 0.898876 +vt 0.564103 0.292135 +vt 0.576923 0.269663 +vt 0.602564 0.269663 +vt 0.615385 0.337079 +vt 0.576923 0.359551 +vt 0.666667 0.449438 +vt 0.615385 0.651685 +vt 0.628205 0.629214 +vt 0.653846 0.629214 +vt 0.666667 0.696629 +vt 0.628205 0.719101 +vt 0.666667 0.629214 +vt 0.666667 0.089888 +vt 0.615385 0.292135 +vt 0.628205 0.269663 +vt 0.653846 0.269663 +vt 0.666667 0.337079 +vt 0.628205 0.359551 +vt 0.666667 0.269663 +vt 0.102564 0.719101 +vt 0.564103 0.651685 +vt 0.576923 0.629214 +vt 0.602564 0.629214 +vt 0.615385 0.696629 +vt 0.576923 0.719101 +vt 0.564103 0.292135 +vt 0.576923 0.269663 +vt 0.602564 0.269663 +vt 0.615385 0.337079 +vt 0.576923 0.359551 +vt 0.666667 0.449438 +vt 0.615385 0.651685 +vt 0.628205 0.629214 +vt 0.653846 0.629214 +vt 0.666667 0.696629 +vt 0.628205 0.719101 +vt 0.666667 0.629214 +vt 0.666667 0.089888 +vt 0.615385 0.292135 +vt 0.628205 0.269663 +vt 0.653846 0.269663 +vt 0.666667 0.337079 +vt 0.628205 0.359551 +vt 0.666667 0.269663 +vt 0.634615 0.904494 +vt 0.641026 0.921348 +vt 0.634615 0.921348 +vt 0.647436 0.921348 +vt 0.653846 0.904494 +vt 0.653846 0.915730 +vt 0.621795 0.904494 +vt 0.628205 0.915730 +vt 0.621795 0.910112 +vt 0.628205 0.904494 +vt 0.641026 0.904494 +vt 0.660256 0.904494 +vt 0.660256 0.910112 +vt 0.647436 0.887640 +vt 0.647436 0.904494 +vt 0.621795 0.898876 +vt 0.628205 0.893258 +vt 0.641026 0.887640 +vt 0.660256 0.898876 +vt 0.666667 0.904494 +vt 0.615385 0.904494 +vt 0.621795 0.887640 +vt 0.628205 0.719101 +vt 0.628205 0.887640 +vt 0.615385 0.887640 +vt 0.621795 0.719101 +vt 0.634615 0.719101 +vt 0.634615 0.887640 +vt 0.660256 0.887640 +vt 0.666667 0.719101 +vt 0.666667 0.887640 +vt 0.647436 0.719101 +vt 0.653846 0.887640 +vt 0.660256 0.719101 +vt 0.641026 0.719101 +vt 0.653846 0.719101 +vt 0.583333 0.831461 +vt 0.589744 0.814607 +vt 0.589744 0.831461 +vt 0.596154 0.814607 +vt 0.602564 0.825843 +vt 0.596154 0.831461 +vt 0.570513 0.814607 +vt 0.576923 0.825843 +vt 0.570513 0.820225 +vt 0.576923 0.814607 +vt 0.602564 0.814607 +vt 0.608974 0.820225 +vt 0.602564 0.803371 +vt 0.570513 0.808989 +vt 0.583333 0.797753 +vt 0.583333 0.814607 +vt 0.589744 0.797753 +vt 0.608974 0.808989 +vt 0.608974 0.814607 +vt 0.615385 0.814607 +vt 0.564103 0.814607 +vt 0.570513 0.797753 +vt 0.576923 0.719101 +vt 0.576923 0.797753 +vt 0.564103 0.797753 +vt 0.570513 0.719101 +vt 0.583333 0.719101 +vt 0.608974 0.797753 +vt 0.615385 0.719101 +vt 0.615385 0.797753 +vt 0.596154 0.719101 +vt 0.596154 0.797753 +vt 0.602564 0.797753 +vt 0.608974 0.719101 +vt 0.589744 0.719101 +vt 0.602564 0.719101 +vt 0.634615 0.921348 +vt 0.641026 0.904494 +vt 0.641026 0.921348 +vt 0.647436 0.921348 +vt 0.653846 0.904494 +vt 0.653846 0.915730 +vt 0.621795 0.904494 +vt 0.628205 0.915730 +vt 0.621795 0.910112 +vt 0.628205 0.904494 +vt 0.647436 0.904494 +vt 0.660256 0.904494 +vt 0.660256 0.910112 +vt 0.653846 0.893258 +vt 0.621795 0.898876 +vt 0.628205 0.893258 +vt 0.634615 0.904494 +vt 0.641026 0.887640 +vt 0.660256 0.898876 +vt 0.666667 0.904494 +vt 0.615385 0.904494 +vt 0.621795 0.887640 +vt 0.628205 0.719101 +vt 0.628205 0.887640 +vt 0.615385 0.887640 +vt 0.621795 0.719101 +vt 0.634615 0.719101 +vt 0.634615 0.887640 +vt 0.660256 0.887640 +vt 0.666667 0.719101 +vt 0.666667 0.887640 +vt 0.647436 0.719101 +vt 0.647436 0.887640 +vt 0.653846 0.887640 +vt 0.660256 0.719101 +vt 0.641026 0.719101 +vt 0.653846 0.719101 +vt 0.583333 0.831461 +vt 0.589744 0.814607 +vt 0.589744 0.831461 +vt 0.596154 0.814607 +vt 0.602564 0.825843 +vt 0.596154 0.831461 +vt 0.570513 0.814607 +vt 0.576923 0.825843 +vt 0.570513 0.820225 +vt 0.576923 0.814607 +vt 0.608974 0.814607 +vt 0.608974 0.820225 +vt 0.596154 0.797753 +vt 0.602564 0.814607 +vt 0.576923 0.803371 +vt 0.583333 0.814607 +vt 0.589744 0.797753 +vt 0.608974 0.808989 +vt 0.583333 0.797753 +vt 0.615385 0.814607 +vt 0.564103 0.814607 +vt 0.570513 0.808989 +vt 0.570513 0.797753 +vt 0.576923 0.719101 +vt 0.576923 0.797753 +vt 0.564103 0.797753 +vt 0.570513 0.719101 +vt 0.583333 0.719101 +vt 0.608974 0.797753 +vt 0.615385 0.719101 +vt 0.615385 0.797753 +vt 0.596154 0.719101 +vt 0.602564 0.797753 +vt 0.608974 0.719101 +vt 0.589744 0.719101 +vt 0.602564 0.719101 +vt 0.653846 0.893258 +vt 0.615385 0.719101 +vt 0.576923 0.803371 +vt 0.564103 0.719101 +vt 0.615385 0.719101 +vt 0.602564 0.803371 +vt 0.564103 0.719101 vn 0.0000 1.0000 0.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 @@ -4623,386 +5019,438 @@ vn 0.1944 -0.9809 0.0000 vn -0.1447 0.7194 0.6794 vn -0.1447 0.7194 -0.6794 s off -f 1975//150 1970//150 1971//150 -f 1977//151 1999//151 1975//151 -f 1974//150 1972//150 1970//150 -f 1976//150 1973//150 1972//150 -f 1977//150 1971//150 1973//150 -f 1971//152 1970//152 1996//152 -f 1970//151 1972//151 1991//151 -f 1972//153 1973//153 1994//153 -f 1973//154 1971//154 1993//154 -f 1974//154 2000//154 1976//154 -f 1976//152 2001//152 1977//152 -f 1975//153 1998//153 1974//153 -f 1990//155 2001//155 1993//155 -f 1995//155 1999//155 1996//155 -f 1992//155 1998//155 1991//155 -f 1997//155 2000//155 1994//155 -f 2005//156 1996//156 1999//156 -f 2005//157 1990//157 1982//157 -f 1993//158 2003//158 1985//158 -f 1997//156 2003//156 2001//156 -f 2002//159 1994//159 2000//159 -f 2002//158 1992//158 1984//158 -f 1991//157 2004//157 1983//157 -f 1995//159 2004//159 1998//159 -f 2008//153 2014//153 2009//153 -f 2011//150 2012//150 2010//150 -f 2015//154 2007//154 2014//154 -f 2007//152 2010//152 2006//152 -f 2013//160 2015//160 2014//160 -f 2006//151 2012//151 2013//151 -f 2035//152 2045//152 2043//152 -f 2022//150 2020//150 2021//150 -f 2019//154 2022//154 2017//154 -f 2016//151 2020//151 2018//151 -f 2018//153 2023//153 2019//153 -f 2017//152 2021//152 2016//152 -f 2028//152 2053//152 2051//152 -f 2045//150 2041//150 2042//150 -f 2038//154 2044//154 2035//154 -f 2037//153 2041//153 2047//153 -f 2036//155 2034//155 2033//155 -f 2033//161 2037//161 2036//161 -f 2039//162 2035//162 2034//162 -f 2043//163 2041//163 2040//163 -f 2047//164 2045//164 2044//164 -f 2032//151 2040//151 2037//151 -f 2053//150 2049//150 2050//150 -f 2025//154 2052//154 2028//154 -f 2026//153 2049//153 2055//153 -f 2027//155 2029//155 2030//155 -f 2030//161 2026//161 2027//161 -f 2024//162 2028//162 2029//162 -f 2051//163 2049//163 2048//163 -f 2055//164 2053//164 2052//164 -f 2031//151 2048//151 2026//151 -f 2067//152 2077//152 2075//152 -f 2060//152 2085//152 2083//152 -f 2077//150 2073//150 2074//150 -f 2070//154 2076//154 2067//154 -f 2069//153 2073//153 2079//153 -f 2068//155 2066//155 2065//155 -f 2065//161 2069//161 2068//161 -f 2071//162 2067//162 2066//162 -f 2075//163 2073//163 2072//163 -f 2079//164 2077//164 2076//164 -f 2064//151 2072//151 2069//151 -f 2085//150 2081//150 2082//150 -f 2057//154 2084//154 2060//154 -f 2058//153 2081//153 2087//153 -f 2059//155 2061//155 2062//155 -f 2062//161 2058//161 2059//161 -f 2056//162 2060//162 2061//162 -f 2083//163 2081//163 2080//163 -f 2087//164 2085//164 2084//164 -f 2063//151 2080//151 2058//151 -f 2208//150 2211//150 2210//150 -f 1975//150 1974//150 1970//150 -f 1977//151 2001//151 1999//151 -f 1974//150 1976//150 1972//150 -f 1976//150 1977//150 1973//150 -f 1977//150 1975//150 1971//150 -f 1988//152 1978//152 1971//152 -f 1970//152 1980//152 1987//152 -f 1970//152 1987//152 1995//152 -f 1996//152 1988//152 1971//152 -f 1970//152 1995//152 1996//152 -f 1983//151 1980//151 1970//151 -f 1972//151 1979//151 1984//151 -f 1972//151 1984//151 1992//151 -f 1991//151 1983//151 1970//151 -f 1972//151 1992//151 1991//151 -f 1986//153 1979//153 1972//153 -f 1973//153 1981//153 1989//153 -f 1973//153 1989//153 1997//153 -f 1994//153 1986//153 1972//153 -f 1973//153 1997//153 1994//153 -f 1985//154 1981//154 1973//154 -f 1971//154 1978//154 1982//154 -f 1971//154 1982//154 1990//154 -f 1993//154 1985//154 1973//154 -f 1971//154 1990//154 1993//154 -f 1974//154 1998//154 2000//154 -f 1976//152 2000//152 2001//152 -f 1975//153 1999//153 1998//153 -f 1990//155 1999//155 2001//155 -f 1995//155 1998//155 1999//155 -f 1992//155 2000//155 1998//155 -f 1997//155 2001//155 2000//155 -f 2005//156 1988//156 1996//156 -f 2005//157 1999//157 1990//157 -f 1993//158 2001//158 2003//158 -f 1997//156 1989//156 2003//156 -f 2002//159 1986//159 1994//159 -f 2002//158 2000//158 1992//158 -f 1991//157 1998//157 2004//157 -f 1995//159 1987//159 2004//159 -f 2008//153 2013//153 2014//153 -f 2011//150 2015//150 2012//150 -f 2011//154 2007//154 2015//154 -f 2007//154 2009//154 2014//154 -f 2007//152 2011//152 2010//152 -f 2013//160 2012//160 2015//160 -f 2013//151 2008//151 2006//151 -f 2006//151 2010//151 2012//151 -f 2043//152 2032//152 2033//152 -f 2033//152 2034//152 2035//152 -f 2035//152 2044//152 2045//152 -f 2045//152 2042//152 2043//152 -f 2043//152 2033//152 2035//152 -f 2022//150 2023//150 2020//150 -f 2019//154 2023//154 2022//154 -f 2016//151 2021//151 2020//151 -f 2018//153 2020//153 2023//153 -f 2017//152 2022//152 2021//152 -f 2051//152 2031//152 2030//152 -f 2030//152 2029//152 2028//152 -f 2028//152 2052//152 2053//152 -f 2053//152 2050//152 2051//152 -f 2051//152 2030//152 2028//152 -f 2045//150 2046//150 2041//150 -f 2038//154 2047//154 2044//154 -f 2047//153 2038//153 2039//153 -f 2039//153 2036//153 2037//153 -f 2037//153 2040//153 2041//153 -f 2041//153 2046//153 2047//153 -f 2047//153 2039//153 2037//153 -f 2036//155 2039//155 2034//155 -f 2033//161 2032//161 2037//161 -f 2039//162 2038//162 2035//162 -f 2043//163 2042//163 2041//163 -f 2047//164 2046//164 2045//164 -f 2032//151 2043//151 2040//151 -f 2053//150 2054//150 2049//150 -f 2025//154 2055//154 2052//154 -f 2055//153 2025//153 2024//153 -f 2024//153 2027//153 2026//153 -f 2026//153 2048//153 2049//153 -f 2049//153 2054//153 2055//153 -f 2055//153 2024//153 2026//153 -f 2027//155 2024//155 2029//155 -f 2030//161 2031//161 2026//161 -f 2024//162 2025//162 2028//162 -f 2051//163 2050//163 2049//163 -f 2055//164 2054//164 2053//164 -f 2031//151 2051//151 2048//151 -f 2075//152 2064//152 2065//152 -f 2065//152 2066//152 2067//152 -f 2067//152 2076//152 2077//152 -f 2077//152 2074//152 2075//152 -f 2075//152 2065//152 2067//152 -f 2083//152 2063//152 2062//152 -f 2062//152 2061//152 2060//152 -f 2060//152 2084//152 2085//152 -f 2085//152 2082//152 2083//152 -f 2083//152 2062//152 2060//152 -f 2077//150 2078//150 2073//150 -f 2070//154 2079//154 2076//154 -f 2079//153 2070//153 2071//153 -f 2071//153 2068//153 2069//153 -f 2069//153 2072//153 2073//153 -f 2073//153 2078//153 2079//153 -f 2079//153 2071//153 2069//153 -f 2068//155 2071//155 2066//155 -f 2065//161 2064//161 2069//161 -f 2071//162 2070//162 2067//162 -f 2075//163 2074//163 2073//163 -f 2079//164 2078//164 2077//164 -f 2064//151 2075//151 2072//151 -f 2085//150 2086//150 2081//150 -f 2057//154 2087//154 2084//154 -f 2087//153 2057//153 2056//153 -f 2056//153 2059//153 2058//153 -f 2058//153 2080//153 2081//153 -f 2081//153 2086//153 2087//153 -f 2087//153 2056//153 2058//153 -f 2059//155 2056//155 2061//155 -f 2062//161 2063//161 2058//161 -f 2056//162 2057//162 2060//162 -f 2083//163 2082//163 2081//163 -f 2087//164 2086//164 2085//164 -f 2063//151 2083//151 2080//151 -f 2208//150 2209//150 2211//150 +f 1975/1/150 1970/2/150 1971/3/150 +f 1977/4/151 1999/5/151 1975/6/151 +f 1974/7/150 1972/8/150 1970/2/150 +f 1976/9/150 1973/10/150 1972/8/150 +f 1977/11/150 1971/3/150 1973/10/150 +f 1971/12/152 1970/13/152 1996/14/152 +f 1970/15/151 1972/16/151 1991/17/151 +f 1972/18/153 1973/19/153 1994/20/153 +f 1973/10/154 1971/3/154 1993/21/154 +f 1974/22/154 2000/23/154 1976/24/154 +f 1976/25/152 2001/26/152 1977/27/152 +f 1975/28/153 1998/29/153 1974/30/153 +f 1990/31/155 2001/32/155 1993/33/155 +f 1995/34/155 1999/35/155 1996/36/155 +f 1992/37/155 1998/38/155 1991/39/155 +f 1997/40/155 2000/41/155 1994/42/155 +f 2005/43/156 1996/36/156 1999/35/156 +f 2005/43/157 1990/31/157 1982/44/157 +f 1993/33/158 2003/45/158 1985/46/158 +f 1997/40/156 2003/45/156 2001/32/156 +f 2002/47/159 1994/42/159 2000/41/159 +f 2002/47/158 1992/37/158 1984/48/158 +f 1991/39/157 2004/49/157 1983/50/157 +f 1995/34/159 2004/49/159 1998/38/159 +f 2008/51/153 2014/52/153 2009/53/153 +f 2011/54/150 2012/55/150 2010/56/150 +f 2015/57/154 2007/58/154 2014/59/154 +f 2007/60/152 2010/56/152 2006/61/152 +f 2013/62/160 2015/57/160 2014/52/160 +f 2006/63/151 2012/55/151 2013/64/151 +f 2035/65/152 2045/66/152 2043/67/152 +f 2022/68/150 2020/69/150 2021/70/150 +f 2019/71/154 2022/68/154 2017/72/154 +f 2016/73/151 2020/74/151 2018/75/151 +f 2018/75/153 2023/76/153 2019/71/153 +f 2017/72/152 2021/70/152 2016/77/152 +f 2028/78/152 2053/79/152 2051/80/152 +f 2045/81/150 2041/82/150 2042/83/150 +f 2038/84/154 2044/85/154 2035/86/154 +f 2037/87/153 2041/88/153 2047/89/153 +f 2036/90/155 2034/91/155 2033/92/155 +f 2033/92/161 2037/93/161 2036/90/161 +f 2039/94/162 2035/86/162 2034/95/162 +f 2043/96/163 2041/82/163 2040/97/163 +f 2047/98/164 2045/81/164 2044/85/164 +f 2032/99/151 2040/97/151 2037/93/151 +f 2053/100/150 2049/101/150 2050/102/150 +f 2025/103/154 2052/104/154 2028/105/154 +f 2026/106/153 2049/107/153 2055/108/153 +f 2027/109/155 2029/110/155 2030/111/155 +f 2030/111/161 2026/112/161 2027/109/161 +f 2024/113/162 2028/105/162 2029/114/162 +f 2051/115/163 2049/101/163 2048/116/163 +f 2055/117/164 2053/100/164 2052/104/164 +f 2031/118/151 2048/116/151 2026/112/151 +f 2116/119/150 2119/120/150 2118/121/150 +f 2131/122/152 2141/123/152 2139/124/152 +f 2124/125/152 2149/126/152 2147/127/152 +f 2141/128/150 2137/129/150 2138/130/150 +f 2134/131/154 2140/132/154 2131/133/154 +f 2133/134/153 2137/135/153 2143/136/153 +f 2132/137/155 2130/138/155 2129/139/155 +f 2129/139/161 2133/140/161 2132/137/161 +f 2135/141/162 2131/133/162 2130/142/162 +f 2139/143/163 2137/129/163 2136/144/163 +f 2143/145/164 2141/128/164 2140/132/164 +f 2128/146/151 2136/144/151 2133/140/151 +f 2149/147/150 2145/148/150 2146/149/150 +f 2121/150/154 2148/151/154 2124/152/154 +f 2122/153/153 2145/154/153 2151/155/153 +f 2123/156/155 2125/157/155 2126/158/155 +f 2126/158/161 2122/159/161 2123/156/161 +f 2120/160/162 2124/152/162 2125/161/162 +f 2147/162/163 2145/148/163 2144/163/163 +f 2151/164/164 2149/147/164 2148/151/164 +f 2127/165/151 2144/163/151 2122/159/151 +f 1975/1/150 1974/7/150 1970/2/150 +f 1977/4/151 2001/166/151 1999/5/151 +f 1974/7/150 1976/9/150 1972/8/150 +f 1976/9/150 1977/11/150 1973/10/150 +f 1977/11/150 1975/1/150 1971/3/150 +f 1988/167/152 1978/168/152 1971/12/152 +f 1970/13/152 1980/169/152 1987/170/152 +f 1970/13/152 1987/170/152 1995/171/152 +f 1996/14/152 1988/167/152 1971/12/152 +f 1970/13/152 1995/171/152 1996/14/152 +f 1983/172/151 1980/173/151 1970/15/151 +f 1972/16/151 1979/174/151 1984/175/151 +f 1972/16/151 1984/175/151 1992/176/151 +f 1991/17/151 1983/172/151 1970/15/151 +f 1972/16/151 1992/176/151 1991/17/151 +f 1986/177/153 1979/178/153 1972/18/153 +f 1973/19/153 1981/179/153 1989/180/153 +f 1973/19/153 1989/180/153 1997/181/153 +f 1994/20/153 1986/177/153 1972/18/153 +f 1973/19/153 1997/181/153 1994/20/153 +f 1985/46/154 1981/182/154 1973/10/154 +f 1971/3/154 1978/183/154 1982/44/154 +f 1971/3/154 1982/44/154 1990/184/154 +f 1993/21/154 1985/46/154 1973/10/154 +f 1971/3/154 1990/184/154 1993/21/154 +f 1974/22/154 1998/185/154 2000/23/154 +f 1976/25/152 2000/186/152 2001/26/152 +f 1975/28/153 1999/187/153 1998/29/153 +f 1990/31/155 1999/35/155 2001/32/155 +f 1995/34/155 1998/38/155 1999/35/155 +f 1992/37/155 2000/41/155 1998/38/155 +f 1997/40/155 2001/32/155 2000/41/155 +f 2005/43/156 1988/188/156 1996/36/156 +f 2005/43/157 1999/35/157 1990/31/157 +f 1993/33/158 2001/32/158 2003/45/158 +f 1997/40/156 1989/189/156 2003/45/156 +f 2002/47/159 1986/190/159 1994/42/159 +f 2002/47/158 2000/41/158 1992/37/158 +f 1991/39/157 1998/38/157 2004/49/157 +f 1995/34/159 1987/191/159 2004/49/159 +f 2008/51/153 2013/62/153 2014/52/153 +f 2011/54/150 2015/57/150 2012/55/150 +f 2011/54/154 2007/58/154 2015/57/154 +f 2007/58/154 2009/192/154 2014/59/154 +f 2007/60/152 2011/54/152 2010/56/152 +f 2013/62/160 2012/55/160 2015/57/160 +f 2013/64/151 2008/193/151 2006/63/151 +f 2006/63/151 2010/56/151 2012/55/151 +f 2043/67/152 2032/194/152 2033/195/152 +f 2033/195/152 2034/196/152 2035/65/152 +f 2035/65/152 2044/197/152 2045/66/152 +f 2045/66/152 2042/198/152 2043/67/152 +f 2043/67/152 2033/195/152 2035/65/152 +f 2022/68/150 2023/199/150 2020/69/150 +f 2019/71/154 2023/76/154 2022/68/154 +f 2016/73/151 2021/200/151 2020/74/151 +f 2018/75/153 2020/74/153 2023/76/153 +f 2017/72/152 2022/68/152 2021/70/152 +f 2051/80/152 2031/201/152 2030/202/152 +f 2030/202/152 2029/203/152 2028/78/152 +f 2028/78/152 2052/204/152 2053/79/152 +f 2053/79/152 2050/205/152 2051/80/152 +f 2051/80/152 2030/202/152 2028/78/152 +f 2045/81/150 2046/206/150 2041/82/150 +f 2038/84/154 2047/98/154 2044/85/154 +f 2047/89/153 2038/207/153 2039/208/153 +f 2039/208/153 2036/209/153 2037/87/153 +f 2037/87/153 2040/210/153 2041/88/153 +f 2041/88/153 2046/211/153 2047/89/153 +f 2047/89/153 2039/208/153 2037/87/153 +f 2036/90/155 2039/212/155 2034/91/155 +f 2033/92/161 2032/99/161 2037/93/161 +f 2039/94/162 2038/84/162 2035/86/162 +f 2043/96/163 2042/83/163 2041/82/163 +f 2047/98/164 2046/206/164 2045/81/164 +f 2032/99/151 2043/96/151 2040/97/151 +f 2053/100/150 2054/213/150 2049/101/150 +f 2025/103/154 2055/117/154 2052/104/154 +f 2055/108/153 2025/214/153 2024/215/153 +f 2024/215/153 2027/216/153 2026/106/153 +f 2026/106/153 2048/217/153 2049/107/153 +f 2049/107/153 2054/218/153 2055/108/153 +f 2055/108/153 2024/215/153 2026/106/153 +f 2027/109/155 2024/219/155 2029/110/155 +f 2030/111/161 2031/118/161 2026/112/161 +f 2024/113/162 2025/103/162 2028/105/162 +f 2051/115/163 2050/102/163 2049/101/163 +f 2055/117/164 2054/213/164 2053/100/164 +f 2031/118/151 2051/115/151 2048/116/151 +f 2116/119/150 2117/220/150 2119/120/150 +f 2139/124/152 2128/221/152 2129/222/152 +f 2129/222/152 2130/223/152 2131/122/152 +f 2131/122/152 2140/224/152 2141/123/152 +f 2141/123/152 2138/225/152 2139/124/152 +f 2139/124/152 2129/222/152 2131/122/152 +f 2147/127/152 2127/226/152 2126/227/152 +f 2126/227/152 2125/228/152 2124/125/152 +f 2124/125/152 2148/229/152 2149/126/152 +f 2149/126/152 2146/230/152 2147/127/152 +f 2147/127/152 2126/227/152 2124/125/152 +f 2141/128/150 2142/231/150 2137/129/150 +f 2134/131/154 2143/145/154 2140/132/154 +f 2143/136/153 2134/232/153 2135/233/153 +f 2135/233/153 2132/234/153 2133/134/153 +f 2133/134/153 2136/235/153 2137/135/153 +f 2137/135/153 2142/236/153 2143/136/153 +f 2143/136/153 2135/233/153 2133/134/153 +f 2132/137/155 2135/237/155 2130/138/155 +f 2129/139/161 2128/146/161 2133/140/161 +f 2135/141/162 2134/131/162 2131/133/162 +f 2139/143/163 2138/130/163 2137/129/163 +f 2143/145/164 2142/231/164 2141/128/164 +f 2128/146/151 2139/143/151 2136/144/151 +f 2149/147/150 2150/238/150 2145/148/150 +f 2121/150/154 2151/164/154 2148/151/154 +f 2151/155/153 2121/239/153 2120/240/153 +f 2120/240/153 2123/241/153 2122/153/153 +f 2122/153/153 2144/242/153 2145/154/153 +f 2145/154/153 2150/243/153 2151/155/153 +f 2151/155/153 2120/240/153 2122/153/153 +f 2123/156/155 2120/244/155 2125/157/155 +f 2126/158/161 2127/165/161 2122/159/161 +f 2120/160/162 2121/150/162 2124/152/162 +f 2147/162/163 2146/149/163 2145/148/163 +f 2151/164/164 2150/238/164 2149/147/164 +f 2127/165/151 2147/162/151 2144/163/151 s 1 -f 2102//165 2094//166 2095//167 -f 2093//168 2099//169 2092//170 -f 2097//171 2088//172 2089//173 -f 2096//174 2095//167 2088//172 -f 2101//164 2093//168 2094//166 -f 2092//170 2098//175 2091//176 -f 2107//177 2099//169 2100//178 -f 2104//179 2096//174 2097//171 -f 2103//180 2102//165 2096//174 -f 2108//181 2100//178 2101//164 -f 2099//169 2105//182 2098//175 -f 2102//165 2108//181 2101//164 -f 2090//183 2091//176 2098//175 -f 2098//175 2105//182 2090//183 -f 2089//173 2090//183 2097//171 -f 2097//171 2090//183 2104//179 -f 2104//179 2111//153 2103//180 -f 2090//183 2112//184 2104//179 -f 2103//180 2117//160 2109//185 -f 2105//182 2110//155 2090//183 -f 2108//181 2115//186 2107//177 -f 2106//187 2113//188 2105//182 -f 2109//185 2116//150 2108//181 -f 2107//177 2114//152 2106//187 -f 2125//167 2131//164 2124//166 -f 2130//178 2122//170 2123//168 -f 2127//171 2118//172 2119//173 -f 2126//174 2125//167 2118//172 -f 2131//164 2123//168 2124//166 -f 2129//169 2121//176 2122//170 -f 2130//178 2136//187 2129//169 -f 2134//179 2126//174 2127//171 -f 2126//174 2139//185 2132//165 -f 2138//181 2130//178 2131//164 -f 2129//169 2135//182 2128//175 -f 2132//165 2138//181 2131//164 -f 2120//183 2121//176 2128//175 -f 2128//175 2135//182 2120//183 -f 2119//173 2120//183 2127//171 -f 2127//171 2120//183 2134//179 -f 2134//179 2141//153 2133//180 -f 2120//183 2142//184 2134//179 -f 2133//180 2147//160 2139//185 -f 2135//182 2140//155 2120//183 -f 2138//181 2145//186 2137//177 -f 2136//187 2143//188 2135//182 -f 2139//185 2146//150 2138//181 -f 2137//177 2144//152 2136//187 -f 2155//189 2161//163 2154//190 -f 2153//191 2159//192 2152//193 -f 2157//194 2148//195 2149//196 -f 2156//197 2155//189 2148//195 -f 2154//190 2160//198 2153//191 -f 2152//193 2158//199 2151//200 -f 2160//198 2166//201 2159//192 -f 2164//202 2156//197 2157//194 -f 2163//203 2162//204 2156//197 -f 2168//205 2160//198 2161//163 -f 2159//192 2165//206 2158//199 -f 2162//204 2168//205 2161//163 -f 2150//207 2151//200 2158//199 -f 2158//199 2165//206 2150//207 -f 2149//196 2150//207 2157//194 -f 2157//194 2150//207 2164//202 -f 2164//202 2171//152 2163//203 -f 2150//207 2172//188 2164//202 -f 2163//203 2177//186 2169//208 -f 2165//206 2170//155 2150//207 -f 2168//205 2175//160 2167//209 -f 2166//201 2173//184 2165//206 -f 2169//208 2176//150 2168//205 -f 2167//209 2174//153 2166//201 -f 2185//189 2191//163 2184//190 -f 2190//198 2182//193 2183//191 -f 2187//194 2178//195 2179//196 -f 2186//197 2185//189 2178//195 -f 2191//163 2183//191 2184//190 -f 2182//193 2188//199 2181//200 -f 2197//209 2189//192 2190//198 -f 2187//194 2193//203 2186//197 -f 2193//203 2192//204 2186//197 -f 2198//205 2190//198 2191//163 -f 2189//192 2195//206 2188//199 -f 2199//208 2191//163 2192//204 -f 2180//207 2181//200 2188//199 -f 2188//199 2195//206 2180//207 -f 2179//196 2180//207 2187//194 -f 2187//194 2180//207 2194//202 -f 2194//202 2201//152 2193//203 -f 2180//207 2202//188 2194//202 -f 2193//203 2207//186 2199//208 -f 2195//206 2200//155 2180//207 -f 2198//205 2205//160 2197//209 -f 2196//201 2203//184 2195//206 -f 2198//205 2207//186 2206//150 -f 2196//201 2205//160 2204//153 -f 2102//165 2101//164 2094//166 -f 2093//168 2100//178 2099//169 -f 2097//171 2096//174 2088//172 -f 2096//174 2102//165 2095//167 -f 2101//164 2100//178 2093//168 -f 2092//170 2099//169 2098//175 -f 2107//177 2106//187 2099//169 -f 2104//179 2103//180 2096//174 -f 2103//180 2109//185 2102//165 -f 2108//181 2107//177 2100//178 -f 2099//169 2106//187 2105//182 -f 2102//165 2109//185 2108//181 -f 2104//179 2112//184 2111//153 -f 2090//183 2110//155 2112//184 -f 2103//180 2111//153 2117//160 -f 2105//182 2113//188 2110//155 -f 2108//181 2116//150 2115//186 -f 2106//187 2114//152 2113//188 -f 2109//185 2117//160 2116//150 -f 2107//177 2115//186 2114//152 -f 2125//167 2132//165 2131//164 -f 2130//178 2129//169 2122//170 -f 2127//171 2126//174 2118//172 -f 2126//174 2132//165 2125//167 -f 2131//164 2130//178 2123//168 -f 2129//169 2128//175 2121//176 -f 2130//178 2137//177 2136//187 -f 2134//179 2133//180 2126//174 -f 2126//174 2133//180 2139//185 -f 2138//181 2137//177 2130//178 -f 2129//169 2136//187 2135//182 -f 2132//165 2139//185 2138//181 -f 2134//179 2142//184 2141//153 -f 2120//183 2140//155 2142//184 -f 2133//180 2141//153 2147//160 -f 2135//182 2143//188 2140//155 -f 2138//181 2146//150 2145//186 -f 2136//187 2144//152 2143//188 -f 2139//185 2147//160 2146//150 -f 2137//177 2145//186 2144//152 -f 2155//189 2162//204 2161//163 -f 2153//191 2160//198 2159//192 -f 2157//194 2156//197 2148//195 -f 2156//197 2162//204 2155//189 -f 2154//190 2161//163 2160//198 -f 2152//193 2159//192 2158//199 -f 2160//198 2167//209 2166//201 -f 2164//202 2163//203 2156//197 -f 2163//203 2169//208 2162//204 -f 2168//205 2167//209 2160//198 -f 2159//192 2166//201 2165//206 -f 2162//204 2169//208 2168//205 -f 2164//202 2172//188 2171//152 -f 2150//207 2170//155 2172//188 -f 2163//203 2171//152 2177//186 -f 2165//206 2173//184 2170//155 -f 2168//205 2176//150 2175//160 -f 2166//201 2174//153 2173//184 -f 2169//208 2177//186 2176//150 -f 2167//209 2175//160 2174//153 -f 2185//189 2192//204 2191//163 -f 2190//198 2189//192 2182//193 -f 2187//194 2186//197 2178//195 -f 2186//197 2192//204 2185//189 -f 2191//163 2190//198 2183//191 -f 2182//193 2189//192 2188//199 -f 2197//209 2196//201 2189//192 -f 2187//194 2194//202 2193//203 -f 2193//203 2199//208 2192//204 -f 2198//205 2197//209 2190//198 -f 2189//192 2196//201 2195//206 -f 2199//208 2198//205 2191//163 -f 2194//202 2202//188 2201//152 -f 2180//207 2200//155 2202//188 -f 2193//203 2201//152 2207//186 -f 2195//206 2203//184 2200//155 -f 2198//205 2206//150 2205//160 -f 2196//201 2204//153 2203//184 -f 2198//205 2199//208 2207//186 -f 2196//201 2197//209 2205//160 +f 2070/245/165 2062/246/166 2063/247/167 +f 2061/248/168 2067/249/169 2060/250/170 +f 2065/251/171 2056/252/172 2057/253/173 +f 2064/254/174 2063/247/167 2056/252/172 +f 2069/255/164 2061/248/168 2062/246/166 +f 2060/250/170 2066/256/175 2059/257/176 +f 2075/258/177 2067/249/169 2068/259/178 +f 2072/260/179 2064/254/174 2065/251/171 +f 2071/261/180 2070/245/165 2064/254/174 +f 2076/262/181 2068/259/178 2069/255/164 +f 2067/249/169 2073/263/182 2066/256/175 +f 2070/245/165 2076/262/181 2069/255/164 +f 2058/264/183 2059/257/176 2066/256/175 +f 2066/256/175 2073/263/182 2058/264/183 +f 2057/253/173 2058/265/183 2065/251/171 +f 2065/251/171 2058/265/183 2072/260/179 +f 2072/266/179 2079/267/153 2071/268/180 +f 2058/269/183 2080/270/184 2072/266/179 +f 2071/268/180 2085/271/160 2077/272/185 +f 2073/273/182 2078/274/155 2058/275/183 +f 2076/262/181 2083/276/186 2075/258/177 +f 2074/277/187 2081/278/188 2073/273/182 +f 2077/272/185 2084/279/150 2076/262/181 +f 2075/258/177 2082/280/152 2074/277/187 +f 2093/281/167 2099/282/164 2092/283/166 +f 2098/284/178 2090/285/170 2091/286/168 +f 2095/287/171 2086/288/172 2087/289/173 +f 2094/290/174 2093/281/167 2086/288/172 +f 2099/282/164 2091/286/168 2092/283/166 +f 2097/291/169 2089/292/176 2090/285/170 +f 2098/284/178 2104/293/187 2097/291/169 +f 2102/294/179 2094/290/174 2095/287/171 +f 2094/290/174 2107/295/185 2100/296/165 +f 2106/297/181 2098/284/178 2099/282/164 +f 2097/291/169 2103/298/182 2096/299/175 +f 2100/296/165 2106/297/181 2099/282/164 +f 2088/300/183 2089/292/176 2096/299/175 +f 2096/299/175 2103/298/182 2088/300/183 +f 2087/289/173 2088/301/183 2095/287/171 +f 2095/287/171 2088/301/183 2102/294/179 +f 2102/302/179 2109/303/153 2101/304/180 +f 2088/305/183 2110/306/184 2102/302/179 +f 2101/304/180 2115/307/160 2107/295/185 +f 2103/308/182 2108/309/155 2088/310/183 +f 2106/297/181 2113/311/186 2105/312/177 +f 2104/313/187 2111/314/188 2103/308/182 +f 2107/295/185 2114/315/150 2106/297/181 +f 2105/312/177 2112/316/152 2104/313/187 +f 2159/317/189 2165/318/163 2158/319/190 +f 2157/320/191 2163/321/192 2156/322/193 +f 2161/323/194 2152/324/195 2153/325/196 +f 2160/326/197 2159/317/189 2152/324/195 +f 2158/319/190 2164/327/198 2157/320/191 +f 2156/322/193 2162/328/199 2155/329/200 +f 2164/327/198 2170/330/201 2163/321/192 +f 2168/331/202 2160/326/197 2161/323/194 +f 2167/332/203 2166/333/204 2160/326/197 +f 2172/334/205 2164/327/198 2165/318/163 +f 2163/321/192 2169/335/206 2162/328/199 +f 2166/333/204 2172/334/205 2165/318/163 +f 2154/336/207 2155/329/200 2162/328/199 +f 2162/328/199 2169/335/206 2154/336/207 +f 2153/325/196 2154/337/207 2161/323/194 +f 2161/323/194 2154/337/207 2168/331/202 +f 2168/338/202 2175/339/152 2167/340/203 +f 2154/341/207 2176/342/188 2168/338/202 +f 2167/340/203 2181/343/186 2173/344/208 +f 2169/345/206 2174/346/155 2154/347/207 +f 2172/334/205 2179/348/160 2171/349/209 +f 2170/350/201 2177/351/184 2169/345/206 +f 2173/344/208 2180/352/150 2172/334/205 +f 2171/349/209 2178/353/153 2170/350/201 +f 2189/354/189 2195/355/163 2188/356/190 +f 2194/357/198 2186/358/193 2187/359/191 +f 2191/360/194 2182/361/195 2183/362/196 +f 2190/363/197 2189/354/189 2182/361/195 +f 2195/355/163 2187/359/191 2188/356/190 +f 2186/358/193 2192/364/199 2185/365/200 +f 2201/366/209 2193/367/192 2194/357/198 +f 2191/360/194 2197/368/203 2190/363/197 +f 2197/368/203 2196/369/204 2190/363/197 +f 2202/370/205 2194/357/198 2195/355/163 +f 2193/367/192 2199/371/206 2192/364/199 +f 2203/372/208 2195/355/163 2196/369/204 +f 2184/373/207 2185/365/200 2192/364/199 +f 2192/364/199 2199/371/206 2184/373/207 +f 2183/362/196 2184/374/207 2191/360/194 +f 2191/360/194 2184/374/207 2198/375/202 +f 2198/376/202 2205/377/152 2197/378/203 +f 2184/379/207 2206/380/188 2198/376/202 +f 2197/378/203 2211/381/186 2203/372/208 +f 2199/382/206 2204/383/155 2184/384/207 +f 2202/370/205 2209/385/160 2201/366/209 +f 2200/386/201 2207/387/184 2199/382/206 +f 2202/370/205 2211/381/186 2210/388/150 +f 2200/386/201 2209/385/160 2208/389/153 +f 2070/245/165 2069/255/164 2062/246/166 +f 2061/248/168 2068/259/178 2067/249/169 +f 2065/251/171 2064/254/174 2056/252/172 +f 2064/254/174 2070/245/165 2063/247/167 +f 2069/255/164 2068/259/178 2061/248/168 +f 2060/250/170 2067/249/169 2066/256/175 +f 2075/258/177 2074/390/187 2067/249/169 +f 2072/260/179 2071/261/180 2064/254/174 +f 2071/261/180 2077/272/185 2070/245/165 +f 2076/262/181 2075/258/177 2068/259/178 +f 2067/249/169 2074/390/187 2073/263/182 +f 2070/245/165 2077/272/185 2076/262/181 +f 2072/266/179 2080/270/184 2079/267/153 +f 2058/269/183 2078/391/155 2080/270/184 +f 2071/268/180 2079/267/153 2085/271/160 +f 2073/273/182 2081/278/188 2078/274/155 +f 2076/262/181 2084/279/150 2083/276/186 +f 2074/277/187 2082/280/152 2081/278/188 +f 2077/272/185 2085/271/160 2084/279/150 +f 2075/258/177 2083/276/186 2082/280/152 +f 2093/281/167 2100/296/165 2099/282/164 +f 2098/284/178 2097/291/169 2090/285/170 +f 2095/287/171 2094/290/174 2086/288/172 +f 2094/290/174 2100/296/165 2093/281/167 +f 2099/282/164 2098/284/178 2091/286/168 +f 2097/291/169 2096/299/175 2089/292/176 +f 2098/284/178 2105/312/177 2104/293/187 +f 2102/294/179 2101/392/180 2094/290/174 +f 2094/290/174 2101/392/180 2107/295/185 +f 2106/297/181 2105/312/177 2098/284/178 +f 2097/291/169 2104/293/187 2103/298/182 +f 2100/296/165 2107/295/185 2106/297/181 +f 2102/302/179 2110/306/184 2109/303/153 +f 2088/305/183 2108/393/155 2110/306/184 +f 2101/304/180 2109/303/153 2115/307/160 +f 2103/308/182 2111/314/188 2108/309/155 +f 2106/297/181 2114/315/150 2113/311/186 +f 2104/313/187 2112/316/152 2111/314/188 +f 2107/295/185 2115/307/160 2114/315/150 +f 2105/312/177 2113/311/186 2112/316/152 +f 2159/317/189 2166/333/204 2165/318/163 +f 2157/320/191 2164/327/198 2163/321/192 +f 2161/323/194 2160/326/197 2152/324/195 +f 2160/326/197 2166/333/204 2159/317/189 +f 2158/319/190 2165/318/163 2164/327/198 +f 2156/322/193 2163/321/192 2162/328/199 +f 2164/327/198 2171/349/209 2170/330/201 +f 2168/331/202 2167/332/203 2160/326/197 +f 2167/332/203 2173/344/208 2166/333/204 +f 2172/334/205 2171/349/209 2164/327/198 +f 2163/321/192 2170/330/201 2169/335/206 +f 2166/333/204 2173/344/208 2172/334/205 +f 2168/338/202 2176/342/188 2175/339/152 +f 2154/341/207 2174/394/155 2176/342/188 +f 2167/340/203 2175/339/152 2181/343/186 +f 2169/345/206 2177/351/184 2174/346/155 +f 2172/334/205 2180/352/150 2179/348/160 +f 2170/350/201 2178/353/153 2177/351/184 +f 2173/344/208 2181/343/186 2180/352/150 +f 2171/349/209 2179/348/160 2178/353/153 +f 2189/354/189 2196/369/204 2195/355/163 +f 2194/357/198 2193/367/192 2186/358/193 +f 2191/360/194 2190/363/197 2182/361/195 +f 2190/363/197 2196/369/204 2189/354/189 +f 2195/355/163 2194/357/198 2187/359/191 +f 2186/358/193 2193/367/192 2192/364/199 +f 2201/366/209 2200/395/201 2193/367/192 +f 2191/360/194 2198/375/202 2197/368/203 +f 2197/368/203 2203/372/208 2196/369/204 +f 2202/370/205 2201/366/209 2194/357/198 +f 2193/367/192 2200/395/201 2199/371/206 +f 2203/372/208 2202/370/205 2195/355/163 +f 2198/376/202 2206/380/188 2205/377/152 +f 2184/379/207 2204/396/155 2206/380/188 +f 2197/378/203 2205/377/152 2211/381/186 +f 2199/382/206 2207/387/184 2204/383/155 +f 2202/370/205 2210/388/150 2209/385/160 +f 2200/386/201 2208/389/153 2207/387/184 +f 2202/370/205 2203/372/208 2211/381/186 +f 2200/386/201 2201/366/209 2209/385/160 o Strong_Rope +v 0.625000 7.661612 0.088388 +v 0.625000 7.625000 0.000000 +v 0.625000 7.661612 -0.088388 +v 0.625000 7.750000 -0.125000 +v 0.625000 7.838388 -0.088388 +v 0.625000 7.875000 0.000000 +v 0.625000 7.838388 0.088388 +v 0.625000 7.750000 0.125000 +v 1.000000 7.661612 0.088388 +v 1.000000 7.625000 0.000000 +v 1.000000 7.661612 -0.088388 +v 1.000000 7.750000 -0.125000 +v 1.000000 7.838388 -0.088388 +v 1.000000 7.875000 0.000000 +v 1.000000 7.838388 0.088388 +v 1.025888 7.661612 0.099112 +v 1.088388 7.625000 0.036612 +v 1.150888 7.661612 -0.025888 +v 1.176777 7.750000 -0.051777 +v 1.150888 7.838388 -0.025888 +v 1.088388 7.875000 0.036612 +v 1.025888 7.838388 0.099112 +v 1.036612 7.661612 0.125000 +v 1.125000 7.625000 0.125000 +v 1.213388 7.661612 0.125000 +v 1.250000 7.750000 0.125000 +v 1.213388 7.838388 0.125000 +v 1.125000 7.875000 0.125000 +v 1.036612 7.838388 0.125000 +v 1.000000 7.750000 0.125000 +v 1.036612 7.661612 2.875000 +v 1.125000 7.625000 2.875000 +v 1.213388 7.661612 2.875000 +v 1.250000 7.750000 2.875000 +v 1.213388 7.838388 2.875000 +v 1.125000 7.875000 2.875000 +v 1.036612 7.838388 2.875000 +v 1.025888 7.661612 2.900888 +v 1.088388 7.625000 2.963388 +v 1.150888 7.661612 3.025888 +v 1.176777 7.750000 3.051777 +v 1.150888 7.838388 3.025888 +v 1.088388 7.875000 2.963388 +v 1.025888 7.838388 2.900888 +v 1.000000 7.661612 2.911612 +v 1.000000 7.625000 3.000000 +v 1.000000 7.661612 3.088388 +v 1.000000 7.750000 3.125000 +v 1.000000 7.838388 3.088388 +v 1.000000 7.875000 3.000000 +v 1.000000 7.838388 2.911612 +v 1.000000 7.750000 2.875000 v 1.000000 5.500000 2.875000 v 1.000000 5.588388 2.911612 v 1.000000 5.625000 3.000000 @@ -5047,66 +5495,14 @@ v 1.000000 5.500000 -0.125000 v 1.000000 5.411612 -0.088388 v 1.000000 5.375000 0.000000 v 1.000000 5.411612 0.088388 -v 0.750000 5.500000 0.125000 -v 0.750000 5.588388 0.088388 -v 0.750000 5.625000 0.000000 -v 0.750000 5.588388 -0.088388 -v 0.750000 5.500000 -0.125000 -v 0.750000 5.411612 -0.088388 -v 0.750000 5.375000 0.000000 -v 0.750000 5.411612 0.088388 -v 1.000000 7.750000 2.875000 -v 1.000000 7.838388 2.911612 -v 1.000000 7.875000 3.000000 -v 1.000000 7.838388 3.088388 -v 1.000000 7.750000 3.125000 -v 1.000000 7.661612 3.088388 -v 1.000000 7.625000 3.000000 -v 1.000000 7.661612 2.911612 -v 1.025888 7.838388 2.900888 -v 1.088388 7.875000 2.963388 -v 1.150888 7.838388 3.025888 -v 1.176777 7.750000 3.051777 -v 1.150888 7.661612 3.025888 -v 1.088388 7.625000 2.963388 -v 1.025888 7.661612 2.900888 -v 1.036612 7.838388 2.875000 -v 1.125000 7.875000 2.875000 -v 1.213388 7.838388 2.875000 -v 1.250000 7.750000 2.875000 -v 1.213388 7.661612 2.875000 -v 1.125000 7.625000 2.875000 -v 1.036612 7.661612 2.875000 -v 1.000000 7.750000 0.125000 -v 1.036612 7.838388 0.125000 -v 1.125000 7.875000 0.125000 -v 1.213388 7.838388 0.125000 -v 1.250000 7.750000 0.125000 -v 1.213388 7.661612 0.125000 -v 1.125000 7.625000 0.125000 -v 1.036612 7.661612 0.125000 -v 1.025888 7.838388 0.099112 -v 1.088388 7.875000 0.036612 -v 1.150888 7.838388 -0.025888 -v 1.176777 7.750000 -0.051777 -v 1.150888 7.661612 -0.025888 -v 1.088388 7.625000 0.036612 -v 1.025888 7.661612 0.099112 -v 1.000000 7.838388 0.088388 -v 1.000000 7.875000 0.000000 -v 1.000000 7.838388 -0.088388 -v 1.000000 7.750000 -0.125000 -v 1.000000 7.661612 -0.088388 -v 1.000000 7.625000 0.000000 -v 1.000000 7.661612 0.088388 -v 0.625000 7.750000 0.125000 -v 0.625000 7.838388 0.088388 -v 0.625000 7.875000 0.000000 -v 0.625000 7.838388 -0.088388 -v 0.625000 7.750000 -0.125000 -v 0.625000 7.661612 -0.088388 -v 0.625000 7.625000 0.000000 -v 0.625000 7.661612 0.088388 +v 0.625000 5.500000 0.125000 +v 0.625000 5.588388 0.088388 +v 0.625000 5.625000 0.000000 +v 0.625000 5.588388 -0.088388 +v 0.625000 5.500000 -0.125000 +v 0.625000 5.411612 -0.088388 +v 0.625000 5.375000 0.000000 +v 0.625000 5.411612 0.088388 v -0.250000 8.500000 2.500000 v 0.250000 8.500000 2.500000 v -0.250000 9.000000 2.500000 @@ -5127,256 +5523,458 @@ v 0.000000 10.687500 2.000000 v 0.000000 10.625000 1.500000 v 0.000000 10.625000 1.000000 v 0.000000 10.687500 0.500000 +v 0.000000 11.000000 2.500000 +v 0.000000 10.875000 2.500000 +v 0.000000 11.000000 0.000000 +v 0.000000 10.875000 0.000000 +v 0.000000 10.812500 0.500000 +v 0.000000 10.750000 1.000000 +v 0.000000 10.750000 1.500000 +v 0.000000 10.812500 2.000000 +v 0.000000 10.687500 2.000000 +v 0.000000 10.625000 1.500000 +v 0.000000 10.625000 1.000000 +v 0.000000 10.687500 0.500000 +vt 0.692308 0.449438 +vt 0.666667 0.651685 +vt 0.666667 0.449438 +vt 0.769231 0.449438 +vt 0.743590 0.651685 +vt 0.743590 0.449438 +vt 0.717949 0.449438 +vt 0.692308 0.651685 +vt 0.717949 0.651685 +vt 0.461538 0.910112 +vt 0.487179 0.898876 +vt 0.487179 0.910112 +vt 0.358974 0.898876 +vt 0.384615 0.910112 +vt 0.358974 0.910112 +vt 0.384615 0.898876 +vt 0.410256 0.910112 +vt 0.410256 0.898876 +vt 0.435897 0.910112 +vt 0.461538 0.898876 +vt 0.461538 0.910112 +vt 0.487179 0.898876 +vt 0.461538 0.898876 +vt 0.384615 0.910112 +vt 0.358974 0.898876 +vt 0.358974 0.910112 +vt 0.410256 0.910112 +vt 0.384615 0.898876 +vt 0.435897 0.910112 +vt 0.410256 0.898876 +vt 0.435897 0.898876 +vt 0.769231 0.651685 +vt 0.435897 0.898876 +vt 0.487179 0.910112 +vt 0.705128 0.966292 +vt 0.698718 1.000000 +vt 0.698718 0.966292 +vt 0.685897 0.966292 +vt 0.679487 1.000000 +vt 0.679487 0.966292 +vt 0.692308 1.000000 +vt 0.692308 0.966292 +vt 0.673077 0.966292 +vt 0.666667 1.000000 +vt 0.666667 0.966292 +vt 0.711538 0.966292 +vt 0.705128 1.000000 +vt 0.717949 0.966292 +vt 0.711538 1.000000 +vt 0.673077 1.000000 +vt 0.685897 1.000000 +vt 0.711538 0.949438 +vt 0.717949 0.949438 +vt 0.711538 0.955056 +vt 0.711538 0.943820 +vt 0.673077 0.949438 +vt 0.673077 0.955056 +vt 0.666667 0.949438 +vt 0.673077 0.943820 +vt 0.685897 0.949438 +vt 0.679487 0.960674 +vt 0.679487 0.949438 +vt 0.698718 0.949438 +vt 0.692308 0.949438 +vt 0.705128 0.960674 +vt 0.705128 0.949438 +vt 0.685897 0.932584 +vt 0.698718 0.932584 +vt 0.679487 0.938202 +vt 0.692308 0.932584 +vt 0.705128 0.938202 +vt 0.685897 0.685393 +vt 0.679487 0.932584 +vt 0.679487 0.685393 +vt 0.698718 0.685393 +vt 0.692308 0.685393 +vt 0.673077 0.685393 +vt 0.666667 0.932584 +vt 0.666667 0.685393 +vt 0.711538 0.685393 +vt 0.705128 0.932584 +vt 0.705128 0.685393 +vt 0.717949 0.685393 +vt 0.711538 0.932584 +vt 0.673077 0.932584 +vt 0.711538 0.668539 +vt 0.717949 0.668539 +vt 0.711538 0.674157 +vt 0.711538 0.662921 +vt 0.673077 0.668539 +vt 0.673077 0.674157 +vt 0.666667 0.668539 +vt 0.673077 0.662921 +vt 0.679487 0.668539 +vt 0.685897 0.668539 +vt 0.692308 0.668539 +vt 0.698718 0.668539 +vt 0.705128 0.679775 +vt 0.705128 0.668539 +vt 0.679487 0.679775 +vt 0.698718 0.651685 +vt 0.705128 0.657303 +vt 0.685897 0.651685 +vt 0.679487 0.657303 +vt 0.692308 0.651685 +vt 0.692308 0.668539 +vt 0.685897 0.651685 +vt 0.692308 0.651685 +vt 0.679487 0.657303 +vt 0.673077 0.668539 +vt 0.673077 0.662921 +vt 0.711538 0.662921 +vt 0.705128 0.668539 +vt 0.705128 0.657303 +vt 0.698718 0.651685 +vt 0.679487 0.668539 +vt 0.698718 0.685393 +vt 0.698718 0.668539 +vt 0.685897 0.685393 +vt 0.685897 0.668539 +vt 0.679487 0.679775 +vt 0.711538 0.668539 +vt 0.705128 0.679775 +vt 0.666667 0.668539 +vt 0.673077 0.674157 +vt 0.717949 0.668539 +vt 0.711538 0.674157 +vt 0.705128 0.685393 +vt 0.698718 0.932584 +vt 0.692308 0.685393 +vt 0.685897 0.932584 +vt 0.679487 0.685393 +vt 0.673077 0.932584 +vt 0.673077 0.685393 +vt 0.717949 0.685393 +vt 0.711538 0.932584 +vt 0.711538 0.685393 +vt 0.705128 0.932584 +vt 0.666667 0.932584 +vt 0.666667 0.685393 +vt 0.692308 0.932584 +vt 0.679487 0.932584 +vt 0.711538 0.943820 +vt 0.705128 0.949438 +vt 0.705128 0.938202 +vt 0.692308 0.949438 +vt 0.679487 0.949438 +vt 0.679487 0.938202 +vt 0.698718 0.949438 +vt 0.685897 0.949438 +vt 0.673077 0.943820 +vt 0.673077 0.949438 +vt 0.705128 0.960674 +vt 0.698718 0.966292 +vt 0.692308 0.966292 +vt 0.685897 0.966292 +vt 0.673077 0.955056 +vt 0.711538 0.949438 +vt 0.679487 0.960674 +vt 0.666667 0.949438 +vt 0.717949 0.949438 +vt 0.711538 0.955056 +vt 0.685897 1.000000 +vt 0.679487 0.966292 +vt 0.673077 1.000000 +vt 0.673077 0.966292 +vt 0.717949 0.966292 +vt 0.711538 1.000000 +vt 0.711538 0.966292 +vt 0.705128 1.000000 +vt 0.705128 0.966292 +vt 0.666667 1.000000 +vt 0.666667 0.966292 +vt 0.692308 1.000000 +vt 0.679487 1.000000 +vt 0.698718 1.000000 +vt 0.717949 1.000000 +vt 0.717949 0.932584 +vt 0.717949 0.932584 +vt 0.717949 1.000000 vn 0.0000 -1.0000 0.0000 vn 1.0000 0.0000 0.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.7071 0.0000 0.7071 -vn 0.2962 0.6332 0.7150 -vn 0.3827 0.0000 0.9239 -vn 0.0392 0.9947 0.0948 -vn -0.4617 0.7573 -0.4617 -vn -0.2611 0.7311 -0.6303 -vn -0.2611 -0.7311 -0.6303 -vn 0.0670 -0.9955 0.0670 -vn 0.0392 -0.9947 0.0948 -vn 0.2962 -0.6332 0.7150 -vn 0.0670 0.9955 0.0670 -vn 0.7194 -0.6794 0.1447 -vn 0.5293 -0.6630 0.5293 -vn 0.7194 0.6794 0.1447 -vn 0.5293 0.6630 0.5293 -vn 0.0473 0.9987 0.0196 -vn -0.4617 -0.7573 -0.4617 -vn 0.0473 -0.9987 0.0196 -vn -0.9809 0.0000 -0.1944 -vn -0.6737 0.7263 -0.1363 -vn -0.6737 -0.7263 -0.1363 -vn 0.7194 -0.6794 -0.1447 -vn 0.9824 0.0000 0.1866 -vn 0.7194 0.6794 -0.1447 -vn -0.6737 0.7263 0.1363 -vn -0.6737 -0.7263 0.1363 -vn 0.0473 -0.9987 -0.0196 +vn 0.0196 -0.9987 -0.0473 +vn 0.0000 -0.7071 -0.7071 +vn 0.1447 -0.6794 -0.7194 +vn 0.1447 0.6794 -0.7194 +vn 0.0196 0.9987 -0.0473 +vn 0.0000 0.0000 -1.0000 +vn 0.1866 0.0000 -0.9824 +vn -0.1363 0.7263 0.6737 +vn 0.0000 0.0000 1.0000 vn -0.7071 0.0000 0.7071 -vn 0.9824 0.0000 -0.1866 -vn 0.0473 0.9987 -0.0196 -vn 0.0670 -0.9955 -0.0670 -vn 0.7071 0.0000 -0.7071 +vn -0.1363 -0.7263 0.6737 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.4617 -0.7573 0.4617 +vn -0.6737 -0.7263 0.1363 +vn -0.4617 0.7573 0.4617 +vn -0.6737 0.7263 0.1363 +vn 0.5293 0.6630 -0.5293 vn 0.0670 0.9955 -0.0670 vn 0.5293 -0.6630 -0.5293 -vn 0.5293 0.6630 -0.5293 -vn -0.4617 0.7573 0.4617 -vn 0.0196 -0.9987 -0.0473 -vn 0.1447 -0.6794 -0.7194 -vn 0.1866 0.0000 -0.9824 -vn 0.1447 0.6794 -0.7194 -vn -0.1363 0.7263 0.6737 -vn -0.4617 -0.7573 0.4617 -vn 0.0196 0.9987 -0.0473 -vn -0.1363 -0.7263 0.6737 -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.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0670 -0.9955 -0.0670 +vn 0.7194 0.6794 -0.1447 +vn 0.7194 -0.6794 -0.1447 +vn 0.0473 0.9987 -0.0196 +vn 0.9824 0.0000 -0.1866 +vn 0.0473 -0.9987 -0.0196 +vn 0.7194 0.6794 0.1447 +vn 0.0473 0.9987 0.0196 +vn 0.7194 -0.6794 0.1447 +vn 0.9824 0.0000 0.1866 +vn -0.6737 0.7263 -0.1363 +vn -0.9809 0.0000 -0.1944 +vn -0.6737 -0.7263 -0.1363 +vn 0.0473 -0.9987 0.0196 +vn -0.4617 -0.7573 -0.4617 +vn -0.2611 -0.7311 -0.6303 +vn -0.4617 0.7573 -0.4617 +vn -0.2611 0.7311 -0.6303 +vn 0.0670 0.9955 0.0670 +vn 0.5293 0.6630 0.5293 +vn 0.7071 0.0000 0.7071 +vn 0.5293 -0.6630 0.5293 +vn 0.0670 -0.9955 0.0670 +vn 0.2962 -0.6332 0.7150 +vn 0.0392 -0.9947 0.0948 +vn 0.2962 0.6332 0.7150 +vn 0.0392 0.9947 0.0948 +vn 0.3827 0.0000 0.9239 s off -f 2316//210 2321//210 2317//210 -f 2317//211 2323//211 2319//211 -f 2318//212 2320//212 2316//212 -f 2319//213 2322//213 2318//213 -f 2328//211 2327//211 2326//211 -f 2325//211 2331//211 2324//211 -f 2332//211 2330//211 2331//211 -f 2333//211 2329//211 2330//211 -f 2329//211 2335//211 2328//211 -f 2316//210 2320//210 2321//210 -f 2317//211 2321//211 2323//211 -f 2318//212 2322//212 2320//212 -f 2319//213 2323//213 2322//213 -f 2328//211 2335//211 2327//211 -f 2325//211 2332//211 2331//211 -f 2332//211 2333//211 2330//211 -f 2333//211 2334//211 2329//211 -f 2329//211 2334//211 2335//211 +f 2316/397/210 2321/398/210 2317/399/210 +f 2317/400/211 2323/401/211 2319/402/211 +f 2318/403/212 2320/404/212 2316/397/212 +f 2319/402/213 2322/405/213 2318/403/213 +f 2328/406/211 2327/407/211 2326/408/211 +f 2325/409/211 2331/410/211 2324/411/211 +f 2332/412/211 2330/413/211 2331/410/211 +f 2333/414/211 2329/415/211 2330/413/211 +f 2329/415/211 2335/416/211 2328/406/211 +f 2340/417/212 2339/418/212 2347/419/212 +f 2343/420/212 2337/421/212 2336/422/212 +f 2342/423/212 2344/424/212 2343/420/212 +f 2341/425/212 2345/426/212 2342/423/212 +f 2341/425/212 2347/419/212 2346/427/212 +f 2316/397/210 2320/404/210 2321/398/210 +f 2317/400/211 2321/428/211 2323/401/211 +f 2318/403/212 2322/405/212 2320/404/212 +f 2319/402/213 2323/401/213 2322/405/213 +f 2328/406/211 2335/416/211 2327/407/211 +f 2325/409/211 2332/412/211 2331/410/211 +f 2332/412/211 2333/414/211 2330/413/211 +f 2333/414/211 2334/429/211 2329/415/211 +f 2329/415/211 2334/429/211 2335/416/211 +f 2340/417/212 2338/430/212 2339/418/212 +f 2343/420/212 2344/424/212 2337/421/212 +f 2342/423/212 2345/426/212 2344/424/212 +f 2341/425/212 2346/427/212 2345/426/212 +f 2341/425/212 2340/417/212 2347/419/212 s 1 -f 2223//214 2215//215 2216//216 -f 2214//217 2220//218 2213//219 -f 2219//220 2225//221 2218//222 -f 2217//223 2223//214 2216//216 -f 2215//215 2221//224 2214//217 -f 2225//221 2217//223 2218//222 -f 2225//221 2231//225 2224//226 -f 2223//214 2229//227 2222//228 -f 2228//229 2220//218 2221//224 -f 2226//230 2232//231 2225//221 -f 2231//225 2223//214 2224//226 -f 2229//227 2221//224 2222//228 -f 2212//232 2213//219 2220//218 -f 2220//218 2227//233 2212//232 -f 2219//220 2212//232 2226//230 -f 2226//230 2212//232 2233//234 -f 2232//231 2239//235 2231//225 -f 2230//236 2237//237 2229//227 -f 2228//229 2235//238 2227//233 -f 2212//232 2241//239 2233//234 -f 2233//234 2240//240 2232//231 -f 2227//233 2234//241 2212//232 -f 2231//225 2238//242 2230//236 -f 2229//227 2236//243 2228//229 -f 2241//239 2247//244 2240//240 -f 2239//235 2245//245 2238//242 -f 2237//237 2243//246 2236//243 -f 2240//240 2246//247 2239//235 -f 2237//237 2245//245 2244//248 -f 2235//238 2243//246 2242//249 -f 2246//247 2254//250 2253//251 -f 2244//248 2252//252 2251//253 -f 2243//246 2249//254 2242//249 -f 2248//255 2254//250 2247//244 -f 2246//247 2252//252 2245//245 -f 2244//248 2250//256 2243//246 -f 2235//238 2242//249 2234//241 -f 2242//249 2249//254 2234//241 -f 2234//241 2248//255 2241//239 -f 2248//255 2234//241 2255//257 -f 2252//252 2259//258 2251//253 -f 2250//256 2257//259 2249//254 -f 2234//241 2263//260 2255//257 -f 2255//257 2262//210 2254//250 -f 2249//254 2256//261 2234//241 -f 2253//251 2260//262 2252//252 -f 2251//253 2258//213 2250//256 -f 2254//250 2261//263 2253//251 -f 2275//214 2267//215 2268//216 -f 2266//217 2272//218 2265//219 -f 2271//220 2277//221 2270//222 -f 2269//223 2275//214 2268//216 -f 2267//215 2273//224 2266//217 -f 2277//221 2269//223 2270//222 -f 2277//221 2283//225 2276//226 -f 2275//214 2281//227 2274//228 -f 2280//229 2272//218 2273//224 -f 2278//230 2284//231 2277//221 -f 2283//225 2275//214 2276//226 -f 2281//227 2273//224 2274//228 -f 2264//232 2265//219 2272//218 -f 2272//218 2279//233 2264//232 -f 2271//220 2264//232 2278//230 -f 2278//230 2264//232 2285//234 -f 2284//231 2291//235 2283//225 -f 2282//236 2289//237 2281//227 -f 2280//229 2287//238 2279//233 -f 2264//232 2293//239 2285//234 -f 2285//234 2292//240 2284//231 -f 2279//233 2286//241 2264//232 -f 2283//225 2290//242 2282//236 -f 2281//227 2288//243 2280//229 -f 2292//240 2300//255 2299//244 -f 2291//235 2297//245 2290//242 -f 2289//237 2295//246 2288//243 -f 2291//235 2299//244 2298//247 -f 2289//237 2297//245 2296//248 -f 2287//238 2295//246 2294//249 -f 2299//244 2305//251 2298//247 -f 2296//248 2304//252 2303//253 -f 2295//246 2301//254 2294//249 -f 2300//255 2306//250 2299//244 -f 2298//247 2304//252 2297//245 -f 2296//248 2302//256 2295//246 -f 2287//238 2294//249 2286//241 -f 2294//249 2301//254 2286//241 -f 2286//241 2300//255 2293//239 -f 2300//255 2286//241 2307//257 -f 2304//252 2311//258 2303//253 -f 2302//256 2309//259 2301//254 -f 2286//241 2315//260 2307//257 -f 2307//257 2314//210 2306//250 -f 2301//254 2308//261 2286//241 -f 2305//251 2312//262 2304//252 -f 2303//253 2310//213 2302//256 -f 2306//250 2313//263 2305//251 -f 2223//214 2222//228 2215//215 -f 2214//217 2221//224 2220//218 -f 2219//220 2226//230 2225//221 -f 2217//223 2224//226 2223//214 -f 2215//215 2222//228 2221//224 -f 2225//221 2224//226 2217//223 -f 2225//221 2232//231 2231//225 -f 2223//214 2230//236 2229//227 -f 2228//229 2227//233 2220//218 -f 2226//230 2233//234 2232//231 -f 2231//225 2230//236 2223//214 -f 2229//227 2228//229 2221//224 -f 2232//231 2240//240 2239//235 -f 2230//236 2238//242 2237//237 -f 2228//229 2236//243 2235//238 -f 2212//232 2234//241 2241//239 -f 2233//234 2241//239 2240//240 -f 2227//233 2235//238 2234//241 -f 2231//225 2239//235 2238//242 -f 2229//227 2237//237 2236//243 -f 2241//239 2248//255 2247//244 -f 2239//235 2246//247 2245//245 -f 2237//237 2244//248 2243//246 -f 2240//240 2247//244 2246//247 -f 2237//237 2238//242 2245//245 -f 2235//238 2236//243 2243//246 -f 2246//247 2247//244 2254//250 -f 2244//248 2245//245 2252//252 -f 2243//246 2250//256 2249//254 -f 2248//255 2255//257 2254//250 -f 2246//247 2253//251 2252//252 -f 2244//248 2251//253 2250//256 -f 2252//252 2260//262 2259//258 -f 2250//256 2258//213 2257//259 -f 2234//241 2256//261 2263//260 -f 2255//257 2263//260 2262//210 -f 2249//254 2257//259 2256//261 -f 2253//251 2261//263 2260//262 -f 2251//253 2259//258 2258//213 -f 2254//250 2262//210 2261//263 -f 2275//214 2274//228 2267//215 -f 2266//217 2273//224 2272//218 -f 2271//220 2278//230 2277//221 -f 2269//223 2276//226 2275//214 -f 2267//215 2274//228 2273//224 -f 2277//221 2276//226 2269//223 -f 2277//221 2284//231 2283//225 -f 2275//214 2282//236 2281//227 -f 2280//229 2279//233 2272//218 -f 2278//230 2285//234 2284//231 -f 2283//225 2282//236 2275//214 -f 2281//227 2280//229 2273//224 -f 2284//231 2292//240 2291//235 -f 2282//236 2290//242 2289//237 -f 2280//229 2288//243 2287//238 -f 2264//232 2286//241 2293//239 -f 2285//234 2293//239 2292//240 -f 2279//233 2287//238 2286//241 -f 2283//225 2291//235 2290//242 -f 2281//227 2289//237 2288//243 -f 2292//240 2293//239 2300//255 -f 2291//235 2298//247 2297//245 -f 2289//237 2296//248 2295//246 -f 2291//235 2292//240 2299//244 -f 2289//237 2290//242 2297//245 -f 2287//238 2288//243 2295//246 -f 2299//244 2306//250 2305//251 -f 2296//248 2297//245 2304//252 -f 2295//246 2302//256 2301//254 -f 2300//255 2307//257 2306//250 -f 2298//247 2305//251 2304//252 -f 2296//248 2303//253 2302//256 -f 2304//252 2312//262 2311//258 -f 2302//256 2310//213 2309//259 -f 2286//241 2308//261 2315//260 -f 2307//257 2315//260 2314//210 -f 2301//254 2309//259 2308//261 -f 2305//251 2313//263 2312//262 -f 2303//253 2311//258 2310//213 -f 2306//250 2314//210 2313//263 +f 2221/431/214 2214/432/215 2222/433/216 +f 2224/434/217 2217/435/213 2225/436/218 +f 2222/433/216 2215/437/219 2223/438/220 +f 2226/439/221 2219/440/222 2241/441/223 +f 2220/442/224 2213/443/210 2221/431/214 +f 2241/444/223 2212/445/225 2220/442/224 +f 2225/436/218 2218/446/226 2226/439/221 +f 2223/438/220 2216/447/227 2224/434/217 +f 2227/448/228 2241/449/223 2220/450/224 +f 2241/449/223 2227/448/228 2234/451/229 +f 2233/452/230 2226/453/221 2241/454/223 +f 2240/455/231 2233/452/230 2241/454/223 +f 2231/456/232 2225/457/218 2232/458/233 +f 2229/459/234 2223/438/220 2230/460/235 +f 2227/448/228 2221/461/214 2228/462/236 +f 2232/458/233 2226/453/221 2233/452/230 +f 2231/456/232 2223/438/220 2224/434/217 +f 2228/462/236 2222/433/216 2229/459/234 +f 2240/455/231 2232/458/233 2233/452/230 +f 2238/463/237 2230/460/235 2231/456/232 +f 2236/464/238 2228/462/236 2229/459/234 +f 2238/463/237 2232/458/233 2239/465/239 +f 2236/464/238 2230/460/235 2237/466/240 +f 2235/467/241 2227/448/228 2228/462/236 +f 2246/468/242 2239/469/239 2247/470/243 +f 2244/471/244 2237/466/240 2245/472/245 +f 2248/473/246 2241/474/223 2263/475/247 +f 2242/476/248 2235/477/241 2243/478/249 +f 2263/479/247 2234/480/229 2242/476/248 +f 2247/470/243 2240/481/231 2248/473/246 +f 2245/472/245 2238/463/237 2246/468/242 +f 2243/478/249 2236/464/238 2244/471/244 +f 2249/482/250 2263/483/247 2242/484/248 +f 2256/485/251 2263/483/247 2249/482/250 +f 2255/486/252 2248/487/246 2263/488/247 +f 2263/488/247 2262/489/253 2255/486/252 +f 2246/468/242 2254/490/254 2253/491/255 +f 2244/471/244 2252/492/256 2251/493/257 +f 2249/482/250 2243/494/249 2250/495/258 +f 2247/496/243 2255/486/252 2254/490/254 +f 2252/492/256 2246/468/242 2253/491/255 +f 2250/495/258 2244/471/244 2251/493/257 +f 2250/495/258 2258/497/259 2257/498/260 +f 2260/499/261 2254/490/254 2261/500/262 +f 2258/497/259 2252/492/256 2259/501/263 +f 2256/485/251 2250/495/258 2257/498/260 +f 2261/500/262 2255/486/252 2262/489/253 +f 2252/492/256 2260/499/261 2259/501/263 +f 2275/502/256 2267/503/261 2268/504/263 +f 2266/505/262 2272/506/252 2265/507/253 +f 2271/508/251 2277/509/258 2270/510/260 +f 2269/511/259 2275/502/256 2268/504/263 +f 2267/503/261 2273/512/254 2266/505/262 +f 2277/509/258 2269/511/259 2270/510/260 +f 2277/509/258 2283/513/244 2276/514/257 +f 2275/502/256 2281/515/242 2274/516/255 +f 2280/517/243 2272/506/252 2273/512/254 +f 2278/518/250 2284/519/249 2277/509/258 +f 2283/513/244 2275/502/256 2276/514/257 +f 2281/515/242 2273/512/254 2274/516/255 +f 2264/520/247 2265/507/253 2272/506/252 +f 2272/506/252 2279/521/246 2264/520/247 +f 2271/508/251 2264/522/247 2278/518/250 +f 2278/518/250 2264/522/247 2285/523/248 +f 2284/524/249 2291/525/238 2283/513/244 +f 2282/526/245 2289/527/237 2281/515/242 +f 2280/528/243 2287/529/231 2279/530/246 +f 2264/531/247 2293/532/229 2285/533/248 +f 2285/533/248 2292/534/241 2284/524/249 +f 2279/530/246 2286/535/223 2264/536/247 +f 2283/513/244 2290/537/240 2282/526/245 +f 2281/515/242 2288/538/239 2280/528/243 +f 2293/539/229 2299/540/236 2292/541/241 +f 2291/525/238 2297/542/235 2290/537/240 +f 2289/527/237 2295/543/233 2288/544/239 +f 2292/541/241 2298/545/234 2291/525/238 +f 2289/527/237 2297/542/235 2296/546/232 +f 2287/547/231 2295/543/233 2294/548/230 +f 2298/545/234 2306/549/214 2305/550/216 +f 2296/546/232 2304/551/220 2303/552/217 +f 2295/543/233 2301/553/221 2294/548/230 +f 2300/554/228 2306/549/214 2299/540/236 +f 2298/545/234 2304/551/220 2297/542/235 +f 2296/546/232 2302/555/218 2295/543/233 +f 2287/547/231 2294/548/230 2286/556/223 +f 2294/548/230 2301/553/221 2286/556/223 +f 2286/557/223 2300/554/228 2293/539/229 +f 2300/554/228 2286/557/223 2307/558/224 +f 2304/551/220 2311/559/227 2303/552/217 +f 2302/560/218 2309/561/226 2301/562/221 +f 2286/563/223 2315/564/225 2307/565/224 +f 2307/565/224 2314/566/210 2306/567/214 +f 2301/562/221 2308/568/222 2286/569/223 +f 2305/550/216 2312/570/219 2304/551/220 +f 2303/552/217 2310/571/213 2302/560/218 +f 2306/567/214 2313/572/215 2305/550/216 +f 2221/431/214 2213/443/210 2214/432/215 +f 2224/434/217 2216/447/227 2217/435/213 +f 2222/433/216 2214/432/215 2215/437/219 +f 2226/439/221 2218/446/226 2219/440/222 +f 2220/442/224 2212/445/225 2213/443/210 +f 2241/444/223 2219/573/222 2212/445/225 +f 2225/436/218 2217/435/213 2218/446/226 +f 2223/438/220 2215/437/219 2216/447/227 +f 2231/456/232 2224/434/217 2225/457/218 +f 2229/459/234 2222/433/216 2223/438/220 +f 2227/448/228 2220/450/224 2221/461/214 +f 2232/458/233 2225/457/218 2226/453/221 +f 2231/456/232 2230/460/235 2223/438/220 +f 2228/462/236 2221/461/214 2222/433/216 +f 2240/455/231 2239/465/239 2232/458/233 +f 2238/463/237 2237/466/240 2230/460/235 +f 2236/464/238 2235/467/241 2228/462/236 +f 2238/463/237 2231/456/232 2232/458/233 +f 2236/464/238 2229/459/234 2230/460/235 +f 2235/467/241 2234/451/229 2227/448/228 +f 2246/468/242 2238/463/237 2239/469/239 +f 2244/471/244 2236/464/238 2237/466/240 +f 2248/473/246 2240/481/231 2241/474/223 +f 2242/476/248 2234/480/229 2235/477/241 +f 2263/479/247 2241/574/223 2234/480/229 +f 2247/470/243 2239/469/239 2240/481/231 +f 2245/472/245 2237/466/240 2238/463/237 +f 2243/478/249 2235/477/241 2236/464/238 +f 2246/468/242 2247/496/243 2254/490/254 +f 2244/471/244 2245/472/245 2252/492/256 +f 2249/482/250 2242/484/248 2243/494/249 +f 2247/496/243 2248/487/246 2255/486/252 +f 2252/492/256 2245/472/245 2246/468/242 +f 2250/495/258 2243/494/249 2244/471/244 +f 2250/495/258 2251/493/257 2258/497/259 +f 2260/499/261 2253/491/255 2254/490/254 +f 2258/497/259 2251/493/257 2252/492/256 +f 2256/485/251 2249/482/250 2250/495/258 +f 2261/500/262 2254/490/254 2255/486/252 +f 2252/492/256 2253/491/255 2260/499/261 +f 2275/502/256 2274/516/255 2267/503/261 +f 2266/505/262 2273/512/254 2272/506/252 +f 2271/508/251 2278/518/250 2277/509/258 +f 2269/511/259 2276/514/257 2275/502/256 +f 2267/503/261 2274/516/255 2273/512/254 +f 2277/509/258 2276/514/257 2269/511/259 +f 2277/509/258 2284/519/249 2283/513/244 +f 2275/502/256 2282/526/245 2281/515/242 +f 2280/517/243 2279/521/246 2272/506/252 +f 2278/518/250 2285/523/248 2284/519/249 +f 2283/513/244 2282/526/245 2275/502/256 +f 2281/515/242 2280/517/243 2273/512/254 +f 2284/524/249 2292/534/241 2291/525/238 +f 2282/526/245 2290/537/240 2289/527/237 +f 2280/528/243 2288/538/239 2287/529/231 +f 2264/531/247 2286/575/223 2293/532/229 +f 2285/533/248 2293/532/229 2292/534/241 +f 2279/530/246 2287/529/231 2286/535/223 +f 2283/513/244 2291/525/238 2290/537/240 +f 2281/515/242 2289/527/237 2288/538/239 +f 2293/539/229 2300/554/228 2299/540/236 +f 2291/525/238 2298/545/234 2297/542/235 +f 2289/527/237 2296/546/232 2295/543/233 +f 2292/541/241 2299/540/236 2298/545/234 +f 2289/527/237 2290/537/240 2297/542/235 +f 2287/547/231 2288/544/239 2295/543/233 +f 2298/545/234 2299/540/236 2306/549/214 +f 2296/546/232 2297/542/235 2304/551/220 +f 2295/543/233 2302/555/218 2301/553/221 +f 2300/554/228 2307/558/224 2306/549/214 +f 2298/545/234 2305/550/216 2304/551/220 +f 2296/546/232 2303/552/217 2302/555/218 +f 2304/551/220 2312/570/219 2311/559/227 +f 2302/560/218 2310/571/213 2309/561/226 +f 2286/563/223 2308/576/222 2315/564/225 +f 2307/565/224 2315/564/225 2314/566/210 +f 2301/562/221 2309/561/226 2308/568/222 +f 2305/550/216 2313/572/215 2312/570/219 +f 2303/552/217 2311/559/227 2310/571/213 +f 2306/567/214 2314/566/210 2313/572/215 o Strong_Pivot v 0.750000 1.500000 -2.750000 v 0.250000 1.500000 -2.750000 @@ -5410,53 +6008,92 @@ v -0.687500 4.500000 -2.812500 v -0.312500 4.500000 -2.812500 v -0.687500 4.500000 -3.187500 v -0.312500 4.500000 -3.187500 -vn 0.0000 -1.0000 0.0000 +vt 0.794872 0.224719 +vt 0.820513 0.179775 +vt 0.820513 0.224719 +vt 0.897436 0.000000 +vt 0.871795 0.179775 +vt 0.871795 0.000000 +vt 0.820513 0.000000 +vt 0.794872 0.179775 +vt 0.794872 0.000000 +vt 0.846154 0.000000 +vt 0.846154 0.179775 +vt 0.794872 0.224719 +vt 0.820513 0.179775 +vt 0.820513 0.224719 +vt 0.897436 0.000000 +vt 0.871795 0.179775 +vt 0.871795 0.000000 +vt 0.820513 0.000000 +vt 0.794872 0.179775 +vt 0.794872 0.000000 +vt 0.846154 0.000000 +vt 0.846154 0.179775 +vt 0.839744 0.269663 +vt 0.820513 0.179775 +vt 0.839744 0.179775 +vt 0.878205 0.269663 +vt 0.858974 0.179775 +vt 0.878205 0.179775 +vt 0.897436 0.269663 +vt 0.897436 0.179775 +vt 0.858974 0.269663 +vt 0.839744 0.269663 +vt 0.820513 0.179775 +vt 0.839744 0.179775 +vt 0.878205 0.269663 +vt 0.858974 0.179775 +vt 0.878205 0.179775 +vt 0.897436 0.269663 +vt 0.897436 0.179775 +vt 0.858974 0.269663 +vt 0.897436 0.179775 +vt 0.897436 0.179775 +vt 0.820513 0.269663 +vt 0.820513 0.269663 vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 s off -f 2338//264 2336//264 2337//264 -f 2341//265 2343//265 2340//265 -f 2339//266 2341//266 2336//266 -f 2338//267 2342//267 2339//267 -f 2337//268 2343//268 2338//268 -f 2336//269 2340//269 2337//269 -f 2346//264 2344//264 2345//264 -f 2349//265 2351//265 2348//265 -f 2347//266 2349//266 2344//266 -f 2346//267 2350//267 2347//267 -f 2345//268 2351//268 2346//268 -f 2344//269 2348//269 2345//269 -f 2358//267 2355//267 2354//267 -f 2357//269 2352//269 2353//269 -f 2359//266 2353//266 2355//266 -f 2356//268 2354//268 2352//268 -f 2366//267 2363//267 2362//267 -f 2365//269 2360//269 2361//269 -f 2367//266 2361//266 2363//266 -f 2364//268 2362//268 2360//268 -f 2338//264 2339//264 2336//264 -f 2341//265 2342//265 2343//265 -f 2339//266 2342//266 2341//266 -f 2338//267 2343//267 2342//267 -f 2337//268 2340//268 2343//268 -f 2336//269 2341//269 2340//269 -f 2346//264 2347//264 2344//264 -f 2349//265 2350//265 2351//265 -f 2347//266 2350//266 2349//266 -f 2346//267 2351//267 2350//267 -f 2345//268 2348//268 2351//268 -f 2344//269 2349//269 2348//269 -f 2358//267 2359//267 2355//267 -f 2357//269 2356//269 2352//269 -f 2359//266 2357//266 2353//266 -f 2356//268 2358//268 2354//268 -f 2366//267 2367//267 2363//267 -f 2365//269 2364//269 2360//269 -f 2367//266 2365//266 2361//266 -f 2364//268 2366//268 2362//268 +f 2353/577/264 2355/578/264 2352/579/264 +f 2351/580/265 2353/581/265 2348/582/265 +f 2350/583/266 2354/584/266 2351/585/266 +f 2349/586/267 2355/578/267 2350/583/267 +f 2348/582/268 2352/587/268 2349/586/268 +f 2361/588/264 2363/589/264 2360/590/264 +f 2359/591/265 2361/592/265 2356/593/265 +f 2358/594/266 2362/595/266 2359/596/266 +f 2357/597/267 2363/589/267 2358/594/267 +f 2356/593/268 2360/598/268 2357/597/268 +f 2370/599/266 2367/600/266 2366/601/266 +f 2369/602/268 2364/603/268 2365/604/268 +f 2371/605/265 2365/604/265 2367/606/265 +f 2368/607/267 2366/601/267 2364/603/267 +f 2378/608/266 2375/609/266 2374/610/266 +f 2377/611/268 2372/612/268 2373/613/268 +f 2379/614/265 2373/613/265 2375/615/265 +f 2376/616/267 2374/610/267 2372/612/267 +f 2353/577/264 2354/584/264 2355/578/264 +f 2351/580/265 2354/617/265 2353/581/265 +f 2350/583/266 2355/578/266 2354/584/266 +f 2349/586/267 2352/587/267 2355/578/267 +f 2348/582/268 2353/581/268 2352/587/268 +f 2361/588/264 2362/595/264 2363/589/264 +f 2359/591/265 2362/618/265 2361/592/265 +f 2358/594/266 2363/589/266 2362/595/266 +f 2357/597/267 2360/598/267 2363/589/267 +f 2356/593/268 2361/592/268 2360/598/268 +f 2370/599/266 2371/619/266 2367/600/266 +f 2369/602/268 2368/607/268 2364/603/268 +f 2371/605/265 2369/602/265 2365/604/265 +f 2368/607/267 2370/599/267 2366/601/267 +f 2378/608/266 2379/620/266 2375/609/266 +f 2377/611/268 2376/616/268 2372/612/268 +f 2379/614/265 2377/611/265 2373/613/265 +f 2376/616/267 2378/608/267 2374/610/267 o Strong_Erector v 0.250000 3.500000 -2.750000 v 0.750000 3.500000 -2.750000 @@ -5490,22 +6127,22 @@ v 0.375000 9.125000 -0.750000 v -0.375000 9.125000 -0.750000 v 0.375000 8.375000 -0.750000 v -0.375000 8.375000 -0.750000 -v 0.250000 4.500000 -1.000000 -v 0.250000 4.500000 -3.500000 -v -0.250000 4.500000 -1.000000 -v -0.250000 4.500000 -3.500000 -v 0.250000 4.000000 -3.500000 -v 0.250000 4.000000 -1.000000 -v -0.250000 4.000000 -1.000000 -v -0.250000 4.000000 -3.500000 -v 0.375000 4.625000 -1.000000 -v -0.375000 4.625000 -1.000000 -v 0.375000 3.875000 -1.000000 -v -0.375000 3.875000 -1.000000 -v 0.375000 4.625000 -0.750000 -v -0.375000 4.625000 -0.750000 -v 0.375000 3.875000 -0.750000 v -0.375000 3.875000 -0.750000 +v 0.375000 3.875000 -0.750000 +v -0.375000 4.625000 -0.750000 +v 0.375000 4.625000 -0.750000 +v -0.375000 3.875000 -1.000000 +v 0.375000 3.875000 -1.000000 +v -0.375000 4.625000 -1.000000 +v 0.375000 4.625000 -1.000000 +v -0.250000 4.000000 -3.500000 +v -0.250000 4.000000 -1.000000 +v 0.250000 4.000000 -1.000000 +v 0.250000 4.000000 -3.500000 +v -0.250000 4.500000 -3.500000 +v -0.250000 4.500000 -1.000000 +v 0.250000 4.500000 -3.500000 +v 0.250000 4.500000 -1.000000 v 0.250000 7.000000 -2.750000 v 0.750000 7.000000 -2.750000 v -0.750000 7.000000 -2.750000 @@ -5542,6 +6179,164 @@ v -1.250000 7.000000 0.750000 v -1.250000 6.500000 0.750000 v 1.250000 6.500000 0.750000 v 1.250000 7.000000 0.750000 +vt 0.820513 0.269663 +vt 0.794872 0.224719 +vt 0.820513 0.224719 +vt 0.820513 0.269663 +vt 0.794872 0.224719 +vt 0.820513 0.224719 +vt 0.794872 0.898876 +vt 0.820513 0.853933 +vt 0.820513 0.898876 +vt 0.794872 0.898876 +vt 0.820513 0.853933 +vt 0.820513 0.898876 +vt 0.897436 0.269663 +vt 0.871795 0.853933 +vt 0.871795 0.269663 +vt 0.794872 0.853933 +vt 0.794872 0.269663 +vt 0.897436 0.269663 +vt 0.871795 0.853933 +vt 0.871795 0.269663 +vt 0.794872 0.853933 +vt 0.794872 0.269663 +vt 0.846154 0.269663 +vt 0.846154 0.853933 +vt 0.846154 0.269663 +vt 0.846154 0.853933 +vt 0.544872 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.416667 0.921348 +vt 0.544872 0.966292 +vt 0.416667 0.966292 +vt 0.410256 0.910112 +vt 0.544872 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.570513 0.966292 +vt 0.544872 0.966292 +vt 0.416667 0.966292 +vt 0.544872 0.921348 +vt 0.544872 0.966292 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.410256 0.910112 +vt 0.416667 0.921348 +vt 0.410256 0.910112 +vt 0.397436 0.977528 +vt 0.358974 0.910112 +vt 0.397436 0.910112 +vt 0.410256 0.977528 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.397436 0.977528 +vt 0.358974 0.910112 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.416667 0.966292 +vt 0.410256 0.910112 +vt 0.416667 0.921348 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.544872 0.921348 +vt 0.544872 0.966292 +vt 0.544872 0.921348 +vt 0.570513 0.966292 +vt 0.544872 0.966292 +vt 0.544872 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.544872 0.966292 +vt 1.000000 0.134831 +vt 0.974359 -0.000000 +vt 1.000000 -0.000000 +vt 0.923077 0.134831 +vt 0.897436 -0.000000 +vt 0.923077 0.000000 +vt 0.948718 -0.000000 +vt 0.923077 0.134831 +vt 0.923077 0.000000 +vt 0.974359 0.134831 +vt 0.974359 0.134831 +vt 0.948718 -0.000000 +vt 0.974359 -0.000000 +vt 1.000000 0.134831 +vt 1.000000 -0.000000 +vt 0.897436 -0.000000 +vt 0.948718 0.494382 +vt 0.974359 0.359551 +vt 0.974359 0.494382 +vt 0.897436 0.359551 +vt 0.923077 0.494382 +vt 0.897436 0.494382 +vt 0.923077 0.359551 +vt 0.948718 0.359551 +vt 0.923077 0.314607 +vt 0.948718 0.179775 +vt 0.948718 0.314607 +vt 1.000000 0.494382 +vt 1.000000 0.539326 +vt 0.974359 0.674157 +vt 0.974359 0.539326 +vt 1.000000 0.359551 +vt 1.000000 0.314607 +vt 0.923077 0.314607 +vt 1.000000 0.539326 +vt 0.923077 0.539326 +vt 0.974359 0.134831 +vt 0.948718 0.134831 +vt 0.948718 0.719101 +vt 0.974359 0.719101 +vt 0.897436 0.314607 +vt 0.923077 0.179775 +vt 0.948718 0.539326 +vt 0.923077 0.674157 +vt 0.923077 0.539326 +vt 0.948718 0.674157 +vt 0.974359 0.314607 +vt 1.000000 0.179775 +vt 1.000000 0.314607 +vt 0.974359 0.179775 +vt 0.897436 0.674157 +vt 0.897436 0.539326 +vt 0.897436 0.853933 +vt 0.897436 0.853933 +vt 0.544872 0.921348 +vt 0.544872 0.966292 +vt 0.570513 0.921348 +vt 0.397436 0.977528 +vt 0.358974 0.977528 +vt 0.397436 0.977528 +vt 0.397436 0.977528 +vt 0.397436 0.977528 +vt 0.397436 0.977528 +vt 0.358974 0.977528 +vt 0.397436 0.977528 +vt 0.570513 0.921348 +vt 0.544872 0.966292 +vt 0.544872 0.921348 +vt 0.897436 0.134831 +vt 0.948718 0.134831 +vt 0.948718 0.134831 +vt 0.897436 0.134831 +vt 1.000000 0.674157 +vt 0.897436 0.179775 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 @@ -5551,138 +6346,138 @@ vn 0.0000 0.0000 1.0000 vn 0.7071 0.0000 -0.7071 vn -0.7071 0.0000 -0.7071 s off -f 2371//270 2369//270 2368//270 -f 2375//270 2373//270 2372//270 -f 2377//271 2379//271 2376//271 -f 2381//271 2383//271 2380//271 -f 2374//272 2381//272 2373//272 -f 2375//273 2382//273 2374//273 -f 2370//272 2377//272 2369//272 -f 2371//273 2378//273 2370//273 -f 2372//274 2383//274 2375//274 -f 2373//275 2380//275 2372//275 -f 2368//274 2379//274 2371//274 -f 2369//275 2376//275 2368//275 -f 2385//271 2386//271 2384//271 -f 2390//270 2388//270 2389//270 -f 2386//273 2392//273 2384//273 -f 2387//274 2390//274 2386//274 -f 2385//273 2391//273 2387//273 -f 2384//272 2388//272 2385//272 -f 2395//274 2397//274 2393//274 -f 2390//273 2393//273 2386//273 -f 2384//273 2394//273 2389//273 -f 2389//273 2395//273 2390//273 -f 2397//275 2398//275 2396//275 -f 2393//271 2396//271 2392//271 -f 2392//272 2398//272 2394//272 -f 2394//270 2399//270 2395//270 -f 2401//271 2402//271 2400//271 -f 2406//270 2404//270 2405//270 -f 2402//273 2408//273 2400//273 -f 2403//274 2406//274 2402//274 -f 2401//273 2407//273 2403//273 -f 2400//272 2404//272 2401//272 -f 2411//274 2413//274 2409//274 -f 2406//273 2409//273 2402//273 -f 2400//273 2410//273 2405//273 -f 2405//273 2411//273 2406//273 -f 2413//275 2414//275 2412//275 -f 2409//271 2412//271 2408//271 -f 2408//272 2414//272 2410//272 -f 2410//270 2415//270 2411//270 -f 2429//270 2420//270 2421//270 -f 2427//272 2423//272 2419//272 -f 2416//271 2425//271 2417//271 -f 2428//274 2416//274 2420//274 -f 2430//274 2418//274 2422//274 -f 2431//270 2422//270 2423//270 -f 2418//271 2427//271 2419//271 -f 2425//272 2421//272 2417//272 -f 2433//273 2434//273 2435//273 -f 2438//275 2436//275 2437//275 -f 2433//271 2439//271 2432//271 -f 2439//271 2451//271 2443//271 -f 2434//270 2437//270 2435//270 -f 2437//270 2449//270 2441//270 -f 2438//270 2434//270 2442//270 -f 2439//271 2443//271 2432//271 -f 2443//276 2434//276 2432//276 -f 2437//270 2441//270 2435//270 -f 2436//271 2433//271 2440//271 -f 2441//277 2433//277 2435//277 -f 2446//275 2451//275 2447//275 -f 2444//275 2449//275 2445//275 -f 2438//274 2447//274 2439//274 -f 2440//271 2444//271 2436//271 -f 2441//274 2448//274 2440//274 -f 2442//270 2446//270 2438//270 -f 2443//272 2450//272 2442//272 -f 2436//272 2445//272 2437//272 -f 2371//270 2370//270 2369//270 -f 2375//270 2374//270 2373//270 -f 2377//271 2378//271 2379//271 -f 2381//271 2382//271 2383//271 -f 2374//272 2382//272 2381//272 -f 2375//273 2383//273 2382//273 -f 2370//272 2378//272 2377//272 -f 2371//273 2379//273 2378//273 -f 2372//274 2380//274 2383//274 -f 2373//275 2381//275 2380//275 -f 2368//274 2376//274 2379//274 -f 2369//275 2377//275 2376//275 -f 2385//271 2387//271 2386//271 -f 2390//270 2391//270 2388//270 -f 2386//273 2393//273 2392//273 -f 2387//274 2391//274 2390//274 -f 2385//273 2388//273 2391//273 -f 2384//272 2389//272 2388//272 -f 2395//274 2399//274 2397//274 -f 2390//273 2395//273 2393//273 -f 2384//273 2392//273 2394//273 -f 2389//273 2394//273 2395//273 -f 2397//275 2399//275 2398//275 -f 2393//271 2397//271 2396//271 -f 2392//272 2396//272 2398//272 -f 2394//270 2398//270 2399//270 -f 2401//271 2403//271 2402//271 -f 2406//270 2407//270 2404//270 -f 2402//273 2409//273 2408//273 -f 2403//274 2407//274 2406//274 -f 2401//273 2404//273 2407//273 -f 2400//272 2405//272 2404//272 -f 2411//274 2415//274 2413//274 -f 2406//273 2411//273 2409//273 -f 2400//273 2408//273 2410//273 -f 2405//273 2410//273 2411//273 -f 2413//275 2415//275 2414//275 -f 2409//271 2413//271 2412//271 -f 2408//272 2412//272 2414//272 -f 2410//270 2414//270 2415//270 -f 2429//270 2428//270 2420//270 -f 2427//272 2431//272 2423//272 -f 2416//271 2424//271 2425//271 -f 2428//274 2424//274 2416//274 -f 2430//274 2426//274 2418//274 -f 2431//270 2430//270 2422//270 -f 2418//271 2426//271 2427//271 -f 2425//272 2429//272 2421//272 -f 2433//273 2432//273 2434//273 -f 2438//275 2439//275 2436//275 -f 2433//271 2436//271 2439//271 -f 2439//271 2447//271 2451//271 -f 2434//270 2438//270 2437//270 -f 2437//270 2445//270 2449//270 -f 2443//276 2442//276 2434//276 -f 2441//277 2440//277 2433//277 -f 2446//275 2450//275 2451//275 -f 2444//275 2448//275 2449//275 -f 2438//274 2446//274 2447//274 -f 2440//271 2448//271 2444//271 -f 2441//274 2449//274 2448//274 -f 2442//270 2450//270 2446//270 -f 2443//272 2451//272 2450//272 -f 2436//272 2444//272 2445//272 +f 2383/621/269 2381/622/269 2380/623/269 +f 2387/624/269 2385/625/269 2384/626/269 +f 2389/627/270 2391/628/270 2388/629/270 +f 2393/630/270 2395/631/270 2392/632/270 +f 2386/633/271 2393/634/271 2385/635/271 +f 2387/624/272 2394/636/272 2386/637/272 +f 2382/638/271 2389/639/271 2381/640/271 +f 2383/621/272 2390/641/272 2382/642/272 +f 2384/643/273 2395/631/273 2387/624/273 +f 2385/635/274 2392/644/274 2384/643/274 +f 2380/645/273 2391/628/273 2383/621/273 +f 2381/640/274 2388/646/274 2380/645/274 +f 2397/647/270 2398/648/270 2396/649/270 +f 2402/650/269 2400/651/269 2401/652/269 +f 2398/648/272 2404/653/272 2396/649/272 +f 2399/654/273 2402/655/273 2398/656/273 +f 2397/647/272 2403/657/272 2399/658/272 +f 2396/659/271 2400/660/271 2397/661/271 +f 2407/662/273 2409/663/273 2405/664/273 +f 2402/655/272 2405/664/272 2398/656/272 +f 2396/659/272 2406/665/272 2401/666/272 +f 2401/652/272 2407/667/272 2402/650/272 +f 2409/668/274 2410/669/274 2408/670/274 +f 2405/671/270 2408/670/270 2404/653/270 +f 2404/672/271 2410/673/271 2406/665/271 +f 2406/674/269 2411/675/269 2407/667/269 +f 2417/676/269 2412/677/269 2416/678/269 +f 2419/679/271 2413/680/271 2417/681/271 +f 2418/682/270 2415/683/270 2419/684/270 +f 2414/685/274 2413/686/274 2415/683/274 +f 2422/687/272 2416/678/272 2421/688/272 +f 2427/689/272 2417/681/272 2422/690/272 +f 2421/691/272 2418/692/272 2425/693/272 +f 2416/694/273 2414/695/273 2418/692/273 +f 2427/689/271 2423/696/271 2426/697/271 +f 2426/698/272 2420/699/272 2424/700/272 +f 2424/701/273 2421/691/273 2425/693/273 +f 2425/702/272 2419/684/272 2427/703/272 +f 2421/688/269 2423/704/269 2422/687/269 +f 2426/698/270 2425/702/270 2427/703/270 +f 2441/705/269 2432/706/269 2433/707/269 +f 2439/708/271 2435/709/271 2431/710/271 +f 2428/711/270 2437/712/270 2429/713/270 +f 2440/714/273 2428/711/273 2432/706/273 +f 2442/715/273 2430/716/273 2434/717/273 +f 2443/718/269 2434/717/269 2435/719/269 +f 2430/716/270 2439/708/270 2431/710/270 +f 2437/712/271 2433/720/271 2429/713/271 +f 2445/721/272 2446/722/272 2447/723/272 +f 2450/724/274 2448/725/274 2449/726/274 +f 2445/721/270 2451/727/270 2444/728/270 +f 2451/729/270 2463/730/270 2455/731/270 +f 2446/722/269 2449/732/269 2447/723/269 +f 2449/733/269 2461/734/269 2453/735/269 +f 2450/736/269 2446/722/269 2454/737/269 +f 2451/727/270 2455/738/270 2444/728/270 +f 2455/731/275 2446/722/275 2444/728/275 +f 2449/732/269 2453/739/269 2447/723/269 +f 2448/725/270 2445/721/270 2452/740/270 +f 2453/735/276 2445/721/276 2447/723/276 +f 2458/741/274 2463/730/274 2459/742/274 +f 2456/743/274 2461/734/274 2457/744/274 +f 2450/745/273 2459/746/273 2451/729/273 +f 2452/747/270 2456/748/270 2448/749/270 +f 2453/735/273 2460/750/273 2452/747/273 +f 2454/751/269 2458/752/269 2450/753/269 +f 2455/731/271 2462/754/271 2454/751/271 +f 2448/749/271 2457/755/271 2449/756/271 +f 2383/621/269 2382/642/269 2381/622/269 +f 2387/624/269 2386/637/269 2385/625/269 +f 2389/627/270 2390/641/270 2391/628/270 +f 2393/630/270 2394/636/270 2395/631/270 +f 2386/633/271 2394/757/271 2393/634/271 +f 2387/624/272 2395/631/272 2394/636/272 +f 2382/638/271 2390/758/271 2389/639/271 +f 2383/621/272 2391/628/272 2390/641/272 +f 2384/643/273 2392/644/273 2395/631/273 +f 2385/635/274 2393/634/274 2392/644/274 +f 2380/645/273 2388/646/273 2391/628/273 +f 2381/640/274 2389/639/274 2388/646/274 +f 2397/647/270 2399/658/270 2398/648/270 +f 2402/650/269 2403/759/269 2400/651/269 +f 2398/648/272 2405/671/272 2404/653/272 +f 2399/654/273 2403/760/273 2402/655/273 +f 2397/647/272 2400/761/272 2403/657/272 +f 2396/659/271 2401/666/271 2400/660/271 +f 2407/662/273 2411/762/273 2409/663/273 +f 2402/655/272 2407/662/272 2405/664/272 +f 2396/659/272 2404/672/272 2406/665/272 +f 2401/652/272 2406/674/272 2407/667/272 +f 2409/668/274 2411/763/274 2410/669/274 +f 2405/671/270 2409/668/270 2408/670/270 +f 2404/672/271 2408/764/271 2410/673/271 +f 2406/674/269 2410/765/269 2411/675/269 +f 2417/676/269 2413/766/269 2412/677/269 +f 2419/679/271 2415/767/271 2413/680/271 +f 2418/682/270 2414/685/270 2415/683/270 +f 2414/685/274 2412/768/274 2413/686/274 +f 2422/687/272 2417/676/272 2416/678/272 +f 2427/689/272 2419/679/272 2417/681/272 +f 2421/691/272 2416/694/272 2418/692/272 +f 2416/694/273 2412/769/273 2414/695/273 +f 2427/689/271 2422/690/271 2423/696/271 +f 2426/698/272 2423/770/272 2420/699/272 +f 2424/701/273 2420/771/273 2421/691/273 +f 2425/702/272 2418/682/272 2419/684/272 +f 2421/688/269 2420/772/269 2423/704/269 +f 2426/698/270 2424/700/270 2425/702/270 +f 2441/705/269 2440/714/269 2432/706/269 +f 2439/708/271 2443/773/271 2435/709/271 +f 2428/711/270 2436/774/270 2437/712/270 +f 2440/714/273 2436/774/273 2428/711/273 +f 2442/715/273 2438/775/273 2430/716/273 +f 2443/718/269 2442/715/269 2434/717/269 +f 2430/716/270 2438/775/270 2439/708/270 +f 2437/712/271 2441/776/271 2433/720/271 +f 2445/721/272 2444/728/272 2446/722/272 +f 2450/724/274 2451/727/274 2448/725/274 +f 2445/721/270 2448/725/270 2451/727/270 +f 2451/729/270 2459/746/270 2463/730/270 +f 2446/722/269 2450/736/269 2449/732/269 +f 2449/733/269 2457/777/269 2461/734/269 +f 2455/731/275 2454/751/275 2446/722/275 +f 2453/735/276 2452/747/276 2445/721/276 +f 2458/741/274 2462/754/274 2463/730/274 +f 2456/743/274 2460/750/274 2461/734/274 +f 2450/745/273 2458/778/273 2459/746/273 +f 2452/747/270 2460/750/270 2456/748/270 +f 2453/735/273 2461/734/273 2460/750/273 +f 2454/751/269 2462/754/269 2458/752/269 +f 2455/731/271 2463/730/271 2462/754/271 +f 2448/749/271 2456/748/271 2457/755/271 o Micro_Rope v -0.187500 5.250000 1.375000 v -0.275888 5.213388 1.375000 @@ -5716,6 +6511,42 @@ v 0.187500 4.000000 0.125000 v 0.275888 4.036612 0.125000 v 0.312500 4.125000 0.125000 v 0.275888 4.213388 0.125000 +vt 0.711111 0.896552 +vt 0.700000 0.724138 +vt 0.711111 0.724138 +vt 0.722222 0.896552 +vt 0.722222 0.724138 +vt 0.744444 0.896552 +vt 0.733333 0.724138 +vt 0.744444 0.724138 +vt 0.677778 0.896552 +vt 0.666667 0.724138 +vt 0.677778 0.724138 +vt 0.700000 0.896552 +vt 0.688889 0.724138 +vt 0.733333 0.896552 +vt 0.755556 0.896552 +vt 0.755556 0.724138 +vt 0.688889 0.896552 +vt 0.711111 0.896552 +vt 0.700000 0.724138 +vt 0.711111 0.724138 +vt 0.722222 0.896552 +vt 0.722222 0.724138 +vt 0.744444 0.896552 +vt 0.733333 0.724138 +vt 0.744444 0.724138 +vt 0.677778 0.896552 +vt 0.666667 0.724138 +vt 0.677778 0.724138 +vt 0.700000 0.896552 +vt 0.688889 0.724138 +vt 0.733333 0.896552 +vt 0.755556 0.896552 +vt 0.755556 0.724138 +vt 0.688889 0.896552 +vt 0.666667 0.896552 +vt 0.666667 0.896552 vn 0.0000 1.0000 0.0000 vn -0.7071 0.7071 0.0000 vn 0.7071 0.7071 0.0000 @@ -5725,38 +6556,38 @@ vn -0.7071 -0.7071 0.0000 vn 0.0000 -1.0000 0.0000 vn -1.0000 0.0000 0.0000 s 1 -f 2460//278 2453//279 2452//278 -f 2467//280 2452//278 2459//280 -f 2465//281 2458//282 2457//281 -f 2463//283 2456//284 2455//283 -f 2461//279 2454//285 2453//279 -f 2466//282 2459//280 2458//282 -f 2464//284 2457//281 2456//284 -f 2462//285 2455//283 2454//285 -f 2476//278 2469//279 2468//278 -f 2483//280 2468//278 2475//280 -f 2481//281 2474//282 2473//281 -f 2479//283 2472//284 2471//283 -f 2477//279 2470//285 2469//279 -f 2482//282 2475//280 2474//282 -f 2480//284 2473//281 2472//284 -f 2478//285 2471//283 2470//285 -f 2460//278 2461//279 2453//279 -f 2467//280 2460//278 2452//278 -f 2465//281 2466//282 2458//282 -f 2463//283 2464//284 2456//284 -f 2461//279 2462//285 2454//285 -f 2466//282 2467//280 2459//280 -f 2464//284 2465//281 2457//281 -f 2462//285 2463//283 2455//283 -f 2476//278 2477//279 2469//279 -f 2483//280 2476//278 2468//278 -f 2481//281 2482//282 2474//282 -f 2479//283 2480//284 2472//284 -f 2477//279 2478//285 2470//285 -f 2482//282 2483//280 2475//280 -f 2480//284 2481//281 2473//281 -f 2478//285 2479//283 2471//283 +f 2472/779/277 2465/780/278 2464/781/277 +f 2479/782/279 2464/781/277 2471/783/279 +f 2477/784/280 2470/785/281 2469/786/280 +f 2475/787/282 2468/788/283 2467/789/282 +f 2473/790/278 2466/791/284 2465/780/278 +f 2478/792/281 2471/783/279 2470/785/281 +f 2476/793/283 2469/786/280 2468/794/283 +f 2474/795/284 2467/789/282 2466/791/284 +f 2488/796/277 2481/797/278 2480/798/277 +f 2495/799/279 2480/798/277 2487/800/279 +f 2493/801/280 2486/802/281 2485/803/280 +f 2491/804/282 2484/805/283 2483/806/282 +f 2489/807/278 2482/808/284 2481/797/278 +f 2494/809/281 2487/800/279 2486/802/281 +f 2492/810/283 2485/803/280 2484/811/283 +f 2490/812/284 2483/806/282 2482/808/284 +f 2472/779/277 2473/790/278 2465/780/278 +f 2479/782/279 2472/779/277 2464/781/277 +f 2477/784/280 2478/792/281 2470/785/281 +f 2475/787/282 2476/813/283 2468/788/283 +f 2473/790/278 2474/795/284 2466/791/284 +f 2478/792/281 2479/782/279 2471/783/279 +f 2476/793/283 2477/784/280 2469/786/280 +f 2474/795/284 2475/787/282 2467/789/282 +f 2488/796/277 2489/807/278 2481/797/278 +f 2495/799/279 2488/796/277 2480/798/277 +f 2493/801/280 2494/809/281 2486/802/281 +f 2491/804/282 2492/814/283 2484/805/283 +f 2489/807/278 2490/812/284 2482/808/284 +f 2494/809/281 2495/799/279 2487/800/279 +f 2492/810/283 2493/801/280 2485/803/280 +f 2490/812/284 2491/804/282 2483/806/282 o Micro_Pivot v -0.125000 1.250000 -1.375000 v 0.125000 1.250000 -1.375000 @@ -5774,33 +6605,52 @@ v -0.062500 4.250000 -1.562500 v -0.062500 4.250000 -1.437500 v 0.062500 4.250000 -1.437500 v 0.062500 4.250000 -1.562500 -vn 0.0000 -1.0000 0.0000 +vt 0.755556 0.310345 +vt 0.777778 0.275862 +vt 0.777778 0.310345 +vt 0.844444 -0.000000 +vt 0.822222 0.275862 +vt 0.822222 -0.000000 +vt 0.800000 -0.000000 +vt 0.777778 -0.000000 +vt 0.755556 0.275862 +vt 0.755556 -0.000000 +vt 0.800000 0.275862 +vt 0.788889 0.275862 +vt 0.777778 0.413793 +vt 0.777778 0.275862 +vt 0.811111 0.275862 +vt 0.800000 0.413793 +vt 0.800000 0.275862 +vt 0.822222 0.275862 +vt 0.811111 0.413793 +vt 0.788889 0.413793 +vt 0.844444 0.275862 +vt 0.822222 0.413793 vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 2486//286 2485//286 2484//286 -f 2490//287 2488//287 2489//287 -f 2487//288 2490//288 2485//288 -f 2484//289 2488//289 2486//289 -f 2486//290 2491//290 2487//290 -f 2485//291 2489//291 2484//291 -f 2494//290 2499//290 2495//290 -f 2493//291 2497//291 2492//291 -f 2495//288 2498//288 2493//288 -f 2492//289 2496//289 2494//289 -f 2486//286 2487//286 2485//286 -f 2490//287 2491//287 2488//287 -f 2487//288 2491//288 2490//288 -f 2484//289 2489//289 2488//289 -f 2486//290 2488//290 2491//290 -f 2485//291 2490//291 2489//291 -f 2494//290 2496//290 2499//290 -f 2493//291 2498//291 2497//291 -f 2495//288 2499//288 2498//288 -f 2492//289 2497//289 2496//289 +f 2502/815/285 2500/816/285 2501/817/285 +f 2499/818/286 2502/819/286 2497/820/286 +f 2496/821/287 2500/816/287 2498/822/287 +f 2498/822/288 2503/823/288 2499/824/288 +f 2497/820/289 2501/825/289 2496/821/289 +f 2506/826/288 2511/827/288 2507/828/288 +f 2505/829/289 2509/830/289 2504/831/289 +f 2507/832/286 2510/833/286 2505/829/286 +f 2504/831/287 2508/834/287 2506/826/287 +f 2502/815/285 2503/823/285 2500/816/285 +f 2499/818/286 2503/835/286 2502/819/286 +f 2496/821/287 2501/825/287 2500/816/287 +f 2498/822/288 2500/816/288 2503/823/288 +f 2497/820/289 2502/819/289 2501/825/289 +f 2506/826/288 2508/834/288 2511/827/288 +f 2505/829/289 2510/833/289 2509/830/289 +f 2507/832/286 2511/836/286 2510/833/286 +f 2504/831/287 2509/830/287 2508/834/287 o Micro_Erector v -0.125000 3.250000 -1.625000 v -0.125000 3.250000 -1.375000 @@ -5838,6 +6688,14 @@ v -0.125000 6.250000 -0.375000 v 0.125000 6.250000 -0.375000 v -0.125000 6.000000 -0.375000 v 0.125000 6.000000 -0.375000 +v 0.000000 6.250000 -0.625000 +v 0.000000 6.000000 -0.625000 +v 0.000000 5.500000 -1.375000 +v 0.000000 5.250000 -1.375000 +v 0.000000 5.000000 -1.375000 +v 0.000000 4.750000 -1.375000 +v 0.000000 4.250000 -0.625000 +v 0.000000 4.000000 -0.625000 v -0.125000 4.250000 -1.375000 v 0.125000 4.250000 -1.375000 v -0.125000 4.000000 -1.375000 @@ -5874,6 +6732,130 @@ v 0.000000 5.000000 -1.375000 v 0.000000 4.750000 -1.375000 v 0.000000 4.250000 -0.625000 v 0.000000 4.000000 -0.625000 +vt 0.800000 0.448276 +vt 0.777778 0.413793 +vt 0.800000 0.413793 +vt 0.777778 0.862069 +vt 0.800000 0.827586 +vt 0.800000 0.862069 +vt 0.777778 0.827586 +vt 0.777778 0.448276 +vt 0.844444 0.448276 +vt 0.822222 0.862069 +vt 0.822222 0.448276 +vt 0.755556 0.448276 +vt 0.755556 0.862069 +vt 0.866667 0.172414 +vt 0.911111 0.137931 +vt 0.888889 0.172414 +vt 1.000000 0.172414 +vt 0.977778 0.103448 +vt 1.000000 0.103448 +vt 0.866667 -0.000000 +vt 0.844444 0.103448 +vt 0.844444 -0.000000 +vt 0.933333 0.000000 +vt 0.911111 0.103448 +vt 0.911111 0.000000 +vt 1.000000 -0.000000 +vt 0.977778 -0.000000 +vt 0.933333 -0.000000 +vt 0.911111 0.103448 +vt 0.911111 -0.000000 +vt 0.866667 0.241379 +vt 0.844444 0.206897 +vt 0.866667 0.206897 +vt 0.955556 0.172414 +vt 0.977778 0.206897 +vt 0.955556 0.241379 +vt 0.866667 0.172414 +vt 0.844444 0.172414 +vt 0.888889 0.172414 +vt 0.844444 0.310345 +vt 0.866667 0.310345 +vt 0.955556 0.172414 +vt 0.933333 0.103448 +vt 0.977778 0.172414 +vt 0.977778 0.206897 +vt 1.000000 0.241379 +vt 0.977778 0.241379 +vt 0.866667 0.206897 +vt 0.977778 0.310345 +vt 1.000000 0.310345 +vt 0.955556 0.241379 +vt 0.933333 0.137931 +vt 0.911111 0.172414 +vt 0.911111 0.137931 +vt 0.933333 0.103448 +vt 1.000000 0.344828 +vt 0.866667 0.344828 +vt 0.866667 0.103448 +vt 0.933333 0.137931 +vt 0.977778 0.172414 +vt 0.444444 0.000000 +vt 0.511111 0.034483 +vt 0.444444 0.034483 +vt 0.444444 0.034483 +vt 0.511111 0.000000 +vt 0.511111 0.034483 +vt 1.000000 0.172414 +vt 0.977778 0.103448 +vt 1.000000 0.103448 +vt 0.866667 -0.000000 +vt 0.844444 0.103448 +vt 0.844444 -0.000000 +vt 0.933333 0.000000 +vt 0.911111 0.103448 +vt 0.911111 0.000000 +vt 1.000000 -0.000000 +vt 0.977778 -0.000000 +vt 0.866667 0.241379 +vt 0.844444 0.206897 +vt 0.866667 0.206897 +vt 0.866667 0.172414 +vt 0.844444 0.172414 +vt 0.888889 0.172414 +vt 0.844444 0.310345 +vt 0.866667 0.310345 +vt 0.955556 0.172414 +vt 0.933333 0.103448 +vt 0.977778 0.172414 +vt 0.977778 0.206897 +vt 1.000000 0.241379 +vt 0.977778 0.241379 +vt 0.977778 0.310345 +vt 1.000000 0.310345 +vt 0.955556 0.241379 +vt 0.933333 0.137931 +vt 0.911111 0.172414 +vt 0.911111 0.137931 +vt 1.000000 0.344828 +vt 0.866667 0.344828 +vt 0.866667 0.103448 +vt 0.511111 0.034483 +vt 0.444444 0.000000 +vt 0.444444 0.034483 +vt 0.511111 0.000000 +vt 0.444444 0.034483 +vt 0.511111 0.034483 +vt 0.844444 0.862069 +vt 0.844444 0.241379 +vt 0.888889 0.241379 +vt 1.000000 0.206897 +vt 0.888889 0.241379 +vt 0.933333 0.172414 +vt 0.977778 0.344828 +vt 0.844444 0.344828 +vt 0.511111 0.000000 +vt 0.444444 -0.000000 +vt 0.844444 0.241379 +vt 0.888889 0.241379 +vt 1.000000 0.206897 +vt 0.933333 0.172414 +vt 0.977778 0.344828 +vt 0.844444 0.344828 +vt 0.511111 0.000000 +vt 0.444444 -0.000000 vn 0.0000 -1.0000 0.0000 vn 0.0000 0.7071 -0.7071 vn 0.0000 0.0000 -1.0000 @@ -5886,122 +6868,114 @@ vn 0.7071 0.0000 0.7071 vn -0.7071 0.0000 0.7071 vn 0.7071 0.0000 -0.7071 s off -f 2500//292 2502//292 2501//292 -f 2506//293 2504//293 2505//293 -f 2500//294 2507//294 2503//294 -f 2502//295 2505//295 2501//295 -f 2502//296 2507//296 2506//296 -f 2501//297 2504//297 2500//297 -f 2526//292 2534//292 2527//292 -f 2526//298 2512//298 2514//298 -f 2509//296 2515//296 2511//296 -f 2508//299 2513//299 2509//299 -f 2510//297 2512//297 2508//297 -f 2511//292 2514//292 2510//292 -f 2520//300 2523//300 2521//300 -f 2518//292 2523//292 2522//292 -f 2517//296 2523//296 2519//296 -f 2516//299 2521//299 2517//299 -f 2518//297 2520//297 2516//297 -f 2525//299 2512//299 2524//299 -f 2528//301 2531//301 2529//301 -f 2527//292 2530//292 2526//292 -f 2525//296 2531//296 2527//296 -f 2525//299 2528//299 2529//299 -f 2526//297 2528//297 2524//297 -f 2532//295 2535//295 2533//295 -f 2515//292 2534//292 2514//292 -f 2534//300 2525//300 2527//300 -f 2512//299 2533//299 2513//299 -f 2533//301 2518//301 2516//301 -f 2517//299 2533//299 2516//299 -f 2517//302 2515//302 2513//302 -f 2535//292 2519//292 2518//292 -f 2554//292 2562//292 2555//292 -f 2554//298 2540//298 2542//298 -f 2537//296 2543//296 2539//296 -f 2536//299 2541//299 2537//299 -f 2538//297 2540//297 2536//297 -f 2539//292 2542//292 2538//292 -f 2548//300 2551//300 2549//300 -f 2546//292 2551//292 2550//292 -f 2545//296 2551//296 2547//296 -f 2544//299 2549//299 2545//299 -f 2546//297 2548//297 2544//297 -f 2553//299 2540//299 2552//299 -f 2556//301 2559//301 2557//301 -f 2555//292 2558//292 2554//292 -f 2553//296 2559//296 2555//296 -f 2553//299 2556//299 2557//299 -f 2554//297 2556//297 2552//297 -f 2560//295 2563//295 2561//295 -f 2543//292 2562//292 2542//292 -f 2562//300 2553//300 2555//300 -f 2540//299 2561//299 2541//299 -f 2561//301 2546//301 2544//301 -f 2545//299 2561//299 2544//299 -f 2545//302 2543//302 2541//302 -f 2563//292 2547//292 2546//292 -f 2565//296 2566//296 2564//296 -f 2570//296 2569//296 2568//296 -f 2500//292 2503//292 2502//292 -f 2506//293 2507//293 2504//293 -f 2500//294 2504//294 2507//294 -f 2502//295 2506//295 2505//295 -f 2502//296 2503//296 2507//296 -f 2501//297 2505//297 2504//297 -f 2526//292 2514//292 2534//292 -f 2526//298 2524//298 2512//298 -f 2509//296 2513//296 2515//296 -f 2508//299 2512//299 2513//299 -f 2510//297 2514//297 2512//297 -f 2511//292 2515//292 2514//292 -f 2520//300 2522//300 2523//300 -f 2518//292 2519//292 2523//292 -f 2517//296 2521//296 2523//296 -f 2516//299 2520//299 2521//299 -f 2518//297 2522//297 2520//297 -f 2525//299 2532//299 2512//299 -f 2528//301 2530//301 2531//301 -f 2527//292 2531//292 2530//292 -f 2525//296 2529//296 2531//296 -f 2525//299 2524//299 2528//299 -f 2526//297 2530//297 2528//297 -f 2532//295 2534//295 2535//295 -f 2515//292 2535//292 2534//292 -f 2534//300 2532//300 2525//300 -f 2512//299 2532//299 2533//299 -f 2533//301 2535//301 2518//301 -f 2517//299 2513//299 2533//299 -f 2517//302 2519//302 2515//302 -f 2535//292 2515//292 2519//292 -f 2554//292 2542//292 2562//292 -f 2554//298 2552//298 2540//298 -f 2537//296 2541//296 2543//296 -f 2536//299 2540//299 2541//299 -f 2538//297 2542//297 2540//297 -f 2539//292 2543//292 2542//292 -f 2548//300 2550//300 2551//300 -f 2546//292 2547//292 2551//292 -f 2545//296 2549//296 2551//296 -f 2544//299 2548//299 2549//299 -f 2546//297 2550//297 2548//297 -f 2553//299 2560//299 2540//299 -f 2556//301 2558//301 2559//301 -f 2555//292 2559//292 2558//292 -f 2553//296 2557//296 2559//296 -f 2553//299 2552//299 2556//299 -f 2554//297 2558//297 2556//297 -f 2560//295 2562//295 2563//295 -f 2543//292 2563//292 2562//292 -f 2562//300 2560//300 2553//300 -f 2540//299 2560//299 2561//299 -f 2561//301 2563//301 2546//301 -f 2545//299 2541//299 2561//299 -f 2545//302 2547//302 2543//302 -f 2563//292 2543//292 2547//292 -f 2565//296 2567//296 2566//296 -f 2570//296 2571//296 2569//296 +f 2512/837/290 2514/838/290 2513/839/290 +f 2518/840/291 2516/841/291 2517/842/291 +f 2512/837/292 2519/843/292 2515/844/292 +f 2514/845/293 2517/846/293 2513/847/293 +f 2514/848/294 2519/843/294 2518/849/294 +f 2513/847/295 2516/841/295 2512/837/295 +f 2538/850/290 2546/851/290 2539/852/290 +f 2538/853/296 2524/854/296 2526/855/296 +f 2521/856/294 2527/857/294 2523/858/294 +f 2520/859/297 2525/860/297 2521/861/297 +f 2522/862/295 2524/854/295 2520/863/295 +f 2523/864/290 2526/865/290 2522/866/290 +f 2532/867/298 2535/868/298 2533/869/298 +f 2530/870/290 2535/871/290 2534/872/290 +f 2529/873/294 2535/868/294 2531/874/294 +f 2528/875/297 2533/869/297 2529/873/297 +f 2530/876/295 2532/867/295 2528/877/295 +f 2537/878/297 2524/879/297 2536/880/297 +f 2540/881/299 2543/882/299 2541/883/299 +f 2539/852/290 2542/884/290 2538/850/290 +f 2537/885/294 2543/882/294 2539/886/294 +f 2537/878/297 2540/881/297 2541/887/297 +f 2538/853/295 2540/881/295 2536/880/295 +f 2544/888/293 2547/889/293 2545/890/293 +f 2527/891/290 2546/851/290 2526/865/290 +f 2546/892/298 2537/885/298 2539/886/298 +f 2524/879/297 2545/890/297 2525/860/297 +f 2545/893/299 2530/876/299 2528/877/299 +f 2529/873/297 2545/890/297 2528/875/297 +f 2529/873/300 2527/857/300 2525/894/300 +f 2547/895/290 2531/896/290 2530/870/290 +f 2549/897/294 2550/898/294 2548/899/294 +f 2554/900/294 2553/901/294 2552/902/294 +f 2574/903/296 2560/904/296 2562/905/296 +f 2557/906/294 2563/907/294 2559/908/294 +f 2556/909/297 2561/910/297 2557/911/297 +f 2558/912/295 2560/904/295 2556/913/295 +f 2568/914/298 2571/915/298 2569/916/298 +f 2565/917/294 2571/915/294 2567/918/294 +f 2564/919/297 2569/916/297 2565/917/297 +f 2566/920/295 2568/914/295 2564/921/295 +f 2573/922/297 2560/923/297 2572/924/297 +f 2576/925/299 2579/926/299 2577/927/299 +f 2573/928/294 2579/926/294 2575/929/294 +f 2573/922/297 2576/925/297 2577/930/297 +f 2574/903/295 2576/925/295 2572/924/295 +f 2580/931/293 2583/932/293 2581/933/293 +f 2582/934/298 2573/928/298 2575/929/298 +f 2560/923/297 2581/933/297 2561/910/297 +f 2581/935/299 2566/920/299 2564/921/299 +f 2565/917/297 2581/933/297 2564/919/297 +f 2565/917/300 2563/907/300 2561/936/300 +f 2586/937/295 2585/938/295 2584/939/295 +f 2589/940/295 2590/941/295 2588/942/295 +f 2512/837/290 2515/844/290 2514/838/290 +f 2518/840/291 2519/843/291 2516/841/291 +f 2512/837/292 2516/841/292 2519/843/292 +f 2514/845/293 2518/943/293 2517/846/293 +f 2514/848/294 2515/844/294 2519/843/294 +f 2513/847/295 2517/846/295 2516/841/295 +f 2538/850/290 2526/865/290 2546/851/290 +f 2538/853/296 2536/880/296 2524/854/296 +f 2521/856/294 2525/894/294 2527/857/294 +f 2520/859/297 2524/879/297 2525/860/297 +f 2522/862/295 2526/855/295 2524/854/295 +f 2523/864/290 2527/891/290 2526/865/290 +f 2532/867/298 2534/944/298 2535/868/298 +f 2530/870/290 2531/896/290 2535/871/290 +f 2529/873/294 2533/869/294 2535/868/294 +f 2528/875/297 2532/945/297 2533/869/297 +f 2530/876/295 2534/944/295 2532/867/295 +f 2537/878/297 2544/888/297 2524/879/297 +f 2540/881/299 2542/946/299 2543/882/299 +f 2539/852/290 2543/947/290 2542/884/290 +f 2537/885/294 2541/883/294 2543/882/294 +f 2537/878/297 2536/880/297 2540/881/297 +f 2538/853/295 2542/946/295 2540/881/295 +f 2544/888/293 2546/948/293 2547/889/293 +f 2527/891/290 2547/895/290 2546/851/290 +f 2546/892/298 2544/949/298 2537/885/298 +f 2524/879/297 2544/888/297 2545/890/297 +f 2545/893/299 2547/950/299 2530/876/299 +f 2529/873/297 2525/860/297 2545/890/297 +f 2529/873/300 2531/874/300 2527/857/300 +f 2547/895/290 2527/891/290 2531/896/290 +f 2549/897/294 2551/951/294 2550/898/294 +f 2554/900/294 2555/952/294 2553/901/294 +f 2574/903/296 2572/924/296 2560/904/296 +f 2557/906/294 2561/936/294 2563/907/294 +f 2556/909/297 2560/923/297 2561/910/297 +f 2558/912/295 2562/905/295 2560/904/295 +f 2568/914/298 2570/953/298 2571/915/298 +f 2565/917/294 2569/916/294 2571/915/294 +f 2564/919/297 2568/954/297 2569/916/297 +f 2566/920/295 2570/953/295 2568/914/295 +f 2573/922/297 2580/931/297 2560/923/297 +f 2576/925/299 2578/955/299 2579/926/299 +f 2573/928/294 2577/927/294 2579/926/294 +f 2573/922/297 2572/924/297 2576/925/297 +f 2574/903/295 2578/955/295 2576/925/295 +f 2580/931/293 2582/956/293 2583/932/293 +f 2582/934/298 2580/957/298 2573/928/298 +f 2560/923/297 2580/931/297 2581/933/297 +f 2581/935/299 2583/958/299 2566/920/299 +f 2565/917/297 2561/910/297 2581/933/297 +f 2565/917/300 2567/918/300 2563/907/300 +f 2586/937/295 2587/959/295 2585/938/295 +f 2589/940/295 2591/960/295 2590/941/295 o Micro_Pad v -1.250000 2.000000 1.250000 v 1.250000 2.000000 1.250000 @@ -6023,32 +6997,6 @@ v -0.500000 2.000000 0.500000 v 0.500000 2.000000 0.500000 v -0.500000 2.000000 -0.500000 v 0.500000 2.000000 -0.500000 -v 1.250000 1.500000 1.250000 -v 1.250000 1.000000 1.250000 -v 1.250000 1.500000 0.250000 -v 1.250000 1.000000 0.500000 -v 0.250000 1.500000 1.250000 -v 0.500000 1.000000 1.250000 -v 0.500000 1.500000 0.500000 -v 0.500000 1.000000 0.500000 -v 1.250000 1.250000 0.500000 -v 0.500000 1.250000 1.250000 -v 0.500000 1.250000 0.500000 -v 0.500000 1.500000 0.250000 -v 0.250000 1.500000 0.500000 -v -1.250000 1.500000 -1.250000 -v -1.250000 1.000000 -1.250000 -v -1.250000 1.500000 -0.250000 -v -1.250000 1.000000 -0.500000 -v -0.250000 1.500000 -1.250000 -v -0.500000 1.000000 -1.250000 -v -0.500000 1.500000 -0.500000 -v -0.500000 1.000000 -0.500000 -v -1.250000 1.250000 -0.500000 -v -0.500000 1.250000 -1.250000 -v -0.500000 1.250000 -0.500000 -v -0.500000 1.500000 -0.250000 -v -0.250000 1.500000 -0.500000 v 1.250000 1.500000 -1.250000 v 1.250000 1.000000 -1.250000 v 0.250000 1.500000 -1.250000 @@ -6062,19 +7010,6 @@ v 1.250000 1.250000 -0.500000 v 0.500000 1.250000 -0.500000 v 0.250000 1.500000 -0.500000 v 0.500000 1.500000 -0.250000 -v -1.250000 1.500000 1.250000 -v -1.250000 1.000000 1.250000 -v -0.250000 1.500000 1.250000 -v -0.500000 1.000000 1.250000 -v -1.250000 1.500000 0.250000 -v -1.250000 1.000000 0.500000 -v -0.500000 1.500000 0.500000 -v -0.500000 1.000000 0.500000 -v -0.500000 1.250000 1.250000 -v -1.250000 1.250000 0.500000 -v -0.500000 1.250000 0.500000 -v -0.250000 1.500000 0.500000 -v -0.500000 1.500000 0.250000 v -0.500000 1.000000 -1.250000 v 0.500000 1.000000 -1.250000 v -0.500000 1.000000 -1.750000 @@ -6147,205 +7082,508 @@ v 0.062500 6.000000 1.375000 v 0.062500 6.000000 1.625000 v 0.312500 6.000000 1.625000 v 0.312500 6.000000 1.375000 +v -1.250000 1.500000 1.250000 +v -1.250000 1.000000 1.250000 +v -0.250000 1.500000 1.250000 +v -0.500000 1.000000 1.250000 +v -1.250000 1.500000 0.250000 +v -1.250000 1.000000 0.500000 +v -0.500000 1.500000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 1.250000 1.250000 +v -1.250000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v -0.250000 1.500000 0.500000 +v -0.500000 1.500000 0.250000 +v -1.250000 1.500000 -1.250000 +v -1.250000 1.000000 -1.250000 +v -1.250000 1.500000 -0.250000 +v -1.250000 1.000000 -0.500000 +v -0.250000 1.500000 -1.250000 +v -0.500000 1.000000 -1.250000 +v -0.500000 1.500000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -1.250000 1.250000 -0.500000 +v -0.500000 1.250000 -1.250000 +v -0.500000 1.250000 -0.500000 +v -0.500000 1.500000 -0.250000 +v -0.250000 1.500000 -0.500000 +v 1.250000 1.500000 1.250000 +v 1.250000 1.000000 1.250000 +v 1.250000 1.500000 0.250000 +v 1.250000 1.000000 0.500000 +v 0.250000 1.500000 1.250000 +v 0.500000 1.000000 1.250000 +v 0.500000 1.500000 0.500000 +v 0.500000 1.000000 0.500000 +v 1.250000 1.250000 0.500000 +v 0.500000 1.250000 1.250000 +v 0.500000 1.250000 0.500000 +v 0.500000 1.500000 0.250000 +v 0.250000 1.500000 0.500000 +v -0.625000 1.000000 1.875000 +v 0.625000 1.000000 1.875000 +v -0.625000 8.000000 1.875000 +v 0.625000 8.000000 1.875000 +v -0.625000 2.000000 0.875000 +v 0.625000 2.000000 0.875000 +v -0.625000 8.000000 0.875000 +v 0.625000 8.000000 0.875000 +v 0.750000 1.000000 1.750000 +v 0.750000 8.000000 1.750000 +v 0.750000 1.000000 1.000000 +v 0.750000 8.000000 1.000000 +v -0.750000 1.000000 1.750000 +v -0.750000 8.000000 1.750000 +v -0.750000 1.000000 1.000000 +v -0.750000 8.000000 1.000000 +vt 0.066667 0.655172 +vt 0.222222 0.758621 +vt 0.000000 0.758621 +vt 0.066667 0.517241 +vt 0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt 0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt 0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt -0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.155556 0.655172 +vt 0.155556 0.517241 +vt 0.000000 -0.000000 +vt 0.066667 0.241379 +vt 0.000000 0.344828 +vt 0.155556 0.241379 +vt 0.155556 0.103448 +vt 0.222222 -0.000000 +vt 0.066667 0.103448 +vt 0.066667 0.517241 +vt 0.155556 0.655172 +vt 0.066667 0.655172 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.888889 0.655172 +vt 0.933333 0.793103 +vt 0.888889 0.793103 +vt 0.888889 0.862069 +vt 0.933333 0.862069 +vt 0.977778 0.793103 +vt 0.933333 0.655172 +vt 0.977778 0.655172 +vt 0.844444 0.655172 +vt 0.844444 0.793103 +vt 0.933333 0.586207 +vt 0.888889 0.586207 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.600000 0.137931 +vt 0.577778 0.137931 +vt 0.622222 0.000000 +vt 0.600000 0.965517 +vt 0.600000 0.000000 +vt 0.622222 0.137931 +vt 0.600000 0.965517 +vt 0.644444 0.000000 +vt 0.622222 0.965517 +vt 0.622222 0.000000 +vt 0.644444 0.137931 +vt 0.622222 0.965517 +vt 0.622222 0.137931 +vt 0.666667 0.000000 +vt 0.644444 0.965517 +vt 0.666667 0.137931 +vt 0.644444 0.965517 +vt 0.600000 0.000000 +vt 0.577778 0.000000 +vt 0.600000 0.137931 +vt 0.577778 0.137931 +vt 0.600000 0.965517 +vt 0.644444 0.000000 +vt 0.622222 0.965517 +vt 0.600000 0.965517 +vt 0.644444 0.137931 +vt 0.622222 0.965517 +vt 0.666667 0.000000 +vt 0.644444 0.965517 +vt 0.666667 0.137931 +vt 0.644444 0.965517 +vt 0.577778 0.000000 +vt 0.222222 0.965517 +vt 0.333333 -0.000000 +vt 0.333333 0.965517 +vt 0.511111 0.965517 +vt 0.400000 0.137931 +vt 0.511111 0.137931 +vt 0.333333 0.000000 +vt 0.400000 0.965517 +vt 0.333333 0.965517 +vt 0.511111 0.965517 +vt 0.577778 0.000000 +vt 0.577778 0.965517 +vt 0.666667 0.689655 +vt 0.688889 0.724138 +vt 0.666667 0.724138 +vt 0.666667 0.689655 +vt 0.688889 0.724138 +vt 0.666667 0.724138 +vt 0.688889 0.000000 +vt 0.666667 0.000000 +vt 0.733333 0.000000 +vt 0.711111 0.689655 +vt 0.711111 0.000000 +vt 0.711111 0.000000 +vt 0.688889 0.689655 +vt 0.688889 0.000000 +vt 0.755556 0.000000 +vt 0.733333 0.689655 +vt 0.733333 0.000000 +vt 0.688889 0.689655 +vt 0.755556 0.000000 +vt 0.733333 0.689655 +vt 0.666667 0.000000 +vt 0.711111 0.689655 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.022222 0.896552 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.022222 0.896552 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.333333 -0.000000 +vt 0.222222 0.965517 +vt 0.333333 0.965517 +vt 0.400000 0.137931 +vt 0.511111 0.965517 +vt 0.511111 0.137931 +vt 0.400000 0.965517 +vt 0.333333 0.000000 +vt 0.333333 0.965517 +vt 0.577778 0.000000 +vt 0.511111 0.965517 +vt 0.577778 0.965517 +vt 0.000000 0.344828 +vt 0.000000 0.344828 +vt -0.000000 0.344828 +vt 0.155556 0.172414 +vt 0.155556 0.517241 +vt 0.155556 0.172414 +vt 0.155556 0.172414 +vt 0.155556 0.172414 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.022222 0.896552 +vt 0.666667 0.965517 +vt 0.666667 0.965517 +vt 0.666667 0.965517 +vt 0.666667 0.965517 +vt 0.222222 0.000000 +vt 0.400000 0.965517 +vt 0.400000 0.000000 +vt 0.511111 0.000000 +vt 0.755556 0.689655 +vt 0.755556 0.689655 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.022222 0.896552 +vt 0.222222 0.000000 +vt 0.400000 0.965517 +vt 0.400000 0.000000 +vt 0.511111 0.000000 vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 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 -0.7071 -0.7071 0.0000 vn 0.0000 -0.7071 0.7071 -vn 0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.0000 -0.7071 -0.7071 s off -f 2580//303 2574//303 2572//303 -f 2581//303 2572//303 2573//303 -f 2573//304 2579//304 2575//304 -f 2574//305 2577//305 2572//305 -f 2575//306 2576//306 2574//306 -f 2572//307 2578//307 2573//307 -f 2584//304 2582//304 2580//304 -f 2582//303 2575//303 2574//303 -f 2583//303 2573//303 2575//303 -f 2577//308 2585//308 2578//308 -f 2578//308 2587//308 2579//308 -f 2579//308 2586//308 2576//308 -f 2576//308 2584//308 2577//308 -f 2589//303 2590//303 2588//303 -f 2586//307 2583//307 2582//307 -f 2587//305 2581//305 2583//305 -f 2585//306 2580//306 2581//306 -f 2593//304 2595//304 2600//304 -f 2595//306 2602//306 2600//306 -f 2592//307 2596//307 2601//307 -f 2594//309 2602//309 2603//309 -f 2601//305 2599//305 2597//305 -f 2603//305 2602//305 2598//305 -f 2602//306 2604//306 2598//306 -f 2604//310 2601//310 2596//310 -f 2606//305 2608//305 2613//305 -f 2608//307 2615//307 2613//307 -f 2605//306 2609//306 2614//306 -f 2607//311 2615//311 2616//311 -f 2614//304 2612//304 2610//304 -f 2616//304 2615//304 2611//304 -f 2615//307 2617//307 2611//307 -f 2617//312 2614//312 2609//312 -f 2619//306 2621//306 2626//306 -f 2621//305 2628//305 2626//305 -f 2618//304 2622//304 2627//304 -f 2629//310 2626//310 2628//310 -f 2627//307 2625//307 2623//307 -f 2629//307 2628//307 2624//307 -f 2628//305 2630//305 2624//305 -f 2630//311 2627//311 2622//311 -f 2632//307 2634//307 2639//307 -f 2634//304 2641//304 2639//304 -f 2631//305 2635//305 2640//305 -f 2642//312 2639//312 2641//312 -f 2640//306 2638//306 2636//306 -f 2642//306 2641//306 2637//306 -f 2641//304 2643//304 2637//304 -f 2643//309 2640//309 2635//309 -f 2650//303 2648//303 2649//303 -f 2644//305 2648//305 2646//305 -f 2646//306 2651//306 2647//306 -f 2645//307 2649//307 2644//307 -f 2647//304 2650//304 2645//304 -f 2654//308 2653//308 2652//308 -f 2658//308 2657//308 2656//308 -f 2662//308 2661//308 2660//308 -f 2666//308 2665//308 2664//308 -f 2670//303 2668//303 2669//303 -f 2674//303 2672//303 2673//303 -f 2678//303 2676//303 2677//303 -f 2682//303 2680//303 2681//303 -f 2663//304 2678//304 2661//304 -f 2654//306 2671//306 2655//306 -f 2662//306 2679//306 2663//306 -f 2656//305 2672//305 2658//305 -f 2664//305 2680//305 2666//305 -f 2657//307 2673//307 2656//307 -f 2665//307 2681//307 2664//307 -f 2659//304 2674//304 2657//304 -f 2667//304 2682//304 2665//304 -f 2658//306 2675//306 2659//306 -f 2652//305 2668//305 2654//305 -f 2666//306 2683//306 2667//306 -f 2660//305 2676//305 2662//305 -f 2653//307 2669//307 2652//307 -f 2661//307 2677//307 2660//307 -f 2655//304 2670//304 2653//304 -f 2686//307 2685//307 2687//307 -f 2690//306 2689//306 2688//306 -f 2692//304 2695//304 2693//304 -f 2699//305 2696//305 2697//305 -f 2702//308 2701//308 2700//308 -f 2706//308 2705//308 2704//308 -f 2710//303 2708//303 2709//303 -f 2714//303 2712//303 2713//303 -f 2703//304 2710//304 2701//304 -f 2700//305 2708//305 2702//305 -f 2706//306 2715//306 2707//306 -f 2705//307 2713//307 2704//307 -f 2702//306 2711//306 2703//306 -f 2701//307 2709//307 2700//307 -f 2707//304 2714//304 2705//304 -f 2704//305 2712//305 2706//305 -f 2580//303 2582//303 2574//303 -f 2581//303 2580//303 2572//303 -f 2573//304 2578//304 2579//304 -f 2574//305 2576//305 2577//305 -f 2575//306 2579//306 2576//306 -f 2572//307 2577//307 2578//307 -f 2584//304 2586//304 2582//304 -f 2582//303 2583//303 2575//303 -f 2583//303 2581//303 2573//303 -f 2577//308 2584//308 2585//308 -f 2578//308 2585//308 2587//308 -f 2579//308 2587//308 2586//308 -f 2576//308 2586//308 2584//308 -f 2589//303 2591//303 2590//303 -f 2586//307 2587//307 2583//307 -f 2587//305 2585//305 2581//305 -f 2585//306 2584//306 2580//306 -f 2594//304 2592//304 2600//304 -f 2592//304 2593//304 2600//304 -f 2595//306 2599//306 2602//306 -f 2597//307 2593//307 2601//307 -f 2593//307 2592//307 2601//307 -f 2594//309 2600//309 2602//309 -f 2601//305 2602//305 2599//305 -f 2604//310 2602//310 2601//310 -f 2607//305 2605//305 2613//305 -f 2605//305 2606//305 2613//305 -f 2608//307 2612//307 2615//307 -f 2610//306 2606//306 2614//306 -f 2606//306 2605//306 2614//306 -f 2607//311 2613//311 2615//311 -f 2614//304 2615//304 2612//304 -f 2617//312 2615//312 2614//312 -f 2620//306 2618//306 2626//306 -f 2618//306 2619//306 2626//306 -f 2621//305 2625//305 2628//305 -f 2623//304 2619//304 2627//304 -f 2619//304 2618//304 2627//304 -f 2629//310 2620//310 2626//310 -f 2627//307 2628//307 2625//307 -f 2630//311 2628//311 2627//311 -f 2633//307 2631//307 2639//307 -f 2631//307 2632//307 2639//307 -f 2634//304 2638//304 2641//304 -f 2636//305 2632//305 2640//305 -f 2632//305 2631//305 2640//305 -f 2642//312 2633//312 2639//312 -f 2640//306 2641//306 2638//306 -f 2643//309 2641//309 2640//309 -f 2650//303 2651//303 2648//303 -f 2644//305 2649//305 2648//305 -f 2646//306 2648//306 2651//306 -f 2645//307 2650//307 2649//307 -f 2647//304 2651//304 2650//304 -f 2654//308 2655//308 2653//308 -f 2658//308 2659//308 2657//308 -f 2662//308 2663//308 2661//308 -f 2666//308 2667//308 2665//308 -f 2670//303 2671//303 2668//303 -f 2674//303 2675//303 2672//303 -f 2678//303 2679//303 2676//303 -f 2682//303 2683//303 2680//303 -f 2663//304 2679//304 2678//304 -f 2654//306 2668//306 2671//306 -f 2662//306 2676//306 2679//306 -f 2656//305 2673//305 2672//305 -f 2664//305 2681//305 2680//305 -f 2657//307 2674//307 2673//307 -f 2665//307 2682//307 2681//307 -f 2659//304 2675//304 2674//304 -f 2667//304 2683//304 2682//304 -f 2658//306 2672//306 2675//306 -f 2652//305 2669//305 2668//305 -f 2666//306 2680//306 2683//306 -f 2660//305 2677//305 2676//305 -f 2653//307 2670//307 2669//307 -f 2661//307 2678//307 2677//307 -f 2655//304 2671//304 2670//304 -f 2686//307 2684//307 2685//307 -f 2690//306 2691//306 2689//306 -f 2692//304 2694//304 2695//304 -f 2699//305 2698//305 2696//305 -f 2702//308 2703//308 2701//308 -f 2706//308 2707//308 2705//308 -f 2710//303 2711//303 2708//303 -f 2714//303 2715//303 2712//303 -f 2703//304 2711//304 2710//304 -f 2700//305 2709//305 2708//305 -f 2706//306 2712//306 2715//306 -f 2705//307 2714//307 2713//307 -f 2702//306 2708//306 2711//306 -f 2701//307 2710//307 2709//307 -f 2707//304 2715//304 2714//304 -f 2704//305 2713//305 2712//305 +f 2600/961/301 2594/962/301 2592/963/301 +f 2601/964/301 2592/963/301 2593/965/301 +f 2593/965/302 2599/966/302 2595/967/302 +f 2594/968/303 2597/969/303 2592/970/303 +f 2595/971/304 2596/972/304 2594/973/304 +f 2592/974/305 2598/975/305 2593/976/305 +f 2604/977/302 2602/978/302 2600/979/302 +f 2602/980/301 2595/967/301 2594/962/301 +f 2603/981/301 2593/965/301 2595/967/301 +f 2597/982/306 2605/983/306 2598/984/306 +f 2598/984/306 2607/985/306 2599/966/306 +f 2599/966/306 2606/986/306 2596/987/306 +f 2596/987/306 2604/988/306 2597/982/306 +f 2609/989/301 2610/990/301 2608/991/301 +f 2606/992/305 2603/993/305 2602/994/305 +f 2607/995/303 2601/996/303 2603/997/303 +f 2605/998/304 2600/999/304 2601/1000/304 +f 2613/1001/304 2615/1002/304 2620/1003/304 +f 2615/1004/303 2622/1005/303 2620/1006/303 +f 2612/1007/302 2616/1008/302 2621/1009/302 +f 2623/1010/307 2620/1006/307 2622/1005/307 +f 2621/1011/305 2619/1012/305 2617/1013/305 +f 2623/1014/305 2622/1015/305 2618/1016/305 +f 2622/1015/303 2624/1017/303 2618/1016/303 +f 2624/1018/308 2621/1011/308 2616/1019/308 +f 2631/1020/301 2629/1021/301 2630/1022/301 +f 2625/1023/303 2629/1021/303 2627/1024/303 +f 2627/1025/304 2632/1026/304 2628/1027/304 +f 2626/1028/305 2630/1022/305 2625/1029/305 +f 2628/1030/302 2631/1020/302 2626/1031/302 +f 2651/1032/301 2649/1033/301 2650/1034/301 +f 2655/1035/301 2653/1036/301 2654/1037/301 +f 2659/1038/301 2657/1039/301 2658/1040/301 +f 2663/1041/301 2661/1042/301 2662/1043/301 +f 2644/1044/302 2659/1038/302 2642/1045/302 +f 2635/1046/304 2652/1047/304 2636/1048/304 +f 2643/1049/304 2660/1050/304 2644/1044/304 +f 2637/1051/303 2653/1052/303 2639/1053/303 +f 2645/1054/303 2661/1055/303 2647/1056/303 +f 2638/1057/305 2654/1058/305 2637/1051/305 +f 2646/1059/305 2662/1060/305 2645/1054/305 +f 2640/1061/302 2655/1035/302 2638/1062/302 +f 2648/1063/302 2663/1041/302 2646/1064/302 +f 2639/1053/304 2656/1065/304 2640/1061/304 +f 2633/1066/303 2649/1067/303 2635/1046/303 +f 2647/1056/304 2664/1068/304 2648/1063/304 +f 2641/1069/303 2657/1070/303 2643/1049/303 +f 2634/1071/305 2650/1072/305 2633/1066/305 +f 2642/1073/305 2658/1074/305 2641/1069/305 +f 2636/1048/302 2651/1032/302 2634/1075/302 +f 2667/1076/305 2666/1077/305 2668/1078/305 +f 2671/1079/304 2670/1080/304 2669/1081/304 +f 2673/1082/302 2676/1083/302 2674/1084/302 +f 2680/1085/303 2677/1086/303 2678/1087/303 +f 2691/1088/301 2689/1089/301 2690/1090/301 +f 2695/1091/301 2693/1092/301 2694/1093/301 +f 2684/1094/302 2691/1088/302 2682/1095/302 +f 2681/1096/303 2689/1097/303 2683/1098/303 +f 2687/1099/304 2696/1100/304 2688/1101/304 +f 2686/1102/305 2694/1103/305 2685/1104/305 +f 2683/1098/304 2692/1105/304 2684/1094/304 +f 2682/1106/305 2690/1107/305 2681/1096/305 +f 2688/1101/302 2695/1091/302 2686/1108/302 +f 2685/1104/303 2693/1109/303 2687/1099/303 +f 2698/1110/305 2700/1111/305 2705/1112/305 +f 2700/1113/302 2707/1114/302 2705/1115/302 +f 2697/1116/303 2701/1117/303 2706/1118/303 +f 2699/1119/309 2707/1114/309 2708/1120/309 +f 2706/1121/304 2704/1122/304 2702/1123/304 +f 2708/1124/304 2707/1125/304 2703/1126/304 +f 2707/1125/302 2709/1127/302 2703/1126/302 +f 2709/1128/310 2706/1121/310 2701/1129/310 +f 2711/1130/303 2713/1131/303 2718/1132/303 +f 2713/1133/305 2720/1134/305 2718/1135/305 +f 2710/1136/304 2714/1137/304 2719/1138/304 +f 2712/1139/308 2720/1134/308 2721/1140/308 +f 2719/1141/302 2717/1142/302 2715/1143/302 +f 2721/1144/302 2720/1145/302 2716/1146/302 +f 2720/1145/305 2722/1147/305 2716/1146/305 +f 2722/1148/309 2719/1141/309 2714/1149/309 +f 2724/1150/302 2726/1151/302 2731/1152/302 +f 2726/1153/304 2733/1154/304 2731/1155/304 +f 2723/1156/305 2727/1157/305 2732/1158/305 +f 2734/1159/310 2731/1155/310 2733/1154/310 +f 2732/1160/303 2730/1161/303 2728/1162/303 +f 2734/1163/303 2733/1164/303 2729/1165/303 +f 2733/1164/304 2735/1166/304 2729/1165/304 +f 2735/1167/307 2732/1160/307 2727/1168/307 +f 2737/1169/304 2738/1170/304 2739/1171/304 +f 2741/1172/305 2742/1173/305 2740/1174/305 +f 2747/1175/303 2744/1176/303 2745/1177/303 +f 2748/1178/302 2751/1179/302 2749/1180/302 +f 2600/961/301 2602/980/301 2594/962/301 +f 2601/964/301 2600/961/301 2592/963/301 +f 2593/965/302 2598/984/302 2599/966/302 +f 2594/968/303 2596/1181/303 2597/969/303 +f 2595/971/304 2599/1182/304 2596/972/304 +f 2592/974/305 2597/1183/305 2598/975/305 +f 2604/977/302 2606/1184/302 2602/978/302 +f 2602/980/301 2603/981/301 2595/967/301 +f 2603/981/301 2601/964/301 2593/965/301 +f 2597/982/306 2604/988/306 2605/983/306 +f 2598/984/306 2605/983/306 2607/985/306 +f 2599/966/306 2607/985/306 2606/986/306 +f 2596/987/306 2606/986/306 2604/988/306 +f 2609/989/301 2611/1185/301 2610/990/301 +f 2606/992/305 2607/1186/305 2603/993/305 +f 2607/995/303 2605/1187/303 2601/996/303 +f 2605/998/304 2604/1188/304 2600/999/304 +f 2614/1189/304 2612/1007/304 2620/1003/304 +f 2612/1007/304 2613/1001/304 2620/1003/304 +f 2615/1004/303 2619/1012/303 2622/1005/303 +f 2617/1190/302 2613/1001/302 2621/1009/302 +f 2613/1001/302 2612/1007/302 2621/1009/302 +f 2623/1010/307 2614/1191/307 2620/1006/307 +f 2621/1011/305 2622/1005/305 2619/1012/305 +f 2624/1018/308 2622/1005/308 2621/1011/308 +f 2631/1020/301 2632/1026/301 2629/1021/301 +f 2625/1023/303 2630/1022/303 2629/1021/303 +f 2627/1025/304 2629/1021/304 2632/1026/304 +f 2626/1028/305 2631/1020/305 2630/1022/305 +f 2628/1030/302 2632/1026/302 2631/1020/302 +f 2651/1032/301 2652/1047/301 2649/1033/301 +f 2655/1035/301 2656/1065/301 2653/1036/301 +f 2659/1038/301 2660/1050/301 2657/1039/301 +f 2663/1041/301 2664/1068/301 2661/1042/301 +f 2644/1044/302 2660/1050/302 2659/1038/302 +f 2635/1046/304 2649/1067/304 2652/1047/304 +f 2643/1049/304 2657/1070/304 2660/1050/304 +f 2637/1051/303 2654/1058/303 2653/1052/303 +f 2645/1054/303 2662/1060/303 2661/1055/303 +f 2638/1057/305 2655/1192/305 2654/1058/305 +f 2646/1059/305 2663/1193/305 2662/1060/305 +f 2640/1061/302 2656/1065/302 2655/1035/302 +f 2648/1063/302 2664/1068/302 2663/1041/302 +f 2639/1053/304 2653/1052/304 2656/1065/304 +f 2633/1066/303 2650/1072/303 2649/1067/303 +f 2647/1056/304 2661/1055/304 2664/1068/304 +f 2641/1069/303 2658/1074/303 2657/1070/303 +f 2634/1071/305 2651/1194/305 2650/1072/305 +f 2642/1073/305 2659/1195/305 2658/1074/305 +f 2636/1048/302 2652/1047/302 2651/1032/302 +f 2667/1076/305 2665/1196/305 2666/1077/305 +f 2671/1079/304 2672/1197/304 2670/1080/304 +f 2673/1082/302 2675/1198/302 2676/1083/302 +f 2680/1085/303 2679/1199/303 2677/1086/303 +f 2691/1088/301 2692/1105/301 2689/1089/301 +f 2695/1091/301 2696/1100/301 2693/1092/301 +f 2684/1094/302 2692/1105/302 2691/1088/302 +f 2681/1096/303 2690/1107/303 2689/1097/303 +f 2687/1099/304 2693/1109/304 2696/1100/304 +f 2686/1102/305 2695/1200/305 2694/1103/305 +f 2683/1098/304 2689/1097/304 2692/1105/304 +f 2682/1106/305 2691/1201/305 2690/1107/305 +f 2688/1101/302 2696/1100/302 2695/1091/302 +f 2685/1104/303 2694/1103/303 2693/1109/303 +f 2699/1202/305 2697/1116/305 2705/1112/305 +f 2697/1116/305 2698/1110/305 2705/1112/305 +f 2700/1113/302 2704/1122/302 2707/1114/302 +f 2702/1203/303 2698/1110/303 2706/1118/303 +f 2698/1110/303 2697/1116/303 2706/1118/303 +f 2699/1119/309 2705/1115/309 2707/1114/309 +f 2706/1121/304 2707/1114/304 2704/1122/304 +f 2709/1128/310 2707/1114/310 2706/1121/310 +f 2712/1204/303 2710/1136/303 2718/1132/303 +f 2710/1136/303 2711/1130/303 2718/1132/303 +f 2713/1133/305 2717/1142/305 2720/1134/305 +f 2715/1205/304 2711/1130/304 2719/1138/304 +f 2711/1130/304 2710/1136/304 2719/1138/304 +f 2712/1139/308 2718/1135/308 2720/1134/308 +f 2719/1141/302 2720/1134/302 2717/1142/302 +f 2722/1148/309 2720/1134/309 2719/1141/309 +f 2725/1206/302 2723/1156/302 2731/1152/302 +f 2723/1156/302 2724/1150/302 2731/1152/302 +f 2726/1153/304 2730/1161/304 2733/1154/304 +f 2728/1207/305 2724/1150/305 2732/1158/305 +f 2724/1150/305 2723/1156/305 2732/1158/305 +f 2734/1159/310 2725/1208/310 2731/1155/310 +f 2732/1160/303 2733/1154/303 2730/1161/303 +f 2735/1167/307 2733/1154/307 2732/1160/307 +f 2737/1169/304 2736/1209/304 2738/1170/304 +f 2741/1172/305 2743/1210/305 2742/1173/305 +f 2747/1175/303 2746/1211/303 2744/1176/303 +f 2748/1178/302 2750/1212/302 2751/1179/302 o V2_Pad v -0.500000 2.000000 0.500000 v 0.500000 2.000000 0.500000 @@ -7400,457 +8638,457 @@ vn -0.9007 0.3762 -0.2172 vn -0.9007 0.4343 0.0000 vn -0.9007 0.3762 0.2172 s off -f 2721/1/313 2722/2/313 2720/3/313 -f 2727/4/314 2720/3/314 2726/5/314 -f 2723/6/315 2724/7/315 2722/2/315 -f 2725/8/316 2721/1/316 2727/9/316 -f 2720/3/317 2724/10/317 2726/11/317 -f 2716/12/313 2729/13/313 2717/14/313 -f 2717/14/313 2731/15/313 2718/16/313 -f 2718/16/313 2730/17/313 2719/18/313 -f 2719/18/313 2728/19/313 2716/12/313 -f 2734/20/313 2732/21/313 2733/22/313 -f 2742/23/318 2739/24/318 2737/25/318 -f 2743/26/318 2737/25/318 2736/27/318 -f 2740/28/318 2736/27/318 2738/29/318 -f 2741/30/318 2738/29/318 2739/24/318 -f 2718/31/317 2737/32/317 2717/33/317 -f 2729/13/316 2743/26/316 2731/15/316 -f 2730/34/317 2741/35/317 2728/36/317 -f 2717/37/315 2739/38/315 2716/39/315 -f 2716/40/316 2738/41/316 2719/42/316 -f 2731/43/315 2740/44/315 2730/45/315 -f 2728/46/314 2742/47/314 2729/48/314 -f 2719/49/314 2736/50/314 2718/51/314 -f 2746/52/315 2751/53/315 2747/54/315 -f 2745/55/314 2748/56/314 2744/57/314 -f 2747/58/316 2749/59/316 2745/60/316 -f 2744/61/317 2750/62/317 2746/63/317 -f 2763/64/316 2765/65/316 2761/66/316 -f 2757/67/313 2758/68/313 2756/69/313 -f 2755/70/316 2757/67/316 2753/71/316 -f 2752/72/317 2758/73/317 2754/74/317 -f 2754/75/315 2759/76/315 2755/77/315 -f 2753/78/314 2756/79/314 2752/80/314 -f 2760/81/317 2766/82/317 2762/83/317 -f 2762/84/315 2767/85/315 2763/86/315 -f 2761/87/314 2764/88/314 2760/89/314 -f 2763/64/318 2760/90/318 2762/91/318 -f 2774/92/313 2772/93/313 2773/94/313 -f 2771/95/316 2774/92/316 2769/96/316 -f 2768/97/317 2772/98/317 2770/99/317 -f 2770/99/315 2775/100/315 2771/95/315 -f 2769/96/314 2773/101/314 2768/102/314 -f 2778/103/318 2776/104/318 2779/105/318 -f 2805/106/318 2807/107/318 2804/108/318 -f 2808/109/313 2810/110/313 2811/111/313 -f 2811/112/314 2805/113/314 2804/114/314 -f 2810/110/317 2806/115/317 2805/116/317 -f 2809/117/315 2807/107/315 2806/118/315 -f 2808/119/316 2804/120/316 2807/107/316 -f 2815/121/316 2819/122/316 2816/123/316 -f 2814/124/315 2816/125/315 2817/126/315 -f 2813/127/317 2817/128/317 2818/129/317 -f 2812/130/314 2818/131/314 2819/122/314 -f 2815/132/313 2813/133/313 2812/134/313 -f 2818/135/318 2816/136/318 2819/122/318 -f 2821/137/318 2823/138/318 2820/139/318 -f 2824/140/313 2826/141/313 2827/142/313 -f 2827/142/314 2821/143/314 2820/144/314 -f 2826/145/317 2822/146/317 2821/147/317 -f 2825/148/315 2823/149/315 2822/146/315 -f 2824/150/316 2820/151/316 2823/152/316 -f 2831/153/316 2835/154/316 2832/155/316 -f 2830/156/315 2832/157/315 2833/158/315 -f 2829/159/317 2833/160/317 2834/161/317 -f 2828/162/314 2834/161/314 2835/163/314 -f 2831/153/313 2829/164/313 2828/165/313 -f 2834/161/318 2832/166/318 2835/167/318 -f 2836/168/313 2838/169/313 2839/170/313 -f 2839/171/314 2778/103/314 2779/172/314 -f 2838/173/317 2777/174/317 2778/103/317 -f 2837/175/315 2776/176/315 2777/177/315 -f 2836/168/316 2779/178/316 2776/179/316 -f 2843/180/316 2847/181/316 2844/182/316 -f 2842/183/315 2844/184/315 2845/185/315 -f 2841/186/317 2845/185/317 2846/187/317 -f 2840/188/314 2846/189/314 2847/190/314 -f 2843/191/313 2841/192/313 2840/188/313 -f 2846/193/318 2844/194/318 2847/195/318 -f 2849/196/318 2851/197/318 2848/198/318 -f 2852/199/313 2854/200/313 2855/201/313 -f 2855/202/314 2849/203/314 2848/198/314 -f 2854/204/317 2850/205/317 2849/206/317 -f 2853/207/315 2851/208/315 2850/209/315 -f 2852/210/316 2848/198/316 2851/211/316 -f 2859/212/316 2863/213/316 2860/214/316 -f 2858/215/315 2860/214/315 2861/216/315 -f 2857/217/317 2861/218/317 2862/219/317 -f 2856/220/314 2862/221/314 2863/222/314 -f 2859/223/313 2857/217/313 2856/224/313 -f 2862/225/318 2860/214/318 2863/226/318 -f 2865/227/318 2866/228/318 2864/229/318 -f 2867/230/317 2870/231/317 2866/228/317 -f 2864/229/316 2869/232/316 2865/227/316 -f 2868/233/313 2871/234/313 2869/232/313 -f 2873/235/318 2874/236/318 2872/237/318 -f 2875/238/317 2878/239/317 2874/236/317 -f 2872/237/316 2877/240/316 2873/235/316 -f 2876/241/313 2879/242/313 2877/243/313 -f 2881/244/318 2882/245/318 2880/246/318 -f 2883/247/317 2886/248/317 2882/249/317 -f 2880/246/316 2885/250/316 2881/244/316 -f 2884/251/313 2887/252/313 2885/250/313 -f 2889/253/318 2890/254/318 2888/255/318 -f 2891/256/317 2894/257/317 2890/254/317 -f 2888/258/316 2893/259/316 2889/260/316 -f 2892/261/313 2895/262/313 2893/259/313 -f 2897/263/315 2898/264/315 2896/265/315 -f 2899/266/317 2902/267/317 2898/264/317 -f 2896/265/316 2901/268/316 2897/263/316 -f 2900/269/314 2903/270/314 2901/268/314 -f 2905/271/315 2906/272/315 2904/273/315 -f 2907/274/317 2910/275/317 2906/272/317 -f 2904/273/316 2909/276/316 2905/271/316 -f 2908/277/314 2911/278/314 2909/279/314 -f 2913/280/315 2914/281/315 2912/282/315 -f 2915/283/317 2918/284/317 2914/285/317 -f 2912/282/316 2917/286/316 2913/280/316 -f 2916/287/314 2919/288/314 2917/286/314 -f 2921/289/315 2922/290/315 2920/291/315 -f 2923/292/317 2926/293/317 2922/290/317 -f 2920/294/316 2925/295/316 2921/296/316 -f 2924/297/314 2927/298/314 2925/295/314 -f 2931/299/318 2928/300/318 2929/301/318 -f 2935/302/315 2930/303/315 2931/299/315 -f 2932/304/314 2929/301/314 2928/300/314 -f 2932/304/313 2935/305/313 2933/306/313 -f 2939/307/318 2936/308/318 2937/309/318 -f 2943/310/315 2938/311/315 2939/312/315 -f 2940/313/314 2937/309/314 2936/308/314 -f 2940/313/313 2943/310/313 2941/314/313 -f 2947/315/318 2944/316/318 2945/317/318 -f 2951/318/315 2946/319/315 2947/315/315 -f 2948/320/314 2945/317/314 2944/316/314 -f 2948/321/313 2951/318/313 2949/322/313 -f 2955/323/318 2952/324/318 2953/325/318 -f 2959/326/315 2954/327/315 2955/323/315 -f 2956/328/314 2953/329/314 2952/330/314 -f 2956/328/313 2959/326/313 2957/331/313 -f 2986/332/315 2991/333/315 2987/334/315 -f 2985/335/314 2988/336/314 2984/337/314 -f 2987/338/316 2989/339/316 2985/340/316 -f 2984/341/317 2990/342/317 2986/343/317 -f 3003/344/316 3005/345/316 3001/346/316 -f 2997/347/313 2998/348/313 2996/349/313 -f 2995/350/316 2997/347/316 2993/351/316 -f 2992/352/317 2998/353/317 2994/354/317 -f 2994/355/315 2999/356/315 2995/357/315 -f 2993/358/314 2996/359/314 2992/360/314 -f 3000/361/317 3006/362/317 3002/363/317 -f 3002/364/315 3007/365/315 3003/366/315 -f 3001/367/314 3004/368/314 3000/369/314 -f 3003/344/318 3000/370/318 3002/371/318 -f 3010/372/315 3015/373/315 3011/374/315 -f 3009/375/314 3012/376/314 3008/377/314 -f 3011/378/316 3013/379/316 3009/380/316 -f 3008/381/317 3014/382/317 3010/383/317 -f 3027/384/316 3029/385/316 3025/386/316 -f 3021/387/313 3022/388/313 3020/389/313 -f 3019/390/316 3021/387/316 3017/391/316 -f 3016/392/317 3022/393/317 3018/394/317 -f 3018/395/315 3023/396/315 3019/397/315 -f 3017/398/314 3020/399/314 3016/400/314 -f 3024/401/317 3030/402/317 3026/403/317 -f 3026/404/315 3031/405/315 3027/406/315 -f 3025/407/314 3028/408/314 3024/409/314 -f 3027/384/318 3024/410/318 3026/411/318 -f 3034/412/315 3039/413/315 3035/414/315 -f 3033/415/314 3036/416/314 3032/417/314 -f 3035/418/316 3037/419/316 3033/420/316 -f 3032/421/317 3038/422/317 3034/423/317 -f 3051/424/316 3053/425/316 3049/426/316 -f 3045/427/313 3046/428/313 3044/429/313 -f 3043/430/316 3045/427/316 3041/431/316 -f 3040/432/317 3046/433/317 3042/434/317 -f 3042/435/315 3047/436/315 3043/437/315 -f 3041/438/314 3044/439/314 3040/440/314 -f 3048/441/317 3054/442/317 3050/443/317 -f 3050/444/315 3055/445/315 3051/446/315 -f 3049/447/314 3052/448/314 3048/449/314 -f 3051/424/318 3048/450/318 3050/451/318 -f 2721/1/313 2723/6/313 2722/2/313 -f 2727/4/314 2721/1/314 2720/3/314 -f 2723/6/315 2725/452/315 2724/7/315 -f 2725/8/316 2723/6/316 2721/1/316 -f 2720/3/317 2722/2/317 2724/10/317 -f 2716/12/313 2728/19/313 2729/13/313 -f 2717/14/313 2729/13/313 2731/15/313 -f 2718/16/313 2731/15/313 2730/17/313 -f 2719/18/313 2730/17/313 2728/19/313 -f 2734/20/313 2735/453/313 2732/21/313 -f 2742/23/318 2741/30/318 2739/24/318 -f 2743/26/318 2742/23/318 2737/25/318 -f 2740/28/318 2743/26/318 2736/27/318 -f 2741/30/318 2740/28/318 2738/29/318 -f 2718/31/317 2736/454/317 2737/32/317 -f 2729/13/316 2742/23/316 2743/26/316 -f 2730/34/317 2740/455/317 2741/35/317 -f 2717/37/315 2737/456/315 2739/38/315 -f 2716/40/316 2739/457/316 2738/41/316 -f 2731/43/315 2743/458/315 2740/44/315 -f 2728/46/314 2741/459/314 2742/47/314 -f 2719/49/314 2738/460/314 2736/50/314 -f 2746/52/315 2750/461/315 2751/53/315 -f 2745/55/314 2749/462/314 2748/56/314 -f 2747/58/316 2751/463/316 2749/59/316 -f 2744/61/317 2748/464/317 2750/62/317 -f 2763/64/316 2767/465/316 2765/65/316 -f 2757/67/313 2759/466/313 2758/68/313 -f 2755/70/316 2759/466/316 2757/67/316 -f 2752/72/317 2756/467/317 2758/73/317 -f 2754/75/315 2758/468/315 2759/76/315 -f 2753/78/314 2757/469/314 2756/79/314 -f 2760/81/317 2764/470/317 2766/82/317 -f 2762/84/315 2766/471/315 2767/85/315 -f 2761/87/314 2765/472/314 2764/88/314 -f 2763/64/318 2761/66/318 2760/90/318 -f 2774/92/313 2775/100/313 2772/93/313 -f 2771/95/316 2775/100/316 2774/92/316 -f 2768/97/317 2773/473/317 2772/98/317 -f 2770/99/315 2772/98/315 2775/100/315 -f 2769/96/314 2774/92/314 2773/101/314 -f 2778/103/318 2777/474/318 2776/104/318 -f 2805/106/318 2806/475/318 2807/107/318 -f 2808/109/313 2809/476/313 2810/110/313 -f 2811/112/314 2810/110/314 2805/113/314 -f 2810/110/317 2809/477/317 2806/115/317 -f 2809/117/315 2808/478/315 2807/107/315 -f 2808/119/316 2811/479/316 2804/120/316 -f 2815/121/316 2812/480/316 2819/122/316 -f 2814/124/315 2815/481/315 2816/125/315 -f 2813/127/317 2814/124/317 2817/128/317 -f 2812/130/314 2813/482/314 2818/131/314 -f 2815/132/313 2814/124/313 2813/133/313 -f 2818/135/318 2817/483/318 2816/136/318 -f 2821/137/318 2822/146/318 2823/138/318 -f 2824/140/313 2825/484/313 2826/141/313 -f 2827/142/314 2826/485/314 2821/143/314 -f 2826/145/317 2825/486/317 2822/146/317 -f 2825/148/315 2824/487/315 2823/149/315 -f 2824/150/316 2827/142/316 2820/151/316 -f 2831/153/316 2828/488/316 2835/154/316 -f 2830/156/315 2831/153/315 2832/157/315 -f 2829/159/317 2830/489/317 2833/160/317 -f 2828/162/314 2829/490/314 2834/161/314 -f 2831/153/313 2830/491/313 2829/164/313 -f 2834/161/318 2833/492/318 2832/166/318 -f 2836/168/313 2837/493/313 2838/169/313 -f 2839/171/314 2838/494/314 2778/103/314 -f 2838/173/317 2837/495/317 2777/174/317 -f 2837/175/315 2836/168/315 2776/176/315 -f 2836/168/316 2839/496/316 2779/178/316 -f 2843/180/316 2840/188/316 2847/181/316 -f 2842/183/315 2843/497/315 2844/184/315 -f 2841/186/317 2842/498/317 2845/185/317 -f 2840/188/314 2841/499/314 2846/189/314 -f 2843/191/313 2842/500/313 2841/192/313 -f 2846/193/318 2845/185/318 2844/194/318 -f 2849/196/318 2850/501/318 2851/197/318 -f 2852/199/313 2853/207/313 2854/200/313 -f 2855/202/314 2854/502/314 2849/203/314 -f 2854/204/317 2853/207/317 2850/205/317 -f 2853/207/315 2852/503/315 2851/208/315 -f 2852/210/316 2855/504/316 2848/198/316 -f 2859/212/316 2856/505/316 2863/213/316 -f 2858/215/315 2859/506/315 2860/214/315 -f 2857/217/317 2858/507/317 2861/218/317 -f 2856/220/314 2857/217/314 2862/221/314 -f 2859/223/313 2858/508/313 2857/217/313 -f 2862/225/318 2861/509/318 2860/214/318 -f 2865/227/318 2867/230/318 2866/228/318 -f 2867/230/317 2871/510/317 2870/231/317 -f 2864/229/316 2868/233/316 2869/232/316 -f 2868/233/313 2870/511/313 2871/234/313 -f 2873/235/318 2875/238/318 2874/236/318 -f 2875/238/317 2879/242/317 2878/239/317 -f 2872/237/316 2876/512/316 2877/240/316 -f 2876/241/313 2878/239/313 2879/242/313 -f 2881/244/318 2883/513/318 2882/245/318 -f 2883/247/317 2887/252/317 2886/248/317 -f 2880/246/316 2884/251/316 2885/250/316 -f 2884/251/313 2886/248/313 2887/252/313 -f 2889/253/318 2891/256/318 2890/254/318 -f 2891/256/317 2895/262/317 2894/257/317 -f 2888/258/316 2892/261/316 2893/259/316 -f 2892/261/313 2894/257/313 2895/262/313 -f 2897/263/315 2899/266/315 2898/264/315 -f 2899/266/317 2903/514/317 2902/267/317 -f 2896/265/316 2900/269/316 2901/268/316 -f 2900/269/314 2902/515/314 2903/270/314 -f 2905/271/315 2907/274/315 2906/272/315 -f 2907/274/317 2911/278/317 2910/275/317 -f 2904/273/316 2908/516/316 2909/276/316 -f 2908/277/314 2910/275/314 2911/278/314 -f 2913/280/315 2915/517/315 2914/281/315 -f 2915/283/317 2919/288/317 2918/284/317 -f 2912/282/316 2916/287/316 2917/286/316 -f 2916/287/314 2918/284/314 2919/288/314 -f 2921/289/315 2923/292/315 2922/290/315 -f 2923/292/317 2927/298/317 2926/293/317 -f 2920/294/316 2924/297/316 2925/295/316 -f 2924/297/314 2926/293/314 2927/298/314 -f 2931/299/318 2930/303/318 2928/300/318 -f 2935/302/315 2934/518/315 2930/303/315 -f 2932/304/314 2933/306/314 2929/301/314 -f 2932/304/313 2934/519/313 2935/305/313 -f 2939/307/318 2938/520/318 2936/308/318 -f 2943/310/315 2942/521/315 2938/311/315 -f 2940/313/314 2941/314/314 2937/309/314 -f 2940/313/313 2942/521/313 2943/310/313 -f 2947/315/318 2946/319/318 2944/316/318 -f 2951/318/315 2950/522/315 2946/319/315 -f 2948/320/314 2949/523/314 2945/317/314 -f 2948/321/313 2950/522/313 2951/318/313 -f 2955/323/318 2954/327/318 2952/324/318 -f 2959/326/315 2958/524/315 2954/327/315 -f 2956/328/314 2957/331/314 2953/329/314 -f 2956/328/313 2958/524/313 2959/326/313 -f 2986/332/315 2990/525/315 2991/333/315 -f 2985/335/314 2989/526/314 2988/336/314 -f 2987/338/316 2991/527/316 2989/339/316 -f 2984/341/317 2988/528/317 2990/342/317 -f 3003/344/316 3007/529/316 3005/345/316 -f 2997/347/313 2999/530/313 2998/348/313 -f 2995/350/316 2999/530/316 2997/347/316 -f 2992/352/317 2996/531/317 2998/353/317 -f 2994/355/315 2998/532/315 2999/356/315 -f 2993/358/314 2997/533/314 2996/359/314 -f 3000/361/317 3004/534/317 3006/362/317 -f 3002/364/315 3006/535/315 3007/365/315 -f 3001/367/314 3005/536/314 3004/368/314 -f 3003/344/318 3001/346/318 3000/370/318 -f 3010/372/315 3014/537/315 3015/373/315 -f 3009/375/314 3013/538/314 3012/376/314 -f 3011/378/316 3015/539/316 3013/379/316 -f 3008/381/317 3012/540/317 3014/382/317 -f 3027/384/316 3031/541/316 3029/385/316 -f 3021/387/313 3023/542/313 3022/388/313 -f 3019/390/316 3023/542/316 3021/387/316 -f 3016/392/317 3020/543/317 3022/393/317 -f 3018/395/315 3022/544/315 3023/396/315 -f 3017/398/314 3021/545/314 3020/399/314 -f 3024/401/317 3028/546/317 3030/402/317 -f 3026/404/315 3030/547/315 3031/405/315 -f 3025/407/314 3029/548/314 3028/408/314 -f 3027/384/318 3025/386/318 3024/410/318 -f 3034/412/315 3038/549/315 3039/413/315 -f 3033/415/314 3037/550/314 3036/416/314 -f 3035/418/316 3039/551/316 3037/419/316 -f 3032/421/317 3036/552/317 3038/422/317 -f 3051/424/316 3055/553/316 3053/425/316 -f 3045/427/313 3047/554/313 3046/428/313 -f 3043/430/316 3047/554/316 3045/427/316 -f 3040/432/317 3044/555/317 3046/433/317 -f 3042/435/315 3046/556/315 3047/436/315 -f 3041/438/314 3045/557/314 3044/439/314 -f 3048/441/317 3052/558/317 3054/442/317 -f 3050/444/315 3054/559/315 3055/445/315 -f 3049/447/314 3053/560/314 3052/448/314 -f 3051/424/318 3049/426/318 3048/450/318 +f 2757/1213/311 2758/1214/311 2756/1215/311 +f 2763/1216/312 2756/1215/312 2762/1217/312 +f 2759/1218/313 2760/1219/313 2758/1214/313 +f 2761/1220/314 2757/1213/314 2763/1221/314 +f 2756/1215/315 2760/1222/315 2762/1223/315 +f 2752/1224/311 2765/1225/311 2753/1226/311 +f 2753/1226/311 2767/1227/311 2754/1228/311 +f 2754/1228/311 2766/1229/311 2755/1230/311 +f 2755/1230/311 2764/1231/311 2752/1224/311 +f 2770/1232/311 2768/1233/311 2769/1234/311 +f 2778/1235/316 2775/1236/316 2773/1237/316 +f 2779/1238/316 2773/1237/316 2772/1239/316 +f 2776/1240/316 2772/1239/316 2774/1241/316 +f 2777/1242/316 2774/1241/316 2775/1236/316 +f 2754/1243/315 2773/1244/315 2753/1245/315 +f 2765/1225/314 2779/1238/314 2767/1227/314 +f 2766/1246/315 2777/1247/315 2764/1248/315 +f 2753/1249/313 2775/1250/313 2752/1251/313 +f 2752/1252/314 2774/1253/314 2755/1254/314 +f 2767/1255/313 2776/1256/313 2766/1257/313 +f 2764/1258/312 2778/1259/312 2765/1260/312 +f 2755/1261/312 2772/1262/312 2754/1263/312 +f 2782/1264/313 2787/1265/313 2783/1266/313 +f 2781/1267/312 2784/1268/312 2780/1269/312 +f 2783/1270/314 2785/1271/314 2781/1272/314 +f 2780/1273/315 2786/1274/315 2782/1275/315 +f 2799/1276/314 2801/1277/314 2797/1278/314 +f 2793/1279/311 2794/1280/311 2792/1281/311 +f 2791/1282/314 2793/1279/314 2789/1283/314 +f 2788/1284/315 2794/1285/315 2790/1286/315 +f 2790/1287/313 2795/1288/313 2791/1289/313 +f 2789/1290/312 2792/1291/312 2788/1292/312 +f 2796/1293/315 2802/1294/315 2798/1295/315 +f 2798/1296/313 2803/1297/313 2799/1298/313 +f 2797/1299/312 2800/1300/312 2796/1301/312 +f 2799/1276/316 2796/1302/316 2798/1303/316 +f 2810/1304/311 2808/1305/311 2809/1306/311 +f 2807/1307/314 2810/1304/314 2805/1308/314 +f 2804/1309/315 2808/1310/315 2806/1311/315 +f 2806/1311/313 2811/1312/313 2807/1307/313 +f 2805/1308/312 2809/1313/312 2804/1314/312 +f 2814/1315/316 2812/1316/316 2815/1317/316 +f 2841/1318/316 2843/1319/316 2840/1320/316 +f 2844/1321/311 2846/1322/311 2847/1323/311 +f 2847/1324/312 2841/1325/312 2840/1326/312 +f 2846/1322/315 2842/1327/315 2841/1328/315 +f 2845/1329/313 2843/1319/313 2842/1330/313 +f 2844/1331/314 2840/1332/314 2843/1319/314 +f 2851/1333/314 2855/1334/314 2852/1335/314 +f 2850/1336/313 2852/1337/313 2853/1338/313 +f 2849/1339/315 2853/1340/315 2854/1341/315 +f 2848/1342/312 2854/1343/312 2855/1334/312 +f 2851/1344/311 2849/1345/311 2848/1346/311 +f 2854/1347/316 2852/1348/316 2855/1334/316 +f 2857/1349/316 2859/1350/316 2856/1351/316 +f 2860/1352/311 2862/1353/311 2863/1354/311 +f 2863/1354/312 2857/1355/312 2856/1356/312 +f 2862/1357/315 2858/1358/315 2857/1359/315 +f 2861/1360/313 2859/1361/313 2858/1358/313 +f 2860/1362/314 2856/1363/314 2859/1364/314 +f 2867/1365/314 2871/1366/314 2868/1367/314 +f 2866/1368/313 2868/1369/313 2869/1370/313 +f 2865/1371/315 2869/1372/315 2870/1373/315 +f 2864/1374/312 2870/1373/312 2871/1375/312 +f 2867/1365/311 2865/1376/311 2864/1377/311 +f 2870/1373/316 2868/1378/316 2871/1379/316 +f 2872/1380/311 2874/1381/311 2875/1382/311 +f 2875/1383/312 2814/1315/312 2815/1384/312 +f 2874/1385/315 2813/1386/315 2814/1315/315 +f 2873/1387/313 2812/1388/313 2813/1389/313 +f 2872/1380/314 2815/1390/314 2812/1391/314 +f 2879/1392/314 2883/1393/314 2880/1394/314 +f 2878/1395/313 2880/1396/313 2881/1397/313 +f 2877/1398/315 2881/1397/315 2882/1399/315 +f 2876/1400/312 2882/1401/312 2883/1402/312 +f 2879/1403/311 2877/1404/311 2876/1400/311 +f 2882/1405/316 2880/1406/316 2883/1407/316 +f 2885/1408/316 2887/1409/316 2884/1410/316 +f 2888/1411/311 2890/1412/311 2891/1413/311 +f 2891/1414/312 2885/1415/312 2884/1410/312 +f 2890/1416/315 2886/1417/315 2885/1418/315 +f 2889/1419/313 2887/1420/313 2886/1421/313 +f 2888/1422/314 2884/1410/314 2887/1423/314 +f 2895/1424/314 2899/1425/314 2896/1426/314 +f 2894/1427/313 2896/1426/313 2897/1428/313 +f 2893/1429/315 2897/1430/315 2898/1431/315 +f 2892/1432/312 2898/1433/312 2899/1434/312 +f 2895/1435/311 2893/1429/311 2892/1436/311 +f 2898/1437/316 2896/1426/316 2899/1438/316 +f 2901/1439/316 2902/1440/316 2900/1441/316 +f 2903/1442/315 2906/1443/315 2902/1440/315 +f 2900/1441/314 2905/1444/314 2901/1439/314 +f 2904/1445/311 2907/1446/311 2905/1444/311 +f 2909/1447/316 2910/1448/316 2908/1449/316 +f 2911/1450/315 2914/1451/315 2910/1448/315 +f 2908/1449/314 2913/1452/314 2909/1447/314 +f 2912/1453/311 2915/1454/311 2913/1455/311 +f 2917/1456/316 2918/1457/316 2916/1458/316 +f 2919/1459/315 2922/1460/315 2918/1461/315 +f 2916/1458/314 2921/1462/314 2917/1456/314 +f 2920/1463/311 2923/1464/311 2921/1462/311 +f 2925/1465/316 2926/1466/316 2924/1467/316 +f 2927/1468/315 2930/1469/315 2926/1466/315 +f 2924/1470/314 2929/1471/314 2925/1472/314 +f 2928/1473/311 2931/1474/311 2929/1471/311 +f 2933/1475/313 2934/1476/313 2932/1477/313 +f 2935/1478/315 2938/1479/315 2934/1476/315 +f 2932/1477/314 2937/1480/314 2933/1475/314 +f 2936/1481/312 2939/1482/312 2937/1480/312 +f 2941/1483/313 2942/1484/313 2940/1485/313 +f 2943/1486/315 2946/1487/315 2942/1484/315 +f 2940/1485/314 2945/1488/314 2941/1483/314 +f 2944/1489/312 2947/1490/312 2945/1491/312 +f 2949/1492/313 2950/1493/313 2948/1494/313 +f 2951/1495/315 2954/1496/315 2950/1497/315 +f 2948/1494/314 2953/1498/314 2949/1492/314 +f 2952/1499/312 2955/1500/312 2953/1498/312 +f 2957/1501/313 2958/1502/313 2956/1503/313 +f 2959/1504/315 2962/1505/315 2958/1502/315 +f 2956/1506/314 2961/1507/314 2957/1508/314 +f 2960/1509/312 2963/1510/312 2961/1507/312 +f 2967/1511/316 2964/1512/316 2965/1513/316 +f 2971/1514/313 2966/1515/313 2967/1511/313 +f 2968/1516/312 2965/1513/312 2964/1512/312 +f 2968/1516/311 2971/1517/311 2969/1518/311 +f 2975/1519/316 2972/1520/316 2973/1521/316 +f 2979/1522/313 2974/1523/313 2975/1524/313 +f 2976/1525/312 2973/1521/312 2972/1520/312 +f 2976/1525/311 2979/1522/311 2977/1526/311 +f 2983/1527/316 2980/1528/316 2981/1529/316 +f 2987/1530/313 2982/1531/313 2983/1527/313 +f 2984/1532/312 2981/1529/312 2980/1528/312 +f 2984/1533/311 2987/1530/311 2985/1534/311 +f 2991/1535/316 2988/1536/316 2989/1537/316 +f 2995/1538/313 2990/1539/313 2991/1535/313 +f 2992/1540/312 2989/1541/312 2988/1542/312 +f 2992/1540/311 2995/1538/311 2993/1543/311 +f 3022/1544/313 3027/1545/313 3023/1546/313 +f 3021/1547/312 3024/1548/312 3020/1549/312 +f 3023/1550/314 3025/1551/314 3021/1552/314 +f 3020/1553/315 3026/1554/315 3022/1555/315 +f 3039/1556/314 3041/1557/314 3037/1558/314 +f 3033/1559/311 3034/1560/311 3032/1561/311 +f 3031/1562/314 3033/1559/314 3029/1563/314 +f 3028/1564/315 3034/1565/315 3030/1566/315 +f 3030/1567/313 3035/1568/313 3031/1569/313 +f 3029/1570/312 3032/1571/312 3028/1572/312 +f 3036/1573/315 3042/1574/315 3038/1575/315 +f 3038/1576/313 3043/1577/313 3039/1578/313 +f 3037/1579/312 3040/1580/312 3036/1581/312 +f 3039/1556/316 3036/1582/316 3038/1583/316 +f 3046/1584/313 3051/1585/313 3047/1586/313 +f 3045/1587/312 3048/1588/312 3044/1589/312 +f 3047/1590/314 3049/1591/314 3045/1592/314 +f 3044/1593/315 3050/1594/315 3046/1595/315 +f 3063/1596/314 3065/1597/314 3061/1598/314 +f 3057/1599/311 3058/1600/311 3056/1601/311 +f 3055/1602/314 3057/1599/314 3053/1603/314 +f 3052/1604/315 3058/1605/315 3054/1606/315 +f 3054/1607/313 3059/1608/313 3055/1609/313 +f 3053/1610/312 3056/1611/312 3052/1612/312 +f 3060/1613/315 3066/1614/315 3062/1615/315 +f 3062/1616/313 3067/1617/313 3063/1618/313 +f 3061/1619/312 3064/1620/312 3060/1621/312 +f 3063/1596/316 3060/1622/316 3062/1623/316 +f 3070/1624/313 3075/1625/313 3071/1626/313 +f 3069/1627/312 3072/1628/312 3068/1629/312 +f 3071/1630/314 3073/1631/314 3069/1632/314 +f 3068/1633/315 3074/1634/315 3070/1635/315 +f 3087/1636/314 3089/1637/314 3085/1638/314 +f 3081/1639/311 3082/1640/311 3080/1641/311 +f 3079/1642/314 3081/1639/314 3077/1643/314 +f 3076/1644/315 3082/1645/315 3078/1646/315 +f 3078/1647/313 3083/1648/313 3079/1649/313 +f 3077/1650/312 3080/1651/312 3076/1652/312 +f 3084/1653/315 3090/1654/315 3086/1655/315 +f 3086/1656/313 3091/1657/313 3087/1658/313 +f 3085/1659/312 3088/1660/312 3084/1661/312 +f 3087/1636/316 3084/1662/316 3086/1663/316 +f 2757/1213/311 2759/1218/311 2758/1214/311 +f 2763/1216/312 2757/1213/312 2756/1215/312 +f 2759/1218/313 2761/1664/313 2760/1219/313 +f 2761/1220/314 2759/1218/314 2757/1213/314 +f 2756/1215/315 2758/1214/315 2760/1222/315 +f 2752/1224/311 2764/1231/311 2765/1225/311 +f 2753/1226/311 2765/1225/311 2767/1227/311 +f 2754/1228/311 2767/1227/311 2766/1229/311 +f 2755/1230/311 2766/1229/311 2764/1231/311 +f 2770/1232/311 2771/1665/311 2768/1233/311 +f 2778/1235/316 2777/1242/316 2775/1236/316 +f 2779/1238/316 2778/1235/316 2773/1237/316 +f 2776/1240/316 2779/1238/316 2772/1239/316 +f 2777/1242/316 2776/1240/316 2774/1241/316 +f 2754/1243/315 2772/1666/315 2773/1244/315 +f 2765/1225/314 2778/1235/314 2779/1238/314 +f 2766/1246/315 2776/1667/315 2777/1247/315 +f 2753/1249/313 2773/1668/313 2775/1250/313 +f 2752/1252/314 2775/1669/314 2774/1253/314 +f 2767/1255/313 2779/1670/313 2776/1256/313 +f 2764/1258/312 2777/1671/312 2778/1259/312 +f 2755/1261/312 2774/1672/312 2772/1262/312 +f 2782/1264/313 2786/1673/313 2787/1265/313 +f 2781/1267/312 2785/1674/312 2784/1268/312 +f 2783/1270/314 2787/1675/314 2785/1271/314 +f 2780/1273/315 2784/1676/315 2786/1274/315 +f 2799/1276/314 2803/1677/314 2801/1277/314 +f 2793/1279/311 2795/1678/311 2794/1280/311 +f 2791/1282/314 2795/1678/314 2793/1279/314 +f 2788/1284/315 2792/1679/315 2794/1285/315 +f 2790/1287/313 2794/1680/313 2795/1288/313 +f 2789/1290/312 2793/1681/312 2792/1291/312 +f 2796/1293/315 2800/1682/315 2802/1294/315 +f 2798/1296/313 2802/1683/313 2803/1297/313 +f 2797/1299/312 2801/1684/312 2800/1300/312 +f 2799/1276/316 2797/1278/316 2796/1302/316 +f 2810/1304/311 2811/1312/311 2808/1305/311 +f 2807/1307/314 2811/1312/314 2810/1304/314 +f 2804/1309/315 2809/1685/315 2808/1310/315 +f 2806/1311/313 2808/1310/313 2811/1312/313 +f 2805/1308/312 2810/1304/312 2809/1313/312 +f 2814/1315/316 2813/1686/316 2812/1316/316 +f 2841/1318/316 2842/1687/316 2843/1319/316 +f 2844/1321/311 2845/1688/311 2846/1322/311 +f 2847/1324/312 2846/1322/312 2841/1325/312 +f 2846/1322/315 2845/1689/315 2842/1327/315 +f 2845/1329/313 2844/1690/313 2843/1319/313 +f 2844/1331/314 2847/1691/314 2840/1332/314 +f 2851/1333/314 2848/1692/314 2855/1334/314 +f 2850/1336/313 2851/1693/313 2852/1337/313 +f 2849/1339/315 2850/1336/315 2853/1340/315 +f 2848/1342/312 2849/1694/312 2854/1343/312 +f 2851/1344/311 2850/1336/311 2849/1345/311 +f 2854/1347/316 2853/1695/316 2852/1348/316 +f 2857/1349/316 2858/1358/316 2859/1350/316 +f 2860/1352/311 2861/1696/311 2862/1353/311 +f 2863/1354/312 2862/1697/312 2857/1355/312 +f 2862/1357/315 2861/1698/315 2858/1358/315 +f 2861/1360/313 2860/1699/313 2859/1361/313 +f 2860/1362/314 2863/1354/314 2856/1363/314 +f 2867/1365/314 2864/1700/314 2871/1366/314 +f 2866/1368/313 2867/1365/313 2868/1369/313 +f 2865/1371/315 2866/1701/315 2869/1372/315 +f 2864/1374/312 2865/1702/312 2870/1373/312 +f 2867/1365/311 2866/1703/311 2865/1376/311 +f 2870/1373/316 2869/1704/316 2868/1378/316 +f 2872/1380/311 2873/1705/311 2874/1381/311 +f 2875/1383/312 2874/1706/312 2814/1315/312 +f 2874/1385/315 2873/1707/315 2813/1386/315 +f 2873/1387/313 2872/1380/313 2812/1388/313 +f 2872/1380/314 2875/1708/314 2815/1390/314 +f 2879/1392/314 2876/1400/314 2883/1393/314 +f 2878/1395/313 2879/1709/313 2880/1396/313 +f 2877/1398/315 2878/1710/315 2881/1397/315 +f 2876/1400/312 2877/1711/312 2882/1401/312 +f 2879/1403/311 2878/1712/311 2877/1404/311 +f 2882/1405/316 2881/1397/316 2880/1406/316 +f 2885/1408/316 2886/1713/316 2887/1409/316 +f 2888/1411/311 2889/1419/311 2890/1412/311 +f 2891/1414/312 2890/1714/312 2885/1415/312 +f 2890/1416/315 2889/1419/315 2886/1417/315 +f 2889/1419/313 2888/1715/313 2887/1420/313 +f 2888/1422/314 2891/1716/314 2884/1410/314 +f 2895/1424/314 2892/1717/314 2899/1425/314 +f 2894/1427/313 2895/1718/313 2896/1426/313 +f 2893/1429/315 2894/1719/315 2897/1430/315 +f 2892/1432/312 2893/1429/312 2898/1433/312 +f 2895/1435/311 2894/1720/311 2893/1429/311 +f 2898/1437/316 2897/1721/316 2896/1426/316 +f 2901/1439/316 2903/1442/316 2902/1440/316 +f 2903/1442/315 2907/1722/315 2906/1443/315 +f 2900/1441/314 2904/1445/314 2905/1444/314 +f 2904/1445/311 2906/1723/311 2907/1446/311 +f 2909/1447/316 2911/1450/316 2910/1448/316 +f 2911/1450/315 2915/1454/315 2914/1451/315 +f 2908/1449/314 2912/1724/314 2913/1452/314 +f 2912/1453/311 2914/1451/311 2915/1454/311 +f 2917/1456/316 2919/1725/316 2918/1457/316 +f 2919/1459/315 2923/1464/315 2922/1460/315 +f 2916/1458/314 2920/1463/314 2921/1462/314 +f 2920/1463/311 2922/1460/311 2923/1464/311 +f 2925/1465/316 2927/1468/316 2926/1466/316 +f 2927/1468/315 2931/1474/315 2930/1469/315 +f 2924/1470/314 2928/1473/314 2929/1471/314 +f 2928/1473/311 2930/1469/311 2931/1474/311 +f 2933/1475/313 2935/1478/313 2934/1476/313 +f 2935/1478/315 2939/1726/315 2938/1479/315 +f 2932/1477/314 2936/1481/314 2937/1480/314 +f 2936/1481/312 2938/1727/312 2939/1482/312 +f 2941/1483/313 2943/1486/313 2942/1484/313 +f 2943/1486/315 2947/1490/315 2946/1487/315 +f 2940/1485/314 2944/1728/314 2945/1488/314 +f 2944/1489/312 2946/1487/312 2947/1490/312 +f 2949/1492/313 2951/1729/313 2950/1493/313 +f 2951/1495/315 2955/1500/315 2954/1496/315 +f 2948/1494/314 2952/1499/314 2953/1498/314 +f 2952/1499/312 2954/1496/312 2955/1500/312 +f 2957/1501/313 2959/1504/313 2958/1502/313 +f 2959/1504/315 2963/1510/315 2962/1505/315 +f 2956/1506/314 2960/1509/314 2961/1507/314 +f 2960/1509/312 2962/1505/312 2963/1510/312 +f 2967/1511/316 2966/1515/316 2964/1512/316 +f 2971/1514/313 2970/1730/313 2966/1515/313 +f 2968/1516/312 2969/1518/312 2965/1513/312 +f 2968/1516/311 2970/1731/311 2971/1517/311 +f 2975/1519/316 2974/1732/316 2972/1520/316 +f 2979/1522/313 2978/1733/313 2974/1523/313 +f 2976/1525/312 2977/1526/312 2973/1521/312 +f 2976/1525/311 2978/1733/311 2979/1522/311 +f 2983/1527/316 2982/1531/316 2980/1528/316 +f 2987/1530/313 2986/1734/313 2982/1531/313 +f 2984/1532/312 2985/1735/312 2981/1529/312 +f 2984/1533/311 2986/1734/311 2987/1530/311 +f 2991/1535/316 2990/1539/316 2988/1536/316 +f 2995/1538/313 2994/1736/313 2990/1539/313 +f 2992/1540/312 2993/1543/312 2989/1541/312 +f 2992/1540/311 2994/1736/311 2995/1538/311 +f 3022/1544/313 3026/1737/313 3027/1545/313 +f 3021/1547/312 3025/1738/312 3024/1548/312 +f 3023/1550/314 3027/1739/314 3025/1551/314 +f 3020/1553/315 3024/1740/315 3026/1554/315 +f 3039/1556/314 3043/1741/314 3041/1557/314 +f 3033/1559/311 3035/1742/311 3034/1560/311 +f 3031/1562/314 3035/1742/314 3033/1559/314 +f 3028/1564/315 3032/1743/315 3034/1565/315 +f 3030/1567/313 3034/1744/313 3035/1568/313 +f 3029/1570/312 3033/1745/312 3032/1571/312 +f 3036/1573/315 3040/1746/315 3042/1574/315 +f 3038/1576/313 3042/1747/313 3043/1577/313 +f 3037/1579/312 3041/1748/312 3040/1580/312 +f 3039/1556/316 3037/1558/316 3036/1582/316 +f 3046/1584/313 3050/1749/313 3051/1585/313 +f 3045/1587/312 3049/1750/312 3048/1588/312 +f 3047/1590/314 3051/1751/314 3049/1591/314 +f 3044/1593/315 3048/1752/315 3050/1594/315 +f 3063/1596/314 3067/1753/314 3065/1597/314 +f 3057/1599/311 3059/1754/311 3058/1600/311 +f 3055/1602/314 3059/1754/314 3057/1599/314 +f 3052/1604/315 3056/1755/315 3058/1605/315 +f 3054/1607/313 3058/1756/313 3059/1608/313 +f 3053/1610/312 3057/1757/312 3056/1611/312 +f 3060/1613/315 3064/1758/315 3066/1614/315 +f 3062/1616/313 3066/1759/313 3067/1617/313 +f 3061/1619/312 3065/1760/312 3064/1620/312 +f 3063/1596/316 3061/1598/316 3060/1622/316 +f 3070/1624/313 3074/1761/313 3075/1625/313 +f 3069/1627/312 3073/1762/312 3072/1628/312 +f 3071/1630/314 3075/1763/314 3073/1631/314 +f 3068/1633/315 3072/1764/315 3074/1634/315 +f 3087/1636/314 3091/1765/314 3089/1637/314 +f 3081/1639/311 3083/1766/311 3082/1640/311 +f 3079/1642/314 3083/1766/314 3081/1639/314 +f 3076/1644/315 3080/1767/315 3082/1645/315 +f 3078/1647/313 3082/1768/313 3083/1648/313 +f 3077/1650/312 3081/1769/312 3080/1651/312 +f 3084/1653/315 3088/1770/315 3090/1654/315 +f 3086/1656/313 3090/1771/313 3091/1657/313 +f 3085/1659/312 3089/1772/312 3088/1660/312 +f 3087/1636/316 3085/1638/316 3084/1662/316 s 1 -f 2781/561/319 2782/562/320 2780/563/321 -f 2783/564/322 2784/565/323 2782/562/320 -f 2785/566/324 2786/567/325 2784/565/323 -f 2787/568/326 2788/569/327 2786/570/325 -f 2789/571/328 2790/572/329 2788/569/327 -f 2791/573/330 2792/574/331 2790/572/329 -f 2793/575/332 2794/576/333 2792/574/331 -f 2795/577/334 2796/578/335 2794/576/333 -f 2797/579/336 2798/580/337 2796/578/335 -f 2799/581/338 2800/582/339 2798/580/337 -f 2795/577/334 2968/583/340 2797/579/336 -f 2801/584/341 2802/585/342 2800/582/339 -f 2803/586/343 2780/563/321 2802/585/342 -f 2790/572/329 2978/587/344 2977/588/345 -f 2964/589/346 2962/590/347 2970/591/348 -f 2795/577/334 2966/592/349 2967/593/350 -f 2791/573/330 2966/594/349 2793/575/332 -f 2789/571/328 2965/595/351 2791/573/330 -f 2787/568/326 2964/596/346 2789/571/328 -f 2781/561/319 2971/597/352 2961/598/353 -f 2781/561/319 2960/599/354 2783/564/322 -f 2787/600/326 2962/601/347 2963/602/355 -f 2803/586/343 2970/603/348 2971/604/352 -f 2785/566/324 2960/605/354 2962/606/347 -f 2801/584/341 2969/607/356 2970/608/348 -f 2797/579/336 2969/609/356 2799/581/338 -f 2975/610/357 2979/611/358 2983/612/359 -f 2790/572/329 2976/613/360 2788/569/327 -f 2786/570/325 2976/614/360 2975/615/357 -f 2802/585/342 2972/616/361 2983/617/359 -f 2780/563/321 2973/618/362 2972/619/361 -f 2786/567/325 2974/620/363 2784/565/323 -f 2802/585/342 2982/621/364 2800/582/339 -f 2784/565/323 2973/622/362 2782/562/320 -f 2800/582/339 2981/623/365 2798/580/337 -f 2796/578/335 2981/624/365 2980/625/366 -f 2796/578/335 2979/626/358 2794/576/333 -f 2794/576/333 2978/627/344 2792/574/331 -f 2781/561/319 2783/564/322 2782/562/320 -f 2783/564/322 2785/566/324 2784/565/323 -f 2785/566/324 2787/600/326 2786/567/325 -f 2787/568/326 2789/571/328 2788/569/327 -f 2789/571/328 2791/573/330 2790/572/329 -f 2791/573/330 2793/575/332 2792/574/331 -f 2793/575/332 2795/577/334 2794/576/333 -f 2795/577/334 2797/579/336 2796/578/335 -f 2797/579/336 2799/581/338 2798/580/337 -f 2799/581/338 2801/584/341 2800/582/339 -f 2795/577/334 2967/628/350 2968/583/340 -f 2801/584/341 2803/586/343 2802/585/342 -f 2803/586/343 2781/561/319 2780/563/321 -f 2790/572/329 2792/574/331 2978/587/344 -f 2962/590/347 2960/629/354 2961/630/353 -f 2961/630/353 2971/631/352 2962/590/347 -f 2971/631/352 2970/591/348 2962/590/347 -f 2970/591/348 2969/632/356 2968/633/340 -f 2968/633/340 2967/634/350 2970/591/348 -f 2967/634/350 2966/635/349 2970/591/348 -f 2966/635/349 2965/636/351 2964/589/346 -f 2964/589/346 2963/637/355 2962/590/347 -f 2966/635/349 2964/589/346 2970/591/348 -f 2795/577/334 2793/575/332 2966/592/349 -f 2791/573/330 2965/638/351 2966/594/349 -f 2789/571/328 2964/639/346 2965/595/351 -f 2787/568/326 2963/640/355 2964/596/346 -f 2781/561/319 2803/586/343 2971/597/352 -f 2781/561/319 2961/641/353 2960/599/354 -f 2787/600/326 2785/566/324 2962/601/347 -f 2803/586/343 2801/584/341 2970/603/348 -f 2785/566/324 2783/564/322 2960/605/354 -f 2801/584/341 2799/581/338 2969/607/356 -f 2797/579/336 2968/642/340 2969/609/356 -f 2983/612/359 2972/643/361 2973/644/362 -f 2973/644/362 2974/645/363 2983/612/359 -f 2974/645/363 2975/610/357 2983/612/359 -f 2975/610/357 2976/646/360 2977/647/345 -f 2977/647/345 2978/648/344 2979/611/358 -f 2979/611/358 2980/649/366 2981/650/365 -f 2981/650/365 2982/651/364 2979/611/358 -f 2982/651/364 2983/612/359 2979/611/358 -f 2975/610/357 2977/647/345 2979/611/358 -f 2790/572/329 2977/652/345 2976/613/360 -f 2786/570/325 2788/569/327 2976/614/360 -f 2802/585/342 2780/563/321 2972/616/361 -f 2780/563/321 2782/562/320 2973/618/362 -f 2786/567/325 2975/653/357 2974/620/363 -f 2802/585/342 2983/654/359 2982/621/364 -f 2784/565/323 2974/655/363 2973/622/362 -f 2800/582/339 2982/656/364 2981/623/365 -f 2796/578/335 2798/580/337 2981/624/365 -f 2796/578/335 2980/657/366 2979/626/358 -f 2794/576/333 2979/658/358 2978/627/344 +f 2817/1773/317 2818/1774/318 2816/1775/319 +f 2819/1776/320 2820/1777/321 2818/1774/318 +f 2821/1778/322 2822/1779/323 2820/1777/321 +f 2823/1780/324 2824/1781/325 2822/1782/323 +f 2825/1783/326 2826/1784/327 2824/1781/325 +f 2827/1785/328 2828/1786/329 2826/1784/327 +f 2829/1787/330 2830/1788/331 2828/1786/329 +f 2831/1789/332 2832/1790/333 2830/1788/331 +f 2833/1791/334 2834/1792/335 2832/1790/333 +f 2835/1793/336 2836/1794/337 2834/1792/335 +f 2831/1789/332 3004/1795/338 2833/1791/334 +f 2837/1796/339 2838/1797/340 2836/1794/337 +f 2839/1798/341 2816/1775/319 2838/1797/340 +f 2826/1784/327 3014/1799/342 3013/1800/343 +f 3000/1801/344 2998/1802/345 3006/1803/346 +f 2831/1789/332 3002/1804/347 3003/1805/348 +f 2827/1785/328 3002/1806/347 2829/1787/330 +f 2825/1783/326 3001/1807/349 2827/1785/328 +f 2823/1780/324 3000/1808/344 2825/1783/326 +f 2817/1773/317 3007/1809/350 2997/1810/351 +f 2817/1773/317 2996/1811/352 2819/1776/320 +f 2823/1812/324 2998/1813/345 2999/1814/353 +f 2839/1798/341 3006/1815/346 3007/1816/350 +f 2821/1778/322 2996/1817/352 2998/1818/345 +f 2837/1796/339 3005/1819/354 3006/1820/346 +f 2833/1791/334 3005/1821/354 2835/1793/336 +f 3011/1822/355 3015/1823/356 3019/1824/357 +f 2826/1784/327 3012/1825/358 2824/1781/325 +f 2822/1782/323 3012/1826/358 3011/1827/355 +f 2838/1797/340 3008/1828/359 3019/1829/357 +f 2816/1775/319 3009/1830/360 3008/1831/359 +f 2822/1779/323 3010/1832/361 2820/1777/321 +f 2838/1797/340 3018/1833/362 2836/1794/337 +f 2820/1777/321 3009/1834/360 2818/1774/318 +f 2836/1794/337 3017/1835/363 2834/1792/335 +f 2832/1790/333 3017/1836/363 3016/1837/364 +f 2832/1790/333 3015/1838/356 2830/1788/331 +f 2830/1788/331 3014/1839/342 2828/1786/329 +f 2817/1773/317 2819/1776/320 2818/1774/318 +f 2819/1776/320 2821/1778/322 2820/1777/321 +f 2821/1778/322 2823/1812/324 2822/1779/323 +f 2823/1780/324 2825/1783/326 2824/1781/325 +f 2825/1783/326 2827/1785/328 2826/1784/327 +f 2827/1785/328 2829/1787/330 2828/1786/329 +f 2829/1787/330 2831/1789/332 2830/1788/331 +f 2831/1789/332 2833/1791/334 2832/1790/333 +f 2833/1791/334 2835/1793/336 2834/1792/335 +f 2835/1793/336 2837/1796/339 2836/1794/337 +f 2831/1789/332 3003/1840/348 3004/1795/338 +f 2837/1796/339 2839/1798/341 2838/1797/340 +f 2839/1798/341 2817/1773/317 2816/1775/319 +f 2826/1784/327 2828/1786/329 3014/1799/342 +f 2998/1802/345 2996/1841/352 2997/1842/351 +f 2997/1842/351 3007/1843/350 2998/1802/345 +f 3007/1843/350 3006/1803/346 2998/1802/345 +f 3006/1803/346 3005/1844/354 3004/1845/338 +f 3004/1845/338 3003/1846/348 3006/1803/346 +f 3003/1846/348 3002/1847/347 3006/1803/346 +f 3002/1847/347 3001/1848/349 3000/1801/344 +f 3000/1801/344 2999/1849/353 2998/1802/345 +f 3002/1847/347 3000/1801/344 3006/1803/346 +f 2831/1789/332 2829/1787/330 3002/1804/347 +f 2827/1785/328 3001/1850/349 3002/1806/347 +f 2825/1783/326 3000/1851/344 3001/1807/349 +f 2823/1780/324 2999/1852/353 3000/1808/344 +f 2817/1773/317 2839/1798/341 3007/1809/350 +f 2817/1773/317 2997/1853/351 2996/1811/352 +f 2823/1812/324 2821/1778/322 2998/1813/345 +f 2839/1798/341 2837/1796/339 3006/1815/346 +f 2821/1778/322 2819/1776/320 2996/1817/352 +f 2837/1796/339 2835/1793/336 3005/1819/354 +f 2833/1791/334 3004/1854/338 3005/1821/354 +f 3019/1824/357 3008/1855/359 3009/1856/360 +f 3009/1856/360 3010/1857/361 3019/1824/357 +f 3010/1857/361 3011/1822/355 3019/1824/357 +f 3011/1822/355 3012/1858/358 3013/1859/343 +f 3013/1859/343 3014/1860/342 3015/1823/356 +f 3015/1823/356 3016/1861/364 3017/1862/363 +f 3017/1862/363 3018/1863/362 3015/1823/356 +f 3018/1863/362 3019/1824/357 3015/1823/356 +f 3011/1822/355 3013/1859/343 3015/1823/356 +f 2826/1784/327 3013/1864/343 3012/1825/358 +f 2822/1782/323 2824/1781/325 3012/1826/358 +f 2838/1797/340 2816/1775/319 3008/1828/359 +f 2816/1775/319 2818/1774/318 3009/1830/360 +f 2822/1779/323 3011/1865/355 3010/1832/361 +f 2838/1797/340 3019/1866/357 3018/1833/362 +f 2820/1777/321 3010/1867/361 3009/1834/360 +f 2836/1794/337 3018/1868/362 3017/1835/363 +f 2832/1790/333 2834/1792/335 3017/1836/363 +f 2832/1790/333 3016/1869/364 3015/1838/356 +f 2830/1788/331 3015/1870/356 3014/1839/342 o V2_Rope v 0.000000 9.000000 1.750000 v 0.000000 8.875000 1.750000 @@ -7936,6 +9174,14 @@ v 0.312500 5.437500 0.187500 v 0.356694 5.419194 0.187500 v 0.375000 5.375000 0.187500 v 0.356694 5.330806 0.187500 +v 0.000000 9.000000 1.750000 +v 0.000000 8.875000 1.750000 +v 0.000000 9.000000 0.000000 +v 0.000000 8.875000 0.000000 +v 0.000000 8.875000 1.375000 +v 0.000000 8.750000 1.375000 +v 0.000000 8.875000 0.375000 +v 0.000000 8.750000 0.375000 vt 0.408163 0.631579 vt 0.438776 0.644737 vt 0.408163 0.644737 @@ -7943,6 +9189,14 @@ vt 0.520408 0.644737 vt 0.551020 0.631579 vt 0.551020 0.644737 vt 0.438776 0.631579 +vt 0.408163 0.631579 +vt 0.438776 0.644737 +vt 0.438776 0.631579 +vt 0.551020 0.631579 +vt 0.520408 0.644737 +vt 0.551020 0.644737 +vt 0.520408 0.631579 +vt 0.408163 0.644737 vt 0.520408 0.631579 vt 0.816327 0.342105 vt 0.821429 0.335526 @@ -8035,6 +9289,7 @@ vt 0.836735 0.684211 vt 0.795918 0.828947 vt 0.836735 0.697368 vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 vn -0.0473 -0.0196 0.9987 vn 0.4617 0.4617 0.7573 vn 0.6737 0.1363 0.7263 @@ -8072,7 +9327,6 @@ vn 0.7263 -0.1363 -0.6737 vn 0.6794 0.1447 0.7194 vn -0.6794 0.1447 0.7194 vn -0.7263 -0.1363 -0.6737 -vn -1.0000 0.0000 0.0000 vn -0.7071 0.7071 0.0000 vn 0.7071 -0.7071 0.0000 vn 0.6630 0.5293 0.5293 @@ -8089,133 +9343,139 @@ vn -0.6794 0.7194 0.1447 vn 0.6794 0.7194 0.1447 vn 0.7263 -0.6737 -0.1363 s off -f 3057/659/367 3060/660/367 3056/661/367 -f 3062/662/367 3059/663/367 3058/664/367 -f 3061/665/367 3062/662/367 3060/660/367 -f 3057/659/367 3061/665/367 3060/660/367 -f 3062/662/367 3063/666/367 3059/663/367 -f 3061/665/367 3063/666/367 3062/662/367 +f 3093/1871/365 3096/1872/365 3092/1873/365 +f 3098/1874/365 3095/1875/365 3094/1876/365 +f 3097/1877/365 3098/1874/365 3096/1872/365 +f 3177/1878/366 3180/1879/366 3181/1880/366 +f 3179/1881/366 3182/1882/366 3178/1883/366 +f 3182/1882/366 3181/1880/366 3180/1879/366 +f 3093/1871/365 3097/1877/365 3096/1872/365 +f 3098/1874/365 3099/1884/365 3095/1875/365 +f 3097/1877/365 3099/1884/365 3098/1874/365 +f 3177/1878/366 3176/1885/366 3180/1879/366 +f 3179/1881/366 3183/1886/366 3182/1882/366 +f 3182/1882/366 3183/1886/366 3181/1880/366 s 1 -f 3068/667/368 3077/668/369 3069/669/370 -f 3066/670/371 3075/671/372 3067/672/373 -f 3064/673/374 3073/674/375 3065/675/376 -f 3064/676/374 3078/677/377 3072/678/378 -f 3068/667/368 3075/671/372 3076/679/379 -f 3065/675/376 3074/680/380 3066/670/371 -f 3078/677/377 3079/681/381 3072/678/378 -f 3075/671/372 3083/682/382 3076/679/379 -f 3074/680/380 3080/683/383 3081/684/384 -f 3077/668/369 3083/682/382 3084/685/385 -f 3074/680/380 3082/686/386 3075/671/372 -f 3073/674/375 3079/687/381 3080/683/383 -f 3069/669/370 3077/668/369 3070/688/387 -f 3077/668/369 3084/685/385 3070/688/387 -f 3070/688/387 3078/677/377 3071/689/388 -f 3078/677/377 3070/688/387 3085/690/389 -f 3085/690/389 3086/691/390 3093/692/391 -f 3085/690/389 3087/693/392 3079/681/381 -f 3084/685/385 3086/691/390 3070/694/387 -f 3082/686/386 3091/695/393 3083/682/382 -f 3081/684/384 3088/696/394 3089/697/395 -f 3083/682/382 3092/698/396 3084/685/385 -f 3081/684/384 3090/699/397 3082/686/386 -f 3079/687/381 3088/696/394 3080/683/383 -f 3071/689/388 3100/700/398 3070/701/387 -f 3069/669/370 3098/702/399 3068/667/368 -f 3067/672/373 3096/703/400 3066/670/371 -f 3065/675/376 3094/704/394 3064/673/374 -f 3064/676/374 3101/705/401 3071/689/388 -f 3070/701/387 3099/706/402 3069/669/370 -f 3068/667/368 3097/707/403 3067/672/373 -f 3066/670/371 3095/708/404 3065/675/376 -f 3112/709/405 3105/710/380 3104/711/405 -f 3110/712/390 3103/713/406 3102/714/390 -f 3117/715/387 3102/714/390 3109/716/387 -f 3115/717/407 3108/718/367 3107/719/407 -f 3113/720/380 3106/721/395 3105/710/380 -f 3111/722/406 3104/711/405 3103/713/406 -f 3116/723/367 3109/716/387 3108/718/367 -f 3114/724/395 3107/719/407 3106/725/395 -f 3100/700/398 3122/726/408 3099/706/402 -f 3098/702/399 3120/727/409 3097/707/403 -f 3096/703/400 3118/728/410 3095/708/404 -f 3100/700/398 3124/729/411 3123/730/412 -f 3099/706/402 3121/731/396 3098/702/399 -f 3096/703/400 3120/727/409 3119/732/413 -f 3118/728/410 3126/733/414 3125/734/415 -f 3124/729/411 3130/735/416 3123/730/412 -f 3122/726/408 3128/736/417 3121/731/396 -f 3119/732/413 3127/737/418 3126/733/414 -f 3122/726/408 3130/735/416 3129/738/419 -f 3120/727/409 3128/736/417 3127/737/418 -f 3095/708/404 3118/728/410 3094/739/394 -f 3118/728/410 3125/734/415 3094/739/394 -f 3101/705/401 3094/740/394 3124/729/411 -f 3124/729/411 3094/740/394 3131/741/420 -f 3131/741/420 3132/742/395 3139/743/407 -f 3131/741/420 3138/744/367 3130/735/416 -f 3125/734/415 3132/745/395 3094/746/394 -f 3129/738/419 3136/747/390 3128/736/417 -f 3127/737/418 3134/748/405 3126/733/414 -f 3130/735/416 3137/749/387 3129/738/419 -f 3128/736/417 3135/750/406 3127/737/418 -f 3125/734/415 3134/748/405 3133/751/380 -f 3068/667/368 3076/679/379 3077/668/369 -f 3066/670/371 3074/680/380 3075/671/372 -f 3064/673/374 3072/752/378 3073/674/375 -f 3064/676/374 3071/689/388 3078/677/377 -f 3068/667/368 3067/672/373 3075/671/372 -f 3065/675/376 3073/674/375 3074/680/380 -f 3078/677/377 3085/690/389 3079/681/381 -f 3075/671/372 3082/686/386 3083/682/382 -f 3074/680/380 3073/674/375 3080/683/383 -f 3077/668/369 3076/679/379 3083/682/382 -f 3074/680/380 3081/684/384 3082/686/386 -f 3073/674/375 3072/752/378 3079/687/381 -f 3085/690/389 3070/694/387 3086/691/390 -f 3085/690/389 3093/692/391 3087/693/392 -f 3084/685/385 3092/698/396 3086/691/390 -f 3082/686/386 3090/699/397 3091/695/393 -f 3081/684/384 3080/683/383 3088/696/394 -f 3083/682/382 3091/695/393 3092/698/396 -f 3081/684/384 3089/697/395 3090/699/397 -f 3079/687/381 3087/753/392 3088/696/394 -f 3071/689/388 3101/705/401 3100/700/398 -f 3069/669/370 3099/706/402 3098/702/399 -f 3067/672/373 3097/707/403 3096/703/400 -f 3065/675/376 3095/708/404 3094/704/394 -f 3064/676/374 3094/754/394 3101/705/401 -f 3070/701/387 3100/700/398 3099/706/402 -f 3068/667/368 3098/702/399 3097/707/403 -f 3066/670/371 3096/703/400 3095/708/404 -f 3112/709/405 3113/720/380 3105/710/380 -f 3110/712/390 3111/722/406 3103/713/406 -f 3117/715/387 3110/712/390 3102/714/390 -f 3115/717/407 3116/723/367 3108/718/367 -f 3113/720/380 3114/755/395 3106/721/395 -f 3111/722/406 3112/709/405 3104/711/405 -f 3116/723/367 3117/715/387 3109/716/387 -f 3114/724/395 3115/717/407 3107/719/407 -f 3100/700/398 3123/730/412 3122/726/408 -f 3098/702/399 3121/731/396 3120/727/409 -f 3096/703/400 3119/732/413 3118/728/410 -f 3100/700/398 3101/705/401 3124/729/411 -f 3099/706/402 3122/726/408 3121/731/396 -f 3096/703/400 3097/707/403 3120/727/409 -f 3118/728/410 3119/732/413 3126/733/414 -f 3124/729/411 3131/741/420 3130/735/416 -f 3122/726/408 3129/738/419 3128/736/417 -f 3119/732/413 3120/727/409 3127/737/418 -f 3122/726/408 3123/730/412 3130/735/416 -f 3120/727/409 3121/731/396 3128/736/417 -f 3131/741/420 3094/756/394 3132/742/395 -f 3131/741/420 3139/743/407 3138/744/367 -f 3125/734/415 3133/751/380 3132/745/395 -f 3129/738/419 3137/749/387 3136/747/390 -f 3127/737/418 3135/750/406 3134/748/405 -f 3130/735/416 3138/744/367 3137/749/387 -f 3128/736/417 3136/747/390 3135/750/406 -f 3125/734/415 3126/733/414 3134/748/405 +f 3104/1887/367 3113/1888/368 3105/1889/369 +f 3102/1890/370 3111/1891/371 3103/1892/372 +f 3100/1893/373 3109/1894/374 3101/1895/375 +f 3100/1896/373 3114/1897/376 3108/1898/377 +f 3104/1887/367 3111/1891/371 3112/1899/378 +f 3101/1895/375 3110/1900/379 3102/1890/370 +f 3114/1897/376 3115/1901/380 3108/1898/377 +f 3111/1891/371 3119/1902/381 3112/1899/378 +f 3110/1900/379 3116/1903/382 3117/1904/383 +f 3113/1888/368 3119/1902/381 3120/1905/384 +f 3110/1900/379 3118/1906/385 3111/1891/371 +f 3109/1894/374 3115/1907/380 3116/1903/382 +f 3105/1889/369 3113/1888/368 3106/1908/386 +f 3113/1888/368 3120/1905/384 3106/1908/386 +f 3106/1908/386 3114/1897/376 3107/1909/387 +f 3114/1897/376 3106/1908/386 3121/1910/388 +f 3121/1910/388 3122/1911/389 3129/1912/390 +f 3121/1910/388 3123/1913/391 3115/1901/380 +f 3120/1905/384 3122/1911/389 3106/1914/386 +f 3118/1906/385 3127/1915/392 3119/1902/381 +f 3117/1904/383 3124/1916/393 3125/1917/394 +f 3119/1902/381 3128/1918/395 3120/1905/384 +f 3117/1904/383 3126/1919/396 3118/1906/385 +f 3115/1907/380 3124/1916/393 3116/1903/382 +f 3107/1909/387 3136/1920/397 3106/1921/386 +f 3105/1889/369 3134/1922/398 3104/1887/367 +f 3103/1892/372 3132/1923/399 3102/1890/370 +f 3101/1895/375 3130/1924/393 3100/1893/373 +f 3100/1896/373 3137/1925/400 3107/1909/387 +f 3106/1921/386 3135/1926/401 3105/1889/369 +f 3104/1887/367 3133/1927/402 3103/1892/372 +f 3102/1890/370 3131/1928/403 3101/1895/375 +f 3148/1929/366 3141/1930/379 3140/1931/366 +f 3146/1932/389 3139/1933/404 3138/1934/389 +f 3153/1935/386 3138/1934/389 3145/1936/386 +f 3151/1937/405 3144/1938/365 3143/1939/405 +f 3149/1940/379 3142/1941/394 3141/1930/379 +f 3147/1942/404 3140/1931/366 3139/1933/404 +f 3152/1943/365 3145/1936/386 3144/1938/365 +f 3150/1944/394 3143/1939/405 3142/1945/394 +f 3136/1920/397 3158/1946/406 3135/1926/401 +f 3134/1922/398 3156/1947/407 3133/1927/402 +f 3132/1923/399 3154/1948/408 3131/1928/403 +f 3136/1920/397 3160/1949/409 3159/1950/410 +f 3135/1926/401 3157/1951/395 3134/1922/398 +f 3132/1923/399 3156/1947/407 3155/1952/411 +f 3154/1948/408 3162/1953/412 3161/1954/413 +f 3160/1949/409 3166/1955/414 3159/1950/410 +f 3158/1946/406 3164/1956/415 3157/1951/395 +f 3155/1952/411 3163/1957/416 3162/1953/412 +f 3158/1946/406 3166/1955/414 3165/1958/417 +f 3156/1947/407 3164/1956/415 3163/1957/416 +f 3131/1928/403 3154/1948/408 3130/1959/393 +f 3154/1948/408 3161/1954/413 3130/1959/393 +f 3137/1925/400 3130/1960/393 3160/1949/409 +f 3160/1949/409 3130/1960/393 3167/1961/418 +f 3167/1961/418 3168/1962/394 3175/1963/405 +f 3167/1961/418 3174/1964/365 3166/1955/414 +f 3161/1954/413 3168/1965/394 3130/1966/393 +f 3165/1958/417 3172/1967/389 3164/1956/415 +f 3163/1957/416 3170/1968/366 3162/1953/412 +f 3166/1955/414 3173/1969/386 3165/1958/417 +f 3164/1956/415 3171/1970/404 3163/1957/416 +f 3161/1954/413 3170/1968/366 3169/1971/379 +f 3104/1887/367 3112/1899/378 3113/1888/368 +f 3102/1890/370 3110/1900/379 3111/1891/371 +f 3100/1893/373 3108/1972/377 3109/1894/374 +f 3100/1896/373 3107/1909/387 3114/1897/376 +f 3104/1887/367 3103/1892/372 3111/1891/371 +f 3101/1895/375 3109/1894/374 3110/1900/379 +f 3114/1897/376 3121/1910/388 3115/1901/380 +f 3111/1891/371 3118/1906/385 3119/1902/381 +f 3110/1900/379 3109/1894/374 3116/1903/382 +f 3113/1888/368 3112/1899/378 3119/1902/381 +f 3110/1900/379 3117/1904/383 3118/1906/385 +f 3109/1894/374 3108/1972/377 3115/1907/380 +f 3121/1910/388 3106/1914/386 3122/1911/389 +f 3121/1910/388 3129/1912/390 3123/1913/391 +f 3120/1905/384 3128/1918/395 3122/1911/389 +f 3118/1906/385 3126/1919/396 3127/1915/392 +f 3117/1904/383 3116/1903/382 3124/1916/393 +f 3119/1902/381 3127/1915/392 3128/1918/395 +f 3117/1904/383 3125/1917/394 3126/1919/396 +f 3115/1907/380 3123/1973/391 3124/1916/393 +f 3107/1909/387 3137/1925/400 3136/1920/397 +f 3105/1889/369 3135/1926/401 3134/1922/398 +f 3103/1892/372 3133/1927/402 3132/1923/399 +f 3101/1895/375 3131/1928/403 3130/1924/393 +f 3100/1896/373 3130/1974/393 3137/1925/400 +f 3106/1921/386 3136/1920/397 3135/1926/401 +f 3104/1887/367 3134/1922/398 3133/1927/402 +f 3102/1890/370 3132/1923/399 3131/1928/403 +f 3148/1929/366 3149/1940/379 3141/1930/379 +f 3146/1932/389 3147/1942/404 3139/1933/404 +f 3153/1935/386 3146/1932/389 3138/1934/389 +f 3151/1937/405 3152/1943/365 3144/1938/365 +f 3149/1940/379 3150/1975/394 3142/1941/394 +f 3147/1942/404 3148/1929/366 3140/1931/366 +f 3152/1943/365 3153/1935/386 3145/1936/386 +f 3150/1944/394 3151/1937/405 3143/1939/405 +f 3136/1920/397 3159/1950/410 3158/1946/406 +f 3134/1922/398 3157/1951/395 3156/1947/407 +f 3132/1923/399 3155/1952/411 3154/1948/408 +f 3136/1920/397 3137/1925/400 3160/1949/409 +f 3135/1926/401 3158/1946/406 3157/1951/395 +f 3132/1923/399 3133/1927/402 3156/1947/407 +f 3154/1948/408 3155/1952/411 3162/1953/412 +f 3160/1949/409 3167/1961/418 3166/1955/414 +f 3158/1946/406 3165/1958/417 3164/1956/415 +f 3155/1952/411 3156/1947/407 3163/1957/416 +f 3158/1946/406 3159/1950/410 3166/1955/414 +f 3156/1947/407 3157/1951/395 3164/1956/415 +f 3167/1961/418 3130/1976/393 3168/1962/394 +f 3167/1961/418 3175/1963/405 3174/1964/365 +f 3161/1954/413 3169/1971/379 3168/1965/394 +f 3165/1958/417 3173/1969/386 3172/1967/389 +f 3163/1957/416 3171/1970/404 3170/1968/366 +f 3166/1955/414 3174/1964/365 3173/1969/386 +f 3164/1956/415 3172/1967/389 3171/1970/404 +f 3161/1954/413 3162/1953/412 3170/1968/366 o V2_Pivot v 0.500000 1.250000 -1.625000 v 0.750000 1.250000 -1.625000 @@ -8299,42 +9559,42 @@ vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 3146/757/421 3144/758/421 3145/759/421 -f 3143/760/422 3146/761/422 3141/762/422 -f 3140/763/423 3144/758/423 3142/764/423 -f 3142/764/424 3147/765/424 3143/766/424 -f 3141/762/425 3145/767/425 3140/763/425 -f 3154/768/421 3152/769/421 3153/770/421 -f 3151/771/422 3154/772/422 3149/773/422 -f 3148/774/423 3152/769/423 3150/775/423 -f 3150/775/424 3155/776/424 3151/777/424 -f 3149/773/425 3153/778/425 3148/774/425 -f 3159/779/422 3162/780/422 3157/781/422 -f 3156/782/423 3160/783/423 3158/784/423 -f 3158/784/424 3163/785/424 3159/786/424 -f 3157/781/425 3161/787/425 3156/782/425 -f 3167/788/422 3170/789/422 3165/790/422 -f 3164/791/423 3168/792/423 3166/793/423 -f 3166/793/424 3171/794/424 3167/795/424 -f 3165/790/425 3169/796/425 3164/791/425 -f 3146/757/421 3147/765/421 3144/758/421 -f 3143/760/422 3147/797/422 3146/761/422 -f 3140/763/423 3145/767/423 3144/758/423 -f 3142/764/424 3144/758/424 3147/765/424 -f 3141/762/425 3146/761/425 3145/767/425 -f 3154/768/421 3155/776/421 3152/769/421 -f 3151/771/422 3155/798/422 3154/772/422 -f 3148/774/423 3153/778/423 3152/769/423 -f 3150/775/424 3152/769/424 3155/776/424 -f 3149/773/425 3154/772/425 3153/778/425 -f 3159/779/422 3163/799/422 3162/780/422 -f 3156/782/423 3161/787/423 3160/783/423 -f 3158/784/424 3160/783/424 3163/785/424 -f 3157/781/425 3162/780/425 3161/787/425 -f 3167/788/422 3171/800/422 3170/789/422 -f 3164/791/423 3169/796/423 3168/792/423 -f 3166/793/424 3168/792/424 3171/794/424 -f 3165/790/425 3170/789/425 3169/796/425 +f 3190/1977/419 3188/1978/419 3189/1979/419 +f 3187/1980/420 3190/1981/420 3185/1982/420 +f 3184/1983/421 3188/1978/421 3186/1984/421 +f 3186/1984/422 3191/1985/422 3187/1986/422 +f 3185/1982/423 3189/1987/423 3184/1983/423 +f 3198/1988/419 3196/1989/419 3197/1990/419 +f 3195/1991/420 3198/1992/420 3193/1993/420 +f 3192/1994/421 3196/1989/421 3194/1995/421 +f 3194/1995/422 3199/1996/422 3195/1997/422 +f 3193/1993/423 3197/1998/423 3192/1994/423 +f 3203/1999/420 3206/2000/420 3201/2001/420 +f 3200/2002/421 3204/2003/421 3202/2004/421 +f 3202/2004/422 3207/2005/422 3203/2006/422 +f 3201/2001/423 3205/2007/423 3200/2002/423 +f 3211/2008/420 3214/2009/420 3209/2010/420 +f 3208/2011/421 3212/2012/421 3210/2013/421 +f 3210/2013/422 3215/2014/422 3211/2015/422 +f 3209/2010/423 3213/2016/423 3208/2011/423 +f 3190/1977/419 3191/1985/419 3188/1978/419 +f 3187/1980/420 3191/2017/420 3190/1981/420 +f 3184/1983/421 3189/1987/421 3188/1978/421 +f 3186/1984/422 3188/1978/422 3191/1985/422 +f 3185/1982/423 3190/1981/423 3189/1987/423 +f 3198/1988/419 3199/1996/419 3196/1989/419 +f 3195/1991/420 3199/2018/420 3198/1992/420 +f 3192/1994/421 3197/1998/421 3196/1989/421 +f 3194/1995/422 3196/1989/422 3199/1996/422 +f 3193/1993/423 3198/1992/423 3197/1998/423 +f 3203/1999/420 3207/2019/420 3206/2000/420 +f 3200/2002/421 3205/2007/421 3204/2003/421 +f 3202/2004/422 3204/2003/422 3207/2005/422 +f 3201/2001/423 3206/2000/423 3205/2007/423 +f 3211/2008/420 3215/2020/420 3214/2009/420 +f 3208/2011/421 3213/2016/421 3212/2012/421 +f 3210/2013/422 3212/2012/422 3215/2014/422 +f 3209/2010/423 3214/2009/423 3213/2016/423 o V2_Erector v 0.500000 2.750000 -1.875000 v 0.500000 2.750000 -1.625000 @@ -8472,6 +9732,30 @@ v 0.250000 7.000000 -0.375000 v -0.250000 7.000000 -0.375000 v 0.250000 7.000000 -0.625000 v -0.250000 7.000000 -0.625000 +v 0.500000 7.375000 -1.812500 +v 0.500000 7.125000 -1.812500 +v -0.500000 7.375000 -1.687500 +v -0.500000 7.125000 -1.687500 +v -0.500000 6.375000 -1.812500 +v -0.500000 6.125000 -1.812500 +v 0.500000 6.375000 -1.687500 +v 0.500000 6.125000 -1.687500 +v 0.500000 5.875000 -1.812500 +v 0.500000 5.625000 -1.812500 +v -0.500000 5.875000 -1.687500 +v -0.500000 5.625000 -1.687500 +v -0.500000 4.875000 -1.812500 +v -0.500000 4.625000 -1.812500 +v 0.500000 4.875000 -1.687500 +v 0.500000 4.625000 -1.687500 +v 0.500000 4.375000 -1.812500 +v 0.500000 4.125000 -1.812500 +v -0.500000 4.375000 -1.687500 +v -0.500000 4.125000 -1.687500 +v -0.500000 3.375000 -1.812500 +v -0.500000 3.125000 -1.812500 +v 0.500000 3.375000 -1.687500 +v 0.500000 3.125000 -1.687500 vt 0.918367 0.421053 vt 0.938776 0.394737 vt 0.938776 0.421053 @@ -8632,6 +9916,24 @@ vt 0.551020 0.631579 vt 0.591837 0.657895 vt 0.632653 0.657895 vt 0.653061 0.631579 +vt 1.000000 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.605263 +vt 1.000000 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.605263 +vt 1.000000 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.605263 vt 0.918367 0.789474 vt 0.918367 0.789474 vt 1.000000 0.394737 @@ -8664,6 +9966,12 @@ vt 0.653061 0.789474 vt 0.551020 0.684211 vt 0.571429 0.631579 vt 0.673469 0.631579 +vt 1.000000 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.578947 +vt 0.918367 0.578947 vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 vn 1.0000 0.0000 0.0000 @@ -8675,162 +9983,174 @@ vn -0.7071 0.0000 0.7071 vn 0.7071 0.0000 0.7071 vn 0.7071 0.0000 -0.7071 s off -f 3202/801/426 3200/802/426 3201/803/426 -f 3198/804/426 3196/805/426 3197/806/426 -f 3192/807/427 3194/808/427 3193/809/427 -f 3188/810/427 3190/811/427 3189/812/427 -f 3172/813/427 3174/814/427 3173/815/427 -f 3176/816/427 3178/817/427 3177/818/427 -f 3182/819/426 3180/820/426 3181/821/426 -f 3186/822/426 3184/823/426 3185/824/426 -f 3179/825/428 3186/826/428 3178/827/428 -f 3177/828/429 3184/823/429 3176/816/429 -f 3175/829/428 3182/830/428 3174/831/428 -f 3173/832/429 3180/820/429 3172/813/429 -f 3176/816/430 3187/833/430 3179/834/430 -f 3178/827/431 3185/835/431 3177/828/431 -f 3172/813/430 3183/836/430 3175/837/430 -f 3174/831/431 3181/838/431 3173/832/431 -f 3195/839/428 3202/840/428 3194/841/428 -f 3193/842/429 3200/802/429 3192/807/429 -f 3191/843/428 3198/844/428 3190/845/428 -f 3189/846/429 3196/805/429 3188/810/429 -f 3192/807/430 3203/847/430 3195/848/430 -f 3194/841/431 3201/849/431 3193/842/431 -f 3188/810/430 3199/850/430 3191/851/430 -f 3190/845/431 3197/852/431 3189/846/431 -f 3208/853/426 3204/854/426 3209/855/426 -f 3210/856/426 3207/857/426 3211/858/426 -f 3204/854/426 3207/857/426 3205/859/426 -f 3219/860/426 3216/861/426 3218/862/426 -f 3213/863/426 3216/861/426 3212/864/426 -f 3215/865/426 3219/860/426 3214/866/426 -f 3217/867/431 3224/868/431 3216/869/431 -f 3219/860/432 3222/870/432 3214/871/432 -f 3216/869/433 3220/872/433 3212/864/433 -f 3218/862/430 3227/873/430 3219/860/430 -f 3215/865/434 3225/874/434 3217/867/434 -f 3213/875/435 3226/876/435 3218/862/435 -f 3221/877/427 3224/878/427 3226/876/427 -f 3227/873/427 3224/878/427 3225/879/427 -f 3223/880/427 3227/873/427 3225/879/427 -f 3235/881/428 3229/882/428 3231/883/428 -f 3234/884/427 3231/885/427 3230/886/427 -f 3232/887/429 3230/886/429 3228/888/429 -f 3229/882/426 3232/887/426 3228/888/426 -f 3243/889/428 3237/890/428 3239/891/428 -f 3242/892/427 3239/893/427 3238/894/427 -f 3240/895/429 3238/894/429 3236/896/429 -f 3237/890/426 3240/895/426 3236/896/426 -f 3251/897/428 3245/898/428 3247/899/428 -f 3250/900/427 3247/901/427 3246/902/427 -f 3248/903/429 3246/902/429 3244/904/429 -f 3245/898/426 3248/903/426 3244/904/426 -f 3259/905/428 3253/906/428 3255/907/428 -f 3258/908/427 3255/909/427 3254/910/427 -f 3256/911/429 3254/910/429 3252/912/429 -f 3253/906/426 3256/911/426 3252/912/426 -f 3267/913/428 3261/914/428 3263/915/428 -f 3266/916/427 3263/917/427 3262/918/427 -f 3264/919/429 3262/918/429 3260/920/429 -f 3261/914/426 3264/919/426 3260/920/426 -f 3275/921/428 3269/922/428 3271/923/428 -f 3274/924/427 3271/925/427 3270/926/427 -f 3272/927/429 3270/926/429 3268/928/429 -f 3269/922/426 3272/927/426 3268/928/426 -f 3277/929/430 3280/930/430 3276/931/430 -f 3279/932/430 3282/933/430 3283/934/430 -f 3285/935/430 3288/936/430 3284/937/430 -f 3287/938/430 3290/939/430 3291/940/430 -f 3293/941/430 3296/942/430 3292/943/430 -f 3295/944/430 3298/945/430 3299/946/430 -f 3206/947/431 3304/948/431 3207/949/431 -f 3204/854/432 3302/950/432 3209/951/432 -f 3207/949/433 3300/952/433 3211/858/433 -f 3205/859/430 3307/953/430 3204/854/430 -f 3208/853/434 3305/954/434 3206/947/434 -f 3210/955/435 3306/956/435 3205/859/435 -f 3301/957/427 3304/958/427 3306/956/427 -f 3307/953/427 3304/958/427 3305/959/427 -f 3303/960/427 3307/953/427 3305/959/427 -f 3202/801/426 3203/847/426 3200/802/426 -f 3198/804/426 3199/850/426 3196/805/426 -f 3192/807/427 3195/848/427 3194/808/427 -f 3188/810/427 3191/851/427 3190/811/427 -f 3172/813/427 3175/837/427 3174/814/427 -f 3176/816/427 3179/834/427 3178/817/427 -f 3182/819/426 3183/836/426 3180/820/426 -f 3186/822/426 3187/833/426 3184/823/426 -f 3179/825/428 3187/961/428 3186/826/428 -f 3177/828/429 3185/835/429 3184/823/429 -f 3175/829/428 3183/962/428 3182/830/428 -f 3173/832/429 3181/838/429 3180/820/429 -f 3176/816/430 3184/823/430 3187/833/430 -f 3178/827/431 3186/826/431 3185/835/431 -f 3172/813/430 3180/820/430 3183/836/430 -f 3174/831/431 3182/830/431 3181/838/431 -f 3195/839/428 3203/963/428 3202/840/428 -f 3193/842/429 3201/849/429 3200/802/429 -f 3191/843/428 3199/964/428 3198/844/428 -f 3189/846/429 3197/852/429 3196/805/429 -f 3192/807/430 3200/802/430 3203/847/430 -f 3194/841/431 3202/840/431 3201/849/431 -f 3188/810/430 3196/805/430 3199/850/430 -f 3190/845/431 3198/844/431 3197/852/431 -f 3208/853/426 3206/965/426 3204/854/426 -f 3210/856/426 3205/859/426 3207/857/426 -f 3204/854/426 3206/965/426 3207/857/426 -f 3219/860/426 3217/966/426 3216/861/426 -f 3213/863/426 3218/862/426 3216/861/426 -f 3215/865/426 3217/966/426 3219/860/426 -f 3217/867/431 3225/874/431 3224/868/431 -f 3219/860/432 3227/873/432 3222/870/432 -f 3216/869/433 3224/868/433 3220/872/433 -f 3218/862/430 3226/876/430 3227/873/430 -f 3215/865/434 3223/967/434 3225/874/434 -f 3213/875/435 3221/968/435 3226/876/435 -f 3221/877/427 3220/969/427 3224/878/427 -f 3227/873/427 3226/876/427 3224/878/427 -f 3223/880/427 3222/970/427 3227/873/427 -f 3235/881/428 3233/971/428 3229/882/428 -f 3234/884/427 3235/972/427 3231/885/427 -f 3232/887/429 3234/884/429 3230/886/429 -f 3229/882/426 3233/971/426 3232/887/426 -f 3243/889/428 3241/973/428 3237/890/428 -f 3242/892/427 3243/974/427 3239/893/427 -f 3240/895/429 3242/892/429 3238/894/429 -f 3237/890/426 3241/973/426 3240/895/426 -f 3251/897/428 3249/975/428 3245/898/428 -f 3250/900/427 3251/976/427 3247/901/427 -f 3248/903/429 3250/900/429 3246/902/429 -f 3245/898/426 3249/975/426 3248/903/426 -f 3259/905/428 3257/977/428 3253/906/428 -f 3258/908/427 3259/978/427 3255/909/427 -f 3256/911/429 3258/908/429 3254/910/429 -f 3253/906/426 3257/977/426 3256/911/426 -f 3267/913/428 3265/979/428 3261/914/428 -f 3266/916/427 3267/980/427 3263/917/427 -f 3264/919/429 3266/916/429 3262/918/429 -f 3261/914/426 3265/979/426 3264/919/426 -f 3275/921/428 3273/981/428 3269/922/428 -f 3274/924/427 3275/982/427 3271/925/427 -f 3272/927/429 3274/924/429 3270/926/429 -f 3269/922/426 3273/981/426 3272/927/426 -f 3277/929/430 3281/983/430 3280/930/430 -f 3279/932/430 3278/984/430 3282/933/430 -f 3285/935/430 3289/985/430 3288/936/430 -f 3287/938/430 3286/986/430 3290/939/430 -f 3293/941/430 3297/987/430 3296/942/430 -f 3295/944/430 3294/988/430 3298/945/430 -f 3206/947/431 3305/954/431 3304/948/431 -f 3204/854/432 3307/953/432 3302/950/432 -f 3207/949/433 3304/948/433 3300/952/433 -f 3205/859/430 3306/956/430 3307/953/430 -f 3208/853/434 3303/989/434 3305/954/434 -f 3210/955/435 3301/990/435 3306/956/435 -f 3301/957/427 3300/991/427 3304/958/427 -f 3307/953/427 3306/956/427 3304/958/427 -f 3303/960/427 3302/992/427 3307/953/427 +f 3246/2021/424 3244/2022/424 3245/2023/424 +f 3242/2024/424 3240/2025/424 3241/2026/424 +f 3236/2027/425 3238/2028/425 3237/2029/425 +f 3232/2030/425 3234/2031/425 3233/2032/425 +f 3216/2033/425 3218/2034/425 3217/2035/425 +f 3220/2036/425 3222/2037/425 3221/2038/425 +f 3226/2039/424 3224/2040/424 3225/2041/424 +f 3230/2042/424 3228/2043/424 3229/2044/424 +f 3223/2045/426 3230/2046/426 3222/2047/426 +f 3221/2048/427 3228/2043/427 3220/2036/427 +f 3219/2049/426 3226/2050/426 3218/2051/426 +f 3217/2052/427 3224/2040/427 3216/2033/427 +f 3220/2036/428 3231/2053/428 3223/2054/428 +f 3222/2047/429 3229/2055/429 3221/2048/429 +f 3216/2033/428 3227/2056/428 3219/2057/428 +f 3218/2051/429 3225/2058/429 3217/2052/429 +f 3239/2059/426 3246/2060/426 3238/2061/426 +f 3237/2062/427 3244/2022/427 3236/2027/427 +f 3235/2063/426 3242/2064/426 3234/2065/426 +f 3233/2066/427 3240/2025/427 3232/2030/427 +f 3236/2027/428 3247/2067/428 3239/2068/428 +f 3238/2061/429 3245/2069/429 3237/2062/429 +f 3232/2030/428 3243/2070/428 3235/2071/428 +f 3234/2065/429 3241/2072/429 3233/2066/429 +f 3252/2073/424 3248/2074/424 3253/2075/424 +f 3254/2076/424 3251/2077/424 3255/2078/424 +f 3248/2074/424 3251/2077/424 3249/2079/424 +f 3263/2080/424 3260/2081/424 3262/2082/424 +f 3257/2083/424 3260/2081/424 3256/2084/424 +f 3259/2085/424 3263/2080/424 3258/2086/424 +f 3261/2087/429 3268/2088/429 3260/2089/429 +f 3263/2080/430 3266/2090/430 3258/2091/430 +f 3260/2089/431 3264/2092/431 3256/2084/431 +f 3262/2082/428 3271/2093/428 3263/2080/428 +f 3259/2085/432 3269/2094/432 3261/2087/432 +f 3257/2095/433 3270/2096/433 3262/2082/433 +f 3265/2097/425 3268/2098/425 3270/2096/425 +f 3271/2093/425 3268/2098/425 3269/2099/425 +f 3267/2100/425 3271/2093/425 3269/2099/425 +f 3279/2101/426 3273/2102/426 3275/2103/426 +f 3278/2104/425 3275/2105/425 3274/2106/425 +f 3276/2107/427 3274/2106/427 3272/2108/427 +f 3273/2102/424 3276/2107/424 3272/2108/424 +f 3287/2109/426 3281/2110/426 3283/2111/426 +f 3286/2112/425 3283/2113/425 3282/2114/425 +f 3284/2115/427 3282/2114/427 3280/2116/427 +f 3281/2110/424 3284/2115/424 3280/2116/424 +f 3295/2117/426 3289/2118/426 3291/2119/426 +f 3294/2120/425 3291/2121/425 3290/2122/425 +f 3292/2123/427 3290/2122/427 3288/2124/427 +f 3289/2118/424 3292/2123/424 3288/2124/424 +f 3303/2125/426 3297/2126/426 3299/2127/426 +f 3302/2128/425 3299/2129/425 3298/2130/425 +f 3300/2131/427 3298/2130/427 3296/2132/427 +f 3297/2126/424 3300/2131/424 3296/2132/424 +f 3311/2133/426 3305/2134/426 3307/2135/426 +f 3310/2136/425 3307/2137/425 3306/2138/425 +f 3308/2139/427 3306/2138/427 3304/2140/427 +f 3305/2134/424 3308/2139/424 3304/2140/424 +f 3319/2141/426 3313/2142/426 3315/2143/426 +f 3318/2144/425 3315/2145/425 3314/2146/425 +f 3316/2147/427 3314/2146/427 3312/2148/427 +f 3313/2142/424 3316/2147/424 3312/2148/424 +f 3321/2149/428 3324/2150/428 3320/2151/428 +f 3323/2152/428 3326/2153/428 3327/2154/428 +f 3329/2155/428 3332/2156/428 3328/2157/428 +f 3331/2158/428 3334/2159/428 3335/2160/428 +f 3337/2161/428 3340/2162/428 3336/2163/428 +f 3339/2164/428 3342/2165/428 3343/2166/428 +f 3250/2167/429 3348/2168/429 3251/2169/429 +f 3248/2074/430 3346/2170/430 3253/2171/430 +f 3251/2169/431 3344/2172/431 3255/2078/431 +f 3249/2079/428 3351/2173/428 3248/2074/428 +f 3252/2073/432 3349/2174/432 3250/2167/432 +f 3254/2175/433 3350/2176/433 3249/2079/433 +f 3345/2177/425 3348/2178/425 3350/2176/425 +f 3351/2173/425 3348/2178/425 3349/2179/425 +f 3347/2180/425 3351/2173/425 3349/2179/425 +f 3356/2181/429 3353/2182/429 3352/2183/429 +f 3355/2184/429 3358/2185/429 3354/2186/429 +f 3364/2187/429 3361/2188/429 3360/2189/429 +f 3363/2190/429 3366/2191/429 3362/2192/429 +f 3372/2193/429 3369/2194/429 3368/2195/429 +f 3371/2196/429 3374/2197/429 3370/2198/429 +f 3246/2021/424 3247/2067/424 3244/2022/424 +f 3242/2024/424 3243/2070/424 3240/2025/424 +f 3236/2027/425 3239/2068/425 3238/2028/425 +f 3232/2030/425 3235/2071/425 3234/2031/425 +f 3216/2033/425 3219/2057/425 3218/2034/425 +f 3220/2036/425 3223/2054/425 3222/2037/425 +f 3226/2039/424 3227/2056/424 3224/2040/424 +f 3230/2042/424 3231/2053/424 3228/2043/424 +f 3223/2045/426 3231/2199/426 3230/2046/426 +f 3221/2048/427 3229/2055/427 3228/2043/427 +f 3219/2049/426 3227/2200/426 3226/2050/426 +f 3217/2052/427 3225/2058/427 3224/2040/427 +f 3220/2036/428 3228/2043/428 3231/2053/428 +f 3222/2047/429 3230/2046/429 3229/2055/429 +f 3216/2033/428 3224/2040/428 3227/2056/428 +f 3218/2051/429 3226/2050/429 3225/2058/429 +f 3239/2059/426 3247/2201/426 3246/2060/426 +f 3237/2062/427 3245/2069/427 3244/2022/427 +f 3235/2063/426 3243/2202/426 3242/2064/426 +f 3233/2066/427 3241/2072/427 3240/2025/427 +f 3236/2027/428 3244/2022/428 3247/2067/428 +f 3238/2061/429 3246/2060/429 3245/2069/429 +f 3232/2030/428 3240/2025/428 3243/2070/428 +f 3234/2065/429 3242/2064/429 3241/2072/429 +f 3252/2073/424 3250/2203/424 3248/2074/424 +f 3254/2076/424 3249/2079/424 3251/2077/424 +f 3248/2074/424 3250/2203/424 3251/2077/424 +f 3263/2080/424 3261/2204/424 3260/2081/424 +f 3257/2083/424 3262/2082/424 3260/2081/424 +f 3259/2085/424 3261/2204/424 3263/2080/424 +f 3261/2087/429 3269/2094/429 3268/2088/429 +f 3263/2080/430 3271/2093/430 3266/2090/430 +f 3260/2089/431 3268/2088/431 3264/2092/431 +f 3262/2082/428 3270/2096/428 3271/2093/428 +f 3259/2085/432 3267/2205/432 3269/2094/432 +f 3257/2095/433 3265/2206/433 3270/2096/433 +f 3265/2097/425 3264/2207/425 3268/2098/425 +f 3271/2093/425 3270/2096/425 3268/2098/425 +f 3267/2100/425 3266/2208/425 3271/2093/425 +f 3279/2101/426 3277/2209/426 3273/2102/426 +f 3278/2104/425 3279/2210/425 3275/2105/425 +f 3276/2107/427 3278/2104/427 3274/2106/427 +f 3273/2102/424 3277/2209/424 3276/2107/424 +f 3287/2109/426 3285/2211/426 3281/2110/426 +f 3286/2112/425 3287/2212/425 3283/2113/425 +f 3284/2115/427 3286/2112/427 3282/2114/427 +f 3281/2110/424 3285/2211/424 3284/2115/424 +f 3295/2117/426 3293/2213/426 3289/2118/426 +f 3294/2120/425 3295/2214/425 3291/2121/425 +f 3292/2123/427 3294/2120/427 3290/2122/427 +f 3289/2118/424 3293/2213/424 3292/2123/424 +f 3303/2125/426 3301/2215/426 3297/2126/426 +f 3302/2128/425 3303/2216/425 3299/2129/425 +f 3300/2131/427 3302/2128/427 3298/2130/427 +f 3297/2126/424 3301/2215/424 3300/2131/424 +f 3311/2133/426 3309/2217/426 3305/2134/426 +f 3310/2136/425 3311/2218/425 3307/2137/425 +f 3308/2139/427 3310/2136/427 3306/2138/427 +f 3305/2134/424 3309/2217/424 3308/2139/424 +f 3319/2141/426 3317/2219/426 3313/2142/426 +f 3318/2144/425 3319/2220/425 3315/2145/425 +f 3316/2147/427 3318/2144/427 3314/2146/427 +f 3313/2142/424 3317/2219/424 3316/2147/424 +f 3321/2149/428 3325/2221/428 3324/2150/428 +f 3323/2152/428 3322/2222/428 3326/2153/428 +f 3329/2155/428 3333/2223/428 3332/2156/428 +f 3331/2158/428 3330/2224/428 3334/2159/428 +f 3337/2161/428 3341/2225/428 3340/2162/428 +f 3339/2164/428 3338/2226/428 3342/2165/428 +f 3250/2167/429 3349/2174/429 3348/2168/429 +f 3248/2074/430 3351/2173/430 3346/2170/430 +f 3251/2169/431 3348/2168/431 3344/2172/431 +f 3249/2079/428 3350/2176/428 3351/2173/428 +f 3252/2073/432 3347/2227/432 3349/2174/432 +f 3254/2175/433 3345/2228/433 3350/2176/433 +f 3345/2177/425 3344/2229/425 3348/2178/425 +f 3351/2173/425 3350/2176/425 3348/2178/425 +f 3347/2180/425 3346/2230/425 3351/2173/425 +f 3356/2181/429 3357/2231/429 3353/2182/429 +f 3355/2184/429 3359/2232/429 3358/2185/429 +f 3364/2187/429 3365/2233/429 3361/2188/429 +f 3363/2190/429 3367/2234/429 3366/2191/429 +f 3372/2193/429 3373/2235/429 3369/2194/429 +f 3371/2196/429 3375/2236/429 3374/2197/429 o Pad v -4.500000 0.000000 4.500000 v 4.500000 0.000000 4.500000 @@ -8993,60 +10313,60 @@ vn 0.0000 -0.7071 0.7071 vn 0.7071 0.7071 0.0000 vn -0.7071 0.7071 0.0000 s off -f 3309/993/436 3319/994/436 3313/995/436 -f 3318/996/437 3317/997/437 3316/998/437 -f 3313/995/438 3318/999/438 3312/1000/438 -f 3310/1001/437 3315/1002/437 3311/1003/437 -f 3309/1004/439 3312/1005/439 3308/1006/439 -f 3312/1007/440 3316/1008/440 3308/1009/440 -f 3308/1010/441 3317/1011/441 3309/993/441 -f 3322/1012/439 3321/1013/439 3320/1014/439 -f 3315/1015/436 3320/1016/436 3311/1017/436 -f 3310/1018/440 3323/1019/440 3314/1020/440 -f 3314/1021/438 3322/1022/438 3315/1015/438 -f 3311/1017/441 3321/1023/441 3310/1024/441 -f 3329/1025/438 3325/1026/438 3326/1027/438 -f 3324/1028/438 3331/1029/438 3327/1030/438 -f 3335/1031/442 3332/1032/442 3333/1033/442 -f 3337/1034/441 3334/1035/441 3335/1031/441 -f 3339/1036/443 3336/1037/443 3337/1034/443 -f 3354/1038/440 3346/1039/440 3352/1040/440 -f 3348/1041/440 3350/1042/440 3344/1043/440 -f 3332/1044/436 3334/1045/436 3340/1046/436 -f 3338/1047/436 3342/1048/436 3336/1049/436 -f 3339/1050/440 3337/1051/440 3343/1052/440 -f 3333/1053/440 3341/1054/440 3335/1055/440 -f 3349/1056/436 3345/1057/436 3351/1058/436 -f 3355/1059/436 3353/1060/436 3347/1061/436 -f 3348/1062/443 3351/1063/443 3350/1064/443 -f 3350/1064/441 3353/1065/441 3352/1066/441 -f 3352/1066/442 3355/1067/442 3354/1068/442 -f 3357/1069/444 3361/1070/444 3360/1071/444 -f 3360/1071/445 3358/1072/445 3356/1073/445 -f 3359/1074/441 3356/1075/441 3358/1076/441 -f 3309/993/436 3317/1011/436 3319/994/436 -f 3318/996/437 3319/1077/437 3317/997/437 -f 3313/995/438 3319/994/438 3318/999/438 -f 3310/1001/437 3314/1078/437 3315/1002/437 -f 3309/1004/439 3313/1079/439 3312/1005/439 -f 3312/1007/440 3318/1080/440 3316/1008/440 -f 3308/1010/441 3316/1081/441 3317/1011/441 -f 3322/1012/439 3323/1082/439 3321/1013/439 -f 3315/1015/436 3322/1022/436 3320/1016/436 -f 3310/1018/440 3321/1083/440 3323/1019/440 -f 3314/1021/438 3323/1084/438 3322/1022/438 -f 3311/1017/441 3320/1016/441 3321/1023/441 -f 3329/1025/438 3328/1085/438 3325/1026/438 -f 3324/1028/438 3330/1086/438 3331/1029/438 -f 3335/1031/442 3334/1035/442 3332/1032/442 -f 3337/1034/441 3336/1037/441 3334/1035/441 -f 3339/1036/443 3338/1087/443 3336/1037/443 -f 3348/1062/443 3349/1088/443 3351/1063/443 -f 3350/1064/441 3351/1063/441 3353/1065/441 -f 3352/1066/442 3353/1065/442 3355/1067/442 -f 3357/1069/444 3359/1074/444 3361/1070/444 -f 3360/1071/445 3361/1070/445 3358/1072/445 -f 3359/1074/441 3357/1069/441 3356/1075/441 +f 3377/2237/434 3387/2238/434 3381/2239/434 +f 3386/2240/435 3385/2241/435 3384/2242/435 +f 3381/2239/436 3386/2243/436 3380/2244/436 +f 3378/2245/435 3383/2246/435 3379/2247/435 +f 3377/2248/437 3380/2249/437 3376/2250/437 +f 3380/2251/438 3384/2252/438 3376/2253/438 +f 3376/2254/439 3385/2255/439 3377/2237/439 +f 3390/2256/437 3389/2257/437 3388/2258/437 +f 3383/2259/434 3388/2260/434 3379/2261/434 +f 3378/2262/438 3391/2263/438 3382/2264/438 +f 3382/2265/436 3390/2266/436 3383/2259/436 +f 3379/2261/439 3389/2267/439 3378/2268/439 +f 3397/2269/436 3393/2270/436 3394/2271/436 +f 3392/2272/436 3399/2273/436 3395/2274/436 +f 3403/2275/440 3400/2276/440 3401/2277/440 +f 3405/2278/439 3402/2279/439 3403/2275/439 +f 3407/2280/441 3404/2281/441 3405/2278/441 +f 3422/2282/438 3414/2283/438 3420/2284/438 +f 3416/2285/438 3418/2286/438 3412/2287/438 +f 3400/2288/434 3402/2289/434 3408/2290/434 +f 3406/2291/434 3410/2292/434 3404/2293/434 +f 3407/2294/438 3405/2295/438 3411/2296/438 +f 3401/2297/438 3409/2298/438 3403/2299/438 +f 3417/2300/434 3413/2301/434 3419/2302/434 +f 3423/2303/434 3421/2304/434 3415/2305/434 +f 3416/2306/441 3419/2307/441 3418/2308/441 +f 3418/2308/439 3421/2309/439 3420/2310/439 +f 3420/2310/440 3423/2311/440 3422/2312/440 +f 3425/2313/442 3429/2314/442 3428/2315/442 +f 3428/2315/443 3426/2316/443 3424/2317/443 +f 3427/2318/439 3424/2319/439 3426/2320/439 +f 3377/2237/434 3385/2255/434 3387/2238/434 +f 3386/2240/435 3387/2321/435 3385/2241/435 +f 3381/2239/436 3387/2238/436 3386/2243/436 +f 3378/2245/435 3382/2322/435 3383/2246/435 +f 3377/2248/437 3381/2323/437 3380/2249/437 +f 3380/2251/438 3386/2324/438 3384/2252/438 +f 3376/2254/439 3384/2325/439 3385/2255/439 +f 3390/2256/437 3391/2326/437 3389/2257/437 +f 3383/2259/434 3390/2266/434 3388/2260/434 +f 3378/2262/438 3389/2327/438 3391/2263/438 +f 3382/2265/436 3391/2328/436 3390/2266/436 +f 3379/2261/439 3388/2260/439 3389/2267/439 +f 3397/2269/436 3396/2329/436 3393/2270/436 +f 3392/2272/436 3398/2330/436 3399/2273/436 +f 3403/2275/440 3402/2279/440 3400/2276/440 +f 3405/2278/439 3404/2281/439 3402/2279/439 +f 3407/2280/441 3406/2331/441 3404/2281/441 +f 3416/2306/441 3417/2332/441 3419/2307/441 +f 3418/2308/439 3419/2307/439 3421/2309/439 +f 3420/2310/440 3421/2309/440 3423/2311/440 +f 3425/2313/442 3427/2318/442 3429/2314/442 +f 3428/2315/443 3429/2314/443 3426/2316/443 +f 3427/2318/439 3425/2313/439 3424/2319/439 o Micro_Missile v 0.324760 3.500000 -0.187500 v 0.156250 3.500000 -0.270633 @@ -9651,423 +10971,423 @@ vn 0.9659 0.0000 -0.2588 vn -0.9659 0.0000 -0.2588 vn -0.9659 0.0000 0.2588 s off -f 3362/1089/446 3363/1090/446 3364/1091/446 -f 3365/1092/446 3366/1093/446 3363/1090/446 -f 3367/1094/446 3366/1095/446 3368/1096/446 -f 3369/1097/446 3370/1098/446 3367/1094/446 -f 3371/1099/446 3372/1100/446 3369/1097/446 -f 3373/1101/446 3374/1102/446 3371/1099/446 -f 3375/1103/446 3376/1104/446 3373/1101/446 -f 3377/1105/446 3378/1106/446 3375/1103/446 -f 3377/1105/446 3379/1107/446 3380/1108/446 -f 3381/1109/446 3382/1110/446 3379/1107/446 -f 3383/1111/446 3382/1110/446 3384/1112/446 -f 3362/1089/446 3385/1113/446 3383/1111/446 -f 3386/1114/447 3387/1115/447 3388/1116/447 -f 3389/1117/447 3390/1118/447 3386/1114/447 -f 3391/1119/447 3392/1120/447 3389/1117/447 -f 3393/1121/447 3394/1122/447 3391/1119/447 -f 3395/1123/447 3396/1124/447 3393/1125/447 -f 3395/1123/447 3397/1126/447 3398/1127/447 -f 3399/1128/447 3400/1129/447 3397/1126/447 -f 3401/1130/447 3400/1129/447 3402/1131/447 -f 3403/1132/447 3404/1133/447 3401/1130/447 -f 3403/1132/447 3405/1134/447 3406/1135/447 -f 3407/1136/447 3405/1134/447 3408/1137/447 -f 3388/1116/447 3409/1138/447 3407/1136/447 -f 3410/1139/447 3411/1140/447 3412/1141/447 -f 3413/1142/447 3414/1143/447 3410/1139/447 -f 3415/1144/447 3416/1145/447 3413/1142/447 -f 3417/1146/447 3418/1147/447 3415/1144/447 -f 3419/1148/447 3420/1149/447 3417/1150/447 -f 3419/1148/447 3421/1151/447 3422/1152/447 -f 3423/1153/447 3424/1154/447 3421/1151/447 -f 3425/1155/447 3424/1154/447 3426/1156/447 -f 3427/1157/447 3428/1158/447 3425/1155/447 -f 3427/1157/447 3429/1159/447 3430/1160/447 -f 3431/1161/447 3429/1159/447 3432/1162/447 -f 3412/1141/447 3433/1163/447 3431/1161/447 -f 3434/1164/447 3435/1165/447 3436/1166/447 -f 3437/1167/447 3438/1168/447 3434/1164/447 -f 3439/1169/447 3440/1170/447 3437/1167/447 -f 3441/1171/447 3442/1172/447 3439/1169/447 -f 3443/1173/447 3444/1174/447 3441/1175/447 -f 3443/1173/447 3445/1176/447 3446/1177/447 -f 3447/1178/447 3448/1179/447 3445/1176/447 -f 3449/1180/447 3448/1179/447 3450/1181/447 -f 3451/1182/447 3452/1183/447 3449/1180/447 -f 3451/1182/447 3453/1184/447 3454/1185/447 -f 3455/1186/447 3453/1184/447 3456/1187/447 -f 3436/1166/447 3457/1188/447 3455/1186/447 -f 3458/1189/446 3459/1190/446 3460/1191/446 -f 3461/1192/446 3462/1193/446 3458/1189/446 -f 3461/1192/446 3463/1194/446 3464/1195/446 -f 3465/1196/446 3466/1197/446 3463/1194/446 -f 3467/1198/446 3466/1199/446 3468/1200/446 -f 3469/1201/446 3470/1202/446 3467/1198/446 -f 3471/1203/446 3472/1204/446 3469/1201/446 -f 3473/1205/446 3474/1206/446 3471/1203/446 -f 3475/1207/446 3476/1208/446 3473/1205/446 -f 3477/1209/446 3478/1210/446 3475/1207/446 -f 3477/1209/446 3479/1211/446 3480/1212/446 -f 3481/1213/446 3459/1190/446 3479/1211/446 -f 3482/1214/446 3483/1215/446 3484/1216/446 -f 3485/1217/446 3486/1218/446 3482/1214/446 -f 3485/1217/446 3487/1219/446 3488/1220/446 -f 3489/1221/446 3490/1222/446 3487/1219/446 -f 3491/1223/446 3490/1224/446 3492/1225/446 -f 3493/1226/446 3494/1227/446 3491/1223/446 -f 3495/1228/446 3496/1229/446 3493/1226/446 -f 3497/1230/446 3498/1231/446 3495/1228/446 -f 3499/1232/446 3500/1233/446 3497/1230/446 -f 3501/1234/446 3502/1235/446 3499/1232/446 -f 3501/1234/446 3503/1236/446 3504/1237/446 -f 3505/1238/446 3483/1215/446 3503/1236/446 -f 3506/1239/447 3507/1240/447 3508/1241/447 -f 3509/1242/448 3510/1243/448 3511/1244/448 -f 3508/1245/449 3510/1246/449 3506/1247/449 -f 3510/1246/450 3507/1240/450 3506/1247/450 -f 3512/1248/451 3513/1249/451 3514/1250/451 -f 3515/1251/452 3512/1248/452 3514/1250/452 -f 3516/1252/453 3512/1253/453 3517/1254/453 -f 3514/1255/447 3513/1249/447 3515/1256/447 -f 3518/1257/447 3519/1258/447 3520/1259/447 -f 3521/1260/454 3522/1261/454 3523/1262/454 -f 3520/1263/455 3522/1264/455 3518/1265/455 -f 3522/1264/456 3519/1258/456 3518/1265/456 -f 3524/1266/457 3525/1267/457 3526/1268/457 -f 3527/1269/458 3524/1266/458 3526/1268/458 -f 3528/1270/459 3524/1271/459 3529/1272/459 -f 3526/1273/447 3525/1267/447 3527/1274/447 -f 3530/1275/447 3531/1276/447 3532/1277/447 -f 3533/1278/447 3534/1279/447 3531/1276/447 -f 3535/1280/447 3536/1281/447 3534/1279/447 -f 3537/1282/447 3538/1283/447 3536/1281/447 -f 3538/1283/447 3539/1284/447 3540/1285/447 -f 3539/1286/447 3541/1287/447 3540/1285/447 -f 3542/1288/447 3543/1289/447 3541/1290/447 -f 3544/1291/447 3545/1292/447 3543/1289/447 -f 3546/1293/447 3547/1294/447 3545/1292/447 -f 3548/1295/447 3549/1296/447 3547/1294/447 -f 3550/1297/447 3551/1298/447 3549/1296/447 -f 3552/1299/447 3532/1277/447 3551/1298/447 -f 3362/1089/446 3365/1092/446 3363/1090/446 -f 3365/1092/446 3368/1300/446 3366/1093/446 -f 3367/1094/446 3370/1098/446 3366/1095/446 -f 3369/1097/446 3372/1100/446 3370/1098/446 -f 3371/1099/446 3374/1102/446 3372/1100/446 -f 3373/1101/446 3376/1104/446 3374/1102/446 -f 3375/1103/446 3378/1106/446 3376/1104/446 -f 3377/1105/446 3380/1108/446 3378/1106/446 -f 3377/1105/446 3381/1109/446 3379/1107/446 -f 3381/1109/446 3384/1112/446 3382/1110/446 -f 3383/1111/446 3385/1113/446 3382/1110/446 -f 3362/1089/446 3364/1091/446 3385/1113/446 -f 3386/1114/447 3390/1118/447 3387/1115/447 -f 3389/1117/447 3392/1120/447 3390/1118/447 -f 3391/1119/447 3394/1122/447 3392/1120/447 -f 3393/1121/447 3396/1301/447 3394/1122/447 -f 3395/1123/447 3398/1127/447 3396/1124/447 -f 3395/1123/447 3399/1128/447 3397/1126/447 -f 3399/1128/447 3402/1131/447 3400/1129/447 -f 3401/1130/447 3404/1133/447 3400/1129/447 -f 3403/1132/447 3406/1135/447 3404/1133/447 -f 3403/1132/447 3408/1137/447 3405/1134/447 -f 3407/1136/447 3409/1138/447 3405/1134/447 -f 3388/1116/447 3387/1115/447 3409/1138/447 -f 3410/1139/447 3414/1143/447 3411/1140/447 -f 3413/1142/447 3416/1145/447 3414/1143/447 -f 3415/1144/447 3418/1147/447 3416/1145/447 -f 3417/1146/447 3420/1302/447 3418/1147/447 -f 3419/1148/447 3422/1152/447 3420/1149/447 -f 3419/1148/447 3423/1153/447 3421/1151/447 -f 3423/1153/447 3426/1156/447 3424/1154/447 -f 3425/1155/447 3428/1158/447 3424/1154/447 -f 3427/1157/447 3430/1160/447 3428/1158/447 -f 3427/1157/447 3432/1162/447 3429/1159/447 -f 3431/1161/447 3433/1163/447 3429/1159/447 -f 3412/1141/447 3411/1140/447 3433/1163/447 -f 3434/1164/447 3438/1168/447 3435/1165/447 -f 3437/1167/447 3440/1170/447 3438/1168/447 -f 3439/1169/447 3442/1172/447 3440/1170/447 -f 3441/1171/447 3444/1303/447 3442/1172/447 -f 3443/1173/447 3446/1177/447 3444/1174/447 -f 3443/1173/447 3447/1178/447 3445/1176/447 -f 3447/1178/447 3450/1181/447 3448/1179/447 -f 3449/1180/447 3452/1183/447 3448/1179/447 -f 3451/1182/447 3454/1185/447 3452/1183/447 -f 3451/1182/447 3456/1187/447 3453/1184/447 -f 3455/1186/447 3457/1188/447 3453/1184/447 -f 3436/1166/447 3435/1165/447 3457/1188/447 -f 3458/1189/446 3462/1193/446 3459/1190/446 -f 3461/1192/446 3464/1195/446 3462/1193/446 -f 3461/1192/446 3465/1196/446 3463/1194/446 -f 3465/1196/446 3468/1304/446 3466/1197/446 -f 3467/1198/446 3470/1202/446 3466/1199/446 -f 3469/1201/446 3472/1204/446 3470/1202/446 -f 3471/1203/446 3474/1206/446 3472/1204/446 -f 3473/1205/446 3476/1208/446 3474/1206/446 -f 3475/1207/446 3478/1210/446 3476/1208/446 -f 3477/1209/446 3480/1212/446 3478/1210/446 -f 3477/1209/446 3481/1213/446 3479/1211/446 -f 3481/1213/446 3460/1191/446 3459/1190/446 -f 3482/1214/446 3486/1218/446 3483/1215/446 -f 3485/1217/446 3488/1220/446 3486/1218/446 -f 3485/1217/446 3489/1221/446 3487/1219/446 -f 3489/1221/446 3492/1305/446 3490/1222/446 -f 3491/1223/446 3494/1227/446 3490/1224/446 -f 3493/1226/446 3496/1229/446 3494/1227/446 -f 3495/1228/446 3498/1231/446 3496/1229/446 -f 3497/1230/446 3500/1233/446 3498/1231/446 -f 3499/1232/446 3502/1235/446 3500/1233/446 -f 3501/1234/446 3504/1237/446 3502/1235/446 -f 3501/1234/446 3505/1238/446 3503/1236/446 -f 3505/1238/446 3484/1216/446 3483/1215/446 -f 3508/1245/449 3511/1306/449 3510/1246/449 -f 3510/1246/450 3509/1242/450 3507/1240/450 -f 3512/1248/451 3516/1252/451 3513/1249/451 -f 3515/1251/452 3517/1307/452 3512/1248/452 -f 3520/1263/455 3523/1308/455 3522/1264/455 -f 3522/1264/456 3521/1260/456 3519/1258/456 -f 3524/1266/457 3528/1270/457 3525/1267/457 -f 3527/1269/458 3529/1309/458 3524/1266/458 -f 3530/1275/447 3533/1310/447 3531/1276/447 -f 3533/1278/447 3535/1311/447 3534/1279/447 -f 3535/1280/447 3537/1312/447 3536/1281/447 -f 3537/1282/447 3553/1313/447 3538/1283/447 -f 3538/1283/447 3553/1314/447 3539/1284/447 -f 3539/1286/447 3542/1315/447 3541/1287/447 -f 3542/1288/447 3544/1316/447 3543/1289/447 -f 3544/1291/447 3546/1317/447 3545/1292/447 -f 3546/1293/447 3548/1318/447 3547/1294/447 -f 3548/1295/447 3550/1319/447 3549/1296/447 -f 3550/1297/447 3552/1320/447 3551/1298/447 -f 3552/1299/447 3530/1321/447 3532/1277/447 +f 3430/2333/444 3431/2334/444 3432/2335/444 +f 3433/2336/444 3434/2337/444 3431/2334/444 +f 3435/2338/444 3434/2339/444 3436/2340/444 +f 3437/2341/444 3438/2342/444 3435/2338/444 +f 3439/2343/444 3440/2344/444 3437/2341/444 +f 3441/2345/444 3442/2346/444 3439/2343/444 +f 3443/2347/444 3444/2348/444 3441/2345/444 +f 3445/2349/444 3446/2350/444 3443/2347/444 +f 3445/2349/444 3447/2351/444 3448/2352/444 +f 3449/2353/444 3450/2354/444 3447/2351/444 +f 3451/2355/444 3450/2354/444 3452/2356/444 +f 3430/2333/444 3453/2357/444 3451/2355/444 +f 3454/2358/445 3455/2359/445 3456/2360/445 +f 3457/2361/445 3458/2362/445 3454/2358/445 +f 3459/2363/445 3460/2364/445 3457/2361/445 +f 3461/2365/445 3462/2366/445 3459/2363/445 +f 3463/2367/445 3464/2368/445 3461/2369/445 +f 3463/2367/445 3465/2370/445 3466/2371/445 +f 3467/2372/445 3468/2373/445 3465/2370/445 +f 3469/2374/445 3468/2373/445 3470/2375/445 +f 3471/2376/445 3472/2377/445 3469/2374/445 +f 3471/2376/445 3473/2378/445 3474/2379/445 +f 3475/2380/445 3473/2378/445 3476/2381/445 +f 3456/2360/445 3477/2382/445 3475/2380/445 +f 3478/2383/445 3479/2384/445 3480/2385/445 +f 3481/2386/445 3482/2387/445 3478/2383/445 +f 3483/2388/445 3484/2389/445 3481/2386/445 +f 3485/2390/445 3486/2391/445 3483/2388/445 +f 3487/2392/445 3488/2393/445 3485/2394/445 +f 3487/2392/445 3489/2395/445 3490/2396/445 +f 3491/2397/445 3492/2398/445 3489/2395/445 +f 3493/2399/445 3492/2398/445 3494/2400/445 +f 3495/2401/445 3496/2402/445 3493/2399/445 +f 3495/2401/445 3497/2403/445 3498/2404/445 +f 3499/2405/445 3497/2403/445 3500/2406/445 +f 3480/2385/445 3501/2407/445 3499/2405/445 +f 3502/2408/445 3503/2409/445 3504/2410/445 +f 3505/2411/445 3506/2412/445 3502/2408/445 +f 3507/2413/445 3508/2414/445 3505/2411/445 +f 3509/2415/445 3510/2416/445 3507/2413/445 +f 3511/2417/445 3512/2418/445 3509/2419/445 +f 3511/2417/445 3513/2420/445 3514/2421/445 +f 3515/2422/445 3516/2423/445 3513/2420/445 +f 3517/2424/445 3516/2423/445 3518/2425/445 +f 3519/2426/445 3520/2427/445 3517/2424/445 +f 3519/2426/445 3521/2428/445 3522/2429/445 +f 3523/2430/445 3521/2428/445 3524/2431/445 +f 3504/2410/445 3525/2432/445 3523/2430/445 +f 3526/2433/444 3527/2434/444 3528/2435/444 +f 3529/2436/444 3530/2437/444 3526/2433/444 +f 3529/2436/444 3531/2438/444 3532/2439/444 +f 3533/2440/444 3534/2441/444 3531/2438/444 +f 3535/2442/444 3534/2443/444 3536/2444/444 +f 3537/2445/444 3538/2446/444 3535/2442/444 +f 3539/2447/444 3540/2448/444 3537/2445/444 +f 3541/2449/444 3542/2450/444 3539/2447/444 +f 3543/2451/444 3544/2452/444 3541/2449/444 +f 3545/2453/444 3546/2454/444 3543/2451/444 +f 3545/2453/444 3547/2455/444 3548/2456/444 +f 3549/2457/444 3527/2434/444 3547/2455/444 +f 3550/2458/444 3551/2459/444 3552/2460/444 +f 3553/2461/444 3554/2462/444 3550/2458/444 +f 3553/2461/444 3555/2463/444 3556/2464/444 +f 3557/2465/444 3558/2466/444 3555/2463/444 +f 3559/2467/444 3558/2468/444 3560/2469/444 +f 3561/2470/444 3562/2471/444 3559/2467/444 +f 3563/2472/444 3564/2473/444 3561/2470/444 +f 3565/2474/444 3566/2475/444 3563/2472/444 +f 3567/2476/444 3568/2477/444 3565/2474/444 +f 3569/2478/444 3570/2479/444 3567/2476/444 +f 3569/2478/444 3571/2480/444 3572/2481/444 +f 3573/2482/444 3551/2459/444 3571/2480/444 +f 3574/2483/445 3575/2484/445 3576/2485/445 +f 3577/2486/446 3578/2487/446 3579/2488/446 +f 3576/2489/447 3578/2490/447 3574/2491/447 +f 3578/2490/448 3575/2484/448 3574/2491/448 +f 3580/2492/449 3581/2493/449 3582/2494/449 +f 3583/2495/450 3580/2492/450 3582/2494/450 +f 3584/2496/451 3580/2497/451 3585/2498/451 +f 3582/2499/445 3581/2493/445 3583/2500/445 +f 3586/2501/445 3587/2502/445 3588/2503/445 +f 3589/2504/452 3590/2505/452 3591/2506/452 +f 3588/2507/453 3590/2508/453 3586/2509/453 +f 3590/2508/454 3587/2502/454 3586/2509/454 +f 3592/2510/455 3593/2511/455 3594/2512/455 +f 3595/2513/456 3592/2510/456 3594/2512/456 +f 3596/2514/457 3592/2515/457 3597/2516/457 +f 3594/2517/445 3593/2511/445 3595/2518/445 +f 3598/2519/445 3599/2520/445 3600/2521/445 +f 3601/2522/445 3602/2523/445 3599/2520/445 +f 3603/2524/445 3604/2525/445 3602/2523/445 +f 3605/2526/445 3606/2527/445 3604/2525/445 +f 3606/2527/445 3607/2528/445 3608/2529/445 +f 3607/2530/445 3609/2531/445 3608/2529/445 +f 3610/2532/445 3611/2533/445 3609/2534/445 +f 3612/2535/445 3613/2536/445 3611/2533/445 +f 3614/2537/445 3615/2538/445 3613/2536/445 +f 3616/2539/445 3617/2540/445 3615/2538/445 +f 3618/2541/445 3619/2542/445 3617/2540/445 +f 3620/2543/445 3600/2521/445 3619/2542/445 +f 3430/2333/444 3433/2336/444 3431/2334/444 +f 3433/2336/444 3436/2544/444 3434/2337/444 +f 3435/2338/444 3438/2342/444 3434/2339/444 +f 3437/2341/444 3440/2344/444 3438/2342/444 +f 3439/2343/444 3442/2346/444 3440/2344/444 +f 3441/2345/444 3444/2348/444 3442/2346/444 +f 3443/2347/444 3446/2350/444 3444/2348/444 +f 3445/2349/444 3448/2352/444 3446/2350/444 +f 3445/2349/444 3449/2353/444 3447/2351/444 +f 3449/2353/444 3452/2356/444 3450/2354/444 +f 3451/2355/444 3453/2357/444 3450/2354/444 +f 3430/2333/444 3432/2335/444 3453/2357/444 +f 3454/2358/445 3458/2362/445 3455/2359/445 +f 3457/2361/445 3460/2364/445 3458/2362/445 +f 3459/2363/445 3462/2366/445 3460/2364/445 +f 3461/2365/445 3464/2545/445 3462/2366/445 +f 3463/2367/445 3466/2371/445 3464/2368/445 +f 3463/2367/445 3467/2372/445 3465/2370/445 +f 3467/2372/445 3470/2375/445 3468/2373/445 +f 3469/2374/445 3472/2377/445 3468/2373/445 +f 3471/2376/445 3474/2379/445 3472/2377/445 +f 3471/2376/445 3476/2381/445 3473/2378/445 +f 3475/2380/445 3477/2382/445 3473/2378/445 +f 3456/2360/445 3455/2359/445 3477/2382/445 +f 3478/2383/445 3482/2387/445 3479/2384/445 +f 3481/2386/445 3484/2389/445 3482/2387/445 +f 3483/2388/445 3486/2391/445 3484/2389/445 +f 3485/2390/445 3488/2546/445 3486/2391/445 +f 3487/2392/445 3490/2396/445 3488/2393/445 +f 3487/2392/445 3491/2397/445 3489/2395/445 +f 3491/2397/445 3494/2400/445 3492/2398/445 +f 3493/2399/445 3496/2402/445 3492/2398/445 +f 3495/2401/445 3498/2404/445 3496/2402/445 +f 3495/2401/445 3500/2406/445 3497/2403/445 +f 3499/2405/445 3501/2407/445 3497/2403/445 +f 3480/2385/445 3479/2384/445 3501/2407/445 +f 3502/2408/445 3506/2412/445 3503/2409/445 +f 3505/2411/445 3508/2414/445 3506/2412/445 +f 3507/2413/445 3510/2416/445 3508/2414/445 +f 3509/2415/445 3512/2547/445 3510/2416/445 +f 3511/2417/445 3514/2421/445 3512/2418/445 +f 3511/2417/445 3515/2422/445 3513/2420/445 +f 3515/2422/445 3518/2425/445 3516/2423/445 +f 3517/2424/445 3520/2427/445 3516/2423/445 +f 3519/2426/445 3522/2429/445 3520/2427/445 +f 3519/2426/445 3524/2431/445 3521/2428/445 +f 3523/2430/445 3525/2432/445 3521/2428/445 +f 3504/2410/445 3503/2409/445 3525/2432/445 +f 3526/2433/444 3530/2437/444 3527/2434/444 +f 3529/2436/444 3532/2439/444 3530/2437/444 +f 3529/2436/444 3533/2440/444 3531/2438/444 +f 3533/2440/444 3536/2548/444 3534/2441/444 +f 3535/2442/444 3538/2446/444 3534/2443/444 +f 3537/2445/444 3540/2448/444 3538/2446/444 +f 3539/2447/444 3542/2450/444 3540/2448/444 +f 3541/2449/444 3544/2452/444 3542/2450/444 +f 3543/2451/444 3546/2454/444 3544/2452/444 +f 3545/2453/444 3548/2456/444 3546/2454/444 +f 3545/2453/444 3549/2457/444 3547/2455/444 +f 3549/2457/444 3528/2435/444 3527/2434/444 +f 3550/2458/444 3554/2462/444 3551/2459/444 +f 3553/2461/444 3556/2464/444 3554/2462/444 +f 3553/2461/444 3557/2465/444 3555/2463/444 +f 3557/2465/444 3560/2549/444 3558/2466/444 +f 3559/2467/444 3562/2471/444 3558/2468/444 +f 3561/2470/444 3564/2473/444 3562/2471/444 +f 3563/2472/444 3566/2475/444 3564/2473/444 +f 3565/2474/444 3568/2477/444 3566/2475/444 +f 3567/2476/444 3570/2479/444 3568/2477/444 +f 3569/2478/444 3572/2481/444 3570/2479/444 +f 3569/2478/444 3573/2482/444 3571/2480/444 +f 3573/2482/444 3552/2460/444 3551/2459/444 +f 3576/2489/447 3579/2550/447 3578/2490/447 +f 3578/2490/448 3577/2486/448 3575/2484/448 +f 3580/2492/449 3584/2496/449 3581/2493/449 +f 3583/2495/450 3585/2551/450 3580/2492/450 +f 3588/2507/453 3591/2552/453 3590/2508/453 +f 3590/2508/454 3589/2504/454 3587/2502/454 +f 3592/2510/455 3596/2514/455 3593/2511/455 +f 3595/2513/456 3597/2553/456 3592/2510/456 +f 3598/2519/445 3601/2554/445 3599/2520/445 +f 3601/2522/445 3603/2555/445 3602/2523/445 +f 3603/2524/445 3605/2556/445 3604/2525/445 +f 3605/2526/445 3621/2557/445 3606/2527/445 +f 3606/2527/445 3621/2558/445 3607/2528/445 +f 3607/2530/445 3610/2559/445 3609/2531/445 +f 3610/2532/445 3612/2560/445 3611/2533/445 +f 3612/2535/445 3614/2561/445 3613/2536/445 +f 3614/2537/445 3616/2562/445 3615/2538/445 +f 3616/2539/445 3618/2563/445 3617/2540/445 +f 3618/2541/445 3620/2564/445 3619/2542/445 +f 3620/2543/445 3598/2565/445 3600/2521/445 s 1 -f 3538/1283/460 3383/1111/461 3536/1281/461 -f 3531/1276/462 3377/1105/463 3532/1277/463 -f 3549/1296/464 3371/1099/465 3547/1294/465 -f 3540/1285/466 3362/1089/460 3538/1283/460 -f 3543/1289/467 3368/1096/468 3541/1290/468 -f 3534/1279/469 3381/1109/462 3531/1276/462 -f 3551/1298/470 3373/1101/464 3549/1296/464 -f 3541/1287/468 3365/1092/466 3540/1285/466 -f 3545/1292/471 3367/1094/467 3543/1289/467 -f 3536/1281/461 3384/1112/469 3534/1279/469 -f 3532/1277/463 3375/1103/470 3551/1298/470 -f 3547/1294/465 3369/1097/471 3545/1292/471 -f 3382/1110/469 3407/1136/462 3379/1107/462 -f 3378/1106/470 3401/1130/464 3376/1104/464 -f 3366/1093/468 3391/1119/466 3363/1090/466 -f 3372/1100/471 3395/1123/467 3370/1098/467 -f 3385/1113/461 3388/1116/469 3382/1110/469 -f 3380/1108/463 3403/1132/470 3378/1106/470 -f 3374/1102/465 3399/1128/471 3372/1100/471 -f 3364/1091/460 3386/1114/461 3385/1113/461 -f 3379/1107/462 3408/1137/463 3380/1108/463 -f 3376/1104/464 3402/1131/465 3374/1102/465 -f 3363/1090/466 3389/1117/460 3364/1091/460 -f 3370/1098/467 3393/1125/468 3366/1095/468 -f 3394/1122/466 3461/1192/460 3392/1120/460 -f 3398/1127/467 3468/1200/468 3396/1124/468 -f 3387/1115/469 3481/1213/462 3409/1138/462 -f 3406/1135/470 3473/1205/464 3404/1133/464 -f 3396/1301/468 3465/1196/466 3394/1122/466 -f 3397/1126/471 3467/1198/467 3398/1127/467 -f 3390/1118/461 3460/1191/469 3387/1115/469 -f 3405/1134/463 3475/1207/470 3406/1135/470 -f 3400/1129/465 3469/1201/471 3397/1126/471 -f 3392/1120/460 3458/1189/461 3390/1118/461 -f 3409/1138/462 3477/1209/463 3405/1134/463 -f 3404/1133/464 3471/1203/465 3400/1129/465 -f 3459/1190/469 3431/1161/462 3479/1211/462 -f 3478/1210/470 3425/1155/464 3476/1208/464 -f 3466/1197/468 3415/1144/466 3463/1194/466 -f 3472/1204/471 3419/1148/467 3470/1202/467 -f 3462/1193/461 3412/1141/469 3459/1190/469 -f 3480/1212/463 3427/1157/470 3478/1210/470 -f 3474/1206/465 3423/1153/471 3472/1204/471 -f 3464/1195/460 3410/1139/461 3462/1193/461 -f 3479/1211/462 3432/1162/463 3480/1212/463 -f 3476/1208/464 3426/1156/465 3474/1206/465 -f 3463/1194/466 3413/1142/460 3464/1195/460 -f 3470/1202/467 3417/1150/468 3466/1199/468 -f 3418/1147/466 3485/1217/460 3416/1145/460 -f 3422/1152/467 3492/1225/468 3420/1149/468 -f 3411/1140/469 3505/1238/462 3433/1163/462 -f 3430/1160/470 3497/1230/464 3428/1158/464 -f 3420/1302/468 3489/1221/466 3418/1147/466 -f 3421/1151/471 3491/1223/467 3422/1152/467 -f 3414/1143/461 3484/1216/469 3411/1140/469 -f 3429/1159/463 3499/1232/470 3430/1160/470 -f 3424/1154/465 3493/1226/471 3421/1151/471 -f 3416/1145/460 3482/1214/461 3414/1143/461 -f 3433/1163/462 3501/1234/463 3429/1159/463 -f 3428/1158/464 3495/1228/465 3424/1154/465 -f 3483/1215/469 3455/1186/462 3503/1236/462 -f 3502/1235/470 3449/1180/464 3500/1233/464 -f 3490/1222/468 3439/1169/466 3487/1219/466 -f 3496/1229/471 3443/1173/467 3494/1227/467 -f 3486/1218/461 3436/1166/469 3483/1215/469 -f 3504/1237/463 3451/1182/470 3502/1235/470 -f 3498/1231/465 3447/1178/471 3496/1229/471 -f 3488/1220/460 3434/1164/461 3486/1218/461 -f 3503/1236/462 3456/1187/463 3504/1237/463 -f 3500/1233/464 3450/1181/465 3498/1231/465 -f 3487/1219/466 3437/1167/460 3488/1220/460 -f 3494/1227/467 3441/1175/468 3490/1224/468 -f 3442/1172/466 3554/1322/472 3440/1170/460 -f 3446/1177/467 3555/1323/473 3444/1174/468 -f 3435/1165/469 3556/1324/474 3457/1188/462 -f 3454/1185/470 3557/1325/475 3452/1183/464 -f 3444/1303/468 3558/1326/476 3442/1172/466 -f 3445/1176/471 3559/1327/477 3446/1177/467 -f 3438/1168/461 3560/1328/478 3435/1165/469 -f 3453/1184/463 3561/1329/479 3454/1185/470 -f 3448/1179/465 3562/1330/480 3445/1176/471 -f 3440/1170/460 3563/1331/481 3438/1168/461 -f 3457/1188/462 3564/1332/482 3453/1184/463 -f 3452/1183/464 3565/1333/483 3448/1179/465 -f 3564/1332/482 3566/1334/484 3561/1329/479 -f 3565/1333/483 3567/1335/485 3562/1330/480 -f 3563/1331/481 3568/1336/486 3569/1337/487 -f 3556/1324/474 3570/1338/488 3564/1332/482 -f 3565/1333/483 3571/1339/489 3572/1340/490 -f 3558/1326/476 3568/1341/486 3554/1322/472 -f 3559/1327/477 3573/1342/491 3555/1323/473 -f 3556/1324/474 3574/1343/492 3575/1344/493 -f 3561/1329/479 3571/1345/489 3557/1325/475 -f 3555/1346/473 3576/1347/494 3558/1326/476 -f 3562/1330/480 3577/1348/495 3559/1327/477 -f 3563/1331/481 3574/1349/492 3560/1328/478 -f 3573/1342/491 3577/1350/495 3578/1351/446 -f 3577/1348/495 3567/1352/485 3578/1353/446 -f 3567/1335/485 3572/1354/490 3578/1355/446 -f 3572/1340/490 3571/1339/489 3578/1356/446 -f 3571/1345/489 3566/1357/484 3578/1358/446 -f 3566/1334/484 3570/1359/488 3578/1360/446 -f 3570/1338/488 3575/1361/493 3578/1362/446 -f 3575/1344/493 3574/1343/492 3578/1363/446 -f 3574/1349/492 3569/1364/487 3578/1365/446 -f 3569/1337/487 3568/1336/486 3578/1366/446 -f 3568/1341/486 3576/1367/494 3578/1368/446 -f 3576/1347/494 3573/1369/491 3578/1370/446 -f 3544/1316/496 3542/1288/497 3579/1371/447 -f 3542/1315/497 3539/1286/498 3579/1372/447 -f 3539/1284/498 3553/1314/499 3579/1373/447 -f 3553/1313/499 3537/1282/500 3579/1374/447 -f 3537/1312/500 3535/1280/501 3579/1375/447 -f 3535/1311/501 3533/1278/502 3579/1376/447 -f 3533/1310/502 3530/1275/503 3579/1377/447 -f 3530/1321/503 3552/1299/504 3579/1378/447 -f 3552/1320/504 3550/1297/505 3579/1379/447 -f 3550/1319/505 3548/1295/506 3579/1380/447 -f 3548/1318/506 3546/1293/507 3579/1381/447 -f 3546/1317/507 3544/1291/496 3579/1382/447 -f 3580/1383/461 3581/1384/508 3582/1385/508 -f 3583/1386/509 3584/1387/461 3580/1383/461 -f 3585/1388/465 3586/1389/510 3587/1390/510 -f 3588/1391/511 3589/1392/465 3585/1388/465 -f 3538/1283/460 3362/1089/460 3383/1111/461 -f 3531/1276/462 3381/1109/462 3377/1105/463 -f 3549/1296/464 3373/1101/464 3371/1099/465 -f 3540/1285/466 3365/1092/466 3362/1089/460 -f 3543/1289/467 3367/1094/467 3368/1096/468 -f 3534/1279/469 3384/1112/469 3381/1109/462 -f 3551/1298/470 3375/1103/470 3373/1101/464 -f 3541/1287/468 3368/1300/468 3365/1092/466 -f 3545/1292/471 3369/1097/471 3367/1094/467 -f 3536/1281/461 3383/1111/461 3384/1112/469 -f 3532/1277/463 3377/1105/463 3375/1103/470 -f 3547/1294/465 3371/1099/465 3369/1097/471 -f 3382/1110/469 3388/1116/469 3407/1136/462 -f 3378/1106/470 3403/1132/470 3401/1130/464 -f 3366/1093/468 3393/1121/468 3391/1119/466 -f 3372/1100/471 3399/1128/471 3395/1123/467 -f 3385/1113/461 3386/1114/461 3388/1116/469 -f 3380/1108/463 3408/1137/463 3403/1132/470 -f 3374/1102/465 3402/1131/465 3399/1128/471 -f 3364/1091/460 3389/1117/460 3386/1114/461 -f 3379/1107/462 3407/1136/462 3408/1137/463 -f 3376/1104/464 3401/1130/464 3402/1131/465 -f 3363/1090/466 3391/1119/466 3389/1117/460 -f 3370/1098/467 3395/1123/467 3393/1125/468 -f 3394/1122/466 3465/1196/466 3461/1192/460 -f 3398/1127/467 3467/1198/467 3468/1200/468 -f 3387/1115/469 3460/1191/469 3481/1213/462 -f 3406/1135/470 3475/1207/470 3473/1205/464 -f 3396/1301/468 3468/1304/468 3465/1196/466 -f 3397/1126/471 3469/1201/471 3467/1198/467 -f 3390/1118/461 3458/1189/461 3460/1191/469 -f 3405/1134/463 3477/1209/463 3475/1207/470 -f 3400/1129/465 3471/1203/465 3469/1201/471 -f 3392/1120/460 3461/1192/460 3458/1189/461 -f 3409/1138/462 3481/1213/462 3477/1209/463 -f 3404/1133/464 3473/1205/464 3471/1203/465 -f 3459/1190/469 3412/1141/469 3431/1161/462 -f 3478/1210/470 3427/1157/470 3425/1155/464 -f 3466/1197/468 3417/1146/468 3415/1144/466 -f 3472/1204/471 3423/1153/471 3419/1148/467 -f 3462/1193/461 3410/1139/461 3412/1141/469 -f 3480/1212/463 3432/1162/463 3427/1157/470 -f 3474/1206/465 3426/1156/465 3423/1153/471 -f 3464/1195/460 3413/1142/460 3410/1139/461 -f 3479/1211/462 3431/1161/462 3432/1162/463 -f 3476/1208/464 3425/1155/464 3426/1156/465 -f 3463/1194/466 3415/1144/466 3413/1142/460 -f 3470/1202/467 3419/1148/467 3417/1150/468 -f 3418/1147/466 3489/1221/466 3485/1217/460 -f 3422/1152/467 3491/1223/467 3492/1225/468 -f 3411/1140/469 3484/1216/469 3505/1238/462 -f 3430/1160/470 3499/1232/470 3497/1230/464 -f 3420/1302/468 3492/1305/468 3489/1221/466 -f 3421/1151/471 3493/1226/471 3491/1223/467 -f 3414/1143/461 3482/1214/461 3484/1216/469 -f 3429/1159/463 3501/1234/463 3499/1232/470 -f 3424/1154/465 3495/1228/465 3493/1226/471 -f 3416/1145/460 3485/1217/460 3482/1214/461 -f 3433/1163/462 3505/1238/462 3501/1234/463 -f 3428/1158/464 3497/1230/464 3495/1228/465 -f 3483/1215/469 3436/1166/469 3455/1186/462 -f 3502/1235/470 3451/1182/470 3449/1180/464 -f 3490/1222/468 3441/1171/468 3439/1169/466 -f 3496/1229/471 3447/1178/471 3443/1173/467 -f 3486/1218/461 3434/1164/461 3436/1166/469 -f 3504/1237/463 3456/1187/463 3451/1182/470 -f 3498/1231/465 3450/1181/465 3447/1178/471 -f 3488/1220/460 3437/1167/460 3434/1164/461 -f 3503/1236/462 3455/1186/462 3456/1187/463 -f 3500/1233/464 3449/1180/464 3450/1181/465 -f 3487/1219/466 3439/1169/466 3437/1167/460 -f 3494/1227/467 3443/1173/467 3441/1175/468 -f 3442/1172/466 3558/1326/476 3554/1322/472 -f 3446/1177/467 3559/1327/477 3555/1323/473 -f 3435/1165/469 3560/1328/478 3556/1324/474 -f 3454/1185/470 3561/1329/479 3557/1325/475 -f 3444/1303/468 3555/1346/473 3558/1326/476 -f 3445/1176/471 3562/1330/480 3559/1327/477 -f 3438/1168/461 3563/1331/481 3560/1328/478 -f 3453/1184/463 3564/1332/482 3561/1329/479 -f 3448/1179/465 3565/1333/483 3562/1330/480 -f 3440/1170/460 3554/1322/472 3563/1331/481 -f 3457/1188/462 3556/1324/474 3564/1332/482 -f 3452/1183/464 3557/1325/475 3565/1333/483 -f 3564/1332/482 3570/1359/488 3566/1334/484 -f 3565/1333/483 3572/1354/490 3567/1335/485 -f 3563/1331/481 3554/1322/472 3568/1336/486 -f 3556/1324/474 3575/1361/493 3570/1338/488 -f 3565/1333/483 3557/1325/475 3571/1339/489 -f 3558/1326/476 3576/1367/494 3568/1341/486 -f 3559/1327/477 3577/1350/495 3573/1342/491 -f 3556/1324/474 3560/1328/478 3574/1343/492 -f 3561/1329/479 3566/1357/484 3571/1345/489 -f 3555/1346/473 3573/1369/491 3576/1347/494 -f 3562/1330/480 3567/1352/485 3577/1348/495 -f 3563/1331/481 3569/1364/487 3574/1349/492 -f 3580/1383/461 3584/1387/461 3581/1384/508 -f 3583/1386/509 3590/1393/509 3584/1387/461 -f 3585/1388/465 3589/1392/465 3586/1389/510 -f 3588/1391/511 3591/1394/511 3589/1392/465 +f 3606/2527/458 3451/2355/459 3604/2525/459 +f 3599/2520/460 3445/2349/461 3600/2521/461 +f 3617/2540/462 3439/2343/463 3615/2538/463 +f 3608/2529/464 3430/2333/458 3606/2527/458 +f 3611/2533/465 3436/2340/466 3609/2534/466 +f 3602/2523/467 3449/2353/460 3599/2520/460 +f 3619/2542/468 3441/2345/462 3617/2540/462 +f 3609/2531/466 3433/2336/464 3608/2529/464 +f 3613/2536/469 3435/2338/465 3611/2533/465 +f 3604/2525/459 3452/2356/467 3602/2523/467 +f 3600/2521/461 3443/2347/468 3619/2542/468 +f 3615/2538/463 3437/2341/469 3613/2536/469 +f 3450/2354/467 3475/2380/460 3447/2351/460 +f 3446/2350/468 3469/2374/462 3444/2348/462 +f 3434/2337/466 3459/2363/464 3431/2334/464 +f 3440/2344/469 3463/2367/465 3438/2342/465 +f 3453/2357/459 3456/2360/467 3450/2354/467 +f 3448/2352/461 3471/2376/468 3446/2350/468 +f 3442/2346/463 3467/2372/469 3440/2344/469 +f 3432/2335/458 3454/2358/459 3453/2357/459 +f 3447/2351/460 3476/2381/461 3448/2352/461 +f 3444/2348/462 3470/2375/463 3442/2346/463 +f 3431/2334/464 3457/2361/458 3432/2335/458 +f 3438/2342/465 3461/2369/466 3434/2339/466 +f 3462/2366/464 3529/2436/458 3460/2364/458 +f 3466/2371/465 3536/2444/466 3464/2368/466 +f 3455/2359/467 3549/2457/460 3477/2382/460 +f 3474/2379/468 3541/2449/462 3472/2377/462 +f 3464/2545/466 3533/2440/464 3462/2366/464 +f 3465/2370/469 3535/2442/465 3466/2371/465 +f 3458/2362/459 3528/2435/467 3455/2359/467 +f 3473/2378/461 3543/2451/468 3474/2379/468 +f 3468/2373/463 3537/2445/469 3465/2370/469 +f 3460/2364/458 3526/2433/459 3458/2362/459 +f 3477/2382/460 3545/2453/461 3473/2378/461 +f 3472/2377/462 3539/2447/463 3468/2373/463 +f 3527/2434/467 3499/2405/460 3547/2455/460 +f 3546/2454/468 3493/2399/462 3544/2452/462 +f 3534/2441/466 3483/2388/464 3531/2438/464 +f 3540/2448/469 3487/2392/465 3538/2446/465 +f 3530/2437/459 3480/2385/467 3527/2434/467 +f 3548/2456/461 3495/2401/468 3546/2454/468 +f 3542/2450/463 3491/2397/469 3540/2448/469 +f 3532/2439/458 3478/2383/459 3530/2437/459 +f 3547/2455/460 3500/2406/461 3548/2456/461 +f 3544/2452/462 3494/2400/463 3542/2450/463 +f 3531/2438/464 3481/2386/458 3532/2439/458 +f 3538/2446/465 3485/2394/466 3534/2443/466 +f 3486/2391/464 3553/2461/458 3484/2389/458 +f 3490/2396/465 3560/2469/466 3488/2393/466 +f 3479/2384/467 3573/2482/460 3501/2407/460 +f 3498/2404/468 3565/2474/462 3496/2402/462 +f 3488/2546/466 3557/2465/464 3486/2391/464 +f 3489/2395/469 3559/2467/465 3490/2396/465 +f 3482/2387/459 3552/2460/467 3479/2384/467 +f 3497/2403/461 3567/2476/468 3498/2404/468 +f 3492/2398/463 3561/2470/469 3489/2395/469 +f 3484/2389/458 3550/2458/459 3482/2387/459 +f 3501/2407/460 3569/2478/461 3497/2403/461 +f 3496/2402/462 3563/2472/463 3492/2398/463 +f 3551/2459/467 3523/2430/460 3571/2480/460 +f 3570/2479/468 3517/2424/462 3568/2477/462 +f 3558/2466/466 3507/2413/464 3555/2463/464 +f 3564/2473/469 3511/2417/465 3562/2471/465 +f 3554/2462/459 3504/2410/467 3551/2459/467 +f 3572/2481/461 3519/2426/468 3570/2479/468 +f 3566/2475/463 3515/2422/469 3564/2473/469 +f 3556/2464/458 3502/2408/459 3554/2462/459 +f 3571/2480/460 3524/2431/461 3572/2481/461 +f 3568/2477/462 3518/2425/463 3566/2475/463 +f 3555/2463/464 3505/2411/458 3556/2464/458 +f 3562/2471/465 3509/2419/466 3558/2468/466 +f 3510/2416/464 3622/2566/470 3508/2414/458 +f 3514/2421/465 3623/2567/471 3512/2418/466 +f 3503/2409/467 3624/2568/472 3525/2432/460 +f 3522/2429/468 3625/2569/473 3520/2427/462 +f 3512/2547/466 3626/2570/474 3510/2416/464 +f 3513/2420/469 3627/2571/475 3514/2421/465 +f 3506/2412/459 3628/2572/476 3503/2409/467 +f 3521/2428/461 3629/2573/477 3522/2429/468 +f 3516/2423/463 3630/2574/478 3513/2420/469 +f 3508/2414/458 3631/2575/479 3506/2412/459 +f 3525/2432/460 3632/2576/480 3521/2428/461 +f 3520/2427/462 3633/2577/481 3516/2423/463 +f 3632/2576/480 3634/2578/482 3629/2573/477 +f 3633/2577/481 3635/2579/483 3630/2574/478 +f 3631/2575/479 3636/2580/484 3637/2581/485 +f 3624/2568/472 3638/2582/486 3632/2576/480 +f 3633/2577/481 3639/2583/487 3640/2584/488 +f 3626/2570/474 3636/2585/484 3622/2566/470 +f 3627/2571/475 3641/2586/489 3623/2567/471 +f 3624/2568/472 3642/2587/490 3643/2588/491 +f 3629/2573/477 3639/2589/487 3625/2569/473 +f 3623/2590/471 3644/2591/492 3626/2570/474 +f 3630/2574/478 3645/2592/493 3627/2571/475 +f 3631/2575/479 3642/2593/490 3628/2572/476 +f 3641/2586/489 3645/2594/493 3646/2595/444 +f 3645/2592/493 3635/2596/483 3646/2597/444 +f 3635/2579/483 3640/2598/488 3646/2599/444 +f 3640/2584/488 3639/2583/487 3646/2600/444 +f 3639/2589/487 3634/2601/482 3646/2602/444 +f 3634/2578/482 3638/2603/486 3646/2604/444 +f 3638/2582/486 3643/2605/491 3646/2606/444 +f 3643/2588/491 3642/2587/490 3646/2607/444 +f 3642/2593/490 3637/2608/485 3646/2609/444 +f 3637/2581/485 3636/2580/484 3646/2610/444 +f 3636/2585/484 3644/2611/492 3646/2612/444 +f 3644/2591/492 3641/2613/489 3646/2614/444 +f 3612/2560/494 3610/2532/495 3647/2615/445 +f 3610/2559/495 3607/2530/496 3647/2616/445 +f 3607/2528/496 3621/2558/497 3647/2617/445 +f 3621/2557/497 3605/2526/498 3647/2618/445 +f 3605/2556/498 3603/2524/499 3647/2619/445 +f 3603/2555/499 3601/2522/500 3647/2620/445 +f 3601/2554/500 3598/2519/501 3647/2621/445 +f 3598/2565/501 3620/2543/502 3647/2622/445 +f 3620/2564/502 3618/2541/503 3647/2623/445 +f 3618/2563/503 3616/2539/504 3647/2624/445 +f 3616/2562/504 3614/2537/505 3647/2625/445 +f 3614/2561/505 3612/2535/494 3647/2626/445 +f 3648/2627/459 3649/2628/506 3650/2629/506 +f 3651/2630/507 3652/2631/459 3648/2627/459 +f 3653/2632/463 3654/2633/508 3655/2634/508 +f 3656/2635/509 3657/2636/463 3653/2632/463 +f 3606/2527/458 3430/2333/458 3451/2355/459 +f 3599/2520/460 3449/2353/460 3445/2349/461 +f 3617/2540/462 3441/2345/462 3439/2343/463 +f 3608/2529/464 3433/2336/464 3430/2333/458 +f 3611/2533/465 3435/2338/465 3436/2340/466 +f 3602/2523/467 3452/2356/467 3449/2353/460 +f 3619/2542/468 3443/2347/468 3441/2345/462 +f 3609/2531/466 3436/2544/466 3433/2336/464 +f 3613/2536/469 3437/2341/469 3435/2338/465 +f 3604/2525/459 3451/2355/459 3452/2356/467 +f 3600/2521/461 3445/2349/461 3443/2347/468 +f 3615/2538/463 3439/2343/463 3437/2341/469 +f 3450/2354/467 3456/2360/467 3475/2380/460 +f 3446/2350/468 3471/2376/468 3469/2374/462 +f 3434/2337/466 3461/2365/466 3459/2363/464 +f 3440/2344/469 3467/2372/469 3463/2367/465 +f 3453/2357/459 3454/2358/459 3456/2360/467 +f 3448/2352/461 3476/2381/461 3471/2376/468 +f 3442/2346/463 3470/2375/463 3467/2372/469 +f 3432/2335/458 3457/2361/458 3454/2358/459 +f 3447/2351/460 3475/2380/460 3476/2381/461 +f 3444/2348/462 3469/2374/462 3470/2375/463 +f 3431/2334/464 3459/2363/464 3457/2361/458 +f 3438/2342/465 3463/2367/465 3461/2369/466 +f 3462/2366/464 3533/2440/464 3529/2436/458 +f 3466/2371/465 3535/2442/465 3536/2444/466 +f 3455/2359/467 3528/2435/467 3549/2457/460 +f 3474/2379/468 3543/2451/468 3541/2449/462 +f 3464/2545/466 3536/2548/466 3533/2440/464 +f 3465/2370/469 3537/2445/469 3535/2442/465 +f 3458/2362/459 3526/2433/459 3528/2435/467 +f 3473/2378/461 3545/2453/461 3543/2451/468 +f 3468/2373/463 3539/2447/463 3537/2445/469 +f 3460/2364/458 3529/2436/458 3526/2433/459 +f 3477/2382/460 3549/2457/460 3545/2453/461 +f 3472/2377/462 3541/2449/462 3539/2447/463 +f 3527/2434/467 3480/2385/467 3499/2405/460 +f 3546/2454/468 3495/2401/468 3493/2399/462 +f 3534/2441/466 3485/2390/466 3483/2388/464 +f 3540/2448/469 3491/2397/469 3487/2392/465 +f 3530/2437/459 3478/2383/459 3480/2385/467 +f 3548/2456/461 3500/2406/461 3495/2401/468 +f 3542/2450/463 3494/2400/463 3491/2397/469 +f 3532/2439/458 3481/2386/458 3478/2383/459 +f 3547/2455/460 3499/2405/460 3500/2406/461 +f 3544/2452/462 3493/2399/462 3494/2400/463 +f 3531/2438/464 3483/2388/464 3481/2386/458 +f 3538/2446/465 3487/2392/465 3485/2394/466 +f 3486/2391/464 3557/2465/464 3553/2461/458 +f 3490/2396/465 3559/2467/465 3560/2469/466 +f 3479/2384/467 3552/2460/467 3573/2482/460 +f 3498/2404/468 3567/2476/468 3565/2474/462 +f 3488/2546/466 3560/2549/466 3557/2465/464 +f 3489/2395/469 3561/2470/469 3559/2467/465 +f 3482/2387/459 3550/2458/459 3552/2460/467 +f 3497/2403/461 3569/2478/461 3567/2476/468 +f 3492/2398/463 3563/2472/463 3561/2470/469 +f 3484/2389/458 3553/2461/458 3550/2458/459 +f 3501/2407/460 3573/2482/460 3569/2478/461 +f 3496/2402/462 3565/2474/462 3563/2472/463 +f 3551/2459/467 3504/2410/467 3523/2430/460 +f 3570/2479/468 3519/2426/468 3517/2424/462 +f 3558/2466/466 3509/2415/466 3507/2413/464 +f 3564/2473/469 3515/2422/469 3511/2417/465 +f 3554/2462/459 3502/2408/459 3504/2410/467 +f 3572/2481/461 3524/2431/461 3519/2426/468 +f 3566/2475/463 3518/2425/463 3515/2422/469 +f 3556/2464/458 3505/2411/458 3502/2408/459 +f 3571/2480/460 3523/2430/460 3524/2431/461 +f 3568/2477/462 3517/2424/462 3518/2425/463 +f 3555/2463/464 3507/2413/464 3505/2411/458 +f 3562/2471/465 3511/2417/465 3509/2419/466 +f 3510/2416/464 3626/2570/474 3622/2566/470 +f 3514/2421/465 3627/2571/475 3623/2567/471 +f 3503/2409/467 3628/2572/476 3624/2568/472 +f 3522/2429/468 3629/2573/477 3625/2569/473 +f 3512/2547/466 3623/2590/471 3626/2570/474 +f 3513/2420/469 3630/2574/478 3627/2571/475 +f 3506/2412/459 3631/2575/479 3628/2572/476 +f 3521/2428/461 3632/2576/480 3629/2573/477 +f 3516/2423/463 3633/2577/481 3630/2574/478 +f 3508/2414/458 3622/2566/470 3631/2575/479 +f 3525/2432/460 3624/2568/472 3632/2576/480 +f 3520/2427/462 3625/2569/473 3633/2577/481 +f 3632/2576/480 3638/2603/486 3634/2578/482 +f 3633/2577/481 3640/2598/488 3635/2579/483 +f 3631/2575/479 3622/2566/470 3636/2580/484 +f 3624/2568/472 3643/2605/491 3638/2582/486 +f 3633/2577/481 3625/2569/473 3639/2583/487 +f 3626/2570/474 3644/2611/492 3636/2585/484 +f 3627/2571/475 3645/2594/493 3641/2586/489 +f 3624/2568/472 3628/2572/476 3642/2587/490 +f 3629/2573/477 3634/2601/482 3639/2589/487 +f 3623/2590/471 3641/2613/489 3644/2591/492 +f 3630/2574/478 3635/2596/483 3645/2592/493 +f 3631/2575/479 3637/2608/485 3642/2593/490 +f 3648/2627/459 3652/2631/459 3649/2628/506 +f 3651/2630/507 3658/2637/507 3652/2631/459 +f 3653/2632/463 3657/2636/463 3654/2633/508 +f 3656/2635/509 3659/2638/509 3657/2636/463 o ABM_Missile v -0.176777 3.500000 -0.176777 v 0.176777 3.500000 -0.176777 @@ -11431,765 +12751,765 @@ vn -0.8660 0.0000 -0.5000 vn 0.8660 -0.0000 -0.5000 vn 0.8660 -0.0000 0.5000 s off -f 3592/1395/512 3593/1396/512 3594/1397/512 -f 3595/1398/512 3596/1399/512 3597/1400/512 -f 3598/1401/512 3597/1402/512 3599/1403/512 -f 3598/1401/512 3600/1404/512 3601/1405/512 -f 3601/1405/512 3602/1406/512 3603/1407/512 -f 3604/1408/512 3602/1409/512 3605/1410/512 -f 3606/1411/512 3605/1412/512 3607/1413/512 -f 3608/1414/512 3607/1415/512 3609/1416/512 -f 3608/1414/512 3610/1417/512 3611/1418/512 -f 3612/1419/512 3610/1420/512 3613/1421/512 -f 3614/1422/512 3613/1423/512 3615/1424/512 -f 3614/1422/512 3616/1425/512 3617/1426/512 -f 3617/1426/512 3618/1427/512 3619/1428/512 -f 3620/1429/512 3621/1430/512 3622/1431/512 -f 3623/1432/512 3618/1433/512 3624/1434/512 -f 3622/1431/512 3596/1435/512 3625/1436/512 -f 3623/1432/512 3626/1437/512 3620/1429/512 -f 3627/1438/512 3628/1439/512 3629/1440/512 -f 3630/1441/513 3631/1442/513 3632/1443/513 -f 3633/1444/514 3634/1445/514 3631/1442/514 -f 3635/1446/515 3633/1447/515 3630/1448/515 -f 3634/1445/516 3632/1449/516 3631/1450/516 -f 3636/1451/512 3637/1452/512 3638/1453/512 -f 3639/1454/517 3640/1455/517 3641/1456/517 -f 3640/1457/518 3636/1451/518 3638/1453/518 -f 3637/1458/519 3640/1457/519 3638/1453/519 -f 3642/1459/520 3643/1460/520 3644/1461/520 -f 3645/1462/512 3646/1463/512 3647/1464/512 -f 3648/1465/512 3649/1466/512 3650/1467/512 -f 3651/1468/512 3650/1469/512 3652/1470/512 -f 3651/1468/512 3653/1471/512 3654/1472/512 -f 3654/1472/512 3655/1473/512 3656/1474/512 -f 3657/1475/512 3655/1476/512 3658/1477/512 -f 3659/1478/512 3658/1479/512 3660/1480/512 -f 3661/1481/512 3660/1482/512 3662/1483/512 -f 3661/1481/512 3663/1484/512 3664/1485/512 -f 3665/1486/512 3663/1487/512 3666/1488/512 -f 3667/1489/512 3666/1490/512 3668/1491/512 -f 3667/1489/512 3669/1492/512 3670/1493/512 -f 3670/1493/512 3671/1494/512 3672/1495/512 -f 3673/1496/512 3674/1497/512 3675/1498/512 -f 3676/1499/512 3671/1500/512 3677/1501/512 -f 3675/1498/512 3649/1502/512 3678/1503/512 -f 3676/1499/512 3679/1504/512 3673/1496/512 -f 3680/1505/512 3681/1506/512 3682/1507/512 -f 3683/1508/512 3684/1509/512 3685/1510/512 -f 3686/1511/521 3687/1512/521 3688/1513/521 -f 3687/1514/522 3683/1508/522 3685/1510/522 -f 3684/1515/523 3687/1514/523 3685/1510/523 -f 3689/1516/512 3690/1517/512 3691/1518/512 -f 3692/1519/512 3691/1520/512 3693/1521/512 -f 3692/1519/512 3694/1522/512 3695/1523/512 -f 3695/1523/512 3696/1524/512 3697/1525/512 -f 3698/1526/512 3696/1527/512 3699/1528/512 -f 3700/1529/512 3699/1530/512 3701/1531/512 -f 3702/1532/512 3701/1533/512 3703/1534/512 -f 3702/1532/512 3704/1535/512 3705/1536/512 -f 3706/1537/512 3704/1538/512 3707/1539/512 -f 3706/1537/512 3708/1540/512 3709/1541/512 -f 3709/1541/512 3710/1542/512 3711/1543/512 -f 3711/1543/512 3712/1544/512 3713/1545/512 -f 3714/1546/512 3715/1547/512 3716/1548/512 -f 3717/1549/512 3712/1550/512 3718/1551/512 -f 3716/1548/512 3690/1552/512 3719/1553/512 -f 3717/1549/512 3720/1554/512 3714/1546/512 -f 3721/1555/512 3722/1556/512 3723/1557/512 -f 3724/1558/512 3725/1559/512 3726/1560/512 -f 3727/1561/524 3728/1562/524 3729/1563/524 -f 3728/1564/525 3724/1558/525 3726/1560/525 -f 3725/1565/526 3728/1564/526 3726/1560/526 -f 3730/1566/512 3731/1567/512 3732/1568/512 -f 3733/1569/512 3732/1570/512 3734/1571/512 -f 3733/1569/512 3735/1572/512 3736/1573/512 -f 3736/1573/512 3737/1574/512 3738/1575/512 -f 3739/1576/512 3737/1577/512 3740/1578/512 -f 3741/1579/512 3740/1580/512 3742/1581/512 -f 3743/1582/512 3742/1583/512 3744/1584/512 -f 3743/1582/512 3745/1585/512 3746/1586/512 -f 3747/1587/512 3745/1588/512 3748/1589/512 -f 3749/1590/512 3748/1591/512 3750/1592/512 -f 3749/1590/512 3751/1593/512 3752/1594/512 -f 3752/1594/512 3753/1595/512 3754/1596/512 -f 3755/1597/512 3756/1598/512 3757/1599/512 -f 3758/1600/512 3753/1601/512 3759/1602/512 -f 3757/1599/512 3731/1603/512 3760/1604/512 -f 3755/1597/512 3759/1605/512 3761/1606/512 -f 3762/1607/512 3763/1608/512 3764/1609/512 -f 3765/1610/512 3766/1611/512 3767/1612/512 -f 3768/1613/527 3769/1614/527 3770/1615/527 -f 3769/1616/528 3765/1610/528 3767/1612/528 -f 3766/1617/529 3769/1616/529 3767/1612/529 -f 3771/1618/530 3772/1619/530 3773/1620/530 -f 3774/1621/531 3775/1622/531 3772/1619/531 -f 3776/1623/532 3774/1624/532 3771/1625/532 -f 3775/1622/533 3773/1626/533 3772/1627/533 -f 3777/1628/520 3778/1629/520 3779/1630/520 -f 3780/1631/512 3781/1632/512 3782/1633/512 -f 3783/1634/534 3784/1635/534 3785/1636/534 -f 3786/1637/535 3787/1638/535 3784/1635/535 -f 3788/1639/536 3786/1640/536 3783/1641/536 -f 3787/1638/537 3785/1642/537 3784/1643/537 -f 3789/1644/520 3790/1645/520 3791/1646/520 -f 3792/1647/512 3793/1648/512 3794/1649/512 -f 3795/1650/538 3796/1651/538 3797/1652/538 -f 3796/1651/539 3798/1653/539 3797/1652/539 -f 3799/1654/540 3796/1655/540 3800/1656/540 -f 3798/1653/541 3795/1657/541 3797/1658/541 -f 3801/1659/520 3802/1660/520 3803/1661/520 -f 3804/1662/512 3805/1663/512 3806/1664/512 -f 3592/1395/512 3807/1665/512 3808/1666/512 -f 3808/1666/512 3809/1667/512 3592/1395/512 -f 3809/1667/512 3593/1396/512 3592/1395/512 -f 3593/1396/512 3810/1668/512 3811/1669/512 -f 3811/1669/512 3812/1670/512 3594/1397/512 -f 3594/1397/512 3813/1671/512 3814/1672/512 -f 3814/1672/512 3815/1673/512 3816/1674/512 -f 3816/1674/512 3817/1675/512 3592/1395/512 -f 3817/1675/512 3818/1676/512 3592/1395/512 -f 3818/1676/512 3819/1677/512 3592/1395/512 -f 3593/1396/512 3811/1669/512 3594/1397/512 -f 3594/1397/512 3814/1672/512 3592/1395/512 -f 3814/1672/512 3816/1674/512 3592/1395/512 -f 3595/1398/512 3625/1678/512 3596/1399/512 -f 3598/1401/512 3595/1398/512 3597/1402/512 -f 3598/1401/512 3599/1679/512 3600/1404/512 -f 3601/1405/512 3600/1680/512 3602/1406/512 -f 3604/1408/512 3603/1407/512 3602/1409/512 -f 3606/1411/512 3604/1408/512 3605/1412/512 -f 3608/1414/512 3606/1411/512 3607/1415/512 -f 3608/1414/512 3609/1681/512 3610/1417/512 -f 3612/1419/512 3611/1418/512 3610/1420/512 -f 3614/1422/512 3612/1419/512 3613/1423/512 -f 3614/1422/512 3615/1682/512 3616/1425/512 -f 3617/1426/512 3616/1683/512 3618/1427/512 -f 3620/1429/512 3626/1684/512 3621/1430/512 -f 3623/1432/512 3619/1428/512 3618/1433/512 -f 3622/1431/512 3621/1685/512 3596/1435/512 -f 3623/1432/512 3624/1686/512 3626/1437/512 -f 3629/1440/512 3820/1687/512 3821/1688/512 -f 3821/1688/512 3822/1689/512 3629/1440/512 -f 3822/1689/512 3823/1690/512 3629/1440/512 -f 3823/1690/512 3824/1691/512 3825/1692/512 -f 3825/1692/512 3826/1693/512 3627/1438/512 -f 3627/1438/512 3827/1694/512 3628/1439/512 -f 3827/1694/512 3828/1695/512 3628/1439/512 -f 3828/1695/512 3829/1696/512 3628/1439/512 -f 3628/1439/512 3830/1697/512 3831/1698/512 -f 3831/1698/512 3832/1699/512 3629/1440/512 -f 3823/1690/512 3825/1692/512 3629/1440/512 -f 3825/1692/512 3627/1438/512 3629/1440/512 -f 3628/1439/512 3831/1698/512 3629/1440/512 -f 3630/1441/513 3633/1444/513 3631/1442/513 -f 3633/1444/514 3635/1446/514 3634/1445/514 -f 3640/1457/518 3639/1454/518 3636/1451/518 -f 3637/1458/519 3641/1700/519 3640/1457/519 -f 3644/1461/520 3833/1701/520 3642/1459/520 -f 3642/1459/520 3834/1702/520 3643/1460/520 -f 3643/1460/520 3835/1703/520 3644/1461/520 -f 3647/1464/512 3836/1704/512 3837/1705/512 -f 3837/1705/512 3838/1706/512 3647/1464/512 -f 3838/1706/512 3645/1462/512 3647/1464/512 -f 3648/1465/512 3678/1707/512 3649/1466/512 -f 3651/1468/512 3648/1465/512 3650/1469/512 -f 3651/1468/512 3652/1708/512 3653/1471/512 -f 3654/1472/512 3653/1709/512 3655/1473/512 -f 3657/1475/512 3656/1474/512 3655/1476/512 -f 3659/1478/512 3657/1475/512 3658/1479/512 -f 3661/1481/512 3659/1478/512 3660/1482/512 -f 3661/1481/512 3662/1710/512 3663/1484/512 -f 3665/1486/512 3664/1485/512 3663/1487/512 -f 3667/1489/512 3665/1486/512 3666/1490/512 -f 3667/1489/512 3668/1711/512 3669/1492/512 -f 3670/1493/512 3669/1712/512 3671/1494/512 -f 3673/1496/512 3679/1713/512 3674/1497/512 -f 3676/1499/512 3672/1495/512 3671/1500/512 -f 3675/1498/512 3674/1714/512 3649/1502/512 -f 3676/1499/512 3677/1715/512 3679/1504/512 -f 3682/1507/512 3839/1716/512 3840/1717/512 -f 3840/1717/512 3841/1718/512 3842/1719/512 -f 3842/1719/512 3843/1720/512 3844/1721/512 -f 3844/1721/512 3845/1722/512 3846/1723/512 -f 3846/1723/512 3847/1724/512 3848/1725/512 -f 3848/1725/512 3849/1726/512 3680/1505/512 -f 3680/1505/512 3850/1727/512 3681/1506/512 -f 3681/1506/512 3851/1728/512 3682/1507/512 -f 3682/1507/512 3840/1717/512 3846/1723/512 -f 3840/1717/512 3842/1719/512 3846/1723/512 -f 3842/1719/512 3844/1721/512 3846/1723/512 -f 3846/1723/512 3848/1725/512 3682/1507/512 -f 3848/1725/512 3680/1505/512 3682/1507/512 -f 3687/1514/522 3686/1511/522 3683/1508/522 -f 3684/1515/523 3688/1729/523 3687/1514/523 -f 3689/1516/512 3719/1730/512 3690/1517/512 -f 3692/1519/512 3689/1516/512 3691/1520/512 -f 3692/1519/512 3693/1731/512 3694/1522/512 -f 3695/1523/512 3694/1732/512 3696/1524/512 -f 3698/1526/512 3697/1525/512 3696/1527/512 -f 3700/1529/512 3698/1526/512 3699/1530/512 -f 3702/1532/512 3700/1529/512 3701/1533/512 -f 3702/1532/512 3703/1733/512 3704/1535/512 -f 3706/1537/512 3705/1536/512 3704/1538/512 -f 3706/1537/512 3707/1734/512 3708/1540/512 -f 3709/1541/512 3708/1735/512 3710/1542/512 -f 3711/1543/512 3710/1736/512 3712/1544/512 -f 3714/1546/512 3720/1737/512 3715/1547/512 -f 3717/1549/512 3713/1545/512 3712/1550/512 -f 3716/1548/512 3715/1738/512 3690/1552/512 -f 3717/1549/512 3718/1739/512 3720/1554/512 -f 3723/1557/512 3852/1740/512 3853/1741/512 -f 3853/1741/512 3854/1742/512 3855/1743/512 -f 3855/1743/512 3856/1744/512 3857/1745/512 -f 3857/1745/512 3858/1746/512 3721/1555/512 -f 3721/1555/512 3859/1747/512 3722/1556/512 -f 3859/1747/512 3860/1748/512 3722/1556/512 -f 3860/1748/512 3861/1749/512 3722/1556/512 -f 3722/1556/512 3862/1750/512 3863/1751/512 -f 3863/1751/512 3864/1752/512 3723/1557/512 -f 3723/1557/512 3853/1741/512 3855/1743/512 -f 3855/1743/512 3857/1745/512 3723/1557/512 -f 3857/1745/512 3721/1555/512 3723/1557/512 -f 3722/1556/512 3863/1751/512 3723/1557/512 -f 3728/1564/525 3727/1561/525 3724/1558/525 -f 3725/1565/526 3729/1753/526 3728/1564/526 -f 3730/1566/512 3760/1754/512 3731/1567/512 -f 3733/1569/512 3730/1566/512 3732/1570/512 -f 3733/1569/512 3734/1755/512 3735/1572/512 -f 3736/1573/512 3735/1756/512 3737/1574/512 -f 3739/1576/512 3738/1575/512 3737/1577/512 -f 3741/1579/512 3739/1576/512 3740/1580/512 -f 3743/1582/512 3741/1579/512 3742/1583/512 -f 3743/1582/512 3744/1757/512 3745/1585/512 -f 3747/1587/512 3746/1586/512 3745/1588/512 -f 3749/1590/512 3747/1587/512 3748/1591/512 -f 3749/1590/512 3750/1758/512 3751/1593/512 -f 3752/1594/512 3751/1759/512 3753/1595/512 -f 3755/1597/512 3761/1760/512 3756/1598/512 -f 3758/1600/512 3754/1596/512 3753/1601/512 -f 3757/1599/512 3756/1761/512 3731/1603/512 -f 3755/1597/512 3758/1600/512 3759/1605/512 -f 3764/1609/512 3865/1762/512 3866/1763/512 -f 3866/1763/512 3867/1764/512 3764/1609/512 -f 3867/1764/512 3868/1765/512 3764/1609/512 -f 3868/1765/512 3869/1766/512 3870/1767/512 -f 3870/1767/512 3871/1768/512 3762/1607/512 -f 3762/1607/512 3872/1769/512 3763/1608/512 -f 3872/1769/512 3873/1770/512 3763/1608/512 -f 3873/1770/512 3874/1771/512 3763/1608/512 -f 3763/1608/512 3875/1772/512 3876/1773/512 -f 3876/1773/512 3877/1774/512 3764/1609/512 -f 3868/1765/512 3870/1767/512 3764/1609/512 -f 3870/1767/512 3762/1607/512 3764/1609/512 -f 3763/1608/512 3876/1773/512 3764/1609/512 -f 3769/1616/528 3768/1613/528 3765/1610/528 -f 3766/1617/529 3770/1775/529 3769/1616/529 -f 3771/1618/530 3774/1621/530 3772/1619/530 -f 3774/1621/531 3776/1623/531 3775/1622/531 -f 3778/1629/520 3878/1776/520 3779/1630/520 -f 3779/1630/520 3879/1777/520 3880/1778/520 -f 3880/1778/520 3777/1628/520 3779/1630/520 -f 3782/1633/512 3881/1779/512 3882/1780/512 -f 3882/1780/512 3883/1781/512 3782/1633/512 -f 3883/1781/512 3780/1631/512 3782/1633/512 -f 3783/1634/534 3786/1637/534 3784/1635/534 -f 3786/1637/535 3788/1639/535 3787/1638/535 -f 3791/1646/520 3884/1782/520 3789/1644/520 -f 3789/1644/520 3885/1783/520 3790/1645/520 -f 3790/1645/520 3886/1784/520 3791/1646/520 -f 3794/1649/512 3887/1785/512 3888/1786/512 -f 3888/1786/512 3889/1787/512 3794/1649/512 -f 3889/1787/512 3792/1647/512 3794/1649/512 -f 3795/1650/538 3800/1788/538 3796/1651/538 -f 3796/1651/539 3799/1654/539 3798/1653/539 -f 3803/1661/520 3890/1789/520 3801/1659/520 -f 3801/1659/520 3891/1790/520 3802/1660/520 -f 3802/1660/520 3892/1791/520 3803/1661/520 -f 3806/1664/512 3893/1792/512 3894/1793/512 -f 3894/1793/512 3895/1794/512 3806/1664/512 -f 3895/1794/512 3804/1662/512 3806/1664/512 +f 3660/2639/510 3661/2640/510 3662/2641/510 +f 3663/2642/510 3664/2643/510 3665/2644/510 +f 3666/2645/510 3665/2646/510 3667/2647/510 +f 3666/2645/510 3668/2648/510 3669/2649/510 +f 3669/2649/510 3670/2650/510 3671/2651/510 +f 3672/2652/510 3670/2653/510 3673/2654/510 +f 3674/2655/510 3673/2656/510 3675/2657/510 +f 3676/2658/510 3675/2659/510 3677/2660/510 +f 3676/2658/510 3678/2661/510 3679/2662/510 +f 3680/2663/510 3678/2664/510 3681/2665/510 +f 3682/2666/510 3681/2667/510 3683/2668/510 +f 3682/2666/510 3684/2669/510 3685/2670/510 +f 3685/2670/510 3686/2671/510 3687/2672/510 +f 3688/2673/510 3689/2674/510 3690/2675/510 +f 3691/2676/510 3686/2677/510 3692/2678/510 +f 3690/2675/510 3664/2679/510 3693/2680/510 +f 3691/2676/510 3694/2681/510 3688/2673/510 +f 3695/2682/510 3696/2683/510 3697/2684/510 +f 3698/2685/511 3699/2686/511 3700/2687/511 +f 3701/2688/512 3702/2689/512 3699/2686/512 +f 3703/2690/513 3701/2691/513 3698/2692/513 +f 3702/2689/514 3700/2693/514 3699/2694/514 +f 3704/2695/510 3705/2696/510 3706/2697/510 +f 3707/2698/515 3708/2699/515 3709/2700/515 +f 3708/2701/516 3704/2695/516 3706/2697/516 +f 3705/2702/517 3708/2701/517 3706/2697/517 +f 3710/2703/518 3711/2704/518 3712/2705/518 +f 3713/2706/510 3714/2707/510 3715/2708/510 +f 3716/2709/510 3717/2710/510 3718/2711/510 +f 3719/2712/510 3718/2713/510 3720/2714/510 +f 3719/2712/510 3721/2715/510 3722/2716/510 +f 3722/2716/510 3723/2717/510 3724/2718/510 +f 3725/2719/510 3723/2720/510 3726/2721/510 +f 3727/2722/510 3726/2723/510 3728/2724/510 +f 3729/2725/510 3728/2726/510 3730/2727/510 +f 3729/2725/510 3731/2728/510 3732/2729/510 +f 3733/2730/510 3731/2731/510 3734/2732/510 +f 3735/2733/510 3734/2734/510 3736/2735/510 +f 3735/2733/510 3737/2736/510 3738/2737/510 +f 3738/2737/510 3739/2738/510 3740/2739/510 +f 3741/2740/510 3742/2741/510 3743/2742/510 +f 3744/2743/510 3739/2744/510 3745/2745/510 +f 3743/2742/510 3717/2746/510 3746/2747/510 +f 3744/2743/510 3747/2748/510 3741/2740/510 +f 3748/2749/510 3749/2750/510 3750/2751/510 +f 3751/2752/510 3752/2753/510 3753/2754/510 +f 3754/2755/519 3755/2756/519 3756/2757/519 +f 3755/2758/520 3751/2752/520 3753/2754/520 +f 3752/2759/521 3755/2758/521 3753/2754/521 +f 3757/2760/510 3758/2761/510 3759/2762/510 +f 3760/2763/510 3759/2764/510 3761/2765/510 +f 3760/2763/510 3762/2766/510 3763/2767/510 +f 3763/2767/510 3764/2768/510 3765/2769/510 +f 3766/2770/510 3764/2771/510 3767/2772/510 +f 3768/2773/510 3767/2774/510 3769/2775/510 +f 3770/2776/510 3769/2777/510 3771/2778/510 +f 3770/2776/510 3772/2779/510 3773/2780/510 +f 3774/2781/510 3772/2782/510 3775/2783/510 +f 3774/2781/510 3776/2784/510 3777/2785/510 +f 3777/2785/510 3778/2786/510 3779/2787/510 +f 3779/2787/510 3780/2788/510 3781/2789/510 +f 3782/2790/510 3783/2791/510 3784/2792/510 +f 3785/2793/510 3780/2794/510 3786/2795/510 +f 3784/2792/510 3758/2796/510 3787/2797/510 +f 3785/2793/510 3788/2798/510 3782/2790/510 +f 3789/2799/510 3790/2800/510 3791/2801/510 +f 3792/2802/510 3793/2803/510 3794/2804/510 +f 3795/2805/522 3796/2806/522 3797/2807/522 +f 3796/2808/523 3792/2802/523 3794/2804/523 +f 3793/2809/524 3796/2808/524 3794/2804/524 +f 3798/2810/510 3799/2811/510 3800/2812/510 +f 3801/2813/510 3800/2814/510 3802/2815/510 +f 3801/2813/510 3803/2816/510 3804/2817/510 +f 3804/2817/510 3805/2818/510 3806/2819/510 +f 3807/2820/510 3805/2821/510 3808/2822/510 +f 3809/2823/510 3808/2824/510 3810/2825/510 +f 3811/2826/510 3810/2827/510 3812/2828/510 +f 3811/2826/510 3813/2829/510 3814/2830/510 +f 3815/2831/510 3813/2832/510 3816/2833/510 +f 3817/2834/510 3816/2835/510 3818/2836/510 +f 3817/2834/510 3819/2837/510 3820/2838/510 +f 3820/2838/510 3821/2839/510 3822/2840/510 +f 3823/2841/510 3824/2842/510 3825/2843/510 +f 3826/2844/510 3821/2845/510 3827/2846/510 +f 3825/2843/510 3799/2847/510 3828/2848/510 +f 3823/2841/510 3827/2849/510 3829/2850/510 +f 3830/2851/510 3831/2852/510 3832/2853/510 +f 3833/2854/510 3834/2855/510 3835/2856/510 +f 3836/2857/525 3837/2858/525 3838/2859/525 +f 3837/2860/526 3833/2854/526 3835/2856/526 +f 3834/2861/527 3837/2860/527 3835/2856/527 +f 3839/2862/528 3840/2863/528 3841/2864/528 +f 3842/2865/529 3843/2866/529 3840/2863/529 +f 3844/2867/530 3842/2868/530 3839/2869/530 +f 3843/2866/531 3841/2870/531 3840/2871/531 +f 3845/2872/518 3846/2873/518 3847/2874/518 +f 3848/2875/510 3849/2876/510 3850/2877/510 +f 3851/2878/532 3852/2879/532 3853/2880/532 +f 3854/2881/533 3855/2882/533 3852/2879/533 +f 3856/2883/534 3854/2884/534 3851/2885/534 +f 3855/2882/535 3853/2886/535 3852/2887/535 +f 3857/2888/518 3858/2889/518 3859/2890/518 +f 3860/2891/510 3861/2892/510 3862/2893/510 +f 3863/2894/536 3864/2895/536 3865/2896/536 +f 3864/2895/537 3866/2897/537 3865/2896/537 +f 3867/2898/538 3864/2899/538 3868/2900/538 +f 3866/2897/539 3863/2901/539 3865/2902/539 +f 3869/2903/518 3870/2904/518 3871/2905/518 +f 3872/2906/510 3873/2907/510 3874/2908/510 +f 3660/2639/510 3875/2909/510 3876/2910/510 +f 3876/2910/510 3877/2911/510 3660/2639/510 +f 3877/2911/510 3661/2640/510 3660/2639/510 +f 3661/2640/510 3878/2912/510 3879/2913/510 +f 3879/2913/510 3880/2914/510 3662/2641/510 +f 3662/2641/510 3881/2915/510 3882/2916/510 +f 3882/2916/510 3883/2917/510 3884/2918/510 +f 3884/2918/510 3885/2919/510 3660/2639/510 +f 3885/2919/510 3886/2920/510 3660/2639/510 +f 3886/2920/510 3887/2921/510 3660/2639/510 +f 3661/2640/510 3879/2913/510 3662/2641/510 +f 3662/2641/510 3882/2916/510 3660/2639/510 +f 3882/2916/510 3884/2918/510 3660/2639/510 +f 3663/2642/510 3693/2922/510 3664/2643/510 +f 3666/2645/510 3663/2642/510 3665/2646/510 +f 3666/2645/510 3667/2923/510 3668/2648/510 +f 3669/2649/510 3668/2924/510 3670/2650/510 +f 3672/2652/510 3671/2651/510 3670/2653/510 +f 3674/2655/510 3672/2652/510 3673/2656/510 +f 3676/2658/510 3674/2655/510 3675/2659/510 +f 3676/2658/510 3677/2925/510 3678/2661/510 +f 3680/2663/510 3679/2662/510 3678/2664/510 +f 3682/2666/510 3680/2663/510 3681/2667/510 +f 3682/2666/510 3683/2926/510 3684/2669/510 +f 3685/2670/510 3684/2927/510 3686/2671/510 +f 3688/2673/510 3694/2928/510 3689/2674/510 +f 3691/2676/510 3687/2672/510 3686/2677/510 +f 3690/2675/510 3689/2929/510 3664/2679/510 +f 3691/2676/510 3692/2930/510 3694/2681/510 +f 3697/2684/510 3888/2931/510 3889/2932/510 +f 3889/2932/510 3890/2933/510 3697/2684/510 +f 3890/2933/510 3891/2934/510 3697/2684/510 +f 3891/2934/510 3892/2935/510 3893/2936/510 +f 3893/2936/510 3894/2937/510 3695/2682/510 +f 3695/2682/510 3895/2938/510 3696/2683/510 +f 3895/2938/510 3896/2939/510 3696/2683/510 +f 3896/2939/510 3897/2940/510 3696/2683/510 +f 3696/2683/510 3898/2941/510 3899/2942/510 +f 3899/2942/510 3900/2943/510 3697/2684/510 +f 3891/2934/510 3893/2936/510 3697/2684/510 +f 3893/2936/510 3695/2682/510 3697/2684/510 +f 3696/2683/510 3899/2942/510 3697/2684/510 +f 3698/2685/511 3701/2688/511 3699/2686/511 +f 3701/2688/512 3703/2690/512 3702/2689/512 +f 3708/2701/516 3707/2698/516 3704/2695/516 +f 3705/2702/517 3709/2944/517 3708/2701/517 +f 3712/2705/518 3901/2945/518 3710/2703/518 +f 3710/2703/518 3902/2946/518 3711/2704/518 +f 3711/2704/518 3903/2947/518 3712/2705/518 +f 3715/2708/510 3904/2948/510 3905/2949/510 +f 3905/2949/510 3906/2950/510 3715/2708/510 +f 3906/2950/510 3713/2706/510 3715/2708/510 +f 3716/2709/510 3746/2951/510 3717/2710/510 +f 3719/2712/510 3716/2709/510 3718/2713/510 +f 3719/2712/510 3720/2952/510 3721/2715/510 +f 3722/2716/510 3721/2953/510 3723/2717/510 +f 3725/2719/510 3724/2718/510 3723/2720/510 +f 3727/2722/510 3725/2719/510 3726/2723/510 +f 3729/2725/510 3727/2722/510 3728/2726/510 +f 3729/2725/510 3730/2954/510 3731/2728/510 +f 3733/2730/510 3732/2729/510 3731/2731/510 +f 3735/2733/510 3733/2730/510 3734/2734/510 +f 3735/2733/510 3736/2955/510 3737/2736/510 +f 3738/2737/510 3737/2956/510 3739/2738/510 +f 3741/2740/510 3747/2957/510 3742/2741/510 +f 3744/2743/510 3740/2739/510 3739/2744/510 +f 3743/2742/510 3742/2958/510 3717/2746/510 +f 3744/2743/510 3745/2959/510 3747/2748/510 +f 3750/2751/510 3907/2960/510 3908/2961/510 +f 3908/2961/510 3909/2962/510 3910/2963/510 +f 3910/2963/510 3911/2964/510 3912/2965/510 +f 3912/2965/510 3913/2966/510 3914/2967/510 +f 3914/2967/510 3915/2968/510 3916/2969/510 +f 3916/2969/510 3917/2970/510 3748/2749/510 +f 3748/2749/510 3918/2971/510 3749/2750/510 +f 3749/2750/510 3919/2972/510 3750/2751/510 +f 3750/2751/510 3908/2961/510 3914/2967/510 +f 3908/2961/510 3910/2963/510 3914/2967/510 +f 3910/2963/510 3912/2965/510 3914/2967/510 +f 3914/2967/510 3916/2969/510 3750/2751/510 +f 3916/2969/510 3748/2749/510 3750/2751/510 +f 3755/2758/520 3754/2755/520 3751/2752/520 +f 3752/2759/521 3756/2973/521 3755/2758/521 +f 3757/2760/510 3787/2974/510 3758/2761/510 +f 3760/2763/510 3757/2760/510 3759/2764/510 +f 3760/2763/510 3761/2975/510 3762/2766/510 +f 3763/2767/510 3762/2976/510 3764/2768/510 +f 3766/2770/510 3765/2769/510 3764/2771/510 +f 3768/2773/510 3766/2770/510 3767/2774/510 +f 3770/2776/510 3768/2773/510 3769/2777/510 +f 3770/2776/510 3771/2977/510 3772/2779/510 +f 3774/2781/510 3773/2780/510 3772/2782/510 +f 3774/2781/510 3775/2978/510 3776/2784/510 +f 3777/2785/510 3776/2979/510 3778/2786/510 +f 3779/2787/510 3778/2980/510 3780/2788/510 +f 3782/2790/510 3788/2981/510 3783/2791/510 +f 3785/2793/510 3781/2789/510 3780/2794/510 +f 3784/2792/510 3783/2982/510 3758/2796/510 +f 3785/2793/510 3786/2983/510 3788/2798/510 +f 3791/2801/510 3920/2984/510 3921/2985/510 +f 3921/2985/510 3922/2986/510 3923/2987/510 +f 3923/2987/510 3924/2988/510 3925/2989/510 +f 3925/2989/510 3926/2990/510 3789/2799/510 +f 3789/2799/510 3927/2991/510 3790/2800/510 +f 3927/2991/510 3928/2992/510 3790/2800/510 +f 3928/2992/510 3929/2993/510 3790/2800/510 +f 3790/2800/510 3930/2994/510 3931/2995/510 +f 3931/2995/510 3932/2996/510 3791/2801/510 +f 3791/2801/510 3921/2985/510 3923/2987/510 +f 3923/2987/510 3925/2989/510 3791/2801/510 +f 3925/2989/510 3789/2799/510 3791/2801/510 +f 3790/2800/510 3931/2995/510 3791/2801/510 +f 3796/2808/523 3795/2805/523 3792/2802/523 +f 3793/2809/524 3797/2997/524 3796/2808/524 +f 3798/2810/510 3828/2998/510 3799/2811/510 +f 3801/2813/510 3798/2810/510 3800/2814/510 +f 3801/2813/510 3802/2999/510 3803/2816/510 +f 3804/2817/510 3803/3000/510 3805/2818/510 +f 3807/2820/510 3806/2819/510 3805/2821/510 +f 3809/2823/510 3807/2820/510 3808/2824/510 +f 3811/2826/510 3809/2823/510 3810/2827/510 +f 3811/2826/510 3812/3001/510 3813/2829/510 +f 3815/2831/510 3814/2830/510 3813/2832/510 +f 3817/2834/510 3815/2831/510 3816/2835/510 +f 3817/2834/510 3818/3002/510 3819/2837/510 +f 3820/2838/510 3819/3003/510 3821/2839/510 +f 3823/2841/510 3829/3004/510 3824/2842/510 +f 3826/2844/510 3822/2840/510 3821/2845/510 +f 3825/2843/510 3824/3005/510 3799/2847/510 +f 3823/2841/510 3826/2844/510 3827/2849/510 +f 3832/2853/510 3933/3006/510 3934/3007/510 +f 3934/3007/510 3935/3008/510 3832/2853/510 +f 3935/3008/510 3936/3009/510 3832/2853/510 +f 3936/3009/510 3937/3010/510 3938/3011/510 +f 3938/3011/510 3939/3012/510 3830/2851/510 +f 3830/2851/510 3940/3013/510 3831/2852/510 +f 3940/3013/510 3941/3014/510 3831/2852/510 +f 3941/3014/510 3942/3015/510 3831/2852/510 +f 3831/2852/510 3943/3016/510 3944/3017/510 +f 3944/3017/510 3945/3018/510 3832/2853/510 +f 3936/3009/510 3938/3011/510 3832/2853/510 +f 3938/3011/510 3830/2851/510 3832/2853/510 +f 3831/2852/510 3944/3017/510 3832/2853/510 +f 3837/2860/526 3836/2857/526 3833/2854/526 +f 3834/2861/527 3838/3019/527 3837/2860/527 +f 3839/2862/528 3842/2865/528 3840/2863/528 +f 3842/2865/529 3844/2867/529 3843/2866/529 +f 3846/2873/518 3946/3020/518 3847/2874/518 +f 3847/2874/518 3947/3021/518 3948/3022/518 +f 3948/3022/518 3845/2872/518 3847/2874/518 +f 3850/2877/510 3949/3023/510 3950/3024/510 +f 3950/3024/510 3951/3025/510 3850/2877/510 +f 3951/3025/510 3848/2875/510 3850/2877/510 +f 3851/2878/532 3854/2881/532 3852/2879/532 +f 3854/2881/533 3856/2883/533 3855/2882/533 +f 3859/2890/518 3952/3026/518 3857/2888/518 +f 3857/2888/518 3953/3027/518 3858/2889/518 +f 3858/2889/518 3954/3028/518 3859/2890/518 +f 3862/2893/510 3955/3029/510 3956/3030/510 +f 3956/3030/510 3957/3031/510 3862/2893/510 +f 3957/3031/510 3860/2891/510 3862/2893/510 +f 3863/2894/536 3868/3032/536 3864/2895/536 +f 3864/2895/537 3867/2898/537 3866/2897/537 +f 3871/2905/518 3958/3033/518 3869/2903/518 +f 3869/2903/518 3959/3034/518 3870/2904/518 +f 3870/2904/518 3960/3035/518 3871/2905/518 +f 3874/2908/510 3961/3036/510 3962/3037/510 +f 3962/3037/510 3963/3038/510 3874/2908/510 +f 3963/3038/510 3872/2906/510 3874/2908/510 s 1 -f 3896/1795/542 3897/1796/543 3898/1797/520 -f 3899/1798/544 3896/1795/542 3898/1799/520 -f 3900/1800/545 3899/1798/544 3898/1801/520 -f 3901/1802/546 3900/1800/545 3898/1803/520 -f 3902/1804/547 3901/1802/546 3898/1805/520 -f 3903/1806/548 3902/1804/547 3898/1807/520 -f 3904/1808/549 3903/1806/548 3898/1809/520 -f 3905/1810/550 3904/1808/549 3898/1811/520 -f 3905/1810/550 3898/1812/520 3906/1813/551 -f 3907/1814/552 3906/1813/551 3898/1815/520 -f 3908/1816/553 3907/1814/552 3898/1817/520 -f 3909/1818/554 3908/1816/553 3898/1819/520 -f 3910/1820/555 3909/1821/554 3898/1822/520 -f 3911/1823/556 3910/1820/555 3898/1824/520 -f 3912/1825/557 3911/1823/556 3898/1826/520 -f 3897/1796/543 3912/1825/557 3898/1827/520 -f 3910/1820/558 3913/1828/559 3909/1821/559 -f 3902/1804/560 3914/1829/561 3901/1802/561 -f 3909/1818/559 3915/1830/562 3908/1816/562 -f 3901/1802/561 3916/1831/563 3900/1800/563 -f 3908/1816/562 3917/1832/564 3907/1814/564 -f 3900/1800/563 3918/1833/565 3899/1798/565 -f 3907/1814/564 3919/1834/566 3906/1813/566 -f 3899/1798/565 3920/1835/567 3896/1795/567 -f 3906/1813/566 3921/1836/568 3905/1810/568 -f 3897/1796/569 3922/1837/570 3912/1825/570 -f 3896/1795/567 3923/1838/569 3897/1796/569 -f 3905/1810/568 3924/1839/571 3904/1808/571 -f 3912/1825/570 3925/1840/572 3911/1823/572 -f 3904/1808/571 3926/1841/573 3903/1806/573 -f 3911/1823/572 3927/1842/558 3910/1820/558 -f 3903/1806/573 3928/1843/560 3902/1804/560 -f 3921/1836/574 3929/1844/575 3924/1839/575 -f 3922/1837/576 3930/1845/577 3925/1840/577 -f 3924/1839/575 3931/1846/578 3926/1841/578 -f 3925/1840/577 3932/1847/579 3927/1842/579 -f 3926/1841/578 3933/1848/580 3928/1843/580 -f 3927/1842/579 3934/1849/581 3913/1828/581 -f 3928/1843/580 3935/1850/582 3914/1829/582 -f 3913/1851/581 3936/1852/583 3915/1830/583 -f 3914/1829/582 3937/1853/584 3916/1831/584 -f 3915/1830/583 3938/1854/585 3917/1832/585 -f 3916/1831/584 3939/1855/586 3918/1833/586 -f 3917/1832/585 3940/1856/587 3919/1834/587 -f 3918/1833/586 3941/1857/588 3920/1835/588 -f 3919/1834/587 3942/1858/574 3921/1836/574 -f 3923/1838/589 3943/1859/576 3922/1837/576 -f 3920/1835/588 3944/1860/589 3923/1838/589 -f 3937/1861/563 3593/1862/565 3939/1863/565 -f 3938/1864/564 3815/1865/566 3940/1866/566 -f 3939/1863/565 3809/1867/567 3941/1868/567 -f 3940/1866/566 3814/1869/568 3942/1870/568 -f 3944/1871/569 3807/1872/570 3943/1873/570 -f 3941/1868/567 3808/1874/569 3944/1871/569 -f 3942/1870/568 3813/1875/571 3929/1876/571 -f 3943/1873/570 3592/1877/572 3930/1878/572 -f 3929/1876/571 3594/1879/573 3931/1880/573 -f 3930/1878/572 3819/1881/558 3932/1882/558 -f 3931/1880/573 3812/1883/560 3933/1884/560 -f 3932/1882/558 3818/1885/559 3934/1886/559 -f 3933/1884/560 3811/1887/561 3935/1888/561 -f 3934/1889/559 3817/1890/562 3936/1852/562 -f 3935/1888/561 3810/1891/563 3937/1861/563 -f 3936/1852/562 3816/1892/564 3938/1864/564 -f 3625/1436/564 3945/1893/562 3622/1431/562 -f 3611/1418/565 3946/1894/563 3608/1414/563 -f 3595/1398/566 3947/1895/564 3625/1678/564 -f 3612/1419/567 3948/1896/565 3611/1418/565 -f 3598/1401/568 3949/1897/566 3595/1398/566 -f 3614/1422/569 3950/1898/567 3612/1419/567 -f 3601/1405/571 3951/1899/568 3598/1401/568 -f 3617/1426/570 3952/1900/569 3614/1422/569 -f 3603/1407/573 3953/1901/571 3601/1405/571 -f 3619/1428/572 3954/1902/570 3617/1426/570 -f 3604/1408/560 3955/1903/573 3603/1407/573 -f 3623/1432/558 3956/1904/572 3619/1428/572 -f 3606/1411/561 3957/1905/560 3604/1408/560 -f 3622/1431/562 3958/1906/559 3620/1429/559 -f 3620/1429/559 3959/1907/558 3623/1432/558 -f 3608/1414/563 3960/1908/561 3606/1411/561 -f 3952/1900/590 3961/1909/591 3950/1898/592 -f 3948/1896/593 3950/1898/592 3961/1910/591 -f 3946/1894/594 3948/1896/593 3961/1911/591 -f 3960/1908/595 3946/1894/594 3961/1912/591 -f 3957/1905/596 3960/1908/595 3961/1913/591 -f 3955/1903/597 3957/1905/596 3961/1914/591 -f 3953/1901/598 3955/1903/597 3961/1915/591 -f 3951/1899/599 3953/1901/598 3961/1916/591 -f 3949/1897/600 3951/1899/599 3961/1917/591 -f 3947/1895/601 3949/1897/600 3961/1918/591 -f 3945/1893/602 3947/1919/601 3961/1920/591 -f 3958/1906/603 3945/1893/602 3961/1921/591 -f 3959/1907/604 3958/1906/603 3961/1922/591 -f 3956/1904/605 3959/1907/604 3961/1923/591 -f 3954/1902/606 3956/1904/605 3961/1924/591 -f 3952/1900/590 3954/1902/606 3961/1925/591 -f 3610/1417/607 3827/1926/608 3627/1927/607 -f 3610/1420/607 3826/1928/609 3613/1421/609 -f 3613/1423/609 3825/1929/610 3615/1424/610 -f 3615/1682/610 3824/1930/611 3616/1425/611 -f 3618/1427/612 3824/1930/611 3823/1931/612 -f 3621/1430/613 3821/1932/614 3820/1933/613 -f 3618/1433/612 3822/1934/615 3624/1434/615 -f 3621/1685/613 3629/1935/616 3596/1435/616 -f 3624/1686/615 3821/1932/614 3626/1437/614 -f 3597/1400/617 3629/1936/616 3832/1937/617 -f 3597/1402/617 3831/1938/618 3599/1403/618 -f 3599/1679/618 3830/1939/619 3600/1404/619 -f 3600/1680/619 3628/1940/620 3602/1406/620 -f 3602/1409/620 3829/1941/621 3605/1410/621 -f 3605/1412/621 3828/1942/622 3607/1413/622 -f 3607/1415/622 3827/1926/608 3609/1416/608 -f 3642/1943/559 3837/1944/623 3836/1945/559 -f 3833/1946/623 3838/1947/624 3837/1944/623 -f 3644/1948/624 3645/1949/561 3838/1947/624 -f 3835/1950/561 3646/1951/625 3645/1949/561 -f 3643/1952/625 3647/1953/626 3646/1951/625 -f 3834/1954/626 3836/1945/559 3647/1955/626 -f 3678/1503/565 3962/1956/563 3675/1498/563 -f 3664/1485/564 3963/1957/562 3661/1481/562 -f 3648/1465/567 3964/1958/565 3678/1707/565 -f 3665/1486/566 3965/1959/564 3664/1485/564 -f 3651/1468/569 3966/1960/567 3648/1465/567 -f 3667/1489/568 3967/1961/566 3665/1486/566 -f 3654/1472/570 3968/1962/569 3651/1468/569 -f 3670/1493/571 3969/1963/568 3667/1489/568 -f 3656/1474/572 3970/1964/570 3654/1472/570 -f 3672/1495/573 3971/1965/571 3670/1493/571 -f 3657/1475/558 3972/1966/572 3656/1474/572 -f 3676/1499/560 3973/1967/573 3672/1495/573 -f 3659/1478/559 3974/1968/558 3657/1475/558 -f 3675/1498/563 3975/1969/561 3673/1496/561 -f 3673/1496/561 3976/1970/560 3676/1499/560 -f 3661/1481/562 3977/1971/559 3659/1478/559 -f 3969/1963/627 3978/1972/628 3967/1961/629 -f 3965/1959/630 3967/1961/629 3978/1973/628 -f 3963/1957/631 3965/1959/630 3978/1974/628 -f 3977/1971/632 3963/1957/631 3978/1975/628 -f 3974/1968/633 3977/1971/632 3978/1976/628 -f 3972/1966/634 3974/1968/633 3978/1977/628 -f 3970/1964/635 3972/1966/634 3978/1978/628 -f 3968/1962/636 3970/1964/635 3978/1979/628 -f 3966/1960/637 3968/1962/636 3978/1980/628 -f 3964/1958/638 3966/1960/637 3978/1981/628 -f 3962/1956/639 3964/1982/638 3978/1983/628 -f 3975/1969/640 3962/1956/639 3978/1984/628 -f 3976/1970/641 3975/1969/640 3978/1985/628 -f 3973/1967/642 3976/1970/641 3978/1986/628 -f 3971/1965/643 3973/1967/642 3978/1987/628 -f 3969/1963/627 3971/1965/643 3978/1988/628 -f 3663/1484/616 3847/1989/613 3846/1990/616 -f 3663/1487/616 3845/1991/617 3666/1488/617 -f 3666/1490/617 3844/1992/618 3668/1491/618 -f 3669/1492/619 3844/1992/618 3843/1993/619 -f 3671/1494/620 3843/1993/619 3842/1994/620 -f 3679/1713/622 3839/1995/608 3674/1497/608 -f 3671/1500/620 3841/1996/621 3677/1501/621 -f 3649/1502/607 3839/1995/608 3682/1997/607 -f 3677/1715/621 3840/1998/622 3679/1504/622 -f 3649/1466/607 3851/1999/609 3650/1467/609 -f 3650/1469/609 3681/2000/610 3652/1470/610 -f 3652/1708/610 3850/2001/611 3653/1471/611 -f 3653/1709/611 3680/2002/612 3655/1473/612 -f 3655/1476/612 3849/2003/615 3658/1477/615 -f 3658/1479/615 3848/2004/614 3660/1480/614 -f 3660/1482/614 3847/1989/613 3662/1483/613 -f 3719/1553/573 3979/2005/571 3716/1548/571 -f 3705/1536/572 3980/2006/570 3702/1532/570 -f 3689/1516/560 3981/2007/573 3719/1730/573 -f 3706/1537/558 3982/2008/572 3705/1536/572 -f 3692/1519/561 3983/2009/560 3689/1516/560 -f 3709/1541/559 3984/2010/558 3706/1537/558 -f 3695/1523/563 3985/2011/561 3692/1519/561 -f 3711/1543/562 3986/2012/559 3709/1541/559 -f 3697/1525/565 3987/2013/563 3695/1523/563 -f 3713/1545/564 3988/2014/562 3711/1543/562 -f 3698/1526/567 3989/2015/565 3697/1525/565 -f 3717/1549/566 3990/2016/564 3713/1545/564 -f 3700/1529/569 3991/2017/567 3698/1526/567 -f 3716/1548/571 3992/2018/568 3714/1546/568 -f 3714/1546/568 3993/2019/566 3717/1549/566 -f 3702/1532/570 3994/2020/569 3700/1529/569 -f 3986/2012/644 3995/2021/645 3984/2010/646 -f 3982/2008/647 3984/2010/646 3995/2022/645 -f 3980/2006/648 3982/2008/647 3995/2023/645 -f 3994/2020/649 3980/2006/648 3995/2024/645 -f 3991/2017/650 3994/2020/649 3995/2025/645 -f 3989/2015/651 3991/2017/650 3995/2026/645 -f 3987/2013/652 3989/2015/651 3995/2027/645 -f 3985/2011/653 3987/2013/652 3995/2028/645 -f 3983/2009/654 3985/2011/653 3995/2029/645 -f 3981/2007/655 3983/2009/654 3995/2030/645 -f 3979/2005/656 3981/2031/655 3995/2032/645 -f 3992/2018/657 3979/2005/656 3995/2033/645 -f 3993/2019/658 3992/2018/657 3995/2034/645 -f 3990/2016/659 3993/2019/658 3995/2035/645 -f 3988/2014/660 3990/2016/659 3995/2036/645 -f 3986/2012/644 3988/2014/660 3995/2037/645 -f 3703/1733/611 3721/2038/612 3704/1535/612 -f 3704/1538/612 3858/2039/615 3707/1539/615 -f 3707/1734/615 3857/2040/614 3708/1540/614 -f 3708/1735/614 3856/2041/613 3710/1542/613 -f 3712/1544/616 3856/2041/613 3855/2042/616 -f 3720/1737/618 3852/2043/619 3715/1547/619 -f 3712/1550/616 3854/2044/617 3718/1551/617 -f 3715/1738/619 3723/2045/620 3690/1552/620 -f 3718/1739/617 3853/2046/618 3720/1554/618 -f 3691/1518/621 3723/2047/620 3864/2048/621 -f 3691/1520/621 3863/2049/622 3693/1521/622 -f 3693/1731/622 3862/2050/608 3694/1522/608 -f 3694/1732/608 3722/2051/607 3696/1524/607 -f 3696/1527/607 3861/2052/609 3699/1528/609 -f 3699/1530/609 3860/2053/610 3701/1531/610 -f 3701/1533/610 3859/2054/611 3703/1534/611 -f 3760/1604/572 3996/2055/570 3757/1599/570 -f 3746/1586/573 3997/2056/571 3743/1582/571 -f 3730/1566/558 3998/2057/572 3760/1754/572 -f 3747/1587/560 3999/2058/573 3746/1586/573 -f 3733/1569/559 4000/2059/558 3730/1566/558 -f 3749/1590/561 4001/2060/560 3747/1587/560 -f 3736/1573/562 4002/2061/559 3733/1569/559 -f 3752/1594/563 4003/2062/561 3749/1590/561 -f 3738/1575/564 4004/2063/562 3736/1573/562 -f 3754/1596/565 4005/2064/563 3752/1594/563 -f 3739/1576/566 4006/2065/564 3738/1575/564 -f 3758/1600/567 4007/2066/565 3754/1596/565 -f 3741/1579/568 4008/2067/566 3739/1576/566 -f 3757/1599/570 4009/2068/569 3755/1597/569 -f 3755/1597/569 4010/2069/567 3758/1600/567 -f 3743/1582/571 4011/2070/568 3741/1579/568 -f 4003/2062/661 4012/2071/662 4001/2060/663 -f 3999/2058/664 4001/2060/663 4012/2072/662 -f 3997/2056/665 3999/2058/664 4012/2073/662 -f 4011/2070/666 3997/2056/665 4012/2074/662 -f 4008/2067/667 4011/2070/666 4012/2075/662 -f 4006/2065/668 4008/2067/667 4012/2076/662 -f 4004/2063/669 4006/2065/668 4012/2077/662 -f 4002/2061/670 4004/2063/669 4012/2078/662 -f 4000/2059/671 4002/2061/670 4012/2079/662 -f 3998/2057/672 4000/2059/671 4012/2080/662 -f 3996/2055/673 3998/2081/672 4012/2082/662 -f 4009/2068/674 3996/2055/673 4012/2083/662 -f 4010/2069/675 4009/2068/674 4012/2084/662 -f 4007/2066/676 4010/2069/675 4012/2085/662 -f 4005/2064/677 4007/2066/676 4012/2086/662 -f 4003/2062/661 4005/2064/677 4012/2087/662 -f 3745/1585/620 3872/2088/619 3762/2089/620 -f 3745/1588/620 3871/2090/621 3748/1589/621 -f 3748/1591/621 3870/2091/622 3750/1592/622 -f 3751/1593/608 3870/2091/622 3869/2092/608 -f 3751/1759/608 3868/2093/607 3753/1595/607 -f 3761/1760/610 3865/2094/611 3756/1598/611 -f 3759/1602/609 3868/2093/607 3867/2095/609 -f 3731/1603/612 3865/2094/611 3764/2096/612 -f 3759/1605/609 3866/2097/610 3761/1606/610 -f 3732/1568/615 3764/2098/612 3877/2099/615 -f 3732/1570/615 3876/2100/614 3734/1571/614 -f 3735/1572/613 3876/2100/614 3875/2101/613 -f 3735/1756/613 3763/2102/616 3737/1574/616 -f 3737/1577/616 3874/2103/617 3740/1578/617 -f 3740/1580/617 3873/2104/618 3742/1581/618 -f 3742/1583/618 3872/2088/619 3744/1584/619 -f 3779/2105/561 3882/2106/625 3881/2107/561 -f 3878/2108/625 3883/2109/626 3882/2106/625 -f 3778/2110/626 3780/2111/559 3883/2109/626 -f 3777/2112/559 3781/2113/623 3780/2111/559 -f 3880/2114/623 3782/2115/624 3781/2113/623 -f 3879/2116/624 3881/2107/561 3782/2117/624 -f 3789/2118/568 3888/2119/678 3887/2120/568 -f 3884/2121/678 3889/2122/679 3888/2119/678 -f 3791/2123/679 3792/2124/569 3889/2122/679 -f 3886/2125/569 3793/2126/680 3792/2124/569 -f 3790/2127/680 3794/2128/681 3793/2126/680 -f 3885/2129/681 3887/2120/568 3794/2130/681 -f 3801/2131/569 3894/2132/680 3893/2133/569 -f 3890/2134/680 3895/2135/681 3894/2132/680 -f 3803/2136/681 3804/2137/568 3895/2135/681 -f 3892/2138/568 3805/2139/678 3804/2137/568 -f 3802/2140/678 3806/2141/679 3805/2139/678 -f 3891/2142/679 3893/2133/569 3806/2143/679 -f 3910/1820/558 3927/1842/558 3913/1828/559 -f 3902/1804/560 3928/1843/560 3914/1829/561 -f 3909/1818/559 3913/1851/559 3915/1830/562 -f 3901/1802/561 3914/1829/561 3916/1831/563 -f 3908/1816/562 3915/1830/562 3917/1832/564 -f 3900/1800/563 3916/1831/563 3918/1833/565 -f 3907/1814/564 3917/1832/564 3919/1834/566 -f 3899/1798/565 3918/1833/565 3920/1835/567 -f 3906/1813/566 3919/1834/566 3921/1836/568 -f 3897/1796/569 3923/1838/569 3922/1837/570 -f 3896/1795/567 3920/1835/567 3923/1838/569 -f 3905/1810/568 3921/1836/568 3924/1839/571 -f 3912/1825/570 3922/1837/570 3925/1840/572 -f 3904/1808/571 3924/1839/571 3926/1841/573 -f 3911/1823/572 3925/1840/572 3927/1842/558 -f 3903/1806/573 3926/1841/573 3928/1843/560 -f 3921/1836/574 3942/2144/574 3929/1844/575 -f 3922/1837/576 3943/2145/576 3930/1845/577 -f 3924/1839/575 3929/2146/575 3931/1846/578 -f 3925/1840/577 3930/2147/577 3932/1847/579 -f 3926/1841/578 3931/2148/578 3933/1848/580 -f 3927/1842/579 3932/2149/579 3934/1849/581 -f 3928/1843/580 3933/2150/580 3935/1850/582 -f 3913/1851/581 3934/1889/581 3936/1852/583 -f 3914/1829/582 3935/2151/582 3937/1853/584 -f 3915/1830/583 3936/2152/583 3938/1854/585 -f 3916/1831/584 3937/2153/584 3939/1855/586 -f 3917/1832/585 3938/2154/585 3940/1856/587 -f 3918/1833/586 3939/2155/586 3941/1857/588 -f 3919/1834/587 3940/2156/587 3942/1858/574 -f 3923/1838/589 3944/2157/589 3943/1859/576 -f 3920/1835/588 3941/2158/588 3944/1860/589 -f 3937/1861/563 3810/1891/563 3593/1862/565 -f 3938/1864/564 3816/1892/564 3815/1865/566 -f 3939/1863/565 3593/1862/565 3809/1867/567 -f 3940/1866/566 3815/1865/566 3814/1869/568 -f 3944/1871/569 3808/1874/569 3807/1872/570 -f 3941/1868/567 3809/1867/567 3808/1874/569 -f 3942/1870/568 3814/1869/568 3813/1875/571 -f 3943/1873/570 3807/1872/570 3592/1877/572 -f 3929/1876/571 3813/1875/571 3594/1879/573 -f 3930/1878/572 3592/1877/572 3819/1881/558 -f 3931/1880/573 3594/1879/573 3812/1883/560 -f 3932/1882/558 3819/1881/558 3818/1885/559 -f 3933/1884/560 3812/1883/560 3811/1887/561 -f 3934/1889/559 3818/2159/559 3817/1890/562 -f 3935/1888/561 3811/1887/561 3810/1891/563 -f 3936/1852/562 3817/1890/562 3816/1892/564 -f 3625/1436/564 3947/1919/564 3945/1893/562 -f 3611/1418/565 3948/1896/565 3946/1894/563 -f 3595/1398/566 3949/1897/566 3947/1895/564 -f 3612/1419/567 3950/1898/567 3948/1896/565 -f 3598/1401/568 3951/1899/568 3949/1897/566 -f 3614/1422/569 3952/1900/569 3950/1898/567 -f 3601/1405/571 3953/1901/571 3951/1899/568 -f 3617/1426/570 3954/1902/570 3952/1900/569 -f 3603/1407/573 3955/1903/573 3953/1901/571 -f 3619/1428/572 3956/1904/572 3954/1902/570 -f 3604/1408/560 3957/1905/560 3955/1903/573 -f 3623/1432/558 3959/1907/558 3956/1904/572 -f 3606/1411/561 3960/1908/561 3957/1905/560 -f 3622/1431/562 3945/1893/562 3958/1906/559 -f 3620/1429/559 3958/1906/559 3959/1907/558 -f 3608/1414/563 3946/1894/563 3960/1908/561 -f 3610/1417/607 3609/1681/608 3827/1926/608 -f 3610/1420/607 3627/1927/607 3826/1928/609 -f 3613/1423/609 3826/1928/609 3825/1929/610 -f 3615/1682/610 3825/1929/610 3824/1930/611 -f 3618/1427/612 3616/1683/611 3824/1930/611 -f 3621/1430/613 3626/1684/614 3821/1932/614 -f 3618/1433/612 3823/1931/612 3822/1934/615 -f 3621/1685/613 3820/1933/613 3629/1935/616 -f 3624/1686/615 3822/1934/615 3821/1932/614 -f 3597/1400/617 3596/1399/616 3629/1936/616 -f 3597/1402/617 3832/1937/617 3831/1938/618 -f 3599/1679/618 3831/1938/618 3830/1939/619 -f 3600/1680/619 3830/1939/619 3628/1940/620 -f 3602/1409/620 3628/1940/620 3829/1941/621 -f 3605/1412/621 3829/1941/621 3828/1942/622 -f 3607/1415/622 3828/1942/622 3827/1926/608 -f 3642/1943/559 3833/1946/623 3837/1944/623 -f 3833/1946/623 3644/1948/624 3838/1947/624 -f 3644/1948/624 3835/1950/561 3645/1949/561 -f 3835/1950/561 3643/1952/625 3646/1951/625 -f 3643/1952/625 3834/2160/626 3647/1953/626 -f 3834/1954/626 3642/1943/559 3836/1945/559 -f 3678/1503/565 3964/1982/565 3962/1956/563 -f 3664/1485/564 3965/1959/564 3963/1957/562 -f 3648/1465/567 3966/1960/567 3964/1958/565 -f 3665/1486/566 3967/1961/566 3965/1959/564 -f 3651/1468/569 3968/1962/569 3966/1960/567 -f 3667/1489/568 3969/1963/568 3967/1961/566 -f 3654/1472/570 3970/1964/570 3968/1962/569 -f 3670/1493/571 3971/1965/571 3969/1963/568 -f 3656/1474/572 3972/1966/572 3970/1964/570 -f 3672/1495/573 3973/1967/573 3971/1965/571 -f 3657/1475/558 3974/1968/558 3972/1966/572 -f 3676/1499/560 3976/1970/560 3973/1967/573 -f 3659/1478/559 3977/1971/559 3974/1968/558 -f 3675/1498/563 3962/1956/563 3975/1969/561 -f 3673/1496/561 3975/1969/561 3976/1970/560 -f 3661/1481/562 3963/1957/562 3977/1971/559 -f 3663/1484/616 3662/1710/613 3847/1989/613 -f 3663/1487/616 3846/1990/616 3845/1991/617 -f 3666/1490/617 3845/1991/617 3844/1992/618 -f 3669/1492/619 3668/1711/618 3844/1992/618 -f 3671/1494/620 3669/1712/619 3843/1993/619 -f 3679/1713/622 3840/1998/622 3839/1995/608 -f 3671/1500/620 3842/1994/620 3841/1996/621 -f 3649/1502/607 3674/1714/608 3839/1995/608 -f 3677/1715/621 3841/1996/621 3840/1998/622 -f 3649/1466/607 3682/2161/607 3851/1999/609 -f 3650/1469/609 3851/1999/609 3681/2000/610 -f 3652/1708/610 3681/2000/610 3850/2001/611 -f 3653/1709/611 3850/2001/611 3680/2002/612 -f 3655/1476/612 3680/2002/612 3849/2003/615 -f 3658/1479/615 3849/2003/615 3848/2004/614 -f 3660/1482/614 3848/2004/614 3847/1989/613 -f 3719/1553/573 3981/2031/573 3979/2005/571 -f 3705/1536/572 3982/2008/572 3980/2006/570 -f 3689/1516/560 3983/2009/560 3981/2007/573 -f 3706/1537/558 3984/2010/558 3982/2008/572 -f 3692/1519/561 3985/2011/561 3983/2009/560 -f 3709/1541/559 3986/2012/559 3984/2010/558 -f 3695/1523/563 3987/2013/563 3985/2011/561 -f 3711/1543/562 3988/2014/562 3986/2012/559 -f 3697/1525/565 3989/2015/565 3987/2013/563 -f 3713/1545/564 3990/2016/564 3988/2014/562 -f 3698/1526/567 3991/2017/567 3989/2015/565 -f 3717/1549/566 3993/2019/566 3990/2016/564 -f 3700/1529/569 3994/2020/569 3991/2017/567 -f 3716/1548/571 3979/2005/571 3992/2018/568 -f 3714/1546/568 3992/2018/568 3993/2019/566 -f 3702/1532/570 3980/2006/570 3994/2020/569 -f 3703/1733/611 3859/2054/611 3721/2038/612 -f 3704/1538/612 3721/2038/612 3858/2039/615 -f 3707/1734/615 3858/2039/615 3857/2040/614 -f 3708/1735/614 3857/2040/614 3856/2041/613 -f 3712/1544/616 3710/1736/613 3856/2041/613 -f 3720/1737/618 3853/2046/618 3852/2043/619 -f 3712/1550/616 3855/2042/616 3854/2044/617 -f 3715/1738/619 3852/2043/619 3723/2045/620 -f 3718/1739/617 3854/2044/617 3853/2046/618 -f 3691/1518/621 3690/1517/620 3723/2047/620 -f 3691/1520/621 3864/2048/621 3863/2049/622 -f 3693/1731/622 3863/2049/622 3862/2050/608 -f 3694/1732/608 3862/2050/608 3722/2051/607 -f 3696/1527/607 3722/2051/607 3861/2052/609 -f 3699/1530/609 3861/2052/609 3860/2053/610 -f 3701/1533/610 3860/2053/610 3859/2054/611 -f 3760/1604/572 3998/2081/572 3996/2055/570 -f 3746/1586/573 3999/2058/573 3997/2056/571 -f 3730/1566/558 4000/2059/558 3998/2057/572 -f 3747/1587/560 4001/2060/560 3999/2058/573 -f 3733/1569/559 4002/2061/559 4000/2059/558 -f 3749/1590/561 4003/2062/561 4001/2060/560 -f 3736/1573/562 4004/2063/562 4002/2061/559 -f 3752/1594/563 4005/2064/563 4003/2062/561 -f 3738/1575/564 4006/2065/564 4004/2063/562 -f 3754/1596/565 4007/2066/565 4005/2064/563 -f 3739/1576/566 4008/2067/566 4006/2065/564 -f 3758/1600/567 4010/2069/567 4007/2066/565 -f 3741/1579/568 4011/2070/568 4008/2067/566 -f 3757/1599/570 3996/2055/570 4009/2068/569 -f 3755/1597/569 4009/2068/569 4010/2069/567 -f 3743/1582/571 3997/2056/571 4011/2070/568 -f 3745/1585/620 3744/1757/619 3872/2088/619 -f 3745/1588/620 3762/2089/620 3871/2090/621 -f 3748/1591/621 3871/2090/621 3870/2091/622 -f 3751/1593/608 3750/1758/622 3870/2091/622 -f 3751/1759/608 3869/2092/608 3868/2093/607 -f 3761/1760/610 3866/2097/610 3865/2094/611 -f 3759/1602/609 3753/1601/607 3868/2093/607 -f 3731/1603/612 3756/1761/611 3865/2094/611 -f 3759/1605/609 3867/2095/609 3866/2097/610 -f 3732/1568/615 3731/1567/612 3764/2098/612 -f 3732/1570/615 3877/2099/615 3876/2100/614 -f 3735/1572/613 3734/1755/614 3876/2100/614 -f 3735/1756/613 3875/2101/613 3763/2102/616 -f 3737/1577/616 3763/2102/616 3874/2103/617 -f 3740/1580/617 3874/2103/617 3873/2104/618 -f 3742/1583/618 3873/2104/618 3872/2088/619 -f 3779/2105/561 3878/2108/625 3882/2106/625 -f 3878/2108/625 3778/2110/626 3883/2109/626 -f 3778/2110/626 3777/2112/559 3780/2111/559 -f 3777/2112/559 3880/2114/623 3781/2113/623 -f 3880/2114/623 3879/2162/624 3782/2115/624 -f 3879/2116/624 3779/2105/561 3881/2107/561 -f 3789/2118/568 3884/2121/678 3888/2119/678 -f 3884/2121/678 3791/2123/679 3889/2122/679 -f 3791/2123/679 3886/2125/569 3792/2124/569 -f 3886/2125/569 3790/2127/680 3793/2126/680 -f 3790/2127/680 3885/2163/681 3794/2128/681 -f 3885/2129/681 3789/2118/568 3887/2120/568 -f 3801/2131/569 3890/2134/680 3894/2132/680 -f 3890/2134/680 3803/2136/681 3895/2135/681 -f 3803/2136/681 3892/2138/568 3804/2137/568 -f 3892/2138/568 3802/2140/678 3805/2139/678 -f 3802/2140/678 3891/2164/679 3806/2141/679 -f 3891/2142/679 3801/2131/569 3893/2133/569 +f 3964/3039/540 3965/3040/541 3966/3041/518 +f 3967/3042/542 3964/3039/540 3966/3043/518 +f 3968/3044/543 3967/3042/542 3966/3045/518 +f 3969/3046/544 3968/3044/543 3966/3047/518 +f 3970/3048/545 3969/3046/544 3966/3049/518 +f 3971/3050/546 3970/3048/545 3966/3051/518 +f 3972/3052/547 3971/3050/546 3966/3053/518 +f 3973/3054/548 3972/3052/547 3966/3055/518 +f 3973/3054/548 3966/3056/518 3974/3057/549 +f 3975/3058/550 3974/3057/549 3966/3059/518 +f 3976/3060/551 3975/3058/550 3966/3061/518 +f 3977/3062/552 3976/3060/551 3966/3063/518 +f 3978/3064/553 3977/3065/552 3966/3066/518 +f 3979/3067/554 3978/3064/553 3966/3068/518 +f 3980/3069/555 3979/3067/554 3966/3070/518 +f 3965/3040/541 3980/3069/555 3966/3071/518 +f 3978/3064/556 3981/3072/557 3977/3065/557 +f 3970/3048/558 3982/3073/559 3969/3046/559 +f 3977/3062/557 3983/3074/560 3976/3060/560 +f 3969/3046/559 3984/3075/561 3968/3044/561 +f 3976/3060/560 3985/3076/562 3975/3058/562 +f 3968/3044/561 3986/3077/563 3967/3042/563 +f 3975/3058/562 3987/3078/564 3974/3057/564 +f 3967/3042/563 3988/3079/565 3964/3039/565 +f 3974/3057/564 3989/3080/566 3973/3054/566 +f 3965/3040/567 3990/3081/568 3980/3069/568 +f 3964/3039/565 3991/3082/567 3965/3040/567 +f 3973/3054/566 3992/3083/569 3972/3052/569 +f 3980/3069/568 3993/3084/570 3979/3067/570 +f 3972/3052/569 3994/3085/571 3971/3050/571 +f 3979/3067/570 3995/3086/556 3978/3064/556 +f 3971/3050/571 3996/3087/558 3970/3048/558 +f 3989/3080/572 3997/3088/573 3992/3083/573 +f 3990/3081/574 3998/3089/575 3993/3084/575 +f 3992/3083/573 3999/3090/576 3994/3085/576 +f 3993/3084/575 4000/3091/577 3995/3086/577 +f 3994/3085/576 4001/3092/578 3996/3087/578 +f 3995/3086/577 4002/3093/579 3981/3072/579 +f 3996/3087/578 4003/3094/580 3982/3073/580 +f 3981/3095/579 4004/3096/581 3983/3074/581 +f 3982/3073/580 4005/3097/582 3984/3075/582 +f 3983/3074/581 4006/3098/583 3985/3076/583 +f 3984/3075/582 4007/3099/584 3986/3077/584 +f 3985/3076/583 4008/3100/585 3987/3078/585 +f 3986/3077/584 4009/3101/586 3988/3079/586 +f 3987/3078/585 4010/3102/572 3989/3080/572 +f 3991/3082/587 4011/3103/574 3990/3081/574 +f 3988/3079/586 4012/3104/587 3991/3082/587 +f 4005/3105/561 3661/3106/563 4007/3107/563 +f 4006/3108/562 3883/3109/564 4008/3110/564 +f 4007/3107/563 3877/3111/565 4009/3112/565 +f 4008/3110/564 3882/3113/566 4010/3114/566 +f 4012/3115/567 3875/3116/568 4011/3117/568 +f 4009/3112/565 3876/3118/567 4012/3115/567 +f 4010/3114/566 3881/3119/569 3997/3120/569 +f 4011/3117/568 3660/3121/570 3998/3122/570 +f 3997/3120/569 3662/3123/571 3999/3124/571 +f 3998/3122/570 3887/3125/556 4000/3126/556 +f 3999/3124/571 3880/3127/558 4001/3128/558 +f 4000/3126/556 3886/3129/557 4002/3130/557 +f 4001/3128/558 3879/3131/559 4003/3132/559 +f 4002/3133/557 3885/3134/560 4004/3096/560 +f 4003/3132/559 3878/3135/561 4005/3105/561 +f 4004/3096/560 3884/3136/562 4006/3108/562 +f 3693/2680/562 4013/3137/560 3690/2675/560 +f 3679/2662/563 4014/3138/561 3676/2658/561 +f 3663/2642/564 4015/3139/562 3693/2922/562 +f 3680/2663/565 4016/3140/563 3679/2662/563 +f 3666/2645/566 4017/3141/564 3663/2642/564 +f 3682/2666/567 4018/3142/565 3680/2663/565 +f 3669/2649/569 4019/3143/566 3666/2645/566 +f 3685/2670/568 4020/3144/567 3682/2666/567 +f 3671/2651/571 4021/3145/569 3669/2649/569 +f 3687/2672/570 4022/3146/568 3685/2670/568 +f 3672/2652/558 4023/3147/571 3671/2651/571 +f 3691/2676/556 4024/3148/570 3687/2672/570 +f 3674/2655/559 4025/3149/558 3672/2652/558 +f 3690/2675/560 4026/3150/557 3688/2673/557 +f 3688/2673/557 4027/3151/556 3691/2676/556 +f 3676/2658/561 4028/3152/559 3674/2655/559 +f 4020/3144/588 4029/3153/589 4018/3142/590 +f 4016/3140/591 4018/3142/590 4029/3154/589 +f 4014/3138/592 4016/3140/591 4029/3155/589 +f 4028/3152/593 4014/3138/592 4029/3156/589 +f 4025/3149/594 4028/3152/593 4029/3157/589 +f 4023/3147/595 4025/3149/594 4029/3158/589 +f 4021/3145/596 4023/3147/595 4029/3159/589 +f 4019/3143/597 4021/3145/596 4029/3160/589 +f 4017/3141/598 4019/3143/597 4029/3161/589 +f 4015/3139/599 4017/3141/598 4029/3162/589 +f 4013/3137/600 4015/3163/599 4029/3164/589 +f 4026/3150/601 4013/3137/600 4029/3165/589 +f 4027/3151/602 4026/3150/601 4029/3166/589 +f 4024/3148/603 4027/3151/602 4029/3167/589 +f 4022/3146/604 4024/3148/603 4029/3168/589 +f 4020/3144/588 4022/3146/604 4029/3169/589 +f 3678/2661/605 3895/3170/606 3695/3171/605 +f 3678/2664/605 3894/3172/607 3681/2665/607 +f 3681/2667/607 3893/3173/608 3683/2668/608 +f 3683/2926/608 3892/3174/609 3684/2669/609 +f 3686/2671/610 3892/3174/609 3891/3175/610 +f 3689/2674/611 3889/3176/612 3888/3177/611 +f 3686/2677/610 3890/3178/613 3692/2678/613 +f 3689/2929/611 3697/3179/614 3664/2679/614 +f 3692/2930/613 3889/3176/612 3694/2681/612 +f 3665/2644/615 3697/3180/614 3900/3181/615 +f 3665/2646/615 3899/3182/616 3667/2647/616 +f 3667/2923/616 3898/3183/617 3668/2648/617 +f 3668/2924/617 3696/3184/618 3670/2650/618 +f 3670/2653/618 3897/3185/619 3673/2654/619 +f 3673/2656/619 3896/3186/620 3675/2657/620 +f 3675/2659/620 3895/3170/606 3677/2660/606 +f 3710/3187/557 3905/3188/621 3904/3189/557 +f 3901/3190/621 3906/3191/622 3905/3188/621 +f 3712/3192/622 3713/3193/559 3906/3191/622 +f 3903/3194/559 3714/3195/623 3713/3193/559 +f 3711/3196/623 3715/3197/624 3714/3195/623 +f 3902/3198/624 3904/3189/557 3715/3199/624 +f 3746/2747/563 4030/3200/561 3743/2742/561 +f 3732/2729/562 4031/3201/560 3729/2725/560 +f 3716/2709/565 4032/3202/563 3746/2951/563 +f 3733/2730/564 4033/3203/562 3732/2729/562 +f 3719/2712/567 4034/3204/565 3716/2709/565 +f 3735/2733/566 4035/3205/564 3733/2730/564 +f 3722/2716/568 4036/3206/567 3719/2712/567 +f 3738/2737/569 4037/3207/566 3735/2733/566 +f 3724/2718/570 4038/3208/568 3722/2716/568 +f 3740/2739/571 4039/3209/569 3738/2737/569 +f 3725/2719/556 4040/3210/570 3724/2718/570 +f 3744/2743/558 4041/3211/571 3740/2739/571 +f 3727/2722/557 4042/3212/556 3725/2719/556 +f 3743/2742/561 4043/3213/559 3741/2740/559 +f 3741/2740/559 4044/3214/558 3744/2743/558 +f 3729/2725/560 4045/3215/557 3727/2722/557 +f 4037/3207/625 4046/3216/626 4035/3205/627 +f 4033/3203/628 4035/3205/627 4046/3217/626 +f 4031/3201/629 4033/3203/628 4046/3218/626 +f 4045/3215/630 4031/3201/629 4046/3219/626 +f 4042/3212/631 4045/3215/630 4046/3220/626 +f 4040/3210/632 4042/3212/631 4046/3221/626 +f 4038/3208/633 4040/3210/632 4046/3222/626 +f 4036/3206/634 4038/3208/633 4046/3223/626 +f 4034/3204/635 4036/3206/634 4046/3224/626 +f 4032/3202/636 4034/3204/635 4046/3225/626 +f 4030/3200/637 4032/3226/636 4046/3227/626 +f 4043/3213/638 4030/3200/637 4046/3228/626 +f 4044/3214/639 4043/3213/638 4046/3229/626 +f 4041/3211/640 4044/3214/639 4046/3230/626 +f 4039/3209/641 4041/3211/640 4046/3231/626 +f 4037/3207/625 4039/3209/641 4046/3232/626 +f 3731/2728/614 3915/3233/611 3914/3234/614 +f 3731/2731/614 3913/3235/615 3734/2732/615 +f 3734/2734/615 3912/3236/616 3736/2735/616 +f 3737/2736/617 3912/3236/616 3911/3237/617 +f 3739/2738/618 3911/3237/617 3910/3238/618 +f 3747/2957/620 3907/3239/606 3742/2741/606 +f 3739/2744/618 3909/3240/619 3745/2745/619 +f 3717/2746/605 3907/3239/606 3750/3241/605 +f 3745/2959/619 3908/3242/620 3747/2748/620 +f 3717/2710/605 3919/3243/607 3718/2711/607 +f 3718/2713/607 3749/3244/608 3720/2714/608 +f 3720/2952/608 3918/3245/609 3721/2715/609 +f 3721/2953/609 3748/3246/610 3723/2717/610 +f 3723/2720/610 3917/3247/613 3726/2721/613 +f 3726/2723/613 3916/3248/612 3728/2724/612 +f 3728/2726/612 3915/3233/611 3730/2727/611 +f 3787/2797/571 4047/3249/569 3784/2792/569 +f 3773/2780/570 4048/3250/568 3770/2776/568 +f 3757/2760/558 4049/3251/571 3787/2974/571 +f 3774/2781/556 4050/3252/570 3773/2780/570 +f 3760/2763/559 4051/3253/558 3757/2760/558 +f 3777/2785/557 4052/3254/556 3774/2781/556 +f 3763/2767/561 4053/3255/559 3760/2763/559 +f 3779/2787/560 4054/3256/557 3777/2785/557 +f 3765/2769/563 4055/3257/561 3763/2767/561 +f 3781/2789/562 4056/3258/560 3779/2787/560 +f 3766/2770/565 4057/3259/563 3765/2769/563 +f 3785/2793/564 4058/3260/562 3781/2789/562 +f 3768/2773/567 4059/3261/565 3766/2770/565 +f 3784/2792/569 4060/3262/566 3782/2790/566 +f 3782/2790/566 4061/3263/564 3785/2793/564 +f 3770/2776/568 4062/3264/567 3768/2773/567 +f 4054/3256/642 4063/3265/643 4052/3254/644 +f 4050/3252/645 4052/3254/644 4063/3266/643 +f 4048/3250/646 4050/3252/645 4063/3267/643 +f 4062/3264/647 4048/3250/646 4063/3268/643 +f 4059/3261/648 4062/3264/647 4063/3269/643 +f 4057/3259/649 4059/3261/648 4063/3270/643 +f 4055/3257/650 4057/3259/649 4063/3271/643 +f 4053/3255/651 4055/3257/650 4063/3272/643 +f 4051/3253/652 4053/3255/651 4063/3273/643 +f 4049/3251/653 4051/3253/652 4063/3274/643 +f 4047/3249/654 4049/3275/653 4063/3276/643 +f 4060/3262/655 4047/3249/654 4063/3277/643 +f 4061/3263/656 4060/3262/655 4063/3278/643 +f 4058/3260/657 4061/3263/656 4063/3279/643 +f 4056/3258/658 4058/3260/657 4063/3280/643 +f 4054/3256/642 4056/3258/658 4063/3281/643 +f 3771/2977/609 3789/3282/610 3772/2779/610 +f 3772/2782/610 3926/3283/613 3775/2783/613 +f 3775/2978/613 3925/3284/612 3776/2784/612 +f 3776/2979/612 3924/3285/611 3778/2786/611 +f 3780/2788/614 3924/3285/611 3923/3286/614 +f 3788/2981/616 3920/3287/617 3783/2791/617 +f 3780/2794/614 3922/3288/615 3786/2795/615 +f 3783/2982/617 3791/3289/618 3758/2796/618 +f 3786/2983/615 3921/3290/616 3788/2798/616 +f 3759/2762/619 3791/3291/618 3932/3292/619 +f 3759/2764/619 3931/3293/620 3761/2765/620 +f 3761/2975/620 3930/3294/606 3762/2766/606 +f 3762/2976/606 3790/3295/605 3764/2768/605 +f 3764/2771/605 3929/3296/607 3767/2772/607 +f 3767/2774/607 3928/3297/608 3769/2775/608 +f 3769/2777/608 3927/3298/609 3771/2778/609 +f 3828/2848/570 4064/3299/568 3825/2843/568 +f 3814/2830/571 4065/3300/569 3811/2826/569 +f 3798/2810/556 4066/3301/570 3828/2998/570 +f 3815/2831/558 4067/3302/571 3814/2830/571 +f 3801/2813/557 4068/3303/556 3798/2810/556 +f 3817/2834/559 4069/3304/558 3815/2831/558 +f 3804/2817/560 4070/3305/557 3801/2813/557 +f 3820/2838/561 4071/3306/559 3817/2834/559 +f 3806/2819/562 4072/3307/560 3804/2817/560 +f 3822/2840/563 4073/3308/561 3820/2838/561 +f 3807/2820/564 4074/3309/562 3806/2819/562 +f 3826/2844/565 4075/3310/563 3822/2840/563 +f 3809/2823/566 4076/3311/564 3807/2820/564 +f 3825/2843/568 4077/3312/567 3823/2841/567 +f 3823/2841/567 4078/3313/565 3826/2844/565 +f 3811/2826/569 4079/3314/566 3809/2823/566 +f 4071/3306/659 4080/3315/660 4069/3304/661 +f 4067/3302/662 4069/3304/661 4080/3316/660 +f 4065/3300/663 4067/3302/662 4080/3317/660 +f 4079/3314/664 4065/3300/663 4080/3318/660 +f 4076/3311/665 4079/3314/664 4080/3319/660 +f 4074/3309/666 4076/3311/665 4080/3320/660 +f 4072/3307/667 4074/3309/666 4080/3321/660 +f 4070/3305/668 4072/3307/667 4080/3322/660 +f 4068/3303/669 4070/3305/668 4080/3323/660 +f 4066/3301/670 4068/3303/669 4080/3324/660 +f 4064/3299/671 4066/3325/670 4080/3326/660 +f 4077/3312/672 4064/3299/671 4080/3327/660 +f 4078/3313/673 4077/3312/672 4080/3328/660 +f 4075/3310/674 4078/3313/673 4080/3329/660 +f 4073/3308/675 4075/3310/674 4080/3330/660 +f 4071/3306/659 4073/3308/675 4080/3331/660 +f 3813/2829/618 3940/3332/617 3830/3333/618 +f 3813/2832/618 3939/3334/619 3816/2833/619 +f 3816/2835/619 3938/3335/620 3818/2836/620 +f 3819/2837/606 3938/3335/620 3937/3336/606 +f 3819/3003/606 3936/3337/605 3821/2839/605 +f 3829/3004/608 3933/3338/609 3824/2842/609 +f 3827/2846/607 3936/3337/605 3935/3339/607 +f 3799/2847/610 3933/3338/609 3832/3340/610 +f 3827/2849/607 3934/3341/608 3829/2850/608 +f 3800/2812/613 3832/3342/610 3945/3343/613 +f 3800/2814/613 3944/3344/612 3802/2815/612 +f 3803/2816/611 3944/3344/612 3943/3345/611 +f 3803/3000/611 3831/3346/614 3805/2818/614 +f 3805/2821/614 3942/3347/615 3808/2822/615 +f 3808/2824/615 3941/3348/616 3810/2825/616 +f 3810/2827/616 3940/3332/617 3812/2828/617 +f 3847/3349/559 3950/3350/623 3949/3351/559 +f 3946/3352/623 3951/3353/624 3950/3350/623 +f 3846/3354/624 3848/3355/557 3951/3353/624 +f 3845/3356/557 3849/3357/621 3848/3355/557 +f 3948/3358/621 3850/3359/622 3849/3357/621 +f 3947/3360/622 3949/3351/559 3850/3361/622 +f 3857/3362/566 3956/3363/676 3955/3364/566 +f 3952/3365/676 3957/3366/677 3956/3363/676 +f 3859/3367/677 3860/3368/567 3957/3366/677 +f 3954/3369/567 3861/3370/678 3860/3368/567 +f 3858/3371/678 3862/3372/679 3861/3370/678 +f 3953/3373/679 3955/3364/566 3862/3374/679 +f 3869/3375/567 3962/3376/678 3961/3377/567 +f 3958/3378/678 3963/3379/679 3962/3376/678 +f 3871/3380/679 3872/3381/566 3963/3379/679 +f 3960/3382/566 3873/3383/676 3872/3381/566 +f 3870/3384/676 3874/3385/677 3873/3383/676 +f 3959/3386/677 3961/3377/567 3874/3387/677 +f 3978/3064/556 3995/3086/556 3981/3072/557 +f 3970/3048/558 3996/3087/558 3982/3073/559 +f 3977/3062/557 3981/3095/557 3983/3074/560 +f 3969/3046/559 3982/3073/559 3984/3075/561 +f 3976/3060/560 3983/3074/560 3985/3076/562 +f 3968/3044/561 3984/3075/561 3986/3077/563 +f 3975/3058/562 3985/3076/562 3987/3078/564 +f 3967/3042/563 3986/3077/563 3988/3079/565 +f 3974/3057/564 3987/3078/564 3989/3080/566 +f 3965/3040/567 3991/3082/567 3990/3081/568 +f 3964/3039/565 3988/3079/565 3991/3082/567 +f 3973/3054/566 3989/3080/566 3992/3083/569 +f 3980/3069/568 3990/3081/568 3993/3084/570 +f 3972/3052/569 3992/3083/569 3994/3085/571 +f 3979/3067/570 3993/3084/570 3995/3086/556 +f 3971/3050/571 3994/3085/571 3996/3087/558 +f 3989/3080/572 4010/3388/572 3997/3088/573 +f 3990/3081/574 4011/3389/574 3998/3089/575 +f 3992/3083/573 3997/3390/573 3999/3090/576 +f 3993/3084/575 3998/3391/575 4000/3091/577 +f 3994/3085/576 3999/3392/576 4001/3092/578 +f 3995/3086/577 4000/3393/577 4002/3093/579 +f 3996/3087/578 4001/3394/578 4003/3094/580 +f 3981/3095/579 4002/3133/579 4004/3096/581 +f 3982/3073/580 4003/3395/580 4005/3097/582 +f 3983/3074/581 4004/3396/581 4006/3098/583 +f 3984/3075/582 4005/3397/582 4007/3099/584 +f 3985/3076/583 4006/3398/583 4008/3100/585 +f 3986/3077/584 4007/3399/584 4009/3101/586 +f 3987/3078/585 4008/3400/585 4010/3102/572 +f 3991/3082/587 4012/3401/587 4011/3103/574 +f 3988/3079/586 4009/3402/586 4012/3104/587 +f 4005/3105/561 3878/3135/561 3661/3106/563 +f 4006/3108/562 3884/3136/562 3883/3109/564 +f 4007/3107/563 3661/3106/563 3877/3111/565 +f 4008/3110/564 3883/3109/564 3882/3113/566 +f 4012/3115/567 3876/3118/567 3875/3116/568 +f 4009/3112/565 3877/3111/565 3876/3118/567 +f 4010/3114/566 3882/3113/566 3881/3119/569 +f 4011/3117/568 3875/3116/568 3660/3121/570 +f 3997/3120/569 3881/3119/569 3662/3123/571 +f 3998/3122/570 3660/3121/570 3887/3125/556 +f 3999/3124/571 3662/3123/571 3880/3127/558 +f 4000/3126/556 3887/3125/556 3886/3129/557 +f 4001/3128/558 3880/3127/558 3879/3131/559 +f 4002/3133/557 3886/3403/557 3885/3134/560 +f 4003/3132/559 3879/3131/559 3878/3135/561 +f 4004/3096/560 3885/3134/560 3884/3136/562 +f 3693/2680/562 4015/3163/562 4013/3137/560 +f 3679/2662/563 4016/3140/563 4014/3138/561 +f 3663/2642/564 4017/3141/564 4015/3139/562 +f 3680/2663/565 4018/3142/565 4016/3140/563 +f 3666/2645/566 4019/3143/566 4017/3141/564 +f 3682/2666/567 4020/3144/567 4018/3142/565 +f 3669/2649/569 4021/3145/569 4019/3143/566 +f 3685/2670/568 4022/3146/568 4020/3144/567 +f 3671/2651/571 4023/3147/571 4021/3145/569 +f 3687/2672/570 4024/3148/570 4022/3146/568 +f 3672/2652/558 4025/3149/558 4023/3147/571 +f 3691/2676/556 4027/3151/556 4024/3148/570 +f 3674/2655/559 4028/3152/559 4025/3149/558 +f 3690/2675/560 4013/3137/560 4026/3150/557 +f 3688/2673/557 4026/3150/557 4027/3151/556 +f 3676/2658/561 4014/3138/561 4028/3152/559 +f 3678/2661/605 3677/2925/606 3895/3170/606 +f 3678/2664/605 3695/3171/605 3894/3172/607 +f 3681/2667/607 3894/3172/607 3893/3173/608 +f 3683/2926/608 3893/3173/608 3892/3174/609 +f 3686/2671/610 3684/2927/609 3892/3174/609 +f 3689/2674/611 3694/2928/612 3889/3176/612 +f 3686/2677/610 3891/3175/610 3890/3178/613 +f 3689/2929/611 3888/3177/611 3697/3179/614 +f 3692/2930/613 3890/3178/613 3889/3176/612 +f 3665/2644/615 3664/2643/614 3697/3180/614 +f 3665/2646/615 3900/3181/615 3899/3182/616 +f 3667/2923/616 3899/3182/616 3898/3183/617 +f 3668/2924/617 3898/3183/617 3696/3184/618 +f 3670/2653/618 3696/3184/618 3897/3185/619 +f 3673/2656/619 3897/3185/619 3896/3186/620 +f 3675/2659/620 3896/3186/620 3895/3170/606 +f 3710/3187/557 3901/3190/621 3905/3188/621 +f 3901/3190/621 3712/3192/622 3906/3191/622 +f 3712/3192/622 3903/3194/559 3713/3193/559 +f 3903/3194/559 3711/3196/623 3714/3195/623 +f 3711/3196/623 3902/3404/624 3715/3197/624 +f 3902/3198/624 3710/3187/557 3904/3189/557 +f 3746/2747/563 4032/3226/563 4030/3200/561 +f 3732/2729/562 4033/3203/562 4031/3201/560 +f 3716/2709/565 4034/3204/565 4032/3202/563 +f 3733/2730/564 4035/3205/564 4033/3203/562 +f 3719/2712/567 4036/3206/567 4034/3204/565 +f 3735/2733/566 4037/3207/566 4035/3205/564 +f 3722/2716/568 4038/3208/568 4036/3206/567 +f 3738/2737/569 4039/3209/569 4037/3207/566 +f 3724/2718/570 4040/3210/570 4038/3208/568 +f 3740/2739/571 4041/3211/571 4039/3209/569 +f 3725/2719/556 4042/3212/556 4040/3210/570 +f 3744/2743/558 4044/3214/558 4041/3211/571 +f 3727/2722/557 4045/3215/557 4042/3212/556 +f 3743/2742/561 4030/3200/561 4043/3213/559 +f 3741/2740/559 4043/3213/559 4044/3214/558 +f 3729/2725/560 4031/3201/560 4045/3215/557 +f 3731/2728/614 3730/2954/611 3915/3233/611 +f 3731/2731/614 3914/3234/614 3913/3235/615 +f 3734/2734/615 3913/3235/615 3912/3236/616 +f 3737/2736/617 3736/2955/616 3912/3236/616 +f 3739/2738/618 3737/2956/617 3911/3237/617 +f 3747/2957/620 3908/3242/620 3907/3239/606 +f 3739/2744/618 3910/3238/618 3909/3240/619 +f 3717/2746/605 3742/2958/606 3907/3239/606 +f 3745/2959/619 3909/3240/619 3908/3242/620 +f 3717/2710/605 3750/3405/605 3919/3243/607 +f 3718/2713/607 3919/3243/607 3749/3244/608 +f 3720/2952/608 3749/3244/608 3918/3245/609 +f 3721/2953/609 3918/3245/609 3748/3246/610 +f 3723/2720/610 3748/3246/610 3917/3247/613 +f 3726/2723/613 3917/3247/613 3916/3248/612 +f 3728/2726/612 3916/3248/612 3915/3233/611 +f 3787/2797/571 4049/3275/571 4047/3249/569 +f 3773/2780/570 4050/3252/570 4048/3250/568 +f 3757/2760/558 4051/3253/558 4049/3251/571 +f 3774/2781/556 4052/3254/556 4050/3252/570 +f 3760/2763/559 4053/3255/559 4051/3253/558 +f 3777/2785/557 4054/3256/557 4052/3254/556 +f 3763/2767/561 4055/3257/561 4053/3255/559 +f 3779/2787/560 4056/3258/560 4054/3256/557 +f 3765/2769/563 4057/3259/563 4055/3257/561 +f 3781/2789/562 4058/3260/562 4056/3258/560 +f 3766/2770/565 4059/3261/565 4057/3259/563 +f 3785/2793/564 4061/3263/564 4058/3260/562 +f 3768/2773/567 4062/3264/567 4059/3261/565 +f 3784/2792/569 4047/3249/569 4060/3262/566 +f 3782/2790/566 4060/3262/566 4061/3263/564 +f 3770/2776/568 4048/3250/568 4062/3264/567 +f 3771/2977/609 3927/3298/609 3789/3282/610 +f 3772/2782/610 3789/3282/610 3926/3283/613 +f 3775/2978/613 3926/3283/613 3925/3284/612 +f 3776/2979/612 3925/3284/612 3924/3285/611 +f 3780/2788/614 3778/2980/611 3924/3285/611 +f 3788/2981/616 3921/3290/616 3920/3287/617 +f 3780/2794/614 3923/3286/614 3922/3288/615 +f 3783/2982/617 3920/3287/617 3791/3289/618 +f 3786/2983/615 3922/3288/615 3921/3290/616 +f 3759/2762/619 3758/2761/618 3791/3291/618 +f 3759/2764/619 3932/3292/619 3931/3293/620 +f 3761/2975/620 3931/3293/620 3930/3294/606 +f 3762/2976/606 3930/3294/606 3790/3295/605 +f 3764/2771/605 3790/3295/605 3929/3296/607 +f 3767/2774/607 3929/3296/607 3928/3297/608 +f 3769/2777/608 3928/3297/608 3927/3298/609 +f 3828/2848/570 4066/3325/570 4064/3299/568 +f 3814/2830/571 4067/3302/571 4065/3300/569 +f 3798/2810/556 4068/3303/556 4066/3301/570 +f 3815/2831/558 4069/3304/558 4067/3302/571 +f 3801/2813/557 4070/3305/557 4068/3303/556 +f 3817/2834/559 4071/3306/559 4069/3304/558 +f 3804/2817/560 4072/3307/560 4070/3305/557 +f 3820/2838/561 4073/3308/561 4071/3306/559 +f 3806/2819/562 4074/3309/562 4072/3307/560 +f 3822/2840/563 4075/3310/563 4073/3308/561 +f 3807/2820/564 4076/3311/564 4074/3309/562 +f 3826/2844/565 4078/3313/565 4075/3310/563 +f 3809/2823/566 4079/3314/566 4076/3311/564 +f 3825/2843/568 4064/3299/568 4077/3312/567 +f 3823/2841/567 4077/3312/567 4078/3313/565 +f 3811/2826/569 4065/3300/569 4079/3314/566 +f 3813/2829/618 3812/3001/617 3940/3332/617 +f 3813/2832/618 3830/3333/618 3939/3334/619 +f 3816/2835/619 3939/3334/619 3938/3335/620 +f 3819/2837/606 3818/3002/620 3938/3335/620 +f 3819/3003/606 3937/3336/606 3936/3337/605 +f 3829/3004/608 3934/3341/608 3933/3338/609 +f 3827/2846/607 3821/2845/605 3936/3337/605 +f 3799/2847/610 3824/3005/609 3933/3338/609 +f 3827/2849/607 3935/3339/607 3934/3341/608 +f 3800/2812/613 3799/2811/610 3832/3342/610 +f 3800/2814/613 3945/3343/613 3944/3344/612 +f 3803/2816/611 3802/2999/612 3944/3344/612 +f 3803/3000/611 3943/3345/611 3831/3346/614 +f 3805/2821/614 3831/3346/614 3942/3347/615 +f 3808/2824/615 3942/3347/615 3941/3348/616 +f 3810/2827/616 3941/3348/616 3940/3332/617 +f 3847/3349/559 3946/3352/623 3950/3350/623 +f 3946/3352/623 3846/3354/624 3951/3353/624 +f 3846/3354/624 3845/3356/557 3848/3355/557 +f 3845/3356/557 3948/3358/621 3849/3357/621 +f 3948/3358/621 3947/3406/622 3850/3359/622 +f 3947/3360/622 3847/3349/559 3949/3351/559 +f 3857/3362/566 3952/3365/676 3956/3363/676 +f 3952/3365/676 3859/3367/677 3957/3366/677 +f 3859/3367/677 3954/3369/567 3860/3368/567 +f 3954/3369/567 3858/3371/678 3861/3370/678 +f 3858/3371/678 3953/3407/679 3862/3372/679 +f 3953/3373/679 3857/3362/566 3955/3364/566 +f 3869/3375/567 3958/3378/678 3962/3376/678 +f 3958/3378/678 3871/3380/679 3963/3379/679 +f 3871/3380/679 3960/3382/566 3872/3381/566 +f 3960/3382/566 3870/3384/676 3873/3383/676 +f 3870/3384/676 3959/3408/677 3874/3385/677 +f 3959/3386/677 3869/3375/567 3961/3377/567 o Huge_Missile v 0.923880 8.500000 0.382684 v 0.618718 8.500000 0.618719 @@ -13166,609 +14486,609 @@ vn 0.9808 0.0000 -0.1951 vn -0.5556 -0.0000 0.8315 vn -0.9808 -0.0000 0.1951 s off -f 4013/2165/682 4014/2166/682 4015/2167/682 -f 4016/2168/682 4017/2169/682 4018/2170/682 -f 4019/2171/682 4014/2166/682 4020/2172/682 -f 4021/2173/682 4022/2174/682 4016/2168/682 -f 4019/2171/682 4023/2175/682 4024/2176/682 -f 4025/2177/682 4026/2178/682 4027/2179/682 -f 4021/2173/682 4027/2179/682 4028/2180/682 -f 4029/2181/682 4023/2175/682 4030/2182/682 -f 4031/2183/682 4026/2178/682 4032/2184/682 -f 4033/2185/682 4034/2186/682 4029/2181/682 -f 4031/2183/682 4035/2187/682 4036/2188/682 -f 4037/2189/682 4038/2190/682 4033/2185/682 -f 4039/2191/682 4040/2192/682 4035/2187/682 -f 4041/2193/682 4042/2194/682 4037/2189/682 -f 4043/2195/682 4015/2167/682 4040/2192/682 -f 4044/2196/682 4045/2197/682 4046/2198/682 -f 4018/2170/682 4047/2199/682 4041/2200/682 -f 4048/2201/683 4049/2202/683 4050/2203/683 -f 4051/2204/683 4052/2205/683 4048/2201/683 -f 4053/2206/683 4054/2207/683 4051/2204/683 -f 4055/2208/683 4056/2209/683 4053/2206/683 -f 4057/2210/683 4058/2211/683 4055/2208/683 -f 4059/2212/683 4060/2213/683 4057/2210/683 -f 4059/2212/683 4061/2214/683 4062/2215/683 -f 4063/2216/683 4064/2217/683 4061/2214/683 -f 4065/2218/683 4066/2219/683 4064/2217/683 -f 4067/2220/683 4068/2221/683 4066/2222/683 -f 4069/2223/683 4070/2224/683 4068/2221/683 -f 4071/2225/683 4070/2224/683 4072/2226/683 -f 4071/2225/683 4073/2227/683 4074/2228/683 -f 4075/2229/683 4073/2227/683 4076/2230/683 -f 4077/2231/683 4078/2232/683 4075/2229/683 -f 4050/2203/683 4079/2233/683 4077/2231/683 -f 4080/2234/682 4081/2235/682 4082/2236/682 -f 4083/2237/682 4084/2238/682 4085/2239/682 -f 4086/2240/684 4087/2241/684 4088/2242/684 -f 4084/2238/685 4087/2243/685 4086/2240/685 -f 4085/2244/686 4087/2243/686 4083/2237/686 -f 4089/2245/682 4090/2246/682 4091/2247/682 -f 4092/2248/682 4093/2249/682 4094/2250/682 -f 4095/2251/682 4096/2252/682 4097/2253/682 -f 4098/2254/682 4099/2255/682 4100/2256/682 -f 4101/2257/687 4102/2258/687 4103/2259/687 -f 4099/2255/688 4102/2260/688 4101/2257/688 -f 4100/2261/689 4102/2260/689 4098/2254/689 -f 4104/2262/682 4105/2263/682 4106/2264/682 -f 4107/2265/690 4108/2266/690 4109/2267/690 -f 4105/2263/691 4108/2268/691 4107/2265/691 -f 4106/2269/692 4108/2268/692 4104/2262/692 -f 4110/2270/682 4111/2271/682 4112/2272/682 -f 4113/2273/693 4114/2274/693 4115/2275/693 -f 4111/2271/694 4114/2276/694 4113/2273/694 -f 4112/2277/695 4114/2276/695 4110/2270/695 -f 4013/2165/682 4020/2172/682 4014/2166/682 -f 4016/2168/682 4022/2174/682 4017/2169/682 -f 4019/2171/682 4024/2176/682 4014/2166/682 -f 4021/2173/682 4028/2180/682 4022/2174/682 -f 4019/2171/682 4030/2182/682 4023/2175/682 -f 4025/2177/682 4032/2184/682 4026/2178/682 -f 4021/2173/682 4025/2177/682 4027/2179/682 -f 4029/2181/682 4034/2186/682 4023/2175/682 -f 4031/2183/682 4036/2188/682 4026/2178/682 -f 4033/2185/682 4038/2190/682 4034/2186/682 -f 4031/2183/682 4039/2191/682 4035/2187/682 -f 4037/2189/682 4042/2194/682 4038/2190/682 -f 4039/2191/682 4043/2195/682 4040/2192/682 -f 4041/2193/682 4047/2278/682 4042/2194/682 -f 4043/2195/682 4013/2165/682 4015/2167/682 -f 4046/2198/682 4116/2279/682 4117/2280/682 -f 4116/2279/682 4118/2281/682 4117/2280/682 -f 4118/2281/682 4119/2282/682 4117/2280/682 -f 4117/2280/682 4120/2283/682 4121/2284/682 -f 4121/2284/682 4122/2285/682 4044/2196/682 -f 4044/2196/682 4123/2286/682 4045/2197/682 -f 4123/2286/682 4124/2287/682 4045/2197/682 -f 4124/2287/682 4125/2288/682 4045/2197/682 -f 4045/2197/682 4126/2289/682 4127/2290/682 -f 4127/2290/682 4128/2291/682 4045/2197/682 -f 4128/2291/682 4046/2198/682 4045/2197/682 -f 4117/2280/682 4121/2284/682 4046/2198/682 -f 4121/2284/682 4044/2196/682 4046/2198/682 -f 4018/2170/682 4017/2169/682 4047/2199/682 -f 4048/2201/683 4052/2205/683 4049/2202/683 -f 4051/2204/683 4054/2207/683 4052/2205/683 -f 4053/2206/683 4056/2209/683 4054/2207/683 -f 4055/2208/683 4058/2211/683 4056/2209/683 -f 4057/2210/683 4060/2213/683 4058/2211/683 -f 4059/2212/683 4062/2215/683 4060/2213/683 -f 4059/2212/683 4063/2216/683 4061/2214/683 -f 4063/2216/683 4065/2218/683 4064/2217/683 -f 4065/2218/683 4067/2292/683 4066/2219/683 -f 4067/2220/683 4069/2223/683 4068/2221/683 -f 4069/2223/683 4072/2226/683 4070/2224/683 -f 4071/2225/683 4074/2228/683 4070/2224/683 -f 4071/2225/683 4076/2230/683 4073/2227/683 -f 4075/2229/683 4078/2232/683 4073/2227/683 -f 4077/2231/683 4079/2233/683 4078/2232/683 -f 4050/2203/683 4049/2202/683 4079/2233/683 -f 4080/2234/682 4129/2293/682 4130/2294/682 -f 4130/2294/682 4131/2295/682 4080/2234/682 -f 4131/2295/682 4081/2235/682 4080/2234/682 -f 4081/2235/682 4132/2296/682 4133/2297/682 -f 4133/2297/682 4134/2298/682 4082/2236/682 -f 4082/2236/682 4135/2299/682 4136/2300/682 -f 4136/2300/682 4137/2301/682 4138/2302/682 -f 4138/2302/682 4139/2303/682 4140/2304/682 -f 4140/2304/682 4141/2305/682 4080/2234/682 -f 4081/2235/682 4133/2297/682 4082/2236/682 -f 4082/2236/682 4136/2300/682 4080/2234/682 -f 4136/2300/682 4138/2302/682 4080/2234/682 -f 4138/2302/682 4140/2304/682 4080/2234/682 -f 4084/2238/685 4083/2237/685 4087/2243/685 -f 4085/2244/686 4088/2306/686 4087/2243/686 -f 4091/2247/682 4142/2307/682 4143/2308/682 -f 4142/2307/682 4144/2309/682 4143/2308/682 -f 4144/2309/682 4145/2310/682 4143/2308/682 -f 4143/2308/682 4146/2311/682 4147/2312/682 -f 4147/2312/682 4148/2313/682 4089/2245/682 -f 4089/2245/682 4149/2314/682 4090/2246/682 -f 4149/2314/682 4150/2315/682 4090/2246/682 -f 4150/2315/682 4151/2316/682 4090/2246/682 -f 4090/2246/682 4152/2317/682 4153/2318/682 -f 4153/2318/682 4154/2319/682 4090/2246/682 -f 4154/2319/682 4091/2247/682 4090/2246/682 -f 4143/2308/682 4147/2312/682 4091/2247/682 -f 4147/2312/682 4089/2245/682 4091/2247/682 -f 4094/2250/682 4155/2320/682 4156/2321/682 -f 4155/2320/682 4157/2322/682 4156/2321/682 -f 4157/2322/682 4158/2323/682 4156/2321/682 -f 4156/2321/682 4159/2324/682 4160/2325/682 -f 4160/2325/682 4161/2326/682 4092/2248/682 -f 4092/2248/682 4162/2327/682 4093/2249/682 -f 4162/2327/682 4163/2328/682 4093/2249/682 -f 4163/2328/682 4164/2329/682 4093/2249/682 -f 4093/2249/682 4165/2330/682 4166/2331/682 -f 4166/2331/682 4167/2332/682 4093/2249/682 -f 4167/2332/682 4094/2250/682 4093/2249/682 -f 4156/2321/682 4160/2325/682 4094/2250/682 -f 4160/2325/682 4092/2248/682 4094/2250/682 -f 4097/2253/682 4168/2333/682 4169/2334/682 -f 4168/2333/682 4170/2335/682 4169/2334/682 -f 4170/2335/682 4171/2336/682 4169/2334/682 -f 4169/2334/682 4172/2337/682 4173/2338/682 -f 4173/2338/682 4174/2339/682 4095/2251/682 -f 4095/2251/682 4175/2340/682 4096/2252/682 -f 4175/2340/682 4176/2341/682 4096/2252/682 -f 4176/2341/682 4177/2342/682 4096/2252/682 -f 4096/2252/682 4178/2343/682 4179/2344/682 -f 4179/2344/682 4180/2345/682 4096/2252/682 -f 4180/2345/682 4097/2253/682 4096/2252/682 -f 4169/2334/682 4173/2338/682 4097/2253/682 -f 4173/2338/682 4095/2251/682 4097/2253/682 -f 4099/2255/688 4098/2254/688 4102/2260/688 -f 4100/2261/689 4103/2346/689 4102/2260/689 -f 4105/2263/691 4104/2262/691 4108/2268/691 -f 4106/2269/692 4109/2347/692 4108/2268/692 -f 4111/2271/694 4110/2270/694 4114/2276/694 -f 4112/2277/695 4115/2348/695 4114/2276/695 +f 4081/3409/680 4082/3410/680 4083/3411/680 +f 4084/3412/680 4085/3413/680 4086/3414/680 +f 4087/3415/680 4082/3410/680 4088/3416/680 +f 4089/3417/680 4090/3418/680 4084/3412/680 +f 4087/3415/680 4091/3419/680 4092/3420/680 +f 4093/3421/680 4094/3422/680 4095/3423/680 +f 4089/3417/680 4095/3423/680 4096/3424/680 +f 4097/3425/680 4091/3419/680 4098/3426/680 +f 4099/3427/680 4094/3422/680 4100/3428/680 +f 4101/3429/680 4102/3430/680 4097/3425/680 +f 4099/3427/680 4103/3431/680 4104/3432/680 +f 4105/3433/680 4106/3434/680 4101/3429/680 +f 4107/3435/680 4108/3436/680 4103/3431/680 +f 4109/3437/680 4110/3438/680 4105/3433/680 +f 4111/3439/680 4083/3411/680 4108/3436/680 +f 4112/3440/680 4113/3441/680 4114/3442/680 +f 4086/3414/680 4115/3443/680 4109/3444/680 +f 4116/3445/681 4117/3446/681 4118/3447/681 +f 4119/3448/681 4120/3449/681 4116/3445/681 +f 4121/3450/681 4122/3451/681 4119/3448/681 +f 4123/3452/681 4124/3453/681 4121/3450/681 +f 4125/3454/681 4126/3455/681 4123/3452/681 +f 4127/3456/681 4128/3457/681 4125/3454/681 +f 4127/3456/681 4129/3458/681 4130/3459/681 +f 4131/3460/681 4132/3461/681 4129/3458/681 +f 4133/3462/681 4134/3463/681 4132/3461/681 +f 4135/3464/681 4136/3465/681 4134/3466/681 +f 4137/3467/681 4138/3468/681 4136/3465/681 +f 4139/3469/681 4138/3468/681 4140/3470/681 +f 4139/3469/681 4141/3471/681 4142/3472/681 +f 4143/3473/681 4141/3471/681 4144/3474/681 +f 4145/3475/681 4146/3476/681 4143/3473/681 +f 4118/3447/681 4147/3477/681 4145/3475/681 +f 4148/3478/680 4149/3479/680 4150/3480/680 +f 4151/3481/680 4152/3482/680 4153/3483/680 +f 4154/3484/682 4155/3485/682 4156/3486/682 +f 4152/3482/683 4155/3487/683 4154/3484/683 +f 4153/3488/684 4155/3487/684 4151/3481/684 +f 4157/3489/680 4158/3490/680 4159/3491/680 +f 4160/3492/680 4161/3493/680 4162/3494/680 +f 4163/3495/680 4164/3496/680 4165/3497/680 +f 4166/3498/680 4167/3499/680 4168/3500/680 +f 4169/3501/685 4170/3502/685 4171/3503/685 +f 4167/3499/686 4170/3504/686 4169/3501/686 +f 4168/3505/687 4170/3504/687 4166/3498/687 +f 4172/3506/680 4173/3507/680 4174/3508/680 +f 4175/3509/688 4176/3510/688 4177/3511/688 +f 4173/3507/689 4176/3512/689 4175/3509/689 +f 4174/3513/690 4176/3512/690 4172/3506/690 +f 4178/3514/680 4179/3515/680 4180/3516/680 +f 4181/3517/691 4182/3518/691 4183/3519/691 +f 4179/3515/692 4182/3520/692 4181/3517/692 +f 4180/3521/693 4182/3520/693 4178/3514/693 +f 4081/3409/680 4088/3416/680 4082/3410/680 +f 4084/3412/680 4090/3418/680 4085/3413/680 +f 4087/3415/680 4092/3420/680 4082/3410/680 +f 4089/3417/680 4096/3424/680 4090/3418/680 +f 4087/3415/680 4098/3426/680 4091/3419/680 +f 4093/3421/680 4100/3428/680 4094/3422/680 +f 4089/3417/680 4093/3421/680 4095/3423/680 +f 4097/3425/680 4102/3430/680 4091/3419/680 +f 4099/3427/680 4104/3432/680 4094/3422/680 +f 4101/3429/680 4106/3434/680 4102/3430/680 +f 4099/3427/680 4107/3435/680 4103/3431/680 +f 4105/3433/680 4110/3438/680 4106/3434/680 +f 4107/3435/680 4111/3439/680 4108/3436/680 +f 4109/3437/680 4115/3522/680 4110/3438/680 +f 4111/3439/680 4081/3409/680 4083/3411/680 +f 4114/3442/680 4184/3523/680 4185/3524/680 +f 4184/3523/680 4186/3525/680 4185/3524/680 +f 4186/3525/680 4187/3526/680 4185/3524/680 +f 4185/3524/680 4188/3527/680 4189/3528/680 +f 4189/3528/680 4190/3529/680 4112/3440/680 +f 4112/3440/680 4191/3530/680 4113/3441/680 +f 4191/3530/680 4192/3531/680 4113/3441/680 +f 4192/3531/680 4193/3532/680 4113/3441/680 +f 4113/3441/680 4194/3533/680 4195/3534/680 +f 4195/3534/680 4196/3535/680 4113/3441/680 +f 4196/3535/680 4114/3442/680 4113/3441/680 +f 4185/3524/680 4189/3528/680 4114/3442/680 +f 4189/3528/680 4112/3440/680 4114/3442/680 +f 4086/3414/680 4085/3413/680 4115/3443/680 +f 4116/3445/681 4120/3449/681 4117/3446/681 +f 4119/3448/681 4122/3451/681 4120/3449/681 +f 4121/3450/681 4124/3453/681 4122/3451/681 +f 4123/3452/681 4126/3455/681 4124/3453/681 +f 4125/3454/681 4128/3457/681 4126/3455/681 +f 4127/3456/681 4130/3459/681 4128/3457/681 +f 4127/3456/681 4131/3460/681 4129/3458/681 +f 4131/3460/681 4133/3462/681 4132/3461/681 +f 4133/3462/681 4135/3536/681 4134/3463/681 +f 4135/3464/681 4137/3467/681 4136/3465/681 +f 4137/3467/681 4140/3470/681 4138/3468/681 +f 4139/3469/681 4142/3472/681 4138/3468/681 +f 4139/3469/681 4144/3474/681 4141/3471/681 +f 4143/3473/681 4146/3476/681 4141/3471/681 +f 4145/3475/681 4147/3477/681 4146/3476/681 +f 4118/3447/681 4117/3446/681 4147/3477/681 +f 4148/3478/680 4197/3537/680 4198/3538/680 +f 4198/3538/680 4199/3539/680 4148/3478/680 +f 4199/3539/680 4149/3479/680 4148/3478/680 +f 4149/3479/680 4200/3540/680 4201/3541/680 +f 4201/3541/680 4202/3542/680 4150/3480/680 +f 4150/3480/680 4203/3543/680 4204/3544/680 +f 4204/3544/680 4205/3545/680 4206/3546/680 +f 4206/3546/680 4207/3547/680 4208/3548/680 +f 4208/3548/680 4209/3549/680 4148/3478/680 +f 4149/3479/680 4201/3541/680 4150/3480/680 +f 4150/3480/680 4204/3544/680 4148/3478/680 +f 4204/3544/680 4206/3546/680 4148/3478/680 +f 4206/3546/680 4208/3548/680 4148/3478/680 +f 4152/3482/683 4151/3481/683 4155/3487/683 +f 4153/3488/684 4156/3550/684 4155/3487/684 +f 4159/3491/680 4210/3551/680 4211/3552/680 +f 4210/3551/680 4212/3553/680 4211/3552/680 +f 4212/3553/680 4213/3554/680 4211/3552/680 +f 4211/3552/680 4214/3555/680 4215/3556/680 +f 4215/3556/680 4216/3557/680 4157/3489/680 +f 4157/3489/680 4217/3558/680 4158/3490/680 +f 4217/3558/680 4218/3559/680 4158/3490/680 +f 4218/3559/680 4219/3560/680 4158/3490/680 +f 4158/3490/680 4220/3561/680 4221/3562/680 +f 4221/3562/680 4222/3563/680 4158/3490/680 +f 4222/3563/680 4159/3491/680 4158/3490/680 +f 4211/3552/680 4215/3556/680 4159/3491/680 +f 4215/3556/680 4157/3489/680 4159/3491/680 +f 4162/3494/680 4223/3564/680 4224/3565/680 +f 4223/3564/680 4225/3566/680 4224/3565/680 +f 4225/3566/680 4226/3567/680 4224/3565/680 +f 4224/3565/680 4227/3568/680 4228/3569/680 +f 4228/3569/680 4229/3570/680 4160/3492/680 +f 4160/3492/680 4230/3571/680 4161/3493/680 +f 4230/3571/680 4231/3572/680 4161/3493/680 +f 4231/3572/680 4232/3573/680 4161/3493/680 +f 4161/3493/680 4233/3574/680 4234/3575/680 +f 4234/3575/680 4235/3576/680 4161/3493/680 +f 4235/3576/680 4162/3494/680 4161/3493/680 +f 4224/3565/680 4228/3569/680 4162/3494/680 +f 4228/3569/680 4160/3492/680 4162/3494/680 +f 4165/3497/680 4236/3577/680 4237/3578/680 +f 4236/3577/680 4238/3579/680 4237/3578/680 +f 4238/3579/680 4239/3580/680 4237/3578/680 +f 4237/3578/680 4240/3581/680 4241/3582/680 +f 4241/3582/680 4242/3583/680 4163/3495/680 +f 4163/3495/680 4243/3584/680 4164/3496/680 +f 4243/3584/680 4244/3585/680 4164/3496/680 +f 4244/3585/680 4245/3586/680 4164/3496/680 +f 4164/3496/680 4246/3587/680 4247/3588/680 +f 4247/3588/680 4248/3589/680 4164/3496/680 +f 4248/3589/680 4165/3497/680 4164/3496/680 +f 4237/3578/680 4241/3582/680 4165/3497/680 +f 4241/3582/680 4163/3495/680 4165/3497/680 +f 4167/3499/686 4166/3498/686 4170/3504/686 +f 4168/3505/687 4171/3590/687 4170/3504/687 +f 4173/3507/689 4172/3506/689 4176/3512/689 +f 4174/3513/690 4177/3591/690 4176/3512/690 +f 4179/3515/692 4178/3514/692 4182/3520/692 +f 4180/3521/693 4183/3592/693 4182/3520/693 s 1 -f 4181/2349/696 4139/2350/697 4182/2351/697 -f 4183/2352/698 4184/2353/699 4185/2354/699 -f 4186/2355/700 4187/2356/701 4188/2357/701 -f 4189/2358/702 4190/2359/698 4183/2352/698 -f 4191/2360/703 4192/2361/700 4186/2355/700 -f 4193/2362/704 4194/2363/702 4189/2358/702 -f 4191/2360/703 4195/2364/705 4196/2365/703 -f 4197/2366/706 4198/2367/704 4193/2368/704 -f 4199/2369/707 4195/2370/705 4200/2371/705 -f 4201/2372/708 4202/2373/706 4197/2366/706 -f 4203/2374/709 4204/2375/707 4199/2369/707 -f 4205/2376/710 4206/2377/708 4201/2372/708 -f 4207/2378/711 4208/2379/709 4203/2374/709 -f 4209/2380/712 4210/2381/710 4205/2376/710 -f 4185/2354/699 4211/2382/713 4212/2383/713 -f 4212/2383/713 4213/2384/711 4207/2378/711 -f 4188/2357/701 4214/2385/712 4209/2380/712 -f 4215/2386/714 4133/2387/715 4216/2388/715 -f 4184/2353/716 4190/2389/717 4217/2390/683 -f 4190/2359/717 4194/2391/718 4217/2392/683 -f 4194/2363/718 4198/2393/719 4217/2394/683 -f 4198/2367/719 4202/2395/720 4217/2396/683 -f 4202/2373/720 4206/2397/721 4217/2398/683 -f 4206/2377/721 4210/2399/722 4217/2400/683 -f 4210/2381/722 4214/2401/723 4217/2402/683 -f 4214/2385/723 4187/2403/724 4217/2404/683 -f 4187/2356/724 4192/2405/725 4217/2406/683 -f 4192/2361/725 4196/2407/726 4217/2408/683 -f 4196/2365/726 4195/2364/727 4217/2409/683 -f 4195/2370/727 4204/2410/728 4217/2411/683 -f 4204/2375/728 4208/2412/729 4217/2413/683 -f 4208/2379/729 4213/2414/730 4217/2415/683 -f 4213/2384/730 4211/2416/731 4217/2417/683 -f 4211/2382/731 4184/2418/716 4217/2419/683 -f 4218/2420/732 4140/2421/696 4181/2422/696 -f 4219/2423/733 4134/2424/714 4215/2386/714 -f 4220/2425/734 4141/2426/732 4218/2420/732 -f 4221/2427/735 4082/2428/733 4219/2423/733 -f 4222/2429/736 4080/2430/734 4220/2425/734 -f 4223/2431/737 4135/2432/735 4221/2427/735 -f 4224/2433/738 4130/2434/739 4225/2435/739 -f 4225/2435/739 4129/2436/736 4222/2429/736 -f 4226/2437/740 4136/2438/737 4223/2431/737 -f 4227/2439/741 4131/2440/738 4224/2433/738 -f 4228/2441/742 4229/2442/693 4230/2443/693 -f 4231/2444/743 4229/2442/693 4232/2445/743 -f 4231/2444/743 4233/2446/744 4234/2447/744 -f 4235/2448/745 4233/2449/744 4236/2450/745 -f 4235/2448/745 4237/2451/687 4238/2452/687 -f 4238/2452/687 4239/2453/746 4240/2454/746 -f 4240/2454/746 4241/2455/747 4242/2456/747 -f 4242/2456/747 4243/2457/748 4244/2458/748 -f 4244/2458/748 4245/2459/690 4246/2460/690 -f 4247/2461/749 4245/2459/690 4248/2462/749 -f 4247/2461/749 4249/2463/750 4250/2464/750 -f 4250/2464/750 4251/2465/751 4252/2466/751 -f 4252/2466/751 4253/2467/684 4254/2468/684 -f 4255/2469/752 4253/2467/684 4256/2470/752 -f 4257/2471/753 4256/2470/752 4258/2472/753 -f 4128/2473/732 4246/2460/734 4046/2474/734 -f 4044/2475/733 4231/2444/735 4123/2476/735 -f 4046/2474/734 4247/2461/736 4116/2477/736 -f 4123/2476/735 4234/2447/737 4124/2478/737 -f 4118/2479/739 4252/2466/738 4119/2480/738 -f 4116/2477/736 4250/2464/739 4118/2479/739 -f 4124/2481/737 4235/2448/740 4125/2482/740 -f 4119/2480/738 4254/2468/741 4117/2483/741 -f 4125/2482/740 4238/2452/754 4045/2484/754 -f 4117/2483/741 4255/2469/755 4120/2485/755 -f 4045/2484/754 4240/2454/697 4126/2486/697 -f 4120/2485/755 4257/2471/715 4121/2487/715 -f 4126/2486/697 4242/2456/696 4127/2488/696 -f 4121/2487/715 4228/2441/714 4122/2489/714 -f 4127/2488/696 4244/2458/732 4128/2473/732 -f 4122/2489/714 4230/2443/733 4044/2475/733 -f 4257/2471/753 4259/2490/742 4228/2441/742 -f 4053/2491/756 4224/2433/757 4055/2492/757 -f 4216/2388/715 4132/2493/755 4260/2494/755 -f 4028/2180/736 4061/2214/734 4022/2174/734 -f 4024/2176/735 4079/2233/733 4014/2166/733 -f 4022/2174/734 4064/2217/732 4017/2169/732 -f 4014/2166/733 4049/2202/714 4015/2167/714 -f 4017/2169/732 4066/2219/696 4047/2199/696 -f 4015/2167/714 4052/2205/715 4040/2192/715 -f 4047/2278/696 4068/2221/697 4042/2194/697 -f 4040/2192/715 4054/2207/755 4035/2187/755 -f 4042/2194/697 4070/2224/754 4038/2190/754 -f 4035/2187/755 4056/2209/741 4036/2188/741 -f 4038/2190/754 4074/2228/740 4034/2186/740 -f 4036/2188/741 4058/2211/738 4026/2178/738 -f 4034/2186/740 4073/2227/737 4023/2175/737 -f 4027/2179/739 4062/2215/736 4028/2180/736 -f 4026/2178/738 4060/2213/739 4027/2179/739 -f 4023/2175/737 4078/2232/735 4024/2176/735 -f 4071/2495/758 4261/2496/759 4226/2437/758 -f 4051/2497/760 4227/2439/756 4053/2491/756 -f 4069/2498/761 4261/2496/759 4072/2499/759 -f 4048/2500/762 4260/2494/760 4051/2497/760 -f 4069/2498/761 4181/2349/763 4182/2351/761 -f 4048/2500/762 4215/2386/764 4216/2388/762 -f 4065/2501/765 4181/2422/763 4067/2502/763 -f 4077/2503/766 4215/2386/764 4050/2504/764 -f 4063/2505/767 4218/2420/765 4065/2501/765 -f 4077/2503/766 4221/2427/768 4219/2423/766 -f 4059/2506/769 4220/2425/767 4063/2505/767 -f 4076/2507/770 4221/2427/768 4075/2508/768 -f 4057/2509/771 4224/2433/757 4225/2435/771 -f 4057/2509/771 4222/2429/769 4059/2506/769 -f 4071/2495/758 4223/2431/770 4076/2507/770 -f 4261/2496/754 4137/2510/740 4226/2437/740 -f 4260/2494/755 4081/2511/741 4227/2439/741 -f 4182/2351/697 4138/2512/754 4261/2496/754 -f 4013/2165/714 4200/2371/715 4191/2360/714 -f 4043/2195/715 4199/2369/755 4200/2371/715 -f 4039/2191/755 4203/2374/741 4199/2369/755 -f 4031/2183/741 4207/2378/738 4203/2374/741 -f 4032/2184/738 4212/2383/739 4207/2378/738 -f 4025/2177/739 4185/2354/736 4212/2383/739 -f 4021/2173/736 4183/2352/734 4185/2354/736 -f 4016/2168/734 4189/2358/732 4183/2352/734 -f 4018/2170/732 4193/2362/696 4189/2358/732 -f 4041/2193/696 4197/2366/697 4193/2368/696 -f 4037/2189/697 4201/2372/754 4197/2366/697 -f 4033/2185/754 4205/2376/740 4201/2372/754 -f 4029/2181/740 4209/2380/737 4205/2376/740 -f 4030/2182/737 4188/2357/735 4209/2380/737 -f 4019/2171/735 4186/2355/733 4188/2357/735 -f 4020/2172/733 4191/2360/714 4186/2355/733 -f 4262/2513/741 4263/2514/772 4264/2515/741 -f 4265/2516/755 4264/2515/741 4266/2517/755 -f 4267/2518/773 4266/2517/755 4268/2519/773 -f 4269/2520/742 4270/2521/693 4271/2522/693 -f 4272/2523/743 4270/2521/693 4273/2524/743 -f 4272/2523/743 4274/2525/744 4275/2526/744 -f 4276/2527/745 4274/2528/744 4277/2529/745 -f 4276/2527/745 4278/2530/687 4279/2531/687 -f 4279/2531/687 4280/2532/746 4281/2533/746 -f 4281/2533/746 4282/2534/747 4283/2535/747 -f 4284/2536/748 4282/2534/747 4285/2537/748 -f 4284/2536/748 4286/2538/690 4287/2539/690 -f 4288/2540/749 4286/2538/690 4289/2541/749 -f 4290/2542/750 4289/2541/749 4291/2543/750 -f 4290/2542/750 4292/2544/751 4293/2545/751 -f 4294/2546/684 4292/2544/751 4295/2547/684 -f 4296/2548/752 4295/2547/684 4297/2549/752 -f 4298/2550/753 4297/2549/752 4299/2551/753 -f 4154/2552/732 4287/2539/734 4091/2553/734 -f 4089/2554/733 4272/2523/735 4149/2555/735 -f 4091/2553/734 4288/2540/736 4142/2556/736 -f 4149/2555/735 4275/2526/737 4150/2557/737 -f 4144/2558/739 4293/2545/738 4145/2559/738 -f 4142/2556/736 4290/2542/739 4144/2558/739 -f 4150/2560/737 4276/2527/740 4151/2561/740 -f 4145/2559/738 4294/2546/741 4143/2562/741 -f 4151/2561/740 4279/2531/754 4090/2563/754 -f 4143/2562/741 4296/2548/755 4146/2564/755 -f 4090/2563/754 4281/2533/697 4152/2565/697 -f 4146/2564/755 4298/2550/715 4147/2566/715 -f 4152/2565/697 4283/2535/696 4153/2567/696 -f 4147/2566/715 4269/2520/714 4148/2568/714 -f 4153/2567/696 4284/2536/732 4154/2552/732 -f 4148/2568/714 4271/2522/733 4089/2554/733 -f 4298/2550/753 4300/2569/742 4269/2520/742 -f 4301/2570/742 4302/2571/693 4303/2572/693 -f 4304/2573/743 4302/2571/693 4305/2574/743 -f 4304/2573/743 4306/2575/744 4307/2576/744 -f 4308/2577/745 4306/2578/744 4309/2579/745 -f 4308/2577/745 4310/2580/687 4311/2581/687 -f 4311/2581/687 4312/2582/746 4313/2583/746 -f 4313/2583/746 4314/2584/747 4315/2585/747 -f 4316/2586/748 4314/2584/747 4317/2587/748 -f 4316/2586/748 4318/2588/690 4319/2589/690 -f 4320/2590/749 4318/2588/690 4321/2591/749 -f 4320/2590/749 4322/2592/750 4323/2593/750 -f 4323/2593/750 4324/2594/751 4325/2595/751 -f 4325/2595/751 4326/2596/684 4327/2597/684 -f 4328/2598/752 4326/2596/684 4329/2599/752 -f 4330/2600/753 4329/2599/752 4331/2601/753 -f 4167/2602/732 4319/2589/734 4094/2603/734 -f 4092/2604/733 4304/2573/735 4162/2605/735 -f 4094/2603/734 4320/2590/736 4155/2606/736 -f 4162/2605/735 4307/2576/737 4163/2607/737 -f 4157/2608/739 4325/2595/738 4158/2609/738 -f 4155/2606/736 4323/2593/739 4157/2608/739 -f 4163/2610/737 4308/2577/740 4164/2611/740 -f 4158/2609/738 4327/2597/741 4156/2612/741 -f 4164/2611/740 4311/2581/754 4093/2613/754 -f 4156/2612/741 4328/2598/755 4159/2614/755 -f 4093/2613/754 4313/2583/697 4165/2615/697 -f 4159/2614/755 4330/2600/715 4160/2616/715 -f 4165/2615/697 4315/2585/696 4166/2617/696 -f 4160/2616/715 4301/2570/714 4161/2618/714 -f 4166/2617/696 4316/2586/732 4167/2602/732 -f 4161/2618/714 4303/2572/733 4092/2604/733 -f 4330/2600/753 4332/2619/742 4301/2570/742 -f 4333/2620/742 4334/2621/693 4335/2622/693 -f 4336/2623/743 4334/2621/693 4337/2624/743 -f 4336/2623/743 4338/2625/744 4339/2626/744 -f 4340/2627/745 4338/2628/744 4341/2629/745 -f 4340/2627/745 4342/2630/687 4343/2631/687 -f 4343/2631/687 4344/2632/746 4345/2633/746 -f 4345/2633/746 4346/2634/747 4347/2635/747 -f 4348/2636/748 4346/2634/747 4349/2637/748 -f 4348/2636/748 4350/2638/690 4351/2639/690 -f 4352/2640/749 4350/2638/690 4353/2641/749 -f 4352/2640/749 4354/2642/750 4355/2643/750 -f 4355/2643/750 4356/2644/751 4357/2645/751 -f 4357/2645/751 4358/2646/684 4359/2647/684 -f 4360/2648/752 4358/2646/684 4361/2649/752 -f 4362/2650/753 4361/2649/752 4363/2651/753 -f 4180/2652/732 4351/2639/734 4097/2653/734 -f 4095/2654/733 4336/2623/735 4175/2655/735 -f 4097/2653/734 4352/2640/736 4168/2656/736 -f 4175/2655/735 4339/2626/737 4176/2657/737 -f 4170/2658/739 4357/2645/738 4171/2659/738 -f 4168/2656/736 4355/2643/739 4170/2658/739 -f 4176/2660/737 4340/2627/740 4177/2661/740 -f 4171/2659/738 4359/2647/741 4169/2662/741 -f 4177/2661/740 4343/2631/754 4096/2663/754 -f 4169/2662/741 4360/2648/755 4172/2664/755 -f 4096/2663/754 4345/2633/697 4178/2665/697 -f 4172/2664/755 4362/2650/715 4173/2666/715 -f 4178/2665/697 4347/2635/696 4179/2667/696 -f 4173/2666/715 4333/2620/714 4174/2668/714 -f 4179/2667/696 4348/2636/732 4180/2652/732 -f 4174/2668/714 4335/2622/733 4095/2654/733 -f 4362/2650/753 4364/2669/742 4333/2620/742 -f 4365/2670/754 4366/2671/774 4367/2672/754 -f 4368/2673/697 4367/2672/754 4369/2674/697 -f 4370/2675/775 4369/2674/697 4371/2676/775 -f 4181/2349/696 4140/2677/696 4139/2350/697 -f 4183/2352/698 4190/2389/698 4184/2353/699 -f 4186/2355/700 4192/2405/700 4187/2356/701 -f 4189/2358/702 4194/2391/702 4190/2359/698 -f 4191/2360/703 4196/2407/703 4192/2361/700 -f 4193/2362/704 4198/2393/704 4194/2363/702 -f 4191/2360/703 4200/2371/705 4195/2364/705 -f 4197/2366/706 4202/2395/706 4198/2367/704 -f 4199/2369/707 4204/2410/707 4195/2370/705 -f 4201/2372/708 4206/2397/708 4202/2373/706 -f 4203/2374/709 4208/2412/709 4204/2375/707 -f 4205/2376/710 4210/2399/710 4206/2377/708 -f 4207/2378/711 4213/2414/711 4208/2379/709 -f 4209/2380/712 4214/2401/712 4210/2381/710 -f 4185/2354/699 4184/2418/699 4211/2382/713 -f 4212/2383/713 4211/2416/713 4213/2384/711 -f 4188/2357/701 4187/2403/701 4214/2385/712 -f 4215/2386/714 4134/2424/714 4133/2387/715 -f 4218/2420/732 4141/2426/732 4140/2421/696 -f 4219/2423/733 4082/2428/733 4134/2424/714 -f 4220/2425/734 4080/2430/734 4141/2426/732 -f 4221/2427/735 4135/2432/735 4082/2428/733 -f 4222/2429/736 4129/2436/736 4080/2430/734 -f 4223/2431/737 4136/2438/737 4135/2432/735 -f 4224/2433/738 4131/2440/738 4130/2434/739 -f 4225/2435/739 4130/2434/739 4129/2436/736 -f 4226/2437/740 4137/2510/740 4136/2438/737 -f 4227/2439/741 4081/2511/741 4131/2440/738 -f 4228/2441/742 4259/2490/742 4229/2442/693 -f 4231/2444/743 4230/2443/693 4229/2442/693 -f 4231/2444/743 4232/2445/743 4233/2446/744 -f 4235/2448/745 4234/2678/744 4233/2449/744 -f 4235/2448/745 4236/2450/745 4237/2451/687 -f 4238/2452/687 4237/2451/687 4239/2453/746 -f 4240/2454/746 4239/2453/746 4241/2455/747 -f 4242/2456/747 4241/2455/747 4243/2457/748 -f 4244/2458/748 4243/2457/748 4245/2459/690 -f 4247/2461/749 4246/2460/690 4245/2459/690 -f 4247/2461/749 4248/2462/749 4249/2463/750 -f 4250/2464/750 4249/2463/750 4251/2465/751 -f 4252/2466/751 4251/2465/751 4253/2467/684 -f 4255/2469/752 4254/2468/684 4253/2467/684 -f 4257/2471/753 4255/2469/752 4256/2470/752 -f 4128/2473/732 4244/2458/732 4246/2460/734 -f 4044/2475/733 4230/2443/733 4231/2444/735 -f 4046/2474/734 4246/2460/734 4247/2461/736 -f 4123/2476/735 4231/2444/735 4234/2447/737 -f 4118/2479/739 4250/2464/739 4252/2466/738 -f 4116/2477/736 4247/2461/736 4250/2464/739 -f 4124/2481/737 4234/2678/737 4235/2448/740 -f 4119/2480/738 4252/2466/738 4254/2468/741 -f 4125/2482/740 4235/2448/740 4238/2452/754 -f 4117/2483/741 4254/2468/741 4255/2469/755 -f 4045/2484/754 4238/2452/754 4240/2454/697 -f 4120/2485/755 4255/2469/755 4257/2471/715 -f 4126/2486/697 4240/2454/697 4242/2456/696 -f 4121/2487/715 4257/2471/715 4228/2441/714 -f 4127/2488/696 4242/2456/696 4244/2458/732 -f 4122/2489/714 4228/2441/714 4230/2443/733 -f 4257/2471/753 4258/2472/753 4259/2490/742 -f 4053/2491/756 4227/2439/756 4224/2433/757 -f 4216/2388/715 4133/2387/715 4132/2493/755 -f 4028/2180/736 4062/2215/736 4061/2214/734 -f 4024/2176/735 4078/2232/735 4079/2233/733 -f 4022/2174/734 4061/2214/734 4064/2217/732 -f 4014/2166/733 4079/2233/733 4049/2202/714 -f 4017/2169/732 4064/2217/732 4066/2219/696 -f 4015/2167/714 4049/2202/714 4052/2205/715 -f 4047/2278/696 4066/2222/696 4068/2221/697 -f 4040/2192/715 4052/2205/715 4054/2207/755 -f 4042/2194/697 4068/2221/697 4070/2224/754 -f 4035/2187/755 4054/2207/755 4056/2209/741 -f 4038/2190/754 4070/2224/754 4074/2228/740 -f 4036/2188/741 4056/2209/741 4058/2211/738 -f 4034/2186/740 4074/2228/740 4073/2227/737 -f 4027/2179/739 4060/2213/739 4062/2215/736 -f 4026/2178/738 4058/2211/738 4060/2213/739 -f 4023/2175/737 4073/2227/737 4078/2232/735 -f 4071/2495/758 4072/2499/759 4261/2496/759 -f 4051/2497/760 4260/2494/760 4227/2439/756 -f 4069/2498/761 4182/2351/761 4261/2496/759 -f 4048/2500/762 4216/2388/762 4260/2494/760 -f 4069/2498/761 4067/2220/763 4181/2349/763 -f 4048/2500/762 4050/2504/764 4215/2386/764 -f 4065/2501/765 4218/2420/765 4181/2422/763 -f 4077/2503/766 4219/2423/766 4215/2386/764 -f 4063/2505/767 4220/2425/767 4218/2420/765 -f 4077/2503/766 4075/2508/768 4221/2427/768 -f 4059/2506/769 4222/2429/769 4220/2425/767 -f 4076/2507/770 4223/2431/770 4221/2427/768 -f 4057/2509/771 4055/2492/757 4224/2433/757 -f 4057/2509/771 4225/2435/771 4222/2429/769 -f 4071/2495/758 4226/2437/758 4223/2431/770 -f 4261/2496/754 4138/2512/754 4137/2510/740 -f 4260/2494/755 4132/2493/755 4081/2511/741 -f 4182/2351/697 4139/2350/697 4138/2512/754 -f 4013/2165/714 4043/2195/715 4200/2371/715 -f 4043/2195/715 4039/2191/755 4199/2369/755 -f 4039/2191/755 4031/2183/741 4203/2374/741 -f 4031/2183/741 4032/2184/738 4207/2378/738 -f 4032/2184/738 4025/2177/739 4212/2383/739 -f 4025/2177/739 4021/2173/736 4185/2354/736 -f 4021/2173/736 4016/2168/734 4183/2352/734 -f 4016/2168/734 4018/2170/732 4189/2358/732 -f 4018/2170/732 4041/2200/696 4193/2362/696 -f 4041/2193/696 4037/2189/697 4197/2366/697 -f 4037/2189/697 4033/2185/754 4201/2372/754 -f 4033/2185/754 4029/2181/740 4205/2376/740 -f 4029/2181/740 4030/2182/737 4209/2380/737 -f 4030/2182/737 4019/2171/735 4188/2357/735 -f 4019/2171/735 4020/2172/733 4186/2355/733 -f 4020/2172/733 4013/2165/714 4191/2360/714 -f 4262/2513/741 4372/2679/772 4263/2514/772 -f 4265/2516/755 4262/2513/741 4264/2515/741 -f 4267/2518/773 4265/2516/755 4266/2517/755 -f 4269/2520/742 4300/2569/742 4270/2521/693 -f 4272/2523/743 4271/2522/693 4270/2521/693 -f 4272/2523/743 4273/2524/743 4274/2525/744 -f 4276/2527/745 4275/2680/744 4274/2528/744 -f 4276/2527/745 4277/2529/745 4278/2530/687 -f 4279/2531/687 4278/2530/687 4280/2532/746 -f 4281/2533/746 4280/2532/746 4282/2534/747 -f 4284/2536/748 4283/2535/747 4282/2534/747 -f 4284/2536/748 4285/2537/748 4286/2538/690 -f 4288/2540/749 4287/2539/690 4286/2538/690 -f 4290/2542/750 4288/2540/749 4289/2541/749 -f 4290/2542/750 4291/2543/750 4292/2544/751 -f 4294/2546/684 4293/2545/751 4292/2544/751 -f 4296/2548/752 4294/2546/684 4295/2547/684 -f 4298/2550/753 4296/2548/752 4297/2549/752 -f 4154/2552/732 4284/2536/732 4287/2539/734 -f 4089/2554/733 4271/2522/733 4272/2523/735 -f 4091/2553/734 4287/2539/734 4288/2540/736 -f 4149/2555/735 4272/2523/735 4275/2526/737 -f 4144/2558/739 4290/2542/739 4293/2545/738 -f 4142/2556/736 4288/2540/736 4290/2542/739 -f 4150/2560/737 4275/2680/737 4276/2527/740 -f 4145/2559/738 4293/2545/738 4294/2546/741 -f 4151/2561/740 4276/2527/740 4279/2531/754 -f 4143/2562/741 4294/2546/741 4296/2548/755 -f 4090/2563/754 4279/2531/754 4281/2533/697 -f 4146/2564/755 4296/2548/755 4298/2550/715 -f 4152/2565/697 4281/2533/697 4283/2535/696 -f 4147/2566/715 4298/2550/715 4269/2520/714 -f 4153/2567/696 4283/2535/696 4284/2536/732 -f 4148/2568/714 4269/2520/714 4271/2522/733 -f 4298/2550/753 4299/2551/753 4300/2569/742 -f 4301/2570/742 4332/2619/742 4302/2571/693 -f 4304/2573/743 4303/2572/693 4302/2571/693 -f 4304/2573/743 4305/2574/743 4306/2575/744 -f 4308/2577/745 4307/2681/744 4306/2578/744 -f 4308/2577/745 4309/2579/745 4310/2580/687 -f 4311/2581/687 4310/2580/687 4312/2582/746 -f 4313/2583/746 4312/2582/746 4314/2584/747 -f 4316/2586/748 4315/2585/747 4314/2584/747 -f 4316/2586/748 4317/2587/748 4318/2588/690 -f 4320/2590/749 4319/2589/690 4318/2588/690 -f 4320/2590/749 4321/2591/749 4322/2592/750 -f 4323/2593/750 4322/2592/750 4324/2594/751 -f 4325/2595/751 4324/2594/751 4326/2596/684 -f 4328/2598/752 4327/2597/684 4326/2596/684 -f 4330/2600/753 4328/2598/752 4329/2599/752 -f 4167/2602/732 4316/2586/732 4319/2589/734 -f 4092/2604/733 4303/2572/733 4304/2573/735 -f 4094/2603/734 4319/2589/734 4320/2590/736 -f 4162/2605/735 4304/2573/735 4307/2576/737 -f 4157/2608/739 4323/2593/739 4325/2595/738 -f 4155/2606/736 4320/2590/736 4323/2593/739 -f 4163/2610/737 4307/2681/737 4308/2577/740 -f 4158/2609/738 4325/2595/738 4327/2597/741 -f 4164/2611/740 4308/2577/740 4311/2581/754 -f 4156/2612/741 4327/2597/741 4328/2598/755 -f 4093/2613/754 4311/2581/754 4313/2583/697 -f 4159/2614/755 4328/2598/755 4330/2600/715 -f 4165/2615/697 4313/2583/697 4315/2585/696 -f 4160/2616/715 4330/2600/715 4301/2570/714 -f 4166/2617/696 4315/2585/696 4316/2586/732 -f 4161/2618/714 4301/2570/714 4303/2572/733 -f 4330/2600/753 4331/2601/753 4332/2619/742 -f 4333/2620/742 4364/2669/742 4334/2621/693 -f 4336/2623/743 4335/2622/693 4334/2621/693 -f 4336/2623/743 4337/2624/743 4338/2625/744 -f 4340/2627/745 4339/2682/744 4338/2628/744 -f 4340/2627/745 4341/2629/745 4342/2630/687 -f 4343/2631/687 4342/2630/687 4344/2632/746 -f 4345/2633/746 4344/2632/746 4346/2634/747 -f 4348/2636/748 4347/2635/747 4346/2634/747 -f 4348/2636/748 4349/2637/748 4350/2638/690 -f 4352/2640/749 4351/2639/690 4350/2638/690 -f 4352/2640/749 4353/2641/749 4354/2642/750 -f 4355/2643/750 4354/2642/750 4356/2644/751 -f 4357/2645/751 4356/2644/751 4358/2646/684 -f 4360/2648/752 4359/2647/684 4358/2646/684 -f 4362/2650/753 4360/2648/752 4361/2649/752 -f 4180/2652/732 4348/2636/732 4351/2639/734 -f 4095/2654/733 4335/2622/733 4336/2623/735 -f 4097/2653/734 4351/2639/734 4352/2640/736 -f 4175/2655/735 4336/2623/735 4339/2626/737 -f 4170/2658/739 4355/2643/739 4357/2645/738 -f 4168/2656/736 4352/2640/736 4355/2643/739 -f 4176/2660/737 4339/2682/737 4340/2627/740 -f 4171/2659/738 4357/2645/738 4359/2647/741 -f 4177/2661/740 4340/2627/740 4343/2631/754 -f 4169/2662/741 4359/2647/741 4360/2648/755 -f 4096/2663/754 4343/2631/754 4345/2633/697 -f 4172/2664/755 4360/2648/755 4362/2650/715 -f 4178/2665/697 4345/2633/697 4347/2635/696 -f 4173/2666/715 4362/2650/715 4333/2620/714 -f 4179/2667/696 4347/2635/696 4348/2636/732 -f 4174/2668/714 4333/2620/714 4335/2622/733 -f 4362/2650/753 4363/2651/753 4364/2669/742 -f 4365/2670/754 4373/2683/774 4366/2671/774 -f 4368/2673/697 4365/2670/754 4367/2672/754 -f 4370/2675/775 4368/2673/697 4369/2674/697 +f 4249/3593/694 4207/3594/695 4250/3595/695 +f 4251/3596/696 4252/3597/697 4253/3598/697 +f 4254/3599/698 4255/3600/699 4256/3601/699 +f 4257/3602/700 4258/3603/696 4251/3596/696 +f 4259/3604/701 4260/3605/698 4254/3599/698 +f 4261/3606/702 4262/3607/700 4257/3602/700 +f 4259/3604/701 4263/3608/703 4264/3609/701 +f 4265/3610/704 4266/3611/702 4261/3612/702 +f 4267/3613/705 4263/3614/703 4268/3615/703 +f 4269/3616/706 4270/3617/704 4265/3610/704 +f 4271/3618/707 4272/3619/705 4267/3613/705 +f 4273/3620/708 4274/3621/706 4269/3616/706 +f 4275/3622/709 4276/3623/707 4271/3618/707 +f 4277/3624/710 4278/3625/708 4273/3620/708 +f 4253/3598/697 4279/3626/711 4280/3627/711 +f 4280/3627/711 4281/3628/709 4275/3622/709 +f 4256/3601/699 4282/3629/710 4277/3624/710 +f 4283/3630/712 4201/3631/713 4284/3632/713 +f 4252/3597/714 4258/3633/715 4285/3634/681 +f 4258/3603/715 4262/3635/716 4285/3636/681 +f 4262/3607/716 4266/3637/717 4285/3638/681 +f 4266/3611/717 4270/3639/718 4285/3640/681 +f 4270/3617/718 4274/3641/719 4285/3642/681 +f 4274/3621/719 4278/3643/720 4285/3644/681 +f 4278/3625/720 4282/3645/721 4285/3646/681 +f 4282/3629/721 4255/3647/722 4285/3648/681 +f 4255/3600/722 4260/3649/723 4285/3650/681 +f 4260/3605/723 4264/3651/724 4285/3652/681 +f 4264/3609/724 4263/3608/725 4285/3653/681 +f 4263/3614/725 4272/3654/726 4285/3655/681 +f 4272/3619/726 4276/3656/727 4285/3657/681 +f 4276/3623/727 4281/3658/728 4285/3659/681 +f 4281/3628/728 4279/3660/729 4285/3661/681 +f 4279/3626/729 4252/3662/714 4285/3663/681 +f 4286/3664/730 4208/3665/694 4249/3666/694 +f 4287/3667/731 4202/3668/712 4283/3630/712 +f 4288/3669/732 4209/3670/730 4286/3664/730 +f 4289/3671/733 4150/3672/731 4287/3667/731 +f 4290/3673/734 4148/3674/732 4288/3669/732 +f 4291/3675/735 4203/3676/733 4289/3671/733 +f 4292/3677/736 4198/3678/737 4293/3679/737 +f 4293/3679/737 4197/3680/734 4290/3673/734 +f 4294/3681/738 4204/3682/735 4291/3675/735 +f 4295/3683/739 4199/3684/736 4292/3677/736 +f 4296/3685/740 4297/3686/691 4298/3687/691 +f 4299/3688/741 4297/3686/691 4300/3689/741 +f 4299/3688/741 4301/3690/742 4302/3691/742 +f 4303/3692/743 4301/3693/742 4304/3694/743 +f 4303/3692/743 4305/3695/685 4306/3696/685 +f 4306/3696/685 4307/3697/744 4308/3698/744 +f 4308/3698/744 4309/3699/745 4310/3700/745 +f 4310/3700/745 4311/3701/746 4312/3702/746 +f 4312/3702/746 4313/3703/688 4314/3704/688 +f 4315/3705/747 4313/3703/688 4316/3706/747 +f 4315/3705/747 4317/3707/748 4318/3708/748 +f 4318/3708/748 4319/3709/749 4320/3710/749 +f 4320/3710/749 4321/3711/682 4322/3712/682 +f 4323/3713/750 4321/3711/682 4324/3714/750 +f 4325/3715/751 4324/3714/750 4326/3716/751 +f 4196/3717/730 4314/3704/732 4114/3718/732 +f 4112/3719/731 4299/3688/733 4191/3720/733 +f 4114/3718/732 4315/3705/734 4184/3721/734 +f 4191/3720/733 4302/3691/735 4192/3722/735 +f 4186/3723/737 4320/3710/736 4187/3724/736 +f 4184/3721/734 4318/3708/737 4186/3723/737 +f 4192/3725/735 4303/3692/738 4193/3726/738 +f 4187/3724/736 4322/3712/739 4185/3727/739 +f 4193/3726/738 4306/3696/752 4113/3728/752 +f 4185/3727/739 4323/3713/753 4188/3729/753 +f 4113/3728/752 4308/3698/695 4194/3730/695 +f 4188/3729/753 4325/3715/713 4189/3731/713 +f 4194/3730/695 4310/3700/694 4195/3732/694 +f 4189/3731/713 4296/3685/712 4190/3733/712 +f 4195/3732/694 4312/3702/730 4196/3717/730 +f 4190/3733/712 4298/3687/731 4112/3719/731 +f 4325/3715/751 4327/3734/740 4296/3685/740 +f 4121/3735/754 4292/3677/755 4123/3736/755 +f 4284/3632/713 4200/3737/753 4328/3738/753 +f 4096/3424/734 4129/3458/732 4090/3418/732 +f 4092/3420/733 4147/3477/731 4082/3410/731 +f 4090/3418/732 4132/3461/730 4085/3413/730 +f 4082/3410/731 4117/3446/712 4083/3411/712 +f 4085/3413/730 4134/3463/694 4115/3443/694 +f 4083/3411/712 4120/3449/713 4108/3436/713 +f 4115/3522/694 4136/3465/695 4110/3438/695 +f 4108/3436/713 4122/3451/753 4103/3431/753 +f 4110/3438/695 4138/3468/752 4106/3434/752 +f 4103/3431/753 4124/3453/739 4104/3432/739 +f 4106/3434/752 4142/3472/738 4102/3430/738 +f 4104/3432/739 4126/3455/736 4094/3422/736 +f 4102/3430/738 4141/3471/735 4091/3419/735 +f 4095/3423/737 4130/3459/734 4096/3424/734 +f 4094/3422/736 4128/3457/737 4095/3423/737 +f 4091/3419/735 4146/3476/733 4092/3420/733 +f 4139/3739/756 4329/3740/757 4294/3681/756 +f 4119/3741/758 4295/3683/754 4121/3735/754 +f 4137/3742/759 4329/3740/757 4140/3743/757 +f 4116/3744/760 4328/3738/758 4119/3741/758 +f 4137/3742/759 4249/3593/761 4250/3595/759 +f 4116/3744/760 4283/3630/762 4284/3632/760 +f 4133/3745/763 4249/3666/761 4135/3746/761 +f 4145/3747/764 4283/3630/762 4118/3748/762 +f 4131/3749/765 4286/3664/763 4133/3745/763 +f 4145/3747/764 4289/3671/766 4287/3667/764 +f 4127/3750/767 4288/3669/765 4131/3749/765 +f 4144/3751/768 4289/3671/766 4143/3752/766 +f 4125/3753/769 4292/3677/755 4293/3679/769 +f 4125/3753/769 4290/3673/767 4127/3750/767 +f 4139/3739/756 4291/3675/768 4144/3751/768 +f 4329/3740/752 4205/3754/738 4294/3681/738 +f 4328/3738/753 4149/3755/739 4295/3683/739 +f 4250/3595/695 4206/3756/752 4329/3740/752 +f 4081/3409/712 4268/3615/713 4259/3604/712 +f 4111/3439/713 4267/3613/753 4268/3615/713 +f 4107/3435/753 4271/3618/739 4267/3613/753 +f 4099/3427/739 4275/3622/736 4271/3618/739 +f 4100/3428/736 4280/3627/737 4275/3622/736 +f 4093/3421/737 4253/3598/734 4280/3627/737 +f 4089/3417/734 4251/3596/732 4253/3598/734 +f 4084/3412/732 4257/3602/730 4251/3596/732 +f 4086/3414/730 4261/3606/694 4257/3602/730 +f 4109/3437/694 4265/3610/695 4261/3612/694 +f 4105/3433/695 4269/3616/752 4265/3610/695 +f 4101/3429/752 4273/3620/738 4269/3616/752 +f 4097/3425/738 4277/3624/735 4273/3620/738 +f 4098/3426/735 4256/3601/733 4277/3624/735 +f 4087/3415/733 4254/3599/731 4256/3601/733 +f 4088/3416/731 4259/3604/712 4254/3599/731 +f 4330/3757/739 4331/3758/770 4332/3759/739 +f 4333/3760/753 4332/3759/739 4334/3761/753 +f 4335/3762/771 4334/3761/753 4336/3763/771 +f 4337/3764/740 4338/3765/691 4339/3766/691 +f 4340/3767/741 4338/3765/691 4341/3768/741 +f 4340/3767/741 4342/3769/742 4343/3770/742 +f 4344/3771/743 4342/3772/742 4345/3773/743 +f 4344/3771/743 4346/3774/685 4347/3775/685 +f 4347/3775/685 4348/3776/744 4349/3777/744 +f 4349/3777/744 4350/3778/745 4351/3779/745 +f 4352/3780/746 4350/3778/745 4353/3781/746 +f 4352/3780/746 4354/3782/688 4355/3783/688 +f 4356/3784/747 4354/3782/688 4357/3785/747 +f 4358/3786/748 4357/3785/747 4359/3787/748 +f 4358/3786/748 4360/3788/749 4361/3789/749 +f 4362/3790/682 4360/3788/749 4363/3791/682 +f 4364/3792/750 4363/3791/682 4365/3793/750 +f 4366/3794/751 4365/3793/750 4367/3795/751 +f 4222/3796/730 4355/3783/732 4159/3797/732 +f 4157/3798/731 4340/3767/733 4217/3799/733 +f 4159/3797/732 4356/3784/734 4210/3800/734 +f 4217/3799/733 4343/3770/735 4218/3801/735 +f 4212/3802/737 4361/3789/736 4213/3803/736 +f 4210/3800/734 4358/3786/737 4212/3802/737 +f 4218/3804/735 4344/3771/738 4219/3805/738 +f 4213/3803/736 4362/3790/739 4211/3806/739 +f 4219/3805/738 4347/3775/752 4158/3807/752 +f 4211/3806/739 4364/3792/753 4214/3808/753 +f 4158/3807/752 4349/3777/695 4220/3809/695 +f 4214/3808/753 4366/3794/713 4215/3810/713 +f 4220/3809/695 4351/3779/694 4221/3811/694 +f 4215/3810/713 4337/3764/712 4216/3812/712 +f 4221/3811/694 4352/3780/730 4222/3796/730 +f 4216/3812/712 4339/3766/731 4157/3798/731 +f 4366/3794/751 4368/3813/740 4337/3764/740 +f 4369/3814/740 4370/3815/691 4371/3816/691 +f 4372/3817/741 4370/3815/691 4373/3818/741 +f 4372/3817/741 4374/3819/742 4375/3820/742 +f 4376/3821/743 4374/3822/742 4377/3823/743 +f 4376/3821/743 4378/3824/685 4379/3825/685 +f 4379/3825/685 4380/3826/744 4381/3827/744 +f 4381/3827/744 4382/3828/745 4383/3829/745 +f 4384/3830/746 4382/3828/745 4385/3831/746 +f 4384/3830/746 4386/3832/688 4387/3833/688 +f 4388/3834/747 4386/3832/688 4389/3835/747 +f 4388/3834/747 4390/3836/748 4391/3837/748 +f 4391/3837/748 4392/3838/749 4393/3839/749 +f 4393/3839/749 4394/3840/682 4395/3841/682 +f 4396/3842/750 4394/3840/682 4397/3843/750 +f 4398/3844/751 4397/3843/750 4399/3845/751 +f 4235/3846/730 4387/3833/732 4162/3847/732 +f 4160/3848/731 4372/3817/733 4230/3849/733 +f 4162/3847/732 4388/3834/734 4223/3850/734 +f 4230/3849/733 4375/3820/735 4231/3851/735 +f 4225/3852/737 4393/3839/736 4226/3853/736 +f 4223/3850/734 4391/3837/737 4225/3852/737 +f 4231/3854/735 4376/3821/738 4232/3855/738 +f 4226/3853/736 4395/3841/739 4224/3856/739 +f 4232/3855/738 4379/3825/752 4161/3857/752 +f 4224/3856/739 4396/3842/753 4227/3858/753 +f 4161/3857/752 4381/3827/695 4233/3859/695 +f 4227/3858/753 4398/3844/713 4228/3860/713 +f 4233/3859/695 4383/3829/694 4234/3861/694 +f 4228/3860/713 4369/3814/712 4229/3862/712 +f 4234/3861/694 4384/3830/730 4235/3846/730 +f 4229/3862/712 4371/3816/731 4160/3848/731 +f 4398/3844/751 4400/3863/740 4369/3814/740 +f 4401/3864/740 4402/3865/691 4403/3866/691 +f 4404/3867/741 4402/3865/691 4405/3868/741 +f 4404/3867/741 4406/3869/742 4407/3870/742 +f 4408/3871/743 4406/3872/742 4409/3873/743 +f 4408/3871/743 4410/3874/685 4411/3875/685 +f 4411/3875/685 4412/3876/744 4413/3877/744 +f 4413/3877/744 4414/3878/745 4415/3879/745 +f 4416/3880/746 4414/3878/745 4417/3881/746 +f 4416/3880/746 4418/3882/688 4419/3883/688 +f 4420/3884/747 4418/3882/688 4421/3885/747 +f 4420/3884/747 4422/3886/748 4423/3887/748 +f 4423/3887/748 4424/3888/749 4425/3889/749 +f 4425/3889/749 4426/3890/682 4427/3891/682 +f 4428/3892/750 4426/3890/682 4429/3893/750 +f 4430/3894/751 4429/3893/750 4431/3895/751 +f 4248/3896/730 4419/3883/732 4165/3897/732 +f 4163/3898/731 4404/3867/733 4243/3899/733 +f 4165/3897/732 4420/3884/734 4236/3900/734 +f 4243/3899/733 4407/3870/735 4244/3901/735 +f 4238/3902/737 4425/3889/736 4239/3903/736 +f 4236/3900/734 4423/3887/737 4238/3902/737 +f 4244/3904/735 4408/3871/738 4245/3905/738 +f 4239/3903/736 4427/3891/739 4237/3906/739 +f 4245/3905/738 4411/3875/752 4164/3907/752 +f 4237/3906/739 4428/3892/753 4240/3908/753 +f 4164/3907/752 4413/3877/695 4246/3909/695 +f 4240/3908/753 4430/3894/713 4241/3910/713 +f 4246/3909/695 4415/3879/694 4247/3911/694 +f 4241/3910/713 4401/3864/712 4242/3912/712 +f 4247/3911/694 4416/3880/730 4248/3896/730 +f 4242/3912/712 4403/3866/731 4163/3898/731 +f 4430/3894/751 4432/3913/740 4401/3864/740 +f 4433/3914/752 4434/3915/772 4435/3916/752 +f 4436/3917/695 4435/3916/752 4437/3918/695 +f 4438/3919/773 4437/3918/695 4439/3920/773 +f 4249/3593/694 4208/3921/694 4207/3594/695 +f 4251/3596/696 4258/3633/696 4252/3597/697 +f 4254/3599/698 4260/3649/698 4255/3600/699 +f 4257/3602/700 4262/3635/700 4258/3603/696 +f 4259/3604/701 4264/3651/701 4260/3605/698 +f 4261/3606/702 4266/3637/702 4262/3607/700 +f 4259/3604/701 4268/3615/703 4263/3608/703 +f 4265/3610/704 4270/3639/704 4266/3611/702 +f 4267/3613/705 4272/3654/705 4263/3614/703 +f 4269/3616/706 4274/3641/706 4270/3617/704 +f 4271/3618/707 4276/3656/707 4272/3619/705 +f 4273/3620/708 4278/3643/708 4274/3621/706 +f 4275/3622/709 4281/3658/709 4276/3623/707 +f 4277/3624/710 4282/3645/710 4278/3625/708 +f 4253/3598/697 4252/3662/697 4279/3626/711 +f 4280/3627/711 4279/3660/711 4281/3628/709 +f 4256/3601/699 4255/3647/699 4282/3629/710 +f 4283/3630/712 4202/3668/712 4201/3631/713 +f 4286/3664/730 4209/3670/730 4208/3665/694 +f 4287/3667/731 4150/3672/731 4202/3668/712 +f 4288/3669/732 4148/3674/732 4209/3670/730 +f 4289/3671/733 4203/3676/733 4150/3672/731 +f 4290/3673/734 4197/3680/734 4148/3674/732 +f 4291/3675/735 4204/3682/735 4203/3676/733 +f 4292/3677/736 4199/3684/736 4198/3678/737 +f 4293/3679/737 4198/3678/737 4197/3680/734 +f 4294/3681/738 4205/3754/738 4204/3682/735 +f 4295/3683/739 4149/3755/739 4199/3684/736 +f 4296/3685/740 4327/3734/740 4297/3686/691 +f 4299/3688/741 4298/3687/691 4297/3686/691 +f 4299/3688/741 4300/3689/741 4301/3690/742 +f 4303/3692/743 4302/3922/742 4301/3693/742 +f 4303/3692/743 4304/3694/743 4305/3695/685 +f 4306/3696/685 4305/3695/685 4307/3697/744 +f 4308/3698/744 4307/3697/744 4309/3699/745 +f 4310/3700/745 4309/3699/745 4311/3701/746 +f 4312/3702/746 4311/3701/746 4313/3703/688 +f 4315/3705/747 4314/3704/688 4313/3703/688 +f 4315/3705/747 4316/3706/747 4317/3707/748 +f 4318/3708/748 4317/3707/748 4319/3709/749 +f 4320/3710/749 4319/3709/749 4321/3711/682 +f 4323/3713/750 4322/3712/682 4321/3711/682 +f 4325/3715/751 4323/3713/750 4324/3714/750 +f 4196/3717/730 4312/3702/730 4314/3704/732 +f 4112/3719/731 4298/3687/731 4299/3688/733 +f 4114/3718/732 4314/3704/732 4315/3705/734 +f 4191/3720/733 4299/3688/733 4302/3691/735 +f 4186/3723/737 4318/3708/737 4320/3710/736 +f 4184/3721/734 4315/3705/734 4318/3708/737 +f 4192/3725/735 4302/3922/735 4303/3692/738 +f 4187/3724/736 4320/3710/736 4322/3712/739 +f 4193/3726/738 4303/3692/738 4306/3696/752 +f 4185/3727/739 4322/3712/739 4323/3713/753 +f 4113/3728/752 4306/3696/752 4308/3698/695 +f 4188/3729/753 4323/3713/753 4325/3715/713 +f 4194/3730/695 4308/3698/695 4310/3700/694 +f 4189/3731/713 4325/3715/713 4296/3685/712 +f 4195/3732/694 4310/3700/694 4312/3702/730 +f 4190/3733/712 4296/3685/712 4298/3687/731 +f 4325/3715/751 4326/3716/751 4327/3734/740 +f 4121/3735/754 4295/3683/754 4292/3677/755 +f 4284/3632/713 4201/3631/713 4200/3737/753 +f 4096/3424/734 4130/3459/734 4129/3458/732 +f 4092/3420/733 4146/3476/733 4147/3477/731 +f 4090/3418/732 4129/3458/732 4132/3461/730 +f 4082/3410/731 4147/3477/731 4117/3446/712 +f 4085/3413/730 4132/3461/730 4134/3463/694 +f 4083/3411/712 4117/3446/712 4120/3449/713 +f 4115/3522/694 4134/3466/694 4136/3465/695 +f 4108/3436/713 4120/3449/713 4122/3451/753 +f 4110/3438/695 4136/3465/695 4138/3468/752 +f 4103/3431/753 4122/3451/753 4124/3453/739 +f 4106/3434/752 4138/3468/752 4142/3472/738 +f 4104/3432/739 4124/3453/739 4126/3455/736 +f 4102/3430/738 4142/3472/738 4141/3471/735 +f 4095/3423/737 4128/3457/737 4130/3459/734 +f 4094/3422/736 4126/3455/736 4128/3457/737 +f 4091/3419/735 4141/3471/735 4146/3476/733 +f 4139/3739/756 4140/3743/757 4329/3740/757 +f 4119/3741/758 4328/3738/758 4295/3683/754 +f 4137/3742/759 4250/3595/759 4329/3740/757 +f 4116/3744/760 4284/3632/760 4328/3738/758 +f 4137/3742/759 4135/3464/761 4249/3593/761 +f 4116/3744/760 4118/3748/762 4283/3630/762 +f 4133/3745/763 4286/3664/763 4249/3666/761 +f 4145/3747/764 4287/3667/764 4283/3630/762 +f 4131/3749/765 4288/3669/765 4286/3664/763 +f 4145/3747/764 4143/3752/766 4289/3671/766 +f 4127/3750/767 4290/3673/767 4288/3669/765 +f 4144/3751/768 4291/3675/768 4289/3671/766 +f 4125/3753/769 4123/3736/755 4292/3677/755 +f 4125/3753/769 4293/3679/769 4290/3673/767 +f 4139/3739/756 4294/3681/756 4291/3675/768 +f 4329/3740/752 4206/3756/752 4205/3754/738 +f 4328/3738/753 4200/3737/753 4149/3755/739 +f 4250/3595/695 4207/3594/695 4206/3756/752 +f 4081/3409/712 4111/3439/713 4268/3615/713 +f 4111/3439/713 4107/3435/753 4267/3613/753 +f 4107/3435/753 4099/3427/739 4271/3618/739 +f 4099/3427/739 4100/3428/736 4275/3622/736 +f 4100/3428/736 4093/3421/737 4280/3627/737 +f 4093/3421/737 4089/3417/734 4253/3598/734 +f 4089/3417/734 4084/3412/732 4251/3596/732 +f 4084/3412/732 4086/3414/730 4257/3602/730 +f 4086/3414/730 4109/3444/694 4261/3606/694 +f 4109/3437/694 4105/3433/695 4265/3610/695 +f 4105/3433/695 4101/3429/752 4269/3616/752 +f 4101/3429/752 4097/3425/738 4273/3620/738 +f 4097/3425/738 4098/3426/735 4277/3624/735 +f 4098/3426/735 4087/3415/733 4256/3601/733 +f 4087/3415/733 4088/3416/731 4254/3599/731 +f 4088/3416/731 4081/3409/712 4259/3604/712 +f 4330/3757/739 4440/3923/770 4331/3758/770 +f 4333/3760/753 4330/3757/739 4332/3759/739 +f 4335/3762/771 4333/3760/753 4334/3761/753 +f 4337/3764/740 4368/3813/740 4338/3765/691 +f 4340/3767/741 4339/3766/691 4338/3765/691 +f 4340/3767/741 4341/3768/741 4342/3769/742 +f 4344/3771/743 4343/3924/742 4342/3772/742 +f 4344/3771/743 4345/3773/743 4346/3774/685 +f 4347/3775/685 4346/3774/685 4348/3776/744 +f 4349/3777/744 4348/3776/744 4350/3778/745 +f 4352/3780/746 4351/3779/745 4350/3778/745 +f 4352/3780/746 4353/3781/746 4354/3782/688 +f 4356/3784/747 4355/3783/688 4354/3782/688 +f 4358/3786/748 4356/3784/747 4357/3785/747 +f 4358/3786/748 4359/3787/748 4360/3788/749 +f 4362/3790/682 4361/3789/749 4360/3788/749 +f 4364/3792/750 4362/3790/682 4363/3791/682 +f 4366/3794/751 4364/3792/750 4365/3793/750 +f 4222/3796/730 4352/3780/730 4355/3783/732 +f 4157/3798/731 4339/3766/731 4340/3767/733 +f 4159/3797/732 4355/3783/732 4356/3784/734 +f 4217/3799/733 4340/3767/733 4343/3770/735 +f 4212/3802/737 4358/3786/737 4361/3789/736 +f 4210/3800/734 4356/3784/734 4358/3786/737 +f 4218/3804/735 4343/3924/735 4344/3771/738 +f 4213/3803/736 4361/3789/736 4362/3790/739 +f 4219/3805/738 4344/3771/738 4347/3775/752 +f 4211/3806/739 4362/3790/739 4364/3792/753 +f 4158/3807/752 4347/3775/752 4349/3777/695 +f 4214/3808/753 4364/3792/753 4366/3794/713 +f 4220/3809/695 4349/3777/695 4351/3779/694 +f 4215/3810/713 4366/3794/713 4337/3764/712 +f 4221/3811/694 4351/3779/694 4352/3780/730 +f 4216/3812/712 4337/3764/712 4339/3766/731 +f 4366/3794/751 4367/3795/751 4368/3813/740 +f 4369/3814/740 4400/3863/740 4370/3815/691 +f 4372/3817/741 4371/3816/691 4370/3815/691 +f 4372/3817/741 4373/3818/741 4374/3819/742 +f 4376/3821/743 4375/3925/742 4374/3822/742 +f 4376/3821/743 4377/3823/743 4378/3824/685 +f 4379/3825/685 4378/3824/685 4380/3826/744 +f 4381/3827/744 4380/3826/744 4382/3828/745 +f 4384/3830/746 4383/3829/745 4382/3828/745 +f 4384/3830/746 4385/3831/746 4386/3832/688 +f 4388/3834/747 4387/3833/688 4386/3832/688 +f 4388/3834/747 4389/3835/747 4390/3836/748 +f 4391/3837/748 4390/3836/748 4392/3838/749 +f 4393/3839/749 4392/3838/749 4394/3840/682 +f 4396/3842/750 4395/3841/682 4394/3840/682 +f 4398/3844/751 4396/3842/750 4397/3843/750 +f 4235/3846/730 4384/3830/730 4387/3833/732 +f 4160/3848/731 4371/3816/731 4372/3817/733 +f 4162/3847/732 4387/3833/732 4388/3834/734 +f 4230/3849/733 4372/3817/733 4375/3820/735 +f 4225/3852/737 4391/3837/737 4393/3839/736 +f 4223/3850/734 4388/3834/734 4391/3837/737 +f 4231/3854/735 4375/3925/735 4376/3821/738 +f 4226/3853/736 4393/3839/736 4395/3841/739 +f 4232/3855/738 4376/3821/738 4379/3825/752 +f 4224/3856/739 4395/3841/739 4396/3842/753 +f 4161/3857/752 4379/3825/752 4381/3827/695 +f 4227/3858/753 4396/3842/753 4398/3844/713 +f 4233/3859/695 4381/3827/695 4383/3829/694 +f 4228/3860/713 4398/3844/713 4369/3814/712 +f 4234/3861/694 4383/3829/694 4384/3830/730 +f 4229/3862/712 4369/3814/712 4371/3816/731 +f 4398/3844/751 4399/3845/751 4400/3863/740 +f 4401/3864/740 4432/3913/740 4402/3865/691 +f 4404/3867/741 4403/3866/691 4402/3865/691 +f 4404/3867/741 4405/3868/741 4406/3869/742 +f 4408/3871/743 4407/3926/742 4406/3872/742 +f 4408/3871/743 4409/3873/743 4410/3874/685 +f 4411/3875/685 4410/3874/685 4412/3876/744 +f 4413/3877/744 4412/3876/744 4414/3878/745 +f 4416/3880/746 4415/3879/745 4414/3878/745 +f 4416/3880/746 4417/3881/746 4418/3882/688 +f 4420/3884/747 4419/3883/688 4418/3882/688 +f 4420/3884/747 4421/3885/747 4422/3886/748 +f 4423/3887/748 4422/3886/748 4424/3888/749 +f 4425/3889/749 4424/3888/749 4426/3890/682 +f 4428/3892/750 4427/3891/682 4426/3890/682 +f 4430/3894/751 4428/3892/750 4429/3893/750 +f 4248/3896/730 4416/3880/730 4419/3883/732 +f 4163/3898/731 4403/3866/731 4404/3867/733 +f 4165/3897/732 4419/3883/732 4420/3884/734 +f 4243/3899/733 4404/3867/733 4407/3870/735 +f 4238/3902/737 4423/3887/737 4425/3889/736 +f 4236/3900/734 4420/3884/734 4423/3887/737 +f 4244/3904/735 4407/3926/735 4408/3871/738 +f 4239/3903/736 4425/3889/736 4427/3891/739 +f 4245/3905/738 4408/3871/738 4411/3875/752 +f 4237/3906/739 4427/3891/739 4428/3892/753 +f 4164/3907/752 4411/3875/752 4413/3877/695 +f 4240/3908/753 4428/3892/753 4430/3894/713 +f 4246/3909/695 4413/3877/695 4415/3879/694 +f 4241/3910/713 4430/3894/713 4401/3864/712 +f 4247/3911/694 4415/3879/694 4416/3880/730 +f 4242/3912/712 4401/3864/712 4403/3866/731 +f 4430/3894/751 4431/3895/751 4432/3913/740 +f 4433/3914/752 4441/3927/772 4434/3915/772 +f 4436/3917/695 4433/3914/752 4435/3916/752 +f 4438/3919/773 4436/3917/695 4437/3918/695 o Strong_Missile v 0.866138 2.750000 0.358766 v 0.750000 2.750000 0.000000 @@ -14411,341 +15731,341 @@ vn 0.9923 0.1240 -0.0000 vn -0.9167 0.1240 0.3797 vn 0.9167 0.1240 -0.3797 s off -f 4374/2684/776 4375/2685/776 4376/2686/776 -f 4376/2686/776 4377/2687/776 4378/2688/776 -f 4377/2689/776 4379/2690/776 4378/2688/776 -f 4380/2691/776 4381/2692/776 4379/2690/776 -f 4382/2693/776 4383/2694/776 4381/2692/776 -f 4384/2695/776 4385/2696/776 4383/2694/776 -f 4386/2697/776 4387/2698/776 4385/2696/776 -f 4387/2698/776 4388/2699/776 4389/2700/776 -f 4388/2701/776 4390/2702/776 4389/2700/776 -f 4390/2703/776 4391/2704/776 4392/2705/776 -f 4392/2705/776 4393/2706/776 4394/2707/776 -f 4393/2708/776 4395/2709/776 4394/2707/776 -f 4396/2710/776 4397/2711/776 4395/2709/776 -f 4397/2711/776 4398/2712/776 4399/2713/776 -f 4398/2714/776 4400/2715/776 4399/2713/776 -f 4401/2716/776 4374/2684/776 4400/2715/776 -f 4402/2717/776 4403/2718/776 4404/2719/776 -f 4405/2720/777 4406/2721/777 4407/2722/777 -f 4408/2723/778 4405/2720/778 4409/2724/778 -f 4405/2725/779 4407/2726/779 4409/2724/779 -f 4406/2727/776 4410/2728/776 4408/2723/776 -f 4411/2729/780 4412/2730/780 4413/2731/780 -f 4414/2732/781 4411/2729/781 4415/2733/781 -f 4411/2734/782 4413/2735/782 4415/2733/782 -f 4412/2736/776 4416/2737/776 4414/2732/776 -f 4417/2738/780 4418/2739/780 4419/2740/780 -f 4420/2741/781 4417/2738/781 4421/2742/781 -f 4417/2743/783 4419/2744/783 4421/2742/783 -f 4418/2745/776 4422/2746/776 4420/2741/776 -f 4423/2747/776 4424/2748/776 4425/2749/776 -f 4426/2750/784 4427/2751/784 4428/2752/784 -f 4425/2749/785 4426/2753/785 4428/2752/785 -f 4426/2753/786 4423/2754/786 4427/2755/786 -f 4429/2756/777 4430/2757/777 4431/2758/777 -f 4432/2759/778 4429/2756/778 4433/2760/778 -f 4429/2761/787 4431/2762/787 4433/2760/787 -f 4430/2763/776 4434/2764/776 4432/2759/776 -f 4435/2765/776 4436/2766/776 4437/2767/776 -f 4438/2768/788 4439/2769/788 4440/2770/788 -f 4437/2767/785 4438/2771/785 4440/2770/785 -f 4438/2771/786 4435/2772/786 4439/2773/786 -f 4441/2774/776 4442/2775/776 4443/2776/776 -f 4444/2777/789 4445/2778/789 4446/2779/789 -f 4443/2776/790 4444/2780/790 4446/2779/790 -f 4444/2780/791 4441/2781/791 4445/2782/791 -f 4447/2783/776 4448/2784/776 4449/2785/776 -f 4450/2786/792 4451/2787/792 4452/2788/792 -f 4449/2785/790 4450/2789/790 4452/2788/790 -f 4450/2789/791 4447/2790/791 4451/2791/791 -f 4374/2684/776 4453/2792/776 4375/2685/776 -f 4376/2686/776 4375/2793/776 4377/2687/776 -f 4377/2689/776 4380/2794/776 4379/2690/776 -f 4380/2691/776 4382/2795/776 4381/2692/776 -f 4382/2693/776 4384/2796/776 4383/2694/776 -f 4384/2695/776 4386/2797/776 4385/2696/776 -f 4386/2697/776 4454/2798/776 4387/2698/776 -f 4387/2698/776 4454/2799/776 4388/2699/776 -f 4388/2701/776 4455/2800/776 4390/2702/776 -f 4390/2703/776 4455/2801/776 4391/2704/776 -f 4392/2705/776 4391/2802/776 4393/2706/776 -f 4393/2708/776 4396/2803/776 4395/2709/776 -f 4396/2710/776 4456/2804/776 4397/2711/776 -f 4397/2711/776 4456/2805/776 4398/2712/776 -f 4398/2714/776 4401/2806/776 4400/2715/776 -f 4401/2716/776 4453/2807/776 4374/2684/776 -f 4402/2717/776 4457/2808/776 4458/2809/776 -f 4458/2809/776 4459/2810/776 4403/2718/776 -f 4403/2718/776 4460/2811/776 4461/2812/776 -f 4461/2812/776 4462/2813/776 4404/2719/776 -f 4404/2719/776 4463/2814/776 4464/2815/776 -f 4464/2815/776 4465/2816/776 4466/2817/776 -f 4466/2817/776 4467/2818/776 4468/2819/776 -f 4468/2819/776 4469/2820/776 4466/2817/776 -f 4469/2820/776 4402/2717/776 4466/2817/776 -f 4402/2717/776 4458/2809/776 4403/2718/776 -f 4403/2718/776 4461/2812/776 4404/2719/776 -f 4404/2719/776 4464/2815/776 4402/2717/776 -f 4464/2815/776 4466/2817/776 4402/2717/776 -f 4405/2720/777 4410/2728/777 4406/2721/777 -f 4408/2723/778 4410/2728/778 4405/2720/778 -f 4411/2729/780 4416/2737/780 4412/2730/780 -f 4414/2732/781 4416/2737/781 4411/2729/781 -f 4417/2738/780 4422/2746/780 4418/2739/780 -f 4420/2741/781 4422/2746/781 4417/2738/781 -f 4425/2749/785 4424/2748/785 4426/2753/785 -f 4426/2753/786 4424/2748/786 4423/2754/786 -f 4429/2756/777 4434/2764/777 4430/2757/777 -f 4432/2759/778 4434/2764/778 4429/2756/778 -f 4437/2767/785 4436/2766/785 4438/2771/785 -f 4438/2771/786 4436/2766/786 4435/2772/786 -f 4443/2776/790 4442/2775/790 4444/2780/790 -f 4444/2780/791 4442/2775/791 4441/2781/791 -f 4449/2785/790 4448/2784/790 4450/2789/790 -f 4450/2789/791 4448/2784/791 4447/2790/791 +f 4442/3928/774 4443/3929/774 4444/3930/774 +f 4444/3930/774 4445/3931/774 4446/3932/774 +f 4445/3933/774 4447/3934/774 4446/3932/774 +f 4448/3935/774 4449/3936/774 4447/3934/774 +f 4450/3937/774 4451/3938/774 4449/3936/774 +f 4452/3939/774 4453/3940/774 4451/3938/774 +f 4454/3941/774 4455/3942/774 4453/3940/774 +f 4455/3942/774 4456/3943/774 4457/3944/774 +f 4456/3945/774 4458/3946/774 4457/3944/774 +f 4458/3947/774 4459/3948/774 4460/3949/774 +f 4460/3949/774 4461/3950/774 4462/3951/774 +f 4461/3952/774 4463/3953/774 4462/3951/774 +f 4464/3954/774 4465/3955/774 4463/3953/774 +f 4465/3955/774 4466/3956/774 4467/3957/774 +f 4466/3958/774 4468/3959/774 4467/3957/774 +f 4469/3960/774 4442/3928/774 4468/3959/774 +f 4470/3961/774 4471/3962/774 4472/3963/774 +f 4473/3964/775 4474/3965/775 4475/3966/775 +f 4476/3967/776 4473/3964/776 4477/3968/776 +f 4473/3969/777 4475/3970/777 4477/3968/777 +f 4474/3971/774 4478/3972/774 4476/3967/774 +f 4479/3973/778 4480/3974/778 4481/3975/778 +f 4482/3976/779 4479/3973/779 4483/3977/779 +f 4479/3978/780 4481/3979/780 4483/3977/780 +f 4480/3980/774 4484/3981/774 4482/3976/774 +f 4485/3982/778 4486/3983/778 4487/3984/778 +f 4488/3985/779 4485/3982/779 4489/3986/779 +f 4485/3987/781 4487/3988/781 4489/3986/781 +f 4486/3989/774 4490/3990/774 4488/3985/774 +f 4491/3991/774 4492/3992/774 4493/3993/774 +f 4494/3994/782 4495/3995/782 4496/3996/782 +f 4493/3993/783 4494/3997/783 4496/3996/783 +f 4494/3997/784 4491/3998/784 4495/3999/784 +f 4497/4000/775 4498/4001/775 4499/4002/775 +f 4500/4003/776 4497/4000/776 4501/4004/776 +f 4497/4005/785 4499/4006/785 4501/4004/785 +f 4498/4007/774 4502/4008/774 4500/4003/774 +f 4503/4009/774 4504/4010/774 4505/4011/774 +f 4506/4012/786 4507/4013/786 4508/4014/786 +f 4505/4011/783 4506/4015/783 4508/4014/783 +f 4506/4015/784 4503/4016/784 4507/4017/784 +f 4509/4018/774 4510/4019/774 4511/4020/774 +f 4512/4021/787 4513/4022/787 4514/4023/787 +f 4511/4020/788 4512/4024/788 4514/4023/788 +f 4512/4024/789 4509/4025/789 4513/4026/789 +f 4515/4027/774 4516/4028/774 4517/4029/774 +f 4518/4030/790 4519/4031/790 4520/4032/790 +f 4517/4029/788 4518/4033/788 4520/4032/788 +f 4518/4033/789 4515/4034/789 4519/4035/789 +f 4442/3928/774 4521/4036/774 4443/3929/774 +f 4444/3930/774 4443/4037/774 4445/3931/774 +f 4445/3933/774 4448/4038/774 4447/3934/774 +f 4448/3935/774 4450/4039/774 4449/3936/774 +f 4450/3937/774 4452/4040/774 4451/3938/774 +f 4452/3939/774 4454/4041/774 4453/3940/774 +f 4454/3941/774 4522/4042/774 4455/3942/774 +f 4455/3942/774 4522/4043/774 4456/3943/774 +f 4456/3945/774 4523/4044/774 4458/3946/774 +f 4458/3947/774 4523/4045/774 4459/3948/774 +f 4460/3949/774 4459/4046/774 4461/3950/774 +f 4461/3952/774 4464/4047/774 4463/3953/774 +f 4464/3954/774 4524/4048/774 4465/3955/774 +f 4465/3955/774 4524/4049/774 4466/3956/774 +f 4466/3958/774 4469/4050/774 4468/3959/774 +f 4469/3960/774 4521/4051/774 4442/3928/774 +f 4470/3961/774 4525/4052/774 4526/4053/774 +f 4526/4053/774 4527/4054/774 4471/3962/774 +f 4471/3962/774 4528/4055/774 4529/4056/774 +f 4529/4056/774 4530/4057/774 4472/3963/774 +f 4472/3963/774 4531/4058/774 4532/4059/774 +f 4532/4059/774 4533/4060/774 4534/4061/774 +f 4534/4061/774 4535/4062/774 4536/4063/774 +f 4536/4063/774 4537/4064/774 4534/4061/774 +f 4537/4064/774 4470/3961/774 4534/4061/774 +f 4470/3961/774 4526/4053/774 4471/3962/774 +f 4471/3962/774 4529/4056/774 4472/3963/774 +f 4472/3963/774 4532/4059/774 4470/3961/774 +f 4532/4059/774 4534/4061/774 4470/3961/774 +f 4473/3964/775 4478/3972/775 4474/3965/775 +f 4476/3967/776 4478/3972/776 4473/3964/776 +f 4479/3973/778 4484/3981/778 4480/3974/778 +f 4482/3976/779 4484/3981/779 4479/3973/779 +f 4485/3982/778 4490/3990/778 4486/3983/778 +f 4488/3985/779 4490/3990/779 4485/3982/779 +f 4493/3993/783 4492/3992/783 4494/3997/783 +f 4494/3997/784 4492/3992/784 4491/3998/784 +f 4497/4000/775 4502/4008/775 4498/4001/775 +f 4500/4003/776 4502/4008/776 4497/4000/776 +f 4505/4011/783 4504/4010/783 4506/4015/783 +f 4506/4015/784 4504/4010/784 4503/4016/784 +f 4511/4020/788 4510/4019/788 4512/4024/788 +f 4512/4024/789 4510/4019/789 4509/4025/789 +f 4517/4029/788 4516/4028/788 4518/4033/788 +f 4518/4033/789 4516/4028/789 4515/4034/789 s 1 -f 4470/2821/793 4471/2822/794 4472/2823/794 -f 4473/2824/795 4474/2825/796 4475/2826/796 -f 4476/2827/797 4477/2828/793 4470/2821/793 -f 4478/2829/798 4479/2830/795 4473/2824/795 -f 4480/2831/799 4481/2832/797 4476/2827/797 -f 4482/2833/800 4483/2834/798 4478/2829/798 -f 4484/2835/801 4485/2836/799 4480/2837/799 -f 4486/2838/802 4487/2839/800 4482/2833/800 -f 4488/2840/803 4489/2841/801 4484/2835/801 -f 4490/2842/804 4491/2843/802 4486/2838/802 -f 4492/2844/805 4493/2845/803 4488/2840/803 -f 4494/2846/806 4495/2847/804 4490/2842/804 -f 4496/2848/807 4497/2849/805 4492/2844/805 -f 4472/2823/794 4498/2850/808 4499/2851/808 -f 4499/2851/808 4500/2852/806 4494/2846/806 -f 4475/2826/796 4501/2853/807 4496/2848/807 -f 4501/2853/809 4502/2854/810 4497/2849/810 -f 4471/2822/811 4503/2855/812 4498/2850/812 -f 4498/2850/812 4504/2856/813 4500/2852/814 -f 4474/2825/815 4505/2857/809 4501/2853/809 -f 4477/2828/816 4506/2858/811 4471/2822/811 -f 4479/2830/817 4507/2859/815 4474/2825/815 -f 4481/2832/818 4508/2860/816 4477/2828/816 -f 4479/2830/817 4509/2861/819 4510/2862/817 -f 4485/2863/820 4511/2864/818 4481/2832/818 -f 4487/2839/821 4509/2865/819 4483/2834/819 -f 4489/2841/822 4512/2866/820 4485/2836/820 -f 4487/2839/821 4513/2867/823 4514/2868/821 -f 4493/2845/824 4515/2869/822 4489/2841/822 -f 4495/2847/825 4513/2870/823 4491/2843/823 -f 4497/2849/810 4516/2871/824 4493/2845/824 -f 4500/2852/814 4517/2872/825 4495/2847/825 -f 4518/2873/826 4478/2829/827 4473/2824/826 -f 4506/2858/828 4508/2874/829 4519/2875/830 -f 4508/2860/829 4511/2876/831 4519/2877/830 -f 4511/2864/831 4512/2878/832 4519/2879/830 -f 4512/2866/832 4515/2880/833 4519/2881/830 -f 4515/2869/833 4516/2882/834 4519/2883/830 -f 4516/2871/834 4502/2884/835 4519/2885/830 -f 4502/2854/835 4505/2886/836 4519/2887/830 -f 4505/2857/836 4507/2888/837 4519/2889/830 -f 4507/2859/837 4510/2890/838 4519/2891/830 -f 4510/2862/838 4509/2861/839 4519/2892/830 -f 4509/2865/839 4514/2893/840 4519/2894/830 -f 4514/2868/840 4513/2867/841 4519/2895/830 -f 4513/2870/841 4517/2896/842 4519/2897/830 -f 4517/2872/842 4504/2898/843 4519/2899/830 -f 4504/2856/843 4503/2900/844 4519/2901/830 -f 4503/2855/844 4506/2902/828 4519/2903/830 -f 4520/2904/827 4482/2833/845 4478/2829/827 -f 4521/2905/845 4486/2838/846 4482/2833/845 -f 4522/2906/846 4490/2842/847 4486/2838/846 -f 4523/2907/847 4494/2846/848 4490/2842/847 -f 4494/2846/848 4524/2908/849 4499/2851/849 -f 4524/2909/849 4472/2823/850 4499/2851/849 -f 4525/2910/850 4470/2821/851 4472/2823/850 -f 4526/2911/851 4476/2827/852 4470/2821/851 -f 4527/2912/852 4480/2831/853 4476/2827/852 -f 4528/2913/853 4484/2835/854 4480/2837/853 -f 4529/2914/854 4488/2840/855 4484/2835/854 -f 4530/2915/855 4492/2844/856 4488/2840/855 -f 4531/2916/856 4496/2848/857 4492/2844/856 -f 4532/2917/857 4475/2826/858 4496/2848/857 -f 4533/2918/858 4473/2824/826 4475/2826/858 -f 4525/2910/859 4534/2919/860 4526/2920/860 -f 4533/2918/861 4535/2921/862 4518/2922/862 -f 4526/2911/860 4536/2923/863 4527/2924/863 -f 4518/2873/862 4537/2925/864 4520/2926/864 -f 4527/2912/863 4538/2927/865 4528/2928/865 -f 4520/2904/864 4539/2929/866 4521/2930/866 -f 4528/2913/865 4540/2931/867 4529/2932/867 -f 4521/2905/866 4541/2933/868 4522/2934/868 -f 4529/2914/867 4542/2935/869 4530/2936/869 -f 4522/2906/868 4543/2937/870 4523/2938/870 -f 4530/2915/869 4544/2939/871 4531/2940/871 -f 4523/2907/870 4545/2941/872 4546/2942/872 -f 4531/2916/871 4547/2943/873 4532/2944/873 -f 4524/2909/874 4548/2945/859 4525/2946/859 -f 4546/2947/872 4549/2948/874 4524/2908/874 -f 4532/2917/873 4550/2949/861 4533/2950/861 -f 4542/2951/875 4551/2952/876 4544/2939/876 -f 4543/2953/877 4552/2954/878 4545/2941/878 -f 4544/2955/876 4553/2956/879 4547/2943/879 -f 4549/2957/880 4554/2958/881 4548/2945/881 -f 4545/2959/878 4555/2960/880 4549/2948/880 -f 4550/2949/882 4553/2956/879 4556/2961/882 -f 4548/2962/881 4557/2963/883 4534/2919/883 -f 4550/2964/882 4558/2965/884 4535/2921/884 -f 4534/2966/883 4559/2967/885 4536/2923/885 -f 4535/2968/884 4560/2969/886 4537/2925/886 -f 4536/2970/885 4561/2971/887 4538/2927/887 -f 4537/2972/886 4562/2973/888 4539/2929/888 -f 4538/2974/887 4563/2975/889 4540/2931/889 -f 4539/2976/888 4564/2977/890 4541/2933/890 -f 4540/2978/889 4565/2979/875 4542/2935/875 -f 4541/2980/890 4566/2981/877 4543/2937/877 -f 4560/2969/864 4376/2686/866 4562/2973/866 -f 4561/2982/865 4392/2705/867 4563/2975/867 -f 4562/2973/866 4378/2688/868 4564/2977/868 -f 4563/2975/867 4394/2707/869 4565/2979/869 -f 4564/2977/868 4379/2690/870 4566/2981/870 -f 4565/2979/869 4395/2709/871 4551/2952/871 -f 4566/2981/870 4381/2692/872 4552/2954/872 -f 4551/2952/871 4397/2711/873 4553/2956/873 -f 4555/2960/874 4385/2696/859 4554/2958/859 -f 4552/2954/872 4383/2694/874 4555/2960/874 -f 4553/2956/873 4399/2713/861 4556/2961/861 -f 4554/2958/859 4387/2698/860 4557/2963/860 -f 4556/2961/861 4400/2715/862 4558/2965/862 -f 4557/2963/860 4389/2700/863 4559/2967/863 -f 4558/2965/862 4374/2684/864 4560/2969/864 -f 4559/2967/863 4390/2702/865 4561/2971/865 -f 4380/2691/870 4459/2983/872 4382/2795/872 -f 4396/2710/871 4464/2984/873 4456/2804/873 -f 4384/2695/874 4457/2985/859 4386/2797/859 -f 4382/2693/872 4458/2986/874 4384/2796/874 -f 4456/2805/873 4463/2987/861 4398/2712/861 -f 4386/2697/859 4402/2988/860 4454/2798/860 -f 4398/2714/861 4404/2989/862 4401/2806/862 -f 4454/2799/860 4469/2990/863 4388/2699/863 -f 4401/2716/862 4462/2991/864 4453/2807/864 -f 4388/2701/863 4468/2992/865 4455/2800/865 -f 4453/2792/864 4461/2993/866 4375/2685/866 -f 4455/2801/865 4467/2994/867 4391/2704/867 -f 4375/2793/866 4460/2995/868 4377/2687/868 -f 4391/2802/867 4466/2996/869 4393/2706/869 -f 4377/2689/868 4403/2997/870 4380/2794/870 -f 4393/2708/869 4465/2998/871 4396/2803/871 -f 4470/2821/793 4477/2828/793 4471/2822/794 -f 4473/2824/795 4479/2830/795 4474/2825/796 -f 4476/2827/797 4481/2832/797 4477/2828/793 -f 4478/2829/798 4483/2834/798 4479/2830/795 -f 4480/2831/799 4485/2863/799 4481/2832/797 -f 4482/2833/800 4487/2839/800 4483/2834/798 -f 4484/2835/801 4489/2841/801 4485/2836/799 -f 4486/2838/802 4491/2843/802 4487/2839/800 -f 4488/2840/803 4493/2845/803 4489/2841/801 -f 4490/2842/804 4495/2847/804 4491/2843/802 -f 4492/2844/805 4497/2849/805 4493/2845/803 -f 4494/2846/806 4500/2852/806 4495/2847/804 -f 4496/2848/807 4501/2853/807 4497/2849/805 -f 4472/2823/794 4471/2822/794 4498/2850/808 -f 4499/2851/808 4498/2850/808 4500/2852/806 -f 4475/2826/796 4474/2825/796 4501/2853/807 -f 4501/2853/809 4505/2886/809 4502/2854/810 -f 4471/2822/811 4506/2902/811 4503/2855/812 -f 4498/2850/812 4503/2900/812 4504/2856/813 -f 4474/2825/815 4507/2888/815 4505/2857/809 -f 4477/2828/816 4508/2874/816 4506/2858/811 -f 4479/2830/817 4510/2890/817 4507/2859/815 -f 4481/2832/818 4511/2876/818 4508/2860/816 -f 4479/2830/817 4483/2834/819 4509/2861/819 -f 4485/2863/820 4512/2878/820 4511/2864/818 -f 4487/2839/821 4514/2893/821 4509/2865/819 -f 4489/2841/822 4515/2880/822 4512/2866/820 -f 4487/2839/821 4491/2843/823 4513/2867/823 -f 4493/2845/824 4516/2882/824 4515/2869/822 -f 4495/2847/825 4517/2896/825 4513/2870/823 -f 4497/2849/810 4502/2884/810 4516/2871/824 -f 4500/2852/814 4504/2898/813 4517/2872/825 -f 4518/2873/826 4520/2926/827 4478/2829/827 -f 4520/2904/827 4521/2930/845 4482/2833/845 -f 4521/2905/845 4522/2934/846 4486/2838/846 -f 4522/2906/846 4523/2938/847 4490/2842/847 -f 4523/2907/847 4546/2942/848 4494/2846/848 -f 4494/2846/848 4546/2947/848 4524/2908/849 -f 4524/2909/849 4525/2946/850 4472/2823/850 -f 4525/2910/850 4526/2920/851 4470/2821/851 -f 4526/2911/851 4527/2924/852 4476/2827/852 -f 4527/2912/852 4528/2928/853 4480/2831/853 -f 4528/2913/853 4529/2932/854 4484/2835/854 -f 4529/2914/854 4530/2936/855 4488/2840/855 -f 4530/2915/855 4531/2940/856 4492/2844/856 -f 4531/2916/856 4532/2944/857 4496/2848/857 -f 4532/2917/857 4533/2950/858 4475/2826/858 -f 4533/2918/858 4518/2922/826 4473/2824/826 -f 4525/2910/859 4548/2962/859 4534/2919/860 -f 4533/2918/861 4550/2964/861 4535/2921/862 -f 4526/2911/860 4534/2966/860 4536/2923/863 -f 4518/2873/862 4535/2968/862 4537/2925/864 -f 4527/2912/863 4536/2970/863 4538/2927/865 -f 4520/2904/864 4537/2972/864 4539/2929/866 -f 4528/2913/865 4538/2974/865 4540/2931/867 -f 4521/2905/866 4539/2976/866 4541/2933/868 -f 4529/2914/867 4540/2978/867 4542/2935/869 -f 4522/2906/868 4541/2980/868 4543/2937/870 -f 4530/2915/869 4542/2951/869 4544/2939/871 -f 4523/2907/870 4543/2953/870 4545/2941/872 -f 4531/2916/871 4544/2955/871 4547/2943/873 -f 4524/2909/874 4549/2957/874 4548/2945/859 -f 4546/2947/872 4545/2959/872 4549/2948/874 -f 4532/2917/873 4547/2999/873 4550/2949/861 -f 4542/2951/875 4565/2979/875 4551/2952/876 -f 4543/2953/877 4566/2981/877 4552/2954/878 -f 4544/2955/876 4551/2952/876 4553/2956/879 -f 4549/2957/880 4555/2960/880 4554/2958/881 -f 4545/2959/878 4552/2954/878 4555/2960/880 -f 4550/2949/882 4547/2999/879 4553/2956/879 -f 4548/2962/881 4554/2958/881 4557/2963/883 -f 4550/2964/882 4556/2961/882 4558/2965/884 -f 4534/2966/883 4557/2963/883 4559/2967/885 -f 4535/2968/884 4558/2965/884 4560/2969/886 -f 4536/2970/885 4559/2967/885 4561/2971/887 -f 4537/2972/886 4560/2969/886 4562/2973/888 -f 4538/2974/887 4561/2982/887 4563/2975/889 -f 4539/2976/888 4562/2973/888 4564/2977/890 -f 4540/2978/889 4563/2975/889 4565/2979/875 -f 4541/2980/890 4564/2977/890 4566/2981/877 -f 4560/2969/864 4374/2684/864 4376/2686/866 -f 4561/2982/865 4390/2703/865 4392/2705/867 -f 4562/2973/866 4376/2686/866 4378/2688/868 -f 4563/2975/867 4392/2705/867 4394/2707/869 -f 4564/2977/868 4378/2688/868 4379/2690/870 -f 4565/2979/869 4394/2707/869 4395/2709/871 -f 4566/2981/870 4379/2690/870 4381/2692/872 -f 4551/2952/871 4395/2709/871 4397/2711/873 -f 4555/2960/874 4383/2694/874 4385/2696/859 -f 4552/2954/872 4381/2692/872 4383/2694/874 -f 4553/2956/873 4397/2711/873 4399/2713/861 -f 4554/2958/859 4385/2696/859 4387/2698/860 -f 4556/2961/861 4399/2713/861 4400/2715/862 -f 4557/2963/860 4387/2698/860 4389/2700/863 -f 4558/2965/862 4400/2715/862 4374/2684/864 -f 4559/2967/863 4389/2700/863 4390/2702/865 -f 4380/2691/870 4403/3000/870 4459/2983/872 -f 4396/2710/871 4465/3001/871 4464/2984/873 -f 4384/2695/874 4458/3002/874 4457/2985/859 -f 4382/2693/872 4459/3003/872 4458/2986/874 -f 4456/2805/873 4464/3004/873 4463/2987/861 -f 4386/2697/859 4457/3005/859 4402/2988/860 -f 4398/2714/861 4463/3006/861 4404/2989/862 -f 4454/2799/860 4402/3007/860 4469/2990/863 -f 4401/2716/862 4404/3008/862 4462/2991/864 -f 4388/2701/863 4469/3009/863 4468/2992/865 -f 4453/2792/864 4462/3010/864 4461/2993/866 -f 4455/2801/865 4468/3011/865 4467/2994/867 -f 4375/2793/866 4461/3012/866 4460/2995/868 -f 4391/2802/867 4467/3013/867 4466/2996/869 -f 4377/2689/868 4460/3014/868 4403/2997/870 -f 4393/2708/869 4466/3015/869 4465/2998/871 +f 4538/4065/791 4539/4066/792 4540/4067/792 +f 4541/4068/793 4542/4069/794 4543/4070/794 +f 4544/4071/795 4545/4072/791 4538/4065/791 +f 4546/4073/796 4547/4074/793 4541/4068/793 +f 4548/4075/797 4549/4076/795 4544/4071/795 +f 4550/4077/798 4551/4078/796 4546/4073/796 +f 4552/4079/799 4553/4080/797 4548/4081/797 +f 4554/4082/800 4555/4083/798 4550/4077/798 +f 4556/4084/801 4557/4085/799 4552/4079/799 +f 4558/4086/802 4559/4087/800 4554/4082/800 +f 4560/4088/803 4561/4089/801 4556/4084/801 +f 4562/4090/804 4563/4091/802 4558/4086/802 +f 4564/4092/805 4565/4093/803 4560/4088/803 +f 4540/4067/792 4566/4094/806 4567/4095/806 +f 4567/4095/806 4568/4096/804 4562/4090/804 +f 4543/4070/794 4569/4097/805 4564/4092/805 +f 4569/4097/807 4570/4098/808 4565/4093/808 +f 4539/4066/809 4571/4099/810 4566/4094/810 +f 4566/4094/810 4572/4100/811 4568/4096/812 +f 4542/4069/813 4573/4101/807 4569/4097/807 +f 4545/4072/814 4574/4102/809 4539/4066/809 +f 4547/4074/815 4575/4103/813 4542/4069/813 +f 4549/4076/816 4576/4104/814 4545/4072/814 +f 4547/4074/815 4577/4105/817 4578/4106/815 +f 4553/4107/818 4579/4108/816 4549/4076/816 +f 4555/4083/819 4577/4109/817 4551/4078/817 +f 4557/4085/820 4580/4110/818 4553/4080/818 +f 4555/4083/819 4581/4111/821 4582/4112/819 +f 4561/4089/822 4583/4113/820 4557/4085/820 +f 4563/4091/823 4581/4114/821 4559/4087/821 +f 4565/4093/808 4584/4115/822 4561/4089/822 +f 4568/4096/812 4585/4116/823 4563/4091/823 +f 4586/4117/824 4546/4073/825 4541/4068/824 +f 4574/4102/826 4576/4118/827 4587/4119/828 +f 4576/4104/827 4579/4120/829 4587/4121/828 +f 4579/4108/829 4580/4122/830 4587/4123/828 +f 4580/4110/830 4583/4124/831 4587/4125/828 +f 4583/4113/831 4584/4126/832 4587/4127/828 +f 4584/4115/832 4570/4128/833 4587/4129/828 +f 4570/4098/833 4573/4130/834 4587/4131/828 +f 4573/4101/834 4575/4132/835 4587/4133/828 +f 4575/4103/835 4578/4134/836 4587/4135/828 +f 4578/4106/836 4577/4105/837 4587/4136/828 +f 4577/4109/837 4582/4137/838 4587/4138/828 +f 4582/4112/838 4581/4111/839 4587/4139/828 +f 4581/4114/839 4585/4140/840 4587/4141/828 +f 4585/4116/840 4572/4142/841 4587/4143/828 +f 4572/4100/841 4571/4144/842 4587/4145/828 +f 4571/4099/842 4574/4146/826 4587/4147/828 +f 4588/4148/825 4550/4077/843 4546/4073/825 +f 4589/4149/843 4554/4082/844 4550/4077/843 +f 4590/4150/844 4558/4086/845 4554/4082/844 +f 4591/4151/845 4562/4090/846 4558/4086/845 +f 4562/4090/846 4592/4152/847 4567/4095/847 +f 4592/4153/847 4540/4067/848 4567/4095/847 +f 4593/4154/848 4538/4065/849 4540/4067/848 +f 4594/4155/849 4544/4071/850 4538/4065/849 +f 4595/4156/850 4548/4075/851 4544/4071/850 +f 4596/4157/851 4552/4079/852 4548/4081/851 +f 4597/4158/852 4556/4084/853 4552/4079/852 +f 4598/4159/853 4560/4088/854 4556/4084/853 +f 4599/4160/854 4564/4092/855 4560/4088/854 +f 4600/4161/855 4543/4070/856 4564/4092/855 +f 4601/4162/856 4541/4068/824 4543/4070/856 +f 4593/4154/857 4602/4163/858 4594/4164/858 +f 4601/4162/859 4603/4165/860 4586/4166/860 +f 4594/4155/858 4604/4167/861 4595/4168/861 +f 4586/4117/860 4605/4169/862 4588/4170/862 +f 4595/4156/861 4606/4171/863 4596/4172/863 +f 4588/4148/862 4607/4173/864 4589/4174/864 +f 4596/4157/863 4608/4175/865 4597/4176/865 +f 4589/4149/864 4609/4177/866 4590/4178/866 +f 4597/4158/865 4610/4179/867 4598/4180/867 +f 4590/4150/866 4611/4181/868 4591/4182/868 +f 4598/4159/867 4612/4183/869 4599/4184/869 +f 4591/4151/868 4613/4185/870 4614/4186/870 +f 4599/4160/869 4615/4187/871 4600/4188/871 +f 4592/4153/872 4616/4189/857 4593/4190/857 +f 4614/4191/870 4617/4192/872 4592/4152/872 +f 4600/4161/871 4618/4193/859 4601/4194/859 +f 4610/4195/873 4619/4196/874 4612/4183/874 +f 4611/4197/875 4620/4198/876 4613/4185/876 +f 4612/4199/874 4621/4200/877 4615/4187/877 +f 4617/4201/878 4622/4202/879 4616/4189/879 +f 4613/4203/876 4623/4204/878 4617/4192/878 +f 4618/4193/880 4621/4200/877 4624/4205/880 +f 4616/4206/879 4625/4207/881 4602/4163/881 +f 4618/4208/880 4626/4209/882 4603/4165/882 +f 4602/4210/881 4627/4211/883 4604/4167/883 +f 4603/4212/882 4628/4213/884 4605/4169/884 +f 4604/4214/883 4629/4215/885 4606/4171/885 +f 4605/4216/884 4630/4217/886 4607/4173/886 +f 4606/4218/885 4631/4219/887 4608/4175/887 +f 4607/4220/886 4632/4221/888 4609/4177/888 +f 4608/4222/887 4633/4223/873 4610/4179/873 +f 4609/4224/888 4634/4225/875 4611/4181/875 +f 4628/4213/862 4444/3930/864 4630/4217/864 +f 4629/4226/863 4460/3949/865 4631/4219/865 +f 4630/4217/864 4446/3932/866 4632/4221/866 +f 4631/4219/865 4462/3951/867 4633/4223/867 +f 4632/4221/866 4447/3934/868 4634/4225/868 +f 4633/4223/867 4463/3953/869 4619/4196/869 +f 4634/4225/868 4449/3936/870 4620/4198/870 +f 4619/4196/869 4465/3955/871 4621/4200/871 +f 4623/4204/872 4453/3940/857 4622/4202/857 +f 4620/4198/870 4451/3938/872 4623/4204/872 +f 4621/4200/871 4467/3957/859 4624/4205/859 +f 4622/4202/857 4455/3942/858 4625/4207/858 +f 4624/4205/859 4468/3959/860 4626/4209/860 +f 4625/4207/858 4457/3944/861 4627/4211/861 +f 4626/4209/860 4442/3928/862 4628/4213/862 +f 4627/4211/861 4458/3946/863 4629/4215/863 +f 4448/3935/868 4527/4227/870 4450/4039/870 +f 4464/3954/869 4532/4228/871 4524/4048/871 +f 4452/3939/872 4525/4229/857 4454/4041/857 +f 4450/3937/870 4526/4230/872 4452/4040/872 +f 4524/4049/871 4531/4231/859 4466/3956/859 +f 4454/3941/857 4470/4232/858 4522/4042/858 +f 4466/3958/859 4472/4233/860 4469/4050/860 +f 4522/4043/858 4537/4234/861 4456/3943/861 +f 4469/3960/860 4530/4235/862 4521/4051/862 +f 4456/3945/861 4536/4236/863 4523/4044/863 +f 4521/4036/862 4529/4237/864 4443/3929/864 +f 4523/4045/863 4535/4238/865 4459/3948/865 +f 4443/4037/864 4528/4239/866 4445/3931/866 +f 4459/4046/865 4534/4240/867 4461/3950/867 +f 4445/3933/866 4471/4241/868 4448/4038/868 +f 4461/3952/867 4533/4242/869 4464/4047/869 +f 4538/4065/791 4545/4072/791 4539/4066/792 +f 4541/4068/793 4547/4074/793 4542/4069/794 +f 4544/4071/795 4549/4076/795 4545/4072/791 +f 4546/4073/796 4551/4078/796 4547/4074/793 +f 4548/4075/797 4553/4107/797 4549/4076/795 +f 4550/4077/798 4555/4083/798 4551/4078/796 +f 4552/4079/799 4557/4085/799 4553/4080/797 +f 4554/4082/800 4559/4087/800 4555/4083/798 +f 4556/4084/801 4561/4089/801 4557/4085/799 +f 4558/4086/802 4563/4091/802 4559/4087/800 +f 4560/4088/803 4565/4093/803 4561/4089/801 +f 4562/4090/804 4568/4096/804 4563/4091/802 +f 4564/4092/805 4569/4097/805 4565/4093/803 +f 4540/4067/792 4539/4066/792 4566/4094/806 +f 4567/4095/806 4566/4094/806 4568/4096/804 +f 4543/4070/794 4542/4069/794 4569/4097/805 +f 4569/4097/807 4573/4130/807 4570/4098/808 +f 4539/4066/809 4574/4146/809 4571/4099/810 +f 4566/4094/810 4571/4144/810 4572/4100/811 +f 4542/4069/813 4575/4132/813 4573/4101/807 +f 4545/4072/814 4576/4118/814 4574/4102/809 +f 4547/4074/815 4578/4134/815 4575/4103/813 +f 4549/4076/816 4579/4120/816 4576/4104/814 +f 4547/4074/815 4551/4078/817 4577/4105/817 +f 4553/4107/818 4580/4122/818 4579/4108/816 +f 4555/4083/819 4582/4137/819 4577/4109/817 +f 4557/4085/820 4583/4124/820 4580/4110/818 +f 4555/4083/819 4559/4087/821 4581/4111/821 +f 4561/4089/822 4584/4126/822 4583/4113/820 +f 4563/4091/823 4585/4140/823 4581/4114/821 +f 4565/4093/808 4570/4128/808 4584/4115/822 +f 4568/4096/812 4572/4142/811 4585/4116/823 +f 4586/4117/824 4588/4170/825 4546/4073/825 +f 4588/4148/825 4589/4174/843 4550/4077/843 +f 4589/4149/843 4590/4178/844 4554/4082/844 +f 4590/4150/844 4591/4182/845 4558/4086/845 +f 4591/4151/845 4614/4186/846 4562/4090/846 +f 4562/4090/846 4614/4191/846 4592/4152/847 +f 4592/4153/847 4593/4190/848 4540/4067/848 +f 4593/4154/848 4594/4164/849 4538/4065/849 +f 4594/4155/849 4595/4168/850 4544/4071/850 +f 4595/4156/850 4596/4172/851 4548/4075/851 +f 4596/4157/851 4597/4176/852 4552/4079/852 +f 4597/4158/852 4598/4180/853 4556/4084/853 +f 4598/4159/853 4599/4184/854 4560/4088/854 +f 4599/4160/854 4600/4188/855 4564/4092/855 +f 4600/4161/855 4601/4194/856 4543/4070/856 +f 4601/4162/856 4586/4166/824 4541/4068/824 +f 4593/4154/857 4616/4206/857 4602/4163/858 +f 4601/4162/859 4618/4208/859 4603/4165/860 +f 4594/4155/858 4602/4210/858 4604/4167/861 +f 4586/4117/860 4603/4212/860 4605/4169/862 +f 4595/4156/861 4604/4214/861 4606/4171/863 +f 4588/4148/862 4605/4216/862 4607/4173/864 +f 4596/4157/863 4606/4218/863 4608/4175/865 +f 4589/4149/864 4607/4220/864 4609/4177/866 +f 4597/4158/865 4608/4222/865 4610/4179/867 +f 4590/4150/866 4609/4224/866 4611/4181/868 +f 4598/4159/867 4610/4195/867 4612/4183/869 +f 4591/4151/868 4611/4197/868 4613/4185/870 +f 4599/4160/869 4612/4199/869 4615/4187/871 +f 4592/4153/872 4617/4201/872 4616/4189/857 +f 4614/4191/870 4613/4203/870 4617/4192/872 +f 4600/4161/871 4615/4243/871 4618/4193/859 +f 4610/4195/873 4633/4223/873 4619/4196/874 +f 4611/4197/875 4634/4225/875 4620/4198/876 +f 4612/4199/874 4619/4196/874 4621/4200/877 +f 4617/4201/878 4623/4204/878 4622/4202/879 +f 4613/4203/876 4620/4198/876 4623/4204/878 +f 4618/4193/880 4615/4243/877 4621/4200/877 +f 4616/4206/879 4622/4202/879 4625/4207/881 +f 4618/4208/880 4624/4205/880 4626/4209/882 +f 4602/4210/881 4625/4207/881 4627/4211/883 +f 4603/4212/882 4626/4209/882 4628/4213/884 +f 4604/4214/883 4627/4211/883 4629/4215/885 +f 4605/4216/884 4628/4213/884 4630/4217/886 +f 4606/4218/885 4629/4226/885 4631/4219/887 +f 4607/4220/886 4630/4217/886 4632/4221/888 +f 4608/4222/887 4631/4219/887 4633/4223/873 +f 4609/4224/888 4632/4221/888 4634/4225/875 +f 4628/4213/862 4442/3928/862 4444/3930/864 +f 4629/4226/863 4458/3947/863 4460/3949/865 +f 4630/4217/864 4444/3930/864 4446/3932/866 +f 4631/4219/865 4460/3949/865 4462/3951/867 +f 4632/4221/866 4446/3932/866 4447/3934/868 +f 4633/4223/867 4462/3951/867 4463/3953/869 +f 4634/4225/868 4447/3934/868 4449/3936/870 +f 4619/4196/869 4463/3953/869 4465/3955/871 +f 4623/4204/872 4451/3938/872 4453/3940/857 +f 4620/4198/870 4449/3936/870 4451/3938/872 +f 4621/4200/871 4465/3955/871 4467/3957/859 +f 4622/4202/857 4453/3940/857 4455/3942/858 +f 4624/4205/859 4467/3957/859 4468/3959/860 +f 4625/4207/858 4455/3942/858 4457/3944/861 +f 4626/4209/860 4468/3959/860 4442/3928/862 +f 4627/4211/861 4457/3944/861 4458/3946/863 +f 4448/3935/868 4471/4244/868 4527/4227/870 +f 4464/3954/869 4533/4245/869 4532/4228/871 +f 4452/3939/872 4526/4246/872 4525/4229/857 +f 4450/3937/870 4527/4247/870 4526/4230/872 +f 4524/4049/871 4532/4248/871 4531/4231/859 +f 4454/3941/857 4525/4249/857 4470/4232/858 +f 4466/3958/859 4531/4250/859 4472/4233/860 +f 4522/4043/858 4470/4251/858 4537/4234/861 +f 4469/3960/860 4472/4252/860 4530/4235/862 +f 4456/3945/861 4537/4253/861 4536/4236/863 +f 4521/4036/862 4530/4254/862 4529/4237/864 +f 4523/4045/863 4536/4255/863 4535/4238/865 +f 4443/4037/864 4529/4256/864 4528/4239/866 +f 4459/4046/865 4535/4257/865 4534/4240/867 +f 4445/3933/866 4528/4258/866 4471/4241/868 +f 4461/3952/867 4534/4259/867 4533/4242/869 o V2_Missile v 0.265165 2.500000 -0.265165 v 0.265165 2.500000 0.265165 @@ -15133,189 +16453,189 @@ vn -0.3797 -0.1240 -0.9167 vn 0.0000 -0.1240 -0.9923 vn 0.3797 -0.1240 0.9167 s off -f 4567/3016/891 4568/3017/891 4569/3018/891 -f 4570/3019/892 4571/3020/892 4572/3021/892 -f 4573/3022/893 4574/3023/893 4575/3024/893 -f 4576/3025/894 4577/3026/894 4578/3027/894 -f 4579/3028/895 4580/3029/895 4581/3030/895 -f 4582/3031/892 4576/3032/892 4574/3033/892 -f 4583/3034/896 4579/3035/896 4571/3036/896 -f 4573/3022/897 4575/3024/897 4584/3037/897 -f 4570/3019/893 4572/3021/893 4585/3038/893 -f 4577/3026/891 4574/3039/891 4578/3027/891 -f 4582/3040/898 4586/3041/898 4587/3042/898 -f 4581/3030/891 4572/3021/891 4571/3043/891 -f 4583/3044/899 4588/3045/899 4589/3046/899 -f 4590/3047/900 4591/3048/900 4592/3049/900 -f 4593/3050/891 4594/3051/891 4595/3052/891 -f 4591/3048/896 4596/3053/896 4597/3054/896 -f 4598/3055/893 4599/3056/893 4594/3057/893 -f 4599/3058/901 4593/3050/901 4595/3052/901 -f 4591/3048/897 4594/3059/897 4596/3053/897 -f 4600/3060/902 4601/3061/902 4602/3062/902 -f 4603/3063/891 4604/3064/891 4605/3065/891 -f 4606/3066/892 4604/3064/892 4607/3067/892 -f 4600/3068/897 4608/3069/897 4605/3070/897 -f 4607/3071/903 4603/3063/903 4608/3072/903 -f 4606/3066/896 4605/3073/896 4604/3064/896 -f 4609/3074/891 4610/3075/891 4611/3076/891 -f 4611/3076/891 4612/3077/891 4567/3016/891 -f 4567/3016/891 4613/3078/891 4568/3017/891 -f 4613/3078/891 4614/3079/891 4568/3017/891 -f 4614/3079/891 4615/3080/891 4568/3017/891 -f 4568/3017/891 4616/3081/891 4569/3018/891 -f 4616/3081/891 4617/3082/891 4569/3018/891 -f 4617/3082/891 4618/3083/891 4569/3018/891 -f 4569/3018/891 4619/3084/891 4620/3085/891 -f 4620/3085/891 4621/3086/891 4609/3074/891 -f 4609/3074/891 4611/3076/891 4567/3016/891 -f 4569/3018/891 4620/3085/891 4609/3074/891 -f 4609/3074/891 4567/3016/891 4569/3018/891 -f 4570/3019/892 4583/3044/892 4571/3020/892 -f 4573/3022/893 4582/3040/893 4574/3023/893 -f 4576/3025/894 4584/3087/894 4577/3026/894 -f 4579/3028/895 4585/3088/895 4580/3029/895 -f 4587/3089/892 4576/3032/892 4582/3031/892 -f 4576/3032/892 4578/3090/892 4574/3033/892 -f 4589/3091/896 4579/3035/896 4583/3034/896 -f 4579/3035/896 4581/3092/896 4571/3036/896 -f 4577/3026/897 4584/3037/897 4575/3024/897 -f 4584/3037/897 4586/3093/897 4573/3022/897 -f 4580/3029/893 4585/3038/893 4572/3021/893 -f 4585/3038/893 4588/3094/893 4570/3019/893 -f 4577/3026/891 4575/3024/891 4574/3039/891 -f 4582/3040/898 4573/3022/898 4586/3041/898 -f 4581/3030/891 4580/3029/891 4572/3021/891 -f 4583/3044/899 4570/3019/899 4588/3045/899 -f 4590/3047/900 4598/3095/900 4591/3048/900 -f 4593/3050/891 4596/3053/891 4594/3051/891 -f 4593/3050/896 4597/3054/896 4596/3053/896 -f 4597/3054/896 4592/3096/896 4591/3048/896 -f 4590/3097/893 4599/3056/893 4598/3055/893 -f 4599/3056/893 4595/3098/893 4594/3057/893 -f 4599/3058/901 4597/3099/901 4593/3050/901 -f 4591/3048/897 4598/3095/897 4594/3059/897 -f 4600/3060/902 4606/3066/902 4601/3061/902 -f 4603/3063/891 4622/3100/891 4604/3064/891 -f 4622/3100/892 4607/3067/892 4604/3064/892 -f 4607/3067/892 4601/3101/892 4606/3066/892 -f 4602/3102/897 4608/3069/897 4600/3068/897 -f 4608/3069/897 4603/3103/897 4605/3070/897 -f 4607/3071/903 4622/3100/903 4603/3063/903 -f 4606/3066/896 4600/3060/896 4605/3073/896 +f 4635/4260/889 4636/4261/889 4637/4262/889 +f 4638/4263/890 4639/4264/890 4640/4265/890 +f 4641/4266/891 4642/4267/891 4643/4268/891 +f 4644/4269/892 4645/4270/892 4646/4271/892 +f 4647/4272/893 4648/4273/893 4649/4274/893 +f 4650/4275/890 4644/4276/890 4642/4277/890 +f 4651/4278/894 4647/4279/894 4639/4280/894 +f 4641/4266/895 4643/4268/895 4652/4281/895 +f 4638/4263/891 4640/4265/891 4653/4282/891 +f 4645/4270/889 4642/4283/889 4646/4271/889 +f 4650/4284/896 4654/4285/896 4655/4286/896 +f 4649/4274/889 4640/4265/889 4639/4287/889 +f 4651/4288/897 4656/4289/897 4657/4290/897 +f 4658/4291/898 4659/4292/898 4660/4293/898 +f 4661/4294/889 4662/4295/889 4663/4296/889 +f 4659/4292/894 4664/4297/894 4665/4298/894 +f 4666/4299/891 4667/4300/891 4662/4301/891 +f 4667/4302/899 4661/4294/899 4663/4296/899 +f 4659/4292/895 4662/4303/895 4664/4297/895 +f 4668/4304/900 4669/4305/900 4670/4306/900 +f 4671/4307/889 4672/4308/889 4673/4309/889 +f 4674/4310/890 4672/4308/890 4675/4311/890 +f 4668/4312/895 4676/4313/895 4673/4314/895 +f 4675/4315/901 4671/4307/901 4676/4316/901 +f 4674/4310/894 4673/4317/894 4672/4308/894 +f 4677/4318/889 4678/4319/889 4679/4320/889 +f 4679/4320/889 4680/4321/889 4635/4260/889 +f 4635/4260/889 4681/4322/889 4636/4261/889 +f 4681/4322/889 4682/4323/889 4636/4261/889 +f 4682/4323/889 4683/4324/889 4636/4261/889 +f 4636/4261/889 4684/4325/889 4637/4262/889 +f 4684/4325/889 4685/4326/889 4637/4262/889 +f 4685/4326/889 4686/4327/889 4637/4262/889 +f 4637/4262/889 4687/4328/889 4688/4329/889 +f 4688/4329/889 4689/4330/889 4677/4318/889 +f 4677/4318/889 4679/4320/889 4635/4260/889 +f 4637/4262/889 4688/4329/889 4677/4318/889 +f 4677/4318/889 4635/4260/889 4637/4262/889 +f 4638/4263/890 4651/4288/890 4639/4264/890 +f 4641/4266/891 4650/4284/891 4642/4267/891 +f 4644/4269/892 4652/4331/892 4645/4270/892 +f 4647/4272/893 4653/4332/893 4648/4273/893 +f 4655/4333/890 4644/4276/890 4650/4275/890 +f 4644/4276/890 4646/4334/890 4642/4277/890 +f 4657/4335/894 4647/4279/894 4651/4278/894 +f 4647/4279/894 4649/4336/894 4639/4280/894 +f 4645/4270/895 4652/4281/895 4643/4268/895 +f 4652/4281/895 4654/4337/895 4641/4266/895 +f 4648/4273/891 4653/4282/891 4640/4265/891 +f 4653/4282/891 4656/4338/891 4638/4263/891 +f 4645/4270/889 4643/4268/889 4642/4283/889 +f 4650/4284/896 4641/4266/896 4654/4285/896 +f 4649/4274/889 4648/4273/889 4640/4265/889 +f 4651/4288/897 4638/4263/897 4656/4289/897 +f 4658/4291/898 4666/4339/898 4659/4292/898 +f 4661/4294/889 4664/4297/889 4662/4295/889 +f 4661/4294/894 4665/4298/894 4664/4297/894 +f 4665/4298/894 4660/4340/894 4659/4292/894 +f 4658/4341/891 4667/4300/891 4666/4299/891 +f 4667/4300/891 4663/4342/891 4662/4301/891 +f 4667/4302/899 4665/4343/899 4661/4294/899 +f 4659/4292/895 4666/4339/895 4662/4303/895 +f 4668/4304/900 4674/4310/900 4669/4305/900 +f 4671/4307/889 4690/4344/889 4672/4308/889 +f 4690/4344/890 4675/4311/890 4672/4308/890 +f 4675/4311/890 4669/4345/890 4674/4310/890 +f 4670/4346/895 4676/4313/895 4668/4312/895 +f 4676/4313/895 4671/4347/895 4673/4314/895 +f 4675/4315/901 4690/4344/901 4671/4307/901 +f 4674/4310/894 4668/4304/894 4673/4317/894 s 1 -f 4623/3104/904 4624/3105/905 4625/3106/906 -f 4626/3107/907 4627/3108/908 4628/3109/909 -f 4629/3110/910 4630/3111/911 4623/3104/904 -f 4631/3112/912 4632/3113/913 4626/3107/907 -f 4633/3114/914 4634/3115/915 4629/3110/910 -f 4635/3116/916 4636/3117/917 4631/3118/912 -f 4637/3119/918 4638/3120/919 4633/3114/914 -f 4639/3121/920 4640/3122/921 4635/3116/916 -f 4641/3123/922 4642/3124/923 4637/3119/918 -f 4643/3125/924 4644/3126/925 4639/3121/920 -f 4645/3127/926 4646/3128/927 4641/3123/922 -f 4643/3125/924 4647/3129/928 4648/3130/929 -f 4649/3131/930 4650/3132/931 4651/3133/932 -f 4651/3133/932 4652/3134/933 4645/3127/926 -f 4625/3106/906 4647/3129/928 4653/3135/934 -f 4628/3109/909 4654/3136/935 4649/3131/930 -f 4652/3134/933 4655/3137/936 4656/3138/937 -f 4624/3105/905 4657/3139/938 4647/3129/928 -f 4654/3136/935 4658/3140/939 4659/3141/940 -f 4624/3105/905 4660/3142/941 4661/3143/942 -f 4632/3113/913 4658/3144/939 4627/3108/908 -f 4634/3115/915 4660/3145/941 4630/3111/911 -f 4632/3113/913 4662/3146/943 4663/3147/944 -f 4634/3115/915 4664/3148/945 4665/3149/946 -f 4640/3122/921 4662/3150/943 4636/3117/917 -f 4642/3124/923 4664/3151/945 4638/3120/919 -f 4640/3122/921 4666/3152/947 4667/3153/948 -f 4646/3128/927 4668/3154/949 4642/3124/923 -f 4648/3130/929 4666/3155/947 4644/3126/925 -f 4652/3134/933 4669/3156/950 4646/3128/927 -f 4647/3129/928 4670/3157/951 4648/3130/929 -f 4654/3136/935 4655/3158/936 4650/3132/931 -f 4659/3141/940 4658/3140/939 4671/3159/952 -f 4658/3144/939 4663/3160/944 4671/3161/952 -f 4663/3147/944 4662/3146/943 4671/3162/952 -f 4662/3150/943 4667/3163/948 4671/3164/952 -f 4667/3153/948 4666/3152/947 4671/3165/952 -f 4666/3155/947 4670/3166/951 4671/3167/952 -f 4670/3157/951 4657/3168/938 4671/3169/952 -f 4657/3139/938 4661/3170/942 4671/3171/952 -f 4661/3143/942 4660/3142/941 4671/3172/952 -f 4660/3145/941 4665/3173/946 4671/3174/952 -f 4665/3149/946 4664/3148/945 4671/3175/952 -f 4664/3151/945 4668/3176/949 4671/3177/952 -f 4668/3154/949 4669/3178/950 4671/3179/952 -f 4669/3156/950 4656/3180/937 4671/3181/952 -f 4656/3138/937 4655/3137/936 4671/3182/952 -f 4655/3158/936 4659/3183/940 4671/3184/952 -f 4625/3106/906 4568/3185/953 4623/3104/904 -f 4626/3107/907 4609/3186/954 4621/3187/955 -f 4629/3110/910 4568/3188/953 4615/3189/956 -f 4631/3112/912 4621/3190/955 4620/3191/957 -f 4633/3114/914 4615/3192/956 4614/3193/958 -f 4635/3116/916 4620/3194/957 4619/3195/959 -f 4633/3114/914 4613/3196/960 4637/3119/918 -f 4635/3116/916 4569/3197/961 4639/3121/920 -f 4637/3119/918 4567/3198/962 4641/3123/922 -f 4639/3121/920 4618/3199/963 4643/3125/924 -f 4645/3127/926 4567/3200/962 4612/3201/964 -f 4643/3125/924 4617/3202/965 4653/3135/934 -f 4651/3133/932 4610/3203/966 4649/3131/930 -f 4645/3127/926 4611/3204/967 4651/3133/932 -f 4625/3106/906 4617/3205/965 4616/3206/968 -f 4628/3109/909 4610/3207/966 4609/3208/954 -f 4623/3104/904 4630/3111/911 4624/3105/905 -f 4626/3107/907 4632/3113/913 4627/3108/908 -f 4629/3110/910 4634/3115/915 4630/3111/911 -f 4631/3112/912 4636/3209/917 4632/3113/913 -f 4633/3114/914 4638/3120/919 4634/3115/915 -f 4635/3116/916 4640/3122/921 4636/3117/917 -f 4637/3119/918 4642/3124/923 4638/3120/919 -f 4639/3121/920 4644/3126/925 4640/3122/921 -f 4641/3123/922 4646/3128/927 4642/3124/923 -f 4643/3125/924 4648/3130/929 4644/3126/925 -f 4645/3127/926 4652/3134/933 4646/3128/927 -f 4643/3125/924 4653/3135/934 4647/3129/928 -f 4649/3131/930 4654/3136/935 4650/3132/931 -f 4651/3133/932 4650/3132/931 4652/3134/933 -f 4625/3106/906 4624/3105/905 4647/3129/928 -f 4628/3109/909 4627/3108/908 4654/3136/935 -f 4652/3134/933 4650/3132/931 4655/3137/936 -f 4624/3105/905 4661/3170/942 4657/3139/938 -f 4654/3136/935 4627/3108/908 4658/3140/939 -f 4624/3105/905 4630/3111/911 4660/3142/941 -f 4632/3113/913 4663/3160/944 4658/3144/939 -f 4634/3115/915 4665/3173/946 4660/3145/941 -f 4632/3113/913 4636/3209/917 4662/3146/943 -f 4634/3115/915 4638/3120/919 4664/3148/945 -f 4640/3122/921 4667/3163/948 4662/3150/943 -f 4642/3124/923 4668/3176/949 4664/3151/945 -f 4640/3122/921 4644/3126/925 4666/3152/947 -f 4646/3128/927 4669/3178/950 4668/3154/949 -f 4648/3130/929 4670/3166/951 4666/3155/947 -f 4652/3134/933 4656/3180/937 4669/3156/950 -f 4647/3129/928 4657/3168/938 4670/3157/951 -f 4654/3136/935 4659/3183/940 4655/3158/936 -f 4625/3106/906 4616/3210/968 4568/3185/953 -f 4626/3107/907 4628/3109/909 4609/3186/954 -f 4629/3110/910 4623/3104/904 4568/3188/953 -f 4631/3112/912 4626/3107/907 4621/3190/955 -f 4633/3114/914 4629/3110/910 4615/3192/956 -f 4635/3116/916 4631/3118/912 4620/3194/957 -f 4633/3114/914 4614/3211/958 4613/3196/960 -f 4635/3116/916 4619/3212/959 4569/3197/961 -f 4637/3119/918 4613/3213/960 4567/3198/962 -f 4639/3121/920 4569/3214/961 4618/3199/963 -f 4645/3127/926 4641/3123/922 4567/3200/962 -f 4643/3125/924 4618/3215/963 4617/3202/965 -f 4651/3133/932 4611/3216/967 4610/3203/966 -f 4645/3127/926 4612/3217/964 4611/3204/967 -f 4625/3106/906 4653/3135/934 4617/3205/965 -f 4628/3109/909 4649/3131/930 4610/3207/966 +f 4691/4348/902 4692/4349/903 4693/4350/904 +f 4694/4351/905 4695/4352/906 4696/4353/907 +f 4697/4354/908 4698/4355/909 4691/4348/902 +f 4699/4356/910 4700/4357/911 4694/4351/905 +f 4701/4358/912 4702/4359/913 4697/4354/908 +f 4703/4360/914 4704/4361/915 4699/4362/910 +f 4705/4363/916 4706/4364/917 4701/4358/912 +f 4707/4365/918 4708/4366/919 4703/4360/914 +f 4709/4367/920 4710/4368/921 4705/4363/916 +f 4711/4369/922 4712/4370/923 4707/4365/918 +f 4713/4371/924 4714/4372/925 4709/4367/920 +f 4711/4369/922 4715/4373/926 4716/4374/927 +f 4717/4375/928 4718/4376/929 4719/4377/930 +f 4719/4377/930 4720/4378/931 4713/4371/924 +f 4693/4350/904 4715/4373/926 4721/4379/932 +f 4696/4353/907 4722/4380/933 4717/4375/928 +f 4720/4378/931 4723/4381/934 4724/4382/935 +f 4692/4349/903 4725/4383/936 4715/4373/926 +f 4722/4380/933 4726/4384/937 4727/4385/938 +f 4692/4349/903 4728/4386/939 4729/4387/940 +f 4700/4357/911 4726/4388/937 4695/4352/906 +f 4702/4359/913 4728/4389/939 4698/4355/909 +f 4700/4357/911 4730/4390/941 4731/4391/942 +f 4702/4359/913 4732/4392/943 4733/4393/944 +f 4708/4366/919 4730/4394/941 4704/4361/915 +f 4710/4368/921 4732/4395/943 4706/4364/917 +f 4708/4366/919 4734/4396/945 4735/4397/946 +f 4714/4372/925 4736/4398/947 4710/4368/921 +f 4716/4374/927 4734/4399/945 4712/4370/923 +f 4720/4378/931 4737/4400/948 4714/4372/925 +f 4715/4373/926 4738/4401/949 4716/4374/927 +f 4722/4380/933 4723/4402/934 4718/4376/929 +f 4727/4385/938 4726/4384/937 4739/4403/950 +f 4726/4388/937 4731/4404/942 4739/4405/950 +f 4731/4391/942 4730/4390/941 4739/4406/950 +f 4730/4394/941 4735/4407/946 4739/4408/950 +f 4735/4397/946 4734/4396/945 4739/4409/950 +f 4734/4399/945 4738/4410/949 4739/4411/950 +f 4738/4401/949 4725/4412/936 4739/4413/950 +f 4725/4383/936 4729/4414/940 4739/4415/950 +f 4729/4387/940 4728/4386/939 4739/4416/950 +f 4728/4389/939 4733/4417/944 4739/4418/950 +f 4733/4393/944 4732/4392/943 4739/4419/950 +f 4732/4395/943 4736/4420/947 4739/4421/950 +f 4736/4398/947 4737/4422/948 4739/4423/950 +f 4737/4400/948 4724/4424/935 4739/4425/950 +f 4724/4382/935 4723/4381/934 4739/4426/950 +f 4723/4402/934 4727/4427/938 4739/4428/950 +f 4693/4350/904 4636/4429/951 4691/4348/902 +f 4694/4351/905 4677/4430/952 4689/4431/953 +f 4697/4354/908 4636/4432/951 4683/4433/954 +f 4699/4356/910 4689/4434/953 4688/4435/955 +f 4701/4358/912 4683/4436/954 4682/4437/956 +f 4703/4360/914 4688/4438/955 4687/4439/957 +f 4701/4358/912 4681/4440/958 4705/4363/916 +f 4703/4360/914 4637/4441/959 4707/4365/918 +f 4705/4363/916 4635/4442/960 4709/4367/920 +f 4707/4365/918 4686/4443/961 4711/4369/922 +f 4713/4371/924 4635/4444/960 4680/4445/962 +f 4711/4369/922 4685/4446/963 4721/4379/932 +f 4719/4377/930 4678/4447/964 4717/4375/928 +f 4713/4371/924 4679/4448/965 4719/4377/930 +f 4693/4350/904 4685/4449/963 4684/4450/966 +f 4696/4353/907 4678/4451/964 4677/4452/952 +f 4691/4348/902 4698/4355/909 4692/4349/903 +f 4694/4351/905 4700/4357/911 4695/4352/906 +f 4697/4354/908 4702/4359/913 4698/4355/909 +f 4699/4356/910 4704/4453/915 4700/4357/911 +f 4701/4358/912 4706/4364/917 4702/4359/913 +f 4703/4360/914 4708/4366/919 4704/4361/915 +f 4705/4363/916 4710/4368/921 4706/4364/917 +f 4707/4365/918 4712/4370/923 4708/4366/919 +f 4709/4367/920 4714/4372/925 4710/4368/921 +f 4711/4369/922 4716/4374/927 4712/4370/923 +f 4713/4371/924 4720/4378/931 4714/4372/925 +f 4711/4369/922 4721/4379/932 4715/4373/926 +f 4717/4375/928 4722/4380/933 4718/4376/929 +f 4719/4377/930 4718/4376/929 4720/4378/931 +f 4693/4350/904 4692/4349/903 4715/4373/926 +f 4696/4353/907 4695/4352/906 4722/4380/933 +f 4720/4378/931 4718/4376/929 4723/4381/934 +f 4692/4349/903 4729/4414/940 4725/4383/936 +f 4722/4380/933 4695/4352/906 4726/4384/937 +f 4692/4349/903 4698/4355/909 4728/4386/939 +f 4700/4357/911 4731/4404/942 4726/4388/937 +f 4702/4359/913 4733/4417/944 4728/4389/939 +f 4700/4357/911 4704/4453/915 4730/4390/941 +f 4702/4359/913 4706/4364/917 4732/4392/943 +f 4708/4366/919 4735/4407/946 4730/4394/941 +f 4710/4368/921 4736/4420/947 4732/4395/943 +f 4708/4366/919 4712/4370/923 4734/4396/945 +f 4714/4372/925 4737/4422/948 4736/4398/947 +f 4716/4374/927 4738/4410/949 4734/4399/945 +f 4720/4378/931 4724/4424/935 4737/4400/948 +f 4715/4373/926 4725/4412/936 4738/4401/949 +f 4722/4380/933 4727/4427/938 4723/4402/934 +f 4693/4350/904 4684/4454/966 4636/4429/951 +f 4694/4351/905 4696/4353/907 4677/4430/952 +f 4697/4354/908 4691/4348/902 4636/4432/951 +f 4699/4356/910 4694/4351/905 4689/4434/953 +f 4701/4358/912 4697/4354/908 4683/4436/954 +f 4703/4360/914 4699/4362/910 4688/4438/955 +f 4701/4358/912 4682/4455/956 4681/4440/958 +f 4703/4360/914 4687/4456/957 4637/4441/959 +f 4705/4363/916 4681/4457/958 4635/4442/960 +f 4707/4365/918 4637/4458/959 4686/4443/961 +f 4713/4371/924 4709/4367/920 4635/4444/960 +f 4711/4369/922 4686/4459/961 4685/4446/963 +f 4719/4377/930 4679/4460/965 4678/4447/964 +f 4713/4371/924 4680/4461/962 4679/4448/965 +f 4693/4350/904 4721/4379/932 4685/4449/963 +f 4696/4353/907 4717/4375/928 4678/4451/964 o Atlas_Missile v -1.154849 5.312499 -0.478354 v -0.795495 5.312499 -0.795495 @@ -16338,483 +17658,483 @@ vn 0.4867 0.2290 -0.8430 vn -0.9549 0.1504 -0.2559 vn -0.4867 0.2290 0.8430 s off -f 4672/3218/969 4673/3219/969 4674/3220/969 -f 4675/3221/969 4676/3222/969 4677/3223/969 -f 4678/3224/969 4679/3225/969 4672/3218/969 -f 4680/3226/970 4681/3227/970 4682/3228/970 -f 4683/3229/969 4684/3230/969 4685/3231/969 -f 4686/3232/969 4676/3222/969 4687/3233/969 -f 4687/3233/969 4688/3234/969 4686/3232/969 -f 4689/3235/969 4688/3234/969 4690/3236/969 -f 4691/3237/969 4692/3238/969 4689/3235/969 -f 4691/3237/969 4693/3239/969 4694/3240/969 -f 4695/3241/969 4693/3239/969 4696/3242/969 -f 4697/3243/969 4698/3244/969 4699/3245/969 -f 4700/3246/969 4699/3245/969 4698/3244/969 -f 4700/3246/969 4701/3247/969 4702/3248/969 -f 4703/3249/969 4701/3247/969 4704/3250/969 -f 4705/3251/969 4673/3219/969 4706/3252/969 -f 4706/3252/969 4707/3253/969 4705/3251/969 -f 4703/3249/969 4708/3254/969 4709/3255/969 -f 4710/3256/971 4711/3257/971 4712/3258/971 -f 4713/3259/971 4714/3260/971 4715/3261/971 -f 4714/3260/971 4716/3262/971 4715/3261/971 -f 4715/3261/971 4717/3263/971 4718/3264/971 -f 4719/3265/971 4717/3263/971 4716/3262/971 -f 4720/3266/971 4716/3262/971 4721/3267/971 -f 4715/3261/971 4716/3262/971 4717/3263/971 -f 4722/3268/971 4723/3269/971 4724/3270/971 -f 4725/3271/971 4726/3272/971 4727/3273/971 -f 4728/3274/971 4729/3275/971 4730/3276/971 -f 4731/3277/971 4732/3278/971 4733/3279/971 -f 4733/3279/971 4727/3273/971 4726/3272/971 -f 4724/3270/971 4730/3276/971 4732/3278/971 -f 4733/3279/971 4730/3276/971 4729/3275/971 -f 4734/3280/971 4735/3281/971 4736/3282/971 -f 4737/3283/971 4738/3284/971 4739/3285/971 -f 4740/3286/971 4741/3287/971 4742/3288/971 -f 4743/3289/971 4744/3290/971 4745/3291/971 -f 4745/3291/971 4739/3285/971 4738/3284/971 -f 4736/3282/971 4742/3288/971 4744/3290/971 -f 4745/3291/971 4742/3288/971 4741/3287/971 -f 4746/3292/971 4712/3258/971 4747/3293/971 -f 4748/3294/971 4749/3295/971 4750/3296/971 -f 4751/3297/971 4721/3267/971 4749/3295/971 -f 4752/3298/971 4747/3293/971 4714/3260/971 -f 4747/3293/971 4721/3267/971 4714/3260/971 -f 4750/3296/971 4747/3293/971 4712/3258/971 -f 4684/3230/972 4753/3299/972 4754/3300/972 -f 4755/3301/973 4756/3302/973 4757/3303/973 -f 4758/3304/971 4759/3305/971 4760/3306/971 -f 4759/3305/971 4761/3307/971 4760/3306/971 -f 4760/3306/971 4762/3308/971 4763/3309/971 -f 4764/3310/971 4762/3308/971 4761/3307/971 -f 4765/3311/971 4761/3307/971 4711/3257/971 -f 4760/3306/971 4761/3307/971 4762/3308/971 -f 4766/3312/971 4767/3313/971 4768/3314/971 -f 4769/3315/971 4770/3316/971 4771/3317/971 -f 4772/3318/971 4773/3319/971 4774/3320/971 -f 4775/3321/971 4776/3322/971 4777/3323/971 -f 4770/3316/971 4773/3319/971 4771/3317/971 -f 4768/3314/971 4774/3320/971 4776/3322/971 -f 4777/3323/971 4774/3320/971 4773/3319/971 -f 4778/3324/971 4750/3296/971 4759/3305/971 -f 4759/3305/971 4712/3258/971 4711/3257/971 -f 4672/3218/969 4679/3225/969 4673/3219/969 -f 4675/3221/969 4678/3224/969 4676/3222/969 -f 4678/3224/969 4675/3221/969 4679/3225/969 -f 4686/3232/969 4677/3223/969 4676/3222/969 -f 4687/3233/969 4690/3236/969 4688/3234/969 -f 4689/3235/969 4692/3238/969 4688/3234/969 -f 4691/3237/969 4694/3240/969 4692/3238/969 -f 4691/3237/969 4696/3242/969 4693/3239/969 -f 4695/3241/969 4697/3243/969 4693/3239/969 -f 4697/3243/969 4695/3241/969 4698/3244/969 -f 4700/3246/969 4702/3248/969 4699/3245/969 -f 4700/3246/969 4704/3250/969 4701/3247/969 -f 4703/3249/969 4709/3255/969 4701/3247/969 -f 4705/3251/969 4674/3220/969 4673/3219/969 -f 4706/3252/969 4708/3325/969 4707/3253/969 -f 4703/3249/969 4707/3326/969 4708/3254/969 -f 4714/3260/971 4721/3267/971 4716/3262/971 -f 4733/3279/971 4729/3275/971 4727/3273/971 -f 4724/3270/971 4723/3269/971 4730/3276/971 -f 4733/3279/971 4732/3278/971 4730/3276/971 -f 4745/3291/971 4741/3287/971 4739/3285/971 -f 4736/3282/971 4735/3281/971 4742/3288/971 -f 4745/3291/971 4744/3290/971 4742/3288/971 -f 4747/3293/971 4749/3295/971 4721/3267/971 -f 4750/3296/971 4749/3295/971 4747/3293/971 -f 4684/3230/972 4683/3229/972 4753/3299/972 -f 4759/3305/971 4711/3257/971 4761/3307/971 -f 4770/3316/971 4777/3323/971 4773/3319/971 -f 4768/3314/971 4767/3313/971 4774/3320/971 -f 4777/3323/971 4776/3322/971 4774/3320/971 -f 4759/3305/971 4750/3296/971 4712/3258/971 +f 4740/4462/967 4741/4463/967 4742/4464/967 +f 4743/4465/967 4744/4466/967 4745/4467/967 +f 4746/4468/967 4747/4469/967 4740/4462/967 +f 4748/4470/968 4749/4471/968 4750/4472/968 +f 4751/4473/967 4752/4474/967 4753/4475/967 +f 4754/4476/967 4744/4466/967 4755/4477/967 +f 4755/4477/967 4756/4478/967 4754/4476/967 +f 4757/4479/967 4756/4478/967 4758/4480/967 +f 4759/4481/967 4760/4482/967 4757/4479/967 +f 4759/4481/967 4761/4483/967 4762/4484/967 +f 4763/4485/967 4761/4483/967 4764/4486/967 +f 4765/4487/967 4766/4488/967 4767/4489/967 +f 4768/4490/967 4767/4489/967 4766/4488/967 +f 4768/4490/967 4769/4491/967 4770/4492/967 +f 4771/4493/967 4769/4491/967 4772/4494/967 +f 4773/4495/967 4741/4463/967 4774/4496/967 +f 4774/4496/967 4775/4497/967 4773/4495/967 +f 4771/4493/967 4776/4498/967 4777/4499/967 +f 4778/4500/969 4779/4501/969 4780/4502/969 +f 4781/4503/969 4782/4504/969 4783/4505/969 +f 4782/4504/969 4784/4506/969 4783/4505/969 +f 4783/4505/969 4785/4507/969 4786/4508/969 +f 4787/4509/969 4785/4507/969 4784/4506/969 +f 4788/4510/969 4784/4506/969 4789/4511/969 +f 4783/4505/969 4784/4506/969 4785/4507/969 +f 4790/4512/969 4791/4513/969 4792/4514/969 +f 4793/4515/969 4794/4516/969 4795/4517/969 +f 4796/4518/969 4797/4519/969 4798/4520/969 +f 4799/4521/969 4800/4522/969 4801/4523/969 +f 4801/4523/969 4795/4517/969 4794/4516/969 +f 4792/4514/969 4798/4520/969 4800/4522/969 +f 4801/4523/969 4798/4520/969 4797/4519/969 +f 4802/4524/969 4803/4525/969 4804/4526/969 +f 4805/4527/969 4806/4528/969 4807/4529/969 +f 4808/4530/969 4809/4531/969 4810/4532/969 +f 4811/4533/969 4812/4534/969 4813/4535/969 +f 4813/4535/969 4807/4529/969 4806/4528/969 +f 4804/4526/969 4810/4532/969 4812/4534/969 +f 4813/4535/969 4810/4532/969 4809/4531/969 +f 4814/4536/969 4780/4502/969 4815/4537/969 +f 4816/4538/969 4817/4539/969 4818/4540/969 +f 4819/4541/969 4789/4511/969 4817/4539/969 +f 4820/4542/969 4815/4537/969 4782/4504/969 +f 4815/4537/969 4789/4511/969 4782/4504/969 +f 4818/4540/969 4815/4537/969 4780/4502/969 +f 4752/4474/970 4821/4543/970 4822/4544/970 +f 4823/4545/971 4824/4546/971 4825/4547/971 +f 4826/4548/969 4827/4549/969 4828/4550/969 +f 4827/4549/969 4829/4551/969 4828/4550/969 +f 4828/4550/969 4830/4552/969 4831/4553/969 +f 4832/4554/969 4830/4552/969 4829/4551/969 +f 4833/4555/969 4829/4551/969 4779/4501/969 +f 4828/4550/969 4829/4551/969 4830/4552/969 +f 4834/4556/969 4835/4557/969 4836/4558/969 +f 4837/4559/969 4838/4560/969 4839/4561/969 +f 4840/4562/969 4841/4563/969 4842/4564/969 +f 4843/4565/969 4844/4566/969 4845/4567/969 +f 4838/4560/969 4841/4563/969 4839/4561/969 +f 4836/4558/969 4842/4564/969 4844/4566/969 +f 4845/4567/969 4842/4564/969 4841/4563/969 +f 4846/4568/969 4818/4540/969 4827/4549/969 +f 4827/4549/969 4780/4502/969 4779/4501/969 +f 4740/4462/967 4747/4469/967 4741/4463/967 +f 4743/4465/967 4746/4468/967 4744/4466/967 +f 4746/4468/967 4743/4465/967 4747/4469/967 +f 4754/4476/967 4745/4467/967 4744/4466/967 +f 4755/4477/967 4758/4480/967 4756/4478/967 +f 4757/4479/967 4760/4482/967 4756/4478/967 +f 4759/4481/967 4762/4484/967 4760/4482/967 +f 4759/4481/967 4764/4486/967 4761/4483/967 +f 4763/4485/967 4765/4487/967 4761/4483/967 +f 4765/4487/967 4763/4485/967 4766/4488/967 +f 4768/4490/967 4770/4492/967 4767/4489/967 +f 4768/4490/967 4772/4494/967 4769/4491/967 +f 4771/4493/967 4777/4499/967 4769/4491/967 +f 4773/4495/967 4742/4464/967 4741/4463/967 +f 4774/4496/967 4776/4569/967 4775/4497/967 +f 4771/4493/967 4775/4570/967 4776/4498/967 +f 4782/4504/969 4789/4511/969 4784/4506/969 +f 4801/4523/969 4797/4519/969 4795/4517/969 +f 4792/4514/969 4791/4513/969 4798/4520/969 +f 4801/4523/969 4800/4522/969 4798/4520/969 +f 4813/4535/969 4809/4531/969 4807/4529/969 +f 4804/4526/969 4803/4525/969 4810/4532/969 +f 4813/4535/969 4812/4534/969 4810/4532/969 +f 4815/4537/969 4817/4539/969 4789/4511/969 +f 4818/4540/969 4817/4539/969 4815/4537/969 +f 4752/4474/970 4751/4473/970 4821/4543/970 +f 4827/4549/969 4779/4501/969 4829/4551/969 +f 4838/4560/969 4845/4567/969 4841/4563/969 +f 4836/4558/969 4835/4557/969 4842/4564/969 +f 4845/4567/969 4844/4566/969 4842/4564/969 +f 4827/4549/969 4818/4540/969 4780/4502/969 s 1 -f 4779/3327/974 4721/3328/975 4751/3329/976 -f 4780/3330/977 4706/3252/978 4781/3331/978 -f 4699/3245/979 4782/3332/980 4697/3243/980 -f 4677/3223/981 4783/3333/982 4675/3221/982 -f 4702/3248/983 4784/3334/979 4699/3245/979 -f 4686/3232/984 4785/3335/981 4677/3223/981 -f 4701/3247/985 4786/3336/983 4702/3248/983 -f 4688/3234/986 4787/3337/984 4686/3232/984 -f 4709/3255/987 4788/3338/985 4701/3247/985 -f 4692/3238/988 4789/3339/986 4688/3234/986 -f 4790/3340/987 4708/3254/977 4780/3341/977 -f 4694/3240/989 4791/3342/988 4692/3238/988 -f 4673/3219/976 4781/3331/978 4706/3252/978 -f 4693/3239/990 4792/3343/989 4694/3240/989 -f 4679/3225/991 4793/3344/976 4673/3219/976 -f 4697/3243/980 4794/3345/990 4693/3239/990 -f 4675/3221/982 4795/3346/991 4679/3225/991 -f 4786/3336/992 4796/3347/993 4784/3334/994 -f 4788/3338/995 4797/3348/996 4786/3336/992 -f 4790/3340/997 4798/3349/998 4788/3338/995 -f 4780/3341/999 4799/3350/1000 4790/3340/997 -f 4781/3331/1001 4800/3351/1002 4780/3330/999 -f 4793/3344/1003 4801/3352/1004 4781/3331/1001 -f 4795/3346/1005 4802/3353/1006 4793/3344/1003 -f 4783/3333/1007 4803/3354/1008 4795/3346/1005 -f 4783/3333/1007 4804/3355/1009 4805/3356/1010 -f 4787/3337/1011 4804/3357/1009 4785/3335/1012 -f 4787/3337/1011 4806/3358/1013 4807/3359/1014 -f 4791/3342/1015 4806/3360/1013 4789/3339/1016 -f 4792/3343/1017 4808/3361/1018 4791/3342/1015 -f 4794/3345/1019 4809/3362/1020 4792/3343/1017 -f 4782/3332/1021 4810/3363/1022 4794/3345/1019 -f 4784/3334/994 4811/3364/1023 4782/3332/1021 -f 4797/3348/996 4798/3365/998 4812/3366/969 -f 4807/3359/1014 4806/3358/1013 4812/3367/969 -f 4798/3349/998 4799/3368/1000 4812/3369/969 -f 4806/3360/1013 4808/3370/1018 4812/3371/969 -f 4800/3351/1002 4801/3372/1004 4812/3373/969 -f 4799/3350/1000 4800/3374/1002 4812/3375/969 -f 4808/3361/1018 4809/3376/1020 4812/3377/969 -f 4801/3352/1004 4802/3378/1006 4812/3379/969 -f 4809/3362/1020 4810/3380/1022 4812/3381/969 -f 4802/3353/1006 4803/3382/1008 4812/3383/969 -f 4810/3363/1022 4811/3384/1023 4812/3385/969 -f 4803/3354/1008 4805/3386/1010 4812/3387/969 -f 4811/3364/1023 4796/3388/993 4812/3389/969 -f 4805/3356/1010 4804/3355/1009 4812/3390/969 -f 4796/3347/993 4797/3391/996 4812/3392/969 -f 4804/3357/1009 4807/3393/1014 4812/3394/969 -f 4718/3395/1024 4813/3396/1025 4814/3397/1026 -f 4717/3398/1027 4815/3399/1028 4813/3400/1025 -f 4719/3401/1029 4816/3402/1030 4815/3403/1028 -f 4716/3404/1031 4817/3405/1032 4816/3406/1030 -f 4779/3407/1033 4720/3408/1034 4721/3409/1035 -f 4715/3410/1036 4814/3411/1026 4818/3412/1037 -f 4713/3413/1038 4818/3414/1037 4819/3415/1039 -f 4820/3416/1040 4713/3413/1038 4819/3417/1039 -f 4820/3416/1040 4821/3418/1041 4822/3419/1042 -f 4818/3414/1037 4821/3420/1041 4819/3415/1039 -f 4814/3411/1026 4823/3421/1043 4818/3412/1037 -f 4815/3399/1028 4685/3422/1044 4813/3400/1025 -f 4685/3423/1044 4814/3397/1026 4813/3396/1025 -f 4816/3402/1030 4683/3424/1045 4815/3403/1028 -f 4817/3405/1032 4824/3425/1046 4816/3406/1030 -f 4825/3426/1047 4779/3407/1033 4826/3427/1048 -f 4827/3428/984 4828/3429/1049 4826/3430/1050 -f 4826/3430/1050 4829/3431/1051 4825/3432/982 -f 4822/3433/1052 4682/3228/990 4830/3434/990 -f 4684/3435/987 4831/3436/1053 4823/3437/1054 -f 4823/3437/1054 4832/3438/1055 4821/3439/979 -f 4821/3439/979 4680/3226/1056 4822/3433/1057 -f 4825/3432/982 4833/3440/1058 4824/3441/1059 -f 4824/3441/1059 4834/3442/1060 4683/3443/978 -f 4680/3226/1056 4832/3438/1055 4681/3444/1061 -f 4832/3438/1055 4831/3436/1053 4681/3445/1061 -f 4831/3436/1053 4835/3446/1062 4681/3447/1061 -f 4834/3442/1060 4833/3440/1058 4681/3448/1061 -f 4833/3440/1058 4829/3431/1051 4681/3449/1061 -f 4829/3431/1051 4828/3429/1049 4681/3450/1061 -f 4828/3429/1049 4836/3451/1063 4681/3452/1061 -f 4820/3453/1064 4752/3454/985 4714/3455/1065 -f 4704/3456/985 4820/3453/1064 4703/3457/987 -f 4703/3457/987 4820/3453/1064 4707/3458/1066 -f 4707/3253/1067 4779/3327/974 4705/3459/978 -f 4674/3460/976 4779/3327/974 4751/3329/976 -f 4749/3461/991 4674/3460/976 4751/3329/976 -f 4748/3462/982 4672/3463/991 4749/3461/991 -f 4750/3464/981 4678/3465/982 4748/3462/982 -f 4778/3466/984 4676/3467/981 4750/3464/981 -f 4691/3468/989 4689/3469/1068 4837/3470/1069 -f 4837/3470/1069 4696/3471/990 4691/3468/989 -f 4837/3470/1069 4711/3472/1070 4710/3473/990 -f 4712/3474/980 4696/3471/990 4710/3473/990 -f 4746/3475/979 4695/3476/980 4712/3474/980 -f 4747/3477/983 4698/3478/979 4746/3475/979 -f 4752/3454/985 4700/3479/983 4747/3477/983 -f 4838/3480/1071 4723/3481/1072 4839/3482/1072 -f 4729/3483/1073 4840/3484/1074 4841/3485/1073 -f 4725/3486/1075 4842/3487/1076 4843/3488/1075 -f 4727/3489/1076 4841/3485/1073 4842/3487/1076 -f 4728/3490/1074 4838/3480/1071 4840/3484/1074 -f 4844/3491/979 4742/3492/1054 4845/3493/1054 -f 4846/3494/988 4739/3495/1077 4847/3496/1077 -f 4848/3497/982 4745/3498/1050 4849/3499/1050 -f 4845/3493/1054 4735/3500/1078 4850/3501/1078 -f 4851/3502/977 4736/3503/1079 4852/3504/1079 -f 4847/3496/1077 4741/3505/1052 4853/3506/1052 -f 4849/3499/1050 4738/3507/1080 4854/3508/1080 -f 4850/3501/1078 4734/3509/977 4851/3510/977 -f 4852/3504/1079 4744/3511/1059 4855/3512/1059 -f 4853/3506/1052 4740/3513/979 4844/3491/979 -f 4854/3508/1080 4737/3514/988 4846/3494/988 -f 4855/3512/1059 4743/3515/982 4848/3497/982 -f 4844/3491/1081 4856/3516/1082 4857/3517/1081 -f 4845/3493/1082 4858/3518/1083 4856/3516/1082 -f 4850/3501/1083 4859/3519/1084 4858/3518/1083 -f 4851/3502/1084 4860/3520/1085 4859/3521/1084 -f 4852/3504/1085 4861/3522/1086 4860/3520/1085 -f 4855/3512/1086 4862/3523/1087 4861/3522/1086 -f 4848/3497/1087 4863/3524/1088 4862/3523/1087 -f 4849/3499/1088 4864/3525/1089 4863/3524/1088 -f 4854/3508/1089 4865/3526/1090 4864/3525/1089 -f 4865/3526/1090 4847/3496/1091 4866/3527/1091 -f 4847/3496/1091 4867/3528/1092 4866/3527/1091 -f 4853/3506/1092 4857/3517/1081 4867/3528/1092 -f 4723/3481/1072 4868/3529/1093 4839/3482/1072 -f 4722/3530/1093 4869/3531/1094 4868/3532/1093 -f 4724/3533/1094 4870/3534/1095 4869/3531/1094 -f 4732/3535/1095 4871/3536/1096 4870/3534/1095 -f 4731/3537/1096 4872/3538/1097 4871/3536/1096 -f 4733/3539/1097 4873/3540/1098 4872/3538/1097 -f 4726/3541/1098 4843/3488/1075 4873/3540/1098 -f 4754/3300/1099 4874/3542/1100 4684/3543/1101 -f 4753/3299/1102 4683/3544/1103 4875/3545/1104 -f 4874/3546/1100 4753/3299/1102 4875/3547/1104 -f 4681/3548/1061 4835/3446/1062 4834/3442/1060 -f 4835/3446/1062 4683/3443/978 4834/3442/1060 -f 4763/3549/1105 4876/3550/1106 4877/3551/1107 -f 4762/3552/1108 4878/3553/1109 4876/3554/1106 -f 4764/3555/1110 4879/3556/1111 4878/3557/1109 -f 4761/3558/1112 4880/3559/1113 4879/3560/1111 -f 4837/3561/1114 4765/3562/1115 4711/3563/1116 -f 4760/3564/1117 4877/3565/1107 4881/3566/1118 -f 4758/3567/1119 4881/3568/1118 4882/3569/1120 -f 4883/3570/1121 4758/3567/1119 4882/3571/1120 -f 4883/3570/1121 4884/3572/1122 4885/3573/1123 -f 4881/3568/1118 4884/3574/1122 4882/3569/1120 -f 4877/3565/1107 4886/3575/1124 4881/3566/1118 -f 4878/3553/1109 4887/3576/1125 4876/3554/1106 -f 4887/3577/1125 4877/3551/1107 4876/3550/1106 -f 4879/3556/1111 4888/3578/1126 4878/3557/1109 -f 4880/3559/1113 4889/3579/1127 4879/3560/1111 -f 4890/3580/1128 4837/3561/1114 4891/3581/1129 -f 4892/3582/1130 4893/3583/1131 4894/3584/1132 -f 4893/3583/1131 4895/3585/1133 4896/3586/1134 -f 4897/3587/1135 4898/3588/1136 4899/3589/1137 -f 4900/3590/1138 4892/3591/1139 4894/3592/1139 -f 4897/3587/1135 4901/3593/1140 4902/3594/1141 -f 4903/3595/1142 4902/3594/1141 4901/3593/1140 -f 4899/3589/1137 4895/3596/1133 4904/3597/1143 -f 4901/3593/1140 4897/3587/1135 4899/3589/1137 -f 4755/3301/1144 4905/3598/1145 4756/3599/1146 -f 4905/3598/1145 4906/3600/1147 4756/3601/1146 -f 4906/3600/1147 4907/3602/1148 4756/3603/1146 -f 4908/3604/1149 4909/3605/1150 4756/3606/1146 -f 4909/3605/1150 4910/3607/1151 4756/3608/1146 -f 4910/3607/1151 4911/3609/1152 4756/3610/1146 -f 4911/3609/1152 4912/3611/1153 4756/3612/1146 -f 4913/3613/1097 4767/3614/1098 4914/3615/1098 -f 4915/3616/1095 4772/3617/1096 4916/3618/1096 -f 4769/3619/1093 4917/3620/1094 4918/3621/1093 -f 4771/3622/1094 4915/3616/1095 4917/3620/1094 -f 4772/3617/1096 4913/3613/1097 4916/3618/1096 -f 4767/3614/1098 4919/3623/1075 4914/3615/1098 -f 4766/3624/1075 4920/3625/1076 4919/3623/1075 -f 4768/3626/1076 4921/3627/1073 4920/3625/1076 -f 4921/3627/1073 4775/3628/1074 4922/3629/1074 -f 4775/3628/1074 4923/3630/1071 4922/3629/1074 -f 4777/3631/1071 4924/3632/1072 4923/3630/1071 -f 4770/3633/1072 4918/3634/1093 4924/3632/1072 -f 4756/3635/1146 4907/3602/1148 4908/3604/1149 -f 4925/3636/1154 4896/3637/1134 4926/3638/1155 -f 4883/3639/1156 4689/3469/1157 4690/3640/986 -f 4687/3641/984 4883/3639/1156 4690/3640/986 -f 4883/3639/1156 4778/3466/984 4759/3642/1158 -f 4925/3636/1154 4927/3643/982 4900/3644/1159 -f 4894/3584/1132 4925/3636/1154 4900/3644/1159 -f 4928/3645/979 4899/3589/1137 4929/3646/1160 -f 4899/3589/1137 4892/3582/1130 4929/3646/1160 -f 4930/3647/1161 4925/3636/1154 4926/3648/1155 -f 4930/3647/1161 4931/3649/1162 4925/3636/1154 -f 4930/3647/1161 4932/3650/1163 4931/3649/1162 -f 4933/3651/1164 4931/3649/1162 4932/3650/1163 -f 4902/3652/1054 4912/3611/1153 4911/3609/1152 -f 4897/3653/979 4911/3609/1152 4910/3607/1151 -f 4898/3654/1052 4910/3607/1151 4909/3605/1150 -f 4907/3602/1148 4895/3655/989 4908/3604/1149 -f 4930/3656/982 4906/3600/1147 4905/3598/1145 -f 4932/3657/1059 4905/3598/1145 4755/3301/1144 -f 4933/3658/976 4755/3301/1144 4757/3303/976 -f 4928/3659/971 4900/3590/1138 4927/3660/971 -f 4895/3655/989 4909/3605/1150 4908/3604/1149 -f 4926/3661/1050 4907/3602/1148 4906/3600/1147 -f 4934/3662/979 4935/3663/983 4936/3664/983 -f 4937/3665/1165 4938/3666/980 4939/3667/980 -f 4940/3668/982 4941/3669/981 4942/3670/981 -f 4943/3671/1166 4944/3672/991 4945/3673/991 -f 4936/3664/983 4946/3674/1167 4947/3675/1167 -f 4939/3667/980 4948/3676/979 4934/3662/979 -f 4942/3670/981 4949/3677/1168 4950/3678/1168 -f 4945/3673/991 4951/3679/982 4940/3668/982 -f 4952/3680/1169 4953/3681/1170 4954/3682/1170 -f 4955/3683/1171 4952/3680/1169 4956/3684/1171 -f 4957/3685/1172 4955/3683/1171 4956/3684/1171 -f 4958/3686/1173 4959/3687/1174 4960/3688/1174 -f 4961/3689/1175 4958/3686/1173 4962/3690/1175 -f 4963/3691/1176 4961/3689/1175 4962/3690/1175 -f 4780/3330/977 4708/3325/977 4706/3252/978 -f 4699/3245/979 4784/3334/979 4782/3332/980 -f 4677/3223/981 4785/3335/981 4783/3333/982 -f 4702/3248/983 4786/3336/983 4784/3334/979 -f 4686/3232/984 4787/3337/984 4785/3335/981 -f 4701/3247/985 4788/3338/985 4786/3336/983 -f 4688/3234/986 4789/3339/986 4787/3337/984 -f 4709/3255/987 4790/3340/987 4788/3338/985 -f 4692/3238/988 4791/3342/988 4789/3339/986 -f 4790/3340/987 4709/3255/987 4708/3254/977 -f 4694/3240/989 4792/3343/989 4791/3342/988 -f 4673/3219/976 4793/3344/976 4781/3331/978 -f 4693/3239/990 4794/3345/990 4792/3343/989 -f 4679/3225/991 4795/3346/991 4793/3344/976 -f 4697/3243/980 4782/3332/980 4794/3345/990 -f 4675/3221/982 4783/3333/982 4795/3346/991 -f 4786/3336/992 4797/3391/996 4796/3347/993 -f 4788/3338/995 4798/3365/998 4797/3348/996 -f 4790/3340/997 4799/3368/1000 4798/3349/998 -f 4780/3341/999 4800/3374/1002 4799/3350/1000 -f 4781/3331/1001 4801/3372/1004 4800/3351/1002 -f 4793/3344/1003 4802/3378/1006 4801/3352/1004 -f 4795/3346/1005 4803/3382/1008 4802/3353/1006 -f 4783/3333/1007 4805/3386/1010 4803/3354/1008 -f 4783/3333/1007 4785/3335/1012 4804/3355/1009 -f 4787/3337/1011 4807/3393/1014 4804/3357/1009 -f 4787/3337/1011 4789/3339/1016 4806/3358/1013 -f 4791/3342/1015 4808/3370/1018 4806/3360/1013 -f 4792/3343/1017 4809/3376/1020 4808/3361/1018 -f 4794/3345/1019 4810/3380/1022 4809/3362/1020 -f 4782/3332/1021 4811/3384/1023 4810/3363/1022 -f 4784/3334/994 4796/3388/993 4811/3364/1023 -f 4718/3395/1024 4717/3398/1027 4813/3396/1025 -f 4717/3398/1027 4719/3401/1029 4815/3399/1028 -f 4719/3401/1029 4716/3404/1031 4816/3402/1030 -f 4716/3404/1031 4720/3408/1034 4817/3405/1032 -f 4779/3407/1033 4817/3692/1032 4720/3408/1034 -f 4715/3410/1036 4718/3395/1024 4814/3411/1026 -f 4713/3413/1038 4715/3410/1036 4818/3414/1037 -f 4820/3416/1040 4714/3693/1177 4713/3413/1038 -f 4820/3416/1040 4819/3417/1039 4821/3418/1041 -f 4818/3414/1037 4823/3694/1043 4821/3420/1041 -f 4814/3411/1026 4684/3695/1178 4823/3421/1043 -f 4815/3399/1028 4683/3696/1045 4685/3422/1044 -f 4685/3423/1044 4684/3697/1178 4814/3397/1026 -f 4816/3402/1030 4824/3698/1046 4683/3424/1045 -f 4817/3405/1032 4825/3699/1047 4824/3425/1046 -f 4825/3426/1047 4817/3692/1032 4779/3407/1033 -f 4827/3428/984 4836/3451/1063 4828/3429/1049 -f 4826/3430/1050 4828/3429/1049 4829/3431/1051 -f 4822/3433/1057 4680/3226/1056 4682/3228/990 -f 4684/3435/987 4835/3446/1062 4831/3436/1053 -f 4823/3437/1054 4831/3436/1053 4832/3438/1055 -f 4821/3439/979 4832/3438/1055 4680/3226/1056 -f 4825/3432/982 4829/3431/1051 4833/3440/1058 -f 4824/3441/1059 4833/3440/1058 4834/3442/1060 -f 4704/3456/985 4752/3454/985 4820/3453/1064 -f 4674/3460/976 4705/3459/978 4779/3327/974 -f 4749/3461/991 4672/3463/991 4674/3460/976 -f 4748/3462/982 4678/3465/982 4672/3463/991 -f 4750/3464/981 4676/3467/981 4678/3465/982 -f 4778/3466/984 4687/3641/984 4676/3467/981 -f 4837/3470/1069 4710/3473/990 4696/3471/990 -f 4712/3474/980 4695/3476/980 4696/3471/990 -f 4746/3475/979 4698/3478/979 4695/3476/980 -f 4747/3477/983 4700/3479/983 4698/3478/979 -f 4752/3454/985 4704/3456/985 4700/3479/983 -f 4838/3480/1071 4730/3700/1071 4723/3481/1072 -f 4729/3483/1073 4728/3490/1074 4840/3484/1074 -f 4725/3486/1075 4727/3489/1076 4842/3487/1076 -f 4727/3489/1076 4729/3483/1073 4841/3485/1073 -f 4728/3490/1074 4730/3700/1071 4838/3480/1071 -f 4844/3491/979 4740/3513/979 4742/3492/1054 -f 4846/3494/988 4737/3514/988 4739/3495/1077 -f 4848/3497/982 4743/3515/982 4745/3498/1050 -f 4845/3493/1054 4742/3492/1054 4735/3500/1078 -f 4851/3502/977 4734/3701/977 4736/3503/1079 -f 4847/3496/1077 4739/3495/1077 4741/3505/1052 -f 4849/3499/1050 4745/3498/1050 4738/3507/1080 -f 4850/3501/1078 4735/3500/1078 4734/3509/977 -f 4852/3504/1079 4736/3503/1079 4744/3511/1059 -f 4853/3506/1052 4741/3505/1052 4740/3513/979 -f 4854/3508/1080 4738/3507/1080 4737/3514/988 -f 4855/3512/1059 4744/3511/1059 4743/3515/982 -f 4844/3491/1081 4845/3493/1082 4856/3516/1082 -f 4845/3493/1082 4850/3501/1083 4858/3518/1083 -f 4850/3501/1083 4851/3510/1084 4859/3519/1084 -f 4851/3502/1084 4852/3504/1085 4860/3520/1085 -f 4852/3504/1085 4855/3512/1086 4861/3522/1086 -f 4855/3512/1086 4848/3497/1087 4862/3523/1087 -f 4848/3497/1087 4849/3499/1088 4863/3524/1088 -f 4849/3499/1088 4854/3508/1089 4864/3525/1089 -f 4854/3508/1089 4846/3494/1090 4865/3526/1090 -f 4865/3526/1090 4846/3494/1090 4847/3496/1091 -f 4847/3496/1091 4853/3506/1092 4867/3528/1092 -f 4853/3506/1092 4844/3491/1081 4857/3517/1081 -f 4723/3481/1072 4722/3702/1093 4868/3529/1093 -f 4722/3530/1093 4724/3533/1094 4869/3531/1094 -f 4724/3533/1094 4732/3535/1095 4870/3534/1095 -f 4732/3535/1095 4731/3537/1096 4871/3536/1096 -f 4731/3537/1096 4733/3539/1097 4872/3538/1097 -f 4733/3539/1097 4726/3541/1098 4873/3540/1098 -f 4726/3541/1098 4725/3486/1075 4843/3488/1075 -f 4874/3546/1100 4754/3300/1099 4753/3299/1102 -f 4835/3446/1062 4684/3435/987 4683/3443/978 -f 4763/3549/1105 4762/3552/1108 4876/3550/1106 -f 4762/3552/1108 4764/3555/1110 4878/3553/1109 -f 4764/3555/1110 4761/3558/1112 4879/3556/1111 -f 4761/3558/1112 4765/3562/1115 4880/3559/1113 -f 4837/3561/1114 4880/3703/1113 4765/3562/1115 -f 4760/3564/1117 4763/3549/1105 4877/3565/1107 -f 4758/3567/1119 4760/3564/1117 4881/3568/1118 -f 4883/3570/1121 4759/3704/1179 4758/3567/1119 -f 4883/3570/1121 4882/3571/1120 4884/3572/1122 -f 4881/3568/1118 4886/3705/1124 4884/3574/1122 -f 4877/3565/1107 4964/3706/1180 4886/3575/1124 -f 4878/3553/1109 4888/3707/1126 4887/3576/1125 -f 4887/3577/1125 4964/3708/1180 4877/3551/1107 -f 4879/3556/1111 4889/3709/1127 4888/3578/1126 -f 4880/3559/1113 4890/3710/1128 4889/3579/1127 -f 4890/3580/1128 4880/3703/1113 4837/3561/1114 -f 4892/3582/1130 4904/3597/1143 4893/3583/1131 -f 4893/3583/1131 4904/3597/1143 4895/3585/1133 -f 4900/3590/1138 4929/3711/1138 4892/3591/1139 -f 4899/3589/1137 4898/3712/1136 4895/3596/1133 -f 4913/3613/1097 4774/3713/1097 4767/3614/1098 -f 4915/3616/1095 4773/3714/1095 4772/3617/1096 -f 4769/3619/1093 4771/3622/1094 4917/3620/1094 -f 4771/3622/1094 4773/3714/1095 4915/3616/1095 -f 4772/3617/1096 4774/3713/1097 4913/3613/1097 -f 4767/3614/1098 4766/3624/1075 4919/3623/1075 -f 4766/3624/1075 4768/3626/1076 4920/3625/1076 -f 4768/3626/1076 4776/3715/1073 4921/3627/1073 -f 4921/3627/1073 4776/3715/1073 4775/3628/1074 -f 4775/3628/1074 4777/3631/1071 4923/3630/1071 -f 4777/3631/1071 4770/3633/1072 4924/3632/1072 -f 4770/3633/1072 4769/3716/1093 4918/3634/1093 -f 4925/3636/1154 4893/3583/1131 4896/3637/1134 -f 4687/3641/984 4778/3466/984 4883/3639/1156 -f 4925/3636/1154 4931/3649/1162 4927/3643/982 -f 4894/3584/1132 4893/3583/1131 4925/3636/1154 -f 4928/3645/979 4901/3593/1140 4899/3589/1137 -f 4899/3589/1137 4904/3597/1143 4892/3582/1130 -f 4902/3652/1054 4903/3717/985 4912/3611/1153 -f 4897/3653/979 4902/3652/1054 4911/3609/1152 -f 4898/3654/1052 4897/3653/979 4910/3607/1151 -f 4907/3602/1148 4896/3718/986 4895/3655/989 -f 4930/3656/982 4926/3661/1050 4906/3600/1147 -f 4932/3657/1059 4930/3656/982 4905/3598/1145 -f 4933/3658/976 4932/3657/1059 4755/3301/1144 -f 4928/3659/971 4929/3711/1138 4900/3590/1138 -f 4895/3655/989 4898/3654/1052 4909/3605/1150 -f 4926/3661/1050 4896/3718/986 4907/3602/1148 -f 4934/3662/979 4948/3676/979 4935/3663/983 -f 4937/3665/1165 4965/3719/1165 4938/3666/980 -f 4940/3668/982 4951/3679/982 4941/3669/981 -f 4943/3671/1166 4966/3720/1166 4944/3672/991 -f 4936/3664/983 4935/3663/983 4946/3674/1167 -f 4939/3667/980 4938/3666/980 4948/3676/979 -f 4942/3670/981 4941/3669/981 4949/3677/1168 -f 4945/3673/991 4944/3672/991 4951/3679/982 -f 4952/3680/1169 4967/3721/1169 4953/3681/1170 -f 4955/3683/1171 4967/3721/1169 4952/3680/1169 -f 4957/3685/1172 4968/3722/1172 4955/3683/1171 -f 4958/3686/1173 4969/3723/1173 4959/3687/1174 -f 4961/3689/1175 4969/3723/1173 4958/3686/1173 -f 4963/3691/1176 4970/3724/1176 4961/3689/1175 -l 4972 4891 -l 4885 4971 +f 4847/4571/972 4789/4572/973 4819/4573/974 +f 4848/4574/975 4774/4496/976 4849/4575/976 +f 4767/4489/977 4850/4576/978 4765/4487/978 +f 4745/4467/979 4851/4577/980 4743/4465/980 +f 4770/4492/981 4852/4578/977 4767/4489/977 +f 4754/4476/982 4853/4579/979 4745/4467/979 +f 4769/4491/983 4854/4580/981 4770/4492/981 +f 4756/4478/984 4855/4581/982 4754/4476/982 +f 4777/4499/985 4856/4582/983 4769/4491/983 +f 4760/4482/986 4857/4583/984 4756/4478/984 +f 4858/4584/985 4776/4498/975 4848/4585/975 +f 4762/4484/987 4859/4586/986 4760/4482/986 +f 4741/4463/974 4849/4575/976 4774/4496/976 +f 4761/4483/988 4860/4587/987 4762/4484/987 +f 4747/4469/989 4861/4588/974 4741/4463/974 +f 4765/4487/978 4862/4589/988 4761/4483/988 +f 4743/4465/980 4863/4590/989 4747/4469/989 +f 4854/4580/990 4864/4591/991 4852/4578/992 +f 4856/4582/993 4865/4592/994 4854/4580/990 +f 4858/4584/995 4866/4593/996 4856/4582/993 +f 4848/4585/997 4867/4594/998 4858/4584/995 +f 4849/4575/999 4868/4595/1000 4848/4574/997 +f 4861/4588/1001 4869/4596/1002 4849/4575/999 +f 4863/4590/1003 4870/4597/1004 4861/4588/1001 +f 4851/4577/1005 4871/4598/1006 4863/4590/1003 +f 4851/4577/1005 4872/4599/1007 4873/4600/1008 +f 4855/4581/1009 4872/4601/1007 4853/4579/1010 +f 4855/4581/1009 4874/4602/1011 4875/4603/1012 +f 4859/4586/1013 4874/4604/1011 4857/4583/1014 +f 4860/4587/1015 4876/4605/1016 4859/4586/1013 +f 4862/4589/1017 4877/4606/1018 4860/4587/1015 +f 4850/4576/1019 4878/4607/1020 4862/4589/1017 +f 4852/4578/992 4879/4608/1021 4850/4576/1019 +f 4865/4592/994 4866/4609/996 4880/4610/967 +f 4875/4603/1012 4874/4602/1011 4880/4611/967 +f 4866/4593/996 4867/4612/998 4880/4613/967 +f 4874/4604/1011 4876/4614/1016 4880/4615/967 +f 4868/4595/1000 4869/4616/1002 4880/4617/967 +f 4867/4594/998 4868/4618/1000 4880/4619/967 +f 4876/4605/1016 4877/4620/1018 4880/4621/967 +f 4869/4596/1002 4870/4622/1004 4880/4623/967 +f 4877/4606/1018 4878/4624/1020 4880/4625/967 +f 4870/4597/1004 4871/4626/1006 4880/4627/967 +f 4878/4607/1020 4879/4628/1021 4880/4629/967 +f 4871/4598/1006 4873/4630/1008 4880/4631/967 +f 4879/4608/1021 4864/4632/991 4880/4633/967 +f 4873/4600/1008 4872/4599/1007 4880/4634/967 +f 4864/4591/991 4865/4635/994 4880/4636/967 +f 4872/4601/1007 4875/4637/1012 4880/4638/967 +f 4786/4639/1022 4881/4640/1023 4882/4641/1024 +f 4785/4642/1025 4883/4643/1026 4881/4644/1023 +f 4787/4645/1027 4884/4646/1028 4883/4647/1026 +f 4784/4648/1029 4885/4649/1030 4884/4650/1028 +f 4847/4651/1031 4788/4652/1032 4789/4653/1033 +f 4783/4654/1034 4882/4655/1024 4886/4656/1035 +f 4781/4657/1036 4886/4658/1035 4887/4659/1037 +f 4888/4660/1038 4781/4657/1036 4887/4661/1037 +f 4888/4660/1038 4889/4662/1039 4890/4663/1040 +f 4886/4658/1035 4889/4664/1039 4887/4659/1037 +f 4882/4655/1024 4891/4665/1041 4886/4656/1035 +f 4883/4643/1026 4753/4666/1042 4881/4644/1023 +f 4753/4667/1042 4882/4641/1024 4881/4640/1023 +f 4884/4646/1028 4751/4668/1043 4883/4647/1026 +f 4885/4649/1030 4892/4669/1044 4884/4650/1028 +f 4893/4670/1045 4847/4651/1031 4894/4671/1046 +f 4895/4672/982 4896/4673/1047 4894/4674/1048 +f 4894/4674/1048 4897/4675/1049 4893/4676/980 +f 4890/4677/1050 4750/4472/988 4898/4678/988 +f 4752/4679/985 4899/4680/1051 4891/4681/1052 +f 4891/4681/1052 4900/4682/1053 4889/4683/977 +f 4889/4683/977 4748/4470/1054 4890/4677/1055 +f 4893/4676/980 4901/4684/1056 4892/4685/1057 +f 4892/4685/1057 4902/4686/1058 4751/4687/976 +f 4748/4470/1054 4900/4682/1053 4749/4688/1059 +f 4900/4682/1053 4899/4680/1051 4749/4689/1059 +f 4899/4680/1051 4903/4690/1060 4749/4691/1059 +f 4902/4686/1058 4901/4684/1056 4749/4692/1059 +f 4901/4684/1056 4897/4675/1049 4749/4693/1059 +f 4897/4675/1049 4896/4673/1047 4749/4694/1059 +f 4896/4673/1047 4904/4695/1061 4749/4696/1059 +f 4888/4697/1062 4820/4698/983 4782/4699/1063 +f 4772/4700/983 4888/4697/1062 4771/4701/985 +f 4771/4701/985 4888/4697/1062 4775/4702/1064 +f 4775/4497/1065 4847/4571/972 4773/4703/976 +f 4742/4704/974 4847/4571/972 4819/4573/974 +f 4817/4705/989 4742/4704/974 4819/4573/974 +f 4816/4706/980 4740/4707/989 4817/4705/989 +f 4818/4708/979 4746/4709/980 4816/4706/980 +f 4846/4710/982 4744/4711/979 4818/4708/979 +f 4759/4712/987 4757/4713/1066 4905/4714/1067 +f 4905/4714/1067 4764/4715/988 4759/4712/987 +f 4905/4714/1067 4779/4716/1068 4778/4717/988 +f 4780/4718/978 4764/4715/988 4778/4717/988 +f 4814/4719/977 4763/4720/978 4780/4718/978 +f 4815/4721/981 4766/4722/977 4814/4719/977 +f 4820/4698/983 4768/4723/981 4815/4721/981 +f 4906/4724/1069 4791/4725/1070 4907/4726/1070 +f 4797/4727/1071 4908/4728/1072 4909/4729/1071 +f 4793/4730/1073 4910/4731/1074 4911/4732/1073 +f 4795/4733/1074 4909/4729/1071 4910/4731/1074 +f 4796/4734/1072 4906/4724/1069 4908/4728/1072 +f 4912/4735/977 4810/4736/1052 4913/4737/1052 +f 4914/4738/986 4807/4739/1075 4915/4740/1075 +f 4916/4741/980 4813/4742/1048 4917/4743/1048 +f 4913/4737/1052 4803/4744/1076 4918/4745/1076 +f 4919/4746/975 4804/4747/1077 4920/4748/1077 +f 4915/4740/1075 4809/4749/1050 4921/4750/1050 +f 4917/4743/1048 4806/4751/1078 4922/4752/1078 +f 4918/4745/1076 4802/4753/975 4919/4754/975 +f 4920/4748/1077 4812/4755/1057 4923/4756/1057 +f 4921/4750/1050 4808/4757/977 4912/4735/977 +f 4922/4752/1078 4805/4758/986 4914/4738/986 +f 4923/4756/1057 4811/4759/980 4916/4741/980 +f 4912/4735/1079 4924/4760/1080 4925/4761/1079 +f 4913/4737/1080 4926/4762/1081 4924/4760/1080 +f 4918/4745/1081 4927/4763/1082 4926/4762/1081 +f 4919/4746/1082 4928/4764/1083 4927/4765/1082 +f 4920/4748/1083 4929/4766/1084 4928/4764/1083 +f 4923/4756/1084 4930/4767/1085 4929/4766/1084 +f 4916/4741/1085 4931/4768/1086 4930/4767/1085 +f 4917/4743/1086 4932/4769/1087 4931/4768/1086 +f 4922/4752/1087 4933/4770/1088 4932/4769/1087 +f 4933/4770/1088 4915/4740/1089 4934/4771/1089 +f 4915/4740/1089 4935/4772/1090 4934/4771/1089 +f 4921/4750/1090 4925/4761/1079 4935/4772/1090 +f 4791/4725/1070 4936/4773/1091 4907/4726/1070 +f 4790/4774/1091 4937/4775/1092 4936/4776/1091 +f 4792/4777/1092 4938/4778/1093 4937/4775/1092 +f 4800/4779/1093 4939/4780/1094 4938/4778/1093 +f 4799/4781/1094 4940/4782/1095 4939/4780/1094 +f 4801/4783/1095 4941/4784/1096 4940/4782/1095 +f 4794/4785/1096 4911/4732/1073 4941/4784/1096 +f 4822/4544/1097 4942/4786/1098 4752/4787/1099 +f 4821/4543/1100 4751/4788/1101 4943/4789/1102 +f 4942/4790/1098 4821/4543/1100 4943/4791/1102 +f 4749/4792/1059 4903/4690/1060 4902/4686/1058 +f 4903/4690/1060 4751/4687/976 4902/4686/1058 +f 4831/4793/1103 4944/4794/1104 4945/4795/1105 +f 4830/4796/1106 4946/4797/1107 4944/4798/1104 +f 4832/4799/1108 4947/4800/1109 4946/4801/1107 +f 4829/4802/1110 4948/4803/1111 4947/4804/1109 +f 4905/4805/1112 4833/4806/1113 4779/4807/1114 +f 4828/4808/1115 4945/4809/1105 4949/4810/1116 +f 4826/4811/1117 4949/4812/1116 4950/4813/1118 +f 4951/4814/1119 4826/4811/1117 4950/4815/1118 +f 4951/4814/1119 4952/4816/1120 4953/4817/1121 +f 4949/4812/1116 4952/4818/1120 4950/4813/1118 +f 4945/4809/1105 4954/4819/1122 4949/4810/1116 +f 4946/4797/1107 4955/4820/1123 4944/4798/1104 +f 4955/4821/1123 4945/4795/1105 4944/4794/1104 +f 4947/4800/1109 4956/4822/1124 4946/4801/1107 +f 4948/4803/1111 4957/4823/1125 4947/4804/1109 +f 4958/4824/1126 4905/4805/1112 4959/4825/1127 +f 4960/4826/1128 4961/4827/1129 4962/4828/1130 +f 4961/4827/1129 4963/4829/1131 4964/4830/1132 +f 4965/4831/1133 4966/4832/1134 4967/4833/1135 +f 4968/4834/1136 4960/4835/1137 4962/4836/1137 +f 4965/4831/1133 4969/4837/1138 4970/4838/1139 +f 4971/4839/1140 4970/4838/1139 4969/4837/1138 +f 4967/4833/1135 4963/4840/1131 4972/4841/1141 +f 4969/4837/1138 4965/4831/1133 4967/4833/1135 +f 4823/4545/1142 4973/4842/1143 4824/4843/1144 +f 4973/4842/1143 4974/4844/1145 4824/4845/1144 +f 4974/4844/1145 4975/4846/1146 4824/4847/1144 +f 4976/4848/1147 4977/4849/1148 4824/4850/1144 +f 4977/4849/1148 4978/4851/1149 4824/4852/1144 +f 4978/4851/1149 4979/4853/1150 4824/4854/1144 +f 4979/4853/1150 4980/4855/1151 4824/4856/1144 +f 4981/4857/1095 4835/4858/1096 4982/4859/1096 +f 4983/4860/1093 4840/4861/1094 4984/4862/1094 +f 4837/4863/1091 4985/4864/1092 4986/4865/1091 +f 4839/4866/1092 4983/4860/1093 4985/4864/1092 +f 4840/4861/1094 4981/4857/1095 4984/4862/1094 +f 4835/4858/1096 4987/4867/1073 4982/4859/1096 +f 4834/4868/1073 4988/4869/1074 4987/4867/1073 +f 4836/4870/1074 4989/4871/1071 4988/4869/1074 +f 4989/4871/1071 4843/4872/1072 4990/4873/1072 +f 4843/4872/1072 4991/4874/1069 4990/4873/1072 +f 4845/4875/1069 4992/4876/1070 4991/4874/1069 +f 4838/4877/1070 4986/4878/1091 4992/4876/1070 +f 4824/4879/1144 4975/4846/1146 4976/4848/1147 +f 4993/4880/1152 4964/4881/1132 4994/4882/1153 +f 4951/4883/1154 4757/4713/1155 4758/4884/984 +f 4755/4885/982 4951/4883/1154 4758/4884/984 +f 4951/4883/1154 4846/4710/982 4827/4886/1156 +f 4993/4880/1152 4995/4887/980 4968/4888/1157 +f 4962/4828/1130 4993/4880/1152 4968/4888/1157 +f 4996/4889/977 4967/4833/1135 4997/4890/1158 +f 4967/4833/1135 4960/4826/1128 4997/4890/1158 +f 4998/4891/1159 4993/4880/1152 4994/4892/1153 +f 4998/4891/1159 4999/4893/1160 4993/4880/1152 +f 4998/4891/1159 5000/4894/1161 4999/4893/1160 +f 5001/4895/1162 4999/4893/1160 5000/4894/1161 +f 4970/4896/1052 4980/4855/1151 4979/4853/1150 +f 4965/4897/977 4979/4853/1150 4978/4851/1149 +f 4966/4898/1050 4978/4851/1149 4977/4849/1148 +f 4975/4846/1146 4963/4899/987 4976/4848/1147 +f 4998/4900/980 4974/4844/1145 4973/4842/1143 +f 5000/4901/1057 4973/4842/1143 4823/4545/1142 +f 5001/4902/974 4823/4545/1142 4825/4547/974 +f 4996/4903/969 4968/4834/1136 4995/4904/969 +f 4963/4899/987 4977/4849/1148 4976/4848/1147 +f 4994/4905/1048 4975/4846/1146 4974/4844/1145 +f 5002/4906/977 5003/4907/981 5004/4908/981 +f 5005/4909/1163 5006/4910/978 5007/4911/978 +f 5008/4912/980 5009/4913/979 5010/4914/979 +f 5011/4915/1164 5012/4916/989 5013/4917/989 +f 5004/4908/981 5014/4918/1165 5015/4919/1165 +f 5007/4911/978 5016/4920/977 5002/4906/977 +f 5010/4914/979 5017/4921/1166 5018/4922/1166 +f 5013/4917/989 5019/4923/980 5008/4912/980 +f 5020/4924/1167 5021/4925/1168 5022/4926/1168 +f 5023/4927/1169 5020/4924/1167 5024/4928/1169 +f 5025/4929/1170 5023/4927/1169 5024/4928/1169 +f 5026/4930/1171 5027/4931/1172 5028/4932/1172 +f 5029/4933/1173 5026/4930/1171 5030/4934/1173 +f 5031/4935/1174 5029/4933/1173 5030/4934/1173 +f 4848/4574/975 4776/4569/975 4774/4496/976 +f 4767/4489/977 4852/4578/977 4850/4576/978 +f 4745/4467/979 4853/4579/979 4851/4577/980 +f 4770/4492/981 4854/4580/981 4852/4578/977 +f 4754/4476/982 4855/4581/982 4853/4579/979 +f 4769/4491/983 4856/4582/983 4854/4580/981 +f 4756/4478/984 4857/4583/984 4855/4581/982 +f 4777/4499/985 4858/4584/985 4856/4582/983 +f 4760/4482/986 4859/4586/986 4857/4583/984 +f 4858/4584/985 4777/4499/985 4776/4498/975 +f 4762/4484/987 4860/4587/987 4859/4586/986 +f 4741/4463/974 4861/4588/974 4849/4575/976 +f 4761/4483/988 4862/4589/988 4860/4587/987 +f 4747/4469/989 4863/4590/989 4861/4588/974 +f 4765/4487/978 4850/4576/978 4862/4589/988 +f 4743/4465/980 4851/4577/980 4863/4590/989 +f 4854/4580/990 4865/4635/994 4864/4591/991 +f 4856/4582/993 4866/4609/996 4865/4592/994 +f 4858/4584/995 4867/4612/998 4866/4593/996 +f 4848/4585/997 4868/4618/1000 4867/4594/998 +f 4849/4575/999 4869/4616/1002 4868/4595/1000 +f 4861/4588/1001 4870/4622/1004 4869/4596/1002 +f 4863/4590/1003 4871/4626/1006 4870/4597/1004 +f 4851/4577/1005 4873/4630/1008 4871/4598/1006 +f 4851/4577/1005 4853/4579/1010 4872/4599/1007 +f 4855/4581/1009 4875/4637/1012 4872/4601/1007 +f 4855/4581/1009 4857/4583/1014 4874/4602/1011 +f 4859/4586/1013 4876/4614/1016 4874/4604/1011 +f 4860/4587/1015 4877/4620/1018 4876/4605/1016 +f 4862/4589/1017 4878/4624/1020 4877/4606/1018 +f 4850/4576/1019 4879/4628/1021 4878/4607/1020 +f 4852/4578/992 4864/4632/991 4879/4608/1021 +f 4786/4639/1022 4785/4642/1025 4881/4640/1023 +f 4785/4642/1025 4787/4645/1027 4883/4643/1026 +f 4787/4645/1027 4784/4648/1029 4884/4646/1028 +f 4784/4648/1029 4788/4652/1032 4885/4649/1030 +f 4847/4651/1031 4885/4936/1030 4788/4652/1032 +f 4783/4654/1034 4786/4639/1022 4882/4655/1024 +f 4781/4657/1036 4783/4654/1034 4886/4658/1035 +f 4888/4660/1038 4782/4937/1175 4781/4657/1036 +f 4888/4660/1038 4887/4661/1037 4889/4662/1039 +f 4886/4658/1035 4891/4938/1041 4889/4664/1039 +f 4882/4655/1024 4752/4939/1176 4891/4665/1041 +f 4883/4643/1026 4751/4940/1043 4753/4666/1042 +f 4753/4667/1042 4752/4941/1176 4882/4641/1024 +f 4884/4646/1028 4892/4942/1044 4751/4668/1043 +f 4885/4649/1030 4893/4943/1045 4892/4669/1044 +f 4893/4670/1045 4885/4936/1030 4847/4651/1031 +f 4895/4672/982 4904/4695/1061 4896/4673/1047 +f 4894/4674/1048 4896/4673/1047 4897/4675/1049 +f 4890/4677/1055 4748/4470/1054 4750/4472/988 +f 4752/4679/985 4903/4690/1060 4899/4680/1051 +f 4891/4681/1052 4899/4680/1051 4900/4682/1053 +f 4889/4683/977 4900/4682/1053 4748/4470/1054 +f 4893/4676/980 4897/4675/1049 4901/4684/1056 +f 4892/4685/1057 4901/4684/1056 4902/4686/1058 +f 4772/4700/983 4820/4698/983 4888/4697/1062 +f 4742/4704/974 4773/4703/976 4847/4571/972 +f 4817/4705/989 4740/4707/989 4742/4704/974 +f 4816/4706/980 4746/4709/980 4740/4707/989 +f 4818/4708/979 4744/4711/979 4746/4709/980 +f 4846/4710/982 4755/4885/982 4744/4711/979 +f 4905/4714/1067 4778/4717/988 4764/4715/988 +f 4780/4718/978 4763/4720/978 4764/4715/988 +f 4814/4719/977 4766/4722/977 4763/4720/978 +f 4815/4721/981 4768/4723/981 4766/4722/977 +f 4820/4698/983 4772/4700/983 4768/4723/981 +f 4906/4724/1069 4798/4944/1069 4791/4725/1070 +f 4797/4727/1071 4796/4734/1072 4908/4728/1072 +f 4793/4730/1073 4795/4733/1074 4910/4731/1074 +f 4795/4733/1074 4797/4727/1071 4909/4729/1071 +f 4796/4734/1072 4798/4944/1069 4906/4724/1069 +f 4912/4735/977 4808/4757/977 4810/4736/1052 +f 4914/4738/986 4805/4758/986 4807/4739/1075 +f 4916/4741/980 4811/4759/980 4813/4742/1048 +f 4913/4737/1052 4810/4736/1052 4803/4744/1076 +f 4919/4746/975 4802/4945/975 4804/4747/1077 +f 4915/4740/1075 4807/4739/1075 4809/4749/1050 +f 4917/4743/1048 4813/4742/1048 4806/4751/1078 +f 4918/4745/1076 4803/4744/1076 4802/4753/975 +f 4920/4748/1077 4804/4747/1077 4812/4755/1057 +f 4921/4750/1050 4809/4749/1050 4808/4757/977 +f 4922/4752/1078 4806/4751/1078 4805/4758/986 +f 4923/4756/1057 4812/4755/1057 4811/4759/980 +f 4912/4735/1079 4913/4737/1080 4924/4760/1080 +f 4913/4737/1080 4918/4745/1081 4926/4762/1081 +f 4918/4745/1081 4919/4754/1082 4927/4763/1082 +f 4919/4746/1082 4920/4748/1083 4928/4764/1083 +f 4920/4748/1083 4923/4756/1084 4929/4766/1084 +f 4923/4756/1084 4916/4741/1085 4930/4767/1085 +f 4916/4741/1085 4917/4743/1086 4931/4768/1086 +f 4917/4743/1086 4922/4752/1087 4932/4769/1087 +f 4922/4752/1087 4914/4738/1088 4933/4770/1088 +f 4933/4770/1088 4914/4738/1088 4915/4740/1089 +f 4915/4740/1089 4921/4750/1090 4935/4772/1090 +f 4921/4750/1090 4912/4735/1079 4925/4761/1079 +f 4791/4725/1070 4790/4946/1091 4936/4773/1091 +f 4790/4774/1091 4792/4777/1092 4937/4775/1092 +f 4792/4777/1092 4800/4779/1093 4938/4778/1093 +f 4800/4779/1093 4799/4781/1094 4939/4780/1094 +f 4799/4781/1094 4801/4783/1095 4940/4782/1095 +f 4801/4783/1095 4794/4785/1096 4941/4784/1096 +f 4794/4785/1096 4793/4730/1073 4911/4732/1073 +f 4942/4790/1098 4822/4544/1097 4821/4543/1100 +f 4903/4690/1060 4752/4679/985 4751/4687/976 +f 4831/4793/1103 4830/4796/1106 4944/4794/1104 +f 4830/4796/1106 4832/4799/1108 4946/4797/1107 +f 4832/4799/1108 4829/4802/1110 4947/4800/1109 +f 4829/4802/1110 4833/4806/1113 4948/4803/1111 +f 4905/4805/1112 4948/4947/1111 4833/4806/1113 +f 4828/4808/1115 4831/4793/1103 4945/4809/1105 +f 4826/4811/1117 4828/4808/1115 4949/4812/1116 +f 4951/4814/1119 4827/4948/1177 4826/4811/1117 +f 4951/4814/1119 4950/4815/1118 4952/4816/1120 +f 4949/4812/1116 4954/4949/1122 4952/4818/1120 +f 4945/4809/1105 5032/4950/1178 4954/4819/1122 +f 4946/4797/1107 4956/4951/1124 4955/4820/1123 +f 4955/4821/1123 5032/4952/1178 4945/4795/1105 +f 4947/4800/1109 4957/4953/1125 4956/4822/1124 +f 4948/4803/1111 4958/4954/1126 4957/4823/1125 +f 4958/4824/1126 4948/4947/1111 4905/4805/1112 +f 4960/4826/1128 4972/4841/1141 4961/4827/1129 +f 4961/4827/1129 4972/4841/1141 4963/4829/1131 +f 4968/4834/1136 4997/4955/1136 4960/4835/1137 +f 4967/4833/1135 4966/4956/1134 4963/4840/1131 +f 4981/4857/1095 4842/4957/1095 4835/4858/1096 +f 4983/4860/1093 4841/4958/1093 4840/4861/1094 +f 4837/4863/1091 4839/4866/1092 4985/4864/1092 +f 4839/4866/1092 4841/4958/1093 4983/4860/1093 +f 4840/4861/1094 4842/4957/1095 4981/4857/1095 +f 4835/4858/1096 4834/4868/1073 4987/4867/1073 +f 4834/4868/1073 4836/4870/1074 4988/4869/1074 +f 4836/4870/1074 4844/4959/1071 4989/4871/1071 +f 4989/4871/1071 4844/4959/1071 4843/4872/1072 +f 4843/4872/1072 4845/4875/1069 4991/4874/1069 +f 4845/4875/1069 4838/4877/1070 4992/4876/1070 +f 4838/4877/1070 4837/4960/1091 4986/4878/1091 +f 4993/4880/1152 4961/4827/1129 4964/4881/1132 +f 4755/4885/982 4846/4710/982 4951/4883/1154 +f 4993/4880/1152 4999/4893/1160 4995/4887/980 +f 4962/4828/1130 4961/4827/1129 4993/4880/1152 +f 4996/4889/977 4969/4837/1138 4967/4833/1135 +f 4967/4833/1135 4972/4841/1141 4960/4826/1128 +f 4970/4896/1052 4971/4961/983 4980/4855/1151 +f 4965/4897/977 4970/4896/1052 4979/4853/1150 +f 4966/4898/1050 4965/4897/977 4978/4851/1149 +f 4975/4846/1146 4964/4962/984 4963/4899/987 +f 4998/4900/980 4994/4905/1048 4974/4844/1145 +f 5000/4901/1057 4998/4900/980 4973/4842/1143 +f 5001/4902/974 5000/4901/1057 4823/4545/1142 +f 4996/4903/969 4997/4955/1136 4968/4834/1136 +f 4963/4899/987 4966/4898/1050 4977/4849/1148 +f 4994/4905/1048 4964/4962/984 4975/4846/1146 +f 5002/4906/977 5016/4920/977 5003/4907/981 +f 5005/4909/1163 5033/4963/1163 5006/4910/978 +f 5008/4912/980 5019/4923/980 5009/4913/979 +f 5011/4915/1164 5034/4964/1164 5012/4916/989 +f 5004/4908/981 5003/4907/981 5014/4918/1165 +f 5007/4911/978 5006/4910/978 5016/4920/977 +f 5010/4914/979 5009/4913/979 5017/4921/1166 +f 5013/4917/989 5012/4916/989 5019/4923/980 +f 5020/4924/1167 5035/4965/1167 5021/4925/1168 +f 5023/4927/1169 5035/4965/1167 5020/4924/1167 +f 5025/4929/1170 5036/4966/1170 5023/4927/1169 +f 5026/4930/1171 5037/4967/1171 5027/4931/1172 +f 5029/4933/1173 5037/4967/1171 5026/4930/1171 +f 5031/4935/1174 5038/4968/1174 5029/4933/1173 +l 5040 4959 +l 4953 5039 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_micro.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_micro.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa2abe25110118f76de315f80c0d95076d42edc GIT binary patch literal 1163 zcmeAS@N?(olHy`uVBq!ia0vp^TY$KPgAGXPs7kZ}DVAa<&kznEsNqQI0CJr?T^vIy z=DfXY>vtzWr0rp{iL}Gb10tFlcQ>{z>39*eftl+FU(H@-mx;1IQ%WW@sk$uk_MFJ1 zX)0vBLo-d`ad+~0$=k{2kN@_#cti5PW=+go%bm&TZJyofV%M*4)}Pi}s{8vv!W(Xe zUoHz2TOFKF<-Fm}_`0s+t#oCdc+G8ltL^W9{&~1A%4oT1=??F0_UqQ|-#Tlypi~ft z$r6DK55)@;oWT0H8r!CX*S@%XD5m!QU#X!&1toNg1OVuwngmC+x73{ zroF!^4V|2Uiba@sHP>gqcwl|t&`#TL-dpY)ZvL)cT9WvD>iLMJv8k_bFZ;dzef0D8 zqsPwY+>@FoD7E%g)2_2-yB!v6oVe_OpX!-37Ad~cgL8vsoIR7)8v6U3{G8b1yTAEr zB^B*E^TOLda>MGBzjwa=TPHh3nXSuUaXx!mT5`)QgJceU(=U3?zB3G`c*$3ZW`$3b zpQFx`p7y%5+QVzzn~n|InXirYqlBKk4Sv7pbf8&H=46A#s{?P9l`d2}^Wtzu?TfDg z!f9Vpr#-J+>bA2`?!fNaePQ{55ImbUH*4t{H=GZ4Lg4qwFqnyaN2g($Uw!5&*SE*Tydw4+j`8- zi=H%y00kC8s6;(>x2xZcV>B!kS|>3Fy(n_vQe|Hf0H?aFFPup~HYE@!0Erc#qv3IT zs3yZi>#f$@O#-v;=}%6te=nsBi*}>g=btCXJ1fr%w$M#2+!4c(__azx`*r00`+{F) z+1lFnR@N;DpCW@u9?$^ExSbebSlQ-vzxLIWA3gBo^LgRL7iMA4?dy5YG25K~DB)F9 z1NVNblvJ$@L*(W=Hmmb^R9SKF?_{*r%FnTGF%elkMRz&G)LR^^SS)_GYepEx$Z| z$=cxUzGpXbn3SEDe#Lt@$8CY(G+*bp9GfL;UzGKq+sT%DkM(+bN5Pym_kZ5o{^YM` zB-`d+?=Rllp7*EHz$rOq-bqjC9Pb5&`+S}DCVt>FS+-DfLto&XSm(>`ZQalJ$&{Lw zM$dTZ>@0~Tf@1pmoC?mJ{b6-w>VY1IaU)l19)$L06hEMZV R^nj%cgQu&X%Q~loCIFB<97O;C literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_strong.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_strong.png new file mode 100644 index 0000000000000000000000000000000000000000..1d71e1efde85c433eaf750f07b8abe66f7250ea4 GIT binary patch literal 2544 zcmb7GX;@O*8s4BD&~roWq?wW?4HliuN|PMR@TOT#2h#}W21`M3sv{z#l_sWSx13Vc zYiZ7SeWB^bvamMb$ox3^l{%%U2 zli~B}<{Mq9|BgS8==3{7Hmj}~Rw;S%3O0Oh2eFnJe0{Jb;3r9=rQQu^%PiT}uz)OS zW3bPhn$?rkkUPdmq0$10D!;qUh<%(gjg z*brNGUpYFOKclCugEV7!PQHk3OFnGM+?navqs$I*P=lSrm{*LM6&D$-hQQ8^Sl2W( zU7=``8A`{)py@7=b&WE*7KI8`9)B7rUn9q z`ts$I3tC-!*7b!a_Tzk9?V`)wS$w#%Bw#Z9ARJ@n<${gxvTQj5!{=H7_UijGp-@wb zGP?6#4)bojB3Exu=EG={Dus6%zxr0P6?}|0R*raTpCWjYul187Z=jgtn-cTh&Oo_p zAaG@@EvF}ad+T?ZJjz#?PM;8-fAoOxKp(^LPRf-~C&iJr59jjn;)7LOtSvK6cs+D3 zYo??TM`kRn^$}Yqq$U01v~fTA6~XOruEb*;-Nxr>p)sZI zighPu6C1@YbBA77sTLaPATwe@e0l@F^V6T?YYsZ_j879Yi+mdjMH{}wo|zIi%g2;M zFAb^{TzmV+Wm9)#l^;|1o|P)kKb4*Iz>ymo8nTnyUYEFaaOs-SUCAzMeTF&>eQb_n zwt1)`$(segy&kG>BT*+?Ms*!|MDHM)5&;m4^fpCMskyzGd4Iiv!1PoyOM#x0q6EoG z9iCp%|Mey3d)4sJgM9pmtS^op-_$H0*W51K>HO@})rEV%GDB-;6=i=^3A-ZKKSOn- z@MR{s)@#`s+Sx-V;+sa52V|p1W%%yc`PV(k6-?=G9usc53#Y7${BPAM=DDoS*zyz? zTq(=HegRd%BoRwyy~SH~-}%!CL~Ro&qJ8`q5_R4Oy0tlMHksuDg(MYoF6Ab-nV*%* z)X@&6u^u+Z0fg78)^b|Dd|c@@|7_fEkwU>NHv04d1qrj93wh5xhhB?)ruh&=4UK5i?9|x!!!wFw9NPK^6V=kB`Eq*haJE*KZffHGS1A{1_c*mv z_c1o>;^qc7!!aACSS-!&2KK5g^T#HCZrrr+d^p{|FkQ3YJqNQIwv9+6Oxe zGd>mS0tS0#vLZRtT$udx=l)*h;Nau&jrYUFT-p5{vm<}3XHUXYn@TB>YTZ9F;;jtO zToadA*<>UxP$}U5p+YJR2o-JL2P=rFV;F3GD@@zp4bijhPtyq_KHoUPcx{2_UDT-G zlz_naCc+56w!Fc1LrPB7Fqjr^bKq9}QHKoe&F?>XDG#BY(7 zzFjVlUmV!@jnESm$hQ3bQ%>1jpPj38%)e_F*#dLA^EgnT3;DrV1uUufVm>pa(WB)D z?MpM0Esz~ll9VkrLv&rzKsfc5&tw_~Co)t#v5nCVJjfm6J}ZeKGDEk8&?7Nqk;gBB zL23hU3?QH6@8fjvzlTfbc@9(Rn`vi`?tUApp1Ch8WY&JvYzS-K+iVX!jjL36OJ zrO7bHGT8o7xw2e9C)7zXYp*KaX@*9IkmDBc7qnuP5O^Ws088R?&V=SJ=@g zpx-jiI<*nydp4B98_c!H?uBk`6QLrL8hAt0A&2UcdVJ->IsVCAf7MoD{%4X^on;Vv zgZPAzXfc@0Jaas7alvTz+9R>@jWk@TY?afmx`fUj$mSDP(p!vn+Su4!uu}sLQZ8%! zZ;x2=lTKV#+p}jE1qJP&BH9zmO*&QW;-!-QV*QesveIRKJMx)IW@!F0r>bRv{?THV zmRn5w@?V~{wGdOn3I(;-=BdpJUUKRJX>oz>*bz&4rcm&?LghQx`P-e-p2MNfog4&I zH-D#-@9lM#HLIYdJV1@?6-}ijSC+dTY*NmQ#nM&T< uNjfyL%SnGZl0i`RAQHB`sP(^qEUFtclhrC-e_cAl0nU!D*eZvBgg*hre6!^M literal 0 HcmV?d00001 From 2eb3247d67d09688a68316156398388255862c33 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 9 Feb 2024 14:44:44 +0100 Subject: [PATCH 165/376] first batch of Energy Control compat code --- .../java/api/hbm/energy/IEnergyConnector.java | 7 ++ .../java/api/hbm/tile/IInfoProviderEC.java | 101 ++++++++++++++++++ .../java/com/hbm/util/CompatExternal.java | 2 +- 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 src/main/java/api/hbm/tile/IInfoProviderEC.java diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java index 34ed1d175..fc6905758 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ b/src/main/java/api/hbm/energy/IEnergyConnector.java @@ -3,6 +3,7 @@ package api.hbm.energy; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -109,6 +110,12 @@ public interface IEnergyConnector extends ILoadedTile { return vec; } + /** Shortcut for adding energy data to tiles that implement IInfoProviderEC, should NOT be used externally for compat! Use IInfoProviderEC.provideInfo() instead! */ + public default void provideInfoForEC(NBTTagCompound data) { + data.setLong(IInfoProviderEC.L_ENERGY_HE, this.getPower()); + data.setLong(IInfoProviderEC.L_CAPACITY_HE, this.getMaxPower()); + } + public default ConnectionPriority getPriority() { return ConnectionPriority.NORMAL; } diff --git a/src/main/java/api/hbm/tile/IInfoProviderEC.java b/src/main/java/api/hbm/tile/IInfoProviderEC.java new file mode 100644 index 000000000..e6a0f7835 --- /dev/null +++ b/src/main/java/api/hbm/tile/IInfoProviderEC.java @@ -0,0 +1,101 @@ +package api.hbm.tile; + +import com.hbm.inventory.fluid.tank.FluidTank; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.StatCollector; + +/** + * Info providers for ENERGY CONTROL + * + * For EC's implementation, refer to: + * https://github.com/Zuxelus/Energy-Control/blob/1.7.10/src/main/java/com/zuxelus/energycontrol/crossmod/CrossHBM.java + * https://github.com/Zuxelus/Energy-Control/blob/1.7.10/src/main/java/com/zuxelus/energycontrol/items/cards/ItemCardHBM.java + * https://github.com/Zuxelus/Energy-Control/blob/1.7.10/src/main/java/com/zuxelus/energycontrol/utils/DataHelper.java + * + * (keys are from DataHelper.java and CrossHBM.java) + * + * */ +public interface IInfoProviderEC { + + /** The meat of the interface and the only method that should be called from externally, returns + * an NBTTagCompound with all relevant data in EC's accepted format, the implementor takes care of + * collecting and adding the data. */ + public NBTTagCompound provideInfo(); + + + + + /* + * INTERNAL USE ONLY - HELPER METHODS BELOW + */ + + /** Instantiates the NBTTagCompound and adds common identifiers needed for NTM machines (e.g. HE as the energy type) */ + public default NBTTagCompound setup() { + NBTTagCompound data = new NBTTagCompound(); + data.setString(KEY_EUTYPE, "HE"); + return data; + } + + /** Adds the tank to the NBTTagCompound using the supplied String as the key. */ + public default void addTank(String name, NBTTagCompound tag, FluidTank tank) { + if(tank.getFill() == 0) { + tag.setString(name, "N/A"); + } else { + tag.setString(name, String.format("%s: %s mB", StatCollector.translateToLocal(tank.getTankType().getConditionalName()), tank.getFill())); + } + } + + /* + * [DATA TYPE] _ [NAME] _ [UNIT] + */ + + public static final String KEY_EUTYPE = "euType"; + + public static final String L_ENERGY_HE = "energy"; + public static final String L_ENERGY_TU = "energyTU"; + public static final String L_ENERGY_ = "energy_"; // Blast Furnace fuel + + public static final String L_CAPACITY_HE = "capacity"; + public static final String L_CAPACITY_TU = "capacityTU"; + public static final String L_CAPACITY_ = "capacity_"; // Blast Furnace fuel capacity + + public static final String D_CONSUMPTION_HE = "consumptionHE"; + public static final String D_CONSUMPTION_MB = "consumption"; + @Deprecated public static final String S_CONSUMPTION_ = "consumption_"; // FWatz fluid consumption rates + + public static final String D_OUTPUT_HE = "output"; + public static final String D_OUTPUT_MB = "outputmb"; + public static final String D_OUTPUT_TU = "outputTU"; + + public static final String L_DIFF_HE = "diff"; // Battery diff per tick + @Deprecated public static final String I_TEMP_K = "temp"; // Unused? + public static final String D_TURBINE_PERCENT = "turbine"; // CCGT slider + public static final String I_TURBINE_SPEED = "speed"; // CCGT RPM + public static final String L_COREHEAT_C = "core"; // Research Reactor core heat + public static final String L_HULLHEAT_C = "hull"; // Research Reactor hull heat + public static final String S_LEVEL_PERCENT = "level"; // Research Reactor rods + @Deprecated public static final String L_HEATL = "heatL"; // AMS and old Watz heat values + public static final String D_HEAT_C = "heat"; // Research Reactor and RBMK column heat + public static final String L_PRESSURE_BAR = "bar"; // ZIRNOX pressure + public static final String I_FUEL = "fuel"; // RTG Blast Furnace heat + @Deprecated public static final String S_FUELTEXT = "fuelText"; // Large Nuclear Reactor only + @Deprecated public static final String S_DEPLETED = "depleted"; // Large Nuclear Reactor only + public static final String D_DEPLETION_PERCENT = "depletion"; // RBMK Fuel depletion + public static final String D_XENON_PERCENT = "xenon"; // RBMK Fuel xenon poisoning + public static final String D_SKIN_C = "skin"; // RBMK Fuel skin heat + public static final String D_CORE_C = "c_heat"; // RBMK Fuel core heat + public static final String D_MELT_C = "melt"; // RBMK Fuel melting point + public static final String I_PROGRESS = "progress"; + public static final String I_FLUX = "flux"; // Research and Breeding Reactor flux + public static final String I_WATER = "water"; // Research Reactor water gauge + public static final String L_DURABILITY = "durability"; // DFC Stabilizer Lens + public static final String S_TANK = "tank"; + public static final String S_TANK2 = "tank2"; + public static final String S_TANK3 = "tank3"; + public static final String S_TANK4 = "tank4"; + public static final String S_TANK5 = "tank5"; + @Deprecated public static final String I_PISTONS = "pistons"; // Radial Performance Engine piston count + public static final String S_CHUNKRAD = "chunkRad"; // Geiger Counter + public static final String B_ACTIVE = "active"; +} diff --git a/src/main/java/com/hbm/util/CompatExternal.java b/src/main/java/com/hbm/util/CompatExternal.java index 46f1fab61..d1c2f1a02 100644 --- a/src/main/java/com/hbm/util/CompatExternal.java +++ b/src/main/java/com/hbm/util/CompatExternal.java @@ -124,7 +124,7 @@ public class CompatExternal { for(FluidTank tank : container.getAllTanks()) { FluidType type = tank.getTankType(); list.add(new Object[] { - type.getName(), + type.getConditionalName(), type.getID(), type.getColor(), tank.getFill(), From 1bd5efe0a78a2aa734206a957977148a6a14a69b Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 9 Feb 2024 23:19:34 -0800 Subject: [PATCH 166/376] added rural house, few additions don't think i've ever needed the pattern tool but at least it works now --- .../hbm/items/tool/ItemStructurePattern.java | 2 +- .../com/hbm/items/tool/ItemStructureTool.java | 3 + .../java/com/hbm/items/tool/ItemWandD.java | 23 +- .../java/com/hbm/lib/HbmChestContents.java | 2 +- src/main/java/com/hbm/util/LootGenerator.java | 34 +- .../world/gen/component/CivilianFeatures.java | 420 +++++++++++++++++- .../hbm/world/gen/component/Component.java | 4 +- 7 files changed, 468 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemStructurePattern.java b/src/main/java/com/hbm/items/tool/ItemStructurePattern.java index 0e4832ad4..09c75e5cd 100644 --- a/src/main/java/com/hbm/items/tool/ItemStructurePattern.java +++ b/src/main/java/com/hbm/items/tool/ItemStructurePattern.java @@ -49,7 +49,7 @@ public class ItemStructurePattern extends ItemStructureTool { Block b = world.getBlock(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); int meta = world.getBlockMetadata(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); - message.concat("placeBlockAtCurrentPosition(world, " + b.getUnlocalizedName() + ", " + meta + ", " + ix + ", " + iy + ", " + iz + ", box);\n"); + message += "placeBlockAtCurrentPosition(world, " + b.getUnlocalizedName() + ", " + meta + ", " + ix + ", " + iy + ", " + iz + ", box);\n"; } } } diff --git a/src/main/java/com/hbm/items/tool/ItemStructureTool.java b/src/main/java/com/hbm/items/tool/ItemStructureTool.java index 62e43b03c..de10db59e 100644 --- a/src/main/java/com/hbm/items/tool/ItemStructureTool.java +++ b/src/main/java/com/hbm/items/tool/ItemStructureTool.java @@ -137,6 +137,9 @@ public abstract class ItemStructureTool extends Item implements ILookOverlay { } } + if(Minecraft.getMinecraft().thePlayer.isSneaking()) + text.add("B: " + world.getBlock(x, y, z).getUnlocalizedName() + ", M: " + world.getBlockMetadata(x, y, z)); + ILookOverlay.printGeneric(event, this.getItemStackDisplayName(stack), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 8392b7ad1..d41af6091 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -6,13 +6,17 @@ import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; import com.hbm.util.BobMathUtil; import com.hbm.util.TrackerUtil; +import com.hbm.world.gen.component.CivilianFeatures.RuralHouse1; +import com.hbm.world.gen.component.Component; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -26,6 +30,17 @@ public class ItemWandD extends Item { if(pos != null) { + /*for(int x = 0; x <= 14; x++) { + for(int y = 0; y <= 8; y++) { + for(int z = 0; z <= 14; z++) { + System.out.print("a"); + Block block = world.getBlock(pos.blockX + x, pos.blockY + y, pos.blockZ + z); + int meta = world.getBlockMetadata(pos.blockX + x, pos.blockY + y, pos.blockZ + z); + world.setBlock(pos.blockX + x, pos.blockY + y, pos.blockZ + z + 32, block, meta, 2); + } + } + }*/ + /*ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(ModBlocks.block_slag)).setNoDrop()); @@ -36,13 +51,13 @@ public class ItemWandD extends Item { //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); - /*int i = pos.blockX >> 4; + int i = pos.blockX >> 4; int j = pos.blockZ >> 4; i = (i << 4) + 8; j = (j << 4) + 8; - Component comp = new ElevatedPrefab1(world.rand, i, 64, j); - comp.addComponentParts(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32));*/ + Component comp = new RuralHouse1(world.rand, i, j); + comp.addComponentParts(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32)); /*int i = pos.blockX >> 4; int j = pos.blockZ >> 4; @@ -80,7 +95,7 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - List del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50)); + /*List del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50)); if(!del.isEmpty()) { for(EntityNukeTorex torex : del) torex.setDead(); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 964bfc4dc..c0bda98a8 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -442,7 +442,7 @@ public class HbmChestContents { String key; int pages; - switch(rand.nextInt(4)) { + switch(rand.nextInt(5)) { case 0: key = "bf_bomb_1"; pages = 4; break; case 1: diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index 537796427..0c7e5c7af 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -101,23 +101,19 @@ public class LootGenerator { if(loot != null && loot.items.isEmpty()) { - if(world.rand.nextInt(2) == 0) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.gun_lever_action), 0, 0, 0.125); + addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.gun_lever_action), 0.125, 0.025, 0.25); + + if(world.rand.nextBoolean()) + addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wrench), -0.25, 0, -0.28125); int count = world.rand.nextInt(2) + 1; for(int i = 0; i < count; i++) { - int type = world.rand.nextInt(2); - Item parts = type < 1 ? ModItems.plate_steel : ModItems.mechanism_rifle_1; - addItemWithDeviation(loot, world.rand, new ItemStack(parts), -0.3125, i * 0.03125, 0.3125); + addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.plate_steel), -0.25, i * 0.03125, 0.3125); } count = world.rand.nextInt(2) + 2; for(int i = 0; i < count; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wire_aluminium), 0.3125, i * 0.03125, -0.125); - - int type = world.rand.nextInt(4); - Item tool = type > 2 ? ModItems.wrench : ModItems.screwdriver; - addItemWithDeviation(loot, world.rand, new ItemStack(tool), 0.005, 0, -0.3125); + addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wire_aluminium), 0.25, i * 0.03125, 0.1875); } } @@ -183,4 +179,22 @@ public class LootGenerator { } } } + + public static void lootBookLore(World world, int x, int y, int z, ItemStack book) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + addItemWithDeviation(loot, world.rand, book, 0, 0, -0.25); + + int count = world.rand.nextInt(3) + 2; + for(int k = 0; k < count; k++) + addItemWithDeviation(loot, world.rand, new ItemStack(Items.book), -0.25, k * 0.03125, 0.1875); + + count = world.rand.nextInt(2) + 1; + for(int k = 0; k < count; k++) + addItemWithDeviation(loot, world.rand, new ItemStack(Items.paper), 0.25, k * 0.03125, 0.125); + } + } + } diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 66301f925..3495e6291 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -8,6 +8,7 @@ import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.lib.HbmChestContents; import com.hbm.util.LootGenerator; +import net.minecraft.block.BlockStairs; import net.minecraft.init.Blocks; import net.minecraft.item.ItemDoor; import net.minecraft.nbt.NBTTagCompound; @@ -25,9 +26,10 @@ public class CivilianFeatures { public static void registerComponents() { MapGenStructureIO.func_143031_a(NTMHouse1.class, "NTMHouse1"); MapGenStructureIO.func_143031_a(NTMHouse2.class, "NTMHouse2"); - MapGenStructureIO.func_143031_a(NTMLab1.class, "NTMLab1"); + MapGenStructureIO.func_143031_a(NTMLab1.class, "NTMLab1"); //i'll replace these shitty structures one day trust MapGenStructureIO.func_143031_a(NTMLab2.class, "NTMLab2"); MapGenStructureIO.func_143031_a(NTMWorkshop1.class, "NTMWorkshop1"); + MapGenStructureIO.func_143031_a(RuralHouse1.class, "NTMRuralHouse1"); } /** Sandstone Ruin 1 */ @@ -725,4 +727,420 @@ public class CivilianFeatures { } } + + public static class RuralHouse1 extends Component { + + + public RuralHouse1() { + super(); + } + + public RuralHouse1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 14, 8, 14); + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + if(!this.setAverageHeight(world, box, this.boundingBox.minY)) { + return false; + } + + //Foundations + fillWithBlocks(world, box, 1, 0, 4, 4, 0, 4, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 4, 0, 2, 4, 0, 3, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 4, 0, 1, 9, 0, 1, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 9, 0, 2, 10, 0, 2, ModBlocks.concrete_colored_ext); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 12, 0, 2, box); + fillWithBlocks(world, box, 13, 0, 2, 13, 0, 9, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 4, 0, 9, 12, 0, 9, ModBlocks.concrete_colored_ext); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 2, 0, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 8, 0, 10, box); + fillWithBlocks(world, box, 8, 0, 12, 8, 0, 13, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 1, 0, 13, 7, 0, 13, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 1, 0, 5, 1, 0, 12, ModBlocks.concrete_colored_ext); + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 1, 10, 8, 13, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 1, 4, 3, 9, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 4, 1, 13, 9, -1, box); + + placeFoundationUnderneath(world, Blocks.log, 0, 2, 3, 2, 3, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 3, 2, 3, 2, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 3, 0, 3, 0, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 5, 0, 5, 0, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 8, 0, 8, 0, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 10, 0, 10, 0, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 1, 14, 1, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 3, 14, 3, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 5, 14, 6, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 8, 14, 8, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 10, 14, 10, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 9, 14, 9, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 7, 14, 7, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 4, 14, 5, 14, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 2, 14, 2, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 14, 0, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 13, 0, 13, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 11, 0, 11, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 9, 0, 9, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 6, 0, 7, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 4, 0, 4, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 3, 0, 4, -1, box); + + //Walls + //North/Front + fillWithBlocks(world, box, 1, 1, 4, 4, 4, 4, Blocks.brick_block); + fillWithBlocks(world, box, 2, 5, 4, 7, 5, 4, Blocks.brick_block); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 3, 6, 4, box); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 6, 6, 4, box); + fillWithBlocks(world, box, 4, 7, 4, 5, 7, 4, Blocks.brick_block); + fillWithBlocks(world, box, 4, 1, 1, 4, 4, 3, Blocks.brick_block); + fillWithBlocks(world, box, 5, 1, 1, 8, 1, 1, Blocks.brick_block); + fillWithBlocks(world, box, 5, 4, 1, 8, 4, 1, Blocks.brick_block); + fillWithBlocks(world, box, 9, 1, 1, 9, 4, 2, Blocks.brick_block); + fillWithBlocks(world, box, 10, 1, 2, 10, 3, 2, Blocks.brick_block); + fillWithBlocks(world, box, 12, 1, 2, 13, 3, 2, Blocks.brick_block); + fillWithBlocks(world, box, 10, 4, 2, 13, 4, 2, Blocks.brick_block); + fillWithBlocks(world, box, 9, 5, 2, 12, 5, 2, Blocks.brick_block); + fillWithBlocks(world, box, 10, 6, 2, 11, 6, 2, Blocks.brick_block); + //East/Left + fillWithBlocks(world, box, 13, 1, 3, 13, 1, 8, Blocks.brick_block); + fillWithBlocks(world, box, 13, 3, 3, 13, 4, 8, Blocks.brick_block); + //South/Back + fillWithBlocks(world, box, 13, 1, 9, 13, 4, 9, Blocks.brick_block); + fillWithBlocks(world, box, 9, 1, 9, 12, 1, 9, Blocks.brick_block); + fillWithBlocks(world, box, 9, 4, 9, 12, 5, 9, Blocks.brick_block); + fillWithBlocks(world, box, 10, 6, 9, 11, 6, 9, Blocks.brick_block); + fillWithBlocks(world, box, 8, 1, 9, 8, 4, 10, Blocks.brick_block); + fillWithBlocks(world, box, 8, 1, 12, 8, 3, 13, Blocks.brick_block); + fillWithBlocks(world, box, 8, 4, 11, 8, 4, 13, Blocks.brick_block); + fillWithBlocks(world, box, 7, 1, 13, 7, 3, 13, Blocks.brick_block); + fillWithBlocks(world, box, 3, 1, 13, 6, 1, 13, Blocks.brick_block); + fillWithBlocks(world, box, 2, 4, 13, 7, 5, 13, Blocks.brick_block); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 6, 6, 13, box); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 3, 6, 13, box); + fillWithBlocks(world, box, 4, 7, 13, 5, 7, 13, Blocks.brick_block); + fillWithBlocks(world, box, 2, 1, 13, 2, 3, 13, Blocks.brick_block); + //West/Right + fillWithBlocks(world, box, 1, 1, 13, 1, 4, 13, Blocks.brick_block); + fillWithBlocks(world, box, 1, 1, 5, 1, 1, 12, Blocks.brick_block); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 1, 2, 9, box); + fillWithBlocks(world, box, 1, 3, 5, 1, 3, 12, Blocks.brick_block); + //Inside + fillWithBlocks(world, box, 2, 1, 9, 2, 3, 9, Blocks.brick_block); + fillWithBlocks(world, box, 4, 1, 9, 7, 3, 9, Blocks.brick_block); + //Wood Paneling + fillWithMetadataBlocks(world, box, 5, 2, 1, 5, 3, 1, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 8, 2, 1, 8, 3, 1, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 11, 3, 2, box); + fillWithMetadataBlocks(world, box, 13, 2, 3, 13, 2, 4, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 13, 2, 7, 13, 2, 8, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 12, 2, 9, 12, 3, 9, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 9, 2, 9, 9, 3, 9, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 8, 3, 11, box); + fillWithMetadataBlocks(world, box, 6, 2, 13, 6, 3, 13, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 3, 2, 13, 3, 3, 13, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 12, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 10, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 8, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 5, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 3, 3, 9, box); + //Wood Framing + //North/Front + int logW = this.getPillarMeta(4); + int logN = this.getPillarMeta(8); + + fillWithBlocks(world, box, 0, 0, 3, 0, 3, 3, Blocks.log); + fillWithMetadataBlocks(world, box, 1, 4, 3, 3, 4, 3, Blocks.log, logW); + fillWithMetadataBlocks(world, box, 3, 4, 1, 3, 4, 2, Blocks.log, logN); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 1, 3, 3, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 3, 3, 1, box); + fillWithMetadataBlocks(world, box, 1, 1, 3, 2, 1, 3, Blocks.wooden_slab, 1); + fillWithMetadataBlocks(world, box, 3, 1, 1, 3, 1, 3, Blocks.wooden_slab, 1); + fillWithBlocks(world, box, 3, 0, 0, 3, 3, 0, Blocks.log); + fillWithMetadataBlocks(world, box, 4, 1, 0, 9, 1, 0, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 4, 3, 0, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 9, 3, 0, box); + fillWithBlocks(world, box, 10, 0, 0, 10, 3, 0, Blocks.log); + fillWithMetadataBlocks(world, box, 10, 4, 1, 13, 4, 1, Blocks.log, logW); + fillWithBlocks(world, box, 14, 0, 1, 14, 3, 1, Blocks.log); + //East/Left + fillWithBlocks(world, box, 14, 0, 3, 14, 3, 3, Blocks.log); + fillWithBlocks(world, box, 14, 0, 8, 14, 3, 8, Blocks.log); + fillWithBlocks(world, box, 14, 0, 10, 14, 3, 10, Blocks.log); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 14, 1, 2, box); + fillWithMetadataBlocks(world, box, 14, 1, 4, 14, 1, 7, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 14, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 2, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 4, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 7, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 9, box); + //South/Back + fillWithMetadataBlocks(world, box, 9, 4, 10, 13, 4, 10, Blocks.log, logW); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 13, 3, 10, box); + fillWithBlocks(world, box, 9, 0, 14, 9, 3, 14, Blocks.log); + fillWithBlocks(world, box, 7, 0, 14, 7, 3, 14, Blocks.log); + fillWithBlocks(world, box, 2, 0, 14, 2, 3, 14, Blocks.log); + fillWithBlocks(world, box, 0, 0, 14, 0, 3, 14, Blocks.log); + fillWithMetadataBlocks(world, box, 1, 4, 14, 8, 4, 14, Blocks.log, logW); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 8, 1, 14, box); + fillWithMetadataBlocks(world, box, 3, 1, 14, 6, 1, 14, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 1, 1, 14, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 8, 3, 14, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 1, 3, 14, box); + //West/Right + fillWithBlocks(world, box, 0, 0, 9, 0, 3, 9, Blocks.log); + fillWithMetadataBlocks(world, box, 0, 1, 10, 0, 1, 13, Blocks.wooden_slab, 1); + fillWithMetadataBlocks(world, box, 0, 1, 4, 0, 1, 8, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 13, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 10, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 8, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 4, box); + + int stairW = this.getStairMeta(0); + int stairE = this.getStairMeta(1); + int stairN = this.getStairMeta(2); + int stairS = this.getStairMeta(3); + + //Floor + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 11, 0, 2, box); + fillWithMetadataBlocks(world, box, 9, 0, 3, 12, 0, 8, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 5, 0, 2, 8, 0, 8, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 2, 0, 5, 4, 0, 8, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 3, 0, 9, box); + fillWithMetadataBlocks(world, box, 2, 0, 10, 7, 0, 12, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 8, 0, 11, box); + fillWithBlocks(world, box, 13, 1, 0, 14, 1, 0, Blocks.fence); + //Porches + fillWithBlocks(world, box, 10, 0, 1, 13, 0, 1, Blocks.planks); + fillWithMetadataBlocks(world, box, 11, 0, 0, 12, 0, 0, Blocks.spruce_stairs, stairN); + fillWithMetadataBlocks(world, box, 13, 0, 0, 14, 0, 0, Blocks.planks, 1); + fillWithBlocks(world, box, 12, 0, 10, 13, 0, 10, Blocks.planks); + fillWithBlocks(world, box, 9, 0, 10, 11, 0, 11, Blocks.planks); + fillWithBlocks(world, box, 9, 0, 12, 10, 0, 12, Blocks.planks); + placeBlockAtCurrentPosition(world, Blocks.planks, 0, 9, 0, 13, box); + for(int i = 0; i < 3; i++) { + fillWithMetadataBlocks(world, box, 10 + i, 0, 13 - i, 11 + i, 0, 13 - i, Blocks.planks, 1); + fillWithBlocks(world, box, 10 + i, 1, 13 - i, 11 + i, 1, 13 - i, Blocks.fence); + } + + //Ceiling + fillWithMetadataBlocks(world, box, 12, 4, 3, 12, 4, 8, Blocks.oak_stairs, stairW | 4); + fillWithBlocks(world, box, 12, 5, 3, 12, 5, 8, Blocks.planks); + fillWithBlocks(world, box, 10, 5, 3, 11, 6, 8, Blocks.planks); + fillWithBlocks(world, box, 9, 5, 3, 9, 5, 8, Blocks.planks); + fillWithMetadataBlocks(world, box, 9, 4, 3, 9, 4, 8, Blocks.oak_stairs, stairE | 4); + fillWithBlocks(world, box, 8, 4, 5, 8, 4, 8, Blocks.planks); + fillWithBlocks(world, box, 5, 4, 2, 8, 4, 4, Blocks.planks); + fillWithBlocks(world, box, 1, 4, 5, 7, 4, 12, Blocks.planks); + + //Roofing + //Framing + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 1, 5, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 2, 6, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 3, 6, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 3, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 4, 7, 3, box); + fillWithMetadataBlocks(world, box, 4, 8, 3, 5, 8, 3, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 5, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 6, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 6, 6, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 7, 6, 3, box); + fillWithMetadataBlocks(world, box, 2, 5, 3, 3, 5, 3, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 3, 5, 2, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 3, 5, 1, box); + fillWithMetadataBlocks(world, box, 3, 4, 0, 14, 4, 0, Blocks.spruce_stairs, stairN); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 8, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 9, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 10, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 9, 6, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 10, 6, 1, box); + fillWithMetadataBlocks(world, box, 10, 7, 1, 11, 7, 1, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 11, 6, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 12, 6, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 12, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 13, 5, 1, box); + fillWithMetadataBlocks(world, box, 14, 4, 1, 14, 4, 10, Blocks.spruce_stairs, stairE); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 13, 5, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 12, 5, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 12, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 11, 6, 10, box); + fillWithMetadataBlocks(world, box, 10, 7, 10, 11, 7, 10, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 10, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 9, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 9, 5, 10, box); + fillWithMetadataBlocks(world, box, 9, 4, 11, 9, 4, 14, Blocks.spruce_stairs, stairE); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 8, 5, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 7, 5, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 7, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 6, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 6, 7, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 5, 7, 14, box); + fillWithMetadataBlocks(world, box, 4, 8, 14, 5, 8, 14, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 4, 7, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 3, 7, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 3, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 2, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 2, 5, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 1, 5, 14, box); + fillWithMetadataBlocks(world, box, 0, 4, 3, 0, 4, 14, Blocks.spruce_stairs, stairW); + //Beams + for(int z = 6; z <= 11; z += 5) { + for(int i = 0; i < 3; i++) { + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 2 + i, 5 + i, z, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 7 - i, 5 + i, z, box); + } + } + + //Main (LEFT) + BrokenStairs roofStairs = new BrokenStairs(); + BrokenBlocks roofBlocks = new BrokenBlocks(); + + roofStairs.setMetadata(stairW); + fillWithBlocks(world, box, 4, 5, 1, 7, 5, 1, Blocks.wooden_slab); + fillWithRandomizedBlocks(world, box, 4, 5, 2, 7, 5, 3, rand, roofBlocks); //TODO separate into stair/slab/block block selectors + fillWithRandomizedBlocks(world, box, 8, 5, 2, 8, 5, 10, rand, roofBlocks); + fillWithRandomizedBlocks(world, box, 9, 6, 2, 9, 6, 9, rand, roofStairs); + randomlyFillWithBlocks(world, box, rand, 0.8F, 10, 7, 2, 11, 7, 9, Blocks.wooden_slab); + roofStairs.setMetadata(stairE); + fillWithRandomizedBlocks(world, box, 12, 6, 2, 12, 6, 9, rand, roofStairs); //i should redo like most of this shit + fillWithRandomizedBlocks(world, box, 13, 5, 2, 13, 5, 9, rand, roofStairs); + //Main (RIGHT) + fillWithRandomizedBlocks(world, box, 8, 5, 11, 8, 5, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 7, 6, 4, 7, 6, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 6, 7, 4, 6, 7, 7, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 6, 7, 11, 6, 7, 13, rand, roofStairs); + roofStairs.setMetadata(stairW); + fillWithBlocks(world, box, 4, 8, 4, 5, 8, 5, Blocks.wooden_slab); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 5, 8, 6, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 4, 8, 11, box); + fillWithBlocks(world, box, 4, 8, 12, 5, 8, 13, Blocks.wooden_slab); + fillWithRandomizedBlocks(world, box, 3, 7, 4, 3, 7, 6, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 3, 7, 10, 3, 7, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 2, 6, 4, 2, 6, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 1, 5, 4, 1, 5, 13, rand, roofStairs); + + //Deco + //Webs + randomlyFillWithBlocks(world, box, rand, 0.05F, 12, 3, 3, 12, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 10, 4, 3, 11, 4, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 5, 3, 2, 9, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 2, 3, 5, 4, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 2, 3, 10, 7, 3, 12, Blocks.web); + //Doors + placeDoor(world, box, Blocks.wooden_door, 1, false, false, 11, 1, 2); + placeDoor(world, box, Blocks.wooden_door, 1, false, rand.nextBoolean(), 3, 1, 9); + placeDoor(world, box, Blocks.wooden_door, 2, false, rand.nextBoolean(), 8, 1, 11); + //Windows + randomlyFillWithBlocks(world, box, rand, 0.5F, 6, 2, 1, 7, 3, 1, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 13, 2, 5, 13, 2, 6, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 10, 2, 9, 11, 3, 9, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 2, 13, 5, 3, 13, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 1, 2, 11, 1, 2, 11, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 1, 2, 6, 1, 2, 7, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 6, 4, 5, 6, 4, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 6, 13, 5, 6, 13, Blocks.glass_pane); + //Attic Access + placeBlockAtCurrentPosition(world, Blocks.trapdoor, getDecoModelMeta(4) >> 2, 6, 4, 10, box); + fillWithMetadataBlocks(world, box, 6, 2, 10, 6, 3, 10, Blocks.ladder, getDecoMeta(3)); + //Furniture + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 12, 1, 5, box); //Couch + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 12, 1, 6, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN, 12, 1, 7, box); + fillWithMetadataBlocks(world, box, 7, 1, 5, 8, 1, 5, Blocks.oak_stairs, stairS | 4); //Table + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 8, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 8, 7, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.stone_slab, 0, 8, 1, 2, box); //Kitchen Counter + placeBlockAtCurrentPosition(world, Blocks.cauldron, 1, 7, 1, 2, box); + fillWithBlocks(world, box, 5, 1, 2, 6, 1, 2, Blocks.stone_slab); + placeBlockAtCurrentPosition(world, Blocks.furnace, 5, 5, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.stone_slab, 0, 5, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE, 9, 1, 8, box); //Bookshelf + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 9, 2, 8, box); + fillWithBlocks(world, box, 7, 1, 8, 8, 2, 8, Blocks.bookshelf); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 6, 1, 8, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 6, 2, 8, box); + fillWithMetadataBlocks(world, box, 6, 3, 8, 9, 3, 8, Blocks.wooden_slab, 1); + fillWithMetadataBlocks(world, box, 4, 1, 6, 4, 2, 6, Blocks.oak_stairs, stairN | 4); //Shelves + fillWithMetadataBlocks(world, box, 4, 1, 5, 4, 2, 5, Blocks.oak_stairs, stairE | 4); + fillWithBlocks(world, box, 2, 1, 5, 3, 1, 5, Blocks.bookshelf); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(2), 2, 2, 5, box); + + placeBlockAtCurrentPosition(world, Blocks.bed, 0, 2, 1, 11, box); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairN | 4, 3, 1, 12, box); //Nightstand + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 5, 1, 12, box); //Desk + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN | 4, 6, 1, 12, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 7, 1, 12, box); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairS, 6, 1, 11, box); //Chair + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, 0, 6, 2, 12, box); + + placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 7, 5, 12, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 5, 5, 12, box); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairN | 4, 3, 5, 10, box); //Desk + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairE | 4, 3, 5, 9, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 4, 5, 9, box); //Chair + fillWithBlocks(world, box, 3, 5, 6, 3, 5, 7, Blocks.bookshelf); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 6, 5, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_diesel, getDecoMeta(4), 7, 5, 8, box); + + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 4, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 3, 2, 12, box); + //Loot + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 4, 1, 12, HbmChestContents.officeTrash, 4); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(5), 2, 5, 5, HbmChestContents.lockersVault, 8); + placeRandomBobble(world, box, rand, 3, 6, 10); + //Loot blocks + + placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 3, 2, 5, box); + LootGenerator.lootBookLore(world, getXWithOffset(3, 5), getYWithOffset(2), getZWithOffset(3, 5), HbmChestContents.generateLabBook(rand)); //TODO write more lore + placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 3, 6, 9, box); + LootGenerator.lootMakeshiftGun(world, getXWithOffset(3, 9), getYWithOffset(6), getZWithOffset(3, 9)); + + return true; + } + + //i don't like this class + public static class BrokenStairs extends BlockSelector { + //man. + public void setMetadata(int meta) { + this.selectedBlockMetaData = meta; + } + //mannnnnnnn. + @Override + public int getSelectedBlockMetaData() { + return this.field_151562_a instanceof BlockStairs ? this.selectedBlockMetaData : 0; + } + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + float chance = rand.nextFloat(); + + if(chance < 0.7) + this.field_151562_a = Blocks.oak_stairs; + else if(chance < 0.97) + this.field_151562_a = Blocks.wooden_slab; + else + this.field_151562_a = Blocks.air; + } + } + + //this fucking sucks. i am racist against the blockselector class + public static class BrokenBlocks extends BlockSelector { + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + float chance = rand.nextFloat(); + + if(chance < 0.6) { + this.field_151562_a = Blocks.planks; + this.selectedBlockMetaData = 0; + } else if(chance < 0.8) { + this.field_151562_a = Blocks.oak_stairs; + this.selectedBlockMetaData = rand.nextInt(4); + } else { + this.field_151562_a = Blocks.wooden_slab; + this.selectedBlockMetaData = 0; + } + } + } + } } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index f1263b23a..505ff6b83 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -6,13 +6,11 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; -import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.config.StructureConfig; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.tileentity.machine.TileEntityLockableBase; import net.minecraft.block.Block; -import net.minecraft.block.BlockWeb; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; @@ -197,7 +195,7 @@ abstract public class Component extends StructureComponent { metadata = metadata ^ 3; break; } - + //genuinely like. why did i do that return metadata << 2; //To accommodate for BlockDecoModel's shift in the rotation bits; otherwise, simply bit-shift right and or any non-rotation meta after } From 8d0faf719239b5a2e5accf57fb3e22a02ef7667d Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 9 Feb 2024 23:40:51 -0800 Subject: [PATCH 167/376] fixes --- .../hbm/world/gen/component/CivilianFeatures.java | 13 +++++++------ .../java/com/hbm/world/gen/component/Component.java | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 3495e6291..1417f35ff 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -1023,7 +1023,8 @@ public class CivilianFeatures { //Webs randomlyFillWithBlocks(world, box, rand, 0.05F, 12, 3, 3, 12, 3, 8, Blocks.web); randomlyFillWithBlocks(world, box, rand, 0.05F, 10, 4, 3, 11, 4, 8, Blocks.web); - randomlyFillWithBlocks(world, box, rand, 0.05F, 5, 3, 2, 9, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 5, 3, 2, 8, 3, 2, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 5, 3, 3, 9, 3, 8, Blocks.web); randomlyFillWithBlocks(world, box, rand, 0.05F, 2, 3, 5, 4, 3, 8, Blocks.web); randomlyFillWithBlocks(world, box, rand, 0.05F, 2, 3, 10, 7, 3, 12, Blocks.web); //Doors @@ -1049,11 +1050,11 @@ public class CivilianFeatures { fillWithMetadataBlocks(world, box, 7, 1, 5, 8, 1, 5, Blocks.oak_stairs, stairS | 4); //Table placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 8, 1, 4, box); placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 8, 7, 1, 4, box); - placeBlockAtCurrentPosition(world, Blocks.stone_slab, 0, 8, 1, 2, box); //Kitchen Counter + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 8, 1, 2, box); //Kitchen Counter placeBlockAtCurrentPosition(world, Blocks.cauldron, 1, 7, 1, 2, box); - fillWithBlocks(world, box, 5, 1, 2, 6, 1, 2, Blocks.stone_slab); + fillWithBlocks(world, box, 5, 1, 2, 6, 1, 2, Blocks.double_stone_slab); placeBlockAtCurrentPosition(world, Blocks.furnace, 5, 5, 1, 3, box); - placeBlockAtCurrentPosition(world, Blocks.stone_slab, 0, 5, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 5, 1, 4, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE, 9, 1, 8, box); //Bookshelf placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 9, 2, 8, box); fillWithBlocks(world, box, 7, 1, 8, 8, 2, 8, Blocks.bookshelf); @@ -1065,13 +1066,13 @@ public class CivilianFeatures { fillWithBlocks(world, box, 2, 1, 5, 3, 1, 5, Blocks.bookshelf); placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(2), 2, 2, 5, box); - placeBlockAtCurrentPosition(world, Blocks.bed, 0, 2, 1, 11, box); + placeBed(world, box, 0, 2, 1, 11); placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairN | 4, 3, 1, 12, box); //Nightstand placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 5, 1, 12, box); //Desk placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN | 4, 6, 1, 12, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 7, 1, 12, box); placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairS, 6, 1, 11, box); //Chair - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, 0, 6, 2, 12, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 6, 2, 12, box); placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 7, 5, 12, box); placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 5, 5, 12, box); diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 505ff6b83..8607d2323 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -38,7 +38,7 @@ abstract public class Component extends StructureComponent { protected Component(Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ ) { super(0); - this.coordBaseMode = 0;//rand.nextInt(4); + this.coordBaseMode = rand.nextInt(4); switch(this.coordBaseMode) { case 0: From 330ca6bc86f37314cbe68cac9590ca712efd7d2e Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 10 Feb 2024 18:11:49 +0100 Subject: [PATCH 168/376] the final UV --- .../hbm/models/weapons/launch_pad_erector.obj | 18265 ++++++++++------ .../textures/models/launchpad/erector_abm.png | Bin 0 -> 1238 bytes .../models/launchpad/erector_atlas.png | Bin 0 -> 3599 bytes .../models/launchpad/erector_huge.png | Bin 0 -> 2310 bytes 4 files changed, 11054 insertions(+), 7211 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png create mode 100644 src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png create mode 100644 src/main/resources/assets/hbm/textures/models/launchpad/erector_huge.png diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj index 1b4591165..0a89d7b9a 100644 --- a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj @@ -41,6 +41,56 @@ v -0.125000 2.312500 -1.562500 v -0.125000 2.312500 -1.437500 v -0.125000 2.187500 -1.437500 v -0.125000 2.187500 -1.562500 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.666667 0.159091 +vt 0.708333 0.136364 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.136364 +vt 0.708333 0.159091 +vt 0.833333 -0.000000 +vt 0.791667 0.136364 +vt 0.791667 -0.000000 +vt 0.750000 -0.000000 +vt 0.708333 -0.000000 +vt 0.833333 -0.000000 +vt 0.791667 0.136364 +vt 0.791667 -0.000000 +vt 0.750000 -0.000000 +vt 0.708333 -0.000000 +vt 0.666667 0.136364 +vt 0.666667 -0.000000 +vt 0.750000 0.136364 +vt 0.666667 0.136364 +vt 0.666667 -0.000000 +vt 0.750000 0.136364 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.833333 0.136364 +vt 0.833333 0.136364 +vt 0.708333 0.204545 vn -1.0000 0.0000 0.0000 vn 1.0000 0.0000 0.0000 vn 0.0000 1.0000 0.0000 @@ -48,54 +98,50 @@ vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 -1.0000 0.0000 s off -f 21//1 19//1 17//1 -f 24//2 18//2 20//2 -f 11//3 9//3 10//3 -f 15//3 13//3 14//3 -f 8//2 15//2 6//2 -f 5//1 13//1 7//1 -f 4//2 11//2 2//2 -f 1//1 9//1 3//1 -f 7//4 16//4 8//4 -f 6//5 14//5 5//5 -f 3//4 12//4 4//4 -f 2//5 10//5 1//5 -f 23//4 20//4 19//4 -f 22//5 17//5 18//5 -f 29//1 27//1 25//1 -f 32//2 26//2 28//2 -f 31//4 28//4 27//4 -f 30//5 25//5 26//5 -f 34//2 35//2 33//2 -f 37//1 39//1 38//1 -f 40//4 35//4 36//4 -f 38//5 34//5 33//5 -f 39//6 36//6 34//6 -f 37//3 33//3 35//3 -f 21//1 23//1 19//1 -f 24//2 22//2 18//2 -f 11//3 12//3 9//3 -f 15//3 16//3 13//3 -f 8//2 16//2 15//2 -f 5//1 14//1 13//1 -f 4//2 12//2 11//2 -f 1//1 10//1 9//1 -f 7//4 13//4 16//4 -f 6//5 15//5 14//5 -f 3//4 9//4 12//4 -f 2//5 11//5 10//5 -f 23//4 24//4 20//4 -f 22//5 21//5 17//5 -f 29//1 31//1 27//1 -f 32//2 30//2 26//2 -f 31//4 32//4 28//4 -f 30//5 29//5 25//5 -f 34//2 36//2 35//2 -f 37//1 40//1 39//1 -f 40//4 37//4 35//4 -f 38//5 39//5 34//5 -f 39//6 40//6 36//6 -f 37//3 38//3 33//3 +f 21/1/1 19/2/1 17/3/1 +f 24/4/2 18/5/2 20/6/2 +f 11/7/3 9/8/3 10/9/3 +f 15/10/3 13/11/3 14/12/3 +f 8/13/2 15/14/2 6/15/2 +f 5/16/1 13/11/1 7/17/1 +f 4/18/2 11/19/2 2/20/2 +f 1/21/1 9/8/1 3/22/1 +f 7/17/4 16/23/4 8/24/4 +f 6/15/5 14/25/5 5/16/5 +f 3/22/4 12/26/4 4/27/4 +f 2/20/5 10/28/5 1/21/5 +f 23/29/4 20/6/4 19/2/4 +f 22/30/5 17/3/5 18/5/5 +f 29/31/1 27/32/1 25/33/1 +f 32/34/2 26/35/2 28/36/2 +f 31/37/4 28/36/4 27/32/4 +f 30/38/5 25/33/5 26/35/5 +f 40/39/4 35/40/4 36/41/4 +f 38/42/5 34/43/5 33/44/5 +f 39/45/6 36/41/6 34/46/6 +f 37/47/3 33/44/3 35/40/3 +f 21/1/1 23/29/1 19/2/1 +f 24/4/2 22/30/2 18/5/2 +f 11/7/3 12/26/3 9/8/3 +f 15/10/3 16/23/3 13/11/3 +f 8/13/2 16/48/2 15/14/2 +f 5/16/1 14/25/1 13/11/1 +f 4/18/2 12/49/2 11/19/2 +f 1/21/1 10/28/1 9/8/1 +f 7/17/4 13/11/4 16/23/4 +f 6/15/5 15/14/5 14/25/5 +f 3/22/4 9/8/4 12/26/4 +f 2/20/5 11/19/5 10/28/5 +f 23/29/4 24/4/4 20/6/4 +f 22/30/5 21/1/5 17/3/5 +f 29/31/1 31/37/1 27/32/1 +f 32/34/2 30/38/2 26/35/2 +f 31/37/4 32/34/4 28/36/4 +f 30/38/5 29/31/5 25/33/5 +f 40/39/4 37/47/4 35/40/4 +f 38/42/5 39/50/5 34/43/5 +f 39/45/6 40/39/6 36/41/6 +f 37/47/3 38/42/3 33/44/3 o ABM_Rope v 0.000000 10.500000 1.437500 v 0.000000 10.375000 1.437500 @@ -105,14 +151,45 @@ v 0.000000 10.375000 1.062500 v 0.000000 10.250000 1.062500 v 0.000000 10.375000 0.375000 v 0.000000 10.250000 0.375000 +v 0.000000 10.500000 1.437500 +v 0.000000 10.375000 1.437500 +v 0.000000 10.500000 0.000000 +v 0.000000 10.375000 0.000000 +v 0.000000 10.375000 1.062500 +v 0.000000 10.250000 1.062500 +v 0.000000 10.375000 0.375000 +v 0.000000 10.250000 0.375000 +vt 0.593750 0.920455 +vt 0.656250 0.909091 +vt 0.656250 0.920455 +vt 0.593750 0.909091 +vt 0.479167 0.920455 +vt 0.479167 0.909091 +vt 0.416667 0.909091 +vt 0.416667 0.920455 +vt 0.656250 0.909091 +vt 0.593750 0.920455 +vt 0.656250 0.920455 +vt 0.479167 0.920455 +vt 0.593750 0.909091 +vt 0.479167 0.909091 +vt 0.416667 0.909091 +vt 0.416667 0.920455 vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 s off -f 47//7 44//7 43//7 -f 48//7 45//7 46//7 -f 42//7 45//7 41//7 -f 47//7 48//7 44//7 -f 48//7 47//7 45//7 -f 42//7 46//7 45//7 +f 47/51/7 44/52/7 43/53/7 +f 48/54/7 45/55/7 46/56/7 +f 42/57/7 45/55/7 41/58/7 +f 52/59/8 55/60/8 51/61/8 +f 53/62/8 56/63/8 54/64/8 +f 50/65/8 53/62/8 54/64/8 +f 47/51/7 48/54/7 44/52/7 +f 48/54/7 47/51/7 45/55/7 +f 42/57/7 46/56/7 45/55/7 +f 52/59/8 56/63/8 55/60/8 +f 53/62/8 55/60/8 56/63/8 +f 50/65/8 49/66/8 53/62/8 o ABM_Erector v 0.125000 2.750000 -1.625000 v 0.125000 2.750000 -1.375000 @@ -178,30 +255,6 @@ v 0.250000 9.375000 -0.500000 v 0.250000 9.125000 -0.500000 v -0.250000 9.125000 -0.500000 v -0.250000 9.375000 -0.500000 -v 0.125000 6.312500 -1.437500 -v 0.125000 6.187500 -1.437500 -v 0.125000 6.312500 -1.562500 -v 0.125000 6.187500 -1.562500 -v -0.125000 6.312500 -1.562500 -v -0.125000 6.312500 -1.437500 -v -0.125000 6.187500 -1.437500 -v -0.125000 6.187500 -1.562500 -v 0.125000 7.312500 -1.437500 -v 0.125000 7.187500 -1.437500 -v 0.125000 7.312500 -1.562500 -v 0.125000 7.187500 -1.562500 -v -0.125000 7.312500 -1.562500 -v -0.125000 7.312500 -1.437500 -v -0.125000 7.187500 -1.437500 -v -0.125000 7.187500 -1.562500 -v 0.125000 8.312500 -1.437500 -v 0.125000 8.187500 -1.437500 -v 0.125000 8.312500 -1.562500 -v 0.125000 8.187500 -1.562500 -v -0.125000 8.312500 -1.562500 -v -0.125000 8.312500 -1.437500 -v -0.125000 8.187500 -1.437500 -v -0.125000 8.187500 -1.562500 v 0.125000 9.312500 -1.437500 v 0.125000 9.187500 -1.437500 v 0.125000 9.312500 -1.562500 @@ -210,6 +263,30 @@ v -0.125000 9.312500 -1.562500 v -0.125000 9.312500 -1.437500 v -0.125000 9.187500 -1.437500 v -0.125000 9.187500 -1.562500 +v -0.125000 8.187500 -1.562500 +v -0.125000 8.187500 -1.437500 +v -0.125000 8.312500 -1.437500 +v -0.125000 8.312500 -1.562500 +v 0.125000 8.187500 -1.562500 +v 0.125000 8.312500 -1.562500 +v 0.125000 8.187500 -1.437500 +v 0.125000 8.312500 -1.437500 +v 0.125000 7.312500 -1.437500 +v 0.125000 7.187500 -1.437500 +v 0.125000 7.312500 -1.562500 +v 0.125000 7.187500 -1.562500 +v -0.125000 7.312500 -1.562500 +v -0.125000 7.312500 -1.437500 +v -0.125000 7.187500 -1.437500 +v -0.125000 7.187500 -1.562500 +v -0.125000 6.187500 -1.562500 +v -0.125000 6.187500 -1.437500 +v -0.125000 6.312500 -1.437500 +v -0.125000 6.312500 -1.562500 +v 0.125000 6.187500 -1.562500 +v 0.125000 6.312500 -1.562500 +v 0.125000 6.187500 -1.437500 +v 0.125000 6.312500 -1.437500 v 0.125000 3.312500 -1.437500 v 0.125000 3.187500 -1.437500 v 0.125000 3.312500 -1.562500 @@ -218,14 +295,6 @@ v -0.125000 3.312500 -1.562500 v -0.125000 3.312500 -1.437500 v -0.125000 3.187500 -1.437500 v -0.125000 3.187500 -1.562500 -v 0.125000 4.312500 -1.437500 -v 0.125000 4.187500 -1.437500 -v 0.125000 4.312500 -1.562500 -v 0.125000 4.187500 -1.562500 -v -0.125000 4.312500 -1.562500 -v -0.125000 4.312500 -1.437500 -v -0.125000 4.187500 -1.437500 -v -0.125000 4.187500 -1.562500 v 0.125000 5.312500 -1.437500 v 0.125000 5.187500 -1.437500 v 0.125000 5.312500 -1.562500 @@ -234,6 +303,14 @@ v -0.125000 5.312500 -1.562500 v -0.125000 5.312500 -1.437500 v -0.125000 5.187500 -1.437500 v -0.125000 5.187500 -1.562500 +v -0.125000 4.187500 -1.562500 +v -0.125000 4.187500 -1.437500 +v -0.125000 4.312500 -1.437500 +v -0.125000 4.312500 -1.562500 +v 0.125000 4.187500 -1.562500 +v 0.125000 4.312500 -1.562500 +v 0.125000 4.187500 -1.437500 +v 0.125000 4.312500 -1.437500 v 0.250000 4.875000 -0.625000 v 0.250000 4.875000 -0.875000 v 0.250000 5.625000 -1.375000 @@ -258,6 +335,252 @@ v 0.250000 4.125000 -1.375000 v 0.250000 3.875000 -1.375000 v -0.250000 4.125000 -1.375000 v -0.250000 3.875000 -1.375000 +v 0.250000 4.875000 -0.625000 +v 0.250000 4.875000 -0.875000 +v 0.250000 5.625000 -1.375000 +v 0.250000 5.375000 -1.375000 +v -0.250000 4.875000 -0.625000 +v -0.250000 4.875000 -0.875000 +v -0.250000 5.625000 -1.375000 +v -0.250000 5.375000 -1.375000 +v 0.250000 9.125000 -0.625000 +v 0.250000 9.125000 -0.875000 +v -0.250000 9.125000 -0.625000 +v -0.250000 9.125000 -0.875000 +v 0.250000 8.625000 -1.375000 +v 0.250000 8.375000 -1.375000 +v -0.250000 8.625000 -1.375000 +v -0.250000 8.375000 -1.375000 +v 0.250000 4.625000 -0.625000 +v 0.250000 4.625000 -0.875000 +v -0.250000 4.625000 -0.625000 +v -0.250000 4.625000 -0.875000 +v 0.250000 4.125000 -1.375000 +v 0.250000 3.875000 -1.375000 +v -0.250000 4.125000 -1.375000 +v -0.250000 3.875000 -1.375000 +vt 0.708333 0.227273 +vt 0.666667 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.227273 +vt 0.666667 0.204545 +vt 0.708333 0.204545 +vt 0.666667 0.886364 +vt 0.708333 0.863636 +vt 0.708333 0.886364 +vt 0.666667 0.886364 +vt 0.708333 0.863636 +vt 0.708333 0.886364 +vt 0.833333 0.227273 +vt 0.791667 0.863636 +vt 0.791667 0.227273 +vt 0.750000 0.227273 +vt 0.666667 0.863636 +vt 0.666667 0.227273 +vt 0.791667 0.227273 +vt 0.750000 0.863636 +vt 0.750000 0.227273 +vt 0.666667 0.863636 +vt 0.666667 0.227273 +vt 0.750000 0.863636 +vt 0.833333 0.227273 +vt 0.791667 0.863636 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.250000 +vt 0.958333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.204545 +vt 0.875000 0.227273 +vt 0.875000 0.204545 +vt 0.958333 0.181818 +vt 0.875000 0.181818 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.958333 0.227273 +vt 0.958333 0.250000 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.250000 +vt 0.958333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.204545 +vt 0.875000 0.227273 +vt 0.875000 0.204545 +vt 0.958333 0.181818 +vt 0.875000 0.181818 +vt 0.958333 0.227273 +vt 0.958333 0.250000 +vt 0.708333 0.159091 +vt 0.666667 0.170455 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.666667 0.193182 +vt 0.666667 0.181818 +vt 0.708333 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.181818 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.159091 +vt 0.666667 0.170455 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.666667 0.193182 +vt 0.666667 0.181818 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.708333 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.181818 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.159091 +vt 0.666667 0.170455 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.666667 0.193182 +vt 0.666667 0.181818 +vt 0.708333 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.708333 0.181818 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.958333 0.340909 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.875000 0.272727 +vt 0.958333 0.318182 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.875000 0.272727 +vt 0.958333 0.318182 +vt 0.958333 0.340909 +vt 0.875000 0.272727 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.958333 0.318182 +vt 0.833333 0.863636 +vt 0.833333 0.863636 +vt 1.000000 0.181818 +vt 1.000000 0.181818 +vt 1.000000 0.181818 +vt 1.000000 0.181818 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 @@ -265,190 +588,174 @@ vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 49//8 51//8 50//8 -f 53//8 55//8 54//8 -f 59//9 57//9 58//9 -f 63//9 61//9 62//9 -f 52//10 59//10 51//10 -f 50//11 57//11 49//11 -f 53//12 64//12 56//12 -f 55//13 62//13 54//13 -f 49//12 60//12 52//12 -f 51//13 58//13 50//13 -f 56//10 63//10 55//10 -f 54//11 61//11 53//11 -f 67//12 66//12 65//12 -f 70//13 71//13 69//13 -f 65//11 71//11 67//11 -f 67//9 72//9 68//9 -f 66//8 69//8 65//8 -f 68//10 70//10 66//10 -f 75//12 74//12 73//12 -f 78//13 79//13 77//13 -f 73//11 79//11 75//11 -f 75//9 80//9 76//9 -f 74//8 77//8 73//8 -f 76//10 78//10 74//10 -f 82//13 83//13 81//13 -f 87//12 85//12 86//12 -f 83//8 86//8 81//8 -f 94//13 95//13 93//13 -f 82//9 88//9 84//9 -f 91//12 90//12 89//12 -f 89//11 95//11 91//11 -f 91//9 96//9 92//9 -f 90//8 93//8 89//8 -f 92//10 94//10 90//10 -f 99//12 98//12 97//12 -f 102//13 103//13 101//13 -f 97//11 103//11 99//11 -f 99//9 104//9 100//9 -f 98//8 101//8 97//8 -f 100//10 102//10 98//10 -f 106//13 107//13 105//13 -f 111//12 109//12 110//12 -f 107//8 110//8 105//8 -f 106//9 112//9 108//9 -f 114//10 115//10 113//10 -f 117//11 119//11 118//11 -f 120//12 115//12 116//12 -f 118//13 114//13 113//13 -f 119//8 116//8 114//8 -f 117//9 113//9 115//9 -f 122//10 123//10 121//10 -f 125//11 127//11 126//11 -f 128//12 123//12 124//12 -f 126//13 122//13 121//13 -f 127//8 124//8 122//8 -f 125//9 121//9 123//9 -f 130//10 131//10 129//10 -f 133//11 135//11 134//11 -f 136//12 131//12 132//12 -f 134//13 130//13 129//13 -f 135//8 132//8 130//8 -f 133//9 129//9 131//9 -f 138//10 139//10 137//10 -f 141//11 143//11 142//11 -f 144//12 139//12 140//12 -f 142//13 138//13 137//13 -f 143//8 140//8 138//8 -f 141//9 137//9 139//9 -f 146//10 147//10 145//10 -f 149//11 151//11 150//11 -f 152//12 147//12 148//12 -f 150//13 146//13 145//13 -f 151//8 148//8 146//8 -f 149//9 145//9 147//9 -f 154//10 155//10 153//10 -f 157//11 159//11 158//11 -f 160//12 155//12 156//12 -f 158//13 154//13 153//13 -f 159//8 156//8 154//8 -f 157//9 153//9 155//9 -f 162//10 163//10 161//10 -f 165//11 167//11 166//11 -f 168//12 163//12 164//12 -f 166//13 162//13 161//13 -f 167//8 164//8 162//8 -f 165//9 161//9 163//9 -f 170//10 171//10 169//10 -f 175//11 174//11 173//11 -f 183//11 179//11 180//11 -f 177//10 181//10 178//10 -f 191//11 187//11 188//11 -f 185//10 189//10 186//10 -f 49//8 52//8 51//8 -f 53//8 56//8 55//8 -f 59//9 60//9 57//9 -f 63//9 64//9 61//9 -f 52//10 60//10 59//10 -f 50//11 58//11 57//11 -f 53//12 61//12 64//12 -f 55//13 63//13 62//13 -f 49//12 57//12 60//12 -f 51//13 59//13 58//13 -f 56//10 64//10 63//10 -f 54//11 62//11 61//11 -f 67//12 68//12 66//12 -f 70//13 72//13 71//13 -f 65//11 69//11 71//11 -f 67//9 71//9 72//9 -f 66//8 70//8 69//8 -f 68//10 72//10 70//10 -f 75//12 76//12 74//12 -f 78//13 80//13 79//13 -f 73//11 77//11 79//11 -f 75//9 79//9 80//9 -f 74//8 78//8 77//8 -f 76//10 80//10 78//10 -f 82//13 84//13 83//13 -f 87//12 88//12 85//12 -f 83//8 87//8 86//8 -f 94//13 96//13 95//13 -f 82//9 85//9 88//9 -f 91//12 92//12 90//12 -f 89//11 93//11 95//11 -f 91//9 95//9 96//9 -f 90//8 94//8 93//8 -f 92//10 96//10 94//10 -f 99//12 100//12 98//12 -f 102//13 104//13 103//13 -f 97//11 101//11 103//11 -f 99//9 103//9 104//9 -f 98//8 102//8 101//8 -f 100//10 104//10 102//10 -f 106//13 108//13 107//13 -f 111//12 112//12 109//12 -f 107//8 111//8 110//8 -f 106//9 109//9 112//9 -f 114//10 116//10 115//10 -f 117//11 120//11 119//11 -f 120//12 117//12 115//12 -f 118//13 119//13 114//13 -f 119//8 120//8 116//8 -f 117//9 118//9 113//9 -f 122//10 124//10 123//10 -f 125//11 128//11 127//11 -f 128//12 125//12 123//12 -f 126//13 127//13 122//13 -f 127//8 128//8 124//8 -f 125//9 126//9 121//9 -f 130//10 132//10 131//10 -f 133//11 136//11 135//11 -f 136//12 133//12 131//12 -f 134//13 135//13 130//13 -f 135//8 136//8 132//8 -f 133//9 134//9 129//9 -f 138//10 140//10 139//10 -f 141//11 144//11 143//11 -f 144//12 141//12 139//12 -f 142//13 143//13 138//13 -f 143//8 144//8 140//8 -f 141//9 142//9 137//9 -f 146//10 148//10 147//10 -f 149//11 152//11 151//11 -f 152//12 149//12 147//12 -f 150//13 151//13 146//13 -f 151//8 152//8 148//8 -f 149//9 150//9 145//9 -f 154//10 156//10 155//10 -f 157//11 160//11 159//11 -f 160//12 157//12 155//12 -f 158//13 159//13 154//13 -f 159//8 160//8 156//8 -f 157//9 158//9 153//9 -f 162//10 164//10 163//10 -f 165//11 168//11 167//11 -f 168//12 165//12 163//12 -f 166//13 167//13 162//13 -f 167//8 168//8 164//8 -f 165//9 166//9 161//9 -f 170//10 172//10 171//10 -f 175//11 176//11 174//11 -f 183//11 184//11 179//11 -f 177//10 182//10 181//10 -f 191//11 192//11 187//11 -f 185//10 190//10 189//10 +f 57/67/9 59/68/9 58/69/9 +f 61/70/9 63/71/9 62/72/9 +f 67/73/10 65/74/10 66/75/10 +f 71/76/10 69/77/10 70/78/10 +f 60/79/11 67/80/11 59/81/11 +f 58/82/12 65/74/12 57/67/12 +f 61/70/13 72/83/13 64/84/13 +f 63/85/14 70/86/14 62/87/14 +f 57/67/13 68/88/13 60/89/13 +f 59/81/14 66/90/14 58/82/14 +f 64/91/11 71/92/11 63/85/11 +f 62/87/12 69/77/12 61/70/12 +f 75/93/13 74/94/13 73/95/13 +f 78/96/14 79/97/14 77/98/14 +f 73/99/12 79/97/12 75/93/12 +f 75/93/10 80/100/10 76/101/10 +f 74/102/9 77/103/9 73/99/9 +f 76/104/11 78/105/11 74/102/11 +f 83/106/13 82/107/13 81/108/13 +f 86/109/14 87/110/14 85/111/14 +f 81/112/12 87/110/12 83/106/12 +f 83/106/10 88/113/10 84/114/10 +f 82/115/9 85/116/9 81/112/9 +f 84/117/11 86/118/11 82/115/11 +f 90/119/14 91/120/14 89/121/14 +f 95/122/13 93/123/13 94/124/13 +f 91/125/9 94/124/9 89/126/9 +f 102/127/14 103/128/14 101/129/14 +f 90/119/10 96/130/10 92/131/10 +f 99/132/13 98/133/13 97/134/13 +f 97/135/12 103/128/12 99/132/12 +f 99/132/10 104/136/10 100/137/10 +f 98/138/9 101/139/9 97/135/9 +f 100/140/11 102/141/11 98/138/11 +f 107/142/13 106/143/13 105/144/13 +f 110/145/14 111/146/14 109/147/14 +f 105/148/12 111/146/12 107/142/12 +f 107/142/10 112/149/10 108/150/10 +f 106/151/9 109/152/9 105/148/9 +f 108/153/11 110/154/11 106/151/11 +f 114/155/14 115/156/14 113/157/14 +f 119/158/13 117/159/13 118/160/13 +f 115/161/9 118/160/9 113/162/9 +f 114/155/10 120/163/10 116/164/10 +f 127/165/9 124/166/9 122/167/9 +f 125/168/10 121/169/10 123/170/10 +f 128/171/13 123/170/13 124/166/13 +f 126/172/14 122/173/14 121/169/14 +f 131/174/14 135/175/14 136/176/14 +f 129/177/13 134/178/13 133/179/13 +f 132/180/10 136/176/10 134/178/10 +f 130/181/9 133/179/9 135/182/9 +f 143/183/9 140/184/9 138/185/9 +f 141/186/10 137/187/10 139/188/10 +f 171/189/14 175/190/14 176/191/14 +f 169/192/13 174/193/13 173/194/13 +f 160/195/13 155/196/13 156/197/13 +f 158/198/14 154/199/14 153/200/14 +f 159/201/9 156/197/9 154/202/9 +f 157/203/10 153/200/10 155/196/10 +f 144/204/13 139/188/13 140/184/13 +f 142/205/14 138/206/14 137/187/14 +f 147/207/14 151/208/14 152/209/14 +f 145/210/13 150/211/13 149/212/13 +f 148/213/10 152/209/10 150/211/10 +f 146/214/9 149/212/9 151/215/9 +f 167/216/9 164/217/9 162/218/9 +f 165/219/10 161/220/10 163/221/10 +f 168/222/13 163/221/13 164/217/13 +f 166/223/14 162/224/14 161/220/14 +f 172/225/10 176/191/10 174/193/10 +f 170/226/9 173/194/9 175/227/9 +f 178/228/11 179/229/11 177/230/11 +f 183/231/12 182/232/12 181/233/12 +f 191/234/12 187/235/12 188/236/12 +f 185/237/11 189/238/11 186/239/11 +f 199/240/12 195/241/12 196/242/12 +f 193/243/11 197/244/11 194/245/11 +f 203/246/12 202/247/12 201/248/12 +f 206/249/11 207/250/11 205/251/11 +f 211/252/11 215/253/11 212/254/11 +f 213/255/12 209/256/12 210/257/12 +f 219/258/11 223/259/11 220/260/11 +f 221/261/12 217/262/12 218/263/12 +f 57/67/9 60/89/9 59/68/9 +f 61/70/9 64/84/9 63/71/9 +f 67/73/10 68/88/10 65/74/10 +f 71/76/10 72/83/10 69/77/10 +f 60/79/11 68/264/11 67/80/11 +f 58/82/12 66/90/12 65/74/12 +f 61/70/13 69/77/13 72/83/13 +f 63/85/14 71/92/14 70/86/14 +f 57/67/13 65/74/13 68/88/13 +f 59/81/14 67/80/14 66/90/14 +f 64/91/11 72/265/11 71/92/11 +f 62/87/12 70/86/12 69/77/12 +f 75/93/13 76/101/13 74/94/13 +f 78/96/14 80/100/14 79/97/14 +f 73/99/12 77/103/12 79/97/12 +f 75/93/10 79/97/10 80/100/10 +f 74/102/9 78/105/9 77/103/9 +f 76/104/11 80/266/11 78/105/11 +f 83/106/13 84/114/13 82/107/13 +f 86/109/14 88/113/14 87/110/14 +f 81/112/12 85/116/12 87/110/12 +f 83/106/10 87/110/10 88/113/10 +f 82/115/9 86/118/9 85/116/9 +f 84/117/11 88/267/11 86/118/11 +f 90/119/14 92/131/14 91/120/14 +f 95/122/13 96/130/13 93/123/13 +f 91/125/9 95/122/9 94/124/9 +f 102/127/14 104/136/14 103/128/14 +f 90/119/10 93/123/10 96/130/10 +f 99/132/13 100/137/13 98/133/13 +f 97/135/12 101/139/12 103/128/12 +f 99/132/10 103/128/10 104/136/10 +f 98/138/9 102/141/9 101/139/9 +f 100/140/11 104/268/11 102/141/11 +f 107/142/13 108/150/13 106/143/13 +f 110/145/14 112/149/14 111/146/14 +f 105/148/12 109/152/12 111/146/12 +f 107/142/10 111/146/10 112/149/10 +f 106/151/9 110/154/9 109/152/9 +f 108/153/11 112/269/11 110/154/11 +f 114/155/14 116/164/14 115/156/14 +f 119/158/13 120/163/13 117/159/13 +f 115/161/9 119/158/9 118/160/9 +f 114/155/10 117/159/10 120/163/10 +f 127/165/9 128/171/9 124/166/9 +f 125/168/10 126/172/10 121/169/10 +f 128/171/13 125/168/13 123/170/13 +f 126/172/14 127/270/14 122/173/14 +f 131/174/14 130/271/14 135/175/14 +f 129/177/13 132/180/13 134/178/13 +f 132/180/10 131/174/10 136/176/10 +f 130/181/9 129/177/9 133/179/9 +f 143/183/9 144/204/9 140/184/9 +f 141/186/10 142/205/10 137/187/10 +f 171/189/14 170/272/14 175/190/14 +f 169/192/13 172/225/13 174/193/13 +f 160/195/13 157/203/13 155/196/13 +f 158/198/14 159/273/14 154/199/14 +f 159/201/9 160/195/9 156/197/9 +f 157/203/10 158/198/10 153/200/10 +f 144/204/13 141/186/13 139/188/13 +f 142/205/14 143/274/14 138/206/14 +f 147/207/14 146/275/14 151/208/14 +f 145/210/13 148/213/13 150/211/13 +f 148/213/10 147/207/10 152/209/10 +f 146/214/9 145/210/9 149/212/9 +f 167/216/9 168/222/9 164/217/9 +f 165/219/10 166/223/10 161/220/10 +f 168/222/13 165/219/13 163/221/13 +f 166/223/14 167/276/14 162/224/14 +f 172/225/10 171/189/10 176/191/10 +f 170/226/9 169/192/9 173/194/9 +f 178/228/11 180/277/11 179/229/11 +f 183/231/12 184/278/12 182/232/12 +f 191/234/12 192/279/12 187/235/12 +f 185/237/11 190/280/11 189/238/11 +f 199/240/12 200/281/12 195/241/12 +f 193/243/11 198/282/11 197/244/11 +f 203/246/12 204/283/12 202/247/12 +f 206/249/11 208/284/11 207/250/11 +f 211/252/11 216/285/11 215/253/11 +f 213/255/12 214/286/12 209/256/12 +f 219/258/11 224/287/11 223/259/11 +f 221/261/12 222/288/12 217/262/12 o ABM_Pad v -1.000000 2.000000 1.000000 v 1.000000 2.000000 1.000000 @@ -478,6 +785,262 @@ v 0.562500 1.000000 0.937500 v 0.937500 1.000000 0.937500 v 0.562500 1.000000 0.562500 v 0.937500 1.000000 0.562500 +v -0.500000 1.000000 -1.250000 +v 0.500000 1.000000 -1.250000 +v -0.500000 1.000000 -1.750000 +v 0.500000 1.000000 -1.750000 +v -0.500000 1.500000 -1.625000 +v -0.500000 1.375000 -1.750000 +v -0.500000 1.375000 -1.250000 +v -0.500000 1.500000 -1.375000 +v 0.500000 1.500000 -1.375000 +v 0.500000 1.375000 -1.250000 +v 0.500000 1.375000 -1.750000 +v 0.500000 1.500000 -1.625000 +v 0.750000 1.750000 0.562500 +v 0.750000 1.000000 0.562500 +v 0.750000 1.750000 -0.562500 +v 0.750000 1.000000 -0.562500 +v 0.500000 1.000000 1.750000 +v 1.000000 1.000000 1.750000 +v 0.500000 1.000000 1.250000 +v 1.000000 1.000000 1.250000 +v -1.000000 1.000000 1.750000 +v -0.500000 1.000000 1.750000 +v -1.000000 1.000000 1.250000 +v -0.500000 1.000000 1.250000 +v 0.500000 11.000000 1.250000 +v 0.500000 11.000000 1.750000 +v 1.000000 11.000000 1.750000 +v 1.000000 11.000000 1.250000 +v -1.000000 11.000000 1.250000 +v -1.000000 11.000000 1.750000 +v -0.500000 11.000000 1.750000 +v -0.500000 11.000000 1.250000 +v -0.500000 10.750000 1.562500 +v 0.500000 10.000000 1.562500 +v -0.500000 11.000000 1.562500 +v 0.500000 10.250000 1.562500 +v -0.500000 1.250000 1.437500 +v 0.500000 2.000000 1.437500 +v -0.500000 1.000000 1.437500 +v 0.500000 1.750000 1.437500 +v 0.500000 1.250000 1.562500 +v -0.500000 2.000000 1.562500 +v 0.500000 1.000000 1.562500 +v -0.500000 1.750000 1.562500 +v -0.500000 4.750000 1.562500 +v 0.500000 4.000000 1.562500 +v -0.500000 5.000000 1.562500 +v 0.500000 4.250000 1.562500 +v 0.500000 4.750000 1.437500 +v -0.500000 4.000000 1.437500 +v 0.500000 5.000000 1.437500 +v -0.500000 4.250000 1.437500 +v -0.500000 2.500000 1.562500 +v 0.500000 1.750000 1.562500 +v -0.500000 2.750000 1.562500 +v 0.500000 2.000000 1.562500 +v 0.500000 2.500000 1.437500 +v -0.500000 1.750000 1.437500 +v 0.500000 2.750000 1.437500 +v -0.500000 2.000000 1.437500 +v -0.500000 2.750000 1.437500 +v 0.500000 3.500000 1.437500 +v -0.500000 2.500000 1.437500 +v 0.500000 3.250000 1.437500 +v 0.500000 2.750000 1.562500 +v -0.500000 3.500000 1.562500 +v 0.500000 2.500000 1.562500 +v -0.500000 3.250000 1.562500 +v -0.500000 3.500000 1.437500 +v 0.500000 4.250000 1.437500 +v -0.500000 3.250000 1.437500 +v 0.500000 4.000000 1.437500 +v 0.500000 3.500000 1.562500 +v -0.500000 4.250000 1.562500 +v 0.500000 3.250000 1.562500 +v -0.500000 4.000000 1.562500 +v -0.500000 7.000000 1.562500 +v 0.500000 6.250000 1.562500 +v -0.500000 7.250000 1.562500 +v 0.500000 6.500000 1.562500 +v 0.500000 7.000000 1.437500 +v -0.500000 6.250000 1.437500 +v 0.500000 7.250000 1.437500 +v -0.500000 6.500000 1.437500 +v 0.500000 10.750000 1.437500 +v -0.500000 10.000000 1.437500 +v 0.500000 11.000000 1.437500 +v -0.500000 10.250000 1.437500 +v -0.500000 6.250000 1.562500 +v 0.500000 5.500000 1.562500 +v -0.500000 6.500000 1.562500 +v 0.500000 5.750000 1.562500 +v 0.500000 6.250000 1.437500 +v -0.500000 5.500000 1.437500 +v 0.500000 6.500000 1.437500 +v -0.500000 5.750000 1.437500 +v -0.500000 5.000000 1.437500 +v 0.500000 5.750000 1.437500 +v -0.500000 4.750000 1.437500 +v 0.500000 5.500000 1.437500 +v 0.500000 5.000000 1.562500 +v -0.500000 5.750000 1.562500 +v 0.500000 4.750000 1.562500 +v -0.500000 5.500000 1.562500 +v -0.500000 7.250000 1.437500 +v 0.500000 8.000000 1.437500 +v -0.500000 7.000000 1.437500 +v 0.500000 7.750000 1.437500 +v 0.500000 7.250000 1.562500 +v -0.500000 8.000000 1.562500 +v 0.500000 7.000000 1.562500 +v -0.500000 7.750000 1.562500 +v -0.500000 8.500000 1.562500 +v 0.500000 7.750000 1.562500 +v -0.500000 8.750000 1.562500 +v 0.500000 8.000000 1.562500 +v 0.500000 8.500000 1.437500 +v -0.500000 7.750000 1.437500 +v 0.500000 8.750000 1.437500 +v -0.500000 8.000000 1.437500 +v -0.500000 8.750000 1.437500 +v 0.500000 9.500000 1.437500 +v -0.500000 8.500000 1.437500 +v 0.500000 9.250000 1.437500 +v 0.500000 8.750000 1.562500 +v -0.500000 9.500000 1.562500 +v 0.500000 8.500000 1.562500 +v -0.500000 9.250000 1.562500 +v -0.500000 9.500000 1.437500 +v 0.500000 10.250000 1.437500 +v -0.500000 9.250000 1.437500 +v 0.500000 10.000000 1.437500 +v 0.500000 9.500000 1.562500 +v -0.500000 10.250000 1.562500 +v 0.500000 9.250000 1.562500 +v -0.500000 10.000000 1.562500 +v -0.937500 1.000000 3.937500 +v -0.562500 1.000000 3.937500 +v -0.937500 1.000000 3.562500 +v -0.562500 1.000000 3.562500 +v -0.937500 2.812500 1.750000 +v -0.562500 2.812500 1.750000 +v -0.937500 3.187500 1.750000 +v -0.562500 3.187500 1.750000 +v 0.562500 1.000000 3.937500 +v 0.937500 1.000000 3.937500 +v 0.562500 1.000000 3.562500 +v 0.937500 1.000000 3.562500 +v 0.562500 2.812500 1.750000 +v 0.937500 2.812500 1.750000 +v 0.562500 3.187500 1.750000 +v 0.937500 3.187500 1.750000 +v -0.500000 10.750000 1.562500 +v 0.500000 10.000000 1.562500 +v -0.500000 11.000000 1.562500 +v 0.500000 10.250000 1.562500 +v -0.500000 1.250000 1.437500 +v 0.500000 2.000000 1.437500 +v -0.500000 1.000000 1.437500 +v 0.500000 1.750000 1.437500 +v 0.500000 1.250000 1.562500 +v -0.500000 2.000000 1.562500 +v 0.500000 1.000000 1.562500 +v -0.500000 1.750000 1.562500 +v -0.500000 4.750000 1.562500 +v 0.500000 4.000000 1.562500 +v -0.500000 5.000000 1.562500 +v 0.500000 4.250000 1.562500 +v 0.500000 4.750000 1.437500 +v -0.500000 4.000000 1.437500 +v 0.500000 5.000000 1.437500 +v -0.500000 4.250000 1.437500 +v -0.500000 2.500000 1.562500 +v 0.500000 1.750000 1.562500 +v -0.500000 2.750000 1.562500 +v 0.500000 2.000000 1.562500 +v 0.500000 2.500000 1.437500 +v -0.500000 1.750000 1.437500 +v 0.500000 2.750000 1.437500 +v -0.500000 2.000000 1.437500 +v -0.500000 2.750000 1.437500 +v 0.500000 3.500000 1.437500 +v -0.500000 2.500000 1.437500 +v 0.500000 3.250000 1.437500 +v 0.500000 2.750000 1.562500 +v -0.500000 3.500000 1.562500 +v 0.500000 2.500000 1.562500 +v -0.500000 3.250000 1.562500 +v -0.500000 3.500000 1.437500 +v 0.500000 4.250000 1.437500 +v -0.500000 3.250000 1.437500 +v 0.500000 4.000000 1.437500 +v 0.500000 3.500000 1.562500 +v -0.500000 4.250000 1.562500 +v 0.500000 3.250000 1.562500 +v -0.500000 4.000000 1.562500 +v -0.500000 7.000000 1.562500 +v 0.500000 6.250000 1.562500 +v -0.500000 7.250000 1.562500 +v 0.500000 6.500000 1.562500 +v 0.500000 7.000000 1.437500 +v -0.500000 6.250000 1.437500 +v 0.500000 7.250000 1.437500 +v -0.500000 6.500000 1.437500 +v 0.500000 10.750000 1.437500 +v -0.500000 10.000000 1.437500 +v 0.500000 11.000000 1.437500 +v -0.500000 10.250000 1.437500 +v -0.500000 6.250000 1.562500 +v 0.500000 5.500000 1.562500 +v -0.500000 6.500000 1.562500 +v 0.500000 5.750000 1.562500 +v 0.500000 6.250000 1.437500 +v -0.500000 5.500000 1.437500 +v 0.500000 6.500000 1.437500 +v -0.500000 5.750000 1.437500 +v -0.500000 5.000000 1.437500 +v 0.500000 5.750000 1.437500 +v -0.500000 4.750000 1.437500 +v 0.500000 5.500000 1.437500 +v 0.500000 5.000000 1.562500 +v -0.500000 5.750000 1.562500 +v 0.500000 4.750000 1.562500 +v -0.500000 5.500000 1.562500 +v -0.500000 7.250000 1.437500 +v 0.500000 8.000000 1.437500 +v -0.500000 7.000000 1.437500 +v 0.500000 7.750000 1.437500 +v 0.500000 7.250000 1.562500 +v -0.500000 8.000000 1.562500 +v 0.500000 7.000000 1.562500 +v -0.500000 7.750000 1.562500 +v -0.500000 8.500000 1.562500 +v 0.500000 7.750000 1.562500 +v -0.500000 8.750000 1.562500 +v 0.500000 8.000000 1.562500 +v 0.500000 8.500000 1.437500 +v -0.500000 7.750000 1.437500 +v 0.500000 8.750000 1.437500 +v -0.500000 8.000000 1.437500 +v -0.500000 8.750000 1.437500 +v 0.500000 9.500000 1.437500 +v -0.500000 8.500000 1.437500 +v 0.500000 9.250000 1.437500 +v 0.500000 8.750000 1.562500 +v -0.500000 9.500000 1.562500 +v 0.500000 8.500000 1.562500 +v -0.500000 9.250000 1.562500 +v -0.500000 9.500000 1.437500 +v 0.500000 10.250000 1.437500 +v -0.500000 9.250000 1.437500 +v 0.500000 10.000000 1.437500 +v 0.500000 9.500000 1.562500 +v -0.500000 10.250000 1.562500 +v 0.500000 9.250000 1.562500 +v -0.500000 10.000000 1.562500 v 0.562500 1.750000 -0.562500 v 0.937500 1.750000 -0.562500 v 0.562500 1.750000 -0.937500 @@ -502,170 +1065,394 @@ v -0.937500 1.000000 -0.562500 v -0.562500 1.000000 -0.562500 v -0.937500 1.000000 -0.937500 v -0.562500 1.000000 -0.937500 -v -0.500000 1.000000 -1.250000 -v 0.500000 1.000000 -1.250000 -v -0.500000 1.000000 -1.750000 -v 0.500000 1.000000 -1.750000 -v -0.500000 1.500000 -1.625000 -v -0.500000 1.375000 -1.750000 -v -0.500000 1.375000 -1.250000 -v -0.500000 1.500000 -1.375000 -v 0.500000 1.500000 -1.375000 -v 0.500000 1.375000 -1.250000 -v 0.500000 1.375000 -1.750000 -v 0.500000 1.500000 -1.625000 -v 0.750000 1.750000 0.562500 -v 0.750000 1.000000 0.562500 -v 0.750000 1.750000 -0.562500 -v 0.750000 1.000000 -0.562500 -v -0.750000 1.750000 0.562500 -v -0.750000 1.000000 0.562500 v -0.750000 1.750000 -0.562500 v -0.750000 1.000000 -0.562500 +v -0.750000 1.750000 0.562500 +v -0.750000 1.000000 0.562500 v 0.562500 1.750000 -0.750000 v 0.562500 1.000000 -0.750000 v -0.562500 1.750000 -0.750000 v -0.562500 1.000000 -0.750000 -v 0.562500 1.750000 0.750000 -v 0.562500 1.000000 0.750000 v -0.562500 1.750000 0.750000 v -0.562500 1.000000 0.750000 -v 0.500000 1.000000 1.750000 -v 1.000000 1.000000 1.750000 -v 0.500000 1.000000 1.250000 -v 1.000000 1.000000 1.250000 -v -1.000000 1.000000 1.750000 -v -0.500000 1.000000 1.750000 -v -1.000000 1.000000 1.250000 -v -0.500000 1.000000 1.250000 -v 0.500000 11.000000 1.250000 -v 0.500000 11.000000 1.750000 -v 1.000000 11.000000 1.750000 -v 1.000000 11.000000 1.250000 -v -1.000000 11.000000 1.250000 -v -1.000000 11.000000 1.750000 -v -0.500000 11.000000 1.750000 -v -0.500000 11.000000 1.250000 -v -0.500000 10.750000 1.562500 -v 0.500000 10.000000 1.562500 -v -0.500000 11.000000 1.562500 -v 0.500000 10.250000 1.562500 -v -0.500000 10.000000 1.562500 -v 0.500000 9.250000 1.562500 -v -0.500000 10.250000 1.562500 -v 0.500000 9.500000 1.562500 -v -0.500000 9.250000 1.562500 -v 0.500000 8.500000 1.562500 -v -0.500000 9.500000 1.562500 -v 0.500000 8.750000 1.562500 -v -0.500000 8.500000 1.562500 -v 0.500000 7.750000 1.562500 -v -0.500000 8.750000 1.562500 -v 0.500000 8.000000 1.562500 -v -0.500000 7.750000 1.562500 -v 0.500000 7.000000 1.562500 -v -0.500000 8.000000 1.562500 -v 0.500000 7.250000 1.562500 -v -0.500000 7.000000 1.562500 -v 0.500000 6.250000 1.562500 -v -0.500000 7.250000 1.562500 -v 0.500000 6.500000 1.562500 -v -0.500000 6.250000 1.562500 -v 0.500000 5.500000 1.562500 -v -0.500000 6.500000 1.562500 -v 0.500000 5.750000 1.562500 -v -0.500000 5.500000 1.562500 -v 0.500000 4.750000 1.562500 -v -0.500000 5.750000 1.562500 -v 0.500000 5.000000 1.562500 -v -0.500000 4.750000 1.562500 -v 0.500000 4.000000 1.562500 -v -0.500000 5.000000 1.562500 -v 0.500000 4.250000 1.562500 -v -0.500000 4.000000 1.562500 -v 0.500000 3.250000 1.562500 -v -0.500000 4.250000 1.562500 -v 0.500000 3.500000 1.562500 -v -0.500000 3.250000 1.562500 -v 0.500000 2.500000 1.562500 -v -0.500000 3.500000 1.562500 -v 0.500000 2.750000 1.562500 -v -0.500000 2.500000 1.562500 -v 0.500000 1.750000 1.562500 -v -0.500000 2.750000 1.562500 -v 0.500000 2.000000 1.562500 -v -0.500000 1.750000 1.562500 -v 0.500000 1.000000 1.562500 -v -0.500000 2.000000 1.562500 -v 0.500000 1.250000 1.562500 -v 0.500000 10.750000 1.437500 -v -0.500000 10.000000 1.437500 -v 0.500000 11.000000 1.437500 -v -0.500000 10.250000 1.437500 -v 0.500000 10.000000 1.437500 -v -0.500000 9.250000 1.437500 -v 0.500000 10.250000 1.437500 -v -0.500000 9.500000 1.437500 -v 0.500000 9.250000 1.437500 -v -0.500000 8.500000 1.437500 -v 0.500000 9.500000 1.437500 -v -0.500000 8.750000 1.437500 -v 0.500000 8.500000 1.437500 -v -0.500000 7.750000 1.437500 -v 0.500000 8.750000 1.437500 -v -0.500000 8.000000 1.437500 -v 0.500000 7.750000 1.437500 -v -0.500000 7.000000 1.437500 -v 0.500000 8.000000 1.437500 -v -0.500000 7.250000 1.437500 -v 0.500000 7.000000 1.437500 -v -0.500000 6.250000 1.437500 -v 0.500000 7.250000 1.437500 -v -0.500000 6.500000 1.437500 -v 0.500000 6.250000 1.437500 -v -0.500000 5.500000 1.437500 -v 0.500000 6.500000 1.437500 -v -0.500000 5.750000 1.437500 -v 0.500000 5.500000 1.437500 -v -0.500000 4.750000 1.437500 -v 0.500000 5.750000 1.437500 -v -0.500000 5.000000 1.437500 -v 0.500000 4.750000 1.437500 -v -0.500000 4.000000 1.437500 -v 0.500000 5.000000 1.437500 -v -0.500000 4.250000 1.437500 -v 0.500000 4.000000 1.437500 -v -0.500000 3.250000 1.437500 -v 0.500000 4.250000 1.437500 -v -0.500000 3.500000 1.437500 -v 0.500000 3.250000 1.437500 -v -0.500000 2.500000 1.437500 -v 0.500000 3.500000 1.437500 -v -0.500000 2.750000 1.437500 -v 0.500000 2.500000 1.437500 -v -0.500000 1.750000 1.437500 -v 0.500000 2.750000 1.437500 -v -0.500000 2.000000 1.437500 -v 0.500000 1.750000 1.437500 -v -0.500000 1.000000 1.437500 -v 0.500000 2.000000 1.437500 -v -0.500000 1.250000 1.437500 -v -0.937500 1.000000 3.937500 -v -0.562500 1.000000 3.937500 -v -0.937500 1.000000 3.562500 -v -0.562500 1.000000 3.562500 -v -0.937500 2.812500 1.750000 -v -0.562500 2.812500 1.750000 -v -0.937500 3.187500 1.750000 -v -0.562500 3.187500 1.750000 -v 0.562500 1.000000 3.937500 -v 0.937500 1.000000 3.937500 -v 0.562500 1.000000 3.562500 -v 0.937500 1.000000 3.562500 -v 0.562500 2.812500 1.750000 -v 0.937500 2.812500 1.750000 -v 0.562500 3.187500 1.750000 -v 0.937500 3.187500 1.750000 +v 0.562500 1.750000 0.750000 +v 0.562500 1.000000 0.750000 +vt 0.083333 0.250000 +vt 0.000000 0.386364 +vt 0.000000 0.204545 +vt 0.000000 0.000000 +vt 0.083333 0.136364 +vt 0.000000 0.181818 +vt 0.083333 0.340909 +vt 0.333333 0.386364 +vt 0.250000 0.340909 +vt 0.333333 0.204545 +vt 0.250000 0.250000 +vt 0.333333 -0.000000 +vt 0.083333 0.045455 +vt 0.333333 0.181818 +vt 0.250000 0.045455 +vt 0.250000 0.136364 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt -0.000000 0.204545 +vt 0.333333 0.181818 +vt 0.333333 0.204545 +vt -0.000000 0.204545 +vt 0.333333 0.181818 +vt 0.333333 0.204545 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt -0.000000 0.204545 +vt 0.333333 0.181818 +vt 0.333333 0.204545 +vt 0.083333 0.340909 +vt 0.250000 0.250000 +vt 0.250000 0.340909 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.208333 0.954545 +vt 0.145833 0.863636 +vt 0.208333 0.863636 +vt 0.083333 0.863636 +vt 0.125000 0.954545 +vt 0.083333 0.954545 +vt 0.000000 0.863636 +vt 0.062500 0.954545 +vt 0.000000 0.954545 +vt 0.125000 0.863636 +vt 0.062500 0.852273 +vt 0.062500 0.863636 +vt 0.145833 0.954545 +vt 0.145833 0.965909 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.333333 0.909091 +vt 0.416667 0.954545 +vt 0.333333 0.954545 +vt 0.333333 0.909091 +vt 0.416667 0.954545 +vt 0.333333 0.954545 +vt 0.666667 0.000000 +vt 0.583333 0.909091 +vt 0.583333 0.000000 +vt 0.416667 -0.000000 +vt 0.333333 -0.000000 +vt 0.583333 0.000000 +vt 0.500000 0.909091 +vt 0.500000 0.000000 +vt 0.416667 -0.000000 +vt 0.333333 -0.000000 +vt 0.500000 0.909091 +vt 0.500000 0.000000 +vt 0.416667 0.909091 +vt 0.666667 0.000000 +vt 0.583333 0.909091 +vt 0.416667 0.909091 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.062500 0.545455 +vt 0.000000 0.784091 +vt -0.000000 0.579545 +vt 0.125000 0.545455 +vt 0.062500 0.818182 +vt 0.250000 0.579545 +vt 0.187500 0.784091 +vt 0.187500 0.579545 +vt 0.125000 0.818182 +vt 0.062500 0.545455 +vt 0.000000 0.784091 +vt -0.000000 0.579545 +vt 0.125000 0.545455 +vt 0.062500 0.818182 +vt 0.250000 0.579545 +vt 0.187500 0.784091 +vt 0.187500 0.579545 +vt 0.125000 0.818182 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.083333 0.113636 +vt 0.083333 0.113636 +vt -0.000000 0.181818 +vt -0.000000 0.181818 +vt 0.083333 0.113636 +vt 0.083333 0.113636 +vt -0.000000 0.181818 +vt 0.083333 0.250000 +vt -0.000000 0.386364 +vt 0.062500 0.818182 +vt 0.145833 0.818182 +vt 0.145833 0.852273 +vt 0.145833 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.965909 +vt 0.187500 0.522727 +vt 0.666667 0.909091 +vt 0.666667 0.909091 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.250000 0.784091 +vt 0.250000 0.784091 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.386364 +vt -0.000000 0.386364 +vt -0.000000 0.386364 +vt 0.187500 0.522727 +vt 0.187500 0.522727 +vt 0.187500 0.522727 vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 vn 0.0000 0.0000 1.0000 @@ -676,186 +1463,238 @@ vn 0.0000 0.7071 0.7071 vn 0.0000 0.7071 -0.7071 vn 0.0000 -0.7071 -0.7071 s off -f 198//14 193//14 194//14 -f 202//15 207//15 203//15 -f 197//14 195//14 193//14 -f 199//14 196//14 195//14 -f 200//14 194//14 196//14 -f 201//15 206//15 202//15 -f 204//15 205//15 201//15 -f 203//15 208//15 204//15 -f 199//16 208//16 200//16 -f 198//17 206//17 197//17 -f 196//17 201//17 195//17 -f 193//16 203//16 194//16 -f 200//18 207//18 198//18 -f 197//19 205//19 199//19 -f 194//19 204//19 196//19 -f 195//18 202//18 193//18 -f 209//14 212//14 211//14 -f 214//19 220//19 216//19 -f 215//18 217//18 213//18 -f 216//17 219//17 215//17 -f 213//16 218//16 214//16 -f 222//19 228//19 224//19 -f 223//18 225//18 221//18 -f 224//17 227//17 223//17 -f 221//16 226//16 222//16 -f 230//19 236//19 232//19 -f 231//18 233//18 229//18 -f 232//17 235//17 231//17 -f 229//16 234//16 230//16 -f 238//19 244//19 240//19 -f 239//18 241//18 237//18 -f 240//17 243//17 239//17 -f 237//16 242//16 238//16 -f 247//17 255//17 248//17 -f 253//14 249//14 252//14 -f 246//16 251//16 245//16 -f 256//19 253//19 254//19 -f 254//20 252//20 251//20 -f 250//21 256//21 255//21 -f 252//18 249//18 250//18 -f 260//19 257//19 258//19 -f 261//18 264//18 262//18 -f 268//17 265//17 266//17 -f 269//16 272//16 270//16 -f 283//14 281//14 282//14 -f 287//14 285//14 286//14 -f 274//16 282//16 273//16 -f 280//19 287//19 278//19 -f 277//18 285//18 279//18 -f 276//19 283//19 274//19 -f 273//18 281//18 275//18 -f 279//17 288//17 280//17 -f 278//16 286//16 277//16 -f 275//17 284//17 276//17 -f 289//17 292//17 290//17 -f 293//17 296//17 294//17 -f 297//17 300//17 298//17 -f 301//17 304//17 302//17 -f 305//17 308//17 306//17 -f 309//17 312//17 310//17 -f 313//17 316//17 314//17 -f 317//17 320//17 318//17 -f 321//17 324//17 322//17 -f 325//17 328//17 326//17 -f 329//17 332//17 330//17 -f 333//17 336//17 334//17 -f 337//17 340//17 338//17 -f 341//17 344//17 343//17 -f 345//17 348//17 347//17 -f 349//17 352//17 351//17 -f 353//17 356//17 355//17 -f 357//17 360//17 359//17 -f 361//17 364//17 363//17 -f 365//17 368//17 367//17 -f 369//17 372//17 371//17 -f 373//17 376//17 375//17 -f 377//17 380//17 379//17 -f 381//17 384//17 383//17 -f 385//17 388//17 387//17 -f 389//17 392//17 391//17 -f 393//18 397//18 395//18 -f 394//20 399//20 393//20 -f 395//22 398//22 396//22 -f 396//19 400//19 394//19 -f 401//18 405//18 403//18 -f 402//20 407//20 401//20 -f 403//22 406//22 404//22 -f 404//19 408//19 402//19 -f 198//14 197//14 193//14 -f 202//15 206//15 207//15 -f 197//14 199//14 195//14 -f 199//14 200//14 196//14 -f 200//14 198//14 194//14 -f 201//15 205//15 206//15 -f 204//15 208//15 205//15 -f 203//15 207//15 208//15 -f 199//16 205//16 208//16 -f 198//17 207//17 206//17 -f 196//17 204//17 201//17 -f 193//16 202//16 203//16 -f 200//18 208//18 207//18 -f 197//19 206//19 205//19 -f 194//19 203//19 204//19 -f 195//18 201//18 202//18 -f 209//14 210//14 212//14 -f 214//19 218//19 220//19 -f 215//18 219//18 217//18 -f 216//17 220//17 219//17 -f 213//16 217//16 218//16 -f 222//19 226//19 228//19 -f 223//18 227//18 225//18 -f 224//17 228//17 227//17 -f 221//16 225//16 226//16 -f 230//19 234//19 236//19 -f 231//18 235//18 233//18 -f 232//17 236//17 235//17 -f 229//16 233//16 234//16 -f 238//19 242//19 244//19 -f 239//18 243//18 241//18 -f 240//17 244//17 243//17 -f 237//16 241//16 242//16 -f 247//17 250//17 255//17 -f 253//14 256//14 249//14 -f 246//16 254//16 251//16 -f 254//19 246//19 248//19 -f 248//19 255//19 254//19 -f 255//19 256//19 254//19 -f 254//20 253//20 252//20 -f 250//21 249//21 256//21 -f 250//18 247//18 245//18 -f 245//18 251//18 250//18 -f 251//18 252//18 250//18 -f 260//19 259//19 257//19 -f 261//18 263//18 264//18 -f 268//17 267//17 265//17 -f 269//16 271//16 272//16 -f 283//14 284//14 281//14 -f 287//14 288//14 285//14 -f 274//16 283//16 282//16 -f 280//19 288//19 287//19 -f 277//18 286//18 285//18 -f 276//19 284//19 283//19 -f 273//18 282//18 281//18 -f 279//17 285//17 288//17 -f 278//16 287//16 286//16 -f 275//17 281//17 284//17 -f 289//17 291//17 292//17 -f 293//17 295//17 296//17 -f 297//17 299//17 300//17 -f 301//17 303//17 304//17 -f 305//17 307//17 308//17 -f 309//17 311//17 312//17 -f 313//17 315//17 316//17 -f 317//17 319//17 320//17 -f 321//17 323//17 324//17 -f 325//17 327//17 328//17 -f 329//17 331//17 332//17 -f 333//17 335//17 336//17 -f 337//17 339//17 340//17 -f 341//17 342//17 344//17 -f 345//17 346//17 348//17 -f 349//17 350//17 352//17 -f 353//17 354//17 356//17 -f 357//17 358//17 360//17 -f 361//17 362//17 364//17 -f 365//17 366//17 368//17 -f 369//17 370//17 372//17 -f 373//17 374//17 376//17 -f 377//17 378//17 380//17 -f 381//17 382//17 384//17 -f 385//17 386//17 388//17 -f 389//17 390//17 392//17 -f 393//18 399//18 397//18 -f 394//20 400//20 399//20 -f 395//22 397//22 398//22 -f 396//19 398//19 400//19 -f 401//18 407//18 405//18 -f 402//20 408//20 407//20 -f 403//22 405//22 406//22 -f 404//19 406//19 408//19 +f 230/289/15 225/290/15 226/291/15 +f 234/292/16 239/293/16 235/294/16 +f 229/295/15 227/296/15 225/290/15 +f 231/297/15 228/298/15 227/296/15 +f 232/299/15 226/291/15 228/298/15 +f 233/300/16 238/301/16 234/292/16 +f 236/302/16 237/303/16 233/300/16 +f 235/294/16 240/304/16 236/302/16 +f 231/305/17 240/306/17 232/307/17 +f 230/308/18 238/309/18 229/310/18 +f 228/311/18 233/312/18 227/313/18 +f 225/314/17 235/315/17 226/316/17 +f 232/317/19 239/318/19 230/319/19 +f 229/320/20 237/321/20 231/322/20 +f 226/291/20 236/302/20 228/298/20 +f 227/323/19 234/324/19 225/325/19 +f 241/326/15 244/327/15 243/328/15 +f 246/329/20 252/330/20 248/331/20 +f 247/332/19 249/333/19 245/334/19 +f 248/331/18 251/335/18 247/336/18 +f 245/334/17 250/337/17 246/329/17 +f 255/338/18 263/339/18 256/340/18 +f 261/341/15 257/342/15 260/343/15 +f 254/344/17 259/345/17 253/346/17 +f 264/347/20 261/341/20 262/348/20 +f 262/349/21 260/343/21 259/345/21 +f 258/350/22 264/347/22 263/339/22 +f 260/343/19 257/342/19 258/351/19 +f 268/352/20 265/353/20 266/354/20 +f 279/355/15 277/356/15 278/357/15 +f 283/358/15 281/359/15 282/360/15 +f 270/361/17 278/362/17 269/363/17 +f 276/364/20 283/358/20 274/365/20 +f 273/366/19 281/367/19 275/368/19 +f 272/369/20 279/355/20 270/370/20 +f 269/363/19 277/371/19 271/372/19 +f 275/368/18 284/373/18 276/364/18 +f 274/374/17 282/375/17 273/366/17 +f 271/372/18 280/376/18 272/369/18 +f 285/377/18 288/378/18 286/379/18 +f 292/380/18 289/381/18 290/382/18 +f 296/383/18 293/384/18 295/385/18 +f 297/386/18 300/387/18 298/388/18 +f 301/389/18 304/390/18 303/391/18 +f 305/392/18 308/393/18 306/394/18 +f 309/395/18 312/396/18 311/397/18 +f 316/398/18 313/399/18 314/400/18 +f 320/401/18 317/402/18 319/403/18 +f 324/404/18 321/405/18 322/406/18 +f 328/407/18 325/408/18 327/409/18 +f 329/410/18 332/411/18 330/412/18 +f 333/413/18 336/414/18 335/415/18 +f 337/416/18 340/417/18 339/418/18 +f 341/419/18 344/420/18 342/421/18 +f 345/422/18 348/423/18 347/424/18 +f 352/425/18 349/426/18 350/427/18 +f 356/428/18 353/429/18 355/430/18 +f 360/431/18 357/432/18 358/433/18 +f 364/434/18 361/435/18 363/436/18 +f 365/437/18 368/438/18 366/439/18 +f 369/440/18 372/441/18 371/442/18 +f 376/443/18 373/444/18 374/445/18 +f 380/446/18 377/447/18 379/448/18 +f 384/449/18 381/450/18 382/451/18 +f 388/452/18 385/453/18 387/454/18 +f 389/455/19 393/456/19 391/457/19 +f 390/458/21 395/459/21 389/455/21 +f 391/460/23 394/461/23 392/462/23 +f 392/462/20 396/463/20 390/458/20 +f 397/464/19 401/465/19 399/466/19 +f 398/467/21 403/468/21 397/464/21 +f 399/469/23 402/470/23 400/471/23 +f 400/471/20 404/472/20 398/467/20 +f 405/473/17 408/474/17 407/475/17 +f 412/476/17 409/477/17 411/478/17 +f 416/479/17 413/480/17 414/481/17 +f 417/482/17 420/483/17 419/484/17 +f 421/485/17 424/486/17 422/487/17 +f 425/488/17 428/489/17 427/490/17 +f 429/491/17 432/492/17 430/493/17 +f 436/494/17 433/495/17 435/496/17 +f 440/497/17 437/498/17 438/499/17 +f 444/500/17 441/501/17 443/502/17 +f 448/503/17 445/504/17 446/505/17 +f 449/506/17 452/507/17 451/508/17 +f 453/509/17 456/510/17 454/511/17 +f 457/512/17 460/513/17 458/514/17 +f 461/515/17 464/516/17 463/517/17 +f 465/518/17 468/519/17 466/520/17 +f 472/521/17 469/522/17 471/523/17 +f 476/524/17 473/525/17 474/526/17 +f 480/527/17 477/528/17 479/529/17 +f 484/530/17 481/531/17 482/532/17 +f 485/533/17 488/534/17 487/535/17 +f 489/536/17 492/537/17 490/538/17 +f 496/539/17 493/540/17 495/541/17 +f 500/542/17 497/543/17 498/544/17 +f 504/545/17 501/546/17 503/547/17 +f 508/548/17 505/549/17 506/550/17 +f 510/551/20 516/552/20 512/553/20 +f 511/554/19 513/555/19 509/556/19 +f 512/553/18 515/557/18 511/558/18 +f 509/556/17 514/559/17 510/551/17 +f 518/560/20 524/561/20 520/562/20 +f 519/563/19 521/564/19 517/565/19 +f 520/562/18 523/566/18 519/567/18 +f 517/565/17 522/568/17 518/560/17 +f 526/569/20 532/570/20 528/571/20 +f 527/572/19 529/573/19 525/574/19 +f 528/571/18 531/575/18 527/576/18 +f 525/574/17 530/577/17 526/569/17 +f 536/578/19 533/579/19 534/580/19 +f 540/581/18 537/582/18 538/583/18 +f 544/584/17 541/585/17 542/586/17 +f 230/289/15 229/295/15 225/290/15 +f 234/292/16 238/301/16 239/293/16 +f 229/295/15 231/297/15 227/296/15 +f 231/297/15 232/299/15 228/298/15 +f 232/299/15 230/289/15 226/291/15 +f 233/300/16 237/303/16 238/301/16 +f 236/302/16 240/304/16 237/303/16 +f 235/294/16 239/293/16 240/304/16 +f 231/305/17 237/587/17 240/306/17 +f 230/308/18 239/588/18 238/309/18 +f 228/311/18 236/589/18 233/312/18 +f 225/314/17 234/590/17 235/315/17 +f 232/317/19 240/591/19 239/318/19 +f 229/320/20 238/592/20 237/321/20 +f 226/291/20 235/294/20 236/302/20 +f 227/323/19 233/593/19 234/324/19 +f 241/326/15 242/594/15 244/327/15 +f 246/329/20 250/337/20 252/330/20 +f 247/332/19 251/595/19 249/333/19 +f 248/331/18 252/330/18 251/335/18 +f 245/334/17 249/333/17 250/337/17 +f 255/338/18 258/350/18 263/339/18 +f 261/341/15 264/347/15 257/342/15 +f 254/344/17 262/349/17 259/345/17 +f 262/348/20 254/596/20 256/597/20 +f 256/597/20 263/598/20 262/348/20 +f 263/598/20 264/347/20 262/348/20 +f 262/349/21 261/341/21 260/343/21 +f 258/350/22 257/342/22 264/347/22 +f 258/351/19 255/599/19 253/600/19 +f 253/600/19 259/601/19 258/351/19 +f 259/601/19 260/343/19 258/351/19 +f 268/352/20 267/602/20 265/353/20 +f 279/355/15 280/376/15 277/356/15 +f 283/358/15 284/373/15 281/359/15 +f 270/361/17 279/603/17 278/362/17 +f 276/364/20 284/373/20 283/358/20 +f 273/366/19 282/375/19 281/367/19 +f 272/369/20 280/376/20 279/355/20 +f 269/363/19 278/362/19 277/371/19 +f 275/368/18 281/367/18 284/373/18 +f 274/374/17 283/604/17 282/375/17 +f 271/372/18 277/371/18 280/376/18 +f 285/377/18 287/605/18 288/378/18 +f 292/380/18 291/606/18 289/381/18 +f 296/383/18 294/607/18 293/384/18 +f 297/386/18 299/608/18 300/387/18 +f 301/389/18 302/609/18 304/390/18 +f 305/392/18 307/610/18 308/393/18 +f 309/395/18 310/611/18 312/396/18 +f 316/398/18 315/612/18 313/399/18 +f 320/401/18 318/613/18 317/402/18 +f 324/404/18 323/614/18 321/405/18 +f 328/407/18 326/615/18 325/408/18 +f 329/410/18 331/616/18 332/411/18 +f 333/413/18 334/617/18 336/414/18 +f 337/416/18 338/618/18 340/417/18 +f 341/419/18 343/619/18 344/420/18 +f 345/422/18 346/620/18 348/423/18 +f 352/425/18 351/621/18 349/426/18 +f 356/428/18 354/622/18 353/429/18 +f 360/431/18 359/623/18 357/432/18 +f 364/434/18 362/624/18 361/435/18 +f 365/437/18 367/625/18 368/438/18 +f 369/440/18 370/626/18 372/441/18 +f 376/443/18 375/627/18 373/444/18 +f 380/446/18 378/628/18 377/447/18 +f 384/449/18 383/629/18 381/450/18 +f 388/452/18 386/630/18 385/453/18 +f 389/455/19 395/459/19 393/456/19 +f 390/458/21 396/463/21 395/459/21 +f 391/460/23 393/631/23 394/461/23 +f 392/462/20 394/461/20 396/463/20 +f 397/464/19 403/468/19 401/465/19 +f 398/467/21 404/472/21 403/468/21 +f 399/469/23 401/632/23 402/470/23 +f 400/471/20 402/470/20 404/472/20 +f 405/473/17 406/633/17 408/474/17 +f 412/476/17 410/634/17 409/477/17 +f 416/479/17 415/635/17 413/480/17 +f 417/482/17 418/636/17 420/483/17 +f 421/485/17 423/637/17 424/486/17 +f 425/488/17 426/638/17 428/489/17 +f 429/491/17 431/639/17 432/492/17 +f 436/494/17 434/640/17 433/495/17 +f 440/497/17 439/641/17 437/498/17 +f 444/500/17 442/642/17 441/501/17 +f 448/503/17 447/643/17 445/504/17 +f 449/506/17 450/644/17 452/507/17 +f 453/509/17 455/645/17 456/510/17 +f 457/512/17 459/646/17 460/513/17 +f 461/515/17 462/647/17 464/516/17 +f 465/518/17 467/648/17 468/519/17 +f 472/521/17 470/649/17 469/522/17 +f 476/524/17 475/650/17 473/525/17 +f 480/527/17 478/651/17 477/528/17 +f 484/530/17 483/652/17 481/531/17 +f 485/533/17 486/653/17 488/534/17 +f 489/536/17 491/654/17 492/537/17 +f 496/539/17 494/655/17 493/540/17 +f 500/542/17 499/656/17 497/543/17 +f 504/545/17 502/657/17 501/546/17 +f 508/548/17 507/658/17 505/549/17 +f 510/551/20 514/559/20 516/552/20 +f 511/554/19 515/659/19 513/555/19 +f 512/553/18 516/552/18 515/557/18 +f 509/556/17 513/555/17 514/559/17 +f 518/560/20 522/568/20 524/561/20 +f 519/563/19 523/660/19 521/564/19 +f 520/562/18 524/561/18 523/566/18 +f 517/565/17 521/564/17 522/568/17 +f 526/569/20 530/577/20 532/570/20 +f 527/572/19 531/661/19 529/573/19 +f 528/571/18 532/570/18 531/575/18 +f 525/574/17 529/573/17 530/577/17 +f 536/578/19 535/662/19 533/579/19 +f 540/581/18 539/663/18 537/582/18 +f 544/584/17 543/664/17 541/585/17 o Atlas_Rope v -2.116117 11.000000 2.292893 v -2.292893 11.000000 2.116117 @@ -883,6 +1722,51 @@ v 0.005204 14.250000 0.171573 v -0.171573 14.250000 -0.005204 v -0.171573 14.250000 0.348350 v -0.348350 14.250000 0.171573 +vt 0.897436 0.395161 +vt 0.884615 0.346774 +vt 0.897436 0.346774 +vt 0.846154 -0.000000 +vt 0.858974 0.338710 +vt 0.846154 0.338710 +vt 0.884615 -0.000000 +vt 0.871795 0.338710 +vt 0.871795 -0.000000 +vt 0.858974 -0.000000 +vt 0.897436 -0.000000 +vt 0.884615 0.338710 +vt 0.858974 0.451613 +vt 0.846154 0.467742 +vt 0.846154 0.451613 +vt 0.858974 0.403226 +vt 0.846154 0.346774 +vt 0.884615 0.395161 +vt 0.871795 0.451613 +vt 0.897436 0.403226 +vt 0.884615 0.451613 +vt 0.884615 0.403226 +vt 0.871795 0.403226 +vt 0.871795 0.467742 +vt 0.884615 0.532258 +vt 0.897436 0.467742 +vt 0.897436 0.532258 +vt 0.884615 0.629032 +vt 0.897436 0.629032 +vt 0.871795 0.629032 +vt 0.858974 0.629032 +vt 0.871795 0.532258 +vt 0.846154 0.629032 +vt 0.858974 0.532258 +vt 0.884615 0.467742 +vt 0.858974 0.467742 +vt 0.871795 0.467742 +vt 0.846154 0.532258 +vt 0.897436 0.338710 +vt 0.846154 0.403226 +vt 0.846154 0.395161 +vt 0.897436 0.451613 +vt 0.884615 0.467742 +vt 0.858974 0.467742 +vt 0.846154 0.467742 vn 0.5000 -0.7071 -0.5000 vn -0.7071 -0.0000 -0.7071 vn 0.7071 -0.0000 0.7071 @@ -896,50 +1780,50 @@ vn 0.7071 0.0000 -0.7071 vn -0.7071 0.0000 0.7071 vn -0.5000 -0.7071 0.5000 s off -f 418//23 413//23 414//23 -f 410//24 416//24 414//24 -f 409//25 415//25 411//25 -f 411//26 416//26 412//26 -f 410//27 413//27 409//27 -f 421//24 424//24 426//24 -f 420//24 414//24 416//24 -f 415//28 420//28 416//28 -f 417//25 415//25 413//25 -f 420//29 422//29 421//29 -f 418//30 425//30 417//30 -f 425//25 422//25 419//25 -f 423//31 421//31 422//31 -f 428//24 434//24 430//24 -f 424//24 430//24 426//24 -f 423//32 428//32 424//32 -f 425//25 427//25 423//25 -f 426//33 429//33 425//33 -f 427//31 432//31 428//31 -f 427//25 433//25 431//25 -f 430//34 433//34 429//34 -f 418//23 417//23 413//23 -f 410//24 412//24 416//24 -f 409//25 413//25 415//25 -f 411//26 415//26 416//26 -f 410//27 414//27 413//27 -f 426//24 418//24 420//24 -f 420//24 421//24 426//24 -f 420//24 418//24 414//24 -f 415//28 419//28 420//28 -f 417//25 419//25 415//25 -f 420//29 419//29 422//29 -f 418//30 426//30 425//30 -f 419//25 417//25 425//25 -f 425//25 423//25 422//25 -f 423//31 424//31 421//31 -f 428//24 432//24 434//24 -f 424//24 428//24 430//24 -f 423//32 427//32 428//32 -f 425//25 429//25 427//25 -f 426//33 430//33 429//33 -f 427//31 431//31 432//31 -f 427//25 429//25 433//25 -f 430//34 434//34 433//34 +f 554/665/24 549/666/24 550/667/24 +f 546/668/25 552/669/25 550/670/25 +f 545/671/26 551/672/26 547/673/26 +f 547/673/27 552/669/27 548/674/27 +f 546/675/28 549/676/28 545/671/28 +f 557/677/25 560/678/25 562/679/25 +f 556/680/25 550/681/25 552/669/25 +f 551/672/29 556/680/29 552/669/29 +f 553/682/26 551/672/26 549/666/26 +f 556/680/30 558/683/30 557/677/30 +f 554/684/31 561/685/31 553/686/31 +f 561/685/26 558/683/26 555/687/26 +f 559/688/32 557/677/32 558/683/32 +f 564/689/25 570/690/25 566/691/25 +f 560/692/25 566/691/25 562/693/25 +f 559/694/33 564/689/33 560/692/33 +f 561/695/26 563/696/26 559/694/26 +f 562/697/34 565/698/34 561/695/34 +f 563/696/32 568/699/32 564/689/32 +f 563/696/26 569/700/26 567/701/26 +f 566/702/35 569/700/35 565/698/35 +f 554/665/24 553/682/24 549/666/24 +f 546/668/25 548/674/25 552/669/25 +f 545/671/26 549/676/26 551/672/26 +f 547/673/27 551/672/27 552/669/27 +f 546/675/28 550/703/28 549/676/28 +f 562/679/25 554/704/25 556/680/25 +f 556/680/25 557/677/25 562/679/25 +f 556/680/25 554/705/25 550/681/25 +f 551/672/29 555/687/29 556/680/29 +f 553/682/26 555/687/26 551/672/26 +f 556/680/30 555/687/30 558/683/30 +f 554/684/31 562/706/31 561/685/31 +f 555/687/26 553/686/26 561/685/26 +f 561/685/26 559/707/26 558/683/26 +f 559/688/32 560/708/32 557/677/32 +f 564/689/25 568/699/25 570/690/25 +f 560/692/25 564/689/25 566/691/25 +f 559/694/33 563/696/33 564/689/33 +f 561/695/26 565/698/26 563/696/26 +f 562/697/34 566/702/34 565/698/34 +f 563/696/32 567/701/32 568/699/32 +f 563/696/26 565/698/26 569/700/26 +f 566/702/35 570/709/35 569/700/35 o Atlas_Pivot v 0.750000 1.500000 -3.750000 v 1.250000 1.500000 -3.750000 @@ -1013,14 +1897,158 @@ v -1.000000 3.000000 -2.750000 v -1.000000 2.500000 -2.750000 v -1.000000 3.000000 -3.750000 v -1.000000 2.500000 -3.750000 -v 0.750000 3.000000 -4.250000 -v 0.750000 2.500000 -4.250000 -v -0.750000 3.000000 -4.250000 -v -0.750000 2.500000 -4.250000 -v 0.750000 3.000000 -2.250000 -v 0.750000 2.500000 -2.250000 -v -0.750000 3.000000 -2.250000 -v -0.750000 2.500000 -2.250000 +v 0.750000 3.000000 -4.000000 +v 0.750000 2.500000 -4.000000 +v -0.750000 3.000000 -4.000000 +v -0.750000 2.500000 -4.000000 +v 0.750000 3.000000 -2.500000 +v 0.750000 2.500000 -2.500000 +v -0.750000 3.000000 -2.500000 +v -0.750000 2.500000 -2.500000 +v 1.000000 3.000000 -2.750000 +v 1.000000 2.500000 -2.750000 +v 1.000000 3.000000 -3.750000 +v 1.000000 2.500000 -3.750000 +v -1.000000 3.000000 -2.750000 +v -1.000000 2.500000 -2.750000 +v -1.000000 3.000000 -3.750000 +v -1.000000 2.500000 -3.750000 +v 0.750000 3.000000 -4.000000 +v 0.750000 2.500000 -4.000000 +v -0.750000 3.000000 -4.000000 +v -0.750000 2.500000 -4.000000 +v 0.750000 3.000000 -2.500000 +v 0.750000 2.500000 -2.500000 +v -0.750000 3.000000 -2.500000 +v -0.750000 2.500000 -2.500000 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.692308 0.870968 +vt 0.717949 0.903226 +vt 0.692308 0.903226 +vt 0.692308 0.870968 +vt 0.717949 0.903226 +vt 0.692308 0.903226 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.769231 0.709677 +vt 0.743590 0.838710 +vt 0.743590 0.709677 +vt 0.717949 0.709677 +vt 0.692308 0.838710 +vt 0.692308 0.709677 +vt 0.769231 0.709677 +vt 0.743590 0.838710 +vt 0.743590 0.709677 +vt 0.794872 0.709677 +vt 0.769231 0.838710 +vt 0.717949 0.709677 +vt 0.794872 0.709677 +vt 0.769231 0.838710 +vt 0.692308 0.838710 +vt 0.692308 0.709677 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.794872 0.741935 +vt 0.769231 0.838710 +vt 0.769231 0.741935 +vt 0.743590 0.741935 +vt 0.717949 0.741935 +vt 0.794872 0.741935 +vt 0.769231 0.838710 +vt 0.769231 0.741935 +vt 0.743590 0.741935 +vt 0.717949 0.741935 +vt 0.692308 0.838710 +vt 0.692308 0.741935 +vt 0.743590 0.838710 +vt 0.692308 0.838710 +vt 0.692308 0.741935 +vt 0.743590 0.838710 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.743590 0.870968 +vt 0.794872 0.903226 +vt 0.743590 0.903226 +vt 0.743590 0.903226 +vt 0.794872 0.870968 +vt 0.794872 0.903226 +vt 0.717949 0.838710 +vt 0.794872 0.870968 +vt 0.717949 0.870968 +vt 0.717949 0.870968 +vt 0.794872 0.838710 +vt 0.794872 0.870968 +vt 0.794872 0.903226 +vt 0.743590 0.870968 +vt 0.743590 0.903226 +vt 0.794872 0.870968 +vt 0.743590 0.903226 +vt 0.794872 0.903226 +vt 0.794872 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.794872 0.838710 +vt 0.717949 0.870968 +vt 0.794872 0.870968 +vt 0.717949 0.870968 +vt 0.717949 0.870968 +vt 0.794872 0.838710 +vt 0.794872 0.838710 +vt 0.794872 0.838710 +vt 0.794872 0.838710 +vt 0.692308 0.967742 +vt 0.692308 0.967742 +vt 0.692308 0.967742 +vt 0.692308 0.967742 +vt 0.794872 0.870968 +vt 0.743590 0.870968 +vt 0.794872 0.838710 +vt 0.717949 0.838710 +vt 0.794872 0.870968 +vt 0.743590 0.870968 +vt 0.794872 0.838710 +vt 0.717949 0.838710 vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 -1.0000 0.0000 @@ -1028,90 +2056,98 @@ vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 s off -f 474//35 468//35 470//35 -f 472//36 467//36 468//36 -f 445//37 444//37 443//37 -f 449//37 448//37 447//37 -f 453//38 451//38 452//38 -f 457//38 455//38 456//38 -f 440//36 456//36 439//36 -f 437//39 454//39 438//39 -f 436//36 452//36 435//36 -f 442//35 457//35 440//35 -f 439//40 455//40 441//40 -f 438//35 453//35 436//35 -f 435//40 451//40 437//40 -f 441//39 458//39 442//39 -f 461//38 459//38 460//38 -f 465//38 463//38 464//38 -f 450//35 465//35 448//35 -f 447//40 463//40 449//40 -f 446//35 461//35 444//35 -f 443//40 459//40 445//40 -f 449//39 466//39 450//39 -f 448//36 464//36 447//36 -f 445//39 462//39 446//39 -f 444//36 460//36 443//36 -f 471//40 469//40 467//40 -f 473//39 470//39 469//39 -f 482//35 476//35 478//35 -f 480//36 475//36 476//36 -f 479//40 477//40 475//40 -f 481//39 478//39 477//39 -f 490//35 484//35 486//35 -f 488//36 483//36 484//36 -f 487//40 485//40 483//40 -f 489//39 486//39 485//39 -f 498//35 492//35 494//35 -f 496//36 491//36 492//36 -f 495//40 493//40 491//40 -f 497//39 494//39 493//39 -f 500//35 501//35 499//35 -f 505//40 504//40 503//40 -f 508//39 509//39 507//39 -f 513//36 512//36 511//36 -f 474//35 472//35 468//35 -f 472//36 471//36 467//36 -f 445//37 446//37 444//37 -f 449//37 450//37 448//37 -f 453//38 454//38 451//38 -f 457//38 458//38 455//38 -f 440//36 457//36 456//36 -f 437//39 451//39 454//39 -f 436//36 453//36 452//36 -f 442//35 458//35 457//35 -f 439//40 456//40 455//40 -f 438//35 454//35 453//35 -f 435//40 452//40 451//40 -f 441//39 455//39 458//39 -f 461//38 462//38 459//38 -f 465//38 466//38 463//38 -f 450//35 466//35 465//35 -f 447//40 464//40 463//40 -f 446//35 462//35 461//35 -f 443//40 460//40 459//40 -f 449//39 463//39 466//39 -f 448//36 465//36 464//36 -f 445//39 459//39 462//39 -f 444//36 461//36 460//36 -f 471//40 473//40 469//40 -f 473//39 474//39 470//39 -f 482//35 480//35 476//35 -f 480//36 479//36 475//36 -f 479//40 481//40 477//40 -f 481//39 482//39 478//39 -f 490//35 488//35 484//35 -f 488//36 487//36 483//36 -f 487//40 489//40 485//40 -f 489//39 490//39 486//39 -f 498//35 496//35 492//35 -f 496//36 495//36 491//36 -f 495//40 497//40 493//40 -f 497//39 498//39 494//39 -f 500//35 502//35 501//35 -f 505//40 506//40 504//40 -f 508//39 510//39 509//39 -f 513//36 514//36 512//36 +f 610/710/36 604/711/36 606/712/36 +f 608/713/37 603/714/37 604/711/37 +f 581/715/38 580/716/38 579/717/38 +f 585/718/38 584/719/38 583/720/38 +f 589/721/39 587/722/39 588/723/39 +f 593/724/39 591/725/39 592/726/39 +f 576/727/37 592/728/37 575/729/37 +f 573/730/40 590/731/40 574/732/40 +f 572/733/37 588/734/37 571/735/37 +f 578/736/36 593/737/36 576/727/36 +f 575/729/41 591/725/41 577/738/41 +f 574/739/36 589/740/36 572/733/36 +f 571/735/41 587/722/41 573/730/41 +f 577/738/40 594/741/40 578/742/40 +f 597/743/39 595/744/39 596/745/39 +f 601/746/39 599/747/39 600/748/39 +f 586/749/36 601/750/36 584/751/36 +f 583/752/41 599/747/41 585/753/41 +f 582/754/36 597/755/36 580/756/36 +f 579/757/41 595/744/41 581/758/41 +f 585/753/40 602/759/40 586/760/40 +f 584/751/37 600/761/37 583/752/37 +f 581/758/40 598/762/40 582/763/40 +f 580/756/37 596/764/37 579/757/37 +f 607/765/41 605/766/41 603/714/41 +f 609/767/40 606/768/40 605/766/40 +f 618/769/36 612/770/36 614/771/36 +f 616/772/37 611/773/37 612/770/37 +f 615/774/41 613/775/41 611/773/41 +f 617/776/40 614/777/40 613/775/40 +f 626/778/36 620/779/36 622/780/36 +f 624/781/37 619/782/37 620/779/37 +f 623/783/41 621/784/41 619/782/41 +f 625/785/40 622/786/40 621/784/40 +f 634/787/36 628/788/36 630/789/36 +f 632/790/37 627/791/37 628/788/37 +f 631/792/41 629/793/41 627/791/41 +f 633/794/40 630/795/40 629/793/40 +f 636/796/36 637/797/36 635/798/36 +f 641/799/41 640/800/41 639/801/41 +f 644/802/40 645/803/40 643/804/40 +f 649/805/37 648/806/37 647/807/37 +f 653/808/41 652/809/41 651/810/41 +f 656/811/36 657/812/36 655/813/36 +f 661/814/37 660/815/37 659/816/37 +f 664/817/40 665/818/40 663/819/40 +f 610/710/36 608/713/36 604/711/36 +f 608/713/37 607/765/37 603/714/37 +f 581/715/38 582/820/38 580/716/38 +f 585/718/38 586/821/38 584/719/38 +f 589/721/39 590/731/39 587/722/39 +f 593/724/39 594/741/39 591/725/39 +f 576/727/37 593/737/37 592/728/37 +f 573/730/40 587/722/40 590/731/40 +f 572/733/37 589/740/37 588/734/37 +f 578/736/36 594/822/36 593/737/36 +f 575/729/41 592/728/41 591/725/41 +f 574/739/36 590/823/36 589/740/36 +f 571/735/41 588/734/41 587/722/41 +f 577/738/40 591/725/40 594/741/40 +f 597/743/39 598/762/39 595/744/39 +f 601/746/39 602/759/39 599/747/39 +f 586/749/36 602/824/36 601/750/36 +f 583/752/41 600/761/41 599/747/41 +f 582/754/36 598/825/36 597/755/36 +f 579/757/41 596/764/41 595/744/41 +f 585/753/40 599/747/40 602/759/40 +f 584/751/37 601/750/37 600/761/37 +f 581/758/40 595/744/40 598/762/40 +f 580/756/37 597/755/37 596/764/37 +f 607/765/41 609/767/41 605/766/41 +f 609/767/40 610/826/40 606/768/40 +f 618/769/36 616/772/36 612/770/36 +f 616/772/37 615/774/37 611/773/37 +f 615/774/41 617/776/41 613/775/41 +f 617/776/40 618/827/40 614/777/40 +f 626/778/36 624/781/36 620/779/36 +f 624/781/37 623/783/37 619/782/37 +f 623/783/41 625/785/41 621/784/41 +f 625/785/40 626/828/40 622/786/40 +f 634/787/36 632/790/36 628/788/36 +f 632/790/37 631/792/37 627/791/37 +f 631/792/41 633/794/41 629/793/41 +f 633/794/40 634/829/40 630/795/40 +f 636/796/36 638/830/36 637/797/36 +f 641/799/41 642/831/41 640/800/41 +f 644/802/40 646/832/40 645/803/40 +f 649/805/37 650/833/37 648/806/37 +f 653/808/41 654/834/41 652/809/41 +f 656/811/36 658/835/36 657/812/36 +f 661/814/37 662/836/37 660/815/37 +f 664/817/40 666/837/40 665/818/40 o Atlas_Erector v 0.750000 3.500000 -4.250000 v 0.750000 3.500000 -3.750000 @@ -1153,30 +2189,30 @@ v 0.750000 12.250000 -2.750000 v 0.750000 12.250000 -2.250000 v -0.750000 12.250000 -2.250000 v -0.750000 12.250000 -2.750000 -v 0.750000 12.750000 -1.375000 -v -0.750000 12.750000 -1.375000 -v 0.750000 12.250000 -1.375000 -v -0.750000 12.250000 -1.375000 -v 0.750000 12.750000 -1.125000 -v -0.750000 12.750000 -1.125000 -v 0.750000 12.250000 -1.125000 -v -0.750000 12.250000 -1.125000 -v -1.375000 12.749999 -0.750000 +v 0.625000 12.750000 -1.375000 +v -0.625000 12.750000 -1.375000 +v 0.625000 12.250000 -1.375000 +v -0.625000 12.250000 -1.375000 +v 0.625000 12.750000 -1.125000 +v -0.625000 12.750000 -1.125000 +v 0.625000 12.250000 -1.125000 +v -0.625000 12.250000 -1.125000 +v -1.375000 12.749999 -0.625000 v -1.375000 12.749999 0.250000 -v -1.375000 12.249999 -0.750000 +v -1.375000 12.249999 -0.625000 v -1.375000 12.249999 0.250000 -v -1.125000 12.749999 -0.750000 +v -1.125000 12.749999 -0.625000 v -1.125000 12.749999 0.250000 -v -1.125000 12.249999 -0.750000 +v -1.125000 12.249999 -0.625000 v -1.125000 12.249999 0.250000 v 1.375000 12.749999 0.250000 -v 1.375000 12.749999 -0.750000 +v 1.375000 12.749999 -0.625000 v 1.375000 12.249999 0.250000 -v 1.375000 12.249999 -0.750000 +v 1.375000 12.249999 -0.625000 v 1.125000 12.749999 0.250000 -v 1.125000 12.749999 -0.750000 +v 1.125000 12.749999 -0.625000 v 1.125000 12.249999 0.250000 -v 1.125000 12.249999 -0.750000 +v 1.125000 12.249999 -0.625000 v 0.750000 12.750000 -4.250000 v 0.750000 12.750000 -3.750000 v -0.750000 12.750000 -3.750000 @@ -1209,30 +2245,30 @@ v 0.750000 8.250000 -2.750000 v 0.750000 8.250000 -2.250000 v -0.750000 8.250000 -2.250000 v -0.750000 8.250000 -2.750000 -v 0.750000 8.750000 -1.625000 -v -0.750000 8.750000 -1.625000 -v 0.750000 8.250000 -1.625000 -v -0.750000 8.250000 -1.625000 -v 0.750000 8.750000 -1.375000 -v -0.750000 8.750000 -1.375000 -v 0.750000 8.250000 -1.375000 -v -0.750000 8.250000 -1.375000 -v -1.375000 8.749999 -1.000000 +v 0.625000 8.750000 -1.625000 +v -0.625000 8.750000 -1.625000 +v 0.625000 8.250000 -1.625000 +v -0.625000 8.250000 -1.625000 +v 0.625000 8.750000 -1.375000 +v -0.625000 8.750000 -1.375000 +v 0.625000 8.250000 -1.375000 +v -0.625000 8.250000 -1.375000 +v -1.375000 8.749999 -0.875000 v -1.375000 8.749999 0.250000 -v -1.375000 8.249999 -1.000000 +v -1.375000 8.249999 -0.875000 v -1.375000 8.249999 0.250000 -v -1.125000 8.749999 -1.000000 +v -1.125000 8.749999 -0.875000 v -1.125000 8.749999 0.250000 -v -1.125000 8.249999 -1.000000 +v -1.125000 8.249999 -0.875000 v -1.125000 8.249999 0.250000 v 1.375000 8.749999 0.250000 -v 1.375000 8.749999 -1.000000 +v 1.375000 8.749999 -0.875000 v 1.375000 8.249999 0.250000 -v 1.375000 8.249999 -1.000000 +v 1.375000 8.249999 -0.875000 v 1.125000 8.749999 0.250000 -v 1.125000 8.749999 -1.000000 +v 1.125000 8.749999 -0.875000 v 1.125000 8.249999 0.250000 -v 1.125000 8.249999 -1.000000 +v 1.125000 8.249999 -0.875000 v 0.750000 8.750000 -4.250000 v 0.750000 8.750000 -3.750000 v -0.750000 8.750000 -3.750000 @@ -1265,30 +2301,30 @@ v 0.750000 4.250000 -2.750000 v 0.750000 4.250000 -2.250000 v -0.750000 4.250000 -2.250000 v -0.750000 4.250000 -2.750000 -v 0.750000 4.750000 -1.875000 -v -0.750000 4.750000 -1.875000 -v 0.750000 4.250000 -1.875000 -v -0.750000 4.250000 -1.875000 -v 0.750000 4.750000 -1.625000 -v -0.750000 4.750000 -1.625000 -v 0.750000 4.250000 -1.625000 -v -0.750000 4.250000 -1.625000 -v -1.375000 4.749999 -1.250000 +v 0.625000 4.750000 -1.875000 +v -0.625000 4.750000 -1.875000 +v 0.625000 4.250000 -1.875000 +v -0.625000 4.250000 -1.875000 +v 0.625000 4.750000 -1.625000 +v -0.625000 4.750000 -1.625000 +v 0.625000 4.250000 -1.625000 +v -0.625000 4.250000 -1.625000 +v -1.375000 4.749999 -1.125000 v -1.375000 4.749999 0.250000 -v -1.375000 4.249999 -1.250000 +v -1.375000 4.249999 -1.125000 v -1.375000 4.249999 0.250000 -v -1.125000 4.749999 -1.250000 +v -1.125000 4.749999 -1.125000 v -1.125000 4.749999 0.250000 -v -1.125000 4.249999 -1.250000 +v -1.125000 4.249999 -1.125000 v -1.125000 4.249999 0.250000 v 1.375000 4.749999 0.250000 -v 1.375000 4.749999 -1.250000 +v 1.375000 4.749999 -1.125000 v 1.375000 4.249999 0.250000 -v 1.375000 4.249999 -1.250000 +v 1.375000 4.249999 -1.125000 v 1.125000 4.749999 0.250000 -v 1.125000 4.749999 -1.250000 +v 1.125000 4.749999 -1.125000 v 1.125000 4.249999 0.250000 -v 1.125000 4.249999 -1.250000 +v 1.125000 4.249999 -1.125000 v 0.750000 4.750000 -4.250000 v 0.750000 4.750000 -3.750000 v -0.750000 4.750000 -3.750000 @@ -1473,6 +2509,820 @@ v -1.062500 5.250000 -2.750000 v -1.062500 4.750000 -2.750000 v -1.062500 6.750000 -3.750000 v -1.062500 6.250000 -3.750000 +v 0.750000 12.250000 -4.062500 +v 0.750000 11.750000 -4.062500 +v -0.750000 10.750000 -4.062500 +v -0.750000 10.250000 -4.062500 +v 0.750000 10.750000 -4.062500 +v 0.750000 10.250000 -4.062500 +v -0.750000 9.250000 -4.062500 +v -0.750000 8.750000 -4.062500 +v 0.750000 10.750000 -3.937500 +v 0.750000 10.250000 -3.937500 +v -0.750000 12.250000 -3.937500 +v -0.750000 11.750000 -3.937500 +v 0.750000 9.250000 -3.937500 +v 0.750000 8.750000 -3.937500 +v -0.750000 10.750000 -3.937500 +v -0.750000 10.250000 -3.937500 +v 0.750000 8.250000 -4.062500 +v 0.750000 7.750000 -4.062500 +v -0.750000 6.750000 -4.062500 +v -0.750000 6.250000 -4.062500 +v 0.750000 6.750000 -4.062500 +v 0.750000 6.250000 -4.062500 +v -0.750000 5.250000 -4.062500 +v -0.750000 4.750000 -4.062500 +v 0.750000 6.750000 -3.937500 +v 0.750000 6.250000 -3.937500 +v -0.750000 8.250000 -3.937500 +v -0.750000 7.750000 -3.937500 +v 0.750000 5.250000 -3.937500 +v 0.750000 4.750000 -3.937500 +v -0.750000 6.750000 -3.937500 +v -0.750000 6.250000 -3.937500 +v 0.750000 12.250000 -2.562500 +v 0.750000 11.750000 -2.562500 +v -0.750000 10.750000 -2.562500 +v -0.750000 10.250000 -2.562500 +v 0.750000 10.750000 -2.562500 +v 0.750000 10.250000 -2.562500 +v -0.750000 9.250000 -2.562500 +v -0.750000 8.750000 -2.562500 +v 0.750000 10.750000 -2.437500 +v 0.750000 10.250000 -2.437500 +v -0.750000 12.250000 -2.437500 +v -0.750000 11.750000 -2.437500 +v 0.750000 9.250000 -2.437500 +v 0.750000 8.750000 -2.437500 +v -0.750000 10.750000 -2.437500 +v -0.750000 10.250000 -2.437500 +v 0.750000 8.250000 -2.562500 +v 0.750000 7.750000 -2.562500 +v -0.750000 6.750000 -2.562500 +v -0.750000 6.250000 -2.562500 +v 0.750000 6.750000 -2.562500 +v 0.750000 6.250000 -2.562500 +v -0.750000 5.250000 -2.562500 +v -0.750000 4.750000 -2.562500 +v 0.750000 6.750000 -2.437500 +v 0.750000 6.250000 -2.437500 +v -0.750000 8.250000 -2.437500 +v -0.750000 7.750000 -2.437500 +v 0.750000 5.250000 -2.437500 +v 0.750000 4.750000 -2.437500 +v -0.750000 6.750000 -2.437500 +v -0.750000 6.250000 -2.437500 +v 0.750000 14.750000 -4.062500 +v 0.750000 14.250000 -4.062500 +v -0.750000 13.250000 -4.062500 +v -0.750000 12.750000 -4.062500 +v 0.750000 13.250000 -3.937500 +v 0.750000 12.750000 -3.937500 +v -0.750000 14.750000 -3.937500 +v -0.750000 14.250000 -3.937500 +v 0.750000 14.750000 -2.562500 +v 0.750000 14.250000 -2.562500 +v -0.750000 13.250000 -2.562500 +v -0.750000 12.750000 -2.562500 +v 0.750000 13.250000 -2.437500 +v 0.750000 12.750000 -2.437500 +v -0.750000 14.750000 -2.437500 +v -0.750000 14.250000 -2.437500 +v 1.062500 14.750000 -2.750000 +v 1.062500 14.250000 -2.750000 +v 1.062500 13.250000 -3.750000 +v 1.062500 12.750000 -3.750000 +v 0.937500 13.250000 -2.750000 +v 0.937500 12.750000 -2.750000 +v 0.937500 14.750000 -3.750000 +v 0.937500 14.250000 -3.750000 +v 1.062500 12.250000 -2.750000 +v 1.062500 11.750000 -2.750000 +v 1.062500 10.750000 -3.750000 +v 1.062500 10.250000 -3.750000 +v 0.937500 10.750000 -2.750000 +v 0.937500 10.250000 -2.750000 +v 0.937500 12.250000 -3.750000 +v 0.937500 11.750000 -3.750000 +v 1.062500 10.750000 -2.750000 +v 1.062500 10.250000 -2.750000 +v 1.062500 9.250000 -3.750000 +v 1.062500 8.750000 -3.750000 +v 0.937500 9.250000 -2.750000 +v 0.937500 8.750000 -2.750000 +v 0.937500 10.750000 -3.750000 +v 0.937500 10.250000 -3.750000 +v 1.062500 8.250000 -2.750000 +v 1.062500 7.750000 -2.750000 +v 1.062500 6.750000 -3.750000 +v 1.062500 6.250000 -3.750000 +v 0.937500 6.750000 -2.750000 +v 0.937500 6.250000 -2.750000 +v 0.937500 8.250000 -3.750000 +v 0.937500 7.750000 -3.750000 +v 1.062500 6.750000 -2.750000 +v 1.062500 6.250000 -2.750000 +v 1.062500 5.250000 -3.750000 +v 1.062500 4.750000 -3.750000 +v 0.937500 5.250000 -2.750000 +v 0.937500 4.750000 -2.750000 +v 0.937500 6.750000 -3.750000 +v 0.937500 6.250000 -3.750000 +v -0.937500 14.750000 -2.750000 +v -0.937500 14.250000 -2.750000 +v -0.937500 13.250000 -3.750000 +v -0.937500 12.750000 -3.750000 +v -1.062500 13.250000 -2.750000 +v -1.062500 12.750000 -2.750000 +v -1.062500 14.750000 -3.750000 +v -1.062500 14.250000 -3.750000 +v -0.937500 12.250000 -2.750000 +v -0.937500 11.750000 -2.750000 +v -0.937500 10.750000 -3.750000 +v -0.937500 10.250000 -3.750000 +v -1.062500 10.750000 -2.750000 +v -1.062500 10.250000 -2.750000 +v -1.062500 12.250000 -3.750000 +v -1.062500 11.750000 -3.750000 +v -0.937500 10.750000 -2.750000 +v -0.937500 10.250000 -2.750000 +v -0.937500 9.250000 -3.750000 +v -0.937500 8.750000 -3.750000 +v -1.062500 9.250000 -2.750000 +v -1.062500 8.750000 -2.750000 +v -1.062500 10.750000 -3.750000 +v -1.062500 10.250000 -3.750000 +v -0.937500 8.250000 -2.750000 +v -0.937500 7.750000 -2.750000 +v -0.937500 6.750000 -3.750000 +v -0.937500 6.250000 -3.750000 +v -1.062500 6.750000 -2.750000 +v -1.062500 6.250000 -2.750000 +v -1.062500 8.250000 -3.750000 +v -1.062500 7.750000 -3.750000 +v -0.937500 6.750000 -2.750000 +v -0.937500 6.250000 -2.750000 +v -0.937500 5.250000 -3.750000 +v -0.937500 4.750000 -3.750000 +v -1.062500 5.250000 -2.750000 +v -1.062500 4.750000 -2.750000 +v -1.062500 6.750000 -3.750000 +v -1.062500 6.250000 -3.750000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.974359 0.032258 +vt 0.948718 0.758065 +vt 0.948718 0.032258 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 0.974359 0.032258 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.948718 0.032258 +vt 0.948718 0.032258 +vt 0.974359 0.032258 +vt 0.948718 0.758065 +vt 0.974359 0.032258 +vt 0.948718 0.758065 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.948718 0.032258 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.948718 0.758065 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.448718 0.822581 +vt 0.512821 0.854839 +vt 0.448718 0.854839 +vt 0.275641 0.919355 +vt 0.211538 0.951613 +vt 0.211538 0.919355 +vt 0.512821 0.854839 +vt 0.538462 0.903226 +vt 0.512821 0.870968 +vt 0.448718 0.870968 +vt 0.448718 0.854839 +vt 0.384615 0.854839 +vt 0.410256 0.903226 +vt 0.384615 0.903226 +vt 0.448718 0.870968 +vt 0.576923 0.903226 +vt 0.551282 0.959677 +vt 0.551282 0.903226 +vt 0.346154 0.919355 +vt 0.301282 0.951613 +vt 0.301282 0.919355 +vt 0.384615 0.951613 +vt 0.371795 0.919355 +vt 0.384615 0.919355 +vt 0.410256 0.903226 +vt 0.423077 0.959677 +vt 0.410256 0.959677 +vt 0.538462 0.903226 +vt 0.384615 0.959677 +vt 0.410256 0.959677 +vt 0.185897 0.919355 +vt 0.141026 0.951613 +vt 0.141026 0.919355 +vt 0.551282 0.959677 +vt 0.551282 0.903226 +vt 0.102564 0.919355 +vt 0.115385 0.951613 +vt 0.102564 0.951613 +vt 0.423077 0.959677 +vt 0.275641 0.951613 +vt 0.512821 0.870968 +vt 0.576923 0.854839 +vt 0.551282 0.854839 +vt 0.423077 0.903226 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.794872 0.846774 +vt 0.814103 0.693548 +vt 0.814103 0.846774 +vt 0.833333 0.846774 +vt 0.852564 0.693548 +vt 0.852564 0.846774 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.846774 +vt 0.794872 0.846774 +vt 0.814103 0.693548 +vt 0.814103 0.846774 +vt 0.833333 0.846774 +vt 0.852564 0.693548 +vt 0.852564 0.846774 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.846774 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.448718 0.822581 +vt 0.512821 0.854839 +vt 0.448718 0.854839 +vt 0.275641 0.919355 +vt 0.211538 0.951613 +vt 0.211538 0.919355 +vt 0.512821 0.854839 +vt 0.538462 0.903226 +vt 0.512821 0.870968 +vt 0.448718 0.870968 +vt 0.448718 0.854839 +vt 0.384615 0.854839 +vt 0.410256 0.903226 +vt 0.384615 0.903226 +vt 0.448718 0.870968 +vt 0.576923 0.903226 +vt 0.551282 0.975806 +vt 0.551282 0.903226 +vt 0.358974 0.919355 +vt 0.301282 0.951613 +vt 0.301282 0.919355 +vt 0.384615 0.951613 +vt 0.371795 0.919355 +vt 0.384615 0.919355 +vt 0.410256 0.903226 +vt 0.423077 0.975806 +vt 0.410256 0.975806 +vt 0.538462 0.903226 +vt 0.384615 0.975806 +vt 0.410256 0.975806 +vt 0.185897 0.919355 +vt 0.128205 0.951613 +vt 0.128205 0.919355 +vt 0.551282 0.975806 +vt 0.551282 0.903226 +vt 0.102564 0.919355 +vt 0.115385 0.951613 +vt 0.102564 0.951613 +vt 0.423077 0.975806 +vt 0.275641 0.951613 +vt 0.512821 0.870968 +vt 0.576923 0.854839 +vt 0.551282 0.854839 +vt 0.423077 0.903226 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.794872 0.830645 +vt 0.814103 0.693548 +vt 0.814103 0.830645 +vt 0.833333 0.830645 +vt 0.852564 0.693548 +vt 0.852564 0.830645 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.830645 +vt 0.794872 0.830645 +vt 0.814103 0.693548 +vt 0.814103 0.830645 +vt 0.833333 0.830645 +vt 0.852564 0.693548 +vt 0.852564 0.830645 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.830645 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.448718 0.822581 +vt 0.512821 0.854839 +vt 0.448718 0.854839 +vt 0.275641 0.919355 +vt 0.211538 0.951613 +vt 0.211538 0.919355 +vt 0.512821 0.854839 +vt 0.538462 0.903226 +vt 0.512821 0.870968 +vt 0.448718 0.870968 +vt 0.448718 0.854839 +vt 0.384615 0.854839 +vt 0.410256 0.903226 +vt 0.384615 0.903226 +vt 0.448718 0.870968 +vt 0.576923 0.903226 +vt 0.551282 0.991935 +vt 0.551282 0.903226 +vt 0.371795 0.919355 +vt 0.301282 0.951613 +vt 0.301282 0.919355 +vt 0.384615 0.951613 +vt 0.384615 0.919355 +vt 0.410256 0.903226 +vt 0.423077 0.991935 +vt 0.410256 0.991935 +vt 0.538462 0.903226 +vt 0.384615 0.991935 +vt 0.410256 0.991935 +vt 0.185897 0.919355 +vt 0.115385 0.951613 +vt 0.115385 0.919355 +vt 0.551282 0.991935 +vt 0.551282 0.903226 +vt 0.102564 0.919355 +vt 0.102564 0.951613 +vt 0.423077 0.991935 +vt 0.275641 0.951613 +vt 0.512821 0.870968 +vt 0.576923 0.854839 +vt 0.551282 0.854839 +vt 0.423077 0.903226 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.794872 0.814516 +vt 0.814103 0.693548 +vt 0.814103 0.814516 +vt 0.833333 0.814516 +vt 0.852564 0.693548 +vt 0.852564 0.814516 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.814516 +vt 0.794872 0.814516 +vt 0.814103 0.693548 +vt 0.814103 0.814516 +vt 0.833333 0.814516 +vt 0.852564 0.693548 +vt 0.852564 0.814516 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.814516 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.974359 0.919355 +vt 0.512821 0.822581 +vt 0.410256 0.854839 +vt 0.576923 0.959677 +vt 0.346154 0.951613 +vt 0.371795 0.951613 +vt 0.423077 0.903226 +vt 0.538462 0.959677 +vt 0.185897 0.951613 +vt 0.538462 0.959677 +vt 0.115385 0.919355 +vt 0.974359 0.919355 +vt 0.794872 0.693548 +vt 0.794872 0.693548 +vt 0.974359 0.919355 +vt 0.512821 0.822581 +vt 0.410256 0.854839 +vt 0.576923 0.975806 +vt 0.358974 0.951613 +vt 0.371795 0.951613 +vt 0.423077 0.903226 +vt 0.538462 0.975806 +vt 0.185897 0.951613 +vt 0.538462 0.975806 +vt 0.115385 0.919355 +vt 0.974359 0.919355 +vt 0.794872 0.693548 +vt 0.794872 0.693548 +vt 0.974359 0.919355 +vt 0.512821 0.822581 +vt 0.410256 0.854839 +vt 0.576923 0.991935 +vt 0.371795 0.951613 +vt 0.423077 0.903226 +vt 0.538462 0.991935 +vt 0.185897 0.951613 +vt 0.538462 0.991935 +vt 0.974359 0.919355 +vt 0.794872 0.693548 +vt 0.794872 0.693548 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 1.0000 @@ -1484,386 +3334,442 @@ vn -0.7071 0.0000 0.7071 vn 0.7071 0.0000 0.7071 vn -0.7071 0.0000 -0.7071 s off -f 515//41 517//41 516//41 -f 519//41 521//41 520//41 -f 523//41 525//41 524//41 -f 527//41 529//41 528//41 -f 533//42 531//42 532//42 -f 537//42 535//42 536//42 -f 541//42 539//42 540//42 -f 545//42 543//42 544//42 -f 525//43 540//43 524//43 -f 518//44 533//44 517//44 -f 526//44 541//44 525//44 -f 515//45 534//45 518//45 -f 523//45 542//45 526//45 -f 520//46 535//46 519//46 -f 528//46 543//46 527//46 -f 521//43 536//43 520//43 -f 529//43 544//43 528//43 -f 522//44 537//44 521//44 -f 530//44 545//44 529//44 -f 519//45 538//45 522//45 -f 516//46 531//46 515//46 -f 527//45 546//45 530//45 -f 524//46 539//46 523//46 -f 517//43 532//43 516//43 -f 547//42 549//42 548//42 -f 553//41 551//41 552//41 -f 547//45 554//45 550//45 -f 548//44 551//44 547//44 -f 549//43 552//43 548//43 -f 550//46 553//46 549//46 -f 557//45 556//45 555//45 -f 560//43 561//43 559//43 -f 557//41 578//41 561//41 -f 557//41 562//41 558//41 -f 557//47 572//47 574//47 -f 556//42 559//42 555//42 -f 565//46 564//46 563//46 -f 568//44 569//44 567//44 -f 566//43 568//43 564//43 -f 565//41 570//41 566//41 -f 559//42 572//42 555//42 -f 564//42 567//42 563//42 -f 573//44 572//44 571//44 -f 576//46 577//46 575//46 -f 561//48 576//48 559//48 -f 573//41 578//41 574//41 -f 571//43 577//43 573//43 -f 572//42 575//42 571//42 -f 562//49 567//49 569//49 -f 556//42 567//42 560//42 -f 558//50 563//50 556//50 -f 569//41 558//41 562//41 -f 579//42 581//42 580//42 -f 585//41 583//41 584//41 -f 579//45 586//45 582//45 -f 580//44 583//44 579//44 -f 581//43 584//43 580//43 -f 582//46 585//46 581//46 -f 588//44 594//44 590//44 -f 589//46 591//46 587//46 -f 590//42 593//42 589//42 -f 587//41 592//41 588//41 -f 596//44 602//44 598//44 -f 597//46 599//46 595//46 -f 598//42 601//42 597//42 -f 595//41 600//41 596//41 -f 603//42 605//42 604//42 -f 609//41 607//41 608//41 -f 603//45 610//45 606//45 -f 604//44 607//44 603//44 -f 605//43 608//43 604//43 -f 606//46 609//46 605//46 -f 613//45 612//45 611//45 -f 616//43 617//43 615//43 -f 613//41 634//41 617//41 -f 613//41 618//41 614//41 -f 613//47 628//47 630//47 -f 612//42 615//42 611//42 -f 621//46 620//46 619//46 -f 624//44 625//44 623//44 -f 622//43 624//43 620//43 -f 621//41 626//41 622//41 -f 615//42 628//42 611//42 -f 620//42 623//42 619//42 -f 629//44 628//44 627//44 -f 632//46 633//46 631//46 -f 617//48 632//48 615//48 -f 629//41 634//41 630//41 -f 627//43 633//43 629//43 -f 628//42 631//42 627//42 -f 618//49 623//49 625//49 -f 612//42 623//42 616//42 -f 614//50 619//50 612//50 -f 625//41 614//41 618//41 -f 635//42 637//42 636//42 -f 641//41 639//41 640//41 -f 635//45 642//45 638//45 -f 636//44 639//44 635//44 -f 637//43 640//43 636//43 -f 638//46 641//46 637//46 -f 644//44 650//44 646//44 -f 645//46 647//46 643//46 -f 646//42 649//42 645//42 -f 643//41 648//41 644//41 -f 652//44 658//44 654//44 -f 653//46 655//46 651//46 -f 654//42 657//42 653//42 -f 651//41 656//41 652//41 -f 659//42 661//42 660//42 -f 665//41 663//41 664//41 -f 659//45 666//45 662//45 -f 660//44 663//44 659//44 -f 661//43 664//43 660//43 -f 662//46 665//46 661//46 -f 669//45 668//45 667//45 -f 672//43 673//43 671//43 -f 669//41 690//41 673//41 -f 669//41 674//41 670//41 -f 669//47 684//47 686//47 -f 668//42 671//42 667//42 -f 677//46 676//46 675//46 -f 680//44 681//44 679//44 -f 678//43 680//43 676//43 -f 677//41 682//41 678//41 -f 671//42 684//42 667//42 -f 676//42 679//42 675//42 -f 685//44 684//44 683//44 -f 688//46 689//46 687//46 -f 673//48 688//48 671//48 -f 685//41 690//41 686//41 -f 683//43 689//43 685//43 -f 684//42 687//42 683//42 -f 674//49 679//49 681//49 -f 668//42 679//42 672//42 -f 670//50 675//50 668//50 -f 681//41 670//41 674//41 -f 691//42 693//42 692//42 -f 697//41 695//41 696//41 -f 691//45 698//45 694//45 -f 692//44 695//44 691//44 -f 693//43 696//43 692//43 -f 694//46 697//46 693//46 -f 700//44 706//44 702//44 -f 701//46 703//46 699//46 -f 702//42 705//42 701//42 -f 699//41 704//41 700//41 -f 708//44 714//44 710//44 -f 709//46 711//46 707//46 -f 710//42 713//42 709//42 -f 707//41 712//41 708//41 -f 716//45 717//45 715//45 -f 720//45 721//45 719//45 -f 723//45 726//45 725//45 -f 727//45 730//45 729//45 -f 732//45 733//45 731//45 -f 736//45 737//45 735//45 -f 739//45 742//45 741//45 -f 743//45 746//45 745//45 -f 749//43 748//43 747//43 -f 753//43 752//43 751//43 -f 755//43 758//43 756//43 -f 759//43 762//43 760//43 -f 765//43 764//43 763//43 -f 769//43 768//43 767//43 -f 771//43 774//43 772//43 -f 775//43 778//43 776//43 -f 780//45 781//45 779//45 -f 783//45 786//45 785//45 -f 789//43 788//43 787//43 -f 791//43 794//43 792//43 -f 796//44 797//44 795//44 -f 799//44 802//44 801//44 -f 804//44 805//44 803//44 -f 807//44 810//44 809//44 -f 812//44 813//44 811//44 -f 815//44 818//44 817//44 -f 820//44 821//44 819//44 -f 823//44 826//44 825//44 -f 828//44 829//44 827//44 -f 831//44 834//44 833//44 -f 837//46 836//46 835//46 -f 839//46 842//46 840//46 -f 845//46 844//46 843//46 -f 847//46 850//46 848//46 -f 853//46 852//46 851//46 -f 855//46 858//46 856//46 -f 861//46 860//46 859//46 -f 863//46 866//46 864//46 -f 869//46 868//46 867//46 -f 871//46 874//46 872//46 -f 515//41 518//41 517//41 -f 519//41 522//41 521//41 -f 523//41 526//41 525//41 -f 527//41 530//41 529//41 -f 533//42 534//42 531//42 -f 537//42 538//42 535//42 -f 541//42 542//42 539//42 -f 545//42 546//42 543//42 -f 525//43 541//43 540//43 -f 518//44 534//44 533//44 -f 526//44 542//44 541//44 -f 515//45 531//45 534//45 -f 523//45 539//45 542//45 -f 520//46 536//46 535//46 -f 528//46 544//46 543//46 -f 521//43 537//43 536//43 -f 529//43 545//43 544//43 -f 522//44 538//44 537//44 -f 530//44 546//44 545//44 -f 519//45 535//45 538//45 -f 516//46 532//46 531//46 -f 527//45 543//45 546//45 -f 524//46 540//46 539//46 -f 517//43 533//43 532//43 -f 547//42 550//42 549//42 -f 553//41 554//41 551//41 -f 547//45 551//45 554//45 -f 548//44 552//44 551//44 -f 549//43 553//43 552//43 -f 550//46 554//46 553//46 -f 557//45 558//45 556//45 -f 560//43 562//43 561//43 -f 557//41 574//41 578//41 -f 557//41 561//41 562//41 -f 557//47 555//47 572//47 -f 556//42 560//42 559//42 -f 565//46 566//46 564//46 -f 568//44 570//44 569//44 -f 566//43 570//43 568//43 -f 565//41 569//41 570//41 -f 559//42 576//42 572//42 -f 564//42 568//42 567//42 -f 573//44 574//44 572//44 -f 576//46 578//46 577//46 -f 561//48 578//48 576//48 -f 573//41 577//41 578//41 -f 571//43 575//43 577//43 -f 572//42 576//42 575//42 -f 562//49 560//49 567//49 -f 556//42 563//42 567//42 -f 558//50 565//50 563//50 -f 569//41 565//41 558//41 -f 579//42 582//42 581//42 -f 585//41 586//41 583//41 -f 579//45 583//45 586//45 -f 580//44 584//44 583//44 -f 581//43 585//43 584//43 -f 582//46 586//46 585//46 -f 588//44 592//44 594//44 -f 589//46 593//46 591//46 -f 590//42 594//42 593//42 -f 587//41 591//41 592//41 -f 596//44 600//44 602//44 -f 597//46 601//46 599//46 -f 598//42 602//42 601//42 -f 595//41 599//41 600//41 -f 603//42 606//42 605//42 -f 609//41 610//41 607//41 -f 603//45 607//45 610//45 -f 604//44 608//44 607//44 -f 605//43 609//43 608//43 -f 606//46 610//46 609//46 -f 613//45 614//45 612//45 -f 616//43 618//43 617//43 -f 613//41 630//41 634//41 -f 613//41 617//41 618//41 -f 613//47 611//47 628//47 -f 612//42 616//42 615//42 -f 621//46 622//46 620//46 -f 624//44 626//44 625//44 -f 622//43 626//43 624//43 -f 621//41 625//41 626//41 -f 615//42 632//42 628//42 -f 620//42 624//42 623//42 -f 629//44 630//44 628//44 -f 632//46 634//46 633//46 -f 617//48 634//48 632//48 -f 629//41 633//41 634//41 -f 627//43 631//43 633//43 -f 628//42 632//42 631//42 -f 618//49 616//49 623//49 -f 612//42 619//42 623//42 -f 614//50 621//50 619//50 -f 625//41 621//41 614//41 -f 635//42 638//42 637//42 -f 641//41 642//41 639//41 -f 635//45 639//45 642//45 -f 636//44 640//44 639//44 -f 637//43 641//43 640//43 -f 638//46 642//46 641//46 -f 644//44 648//44 650//44 -f 645//46 649//46 647//46 -f 646//42 650//42 649//42 -f 643//41 647//41 648//41 -f 652//44 656//44 658//44 -f 653//46 657//46 655//46 -f 654//42 658//42 657//42 -f 651//41 655//41 656//41 -f 659//42 662//42 661//42 -f 665//41 666//41 663//41 -f 659//45 663//45 666//45 -f 660//44 664//44 663//44 -f 661//43 665//43 664//43 -f 662//46 666//46 665//46 -f 669//45 670//45 668//45 -f 672//43 674//43 673//43 -f 669//41 686//41 690//41 -f 669//41 673//41 674//41 -f 669//47 667//47 684//47 -f 668//42 672//42 671//42 -f 677//46 678//46 676//46 -f 680//44 682//44 681//44 -f 678//43 682//43 680//43 -f 677//41 681//41 682//41 -f 671//42 688//42 684//42 -f 676//42 680//42 679//42 -f 685//44 686//44 684//44 -f 688//46 690//46 689//46 -f 673//48 690//48 688//48 -f 685//41 689//41 690//41 -f 683//43 687//43 689//43 -f 684//42 688//42 687//42 -f 674//49 672//49 679//49 -f 668//42 675//42 679//42 -f 670//50 677//50 675//50 -f 681//41 677//41 670//41 -f 691//42 694//42 693//42 -f 697//41 698//41 695//41 -f 691//45 695//45 698//45 -f 692//44 696//44 695//44 -f 693//43 697//43 696//43 -f 694//46 698//46 697//46 -f 700//44 704//44 706//44 -f 701//46 705//46 703//46 -f 702//42 706//42 705//42 -f 699//41 703//41 704//41 -f 708//44 712//44 714//44 -f 709//46 713//46 711//46 -f 710//42 714//42 713//42 -f 707//41 711//41 712//41 -f 716//45 718//45 717//45 -f 720//45 722//45 721//45 -f 723//45 724//45 726//45 -f 727//45 728//45 730//45 -f 732//45 734//45 733//45 -f 736//45 738//45 737//45 -f 739//45 740//45 742//45 -f 743//45 744//45 746//45 -f 749//43 750//43 748//43 -f 753//43 754//43 752//43 -f 755//43 757//43 758//43 -f 759//43 761//43 762//43 -f 765//43 766//43 764//43 -f 769//43 770//43 768//43 -f 771//43 773//43 774//43 -f 775//43 777//43 778//43 -f 780//45 782//45 781//45 -f 783//45 784//45 786//45 -f 789//43 790//43 788//43 -f 791//43 793//43 794//43 -f 796//44 798//44 797//44 -f 799//44 800//44 802//44 -f 804//44 806//44 805//44 -f 807//44 808//44 810//44 -f 812//44 814//44 813//44 -f 815//44 816//44 818//44 -f 820//44 822//44 821//44 -f 823//44 824//44 826//44 -f 828//44 830//44 829//44 -f 831//44 832//44 834//44 -f 837//46 838//46 836//46 -f 839//46 841//46 842//46 -f 845//46 846//46 844//46 -f 847//46 849//46 850//46 -f 853//46 854//46 852//46 -f 855//46 857//46 858//46 -f 861//46 862//46 860//46 -f 863//46 865//46 866//46 -f 869//46 870//46 868//46 -f 871//46 873//46 874//46 +f 667/838/42 669/839/42 668/840/42 +f 671/841/42 673/842/42 672/843/42 +f 675/844/42 677/845/42 676/846/42 +f 679/847/42 681/848/42 680/849/42 +f 685/850/43 683/851/43 684/852/43 +f 689/853/43 687/854/43 688/855/43 +f 693/856/43 691/857/43 692/858/43 +f 697/859/43 695/860/43 696/861/43 +f 677/862/44 692/863/44 676/864/44 +f 670/865/45 685/866/45 669/867/45 +f 678/868/45 693/869/45 677/862/45 +f 667/838/46 686/870/46 670/871/46 +f 675/844/46 694/872/46 678/873/46 +f 672/874/47 687/854/47 671/841/47 +f 680/875/47 695/860/47 679/847/47 +f 673/876/44 688/877/44 672/874/44 +f 681/878/44 696/879/44 680/875/44 +f 674/880/45 689/881/45 673/876/45 +f 682/882/45 697/883/45 681/878/45 +f 671/841/46 690/884/46 674/885/46 +f 668/886/47 683/851/47 667/838/47 +f 679/847/46 698/887/46 682/888/46 +f 676/864/47 691/857/47 675/844/47 +f 669/867/44 684/889/44 668/886/44 +f 699/890/43 701/891/43 700/892/43 +f 705/893/42 703/894/42 704/895/42 +f 699/890/46 706/896/46 702/897/46 +f 701/891/44 704/898/44 700/892/44 +f 709/899/46 708/900/46 707/901/46 +f 712/902/44 713/903/44 711/904/44 +f 709/905/42 730/906/42 713/907/42 +f 709/905/42 714/908/42 710/909/42 +f 709/910/48 724/911/48 726/912/48 +f 708/900/43 711/913/43 707/901/43 +f 717/914/47 716/915/47 715/916/47 +f 720/917/45 721/918/45 719/919/45 +f 718/920/44 720/921/44 716/922/44 +f 717/923/42 722/924/42 718/925/42 +f 711/913/43 724/911/43 707/901/43 +f 716/915/43 719/926/43 715/916/43 +f 725/927/45 724/911/45 723/928/45 +f 728/929/47 729/930/47 727/931/47 +f 713/903/49 728/929/49 711/904/49 +f 725/932/42 730/906/42 726/933/42 +f 723/934/44 729/935/44 725/936/44 +f 724/911/43 727/937/43 723/928/43 +f 714/938/50 719/919/50 721/918/50 +f 708/900/43 719/926/43 712/939/43 +f 710/940/51 715/916/51 708/941/51 +f 721/942/42 710/909/42 714/908/42 +f 731/943/43 733/944/43 732/945/43 +f 737/946/42 735/947/42 736/948/42 +f 731/943/46 738/949/46 734/950/46 +f 733/944/44 736/951/44 732/945/44 +f 740/952/45 746/953/45 742/954/45 +f 741/955/47 743/956/47 739/957/47 +f 742/954/43 745/958/43 741/955/43 +f 739/957/42 744/959/42 740/960/42 +f 748/961/45 754/962/45 750/963/45 +f 749/964/47 751/965/47 747/966/47 +f 750/963/43 753/967/43 749/964/43 +f 747/966/42 752/968/42 748/969/42 +f 755/970/43 757/971/43 756/972/43 +f 761/973/42 759/974/42 760/975/42 +f 755/970/46 762/976/46 758/977/46 +f 757/971/44 760/978/44 756/972/44 +f 765/979/46 764/980/46 763/981/46 +f 768/982/44 769/983/44 767/984/44 +f 765/985/42 786/986/42 769/987/42 +f 765/985/42 770/988/42 766/989/42 +f 765/990/48 780/991/48 782/992/48 +f 764/980/43 767/993/43 763/981/43 +f 773/994/47 772/995/47 771/996/47 +f 776/997/45 777/998/45 775/999/45 +f 774/1000/44 776/1001/44 772/1002/44 +f 773/1003/42 778/1004/42 774/1005/42 +f 767/993/43 780/991/43 763/981/43 +f 772/995/43 775/1006/43 771/996/43 +f 781/1007/45 780/991/45 779/1008/45 +f 784/1009/47 785/1010/47 783/1011/47 +f 769/983/49 784/1009/49 767/984/49 +f 781/1012/42 786/986/42 782/1013/42 +f 779/1014/44 785/1015/44 781/1016/44 +f 780/991/43 783/1017/43 779/1008/43 +f 770/1018/50 775/999/50 777/998/50 +f 764/980/43 775/1006/43 768/1019/43 +f 766/1020/51 771/996/51 764/1021/51 +f 777/1022/42 766/989/42 770/988/42 +f 787/1023/43 789/1024/43 788/1025/43 +f 793/1026/42 791/1027/42 792/1028/42 +f 787/1023/46 794/1029/46 790/1030/46 +f 789/1024/44 792/1031/44 788/1025/44 +f 796/1032/45 802/1033/45 798/1034/45 +f 797/1035/47 799/1036/47 795/1037/47 +f 798/1034/43 801/1038/43 797/1035/43 +f 795/1037/42 800/1039/42 796/1040/42 +f 804/1041/45 810/1042/45 806/1043/45 +f 805/1044/47 807/1045/47 803/1046/47 +f 806/1043/43 809/1047/43 805/1044/43 +f 803/1046/42 808/1048/42 804/1049/42 +f 811/1050/43 813/1051/43 812/1052/43 +f 817/1053/42 815/1054/42 816/1055/42 +f 811/1050/46 818/1056/46 814/1057/46 +f 813/1051/44 816/1058/44 812/1052/44 +f 821/1059/46 820/1060/46 819/1061/46 +f 824/1062/44 825/1063/44 823/1064/44 +f 821/1065/42 842/1066/42 825/1067/42 +f 821/1065/42 826/1068/42 822/1069/42 +f 821/1070/48 836/1071/48 838/1072/48 +f 820/1060/43 823/1073/43 819/1061/43 +f 829/1074/47 828/1075/47 827/1076/47 +f 832/1077/45 833/1078/45 831/1079/45 +f 830/1080/44 832/1077/44 828/1081/44 +f 829/1082/42 834/1083/42 830/1084/42 +f 823/1073/43 836/1071/43 819/1061/43 +f 828/1075/43 831/1085/43 827/1076/43 +f 837/1086/45 836/1071/45 835/1087/45 +f 840/1088/47 841/1089/47 839/1090/47 +f 825/1063/49 840/1088/49 823/1064/49 +f 837/1091/42 842/1066/42 838/1092/42 +f 835/1093/44 841/1089/44 837/1094/44 +f 836/1071/43 839/1095/43 835/1087/43 +f 826/1096/50 831/1079/50 833/1078/50 +f 820/1060/43 831/1085/43 824/1097/43 +f 822/1098/51 827/1076/51 820/1099/51 +f 833/1100/42 822/1069/42 826/1068/42 +f 843/1101/43 845/1102/43 844/1103/43 +f 849/1104/42 847/1105/42 848/1106/42 +f 843/1101/46 850/1107/46 846/1108/46 +f 845/1102/44 848/1109/44 844/1103/44 +f 852/1110/45 858/1111/45 854/1112/45 +f 853/1113/47 855/1114/47 851/1115/47 +f 854/1112/43 857/1116/43 853/1113/43 +f 851/1115/42 856/1117/42 852/1118/42 +f 860/1119/45 866/1120/45 862/1121/45 +f 861/1122/47 863/1123/47 859/1124/47 +f 862/1121/43 865/1125/43 861/1122/43 +f 859/1124/42 864/1126/42 860/1127/42 +f 868/1128/46 869/1129/46 867/1130/46 +f 872/1131/46 873/1132/46 871/1133/46 +f 875/1134/46 878/1135/46 877/1136/46 +f 879/1137/46 882/1138/46 881/1139/46 +f 884/1140/46 885/1141/46 883/1142/46 +f 888/1143/46 889/1144/46 887/1145/46 +f 891/1146/46 894/1147/46 893/1148/46 +f 895/1149/46 898/1150/46 897/1151/46 +f 901/1152/44 900/1153/44 899/1154/44 +f 905/1155/44 904/1156/44 903/1157/44 +f 907/1158/44 910/1159/44 908/1160/44 +f 911/1161/44 914/1162/44 912/1163/44 +f 917/1164/44 916/1165/44 915/1166/44 +f 921/1167/44 920/1168/44 919/1169/44 +f 923/1170/44 926/1171/44 924/1172/44 +f 927/1173/44 930/1174/44 928/1175/44 +f 932/1176/46 933/1177/46 931/1178/46 +f 935/1179/46 938/1180/46 937/1181/46 +f 941/1182/44 940/1183/44 939/1184/44 +f 943/1185/44 946/1186/44 944/1187/44 +f 948/1188/45 949/1189/45 947/1190/45 +f 951/1191/45 954/1192/45 953/1193/45 +f 956/1194/45 957/1195/45 955/1196/45 +f 959/1197/45 962/1198/45 961/1199/45 +f 964/1200/45 965/1201/45 963/1202/45 +f 967/1203/45 970/1204/45 969/1205/45 +f 972/1206/45 973/1207/45 971/1208/45 +f 975/1209/45 978/1210/45 977/1211/45 +f 980/1212/45 981/1213/45 979/1214/45 +f 983/1215/45 986/1216/45 985/1217/45 +f 989/1218/47 988/1219/47 987/1220/47 +f 991/1221/47 994/1222/47 992/1223/47 +f 997/1224/47 996/1225/47 995/1226/47 +f 999/1227/47 1002/1228/47 1000/1229/47 +f 1005/1230/47 1004/1231/47 1003/1232/47 +f 1007/1233/47 1010/1234/47 1008/1235/47 +f 1013/1236/47 1012/1237/47 1011/1238/47 +f 1015/1239/47 1018/1240/47 1016/1241/47 +f 1021/1242/47 1020/1243/47 1019/1244/47 +f 1023/1245/47 1026/1246/47 1024/1247/47 +f 1029/1248/44 1028/1249/44 1027/1250/44 +f 1033/1251/44 1032/1252/44 1031/1253/44 +f 1035/1254/44 1038/1255/44 1036/1256/44 +f 1039/1257/44 1042/1258/44 1040/1259/44 +f 1045/1260/44 1044/1261/44 1043/1262/44 +f 1049/1263/44 1048/1264/44 1047/1265/44 +f 1051/1266/44 1054/1267/44 1052/1268/44 +f 1055/1269/44 1058/1270/44 1056/1271/44 +f 1060/1272/46 1061/1273/46 1059/1274/46 +f 1064/1275/46 1065/1276/46 1063/1277/46 +f 1067/1278/46 1070/1279/46 1069/1280/46 +f 1071/1281/46 1074/1282/46 1073/1283/46 +f 1076/1284/46 1077/1285/46 1075/1286/46 +f 1080/1287/46 1081/1288/46 1079/1289/46 +f 1083/1290/46 1086/1291/46 1085/1292/46 +f 1087/1293/46 1090/1294/46 1089/1295/46 +f 1093/1296/44 1092/1297/44 1091/1298/44 +f 1095/1299/44 1098/1300/44 1096/1301/44 +f 1100/1302/46 1101/1303/46 1099/1304/46 +f 1103/1305/46 1106/1306/46 1105/1307/46 +f 1109/1308/47 1108/1309/47 1107/1310/47 +f 1111/1311/47 1114/1312/47 1112/1313/47 +f 1117/1314/47 1116/1315/47 1115/1316/47 +f 1119/1317/47 1122/1318/47 1120/1319/47 +f 1125/1320/47 1124/1321/47 1123/1322/47 +f 1127/1323/47 1130/1324/47 1128/1325/47 +f 1133/1326/47 1132/1327/47 1131/1328/47 +f 1135/1329/47 1138/1330/47 1136/1331/47 +f 1141/1332/47 1140/1333/47 1139/1334/47 +f 1143/1335/47 1146/1336/47 1144/1337/47 +f 1148/1338/45 1149/1339/45 1147/1340/45 +f 1151/1341/45 1154/1342/45 1153/1343/45 +f 1156/1344/45 1157/1345/45 1155/1346/45 +f 1159/1347/45 1162/1348/45 1161/1349/45 +f 1164/1350/45 1165/1351/45 1163/1352/45 +f 1167/1353/45 1170/1354/45 1169/1355/45 +f 1172/1356/45 1173/1357/45 1171/1358/45 +f 1175/1359/45 1178/1360/45 1177/1361/45 +f 1180/1362/45 1181/1363/45 1179/1364/45 +f 1183/1365/45 1186/1366/45 1185/1367/45 +f 667/838/42 670/871/42 669/839/42 +f 671/841/42 674/885/42 673/842/42 +f 675/844/42 678/873/42 677/845/42 +f 679/847/42 682/888/42 681/848/42 +f 685/850/43 686/870/43 683/851/43 +f 689/853/43 690/884/43 687/854/43 +f 693/856/43 694/872/43 691/857/43 +f 697/859/43 698/887/43 695/860/43 +f 677/862/44 693/869/44 692/863/44 +f 670/865/45 686/1368/45 685/866/45 +f 678/868/45 694/1369/45 693/869/45 +f 667/838/46 683/851/46 686/870/46 +f 675/844/46 691/857/46 694/872/46 +f 672/874/47 688/877/47 687/854/47 +f 680/875/47 696/879/47 695/860/47 +f 673/876/44 689/881/44 688/877/44 +f 681/878/44 697/883/44 696/879/44 +f 674/880/45 690/1370/45 689/881/45 +f 682/882/45 698/1371/45 697/883/45 +f 671/841/46 687/854/46 690/884/46 +f 668/886/47 684/889/47 683/851/47 +f 679/847/46 695/860/46 698/887/46 +f 676/864/47 692/863/47 691/857/47 +f 669/867/44 685/866/44 684/889/44 +f 699/890/43 702/897/43 701/891/43 +f 705/893/42 706/896/42 703/894/42 +f 699/890/46 703/894/46 706/896/46 +f 701/891/44 705/1372/44 704/898/44 +f 709/899/46 710/1373/46 708/900/46 +f 712/902/44 714/938/44 713/903/44 +f 709/905/42 726/933/42 730/906/42 +f 709/905/42 713/907/42 714/908/42 +f 709/910/48 707/1374/48 724/911/48 +f 708/900/43 712/939/43 711/913/43 +f 717/914/47 718/1375/47 716/915/47 +f 720/917/45 722/1376/45 721/918/45 +f 718/920/44 722/1377/44 720/921/44 +f 717/923/42 721/942/42 722/924/42 +f 711/913/43 728/1378/43 724/911/43 +f 716/915/43 720/1379/43 719/926/43 +f 725/927/45 726/912/45 724/911/45 +f 728/929/47 730/1380/47 729/930/47 +f 713/903/49 730/1380/49 728/929/49 +f 725/932/42 729/1381/42 730/906/42 +f 723/934/44 727/1382/44 729/935/44 +f 724/911/43 728/1378/43 727/937/43 +f 714/938/50 712/902/50 719/919/50 +f 708/900/43 715/916/43 719/926/43 +f 710/940/51 717/914/51 715/916/51 +f 721/942/42 717/923/42 710/909/42 +f 731/943/43 734/950/43 733/944/43 +f 737/946/42 738/949/42 735/947/42 +f 731/943/46 735/947/46 738/949/46 +f 733/944/44 737/1383/44 736/951/44 +f 740/952/45 744/1384/45 746/953/45 +f 741/955/47 745/958/47 743/956/47 +f 742/954/43 746/953/43 745/958/43 +f 739/957/42 743/956/42 744/959/42 +f 748/961/45 752/1385/45 754/962/45 +f 749/964/47 753/967/47 751/965/47 +f 750/963/43 754/962/43 753/967/43 +f 747/966/42 751/965/42 752/968/42 +f 755/970/43 758/977/43 757/971/43 +f 761/973/42 762/976/42 759/974/42 +f 755/970/46 759/974/46 762/976/46 +f 757/971/44 761/1386/44 760/978/44 +f 765/979/46 766/1387/46 764/980/46 +f 768/982/44 770/1018/44 769/983/44 +f 765/985/42 782/1013/42 786/986/42 +f 765/985/42 769/987/42 770/988/42 +f 765/990/48 763/1388/48 780/991/48 +f 764/980/43 768/1019/43 767/993/43 +f 773/994/47 774/1389/47 772/995/47 +f 776/997/45 778/1390/45 777/998/45 +f 774/1000/44 778/1391/44 776/1001/44 +f 773/1003/42 777/1022/42 778/1004/42 +f 767/993/43 784/1392/43 780/991/43 +f 772/995/43 776/1393/43 775/1006/43 +f 781/1007/45 782/992/45 780/991/45 +f 784/1009/47 786/1394/47 785/1010/47 +f 769/983/49 786/1394/49 784/1009/49 +f 781/1012/42 785/1395/42 786/986/42 +f 779/1014/44 783/1396/44 785/1015/44 +f 780/991/43 784/1392/43 783/1017/43 +f 770/1018/50 768/982/50 775/999/50 +f 764/980/43 771/996/43 775/1006/43 +f 766/1020/51 773/994/51 771/996/51 +f 777/1022/42 773/1003/42 766/989/42 +f 787/1023/43 790/1030/43 789/1024/43 +f 793/1026/42 794/1029/42 791/1027/42 +f 787/1023/46 791/1027/46 794/1029/46 +f 789/1024/44 793/1397/44 792/1031/44 +f 796/1032/45 800/1398/45 802/1033/45 +f 797/1035/47 801/1038/47 799/1036/47 +f 798/1034/43 802/1033/43 801/1038/43 +f 795/1037/42 799/1036/42 800/1039/42 +f 804/1041/45 808/1399/45 810/1042/45 +f 805/1044/47 809/1047/47 807/1045/47 +f 806/1043/43 810/1042/43 809/1047/43 +f 803/1046/42 807/1045/42 808/1048/42 +f 811/1050/43 814/1057/43 813/1051/43 +f 817/1053/42 818/1056/42 815/1054/42 +f 811/1050/46 815/1054/46 818/1056/46 +f 813/1051/44 817/1400/44 816/1058/44 +f 821/1059/46 822/1401/46 820/1060/46 +f 824/1062/44 826/1096/44 825/1063/44 +f 821/1065/42 838/1092/42 842/1066/42 +f 821/1065/42 825/1067/42 826/1068/42 +f 821/1070/48 819/1402/48 836/1071/48 +f 820/1060/43 824/1097/43 823/1073/43 +f 829/1074/47 830/1403/47 828/1075/47 +f 832/1077/45 834/1404/45 833/1078/45 +f 830/1080/44 834/1404/44 832/1077/44 +f 829/1082/42 833/1100/42 834/1083/42 +f 823/1073/43 840/1405/43 836/1071/43 +f 828/1075/43 832/1406/43 831/1085/43 +f 837/1086/45 838/1072/45 836/1071/45 +f 840/1088/47 842/1407/47 841/1089/47 +f 825/1063/49 842/1407/49 840/1088/49 +f 837/1091/42 841/1408/42 842/1066/42 +f 835/1093/44 839/1090/44 841/1089/44 +f 836/1071/43 840/1405/43 839/1095/43 +f 826/1096/50 824/1062/50 831/1079/50 +f 820/1060/43 827/1076/43 831/1085/43 +f 822/1098/51 829/1074/51 827/1076/51 +f 833/1100/42 829/1082/42 822/1069/42 +f 843/1101/43 846/1108/43 845/1102/43 +f 849/1104/42 850/1107/42 847/1105/42 +f 843/1101/46 847/1105/46 850/1107/46 +f 845/1102/44 849/1409/44 848/1109/44 +f 852/1110/45 856/1410/45 858/1111/45 +f 853/1113/47 857/1116/47 855/1114/47 +f 854/1112/43 858/1111/43 857/1116/43 +f 851/1115/42 855/1114/42 856/1117/42 +f 860/1119/45 864/1411/45 866/1120/45 +f 861/1122/47 865/1125/47 863/1123/47 +f 862/1121/43 866/1120/43 865/1125/43 +f 859/1124/42 863/1123/42 864/1126/42 +f 868/1128/46 870/1412/46 869/1129/46 +f 872/1131/46 874/1413/46 873/1132/46 +f 875/1134/46 876/1414/46 878/1135/46 +f 879/1137/46 880/1415/46 882/1138/46 +f 884/1140/46 886/1416/46 885/1141/46 +f 888/1143/46 890/1417/46 889/1144/46 +f 891/1146/46 892/1418/46 894/1147/46 +f 895/1149/46 896/1419/46 898/1150/46 +f 901/1152/44 902/1420/44 900/1153/44 +f 905/1155/44 906/1421/44 904/1156/44 +f 907/1158/44 909/1422/44 910/1159/44 +f 911/1161/44 913/1423/44 914/1162/44 +f 917/1164/44 918/1424/44 916/1165/44 +f 921/1167/44 922/1425/44 920/1168/44 +f 923/1170/44 925/1426/44 926/1171/44 +f 927/1173/44 929/1427/44 930/1174/44 +f 932/1176/46 934/1428/46 933/1177/46 +f 935/1179/46 936/1429/46 938/1180/46 +f 941/1182/44 942/1430/44 940/1183/44 +f 943/1185/44 945/1431/44 946/1186/44 +f 948/1188/45 950/1432/45 949/1189/45 +f 951/1191/45 952/1433/45 954/1192/45 +f 956/1194/45 958/1434/45 957/1195/45 +f 959/1197/45 960/1435/45 962/1198/45 +f 964/1200/45 966/1436/45 965/1201/45 +f 967/1203/45 968/1437/45 970/1204/45 +f 972/1206/45 974/1438/45 973/1207/45 +f 975/1209/45 976/1439/45 978/1210/45 +f 980/1212/45 982/1440/45 981/1213/45 +f 983/1215/45 984/1441/45 986/1216/45 +f 989/1218/47 990/1442/47 988/1219/47 +f 991/1221/47 993/1443/47 994/1222/47 +f 997/1224/47 998/1444/47 996/1225/47 +f 999/1227/47 1001/1445/47 1002/1228/47 +f 1005/1230/47 1006/1446/47 1004/1231/47 +f 1007/1233/47 1009/1447/47 1010/1234/47 +f 1013/1236/47 1014/1448/47 1012/1237/47 +f 1015/1239/47 1017/1449/47 1018/1240/47 +f 1021/1242/47 1022/1450/47 1020/1243/47 +f 1023/1245/47 1025/1451/47 1026/1246/47 +f 1029/1248/44 1030/1452/44 1028/1249/44 +f 1033/1251/44 1034/1453/44 1032/1252/44 +f 1035/1254/44 1037/1454/44 1038/1255/44 +f 1039/1257/44 1041/1455/44 1042/1258/44 +f 1045/1260/44 1046/1456/44 1044/1261/44 +f 1049/1263/44 1050/1457/44 1048/1264/44 +f 1051/1266/44 1053/1458/44 1054/1267/44 +f 1055/1269/44 1057/1459/44 1058/1270/44 +f 1060/1272/46 1062/1460/46 1061/1273/46 +f 1064/1275/46 1066/1461/46 1065/1276/46 +f 1067/1278/46 1068/1462/46 1070/1279/46 +f 1071/1281/46 1072/1463/46 1074/1282/46 +f 1076/1284/46 1078/1464/46 1077/1285/46 +f 1080/1287/46 1082/1465/46 1081/1288/46 +f 1083/1290/46 1084/1466/46 1086/1291/46 +f 1087/1293/46 1088/1467/46 1090/1294/46 +f 1093/1296/44 1094/1468/44 1092/1297/44 +f 1095/1299/44 1097/1469/44 1098/1300/44 +f 1100/1302/46 1102/1470/46 1101/1303/46 +f 1103/1305/46 1104/1471/46 1106/1306/46 +f 1109/1308/47 1110/1472/47 1108/1309/47 +f 1111/1311/47 1113/1473/47 1114/1312/47 +f 1117/1314/47 1118/1474/47 1116/1315/47 +f 1119/1317/47 1121/1475/47 1122/1318/47 +f 1125/1320/47 1126/1476/47 1124/1321/47 +f 1127/1323/47 1129/1477/47 1130/1324/47 +f 1133/1326/47 1134/1478/47 1132/1327/47 +f 1135/1329/47 1137/1479/47 1138/1330/47 +f 1141/1332/47 1142/1480/47 1140/1333/47 +f 1143/1335/47 1145/1481/47 1146/1336/47 +f 1148/1338/45 1150/1482/45 1149/1339/45 +f 1151/1341/45 1152/1483/45 1154/1342/45 +f 1156/1344/45 1158/1484/45 1157/1345/45 +f 1159/1347/45 1160/1485/45 1162/1348/45 +f 1164/1350/45 1166/1486/45 1165/1351/45 +f 1167/1353/45 1168/1487/45 1170/1354/45 +f 1172/1356/45 1174/1488/45 1173/1357/45 +f 1175/1359/45 1176/1489/45 1178/1360/45 +f 1180/1362/45 1182/1490/45 1181/1363/45 +f 1183/1365/45 1184/1491/45 1186/1366/45 o Atlas_Pad v -1.500000 2.000000 1.500000 v 1.500000 2.000000 1.500000 @@ -2300,6 +4206,100 @@ v 1.875000 3.000000 -0.125000 v 1.875000 3.000000 0.125000 v 2.125000 3.000000 0.125000 v 2.125000 3.000000 -0.125000 +v -1.615781 2.783195 1.792558 +v -1.792558 2.783195 1.615781 +v -1.502151 2.591684 1.678928 +v -1.678928 2.591684 1.502151 +v -0.757348 3.475517 0.934124 +v -0.934124 3.475517 0.757348 +v -1.047754 3.667028 0.870978 +v -0.870978 3.667028 1.047755 +v -3.750000 15.250000 4.625000 +v -4.625000 15.250000 3.750000 +v -3.187500 13.250000 3.750000 +v -3.750000 13.250000 3.187500 +v -3.750000 15.250000 3.187500 +v -3.187500 15.250000 3.750000 +v -3.187500 2.000000 2.250000 +v -2.812500 2.000000 2.250000 +v -3.187500 2.000000 3.750000 +v -2.812500 2.000000 3.750000 +v -3.750000 2.000000 3.187500 +v -3.750000 2.000000 2.812500 +v -2.250000 2.000000 3.187500 +v -2.250000 2.000000 2.812500 +v -3.187500 17.500000 2.250000 +v -2.812500 17.500000 2.250000 +v -3.187500 17.500000 3.750000 +v -2.812500 17.500000 3.750000 +v -3.750000 17.500000 3.187500 +v -3.750000 17.500000 2.812500 +v -2.250000 17.500000 3.187500 +v -2.250000 17.500000 2.812500 +v -4.000000 2.000000 4.250000 +v -2.000000 2.000000 4.250000 +v -4.000000 4.000000 4.250000 +v -2.000000 4.000000 4.250000 +v -2.000000 4.000000 1.750000 +v -4.000000 4.000000 1.750000 +v -2.000000 2.000000 1.750000 +v -4.000000 2.000000 1.750000 +v -1.750000 2.000000 2.000000 +v -1.750000 2.000000 4.000000 +v -1.750000 4.000000 2.000000 +v -1.750000 4.000000 4.000000 +v -4.250000 4.000000 4.000000 +v -4.250000 4.000000 2.000000 +v -4.250000 2.000000 4.000000 +v -4.250000 2.000000 2.000000 +v -4.000000 4.250000 4.250000 +v -2.000000 4.250000 4.250000 +v -4.000000 6.250000 4.250000 +v -2.000000 6.250000 4.250000 +v -2.000000 6.250000 1.750000 +v -4.000000 6.250000 1.750000 +v -2.000000 4.250000 1.750000 +v -4.000000 4.250000 1.750000 +v -1.750000 4.250000 2.000000 +v -1.750000 4.250000 4.000000 +v -1.750000 6.250000 2.000000 +v -1.750000 6.250000 4.000000 +v -4.250000 6.250000 4.000000 +v -4.250000 6.250000 2.000000 +v -4.250000 4.250000 4.000000 +v -4.250000 4.250000 2.000000 +v -4.000000 6.500000 4.250000 +v -2.000000 6.500000 4.250000 +v -4.000000 8.500000 4.250000 +v -2.000000 8.500000 4.250000 +v -2.000000 8.500000 1.750000 +v -4.000000 8.500000 1.750000 +v -2.000000 6.500000 1.750000 +v -4.000000 6.500000 1.750000 +v -1.750000 6.500000 2.000000 +v -1.750000 6.500000 4.000000 +v -1.750000 8.500000 2.000000 +v -1.750000 8.500000 4.000000 +v -4.250000 8.500000 4.000000 +v -4.250000 8.500000 2.000000 +v -4.250000 6.500000 4.000000 +v -4.250000 6.500000 2.000000 +v -4.000000 8.750000 4.250000 +v -2.000000 8.750000 4.250000 +v -4.000000 10.750000 4.250000 +v -2.000000 10.750000 4.250000 +v -2.000000 10.750000 1.750000 +v -4.000000 10.750000 1.750000 +v -2.000000 8.750000 1.750000 +v -4.000000 8.750000 1.750000 +v -1.750000 8.750000 2.000000 +v -1.750000 8.750000 4.000000 +v -1.750000 10.750000 2.000000 +v -1.750000 10.750000 4.000000 +v -4.250000 10.750000 4.000000 +v -4.250000 10.750000 2.000000 +v -4.250000 8.750000 4.000000 +v -4.250000 8.750000 2.000000 v 1.149048 4.000000 -0.795495 v 1.149048 3.000000 -0.795495 v 0.795495 4.000000 -1.149048 @@ -2380,6 +4380,46 @@ v 1.414214 3.000000 1.237437 v 1.237437 3.000000 1.414214 v 1.414213 3.000000 1.590990 v 1.590990 3.000000 1.414214 +v -1.375000 4.000000 -0.250000 +v -1.375000 3.000000 -0.250000 +v -1.375000 4.000000 0.250000 +v -1.375000 3.000000 0.250000 +v -1.125000 4.000000 0.250000 +v -1.125000 4.000000 -0.250000 +v -1.125000 3.000000 -0.250000 +v -1.125000 3.000000 0.250000 +v -2.500000 2.000000 -0.250000 +v -3.500000 2.000000 -0.250000 +v -2.500000 2.000000 0.250000 +v -3.500000 2.000000 0.250000 +v -2.500000 2.250000 0.250000 +v -2.500000 2.250000 -0.250000 +v -3.500000 2.250000 -0.250000 +v -3.500000 2.250000 0.250000 +v -2.919652 2.029244 -0.125000 +v -3.080348 2.220756 -0.125000 +v -2.919652 2.029244 0.125000 +v -3.080348 2.220756 0.125000 +v -2.125000 2.000000 -0.375000 +v -1.875000 2.000000 -0.375000 +v -2.125000 2.000000 -0.625000 +v -1.875000 2.000000 -0.625000 +v -1.196051 3.475517 0.125000 +v -1.196051 3.475517 -0.125000 +v -1.356748 3.667028 -0.125000 +v -1.356748 3.667028 0.125000 +v -1.875000 3.000000 -0.125000 +v -2.125000 3.000000 -0.125000 +v -2.125000 3.000000 0.125000 +v -1.875000 3.000000 0.125000 +v -1.875000 2.000000 0.375000 +v -2.125000 2.000000 0.375000 +v -1.875000 2.000000 0.625000 +v -2.125000 2.000000 0.625000 +v -1.875000 3.000000 0.125000 +v -1.875000 3.000000 -0.125000 +v -2.125000 3.000000 -0.125000 +v -2.125000 3.000000 0.125000 v -0.795495 4.000000 -1.149048 v -0.795495 3.000000 -1.149048 v -1.149049 4.000000 -0.795495 @@ -2420,68 +4460,20 @@ v -1.414214 3.000000 -1.237437 v -1.237437 3.000000 -1.414213 v -1.414213 3.000000 -1.590990 v -1.590990 3.000000 -1.414213 -v -1.375000 4.000000 -0.250000 -v -1.375000 3.000000 -0.250000 -v -1.375000 4.000000 0.250000 -v -1.375000 3.000000 0.250000 -v -1.125000 4.000000 0.250000 -v -1.125000 4.000000 -0.250000 -v -1.125000 3.000000 -0.250000 -v -1.125000 3.000000 0.250000 -v -2.500000 2.000000 -0.250000 -v -3.500000 2.000000 -0.250000 -v -2.500000 2.000000 0.250000 -v -3.500000 2.000000 0.250000 -v -2.500000 2.250000 0.250000 -v -2.500000 2.250000 -0.250000 -v -3.500000 2.250000 -0.250000 -v -3.500000 2.250000 0.250000 -v -2.919652 2.029244 -0.125000 -v -3.080348 2.220755 -0.125000 -v -2.919652 2.029244 0.125000 -v -3.080348 2.220755 0.125001 -v -2.125000 2.000000 -0.375000 -v -1.875000 2.000000 -0.375000 -v -2.125000 2.000000 -0.625000 -v -1.875000 2.000000 -0.625000 -v -1.196051 3.475517 0.125000 -v -1.196051 3.475517 -0.125000 -v -1.356749 3.667028 -0.125000 -v -1.356749 3.667028 0.125000 -v -1.875000 3.000000 -0.125000 -v -2.125000 3.000000 -0.125000 -v -2.125000 3.000000 0.125000 -v -1.875000 3.000000 0.125000 -v -1.875000 2.000000 0.375000 -v -2.125000 2.000000 0.375000 -v -1.875000 2.000000 0.625000 -v -2.125000 2.000000 0.625000 -v -1.875000 3.000000 0.125000 -v -1.875000 3.000000 -0.125000 -v -2.125000 3.000000 -0.125000 -v -2.125000 3.000000 0.125000 v -1.149048 4.000000 0.795495 v -1.149048 3.000000 0.795495 v -0.795495 4.000000 1.149049 v -0.795495 3.000000 1.149049 v -0.618718 4.000000 0.972272 -v -0.972272 4.000000 0.618718 -v -0.972272 3.000000 0.618718 +v -0.972272 4.000000 0.618719 +v -0.972272 3.000000 0.618719 v -0.618718 3.000000 0.972272 -v -1.615781 2.783195 1.792558 -v -1.792558 2.783195 1.615781 -v -1.502151 2.591684 1.678928 -v -1.678928 2.591684 1.502151 v -1.767767 2.000000 1.237437 v -1.590990 2.000000 1.060660 -v -1.944544 2.000000 1.060660 -v -1.767767 2.000000 0.883883 -v -0.757348 3.475517 0.934124 -v -0.934124 3.475517 0.757348 -v -1.047754 3.667028 0.870978 -v -0.870978 3.667028 1.047755 +v -1.944543 2.000000 1.060660 +v -1.767767 2.000000 0.883884 v -1.414213 3.000000 1.237437 -v -1.590990 3.000000 1.414213 +v -1.590990 3.000000 1.414214 v -1.414213 3.000000 1.590990 v -1.237437 3.000000 1.414214 v -1.060660 2.000000 1.590990 @@ -2490,8 +4482,992 @@ v -0.883883 2.000000 1.767767 v -1.060660 2.000000 1.944544 v -1.237437 3.000000 1.414214 v -1.414213 3.000000 1.237437 -v -1.590990 3.000000 1.414213 +v -1.590990 3.000000 1.414214 v -1.414213 3.000000 1.590990 +vt 0.269231 0.532258 +vt 0.115385 0.725806 +vt 0.115385 0.532258 +vt 0.102564 0.403226 +vt 0.000000 0.080645 +vt 0.102564 0.209677 +vt 0.000000 0.064516 +vt 0.346154 0.048387 +vt 0.358974 0.064516 +vt 0.358974 0.080645 +vt -0.000000 0.080645 +vt 0.358974 0.064516 +vt 0.358974 0.080645 +vt -0.000000 0.080645 +vt 0.358974 0.064516 +vt 0.358974 0.080645 +vt -0.000000 0.080645 +vt 0.358974 0.064516 +vt 0.358974 0.080645 +vt 0.012821 0.048387 +vt 0.346154 -0.000000 +vt 0.346154 0.048387 +vt -0.000000 0.064516 +vt -0.000000 0.064516 +vt 0.346154 0.048387 +vt -0.000000 0.064516 +vt 0.346154 0.048387 +vt 0.256410 0.403226 +vt -0.000000 0.532258 +vt 0.012821 0.048387 +vt 0.346154 -0.000000 +vt 0.012821 0.048387 +vt 0.346154 0.000000 +vt 0.012821 0.048387 +vt 0.346154 -0.000000 +vt 0.256410 0.209677 +vt 0.358974 0.532258 +vt 0.153846 0.274194 +vt 0.153846 0.338710 +vt 0.205128 0.338710 +vt 0.205128 0.274194 +vt 0.371795 0.596774 +vt 0.397436 0.854839 +vt 0.371795 0.854839 +vt 0.320513 0.596774 +vt 0.346154 0.854839 +vt 0.320513 0.854839 +vt 0.346154 0.596774 +vt 0.320513 0.532258 +vt 0.269231 0.596774 +vt 0.371795 0.887097 +vt 0.371795 0.919355 +vt 0.320513 0.919355 +vt 0.205128 0.806452 +vt 0.205128 0.741935 +vt 0.217949 0.741935 +vt 0.051282 0.806452 +vt 0.205128 0.870968 +vt 0.051282 0.870968 +vt -0.000000 0.612903 +vt 0.000000 0.806452 +vt 0.102564 0.596774 +vt 0.051282 0.612903 +vt 0.051282 0.548387 +vt 0.102564 0.741935 +vt 0.410256 0.500000 +vt 0.564103 0.693548 +vt 0.410256 0.693548 +vt 0.564103 0.483871 +vt 0.410256 0.500000 +vt 0.410256 0.483871 +vt 0.564103 0.500000 +vt 0.410256 0.693548 +vt 0.410256 0.709677 +vt 0.564103 0.693548 +vt 0.564103 0.709677 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.397436 0.500000 +vt 0.397436 0.693548 +vt 0.576923 0.693548 +vt 0.576923 0.500000 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.384615 0.129032 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.410256 0.274194 +vt 0.564103 0.467742 +vt 0.410256 0.467742 +vt 0.564103 0.258065 +vt 0.410256 0.274194 +vt 0.410256 0.258065 +vt 0.564103 0.274194 +vt 0.410256 0.467742 +vt 0.410256 0.483871 +vt 0.564103 0.467742 +vt 0.564103 0.483871 +vt 0.461538 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.397436 0.274194 +vt 0.397436 0.467742 +vt 0.576923 0.467742 +vt 0.576923 0.274194 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.384615 -0.000000 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.410256 0.500000 +vt 0.564103 0.693548 +vt 0.410256 0.693548 +vt 0.564103 0.483871 +vt 0.410256 0.500000 +vt 0.410256 0.483871 +vt 0.564103 0.500000 +vt 0.410256 0.693548 +vt 0.410256 0.709677 +vt 0.564103 0.693548 +vt 0.564103 0.709677 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.397436 0.500000 +vt 0.397436 0.693548 +vt 0.576923 0.693548 +vt 0.576923 0.500000 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.384615 0.129032 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.410256 0.274194 +vt 0.564103 0.467742 +vt 0.410256 0.467742 +vt 0.564103 0.258065 +vt 0.410256 0.274194 +vt 0.410256 0.258065 +vt 0.564103 0.274194 +vt 0.410256 0.467742 +vt 0.410256 0.483871 +vt 0.564103 0.467742 +vt 0.564103 0.483871 +vt 0.461538 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.397436 0.274194 +vt 0.397436 0.467742 +vt 0.576923 0.467742 +vt 0.576923 0.274194 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.384615 -0.000000 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.743590 0.612903 +vt 0.692308 0.612903 +vt 0.743590 0.483871 +vt 0.743590 0.612903 +vt 0.743590 0.483871 +vt 0.692308 0.612903 +vt 0.807692 0.387097 +vt 0.833333 0.467742 +vt 0.807692 0.467742 +vt 0.833333 0.467742 +vt 0.846154 0.387097 +vt 0.846154 0.467742 +vt 0.807692 0.387097 +vt 0.807692 0.467742 +vt 0.833333 0.483871 +vt 0.807692 0.483871 +vt 0.833333 0.387097 +vt 0.807692 0.467742 +vt 0.807692 0.387097 +vt 0.807692 0.387097 +vt 0.833333 0.467742 +vt 0.807692 0.467742 +vt 0.846154 0.467742 +vt 0.833333 0.387097 +vt 0.846154 0.387097 +vt 0.833333 0.483871 +vt 0.807692 0.483871 +vt 0.692308 0.072581 +vt 0.705128 0.120968 +vt 0.692308 0.120968 +vt 0.846154 0.120968 +vt 0.833333 0.072581 +vt 0.846154 0.072581 +vt 0.807692 0.370968 +vt 0.833333 0.387097 +vt 0.807692 0.370968 +vt 0.788462 -0.000000 +vt 0.750000 0.016129 +vt 0.750000 -0.000000 +vt 0.750000 0.193548 +vt 0.788462 0.177419 +vt 0.788462 0.193548 +vt 0.833333 0.072581 +vt 0.788462 0.177419 +vt 0.705128 0.120968 +vt 0.788462 0.016129 +vt 0.833333 0.120968 +vt 0.750000 0.177419 +vt 0.833333 0.016129 +vt 0.846154 0.016129 +vt 0.705128 0.177419 +vt 0.692308 0.177419 +vt 0.692308 0.314516 +vt 0.705128 0.370968 +vt 0.692308 0.370968 +vt 0.692308 -0.000000 +vt 0.673077 1.000000 +vt 0.673077 -0.000000 +vt 0.846154 0.266129 +vt 0.833333 0.209677 +vt 0.846154 0.209677 +vt 0.788462 0.209677 +vt 0.833333 0.314516 +vt 0.750000 0.370968 +vt 0.833333 0.266129 +vt 0.788462 0.370968 +vt 0.705128 0.314516 +vt 0.692308 -0.000000 +vt 0.673077 1.000000 +vt 0.673077 -0.000000 +vt 0.653846 -0.000000 +vt 0.634615 1.000000 +vt 0.634615 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.692308 -0.000000 +vt 0.673077 1.000000 +vt 0.673077 -0.000000 +vt 0.653846 -0.000000 +vt 0.634615 1.000000 +vt 0.634615 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.653846 1.000000 +vt 0.653846 -0.000000 +vt 0.673077 -0.000000 +vt 0.653846 1.000000 +vt 0.692308 -0.000000 +vt 0.673077 1.000000 +vt 0.634615 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.634615 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.653846 1.000000 +vt 0.653846 -0.000000 +vt 0.634615 1.000000 +vt 0.634615 1.000000 +vt 0.653846 1.000000 +vt 0.615385 1.000000 +vt 0.576923 -0.000000 +vt 0.615385 -0.000000 +vt 0.615385 1.000000 +vt 0.576923 -0.000000 +vt 0.615385 -0.000000 +vt 0.615385 -0.000000 +vt 0.576923 1.000000 +vt 0.576923 -0.000000 +vt 0.615385 -0.000000 +vt 0.576923 1.000000 +vt 0.576923 -0.000000 +vt 0.750000 0.387097 +vt 0.788462 0.370968 +vt 0.788462 0.387097 +vt 0.788462 0.193548 +vt 0.750000 0.209677 +vt 0.750000 0.193548 +vt 0.730769 0.483871 +vt 0.705128 0.467742 +vt 0.730769 0.467742 +vt 0.730769 0.483871 +vt 0.705128 0.467742 +vt 0.730769 0.467742 +vt 0.846154 0.314516 +vt 0.833333 0.266129 +vt 0.692308 0.266129 +vt 0.705128 0.314516 +vt 0.833333 0.266129 +vt 0.788462 0.370968 +vt 0.705128 0.314516 +vt 0.788462 0.209677 +vt 0.833333 0.314516 +vt 0.750000 0.370968 +vt 0.846154 0.266129 +vt 0.833333 0.209677 +vt 0.846154 0.209677 +vt 0.692308 0.314516 +vt 0.705128 0.370968 +vt 0.692308 0.370968 +vt 0.750000 0.387097 +vt 0.788462 0.370968 +vt 0.788462 0.387097 +vt 0.788462 0.193548 +vt 0.750000 0.209677 +vt 0.750000 0.193548 +vt 0.846154 0.370968 +vt 0.846154 0.314516 +vt 0.692308 0.209677 +vt 0.705128 0.266129 +vt 0.692308 0.266129 +vt 0.833333 0.266129 +vt 0.705128 0.314516 +vt 0.730769 0.387097 +vt 0.705128 0.370968 +vt 0.730769 0.370968 +vt 0.692308 0.387097 +vt 0.692308 0.467742 +vt 0.705128 0.387097 +vt 0.705128 0.467742 +vt 0.730769 0.387097 +vt 0.730769 0.467742 +vt 0.730769 0.387097 +vt 0.705128 0.370968 +vt 0.730769 0.370968 +vt 0.705128 0.387097 +vt 0.692308 0.467742 +vt 0.692308 0.387097 +vt 0.730769 0.467742 +vt 0.705128 0.387097 +vt 0.730769 0.387097 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.833333 0.540323 +vt 0.846154 0.629032 +vt 0.833333 0.629032 +vt 0.820513 0.540323 +vt 0.820513 0.629032 +vt 0.807692 0.540323 +vt 0.807692 0.629032 +vt 0.794872 0.540323 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.612903 +vt 0.743590 0.483871 +vt 0.692308 0.612903 +vt 0.743590 0.612903 +vt 0.692308 0.612903 +vt 0.743590 0.483871 +vt 0.576923 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.576923 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.576923 1.000000 +vt 0.615385 -0.000000 +vt 0.576923 -0.000000 +vt 0.576923 1.000000 +vt 0.615385 -0.000000 +vt 0.576923 -0.000000 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.258065 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.258065 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.129032 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.730769 0.709677 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.730769 0.709677 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.705128 0.709677 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.269231 0.725806 +vt 0.012821 0.000000 +vt 0.012821 0.000000 +vt 0.012821 0.000000 +vt 0.012821 0.000000 +vt 0.397436 0.596774 +vt 0.371795 0.532258 +vt 0.371795 0.564516 +vt 0.269231 0.854839 +vt 0.217949 0.725806 +vt 0.256410 0.725806 +vt 0.256410 0.806452 +vt 0.115385 0.548387 +vt 0.115385 0.596774 +vt 0.102564 0.612903 +vt 0.564103 0.500000 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.274194 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.000000 +vt 0.564103 0.000000 +vt 0.564103 0.500000 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.274194 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.000000 +vt 0.564103 0.000000 +vt 0.833333 0.387097 +vt 0.833333 0.467742 +vt 0.705128 0.072581 +vt 0.833333 0.370968 +vt 0.833333 0.370968 +vt 0.705128 0.072581 +vt 0.750000 0.016129 +vt 0.788462 0.016129 +vt 0.833333 0.120968 +vt 0.750000 0.177419 +vt 0.692308 1.000000 +vt 0.705128 0.266129 +vt 0.705128 0.266129 +vt 0.750000 0.209677 +vt 0.788462 0.209677 +vt 0.833333 0.314516 +vt 0.750000 0.370968 +vt 0.692308 1.000000 +vt 0.692308 1.000000 +vt 0.692308 1.000000 +vt 0.576923 1.000000 +vt 0.576923 1.000000 +vt 0.615385 1.000000 +vt 0.615385 1.000000 +vt 0.705128 0.483871 +vt 0.705128 0.483871 +vt 0.705128 0.266129 +vt 0.750000 0.209677 +vt 0.788462 0.209677 +vt 0.833333 0.314516 +vt 0.750000 0.370968 +vt 0.833333 0.370968 +vt 0.705128 0.209677 +vt 0.705128 0.387097 +vt 0.705128 0.467742 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.730769 0.709677 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.693548 +vt 0.846154 0.540323 +vt 0.576923 1.000000 +vt 0.576923 1.000000 +vt 0.615385 1.000000 +vt 0.615385 1.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.000000 +vt 0.461538 0.000000 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.000000 +vt 0.461538 0.000000 +vt 0.564103 0.000000 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.730769 0.709677 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.693548 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.693548 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.730769 0.709677 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.693548 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.693548 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.730769 0.709677 +vt 0.846154 0.629032 +vt 0.846154 0.693548 vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 vn 1.0000 0.0000 0.0000 @@ -2514,6 +5490,10 @@ vn 0.0000 0.4472 0.8944 vn -0.6428 -0.7660 0.0000 vn 0.0000 0.4472 -0.8944 vn 0.0000 -0.4472 0.8944 +vn 0.4545 -0.7660 -0.4545 +vn -0.4545 0.7660 0.4545 +vn -0.8412 0.0000 -0.5408 +vn 0.5408 0.0000 0.8412 vn 0.4545 0.7660 -0.4545 vn -0.6325 -0.4472 -0.6325 vn 0.6325 0.4472 0.6325 @@ -2526,720 +5506,757 @@ vn -0.6325 0.4472 0.6325 vn -0.4545 -0.7660 -0.4545 vn 0.6325 0.4472 -0.6325 vn -0.6325 -0.4472 0.6325 -vn -0.4545 0.7660 -0.4545 -vn 0.4545 -0.7660 0.4545 vn -0.6428 0.7660 0.0000 vn 0.6428 -0.7660 0.0000 -vn 0.4545 -0.7660 -0.4545 -vn -0.4545 0.7660 0.4545 -vn -0.5417 -0.6428 0.5417 +vn -0.4545 0.7660 -0.4545 +vn 0.4545 -0.7660 0.4545 s off -f 902//51 899//51 900//51 -f 875//51 880//51 876//51 -f 885//52 890//52 886//52 -f 880//53 886//53 882//53 -f 881//54 884//54 879//54 -f 882//55 883//55 881//55 -f 879//56 885//56 880//56 -f 890//55 891//55 889//55 -f 886//52 889//52 883//52 -f 883//52 887//52 884//52 -f 884//52 888//52 885//52 -f 877//51 879//51 875//51 -f 887//56 893//56 888//56 -f 888//53 894//53 890//53 -f 889//54 892//54 887//54 -f 878//51 881//51 877//51 -f 876//51 882//51 878//51 -f 896//57 875//57 876//57 -f 895//58 877//58 875//58 -f 897//59 878//59 877//59 -f 898//60 876//60 878//60 -f 911//55 905//55 910//55 -f 904//51 909//51 903//51 -f 912//53 904//53 907//53 -f 903//56 907//56 904//56 -f 910//57 912//57 911//57 -f 910//54 905//54 906//54 -f 925//55 924//55 923//55 -f 921//54 926//54 920//54 -f 919//56 921//56 920//56 -f 913//53 918//53 919//53 -f 927//51 925//51 921//51 -f 962//52 961//52 960//52 -f 961//56 965//56 960//56 -f 966//51 964//51 965//51 -f 962//55 967//55 963//55 -f 968//56 971//56 970//56 -f 960//54 964//54 962//54 -f 963//53 966//53 961//53 -f 937//56 953//56 936//56 -f 931//53 946//53 929//53 -f 939//53 954//53 937//53 -f 930//55 947//55 931//55 -f 938//55 955//55 939//55 -f 932//54 948//54 934//54 -f 940//54 956//54 942//54 -f 933//56 949//56 932//56 -f 941//56 957//56 940//56 -f 935//53 950//53 933//53 -f 943//53 958//53 941//53 -f 934//55 951//55 935//55 -f 928//54 944//54 930//54 -f 942//55 959//55 943//55 -f 936//54 952//54 938//54 -f 929//56 945//56 928//56 -f 972//55 975//55 973//55 -f 979//53 976//53 978//53 -f 983//54 980//54 981//54 -f 1018//52 1017//52 1016//52 -f 1017//56 1021//56 1016//56 -f 1022//51 1020//51 1021//51 -f 1018//55 1023//55 1019//55 -f 1024//56 1027//56 1026//56 -f 1016//54 1020//54 1018//54 -f 1019//53 1022//53 1017//53 -f 993//56 1009//56 992//56 -f 987//53 1002//53 985//53 -f 995//53 1010//53 993//53 -f 986//55 1003//55 987//55 -f 994//55 1011//55 995//55 -f 988//54 1004//54 990//54 -f 996//54 1012//54 998//54 -f 989//56 1005//56 988//56 -f 997//56 1013//56 996//56 -f 991//53 1006//53 989//53 -f 999//53 1014//53 997//53 -f 990//55 1007//55 991//55 -f 984//54 1000//54 986//54 -f 998//55 1015//55 999//55 -f 992//54 1008//54 994//54 -f 985//56 1001//56 984//56 -f 1028//55 1031//55 1029//55 -f 1035//53 1032//53 1034//53 -f 1039//54 1036//54 1037//54 -f 1074//52 1073//52 1072//52 -f 1073//56 1077//56 1072//56 -f 1078//51 1076//51 1077//51 -f 1074//55 1079//55 1075//55 -f 1080//56 1083//56 1082//56 -f 1072//54 1076//54 1074//54 -f 1075//53 1078//53 1073//53 -f 1049//56 1065//56 1048//56 -f 1043//53 1058//53 1041//53 -f 1051//53 1066//53 1049//53 -f 1042//55 1059//55 1043//55 -f 1050//55 1067//55 1051//55 -f 1044//54 1060//54 1046//54 -f 1052//54 1068//54 1054//54 -f 1045//56 1061//56 1044//56 -f 1053//56 1069//56 1052//56 -f 1047//53 1062//53 1045//53 -f 1055//53 1070//53 1053//53 -f 1046//55 1063//55 1047//55 -f 1040//54 1056//54 1042//54 -f 1054//55 1071//55 1055//55 -f 1048//54 1064//54 1050//54 -f 1041//56 1057//56 1040//56 -f 1084//55 1087//55 1085//55 -f 1091//53 1088//53 1090//53 -f 1095//54 1092//54 1093//54 -f 1130//52 1129//52 1128//52 -f 1129//56 1133//56 1128//56 -f 1134//51 1132//51 1133//51 -f 1130//55 1135//55 1131//55 -f 1136//56 1139//56 1138//56 -f 1128//54 1132//54 1130//54 -f 1131//53 1134//53 1129//53 -f 1105//56 1121//56 1104//56 -f 1099//53 1114//53 1097//53 -f 1107//53 1122//53 1105//53 -f 1098//55 1115//55 1099//55 -f 1106//55 1123//55 1107//55 -f 1100//54 1116//54 1102//54 -f 1108//54 1124//54 1110//54 -f 1101//56 1117//56 1100//56 -f 1109//56 1125//56 1108//56 -f 1103//53 1118//53 1101//53 -f 1111//53 1126//53 1109//53 -f 1102//55 1119//55 1103//55 -f 1096//54 1112//54 1098//54 -f 1110//55 1127//55 1111//55 -f 1104//54 1120//54 1106//54 -f 1097//56 1113//56 1096//56 -f 1140//55 1143//55 1141//55 -f 1147//53 1144//53 1146//53 -f 1151//54 1148//54 1149//54 -f 1157//61 1152//61 1154//61 -f 1156//62 1155//62 1153//62 -f 1181//52 1160//52 1175//52 -f 1158//63 1160//63 1161//63 -f 1172//51 1158//51 1171//51 -f 1171//64 1161//64 1181//64 -f 1163//52 1176//52 1178//52 -f 1168//51 1162//51 1167//51 -f 1163//65 1164//65 1165//65 -f 1167//66 1163//66 1178//66 -f 1175//54 1173//54 1174//54 -f 1176//53 1169//53 1177//53 -f 1175//66 1159//66 1172//66 -f 1176//64 1164//64 1168//64 -f 1180//56 1171//56 1181//56 -f 1179//55 1167//55 1178//55 -f 1176//52 1180//52 1175//52 -f 1170//51 1168//51 1166//51 -f 1177//64 1170//64 1180//64 -f 1174//66 1166//66 1179//66 -f 1237//66 1245//66 1232//66 -f 1193//55 1215//55 1191//55 -f 1234//64 1241//64 1231//64 -f 1241//51 1243//51 1245//51 -f 1235//52 1231//52 1236//52 -f 1188//55 1199//55 1189//55 -f 1194//56 1221//56 1196//56 -f 1196//54 1220//54 1197//54 -f 1197//55 1219//55 1195//55 -f 1183//56 1205//56 1182//56 -f 1182//54 1202//54 1184//54 -f 1191//53 1214//53 1190//53 -f 1185//53 1204//53 1183//53 -f 1184//55 1203//55 1185//55 -f 1186//54 1198//54 1188//54 -f 1192//54 1216//54 1193//54 -f 1189//53 1200//53 1187//53 -f 1187//56 1201//56 1186//56 -f 1190//56 1217//56 1192//56 -f 1195//53 1218//53 1194//53 -f 1227//66 1206//66 1211//66 -f 1228//64 1209//64 1212//64 -f 1208//63 1226//63 1210//63 -f 1207//65 1229//65 1213//65 -f 1232//55 1244//55 1233//55 -f 1231//56 1240//56 1230//56 -f 1235//64 1263//64 1243//64 -f 1236//66 1268//66 1239//66 -f 1235//53 1242//53 1234//53 -f 1236//54 1238//54 1237//54 -f 1251//52 1249//52 1247//52 -f 1257//51 1259//51 1261//51 -f 1250//64 1257//64 1249//64 -f 1246//66 1261//66 1253//66 -f 1253//55 1260//55 1252//55 -f 1249//56 1256//56 1248//56 -f 1252//65 1259//65 1251//65 -f 1248//63 1255//63 1247//63 -f 1251//53 1258//53 1250//53 -f 1247//54 1254//54 1246//54 -f 1244//66 1264//66 1233//66 -f 1264//65 1263//65 1262//65 -f 1243//51 1265//51 1244//51 -f 1264//52 1235//52 1233//52 -f 1240//64 1266//64 1230//64 -f 1239//51 1269//51 1240//51 -f 1269//63 1267//63 1266//63 -f 1230//52 1267//52 1236//52 -f 1271//53 1272//53 1270//53 -f 1274//54 1276//54 1275//54 -f 1273//55 1274//55 1272//55 -f 1270//56 1276//56 1271//56 -f 1271//52 1277//52 1273//52 -f 1272//51 1275//51 1270//51 -f 1284//51 1282//51 1283//51 -f 1281//53 1284//53 1279//53 -f 1278//54 1282//54 1280//54 -f 1280//55 1285//55 1281//55 -f 1279//56 1283//56 1278//56 -f 1294//55 1289//55 1288//55 -f 1289//67 1296//67 1287//67 -f 1291//54 1298//54 1301//54 -f 1296//56 1286//56 1287//56 -f 1291//68 1300//68 1290//68 -f 1292//69 1298//69 1293//69 -f 1295//70 1288//70 1286//70 -f 1290//53 1299//53 1292//53 -f 1303//53 1309//53 1308//53 -f 1302//54 1306//54 1304//54 -f 1304//71 1309//71 1305//71 -f 1303//72 1307//72 1302//72 -f 1311//65 1312//65 1310//65 -f 1314//63 1316//63 1315//63 -f 1313//66 1314//66 1312//66 -f 1310//64 1316//64 1311//64 -f 1311//52 1317//52 1313//52 -f 1312//51 1315//51 1310//51 -f 1324//51 1322//51 1323//51 -f 1321//65 1324//65 1319//65 -f 1318//63 1322//63 1320//63 -f 1320//66 1325//66 1321//66 -f 1319//64 1323//64 1318//64 -f 1334//66 1329//66 1328//66 -f 1329//73 1336//73 1327//73 -f 1331//63 1338//63 1341//63 -f 1336//64 1326//64 1327//64 -f 1331//74 1340//74 1330//74 -f 1332//75 1338//75 1333//75 -f 1335//76 1328//76 1326//76 -f 1330//65 1339//65 1332//65 -f 1343//65 1349//65 1348//65 -f 1342//63 1346//63 1344//63 -f 1344//77 1349//77 1345//77 -f 1343//78 1347//78 1342//78 -f 1351//64 1352//64 1350//64 -f 1354//66 1356//66 1355//66 -f 1353//65 1354//65 1352//65 -f 1350//63 1356//63 1351//63 -f 1351//52 1357//52 1353//52 -f 1350//51 1354//51 1355//51 -f 1364//51 1362//51 1363//51 -f 1361//64 1364//64 1359//64 -f 1358//66 1362//66 1360//66 -f 1360//65 1365//65 1361//65 -f 1359//63 1363//63 1358//63 -f 1374//65 1369//65 1368//65 -f 1369//79 1376//79 1367//79 -f 1371//66 1378//66 1381//66 -f 1376//63 1366//63 1367//63 -f 1371//80 1380//80 1370//80 -f 1372//81 1378//81 1373//81 -f 1375//82 1368//82 1366//82 -f 1370//64 1379//64 1372//64 -f 1383//64 1389//64 1388//64 -f 1382//66 1386//66 1384//66 -f 1385//83 1386//83 1389//83 -f 1383//84 1387//84 1382//84 -f 1391//66 1392//66 1390//66 -f 1394//64 1396//64 1395//64 -f 1393//63 1394//63 1392//63 -f 1390//65 1396//65 1391//65 -f 1391//52 1397//52 1393//52 -f 1390//51 1394//51 1395//51 -f 1404//51 1402//51 1403//51 -f 1401//66 1404//66 1399//66 -f 1398//64 1402//64 1400//64 -f 1400//63 1405//63 1401//63 -f 1399//65 1403//65 1398//65 -f 1414//63 1409//63 1408//63 -f 1409//85 1416//85 1407//85 -f 1411//64 1418//64 1421//64 -f 1416//65 1406//65 1407//65 -f 1411//84 1420//84 1410//84 -f 1412//83 1418//83 1413//83 -f 1406//86 1414//86 1408//86 -f 1410//66 1419//66 1412//66 -f 1423//66 1429//66 1428//66 -f 1422//64 1426//64 1424//64 -f 1425//81 1426//81 1429//81 -f 1423//80 1427//80 1422//80 -f 1431//54 1432//54 1430//54 -f 1434//53 1436//53 1435//53 -f 1433//56 1434//56 1432//56 -f 1430//55 1436//55 1431//55 -f 1431//52 1437//52 1433//52 -f 1430//51 1434//51 1435//51 -f 1444//51 1442//51 1443//51 -f 1441//54 1444//54 1439//54 -f 1438//53 1442//53 1440//53 -f 1440//56 1445//56 1441//56 -f 1439//55 1443//55 1438//55 -f 1454//56 1449//56 1448//56 -f 1449//87 1456//87 1447//87 -f 1451//53 1458//53 1461//53 -f 1447//55 1455//55 1446//55 -f 1451//72 1460//72 1450//72 -f 1452//71 1458//71 1453//71 -f 1455//88 1448//88 1446//88 -f 1450//54 1459//54 1452//54 -f 1463//54 1469//54 1468//54 -f 1462//53 1466//53 1464//53 -f 1465//69 1466//69 1469//69 -f 1462//68 1468//68 1467//68 -f 1471//63 1472//63 1470//63 -f 1474//65 1476//65 1475//65 -f 1473//64 1474//64 1472//64 -f 1470//66 1476//66 1471//66 -f 1471//52 1477//52 1473//52 -f 1470//51 1474//51 1475//51 -f 1480//89 1487//89 1486//89 -f 1478//64 1486//64 1489//64 -f 1483//65 1490//65 1493//65 -f 1479//90 1489//90 1488//90 -f 1483//78 1492//78 1482//78 -f 1485//77 1491//77 1490//77 -f 1481//66 1488//66 1487//66 -f 1482//63 1491//63 1484//63 -f 1495//63 1501//63 1500//63 -f 1494//65 1498//65 1496//65 -f 1497//75 1498//75 1501//75 -f 1495//74 1499//74 1494//74 -f 1480//91 1479//91 1481//91 -f 902//51 901//51 899//51 -f 875//51 879//51 880//51 -f 885//52 888//52 890//52 -f 880//53 885//53 886//53 -f 881//54 883//54 884//54 -f 882//55 886//55 883//55 -f 879//56 884//56 885//56 -f 890//55 894//55 891//55 -f 886//52 890//52 889//52 -f 883//52 889//52 887//52 -f 884//52 887//52 888//52 -f 877//51 881//51 879//51 -f 887//56 892//56 893//56 -f 888//53 893//53 894//53 -f 889//54 891//54 892//54 -f 878//51 882//51 881//51 -f 876//51 880//51 882//51 -f 896//57 895//57 875//57 -f 895//58 897//58 877//58 -f 897//59 898//59 878//59 -f 898//60 896//60 876//60 -f 911//55 908//55 905//55 -f 904//51 912//51 909//51 -f 908//53 911//53 907//53 -f 911//53 912//53 907//53 -f 903//56 906//56 907//56 -f 910//57 909//57 912//57 -f 906//54 903//54 909//54 -f 909//54 910//54 906//54 -f 923//55 914//55 922//55 -f 922//55 926//55 923//55 -f 926//55 925//55 923//55 -f 921//54 925//54 926//54 -f 919//56 918//56 921//56 -f 919//53 915//53 913//53 -f 915//53 916//53 913//53 -f 913//53 917//53 918//53 -f 918//51 917//51 927//51 -f 927//51 924//51 925//51 -f 921//51 918//51 927//51 -f 962//52 963//52 961//52 -f 961//56 966//56 965//56 -f 966//51 967//51 964//51 -f 962//55 964//55 967//55 -f 968//56 969//56 971//56 -f 960//54 965//54 964//54 -f 963//53 967//53 966//53 -f 937//56 954//56 953//56 -f 931//53 947//53 946//53 -f 939//53 955//53 954//53 -f 930//55 944//55 947//55 -f 938//55 952//55 955//55 -f 932//54 949//54 948//54 -f 940//54 957//54 956//54 -f 933//56 950//56 949//56 -f 941//56 958//56 957//56 -f 935//53 951//53 950//53 -f 943//53 959//53 958//53 -f 934//55 948//55 951//55 -f 928//54 945//54 944//54 -f 942//55 956//55 959//55 -f 936//54 953//54 952//54 -f 929//56 946//56 945//56 -f 972//55 974//55 975//55 -f 979//53 977//53 976//53 -f 983//54 982//54 980//54 -f 1018//52 1019//52 1017//52 -f 1017//56 1022//56 1021//56 -f 1022//51 1023//51 1020//51 -f 1018//55 1020//55 1023//55 -f 1024//56 1025//56 1027//56 -f 1016//54 1021//54 1020//54 -f 1019//53 1023//53 1022//53 -f 993//56 1010//56 1009//56 -f 987//53 1003//53 1002//53 -f 995//53 1011//53 1010//53 -f 986//55 1000//55 1003//55 -f 994//55 1008//55 1011//55 -f 988//54 1005//54 1004//54 -f 996//54 1013//54 1012//54 -f 989//56 1006//56 1005//56 -f 997//56 1014//56 1013//56 -f 991//53 1007//53 1006//53 -f 999//53 1015//53 1014//53 -f 990//55 1004//55 1007//55 -f 984//54 1001//54 1000//54 -f 998//55 1012//55 1015//55 -f 992//54 1009//54 1008//54 -f 985//56 1002//56 1001//56 -f 1028//55 1030//55 1031//55 -f 1035//53 1033//53 1032//53 -f 1039//54 1038//54 1036//54 -f 1074//52 1075//52 1073//52 -f 1073//56 1078//56 1077//56 -f 1078//51 1079//51 1076//51 -f 1074//55 1076//55 1079//55 -f 1080//56 1081//56 1083//56 -f 1072//54 1077//54 1076//54 -f 1075//53 1079//53 1078//53 -f 1049//56 1066//56 1065//56 -f 1043//53 1059//53 1058//53 -f 1051//53 1067//53 1066//53 -f 1042//55 1056//55 1059//55 -f 1050//55 1064//55 1067//55 -f 1044//54 1061//54 1060//54 -f 1052//54 1069//54 1068//54 -f 1045//56 1062//56 1061//56 -f 1053//56 1070//56 1069//56 -f 1047//53 1063//53 1062//53 -f 1055//53 1071//53 1070//53 -f 1046//55 1060//55 1063//55 -f 1040//54 1057//54 1056//54 -f 1054//55 1068//55 1071//55 -f 1048//54 1065//54 1064//54 -f 1041//56 1058//56 1057//56 -f 1084//55 1086//55 1087//55 -f 1091//53 1089//53 1088//53 -f 1095//54 1094//54 1092//54 -f 1130//52 1131//52 1129//52 -f 1129//56 1134//56 1133//56 -f 1134//51 1135//51 1132//51 -f 1130//55 1132//55 1135//55 -f 1136//56 1137//56 1139//56 -f 1128//54 1133//54 1132//54 -f 1131//53 1135//53 1134//53 -f 1105//56 1122//56 1121//56 -f 1099//53 1115//53 1114//53 -f 1107//53 1123//53 1122//53 -f 1098//55 1112//55 1115//55 -f 1106//55 1120//55 1123//55 -f 1100//54 1117//54 1116//54 -f 1108//54 1125//54 1124//54 -f 1101//56 1118//56 1117//56 -f 1109//56 1126//56 1125//56 -f 1103//53 1119//53 1118//53 -f 1111//53 1127//53 1126//53 -f 1102//55 1116//55 1119//55 -f 1096//54 1113//54 1112//54 -f 1110//55 1124//55 1127//55 -f 1104//54 1121//54 1120//54 -f 1097//56 1114//56 1113//56 -f 1140//55 1142//55 1143//55 -f 1147//53 1145//53 1144//53 -f 1151//54 1150//54 1148//54 -f 1181//52 1161//52 1160//52 -f 1158//63 1159//63 1160//63 -f 1172//51 1159//51 1158//51 -f 1171//64 1158//64 1161//64 -f 1163//52 1165//52 1176//52 -f 1168//51 1164//51 1162//51 -f 1163//65 1162//65 1164//65 -f 1167//66 1162//66 1163//66 -f 1175//54 1172//54 1173//54 -f 1176//53 1168//53 1169//53 -f 1175//66 1160//66 1159//66 -f 1176//64 1165//64 1164//64 -f 1180//56 1170//56 1171//56 -f 1179//55 1166//55 1167//55 -f 1175//52 1174//52 1179//52 -f 1179//52 1178//52 1176//52 -f 1176//52 1177//52 1180//52 -f 1180//52 1181//52 1175//52 -f 1175//52 1179//52 1176//52 -f 1166//51 1173//51 1172//51 -f 1172//51 1171//51 1170//51 -f 1170//51 1169//51 1168//51 -f 1168//51 1167//51 1166//51 -f 1166//51 1172//51 1170//51 -f 1177//64 1169//64 1170//64 -f 1174//66 1173//66 1166//66 -f 1237//66 1238//66 1245//66 -f 1193//55 1216//55 1215//55 -f 1234//64 1242//64 1241//64 -f 1245//51 1238//51 1239//51 -f 1239//51 1240//51 1241//51 -f 1241//51 1242//51 1243//51 -f 1243//51 1244//51 1245//51 -f 1245//51 1239//51 1241//51 -f 1236//52 1237//52 1232//52 -f 1232//52 1233//52 1235//52 -f 1235//52 1234//52 1231//52 -f 1231//52 1230//52 1236//52 -f 1236//52 1232//52 1235//52 -f 1188//55 1198//55 1199//55 -f 1194//56 1218//56 1221//56 -f 1196//54 1221//54 1220//54 -f 1197//55 1220//55 1219//55 -f 1183//56 1204//56 1205//56 -f 1182//54 1205//54 1202//54 -f 1191//53 1215//53 1214//53 -f 1185//53 1203//53 1204//53 -f 1184//55 1202//55 1203//55 -f 1186//54 1201//54 1198//54 -f 1192//54 1217//54 1216//54 -f 1189//53 1199//53 1200//53 -f 1187//56 1200//56 1201//56 -f 1190//56 1214//56 1217//56 -f 1195//53 1219//53 1218//53 -f 1227//66 1222//66 1206//66 -f 1228//64 1225//64 1209//64 -f 1208//63 1224//63 1226//63 -f 1207//65 1223//65 1229//65 -f 1232//55 1245//55 1244//55 -f 1231//56 1241//56 1240//56 -f 1235//64 1262//64 1263//64 -f 1236//66 1267//66 1268//66 -f 1235//53 1243//53 1242//53 -f 1236//54 1239//54 1238//54 -f 1247//52 1246//52 1253//52 -f 1253//52 1252//52 1251//52 -f 1251//52 1250//52 1249//52 -f 1249//52 1248//52 1247//52 -f 1247//52 1253//52 1251//52 -f 1261//51 1254//51 1255//51 -f 1255//51 1256//51 1257//51 -f 1257//51 1258//51 1259//51 -f 1259//51 1260//51 1261//51 -f 1261//51 1255//51 1257//51 -f 1250//64 1258//64 1257//64 -f 1246//66 1254//66 1261//66 -f 1253//55 1261//55 1260//55 -f 1249//56 1257//56 1256//56 -f 1252//65 1260//65 1259//65 -f 1248//63 1256//63 1255//63 -f 1251//53 1259//53 1258//53 -f 1247//54 1255//54 1254//54 -f 1244//66 1265//66 1264//66 -f 1264//65 1265//65 1263//65 -f 1243//51 1263//51 1265//51 -f 1264//52 1262//52 1235//52 -f 1240//64 1269//64 1266//64 -f 1239//51 1268//51 1269//51 -f 1269//63 1268//63 1267//63 -f 1230//52 1266//52 1267//52 -f 1271//53 1273//53 1272//53 -f 1274//54 1277//54 1276//54 -f 1273//55 1277//55 1274//55 -f 1270//56 1275//56 1276//56 -f 1271//52 1276//52 1277//52 -f 1272//51 1274//51 1275//51 -f 1284//51 1285//51 1282//51 -f 1281//53 1285//53 1284//53 -f 1278//54 1283//54 1282//54 -f 1280//55 1282//55 1285//55 -f 1279//56 1284//56 1283//56 -f 1294//55 1297//55 1289//55 -f 1289//67 1297//67 1296//67 -f 1291//54 1293//54 1298//54 -f 1296//56 1295//56 1286//56 -f 1291//68 1301//68 1300//68 -f 1292//69 1299//69 1298//69 -f 1295//70 1294//70 1288//70 -f 1290//53 1300//53 1299//53 -f 1303//53 1305//53 1309//53 -f 1302//54 1307//54 1306//54 -f 1304//71 1306//71 1309//71 -f 1303//72 1308//72 1307//72 -f 1311//65 1313//65 1312//65 -f 1314//63 1317//63 1316//63 -f 1313//66 1317//66 1314//66 -f 1310//64 1315//64 1316//64 -f 1311//52 1316//52 1317//52 -f 1312//51 1314//51 1315//51 -f 1324//51 1325//51 1322//51 -f 1321//65 1325//65 1324//65 -f 1318//63 1323//63 1322//63 -f 1320//66 1322//66 1325//66 -f 1319//64 1324//64 1323//64 -f 1334//66 1337//66 1329//66 -f 1329//73 1337//73 1336//73 -f 1331//63 1333//63 1338//63 -f 1336//64 1335//64 1326//64 -f 1331//74 1341//74 1340//74 -f 1332//75 1339//75 1338//75 -f 1335//76 1334//76 1328//76 -f 1330//65 1340//65 1339//65 -f 1343//65 1345//65 1349//65 -f 1342//63 1347//63 1346//63 -f 1344//77 1346//77 1349//77 -f 1343//78 1348//78 1347//78 -f 1351//64 1353//64 1352//64 -f 1354//66 1357//66 1356//66 -f 1353//65 1357//65 1354//65 -f 1350//63 1355//63 1356//63 -f 1351//52 1356//52 1357//52 -f 1350//51 1352//51 1354//51 -f 1364//51 1365//51 1362//51 -f 1361//64 1365//64 1364//64 -f 1358//66 1363//66 1362//66 -f 1360//65 1362//65 1365//65 -f 1359//63 1364//63 1363//63 -f 1374//65 1377//65 1369//65 -f 1369//79 1377//79 1376//79 -f 1371//66 1373//66 1378//66 -f 1376//63 1375//63 1366//63 -f 1371//80 1381//80 1380//80 -f 1372//81 1379//81 1378//81 -f 1375//82 1374//82 1368//82 -f 1370//64 1380//64 1379//64 -f 1383//64 1385//64 1389//64 -f 1382//66 1387//66 1386//66 -f 1385//83 1384//83 1386//83 -f 1383//84 1388//84 1387//84 -f 1391//66 1393//66 1392//66 -f 1394//64 1397//64 1396//64 -f 1393//63 1397//63 1394//63 -f 1390//65 1395//65 1396//65 -f 1391//52 1396//52 1397//52 -f 1390//51 1392//51 1394//51 -f 1404//51 1405//51 1402//51 -f 1401//66 1405//66 1404//66 -f 1398//64 1403//64 1402//64 -f 1400//63 1402//63 1405//63 -f 1399//65 1404//65 1403//65 -f 1414//63 1417//63 1409//63 -f 1409//85 1417//85 1416//85 -f 1411//64 1413//64 1418//64 -f 1416//65 1415//65 1406//65 -f 1411//84 1421//84 1420//84 -f 1412//83 1419//83 1418//83 -f 1406//86 1415//86 1414//86 -f 1410//66 1420//66 1419//66 -f 1423//66 1425//66 1429//66 -f 1422//64 1427//64 1426//64 -f 1425//81 1424//81 1426//81 -f 1423//80 1428//80 1427//80 -f 1431//54 1433//54 1432//54 -f 1434//53 1437//53 1436//53 -f 1433//56 1437//56 1434//56 -f 1430//55 1435//55 1436//55 -f 1431//52 1436//52 1437//52 -f 1430//51 1432//51 1434//51 -f 1444//51 1445//51 1442//51 -f 1441//54 1445//54 1444//54 -f 1438//53 1443//53 1442//53 -f 1440//56 1442//56 1445//56 -f 1439//55 1444//55 1443//55 -f 1454//56 1457//56 1449//56 -f 1449//87 1457//87 1456//87 -f 1451//53 1453//53 1458//53 -f 1447//55 1456//55 1455//55 -f 1451//72 1461//72 1460//72 -f 1452//71 1459//71 1458//71 -f 1455//88 1454//88 1448//88 -f 1450//54 1460//54 1459//54 -f 1463//54 1465//54 1469//54 -f 1462//53 1467//53 1466//53 -f 1465//69 1464//69 1466//69 -f 1462//68 1463//68 1468//68 -f 1471//63 1473//63 1472//63 -f 1474//65 1477//65 1476//65 -f 1473//64 1477//64 1474//64 -f 1470//66 1475//66 1476//66 -f 1471//52 1476//52 1477//52 -f 1470//51 1472//51 1474//51 -f 1480//89 1481//89 1487//89 -f 1478//64 1480//64 1486//64 -f 1483//65 1485//65 1490//65 -f 1479//90 1478//90 1489//90 -f 1483//78 1493//78 1492//78 -f 1485//77 1484//77 1491//77 -f 1481//66 1479//66 1488//66 -f 1482//63 1492//63 1491//63 -f 1495//63 1497//63 1501//63 -f 1494//65 1499//65 1498//65 -f 1497//75 1496//75 1498//75 -f 1495//74 1500//74 1499//74 -f 1480//91 1478//91 1479//91 +f 1214/1492/52 1211/1493/52 1212/1494/52 +f 1187/1495/52 1192/1496/52 1188/1497/52 +f 1197/1498/53 1202/1499/53 1198/1500/53 +f 1192/1496/54 1198/1500/54 1194/1501/54 +f 1193/1502/55 1196/1503/55 1191/1504/55 +f 1194/1505/56 1195/1506/56 1193/1507/56 +f 1191/1508/57 1197/1509/57 1192/1510/57 +f 1202/1511/56 1203/1512/56 1201/1513/56 +f 1198/1514/53 1201/1513/53 1195/1506/53 +f 1195/1515/53 1199/1516/53 1196/1503/53 +f 1196/1517/53 1200/1518/53 1197/1509/53 +f 1189/1519/52 1191/1520/52 1187/1495/52 +f 1199/1521/57 1205/1522/57 1200/1518/57 +f 1200/1523/54 1206/1524/54 1202/1499/54 +f 1201/1525/55 1204/1526/55 1199/1516/55 +f 1190/1527/52 1193/1528/52 1189/1519/52 +f 1188/1497/52 1194/1501/52 1190/1527/52 +f 1208/1529/58 1187/1495/58 1188/1497/58 +f 1207/1530/59 1189/1519/59 1187/1495/59 +f 1209/1531/60 1190/1527/60 1189/1519/60 +f 1210/1532/61 1188/1497/61 1190/1527/61 +f 1223/1533/56 1217/1534/56 1222/1535/56 +f 1216/1536/52 1221/1537/52 1215/1538/52 +f 1224/1539/54 1216/1536/54 1219/1540/54 +f 1215/1538/57 1219/1541/57 1216/1536/57 +f 1222/1535/58 1224/1539/58 1223/1533/58 +f 1222/1542/55 1217/1543/55 1218/1544/55 +f 1237/1545/56 1236/1546/56 1235/1547/56 +f 1233/1548/55 1238/1549/55 1232/1550/55 +f 1231/1551/57 1233/1548/57 1232/1552/57 +f 1225/1553/54 1230/1554/54 1231/1555/54 +f 1239/1556/52 1237/1545/52 1233/1548/52 +f 1274/1557/53 1273/1558/53 1272/1559/53 +f 1273/1560/57 1277/1561/57 1272/1562/57 +f 1278/1563/52 1276/1564/52 1277/1561/52 +f 1274/1565/56 1279/1566/56 1275/1567/56 +f 1280/1568/57 1283/1569/57 1282/1570/57 +f 1272/1571/55 1276/1564/55 1274/1572/55 +f 1275/1573/54 1278/1563/54 1273/1574/54 +f 1249/1575/57 1265/1576/57 1248/1577/57 +f 1243/1578/54 1258/1579/54 1241/1580/54 +f 1251/1581/54 1266/1582/54 1249/1575/54 +f 1242/1583/56 1259/1584/56 1243/1578/56 +f 1250/1585/56 1267/1586/56 1251/1581/56 +f 1244/1587/55 1260/1588/55 1246/1589/55 +f 1252/1590/55 1268/1591/55 1254/1592/55 +f 1245/1593/57 1261/1594/57 1244/1587/57 +f 1253/1595/57 1269/1596/57 1252/1590/57 +f 1247/1597/54 1262/1598/54 1245/1593/54 +f 1255/1599/54 1270/1600/54 1253/1595/54 +f 1246/1589/56 1263/1601/56 1247/1602/56 +f 1240/1603/55 1256/1604/55 1242/1583/55 +f 1254/1605/56 1271/1606/56 1255/1599/56 +f 1248/1607/55 1264/1608/55 1250/1585/55 +f 1241/1609/57 1257/1610/57 1240/1603/57 +f 1284/1611/56 1287/1612/56 1285/1613/56 +f 1291/1614/54 1288/1615/54 1290/1616/54 +f 1295/1617/55 1292/1618/55 1293/1619/55 +f 1330/1620/53 1329/1621/53 1328/1622/53 +f 1329/1623/57 1333/1624/57 1328/1625/57 +f 1334/1626/52 1332/1627/52 1333/1624/52 +f 1330/1628/56 1335/1629/56 1331/1630/56 +f 1336/1631/57 1339/1632/57 1338/1633/57 +f 1328/1634/55 1332/1627/55 1330/1635/55 +f 1331/1636/54 1334/1626/54 1329/1637/54 +f 1305/1638/57 1321/1639/57 1304/1640/57 +f 1299/1641/54 1314/1642/54 1297/1643/54 +f 1307/1644/54 1322/1645/54 1305/1638/54 +f 1298/1646/56 1315/1647/56 1299/1641/56 +f 1306/1648/56 1323/1649/56 1307/1644/56 +f 1300/1650/55 1316/1651/55 1302/1652/55 +f 1308/1653/55 1324/1654/55 1310/1655/55 +f 1301/1656/57 1317/1657/57 1300/1650/57 +f 1309/1658/57 1325/1659/57 1308/1653/57 +f 1303/1660/54 1318/1661/54 1301/1656/54 +f 1311/1662/54 1326/1663/54 1309/1658/54 +f 1302/1652/56 1319/1664/56 1303/1665/56 +f 1296/1666/55 1312/1667/55 1298/1646/55 +f 1310/1668/56 1327/1669/56 1311/1662/56 +f 1304/1670/55 1320/1671/55 1306/1648/55 +f 1297/1672/57 1313/1673/57 1296/1666/57 +f 1340/1674/56 1343/1675/56 1341/1676/56 +f 1347/1677/54 1344/1678/54 1346/1679/54 +f 1351/1680/55 1348/1681/55 1349/1682/55 +f 1386/1683/53 1385/1684/53 1384/1685/53 +f 1385/1686/57 1389/1687/57 1384/1688/57 +f 1390/1689/52 1388/1690/52 1389/1687/52 +f 1386/1691/56 1391/1692/56 1387/1693/56 +f 1392/1694/57 1395/1695/57 1394/1696/57 +f 1384/1697/55 1388/1690/55 1386/1698/55 +f 1387/1699/54 1390/1689/54 1385/1700/54 +f 1361/1701/57 1377/1702/57 1360/1703/57 +f 1355/1704/54 1370/1705/54 1353/1706/54 +f 1363/1707/54 1378/1708/54 1361/1701/54 +f 1354/1709/56 1371/1710/56 1355/1704/56 +f 1362/1711/56 1379/1712/56 1363/1707/56 +f 1356/1713/55 1372/1714/55 1358/1715/55 +f 1364/1716/55 1380/1717/55 1366/1718/55 +f 1357/1719/57 1373/1720/57 1356/1713/57 +f 1365/1721/57 1381/1722/57 1364/1716/57 +f 1359/1723/54 1374/1724/54 1357/1719/54 +f 1367/1725/54 1382/1726/54 1365/1721/54 +f 1358/1715/56 1375/1727/56 1359/1728/56 +f 1352/1729/55 1368/1730/55 1354/1709/55 +f 1366/1731/56 1383/1732/56 1367/1725/56 +f 1360/1733/55 1376/1734/55 1362/1711/55 +f 1353/1735/57 1369/1736/57 1352/1729/57 +f 1396/1737/56 1399/1738/56 1397/1739/56 +f 1403/1740/54 1400/1741/54 1402/1742/54 +f 1407/1743/55 1404/1744/55 1405/1745/55 +f 1442/1746/53 1441/1747/53 1440/1748/53 +f 1441/1749/57 1445/1750/57 1440/1751/57 +f 1446/1752/52 1444/1753/52 1445/1750/52 +f 1442/1754/56 1447/1755/56 1443/1756/56 +f 1448/1757/57 1451/1758/57 1450/1759/57 +f 1440/1760/55 1444/1753/55 1442/1761/55 +f 1443/1762/54 1446/1752/54 1441/1763/54 +f 1417/1764/57 1433/1765/57 1416/1766/57 +f 1411/1767/54 1426/1768/54 1409/1769/54 +f 1419/1770/54 1434/1771/54 1417/1764/54 +f 1410/1772/56 1427/1773/56 1411/1767/56 +f 1418/1774/56 1435/1775/56 1419/1770/56 +f 1412/1776/55 1428/1777/55 1414/1778/55 +f 1420/1779/55 1436/1780/55 1422/1781/55 +f 1413/1782/57 1429/1783/57 1412/1776/57 +f 1421/1784/57 1437/1785/57 1420/1779/57 +f 1415/1786/54 1430/1787/54 1413/1782/54 +f 1423/1788/54 1438/1789/54 1421/1784/54 +f 1414/1778/56 1431/1790/56 1415/1791/56 +f 1408/1792/55 1424/1793/55 1410/1772/55 +f 1422/1794/56 1439/1795/56 1423/1788/56 +f 1416/1796/55 1432/1797/55 1418/1774/55 +f 1409/1798/57 1425/1799/57 1408/1792/57 +f 1452/1800/56 1455/1801/56 1453/1802/56 +f 1459/1803/54 1456/1804/54 1458/1805/54 +f 1463/1806/55 1460/1807/55 1461/1808/55 +f 1469/1809/62 1464/1810/62 1466/1811/62 +f 1468/1812/63 1467/1813/63 1465/1814/63 +f 1493/1815/53 1472/1816/53 1487/1817/53 +f 1470/1818/64 1472/1819/64 1473/1820/64 +f 1484/1821/52 1470/1818/52 1483/1822/52 +f 1483/1822/65 1473/1823/65 1493/1824/65 +f 1475/1825/53 1488/1826/53 1490/1827/53 +f 1480/1828/52 1474/1829/52 1479/1830/52 +f 1475/1831/66 1476/1832/66 1477/1833/66 +f 1479/1830/67 1475/1834/67 1490/1835/67 +f 1487/1836/55 1485/1837/55 1486/1838/55 +f 1488/1839/54 1481/1840/54 1489/1841/54 +f 1487/1842/67 1471/1843/67 1484/1821/67 +f 1488/1844/65 1476/1832/65 1480/1828/65 +f 1492/1845/57 1483/1846/57 1493/1847/57 +f 1491/1848/56 1479/1849/56 1490/1850/56 +f 1488/1851/53 1492/1852/53 1487/1853/53 +f 1482/1854/52 1480/1855/52 1478/1856/52 +f 1489/1841/65 1482/1857/65 1492/1858/65 +f 1486/1838/67 1478/1859/67 1491/1860/67 +f 1549/1861/67 1557/1862/67 1544/1863/67 +f 1505/1864/56 1527/1865/56 1503/1866/56 +f 1546/1867/65 1553/1868/65 1543/1869/65 +f 1553/1870/52 1555/1871/52 1557/1872/52 +f 1547/1873/53 1543/1874/53 1548/1875/53 +f 1500/1876/56 1511/1877/56 1501/1878/56 +f 1506/1879/57 1533/1880/57 1508/1881/57 +f 1508/1881/55 1532/1882/55 1509/1883/55 +f 1509/1884/56 1531/1885/56 1507/1886/56 +f 1495/1887/57 1517/1888/57 1494/1889/57 +f 1494/1889/55 1514/1890/55 1496/1891/55 +f 1503/1866/54 1526/1892/54 1502/1893/54 +f 1497/1894/54 1516/1895/54 1495/1887/54 +f 1496/1896/56 1515/1897/56 1497/1894/56 +f 1498/1898/55 1510/1899/55 1500/1900/55 +f 1504/1901/55 1528/1902/55 1505/1903/55 +f 1501/1878/54 1512/1904/54 1499/1905/54 +f 1499/1905/57 1513/1906/57 1498/1898/57 +f 1502/1893/57 1529/1907/57 1504/1901/57 +f 1507/1886/54 1530/1908/54 1506/1879/54 +f 1539/1909/67 1518/1910/67 1523/1911/67 +f 1540/1912/65 1521/1913/65 1524/1914/65 +f 1520/1915/64 1538/1916/64 1522/1917/64 +f 1519/1918/66 1541/1919/66 1525/1920/66 +f 1544/1921/56 1556/1922/56 1545/1923/56 +f 1543/1924/57 1552/1925/57 1542/1926/57 +f 1547/1927/65 1575/1928/65 1555/1929/65 +f 1548/1930/67 1580/1931/67 1551/1932/67 +f 1547/1933/54 1554/1934/54 1546/1867/54 +f 1548/1935/55 1550/1936/55 1549/1861/55 +f 1563/1937/53 1561/1938/53 1559/1939/53 +f 1569/1940/52 1571/1941/52 1573/1942/52 +f 1562/1943/65 1569/1944/65 1561/1945/65 +f 1558/1946/67 1573/1947/67 1565/1948/67 +f 1565/1949/56 1572/1950/56 1564/1951/56 +f 1561/1952/57 1568/1953/57 1560/1954/57 +f 1564/1955/66 1571/1941/66 1563/1956/66 +f 1560/1957/64 1567/1958/64 1559/1959/64 +f 1563/1956/54 1570/1960/54 1562/1943/54 +f 1559/1959/55 1566/1961/55 1558/1946/55 +f 1556/1962/67 1576/1963/67 1545/1964/67 +f 1576/1965/66 1575/1928/66 1574/1966/66 +f 1555/1929/52 1577/1967/52 1556/1962/52 +f 1576/1968/53 1547/1969/53 1545/1970/53 +f 1552/1971/65 1578/1972/65 1542/1973/65 +f 1551/1932/52 1581/1974/52 1552/1971/52 +f 1581/1974/64 1579/1975/64 1578/1976/64 +f 1542/1977/53 1579/1978/53 1548/1979/53 +f 1583/1980/54 1584/1981/54 1582/1982/54 +f 1586/1983/55 1588/1984/55 1587/1985/55 +f 1585/1986/56 1586/1983/56 1584/1981/56 +f 1582/1982/57 1588/1987/57 1583/1980/57 +f 1583/1980/53 1589/1988/53 1585/1986/53 +f 1584/1981/52 1587/1989/52 1582/1982/52 +f 1596/1990/52 1594/1991/52 1595/1992/52 +f 1593/1993/54 1596/1990/54 1591/1994/54 +f 1590/1995/55 1594/1991/55 1592/1996/55 +f 1592/1997/56 1597/1998/56 1593/1999/56 +f 1591/2000/57 1595/1992/57 1590/2001/57 +f 1606/2002/56 1601/2003/56 1600/2004/56 +f 1601/2003/68 1608/2005/68 1599/2006/68 +f 1603/2007/55 1610/2008/55 1613/2009/55 +f 1608/2005/57 1598/2010/57 1599/2006/57 +f 1603/2007/69 1612/2011/69 1602/2012/69 +f 1604/2013/70 1610/2014/70 1605/2015/70 +f 1607/2016/71 1600/2004/71 1598/2017/71 +f 1602/2012/54 1611/2018/54 1604/2013/54 +f 1615/2019/54 1621/2020/54 1620/2021/54 +f 1614/2022/55 1618/2023/55 1616/2024/55 +f 1616/2024/72 1621/2020/72 1617/2025/72 +f 1615/2019/73 1619/2026/73 1614/2027/73 +f 1624/2028/74 1627/2029/74 1626/2030/74 +f 1622/2031/65 1626/2030/65 1629/2032/65 +f 1623/2033/75 1629/2032/75 1628/2034/75 +f 1625/2035/67 1628/2034/67 1627/2036/67 +f 1717/2037/66 1718/2038/66 1716/2039/66 +f 1635/2040/76 1632/2041/76 1630/2042/76 +f 1634/2043/77 1631/2044/77 1633/2045/77 +f 1636/2046/65 1649/2047/65 1641/2048/65 +f 1639/2049/67 1650/2050/67 1642/2051/67 +f 1648/2052/66 1638/2053/66 1640/2054/66 +f 1651/2055/64 1637/2056/64 1643/2057/64 +f 1655/2058/56 1652/2059/56 1654/2060/56 +f 1659/2061/57 1656/2062/57 1657/2063/57 +f 1660/2064/55 1663/2065/55 1662/2066/55 +f 1664/2067/54 1667/2068/54 1665/2069/54 +f 1671/2070/56 1668/2071/56 1670/2072/56 +f 1675/2073/57 1672/2074/57 1673/2075/57 +f 1676/2076/55 1679/2077/55 1678/2078/55 +f 1680/2079/54 1683/2080/54 1681/2081/54 +f 1687/2082/56 1684/2083/56 1686/2084/56 +f 1691/2085/57 1688/2086/57 1689/2087/57 +f 1692/2088/55 1695/2089/55 1694/2090/55 +f 1696/2091/54 1699/2092/54 1697/2093/54 +f 1703/2094/56 1700/2095/56 1702/2096/56 +f 1707/2097/57 1704/2098/57 1705/2099/57 +f 1708/2100/55 1711/2101/55 1710/2102/55 +f 1712/2103/54 1715/2104/54 1713/2105/54 +f 1720/2106/64 1722/2107/64 1721/2108/64 +f 1719/2109/67 1720/2106/67 1718/2038/67 +f 1716/2039/65 1722/2110/65 1717/2037/65 +f 1717/2037/53 1723/2111/53 1719/2109/53 +f 1718/2038/52 1721/2112/52 1716/2039/52 +f 1730/2113/52 1728/2114/52 1729/2115/52 +f 1727/2116/66 1730/2113/66 1725/2117/66 +f 1724/2118/64 1728/2114/64 1726/2119/64 +f 1726/2120/67 1731/2121/67 1727/2122/67 +f 1725/2123/65 1729/2115/65 1724/2124/65 +f 1740/2125/67 1735/2126/67 1734/2127/67 +f 1735/2126/78 1742/2128/78 1733/2129/78 +f 1737/2130/64 1744/2131/64 1747/2132/64 +f 1742/2128/65 1732/2133/65 1733/2129/65 +f 1737/2130/79 1746/2134/79 1736/2135/79 +f 1738/2136/80 1744/2137/80 1739/2138/80 +f 1741/2139/81 1734/2127/81 1732/2140/81 +f 1736/2135/66 1745/2141/66 1738/2136/66 +f 1749/2142/66 1755/2143/66 1754/2144/66 +f 1748/2145/64 1752/2146/64 1750/2147/64 +f 1750/2147/82 1755/2143/82 1751/2148/82 +f 1749/2142/83 1753/2149/83 1748/2150/83 +f 1757/2151/65 1758/2152/65 1756/2153/65 +f 1760/2154/67 1762/2155/67 1761/2156/67 +f 1759/2157/66 1760/2154/66 1758/2152/66 +f 1756/2153/64 1762/2158/64 1757/2151/64 +f 1757/2151/53 1763/2159/53 1759/2157/53 +f 1756/2153/52 1760/2160/52 1761/2161/52 +f 1770/2162/52 1768/2163/52 1769/2164/52 +f 1767/2165/65 1770/2162/65 1765/2166/65 +f 1764/2167/67 1768/2163/67 1766/2168/67 +f 1766/2169/66 1771/2170/66 1767/2171/66 +f 1765/2172/64 1769/2164/64 1764/2173/64 +f 1780/2174/66 1775/2175/66 1774/2176/66 +f 1775/2175/84 1782/2177/84 1773/2178/84 +f 1777/2179/67 1784/2180/67 1787/2181/67 +f 1782/2177/64 1772/2182/64 1773/2178/64 +f 1777/2179/85 1786/2183/85 1776/2184/85 +f 1778/2185/86 1784/2186/86 1779/2187/86 +f 1781/2188/87 1774/2176/87 1772/2189/87 +f 1776/2184/65 1785/2190/65 1778/2185/65 +f 1789/2191/65 1795/2192/65 1794/2193/65 +f 1788/2194/67 1792/2195/67 1790/2196/67 +f 1791/2197/88 1792/2195/88 1795/2192/88 +f 1789/2191/89 1793/2198/89 1788/2199/89 +f 1797/2200/55 1798/2201/55 1796/2202/55 +f 1800/2203/54 1802/2204/54 1801/2205/54 +f 1799/2206/57 1800/2203/57 1798/2201/57 +f 1796/2202/56 1802/2207/56 1797/2200/56 +f 1797/2200/53 1803/2208/53 1799/2206/53 +f 1798/2201/52 1801/2209/52 1796/2202/52 +f 1810/2210/52 1808/2211/52 1809/2212/52 +f 1807/2213/55 1810/2210/55 1805/2214/55 +f 1804/2215/54 1808/2211/54 1806/2216/54 +f 1806/2217/57 1811/2218/57 1807/2219/57 +f 1805/2220/56 1809/2212/56 1804/2221/56 +f 1820/2222/57 1815/2223/57 1814/2224/57 +f 1815/2223/90 1822/2225/90 1813/2226/90 +f 1817/2227/54 1824/2228/54 1827/2229/54 +f 1822/2225/56 1812/2230/56 1813/2226/56 +f 1817/2227/73 1826/2231/73 1816/2232/73 +f 1818/2233/72 1824/2234/72 1819/2235/72 +f 1812/2236/91 1820/2222/91 1814/2224/91 +f 1816/2232/55 1825/2237/55 1818/2233/55 +f 1829/2238/55 1835/2239/55 1834/2240/55 +f 1828/2241/54 1832/2242/54 1830/2243/54 +f 1830/2243/70 1835/2239/70 1831/2244/70 +f 1829/2238/69 1833/2245/69 1828/2246/69 +f 1837/2247/67 1838/2248/67 1836/2249/67 +f 1840/2250/65 1842/2251/65 1841/2252/65 +f 1839/2253/64 1840/2250/64 1838/2248/64 +f 1836/2249/66 1842/2254/66 1837/2247/66 +f 1837/2247/53 1843/2255/53 1839/2253/53 +f 1836/2249/52 1840/2256/52 1841/2257/52 +f 1850/2258/52 1848/2259/52 1849/2260/52 +f 1847/2261/67 1850/2258/67 1845/2262/67 +f 1844/2263/65 1848/2259/65 1846/2264/65 +f 1846/2265/64 1851/2266/64 1847/2267/64 +f 1845/2268/66 1849/2260/66 1844/2269/66 +f 1860/2270/64 1855/2271/64 1854/2272/64 +f 1855/2271/92 1862/2273/92 1853/2274/92 +f 1857/2275/65 1864/2276/65 1867/2277/65 +f 1862/2273/66 1852/2278/66 1853/2274/66 +f 1857/2275/89 1866/2279/89 1856/2280/89 +f 1858/2281/88 1864/2282/88 1859/2283/88 +f 1852/2284/93 1860/2270/93 1854/2272/93 +f 1856/2280/67 1865/2285/67 1858/2281/67 +f 1869/2286/67 1875/2287/67 1874/2288/67 +f 1868/2289/65 1872/2290/65 1870/2291/65 +f 1871/2292/86 1872/2290/86 1875/2287/86 +f 1869/2286/85 1873/2293/85 1868/2294/85 +f 1877/2295/64 1878/2296/64 1876/2297/64 +f 1880/2298/66 1882/2299/66 1881/2300/66 +f 1879/2301/65 1880/2298/65 1878/2296/65 +f 1876/2297/67 1882/2302/67 1877/2295/67 +f 1877/2295/53 1883/2303/53 1879/2301/53 +f 1878/2296/52 1881/2304/52 1876/2297/52 +f 1885/2305/66 1888/2306/66 1891/2307/66 +f 1885/2305/83 1890/2308/83 1884/2309/83 +f 1886/2310/82 1888/2311/82 1887/2312/82 +f 1884/2309/64 1889/2313/64 1886/2310/64 +f 1893/2314/64 1899/2315/64 1898/2316/64 +f 1892/2317/66 1896/2318/66 1894/2319/66 +f 1894/2319/80 1899/2315/80 1895/2320/80 +f 1893/2314/79 1897/2321/79 1892/2322/79 +f 1214/1492/52 1213/2323/52 1211/1493/52 +f 1187/1495/52 1191/1520/52 1192/1496/52 +f 1197/1498/53 1200/1523/53 1202/1499/53 +f 1192/1496/54 1197/1498/54 1198/1500/54 +f 1193/1502/55 1195/1515/55 1196/1503/55 +f 1194/1505/56 1198/1514/56 1195/1506/56 +f 1191/1508/57 1196/1517/57 1197/1509/57 +f 1202/1511/56 1206/2324/56 1203/1512/56 +f 1198/1514/53 1202/1511/53 1201/1513/53 +f 1195/1515/53 1201/1525/53 1199/1516/53 +f 1196/1517/53 1199/1521/53 1200/1518/53 +f 1189/1519/52 1193/1528/52 1191/1520/52 +f 1199/1521/57 1204/2325/57 1205/1522/57 +f 1200/1523/54 1205/2326/54 1206/1524/54 +f 1201/1525/55 1203/2327/55 1204/1526/55 +f 1190/1527/52 1194/1501/52 1193/1528/52 +f 1188/1497/52 1192/1496/52 1194/1501/52 +f 1208/1529/58 1207/1530/58 1187/1495/58 +f 1207/1530/59 1209/1531/59 1189/1519/59 +f 1209/1531/60 1210/1532/60 1190/1527/60 +f 1210/1532/61 1208/1529/61 1188/1497/61 +f 1223/1533/56 1220/2328/56 1217/1534/56 +f 1216/1536/52 1224/1539/52 1221/1537/52 +f 1220/2329/54 1223/2330/54 1219/1540/54 +f 1223/2330/54 1224/1539/54 1219/1540/54 +f 1215/1538/57 1218/2331/57 1219/1541/57 +f 1222/1535/58 1221/1537/58 1224/1539/58 +f 1218/1544/55 1215/1538/55 1221/1537/55 +f 1221/1537/55 1222/1542/55 1218/1544/55 +f 1235/1547/56 1226/2332/56 1234/2333/56 +f 1234/2333/56 1238/2334/56 1235/1547/56 +f 1238/2334/56 1237/1545/56 1235/1547/56 +f 1233/1548/55 1237/1545/55 1238/1549/55 +f 1231/1551/57 1230/1554/57 1233/1548/57 +f 1231/1555/54 1227/2335/54 1225/1553/54 +f 1227/2335/54 1228/2336/54 1225/1553/54 +f 1225/1553/54 1229/2337/54 1230/1554/54 +f 1230/1554/52 1229/2337/52 1239/1556/52 +f 1239/1556/52 1236/1546/52 1237/1545/52 +f 1233/1548/52 1230/1554/52 1239/1556/52 +f 1274/1557/53 1275/2338/53 1273/1558/53 +f 1273/1560/57 1278/1563/57 1277/1561/57 +f 1278/1563/52 1279/1566/52 1276/1564/52 +f 1274/1565/56 1276/1564/56 1279/1566/56 +f 1280/1568/57 1281/2339/57 1283/1569/57 +f 1272/1571/55 1277/1561/55 1276/1564/55 +f 1275/1573/54 1279/1566/54 1278/1563/54 +f 1249/1575/57 1266/1582/57 1265/1576/57 +f 1243/1578/54 1259/1584/54 1258/1579/54 +f 1251/1581/54 1267/1586/54 1266/1582/54 +f 1242/1583/56 1256/1604/56 1259/1584/56 +f 1250/1585/56 1264/1608/56 1267/1586/56 +f 1244/1587/55 1261/1594/55 1260/1588/55 +f 1252/1590/55 1269/1596/55 1268/1591/55 +f 1245/1593/57 1262/1598/57 1261/1594/57 +f 1253/1595/57 1270/1600/57 1269/1596/57 +f 1247/1597/54 1263/2340/54 1262/1598/54 +f 1255/1599/54 1271/1606/54 1270/1600/54 +f 1246/1589/56 1260/1588/56 1263/1601/56 +f 1240/1603/55 1257/1610/55 1256/1604/55 +f 1254/1605/56 1268/2341/56 1271/1606/56 +f 1248/1607/55 1265/2342/55 1264/1608/55 +f 1241/1609/57 1258/2343/57 1257/1610/57 +f 1284/1611/56 1286/2344/56 1287/1612/56 +f 1291/1614/54 1289/2345/54 1288/1615/54 +f 1295/1617/55 1294/2346/55 1292/1618/55 +f 1330/1620/53 1331/2347/53 1329/1621/53 +f 1329/1623/57 1334/1626/57 1333/1624/57 +f 1334/1626/52 1335/1629/52 1332/1627/52 +f 1330/1628/56 1332/1627/56 1335/1629/56 +f 1336/1631/57 1337/2348/57 1339/1632/57 +f 1328/1634/55 1333/1624/55 1332/1627/55 +f 1331/1636/54 1335/1629/54 1334/1626/54 +f 1305/1638/57 1322/1645/57 1321/1639/57 +f 1299/1641/54 1315/1647/54 1314/1642/54 +f 1307/1644/54 1323/1649/54 1322/1645/54 +f 1298/1646/56 1312/1667/56 1315/1647/56 +f 1306/1648/56 1320/1671/56 1323/1649/56 +f 1300/1650/55 1317/1657/55 1316/1651/55 +f 1308/1653/55 1325/1659/55 1324/1654/55 +f 1301/1656/57 1318/1661/57 1317/1657/57 +f 1309/1658/57 1326/1663/57 1325/1659/57 +f 1303/1660/54 1319/2349/54 1318/1661/54 +f 1311/1662/54 1327/1669/54 1326/1663/54 +f 1302/1652/56 1316/1651/56 1319/1664/56 +f 1296/1666/55 1313/1673/55 1312/1667/55 +f 1310/1668/56 1324/2350/56 1327/1669/56 +f 1304/1670/55 1321/2351/55 1320/1671/55 +f 1297/1672/57 1314/2352/57 1313/1673/57 +f 1340/1674/56 1342/2353/56 1343/1675/56 +f 1347/1677/54 1345/2354/54 1344/1678/54 +f 1351/1680/55 1350/2355/55 1348/1681/55 +f 1386/1683/53 1387/2356/53 1385/1684/53 +f 1385/1686/57 1390/1689/57 1389/1687/57 +f 1390/1689/52 1391/1692/52 1388/1690/52 +f 1386/1691/56 1388/1690/56 1391/1692/56 +f 1392/1694/57 1393/2357/57 1395/1695/57 +f 1384/1697/55 1389/1687/55 1388/1690/55 +f 1387/1699/54 1391/1692/54 1390/1689/54 +f 1361/1701/57 1378/1708/57 1377/1702/57 +f 1355/1704/54 1371/1710/54 1370/1705/54 +f 1363/1707/54 1379/1712/54 1378/1708/54 +f 1354/1709/56 1368/1730/56 1371/1710/56 +f 1362/1711/56 1376/1734/56 1379/1712/56 +f 1356/1713/55 1373/1720/55 1372/1714/55 +f 1364/1716/55 1381/1722/55 1380/1717/55 +f 1357/1719/57 1374/1724/57 1373/1720/57 +f 1365/1721/57 1382/1726/57 1381/1722/57 +f 1359/1723/54 1375/2358/54 1374/1724/54 +f 1367/1725/54 1383/1732/54 1382/1726/54 +f 1358/1715/56 1372/1714/56 1375/1727/56 +f 1352/1729/55 1369/1736/55 1368/1730/55 +f 1366/1731/56 1380/2359/56 1383/1732/56 +f 1360/1733/55 1377/2360/55 1376/1734/55 +f 1353/1735/57 1370/2361/57 1369/1736/57 +f 1396/1737/56 1398/2362/56 1399/1738/56 +f 1403/1740/54 1401/2363/54 1400/1741/54 +f 1407/1743/55 1406/2364/55 1404/1744/55 +f 1442/1746/53 1443/2365/53 1441/1747/53 +f 1441/1749/57 1446/1752/57 1445/1750/57 +f 1446/1752/52 1447/1755/52 1444/1753/52 +f 1442/1754/56 1444/1753/56 1447/1755/56 +f 1448/1757/57 1449/2366/57 1451/1758/57 +f 1440/1760/55 1445/1750/55 1444/1753/55 +f 1443/1762/54 1447/1755/54 1446/1752/54 +f 1417/1764/57 1434/1771/57 1433/1765/57 +f 1411/1767/54 1427/1773/54 1426/1768/54 +f 1419/1770/54 1435/1775/54 1434/1771/54 +f 1410/1772/56 1424/1793/56 1427/1773/56 +f 1418/1774/56 1432/1797/56 1435/1775/56 +f 1412/1776/55 1429/1783/55 1428/1777/55 +f 1420/1779/55 1437/1785/55 1436/1780/55 +f 1413/1782/57 1430/1787/57 1429/1783/57 +f 1421/1784/57 1438/1789/57 1437/1785/57 +f 1415/1786/54 1431/2367/54 1430/1787/54 +f 1423/1788/54 1439/1795/54 1438/1789/54 +f 1414/1778/56 1428/1777/56 1431/1790/56 +f 1408/1792/55 1425/1799/55 1424/1793/55 +f 1422/1794/56 1436/2368/56 1439/1795/56 +f 1416/1796/55 1433/2369/55 1432/1797/55 +f 1409/1798/57 1426/2370/57 1425/1799/57 +f 1452/1800/56 1454/2371/56 1455/1801/56 +f 1459/1803/54 1457/2372/54 1456/1804/54 +f 1463/1806/55 1462/2373/55 1460/1807/55 +f 1493/1815/53 1473/2374/53 1472/1816/53 +f 1470/1818/64 1471/1843/64 1472/1819/64 +f 1484/1821/52 1471/1843/52 1470/1818/52 +f 1483/1822/65 1470/1818/65 1473/1823/65 +f 1475/1825/53 1477/2375/53 1488/1826/53 +f 1480/1828/52 1476/1832/52 1474/1829/52 +f 1475/1831/66 1474/1829/66 1476/1832/66 +f 1479/1830/67 1474/1829/67 1475/1834/67 +f 1487/1836/55 1484/2376/55 1485/1837/55 +f 1488/1839/54 1480/1855/54 1481/1840/54 +f 1487/1842/67 1472/2377/67 1471/1843/67 +f 1488/1844/65 1477/2378/65 1476/1832/65 +f 1492/1845/57 1482/1854/57 1483/1846/57 +f 1491/1848/56 1478/1856/56 1479/1849/56 +f 1487/1853/53 1486/2379/53 1491/2380/53 +f 1491/2380/53 1490/2381/53 1488/1851/53 +f 1488/1851/53 1489/2382/53 1492/1852/53 +f 1492/1852/53 1493/2383/53 1487/1853/53 +f 1487/1853/53 1491/2380/53 1488/1851/53 +f 1478/1856/52 1485/1837/52 1484/2376/52 +f 1484/2376/52 1483/1846/52 1482/1854/52 +f 1482/1854/52 1481/1840/52 1480/1855/52 +f 1480/1855/52 1479/1849/52 1478/1856/52 +f 1478/1856/52 1484/2376/52 1482/1854/52 +f 1489/1841/65 1481/1840/65 1482/1857/65 +f 1486/1838/67 1485/1837/67 1478/1859/67 +f 1549/1861/67 1550/1936/67 1557/1862/67 +f 1505/1864/56 1528/2384/56 1527/1865/56 +f 1546/1867/65 1554/1934/65 1553/1868/65 +f 1557/1872/52 1550/1936/52 1551/2385/52 +f 1551/2385/52 1552/1925/52 1553/1870/52 +f 1553/1870/52 1554/1934/52 1555/1871/52 +f 1555/1871/52 1556/1922/52 1557/1872/52 +f 1557/1872/52 1551/2385/52 1553/1870/52 +f 1548/1875/53 1549/2386/53 1544/2387/53 +f 1544/2387/53 1545/2388/53 1547/1873/53 +f 1547/1873/53 1546/2389/53 1543/1874/53 +f 1543/1874/53 1542/2390/53 1548/1875/53 +f 1548/1875/53 1544/2387/53 1547/1873/53 +f 1500/1876/56 1510/2391/56 1511/1877/56 +f 1506/1879/57 1530/1908/57 1533/1880/57 +f 1508/1881/55 1533/1880/55 1532/1882/55 +f 1509/1884/56 1532/2392/56 1531/1885/56 +f 1495/1887/57 1516/1895/57 1517/1888/57 +f 1494/1889/55 1517/1888/55 1514/1890/55 +f 1503/1866/54 1527/1865/54 1526/1892/54 +f 1497/1894/54 1515/1897/54 1516/1895/54 +f 1496/1896/56 1514/2393/56 1515/1897/56 +f 1498/1898/55 1513/1906/55 1510/1899/55 +f 1504/1901/55 1529/1907/55 1528/1902/55 +f 1501/1878/54 1511/1877/54 1512/1904/54 +f 1499/1905/57 1512/1904/57 1513/1906/57 +f 1502/1893/57 1526/1892/57 1529/1907/57 +f 1507/1886/54 1531/1885/54 1530/1908/54 +f 1539/1909/67 1534/2394/67 1518/1910/67 +f 1540/1912/65 1537/2395/65 1521/1913/65 +f 1520/1915/64 1536/2396/64 1538/1916/64 +f 1519/1918/66 1535/2397/66 1541/1919/66 +f 1544/1921/56 1557/1872/56 1556/1922/56 +f 1543/1924/57 1553/1870/57 1552/1925/57 +f 1547/1927/65 1574/2398/65 1575/1928/65 +f 1548/1930/67 1579/2399/67 1580/1931/67 +f 1547/1933/54 1555/1871/54 1554/1934/54 +f 1548/1935/55 1551/2385/55 1550/1936/55 +f 1559/1939/53 1558/2400/53 1565/2401/53 +f 1565/2401/53 1564/2402/53 1563/1937/53 +f 1563/1937/53 1562/2403/53 1561/1938/53 +f 1561/1938/53 1560/2404/53 1559/1939/53 +f 1559/1939/53 1565/2401/53 1563/1937/53 +f 1573/1942/52 1566/1961/52 1567/1958/52 +f 1567/1958/52 1568/1953/52 1569/1940/52 +f 1569/1940/52 1570/1960/52 1571/1941/52 +f 1571/1941/52 1572/1950/52 1573/1942/52 +f 1573/1942/52 1567/1958/52 1569/1940/52 +f 1562/1943/65 1570/1960/65 1569/1944/65 +f 1558/1946/67 1566/1961/67 1573/1947/67 +f 1565/1949/56 1573/1942/56 1572/1950/56 +f 1561/1952/57 1569/1940/57 1568/1953/57 +f 1564/1955/66 1572/2405/66 1571/1941/66 +f 1560/1957/64 1568/2406/64 1567/1958/64 +f 1563/1956/54 1571/1941/54 1570/1960/54 +f 1559/1959/55 1567/1958/55 1566/1961/55 +f 1556/1962/67 1577/1967/67 1576/1963/67 +f 1576/1965/66 1577/1967/66 1575/1928/66 +f 1555/1929/52 1575/1928/52 1577/1967/52 +f 1576/1968/53 1574/2407/53 1547/1969/53 +f 1552/1971/65 1581/1974/65 1578/1972/65 +f 1551/1932/52 1580/1931/52 1581/1974/52 +f 1581/1974/64 1580/1931/64 1579/1975/64 +f 1542/1977/53 1578/2408/53 1579/1978/53 +f 1583/1980/54 1585/1986/54 1584/1981/54 +f 1586/1983/55 1589/2409/55 1588/1984/55 +f 1585/1986/56 1589/2409/56 1586/1983/56 +f 1582/1982/57 1587/2410/57 1588/1987/57 +f 1583/1980/53 1588/2411/53 1589/1988/53 +f 1584/1981/52 1586/2412/52 1587/1989/52 +f 1596/1990/52 1597/1998/52 1594/1991/52 +f 1593/1993/54 1597/1998/54 1596/1990/54 +f 1590/1995/55 1595/1992/55 1594/1991/55 +f 1592/1997/56 1594/1991/56 1597/1998/56 +f 1591/2000/57 1596/1990/57 1595/1992/57 +f 1606/2002/56 1609/2413/56 1601/2003/56 +f 1601/2003/68 1609/2413/68 1608/2005/68 +f 1603/2007/55 1605/2414/55 1610/2008/55 +f 1608/2005/57 1607/2415/57 1598/2010/57 +f 1603/2007/69 1613/2009/69 1612/2011/69 +f 1604/2013/70 1611/2018/70 1610/2014/70 +f 1607/2016/71 1606/2002/71 1600/2004/71 +f 1602/2012/54 1612/2011/54 1611/2018/54 +f 1615/2019/54 1617/2025/54 1621/2020/54 +f 1614/2022/55 1619/2416/55 1618/2023/55 +f 1616/2024/72 1618/2023/72 1621/2020/72 +f 1615/2019/73 1620/2021/73 1619/2026/73 +f 1624/2028/74 1625/2417/74 1627/2029/74 +f 1622/2031/65 1624/2028/65 1626/2030/65 +f 1623/2033/75 1622/2031/75 1629/2032/75 +f 1625/2035/67 1623/2033/67 1628/2034/67 +f 1717/2037/66 1719/2109/66 1718/2038/66 +f 1636/2046/65 1644/2418/65 1649/2047/65 +f 1639/2049/67 1647/2419/67 1650/2050/67 +f 1648/2052/66 1646/2420/66 1638/2053/66 +f 1651/2055/64 1645/2421/64 1637/2056/64 +f 1655/2058/56 1653/2422/56 1652/2059/56 +f 1659/2061/57 1658/2423/57 1656/2062/57 +f 1660/2064/55 1661/2424/55 1663/2065/55 +f 1664/2067/54 1666/2425/54 1667/2068/54 +f 1671/2070/56 1669/2426/56 1668/2071/56 +f 1675/2073/57 1674/2427/57 1672/2074/57 +f 1676/2076/55 1677/2428/55 1679/2077/55 +f 1680/2079/54 1682/2429/54 1683/2080/54 +f 1687/2082/56 1685/2430/56 1684/2083/56 +f 1691/2085/57 1690/2431/57 1688/2086/57 +f 1692/2088/55 1693/2432/55 1695/2089/55 +f 1696/2091/54 1698/2433/54 1699/2092/54 +f 1703/2094/56 1701/2434/56 1700/2095/56 +f 1707/2097/57 1706/2435/57 1704/2098/57 +f 1708/2100/55 1709/2436/55 1711/2101/55 +f 1712/2103/54 1714/2437/54 1715/2104/54 +f 1720/2106/64 1723/2438/64 1722/2107/64 +f 1719/2109/67 1723/2438/67 1720/2106/67 +f 1716/2039/65 1721/2439/65 1722/2110/65 +f 1717/2037/53 1722/2440/53 1723/2111/53 +f 1718/2038/52 1720/2441/52 1721/2112/52 +f 1730/2113/52 1731/2121/52 1728/2114/52 +f 1727/2116/66 1731/2121/66 1730/2113/66 +f 1724/2118/64 1729/2115/64 1728/2114/64 +f 1726/2120/67 1728/2114/67 1731/2121/67 +f 1725/2123/65 1730/2113/65 1729/2115/65 +f 1740/2125/67 1743/2442/67 1735/2126/67 +f 1735/2126/78 1743/2442/78 1742/2128/78 +f 1737/2130/64 1739/2443/64 1744/2131/64 +f 1742/2128/65 1741/2444/65 1732/2133/65 +f 1737/2130/79 1747/2132/79 1746/2134/79 +f 1738/2136/80 1745/2141/80 1744/2137/80 +f 1741/2139/81 1740/2125/81 1734/2127/81 +f 1736/2135/66 1746/2134/66 1745/2141/66 +f 1749/2142/66 1751/2148/66 1755/2143/66 +f 1748/2145/64 1753/2445/64 1752/2146/64 +f 1750/2147/82 1752/2146/82 1755/2143/82 +f 1749/2142/83 1754/2144/83 1753/2149/83 +f 1757/2151/65 1759/2157/65 1758/2152/65 +f 1760/2154/67 1763/2446/67 1762/2155/67 +f 1759/2157/66 1763/2446/66 1760/2154/66 +f 1756/2153/64 1761/2447/64 1762/2158/64 +f 1757/2151/53 1762/2448/53 1763/2159/53 +f 1756/2153/52 1758/2152/52 1760/2160/52 +f 1770/2162/52 1771/2170/52 1768/2163/52 +f 1767/2165/65 1771/2170/65 1770/2162/65 +f 1764/2167/67 1769/2164/67 1768/2163/67 +f 1766/2169/66 1768/2163/66 1771/2170/66 +f 1765/2172/64 1770/2162/64 1769/2164/64 +f 1780/2174/66 1783/2449/66 1775/2175/66 +f 1775/2175/84 1783/2449/84 1782/2177/84 +f 1777/2179/67 1779/2450/67 1784/2180/67 +f 1782/2177/64 1781/2451/64 1772/2182/64 +f 1777/2179/85 1787/2181/85 1786/2183/85 +f 1778/2185/86 1785/2190/86 1784/2186/86 +f 1781/2188/87 1780/2174/87 1774/2176/87 +f 1776/2184/65 1786/2183/65 1785/2190/65 +f 1789/2191/65 1791/2197/65 1795/2192/65 +f 1788/2194/67 1793/2452/67 1792/2195/67 +f 1791/2197/88 1790/2196/88 1792/2195/88 +f 1789/2191/89 1794/2193/89 1793/2198/89 +f 1797/2200/55 1799/2206/55 1798/2201/55 +f 1800/2203/54 1803/2453/54 1802/2204/54 +f 1799/2206/57 1803/2453/57 1800/2203/57 +f 1796/2202/56 1801/2454/56 1802/2207/56 +f 1797/2200/53 1802/2455/53 1803/2208/53 +f 1798/2201/52 1800/2456/52 1801/2209/52 +f 1810/2210/52 1811/2218/52 1808/2211/52 +f 1807/2213/55 1811/2218/55 1810/2210/55 +f 1804/2215/54 1809/2212/54 1808/2211/54 +f 1806/2217/57 1808/2211/57 1811/2218/57 +f 1805/2220/56 1810/2210/56 1809/2212/56 +f 1820/2222/57 1823/2457/57 1815/2223/57 +f 1815/2223/90 1823/2457/90 1822/2225/90 +f 1817/2227/54 1819/2458/54 1824/2228/54 +f 1822/2225/56 1821/2459/56 1812/2230/56 +f 1817/2227/73 1827/2229/73 1826/2231/73 +f 1818/2233/72 1825/2237/72 1824/2234/72 +f 1812/2236/91 1821/2460/91 1820/2222/91 +f 1816/2232/55 1826/2231/55 1825/2237/55 +f 1829/2238/55 1831/2244/55 1835/2239/55 +f 1828/2241/54 1833/2461/54 1832/2242/54 +f 1830/2243/70 1832/2242/70 1835/2239/70 +f 1829/2238/69 1834/2240/69 1833/2245/69 +f 1837/2247/67 1839/2253/67 1838/2248/67 +f 1840/2250/65 1843/2462/65 1842/2251/65 +f 1839/2253/64 1843/2462/64 1840/2250/64 +f 1836/2249/66 1841/2463/66 1842/2254/66 +f 1837/2247/53 1842/2464/53 1843/2255/53 +f 1836/2249/52 1838/2248/52 1840/2256/52 +f 1850/2258/52 1851/2266/52 1848/2259/52 +f 1847/2261/67 1851/2266/67 1850/2258/67 +f 1844/2263/65 1849/2260/65 1848/2259/65 +f 1846/2265/64 1848/2259/64 1851/2266/64 +f 1845/2268/66 1850/2258/66 1849/2260/66 +f 1860/2270/64 1863/2465/64 1855/2271/64 +f 1855/2271/92 1863/2465/92 1862/2273/92 +f 1857/2275/65 1859/2466/65 1864/2276/65 +f 1862/2273/66 1861/2467/66 1852/2278/66 +f 1857/2275/89 1867/2277/89 1866/2279/89 +f 1858/2281/88 1865/2285/88 1864/2282/88 +f 1852/2284/93 1861/2468/93 1860/2270/93 +f 1856/2280/67 1866/2279/67 1865/2285/67 +f 1869/2286/67 1871/2292/67 1875/2287/67 +f 1868/2289/65 1873/2469/65 1872/2290/65 +f 1871/2292/86 1870/2291/86 1872/2290/86 +f 1869/2286/85 1874/2288/85 1873/2293/85 +f 1877/2295/64 1879/2301/64 1878/2296/64 +f 1880/2298/66 1883/2470/66 1882/2299/66 +f 1879/2301/65 1883/2470/65 1880/2298/65 +f 1876/2297/67 1881/2471/67 1882/2302/67 +f 1877/2295/53 1882/2472/53 1883/2303/53 +f 1878/2296/52 1880/2473/52 1881/2304/52 +f 1885/2305/66 1887/2474/66 1888/2306/66 +f 1885/2305/83 1891/2307/83 1890/2308/83 +f 1886/2310/82 1889/2313/82 1888/2311/82 +f 1884/2309/64 1890/2308/64 1889/2313/64 +f 1893/2314/64 1895/2320/64 1899/2315/64 +f 1892/2317/66 1897/2475/66 1896/2318/66 +f 1894/2319/80 1896/2318/80 1899/2315/80 +f 1893/2314/79 1898/2316/79 1897/2321/79 o Huge_Rope v 0.375000 5.500000 2.500000 v 0.198223 5.573223 2.500000 @@ -3305,6 +6322,78 @@ v -0.375000 10.500000 0.750000 v -0.198223 10.426777 0.750000 v -0.125000 10.250000 0.750000 v -0.198223 10.073223 0.750000 +vt 0.538961 0.500000 +vt 0.529221 0.625000 +vt 0.529221 0.500000 +vt 0.519481 0.625000 +vt 0.519481 0.500000 +vt 0.587662 0.500000 +vt 0.577922 0.625000 +vt 0.577922 0.500000 +vt 0.597403 0.625000 +vt 0.587662 0.625000 +vt 0.568182 0.500000 +vt 0.558442 0.625000 +vt 0.558442 0.500000 +vt 0.548701 0.500000 +vt 0.538961 0.625000 +vt 0.568182 0.625000 +vt 0.548701 0.625000 +vt 0.616883 0.500000 +vt 0.607143 0.625000 +vt 0.607143 0.500000 +vt 0.597403 0.625000 +vt 0.597403 0.500000 +vt 0.665585 0.500000 +vt 0.655844 0.625000 +vt 0.655844 0.500000 +vt 0.675325 0.625000 +vt 0.665585 0.625000 +vt 0.646104 0.500000 +vt 0.636364 0.625000 +vt 0.636364 0.500000 +vt 0.626623 0.500000 +vt 0.616883 0.625000 +vt 0.646104 0.625000 +vt 0.626623 0.625000 +vt 0.538961 0.500000 +vt 0.529221 0.625000 +vt 0.529221 0.500000 +vt 0.519481 0.625000 +vt 0.519481 0.500000 +vt 0.587662 0.500000 +vt 0.577922 0.625000 +vt 0.577922 0.500000 +vt 0.597403 0.625000 +vt 0.587662 0.625000 +vt 0.568182 0.500000 +vt 0.558442 0.625000 +vt 0.558442 0.500000 +vt 0.548701 0.500000 +vt 0.538961 0.625000 +vt 0.568182 0.625000 +vt 0.548701 0.625000 +vt 0.616883 0.500000 +vt 0.607143 0.625000 +vt 0.607143 0.500000 +vt 0.597403 0.625000 +vt 0.597403 0.500000 +vt 0.665585 0.500000 +vt 0.655844 0.625000 +vt 0.655844 0.500000 +vt 0.675325 0.625000 +vt 0.665585 0.625000 +vt 0.646104 0.500000 +vt 0.636364 0.625000 +vt 0.636364 0.500000 +vt 0.626623 0.500000 +vt 0.616883 0.625000 +vt 0.646104 0.625000 +vt 0.626623 0.625000 +vt 0.597403 0.500000 +vt 0.675325 0.500000 +vt 0.597403 0.500000 +vt 0.675325 0.500000 vn -1.0000 -0.0000 0.0000 vn -0.7071 -0.7071 0.0000 vn -0.0000 -1.0000 0.0000 @@ -3314,70 +6403,70 @@ vn 0.7071 0.7071 0.0000 vn -0.0000 1.0000 0.0000 vn -0.7071 0.7071 0.0000 s 1 -f 1504//92 1511//93 1503//93 -f 1503//93 1510//94 1502//94 -f 1509//95 1516//96 1508//96 -f 1509//95 1510//94 1517//95 -f 1507//97 1514//98 1506//98 -f 1505//99 1512//92 1504//92 -f 1508//96 1515//97 1507//97 -f 1506//98 1513//99 1505//99 -f 1520//92 1527//93 1519//93 -f 1519//93 1526//94 1518//94 -f 1525//95 1532//96 1524//96 -f 1525//95 1526//94 1533//95 -f 1523//97 1530//98 1522//98 -f 1521//99 1528//92 1520//92 -f 1524//96 1531//97 1523//97 -f 1522//98 1529//99 1521//99 -f 1536//92 1543//93 1535//93 -f 1535//93 1542//94 1534//94 -f 1541//95 1548//96 1540//96 -f 1541//95 1542//94 1549//95 -f 1539//97 1546//98 1538//98 -f 1537//99 1544//92 1536//92 -f 1540//96 1547//97 1539//97 -f 1538//98 1545//99 1537//99 -f 1552//92 1559//93 1551//93 -f 1551//93 1558//94 1550//94 -f 1557//95 1564//96 1556//96 -f 1557//95 1558//94 1565//95 -f 1555//97 1562//98 1554//98 -f 1553//99 1560//92 1552//92 -f 1556//96 1563//97 1555//97 -f 1554//98 1561//99 1553//99 -f 1504//92 1512//92 1511//93 -f 1503//93 1511//93 1510//94 -f 1509//95 1517//95 1516//96 -f 1509//95 1502//94 1510//94 -f 1507//97 1515//97 1514//98 -f 1505//99 1513//99 1512//92 -f 1508//96 1516//96 1515//97 -f 1506//98 1514//98 1513//99 -f 1520//92 1528//92 1527//93 -f 1519//93 1527//93 1526//94 -f 1525//95 1533//95 1532//96 -f 1525//95 1518//94 1526//94 -f 1523//97 1531//97 1530//98 -f 1521//99 1529//99 1528//92 -f 1524//96 1532//96 1531//97 -f 1522//98 1530//98 1529//99 -f 1536//92 1544//92 1543//93 -f 1535//93 1543//93 1542//94 -f 1541//95 1549//95 1548//96 -f 1541//95 1534//94 1542//94 -f 1539//97 1547//97 1546//98 -f 1537//99 1545//99 1544//92 -f 1540//96 1548//96 1547//97 -f 1538//98 1546//98 1545//99 -f 1552//92 1560//92 1559//93 -f 1551//93 1559//93 1558//94 -f 1557//95 1565//95 1564//96 -f 1557//95 1550//94 1558//94 -f 1555//97 1563//97 1562//98 -f 1553//99 1561//99 1560//92 -f 1556//96 1564//96 1563//97 -f 1554//98 1562//98 1561//99 +f 1902/2476/94 1909/2477/95 1901/2478/95 +f 1901/2478/95 1908/2479/96 1900/2480/96 +f 1907/2481/97 1914/2482/98 1906/2483/98 +f 1907/2481/97 1908/2484/96 1915/2485/97 +f 1905/2486/99 1912/2487/100 1904/2488/100 +f 1903/2489/101 1910/2490/94 1902/2476/94 +f 1906/2483/98 1913/2491/99 1905/2486/99 +f 1904/2488/100 1911/2492/101 1903/2489/101 +f 1918/2493/94 1925/2494/95 1917/2495/95 +f 1917/2495/95 1924/2496/96 1916/2497/96 +f 1923/2498/97 1930/2499/98 1922/2500/98 +f 1923/2498/97 1924/2501/96 1931/2502/97 +f 1921/2503/99 1928/2504/100 1920/2505/100 +f 1919/2506/101 1926/2507/94 1918/2493/94 +f 1922/2500/98 1929/2508/99 1921/2503/99 +f 1920/2505/100 1927/2509/101 1919/2506/101 +f 1934/2510/94 1941/2511/95 1933/2512/95 +f 1933/2512/95 1940/2513/96 1932/2514/96 +f 1939/2515/97 1946/2516/98 1938/2517/98 +f 1939/2515/97 1940/2518/96 1947/2519/97 +f 1937/2520/99 1944/2521/100 1936/2522/100 +f 1935/2523/101 1942/2524/94 1934/2510/94 +f 1938/2517/98 1945/2525/99 1937/2520/99 +f 1936/2522/100 1943/2526/101 1935/2523/101 +f 1950/2527/94 1957/2528/95 1949/2529/95 +f 1949/2529/95 1956/2530/96 1948/2531/96 +f 1955/2532/97 1962/2533/98 1954/2534/98 +f 1955/2532/97 1956/2535/96 1963/2536/97 +f 1953/2537/99 1960/2538/100 1952/2539/100 +f 1951/2540/101 1958/2541/94 1950/2527/94 +f 1954/2534/98 1961/2542/99 1953/2537/99 +f 1952/2539/100 1959/2543/101 1951/2540/101 +f 1902/2476/94 1910/2490/94 1909/2477/95 +f 1901/2478/95 1909/2477/95 1908/2479/96 +f 1907/2481/97 1915/2485/97 1914/2482/98 +f 1907/2481/97 1900/2544/96 1908/2484/96 +f 1905/2486/99 1913/2491/99 1912/2487/100 +f 1903/2489/101 1911/2492/101 1910/2490/94 +f 1906/2483/98 1914/2482/98 1913/2491/99 +f 1904/2488/100 1912/2487/100 1911/2492/101 +f 1918/2493/94 1926/2507/94 1925/2494/95 +f 1917/2495/95 1925/2494/95 1924/2496/96 +f 1923/2498/97 1931/2502/97 1930/2499/98 +f 1923/2498/97 1916/2545/96 1924/2501/96 +f 1921/2503/99 1929/2508/99 1928/2504/100 +f 1919/2506/101 1927/2509/101 1926/2507/94 +f 1922/2500/98 1930/2499/98 1929/2508/99 +f 1920/2505/100 1928/2504/100 1927/2509/101 +f 1934/2510/94 1942/2524/94 1941/2511/95 +f 1933/2512/95 1941/2511/95 1940/2513/96 +f 1939/2515/97 1947/2519/97 1946/2516/98 +f 1939/2515/97 1932/2546/96 1940/2518/96 +f 1937/2520/99 1945/2525/99 1944/2521/100 +f 1935/2523/101 1943/2526/101 1942/2524/94 +f 1938/2517/98 1946/2516/98 1945/2525/99 +f 1936/2522/100 1944/2521/100 1943/2526/101 +f 1950/2527/94 1958/2541/94 1957/2528/95 +f 1949/2529/95 1957/2528/95 1956/2530/96 +f 1955/2532/97 1963/2536/97 1962/2533/98 +f 1955/2532/97 1948/2547/96 1956/2535/96 +f 1953/2537/99 1961/2542/99 1960/2538/100 +f 1951/2540/101 1959/2543/101 1958/2541/94 +f 1954/2534/98 1962/2533/98 1961/2542/99 +f 1952/2539/100 1960/2538/100 1959/2543/101 o Huge_Pivot v 0.562500 1.500000 -2.812500 v 0.937500 1.500000 -2.812500 @@ -3459,6 +6548,150 @@ v 0.562500 2.000000 -3.000000 v -0.562500 2.000000 -3.000000 v 0.562500 3.500000 -3.000000 v -0.562500 3.500000 -3.000000 +v 0.750000 2.000000 -2.187500 +v 0.750000 3.500000 -2.187500 +v 0.750000 2.000000 -2.812500 +v 0.750000 3.500000 -2.812500 +v -0.750000 2.000000 -2.187500 +v -0.750000 3.500000 -2.187500 +v -0.750000 2.000000 -2.812500 +v -0.750000 3.500000 -2.812500 +v 0.562500 2.000000 -2.000000 +v -0.562500 2.000000 -2.000000 +v 0.562500 3.500000 -2.000000 +v -0.562500 3.500000 -2.000000 +v 0.562500 2.000000 -3.000000 +v -0.562500 2.000000 -3.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 3.500000 -3.000000 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.051948 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.051948 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.071429 0.541667 +vt 0.051948 0.708333 +vt 0.051948 0.541667 +vt 0.110390 0.541667 +vt 0.090909 0.708333 +vt 0.090909 0.541667 +vt 0.071429 0.541667 +vt 0.051948 0.708333 +vt 0.051948 0.541667 +vt 0.110390 0.541667 +vt 0.090909 0.708333 +vt 0.090909 0.541667 +vt 0.129870 0.541667 +vt 0.110390 0.708333 +vt 0.129870 0.541667 +vt 0.110390 0.708333 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.110390 0.583333 +vt 0.090909 0.708333 +vt 0.090909 0.583333 +vt 0.129870 0.583333 +vt 0.110390 0.708333 +vt 0.110390 0.583333 +vt 0.090909 0.583333 +vt 0.071429 0.583333 +vt 0.129870 0.583333 +vt 0.110390 0.708333 +vt 0.071429 0.583333 +vt 0.051948 0.708333 +vt 0.051948 0.583333 +vt 0.090909 0.708333 +vt 0.051948 0.708333 +vt 0.051948 0.583333 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.240260 0.541667 +vt 0.272727 0.666667 +vt 0.240260 0.666667 +vt 0.240260 0.666667 +vt 0.272727 0.541667 +vt 0.272727 0.666667 +vt 0.181818 0.541667 +vt 0.240260 0.666667 +vt 0.181818 0.666667 +vt 0.181818 0.666667 +vt 0.240260 0.541667 +vt 0.240260 0.666667 +vt 0.272727 0.666667 +vt 0.240260 0.541667 +vt 0.240260 0.666667 +vt 0.272727 0.541667 +vt 0.240260 0.666667 +vt 0.272727 0.666667 +vt 0.240260 0.666667 +vt 0.181818 0.541667 +vt 0.181818 0.666667 +vt 0.240260 0.541667 +vt 0.181818 0.666667 +vt 0.240260 0.666667 +vt 0.071429 0.708333 +vt 0.071429 0.708333 +vt 0.129870 0.708333 +vt 0.129870 0.708333 +vt 0.129870 0.708333 +vt 0.129870 0.708333 +vt 0.181818 0.625000 +vt 0.181818 0.625000 +vt 0.181818 0.625000 +vt 0.181818 0.625000 +vt 0.272727 0.541667 +vt 0.240260 0.541667 +vt 0.240260 0.541667 +vt 0.181818 0.541667 +vt 0.272727 0.541667 +vt 0.240260 0.541667 +vt 0.240260 0.541667 +vt 0.181818 0.541667 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 -1.0000 0.0000 @@ -3466,123 +6699,107 @@ vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 vn -1.0000 0.0000 0.0000 s off -f 1607//100 1611//100 1606//100 -f 1608//101 1613//101 1609//101 -f 1576//102 1575//102 1574//102 -f 1580//102 1579//102 1578//102 -f 1584//103 1582//103 1583//103 -f 1588//103 1586//103 1587//103 -f 1572//101 1589//101 1573//101 -f 1571//100 1587//100 1570//100 -f 1568//101 1585//101 1569//101 -f 1567//100 1583//100 1566//100 -f 1573//104 1588//104 1571//104 -f 1570//105 1586//105 1572//105 -f 1569//104 1584//104 1567//104 -f 1566//105 1582//105 1568//105 -f 1592//103 1590//103 1591//103 -f 1596//103 1594//103 1595//103 -f 1575//100 1591//100 1574//100 -f 1581//104 1596//104 1579//104 -f 1578//105 1594//105 1580//105 -f 1577//104 1592//104 1575//104 -f 1574//105 1590//105 1576//105 -f 1580//101 1597//101 1581//101 -f 1579//100 1595//100 1578//100 -f 1576//101 1593//101 1577//101 -f 1600//101 1605//101 1601//101 -f 1599//100 1603//100 1598//100 -f 1601//104 1604//104 1599//104 -f 1598//105 1602//105 1600//105 -f 1609//104 1612//104 1607//104 -f 1606//105 1610//105 1608//105 -f 1623//100 1627//100 1622//100 -f 1624//101 1629//101 1625//101 -f 1616//101 1621//101 1617//101 -f 1615//100 1619//100 1614//100 -f 1617//104 1620//104 1615//104 -f 1614//105 1618//105 1616//105 -f 1625//104 1628//104 1623//104 -f 1622//105 1626//105 1624//105 -f 1630//104 1633//104 1631//104 -f 1637//105 1634//105 1635//105 -f 1639//100 1640//100 1641//100 -f 1644//101 1643//101 1645//101 -f 1607//100 1612//100 1611//100 -f 1608//101 1610//101 1613//101 -f 1576//102 1577//102 1575//102 -f 1580//102 1581//102 1579//102 -f 1584//103 1585//103 1582//103 -f 1588//103 1589//103 1586//103 -f 1572//101 1586//101 1589//101 -f 1571//100 1588//100 1587//100 -f 1568//101 1582//101 1585//101 -f 1567//100 1584//100 1583//100 -f 1573//104 1589//104 1588//104 -f 1570//105 1587//105 1586//105 -f 1569//104 1585//104 1584//104 -f 1566//105 1583//105 1582//105 -f 1592//103 1593//103 1590//103 -f 1596//103 1597//103 1594//103 -f 1575//100 1592//100 1591//100 -f 1581//104 1597//104 1596//104 -f 1578//105 1595//105 1594//105 -f 1577//104 1593//104 1592//104 -f 1574//105 1591//105 1590//105 -f 1580//101 1594//101 1597//101 -f 1579//100 1596//100 1595//100 -f 1576//101 1590//101 1593//101 -f 1600//101 1602//101 1605//101 -f 1599//100 1604//100 1603//100 -f 1601//104 1605//104 1604//104 -f 1598//105 1603//105 1602//105 -f 1609//104 1613//104 1612//104 -f 1606//105 1611//105 1610//105 -f 1623//100 1628//100 1627//100 -f 1624//101 1626//101 1629//101 -f 1616//101 1618//101 1621//101 -f 1615//100 1620//100 1619//100 -f 1617//104 1621//104 1620//104 -f 1614//105 1619//105 1618//105 -f 1625//104 1629//104 1628//104 -f 1622//105 1627//105 1626//105 -f 1630//104 1632//104 1633//104 -f 1637//105 1636//105 1634//105 -f 1639//100 1638//100 1640//100 -f 1644//101 1642//101 1643//101 +f 2005/2548/102 2009/2549/102 2004/2550/102 +f 2006/2551/103 2011/2552/103 2007/2553/103 +f 1974/2554/104 1973/2555/104 1972/2556/104 +f 1978/2557/104 1977/2558/104 1976/2559/104 +f 1982/2560/105 1980/2561/105 1981/2562/105 +f 1986/2563/105 1984/2564/105 1985/2565/105 +f 1970/2566/103 1987/2567/103 1971/2568/103 +f 1969/2569/102 1985/2570/102 1968/2571/102 +f 1966/2572/103 1983/2573/103 1967/2574/103 +f 1965/2575/102 1981/2576/102 1964/2577/102 +f 1971/2578/106 1986/2579/106 1969/2569/106 +f 1968/2571/107 1984/2564/107 1970/2566/107 +f 1967/2580/106 1982/2581/106 1965/2575/106 +f 1964/2577/107 1980/2561/107 1966/2572/107 +f 1990/2582/105 1988/2583/105 1989/2584/105 +f 1994/2585/105 1992/2586/105 1993/2587/105 +f 1973/2588/102 1989/2589/102 1972/2590/102 +f 1979/2591/106 1994/2592/106 1977/2593/106 +f 1976/2594/107 1992/2586/107 1978/2595/107 +f 1975/2596/106 1990/2597/106 1973/2588/106 +f 1972/2590/107 1988/2583/107 1974/2598/107 +f 1978/2595/103 1995/2599/103 1979/2600/103 +f 1977/2593/102 1993/2601/102 1976/2594/102 +f 1974/2598/103 1991/2602/103 1975/2603/103 +f 1998/2604/103 2003/2605/103 1999/2606/103 +f 1997/2607/102 2001/2608/102 1996/2609/102 +f 1999/2610/106 2002/2611/106 1997/2607/106 +f 1996/2609/107 2000/2612/107 1998/2604/107 +f 2007/2613/106 2010/2614/106 2005/2548/106 +f 2004/2550/107 2008/2615/107 2006/2551/107 +f 2021/2616/102 2025/2617/102 2020/2618/102 +f 2022/2619/103 2027/2620/103 2023/2621/103 +f 2014/2622/103 2019/2623/103 2015/2624/103 +f 2013/2625/102 2017/2626/102 2012/2627/102 +f 2015/2628/106 2018/2629/106 2013/2625/106 +f 2012/2627/107 2016/2630/107 2014/2622/107 +f 2023/2631/106 2026/2632/106 2021/2616/106 +f 2020/2618/107 2024/2633/107 2022/2619/107 +f 2028/2634/106 2031/2635/106 2029/2636/106 +f 2035/2637/107 2032/2638/107 2033/2639/107 +f 2037/2640/102 2038/2641/102 2039/2642/102 +f 2042/2643/103 2041/2644/103 2043/2645/103 +f 2047/2646/107 2044/2647/107 2045/2648/107 +f 2048/2649/106 2051/2650/106 2049/2651/106 +f 2054/2652/103 2053/2653/103 2055/2654/103 +f 2057/2655/102 2058/2656/102 2059/2657/102 +f 2005/2548/102 2010/2614/102 2009/2549/102 +f 2006/2551/103 2008/2615/103 2011/2552/103 +f 1974/2554/104 1975/2658/104 1973/2555/104 +f 1978/2557/104 1979/2659/104 1977/2558/104 +f 1982/2560/105 1983/2573/105 1980/2561/105 +f 1986/2563/105 1987/2567/105 1984/2564/105 +f 1970/2566/103 1984/2564/103 1987/2567/103 +f 1969/2569/102 1986/2579/102 1985/2570/102 +f 1966/2572/103 1980/2561/103 1983/2573/103 +f 1965/2575/102 1982/2581/102 1981/2576/102 +f 1971/2578/106 1987/2660/106 1986/2579/106 +f 1968/2571/107 1985/2570/107 1984/2564/107 +f 1967/2580/106 1983/2661/106 1982/2581/106 +f 1964/2577/107 1981/2576/107 1980/2561/107 +f 1990/2582/105 1991/2602/105 1988/2583/105 +f 1994/2585/105 1995/2599/105 1992/2586/105 +f 1973/2588/102 1990/2597/102 1989/2589/102 +f 1979/2591/106 1995/2662/106 1994/2592/106 +f 1976/2594/107 1993/2601/107 1992/2586/107 +f 1975/2596/106 1991/2663/106 1990/2597/106 +f 1972/2590/107 1989/2589/107 1988/2583/107 +f 1978/2595/103 1992/2586/103 1995/2599/103 +f 1977/2593/102 1994/2592/102 1993/2601/102 +f 1974/2598/103 1988/2583/103 1991/2602/103 +f 1998/2604/103 2000/2612/103 2003/2605/103 +f 1997/2607/102 2002/2611/102 2001/2608/102 +f 1999/2610/106 2003/2664/106 2002/2611/106 +f 1996/2609/107 2001/2608/107 2000/2612/107 +f 2007/2613/106 2011/2665/106 2010/2614/106 +f 2004/2550/107 2009/2549/107 2008/2615/107 +f 2021/2616/102 2026/2632/102 2025/2617/102 +f 2022/2619/103 2024/2633/103 2027/2620/103 +f 2014/2622/103 2016/2630/103 2019/2623/103 +f 2013/2625/102 2018/2629/102 2017/2626/102 +f 2015/2628/106 2019/2666/106 2018/2629/106 +f 2012/2627/107 2017/2626/107 2016/2630/107 +f 2023/2631/106 2027/2667/106 2026/2632/106 +f 2020/2618/107 2025/2617/107 2024/2633/107 +f 2028/2634/106 2030/2668/106 2031/2635/106 +f 2035/2637/107 2034/2669/107 2032/2638/107 +f 2037/2640/102 2036/2670/102 2038/2641/102 +f 2042/2643/103 2040/2671/103 2041/2644/103 +f 2047/2646/107 2046/2672/107 2044/2647/107 +f 2048/2649/106 2050/2673/106 2051/2650/106 +f 2054/2652/103 2052/2674/103 2053/2653/103 +f 2057/2655/102 2056/2675/102 2058/2656/102 o Huge_Erector v 0.562500 3.500000 -3.187500 v 0.562500 3.500000 -2.812500 v 0.937500 3.500000 -2.812500 v 0.937500 3.500000 -3.187500 -v -0.937500 3.500000 -3.187500 -v -0.937500 3.500000 -2.812500 -v -0.562500 3.500000 -2.812500 -v -0.562500 3.500000 -3.187500 -v 0.562500 3.500000 -2.187500 -v 0.562500 3.500000 -1.812500 -v 0.937500 3.500000 -1.812500 -v 0.937500 3.500000 -2.187500 -v -0.937500 3.500000 -2.187500 -v -0.937500 3.500000 -1.812500 -v -0.562500 3.500000 -1.812500 -v -0.562500 3.500000 -2.187500 v 0.562500 14.500000 -3.187500 v 0.562500 14.500000 -2.812500 v 0.937500 14.500000 -2.812500 v 0.937500 14.500000 -3.187500 -v -0.937500 14.500000 -3.187500 -v -0.937500 14.500000 -2.812500 -v -0.562500 14.500000 -2.812500 -v -0.562500 14.500000 -3.187500 -v 0.562500 14.500000 -2.187500 -v 0.562500 14.500000 -1.812500 -v 0.937500 14.500000 -1.812500 -v 0.937500 14.500000 -2.187500 -v -0.937500 14.500000 -2.187500 -v -0.937500 14.500000 -1.812500 -v -0.562500 14.500000 -1.812500 -v -0.562500 14.500000 -2.187500 v 0.937500 5.750000 -1.812500 v -0.937500 5.750000 -1.812500 v 0.937500 6.125000 -1.812500 @@ -3659,149 +6876,383 @@ v 0.562500 14.500000 -2.000000 v -0.562500 14.500000 -2.000000 v 0.562500 14.500000 -3.000000 v -0.562500 14.500000 -3.000000 +v 0.562500 3.500000 -2.187500 +v 0.562500 3.500000 -1.812500 +v 0.937500 3.500000 -1.812500 +v 0.937500 3.500000 -2.187500 +v 0.562500 14.500000 -2.187500 +v 0.562500 14.500000 -1.812500 +v 0.937500 14.500000 -1.812500 +v 0.937500 14.500000 -2.187500 +v -0.937500 3.500000 -3.187500 +v -0.937500 3.500000 -2.812500 +v -0.562500 3.500000 -2.812500 +v -0.562500 3.500000 -3.187500 +v -0.937500 14.500000 -3.187500 +v -0.937500 14.500000 -2.812500 +v -0.562500 14.500000 -2.812500 +v -0.562500 14.500000 -3.187500 +v -0.937500 3.500000 -2.187500 +v -0.937500 3.500000 -1.812500 +v -0.562500 3.500000 -1.812500 +v -0.562500 3.500000 -2.187500 +v -0.937500 14.500000 -2.187500 +v -0.937500 14.500000 -1.812500 +v -0.562500 14.500000 -1.812500 +v -0.562500 14.500000 -2.187500 +v 0.750000 3.500000 -2.187500 +v 0.750000 3.500000 -2.812500 +v -0.750000 3.500000 -2.187500 +v -0.750000 3.500000 -2.812500 +v 0.562500 3.500000 -2.000000 +v -0.562500 3.500000 -2.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 3.500000 -3.000000 +v 0.750000 14.500000 -2.187500 +v 0.750000 14.500000 -2.812500 +v -0.750000 14.500000 -2.187500 +v -0.750000 14.500000 -2.812500 +v 0.562500 14.500000 -2.000000 +v -0.562500 14.500000 -2.000000 +v 0.562500 14.500000 -3.000000 +v -0.562500 14.500000 -3.000000 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.136364 0.739583 +vt 0.038961 0.770833 +vt 0.038961 0.739583 +vt 0.116883 0.875000 +vt 0.136364 0.906250 +vt 0.116883 0.906250 +vt 0.155844 0.791667 +vt 0.136364 0.875000 +vt 0.136364 0.791667 +vt 0.038961 0.791667 +vt 0.136364 0.791667 +vt 0.058442 0.843750 +vt 0.038961 0.791667 +vt 0.019481 0.875000 +vt 0.019481 0.791667 +vt 0.058442 0.843750 +vt 0.038961 0.875000 +vt 0.058442 0.906250 +vt 0.038961 0.906250 +vt 0.058442 0.875000 +vt 0.136364 0.739583 +vt 0.038961 0.770833 +vt 0.038961 0.739583 +vt 0.116883 0.875000 +vt 0.136364 0.906250 +vt 0.116883 0.906250 +vt 0.155844 0.770833 +vt 0.136364 0.875000 +vt 0.136364 0.770833 +vt 0.038961 0.770833 +vt 0.136364 0.770833 +vt 0.058442 0.843750 +vt 0.019481 0.875000 +vt 0.019481 0.770833 +vt 0.058442 0.843750 +vt 0.038961 0.875000 +vt 0.058442 0.906250 +vt 0.038961 0.906250 +vt 0.058442 0.875000 +vt 0.136364 0.739583 +vt 0.038961 0.770833 +vt 0.038961 0.739583 +vt 0.116883 0.875000 +vt 0.136364 0.906250 +vt 0.116883 0.906250 +vt 0.155844 0.770833 +vt 0.136364 0.875000 +vt 0.136364 0.770833 +vt 0.038961 0.770833 +vt 0.136364 0.770833 +vt 0.058442 0.843750 +vt 0.019481 0.875000 +vt 0.019481 0.770833 +vt 0.058442 0.843750 +vt 0.038961 0.875000 +vt 0.058442 0.906250 +vt 0.038961 0.906250 +vt 0.058442 0.875000 +vt 0.967532 0.916667 +vt 0.909091 0.937500 +vt 0.909091 0.916667 +vt 0.967532 0.958333 +vt 0.909091 0.937500 +vt 0.967532 0.937500 +vt 0.909091 0.979167 +vt 0.967532 0.979167 +vt 0.967532 0.916667 +vt 0.909091 0.916667 +vt 0.909091 0.979167 +vt 0.967532 0.958333 +vt 0.967532 0.979167 +vt 0.967532 0.937500 +vt 0.967532 0.916667 +vt 0.909091 0.937500 +vt 0.909091 0.916667 +vt 0.909091 0.979167 +vt 0.967532 0.958333 +vt 0.967532 0.979167 +vt 0.967532 0.937500 +vt 0.967532 0.000000 +vt 0.909091 0.916667 +vt 0.909091 -0.000000 +vt 1.000000 0.916667 +vt 0.967532 -0.000000 +vt 1.000000 -0.000000 +vt 0.967532 0.916667 +vt 0.909091 -0.000000 +vt 0.967532 0.000000 +vt 1.000000 -0.000000 +vt 0.967532 0.916667 +vt 0.967532 -0.000000 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.909091 0.916667 +vt 0.967532 0.000000 +vt 0.909091 -0.000000 +vt 0.967532 -0.000000 +vt 1.000000 0.916667 +vt 1.000000 -0.000000 +vt 0.909091 -0.000000 +vt 0.967532 0.916667 +vt 0.967532 0.000000 +vt 0.967532 0.916667 +vt 1.000000 -0.000000 +vt 0.967532 -0.000000 +vt 0.909091 0.947917 +vt 0.136364 0.770833 +vt 0.155844 0.875000 +vt 0.136364 0.875000 +vt 0.116883 0.843750 +vt 0.038961 0.875000 +vt 0.116883 0.843750 +vt 0.155844 0.875000 +vt 0.136364 0.875000 +vt 0.116883 0.843750 +vt 0.038961 0.875000 +vt 0.116883 0.843750 +vt 0.155844 0.875000 +vt 0.136364 0.875000 +vt 0.116883 0.843750 +vt 0.038961 0.875000 +vt 0.116883 0.843750 +vt 0.909091 0.958333 +vt 0.909091 0.958333 +vt 0.909091 0.958333 +vt 0.967532 0.916667 +vt 0.967532 0.916667 +vt 0.909091 0.916667 +vt 1.000000 0.916667 +vt 0.909091 0.947917 +vt 0.909091 0.947917 +vt 0.909091 0.947917 +vt 0.967532 0.916667 +vt 0.967532 0.916667 +vt 0.909091 0.916667 +vt 1.000000 0.916667 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 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 s off -f 1646//106 1648//106 1647//106 -f 1650//106 1652//106 1651//106 -f 1654//106 1656//106 1655//106 -f 1658//106 1660//106 1659//106 -f 1664//107 1662//107 1663//107 -f 1668//107 1666//107 1667//107 -f 1672//107 1670//107 1671//107 -f 1676//107 1674//107 1675//107 -f 1650//108 1669//108 1653//108 -f 1647//109 1662//109 1646//109 -f 1658//108 1677//108 1661//108 -f 1655//109 1670//109 1654//109 -f 1648//110 1663//110 1647//110 -f 1656//110 1671//110 1655//110 -f 1649//111 1664//111 1648//111 -f 1657//111 1672//111 1656//111 -f 1646//108 1665//108 1649//108 -f 1654//108 1673//108 1657//108 -f 1651//109 1666//109 1650//109 -f 1659//109 1674//109 1658//109 -f 1652//110 1667//110 1651//110 -f 1660//110 1675//110 1659//110 -f 1653//111 1668//111 1652//111 -f 1661//111 1676//111 1660//111 -f 1679//108 1680//108 1678//108 -f 1689//112 1683//112 1687//112 -f 1679//109 1685//109 1681//109 -f 1679//106 1678//106 1687//106 -f 1680//111 1682//111 1678//111 -f 1680//107 1681//107 1688//107 -f 1684//113 1686//113 1682//113 -f 1688//110 1687//110 1686//110 -f 1691//108 1692//108 1690//108 -f 1701//112 1695//112 1699//112 -f 1691//109 1697//109 1693//109 -f 1691//106 1690//106 1699//106 -f 1692//111 1694//111 1690//111 -f 1692//107 1693//107 1700//107 -f 1696//113 1698//113 1694//113 -f 1700//110 1699//110 1698//110 -f 1703//108 1704//108 1702//108 -f 1713//112 1707//112 1711//112 -f 1703//109 1709//109 1705//109 -f 1703//106 1702//106 1711//106 -f 1704//111 1706//111 1702//111 -f 1704//107 1705//107 1712//107 -f 1708//113 1710//113 1706//113 -f 1712//110 1711//110 1710//110 -f 1722//106 1728//106 1723//106 -f 1718//108 1720//108 1719//108 -f 1717//107 1718//107 1716//107 -f 1714//106 1720//106 1715//106 -f 1725//107 1726//107 1724//107 -f 1726//108 1728//108 1727//108 -f 1730//106 1736//106 1731//106 -f 1733//107 1734//107 1732//107 -f 1734//108 1736//108 1735//108 -f 1745//108 1752//108 1744//108 -f 1748//109 1741//109 1740//109 -f 1750//110 1743//110 1742//110 -f 1739//111 1746//111 1738//111 -f 1646//106 1649//106 1648//106 -f 1650//106 1653//106 1652//106 -f 1654//106 1657//106 1656//106 -f 1658//106 1661//106 1660//106 -f 1664//107 1665//107 1662//107 -f 1668//107 1669//107 1666//107 -f 1672//107 1673//107 1670//107 -f 1676//107 1677//107 1674//107 -f 1650//108 1666//108 1669//108 -f 1647//109 1663//109 1662//109 -f 1658//108 1674//108 1677//108 -f 1655//109 1671//109 1670//109 -f 1648//110 1664//110 1663//110 -f 1656//110 1672//110 1671//110 -f 1649//111 1665//111 1664//111 -f 1657//111 1673//111 1672//111 -f 1646//108 1662//108 1665//108 -f 1654//108 1670//108 1673//108 -f 1651//109 1667//109 1666//109 -f 1659//109 1675//109 1674//109 -f 1652//110 1668//110 1667//110 -f 1660//110 1676//110 1675//110 -f 1653//111 1669//111 1668//111 -f 1661//111 1677//111 1676//111 -f 1679//108 1681//108 1680//108 -f 1689//112 1685//112 1683//112 -f 1679//109 1683//109 1685//109 -f 1678//106 1682//106 1686//106 -f 1687//106 1683//106 1679//106 -f 1678//106 1686//106 1687//106 -f 1680//111 1684//111 1682//111 -f 1681//107 1685//107 1689//107 -f 1688//107 1684//107 1680//107 -f 1681//107 1689//107 1688//107 -f 1684//113 1688//113 1686//113 -f 1688//110 1689//110 1687//110 -f 1691//108 1693//108 1692//108 -f 1701//112 1697//112 1695//112 -f 1691//109 1695//109 1697//109 -f 1690//106 1694//106 1698//106 -f 1699//106 1695//106 1691//106 -f 1690//106 1698//106 1699//106 -f 1692//111 1696//111 1694//111 -f 1693//107 1697//107 1701//107 -f 1700//107 1696//107 1692//107 -f 1693//107 1701//107 1700//107 -f 1696//113 1700//113 1698//113 -f 1700//110 1701//110 1699//110 -f 1703//108 1705//108 1704//108 -f 1713//112 1709//112 1707//112 -f 1703//109 1707//109 1709//109 -f 1702//106 1706//106 1710//106 -f 1711//106 1707//106 1703//106 -f 1702//106 1710//106 1711//106 -f 1704//111 1708//111 1706//111 -f 1705//107 1709//107 1713//107 -f 1712//107 1708//107 1704//107 -f 1705//107 1713//107 1712//107 -f 1708//113 1712//113 1710//113 -f 1712//110 1713//110 1711//110 -f 1722//106 1727//106 1728//106 -f 1718//108 1721//108 1720//108 -f 1717//107 1721//107 1718//107 -f 1714//106 1719//106 1720//106 -f 1725//107 1729//107 1726//107 -f 1726//108 1729//108 1728//108 -f 1730//106 1735//106 1736//106 -f 1733//107 1737//107 1734//107 -f 1734//108 1737//108 1736//108 -f 1745//108 1753//108 1752//108 -f 1748//109 1749//109 1741//109 -f 1750//110 1751//110 1743//110 -f 1739//111 1747//111 1746//111 +f 2060/2676/108 2062/2677/108 2061/2678/108 +f 2066/2679/109 2064/2680/109 2065/2681/109 +f 2061/2682/110 2064/2680/110 2060/2676/110 +f 2062/2683/111 2065/2684/111 2061/2682/111 +f 2063/2685/112 2066/2686/112 2062/2683/112 +f 2060/2676/113 2067/2687/113 2063/2688/113 +f 2069/2689/113 2070/2690/113 2068/2691/113 +f 2079/2692/114 2073/2693/114 2077/2694/114 +f 2069/2695/110 2075/2696/110 2071/2697/110 +f 2069/2698/108 2068/2699/108 2077/2700/108 +f 2070/2701/112 2072/2702/112 2068/2703/112 +f 2070/2701/109 2071/2697/109 2078/2704/109 +f 2074/2705/115 2076/2706/115 2072/2707/115 +f 2078/2708/111 2077/2694/111 2076/2706/111 +f 2081/2709/113 2082/2710/113 2080/2711/113 +f 2091/2712/114 2085/2713/114 2089/2714/114 +f 2081/2715/110 2087/2716/110 2083/2717/110 +f 2081/2718/108 2080/2719/108 2089/2720/108 +f 2082/2710/112 2084/2721/112 2080/2722/112 +f 2082/2710/109 2083/2717/109 2090/2723/109 +f 2086/2724/115 2088/2725/115 2084/2726/115 +f 2090/2727/111 2089/2714/111 2088/2725/111 +f 2093/2728/113 2094/2729/113 2092/2730/113 +f 2103/2731/114 2097/2732/114 2101/2733/114 +f 2093/2734/110 2099/2735/110 2095/2736/110 +f 2093/2737/108 2092/2738/108 2101/2739/108 +f 2094/2729/112 2096/2740/112 2092/2741/112 +f 2094/2729/109 2095/2736/109 2102/2742/109 +f 2098/2743/115 2100/2744/115 2096/2745/115 +f 2102/2746/111 2101/2733/111 2100/2744/111 +f 2112/2747/108 2118/2748/108 2113/2749/108 +f 2108/2750/113 2110/2751/113 2109/2752/113 +f 2107/2753/109 2108/2750/109 2106/2754/109 +f 2104/2755/108 2110/2751/108 2105/2756/108 +f 2115/2757/109 2116/2758/109 2114/2759/109 +f 2116/2758/113 2118/2748/113 2117/2760/113 +f 2120/2761/108 2126/2762/108 2121/2763/108 +f 2123/2764/109 2124/2765/109 2122/2766/109 +f 2124/2765/113 2126/2762/113 2125/2767/113 +f 2135/2768/113 2142/2769/113 2134/2770/113 +f 2138/2771/110 2131/2772/110 2130/2773/110 +f 2140/2774/111 2133/2775/111 2132/2776/111 +f 2129/2777/112 2136/2778/112 2128/2779/112 +f 2144/2780/108 2146/2781/108 2145/2782/108 +f 2150/2783/109 2148/2784/109 2149/2785/109 +f 2145/2786/110 2148/2784/110 2144/2780/110 +f 2146/2787/111 2149/2788/111 2145/2786/111 +f 2147/2789/112 2150/2790/112 2146/2787/112 +f 2144/2780/113 2151/2791/113 2147/2792/113 +f 2152/2793/108 2154/2794/108 2153/2795/108 +f 2158/2796/109 2156/2797/109 2157/2798/109 +f 2153/2799/110 2156/2797/110 2152/2793/110 +f 2154/2800/111 2157/2801/111 2153/2799/111 +f 2155/2802/112 2158/2803/112 2154/2800/112 +f 2152/2793/113 2159/2804/113 2155/2805/113 +f 2160/2806/108 2162/2807/108 2161/2808/108 +f 2166/2809/109 2164/2810/109 2165/2811/109 +f 2161/2812/110 2164/2810/110 2160/2806/110 +f 2162/2813/111 2165/2814/111 2161/2812/111 +f 2163/2815/112 2166/2816/112 2162/2813/112 +f 2160/2806/113 2167/2817/113 2163/2818/113 +f 2182/2819/111 2175/2820/111 2174/2821/111 +f 2171/2822/112 2178/2823/112 2170/2824/112 +f 2173/2825/113 2180/2826/113 2172/2827/113 +f 2176/2828/110 2169/2829/110 2168/2830/110 +f 2060/2676/108 2063/2688/108 2062/2677/108 +f 2066/2679/109 2067/2687/109 2064/2680/109 +f 2061/2682/110 2065/2684/110 2064/2680/110 +f 2062/2683/111 2066/2686/111 2065/2684/111 +f 2063/2685/112 2067/2831/112 2066/2686/112 +f 2060/2676/113 2064/2680/113 2067/2687/113 +f 2069/2689/113 2071/2832/113 2070/2690/113 +f 2079/2692/114 2075/2696/114 2073/2693/114 +f 2069/2695/110 2073/2833/110 2075/2696/110 +f 2068/2699/108 2072/2834/108 2076/2835/108 +f 2077/2700/108 2073/2836/108 2069/2698/108 +f 2068/2699/108 2076/2835/108 2077/2700/108 +f 2070/2701/112 2074/2705/112 2072/2702/112 +f 2071/2697/109 2075/2696/109 2079/2837/109 +f 2078/2704/109 2074/2705/109 2070/2701/109 +f 2071/2697/109 2079/2837/109 2078/2704/109 +f 2074/2705/115 2078/2708/115 2076/2706/115 +f 2078/2708/111 2079/2692/111 2077/2694/111 +f 2081/2709/113 2083/2717/113 2082/2710/113 +f 2091/2712/114 2087/2716/114 2085/2713/114 +f 2081/2715/110 2085/2838/110 2087/2716/110 +f 2080/2719/108 2084/2839/108 2088/2840/108 +f 2089/2720/108 2085/2841/108 2081/2718/108 +f 2080/2719/108 2088/2840/108 2089/2720/108 +f 2082/2710/112 2086/2724/112 2084/2721/112 +f 2083/2717/109 2087/2716/109 2091/2842/109 +f 2090/2723/109 2086/2724/109 2082/2710/109 +f 2083/2717/109 2091/2842/109 2090/2723/109 +f 2086/2724/115 2090/2727/115 2088/2725/115 +f 2090/2727/111 2091/2712/111 2089/2714/111 +f 2093/2728/113 2095/2736/113 2094/2729/113 +f 2103/2731/114 2099/2735/114 2097/2732/114 +f 2093/2734/110 2097/2843/110 2099/2735/110 +f 2092/2738/108 2096/2844/108 2100/2845/108 +f 2101/2739/108 2097/2846/108 2093/2737/108 +f 2092/2738/108 2100/2845/108 2101/2739/108 +f 2094/2729/112 2098/2743/112 2096/2740/112 +f 2095/2736/109 2099/2735/109 2103/2847/109 +f 2102/2742/109 2098/2743/109 2094/2729/109 +f 2095/2736/109 2103/2847/109 2102/2742/109 +f 2098/2743/115 2102/2746/115 2100/2744/115 +f 2102/2746/111 2103/2731/111 2101/2733/111 +f 2112/2747/108 2117/2760/108 2118/2748/108 +f 2108/2750/113 2111/2848/113 2110/2751/113 +f 2107/2753/109 2111/2848/109 2108/2750/109 +f 2104/2755/108 2109/2752/108 2110/2751/108 +f 2115/2757/109 2119/2849/109 2116/2758/109 +f 2116/2758/113 2119/2849/113 2118/2748/113 +f 2120/2761/108 2125/2767/108 2126/2762/108 +f 2123/2764/109 2127/2850/109 2124/2765/109 +f 2124/2765/113 2127/2850/113 2126/2762/113 +f 2135/2768/113 2143/2851/113 2142/2769/113 +f 2138/2771/110 2139/2852/110 2131/2772/110 +f 2140/2774/111 2141/2853/111 2133/2775/111 +f 2129/2777/112 2137/2854/112 2136/2778/112 +f 2144/2780/108 2147/2792/108 2146/2781/108 +f 2150/2783/109 2151/2791/109 2148/2784/109 +f 2145/2786/110 2149/2788/110 2148/2784/110 +f 2146/2787/111 2150/2790/111 2149/2788/111 +f 2147/2789/112 2151/2855/112 2150/2790/112 +f 2144/2780/113 2148/2784/113 2151/2791/113 +f 2152/2793/108 2155/2805/108 2154/2794/108 +f 2158/2796/109 2159/2804/109 2156/2797/109 +f 2153/2799/110 2157/2801/110 2156/2797/110 +f 2154/2800/111 2158/2803/111 2157/2801/111 +f 2155/2802/112 2159/2856/112 2158/2803/112 +f 2152/2793/113 2156/2797/113 2159/2804/113 +f 2160/2806/108 2163/2818/108 2162/2807/108 +f 2166/2809/109 2167/2817/109 2164/2810/109 +f 2161/2812/110 2165/2814/110 2164/2810/110 +f 2162/2813/111 2166/2816/111 2165/2814/111 +f 2163/2815/112 2167/2857/112 2166/2816/112 +f 2160/2806/113 2164/2810/113 2167/2817/113 +f 2182/2819/111 2183/2858/111 2175/2820/111 +f 2171/2822/112 2179/2859/112 2178/2823/112 +f 2173/2825/113 2181/2860/113 2180/2826/113 +f 2176/2828/110 2177/2861/110 2169/2829/110 o Huge_Pad v -1.250000 2.000000 1.250000 v 1.250000 2.000000 1.250000 @@ -4019,6 +7470,382 @@ v -0.375000 10.500000 2.250000 v -0.198223 10.426777 2.250000 v -0.125000 10.250000 2.250000 v -0.198223 10.073223 2.250000 +v 0.812500 2.000000 2.000000 +v -0.812500 2.000000 2.000000 +v 0.812500 8.000000 2.000000 +v -0.812500 8.000000 2.000000 +v 0.812500 2.000000 3.500000 +v -0.812500 2.000000 3.500000 +v 0.812500 8.000000 3.500000 +v -0.812500 8.000000 3.500000 +v -1.000000 2.000000 3.312500 +v -1.000000 2.000000 2.187500 +v -1.000000 8.000000 3.312500 +v -1.000000 8.000000 2.187500 +v 1.000000 2.000000 3.312500 +v 1.000000 2.000000 2.187500 +v 1.000000 8.000000 3.312500 +v 1.000000 8.000000 2.187500 +v 0.812500 8.250000 2.000000 +v -0.812500 8.250000 2.000000 +v 0.812500 14.250000 2.000000 +v -0.812500 14.250000 2.000000 +v 0.812500 8.250000 3.000000 +v -0.812500 8.250000 3.000000 +v 0.812500 14.250000 3.000000 +v -0.812500 14.250000 3.000000 +v -1.000000 8.250000 2.187500 +v -1.000000 14.250000 2.187500 +v -1.000000 8.250000 2.812500 +v -1.000000 14.250000 2.812500 +v 1.000000 8.250000 2.187500 +v 1.000000 14.250000 2.187500 +v 1.000000 8.250000 2.812500 +v 1.000000 14.250000 2.812500 +vt 0.155844 0.875000 +vt 0.285714 0.666667 +vt 0.285714 0.875000 +vt 0.090909 0.437500 +vt 0.025974 0.125000 +vt 0.090909 0.229167 +vt 0.220779 0.437500 +vt 0.025974 0.541667 +vt 0.220779 0.229167 +vt 0.285714 0.541667 +vt 0.285714 0.125000 +vt 0.025974 0.125000 +vt 0.285714 0.083333 +vt 0.285714 0.125000 +vt 0.025974 0.125000 +vt 0.285714 0.083333 +vt 0.285714 0.125000 +vt 0.285714 0.083333 +vt 0.025974 0.125000 +vt 0.285714 0.083333 +vt 0.285714 0.125000 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt -0.000000 0.041667 +vt 0.311688 -0.000000 +vt 0.000000 0.041667 +vt 0.311688 0.000000 +vt 0.000000 0.041667 +vt 0.311688 0.000000 +vt 0.000000 0.041667 +vt 0.311688 0.000000 +vt 0.129870 0.291667 +vt 0.129870 0.375000 +vt 0.181818 0.375000 +vt 0.181818 0.291667 +vt 0.441558 0.625000 +vt 0.493506 0.875000 +vt 0.441558 0.875000 +vt 0.545455 0.875000 +vt 0.493506 0.625000 +vt 0.545455 0.625000 +vt 0.493506 0.541667 +vt 0.441558 0.541667 +vt 0.441558 0.958333 +vt 0.493506 0.958333 +vt 0.337662 0.083333 +vt 0.415584 0.416667 +vt 0.337662 0.416667 +vt 0.415584 -0.000000 +vt 0.337662 -0.000000 +vt 0.337662 0.500000 +vt 0.415584 0.500000 +vt 0.285714 0.083333 +vt 0.285714 0.416667 +vt 0.324675 0.500000 +vt 0.305195 1.000000 +vt 0.305195 0.500000 +vt 0.344156 0.500000 +vt 0.324675 1.000000 +vt 0.324675 0.500000 +vt 0.344156 0.500000 +vt 0.324675 1.000000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.344156 0.500000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.344156 0.500000 +vt 0.305195 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.305195 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.324675 0.500000 +vt 0.305195 1.000000 +vt 0.324675 0.500000 +vt 0.305195 1.000000 +vt 0.324675 1.000000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.324675 1.000000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.305195 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.305195 1.000000 +vt 0.675325 0.750000 +vt 0.545455 1.000000 +vt 0.545455 0.750000 +vt 0.545455 0.750000 +vt 0.675325 1.000000 +vt 0.545455 1.000000 +vt 0.688312 1.000000 +vt 0.675325 0.750000 +vt 0.688312 0.750000 +vt 0.688312 1.000000 +vt 0.675325 0.750000 +vt 0.688312 0.750000 +vt 0.675325 0.729167 +vt 0.545455 0.729167 +vt 0.675325 0.729167 +vt 0.545455 0.750000 +vt 0.545455 0.729167 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.383117 0.500000 +vt 0.422078 0.500000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.422078 0.500000 +vt 0.383117 0.500000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.383117 0.500000 +vt 0.422078 0.500000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.422078 0.500000 +vt 0.383117 0.500000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.792208 0.750000 +vt 0.688312 1.000000 +vt 0.688312 0.750000 +vt 0.415584 0.500000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.415584 0.000000 +vt 0.500000 0.500000 +vt 0.415584 0.500000 +vt 0.500000 0.000000 +vt 0.558442 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.500000 +vt 0.558442 0.000000 +vt 0.558442 0.500000 +vt 0.558442 0.500000 +vt 0.642857 0.000000 +vt 0.642857 0.500000 +vt 0.558442 0.000000 +vt 0.642857 0.500000 +vt 0.558442 0.500000 +vt 0.642857 0.000000 +vt 0.675325 0.500000 +vt 0.642857 0.500000 +vt 0.642857 0.500000 +vt 0.675325 0.000000 +vt 0.675325 0.500000 +vt 0.688312 0.750000 +vt 0.792208 1.000000 +vt 0.688312 1.000000 +vt 0.805195 1.000000 +vt 0.792208 0.750000 +vt 0.805195 0.750000 +vt 0.805195 1.000000 +vt 0.792208 0.750000 +vt 0.805195 0.750000 +vt 0.792208 0.729167 +vt 0.688312 0.729167 +vt 0.792208 0.729167 +vt 0.688312 0.750000 +vt 0.688312 0.729167 +vt 0.636364 0.625272 +vt 0.645427 0.631294 +vt 0.627300 0.660373 +vt 0.662338 0.624730 +vt 0.671640 0.630911 +vt 0.653036 0.660756 +vt 0.500000 0.000000 +vt 0.415584 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.500000 +vt 0.415584 0.000000 +vt 0.415584 0.500000 +vt 0.558442 0.500000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.558442 0.000000 +vt 0.500000 0.500000 +vt 0.558442 0.500000 +vt 0.642857 0.000000 +vt 0.558442 0.500000 +vt 0.642857 0.500000 +vt 0.642857 0.500000 +vt 0.558442 0.000000 +vt 0.558442 0.500000 +vt 0.675325 0.500000 +vt 0.642857 0.000000 +vt 0.642857 0.500000 +vt 0.675325 0.000000 +vt 0.642857 0.500000 +vt 0.675325 0.500000 +vt 0.155844 0.666667 +vt -0.000000 -0.000000 +vt -0.000000 -0.000000 +vt -0.000000 -0.000000 +vt -0.000000 -0.000000 +vt 0.415584 0.083333 +vt 0.363636 1.000000 +vt 0.363636 1.000000 +vt 0.363636 1.000000 +vt 0.363636 1.000000 +vt 0.675325 1.000000 +vt 0.675325 1.000000 +vt 0.441558 1.000000 +vt 0.441558 1.000000 +vt 0.441558 1.000000 +vt 0.441558 1.000000 +vt 0.792208 1.000000 +vt 0.415584 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.642857 0.000000 +vt 0.675325 0.000000 +vt 0.642857 0.000000 +vt 0.792208 1.000000 +vt 0.649182 0.645834 +vt 0.645427 0.660374 +vt 0.636364 0.666396 +vt 0.623546 0.645834 +vt 0.627300 0.631294 +vt 0.675493 0.645833 +vt 0.671640 0.660756 +vt 0.662338 0.666937 +vt 0.649182 0.645833 +vt 0.653035 0.630911 +vt 0.415584 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.642857 0.000000 +vt 0.675325 0.000000 +vt 0.642857 0.000000 +vt 0.724026 -0.000000 +vt 0.714286 0.666667 +vt 0.714286 0.000000 +vt 0.704545 -0.000000 +vt 0.694805 0.666667 +vt 0.694805 0.000000 +vt 0.685065 0.000000 +vt 0.675325 0.666667 +vt 0.675325 -0.000000 +vt 0.753247 0.000000 +vt 0.743506 0.666667 +vt 0.743506 -0.000000 +vt 0.733766 -0.000000 +vt 0.724026 0.666667 +vt 0.704545 0.666667 +vt 0.685065 0.666667 +vt 0.733766 0.666667 +vt 0.724026 0.671875 +vt 0.733766 0.697917 +vt 0.724026 0.697917 +vt 0.704545 0.671875 +vt 0.714286 0.697917 +vt 0.704545 0.697917 +vt 0.685065 0.692708 +vt 0.694805 0.697917 +vt 0.685065 0.697917 +vt 0.733766 0.682292 +vt 0.743506 0.697917 +vt 0.694805 0.682292 +vt 0.704545 0.723958 +vt 0.694805 0.713542 +vt 0.685065 0.703125 +vt 0.733766 0.713542 +vt 0.724026 0.723958 +vt 0.714286 0.729167 +vt 0.743506 0.692708 +vt 0.753247 0.697917 +vt 0.743506 0.703125 +vt 0.675325 0.697917 +vt 0.801948 0.000000 +vt 0.792208 0.666667 +vt 0.792208 0.000000 +vt 0.782468 0.000000 +vt 0.772727 0.666667 +vt 0.772727 0.000000 +vt 0.762987 -0.000000 +vt 0.753247 0.666667 +vt 0.753247 0.000000 +vt 0.831169 0.000000 +vt 0.821429 0.666667 +vt 0.821429 -0.000000 +vt 0.811688 -0.000000 +vt 0.801948 0.666667 +vt 0.782468 0.666667 +vt 0.762987 0.666667 +vt 0.811688 0.666667 +vt 0.801948 0.671875 +vt 0.811688 0.697917 +vt 0.801948 0.697917 +vt 0.782468 0.697917 +vt 0.782468 0.671875 +vt 0.772727 0.682292 +vt 0.762987 0.697917 +vt 0.762987 0.692708 +vt 0.821429 0.692708 +vt 0.811688 0.682292 +vt 0.792208 0.697917 +vt 0.772727 0.697917 +vt 0.782468 0.723958 +vt 0.772727 0.713542 +vt 0.762987 0.703125 +vt 0.821429 0.697917 +vt 0.811688 0.713542 +vt 0.801948 0.723958 +vt 0.792208 0.729167 +vt 0.831169 0.697917 +vt 0.821429 0.703125 +vt 0.753247 0.697917 +vt 0.753247 0.666667 +vt 0.831169 0.666667 vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 @@ -4041,284 +7868,300 @@ vn 0.6794 0.1448 0.7194 vn -0.6794 0.1448 0.7194 vn -0.7263 -0.1363 -0.6737 vn 0.9987 0.0196 0.0473 +vn 0.9955 0.0671 0.0671 vn 0.6630 0.5294 0.5294 -vn 0.0000 0.7071 0.7071 +vn -0.0000 0.7071 0.7071 vn -0.6630 0.5294 0.5294 vn -0.9955 0.0671 0.0671 vn -0.7574 -0.4617 -0.4617 -vn 0.9955 0.0671 0.0671 +vn 0.7574 -0.4617 -0.4617 vn -0.6333 0.7150 0.2962 vn -0.9947 0.0948 0.0393 vn -0.7311 -0.6303 -0.2611 -vn 0.7574 -0.4617 -0.4617 vn 0.9947 0.0948 0.0393 -vn 0.0000 0.9239 0.3827 vn 0.6333 0.7150 0.2962 +vn 0.0000 0.9239 0.3827 vn 0.7311 -0.6303 -0.2611 s off -f 1778//114 1781//114 1780//114 -f 1754//114 1759//114 1755//114 -f 1756//114 1758//114 1754//114 -f 1757//114 1760//114 1756//114 -f 1755//114 1761//114 1757//114 -f 1761//115 1764//115 1760//115 -f 1758//116 1763//116 1759//116 -f 1759//117 1765//117 1761//117 -f 1760//118 1762//118 1758//118 -f 1763//114 1769//114 1765//114 -f 1762//114 1767//114 1763//114 -f 1764//114 1766//114 1762//114 -f 1765//114 1768//114 1764//114 -f 1767//117 1773//117 1769//117 -f 1768//118 1770//118 1766//118 -f 1769//115 1772//115 1768//115 -f 1766//116 1771//116 1767//116 -f 1775//119 1754//119 1755//119 -f 1774//120 1756//120 1754//120 -f 1776//121 1757//121 1756//121 -f 1777//122 1755//122 1757//122 -f 1788//114 1786//114 1787//114 -f 1784//115 1789//115 1785//115 -f 1785//117 1788//117 1783//117 -f 1782//118 1786//118 1784//118 -f 1796//114 1794//114 1795//114 -f 1793//117 1796//117 1791//117 -f 1790//118 1794//118 1792//118 -f 1791//116 1795//116 1790//116 -f 1809//117 1824//117 1807//117 -f 1800//115 1817//115 1801//115 -f 1808//115 1825//115 1809//115 -f 1802//118 1818//118 1804//118 -f 1810//118 1826//118 1812//118 -f 1803//116 1819//116 1802//116 -f 1811//116 1827//116 1810//116 -f 1805//117 1820//117 1803//117 -f 1813//117 1828//117 1811//117 -f 1804//115 1821//115 1805//115 -f 1798//118 1814//118 1800//118 -f 1812//115 1829//115 1813//115 -f 1806//118 1822//118 1808//118 -f 1799//116 1815//116 1798//116 -f 1807//116 1823//116 1806//116 -f 1801//117 1816//117 1799//117 -f 1832//123 1831//123 1830//123 -f 1836//114 1834//114 1835//114 -f 1832//115 1837//115 1833//115 -f 1831//116 1835//116 1830//116 -f 1833//117 1836//117 1831//117 -f 1830//118 1834//118 1832//118 -f 1841//117 1848//117 1839//117 -f 1840//115 1849//115 1841//115 -f 1842//118 1850//118 1844//118 -f 1843//116 1851//116 1842//116 -f 1845//117 1852//117 1843//117 -f 1844//115 1853//115 1845//115 -f 1838//118 1846//118 1840//118 -f 1839//116 1847//116 1838//116 -f 1857//117 1864//117 1855//117 -f 1856//115 1865//115 1857//115 -f 1858//118 1866//118 1860//118 -f 1859//116 1867//116 1858//116 -f 1861//117 1868//117 1859//117 -f 1860//115 1869//115 1861//115 -f 1854//118 1862//118 1856//118 -f 1855//116 1863//116 1854//116 -f 1904//123 1903//123 1902//123 -f 1872//115 1871//115 1873//115 -f 1875//116 1876//116 1877//116 -f 1879//118 1880//118 1881//118 -f 1884//117 1883//117 1885//117 -f 1888//115 1887//115 1889//115 -f 1891//116 1892//116 1893//116 -f 1894//118 1897//118 1895//118 -f 1901//117 1898//117 1899//117 -f 1908//114 1906//114 1907//114 -f 1904//115 1909//115 1905//115 -f 1903//116 1907//116 1902//116 -f 1905//117 1908//117 1903//117 -f 1902//118 1906//118 1904//118 -f 1939//115 1918//115 1933//115 -f 1948//115 1963//115 1967//115 -f 1778//114 1779//114 1781//114 -f 1754//114 1758//114 1759//114 -f 1756//114 1760//114 1758//114 -f 1757//114 1761//114 1760//114 -f 1755//114 1759//114 1761//114 -f 1761//115 1765//115 1764//115 -f 1758//116 1762//116 1763//116 -f 1759//117 1763//117 1765//117 -f 1760//118 1764//118 1762//118 -f 1763//114 1767//114 1769//114 -f 1762//114 1766//114 1767//114 -f 1764//114 1768//114 1766//114 -f 1765//114 1769//114 1768//114 -f 1767//117 1771//117 1773//117 -f 1768//118 1772//118 1770//118 -f 1769//115 1773//115 1772//115 -f 1766//116 1770//116 1771//116 -f 1775//119 1774//119 1754//119 -f 1774//120 1776//120 1756//120 -f 1776//121 1777//121 1757//121 -f 1777//122 1775//122 1755//122 -f 1788//114 1789//114 1786//114 -f 1784//115 1786//115 1789//115 -f 1785//117 1789//117 1788//117 -f 1782//118 1787//118 1786//118 -f 1796//114 1797//114 1794//114 -f 1793//117 1797//117 1796//117 -f 1790//118 1795//118 1794//118 -f 1791//116 1796//116 1795//116 -f 1809//117 1825//117 1824//117 -f 1800//115 1814//115 1817//115 -f 1808//115 1822//115 1825//115 -f 1802//118 1819//118 1818//118 -f 1810//118 1827//118 1826//118 -f 1803//116 1820//116 1819//116 -f 1811//116 1828//116 1827//116 -f 1805//117 1821//117 1820//117 -f 1813//117 1829//117 1828//117 -f 1804//115 1818//115 1821//115 -f 1798//118 1815//118 1814//118 -f 1812//115 1826//115 1829//115 -f 1806//118 1823//118 1822//118 -f 1799//116 1816//116 1815//116 -f 1807//116 1824//116 1823//116 -f 1801//117 1817//117 1816//117 -f 1832//123 1833//123 1831//123 -f 1836//114 1837//114 1834//114 -f 1832//115 1834//115 1837//115 -f 1831//116 1836//116 1835//116 -f 1833//117 1837//117 1836//117 -f 1830//118 1835//118 1834//118 -f 1841//117 1849//117 1848//117 -f 1840//115 1846//115 1849//115 -f 1842//118 1851//118 1850//118 -f 1843//116 1852//116 1851//116 -f 1845//117 1853//117 1852//117 -f 1844//115 1850//115 1853//115 -f 1838//118 1847//118 1846//118 -f 1839//116 1848//116 1847//116 -f 1857//117 1865//117 1864//117 -f 1856//115 1862//115 1865//115 -f 1858//118 1867//118 1866//118 -f 1859//116 1868//116 1867//116 -f 1861//117 1869//117 1868//117 -f 1860//115 1866//115 1869//115 -f 1854//118 1863//118 1862//118 -f 1855//116 1864//116 1863//116 -f 1904//123 1905//123 1903//123 -f 1872//115 1870//115 1871//115 -f 1875//116 1874//116 1876//116 -f 1879//118 1878//118 1880//118 -f 1884//117 1882//117 1883//117 -f 1888//115 1886//115 1887//115 -f 1891//116 1890//116 1892//116 -f 1894//118 1896//118 1897//118 -f 1901//117 1900//117 1898//117 -f 1908//114 1909//114 1906//114 -f 1904//115 1906//115 1909//115 -f 1903//116 1908//116 1907//116 -f 1905//117 1909//117 1908//117 -f 1902//118 1907//118 1906//118 -f 1933//115 1934//115 1937//115 -f 1934//115 1935//115 1937//115 -f 1935//115 1936//115 1937//115 -f 1937//115 1938//115 1933//115 -f 1938//115 1939//115 1933//115 -f 1963//115 1964//115 1967//115 -f 1964//115 1965//115 1967//115 -f 1965//115 1966//115 1967//115 -f 1967//115 1968//115 1969//115 -f 1969//115 1948//115 1967//115 +f 2208/2862/116 2211/2863/116 2210/2864/116 +f 2184/2865/116 2189/2866/116 2185/2867/116 +f 2186/2868/116 2188/2869/116 2184/2865/116 +f 2187/2870/116 2190/2871/116 2186/2868/116 +f 2185/2867/116 2191/2872/116 2187/2870/116 +f 2191/2873/117 2194/2874/117 2190/2875/117 +f 2188/2876/118 2193/2877/118 2189/2878/118 +f 2189/2866/119 2195/2879/119 2191/2872/119 +f 2190/2880/120 2192/2881/120 2188/2882/120 +f 2193/2883/116 2199/2884/116 2195/2879/116 +f 2192/2885/116 2197/2886/116 2193/2877/116 +f 2194/2887/116 2196/2888/116 2192/2881/116 +f 2195/2889/116 2198/2890/116 2194/2874/116 +f 2197/2891/119 2203/2892/119 2199/2884/119 +f 2198/2893/120 2200/2894/120 2196/2888/120 +f 2199/2895/117 2202/2896/117 2198/2890/117 +f 2196/2897/118 2201/2898/118 2197/2886/118 +f 2205/2899/121 2184/2865/121 2185/2867/121 +f 2204/2900/122 2186/2868/122 2184/2865/122 +f 2206/2901/123 2187/2870/123 2186/2868/123 +f 2207/2902/124 2185/2867/124 2187/2870/124 +f 2218/2903/116 2216/2904/116 2217/2905/116 +f 2214/2906/117 2219/2907/117 2215/2908/117 +f 2215/2909/119 2218/2903/119 2213/2910/119 +f 2212/2911/120 2216/2904/120 2214/2912/120 +f 2226/2913/116 2224/2914/116 2225/2915/116 +f 2223/2916/119 2226/2913/119 2221/2917/119 +f 2220/2918/120 2224/2914/120 2222/2919/120 +f 2221/2920/118 2225/2915/118 2220/2921/118 +f 2239/2922/119 2254/2923/119 2237/2924/119 +f 2230/2925/117 2247/2926/117 2231/2927/117 +f 2238/2928/117 2255/2929/117 2239/2922/117 +f 2232/2930/120 2248/2931/120 2234/2932/120 +f 2240/2933/120 2256/2934/120 2242/2935/120 +f 2233/2936/118 2249/2937/118 2232/2938/118 +f 2241/2939/118 2257/2940/118 2240/2941/118 +f 2235/2942/119 2250/2943/119 2233/2936/119 +f 2243/2944/119 2258/2945/119 2241/2939/119 +f 2234/2932/117 2251/2946/117 2235/2942/117 +f 2228/2947/120 2244/2948/120 2230/2925/120 +f 2242/2935/117 2259/2949/117 2243/2944/117 +f 2236/2950/120 2252/2951/120 2238/2928/120 +f 2229/2952/118 2245/2953/118 2228/2954/118 +f 2237/2924/118 2253/2955/118 2236/2956/118 +f 2231/2927/119 2246/2957/119 2229/2952/119 +f 2262/2958/125 2261/2959/125 2260/2960/125 +f 2266/2961/116 2264/2962/116 2265/2963/116 +f 2262/2964/117 2267/2965/117 2263/2966/117 +f 2261/2967/118 2265/2968/118 2260/2969/118 +f 2263/2970/119 2266/2961/119 2261/2971/119 +f 2260/2972/120 2264/2973/120 2262/2974/120 +f 2271/2975/119 2278/2976/119 2269/2977/119 +f 2270/2978/117 2279/2979/117 2271/2975/117 +f 2272/2980/120 2280/2981/120 2274/2982/120 +f 2273/2983/118 2281/2984/118 2272/2985/118 +f 2275/2986/119 2282/2987/119 2273/2983/119 +f 2274/2982/117 2283/2988/117 2275/2986/117 +f 2268/2989/120 2276/2990/120 2270/2978/120 +f 2269/2977/118 2277/2991/118 2268/2992/118 +f 2287/2993/119 2294/2994/119 2285/2995/119 +f 2286/2996/117 2295/2997/117 2287/2993/117 +f 2288/2998/120 2296/2999/120 2290/3000/120 +f 2289/3001/118 2297/3002/118 2288/3003/118 +f 2291/3004/119 2298/3005/119 2289/3001/119 +f 2290/3000/117 2299/3006/117 2291/3004/117 +f 2284/3007/120 2292/3008/120 2286/2996/120 +f 2285/2995/118 2293/3009/118 2284/3010/118 +f 2334/3011/125 2333/3012/125 2332/3013/125 +f 2302/3014/117 2301/3015/117 2303/3016/117 +f 2305/3017/118 2306/3018/118 2307/3019/118 +f 2309/3020/120 2310/3021/120 2311/3022/120 +f 2314/3023/119 2313/3024/119 2315/3025/119 +f 2318/3026/117 2317/3027/117 2319/3028/117 +f 2321/3029/118 2322/3030/118 2323/3031/118 +f 2324/3032/120 2327/3033/120 2325/3034/120 +f 2331/3035/119 2328/3036/119 2329/3037/119 +f 2338/3038/116 2336/3039/116 2337/3040/116 +f 2334/3041/117 2339/3042/117 2335/3043/117 +f 2333/3044/118 2337/3045/118 2332/3046/118 +f 2335/3047/119 2338/3038/119 2333/3048/119 +f 2332/3049/120 2336/3050/120 2334/3051/120 +f 2348/3052/117 2363/3053/117 2367/3054/117 +f 2378/3055/117 2393/3056/117 2397/3057/117 +f 2401/3058/118 2402/3059/118 2403/3060/118 +f 2406/3061/117 2405/3062/117 2407/3063/117 +f 2410/3064/119 2409/3065/119 2411/3066/119 +f 2413/3067/120 2414/3068/120 2415/3069/120 +f 2417/3070/118 2418/3071/118 2419/3072/118 +f 2422/3073/117 2421/3074/117 2423/3075/117 +f 2427/3076/119 2424/3077/119 2425/3078/119 +f 2428/3079/120 2431/3080/120 2429/3081/120 +f 2208/2862/116 2209/3082/116 2211/2863/116 +f 2184/2865/116 2188/2869/116 2189/2866/116 +f 2186/2868/116 2190/2871/116 2188/2869/116 +f 2187/2870/116 2191/2872/116 2190/2871/116 +f 2185/2867/116 2189/2866/116 2191/2872/116 +f 2191/2873/117 2195/2889/117 2194/2874/117 +f 2188/2876/118 2192/2885/118 2193/2877/118 +f 2189/2866/119 2193/2883/119 2195/2879/119 +f 2190/2880/120 2194/2887/120 2192/2881/120 +f 2193/2883/116 2197/2891/116 2199/2884/116 +f 2192/2885/116 2196/2897/116 2197/2886/116 +f 2194/2887/116 2198/2893/116 2196/2888/116 +f 2195/2889/116 2199/2895/116 2198/2890/116 +f 2197/2891/119 2201/3083/119 2203/2892/119 +f 2198/2893/120 2202/3084/120 2200/2894/120 +f 2199/2895/117 2203/3085/117 2202/2896/117 +f 2196/2897/118 2200/3086/118 2201/2898/118 +f 2205/2899/121 2204/2900/121 2184/2865/121 +f 2204/2900/122 2206/2901/122 2186/2868/122 +f 2206/2901/123 2207/2902/123 2187/2870/123 +f 2207/2902/124 2205/2899/124 2185/2867/124 +f 2218/2903/116 2219/2907/116 2216/2904/116 +f 2214/2906/117 2216/2904/117 2219/2907/117 +f 2215/2909/119 2219/2907/119 2218/2903/119 +f 2212/2911/120 2217/2905/120 2216/2904/120 +f 2226/2913/116 2227/3087/116 2224/2914/116 +f 2223/2916/119 2227/3087/119 2226/2913/119 +f 2220/2918/120 2225/2915/120 2224/2914/120 +f 2221/2920/118 2226/2913/118 2225/2915/118 +f 2239/2922/119 2255/2929/119 2254/2923/119 +f 2230/2925/117 2244/2948/117 2247/2926/117 +f 2238/2928/117 2252/2951/117 2255/2929/117 +f 2232/2930/120 2249/3088/120 2248/2931/120 +f 2240/2933/120 2257/3089/120 2256/2934/120 +f 2233/2936/118 2250/2943/118 2249/2937/118 +f 2241/2939/118 2258/2945/118 2257/2940/118 +f 2235/2942/119 2251/2946/119 2250/2943/119 +f 2243/2944/119 2259/2949/119 2258/2945/119 +f 2234/2932/117 2248/2931/117 2251/2946/117 +f 2228/2947/120 2245/3090/120 2244/2948/120 +f 2242/2935/117 2256/2934/117 2259/2949/117 +f 2236/2950/120 2253/3091/120 2252/2951/120 +f 2229/2952/118 2246/2957/118 2245/2953/118 +f 2237/2924/118 2254/2923/118 2253/2955/118 +f 2231/2927/119 2247/2926/119 2246/2957/119 +f 2262/2958/125 2263/3092/125 2261/2959/125 +f 2266/2961/116 2267/2965/116 2264/2962/116 +f 2262/2964/117 2264/2962/117 2267/2965/117 +f 2261/2967/118 2266/3093/118 2265/2968/118 +f 2263/2970/119 2267/2965/119 2266/2961/119 +f 2260/2972/120 2265/2968/120 2264/2973/120 +f 2271/2975/119 2279/2979/119 2278/2976/119 +f 2270/2978/117 2276/2990/117 2279/2979/117 +f 2272/2980/120 2281/3094/120 2280/2981/120 +f 2273/2983/118 2282/2987/118 2281/2984/118 +f 2275/2986/119 2283/2988/119 2282/2987/119 +f 2274/2982/117 2280/2981/117 2283/2988/117 +f 2268/2989/120 2277/3095/120 2276/2990/120 +f 2269/2977/118 2278/2976/118 2277/2991/118 +f 2287/2993/119 2295/2997/119 2294/2994/119 +f 2286/2996/117 2292/3008/117 2295/2997/117 +f 2288/2998/120 2297/3096/120 2296/2999/120 +f 2289/3001/118 2298/3005/118 2297/3002/118 +f 2291/3004/119 2299/3006/119 2298/3005/119 +f 2290/3000/117 2296/2999/117 2299/3006/117 +f 2284/3007/120 2293/3097/120 2292/3008/120 +f 2285/2995/118 2294/2994/118 2293/3009/118 +f 2334/3011/125 2335/3098/125 2333/3012/125 +f 2302/3014/117 2300/3099/117 2301/3015/117 +f 2305/3017/118 2304/3100/118 2306/3018/118 +f 2309/3020/120 2308/3101/120 2310/3021/120 +f 2314/3023/119 2312/3102/119 2313/3024/119 +f 2318/3026/117 2316/3103/117 2317/3027/117 +f 2321/3029/118 2320/3104/118 2322/3030/118 +f 2324/3032/120 2326/3105/120 2327/3033/120 +f 2331/3035/119 2330/3106/119 2328/3036/119 +f 2338/3038/116 2339/3042/116 2336/3039/116 +f 2334/3041/117 2336/3039/117 2339/3042/117 +f 2333/3044/118 2338/3107/118 2337/3045/118 +f 2335/3047/119 2339/3042/119 2338/3038/119 +f 2332/3049/120 2337/3045/120 2336/3050/120 +f 2363/3053/117 2364/3108/117 2365/3109/117 +f 2365/3109/117 2366/3110/117 2363/3053/117 +f 2366/3110/117 2367/3054/117 2363/3053/117 +f 2367/3054/117 2368/3111/117 2369/3112/117 +f 2369/3112/117 2348/3052/117 2367/3054/117 +f 2393/3056/117 2394/3113/117 2395/3114/117 +f 2395/3114/117 2396/3115/117 2393/3056/117 +f 2396/3115/117 2397/3057/117 2393/3056/117 +f 2397/3057/117 2398/3116/117 2399/3117/117 +f 2399/3117/117 2378/3055/117 2397/3057/117 +f 2401/3058/118 2400/3118/118 2402/3059/118 +f 2406/3061/117 2404/3119/117 2405/3062/117 +f 2410/3064/119 2408/3120/119 2409/3065/119 +f 2413/3067/120 2412/3121/120 2414/3068/120 +f 2417/3070/118 2416/3122/118 2418/3071/118 +f 2422/3073/117 2420/3123/117 2421/3074/117 +f 2427/3076/119 2426/3124/119 2424/3077/119 +f 2428/3079/120 2430/3125/120 2431/3080/120 s 1 -f 1915//124 1922//125 1914//116 -f 1913//126 1920//127 1912//118 -f 1911//128 1918//129 1910//115 -f 1910//115 1925//130 1917//131 -f 1916//117 1923//132 1915//124 -f 1914//116 1921//133 1913//126 -f 1912//118 1919//134 1911//128 -f 1917//131 1924//135 1916//117 -f 1924//135 1930//136 1923//132 -f 1921//133 1929//137 1928//138 -f 1919//134 1927//139 1926//140 -f 1925//130 1931//141 1924//135 -f 1922//125 1930//136 1929//137 -f 1920//127 1928//138 1927//139 -f 1929//137 1935//142 1928//138 -f 1926//140 1934//143 1933//144 -f 1932//145 1938//146 1931//141 -f 1930//136 1936//147 1929//137 -f 1927//139 1935//142 1934//143 -f 1930//136 1938//146 1937//148 -f 1925//130 1918//129 1932//145 -f 1932//145 1918//129 1939//149 -f 1919//134 1926//140 1918//129 -f 1926//140 1933//144 1918//129 -f 1945//124 1952//125 1944//116 -f 1943//126 1950//127 1942//118 -f 1941//128 1948//129 1940//115 -f 1940//115 1955//130 1947//131 -f 1946//117 1953//132 1945//124 -f 1944//116 1951//133 1943//126 -f 1942//118 1949//134 1941//128 -f 1947//131 1954//135 1946//117 -f 1954//135 1960//136 1953//132 -f 1952//125 1958//138 1951//133 -f 1949//134 1957//139 1956//140 -f 1955//130 1961//141 1954//135 -f 1953//132 1959//137 1952//125 -f 1950//127 1958//138 1957//139 -f 1959//137 1965//142 1958//138 -f 1956//140 1964//143 1963//144 -f 1962//145 1968//146 1961//141 -f 1960//136 1966//147 1959//137 -f 1958//138 1964//143 1957//139 -f 1961//141 1967//148 1960//136 -f 1955//130 1948//129 1962//145 -f 1962//145 1948//129 1969//149 -f 1949//134 1956//140 1948//129 -f 1956//140 1963//144 1948//129 -f 1915//124 1923//132 1922//125 -f 1913//126 1921//133 1920//127 -f 1911//128 1919//134 1918//129 -f 1910//115 1918//129 1925//130 -f 1916//117 1924//135 1923//132 -f 1914//116 1922//125 1921//133 -f 1912//118 1920//127 1919//134 -f 1917//131 1925//130 1924//135 -f 1924//135 1931//141 1930//136 -f 1921//133 1922//125 1929//137 -f 1919//134 1920//127 1927//139 -f 1925//130 1932//145 1931//141 -f 1922//125 1923//132 1930//136 -f 1920//127 1921//133 1928//138 -f 1929//137 1936//147 1935//142 -f 1926//140 1927//139 1934//143 -f 1932//145 1939//149 1938//146 -f 1930//136 1937//148 1936//147 -f 1927//139 1928//138 1935//142 -f 1930//136 1931//141 1938//146 -f 1945//124 1953//132 1952//125 -f 1943//126 1951//133 1950//127 -f 1941//128 1949//134 1948//129 -f 1940//115 1948//129 1955//130 -f 1946//117 1954//135 1953//132 -f 1944//116 1952//125 1951//133 -f 1942//118 1950//127 1949//134 -f 1947//131 1955//130 1954//135 -f 1954//135 1961//141 1960//136 -f 1952//125 1959//137 1958//138 -f 1949//134 1950//127 1957//139 -f 1955//130 1962//145 1961//141 -f 1953//132 1960//136 1959//137 -f 1950//127 1951//133 1958//138 -f 1959//137 1966//147 1965//142 -f 1956//140 1957//139 1964//143 -f 1962//145 1969//149 1968//146 -f 1960//136 1967//148 1966//147 -f 1958//138 1965//142 1964//143 -f 1961//141 1968//146 1967//148 +f 2345/3126/126 2352/3127/127 2344/3128/118 +f 2343/3129/128 2350/3130/129 2342/3131/120 +f 2341/3132/130 2348/3133/131 2340/3134/117 +f 2340/3135/117 2355/3136/132 2347/3137/133 +f 2346/3138/119 2353/3139/134 2345/3126/126 +f 2344/3128/118 2351/3140/135 2343/3129/128 +f 2342/3131/120 2349/3141/136 2341/3132/130 +f 2347/3137/133 2354/3142/137 2346/3138/119 +f 2353/3143/134 2361/3144/138 2360/3145/139 +f 2351/3146/135 2359/3147/140 2358/3148/141 +f 2349/3149/136 2357/3150/142 2356/3151/143 +f 2354/3152/137 2362/3153/144 2361/3144/138 +f 2352/3127/127 2360/3145/139 2359/3147/140 +f 2351/3146/135 2357/3150/142 2350/3154/129 +f 2359/3147/140 2365/3155/145 2358/3148/141 +f 2356/3151/143 2364/3156/146 2363/3157/147 +f 2362/3153/144 2368/3158/148 2361/3144/138 +f 2359/3147/140 2367/3159/149 2366/3160/150 +f 2357/3150/142 2365/3155/145 2364/3156/146 +f 2361/3144/138 2367/3159/149 2360/3145/139 +f 2355/3161/132 2348/3162/131 2362/3153/144 +f 2362/3153/144 2348/3162/131 2369/3163/151 +f 2349/3149/136 2356/3151/143 2348/3164/131 +f 2356/3151/143 2363/3157/147 2348/3164/131 +f 2375/3165/126 2382/3166/127 2374/3167/118 +f 2373/3168/128 2380/3169/129 2372/3170/120 +f 2371/3171/130 2378/3172/131 2370/3173/117 +f 2370/3174/117 2385/3175/132 2377/3176/133 +f 2376/3177/119 2383/3178/134 2375/3165/126 +f 2374/3167/118 2381/3179/135 2373/3168/128 +f 2372/3170/120 2379/3180/136 2371/3171/130 +f 2377/3176/133 2384/3181/137 2376/3177/119 +f 2383/3182/134 2391/3183/138 2390/3184/139 +f 2382/3166/127 2388/3185/141 2381/3186/135 +f 2380/3187/129 2386/3188/143 2379/3189/136 +f 2385/3190/132 2391/3183/138 2384/3191/137 +f 2382/3166/127 2390/3184/139 2389/3192/140 +f 2381/3186/135 2387/3193/142 2380/3187/129 +f 2389/3192/140 2395/3194/145 2388/3185/141 +f 2386/3188/143 2394/3195/146 2393/3196/147 +f 2392/3197/144 2398/3198/148 2391/3183/138 +f 2389/3192/140 2397/3199/149 2396/3200/150 +f 2387/3193/142 2395/3194/145 2394/3195/146 +f 2391/3183/138 2397/3199/149 2390/3184/139 +f 2385/3190/132 2378/3201/131 2392/3197/144 +f 2392/3197/144 2378/3201/131 2399/3202/151 +f 2379/3189/136 2386/3188/143 2378/3203/131 +f 2386/3188/143 2393/3196/147 2378/3203/131 +f 2345/3126/126 2353/3139/134 2352/3127/127 +f 2343/3129/128 2351/3140/135 2350/3130/129 +f 2341/3132/130 2349/3141/136 2348/3133/131 +f 2340/3135/117 2348/3204/131 2355/3136/132 +f 2346/3138/119 2354/3142/137 2353/3139/134 +f 2344/3128/118 2352/3127/127 2351/3140/135 +f 2342/3131/120 2350/3130/129 2349/3141/136 +f 2347/3137/133 2355/3136/132 2354/3142/137 +f 2353/3143/134 2354/3152/137 2361/3144/138 +f 2351/3146/135 2352/3127/127 2359/3147/140 +f 2349/3149/136 2350/3154/129 2357/3150/142 +f 2354/3152/137 2355/3161/132 2362/3153/144 +f 2352/3127/127 2353/3143/134 2360/3145/139 +f 2351/3146/135 2358/3148/141 2357/3150/142 +f 2359/3147/140 2366/3160/150 2365/3155/145 +f 2356/3151/143 2357/3150/142 2364/3156/146 +f 2362/3153/144 2369/3163/151 2368/3158/148 +f 2359/3147/140 2360/3145/139 2367/3159/149 +f 2357/3150/142 2358/3148/141 2365/3155/145 +f 2361/3144/138 2368/3158/148 2367/3159/149 +f 2375/3165/126 2383/3178/134 2382/3166/127 +f 2373/3168/128 2381/3179/135 2380/3169/129 +f 2371/3171/130 2379/3180/136 2378/3172/131 +f 2370/3174/117 2378/3205/131 2385/3175/132 +f 2376/3177/119 2384/3181/137 2383/3178/134 +f 2374/3167/118 2382/3166/127 2381/3179/135 +f 2372/3170/120 2380/3169/129 2379/3180/136 +f 2377/3176/133 2385/3175/132 2384/3181/137 +f 2383/3182/134 2384/3191/137 2391/3183/138 +f 2382/3166/127 2389/3192/140 2388/3185/141 +f 2380/3187/129 2387/3193/142 2386/3188/143 +f 2385/3190/132 2392/3197/144 2391/3183/138 +f 2382/3166/127 2383/3182/134 2390/3184/139 +f 2381/3186/135 2388/3185/141 2387/3193/142 +f 2389/3192/140 2396/3200/150 2395/3194/145 +f 2386/3188/143 2387/3193/142 2394/3195/146 +f 2392/3197/144 2399/3202/151 2398/3198/148 +f 2389/3192/140 2390/3184/139 2397/3199/149 +f 2387/3193/142 2388/3185/141 2395/3194/145 +f 2391/3183/138 2398/3198/148 2397/3199/149 o Strong_Pad v -2.500000 2.000000 2.500000 v 2.500000 2.000000 2.500000 @@ -5019,385 +8862,385 @@ vn 0.1944 -0.9809 0.0000 vn -0.1447 0.7194 0.6794 vn -0.1447 0.7194 -0.6794 s off -f 1975/1/150 1970/2/150 1971/3/150 -f 1977/4/151 1999/5/151 1975/6/151 -f 1974/7/150 1972/8/150 1970/2/150 -f 1976/9/150 1973/10/150 1972/8/150 -f 1977/11/150 1971/3/150 1973/10/150 -f 1971/12/152 1970/13/152 1996/14/152 -f 1970/15/151 1972/16/151 1991/17/151 -f 1972/18/153 1973/19/153 1994/20/153 -f 1973/10/154 1971/3/154 1993/21/154 -f 1974/22/154 2000/23/154 1976/24/154 -f 1976/25/152 2001/26/152 1977/27/152 -f 1975/28/153 1998/29/153 1974/30/153 -f 1990/31/155 2001/32/155 1993/33/155 -f 1995/34/155 1999/35/155 1996/36/155 -f 1992/37/155 1998/38/155 1991/39/155 -f 1997/40/155 2000/41/155 1994/42/155 -f 2005/43/156 1996/36/156 1999/35/156 -f 2005/43/157 1990/31/157 1982/44/157 -f 1993/33/158 2003/45/158 1985/46/158 -f 1997/40/156 2003/45/156 2001/32/156 -f 2002/47/159 1994/42/159 2000/41/159 -f 2002/47/158 1992/37/158 1984/48/158 -f 1991/39/157 2004/49/157 1983/50/157 -f 1995/34/159 2004/49/159 1998/38/159 -f 2008/51/153 2014/52/153 2009/53/153 -f 2011/54/150 2012/55/150 2010/56/150 -f 2015/57/154 2007/58/154 2014/59/154 -f 2007/60/152 2010/56/152 2006/61/152 -f 2013/62/160 2015/57/160 2014/52/160 -f 2006/63/151 2012/55/151 2013/64/151 -f 2035/65/152 2045/66/152 2043/67/152 -f 2022/68/150 2020/69/150 2021/70/150 -f 2019/71/154 2022/68/154 2017/72/154 -f 2016/73/151 2020/74/151 2018/75/151 -f 2018/75/153 2023/76/153 2019/71/153 -f 2017/72/152 2021/70/152 2016/77/152 -f 2028/78/152 2053/79/152 2051/80/152 -f 2045/81/150 2041/82/150 2042/83/150 -f 2038/84/154 2044/85/154 2035/86/154 -f 2037/87/153 2041/88/153 2047/89/153 -f 2036/90/155 2034/91/155 2033/92/155 -f 2033/92/161 2037/93/161 2036/90/161 -f 2039/94/162 2035/86/162 2034/95/162 -f 2043/96/163 2041/82/163 2040/97/163 -f 2047/98/164 2045/81/164 2044/85/164 -f 2032/99/151 2040/97/151 2037/93/151 -f 2053/100/150 2049/101/150 2050/102/150 -f 2025/103/154 2052/104/154 2028/105/154 -f 2026/106/153 2049/107/153 2055/108/153 -f 2027/109/155 2029/110/155 2030/111/155 -f 2030/111/161 2026/112/161 2027/109/161 -f 2024/113/162 2028/105/162 2029/114/162 -f 2051/115/163 2049/101/163 2048/116/163 -f 2055/117/164 2053/100/164 2052/104/164 -f 2031/118/151 2048/116/151 2026/112/151 -f 2116/119/150 2119/120/150 2118/121/150 -f 2131/122/152 2141/123/152 2139/124/152 -f 2124/125/152 2149/126/152 2147/127/152 -f 2141/128/150 2137/129/150 2138/130/150 -f 2134/131/154 2140/132/154 2131/133/154 -f 2133/134/153 2137/135/153 2143/136/153 -f 2132/137/155 2130/138/155 2129/139/155 -f 2129/139/161 2133/140/161 2132/137/161 -f 2135/141/162 2131/133/162 2130/142/162 -f 2139/143/163 2137/129/163 2136/144/163 -f 2143/145/164 2141/128/164 2140/132/164 -f 2128/146/151 2136/144/151 2133/140/151 -f 2149/147/150 2145/148/150 2146/149/150 -f 2121/150/154 2148/151/154 2124/152/154 -f 2122/153/153 2145/154/153 2151/155/153 -f 2123/156/155 2125/157/155 2126/158/155 -f 2126/158/161 2122/159/161 2123/156/161 -f 2120/160/162 2124/152/162 2125/161/162 -f 2147/162/163 2145/148/163 2144/163/163 -f 2151/164/164 2149/147/164 2148/151/164 -f 2127/165/151 2144/163/151 2122/159/151 -f 1975/1/150 1974/7/150 1970/2/150 -f 1977/4/151 2001/166/151 1999/5/151 -f 1974/7/150 1976/9/150 1972/8/150 -f 1976/9/150 1977/11/150 1973/10/150 -f 1977/11/150 1975/1/150 1971/3/150 -f 1988/167/152 1978/168/152 1971/12/152 -f 1970/13/152 1980/169/152 1987/170/152 -f 1970/13/152 1987/170/152 1995/171/152 -f 1996/14/152 1988/167/152 1971/12/152 -f 1970/13/152 1995/171/152 1996/14/152 -f 1983/172/151 1980/173/151 1970/15/151 -f 1972/16/151 1979/174/151 1984/175/151 -f 1972/16/151 1984/175/151 1992/176/151 -f 1991/17/151 1983/172/151 1970/15/151 -f 1972/16/151 1992/176/151 1991/17/151 -f 1986/177/153 1979/178/153 1972/18/153 -f 1973/19/153 1981/179/153 1989/180/153 -f 1973/19/153 1989/180/153 1997/181/153 -f 1994/20/153 1986/177/153 1972/18/153 -f 1973/19/153 1997/181/153 1994/20/153 -f 1985/46/154 1981/182/154 1973/10/154 -f 1971/3/154 1978/183/154 1982/44/154 -f 1971/3/154 1982/44/154 1990/184/154 -f 1993/21/154 1985/46/154 1973/10/154 -f 1971/3/154 1990/184/154 1993/21/154 -f 1974/22/154 1998/185/154 2000/23/154 -f 1976/25/152 2000/186/152 2001/26/152 -f 1975/28/153 1999/187/153 1998/29/153 -f 1990/31/155 1999/35/155 2001/32/155 -f 1995/34/155 1998/38/155 1999/35/155 -f 1992/37/155 2000/41/155 1998/38/155 -f 1997/40/155 2001/32/155 2000/41/155 -f 2005/43/156 1988/188/156 1996/36/156 -f 2005/43/157 1999/35/157 1990/31/157 -f 1993/33/158 2001/32/158 2003/45/158 -f 1997/40/156 1989/189/156 2003/45/156 -f 2002/47/159 1986/190/159 1994/42/159 -f 2002/47/158 2000/41/158 1992/37/158 -f 1991/39/157 1998/38/157 2004/49/157 -f 1995/34/159 1987/191/159 2004/49/159 -f 2008/51/153 2013/62/153 2014/52/153 -f 2011/54/150 2015/57/150 2012/55/150 -f 2011/54/154 2007/58/154 2015/57/154 -f 2007/58/154 2009/192/154 2014/59/154 -f 2007/60/152 2011/54/152 2010/56/152 -f 2013/62/160 2012/55/160 2015/57/160 -f 2013/64/151 2008/193/151 2006/63/151 -f 2006/63/151 2010/56/151 2012/55/151 -f 2043/67/152 2032/194/152 2033/195/152 -f 2033/195/152 2034/196/152 2035/65/152 -f 2035/65/152 2044/197/152 2045/66/152 -f 2045/66/152 2042/198/152 2043/67/152 -f 2043/67/152 2033/195/152 2035/65/152 -f 2022/68/150 2023/199/150 2020/69/150 -f 2019/71/154 2023/76/154 2022/68/154 -f 2016/73/151 2021/200/151 2020/74/151 -f 2018/75/153 2020/74/153 2023/76/153 -f 2017/72/152 2022/68/152 2021/70/152 -f 2051/80/152 2031/201/152 2030/202/152 -f 2030/202/152 2029/203/152 2028/78/152 -f 2028/78/152 2052/204/152 2053/79/152 -f 2053/79/152 2050/205/152 2051/80/152 -f 2051/80/152 2030/202/152 2028/78/152 -f 2045/81/150 2046/206/150 2041/82/150 -f 2038/84/154 2047/98/154 2044/85/154 -f 2047/89/153 2038/207/153 2039/208/153 -f 2039/208/153 2036/209/153 2037/87/153 -f 2037/87/153 2040/210/153 2041/88/153 -f 2041/88/153 2046/211/153 2047/89/153 -f 2047/89/153 2039/208/153 2037/87/153 -f 2036/90/155 2039/212/155 2034/91/155 -f 2033/92/161 2032/99/161 2037/93/161 -f 2039/94/162 2038/84/162 2035/86/162 -f 2043/96/163 2042/83/163 2041/82/163 -f 2047/98/164 2046/206/164 2045/81/164 -f 2032/99/151 2043/96/151 2040/97/151 -f 2053/100/150 2054/213/150 2049/101/150 -f 2025/103/154 2055/117/154 2052/104/154 -f 2055/108/153 2025/214/153 2024/215/153 -f 2024/215/153 2027/216/153 2026/106/153 -f 2026/106/153 2048/217/153 2049/107/153 -f 2049/107/153 2054/218/153 2055/108/153 -f 2055/108/153 2024/215/153 2026/106/153 -f 2027/109/155 2024/219/155 2029/110/155 -f 2030/111/161 2031/118/161 2026/112/161 -f 2024/113/162 2025/103/162 2028/105/162 -f 2051/115/163 2050/102/163 2049/101/163 -f 2055/117/164 2054/213/164 2053/100/164 -f 2031/118/151 2051/115/151 2048/116/151 -f 2116/119/150 2117/220/150 2119/120/150 -f 2139/124/152 2128/221/152 2129/222/152 -f 2129/222/152 2130/223/152 2131/122/152 -f 2131/122/152 2140/224/152 2141/123/152 -f 2141/123/152 2138/225/152 2139/124/152 -f 2139/124/152 2129/222/152 2131/122/152 -f 2147/127/152 2127/226/152 2126/227/152 -f 2126/227/152 2125/228/152 2124/125/152 -f 2124/125/152 2148/229/152 2149/126/152 -f 2149/126/152 2146/230/152 2147/127/152 -f 2147/127/152 2126/227/152 2124/125/152 -f 2141/128/150 2142/231/150 2137/129/150 -f 2134/131/154 2143/145/154 2140/132/154 -f 2143/136/153 2134/232/153 2135/233/153 -f 2135/233/153 2132/234/153 2133/134/153 -f 2133/134/153 2136/235/153 2137/135/153 -f 2137/135/153 2142/236/153 2143/136/153 -f 2143/136/153 2135/233/153 2133/134/153 -f 2132/137/155 2135/237/155 2130/138/155 -f 2129/139/161 2128/146/161 2133/140/161 -f 2135/141/162 2134/131/162 2131/133/162 -f 2139/143/163 2138/130/163 2137/129/163 -f 2143/145/164 2142/231/164 2141/128/164 -f 2128/146/151 2139/143/151 2136/144/151 -f 2149/147/150 2150/238/150 2145/148/150 -f 2121/150/154 2151/164/154 2148/151/154 -f 2151/155/153 2121/239/153 2120/240/153 -f 2120/240/153 2123/241/153 2122/153/153 -f 2122/153/153 2144/242/153 2145/154/153 -f 2145/154/153 2150/243/153 2151/155/153 -f 2151/155/153 2120/240/153 2122/153/153 -f 2123/156/155 2120/244/155 2125/157/155 -f 2126/158/161 2127/165/161 2122/159/161 -f 2120/160/162 2121/150/162 2124/152/162 -f 2147/162/163 2146/149/163 2145/148/163 -f 2151/164/164 2150/238/164 2149/147/164 -f 2127/165/151 2147/162/151 2144/163/151 +f 2437/3206/152 2432/3207/152 2433/3208/152 +f 2439/3209/153 2461/3210/153 2437/3211/153 +f 2436/3212/152 2434/3213/152 2432/3207/152 +f 2438/3214/152 2435/3215/152 2434/3213/152 +f 2439/3216/152 2433/3208/152 2435/3215/152 +f 2433/3217/154 2432/3218/154 2458/3219/154 +f 2432/3220/153 2434/3221/153 2453/3222/153 +f 2434/3223/155 2435/3224/155 2456/3225/155 +f 2435/3215/156 2433/3208/156 2455/3226/156 +f 2436/3227/156 2462/3228/156 2438/3229/156 +f 2438/3230/154 2463/3231/154 2439/3232/154 +f 2437/3233/155 2460/3234/155 2436/3235/155 +f 2452/3236/157 2463/3237/157 2455/3238/157 +f 2457/3239/157 2461/3240/157 2458/3241/157 +f 2454/3242/157 2460/3243/157 2453/3244/157 +f 2459/3245/157 2462/3246/157 2456/3247/157 +f 2467/3248/158 2458/3241/158 2461/3240/158 +f 2467/3248/159 2452/3236/159 2444/3249/159 +f 2455/3238/160 2465/3250/160 2447/3251/160 +f 2459/3245/158 2465/3250/158 2463/3237/158 +f 2464/3252/161 2456/3247/161 2462/3246/161 +f 2464/3252/160 2454/3242/160 2446/3253/160 +f 2453/3244/159 2466/3254/159 2445/3255/159 +f 2457/3239/161 2466/3254/161 2460/3243/161 +f 2470/3256/155 2476/3257/155 2471/3258/155 +f 2473/3259/152 2474/3260/152 2472/3261/152 +f 2477/3262/156 2469/3263/156 2476/3264/156 +f 2469/3265/154 2472/3261/154 2468/3266/154 +f 2475/3267/162 2477/3262/162 2476/3257/162 +f 2468/3268/153 2474/3260/153 2475/3269/153 +f 2497/3270/154 2507/3271/154 2505/3272/154 +f 2484/3273/152 2482/3274/152 2483/3275/152 +f 2481/3276/156 2484/3273/156 2479/3277/156 +f 2478/3278/153 2482/3279/153 2480/3280/153 +f 2480/3280/155 2485/3281/155 2481/3276/155 +f 2479/3277/154 2483/3275/154 2478/3282/154 +f 2490/3283/154 2515/3284/154 2513/3285/154 +f 2507/3286/152 2503/3287/152 2504/3288/152 +f 2500/3289/156 2506/3290/156 2497/3291/156 +f 2499/3292/155 2503/3293/155 2509/3294/155 +f 2498/3295/157 2496/3296/157 2495/3297/157 +f 2495/3297/163 2499/3298/163 2498/3295/163 +f 2501/3299/164 2497/3291/164 2496/3300/164 +f 2505/3301/165 2503/3287/165 2502/3302/165 +f 2509/3303/166 2507/3286/166 2506/3290/166 +f 2494/3304/153 2502/3302/153 2499/3298/153 +f 2515/3305/152 2511/3306/152 2512/3307/152 +f 2487/3308/156 2514/3309/156 2490/3310/156 +f 2488/3311/155 2511/3312/155 2517/3313/155 +f 2489/3314/157 2491/3315/157 2492/3316/157 +f 2492/3316/163 2488/3317/163 2489/3314/163 +f 2486/3318/164 2490/3310/164 2491/3319/164 +f 2513/3320/165 2511/3306/165 2510/3321/165 +f 2517/3322/166 2515/3305/166 2514/3309/166 +f 2493/3323/153 2510/3321/153 2488/3317/153 +f 2578/3324/152 2581/3325/152 2580/3326/152 +f 2593/3327/154 2603/3328/154 2601/3329/154 +f 2586/3330/154 2611/3331/154 2609/3332/154 +f 2603/3333/152 2599/3334/152 2600/3335/152 +f 2596/3336/156 2602/3337/156 2593/3338/156 +f 2595/3339/155 2599/3340/155 2605/3341/155 +f 2594/3342/157 2592/3343/157 2591/3344/157 +f 2591/3344/163 2595/3345/163 2594/3342/163 +f 2597/3346/164 2593/3338/164 2592/3347/164 +f 2601/3348/165 2599/3334/165 2598/3349/165 +f 2605/3350/166 2603/3333/166 2602/3337/166 +f 2590/3351/153 2598/3349/153 2595/3345/153 +f 2611/3352/152 2607/3353/152 2608/3354/152 +f 2583/3355/156 2610/3356/156 2586/3357/156 +f 2584/3358/155 2607/3359/155 2613/3360/155 +f 2585/3361/157 2587/3362/157 2588/3363/157 +f 2588/3363/163 2584/3364/163 2585/3361/163 +f 2582/3365/164 2586/3357/164 2587/3366/164 +f 2609/3367/165 2607/3353/165 2606/3368/165 +f 2613/3369/166 2611/3352/166 2610/3356/166 +f 2589/3370/153 2606/3368/153 2584/3364/153 +f 2437/3206/152 2436/3212/152 2432/3207/152 +f 2439/3209/153 2463/3371/153 2461/3210/153 +f 2436/3212/152 2438/3214/152 2434/3213/152 +f 2438/3214/152 2439/3216/152 2435/3215/152 +f 2439/3216/152 2437/3206/152 2433/3208/152 +f 2450/3372/154 2440/3373/154 2433/3217/154 +f 2432/3218/154 2442/3374/154 2449/3375/154 +f 2432/3218/154 2449/3375/154 2457/3376/154 +f 2458/3219/154 2450/3372/154 2433/3217/154 +f 2432/3218/154 2457/3376/154 2458/3219/154 +f 2445/3377/153 2442/3378/153 2432/3220/153 +f 2434/3221/153 2441/3379/153 2446/3380/153 +f 2434/3221/153 2446/3380/153 2454/3381/153 +f 2453/3222/153 2445/3377/153 2432/3220/153 +f 2434/3221/153 2454/3381/153 2453/3222/153 +f 2448/3382/155 2441/3383/155 2434/3223/155 +f 2435/3224/155 2443/3384/155 2451/3385/155 +f 2435/3224/155 2451/3385/155 2459/3386/155 +f 2456/3225/155 2448/3382/155 2434/3223/155 +f 2435/3224/155 2459/3386/155 2456/3225/155 +f 2447/3251/156 2443/3387/156 2435/3215/156 +f 2433/3208/156 2440/3388/156 2444/3249/156 +f 2433/3208/156 2444/3249/156 2452/3389/156 +f 2455/3226/156 2447/3251/156 2435/3215/156 +f 2433/3208/156 2452/3389/156 2455/3226/156 +f 2436/3227/156 2460/3390/156 2462/3228/156 +f 2438/3230/154 2462/3391/154 2463/3231/154 +f 2437/3233/155 2461/3392/155 2460/3234/155 +f 2452/3236/157 2461/3240/157 2463/3237/157 +f 2457/3239/157 2460/3243/157 2461/3240/157 +f 2454/3242/157 2462/3246/157 2460/3243/157 +f 2459/3245/157 2463/3237/157 2462/3246/157 +f 2467/3248/158 2450/3393/158 2458/3241/158 +f 2467/3248/159 2461/3240/159 2452/3236/159 +f 2455/3238/160 2463/3237/160 2465/3250/160 +f 2459/3245/158 2451/3394/158 2465/3250/158 +f 2464/3252/161 2448/3395/161 2456/3247/161 +f 2464/3252/160 2462/3246/160 2454/3242/160 +f 2453/3244/159 2460/3243/159 2466/3254/159 +f 2457/3239/161 2449/3396/161 2466/3254/161 +f 2470/3256/155 2475/3267/155 2476/3257/155 +f 2473/3259/152 2477/3262/152 2474/3260/152 +f 2473/3259/156 2469/3263/156 2477/3262/156 +f 2469/3263/156 2471/3397/156 2476/3264/156 +f 2469/3265/154 2473/3259/154 2472/3261/154 +f 2475/3267/162 2474/3260/162 2477/3262/162 +f 2475/3269/153 2470/3398/153 2468/3268/153 +f 2468/3268/153 2472/3261/153 2474/3260/153 +f 2505/3272/154 2494/3399/154 2495/3400/154 +f 2495/3400/154 2496/3401/154 2497/3270/154 +f 2497/3270/154 2506/3402/154 2507/3271/154 +f 2507/3271/154 2504/3403/154 2505/3272/154 +f 2505/3272/154 2495/3400/154 2497/3270/154 +f 2484/3273/152 2485/3404/152 2482/3274/152 +f 2481/3276/156 2485/3281/156 2484/3273/156 +f 2478/3278/153 2483/3405/153 2482/3279/153 +f 2480/3280/155 2482/3279/155 2485/3281/155 +f 2479/3277/154 2484/3273/154 2483/3275/154 +f 2513/3285/154 2493/3406/154 2492/3407/154 +f 2492/3407/154 2491/3408/154 2490/3283/154 +f 2490/3283/154 2514/3409/154 2515/3284/154 +f 2515/3284/154 2512/3410/154 2513/3285/154 +f 2513/3285/154 2492/3407/154 2490/3283/154 +f 2507/3286/152 2508/3411/152 2503/3287/152 +f 2500/3289/156 2509/3303/156 2506/3290/156 +f 2509/3294/155 2500/3412/155 2501/3413/155 +f 2501/3413/155 2498/3414/155 2499/3292/155 +f 2499/3292/155 2502/3415/155 2503/3293/155 +f 2503/3293/155 2508/3416/155 2509/3294/155 +f 2509/3294/155 2501/3413/155 2499/3292/155 +f 2498/3295/157 2501/3417/157 2496/3296/157 +f 2495/3297/163 2494/3304/163 2499/3298/163 +f 2501/3299/164 2500/3289/164 2497/3291/164 +f 2505/3301/165 2504/3288/165 2503/3287/165 +f 2509/3303/166 2508/3411/166 2507/3286/166 +f 2494/3304/153 2505/3301/153 2502/3302/153 +f 2515/3305/152 2516/3418/152 2511/3306/152 +f 2487/3308/156 2517/3322/156 2514/3309/156 +f 2517/3313/155 2487/3419/155 2486/3420/155 +f 2486/3420/155 2489/3421/155 2488/3311/155 +f 2488/3311/155 2510/3422/155 2511/3312/155 +f 2511/3312/155 2516/3423/155 2517/3313/155 +f 2517/3313/155 2486/3420/155 2488/3311/155 +f 2489/3314/157 2486/3424/157 2491/3315/157 +f 2492/3316/163 2493/3323/163 2488/3317/163 +f 2486/3318/164 2487/3308/164 2490/3310/164 +f 2513/3320/165 2512/3307/165 2511/3306/165 +f 2517/3322/166 2516/3418/166 2515/3305/166 +f 2493/3323/153 2513/3320/153 2510/3321/153 +f 2578/3324/152 2579/3425/152 2581/3325/152 +f 2601/3329/154 2590/3426/154 2591/3427/154 +f 2591/3427/154 2592/3428/154 2593/3327/154 +f 2593/3327/154 2602/3429/154 2603/3328/154 +f 2603/3328/154 2600/3430/154 2601/3329/154 +f 2601/3329/154 2591/3427/154 2593/3327/154 +f 2609/3332/154 2589/3431/154 2588/3432/154 +f 2588/3432/154 2587/3433/154 2586/3330/154 +f 2586/3330/154 2610/3434/154 2611/3331/154 +f 2611/3331/154 2608/3435/154 2609/3332/154 +f 2609/3332/154 2588/3432/154 2586/3330/154 +f 2603/3333/152 2604/3436/152 2599/3334/152 +f 2596/3336/156 2605/3350/156 2602/3337/156 +f 2605/3341/155 2596/3437/155 2597/3438/155 +f 2597/3438/155 2594/3439/155 2595/3339/155 +f 2595/3339/155 2598/3440/155 2599/3340/155 +f 2599/3340/155 2604/3441/155 2605/3341/155 +f 2605/3341/155 2597/3438/155 2595/3339/155 +f 2594/3342/157 2597/3442/157 2592/3343/157 +f 2591/3344/163 2590/3351/163 2595/3345/163 +f 2597/3346/164 2596/3336/164 2593/3338/164 +f 2601/3348/165 2600/3335/165 2599/3334/165 +f 2605/3350/166 2604/3436/166 2603/3333/166 +f 2590/3351/153 2601/3348/153 2598/3349/153 +f 2611/3352/152 2612/3443/152 2607/3353/152 +f 2583/3355/156 2613/3369/156 2610/3356/156 +f 2613/3360/155 2583/3444/155 2582/3445/155 +f 2582/3445/155 2585/3446/155 2584/3358/155 +f 2584/3358/155 2606/3447/155 2607/3359/155 +f 2607/3359/155 2612/3448/155 2613/3360/155 +f 2613/3360/155 2582/3445/155 2584/3358/155 +f 2585/3361/157 2582/3449/157 2587/3362/157 +f 2588/3363/163 2589/3370/163 2584/3364/163 +f 2582/3365/164 2583/3355/164 2586/3357/164 +f 2609/3367/165 2608/3354/165 2607/3353/165 +f 2613/3369/166 2612/3443/166 2611/3352/166 +f 2589/3370/153 2609/3367/153 2606/3368/153 s 1 -f 2070/245/165 2062/246/166 2063/247/167 -f 2061/248/168 2067/249/169 2060/250/170 -f 2065/251/171 2056/252/172 2057/253/173 -f 2064/254/174 2063/247/167 2056/252/172 -f 2069/255/164 2061/248/168 2062/246/166 -f 2060/250/170 2066/256/175 2059/257/176 -f 2075/258/177 2067/249/169 2068/259/178 -f 2072/260/179 2064/254/174 2065/251/171 -f 2071/261/180 2070/245/165 2064/254/174 -f 2076/262/181 2068/259/178 2069/255/164 -f 2067/249/169 2073/263/182 2066/256/175 -f 2070/245/165 2076/262/181 2069/255/164 -f 2058/264/183 2059/257/176 2066/256/175 -f 2066/256/175 2073/263/182 2058/264/183 -f 2057/253/173 2058/265/183 2065/251/171 -f 2065/251/171 2058/265/183 2072/260/179 -f 2072/266/179 2079/267/153 2071/268/180 -f 2058/269/183 2080/270/184 2072/266/179 -f 2071/268/180 2085/271/160 2077/272/185 -f 2073/273/182 2078/274/155 2058/275/183 -f 2076/262/181 2083/276/186 2075/258/177 -f 2074/277/187 2081/278/188 2073/273/182 -f 2077/272/185 2084/279/150 2076/262/181 -f 2075/258/177 2082/280/152 2074/277/187 -f 2093/281/167 2099/282/164 2092/283/166 -f 2098/284/178 2090/285/170 2091/286/168 -f 2095/287/171 2086/288/172 2087/289/173 -f 2094/290/174 2093/281/167 2086/288/172 -f 2099/282/164 2091/286/168 2092/283/166 -f 2097/291/169 2089/292/176 2090/285/170 -f 2098/284/178 2104/293/187 2097/291/169 -f 2102/294/179 2094/290/174 2095/287/171 -f 2094/290/174 2107/295/185 2100/296/165 -f 2106/297/181 2098/284/178 2099/282/164 -f 2097/291/169 2103/298/182 2096/299/175 -f 2100/296/165 2106/297/181 2099/282/164 -f 2088/300/183 2089/292/176 2096/299/175 -f 2096/299/175 2103/298/182 2088/300/183 -f 2087/289/173 2088/301/183 2095/287/171 -f 2095/287/171 2088/301/183 2102/294/179 -f 2102/302/179 2109/303/153 2101/304/180 -f 2088/305/183 2110/306/184 2102/302/179 -f 2101/304/180 2115/307/160 2107/295/185 -f 2103/308/182 2108/309/155 2088/310/183 -f 2106/297/181 2113/311/186 2105/312/177 -f 2104/313/187 2111/314/188 2103/308/182 -f 2107/295/185 2114/315/150 2106/297/181 -f 2105/312/177 2112/316/152 2104/313/187 -f 2159/317/189 2165/318/163 2158/319/190 -f 2157/320/191 2163/321/192 2156/322/193 -f 2161/323/194 2152/324/195 2153/325/196 -f 2160/326/197 2159/317/189 2152/324/195 -f 2158/319/190 2164/327/198 2157/320/191 -f 2156/322/193 2162/328/199 2155/329/200 -f 2164/327/198 2170/330/201 2163/321/192 -f 2168/331/202 2160/326/197 2161/323/194 -f 2167/332/203 2166/333/204 2160/326/197 -f 2172/334/205 2164/327/198 2165/318/163 -f 2163/321/192 2169/335/206 2162/328/199 -f 2166/333/204 2172/334/205 2165/318/163 -f 2154/336/207 2155/329/200 2162/328/199 -f 2162/328/199 2169/335/206 2154/336/207 -f 2153/325/196 2154/337/207 2161/323/194 -f 2161/323/194 2154/337/207 2168/331/202 -f 2168/338/202 2175/339/152 2167/340/203 -f 2154/341/207 2176/342/188 2168/338/202 -f 2167/340/203 2181/343/186 2173/344/208 -f 2169/345/206 2174/346/155 2154/347/207 -f 2172/334/205 2179/348/160 2171/349/209 -f 2170/350/201 2177/351/184 2169/345/206 -f 2173/344/208 2180/352/150 2172/334/205 -f 2171/349/209 2178/353/153 2170/350/201 -f 2189/354/189 2195/355/163 2188/356/190 -f 2194/357/198 2186/358/193 2187/359/191 -f 2191/360/194 2182/361/195 2183/362/196 -f 2190/363/197 2189/354/189 2182/361/195 -f 2195/355/163 2187/359/191 2188/356/190 -f 2186/358/193 2192/364/199 2185/365/200 -f 2201/366/209 2193/367/192 2194/357/198 -f 2191/360/194 2197/368/203 2190/363/197 -f 2197/368/203 2196/369/204 2190/363/197 -f 2202/370/205 2194/357/198 2195/355/163 -f 2193/367/192 2199/371/206 2192/364/199 -f 2203/372/208 2195/355/163 2196/369/204 -f 2184/373/207 2185/365/200 2192/364/199 -f 2192/364/199 2199/371/206 2184/373/207 -f 2183/362/196 2184/374/207 2191/360/194 -f 2191/360/194 2184/374/207 2198/375/202 -f 2198/376/202 2205/377/152 2197/378/203 -f 2184/379/207 2206/380/188 2198/376/202 -f 2197/378/203 2211/381/186 2203/372/208 -f 2199/382/206 2204/383/155 2184/384/207 -f 2202/370/205 2209/385/160 2201/366/209 -f 2200/386/201 2207/387/184 2199/382/206 -f 2202/370/205 2211/381/186 2210/388/150 -f 2200/386/201 2209/385/160 2208/389/153 -f 2070/245/165 2069/255/164 2062/246/166 -f 2061/248/168 2068/259/178 2067/249/169 -f 2065/251/171 2064/254/174 2056/252/172 -f 2064/254/174 2070/245/165 2063/247/167 -f 2069/255/164 2068/259/178 2061/248/168 -f 2060/250/170 2067/249/169 2066/256/175 -f 2075/258/177 2074/390/187 2067/249/169 -f 2072/260/179 2071/261/180 2064/254/174 -f 2071/261/180 2077/272/185 2070/245/165 -f 2076/262/181 2075/258/177 2068/259/178 -f 2067/249/169 2074/390/187 2073/263/182 -f 2070/245/165 2077/272/185 2076/262/181 -f 2072/266/179 2080/270/184 2079/267/153 -f 2058/269/183 2078/391/155 2080/270/184 -f 2071/268/180 2079/267/153 2085/271/160 -f 2073/273/182 2081/278/188 2078/274/155 -f 2076/262/181 2084/279/150 2083/276/186 -f 2074/277/187 2082/280/152 2081/278/188 -f 2077/272/185 2085/271/160 2084/279/150 -f 2075/258/177 2083/276/186 2082/280/152 -f 2093/281/167 2100/296/165 2099/282/164 -f 2098/284/178 2097/291/169 2090/285/170 -f 2095/287/171 2094/290/174 2086/288/172 -f 2094/290/174 2100/296/165 2093/281/167 -f 2099/282/164 2098/284/178 2091/286/168 -f 2097/291/169 2096/299/175 2089/292/176 -f 2098/284/178 2105/312/177 2104/293/187 -f 2102/294/179 2101/392/180 2094/290/174 -f 2094/290/174 2101/392/180 2107/295/185 -f 2106/297/181 2105/312/177 2098/284/178 -f 2097/291/169 2104/293/187 2103/298/182 -f 2100/296/165 2107/295/185 2106/297/181 -f 2102/302/179 2110/306/184 2109/303/153 -f 2088/305/183 2108/393/155 2110/306/184 -f 2101/304/180 2109/303/153 2115/307/160 -f 2103/308/182 2111/314/188 2108/309/155 -f 2106/297/181 2114/315/150 2113/311/186 -f 2104/313/187 2112/316/152 2111/314/188 -f 2107/295/185 2115/307/160 2114/315/150 -f 2105/312/177 2113/311/186 2112/316/152 -f 2159/317/189 2166/333/204 2165/318/163 -f 2157/320/191 2164/327/198 2163/321/192 -f 2161/323/194 2160/326/197 2152/324/195 -f 2160/326/197 2166/333/204 2159/317/189 -f 2158/319/190 2165/318/163 2164/327/198 -f 2156/322/193 2163/321/192 2162/328/199 -f 2164/327/198 2171/349/209 2170/330/201 -f 2168/331/202 2167/332/203 2160/326/197 -f 2167/332/203 2173/344/208 2166/333/204 -f 2172/334/205 2171/349/209 2164/327/198 -f 2163/321/192 2170/330/201 2169/335/206 -f 2166/333/204 2173/344/208 2172/334/205 -f 2168/338/202 2176/342/188 2175/339/152 -f 2154/341/207 2174/394/155 2176/342/188 -f 2167/340/203 2175/339/152 2181/343/186 -f 2169/345/206 2177/351/184 2174/346/155 -f 2172/334/205 2180/352/150 2179/348/160 -f 2170/350/201 2178/353/153 2177/351/184 -f 2173/344/208 2181/343/186 2180/352/150 -f 2171/349/209 2179/348/160 2178/353/153 -f 2189/354/189 2196/369/204 2195/355/163 -f 2194/357/198 2193/367/192 2186/358/193 -f 2191/360/194 2190/363/197 2182/361/195 -f 2190/363/197 2196/369/204 2189/354/189 -f 2195/355/163 2194/357/198 2187/359/191 -f 2186/358/193 2193/367/192 2192/364/199 -f 2201/366/209 2200/395/201 2193/367/192 -f 2191/360/194 2198/375/202 2197/368/203 -f 2197/368/203 2203/372/208 2196/369/204 -f 2202/370/205 2201/366/209 2194/357/198 -f 2193/367/192 2200/395/201 2199/371/206 -f 2203/372/208 2202/370/205 2195/355/163 -f 2198/376/202 2206/380/188 2205/377/152 -f 2184/379/207 2204/396/155 2206/380/188 -f 2197/378/203 2205/377/152 2211/381/186 -f 2199/382/206 2207/387/184 2204/383/155 -f 2202/370/205 2210/388/150 2209/385/160 -f 2200/386/201 2208/389/153 2207/387/184 -f 2202/370/205 2203/372/208 2211/381/186 -f 2200/386/201 2201/366/209 2209/385/160 +f 2532/3450/167 2524/3451/168 2525/3452/169 +f 2523/3453/170 2529/3454/171 2522/3455/172 +f 2527/3456/173 2518/3457/174 2519/3458/175 +f 2526/3459/176 2525/3452/169 2518/3457/174 +f 2531/3460/166 2523/3453/170 2524/3451/168 +f 2522/3455/172 2528/3461/177 2521/3462/178 +f 2537/3463/179 2529/3454/171 2530/3464/180 +f 2534/3465/181 2526/3459/176 2527/3456/173 +f 2533/3466/182 2532/3450/167 2526/3459/176 +f 2538/3467/183 2530/3464/180 2531/3460/166 +f 2529/3454/171 2535/3468/184 2528/3461/177 +f 2532/3450/167 2538/3467/183 2531/3460/166 +f 2520/3469/185 2521/3462/178 2528/3461/177 +f 2528/3461/177 2535/3468/184 2520/3469/185 +f 2519/3458/175 2520/3470/185 2527/3456/173 +f 2527/3456/173 2520/3470/185 2534/3465/181 +f 2534/3471/181 2541/3472/155 2533/3473/182 +f 2520/3474/185 2542/3475/186 2534/3471/181 +f 2533/3473/182 2547/3476/162 2539/3477/187 +f 2535/3478/184 2540/3479/157 2520/3480/185 +f 2538/3467/183 2545/3481/188 2537/3463/179 +f 2536/3482/189 2543/3483/190 2535/3478/184 +f 2539/3477/187 2546/3484/152 2538/3467/183 +f 2537/3463/179 2544/3485/154 2536/3482/189 +f 2555/3486/169 2561/3487/166 2554/3488/168 +f 2560/3489/180 2552/3490/172 2553/3491/170 +f 2557/3492/173 2548/3493/174 2549/3494/175 +f 2556/3495/176 2555/3486/169 2548/3493/174 +f 2561/3487/166 2553/3491/170 2554/3488/168 +f 2559/3496/171 2551/3497/178 2552/3490/172 +f 2560/3489/180 2566/3498/189 2559/3496/171 +f 2564/3499/181 2556/3495/176 2557/3492/173 +f 2556/3495/176 2569/3500/187 2562/3501/167 +f 2568/3502/183 2560/3489/180 2561/3487/166 +f 2559/3496/171 2565/3503/184 2558/3504/177 +f 2562/3501/167 2568/3502/183 2561/3487/166 +f 2550/3505/185 2551/3497/178 2558/3504/177 +f 2558/3504/177 2565/3503/184 2550/3505/185 +f 2549/3494/175 2550/3506/185 2557/3492/173 +f 2557/3492/173 2550/3506/185 2564/3499/181 +f 2564/3507/181 2571/3508/155 2563/3509/182 +f 2550/3510/185 2572/3511/186 2564/3507/181 +f 2563/3509/182 2577/3512/162 2569/3500/187 +f 2565/3513/184 2570/3514/157 2550/3515/185 +f 2568/3502/183 2575/3516/188 2567/3517/179 +f 2566/3518/189 2573/3519/190 2565/3513/184 +f 2569/3500/187 2576/3520/152 2568/3502/183 +f 2567/3517/179 2574/3521/154 2566/3518/189 +f 2621/3522/191 2627/3523/165 2620/3524/192 +f 2619/3525/193 2625/3526/194 2618/3527/195 +f 2623/3528/196 2614/3529/197 2615/3530/198 +f 2622/3531/199 2621/3522/191 2614/3529/197 +f 2620/3524/192 2626/3532/200 2619/3525/193 +f 2618/3527/195 2624/3533/201 2617/3534/202 +f 2626/3532/200 2632/3535/203 2625/3526/194 +f 2630/3536/204 2622/3531/199 2623/3528/196 +f 2629/3537/205 2628/3538/206 2622/3531/199 +f 2634/3539/207 2626/3532/200 2627/3523/165 +f 2625/3526/194 2631/3540/208 2624/3533/201 +f 2628/3538/206 2634/3539/207 2627/3523/165 +f 2616/3541/209 2617/3534/202 2624/3533/201 +f 2624/3533/201 2631/3540/208 2616/3541/209 +f 2615/3530/198 2616/3542/209 2623/3528/196 +f 2623/3528/196 2616/3542/209 2630/3536/204 +f 2630/3543/204 2637/3544/154 2629/3545/205 +f 2616/3546/209 2638/3547/190 2630/3543/204 +f 2629/3545/205 2643/3548/188 2635/3549/210 +f 2631/3550/208 2636/3551/157 2616/3552/209 +f 2634/3539/207 2641/3553/162 2633/3554/211 +f 2632/3555/203 2639/3556/186 2631/3550/208 +f 2635/3549/210 2642/3557/152 2634/3539/207 +f 2633/3554/211 2640/3558/155 2632/3555/203 +f 2651/3559/191 2657/3560/165 2650/3561/192 +f 2656/3562/200 2648/3563/195 2649/3564/193 +f 2653/3565/196 2644/3566/197 2645/3567/198 +f 2652/3568/199 2651/3559/191 2644/3566/197 +f 2657/3560/165 2649/3564/193 2650/3561/192 +f 2648/3563/195 2654/3569/201 2647/3570/202 +f 2663/3571/211 2655/3572/194 2656/3562/200 +f 2653/3565/196 2659/3573/205 2652/3568/199 +f 2659/3573/205 2658/3574/206 2652/3568/199 +f 2664/3575/207 2656/3562/200 2657/3560/165 +f 2655/3572/194 2661/3576/208 2654/3569/201 +f 2665/3577/210 2657/3560/165 2658/3574/206 +f 2646/3578/209 2647/3570/202 2654/3569/201 +f 2654/3569/201 2661/3576/208 2646/3578/209 +f 2645/3567/198 2646/3579/209 2653/3565/196 +f 2653/3565/196 2646/3579/209 2660/3580/204 +f 2660/3581/204 2667/3582/154 2659/3583/205 +f 2646/3584/209 2668/3585/190 2660/3581/204 +f 2659/3583/205 2673/3586/188 2665/3577/210 +f 2661/3587/208 2666/3588/157 2646/3589/209 +f 2664/3575/207 2671/3590/162 2663/3571/211 +f 2662/3591/203 2669/3592/186 2661/3587/208 +f 2664/3575/207 2673/3586/188 2672/3593/152 +f 2662/3591/203 2671/3590/162 2670/3594/155 +f 2532/3450/167 2531/3460/166 2524/3451/168 +f 2523/3453/170 2530/3464/180 2529/3454/171 +f 2527/3456/173 2526/3459/176 2518/3457/174 +f 2526/3459/176 2532/3450/167 2525/3452/169 +f 2531/3460/166 2530/3464/180 2523/3453/170 +f 2522/3455/172 2529/3454/171 2528/3461/177 +f 2537/3463/179 2536/3595/189 2529/3454/171 +f 2534/3465/181 2533/3466/182 2526/3459/176 +f 2533/3466/182 2539/3477/187 2532/3450/167 +f 2538/3467/183 2537/3463/179 2530/3464/180 +f 2529/3454/171 2536/3595/189 2535/3468/184 +f 2532/3450/167 2539/3477/187 2538/3467/183 +f 2534/3471/181 2542/3475/186 2541/3472/155 +f 2520/3474/185 2540/3596/157 2542/3475/186 +f 2533/3473/182 2541/3472/155 2547/3476/162 +f 2535/3478/184 2543/3483/190 2540/3479/157 +f 2538/3467/183 2546/3484/152 2545/3481/188 +f 2536/3482/189 2544/3485/154 2543/3483/190 +f 2539/3477/187 2547/3476/162 2546/3484/152 +f 2537/3463/179 2545/3481/188 2544/3485/154 +f 2555/3486/169 2562/3501/167 2561/3487/166 +f 2560/3489/180 2559/3496/171 2552/3490/172 +f 2557/3492/173 2556/3495/176 2548/3493/174 +f 2556/3495/176 2562/3501/167 2555/3486/169 +f 2561/3487/166 2560/3489/180 2553/3491/170 +f 2559/3496/171 2558/3504/177 2551/3497/178 +f 2560/3489/180 2567/3517/179 2566/3498/189 +f 2564/3499/181 2563/3597/182 2556/3495/176 +f 2556/3495/176 2563/3597/182 2569/3500/187 +f 2568/3502/183 2567/3517/179 2560/3489/180 +f 2559/3496/171 2566/3498/189 2565/3503/184 +f 2562/3501/167 2569/3500/187 2568/3502/183 +f 2564/3507/181 2572/3511/186 2571/3508/155 +f 2550/3510/185 2570/3598/157 2572/3511/186 +f 2563/3509/182 2571/3508/155 2577/3512/162 +f 2565/3513/184 2573/3519/190 2570/3514/157 +f 2568/3502/183 2576/3520/152 2575/3516/188 +f 2566/3518/189 2574/3521/154 2573/3519/190 +f 2569/3500/187 2577/3512/162 2576/3520/152 +f 2567/3517/179 2575/3516/188 2574/3521/154 +f 2621/3522/191 2628/3538/206 2627/3523/165 +f 2619/3525/193 2626/3532/200 2625/3526/194 +f 2623/3528/196 2622/3531/199 2614/3529/197 +f 2622/3531/199 2628/3538/206 2621/3522/191 +f 2620/3524/192 2627/3523/165 2626/3532/200 +f 2618/3527/195 2625/3526/194 2624/3533/201 +f 2626/3532/200 2633/3554/211 2632/3535/203 +f 2630/3536/204 2629/3537/205 2622/3531/199 +f 2629/3537/205 2635/3549/210 2628/3538/206 +f 2634/3539/207 2633/3554/211 2626/3532/200 +f 2625/3526/194 2632/3535/203 2631/3540/208 +f 2628/3538/206 2635/3549/210 2634/3539/207 +f 2630/3543/204 2638/3547/190 2637/3544/154 +f 2616/3546/209 2636/3599/157 2638/3547/190 +f 2629/3545/205 2637/3544/154 2643/3548/188 +f 2631/3550/208 2639/3556/186 2636/3551/157 +f 2634/3539/207 2642/3557/152 2641/3553/162 +f 2632/3555/203 2640/3558/155 2639/3556/186 +f 2635/3549/210 2643/3548/188 2642/3557/152 +f 2633/3554/211 2641/3553/162 2640/3558/155 +f 2651/3559/191 2658/3574/206 2657/3560/165 +f 2656/3562/200 2655/3572/194 2648/3563/195 +f 2653/3565/196 2652/3568/199 2644/3566/197 +f 2652/3568/199 2658/3574/206 2651/3559/191 +f 2657/3560/165 2656/3562/200 2649/3564/193 +f 2648/3563/195 2655/3572/194 2654/3569/201 +f 2663/3571/211 2662/3600/203 2655/3572/194 +f 2653/3565/196 2660/3580/204 2659/3573/205 +f 2659/3573/205 2665/3577/210 2658/3574/206 +f 2664/3575/207 2663/3571/211 2656/3562/200 +f 2655/3572/194 2662/3600/203 2661/3576/208 +f 2665/3577/210 2664/3575/207 2657/3560/165 +f 2660/3581/204 2668/3585/190 2667/3582/154 +f 2646/3584/209 2666/3601/157 2668/3585/190 +f 2659/3583/205 2667/3582/154 2673/3586/188 +f 2661/3587/208 2669/3592/186 2666/3588/157 +f 2664/3575/207 2672/3593/152 2671/3590/162 +f 2662/3591/203 2670/3594/155 2669/3592/186 +f 2664/3575/207 2665/3577/210 2673/3586/188 +f 2662/3591/203 2663/3571/211 2671/3590/162 o Strong_Rope v 0.625000 7.661612 0.088388 v 0.625000 7.625000 0.000000 @@ -5770,211 +9613,211 @@ vn 0.2962 0.6332 0.7150 vn 0.0392 0.9947 0.0948 vn 0.3827 0.0000 0.9239 s off -f 2316/397/210 2321/398/210 2317/399/210 -f 2317/400/211 2323/401/211 2319/402/211 -f 2318/403/212 2320/404/212 2316/397/212 -f 2319/402/213 2322/405/213 2318/403/213 -f 2328/406/211 2327/407/211 2326/408/211 -f 2325/409/211 2331/410/211 2324/411/211 -f 2332/412/211 2330/413/211 2331/410/211 -f 2333/414/211 2329/415/211 2330/413/211 -f 2329/415/211 2335/416/211 2328/406/211 -f 2340/417/212 2339/418/212 2347/419/212 -f 2343/420/212 2337/421/212 2336/422/212 -f 2342/423/212 2344/424/212 2343/420/212 -f 2341/425/212 2345/426/212 2342/423/212 -f 2341/425/212 2347/419/212 2346/427/212 -f 2316/397/210 2320/404/210 2321/398/210 -f 2317/400/211 2321/428/211 2323/401/211 -f 2318/403/212 2322/405/212 2320/404/212 -f 2319/402/213 2323/401/213 2322/405/213 -f 2328/406/211 2335/416/211 2327/407/211 -f 2325/409/211 2332/412/211 2331/410/211 -f 2332/412/211 2333/414/211 2330/413/211 -f 2333/414/211 2334/429/211 2329/415/211 -f 2329/415/211 2334/429/211 2335/416/211 -f 2340/417/212 2338/430/212 2339/418/212 -f 2343/420/212 2344/424/212 2337/421/212 -f 2342/423/212 2345/426/212 2344/424/212 -f 2341/425/212 2346/427/212 2345/426/212 -f 2341/425/212 2340/417/212 2347/419/212 +f 2778/3602/212 2783/3603/212 2779/3604/212 +f 2779/3605/213 2785/3606/213 2781/3607/213 +f 2780/3608/214 2782/3609/214 2778/3602/214 +f 2781/3607/215 2784/3610/215 2780/3608/215 +f 2790/3611/213 2789/3612/213 2788/3613/213 +f 2787/3614/213 2793/3615/213 2786/3616/213 +f 2794/3617/213 2792/3618/213 2793/3615/213 +f 2795/3619/213 2791/3620/213 2792/3618/213 +f 2791/3620/213 2797/3621/213 2790/3611/213 +f 2802/3622/214 2801/3623/214 2809/3624/214 +f 2805/3625/214 2799/3626/214 2798/3627/214 +f 2804/3628/214 2806/3629/214 2805/3625/214 +f 2803/3630/214 2807/3631/214 2804/3628/214 +f 2803/3630/214 2809/3624/214 2808/3632/214 +f 2778/3602/212 2782/3609/212 2783/3603/212 +f 2779/3605/213 2783/3633/213 2785/3606/213 +f 2780/3608/214 2784/3610/214 2782/3609/214 +f 2781/3607/215 2785/3606/215 2784/3610/215 +f 2790/3611/213 2797/3621/213 2789/3612/213 +f 2787/3614/213 2794/3617/213 2793/3615/213 +f 2794/3617/213 2795/3619/213 2792/3618/213 +f 2795/3619/213 2796/3634/213 2791/3620/213 +f 2791/3620/213 2796/3634/213 2797/3621/213 +f 2802/3622/214 2800/3635/214 2801/3623/214 +f 2805/3625/214 2806/3629/214 2799/3626/214 +f 2804/3628/214 2807/3631/214 2806/3629/214 +f 2803/3630/214 2808/3632/214 2807/3631/214 +f 2803/3630/214 2802/3622/214 2809/3624/214 s 1 -f 2221/431/214 2214/432/215 2222/433/216 -f 2224/434/217 2217/435/213 2225/436/218 -f 2222/433/216 2215/437/219 2223/438/220 -f 2226/439/221 2219/440/222 2241/441/223 -f 2220/442/224 2213/443/210 2221/431/214 -f 2241/444/223 2212/445/225 2220/442/224 -f 2225/436/218 2218/446/226 2226/439/221 -f 2223/438/220 2216/447/227 2224/434/217 -f 2227/448/228 2241/449/223 2220/450/224 -f 2241/449/223 2227/448/228 2234/451/229 -f 2233/452/230 2226/453/221 2241/454/223 -f 2240/455/231 2233/452/230 2241/454/223 -f 2231/456/232 2225/457/218 2232/458/233 -f 2229/459/234 2223/438/220 2230/460/235 -f 2227/448/228 2221/461/214 2228/462/236 -f 2232/458/233 2226/453/221 2233/452/230 -f 2231/456/232 2223/438/220 2224/434/217 -f 2228/462/236 2222/433/216 2229/459/234 -f 2240/455/231 2232/458/233 2233/452/230 -f 2238/463/237 2230/460/235 2231/456/232 -f 2236/464/238 2228/462/236 2229/459/234 -f 2238/463/237 2232/458/233 2239/465/239 -f 2236/464/238 2230/460/235 2237/466/240 -f 2235/467/241 2227/448/228 2228/462/236 -f 2246/468/242 2239/469/239 2247/470/243 -f 2244/471/244 2237/466/240 2245/472/245 -f 2248/473/246 2241/474/223 2263/475/247 -f 2242/476/248 2235/477/241 2243/478/249 -f 2263/479/247 2234/480/229 2242/476/248 -f 2247/470/243 2240/481/231 2248/473/246 -f 2245/472/245 2238/463/237 2246/468/242 -f 2243/478/249 2236/464/238 2244/471/244 -f 2249/482/250 2263/483/247 2242/484/248 -f 2256/485/251 2263/483/247 2249/482/250 -f 2255/486/252 2248/487/246 2263/488/247 -f 2263/488/247 2262/489/253 2255/486/252 -f 2246/468/242 2254/490/254 2253/491/255 -f 2244/471/244 2252/492/256 2251/493/257 -f 2249/482/250 2243/494/249 2250/495/258 -f 2247/496/243 2255/486/252 2254/490/254 -f 2252/492/256 2246/468/242 2253/491/255 -f 2250/495/258 2244/471/244 2251/493/257 -f 2250/495/258 2258/497/259 2257/498/260 -f 2260/499/261 2254/490/254 2261/500/262 -f 2258/497/259 2252/492/256 2259/501/263 -f 2256/485/251 2250/495/258 2257/498/260 -f 2261/500/262 2255/486/252 2262/489/253 -f 2252/492/256 2260/499/261 2259/501/263 -f 2275/502/256 2267/503/261 2268/504/263 -f 2266/505/262 2272/506/252 2265/507/253 -f 2271/508/251 2277/509/258 2270/510/260 -f 2269/511/259 2275/502/256 2268/504/263 -f 2267/503/261 2273/512/254 2266/505/262 -f 2277/509/258 2269/511/259 2270/510/260 -f 2277/509/258 2283/513/244 2276/514/257 -f 2275/502/256 2281/515/242 2274/516/255 -f 2280/517/243 2272/506/252 2273/512/254 -f 2278/518/250 2284/519/249 2277/509/258 -f 2283/513/244 2275/502/256 2276/514/257 -f 2281/515/242 2273/512/254 2274/516/255 -f 2264/520/247 2265/507/253 2272/506/252 -f 2272/506/252 2279/521/246 2264/520/247 -f 2271/508/251 2264/522/247 2278/518/250 -f 2278/518/250 2264/522/247 2285/523/248 -f 2284/524/249 2291/525/238 2283/513/244 -f 2282/526/245 2289/527/237 2281/515/242 -f 2280/528/243 2287/529/231 2279/530/246 -f 2264/531/247 2293/532/229 2285/533/248 -f 2285/533/248 2292/534/241 2284/524/249 -f 2279/530/246 2286/535/223 2264/536/247 -f 2283/513/244 2290/537/240 2282/526/245 -f 2281/515/242 2288/538/239 2280/528/243 -f 2293/539/229 2299/540/236 2292/541/241 -f 2291/525/238 2297/542/235 2290/537/240 -f 2289/527/237 2295/543/233 2288/544/239 -f 2292/541/241 2298/545/234 2291/525/238 -f 2289/527/237 2297/542/235 2296/546/232 -f 2287/547/231 2295/543/233 2294/548/230 -f 2298/545/234 2306/549/214 2305/550/216 -f 2296/546/232 2304/551/220 2303/552/217 -f 2295/543/233 2301/553/221 2294/548/230 -f 2300/554/228 2306/549/214 2299/540/236 -f 2298/545/234 2304/551/220 2297/542/235 -f 2296/546/232 2302/555/218 2295/543/233 -f 2287/547/231 2294/548/230 2286/556/223 -f 2294/548/230 2301/553/221 2286/556/223 -f 2286/557/223 2300/554/228 2293/539/229 -f 2300/554/228 2286/557/223 2307/558/224 -f 2304/551/220 2311/559/227 2303/552/217 -f 2302/560/218 2309/561/226 2301/562/221 -f 2286/563/223 2315/564/225 2307/565/224 -f 2307/565/224 2314/566/210 2306/567/214 -f 2301/562/221 2308/568/222 2286/569/223 -f 2305/550/216 2312/570/219 2304/551/220 -f 2303/552/217 2310/571/213 2302/560/218 -f 2306/567/214 2313/572/215 2305/550/216 -f 2221/431/214 2213/443/210 2214/432/215 -f 2224/434/217 2216/447/227 2217/435/213 -f 2222/433/216 2214/432/215 2215/437/219 -f 2226/439/221 2218/446/226 2219/440/222 -f 2220/442/224 2212/445/225 2213/443/210 -f 2241/444/223 2219/573/222 2212/445/225 -f 2225/436/218 2217/435/213 2218/446/226 -f 2223/438/220 2215/437/219 2216/447/227 -f 2231/456/232 2224/434/217 2225/457/218 -f 2229/459/234 2222/433/216 2223/438/220 -f 2227/448/228 2220/450/224 2221/461/214 -f 2232/458/233 2225/457/218 2226/453/221 -f 2231/456/232 2230/460/235 2223/438/220 -f 2228/462/236 2221/461/214 2222/433/216 -f 2240/455/231 2239/465/239 2232/458/233 -f 2238/463/237 2237/466/240 2230/460/235 -f 2236/464/238 2235/467/241 2228/462/236 -f 2238/463/237 2231/456/232 2232/458/233 -f 2236/464/238 2229/459/234 2230/460/235 -f 2235/467/241 2234/451/229 2227/448/228 -f 2246/468/242 2238/463/237 2239/469/239 -f 2244/471/244 2236/464/238 2237/466/240 -f 2248/473/246 2240/481/231 2241/474/223 -f 2242/476/248 2234/480/229 2235/477/241 -f 2263/479/247 2241/574/223 2234/480/229 -f 2247/470/243 2239/469/239 2240/481/231 -f 2245/472/245 2237/466/240 2238/463/237 -f 2243/478/249 2235/477/241 2236/464/238 -f 2246/468/242 2247/496/243 2254/490/254 -f 2244/471/244 2245/472/245 2252/492/256 -f 2249/482/250 2242/484/248 2243/494/249 -f 2247/496/243 2248/487/246 2255/486/252 -f 2252/492/256 2245/472/245 2246/468/242 -f 2250/495/258 2243/494/249 2244/471/244 -f 2250/495/258 2251/493/257 2258/497/259 -f 2260/499/261 2253/491/255 2254/490/254 -f 2258/497/259 2251/493/257 2252/492/256 -f 2256/485/251 2249/482/250 2250/495/258 -f 2261/500/262 2254/490/254 2255/486/252 -f 2252/492/256 2253/491/255 2260/499/261 -f 2275/502/256 2274/516/255 2267/503/261 -f 2266/505/262 2273/512/254 2272/506/252 -f 2271/508/251 2278/518/250 2277/509/258 -f 2269/511/259 2276/514/257 2275/502/256 -f 2267/503/261 2274/516/255 2273/512/254 -f 2277/509/258 2276/514/257 2269/511/259 -f 2277/509/258 2284/519/249 2283/513/244 -f 2275/502/256 2282/526/245 2281/515/242 -f 2280/517/243 2279/521/246 2272/506/252 -f 2278/518/250 2285/523/248 2284/519/249 -f 2283/513/244 2282/526/245 2275/502/256 -f 2281/515/242 2280/517/243 2273/512/254 -f 2284/524/249 2292/534/241 2291/525/238 -f 2282/526/245 2290/537/240 2289/527/237 -f 2280/528/243 2288/538/239 2287/529/231 -f 2264/531/247 2286/575/223 2293/532/229 -f 2285/533/248 2293/532/229 2292/534/241 -f 2279/530/246 2287/529/231 2286/535/223 -f 2283/513/244 2291/525/238 2290/537/240 -f 2281/515/242 2289/527/237 2288/538/239 -f 2293/539/229 2300/554/228 2299/540/236 -f 2291/525/238 2298/545/234 2297/542/235 -f 2289/527/237 2296/546/232 2295/543/233 -f 2292/541/241 2299/540/236 2298/545/234 -f 2289/527/237 2290/537/240 2297/542/235 -f 2287/547/231 2288/544/239 2295/543/233 -f 2298/545/234 2299/540/236 2306/549/214 -f 2296/546/232 2297/542/235 2304/551/220 -f 2295/543/233 2302/555/218 2301/553/221 -f 2300/554/228 2307/558/224 2306/549/214 -f 2298/545/234 2305/550/216 2304/551/220 -f 2296/546/232 2303/552/217 2302/555/218 -f 2304/551/220 2312/570/219 2311/559/227 -f 2302/560/218 2310/571/213 2309/561/226 -f 2286/563/223 2308/576/222 2315/564/225 -f 2307/565/224 2315/564/225 2314/566/210 -f 2301/562/221 2309/561/226 2308/568/222 -f 2305/550/216 2313/572/215 2312/570/219 -f 2303/552/217 2311/559/227 2310/571/213 -f 2306/567/214 2314/566/210 2313/572/215 +f 2683/3636/216 2676/3637/217 2684/3638/218 +f 2686/3639/219 2679/3640/215 2687/3641/220 +f 2684/3638/218 2677/3642/221 2685/3643/222 +f 2688/3644/223 2681/3645/224 2703/3646/225 +f 2682/3647/226 2675/3648/212 2683/3636/216 +f 2703/3649/225 2674/3650/227 2682/3647/226 +f 2687/3641/220 2680/3651/228 2688/3644/223 +f 2685/3643/222 2678/3652/229 2686/3639/219 +f 2689/3653/230 2703/3654/225 2682/3655/226 +f 2703/3654/225 2689/3653/230 2696/3656/231 +f 2695/3657/232 2688/3658/223 2703/3659/225 +f 2702/3660/233 2695/3657/232 2703/3659/225 +f 2693/3661/234 2687/3662/220 2694/3663/235 +f 2691/3664/236 2685/3643/222 2692/3665/237 +f 2689/3653/230 2683/3666/216 2690/3667/238 +f 2694/3663/235 2688/3658/223 2695/3657/232 +f 2693/3661/234 2685/3643/222 2686/3639/219 +f 2690/3667/238 2684/3638/218 2691/3664/236 +f 2702/3660/233 2694/3663/235 2695/3657/232 +f 2700/3668/239 2692/3665/237 2693/3661/234 +f 2698/3669/240 2690/3667/238 2691/3664/236 +f 2700/3668/239 2694/3663/235 2701/3670/241 +f 2698/3669/240 2692/3665/237 2699/3671/242 +f 2697/3672/243 2689/3653/230 2690/3667/238 +f 2708/3673/244 2701/3674/241 2709/3675/245 +f 2706/3676/246 2699/3671/242 2707/3677/247 +f 2710/3678/248 2703/3679/225 2725/3680/249 +f 2704/3681/250 2697/3682/243 2705/3683/251 +f 2725/3684/249 2696/3685/231 2704/3681/250 +f 2709/3675/245 2702/3686/233 2710/3678/248 +f 2707/3677/247 2700/3668/239 2708/3673/244 +f 2705/3683/251 2698/3669/240 2706/3676/246 +f 2711/3687/252 2725/3688/249 2704/3689/250 +f 2718/3690/253 2725/3688/249 2711/3687/252 +f 2717/3691/254 2710/3692/248 2725/3693/249 +f 2725/3693/249 2724/3694/255 2717/3691/254 +f 2708/3673/244 2716/3695/256 2715/3696/257 +f 2706/3676/246 2714/3697/258 2713/3698/259 +f 2711/3687/252 2705/3699/251 2712/3700/260 +f 2709/3701/245 2717/3691/254 2716/3695/256 +f 2714/3697/258 2708/3673/244 2715/3696/257 +f 2712/3700/260 2706/3676/246 2713/3698/259 +f 2712/3700/260 2720/3702/261 2719/3703/262 +f 2722/3704/263 2716/3695/256 2723/3705/264 +f 2720/3702/261 2714/3697/258 2721/3706/265 +f 2718/3690/253 2712/3700/260 2719/3703/262 +f 2723/3705/264 2717/3691/254 2724/3694/255 +f 2714/3697/258 2722/3704/263 2721/3706/265 +f 2737/3707/258 2729/3708/263 2730/3709/265 +f 2728/3710/264 2734/3711/254 2727/3712/255 +f 2733/3713/253 2739/3714/260 2732/3715/262 +f 2731/3716/261 2737/3707/258 2730/3709/265 +f 2729/3708/263 2735/3717/256 2728/3710/264 +f 2739/3714/260 2731/3716/261 2732/3715/262 +f 2739/3714/260 2745/3718/246 2738/3719/259 +f 2737/3707/258 2743/3720/244 2736/3721/257 +f 2742/3722/245 2734/3711/254 2735/3717/256 +f 2740/3723/252 2746/3724/251 2739/3714/260 +f 2745/3718/246 2737/3707/258 2738/3719/259 +f 2743/3720/244 2735/3717/256 2736/3721/257 +f 2726/3725/249 2727/3712/255 2734/3711/254 +f 2734/3711/254 2741/3726/248 2726/3725/249 +f 2733/3713/253 2726/3727/249 2740/3723/252 +f 2740/3723/252 2726/3727/249 2747/3728/250 +f 2746/3729/251 2753/3730/240 2745/3718/246 +f 2744/3731/247 2751/3732/239 2743/3720/244 +f 2742/3733/245 2749/3734/233 2741/3735/248 +f 2726/3736/249 2755/3737/231 2747/3738/250 +f 2747/3738/250 2754/3739/243 2746/3729/251 +f 2741/3735/248 2748/3740/225 2726/3741/249 +f 2745/3718/246 2752/3742/242 2744/3731/247 +f 2743/3720/244 2750/3743/241 2742/3733/245 +f 2755/3744/231 2761/3745/238 2754/3746/243 +f 2753/3730/240 2759/3747/237 2752/3742/242 +f 2751/3732/239 2757/3748/235 2750/3749/241 +f 2754/3746/243 2760/3750/236 2753/3730/240 +f 2751/3732/239 2759/3747/237 2758/3751/234 +f 2749/3752/233 2757/3748/235 2756/3753/232 +f 2760/3750/236 2768/3754/216 2767/3755/218 +f 2758/3751/234 2766/3756/222 2765/3757/219 +f 2757/3748/235 2763/3758/223 2756/3753/232 +f 2762/3759/230 2768/3754/216 2761/3745/238 +f 2760/3750/236 2766/3756/222 2759/3747/237 +f 2758/3751/234 2764/3760/220 2757/3748/235 +f 2749/3752/233 2756/3753/232 2748/3761/225 +f 2756/3753/232 2763/3758/223 2748/3761/225 +f 2748/3762/225 2762/3759/230 2755/3744/231 +f 2762/3759/230 2748/3762/225 2769/3763/226 +f 2766/3756/222 2773/3764/229 2765/3757/219 +f 2764/3765/220 2771/3766/228 2763/3767/223 +f 2748/3768/225 2777/3769/227 2769/3770/226 +f 2769/3770/226 2776/3771/212 2768/3772/216 +f 2763/3767/223 2770/3773/224 2748/3774/225 +f 2767/3755/218 2774/3775/221 2766/3756/222 +f 2765/3757/219 2772/3776/215 2764/3765/220 +f 2768/3772/216 2775/3777/217 2767/3755/218 +f 2683/3636/216 2675/3648/212 2676/3637/217 +f 2686/3639/219 2678/3652/229 2679/3640/215 +f 2684/3638/218 2676/3637/217 2677/3642/221 +f 2688/3644/223 2680/3651/228 2681/3645/224 +f 2682/3647/226 2674/3650/227 2675/3648/212 +f 2703/3649/225 2681/3778/224 2674/3650/227 +f 2687/3641/220 2679/3640/215 2680/3651/228 +f 2685/3643/222 2677/3642/221 2678/3652/229 +f 2693/3661/234 2686/3639/219 2687/3662/220 +f 2691/3664/236 2684/3638/218 2685/3643/222 +f 2689/3653/230 2682/3655/226 2683/3666/216 +f 2694/3663/235 2687/3662/220 2688/3658/223 +f 2693/3661/234 2692/3665/237 2685/3643/222 +f 2690/3667/238 2683/3666/216 2684/3638/218 +f 2702/3660/233 2701/3670/241 2694/3663/235 +f 2700/3668/239 2699/3671/242 2692/3665/237 +f 2698/3669/240 2697/3672/243 2690/3667/238 +f 2700/3668/239 2693/3661/234 2694/3663/235 +f 2698/3669/240 2691/3664/236 2692/3665/237 +f 2697/3672/243 2696/3656/231 2689/3653/230 +f 2708/3673/244 2700/3668/239 2701/3674/241 +f 2706/3676/246 2698/3669/240 2699/3671/242 +f 2710/3678/248 2702/3686/233 2703/3679/225 +f 2704/3681/250 2696/3685/231 2697/3682/243 +f 2725/3684/249 2703/3779/225 2696/3685/231 +f 2709/3675/245 2701/3674/241 2702/3686/233 +f 2707/3677/247 2699/3671/242 2700/3668/239 +f 2705/3683/251 2697/3682/243 2698/3669/240 +f 2708/3673/244 2709/3701/245 2716/3695/256 +f 2706/3676/246 2707/3677/247 2714/3697/258 +f 2711/3687/252 2704/3689/250 2705/3699/251 +f 2709/3701/245 2710/3692/248 2717/3691/254 +f 2714/3697/258 2707/3677/247 2708/3673/244 +f 2712/3700/260 2705/3699/251 2706/3676/246 +f 2712/3700/260 2713/3698/259 2720/3702/261 +f 2722/3704/263 2715/3696/257 2716/3695/256 +f 2720/3702/261 2713/3698/259 2714/3697/258 +f 2718/3690/253 2711/3687/252 2712/3700/260 +f 2723/3705/264 2716/3695/256 2717/3691/254 +f 2714/3697/258 2715/3696/257 2722/3704/263 +f 2737/3707/258 2736/3721/257 2729/3708/263 +f 2728/3710/264 2735/3717/256 2734/3711/254 +f 2733/3713/253 2740/3723/252 2739/3714/260 +f 2731/3716/261 2738/3719/259 2737/3707/258 +f 2729/3708/263 2736/3721/257 2735/3717/256 +f 2739/3714/260 2738/3719/259 2731/3716/261 +f 2739/3714/260 2746/3724/251 2745/3718/246 +f 2737/3707/258 2744/3731/247 2743/3720/244 +f 2742/3722/245 2741/3726/248 2734/3711/254 +f 2740/3723/252 2747/3728/250 2746/3724/251 +f 2745/3718/246 2744/3731/247 2737/3707/258 +f 2743/3720/244 2742/3722/245 2735/3717/256 +f 2746/3729/251 2754/3739/243 2753/3730/240 +f 2744/3731/247 2752/3742/242 2751/3732/239 +f 2742/3733/245 2750/3743/241 2749/3734/233 +f 2726/3736/249 2748/3780/225 2755/3737/231 +f 2747/3738/250 2755/3737/231 2754/3739/243 +f 2741/3735/248 2749/3734/233 2748/3740/225 +f 2745/3718/246 2753/3730/240 2752/3742/242 +f 2743/3720/244 2751/3732/239 2750/3743/241 +f 2755/3744/231 2762/3759/230 2761/3745/238 +f 2753/3730/240 2760/3750/236 2759/3747/237 +f 2751/3732/239 2758/3751/234 2757/3748/235 +f 2754/3746/243 2761/3745/238 2760/3750/236 +f 2751/3732/239 2752/3742/242 2759/3747/237 +f 2749/3752/233 2750/3749/241 2757/3748/235 +f 2760/3750/236 2761/3745/238 2768/3754/216 +f 2758/3751/234 2759/3747/237 2766/3756/222 +f 2757/3748/235 2764/3760/220 2763/3758/223 +f 2762/3759/230 2769/3763/226 2768/3754/216 +f 2760/3750/236 2767/3755/218 2766/3756/222 +f 2758/3751/234 2765/3757/219 2764/3760/220 +f 2766/3756/222 2774/3775/221 2773/3764/229 +f 2764/3765/220 2772/3776/215 2771/3766/228 +f 2748/3768/225 2770/3781/224 2777/3769/227 +f 2769/3770/226 2777/3769/227 2776/3771/212 +f 2763/3767/223 2771/3766/228 2770/3773/224 +f 2767/3755/218 2775/3777/217 2774/3775/221 +f 2765/3757/219 2773/3764/229 2772/3776/215 +f 2768/3772/216 2776/3771/212 2775/3777/217 o Strong_Pivot v 0.750000 1.500000 -2.750000 v 0.250000 1.500000 -2.750000 @@ -6058,42 +9901,42 @@ vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 s off -f 2353/577/264 2355/578/264 2352/579/264 -f 2351/580/265 2353/581/265 2348/582/265 -f 2350/583/266 2354/584/266 2351/585/266 -f 2349/586/267 2355/578/267 2350/583/267 -f 2348/582/268 2352/587/268 2349/586/268 -f 2361/588/264 2363/589/264 2360/590/264 -f 2359/591/265 2361/592/265 2356/593/265 -f 2358/594/266 2362/595/266 2359/596/266 -f 2357/597/267 2363/589/267 2358/594/267 -f 2356/593/268 2360/598/268 2357/597/268 -f 2370/599/266 2367/600/266 2366/601/266 -f 2369/602/268 2364/603/268 2365/604/268 -f 2371/605/265 2365/604/265 2367/606/265 -f 2368/607/267 2366/601/267 2364/603/267 -f 2378/608/266 2375/609/266 2374/610/266 -f 2377/611/268 2372/612/268 2373/613/268 -f 2379/614/265 2373/613/265 2375/615/265 -f 2376/616/267 2374/610/267 2372/612/267 -f 2353/577/264 2354/584/264 2355/578/264 -f 2351/580/265 2354/617/265 2353/581/265 -f 2350/583/266 2355/578/266 2354/584/266 -f 2349/586/267 2352/587/267 2355/578/267 -f 2348/582/268 2353/581/268 2352/587/268 -f 2361/588/264 2362/595/264 2363/589/264 -f 2359/591/265 2362/618/265 2361/592/265 -f 2358/594/266 2363/589/266 2362/595/266 -f 2357/597/267 2360/598/267 2363/589/267 -f 2356/593/268 2361/592/268 2360/598/268 -f 2370/599/266 2371/619/266 2367/600/266 -f 2369/602/268 2368/607/268 2364/603/268 -f 2371/605/265 2369/602/265 2365/604/265 -f 2368/607/267 2370/599/267 2366/601/267 -f 2378/608/266 2379/620/266 2375/609/266 -f 2377/611/268 2376/616/268 2372/612/268 -f 2379/614/265 2377/611/265 2373/613/265 -f 2376/616/267 2378/608/267 2374/610/267 +f 2815/3782/266 2817/3783/266 2814/3784/266 +f 2813/3785/267 2815/3786/267 2810/3787/267 +f 2812/3788/268 2816/3789/268 2813/3790/268 +f 2811/3791/269 2817/3783/269 2812/3788/269 +f 2810/3787/270 2814/3792/270 2811/3791/270 +f 2823/3793/266 2825/3794/266 2822/3795/266 +f 2821/3796/267 2823/3797/267 2818/3798/267 +f 2820/3799/268 2824/3800/268 2821/3801/268 +f 2819/3802/269 2825/3794/269 2820/3799/269 +f 2818/3798/270 2822/3803/270 2819/3802/270 +f 2832/3804/268 2829/3805/268 2828/3806/268 +f 2831/3807/270 2826/3808/270 2827/3809/270 +f 2833/3810/267 2827/3809/267 2829/3811/267 +f 2830/3812/269 2828/3806/269 2826/3808/269 +f 2840/3813/268 2837/3814/268 2836/3815/268 +f 2839/3816/270 2834/3817/270 2835/3818/270 +f 2841/3819/267 2835/3818/267 2837/3820/267 +f 2838/3821/269 2836/3815/269 2834/3817/269 +f 2815/3782/266 2816/3789/266 2817/3783/266 +f 2813/3785/267 2816/3822/267 2815/3786/267 +f 2812/3788/268 2817/3783/268 2816/3789/268 +f 2811/3791/269 2814/3792/269 2817/3783/269 +f 2810/3787/270 2815/3786/270 2814/3792/270 +f 2823/3793/266 2824/3800/266 2825/3794/266 +f 2821/3796/267 2824/3823/267 2823/3797/267 +f 2820/3799/268 2825/3794/268 2824/3800/268 +f 2819/3802/269 2822/3803/269 2825/3794/269 +f 2818/3798/270 2823/3797/270 2822/3803/270 +f 2832/3804/268 2833/3824/268 2829/3805/268 +f 2831/3807/270 2830/3812/270 2826/3808/270 +f 2833/3810/267 2831/3807/267 2827/3809/267 +f 2830/3812/269 2832/3804/269 2828/3806/269 +f 2840/3813/268 2841/3825/268 2837/3814/268 +f 2839/3816/270 2838/3821/270 2834/3817/270 +f 2841/3819/267 2839/3816/267 2835/3818/267 +f 2838/3821/269 2840/3813/269 2836/3815/269 o Strong_Erector v 0.250000 3.500000 -2.750000 v 0.750000 3.500000 -2.750000 @@ -6346,138 +10189,138 @@ vn 0.0000 0.0000 1.0000 vn 0.7071 0.0000 -0.7071 vn -0.7071 0.0000 -0.7071 s off -f 2383/621/269 2381/622/269 2380/623/269 -f 2387/624/269 2385/625/269 2384/626/269 -f 2389/627/270 2391/628/270 2388/629/270 -f 2393/630/270 2395/631/270 2392/632/270 -f 2386/633/271 2393/634/271 2385/635/271 -f 2387/624/272 2394/636/272 2386/637/272 -f 2382/638/271 2389/639/271 2381/640/271 -f 2383/621/272 2390/641/272 2382/642/272 -f 2384/643/273 2395/631/273 2387/624/273 -f 2385/635/274 2392/644/274 2384/643/274 -f 2380/645/273 2391/628/273 2383/621/273 -f 2381/640/274 2388/646/274 2380/645/274 -f 2397/647/270 2398/648/270 2396/649/270 -f 2402/650/269 2400/651/269 2401/652/269 -f 2398/648/272 2404/653/272 2396/649/272 -f 2399/654/273 2402/655/273 2398/656/273 -f 2397/647/272 2403/657/272 2399/658/272 -f 2396/659/271 2400/660/271 2397/661/271 -f 2407/662/273 2409/663/273 2405/664/273 -f 2402/655/272 2405/664/272 2398/656/272 -f 2396/659/272 2406/665/272 2401/666/272 -f 2401/652/272 2407/667/272 2402/650/272 -f 2409/668/274 2410/669/274 2408/670/274 -f 2405/671/270 2408/670/270 2404/653/270 -f 2404/672/271 2410/673/271 2406/665/271 -f 2406/674/269 2411/675/269 2407/667/269 -f 2417/676/269 2412/677/269 2416/678/269 -f 2419/679/271 2413/680/271 2417/681/271 -f 2418/682/270 2415/683/270 2419/684/270 -f 2414/685/274 2413/686/274 2415/683/274 -f 2422/687/272 2416/678/272 2421/688/272 -f 2427/689/272 2417/681/272 2422/690/272 -f 2421/691/272 2418/692/272 2425/693/272 -f 2416/694/273 2414/695/273 2418/692/273 -f 2427/689/271 2423/696/271 2426/697/271 -f 2426/698/272 2420/699/272 2424/700/272 -f 2424/701/273 2421/691/273 2425/693/273 -f 2425/702/272 2419/684/272 2427/703/272 -f 2421/688/269 2423/704/269 2422/687/269 -f 2426/698/270 2425/702/270 2427/703/270 -f 2441/705/269 2432/706/269 2433/707/269 -f 2439/708/271 2435/709/271 2431/710/271 -f 2428/711/270 2437/712/270 2429/713/270 -f 2440/714/273 2428/711/273 2432/706/273 -f 2442/715/273 2430/716/273 2434/717/273 -f 2443/718/269 2434/717/269 2435/719/269 -f 2430/716/270 2439/708/270 2431/710/270 -f 2437/712/271 2433/720/271 2429/713/271 -f 2445/721/272 2446/722/272 2447/723/272 -f 2450/724/274 2448/725/274 2449/726/274 -f 2445/721/270 2451/727/270 2444/728/270 -f 2451/729/270 2463/730/270 2455/731/270 -f 2446/722/269 2449/732/269 2447/723/269 -f 2449/733/269 2461/734/269 2453/735/269 -f 2450/736/269 2446/722/269 2454/737/269 -f 2451/727/270 2455/738/270 2444/728/270 -f 2455/731/275 2446/722/275 2444/728/275 -f 2449/732/269 2453/739/269 2447/723/269 -f 2448/725/270 2445/721/270 2452/740/270 -f 2453/735/276 2445/721/276 2447/723/276 -f 2458/741/274 2463/730/274 2459/742/274 -f 2456/743/274 2461/734/274 2457/744/274 -f 2450/745/273 2459/746/273 2451/729/273 -f 2452/747/270 2456/748/270 2448/749/270 -f 2453/735/273 2460/750/273 2452/747/273 -f 2454/751/269 2458/752/269 2450/753/269 -f 2455/731/271 2462/754/271 2454/751/271 -f 2448/749/271 2457/755/271 2449/756/271 -f 2383/621/269 2382/642/269 2381/622/269 -f 2387/624/269 2386/637/269 2385/625/269 -f 2389/627/270 2390/641/270 2391/628/270 -f 2393/630/270 2394/636/270 2395/631/270 -f 2386/633/271 2394/757/271 2393/634/271 -f 2387/624/272 2395/631/272 2394/636/272 -f 2382/638/271 2390/758/271 2389/639/271 -f 2383/621/272 2391/628/272 2390/641/272 -f 2384/643/273 2392/644/273 2395/631/273 -f 2385/635/274 2393/634/274 2392/644/274 -f 2380/645/273 2388/646/273 2391/628/273 -f 2381/640/274 2389/639/274 2388/646/274 -f 2397/647/270 2399/658/270 2398/648/270 -f 2402/650/269 2403/759/269 2400/651/269 -f 2398/648/272 2405/671/272 2404/653/272 -f 2399/654/273 2403/760/273 2402/655/273 -f 2397/647/272 2400/761/272 2403/657/272 -f 2396/659/271 2401/666/271 2400/660/271 -f 2407/662/273 2411/762/273 2409/663/273 -f 2402/655/272 2407/662/272 2405/664/272 -f 2396/659/272 2404/672/272 2406/665/272 -f 2401/652/272 2406/674/272 2407/667/272 -f 2409/668/274 2411/763/274 2410/669/274 -f 2405/671/270 2409/668/270 2408/670/270 -f 2404/672/271 2408/764/271 2410/673/271 -f 2406/674/269 2410/765/269 2411/675/269 -f 2417/676/269 2413/766/269 2412/677/269 -f 2419/679/271 2415/767/271 2413/680/271 -f 2418/682/270 2414/685/270 2415/683/270 -f 2414/685/274 2412/768/274 2413/686/274 -f 2422/687/272 2417/676/272 2416/678/272 -f 2427/689/272 2419/679/272 2417/681/272 -f 2421/691/272 2416/694/272 2418/692/272 -f 2416/694/273 2412/769/273 2414/695/273 -f 2427/689/271 2422/690/271 2423/696/271 -f 2426/698/272 2423/770/272 2420/699/272 -f 2424/701/273 2420/771/273 2421/691/273 -f 2425/702/272 2418/682/272 2419/684/272 -f 2421/688/269 2420/772/269 2423/704/269 -f 2426/698/270 2424/700/270 2425/702/270 -f 2441/705/269 2440/714/269 2432/706/269 -f 2439/708/271 2443/773/271 2435/709/271 -f 2428/711/270 2436/774/270 2437/712/270 -f 2440/714/273 2436/774/273 2428/711/273 -f 2442/715/273 2438/775/273 2430/716/273 -f 2443/718/269 2442/715/269 2434/717/269 -f 2430/716/270 2438/775/270 2439/708/270 -f 2437/712/271 2441/776/271 2433/720/271 -f 2445/721/272 2444/728/272 2446/722/272 -f 2450/724/274 2451/727/274 2448/725/274 -f 2445/721/270 2448/725/270 2451/727/270 -f 2451/729/270 2459/746/270 2463/730/270 -f 2446/722/269 2450/736/269 2449/732/269 -f 2449/733/269 2457/777/269 2461/734/269 -f 2455/731/275 2454/751/275 2446/722/275 -f 2453/735/276 2452/747/276 2445/721/276 -f 2458/741/274 2462/754/274 2463/730/274 -f 2456/743/274 2460/750/274 2461/734/274 -f 2450/745/273 2458/778/273 2459/746/273 -f 2452/747/270 2460/750/270 2456/748/270 -f 2453/735/273 2461/734/273 2460/750/273 -f 2454/751/269 2462/754/269 2458/752/269 -f 2455/731/271 2463/730/271 2462/754/271 -f 2448/749/271 2456/748/271 2457/755/271 +f 2845/3826/271 2843/3827/271 2842/3828/271 +f 2849/3829/271 2847/3830/271 2846/3831/271 +f 2851/3832/272 2853/3833/272 2850/3834/272 +f 2855/3835/272 2857/3836/272 2854/3837/272 +f 2848/3838/273 2855/3839/273 2847/3840/273 +f 2849/3829/274 2856/3841/274 2848/3842/274 +f 2844/3843/273 2851/3844/273 2843/3845/273 +f 2845/3826/274 2852/3846/274 2844/3847/274 +f 2846/3848/275 2857/3836/275 2849/3829/275 +f 2847/3840/276 2854/3849/276 2846/3848/276 +f 2842/3850/275 2853/3833/275 2845/3826/275 +f 2843/3845/276 2850/3851/276 2842/3850/276 +f 2859/3852/272 2860/3853/272 2858/3854/272 +f 2864/3855/271 2862/3856/271 2863/3857/271 +f 2860/3853/274 2866/3858/274 2858/3854/274 +f 2861/3859/275 2864/3860/275 2860/3861/275 +f 2859/3852/274 2865/3862/274 2861/3863/274 +f 2858/3864/273 2862/3865/273 2859/3866/273 +f 2869/3867/275 2871/3868/275 2867/3869/275 +f 2864/3860/274 2867/3869/274 2860/3861/274 +f 2858/3864/274 2868/3870/274 2863/3871/274 +f 2863/3857/274 2869/3872/274 2864/3855/274 +f 2871/3873/276 2872/3874/276 2870/3875/276 +f 2867/3876/272 2870/3875/272 2866/3858/272 +f 2866/3877/273 2872/3878/273 2868/3870/273 +f 2868/3879/271 2873/3880/271 2869/3872/271 +f 2879/3881/271 2874/3882/271 2878/3883/271 +f 2881/3884/273 2875/3885/273 2879/3886/273 +f 2880/3887/272 2877/3888/272 2881/3889/272 +f 2876/3890/276 2875/3891/276 2877/3888/276 +f 2884/3892/274 2878/3883/274 2883/3893/274 +f 2889/3894/274 2879/3886/274 2884/3895/274 +f 2883/3896/274 2880/3897/274 2887/3898/274 +f 2878/3899/275 2876/3900/275 2880/3897/275 +f 2889/3894/273 2885/3901/273 2888/3902/273 +f 2888/3903/274 2882/3904/274 2886/3905/274 +f 2886/3906/275 2883/3896/275 2887/3898/275 +f 2887/3907/274 2881/3889/274 2889/3908/274 +f 2883/3893/271 2885/3909/271 2884/3892/271 +f 2888/3903/272 2887/3907/272 2889/3908/272 +f 2903/3910/271 2894/3911/271 2895/3912/271 +f 2901/3913/273 2897/3914/273 2893/3915/273 +f 2890/3916/272 2899/3917/272 2891/3918/272 +f 2902/3919/275 2890/3916/275 2894/3911/275 +f 2904/3920/275 2892/3921/275 2896/3922/275 +f 2905/3923/271 2896/3922/271 2897/3924/271 +f 2892/3921/272 2901/3913/272 2893/3915/272 +f 2899/3917/273 2895/3925/273 2891/3918/273 +f 2907/3926/274 2908/3927/274 2909/3928/274 +f 2912/3929/276 2910/3930/276 2911/3931/276 +f 2907/3926/272 2913/3932/272 2906/3933/272 +f 2913/3934/272 2925/3935/272 2917/3936/272 +f 2908/3927/271 2911/3937/271 2909/3928/271 +f 2911/3938/271 2923/3939/271 2915/3940/271 +f 2912/3941/271 2908/3927/271 2916/3942/271 +f 2913/3932/272 2917/3943/272 2906/3933/272 +f 2917/3936/277 2908/3927/277 2906/3933/277 +f 2911/3937/271 2915/3944/271 2909/3928/271 +f 2910/3930/272 2907/3926/272 2914/3945/272 +f 2915/3940/278 2907/3926/278 2909/3928/278 +f 2920/3946/276 2925/3935/276 2921/3947/276 +f 2918/3948/276 2923/3939/276 2919/3949/276 +f 2912/3950/275 2921/3951/275 2913/3934/275 +f 2914/3952/272 2918/3953/272 2910/3954/272 +f 2915/3940/275 2922/3955/275 2914/3952/275 +f 2916/3956/271 2920/3957/271 2912/3958/271 +f 2917/3936/273 2924/3959/273 2916/3956/273 +f 2910/3954/273 2919/3960/273 2911/3961/273 +f 2845/3826/271 2844/3847/271 2843/3827/271 +f 2849/3829/271 2848/3842/271 2847/3830/271 +f 2851/3832/272 2852/3846/272 2853/3833/272 +f 2855/3835/272 2856/3841/272 2857/3836/272 +f 2848/3838/273 2856/3962/273 2855/3839/273 +f 2849/3829/274 2857/3836/274 2856/3841/274 +f 2844/3843/273 2852/3963/273 2851/3844/273 +f 2845/3826/274 2853/3833/274 2852/3846/274 +f 2846/3848/275 2854/3849/275 2857/3836/275 +f 2847/3840/276 2855/3839/276 2854/3849/276 +f 2842/3850/275 2850/3851/275 2853/3833/275 +f 2843/3845/276 2851/3844/276 2850/3851/276 +f 2859/3852/272 2861/3863/272 2860/3853/272 +f 2864/3855/271 2865/3964/271 2862/3856/271 +f 2860/3853/274 2867/3876/274 2866/3858/274 +f 2861/3859/275 2865/3965/275 2864/3860/275 +f 2859/3852/274 2862/3966/274 2865/3862/274 +f 2858/3864/273 2863/3871/273 2862/3865/273 +f 2869/3867/275 2873/3967/275 2871/3868/275 +f 2864/3860/274 2869/3867/274 2867/3869/274 +f 2858/3864/274 2866/3877/274 2868/3870/274 +f 2863/3857/274 2868/3879/274 2869/3872/274 +f 2871/3873/276 2873/3968/276 2872/3874/276 +f 2867/3876/272 2871/3873/272 2870/3875/272 +f 2866/3877/273 2870/3969/273 2872/3878/273 +f 2868/3879/271 2872/3970/271 2873/3880/271 +f 2879/3881/271 2875/3971/271 2874/3882/271 +f 2881/3884/273 2877/3972/273 2875/3885/273 +f 2880/3887/272 2876/3890/272 2877/3888/272 +f 2876/3890/276 2874/3973/276 2875/3891/276 +f 2884/3892/274 2879/3881/274 2878/3883/274 +f 2889/3894/274 2881/3884/274 2879/3886/274 +f 2883/3896/274 2878/3899/274 2880/3897/274 +f 2878/3899/275 2874/3974/275 2876/3900/275 +f 2889/3894/273 2884/3895/273 2885/3901/273 +f 2888/3903/274 2885/3975/274 2882/3904/274 +f 2886/3906/275 2882/3976/275 2883/3896/275 +f 2887/3907/274 2880/3887/274 2881/3889/274 +f 2883/3893/271 2882/3977/271 2885/3909/271 +f 2888/3903/272 2886/3905/272 2887/3907/272 +f 2903/3910/271 2902/3919/271 2894/3911/271 +f 2901/3913/273 2905/3978/273 2897/3914/273 +f 2890/3916/272 2898/3979/272 2899/3917/272 +f 2902/3919/275 2898/3979/275 2890/3916/275 +f 2904/3920/275 2900/3980/275 2892/3921/275 +f 2905/3923/271 2904/3920/271 2896/3922/271 +f 2892/3921/272 2900/3980/272 2901/3913/272 +f 2899/3917/273 2903/3981/273 2895/3925/273 +f 2907/3926/274 2906/3933/274 2908/3927/274 +f 2912/3929/276 2913/3932/276 2910/3930/276 +f 2907/3926/272 2910/3930/272 2913/3932/272 +f 2913/3934/272 2921/3951/272 2925/3935/272 +f 2908/3927/271 2912/3941/271 2911/3937/271 +f 2911/3938/271 2919/3982/271 2923/3939/271 +f 2917/3936/277 2916/3956/277 2908/3927/277 +f 2915/3940/278 2914/3952/278 2907/3926/278 +f 2920/3946/276 2924/3959/276 2925/3935/276 +f 2918/3948/276 2922/3955/276 2923/3939/276 +f 2912/3950/275 2920/3983/275 2921/3951/275 +f 2914/3952/272 2922/3955/272 2918/3953/272 +f 2915/3940/275 2923/3939/275 2922/3955/275 +f 2916/3956/271 2924/3959/271 2920/3957/271 +f 2917/3936/273 2925/3935/273 2924/3959/273 +f 2910/3954/273 2918/3953/273 2919/3960/273 o Micro_Rope v -0.187500 5.250000 1.375000 v -0.275888 5.213388 1.375000 @@ -6556,38 +10399,38 @@ vn -0.7071 -0.7071 0.0000 vn 0.0000 -1.0000 0.0000 vn -1.0000 0.0000 0.0000 s 1 -f 2472/779/277 2465/780/278 2464/781/277 -f 2479/782/279 2464/781/277 2471/783/279 -f 2477/784/280 2470/785/281 2469/786/280 -f 2475/787/282 2468/788/283 2467/789/282 -f 2473/790/278 2466/791/284 2465/780/278 -f 2478/792/281 2471/783/279 2470/785/281 -f 2476/793/283 2469/786/280 2468/794/283 -f 2474/795/284 2467/789/282 2466/791/284 -f 2488/796/277 2481/797/278 2480/798/277 -f 2495/799/279 2480/798/277 2487/800/279 -f 2493/801/280 2486/802/281 2485/803/280 -f 2491/804/282 2484/805/283 2483/806/282 -f 2489/807/278 2482/808/284 2481/797/278 -f 2494/809/281 2487/800/279 2486/802/281 -f 2492/810/283 2485/803/280 2484/811/283 -f 2490/812/284 2483/806/282 2482/808/284 -f 2472/779/277 2473/790/278 2465/780/278 -f 2479/782/279 2472/779/277 2464/781/277 -f 2477/784/280 2478/792/281 2470/785/281 -f 2475/787/282 2476/813/283 2468/788/283 -f 2473/790/278 2474/795/284 2466/791/284 -f 2478/792/281 2479/782/279 2471/783/279 -f 2476/793/283 2477/784/280 2469/786/280 -f 2474/795/284 2475/787/282 2467/789/282 -f 2488/796/277 2489/807/278 2481/797/278 -f 2495/799/279 2488/796/277 2480/798/277 -f 2493/801/280 2494/809/281 2486/802/281 -f 2491/804/282 2492/814/283 2484/805/283 -f 2489/807/278 2490/812/284 2482/808/284 -f 2494/809/281 2495/799/279 2487/800/279 -f 2492/810/283 2493/801/280 2485/803/280 -f 2490/812/284 2491/804/282 2483/806/282 +f 2934/3984/279 2927/3985/280 2926/3986/279 +f 2941/3987/281 2926/3986/279 2933/3988/281 +f 2939/3989/282 2932/3990/283 2931/3991/282 +f 2937/3992/284 2930/3993/285 2929/3994/284 +f 2935/3995/280 2928/3996/286 2927/3985/280 +f 2940/3997/283 2933/3988/281 2932/3990/283 +f 2938/3998/285 2931/3991/282 2930/3999/285 +f 2936/4000/286 2929/3994/284 2928/3996/286 +f 2950/4001/279 2943/4002/280 2942/4003/279 +f 2957/4004/281 2942/4003/279 2949/4005/281 +f 2955/4006/282 2948/4007/283 2947/4008/282 +f 2953/4009/284 2946/4010/285 2945/4011/284 +f 2951/4012/280 2944/4013/286 2943/4002/280 +f 2956/4014/283 2949/4005/281 2948/4007/283 +f 2954/4015/285 2947/4008/282 2946/4016/285 +f 2952/4017/286 2945/4011/284 2944/4013/286 +f 2934/3984/279 2935/3995/280 2927/3985/280 +f 2941/3987/281 2934/3984/279 2926/3986/279 +f 2939/3989/282 2940/3997/283 2932/3990/283 +f 2937/3992/284 2938/4018/285 2930/3993/285 +f 2935/3995/280 2936/4000/286 2928/3996/286 +f 2940/3997/283 2941/3987/281 2933/3988/281 +f 2938/3998/285 2939/3989/282 2931/3991/282 +f 2936/4000/286 2937/3992/284 2929/3994/284 +f 2950/4001/279 2951/4012/280 2943/4002/280 +f 2957/4004/281 2950/4001/279 2942/4003/279 +f 2955/4006/282 2956/4014/283 2948/4007/283 +f 2953/4009/284 2954/4019/285 2946/4010/285 +f 2951/4012/280 2952/4017/286 2944/4013/286 +f 2956/4014/283 2957/4004/281 2949/4005/281 +f 2954/4015/285 2955/4006/282 2947/4008/282 +f 2952/4017/286 2953/4009/284 2945/4011/284 o Micro_Pivot v -0.125000 1.250000 -1.375000 v 0.125000 1.250000 -1.375000 @@ -6633,24 +10476,24 @@ vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 2502/815/285 2500/816/285 2501/817/285 -f 2499/818/286 2502/819/286 2497/820/286 -f 2496/821/287 2500/816/287 2498/822/287 -f 2498/822/288 2503/823/288 2499/824/288 -f 2497/820/289 2501/825/289 2496/821/289 -f 2506/826/288 2511/827/288 2507/828/288 -f 2505/829/289 2509/830/289 2504/831/289 -f 2507/832/286 2510/833/286 2505/829/286 -f 2504/831/287 2508/834/287 2506/826/287 -f 2502/815/285 2503/823/285 2500/816/285 -f 2499/818/286 2503/835/286 2502/819/286 -f 2496/821/287 2501/825/287 2500/816/287 -f 2498/822/288 2500/816/288 2503/823/288 -f 2497/820/289 2502/819/289 2501/825/289 -f 2506/826/288 2508/834/288 2511/827/288 -f 2505/829/289 2510/833/289 2509/830/289 -f 2507/832/286 2511/836/286 2510/833/286 -f 2504/831/287 2509/830/287 2508/834/287 +f 2964/4020/287 2962/4021/287 2963/4022/287 +f 2961/4023/288 2964/4024/288 2959/4025/288 +f 2958/4026/289 2962/4021/289 2960/4027/289 +f 2960/4027/290 2965/4028/290 2961/4029/290 +f 2959/4025/291 2963/4030/291 2958/4026/291 +f 2968/4031/290 2973/4032/290 2969/4033/290 +f 2967/4034/291 2971/4035/291 2966/4036/291 +f 2969/4037/288 2972/4038/288 2967/4034/288 +f 2966/4036/289 2970/4039/289 2968/4031/289 +f 2964/4020/287 2965/4028/287 2962/4021/287 +f 2961/4023/288 2965/4040/288 2964/4024/288 +f 2958/4026/289 2963/4030/289 2962/4021/289 +f 2960/4027/290 2962/4021/290 2965/4028/290 +f 2959/4025/291 2964/4024/291 2963/4030/291 +f 2968/4031/290 2970/4039/290 2973/4032/290 +f 2967/4034/291 2972/4038/291 2971/4035/291 +f 2969/4037/288 2973/4041/288 2972/4038/288 +f 2966/4036/289 2971/4035/289 2970/4039/289 o Micro_Erector v -0.125000 3.250000 -1.625000 v -0.125000 3.250000 -1.375000 @@ -6868,114 +10711,114 @@ vn 0.7071 0.0000 0.7071 vn -0.7071 0.0000 0.7071 vn 0.7071 0.0000 -0.7071 s off -f 2512/837/290 2514/838/290 2513/839/290 -f 2518/840/291 2516/841/291 2517/842/291 -f 2512/837/292 2519/843/292 2515/844/292 -f 2514/845/293 2517/846/293 2513/847/293 -f 2514/848/294 2519/843/294 2518/849/294 -f 2513/847/295 2516/841/295 2512/837/295 -f 2538/850/290 2546/851/290 2539/852/290 -f 2538/853/296 2524/854/296 2526/855/296 -f 2521/856/294 2527/857/294 2523/858/294 -f 2520/859/297 2525/860/297 2521/861/297 -f 2522/862/295 2524/854/295 2520/863/295 -f 2523/864/290 2526/865/290 2522/866/290 -f 2532/867/298 2535/868/298 2533/869/298 -f 2530/870/290 2535/871/290 2534/872/290 -f 2529/873/294 2535/868/294 2531/874/294 -f 2528/875/297 2533/869/297 2529/873/297 -f 2530/876/295 2532/867/295 2528/877/295 -f 2537/878/297 2524/879/297 2536/880/297 -f 2540/881/299 2543/882/299 2541/883/299 -f 2539/852/290 2542/884/290 2538/850/290 -f 2537/885/294 2543/882/294 2539/886/294 -f 2537/878/297 2540/881/297 2541/887/297 -f 2538/853/295 2540/881/295 2536/880/295 -f 2544/888/293 2547/889/293 2545/890/293 -f 2527/891/290 2546/851/290 2526/865/290 -f 2546/892/298 2537/885/298 2539/886/298 -f 2524/879/297 2545/890/297 2525/860/297 -f 2545/893/299 2530/876/299 2528/877/299 -f 2529/873/297 2545/890/297 2528/875/297 -f 2529/873/300 2527/857/300 2525/894/300 -f 2547/895/290 2531/896/290 2530/870/290 -f 2549/897/294 2550/898/294 2548/899/294 -f 2554/900/294 2553/901/294 2552/902/294 -f 2574/903/296 2560/904/296 2562/905/296 -f 2557/906/294 2563/907/294 2559/908/294 -f 2556/909/297 2561/910/297 2557/911/297 -f 2558/912/295 2560/904/295 2556/913/295 -f 2568/914/298 2571/915/298 2569/916/298 -f 2565/917/294 2571/915/294 2567/918/294 -f 2564/919/297 2569/916/297 2565/917/297 -f 2566/920/295 2568/914/295 2564/921/295 -f 2573/922/297 2560/923/297 2572/924/297 -f 2576/925/299 2579/926/299 2577/927/299 -f 2573/928/294 2579/926/294 2575/929/294 -f 2573/922/297 2576/925/297 2577/930/297 -f 2574/903/295 2576/925/295 2572/924/295 -f 2580/931/293 2583/932/293 2581/933/293 -f 2582/934/298 2573/928/298 2575/929/298 -f 2560/923/297 2581/933/297 2561/910/297 -f 2581/935/299 2566/920/299 2564/921/299 -f 2565/917/297 2581/933/297 2564/919/297 -f 2565/917/300 2563/907/300 2561/936/300 -f 2586/937/295 2585/938/295 2584/939/295 -f 2589/940/295 2590/941/295 2588/942/295 -f 2512/837/290 2515/844/290 2514/838/290 -f 2518/840/291 2519/843/291 2516/841/291 -f 2512/837/292 2516/841/292 2519/843/292 -f 2514/845/293 2518/943/293 2517/846/293 -f 2514/848/294 2515/844/294 2519/843/294 -f 2513/847/295 2517/846/295 2516/841/295 -f 2538/850/290 2526/865/290 2546/851/290 -f 2538/853/296 2536/880/296 2524/854/296 -f 2521/856/294 2525/894/294 2527/857/294 -f 2520/859/297 2524/879/297 2525/860/297 -f 2522/862/295 2526/855/295 2524/854/295 -f 2523/864/290 2527/891/290 2526/865/290 -f 2532/867/298 2534/944/298 2535/868/298 -f 2530/870/290 2531/896/290 2535/871/290 -f 2529/873/294 2533/869/294 2535/868/294 -f 2528/875/297 2532/945/297 2533/869/297 -f 2530/876/295 2534/944/295 2532/867/295 -f 2537/878/297 2544/888/297 2524/879/297 -f 2540/881/299 2542/946/299 2543/882/299 -f 2539/852/290 2543/947/290 2542/884/290 -f 2537/885/294 2541/883/294 2543/882/294 -f 2537/878/297 2536/880/297 2540/881/297 -f 2538/853/295 2542/946/295 2540/881/295 -f 2544/888/293 2546/948/293 2547/889/293 -f 2527/891/290 2547/895/290 2546/851/290 -f 2546/892/298 2544/949/298 2537/885/298 -f 2524/879/297 2544/888/297 2545/890/297 -f 2545/893/299 2547/950/299 2530/876/299 -f 2529/873/297 2525/860/297 2545/890/297 -f 2529/873/300 2531/874/300 2527/857/300 -f 2547/895/290 2527/891/290 2531/896/290 -f 2549/897/294 2551/951/294 2550/898/294 -f 2554/900/294 2555/952/294 2553/901/294 -f 2574/903/296 2572/924/296 2560/904/296 -f 2557/906/294 2561/936/294 2563/907/294 -f 2556/909/297 2560/923/297 2561/910/297 -f 2558/912/295 2562/905/295 2560/904/295 -f 2568/914/298 2570/953/298 2571/915/298 -f 2565/917/294 2569/916/294 2571/915/294 -f 2564/919/297 2568/954/297 2569/916/297 -f 2566/920/295 2570/953/295 2568/914/295 -f 2573/922/297 2580/931/297 2560/923/297 -f 2576/925/299 2578/955/299 2579/926/299 -f 2573/928/294 2577/927/294 2579/926/294 -f 2573/922/297 2572/924/297 2576/925/297 -f 2574/903/295 2578/955/295 2576/925/295 -f 2580/931/293 2582/956/293 2583/932/293 -f 2582/934/298 2580/957/298 2573/928/298 -f 2560/923/297 2580/931/297 2581/933/297 -f 2581/935/299 2583/958/299 2566/920/299 -f 2565/917/297 2561/910/297 2581/933/297 -f 2565/917/300 2567/918/300 2563/907/300 -f 2586/937/295 2587/959/295 2585/938/295 -f 2589/940/295 2591/960/295 2590/941/295 +f 2974/4042/292 2976/4043/292 2975/4044/292 +f 2980/4045/293 2978/4046/293 2979/4047/293 +f 2974/4042/294 2981/4048/294 2977/4049/294 +f 2976/4050/295 2979/4051/295 2975/4052/295 +f 2976/4053/296 2981/4048/296 2980/4054/296 +f 2975/4052/297 2978/4046/297 2974/4042/297 +f 3000/4055/292 3008/4056/292 3001/4057/292 +f 3000/4058/298 2986/4059/298 2988/4060/298 +f 2983/4061/296 2989/4062/296 2985/4063/296 +f 2982/4064/299 2987/4065/299 2983/4066/299 +f 2984/4067/297 2986/4059/297 2982/4068/297 +f 2985/4069/292 2988/4070/292 2984/4071/292 +f 2994/4072/300 2997/4073/300 2995/4074/300 +f 2992/4075/292 2997/4076/292 2996/4077/292 +f 2991/4078/296 2997/4073/296 2993/4079/296 +f 2990/4080/299 2995/4074/299 2991/4078/299 +f 2992/4081/297 2994/4072/297 2990/4082/297 +f 2999/4083/299 2986/4084/299 2998/4085/299 +f 3002/4086/301 3005/4087/301 3003/4088/301 +f 3001/4057/292 3004/4089/292 3000/4055/292 +f 2999/4090/296 3005/4087/296 3001/4091/296 +f 2999/4083/299 3002/4086/299 3003/4092/299 +f 3000/4058/297 3002/4086/297 2998/4085/297 +f 3006/4093/295 3009/4094/295 3007/4095/295 +f 2989/4096/292 3008/4056/292 2988/4070/292 +f 3008/4097/300 2999/4090/300 3001/4091/300 +f 2986/4084/299 3007/4095/299 2987/4065/299 +f 3007/4098/301 2992/4081/301 2990/4082/301 +f 2991/4078/299 3007/4095/299 2990/4080/299 +f 2991/4078/302 2989/4062/302 2987/4099/302 +f 3009/4100/292 2993/4101/292 2992/4075/292 +f 3011/4102/296 3012/4103/296 3010/4104/296 +f 3016/4105/296 3015/4106/296 3014/4107/296 +f 3036/4108/298 3022/4109/298 3024/4110/298 +f 3019/4111/296 3025/4112/296 3021/4113/296 +f 3018/4114/299 3023/4115/299 3019/4116/299 +f 3020/4117/297 3022/4109/297 3018/4118/297 +f 3030/4119/300 3033/4120/300 3031/4121/300 +f 3027/4122/296 3033/4120/296 3029/4123/296 +f 3026/4124/299 3031/4121/299 3027/4122/299 +f 3028/4125/297 3030/4119/297 3026/4126/297 +f 3035/4127/299 3022/4128/299 3034/4129/299 +f 3038/4130/301 3041/4131/301 3039/4132/301 +f 3035/4133/296 3041/4131/296 3037/4134/296 +f 3035/4127/299 3038/4130/299 3039/4135/299 +f 3036/4108/297 3038/4130/297 3034/4129/297 +f 3042/4136/295 3045/4137/295 3043/4138/295 +f 3044/4139/300 3035/4133/300 3037/4134/300 +f 3022/4128/299 3043/4138/299 3023/4115/299 +f 3043/4140/301 3028/4125/301 3026/4126/301 +f 3027/4122/299 3043/4138/299 3026/4124/299 +f 3027/4122/302 3025/4112/302 3023/4141/302 +f 3048/4142/297 3047/4143/297 3046/4144/297 +f 3051/4145/297 3052/4146/297 3050/4147/297 +f 2974/4042/292 2977/4049/292 2976/4043/292 +f 2980/4045/293 2981/4048/293 2978/4046/293 +f 2974/4042/294 2978/4046/294 2981/4048/294 +f 2976/4050/295 2980/4148/295 2979/4051/295 +f 2976/4053/296 2977/4049/296 2981/4048/296 +f 2975/4052/297 2979/4051/297 2978/4046/297 +f 3000/4055/292 2988/4070/292 3008/4056/292 +f 3000/4058/298 2998/4085/298 2986/4059/298 +f 2983/4061/296 2987/4099/296 2989/4062/296 +f 2982/4064/299 2986/4084/299 2987/4065/299 +f 2984/4067/297 2988/4060/297 2986/4059/297 +f 2985/4069/292 2989/4096/292 2988/4070/292 +f 2994/4072/300 2996/4149/300 2997/4073/300 +f 2992/4075/292 2993/4101/292 2997/4076/292 +f 2991/4078/296 2995/4074/296 2997/4073/296 +f 2990/4080/299 2994/4150/299 2995/4074/299 +f 2992/4081/297 2996/4149/297 2994/4072/297 +f 2999/4083/299 3006/4093/299 2986/4084/299 +f 3002/4086/301 3004/4151/301 3005/4087/301 +f 3001/4057/292 3005/4152/292 3004/4089/292 +f 2999/4090/296 3003/4088/296 3005/4087/296 +f 2999/4083/299 2998/4085/299 3002/4086/299 +f 3000/4058/297 3004/4151/297 3002/4086/297 +f 3006/4093/295 3008/4153/295 3009/4094/295 +f 2989/4096/292 3009/4100/292 3008/4056/292 +f 3008/4097/300 3006/4154/300 2999/4090/300 +f 2986/4084/299 3006/4093/299 3007/4095/299 +f 3007/4098/301 3009/4155/301 2992/4081/301 +f 2991/4078/299 2987/4065/299 3007/4095/299 +f 2991/4078/302 2993/4079/302 2989/4062/302 +f 3009/4100/292 2989/4096/292 2993/4101/292 +f 3011/4102/296 3013/4156/296 3012/4103/296 +f 3016/4105/296 3017/4157/296 3015/4106/296 +f 3036/4108/298 3034/4129/298 3022/4109/298 +f 3019/4111/296 3023/4141/296 3025/4112/296 +f 3018/4114/299 3022/4128/299 3023/4115/299 +f 3020/4117/297 3024/4110/297 3022/4109/297 +f 3030/4119/300 3032/4158/300 3033/4120/300 +f 3027/4122/296 3031/4121/296 3033/4120/296 +f 3026/4124/299 3030/4159/299 3031/4121/299 +f 3028/4125/297 3032/4158/297 3030/4119/297 +f 3035/4127/299 3042/4136/299 3022/4128/299 +f 3038/4130/301 3040/4160/301 3041/4131/301 +f 3035/4133/296 3039/4132/296 3041/4131/296 +f 3035/4127/299 3034/4129/299 3038/4130/299 +f 3036/4108/297 3040/4160/297 3038/4130/297 +f 3042/4136/295 3044/4161/295 3045/4137/295 +f 3044/4139/300 3042/4162/300 3035/4133/300 +f 3022/4128/299 3042/4136/299 3043/4138/299 +f 3043/4140/301 3045/4163/301 3028/4125/301 +f 3027/4122/299 3023/4115/299 3043/4138/299 +f 3027/4122/302 3029/4123/302 3025/4112/302 +f 3048/4142/297 3049/4164/297 3047/4143/297 +f 3051/4145/297 3053/4165/297 3052/4146/297 o Micro_Pad v -1.250000 2.000000 1.250000 v 1.250000 2.000000 1.250000 @@ -7400,190 +11243,190 @@ vn 0.0000 -0.7071 0.7071 vn 0.7071 -0.7071 -0.0000 vn -0.0000 -0.7071 -0.7071 s off -f 2600/961/301 2594/962/301 2592/963/301 -f 2601/964/301 2592/963/301 2593/965/301 -f 2593/965/302 2599/966/302 2595/967/302 -f 2594/968/303 2597/969/303 2592/970/303 -f 2595/971/304 2596/972/304 2594/973/304 -f 2592/974/305 2598/975/305 2593/976/305 -f 2604/977/302 2602/978/302 2600/979/302 -f 2602/980/301 2595/967/301 2594/962/301 -f 2603/981/301 2593/965/301 2595/967/301 -f 2597/982/306 2605/983/306 2598/984/306 -f 2598/984/306 2607/985/306 2599/966/306 -f 2599/966/306 2606/986/306 2596/987/306 -f 2596/987/306 2604/988/306 2597/982/306 -f 2609/989/301 2610/990/301 2608/991/301 -f 2606/992/305 2603/993/305 2602/994/305 -f 2607/995/303 2601/996/303 2603/997/303 -f 2605/998/304 2600/999/304 2601/1000/304 -f 2613/1001/304 2615/1002/304 2620/1003/304 -f 2615/1004/303 2622/1005/303 2620/1006/303 -f 2612/1007/302 2616/1008/302 2621/1009/302 -f 2623/1010/307 2620/1006/307 2622/1005/307 -f 2621/1011/305 2619/1012/305 2617/1013/305 -f 2623/1014/305 2622/1015/305 2618/1016/305 -f 2622/1015/303 2624/1017/303 2618/1016/303 -f 2624/1018/308 2621/1011/308 2616/1019/308 -f 2631/1020/301 2629/1021/301 2630/1022/301 -f 2625/1023/303 2629/1021/303 2627/1024/303 -f 2627/1025/304 2632/1026/304 2628/1027/304 -f 2626/1028/305 2630/1022/305 2625/1029/305 -f 2628/1030/302 2631/1020/302 2626/1031/302 -f 2651/1032/301 2649/1033/301 2650/1034/301 -f 2655/1035/301 2653/1036/301 2654/1037/301 -f 2659/1038/301 2657/1039/301 2658/1040/301 -f 2663/1041/301 2661/1042/301 2662/1043/301 -f 2644/1044/302 2659/1038/302 2642/1045/302 -f 2635/1046/304 2652/1047/304 2636/1048/304 -f 2643/1049/304 2660/1050/304 2644/1044/304 -f 2637/1051/303 2653/1052/303 2639/1053/303 -f 2645/1054/303 2661/1055/303 2647/1056/303 -f 2638/1057/305 2654/1058/305 2637/1051/305 -f 2646/1059/305 2662/1060/305 2645/1054/305 -f 2640/1061/302 2655/1035/302 2638/1062/302 -f 2648/1063/302 2663/1041/302 2646/1064/302 -f 2639/1053/304 2656/1065/304 2640/1061/304 -f 2633/1066/303 2649/1067/303 2635/1046/303 -f 2647/1056/304 2664/1068/304 2648/1063/304 -f 2641/1069/303 2657/1070/303 2643/1049/303 -f 2634/1071/305 2650/1072/305 2633/1066/305 -f 2642/1073/305 2658/1074/305 2641/1069/305 -f 2636/1048/302 2651/1032/302 2634/1075/302 -f 2667/1076/305 2666/1077/305 2668/1078/305 -f 2671/1079/304 2670/1080/304 2669/1081/304 -f 2673/1082/302 2676/1083/302 2674/1084/302 -f 2680/1085/303 2677/1086/303 2678/1087/303 -f 2691/1088/301 2689/1089/301 2690/1090/301 -f 2695/1091/301 2693/1092/301 2694/1093/301 -f 2684/1094/302 2691/1088/302 2682/1095/302 -f 2681/1096/303 2689/1097/303 2683/1098/303 -f 2687/1099/304 2696/1100/304 2688/1101/304 -f 2686/1102/305 2694/1103/305 2685/1104/305 -f 2683/1098/304 2692/1105/304 2684/1094/304 -f 2682/1106/305 2690/1107/305 2681/1096/305 -f 2688/1101/302 2695/1091/302 2686/1108/302 -f 2685/1104/303 2693/1109/303 2687/1099/303 -f 2698/1110/305 2700/1111/305 2705/1112/305 -f 2700/1113/302 2707/1114/302 2705/1115/302 -f 2697/1116/303 2701/1117/303 2706/1118/303 -f 2699/1119/309 2707/1114/309 2708/1120/309 -f 2706/1121/304 2704/1122/304 2702/1123/304 -f 2708/1124/304 2707/1125/304 2703/1126/304 -f 2707/1125/302 2709/1127/302 2703/1126/302 -f 2709/1128/310 2706/1121/310 2701/1129/310 -f 2711/1130/303 2713/1131/303 2718/1132/303 -f 2713/1133/305 2720/1134/305 2718/1135/305 -f 2710/1136/304 2714/1137/304 2719/1138/304 -f 2712/1139/308 2720/1134/308 2721/1140/308 -f 2719/1141/302 2717/1142/302 2715/1143/302 -f 2721/1144/302 2720/1145/302 2716/1146/302 -f 2720/1145/305 2722/1147/305 2716/1146/305 -f 2722/1148/309 2719/1141/309 2714/1149/309 -f 2724/1150/302 2726/1151/302 2731/1152/302 -f 2726/1153/304 2733/1154/304 2731/1155/304 -f 2723/1156/305 2727/1157/305 2732/1158/305 -f 2734/1159/310 2731/1155/310 2733/1154/310 -f 2732/1160/303 2730/1161/303 2728/1162/303 -f 2734/1163/303 2733/1164/303 2729/1165/303 -f 2733/1164/304 2735/1166/304 2729/1165/304 -f 2735/1167/307 2732/1160/307 2727/1168/307 -f 2737/1169/304 2738/1170/304 2739/1171/304 -f 2741/1172/305 2742/1173/305 2740/1174/305 -f 2747/1175/303 2744/1176/303 2745/1177/303 -f 2748/1178/302 2751/1179/302 2749/1180/302 -f 2600/961/301 2602/980/301 2594/962/301 -f 2601/964/301 2600/961/301 2592/963/301 -f 2593/965/302 2598/984/302 2599/966/302 -f 2594/968/303 2596/1181/303 2597/969/303 -f 2595/971/304 2599/1182/304 2596/972/304 -f 2592/974/305 2597/1183/305 2598/975/305 -f 2604/977/302 2606/1184/302 2602/978/302 -f 2602/980/301 2603/981/301 2595/967/301 -f 2603/981/301 2601/964/301 2593/965/301 -f 2597/982/306 2604/988/306 2605/983/306 -f 2598/984/306 2605/983/306 2607/985/306 -f 2599/966/306 2607/985/306 2606/986/306 -f 2596/987/306 2606/986/306 2604/988/306 -f 2609/989/301 2611/1185/301 2610/990/301 -f 2606/992/305 2607/1186/305 2603/993/305 -f 2607/995/303 2605/1187/303 2601/996/303 -f 2605/998/304 2604/1188/304 2600/999/304 -f 2614/1189/304 2612/1007/304 2620/1003/304 -f 2612/1007/304 2613/1001/304 2620/1003/304 -f 2615/1004/303 2619/1012/303 2622/1005/303 -f 2617/1190/302 2613/1001/302 2621/1009/302 -f 2613/1001/302 2612/1007/302 2621/1009/302 -f 2623/1010/307 2614/1191/307 2620/1006/307 -f 2621/1011/305 2622/1005/305 2619/1012/305 -f 2624/1018/308 2622/1005/308 2621/1011/308 -f 2631/1020/301 2632/1026/301 2629/1021/301 -f 2625/1023/303 2630/1022/303 2629/1021/303 -f 2627/1025/304 2629/1021/304 2632/1026/304 -f 2626/1028/305 2631/1020/305 2630/1022/305 -f 2628/1030/302 2632/1026/302 2631/1020/302 -f 2651/1032/301 2652/1047/301 2649/1033/301 -f 2655/1035/301 2656/1065/301 2653/1036/301 -f 2659/1038/301 2660/1050/301 2657/1039/301 -f 2663/1041/301 2664/1068/301 2661/1042/301 -f 2644/1044/302 2660/1050/302 2659/1038/302 -f 2635/1046/304 2649/1067/304 2652/1047/304 -f 2643/1049/304 2657/1070/304 2660/1050/304 -f 2637/1051/303 2654/1058/303 2653/1052/303 -f 2645/1054/303 2662/1060/303 2661/1055/303 -f 2638/1057/305 2655/1192/305 2654/1058/305 -f 2646/1059/305 2663/1193/305 2662/1060/305 -f 2640/1061/302 2656/1065/302 2655/1035/302 -f 2648/1063/302 2664/1068/302 2663/1041/302 -f 2639/1053/304 2653/1052/304 2656/1065/304 -f 2633/1066/303 2650/1072/303 2649/1067/303 -f 2647/1056/304 2661/1055/304 2664/1068/304 -f 2641/1069/303 2658/1074/303 2657/1070/303 -f 2634/1071/305 2651/1194/305 2650/1072/305 -f 2642/1073/305 2659/1195/305 2658/1074/305 -f 2636/1048/302 2652/1047/302 2651/1032/302 -f 2667/1076/305 2665/1196/305 2666/1077/305 -f 2671/1079/304 2672/1197/304 2670/1080/304 -f 2673/1082/302 2675/1198/302 2676/1083/302 -f 2680/1085/303 2679/1199/303 2677/1086/303 -f 2691/1088/301 2692/1105/301 2689/1089/301 -f 2695/1091/301 2696/1100/301 2693/1092/301 -f 2684/1094/302 2692/1105/302 2691/1088/302 -f 2681/1096/303 2690/1107/303 2689/1097/303 -f 2687/1099/304 2693/1109/304 2696/1100/304 -f 2686/1102/305 2695/1200/305 2694/1103/305 -f 2683/1098/304 2689/1097/304 2692/1105/304 -f 2682/1106/305 2691/1201/305 2690/1107/305 -f 2688/1101/302 2696/1100/302 2695/1091/302 -f 2685/1104/303 2694/1103/303 2693/1109/303 -f 2699/1202/305 2697/1116/305 2705/1112/305 -f 2697/1116/305 2698/1110/305 2705/1112/305 -f 2700/1113/302 2704/1122/302 2707/1114/302 -f 2702/1203/303 2698/1110/303 2706/1118/303 -f 2698/1110/303 2697/1116/303 2706/1118/303 -f 2699/1119/309 2705/1115/309 2707/1114/309 -f 2706/1121/304 2707/1114/304 2704/1122/304 -f 2709/1128/310 2707/1114/310 2706/1121/310 -f 2712/1204/303 2710/1136/303 2718/1132/303 -f 2710/1136/303 2711/1130/303 2718/1132/303 -f 2713/1133/305 2717/1142/305 2720/1134/305 -f 2715/1205/304 2711/1130/304 2719/1138/304 -f 2711/1130/304 2710/1136/304 2719/1138/304 -f 2712/1139/308 2718/1135/308 2720/1134/308 -f 2719/1141/302 2720/1134/302 2717/1142/302 -f 2722/1148/309 2720/1134/309 2719/1141/309 -f 2725/1206/302 2723/1156/302 2731/1152/302 -f 2723/1156/302 2724/1150/302 2731/1152/302 -f 2726/1153/304 2730/1161/304 2733/1154/304 -f 2728/1207/305 2724/1150/305 2732/1158/305 -f 2724/1150/305 2723/1156/305 2732/1158/305 -f 2734/1159/310 2725/1208/310 2731/1155/310 -f 2732/1160/303 2733/1154/303 2730/1161/303 -f 2735/1167/307 2733/1154/307 2732/1160/307 -f 2737/1169/304 2736/1209/304 2738/1170/304 -f 2741/1172/305 2743/1210/305 2742/1173/305 -f 2747/1175/303 2746/1211/303 2744/1176/303 -f 2748/1178/302 2750/1212/302 2751/1179/302 +f 3062/4166/303 3056/4167/303 3054/4168/303 +f 3063/4169/303 3054/4168/303 3055/4170/303 +f 3055/4170/304 3061/4171/304 3057/4172/304 +f 3056/4173/305 3059/4174/305 3054/4175/305 +f 3057/4176/306 3058/4177/306 3056/4178/306 +f 3054/4179/307 3060/4180/307 3055/4181/307 +f 3066/4182/304 3064/4183/304 3062/4184/304 +f 3064/4185/303 3057/4172/303 3056/4167/303 +f 3065/4186/303 3055/4170/303 3057/4172/303 +f 3059/4187/308 3067/4188/308 3060/4189/308 +f 3060/4189/308 3069/4190/308 3061/4171/308 +f 3061/4171/308 3068/4191/308 3058/4192/308 +f 3058/4192/308 3066/4193/308 3059/4187/308 +f 3071/4194/303 3072/4195/303 3070/4196/303 +f 3068/4197/307 3065/4198/307 3064/4199/307 +f 3069/4200/305 3063/4201/305 3065/4202/305 +f 3067/4203/306 3062/4204/306 3063/4205/306 +f 3075/4206/306 3077/4207/306 3082/4208/306 +f 3077/4209/305 3084/4210/305 3082/4211/305 +f 3074/4212/304 3078/4213/304 3083/4214/304 +f 3085/4215/309 3082/4211/309 3084/4210/309 +f 3083/4216/307 3081/4217/307 3079/4218/307 +f 3085/4219/307 3084/4220/307 3080/4221/307 +f 3084/4220/305 3086/4222/305 3080/4221/305 +f 3086/4223/310 3083/4216/310 3078/4224/310 +f 3093/4225/303 3091/4226/303 3092/4227/303 +f 3087/4228/305 3091/4226/305 3089/4229/305 +f 3089/4230/306 3094/4231/306 3090/4232/306 +f 3088/4233/307 3092/4227/307 3087/4234/307 +f 3090/4235/304 3093/4225/304 3088/4236/304 +f 3113/4237/303 3111/4238/303 3112/4239/303 +f 3117/4240/303 3115/4241/303 3116/4242/303 +f 3121/4243/303 3119/4244/303 3120/4245/303 +f 3125/4246/303 3123/4247/303 3124/4248/303 +f 3106/4249/304 3121/4243/304 3104/4250/304 +f 3097/4251/306 3114/4252/306 3098/4253/306 +f 3105/4254/306 3122/4255/306 3106/4249/306 +f 3099/4256/305 3115/4257/305 3101/4258/305 +f 3107/4259/305 3123/4260/305 3109/4261/305 +f 3100/4262/307 3116/4263/307 3099/4256/307 +f 3108/4264/307 3124/4265/307 3107/4259/307 +f 3102/4266/304 3117/4240/304 3100/4267/304 +f 3110/4268/304 3125/4246/304 3108/4269/304 +f 3101/4258/306 3118/4270/306 3102/4266/306 +f 3095/4271/305 3111/4272/305 3097/4251/305 +f 3109/4261/306 3126/4273/306 3110/4268/306 +f 3103/4274/305 3119/4275/305 3105/4254/305 +f 3096/4276/307 3112/4277/307 3095/4271/307 +f 3104/4278/307 3120/4279/307 3103/4274/307 +f 3098/4253/304 3113/4237/304 3096/4280/304 +f 3129/4281/307 3128/4282/307 3130/4283/307 +f 3133/4284/306 3132/4285/306 3131/4286/306 +f 3135/4287/304 3138/4288/304 3136/4289/304 +f 3142/4290/305 3139/4291/305 3140/4292/305 +f 3153/4293/303 3151/4294/303 3152/4295/303 +f 3157/4296/303 3155/4297/303 3156/4298/303 +f 3146/4299/304 3153/4293/304 3144/4300/304 +f 3143/4301/305 3151/4302/305 3145/4303/305 +f 3149/4304/306 3158/4305/306 3150/4306/306 +f 3148/4307/307 3156/4308/307 3147/4309/307 +f 3145/4303/306 3154/4310/306 3146/4299/306 +f 3144/4311/307 3152/4312/307 3143/4301/307 +f 3150/4306/304 3157/4296/304 3148/4313/304 +f 3147/4309/305 3155/4314/305 3149/4304/305 +f 3160/4315/307 3162/4316/307 3167/4317/307 +f 3162/4318/304 3169/4319/304 3167/4320/304 +f 3159/4321/305 3163/4322/305 3168/4323/305 +f 3161/4324/311 3169/4319/311 3170/4325/311 +f 3168/4326/306 3166/4327/306 3164/4328/306 +f 3170/4329/306 3169/4330/306 3165/4331/306 +f 3169/4330/304 3171/4332/304 3165/4331/304 +f 3171/4333/312 3168/4326/312 3163/4334/312 +f 3173/4335/305 3175/4336/305 3180/4337/305 +f 3175/4338/307 3182/4339/307 3180/4340/307 +f 3172/4341/306 3176/4342/306 3181/4343/306 +f 3174/4344/310 3182/4339/310 3183/4345/310 +f 3181/4346/304 3179/4347/304 3177/4348/304 +f 3183/4349/304 3182/4350/304 3178/4351/304 +f 3182/4350/307 3184/4352/307 3178/4351/307 +f 3184/4353/311 3181/4346/311 3176/4354/311 +f 3186/4355/304 3188/4356/304 3193/4357/304 +f 3188/4358/306 3195/4359/306 3193/4360/306 +f 3185/4361/307 3189/4362/307 3194/4363/307 +f 3196/4364/312 3193/4360/312 3195/4359/312 +f 3194/4365/305 3192/4366/305 3190/4367/305 +f 3196/4368/305 3195/4369/305 3191/4370/305 +f 3195/4369/306 3197/4371/306 3191/4370/306 +f 3197/4372/309 3194/4365/309 3189/4373/309 +f 3199/4374/306 3200/4375/306 3201/4376/306 +f 3203/4377/307 3204/4378/307 3202/4379/307 +f 3209/4380/305 3206/4381/305 3207/4382/305 +f 3210/4383/304 3213/4384/304 3211/4385/304 +f 3062/4166/303 3064/4185/303 3056/4167/303 +f 3063/4169/303 3062/4166/303 3054/4168/303 +f 3055/4170/304 3060/4189/304 3061/4171/304 +f 3056/4173/305 3058/4386/305 3059/4174/305 +f 3057/4176/306 3061/4387/306 3058/4177/306 +f 3054/4179/307 3059/4388/307 3060/4180/307 +f 3066/4182/304 3068/4389/304 3064/4183/304 +f 3064/4185/303 3065/4186/303 3057/4172/303 +f 3065/4186/303 3063/4169/303 3055/4170/303 +f 3059/4187/308 3066/4193/308 3067/4188/308 +f 3060/4189/308 3067/4188/308 3069/4190/308 +f 3061/4171/308 3069/4190/308 3068/4191/308 +f 3058/4192/308 3068/4191/308 3066/4193/308 +f 3071/4194/303 3073/4390/303 3072/4195/303 +f 3068/4197/307 3069/4391/307 3065/4198/307 +f 3069/4200/305 3067/4392/305 3063/4201/305 +f 3067/4203/306 3066/4393/306 3062/4204/306 +f 3076/4394/306 3074/4212/306 3082/4208/306 +f 3074/4212/306 3075/4206/306 3082/4208/306 +f 3077/4209/305 3081/4217/305 3084/4210/305 +f 3079/4395/304 3075/4206/304 3083/4214/304 +f 3075/4206/304 3074/4212/304 3083/4214/304 +f 3085/4215/309 3076/4396/309 3082/4211/309 +f 3083/4216/307 3084/4210/307 3081/4217/307 +f 3086/4223/310 3084/4210/310 3083/4216/310 +f 3093/4225/303 3094/4231/303 3091/4226/303 +f 3087/4228/305 3092/4227/305 3091/4226/305 +f 3089/4230/306 3091/4226/306 3094/4231/306 +f 3088/4233/307 3093/4225/307 3092/4227/307 +f 3090/4235/304 3094/4231/304 3093/4225/304 +f 3113/4237/303 3114/4252/303 3111/4238/303 +f 3117/4240/303 3118/4270/303 3115/4241/303 +f 3121/4243/303 3122/4255/303 3119/4244/303 +f 3125/4246/303 3126/4273/303 3123/4247/303 +f 3106/4249/304 3122/4255/304 3121/4243/304 +f 3097/4251/306 3111/4272/306 3114/4252/306 +f 3105/4254/306 3119/4275/306 3122/4255/306 +f 3099/4256/305 3116/4263/305 3115/4257/305 +f 3107/4259/305 3124/4265/305 3123/4260/305 +f 3100/4262/307 3117/4397/307 3116/4263/307 +f 3108/4264/307 3125/4398/307 3124/4265/307 +f 3102/4266/304 3118/4270/304 3117/4240/304 +f 3110/4268/304 3126/4273/304 3125/4246/304 +f 3101/4258/306 3115/4257/306 3118/4270/306 +f 3095/4271/305 3112/4277/305 3111/4272/305 +f 3109/4261/306 3123/4260/306 3126/4273/306 +f 3103/4274/305 3120/4279/305 3119/4275/305 +f 3096/4276/307 3113/4399/307 3112/4277/307 +f 3104/4278/307 3121/4400/307 3120/4279/307 +f 3098/4253/304 3114/4252/304 3113/4237/304 +f 3129/4281/307 3127/4401/307 3128/4282/307 +f 3133/4284/306 3134/4402/306 3132/4285/306 +f 3135/4287/304 3137/4403/304 3138/4288/304 +f 3142/4290/305 3141/4404/305 3139/4291/305 +f 3153/4293/303 3154/4310/303 3151/4294/303 +f 3157/4296/303 3158/4305/303 3155/4297/303 +f 3146/4299/304 3154/4310/304 3153/4293/304 +f 3143/4301/305 3152/4312/305 3151/4302/305 +f 3149/4304/306 3155/4314/306 3158/4305/306 +f 3148/4307/307 3157/4405/307 3156/4308/307 +f 3145/4303/306 3151/4302/306 3154/4310/306 +f 3144/4311/307 3153/4406/307 3152/4312/307 +f 3150/4306/304 3158/4305/304 3157/4296/304 +f 3147/4309/305 3156/4308/305 3155/4314/305 +f 3161/4407/307 3159/4321/307 3167/4317/307 +f 3159/4321/307 3160/4315/307 3167/4317/307 +f 3162/4318/304 3166/4327/304 3169/4319/304 +f 3164/4408/305 3160/4315/305 3168/4323/305 +f 3160/4315/305 3159/4321/305 3168/4323/305 +f 3161/4324/311 3167/4320/311 3169/4319/311 +f 3168/4326/306 3169/4319/306 3166/4327/306 +f 3171/4333/312 3169/4319/312 3168/4326/312 +f 3174/4409/305 3172/4341/305 3180/4337/305 +f 3172/4341/305 3173/4335/305 3180/4337/305 +f 3175/4338/307 3179/4347/307 3182/4339/307 +f 3177/4410/306 3173/4335/306 3181/4343/306 +f 3173/4335/306 3172/4341/306 3181/4343/306 +f 3174/4344/310 3180/4340/310 3182/4339/310 +f 3181/4346/304 3182/4339/304 3179/4347/304 +f 3184/4353/311 3182/4339/311 3181/4346/311 +f 3187/4411/304 3185/4361/304 3193/4357/304 +f 3185/4361/304 3186/4355/304 3193/4357/304 +f 3188/4358/306 3192/4366/306 3195/4359/306 +f 3190/4412/307 3186/4355/307 3194/4363/307 +f 3186/4355/307 3185/4361/307 3194/4363/307 +f 3196/4364/312 3187/4413/312 3193/4360/312 +f 3194/4365/305 3195/4359/305 3192/4366/305 +f 3197/4372/309 3195/4359/309 3194/4365/309 +f 3199/4374/306 3198/4414/306 3200/4375/306 +f 3203/4377/307 3205/4415/307 3204/4378/307 +f 3209/4380/305 3208/4416/305 3206/4381/305 +f 3210/4383/304 3212/4417/304 3213/4384/304 o V2_Pad v -0.500000 2.000000 0.500000 v 0.500000 2.000000 0.500000 @@ -8638,457 +12481,457 @@ vn -0.9007 0.3762 -0.2172 vn -0.9007 0.4343 0.0000 vn -0.9007 0.3762 0.2172 s off -f 2757/1213/311 2758/1214/311 2756/1215/311 -f 2763/1216/312 2756/1215/312 2762/1217/312 -f 2759/1218/313 2760/1219/313 2758/1214/313 -f 2761/1220/314 2757/1213/314 2763/1221/314 -f 2756/1215/315 2760/1222/315 2762/1223/315 -f 2752/1224/311 2765/1225/311 2753/1226/311 -f 2753/1226/311 2767/1227/311 2754/1228/311 -f 2754/1228/311 2766/1229/311 2755/1230/311 -f 2755/1230/311 2764/1231/311 2752/1224/311 -f 2770/1232/311 2768/1233/311 2769/1234/311 -f 2778/1235/316 2775/1236/316 2773/1237/316 -f 2779/1238/316 2773/1237/316 2772/1239/316 -f 2776/1240/316 2772/1239/316 2774/1241/316 -f 2777/1242/316 2774/1241/316 2775/1236/316 -f 2754/1243/315 2773/1244/315 2753/1245/315 -f 2765/1225/314 2779/1238/314 2767/1227/314 -f 2766/1246/315 2777/1247/315 2764/1248/315 -f 2753/1249/313 2775/1250/313 2752/1251/313 -f 2752/1252/314 2774/1253/314 2755/1254/314 -f 2767/1255/313 2776/1256/313 2766/1257/313 -f 2764/1258/312 2778/1259/312 2765/1260/312 -f 2755/1261/312 2772/1262/312 2754/1263/312 -f 2782/1264/313 2787/1265/313 2783/1266/313 -f 2781/1267/312 2784/1268/312 2780/1269/312 -f 2783/1270/314 2785/1271/314 2781/1272/314 -f 2780/1273/315 2786/1274/315 2782/1275/315 -f 2799/1276/314 2801/1277/314 2797/1278/314 -f 2793/1279/311 2794/1280/311 2792/1281/311 -f 2791/1282/314 2793/1279/314 2789/1283/314 -f 2788/1284/315 2794/1285/315 2790/1286/315 -f 2790/1287/313 2795/1288/313 2791/1289/313 -f 2789/1290/312 2792/1291/312 2788/1292/312 -f 2796/1293/315 2802/1294/315 2798/1295/315 -f 2798/1296/313 2803/1297/313 2799/1298/313 -f 2797/1299/312 2800/1300/312 2796/1301/312 -f 2799/1276/316 2796/1302/316 2798/1303/316 -f 2810/1304/311 2808/1305/311 2809/1306/311 -f 2807/1307/314 2810/1304/314 2805/1308/314 -f 2804/1309/315 2808/1310/315 2806/1311/315 -f 2806/1311/313 2811/1312/313 2807/1307/313 -f 2805/1308/312 2809/1313/312 2804/1314/312 -f 2814/1315/316 2812/1316/316 2815/1317/316 -f 2841/1318/316 2843/1319/316 2840/1320/316 -f 2844/1321/311 2846/1322/311 2847/1323/311 -f 2847/1324/312 2841/1325/312 2840/1326/312 -f 2846/1322/315 2842/1327/315 2841/1328/315 -f 2845/1329/313 2843/1319/313 2842/1330/313 -f 2844/1331/314 2840/1332/314 2843/1319/314 -f 2851/1333/314 2855/1334/314 2852/1335/314 -f 2850/1336/313 2852/1337/313 2853/1338/313 -f 2849/1339/315 2853/1340/315 2854/1341/315 -f 2848/1342/312 2854/1343/312 2855/1334/312 -f 2851/1344/311 2849/1345/311 2848/1346/311 -f 2854/1347/316 2852/1348/316 2855/1334/316 -f 2857/1349/316 2859/1350/316 2856/1351/316 -f 2860/1352/311 2862/1353/311 2863/1354/311 -f 2863/1354/312 2857/1355/312 2856/1356/312 -f 2862/1357/315 2858/1358/315 2857/1359/315 -f 2861/1360/313 2859/1361/313 2858/1358/313 -f 2860/1362/314 2856/1363/314 2859/1364/314 -f 2867/1365/314 2871/1366/314 2868/1367/314 -f 2866/1368/313 2868/1369/313 2869/1370/313 -f 2865/1371/315 2869/1372/315 2870/1373/315 -f 2864/1374/312 2870/1373/312 2871/1375/312 -f 2867/1365/311 2865/1376/311 2864/1377/311 -f 2870/1373/316 2868/1378/316 2871/1379/316 -f 2872/1380/311 2874/1381/311 2875/1382/311 -f 2875/1383/312 2814/1315/312 2815/1384/312 -f 2874/1385/315 2813/1386/315 2814/1315/315 -f 2873/1387/313 2812/1388/313 2813/1389/313 -f 2872/1380/314 2815/1390/314 2812/1391/314 -f 2879/1392/314 2883/1393/314 2880/1394/314 -f 2878/1395/313 2880/1396/313 2881/1397/313 -f 2877/1398/315 2881/1397/315 2882/1399/315 -f 2876/1400/312 2882/1401/312 2883/1402/312 -f 2879/1403/311 2877/1404/311 2876/1400/311 -f 2882/1405/316 2880/1406/316 2883/1407/316 -f 2885/1408/316 2887/1409/316 2884/1410/316 -f 2888/1411/311 2890/1412/311 2891/1413/311 -f 2891/1414/312 2885/1415/312 2884/1410/312 -f 2890/1416/315 2886/1417/315 2885/1418/315 -f 2889/1419/313 2887/1420/313 2886/1421/313 -f 2888/1422/314 2884/1410/314 2887/1423/314 -f 2895/1424/314 2899/1425/314 2896/1426/314 -f 2894/1427/313 2896/1426/313 2897/1428/313 -f 2893/1429/315 2897/1430/315 2898/1431/315 -f 2892/1432/312 2898/1433/312 2899/1434/312 -f 2895/1435/311 2893/1429/311 2892/1436/311 -f 2898/1437/316 2896/1426/316 2899/1438/316 -f 2901/1439/316 2902/1440/316 2900/1441/316 -f 2903/1442/315 2906/1443/315 2902/1440/315 -f 2900/1441/314 2905/1444/314 2901/1439/314 -f 2904/1445/311 2907/1446/311 2905/1444/311 -f 2909/1447/316 2910/1448/316 2908/1449/316 -f 2911/1450/315 2914/1451/315 2910/1448/315 -f 2908/1449/314 2913/1452/314 2909/1447/314 -f 2912/1453/311 2915/1454/311 2913/1455/311 -f 2917/1456/316 2918/1457/316 2916/1458/316 -f 2919/1459/315 2922/1460/315 2918/1461/315 -f 2916/1458/314 2921/1462/314 2917/1456/314 -f 2920/1463/311 2923/1464/311 2921/1462/311 -f 2925/1465/316 2926/1466/316 2924/1467/316 -f 2927/1468/315 2930/1469/315 2926/1466/315 -f 2924/1470/314 2929/1471/314 2925/1472/314 -f 2928/1473/311 2931/1474/311 2929/1471/311 -f 2933/1475/313 2934/1476/313 2932/1477/313 -f 2935/1478/315 2938/1479/315 2934/1476/315 -f 2932/1477/314 2937/1480/314 2933/1475/314 -f 2936/1481/312 2939/1482/312 2937/1480/312 -f 2941/1483/313 2942/1484/313 2940/1485/313 -f 2943/1486/315 2946/1487/315 2942/1484/315 -f 2940/1485/314 2945/1488/314 2941/1483/314 -f 2944/1489/312 2947/1490/312 2945/1491/312 -f 2949/1492/313 2950/1493/313 2948/1494/313 -f 2951/1495/315 2954/1496/315 2950/1497/315 -f 2948/1494/314 2953/1498/314 2949/1492/314 -f 2952/1499/312 2955/1500/312 2953/1498/312 -f 2957/1501/313 2958/1502/313 2956/1503/313 -f 2959/1504/315 2962/1505/315 2958/1502/315 -f 2956/1506/314 2961/1507/314 2957/1508/314 -f 2960/1509/312 2963/1510/312 2961/1507/312 -f 2967/1511/316 2964/1512/316 2965/1513/316 -f 2971/1514/313 2966/1515/313 2967/1511/313 -f 2968/1516/312 2965/1513/312 2964/1512/312 -f 2968/1516/311 2971/1517/311 2969/1518/311 -f 2975/1519/316 2972/1520/316 2973/1521/316 -f 2979/1522/313 2974/1523/313 2975/1524/313 -f 2976/1525/312 2973/1521/312 2972/1520/312 -f 2976/1525/311 2979/1522/311 2977/1526/311 -f 2983/1527/316 2980/1528/316 2981/1529/316 -f 2987/1530/313 2982/1531/313 2983/1527/313 -f 2984/1532/312 2981/1529/312 2980/1528/312 -f 2984/1533/311 2987/1530/311 2985/1534/311 -f 2991/1535/316 2988/1536/316 2989/1537/316 -f 2995/1538/313 2990/1539/313 2991/1535/313 -f 2992/1540/312 2989/1541/312 2988/1542/312 -f 2992/1540/311 2995/1538/311 2993/1543/311 -f 3022/1544/313 3027/1545/313 3023/1546/313 -f 3021/1547/312 3024/1548/312 3020/1549/312 -f 3023/1550/314 3025/1551/314 3021/1552/314 -f 3020/1553/315 3026/1554/315 3022/1555/315 -f 3039/1556/314 3041/1557/314 3037/1558/314 -f 3033/1559/311 3034/1560/311 3032/1561/311 -f 3031/1562/314 3033/1559/314 3029/1563/314 -f 3028/1564/315 3034/1565/315 3030/1566/315 -f 3030/1567/313 3035/1568/313 3031/1569/313 -f 3029/1570/312 3032/1571/312 3028/1572/312 -f 3036/1573/315 3042/1574/315 3038/1575/315 -f 3038/1576/313 3043/1577/313 3039/1578/313 -f 3037/1579/312 3040/1580/312 3036/1581/312 -f 3039/1556/316 3036/1582/316 3038/1583/316 -f 3046/1584/313 3051/1585/313 3047/1586/313 -f 3045/1587/312 3048/1588/312 3044/1589/312 -f 3047/1590/314 3049/1591/314 3045/1592/314 -f 3044/1593/315 3050/1594/315 3046/1595/315 -f 3063/1596/314 3065/1597/314 3061/1598/314 -f 3057/1599/311 3058/1600/311 3056/1601/311 -f 3055/1602/314 3057/1599/314 3053/1603/314 -f 3052/1604/315 3058/1605/315 3054/1606/315 -f 3054/1607/313 3059/1608/313 3055/1609/313 -f 3053/1610/312 3056/1611/312 3052/1612/312 -f 3060/1613/315 3066/1614/315 3062/1615/315 -f 3062/1616/313 3067/1617/313 3063/1618/313 -f 3061/1619/312 3064/1620/312 3060/1621/312 -f 3063/1596/316 3060/1622/316 3062/1623/316 -f 3070/1624/313 3075/1625/313 3071/1626/313 -f 3069/1627/312 3072/1628/312 3068/1629/312 -f 3071/1630/314 3073/1631/314 3069/1632/314 -f 3068/1633/315 3074/1634/315 3070/1635/315 -f 3087/1636/314 3089/1637/314 3085/1638/314 -f 3081/1639/311 3082/1640/311 3080/1641/311 -f 3079/1642/314 3081/1639/314 3077/1643/314 -f 3076/1644/315 3082/1645/315 3078/1646/315 -f 3078/1647/313 3083/1648/313 3079/1649/313 -f 3077/1650/312 3080/1651/312 3076/1652/312 -f 3084/1653/315 3090/1654/315 3086/1655/315 -f 3086/1656/313 3091/1657/313 3087/1658/313 -f 3085/1659/312 3088/1660/312 3084/1661/312 -f 3087/1636/316 3084/1662/316 3086/1663/316 -f 2757/1213/311 2759/1218/311 2758/1214/311 -f 2763/1216/312 2757/1213/312 2756/1215/312 -f 2759/1218/313 2761/1664/313 2760/1219/313 -f 2761/1220/314 2759/1218/314 2757/1213/314 -f 2756/1215/315 2758/1214/315 2760/1222/315 -f 2752/1224/311 2764/1231/311 2765/1225/311 -f 2753/1226/311 2765/1225/311 2767/1227/311 -f 2754/1228/311 2767/1227/311 2766/1229/311 -f 2755/1230/311 2766/1229/311 2764/1231/311 -f 2770/1232/311 2771/1665/311 2768/1233/311 -f 2778/1235/316 2777/1242/316 2775/1236/316 -f 2779/1238/316 2778/1235/316 2773/1237/316 -f 2776/1240/316 2779/1238/316 2772/1239/316 -f 2777/1242/316 2776/1240/316 2774/1241/316 -f 2754/1243/315 2772/1666/315 2773/1244/315 -f 2765/1225/314 2778/1235/314 2779/1238/314 -f 2766/1246/315 2776/1667/315 2777/1247/315 -f 2753/1249/313 2773/1668/313 2775/1250/313 -f 2752/1252/314 2775/1669/314 2774/1253/314 -f 2767/1255/313 2779/1670/313 2776/1256/313 -f 2764/1258/312 2777/1671/312 2778/1259/312 -f 2755/1261/312 2774/1672/312 2772/1262/312 -f 2782/1264/313 2786/1673/313 2787/1265/313 -f 2781/1267/312 2785/1674/312 2784/1268/312 -f 2783/1270/314 2787/1675/314 2785/1271/314 -f 2780/1273/315 2784/1676/315 2786/1274/315 -f 2799/1276/314 2803/1677/314 2801/1277/314 -f 2793/1279/311 2795/1678/311 2794/1280/311 -f 2791/1282/314 2795/1678/314 2793/1279/314 -f 2788/1284/315 2792/1679/315 2794/1285/315 -f 2790/1287/313 2794/1680/313 2795/1288/313 -f 2789/1290/312 2793/1681/312 2792/1291/312 -f 2796/1293/315 2800/1682/315 2802/1294/315 -f 2798/1296/313 2802/1683/313 2803/1297/313 -f 2797/1299/312 2801/1684/312 2800/1300/312 -f 2799/1276/316 2797/1278/316 2796/1302/316 -f 2810/1304/311 2811/1312/311 2808/1305/311 -f 2807/1307/314 2811/1312/314 2810/1304/314 -f 2804/1309/315 2809/1685/315 2808/1310/315 -f 2806/1311/313 2808/1310/313 2811/1312/313 -f 2805/1308/312 2810/1304/312 2809/1313/312 -f 2814/1315/316 2813/1686/316 2812/1316/316 -f 2841/1318/316 2842/1687/316 2843/1319/316 -f 2844/1321/311 2845/1688/311 2846/1322/311 -f 2847/1324/312 2846/1322/312 2841/1325/312 -f 2846/1322/315 2845/1689/315 2842/1327/315 -f 2845/1329/313 2844/1690/313 2843/1319/313 -f 2844/1331/314 2847/1691/314 2840/1332/314 -f 2851/1333/314 2848/1692/314 2855/1334/314 -f 2850/1336/313 2851/1693/313 2852/1337/313 -f 2849/1339/315 2850/1336/315 2853/1340/315 -f 2848/1342/312 2849/1694/312 2854/1343/312 -f 2851/1344/311 2850/1336/311 2849/1345/311 -f 2854/1347/316 2853/1695/316 2852/1348/316 -f 2857/1349/316 2858/1358/316 2859/1350/316 -f 2860/1352/311 2861/1696/311 2862/1353/311 -f 2863/1354/312 2862/1697/312 2857/1355/312 -f 2862/1357/315 2861/1698/315 2858/1358/315 -f 2861/1360/313 2860/1699/313 2859/1361/313 -f 2860/1362/314 2863/1354/314 2856/1363/314 -f 2867/1365/314 2864/1700/314 2871/1366/314 -f 2866/1368/313 2867/1365/313 2868/1369/313 -f 2865/1371/315 2866/1701/315 2869/1372/315 -f 2864/1374/312 2865/1702/312 2870/1373/312 -f 2867/1365/311 2866/1703/311 2865/1376/311 -f 2870/1373/316 2869/1704/316 2868/1378/316 -f 2872/1380/311 2873/1705/311 2874/1381/311 -f 2875/1383/312 2874/1706/312 2814/1315/312 -f 2874/1385/315 2873/1707/315 2813/1386/315 -f 2873/1387/313 2872/1380/313 2812/1388/313 -f 2872/1380/314 2875/1708/314 2815/1390/314 -f 2879/1392/314 2876/1400/314 2883/1393/314 -f 2878/1395/313 2879/1709/313 2880/1396/313 -f 2877/1398/315 2878/1710/315 2881/1397/315 -f 2876/1400/312 2877/1711/312 2882/1401/312 -f 2879/1403/311 2878/1712/311 2877/1404/311 -f 2882/1405/316 2881/1397/316 2880/1406/316 -f 2885/1408/316 2886/1713/316 2887/1409/316 -f 2888/1411/311 2889/1419/311 2890/1412/311 -f 2891/1414/312 2890/1714/312 2885/1415/312 -f 2890/1416/315 2889/1419/315 2886/1417/315 -f 2889/1419/313 2888/1715/313 2887/1420/313 -f 2888/1422/314 2891/1716/314 2884/1410/314 -f 2895/1424/314 2892/1717/314 2899/1425/314 -f 2894/1427/313 2895/1718/313 2896/1426/313 -f 2893/1429/315 2894/1719/315 2897/1430/315 -f 2892/1432/312 2893/1429/312 2898/1433/312 -f 2895/1435/311 2894/1720/311 2893/1429/311 -f 2898/1437/316 2897/1721/316 2896/1426/316 -f 2901/1439/316 2903/1442/316 2902/1440/316 -f 2903/1442/315 2907/1722/315 2906/1443/315 -f 2900/1441/314 2904/1445/314 2905/1444/314 -f 2904/1445/311 2906/1723/311 2907/1446/311 -f 2909/1447/316 2911/1450/316 2910/1448/316 -f 2911/1450/315 2915/1454/315 2914/1451/315 -f 2908/1449/314 2912/1724/314 2913/1452/314 -f 2912/1453/311 2914/1451/311 2915/1454/311 -f 2917/1456/316 2919/1725/316 2918/1457/316 -f 2919/1459/315 2923/1464/315 2922/1460/315 -f 2916/1458/314 2920/1463/314 2921/1462/314 -f 2920/1463/311 2922/1460/311 2923/1464/311 -f 2925/1465/316 2927/1468/316 2926/1466/316 -f 2927/1468/315 2931/1474/315 2930/1469/315 -f 2924/1470/314 2928/1473/314 2929/1471/314 -f 2928/1473/311 2930/1469/311 2931/1474/311 -f 2933/1475/313 2935/1478/313 2934/1476/313 -f 2935/1478/315 2939/1726/315 2938/1479/315 -f 2932/1477/314 2936/1481/314 2937/1480/314 -f 2936/1481/312 2938/1727/312 2939/1482/312 -f 2941/1483/313 2943/1486/313 2942/1484/313 -f 2943/1486/315 2947/1490/315 2946/1487/315 -f 2940/1485/314 2944/1728/314 2945/1488/314 -f 2944/1489/312 2946/1487/312 2947/1490/312 -f 2949/1492/313 2951/1729/313 2950/1493/313 -f 2951/1495/315 2955/1500/315 2954/1496/315 -f 2948/1494/314 2952/1499/314 2953/1498/314 -f 2952/1499/312 2954/1496/312 2955/1500/312 -f 2957/1501/313 2959/1504/313 2958/1502/313 -f 2959/1504/315 2963/1510/315 2962/1505/315 -f 2956/1506/314 2960/1509/314 2961/1507/314 -f 2960/1509/312 2962/1505/312 2963/1510/312 -f 2967/1511/316 2966/1515/316 2964/1512/316 -f 2971/1514/313 2970/1730/313 2966/1515/313 -f 2968/1516/312 2969/1518/312 2965/1513/312 -f 2968/1516/311 2970/1731/311 2971/1517/311 -f 2975/1519/316 2974/1732/316 2972/1520/316 -f 2979/1522/313 2978/1733/313 2974/1523/313 -f 2976/1525/312 2977/1526/312 2973/1521/312 -f 2976/1525/311 2978/1733/311 2979/1522/311 -f 2983/1527/316 2982/1531/316 2980/1528/316 -f 2987/1530/313 2986/1734/313 2982/1531/313 -f 2984/1532/312 2985/1735/312 2981/1529/312 -f 2984/1533/311 2986/1734/311 2987/1530/311 -f 2991/1535/316 2990/1539/316 2988/1536/316 -f 2995/1538/313 2994/1736/313 2990/1539/313 -f 2992/1540/312 2993/1543/312 2989/1541/312 -f 2992/1540/311 2994/1736/311 2995/1538/311 -f 3022/1544/313 3026/1737/313 3027/1545/313 -f 3021/1547/312 3025/1738/312 3024/1548/312 -f 3023/1550/314 3027/1739/314 3025/1551/314 -f 3020/1553/315 3024/1740/315 3026/1554/315 -f 3039/1556/314 3043/1741/314 3041/1557/314 -f 3033/1559/311 3035/1742/311 3034/1560/311 -f 3031/1562/314 3035/1742/314 3033/1559/314 -f 3028/1564/315 3032/1743/315 3034/1565/315 -f 3030/1567/313 3034/1744/313 3035/1568/313 -f 3029/1570/312 3033/1745/312 3032/1571/312 -f 3036/1573/315 3040/1746/315 3042/1574/315 -f 3038/1576/313 3042/1747/313 3043/1577/313 -f 3037/1579/312 3041/1748/312 3040/1580/312 -f 3039/1556/316 3037/1558/316 3036/1582/316 -f 3046/1584/313 3050/1749/313 3051/1585/313 -f 3045/1587/312 3049/1750/312 3048/1588/312 -f 3047/1590/314 3051/1751/314 3049/1591/314 -f 3044/1593/315 3048/1752/315 3050/1594/315 -f 3063/1596/314 3067/1753/314 3065/1597/314 -f 3057/1599/311 3059/1754/311 3058/1600/311 -f 3055/1602/314 3059/1754/314 3057/1599/314 -f 3052/1604/315 3056/1755/315 3058/1605/315 -f 3054/1607/313 3058/1756/313 3059/1608/313 -f 3053/1610/312 3057/1757/312 3056/1611/312 -f 3060/1613/315 3064/1758/315 3066/1614/315 -f 3062/1616/313 3066/1759/313 3067/1617/313 -f 3061/1619/312 3065/1760/312 3064/1620/312 -f 3063/1596/316 3061/1598/316 3060/1622/316 -f 3070/1624/313 3074/1761/313 3075/1625/313 -f 3069/1627/312 3073/1762/312 3072/1628/312 -f 3071/1630/314 3075/1763/314 3073/1631/314 -f 3068/1633/315 3072/1764/315 3074/1634/315 -f 3087/1636/314 3091/1765/314 3089/1637/314 -f 3081/1639/311 3083/1766/311 3082/1640/311 -f 3079/1642/314 3083/1766/314 3081/1639/314 -f 3076/1644/315 3080/1767/315 3082/1645/315 -f 3078/1647/313 3082/1768/313 3083/1648/313 -f 3077/1650/312 3081/1769/312 3080/1651/312 -f 3084/1653/315 3088/1770/315 3090/1654/315 -f 3086/1656/313 3090/1771/313 3091/1657/313 -f 3085/1659/312 3089/1772/312 3088/1660/312 -f 3087/1636/316 3085/1638/316 3084/1662/316 +f 3219/4418/313 3220/4419/313 3218/4420/313 +f 3225/4421/314 3218/4420/314 3224/4422/314 +f 3221/4423/315 3222/4424/315 3220/4419/315 +f 3223/4425/316 3219/4418/316 3225/4426/316 +f 3218/4420/317 3222/4427/317 3224/4428/317 +f 3214/4429/313 3227/4430/313 3215/4431/313 +f 3215/4431/313 3229/4432/313 3216/4433/313 +f 3216/4433/313 3228/4434/313 3217/4435/313 +f 3217/4435/313 3226/4436/313 3214/4429/313 +f 3232/4437/313 3230/4438/313 3231/4439/313 +f 3240/4440/318 3237/4441/318 3235/4442/318 +f 3241/4443/318 3235/4442/318 3234/4444/318 +f 3238/4445/318 3234/4444/318 3236/4446/318 +f 3239/4447/318 3236/4446/318 3237/4441/318 +f 3216/4448/317 3235/4449/317 3215/4450/317 +f 3227/4430/316 3241/4443/316 3229/4432/316 +f 3228/4451/317 3239/4452/317 3226/4453/317 +f 3215/4454/315 3237/4455/315 3214/4456/315 +f 3214/4457/316 3236/4458/316 3217/4459/316 +f 3229/4460/315 3238/4461/315 3228/4462/315 +f 3226/4463/314 3240/4464/314 3227/4465/314 +f 3217/4466/314 3234/4467/314 3216/4468/314 +f 3244/4469/315 3249/4470/315 3245/4471/315 +f 3243/4472/314 3246/4473/314 3242/4474/314 +f 3245/4475/316 3247/4476/316 3243/4477/316 +f 3242/4478/317 3248/4479/317 3244/4480/317 +f 3261/4481/316 3263/4482/316 3259/4483/316 +f 3255/4484/313 3256/4485/313 3254/4486/313 +f 3253/4487/316 3255/4484/316 3251/4488/316 +f 3250/4489/317 3256/4490/317 3252/4491/317 +f 3252/4492/315 3257/4493/315 3253/4494/315 +f 3251/4495/314 3254/4496/314 3250/4497/314 +f 3258/4498/317 3264/4499/317 3260/4500/317 +f 3260/4501/315 3265/4502/315 3261/4503/315 +f 3259/4504/314 3262/4505/314 3258/4506/314 +f 3261/4481/318 3258/4507/318 3260/4508/318 +f 3272/4509/313 3270/4510/313 3271/4511/313 +f 3269/4512/316 3272/4509/316 3267/4513/316 +f 3266/4514/317 3270/4515/317 3268/4516/317 +f 3268/4516/315 3273/4517/315 3269/4512/315 +f 3267/4513/314 3271/4518/314 3266/4519/314 +f 3276/4520/318 3274/4521/318 3277/4522/318 +f 3303/4523/318 3305/4524/318 3302/4525/318 +f 3306/4526/313 3308/4527/313 3309/4528/313 +f 3309/4529/314 3303/4530/314 3302/4531/314 +f 3308/4527/317 3304/4532/317 3303/4533/317 +f 3307/4534/315 3305/4524/315 3304/4535/315 +f 3306/4536/316 3302/4537/316 3305/4524/316 +f 3313/4538/316 3317/4539/316 3314/4540/316 +f 3312/4541/315 3314/4542/315 3315/4543/315 +f 3311/4544/317 3315/4545/317 3316/4546/317 +f 3310/4547/314 3316/4548/314 3317/4539/314 +f 3313/4549/313 3311/4550/313 3310/4551/313 +f 3316/4552/318 3314/4553/318 3317/4539/318 +f 3319/4554/318 3321/4555/318 3318/4556/318 +f 3322/4557/313 3324/4558/313 3325/4559/313 +f 3325/4559/314 3319/4560/314 3318/4561/314 +f 3324/4562/317 3320/4563/317 3319/4564/317 +f 3323/4565/315 3321/4566/315 3320/4563/315 +f 3322/4567/316 3318/4568/316 3321/4569/316 +f 3329/4570/316 3333/4571/316 3330/4572/316 +f 3328/4573/315 3330/4574/315 3331/4575/315 +f 3327/4576/317 3331/4577/317 3332/4578/317 +f 3326/4579/314 3332/4578/314 3333/4580/314 +f 3329/4570/313 3327/4581/313 3326/4582/313 +f 3332/4578/318 3330/4583/318 3333/4584/318 +f 3334/4585/313 3336/4586/313 3337/4587/313 +f 3337/4588/314 3276/4520/314 3277/4589/314 +f 3336/4590/317 3275/4591/317 3276/4520/317 +f 3335/4592/315 3274/4593/315 3275/4594/315 +f 3334/4585/316 3277/4595/316 3274/4596/316 +f 3341/4597/316 3345/4598/316 3342/4599/316 +f 3340/4600/315 3342/4601/315 3343/4602/315 +f 3339/4603/317 3343/4602/317 3344/4604/317 +f 3338/4605/314 3344/4606/314 3345/4607/314 +f 3341/4608/313 3339/4609/313 3338/4605/313 +f 3344/4610/318 3342/4611/318 3345/4612/318 +f 3347/4613/318 3349/4614/318 3346/4615/318 +f 3350/4616/313 3352/4617/313 3353/4618/313 +f 3353/4619/314 3347/4620/314 3346/4615/314 +f 3352/4621/317 3348/4622/317 3347/4623/317 +f 3351/4624/315 3349/4625/315 3348/4626/315 +f 3350/4627/316 3346/4615/316 3349/4628/316 +f 3357/4629/316 3361/4630/316 3358/4631/316 +f 3356/4632/315 3358/4631/315 3359/4633/315 +f 3355/4634/317 3359/4635/317 3360/4636/317 +f 3354/4637/314 3360/4638/314 3361/4639/314 +f 3357/4640/313 3355/4634/313 3354/4641/313 +f 3360/4642/318 3358/4631/318 3361/4643/318 +f 3363/4644/318 3364/4645/318 3362/4646/318 +f 3365/4647/317 3368/4648/317 3364/4645/317 +f 3362/4646/316 3367/4649/316 3363/4644/316 +f 3366/4650/313 3369/4651/313 3367/4649/313 +f 3371/4652/318 3372/4653/318 3370/4654/318 +f 3373/4655/317 3376/4656/317 3372/4653/317 +f 3370/4654/316 3375/4657/316 3371/4652/316 +f 3374/4658/313 3377/4659/313 3375/4660/313 +f 3379/4661/318 3380/4662/318 3378/4663/318 +f 3381/4664/317 3384/4665/317 3380/4666/317 +f 3378/4663/316 3383/4667/316 3379/4661/316 +f 3382/4668/313 3385/4669/313 3383/4667/313 +f 3387/4670/318 3388/4671/318 3386/4672/318 +f 3389/4673/317 3392/4674/317 3388/4671/317 +f 3386/4675/316 3391/4676/316 3387/4677/316 +f 3390/4678/313 3393/4679/313 3391/4676/313 +f 3395/4680/315 3396/4681/315 3394/4682/315 +f 3397/4683/317 3400/4684/317 3396/4681/317 +f 3394/4682/316 3399/4685/316 3395/4680/316 +f 3398/4686/314 3401/4687/314 3399/4685/314 +f 3403/4688/315 3404/4689/315 3402/4690/315 +f 3405/4691/317 3408/4692/317 3404/4689/317 +f 3402/4690/316 3407/4693/316 3403/4688/316 +f 3406/4694/314 3409/4695/314 3407/4696/314 +f 3411/4697/315 3412/4698/315 3410/4699/315 +f 3413/4700/317 3416/4701/317 3412/4702/317 +f 3410/4699/316 3415/4703/316 3411/4697/316 +f 3414/4704/314 3417/4705/314 3415/4703/314 +f 3419/4706/315 3420/4707/315 3418/4708/315 +f 3421/4709/317 3424/4710/317 3420/4707/317 +f 3418/4711/316 3423/4712/316 3419/4713/316 +f 3422/4714/314 3425/4715/314 3423/4712/314 +f 3429/4716/318 3426/4717/318 3427/4718/318 +f 3433/4719/315 3428/4720/315 3429/4716/315 +f 3430/4721/314 3427/4718/314 3426/4717/314 +f 3430/4721/313 3433/4722/313 3431/4723/313 +f 3437/4724/318 3434/4725/318 3435/4726/318 +f 3441/4727/315 3436/4728/315 3437/4729/315 +f 3438/4730/314 3435/4726/314 3434/4725/314 +f 3438/4730/313 3441/4727/313 3439/4731/313 +f 3445/4732/318 3442/4733/318 3443/4734/318 +f 3449/4735/315 3444/4736/315 3445/4732/315 +f 3446/4737/314 3443/4734/314 3442/4733/314 +f 3446/4738/313 3449/4735/313 3447/4739/313 +f 3453/4740/318 3450/4741/318 3451/4742/318 +f 3457/4743/315 3452/4744/315 3453/4740/315 +f 3454/4745/314 3451/4746/314 3450/4747/314 +f 3454/4745/313 3457/4743/313 3455/4748/313 +f 3484/4749/315 3489/4750/315 3485/4751/315 +f 3483/4752/314 3486/4753/314 3482/4754/314 +f 3485/4755/316 3487/4756/316 3483/4757/316 +f 3482/4758/317 3488/4759/317 3484/4760/317 +f 3501/4761/316 3503/4762/316 3499/4763/316 +f 3495/4764/313 3496/4765/313 3494/4766/313 +f 3493/4767/316 3495/4764/316 3491/4768/316 +f 3490/4769/317 3496/4770/317 3492/4771/317 +f 3492/4772/315 3497/4773/315 3493/4774/315 +f 3491/4775/314 3494/4776/314 3490/4777/314 +f 3498/4778/317 3504/4779/317 3500/4780/317 +f 3500/4781/315 3505/4782/315 3501/4783/315 +f 3499/4784/314 3502/4785/314 3498/4786/314 +f 3501/4761/318 3498/4787/318 3500/4788/318 +f 3508/4789/315 3513/4790/315 3509/4791/315 +f 3507/4792/314 3510/4793/314 3506/4794/314 +f 3509/4795/316 3511/4796/316 3507/4797/316 +f 3506/4798/317 3512/4799/317 3508/4800/317 +f 3525/4801/316 3527/4802/316 3523/4803/316 +f 3519/4804/313 3520/4805/313 3518/4806/313 +f 3517/4807/316 3519/4804/316 3515/4808/316 +f 3514/4809/317 3520/4810/317 3516/4811/317 +f 3516/4812/315 3521/4813/315 3517/4814/315 +f 3515/4815/314 3518/4816/314 3514/4817/314 +f 3522/4818/317 3528/4819/317 3524/4820/317 +f 3524/4821/315 3529/4822/315 3525/4823/315 +f 3523/4824/314 3526/4825/314 3522/4826/314 +f 3525/4801/318 3522/4827/318 3524/4828/318 +f 3532/4829/315 3537/4830/315 3533/4831/315 +f 3531/4832/314 3534/4833/314 3530/4834/314 +f 3533/4835/316 3535/4836/316 3531/4837/316 +f 3530/4838/317 3536/4839/317 3532/4840/317 +f 3549/4841/316 3551/4842/316 3547/4843/316 +f 3543/4844/313 3544/4845/313 3542/4846/313 +f 3541/4847/316 3543/4844/316 3539/4848/316 +f 3538/4849/317 3544/4850/317 3540/4851/317 +f 3540/4852/315 3545/4853/315 3541/4854/315 +f 3539/4855/314 3542/4856/314 3538/4857/314 +f 3546/4858/317 3552/4859/317 3548/4860/317 +f 3548/4861/315 3553/4862/315 3549/4863/315 +f 3547/4864/314 3550/4865/314 3546/4866/314 +f 3549/4841/318 3546/4867/318 3548/4868/318 +f 3219/4418/313 3221/4423/313 3220/4419/313 +f 3225/4421/314 3219/4418/314 3218/4420/314 +f 3221/4423/315 3223/4869/315 3222/4424/315 +f 3223/4425/316 3221/4423/316 3219/4418/316 +f 3218/4420/317 3220/4419/317 3222/4427/317 +f 3214/4429/313 3226/4436/313 3227/4430/313 +f 3215/4431/313 3227/4430/313 3229/4432/313 +f 3216/4433/313 3229/4432/313 3228/4434/313 +f 3217/4435/313 3228/4434/313 3226/4436/313 +f 3232/4437/313 3233/4870/313 3230/4438/313 +f 3240/4440/318 3239/4447/318 3237/4441/318 +f 3241/4443/318 3240/4440/318 3235/4442/318 +f 3238/4445/318 3241/4443/318 3234/4444/318 +f 3239/4447/318 3238/4445/318 3236/4446/318 +f 3216/4448/317 3234/4871/317 3235/4449/317 +f 3227/4430/316 3240/4440/316 3241/4443/316 +f 3228/4451/317 3238/4872/317 3239/4452/317 +f 3215/4454/315 3235/4873/315 3237/4455/315 +f 3214/4457/316 3237/4874/316 3236/4458/316 +f 3229/4460/315 3241/4875/315 3238/4461/315 +f 3226/4463/314 3239/4876/314 3240/4464/314 +f 3217/4466/314 3236/4877/314 3234/4467/314 +f 3244/4469/315 3248/4878/315 3249/4470/315 +f 3243/4472/314 3247/4879/314 3246/4473/314 +f 3245/4475/316 3249/4880/316 3247/4476/316 +f 3242/4478/317 3246/4881/317 3248/4479/317 +f 3261/4481/316 3265/4882/316 3263/4482/316 +f 3255/4484/313 3257/4883/313 3256/4485/313 +f 3253/4487/316 3257/4883/316 3255/4484/316 +f 3250/4489/317 3254/4884/317 3256/4490/317 +f 3252/4492/315 3256/4885/315 3257/4493/315 +f 3251/4495/314 3255/4886/314 3254/4496/314 +f 3258/4498/317 3262/4887/317 3264/4499/317 +f 3260/4501/315 3264/4888/315 3265/4502/315 +f 3259/4504/314 3263/4889/314 3262/4505/314 +f 3261/4481/318 3259/4483/318 3258/4507/318 +f 3272/4509/313 3273/4517/313 3270/4510/313 +f 3269/4512/316 3273/4517/316 3272/4509/316 +f 3266/4514/317 3271/4890/317 3270/4515/317 +f 3268/4516/315 3270/4515/315 3273/4517/315 +f 3267/4513/314 3272/4509/314 3271/4518/314 +f 3276/4520/318 3275/4891/318 3274/4521/318 +f 3303/4523/318 3304/4892/318 3305/4524/318 +f 3306/4526/313 3307/4893/313 3308/4527/313 +f 3309/4529/314 3308/4527/314 3303/4530/314 +f 3308/4527/317 3307/4894/317 3304/4532/317 +f 3307/4534/315 3306/4895/315 3305/4524/315 +f 3306/4536/316 3309/4896/316 3302/4537/316 +f 3313/4538/316 3310/4897/316 3317/4539/316 +f 3312/4541/315 3313/4898/315 3314/4542/315 +f 3311/4544/317 3312/4541/317 3315/4545/317 +f 3310/4547/314 3311/4899/314 3316/4548/314 +f 3313/4549/313 3312/4541/313 3311/4550/313 +f 3316/4552/318 3315/4900/318 3314/4553/318 +f 3319/4554/318 3320/4563/318 3321/4555/318 +f 3322/4557/313 3323/4901/313 3324/4558/313 +f 3325/4559/314 3324/4902/314 3319/4560/314 +f 3324/4562/317 3323/4903/317 3320/4563/317 +f 3323/4565/315 3322/4904/315 3321/4566/315 +f 3322/4567/316 3325/4559/316 3318/4568/316 +f 3329/4570/316 3326/4905/316 3333/4571/316 +f 3328/4573/315 3329/4570/315 3330/4574/315 +f 3327/4576/317 3328/4906/317 3331/4577/317 +f 3326/4579/314 3327/4907/314 3332/4578/314 +f 3329/4570/313 3328/4908/313 3327/4581/313 +f 3332/4578/318 3331/4909/318 3330/4583/318 +f 3334/4585/313 3335/4910/313 3336/4586/313 +f 3337/4588/314 3336/4911/314 3276/4520/314 +f 3336/4590/317 3335/4912/317 3275/4591/317 +f 3335/4592/315 3334/4585/315 3274/4593/315 +f 3334/4585/316 3337/4913/316 3277/4595/316 +f 3341/4597/316 3338/4605/316 3345/4598/316 +f 3340/4600/315 3341/4914/315 3342/4601/315 +f 3339/4603/317 3340/4915/317 3343/4602/317 +f 3338/4605/314 3339/4916/314 3344/4606/314 +f 3341/4608/313 3340/4917/313 3339/4609/313 +f 3344/4610/318 3343/4602/318 3342/4611/318 +f 3347/4613/318 3348/4918/318 3349/4614/318 +f 3350/4616/313 3351/4624/313 3352/4617/313 +f 3353/4619/314 3352/4919/314 3347/4620/314 +f 3352/4621/317 3351/4624/317 3348/4622/317 +f 3351/4624/315 3350/4920/315 3349/4625/315 +f 3350/4627/316 3353/4921/316 3346/4615/316 +f 3357/4629/316 3354/4922/316 3361/4630/316 +f 3356/4632/315 3357/4923/315 3358/4631/315 +f 3355/4634/317 3356/4924/317 3359/4635/317 +f 3354/4637/314 3355/4634/314 3360/4638/314 +f 3357/4640/313 3356/4925/313 3355/4634/313 +f 3360/4642/318 3359/4926/318 3358/4631/318 +f 3363/4644/318 3365/4647/318 3364/4645/318 +f 3365/4647/317 3369/4927/317 3368/4648/317 +f 3362/4646/316 3366/4650/316 3367/4649/316 +f 3366/4650/313 3368/4928/313 3369/4651/313 +f 3371/4652/318 3373/4655/318 3372/4653/318 +f 3373/4655/317 3377/4659/317 3376/4656/317 +f 3370/4654/316 3374/4929/316 3375/4657/316 +f 3374/4658/313 3376/4656/313 3377/4659/313 +f 3379/4661/318 3381/4930/318 3380/4662/318 +f 3381/4664/317 3385/4669/317 3384/4665/317 +f 3378/4663/316 3382/4668/316 3383/4667/316 +f 3382/4668/313 3384/4665/313 3385/4669/313 +f 3387/4670/318 3389/4673/318 3388/4671/318 +f 3389/4673/317 3393/4679/317 3392/4674/317 +f 3386/4675/316 3390/4678/316 3391/4676/316 +f 3390/4678/313 3392/4674/313 3393/4679/313 +f 3395/4680/315 3397/4683/315 3396/4681/315 +f 3397/4683/317 3401/4931/317 3400/4684/317 +f 3394/4682/316 3398/4686/316 3399/4685/316 +f 3398/4686/314 3400/4932/314 3401/4687/314 +f 3403/4688/315 3405/4691/315 3404/4689/315 +f 3405/4691/317 3409/4695/317 3408/4692/317 +f 3402/4690/316 3406/4933/316 3407/4693/316 +f 3406/4694/314 3408/4692/314 3409/4695/314 +f 3411/4697/315 3413/4934/315 3412/4698/315 +f 3413/4700/317 3417/4705/317 3416/4701/317 +f 3410/4699/316 3414/4704/316 3415/4703/316 +f 3414/4704/314 3416/4701/314 3417/4705/314 +f 3419/4706/315 3421/4709/315 3420/4707/315 +f 3421/4709/317 3425/4715/317 3424/4710/317 +f 3418/4711/316 3422/4714/316 3423/4712/316 +f 3422/4714/314 3424/4710/314 3425/4715/314 +f 3429/4716/318 3428/4720/318 3426/4717/318 +f 3433/4719/315 3432/4935/315 3428/4720/315 +f 3430/4721/314 3431/4723/314 3427/4718/314 +f 3430/4721/313 3432/4936/313 3433/4722/313 +f 3437/4724/318 3436/4937/318 3434/4725/318 +f 3441/4727/315 3440/4938/315 3436/4728/315 +f 3438/4730/314 3439/4731/314 3435/4726/314 +f 3438/4730/313 3440/4938/313 3441/4727/313 +f 3445/4732/318 3444/4736/318 3442/4733/318 +f 3449/4735/315 3448/4939/315 3444/4736/315 +f 3446/4737/314 3447/4940/314 3443/4734/314 +f 3446/4738/313 3448/4939/313 3449/4735/313 +f 3453/4740/318 3452/4744/318 3450/4741/318 +f 3457/4743/315 3456/4941/315 3452/4744/315 +f 3454/4745/314 3455/4748/314 3451/4746/314 +f 3454/4745/313 3456/4941/313 3457/4743/313 +f 3484/4749/315 3488/4942/315 3489/4750/315 +f 3483/4752/314 3487/4943/314 3486/4753/314 +f 3485/4755/316 3489/4944/316 3487/4756/316 +f 3482/4758/317 3486/4945/317 3488/4759/317 +f 3501/4761/316 3505/4946/316 3503/4762/316 +f 3495/4764/313 3497/4947/313 3496/4765/313 +f 3493/4767/316 3497/4947/316 3495/4764/316 +f 3490/4769/317 3494/4948/317 3496/4770/317 +f 3492/4772/315 3496/4949/315 3497/4773/315 +f 3491/4775/314 3495/4950/314 3494/4776/314 +f 3498/4778/317 3502/4951/317 3504/4779/317 +f 3500/4781/315 3504/4952/315 3505/4782/315 +f 3499/4784/314 3503/4953/314 3502/4785/314 +f 3501/4761/318 3499/4763/318 3498/4787/318 +f 3508/4789/315 3512/4954/315 3513/4790/315 +f 3507/4792/314 3511/4955/314 3510/4793/314 +f 3509/4795/316 3513/4956/316 3511/4796/316 +f 3506/4798/317 3510/4957/317 3512/4799/317 +f 3525/4801/316 3529/4958/316 3527/4802/316 +f 3519/4804/313 3521/4959/313 3520/4805/313 +f 3517/4807/316 3521/4959/316 3519/4804/316 +f 3514/4809/317 3518/4960/317 3520/4810/317 +f 3516/4812/315 3520/4961/315 3521/4813/315 +f 3515/4815/314 3519/4962/314 3518/4816/314 +f 3522/4818/317 3526/4963/317 3528/4819/317 +f 3524/4821/315 3528/4964/315 3529/4822/315 +f 3523/4824/314 3527/4965/314 3526/4825/314 +f 3525/4801/318 3523/4803/318 3522/4827/318 +f 3532/4829/315 3536/4966/315 3537/4830/315 +f 3531/4832/314 3535/4967/314 3534/4833/314 +f 3533/4835/316 3537/4968/316 3535/4836/316 +f 3530/4838/317 3534/4969/317 3536/4839/317 +f 3549/4841/316 3553/4970/316 3551/4842/316 +f 3543/4844/313 3545/4971/313 3544/4845/313 +f 3541/4847/316 3545/4971/316 3543/4844/316 +f 3538/4849/317 3542/4972/317 3544/4850/317 +f 3540/4852/315 3544/4973/315 3545/4853/315 +f 3539/4855/314 3543/4974/314 3542/4856/314 +f 3546/4858/317 3550/4975/317 3552/4859/317 +f 3548/4861/315 3552/4976/315 3553/4862/315 +f 3547/4864/314 3551/4977/314 3550/4865/314 +f 3549/4841/318 3547/4843/318 3546/4867/318 s 1 -f 2817/1773/317 2818/1774/318 2816/1775/319 -f 2819/1776/320 2820/1777/321 2818/1774/318 -f 2821/1778/322 2822/1779/323 2820/1777/321 -f 2823/1780/324 2824/1781/325 2822/1782/323 -f 2825/1783/326 2826/1784/327 2824/1781/325 -f 2827/1785/328 2828/1786/329 2826/1784/327 -f 2829/1787/330 2830/1788/331 2828/1786/329 -f 2831/1789/332 2832/1790/333 2830/1788/331 -f 2833/1791/334 2834/1792/335 2832/1790/333 -f 2835/1793/336 2836/1794/337 2834/1792/335 -f 2831/1789/332 3004/1795/338 2833/1791/334 -f 2837/1796/339 2838/1797/340 2836/1794/337 -f 2839/1798/341 2816/1775/319 2838/1797/340 -f 2826/1784/327 3014/1799/342 3013/1800/343 -f 3000/1801/344 2998/1802/345 3006/1803/346 -f 2831/1789/332 3002/1804/347 3003/1805/348 -f 2827/1785/328 3002/1806/347 2829/1787/330 -f 2825/1783/326 3001/1807/349 2827/1785/328 -f 2823/1780/324 3000/1808/344 2825/1783/326 -f 2817/1773/317 3007/1809/350 2997/1810/351 -f 2817/1773/317 2996/1811/352 2819/1776/320 -f 2823/1812/324 2998/1813/345 2999/1814/353 -f 2839/1798/341 3006/1815/346 3007/1816/350 -f 2821/1778/322 2996/1817/352 2998/1818/345 -f 2837/1796/339 3005/1819/354 3006/1820/346 -f 2833/1791/334 3005/1821/354 2835/1793/336 -f 3011/1822/355 3015/1823/356 3019/1824/357 -f 2826/1784/327 3012/1825/358 2824/1781/325 -f 2822/1782/323 3012/1826/358 3011/1827/355 -f 2838/1797/340 3008/1828/359 3019/1829/357 -f 2816/1775/319 3009/1830/360 3008/1831/359 -f 2822/1779/323 3010/1832/361 2820/1777/321 -f 2838/1797/340 3018/1833/362 2836/1794/337 -f 2820/1777/321 3009/1834/360 2818/1774/318 -f 2836/1794/337 3017/1835/363 2834/1792/335 -f 2832/1790/333 3017/1836/363 3016/1837/364 -f 2832/1790/333 3015/1838/356 2830/1788/331 -f 2830/1788/331 3014/1839/342 2828/1786/329 -f 2817/1773/317 2819/1776/320 2818/1774/318 -f 2819/1776/320 2821/1778/322 2820/1777/321 -f 2821/1778/322 2823/1812/324 2822/1779/323 -f 2823/1780/324 2825/1783/326 2824/1781/325 -f 2825/1783/326 2827/1785/328 2826/1784/327 -f 2827/1785/328 2829/1787/330 2828/1786/329 -f 2829/1787/330 2831/1789/332 2830/1788/331 -f 2831/1789/332 2833/1791/334 2832/1790/333 -f 2833/1791/334 2835/1793/336 2834/1792/335 -f 2835/1793/336 2837/1796/339 2836/1794/337 -f 2831/1789/332 3003/1840/348 3004/1795/338 -f 2837/1796/339 2839/1798/341 2838/1797/340 -f 2839/1798/341 2817/1773/317 2816/1775/319 -f 2826/1784/327 2828/1786/329 3014/1799/342 -f 2998/1802/345 2996/1841/352 2997/1842/351 -f 2997/1842/351 3007/1843/350 2998/1802/345 -f 3007/1843/350 3006/1803/346 2998/1802/345 -f 3006/1803/346 3005/1844/354 3004/1845/338 -f 3004/1845/338 3003/1846/348 3006/1803/346 -f 3003/1846/348 3002/1847/347 3006/1803/346 -f 3002/1847/347 3001/1848/349 3000/1801/344 -f 3000/1801/344 2999/1849/353 2998/1802/345 -f 3002/1847/347 3000/1801/344 3006/1803/346 -f 2831/1789/332 2829/1787/330 3002/1804/347 -f 2827/1785/328 3001/1850/349 3002/1806/347 -f 2825/1783/326 3000/1851/344 3001/1807/349 -f 2823/1780/324 2999/1852/353 3000/1808/344 -f 2817/1773/317 2839/1798/341 3007/1809/350 -f 2817/1773/317 2997/1853/351 2996/1811/352 -f 2823/1812/324 2821/1778/322 2998/1813/345 -f 2839/1798/341 2837/1796/339 3006/1815/346 -f 2821/1778/322 2819/1776/320 2996/1817/352 -f 2837/1796/339 2835/1793/336 3005/1819/354 -f 2833/1791/334 3004/1854/338 3005/1821/354 -f 3019/1824/357 3008/1855/359 3009/1856/360 -f 3009/1856/360 3010/1857/361 3019/1824/357 -f 3010/1857/361 3011/1822/355 3019/1824/357 -f 3011/1822/355 3012/1858/358 3013/1859/343 -f 3013/1859/343 3014/1860/342 3015/1823/356 -f 3015/1823/356 3016/1861/364 3017/1862/363 -f 3017/1862/363 3018/1863/362 3015/1823/356 -f 3018/1863/362 3019/1824/357 3015/1823/356 -f 3011/1822/355 3013/1859/343 3015/1823/356 -f 2826/1784/327 3013/1864/343 3012/1825/358 -f 2822/1782/323 2824/1781/325 3012/1826/358 -f 2838/1797/340 2816/1775/319 3008/1828/359 -f 2816/1775/319 2818/1774/318 3009/1830/360 -f 2822/1779/323 3011/1865/355 3010/1832/361 -f 2838/1797/340 3019/1866/357 3018/1833/362 -f 2820/1777/321 3010/1867/361 3009/1834/360 -f 2836/1794/337 3018/1868/362 3017/1835/363 -f 2832/1790/333 2834/1792/335 3017/1836/363 -f 2832/1790/333 3016/1869/364 3015/1838/356 -f 2830/1788/331 3015/1870/356 3014/1839/342 +f 3279/4978/319 3280/4979/320 3278/4980/321 +f 3281/4981/322 3282/4982/323 3280/4979/320 +f 3283/4983/324 3284/4984/325 3282/4982/323 +f 3285/4985/326 3286/4986/327 3284/4987/325 +f 3287/4988/328 3288/4989/329 3286/4986/327 +f 3289/4990/330 3290/4991/331 3288/4989/329 +f 3291/4992/332 3292/4993/333 3290/4991/331 +f 3293/4994/334 3294/4995/335 3292/4993/333 +f 3295/4996/336 3296/4997/337 3294/4995/335 +f 3297/4998/338 3298/4999/339 3296/4997/337 +f 3293/4994/334 3466/5000/340 3295/4996/336 +f 3299/5001/341 3300/5002/342 3298/4999/339 +f 3301/5003/343 3278/4980/321 3300/5002/342 +f 3288/4989/329 3476/5004/344 3475/5005/345 +f 3462/5006/346 3460/5007/347 3468/5008/348 +f 3293/4994/334 3464/5009/349 3465/5010/350 +f 3289/4990/330 3464/5011/349 3291/4992/332 +f 3287/4988/328 3463/5012/351 3289/4990/330 +f 3285/4985/326 3462/5013/346 3287/4988/328 +f 3279/4978/319 3469/5014/352 3459/5015/353 +f 3279/4978/319 3458/5016/354 3281/4981/322 +f 3285/5017/326 3460/5018/347 3461/5019/355 +f 3301/5003/343 3468/5020/348 3469/5021/352 +f 3283/4983/324 3458/5022/354 3460/5023/347 +f 3299/5001/341 3467/5024/356 3468/5025/348 +f 3295/4996/336 3467/5026/356 3297/4998/338 +f 3473/5027/357 3477/5028/358 3481/5029/359 +f 3288/4989/329 3474/5030/360 3286/4986/327 +f 3284/4987/325 3474/5031/360 3473/5032/357 +f 3300/5002/342 3470/5033/361 3481/5034/359 +f 3278/4980/321 3471/5035/362 3470/5036/361 +f 3284/4984/325 3472/5037/363 3282/4982/323 +f 3300/5002/342 3480/5038/364 3298/4999/339 +f 3282/4982/323 3471/5039/362 3280/4979/320 +f 3298/4999/339 3479/5040/365 3296/4997/337 +f 3294/4995/335 3479/5041/365 3478/5042/366 +f 3294/4995/335 3477/5043/358 3292/4993/333 +f 3292/4993/333 3476/5044/344 3290/4991/331 +f 3279/4978/319 3281/4981/322 3280/4979/320 +f 3281/4981/322 3283/4983/324 3282/4982/323 +f 3283/4983/324 3285/5017/326 3284/4984/325 +f 3285/4985/326 3287/4988/328 3286/4986/327 +f 3287/4988/328 3289/4990/330 3288/4989/329 +f 3289/4990/330 3291/4992/332 3290/4991/331 +f 3291/4992/332 3293/4994/334 3292/4993/333 +f 3293/4994/334 3295/4996/336 3294/4995/335 +f 3295/4996/336 3297/4998/338 3296/4997/337 +f 3297/4998/338 3299/5001/341 3298/4999/339 +f 3293/4994/334 3465/5045/350 3466/5000/340 +f 3299/5001/341 3301/5003/343 3300/5002/342 +f 3301/5003/343 3279/4978/319 3278/4980/321 +f 3288/4989/329 3290/4991/331 3476/5004/344 +f 3460/5007/347 3458/5046/354 3459/5047/353 +f 3459/5047/353 3469/5048/352 3460/5007/347 +f 3469/5048/352 3468/5008/348 3460/5007/347 +f 3468/5008/348 3467/5049/356 3466/5050/340 +f 3466/5050/340 3465/5051/350 3468/5008/348 +f 3465/5051/350 3464/5052/349 3468/5008/348 +f 3464/5052/349 3463/5053/351 3462/5006/346 +f 3462/5006/346 3461/5054/355 3460/5007/347 +f 3464/5052/349 3462/5006/346 3468/5008/348 +f 3293/4994/334 3291/4992/332 3464/5009/349 +f 3289/4990/330 3463/5055/351 3464/5011/349 +f 3287/4988/328 3462/5056/346 3463/5012/351 +f 3285/4985/326 3461/5057/355 3462/5013/346 +f 3279/4978/319 3301/5003/343 3469/5014/352 +f 3279/4978/319 3459/5058/353 3458/5016/354 +f 3285/5017/326 3283/4983/324 3460/5018/347 +f 3301/5003/343 3299/5001/341 3468/5020/348 +f 3283/4983/324 3281/4981/322 3458/5022/354 +f 3299/5001/341 3297/4998/338 3467/5024/356 +f 3295/4996/336 3466/5059/340 3467/5026/356 +f 3481/5029/359 3470/5060/361 3471/5061/362 +f 3471/5061/362 3472/5062/363 3481/5029/359 +f 3472/5062/363 3473/5027/357 3481/5029/359 +f 3473/5027/357 3474/5063/360 3475/5064/345 +f 3475/5064/345 3476/5065/344 3477/5028/358 +f 3477/5028/358 3478/5066/366 3479/5067/365 +f 3479/5067/365 3480/5068/364 3477/5028/358 +f 3480/5068/364 3481/5029/359 3477/5028/358 +f 3473/5027/357 3475/5064/345 3477/5028/358 +f 3288/4989/329 3475/5069/345 3474/5030/360 +f 3284/4987/325 3286/4986/327 3474/5031/360 +f 3300/5002/342 3278/4980/321 3470/5033/361 +f 3278/4980/321 3280/4979/320 3471/5035/362 +f 3284/4984/325 3473/5070/357 3472/5037/363 +f 3300/5002/342 3481/5071/359 3480/5038/364 +f 3282/4982/323 3472/5072/363 3471/5039/362 +f 3298/4999/339 3480/5073/364 3479/5040/365 +f 3294/4995/335 3296/4997/337 3479/5041/365 +f 3294/4995/335 3478/5074/366 3477/5043/358 +f 3292/4993/333 3477/5075/358 3476/5044/344 o V2_Rope v 0.000000 9.000000 1.750000 v 0.000000 8.875000 1.750000 @@ -9343,139 +13186,139 @@ vn -0.6794 0.7194 0.1447 vn 0.6794 0.7194 0.1447 vn 0.7263 -0.6737 -0.1363 s off -f 3093/1871/365 3096/1872/365 3092/1873/365 -f 3098/1874/365 3095/1875/365 3094/1876/365 -f 3097/1877/365 3098/1874/365 3096/1872/365 -f 3177/1878/366 3180/1879/366 3181/1880/366 -f 3179/1881/366 3182/1882/366 3178/1883/366 -f 3182/1882/366 3181/1880/366 3180/1879/366 -f 3093/1871/365 3097/1877/365 3096/1872/365 -f 3098/1874/365 3099/1884/365 3095/1875/365 -f 3097/1877/365 3099/1884/365 3098/1874/365 -f 3177/1878/366 3176/1885/366 3180/1879/366 -f 3179/1881/366 3183/1886/366 3182/1882/366 -f 3182/1882/366 3183/1886/366 3181/1880/366 +f 3555/5076/367 3558/5077/367 3554/5078/367 +f 3560/5079/367 3557/5080/367 3556/5081/367 +f 3559/5082/367 3560/5079/367 3558/5077/367 +f 3639/5083/368 3642/5084/368 3643/5085/368 +f 3641/5086/368 3644/5087/368 3640/5088/368 +f 3644/5087/368 3643/5085/368 3642/5084/368 +f 3555/5076/367 3559/5082/367 3558/5077/367 +f 3560/5079/367 3561/5089/367 3557/5080/367 +f 3559/5082/367 3561/5089/367 3560/5079/367 +f 3639/5083/368 3638/5090/368 3642/5084/368 +f 3641/5086/368 3645/5091/368 3644/5087/368 +f 3644/5087/368 3645/5091/368 3643/5085/368 s 1 -f 3104/1887/367 3113/1888/368 3105/1889/369 -f 3102/1890/370 3111/1891/371 3103/1892/372 -f 3100/1893/373 3109/1894/374 3101/1895/375 -f 3100/1896/373 3114/1897/376 3108/1898/377 -f 3104/1887/367 3111/1891/371 3112/1899/378 -f 3101/1895/375 3110/1900/379 3102/1890/370 -f 3114/1897/376 3115/1901/380 3108/1898/377 -f 3111/1891/371 3119/1902/381 3112/1899/378 -f 3110/1900/379 3116/1903/382 3117/1904/383 -f 3113/1888/368 3119/1902/381 3120/1905/384 -f 3110/1900/379 3118/1906/385 3111/1891/371 -f 3109/1894/374 3115/1907/380 3116/1903/382 -f 3105/1889/369 3113/1888/368 3106/1908/386 -f 3113/1888/368 3120/1905/384 3106/1908/386 -f 3106/1908/386 3114/1897/376 3107/1909/387 -f 3114/1897/376 3106/1908/386 3121/1910/388 -f 3121/1910/388 3122/1911/389 3129/1912/390 -f 3121/1910/388 3123/1913/391 3115/1901/380 -f 3120/1905/384 3122/1911/389 3106/1914/386 -f 3118/1906/385 3127/1915/392 3119/1902/381 -f 3117/1904/383 3124/1916/393 3125/1917/394 -f 3119/1902/381 3128/1918/395 3120/1905/384 -f 3117/1904/383 3126/1919/396 3118/1906/385 -f 3115/1907/380 3124/1916/393 3116/1903/382 -f 3107/1909/387 3136/1920/397 3106/1921/386 -f 3105/1889/369 3134/1922/398 3104/1887/367 -f 3103/1892/372 3132/1923/399 3102/1890/370 -f 3101/1895/375 3130/1924/393 3100/1893/373 -f 3100/1896/373 3137/1925/400 3107/1909/387 -f 3106/1921/386 3135/1926/401 3105/1889/369 -f 3104/1887/367 3133/1927/402 3103/1892/372 -f 3102/1890/370 3131/1928/403 3101/1895/375 -f 3148/1929/366 3141/1930/379 3140/1931/366 -f 3146/1932/389 3139/1933/404 3138/1934/389 -f 3153/1935/386 3138/1934/389 3145/1936/386 -f 3151/1937/405 3144/1938/365 3143/1939/405 -f 3149/1940/379 3142/1941/394 3141/1930/379 -f 3147/1942/404 3140/1931/366 3139/1933/404 -f 3152/1943/365 3145/1936/386 3144/1938/365 -f 3150/1944/394 3143/1939/405 3142/1945/394 -f 3136/1920/397 3158/1946/406 3135/1926/401 -f 3134/1922/398 3156/1947/407 3133/1927/402 -f 3132/1923/399 3154/1948/408 3131/1928/403 -f 3136/1920/397 3160/1949/409 3159/1950/410 -f 3135/1926/401 3157/1951/395 3134/1922/398 -f 3132/1923/399 3156/1947/407 3155/1952/411 -f 3154/1948/408 3162/1953/412 3161/1954/413 -f 3160/1949/409 3166/1955/414 3159/1950/410 -f 3158/1946/406 3164/1956/415 3157/1951/395 -f 3155/1952/411 3163/1957/416 3162/1953/412 -f 3158/1946/406 3166/1955/414 3165/1958/417 -f 3156/1947/407 3164/1956/415 3163/1957/416 -f 3131/1928/403 3154/1948/408 3130/1959/393 -f 3154/1948/408 3161/1954/413 3130/1959/393 -f 3137/1925/400 3130/1960/393 3160/1949/409 -f 3160/1949/409 3130/1960/393 3167/1961/418 -f 3167/1961/418 3168/1962/394 3175/1963/405 -f 3167/1961/418 3174/1964/365 3166/1955/414 -f 3161/1954/413 3168/1965/394 3130/1966/393 -f 3165/1958/417 3172/1967/389 3164/1956/415 -f 3163/1957/416 3170/1968/366 3162/1953/412 -f 3166/1955/414 3173/1969/386 3165/1958/417 -f 3164/1956/415 3171/1970/404 3163/1957/416 -f 3161/1954/413 3170/1968/366 3169/1971/379 -f 3104/1887/367 3112/1899/378 3113/1888/368 -f 3102/1890/370 3110/1900/379 3111/1891/371 -f 3100/1893/373 3108/1972/377 3109/1894/374 -f 3100/1896/373 3107/1909/387 3114/1897/376 -f 3104/1887/367 3103/1892/372 3111/1891/371 -f 3101/1895/375 3109/1894/374 3110/1900/379 -f 3114/1897/376 3121/1910/388 3115/1901/380 -f 3111/1891/371 3118/1906/385 3119/1902/381 -f 3110/1900/379 3109/1894/374 3116/1903/382 -f 3113/1888/368 3112/1899/378 3119/1902/381 -f 3110/1900/379 3117/1904/383 3118/1906/385 -f 3109/1894/374 3108/1972/377 3115/1907/380 -f 3121/1910/388 3106/1914/386 3122/1911/389 -f 3121/1910/388 3129/1912/390 3123/1913/391 -f 3120/1905/384 3128/1918/395 3122/1911/389 -f 3118/1906/385 3126/1919/396 3127/1915/392 -f 3117/1904/383 3116/1903/382 3124/1916/393 -f 3119/1902/381 3127/1915/392 3128/1918/395 -f 3117/1904/383 3125/1917/394 3126/1919/396 -f 3115/1907/380 3123/1973/391 3124/1916/393 -f 3107/1909/387 3137/1925/400 3136/1920/397 -f 3105/1889/369 3135/1926/401 3134/1922/398 -f 3103/1892/372 3133/1927/402 3132/1923/399 -f 3101/1895/375 3131/1928/403 3130/1924/393 -f 3100/1896/373 3130/1974/393 3137/1925/400 -f 3106/1921/386 3136/1920/397 3135/1926/401 -f 3104/1887/367 3134/1922/398 3133/1927/402 -f 3102/1890/370 3132/1923/399 3131/1928/403 -f 3148/1929/366 3149/1940/379 3141/1930/379 -f 3146/1932/389 3147/1942/404 3139/1933/404 -f 3153/1935/386 3146/1932/389 3138/1934/389 -f 3151/1937/405 3152/1943/365 3144/1938/365 -f 3149/1940/379 3150/1975/394 3142/1941/394 -f 3147/1942/404 3148/1929/366 3140/1931/366 -f 3152/1943/365 3153/1935/386 3145/1936/386 -f 3150/1944/394 3151/1937/405 3143/1939/405 -f 3136/1920/397 3159/1950/410 3158/1946/406 -f 3134/1922/398 3157/1951/395 3156/1947/407 -f 3132/1923/399 3155/1952/411 3154/1948/408 -f 3136/1920/397 3137/1925/400 3160/1949/409 -f 3135/1926/401 3158/1946/406 3157/1951/395 -f 3132/1923/399 3133/1927/402 3156/1947/407 -f 3154/1948/408 3155/1952/411 3162/1953/412 -f 3160/1949/409 3167/1961/418 3166/1955/414 -f 3158/1946/406 3165/1958/417 3164/1956/415 -f 3155/1952/411 3156/1947/407 3163/1957/416 -f 3158/1946/406 3159/1950/410 3166/1955/414 -f 3156/1947/407 3157/1951/395 3164/1956/415 -f 3167/1961/418 3130/1976/393 3168/1962/394 -f 3167/1961/418 3175/1963/405 3174/1964/365 -f 3161/1954/413 3169/1971/379 3168/1965/394 -f 3165/1958/417 3173/1969/386 3172/1967/389 -f 3163/1957/416 3171/1970/404 3170/1968/366 -f 3166/1955/414 3174/1964/365 3173/1969/386 -f 3164/1956/415 3172/1967/389 3171/1970/404 -f 3161/1954/413 3162/1953/412 3170/1968/366 +f 3566/5092/369 3575/5093/370 3567/5094/371 +f 3564/5095/372 3573/5096/373 3565/5097/374 +f 3562/5098/375 3571/5099/376 3563/5100/377 +f 3562/5101/375 3576/5102/378 3570/5103/379 +f 3566/5092/369 3573/5096/373 3574/5104/380 +f 3563/5100/377 3572/5105/381 3564/5095/372 +f 3576/5102/378 3577/5106/382 3570/5103/379 +f 3573/5096/373 3581/5107/383 3574/5104/380 +f 3572/5105/381 3578/5108/384 3579/5109/385 +f 3575/5093/370 3581/5107/383 3582/5110/386 +f 3572/5105/381 3580/5111/387 3573/5096/373 +f 3571/5099/376 3577/5112/382 3578/5108/384 +f 3567/5094/371 3575/5093/370 3568/5113/388 +f 3575/5093/370 3582/5110/386 3568/5113/388 +f 3568/5113/388 3576/5102/378 3569/5114/389 +f 3576/5102/378 3568/5113/388 3583/5115/390 +f 3583/5115/390 3584/5116/391 3591/5117/392 +f 3583/5115/390 3585/5118/393 3577/5106/382 +f 3582/5110/386 3584/5116/391 3568/5119/388 +f 3580/5111/387 3589/5120/394 3581/5107/383 +f 3579/5109/385 3586/5121/395 3587/5122/396 +f 3581/5107/383 3590/5123/397 3582/5110/386 +f 3579/5109/385 3588/5124/398 3580/5111/387 +f 3577/5112/382 3586/5121/395 3578/5108/384 +f 3569/5114/389 3598/5125/399 3568/5126/388 +f 3567/5094/371 3596/5127/400 3566/5092/369 +f 3565/5097/374 3594/5128/401 3564/5095/372 +f 3563/5100/377 3592/5129/395 3562/5098/375 +f 3562/5101/375 3599/5130/402 3569/5114/389 +f 3568/5126/388 3597/5131/403 3567/5094/371 +f 3566/5092/369 3595/5132/404 3565/5097/374 +f 3564/5095/372 3593/5133/405 3563/5100/377 +f 3610/5134/368 3603/5135/381 3602/5136/368 +f 3608/5137/391 3601/5138/406 3600/5139/391 +f 3615/5140/388 3600/5139/391 3607/5141/388 +f 3613/5142/407 3606/5143/367 3605/5144/407 +f 3611/5145/381 3604/5146/396 3603/5135/381 +f 3609/5147/406 3602/5136/368 3601/5138/406 +f 3614/5148/367 3607/5141/388 3606/5143/367 +f 3612/5149/396 3605/5144/407 3604/5150/396 +f 3598/5125/399 3620/5151/408 3597/5131/403 +f 3596/5127/400 3618/5152/409 3595/5132/404 +f 3594/5128/401 3616/5153/410 3593/5133/405 +f 3598/5125/399 3622/5154/411 3621/5155/412 +f 3597/5131/403 3619/5156/397 3596/5127/400 +f 3594/5128/401 3618/5152/409 3617/5157/413 +f 3616/5153/410 3624/5158/414 3623/5159/415 +f 3622/5154/411 3628/5160/416 3621/5155/412 +f 3620/5151/408 3626/5161/417 3619/5156/397 +f 3617/5157/413 3625/5162/418 3624/5158/414 +f 3620/5151/408 3628/5160/416 3627/5163/419 +f 3618/5152/409 3626/5161/417 3625/5162/418 +f 3593/5133/405 3616/5153/410 3592/5164/395 +f 3616/5153/410 3623/5159/415 3592/5164/395 +f 3599/5130/402 3592/5165/395 3622/5154/411 +f 3622/5154/411 3592/5165/395 3629/5166/420 +f 3629/5166/420 3630/5167/396 3637/5168/407 +f 3629/5166/420 3636/5169/367 3628/5160/416 +f 3623/5159/415 3630/5170/396 3592/5171/395 +f 3627/5163/419 3634/5172/391 3626/5161/417 +f 3625/5162/418 3632/5173/368 3624/5158/414 +f 3628/5160/416 3635/5174/388 3627/5163/419 +f 3626/5161/417 3633/5175/406 3625/5162/418 +f 3623/5159/415 3632/5173/368 3631/5176/381 +f 3566/5092/369 3574/5104/380 3575/5093/370 +f 3564/5095/372 3572/5105/381 3573/5096/373 +f 3562/5098/375 3570/5177/379 3571/5099/376 +f 3562/5101/375 3569/5114/389 3576/5102/378 +f 3566/5092/369 3565/5097/374 3573/5096/373 +f 3563/5100/377 3571/5099/376 3572/5105/381 +f 3576/5102/378 3583/5115/390 3577/5106/382 +f 3573/5096/373 3580/5111/387 3581/5107/383 +f 3572/5105/381 3571/5099/376 3578/5108/384 +f 3575/5093/370 3574/5104/380 3581/5107/383 +f 3572/5105/381 3579/5109/385 3580/5111/387 +f 3571/5099/376 3570/5177/379 3577/5112/382 +f 3583/5115/390 3568/5119/388 3584/5116/391 +f 3583/5115/390 3591/5117/392 3585/5118/393 +f 3582/5110/386 3590/5123/397 3584/5116/391 +f 3580/5111/387 3588/5124/398 3589/5120/394 +f 3579/5109/385 3578/5108/384 3586/5121/395 +f 3581/5107/383 3589/5120/394 3590/5123/397 +f 3579/5109/385 3587/5122/396 3588/5124/398 +f 3577/5112/382 3585/5178/393 3586/5121/395 +f 3569/5114/389 3599/5130/402 3598/5125/399 +f 3567/5094/371 3597/5131/403 3596/5127/400 +f 3565/5097/374 3595/5132/404 3594/5128/401 +f 3563/5100/377 3593/5133/405 3592/5129/395 +f 3562/5101/375 3592/5179/395 3599/5130/402 +f 3568/5126/388 3598/5125/399 3597/5131/403 +f 3566/5092/369 3596/5127/400 3595/5132/404 +f 3564/5095/372 3594/5128/401 3593/5133/405 +f 3610/5134/368 3611/5145/381 3603/5135/381 +f 3608/5137/391 3609/5147/406 3601/5138/406 +f 3615/5140/388 3608/5137/391 3600/5139/391 +f 3613/5142/407 3614/5148/367 3606/5143/367 +f 3611/5145/381 3612/5180/396 3604/5146/396 +f 3609/5147/406 3610/5134/368 3602/5136/368 +f 3614/5148/367 3615/5140/388 3607/5141/388 +f 3612/5149/396 3613/5142/407 3605/5144/407 +f 3598/5125/399 3621/5155/412 3620/5151/408 +f 3596/5127/400 3619/5156/397 3618/5152/409 +f 3594/5128/401 3617/5157/413 3616/5153/410 +f 3598/5125/399 3599/5130/402 3622/5154/411 +f 3597/5131/403 3620/5151/408 3619/5156/397 +f 3594/5128/401 3595/5132/404 3618/5152/409 +f 3616/5153/410 3617/5157/413 3624/5158/414 +f 3622/5154/411 3629/5166/420 3628/5160/416 +f 3620/5151/408 3627/5163/419 3626/5161/417 +f 3617/5157/413 3618/5152/409 3625/5162/418 +f 3620/5151/408 3621/5155/412 3628/5160/416 +f 3618/5152/409 3619/5156/397 3626/5161/417 +f 3629/5166/420 3592/5181/395 3630/5167/396 +f 3629/5166/420 3637/5168/407 3636/5169/367 +f 3623/5159/415 3631/5176/381 3630/5170/396 +f 3627/5163/419 3635/5174/388 3634/5172/391 +f 3625/5162/418 3633/5175/406 3632/5173/368 +f 3628/5160/416 3636/5169/367 3635/5174/388 +f 3626/5161/417 3634/5172/391 3633/5175/406 +f 3623/5159/415 3624/5158/414 3632/5173/368 o V2_Pivot v 0.500000 1.250000 -1.625000 v 0.750000 1.250000 -1.625000 @@ -9559,42 +13402,42 @@ vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 3190/1977/419 3188/1978/419 3189/1979/419 -f 3187/1980/420 3190/1981/420 3185/1982/420 -f 3184/1983/421 3188/1978/421 3186/1984/421 -f 3186/1984/422 3191/1985/422 3187/1986/422 -f 3185/1982/423 3189/1987/423 3184/1983/423 -f 3198/1988/419 3196/1989/419 3197/1990/419 -f 3195/1991/420 3198/1992/420 3193/1993/420 -f 3192/1994/421 3196/1989/421 3194/1995/421 -f 3194/1995/422 3199/1996/422 3195/1997/422 -f 3193/1993/423 3197/1998/423 3192/1994/423 -f 3203/1999/420 3206/2000/420 3201/2001/420 -f 3200/2002/421 3204/2003/421 3202/2004/421 -f 3202/2004/422 3207/2005/422 3203/2006/422 -f 3201/2001/423 3205/2007/423 3200/2002/423 -f 3211/2008/420 3214/2009/420 3209/2010/420 -f 3208/2011/421 3212/2012/421 3210/2013/421 -f 3210/2013/422 3215/2014/422 3211/2015/422 -f 3209/2010/423 3213/2016/423 3208/2011/423 -f 3190/1977/419 3191/1985/419 3188/1978/419 -f 3187/1980/420 3191/2017/420 3190/1981/420 -f 3184/1983/421 3189/1987/421 3188/1978/421 -f 3186/1984/422 3188/1978/422 3191/1985/422 -f 3185/1982/423 3190/1981/423 3189/1987/423 -f 3198/1988/419 3199/1996/419 3196/1989/419 -f 3195/1991/420 3199/2018/420 3198/1992/420 -f 3192/1994/421 3197/1998/421 3196/1989/421 -f 3194/1995/422 3196/1989/422 3199/1996/422 -f 3193/1993/423 3198/1992/423 3197/1998/423 -f 3203/1999/420 3207/2019/420 3206/2000/420 -f 3200/2002/421 3205/2007/421 3204/2003/421 -f 3202/2004/422 3204/2003/422 3207/2005/422 -f 3201/2001/423 3206/2000/423 3205/2007/423 -f 3211/2008/420 3215/2020/420 3214/2009/420 -f 3208/2011/421 3213/2016/421 3212/2012/421 -f 3210/2013/422 3212/2012/422 3215/2014/422 -f 3209/2010/423 3214/2009/423 3213/2016/423 +f 3652/5182/421 3650/5183/421 3651/5184/421 +f 3649/5185/422 3652/5186/422 3647/5187/422 +f 3646/5188/423 3650/5183/423 3648/5189/423 +f 3648/5189/424 3653/5190/424 3649/5191/424 +f 3647/5187/425 3651/5192/425 3646/5188/425 +f 3660/5193/421 3658/5194/421 3659/5195/421 +f 3657/5196/422 3660/5197/422 3655/5198/422 +f 3654/5199/423 3658/5194/423 3656/5200/423 +f 3656/5200/424 3661/5201/424 3657/5202/424 +f 3655/5198/425 3659/5203/425 3654/5199/425 +f 3665/5204/422 3668/5205/422 3663/5206/422 +f 3662/5207/423 3666/5208/423 3664/5209/423 +f 3664/5209/424 3669/5210/424 3665/5211/424 +f 3663/5206/425 3667/5212/425 3662/5207/425 +f 3673/5213/422 3676/5214/422 3671/5215/422 +f 3670/5216/423 3674/5217/423 3672/5218/423 +f 3672/5218/424 3677/5219/424 3673/5220/424 +f 3671/5215/425 3675/5221/425 3670/5216/425 +f 3652/5182/421 3653/5190/421 3650/5183/421 +f 3649/5185/422 3653/5222/422 3652/5186/422 +f 3646/5188/423 3651/5192/423 3650/5183/423 +f 3648/5189/424 3650/5183/424 3653/5190/424 +f 3647/5187/425 3652/5186/425 3651/5192/425 +f 3660/5193/421 3661/5201/421 3658/5194/421 +f 3657/5196/422 3661/5223/422 3660/5197/422 +f 3654/5199/423 3659/5203/423 3658/5194/423 +f 3656/5200/424 3658/5194/424 3661/5201/424 +f 3655/5198/425 3660/5197/425 3659/5203/425 +f 3665/5204/422 3669/5224/422 3668/5205/422 +f 3662/5207/423 3667/5212/423 3666/5208/423 +f 3664/5209/424 3666/5208/424 3669/5210/424 +f 3663/5206/425 3668/5205/425 3667/5212/425 +f 3673/5213/422 3677/5225/422 3676/5214/422 +f 3670/5216/423 3675/5221/423 3674/5217/423 +f 3672/5218/424 3674/5217/424 3677/5219/424 +f 3671/5215/425 3676/5214/425 3675/5221/425 o V2_Erector v 0.500000 2.750000 -1.875000 v 0.500000 2.750000 -1.625000 @@ -9983,174 +13826,174 @@ vn -0.7071 0.0000 0.7071 vn 0.7071 0.0000 0.7071 vn 0.7071 0.0000 -0.7071 s off -f 3246/2021/424 3244/2022/424 3245/2023/424 -f 3242/2024/424 3240/2025/424 3241/2026/424 -f 3236/2027/425 3238/2028/425 3237/2029/425 -f 3232/2030/425 3234/2031/425 3233/2032/425 -f 3216/2033/425 3218/2034/425 3217/2035/425 -f 3220/2036/425 3222/2037/425 3221/2038/425 -f 3226/2039/424 3224/2040/424 3225/2041/424 -f 3230/2042/424 3228/2043/424 3229/2044/424 -f 3223/2045/426 3230/2046/426 3222/2047/426 -f 3221/2048/427 3228/2043/427 3220/2036/427 -f 3219/2049/426 3226/2050/426 3218/2051/426 -f 3217/2052/427 3224/2040/427 3216/2033/427 -f 3220/2036/428 3231/2053/428 3223/2054/428 -f 3222/2047/429 3229/2055/429 3221/2048/429 -f 3216/2033/428 3227/2056/428 3219/2057/428 -f 3218/2051/429 3225/2058/429 3217/2052/429 -f 3239/2059/426 3246/2060/426 3238/2061/426 -f 3237/2062/427 3244/2022/427 3236/2027/427 -f 3235/2063/426 3242/2064/426 3234/2065/426 -f 3233/2066/427 3240/2025/427 3232/2030/427 -f 3236/2027/428 3247/2067/428 3239/2068/428 -f 3238/2061/429 3245/2069/429 3237/2062/429 -f 3232/2030/428 3243/2070/428 3235/2071/428 -f 3234/2065/429 3241/2072/429 3233/2066/429 -f 3252/2073/424 3248/2074/424 3253/2075/424 -f 3254/2076/424 3251/2077/424 3255/2078/424 -f 3248/2074/424 3251/2077/424 3249/2079/424 -f 3263/2080/424 3260/2081/424 3262/2082/424 -f 3257/2083/424 3260/2081/424 3256/2084/424 -f 3259/2085/424 3263/2080/424 3258/2086/424 -f 3261/2087/429 3268/2088/429 3260/2089/429 -f 3263/2080/430 3266/2090/430 3258/2091/430 -f 3260/2089/431 3264/2092/431 3256/2084/431 -f 3262/2082/428 3271/2093/428 3263/2080/428 -f 3259/2085/432 3269/2094/432 3261/2087/432 -f 3257/2095/433 3270/2096/433 3262/2082/433 -f 3265/2097/425 3268/2098/425 3270/2096/425 -f 3271/2093/425 3268/2098/425 3269/2099/425 -f 3267/2100/425 3271/2093/425 3269/2099/425 -f 3279/2101/426 3273/2102/426 3275/2103/426 -f 3278/2104/425 3275/2105/425 3274/2106/425 -f 3276/2107/427 3274/2106/427 3272/2108/427 -f 3273/2102/424 3276/2107/424 3272/2108/424 -f 3287/2109/426 3281/2110/426 3283/2111/426 -f 3286/2112/425 3283/2113/425 3282/2114/425 -f 3284/2115/427 3282/2114/427 3280/2116/427 -f 3281/2110/424 3284/2115/424 3280/2116/424 -f 3295/2117/426 3289/2118/426 3291/2119/426 -f 3294/2120/425 3291/2121/425 3290/2122/425 -f 3292/2123/427 3290/2122/427 3288/2124/427 -f 3289/2118/424 3292/2123/424 3288/2124/424 -f 3303/2125/426 3297/2126/426 3299/2127/426 -f 3302/2128/425 3299/2129/425 3298/2130/425 -f 3300/2131/427 3298/2130/427 3296/2132/427 -f 3297/2126/424 3300/2131/424 3296/2132/424 -f 3311/2133/426 3305/2134/426 3307/2135/426 -f 3310/2136/425 3307/2137/425 3306/2138/425 -f 3308/2139/427 3306/2138/427 3304/2140/427 -f 3305/2134/424 3308/2139/424 3304/2140/424 -f 3319/2141/426 3313/2142/426 3315/2143/426 -f 3318/2144/425 3315/2145/425 3314/2146/425 -f 3316/2147/427 3314/2146/427 3312/2148/427 -f 3313/2142/424 3316/2147/424 3312/2148/424 -f 3321/2149/428 3324/2150/428 3320/2151/428 -f 3323/2152/428 3326/2153/428 3327/2154/428 -f 3329/2155/428 3332/2156/428 3328/2157/428 -f 3331/2158/428 3334/2159/428 3335/2160/428 -f 3337/2161/428 3340/2162/428 3336/2163/428 -f 3339/2164/428 3342/2165/428 3343/2166/428 -f 3250/2167/429 3348/2168/429 3251/2169/429 -f 3248/2074/430 3346/2170/430 3253/2171/430 -f 3251/2169/431 3344/2172/431 3255/2078/431 -f 3249/2079/428 3351/2173/428 3248/2074/428 -f 3252/2073/432 3349/2174/432 3250/2167/432 -f 3254/2175/433 3350/2176/433 3249/2079/433 -f 3345/2177/425 3348/2178/425 3350/2176/425 -f 3351/2173/425 3348/2178/425 3349/2179/425 -f 3347/2180/425 3351/2173/425 3349/2179/425 -f 3356/2181/429 3353/2182/429 3352/2183/429 -f 3355/2184/429 3358/2185/429 3354/2186/429 -f 3364/2187/429 3361/2188/429 3360/2189/429 -f 3363/2190/429 3366/2191/429 3362/2192/429 -f 3372/2193/429 3369/2194/429 3368/2195/429 -f 3371/2196/429 3374/2197/429 3370/2198/429 -f 3246/2021/424 3247/2067/424 3244/2022/424 -f 3242/2024/424 3243/2070/424 3240/2025/424 -f 3236/2027/425 3239/2068/425 3238/2028/425 -f 3232/2030/425 3235/2071/425 3234/2031/425 -f 3216/2033/425 3219/2057/425 3218/2034/425 -f 3220/2036/425 3223/2054/425 3222/2037/425 -f 3226/2039/424 3227/2056/424 3224/2040/424 -f 3230/2042/424 3231/2053/424 3228/2043/424 -f 3223/2045/426 3231/2199/426 3230/2046/426 -f 3221/2048/427 3229/2055/427 3228/2043/427 -f 3219/2049/426 3227/2200/426 3226/2050/426 -f 3217/2052/427 3225/2058/427 3224/2040/427 -f 3220/2036/428 3228/2043/428 3231/2053/428 -f 3222/2047/429 3230/2046/429 3229/2055/429 -f 3216/2033/428 3224/2040/428 3227/2056/428 -f 3218/2051/429 3226/2050/429 3225/2058/429 -f 3239/2059/426 3247/2201/426 3246/2060/426 -f 3237/2062/427 3245/2069/427 3244/2022/427 -f 3235/2063/426 3243/2202/426 3242/2064/426 -f 3233/2066/427 3241/2072/427 3240/2025/427 -f 3236/2027/428 3244/2022/428 3247/2067/428 -f 3238/2061/429 3246/2060/429 3245/2069/429 -f 3232/2030/428 3240/2025/428 3243/2070/428 -f 3234/2065/429 3242/2064/429 3241/2072/429 -f 3252/2073/424 3250/2203/424 3248/2074/424 -f 3254/2076/424 3249/2079/424 3251/2077/424 -f 3248/2074/424 3250/2203/424 3251/2077/424 -f 3263/2080/424 3261/2204/424 3260/2081/424 -f 3257/2083/424 3262/2082/424 3260/2081/424 -f 3259/2085/424 3261/2204/424 3263/2080/424 -f 3261/2087/429 3269/2094/429 3268/2088/429 -f 3263/2080/430 3271/2093/430 3266/2090/430 -f 3260/2089/431 3268/2088/431 3264/2092/431 -f 3262/2082/428 3270/2096/428 3271/2093/428 -f 3259/2085/432 3267/2205/432 3269/2094/432 -f 3257/2095/433 3265/2206/433 3270/2096/433 -f 3265/2097/425 3264/2207/425 3268/2098/425 -f 3271/2093/425 3270/2096/425 3268/2098/425 -f 3267/2100/425 3266/2208/425 3271/2093/425 -f 3279/2101/426 3277/2209/426 3273/2102/426 -f 3278/2104/425 3279/2210/425 3275/2105/425 -f 3276/2107/427 3278/2104/427 3274/2106/427 -f 3273/2102/424 3277/2209/424 3276/2107/424 -f 3287/2109/426 3285/2211/426 3281/2110/426 -f 3286/2112/425 3287/2212/425 3283/2113/425 -f 3284/2115/427 3286/2112/427 3282/2114/427 -f 3281/2110/424 3285/2211/424 3284/2115/424 -f 3295/2117/426 3293/2213/426 3289/2118/426 -f 3294/2120/425 3295/2214/425 3291/2121/425 -f 3292/2123/427 3294/2120/427 3290/2122/427 -f 3289/2118/424 3293/2213/424 3292/2123/424 -f 3303/2125/426 3301/2215/426 3297/2126/426 -f 3302/2128/425 3303/2216/425 3299/2129/425 -f 3300/2131/427 3302/2128/427 3298/2130/427 -f 3297/2126/424 3301/2215/424 3300/2131/424 -f 3311/2133/426 3309/2217/426 3305/2134/426 -f 3310/2136/425 3311/2218/425 3307/2137/425 -f 3308/2139/427 3310/2136/427 3306/2138/427 -f 3305/2134/424 3309/2217/424 3308/2139/424 -f 3319/2141/426 3317/2219/426 3313/2142/426 -f 3318/2144/425 3319/2220/425 3315/2145/425 -f 3316/2147/427 3318/2144/427 3314/2146/427 -f 3313/2142/424 3317/2219/424 3316/2147/424 -f 3321/2149/428 3325/2221/428 3324/2150/428 -f 3323/2152/428 3322/2222/428 3326/2153/428 -f 3329/2155/428 3333/2223/428 3332/2156/428 -f 3331/2158/428 3330/2224/428 3334/2159/428 -f 3337/2161/428 3341/2225/428 3340/2162/428 -f 3339/2164/428 3338/2226/428 3342/2165/428 -f 3250/2167/429 3349/2174/429 3348/2168/429 -f 3248/2074/430 3351/2173/430 3346/2170/430 -f 3251/2169/431 3348/2168/431 3344/2172/431 -f 3249/2079/428 3350/2176/428 3351/2173/428 -f 3252/2073/432 3347/2227/432 3349/2174/432 -f 3254/2175/433 3345/2228/433 3350/2176/433 -f 3345/2177/425 3344/2229/425 3348/2178/425 -f 3351/2173/425 3350/2176/425 3348/2178/425 -f 3347/2180/425 3346/2230/425 3351/2173/425 -f 3356/2181/429 3357/2231/429 3353/2182/429 -f 3355/2184/429 3359/2232/429 3358/2185/429 -f 3364/2187/429 3365/2233/429 3361/2188/429 -f 3363/2190/429 3367/2234/429 3366/2191/429 -f 3372/2193/429 3373/2235/429 3369/2194/429 -f 3371/2196/429 3375/2236/429 3374/2197/429 +f 3708/5226/426 3706/5227/426 3707/5228/426 +f 3704/5229/426 3702/5230/426 3703/5231/426 +f 3698/5232/427 3700/5233/427 3699/5234/427 +f 3694/5235/427 3696/5236/427 3695/5237/427 +f 3678/5238/427 3680/5239/427 3679/5240/427 +f 3682/5241/427 3684/5242/427 3683/5243/427 +f 3688/5244/426 3686/5245/426 3687/5246/426 +f 3692/5247/426 3690/5248/426 3691/5249/426 +f 3685/5250/428 3692/5251/428 3684/5252/428 +f 3683/5253/429 3690/5248/429 3682/5241/429 +f 3681/5254/428 3688/5255/428 3680/5256/428 +f 3679/5257/429 3686/5245/429 3678/5238/429 +f 3682/5241/430 3693/5258/430 3685/5259/430 +f 3684/5252/431 3691/5260/431 3683/5253/431 +f 3678/5238/430 3689/5261/430 3681/5262/430 +f 3680/5256/431 3687/5263/431 3679/5257/431 +f 3701/5264/428 3708/5265/428 3700/5266/428 +f 3699/5267/429 3706/5227/429 3698/5232/429 +f 3697/5268/428 3704/5269/428 3696/5270/428 +f 3695/5271/429 3702/5230/429 3694/5235/429 +f 3698/5232/430 3709/5272/430 3701/5273/430 +f 3700/5266/431 3707/5274/431 3699/5267/431 +f 3694/5235/430 3705/5275/430 3697/5276/430 +f 3696/5270/431 3703/5277/431 3695/5271/431 +f 3714/5278/426 3710/5279/426 3715/5280/426 +f 3716/5281/426 3713/5282/426 3717/5283/426 +f 3710/5279/426 3713/5282/426 3711/5284/426 +f 3725/5285/426 3722/5286/426 3724/5287/426 +f 3719/5288/426 3722/5286/426 3718/5289/426 +f 3721/5290/426 3725/5285/426 3720/5291/426 +f 3723/5292/431 3730/5293/431 3722/5294/431 +f 3725/5285/432 3728/5295/432 3720/5296/432 +f 3722/5294/433 3726/5297/433 3718/5289/433 +f 3724/5287/430 3733/5298/430 3725/5285/430 +f 3721/5290/434 3731/5299/434 3723/5292/434 +f 3719/5300/435 3732/5301/435 3724/5287/435 +f 3727/5302/427 3730/5303/427 3732/5301/427 +f 3733/5298/427 3730/5303/427 3731/5304/427 +f 3729/5305/427 3733/5298/427 3731/5304/427 +f 3741/5306/428 3735/5307/428 3737/5308/428 +f 3740/5309/427 3737/5310/427 3736/5311/427 +f 3738/5312/429 3736/5311/429 3734/5313/429 +f 3735/5307/426 3738/5312/426 3734/5313/426 +f 3749/5314/428 3743/5315/428 3745/5316/428 +f 3748/5317/427 3745/5318/427 3744/5319/427 +f 3746/5320/429 3744/5319/429 3742/5321/429 +f 3743/5315/426 3746/5320/426 3742/5321/426 +f 3757/5322/428 3751/5323/428 3753/5324/428 +f 3756/5325/427 3753/5326/427 3752/5327/427 +f 3754/5328/429 3752/5327/429 3750/5329/429 +f 3751/5323/426 3754/5328/426 3750/5329/426 +f 3765/5330/428 3759/5331/428 3761/5332/428 +f 3764/5333/427 3761/5334/427 3760/5335/427 +f 3762/5336/429 3760/5335/429 3758/5337/429 +f 3759/5331/426 3762/5336/426 3758/5337/426 +f 3773/5338/428 3767/5339/428 3769/5340/428 +f 3772/5341/427 3769/5342/427 3768/5343/427 +f 3770/5344/429 3768/5343/429 3766/5345/429 +f 3767/5339/426 3770/5344/426 3766/5345/426 +f 3781/5346/428 3775/5347/428 3777/5348/428 +f 3780/5349/427 3777/5350/427 3776/5351/427 +f 3778/5352/429 3776/5351/429 3774/5353/429 +f 3775/5347/426 3778/5352/426 3774/5353/426 +f 3783/5354/430 3786/5355/430 3782/5356/430 +f 3785/5357/430 3788/5358/430 3789/5359/430 +f 3791/5360/430 3794/5361/430 3790/5362/430 +f 3793/5363/430 3796/5364/430 3797/5365/430 +f 3799/5366/430 3802/5367/430 3798/5368/430 +f 3801/5369/430 3804/5370/430 3805/5371/430 +f 3712/5372/431 3810/5373/431 3713/5374/431 +f 3710/5279/432 3808/5375/432 3715/5376/432 +f 3713/5374/433 3806/5377/433 3717/5283/433 +f 3711/5284/430 3813/5378/430 3710/5279/430 +f 3714/5278/434 3811/5379/434 3712/5372/434 +f 3716/5380/435 3812/5381/435 3711/5284/435 +f 3807/5382/427 3810/5383/427 3812/5381/427 +f 3813/5378/427 3810/5383/427 3811/5384/427 +f 3809/5385/427 3813/5378/427 3811/5384/427 +f 3818/5386/431 3815/5387/431 3814/5388/431 +f 3817/5389/431 3820/5390/431 3816/5391/431 +f 3826/5392/431 3823/5393/431 3822/5394/431 +f 3825/5395/431 3828/5396/431 3824/5397/431 +f 3834/5398/431 3831/5399/431 3830/5400/431 +f 3833/5401/431 3836/5402/431 3832/5403/431 +f 3708/5226/426 3709/5272/426 3706/5227/426 +f 3704/5229/426 3705/5275/426 3702/5230/426 +f 3698/5232/427 3701/5273/427 3700/5233/427 +f 3694/5235/427 3697/5276/427 3696/5236/427 +f 3678/5238/427 3681/5262/427 3680/5239/427 +f 3682/5241/427 3685/5259/427 3684/5242/427 +f 3688/5244/426 3689/5261/426 3686/5245/426 +f 3692/5247/426 3693/5258/426 3690/5248/426 +f 3685/5250/428 3693/5404/428 3692/5251/428 +f 3683/5253/429 3691/5260/429 3690/5248/429 +f 3681/5254/428 3689/5405/428 3688/5255/428 +f 3679/5257/429 3687/5263/429 3686/5245/429 +f 3682/5241/430 3690/5248/430 3693/5258/430 +f 3684/5252/431 3692/5251/431 3691/5260/431 +f 3678/5238/430 3686/5245/430 3689/5261/430 +f 3680/5256/431 3688/5255/431 3687/5263/431 +f 3701/5264/428 3709/5406/428 3708/5265/428 +f 3699/5267/429 3707/5274/429 3706/5227/429 +f 3697/5268/428 3705/5407/428 3704/5269/428 +f 3695/5271/429 3703/5277/429 3702/5230/429 +f 3698/5232/430 3706/5227/430 3709/5272/430 +f 3700/5266/431 3708/5265/431 3707/5274/431 +f 3694/5235/430 3702/5230/430 3705/5275/430 +f 3696/5270/431 3704/5269/431 3703/5277/431 +f 3714/5278/426 3712/5408/426 3710/5279/426 +f 3716/5281/426 3711/5284/426 3713/5282/426 +f 3710/5279/426 3712/5408/426 3713/5282/426 +f 3725/5285/426 3723/5409/426 3722/5286/426 +f 3719/5288/426 3724/5287/426 3722/5286/426 +f 3721/5290/426 3723/5409/426 3725/5285/426 +f 3723/5292/431 3731/5299/431 3730/5293/431 +f 3725/5285/432 3733/5298/432 3728/5295/432 +f 3722/5294/433 3730/5293/433 3726/5297/433 +f 3724/5287/430 3732/5301/430 3733/5298/430 +f 3721/5290/434 3729/5410/434 3731/5299/434 +f 3719/5300/435 3727/5411/435 3732/5301/435 +f 3727/5302/427 3726/5412/427 3730/5303/427 +f 3733/5298/427 3732/5301/427 3730/5303/427 +f 3729/5305/427 3728/5413/427 3733/5298/427 +f 3741/5306/428 3739/5414/428 3735/5307/428 +f 3740/5309/427 3741/5415/427 3737/5310/427 +f 3738/5312/429 3740/5309/429 3736/5311/429 +f 3735/5307/426 3739/5414/426 3738/5312/426 +f 3749/5314/428 3747/5416/428 3743/5315/428 +f 3748/5317/427 3749/5417/427 3745/5318/427 +f 3746/5320/429 3748/5317/429 3744/5319/429 +f 3743/5315/426 3747/5416/426 3746/5320/426 +f 3757/5322/428 3755/5418/428 3751/5323/428 +f 3756/5325/427 3757/5419/427 3753/5326/427 +f 3754/5328/429 3756/5325/429 3752/5327/429 +f 3751/5323/426 3755/5418/426 3754/5328/426 +f 3765/5330/428 3763/5420/428 3759/5331/428 +f 3764/5333/427 3765/5421/427 3761/5334/427 +f 3762/5336/429 3764/5333/429 3760/5335/429 +f 3759/5331/426 3763/5420/426 3762/5336/426 +f 3773/5338/428 3771/5422/428 3767/5339/428 +f 3772/5341/427 3773/5423/427 3769/5342/427 +f 3770/5344/429 3772/5341/429 3768/5343/429 +f 3767/5339/426 3771/5422/426 3770/5344/426 +f 3781/5346/428 3779/5424/428 3775/5347/428 +f 3780/5349/427 3781/5425/427 3777/5350/427 +f 3778/5352/429 3780/5349/429 3776/5351/429 +f 3775/5347/426 3779/5424/426 3778/5352/426 +f 3783/5354/430 3787/5426/430 3786/5355/430 +f 3785/5357/430 3784/5427/430 3788/5358/430 +f 3791/5360/430 3795/5428/430 3794/5361/430 +f 3793/5363/430 3792/5429/430 3796/5364/430 +f 3799/5366/430 3803/5430/430 3802/5367/430 +f 3801/5369/430 3800/5431/430 3804/5370/430 +f 3712/5372/431 3811/5379/431 3810/5373/431 +f 3710/5279/432 3813/5378/432 3808/5375/432 +f 3713/5374/433 3810/5373/433 3806/5377/433 +f 3711/5284/430 3812/5381/430 3813/5378/430 +f 3714/5278/434 3809/5432/434 3811/5379/434 +f 3716/5380/435 3807/5433/435 3812/5381/435 +f 3807/5382/427 3806/5434/427 3810/5383/427 +f 3813/5378/427 3812/5381/427 3810/5383/427 +f 3809/5385/427 3808/5435/427 3813/5378/427 +f 3818/5386/431 3819/5436/431 3815/5387/431 +f 3817/5389/431 3821/5437/431 3820/5390/431 +f 3826/5392/431 3827/5438/431 3823/5393/431 +f 3825/5395/431 3829/5439/431 3828/5396/431 +f 3834/5398/431 3835/5440/431 3831/5399/431 +f 3833/5401/431 3837/5441/431 3836/5402/431 o Pad v -4.500000 0.000000 4.500000 v 4.500000 0.000000 4.500000 @@ -10313,60 +14156,60 @@ vn 0.0000 -0.7071 0.7071 vn 0.7071 0.7071 0.0000 vn -0.7071 0.7071 0.0000 s off -f 3377/2237/434 3387/2238/434 3381/2239/434 -f 3386/2240/435 3385/2241/435 3384/2242/435 -f 3381/2239/436 3386/2243/436 3380/2244/436 -f 3378/2245/435 3383/2246/435 3379/2247/435 -f 3377/2248/437 3380/2249/437 3376/2250/437 -f 3380/2251/438 3384/2252/438 3376/2253/438 -f 3376/2254/439 3385/2255/439 3377/2237/439 -f 3390/2256/437 3389/2257/437 3388/2258/437 -f 3383/2259/434 3388/2260/434 3379/2261/434 -f 3378/2262/438 3391/2263/438 3382/2264/438 -f 3382/2265/436 3390/2266/436 3383/2259/436 -f 3379/2261/439 3389/2267/439 3378/2268/439 -f 3397/2269/436 3393/2270/436 3394/2271/436 -f 3392/2272/436 3399/2273/436 3395/2274/436 -f 3403/2275/440 3400/2276/440 3401/2277/440 -f 3405/2278/439 3402/2279/439 3403/2275/439 -f 3407/2280/441 3404/2281/441 3405/2278/441 -f 3422/2282/438 3414/2283/438 3420/2284/438 -f 3416/2285/438 3418/2286/438 3412/2287/438 -f 3400/2288/434 3402/2289/434 3408/2290/434 -f 3406/2291/434 3410/2292/434 3404/2293/434 -f 3407/2294/438 3405/2295/438 3411/2296/438 -f 3401/2297/438 3409/2298/438 3403/2299/438 -f 3417/2300/434 3413/2301/434 3419/2302/434 -f 3423/2303/434 3421/2304/434 3415/2305/434 -f 3416/2306/441 3419/2307/441 3418/2308/441 -f 3418/2308/439 3421/2309/439 3420/2310/439 -f 3420/2310/440 3423/2311/440 3422/2312/440 -f 3425/2313/442 3429/2314/442 3428/2315/442 -f 3428/2315/443 3426/2316/443 3424/2317/443 -f 3427/2318/439 3424/2319/439 3426/2320/439 -f 3377/2237/434 3385/2255/434 3387/2238/434 -f 3386/2240/435 3387/2321/435 3385/2241/435 -f 3381/2239/436 3387/2238/436 3386/2243/436 -f 3378/2245/435 3382/2322/435 3383/2246/435 -f 3377/2248/437 3381/2323/437 3380/2249/437 -f 3380/2251/438 3386/2324/438 3384/2252/438 -f 3376/2254/439 3384/2325/439 3385/2255/439 -f 3390/2256/437 3391/2326/437 3389/2257/437 -f 3383/2259/434 3390/2266/434 3388/2260/434 -f 3378/2262/438 3389/2327/438 3391/2263/438 -f 3382/2265/436 3391/2328/436 3390/2266/436 -f 3379/2261/439 3388/2260/439 3389/2267/439 -f 3397/2269/436 3396/2329/436 3393/2270/436 -f 3392/2272/436 3398/2330/436 3399/2273/436 -f 3403/2275/440 3402/2279/440 3400/2276/440 -f 3405/2278/439 3404/2281/439 3402/2279/439 -f 3407/2280/441 3406/2331/441 3404/2281/441 -f 3416/2306/441 3417/2332/441 3419/2307/441 -f 3418/2308/439 3419/2307/439 3421/2309/439 -f 3420/2310/440 3421/2309/440 3423/2311/440 -f 3425/2313/442 3427/2318/442 3429/2314/442 -f 3428/2315/443 3429/2314/443 3426/2316/443 -f 3427/2318/439 3425/2313/439 3424/2319/439 +f 3839/5442/436 3849/5443/436 3843/5444/436 +f 3848/5445/437 3847/5446/437 3846/5447/437 +f 3843/5444/438 3848/5448/438 3842/5449/438 +f 3840/5450/437 3845/5451/437 3841/5452/437 +f 3839/5453/439 3842/5454/439 3838/5455/439 +f 3842/5456/440 3846/5457/440 3838/5458/440 +f 3838/5459/441 3847/5460/441 3839/5442/441 +f 3852/5461/439 3851/5462/439 3850/5463/439 +f 3845/5464/436 3850/5465/436 3841/5466/436 +f 3840/5467/440 3853/5468/440 3844/5469/440 +f 3844/5470/438 3852/5471/438 3845/5464/438 +f 3841/5466/441 3851/5472/441 3840/5473/441 +f 3859/5474/438 3855/5475/438 3856/5476/438 +f 3854/5477/438 3861/5478/438 3857/5479/438 +f 3865/5480/442 3862/5481/442 3863/5482/442 +f 3867/5483/441 3864/5484/441 3865/5480/441 +f 3869/5485/443 3866/5486/443 3867/5483/443 +f 3884/5487/440 3876/5488/440 3882/5489/440 +f 3878/5490/440 3880/5491/440 3874/5492/440 +f 3862/5493/436 3864/5494/436 3870/5495/436 +f 3868/5496/436 3872/5497/436 3866/5498/436 +f 3869/5499/440 3867/5500/440 3873/5501/440 +f 3863/5502/440 3871/5503/440 3865/5504/440 +f 3879/5505/436 3875/5506/436 3881/5507/436 +f 3885/5508/436 3883/5509/436 3877/5510/436 +f 3878/5511/443 3881/5512/443 3880/5513/443 +f 3880/5513/441 3883/5514/441 3882/5515/441 +f 3882/5515/442 3885/5516/442 3884/5517/442 +f 3887/5518/444 3891/5519/444 3890/5520/444 +f 3890/5520/445 3888/5521/445 3886/5522/445 +f 3889/5523/441 3886/5524/441 3888/5525/441 +f 3839/5442/436 3847/5460/436 3849/5443/436 +f 3848/5445/437 3849/5526/437 3847/5446/437 +f 3843/5444/438 3849/5443/438 3848/5448/438 +f 3840/5450/437 3844/5527/437 3845/5451/437 +f 3839/5453/439 3843/5528/439 3842/5454/439 +f 3842/5456/440 3848/5529/440 3846/5457/440 +f 3838/5459/441 3846/5530/441 3847/5460/441 +f 3852/5461/439 3853/5531/439 3851/5462/439 +f 3845/5464/436 3852/5471/436 3850/5465/436 +f 3840/5467/440 3851/5532/440 3853/5468/440 +f 3844/5470/438 3853/5533/438 3852/5471/438 +f 3841/5466/441 3850/5465/441 3851/5472/441 +f 3859/5474/438 3858/5534/438 3855/5475/438 +f 3854/5477/438 3860/5535/438 3861/5478/438 +f 3865/5480/442 3864/5484/442 3862/5481/442 +f 3867/5483/441 3866/5486/441 3864/5484/441 +f 3869/5485/443 3868/5536/443 3866/5486/443 +f 3878/5511/443 3879/5537/443 3881/5512/443 +f 3880/5513/441 3881/5512/441 3883/5514/441 +f 3882/5515/442 3883/5514/442 3885/5516/442 +f 3887/5518/444 3889/5523/444 3891/5519/444 +f 3890/5520/445 3891/5519/445 3888/5521/445 +f 3889/5523/441 3887/5518/441 3886/5524/441 o Micro_Missile v 0.324760 3.500000 -0.187500 v 0.156250 3.500000 -0.270633 @@ -10971,423 +14814,423 @@ vn 0.9659 0.0000 -0.2588 vn -0.9659 0.0000 -0.2588 vn -0.9659 0.0000 0.2588 s off -f 3430/2333/444 3431/2334/444 3432/2335/444 -f 3433/2336/444 3434/2337/444 3431/2334/444 -f 3435/2338/444 3434/2339/444 3436/2340/444 -f 3437/2341/444 3438/2342/444 3435/2338/444 -f 3439/2343/444 3440/2344/444 3437/2341/444 -f 3441/2345/444 3442/2346/444 3439/2343/444 -f 3443/2347/444 3444/2348/444 3441/2345/444 -f 3445/2349/444 3446/2350/444 3443/2347/444 -f 3445/2349/444 3447/2351/444 3448/2352/444 -f 3449/2353/444 3450/2354/444 3447/2351/444 -f 3451/2355/444 3450/2354/444 3452/2356/444 -f 3430/2333/444 3453/2357/444 3451/2355/444 -f 3454/2358/445 3455/2359/445 3456/2360/445 -f 3457/2361/445 3458/2362/445 3454/2358/445 -f 3459/2363/445 3460/2364/445 3457/2361/445 -f 3461/2365/445 3462/2366/445 3459/2363/445 -f 3463/2367/445 3464/2368/445 3461/2369/445 -f 3463/2367/445 3465/2370/445 3466/2371/445 -f 3467/2372/445 3468/2373/445 3465/2370/445 -f 3469/2374/445 3468/2373/445 3470/2375/445 -f 3471/2376/445 3472/2377/445 3469/2374/445 -f 3471/2376/445 3473/2378/445 3474/2379/445 -f 3475/2380/445 3473/2378/445 3476/2381/445 -f 3456/2360/445 3477/2382/445 3475/2380/445 -f 3478/2383/445 3479/2384/445 3480/2385/445 -f 3481/2386/445 3482/2387/445 3478/2383/445 -f 3483/2388/445 3484/2389/445 3481/2386/445 -f 3485/2390/445 3486/2391/445 3483/2388/445 -f 3487/2392/445 3488/2393/445 3485/2394/445 -f 3487/2392/445 3489/2395/445 3490/2396/445 -f 3491/2397/445 3492/2398/445 3489/2395/445 -f 3493/2399/445 3492/2398/445 3494/2400/445 -f 3495/2401/445 3496/2402/445 3493/2399/445 -f 3495/2401/445 3497/2403/445 3498/2404/445 -f 3499/2405/445 3497/2403/445 3500/2406/445 -f 3480/2385/445 3501/2407/445 3499/2405/445 -f 3502/2408/445 3503/2409/445 3504/2410/445 -f 3505/2411/445 3506/2412/445 3502/2408/445 -f 3507/2413/445 3508/2414/445 3505/2411/445 -f 3509/2415/445 3510/2416/445 3507/2413/445 -f 3511/2417/445 3512/2418/445 3509/2419/445 -f 3511/2417/445 3513/2420/445 3514/2421/445 -f 3515/2422/445 3516/2423/445 3513/2420/445 -f 3517/2424/445 3516/2423/445 3518/2425/445 -f 3519/2426/445 3520/2427/445 3517/2424/445 -f 3519/2426/445 3521/2428/445 3522/2429/445 -f 3523/2430/445 3521/2428/445 3524/2431/445 -f 3504/2410/445 3525/2432/445 3523/2430/445 -f 3526/2433/444 3527/2434/444 3528/2435/444 -f 3529/2436/444 3530/2437/444 3526/2433/444 -f 3529/2436/444 3531/2438/444 3532/2439/444 -f 3533/2440/444 3534/2441/444 3531/2438/444 -f 3535/2442/444 3534/2443/444 3536/2444/444 -f 3537/2445/444 3538/2446/444 3535/2442/444 -f 3539/2447/444 3540/2448/444 3537/2445/444 -f 3541/2449/444 3542/2450/444 3539/2447/444 -f 3543/2451/444 3544/2452/444 3541/2449/444 -f 3545/2453/444 3546/2454/444 3543/2451/444 -f 3545/2453/444 3547/2455/444 3548/2456/444 -f 3549/2457/444 3527/2434/444 3547/2455/444 -f 3550/2458/444 3551/2459/444 3552/2460/444 -f 3553/2461/444 3554/2462/444 3550/2458/444 -f 3553/2461/444 3555/2463/444 3556/2464/444 -f 3557/2465/444 3558/2466/444 3555/2463/444 -f 3559/2467/444 3558/2468/444 3560/2469/444 -f 3561/2470/444 3562/2471/444 3559/2467/444 -f 3563/2472/444 3564/2473/444 3561/2470/444 -f 3565/2474/444 3566/2475/444 3563/2472/444 -f 3567/2476/444 3568/2477/444 3565/2474/444 -f 3569/2478/444 3570/2479/444 3567/2476/444 -f 3569/2478/444 3571/2480/444 3572/2481/444 -f 3573/2482/444 3551/2459/444 3571/2480/444 -f 3574/2483/445 3575/2484/445 3576/2485/445 -f 3577/2486/446 3578/2487/446 3579/2488/446 -f 3576/2489/447 3578/2490/447 3574/2491/447 -f 3578/2490/448 3575/2484/448 3574/2491/448 -f 3580/2492/449 3581/2493/449 3582/2494/449 -f 3583/2495/450 3580/2492/450 3582/2494/450 -f 3584/2496/451 3580/2497/451 3585/2498/451 -f 3582/2499/445 3581/2493/445 3583/2500/445 -f 3586/2501/445 3587/2502/445 3588/2503/445 -f 3589/2504/452 3590/2505/452 3591/2506/452 -f 3588/2507/453 3590/2508/453 3586/2509/453 -f 3590/2508/454 3587/2502/454 3586/2509/454 -f 3592/2510/455 3593/2511/455 3594/2512/455 -f 3595/2513/456 3592/2510/456 3594/2512/456 -f 3596/2514/457 3592/2515/457 3597/2516/457 -f 3594/2517/445 3593/2511/445 3595/2518/445 -f 3598/2519/445 3599/2520/445 3600/2521/445 -f 3601/2522/445 3602/2523/445 3599/2520/445 -f 3603/2524/445 3604/2525/445 3602/2523/445 -f 3605/2526/445 3606/2527/445 3604/2525/445 -f 3606/2527/445 3607/2528/445 3608/2529/445 -f 3607/2530/445 3609/2531/445 3608/2529/445 -f 3610/2532/445 3611/2533/445 3609/2534/445 -f 3612/2535/445 3613/2536/445 3611/2533/445 -f 3614/2537/445 3615/2538/445 3613/2536/445 -f 3616/2539/445 3617/2540/445 3615/2538/445 -f 3618/2541/445 3619/2542/445 3617/2540/445 -f 3620/2543/445 3600/2521/445 3619/2542/445 -f 3430/2333/444 3433/2336/444 3431/2334/444 -f 3433/2336/444 3436/2544/444 3434/2337/444 -f 3435/2338/444 3438/2342/444 3434/2339/444 -f 3437/2341/444 3440/2344/444 3438/2342/444 -f 3439/2343/444 3442/2346/444 3440/2344/444 -f 3441/2345/444 3444/2348/444 3442/2346/444 -f 3443/2347/444 3446/2350/444 3444/2348/444 -f 3445/2349/444 3448/2352/444 3446/2350/444 -f 3445/2349/444 3449/2353/444 3447/2351/444 -f 3449/2353/444 3452/2356/444 3450/2354/444 -f 3451/2355/444 3453/2357/444 3450/2354/444 -f 3430/2333/444 3432/2335/444 3453/2357/444 -f 3454/2358/445 3458/2362/445 3455/2359/445 -f 3457/2361/445 3460/2364/445 3458/2362/445 -f 3459/2363/445 3462/2366/445 3460/2364/445 -f 3461/2365/445 3464/2545/445 3462/2366/445 -f 3463/2367/445 3466/2371/445 3464/2368/445 -f 3463/2367/445 3467/2372/445 3465/2370/445 -f 3467/2372/445 3470/2375/445 3468/2373/445 -f 3469/2374/445 3472/2377/445 3468/2373/445 -f 3471/2376/445 3474/2379/445 3472/2377/445 -f 3471/2376/445 3476/2381/445 3473/2378/445 -f 3475/2380/445 3477/2382/445 3473/2378/445 -f 3456/2360/445 3455/2359/445 3477/2382/445 -f 3478/2383/445 3482/2387/445 3479/2384/445 -f 3481/2386/445 3484/2389/445 3482/2387/445 -f 3483/2388/445 3486/2391/445 3484/2389/445 -f 3485/2390/445 3488/2546/445 3486/2391/445 -f 3487/2392/445 3490/2396/445 3488/2393/445 -f 3487/2392/445 3491/2397/445 3489/2395/445 -f 3491/2397/445 3494/2400/445 3492/2398/445 -f 3493/2399/445 3496/2402/445 3492/2398/445 -f 3495/2401/445 3498/2404/445 3496/2402/445 -f 3495/2401/445 3500/2406/445 3497/2403/445 -f 3499/2405/445 3501/2407/445 3497/2403/445 -f 3480/2385/445 3479/2384/445 3501/2407/445 -f 3502/2408/445 3506/2412/445 3503/2409/445 -f 3505/2411/445 3508/2414/445 3506/2412/445 -f 3507/2413/445 3510/2416/445 3508/2414/445 -f 3509/2415/445 3512/2547/445 3510/2416/445 -f 3511/2417/445 3514/2421/445 3512/2418/445 -f 3511/2417/445 3515/2422/445 3513/2420/445 -f 3515/2422/445 3518/2425/445 3516/2423/445 -f 3517/2424/445 3520/2427/445 3516/2423/445 -f 3519/2426/445 3522/2429/445 3520/2427/445 -f 3519/2426/445 3524/2431/445 3521/2428/445 -f 3523/2430/445 3525/2432/445 3521/2428/445 -f 3504/2410/445 3503/2409/445 3525/2432/445 -f 3526/2433/444 3530/2437/444 3527/2434/444 -f 3529/2436/444 3532/2439/444 3530/2437/444 -f 3529/2436/444 3533/2440/444 3531/2438/444 -f 3533/2440/444 3536/2548/444 3534/2441/444 -f 3535/2442/444 3538/2446/444 3534/2443/444 -f 3537/2445/444 3540/2448/444 3538/2446/444 -f 3539/2447/444 3542/2450/444 3540/2448/444 -f 3541/2449/444 3544/2452/444 3542/2450/444 -f 3543/2451/444 3546/2454/444 3544/2452/444 -f 3545/2453/444 3548/2456/444 3546/2454/444 -f 3545/2453/444 3549/2457/444 3547/2455/444 -f 3549/2457/444 3528/2435/444 3527/2434/444 -f 3550/2458/444 3554/2462/444 3551/2459/444 -f 3553/2461/444 3556/2464/444 3554/2462/444 -f 3553/2461/444 3557/2465/444 3555/2463/444 -f 3557/2465/444 3560/2549/444 3558/2466/444 -f 3559/2467/444 3562/2471/444 3558/2468/444 -f 3561/2470/444 3564/2473/444 3562/2471/444 -f 3563/2472/444 3566/2475/444 3564/2473/444 -f 3565/2474/444 3568/2477/444 3566/2475/444 -f 3567/2476/444 3570/2479/444 3568/2477/444 -f 3569/2478/444 3572/2481/444 3570/2479/444 -f 3569/2478/444 3573/2482/444 3571/2480/444 -f 3573/2482/444 3552/2460/444 3551/2459/444 -f 3576/2489/447 3579/2550/447 3578/2490/447 -f 3578/2490/448 3577/2486/448 3575/2484/448 -f 3580/2492/449 3584/2496/449 3581/2493/449 -f 3583/2495/450 3585/2551/450 3580/2492/450 -f 3588/2507/453 3591/2552/453 3590/2508/453 -f 3590/2508/454 3589/2504/454 3587/2502/454 -f 3592/2510/455 3596/2514/455 3593/2511/455 -f 3595/2513/456 3597/2553/456 3592/2510/456 -f 3598/2519/445 3601/2554/445 3599/2520/445 -f 3601/2522/445 3603/2555/445 3602/2523/445 -f 3603/2524/445 3605/2556/445 3604/2525/445 -f 3605/2526/445 3621/2557/445 3606/2527/445 -f 3606/2527/445 3621/2558/445 3607/2528/445 -f 3607/2530/445 3610/2559/445 3609/2531/445 -f 3610/2532/445 3612/2560/445 3611/2533/445 -f 3612/2535/445 3614/2561/445 3613/2536/445 -f 3614/2537/445 3616/2562/445 3615/2538/445 -f 3616/2539/445 3618/2563/445 3617/2540/445 -f 3618/2541/445 3620/2564/445 3619/2542/445 -f 3620/2543/445 3598/2565/445 3600/2521/445 +f 3892/5538/446 3893/5539/446 3894/5540/446 +f 3895/5541/446 3896/5542/446 3893/5539/446 +f 3897/5543/446 3896/5544/446 3898/5545/446 +f 3899/5546/446 3900/5547/446 3897/5543/446 +f 3901/5548/446 3902/5549/446 3899/5546/446 +f 3903/5550/446 3904/5551/446 3901/5548/446 +f 3905/5552/446 3906/5553/446 3903/5550/446 +f 3907/5554/446 3908/5555/446 3905/5552/446 +f 3907/5554/446 3909/5556/446 3910/5557/446 +f 3911/5558/446 3912/5559/446 3909/5556/446 +f 3913/5560/446 3912/5559/446 3914/5561/446 +f 3892/5538/446 3915/5562/446 3913/5560/446 +f 3916/5563/447 3917/5564/447 3918/5565/447 +f 3919/5566/447 3920/5567/447 3916/5563/447 +f 3921/5568/447 3922/5569/447 3919/5566/447 +f 3923/5570/447 3924/5571/447 3921/5568/447 +f 3925/5572/447 3926/5573/447 3923/5574/447 +f 3925/5572/447 3927/5575/447 3928/5576/447 +f 3929/5577/447 3930/5578/447 3927/5575/447 +f 3931/5579/447 3930/5578/447 3932/5580/447 +f 3933/5581/447 3934/5582/447 3931/5579/447 +f 3933/5581/447 3935/5583/447 3936/5584/447 +f 3937/5585/447 3935/5583/447 3938/5586/447 +f 3918/5565/447 3939/5587/447 3937/5585/447 +f 3940/5588/447 3941/5589/447 3942/5590/447 +f 3943/5591/447 3944/5592/447 3940/5588/447 +f 3945/5593/447 3946/5594/447 3943/5591/447 +f 3947/5595/447 3948/5596/447 3945/5593/447 +f 3949/5597/447 3950/5598/447 3947/5599/447 +f 3949/5597/447 3951/5600/447 3952/5601/447 +f 3953/5602/447 3954/5603/447 3951/5600/447 +f 3955/5604/447 3954/5603/447 3956/5605/447 +f 3957/5606/447 3958/5607/447 3955/5604/447 +f 3957/5606/447 3959/5608/447 3960/5609/447 +f 3961/5610/447 3959/5608/447 3962/5611/447 +f 3942/5590/447 3963/5612/447 3961/5610/447 +f 3964/5613/447 3965/5614/447 3966/5615/447 +f 3967/5616/447 3968/5617/447 3964/5613/447 +f 3969/5618/447 3970/5619/447 3967/5616/447 +f 3971/5620/447 3972/5621/447 3969/5618/447 +f 3973/5622/447 3974/5623/447 3971/5624/447 +f 3973/5622/447 3975/5625/447 3976/5626/447 +f 3977/5627/447 3978/5628/447 3975/5625/447 +f 3979/5629/447 3978/5628/447 3980/5630/447 +f 3981/5631/447 3982/5632/447 3979/5629/447 +f 3981/5631/447 3983/5633/447 3984/5634/447 +f 3985/5635/447 3983/5633/447 3986/5636/447 +f 3966/5615/447 3987/5637/447 3985/5635/447 +f 3988/5638/446 3989/5639/446 3990/5640/446 +f 3991/5641/446 3992/5642/446 3988/5638/446 +f 3991/5641/446 3993/5643/446 3994/5644/446 +f 3995/5645/446 3996/5646/446 3993/5643/446 +f 3997/5647/446 3996/5648/446 3998/5649/446 +f 3999/5650/446 4000/5651/446 3997/5647/446 +f 4001/5652/446 4002/5653/446 3999/5650/446 +f 4003/5654/446 4004/5655/446 4001/5652/446 +f 4005/5656/446 4006/5657/446 4003/5654/446 +f 4007/5658/446 4008/5659/446 4005/5656/446 +f 4007/5658/446 4009/5660/446 4010/5661/446 +f 4011/5662/446 3989/5639/446 4009/5660/446 +f 4012/5663/446 4013/5664/446 4014/5665/446 +f 4015/5666/446 4016/5667/446 4012/5663/446 +f 4015/5666/446 4017/5668/446 4018/5669/446 +f 4019/5670/446 4020/5671/446 4017/5668/446 +f 4021/5672/446 4020/5673/446 4022/5674/446 +f 4023/5675/446 4024/5676/446 4021/5672/446 +f 4025/5677/446 4026/5678/446 4023/5675/446 +f 4027/5679/446 4028/5680/446 4025/5677/446 +f 4029/5681/446 4030/5682/446 4027/5679/446 +f 4031/5683/446 4032/5684/446 4029/5681/446 +f 4031/5683/446 4033/5685/446 4034/5686/446 +f 4035/5687/446 4013/5664/446 4033/5685/446 +f 4036/5688/447 4037/5689/447 4038/5690/447 +f 4039/5691/448 4040/5692/448 4041/5693/448 +f 4038/5694/449 4040/5695/449 4036/5696/449 +f 4040/5695/450 4037/5689/450 4036/5696/450 +f 4042/5697/451 4043/5698/451 4044/5699/451 +f 4045/5700/452 4042/5697/452 4044/5699/452 +f 4046/5701/453 4042/5702/453 4047/5703/453 +f 4044/5704/447 4043/5698/447 4045/5705/447 +f 4048/5706/447 4049/5707/447 4050/5708/447 +f 4051/5709/454 4052/5710/454 4053/5711/454 +f 4050/5712/455 4052/5713/455 4048/5714/455 +f 4052/5713/456 4049/5707/456 4048/5714/456 +f 4054/5715/457 4055/5716/457 4056/5717/457 +f 4057/5718/458 4054/5715/458 4056/5717/458 +f 4058/5719/459 4054/5720/459 4059/5721/459 +f 4056/5722/447 4055/5716/447 4057/5723/447 +f 4060/5724/447 4061/5725/447 4062/5726/447 +f 4063/5727/447 4064/5728/447 4061/5725/447 +f 4065/5729/447 4066/5730/447 4064/5728/447 +f 4067/5731/447 4068/5732/447 4066/5730/447 +f 4068/5732/447 4069/5733/447 4070/5734/447 +f 4069/5735/447 4071/5736/447 4070/5734/447 +f 4072/5737/447 4073/5738/447 4071/5739/447 +f 4074/5740/447 4075/5741/447 4073/5738/447 +f 4076/5742/447 4077/5743/447 4075/5741/447 +f 4078/5744/447 4079/5745/447 4077/5743/447 +f 4080/5746/447 4081/5747/447 4079/5745/447 +f 4082/5748/447 4062/5726/447 4081/5747/447 +f 3892/5538/446 3895/5541/446 3893/5539/446 +f 3895/5541/446 3898/5749/446 3896/5542/446 +f 3897/5543/446 3900/5547/446 3896/5544/446 +f 3899/5546/446 3902/5549/446 3900/5547/446 +f 3901/5548/446 3904/5551/446 3902/5549/446 +f 3903/5550/446 3906/5553/446 3904/5551/446 +f 3905/5552/446 3908/5555/446 3906/5553/446 +f 3907/5554/446 3910/5557/446 3908/5555/446 +f 3907/5554/446 3911/5558/446 3909/5556/446 +f 3911/5558/446 3914/5561/446 3912/5559/446 +f 3913/5560/446 3915/5562/446 3912/5559/446 +f 3892/5538/446 3894/5540/446 3915/5562/446 +f 3916/5563/447 3920/5567/447 3917/5564/447 +f 3919/5566/447 3922/5569/447 3920/5567/447 +f 3921/5568/447 3924/5571/447 3922/5569/447 +f 3923/5570/447 3926/5750/447 3924/5571/447 +f 3925/5572/447 3928/5576/447 3926/5573/447 +f 3925/5572/447 3929/5577/447 3927/5575/447 +f 3929/5577/447 3932/5580/447 3930/5578/447 +f 3931/5579/447 3934/5582/447 3930/5578/447 +f 3933/5581/447 3936/5584/447 3934/5582/447 +f 3933/5581/447 3938/5586/447 3935/5583/447 +f 3937/5585/447 3939/5587/447 3935/5583/447 +f 3918/5565/447 3917/5564/447 3939/5587/447 +f 3940/5588/447 3944/5592/447 3941/5589/447 +f 3943/5591/447 3946/5594/447 3944/5592/447 +f 3945/5593/447 3948/5596/447 3946/5594/447 +f 3947/5595/447 3950/5751/447 3948/5596/447 +f 3949/5597/447 3952/5601/447 3950/5598/447 +f 3949/5597/447 3953/5602/447 3951/5600/447 +f 3953/5602/447 3956/5605/447 3954/5603/447 +f 3955/5604/447 3958/5607/447 3954/5603/447 +f 3957/5606/447 3960/5609/447 3958/5607/447 +f 3957/5606/447 3962/5611/447 3959/5608/447 +f 3961/5610/447 3963/5612/447 3959/5608/447 +f 3942/5590/447 3941/5589/447 3963/5612/447 +f 3964/5613/447 3968/5617/447 3965/5614/447 +f 3967/5616/447 3970/5619/447 3968/5617/447 +f 3969/5618/447 3972/5621/447 3970/5619/447 +f 3971/5620/447 3974/5752/447 3972/5621/447 +f 3973/5622/447 3976/5626/447 3974/5623/447 +f 3973/5622/447 3977/5627/447 3975/5625/447 +f 3977/5627/447 3980/5630/447 3978/5628/447 +f 3979/5629/447 3982/5632/447 3978/5628/447 +f 3981/5631/447 3984/5634/447 3982/5632/447 +f 3981/5631/447 3986/5636/447 3983/5633/447 +f 3985/5635/447 3987/5637/447 3983/5633/447 +f 3966/5615/447 3965/5614/447 3987/5637/447 +f 3988/5638/446 3992/5642/446 3989/5639/446 +f 3991/5641/446 3994/5644/446 3992/5642/446 +f 3991/5641/446 3995/5645/446 3993/5643/446 +f 3995/5645/446 3998/5753/446 3996/5646/446 +f 3997/5647/446 4000/5651/446 3996/5648/446 +f 3999/5650/446 4002/5653/446 4000/5651/446 +f 4001/5652/446 4004/5655/446 4002/5653/446 +f 4003/5654/446 4006/5657/446 4004/5655/446 +f 4005/5656/446 4008/5659/446 4006/5657/446 +f 4007/5658/446 4010/5661/446 4008/5659/446 +f 4007/5658/446 4011/5662/446 4009/5660/446 +f 4011/5662/446 3990/5640/446 3989/5639/446 +f 4012/5663/446 4016/5667/446 4013/5664/446 +f 4015/5666/446 4018/5669/446 4016/5667/446 +f 4015/5666/446 4019/5670/446 4017/5668/446 +f 4019/5670/446 4022/5754/446 4020/5671/446 +f 4021/5672/446 4024/5676/446 4020/5673/446 +f 4023/5675/446 4026/5678/446 4024/5676/446 +f 4025/5677/446 4028/5680/446 4026/5678/446 +f 4027/5679/446 4030/5682/446 4028/5680/446 +f 4029/5681/446 4032/5684/446 4030/5682/446 +f 4031/5683/446 4034/5686/446 4032/5684/446 +f 4031/5683/446 4035/5687/446 4033/5685/446 +f 4035/5687/446 4014/5665/446 4013/5664/446 +f 4038/5694/449 4041/5755/449 4040/5695/449 +f 4040/5695/450 4039/5691/450 4037/5689/450 +f 4042/5697/451 4046/5701/451 4043/5698/451 +f 4045/5700/452 4047/5756/452 4042/5697/452 +f 4050/5712/455 4053/5757/455 4052/5713/455 +f 4052/5713/456 4051/5709/456 4049/5707/456 +f 4054/5715/457 4058/5719/457 4055/5716/457 +f 4057/5718/458 4059/5758/458 4054/5715/458 +f 4060/5724/447 4063/5759/447 4061/5725/447 +f 4063/5727/447 4065/5760/447 4064/5728/447 +f 4065/5729/447 4067/5761/447 4066/5730/447 +f 4067/5731/447 4083/5762/447 4068/5732/447 +f 4068/5732/447 4083/5763/447 4069/5733/447 +f 4069/5735/447 4072/5764/447 4071/5736/447 +f 4072/5737/447 4074/5765/447 4073/5738/447 +f 4074/5740/447 4076/5766/447 4075/5741/447 +f 4076/5742/447 4078/5767/447 4077/5743/447 +f 4078/5744/447 4080/5768/447 4079/5745/447 +f 4080/5746/447 4082/5769/447 4081/5747/447 +f 4082/5748/447 4060/5770/447 4062/5726/447 s 1 -f 3606/2527/458 3451/2355/459 3604/2525/459 -f 3599/2520/460 3445/2349/461 3600/2521/461 -f 3617/2540/462 3439/2343/463 3615/2538/463 -f 3608/2529/464 3430/2333/458 3606/2527/458 -f 3611/2533/465 3436/2340/466 3609/2534/466 -f 3602/2523/467 3449/2353/460 3599/2520/460 -f 3619/2542/468 3441/2345/462 3617/2540/462 -f 3609/2531/466 3433/2336/464 3608/2529/464 -f 3613/2536/469 3435/2338/465 3611/2533/465 -f 3604/2525/459 3452/2356/467 3602/2523/467 -f 3600/2521/461 3443/2347/468 3619/2542/468 -f 3615/2538/463 3437/2341/469 3613/2536/469 -f 3450/2354/467 3475/2380/460 3447/2351/460 -f 3446/2350/468 3469/2374/462 3444/2348/462 -f 3434/2337/466 3459/2363/464 3431/2334/464 -f 3440/2344/469 3463/2367/465 3438/2342/465 -f 3453/2357/459 3456/2360/467 3450/2354/467 -f 3448/2352/461 3471/2376/468 3446/2350/468 -f 3442/2346/463 3467/2372/469 3440/2344/469 -f 3432/2335/458 3454/2358/459 3453/2357/459 -f 3447/2351/460 3476/2381/461 3448/2352/461 -f 3444/2348/462 3470/2375/463 3442/2346/463 -f 3431/2334/464 3457/2361/458 3432/2335/458 -f 3438/2342/465 3461/2369/466 3434/2339/466 -f 3462/2366/464 3529/2436/458 3460/2364/458 -f 3466/2371/465 3536/2444/466 3464/2368/466 -f 3455/2359/467 3549/2457/460 3477/2382/460 -f 3474/2379/468 3541/2449/462 3472/2377/462 -f 3464/2545/466 3533/2440/464 3462/2366/464 -f 3465/2370/469 3535/2442/465 3466/2371/465 -f 3458/2362/459 3528/2435/467 3455/2359/467 -f 3473/2378/461 3543/2451/468 3474/2379/468 -f 3468/2373/463 3537/2445/469 3465/2370/469 -f 3460/2364/458 3526/2433/459 3458/2362/459 -f 3477/2382/460 3545/2453/461 3473/2378/461 -f 3472/2377/462 3539/2447/463 3468/2373/463 -f 3527/2434/467 3499/2405/460 3547/2455/460 -f 3546/2454/468 3493/2399/462 3544/2452/462 -f 3534/2441/466 3483/2388/464 3531/2438/464 -f 3540/2448/469 3487/2392/465 3538/2446/465 -f 3530/2437/459 3480/2385/467 3527/2434/467 -f 3548/2456/461 3495/2401/468 3546/2454/468 -f 3542/2450/463 3491/2397/469 3540/2448/469 -f 3532/2439/458 3478/2383/459 3530/2437/459 -f 3547/2455/460 3500/2406/461 3548/2456/461 -f 3544/2452/462 3494/2400/463 3542/2450/463 -f 3531/2438/464 3481/2386/458 3532/2439/458 -f 3538/2446/465 3485/2394/466 3534/2443/466 -f 3486/2391/464 3553/2461/458 3484/2389/458 -f 3490/2396/465 3560/2469/466 3488/2393/466 -f 3479/2384/467 3573/2482/460 3501/2407/460 -f 3498/2404/468 3565/2474/462 3496/2402/462 -f 3488/2546/466 3557/2465/464 3486/2391/464 -f 3489/2395/469 3559/2467/465 3490/2396/465 -f 3482/2387/459 3552/2460/467 3479/2384/467 -f 3497/2403/461 3567/2476/468 3498/2404/468 -f 3492/2398/463 3561/2470/469 3489/2395/469 -f 3484/2389/458 3550/2458/459 3482/2387/459 -f 3501/2407/460 3569/2478/461 3497/2403/461 -f 3496/2402/462 3563/2472/463 3492/2398/463 -f 3551/2459/467 3523/2430/460 3571/2480/460 -f 3570/2479/468 3517/2424/462 3568/2477/462 -f 3558/2466/466 3507/2413/464 3555/2463/464 -f 3564/2473/469 3511/2417/465 3562/2471/465 -f 3554/2462/459 3504/2410/467 3551/2459/467 -f 3572/2481/461 3519/2426/468 3570/2479/468 -f 3566/2475/463 3515/2422/469 3564/2473/469 -f 3556/2464/458 3502/2408/459 3554/2462/459 -f 3571/2480/460 3524/2431/461 3572/2481/461 -f 3568/2477/462 3518/2425/463 3566/2475/463 -f 3555/2463/464 3505/2411/458 3556/2464/458 -f 3562/2471/465 3509/2419/466 3558/2468/466 -f 3510/2416/464 3622/2566/470 3508/2414/458 -f 3514/2421/465 3623/2567/471 3512/2418/466 -f 3503/2409/467 3624/2568/472 3525/2432/460 -f 3522/2429/468 3625/2569/473 3520/2427/462 -f 3512/2547/466 3626/2570/474 3510/2416/464 -f 3513/2420/469 3627/2571/475 3514/2421/465 -f 3506/2412/459 3628/2572/476 3503/2409/467 -f 3521/2428/461 3629/2573/477 3522/2429/468 -f 3516/2423/463 3630/2574/478 3513/2420/469 -f 3508/2414/458 3631/2575/479 3506/2412/459 -f 3525/2432/460 3632/2576/480 3521/2428/461 -f 3520/2427/462 3633/2577/481 3516/2423/463 -f 3632/2576/480 3634/2578/482 3629/2573/477 -f 3633/2577/481 3635/2579/483 3630/2574/478 -f 3631/2575/479 3636/2580/484 3637/2581/485 -f 3624/2568/472 3638/2582/486 3632/2576/480 -f 3633/2577/481 3639/2583/487 3640/2584/488 -f 3626/2570/474 3636/2585/484 3622/2566/470 -f 3627/2571/475 3641/2586/489 3623/2567/471 -f 3624/2568/472 3642/2587/490 3643/2588/491 -f 3629/2573/477 3639/2589/487 3625/2569/473 -f 3623/2590/471 3644/2591/492 3626/2570/474 -f 3630/2574/478 3645/2592/493 3627/2571/475 -f 3631/2575/479 3642/2593/490 3628/2572/476 -f 3641/2586/489 3645/2594/493 3646/2595/444 -f 3645/2592/493 3635/2596/483 3646/2597/444 -f 3635/2579/483 3640/2598/488 3646/2599/444 -f 3640/2584/488 3639/2583/487 3646/2600/444 -f 3639/2589/487 3634/2601/482 3646/2602/444 -f 3634/2578/482 3638/2603/486 3646/2604/444 -f 3638/2582/486 3643/2605/491 3646/2606/444 -f 3643/2588/491 3642/2587/490 3646/2607/444 -f 3642/2593/490 3637/2608/485 3646/2609/444 -f 3637/2581/485 3636/2580/484 3646/2610/444 -f 3636/2585/484 3644/2611/492 3646/2612/444 -f 3644/2591/492 3641/2613/489 3646/2614/444 -f 3612/2560/494 3610/2532/495 3647/2615/445 -f 3610/2559/495 3607/2530/496 3647/2616/445 -f 3607/2528/496 3621/2558/497 3647/2617/445 -f 3621/2557/497 3605/2526/498 3647/2618/445 -f 3605/2556/498 3603/2524/499 3647/2619/445 -f 3603/2555/499 3601/2522/500 3647/2620/445 -f 3601/2554/500 3598/2519/501 3647/2621/445 -f 3598/2565/501 3620/2543/502 3647/2622/445 -f 3620/2564/502 3618/2541/503 3647/2623/445 -f 3618/2563/503 3616/2539/504 3647/2624/445 -f 3616/2562/504 3614/2537/505 3647/2625/445 -f 3614/2561/505 3612/2535/494 3647/2626/445 -f 3648/2627/459 3649/2628/506 3650/2629/506 -f 3651/2630/507 3652/2631/459 3648/2627/459 -f 3653/2632/463 3654/2633/508 3655/2634/508 -f 3656/2635/509 3657/2636/463 3653/2632/463 -f 3606/2527/458 3430/2333/458 3451/2355/459 -f 3599/2520/460 3449/2353/460 3445/2349/461 -f 3617/2540/462 3441/2345/462 3439/2343/463 -f 3608/2529/464 3433/2336/464 3430/2333/458 -f 3611/2533/465 3435/2338/465 3436/2340/466 -f 3602/2523/467 3452/2356/467 3449/2353/460 -f 3619/2542/468 3443/2347/468 3441/2345/462 -f 3609/2531/466 3436/2544/466 3433/2336/464 -f 3613/2536/469 3437/2341/469 3435/2338/465 -f 3604/2525/459 3451/2355/459 3452/2356/467 -f 3600/2521/461 3445/2349/461 3443/2347/468 -f 3615/2538/463 3439/2343/463 3437/2341/469 -f 3450/2354/467 3456/2360/467 3475/2380/460 -f 3446/2350/468 3471/2376/468 3469/2374/462 -f 3434/2337/466 3461/2365/466 3459/2363/464 -f 3440/2344/469 3467/2372/469 3463/2367/465 -f 3453/2357/459 3454/2358/459 3456/2360/467 -f 3448/2352/461 3476/2381/461 3471/2376/468 -f 3442/2346/463 3470/2375/463 3467/2372/469 -f 3432/2335/458 3457/2361/458 3454/2358/459 -f 3447/2351/460 3475/2380/460 3476/2381/461 -f 3444/2348/462 3469/2374/462 3470/2375/463 -f 3431/2334/464 3459/2363/464 3457/2361/458 -f 3438/2342/465 3463/2367/465 3461/2369/466 -f 3462/2366/464 3533/2440/464 3529/2436/458 -f 3466/2371/465 3535/2442/465 3536/2444/466 -f 3455/2359/467 3528/2435/467 3549/2457/460 -f 3474/2379/468 3543/2451/468 3541/2449/462 -f 3464/2545/466 3536/2548/466 3533/2440/464 -f 3465/2370/469 3537/2445/469 3535/2442/465 -f 3458/2362/459 3526/2433/459 3528/2435/467 -f 3473/2378/461 3545/2453/461 3543/2451/468 -f 3468/2373/463 3539/2447/463 3537/2445/469 -f 3460/2364/458 3529/2436/458 3526/2433/459 -f 3477/2382/460 3549/2457/460 3545/2453/461 -f 3472/2377/462 3541/2449/462 3539/2447/463 -f 3527/2434/467 3480/2385/467 3499/2405/460 -f 3546/2454/468 3495/2401/468 3493/2399/462 -f 3534/2441/466 3485/2390/466 3483/2388/464 -f 3540/2448/469 3491/2397/469 3487/2392/465 -f 3530/2437/459 3478/2383/459 3480/2385/467 -f 3548/2456/461 3500/2406/461 3495/2401/468 -f 3542/2450/463 3494/2400/463 3491/2397/469 -f 3532/2439/458 3481/2386/458 3478/2383/459 -f 3547/2455/460 3499/2405/460 3500/2406/461 -f 3544/2452/462 3493/2399/462 3494/2400/463 -f 3531/2438/464 3483/2388/464 3481/2386/458 -f 3538/2446/465 3487/2392/465 3485/2394/466 -f 3486/2391/464 3557/2465/464 3553/2461/458 -f 3490/2396/465 3559/2467/465 3560/2469/466 -f 3479/2384/467 3552/2460/467 3573/2482/460 -f 3498/2404/468 3567/2476/468 3565/2474/462 -f 3488/2546/466 3560/2549/466 3557/2465/464 -f 3489/2395/469 3561/2470/469 3559/2467/465 -f 3482/2387/459 3550/2458/459 3552/2460/467 -f 3497/2403/461 3569/2478/461 3567/2476/468 -f 3492/2398/463 3563/2472/463 3561/2470/469 -f 3484/2389/458 3553/2461/458 3550/2458/459 -f 3501/2407/460 3573/2482/460 3569/2478/461 -f 3496/2402/462 3565/2474/462 3563/2472/463 -f 3551/2459/467 3504/2410/467 3523/2430/460 -f 3570/2479/468 3519/2426/468 3517/2424/462 -f 3558/2466/466 3509/2415/466 3507/2413/464 -f 3564/2473/469 3515/2422/469 3511/2417/465 -f 3554/2462/459 3502/2408/459 3504/2410/467 -f 3572/2481/461 3524/2431/461 3519/2426/468 -f 3566/2475/463 3518/2425/463 3515/2422/469 -f 3556/2464/458 3505/2411/458 3502/2408/459 -f 3571/2480/460 3523/2430/460 3524/2431/461 -f 3568/2477/462 3517/2424/462 3518/2425/463 -f 3555/2463/464 3507/2413/464 3505/2411/458 -f 3562/2471/465 3511/2417/465 3509/2419/466 -f 3510/2416/464 3626/2570/474 3622/2566/470 -f 3514/2421/465 3627/2571/475 3623/2567/471 -f 3503/2409/467 3628/2572/476 3624/2568/472 -f 3522/2429/468 3629/2573/477 3625/2569/473 -f 3512/2547/466 3623/2590/471 3626/2570/474 -f 3513/2420/469 3630/2574/478 3627/2571/475 -f 3506/2412/459 3631/2575/479 3628/2572/476 -f 3521/2428/461 3632/2576/480 3629/2573/477 -f 3516/2423/463 3633/2577/481 3630/2574/478 -f 3508/2414/458 3622/2566/470 3631/2575/479 -f 3525/2432/460 3624/2568/472 3632/2576/480 -f 3520/2427/462 3625/2569/473 3633/2577/481 -f 3632/2576/480 3638/2603/486 3634/2578/482 -f 3633/2577/481 3640/2598/488 3635/2579/483 -f 3631/2575/479 3622/2566/470 3636/2580/484 -f 3624/2568/472 3643/2605/491 3638/2582/486 -f 3633/2577/481 3625/2569/473 3639/2583/487 -f 3626/2570/474 3644/2611/492 3636/2585/484 -f 3627/2571/475 3645/2594/493 3641/2586/489 -f 3624/2568/472 3628/2572/476 3642/2587/490 -f 3629/2573/477 3634/2601/482 3639/2589/487 -f 3623/2590/471 3641/2613/489 3644/2591/492 -f 3630/2574/478 3635/2596/483 3645/2592/493 -f 3631/2575/479 3637/2608/485 3642/2593/490 -f 3648/2627/459 3652/2631/459 3649/2628/506 -f 3651/2630/507 3658/2637/507 3652/2631/459 -f 3653/2632/463 3657/2636/463 3654/2633/508 -f 3656/2635/509 3659/2638/509 3657/2636/463 +f 4068/5732/460 3913/5560/461 4066/5730/461 +f 4061/5725/462 3907/5554/463 4062/5726/463 +f 4079/5745/464 3901/5548/465 4077/5743/465 +f 4070/5734/466 3892/5538/460 4068/5732/460 +f 4073/5738/467 3898/5545/468 4071/5739/468 +f 4064/5728/469 3911/5558/462 4061/5725/462 +f 4081/5747/470 3903/5550/464 4079/5745/464 +f 4071/5736/468 3895/5541/466 4070/5734/466 +f 4075/5741/471 3897/5543/467 4073/5738/467 +f 4066/5730/461 3914/5561/469 4064/5728/469 +f 4062/5726/463 3905/5552/470 4081/5747/470 +f 4077/5743/465 3899/5546/471 4075/5741/471 +f 3912/5559/469 3937/5585/462 3909/5556/462 +f 3908/5555/470 3931/5579/464 3906/5553/464 +f 3896/5542/468 3921/5568/466 3893/5539/466 +f 3902/5549/471 3925/5572/467 3900/5547/467 +f 3915/5562/461 3918/5565/469 3912/5559/469 +f 3910/5557/463 3933/5581/470 3908/5555/470 +f 3904/5551/465 3929/5577/471 3902/5549/471 +f 3894/5540/460 3916/5563/461 3915/5562/461 +f 3909/5556/462 3938/5586/463 3910/5557/463 +f 3906/5553/464 3932/5580/465 3904/5551/465 +f 3893/5539/466 3919/5566/460 3894/5540/460 +f 3900/5547/467 3923/5574/468 3896/5544/468 +f 3924/5571/466 3991/5641/460 3922/5569/460 +f 3928/5576/467 3998/5649/468 3926/5573/468 +f 3917/5564/469 4011/5662/462 3939/5587/462 +f 3936/5584/470 4003/5654/464 3934/5582/464 +f 3926/5750/468 3995/5645/466 3924/5571/466 +f 3927/5575/471 3997/5647/467 3928/5576/467 +f 3920/5567/461 3990/5640/469 3917/5564/469 +f 3935/5583/463 4005/5656/470 3936/5584/470 +f 3930/5578/465 3999/5650/471 3927/5575/471 +f 3922/5569/460 3988/5638/461 3920/5567/461 +f 3939/5587/462 4007/5658/463 3935/5583/463 +f 3934/5582/464 4001/5652/465 3930/5578/465 +f 3989/5639/469 3961/5610/462 4009/5660/462 +f 4008/5659/470 3955/5604/464 4006/5657/464 +f 3996/5646/468 3945/5593/466 3993/5643/466 +f 4002/5653/471 3949/5597/467 4000/5651/467 +f 3992/5642/461 3942/5590/469 3989/5639/469 +f 4010/5661/463 3957/5606/470 4008/5659/470 +f 4004/5655/465 3953/5602/471 4002/5653/471 +f 3994/5644/460 3940/5588/461 3992/5642/461 +f 4009/5660/462 3962/5611/463 4010/5661/463 +f 4006/5657/464 3956/5605/465 4004/5655/465 +f 3993/5643/466 3943/5591/460 3994/5644/460 +f 4000/5651/467 3947/5599/468 3996/5648/468 +f 3948/5596/466 4015/5666/460 3946/5594/460 +f 3952/5601/467 4022/5674/468 3950/5598/468 +f 3941/5589/469 4035/5687/462 3963/5612/462 +f 3960/5609/470 4027/5679/464 3958/5607/464 +f 3950/5751/468 4019/5670/466 3948/5596/466 +f 3951/5600/471 4021/5672/467 3952/5601/467 +f 3944/5592/461 4014/5665/469 3941/5589/469 +f 3959/5608/463 4029/5681/470 3960/5609/470 +f 3954/5603/465 4023/5675/471 3951/5600/471 +f 3946/5594/460 4012/5663/461 3944/5592/461 +f 3963/5612/462 4031/5683/463 3959/5608/463 +f 3958/5607/464 4025/5677/465 3954/5603/465 +f 4013/5664/469 3985/5635/462 4033/5685/462 +f 4032/5684/470 3979/5629/464 4030/5682/464 +f 4020/5671/468 3969/5618/466 4017/5668/466 +f 4026/5678/471 3973/5622/467 4024/5676/467 +f 4016/5667/461 3966/5615/469 4013/5664/469 +f 4034/5686/463 3981/5631/470 4032/5684/470 +f 4028/5680/465 3977/5627/471 4026/5678/471 +f 4018/5669/460 3964/5613/461 4016/5667/461 +f 4033/5685/462 3986/5636/463 4034/5686/463 +f 4030/5682/464 3980/5630/465 4028/5680/465 +f 4017/5668/466 3967/5616/460 4018/5669/460 +f 4024/5676/467 3971/5624/468 4020/5673/468 +f 3972/5621/466 4084/5771/472 3970/5619/460 +f 3976/5626/467 4085/5772/473 3974/5623/468 +f 3965/5614/469 4086/5773/474 3987/5637/462 +f 3984/5634/470 4087/5774/475 3982/5632/464 +f 3974/5752/468 4088/5775/476 3972/5621/466 +f 3975/5625/471 4089/5776/477 3976/5626/467 +f 3968/5617/461 4090/5777/478 3965/5614/469 +f 3983/5633/463 4091/5778/479 3984/5634/470 +f 3978/5628/465 4092/5779/480 3975/5625/471 +f 3970/5619/460 4093/5780/481 3968/5617/461 +f 3987/5637/462 4094/5781/482 3983/5633/463 +f 3982/5632/464 4095/5782/483 3978/5628/465 +f 4094/5781/482 4096/5783/484 4091/5778/479 +f 4095/5782/483 4097/5784/485 4092/5779/480 +f 4093/5780/481 4098/5785/486 4099/5786/487 +f 4086/5773/474 4100/5787/488 4094/5781/482 +f 4095/5782/483 4101/5788/489 4102/5789/490 +f 4088/5775/476 4098/5790/486 4084/5771/472 +f 4089/5776/477 4103/5791/491 4085/5772/473 +f 4086/5773/474 4104/5792/492 4105/5793/493 +f 4091/5778/479 4101/5794/489 4087/5774/475 +f 4085/5795/473 4106/5796/494 4088/5775/476 +f 4092/5779/480 4107/5797/495 4089/5776/477 +f 4093/5780/481 4104/5798/492 4090/5777/478 +f 4103/5791/491 4107/5799/495 4108/5800/446 +f 4107/5797/495 4097/5801/485 4108/5802/446 +f 4097/5784/485 4102/5803/490 4108/5804/446 +f 4102/5789/490 4101/5788/489 4108/5805/446 +f 4101/5794/489 4096/5806/484 4108/5807/446 +f 4096/5783/484 4100/5808/488 4108/5809/446 +f 4100/5787/488 4105/5810/493 4108/5811/446 +f 4105/5793/493 4104/5792/492 4108/5812/446 +f 4104/5798/492 4099/5813/487 4108/5814/446 +f 4099/5786/487 4098/5785/486 4108/5815/446 +f 4098/5790/486 4106/5816/494 4108/5817/446 +f 4106/5796/494 4103/5818/491 4108/5819/446 +f 4074/5765/496 4072/5737/497 4109/5820/447 +f 4072/5764/497 4069/5735/498 4109/5821/447 +f 4069/5733/498 4083/5763/499 4109/5822/447 +f 4083/5762/499 4067/5731/500 4109/5823/447 +f 4067/5761/500 4065/5729/501 4109/5824/447 +f 4065/5760/501 4063/5727/502 4109/5825/447 +f 4063/5759/502 4060/5724/503 4109/5826/447 +f 4060/5770/503 4082/5748/504 4109/5827/447 +f 4082/5769/504 4080/5746/505 4109/5828/447 +f 4080/5768/505 4078/5744/506 4109/5829/447 +f 4078/5767/506 4076/5742/507 4109/5830/447 +f 4076/5766/507 4074/5740/496 4109/5831/447 +f 4110/5832/461 4111/5833/508 4112/5834/508 +f 4113/5835/509 4114/5836/461 4110/5832/461 +f 4115/5837/465 4116/5838/510 4117/5839/510 +f 4118/5840/511 4119/5841/465 4115/5837/465 +f 4068/5732/460 3892/5538/460 3913/5560/461 +f 4061/5725/462 3911/5558/462 3907/5554/463 +f 4079/5745/464 3903/5550/464 3901/5548/465 +f 4070/5734/466 3895/5541/466 3892/5538/460 +f 4073/5738/467 3897/5543/467 3898/5545/468 +f 4064/5728/469 3914/5561/469 3911/5558/462 +f 4081/5747/470 3905/5552/470 3903/5550/464 +f 4071/5736/468 3898/5749/468 3895/5541/466 +f 4075/5741/471 3899/5546/471 3897/5543/467 +f 4066/5730/461 3913/5560/461 3914/5561/469 +f 4062/5726/463 3907/5554/463 3905/5552/470 +f 4077/5743/465 3901/5548/465 3899/5546/471 +f 3912/5559/469 3918/5565/469 3937/5585/462 +f 3908/5555/470 3933/5581/470 3931/5579/464 +f 3896/5542/468 3923/5570/468 3921/5568/466 +f 3902/5549/471 3929/5577/471 3925/5572/467 +f 3915/5562/461 3916/5563/461 3918/5565/469 +f 3910/5557/463 3938/5586/463 3933/5581/470 +f 3904/5551/465 3932/5580/465 3929/5577/471 +f 3894/5540/460 3919/5566/460 3916/5563/461 +f 3909/5556/462 3937/5585/462 3938/5586/463 +f 3906/5553/464 3931/5579/464 3932/5580/465 +f 3893/5539/466 3921/5568/466 3919/5566/460 +f 3900/5547/467 3925/5572/467 3923/5574/468 +f 3924/5571/466 3995/5645/466 3991/5641/460 +f 3928/5576/467 3997/5647/467 3998/5649/468 +f 3917/5564/469 3990/5640/469 4011/5662/462 +f 3936/5584/470 4005/5656/470 4003/5654/464 +f 3926/5750/468 3998/5753/468 3995/5645/466 +f 3927/5575/471 3999/5650/471 3997/5647/467 +f 3920/5567/461 3988/5638/461 3990/5640/469 +f 3935/5583/463 4007/5658/463 4005/5656/470 +f 3930/5578/465 4001/5652/465 3999/5650/471 +f 3922/5569/460 3991/5641/460 3988/5638/461 +f 3939/5587/462 4011/5662/462 4007/5658/463 +f 3934/5582/464 4003/5654/464 4001/5652/465 +f 3989/5639/469 3942/5590/469 3961/5610/462 +f 4008/5659/470 3957/5606/470 3955/5604/464 +f 3996/5646/468 3947/5595/468 3945/5593/466 +f 4002/5653/471 3953/5602/471 3949/5597/467 +f 3992/5642/461 3940/5588/461 3942/5590/469 +f 4010/5661/463 3962/5611/463 3957/5606/470 +f 4004/5655/465 3956/5605/465 3953/5602/471 +f 3994/5644/460 3943/5591/460 3940/5588/461 +f 4009/5660/462 3961/5610/462 3962/5611/463 +f 4006/5657/464 3955/5604/464 3956/5605/465 +f 3993/5643/466 3945/5593/466 3943/5591/460 +f 4000/5651/467 3949/5597/467 3947/5599/468 +f 3948/5596/466 4019/5670/466 4015/5666/460 +f 3952/5601/467 4021/5672/467 4022/5674/468 +f 3941/5589/469 4014/5665/469 4035/5687/462 +f 3960/5609/470 4029/5681/470 4027/5679/464 +f 3950/5751/468 4022/5754/468 4019/5670/466 +f 3951/5600/471 4023/5675/471 4021/5672/467 +f 3944/5592/461 4012/5663/461 4014/5665/469 +f 3959/5608/463 4031/5683/463 4029/5681/470 +f 3954/5603/465 4025/5677/465 4023/5675/471 +f 3946/5594/460 4015/5666/460 4012/5663/461 +f 3963/5612/462 4035/5687/462 4031/5683/463 +f 3958/5607/464 4027/5679/464 4025/5677/465 +f 4013/5664/469 3966/5615/469 3985/5635/462 +f 4032/5684/470 3981/5631/470 3979/5629/464 +f 4020/5671/468 3971/5620/468 3969/5618/466 +f 4026/5678/471 3977/5627/471 3973/5622/467 +f 4016/5667/461 3964/5613/461 3966/5615/469 +f 4034/5686/463 3986/5636/463 3981/5631/470 +f 4028/5680/465 3980/5630/465 3977/5627/471 +f 4018/5669/460 3967/5616/460 3964/5613/461 +f 4033/5685/462 3985/5635/462 3986/5636/463 +f 4030/5682/464 3979/5629/464 3980/5630/465 +f 4017/5668/466 3969/5618/466 3967/5616/460 +f 4024/5676/467 3973/5622/467 3971/5624/468 +f 3972/5621/466 4088/5775/476 4084/5771/472 +f 3976/5626/467 4089/5776/477 4085/5772/473 +f 3965/5614/469 4090/5777/478 4086/5773/474 +f 3984/5634/470 4091/5778/479 4087/5774/475 +f 3974/5752/468 4085/5795/473 4088/5775/476 +f 3975/5625/471 4092/5779/480 4089/5776/477 +f 3968/5617/461 4093/5780/481 4090/5777/478 +f 3983/5633/463 4094/5781/482 4091/5778/479 +f 3978/5628/465 4095/5782/483 4092/5779/480 +f 3970/5619/460 4084/5771/472 4093/5780/481 +f 3987/5637/462 4086/5773/474 4094/5781/482 +f 3982/5632/464 4087/5774/475 4095/5782/483 +f 4094/5781/482 4100/5808/488 4096/5783/484 +f 4095/5782/483 4102/5803/490 4097/5784/485 +f 4093/5780/481 4084/5771/472 4098/5785/486 +f 4086/5773/474 4105/5810/493 4100/5787/488 +f 4095/5782/483 4087/5774/475 4101/5788/489 +f 4088/5775/476 4106/5816/494 4098/5790/486 +f 4089/5776/477 4107/5799/495 4103/5791/491 +f 4086/5773/474 4090/5777/478 4104/5792/492 +f 4091/5778/479 4096/5806/484 4101/5794/489 +f 4085/5795/473 4103/5818/491 4106/5796/494 +f 4092/5779/480 4097/5801/485 4107/5797/495 +f 4093/5780/481 4099/5813/487 4104/5798/492 +f 4110/5832/461 4114/5836/461 4111/5833/508 +f 4113/5835/509 4120/5842/509 4114/5836/461 +f 4115/5837/465 4119/5841/465 4116/5838/510 +f 4118/5840/511 4121/5843/511 4119/5841/465 o ABM_Missile v -0.176777 3.500000 -0.176777 v 0.176777 3.500000 -0.176777 @@ -12751,765 +16594,765 @@ vn -0.8660 0.0000 -0.5000 vn 0.8660 -0.0000 -0.5000 vn 0.8660 -0.0000 0.5000 s off -f 3660/2639/510 3661/2640/510 3662/2641/510 -f 3663/2642/510 3664/2643/510 3665/2644/510 -f 3666/2645/510 3665/2646/510 3667/2647/510 -f 3666/2645/510 3668/2648/510 3669/2649/510 -f 3669/2649/510 3670/2650/510 3671/2651/510 -f 3672/2652/510 3670/2653/510 3673/2654/510 -f 3674/2655/510 3673/2656/510 3675/2657/510 -f 3676/2658/510 3675/2659/510 3677/2660/510 -f 3676/2658/510 3678/2661/510 3679/2662/510 -f 3680/2663/510 3678/2664/510 3681/2665/510 -f 3682/2666/510 3681/2667/510 3683/2668/510 -f 3682/2666/510 3684/2669/510 3685/2670/510 -f 3685/2670/510 3686/2671/510 3687/2672/510 -f 3688/2673/510 3689/2674/510 3690/2675/510 -f 3691/2676/510 3686/2677/510 3692/2678/510 -f 3690/2675/510 3664/2679/510 3693/2680/510 -f 3691/2676/510 3694/2681/510 3688/2673/510 -f 3695/2682/510 3696/2683/510 3697/2684/510 -f 3698/2685/511 3699/2686/511 3700/2687/511 -f 3701/2688/512 3702/2689/512 3699/2686/512 -f 3703/2690/513 3701/2691/513 3698/2692/513 -f 3702/2689/514 3700/2693/514 3699/2694/514 -f 3704/2695/510 3705/2696/510 3706/2697/510 -f 3707/2698/515 3708/2699/515 3709/2700/515 -f 3708/2701/516 3704/2695/516 3706/2697/516 -f 3705/2702/517 3708/2701/517 3706/2697/517 -f 3710/2703/518 3711/2704/518 3712/2705/518 -f 3713/2706/510 3714/2707/510 3715/2708/510 -f 3716/2709/510 3717/2710/510 3718/2711/510 -f 3719/2712/510 3718/2713/510 3720/2714/510 -f 3719/2712/510 3721/2715/510 3722/2716/510 -f 3722/2716/510 3723/2717/510 3724/2718/510 -f 3725/2719/510 3723/2720/510 3726/2721/510 -f 3727/2722/510 3726/2723/510 3728/2724/510 -f 3729/2725/510 3728/2726/510 3730/2727/510 -f 3729/2725/510 3731/2728/510 3732/2729/510 -f 3733/2730/510 3731/2731/510 3734/2732/510 -f 3735/2733/510 3734/2734/510 3736/2735/510 -f 3735/2733/510 3737/2736/510 3738/2737/510 -f 3738/2737/510 3739/2738/510 3740/2739/510 -f 3741/2740/510 3742/2741/510 3743/2742/510 -f 3744/2743/510 3739/2744/510 3745/2745/510 -f 3743/2742/510 3717/2746/510 3746/2747/510 -f 3744/2743/510 3747/2748/510 3741/2740/510 -f 3748/2749/510 3749/2750/510 3750/2751/510 -f 3751/2752/510 3752/2753/510 3753/2754/510 -f 3754/2755/519 3755/2756/519 3756/2757/519 -f 3755/2758/520 3751/2752/520 3753/2754/520 -f 3752/2759/521 3755/2758/521 3753/2754/521 -f 3757/2760/510 3758/2761/510 3759/2762/510 -f 3760/2763/510 3759/2764/510 3761/2765/510 -f 3760/2763/510 3762/2766/510 3763/2767/510 -f 3763/2767/510 3764/2768/510 3765/2769/510 -f 3766/2770/510 3764/2771/510 3767/2772/510 -f 3768/2773/510 3767/2774/510 3769/2775/510 -f 3770/2776/510 3769/2777/510 3771/2778/510 -f 3770/2776/510 3772/2779/510 3773/2780/510 -f 3774/2781/510 3772/2782/510 3775/2783/510 -f 3774/2781/510 3776/2784/510 3777/2785/510 -f 3777/2785/510 3778/2786/510 3779/2787/510 -f 3779/2787/510 3780/2788/510 3781/2789/510 -f 3782/2790/510 3783/2791/510 3784/2792/510 -f 3785/2793/510 3780/2794/510 3786/2795/510 -f 3784/2792/510 3758/2796/510 3787/2797/510 -f 3785/2793/510 3788/2798/510 3782/2790/510 -f 3789/2799/510 3790/2800/510 3791/2801/510 -f 3792/2802/510 3793/2803/510 3794/2804/510 -f 3795/2805/522 3796/2806/522 3797/2807/522 -f 3796/2808/523 3792/2802/523 3794/2804/523 -f 3793/2809/524 3796/2808/524 3794/2804/524 -f 3798/2810/510 3799/2811/510 3800/2812/510 -f 3801/2813/510 3800/2814/510 3802/2815/510 -f 3801/2813/510 3803/2816/510 3804/2817/510 -f 3804/2817/510 3805/2818/510 3806/2819/510 -f 3807/2820/510 3805/2821/510 3808/2822/510 -f 3809/2823/510 3808/2824/510 3810/2825/510 -f 3811/2826/510 3810/2827/510 3812/2828/510 -f 3811/2826/510 3813/2829/510 3814/2830/510 -f 3815/2831/510 3813/2832/510 3816/2833/510 -f 3817/2834/510 3816/2835/510 3818/2836/510 -f 3817/2834/510 3819/2837/510 3820/2838/510 -f 3820/2838/510 3821/2839/510 3822/2840/510 -f 3823/2841/510 3824/2842/510 3825/2843/510 -f 3826/2844/510 3821/2845/510 3827/2846/510 -f 3825/2843/510 3799/2847/510 3828/2848/510 -f 3823/2841/510 3827/2849/510 3829/2850/510 -f 3830/2851/510 3831/2852/510 3832/2853/510 -f 3833/2854/510 3834/2855/510 3835/2856/510 -f 3836/2857/525 3837/2858/525 3838/2859/525 -f 3837/2860/526 3833/2854/526 3835/2856/526 -f 3834/2861/527 3837/2860/527 3835/2856/527 -f 3839/2862/528 3840/2863/528 3841/2864/528 -f 3842/2865/529 3843/2866/529 3840/2863/529 -f 3844/2867/530 3842/2868/530 3839/2869/530 -f 3843/2866/531 3841/2870/531 3840/2871/531 -f 3845/2872/518 3846/2873/518 3847/2874/518 -f 3848/2875/510 3849/2876/510 3850/2877/510 -f 3851/2878/532 3852/2879/532 3853/2880/532 -f 3854/2881/533 3855/2882/533 3852/2879/533 -f 3856/2883/534 3854/2884/534 3851/2885/534 -f 3855/2882/535 3853/2886/535 3852/2887/535 -f 3857/2888/518 3858/2889/518 3859/2890/518 -f 3860/2891/510 3861/2892/510 3862/2893/510 -f 3863/2894/536 3864/2895/536 3865/2896/536 -f 3864/2895/537 3866/2897/537 3865/2896/537 -f 3867/2898/538 3864/2899/538 3868/2900/538 -f 3866/2897/539 3863/2901/539 3865/2902/539 -f 3869/2903/518 3870/2904/518 3871/2905/518 -f 3872/2906/510 3873/2907/510 3874/2908/510 -f 3660/2639/510 3875/2909/510 3876/2910/510 -f 3876/2910/510 3877/2911/510 3660/2639/510 -f 3877/2911/510 3661/2640/510 3660/2639/510 -f 3661/2640/510 3878/2912/510 3879/2913/510 -f 3879/2913/510 3880/2914/510 3662/2641/510 -f 3662/2641/510 3881/2915/510 3882/2916/510 -f 3882/2916/510 3883/2917/510 3884/2918/510 -f 3884/2918/510 3885/2919/510 3660/2639/510 -f 3885/2919/510 3886/2920/510 3660/2639/510 -f 3886/2920/510 3887/2921/510 3660/2639/510 -f 3661/2640/510 3879/2913/510 3662/2641/510 -f 3662/2641/510 3882/2916/510 3660/2639/510 -f 3882/2916/510 3884/2918/510 3660/2639/510 -f 3663/2642/510 3693/2922/510 3664/2643/510 -f 3666/2645/510 3663/2642/510 3665/2646/510 -f 3666/2645/510 3667/2923/510 3668/2648/510 -f 3669/2649/510 3668/2924/510 3670/2650/510 -f 3672/2652/510 3671/2651/510 3670/2653/510 -f 3674/2655/510 3672/2652/510 3673/2656/510 -f 3676/2658/510 3674/2655/510 3675/2659/510 -f 3676/2658/510 3677/2925/510 3678/2661/510 -f 3680/2663/510 3679/2662/510 3678/2664/510 -f 3682/2666/510 3680/2663/510 3681/2667/510 -f 3682/2666/510 3683/2926/510 3684/2669/510 -f 3685/2670/510 3684/2927/510 3686/2671/510 -f 3688/2673/510 3694/2928/510 3689/2674/510 -f 3691/2676/510 3687/2672/510 3686/2677/510 -f 3690/2675/510 3689/2929/510 3664/2679/510 -f 3691/2676/510 3692/2930/510 3694/2681/510 -f 3697/2684/510 3888/2931/510 3889/2932/510 -f 3889/2932/510 3890/2933/510 3697/2684/510 -f 3890/2933/510 3891/2934/510 3697/2684/510 -f 3891/2934/510 3892/2935/510 3893/2936/510 -f 3893/2936/510 3894/2937/510 3695/2682/510 -f 3695/2682/510 3895/2938/510 3696/2683/510 -f 3895/2938/510 3896/2939/510 3696/2683/510 -f 3896/2939/510 3897/2940/510 3696/2683/510 -f 3696/2683/510 3898/2941/510 3899/2942/510 -f 3899/2942/510 3900/2943/510 3697/2684/510 -f 3891/2934/510 3893/2936/510 3697/2684/510 -f 3893/2936/510 3695/2682/510 3697/2684/510 -f 3696/2683/510 3899/2942/510 3697/2684/510 -f 3698/2685/511 3701/2688/511 3699/2686/511 -f 3701/2688/512 3703/2690/512 3702/2689/512 -f 3708/2701/516 3707/2698/516 3704/2695/516 -f 3705/2702/517 3709/2944/517 3708/2701/517 -f 3712/2705/518 3901/2945/518 3710/2703/518 -f 3710/2703/518 3902/2946/518 3711/2704/518 -f 3711/2704/518 3903/2947/518 3712/2705/518 -f 3715/2708/510 3904/2948/510 3905/2949/510 -f 3905/2949/510 3906/2950/510 3715/2708/510 -f 3906/2950/510 3713/2706/510 3715/2708/510 -f 3716/2709/510 3746/2951/510 3717/2710/510 -f 3719/2712/510 3716/2709/510 3718/2713/510 -f 3719/2712/510 3720/2952/510 3721/2715/510 -f 3722/2716/510 3721/2953/510 3723/2717/510 -f 3725/2719/510 3724/2718/510 3723/2720/510 -f 3727/2722/510 3725/2719/510 3726/2723/510 -f 3729/2725/510 3727/2722/510 3728/2726/510 -f 3729/2725/510 3730/2954/510 3731/2728/510 -f 3733/2730/510 3732/2729/510 3731/2731/510 -f 3735/2733/510 3733/2730/510 3734/2734/510 -f 3735/2733/510 3736/2955/510 3737/2736/510 -f 3738/2737/510 3737/2956/510 3739/2738/510 -f 3741/2740/510 3747/2957/510 3742/2741/510 -f 3744/2743/510 3740/2739/510 3739/2744/510 -f 3743/2742/510 3742/2958/510 3717/2746/510 -f 3744/2743/510 3745/2959/510 3747/2748/510 -f 3750/2751/510 3907/2960/510 3908/2961/510 -f 3908/2961/510 3909/2962/510 3910/2963/510 -f 3910/2963/510 3911/2964/510 3912/2965/510 -f 3912/2965/510 3913/2966/510 3914/2967/510 -f 3914/2967/510 3915/2968/510 3916/2969/510 -f 3916/2969/510 3917/2970/510 3748/2749/510 -f 3748/2749/510 3918/2971/510 3749/2750/510 -f 3749/2750/510 3919/2972/510 3750/2751/510 -f 3750/2751/510 3908/2961/510 3914/2967/510 -f 3908/2961/510 3910/2963/510 3914/2967/510 -f 3910/2963/510 3912/2965/510 3914/2967/510 -f 3914/2967/510 3916/2969/510 3750/2751/510 -f 3916/2969/510 3748/2749/510 3750/2751/510 -f 3755/2758/520 3754/2755/520 3751/2752/520 -f 3752/2759/521 3756/2973/521 3755/2758/521 -f 3757/2760/510 3787/2974/510 3758/2761/510 -f 3760/2763/510 3757/2760/510 3759/2764/510 -f 3760/2763/510 3761/2975/510 3762/2766/510 -f 3763/2767/510 3762/2976/510 3764/2768/510 -f 3766/2770/510 3765/2769/510 3764/2771/510 -f 3768/2773/510 3766/2770/510 3767/2774/510 -f 3770/2776/510 3768/2773/510 3769/2777/510 -f 3770/2776/510 3771/2977/510 3772/2779/510 -f 3774/2781/510 3773/2780/510 3772/2782/510 -f 3774/2781/510 3775/2978/510 3776/2784/510 -f 3777/2785/510 3776/2979/510 3778/2786/510 -f 3779/2787/510 3778/2980/510 3780/2788/510 -f 3782/2790/510 3788/2981/510 3783/2791/510 -f 3785/2793/510 3781/2789/510 3780/2794/510 -f 3784/2792/510 3783/2982/510 3758/2796/510 -f 3785/2793/510 3786/2983/510 3788/2798/510 -f 3791/2801/510 3920/2984/510 3921/2985/510 -f 3921/2985/510 3922/2986/510 3923/2987/510 -f 3923/2987/510 3924/2988/510 3925/2989/510 -f 3925/2989/510 3926/2990/510 3789/2799/510 -f 3789/2799/510 3927/2991/510 3790/2800/510 -f 3927/2991/510 3928/2992/510 3790/2800/510 -f 3928/2992/510 3929/2993/510 3790/2800/510 -f 3790/2800/510 3930/2994/510 3931/2995/510 -f 3931/2995/510 3932/2996/510 3791/2801/510 -f 3791/2801/510 3921/2985/510 3923/2987/510 -f 3923/2987/510 3925/2989/510 3791/2801/510 -f 3925/2989/510 3789/2799/510 3791/2801/510 -f 3790/2800/510 3931/2995/510 3791/2801/510 -f 3796/2808/523 3795/2805/523 3792/2802/523 -f 3793/2809/524 3797/2997/524 3796/2808/524 -f 3798/2810/510 3828/2998/510 3799/2811/510 -f 3801/2813/510 3798/2810/510 3800/2814/510 -f 3801/2813/510 3802/2999/510 3803/2816/510 -f 3804/2817/510 3803/3000/510 3805/2818/510 -f 3807/2820/510 3806/2819/510 3805/2821/510 -f 3809/2823/510 3807/2820/510 3808/2824/510 -f 3811/2826/510 3809/2823/510 3810/2827/510 -f 3811/2826/510 3812/3001/510 3813/2829/510 -f 3815/2831/510 3814/2830/510 3813/2832/510 -f 3817/2834/510 3815/2831/510 3816/2835/510 -f 3817/2834/510 3818/3002/510 3819/2837/510 -f 3820/2838/510 3819/3003/510 3821/2839/510 -f 3823/2841/510 3829/3004/510 3824/2842/510 -f 3826/2844/510 3822/2840/510 3821/2845/510 -f 3825/2843/510 3824/3005/510 3799/2847/510 -f 3823/2841/510 3826/2844/510 3827/2849/510 -f 3832/2853/510 3933/3006/510 3934/3007/510 -f 3934/3007/510 3935/3008/510 3832/2853/510 -f 3935/3008/510 3936/3009/510 3832/2853/510 -f 3936/3009/510 3937/3010/510 3938/3011/510 -f 3938/3011/510 3939/3012/510 3830/2851/510 -f 3830/2851/510 3940/3013/510 3831/2852/510 -f 3940/3013/510 3941/3014/510 3831/2852/510 -f 3941/3014/510 3942/3015/510 3831/2852/510 -f 3831/2852/510 3943/3016/510 3944/3017/510 -f 3944/3017/510 3945/3018/510 3832/2853/510 -f 3936/3009/510 3938/3011/510 3832/2853/510 -f 3938/3011/510 3830/2851/510 3832/2853/510 -f 3831/2852/510 3944/3017/510 3832/2853/510 -f 3837/2860/526 3836/2857/526 3833/2854/526 -f 3834/2861/527 3838/3019/527 3837/2860/527 -f 3839/2862/528 3842/2865/528 3840/2863/528 -f 3842/2865/529 3844/2867/529 3843/2866/529 -f 3846/2873/518 3946/3020/518 3847/2874/518 -f 3847/2874/518 3947/3021/518 3948/3022/518 -f 3948/3022/518 3845/2872/518 3847/2874/518 -f 3850/2877/510 3949/3023/510 3950/3024/510 -f 3950/3024/510 3951/3025/510 3850/2877/510 -f 3951/3025/510 3848/2875/510 3850/2877/510 -f 3851/2878/532 3854/2881/532 3852/2879/532 -f 3854/2881/533 3856/2883/533 3855/2882/533 -f 3859/2890/518 3952/3026/518 3857/2888/518 -f 3857/2888/518 3953/3027/518 3858/2889/518 -f 3858/2889/518 3954/3028/518 3859/2890/518 -f 3862/2893/510 3955/3029/510 3956/3030/510 -f 3956/3030/510 3957/3031/510 3862/2893/510 -f 3957/3031/510 3860/2891/510 3862/2893/510 -f 3863/2894/536 3868/3032/536 3864/2895/536 -f 3864/2895/537 3867/2898/537 3866/2897/537 -f 3871/2905/518 3958/3033/518 3869/2903/518 -f 3869/2903/518 3959/3034/518 3870/2904/518 -f 3870/2904/518 3960/3035/518 3871/2905/518 -f 3874/2908/510 3961/3036/510 3962/3037/510 -f 3962/3037/510 3963/3038/510 3874/2908/510 -f 3963/3038/510 3872/2906/510 3874/2908/510 +f 4122/5844/512 4123/5845/512 4124/5846/512 +f 4125/5847/512 4126/5848/512 4127/5849/512 +f 4128/5850/512 4127/5851/512 4129/5852/512 +f 4128/5850/512 4130/5853/512 4131/5854/512 +f 4131/5854/512 4132/5855/512 4133/5856/512 +f 4134/5857/512 4132/5858/512 4135/5859/512 +f 4136/5860/512 4135/5861/512 4137/5862/512 +f 4138/5863/512 4137/5864/512 4139/5865/512 +f 4138/5863/512 4140/5866/512 4141/5867/512 +f 4142/5868/512 4140/5869/512 4143/5870/512 +f 4144/5871/512 4143/5872/512 4145/5873/512 +f 4144/5871/512 4146/5874/512 4147/5875/512 +f 4147/5875/512 4148/5876/512 4149/5877/512 +f 4150/5878/512 4151/5879/512 4152/5880/512 +f 4153/5881/512 4148/5882/512 4154/5883/512 +f 4152/5880/512 4126/5884/512 4155/5885/512 +f 4153/5881/512 4156/5886/512 4150/5878/512 +f 4157/5887/512 4158/5888/512 4159/5889/512 +f 4160/5890/513 4161/5891/513 4162/5892/513 +f 4163/5893/514 4164/5894/514 4161/5891/514 +f 4165/5895/515 4163/5896/515 4160/5897/515 +f 4164/5894/516 4162/5898/516 4161/5899/516 +f 4166/5900/512 4167/5901/512 4168/5902/512 +f 4169/5903/517 4170/5904/517 4171/5905/517 +f 4170/5906/518 4166/5900/518 4168/5902/518 +f 4167/5907/519 4170/5906/519 4168/5902/519 +f 4172/5908/520 4173/5909/520 4174/5910/520 +f 4175/5911/512 4176/5912/512 4177/5913/512 +f 4178/5914/512 4179/5915/512 4180/5916/512 +f 4181/5917/512 4180/5918/512 4182/5919/512 +f 4181/5917/512 4183/5920/512 4184/5921/512 +f 4184/5921/512 4185/5922/512 4186/5923/512 +f 4187/5924/512 4185/5925/512 4188/5926/512 +f 4189/5927/512 4188/5928/512 4190/5929/512 +f 4191/5930/512 4190/5931/512 4192/5932/512 +f 4191/5930/512 4193/5933/512 4194/5934/512 +f 4195/5935/512 4193/5936/512 4196/5937/512 +f 4197/5938/512 4196/5939/512 4198/5940/512 +f 4197/5938/512 4199/5941/512 4200/5942/512 +f 4200/5942/512 4201/5943/512 4202/5944/512 +f 4203/5945/512 4204/5946/512 4205/5947/512 +f 4206/5948/512 4201/5949/512 4207/5950/512 +f 4205/5947/512 4179/5951/512 4208/5952/512 +f 4206/5948/512 4209/5953/512 4203/5945/512 +f 4210/5954/512 4211/5955/512 4212/5956/512 +f 4213/5957/512 4214/5958/512 4215/5959/512 +f 4216/5960/521 4217/5961/521 4218/5962/521 +f 4217/5963/522 4213/5957/522 4215/5959/522 +f 4214/5964/523 4217/5963/523 4215/5959/523 +f 4219/5965/512 4220/5966/512 4221/5967/512 +f 4222/5968/512 4221/5969/512 4223/5970/512 +f 4222/5968/512 4224/5971/512 4225/5972/512 +f 4225/5972/512 4226/5973/512 4227/5974/512 +f 4228/5975/512 4226/5976/512 4229/5977/512 +f 4230/5978/512 4229/5979/512 4231/5980/512 +f 4232/5981/512 4231/5982/512 4233/5983/512 +f 4232/5981/512 4234/5984/512 4235/5985/512 +f 4236/5986/512 4234/5987/512 4237/5988/512 +f 4236/5986/512 4238/5989/512 4239/5990/512 +f 4239/5990/512 4240/5991/512 4241/5992/512 +f 4241/5992/512 4242/5993/512 4243/5994/512 +f 4244/5995/512 4245/5996/512 4246/5997/512 +f 4247/5998/512 4242/5999/512 4248/6000/512 +f 4246/5997/512 4220/6001/512 4249/6002/512 +f 4247/5998/512 4250/6003/512 4244/5995/512 +f 4251/6004/512 4252/6005/512 4253/6006/512 +f 4254/6007/512 4255/6008/512 4256/6009/512 +f 4257/6010/524 4258/6011/524 4259/6012/524 +f 4258/6013/525 4254/6007/525 4256/6009/525 +f 4255/6014/526 4258/6013/526 4256/6009/526 +f 4260/6015/512 4261/6016/512 4262/6017/512 +f 4263/6018/512 4262/6019/512 4264/6020/512 +f 4263/6018/512 4265/6021/512 4266/6022/512 +f 4266/6022/512 4267/6023/512 4268/6024/512 +f 4269/6025/512 4267/6026/512 4270/6027/512 +f 4271/6028/512 4270/6029/512 4272/6030/512 +f 4273/6031/512 4272/6032/512 4274/6033/512 +f 4273/6031/512 4275/6034/512 4276/6035/512 +f 4277/6036/512 4275/6037/512 4278/6038/512 +f 4279/6039/512 4278/6040/512 4280/6041/512 +f 4279/6039/512 4281/6042/512 4282/6043/512 +f 4282/6043/512 4283/6044/512 4284/6045/512 +f 4285/6046/512 4286/6047/512 4287/6048/512 +f 4288/6049/512 4283/6050/512 4289/6051/512 +f 4287/6048/512 4261/6052/512 4290/6053/512 +f 4285/6046/512 4289/6054/512 4291/6055/512 +f 4292/6056/512 4293/6057/512 4294/6058/512 +f 4295/6059/512 4296/6060/512 4297/6061/512 +f 4298/6062/527 4299/6063/527 4300/6064/527 +f 4299/6065/528 4295/6059/528 4297/6061/528 +f 4296/6066/529 4299/6065/529 4297/6061/529 +f 4301/6067/530 4302/6068/530 4303/6069/530 +f 4304/6070/531 4305/6071/531 4302/6068/531 +f 4306/6072/532 4304/6073/532 4301/6074/532 +f 4305/6071/533 4303/6075/533 4302/6076/533 +f 4307/6077/520 4308/6078/520 4309/6079/520 +f 4310/6080/512 4311/6081/512 4312/6082/512 +f 4313/6083/534 4314/6084/534 4315/6085/534 +f 4316/6086/535 4317/6087/535 4314/6084/535 +f 4318/6088/536 4316/6089/536 4313/6090/536 +f 4317/6087/537 4315/6091/537 4314/6092/537 +f 4319/6093/520 4320/6094/520 4321/6095/520 +f 4322/6096/512 4323/6097/512 4324/6098/512 +f 4325/6099/538 4326/6100/538 4327/6101/538 +f 4326/6100/539 4328/6102/539 4327/6101/539 +f 4329/6103/540 4326/6104/540 4330/6105/540 +f 4328/6102/541 4325/6106/541 4327/6107/541 +f 4331/6108/520 4332/6109/520 4333/6110/520 +f 4334/6111/512 4335/6112/512 4336/6113/512 +f 4122/5844/512 4337/6114/512 4338/6115/512 +f 4338/6115/512 4339/6116/512 4122/5844/512 +f 4339/6116/512 4123/5845/512 4122/5844/512 +f 4123/5845/512 4340/6117/512 4341/6118/512 +f 4341/6118/512 4342/6119/512 4124/5846/512 +f 4124/5846/512 4343/6120/512 4344/6121/512 +f 4344/6121/512 4345/6122/512 4346/6123/512 +f 4346/6123/512 4347/6124/512 4122/5844/512 +f 4347/6124/512 4348/6125/512 4122/5844/512 +f 4348/6125/512 4349/6126/512 4122/5844/512 +f 4123/5845/512 4341/6118/512 4124/5846/512 +f 4124/5846/512 4344/6121/512 4122/5844/512 +f 4344/6121/512 4346/6123/512 4122/5844/512 +f 4125/5847/512 4155/6127/512 4126/5848/512 +f 4128/5850/512 4125/5847/512 4127/5851/512 +f 4128/5850/512 4129/6128/512 4130/5853/512 +f 4131/5854/512 4130/6129/512 4132/5855/512 +f 4134/5857/512 4133/5856/512 4132/5858/512 +f 4136/5860/512 4134/5857/512 4135/5861/512 +f 4138/5863/512 4136/5860/512 4137/5864/512 +f 4138/5863/512 4139/6130/512 4140/5866/512 +f 4142/5868/512 4141/5867/512 4140/5869/512 +f 4144/5871/512 4142/5868/512 4143/5872/512 +f 4144/5871/512 4145/6131/512 4146/5874/512 +f 4147/5875/512 4146/6132/512 4148/5876/512 +f 4150/5878/512 4156/6133/512 4151/5879/512 +f 4153/5881/512 4149/5877/512 4148/5882/512 +f 4152/5880/512 4151/6134/512 4126/5884/512 +f 4153/5881/512 4154/6135/512 4156/5886/512 +f 4159/5889/512 4350/6136/512 4351/6137/512 +f 4351/6137/512 4352/6138/512 4159/5889/512 +f 4352/6138/512 4353/6139/512 4159/5889/512 +f 4353/6139/512 4354/6140/512 4355/6141/512 +f 4355/6141/512 4356/6142/512 4157/5887/512 +f 4157/5887/512 4357/6143/512 4158/5888/512 +f 4357/6143/512 4358/6144/512 4158/5888/512 +f 4358/6144/512 4359/6145/512 4158/5888/512 +f 4158/5888/512 4360/6146/512 4361/6147/512 +f 4361/6147/512 4362/6148/512 4159/5889/512 +f 4353/6139/512 4355/6141/512 4159/5889/512 +f 4355/6141/512 4157/5887/512 4159/5889/512 +f 4158/5888/512 4361/6147/512 4159/5889/512 +f 4160/5890/513 4163/5893/513 4161/5891/513 +f 4163/5893/514 4165/5895/514 4164/5894/514 +f 4170/5906/518 4169/5903/518 4166/5900/518 +f 4167/5907/519 4171/6149/519 4170/5906/519 +f 4174/5910/520 4363/6150/520 4172/5908/520 +f 4172/5908/520 4364/6151/520 4173/5909/520 +f 4173/5909/520 4365/6152/520 4174/5910/520 +f 4177/5913/512 4366/6153/512 4367/6154/512 +f 4367/6154/512 4368/6155/512 4177/5913/512 +f 4368/6155/512 4175/5911/512 4177/5913/512 +f 4178/5914/512 4208/6156/512 4179/5915/512 +f 4181/5917/512 4178/5914/512 4180/5918/512 +f 4181/5917/512 4182/6157/512 4183/5920/512 +f 4184/5921/512 4183/6158/512 4185/5922/512 +f 4187/5924/512 4186/5923/512 4185/5925/512 +f 4189/5927/512 4187/5924/512 4188/5928/512 +f 4191/5930/512 4189/5927/512 4190/5931/512 +f 4191/5930/512 4192/6159/512 4193/5933/512 +f 4195/5935/512 4194/5934/512 4193/5936/512 +f 4197/5938/512 4195/5935/512 4196/5939/512 +f 4197/5938/512 4198/6160/512 4199/5941/512 +f 4200/5942/512 4199/6161/512 4201/5943/512 +f 4203/5945/512 4209/6162/512 4204/5946/512 +f 4206/5948/512 4202/5944/512 4201/5949/512 +f 4205/5947/512 4204/6163/512 4179/5951/512 +f 4206/5948/512 4207/6164/512 4209/5953/512 +f 4212/5956/512 4369/6165/512 4370/6166/512 +f 4370/6166/512 4371/6167/512 4372/6168/512 +f 4372/6168/512 4373/6169/512 4374/6170/512 +f 4374/6170/512 4375/6171/512 4376/6172/512 +f 4376/6172/512 4377/6173/512 4378/6174/512 +f 4378/6174/512 4379/6175/512 4210/5954/512 +f 4210/5954/512 4380/6176/512 4211/5955/512 +f 4211/5955/512 4381/6177/512 4212/5956/512 +f 4212/5956/512 4370/6166/512 4376/6172/512 +f 4370/6166/512 4372/6168/512 4376/6172/512 +f 4372/6168/512 4374/6170/512 4376/6172/512 +f 4376/6172/512 4378/6174/512 4212/5956/512 +f 4378/6174/512 4210/5954/512 4212/5956/512 +f 4217/5963/522 4216/5960/522 4213/5957/522 +f 4214/5964/523 4218/6178/523 4217/5963/523 +f 4219/5965/512 4249/6179/512 4220/5966/512 +f 4222/5968/512 4219/5965/512 4221/5969/512 +f 4222/5968/512 4223/6180/512 4224/5971/512 +f 4225/5972/512 4224/6181/512 4226/5973/512 +f 4228/5975/512 4227/5974/512 4226/5976/512 +f 4230/5978/512 4228/5975/512 4229/5979/512 +f 4232/5981/512 4230/5978/512 4231/5982/512 +f 4232/5981/512 4233/6182/512 4234/5984/512 +f 4236/5986/512 4235/5985/512 4234/5987/512 +f 4236/5986/512 4237/6183/512 4238/5989/512 +f 4239/5990/512 4238/6184/512 4240/5991/512 +f 4241/5992/512 4240/6185/512 4242/5993/512 +f 4244/5995/512 4250/6186/512 4245/5996/512 +f 4247/5998/512 4243/5994/512 4242/5999/512 +f 4246/5997/512 4245/6187/512 4220/6001/512 +f 4247/5998/512 4248/6188/512 4250/6003/512 +f 4253/6006/512 4382/6189/512 4383/6190/512 +f 4383/6190/512 4384/6191/512 4385/6192/512 +f 4385/6192/512 4386/6193/512 4387/6194/512 +f 4387/6194/512 4388/6195/512 4251/6004/512 +f 4251/6004/512 4389/6196/512 4252/6005/512 +f 4389/6196/512 4390/6197/512 4252/6005/512 +f 4390/6197/512 4391/6198/512 4252/6005/512 +f 4252/6005/512 4392/6199/512 4393/6200/512 +f 4393/6200/512 4394/6201/512 4253/6006/512 +f 4253/6006/512 4383/6190/512 4385/6192/512 +f 4385/6192/512 4387/6194/512 4253/6006/512 +f 4387/6194/512 4251/6004/512 4253/6006/512 +f 4252/6005/512 4393/6200/512 4253/6006/512 +f 4258/6013/525 4257/6010/525 4254/6007/525 +f 4255/6014/526 4259/6202/526 4258/6013/526 +f 4260/6015/512 4290/6203/512 4261/6016/512 +f 4263/6018/512 4260/6015/512 4262/6019/512 +f 4263/6018/512 4264/6204/512 4265/6021/512 +f 4266/6022/512 4265/6205/512 4267/6023/512 +f 4269/6025/512 4268/6024/512 4267/6026/512 +f 4271/6028/512 4269/6025/512 4270/6029/512 +f 4273/6031/512 4271/6028/512 4272/6032/512 +f 4273/6031/512 4274/6206/512 4275/6034/512 +f 4277/6036/512 4276/6035/512 4275/6037/512 +f 4279/6039/512 4277/6036/512 4278/6040/512 +f 4279/6039/512 4280/6207/512 4281/6042/512 +f 4282/6043/512 4281/6208/512 4283/6044/512 +f 4285/6046/512 4291/6209/512 4286/6047/512 +f 4288/6049/512 4284/6045/512 4283/6050/512 +f 4287/6048/512 4286/6210/512 4261/6052/512 +f 4285/6046/512 4288/6049/512 4289/6054/512 +f 4294/6058/512 4395/6211/512 4396/6212/512 +f 4396/6212/512 4397/6213/512 4294/6058/512 +f 4397/6213/512 4398/6214/512 4294/6058/512 +f 4398/6214/512 4399/6215/512 4400/6216/512 +f 4400/6216/512 4401/6217/512 4292/6056/512 +f 4292/6056/512 4402/6218/512 4293/6057/512 +f 4402/6218/512 4403/6219/512 4293/6057/512 +f 4403/6219/512 4404/6220/512 4293/6057/512 +f 4293/6057/512 4405/6221/512 4406/6222/512 +f 4406/6222/512 4407/6223/512 4294/6058/512 +f 4398/6214/512 4400/6216/512 4294/6058/512 +f 4400/6216/512 4292/6056/512 4294/6058/512 +f 4293/6057/512 4406/6222/512 4294/6058/512 +f 4299/6065/528 4298/6062/528 4295/6059/528 +f 4296/6066/529 4300/6224/529 4299/6065/529 +f 4301/6067/530 4304/6070/530 4302/6068/530 +f 4304/6070/531 4306/6072/531 4305/6071/531 +f 4308/6078/520 4408/6225/520 4309/6079/520 +f 4309/6079/520 4409/6226/520 4410/6227/520 +f 4410/6227/520 4307/6077/520 4309/6079/520 +f 4312/6082/512 4411/6228/512 4412/6229/512 +f 4412/6229/512 4413/6230/512 4312/6082/512 +f 4413/6230/512 4310/6080/512 4312/6082/512 +f 4313/6083/534 4316/6086/534 4314/6084/534 +f 4316/6086/535 4318/6088/535 4317/6087/535 +f 4321/6095/520 4414/6231/520 4319/6093/520 +f 4319/6093/520 4415/6232/520 4320/6094/520 +f 4320/6094/520 4416/6233/520 4321/6095/520 +f 4324/6098/512 4417/6234/512 4418/6235/512 +f 4418/6235/512 4419/6236/512 4324/6098/512 +f 4419/6236/512 4322/6096/512 4324/6098/512 +f 4325/6099/538 4330/6237/538 4326/6100/538 +f 4326/6100/539 4329/6103/539 4328/6102/539 +f 4333/6110/520 4420/6238/520 4331/6108/520 +f 4331/6108/520 4421/6239/520 4332/6109/520 +f 4332/6109/520 4422/6240/520 4333/6110/520 +f 4336/6113/512 4423/6241/512 4424/6242/512 +f 4424/6242/512 4425/6243/512 4336/6113/512 +f 4425/6243/512 4334/6111/512 4336/6113/512 s 1 -f 3964/3039/540 3965/3040/541 3966/3041/518 -f 3967/3042/542 3964/3039/540 3966/3043/518 -f 3968/3044/543 3967/3042/542 3966/3045/518 -f 3969/3046/544 3968/3044/543 3966/3047/518 -f 3970/3048/545 3969/3046/544 3966/3049/518 -f 3971/3050/546 3970/3048/545 3966/3051/518 -f 3972/3052/547 3971/3050/546 3966/3053/518 -f 3973/3054/548 3972/3052/547 3966/3055/518 -f 3973/3054/548 3966/3056/518 3974/3057/549 -f 3975/3058/550 3974/3057/549 3966/3059/518 -f 3976/3060/551 3975/3058/550 3966/3061/518 -f 3977/3062/552 3976/3060/551 3966/3063/518 -f 3978/3064/553 3977/3065/552 3966/3066/518 -f 3979/3067/554 3978/3064/553 3966/3068/518 -f 3980/3069/555 3979/3067/554 3966/3070/518 -f 3965/3040/541 3980/3069/555 3966/3071/518 -f 3978/3064/556 3981/3072/557 3977/3065/557 -f 3970/3048/558 3982/3073/559 3969/3046/559 -f 3977/3062/557 3983/3074/560 3976/3060/560 -f 3969/3046/559 3984/3075/561 3968/3044/561 -f 3976/3060/560 3985/3076/562 3975/3058/562 -f 3968/3044/561 3986/3077/563 3967/3042/563 -f 3975/3058/562 3987/3078/564 3974/3057/564 -f 3967/3042/563 3988/3079/565 3964/3039/565 -f 3974/3057/564 3989/3080/566 3973/3054/566 -f 3965/3040/567 3990/3081/568 3980/3069/568 -f 3964/3039/565 3991/3082/567 3965/3040/567 -f 3973/3054/566 3992/3083/569 3972/3052/569 -f 3980/3069/568 3993/3084/570 3979/3067/570 -f 3972/3052/569 3994/3085/571 3971/3050/571 -f 3979/3067/570 3995/3086/556 3978/3064/556 -f 3971/3050/571 3996/3087/558 3970/3048/558 -f 3989/3080/572 3997/3088/573 3992/3083/573 -f 3990/3081/574 3998/3089/575 3993/3084/575 -f 3992/3083/573 3999/3090/576 3994/3085/576 -f 3993/3084/575 4000/3091/577 3995/3086/577 -f 3994/3085/576 4001/3092/578 3996/3087/578 -f 3995/3086/577 4002/3093/579 3981/3072/579 -f 3996/3087/578 4003/3094/580 3982/3073/580 -f 3981/3095/579 4004/3096/581 3983/3074/581 -f 3982/3073/580 4005/3097/582 3984/3075/582 -f 3983/3074/581 4006/3098/583 3985/3076/583 -f 3984/3075/582 4007/3099/584 3986/3077/584 -f 3985/3076/583 4008/3100/585 3987/3078/585 -f 3986/3077/584 4009/3101/586 3988/3079/586 -f 3987/3078/585 4010/3102/572 3989/3080/572 -f 3991/3082/587 4011/3103/574 3990/3081/574 -f 3988/3079/586 4012/3104/587 3991/3082/587 -f 4005/3105/561 3661/3106/563 4007/3107/563 -f 4006/3108/562 3883/3109/564 4008/3110/564 -f 4007/3107/563 3877/3111/565 4009/3112/565 -f 4008/3110/564 3882/3113/566 4010/3114/566 -f 4012/3115/567 3875/3116/568 4011/3117/568 -f 4009/3112/565 3876/3118/567 4012/3115/567 -f 4010/3114/566 3881/3119/569 3997/3120/569 -f 4011/3117/568 3660/3121/570 3998/3122/570 -f 3997/3120/569 3662/3123/571 3999/3124/571 -f 3998/3122/570 3887/3125/556 4000/3126/556 -f 3999/3124/571 3880/3127/558 4001/3128/558 -f 4000/3126/556 3886/3129/557 4002/3130/557 -f 4001/3128/558 3879/3131/559 4003/3132/559 -f 4002/3133/557 3885/3134/560 4004/3096/560 -f 4003/3132/559 3878/3135/561 4005/3105/561 -f 4004/3096/560 3884/3136/562 4006/3108/562 -f 3693/2680/562 4013/3137/560 3690/2675/560 -f 3679/2662/563 4014/3138/561 3676/2658/561 -f 3663/2642/564 4015/3139/562 3693/2922/562 -f 3680/2663/565 4016/3140/563 3679/2662/563 -f 3666/2645/566 4017/3141/564 3663/2642/564 -f 3682/2666/567 4018/3142/565 3680/2663/565 -f 3669/2649/569 4019/3143/566 3666/2645/566 -f 3685/2670/568 4020/3144/567 3682/2666/567 -f 3671/2651/571 4021/3145/569 3669/2649/569 -f 3687/2672/570 4022/3146/568 3685/2670/568 -f 3672/2652/558 4023/3147/571 3671/2651/571 -f 3691/2676/556 4024/3148/570 3687/2672/570 -f 3674/2655/559 4025/3149/558 3672/2652/558 -f 3690/2675/560 4026/3150/557 3688/2673/557 -f 3688/2673/557 4027/3151/556 3691/2676/556 -f 3676/2658/561 4028/3152/559 3674/2655/559 -f 4020/3144/588 4029/3153/589 4018/3142/590 -f 4016/3140/591 4018/3142/590 4029/3154/589 -f 4014/3138/592 4016/3140/591 4029/3155/589 -f 4028/3152/593 4014/3138/592 4029/3156/589 -f 4025/3149/594 4028/3152/593 4029/3157/589 -f 4023/3147/595 4025/3149/594 4029/3158/589 -f 4021/3145/596 4023/3147/595 4029/3159/589 -f 4019/3143/597 4021/3145/596 4029/3160/589 -f 4017/3141/598 4019/3143/597 4029/3161/589 -f 4015/3139/599 4017/3141/598 4029/3162/589 -f 4013/3137/600 4015/3163/599 4029/3164/589 -f 4026/3150/601 4013/3137/600 4029/3165/589 -f 4027/3151/602 4026/3150/601 4029/3166/589 -f 4024/3148/603 4027/3151/602 4029/3167/589 -f 4022/3146/604 4024/3148/603 4029/3168/589 -f 4020/3144/588 4022/3146/604 4029/3169/589 -f 3678/2661/605 3895/3170/606 3695/3171/605 -f 3678/2664/605 3894/3172/607 3681/2665/607 -f 3681/2667/607 3893/3173/608 3683/2668/608 -f 3683/2926/608 3892/3174/609 3684/2669/609 -f 3686/2671/610 3892/3174/609 3891/3175/610 -f 3689/2674/611 3889/3176/612 3888/3177/611 -f 3686/2677/610 3890/3178/613 3692/2678/613 -f 3689/2929/611 3697/3179/614 3664/2679/614 -f 3692/2930/613 3889/3176/612 3694/2681/612 -f 3665/2644/615 3697/3180/614 3900/3181/615 -f 3665/2646/615 3899/3182/616 3667/2647/616 -f 3667/2923/616 3898/3183/617 3668/2648/617 -f 3668/2924/617 3696/3184/618 3670/2650/618 -f 3670/2653/618 3897/3185/619 3673/2654/619 -f 3673/2656/619 3896/3186/620 3675/2657/620 -f 3675/2659/620 3895/3170/606 3677/2660/606 -f 3710/3187/557 3905/3188/621 3904/3189/557 -f 3901/3190/621 3906/3191/622 3905/3188/621 -f 3712/3192/622 3713/3193/559 3906/3191/622 -f 3903/3194/559 3714/3195/623 3713/3193/559 -f 3711/3196/623 3715/3197/624 3714/3195/623 -f 3902/3198/624 3904/3189/557 3715/3199/624 -f 3746/2747/563 4030/3200/561 3743/2742/561 -f 3732/2729/562 4031/3201/560 3729/2725/560 -f 3716/2709/565 4032/3202/563 3746/2951/563 -f 3733/2730/564 4033/3203/562 3732/2729/562 -f 3719/2712/567 4034/3204/565 3716/2709/565 -f 3735/2733/566 4035/3205/564 3733/2730/564 -f 3722/2716/568 4036/3206/567 3719/2712/567 -f 3738/2737/569 4037/3207/566 3735/2733/566 -f 3724/2718/570 4038/3208/568 3722/2716/568 -f 3740/2739/571 4039/3209/569 3738/2737/569 -f 3725/2719/556 4040/3210/570 3724/2718/570 -f 3744/2743/558 4041/3211/571 3740/2739/571 -f 3727/2722/557 4042/3212/556 3725/2719/556 -f 3743/2742/561 4043/3213/559 3741/2740/559 -f 3741/2740/559 4044/3214/558 3744/2743/558 -f 3729/2725/560 4045/3215/557 3727/2722/557 -f 4037/3207/625 4046/3216/626 4035/3205/627 -f 4033/3203/628 4035/3205/627 4046/3217/626 -f 4031/3201/629 4033/3203/628 4046/3218/626 -f 4045/3215/630 4031/3201/629 4046/3219/626 -f 4042/3212/631 4045/3215/630 4046/3220/626 -f 4040/3210/632 4042/3212/631 4046/3221/626 -f 4038/3208/633 4040/3210/632 4046/3222/626 -f 4036/3206/634 4038/3208/633 4046/3223/626 -f 4034/3204/635 4036/3206/634 4046/3224/626 -f 4032/3202/636 4034/3204/635 4046/3225/626 -f 4030/3200/637 4032/3226/636 4046/3227/626 -f 4043/3213/638 4030/3200/637 4046/3228/626 -f 4044/3214/639 4043/3213/638 4046/3229/626 -f 4041/3211/640 4044/3214/639 4046/3230/626 -f 4039/3209/641 4041/3211/640 4046/3231/626 -f 4037/3207/625 4039/3209/641 4046/3232/626 -f 3731/2728/614 3915/3233/611 3914/3234/614 -f 3731/2731/614 3913/3235/615 3734/2732/615 -f 3734/2734/615 3912/3236/616 3736/2735/616 -f 3737/2736/617 3912/3236/616 3911/3237/617 -f 3739/2738/618 3911/3237/617 3910/3238/618 -f 3747/2957/620 3907/3239/606 3742/2741/606 -f 3739/2744/618 3909/3240/619 3745/2745/619 -f 3717/2746/605 3907/3239/606 3750/3241/605 -f 3745/2959/619 3908/3242/620 3747/2748/620 -f 3717/2710/605 3919/3243/607 3718/2711/607 -f 3718/2713/607 3749/3244/608 3720/2714/608 -f 3720/2952/608 3918/3245/609 3721/2715/609 -f 3721/2953/609 3748/3246/610 3723/2717/610 -f 3723/2720/610 3917/3247/613 3726/2721/613 -f 3726/2723/613 3916/3248/612 3728/2724/612 -f 3728/2726/612 3915/3233/611 3730/2727/611 -f 3787/2797/571 4047/3249/569 3784/2792/569 -f 3773/2780/570 4048/3250/568 3770/2776/568 -f 3757/2760/558 4049/3251/571 3787/2974/571 -f 3774/2781/556 4050/3252/570 3773/2780/570 -f 3760/2763/559 4051/3253/558 3757/2760/558 -f 3777/2785/557 4052/3254/556 3774/2781/556 -f 3763/2767/561 4053/3255/559 3760/2763/559 -f 3779/2787/560 4054/3256/557 3777/2785/557 -f 3765/2769/563 4055/3257/561 3763/2767/561 -f 3781/2789/562 4056/3258/560 3779/2787/560 -f 3766/2770/565 4057/3259/563 3765/2769/563 -f 3785/2793/564 4058/3260/562 3781/2789/562 -f 3768/2773/567 4059/3261/565 3766/2770/565 -f 3784/2792/569 4060/3262/566 3782/2790/566 -f 3782/2790/566 4061/3263/564 3785/2793/564 -f 3770/2776/568 4062/3264/567 3768/2773/567 -f 4054/3256/642 4063/3265/643 4052/3254/644 -f 4050/3252/645 4052/3254/644 4063/3266/643 -f 4048/3250/646 4050/3252/645 4063/3267/643 -f 4062/3264/647 4048/3250/646 4063/3268/643 -f 4059/3261/648 4062/3264/647 4063/3269/643 -f 4057/3259/649 4059/3261/648 4063/3270/643 -f 4055/3257/650 4057/3259/649 4063/3271/643 -f 4053/3255/651 4055/3257/650 4063/3272/643 -f 4051/3253/652 4053/3255/651 4063/3273/643 -f 4049/3251/653 4051/3253/652 4063/3274/643 -f 4047/3249/654 4049/3275/653 4063/3276/643 -f 4060/3262/655 4047/3249/654 4063/3277/643 -f 4061/3263/656 4060/3262/655 4063/3278/643 -f 4058/3260/657 4061/3263/656 4063/3279/643 -f 4056/3258/658 4058/3260/657 4063/3280/643 -f 4054/3256/642 4056/3258/658 4063/3281/643 -f 3771/2977/609 3789/3282/610 3772/2779/610 -f 3772/2782/610 3926/3283/613 3775/2783/613 -f 3775/2978/613 3925/3284/612 3776/2784/612 -f 3776/2979/612 3924/3285/611 3778/2786/611 -f 3780/2788/614 3924/3285/611 3923/3286/614 -f 3788/2981/616 3920/3287/617 3783/2791/617 -f 3780/2794/614 3922/3288/615 3786/2795/615 -f 3783/2982/617 3791/3289/618 3758/2796/618 -f 3786/2983/615 3921/3290/616 3788/2798/616 -f 3759/2762/619 3791/3291/618 3932/3292/619 -f 3759/2764/619 3931/3293/620 3761/2765/620 -f 3761/2975/620 3930/3294/606 3762/2766/606 -f 3762/2976/606 3790/3295/605 3764/2768/605 -f 3764/2771/605 3929/3296/607 3767/2772/607 -f 3767/2774/607 3928/3297/608 3769/2775/608 -f 3769/2777/608 3927/3298/609 3771/2778/609 -f 3828/2848/570 4064/3299/568 3825/2843/568 -f 3814/2830/571 4065/3300/569 3811/2826/569 -f 3798/2810/556 4066/3301/570 3828/2998/570 -f 3815/2831/558 4067/3302/571 3814/2830/571 -f 3801/2813/557 4068/3303/556 3798/2810/556 -f 3817/2834/559 4069/3304/558 3815/2831/558 -f 3804/2817/560 4070/3305/557 3801/2813/557 -f 3820/2838/561 4071/3306/559 3817/2834/559 -f 3806/2819/562 4072/3307/560 3804/2817/560 -f 3822/2840/563 4073/3308/561 3820/2838/561 -f 3807/2820/564 4074/3309/562 3806/2819/562 -f 3826/2844/565 4075/3310/563 3822/2840/563 -f 3809/2823/566 4076/3311/564 3807/2820/564 -f 3825/2843/568 4077/3312/567 3823/2841/567 -f 3823/2841/567 4078/3313/565 3826/2844/565 -f 3811/2826/569 4079/3314/566 3809/2823/566 -f 4071/3306/659 4080/3315/660 4069/3304/661 -f 4067/3302/662 4069/3304/661 4080/3316/660 -f 4065/3300/663 4067/3302/662 4080/3317/660 -f 4079/3314/664 4065/3300/663 4080/3318/660 -f 4076/3311/665 4079/3314/664 4080/3319/660 -f 4074/3309/666 4076/3311/665 4080/3320/660 -f 4072/3307/667 4074/3309/666 4080/3321/660 -f 4070/3305/668 4072/3307/667 4080/3322/660 -f 4068/3303/669 4070/3305/668 4080/3323/660 -f 4066/3301/670 4068/3303/669 4080/3324/660 -f 4064/3299/671 4066/3325/670 4080/3326/660 -f 4077/3312/672 4064/3299/671 4080/3327/660 -f 4078/3313/673 4077/3312/672 4080/3328/660 -f 4075/3310/674 4078/3313/673 4080/3329/660 -f 4073/3308/675 4075/3310/674 4080/3330/660 -f 4071/3306/659 4073/3308/675 4080/3331/660 -f 3813/2829/618 3940/3332/617 3830/3333/618 -f 3813/2832/618 3939/3334/619 3816/2833/619 -f 3816/2835/619 3938/3335/620 3818/2836/620 -f 3819/2837/606 3938/3335/620 3937/3336/606 -f 3819/3003/606 3936/3337/605 3821/2839/605 -f 3829/3004/608 3933/3338/609 3824/2842/609 -f 3827/2846/607 3936/3337/605 3935/3339/607 -f 3799/2847/610 3933/3338/609 3832/3340/610 -f 3827/2849/607 3934/3341/608 3829/2850/608 -f 3800/2812/613 3832/3342/610 3945/3343/613 -f 3800/2814/613 3944/3344/612 3802/2815/612 -f 3803/2816/611 3944/3344/612 3943/3345/611 -f 3803/3000/611 3831/3346/614 3805/2818/614 -f 3805/2821/614 3942/3347/615 3808/2822/615 -f 3808/2824/615 3941/3348/616 3810/2825/616 -f 3810/2827/616 3940/3332/617 3812/2828/617 -f 3847/3349/559 3950/3350/623 3949/3351/559 -f 3946/3352/623 3951/3353/624 3950/3350/623 -f 3846/3354/624 3848/3355/557 3951/3353/624 -f 3845/3356/557 3849/3357/621 3848/3355/557 -f 3948/3358/621 3850/3359/622 3849/3357/621 -f 3947/3360/622 3949/3351/559 3850/3361/622 -f 3857/3362/566 3956/3363/676 3955/3364/566 -f 3952/3365/676 3957/3366/677 3956/3363/676 -f 3859/3367/677 3860/3368/567 3957/3366/677 -f 3954/3369/567 3861/3370/678 3860/3368/567 -f 3858/3371/678 3862/3372/679 3861/3370/678 -f 3953/3373/679 3955/3364/566 3862/3374/679 -f 3869/3375/567 3962/3376/678 3961/3377/567 -f 3958/3378/678 3963/3379/679 3962/3376/678 -f 3871/3380/679 3872/3381/566 3963/3379/679 -f 3960/3382/566 3873/3383/676 3872/3381/566 -f 3870/3384/676 3874/3385/677 3873/3383/676 -f 3959/3386/677 3961/3377/567 3874/3387/677 -f 3978/3064/556 3995/3086/556 3981/3072/557 -f 3970/3048/558 3996/3087/558 3982/3073/559 -f 3977/3062/557 3981/3095/557 3983/3074/560 -f 3969/3046/559 3982/3073/559 3984/3075/561 -f 3976/3060/560 3983/3074/560 3985/3076/562 -f 3968/3044/561 3984/3075/561 3986/3077/563 -f 3975/3058/562 3985/3076/562 3987/3078/564 -f 3967/3042/563 3986/3077/563 3988/3079/565 -f 3974/3057/564 3987/3078/564 3989/3080/566 -f 3965/3040/567 3991/3082/567 3990/3081/568 -f 3964/3039/565 3988/3079/565 3991/3082/567 -f 3973/3054/566 3989/3080/566 3992/3083/569 -f 3980/3069/568 3990/3081/568 3993/3084/570 -f 3972/3052/569 3992/3083/569 3994/3085/571 -f 3979/3067/570 3993/3084/570 3995/3086/556 -f 3971/3050/571 3994/3085/571 3996/3087/558 -f 3989/3080/572 4010/3388/572 3997/3088/573 -f 3990/3081/574 4011/3389/574 3998/3089/575 -f 3992/3083/573 3997/3390/573 3999/3090/576 -f 3993/3084/575 3998/3391/575 4000/3091/577 -f 3994/3085/576 3999/3392/576 4001/3092/578 -f 3995/3086/577 4000/3393/577 4002/3093/579 -f 3996/3087/578 4001/3394/578 4003/3094/580 -f 3981/3095/579 4002/3133/579 4004/3096/581 -f 3982/3073/580 4003/3395/580 4005/3097/582 -f 3983/3074/581 4004/3396/581 4006/3098/583 -f 3984/3075/582 4005/3397/582 4007/3099/584 -f 3985/3076/583 4006/3398/583 4008/3100/585 -f 3986/3077/584 4007/3399/584 4009/3101/586 -f 3987/3078/585 4008/3400/585 4010/3102/572 -f 3991/3082/587 4012/3401/587 4011/3103/574 -f 3988/3079/586 4009/3402/586 4012/3104/587 -f 4005/3105/561 3878/3135/561 3661/3106/563 -f 4006/3108/562 3884/3136/562 3883/3109/564 -f 4007/3107/563 3661/3106/563 3877/3111/565 -f 4008/3110/564 3883/3109/564 3882/3113/566 -f 4012/3115/567 3876/3118/567 3875/3116/568 -f 4009/3112/565 3877/3111/565 3876/3118/567 -f 4010/3114/566 3882/3113/566 3881/3119/569 -f 4011/3117/568 3875/3116/568 3660/3121/570 -f 3997/3120/569 3881/3119/569 3662/3123/571 -f 3998/3122/570 3660/3121/570 3887/3125/556 -f 3999/3124/571 3662/3123/571 3880/3127/558 -f 4000/3126/556 3887/3125/556 3886/3129/557 -f 4001/3128/558 3880/3127/558 3879/3131/559 -f 4002/3133/557 3886/3403/557 3885/3134/560 -f 4003/3132/559 3879/3131/559 3878/3135/561 -f 4004/3096/560 3885/3134/560 3884/3136/562 -f 3693/2680/562 4015/3163/562 4013/3137/560 -f 3679/2662/563 4016/3140/563 4014/3138/561 -f 3663/2642/564 4017/3141/564 4015/3139/562 -f 3680/2663/565 4018/3142/565 4016/3140/563 -f 3666/2645/566 4019/3143/566 4017/3141/564 -f 3682/2666/567 4020/3144/567 4018/3142/565 -f 3669/2649/569 4021/3145/569 4019/3143/566 -f 3685/2670/568 4022/3146/568 4020/3144/567 -f 3671/2651/571 4023/3147/571 4021/3145/569 -f 3687/2672/570 4024/3148/570 4022/3146/568 -f 3672/2652/558 4025/3149/558 4023/3147/571 -f 3691/2676/556 4027/3151/556 4024/3148/570 -f 3674/2655/559 4028/3152/559 4025/3149/558 -f 3690/2675/560 4013/3137/560 4026/3150/557 -f 3688/2673/557 4026/3150/557 4027/3151/556 -f 3676/2658/561 4014/3138/561 4028/3152/559 -f 3678/2661/605 3677/2925/606 3895/3170/606 -f 3678/2664/605 3695/3171/605 3894/3172/607 -f 3681/2667/607 3894/3172/607 3893/3173/608 -f 3683/2926/608 3893/3173/608 3892/3174/609 -f 3686/2671/610 3684/2927/609 3892/3174/609 -f 3689/2674/611 3694/2928/612 3889/3176/612 -f 3686/2677/610 3891/3175/610 3890/3178/613 -f 3689/2929/611 3888/3177/611 3697/3179/614 -f 3692/2930/613 3890/3178/613 3889/3176/612 -f 3665/2644/615 3664/2643/614 3697/3180/614 -f 3665/2646/615 3900/3181/615 3899/3182/616 -f 3667/2923/616 3899/3182/616 3898/3183/617 -f 3668/2924/617 3898/3183/617 3696/3184/618 -f 3670/2653/618 3696/3184/618 3897/3185/619 -f 3673/2656/619 3897/3185/619 3896/3186/620 -f 3675/2659/620 3896/3186/620 3895/3170/606 -f 3710/3187/557 3901/3190/621 3905/3188/621 -f 3901/3190/621 3712/3192/622 3906/3191/622 -f 3712/3192/622 3903/3194/559 3713/3193/559 -f 3903/3194/559 3711/3196/623 3714/3195/623 -f 3711/3196/623 3902/3404/624 3715/3197/624 -f 3902/3198/624 3710/3187/557 3904/3189/557 -f 3746/2747/563 4032/3226/563 4030/3200/561 -f 3732/2729/562 4033/3203/562 4031/3201/560 -f 3716/2709/565 4034/3204/565 4032/3202/563 -f 3733/2730/564 4035/3205/564 4033/3203/562 -f 3719/2712/567 4036/3206/567 4034/3204/565 -f 3735/2733/566 4037/3207/566 4035/3205/564 -f 3722/2716/568 4038/3208/568 4036/3206/567 -f 3738/2737/569 4039/3209/569 4037/3207/566 -f 3724/2718/570 4040/3210/570 4038/3208/568 -f 3740/2739/571 4041/3211/571 4039/3209/569 -f 3725/2719/556 4042/3212/556 4040/3210/570 -f 3744/2743/558 4044/3214/558 4041/3211/571 -f 3727/2722/557 4045/3215/557 4042/3212/556 -f 3743/2742/561 4030/3200/561 4043/3213/559 -f 3741/2740/559 4043/3213/559 4044/3214/558 -f 3729/2725/560 4031/3201/560 4045/3215/557 -f 3731/2728/614 3730/2954/611 3915/3233/611 -f 3731/2731/614 3914/3234/614 3913/3235/615 -f 3734/2734/615 3913/3235/615 3912/3236/616 -f 3737/2736/617 3736/2955/616 3912/3236/616 -f 3739/2738/618 3737/2956/617 3911/3237/617 -f 3747/2957/620 3908/3242/620 3907/3239/606 -f 3739/2744/618 3910/3238/618 3909/3240/619 -f 3717/2746/605 3742/2958/606 3907/3239/606 -f 3745/2959/619 3909/3240/619 3908/3242/620 -f 3717/2710/605 3750/3405/605 3919/3243/607 -f 3718/2713/607 3919/3243/607 3749/3244/608 -f 3720/2952/608 3749/3244/608 3918/3245/609 -f 3721/2953/609 3918/3245/609 3748/3246/610 -f 3723/2720/610 3748/3246/610 3917/3247/613 -f 3726/2723/613 3917/3247/613 3916/3248/612 -f 3728/2726/612 3916/3248/612 3915/3233/611 -f 3787/2797/571 4049/3275/571 4047/3249/569 -f 3773/2780/570 4050/3252/570 4048/3250/568 -f 3757/2760/558 4051/3253/558 4049/3251/571 -f 3774/2781/556 4052/3254/556 4050/3252/570 -f 3760/2763/559 4053/3255/559 4051/3253/558 -f 3777/2785/557 4054/3256/557 4052/3254/556 -f 3763/2767/561 4055/3257/561 4053/3255/559 -f 3779/2787/560 4056/3258/560 4054/3256/557 -f 3765/2769/563 4057/3259/563 4055/3257/561 -f 3781/2789/562 4058/3260/562 4056/3258/560 -f 3766/2770/565 4059/3261/565 4057/3259/563 -f 3785/2793/564 4061/3263/564 4058/3260/562 -f 3768/2773/567 4062/3264/567 4059/3261/565 -f 3784/2792/569 4047/3249/569 4060/3262/566 -f 3782/2790/566 4060/3262/566 4061/3263/564 -f 3770/2776/568 4048/3250/568 4062/3264/567 -f 3771/2977/609 3927/3298/609 3789/3282/610 -f 3772/2782/610 3789/3282/610 3926/3283/613 -f 3775/2978/613 3926/3283/613 3925/3284/612 -f 3776/2979/612 3925/3284/612 3924/3285/611 -f 3780/2788/614 3778/2980/611 3924/3285/611 -f 3788/2981/616 3921/3290/616 3920/3287/617 -f 3780/2794/614 3923/3286/614 3922/3288/615 -f 3783/2982/617 3920/3287/617 3791/3289/618 -f 3786/2983/615 3922/3288/615 3921/3290/616 -f 3759/2762/619 3758/2761/618 3791/3291/618 -f 3759/2764/619 3932/3292/619 3931/3293/620 -f 3761/2975/620 3931/3293/620 3930/3294/606 -f 3762/2976/606 3930/3294/606 3790/3295/605 -f 3764/2771/605 3790/3295/605 3929/3296/607 -f 3767/2774/607 3929/3296/607 3928/3297/608 -f 3769/2777/608 3928/3297/608 3927/3298/609 -f 3828/2848/570 4066/3325/570 4064/3299/568 -f 3814/2830/571 4067/3302/571 4065/3300/569 -f 3798/2810/556 4068/3303/556 4066/3301/570 -f 3815/2831/558 4069/3304/558 4067/3302/571 -f 3801/2813/557 4070/3305/557 4068/3303/556 -f 3817/2834/559 4071/3306/559 4069/3304/558 -f 3804/2817/560 4072/3307/560 4070/3305/557 -f 3820/2838/561 4073/3308/561 4071/3306/559 -f 3806/2819/562 4074/3309/562 4072/3307/560 -f 3822/2840/563 4075/3310/563 4073/3308/561 -f 3807/2820/564 4076/3311/564 4074/3309/562 -f 3826/2844/565 4078/3313/565 4075/3310/563 -f 3809/2823/566 4079/3314/566 4076/3311/564 -f 3825/2843/568 4064/3299/568 4077/3312/567 -f 3823/2841/567 4077/3312/567 4078/3313/565 -f 3811/2826/569 4065/3300/569 4079/3314/566 -f 3813/2829/618 3812/3001/617 3940/3332/617 -f 3813/2832/618 3830/3333/618 3939/3334/619 -f 3816/2835/619 3939/3334/619 3938/3335/620 -f 3819/2837/606 3818/3002/620 3938/3335/620 -f 3819/3003/606 3937/3336/606 3936/3337/605 -f 3829/3004/608 3934/3341/608 3933/3338/609 -f 3827/2846/607 3821/2845/605 3936/3337/605 -f 3799/2847/610 3824/3005/609 3933/3338/609 -f 3827/2849/607 3935/3339/607 3934/3341/608 -f 3800/2812/613 3799/2811/610 3832/3342/610 -f 3800/2814/613 3945/3343/613 3944/3344/612 -f 3803/2816/611 3802/2999/612 3944/3344/612 -f 3803/3000/611 3943/3345/611 3831/3346/614 -f 3805/2821/614 3831/3346/614 3942/3347/615 -f 3808/2824/615 3942/3347/615 3941/3348/616 -f 3810/2827/616 3941/3348/616 3940/3332/617 -f 3847/3349/559 3946/3352/623 3950/3350/623 -f 3946/3352/623 3846/3354/624 3951/3353/624 -f 3846/3354/624 3845/3356/557 3848/3355/557 -f 3845/3356/557 3948/3358/621 3849/3357/621 -f 3948/3358/621 3947/3406/622 3850/3359/622 -f 3947/3360/622 3847/3349/559 3949/3351/559 -f 3857/3362/566 3952/3365/676 3956/3363/676 -f 3952/3365/676 3859/3367/677 3957/3366/677 -f 3859/3367/677 3954/3369/567 3860/3368/567 -f 3954/3369/567 3858/3371/678 3861/3370/678 -f 3858/3371/678 3953/3407/679 3862/3372/679 -f 3953/3373/679 3857/3362/566 3955/3364/566 -f 3869/3375/567 3958/3378/678 3962/3376/678 -f 3958/3378/678 3871/3380/679 3963/3379/679 -f 3871/3380/679 3960/3382/566 3872/3381/566 -f 3960/3382/566 3870/3384/676 3873/3383/676 -f 3870/3384/676 3959/3408/677 3874/3385/677 -f 3959/3386/677 3869/3375/567 3961/3377/567 +f 4426/6244/542 4427/6245/543 4428/6246/520 +f 4429/6247/544 4426/6244/542 4428/6248/520 +f 4430/6249/545 4429/6247/544 4428/6250/520 +f 4431/6251/546 4430/6249/545 4428/6252/520 +f 4432/6253/547 4431/6251/546 4428/6254/520 +f 4433/6255/548 4432/6253/547 4428/6256/520 +f 4434/6257/549 4433/6255/548 4428/6258/520 +f 4435/6259/550 4434/6257/549 4428/6260/520 +f 4435/6259/550 4428/6261/520 4436/6262/551 +f 4437/6263/552 4436/6262/551 4428/6264/520 +f 4438/6265/553 4437/6263/552 4428/6266/520 +f 4439/6267/554 4438/6265/553 4428/6268/520 +f 4440/6269/555 4439/6270/554 4428/6271/520 +f 4441/6272/556 4440/6269/555 4428/6273/520 +f 4442/6274/557 4441/6272/556 4428/6275/520 +f 4427/6245/543 4442/6274/557 4428/6276/520 +f 4440/6269/558 4443/6277/559 4439/6270/559 +f 4432/6253/560 4444/6278/561 4431/6251/561 +f 4439/6267/559 4445/6279/562 4438/6265/562 +f 4431/6251/561 4446/6280/563 4430/6249/563 +f 4438/6265/562 4447/6281/564 4437/6263/564 +f 4430/6249/563 4448/6282/565 4429/6247/565 +f 4437/6263/564 4449/6283/566 4436/6262/566 +f 4429/6247/565 4450/6284/567 4426/6244/567 +f 4436/6262/566 4451/6285/568 4435/6259/568 +f 4427/6245/569 4452/6286/570 4442/6274/570 +f 4426/6244/567 4453/6287/569 4427/6245/569 +f 4435/6259/568 4454/6288/571 4434/6257/571 +f 4442/6274/570 4455/6289/572 4441/6272/572 +f 4434/6257/571 4456/6290/573 4433/6255/573 +f 4441/6272/572 4457/6291/558 4440/6269/558 +f 4433/6255/573 4458/6292/560 4432/6253/560 +f 4451/6285/574 4459/6293/575 4454/6288/575 +f 4452/6286/576 4460/6294/577 4455/6289/577 +f 4454/6288/575 4461/6295/578 4456/6290/578 +f 4455/6289/577 4462/6296/579 4457/6291/579 +f 4456/6290/578 4463/6297/580 4458/6292/580 +f 4457/6291/579 4464/6298/581 4443/6277/581 +f 4458/6292/580 4465/6299/582 4444/6278/582 +f 4443/6300/581 4466/6301/583 4445/6279/583 +f 4444/6278/582 4467/6302/584 4446/6280/584 +f 4445/6279/583 4468/6303/585 4447/6281/585 +f 4446/6280/584 4469/6304/586 4448/6282/586 +f 4447/6281/585 4470/6305/587 4449/6283/587 +f 4448/6282/586 4471/6306/588 4450/6284/588 +f 4449/6283/587 4472/6307/574 4451/6285/574 +f 4453/6287/589 4473/6308/576 4452/6286/576 +f 4450/6284/588 4474/6309/589 4453/6287/589 +f 4467/6310/563 4123/6311/565 4469/6312/565 +f 4468/6313/564 4345/6314/566 4470/6315/566 +f 4469/6312/565 4339/6316/567 4471/6317/567 +f 4470/6315/566 4344/6318/568 4472/6319/568 +f 4474/6320/569 4337/6321/570 4473/6322/570 +f 4471/6317/567 4338/6323/569 4474/6320/569 +f 4472/6319/568 4343/6324/571 4459/6325/571 +f 4473/6322/570 4122/6326/572 4460/6327/572 +f 4459/6325/571 4124/6328/573 4461/6329/573 +f 4460/6327/572 4349/6330/558 4462/6331/558 +f 4461/6329/573 4342/6332/560 4463/6333/560 +f 4462/6331/558 4348/6334/559 4464/6335/559 +f 4463/6333/560 4341/6336/561 4465/6337/561 +f 4464/6338/559 4347/6339/562 4466/6301/562 +f 4465/6337/561 4340/6340/563 4467/6310/563 +f 4466/6301/562 4346/6341/564 4468/6313/564 +f 4155/5885/564 4475/6342/562 4152/5880/562 +f 4141/5867/565 4476/6343/563 4138/5863/563 +f 4125/5847/566 4477/6344/564 4155/6127/564 +f 4142/5868/567 4478/6345/565 4141/5867/565 +f 4128/5850/568 4479/6346/566 4125/5847/566 +f 4144/5871/569 4480/6347/567 4142/5868/567 +f 4131/5854/571 4481/6348/568 4128/5850/568 +f 4147/5875/570 4482/6349/569 4144/5871/569 +f 4133/5856/573 4483/6350/571 4131/5854/571 +f 4149/5877/572 4484/6351/570 4147/5875/570 +f 4134/5857/560 4485/6352/573 4133/5856/573 +f 4153/5881/558 4486/6353/572 4149/5877/572 +f 4136/5860/561 4487/6354/560 4134/5857/560 +f 4152/5880/562 4488/6355/559 4150/5878/559 +f 4150/5878/559 4489/6356/558 4153/5881/558 +f 4138/5863/563 4490/6357/561 4136/5860/561 +f 4482/6349/590 4491/6358/591 4480/6347/592 +f 4478/6345/593 4480/6347/592 4491/6359/591 +f 4476/6343/594 4478/6345/593 4491/6360/591 +f 4490/6357/595 4476/6343/594 4491/6361/591 +f 4487/6354/596 4490/6357/595 4491/6362/591 +f 4485/6352/597 4487/6354/596 4491/6363/591 +f 4483/6350/598 4485/6352/597 4491/6364/591 +f 4481/6348/599 4483/6350/598 4491/6365/591 +f 4479/6346/600 4481/6348/599 4491/6366/591 +f 4477/6344/601 4479/6346/600 4491/6367/591 +f 4475/6342/602 4477/6368/601 4491/6369/591 +f 4488/6355/603 4475/6342/602 4491/6370/591 +f 4489/6356/604 4488/6355/603 4491/6371/591 +f 4486/6353/605 4489/6356/604 4491/6372/591 +f 4484/6351/606 4486/6353/605 4491/6373/591 +f 4482/6349/590 4484/6351/606 4491/6374/591 +f 4140/5866/607 4357/6375/608 4157/6376/607 +f 4140/5869/607 4356/6377/609 4143/5870/609 +f 4143/5872/609 4355/6378/610 4145/5873/610 +f 4145/6131/610 4354/6379/611 4146/5874/611 +f 4148/5876/612 4354/6379/611 4353/6380/612 +f 4151/5879/613 4351/6381/614 4350/6382/613 +f 4148/5882/612 4352/6383/615 4154/5883/615 +f 4151/6134/613 4159/6384/616 4126/5884/616 +f 4154/6135/615 4351/6381/614 4156/5886/614 +f 4127/5849/617 4159/6385/616 4362/6386/617 +f 4127/5851/617 4361/6387/618 4129/5852/618 +f 4129/6128/618 4360/6388/619 4130/5853/619 +f 4130/6129/619 4158/6389/620 4132/5855/620 +f 4132/5858/620 4359/6390/621 4135/5859/621 +f 4135/5861/621 4358/6391/622 4137/5862/622 +f 4137/5864/622 4357/6375/608 4139/5865/608 +f 4172/6392/559 4367/6393/623 4366/6394/559 +f 4363/6395/623 4368/6396/624 4367/6393/623 +f 4174/6397/624 4175/6398/561 4368/6396/624 +f 4365/6399/561 4176/6400/625 4175/6398/561 +f 4173/6401/625 4177/6402/626 4176/6400/625 +f 4364/6403/626 4366/6394/559 4177/6404/626 +f 4208/5952/565 4492/6405/563 4205/5947/563 +f 4194/5934/564 4493/6406/562 4191/5930/562 +f 4178/5914/567 4494/6407/565 4208/6156/565 +f 4195/5935/566 4495/6408/564 4194/5934/564 +f 4181/5917/569 4496/6409/567 4178/5914/567 +f 4197/5938/568 4497/6410/566 4195/5935/566 +f 4184/5921/570 4498/6411/569 4181/5917/569 +f 4200/5942/571 4499/6412/568 4197/5938/568 +f 4186/5923/572 4500/6413/570 4184/5921/570 +f 4202/5944/573 4501/6414/571 4200/5942/571 +f 4187/5924/558 4502/6415/572 4186/5923/572 +f 4206/5948/560 4503/6416/573 4202/5944/573 +f 4189/5927/559 4504/6417/558 4187/5924/558 +f 4205/5947/563 4505/6418/561 4203/5945/561 +f 4203/5945/561 4506/6419/560 4206/5948/560 +f 4191/5930/562 4507/6420/559 4189/5927/559 +f 4499/6412/627 4508/6421/628 4497/6410/629 +f 4495/6408/630 4497/6410/629 4508/6422/628 +f 4493/6406/631 4495/6408/630 4508/6423/628 +f 4507/6420/632 4493/6406/631 4508/6424/628 +f 4504/6417/633 4507/6420/632 4508/6425/628 +f 4502/6415/634 4504/6417/633 4508/6426/628 +f 4500/6413/635 4502/6415/634 4508/6427/628 +f 4498/6411/636 4500/6413/635 4508/6428/628 +f 4496/6409/637 4498/6411/636 4508/6429/628 +f 4494/6407/638 4496/6409/637 4508/6430/628 +f 4492/6405/639 4494/6431/638 4508/6432/628 +f 4505/6418/640 4492/6405/639 4508/6433/628 +f 4506/6419/641 4505/6418/640 4508/6434/628 +f 4503/6416/642 4506/6419/641 4508/6435/628 +f 4501/6414/643 4503/6416/642 4508/6436/628 +f 4499/6412/627 4501/6414/643 4508/6437/628 +f 4193/5933/616 4377/6438/613 4376/6439/616 +f 4193/5936/616 4375/6440/617 4196/5937/617 +f 4196/5939/617 4374/6441/618 4198/5940/618 +f 4199/5941/619 4374/6441/618 4373/6442/619 +f 4201/5943/620 4373/6442/619 4372/6443/620 +f 4209/6162/622 4369/6444/608 4204/5946/608 +f 4201/5949/620 4371/6445/621 4207/5950/621 +f 4179/5951/607 4369/6444/608 4212/6446/607 +f 4207/6164/621 4370/6447/622 4209/5953/622 +f 4179/5915/607 4381/6448/609 4180/5916/609 +f 4180/5918/609 4211/6449/610 4182/5919/610 +f 4182/6157/610 4380/6450/611 4183/5920/611 +f 4183/6158/611 4210/6451/612 4185/5922/612 +f 4185/5925/612 4379/6452/615 4188/5926/615 +f 4188/5928/615 4378/6453/614 4190/5929/614 +f 4190/5931/614 4377/6438/613 4192/5932/613 +f 4249/6002/573 4509/6454/571 4246/5997/571 +f 4235/5985/572 4510/6455/570 4232/5981/570 +f 4219/5965/560 4511/6456/573 4249/6179/573 +f 4236/5986/558 4512/6457/572 4235/5985/572 +f 4222/5968/561 4513/6458/560 4219/5965/560 +f 4239/5990/559 4514/6459/558 4236/5986/558 +f 4225/5972/563 4515/6460/561 4222/5968/561 +f 4241/5992/562 4516/6461/559 4239/5990/559 +f 4227/5974/565 4517/6462/563 4225/5972/563 +f 4243/5994/564 4518/6463/562 4241/5992/562 +f 4228/5975/567 4519/6464/565 4227/5974/565 +f 4247/5998/566 4520/6465/564 4243/5994/564 +f 4230/5978/569 4521/6466/567 4228/5975/567 +f 4246/5997/571 4522/6467/568 4244/5995/568 +f 4244/5995/568 4523/6468/566 4247/5998/566 +f 4232/5981/570 4524/6469/569 4230/5978/569 +f 4516/6461/644 4525/6470/645 4514/6459/646 +f 4512/6457/647 4514/6459/646 4525/6471/645 +f 4510/6455/648 4512/6457/647 4525/6472/645 +f 4524/6469/649 4510/6455/648 4525/6473/645 +f 4521/6466/650 4524/6469/649 4525/6474/645 +f 4519/6464/651 4521/6466/650 4525/6475/645 +f 4517/6462/652 4519/6464/651 4525/6476/645 +f 4515/6460/653 4517/6462/652 4525/6477/645 +f 4513/6458/654 4515/6460/653 4525/6478/645 +f 4511/6456/655 4513/6458/654 4525/6479/645 +f 4509/6454/656 4511/6480/655 4525/6481/645 +f 4522/6467/657 4509/6454/656 4525/6482/645 +f 4523/6468/658 4522/6467/657 4525/6483/645 +f 4520/6465/659 4523/6468/658 4525/6484/645 +f 4518/6463/660 4520/6465/659 4525/6485/645 +f 4516/6461/644 4518/6463/660 4525/6486/645 +f 4233/6182/611 4251/6487/612 4234/5984/612 +f 4234/5987/612 4388/6488/615 4237/5988/615 +f 4237/6183/615 4387/6489/614 4238/5989/614 +f 4238/6184/614 4386/6490/613 4240/5991/613 +f 4242/5993/616 4386/6490/613 4385/6491/616 +f 4250/6186/618 4382/6492/619 4245/5996/619 +f 4242/5999/616 4384/6493/617 4248/6000/617 +f 4245/6187/619 4253/6494/620 4220/6001/620 +f 4248/6188/617 4383/6495/618 4250/6003/618 +f 4221/5967/621 4253/6496/620 4394/6497/621 +f 4221/5969/621 4393/6498/622 4223/5970/622 +f 4223/6180/622 4392/6499/608 4224/5971/608 +f 4224/6181/608 4252/6500/607 4226/5973/607 +f 4226/5976/607 4391/6501/609 4229/5977/609 +f 4229/5979/609 4390/6502/610 4231/5980/610 +f 4231/5982/610 4389/6503/611 4233/5983/611 +f 4290/6053/572 4526/6504/570 4287/6048/570 +f 4276/6035/573 4527/6505/571 4273/6031/571 +f 4260/6015/558 4528/6506/572 4290/6203/572 +f 4277/6036/560 4529/6507/573 4276/6035/573 +f 4263/6018/559 4530/6508/558 4260/6015/558 +f 4279/6039/561 4531/6509/560 4277/6036/560 +f 4266/6022/562 4532/6510/559 4263/6018/559 +f 4282/6043/563 4533/6511/561 4279/6039/561 +f 4268/6024/564 4534/6512/562 4266/6022/562 +f 4284/6045/565 4535/6513/563 4282/6043/563 +f 4269/6025/566 4536/6514/564 4268/6024/564 +f 4288/6049/567 4537/6515/565 4284/6045/565 +f 4271/6028/568 4538/6516/566 4269/6025/566 +f 4287/6048/570 4539/6517/569 4285/6046/569 +f 4285/6046/569 4540/6518/567 4288/6049/567 +f 4273/6031/571 4541/6519/568 4271/6028/568 +f 4533/6511/661 4542/6520/662 4531/6509/663 +f 4529/6507/664 4531/6509/663 4542/6521/662 +f 4527/6505/665 4529/6507/664 4542/6522/662 +f 4541/6519/666 4527/6505/665 4542/6523/662 +f 4538/6516/667 4541/6519/666 4542/6524/662 +f 4536/6514/668 4538/6516/667 4542/6525/662 +f 4534/6512/669 4536/6514/668 4542/6526/662 +f 4532/6510/670 4534/6512/669 4542/6527/662 +f 4530/6508/671 4532/6510/670 4542/6528/662 +f 4528/6506/672 4530/6508/671 4542/6529/662 +f 4526/6504/673 4528/6530/672 4542/6531/662 +f 4539/6517/674 4526/6504/673 4542/6532/662 +f 4540/6518/675 4539/6517/674 4542/6533/662 +f 4537/6515/676 4540/6518/675 4542/6534/662 +f 4535/6513/677 4537/6515/676 4542/6535/662 +f 4533/6511/661 4535/6513/677 4542/6536/662 +f 4275/6034/620 4402/6537/619 4292/6538/620 +f 4275/6037/620 4401/6539/621 4278/6038/621 +f 4278/6040/621 4400/6540/622 4280/6041/622 +f 4281/6042/608 4400/6540/622 4399/6541/608 +f 4281/6208/608 4398/6542/607 4283/6044/607 +f 4291/6209/610 4395/6543/611 4286/6047/611 +f 4289/6051/609 4398/6542/607 4397/6544/609 +f 4261/6052/612 4395/6543/611 4294/6545/612 +f 4289/6054/609 4396/6546/610 4291/6055/610 +f 4262/6017/615 4294/6547/612 4407/6548/615 +f 4262/6019/615 4406/6549/614 4264/6020/614 +f 4265/6021/613 4406/6549/614 4405/6550/613 +f 4265/6205/613 4293/6551/616 4267/6023/616 +f 4267/6026/616 4404/6552/617 4270/6027/617 +f 4270/6029/617 4403/6553/618 4272/6030/618 +f 4272/6032/618 4402/6537/619 4274/6033/619 +f 4309/6554/561 4412/6555/625 4411/6556/561 +f 4408/6557/625 4413/6558/626 4412/6555/625 +f 4308/6559/626 4310/6560/559 4413/6558/626 +f 4307/6561/559 4311/6562/623 4310/6560/559 +f 4410/6563/623 4312/6564/624 4311/6562/623 +f 4409/6565/624 4411/6556/561 4312/6566/624 +f 4319/6567/568 4418/6568/678 4417/6569/568 +f 4414/6570/678 4419/6571/679 4418/6568/678 +f 4321/6572/679 4322/6573/569 4419/6571/679 +f 4416/6574/569 4323/6575/680 4322/6573/569 +f 4320/6576/680 4324/6577/681 4323/6575/680 +f 4415/6578/681 4417/6569/568 4324/6579/681 +f 4331/6580/569 4424/6581/680 4423/6582/569 +f 4420/6583/680 4425/6584/681 4424/6581/680 +f 4333/6585/681 4334/6586/568 4425/6584/681 +f 4422/6587/568 4335/6588/678 4334/6586/568 +f 4332/6589/678 4336/6590/679 4335/6588/678 +f 4421/6591/679 4423/6582/569 4336/6592/679 +f 4440/6269/558 4457/6291/558 4443/6277/559 +f 4432/6253/560 4458/6292/560 4444/6278/561 +f 4439/6267/559 4443/6300/559 4445/6279/562 +f 4431/6251/561 4444/6278/561 4446/6280/563 +f 4438/6265/562 4445/6279/562 4447/6281/564 +f 4430/6249/563 4446/6280/563 4448/6282/565 +f 4437/6263/564 4447/6281/564 4449/6283/566 +f 4429/6247/565 4448/6282/565 4450/6284/567 +f 4436/6262/566 4449/6283/566 4451/6285/568 +f 4427/6245/569 4453/6287/569 4452/6286/570 +f 4426/6244/567 4450/6284/567 4453/6287/569 +f 4435/6259/568 4451/6285/568 4454/6288/571 +f 4442/6274/570 4452/6286/570 4455/6289/572 +f 4434/6257/571 4454/6288/571 4456/6290/573 +f 4441/6272/572 4455/6289/572 4457/6291/558 +f 4433/6255/573 4456/6290/573 4458/6292/560 +f 4451/6285/574 4472/6593/574 4459/6293/575 +f 4452/6286/576 4473/6594/576 4460/6294/577 +f 4454/6288/575 4459/6595/575 4461/6295/578 +f 4455/6289/577 4460/6596/577 4462/6296/579 +f 4456/6290/578 4461/6597/578 4463/6297/580 +f 4457/6291/579 4462/6598/579 4464/6298/581 +f 4458/6292/580 4463/6599/580 4465/6299/582 +f 4443/6300/581 4464/6338/581 4466/6301/583 +f 4444/6278/582 4465/6600/582 4467/6302/584 +f 4445/6279/583 4466/6601/583 4468/6303/585 +f 4446/6280/584 4467/6602/584 4469/6304/586 +f 4447/6281/585 4468/6603/585 4470/6305/587 +f 4448/6282/586 4469/6604/586 4471/6306/588 +f 4449/6283/587 4470/6605/587 4472/6307/574 +f 4453/6287/589 4474/6606/589 4473/6308/576 +f 4450/6284/588 4471/6607/588 4474/6309/589 +f 4467/6310/563 4340/6340/563 4123/6311/565 +f 4468/6313/564 4346/6341/564 4345/6314/566 +f 4469/6312/565 4123/6311/565 4339/6316/567 +f 4470/6315/566 4345/6314/566 4344/6318/568 +f 4474/6320/569 4338/6323/569 4337/6321/570 +f 4471/6317/567 4339/6316/567 4338/6323/569 +f 4472/6319/568 4344/6318/568 4343/6324/571 +f 4473/6322/570 4337/6321/570 4122/6326/572 +f 4459/6325/571 4343/6324/571 4124/6328/573 +f 4460/6327/572 4122/6326/572 4349/6330/558 +f 4461/6329/573 4124/6328/573 4342/6332/560 +f 4462/6331/558 4349/6330/558 4348/6334/559 +f 4463/6333/560 4342/6332/560 4341/6336/561 +f 4464/6338/559 4348/6608/559 4347/6339/562 +f 4465/6337/561 4341/6336/561 4340/6340/563 +f 4466/6301/562 4347/6339/562 4346/6341/564 +f 4155/5885/564 4477/6368/564 4475/6342/562 +f 4141/5867/565 4478/6345/565 4476/6343/563 +f 4125/5847/566 4479/6346/566 4477/6344/564 +f 4142/5868/567 4480/6347/567 4478/6345/565 +f 4128/5850/568 4481/6348/568 4479/6346/566 +f 4144/5871/569 4482/6349/569 4480/6347/567 +f 4131/5854/571 4483/6350/571 4481/6348/568 +f 4147/5875/570 4484/6351/570 4482/6349/569 +f 4133/5856/573 4485/6352/573 4483/6350/571 +f 4149/5877/572 4486/6353/572 4484/6351/570 +f 4134/5857/560 4487/6354/560 4485/6352/573 +f 4153/5881/558 4489/6356/558 4486/6353/572 +f 4136/5860/561 4490/6357/561 4487/6354/560 +f 4152/5880/562 4475/6342/562 4488/6355/559 +f 4150/5878/559 4488/6355/559 4489/6356/558 +f 4138/5863/563 4476/6343/563 4490/6357/561 +f 4140/5866/607 4139/6130/608 4357/6375/608 +f 4140/5869/607 4157/6376/607 4356/6377/609 +f 4143/5872/609 4356/6377/609 4355/6378/610 +f 4145/6131/610 4355/6378/610 4354/6379/611 +f 4148/5876/612 4146/6132/611 4354/6379/611 +f 4151/5879/613 4156/6133/614 4351/6381/614 +f 4148/5882/612 4353/6380/612 4352/6383/615 +f 4151/6134/613 4350/6382/613 4159/6384/616 +f 4154/6135/615 4352/6383/615 4351/6381/614 +f 4127/5849/617 4126/5848/616 4159/6385/616 +f 4127/5851/617 4362/6386/617 4361/6387/618 +f 4129/6128/618 4361/6387/618 4360/6388/619 +f 4130/6129/619 4360/6388/619 4158/6389/620 +f 4132/5858/620 4158/6389/620 4359/6390/621 +f 4135/5861/621 4359/6390/621 4358/6391/622 +f 4137/5864/622 4358/6391/622 4357/6375/608 +f 4172/6392/559 4363/6395/623 4367/6393/623 +f 4363/6395/623 4174/6397/624 4368/6396/624 +f 4174/6397/624 4365/6399/561 4175/6398/561 +f 4365/6399/561 4173/6401/625 4176/6400/625 +f 4173/6401/625 4364/6609/626 4177/6402/626 +f 4364/6403/626 4172/6392/559 4366/6394/559 +f 4208/5952/565 4494/6431/565 4492/6405/563 +f 4194/5934/564 4495/6408/564 4493/6406/562 +f 4178/5914/567 4496/6409/567 4494/6407/565 +f 4195/5935/566 4497/6410/566 4495/6408/564 +f 4181/5917/569 4498/6411/569 4496/6409/567 +f 4197/5938/568 4499/6412/568 4497/6410/566 +f 4184/5921/570 4500/6413/570 4498/6411/569 +f 4200/5942/571 4501/6414/571 4499/6412/568 +f 4186/5923/572 4502/6415/572 4500/6413/570 +f 4202/5944/573 4503/6416/573 4501/6414/571 +f 4187/5924/558 4504/6417/558 4502/6415/572 +f 4206/5948/560 4506/6419/560 4503/6416/573 +f 4189/5927/559 4507/6420/559 4504/6417/558 +f 4205/5947/563 4492/6405/563 4505/6418/561 +f 4203/5945/561 4505/6418/561 4506/6419/560 +f 4191/5930/562 4493/6406/562 4507/6420/559 +f 4193/5933/616 4192/6159/613 4377/6438/613 +f 4193/5936/616 4376/6439/616 4375/6440/617 +f 4196/5939/617 4375/6440/617 4374/6441/618 +f 4199/5941/619 4198/6160/618 4374/6441/618 +f 4201/5943/620 4199/6161/619 4373/6442/619 +f 4209/6162/622 4370/6447/622 4369/6444/608 +f 4201/5949/620 4372/6443/620 4371/6445/621 +f 4179/5951/607 4204/6163/608 4369/6444/608 +f 4207/6164/621 4371/6445/621 4370/6447/622 +f 4179/5915/607 4212/6610/607 4381/6448/609 +f 4180/5918/609 4381/6448/609 4211/6449/610 +f 4182/6157/610 4211/6449/610 4380/6450/611 +f 4183/6158/611 4380/6450/611 4210/6451/612 +f 4185/5925/612 4210/6451/612 4379/6452/615 +f 4188/5928/615 4379/6452/615 4378/6453/614 +f 4190/5931/614 4378/6453/614 4377/6438/613 +f 4249/6002/573 4511/6480/573 4509/6454/571 +f 4235/5985/572 4512/6457/572 4510/6455/570 +f 4219/5965/560 4513/6458/560 4511/6456/573 +f 4236/5986/558 4514/6459/558 4512/6457/572 +f 4222/5968/561 4515/6460/561 4513/6458/560 +f 4239/5990/559 4516/6461/559 4514/6459/558 +f 4225/5972/563 4517/6462/563 4515/6460/561 +f 4241/5992/562 4518/6463/562 4516/6461/559 +f 4227/5974/565 4519/6464/565 4517/6462/563 +f 4243/5994/564 4520/6465/564 4518/6463/562 +f 4228/5975/567 4521/6466/567 4519/6464/565 +f 4247/5998/566 4523/6468/566 4520/6465/564 +f 4230/5978/569 4524/6469/569 4521/6466/567 +f 4246/5997/571 4509/6454/571 4522/6467/568 +f 4244/5995/568 4522/6467/568 4523/6468/566 +f 4232/5981/570 4510/6455/570 4524/6469/569 +f 4233/6182/611 4389/6503/611 4251/6487/612 +f 4234/5987/612 4251/6487/612 4388/6488/615 +f 4237/6183/615 4388/6488/615 4387/6489/614 +f 4238/6184/614 4387/6489/614 4386/6490/613 +f 4242/5993/616 4240/6185/613 4386/6490/613 +f 4250/6186/618 4383/6495/618 4382/6492/619 +f 4242/5999/616 4385/6491/616 4384/6493/617 +f 4245/6187/619 4382/6492/619 4253/6494/620 +f 4248/6188/617 4384/6493/617 4383/6495/618 +f 4221/5967/621 4220/5966/620 4253/6496/620 +f 4221/5969/621 4394/6497/621 4393/6498/622 +f 4223/6180/622 4393/6498/622 4392/6499/608 +f 4224/6181/608 4392/6499/608 4252/6500/607 +f 4226/5976/607 4252/6500/607 4391/6501/609 +f 4229/5979/609 4391/6501/609 4390/6502/610 +f 4231/5982/610 4390/6502/610 4389/6503/611 +f 4290/6053/572 4528/6530/572 4526/6504/570 +f 4276/6035/573 4529/6507/573 4527/6505/571 +f 4260/6015/558 4530/6508/558 4528/6506/572 +f 4277/6036/560 4531/6509/560 4529/6507/573 +f 4263/6018/559 4532/6510/559 4530/6508/558 +f 4279/6039/561 4533/6511/561 4531/6509/560 +f 4266/6022/562 4534/6512/562 4532/6510/559 +f 4282/6043/563 4535/6513/563 4533/6511/561 +f 4268/6024/564 4536/6514/564 4534/6512/562 +f 4284/6045/565 4537/6515/565 4535/6513/563 +f 4269/6025/566 4538/6516/566 4536/6514/564 +f 4288/6049/567 4540/6518/567 4537/6515/565 +f 4271/6028/568 4541/6519/568 4538/6516/566 +f 4287/6048/570 4526/6504/570 4539/6517/569 +f 4285/6046/569 4539/6517/569 4540/6518/567 +f 4273/6031/571 4527/6505/571 4541/6519/568 +f 4275/6034/620 4274/6206/619 4402/6537/619 +f 4275/6037/620 4292/6538/620 4401/6539/621 +f 4278/6040/621 4401/6539/621 4400/6540/622 +f 4281/6042/608 4280/6207/622 4400/6540/622 +f 4281/6208/608 4399/6541/608 4398/6542/607 +f 4291/6209/610 4396/6546/610 4395/6543/611 +f 4289/6051/609 4283/6050/607 4398/6542/607 +f 4261/6052/612 4286/6210/611 4395/6543/611 +f 4289/6054/609 4397/6544/609 4396/6546/610 +f 4262/6017/615 4261/6016/612 4294/6547/612 +f 4262/6019/615 4407/6548/615 4406/6549/614 +f 4265/6021/613 4264/6204/614 4406/6549/614 +f 4265/6205/613 4405/6550/613 4293/6551/616 +f 4267/6026/616 4293/6551/616 4404/6552/617 +f 4270/6029/617 4404/6552/617 4403/6553/618 +f 4272/6032/618 4403/6553/618 4402/6537/619 +f 4309/6554/561 4408/6557/625 4412/6555/625 +f 4408/6557/625 4308/6559/626 4413/6558/626 +f 4308/6559/626 4307/6561/559 4310/6560/559 +f 4307/6561/559 4410/6563/623 4311/6562/623 +f 4410/6563/623 4409/6611/624 4312/6564/624 +f 4409/6565/624 4309/6554/561 4411/6556/561 +f 4319/6567/568 4414/6570/678 4418/6568/678 +f 4414/6570/678 4321/6572/679 4419/6571/679 +f 4321/6572/679 4416/6574/569 4322/6573/569 +f 4416/6574/569 4320/6576/680 4323/6575/680 +f 4320/6576/680 4415/6612/681 4324/6577/681 +f 4415/6578/681 4319/6567/568 4417/6569/568 +f 4331/6580/569 4420/6583/680 4424/6581/680 +f 4420/6583/680 4333/6585/681 4425/6584/681 +f 4333/6585/681 4422/6587/568 4334/6586/568 +f 4422/6587/568 4332/6589/678 4335/6588/678 +f 4332/6589/678 4421/6613/679 4336/6590/679 +f 4421/6591/679 4331/6580/569 4423/6582/569 o Huge_Missile v 0.923880 8.500000 0.382684 v 0.618718 8.500000 0.618719 @@ -14486,609 +18329,609 @@ vn 0.9808 0.0000 -0.1951 vn -0.5556 -0.0000 0.8315 vn -0.9808 -0.0000 0.1951 s off -f 4081/3409/680 4082/3410/680 4083/3411/680 -f 4084/3412/680 4085/3413/680 4086/3414/680 -f 4087/3415/680 4082/3410/680 4088/3416/680 -f 4089/3417/680 4090/3418/680 4084/3412/680 -f 4087/3415/680 4091/3419/680 4092/3420/680 -f 4093/3421/680 4094/3422/680 4095/3423/680 -f 4089/3417/680 4095/3423/680 4096/3424/680 -f 4097/3425/680 4091/3419/680 4098/3426/680 -f 4099/3427/680 4094/3422/680 4100/3428/680 -f 4101/3429/680 4102/3430/680 4097/3425/680 -f 4099/3427/680 4103/3431/680 4104/3432/680 -f 4105/3433/680 4106/3434/680 4101/3429/680 -f 4107/3435/680 4108/3436/680 4103/3431/680 -f 4109/3437/680 4110/3438/680 4105/3433/680 -f 4111/3439/680 4083/3411/680 4108/3436/680 -f 4112/3440/680 4113/3441/680 4114/3442/680 -f 4086/3414/680 4115/3443/680 4109/3444/680 -f 4116/3445/681 4117/3446/681 4118/3447/681 -f 4119/3448/681 4120/3449/681 4116/3445/681 -f 4121/3450/681 4122/3451/681 4119/3448/681 -f 4123/3452/681 4124/3453/681 4121/3450/681 -f 4125/3454/681 4126/3455/681 4123/3452/681 -f 4127/3456/681 4128/3457/681 4125/3454/681 -f 4127/3456/681 4129/3458/681 4130/3459/681 -f 4131/3460/681 4132/3461/681 4129/3458/681 -f 4133/3462/681 4134/3463/681 4132/3461/681 -f 4135/3464/681 4136/3465/681 4134/3466/681 -f 4137/3467/681 4138/3468/681 4136/3465/681 -f 4139/3469/681 4138/3468/681 4140/3470/681 -f 4139/3469/681 4141/3471/681 4142/3472/681 -f 4143/3473/681 4141/3471/681 4144/3474/681 -f 4145/3475/681 4146/3476/681 4143/3473/681 -f 4118/3447/681 4147/3477/681 4145/3475/681 -f 4148/3478/680 4149/3479/680 4150/3480/680 -f 4151/3481/680 4152/3482/680 4153/3483/680 -f 4154/3484/682 4155/3485/682 4156/3486/682 -f 4152/3482/683 4155/3487/683 4154/3484/683 -f 4153/3488/684 4155/3487/684 4151/3481/684 -f 4157/3489/680 4158/3490/680 4159/3491/680 -f 4160/3492/680 4161/3493/680 4162/3494/680 -f 4163/3495/680 4164/3496/680 4165/3497/680 -f 4166/3498/680 4167/3499/680 4168/3500/680 -f 4169/3501/685 4170/3502/685 4171/3503/685 -f 4167/3499/686 4170/3504/686 4169/3501/686 -f 4168/3505/687 4170/3504/687 4166/3498/687 -f 4172/3506/680 4173/3507/680 4174/3508/680 -f 4175/3509/688 4176/3510/688 4177/3511/688 -f 4173/3507/689 4176/3512/689 4175/3509/689 -f 4174/3513/690 4176/3512/690 4172/3506/690 -f 4178/3514/680 4179/3515/680 4180/3516/680 -f 4181/3517/691 4182/3518/691 4183/3519/691 -f 4179/3515/692 4182/3520/692 4181/3517/692 -f 4180/3521/693 4182/3520/693 4178/3514/693 -f 4081/3409/680 4088/3416/680 4082/3410/680 -f 4084/3412/680 4090/3418/680 4085/3413/680 -f 4087/3415/680 4092/3420/680 4082/3410/680 -f 4089/3417/680 4096/3424/680 4090/3418/680 -f 4087/3415/680 4098/3426/680 4091/3419/680 -f 4093/3421/680 4100/3428/680 4094/3422/680 -f 4089/3417/680 4093/3421/680 4095/3423/680 -f 4097/3425/680 4102/3430/680 4091/3419/680 -f 4099/3427/680 4104/3432/680 4094/3422/680 -f 4101/3429/680 4106/3434/680 4102/3430/680 -f 4099/3427/680 4107/3435/680 4103/3431/680 -f 4105/3433/680 4110/3438/680 4106/3434/680 -f 4107/3435/680 4111/3439/680 4108/3436/680 -f 4109/3437/680 4115/3522/680 4110/3438/680 -f 4111/3439/680 4081/3409/680 4083/3411/680 -f 4114/3442/680 4184/3523/680 4185/3524/680 -f 4184/3523/680 4186/3525/680 4185/3524/680 -f 4186/3525/680 4187/3526/680 4185/3524/680 -f 4185/3524/680 4188/3527/680 4189/3528/680 -f 4189/3528/680 4190/3529/680 4112/3440/680 -f 4112/3440/680 4191/3530/680 4113/3441/680 -f 4191/3530/680 4192/3531/680 4113/3441/680 -f 4192/3531/680 4193/3532/680 4113/3441/680 -f 4113/3441/680 4194/3533/680 4195/3534/680 -f 4195/3534/680 4196/3535/680 4113/3441/680 -f 4196/3535/680 4114/3442/680 4113/3441/680 -f 4185/3524/680 4189/3528/680 4114/3442/680 -f 4189/3528/680 4112/3440/680 4114/3442/680 -f 4086/3414/680 4085/3413/680 4115/3443/680 -f 4116/3445/681 4120/3449/681 4117/3446/681 -f 4119/3448/681 4122/3451/681 4120/3449/681 -f 4121/3450/681 4124/3453/681 4122/3451/681 -f 4123/3452/681 4126/3455/681 4124/3453/681 -f 4125/3454/681 4128/3457/681 4126/3455/681 -f 4127/3456/681 4130/3459/681 4128/3457/681 -f 4127/3456/681 4131/3460/681 4129/3458/681 -f 4131/3460/681 4133/3462/681 4132/3461/681 -f 4133/3462/681 4135/3536/681 4134/3463/681 -f 4135/3464/681 4137/3467/681 4136/3465/681 -f 4137/3467/681 4140/3470/681 4138/3468/681 -f 4139/3469/681 4142/3472/681 4138/3468/681 -f 4139/3469/681 4144/3474/681 4141/3471/681 -f 4143/3473/681 4146/3476/681 4141/3471/681 -f 4145/3475/681 4147/3477/681 4146/3476/681 -f 4118/3447/681 4117/3446/681 4147/3477/681 -f 4148/3478/680 4197/3537/680 4198/3538/680 -f 4198/3538/680 4199/3539/680 4148/3478/680 -f 4199/3539/680 4149/3479/680 4148/3478/680 -f 4149/3479/680 4200/3540/680 4201/3541/680 -f 4201/3541/680 4202/3542/680 4150/3480/680 -f 4150/3480/680 4203/3543/680 4204/3544/680 -f 4204/3544/680 4205/3545/680 4206/3546/680 -f 4206/3546/680 4207/3547/680 4208/3548/680 -f 4208/3548/680 4209/3549/680 4148/3478/680 -f 4149/3479/680 4201/3541/680 4150/3480/680 -f 4150/3480/680 4204/3544/680 4148/3478/680 -f 4204/3544/680 4206/3546/680 4148/3478/680 -f 4206/3546/680 4208/3548/680 4148/3478/680 -f 4152/3482/683 4151/3481/683 4155/3487/683 -f 4153/3488/684 4156/3550/684 4155/3487/684 -f 4159/3491/680 4210/3551/680 4211/3552/680 -f 4210/3551/680 4212/3553/680 4211/3552/680 -f 4212/3553/680 4213/3554/680 4211/3552/680 -f 4211/3552/680 4214/3555/680 4215/3556/680 -f 4215/3556/680 4216/3557/680 4157/3489/680 -f 4157/3489/680 4217/3558/680 4158/3490/680 -f 4217/3558/680 4218/3559/680 4158/3490/680 -f 4218/3559/680 4219/3560/680 4158/3490/680 -f 4158/3490/680 4220/3561/680 4221/3562/680 -f 4221/3562/680 4222/3563/680 4158/3490/680 -f 4222/3563/680 4159/3491/680 4158/3490/680 -f 4211/3552/680 4215/3556/680 4159/3491/680 -f 4215/3556/680 4157/3489/680 4159/3491/680 -f 4162/3494/680 4223/3564/680 4224/3565/680 -f 4223/3564/680 4225/3566/680 4224/3565/680 -f 4225/3566/680 4226/3567/680 4224/3565/680 -f 4224/3565/680 4227/3568/680 4228/3569/680 -f 4228/3569/680 4229/3570/680 4160/3492/680 -f 4160/3492/680 4230/3571/680 4161/3493/680 -f 4230/3571/680 4231/3572/680 4161/3493/680 -f 4231/3572/680 4232/3573/680 4161/3493/680 -f 4161/3493/680 4233/3574/680 4234/3575/680 -f 4234/3575/680 4235/3576/680 4161/3493/680 -f 4235/3576/680 4162/3494/680 4161/3493/680 -f 4224/3565/680 4228/3569/680 4162/3494/680 -f 4228/3569/680 4160/3492/680 4162/3494/680 -f 4165/3497/680 4236/3577/680 4237/3578/680 -f 4236/3577/680 4238/3579/680 4237/3578/680 -f 4238/3579/680 4239/3580/680 4237/3578/680 -f 4237/3578/680 4240/3581/680 4241/3582/680 -f 4241/3582/680 4242/3583/680 4163/3495/680 -f 4163/3495/680 4243/3584/680 4164/3496/680 -f 4243/3584/680 4244/3585/680 4164/3496/680 -f 4244/3585/680 4245/3586/680 4164/3496/680 -f 4164/3496/680 4246/3587/680 4247/3588/680 -f 4247/3588/680 4248/3589/680 4164/3496/680 -f 4248/3589/680 4165/3497/680 4164/3496/680 -f 4237/3578/680 4241/3582/680 4165/3497/680 -f 4241/3582/680 4163/3495/680 4165/3497/680 -f 4167/3499/686 4166/3498/686 4170/3504/686 -f 4168/3505/687 4171/3590/687 4170/3504/687 -f 4173/3507/689 4172/3506/689 4176/3512/689 -f 4174/3513/690 4177/3591/690 4176/3512/690 -f 4179/3515/692 4178/3514/692 4182/3520/692 -f 4180/3521/693 4183/3592/693 4182/3520/693 +f 4543/6614/682 4544/6615/682 4545/6616/682 +f 4546/6617/682 4547/6618/682 4548/6619/682 +f 4549/6620/682 4544/6615/682 4550/6621/682 +f 4551/6622/682 4552/6623/682 4546/6617/682 +f 4549/6620/682 4553/6624/682 4554/6625/682 +f 4555/6626/682 4556/6627/682 4557/6628/682 +f 4551/6622/682 4557/6628/682 4558/6629/682 +f 4559/6630/682 4553/6624/682 4560/6631/682 +f 4561/6632/682 4556/6627/682 4562/6633/682 +f 4563/6634/682 4564/6635/682 4559/6630/682 +f 4561/6632/682 4565/6636/682 4566/6637/682 +f 4567/6638/682 4568/6639/682 4563/6634/682 +f 4569/6640/682 4570/6641/682 4565/6636/682 +f 4571/6642/682 4572/6643/682 4567/6638/682 +f 4573/6644/682 4545/6616/682 4570/6641/682 +f 4574/6645/682 4575/6646/682 4576/6647/682 +f 4548/6619/682 4577/6648/682 4571/6649/682 +f 4578/6650/683 4579/6651/683 4580/6652/683 +f 4581/6653/683 4582/6654/683 4578/6650/683 +f 4583/6655/683 4584/6656/683 4581/6653/683 +f 4585/6657/683 4586/6658/683 4583/6655/683 +f 4587/6659/683 4588/6660/683 4585/6657/683 +f 4589/6661/683 4590/6662/683 4587/6659/683 +f 4589/6661/683 4591/6663/683 4592/6664/683 +f 4593/6665/683 4594/6666/683 4591/6663/683 +f 4595/6667/683 4596/6668/683 4594/6666/683 +f 4597/6669/683 4598/6670/683 4596/6671/683 +f 4599/6672/683 4600/6673/683 4598/6670/683 +f 4601/6674/683 4600/6673/683 4602/6675/683 +f 4601/6674/683 4603/6676/683 4604/6677/683 +f 4605/6678/683 4603/6676/683 4606/6679/683 +f 4607/6680/683 4608/6681/683 4605/6678/683 +f 4580/6652/683 4609/6682/683 4607/6680/683 +f 4610/6683/682 4611/6684/682 4612/6685/682 +f 4613/6686/682 4614/6687/682 4615/6688/682 +f 4616/6689/684 4617/6690/684 4618/6691/684 +f 4614/6687/685 4617/6692/685 4616/6689/685 +f 4615/6693/686 4617/6692/686 4613/6686/686 +f 4619/6694/682 4620/6695/682 4621/6696/682 +f 4622/6697/682 4623/6698/682 4624/6699/682 +f 4625/6700/682 4626/6701/682 4627/6702/682 +f 4628/6703/682 4629/6704/682 4630/6705/682 +f 4631/6706/687 4632/6707/687 4633/6708/687 +f 4629/6704/688 4632/6709/688 4631/6706/688 +f 4630/6710/689 4632/6709/689 4628/6703/689 +f 4634/6711/682 4635/6712/682 4636/6713/682 +f 4637/6714/690 4638/6715/690 4639/6716/690 +f 4635/6712/691 4638/6717/691 4637/6714/691 +f 4636/6718/692 4638/6717/692 4634/6711/692 +f 4640/6719/682 4641/6720/682 4642/6721/682 +f 4643/6722/693 4644/6723/693 4645/6724/693 +f 4641/6720/694 4644/6725/694 4643/6722/694 +f 4642/6726/695 4644/6725/695 4640/6719/695 +f 4543/6614/682 4550/6621/682 4544/6615/682 +f 4546/6617/682 4552/6623/682 4547/6618/682 +f 4549/6620/682 4554/6625/682 4544/6615/682 +f 4551/6622/682 4558/6629/682 4552/6623/682 +f 4549/6620/682 4560/6631/682 4553/6624/682 +f 4555/6626/682 4562/6633/682 4556/6627/682 +f 4551/6622/682 4555/6626/682 4557/6628/682 +f 4559/6630/682 4564/6635/682 4553/6624/682 +f 4561/6632/682 4566/6637/682 4556/6627/682 +f 4563/6634/682 4568/6639/682 4564/6635/682 +f 4561/6632/682 4569/6640/682 4565/6636/682 +f 4567/6638/682 4572/6643/682 4568/6639/682 +f 4569/6640/682 4573/6644/682 4570/6641/682 +f 4571/6642/682 4577/6727/682 4572/6643/682 +f 4573/6644/682 4543/6614/682 4545/6616/682 +f 4576/6647/682 4646/6728/682 4647/6729/682 +f 4646/6728/682 4648/6730/682 4647/6729/682 +f 4648/6730/682 4649/6731/682 4647/6729/682 +f 4647/6729/682 4650/6732/682 4651/6733/682 +f 4651/6733/682 4652/6734/682 4574/6645/682 +f 4574/6645/682 4653/6735/682 4575/6646/682 +f 4653/6735/682 4654/6736/682 4575/6646/682 +f 4654/6736/682 4655/6737/682 4575/6646/682 +f 4575/6646/682 4656/6738/682 4657/6739/682 +f 4657/6739/682 4658/6740/682 4575/6646/682 +f 4658/6740/682 4576/6647/682 4575/6646/682 +f 4647/6729/682 4651/6733/682 4576/6647/682 +f 4651/6733/682 4574/6645/682 4576/6647/682 +f 4548/6619/682 4547/6618/682 4577/6648/682 +f 4578/6650/683 4582/6654/683 4579/6651/683 +f 4581/6653/683 4584/6656/683 4582/6654/683 +f 4583/6655/683 4586/6658/683 4584/6656/683 +f 4585/6657/683 4588/6660/683 4586/6658/683 +f 4587/6659/683 4590/6662/683 4588/6660/683 +f 4589/6661/683 4592/6664/683 4590/6662/683 +f 4589/6661/683 4593/6665/683 4591/6663/683 +f 4593/6665/683 4595/6667/683 4594/6666/683 +f 4595/6667/683 4597/6741/683 4596/6668/683 +f 4597/6669/683 4599/6672/683 4598/6670/683 +f 4599/6672/683 4602/6675/683 4600/6673/683 +f 4601/6674/683 4604/6677/683 4600/6673/683 +f 4601/6674/683 4606/6679/683 4603/6676/683 +f 4605/6678/683 4608/6681/683 4603/6676/683 +f 4607/6680/683 4609/6682/683 4608/6681/683 +f 4580/6652/683 4579/6651/683 4609/6682/683 +f 4610/6683/682 4659/6742/682 4660/6743/682 +f 4660/6743/682 4661/6744/682 4610/6683/682 +f 4661/6744/682 4611/6684/682 4610/6683/682 +f 4611/6684/682 4662/6745/682 4663/6746/682 +f 4663/6746/682 4664/6747/682 4612/6685/682 +f 4612/6685/682 4665/6748/682 4666/6749/682 +f 4666/6749/682 4667/6750/682 4668/6751/682 +f 4668/6751/682 4669/6752/682 4670/6753/682 +f 4670/6753/682 4671/6754/682 4610/6683/682 +f 4611/6684/682 4663/6746/682 4612/6685/682 +f 4612/6685/682 4666/6749/682 4610/6683/682 +f 4666/6749/682 4668/6751/682 4610/6683/682 +f 4668/6751/682 4670/6753/682 4610/6683/682 +f 4614/6687/685 4613/6686/685 4617/6692/685 +f 4615/6693/686 4618/6755/686 4617/6692/686 +f 4621/6696/682 4672/6756/682 4673/6757/682 +f 4672/6756/682 4674/6758/682 4673/6757/682 +f 4674/6758/682 4675/6759/682 4673/6757/682 +f 4673/6757/682 4676/6760/682 4677/6761/682 +f 4677/6761/682 4678/6762/682 4619/6694/682 +f 4619/6694/682 4679/6763/682 4620/6695/682 +f 4679/6763/682 4680/6764/682 4620/6695/682 +f 4680/6764/682 4681/6765/682 4620/6695/682 +f 4620/6695/682 4682/6766/682 4683/6767/682 +f 4683/6767/682 4684/6768/682 4620/6695/682 +f 4684/6768/682 4621/6696/682 4620/6695/682 +f 4673/6757/682 4677/6761/682 4621/6696/682 +f 4677/6761/682 4619/6694/682 4621/6696/682 +f 4624/6699/682 4685/6769/682 4686/6770/682 +f 4685/6769/682 4687/6771/682 4686/6770/682 +f 4687/6771/682 4688/6772/682 4686/6770/682 +f 4686/6770/682 4689/6773/682 4690/6774/682 +f 4690/6774/682 4691/6775/682 4622/6697/682 +f 4622/6697/682 4692/6776/682 4623/6698/682 +f 4692/6776/682 4693/6777/682 4623/6698/682 +f 4693/6777/682 4694/6778/682 4623/6698/682 +f 4623/6698/682 4695/6779/682 4696/6780/682 +f 4696/6780/682 4697/6781/682 4623/6698/682 +f 4697/6781/682 4624/6699/682 4623/6698/682 +f 4686/6770/682 4690/6774/682 4624/6699/682 +f 4690/6774/682 4622/6697/682 4624/6699/682 +f 4627/6702/682 4698/6782/682 4699/6783/682 +f 4698/6782/682 4700/6784/682 4699/6783/682 +f 4700/6784/682 4701/6785/682 4699/6783/682 +f 4699/6783/682 4702/6786/682 4703/6787/682 +f 4703/6787/682 4704/6788/682 4625/6700/682 +f 4625/6700/682 4705/6789/682 4626/6701/682 +f 4705/6789/682 4706/6790/682 4626/6701/682 +f 4706/6790/682 4707/6791/682 4626/6701/682 +f 4626/6701/682 4708/6792/682 4709/6793/682 +f 4709/6793/682 4710/6794/682 4626/6701/682 +f 4710/6794/682 4627/6702/682 4626/6701/682 +f 4699/6783/682 4703/6787/682 4627/6702/682 +f 4703/6787/682 4625/6700/682 4627/6702/682 +f 4629/6704/688 4628/6703/688 4632/6709/688 +f 4630/6710/689 4633/6795/689 4632/6709/689 +f 4635/6712/691 4634/6711/691 4638/6717/691 +f 4636/6718/692 4639/6796/692 4638/6717/692 +f 4641/6720/694 4640/6719/694 4644/6725/694 +f 4642/6726/695 4645/6797/695 4644/6725/695 s 1 -f 4249/3593/694 4207/3594/695 4250/3595/695 -f 4251/3596/696 4252/3597/697 4253/3598/697 -f 4254/3599/698 4255/3600/699 4256/3601/699 -f 4257/3602/700 4258/3603/696 4251/3596/696 -f 4259/3604/701 4260/3605/698 4254/3599/698 -f 4261/3606/702 4262/3607/700 4257/3602/700 -f 4259/3604/701 4263/3608/703 4264/3609/701 -f 4265/3610/704 4266/3611/702 4261/3612/702 -f 4267/3613/705 4263/3614/703 4268/3615/703 -f 4269/3616/706 4270/3617/704 4265/3610/704 -f 4271/3618/707 4272/3619/705 4267/3613/705 -f 4273/3620/708 4274/3621/706 4269/3616/706 -f 4275/3622/709 4276/3623/707 4271/3618/707 -f 4277/3624/710 4278/3625/708 4273/3620/708 -f 4253/3598/697 4279/3626/711 4280/3627/711 -f 4280/3627/711 4281/3628/709 4275/3622/709 -f 4256/3601/699 4282/3629/710 4277/3624/710 -f 4283/3630/712 4201/3631/713 4284/3632/713 -f 4252/3597/714 4258/3633/715 4285/3634/681 -f 4258/3603/715 4262/3635/716 4285/3636/681 -f 4262/3607/716 4266/3637/717 4285/3638/681 -f 4266/3611/717 4270/3639/718 4285/3640/681 -f 4270/3617/718 4274/3641/719 4285/3642/681 -f 4274/3621/719 4278/3643/720 4285/3644/681 -f 4278/3625/720 4282/3645/721 4285/3646/681 -f 4282/3629/721 4255/3647/722 4285/3648/681 -f 4255/3600/722 4260/3649/723 4285/3650/681 -f 4260/3605/723 4264/3651/724 4285/3652/681 -f 4264/3609/724 4263/3608/725 4285/3653/681 -f 4263/3614/725 4272/3654/726 4285/3655/681 -f 4272/3619/726 4276/3656/727 4285/3657/681 -f 4276/3623/727 4281/3658/728 4285/3659/681 -f 4281/3628/728 4279/3660/729 4285/3661/681 -f 4279/3626/729 4252/3662/714 4285/3663/681 -f 4286/3664/730 4208/3665/694 4249/3666/694 -f 4287/3667/731 4202/3668/712 4283/3630/712 -f 4288/3669/732 4209/3670/730 4286/3664/730 -f 4289/3671/733 4150/3672/731 4287/3667/731 -f 4290/3673/734 4148/3674/732 4288/3669/732 -f 4291/3675/735 4203/3676/733 4289/3671/733 -f 4292/3677/736 4198/3678/737 4293/3679/737 -f 4293/3679/737 4197/3680/734 4290/3673/734 -f 4294/3681/738 4204/3682/735 4291/3675/735 -f 4295/3683/739 4199/3684/736 4292/3677/736 -f 4296/3685/740 4297/3686/691 4298/3687/691 -f 4299/3688/741 4297/3686/691 4300/3689/741 -f 4299/3688/741 4301/3690/742 4302/3691/742 -f 4303/3692/743 4301/3693/742 4304/3694/743 -f 4303/3692/743 4305/3695/685 4306/3696/685 -f 4306/3696/685 4307/3697/744 4308/3698/744 -f 4308/3698/744 4309/3699/745 4310/3700/745 -f 4310/3700/745 4311/3701/746 4312/3702/746 -f 4312/3702/746 4313/3703/688 4314/3704/688 -f 4315/3705/747 4313/3703/688 4316/3706/747 -f 4315/3705/747 4317/3707/748 4318/3708/748 -f 4318/3708/748 4319/3709/749 4320/3710/749 -f 4320/3710/749 4321/3711/682 4322/3712/682 -f 4323/3713/750 4321/3711/682 4324/3714/750 -f 4325/3715/751 4324/3714/750 4326/3716/751 -f 4196/3717/730 4314/3704/732 4114/3718/732 -f 4112/3719/731 4299/3688/733 4191/3720/733 -f 4114/3718/732 4315/3705/734 4184/3721/734 -f 4191/3720/733 4302/3691/735 4192/3722/735 -f 4186/3723/737 4320/3710/736 4187/3724/736 -f 4184/3721/734 4318/3708/737 4186/3723/737 -f 4192/3725/735 4303/3692/738 4193/3726/738 -f 4187/3724/736 4322/3712/739 4185/3727/739 -f 4193/3726/738 4306/3696/752 4113/3728/752 -f 4185/3727/739 4323/3713/753 4188/3729/753 -f 4113/3728/752 4308/3698/695 4194/3730/695 -f 4188/3729/753 4325/3715/713 4189/3731/713 -f 4194/3730/695 4310/3700/694 4195/3732/694 -f 4189/3731/713 4296/3685/712 4190/3733/712 -f 4195/3732/694 4312/3702/730 4196/3717/730 -f 4190/3733/712 4298/3687/731 4112/3719/731 -f 4325/3715/751 4327/3734/740 4296/3685/740 -f 4121/3735/754 4292/3677/755 4123/3736/755 -f 4284/3632/713 4200/3737/753 4328/3738/753 -f 4096/3424/734 4129/3458/732 4090/3418/732 -f 4092/3420/733 4147/3477/731 4082/3410/731 -f 4090/3418/732 4132/3461/730 4085/3413/730 -f 4082/3410/731 4117/3446/712 4083/3411/712 -f 4085/3413/730 4134/3463/694 4115/3443/694 -f 4083/3411/712 4120/3449/713 4108/3436/713 -f 4115/3522/694 4136/3465/695 4110/3438/695 -f 4108/3436/713 4122/3451/753 4103/3431/753 -f 4110/3438/695 4138/3468/752 4106/3434/752 -f 4103/3431/753 4124/3453/739 4104/3432/739 -f 4106/3434/752 4142/3472/738 4102/3430/738 -f 4104/3432/739 4126/3455/736 4094/3422/736 -f 4102/3430/738 4141/3471/735 4091/3419/735 -f 4095/3423/737 4130/3459/734 4096/3424/734 -f 4094/3422/736 4128/3457/737 4095/3423/737 -f 4091/3419/735 4146/3476/733 4092/3420/733 -f 4139/3739/756 4329/3740/757 4294/3681/756 -f 4119/3741/758 4295/3683/754 4121/3735/754 -f 4137/3742/759 4329/3740/757 4140/3743/757 -f 4116/3744/760 4328/3738/758 4119/3741/758 -f 4137/3742/759 4249/3593/761 4250/3595/759 -f 4116/3744/760 4283/3630/762 4284/3632/760 -f 4133/3745/763 4249/3666/761 4135/3746/761 -f 4145/3747/764 4283/3630/762 4118/3748/762 -f 4131/3749/765 4286/3664/763 4133/3745/763 -f 4145/3747/764 4289/3671/766 4287/3667/764 -f 4127/3750/767 4288/3669/765 4131/3749/765 -f 4144/3751/768 4289/3671/766 4143/3752/766 -f 4125/3753/769 4292/3677/755 4293/3679/769 -f 4125/3753/769 4290/3673/767 4127/3750/767 -f 4139/3739/756 4291/3675/768 4144/3751/768 -f 4329/3740/752 4205/3754/738 4294/3681/738 -f 4328/3738/753 4149/3755/739 4295/3683/739 -f 4250/3595/695 4206/3756/752 4329/3740/752 -f 4081/3409/712 4268/3615/713 4259/3604/712 -f 4111/3439/713 4267/3613/753 4268/3615/713 -f 4107/3435/753 4271/3618/739 4267/3613/753 -f 4099/3427/739 4275/3622/736 4271/3618/739 -f 4100/3428/736 4280/3627/737 4275/3622/736 -f 4093/3421/737 4253/3598/734 4280/3627/737 -f 4089/3417/734 4251/3596/732 4253/3598/734 -f 4084/3412/732 4257/3602/730 4251/3596/732 -f 4086/3414/730 4261/3606/694 4257/3602/730 -f 4109/3437/694 4265/3610/695 4261/3612/694 -f 4105/3433/695 4269/3616/752 4265/3610/695 -f 4101/3429/752 4273/3620/738 4269/3616/752 -f 4097/3425/738 4277/3624/735 4273/3620/738 -f 4098/3426/735 4256/3601/733 4277/3624/735 -f 4087/3415/733 4254/3599/731 4256/3601/733 -f 4088/3416/731 4259/3604/712 4254/3599/731 -f 4330/3757/739 4331/3758/770 4332/3759/739 -f 4333/3760/753 4332/3759/739 4334/3761/753 -f 4335/3762/771 4334/3761/753 4336/3763/771 -f 4337/3764/740 4338/3765/691 4339/3766/691 -f 4340/3767/741 4338/3765/691 4341/3768/741 -f 4340/3767/741 4342/3769/742 4343/3770/742 -f 4344/3771/743 4342/3772/742 4345/3773/743 -f 4344/3771/743 4346/3774/685 4347/3775/685 -f 4347/3775/685 4348/3776/744 4349/3777/744 -f 4349/3777/744 4350/3778/745 4351/3779/745 -f 4352/3780/746 4350/3778/745 4353/3781/746 -f 4352/3780/746 4354/3782/688 4355/3783/688 -f 4356/3784/747 4354/3782/688 4357/3785/747 -f 4358/3786/748 4357/3785/747 4359/3787/748 -f 4358/3786/748 4360/3788/749 4361/3789/749 -f 4362/3790/682 4360/3788/749 4363/3791/682 -f 4364/3792/750 4363/3791/682 4365/3793/750 -f 4366/3794/751 4365/3793/750 4367/3795/751 -f 4222/3796/730 4355/3783/732 4159/3797/732 -f 4157/3798/731 4340/3767/733 4217/3799/733 -f 4159/3797/732 4356/3784/734 4210/3800/734 -f 4217/3799/733 4343/3770/735 4218/3801/735 -f 4212/3802/737 4361/3789/736 4213/3803/736 -f 4210/3800/734 4358/3786/737 4212/3802/737 -f 4218/3804/735 4344/3771/738 4219/3805/738 -f 4213/3803/736 4362/3790/739 4211/3806/739 -f 4219/3805/738 4347/3775/752 4158/3807/752 -f 4211/3806/739 4364/3792/753 4214/3808/753 -f 4158/3807/752 4349/3777/695 4220/3809/695 -f 4214/3808/753 4366/3794/713 4215/3810/713 -f 4220/3809/695 4351/3779/694 4221/3811/694 -f 4215/3810/713 4337/3764/712 4216/3812/712 -f 4221/3811/694 4352/3780/730 4222/3796/730 -f 4216/3812/712 4339/3766/731 4157/3798/731 -f 4366/3794/751 4368/3813/740 4337/3764/740 -f 4369/3814/740 4370/3815/691 4371/3816/691 -f 4372/3817/741 4370/3815/691 4373/3818/741 -f 4372/3817/741 4374/3819/742 4375/3820/742 -f 4376/3821/743 4374/3822/742 4377/3823/743 -f 4376/3821/743 4378/3824/685 4379/3825/685 -f 4379/3825/685 4380/3826/744 4381/3827/744 -f 4381/3827/744 4382/3828/745 4383/3829/745 -f 4384/3830/746 4382/3828/745 4385/3831/746 -f 4384/3830/746 4386/3832/688 4387/3833/688 -f 4388/3834/747 4386/3832/688 4389/3835/747 -f 4388/3834/747 4390/3836/748 4391/3837/748 -f 4391/3837/748 4392/3838/749 4393/3839/749 -f 4393/3839/749 4394/3840/682 4395/3841/682 -f 4396/3842/750 4394/3840/682 4397/3843/750 -f 4398/3844/751 4397/3843/750 4399/3845/751 -f 4235/3846/730 4387/3833/732 4162/3847/732 -f 4160/3848/731 4372/3817/733 4230/3849/733 -f 4162/3847/732 4388/3834/734 4223/3850/734 -f 4230/3849/733 4375/3820/735 4231/3851/735 -f 4225/3852/737 4393/3839/736 4226/3853/736 -f 4223/3850/734 4391/3837/737 4225/3852/737 -f 4231/3854/735 4376/3821/738 4232/3855/738 -f 4226/3853/736 4395/3841/739 4224/3856/739 -f 4232/3855/738 4379/3825/752 4161/3857/752 -f 4224/3856/739 4396/3842/753 4227/3858/753 -f 4161/3857/752 4381/3827/695 4233/3859/695 -f 4227/3858/753 4398/3844/713 4228/3860/713 -f 4233/3859/695 4383/3829/694 4234/3861/694 -f 4228/3860/713 4369/3814/712 4229/3862/712 -f 4234/3861/694 4384/3830/730 4235/3846/730 -f 4229/3862/712 4371/3816/731 4160/3848/731 -f 4398/3844/751 4400/3863/740 4369/3814/740 -f 4401/3864/740 4402/3865/691 4403/3866/691 -f 4404/3867/741 4402/3865/691 4405/3868/741 -f 4404/3867/741 4406/3869/742 4407/3870/742 -f 4408/3871/743 4406/3872/742 4409/3873/743 -f 4408/3871/743 4410/3874/685 4411/3875/685 -f 4411/3875/685 4412/3876/744 4413/3877/744 -f 4413/3877/744 4414/3878/745 4415/3879/745 -f 4416/3880/746 4414/3878/745 4417/3881/746 -f 4416/3880/746 4418/3882/688 4419/3883/688 -f 4420/3884/747 4418/3882/688 4421/3885/747 -f 4420/3884/747 4422/3886/748 4423/3887/748 -f 4423/3887/748 4424/3888/749 4425/3889/749 -f 4425/3889/749 4426/3890/682 4427/3891/682 -f 4428/3892/750 4426/3890/682 4429/3893/750 -f 4430/3894/751 4429/3893/750 4431/3895/751 -f 4248/3896/730 4419/3883/732 4165/3897/732 -f 4163/3898/731 4404/3867/733 4243/3899/733 -f 4165/3897/732 4420/3884/734 4236/3900/734 -f 4243/3899/733 4407/3870/735 4244/3901/735 -f 4238/3902/737 4425/3889/736 4239/3903/736 -f 4236/3900/734 4423/3887/737 4238/3902/737 -f 4244/3904/735 4408/3871/738 4245/3905/738 -f 4239/3903/736 4427/3891/739 4237/3906/739 -f 4245/3905/738 4411/3875/752 4164/3907/752 -f 4237/3906/739 4428/3892/753 4240/3908/753 -f 4164/3907/752 4413/3877/695 4246/3909/695 -f 4240/3908/753 4430/3894/713 4241/3910/713 -f 4246/3909/695 4415/3879/694 4247/3911/694 -f 4241/3910/713 4401/3864/712 4242/3912/712 -f 4247/3911/694 4416/3880/730 4248/3896/730 -f 4242/3912/712 4403/3866/731 4163/3898/731 -f 4430/3894/751 4432/3913/740 4401/3864/740 -f 4433/3914/752 4434/3915/772 4435/3916/752 -f 4436/3917/695 4435/3916/752 4437/3918/695 -f 4438/3919/773 4437/3918/695 4439/3920/773 -f 4249/3593/694 4208/3921/694 4207/3594/695 -f 4251/3596/696 4258/3633/696 4252/3597/697 -f 4254/3599/698 4260/3649/698 4255/3600/699 -f 4257/3602/700 4262/3635/700 4258/3603/696 -f 4259/3604/701 4264/3651/701 4260/3605/698 -f 4261/3606/702 4266/3637/702 4262/3607/700 -f 4259/3604/701 4268/3615/703 4263/3608/703 -f 4265/3610/704 4270/3639/704 4266/3611/702 -f 4267/3613/705 4272/3654/705 4263/3614/703 -f 4269/3616/706 4274/3641/706 4270/3617/704 -f 4271/3618/707 4276/3656/707 4272/3619/705 -f 4273/3620/708 4278/3643/708 4274/3621/706 -f 4275/3622/709 4281/3658/709 4276/3623/707 -f 4277/3624/710 4282/3645/710 4278/3625/708 -f 4253/3598/697 4252/3662/697 4279/3626/711 -f 4280/3627/711 4279/3660/711 4281/3628/709 -f 4256/3601/699 4255/3647/699 4282/3629/710 -f 4283/3630/712 4202/3668/712 4201/3631/713 -f 4286/3664/730 4209/3670/730 4208/3665/694 -f 4287/3667/731 4150/3672/731 4202/3668/712 -f 4288/3669/732 4148/3674/732 4209/3670/730 -f 4289/3671/733 4203/3676/733 4150/3672/731 -f 4290/3673/734 4197/3680/734 4148/3674/732 -f 4291/3675/735 4204/3682/735 4203/3676/733 -f 4292/3677/736 4199/3684/736 4198/3678/737 -f 4293/3679/737 4198/3678/737 4197/3680/734 -f 4294/3681/738 4205/3754/738 4204/3682/735 -f 4295/3683/739 4149/3755/739 4199/3684/736 -f 4296/3685/740 4327/3734/740 4297/3686/691 -f 4299/3688/741 4298/3687/691 4297/3686/691 -f 4299/3688/741 4300/3689/741 4301/3690/742 -f 4303/3692/743 4302/3922/742 4301/3693/742 -f 4303/3692/743 4304/3694/743 4305/3695/685 -f 4306/3696/685 4305/3695/685 4307/3697/744 -f 4308/3698/744 4307/3697/744 4309/3699/745 -f 4310/3700/745 4309/3699/745 4311/3701/746 -f 4312/3702/746 4311/3701/746 4313/3703/688 -f 4315/3705/747 4314/3704/688 4313/3703/688 -f 4315/3705/747 4316/3706/747 4317/3707/748 -f 4318/3708/748 4317/3707/748 4319/3709/749 -f 4320/3710/749 4319/3709/749 4321/3711/682 -f 4323/3713/750 4322/3712/682 4321/3711/682 -f 4325/3715/751 4323/3713/750 4324/3714/750 -f 4196/3717/730 4312/3702/730 4314/3704/732 -f 4112/3719/731 4298/3687/731 4299/3688/733 -f 4114/3718/732 4314/3704/732 4315/3705/734 -f 4191/3720/733 4299/3688/733 4302/3691/735 -f 4186/3723/737 4318/3708/737 4320/3710/736 -f 4184/3721/734 4315/3705/734 4318/3708/737 -f 4192/3725/735 4302/3922/735 4303/3692/738 -f 4187/3724/736 4320/3710/736 4322/3712/739 -f 4193/3726/738 4303/3692/738 4306/3696/752 -f 4185/3727/739 4322/3712/739 4323/3713/753 -f 4113/3728/752 4306/3696/752 4308/3698/695 -f 4188/3729/753 4323/3713/753 4325/3715/713 -f 4194/3730/695 4308/3698/695 4310/3700/694 -f 4189/3731/713 4325/3715/713 4296/3685/712 -f 4195/3732/694 4310/3700/694 4312/3702/730 -f 4190/3733/712 4296/3685/712 4298/3687/731 -f 4325/3715/751 4326/3716/751 4327/3734/740 -f 4121/3735/754 4295/3683/754 4292/3677/755 -f 4284/3632/713 4201/3631/713 4200/3737/753 -f 4096/3424/734 4130/3459/734 4129/3458/732 -f 4092/3420/733 4146/3476/733 4147/3477/731 -f 4090/3418/732 4129/3458/732 4132/3461/730 -f 4082/3410/731 4147/3477/731 4117/3446/712 -f 4085/3413/730 4132/3461/730 4134/3463/694 -f 4083/3411/712 4117/3446/712 4120/3449/713 -f 4115/3522/694 4134/3466/694 4136/3465/695 -f 4108/3436/713 4120/3449/713 4122/3451/753 -f 4110/3438/695 4136/3465/695 4138/3468/752 -f 4103/3431/753 4122/3451/753 4124/3453/739 -f 4106/3434/752 4138/3468/752 4142/3472/738 -f 4104/3432/739 4124/3453/739 4126/3455/736 -f 4102/3430/738 4142/3472/738 4141/3471/735 -f 4095/3423/737 4128/3457/737 4130/3459/734 -f 4094/3422/736 4126/3455/736 4128/3457/737 -f 4091/3419/735 4141/3471/735 4146/3476/733 -f 4139/3739/756 4140/3743/757 4329/3740/757 -f 4119/3741/758 4328/3738/758 4295/3683/754 -f 4137/3742/759 4250/3595/759 4329/3740/757 -f 4116/3744/760 4284/3632/760 4328/3738/758 -f 4137/3742/759 4135/3464/761 4249/3593/761 -f 4116/3744/760 4118/3748/762 4283/3630/762 -f 4133/3745/763 4286/3664/763 4249/3666/761 -f 4145/3747/764 4287/3667/764 4283/3630/762 -f 4131/3749/765 4288/3669/765 4286/3664/763 -f 4145/3747/764 4143/3752/766 4289/3671/766 -f 4127/3750/767 4290/3673/767 4288/3669/765 -f 4144/3751/768 4291/3675/768 4289/3671/766 -f 4125/3753/769 4123/3736/755 4292/3677/755 -f 4125/3753/769 4293/3679/769 4290/3673/767 -f 4139/3739/756 4294/3681/756 4291/3675/768 -f 4329/3740/752 4206/3756/752 4205/3754/738 -f 4328/3738/753 4200/3737/753 4149/3755/739 -f 4250/3595/695 4207/3594/695 4206/3756/752 -f 4081/3409/712 4111/3439/713 4268/3615/713 -f 4111/3439/713 4107/3435/753 4267/3613/753 -f 4107/3435/753 4099/3427/739 4271/3618/739 -f 4099/3427/739 4100/3428/736 4275/3622/736 -f 4100/3428/736 4093/3421/737 4280/3627/737 -f 4093/3421/737 4089/3417/734 4253/3598/734 -f 4089/3417/734 4084/3412/732 4251/3596/732 -f 4084/3412/732 4086/3414/730 4257/3602/730 -f 4086/3414/730 4109/3444/694 4261/3606/694 -f 4109/3437/694 4105/3433/695 4265/3610/695 -f 4105/3433/695 4101/3429/752 4269/3616/752 -f 4101/3429/752 4097/3425/738 4273/3620/738 -f 4097/3425/738 4098/3426/735 4277/3624/735 -f 4098/3426/735 4087/3415/733 4256/3601/733 -f 4087/3415/733 4088/3416/731 4254/3599/731 -f 4088/3416/731 4081/3409/712 4259/3604/712 -f 4330/3757/739 4440/3923/770 4331/3758/770 -f 4333/3760/753 4330/3757/739 4332/3759/739 -f 4335/3762/771 4333/3760/753 4334/3761/753 -f 4337/3764/740 4368/3813/740 4338/3765/691 -f 4340/3767/741 4339/3766/691 4338/3765/691 -f 4340/3767/741 4341/3768/741 4342/3769/742 -f 4344/3771/743 4343/3924/742 4342/3772/742 -f 4344/3771/743 4345/3773/743 4346/3774/685 -f 4347/3775/685 4346/3774/685 4348/3776/744 -f 4349/3777/744 4348/3776/744 4350/3778/745 -f 4352/3780/746 4351/3779/745 4350/3778/745 -f 4352/3780/746 4353/3781/746 4354/3782/688 -f 4356/3784/747 4355/3783/688 4354/3782/688 -f 4358/3786/748 4356/3784/747 4357/3785/747 -f 4358/3786/748 4359/3787/748 4360/3788/749 -f 4362/3790/682 4361/3789/749 4360/3788/749 -f 4364/3792/750 4362/3790/682 4363/3791/682 -f 4366/3794/751 4364/3792/750 4365/3793/750 -f 4222/3796/730 4352/3780/730 4355/3783/732 -f 4157/3798/731 4339/3766/731 4340/3767/733 -f 4159/3797/732 4355/3783/732 4356/3784/734 -f 4217/3799/733 4340/3767/733 4343/3770/735 -f 4212/3802/737 4358/3786/737 4361/3789/736 -f 4210/3800/734 4356/3784/734 4358/3786/737 -f 4218/3804/735 4343/3924/735 4344/3771/738 -f 4213/3803/736 4361/3789/736 4362/3790/739 -f 4219/3805/738 4344/3771/738 4347/3775/752 -f 4211/3806/739 4362/3790/739 4364/3792/753 -f 4158/3807/752 4347/3775/752 4349/3777/695 -f 4214/3808/753 4364/3792/753 4366/3794/713 -f 4220/3809/695 4349/3777/695 4351/3779/694 -f 4215/3810/713 4366/3794/713 4337/3764/712 -f 4221/3811/694 4351/3779/694 4352/3780/730 -f 4216/3812/712 4337/3764/712 4339/3766/731 -f 4366/3794/751 4367/3795/751 4368/3813/740 -f 4369/3814/740 4400/3863/740 4370/3815/691 -f 4372/3817/741 4371/3816/691 4370/3815/691 -f 4372/3817/741 4373/3818/741 4374/3819/742 -f 4376/3821/743 4375/3925/742 4374/3822/742 -f 4376/3821/743 4377/3823/743 4378/3824/685 -f 4379/3825/685 4378/3824/685 4380/3826/744 -f 4381/3827/744 4380/3826/744 4382/3828/745 -f 4384/3830/746 4383/3829/745 4382/3828/745 -f 4384/3830/746 4385/3831/746 4386/3832/688 -f 4388/3834/747 4387/3833/688 4386/3832/688 -f 4388/3834/747 4389/3835/747 4390/3836/748 -f 4391/3837/748 4390/3836/748 4392/3838/749 -f 4393/3839/749 4392/3838/749 4394/3840/682 -f 4396/3842/750 4395/3841/682 4394/3840/682 -f 4398/3844/751 4396/3842/750 4397/3843/750 -f 4235/3846/730 4384/3830/730 4387/3833/732 -f 4160/3848/731 4371/3816/731 4372/3817/733 -f 4162/3847/732 4387/3833/732 4388/3834/734 -f 4230/3849/733 4372/3817/733 4375/3820/735 -f 4225/3852/737 4391/3837/737 4393/3839/736 -f 4223/3850/734 4388/3834/734 4391/3837/737 -f 4231/3854/735 4375/3925/735 4376/3821/738 -f 4226/3853/736 4393/3839/736 4395/3841/739 -f 4232/3855/738 4376/3821/738 4379/3825/752 -f 4224/3856/739 4395/3841/739 4396/3842/753 -f 4161/3857/752 4379/3825/752 4381/3827/695 -f 4227/3858/753 4396/3842/753 4398/3844/713 -f 4233/3859/695 4381/3827/695 4383/3829/694 -f 4228/3860/713 4398/3844/713 4369/3814/712 -f 4234/3861/694 4383/3829/694 4384/3830/730 -f 4229/3862/712 4369/3814/712 4371/3816/731 -f 4398/3844/751 4399/3845/751 4400/3863/740 -f 4401/3864/740 4432/3913/740 4402/3865/691 -f 4404/3867/741 4403/3866/691 4402/3865/691 -f 4404/3867/741 4405/3868/741 4406/3869/742 -f 4408/3871/743 4407/3926/742 4406/3872/742 -f 4408/3871/743 4409/3873/743 4410/3874/685 -f 4411/3875/685 4410/3874/685 4412/3876/744 -f 4413/3877/744 4412/3876/744 4414/3878/745 -f 4416/3880/746 4415/3879/745 4414/3878/745 -f 4416/3880/746 4417/3881/746 4418/3882/688 -f 4420/3884/747 4419/3883/688 4418/3882/688 -f 4420/3884/747 4421/3885/747 4422/3886/748 -f 4423/3887/748 4422/3886/748 4424/3888/749 -f 4425/3889/749 4424/3888/749 4426/3890/682 -f 4428/3892/750 4427/3891/682 4426/3890/682 -f 4430/3894/751 4428/3892/750 4429/3893/750 -f 4248/3896/730 4416/3880/730 4419/3883/732 -f 4163/3898/731 4403/3866/731 4404/3867/733 -f 4165/3897/732 4419/3883/732 4420/3884/734 -f 4243/3899/733 4404/3867/733 4407/3870/735 -f 4238/3902/737 4423/3887/737 4425/3889/736 -f 4236/3900/734 4420/3884/734 4423/3887/737 -f 4244/3904/735 4407/3926/735 4408/3871/738 -f 4239/3903/736 4425/3889/736 4427/3891/739 -f 4245/3905/738 4408/3871/738 4411/3875/752 -f 4237/3906/739 4427/3891/739 4428/3892/753 -f 4164/3907/752 4411/3875/752 4413/3877/695 -f 4240/3908/753 4428/3892/753 4430/3894/713 -f 4246/3909/695 4413/3877/695 4415/3879/694 -f 4241/3910/713 4430/3894/713 4401/3864/712 -f 4247/3911/694 4415/3879/694 4416/3880/730 -f 4242/3912/712 4401/3864/712 4403/3866/731 -f 4430/3894/751 4431/3895/751 4432/3913/740 -f 4433/3914/752 4441/3927/772 4434/3915/772 -f 4436/3917/695 4433/3914/752 4435/3916/752 -f 4438/3919/773 4436/3917/695 4437/3918/695 +f 4711/6798/696 4669/6799/697 4712/6800/697 +f 4713/6801/698 4714/6802/699 4715/6803/699 +f 4716/6804/700 4717/6805/701 4718/6806/701 +f 4719/6807/702 4720/6808/698 4713/6801/698 +f 4721/6809/703 4722/6810/700 4716/6804/700 +f 4723/6811/704 4724/6812/702 4719/6807/702 +f 4721/6809/703 4725/6813/705 4726/6814/703 +f 4727/6815/706 4728/6816/704 4723/6817/704 +f 4729/6818/707 4725/6819/705 4730/6820/705 +f 4731/6821/708 4732/6822/706 4727/6815/706 +f 4733/6823/709 4734/6824/707 4729/6818/707 +f 4735/6825/710 4736/6826/708 4731/6821/708 +f 4737/6827/711 4738/6828/709 4733/6823/709 +f 4739/6829/712 4740/6830/710 4735/6825/710 +f 4715/6803/699 4741/6831/713 4742/6832/713 +f 4742/6832/713 4743/6833/711 4737/6827/711 +f 4718/6806/701 4744/6834/712 4739/6829/712 +f 4745/6835/714 4663/6836/715 4746/6837/715 +f 4714/6802/716 4720/6838/717 4747/6839/683 +f 4720/6808/717 4724/6840/718 4747/6841/683 +f 4724/6812/718 4728/6842/719 4747/6843/683 +f 4728/6816/719 4732/6844/720 4747/6845/683 +f 4732/6822/720 4736/6846/721 4747/6847/683 +f 4736/6826/721 4740/6848/722 4747/6849/683 +f 4740/6830/722 4744/6850/723 4747/6851/683 +f 4744/6834/723 4717/6852/724 4747/6853/683 +f 4717/6805/724 4722/6854/725 4747/6855/683 +f 4722/6810/725 4726/6856/726 4747/6857/683 +f 4726/6814/726 4725/6813/727 4747/6858/683 +f 4725/6819/727 4734/6859/728 4747/6860/683 +f 4734/6824/728 4738/6861/729 4747/6862/683 +f 4738/6828/729 4743/6863/730 4747/6864/683 +f 4743/6833/730 4741/6865/731 4747/6866/683 +f 4741/6831/731 4714/6867/716 4747/6868/683 +f 4748/6869/732 4670/6870/696 4711/6871/696 +f 4749/6872/733 4664/6873/714 4745/6835/714 +f 4750/6874/734 4671/6875/732 4748/6869/732 +f 4751/6876/735 4612/6877/733 4749/6872/733 +f 4752/6878/736 4610/6879/734 4750/6874/734 +f 4753/6880/737 4665/6881/735 4751/6876/735 +f 4754/6882/738 4660/6883/739 4755/6884/739 +f 4755/6884/739 4659/6885/736 4752/6878/736 +f 4756/6886/740 4666/6887/737 4753/6880/737 +f 4757/6888/741 4661/6889/738 4754/6882/738 +f 4758/6890/742 4759/6891/693 4760/6892/693 +f 4761/6893/743 4759/6891/693 4762/6894/743 +f 4761/6893/743 4763/6895/744 4764/6896/744 +f 4765/6897/745 4763/6898/744 4766/6899/745 +f 4765/6897/745 4767/6900/687 4768/6901/687 +f 4768/6901/687 4769/6902/746 4770/6903/746 +f 4770/6903/746 4771/6904/747 4772/6905/747 +f 4772/6905/747 4773/6906/748 4774/6907/748 +f 4774/6907/748 4775/6908/690 4776/6909/690 +f 4777/6910/749 4775/6908/690 4778/6911/749 +f 4777/6910/749 4779/6912/750 4780/6913/750 +f 4780/6913/750 4781/6914/751 4782/6915/751 +f 4782/6915/751 4783/6916/684 4784/6917/684 +f 4785/6918/752 4783/6916/684 4786/6919/752 +f 4787/6920/753 4786/6919/752 4788/6921/753 +f 4658/6922/732 4776/6909/734 4576/6923/734 +f 4574/6924/733 4761/6893/735 4653/6925/735 +f 4576/6923/734 4777/6910/736 4646/6926/736 +f 4653/6925/735 4764/6896/737 4654/6927/737 +f 4648/6928/739 4782/6915/738 4649/6929/738 +f 4646/6926/736 4780/6913/739 4648/6928/739 +f 4654/6930/737 4765/6897/740 4655/6931/740 +f 4649/6929/738 4784/6917/741 4647/6932/741 +f 4655/6931/740 4768/6901/754 4575/6933/754 +f 4647/6932/741 4785/6918/755 4650/6934/755 +f 4575/6933/754 4770/6903/697 4656/6935/697 +f 4650/6934/755 4787/6920/715 4651/6936/715 +f 4656/6935/697 4772/6905/696 4657/6937/696 +f 4651/6936/715 4758/6890/714 4652/6938/714 +f 4657/6937/696 4774/6907/732 4658/6922/732 +f 4652/6938/714 4760/6892/733 4574/6924/733 +f 4787/6920/753 4789/6939/742 4758/6890/742 +f 4583/6940/756 4754/6882/757 4585/6941/757 +f 4746/6837/715 4662/6942/755 4790/6943/755 +f 4558/6629/736 4591/6663/734 4552/6623/734 +f 4554/6625/735 4609/6682/733 4544/6615/733 +f 4552/6623/734 4594/6666/732 4547/6618/732 +f 4544/6615/733 4579/6651/714 4545/6616/714 +f 4547/6618/732 4596/6668/696 4577/6648/696 +f 4545/6616/714 4582/6654/715 4570/6641/715 +f 4577/6727/696 4598/6670/697 4572/6643/697 +f 4570/6641/715 4584/6656/755 4565/6636/755 +f 4572/6643/697 4600/6673/754 4568/6639/754 +f 4565/6636/755 4586/6658/741 4566/6637/741 +f 4568/6639/754 4604/6677/740 4564/6635/740 +f 4566/6637/741 4588/6660/738 4556/6627/738 +f 4564/6635/740 4603/6676/737 4553/6624/737 +f 4557/6628/739 4592/6664/736 4558/6629/736 +f 4556/6627/738 4590/6662/739 4557/6628/739 +f 4553/6624/737 4608/6681/735 4554/6625/735 +f 4601/6944/758 4791/6945/759 4756/6886/758 +f 4581/6946/760 4757/6888/756 4583/6940/756 +f 4599/6947/761 4791/6945/759 4602/6948/759 +f 4578/6949/762 4790/6943/760 4581/6946/760 +f 4599/6947/761 4711/6798/763 4712/6800/761 +f 4578/6949/762 4745/6835/764 4746/6837/762 +f 4595/6950/765 4711/6871/763 4597/6951/763 +f 4607/6952/766 4745/6835/764 4580/6953/764 +f 4593/6954/767 4748/6869/765 4595/6950/765 +f 4607/6952/766 4751/6876/768 4749/6872/766 +f 4589/6955/769 4750/6874/767 4593/6954/767 +f 4606/6956/770 4751/6876/768 4605/6957/768 +f 4587/6958/771 4754/6882/757 4755/6884/771 +f 4587/6958/771 4752/6878/769 4589/6955/769 +f 4601/6944/758 4753/6880/770 4606/6956/770 +f 4791/6945/754 4667/6959/740 4756/6886/740 +f 4790/6943/755 4611/6960/741 4757/6888/741 +f 4712/6800/697 4668/6961/754 4791/6945/754 +f 4543/6614/714 4730/6820/715 4721/6809/714 +f 4573/6644/715 4729/6818/755 4730/6820/715 +f 4569/6640/755 4733/6823/741 4729/6818/755 +f 4561/6632/741 4737/6827/738 4733/6823/741 +f 4562/6633/738 4742/6832/739 4737/6827/738 +f 4555/6626/739 4715/6803/736 4742/6832/739 +f 4551/6622/736 4713/6801/734 4715/6803/736 +f 4546/6617/734 4719/6807/732 4713/6801/734 +f 4548/6619/732 4723/6811/696 4719/6807/732 +f 4571/6642/696 4727/6815/697 4723/6817/696 +f 4567/6638/697 4731/6821/754 4727/6815/697 +f 4563/6634/754 4735/6825/740 4731/6821/754 +f 4559/6630/740 4739/6829/737 4735/6825/740 +f 4560/6631/737 4718/6806/735 4739/6829/737 +f 4549/6620/735 4716/6804/733 4718/6806/735 +f 4550/6621/733 4721/6809/714 4716/6804/733 +f 4792/6962/741 4793/6963/772 4794/6964/741 +f 4795/6965/755 4794/6964/741 4796/6966/755 +f 4797/6967/773 4796/6966/755 4798/6968/773 +f 4799/6969/742 4800/6970/693 4801/6971/693 +f 4802/6972/743 4800/6970/693 4803/6973/743 +f 4802/6972/743 4804/6974/744 4805/6975/744 +f 4806/6976/745 4804/6977/744 4807/6978/745 +f 4806/6976/745 4808/6979/687 4809/6980/687 +f 4809/6980/687 4810/6981/746 4811/6982/746 +f 4811/6982/746 4812/6983/747 4813/6984/747 +f 4814/6985/748 4812/6983/747 4815/6986/748 +f 4814/6985/748 4816/6987/690 4817/6988/690 +f 4818/6989/749 4816/6987/690 4819/6990/749 +f 4820/6991/750 4819/6990/749 4821/6992/750 +f 4820/6991/750 4822/6993/751 4823/6994/751 +f 4824/6995/684 4822/6993/751 4825/6996/684 +f 4826/6997/752 4825/6996/684 4827/6998/752 +f 4828/6999/753 4827/6998/752 4829/7000/753 +f 4684/7001/732 4817/6988/734 4621/7002/734 +f 4619/7003/733 4802/6972/735 4679/7004/735 +f 4621/7002/734 4818/6989/736 4672/7005/736 +f 4679/7004/735 4805/6975/737 4680/7006/737 +f 4674/7007/739 4823/6994/738 4675/7008/738 +f 4672/7005/736 4820/6991/739 4674/7007/739 +f 4680/7009/737 4806/6976/740 4681/7010/740 +f 4675/7008/738 4824/6995/741 4673/7011/741 +f 4681/7010/740 4809/6980/754 4620/7012/754 +f 4673/7011/741 4826/6997/755 4676/7013/755 +f 4620/7012/754 4811/6982/697 4682/7014/697 +f 4676/7013/755 4828/6999/715 4677/7015/715 +f 4682/7014/697 4813/6984/696 4683/7016/696 +f 4677/7015/715 4799/6969/714 4678/7017/714 +f 4683/7016/696 4814/6985/732 4684/7001/732 +f 4678/7017/714 4801/6971/733 4619/7003/733 +f 4828/6999/753 4830/7018/742 4799/6969/742 +f 4831/7019/742 4832/7020/693 4833/7021/693 +f 4834/7022/743 4832/7020/693 4835/7023/743 +f 4834/7022/743 4836/7024/744 4837/7025/744 +f 4838/7026/745 4836/7027/744 4839/7028/745 +f 4838/7026/745 4840/7029/687 4841/7030/687 +f 4841/7030/687 4842/7031/746 4843/7032/746 +f 4843/7032/746 4844/7033/747 4845/7034/747 +f 4846/7035/748 4844/7033/747 4847/7036/748 +f 4846/7035/748 4848/7037/690 4849/7038/690 +f 4850/7039/749 4848/7037/690 4851/7040/749 +f 4850/7039/749 4852/7041/750 4853/7042/750 +f 4853/7042/750 4854/7043/751 4855/7044/751 +f 4855/7044/751 4856/7045/684 4857/7046/684 +f 4858/7047/752 4856/7045/684 4859/7048/752 +f 4860/7049/753 4859/7048/752 4861/7050/753 +f 4697/7051/732 4849/7038/734 4624/7052/734 +f 4622/7053/733 4834/7022/735 4692/7054/735 +f 4624/7052/734 4850/7039/736 4685/7055/736 +f 4692/7054/735 4837/7025/737 4693/7056/737 +f 4687/7057/739 4855/7044/738 4688/7058/738 +f 4685/7055/736 4853/7042/739 4687/7057/739 +f 4693/7059/737 4838/7026/740 4694/7060/740 +f 4688/7058/738 4857/7046/741 4686/7061/741 +f 4694/7060/740 4841/7030/754 4623/7062/754 +f 4686/7061/741 4858/7047/755 4689/7063/755 +f 4623/7062/754 4843/7032/697 4695/7064/697 +f 4689/7063/755 4860/7049/715 4690/7065/715 +f 4695/7064/697 4845/7034/696 4696/7066/696 +f 4690/7065/715 4831/7019/714 4691/7067/714 +f 4696/7066/696 4846/7035/732 4697/7051/732 +f 4691/7067/714 4833/7021/733 4622/7053/733 +f 4860/7049/753 4862/7068/742 4831/7019/742 +f 4863/7069/742 4864/7070/693 4865/7071/693 +f 4866/7072/743 4864/7070/693 4867/7073/743 +f 4866/7072/743 4868/7074/744 4869/7075/744 +f 4870/7076/745 4868/7077/744 4871/7078/745 +f 4870/7076/745 4872/7079/687 4873/7080/687 +f 4873/7080/687 4874/7081/746 4875/7082/746 +f 4875/7082/746 4876/7083/747 4877/7084/747 +f 4878/7085/748 4876/7083/747 4879/7086/748 +f 4878/7085/748 4880/7087/690 4881/7088/690 +f 4882/7089/749 4880/7087/690 4883/7090/749 +f 4882/7089/749 4884/7091/750 4885/7092/750 +f 4885/7092/750 4886/7093/751 4887/7094/751 +f 4887/7094/751 4888/7095/684 4889/7096/684 +f 4890/7097/752 4888/7095/684 4891/7098/752 +f 4892/7099/753 4891/7098/752 4893/7100/753 +f 4710/7101/732 4881/7088/734 4627/7102/734 +f 4625/7103/733 4866/7072/735 4705/7104/735 +f 4627/7102/734 4882/7089/736 4698/7105/736 +f 4705/7104/735 4869/7075/737 4706/7106/737 +f 4700/7107/739 4887/7094/738 4701/7108/738 +f 4698/7105/736 4885/7092/739 4700/7107/739 +f 4706/7109/737 4870/7076/740 4707/7110/740 +f 4701/7108/738 4889/7096/741 4699/7111/741 +f 4707/7110/740 4873/7080/754 4626/7112/754 +f 4699/7111/741 4890/7097/755 4702/7113/755 +f 4626/7112/754 4875/7082/697 4708/7114/697 +f 4702/7113/755 4892/7099/715 4703/7115/715 +f 4708/7114/697 4877/7084/696 4709/7116/696 +f 4703/7115/715 4863/7069/714 4704/7117/714 +f 4709/7116/696 4878/7085/732 4710/7101/732 +f 4704/7117/714 4865/7071/733 4625/7103/733 +f 4892/7099/753 4894/7118/742 4863/7069/742 +f 4895/7119/754 4896/7120/774 4897/7121/754 +f 4898/7122/697 4897/7121/754 4899/7123/697 +f 4900/7124/775 4899/7123/697 4901/7125/775 +f 4711/6798/696 4670/7126/696 4669/6799/697 +f 4713/6801/698 4720/6838/698 4714/6802/699 +f 4716/6804/700 4722/6854/700 4717/6805/701 +f 4719/6807/702 4724/6840/702 4720/6808/698 +f 4721/6809/703 4726/6856/703 4722/6810/700 +f 4723/6811/704 4728/6842/704 4724/6812/702 +f 4721/6809/703 4730/6820/705 4725/6813/705 +f 4727/6815/706 4732/6844/706 4728/6816/704 +f 4729/6818/707 4734/6859/707 4725/6819/705 +f 4731/6821/708 4736/6846/708 4732/6822/706 +f 4733/6823/709 4738/6861/709 4734/6824/707 +f 4735/6825/710 4740/6848/710 4736/6826/708 +f 4737/6827/711 4743/6863/711 4738/6828/709 +f 4739/6829/712 4744/6850/712 4740/6830/710 +f 4715/6803/699 4714/6867/699 4741/6831/713 +f 4742/6832/713 4741/6865/713 4743/6833/711 +f 4718/6806/701 4717/6852/701 4744/6834/712 +f 4745/6835/714 4664/6873/714 4663/6836/715 +f 4748/6869/732 4671/6875/732 4670/6870/696 +f 4749/6872/733 4612/6877/733 4664/6873/714 +f 4750/6874/734 4610/6879/734 4671/6875/732 +f 4751/6876/735 4665/6881/735 4612/6877/733 +f 4752/6878/736 4659/6885/736 4610/6879/734 +f 4753/6880/737 4666/6887/737 4665/6881/735 +f 4754/6882/738 4661/6889/738 4660/6883/739 +f 4755/6884/739 4660/6883/739 4659/6885/736 +f 4756/6886/740 4667/6959/740 4666/6887/737 +f 4757/6888/741 4611/6960/741 4661/6889/738 +f 4758/6890/742 4789/6939/742 4759/6891/693 +f 4761/6893/743 4760/6892/693 4759/6891/693 +f 4761/6893/743 4762/6894/743 4763/6895/744 +f 4765/6897/745 4764/7127/744 4763/6898/744 +f 4765/6897/745 4766/6899/745 4767/6900/687 +f 4768/6901/687 4767/6900/687 4769/6902/746 +f 4770/6903/746 4769/6902/746 4771/6904/747 +f 4772/6905/747 4771/6904/747 4773/6906/748 +f 4774/6907/748 4773/6906/748 4775/6908/690 +f 4777/6910/749 4776/6909/690 4775/6908/690 +f 4777/6910/749 4778/6911/749 4779/6912/750 +f 4780/6913/750 4779/6912/750 4781/6914/751 +f 4782/6915/751 4781/6914/751 4783/6916/684 +f 4785/6918/752 4784/6917/684 4783/6916/684 +f 4787/6920/753 4785/6918/752 4786/6919/752 +f 4658/6922/732 4774/6907/732 4776/6909/734 +f 4574/6924/733 4760/6892/733 4761/6893/735 +f 4576/6923/734 4776/6909/734 4777/6910/736 +f 4653/6925/735 4761/6893/735 4764/6896/737 +f 4648/6928/739 4780/6913/739 4782/6915/738 +f 4646/6926/736 4777/6910/736 4780/6913/739 +f 4654/6930/737 4764/7127/737 4765/6897/740 +f 4649/6929/738 4782/6915/738 4784/6917/741 +f 4655/6931/740 4765/6897/740 4768/6901/754 +f 4647/6932/741 4784/6917/741 4785/6918/755 +f 4575/6933/754 4768/6901/754 4770/6903/697 +f 4650/6934/755 4785/6918/755 4787/6920/715 +f 4656/6935/697 4770/6903/697 4772/6905/696 +f 4651/6936/715 4787/6920/715 4758/6890/714 +f 4657/6937/696 4772/6905/696 4774/6907/732 +f 4652/6938/714 4758/6890/714 4760/6892/733 +f 4787/6920/753 4788/6921/753 4789/6939/742 +f 4583/6940/756 4757/6888/756 4754/6882/757 +f 4746/6837/715 4663/6836/715 4662/6942/755 +f 4558/6629/736 4592/6664/736 4591/6663/734 +f 4554/6625/735 4608/6681/735 4609/6682/733 +f 4552/6623/734 4591/6663/734 4594/6666/732 +f 4544/6615/733 4609/6682/733 4579/6651/714 +f 4547/6618/732 4594/6666/732 4596/6668/696 +f 4545/6616/714 4579/6651/714 4582/6654/715 +f 4577/6727/696 4596/6671/696 4598/6670/697 +f 4570/6641/715 4582/6654/715 4584/6656/755 +f 4572/6643/697 4598/6670/697 4600/6673/754 +f 4565/6636/755 4584/6656/755 4586/6658/741 +f 4568/6639/754 4600/6673/754 4604/6677/740 +f 4566/6637/741 4586/6658/741 4588/6660/738 +f 4564/6635/740 4604/6677/740 4603/6676/737 +f 4557/6628/739 4590/6662/739 4592/6664/736 +f 4556/6627/738 4588/6660/738 4590/6662/739 +f 4553/6624/737 4603/6676/737 4608/6681/735 +f 4601/6944/758 4602/6948/759 4791/6945/759 +f 4581/6946/760 4790/6943/760 4757/6888/756 +f 4599/6947/761 4712/6800/761 4791/6945/759 +f 4578/6949/762 4746/6837/762 4790/6943/760 +f 4599/6947/761 4597/6669/763 4711/6798/763 +f 4578/6949/762 4580/6953/764 4745/6835/764 +f 4595/6950/765 4748/6869/765 4711/6871/763 +f 4607/6952/766 4749/6872/766 4745/6835/764 +f 4593/6954/767 4750/6874/767 4748/6869/765 +f 4607/6952/766 4605/6957/768 4751/6876/768 +f 4589/6955/769 4752/6878/769 4750/6874/767 +f 4606/6956/770 4753/6880/770 4751/6876/768 +f 4587/6958/771 4585/6941/757 4754/6882/757 +f 4587/6958/771 4755/6884/771 4752/6878/769 +f 4601/6944/758 4756/6886/758 4753/6880/770 +f 4791/6945/754 4668/6961/754 4667/6959/740 +f 4790/6943/755 4662/6942/755 4611/6960/741 +f 4712/6800/697 4669/6799/697 4668/6961/754 +f 4543/6614/714 4573/6644/715 4730/6820/715 +f 4573/6644/715 4569/6640/755 4729/6818/755 +f 4569/6640/755 4561/6632/741 4733/6823/741 +f 4561/6632/741 4562/6633/738 4737/6827/738 +f 4562/6633/738 4555/6626/739 4742/6832/739 +f 4555/6626/739 4551/6622/736 4715/6803/736 +f 4551/6622/736 4546/6617/734 4713/6801/734 +f 4546/6617/734 4548/6619/732 4719/6807/732 +f 4548/6619/732 4571/6649/696 4723/6811/696 +f 4571/6642/696 4567/6638/697 4727/6815/697 +f 4567/6638/697 4563/6634/754 4731/6821/754 +f 4563/6634/754 4559/6630/740 4735/6825/740 +f 4559/6630/740 4560/6631/737 4739/6829/737 +f 4560/6631/737 4549/6620/735 4718/6806/735 +f 4549/6620/735 4550/6621/733 4716/6804/733 +f 4550/6621/733 4543/6614/714 4721/6809/714 +f 4792/6962/741 4902/7128/772 4793/6963/772 +f 4795/6965/755 4792/6962/741 4794/6964/741 +f 4797/6967/773 4795/6965/755 4796/6966/755 +f 4799/6969/742 4830/7018/742 4800/6970/693 +f 4802/6972/743 4801/6971/693 4800/6970/693 +f 4802/6972/743 4803/6973/743 4804/6974/744 +f 4806/6976/745 4805/7129/744 4804/6977/744 +f 4806/6976/745 4807/6978/745 4808/6979/687 +f 4809/6980/687 4808/6979/687 4810/6981/746 +f 4811/6982/746 4810/6981/746 4812/6983/747 +f 4814/6985/748 4813/6984/747 4812/6983/747 +f 4814/6985/748 4815/6986/748 4816/6987/690 +f 4818/6989/749 4817/6988/690 4816/6987/690 +f 4820/6991/750 4818/6989/749 4819/6990/749 +f 4820/6991/750 4821/6992/750 4822/6993/751 +f 4824/6995/684 4823/6994/751 4822/6993/751 +f 4826/6997/752 4824/6995/684 4825/6996/684 +f 4828/6999/753 4826/6997/752 4827/6998/752 +f 4684/7001/732 4814/6985/732 4817/6988/734 +f 4619/7003/733 4801/6971/733 4802/6972/735 +f 4621/7002/734 4817/6988/734 4818/6989/736 +f 4679/7004/735 4802/6972/735 4805/6975/737 +f 4674/7007/739 4820/6991/739 4823/6994/738 +f 4672/7005/736 4818/6989/736 4820/6991/739 +f 4680/7009/737 4805/7129/737 4806/6976/740 +f 4675/7008/738 4823/6994/738 4824/6995/741 +f 4681/7010/740 4806/6976/740 4809/6980/754 +f 4673/7011/741 4824/6995/741 4826/6997/755 +f 4620/7012/754 4809/6980/754 4811/6982/697 +f 4676/7013/755 4826/6997/755 4828/6999/715 +f 4682/7014/697 4811/6982/697 4813/6984/696 +f 4677/7015/715 4828/6999/715 4799/6969/714 +f 4683/7016/696 4813/6984/696 4814/6985/732 +f 4678/7017/714 4799/6969/714 4801/6971/733 +f 4828/6999/753 4829/7000/753 4830/7018/742 +f 4831/7019/742 4862/7068/742 4832/7020/693 +f 4834/7022/743 4833/7021/693 4832/7020/693 +f 4834/7022/743 4835/7023/743 4836/7024/744 +f 4838/7026/745 4837/7130/744 4836/7027/744 +f 4838/7026/745 4839/7028/745 4840/7029/687 +f 4841/7030/687 4840/7029/687 4842/7031/746 +f 4843/7032/746 4842/7031/746 4844/7033/747 +f 4846/7035/748 4845/7034/747 4844/7033/747 +f 4846/7035/748 4847/7036/748 4848/7037/690 +f 4850/7039/749 4849/7038/690 4848/7037/690 +f 4850/7039/749 4851/7040/749 4852/7041/750 +f 4853/7042/750 4852/7041/750 4854/7043/751 +f 4855/7044/751 4854/7043/751 4856/7045/684 +f 4858/7047/752 4857/7046/684 4856/7045/684 +f 4860/7049/753 4858/7047/752 4859/7048/752 +f 4697/7051/732 4846/7035/732 4849/7038/734 +f 4622/7053/733 4833/7021/733 4834/7022/735 +f 4624/7052/734 4849/7038/734 4850/7039/736 +f 4692/7054/735 4834/7022/735 4837/7025/737 +f 4687/7057/739 4853/7042/739 4855/7044/738 +f 4685/7055/736 4850/7039/736 4853/7042/739 +f 4693/7059/737 4837/7130/737 4838/7026/740 +f 4688/7058/738 4855/7044/738 4857/7046/741 +f 4694/7060/740 4838/7026/740 4841/7030/754 +f 4686/7061/741 4857/7046/741 4858/7047/755 +f 4623/7062/754 4841/7030/754 4843/7032/697 +f 4689/7063/755 4858/7047/755 4860/7049/715 +f 4695/7064/697 4843/7032/697 4845/7034/696 +f 4690/7065/715 4860/7049/715 4831/7019/714 +f 4696/7066/696 4845/7034/696 4846/7035/732 +f 4691/7067/714 4831/7019/714 4833/7021/733 +f 4860/7049/753 4861/7050/753 4862/7068/742 +f 4863/7069/742 4894/7118/742 4864/7070/693 +f 4866/7072/743 4865/7071/693 4864/7070/693 +f 4866/7072/743 4867/7073/743 4868/7074/744 +f 4870/7076/745 4869/7131/744 4868/7077/744 +f 4870/7076/745 4871/7078/745 4872/7079/687 +f 4873/7080/687 4872/7079/687 4874/7081/746 +f 4875/7082/746 4874/7081/746 4876/7083/747 +f 4878/7085/748 4877/7084/747 4876/7083/747 +f 4878/7085/748 4879/7086/748 4880/7087/690 +f 4882/7089/749 4881/7088/690 4880/7087/690 +f 4882/7089/749 4883/7090/749 4884/7091/750 +f 4885/7092/750 4884/7091/750 4886/7093/751 +f 4887/7094/751 4886/7093/751 4888/7095/684 +f 4890/7097/752 4889/7096/684 4888/7095/684 +f 4892/7099/753 4890/7097/752 4891/7098/752 +f 4710/7101/732 4878/7085/732 4881/7088/734 +f 4625/7103/733 4865/7071/733 4866/7072/735 +f 4627/7102/734 4881/7088/734 4882/7089/736 +f 4705/7104/735 4866/7072/735 4869/7075/737 +f 4700/7107/739 4885/7092/739 4887/7094/738 +f 4698/7105/736 4882/7089/736 4885/7092/739 +f 4706/7109/737 4869/7131/737 4870/7076/740 +f 4701/7108/738 4887/7094/738 4889/7096/741 +f 4707/7110/740 4870/7076/740 4873/7080/754 +f 4699/7111/741 4889/7096/741 4890/7097/755 +f 4626/7112/754 4873/7080/754 4875/7082/697 +f 4702/7113/755 4890/7097/755 4892/7099/715 +f 4708/7114/697 4875/7082/697 4877/7084/696 +f 4703/7115/715 4892/7099/715 4863/7069/714 +f 4709/7116/696 4877/7084/696 4878/7085/732 +f 4704/7117/714 4863/7069/714 4865/7071/733 +f 4892/7099/753 4893/7100/753 4894/7118/742 +f 4895/7119/754 4903/7132/774 4896/7120/774 +f 4898/7122/697 4895/7119/754 4897/7121/754 +f 4900/7124/775 4898/7122/697 4899/7123/697 o Strong_Missile v 0.866138 2.750000 0.358766 v 0.750000 2.750000 0.000000 @@ -15731,341 +19574,341 @@ vn 0.9923 0.1240 -0.0000 vn -0.9167 0.1240 0.3797 vn 0.9167 0.1240 -0.3797 s off -f 4442/3928/774 4443/3929/774 4444/3930/774 -f 4444/3930/774 4445/3931/774 4446/3932/774 -f 4445/3933/774 4447/3934/774 4446/3932/774 -f 4448/3935/774 4449/3936/774 4447/3934/774 -f 4450/3937/774 4451/3938/774 4449/3936/774 -f 4452/3939/774 4453/3940/774 4451/3938/774 -f 4454/3941/774 4455/3942/774 4453/3940/774 -f 4455/3942/774 4456/3943/774 4457/3944/774 -f 4456/3945/774 4458/3946/774 4457/3944/774 -f 4458/3947/774 4459/3948/774 4460/3949/774 -f 4460/3949/774 4461/3950/774 4462/3951/774 -f 4461/3952/774 4463/3953/774 4462/3951/774 -f 4464/3954/774 4465/3955/774 4463/3953/774 -f 4465/3955/774 4466/3956/774 4467/3957/774 -f 4466/3958/774 4468/3959/774 4467/3957/774 -f 4469/3960/774 4442/3928/774 4468/3959/774 -f 4470/3961/774 4471/3962/774 4472/3963/774 -f 4473/3964/775 4474/3965/775 4475/3966/775 -f 4476/3967/776 4473/3964/776 4477/3968/776 -f 4473/3969/777 4475/3970/777 4477/3968/777 -f 4474/3971/774 4478/3972/774 4476/3967/774 -f 4479/3973/778 4480/3974/778 4481/3975/778 -f 4482/3976/779 4479/3973/779 4483/3977/779 -f 4479/3978/780 4481/3979/780 4483/3977/780 -f 4480/3980/774 4484/3981/774 4482/3976/774 -f 4485/3982/778 4486/3983/778 4487/3984/778 -f 4488/3985/779 4485/3982/779 4489/3986/779 -f 4485/3987/781 4487/3988/781 4489/3986/781 -f 4486/3989/774 4490/3990/774 4488/3985/774 -f 4491/3991/774 4492/3992/774 4493/3993/774 -f 4494/3994/782 4495/3995/782 4496/3996/782 -f 4493/3993/783 4494/3997/783 4496/3996/783 -f 4494/3997/784 4491/3998/784 4495/3999/784 -f 4497/4000/775 4498/4001/775 4499/4002/775 -f 4500/4003/776 4497/4000/776 4501/4004/776 -f 4497/4005/785 4499/4006/785 4501/4004/785 -f 4498/4007/774 4502/4008/774 4500/4003/774 -f 4503/4009/774 4504/4010/774 4505/4011/774 -f 4506/4012/786 4507/4013/786 4508/4014/786 -f 4505/4011/783 4506/4015/783 4508/4014/783 -f 4506/4015/784 4503/4016/784 4507/4017/784 -f 4509/4018/774 4510/4019/774 4511/4020/774 -f 4512/4021/787 4513/4022/787 4514/4023/787 -f 4511/4020/788 4512/4024/788 4514/4023/788 -f 4512/4024/789 4509/4025/789 4513/4026/789 -f 4515/4027/774 4516/4028/774 4517/4029/774 -f 4518/4030/790 4519/4031/790 4520/4032/790 -f 4517/4029/788 4518/4033/788 4520/4032/788 -f 4518/4033/789 4515/4034/789 4519/4035/789 -f 4442/3928/774 4521/4036/774 4443/3929/774 -f 4444/3930/774 4443/4037/774 4445/3931/774 -f 4445/3933/774 4448/4038/774 4447/3934/774 -f 4448/3935/774 4450/4039/774 4449/3936/774 -f 4450/3937/774 4452/4040/774 4451/3938/774 -f 4452/3939/774 4454/4041/774 4453/3940/774 -f 4454/3941/774 4522/4042/774 4455/3942/774 -f 4455/3942/774 4522/4043/774 4456/3943/774 -f 4456/3945/774 4523/4044/774 4458/3946/774 -f 4458/3947/774 4523/4045/774 4459/3948/774 -f 4460/3949/774 4459/4046/774 4461/3950/774 -f 4461/3952/774 4464/4047/774 4463/3953/774 -f 4464/3954/774 4524/4048/774 4465/3955/774 -f 4465/3955/774 4524/4049/774 4466/3956/774 -f 4466/3958/774 4469/4050/774 4468/3959/774 -f 4469/3960/774 4521/4051/774 4442/3928/774 -f 4470/3961/774 4525/4052/774 4526/4053/774 -f 4526/4053/774 4527/4054/774 4471/3962/774 -f 4471/3962/774 4528/4055/774 4529/4056/774 -f 4529/4056/774 4530/4057/774 4472/3963/774 -f 4472/3963/774 4531/4058/774 4532/4059/774 -f 4532/4059/774 4533/4060/774 4534/4061/774 -f 4534/4061/774 4535/4062/774 4536/4063/774 -f 4536/4063/774 4537/4064/774 4534/4061/774 -f 4537/4064/774 4470/3961/774 4534/4061/774 -f 4470/3961/774 4526/4053/774 4471/3962/774 -f 4471/3962/774 4529/4056/774 4472/3963/774 -f 4472/3963/774 4532/4059/774 4470/3961/774 -f 4532/4059/774 4534/4061/774 4470/3961/774 -f 4473/3964/775 4478/3972/775 4474/3965/775 -f 4476/3967/776 4478/3972/776 4473/3964/776 -f 4479/3973/778 4484/3981/778 4480/3974/778 -f 4482/3976/779 4484/3981/779 4479/3973/779 -f 4485/3982/778 4490/3990/778 4486/3983/778 -f 4488/3985/779 4490/3990/779 4485/3982/779 -f 4493/3993/783 4492/3992/783 4494/3997/783 -f 4494/3997/784 4492/3992/784 4491/3998/784 -f 4497/4000/775 4502/4008/775 4498/4001/775 -f 4500/4003/776 4502/4008/776 4497/4000/776 -f 4505/4011/783 4504/4010/783 4506/4015/783 -f 4506/4015/784 4504/4010/784 4503/4016/784 -f 4511/4020/788 4510/4019/788 4512/4024/788 -f 4512/4024/789 4510/4019/789 4509/4025/789 -f 4517/4029/788 4516/4028/788 4518/4033/788 -f 4518/4033/789 4516/4028/789 4515/4034/789 +f 4904/7133/776 4905/7134/776 4906/7135/776 +f 4906/7135/776 4907/7136/776 4908/7137/776 +f 4907/7138/776 4909/7139/776 4908/7137/776 +f 4910/7140/776 4911/7141/776 4909/7139/776 +f 4912/7142/776 4913/7143/776 4911/7141/776 +f 4914/7144/776 4915/7145/776 4913/7143/776 +f 4916/7146/776 4917/7147/776 4915/7145/776 +f 4917/7147/776 4918/7148/776 4919/7149/776 +f 4918/7150/776 4920/7151/776 4919/7149/776 +f 4920/7152/776 4921/7153/776 4922/7154/776 +f 4922/7154/776 4923/7155/776 4924/7156/776 +f 4923/7157/776 4925/7158/776 4924/7156/776 +f 4926/7159/776 4927/7160/776 4925/7158/776 +f 4927/7160/776 4928/7161/776 4929/7162/776 +f 4928/7163/776 4930/7164/776 4929/7162/776 +f 4931/7165/776 4904/7133/776 4930/7164/776 +f 4932/7166/776 4933/7167/776 4934/7168/776 +f 4935/7169/777 4936/7170/777 4937/7171/777 +f 4938/7172/778 4935/7169/778 4939/7173/778 +f 4935/7174/779 4937/7175/779 4939/7173/779 +f 4936/7176/776 4940/7177/776 4938/7172/776 +f 4941/7178/780 4942/7179/780 4943/7180/780 +f 4944/7181/781 4941/7178/781 4945/7182/781 +f 4941/7183/782 4943/7184/782 4945/7182/782 +f 4942/7185/776 4946/7186/776 4944/7181/776 +f 4947/7187/780 4948/7188/780 4949/7189/780 +f 4950/7190/781 4947/7187/781 4951/7191/781 +f 4947/7192/783 4949/7193/783 4951/7191/783 +f 4948/7194/776 4952/7195/776 4950/7190/776 +f 4953/7196/776 4954/7197/776 4955/7198/776 +f 4956/7199/784 4957/7200/784 4958/7201/784 +f 4955/7198/785 4956/7202/785 4958/7201/785 +f 4956/7202/786 4953/7203/786 4957/7204/786 +f 4959/7205/777 4960/7206/777 4961/7207/777 +f 4962/7208/778 4959/7205/778 4963/7209/778 +f 4959/7210/787 4961/7211/787 4963/7209/787 +f 4960/7212/776 4964/7213/776 4962/7208/776 +f 4965/7214/776 4966/7215/776 4967/7216/776 +f 4968/7217/788 4969/7218/788 4970/7219/788 +f 4967/7216/785 4968/7220/785 4970/7219/785 +f 4968/7220/786 4965/7221/786 4969/7222/786 +f 4971/7223/776 4972/7224/776 4973/7225/776 +f 4974/7226/789 4975/7227/789 4976/7228/789 +f 4973/7225/790 4974/7229/790 4976/7228/790 +f 4974/7229/791 4971/7230/791 4975/7231/791 +f 4977/7232/776 4978/7233/776 4979/7234/776 +f 4980/7235/792 4981/7236/792 4982/7237/792 +f 4979/7234/790 4980/7238/790 4982/7237/790 +f 4980/7238/791 4977/7239/791 4981/7240/791 +f 4904/7133/776 4983/7241/776 4905/7134/776 +f 4906/7135/776 4905/7242/776 4907/7136/776 +f 4907/7138/776 4910/7243/776 4909/7139/776 +f 4910/7140/776 4912/7244/776 4911/7141/776 +f 4912/7142/776 4914/7245/776 4913/7143/776 +f 4914/7144/776 4916/7246/776 4915/7145/776 +f 4916/7146/776 4984/7247/776 4917/7147/776 +f 4917/7147/776 4984/7248/776 4918/7148/776 +f 4918/7150/776 4985/7249/776 4920/7151/776 +f 4920/7152/776 4985/7250/776 4921/7153/776 +f 4922/7154/776 4921/7251/776 4923/7155/776 +f 4923/7157/776 4926/7252/776 4925/7158/776 +f 4926/7159/776 4986/7253/776 4927/7160/776 +f 4927/7160/776 4986/7254/776 4928/7161/776 +f 4928/7163/776 4931/7255/776 4930/7164/776 +f 4931/7165/776 4983/7256/776 4904/7133/776 +f 4932/7166/776 4987/7257/776 4988/7258/776 +f 4988/7258/776 4989/7259/776 4933/7167/776 +f 4933/7167/776 4990/7260/776 4991/7261/776 +f 4991/7261/776 4992/7262/776 4934/7168/776 +f 4934/7168/776 4993/7263/776 4994/7264/776 +f 4994/7264/776 4995/7265/776 4996/7266/776 +f 4996/7266/776 4997/7267/776 4998/7268/776 +f 4998/7268/776 4999/7269/776 4996/7266/776 +f 4999/7269/776 4932/7166/776 4996/7266/776 +f 4932/7166/776 4988/7258/776 4933/7167/776 +f 4933/7167/776 4991/7261/776 4934/7168/776 +f 4934/7168/776 4994/7264/776 4932/7166/776 +f 4994/7264/776 4996/7266/776 4932/7166/776 +f 4935/7169/777 4940/7177/777 4936/7170/777 +f 4938/7172/778 4940/7177/778 4935/7169/778 +f 4941/7178/780 4946/7186/780 4942/7179/780 +f 4944/7181/781 4946/7186/781 4941/7178/781 +f 4947/7187/780 4952/7195/780 4948/7188/780 +f 4950/7190/781 4952/7195/781 4947/7187/781 +f 4955/7198/785 4954/7197/785 4956/7202/785 +f 4956/7202/786 4954/7197/786 4953/7203/786 +f 4959/7205/777 4964/7213/777 4960/7206/777 +f 4962/7208/778 4964/7213/778 4959/7205/778 +f 4967/7216/785 4966/7215/785 4968/7220/785 +f 4968/7220/786 4966/7215/786 4965/7221/786 +f 4973/7225/790 4972/7224/790 4974/7229/790 +f 4974/7229/791 4972/7224/791 4971/7230/791 +f 4979/7234/790 4978/7233/790 4980/7238/790 +f 4980/7238/791 4978/7233/791 4977/7239/791 s 1 -f 4538/4065/791 4539/4066/792 4540/4067/792 -f 4541/4068/793 4542/4069/794 4543/4070/794 -f 4544/4071/795 4545/4072/791 4538/4065/791 -f 4546/4073/796 4547/4074/793 4541/4068/793 -f 4548/4075/797 4549/4076/795 4544/4071/795 -f 4550/4077/798 4551/4078/796 4546/4073/796 -f 4552/4079/799 4553/4080/797 4548/4081/797 -f 4554/4082/800 4555/4083/798 4550/4077/798 -f 4556/4084/801 4557/4085/799 4552/4079/799 -f 4558/4086/802 4559/4087/800 4554/4082/800 -f 4560/4088/803 4561/4089/801 4556/4084/801 -f 4562/4090/804 4563/4091/802 4558/4086/802 -f 4564/4092/805 4565/4093/803 4560/4088/803 -f 4540/4067/792 4566/4094/806 4567/4095/806 -f 4567/4095/806 4568/4096/804 4562/4090/804 -f 4543/4070/794 4569/4097/805 4564/4092/805 -f 4569/4097/807 4570/4098/808 4565/4093/808 -f 4539/4066/809 4571/4099/810 4566/4094/810 -f 4566/4094/810 4572/4100/811 4568/4096/812 -f 4542/4069/813 4573/4101/807 4569/4097/807 -f 4545/4072/814 4574/4102/809 4539/4066/809 -f 4547/4074/815 4575/4103/813 4542/4069/813 -f 4549/4076/816 4576/4104/814 4545/4072/814 -f 4547/4074/815 4577/4105/817 4578/4106/815 -f 4553/4107/818 4579/4108/816 4549/4076/816 -f 4555/4083/819 4577/4109/817 4551/4078/817 -f 4557/4085/820 4580/4110/818 4553/4080/818 -f 4555/4083/819 4581/4111/821 4582/4112/819 -f 4561/4089/822 4583/4113/820 4557/4085/820 -f 4563/4091/823 4581/4114/821 4559/4087/821 -f 4565/4093/808 4584/4115/822 4561/4089/822 -f 4568/4096/812 4585/4116/823 4563/4091/823 -f 4586/4117/824 4546/4073/825 4541/4068/824 -f 4574/4102/826 4576/4118/827 4587/4119/828 -f 4576/4104/827 4579/4120/829 4587/4121/828 -f 4579/4108/829 4580/4122/830 4587/4123/828 -f 4580/4110/830 4583/4124/831 4587/4125/828 -f 4583/4113/831 4584/4126/832 4587/4127/828 -f 4584/4115/832 4570/4128/833 4587/4129/828 -f 4570/4098/833 4573/4130/834 4587/4131/828 -f 4573/4101/834 4575/4132/835 4587/4133/828 -f 4575/4103/835 4578/4134/836 4587/4135/828 -f 4578/4106/836 4577/4105/837 4587/4136/828 -f 4577/4109/837 4582/4137/838 4587/4138/828 -f 4582/4112/838 4581/4111/839 4587/4139/828 -f 4581/4114/839 4585/4140/840 4587/4141/828 -f 4585/4116/840 4572/4142/841 4587/4143/828 -f 4572/4100/841 4571/4144/842 4587/4145/828 -f 4571/4099/842 4574/4146/826 4587/4147/828 -f 4588/4148/825 4550/4077/843 4546/4073/825 -f 4589/4149/843 4554/4082/844 4550/4077/843 -f 4590/4150/844 4558/4086/845 4554/4082/844 -f 4591/4151/845 4562/4090/846 4558/4086/845 -f 4562/4090/846 4592/4152/847 4567/4095/847 -f 4592/4153/847 4540/4067/848 4567/4095/847 -f 4593/4154/848 4538/4065/849 4540/4067/848 -f 4594/4155/849 4544/4071/850 4538/4065/849 -f 4595/4156/850 4548/4075/851 4544/4071/850 -f 4596/4157/851 4552/4079/852 4548/4081/851 -f 4597/4158/852 4556/4084/853 4552/4079/852 -f 4598/4159/853 4560/4088/854 4556/4084/853 -f 4599/4160/854 4564/4092/855 4560/4088/854 -f 4600/4161/855 4543/4070/856 4564/4092/855 -f 4601/4162/856 4541/4068/824 4543/4070/856 -f 4593/4154/857 4602/4163/858 4594/4164/858 -f 4601/4162/859 4603/4165/860 4586/4166/860 -f 4594/4155/858 4604/4167/861 4595/4168/861 -f 4586/4117/860 4605/4169/862 4588/4170/862 -f 4595/4156/861 4606/4171/863 4596/4172/863 -f 4588/4148/862 4607/4173/864 4589/4174/864 -f 4596/4157/863 4608/4175/865 4597/4176/865 -f 4589/4149/864 4609/4177/866 4590/4178/866 -f 4597/4158/865 4610/4179/867 4598/4180/867 -f 4590/4150/866 4611/4181/868 4591/4182/868 -f 4598/4159/867 4612/4183/869 4599/4184/869 -f 4591/4151/868 4613/4185/870 4614/4186/870 -f 4599/4160/869 4615/4187/871 4600/4188/871 -f 4592/4153/872 4616/4189/857 4593/4190/857 -f 4614/4191/870 4617/4192/872 4592/4152/872 -f 4600/4161/871 4618/4193/859 4601/4194/859 -f 4610/4195/873 4619/4196/874 4612/4183/874 -f 4611/4197/875 4620/4198/876 4613/4185/876 -f 4612/4199/874 4621/4200/877 4615/4187/877 -f 4617/4201/878 4622/4202/879 4616/4189/879 -f 4613/4203/876 4623/4204/878 4617/4192/878 -f 4618/4193/880 4621/4200/877 4624/4205/880 -f 4616/4206/879 4625/4207/881 4602/4163/881 -f 4618/4208/880 4626/4209/882 4603/4165/882 -f 4602/4210/881 4627/4211/883 4604/4167/883 -f 4603/4212/882 4628/4213/884 4605/4169/884 -f 4604/4214/883 4629/4215/885 4606/4171/885 -f 4605/4216/884 4630/4217/886 4607/4173/886 -f 4606/4218/885 4631/4219/887 4608/4175/887 -f 4607/4220/886 4632/4221/888 4609/4177/888 -f 4608/4222/887 4633/4223/873 4610/4179/873 -f 4609/4224/888 4634/4225/875 4611/4181/875 -f 4628/4213/862 4444/3930/864 4630/4217/864 -f 4629/4226/863 4460/3949/865 4631/4219/865 -f 4630/4217/864 4446/3932/866 4632/4221/866 -f 4631/4219/865 4462/3951/867 4633/4223/867 -f 4632/4221/866 4447/3934/868 4634/4225/868 -f 4633/4223/867 4463/3953/869 4619/4196/869 -f 4634/4225/868 4449/3936/870 4620/4198/870 -f 4619/4196/869 4465/3955/871 4621/4200/871 -f 4623/4204/872 4453/3940/857 4622/4202/857 -f 4620/4198/870 4451/3938/872 4623/4204/872 -f 4621/4200/871 4467/3957/859 4624/4205/859 -f 4622/4202/857 4455/3942/858 4625/4207/858 -f 4624/4205/859 4468/3959/860 4626/4209/860 -f 4625/4207/858 4457/3944/861 4627/4211/861 -f 4626/4209/860 4442/3928/862 4628/4213/862 -f 4627/4211/861 4458/3946/863 4629/4215/863 -f 4448/3935/868 4527/4227/870 4450/4039/870 -f 4464/3954/869 4532/4228/871 4524/4048/871 -f 4452/3939/872 4525/4229/857 4454/4041/857 -f 4450/3937/870 4526/4230/872 4452/4040/872 -f 4524/4049/871 4531/4231/859 4466/3956/859 -f 4454/3941/857 4470/4232/858 4522/4042/858 -f 4466/3958/859 4472/4233/860 4469/4050/860 -f 4522/4043/858 4537/4234/861 4456/3943/861 -f 4469/3960/860 4530/4235/862 4521/4051/862 -f 4456/3945/861 4536/4236/863 4523/4044/863 -f 4521/4036/862 4529/4237/864 4443/3929/864 -f 4523/4045/863 4535/4238/865 4459/3948/865 -f 4443/4037/864 4528/4239/866 4445/3931/866 -f 4459/4046/865 4534/4240/867 4461/3950/867 -f 4445/3933/866 4471/4241/868 4448/4038/868 -f 4461/3952/867 4533/4242/869 4464/4047/869 -f 4538/4065/791 4545/4072/791 4539/4066/792 -f 4541/4068/793 4547/4074/793 4542/4069/794 -f 4544/4071/795 4549/4076/795 4545/4072/791 -f 4546/4073/796 4551/4078/796 4547/4074/793 -f 4548/4075/797 4553/4107/797 4549/4076/795 -f 4550/4077/798 4555/4083/798 4551/4078/796 -f 4552/4079/799 4557/4085/799 4553/4080/797 -f 4554/4082/800 4559/4087/800 4555/4083/798 -f 4556/4084/801 4561/4089/801 4557/4085/799 -f 4558/4086/802 4563/4091/802 4559/4087/800 -f 4560/4088/803 4565/4093/803 4561/4089/801 -f 4562/4090/804 4568/4096/804 4563/4091/802 -f 4564/4092/805 4569/4097/805 4565/4093/803 -f 4540/4067/792 4539/4066/792 4566/4094/806 -f 4567/4095/806 4566/4094/806 4568/4096/804 -f 4543/4070/794 4542/4069/794 4569/4097/805 -f 4569/4097/807 4573/4130/807 4570/4098/808 -f 4539/4066/809 4574/4146/809 4571/4099/810 -f 4566/4094/810 4571/4144/810 4572/4100/811 -f 4542/4069/813 4575/4132/813 4573/4101/807 -f 4545/4072/814 4576/4118/814 4574/4102/809 -f 4547/4074/815 4578/4134/815 4575/4103/813 -f 4549/4076/816 4579/4120/816 4576/4104/814 -f 4547/4074/815 4551/4078/817 4577/4105/817 -f 4553/4107/818 4580/4122/818 4579/4108/816 -f 4555/4083/819 4582/4137/819 4577/4109/817 -f 4557/4085/820 4583/4124/820 4580/4110/818 -f 4555/4083/819 4559/4087/821 4581/4111/821 -f 4561/4089/822 4584/4126/822 4583/4113/820 -f 4563/4091/823 4585/4140/823 4581/4114/821 -f 4565/4093/808 4570/4128/808 4584/4115/822 -f 4568/4096/812 4572/4142/811 4585/4116/823 -f 4586/4117/824 4588/4170/825 4546/4073/825 -f 4588/4148/825 4589/4174/843 4550/4077/843 -f 4589/4149/843 4590/4178/844 4554/4082/844 -f 4590/4150/844 4591/4182/845 4558/4086/845 -f 4591/4151/845 4614/4186/846 4562/4090/846 -f 4562/4090/846 4614/4191/846 4592/4152/847 -f 4592/4153/847 4593/4190/848 4540/4067/848 -f 4593/4154/848 4594/4164/849 4538/4065/849 -f 4594/4155/849 4595/4168/850 4544/4071/850 -f 4595/4156/850 4596/4172/851 4548/4075/851 -f 4596/4157/851 4597/4176/852 4552/4079/852 -f 4597/4158/852 4598/4180/853 4556/4084/853 -f 4598/4159/853 4599/4184/854 4560/4088/854 -f 4599/4160/854 4600/4188/855 4564/4092/855 -f 4600/4161/855 4601/4194/856 4543/4070/856 -f 4601/4162/856 4586/4166/824 4541/4068/824 -f 4593/4154/857 4616/4206/857 4602/4163/858 -f 4601/4162/859 4618/4208/859 4603/4165/860 -f 4594/4155/858 4602/4210/858 4604/4167/861 -f 4586/4117/860 4603/4212/860 4605/4169/862 -f 4595/4156/861 4604/4214/861 4606/4171/863 -f 4588/4148/862 4605/4216/862 4607/4173/864 -f 4596/4157/863 4606/4218/863 4608/4175/865 -f 4589/4149/864 4607/4220/864 4609/4177/866 -f 4597/4158/865 4608/4222/865 4610/4179/867 -f 4590/4150/866 4609/4224/866 4611/4181/868 -f 4598/4159/867 4610/4195/867 4612/4183/869 -f 4591/4151/868 4611/4197/868 4613/4185/870 -f 4599/4160/869 4612/4199/869 4615/4187/871 -f 4592/4153/872 4617/4201/872 4616/4189/857 -f 4614/4191/870 4613/4203/870 4617/4192/872 -f 4600/4161/871 4615/4243/871 4618/4193/859 -f 4610/4195/873 4633/4223/873 4619/4196/874 -f 4611/4197/875 4634/4225/875 4620/4198/876 -f 4612/4199/874 4619/4196/874 4621/4200/877 -f 4617/4201/878 4623/4204/878 4622/4202/879 -f 4613/4203/876 4620/4198/876 4623/4204/878 -f 4618/4193/880 4615/4243/877 4621/4200/877 -f 4616/4206/879 4622/4202/879 4625/4207/881 -f 4618/4208/880 4624/4205/880 4626/4209/882 -f 4602/4210/881 4625/4207/881 4627/4211/883 -f 4603/4212/882 4626/4209/882 4628/4213/884 -f 4604/4214/883 4627/4211/883 4629/4215/885 -f 4605/4216/884 4628/4213/884 4630/4217/886 -f 4606/4218/885 4629/4226/885 4631/4219/887 -f 4607/4220/886 4630/4217/886 4632/4221/888 -f 4608/4222/887 4631/4219/887 4633/4223/873 -f 4609/4224/888 4632/4221/888 4634/4225/875 -f 4628/4213/862 4442/3928/862 4444/3930/864 -f 4629/4226/863 4458/3947/863 4460/3949/865 -f 4630/4217/864 4444/3930/864 4446/3932/866 -f 4631/4219/865 4460/3949/865 4462/3951/867 -f 4632/4221/866 4446/3932/866 4447/3934/868 -f 4633/4223/867 4462/3951/867 4463/3953/869 -f 4634/4225/868 4447/3934/868 4449/3936/870 -f 4619/4196/869 4463/3953/869 4465/3955/871 -f 4623/4204/872 4451/3938/872 4453/3940/857 -f 4620/4198/870 4449/3936/870 4451/3938/872 -f 4621/4200/871 4465/3955/871 4467/3957/859 -f 4622/4202/857 4453/3940/857 4455/3942/858 -f 4624/4205/859 4467/3957/859 4468/3959/860 -f 4625/4207/858 4455/3942/858 4457/3944/861 -f 4626/4209/860 4468/3959/860 4442/3928/862 -f 4627/4211/861 4457/3944/861 4458/3946/863 -f 4448/3935/868 4471/4244/868 4527/4227/870 -f 4464/3954/869 4533/4245/869 4532/4228/871 -f 4452/3939/872 4526/4246/872 4525/4229/857 -f 4450/3937/870 4527/4247/870 4526/4230/872 -f 4524/4049/871 4532/4248/871 4531/4231/859 -f 4454/3941/857 4525/4249/857 4470/4232/858 -f 4466/3958/859 4531/4250/859 4472/4233/860 -f 4522/4043/858 4470/4251/858 4537/4234/861 -f 4469/3960/860 4472/4252/860 4530/4235/862 -f 4456/3945/861 4537/4253/861 4536/4236/863 -f 4521/4036/862 4530/4254/862 4529/4237/864 -f 4523/4045/863 4536/4255/863 4535/4238/865 -f 4443/4037/864 4529/4256/864 4528/4239/866 -f 4459/4046/865 4535/4257/865 4534/4240/867 -f 4445/3933/866 4528/4258/866 4471/4241/868 -f 4461/3952/867 4534/4259/867 4533/4242/869 +f 5000/7270/793 5001/7271/794 5002/7272/794 +f 5003/7273/795 5004/7274/796 5005/7275/796 +f 5006/7276/797 5007/7277/793 5000/7270/793 +f 5008/7278/798 5009/7279/795 5003/7273/795 +f 5010/7280/799 5011/7281/797 5006/7276/797 +f 5012/7282/800 5013/7283/798 5008/7278/798 +f 5014/7284/801 5015/7285/799 5010/7286/799 +f 5016/7287/802 5017/7288/800 5012/7282/800 +f 5018/7289/803 5019/7290/801 5014/7284/801 +f 5020/7291/804 5021/7292/802 5016/7287/802 +f 5022/7293/805 5023/7294/803 5018/7289/803 +f 5024/7295/806 5025/7296/804 5020/7291/804 +f 5026/7297/807 5027/7298/805 5022/7293/805 +f 5002/7272/794 5028/7299/808 5029/7300/808 +f 5029/7300/808 5030/7301/806 5024/7295/806 +f 5005/7275/796 5031/7302/807 5026/7297/807 +f 5031/7302/809 5032/7303/810 5027/7298/810 +f 5001/7271/811 5033/7304/812 5028/7299/812 +f 5028/7299/812 5034/7305/813 5030/7301/814 +f 5004/7274/815 5035/7306/809 5031/7302/809 +f 5007/7277/816 5036/7307/811 5001/7271/811 +f 5009/7279/817 5037/7308/815 5004/7274/815 +f 5011/7281/818 5038/7309/816 5007/7277/816 +f 5009/7279/817 5039/7310/819 5040/7311/817 +f 5015/7312/820 5041/7313/818 5011/7281/818 +f 5017/7288/821 5039/7314/819 5013/7283/819 +f 5019/7290/822 5042/7315/820 5015/7285/820 +f 5017/7288/821 5043/7316/823 5044/7317/821 +f 5023/7294/824 5045/7318/822 5019/7290/822 +f 5025/7296/825 5043/7319/823 5021/7292/823 +f 5027/7298/810 5046/7320/824 5023/7294/824 +f 5030/7301/814 5047/7321/825 5025/7296/825 +f 5048/7322/826 5008/7278/827 5003/7273/826 +f 5036/7307/828 5038/7323/829 5049/7324/830 +f 5038/7309/829 5041/7325/831 5049/7326/830 +f 5041/7313/831 5042/7327/832 5049/7328/830 +f 5042/7315/832 5045/7329/833 5049/7330/830 +f 5045/7318/833 5046/7331/834 5049/7332/830 +f 5046/7320/834 5032/7333/835 5049/7334/830 +f 5032/7303/835 5035/7335/836 5049/7336/830 +f 5035/7306/836 5037/7337/837 5049/7338/830 +f 5037/7308/837 5040/7339/838 5049/7340/830 +f 5040/7311/838 5039/7310/839 5049/7341/830 +f 5039/7314/839 5044/7342/840 5049/7343/830 +f 5044/7317/840 5043/7316/841 5049/7344/830 +f 5043/7319/841 5047/7345/842 5049/7346/830 +f 5047/7321/842 5034/7347/843 5049/7348/830 +f 5034/7305/843 5033/7349/844 5049/7350/830 +f 5033/7304/844 5036/7351/828 5049/7352/830 +f 5050/7353/827 5012/7282/845 5008/7278/827 +f 5051/7354/845 5016/7287/846 5012/7282/845 +f 5052/7355/846 5020/7291/847 5016/7287/846 +f 5053/7356/847 5024/7295/848 5020/7291/847 +f 5024/7295/848 5054/7357/849 5029/7300/849 +f 5054/7358/849 5002/7272/850 5029/7300/849 +f 5055/7359/850 5000/7270/851 5002/7272/850 +f 5056/7360/851 5006/7276/852 5000/7270/851 +f 5057/7361/852 5010/7280/853 5006/7276/852 +f 5058/7362/853 5014/7284/854 5010/7286/853 +f 5059/7363/854 5018/7289/855 5014/7284/854 +f 5060/7364/855 5022/7293/856 5018/7289/855 +f 5061/7365/856 5026/7297/857 5022/7293/856 +f 5062/7366/857 5005/7275/858 5026/7297/857 +f 5063/7367/858 5003/7273/826 5005/7275/858 +f 5055/7359/859 5064/7368/860 5056/7369/860 +f 5063/7367/861 5065/7370/862 5048/7371/862 +f 5056/7360/860 5066/7372/863 5057/7373/863 +f 5048/7322/862 5067/7374/864 5050/7375/864 +f 5057/7361/863 5068/7376/865 5058/7377/865 +f 5050/7353/864 5069/7378/866 5051/7379/866 +f 5058/7362/865 5070/7380/867 5059/7381/867 +f 5051/7354/866 5071/7382/868 5052/7383/868 +f 5059/7363/867 5072/7384/869 5060/7385/869 +f 5052/7355/868 5073/7386/870 5053/7387/870 +f 5060/7364/869 5074/7388/871 5061/7389/871 +f 5053/7356/870 5075/7390/872 5076/7391/872 +f 5061/7365/871 5077/7392/873 5062/7393/873 +f 5054/7358/874 5078/7394/859 5055/7395/859 +f 5076/7396/872 5079/7397/874 5054/7357/874 +f 5062/7366/873 5080/7398/861 5063/7399/861 +f 5072/7400/875 5081/7401/876 5074/7388/876 +f 5073/7402/877 5082/7403/878 5075/7390/878 +f 5074/7404/876 5083/7405/879 5077/7392/879 +f 5079/7406/880 5084/7407/881 5078/7394/881 +f 5075/7408/878 5085/7409/880 5079/7397/880 +f 5080/7398/882 5083/7405/879 5086/7410/882 +f 5078/7411/881 5087/7412/883 5064/7368/883 +f 5080/7413/882 5088/7414/884 5065/7370/884 +f 5064/7415/883 5089/7416/885 5066/7372/885 +f 5065/7417/884 5090/7418/886 5067/7374/886 +f 5066/7419/885 5091/7420/887 5068/7376/887 +f 5067/7421/886 5092/7422/888 5069/7378/888 +f 5068/7423/887 5093/7424/889 5070/7380/889 +f 5069/7425/888 5094/7426/890 5071/7382/890 +f 5070/7427/889 5095/7428/875 5072/7384/875 +f 5071/7429/890 5096/7430/877 5073/7386/877 +f 5090/7418/864 4906/7135/866 5092/7422/866 +f 5091/7431/865 4922/7154/867 5093/7424/867 +f 5092/7422/866 4908/7137/868 5094/7426/868 +f 5093/7424/867 4924/7156/869 5095/7428/869 +f 5094/7426/868 4909/7139/870 5096/7430/870 +f 5095/7428/869 4925/7158/871 5081/7401/871 +f 5096/7430/870 4911/7141/872 5082/7403/872 +f 5081/7401/871 4927/7160/873 5083/7405/873 +f 5085/7409/874 4915/7145/859 5084/7407/859 +f 5082/7403/872 4913/7143/874 5085/7409/874 +f 5083/7405/873 4929/7162/861 5086/7410/861 +f 5084/7407/859 4917/7147/860 5087/7412/860 +f 5086/7410/861 4930/7164/862 5088/7414/862 +f 5087/7412/860 4919/7149/863 5089/7416/863 +f 5088/7414/862 4904/7133/864 5090/7418/864 +f 5089/7416/863 4920/7151/865 5091/7420/865 +f 4910/7140/870 4989/7432/872 4912/7244/872 +f 4926/7159/871 4994/7433/873 4986/7253/873 +f 4914/7144/874 4987/7434/859 4916/7246/859 +f 4912/7142/872 4988/7435/874 4914/7245/874 +f 4986/7254/873 4993/7436/861 4928/7161/861 +f 4916/7146/859 4932/7437/860 4984/7247/860 +f 4928/7163/861 4934/7438/862 4931/7255/862 +f 4984/7248/860 4999/7439/863 4918/7148/863 +f 4931/7165/862 4992/7440/864 4983/7256/864 +f 4918/7150/863 4998/7441/865 4985/7249/865 +f 4983/7241/864 4991/7442/866 4905/7134/866 +f 4985/7250/865 4997/7443/867 4921/7153/867 +f 4905/7242/866 4990/7444/868 4907/7136/868 +f 4921/7251/867 4996/7445/869 4923/7155/869 +f 4907/7138/868 4933/7446/870 4910/7243/870 +f 4923/7157/869 4995/7447/871 4926/7252/871 +f 5000/7270/793 5007/7277/793 5001/7271/794 +f 5003/7273/795 5009/7279/795 5004/7274/796 +f 5006/7276/797 5011/7281/797 5007/7277/793 +f 5008/7278/798 5013/7283/798 5009/7279/795 +f 5010/7280/799 5015/7312/799 5011/7281/797 +f 5012/7282/800 5017/7288/800 5013/7283/798 +f 5014/7284/801 5019/7290/801 5015/7285/799 +f 5016/7287/802 5021/7292/802 5017/7288/800 +f 5018/7289/803 5023/7294/803 5019/7290/801 +f 5020/7291/804 5025/7296/804 5021/7292/802 +f 5022/7293/805 5027/7298/805 5023/7294/803 +f 5024/7295/806 5030/7301/806 5025/7296/804 +f 5026/7297/807 5031/7302/807 5027/7298/805 +f 5002/7272/794 5001/7271/794 5028/7299/808 +f 5029/7300/808 5028/7299/808 5030/7301/806 +f 5005/7275/796 5004/7274/796 5031/7302/807 +f 5031/7302/809 5035/7335/809 5032/7303/810 +f 5001/7271/811 5036/7351/811 5033/7304/812 +f 5028/7299/812 5033/7349/812 5034/7305/813 +f 5004/7274/815 5037/7337/815 5035/7306/809 +f 5007/7277/816 5038/7323/816 5036/7307/811 +f 5009/7279/817 5040/7339/817 5037/7308/815 +f 5011/7281/818 5041/7325/818 5038/7309/816 +f 5009/7279/817 5013/7283/819 5039/7310/819 +f 5015/7312/820 5042/7327/820 5041/7313/818 +f 5017/7288/821 5044/7342/821 5039/7314/819 +f 5019/7290/822 5045/7329/822 5042/7315/820 +f 5017/7288/821 5021/7292/823 5043/7316/823 +f 5023/7294/824 5046/7331/824 5045/7318/822 +f 5025/7296/825 5047/7345/825 5043/7319/823 +f 5027/7298/810 5032/7333/810 5046/7320/824 +f 5030/7301/814 5034/7347/813 5047/7321/825 +f 5048/7322/826 5050/7375/827 5008/7278/827 +f 5050/7353/827 5051/7379/845 5012/7282/845 +f 5051/7354/845 5052/7383/846 5016/7287/846 +f 5052/7355/846 5053/7387/847 5020/7291/847 +f 5053/7356/847 5076/7391/848 5024/7295/848 +f 5024/7295/848 5076/7396/848 5054/7357/849 +f 5054/7358/849 5055/7395/850 5002/7272/850 +f 5055/7359/850 5056/7369/851 5000/7270/851 +f 5056/7360/851 5057/7373/852 5006/7276/852 +f 5057/7361/852 5058/7377/853 5010/7280/853 +f 5058/7362/853 5059/7381/854 5014/7284/854 +f 5059/7363/854 5060/7385/855 5018/7289/855 +f 5060/7364/855 5061/7389/856 5022/7293/856 +f 5061/7365/856 5062/7393/857 5026/7297/857 +f 5062/7366/857 5063/7399/858 5005/7275/858 +f 5063/7367/858 5048/7371/826 5003/7273/826 +f 5055/7359/859 5078/7411/859 5064/7368/860 +f 5063/7367/861 5080/7413/861 5065/7370/862 +f 5056/7360/860 5064/7415/860 5066/7372/863 +f 5048/7322/862 5065/7417/862 5067/7374/864 +f 5057/7361/863 5066/7419/863 5068/7376/865 +f 5050/7353/864 5067/7421/864 5069/7378/866 +f 5058/7362/865 5068/7423/865 5070/7380/867 +f 5051/7354/866 5069/7425/866 5071/7382/868 +f 5059/7363/867 5070/7427/867 5072/7384/869 +f 5052/7355/868 5071/7429/868 5073/7386/870 +f 5060/7364/869 5072/7400/869 5074/7388/871 +f 5053/7356/870 5073/7402/870 5075/7390/872 +f 5061/7365/871 5074/7404/871 5077/7392/873 +f 5054/7358/874 5079/7406/874 5078/7394/859 +f 5076/7396/872 5075/7408/872 5079/7397/874 +f 5062/7366/873 5077/7448/873 5080/7398/861 +f 5072/7400/875 5095/7428/875 5081/7401/876 +f 5073/7402/877 5096/7430/877 5082/7403/878 +f 5074/7404/876 5081/7401/876 5083/7405/879 +f 5079/7406/880 5085/7409/880 5084/7407/881 +f 5075/7408/878 5082/7403/878 5085/7409/880 +f 5080/7398/882 5077/7448/879 5083/7405/879 +f 5078/7411/881 5084/7407/881 5087/7412/883 +f 5080/7413/882 5086/7410/882 5088/7414/884 +f 5064/7415/883 5087/7412/883 5089/7416/885 +f 5065/7417/884 5088/7414/884 5090/7418/886 +f 5066/7419/885 5089/7416/885 5091/7420/887 +f 5067/7421/886 5090/7418/886 5092/7422/888 +f 5068/7423/887 5091/7431/887 5093/7424/889 +f 5069/7425/888 5092/7422/888 5094/7426/890 +f 5070/7427/889 5093/7424/889 5095/7428/875 +f 5071/7429/890 5094/7426/890 5096/7430/877 +f 5090/7418/864 4904/7133/864 4906/7135/866 +f 5091/7431/865 4920/7152/865 4922/7154/867 +f 5092/7422/866 4906/7135/866 4908/7137/868 +f 5093/7424/867 4922/7154/867 4924/7156/869 +f 5094/7426/868 4908/7137/868 4909/7139/870 +f 5095/7428/869 4924/7156/869 4925/7158/871 +f 5096/7430/870 4909/7139/870 4911/7141/872 +f 5081/7401/871 4925/7158/871 4927/7160/873 +f 5085/7409/874 4913/7143/874 4915/7145/859 +f 5082/7403/872 4911/7141/872 4913/7143/874 +f 5083/7405/873 4927/7160/873 4929/7162/861 +f 5084/7407/859 4915/7145/859 4917/7147/860 +f 5086/7410/861 4929/7162/861 4930/7164/862 +f 5087/7412/860 4917/7147/860 4919/7149/863 +f 5088/7414/862 4930/7164/862 4904/7133/864 +f 5089/7416/863 4919/7149/863 4920/7151/865 +f 4910/7140/870 4933/7449/870 4989/7432/872 +f 4926/7159/871 4995/7450/871 4994/7433/873 +f 4914/7144/874 4988/7451/874 4987/7434/859 +f 4912/7142/872 4989/7452/872 4988/7435/874 +f 4986/7254/873 4994/7453/873 4993/7436/861 +f 4916/7146/859 4987/7454/859 4932/7437/860 +f 4928/7163/861 4993/7455/861 4934/7438/862 +f 4984/7248/860 4932/7456/860 4999/7439/863 +f 4931/7165/862 4934/7457/862 4992/7440/864 +f 4918/7150/863 4999/7458/863 4998/7441/865 +f 4983/7241/864 4992/7459/864 4991/7442/866 +f 4985/7250/865 4998/7460/865 4997/7443/867 +f 4905/7242/866 4991/7461/866 4990/7444/868 +f 4921/7251/867 4997/7462/867 4996/7445/869 +f 4907/7138/868 4990/7463/868 4933/7446/870 +f 4923/7157/869 4996/7464/869 4995/7447/871 o V2_Missile v 0.265165 2.500000 -0.265165 v 0.265165 2.500000 0.265165 @@ -16453,189 +20296,189 @@ vn -0.3797 -0.1240 -0.9167 vn 0.0000 -0.1240 -0.9923 vn 0.3797 -0.1240 0.9167 s off -f 4635/4260/889 4636/4261/889 4637/4262/889 -f 4638/4263/890 4639/4264/890 4640/4265/890 -f 4641/4266/891 4642/4267/891 4643/4268/891 -f 4644/4269/892 4645/4270/892 4646/4271/892 -f 4647/4272/893 4648/4273/893 4649/4274/893 -f 4650/4275/890 4644/4276/890 4642/4277/890 -f 4651/4278/894 4647/4279/894 4639/4280/894 -f 4641/4266/895 4643/4268/895 4652/4281/895 -f 4638/4263/891 4640/4265/891 4653/4282/891 -f 4645/4270/889 4642/4283/889 4646/4271/889 -f 4650/4284/896 4654/4285/896 4655/4286/896 -f 4649/4274/889 4640/4265/889 4639/4287/889 -f 4651/4288/897 4656/4289/897 4657/4290/897 -f 4658/4291/898 4659/4292/898 4660/4293/898 -f 4661/4294/889 4662/4295/889 4663/4296/889 -f 4659/4292/894 4664/4297/894 4665/4298/894 -f 4666/4299/891 4667/4300/891 4662/4301/891 -f 4667/4302/899 4661/4294/899 4663/4296/899 -f 4659/4292/895 4662/4303/895 4664/4297/895 -f 4668/4304/900 4669/4305/900 4670/4306/900 -f 4671/4307/889 4672/4308/889 4673/4309/889 -f 4674/4310/890 4672/4308/890 4675/4311/890 -f 4668/4312/895 4676/4313/895 4673/4314/895 -f 4675/4315/901 4671/4307/901 4676/4316/901 -f 4674/4310/894 4673/4317/894 4672/4308/894 -f 4677/4318/889 4678/4319/889 4679/4320/889 -f 4679/4320/889 4680/4321/889 4635/4260/889 -f 4635/4260/889 4681/4322/889 4636/4261/889 -f 4681/4322/889 4682/4323/889 4636/4261/889 -f 4682/4323/889 4683/4324/889 4636/4261/889 -f 4636/4261/889 4684/4325/889 4637/4262/889 -f 4684/4325/889 4685/4326/889 4637/4262/889 -f 4685/4326/889 4686/4327/889 4637/4262/889 -f 4637/4262/889 4687/4328/889 4688/4329/889 -f 4688/4329/889 4689/4330/889 4677/4318/889 -f 4677/4318/889 4679/4320/889 4635/4260/889 -f 4637/4262/889 4688/4329/889 4677/4318/889 -f 4677/4318/889 4635/4260/889 4637/4262/889 -f 4638/4263/890 4651/4288/890 4639/4264/890 -f 4641/4266/891 4650/4284/891 4642/4267/891 -f 4644/4269/892 4652/4331/892 4645/4270/892 -f 4647/4272/893 4653/4332/893 4648/4273/893 -f 4655/4333/890 4644/4276/890 4650/4275/890 -f 4644/4276/890 4646/4334/890 4642/4277/890 -f 4657/4335/894 4647/4279/894 4651/4278/894 -f 4647/4279/894 4649/4336/894 4639/4280/894 -f 4645/4270/895 4652/4281/895 4643/4268/895 -f 4652/4281/895 4654/4337/895 4641/4266/895 -f 4648/4273/891 4653/4282/891 4640/4265/891 -f 4653/4282/891 4656/4338/891 4638/4263/891 -f 4645/4270/889 4643/4268/889 4642/4283/889 -f 4650/4284/896 4641/4266/896 4654/4285/896 -f 4649/4274/889 4648/4273/889 4640/4265/889 -f 4651/4288/897 4638/4263/897 4656/4289/897 -f 4658/4291/898 4666/4339/898 4659/4292/898 -f 4661/4294/889 4664/4297/889 4662/4295/889 -f 4661/4294/894 4665/4298/894 4664/4297/894 -f 4665/4298/894 4660/4340/894 4659/4292/894 -f 4658/4341/891 4667/4300/891 4666/4299/891 -f 4667/4300/891 4663/4342/891 4662/4301/891 -f 4667/4302/899 4665/4343/899 4661/4294/899 -f 4659/4292/895 4666/4339/895 4662/4303/895 -f 4668/4304/900 4674/4310/900 4669/4305/900 -f 4671/4307/889 4690/4344/889 4672/4308/889 -f 4690/4344/890 4675/4311/890 4672/4308/890 -f 4675/4311/890 4669/4345/890 4674/4310/890 -f 4670/4346/895 4676/4313/895 4668/4312/895 -f 4676/4313/895 4671/4347/895 4673/4314/895 -f 4675/4315/901 4690/4344/901 4671/4307/901 -f 4674/4310/894 4668/4304/894 4673/4317/894 +f 5097/7465/891 5098/7466/891 5099/7467/891 +f 5100/7468/892 5101/7469/892 5102/7470/892 +f 5103/7471/893 5104/7472/893 5105/7473/893 +f 5106/7474/894 5107/7475/894 5108/7476/894 +f 5109/7477/895 5110/7478/895 5111/7479/895 +f 5112/7480/892 5106/7481/892 5104/7482/892 +f 5113/7483/896 5109/7484/896 5101/7485/896 +f 5103/7471/897 5105/7473/897 5114/7486/897 +f 5100/7468/893 5102/7470/893 5115/7487/893 +f 5107/7475/891 5104/7488/891 5108/7476/891 +f 5112/7489/898 5116/7490/898 5117/7491/898 +f 5111/7479/891 5102/7470/891 5101/7492/891 +f 5113/7493/899 5118/7494/899 5119/7495/899 +f 5120/7496/900 5121/7497/900 5122/7498/900 +f 5123/7499/891 5124/7500/891 5125/7501/891 +f 5121/7497/896 5126/7502/896 5127/7503/896 +f 5128/7504/893 5129/7505/893 5124/7506/893 +f 5129/7507/901 5123/7499/901 5125/7501/901 +f 5121/7497/897 5124/7508/897 5126/7502/897 +f 5130/7509/902 5131/7510/902 5132/7511/902 +f 5133/7512/891 5134/7513/891 5135/7514/891 +f 5136/7515/892 5134/7513/892 5137/7516/892 +f 5130/7517/897 5138/7518/897 5135/7519/897 +f 5137/7520/903 5133/7512/903 5138/7521/903 +f 5136/7515/896 5135/7522/896 5134/7513/896 +f 5139/7523/891 5140/7524/891 5141/7525/891 +f 5141/7525/891 5142/7526/891 5097/7465/891 +f 5097/7465/891 5143/7527/891 5098/7466/891 +f 5143/7527/891 5144/7528/891 5098/7466/891 +f 5144/7528/891 5145/7529/891 5098/7466/891 +f 5098/7466/891 5146/7530/891 5099/7467/891 +f 5146/7530/891 5147/7531/891 5099/7467/891 +f 5147/7531/891 5148/7532/891 5099/7467/891 +f 5099/7467/891 5149/7533/891 5150/7534/891 +f 5150/7534/891 5151/7535/891 5139/7523/891 +f 5139/7523/891 5141/7525/891 5097/7465/891 +f 5099/7467/891 5150/7534/891 5139/7523/891 +f 5139/7523/891 5097/7465/891 5099/7467/891 +f 5100/7468/892 5113/7493/892 5101/7469/892 +f 5103/7471/893 5112/7489/893 5104/7472/893 +f 5106/7474/894 5114/7536/894 5107/7475/894 +f 5109/7477/895 5115/7537/895 5110/7478/895 +f 5117/7538/892 5106/7481/892 5112/7480/892 +f 5106/7481/892 5108/7539/892 5104/7482/892 +f 5119/7540/896 5109/7484/896 5113/7483/896 +f 5109/7484/896 5111/7541/896 5101/7485/896 +f 5107/7475/897 5114/7486/897 5105/7473/897 +f 5114/7486/897 5116/7542/897 5103/7471/897 +f 5110/7478/893 5115/7487/893 5102/7470/893 +f 5115/7487/893 5118/7543/893 5100/7468/893 +f 5107/7475/891 5105/7473/891 5104/7488/891 +f 5112/7489/898 5103/7471/898 5116/7490/898 +f 5111/7479/891 5110/7478/891 5102/7470/891 +f 5113/7493/899 5100/7468/899 5118/7494/899 +f 5120/7496/900 5128/7544/900 5121/7497/900 +f 5123/7499/891 5126/7502/891 5124/7500/891 +f 5123/7499/896 5127/7503/896 5126/7502/896 +f 5127/7503/896 5122/7545/896 5121/7497/896 +f 5120/7546/893 5129/7505/893 5128/7504/893 +f 5129/7505/893 5125/7547/893 5124/7506/893 +f 5129/7507/901 5127/7548/901 5123/7499/901 +f 5121/7497/897 5128/7544/897 5124/7508/897 +f 5130/7509/902 5136/7515/902 5131/7510/902 +f 5133/7512/891 5152/7549/891 5134/7513/891 +f 5152/7549/892 5137/7516/892 5134/7513/892 +f 5137/7516/892 5131/7550/892 5136/7515/892 +f 5132/7551/897 5138/7518/897 5130/7517/897 +f 5138/7518/897 5133/7552/897 5135/7519/897 +f 5137/7520/903 5152/7549/903 5133/7512/903 +f 5136/7515/896 5130/7509/896 5135/7522/896 s 1 -f 4691/4348/902 4692/4349/903 4693/4350/904 -f 4694/4351/905 4695/4352/906 4696/4353/907 -f 4697/4354/908 4698/4355/909 4691/4348/902 -f 4699/4356/910 4700/4357/911 4694/4351/905 -f 4701/4358/912 4702/4359/913 4697/4354/908 -f 4703/4360/914 4704/4361/915 4699/4362/910 -f 4705/4363/916 4706/4364/917 4701/4358/912 -f 4707/4365/918 4708/4366/919 4703/4360/914 -f 4709/4367/920 4710/4368/921 4705/4363/916 -f 4711/4369/922 4712/4370/923 4707/4365/918 -f 4713/4371/924 4714/4372/925 4709/4367/920 -f 4711/4369/922 4715/4373/926 4716/4374/927 -f 4717/4375/928 4718/4376/929 4719/4377/930 -f 4719/4377/930 4720/4378/931 4713/4371/924 -f 4693/4350/904 4715/4373/926 4721/4379/932 -f 4696/4353/907 4722/4380/933 4717/4375/928 -f 4720/4378/931 4723/4381/934 4724/4382/935 -f 4692/4349/903 4725/4383/936 4715/4373/926 -f 4722/4380/933 4726/4384/937 4727/4385/938 -f 4692/4349/903 4728/4386/939 4729/4387/940 -f 4700/4357/911 4726/4388/937 4695/4352/906 -f 4702/4359/913 4728/4389/939 4698/4355/909 -f 4700/4357/911 4730/4390/941 4731/4391/942 -f 4702/4359/913 4732/4392/943 4733/4393/944 -f 4708/4366/919 4730/4394/941 4704/4361/915 -f 4710/4368/921 4732/4395/943 4706/4364/917 -f 4708/4366/919 4734/4396/945 4735/4397/946 -f 4714/4372/925 4736/4398/947 4710/4368/921 -f 4716/4374/927 4734/4399/945 4712/4370/923 -f 4720/4378/931 4737/4400/948 4714/4372/925 -f 4715/4373/926 4738/4401/949 4716/4374/927 -f 4722/4380/933 4723/4402/934 4718/4376/929 -f 4727/4385/938 4726/4384/937 4739/4403/950 -f 4726/4388/937 4731/4404/942 4739/4405/950 -f 4731/4391/942 4730/4390/941 4739/4406/950 -f 4730/4394/941 4735/4407/946 4739/4408/950 -f 4735/4397/946 4734/4396/945 4739/4409/950 -f 4734/4399/945 4738/4410/949 4739/4411/950 -f 4738/4401/949 4725/4412/936 4739/4413/950 -f 4725/4383/936 4729/4414/940 4739/4415/950 -f 4729/4387/940 4728/4386/939 4739/4416/950 -f 4728/4389/939 4733/4417/944 4739/4418/950 -f 4733/4393/944 4732/4392/943 4739/4419/950 -f 4732/4395/943 4736/4420/947 4739/4421/950 -f 4736/4398/947 4737/4422/948 4739/4423/950 -f 4737/4400/948 4724/4424/935 4739/4425/950 -f 4724/4382/935 4723/4381/934 4739/4426/950 -f 4723/4402/934 4727/4427/938 4739/4428/950 -f 4693/4350/904 4636/4429/951 4691/4348/902 -f 4694/4351/905 4677/4430/952 4689/4431/953 -f 4697/4354/908 4636/4432/951 4683/4433/954 -f 4699/4356/910 4689/4434/953 4688/4435/955 -f 4701/4358/912 4683/4436/954 4682/4437/956 -f 4703/4360/914 4688/4438/955 4687/4439/957 -f 4701/4358/912 4681/4440/958 4705/4363/916 -f 4703/4360/914 4637/4441/959 4707/4365/918 -f 4705/4363/916 4635/4442/960 4709/4367/920 -f 4707/4365/918 4686/4443/961 4711/4369/922 -f 4713/4371/924 4635/4444/960 4680/4445/962 -f 4711/4369/922 4685/4446/963 4721/4379/932 -f 4719/4377/930 4678/4447/964 4717/4375/928 -f 4713/4371/924 4679/4448/965 4719/4377/930 -f 4693/4350/904 4685/4449/963 4684/4450/966 -f 4696/4353/907 4678/4451/964 4677/4452/952 -f 4691/4348/902 4698/4355/909 4692/4349/903 -f 4694/4351/905 4700/4357/911 4695/4352/906 -f 4697/4354/908 4702/4359/913 4698/4355/909 -f 4699/4356/910 4704/4453/915 4700/4357/911 -f 4701/4358/912 4706/4364/917 4702/4359/913 -f 4703/4360/914 4708/4366/919 4704/4361/915 -f 4705/4363/916 4710/4368/921 4706/4364/917 -f 4707/4365/918 4712/4370/923 4708/4366/919 -f 4709/4367/920 4714/4372/925 4710/4368/921 -f 4711/4369/922 4716/4374/927 4712/4370/923 -f 4713/4371/924 4720/4378/931 4714/4372/925 -f 4711/4369/922 4721/4379/932 4715/4373/926 -f 4717/4375/928 4722/4380/933 4718/4376/929 -f 4719/4377/930 4718/4376/929 4720/4378/931 -f 4693/4350/904 4692/4349/903 4715/4373/926 -f 4696/4353/907 4695/4352/906 4722/4380/933 -f 4720/4378/931 4718/4376/929 4723/4381/934 -f 4692/4349/903 4729/4414/940 4725/4383/936 -f 4722/4380/933 4695/4352/906 4726/4384/937 -f 4692/4349/903 4698/4355/909 4728/4386/939 -f 4700/4357/911 4731/4404/942 4726/4388/937 -f 4702/4359/913 4733/4417/944 4728/4389/939 -f 4700/4357/911 4704/4453/915 4730/4390/941 -f 4702/4359/913 4706/4364/917 4732/4392/943 -f 4708/4366/919 4735/4407/946 4730/4394/941 -f 4710/4368/921 4736/4420/947 4732/4395/943 -f 4708/4366/919 4712/4370/923 4734/4396/945 -f 4714/4372/925 4737/4422/948 4736/4398/947 -f 4716/4374/927 4738/4410/949 4734/4399/945 -f 4720/4378/931 4724/4424/935 4737/4400/948 -f 4715/4373/926 4725/4412/936 4738/4401/949 -f 4722/4380/933 4727/4427/938 4723/4402/934 -f 4693/4350/904 4684/4454/966 4636/4429/951 -f 4694/4351/905 4696/4353/907 4677/4430/952 -f 4697/4354/908 4691/4348/902 4636/4432/951 -f 4699/4356/910 4694/4351/905 4689/4434/953 -f 4701/4358/912 4697/4354/908 4683/4436/954 -f 4703/4360/914 4699/4362/910 4688/4438/955 -f 4701/4358/912 4682/4455/956 4681/4440/958 -f 4703/4360/914 4687/4456/957 4637/4441/959 -f 4705/4363/916 4681/4457/958 4635/4442/960 -f 4707/4365/918 4637/4458/959 4686/4443/961 -f 4713/4371/924 4709/4367/920 4635/4444/960 -f 4711/4369/922 4686/4459/961 4685/4446/963 -f 4719/4377/930 4679/4460/965 4678/4447/964 -f 4713/4371/924 4680/4461/962 4679/4448/965 -f 4693/4350/904 4721/4379/932 4685/4449/963 -f 4696/4353/907 4717/4375/928 4678/4451/964 +f 5153/7553/904 5154/7554/905 5155/7555/906 +f 5156/7556/907 5157/7557/908 5158/7558/909 +f 5159/7559/910 5160/7560/911 5153/7553/904 +f 5161/7561/912 5162/7562/913 5156/7556/907 +f 5163/7563/914 5164/7564/915 5159/7559/910 +f 5165/7565/916 5166/7566/917 5161/7567/912 +f 5167/7568/918 5168/7569/919 5163/7563/914 +f 5169/7570/920 5170/7571/921 5165/7565/916 +f 5171/7572/922 5172/7573/923 5167/7568/918 +f 5173/7574/924 5174/7575/925 5169/7570/920 +f 5175/7576/926 5176/7577/927 5171/7572/922 +f 5173/7574/924 5177/7578/928 5178/7579/929 +f 5179/7580/930 5180/7581/931 5181/7582/932 +f 5181/7582/932 5182/7583/933 5175/7576/926 +f 5155/7555/906 5177/7578/928 5183/7584/934 +f 5158/7558/909 5184/7585/935 5179/7580/930 +f 5182/7583/933 5185/7586/936 5186/7587/937 +f 5154/7554/905 5187/7588/938 5177/7578/928 +f 5184/7585/935 5188/7589/939 5189/7590/940 +f 5154/7554/905 5190/7591/941 5191/7592/942 +f 5162/7562/913 5188/7593/939 5157/7557/908 +f 5164/7564/915 5190/7594/941 5160/7560/911 +f 5162/7562/913 5192/7595/943 5193/7596/944 +f 5164/7564/915 5194/7597/945 5195/7598/946 +f 5170/7571/921 5192/7599/943 5166/7566/917 +f 5172/7573/923 5194/7600/945 5168/7569/919 +f 5170/7571/921 5196/7601/947 5197/7602/948 +f 5176/7577/927 5198/7603/949 5172/7573/923 +f 5178/7579/929 5196/7604/947 5174/7575/925 +f 5182/7583/933 5199/7605/950 5176/7577/927 +f 5177/7578/928 5200/7606/951 5178/7579/929 +f 5184/7585/935 5185/7607/936 5180/7581/931 +f 5189/7590/940 5188/7589/939 5201/7608/952 +f 5188/7593/939 5193/7609/944 5201/7610/952 +f 5193/7596/944 5192/7595/943 5201/7611/952 +f 5192/7599/943 5197/7612/948 5201/7613/952 +f 5197/7602/948 5196/7601/947 5201/7614/952 +f 5196/7604/947 5200/7615/951 5201/7616/952 +f 5200/7606/951 5187/7617/938 5201/7618/952 +f 5187/7588/938 5191/7619/942 5201/7620/952 +f 5191/7592/942 5190/7591/941 5201/7621/952 +f 5190/7594/941 5195/7622/946 5201/7623/952 +f 5195/7598/946 5194/7597/945 5201/7624/952 +f 5194/7600/945 5198/7625/949 5201/7626/952 +f 5198/7603/949 5199/7627/950 5201/7628/952 +f 5199/7605/950 5186/7629/937 5201/7630/952 +f 5186/7587/937 5185/7586/936 5201/7631/952 +f 5185/7607/936 5189/7632/940 5201/7633/952 +f 5155/7555/906 5098/7634/953 5153/7553/904 +f 5156/7556/907 5139/7635/954 5151/7636/955 +f 5159/7559/910 5098/7637/953 5145/7638/956 +f 5161/7561/912 5151/7639/955 5150/7640/957 +f 5163/7563/914 5145/7641/956 5144/7642/958 +f 5165/7565/916 5150/7643/957 5149/7644/959 +f 5163/7563/914 5143/7645/960 5167/7568/918 +f 5165/7565/916 5099/7646/961 5169/7570/920 +f 5167/7568/918 5097/7647/962 5171/7572/922 +f 5169/7570/920 5148/7648/963 5173/7574/924 +f 5175/7576/926 5097/7649/962 5142/7650/964 +f 5173/7574/924 5147/7651/965 5183/7584/934 +f 5181/7582/932 5140/7652/966 5179/7580/930 +f 5175/7576/926 5141/7653/967 5181/7582/932 +f 5155/7555/906 5147/7654/965 5146/7655/968 +f 5158/7558/909 5140/7656/966 5139/7657/954 +f 5153/7553/904 5160/7560/911 5154/7554/905 +f 5156/7556/907 5162/7562/913 5157/7557/908 +f 5159/7559/910 5164/7564/915 5160/7560/911 +f 5161/7561/912 5166/7658/917 5162/7562/913 +f 5163/7563/914 5168/7569/919 5164/7564/915 +f 5165/7565/916 5170/7571/921 5166/7566/917 +f 5167/7568/918 5172/7573/923 5168/7569/919 +f 5169/7570/920 5174/7575/925 5170/7571/921 +f 5171/7572/922 5176/7577/927 5172/7573/923 +f 5173/7574/924 5178/7579/929 5174/7575/925 +f 5175/7576/926 5182/7583/933 5176/7577/927 +f 5173/7574/924 5183/7584/934 5177/7578/928 +f 5179/7580/930 5184/7585/935 5180/7581/931 +f 5181/7582/932 5180/7581/931 5182/7583/933 +f 5155/7555/906 5154/7554/905 5177/7578/928 +f 5158/7558/909 5157/7557/908 5184/7585/935 +f 5182/7583/933 5180/7581/931 5185/7586/936 +f 5154/7554/905 5191/7619/942 5187/7588/938 +f 5184/7585/935 5157/7557/908 5188/7589/939 +f 5154/7554/905 5160/7560/911 5190/7591/941 +f 5162/7562/913 5193/7609/944 5188/7593/939 +f 5164/7564/915 5195/7622/946 5190/7594/941 +f 5162/7562/913 5166/7658/917 5192/7595/943 +f 5164/7564/915 5168/7569/919 5194/7597/945 +f 5170/7571/921 5197/7612/948 5192/7599/943 +f 5172/7573/923 5198/7625/949 5194/7600/945 +f 5170/7571/921 5174/7575/925 5196/7601/947 +f 5176/7577/927 5199/7627/950 5198/7603/949 +f 5178/7579/929 5200/7615/951 5196/7604/947 +f 5182/7583/933 5186/7629/937 5199/7605/950 +f 5177/7578/928 5187/7617/938 5200/7606/951 +f 5184/7585/935 5189/7632/940 5185/7607/936 +f 5155/7555/906 5146/7659/968 5098/7634/953 +f 5156/7556/907 5158/7558/909 5139/7635/954 +f 5159/7559/910 5153/7553/904 5098/7637/953 +f 5161/7561/912 5156/7556/907 5151/7639/955 +f 5163/7563/914 5159/7559/910 5145/7641/956 +f 5165/7565/916 5161/7567/912 5150/7643/957 +f 5163/7563/914 5144/7660/958 5143/7645/960 +f 5165/7565/916 5149/7661/959 5099/7646/961 +f 5167/7568/918 5143/7662/960 5097/7647/962 +f 5169/7570/920 5099/7663/961 5148/7648/963 +f 5175/7576/926 5171/7572/922 5097/7649/962 +f 5173/7574/924 5148/7664/963 5147/7651/965 +f 5181/7582/932 5141/7665/967 5140/7652/966 +f 5175/7576/926 5142/7666/964 5141/7653/967 +f 5155/7555/906 5183/7584/934 5147/7654/965 +f 5158/7558/909 5179/7580/930 5140/7656/966 o Atlas_Missile v -1.154849 5.312499 -0.478354 v -0.795495 5.312499 -0.795495 @@ -17658,483 +21501,483 @@ vn 0.4867 0.2290 -0.8430 vn -0.9549 0.1504 -0.2559 vn -0.4867 0.2290 0.8430 s off -f 4740/4462/967 4741/4463/967 4742/4464/967 -f 4743/4465/967 4744/4466/967 4745/4467/967 -f 4746/4468/967 4747/4469/967 4740/4462/967 -f 4748/4470/968 4749/4471/968 4750/4472/968 -f 4751/4473/967 4752/4474/967 4753/4475/967 -f 4754/4476/967 4744/4466/967 4755/4477/967 -f 4755/4477/967 4756/4478/967 4754/4476/967 -f 4757/4479/967 4756/4478/967 4758/4480/967 -f 4759/4481/967 4760/4482/967 4757/4479/967 -f 4759/4481/967 4761/4483/967 4762/4484/967 -f 4763/4485/967 4761/4483/967 4764/4486/967 -f 4765/4487/967 4766/4488/967 4767/4489/967 -f 4768/4490/967 4767/4489/967 4766/4488/967 -f 4768/4490/967 4769/4491/967 4770/4492/967 -f 4771/4493/967 4769/4491/967 4772/4494/967 -f 4773/4495/967 4741/4463/967 4774/4496/967 -f 4774/4496/967 4775/4497/967 4773/4495/967 -f 4771/4493/967 4776/4498/967 4777/4499/967 -f 4778/4500/969 4779/4501/969 4780/4502/969 -f 4781/4503/969 4782/4504/969 4783/4505/969 -f 4782/4504/969 4784/4506/969 4783/4505/969 -f 4783/4505/969 4785/4507/969 4786/4508/969 -f 4787/4509/969 4785/4507/969 4784/4506/969 -f 4788/4510/969 4784/4506/969 4789/4511/969 -f 4783/4505/969 4784/4506/969 4785/4507/969 -f 4790/4512/969 4791/4513/969 4792/4514/969 -f 4793/4515/969 4794/4516/969 4795/4517/969 -f 4796/4518/969 4797/4519/969 4798/4520/969 -f 4799/4521/969 4800/4522/969 4801/4523/969 -f 4801/4523/969 4795/4517/969 4794/4516/969 -f 4792/4514/969 4798/4520/969 4800/4522/969 -f 4801/4523/969 4798/4520/969 4797/4519/969 -f 4802/4524/969 4803/4525/969 4804/4526/969 -f 4805/4527/969 4806/4528/969 4807/4529/969 -f 4808/4530/969 4809/4531/969 4810/4532/969 -f 4811/4533/969 4812/4534/969 4813/4535/969 -f 4813/4535/969 4807/4529/969 4806/4528/969 -f 4804/4526/969 4810/4532/969 4812/4534/969 -f 4813/4535/969 4810/4532/969 4809/4531/969 -f 4814/4536/969 4780/4502/969 4815/4537/969 -f 4816/4538/969 4817/4539/969 4818/4540/969 -f 4819/4541/969 4789/4511/969 4817/4539/969 -f 4820/4542/969 4815/4537/969 4782/4504/969 -f 4815/4537/969 4789/4511/969 4782/4504/969 -f 4818/4540/969 4815/4537/969 4780/4502/969 -f 4752/4474/970 4821/4543/970 4822/4544/970 -f 4823/4545/971 4824/4546/971 4825/4547/971 -f 4826/4548/969 4827/4549/969 4828/4550/969 -f 4827/4549/969 4829/4551/969 4828/4550/969 -f 4828/4550/969 4830/4552/969 4831/4553/969 -f 4832/4554/969 4830/4552/969 4829/4551/969 -f 4833/4555/969 4829/4551/969 4779/4501/969 -f 4828/4550/969 4829/4551/969 4830/4552/969 -f 4834/4556/969 4835/4557/969 4836/4558/969 -f 4837/4559/969 4838/4560/969 4839/4561/969 -f 4840/4562/969 4841/4563/969 4842/4564/969 -f 4843/4565/969 4844/4566/969 4845/4567/969 -f 4838/4560/969 4841/4563/969 4839/4561/969 -f 4836/4558/969 4842/4564/969 4844/4566/969 -f 4845/4567/969 4842/4564/969 4841/4563/969 -f 4846/4568/969 4818/4540/969 4827/4549/969 -f 4827/4549/969 4780/4502/969 4779/4501/969 -f 4740/4462/967 4747/4469/967 4741/4463/967 -f 4743/4465/967 4746/4468/967 4744/4466/967 -f 4746/4468/967 4743/4465/967 4747/4469/967 -f 4754/4476/967 4745/4467/967 4744/4466/967 -f 4755/4477/967 4758/4480/967 4756/4478/967 -f 4757/4479/967 4760/4482/967 4756/4478/967 -f 4759/4481/967 4762/4484/967 4760/4482/967 -f 4759/4481/967 4764/4486/967 4761/4483/967 -f 4763/4485/967 4765/4487/967 4761/4483/967 -f 4765/4487/967 4763/4485/967 4766/4488/967 -f 4768/4490/967 4770/4492/967 4767/4489/967 -f 4768/4490/967 4772/4494/967 4769/4491/967 -f 4771/4493/967 4777/4499/967 4769/4491/967 -f 4773/4495/967 4742/4464/967 4741/4463/967 -f 4774/4496/967 4776/4569/967 4775/4497/967 -f 4771/4493/967 4775/4570/967 4776/4498/967 -f 4782/4504/969 4789/4511/969 4784/4506/969 -f 4801/4523/969 4797/4519/969 4795/4517/969 -f 4792/4514/969 4791/4513/969 4798/4520/969 -f 4801/4523/969 4800/4522/969 4798/4520/969 -f 4813/4535/969 4809/4531/969 4807/4529/969 -f 4804/4526/969 4803/4525/969 4810/4532/969 -f 4813/4535/969 4812/4534/969 4810/4532/969 -f 4815/4537/969 4817/4539/969 4789/4511/969 -f 4818/4540/969 4817/4539/969 4815/4537/969 -f 4752/4474/970 4751/4473/970 4821/4543/970 -f 4827/4549/969 4779/4501/969 4829/4551/969 -f 4838/4560/969 4845/4567/969 4841/4563/969 -f 4836/4558/969 4835/4557/969 4842/4564/969 -f 4845/4567/969 4844/4566/969 4842/4564/969 -f 4827/4549/969 4818/4540/969 4780/4502/969 +f 5202/7667/969 5203/7668/969 5204/7669/969 +f 5205/7670/969 5206/7671/969 5207/7672/969 +f 5208/7673/969 5209/7674/969 5202/7667/969 +f 5210/7675/970 5211/7676/970 5212/7677/970 +f 5213/7678/969 5214/7679/969 5215/7680/969 +f 5216/7681/969 5206/7671/969 5217/7682/969 +f 5217/7682/969 5218/7683/969 5216/7681/969 +f 5219/7684/969 5218/7683/969 5220/7685/969 +f 5221/7686/969 5222/7687/969 5219/7684/969 +f 5221/7686/969 5223/7688/969 5224/7689/969 +f 5225/7690/969 5223/7688/969 5226/7691/969 +f 5227/7692/969 5228/7693/969 5229/7694/969 +f 5230/7695/969 5229/7694/969 5228/7693/969 +f 5230/7695/969 5231/7696/969 5232/7697/969 +f 5233/7698/969 5231/7696/969 5234/7699/969 +f 5235/7700/969 5203/7668/969 5236/7701/969 +f 5236/7701/969 5237/7702/969 5235/7700/969 +f 5233/7698/969 5238/7703/969 5239/7704/969 +f 5240/7705/971 5241/7706/971 5242/7707/971 +f 5243/7708/971 5244/7709/971 5245/7710/971 +f 5244/7709/971 5246/7711/971 5245/7710/971 +f 5245/7710/971 5247/7712/971 5248/7713/971 +f 5249/7714/971 5247/7712/971 5246/7711/971 +f 5250/7715/971 5246/7711/971 5251/7716/971 +f 5245/7710/971 5246/7711/971 5247/7712/971 +f 5252/7717/971 5253/7718/971 5254/7719/971 +f 5255/7720/971 5256/7721/971 5257/7722/971 +f 5258/7723/971 5259/7724/971 5260/7725/971 +f 5261/7726/971 5262/7727/971 5263/7728/971 +f 5263/7728/971 5257/7722/971 5256/7721/971 +f 5254/7719/971 5260/7725/971 5262/7727/971 +f 5263/7728/971 5260/7725/971 5259/7724/971 +f 5264/7729/971 5265/7730/971 5266/7731/971 +f 5267/7732/971 5268/7733/971 5269/7734/971 +f 5270/7735/971 5271/7736/971 5272/7737/971 +f 5273/7738/971 5274/7739/971 5275/7740/971 +f 5275/7740/971 5269/7734/971 5268/7733/971 +f 5266/7731/971 5272/7737/971 5274/7739/971 +f 5275/7740/971 5272/7737/971 5271/7736/971 +f 5276/7741/971 5242/7707/971 5277/7742/971 +f 5278/7743/971 5279/7744/971 5280/7745/971 +f 5281/7746/971 5251/7716/971 5279/7744/971 +f 5282/7747/971 5277/7742/971 5244/7709/971 +f 5277/7742/971 5251/7716/971 5244/7709/971 +f 5280/7745/971 5277/7742/971 5242/7707/971 +f 5214/7679/972 5283/7748/972 5284/7749/972 +f 5285/7750/973 5286/7751/973 5287/7752/973 +f 5288/7753/971 5289/7754/971 5290/7755/971 +f 5289/7754/971 5291/7756/971 5290/7755/971 +f 5290/7755/971 5292/7757/971 5293/7758/971 +f 5294/7759/971 5292/7757/971 5291/7756/971 +f 5295/7760/971 5291/7756/971 5241/7706/971 +f 5290/7755/971 5291/7756/971 5292/7757/971 +f 5296/7761/971 5297/7762/971 5298/7763/971 +f 5299/7764/971 5300/7765/971 5301/7766/971 +f 5302/7767/971 5303/7768/971 5304/7769/971 +f 5305/7770/971 5306/7771/971 5307/7772/971 +f 5300/7765/971 5303/7768/971 5301/7766/971 +f 5298/7763/971 5304/7769/971 5306/7771/971 +f 5307/7772/971 5304/7769/971 5303/7768/971 +f 5308/7773/971 5280/7745/971 5289/7754/971 +f 5289/7754/971 5242/7707/971 5241/7706/971 +f 5202/7667/969 5209/7674/969 5203/7668/969 +f 5205/7670/969 5208/7673/969 5206/7671/969 +f 5208/7673/969 5205/7670/969 5209/7674/969 +f 5216/7681/969 5207/7672/969 5206/7671/969 +f 5217/7682/969 5220/7685/969 5218/7683/969 +f 5219/7684/969 5222/7687/969 5218/7683/969 +f 5221/7686/969 5224/7689/969 5222/7687/969 +f 5221/7686/969 5226/7691/969 5223/7688/969 +f 5225/7690/969 5227/7692/969 5223/7688/969 +f 5227/7692/969 5225/7690/969 5228/7693/969 +f 5230/7695/969 5232/7697/969 5229/7694/969 +f 5230/7695/969 5234/7699/969 5231/7696/969 +f 5233/7698/969 5239/7704/969 5231/7696/969 +f 5235/7700/969 5204/7669/969 5203/7668/969 +f 5236/7701/969 5238/7774/969 5237/7702/969 +f 5233/7698/969 5237/7775/969 5238/7703/969 +f 5244/7709/971 5251/7716/971 5246/7711/971 +f 5263/7728/971 5259/7724/971 5257/7722/971 +f 5254/7719/971 5253/7718/971 5260/7725/971 +f 5263/7728/971 5262/7727/971 5260/7725/971 +f 5275/7740/971 5271/7736/971 5269/7734/971 +f 5266/7731/971 5265/7730/971 5272/7737/971 +f 5275/7740/971 5274/7739/971 5272/7737/971 +f 5277/7742/971 5279/7744/971 5251/7716/971 +f 5280/7745/971 5279/7744/971 5277/7742/971 +f 5214/7679/972 5213/7678/972 5283/7748/972 +f 5289/7754/971 5241/7706/971 5291/7756/971 +f 5300/7765/971 5307/7772/971 5303/7768/971 +f 5298/7763/971 5297/7762/971 5304/7769/971 +f 5307/7772/971 5306/7771/971 5304/7769/971 +f 5289/7754/971 5280/7745/971 5242/7707/971 s 1 -f 4847/4571/972 4789/4572/973 4819/4573/974 -f 4848/4574/975 4774/4496/976 4849/4575/976 -f 4767/4489/977 4850/4576/978 4765/4487/978 -f 4745/4467/979 4851/4577/980 4743/4465/980 -f 4770/4492/981 4852/4578/977 4767/4489/977 -f 4754/4476/982 4853/4579/979 4745/4467/979 -f 4769/4491/983 4854/4580/981 4770/4492/981 -f 4756/4478/984 4855/4581/982 4754/4476/982 -f 4777/4499/985 4856/4582/983 4769/4491/983 -f 4760/4482/986 4857/4583/984 4756/4478/984 -f 4858/4584/985 4776/4498/975 4848/4585/975 -f 4762/4484/987 4859/4586/986 4760/4482/986 -f 4741/4463/974 4849/4575/976 4774/4496/976 -f 4761/4483/988 4860/4587/987 4762/4484/987 -f 4747/4469/989 4861/4588/974 4741/4463/974 -f 4765/4487/978 4862/4589/988 4761/4483/988 -f 4743/4465/980 4863/4590/989 4747/4469/989 -f 4854/4580/990 4864/4591/991 4852/4578/992 -f 4856/4582/993 4865/4592/994 4854/4580/990 -f 4858/4584/995 4866/4593/996 4856/4582/993 -f 4848/4585/997 4867/4594/998 4858/4584/995 -f 4849/4575/999 4868/4595/1000 4848/4574/997 -f 4861/4588/1001 4869/4596/1002 4849/4575/999 -f 4863/4590/1003 4870/4597/1004 4861/4588/1001 -f 4851/4577/1005 4871/4598/1006 4863/4590/1003 -f 4851/4577/1005 4872/4599/1007 4873/4600/1008 -f 4855/4581/1009 4872/4601/1007 4853/4579/1010 -f 4855/4581/1009 4874/4602/1011 4875/4603/1012 -f 4859/4586/1013 4874/4604/1011 4857/4583/1014 -f 4860/4587/1015 4876/4605/1016 4859/4586/1013 -f 4862/4589/1017 4877/4606/1018 4860/4587/1015 -f 4850/4576/1019 4878/4607/1020 4862/4589/1017 -f 4852/4578/992 4879/4608/1021 4850/4576/1019 -f 4865/4592/994 4866/4609/996 4880/4610/967 -f 4875/4603/1012 4874/4602/1011 4880/4611/967 -f 4866/4593/996 4867/4612/998 4880/4613/967 -f 4874/4604/1011 4876/4614/1016 4880/4615/967 -f 4868/4595/1000 4869/4616/1002 4880/4617/967 -f 4867/4594/998 4868/4618/1000 4880/4619/967 -f 4876/4605/1016 4877/4620/1018 4880/4621/967 -f 4869/4596/1002 4870/4622/1004 4880/4623/967 -f 4877/4606/1018 4878/4624/1020 4880/4625/967 -f 4870/4597/1004 4871/4626/1006 4880/4627/967 -f 4878/4607/1020 4879/4628/1021 4880/4629/967 -f 4871/4598/1006 4873/4630/1008 4880/4631/967 -f 4879/4608/1021 4864/4632/991 4880/4633/967 -f 4873/4600/1008 4872/4599/1007 4880/4634/967 -f 4864/4591/991 4865/4635/994 4880/4636/967 -f 4872/4601/1007 4875/4637/1012 4880/4638/967 -f 4786/4639/1022 4881/4640/1023 4882/4641/1024 -f 4785/4642/1025 4883/4643/1026 4881/4644/1023 -f 4787/4645/1027 4884/4646/1028 4883/4647/1026 -f 4784/4648/1029 4885/4649/1030 4884/4650/1028 -f 4847/4651/1031 4788/4652/1032 4789/4653/1033 -f 4783/4654/1034 4882/4655/1024 4886/4656/1035 -f 4781/4657/1036 4886/4658/1035 4887/4659/1037 -f 4888/4660/1038 4781/4657/1036 4887/4661/1037 -f 4888/4660/1038 4889/4662/1039 4890/4663/1040 -f 4886/4658/1035 4889/4664/1039 4887/4659/1037 -f 4882/4655/1024 4891/4665/1041 4886/4656/1035 -f 4883/4643/1026 4753/4666/1042 4881/4644/1023 -f 4753/4667/1042 4882/4641/1024 4881/4640/1023 -f 4884/4646/1028 4751/4668/1043 4883/4647/1026 -f 4885/4649/1030 4892/4669/1044 4884/4650/1028 -f 4893/4670/1045 4847/4651/1031 4894/4671/1046 -f 4895/4672/982 4896/4673/1047 4894/4674/1048 -f 4894/4674/1048 4897/4675/1049 4893/4676/980 -f 4890/4677/1050 4750/4472/988 4898/4678/988 -f 4752/4679/985 4899/4680/1051 4891/4681/1052 -f 4891/4681/1052 4900/4682/1053 4889/4683/977 -f 4889/4683/977 4748/4470/1054 4890/4677/1055 -f 4893/4676/980 4901/4684/1056 4892/4685/1057 -f 4892/4685/1057 4902/4686/1058 4751/4687/976 -f 4748/4470/1054 4900/4682/1053 4749/4688/1059 -f 4900/4682/1053 4899/4680/1051 4749/4689/1059 -f 4899/4680/1051 4903/4690/1060 4749/4691/1059 -f 4902/4686/1058 4901/4684/1056 4749/4692/1059 -f 4901/4684/1056 4897/4675/1049 4749/4693/1059 -f 4897/4675/1049 4896/4673/1047 4749/4694/1059 -f 4896/4673/1047 4904/4695/1061 4749/4696/1059 -f 4888/4697/1062 4820/4698/983 4782/4699/1063 -f 4772/4700/983 4888/4697/1062 4771/4701/985 -f 4771/4701/985 4888/4697/1062 4775/4702/1064 -f 4775/4497/1065 4847/4571/972 4773/4703/976 -f 4742/4704/974 4847/4571/972 4819/4573/974 -f 4817/4705/989 4742/4704/974 4819/4573/974 -f 4816/4706/980 4740/4707/989 4817/4705/989 -f 4818/4708/979 4746/4709/980 4816/4706/980 -f 4846/4710/982 4744/4711/979 4818/4708/979 -f 4759/4712/987 4757/4713/1066 4905/4714/1067 -f 4905/4714/1067 4764/4715/988 4759/4712/987 -f 4905/4714/1067 4779/4716/1068 4778/4717/988 -f 4780/4718/978 4764/4715/988 4778/4717/988 -f 4814/4719/977 4763/4720/978 4780/4718/978 -f 4815/4721/981 4766/4722/977 4814/4719/977 -f 4820/4698/983 4768/4723/981 4815/4721/981 -f 4906/4724/1069 4791/4725/1070 4907/4726/1070 -f 4797/4727/1071 4908/4728/1072 4909/4729/1071 -f 4793/4730/1073 4910/4731/1074 4911/4732/1073 -f 4795/4733/1074 4909/4729/1071 4910/4731/1074 -f 4796/4734/1072 4906/4724/1069 4908/4728/1072 -f 4912/4735/977 4810/4736/1052 4913/4737/1052 -f 4914/4738/986 4807/4739/1075 4915/4740/1075 -f 4916/4741/980 4813/4742/1048 4917/4743/1048 -f 4913/4737/1052 4803/4744/1076 4918/4745/1076 -f 4919/4746/975 4804/4747/1077 4920/4748/1077 -f 4915/4740/1075 4809/4749/1050 4921/4750/1050 -f 4917/4743/1048 4806/4751/1078 4922/4752/1078 -f 4918/4745/1076 4802/4753/975 4919/4754/975 -f 4920/4748/1077 4812/4755/1057 4923/4756/1057 -f 4921/4750/1050 4808/4757/977 4912/4735/977 -f 4922/4752/1078 4805/4758/986 4914/4738/986 -f 4923/4756/1057 4811/4759/980 4916/4741/980 -f 4912/4735/1079 4924/4760/1080 4925/4761/1079 -f 4913/4737/1080 4926/4762/1081 4924/4760/1080 -f 4918/4745/1081 4927/4763/1082 4926/4762/1081 -f 4919/4746/1082 4928/4764/1083 4927/4765/1082 -f 4920/4748/1083 4929/4766/1084 4928/4764/1083 -f 4923/4756/1084 4930/4767/1085 4929/4766/1084 -f 4916/4741/1085 4931/4768/1086 4930/4767/1085 -f 4917/4743/1086 4932/4769/1087 4931/4768/1086 -f 4922/4752/1087 4933/4770/1088 4932/4769/1087 -f 4933/4770/1088 4915/4740/1089 4934/4771/1089 -f 4915/4740/1089 4935/4772/1090 4934/4771/1089 -f 4921/4750/1090 4925/4761/1079 4935/4772/1090 -f 4791/4725/1070 4936/4773/1091 4907/4726/1070 -f 4790/4774/1091 4937/4775/1092 4936/4776/1091 -f 4792/4777/1092 4938/4778/1093 4937/4775/1092 -f 4800/4779/1093 4939/4780/1094 4938/4778/1093 -f 4799/4781/1094 4940/4782/1095 4939/4780/1094 -f 4801/4783/1095 4941/4784/1096 4940/4782/1095 -f 4794/4785/1096 4911/4732/1073 4941/4784/1096 -f 4822/4544/1097 4942/4786/1098 4752/4787/1099 -f 4821/4543/1100 4751/4788/1101 4943/4789/1102 -f 4942/4790/1098 4821/4543/1100 4943/4791/1102 -f 4749/4792/1059 4903/4690/1060 4902/4686/1058 -f 4903/4690/1060 4751/4687/976 4902/4686/1058 -f 4831/4793/1103 4944/4794/1104 4945/4795/1105 -f 4830/4796/1106 4946/4797/1107 4944/4798/1104 -f 4832/4799/1108 4947/4800/1109 4946/4801/1107 -f 4829/4802/1110 4948/4803/1111 4947/4804/1109 -f 4905/4805/1112 4833/4806/1113 4779/4807/1114 -f 4828/4808/1115 4945/4809/1105 4949/4810/1116 -f 4826/4811/1117 4949/4812/1116 4950/4813/1118 -f 4951/4814/1119 4826/4811/1117 4950/4815/1118 -f 4951/4814/1119 4952/4816/1120 4953/4817/1121 -f 4949/4812/1116 4952/4818/1120 4950/4813/1118 -f 4945/4809/1105 4954/4819/1122 4949/4810/1116 -f 4946/4797/1107 4955/4820/1123 4944/4798/1104 -f 4955/4821/1123 4945/4795/1105 4944/4794/1104 -f 4947/4800/1109 4956/4822/1124 4946/4801/1107 -f 4948/4803/1111 4957/4823/1125 4947/4804/1109 -f 4958/4824/1126 4905/4805/1112 4959/4825/1127 -f 4960/4826/1128 4961/4827/1129 4962/4828/1130 -f 4961/4827/1129 4963/4829/1131 4964/4830/1132 -f 4965/4831/1133 4966/4832/1134 4967/4833/1135 -f 4968/4834/1136 4960/4835/1137 4962/4836/1137 -f 4965/4831/1133 4969/4837/1138 4970/4838/1139 -f 4971/4839/1140 4970/4838/1139 4969/4837/1138 -f 4967/4833/1135 4963/4840/1131 4972/4841/1141 -f 4969/4837/1138 4965/4831/1133 4967/4833/1135 -f 4823/4545/1142 4973/4842/1143 4824/4843/1144 -f 4973/4842/1143 4974/4844/1145 4824/4845/1144 -f 4974/4844/1145 4975/4846/1146 4824/4847/1144 -f 4976/4848/1147 4977/4849/1148 4824/4850/1144 -f 4977/4849/1148 4978/4851/1149 4824/4852/1144 -f 4978/4851/1149 4979/4853/1150 4824/4854/1144 -f 4979/4853/1150 4980/4855/1151 4824/4856/1144 -f 4981/4857/1095 4835/4858/1096 4982/4859/1096 -f 4983/4860/1093 4840/4861/1094 4984/4862/1094 -f 4837/4863/1091 4985/4864/1092 4986/4865/1091 -f 4839/4866/1092 4983/4860/1093 4985/4864/1092 -f 4840/4861/1094 4981/4857/1095 4984/4862/1094 -f 4835/4858/1096 4987/4867/1073 4982/4859/1096 -f 4834/4868/1073 4988/4869/1074 4987/4867/1073 -f 4836/4870/1074 4989/4871/1071 4988/4869/1074 -f 4989/4871/1071 4843/4872/1072 4990/4873/1072 -f 4843/4872/1072 4991/4874/1069 4990/4873/1072 -f 4845/4875/1069 4992/4876/1070 4991/4874/1069 -f 4838/4877/1070 4986/4878/1091 4992/4876/1070 -f 4824/4879/1144 4975/4846/1146 4976/4848/1147 -f 4993/4880/1152 4964/4881/1132 4994/4882/1153 -f 4951/4883/1154 4757/4713/1155 4758/4884/984 -f 4755/4885/982 4951/4883/1154 4758/4884/984 -f 4951/4883/1154 4846/4710/982 4827/4886/1156 -f 4993/4880/1152 4995/4887/980 4968/4888/1157 -f 4962/4828/1130 4993/4880/1152 4968/4888/1157 -f 4996/4889/977 4967/4833/1135 4997/4890/1158 -f 4967/4833/1135 4960/4826/1128 4997/4890/1158 -f 4998/4891/1159 4993/4880/1152 4994/4892/1153 -f 4998/4891/1159 4999/4893/1160 4993/4880/1152 -f 4998/4891/1159 5000/4894/1161 4999/4893/1160 -f 5001/4895/1162 4999/4893/1160 5000/4894/1161 -f 4970/4896/1052 4980/4855/1151 4979/4853/1150 -f 4965/4897/977 4979/4853/1150 4978/4851/1149 -f 4966/4898/1050 4978/4851/1149 4977/4849/1148 -f 4975/4846/1146 4963/4899/987 4976/4848/1147 -f 4998/4900/980 4974/4844/1145 4973/4842/1143 -f 5000/4901/1057 4973/4842/1143 4823/4545/1142 -f 5001/4902/974 4823/4545/1142 4825/4547/974 -f 4996/4903/969 4968/4834/1136 4995/4904/969 -f 4963/4899/987 4977/4849/1148 4976/4848/1147 -f 4994/4905/1048 4975/4846/1146 4974/4844/1145 -f 5002/4906/977 5003/4907/981 5004/4908/981 -f 5005/4909/1163 5006/4910/978 5007/4911/978 -f 5008/4912/980 5009/4913/979 5010/4914/979 -f 5011/4915/1164 5012/4916/989 5013/4917/989 -f 5004/4908/981 5014/4918/1165 5015/4919/1165 -f 5007/4911/978 5016/4920/977 5002/4906/977 -f 5010/4914/979 5017/4921/1166 5018/4922/1166 -f 5013/4917/989 5019/4923/980 5008/4912/980 -f 5020/4924/1167 5021/4925/1168 5022/4926/1168 -f 5023/4927/1169 5020/4924/1167 5024/4928/1169 -f 5025/4929/1170 5023/4927/1169 5024/4928/1169 -f 5026/4930/1171 5027/4931/1172 5028/4932/1172 -f 5029/4933/1173 5026/4930/1171 5030/4934/1173 -f 5031/4935/1174 5029/4933/1173 5030/4934/1173 -f 4848/4574/975 4776/4569/975 4774/4496/976 -f 4767/4489/977 4852/4578/977 4850/4576/978 -f 4745/4467/979 4853/4579/979 4851/4577/980 -f 4770/4492/981 4854/4580/981 4852/4578/977 -f 4754/4476/982 4855/4581/982 4853/4579/979 -f 4769/4491/983 4856/4582/983 4854/4580/981 -f 4756/4478/984 4857/4583/984 4855/4581/982 -f 4777/4499/985 4858/4584/985 4856/4582/983 -f 4760/4482/986 4859/4586/986 4857/4583/984 -f 4858/4584/985 4777/4499/985 4776/4498/975 -f 4762/4484/987 4860/4587/987 4859/4586/986 -f 4741/4463/974 4861/4588/974 4849/4575/976 -f 4761/4483/988 4862/4589/988 4860/4587/987 -f 4747/4469/989 4863/4590/989 4861/4588/974 -f 4765/4487/978 4850/4576/978 4862/4589/988 -f 4743/4465/980 4851/4577/980 4863/4590/989 -f 4854/4580/990 4865/4635/994 4864/4591/991 -f 4856/4582/993 4866/4609/996 4865/4592/994 -f 4858/4584/995 4867/4612/998 4866/4593/996 -f 4848/4585/997 4868/4618/1000 4867/4594/998 -f 4849/4575/999 4869/4616/1002 4868/4595/1000 -f 4861/4588/1001 4870/4622/1004 4869/4596/1002 -f 4863/4590/1003 4871/4626/1006 4870/4597/1004 -f 4851/4577/1005 4873/4630/1008 4871/4598/1006 -f 4851/4577/1005 4853/4579/1010 4872/4599/1007 -f 4855/4581/1009 4875/4637/1012 4872/4601/1007 -f 4855/4581/1009 4857/4583/1014 4874/4602/1011 -f 4859/4586/1013 4876/4614/1016 4874/4604/1011 -f 4860/4587/1015 4877/4620/1018 4876/4605/1016 -f 4862/4589/1017 4878/4624/1020 4877/4606/1018 -f 4850/4576/1019 4879/4628/1021 4878/4607/1020 -f 4852/4578/992 4864/4632/991 4879/4608/1021 -f 4786/4639/1022 4785/4642/1025 4881/4640/1023 -f 4785/4642/1025 4787/4645/1027 4883/4643/1026 -f 4787/4645/1027 4784/4648/1029 4884/4646/1028 -f 4784/4648/1029 4788/4652/1032 4885/4649/1030 -f 4847/4651/1031 4885/4936/1030 4788/4652/1032 -f 4783/4654/1034 4786/4639/1022 4882/4655/1024 -f 4781/4657/1036 4783/4654/1034 4886/4658/1035 -f 4888/4660/1038 4782/4937/1175 4781/4657/1036 -f 4888/4660/1038 4887/4661/1037 4889/4662/1039 -f 4886/4658/1035 4891/4938/1041 4889/4664/1039 -f 4882/4655/1024 4752/4939/1176 4891/4665/1041 -f 4883/4643/1026 4751/4940/1043 4753/4666/1042 -f 4753/4667/1042 4752/4941/1176 4882/4641/1024 -f 4884/4646/1028 4892/4942/1044 4751/4668/1043 -f 4885/4649/1030 4893/4943/1045 4892/4669/1044 -f 4893/4670/1045 4885/4936/1030 4847/4651/1031 -f 4895/4672/982 4904/4695/1061 4896/4673/1047 -f 4894/4674/1048 4896/4673/1047 4897/4675/1049 -f 4890/4677/1055 4748/4470/1054 4750/4472/988 -f 4752/4679/985 4903/4690/1060 4899/4680/1051 -f 4891/4681/1052 4899/4680/1051 4900/4682/1053 -f 4889/4683/977 4900/4682/1053 4748/4470/1054 -f 4893/4676/980 4897/4675/1049 4901/4684/1056 -f 4892/4685/1057 4901/4684/1056 4902/4686/1058 -f 4772/4700/983 4820/4698/983 4888/4697/1062 -f 4742/4704/974 4773/4703/976 4847/4571/972 -f 4817/4705/989 4740/4707/989 4742/4704/974 -f 4816/4706/980 4746/4709/980 4740/4707/989 -f 4818/4708/979 4744/4711/979 4746/4709/980 -f 4846/4710/982 4755/4885/982 4744/4711/979 -f 4905/4714/1067 4778/4717/988 4764/4715/988 -f 4780/4718/978 4763/4720/978 4764/4715/988 -f 4814/4719/977 4766/4722/977 4763/4720/978 -f 4815/4721/981 4768/4723/981 4766/4722/977 -f 4820/4698/983 4772/4700/983 4768/4723/981 -f 4906/4724/1069 4798/4944/1069 4791/4725/1070 -f 4797/4727/1071 4796/4734/1072 4908/4728/1072 -f 4793/4730/1073 4795/4733/1074 4910/4731/1074 -f 4795/4733/1074 4797/4727/1071 4909/4729/1071 -f 4796/4734/1072 4798/4944/1069 4906/4724/1069 -f 4912/4735/977 4808/4757/977 4810/4736/1052 -f 4914/4738/986 4805/4758/986 4807/4739/1075 -f 4916/4741/980 4811/4759/980 4813/4742/1048 -f 4913/4737/1052 4810/4736/1052 4803/4744/1076 -f 4919/4746/975 4802/4945/975 4804/4747/1077 -f 4915/4740/1075 4807/4739/1075 4809/4749/1050 -f 4917/4743/1048 4813/4742/1048 4806/4751/1078 -f 4918/4745/1076 4803/4744/1076 4802/4753/975 -f 4920/4748/1077 4804/4747/1077 4812/4755/1057 -f 4921/4750/1050 4809/4749/1050 4808/4757/977 -f 4922/4752/1078 4806/4751/1078 4805/4758/986 -f 4923/4756/1057 4812/4755/1057 4811/4759/980 -f 4912/4735/1079 4913/4737/1080 4924/4760/1080 -f 4913/4737/1080 4918/4745/1081 4926/4762/1081 -f 4918/4745/1081 4919/4754/1082 4927/4763/1082 -f 4919/4746/1082 4920/4748/1083 4928/4764/1083 -f 4920/4748/1083 4923/4756/1084 4929/4766/1084 -f 4923/4756/1084 4916/4741/1085 4930/4767/1085 -f 4916/4741/1085 4917/4743/1086 4931/4768/1086 -f 4917/4743/1086 4922/4752/1087 4932/4769/1087 -f 4922/4752/1087 4914/4738/1088 4933/4770/1088 -f 4933/4770/1088 4914/4738/1088 4915/4740/1089 -f 4915/4740/1089 4921/4750/1090 4935/4772/1090 -f 4921/4750/1090 4912/4735/1079 4925/4761/1079 -f 4791/4725/1070 4790/4946/1091 4936/4773/1091 -f 4790/4774/1091 4792/4777/1092 4937/4775/1092 -f 4792/4777/1092 4800/4779/1093 4938/4778/1093 -f 4800/4779/1093 4799/4781/1094 4939/4780/1094 -f 4799/4781/1094 4801/4783/1095 4940/4782/1095 -f 4801/4783/1095 4794/4785/1096 4941/4784/1096 -f 4794/4785/1096 4793/4730/1073 4911/4732/1073 -f 4942/4790/1098 4822/4544/1097 4821/4543/1100 -f 4903/4690/1060 4752/4679/985 4751/4687/976 -f 4831/4793/1103 4830/4796/1106 4944/4794/1104 -f 4830/4796/1106 4832/4799/1108 4946/4797/1107 -f 4832/4799/1108 4829/4802/1110 4947/4800/1109 -f 4829/4802/1110 4833/4806/1113 4948/4803/1111 -f 4905/4805/1112 4948/4947/1111 4833/4806/1113 -f 4828/4808/1115 4831/4793/1103 4945/4809/1105 -f 4826/4811/1117 4828/4808/1115 4949/4812/1116 -f 4951/4814/1119 4827/4948/1177 4826/4811/1117 -f 4951/4814/1119 4950/4815/1118 4952/4816/1120 -f 4949/4812/1116 4954/4949/1122 4952/4818/1120 -f 4945/4809/1105 5032/4950/1178 4954/4819/1122 -f 4946/4797/1107 4956/4951/1124 4955/4820/1123 -f 4955/4821/1123 5032/4952/1178 4945/4795/1105 -f 4947/4800/1109 4957/4953/1125 4956/4822/1124 -f 4948/4803/1111 4958/4954/1126 4957/4823/1125 -f 4958/4824/1126 4948/4947/1111 4905/4805/1112 -f 4960/4826/1128 4972/4841/1141 4961/4827/1129 -f 4961/4827/1129 4972/4841/1141 4963/4829/1131 -f 4968/4834/1136 4997/4955/1136 4960/4835/1137 -f 4967/4833/1135 4966/4956/1134 4963/4840/1131 -f 4981/4857/1095 4842/4957/1095 4835/4858/1096 -f 4983/4860/1093 4841/4958/1093 4840/4861/1094 -f 4837/4863/1091 4839/4866/1092 4985/4864/1092 -f 4839/4866/1092 4841/4958/1093 4983/4860/1093 -f 4840/4861/1094 4842/4957/1095 4981/4857/1095 -f 4835/4858/1096 4834/4868/1073 4987/4867/1073 -f 4834/4868/1073 4836/4870/1074 4988/4869/1074 -f 4836/4870/1074 4844/4959/1071 4989/4871/1071 -f 4989/4871/1071 4844/4959/1071 4843/4872/1072 -f 4843/4872/1072 4845/4875/1069 4991/4874/1069 -f 4845/4875/1069 4838/4877/1070 4992/4876/1070 -f 4838/4877/1070 4837/4960/1091 4986/4878/1091 -f 4993/4880/1152 4961/4827/1129 4964/4881/1132 -f 4755/4885/982 4846/4710/982 4951/4883/1154 -f 4993/4880/1152 4999/4893/1160 4995/4887/980 -f 4962/4828/1130 4961/4827/1129 4993/4880/1152 -f 4996/4889/977 4969/4837/1138 4967/4833/1135 -f 4967/4833/1135 4972/4841/1141 4960/4826/1128 -f 4970/4896/1052 4971/4961/983 4980/4855/1151 -f 4965/4897/977 4970/4896/1052 4979/4853/1150 -f 4966/4898/1050 4965/4897/977 4978/4851/1149 -f 4975/4846/1146 4964/4962/984 4963/4899/987 -f 4998/4900/980 4994/4905/1048 4974/4844/1145 -f 5000/4901/1057 4998/4900/980 4973/4842/1143 -f 5001/4902/974 5000/4901/1057 4823/4545/1142 -f 4996/4903/969 4997/4955/1136 4968/4834/1136 -f 4963/4899/987 4966/4898/1050 4977/4849/1148 -f 4994/4905/1048 4964/4962/984 4975/4846/1146 -f 5002/4906/977 5016/4920/977 5003/4907/981 -f 5005/4909/1163 5033/4963/1163 5006/4910/978 -f 5008/4912/980 5019/4923/980 5009/4913/979 -f 5011/4915/1164 5034/4964/1164 5012/4916/989 -f 5004/4908/981 5003/4907/981 5014/4918/1165 -f 5007/4911/978 5006/4910/978 5016/4920/977 -f 5010/4914/979 5009/4913/979 5017/4921/1166 -f 5013/4917/989 5012/4916/989 5019/4923/980 -f 5020/4924/1167 5035/4965/1167 5021/4925/1168 -f 5023/4927/1169 5035/4965/1167 5020/4924/1167 -f 5025/4929/1170 5036/4966/1170 5023/4927/1169 -f 5026/4930/1171 5037/4967/1171 5027/4931/1172 -f 5029/4933/1173 5037/4967/1171 5026/4930/1171 -f 5031/4935/1174 5038/4968/1174 5029/4933/1173 -l 5040 4959 -l 4953 5039 +f 5309/7776/974 5251/7777/975 5281/7778/976 +f 5310/7779/977 5236/7701/978 5311/7780/978 +f 5229/7694/979 5312/7781/980 5227/7692/980 +f 5207/7672/981 5313/7782/982 5205/7670/982 +f 5232/7697/983 5314/7783/979 5229/7694/979 +f 5216/7681/984 5315/7784/981 5207/7672/981 +f 5231/7696/985 5316/7785/983 5232/7697/983 +f 5218/7683/986 5317/7786/984 5216/7681/984 +f 5239/7704/987 5318/7787/985 5231/7696/985 +f 5222/7687/988 5319/7788/986 5218/7683/986 +f 5320/7789/987 5238/7703/977 5310/7790/977 +f 5224/7689/989 5321/7791/988 5222/7687/988 +f 5203/7668/976 5311/7780/978 5236/7701/978 +f 5223/7688/990 5322/7792/989 5224/7689/989 +f 5209/7674/991 5323/7793/976 5203/7668/976 +f 5227/7692/980 5324/7794/990 5223/7688/990 +f 5205/7670/982 5325/7795/991 5209/7674/991 +f 5316/7785/992 5326/7796/993 5314/7783/994 +f 5318/7787/995 5327/7797/996 5316/7785/992 +f 5320/7789/997 5328/7798/998 5318/7787/995 +f 5310/7790/999 5329/7799/1000 5320/7789/997 +f 5311/7780/1001 5330/7800/1002 5310/7779/999 +f 5323/7793/1003 5331/7801/1004 5311/7780/1001 +f 5325/7795/1005 5332/7802/1006 5323/7793/1003 +f 5313/7782/1007 5333/7803/1008 5325/7795/1005 +f 5313/7782/1007 5334/7804/1009 5335/7805/1010 +f 5317/7786/1011 5334/7806/1009 5315/7784/1012 +f 5317/7786/1011 5336/7807/1013 5337/7808/1014 +f 5321/7791/1015 5336/7809/1013 5319/7788/1016 +f 5322/7792/1017 5338/7810/1018 5321/7791/1015 +f 5324/7794/1019 5339/7811/1020 5322/7792/1017 +f 5312/7781/1021 5340/7812/1022 5324/7794/1019 +f 5314/7783/994 5341/7813/1023 5312/7781/1021 +f 5327/7797/996 5328/7814/998 5342/7815/969 +f 5337/7808/1014 5336/7807/1013 5342/7816/969 +f 5328/7798/998 5329/7817/1000 5342/7818/969 +f 5336/7809/1013 5338/7819/1018 5342/7820/969 +f 5330/7800/1002 5331/7821/1004 5342/7822/969 +f 5329/7799/1000 5330/7823/1002 5342/7824/969 +f 5338/7810/1018 5339/7825/1020 5342/7826/969 +f 5331/7801/1004 5332/7827/1006 5342/7828/969 +f 5339/7811/1020 5340/7829/1022 5342/7830/969 +f 5332/7802/1006 5333/7831/1008 5342/7832/969 +f 5340/7812/1022 5341/7833/1023 5342/7834/969 +f 5333/7803/1008 5335/7835/1010 5342/7836/969 +f 5341/7813/1023 5326/7837/993 5342/7838/969 +f 5335/7805/1010 5334/7804/1009 5342/7839/969 +f 5326/7796/993 5327/7840/996 5342/7841/969 +f 5334/7806/1009 5337/7842/1014 5342/7843/969 +f 5248/7844/1024 5343/7845/1025 5344/7846/1026 +f 5247/7847/1027 5345/7848/1028 5343/7849/1025 +f 5249/7850/1029 5346/7851/1030 5345/7852/1028 +f 5246/7853/1031 5347/7854/1032 5346/7855/1030 +f 5309/7856/1033 5250/7857/1034 5251/7858/1035 +f 5245/7859/1036 5344/7860/1026 5348/7861/1037 +f 5243/7862/1038 5348/7863/1037 5349/7864/1039 +f 5350/7865/1040 5243/7862/1038 5349/7866/1039 +f 5350/7865/1040 5351/7867/1041 5352/7868/1042 +f 5348/7863/1037 5351/7869/1041 5349/7864/1039 +f 5344/7860/1026 5353/7870/1043 5348/7861/1037 +f 5345/7848/1028 5215/7871/1044 5343/7849/1025 +f 5215/7872/1044 5344/7846/1026 5343/7845/1025 +f 5346/7851/1030 5213/7873/1045 5345/7852/1028 +f 5347/7854/1032 5354/7874/1046 5346/7855/1030 +f 5355/7875/1047 5309/7856/1033 5356/7876/1048 +f 5357/7877/984 5358/7878/1049 5356/7879/1050 +f 5356/7879/1050 5359/7880/1051 5355/7881/982 +f 5352/7882/1052 5212/7677/990 5360/7883/990 +f 5214/7884/987 5361/7885/1053 5353/7886/1054 +f 5353/7886/1054 5362/7887/1055 5351/7888/979 +f 5351/7888/979 5210/7675/1056 5352/7882/1057 +f 5355/7881/982 5363/7889/1058 5354/7890/1059 +f 5354/7890/1059 5364/7891/1060 5213/7892/978 +f 5210/7675/1056 5362/7887/1055 5211/7893/1061 +f 5362/7887/1055 5361/7885/1053 5211/7894/1061 +f 5361/7885/1053 5365/7895/1062 5211/7896/1061 +f 5364/7891/1060 5363/7889/1058 5211/7897/1061 +f 5363/7889/1058 5359/7880/1051 5211/7898/1061 +f 5359/7880/1051 5358/7878/1049 5211/7899/1061 +f 5358/7878/1049 5366/7900/1063 5211/7901/1061 +f 5350/7902/1064 5282/7903/985 5244/7904/1065 +f 5234/7905/985 5350/7902/1064 5233/7906/987 +f 5233/7906/987 5350/7902/1064 5237/7907/1066 +f 5237/7702/1067 5309/7776/974 5235/7908/978 +f 5204/7909/976 5309/7776/974 5281/7778/976 +f 5279/7910/991 5204/7909/976 5281/7778/976 +f 5278/7911/982 5202/7912/991 5279/7910/991 +f 5280/7913/981 5208/7914/982 5278/7911/982 +f 5308/7915/984 5206/7916/981 5280/7913/981 +f 5221/7917/989 5219/7918/1068 5367/7919/1069 +f 5367/7919/1069 5226/7920/990 5221/7917/989 +f 5367/7919/1069 5241/7921/1070 5240/7922/990 +f 5242/7923/980 5226/7920/990 5240/7922/990 +f 5276/7924/979 5225/7925/980 5242/7923/980 +f 5277/7926/983 5228/7927/979 5276/7924/979 +f 5282/7903/985 5230/7928/983 5277/7926/983 +f 5368/7929/1071 5253/7930/1072 5369/7931/1072 +f 5259/7932/1073 5370/7933/1074 5371/7934/1073 +f 5255/7935/1075 5372/7936/1076 5373/7937/1075 +f 5257/7938/1076 5371/7934/1073 5372/7936/1076 +f 5258/7939/1074 5368/7929/1071 5370/7933/1074 +f 5374/7940/979 5272/7941/1054 5375/7942/1054 +f 5376/7943/988 5269/7944/1077 5377/7945/1077 +f 5378/7946/982 5275/7947/1050 5379/7948/1050 +f 5375/7942/1054 5265/7949/1078 5380/7950/1078 +f 5381/7951/977 5266/7952/1079 5382/7953/1079 +f 5377/7945/1077 5271/7954/1052 5383/7955/1052 +f 5379/7948/1050 5268/7956/1080 5384/7957/1080 +f 5380/7950/1078 5264/7958/977 5381/7959/977 +f 5382/7953/1079 5274/7960/1059 5385/7961/1059 +f 5383/7955/1052 5270/7962/979 5374/7940/979 +f 5384/7957/1080 5267/7963/988 5376/7943/988 +f 5385/7961/1059 5273/7964/982 5378/7946/982 +f 5374/7940/1081 5386/7965/1082 5387/7966/1081 +f 5375/7942/1082 5388/7967/1083 5386/7965/1082 +f 5380/7950/1083 5389/7968/1084 5388/7967/1083 +f 5381/7951/1084 5390/7969/1085 5389/7970/1084 +f 5382/7953/1085 5391/7971/1086 5390/7969/1085 +f 5385/7961/1086 5392/7972/1087 5391/7971/1086 +f 5378/7946/1087 5393/7973/1088 5392/7972/1087 +f 5379/7948/1088 5394/7974/1089 5393/7973/1088 +f 5384/7957/1089 5395/7975/1090 5394/7974/1089 +f 5395/7975/1090 5377/7945/1091 5396/7976/1091 +f 5377/7945/1091 5397/7977/1092 5396/7976/1091 +f 5383/7955/1092 5387/7966/1081 5397/7977/1092 +f 5253/7930/1072 5398/7978/1093 5369/7931/1072 +f 5252/7979/1093 5399/7980/1094 5398/7981/1093 +f 5254/7982/1094 5400/7983/1095 5399/7980/1094 +f 5262/7984/1095 5401/7985/1096 5400/7983/1095 +f 5261/7986/1096 5402/7987/1097 5401/7985/1096 +f 5263/7988/1097 5403/7989/1098 5402/7987/1097 +f 5256/7990/1098 5373/7937/1075 5403/7989/1098 +f 5284/7749/1099 5404/7991/1100 5214/7992/1101 +f 5283/7748/1102 5213/7993/1103 5405/7994/1104 +f 5404/7995/1100 5283/7748/1102 5405/7996/1104 +f 5211/7997/1061 5365/7895/1062 5364/7891/1060 +f 5365/7895/1062 5213/7892/978 5364/7891/1060 +f 5293/7998/1105 5406/7999/1106 5407/8000/1107 +f 5292/8001/1108 5408/8002/1109 5406/8003/1106 +f 5294/8004/1110 5409/8005/1111 5408/8006/1109 +f 5291/8007/1112 5410/8008/1113 5409/8009/1111 +f 5367/8010/1114 5295/8011/1115 5241/8012/1116 +f 5290/8013/1117 5407/8014/1107 5411/8015/1118 +f 5288/8016/1119 5411/8017/1118 5412/8018/1120 +f 5413/8019/1121 5288/8016/1119 5412/8020/1120 +f 5413/8019/1121 5414/8021/1122 5415/8022/1123 +f 5411/8017/1118 5414/8023/1122 5412/8018/1120 +f 5407/8014/1107 5416/8024/1124 5411/8015/1118 +f 5408/8002/1109 5417/8025/1125 5406/8003/1106 +f 5417/8026/1125 5407/8000/1107 5406/7999/1106 +f 5409/8005/1111 5418/8027/1126 5408/8006/1109 +f 5410/8008/1113 5419/8028/1127 5409/8009/1111 +f 5420/8029/1128 5367/8010/1114 5421/8030/1129 +f 5422/8031/1130 5423/8032/1131 5424/8033/1132 +f 5423/8032/1131 5425/8034/1133 5426/8035/1134 +f 5427/8036/1135 5428/8037/1136 5429/8038/1137 +f 5430/8039/1138 5422/8040/1139 5424/8041/1139 +f 5427/8036/1135 5431/8042/1140 5432/8043/1141 +f 5433/8044/1142 5432/8043/1141 5431/8042/1140 +f 5429/8038/1137 5425/8045/1133 5434/8046/1143 +f 5431/8042/1140 5427/8036/1135 5429/8038/1137 +f 5285/7750/1144 5435/8047/1145 5286/8048/1146 +f 5435/8047/1145 5436/8049/1147 5286/8050/1146 +f 5436/8049/1147 5437/8051/1148 5286/8052/1146 +f 5438/8053/1149 5439/8054/1150 5286/8055/1146 +f 5439/8054/1150 5440/8056/1151 5286/8057/1146 +f 5440/8056/1151 5441/8058/1152 5286/8059/1146 +f 5441/8058/1152 5442/8060/1153 5286/8061/1146 +f 5443/8062/1097 5297/8063/1098 5444/8064/1098 +f 5445/8065/1095 5302/8066/1096 5446/8067/1096 +f 5299/8068/1093 5447/8069/1094 5448/8070/1093 +f 5301/8071/1094 5445/8065/1095 5447/8069/1094 +f 5302/8066/1096 5443/8062/1097 5446/8067/1096 +f 5297/8063/1098 5449/8072/1075 5444/8064/1098 +f 5296/8073/1075 5450/8074/1076 5449/8072/1075 +f 5298/8075/1076 5451/8076/1073 5450/8074/1076 +f 5451/8076/1073 5305/8077/1074 5452/8078/1074 +f 5305/8077/1074 5453/8079/1071 5452/8078/1074 +f 5307/8080/1071 5454/8081/1072 5453/8079/1071 +f 5300/8082/1072 5448/8083/1093 5454/8081/1072 +f 5286/8084/1146 5437/8051/1148 5438/8053/1149 +f 5455/8085/1154 5426/8086/1134 5456/8087/1155 +f 5413/8088/1156 5219/7918/1157 5220/8089/986 +f 5217/8090/984 5413/8088/1156 5220/8089/986 +f 5413/8088/1156 5308/7915/984 5289/8091/1158 +f 5455/8085/1154 5457/8092/982 5430/8093/1159 +f 5424/8033/1132 5455/8085/1154 5430/8093/1159 +f 5458/8094/979 5429/8038/1137 5459/8095/1160 +f 5429/8038/1137 5422/8031/1130 5459/8095/1160 +f 5460/8096/1161 5455/8085/1154 5456/8097/1155 +f 5460/8096/1161 5461/8098/1162 5455/8085/1154 +f 5460/8096/1161 5462/8099/1163 5461/8098/1162 +f 5463/8100/1164 5461/8098/1162 5462/8099/1163 +f 5432/8101/1054 5442/8060/1153 5441/8058/1152 +f 5427/8102/979 5441/8058/1152 5440/8056/1151 +f 5428/8103/1052 5440/8056/1151 5439/8054/1150 +f 5437/8051/1148 5425/8104/989 5438/8053/1149 +f 5460/8105/982 5436/8049/1147 5435/8047/1145 +f 5462/8106/1059 5435/8047/1145 5285/7750/1144 +f 5463/8107/976 5285/7750/1144 5287/7752/976 +f 5458/8108/971 5430/8039/1138 5457/8109/971 +f 5425/8104/989 5439/8054/1150 5438/8053/1149 +f 5456/8110/1050 5437/8051/1148 5436/8049/1147 +f 5464/8111/979 5465/8112/983 5466/8113/983 +f 5467/8114/1165 5468/8115/980 5469/8116/980 +f 5470/8117/982 5471/8118/981 5472/8119/981 +f 5473/8120/1166 5474/8121/991 5475/8122/991 +f 5466/8113/983 5476/8123/1167 5477/8124/1167 +f 5469/8116/980 5478/8125/979 5464/8111/979 +f 5472/8119/981 5479/8126/1168 5480/8127/1168 +f 5475/8122/991 5481/8128/982 5470/8117/982 +f 5482/8129/1169 5483/8130/1170 5484/8131/1170 +f 5485/8132/1171 5482/8129/1169 5486/8133/1171 +f 5487/8134/1172 5485/8132/1171 5486/8133/1171 +f 5488/8135/1173 5489/8136/1174 5490/8137/1174 +f 5491/8138/1175 5488/8135/1173 5492/8139/1175 +f 5493/8140/1176 5491/8138/1175 5492/8139/1175 +f 5310/7779/977 5238/7774/977 5236/7701/978 +f 5229/7694/979 5314/7783/979 5312/7781/980 +f 5207/7672/981 5315/7784/981 5313/7782/982 +f 5232/7697/983 5316/7785/983 5314/7783/979 +f 5216/7681/984 5317/7786/984 5315/7784/981 +f 5231/7696/985 5318/7787/985 5316/7785/983 +f 5218/7683/986 5319/7788/986 5317/7786/984 +f 5239/7704/987 5320/7789/987 5318/7787/985 +f 5222/7687/988 5321/7791/988 5319/7788/986 +f 5320/7789/987 5239/7704/987 5238/7703/977 +f 5224/7689/989 5322/7792/989 5321/7791/988 +f 5203/7668/976 5323/7793/976 5311/7780/978 +f 5223/7688/990 5324/7794/990 5322/7792/989 +f 5209/7674/991 5325/7795/991 5323/7793/976 +f 5227/7692/980 5312/7781/980 5324/7794/990 +f 5205/7670/982 5313/7782/982 5325/7795/991 +f 5316/7785/992 5327/7840/996 5326/7796/993 +f 5318/7787/995 5328/7814/998 5327/7797/996 +f 5320/7789/997 5329/7817/1000 5328/7798/998 +f 5310/7790/999 5330/7823/1002 5329/7799/1000 +f 5311/7780/1001 5331/7821/1004 5330/7800/1002 +f 5323/7793/1003 5332/7827/1006 5331/7801/1004 +f 5325/7795/1005 5333/7831/1008 5332/7802/1006 +f 5313/7782/1007 5335/7835/1010 5333/7803/1008 +f 5313/7782/1007 5315/7784/1012 5334/7804/1009 +f 5317/7786/1011 5337/7842/1014 5334/7806/1009 +f 5317/7786/1011 5319/7788/1016 5336/7807/1013 +f 5321/7791/1015 5338/7819/1018 5336/7809/1013 +f 5322/7792/1017 5339/7825/1020 5338/7810/1018 +f 5324/7794/1019 5340/7829/1022 5339/7811/1020 +f 5312/7781/1021 5341/7833/1023 5340/7812/1022 +f 5314/7783/994 5326/7837/993 5341/7813/1023 +f 5248/7844/1024 5247/7847/1027 5343/7845/1025 +f 5247/7847/1027 5249/7850/1029 5345/7848/1028 +f 5249/7850/1029 5246/7853/1031 5346/7851/1030 +f 5246/7853/1031 5250/7857/1034 5347/7854/1032 +f 5309/7856/1033 5347/8141/1032 5250/7857/1034 +f 5245/7859/1036 5248/7844/1024 5344/7860/1026 +f 5243/7862/1038 5245/7859/1036 5348/7863/1037 +f 5350/7865/1040 5244/8142/1177 5243/7862/1038 +f 5350/7865/1040 5349/7866/1039 5351/7867/1041 +f 5348/7863/1037 5353/8143/1043 5351/7869/1041 +f 5344/7860/1026 5214/8144/1178 5353/7870/1043 +f 5345/7848/1028 5213/8145/1045 5215/7871/1044 +f 5215/7872/1044 5214/8146/1178 5344/7846/1026 +f 5346/7851/1030 5354/8147/1046 5213/7873/1045 +f 5347/7854/1032 5355/8148/1047 5354/7874/1046 +f 5355/7875/1047 5347/8141/1032 5309/7856/1033 +f 5357/7877/984 5366/7900/1063 5358/7878/1049 +f 5356/7879/1050 5358/7878/1049 5359/7880/1051 +f 5352/7882/1057 5210/7675/1056 5212/7677/990 +f 5214/7884/987 5365/7895/1062 5361/7885/1053 +f 5353/7886/1054 5361/7885/1053 5362/7887/1055 +f 5351/7888/979 5362/7887/1055 5210/7675/1056 +f 5355/7881/982 5359/7880/1051 5363/7889/1058 +f 5354/7890/1059 5363/7889/1058 5364/7891/1060 +f 5234/7905/985 5282/7903/985 5350/7902/1064 +f 5204/7909/976 5235/7908/978 5309/7776/974 +f 5279/7910/991 5202/7912/991 5204/7909/976 +f 5278/7911/982 5208/7914/982 5202/7912/991 +f 5280/7913/981 5206/7916/981 5208/7914/982 +f 5308/7915/984 5217/8090/984 5206/7916/981 +f 5367/7919/1069 5240/7922/990 5226/7920/990 +f 5242/7923/980 5225/7925/980 5226/7920/990 +f 5276/7924/979 5228/7927/979 5225/7925/980 +f 5277/7926/983 5230/7928/983 5228/7927/979 +f 5282/7903/985 5234/7905/985 5230/7928/983 +f 5368/7929/1071 5260/8149/1071 5253/7930/1072 +f 5259/7932/1073 5258/7939/1074 5370/7933/1074 +f 5255/7935/1075 5257/7938/1076 5372/7936/1076 +f 5257/7938/1076 5259/7932/1073 5371/7934/1073 +f 5258/7939/1074 5260/8149/1071 5368/7929/1071 +f 5374/7940/979 5270/7962/979 5272/7941/1054 +f 5376/7943/988 5267/7963/988 5269/7944/1077 +f 5378/7946/982 5273/7964/982 5275/7947/1050 +f 5375/7942/1054 5272/7941/1054 5265/7949/1078 +f 5381/7951/977 5264/8150/977 5266/7952/1079 +f 5377/7945/1077 5269/7944/1077 5271/7954/1052 +f 5379/7948/1050 5275/7947/1050 5268/7956/1080 +f 5380/7950/1078 5265/7949/1078 5264/7958/977 +f 5382/7953/1079 5266/7952/1079 5274/7960/1059 +f 5383/7955/1052 5271/7954/1052 5270/7962/979 +f 5384/7957/1080 5268/7956/1080 5267/7963/988 +f 5385/7961/1059 5274/7960/1059 5273/7964/982 +f 5374/7940/1081 5375/7942/1082 5386/7965/1082 +f 5375/7942/1082 5380/7950/1083 5388/7967/1083 +f 5380/7950/1083 5381/7959/1084 5389/7968/1084 +f 5381/7951/1084 5382/7953/1085 5390/7969/1085 +f 5382/7953/1085 5385/7961/1086 5391/7971/1086 +f 5385/7961/1086 5378/7946/1087 5392/7972/1087 +f 5378/7946/1087 5379/7948/1088 5393/7973/1088 +f 5379/7948/1088 5384/7957/1089 5394/7974/1089 +f 5384/7957/1089 5376/7943/1090 5395/7975/1090 +f 5395/7975/1090 5376/7943/1090 5377/7945/1091 +f 5377/7945/1091 5383/7955/1092 5397/7977/1092 +f 5383/7955/1092 5374/7940/1081 5387/7966/1081 +f 5253/7930/1072 5252/8151/1093 5398/7978/1093 +f 5252/7979/1093 5254/7982/1094 5399/7980/1094 +f 5254/7982/1094 5262/7984/1095 5400/7983/1095 +f 5262/7984/1095 5261/7986/1096 5401/7985/1096 +f 5261/7986/1096 5263/7988/1097 5402/7987/1097 +f 5263/7988/1097 5256/7990/1098 5403/7989/1098 +f 5256/7990/1098 5255/7935/1075 5373/7937/1075 +f 5404/7995/1100 5284/7749/1099 5283/7748/1102 +f 5365/7895/1062 5214/7884/987 5213/7892/978 +f 5293/7998/1105 5292/8001/1108 5406/7999/1106 +f 5292/8001/1108 5294/8004/1110 5408/8002/1109 +f 5294/8004/1110 5291/8007/1112 5409/8005/1111 +f 5291/8007/1112 5295/8011/1115 5410/8008/1113 +f 5367/8010/1114 5410/8152/1113 5295/8011/1115 +f 5290/8013/1117 5293/7998/1105 5407/8014/1107 +f 5288/8016/1119 5290/8013/1117 5411/8017/1118 +f 5413/8019/1121 5289/8153/1179 5288/8016/1119 +f 5413/8019/1121 5412/8020/1120 5414/8021/1122 +f 5411/8017/1118 5416/8154/1124 5414/8023/1122 +f 5407/8014/1107 5494/8155/1180 5416/8024/1124 +f 5408/8002/1109 5418/8156/1126 5417/8025/1125 +f 5417/8026/1125 5494/8157/1180 5407/8000/1107 +f 5409/8005/1111 5419/8158/1127 5418/8027/1126 +f 5410/8008/1113 5420/8159/1128 5419/8028/1127 +f 5420/8029/1128 5410/8152/1113 5367/8010/1114 +f 5422/8031/1130 5434/8046/1143 5423/8032/1131 +f 5423/8032/1131 5434/8046/1143 5425/8034/1133 +f 5430/8039/1138 5459/8160/1138 5422/8040/1139 +f 5429/8038/1137 5428/8161/1136 5425/8045/1133 +f 5443/8062/1097 5304/8162/1097 5297/8063/1098 +f 5445/8065/1095 5303/8163/1095 5302/8066/1096 +f 5299/8068/1093 5301/8071/1094 5447/8069/1094 +f 5301/8071/1094 5303/8163/1095 5445/8065/1095 +f 5302/8066/1096 5304/8162/1097 5443/8062/1097 +f 5297/8063/1098 5296/8073/1075 5449/8072/1075 +f 5296/8073/1075 5298/8075/1076 5450/8074/1076 +f 5298/8075/1076 5306/8164/1073 5451/8076/1073 +f 5451/8076/1073 5306/8164/1073 5305/8077/1074 +f 5305/8077/1074 5307/8080/1071 5453/8079/1071 +f 5307/8080/1071 5300/8082/1072 5454/8081/1072 +f 5300/8082/1072 5299/8165/1093 5448/8083/1093 +f 5455/8085/1154 5423/8032/1131 5426/8086/1134 +f 5217/8090/984 5308/7915/984 5413/8088/1156 +f 5455/8085/1154 5461/8098/1162 5457/8092/982 +f 5424/8033/1132 5423/8032/1131 5455/8085/1154 +f 5458/8094/979 5431/8042/1140 5429/8038/1137 +f 5429/8038/1137 5434/8046/1143 5422/8031/1130 +f 5432/8101/1054 5433/8166/985 5442/8060/1153 +f 5427/8102/979 5432/8101/1054 5441/8058/1152 +f 5428/8103/1052 5427/8102/979 5440/8056/1151 +f 5437/8051/1148 5426/8167/986 5425/8104/989 +f 5460/8105/982 5456/8110/1050 5436/8049/1147 +f 5462/8106/1059 5460/8105/982 5435/8047/1145 +f 5463/8107/976 5462/8106/1059 5285/7750/1144 +f 5458/8108/971 5459/8160/1138 5430/8039/1138 +f 5425/8104/989 5428/8103/1052 5439/8054/1150 +f 5456/8110/1050 5426/8167/986 5437/8051/1148 +f 5464/8111/979 5478/8125/979 5465/8112/983 +f 5467/8114/1165 5495/8168/1165 5468/8115/980 +f 5470/8117/982 5481/8128/982 5471/8118/981 +f 5473/8120/1166 5496/8169/1166 5474/8121/991 +f 5466/8113/983 5465/8112/983 5476/8123/1167 +f 5469/8116/980 5468/8115/980 5478/8125/979 +f 5472/8119/981 5471/8118/981 5479/8126/1168 +f 5475/8122/991 5474/8121/991 5481/8128/982 +f 5482/8129/1169 5497/8170/1169 5483/8130/1170 +f 5485/8132/1171 5497/8170/1169 5482/8129/1169 +f 5487/8134/1172 5498/8171/1172 5485/8132/1171 +f 5488/8135/1173 5499/8172/1173 5489/8136/1174 +f 5491/8138/1175 5499/8172/1173 5488/8135/1173 +f 5493/8140/1176 5500/8173/1176 5491/8138/1175 +l 5502 5421 +l 5415 5501 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png new file mode 100644 index 0000000000000000000000000000000000000000..f271608f92168c65cbafb0f7aa5b2946e94841ba GIT binary patch literal 1238 zcmeAS@N?(olHy`uVBq!ia0vp^2|&DogAGW2Se7jgq*#ibJVQ8upoSx*1IX?5ba4!+ znDch7ZQf%yiMDttn}$YP$A$wOK`*5W8Mf<%xUh5ZT+cMw)2OHuw7P?9>g+?Iuhwpl zSy3dLz<56)NaL1iCSSeFsr6x1^Nz{&dI;V>{PS_a2_MdXVLdBtJa+|7Gkxl8u6KvM z;GMz&9;P#3;>pUMsZA=Gzy9BU_1u8(q|k=2iEq-(o;uoZiawkD`}c0+{Z+@7+ugqy z?l(p1xb)1DOPey8Av(d@RgN$HmR&)z=w^)jf~$>8hnuWOa8u3R%)(0V23 zO#Ov()@|dw`lo#AmjhZh1~v50Xl{@{DSj?wi{!ZxNh79q~&9TKVy9yexx zOgr+dle^?7XRM_yLl3gw5P?K7t7p4g&(?(MLc>$Z>=h*k@8zsspvb85qxr`*wl~5a zP4+X2l<%l7V5t|0``)yRW!i&&x4O{pZCw`x?gx12Z@VdTFj`|@`lrAA23_+-79mB z?qBC0KmTPOpKfm$e}P36mj;CcKK~v*USjt6@bNlpuiAQ}mHXYkO!c4t>+gk5M^1xg z24fB+;_|MbfB*i~UEsH|vEjM(Z_13y71^-bZ`$e9H^2W+X#Rh1=4(B+srehULiTO!(t6== zW$w?Jbv0M@f>>o6)*YPwg0=;dA(s)@ zH;1<_C|@||-WHoF-@HE;Ta|yU&yorF6X_QW%QDlaPk)!Zp=dYfEUg;f`(N%J{2d`x z(&l>1VgbK?^ZSOl2}`C19=bW5A^n4@W_?}VHn{_aA2vxvt$zObhrF|9WQ@D$e~(`~ z?c(1%uRLqwaog|M!^i%Jg`qJK)Hh^H*wPsK#>n46AkSx4S?kKFb%oq@BI3{_q~KpknZJ^>bP0l+XkK!lNU^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png new file mode 100644 index 0000000000000000000000000000000000000000..279b1a92de02f7d5a29dd44cc0b0f7f5f6151f03 GIT binary patch literal 3599 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 literal 0 HcmV?d00001 From b39eb2a52b17cd041af683bdba426730995ee9fe Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 10 Feb 2024 17:52:40 -0800 Subject: [PATCH 169/376] reworksing furniture --- src/main/java/com/hbm/util/LootGenerator.java | 8 +- .../world/gen/component/CivilianFeatures.java | 121 ++++++++++-------- 2 files changed, 71 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index 0c7e5c7af..aaf90910e 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -101,9 +101,11 @@ public class LootGenerator { if(loot != null && loot.items.isEmpty()) { - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.gun_lever_action), 0.125, 0.025, 0.25); + boolean r = world.rand.nextBoolean(); + if(r) + addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.gun_lever_action), 0.125, 0.025, 0.25); - if(world.rand.nextBoolean()) + if(!r || world.rand.nextBoolean()) addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wrench), -0.25, 0, -0.28125); int count = world.rand.nextInt(2) + 1; @@ -189,7 +191,7 @@ public class LootGenerator { int count = world.rand.nextInt(3) + 2; for(int k = 0; k < count; k++) - addItemWithDeviation(loot, world.rand, new ItemStack(Items.book), -0.25, k * 0.03125, 0.1875); + addItemWithDeviation(loot, world.rand, new ItemStack(Items.book), -0.25, k * 0.03125, 0.25); count = world.rand.nextInt(2) + 1; for(int k = 0; k < count; k++) diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 1417f35ff..db31dd3cc 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -753,8 +753,8 @@ public class CivilianFeatures { fillWithBlocks(world, box, 9, 0, 2, 10, 0, 2, ModBlocks.concrete_colored_ext); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 12, 0, 2, box); fillWithBlocks(world, box, 13, 0, 2, 13, 0, 9, ModBlocks.concrete_colored_ext); - fillWithBlocks(world, box, 4, 0, 9, 12, 0, 9, ModBlocks.concrete_colored_ext); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 2, 0, 9, box); + fillWithBlocks(world, box, 5, 0, 9, 12, 0, 9, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 2, 0, 9, 3, 0, 9, ModBlocks.concrete_colored_ext); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 8, 0, 10, box); fillWithBlocks(world, box, 8, 0, 12, 8, 0, 13, ModBlocks.concrete_colored_ext); fillWithBlocks(world, box, 1, 0, 13, 7, 0, 13, ModBlocks.concrete_colored_ext); @@ -826,8 +826,8 @@ public class CivilianFeatures { placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 1, 2, 9, box); fillWithBlocks(world, box, 1, 3, 5, 1, 3, 12, Blocks.brick_block); //Inside - fillWithBlocks(world, box, 2, 1, 9, 2, 3, 9, Blocks.brick_block); - fillWithBlocks(world, box, 4, 1, 9, 7, 3, 9, Blocks.brick_block); + fillWithBlocks(world, box, 2, 1, 9, 3, 3, 9, Blocks.brick_block); + fillWithBlocks(world, box, 5, 1, 9, 7, 3, 9, Blocks.brick_block); //Wood Paneling fillWithMetadataBlocks(world, box, 5, 2, 1, 5, 3, 1, Blocks.planks, 1); fillWithMetadataBlocks(world, box, 8, 2, 1, 8, 3, 1, Blocks.planks, 1); @@ -843,7 +843,7 @@ public class CivilianFeatures { placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 10, box); placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 8, box); placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 5, box); - placeBlockAtCurrentPosition(world, Blocks.planks, 1, 3, 3, 9, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 4, 3, 9, box); //Wood Framing //North/Front int logW = this.getPillarMeta(4); @@ -906,7 +906,7 @@ public class CivilianFeatures { fillWithMetadataBlocks(world, box, 9, 0, 3, 12, 0, 8, Blocks.planks, 1); fillWithMetadataBlocks(world, box, 5, 0, 2, 8, 0, 8, Blocks.planks, 1); fillWithMetadataBlocks(world, box, 2, 0, 5, 4, 0, 8, Blocks.planks, 1); - placeBlockAtCurrentPosition(world, Blocks.planks, 1, 3, 0, 9, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 4, 0, 9, box); fillWithMetadataBlocks(world, box, 2, 0, 10, 7, 0, 12, Blocks.planks, 1); placeBlockAtCurrentPosition(world, Blocks.planks, 1, 8, 0, 11, box); fillWithBlocks(world, box, 13, 1, 0, 14, 1, 0, Blocks.fence); @@ -1020,6 +1020,9 @@ public class CivilianFeatures { fillWithRandomizedBlocks(world, box, 1, 5, 4, 1, 5, 13, rand, roofStairs); //Deco + int metaN = getDecoMeta(3); + int metaE = getDecoMeta(4); + //Webs randomlyFillWithBlocks(world, box, rand, 0.05F, 12, 3, 3, 12, 3, 8, Blocks.web); randomlyFillWithBlocks(world, box, rand, 0.05F, 10, 4, 3, 11, 4, 8, Blocks.web); @@ -1029,7 +1032,7 @@ public class CivilianFeatures { randomlyFillWithBlocks(world, box, rand, 0.05F, 2, 3, 10, 7, 3, 12, Blocks.web); //Doors placeDoor(world, box, Blocks.wooden_door, 1, false, false, 11, 1, 2); - placeDoor(world, box, Blocks.wooden_door, 1, false, rand.nextBoolean(), 3, 1, 9); + placeDoor(world, box, Blocks.wooden_door, 1, false, rand.nextBoolean(), 4, 1, 9); placeDoor(world, box, Blocks.wooden_door, 2, false, rand.nextBoolean(), 8, 1, 11); //Windows randomlyFillWithBlocks(world, box, rand, 0.5F, 6, 2, 1, 7, 3, 1, Blocks.glass_pane); @@ -1042,59 +1045,67 @@ public class CivilianFeatures { randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 6, 13, 5, 6, 13, Blocks.glass_pane); //Attic Access placeBlockAtCurrentPosition(world, Blocks.trapdoor, getDecoModelMeta(4) >> 2, 6, 4, 10, box); - fillWithMetadataBlocks(world, box, 6, 2, 10, 6, 3, 10, Blocks.ladder, getDecoMeta(3)); + fillWithMetadataBlocks(world, box, 6, 2, 10, 6, 3, 10, Blocks.ladder, metaN); //Furniture - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 12, 1, 5, box); //Couch - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 12, 1, 6, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN, 12, 1, 7, box); - fillWithMetadataBlocks(world, box, 7, 1, 5, 8, 1, 5, Blocks.oak_stairs, stairS | 4); //Table - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 8, 1, 4, box); - placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 8, 7, 1, 4, box); - placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 8, 1, 2, box); //Kitchen Counter - placeBlockAtCurrentPosition(world, Blocks.cauldron, 1, 7, 1, 2, box); - fillWithBlocks(world, box, 5, 1, 2, 6, 1, 2, Blocks.double_stone_slab); - placeBlockAtCurrentPosition(world, Blocks.furnace, 5, 5, 1, 3, box); - placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 5, 1, 4, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE, 9, 1, 8, box); //Bookshelf + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN | 4, 12, 1, 5, box); //tables + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 8, 12, 1, 6, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS | 4, 12, 1, 7, box); + fillWithMetadataBlocks(world, box, 9, 1, 4, 9, 1, 5, Blocks.dark_oak_stairs, stairE | 4); + fillWithMetadataBlocks(world, box, 8, 1, 4, 8, 1, 5, Blocks.wooden_slab, 13); + fillWithMetadataBlocks(world, box, 7, 1, 4, 7, 1, 5, Blocks.dark_oak_stairs, stairW | 4); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairS | 4, 8, 1, 2, box); //couch + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairW, 7, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairS, 6, 1, 2, box); + fillWithMetadataBlocks(world, box, 5, 1, 2, 5, 1, 3, Blocks.dark_oak_stairs, stairE); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairN, 5, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 10, 1, 5, box); //chairs + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN, 8, 1, 6, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE, 9, 1, 8, box); //bookshelf placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 9, 2, 8, box); - fillWithBlocks(world, box, 7, 1, 8, 8, 2, 8, Blocks.bookshelf); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 6, 1, 8, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 6, 2, 8, box); - fillWithMetadataBlocks(world, box, 6, 3, 8, 9, 3, 8, Blocks.wooden_slab, 1); - fillWithMetadataBlocks(world, box, 4, 1, 6, 4, 2, 6, Blocks.oak_stairs, stairN | 4); //Shelves - fillWithMetadataBlocks(world, box, 4, 1, 5, 4, 2, 5, Blocks.oak_stairs, stairE | 4); - fillWithBlocks(world, box, 2, 1, 5, 3, 1, 5, Blocks.bookshelf); - placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(2), 2, 2, 5, box); + fillWithBlocks(world, box, 8, 1, 8, 8, 2, 8, Blocks.bookshelf); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 7, 1, 8, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 7, 2, 8, box); + fillWithMetadataBlocks(world, box, 7, 3, 8, 9, 3, 8, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 4, 1, 5, box); //kitchen + placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, metaN, 3, 1, 5, box); + fillWithBlocks(world, box, 2, 1, 5, 2, 1, 6, Blocks.double_stone_slab); + placeBlockAtCurrentPosition(world, Blocks.cauldron, 2, 2, 1, 7, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 2, 1, 8, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 4, 3, 5, box); + placeBlockAtCurrentPosition(world, Blocks.redstone_lamp, 0, 3, 3, 5, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 2, 3, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, metaN, 3, 3, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(2), 8, 2, 2, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 7, 2, 4, box); - placeBed(world, box, 0, 2, 1, 11); - placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairN | 4, 3, 1, 12, box); //Nightstand - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 5, 1, 12, box); //Desk - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN | 4, 6, 1, 12, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 7, 1, 12, box); - placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairS, 6, 1, 11, box); //Chair - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 6, 2, 12, box); + fillWithBlocks(world, box, 2, 1, 12, 3, 1, 12, Blocks.bookshelf); //bookshelf/desk + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 4, 1, 12, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 8, 5, 1, 12, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 6, 1, 12, box); + fillWithBlocks(world, box, 7, 1, 12, 7, 2, 12, Blocks.bookshelf); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 5, 5, 1, 11, box); //seat + placeBed(world, box, 1, 3, 1, 10); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 4, 2, 12, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 5, 2, 12, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 7, 5, 12, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 5, 5, 12, box); - placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairN | 4, 3, 5, 10, box); //Desk - placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairE | 4, 3, 5, 9, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 4, 5, 9, box); //Chair - fillWithBlocks(world, box, 3, 5, 6, 3, 5, 7, Blocks.bookshelf); - placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 6, 5, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.machine_diesel, getDecoMeta(4), 7, 5, 8, box); + fillWithMetadataBlocks(world, box, 4, 5, 5, 5, 5, 5, Blocks.dark_oak_stairs, stairS | 4); //seat and desk + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 4, 5, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 7, 5, 7, box); //conserve crates + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 2, 5, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 3, 5, 11, box); + if(rand.nextBoolean()) + placeBlockAtCurrentPosition(world, ModBlocks.machine_diesel, metaE, 7, 5, 9, box); + placeBlockAtCurrentPosition(world, rand.nextBoolean() ? ModBlocks.crate_weapon : ModBlocks.crate, 0, 6, 5, 12, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 4, box); - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 3, 2, 12, box); - //Loot - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 4, 1, 12, HbmChestContents.officeTrash, 4); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(5), 2, 5, 5, HbmChestContents.lockersVault, 8); - placeRandomBobble(world, box, rand, 3, 6, 10); - //Loot blocks - - placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 3, 2, 5, box); - LootGenerator.lootBookLore(world, getXWithOffset(3, 5), getYWithOffset(2), getZWithOffset(3, 5), HbmChestContents.generateLabBook(rand)); //TODO write more lore - placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 3, 6, 9, box); - LootGenerator.lootMakeshiftGun(world, getXWithOffset(3, 9), getYWithOffset(6), getZWithOffset(3, 9)); + //inventories + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(2), 7, 1, 10, HbmChestContents.officeTrash, 4); + generateInvContents(world, box, rand, Blocks.chest, metaE, 7, 5, 5, HbmChestContents.modGeneric, 8); + //loot + placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 3, 2, 12, box); + LootGenerator.lootBookLore(world, getXWithOffset(3, 12), getYWithOffset(2), getZWithOffset(3, 12), HbmChestContents.generateLabBook(rand)); //TODO write more lore + placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 5, 6, 5, box); + LootGenerator.lootMakeshiftGun(world, getXWithOffset(5, 5), getYWithOffset(6), getZWithOffset(5, 5)); + placeRandomBobble(world, box, rand, 5, 5, 12); return true; } From 2c6d5f9fdef1f8a288b48cab43ac7e96b374fad8 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Feb 2024 19:46:04 +0100 Subject: [PATCH 170/376] launch pads yeah --- changelog | 4 +- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../com/hbm/blocks/bomb/LaunchPadLarge.java | 37 + .../java/com/hbm/entity/EntityMappings.java | 4 - .../entity/missile/EntityBombletSelena.java | 95 - .../entity/missile/EntityBombletTheta.java | 107 - .../entity/missile/EntityMissileBaseNT.java | 40 + .../entity/missile/EntityMissileCustom.java | 45 +- .../entity/missile/EntityMissileDoomsday.java | 110 +- .../entity/missile/EntityMissileShuttle.java | 7 +- .../entity/missile/EntityMissileStealth.java | 5 +- .../entity/missile/EntityMissileTier0.java | 17 +- .../entity/missile/EntityMissileTier1.java | 15 +- .../entity/missile/EntityMissileTier2.java | 5 + .../entity/missile/EntityMissileTier3.java | 45 +- .../entity/missile/EntityMissileTier4.java | 3 + .../java/com/hbm/handler/MissileStruct.java | 52 +- .../container/ContainerLaunchPadLarge.java | 55 + .../hbm/inventory/gui/GUILaunchPadLarge.java | 88 + .../inventory/gui/GUIMachineLaunchTable.java | 2 +- .../inventory/recipes/ArcWelderRecipes.java | 3 - .../inventory/recipes/AssemblerRecipes.java | 2 - src/main/java/com/hbm/items/ItemEnums.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 540 +- .../com/hbm/items/special/ItemLootCrate.java | 12 +- .../com/hbm/items/special/ItemStarterKit.java | 2 - .../hbm/items/weapon/GunDampfmaschine.java | 115 - .../hbm/items/weapon/ItemCustomMissile.java | 22 +- .../items/weapon/ItemCustomMissilePart.java | 347 + .../com/hbm/items/weapon/ItemMissile.java | 366 +- src/main/java/com/hbm/main/ClientProxy.java | 10 +- src/main/java/com/hbm/main/MainRegistry.java | 9 +- .../java/com/hbm/main/ResourceManager.java | 11 +- .../java/com/hbm/packet/AuxButtonPacket.java | 2 +- .../java/com/hbm/packet/AuxGaugePacket.java | 2 +- .../projectile/RenderBombletSelena.java | 42 - .../entity/rocket/RenderMissileThermo.java | 37 - .../render/item/ItemRenderMissileGeneric.java | 5 - .../render/item/ItemRenderMissilePart.java | 2 +- .../item/weapon/ItemRenderBullshit.java | 101 - ...unchPadTier1.java => RenderLaunchPad.java} | 2 +- .../tileentity/RenderLaunchPadLarge.java | 100 + .../render/tileentity/RenderLaunchTable.java | 6 +- .../com/hbm/render/util/MissileMultipart.java | 2 +- .../java/com/hbm/render/util/MissilePart.java | 2 +- .../com/hbm/render/util/MissilePronter.java | 2 +- .../hbm/tileentity/TileEntityMachineBase.java | 3 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../bomb/TileEntityCompactLauncher.java | 22 +- .../tileentity/bomb/TileEntityLaunchPad.java | 2 - .../bomb/TileEntityLaunchPadLarge.java | 228 + .../bomb/TileEntityLaunchTable.java | 22 +- .../TileEntityMachineMissileAssembly.java | 42 +- .../assets/hbm/models/missileThermo.obj | 847 - .../hbm/models/weapons/launch_pad_erector.obj | 14244 ++++++++-------- .../gui/weapon/gui_launch_pad_large.png | Bin 0 -> 3064 bytes .../hbm/textures/gui/weapon/gui_turret.png | Bin 2081 -> 0 bytes .../items/achievement_icon.questionmark.png | Bin 0 -> 227 bytes .../hbm/textures/items/gun_dampfmaschine.png | Bin 215 -> 0 bytes .../textures/models/launchpad/erector_abm.png | Bin 1238 -> 1268 bytes .../hbm/textures/models/missileEndo.png | Bin 9979 -> 0 bytes .../assets/hbm/textures/models/missileExo.png | Bin 9904 -> 0 bytes 62 files changed, 8444 insertions(+), 9454 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityBombletSelena.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityBombletTheta.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java delete mode 100644 src/main/java/com/hbm/items/weapon/GunDampfmaschine.java create mode 100644 src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java delete mode 100644 src/main/java/com/hbm/render/entity/projectile/RenderBombletSelena.java delete mode 100644 src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java rename src/main/java/com/hbm/render/tileentity/{RenderLaunchPadTier1.java => RenderLaunchPad.java} (92%) create mode 100644 src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java create mode 100644 src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java delete mode 100644 src/main/resources/assets/hbm/models/missileThermo.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_large.png delete mode 100644 src/main/resources/assets/hbm/textures/gui/weapon/gui_turret.png create mode 100644 src/main/resources/assets/hbm/textures/items/achievement_icon.questionmark.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_dampfmaschine.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileEndo.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileExo.png diff --git a/changelog b/changelog index 080d89a35..4e0725dbb 100644 --- a/changelog +++ b/changelog @@ -18,7 +18,7 @@ * Several guns now have reload animations including most .357 revolvers and Samuel * Updated stealth missile texture * Some of the larger oil machines now render using display lists which should make them somewhat more performant -* Glyphid diggers can no longer yeet multiblocks or blocks with tile entity +* Glyphid diggers can no longer yeet multiblocks or blocks with a tile entity * Parasite-infested glyphids now explode into gore when the parasites pop out * Missiles now have a top acceleration twice as much as the previous acceleration, but instead of being static, the acceleration goes up from 0 to max within 3 seconds * This makes missiles reach top speed faster while also making the launches themselves slower and more pleasant @@ -33,6 +33,8 @@ * Corroded barrels now crumble after a while * PWRs on the edge of unloaded chunks now additionally reset their internal heat value to further reduce the time until they can potentially melt down * Removed the assembly recipe for the radial engine since it will be retired soon +* Removed the endo and exothermal missiles +* Doomsday missiles are no longer laggy cluster missiles, instead they are now near-identical to thermonuclear missiles but with an added fallout radius of 100 ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 403ff7508..2469d22d9 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1037,11 +1037,11 @@ public class ModBlocks { public static Block machine_orbus; public static Block launch_pad; + public static Block launch_pad_large; public static Block machine_missile_assembly; public static Block compact_launcher; - public static Block launch_table; public static Block soyuz_launcher; @@ -2144,6 +2144,7 @@ public class ModBlocks { tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); + launch_pad_large = new LaunchPadLarge(Material.iron).setBlockName("launch_pad_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":concrete_smooth"); machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); radar_screen = new MachineRadarScreen(Material.iron).setBlockName("radar_screen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3481,6 +3482,7 @@ public class ModBlocks { //Missile Blocks GameRegistry.registerBlock(machine_missile_assembly, machine_missile_assembly.getUnlocalizedName()); GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); + GameRegistry.registerBlock(launch_pad_large, launch_pad_large.getUnlocalizedName()); GameRegistry.registerBlock(compact_launcher, compact_launcher.getUnlocalizedName()); GameRegistry.registerBlock(launch_table, launch_table.getUnlocalizedName()); GameRegistry.registerBlock(soyuz_launcher, soyuz_launcher.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java new file mode 100644 index 000000000..3ee94b272 --- /dev/null +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java @@ -0,0 +1,37 @@ +package com.hbm.blocks.bomb; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class LaunchPadLarge extends BlockDummyable { + + public LaunchPadLarge(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLaunchPadLarge(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 4, 4, 4, 4}; + } + + @Override + public int getOffset() { + return 4; + } +} diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 84d4aab87..179da42d0 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -71,8 +71,6 @@ public class EntityMappings { addEntity(EntityMissileInferno.class, "entity_missile_inferno", 1000); addEntity(EntityMissileRain.class, "entity_missile_rain", 1000); addEntity(EntityMissileDrill.class, "entity_missile_drill", 1000); - addEntity(EntityMissileEndo.class, "entity_missile_endo", 1000); - addEntity(EntityMissileExo.class, "entity_missile_exo", 1000); addEntity(EntityMissileMirv.class, "entity_missile_mirv", 1000); addEntity(EntityMIRV.class, "entity_mirvlet", 1000); addEntity(EntitySmokeFX.class, "entity_smoke_fx", 1000); @@ -111,8 +109,6 @@ public class EntityMappings { addEntity(EntityMinecartTest.class, "entity_minecart_test", 1000); addEntity(EntitySparkBeam.class, "entity_spark_beam", 1000); addEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 1000); - addEntity(EntityBombletTheta.class, "entity_theta", 1000); - addEntity(EntityBombletSelena.class, "entity_selena", 1000); addEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 1000); addEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 1000); addEntity(EntityVortex.class, "entity_vortex", 250); diff --git a/src/main/java/com/hbm/entity/missile/EntityBombletSelena.java b/src/main/java/com/hbm/entity/missile/EntityBombletSelena.java deleted file mode 100644 index bd0d6efc1..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityBombletSelena.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityBombletSelena extends EntityThrowable { - - double decelY = 0.1D; - double accelXZ = 0.1D; - - public EntityBombletSelena(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - Vec3 vector = Vec3.createVectorHelper(motionX, 0, motionZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ; - vector.zCoord *= accelXZ; - this.motionY -= decelY; - this.motionX -= vector.xCoord; - this.motionZ -= vector.zCoord; - - this.rotation(); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - if(!this.worldObj.isRemote) - { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 20.0F, true, true, true); - ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); - } - this.setDead(); - } - - //if(!this.worldObj.isRemote) - // this.worldObj.spawnEntityInWorld(new EntityOilSpillFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - 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; - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 25000; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityBombletTheta.java b/src/main/java/com/hbm/entity/missile/EntityBombletTheta.java deleted file mode 100644 index 603f7d88f..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityBombletTheta.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.explosion.ExplosionLarge; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityBombletTheta extends EntityThrowable { - - double decelY = 0.1D; - double accelXZ = 0.1D; - - public EntityBombletTheta(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - Vec3 vector = Vec3.createVectorHelper(motionX, 0, motionZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ; - vector.zCoord *= accelXZ; - this.motionY -= decelY; - this.motionX -= vector.xCoord; - this.motionZ -= vector.zCoord; - - if(motionY < -0.75D && !worldObj.isRemote && rand.nextInt(10) == 0) { - EntityBombletSelena selena = new EntityBombletSelena(worldObj); - selena.posX = this.posX; - selena.posY = this.posY; - selena.posZ = this.posZ; - selena.motionX = rand.nextGaussian(); - selena.motionY = rand.nextGaussian(); - selena.motionZ = rand.nextGaussian(); - selena.decelY = this.decelY; - selena.accelXZ = this.accelXZ; - worldObj.spawnEntityInWorld(selena); - } - - this.rotation(); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - if(!this.worldObj.isRemote) - { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 50.0F, true, true, true); - } - this.setDead(); - } - - if(!this.worldObj.isRemote) - this.worldObj.spawnEntityInWorld(new EntitySSmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - 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; - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 25000; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index c8c88ce6c..4ee1c8acf 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -13,6 +13,7 @@ import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.items.weapon.ItemMissile; import com.hbm.main.MainRegistry; import com.hbm.util.TrackerUtil; @@ -75,6 +76,9 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen this.setSize(1.5F, 1.5F); } + /** Auto-generates radar blip level and all that from the item */ + public abstract ItemStack getMissileItemForInfo(); + @Override public boolean canBeSeenBy(Object radar) { return true; @@ -346,4 +350,40 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen if(largeSmoke) ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, ExplosionLarge.cloudFunction((int) strength)); xnt.explode(); } + + @Override + public String getUnlocalizedName() { + ItemStack item = this.getMissileItemForInfo(); + if(item != null && item.getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) item.getItem(); + switch(missile.tier) { + case TIER0: return "radar.target.tier0"; + case TIER1: return "radar.target.tier1"; + case TIER2: return "radar.target.tier2"; + case TIER3: return "radar.target.tier3"; + case TIER4: return "radar.target.tier4"; + default: return "Unknown"; + } + } + + return "Unknown"; + } + + @Override + public int getBlipLevel() { + ItemStack item = this.getMissileItemForInfo(); + if(item != null && item.getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) item.getItem(); + switch(missile.tier) { + case TIER0: return IRadarDetectableNT.TIER0; + case TIER1: return IRadarDetectableNT.TIER1; + case TIER2: return IRadarDetectableNT.TIER2; + case TIER3: return IRadarDetectableNT.TIER3; + case TIER4: return IRadarDetectableNT.TIER4; + default: return IRadarDetectableNT.SPECIAL; + } + } + + return IRadarDetectableNT.SPECIAL; + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 7c82eb017..94c296f17 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -14,13 +14,13 @@ import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.MissileStruct; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.PartSize; -import com.hbm.items.weapon.ItemMissile.WarheadType; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart.WarheadType; import com.hbm.main.MainRegistry; -import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -28,7 +28,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLoader, IRadarDetectable { +public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLoader { protected float fuel; protected float consumption; @@ -61,8 +61,8 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo this.dataWatcher.updateObject(11, Integer.valueOf(0)); } - ItemMissile fuselage = (ItemMissile) template.fuselage; - ItemMissile thruster = (ItemMissile) template.thruster; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart) template.fuselage; + ItemCustomMissilePart thruster = (ItemCustomMissilePart) template.thruster; this.fuel = (Float) fuselage.attributes[1]; this.consumption = (Float) thruster.attributes[1]; @@ -128,7 +128,7 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo Vec3 v = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); String smoke = ""; - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); FuelType type = (FuelType) part.attributes[0]; switch(type) { @@ -145,7 +145,7 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo @Override public void onImpact() { //TODO: demolish this steaming pile of shit - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(9)); + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(9)); WarheadType type = (WarheadType) part.attributes[0]; float strength = (Float) part.attributes[1]; @@ -218,26 +218,10 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo } } - @Override - public RadarTargetType getTargetType() { - - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); - PartSize top = part.top; - PartSize bottom = part.bottom; - - if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) return RadarTargetType.MISSILE_10; - if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) return RadarTargetType.MISSILE_10_15; - if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) return RadarTargetType.MISSILE_15; - if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return RadarTargetType.MISSILE_15_20; - if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return RadarTargetType.MISSILE_20; - - return RadarTargetType.MISSILE_TIER1; - } - @Override public String getUnlocalizedName() { - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); PartSize top = part.top; PartSize bottom = part.bottom; @@ -253,7 +237,7 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo @Override public int getBlipLevel() { - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); PartSize top = part.top; PartSize bottom = part.bottom; @@ -268,4 +252,9 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo @Override public List getDebris() { return new ArrayList(); } @Override public ItemStack getDebrisRareDrop() { return null; } + + @Override + public ItemStack getMissileItemForInfo() { + return new ItemStack(ModItems.missile_custom); + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java index 552f88379..33a9da83a 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java @@ -2,116 +2,32 @@ package com.hbm.entity.missile; import java.util.List; -import com.hbm.explosion.ExplosionLarge; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.items.ModItems; -import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class EntityMissileDoomsday extends EntityMissileBaseNT { - public EntityMissileDoomsday(World p_i1582_1_) { - super(p_i1582_1_); + public EntityMissileDoomsday(World world) { + super(world); } public EntityMissileDoomsday(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } - + @Override public void onImpact() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - } - - public void onUpdate() { - super.onUpdate(); - if(motionY <= 0) { - if(!worldObj.isRemote) { - this.setDead(); - EntityBombletTheta bomblet1 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet2 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet3 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet4 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet5 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet6 = new EntityBombletTheta(worldObj); - bomblet1.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet1.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet1.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet2.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet2.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet2.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet3.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet3.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet3.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet4.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet4.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet4.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet5.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet5.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet5.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet6.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet6.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet6.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet1.posX = this.posX; - bomblet1.posY = this.posY; - bomblet1.posZ = this.posZ; - bomblet2.posX = this.posX; - bomblet2.posY = this.posY; - bomblet2.posZ = this.posZ; - bomblet3.posX = this.posX; - bomblet3.posY = this.posY; - bomblet3.posZ = this.posZ; - bomblet4.posX = this.posX; - bomblet4.posY = this.posY; - bomblet4.posZ = this.posZ; - bomblet5.posX = this.posX; - bomblet5.posY = this.posY; - bomblet5.posZ = this.posZ; - bomblet6.posX = this.posX; - bomblet6.posY = this.posY; - bomblet6.posZ = this.posZ; - - bomblet1.decelY = this.decelY; - bomblet2.decelY = this.decelY; - bomblet3.decelY = this.decelY; - bomblet4.decelY = this.decelY; - bomblet5.decelY = this.decelY; - bomblet6.decelY = this.decelY; - bomblet1.accelXZ = this.accelXZ; - bomblet2.accelXZ = this.accelXZ; - bomblet3.accelXZ = this.accelXZ; - bomblet4.accelXZ = this.accelXZ; - bomblet5.accelXZ = this.accelXZ; - bomblet6.accelXZ = this.accelXZ; - worldObj.spawnEntityInWorld(bomblet1); - worldObj.spawnEntityInWorld(bomblet2); - worldObj.spawnEntityInWorld(bomblet3); - worldObj.spawnEntityInWorld(bomblet4); - worldObj.spawnEntityInWorld(bomblet5); - worldObj.spawnEntityInWorld(bomblet6); - ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, ExplosionLarge.cloudFunction(25)); - ExplosionLarge.spawnTracers(worldObj, posX, posY, posZ, 10); - } - } + this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ).moreFallout(100)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); } - @Override - public List getDebris() { - return null; - } - - @Override - public ItemStack getDebrisRareDrop() { - return null; - } - - @Override - public String getUnlocalizedName() { - return "radar.target.doomsday"; - } - - @Override - public int getBlipLevel() { - return IRadarDetectableNT.TIER4; - } + @Override public List getDebris() { return null; } + @Override public ItemStack getDebrisRareDrop() { return null; } + @Override public String getUnlocalizedName() { return "radar.target.doomsday"; } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday); } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java index 7a0b89ef8..48a0e375c 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java @@ -11,7 +11,6 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -60,14 +59,14 @@ public class EntityMissileShuttle extends EntityMissileBaseNT { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.missile_generic); } - + @Override public String getUnlocalizedName() { return "radar.target.shuttle"; } @Override - public int getBlipLevel() { - return IRadarDetectableNT.TIER3; + public ItemStack getMissileItemForInfo() { + return new ItemStack(ModItems.missile_shuttle); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java index a04805c51..71f6541b7 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java @@ -8,7 +8,6 @@ import com.hbm.inventory.material.Mats; import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ModItems; -import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -24,10 +23,10 @@ public class EntityMissileStealth extends EntityMissileBaseNT { return list; } - @Override public String getUnlocalizedName() { return "radar.target.tier1"; } - @Override public int getBlipLevel() { return IRadarDetectableNT.TIER1; } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_stealth); } @Override public boolean canBeSeenBy(Object radar) { return false; } @Override public void onImpact() { this.explodeStandard(20F, 24, false, true); } @Override public ItemStack getDebrisRareDrop() { return DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC); } + } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java index a3b7a6ba9..d6132a9c5 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -14,8 +14,6 @@ import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.items.ModItems; -import api.hbm.entity.IRadarDetectableNT; - import com.hbm.items.ItemAmmoEnums.AmmoFatman; import net.minecraft.item.ItemStack; @@ -37,16 +35,6 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { return list; } - @Override - public String getUnlocalizedName() { - return "radar.target.tier0"; - } - - @Override - public int getBlipLevel() { - return IRadarDetectableNT.TIER0; - } - @Override protected float getContrailScale() { return 0.5F; @@ -57,6 +45,7 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.PARAMS_HIGH); } @Override public ItemStack getDebrisRareDrop() { return ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_micro); } } public static class EntityMissileSchrabidium extends EntityMissileTier0 { @@ -74,6 +63,7 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { } } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.powder_schrabidium, 1); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_schrabidium); } } public static class EntityMissileBHole extends EntityMissileTier0 { @@ -88,6 +78,7 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { this.worldObj.spawnEntityInWorld(bl); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.grenade_black_hole, 1); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_bhole); } } public static class EntityMissileTaint extends EntityMissileTier0 { @@ -103,6 +94,7 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { } } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.powder_spark_mix, 1); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_taint); } } public static class EntityMissileEMP extends EntityMissileTier0 { @@ -117,5 +109,6 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { worldObj.spawnEntityInWorld(wave); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModBlocks.emp_bomb, 1); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_emp); } } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java index 99de6e68e..3f9b01111 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -25,21 +25,12 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { return list; } - @Override - public String getUnlocalizedName() { - return "radar.target.tier1"; - } - - @Override - public int getBlipLevel() { - return IRadarDetectableNT.TIER1; - } - public static class EntityMissileGeneric extends EntityMissileTier1 { public EntityMissileGeneric(World world) { super(world); } public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { this.explodeStandard(15F, 24, false, true); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_small); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_generic); } } public static class EntityMissileDecoy extends EntityMissileTier1 { @@ -49,6 +40,7 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.ingot_steel); } @Override public String getUnlocalizedName() { return "radar.target.tier4"; } @Override public int getBlipLevel() { return IRadarDetectableNT.TIER4; } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_decoy); } } public static class EntityMissileIncendiary extends EntityMissileTier1 { @@ -56,6 +48,7 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { this.explodeStandard(15F, 24, true, true); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_small); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_incendiary); } } public static class EntityMissileCluster extends EntityMissileTier1 { @@ -67,6 +60,7 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { } @Override public void cluster() { this.onImpact(); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_small); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_cluster); } } public static class EntityMissileBunkerBuster extends EntityMissileTier1 { @@ -79,5 +73,6 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 5); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_small); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_buster); } } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java index 421e5ba35..7b291a2da 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java @@ -44,6 +44,7 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { this.explodeStandard(30F, 32, false, true); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_strong); } } public static class EntityMissileIncendiaryStrong extends EntityMissileTier2 { @@ -54,6 +55,7 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_incendiary_strong); } } public static class EntityMissileClusterStrong extends EntityMissileTier2 { @@ -65,6 +67,7 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { } @Override public void cluster() { this.onImpact(); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_cluster_strong); } } public static class EntityMissileBusterStrong extends EntityMissileTier2 { @@ -77,6 +80,7 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 8); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_buster_strong); } } public static class EntityMissileEMPStrong extends EntityMissileTier2 { @@ -90,5 +94,6 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { worldObj.spawnEntityInWorld(emp); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_emp_strong); } } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java index 0c7342cc2..fa24a3b32 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -6,7 +6,6 @@ import java.util.List; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; -import com.hbm.explosion.ExplosionThermo; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.items.ModItems; @@ -48,6 +47,7 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { this.explodeStandard(50F, 48, false, true); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_large); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_burst); } } public static class EntityMissileInferno extends EntityMissileTier3 { @@ -59,6 +59,7 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_large); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_inferno); } } public static class EntityMissileRain extends EntityMissileTier3 { @@ -70,6 +71,7 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { } @Override public void cluster() { this.onImpact(); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_large); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_rain); } } public static class EntityMissileDrill extends EntityMissileTier3 { @@ -86,45 +88,6 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { ExplosionLarge.jolt(worldObj, this.posX, this.posY, this.posZ, 10, 50, 1); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_large); } - } - - public static class EntityMissileEndo extends EntityMissileTier3 { - public EntityMissileEndo(World world) { super(world); } - public EntityMissileEndo(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } - @Override public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - ExplosionThermo.freeze(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); - ExplosionThermo.freezer(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); - } - @Override public List getDebris() { - List list = new ArrayList(); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.plate_aluminium, 8)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - return list; - } - @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_thermo_exo); } - } - - public static class EntityMissileExo extends EntityMissileTier3 { - public EntityMissileExo(World world) { super(world); } - public EntityMissileExo(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } - @Override public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - ExplosionThermo.scorch(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); - ExplosionThermo.setEntitiesOnFire(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); - } - @Override public List getDebris() { - List list = new ArrayList(); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.plate_aluminium, 8)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - return list; - } - @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_thermo_exo); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_drill); } } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java index fb56144ad..a0d211177 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -48,6 +48,7 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_nuclear); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_nuclear); } } public static class EntityMissileMirv extends EntityMissileTier4 { @@ -67,6 +68,7 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { return list; } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_mirv); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_nuclear_cluster); } } public static class EntityMissileVolcano extends EntityMissileTier4 { @@ -78,5 +80,6 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { worldObj.setBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ), ModBlocks.volcano_core); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_volcano); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_volcano); } } } diff --git a/src/main/java/com/hbm/handler/MissileStruct.java b/src/main/java/com/hbm/handler/MissileStruct.java index b7a4b5e52..79ea52b7e 100644 --- a/src/main/java/com/hbm/handler/MissileStruct.java +++ b/src/main/java/com/hbm/handler/MissileStruct.java @@ -1,7 +1,7 @@ package com.hbm.handler; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import io.netty.buffer.ByteBuf; import net.minecraft.item.Item; @@ -9,35 +9,35 @@ import net.minecraft.item.ItemStack; public class MissileStruct { - public ItemMissile warhead; - public ItemMissile fuselage; - public ItemMissile fins; - public ItemMissile thruster; + public ItemCustomMissilePart warhead; + public ItemCustomMissilePart fuselage; + public ItemCustomMissilePart fins; + public ItemCustomMissilePart thruster; public MissileStruct() { } public MissileStruct(ItemStack w, ItemStack f, ItemStack s, ItemStack t) { - if(w != null && w.getItem() instanceof ItemMissile) - warhead = (ItemMissile) w.getItem(); - if(f != null && f.getItem() instanceof ItemMissile) - fuselage = (ItemMissile) f.getItem(); - if(s != null && s.getItem() instanceof ItemMissile) - fins = (ItemMissile) s.getItem(); - if(t != null && t.getItem() instanceof ItemMissile) - thruster = (ItemMissile) t.getItem(); + if(w != null && w.getItem() instanceof ItemCustomMissilePart) + warhead = (ItemCustomMissilePart) w.getItem(); + if(f != null && f.getItem() instanceof ItemCustomMissilePart) + fuselage = (ItemCustomMissilePart) f.getItem(); + if(s != null && s.getItem() instanceof ItemCustomMissilePart) + fins = (ItemCustomMissilePart) s.getItem(); + if(t != null && t.getItem() instanceof ItemCustomMissilePart) + thruster = (ItemCustomMissilePart) t.getItem(); } public MissileStruct(Item w, Item f, Item s, Item t) { - if(w instanceof ItemMissile) - warhead = (ItemMissile) w; - if(f instanceof ItemMissile) - fuselage = (ItemMissile) f; - if(s instanceof ItemMissile) - fins = (ItemMissile) s; - if(t instanceof ItemMissile) - thruster = (ItemMissile) t; + if(w instanceof ItemCustomMissilePart) + warhead = (ItemCustomMissilePart) w; + if(f instanceof ItemCustomMissilePart) + fuselage = (ItemCustomMissilePart) f; + if(s instanceof ItemCustomMissilePart) + fins = (ItemCustomMissilePart) s; + if(t instanceof ItemCustomMissilePart) + thruster = (ItemCustomMissilePart) t; } public void writeToByteBuffer(ByteBuf buf) { @@ -74,16 +74,16 @@ public class MissileStruct { int t = buf.readInt(); if(w != 0) - multipart.warhead = (ItemMissile) Item.getItemById(w); + multipart.warhead = (ItemCustomMissilePart) Item.getItemById(w); if(f != 0) - multipart.fuselage = (ItemMissile) Item.getItemById(f); + multipart.fuselage = (ItemCustomMissilePart) Item.getItemById(f); if(s != 0) - multipart.fins = (ItemMissile) Item.getItemById(s); + multipart.fins = (ItemCustomMissilePart) Item.getItemById(s); if(t != 0) - multipart.thruster = (ItemMissile) Item.getItemById(t); + multipart.thruster = (ItemCustomMissilePart) Item.getItemById(t); return multipart; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java new file mode 100644 index 000000000..4ba62c1ae --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java @@ -0,0 +1,55 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerLaunchPadLarge extends Container { + + private TileEntityLaunchPadLarge launchpad; + + public ContainerLaunchPadLarge(InventoryPlayer invPlayer, TileEntityLaunchPadLarge tedf) { + + launchpad = tedf; + + //Missile + this.addSlotToContainer(new Slot(tedf, 0, 26, 36)); + //Designator + this.addSlotToContainer(new Slot(tedf, 1, 26, 72)); + //Battery + this.addSlotToContainer(new Slot(tedf, 2, 107, 90)); + //Fuel in + this.addSlotToContainer(new Slot(tedf, 3, 125, 90)); + //Fuel out + this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 125, 108)); + //Oxidizer in + this.addSlotToContainer(new Slot(tedf, 5, 143, 90)); + //Oxidizer out + this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 143, 108)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 154 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 212)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int par2) { + return null; //TODO + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return launchpad.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java new file mode 100644 index 000000000..4d1fb1c22 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java @@ -0,0 +1,88 @@ +package com.hbm.inventory.gui; + +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.container.ContainerLaunchPadLarge; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.lib.RefStrings; +import com.hbm.render.item.ItemRenderMissileGeneric; +import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUILaunchPadLarge extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_launch_pad_large.png"); + private TileEntityLaunchPadLarge launchpad; + + public GUILaunchPadLarge(InventoryPlayer invPlayer, TileEntityLaunchPadLarge tedf) { + super(new ContainerLaunchPadLarge(invPlayer, tedf)); + launchpad = tedf; + + this.xSize = 176; + this.ySize = 236; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.launchpad.hasCustomInventoryName() ? this.launchpad.getInventoryName() : I18n.format(this.launchpad.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @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(launchpad.slots[0] != null) { + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(launchpad.slots[0]).makeSingular()); + if(renderer != null) { + GL11.glPushMatrix(); + + GL11.glTranslatef(guiLeft + 70, guiTop + 120, 100); + + double scale = 1D; + + if(launchpad.slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) launchpad.slots[0].getItem(); + switch(missile.formFactor) { + case ABM: scale = 1.45D; break; + case MICRO: scale = 2.5D; break; + case V2: scale = 1.75D; break; + case STRONG: scale = 1.375D; break; + case HUGE: scale = 0.925D; break; + case ATLAS: break; + case OTHER: break; + } + if(missile == ModItems.missile_stealth) scale = 1.125D; + } + + GL11.glRotatef(90, 0, 1, 0); + GL11.glScaled(scale, scale, scale); + GL11.glScalef(-8, -8, -8); + + GL11.glPushMatrix(); + GL11.glRotatef(75, 0.0F, 1.0F, 0.0F); + RenderHelper.enableStandardItemLighting(); + GL11.glPopMatrix(); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + renderer.accept(Minecraft.getMinecraft().getTextureManager()); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java b/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java index fc4621b1f..c5373d331 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java @@ -4,7 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerLaunchTable; import com.hbm.items.weapon.ItemCustomMissile; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index e7078796f..b4bf12a3a 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -110,9 +110,6 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear), 600, 50_000L, new ComparableStack(ModItems.warhead_nuclear), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear_cluster), 600, 50_000L, new ComparableStack(ModItems.warhead_mirv), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_volcano), 600, 50_000L, new ComparableStack(ModItems.warhead_volcano), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); - - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_endo), 200, 10_000L, new ComparableStack(ModItems.warhead_thermo_endo), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_exo), 200, 10_000L, new ComparableStack(ModItems.warhead_thermo_exo), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); } public static HashMap getRecipes() { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index dd1e6b876..dd0a5e044 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -195,8 +195,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new ComparableStack(ModItems.wire_red_copper, 6), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.circuit_targeting_tier4, 1) },300); makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 3) },500); makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); - makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); - makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); makeRecipe(new ComparableStack(ModItems.missile_stealth, 1), new AStack[] { new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(CU.plate(), 10), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_gold), new OreDictStack(STEEL.bolt(), 32) },1200); makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel), new ComparableStack(ModItems.circuit_gold, 1) },600); makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.board_copper, 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index a86838291..cfc8072df 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -63,7 +63,8 @@ public class ItemEnums { DIGAMMAKNOW, DIGAMMAKAUAIMOHO, DIGAMMAUPONTOP, - DIGAMMAFOROURRIGHT + DIGAMMAFOROURRIGHT, + QUESTIONMARK } public static enum EnumFuelAdditive { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index fa7e4ec70..21588be1a 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -33,7 +33,10 @@ import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.items.tool.*; import com.hbm.items.tool.ItemToolAbility.EnumToolType; import com.hbm.items.weapon.*; -import com.hbm.items.weapon.ItemMissile.*; +import com.hbm.items.weapon.ItemCustomMissilePart.*; +import com.hbm.items.weapon.ItemMissile.MissileFormFactor; +import com.hbm.items.weapon.ItemMissile.MissileFuel; +import com.hbm.items.weapon.ItemMissile.MissileTier; import com.hbm.items.weapon.gununified.ItemEnergyGunBase; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -706,8 +709,6 @@ public class ModItems { public static Item warhead_mirvlet; public static Item warhead_mirv; public static Item warhead_volcano; - public static Item warhead_thermo_endo; - public static Item warhead_thermo_exo; public static Item fuel_tank_small; public static Item fuel_tank_medium; @@ -1321,8 +1322,6 @@ public class ModItems { public static Item missile_nuclear; public static Item missile_nuclear_cluster; public static Item missile_volcano; - public static Item missile_endo; - public static Item missile_exo; public static Item missile_doomsday; public static Item missile_taint; public static Item missile_micro; @@ -1633,7 +1632,6 @@ public class ModItems { public static Item gun_defabricator; public static Item gun_defabricator_ammo; public static Item gun_vortex; - public static Item gun_dampfmaschine; public static Item gun_waluigi; public static Item gun_darter; public static Item gun_detonator; @@ -3075,8 +3073,6 @@ public class ModItems { warhead_mirvlet = new Item().setUnlocalizedName("warhead_mirvlet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":warhead_mirvlet"); warhead_mirv = new Item().setUnlocalizedName("warhead_mirv").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_mirv"); warhead_volcano = new Item().setUnlocalizedName("warhead_volcano").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_volcano"); - warhead_thermo_endo = new Item().setUnlocalizedName("warhead_thermo_endo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_thermo_endo"); - warhead_thermo_exo = new Item().setUnlocalizedName("warhead_thermo_exo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_thermo_exo"); fuel_tank_small = new Item().setUnlocalizedName("fuel_tank_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_small"); fuel_tank_medium = new Item().setUnlocalizedName("fuel_tank_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_medium"); @@ -3935,34 +3931,32 @@ public class ModItems { designator_manual = new ItemDesingatorManual().setUnlocalizedName("designator_manual").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_manual"); designator_arty_range = new ItemDesignatorArtyRange().setUnlocalizedName("designator_arty_range").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_arty_range"); missile_assembly = new Item().setUnlocalizedName("missile_assembly").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":missile_assembly"); - missile_generic = new Item().setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic"); - missile_anti_ballistic = new Item().setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); - missile_incendiary = new Item().setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary"); - missile_cluster = new Item().setUnlocalizedName("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster"); - missile_buster = new Item().setUnlocalizedName("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster"); - missile_decoy = new Item().setUnlocalizedName("missile_decoy").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_decoy"); - missile_strong = new Item().setUnlocalizedName("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_strong"); - missile_incendiary_strong = new Item().setUnlocalizedName("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary_strong"); - missile_cluster_strong = new Item().setUnlocalizedName("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster_strong"); - missile_buster_strong = new Item().setUnlocalizedName("missile_buster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster_strong"); - missile_emp_strong = new Item().setUnlocalizedName("missile_emp_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp_strong"); - missile_burst = new Item().setUnlocalizedName("missile_burst").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_burst"); - missile_inferno = new Item().setUnlocalizedName("missile_inferno").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_inferno"); - missile_rain = new Item().setUnlocalizedName("missile_rain").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_rain"); - missile_drill = new Item().setUnlocalizedName("missile_drill").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_drill"); - missile_nuclear = new Item().setUnlocalizedName("missile_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear"); - missile_nuclear_cluster = new Item().setUnlocalizedName("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear_cluster"); - missile_volcano = new ItemCustomLore().setUnlocalizedName("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_volcano"); - missile_endo = new Item().setUnlocalizedName("missile_endo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_endo"); - missile_exo = new Item().setUnlocalizedName("missile_exo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_exo"); - missile_doomsday = new Item().setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); - missile_taint = new Item().setUnlocalizedName("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_taint"); - missile_micro = new Item().setUnlocalizedName("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_micro"); - missile_bhole = new Item().setUnlocalizedName("missile_bhole").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_bhole"); - missile_schrabidium = new Item().setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); - missile_emp = new Item().setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); - missile_shuttle = new ItemMissileShuttle().setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); - missile_stealth = new Item().setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); + missile_generic = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic"); + missile_anti_ballistic = new ItemMissile(MissileFormFactor.ABM, MissileTier.TIER1).setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); + missile_incendiary = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary"); + missile_cluster = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster"); + missile_buster = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster"); + missile_decoy = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_decoy").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_decoy"); + missile_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_strong"); + missile_incendiary_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary_strong"); + missile_cluster_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster_strong"); + missile_buster_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_buster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster_strong"); + missile_emp_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_emp_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp_strong"); + missile_burst = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_burst").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_burst"); + missile_inferno = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_inferno").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_inferno"); + missile_rain = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_rain").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_rain"); + missile_drill = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_drill").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_drill"); + missile_nuclear = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear"); + missile_nuclear_cluster = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear_cluster"); + missile_volcano = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_volcano"); + missile_doomsday = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); + missile_taint = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_taint"); + missile_micro = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_micro"); + missile_bhole = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_bhole").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_bhole"); + missile_schrabidium = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); + missile_emp = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); + missile_shuttle = new ItemMissile(MissileFormFactor.OTHER, MissileTier.TIER3, MissileFuel.KEROSENE_PEROXIDE).setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); + missile_stealth = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER1).setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_carrier"); missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); @@ -3982,147 +3976,147 @@ public class ModItems { sat_designator = new ItemSatDesignator().setUnlocalizedName("sat_designator").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_designator"); sat_relay = new ItemSatRelay().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay"); - mp_thruster_10_kerosene = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); - mp_thruster_10_kerosene_tec = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec"); - mp_thruster_10_solid = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F) .setUnlocalizedName("mp_thruster_10_solid"); - mp_thruster_10_xenon = new ItemMissile().makeThruster(FuelType.XENON, 1F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_thruster_10_xenon"); - mp_thruster_15_kerosene = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene"); - mp_thruster_15_kerosene_tec = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_15_kerosene_tec"); - mp_thruster_15_kerosene_dual = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_dual"); - mp_thruster_15_kerosene_triple = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_triple"); - mp_thruster_15_solid = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_solid"); - mp_thruster_15_solid_hexdecuple = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(25F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_solid_hexdecuple"); - mp_thruster_15_hydrogen = new ItemMissile().makeThruster(FuelType.HYDROGEN, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_hydrogen"); - mp_thruster_15_hydrogen_dual = new ItemMissile().makeThruster(FuelType.HYDROGEN, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_hydrogen_dual"); - mp_thruster_15_balefire_short = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire_short"); - mp_thruster_15_balefire = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire"); - mp_thruster_15_balefire_large = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setHealth(35F) .setUnlocalizedName("mp_thruster_15_balefire_large"); - mp_thruster_15_balefire_large_rad = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setAuthor("The Master").setHealth(35F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_balefire_large_rad"); - mp_thruster_20_kerosene = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene"); - mp_thruster_20_kerosene_dual = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_dual"); - mp_thruster_20_kerosene_triple = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_triple"); - mp_thruster_20_solid = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("It's basically just a big hole at the end of the fuel tank.").setUnlocalizedName("mp_thruster_20_solid"); - mp_thruster_20_solid_multi = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F) .setUnlocalizedName("mp_thruster_20_solid_multi"); - mp_thruster_20_solid_multier = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("Did I miscount? Hope not.").setUnlocalizedName("mp_thruster_20_solid_multier"); + mp_thruster_10_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); + mp_thruster_10_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec"); + mp_thruster_10_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F) .setUnlocalizedName("mp_thruster_10_solid"); + mp_thruster_10_xenon = new ItemCustomMissilePart().makeThruster(FuelType.XENON, 1F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_thruster_10_xenon"); + mp_thruster_15_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene"); + mp_thruster_15_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_15_kerosene_tec"); + mp_thruster_15_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_dual"); + mp_thruster_15_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_triple"); + mp_thruster_15_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_solid"); + mp_thruster_15_solid_hexdecuple = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(25F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_solid_hexdecuple"); + mp_thruster_15_hydrogen = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_hydrogen"); + mp_thruster_15_hydrogen_dual = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_hydrogen_dual"); + mp_thruster_15_balefire_short = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire_short"); + mp_thruster_15_balefire = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire"); + mp_thruster_15_balefire_large = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setHealth(35F) .setUnlocalizedName("mp_thruster_15_balefire_large"); + mp_thruster_15_balefire_large_rad = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setAuthor("The Master").setHealth(35F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_balefire_large_rad"); + mp_thruster_20_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene"); + mp_thruster_20_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_dual"); + mp_thruster_20_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_triple"); + mp_thruster_20_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("It's basically just a big hole at the end of the fuel tank.").setUnlocalizedName("mp_thruster_20_solid"); + mp_thruster_20_solid_multi = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F) .setUnlocalizedName("mp_thruster_20_solid_multi"); + mp_thruster_20_solid_multier = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("Did I miscount? Hope not.").setUnlocalizedName("mp_thruster_20_solid_multier"); - mp_stability_10_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_stability_10_flat"); - mp_stability_10_cruise = new ItemMissile().makeStability(0.25F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_stability_10_cruise"); - mp_stability_10_space = new ItemMissile().makeStability(0.35F, PartSize.SIZE_10).setHealth(5F).setRarity(Rarity.COMMON).setWittyText("Standing there alone, the ship is waiting / All systems are go, are you sure?") .setUnlocalizedName("mp_stability_10_space"); - mp_stability_15_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); - mp_stability_15_thin = new ItemMissile().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); - mp_stability_15_soyuz = new ItemMissile().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("Союз!").setUnlocalizedName("mp_stability_15_soyuz"); - mp_stability_20_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20"); + mp_stability_10_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_stability_10_flat"); + mp_stability_10_cruise = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_stability_10_cruise"); + mp_stability_10_space = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_10).setHealth(5F).setRarity(Rarity.COMMON).setWittyText("Standing there alone, the ship is waiting / All systems are go, are you sure?") .setUnlocalizedName("mp_stability_10_space"); + mp_stability_15_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); + mp_stability_15_thin = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); + mp_stability_15_soyuz = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("Союз!").setUnlocalizedName("mp_stability_15_soyuz"); + mp_stability_20_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20"); - mp_fuselage_10_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(20F).setUnlocalizedName("mp_fuselage_10_kerosene"); - mp_fuselage_10_kerosene_camo = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_kerosene_camo"); - mp_fuselage_10_kerosene_desert = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_kerosene_desert"); - mp_fuselage_10_kerosene_sky = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_kerosene_sky"); - mp_fuselage_10_kerosene_flames = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_kerosene_flames"); - mp_fuselage_10_kerosene_insulation = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(25F).setUnlocalizedName("mp_fuselage_10_kerosene_insulation"); - mp_fuselage_10_kerosene_sleek = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_kerosene_sleek"); - mp_fuselage_10_kerosene_metal = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Bolted Metal").setHealth(30F).setAuthor("Hoboy").setUnlocalizedName("mp_fuselage_10_kerosene_metal"); - mp_fuselage_10_kerosene_taint = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_kerosene_taint"); + mp_fuselage_10_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(20F).setUnlocalizedName("mp_fuselage_10_kerosene"); + mp_fuselage_10_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_kerosene_camo"); + mp_fuselage_10_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_kerosene_desert"); + mp_fuselage_10_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_kerosene_sky"); + mp_fuselage_10_kerosene_flames = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_kerosene_flames"); + mp_fuselage_10_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(25F).setUnlocalizedName("mp_fuselage_10_kerosene_insulation"); + mp_fuselage_10_kerosene_sleek = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_kerosene_sleek"); + mp_fuselage_10_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Bolted Metal").setHealth(30F).setAuthor("Hoboy").setUnlocalizedName("mp_fuselage_10_kerosene_metal"); + mp_fuselage_10_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_kerosene_taint"); - mp_fuselage_10_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(25F) .setUnlocalizedName("mp_fuselage_10_solid"); - mp_fuselage_10_solid_flames = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_solid_flames"); - mp_fuselage_10_solid_insulation = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(30F).setUnlocalizedName("mp_fuselage_10_solid_insulation"); - mp_fuselage_10_solid_sleek = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_solid_sleek"); - mp_fuselage_10_solid_soviet_glory = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(35F).setTitle("Soviet Glory").setUnlocalizedName("mp_fuselage_10_solid_soviet_glory"); - mp_fuselage_10_solid_cathedral = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Satan").setTitle("Unholy Cathedral").setWittyText("Quakeesque!").setUnlocalizedName("mp_fuselage_10_solid_cathedral"); - mp_fuselage_10_solid_moonlit = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master & Hoboy").setTitle("Moonlit").setUnlocalizedName("mp_fuselage_10_solid_moonlit"); - mp_fuselage_10_solid_battery = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("wolfmonster222").setHealth(30F).setTitle("Ecstatic").setWittyText("I got caught eating batteries again :(").setUnlocalizedName("mp_fuselage_10_solid_battery"); - mp_fuselage_10_solid_duracell = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Duracell").setHealth(30F).setWittyText("The crunchiest battery on the market!").setUnlocalizedName("mp_fuselage_10_solid_duracell"); + mp_fuselage_10_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(25F) .setUnlocalizedName("mp_fuselage_10_solid"); + mp_fuselage_10_solid_flames = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_solid_flames"); + mp_fuselage_10_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(30F).setUnlocalizedName("mp_fuselage_10_solid_insulation"); + mp_fuselage_10_solid_sleek = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_solid_sleek"); + mp_fuselage_10_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(35F).setTitle("Soviet Glory").setUnlocalizedName("mp_fuselage_10_solid_soviet_glory"); + mp_fuselage_10_solid_cathedral = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Satan").setTitle("Unholy Cathedral").setWittyText("Quakeesque!").setUnlocalizedName("mp_fuselage_10_solid_cathedral"); + mp_fuselage_10_solid_moonlit = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master & Hoboy").setTitle("Moonlit").setUnlocalizedName("mp_fuselage_10_solid_moonlit"); + mp_fuselage_10_solid_battery = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("wolfmonster222").setHealth(30F).setTitle("Ecstatic").setWittyText("I got caught eating batteries again :(").setUnlocalizedName("mp_fuselage_10_solid_battery"); + mp_fuselage_10_solid_duracell = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Duracell").setHealth(30F).setWittyText("The crunchiest battery on the market!").setUnlocalizedName("mp_fuselage_10_solid_duracell"); - mp_fuselage_10_xenon = new ItemMissile().makeFuselage(FuelType.XENON, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(20F) .setUnlocalizedName("mp_fuselage_10_xenon"); - mp_fuselage_10_xenon_bhole = ((ItemMissile) mp_fuselage_10_xenon).copy().setRarity(Rarity.RARE).setAuthor("Sten89").setTitle("Morceus-1457").setUnlocalizedName("mp_fuselage_10_xenon_bhole"); + mp_fuselage_10_xenon = new ItemCustomMissilePart().makeFuselage(FuelType.XENON, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(20F) .setUnlocalizedName("mp_fuselage_10_xenon"); + mp_fuselage_10_xenon_bhole = ((ItemCustomMissilePart) mp_fuselage_10_xenon).copy().setRarity(Rarity.RARE).setAuthor("Sten89").setTitle("Morceus-1457").setUnlocalizedName("mp_fuselage_10_xenon_bhole"); - mp_fuselage_10_long_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(30F).setUnlocalizedName("mp_fuselage_10_long_kerosene"); - mp_fuselage_10_long_kerosene_camo = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_camo"); - mp_fuselage_10_long_kerosene_desert = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_desert"); - mp_fuselage_10_long_kerosene_sky = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_sky"); - mp_fuselage_10_long_kerosene_flames = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_kerosene_flames"); - mp_fuselage_10_long_kerosene_insulation = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_insulation"); - mp_fuselage_10_long_kerosene_sleek = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_kerosene_sleek"); - mp_fuselage_10_long_kerosene_metal = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_metal"); - mp_fuselage_10_long_kerosene_dash = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Sam").setTitle("Dash").setWittyText("I wash my hands of it.").setCreativeTab(null).setUnlocalizedName("mp_fuselage_10_long_kerosene_dash"); - mp_fuselage_10_long_kerosene_taint = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_long_kerosene_taint"); - mp_fuselage_10_long_kerosene_vap = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("VT-6/24").setTitle("Minty Contrail").setWittyText("Upper rivet!").setUnlocalizedName("mp_fuselage_10_long_kerosene_vap"); + mp_fuselage_10_long_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(30F).setUnlocalizedName("mp_fuselage_10_long_kerosene"); + mp_fuselage_10_long_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_camo"); + mp_fuselage_10_long_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_desert"); + mp_fuselage_10_long_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_sky"); + mp_fuselage_10_long_kerosene_flames = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_kerosene_flames"); + mp_fuselage_10_long_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_insulation"); + mp_fuselage_10_long_kerosene_sleek = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_kerosene_sleek"); + mp_fuselage_10_long_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_metal"); + mp_fuselage_10_long_kerosene_dash = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Sam").setTitle("Dash").setWittyText("I wash my hands of it.").setCreativeTab(null).setUnlocalizedName("mp_fuselage_10_long_kerosene_dash"); + mp_fuselage_10_long_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_long_kerosene_taint"); + mp_fuselage_10_long_kerosene_vap = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("VT-6/24").setTitle("Minty Contrail").setWittyText("Upper rivet!").setUnlocalizedName("mp_fuselage_10_long_kerosene_vap"); - mp_fuselage_10_long_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(35F) .setUnlocalizedName("mp_fuselage_10_long_solid"); - mp_fuselage_10_long_solid_flames = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_solid_flames"); - mp_fuselage_10_long_solid_insulation = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_solid_insulation"); - mp_fuselage_10_long_solid_sleek = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(45F).setUnlocalizedName("mp_fuselage_10_long_solid_sleek"); - mp_fuselage_10_long_solid_soviet_glory = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(45F).setTitle("Soviet Glory").setWittyText("Fully Automated Luxury Gay Space Communism!").setUnlocalizedName("mp_fuselage_10_long_solid_soviet_glory"); - mp_fuselage_10_long_solid_bullet = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setAuthor("Sam").setTitle("Bullet Bill").setUnlocalizedName("mp_fuselage_10_long_solid_bullet"); - mp_fuselage_10_long_solid_silvermoonlight = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_10_long_solid_silvermoonlight"); + mp_fuselage_10_long_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(35F) .setUnlocalizedName("mp_fuselage_10_long_solid"); + mp_fuselage_10_long_solid_flames = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_solid_flames"); + mp_fuselage_10_long_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_solid_insulation"); + mp_fuselage_10_long_solid_sleek = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(45F).setUnlocalizedName("mp_fuselage_10_long_solid_sleek"); + mp_fuselage_10_long_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(45F).setTitle("Soviet Glory").setWittyText("Fully Automated Luxury Gay Space Communism!").setUnlocalizedName("mp_fuselage_10_long_solid_soviet_glory"); + mp_fuselage_10_long_solid_bullet = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setAuthor("Sam").setTitle("Bullet Bill").setUnlocalizedName("mp_fuselage_10_long_solid_bullet"); + mp_fuselage_10_long_solid_silvermoonlight = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_10_long_solid_silvermoonlight"); - mp_fuselage_10_15_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_kerosene"); - mp_fuselage_10_15_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F) .setUnlocalizedName("mp_fuselage_10_15_solid"); - mp_fuselage_10_15_hydrogen = new ItemMissile().makeFuselage(FuelType.HYDROGEN, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_hydrogen"); - mp_fuselage_10_15_balefire = new ItemMissile().makeFuselage(FuelType.BALEFIRE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_balefire"); + mp_fuselage_10_15_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_kerosene"); + mp_fuselage_10_15_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F) .setUnlocalizedName("mp_fuselage_10_15_solid"); + mp_fuselage_10_15_hydrogen = new ItemCustomMissilePart().makeFuselage(FuelType.HYDROGEN, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_hydrogen"); + mp_fuselage_10_15_balefire = new ItemCustomMissilePart().makeFuselage(FuelType.BALEFIRE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_balefire"); - mp_fuselage_15_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setAuthor("Hoboy").setHealth(50F).setUnlocalizedName("mp_fuselage_15_kerosene"); - mp_fuselage_15_kerosene_camo = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_15_kerosene_camo"); - mp_fuselage_15_kerosene_desert = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_15_kerosene_desert"); - mp_fuselage_15_kerosene_sky = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_15_kerosene_sky"); - mp_fuselage_15_kerosene_insulation = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(55F).setWittyText("Rest in spaghetti Columbia :(").setUnlocalizedName("mp_fuselage_15_kerosene_insulation"); - mp_fuselage_15_kerosene_metal = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bolted Metal").setHealth(60F).setWittyText("Metal frame with metal plating reinforced with bolted metal sheets and metal.").setUnlocalizedName("mp_fuselage_15_kerosene_metal"); - mp_fuselage_15_kerosene_decorated = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Decorated").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_decorated"); - mp_fuselage_15_kerosene_steampunk = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Steampunk").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_steampunk"); - mp_fuselage_15_kerosene_polite = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setAuthor("Hoboy").setTitle("Polite").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_polite"); - mp_fuselage_15_kerosene_blackjack = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setTitle("Queen Whiskey").setHealth(100F).setUnlocalizedName("mp_fuselage_15_kerosene_blackjack"); - mp_fuselage_15_kerosene_lambda = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("Lambda Complex").setHealth(75F).setWittyText("MAGNIFICENT MICROWAVE CASSEROLE").setUnlocalizedName("mp_fuselage_15_kerosene_lambda"); - mp_fuselage_15_kerosene_minuteman = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Spexta").setTitle("MX 1702").setUnlocalizedName("mp_fuselage_15_kerosene_minuteman"); - mp_fuselage_15_kerosene_pip = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("The Doctor").setTitle("LittlePip").setWittyText("31!").setCreativeTab(null).setUnlocalizedName("mp_fuselage_15_kerosene_pip"); - mp_fuselage_15_kerosene_taint = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setWittyText("DUN-DUN!").setUnlocalizedName("mp_fuselage_15_kerosene_taint"); - mp_fuselage_15_kerosene_yuck = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Flesh").setWittyText("Note: Never clean DNA vials with your own spit.").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_yuck"); + mp_fuselage_15_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setAuthor("Hoboy").setHealth(50F).setUnlocalizedName("mp_fuselage_15_kerosene"); + mp_fuselage_15_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_15_kerosene_camo"); + mp_fuselage_15_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_15_kerosene_desert"); + mp_fuselage_15_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_15_kerosene_sky"); + mp_fuselage_15_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(55F).setWittyText("Rest in spaghetti Columbia :(").setUnlocalizedName("mp_fuselage_15_kerosene_insulation"); + mp_fuselage_15_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bolted Metal").setHealth(60F).setWittyText("Metal frame with metal plating reinforced with bolted metal sheets and metal.").setUnlocalizedName("mp_fuselage_15_kerosene_metal"); + mp_fuselage_15_kerosene_decorated = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Decorated").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_decorated"); + mp_fuselage_15_kerosene_steampunk = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Steampunk").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_steampunk"); + mp_fuselage_15_kerosene_polite = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setAuthor("Hoboy").setTitle("Polite").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_polite"); + mp_fuselage_15_kerosene_blackjack = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setTitle("Queen Whiskey").setHealth(100F).setUnlocalizedName("mp_fuselage_15_kerosene_blackjack"); + mp_fuselage_15_kerosene_lambda = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("Lambda Complex").setHealth(75F).setWittyText("MAGNIFICENT MICROWAVE CASSEROLE").setUnlocalizedName("mp_fuselage_15_kerosene_lambda"); + mp_fuselage_15_kerosene_minuteman = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Spexta").setTitle("MX 1702").setUnlocalizedName("mp_fuselage_15_kerosene_minuteman"); + mp_fuselage_15_kerosene_pip = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("The Doctor").setTitle("LittlePip").setWittyText("31!").setCreativeTab(null).setUnlocalizedName("mp_fuselage_15_kerosene_pip"); + mp_fuselage_15_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setWittyText("DUN-DUN!").setUnlocalizedName("mp_fuselage_15_kerosene_taint"); + mp_fuselage_15_kerosene_yuck = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Flesh").setWittyText("Note: Never clean DNA vials with your own spit.").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_yuck"); - mp_fuselage_15_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(60F) .setUnlocalizedName("mp_fuselage_15_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_solid_insulation = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(65F).setUnlocalizedName("mp_fuselage_15_solid_insulation"); - mp_fuselage_15_solid_desh = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Desh Plating").setHealth(80F).setUnlocalizedName("mp_fuselage_15_solid_desh"); - mp_fuselage_15_solid_soviet_glory = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Soviet Glory").setHealth(70F).setUnlocalizedName("mp_fuselage_15_solid_soviet_glory"); - mp_fuselage_15_solid_soviet_stank = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Soviet Stank").setHealth(15F).setWittyText("Aged like a fine wine! Well, almost.").setUnlocalizedName("mp_fuselage_15_solid_soviet_stank"); - mp_fuselage_15_solid_faust = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.LEGENDARY).setAuthor("Dr.Nostalgia").setTitle("Mighty Lauren").setHealth(250F).setWittyText("Welcome to Subway, may I take your order?").setUnlocalizedName("mp_fuselage_15_solid_faust"); - mp_fuselage_15_solid_silvermoonlight = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_15_solid_silvermoonlight"); - mp_fuselage_15_solid_snowy = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Dr.Nostalgia").setTitle("Chilly Day").setUnlocalizedName("mp_fuselage_15_solid_snowy"); - mp_fuselage_15_solid_panorama = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Panorama").setUnlocalizedName("mp_fuselage_15_solid_panorama"); - mp_fuselage_15_solid_roses = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bed of roses").setUnlocalizedName("mp_fuselage_15_solid_roses"); - mp_fuselage_15_solid_mimi = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setTitle("Mimi-chan").setUnlocalizedName("mp_fuselage_15_solid_mimi"); + mp_fuselage_15_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(60F) .setUnlocalizedName("mp_fuselage_15_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(65F).setUnlocalizedName("mp_fuselage_15_solid_insulation"); + mp_fuselage_15_solid_desh = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Desh Plating").setHealth(80F).setUnlocalizedName("mp_fuselage_15_solid_desh"); + mp_fuselage_15_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Soviet Glory").setHealth(70F).setUnlocalizedName("mp_fuselage_15_solid_soviet_glory"); + mp_fuselage_15_solid_soviet_stank = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Soviet Stank").setHealth(15F).setWittyText("Aged like a fine wine! Well, almost.").setUnlocalizedName("mp_fuselage_15_solid_soviet_stank"); + mp_fuselage_15_solid_faust = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.LEGENDARY).setAuthor("Dr.Nostalgia").setTitle("Mighty Lauren").setHealth(250F).setWittyText("Welcome to Subway, may I take your order?").setUnlocalizedName("mp_fuselage_15_solid_faust"); + mp_fuselage_15_solid_silvermoonlight = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_15_solid_silvermoonlight"); + mp_fuselage_15_solid_snowy = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Dr.Nostalgia").setTitle("Chilly Day").setUnlocalizedName("mp_fuselage_15_solid_snowy"); + mp_fuselage_15_solid_panorama = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Panorama").setUnlocalizedName("mp_fuselage_15_solid_panorama"); + mp_fuselage_15_solid_roses = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bed of roses").setUnlocalizedName("mp_fuselage_15_solid_roses"); + mp_fuselage_15_solid_mimi = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setTitle("Mimi-chan").setUnlocalizedName("mp_fuselage_15_solid_mimi"); - mp_fuselage_15_hydrogen = new ItemMissile().makeFuselage(FuelType.HYDROGEN, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(50F) .setUnlocalizedName("mp_fuselage_15_hydrogen").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_hydrogen_cathedral = ((ItemMissile) mp_fuselage_15_hydrogen).copy().setRarity(Rarity.UNCOMMON).setAuthor("Satan").setTitle("Unholy Cathedral").setUnlocalizedName("mp_fuselage_15_hydrogen_cathedral"); + mp_fuselage_15_hydrogen = new ItemCustomMissilePart().makeFuselage(FuelType.HYDROGEN, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(50F) .setUnlocalizedName("mp_fuselage_15_hydrogen").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_hydrogen_cathedral = ((ItemCustomMissilePart) mp_fuselage_15_hydrogen).copy().setRarity(Rarity.UNCOMMON).setAuthor("Satan").setTitle("Unholy Cathedral").setUnlocalizedName("mp_fuselage_15_hydrogen_cathedral"); - mp_fuselage_15_balefire = new ItemMissile().makeFuselage(FuelType.BALEFIRE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(75F) .setUnlocalizedName("mp_fuselage_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_balefire = new ItemCustomMissilePart().makeFuselage(FuelType.BALEFIRE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(75F) .setUnlocalizedName("mp_fuselage_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_20_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setAuthor("Hoboy").setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_20_kerosene_magnusson = ((ItemMissile)mp_fuselage_15_20_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("White Forest Rocket").setWittyText("And get your cranio-conjugal parasite away from my nose cone!").setUnlocalizedName("mp_fuselage_15_20_kerosene_magnusson"); - mp_fuselage_15_20_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_20_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setAuthor("Hoboy").setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_20_kerosene_magnusson = ((ItemCustomMissilePart)mp_fuselage_15_20_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("White Forest Rocket").setWittyText("And get your cranio-conjugal parasite away from my nose cone!").setUnlocalizedName("mp_fuselage_15_20_kerosene_magnusson"); + mp_fuselage_15_20_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_20_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_20, PartSize.SIZE_20) .setUnlocalizedName("mp_f_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_20_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_20, PartSize.SIZE_20) .setUnlocalizedName("mp_f_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_warhead_10_he = new ItemMissile().makeWarhead(WarheadType.HE, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_incendiary = new ItemMissile().makeWarhead(WarheadType.INC, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_buster = new ItemMissile().makeWarhead(WarheadType.BUSTER, 5F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_nuclear = new ItemMissile().makeWarhead(WarheadType.NUCLEAR, 35F, 1.5F, PartSize.SIZE_10).setTitle("Tater Tot").setHealth(10F).setUnlocalizedName("mp_warhead_10_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_nuclear_large = new ItemMissile().makeWarhead(WarheadType.NUCLEAR, 75F, 2.5F, PartSize.SIZE_10).setTitle("Chernobyl Boris").setHealth(15F).setUnlocalizedName("mp_warhead_10_nuclear_large").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_taint = new ItemMissile().makeWarhead(WarheadType.TAINT, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.UNCOMMON).setWittyText("Eat my taint! Bureaucracy is dead and we killed it!").setUnlocalizedName("mp_warhead_10_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_cloud = new ItemMissile().makeWarhead(WarheadType.CLOUD, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_10_cloud").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_he = new ItemMissile().makeWarhead(WarheadType.HE, 50F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_incendiary = new ItemMissile().makeWarhead(WarheadType.INC, 35F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_nuclear = new ItemMissile().makeWarhead(WarheadType.NUCLEAR, 125F, 5F, PartSize.SIZE_15).setTitle("Auntie Bertha").setHealth(15F).setUnlocalizedName("mp_warhead_15_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_nuclear_shark = ((ItemMissile) mp_warhead_15_nuclear).copy().setRarity(Rarity.UNCOMMON).setTitle("Discount Bullet Bill").setWittyText("Nose art on a cannon bullet? Who does that?").setUnlocalizedName("mp_warhead_15_nuclear_shark"); - mp_warhead_15_nuclear_mimi = ((ItemMissile) mp_warhead_15_nuclear).copy().setRarity(Rarity.RARE).setTitle("FASHIONABLE MISSILE").setUnlocalizedName("mp_warhead_15_nuclear_mimi"); - mp_warhead_15_boxcar = new ItemMissile().makeWarhead(WarheadType.TX, 250F, 7.5F, PartSize.SIZE_15).setWittyText("?!?!").setHealth(35F).setRarity(Rarity.LEGENDARY).setUnlocalizedName("mp_warhead_15_boxcar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_n2 = new ItemMissile().makeWarhead(WarheadType.N2, 100F, 5F, PartSize.SIZE_15).setWittyText("[screams geometrically]").setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_15_n2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_balefire = new ItemMissile().makeWarhead(WarheadType.BALEFIRE, 100F, 7.5F, PartSize.SIZE_15).setRarity(Rarity.LEGENDARY).setAuthor("VT-6/24").setHealth(15F).setWittyText("Hightower, never forgetti.").setUnlocalizedName("mp_warhead_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_turbine = new ItemMissile().makeWarhead(WarheadType.TURBINE, 200F, 5F, PartSize.SIZE_15).setRarity(Rarity.SEWS_CLOTHES_AND_SUCKS_HORSE_COCK).setHealth(250F).setUnlocalizedName("mp_warhead_15_turbine").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_20_he = new ItemMissile().makeWarhead(WarheadType.HE, 15F, 1F, PartSize.SIZE_20) .setUnlocalizedName("mp_w_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_incendiary = new ItemCustomMissilePart().makeWarhead(WarheadType.INC, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_buster = new ItemCustomMissilePart().makeWarhead(WarheadType.BUSTER, 5F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_nuclear = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 35F, 1.5F, PartSize.SIZE_10).setTitle("Tater Tot").setHealth(10F).setUnlocalizedName("mp_warhead_10_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_nuclear_large = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 75F, 2.5F, PartSize.SIZE_10).setTitle("Chernobyl Boris").setHealth(15F).setUnlocalizedName("mp_warhead_10_nuclear_large").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_taint = new ItemCustomMissilePart().makeWarhead(WarheadType.TAINT, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.UNCOMMON).setWittyText("Eat my taint! Bureaucracy is dead and we killed it!").setUnlocalizedName("mp_warhead_10_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_cloud = new ItemCustomMissilePart().makeWarhead(WarheadType.CLOUD, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_10_cloud").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 50F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_incendiary = new ItemCustomMissilePart().makeWarhead(WarheadType.INC, 35F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_nuclear = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 125F, 5F, PartSize.SIZE_15).setTitle("Auntie Bertha").setHealth(15F).setUnlocalizedName("mp_warhead_15_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_nuclear_shark = ((ItemCustomMissilePart) mp_warhead_15_nuclear).copy().setRarity(Rarity.UNCOMMON).setTitle("Discount Bullet Bill").setWittyText("Nose art on a cannon bullet? Who does that?").setUnlocalizedName("mp_warhead_15_nuclear_shark"); + mp_warhead_15_nuclear_mimi = ((ItemCustomMissilePart) mp_warhead_15_nuclear).copy().setRarity(Rarity.RARE).setTitle("FASHIONABLE MISSILE").setUnlocalizedName("mp_warhead_15_nuclear_mimi"); + mp_warhead_15_boxcar = new ItemCustomMissilePart().makeWarhead(WarheadType.TX, 250F, 7.5F, PartSize.SIZE_15).setWittyText("?!?!").setHealth(35F).setRarity(Rarity.LEGENDARY).setUnlocalizedName("mp_warhead_15_boxcar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_n2 = new ItemCustomMissilePart().makeWarhead(WarheadType.N2, 100F, 5F, PartSize.SIZE_15).setWittyText("[screams geometrically]").setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_15_n2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_balefire = new ItemCustomMissilePart().makeWarhead(WarheadType.BALEFIRE, 100F, 7.5F, PartSize.SIZE_15).setRarity(Rarity.LEGENDARY).setAuthor("VT-6/24").setHealth(15F).setWittyText("Hightower, never forgetti.").setUnlocalizedName("mp_warhead_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_turbine = new ItemCustomMissilePart().makeWarhead(WarheadType.TURBINE, 200F, 5F, PartSize.SIZE_15).setRarity(Rarity.SEWS_CLOTHES_AND_SUCKS_HORSE_COCK).setHealth(250F).setUnlocalizedName("mp_warhead_15_turbine").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_20_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1F, PartSize.SIZE_20) .setUnlocalizedName("mp_w_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_chip_1 = new ItemMissile().makeChip(0.1F) .setUnlocalizedName("mp_c_1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_1"); - mp_chip_2 = new ItemMissile().makeChip(0.05F) .setUnlocalizedName("mp_c_2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_2"); - mp_chip_3 = new ItemMissile().makeChip(0.01F) .setUnlocalizedName("mp_c_3").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_3"); - mp_chip_4 = new ItemMissile().makeChip(0.005F) .setUnlocalizedName("mp_c_4").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_4"); - mp_chip_5 = new ItemMissile().makeChip(0.0F) .setUnlocalizedName("mp_c_5").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_5"); + mp_chip_1 = new ItemCustomMissilePart().makeChip(0.1F) .setUnlocalizedName("mp_c_1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_1"); + mp_chip_2 = new ItemCustomMissilePart().makeChip(0.05F) .setUnlocalizedName("mp_c_2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_2"); + mp_chip_3 = new ItemCustomMissilePart().makeChip(0.01F) .setUnlocalizedName("mp_c_3").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_3"); + mp_chip_4 = new ItemCustomMissilePart().makeChip(0.005F) .setUnlocalizedName("mp_c_4").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_4"); + mp_chip_5 = new ItemCustomMissilePart().makeChip(0.0F) .setUnlocalizedName("mp_c_5").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_5"); missile_skin_camo = new ItemCustomLore().setUnlocalizedName("missile_skin_camo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_camo"); missile_skin_desert = new ItemCustomLore().setUnlocalizedName("missile_skin_desert").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_desert"); @@ -4261,7 +4255,6 @@ public class ModItems { gun_vortex = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_vortex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_vortex"); gun_super_shotgun = new ItemCustomLore().setUnlocalizedName("gun_super_shotgun").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_super_shotgun"); gun_moist_nugget = new ItemNugget(3, false).setUnlocalizedName("gun_moist_nugget").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_moist_nugget"); - gun_dampfmaschine = new GunDampfmaschine().setUnlocalizedName("gun_dampfmaschine").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_dampfmaschine"); gun_darter = new ItemGunDart(GunDartFactory.getDarterConfig()).setFull3D().setUnlocalizedName("gun_darter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_detonator = new ItemGunDetonator(GunDetonatorFactory.getDetonatorConfig()).setFull3D().setUnlocalizedName("gun_detonator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_glass_cannon = new ItemEnergyGunBase(GunPoweredFactory.getGlassCannonConfig()).setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); @@ -6203,8 +6196,6 @@ public class ModItems { GameRegistry.registerItem(warhead_mirvlet, warhead_mirvlet.getUnlocalizedName()); GameRegistry.registerItem(warhead_mirv, warhead_mirv.getUnlocalizedName()); GameRegistry.registerItem(warhead_volcano, warhead_volcano.getUnlocalizedName()); - GameRegistry.registerItem(warhead_thermo_endo, warhead_thermo_endo.getUnlocalizedName()); - GameRegistry.registerItem(warhead_thermo_exo, warhead_thermo_exo.getUnlocalizedName()); GameRegistry.registerItem(fuel_tank_small, fuel_tank_small.getUnlocalizedName()); GameRegistry.registerItem(fuel_tank_medium, fuel_tank_medium.getUnlocalizedName()); GameRegistry.registerItem(fuel_tank_large, fuel_tank_large.getUnlocalizedName()); @@ -6890,34 +6881,38 @@ public class ModItems { GameRegistry.registerItem(padlock_unbreakable, padlock_unbreakable.getUnlocalizedName()); //Missiles - GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); - GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); - GameRegistry.registerItem(missile_decoy, missile_decoy.getUnlocalizedName()); - GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); - GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); - GameRegistry.registerItem(missile_strong, missile_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_incendiary_strong, missile_incendiary_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_cluster_strong, missile_cluster_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_buster_strong, missile_buster_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_emp_strong, missile_emp_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_burst, missile_burst.getUnlocalizedName()); - GameRegistry.registerItem(missile_inferno, missile_inferno.getUnlocalizedName()); - GameRegistry.registerItem(missile_rain, missile_rain.getUnlocalizedName()); - GameRegistry.registerItem(missile_drill, missile_drill.getUnlocalizedName()); - GameRegistry.registerItem(missile_nuclear, missile_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(missile_nuclear_cluster, missile_nuclear_cluster.getUnlocalizedName()); - GameRegistry.registerItem(missile_volcano, missile_volcano.getUnlocalizedName()); - GameRegistry.registerItem(missile_endo, missile_endo.getUnlocalizedName()); - GameRegistry.registerItem(missile_exo, missile_exo.getUnlocalizedName()); - GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName()); + //Tier 0 GameRegistry.registerItem(missile_taint, missile_taint.getUnlocalizedName()); GameRegistry.registerItem(missile_micro, missile_micro.getUnlocalizedName()); GameRegistry.registerItem(missile_bhole, missile_bhole.getUnlocalizedName()); GameRegistry.registerItem(missile_schrabidium, missile_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(missile_emp, missile_emp.getUnlocalizedName()); - GameRegistry.registerItem(missile_shuttle, missile_shuttle.getUnlocalizedName()); + //Tier 1 + GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); + GameRegistry.registerItem(missile_decoy, missile_decoy.getUnlocalizedName()); + GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); + GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); + GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); GameRegistry.registerItem(missile_stealth, missile_stealth.getUnlocalizedName()); + GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); + //Tier 2 + GameRegistry.registerItem(missile_strong, missile_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_incendiary_strong, missile_incendiary_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_cluster_strong, missile_cluster_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_buster_strong, missile_buster_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_emp_strong, missile_emp_strong.getUnlocalizedName()); + //Tier 3 + GameRegistry.registerItem(missile_burst, missile_burst.getUnlocalizedName()); + GameRegistry.registerItem(missile_inferno, missile_inferno.getUnlocalizedName()); + GameRegistry.registerItem(missile_rain, missile_rain.getUnlocalizedName()); + GameRegistry.registerItem(missile_drill, missile_drill.getUnlocalizedName()); + GameRegistry.registerItem(missile_shuttle, missile_shuttle.getUnlocalizedName()); + //Tier 4 + GameRegistry.registerItem(missile_nuclear, missile_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(missile_nuclear_cluster, missile_nuclear_cluster.getUnlocalizedName()); + GameRegistry.registerItem(missile_volcano, missile_volcano.getUnlocalizedName()); + GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName()); + //Rockets GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName()); @@ -7160,7 +7155,6 @@ public class ModItems { GameRegistry.registerItem(gun_vortex, gun_vortex.getUnlocalizedName()); GameRegistry.registerItem(gun_super_shotgun, gun_super_shotgun.getUnlocalizedName()); GameRegistry.registerItem(gun_moist_nugget, gun_moist_nugget.getUnlocalizedName()); - GameRegistry.registerItem(gun_dampfmaschine, gun_dampfmaschine.getUnlocalizedName()); GameRegistry.registerItem(gun_darter, gun_darter.getUnlocalizedName()); GameRegistry.registerItem(gun_detonator, gun_detonator.getUnlocalizedName()); GameRegistry.registerItem(crucible, crucible.getUnlocalizedName()); @@ -7168,29 +7162,7 @@ public class ModItems { GameRegistry.registerItem(gun_lunatic_marksman, gun_lunatic_marksman.getUnlocalizedName()); //Ammo - /*GameRegistry.registerItem(gun_revolver_iron_ammo, gun_revolver_iron_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_ammo, gun_revolver_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_gold_ammo, gun_revolver_gold_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_lead_ammo, gun_revolver_lead_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_schrabidium_ammo, gun_revolver_schrabidium_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_cursed_ammo, gun_revolver_cursed_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nightmare_ammo, gun_revolver_nightmare_ammo.getUnlocalizedName()); - GameRegistry.registerItem(ammo_357_desh, ammo_357_desh.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nightmare2_ammo, gun_revolver_nightmare2_ammo.getUnlocalizedName());*/ - //GameRegistry.registerItem(gun_revolver_pip_ammo, gun_revolver_pip_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_revolver_nopip_ammo, gun_revolver_nopip_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_calamity_ammo, gun_calamity_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_lacunae_ammo, gun_lacunae_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_rpg_ammo, gun_rpg_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_stinger_ammo, gun_stinger_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_fatman_ammo, gun_fatman_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_mirv_ammo, gun_mirv_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_mp40_ammo, gun_mp40_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_uzi_ammo, gun_uzi_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo, gun_osipr_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName()); @@ -7228,157 +7200,9 @@ public class ModItems { GameRegistry.registerItem(ammo_coilgun, ammo_coilgun.getUnlocalizedName()); GameRegistry.registerItem(ammo_grenade, ammo_grenade.getUnlocalizedName()); GameRegistry.registerItem(ammo_shell, ammo_shell.getUnlocalizedName()); - - /*GameRegistry.registerItem(ammo_12gauge, ammo_12gauge.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_incendiary, ammo_12gauge_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_shrapnel, ammo_12gauge_shrapnel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_du, ammo_12gauge_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_sleek, ammo_12gauge_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_marauder, ammo_12gauge_marauder.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge, ammo_20gauge.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_slug, ammo_20gauge_slug.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_flechette, ammo_20gauge_flechette.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_incendiary, ammo_20gauge_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_shrapnel, ammo_20gauge_shrapnel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_explosive, ammo_20gauge_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_caustic, ammo_20gauge_caustic.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_shock, ammo_20gauge_shock.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_wither, ammo_20gauge_wither.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_sleek, ammo_20gauge_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge, ammo_4gauge.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_slug, ammo_4gauge_slug.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_flechette, ammo_4gauge_flechette.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_flechette_phosphorus, ammo_4gauge_flechette_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_explosive, ammo_4gauge_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_semtex, ammo_4gauge_semtex.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_balefire, ammo_4gauge_balefire.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_kampf, ammo_4gauge_kampf.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_canister, ammo_4gauge_canister.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_claw, ammo_4gauge_claw.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_vampire, ammo_4gauge_vampire.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_void, ammo_4gauge_void.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_titan, ammo_4gauge_titan.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_sleek, ammo_4gauge_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44, ammo_44.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_ap, ammo_44_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_du, ammo_44_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_phosphorus, ammo_44_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_star, ammo_44_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_chlorophyte, ammo_44_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_pip, ammo_44_pip.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_bj, ammo_44_bj.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_silver, ammo_44_silver.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_rocket, ammo_44_rocket.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm, ammo_5mm.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm_explosive, ammo_5mm_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm_du, ammo_5mm_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm_star, ammo_5mm_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm_chlorophyte, ammo_5mm_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm, ammo_9mm.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm_ap, ammo_9mm_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm_du, ammo_9mm_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm_chlorophyte, ammo_9mm_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm_rocket, ammo_9mm_rocket.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556, ammo_556.getUnlocalizedName()); - GameRegistry.registerItem(ammo_566_gold, ammo_566_gold.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_phosphorus, ammo_556_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_ap, ammo_556_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_du, ammo_556_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_star, ammo_556_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_chlorophyte, ammo_556_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_sleek, ammo_556_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_tracer, ammo_556_tracer.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette, ammo_556_flechette.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_incendiary, ammo_556_flechette_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_phosphorus, ammo_556_flechette_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_du, ammo_556_flechette_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_chlorophyte, ammo_556_flechette_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_sleek, ammo_556_flechette_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_k, ammo_556_k.getUnlocalizedName()); - GameRegistry.registerItem(ammo_22lr, ammo_22lr.getUnlocalizedName()); - GameRegistry.registerItem(ammo_22lr_ap, ammo_22lr_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_22lr_chlorophyte, ammo_22lr_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae, ammo_50ae.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae_ap, ammo_50ae_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae_du, ammo_50ae_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae_star, ammo_50ae_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae_chlorophyte, ammo_50ae_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg, ammo_50bmg.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_incendiary, ammo_50bmg_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_phosphorus, ammo_50bmg_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_explosive, ammo_50bmg_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_ap, ammo_50bmg_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_du, ammo_50bmg_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_star, ammo_50bmg_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_chlorophyte, ammo_50bmg_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_flechette, ammo_50bmg_flechette.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_flechette_am, ammo_50bmg_flechette_am.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_flechette_po, ammo_50bmg_flechette_po.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_sleek, ammo_50bmg_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_75bolt, ammo_75bolt.getUnlocalizedName()); - GameRegistry.registerItem(ammo_75bolt_incendiary, ammo_75bolt_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_75bolt_he, ammo_75bolt_he.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel, ammo_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel_napalm, ammo_fuel_napalm.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel_phosphorus, ammo_fuel_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel_vaporizer, ammo_fuel_vaporizer.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel_gas, ammo_fuel_gas.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fireext, ammo_fireext.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fireext_foam, ammo_fireext_foam.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fireext_sand, ammo_fireext_sand.getUnlocalizedName()); - GameRegistry.registerItem(ammo_cell, ammo_cell.getUnlocalizedName()); - GameRegistry.registerItem(ammo_dart, ammo_dart.getUnlocalizedName()); - GameRegistry.registerItem(ammo_dart_nuclear, ammo_dart_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(ammo_dart_nerf, ammo_dart_nerf.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket, ammo_rocket.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_he, ammo_rocket_he.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_incendiary, ammo_rocket_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_phosphorus, ammo_rocket_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_shrapnel, ammo_rocket_shrapnel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_emp, ammo_rocket_emp.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_glare, ammo_rocket_glare.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_toxic, ammo_rocket_toxic.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_canister, ammo_rocket_canister.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_sleek, ammo_rocket_sleek.getUnlocalizedName()); - 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()); - GameRegistry.registerItem(ammo_grenade_phosphorus, ammo_grenade_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_toxic, ammo_grenade_toxic.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_concussion, ammo_grenade_concussion.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_finned, ammo_grenade_finned.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_sleek, ammo_grenade_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_nuclear, ammo_grenade_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_tracer, ammo_grenade_tracer.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_kampf, ammo_grenade_kampf.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell, ammo_shell.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell_explosive, ammo_shell_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell_apfsds_t, ammo_shell_apfsds_t.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell_apfsds_du, ammo_shell_apfsds_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell_w9, ammo_shell_w9.getUnlocalizedName());*/ GameRegistry.registerItem(ammo_dgk, ammo_dgk.getUnlocalizedName()); GameRegistry.registerItem(ammo_arty, ammo_arty.getUnlocalizedName()); GameRegistry.registerItem(ammo_himars, ammo_himars.getUnlocalizedName()); - /*GameRegistry.registerItem(ammo_nuke, ammo_nuke.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_low, ammo_nuke_low.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_high, ammo_nuke_high.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_tots, ammo_nuke_tots.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_safe, ammo_nuke_safe.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_pumpkin, ammo_nuke_pumpkin.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_barrel, ammo_nuke_barrel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv, ammo_mirv.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv_low, ammo_mirv_low.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv_high, ammo_mirv_high.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv_safe, ammo_mirv_safe.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv_special, ammo_mirv_special.getUnlocalizedName());*/ GameRegistry.registerItem(ammo_folly, ammo_folly.getUnlocalizedName()); GameRegistry.registerItem(ammo_folly_nuclear, ammo_folly_nuclear.getUnlocalizedName()); GameRegistry.registerItem(ammo_folly_du, ammo_folly_du.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemLootCrate.java b/src/main/java/com/hbm/items/special/ItemLootCrate.java index b51d629d2..56207a02b 100644 --- a/src/main/java/com/hbm/items/special/ItemLootCrate.java +++ b/src/main/java/com/hbm/items/special/ItemLootCrate.java @@ -5,7 +5,7 @@ import java.util.List; import java.util.Random; import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemMissile; +import com.hbm.items.weapon.ItemCustomMissilePart; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -14,9 +14,9 @@ import net.minecraft.world.World; public class ItemLootCrate extends Item { - public static List list10 = new ArrayList(); - public static List list15 = new ArrayList(); - public static List listMisc = new ArrayList(); + public static List list10 = new ArrayList(); + public static List list15 = new ArrayList(); + public static List listMisc = new ArrayList(); private static Random rand = new Random(); @Override @@ -35,10 +35,10 @@ public class ItemLootCrate extends Item { return stack; } - private ItemMissile choose(List parts) { + private ItemCustomMissilePart choose(List parts) { boolean flag = true; - ItemMissile item = null; + ItemCustomMissilePart item = null; while(flag) { item = parts.get(rand.nextInt(parts.size())); diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index a13c09e92..71393ce05 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -428,8 +428,6 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear_cluster, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_volcano, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_endo, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_exo, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_doomsday, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_taint, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_micro, 1)); diff --git a/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java b/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java deleted file mode 100644 index 3eaf7a036..000000000 --- a/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.missile.EntityBombletSelena; -import com.hbm.entity.projectile.EntityRocket; - -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.event.entity.player.ArrowNockEvent; - -public class GunDampfmaschine extends Item { - - Random rand = new Random(); - - public GunDampfmaschine() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - if (true) { - - if(!player.isSneaking()) { - EntityRocket entitybullet = new EntityRocket(world, player, 3.0F); - - world.playSoundAtEntity(player, "hbm:block.crateBreak", 10.0F, 0.9F + (rand.nextFloat() * 0.2F)); - if(count == this.getMaxItemUseDuration(stack)) - world.playSoundAtEntity(player, "hbm:alarm.autopilot", 100.0F, 1.0F); - - if (!world.isRemote) { - world.spawnEntityInWorld(entitybullet); - } - } else { - - world.playSoundAtEntity(player, "mob.pig.say", 10.0F, 0.9F + (rand.nextFloat() * 0.2F)); - - if(count % 10 == 0) { - EntityBombletSelena bomb = new EntityBombletSelena(world); - bomb.posX = player.posX; - bomb.posY = player.posY + player.eyeHeight; - bomb.posZ = player.posZ; - bomb.motionX = player.getLookVec().xCoord * 5; - bomb.motionY = player.getLookVec().yCoord * 5; - bomb.motionZ = player.getLookVec().zCoord * 5; - if(count == this.getMaxItemUseDuration(stack)) - world.playSoundAtEntity(player, "hbm:entity.chopperDrop", 10.0F, 1.0F); - - if (!world.isRemote) { - world.spawnEntityInWorld(bomb); - } - } - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Sometimes, to do what’s right,"); - list.add("you have to become the villain of"); - list.add("the pi-I mean me too, thanks."); - list.add(""); - list.add("oh sorry how did this get here i'm not good with computer can somebody tell me how i can get out of here oh fiddlesticks this is not good oh no please can anybody hear me i am afraid please for the love of god somebody get me out of here"); - list.add(""); - list.add("Ammo: orang"); - list.add("Damage: aaaaaaaaa"); - 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", -2, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java b/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java index 768567803..a0bd103b3 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.handler.MissileStruct; import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.WarheadType; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.WarheadType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -57,11 +57,11 @@ public class ItemCustomMissile extends Item { return; try { - ItemMissile chip = (ItemMissile) Item.getItemById(readFromNBT(stack, "chip")); - ItemMissile warhead = (ItemMissile) Item.getItemById(readFromNBT(stack, "warhead")); - ItemMissile fuselage = (ItemMissile) Item.getItemById(readFromNBT(stack, "fuselage")); - ItemMissile stability = (ItemMissile) Item.getItemById(readFromNBT(stack, "stability")); - ItemMissile thruster = (ItemMissile) Item.getItemById(readFromNBT(stack, "thruster")); + ItemCustomMissilePart chip = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "chip")); + ItemCustomMissilePart warhead = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "warhead")); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "fuselage")); + ItemCustomMissilePart stability = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "stability")); + ItemCustomMissilePart thruster = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "thruster")); list.add(EnumChatFormatting.BOLD + "Warhead: " + EnumChatFormatting.GRAY + warhead.getWarhead((WarheadType)warhead.attributes[0])); list.add(EnumChatFormatting.BOLD + "Strength: " + EnumChatFormatting.GRAY + (Float)warhead.attributes[1]); @@ -92,10 +92,10 @@ public class ItemCustomMissile extends Item { if(stack == null || !(stack.getItem() instanceof ItemCustomMissile)) return null; - ItemMissile warhead = (ItemMissile) Item.getItemById(readFromNBT(stack, "warhead")); - ItemMissile fuselage = (ItemMissile) Item.getItemById(readFromNBT(stack, "fuselage")); - ItemMissile stability = (ItemMissile) Item.getItemById(readFromNBT(stack, "stability")); - ItemMissile thruster = (ItemMissile) Item.getItemById(readFromNBT(stack, "thruster")); + ItemCustomMissilePart warhead = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "warhead")); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "fuselage")); + ItemCustomMissilePart stability = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "stability")); + ItemCustomMissilePart thruster = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "thruster")); MissileStruct missile = new MissileStruct(warhead, fuselage, stability, thruster); diff --git a/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java b/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java new file mode 100644 index 000000000..7c660a189 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java @@ -0,0 +1,347 @@ +package com.hbm.items.weapon; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.items.special.ItemLootCrate; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemCustomMissilePart extends Item { + + public PartType type; + public PartSize top; + public PartSize bottom; + public Rarity rarity; + public float health; + private String title; + private String author; + private String witty; + + public ItemCustomMissilePart() { + this.setMaxStackSize(1); + this.setCreativeTab(MainRegistry.missileTab); + } + + public static HashMap parts = new HashMap(); + + /** + * == Chips == + * [0]: inaccuracy + * + * == Warheads == + * [0]: type + * [1]: strength/radius/cluster count + * [2]: weight + * + * == Fuselages == + * [0]: type + * [1]: tank size + * + * == Stability == + * [0]: inaccuracy mod + * + * == Thrusters === + * [0]: type + * [1]: consumption + * [2]: lift strength + */ + public Object[] attributes; + + public enum PartType { + CHIP, + WARHEAD, + FUSELAGE, + FINS, + THRUSTER + } + + public enum PartSize { + + //for chips + ANY, + //for missile tips and thrusters + NONE, + //regular sizes, 1.0m, 1.5m and 2.0m + SIZE_10, + SIZE_15, + SIZE_20 + } + + public enum WarheadType { + + HE, + INC, + BUSTER, + CLUSTER, + NUCLEAR, + TX, + N2, + BALEFIRE, + SCHRAB, + TAINT, + CLOUD, + TURBINE + } + + public enum FuelType { + + KEROSENE, + SOLID, + HYDROGEN, + XENON, + BALEFIRE + } + + public enum Rarity { + + COMMON(EnumChatFormatting.GRAY + "Common"), + UNCOMMON(EnumChatFormatting.YELLOW + "Uncommon"), + RARE(EnumChatFormatting.AQUA + "Rare"), + EPIC(EnumChatFormatting.LIGHT_PURPLE + "Epic"), + LEGENDARY(EnumChatFormatting.DARK_GREEN + "Legendary"), + SEWS_CLOTHES_AND_SUCKS_HORSE_COCK(EnumChatFormatting.DARK_AQUA + "Strange"); + + String name; + + Rarity(String name) { + this.name = name; + } + } + + public ItemCustomMissilePart makeChip(float inaccuracy) { + + this.type = PartType.CHIP; + this.top = PartSize.ANY; + this.bottom = PartSize.ANY; + this.attributes = new Object[] { inaccuracy }; + + parts.put(this.hashCode(), this); + + return this; + } + + public ItemCustomMissilePart makeWarhead(WarheadType type, float punch, float weight, PartSize size) { + + this.type = PartType.WARHEAD; + this.top = PartSize.NONE; + this.bottom = size; + this.attributes = new Object[] { type, punch, weight }; + setTextureName(RefStrings.MODID + ":mp_warhead"); + + parts.put(this.hashCode(), this); + + return this; + } + + public ItemCustomMissilePart makeFuselage(FuelType type, float fuel, PartSize top, PartSize bottom) { + + this.type = PartType.FUSELAGE; + this.top = top; + this.bottom = bottom; + attributes = new Object[] { type, fuel }; + setTextureName(RefStrings.MODID + ":mp_fuselage"); + + parts.put(this.hashCode(), this); + + return this; + } + + public ItemCustomMissilePart makeStability(float inaccuracy, PartSize size) { + + this.type = PartType.FINS; + this.top = size; + this.bottom = size; + this.attributes = new Object[] { inaccuracy }; + setTextureName(RefStrings.MODID + ":mp_stability"); + + parts.put(this.hashCode(), this); + + return this; + } + + public ItemCustomMissilePart makeThruster(FuelType type, float consumption, float lift, PartSize size) { + + this.type = PartType.THRUSTER; + this.top = size; + this.bottom = PartSize.NONE; + this.attributes = new Object[] { type, consumption, lift }; + setTextureName(RefStrings.MODID + ":mp_thruster"); + + parts.put(this.hashCode(), this); + + return this; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) + { + + if(title != null) + list.add(EnumChatFormatting.DARK_PURPLE + "\"" + title + "\""); + + try { + switch(type) { + case CHIP: + list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); + break; + case WARHEAD: + list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(bottom)); + list.add(EnumChatFormatting.BOLD + "Type: " + EnumChatFormatting.GRAY + getWarhead((WarheadType)attributes[0])); + list.add(EnumChatFormatting.BOLD + "Strength: " + EnumChatFormatting.GRAY + (Float)attributes[1]); + list.add(EnumChatFormatting.BOLD + "Weight: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); + break; + case FUSELAGE: + list.add(EnumChatFormatting.BOLD + "Top size: " + EnumChatFormatting.GRAY + getSize(top)); + list.add(EnumChatFormatting.BOLD + "Bottom size: " + EnumChatFormatting.GRAY + getSize(bottom)); + list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); + list.add(EnumChatFormatting.BOLD + "Fuel amount: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l"); + break; + case FINS: + list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); + list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); + break; + case THRUSTER: + list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); + list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); + list.add(EnumChatFormatting.BOLD + "Fuel consumption: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l/tick"); + list.add(EnumChatFormatting.BOLD + "Max. payload: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); + break; + } + } catch(Exception ex) { + list.add("### I AM ERROR ###"); + } + + if(type != PartType.CHIP) + list.add(EnumChatFormatting.BOLD + "Health: " + EnumChatFormatting.GRAY + health + "HP"); + + if(this.rarity != null) + list.add(EnumChatFormatting.BOLD + "Rarity: " + EnumChatFormatting.GRAY + this.rarity.name); + if(author != null) + list.add(EnumChatFormatting.WHITE + " by " + author); + if(witty != null) + list.add(EnumChatFormatting.GOLD + " " + EnumChatFormatting.ITALIC + "\"" + witty + "\""); + } + + public String getSize(PartSize size) { + + switch(size) { + case ANY: + return "Any"; + case SIZE_10: + return "1.0m"; + case SIZE_15: + return "1.5m"; + case SIZE_20: + return "2.0m"; + default: + return "None"; + } + } + + public String getWarhead(WarheadType type) { + + switch(type) { + case HE: + return EnumChatFormatting.YELLOW + "HE"; + case INC: + return EnumChatFormatting.GOLD + "Incendiary"; + case CLUSTER: + return EnumChatFormatting.GRAY + "Cluster"; + case BUSTER: + return EnumChatFormatting.WHITE + "Bunker Buster"; + case NUCLEAR: + return EnumChatFormatting.DARK_GREEN + "Nuclear"; + case TX: + return EnumChatFormatting.DARK_PURPLE + "Thermonuclear (TX)"; + case N2: + return EnumChatFormatting.RED + "N²"; + case BALEFIRE: + return EnumChatFormatting.GREEN + "BF"; + case SCHRAB: + return EnumChatFormatting.AQUA + "Schrabidium"; + case TAINT: + return EnumChatFormatting.DARK_PURPLE + "Taint"; + case CLOUD: + return EnumChatFormatting.LIGHT_PURPLE + "Cloud"; + case TURBINE: + return (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE) + "Turbine"; + default: + return EnumChatFormatting.BOLD + "N/A"; + } + } + + public String getFuel(FuelType type) { + + switch(type) { + case KEROSENE: + return EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Peroxide"; + case SOLID: + return EnumChatFormatting.GOLD + "Solid Fuel"; + case HYDROGEN: + return EnumChatFormatting.DARK_AQUA + "Hydrogen / Oxygen"; + case XENON: + return EnumChatFormatting.DARK_PURPLE + "Xenon Gas"; + case BALEFIRE: + return EnumChatFormatting.GREEN + "BF Rocket Fuel / Peroxide"; + default: + return EnumChatFormatting.BOLD + "N/A"; + } + } + + //am i retarded? + /* yes */ + public ItemCustomMissilePart copy() { + + ItemCustomMissilePart part = new ItemCustomMissilePart(); + part.type = this.type; + part.top = this.top; + part.bottom = this.bottom; + part.health = this.health; + part.attributes = this.attributes; + part.health = this.health; + part.setTextureName(this.iconString); + + return part; + } + + public ItemCustomMissilePart setAuthor(String author) { + this.author = author; + return this; + } + + public ItemCustomMissilePart setTitle(String title) { + this.title = title; + return this; + } + + public ItemCustomMissilePart setWittyText(String witty) { + this.witty = witty; + return this; + } + + public ItemCustomMissilePart setHealth(float health) { + this.health = health; + return this; + } + + public ItemCustomMissilePart setRarity(Rarity rarity) { + this.rarity = rarity; + + if(this.type == PartType.FUSELAGE) { + if(this.top == PartSize.SIZE_10) + ItemLootCrate.list10.add(this); + if(this.top == PartSize.SIZE_15) + ItemLootCrate.list15.add(this); + } else { + ItemLootCrate.listMisc.add(this); + } + return this; + } + +} diff --git a/src/main/java/com/hbm/items/weapon/ItemMissile.java b/src/main/java/com/hbm/items/weapon/ItemMissile.java index ec4b49b2f..740487f8e 100644 --- a/src/main/java/com/hbm/items/weapon/ItemMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemMissile.java @@ -1,347 +1,79 @@ package com.hbm.items.weapon; -import java.util.HashMap; import java.util.List; -import com.hbm.items.special.ItemLootCrate; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; +import com.hbm.items.ItemCustomLore; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class ItemMissile extends Item { +public class ItemMissile extends ItemCustomLore { - public PartType type; - public PartSize top; - public PartSize bottom; - public Rarity rarity; - public float health; - private String title; - private String author; - private String witty; + public final MissileFormFactor formFactor; + public final MissileTier tier; + public final MissileFuel fuel; - public ItemMissile() { - this.setMaxStackSize(1); - this.setCreativeTab(MainRegistry.missileTab); + public ItemMissile(MissileFormFactor form, MissileTier tier) { + this.formFactor = form; + this.tier = tier; + this.fuel = form.defaultFuel; } - public static HashMap parts = new HashMap(); - - /** - * == Chips == - * [0]: inaccuracy - * - * == Warheads == - * [0]: type - * [1]: strength/radius/cluster count - * [2]: weight - * - * == Fuselages == - * [0]: type - * [1]: tank size - * - * == Stability == - * [0]: inaccuracy mod - * - * == Thrusters === - * [0]: type - * [1]: consumption - * [2]: lift strength - */ - public Object[] attributes; - - public enum PartType { - CHIP, - WARHEAD, - FUSELAGE, - FINS, - THRUSTER + public ItemMissile(MissileFormFactor form, MissileTier tier, MissileFuel fuel) { + this.formFactor = form; + this.tier = tier; + this.fuel = fuel; } - public enum PartSize { - - //for chips - ANY, - //for missile tips and thrusters - NONE, - //regular sizes, 1.0m, 1.5m and 2.0m - SIZE_10, - SIZE_15, - SIZE_20 - } - - public enum WarheadType { - - HE, - INC, - BUSTER, - CLUSTER, - NUCLEAR, - TX, - N2, - BALEFIRE, - SCHRAB, - TAINT, - CLOUD, - TURBINE - } - - public enum FuelType { - - KEROSENE, - SOLID, - HYDROGEN, - XENON, - BALEFIRE - } - - public enum Rarity { - - COMMON(EnumChatFormatting.GRAY + "Common"), - UNCOMMON(EnumChatFormatting.YELLOW + "Uncommon"), - RARE(EnumChatFormatting.AQUA + "Rare"), - EPIC(EnumChatFormatting.LIGHT_PURPLE + "Epic"), - LEGENDARY(EnumChatFormatting.DARK_GREEN + "Legendary"), - SEWS_CLOTHES_AND_SUCKS_HORSE_COCK(EnumChatFormatting.DARK_AQUA + "Strange"); - - String name; - - Rarity(String name) { - this.name = name; - } - } - - public ItemMissile makeChip(float inaccuracy) { - - this.type = PartType.CHIP; - this.top = PartSize.ANY; - this.bottom = PartSize.ANY; - this.attributes = new Object[] { inaccuracy }; - - parts.put(this.hashCode(), this); - - return this; - } - - public ItemMissile makeWarhead(WarheadType type, float punch, float weight, PartSize size) { - - this.type = PartType.WARHEAD; - this.top = PartSize.NONE; - this.bottom = size; - this.attributes = new Object[] { type, punch, weight }; - setTextureName(RefStrings.MODID + ":mp_warhead"); - - parts.put(this.hashCode(), this); - - return this; - } - - public ItemMissile makeFuselage(FuelType type, float fuel, PartSize top, PartSize bottom) { - - this.type = PartType.FUSELAGE; - this.top = top; - this.bottom = bottom; - attributes = new Object[] { type, fuel }; - setTextureName(RefStrings.MODID + ":mp_fuselage"); - - parts.put(this.hashCode(), this); - - return this; - } - - public ItemMissile makeStability(float inaccuracy, PartSize size) { - - this.type = PartType.FINS; - this.top = size; - this.bottom = size; - this.attributes = new Object[] { inaccuracy }; - setTextureName(RefStrings.MODID + ":mp_stability"); - - parts.put(this.hashCode(), this); - - return this; - } - - public ItemMissile makeThruster(FuelType type, float consumption, float lift, PartSize size) { - - this.type = PartType.THRUSTER; - this.top = size; - this.bottom = PartSize.NONE; - this.attributes = new Object[] { type, consumption, lift }; - setTextureName(RefStrings.MODID + ":mp_thruster"); - - parts.put(this.hashCode(), this); - - return this; - } - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) - { - - if(title != null) - list.add(EnumChatFormatting.DARK_PURPLE + "\"" + title + "\""); - - try { - switch(type) { - case CHIP: - list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); - break; - case WARHEAD: - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(bottom)); - list.add(EnumChatFormatting.BOLD + "Type: " + EnumChatFormatting.GRAY + getWarhead((WarheadType)attributes[0])); - list.add(EnumChatFormatting.BOLD + "Strength: " + EnumChatFormatting.GRAY + (Float)attributes[1]); - list.add(EnumChatFormatting.BOLD + "Weight: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); - break; - case FUSELAGE: - list.add(EnumChatFormatting.BOLD + "Top size: " + EnumChatFormatting.GRAY + getSize(top)); - list.add(EnumChatFormatting.BOLD + "Bottom size: " + EnumChatFormatting.GRAY + getSize(bottom)); - list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); - list.add(EnumChatFormatting.BOLD + "Fuel amount: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l"); - break; - case FINS: - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); - list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); - break; - case THRUSTER: - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); - list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); - list.add(EnumChatFormatting.BOLD + "Fuel consumption: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l/tick"); - list.add(EnumChatFormatting.BOLD + "Max. payload: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); - break; - } - } catch(Exception ex) { - list.add("### I AM ERROR ###"); - } - - if(type != PartType.CHIP) - list.add(EnumChatFormatting.BOLD + "Health: " + EnumChatFormatting.GRAY + health + "HP"); - - if(this.rarity != null) - list.add(EnumChatFormatting.BOLD + "Rarity: " + EnumChatFormatting.GRAY + this.rarity.name); - if(author != null) - list.add(EnumChatFormatting.WHITE + " by " + author); - if(witty != null) - list.add(EnumChatFormatting.GOLD + " " + EnumChatFormatting.ITALIC + "\"" + witty + "\""); + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.ITALIC + this.tier.display); + list.add("Fuel: " + this.fuel.display); + super.addInformation(itemstack, player, list, bool); } - public String getSize(PartSize size) { + public enum MissileFormFactor { + ABM(MissileFuel.SOLID), + MICRO(MissileFuel.SOLID), + V2(MissileFuel.ETHANOL_PEROXIDE), + STRONG(MissileFuel.KEROSENE_PEROXIDE), + HUGE(MissileFuel.KEROSENE_LOXY), + ATLAS(MissileFuel.JETFUEL_LOXY), + OTHER(MissileFuel.KEROSENE_PEROXIDE); - switch(size) { - case ANY: - return "Any"; - case SIZE_10: - return "1.0m"; - case SIZE_15: - return "1.5m"; - case SIZE_20: - return "2.0m"; - default: - return "None"; + protected MissileFuel defaultFuel; + + private MissileFormFactor(MissileFuel defaultFuel) { + this.defaultFuel = defaultFuel; } } - public String getWarhead(WarheadType type) { + public enum MissileTier { + TIER0("Tier 0"), + TIER1("Tier 1"), + TIER2("Tier 2"), + TIER3("Tier 3"), + TIER4("Tier 4"); - switch(type) { - case HE: - return EnumChatFormatting.YELLOW + "HE"; - case INC: - return EnumChatFormatting.GOLD + "Incendiary"; - case CLUSTER: - return EnumChatFormatting.GRAY + "Cluster"; - case BUSTER: - return EnumChatFormatting.WHITE + "Bunker Buster"; - case NUCLEAR: - return EnumChatFormatting.DARK_GREEN + "Nuclear"; - case TX: - return EnumChatFormatting.DARK_PURPLE + "Thermonuclear (TX)"; - case N2: - return EnumChatFormatting.RED + "N²"; - case BALEFIRE: - return EnumChatFormatting.GREEN + "BF"; - case SCHRAB: - return EnumChatFormatting.AQUA + "Schrabidium"; - case TAINT: - return EnumChatFormatting.DARK_PURPLE + "Taint"; - case CLOUD: - return EnumChatFormatting.LIGHT_PURPLE + "Cloud"; - case TURBINE: - return (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE) + "Turbine"; - default: - return EnumChatFormatting.BOLD + "N/A"; + public String display; + + private MissileTier(String display) { + this.display = display; } } - public String getFuel(FuelType type) { + public enum MissileFuel { + SOLID(EnumChatFormatting.GOLD + "Solid Fuel (pre-fueled)"), + ETHANOL_PEROXIDE(EnumChatFormatting.AQUA + "Ethanol / Hydrogen Peroxide"), + KEROSENE_PEROXIDE(EnumChatFormatting.BLUE + "Kerosene / Hydrogen Peroxide"), + KEROSENE_LOXY(EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Liquid Oxygen"), + JETFUEL_LOXY(EnumChatFormatting.RED + "Jet Fuel / Liquid Oxygen"); - switch(type) { - case KEROSENE: - return EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Peroxide"; - case SOLID: - return EnumChatFormatting.GOLD + "Solid Fuel"; - case HYDROGEN: - return EnumChatFormatting.DARK_AQUA + "Hydrogen / Oxygen"; - case XENON: - return EnumChatFormatting.DARK_PURPLE + "Xenon Gas"; - case BALEFIRE: - return EnumChatFormatting.GREEN + "BF Rocket Fuel / Peroxide"; - default: - return EnumChatFormatting.BOLD + "N/A"; + public String display; + + private MissileFuel(String display) { + this.display = display; } } - - //am i retarded? - /* yes */ - public ItemMissile copy() { - - ItemMissile part = new ItemMissile(); - part.type = this.type; - part.top = this.top; - part.bottom = this.bottom; - part.health = this.health; - part.attributes = this.attributes; - part.health = this.health; - part.setTextureName(this.iconString); - - return part; - } - - public ItemMissile setAuthor(String author) { - this.author = author; - return this; - } - - public ItemMissile setTitle(String title) { - this.title = title; - return this; - } - - public ItemMissile setWittyText(String witty) { - this.witty = witty; - return this; - } - - public ItemMissile setHealth(float health) { - this.health = health; - return this; - } - - public ItemMissile setRarity(Rarity rarity) { - this.rarity = rarity; - - if(this.type == PartType.FUSELAGE) { - if(this.top == PartSize.SIZE_10) - ItemLootCrate.list10.add(this); - if(this.top == PartSize.SIZE_15) - ItemLootCrate.list15.add(this); - } else { - ItemLootCrate.listMisc.add(this); - } - return this; - } - } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 728f13789..78aacc531 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -323,7 +323,8 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCoreStabilizer.class, new RenderCoreComponent()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCore.class, new RenderCore()); //missile blocks - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPadTier1()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPad()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPadLarge.class, new RenderLaunchPadLarge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMissileAssembly.class, new RenderMissileAssembly()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCompactLauncher.class, new RenderCompactLauncher()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchTable.class, new RenderLaunchTable()); @@ -442,8 +443,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_volcano, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); - MinecraftForgeClient.registerItemRenderer(ModItems.missile_endo, new ItemRenderMissileGeneric(RenderMissileType.TYPE_THERMAL)); - MinecraftForgeClient.registerItemRenderer(ModItems.missile_exo, new ItemRenderMissileGeneric(RenderMissileType.TYPE_THERMAL)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday, new ItemRenderMissileGeneric(RenderMissileType.TYPE_DOOMSDAY)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_carrier, new ItemRenderMissileGeneric(RenderMissileType.TYPE_CARRIER)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_shuttle, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ROBIN)); @@ -521,7 +520,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_defabricator, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_dash, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_twigun, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_dampfmaschine, new ItemRenderBullshit()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_bright, ResourceManager.ff_wood)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action, new ItemRenderWeaponFFBolt(ResourceManager.rem700, ResourceManager.rem700_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_dark, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_normal, ResourceManager.ff_wood_red)); @@ -609,9 +607,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySiegeLaser.class, new RenderSiegeLaser()); RenderingRegistry.registerEntityRenderingHandler(EntityLN2.class, new RenderLN2(ModItems.energy_ball)); RenderingRegistry.registerEntityRenderingHandler(EntityLaser.class, new RenderLaser()); - RenderingRegistry.registerEntityRenderingHandler(EntityBombletTheta.class, new RenderBombletTheta()); RenderingRegistry.registerEntityRenderingHandler(EntityBombletZeta.class, new RenderBombletTheta()); - RenderingRegistry.registerEntityRenderingHandler(EntityBombletSelena.class, new RenderBombletSelena()); RenderingRegistry.registerEntityRenderingHandler(EntityMeteor.class, new RenderMeteor()); RenderingRegistry.registerEntityRenderingHandler(EntityBoxcar.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityDuchessGambit.class, new RenderBoxcar()); @@ -722,8 +718,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMissileBHole.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileSchrabidium.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileEMP.class, new RenderMissileTaint()); - RenderingRegistry.registerEntityRenderingHandler(EntityMissileEndo.class, new RenderMissileThermo()); - RenderingRegistry.registerEntityRenderingHandler(EntityMissileExo.class, new RenderMissileThermo()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileShuttle.class, new RenderMissileShuttle()); //effects RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleija.class, new RenderCloudFleija()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index cd615d7b1..006d32211 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -676,7 +676,7 @@ public class MainRegistry { achFreytag = new Achievement("achievement.freytag", "freytag", 0, -4, ModItems.gun_mp40, null).initIndependentStat().setSpecial().registerStat(); achPotato = new Achievement("achievement.potato", "potato", -2, -2, ModItems.battery_potatos, null).initIndependentStat().setSpecial().registerStat(); achC44 = new Achievement("achievement.c44", "c44", 2, -4, ModItems.gun_revolver_pip, null).initIndependentStat().setSpecial().registerStat(); - achC20_5 = new Achievement("achievement.c20_5", "c20_5", 3, 6, ModItems.gun_dampfmaschine, null).initIndependentStat().setSpecial().registerStat(); + achC20_5 = new Achievement("achievement.c20_5", "c20_5", 3, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.QUESTIONMARK), null).initIndependentStat().setSpecial().registerStat(); achFiend = new Achievement("achievement.fiend", "fiend", -6, 8, ModItems.shimmer_sledge, null).initIndependentStat().setSpecial().registerStat(); achFiend2 = new Achievement("achievement.fiend2", "fiend2", -4, 9, ModItems.shimmer_axe, null).initIndependentStat().setSpecial().registerStat(); achStratum = new Achievement("achievement.stratum", "stratum", -4, -2, new ItemStack(ModBlocks.stone_gneiss), null).initIndependentStat().setSpecial().registerStat(); @@ -689,7 +689,7 @@ public class MainRegistry { achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat(); achRedRoom = new Achievement("achievement.redRoom", "redRoom", -10, 10, ModItems.key_red, null).initIndependentStat().setSpecial().registerStat(); - bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat(); + bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.QUESTIONMARK), null).initIndependentStat().registerStat(); horizonsStart = new Achievement("achievement.horizonsStart", "horizonsStart", -5, 4, ModItems.sat_gerald, null).initIndependentStat().registerStat(); horizonsEnd = new Achievement("achievement.horizonsEnd", "horizonsEnd", -3, 4, ModItems.sat_gerald, horizonsStart).initIndependentStat().registerStat(); @@ -1218,6 +1218,11 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.basalt_fluorite"); ignoreMappings.add("hbm:tile.basalt_asbestos"); ignoreMappings.add("hbm:tile.basalt_gem"); + ignoreMappings.add("hbm:item.missile_endo"); + ignoreMappings.add("hbm:item.missile_exo"); + ignoreMappings.add("hbm:item.warhead_thermo_endo"); + ignoreMappings.add("hbm:item.warhead_thermo_exo"); + ignoreMappings.add("hbm:item.gun_dampfmaschine"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 907d1c1d8..bc82f4612 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1068,7 +1068,6 @@ public class ResourceManager { public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")).asDisplayList(); public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")).asDisplayList(); public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); - public static final IModelCustom missileThermo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileThermo.obj")); public static final IModelCustom missileDoomsday = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileDoomsday.obj")); public static final IModelCustom missileMicro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_micro.obj")).asDisplayList(); public static final IModelCustom missileShuttle = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileShuttle.obj")); @@ -1087,6 +1086,7 @@ public class ResourceManager { //Missile Parts public static final IModelCustom missile_pad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missilePad.obj")); + public static final IModelCustom missile_erector = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/launch_pad_erector.obj")).asDisplayList(); public static final IModelCustom missile_assembly = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_assembly.obj")); public static final IModelCustom strut = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/strut.obj")); public static final IModelCustom compact_launcher = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/compact_launcher.obj")); @@ -1221,8 +1221,6 @@ public class ResourceManager { public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeon.png"); public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonH.png"); public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonV.png"); - public static final ResourceLocation missileEndo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileEndo.png"); - public static final ResourceLocation missileExo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileExo.png"); public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileDoomsday.png"); public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_taint.png"); public static final ResourceLocation missileShuttle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileShuttle.png"); @@ -1289,6 +1287,13 @@ public class ResourceManager { //Missile Parts public static final ResourceLocation missile_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missilePad.png"); + public static final ResourceLocation missile_erector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/pad.png"); + public static final ResourceLocation missile_erector_micro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_micro.png"); + public static final ResourceLocation missile_erector_v2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_v2.png"); + public static final ResourceLocation missile_erector_strong_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_strong.png"); + public static final ResourceLocation missile_erector_huge_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_huge.png"); + public static final ResourceLocation missile_erector_atlas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_atlas.png"); + public static final ResourceLocation missile_erector_abm_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_abm.png"); public static final ResourceLocation missile_assembly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_assembly.png"); public static final ResourceLocation strut_tex = new ResourceLocation(RefStrings.MODID, "textures/models/strut.png"); public static final ResourceLocation compact_launcher_tex = new ResourceLocation(RefStrings.MODID, "textures/models/compact_launcher.png"); diff --git a/src/main/java/com/hbm/packet/AuxButtonPacket.java b/src/main/java/com/hbm/packet/AuxButtonPacket.java index ee636bda0..1241363c1 100644 --- a/src/main/java/com/hbm/packet/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/AuxButtonPacket.java @@ -2,7 +2,7 @@ package com.hbm.packet; import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityDuck; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityTickingBase; import com.hbm.tileentity.bomb.TileEntityLaunchTable; diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java index e97a68ce1..9d2e5a2b5 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/AuxGaugePacket.java @@ -1,7 +1,7 @@ package com.hbm.packet; import com.hbm.interfaces.Spaghetti; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.bomb.TileEntityCompactLauncher; import com.hbm.tileentity.bomb.TileEntityLaunchTable; diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBombletSelena.java b/src/main/java/com/hbm/render/entity/projectile/RenderBombletSelena.java deleted file mode 100644 index 1c8850bed..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBombletSelena.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderBombletSelena extends Render { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/bombletSelena.obj"); - private IModelCustom boyModel; - private ResourceLocation boyTexture; - - public RenderBombletSelena() { - boyModel = AdvancedModelLoader.loadModel(objTesterModelRL); - boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - GL11.glScalef(2, 2, 2); - - bindTexture(boyTexture); - boyModel.renderAll(); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID +":textures/models/TheGadget3_.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java deleted file mode 100644 index 3eb929325..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.missile.EntityMissileTier3.*; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMissileThermo extends Render { - - public RenderMissileThermo() { } - - @Override - public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - if(entity instanceof EntityMissileEndo) bindTexture(ResourceManager.missileEndo_tex); - if(entity instanceof EntityMissileExo) bindTexture(ResourceManager.missileExo_tex); - ResourceManager.missileThermo.renderAll(); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileEndo_tex; - } - -} diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java index c50916252..f73a64345 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -31,7 +31,6 @@ public class ItemRenderMissileGeneric implements IItemRenderer { TYPE_STEALTH, TYPE_ABM, TYPE_NUCLEAR, - TYPE_THERMAL, TYPE_DOOMSDAY, TYPE_CARRIER, TYPE_ROBIN @@ -77,7 +76,6 @@ public class ItemRenderMissileGeneric implements IItemRenderer { case TYPE_STEALTH: guiScale = 1.75D; guiOffset = 4.75D; break; case TYPE_ABM: guiScale = 2.25D; guiOffset = 7D; break; case TYPE_NUCLEAR: guiScale = 1.75D; guiOffset = 4D; break; - case TYPE_THERMAL: guiScale = 1.75D; guiOffset = 4.5D; break; case TYPE_DOOMSDAY: guiScale = 1.5D; guiOffset = 3D; break; case TYPE_CARRIER: guiScale = 0.625D; guiOffset = -17D; break; case TYPE_ROBIN: guiScale = 1.25D; guiOffset = 2D; break; @@ -167,9 +165,6 @@ public class ItemRenderMissileGeneric implements IItemRenderer { renderers.put(new ComparableStack(ModItems.missile_nuclear), generateLarge(ResourceManager.missileNuclear_tex, ResourceManager.missileNuclear)); renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateLarge(ResourceManager.missileMIRV_tex, ResourceManager.missileNuclear)); renderers.put(new ComparableStack(ModItems.missile_volcano), generateLarge(ResourceManager.missileVolcano_tex, ResourceManager.missileNuclear)); - - renderers.put(new ComparableStack(ModItems.missile_endo), generateLarge(ResourceManager.missileEndo_tex, ResourceManager.missileThermo)); - renderers.put(new ComparableStack(ModItems.missile_exo), generateLarge(ResourceManager.missileExo_tex, ResourceManager.missileThermo)); renderers.put(new ComparableStack(ModItems.missile_doomsday), generateDouble(ResourceManager.missileDoomsday_tex, ResourceManager.missileDoomsday)); diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissilePart.java b/src/main/java/com/hbm/render/item/ItemRenderMissilePart.java index 3c3988c19..9f40cd590 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMissilePart.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMissilePart.java @@ -2,7 +2,7 @@ package com.hbm.render.item; import org.lwjgl.opengl.GL11; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import com.hbm.render.util.MissilePart; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java deleted file mode 100644 index d66b937f2..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelBaleflare; -import com.hbm.render.model.ModelMP40; -import com.hbm.render.model.ModelPip; -import com.hbm.render.model.ModelSpark; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderBullshit implements IItemRenderer { - - protected ModelSpark sparkPlug; - protected ModelPip pip; - protected ModelMP40 mp40; - protected ModelBaleflare bomb; - - public ItemRenderBullshit() { - sparkPlug = new ModelSpark(); - pip = new ModelPip(); - mp40 = new ModelMP40(); - bomb = new ModelBaleflare(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - - renderWhatever(type, item, data); - - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - - 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.5F, -0.2F, 0.0F); - //GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-1.4F, 0.0F, 0.0F); - - renderWhatever(type, item, data); - - GL11.glPopMatrix(); - default: break; - } - } - - private void renderWhatever(ItemRenderType type, ItemStack item, Object... data) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP40.png")); - GL11.glScalef(0.75F, 0.75F, 0.75F); - mp40.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); - GL11.glScalef(4/3F, 4/3F, 4/3F); - GL11.glTranslatef(-0.5F, 0.0F, 0.0F); - sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); - GL11.glTranslatef(0.0F, 0.2F, 0.0F); - GL11.glTranslatef(0.5F, 0.0F, 0.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BaleFlare.png")); - GL11.glScalef(4/3F, 4/3F, 4/3F); - GL11.glTranslatef(-1.5F, 0.0F, 0.0F); - bomb.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java similarity index 92% rename from src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java rename to src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java index a7e1a1c49..b0f720391 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java @@ -14,7 +14,7 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { +public class RenderLaunchPad extends TileEntitySpecialRenderer { @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java new file mode 100644 index 000000000..468ebbaca --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java @@ -0,0 +1,100 @@ +package com.hbm.render.tileentity; + +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.items.weapon.ItemMissile.MissileFormFactor; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderMissileGeneric; +import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; + +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderLaunchPadLarge extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityLaunchPadLarge pad = (TileEntityLaunchPadLarge) tileEntity; + + bindTexture(ResourceManager.missile_erector_tex); + ResourceManager.missile_erector.renderPart("Pad"); + + if(pad.formFactor >= 0 && pad.formFactor < ItemMissile.MissileFormFactor.values().length) { + + MissileFormFactor formFactor = MissileFormFactor.values()[pad.formFactor]; + String[] parts = null; + double[] offset = null; + + switch(formFactor) { + case ABM: parts = new String[] {"ABM_Pad", "ABM_Erector", "ABM_Pivot", "ABM_Rope"}; + offset = new double[] {1.5D, 1.25D}; + bindTexture(ResourceManager.missile_erector_abm_tex); break; + case MICRO: parts = new String[] {"Micro_Pad", "Micro_Erector", "Micro_Pivot", "Micro_Rope"}; + offset = new double[] {1.5D, 1.25D}; + bindTexture(ResourceManager.missile_erector_micro_tex); break; + case V2: parts = new String[] {"V2_Pad", "V2_Erector", "V2_Pivot", "V2_Rope"}; + offset = new double[] {1.75D, 1.25D}; + bindTexture(ResourceManager.missile_erector_v2_tex); break; + case STRONG: parts = new String[] {"Strong_Pad", "Strong_Erector", "Strong_Pivot", "Strong_Rope"}; + offset = new double[] {3D, 1.5D}; + bindTexture(ResourceManager.missile_erector_strong_tex); break; + case HUGE: parts = new String[] {"Huge_Pad", "Huge_Erector", "Huge_Pivot", "Huge_Rope"}; + offset = new double[] {3D, 1.5D}; + bindTexture(ResourceManager.missile_erector_huge_tex); break; + case ATLAS: parts = new String[] {"Atlas_Pad", "Atlas_Erector", "Atlas_Pivot", "Atlas_Rope"}; + offset = new double[] {4D, 1.5D}; + bindTexture(ResourceManager.missile_erector_atlas_tex); break; + case OTHER: parts = new String[] {"ABM_Pad", "ABM_Erector", "ABM_Pivot", "ABM_Rope"}; + offset = new double[] {1.5D, 1.25D}; + bindTexture(ResourceManager.missile_erector_abm_tex); break; + } + + float erectorAngle = pad.prevErector + (pad.erector - pad.prevErector) * f; + float erectorLift = pad.prevLift + (pad.lift - pad.prevLift) * f; + + GL11.glPushMatrix(); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missile_erector.renderPart(parts[0]); + if(pad.toRender != null && pad.erected) ResourceManager.missile_erector.renderPart(parts[3]); + GL11.glTranslated(0, offset[1], -offset[0]); + GL11.glRotatef(-erectorAngle, 1, 0, 0); + GL11.glTranslated(0, -offset[1], offset[0]); + ResourceManager.missile_erector.renderPart(parts[2]); + GL11.glTranslatef(0, erectorLift, 0); + ResourceManager.missile_erector.renderPart(parts[1]); + GL11.glShadeModel(GL11.GL_FLAT); + + if(pad.erected) { + GL11.glPopMatrix(); + GL11.glPushMatrix(); + } + + if(pad.toRender != null && (pad.erected || pad.readyToLoad)) { + GL11.glTranslated(0, 2, 0); + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(pad.toRender).makeSingular()); + if(renderer != null) renderer.accept(this.field_147501_a.field_147553_e); + } + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java index 20e1c131b..7f8b6b0c8 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java @@ -2,8 +2,8 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.main.ResourceManager; import com.hbm.render.util.MissileMultipart; import com.hbm.render.util.MissilePronter; @@ -87,7 +87,7 @@ public class RenderLaunchTable extends TileEntitySpecialRenderer { emptyM.renderAll(); } else { - if(launcher.load != null && launcher.load.fuselage != null && ((ItemMissile)launcher.load.fuselage).top == launcher.padSize) { + if(launcher.load != null && launcher.load.fuselage != null && ((ItemCustomMissilePart)launcher.load.fuselage).top == launcher.padSize) { bindTexture(connector); connectorM.renderAll(); } else { diff --git a/src/main/java/com/hbm/render/util/MissileMultipart.java b/src/main/java/com/hbm/render/util/MissileMultipart.java index 979a53b15..025343b30 100644 --- a/src/main/java/com/hbm/render/util/MissileMultipart.java +++ b/src/main/java/com/hbm/render/util/MissileMultipart.java @@ -1,7 +1,7 @@ package com.hbm.render.util; import com.hbm.handler.MissileStruct; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/render/util/MissilePart.java b/src/main/java/com/hbm/render/util/MissilePart.java index bbaf1e539..dbec574c4 100644 --- a/src/main/java/com/hbm/render/util/MissilePart.java +++ b/src/main/java/com/hbm/render/util/MissilePart.java @@ -2,7 +2,7 @@ package com.hbm.render.util; import java.util.HashMap; import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import com.hbm.main.ResourceManager; import net.minecraft.item.Item; diff --git a/src/main/java/com/hbm/render/util/MissilePronter.java b/src/main/java/com/hbm/render/util/MissilePronter.java index 406499470..c5f979ede 100644 --- a/src/main/java/com/hbm/render/util/MissilePronter.java +++ b/src/main/java/com/hbm/render/util/MissilePronter.java @@ -2,7 +2,7 @@ package com.hbm.render.util; import org.lwjgl.opengl.GL11; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import net.minecraft.client.renderer.texture.TextureManager; diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index a76902ab9..d9a17469d 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -170,8 +170,7 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - @Override - public void serialize(ByteBuf buf) { + @Override public void serialize(ByteBuf buf) { buf.writeBoolean(muffled); } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 3686a7b31..fd8577aec 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -73,6 +73,7 @@ public class TileMappings { put(TileEntityRedBarrel.class, "tileentity_barrel"); put(TileEntityYellowBarrel.class, "tileentity_nukebarrel"); put(TileEntityLaunchPad.class, "tileentity_launch1"); + put(TileEntityLaunchPadLarge.class, "tileentity_launchpad_large"); put(TileEntityDecoBlock.class, "tileentity_deco"); put(TileEntityDecoBlockAltW.class, "tileentity_deco_w"); put(TileEntityDecoBlockAltG.class, "tileentity_deco_g"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 6dd6a97be..55068c5fa 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -13,9 +13,9 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineCompactLauncher; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemCustomMissile; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxElectricityPacket; @@ -294,12 +294,12 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); - ItemMissile chip = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); + ItemCustomMissilePart chip = (ItemCustomMissilePart) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); float c = (Float)chip.attributes[0]; float f = 1.0F; if(getStruct(slots[0]).fins != null) { - ItemMissile fins = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "stability")); + ItemCustomMissilePart fins = (ItemCustomMissilePart) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "stability")); f = (Float) fins.attributes[0]; } @@ -329,7 +329,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I if(multipart == null || multipart.fuselage == null) return; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; float f = (Float)fuselage.attributes[1]; int fuel = (int)f; @@ -370,7 +370,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I if(multipart == null || multipart.fuselage == null) return false; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; return fuselage.top == PartSize.SIZE_10; } @@ -391,7 +391,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I if(multipart == null || multipart.fuselage == null) return -1; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; if((FuelType)fuselage.attributes[0] == FuelType.SOLID) { @@ -411,7 +411,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I if(multipart == null || multipart.fuselage == null) return -1; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; switch((FuelType)fuselage.attributes[0]) { case KEROSENE: @@ -436,7 +436,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I if(multipart == null || multipart.fuselage == null) return -1; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; switch((FuelType)fuselage.attributes[0]) { case KEROSENE: @@ -460,7 +460,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I if(multipart == null || multipart.fuselage == null) return; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; switch((FuelType)fuselage.attributes[0]) { case KEROSENE: diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index cbf89a7f9..5513e6de1 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -83,8 +83,6 @@ public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnerg missiles.put(new ComparableStack(ModItems.missile_inferno), EntityMissileInferno.class); missiles.put(new ComparableStack(ModItems.missile_rain), EntityMissileRain.class); missiles.put(new ComparableStack(ModItems.missile_drill), EntityMissileDrill.class); - missiles.put(new ComparableStack(ModItems.missile_endo), EntityMissileEndo.class); - missiles.put(new ComparableStack(ModItems.missile_exo), EntityMissileExo.class); missiles.put(new ComparableStack(ModItems.missile_shuttle), EntityMissileShuttle.class); //Tier 4 missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java new file mode 100644 index 000000000..1d7b734be --- /dev/null +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -0,0 +1,228 @@ +package com.hbm.tileentity.bomb; + +import com.hbm.inventory.container.ContainerLaunchPadLarge; +import com.hbm.inventory.gui.GUILaunchPadLarge; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.TileEntityMachineBase; + +import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IRadarCommandReceiver { + + public ItemStack toRender; + public int formFactor = -1; + /** Whether the missile has already been placed on the launchpad. Missile will render statically on the pad if true */ + public boolean erected = false; + /** Whether the missile can be lifted. Missile will not render at all if false and not erected */ + public boolean readyToLoad = false; + /** Instead of setting erected to true outright, this makes it so that it ties into the delay, + * which prevents a jerky transition due to the animation of the erector lagging behind a bit */ + public boolean scheduleErect = false; + public float lift = 1F; + public float erector = 90F; + public float prevLift = 1F; + public float prevErector = 90F; + public float syncLift; + public float syncErector ; + public int delay = 20; + private int sync; + + public long power; + public final long maxPower = 100_000; + + public TileEntityLaunchPadLarge() { + super(7); + } + + @Override + public String getName() { + return "container.launchPad"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + float erectorSpeed = 1.5F; + float liftSpeed = 0.025F; + + if(slots[0] != null) { + if(slots[0].getItem() instanceof ItemMissile) { + this.formFactor = ((ItemMissile) slots[0].getItem()).formFactor.ordinal(); + } + + if(this.erector == 90F && this.lift == 1F) { + this.readyToLoad = true; + } + } else { + readyToLoad = false; + erected = false; + delay = 20; + } + + if(delay > 0) { + delay--; + + if(delay < 10 && scheduleErect) { + this.erected = true; + this.scheduleErect = false; + } + + // if there is no missile or the missile isn't ready (i.e. the erector hasn't returned to zero position yet), retract + if(slots[0] == null || !readyToLoad) { + //fold back erector + if(erector < 90F) { + erector = Math.min(erector + erectorSpeed, 90F); + if(erector == 90F) delay = 20; + //extend lift + } else if(lift < 1F) { + lift = Math.min(lift + liftSpeed, 1F); + if(erector == 1F) { + //if the lift is fully extended, the loading can begin + readyToLoad = true; + delay = 20; + } + } + } + + } else { + + //only extend if the erector isn't up yet and the missile can be loaded + if(!erected && readyToLoad) { + //first, rotate the erector + if(erector != 0F) { + erector = Math.max(erector - erectorSpeed, 0F); + if(erector == 0F) delay = 20; + //then retract the lift + } else if(lift > 0) { + lift = Math.max(lift - liftSpeed, 0F); + if(lift == 0F) { + //once the lift is at the bottom, the missile is deployed + scheduleErect = true; + delay = 20; + } + } + } else { + //first, fold back the erector + if(erector < 90F) { + erector = Math.min(erector + erectorSpeed, 90F); + if(erector == 90F) delay = 20; + //then extend the lift again + } else if(lift < 1F) { + lift = Math.min(lift + liftSpeed, 1F); + if(erector == 1F) { + //if the lift is fully extended, the loading can begin + readyToLoad = true; + delay = 20; + } + } + } + } + + this.networkPackNT(250); + + } else { + this.prevLift = this.lift; + this.prevErector = this.erector; + + if(this.sync > 0) { + this.lift = this.lift + ((this.syncLift - this.lift) / (float) this.sync); + this.erector = this.erector + ((this.syncErector - this.erector) / (float) this.sync); + --this.sync; + } else { + this.lift = this.syncLift; + this.erector = this.syncErector; + } + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + if(slots[0] != null) { + buf.writeBoolean(true); + buf.writeInt(Item.getIdFromItem(slots[0].getItem())); + buf.writeShort((short) slots[0].getItemDamage()); + } else { + buf.writeBoolean(false); + } + + buf.writeBoolean(erected); + buf.writeBoolean(readyToLoad); + buf.writeByte((byte) this.formFactor); + buf.writeFloat(this.lift); + buf.writeFloat(this.erector); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + if(buf.readBoolean()) { + this.toRender = new ItemStack(Item.getItemById(buf.readInt()), 1, buf.readShort()); + } else { + this.toRender = null; + } + + this.erected = buf.readBoolean(); + this.readyToLoad = buf.readBoolean(); + this.formFactor = buf.readByte(); + + this.syncLift = buf.readFloat(); + this.syncErector = buf.readFloat(); + + if(this.lift != this.syncLift || this.erector != this.syncErector) { + this.sync = 3; + } + } + + @Override + public long getPower() { + return power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + return false; + } + + @Override + public boolean sendCommandEntity(Entity target) { + return false; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerLaunchPadLarge(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUILaunchPadLarge(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 164046197..ce5bf1020 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -15,9 +15,9 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineLaunchTable; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemCustomMissile; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxElectricityPacket; @@ -291,12 +291,12 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); - ItemMissile chip = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); + ItemCustomMissilePart chip = (ItemCustomMissilePart) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); float c = (Float)chip.attributes[0]; float f = 1.0F; if(getStruct(slots[0]).fins != null) { - ItemMissile fins = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "stability")); + ItemCustomMissilePart fins = (ItemCustomMissilePart) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "stability")); f = (Float) fins.attributes[0]; } @@ -326,7 +326,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide if(multipart == null || multipart.fuselage == null) return; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; float f = (Float)fuselage.attributes[1]; int fuel = (int)f; @@ -367,7 +367,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide if(multipart == null || multipart.fuselage == null) return false; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; return fuselage.top == padSize; } @@ -388,7 +388,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide if(multipart == null || multipart.fuselage == null) return -1; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; if((FuelType)fuselage.attributes[0] == FuelType.SOLID) { @@ -408,7 +408,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide if(multipart == null || multipart.fuselage == null) return -1; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; switch((FuelType)fuselage.attributes[0]) { case KEROSENE: @@ -433,7 +433,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide if(multipart == null || multipart.fuselage == null) return -1; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; switch((FuelType)fuselage.attributes[0]) { case KEROSENE: @@ -457,7 +457,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide if(multipart == null || multipart.fuselage == null) return; - ItemMissile fuselage = (ItemMissile)multipart.fuselage; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; switch((FuelType)fuselage.attributes[0]) { case KEROSENE: diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java index f47fc563f..4ffd642d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java @@ -4,9 +4,9 @@ import com.hbm.handler.MissileStruct; import com.hbm.inventory.container.ContainerMachineMissileAssembly; import com.hbm.inventory.gui.GUIMachineMissileAssembly; import com.hbm.items.weapon.ItemCustomMissile; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; import com.hbm.tileentity.IGUIProvider; @@ -190,9 +190,9 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public int fuselageState() { - if(slots[2] != null && slots[2].getItem() instanceof ItemMissile) { + if(slots[2] != null && slots[2].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[2].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[2].getItem(); if(part.type == PartType.FUSELAGE) return 1; @@ -203,9 +203,9 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public int chipState() { - if(slots[0] != null && slots[0].getItem() instanceof ItemMissile) { + if(slots[0] != null && slots[0].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[0].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[0].getItem(); if(part.type == PartType.CHIP) return 1; @@ -216,13 +216,13 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public int warheadState() { - if(slots[1] != null && slots[1].getItem() instanceof ItemMissile && - slots[2] != null && slots[2].getItem() instanceof ItemMissile && - slots[4] != null && slots[4].getItem() instanceof ItemMissile) { + if(slots[1] != null && slots[1].getItem() instanceof ItemCustomMissilePart && + slots[2] != null && slots[2].getItem() instanceof ItemCustomMissilePart && + slots[4] != null && slots[4].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[1].getItem(); - ItemMissile fuselage = (ItemMissile)slots[2].getItem(); - ItemMissile thruster = (ItemMissile)slots[4].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[1].getItem(); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)slots[2].getItem(); + ItemCustomMissilePart thruster = (ItemCustomMissilePart)slots[4].getItem(); if(part.type == PartType.WARHEAD && fuselage.type == PartType.FUSELAGE && thruster.type == PartType.THRUSTER) { float weight = (Float)part.attributes[2]; @@ -241,11 +241,11 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid if(slots[3] == null) return -1; - if(slots[3] != null && slots[3].getItem() instanceof ItemMissile && - slots[2] != null && slots[2].getItem() instanceof ItemMissile) { + if(slots[3] != null && slots[3].getItem() instanceof ItemCustomMissilePart && + slots[2] != null && slots[2].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[3].getItem(); - ItemMissile fuselage = (ItemMissile)slots[2].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[3].getItem(); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)slots[2].getItem(); if(part.top == fuselage.bottom && part.type == PartType.FINS) return 1; @@ -256,11 +256,11 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public int thrusterState() { - if(slots[4] != null && slots[4].getItem() instanceof ItemMissile && - slots[2] != null && slots[2].getItem() instanceof ItemMissile) { + if(slots[4] != null && slots[4].getItem() instanceof ItemCustomMissilePart && + slots[2] != null && slots[2].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[4].getItem(); - ItemMissile fuselage = (ItemMissile)slots[2].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[4].getItem(); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)slots[2].getItem(); if(part.type == PartType.THRUSTER && fuselage.type == PartType.FUSELAGE && part.top == fuselage.bottom && (FuelType)part.attributes[0] == (FuelType)fuselage.attributes[0]) { diff --git a/src/main/resources/assets/hbm/models/missileThermo.obj b/src/main/resources/assets/hbm/models/missileThermo.obj deleted file mode 100644 index a4cb297aa..000000000 --- a/src/main/resources/assets/hbm/models/missileThermo.obj +++ /dev/null @@ -1,847 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileThermo.blend' -# www.blender.org -o Cylinder -v -0.097545 0.500000 -0.490393 -v 0.097545 0.500000 -0.490393 -v 0.073159 0.000000 -0.367794 -v 0.277785 0.500000 -0.415735 -v 0.208339 0.000000 -0.311801 -v 0.415735 0.500000 -0.277785 -v 0.311801 0.000000 -0.208339 -v 0.490393 0.500000 -0.097545 -v 0.367794 0.000000 -0.073159 -v 0.490393 0.500000 0.097545 -v 0.367794 -0.000000 0.073159 -v 0.415735 0.500000 0.277785 -v 0.311801 -0.000000 0.208339 -v 0.277785 0.500000 0.415735 -v 0.208339 -0.000000 0.311801 -v 0.097545 0.500000 0.490393 -v -0.097545 0.500000 0.490393 -v -0.073159 -0.000000 0.367794 -v -0.277785 0.500000 0.415735 -v -0.208339 -0.000000 0.311801 -v -0.415735 0.500000 0.277785 -v -0.311801 -0.000000 0.208339 -v -0.490393 0.500000 0.097545 -v -0.490393 0.500000 -0.097545 -v -0.367794 0.000000 -0.073159 -v -0.415735 0.500000 -0.277785 -v -0.311801 0.000000 -0.208339 -v 0.490393 3.000000 0.097545 -v 0.415735 3.000000 0.277785 -v -0.208339 0.000000 -0.311801 -v -0.277785 0.500000 -0.415735 -v 0.332588 4.500000 0.222228 -v 0.222228 4.500000 0.332588 -v -0.277785 3.000000 0.415735 -v -0.415735 3.000000 0.277785 -v -0.277785 3.000000 -0.415735 -v -0.097545 3.000000 -0.490393 -v 0.415735 3.000000 -0.277785 -v 0.490393 3.000000 -0.097545 -v -0.490393 3.000000 -0.097545 -v -0.415735 3.000000 -0.277785 -v 0.097545 3.000000 -0.490393 -v 0.277785 3.000000 -0.415735 -v 0.277785 3.000000 0.415735 -v -0.490393 3.000000 0.097545 -v -0.097545 3.000000 0.490393 -v 0.097545 3.000000 0.490393 -v -0.332588 4.500000 0.222228 -v -0.270228 4.750000 0.180560 -v -0.318755 4.750000 0.063404 -v -0.332588 4.500000 -0.222228 -v -0.222228 4.500000 -0.332588 -v -0.078036 4.500000 -0.392314 -v 0.078036 4.500000 -0.392314 -v 0.078036 4.500000 0.392314 -v -0.078036 4.500000 0.392314 -v -0.222228 4.500000 0.332588 -v 0.222228 4.500000 -0.332588 -v 0.332588 4.500000 -0.222228 -v 0.392314 4.500000 -0.078036 -v -0.392314 4.500000 0.078036 -v 0.392314 4.500000 0.078036 -v -0.392314 4.500000 -0.078036 -v -0.180560 4.750000 0.270228 -v -0.063404 4.750000 0.318755 -v -0.073159 5.000000 0.367795 -v 0.318755 4.750000 -0.063404 -v -0.318755 4.750000 -0.063404 -v 0.318755 4.750000 0.063404 -v 0.270227 4.750000 0.180560 -v -0.270228 4.750000 -0.180560 -v 0.180560 4.750000 0.270228 -v -0.063405 4.750000 -0.318755 -v 0.063404 4.750000 -0.318755 -v -0.180560 4.750000 -0.270228 -v 0.063404 4.750000 0.318755 -v 0.180560 4.750000 -0.270228 -v 0.270227 4.750000 -0.180560 -v -0.311801 5.000000 -0.208339 -v -0.311801 6.500000 -0.208339 -v -0.208339 6.500000 -0.311801 -v 0.208338 5.000000 -0.311801 -v 0.311801 5.000000 -0.208339 -v -0.208339 5.000000 0.311801 -v -0.311801 5.000000 0.208339 -v 0.367794 5.000000 -0.073159 -v -0.367795 5.000000 0.073159 -v -0.367795 5.000000 -0.073159 -v 0.367794 5.000000 0.073159 -v 0.311801 5.000000 0.208339 -v -0.208339 5.000000 -0.311801 -v 0.208339 5.000000 0.311801 -v 0.073159 5.000000 0.367794 -v -0.073159 5.000000 -0.367794 -v 0.073158 5.000000 -0.367794 -v 0.367794 6.500000 0.073159 -v 0.367794 6.500000 -0.073159 -v 0.220676 6.750000 -0.043895 -v 0.208339 6.500000 0.311801 -v 0.073159 6.500000 0.367794 -v -0.073159 6.500000 -0.367794 -v 0.073159 6.500000 -0.367794 -v -0.073159 6.500000 0.367795 -v 0.208339 6.500000 -0.311801 -v -0.208339 6.500000 0.311801 -v 0.311801 6.500000 -0.208339 -v -0.311801 6.500000 0.208339 -v -0.367795 6.500000 0.073159 -v -0.367795 6.500000 -0.073159 -v 0.311801 6.500000 0.208339 -v 0.187080 6.750000 -0.125003 -v 0.000000 6.900000 0.000000 -v -0.220677 6.750000 0.043895 -v -0.220677 6.750000 -0.043895 -v 0.220676 6.750000 0.043895 -v -0.187081 6.750000 -0.125003 -v 0.187080 6.750000 0.125003 -v 0.125003 6.750000 0.187081 -v 0.043895 6.750000 0.220677 -v -0.043896 6.750000 -0.220677 -v -0.125004 6.750000 -0.187081 -v 0.043895 6.750000 -0.220677 -v -0.043896 6.750000 0.220677 -v 0.125003 6.750000 -0.187081 -v -0.125004 6.750000 0.187081 -v -0.187081 6.750000 0.125003 -v -0.048773 0.500000 0.490393 -v 0.048772 0.500000 0.490393 -v -0.490393 0.500000 0.048773 -v -0.490393 0.500000 -0.048772 -v 0.048773 0.500000 -0.490393 -v -0.048772 0.500000 -0.490393 -v 0.490393 0.500000 -0.048772 -v 0.490393 0.500000 0.048773 -v -0.073159 0.000000 -0.367794 -v 0.073159 -0.000000 0.367794 -v -0.367794 -0.000000 0.073159 -v 0.048773 3.000000 -0.490393 -v -0.048772 3.000000 -0.490393 -v -0.048772 3.000000 0.490393 -v 0.048772 3.000000 0.490393 -v -0.048772 0.500000 -0.990393 -v 0.048773 0.500000 -0.990393 -v 0.048772 0.500000 0.990393 -v -0.048773 0.500000 0.990393 -v -0.490393 3.000000 -0.048773 -v -0.490393 3.000000 0.048772 -v 0.490393 3.000000 0.048773 -v 0.490393 3.000000 -0.048772 -v -0.990393 0.500000 0.048772 -v -0.990393 0.500000 -0.048773 -v 0.990393 0.500000 -0.048772 -v 0.990393 0.500000 0.048773 -vt 0.637050 0.082779 -vt 0.613897 0.082779 -vt 0.616792 0.021683 -vt 0.590745 0.082779 -vt 0.593639 0.021683 -vt 0.567592 0.082778 -vt 0.570487 0.021683 -vt 0.544439 0.082778 -vt 0.547334 0.021683 -vt 0.914881 0.082781 -vt 0.891728 0.082781 -vt 0.894623 0.021685 -vt 0.888835 0.021685 -vt 0.868576 0.082781 -vt 0.865682 0.021685 -vt 0.845423 0.082781 -vt 0.822271 0.082780 -vt 0.825165 0.021684 -vt 0.799118 0.082780 -vt 0.802012 0.021685 -vt 0.796224 0.021684 -vt 0.775965 0.082780 -vt 0.773072 0.021684 -vt 0.752813 0.082780 -vt 0.729660 0.082780 -vt 0.732555 0.021684 -vt 0.706508 0.082780 -vt 0.709402 0.021684 -vt 0.914879 0.379471 -vt 0.891726 0.379471 -vt 0.680461 0.021684 -vt 0.683355 0.082779 -vt 0.660202 0.082779 -vt 0.686250 0.021684 -vt 0.664143 0.659251 -vt 0.683067 0.630930 -vt 0.744795 0.643209 -vt 0.889410 0.557865 -vt 0.870888 0.557865 -vt 0.799116 0.379470 -vt 0.775963 0.379470 -vt 0.683353 0.379470 -vt 0.660200 0.379469 -vt 0.590742 0.379469 -vt 0.567590 0.379469 -vt 0.729658 0.379470 -vt 0.706505 0.379470 -vt 0.637048 0.379469 -vt 0.613895 0.379469 -vt 0.868574 0.379471 -vt 0.752811 0.379470 -vt 0.822269 0.379470 -vt 0.845421 0.379471 -vt 0.773647 0.557865 -vt 0.771910 0.588792 -vt 0.756861 0.588792 -vt 0.704189 0.557864 -vt 0.685667 0.557864 -vt 0.866258 0.557866 -vt 0.657884 0.557864 -vt 0.639362 0.557864 -vt 0.681036 0.557864 -vt 0.662514 0.557864 -vt 0.843105 0.557865 -vt 0.824583 0.557865 -vt 0.634731 0.557864 -vt 0.819952 0.557865 -vt 0.801430 0.557865 -vt 0.611578 0.557864 -vt 0.796800 0.557865 -vt 0.588426 0.557864 -vt 0.569904 0.557864 -vt 0.755125 0.557865 -vt 0.565273 0.557864 -vt 0.546751 0.557864 -vt 0.750494 0.557864 -vt 0.731972 0.557864 -vt 0.912563 0.557866 -vt 0.727342 0.557865 -vt 0.423279 0.021683 -vt 0.438328 0.021683 -vt 0.439486 0.051917 -vt 0.563536 0.588791 -vt 0.748758 0.588791 -vt 0.733709 0.588791 -vt 0.910826 0.588793 -vt 0.895777 0.588793 -vt 0.725605 0.588792 -vt 0.710556 0.588792 -vt 0.887674 0.588792 -vt 0.702453 0.588791 -vt 0.847735 0.557865 -vt 0.864521 0.588792 -vt 0.656147 0.588791 -vt 0.641098 0.588790 -vt 0.679300 0.588791 -vt 0.664251 0.588791 -vt 0.841368 0.588791 -vt 0.632994 0.588791 -vt 0.617945 0.588791 -vt 0.818216 0.588792 -vt 0.609842 0.588791 -vt 0.594792 0.588790 -vt 0.778277 0.557865 -vt 0.795063 0.588792 -vt 0.586689 0.588791 -vt 0.352664 0.051917 -vt 0.352664 0.229931 -vt 0.335300 0.229931 -vt 0.282049 0.021683 -vt 0.283206 0.051917 -vt 0.265842 0.051917 -vt 0.420964 0.021683 -vt 0.422122 0.051917 -vt 0.404757 0.051917 -vt 0.264684 0.021683 -vt 0.248477 0.051917 -vt 0.403600 0.021683 -vt 0.387393 0.051917 -vt 0.232271 0.021683 -vt 0.247320 0.021683 -vt 0.386235 0.021683 -vt 0.370028 0.051917 -vt 0.507786 0.021683 -vt 0.508944 0.051917 -vt 0.491579 0.051917 -vt 0.368871 0.021683 -vt 0.475372 0.021683 -vt 0.490422 0.021683 -vt 0.351506 0.021683 -vt 0.335299 0.051917 -vt 0.473057 0.021683 -vt 0.474215 0.051917 -vt 0.456851 0.051917 -vt 0.316778 0.021683 -vt 0.317935 0.051917 -vt 0.300571 0.051917 -vt 0.334142 0.021683 -vt 0.455693 0.021683 -vt 0.299413 0.021683 -vt 0.231112 0.229931 -vt 0.248477 0.229931 -vt 0.245004 0.264357 -vt 0.474215 0.229931 -vt 0.456851 0.229931 -vt 0.317935 0.229931 -vt 0.300570 0.229931 -vt 0.439486 0.229931 -vt 0.283206 0.229931 -vt 0.422122 0.229931 -vt 0.265842 0.229931 -vt 0.404757 0.229931 -vt 0.387393 0.229931 -vt 0.370028 0.229931 -vt 0.508944 0.229931 -vt 0.491580 0.229931 -vt 0.251950 0.264357 -vt 0.262369 0.264357 -vt 0.257159 0.296023 -vt 0.383920 0.264356 -vt 0.373501 0.264357 -vt 0.505472 0.264356 -vt 0.366555 0.264357 -vt 0.356137 0.264357 -vt 0.488107 0.264356 -vt 0.477688 0.264356 -vt 0.349191 0.264356 -vt 0.470743 0.264356 -vt 0.460324 0.264356 -vt 0.314462 0.264357 -vt 0.331827 0.264357 -vt 0.321408 0.264357 -vt 0.453378 0.264356 -vt 0.297098 0.264356 -vt 0.436013 0.264356 -vt 0.279733 0.264356 -vt 0.269314 0.264356 -vt 0.418649 0.264356 -vt 0.408230 0.264356 -vt 0.401285 0.264356 -vt 0.274523 0.296023 -vt 0.482898 0.296022 -vt 0.500262 0.296023 -vt 0.495053 0.264356 -vt 0.239795 0.296023 -vt 0.234585 0.264357 -vt 0.465533 0.296023 -vt 0.448169 0.296023 -vt 0.442959 0.264356 -vt 0.430804 0.296023 -vt 0.425595 0.264356 -vt 0.413440 0.296022 -vt 0.396075 0.296023 -vt 0.390866 0.264356 -vt 0.378711 0.296023 -vt 0.361346 0.296023 -vt 0.343982 0.296022 -vt 0.338772 0.264356 -vt 0.326617 0.296023 -vt 0.309253 0.296023 -vt 0.304043 0.264357 -vt 0.291888 0.296023 -vt 0.286679 0.264356 -vt 0.275742 0.693421 -vt 0.275742 0.390854 -vt 0.287318 0.693421 -vt 0.439182 0.390854 -vt 0.450758 0.693421 -vt 0.439182 0.693421 -vt 0.112301 0.693421 -vt 0.112301 0.390854 -vt 0.123877 0.693421 -vt 0.287318 0.331516 -vt 0.287318 0.390854 -vt 0.275742 0.331516 -vt 0.845119 0.683623 -vt 0.856695 0.986190 -vt 0.845119 0.986190 -vt 0.856695 0.683623 -vt 0.845119 0.624285 -vt 0.450758 0.390854 -vt 0.439182 0.331516 -vt 0.123877 0.390854 -vt 0.380996 0.402491 -vt 0.508944 0.402491 -vt 0.786933 0.695261 -vt 0.182063 0.402491 -vt 0.914881 0.695261 -vt 0.054115 0.402491 -vt 0.657309 0.021683 -vt 0.639944 0.021683 -vt 0.634156 0.021683 -vt 0.611004 0.021683 -vt 0.587851 0.021683 -vt 0.564698 0.021683 -vt 0.911987 0.021685 -vt 0.871470 0.021685 -vt 0.848318 0.021685 -vt 0.842530 0.021684 -vt 0.819377 0.021685 -vt 0.778860 0.021684 -vt 0.755707 0.021684 -vt 0.749919 0.021684 -vt 0.726766 0.021684 -vt 0.663097 0.021683 -vt 0.703614 0.021684 -vt 0.751440 0.659251 -vt 0.751440 0.676616 -vt 0.744795 0.692659 -vt 0.732517 0.704937 -vt 0.716474 0.711582 -vt 0.670788 0.692659 -vt 0.699110 0.711582 -vt 0.683067 0.704937 -vt 0.664143 0.676616 -vt 0.670788 0.643209 -vt 0.699110 0.624285 -vt 0.716474 0.624285 -vt 0.732517 0.630930 -vt 0.616209 0.557864 -vt 0.593056 0.557863 -vt 0.544437 0.379469 -vt 0.894041 0.557866 -vt 0.708820 0.557865 -vt 0.548487 0.588791 -vt 0.872624 0.588792 -vt 0.687403 0.588791 -vt 0.849472 0.588792 -vt 0.826319 0.588791 -vt 0.803167 0.588792 -vt 0.780014 0.588791 -vt 0.571640 0.588791 -vt 0.266999 0.021683 -vt 0.405915 0.021683 -vt 0.249635 0.021683 -vt 0.388550 0.021683 -vt 0.231113 0.051917 -vt 0.371186 0.021683 -vt 0.492737 0.021683 -vt 0.353822 0.021683 -vt 0.336457 0.021683 -vt 0.458008 0.021683 -vt 0.301728 0.021683 -vt 0.319093 0.021683 -vt 0.440644 0.021683 -vt 0.284364 0.021683 -vt 0.345504 0.402491 -vt 0.217556 0.402491 -vt 0.856695 0.624285 -vt 0.450758 0.331516 -vt 0.112301 0.331516 -vt 0.123877 0.331516 -vn 0.371700 -0.238100 -0.897300 -vn 0.686800 -0.238100 -0.686800 -vn 0.897300 -0.238100 -0.371700 -vn 0.971200 -0.238100 0.000000 -vn 0.897300 -0.238100 0.371700 -vn 0.686800 -0.238100 0.686800 -vn 0.371700 -0.238100 0.897300 -vn 0.000000 -0.238100 0.971200 -vn -0.371700 -0.238100 0.897300 -vn -0.686800 -0.238100 0.686800 -vn -0.897300 -0.238100 0.371700 -vn -0.971200 -0.238100 0.000000 -vn -0.897300 -0.238100 -0.371700 -vn 0.923900 -0.000000 0.382700 -vn -0.371700 -0.238100 -0.897300 -vn -0.686800 -0.238100 -0.686800 -vn 0.000000 -1.000000 -0.000000 -vn 0.705600 0.065200 0.705600 -vn -0.707100 -0.000000 0.707100 -vn -0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn -0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 -0.000000 0.707100 -vn -0.923900 -0.000000 0.382700 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 0.000000 -0.707100 -vn 0.707100 0.000000 -0.707100 -vn 0.382700 -0.000000 0.923900 -vn -0.886300 0.282300 0.367100 -vn -0.705600 0.065200 -0.705600 -vn 0.381900 0.065200 0.921900 -vn 0.000000 0.065200 -0.997900 -vn -0.381900 0.065200 -0.921900 -vn 0.000000 0.065200 0.997900 -vn 0.381900 0.065200 -0.921900 -vn -0.381900 0.065200 0.921900 -vn 0.705600 0.065200 -0.705600 -vn -0.705600 0.065200 0.705600 -vn 0.921900 0.065200 -0.381900 -vn -0.921900 0.065200 0.381900 -vn 0.997900 0.065200 0.000000 -vn -0.997900 0.065200 0.000000 -vn 0.921900 0.065200 0.381900 -vn -0.921900 0.065200 -0.381900 -vn -0.375500 -0.192500 0.906600 -vn 0.959300 0.282300 0.000000 -vn -0.959300 0.282300 0.000000 -vn 0.886300 0.282300 0.367100 -vn -0.886300 0.282300 -0.367100 -vn 0.678400 0.282300 0.678400 -vn 0.678400 0.282300 0.678300 -vn -0.678400 0.282300 -0.678400 -vn 0.367100 0.282300 0.886300 -vn 0.000000 0.282300 -0.959300 -vn -0.367100 0.282300 -0.886300 -vn 0.000000 0.282300 0.959300 -vn 0.367100 0.282300 -0.886300 -vn -0.367100 0.282300 0.886300 -vn 0.678400 0.282300 -0.678400 -vn 0.678400 0.282300 -0.678300 -vn -0.678400 0.282300 0.678400 -vn 0.886300 0.282300 -0.367100 -vn 0.693900 -0.192500 -0.693900 -vn -0.693900 -0.192500 0.693900 -vn 0.906600 -0.192500 -0.375500 -vn -0.906600 -0.192500 0.375500 -vn 0.981300 -0.192500 0.000000 -vn -0.981300 -0.192500 0.000000 -vn 0.906600 -0.192500 0.375500 -vn -0.906600 -0.192500 -0.375500 -vn 0.693900 -0.192500 0.693900 -vn -0.693900 -0.192500 -0.693900 -vn 0.375500 -0.192500 0.906600 -vn 0.000000 -0.192500 -0.981300 -vn -0.375500 -0.192500 -0.906600 -vn 0.000000 -0.192500 0.981300 -vn 0.375500 -0.192500 -0.906600 -vn 0.861800 0.507200 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 -0.000000 1.000000 -vn 1.000000 -0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.519400 0.827000 -0.215100 -vn -0.861800 0.507200 0.000000 -vn 0.796200 0.507200 0.329800 -vn -0.796200 0.507200 -0.329800 -vn 0.609400 0.507200 0.609400 -vn -0.609400 0.507200 -0.609400 -vn 0.329800 0.507200 0.796200 -vn 0.000000 0.507200 -0.861800 -vn -0.329800 0.507200 -0.796200 -vn 0.000000 0.507200 0.861800 -vn 0.329800 0.507200 -0.796200 -vn -0.329800 0.507200 0.796200 -vn 0.609400 0.507200 -0.609400 -vn -0.609400 0.507200 0.609400 -vn 0.796200 0.507200 -0.329800 -vn -0.796200 0.507200 0.329800 -vn 0.397500 0.827000 -0.397500 -vn 0.397500 0.827000 0.397500 -vn 0.519400 0.827000 0.215100 -vn 0.562200 0.827000 0.000000 -vn 0.215100 0.827000 0.519400 -vn 0.000000 0.827000 0.562200 -vn -0.215100 0.827000 0.519400 -vn -0.397500 0.827000 0.397500 -vn -0.519400 0.827000 0.215100 -vn -0.562200 0.827000 0.000000 -vn -0.519400 0.827000 -0.215100 -vn -0.397500 0.827000 -0.397500 -vn -0.215100 0.827000 -0.519400 -vn 0.000000 0.827000 -0.562200 -vn 0.215100 0.827000 -0.519400 -vn 0.000000 0.196100 0.980600 -vn 0.980600 0.196100 0.000000 -vn 0.000000 0.196100 -0.980600 -vn -0.980600 0.196100 0.000000 -vn 0.000000 -0.238100 -0.971200 -vn 0.000000 -0.118100 -0.993000 -s 1 -f 2/1/1 4/2/1 5/3/1 -f 4/2/2 6/4/2 7/5/2 -f 6/4/3 8/6/3 9/7/3 -f 8/6/4 10/8/4 11/9/4 -f 10/10/5 12/11/5 13/12/5 -f 13/13/6 12/11/6 14/14/6 -f 15/15/7 14/14/7 16/16/7 -f 16/16/8 17/17/8 18/18/8 -f 17/17/9 19/19/9 20/20/9 -f 20/21/10 19/19/10 21/22/10 -f 22/23/11 21/22/11 23/24/11 -f 23/24/12 24/25/12 25/26/12 -f 24/25/13 26/27/13 27/28/13 -f 10/10/14 28/29/14 29/30/14 -f 30/31/15 31/32/15 1/33/15 -f 26/27/16 31/32/16 30/34/16 -f 18/35/17 22/36/17 30/37/17 -f 29/30/18 32/38/18 33/39/18 -f 19/19/19 34/40/19 35/41/19 -f 31/32/20 36/42/20 37/43/20 -f 6/4/21 38/44/21 39/45/21 -f 24/25/22 40/46/22 41/47/22 -f 2/1/23 42/48/23 43/49/23 -f 12/11/24 29/30/24 44/50/24 -f 21/22/25 35/41/25 45/51/25 -f 17/17/26 46/52/26 34/40/26 -f 26/27/27 41/47/27 36/42/27 -f 4/2/28 43/49/28 38/44/28 -f 14/14/29 44/50/29 47/53/29 -f 48/54/30 49/55/30 50/56/30 -f 41/47/31 51/57/31 52/58/31 -f 47/53/32 44/50/32 33/59/32 -f 37/43/33 53/60/33 54/61/33 -f 36/42/34 52/62/34 53/63/34 -f 47/53/35 55/64/35 56/65/35 -f 43/49/36 42/48/36 54/66/36 -f 46/52/37 56/67/37 57/68/37 -f 38/44/38 43/49/38 58/69/38 -f 35/41/39 34/40/39 57/70/39 -f 38/44/40 59/71/40 60/72/40 -f 35/41/41 48/54/41 61/73/41 -f 39/45/42 60/74/42 62/75/42 -f 45/51/43 61/76/43 63/77/43 -f 29/30/44 28/29/44 62/78/44 -f 41/47/45 40/46/45 63/79/45 -f 64/80/46 65/81/46 66/82/46 -f 62/75/47 60/74/47 67/83/47 -f 61/76/48 50/84/48 68/85/48 -f 62/78/49 69/86/49 70/87/49 -f 63/79/50 68/88/50 71/89/50 -f 33/39/51 32/38/51 70/90/52 -f 52/58/53 51/57/53 71/91/53 -f 55/92/54 33/59/54 72/93/54 -f 53/60/55 73/94/55 74/95/55 -f 52/62/56 75/96/56 73/97/56 -f 56/65/57 55/64/57 76/98/57 -f 54/66/58 74/99/58 77/100/58 -f 57/68/59 56/67/59 65/101/59 -f 58/69/60 77/102/61 78/103/61 -f 48/104/62 57/70/62 64/105/62 -f 60/72/63 59/71/63 78/106/63 -f 79/107/27 80/108/27 81/109/27 -f 77/110/64 82/111/64 83/112/64 -f 64/113/65 84/114/65 85/115/65 -f 78/116/66 83/112/66 86/117/66 -f 49/118/67 85/115/67 87/119/67 -f 69/120/68 67/121/68 86/117/68 -f 50/122/69 87/119/69 88/123/69 -f 69/124/70 89/125/70 90/126/70 -f 68/127/71 88/123/71 79/107/71 -f 72/128/72 70/129/72 90/126/72 -f 71/130/73 79/107/73 91/131/73 -f 72/132/74 92/133/74 93/134/74 -f 73/135/75 94/136/75 95/137/75 -f 75/138/76 91/131/76 94/136/76 -f 76/139/77 93/134/77 66/82/77 -f 74/140/78 95/137/78 82/111/78 -f 96/141/79 97/142/79 98/143/79 -f 92/133/29 99/144/29 100/145/29 -f 94/136/80 101/146/80 102/147/80 -f 91/131/20 81/109/20 101/146/20 -f 93/134/81 100/145/81 103/148/81 -f 95/137/23 102/147/23 104/149/23 -f 66/82/26 103/148/26 105/150/26 -f 82/111/28 104/149/28 106/151/28 -f 84/114/19 105/150/19 107/152/19 -f 83/112/21 106/151/21 97/142/21 -f 85/115/25 107/152/25 108/153/25 -f 86/117/82 97/142/82 96/141/82 -f 87/119/83 108/153/83 109/154/83 -f 89/125/14 96/155/14 110/156/14 -f 79/107/22 88/123/22 109/154/22 -f 90/126/24 110/156/24 99/144/24 -f 98/157/84 111/158/84 112/159/84 -f 108/153/85 113/160/85 114/161/85 -f 110/156/86 96/155/86 115/162/86 -f 109/154/87 114/163/87 116/164/87 -f 110/156/88 117/165/88 118/166/88 -f 81/109/89 80/108/89 116/167/89 -f 99/144/90 118/168/90 119/169/90 -f 102/147/91 101/146/91 120/170/91 -f 81/109/92 121/171/92 120/172/92 -f 103/148/93 100/145/93 119/173/93 -f 104/149/94 102/147/94 122/174/94 -f 105/150/95 103/148/95 123/175/95 -f 104/149/96 124/176/96 111/177/96 -f 105/150/97 125/178/97 126/179/97 -f 106/151/98 111/158/98 98/157/98 -f 108/153/99 107/152/99 126/180/99 -f 124/176/100 112/181/100 111/177/100 -f 117/165/101 112/182/101 118/166/101 -f 115/162/102 112/183/102 117/184/102 -f 98/143/103 112/185/103 115/186/103 -f 118/168/104 112/187/104 119/169/104 -f 119/173/105 112/188/105 123/189/105 -f 123/175/106 112/190/106 125/191/106 -f 125/178/107 112/192/107 126/179/107 -f 126/180/108 112/193/108 113/194/108 -f 113/160/109 112/195/109 114/161/109 -f 114/163/110 112/196/110 116/164/110 -f 116/167/111 112/197/111 121/198/111 -f 121/171/112 112/199/112 120/172/112 -f 120/170/113 112/200/113 122/201/113 -f 122/174/114 112/202/114 124/203/114 -f 140/204/115 145/205/115 141/206/115 -f 153/207/116 149/208/116 148/209/116 -f 138/210/117 143/211/117 139/212/117 -f 128/213/17 144/214/17 127/215/17 -f 151/216/118 147/217/118 146/218/118 -f 150/219/17 151/216/17 130/220/17 -f 152/221/17 153/207/17 134/222/17 -f 145/205/115 144/214/115 141/206/115 -f 143/211/117 142/223/117 139/212/117 -f 134/224/81 153/207/81 148/209/81 -f 133/225/80 149/208/80 152/221/80 -f 130/226/80 151/216/80 146/218/80 -f 132/227/83 139/212/83 142/223/83 -f 129/228/81 147/217/81 150/219/81 -f 131/229/82 143/211/82 138/210/82 -f 135/230/119 1/33/120 3/231/119 -f 3/232/1 2/1/1 5/3/1 -f 5/233/2 4/2/2 7/5/2 -f 7/234/3 6/4/3 9/7/3 -f 9/235/4 8/6/4 11/9/4 -f 11/236/5 10/10/5 13/12/5 -f 15/237/6 13/13/6 14/14/6 -f 136/238/7 15/15/7 16/16/7 -f 136/239/8 16/16/8 18/18/8 -f 18/240/9 17/17/9 20/20/9 -f 22/241/10 20/21/10 21/22/10 -f 137/242/11 22/23/11 23/24/11 -f 137/243/12 23/24/12 25/26/12 -f 25/244/13 24/25/13 27/28/13 -f 12/11/14 10/10/14 29/30/14 -f 135/245/15 30/31/15 1/33/15 -f 27/246/16 26/27/16 30/34/16 -f 30/37/17 135/247/17 3/248/17 -f 3/248/17 5/249/17 7/250/17 -f 7/250/17 9/251/17 15/252/17 -f 11/253/17 13/254/17 15/252/17 -f 15/252/17 136/255/17 18/35/17 -f 18/35/17 20/256/17 22/36/17 -f 22/36/17 137/257/17 30/37/17 -f 25/258/17 27/259/17 30/37/17 -f 30/37/17 3/248/17 15/252/17 -f 9/251/17 11/253/17 15/252/17 -f 15/252/17 18/35/17 30/37/17 -f 137/257/17 25/258/17 30/37/17 -f 3/248/17 7/250/17 15/252/17 -f 44/50/18 29/30/18 33/39/18 -f 21/22/19 19/19/19 35/41/19 -f 1/33/20 31/32/20 37/43/20 -f 8/6/21 6/4/21 39/45/21 -f 26/27/22 24/25/22 41/47/22 -f 4/2/23 2/1/23 43/49/23 -f 14/14/24 12/11/24 44/50/24 -f 23/24/25 21/22/25 45/51/25 -f 19/19/26 17/17/26 34/40/26 -f 31/32/27 26/27/27 36/42/27 -f 6/4/28 4/2/28 38/44/28 -f 16/16/29 14/14/29 47/53/29 -f 61/73/30 48/54/30 50/56/30 -f 36/42/31 41/47/31 52/58/31 -f 55/92/32 47/53/32 33/59/32 -f 42/48/33 37/43/33 54/61/33 -f 37/43/34 36/42/34 53/63/34 -f 46/52/35 47/53/35 56/65/35 -f 58/260/36 43/49/36 54/66/36 -f 34/40/37 46/52/37 57/68/37 -f 59/261/38 38/44/38 58/69/38 -f 48/104/39 35/41/39 57/70/39 -f 39/45/40 38/44/40 60/72/40 -f 45/51/41 35/41/41 61/73/41 -f 28/262/42 39/45/42 62/75/42 -f 40/46/43 45/51/43 63/77/43 -f 32/263/44 29/30/44 62/78/44 -f 51/264/45 41/47/45 63/79/45 -f 84/114/46 64/80/46 66/82/46 -f 69/265/47 62/75/47 67/83/47 -f 63/77/48 61/76/48 68/85/48 -f 32/263/49 62/78/49 70/87/49 -f 51/264/50 63/79/50 71/89/50 -f 72/266/52 33/39/51 70/90/52 -f 75/267/53 52/58/53 71/91/53 -f 76/268/54 55/92/54 72/93/54 -f 54/61/55 53/60/55 74/95/55 -f 53/63/56 52/62/56 73/97/56 -f 65/269/57 56/65/57 76/98/57 -f 58/260/58 54/66/58 77/100/58 -f 64/270/59 57/68/59 65/101/59 -f 59/261/60 58/69/60 78/103/61 -f 49/271/62 48/104/62 64/105/62 -f 67/272/63 60/72/63 78/106/63 -f 91/131/27 79/107/27 81/109/27 -f 78/273/64 77/110/64 83/112/64 -f 49/274/65 64/113/65 85/115/65 -f 67/275/66 78/116/66 86/117/66 -f 50/276/67 49/118/67 87/119/67 -f 89/277/68 69/120/68 86/117/68 -f 68/278/69 50/122/69 88/123/69 -f 70/279/70 69/124/70 90/126/70 -f 71/280/71 68/127/71 79/107/71 -f 92/133/72 72/128/72 90/126/72 -f 75/281/73 71/130/73 91/131/73 -f 76/282/74 72/132/74 93/134/74 -f 74/283/75 73/135/75 95/137/75 -f 73/284/76 75/138/76 94/136/76 -f 65/285/77 76/139/77 66/82/77 -f 77/286/78 74/140/78 82/111/78 -f 115/186/79 96/141/79 98/143/79 -f 93/134/29 92/133/29 100/145/29 -f 95/137/80 94/136/80 102/147/80 -f 94/136/20 91/131/20 101/146/20 -f 66/82/81 93/134/81 103/148/81 -f 82/111/23 95/137/23 104/149/23 -f 84/114/26 66/82/26 105/150/26 -f 83/112/28 82/111/28 106/151/28 -f 85/115/19 84/114/19 107/152/19 -f 86/117/21 83/112/21 97/142/21 -f 87/119/25 85/115/25 108/153/25 -f 89/277/82 86/117/82 96/141/82 -f 88/123/83 87/119/83 109/154/83 -f 90/126/14 89/125/14 110/156/14 -f 80/108/22 79/107/22 109/154/22 -f 92/133/24 90/126/24 99/144/24 -f 109/154/85 108/153/85 114/161/85 -f 117/184/86 110/156/86 115/162/86 -f 80/108/87 109/154/87 116/164/87 -f 99/144/88 110/156/88 118/166/88 -f 121/198/89 81/109/89 116/167/89 -f 100/145/90 99/144/90 119/169/90 -f 122/201/91 102/147/91 120/170/91 -f 101/146/92 81/109/92 120/172/92 -f 123/189/93 103/148/93 119/173/93 -f 124/203/94 104/149/94 122/174/94 -f 125/191/95 105/150/95 123/175/95 -f 106/151/96 104/149/96 111/177/96 -f 107/152/97 105/150/97 126/179/97 -f 97/142/98 106/151/98 98/157/98 -f 113/194/99 108/153/99 126/180/99 -f 128/287/82 141/206/82 144/214/82 -f 151/216/118 150/219/118 147/217/118 -f 127/288/83 145/205/83 140/204/83 -f 153/207/116 152/221/116 149/208/116 -f 129/289/17 150/219/17 130/220/17 -f 144/214/17 145/205/17 127/215/17 -f 133/290/17 152/221/17 134/222/17 -f 142/223/17 143/211/17 131/291/17 -f 28/262/82 10/8/82 8/6/82 -f 47/53/81 46/52/81 17/17/81 -f 45/51/83 40/46/83 24/25/83 -f 3/231/119 1/33/120 2/1/120 -f 142/223/17 131/291/17 132/292/17 -f 42/48/80 2/1/120 1/33/120 -f 39/45/82 28/262/82 8/6/82 -f 16/16/81 47/53/81 17/17/81 -f 23/24/83 45/51/83 24/25/83 -f 37/43/80 42/48/80 1/33/120 diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj index 0a89d7b9a..40c90c71d 100644 --- a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj @@ -41,12 +41,12 @@ v -0.125000 2.312500 -1.562500 v -0.125000 2.312500 -1.437500 v -0.125000 2.187500 -1.437500 v -0.125000 2.187500 -1.562500 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 +vt 0.750000 0.227273 +vt 0.729167 0.136364 +vt 0.750000 0.136364 +vt 0.791667 0.227273 +vt 0.770833 0.136364 +vt 0.791667 0.136364 vt 0.666667 0.159091 vt 0.708333 0.136364 vt 0.708333 0.159091 @@ -69,16 +69,18 @@ vt 0.750000 0.136364 vt 0.666667 0.136364 vt 0.666667 -0.000000 vt 0.750000 0.136364 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 +vt 0.729167 0.227273 +vt 0.708333 0.136364 +vt 0.770833 0.227273 +vt 0.750000 0.227273 +vt 0.729167 0.136364 +vt 0.750000 0.136364 +vt 0.791667 0.227273 +vt 0.770833 0.136364 +vt 0.791667 0.136364 +vt 0.729167 0.227273 +vt 0.708333 0.136364 +vt 0.770833 0.227273 vt 0.708333 0.170455 vt 0.666667 0.181818 vt 0.666667 0.170455 @@ -90,6 +92,8 @@ vt 0.666667 0.159091 vt 0.708333 0.181818 vt 0.833333 0.136364 vt 0.833333 0.136364 +vt 0.708333 0.227273 +vt 0.708333 0.227273 vt 0.708333 0.204545 vn -1.0000 0.0000 0.0000 vn 1.0000 0.0000 0.0000 @@ -110,38 +114,38 @@ f 7/17/4 16/23/4 8/24/4 f 6/15/5 14/25/5 5/16/5 f 3/22/4 12/26/4 4/27/4 f 2/20/5 10/28/5 1/21/5 -f 23/29/4 20/6/4 19/2/4 -f 22/30/5 17/3/5 18/5/5 -f 29/31/1 27/32/1 25/33/1 -f 32/34/2 26/35/2 28/36/2 -f 31/37/4 28/36/4 27/32/4 -f 30/38/5 25/33/5 26/35/5 -f 40/39/4 35/40/4 36/41/4 -f 38/42/5 34/43/5 33/44/5 -f 39/45/6 36/41/6 34/46/6 -f 37/47/3 33/44/3 35/40/3 +f 23/29/4 20/30/4 19/2/4 +f 22/31/5 17/3/5 18/5/5 +f 29/32/1 27/33/1 25/34/1 +f 32/35/2 26/36/2 28/37/2 +f 31/38/4 28/39/4 27/33/4 +f 30/40/5 25/34/5 26/36/5 +f 40/41/4 35/42/4 36/43/4 +f 38/44/5 34/45/5 33/46/5 +f 39/47/6 36/43/6 34/48/6 +f 37/49/3 33/46/3 35/42/3 f 21/1/1 23/29/1 19/2/1 -f 24/4/2 22/30/2 18/5/2 +f 24/4/2 22/31/2 18/5/2 f 11/7/3 12/26/3 9/8/3 f 15/10/3 16/23/3 13/11/3 -f 8/13/2 16/48/2 15/14/2 +f 8/13/2 16/50/2 15/14/2 f 5/16/1 14/25/1 13/11/1 -f 4/18/2 12/49/2 11/19/2 +f 4/18/2 12/51/2 11/19/2 f 1/21/1 10/28/1 9/8/1 f 7/17/4 13/11/4 16/23/4 f 6/15/5 15/14/5 14/25/5 f 3/22/4 9/8/4 12/26/4 f 2/20/5 11/19/5 10/28/5 -f 23/29/4 24/4/4 20/6/4 -f 22/30/5 21/1/5 17/3/5 -f 29/31/1 31/37/1 27/32/1 -f 32/34/2 30/38/2 26/35/2 -f 31/37/4 32/34/4 28/36/4 -f 30/38/5 29/31/5 25/33/5 -f 40/39/4 37/47/4 35/40/4 -f 38/42/5 39/50/5 34/43/5 -f 39/45/6 40/39/6 36/41/6 -f 37/47/3 38/42/3 33/44/3 +f 23/29/4 24/52/4 20/30/4 +f 22/31/5 21/1/5 17/3/5 +f 29/32/1 31/38/1 27/33/1 +f 32/35/2 30/40/2 26/36/2 +f 31/38/4 32/53/4 28/39/4 +f 30/40/5 29/32/5 25/34/5 +f 40/41/4 37/49/4 35/42/4 +f 38/44/5 39/54/5 34/45/5 +f 39/47/6 40/41/6 36/43/6 +f 37/49/3 38/44/3 33/46/3 o ABM_Rope v 0.000000 10.500000 1.437500 v 0.000000 10.375000 1.437500 @@ -178,18 +182,18 @@ vt 0.416667 0.920455 vn 1.0000 0.0000 0.0000 vn -1.0000 0.0000 0.0000 s off -f 47/51/7 44/52/7 43/53/7 -f 48/54/7 45/55/7 46/56/7 -f 42/57/7 45/55/7 41/58/7 -f 52/59/8 55/60/8 51/61/8 -f 53/62/8 56/63/8 54/64/8 -f 50/65/8 53/62/8 54/64/8 -f 47/51/7 48/54/7 44/52/7 -f 48/54/7 47/51/7 45/55/7 -f 42/57/7 46/56/7 45/55/7 -f 52/59/8 56/63/8 55/60/8 -f 53/62/8 55/60/8 56/63/8 -f 50/65/8 49/66/8 53/62/8 +f 47/55/7 44/56/7 43/57/7 +f 48/58/7 45/59/7 46/60/7 +f 42/61/7 45/59/7 41/62/7 +f 52/63/8 55/64/8 51/65/8 +f 53/66/8 56/67/8 54/68/8 +f 50/69/8 53/66/8 54/68/8 +f 47/55/7 48/58/7 44/56/7 +f 48/58/7 47/55/7 45/59/7 +f 42/61/7 46/60/7 45/59/7 +f 52/63/8 56/67/8 55/64/8 +f 53/66/8 55/64/8 56/67/8 +f 50/69/8 49/70/8 53/66/8 o ABM_Erector v 0.125000 2.750000 -1.625000 v 0.125000 2.750000 -1.375000 @@ -588,174 +592,174 @@ vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 57/67/9 59/68/9 58/69/9 -f 61/70/9 63/71/9 62/72/9 -f 67/73/10 65/74/10 66/75/10 -f 71/76/10 69/77/10 70/78/10 -f 60/79/11 67/80/11 59/81/11 -f 58/82/12 65/74/12 57/67/12 -f 61/70/13 72/83/13 64/84/13 -f 63/85/14 70/86/14 62/87/14 -f 57/67/13 68/88/13 60/89/13 -f 59/81/14 66/90/14 58/82/14 -f 64/91/11 71/92/11 63/85/11 -f 62/87/12 69/77/12 61/70/12 -f 75/93/13 74/94/13 73/95/13 -f 78/96/14 79/97/14 77/98/14 -f 73/99/12 79/97/12 75/93/12 -f 75/93/10 80/100/10 76/101/10 -f 74/102/9 77/103/9 73/99/9 -f 76/104/11 78/105/11 74/102/11 -f 83/106/13 82/107/13 81/108/13 -f 86/109/14 87/110/14 85/111/14 -f 81/112/12 87/110/12 83/106/12 -f 83/106/10 88/113/10 84/114/10 -f 82/115/9 85/116/9 81/112/9 -f 84/117/11 86/118/11 82/115/11 -f 90/119/14 91/120/14 89/121/14 -f 95/122/13 93/123/13 94/124/13 -f 91/125/9 94/124/9 89/126/9 -f 102/127/14 103/128/14 101/129/14 -f 90/119/10 96/130/10 92/131/10 -f 99/132/13 98/133/13 97/134/13 -f 97/135/12 103/128/12 99/132/12 -f 99/132/10 104/136/10 100/137/10 -f 98/138/9 101/139/9 97/135/9 -f 100/140/11 102/141/11 98/138/11 -f 107/142/13 106/143/13 105/144/13 -f 110/145/14 111/146/14 109/147/14 -f 105/148/12 111/146/12 107/142/12 -f 107/142/10 112/149/10 108/150/10 -f 106/151/9 109/152/9 105/148/9 -f 108/153/11 110/154/11 106/151/11 -f 114/155/14 115/156/14 113/157/14 -f 119/158/13 117/159/13 118/160/13 -f 115/161/9 118/160/9 113/162/9 -f 114/155/10 120/163/10 116/164/10 -f 127/165/9 124/166/9 122/167/9 -f 125/168/10 121/169/10 123/170/10 -f 128/171/13 123/170/13 124/166/13 -f 126/172/14 122/173/14 121/169/14 -f 131/174/14 135/175/14 136/176/14 -f 129/177/13 134/178/13 133/179/13 -f 132/180/10 136/176/10 134/178/10 -f 130/181/9 133/179/9 135/182/9 -f 143/183/9 140/184/9 138/185/9 -f 141/186/10 137/187/10 139/188/10 -f 171/189/14 175/190/14 176/191/14 -f 169/192/13 174/193/13 173/194/13 -f 160/195/13 155/196/13 156/197/13 -f 158/198/14 154/199/14 153/200/14 -f 159/201/9 156/197/9 154/202/9 -f 157/203/10 153/200/10 155/196/10 -f 144/204/13 139/188/13 140/184/13 -f 142/205/14 138/206/14 137/187/14 -f 147/207/14 151/208/14 152/209/14 -f 145/210/13 150/211/13 149/212/13 -f 148/213/10 152/209/10 150/211/10 -f 146/214/9 149/212/9 151/215/9 -f 167/216/9 164/217/9 162/218/9 -f 165/219/10 161/220/10 163/221/10 -f 168/222/13 163/221/13 164/217/13 -f 166/223/14 162/224/14 161/220/14 -f 172/225/10 176/191/10 174/193/10 -f 170/226/9 173/194/9 175/227/9 -f 178/228/11 179/229/11 177/230/11 -f 183/231/12 182/232/12 181/233/12 -f 191/234/12 187/235/12 188/236/12 -f 185/237/11 189/238/11 186/239/11 -f 199/240/12 195/241/12 196/242/12 -f 193/243/11 197/244/11 194/245/11 -f 203/246/12 202/247/12 201/248/12 -f 206/249/11 207/250/11 205/251/11 -f 211/252/11 215/253/11 212/254/11 -f 213/255/12 209/256/12 210/257/12 -f 219/258/11 223/259/11 220/260/11 -f 221/261/12 217/262/12 218/263/12 -f 57/67/9 60/89/9 59/68/9 -f 61/70/9 64/84/9 63/71/9 -f 67/73/10 68/88/10 65/74/10 -f 71/76/10 72/83/10 69/77/10 -f 60/79/11 68/264/11 67/80/11 -f 58/82/12 66/90/12 65/74/12 -f 61/70/13 69/77/13 72/83/13 -f 63/85/14 71/92/14 70/86/14 -f 57/67/13 65/74/13 68/88/13 -f 59/81/14 67/80/14 66/90/14 -f 64/91/11 72/265/11 71/92/11 -f 62/87/12 70/86/12 69/77/12 -f 75/93/13 76/101/13 74/94/13 -f 78/96/14 80/100/14 79/97/14 -f 73/99/12 77/103/12 79/97/12 -f 75/93/10 79/97/10 80/100/10 -f 74/102/9 78/105/9 77/103/9 -f 76/104/11 80/266/11 78/105/11 -f 83/106/13 84/114/13 82/107/13 -f 86/109/14 88/113/14 87/110/14 -f 81/112/12 85/116/12 87/110/12 -f 83/106/10 87/110/10 88/113/10 -f 82/115/9 86/118/9 85/116/9 -f 84/117/11 88/267/11 86/118/11 -f 90/119/14 92/131/14 91/120/14 -f 95/122/13 96/130/13 93/123/13 -f 91/125/9 95/122/9 94/124/9 -f 102/127/14 104/136/14 103/128/14 -f 90/119/10 93/123/10 96/130/10 -f 99/132/13 100/137/13 98/133/13 -f 97/135/12 101/139/12 103/128/12 -f 99/132/10 103/128/10 104/136/10 -f 98/138/9 102/141/9 101/139/9 -f 100/140/11 104/268/11 102/141/11 -f 107/142/13 108/150/13 106/143/13 -f 110/145/14 112/149/14 111/146/14 -f 105/148/12 109/152/12 111/146/12 -f 107/142/10 111/146/10 112/149/10 -f 106/151/9 110/154/9 109/152/9 -f 108/153/11 112/269/11 110/154/11 -f 114/155/14 116/164/14 115/156/14 -f 119/158/13 120/163/13 117/159/13 -f 115/161/9 119/158/9 118/160/9 -f 114/155/10 117/159/10 120/163/10 -f 127/165/9 128/171/9 124/166/9 -f 125/168/10 126/172/10 121/169/10 -f 128/171/13 125/168/13 123/170/13 -f 126/172/14 127/270/14 122/173/14 -f 131/174/14 130/271/14 135/175/14 -f 129/177/13 132/180/13 134/178/13 -f 132/180/10 131/174/10 136/176/10 -f 130/181/9 129/177/9 133/179/9 -f 143/183/9 144/204/9 140/184/9 -f 141/186/10 142/205/10 137/187/10 -f 171/189/14 170/272/14 175/190/14 -f 169/192/13 172/225/13 174/193/13 -f 160/195/13 157/203/13 155/196/13 -f 158/198/14 159/273/14 154/199/14 -f 159/201/9 160/195/9 156/197/9 -f 157/203/10 158/198/10 153/200/10 -f 144/204/13 141/186/13 139/188/13 -f 142/205/14 143/274/14 138/206/14 -f 147/207/14 146/275/14 151/208/14 -f 145/210/13 148/213/13 150/211/13 -f 148/213/10 147/207/10 152/209/10 -f 146/214/9 145/210/9 149/212/9 -f 167/216/9 168/222/9 164/217/9 -f 165/219/10 166/223/10 161/220/10 -f 168/222/13 165/219/13 163/221/13 -f 166/223/14 167/276/14 162/224/14 -f 172/225/10 171/189/10 176/191/10 -f 170/226/9 169/192/9 173/194/9 -f 178/228/11 180/277/11 179/229/11 -f 183/231/12 184/278/12 182/232/12 -f 191/234/12 192/279/12 187/235/12 -f 185/237/11 190/280/11 189/238/11 -f 199/240/12 200/281/12 195/241/12 -f 193/243/11 198/282/11 197/244/11 -f 203/246/12 204/283/12 202/247/12 -f 206/249/11 208/284/11 207/250/11 -f 211/252/11 216/285/11 215/253/11 -f 213/255/12 214/286/12 209/256/12 -f 219/258/11 224/287/11 223/259/11 -f 221/261/12 222/288/12 217/262/12 +f 57/71/9 59/72/9 58/73/9 +f 61/74/9 63/75/9 62/76/9 +f 67/77/10 65/78/10 66/79/10 +f 71/80/10 69/81/10 70/82/10 +f 60/83/11 67/84/11 59/85/11 +f 58/86/12 65/78/12 57/71/12 +f 61/74/13 72/87/13 64/88/13 +f 63/89/14 70/90/14 62/91/14 +f 57/71/13 68/92/13 60/93/13 +f 59/85/14 66/94/14 58/86/14 +f 64/95/11 71/96/11 63/89/11 +f 62/91/12 69/81/12 61/74/12 +f 75/97/13 74/98/13 73/99/13 +f 78/100/14 79/101/14 77/102/14 +f 73/103/12 79/101/12 75/97/12 +f 75/97/10 80/104/10 76/105/10 +f 74/106/9 77/107/9 73/103/9 +f 76/108/11 78/109/11 74/106/11 +f 83/110/13 82/111/13 81/112/13 +f 86/113/14 87/114/14 85/115/14 +f 81/116/12 87/114/12 83/110/12 +f 83/110/10 88/117/10 84/118/10 +f 82/119/9 85/120/9 81/116/9 +f 84/121/11 86/122/11 82/119/11 +f 90/123/14 91/124/14 89/125/14 +f 95/126/13 93/127/13 94/128/13 +f 91/129/9 94/128/9 89/130/9 +f 102/131/14 103/132/14 101/133/14 +f 90/123/10 96/134/10 92/135/10 +f 99/136/13 98/137/13 97/138/13 +f 97/139/12 103/132/12 99/136/12 +f 99/136/10 104/140/10 100/141/10 +f 98/142/9 101/143/9 97/139/9 +f 100/144/11 102/145/11 98/142/11 +f 107/146/13 106/147/13 105/148/13 +f 110/149/14 111/150/14 109/151/14 +f 105/152/12 111/150/12 107/146/12 +f 107/146/10 112/153/10 108/154/10 +f 106/155/9 109/156/9 105/152/9 +f 108/157/11 110/158/11 106/155/11 +f 114/159/14 115/160/14 113/161/14 +f 119/162/13 117/163/13 118/164/13 +f 115/165/9 118/164/9 113/166/9 +f 114/159/10 120/167/10 116/168/10 +f 127/169/9 124/170/9 122/171/9 +f 125/172/10 121/173/10 123/174/10 +f 128/175/13 123/174/13 124/170/13 +f 126/176/14 122/177/14 121/173/14 +f 131/178/14 135/179/14 136/180/14 +f 129/181/13 134/182/13 133/183/13 +f 132/184/10 136/180/10 134/182/10 +f 130/185/9 133/183/9 135/186/9 +f 143/187/9 140/188/9 138/189/9 +f 141/190/10 137/191/10 139/192/10 +f 171/193/14 175/194/14 176/195/14 +f 169/196/13 174/197/13 173/198/13 +f 160/199/13 155/200/13 156/201/13 +f 158/202/14 154/203/14 153/204/14 +f 159/205/9 156/201/9 154/206/9 +f 157/207/10 153/204/10 155/200/10 +f 144/208/13 139/192/13 140/188/13 +f 142/209/14 138/210/14 137/191/14 +f 147/211/14 151/212/14 152/213/14 +f 145/214/13 150/215/13 149/216/13 +f 148/217/10 152/213/10 150/215/10 +f 146/218/9 149/216/9 151/219/9 +f 167/220/9 164/221/9 162/222/9 +f 165/223/10 161/224/10 163/225/10 +f 168/226/13 163/225/13 164/221/13 +f 166/227/14 162/228/14 161/224/14 +f 172/229/10 176/195/10 174/197/10 +f 170/230/9 173/198/9 175/231/9 +f 178/232/11 179/233/11 177/234/11 +f 183/235/12 182/236/12 181/237/12 +f 191/238/12 187/239/12 188/240/12 +f 185/241/11 189/242/11 186/243/11 +f 199/244/12 195/245/12 196/246/12 +f 193/247/11 197/248/11 194/249/11 +f 203/250/12 202/251/12 201/252/12 +f 206/253/11 207/254/11 205/255/11 +f 211/256/11 215/257/11 212/258/11 +f 213/259/12 209/260/12 210/261/12 +f 219/262/11 223/263/11 220/264/11 +f 221/265/12 217/266/12 218/267/12 +f 57/71/9 60/93/9 59/72/9 +f 61/74/9 64/88/9 63/75/9 +f 67/77/10 68/92/10 65/78/10 +f 71/80/10 72/87/10 69/81/10 +f 60/83/11 68/268/11 67/84/11 +f 58/86/12 66/94/12 65/78/12 +f 61/74/13 69/81/13 72/87/13 +f 63/89/14 71/96/14 70/90/14 +f 57/71/13 65/78/13 68/92/13 +f 59/85/14 67/84/14 66/94/14 +f 64/95/11 72/269/11 71/96/11 +f 62/91/12 70/90/12 69/81/12 +f 75/97/13 76/105/13 74/98/13 +f 78/100/14 80/104/14 79/101/14 +f 73/103/12 77/107/12 79/101/12 +f 75/97/10 79/101/10 80/104/10 +f 74/106/9 78/109/9 77/107/9 +f 76/108/11 80/270/11 78/109/11 +f 83/110/13 84/118/13 82/111/13 +f 86/113/14 88/117/14 87/114/14 +f 81/116/12 85/120/12 87/114/12 +f 83/110/10 87/114/10 88/117/10 +f 82/119/9 86/122/9 85/120/9 +f 84/121/11 88/271/11 86/122/11 +f 90/123/14 92/135/14 91/124/14 +f 95/126/13 96/134/13 93/127/13 +f 91/129/9 95/126/9 94/128/9 +f 102/131/14 104/140/14 103/132/14 +f 90/123/10 93/127/10 96/134/10 +f 99/136/13 100/141/13 98/137/13 +f 97/139/12 101/143/12 103/132/12 +f 99/136/10 103/132/10 104/140/10 +f 98/142/9 102/145/9 101/143/9 +f 100/144/11 104/272/11 102/145/11 +f 107/146/13 108/154/13 106/147/13 +f 110/149/14 112/153/14 111/150/14 +f 105/152/12 109/156/12 111/150/12 +f 107/146/10 111/150/10 112/153/10 +f 106/155/9 110/158/9 109/156/9 +f 108/157/11 112/273/11 110/158/11 +f 114/159/14 116/168/14 115/160/14 +f 119/162/13 120/167/13 117/163/13 +f 115/165/9 119/162/9 118/164/9 +f 114/159/10 117/163/10 120/167/10 +f 127/169/9 128/175/9 124/170/9 +f 125/172/10 126/176/10 121/173/10 +f 128/175/13 125/172/13 123/174/13 +f 126/176/14 127/274/14 122/177/14 +f 131/178/14 130/275/14 135/179/14 +f 129/181/13 132/184/13 134/182/13 +f 132/184/10 131/178/10 136/180/10 +f 130/185/9 129/181/9 133/183/9 +f 143/187/9 144/208/9 140/188/9 +f 141/190/10 142/209/10 137/191/10 +f 171/193/14 170/276/14 175/194/14 +f 169/196/13 172/229/13 174/197/13 +f 160/199/13 157/207/13 155/200/13 +f 158/202/14 159/277/14 154/203/14 +f 159/205/9 160/199/9 156/201/9 +f 157/207/10 158/202/10 153/204/10 +f 144/208/13 141/190/13 139/192/13 +f 142/209/14 143/278/14 138/210/14 +f 147/211/14 146/279/14 151/212/14 +f 145/214/13 148/217/13 150/215/13 +f 148/217/10 147/211/10 152/213/10 +f 146/218/9 145/214/9 149/216/9 +f 167/220/9 168/226/9 164/221/9 +f 165/223/10 166/227/10 161/224/10 +f 168/226/13 165/223/13 163/225/13 +f 166/227/14 167/280/14 162/228/14 +f 172/229/10 171/193/10 176/195/10 +f 170/230/9 169/196/9 173/198/9 +f 178/232/11 180/281/11 179/233/11 +f 183/235/12 184/282/12 182/236/12 +f 191/238/12 192/283/12 187/239/12 +f 185/241/11 190/284/11 189/242/11 +f 199/244/12 200/285/12 195/245/12 +f 193/247/11 198/286/11 197/248/11 +f 203/250/12 204/287/12 202/251/12 +f 206/253/11 208/288/11 207/254/11 +f 211/256/11 216/289/11 215/257/11 +f 213/259/12 214/290/12 209/260/12 +f 219/262/11 224/291/11 223/263/11 +f 221/265/12 222/292/12 217/266/12 o ABM_Pad v -1.000000 2.000000 1.000000 v 1.000000 2.000000 1.000000 @@ -1463,238 +1467,238 @@ vn 0.0000 0.7071 0.7071 vn 0.0000 0.7071 -0.7071 vn 0.0000 -0.7071 -0.7071 s off -f 230/289/15 225/290/15 226/291/15 -f 234/292/16 239/293/16 235/294/16 -f 229/295/15 227/296/15 225/290/15 -f 231/297/15 228/298/15 227/296/15 -f 232/299/15 226/291/15 228/298/15 -f 233/300/16 238/301/16 234/292/16 -f 236/302/16 237/303/16 233/300/16 -f 235/294/16 240/304/16 236/302/16 -f 231/305/17 240/306/17 232/307/17 -f 230/308/18 238/309/18 229/310/18 -f 228/311/18 233/312/18 227/313/18 -f 225/314/17 235/315/17 226/316/17 -f 232/317/19 239/318/19 230/319/19 -f 229/320/20 237/321/20 231/322/20 -f 226/291/20 236/302/20 228/298/20 -f 227/323/19 234/324/19 225/325/19 -f 241/326/15 244/327/15 243/328/15 -f 246/329/20 252/330/20 248/331/20 -f 247/332/19 249/333/19 245/334/19 -f 248/331/18 251/335/18 247/336/18 -f 245/334/17 250/337/17 246/329/17 -f 255/338/18 263/339/18 256/340/18 -f 261/341/15 257/342/15 260/343/15 -f 254/344/17 259/345/17 253/346/17 -f 264/347/20 261/341/20 262/348/20 -f 262/349/21 260/343/21 259/345/21 -f 258/350/22 264/347/22 263/339/22 -f 260/343/19 257/342/19 258/351/19 -f 268/352/20 265/353/20 266/354/20 -f 279/355/15 277/356/15 278/357/15 -f 283/358/15 281/359/15 282/360/15 -f 270/361/17 278/362/17 269/363/17 -f 276/364/20 283/358/20 274/365/20 -f 273/366/19 281/367/19 275/368/19 -f 272/369/20 279/355/20 270/370/20 -f 269/363/19 277/371/19 271/372/19 -f 275/368/18 284/373/18 276/364/18 -f 274/374/17 282/375/17 273/366/17 -f 271/372/18 280/376/18 272/369/18 -f 285/377/18 288/378/18 286/379/18 -f 292/380/18 289/381/18 290/382/18 -f 296/383/18 293/384/18 295/385/18 -f 297/386/18 300/387/18 298/388/18 -f 301/389/18 304/390/18 303/391/18 -f 305/392/18 308/393/18 306/394/18 -f 309/395/18 312/396/18 311/397/18 -f 316/398/18 313/399/18 314/400/18 -f 320/401/18 317/402/18 319/403/18 -f 324/404/18 321/405/18 322/406/18 -f 328/407/18 325/408/18 327/409/18 -f 329/410/18 332/411/18 330/412/18 -f 333/413/18 336/414/18 335/415/18 -f 337/416/18 340/417/18 339/418/18 -f 341/419/18 344/420/18 342/421/18 -f 345/422/18 348/423/18 347/424/18 -f 352/425/18 349/426/18 350/427/18 -f 356/428/18 353/429/18 355/430/18 -f 360/431/18 357/432/18 358/433/18 -f 364/434/18 361/435/18 363/436/18 -f 365/437/18 368/438/18 366/439/18 -f 369/440/18 372/441/18 371/442/18 -f 376/443/18 373/444/18 374/445/18 -f 380/446/18 377/447/18 379/448/18 -f 384/449/18 381/450/18 382/451/18 -f 388/452/18 385/453/18 387/454/18 -f 389/455/19 393/456/19 391/457/19 -f 390/458/21 395/459/21 389/455/21 -f 391/460/23 394/461/23 392/462/23 -f 392/462/20 396/463/20 390/458/20 -f 397/464/19 401/465/19 399/466/19 -f 398/467/21 403/468/21 397/464/21 -f 399/469/23 402/470/23 400/471/23 -f 400/471/20 404/472/20 398/467/20 -f 405/473/17 408/474/17 407/475/17 -f 412/476/17 409/477/17 411/478/17 -f 416/479/17 413/480/17 414/481/17 -f 417/482/17 420/483/17 419/484/17 -f 421/485/17 424/486/17 422/487/17 -f 425/488/17 428/489/17 427/490/17 -f 429/491/17 432/492/17 430/493/17 -f 436/494/17 433/495/17 435/496/17 -f 440/497/17 437/498/17 438/499/17 -f 444/500/17 441/501/17 443/502/17 -f 448/503/17 445/504/17 446/505/17 -f 449/506/17 452/507/17 451/508/17 -f 453/509/17 456/510/17 454/511/17 -f 457/512/17 460/513/17 458/514/17 -f 461/515/17 464/516/17 463/517/17 -f 465/518/17 468/519/17 466/520/17 -f 472/521/17 469/522/17 471/523/17 -f 476/524/17 473/525/17 474/526/17 -f 480/527/17 477/528/17 479/529/17 -f 484/530/17 481/531/17 482/532/17 -f 485/533/17 488/534/17 487/535/17 -f 489/536/17 492/537/17 490/538/17 -f 496/539/17 493/540/17 495/541/17 -f 500/542/17 497/543/17 498/544/17 -f 504/545/17 501/546/17 503/547/17 -f 508/548/17 505/549/17 506/550/17 -f 510/551/20 516/552/20 512/553/20 -f 511/554/19 513/555/19 509/556/19 -f 512/553/18 515/557/18 511/558/18 -f 509/556/17 514/559/17 510/551/17 -f 518/560/20 524/561/20 520/562/20 -f 519/563/19 521/564/19 517/565/19 -f 520/562/18 523/566/18 519/567/18 -f 517/565/17 522/568/17 518/560/17 -f 526/569/20 532/570/20 528/571/20 -f 527/572/19 529/573/19 525/574/19 -f 528/571/18 531/575/18 527/576/18 -f 525/574/17 530/577/17 526/569/17 -f 536/578/19 533/579/19 534/580/19 -f 540/581/18 537/582/18 538/583/18 -f 544/584/17 541/585/17 542/586/17 -f 230/289/15 229/295/15 225/290/15 -f 234/292/16 238/301/16 239/293/16 -f 229/295/15 231/297/15 227/296/15 -f 231/297/15 232/299/15 228/298/15 -f 232/299/15 230/289/15 226/291/15 -f 233/300/16 237/303/16 238/301/16 -f 236/302/16 240/304/16 237/303/16 -f 235/294/16 239/293/16 240/304/16 -f 231/305/17 237/587/17 240/306/17 -f 230/308/18 239/588/18 238/309/18 -f 228/311/18 236/589/18 233/312/18 -f 225/314/17 234/590/17 235/315/17 -f 232/317/19 240/591/19 239/318/19 -f 229/320/20 238/592/20 237/321/20 -f 226/291/20 235/294/20 236/302/20 -f 227/323/19 233/593/19 234/324/19 -f 241/326/15 242/594/15 244/327/15 -f 246/329/20 250/337/20 252/330/20 -f 247/332/19 251/595/19 249/333/19 -f 248/331/18 252/330/18 251/335/18 -f 245/334/17 249/333/17 250/337/17 -f 255/338/18 258/350/18 263/339/18 -f 261/341/15 264/347/15 257/342/15 -f 254/344/17 262/349/17 259/345/17 -f 262/348/20 254/596/20 256/597/20 -f 256/597/20 263/598/20 262/348/20 -f 263/598/20 264/347/20 262/348/20 -f 262/349/21 261/341/21 260/343/21 -f 258/350/22 257/342/22 264/347/22 -f 258/351/19 255/599/19 253/600/19 -f 253/600/19 259/601/19 258/351/19 -f 259/601/19 260/343/19 258/351/19 -f 268/352/20 267/602/20 265/353/20 -f 279/355/15 280/376/15 277/356/15 -f 283/358/15 284/373/15 281/359/15 -f 270/361/17 279/603/17 278/362/17 -f 276/364/20 284/373/20 283/358/20 -f 273/366/19 282/375/19 281/367/19 -f 272/369/20 280/376/20 279/355/20 -f 269/363/19 278/362/19 277/371/19 -f 275/368/18 281/367/18 284/373/18 -f 274/374/17 283/604/17 282/375/17 -f 271/372/18 277/371/18 280/376/18 -f 285/377/18 287/605/18 288/378/18 -f 292/380/18 291/606/18 289/381/18 -f 296/383/18 294/607/18 293/384/18 -f 297/386/18 299/608/18 300/387/18 -f 301/389/18 302/609/18 304/390/18 -f 305/392/18 307/610/18 308/393/18 -f 309/395/18 310/611/18 312/396/18 -f 316/398/18 315/612/18 313/399/18 -f 320/401/18 318/613/18 317/402/18 -f 324/404/18 323/614/18 321/405/18 -f 328/407/18 326/615/18 325/408/18 -f 329/410/18 331/616/18 332/411/18 -f 333/413/18 334/617/18 336/414/18 -f 337/416/18 338/618/18 340/417/18 -f 341/419/18 343/619/18 344/420/18 -f 345/422/18 346/620/18 348/423/18 -f 352/425/18 351/621/18 349/426/18 -f 356/428/18 354/622/18 353/429/18 -f 360/431/18 359/623/18 357/432/18 -f 364/434/18 362/624/18 361/435/18 -f 365/437/18 367/625/18 368/438/18 -f 369/440/18 370/626/18 372/441/18 -f 376/443/18 375/627/18 373/444/18 -f 380/446/18 378/628/18 377/447/18 -f 384/449/18 383/629/18 381/450/18 -f 388/452/18 386/630/18 385/453/18 -f 389/455/19 395/459/19 393/456/19 -f 390/458/21 396/463/21 395/459/21 -f 391/460/23 393/631/23 394/461/23 -f 392/462/20 394/461/20 396/463/20 -f 397/464/19 403/468/19 401/465/19 -f 398/467/21 404/472/21 403/468/21 -f 399/469/23 401/632/23 402/470/23 -f 400/471/20 402/470/20 404/472/20 -f 405/473/17 406/633/17 408/474/17 -f 412/476/17 410/634/17 409/477/17 -f 416/479/17 415/635/17 413/480/17 -f 417/482/17 418/636/17 420/483/17 -f 421/485/17 423/637/17 424/486/17 -f 425/488/17 426/638/17 428/489/17 -f 429/491/17 431/639/17 432/492/17 -f 436/494/17 434/640/17 433/495/17 -f 440/497/17 439/641/17 437/498/17 -f 444/500/17 442/642/17 441/501/17 -f 448/503/17 447/643/17 445/504/17 -f 449/506/17 450/644/17 452/507/17 -f 453/509/17 455/645/17 456/510/17 -f 457/512/17 459/646/17 460/513/17 -f 461/515/17 462/647/17 464/516/17 -f 465/518/17 467/648/17 468/519/17 -f 472/521/17 470/649/17 469/522/17 -f 476/524/17 475/650/17 473/525/17 -f 480/527/17 478/651/17 477/528/17 -f 484/530/17 483/652/17 481/531/17 -f 485/533/17 486/653/17 488/534/17 -f 489/536/17 491/654/17 492/537/17 -f 496/539/17 494/655/17 493/540/17 -f 500/542/17 499/656/17 497/543/17 -f 504/545/17 502/657/17 501/546/17 -f 508/548/17 507/658/17 505/549/17 -f 510/551/20 514/559/20 516/552/20 -f 511/554/19 515/659/19 513/555/19 -f 512/553/18 516/552/18 515/557/18 -f 509/556/17 513/555/17 514/559/17 -f 518/560/20 522/568/20 524/561/20 -f 519/563/19 523/660/19 521/564/19 -f 520/562/18 524/561/18 523/566/18 -f 517/565/17 521/564/17 522/568/17 -f 526/569/20 530/577/20 532/570/20 -f 527/572/19 531/661/19 529/573/19 -f 528/571/18 532/570/18 531/575/18 -f 525/574/17 529/573/17 530/577/17 -f 536/578/19 535/662/19 533/579/19 -f 540/581/18 539/663/18 537/582/18 -f 544/584/17 543/664/17 541/585/17 +f 230/293/15 225/294/15 226/295/15 +f 234/296/16 239/297/16 235/298/16 +f 229/299/15 227/300/15 225/294/15 +f 231/301/15 228/302/15 227/300/15 +f 232/303/15 226/295/15 228/302/15 +f 233/304/16 238/305/16 234/296/16 +f 236/306/16 237/307/16 233/304/16 +f 235/298/16 240/308/16 236/306/16 +f 231/309/17 240/310/17 232/311/17 +f 230/312/18 238/313/18 229/314/18 +f 228/315/18 233/316/18 227/317/18 +f 225/318/17 235/319/17 226/320/17 +f 232/321/19 239/322/19 230/323/19 +f 229/324/20 237/325/20 231/326/20 +f 226/295/20 236/306/20 228/302/20 +f 227/327/19 234/328/19 225/329/19 +f 241/330/15 244/331/15 243/332/15 +f 246/333/20 252/334/20 248/335/20 +f 247/336/19 249/337/19 245/338/19 +f 248/335/18 251/339/18 247/340/18 +f 245/338/17 250/341/17 246/333/17 +f 255/342/18 263/343/18 256/344/18 +f 261/345/15 257/346/15 260/347/15 +f 254/348/17 259/349/17 253/350/17 +f 264/351/20 261/345/20 262/352/20 +f 262/353/21 260/347/21 259/349/21 +f 258/354/22 264/351/22 263/343/22 +f 260/347/19 257/346/19 258/355/19 +f 268/356/20 265/357/20 266/358/20 +f 279/359/15 277/360/15 278/361/15 +f 283/362/15 281/363/15 282/364/15 +f 270/365/17 278/366/17 269/367/17 +f 276/368/20 283/362/20 274/369/20 +f 273/370/19 281/371/19 275/372/19 +f 272/373/20 279/359/20 270/374/20 +f 269/367/19 277/375/19 271/376/19 +f 275/372/18 284/377/18 276/368/18 +f 274/378/17 282/379/17 273/370/17 +f 271/376/18 280/380/18 272/373/18 +f 285/381/18 288/382/18 286/383/18 +f 292/384/18 289/385/18 290/386/18 +f 296/387/18 293/388/18 295/389/18 +f 297/390/18 300/391/18 298/392/18 +f 301/393/18 304/394/18 303/395/18 +f 305/396/18 308/397/18 306/398/18 +f 309/399/18 312/400/18 311/401/18 +f 316/402/18 313/403/18 314/404/18 +f 320/405/18 317/406/18 319/407/18 +f 324/408/18 321/409/18 322/410/18 +f 328/411/18 325/412/18 327/413/18 +f 329/414/18 332/415/18 330/416/18 +f 333/417/18 336/418/18 335/419/18 +f 337/420/18 340/421/18 339/422/18 +f 341/423/18 344/424/18 342/425/18 +f 345/426/18 348/427/18 347/428/18 +f 352/429/18 349/430/18 350/431/18 +f 356/432/18 353/433/18 355/434/18 +f 360/435/18 357/436/18 358/437/18 +f 364/438/18 361/439/18 363/440/18 +f 365/441/18 368/442/18 366/443/18 +f 369/444/18 372/445/18 371/446/18 +f 376/447/18 373/448/18 374/449/18 +f 380/450/18 377/451/18 379/452/18 +f 384/453/18 381/454/18 382/455/18 +f 388/456/18 385/457/18 387/458/18 +f 389/459/19 393/460/19 391/461/19 +f 390/462/21 395/463/21 389/459/21 +f 391/464/23 394/465/23 392/466/23 +f 392/466/20 396/467/20 390/462/20 +f 397/468/19 401/469/19 399/470/19 +f 398/471/21 403/472/21 397/468/21 +f 399/473/23 402/474/23 400/475/23 +f 400/475/20 404/476/20 398/471/20 +f 405/477/17 408/478/17 407/479/17 +f 412/480/17 409/481/17 411/482/17 +f 416/483/17 413/484/17 414/485/17 +f 417/486/17 420/487/17 419/488/17 +f 421/489/17 424/490/17 422/491/17 +f 425/492/17 428/493/17 427/494/17 +f 429/495/17 432/496/17 430/497/17 +f 436/498/17 433/499/17 435/500/17 +f 440/501/17 437/502/17 438/503/17 +f 444/504/17 441/505/17 443/506/17 +f 448/507/17 445/508/17 446/509/17 +f 449/510/17 452/511/17 451/512/17 +f 453/513/17 456/514/17 454/515/17 +f 457/516/17 460/517/17 458/518/17 +f 461/519/17 464/520/17 463/521/17 +f 465/522/17 468/523/17 466/524/17 +f 472/525/17 469/526/17 471/527/17 +f 476/528/17 473/529/17 474/530/17 +f 480/531/17 477/532/17 479/533/17 +f 484/534/17 481/535/17 482/536/17 +f 485/537/17 488/538/17 487/539/17 +f 489/540/17 492/541/17 490/542/17 +f 496/543/17 493/544/17 495/545/17 +f 500/546/17 497/547/17 498/548/17 +f 504/549/17 501/550/17 503/551/17 +f 508/552/17 505/553/17 506/554/17 +f 510/555/20 516/556/20 512/557/20 +f 511/558/19 513/559/19 509/560/19 +f 512/557/18 515/561/18 511/562/18 +f 509/560/17 514/563/17 510/555/17 +f 518/564/20 524/565/20 520/566/20 +f 519/567/19 521/568/19 517/569/19 +f 520/566/18 523/570/18 519/571/18 +f 517/569/17 522/572/17 518/564/17 +f 526/573/20 532/574/20 528/575/20 +f 527/576/19 529/577/19 525/578/19 +f 528/575/18 531/579/18 527/580/18 +f 525/578/17 530/581/17 526/573/17 +f 536/582/19 533/583/19 534/584/19 +f 540/585/18 537/586/18 538/587/18 +f 544/588/17 541/589/17 542/590/17 +f 230/293/15 229/299/15 225/294/15 +f 234/296/16 238/305/16 239/297/16 +f 229/299/15 231/301/15 227/300/15 +f 231/301/15 232/303/15 228/302/15 +f 232/303/15 230/293/15 226/295/15 +f 233/304/16 237/307/16 238/305/16 +f 236/306/16 240/308/16 237/307/16 +f 235/298/16 239/297/16 240/308/16 +f 231/309/17 237/591/17 240/310/17 +f 230/312/18 239/592/18 238/313/18 +f 228/315/18 236/593/18 233/316/18 +f 225/318/17 234/594/17 235/319/17 +f 232/321/19 240/595/19 239/322/19 +f 229/324/20 238/596/20 237/325/20 +f 226/295/20 235/298/20 236/306/20 +f 227/327/19 233/597/19 234/328/19 +f 241/330/15 242/598/15 244/331/15 +f 246/333/20 250/341/20 252/334/20 +f 247/336/19 251/599/19 249/337/19 +f 248/335/18 252/334/18 251/339/18 +f 245/338/17 249/337/17 250/341/17 +f 255/342/18 258/354/18 263/343/18 +f 261/345/15 264/351/15 257/346/15 +f 254/348/17 262/353/17 259/349/17 +f 262/352/20 254/600/20 256/601/20 +f 256/601/20 263/602/20 262/352/20 +f 263/602/20 264/351/20 262/352/20 +f 262/353/21 261/345/21 260/347/21 +f 258/354/22 257/346/22 264/351/22 +f 258/355/19 255/603/19 253/604/19 +f 253/604/19 259/605/19 258/355/19 +f 259/605/19 260/347/19 258/355/19 +f 268/356/20 267/606/20 265/357/20 +f 279/359/15 280/380/15 277/360/15 +f 283/362/15 284/377/15 281/363/15 +f 270/365/17 279/607/17 278/366/17 +f 276/368/20 284/377/20 283/362/20 +f 273/370/19 282/379/19 281/371/19 +f 272/373/20 280/380/20 279/359/20 +f 269/367/19 278/366/19 277/375/19 +f 275/372/18 281/371/18 284/377/18 +f 274/378/17 283/608/17 282/379/17 +f 271/376/18 277/375/18 280/380/18 +f 285/381/18 287/609/18 288/382/18 +f 292/384/18 291/610/18 289/385/18 +f 296/387/18 294/611/18 293/388/18 +f 297/390/18 299/612/18 300/391/18 +f 301/393/18 302/613/18 304/394/18 +f 305/396/18 307/614/18 308/397/18 +f 309/399/18 310/615/18 312/400/18 +f 316/402/18 315/616/18 313/403/18 +f 320/405/18 318/617/18 317/406/18 +f 324/408/18 323/618/18 321/409/18 +f 328/411/18 326/619/18 325/412/18 +f 329/414/18 331/620/18 332/415/18 +f 333/417/18 334/621/18 336/418/18 +f 337/420/18 338/622/18 340/421/18 +f 341/423/18 343/623/18 344/424/18 +f 345/426/18 346/624/18 348/427/18 +f 352/429/18 351/625/18 349/430/18 +f 356/432/18 354/626/18 353/433/18 +f 360/435/18 359/627/18 357/436/18 +f 364/438/18 362/628/18 361/439/18 +f 365/441/18 367/629/18 368/442/18 +f 369/444/18 370/630/18 372/445/18 +f 376/447/18 375/631/18 373/448/18 +f 380/450/18 378/632/18 377/451/18 +f 384/453/18 383/633/18 381/454/18 +f 388/456/18 386/634/18 385/457/18 +f 389/459/19 395/463/19 393/460/19 +f 390/462/21 396/467/21 395/463/21 +f 391/464/23 393/635/23 394/465/23 +f 392/466/20 394/465/20 396/467/20 +f 397/468/19 403/472/19 401/469/19 +f 398/471/21 404/476/21 403/472/21 +f 399/473/23 401/636/23 402/474/23 +f 400/475/20 402/474/20 404/476/20 +f 405/477/17 406/637/17 408/478/17 +f 412/480/17 410/638/17 409/481/17 +f 416/483/17 415/639/17 413/484/17 +f 417/486/17 418/640/17 420/487/17 +f 421/489/17 423/641/17 424/490/17 +f 425/492/17 426/642/17 428/493/17 +f 429/495/17 431/643/17 432/496/17 +f 436/498/17 434/644/17 433/499/17 +f 440/501/17 439/645/17 437/502/17 +f 444/504/17 442/646/17 441/505/17 +f 448/507/17 447/647/17 445/508/17 +f 449/510/17 450/648/17 452/511/17 +f 453/513/17 455/649/17 456/514/17 +f 457/516/17 459/650/17 460/517/17 +f 461/519/17 462/651/17 464/520/17 +f 465/522/17 467/652/17 468/523/17 +f 472/525/17 470/653/17 469/526/17 +f 476/528/17 475/654/17 473/529/17 +f 480/531/17 478/655/17 477/532/17 +f 484/534/17 483/656/17 481/535/17 +f 485/537/17 486/657/17 488/538/17 +f 489/540/17 491/658/17 492/541/17 +f 496/543/17 494/659/17 493/544/17 +f 500/546/17 499/660/17 497/547/17 +f 504/549/17 502/661/17 501/550/17 +f 508/552/17 507/662/17 505/553/17 +f 510/555/20 514/563/20 516/556/20 +f 511/558/19 515/663/19 513/559/19 +f 512/557/18 516/556/18 515/561/18 +f 509/560/17 513/559/17 514/563/17 +f 518/564/20 522/572/20 524/565/20 +f 519/567/19 523/664/19 521/568/19 +f 520/566/18 524/565/18 523/570/18 +f 517/569/17 521/568/17 522/572/17 +f 526/573/20 530/581/20 532/574/20 +f 527/576/19 531/665/19 529/577/19 +f 528/575/18 532/574/18 531/579/18 +f 525/578/17 529/577/17 530/581/17 +f 536/582/19 535/666/19 533/583/19 +f 540/585/18 539/667/18 537/586/18 +f 544/588/17 543/668/17 541/589/17 o Atlas_Rope v -2.116117 11.000000 2.292893 v -2.292893 11.000000 2.116117 @@ -1780,50 +1784,50 @@ vn 0.7071 0.0000 -0.7071 vn -0.7071 0.0000 0.7071 vn -0.5000 -0.7071 0.5000 s off -f 554/665/24 549/666/24 550/667/24 -f 546/668/25 552/669/25 550/670/25 -f 545/671/26 551/672/26 547/673/26 -f 547/673/27 552/669/27 548/674/27 -f 546/675/28 549/676/28 545/671/28 -f 557/677/25 560/678/25 562/679/25 -f 556/680/25 550/681/25 552/669/25 -f 551/672/29 556/680/29 552/669/29 -f 553/682/26 551/672/26 549/666/26 -f 556/680/30 558/683/30 557/677/30 -f 554/684/31 561/685/31 553/686/31 -f 561/685/26 558/683/26 555/687/26 -f 559/688/32 557/677/32 558/683/32 -f 564/689/25 570/690/25 566/691/25 -f 560/692/25 566/691/25 562/693/25 -f 559/694/33 564/689/33 560/692/33 -f 561/695/26 563/696/26 559/694/26 -f 562/697/34 565/698/34 561/695/34 -f 563/696/32 568/699/32 564/689/32 -f 563/696/26 569/700/26 567/701/26 -f 566/702/35 569/700/35 565/698/35 -f 554/665/24 553/682/24 549/666/24 -f 546/668/25 548/674/25 552/669/25 -f 545/671/26 549/676/26 551/672/26 -f 547/673/27 551/672/27 552/669/27 -f 546/675/28 550/703/28 549/676/28 -f 562/679/25 554/704/25 556/680/25 -f 556/680/25 557/677/25 562/679/25 -f 556/680/25 554/705/25 550/681/25 -f 551/672/29 555/687/29 556/680/29 -f 553/682/26 555/687/26 551/672/26 -f 556/680/30 555/687/30 558/683/30 -f 554/684/31 562/706/31 561/685/31 -f 555/687/26 553/686/26 561/685/26 -f 561/685/26 559/707/26 558/683/26 -f 559/688/32 560/708/32 557/677/32 -f 564/689/25 568/699/25 570/690/25 -f 560/692/25 564/689/25 566/691/25 -f 559/694/33 563/696/33 564/689/33 -f 561/695/26 565/698/26 563/696/26 -f 562/697/34 566/702/34 565/698/34 -f 563/696/32 567/701/32 568/699/32 -f 563/696/26 565/698/26 569/700/26 -f 566/702/35 570/709/35 569/700/35 +f 554/669/24 549/670/24 550/671/24 +f 546/672/25 552/673/25 550/674/25 +f 545/675/26 551/676/26 547/677/26 +f 547/677/27 552/673/27 548/678/27 +f 546/679/28 549/680/28 545/675/28 +f 557/681/25 560/682/25 562/683/25 +f 556/684/25 550/685/25 552/673/25 +f 551/676/29 556/684/29 552/673/29 +f 553/686/26 551/676/26 549/670/26 +f 556/684/30 558/687/30 557/681/30 +f 554/688/31 561/689/31 553/690/31 +f 561/689/26 558/687/26 555/691/26 +f 559/692/32 557/681/32 558/687/32 +f 564/693/25 570/694/25 566/695/25 +f 560/696/25 566/695/25 562/697/25 +f 559/698/33 564/693/33 560/696/33 +f 561/699/26 563/700/26 559/698/26 +f 562/701/34 565/702/34 561/699/34 +f 563/700/32 568/703/32 564/693/32 +f 563/700/26 569/704/26 567/705/26 +f 566/706/35 569/704/35 565/702/35 +f 554/669/24 553/686/24 549/670/24 +f 546/672/25 548/678/25 552/673/25 +f 545/675/26 549/680/26 551/676/26 +f 547/677/27 551/676/27 552/673/27 +f 546/679/28 550/707/28 549/680/28 +f 562/683/25 554/708/25 556/684/25 +f 556/684/25 557/681/25 562/683/25 +f 556/684/25 554/709/25 550/685/25 +f 551/676/29 555/691/29 556/684/29 +f 553/686/26 555/691/26 551/676/26 +f 556/684/30 555/691/30 558/687/30 +f 554/688/31 562/710/31 561/689/31 +f 555/691/26 553/690/26 561/689/26 +f 561/689/26 559/711/26 558/687/26 +f 559/692/32 560/712/32 557/681/32 +f 564/693/25 568/703/25 570/694/25 +f 560/696/25 564/693/25 566/695/25 +f 559/698/33 563/700/33 564/693/33 +f 561/699/26 565/702/26 563/700/26 +f 562/701/34 566/706/34 565/702/34 +f 563/700/32 567/705/32 568/703/32 +f 563/700/26 565/702/26 569/704/26 +f 566/706/35 570/713/35 569/704/35 o Atlas_Pivot v 0.750000 1.500000 -3.750000 v 1.250000 1.500000 -3.750000 @@ -2056,98 +2060,98 @@ vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 s off -f 610/710/36 604/711/36 606/712/36 -f 608/713/37 603/714/37 604/711/37 -f 581/715/38 580/716/38 579/717/38 -f 585/718/38 584/719/38 583/720/38 -f 589/721/39 587/722/39 588/723/39 -f 593/724/39 591/725/39 592/726/39 -f 576/727/37 592/728/37 575/729/37 -f 573/730/40 590/731/40 574/732/40 -f 572/733/37 588/734/37 571/735/37 -f 578/736/36 593/737/36 576/727/36 -f 575/729/41 591/725/41 577/738/41 -f 574/739/36 589/740/36 572/733/36 -f 571/735/41 587/722/41 573/730/41 -f 577/738/40 594/741/40 578/742/40 -f 597/743/39 595/744/39 596/745/39 -f 601/746/39 599/747/39 600/748/39 -f 586/749/36 601/750/36 584/751/36 -f 583/752/41 599/747/41 585/753/41 -f 582/754/36 597/755/36 580/756/36 -f 579/757/41 595/744/41 581/758/41 -f 585/753/40 602/759/40 586/760/40 -f 584/751/37 600/761/37 583/752/37 -f 581/758/40 598/762/40 582/763/40 -f 580/756/37 596/764/37 579/757/37 -f 607/765/41 605/766/41 603/714/41 -f 609/767/40 606/768/40 605/766/40 -f 618/769/36 612/770/36 614/771/36 -f 616/772/37 611/773/37 612/770/37 -f 615/774/41 613/775/41 611/773/41 -f 617/776/40 614/777/40 613/775/40 -f 626/778/36 620/779/36 622/780/36 -f 624/781/37 619/782/37 620/779/37 -f 623/783/41 621/784/41 619/782/41 -f 625/785/40 622/786/40 621/784/40 -f 634/787/36 628/788/36 630/789/36 -f 632/790/37 627/791/37 628/788/37 -f 631/792/41 629/793/41 627/791/41 -f 633/794/40 630/795/40 629/793/40 -f 636/796/36 637/797/36 635/798/36 -f 641/799/41 640/800/41 639/801/41 -f 644/802/40 645/803/40 643/804/40 -f 649/805/37 648/806/37 647/807/37 -f 653/808/41 652/809/41 651/810/41 -f 656/811/36 657/812/36 655/813/36 -f 661/814/37 660/815/37 659/816/37 -f 664/817/40 665/818/40 663/819/40 -f 610/710/36 608/713/36 604/711/36 -f 608/713/37 607/765/37 603/714/37 -f 581/715/38 582/820/38 580/716/38 -f 585/718/38 586/821/38 584/719/38 -f 589/721/39 590/731/39 587/722/39 -f 593/724/39 594/741/39 591/725/39 -f 576/727/37 593/737/37 592/728/37 -f 573/730/40 587/722/40 590/731/40 -f 572/733/37 589/740/37 588/734/37 -f 578/736/36 594/822/36 593/737/36 -f 575/729/41 592/728/41 591/725/41 -f 574/739/36 590/823/36 589/740/36 -f 571/735/41 588/734/41 587/722/41 -f 577/738/40 591/725/40 594/741/40 -f 597/743/39 598/762/39 595/744/39 -f 601/746/39 602/759/39 599/747/39 -f 586/749/36 602/824/36 601/750/36 -f 583/752/41 600/761/41 599/747/41 -f 582/754/36 598/825/36 597/755/36 -f 579/757/41 596/764/41 595/744/41 -f 585/753/40 599/747/40 602/759/40 -f 584/751/37 601/750/37 600/761/37 -f 581/758/40 595/744/40 598/762/40 -f 580/756/37 597/755/37 596/764/37 -f 607/765/41 609/767/41 605/766/41 -f 609/767/40 610/826/40 606/768/40 -f 618/769/36 616/772/36 612/770/36 -f 616/772/37 615/774/37 611/773/37 -f 615/774/41 617/776/41 613/775/41 -f 617/776/40 618/827/40 614/777/40 -f 626/778/36 624/781/36 620/779/36 -f 624/781/37 623/783/37 619/782/37 -f 623/783/41 625/785/41 621/784/41 -f 625/785/40 626/828/40 622/786/40 -f 634/787/36 632/790/36 628/788/36 -f 632/790/37 631/792/37 627/791/37 -f 631/792/41 633/794/41 629/793/41 -f 633/794/40 634/829/40 630/795/40 -f 636/796/36 638/830/36 637/797/36 -f 641/799/41 642/831/41 640/800/41 -f 644/802/40 646/832/40 645/803/40 -f 649/805/37 650/833/37 648/806/37 -f 653/808/41 654/834/41 652/809/41 -f 656/811/36 658/835/36 657/812/36 -f 661/814/37 662/836/37 660/815/37 -f 664/817/40 666/837/40 665/818/40 +f 610/714/36 604/715/36 606/716/36 +f 608/717/37 603/718/37 604/715/37 +f 581/719/38 580/720/38 579/721/38 +f 585/722/38 584/723/38 583/724/38 +f 589/725/39 587/726/39 588/727/39 +f 593/728/39 591/729/39 592/730/39 +f 576/731/37 592/732/37 575/733/37 +f 573/734/40 590/735/40 574/736/40 +f 572/737/37 588/738/37 571/739/37 +f 578/740/36 593/741/36 576/731/36 +f 575/733/41 591/729/41 577/742/41 +f 574/743/36 589/744/36 572/737/36 +f 571/739/41 587/726/41 573/734/41 +f 577/742/40 594/745/40 578/746/40 +f 597/747/39 595/748/39 596/749/39 +f 601/750/39 599/751/39 600/752/39 +f 586/753/36 601/754/36 584/755/36 +f 583/756/41 599/751/41 585/757/41 +f 582/758/36 597/759/36 580/760/36 +f 579/761/41 595/748/41 581/762/41 +f 585/757/40 602/763/40 586/764/40 +f 584/755/37 600/765/37 583/756/37 +f 581/762/40 598/766/40 582/767/40 +f 580/760/37 596/768/37 579/761/37 +f 607/769/41 605/770/41 603/718/41 +f 609/771/40 606/772/40 605/770/40 +f 618/773/36 612/774/36 614/775/36 +f 616/776/37 611/777/37 612/774/37 +f 615/778/41 613/779/41 611/777/41 +f 617/780/40 614/781/40 613/779/40 +f 626/782/36 620/783/36 622/784/36 +f 624/785/37 619/786/37 620/783/37 +f 623/787/41 621/788/41 619/786/41 +f 625/789/40 622/790/40 621/788/40 +f 634/791/36 628/792/36 630/793/36 +f 632/794/37 627/795/37 628/792/37 +f 631/796/41 629/797/41 627/795/41 +f 633/798/40 630/799/40 629/797/40 +f 636/800/36 637/801/36 635/802/36 +f 641/803/41 640/804/41 639/805/41 +f 644/806/40 645/807/40 643/808/40 +f 649/809/37 648/810/37 647/811/37 +f 653/812/41 652/813/41 651/814/41 +f 656/815/36 657/816/36 655/817/36 +f 661/818/37 660/819/37 659/820/37 +f 664/821/40 665/822/40 663/823/40 +f 610/714/36 608/717/36 604/715/36 +f 608/717/37 607/769/37 603/718/37 +f 581/719/38 582/824/38 580/720/38 +f 585/722/38 586/825/38 584/723/38 +f 589/725/39 590/735/39 587/726/39 +f 593/728/39 594/745/39 591/729/39 +f 576/731/37 593/741/37 592/732/37 +f 573/734/40 587/726/40 590/735/40 +f 572/737/37 589/744/37 588/738/37 +f 578/740/36 594/826/36 593/741/36 +f 575/733/41 592/732/41 591/729/41 +f 574/743/36 590/827/36 589/744/36 +f 571/739/41 588/738/41 587/726/41 +f 577/742/40 591/729/40 594/745/40 +f 597/747/39 598/766/39 595/748/39 +f 601/750/39 602/763/39 599/751/39 +f 586/753/36 602/828/36 601/754/36 +f 583/756/41 600/765/41 599/751/41 +f 582/758/36 598/829/36 597/759/36 +f 579/761/41 596/768/41 595/748/41 +f 585/757/40 599/751/40 602/763/40 +f 584/755/37 601/754/37 600/765/37 +f 581/762/40 595/748/40 598/766/40 +f 580/760/37 597/759/37 596/768/37 +f 607/769/41 609/771/41 605/770/41 +f 609/771/40 610/830/40 606/772/40 +f 618/773/36 616/776/36 612/774/36 +f 616/776/37 615/778/37 611/777/37 +f 615/778/41 617/780/41 613/779/41 +f 617/780/40 618/831/40 614/781/40 +f 626/782/36 624/785/36 620/783/36 +f 624/785/37 623/787/37 619/786/37 +f 623/787/41 625/789/41 621/788/41 +f 625/789/40 626/832/40 622/790/40 +f 634/791/36 632/794/36 628/792/36 +f 632/794/37 631/796/37 627/795/37 +f 631/796/41 633/798/41 629/797/41 +f 633/798/40 634/833/40 630/799/40 +f 636/800/36 638/834/36 637/801/36 +f 641/803/41 642/835/41 640/804/41 +f 644/806/40 646/836/40 645/807/40 +f 649/809/37 650/837/37 648/810/37 +f 653/812/41 654/838/41 652/813/41 +f 656/815/36 658/839/36 657/816/36 +f 661/818/37 662/840/37 660/819/37 +f 664/821/40 666/841/40 665/822/40 o Atlas_Erector v 0.750000 3.500000 -4.250000 v 0.750000 3.500000 -3.750000 @@ -3334,442 +3338,442 @@ vn -0.7071 0.0000 0.7071 vn 0.7071 0.0000 0.7071 vn -0.7071 0.0000 -0.7071 s off -f 667/838/42 669/839/42 668/840/42 -f 671/841/42 673/842/42 672/843/42 -f 675/844/42 677/845/42 676/846/42 -f 679/847/42 681/848/42 680/849/42 -f 685/850/43 683/851/43 684/852/43 -f 689/853/43 687/854/43 688/855/43 -f 693/856/43 691/857/43 692/858/43 -f 697/859/43 695/860/43 696/861/43 -f 677/862/44 692/863/44 676/864/44 -f 670/865/45 685/866/45 669/867/45 -f 678/868/45 693/869/45 677/862/45 -f 667/838/46 686/870/46 670/871/46 -f 675/844/46 694/872/46 678/873/46 -f 672/874/47 687/854/47 671/841/47 -f 680/875/47 695/860/47 679/847/47 -f 673/876/44 688/877/44 672/874/44 -f 681/878/44 696/879/44 680/875/44 -f 674/880/45 689/881/45 673/876/45 -f 682/882/45 697/883/45 681/878/45 -f 671/841/46 690/884/46 674/885/46 -f 668/886/47 683/851/47 667/838/47 -f 679/847/46 698/887/46 682/888/46 -f 676/864/47 691/857/47 675/844/47 -f 669/867/44 684/889/44 668/886/44 -f 699/890/43 701/891/43 700/892/43 -f 705/893/42 703/894/42 704/895/42 -f 699/890/46 706/896/46 702/897/46 -f 701/891/44 704/898/44 700/892/44 -f 709/899/46 708/900/46 707/901/46 -f 712/902/44 713/903/44 711/904/44 -f 709/905/42 730/906/42 713/907/42 -f 709/905/42 714/908/42 710/909/42 -f 709/910/48 724/911/48 726/912/48 -f 708/900/43 711/913/43 707/901/43 -f 717/914/47 716/915/47 715/916/47 -f 720/917/45 721/918/45 719/919/45 -f 718/920/44 720/921/44 716/922/44 -f 717/923/42 722/924/42 718/925/42 -f 711/913/43 724/911/43 707/901/43 -f 716/915/43 719/926/43 715/916/43 -f 725/927/45 724/911/45 723/928/45 -f 728/929/47 729/930/47 727/931/47 -f 713/903/49 728/929/49 711/904/49 -f 725/932/42 730/906/42 726/933/42 -f 723/934/44 729/935/44 725/936/44 -f 724/911/43 727/937/43 723/928/43 -f 714/938/50 719/919/50 721/918/50 -f 708/900/43 719/926/43 712/939/43 -f 710/940/51 715/916/51 708/941/51 -f 721/942/42 710/909/42 714/908/42 -f 731/943/43 733/944/43 732/945/43 -f 737/946/42 735/947/42 736/948/42 -f 731/943/46 738/949/46 734/950/46 -f 733/944/44 736/951/44 732/945/44 -f 740/952/45 746/953/45 742/954/45 -f 741/955/47 743/956/47 739/957/47 -f 742/954/43 745/958/43 741/955/43 -f 739/957/42 744/959/42 740/960/42 -f 748/961/45 754/962/45 750/963/45 -f 749/964/47 751/965/47 747/966/47 -f 750/963/43 753/967/43 749/964/43 -f 747/966/42 752/968/42 748/969/42 -f 755/970/43 757/971/43 756/972/43 -f 761/973/42 759/974/42 760/975/42 -f 755/970/46 762/976/46 758/977/46 -f 757/971/44 760/978/44 756/972/44 -f 765/979/46 764/980/46 763/981/46 -f 768/982/44 769/983/44 767/984/44 -f 765/985/42 786/986/42 769/987/42 -f 765/985/42 770/988/42 766/989/42 -f 765/990/48 780/991/48 782/992/48 -f 764/980/43 767/993/43 763/981/43 -f 773/994/47 772/995/47 771/996/47 -f 776/997/45 777/998/45 775/999/45 -f 774/1000/44 776/1001/44 772/1002/44 -f 773/1003/42 778/1004/42 774/1005/42 -f 767/993/43 780/991/43 763/981/43 -f 772/995/43 775/1006/43 771/996/43 -f 781/1007/45 780/991/45 779/1008/45 -f 784/1009/47 785/1010/47 783/1011/47 -f 769/983/49 784/1009/49 767/984/49 -f 781/1012/42 786/986/42 782/1013/42 -f 779/1014/44 785/1015/44 781/1016/44 -f 780/991/43 783/1017/43 779/1008/43 -f 770/1018/50 775/999/50 777/998/50 -f 764/980/43 775/1006/43 768/1019/43 -f 766/1020/51 771/996/51 764/1021/51 -f 777/1022/42 766/989/42 770/988/42 -f 787/1023/43 789/1024/43 788/1025/43 -f 793/1026/42 791/1027/42 792/1028/42 -f 787/1023/46 794/1029/46 790/1030/46 -f 789/1024/44 792/1031/44 788/1025/44 -f 796/1032/45 802/1033/45 798/1034/45 -f 797/1035/47 799/1036/47 795/1037/47 -f 798/1034/43 801/1038/43 797/1035/43 -f 795/1037/42 800/1039/42 796/1040/42 -f 804/1041/45 810/1042/45 806/1043/45 -f 805/1044/47 807/1045/47 803/1046/47 -f 806/1043/43 809/1047/43 805/1044/43 -f 803/1046/42 808/1048/42 804/1049/42 -f 811/1050/43 813/1051/43 812/1052/43 -f 817/1053/42 815/1054/42 816/1055/42 -f 811/1050/46 818/1056/46 814/1057/46 -f 813/1051/44 816/1058/44 812/1052/44 -f 821/1059/46 820/1060/46 819/1061/46 -f 824/1062/44 825/1063/44 823/1064/44 -f 821/1065/42 842/1066/42 825/1067/42 -f 821/1065/42 826/1068/42 822/1069/42 -f 821/1070/48 836/1071/48 838/1072/48 -f 820/1060/43 823/1073/43 819/1061/43 -f 829/1074/47 828/1075/47 827/1076/47 -f 832/1077/45 833/1078/45 831/1079/45 -f 830/1080/44 832/1077/44 828/1081/44 -f 829/1082/42 834/1083/42 830/1084/42 -f 823/1073/43 836/1071/43 819/1061/43 -f 828/1075/43 831/1085/43 827/1076/43 -f 837/1086/45 836/1071/45 835/1087/45 -f 840/1088/47 841/1089/47 839/1090/47 -f 825/1063/49 840/1088/49 823/1064/49 -f 837/1091/42 842/1066/42 838/1092/42 -f 835/1093/44 841/1089/44 837/1094/44 -f 836/1071/43 839/1095/43 835/1087/43 -f 826/1096/50 831/1079/50 833/1078/50 -f 820/1060/43 831/1085/43 824/1097/43 -f 822/1098/51 827/1076/51 820/1099/51 -f 833/1100/42 822/1069/42 826/1068/42 -f 843/1101/43 845/1102/43 844/1103/43 -f 849/1104/42 847/1105/42 848/1106/42 -f 843/1101/46 850/1107/46 846/1108/46 -f 845/1102/44 848/1109/44 844/1103/44 -f 852/1110/45 858/1111/45 854/1112/45 -f 853/1113/47 855/1114/47 851/1115/47 -f 854/1112/43 857/1116/43 853/1113/43 -f 851/1115/42 856/1117/42 852/1118/42 -f 860/1119/45 866/1120/45 862/1121/45 -f 861/1122/47 863/1123/47 859/1124/47 -f 862/1121/43 865/1125/43 861/1122/43 -f 859/1124/42 864/1126/42 860/1127/42 -f 868/1128/46 869/1129/46 867/1130/46 -f 872/1131/46 873/1132/46 871/1133/46 -f 875/1134/46 878/1135/46 877/1136/46 -f 879/1137/46 882/1138/46 881/1139/46 -f 884/1140/46 885/1141/46 883/1142/46 -f 888/1143/46 889/1144/46 887/1145/46 -f 891/1146/46 894/1147/46 893/1148/46 -f 895/1149/46 898/1150/46 897/1151/46 -f 901/1152/44 900/1153/44 899/1154/44 -f 905/1155/44 904/1156/44 903/1157/44 -f 907/1158/44 910/1159/44 908/1160/44 -f 911/1161/44 914/1162/44 912/1163/44 -f 917/1164/44 916/1165/44 915/1166/44 -f 921/1167/44 920/1168/44 919/1169/44 -f 923/1170/44 926/1171/44 924/1172/44 -f 927/1173/44 930/1174/44 928/1175/44 -f 932/1176/46 933/1177/46 931/1178/46 -f 935/1179/46 938/1180/46 937/1181/46 -f 941/1182/44 940/1183/44 939/1184/44 -f 943/1185/44 946/1186/44 944/1187/44 -f 948/1188/45 949/1189/45 947/1190/45 -f 951/1191/45 954/1192/45 953/1193/45 -f 956/1194/45 957/1195/45 955/1196/45 -f 959/1197/45 962/1198/45 961/1199/45 -f 964/1200/45 965/1201/45 963/1202/45 -f 967/1203/45 970/1204/45 969/1205/45 -f 972/1206/45 973/1207/45 971/1208/45 -f 975/1209/45 978/1210/45 977/1211/45 -f 980/1212/45 981/1213/45 979/1214/45 -f 983/1215/45 986/1216/45 985/1217/45 -f 989/1218/47 988/1219/47 987/1220/47 -f 991/1221/47 994/1222/47 992/1223/47 -f 997/1224/47 996/1225/47 995/1226/47 -f 999/1227/47 1002/1228/47 1000/1229/47 -f 1005/1230/47 1004/1231/47 1003/1232/47 -f 1007/1233/47 1010/1234/47 1008/1235/47 -f 1013/1236/47 1012/1237/47 1011/1238/47 -f 1015/1239/47 1018/1240/47 1016/1241/47 -f 1021/1242/47 1020/1243/47 1019/1244/47 -f 1023/1245/47 1026/1246/47 1024/1247/47 -f 1029/1248/44 1028/1249/44 1027/1250/44 -f 1033/1251/44 1032/1252/44 1031/1253/44 -f 1035/1254/44 1038/1255/44 1036/1256/44 -f 1039/1257/44 1042/1258/44 1040/1259/44 -f 1045/1260/44 1044/1261/44 1043/1262/44 -f 1049/1263/44 1048/1264/44 1047/1265/44 -f 1051/1266/44 1054/1267/44 1052/1268/44 -f 1055/1269/44 1058/1270/44 1056/1271/44 -f 1060/1272/46 1061/1273/46 1059/1274/46 -f 1064/1275/46 1065/1276/46 1063/1277/46 -f 1067/1278/46 1070/1279/46 1069/1280/46 -f 1071/1281/46 1074/1282/46 1073/1283/46 -f 1076/1284/46 1077/1285/46 1075/1286/46 -f 1080/1287/46 1081/1288/46 1079/1289/46 -f 1083/1290/46 1086/1291/46 1085/1292/46 -f 1087/1293/46 1090/1294/46 1089/1295/46 -f 1093/1296/44 1092/1297/44 1091/1298/44 -f 1095/1299/44 1098/1300/44 1096/1301/44 -f 1100/1302/46 1101/1303/46 1099/1304/46 -f 1103/1305/46 1106/1306/46 1105/1307/46 -f 1109/1308/47 1108/1309/47 1107/1310/47 -f 1111/1311/47 1114/1312/47 1112/1313/47 -f 1117/1314/47 1116/1315/47 1115/1316/47 -f 1119/1317/47 1122/1318/47 1120/1319/47 -f 1125/1320/47 1124/1321/47 1123/1322/47 -f 1127/1323/47 1130/1324/47 1128/1325/47 -f 1133/1326/47 1132/1327/47 1131/1328/47 -f 1135/1329/47 1138/1330/47 1136/1331/47 -f 1141/1332/47 1140/1333/47 1139/1334/47 -f 1143/1335/47 1146/1336/47 1144/1337/47 -f 1148/1338/45 1149/1339/45 1147/1340/45 -f 1151/1341/45 1154/1342/45 1153/1343/45 -f 1156/1344/45 1157/1345/45 1155/1346/45 -f 1159/1347/45 1162/1348/45 1161/1349/45 -f 1164/1350/45 1165/1351/45 1163/1352/45 -f 1167/1353/45 1170/1354/45 1169/1355/45 -f 1172/1356/45 1173/1357/45 1171/1358/45 -f 1175/1359/45 1178/1360/45 1177/1361/45 -f 1180/1362/45 1181/1363/45 1179/1364/45 -f 1183/1365/45 1186/1366/45 1185/1367/45 -f 667/838/42 670/871/42 669/839/42 -f 671/841/42 674/885/42 673/842/42 -f 675/844/42 678/873/42 677/845/42 -f 679/847/42 682/888/42 681/848/42 -f 685/850/43 686/870/43 683/851/43 -f 689/853/43 690/884/43 687/854/43 -f 693/856/43 694/872/43 691/857/43 -f 697/859/43 698/887/43 695/860/43 -f 677/862/44 693/869/44 692/863/44 -f 670/865/45 686/1368/45 685/866/45 -f 678/868/45 694/1369/45 693/869/45 -f 667/838/46 683/851/46 686/870/46 -f 675/844/46 691/857/46 694/872/46 -f 672/874/47 688/877/47 687/854/47 -f 680/875/47 696/879/47 695/860/47 -f 673/876/44 689/881/44 688/877/44 -f 681/878/44 697/883/44 696/879/44 -f 674/880/45 690/1370/45 689/881/45 -f 682/882/45 698/1371/45 697/883/45 -f 671/841/46 687/854/46 690/884/46 -f 668/886/47 684/889/47 683/851/47 -f 679/847/46 695/860/46 698/887/46 -f 676/864/47 692/863/47 691/857/47 -f 669/867/44 685/866/44 684/889/44 -f 699/890/43 702/897/43 701/891/43 -f 705/893/42 706/896/42 703/894/42 -f 699/890/46 703/894/46 706/896/46 -f 701/891/44 705/1372/44 704/898/44 -f 709/899/46 710/1373/46 708/900/46 -f 712/902/44 714/938/44 713/903/44 -f 709/905/42 726/933/42 730/906/42 -f 709/905/42 713/907/42 714/908/42 -f 709/910/48 707/1374/48 724/911/48 -f 708/900/43 712/939/43 711/913/43 -f 717/914/47 718/1375/47 716/915/47 -f 720/917/45 722/1376/45 721/918/45 -f 718/920/44 722/1377/44 720/921/44 -f 717/923/42 721/942/42 722/924/42 -f 711/913/43 728/1378/43 724/911/43 -f 716/915/43 720/1379/43 719/926/43 -f 725/927/45 726/912/45 724/911/45 -f 728/929/47 730/1380/47 729/930/47 -f 713/903/49 730/1380/49 728/929/49 -f 725/932/42 729/1381/42 730/906/42 -f 723/934/44 727/1382/44 729/935/44 -f 724/911/43 728/1378/43 727/937/43 -f 714/938/50 712/902/50 719/919/50 -f 708/900/43 715/916/43 719/926/43 -f 710/940/51 717/914/51 715/916/51 -f 721/942/42 717/923/42 710/909/42 -f 731/943/43 734/950/43 733/944/43 -f 737/946/42 738/949/42 735/947/42 -f 731/943/46 735/947/46 738/949/46 -f 733/944/44 737/1383/44 736/951/44 -f 740/952/45 744/1384/45 746/953/45 -f 741/955/47 745/958/47 743/956/47 -f 742/954/43 746/953/43 745/958/43 -f 739/957/42 743/956/42 744/959/42 -f 748/961/45 752/1385/45 754/962/45 -f 749/964/47 753/967/47 751/965/47 -f 750/963/43 754/962/43 753/967/43 -f 747/966/42 751/965/42 752/968/42 -f 755/970/43 758/977/43 757/971/43 -f 761/973/42 762/976/42 759/974/42 -f 755/970/46 759/974/46 762/976/46 -f 757/971/44 761/1386/44 760/978/44 -f 765/979/46 766/1387/46 764/980/46 -f 768/982/44 770/1018/44 769/983/44 -f 765/985/42 782/1013/42 786/986/42 -f 765/985/42 769/987/42 770/988/42 -f 765/990/48 763/1388/48 780/991/48 -f 764/980/43 768/1019/43 767/993/43 -f 773/994/47 774/1389/47 772/995/47 -f 776/997/45 778/1390/45 777/998/45 -f 774/1000/44 778/1391/44 776/1001/44 -f 773/1003/42 777/1022/42 778/1004/42 -f 767/993/43 784/1392/43 780/991/43 -f 772/995/43 776/1393/43 775/1006/43 -f 781/1007/45 782/992/45 780/991/45 -f 784/1009/47 786/1394/47 785/1010/47 -f 769/983/49 786/1394/49 784/1009/49 -f 781/1012/42 785/1395/42 786/986/42 -f 779/1014/44 783/1396/44 785/1015/44 -f 780/991/43 784/1392/43 783/1017/43 -f 770/1018/50 768/982/50 775/999/50 -f 764/980/43 771/996/43 775/1006/43 -f 766/1020/51 773/994/51 771/996/51 -f 777/1022/42 773/1003/42 766/989/42 -f 787/1023/43 790/1030/43 789/1024/43 -f 793/1026/42 794/1029/42 791/1027/42 -f 787/1023/46 791/1027/46 794/1029/46 -f 789/1024/44 793/1397/44 792/1031/44 -f 796/1032/45 800/1398/45 802/1033/45 -f 797/1035/47 801/1038/47 799/1036/47 -f 798/1034/43 802/1033/43 801/1038/43 -f 795/1037/42 799/1036/42 800/1039/42 -f 804/1041/45 808/1399/45 810/1042/45 -f 805/1044/47 809/1047/47 807/1045/47 -f 806/1043/43 810/1042/43 809/1047/43 -f 803/1046/42 807/1045/42 808/1048/42 -f 811/1050/43 814/1057/43 813/1051/43 -f 817/1053/42 818/1056/42 815/1054/42 -f 811/1050/46 815/1054/46 818/1056/46 -f 813/1051/44 817/1400/44 816/1058/44 -f 821/1059/46 822/1401/46 820/1060/46 -f 824/1062/44 826/1096/44 825/1063/44 -f 821/1065/42 838/1092/42 842/1066/42 -f 821/1065/42 825/1067/42 826/1068/42 -f 821/1070/48 819/1402/48 836/1071/48 -f 820/1060/43 824/1097/43 823/1073/43 -f 829/1074/47 830/1403/47 828/1075/47 -f 832/1077/45 834/1404/45 833/1078/45 -f 830/1080/44 834/1404/44 832/1077/44 -f 829/1082/42 833/1100/42 834/1083/42 -f 823/1073/43 840/1405/43 836/1071/43 -f 828/1075/43 832/1406/43 831/1085/43 -f 837/1086/45 838/1072/45 836/1071/45 -f 840/1088/47 842/1407/47 841/1089/47 -f 825/1063/49 842/1407/49 840/1088/49 -f 837/1091/42 841/1408/42 842/1066/42 -f 835/1093/44 839/1090/44 841/1089/44 -f 836/1071/43 840/1405/43 839/1095/43 -f 826/1096/50 824/1062/50 831/1079/50 -f 820/1060/43 827/1076/43 831/1085/43 -f 822/1098/51 829/1074/51 827/1076/51 -f 833/1100/42 829/1082/42 822/1069/42 -f 843/1101/43 846/1108/43 845/1102/43 -f 849/1104/42 850/1107/42 847/1105/42 -f 843/1101/46 847/1105/46 850/1107/46 -f 845/1102/44 849/1409/44 848/1109/44 -f 852/1110/45 856/1410/45 858/1111/45 -f 853/1113/47 857/1116/47 855/1114/47 -f 854/1112/43 858/1111/43 857/1116/43 -f 851/1115/42 855/1114/42 856/1117/42 -f 860/1119/45 864/1411/45 866/1120/45 -f 861/1122/47 865/1125/47 863/1123/47 -f 862/1121/43 866/1120/43 865/1125/43 -f 859/1124/42 863/1123/42 864/1126/42 -f 868/1128/46 870/1412/46 869/1129/46 -f 872/1131/46 874/1413/46 873/1132/46 -f 875/1134/46 876/1414/46 878/1135/46 -f 879/1137/46 880/1415/46 882/1138/46 -f 884/1140/46 886/1416/46 885/1141/46 -f 888/1143/46 890/1417/46 889/1144/46 -f 891/1146/46 892/1418/46 894/1147/46 -f 895/1149/46 896/1419/46 898/1150/46 -f 901/1152/44 902/1420/44 900/1153/44 -f 905/1155/44 906/1421/44 904/1156/44 -f 907/1158/44 909/1422/44 910/1159/44 -f 911/1161/44 913/1423/44 914/1162/44 -f 917/1164/44 918/1424/44 916/1165/44 -f 921/1167/44 922/1425/44 920/1168/44 -f 923/1170/44 925/1426/44 926/1171/44 -f 927/1173/44 929/1427/44 930/1174/44 -f 932/1176/46 934/1428/46 933/1177/46 -f 935/1179/46 936/1429/46 938/1180/46 -f 941/1182/44 942/1430/44 940/1183/44 -f 943/1185/44 945/1431/44 946/1186/44 -f 948/1188/45 950/1432/45 949/1189/45 -f 951/1191/45 952/1433/45 954/1192/45 -f 956/1194/45 958/1434/45 957/1195/45 -f 959/1197/45 960/1435/45 962/1198/45 -f 964/1200/45 966/1436/45 965/1201/45 -f 967/1203/45 968/1437/45 970/1204/45 -f 972/1206/45 974/1438/45 973/1207/45 -f 975/1209/45 976/1439/45 978/1210/45 -f 980/1212/45 982/1440/45 981/1213/45 -f 983/1215/45 984/1441/45 986/1216/45 -f 989/1218/47 990/1442/47 988/1219/47 -f 991/1221/47 993/1443/47 994/1222/47 -f 997/1224/47 998/1444/47 996/1225/47 -f 999/1227/47 1001/1445/47 1002/1228/47 -f 1005/1230/47 1006/1446/47 1004/1231/47 -f 1007/1233/47 1009/1447/47 1010/1234/47 -f 1013/1236/47 1014/1448/47 1012/1237/47 -f 1015/1239/47 1017/1449/47 1018/1240/47 -f 1021/1242/47 1022/1450/47 1020/1243/47 -f 1023/1245/47 1025/1451/47 1026/1246/47 -f 1029/1248/44 1030/1452/44 1028/1249/44 -f 1033/1251/44 1034/1453/44 1032/1252/44 -f 1035/1254/44 1037/1454/44 1038/1255/44 -f 1039/1257/44 1041/1455/44 1042/1258/44 -f 1045/1260/44 1046/1456/44 1044/1261/44 -f 1049/1263/44 1050/1457/44 1048/1264/44 -f 1051/1266/44 1053/1458/44 1054/1267/44 -f 1055/1269/44 1057/1459/44 1058/1270/44 -f 1060/1272/46 1062/1460/46 1061/1273/46 -f 1064/1275/46 1066/1461/46 1065/1276/46 -f 1067/1278/46 1068/1462/46 1070/1279/46 -f 1071/1281/46 1072/1463/46 1074/1282/46 -f 1076/1284/46 1078/1464/46 1077/1285/46 -f 1080/1287/46 1082/1465/46 1081/1288/46 -f 1083/1290/46 1084/1466/46 1086/1291/46 -f 1087/1293/46 1088/1467/46 1090/1294/46 -f 1093/1296/44 1094/1468/44 1092/1297/44 -f 1095/1299/44 1097/1469/44 1098/1300/44 -f 1100/1302/46 1102/1470/46 1101/1303/46 -f 1103/1305/46 1104/1471/46 1106/1306/46 -f 1109/1308/47 1110/1472/47 1108/1309/47 -f 1111/1311/47 1113/1473/47 1114/1312/47 -f 1117/1314/47 1118/1474/47 1116/1315/47 -f 1119/1317/47 1121/1475/47 1122/1318/47 -f 1125/1320/47 1126/1476/47 1124/1321/47 -f 1127/1323/47 1129/1477/47 1130/1324/47 -f 1133/1326/47 1134/1478/47 1132/1327/47 -f 1135/1329/47 1137/1479/47 1138/1330/47 -f 1141/1332/47 1142/1480/47 1140/1333/47 -f 1143/1335/47 1145/1481/47 1146/1336/47 -f 1148/1338/45 1150/1482/45 1149/1339/45 -f 1151/1341/45 1152/1483/45 1154/1342/45 -f 1156/1344/45 1158/1484/45 1157/1345/45 -f 1159/1347/45 1160/1485/45 1162/1348/45 -f 1164/1350/45 1166/1486/45 1165/1351/45 -f 1167/1353/45 1168/1487/45 1170/1354/45 -f 1172/1356/45 1174/1488/45 1173/1357/45 -f 1175/1359/45 1176/1489/45 1178/1360/45 -f 1180/1362/45 1182/1490/45 1181/1363/45 -f 1183/1365/45 1184/1491/45 1186/1366/45 +f 667/842/42 669/843/42 668/844/42 +f 671/845/42 673/846/42 672/847/42 +f 675/848/42 677/849/42 676/850/42 +f 679/851/42 681/852/42 680/853/42 +f 685/854/43 683/855/43 684/856/43 +f 689/857/43 687/858/43 688/859/43 +f 693/860/43 691/861/43 692/862/43 +f 697/863/43 695/864/43 696/865/43 +f 677/866/44 692/867/44 676/868/44 +f 670/869/45 685/870/45 669/871/45 +f 678/872/45 693/873/45 677/866/45 +f 667/842/46 686/874/46 670/875/46 +f 675/848/46 694/876/46 678/877/46 +f 672/878/47 687/858/47 671/845/47 +f 680/879/47 695/864/47 679/851/47 +f 673/880/44 688/881/44 672/878/44 +f 681/882/44 696/883/44 680/879/44 +f 674/884/45 689/885/45 673/880/45 +f 682/886/45 697/887/45 681/882/45 +f 671/845/46 690/888/46 674/889/46 +f 668/890/47 683/855/47 667/842/47 +f 679/851/46 698/891/46 682/892/46 +f 676/868/47 691/861/47 675/848/47 +f 669/871/44 684/893/44 668/890/44 +f 699/894/43 701/895/43 700/896/43 +f 705/897/42 703/898/42 704/899/42 +f 699/894/46 706/900/46 702/901/46 +f 701/895/44 704/902/44 700/896/44 +f 709/903/46 708/904/46 707/905/46 +f 712/906/44 713/907/44 711/908/44 +f 709/909/42 730/910/42 713/911/42 +f 709/909/42 714/912/42 710/913/42 +f 709/914/48 724/915/48 726/916/48 +f 708/904/43 711/917/43 707/905/43 +f 717/918/47 716/919/47 715/920/47 +f 720/921/45 721/922/45 719/923/45 +f 718/924/44 720/925/44 716/926/44 +f 717/927/42 722/928/42 718/929/42 +f 711/917/43 724/915/43 707/905/43 +f 716/919/43 719/930/43 715/920/43 +f 725/931/45 724/915/45 723/932/45 +f 728/933/47 729/934/47 727/935/47 +f 713/907/49 728/933/49 711/908/49 +f 725/936/42 730/910/42 726/937/42 +f 723/938/44 729/939/44 725/940/44 +f 724/915/43 727/941/43 723/932/43 +f 714/942/50 719/923/50 721/922/50 +f 708/904/43 719/930/43 712/943/43 +f 710/944/51 715/920/51 708/945/51 +f 721/946/42 710/913/42 714/912/42 +f 731/947/43 733/948/43 732/949/43 +f 737/950/42 735/951/42 736/952/42 +f 731/947/46 738/953/46 734/954/46 +f 733/948/44 736/955/44 732/949/44 +f 740/956/45 746/957/45 742/958/45 +f 741/959/47 743/960/47 739/961/47 +f 742/958/43 745/962/43 741/959/43 +f 739/961/42 744/963/42 740/964/42 +f 748/965/45 754/966/45 750/967/45 +f 749/968/47 751/969/47 747/970/47 +f 750/967/43 753/971/43 749/968/43 +f 747/970/42 752/972/42 748/973/42 +f 755/974/43 757/975/43 756/976/43 +f 761/977/42 759/978/42 760/979/42 +f 755/974/46 762/980/46 758/981/46 +f 757/975/44 760/982/44 756/976/44 +f 765/983/46 764/984/46 763/985/46 +f 768/986/44 769/987/44 767/988/44 +f 765/989/42 786/990/42 769/991/42 +f 765/989/42 770/992/42 766/993/42 +f 765/994/48 780/995/48 782/996/48 +f 764/984/43 767/997/43 763/985/43 +f 773/998/47 772/999/47 771/1000/47 +f 776/1001/45 777/1002/45 775/1003/45 +f 774/1004/44 776/1005/44 772/1006/44 +f 773/1007/42 778/1008/42 774/1009/42 +f 767/997/43 780/995/43 763/985/43 +f 772/999/43 775/1010/43 771/1000/43 +f 781/1011/45 780/995/45 779/1012/45 +f 784/1013/47 785/1014/47 783/1015/47 +f 769/987/49 784/1013/49 767/988/49 +f 781/1016/42 786/990/42 782/1017/42 +f 779/1018/44 785/1019/44 781/1020/44 +f 780/995/43 783/1021/43 779/1012/43 +f 770/1022/50 775/1003/50 777/1002/50 +f 764/984/43 775/1010/43 768/1023/43 +f 766/1024/51 771/1000/51 764/1025/51 +f 777/1026/42 766/993/42 770/992/42 +f 787/1027/43 789/1028/43 788/1029/43 +f 793/1030/42 791/1031/42 792/1032/42 +f 787/1027/46 794/1033/46 790/1034/46 +f 789/1028/44 792/1035/44 788/1029/44 +f 796/1036/45 802/1037/45 798/1038/45 +f 797/1039/47 799/1040/47 795/1041/47 +f 798/1038/43 801/1042/43 797/1039/43 +f 795/1041/42 800/1043/42 796/1044/42 +f 804/1045/45 810/1046/45 806/1047/45 +f 805/1048/47 807/1049/47 803/1050/47 +f 806/1047/43 809/1051/43 805/1048/43 +f 803/1050/42 808/1052/42 804/1053/42 +f 811/1054/43 813/1055/43 812/1056/43 +f 817/1057/42 815/1058/42 816/1059/42 +f 811/1054/46 818/1060/46 814/1061/46 +f 813/1055/44 816/1062/44 812/1056/44 +f 821/1063/46 820/1064/46 819/1065/46 +f 824/1066/44 825/1067/44 823/1068/44 +f 821/1069/42 842/1070/42 825/1071/42 +f 821/1069/42 826/1072/42 822/1073/42 +f 821/1074/48 836/1075/48 838/1076/48 +f 820/1064/43 823/1077/43 819/1065/43 +f 829/1078/47 828/1079/47 827/1080/47 +f 832/1081/45 833/1082/45 831/1083/45 +f 830/1084/44 832/1081/44 828/1085/44 +f 829/1086/42 834/1087/42 830/1088/42 +f 823/1077/43 836/1075/43 819/1065/43 +f 828/1079/43 831/1089/43 827/1080/43 +f 837/1090/45 836/1075/45 835/1091/45 +f 840/1092/47 841/1093/47 839/1094/47 +f 825/1067/49 840/1092/49 823/1068/49 +f 837/1095/42 842/1070/42 838/1096/42 +f 835/1097/44 841/1093/44 837/1098/44 +f 836/1075/43 839/1099/43 835/1091/43 +f 826/1100/50 831/1083/50 833/1082/50 +f 820/1064/43 831/1089/43 824/1101/43 +f 822/1102/51 827/1080/51 820/1103/51 +f 833/1104/42 822/1073/42 826/1072/42 +f 843/1105/43 845/1106/43 844/1107/43 +f 849/1108/42 847/1109/42 848/1110/42 +f 843/1105/46 850/1111/46 846/1112/46 +f 845/1106/44 848/1113/44 844/1107/44 +f 852/1114/45 858/1115/45 854/1116/45 +f 853/1117/47 855/1118/47 851/1119/47 +f 854/1116/43 857/1120/43 853/1117/43 +f 851/1119/42 856/1121/42 852/1122/42 +f 860/1123/45 866/1124/45 862/1125/45 +f 861/1126/47 863/1127/47 859/1128/47 +f 862/1125/43 865/1129/43 861/1126/43 +f 859/1128/42 864/1130/42 860/1131/42 +f 868/1132/46 869/1133/46 867/1134/46 +f 872/1135/46 873/1136/46 871/1137/46 +f 875/1138/46 878/1139/46 877/1140/46 +f 879/1141/46 882/1142/46 881/1143/46 +f 884/1144/46 885/1145/46 883/1146/46 +f 888/1147/46 889/1148/46 887/1149/46 +f 891/1150/46 894/1151/46 893/1152/46 +f 895/1153/46 898/1154/46 897/1155/46 +f 901/1156/44 900/1157/44 899/1158/44 +f 905/1159/44 904/1160/44 903/1161/44 +f 907/1162/44 910/1163/44 908/1164/44 +f 911/1165/44 914/1166/44 912/1167/44 +f 917/1168/44 916/1169/44 915/1170/44 +f 921/1171/44 920/1172/44 919/1173/44 +f 923/1174/44 926/1175/44 924/1176/44 +f 927/1177/44 930/1178/44 928/1179/44 +f 932/1180/46 933/1181/46 931/1182/46 +f 935/1183/46 938/1184/46 937/1185/46 +f 941/1186/44 940/1187/44 939/1188/44 +f 943/1189/44 946/1190/44 944/1191/44 +f 948/1192/45 949/1193/45 947/1194/45 +f 951/1195/45 954/1196/45 953/1197/45 +f 956/1198/45 957/1199/45 955/1200/45 +f 959/1201/45 962/1202/45 961/1203/45 +f 964/1204/45 965/1205/45 963/1206/45 +f 967/1207/45 970/1208/45 969/1209/45 +f 972/1210/45 973/1211/45 971/1212/45 +f 975/1213/45 978/1214/45 977/1215/45 +f 980/1216/45 981/1217/45 979/1218/45 +f 983/1219/45 986/1220/45 985/1221/45 +f 989/1222/47 988/1223/47 987/1224/47 +f 991/1225/47 994/1226/47 992/1227/47 +f 997/1228/47 996/1229/47 995/1230/47 +f 999/1231/47 1002/1232/47 1000/1233/47 +f 1005/1234/47 1004/1235/47 1003/1236/47 +f 1007/1237/47 1010/1238/47 1008/1239/47 +f 1013/1240/47 1012/1241/47 1011/1242/47 +f 1015/1243/47 1018/1244/47 1016/1245/47 +f 1021/1246/47 1020/1247/47 1019/1248/47 +f 1023/1249/47 1026/1250/47 1024/1251/47 +f 1029/1252/44 1028/1253/44 1027/1254/44 +f 1033/1255/44 1032/1256/44 1031/1257/44 +f 1035/1258/44 1038/1259/44 1036/1260/44 +f 1039/1261/44 1042/1262/44 1040/1263/44 +f 1045/1264/44 1044/1265/44 1043/1266/44 +f 1049/1267/44 1048/1268/44 1047/1269/44 +f 1051/1270/44 1054/1271/44 1052/1272/44 +f 1055/1273/44 1058/1274/44 1056/1275/44 +f 1060/1276/46 1061/1277/46 1059/1278/46 +f 1064/1279/46 1065/1280/46 1063/1281/46 +f 1067/1282/46 1070/1283/46 1069/1284/46 +f 1071/1285/46 1074/1286/46 1073/1287/46 +f 1076/1288/46 1077/1289/46 1075/1290/46 +f 1080/1291/46 1081/1292/46 1079/1293/46 +f 1083/1294/46 1086/1295/46 1085/1296/46 +f 1087/1297/46 1090/1298/46 1089/1299/46 +f 1093/1300/44 1092/1301/44 1091/1302/44 +f 1095/1303/44 1098/1304/44 1096/1305/44 +f 1100/1306/46 1101/1307/46 1099/1308/46 +f 1103/1309/46 1106/1310/46 1105/1311/46 +f 1109/1312/47 1108/1313/47 1107/1314/47 +f 1111/1315/47 1114/1316/47 1112/1317/47 +f 1117/1318/47 1116/1319/47 1115/1320/47 +f 1119/1321/47 1122/1322/47 1120/1323/47 +f 1125/1324/47 1124/1325/47 1123/1326/47 +f 1127/1327/47 1130/1328/47 1128/1329/47 +f 1133/1330/47 1132/1331/47 1131/1332/47 +f 1135/1333/47 1138/1334/47 1136/1335/47 +f 1141/1336/47 1140/1337/47 1139/1338/47 +f 1143/1339/47 1146/1340/47 1144/1341/47 +f 1148/1342/45 1149/1343/45 1147/1344/45 +f 1151/1345/45 1154/1346/45 1153/1347/45 +f 1156/1348/45 1157/1349/45 1155/1350/45 +f 1159/1351/45 1162/1352/45 1161/1353/45 +f 1164/1354/45 1165/1355/45 1163/1356/45 +f 1167/1357/45 1170/1358/45 1169/1359/45 +f 1172/1360/45 1173/1361/45 1171/1362/45 +f 1175/1363/45 1178/1364/45 1177/1365/45 +f 1180/1366/45 1181/1367/45 1179/1368/45 +f 1183/1369/45 1186/1370/45 1185/1371/45 +f 667/842/42 670/875/42 669/843/42 +f 671/845/42 674/889/42 673/846/42 +f 675/848/42 678/877/42 677/849/42 +f 679/851/42 682/892/42 681/852/42 +f 685/854/43 686/874/43 683/855/43 +f 689/857/43 690/888/43 687/858/43 +f 693/860/43 694/876/43 691/861/43 +f 697/863/43 698/891/43 695/864/43 +f 677/866/44 693/873/44 692/867/44 +f 670/869/45 686/1372/45 685/870/45 +f 678/872/45 694/1373/45 693/873/45 +f 667/842/46 683/855/46 686/874/46 +f 675/848/46 691/861/46 694/876/46 +f 672/878/47 688/881/47 687/858/47 +f 680/879/47 696/883/47 695/864/47 +f 673/880/44 689/885/44 688/881/44 +f 681/882/44 697/887/44 696/883/44 +f 674/884/45 690/1374/45 689/885/45 +f 682/886/45 698/1375/45 697/887/45 +f 671/845/46 687/858/46 690/888/46 +f 668/890/47 684/893/47 683/855/47 +f 679/851/46 695/864/46 698/891/46 +f 676/868/47 692/867/47 691/861/47 +f 669/871/44 685/870/44 684/893/44 +f 699/894/43 702/901/43 701/895/43 +f 705/897/42 706/900/42 703/898/42 +f 699/894/46 703/898/46 706/900/46 +f 701/895/44 705/1376/44 704/902/44 +f 709/903/46 710/1377/46 708/904/46 +f 712/906/44 714/942/44 713/907/44 +f 709/909/42 726/937/42 730/910/42 +f 709/909/42 713/911/42 714/912/42 +f 709/914/48 707/1378/48 724/915/48 +f 708/904/43 712/943/43 711/917/43 +f 717/918/47 718/1379/47 716/919/47 +f 720/921/45 722/1380/45 721/922/45 +f 718/924/44 722/1381/44 720/925/44 +f 717/927/42 721/946/42 722/928/42 +f 711/917/43 728/1382/43 724/915/43 +f 716/919/43 720/1383/43 719/930/43 +f 725/931/45 726/916/45 724/915/45 +f 728/933/47 730/1384/47 729/934/47 +f 713/907/49 730/1384/49 728/933/49 +f 725/936/42 729/1385/42 730/910/42 +f 723/938/44 727/1386/44 729/939/44 +f 724/915/43 728/1382/43 727/941/43 +f 714/942/50 712/906/50 719/923/50 +f 708/904/43 715/920/43 719/930/43 +f 710/944/51 717/918/51 715/920/51 +f 721/946/42 717/927/42 710/913/42 +f 731/947/43 734/954/43 733/948/43 +f 737/950/42 738/953/42 735/951/42 +f 731/947/46 735/951/46 738/953/46 +f 733/948/44 737/1387/44 736/955/44 +f 740/956/45 744/1388/45 746/957/45 +f 741/959/47 745/962/47 743/960/47 +f 742/958/43 746/957/43 745/962/43 +f 739/961/42 743/960/42 744/963/42 +f 748/965/45 752/1389/45 754/966/45 +f 749/968/47 753/971/47 751/969/47 +f 750/967/43 754/966/43 753/971/43 +f 747/970/42 751/969/42 752/972/42 +f 755/974/43 758/981/43 757/975/43 +f 761/977/42 762/980/42 759/978/42 +f 755/974/46 759/978/46 762/980/46 +f 757/975/44 761/1390/44 760/982/44 +f 765/983/46 766/1391/46 764/984/46 +f 768/986/44 770/1022/44 769/987/44 +f 765/989/42 782/1017/42 786/990/42 +f 765/989/42 769/991/42 770/992/42 +f 765/994/48 763/1392/48 780/995/48 +f 764/984/43 768/1023/43 767/997/43 +f 773/998/47 774/1393/47 772/999/47 +f 776/1001/45 778/1394/45 777/1002/45 +f 774/1004/44 778/1395/44 776/1005/44 +f 773/1007/42 777/1026/42 778/1008/42 +f 767/997/43 784/1396/43 780/995/43 +f 772/999/43 776/1397/43 775/1010/43 +f 781/1011/45 782/996/45 780/995/45 +f 784/1013/47 786/1398/47 785/1014/47 +f 769/987/49 786/1398/49 784/1013/49 +f 781/1016/42 785/1399/42 786/990/42 +f 779/1018/44 783/1400/44 785/1019/44 +f 780/995/43 784/1396/43 783/1021/43 +f 770/1022/50 768/986/50 775/1003/50 +f 764/984/43 771/1000/43 775/1010/43 +f 766/1024/51 773/998/51 771/1000/51 +f 777/1026/42 773/1007/42 766/993/42 +f 787/1027/43 790/1034/43 789/1028/43 +f 793/1030/42 794/1033/42 791/1031/42 +f 787/1027/46 791/1031/46 794/1033/46 +f 789/1028/44 793/1401/44 792/1035/44 +f 796/1036/45 800/1402/45 802/1037/45 +f 797/1039/47 801/1042/47 799/1040/47 +f 798/1038/43 802/1037/43 801/1042/43 +f 795/1041/42 799/1040/42 800/1043/42 +f 804/1045/45 808/1403/45 810/1046/45 +f 805/1048/47 809/1051/47 807/1049/47 +f 806/1047/43 810/1046/43 809/1051/43 +f 803/1050/42 807/1049/42 808/1052/42 +f 811/1054/43 814/1061/43 813/1055/43 +f 817/1057/42 818/1060/42 815/1058/42 +f 811/1054/46 815/1058/46 818/1060/46 +f 813/1055/44 817/1404/44 816/1062/44 +f 821/1063/46 822/1405/46 820/1064/46 +f 824/1066/44 826/1100/44 825/1067/44 +f 821/1069/42 838/1096/42 842/1070/42 +f 821/1069/42 825/1071/42 826/1072/42 +f 821/1074/48 819/1406/48 836/1075/48 +f 820/1064/43 824/1101/43 823/1077/43 +f 829/1078/47 830/1407/47 828/1079/47 +f 832/1081/45 834/1408/45 833/1082/45 +f 830/1084/44 834/1408/44 832/1081/44 +f 829/1086/42 833/1104/42 834/1087/42 +f 823/1077/43 840/1409/43 836/1075/43 +f 828/1079/43 832/1410/43 831/1089/43 +f 837/1090/45 838/1076/45 836/1075/45 +f 840/1092/47 842/1411/47 841/1093/47 +f 825/1067/49 842/1411/49 840/1092/49 +f 837/1095/42 841/1412/42 842/1070/42 +f 835/1097/44 839/1094/44 841/1093/44 +f 836/1075/43 840/1409/43 839/1099/43 +f 826/1100/50 824/1066/50 831/1083/50 +f 820/1064/43 827/1080/43 831/1089/43 +f 822/1102/51 829/1078/51 827/1080/51 +f 833/1104/42 829/1086/42 822/1073/42 +f 843/1105/43 846/1112/43 845/1106/43 +f 849/1108/42 850/1111/42 847/1109/42 +f 843/1105/46 847/1109/46 850/1111/46 +f 845/1106/44 849/1413/44 848/1113/44 +f 852/1114/45 856/1414/45 858/1115/45 +f 853/1117/47 857/1120/47 855/1118/47 +f 854/1116/43 858/1115/43 857/1120/43 +f 851/1119/42 855/1118/42 856/1121/42 +f 860/1123/45 864/1415/45 866/1124/45 +f 861/1126/47 865/1129/47 863/1127/47 +f 862/1125/43 866/1124/43 865/1129/43 +f 859/1128/42 863/1127/42 864/1130/42 +f 868/1132/46 870/1416/46 869/1133/46 +f 872/1135/46 874/1417/46 873/1136/46 +f 875/1138/46 876/1418/46 878/1139/46 +f 879/1141/46 880/1419/46 882/1142/46 +f 884/1144/46 886/1420/46 885/1145/46 +f 888/1147/46 890/1421/46 889/1148/46 +f 891/1150/46 892/1422/46 894/1151/46 +f 895/1153/46 896/1423/46 898/1154/46 +f 901/1156/44 902/1424/44 900/1157/44 +f 905/1159/44 906/1425/44 904/1160/44 +f 907/1162/44 909/1426/44 910/1163/44 +f 911/1165/44 913/1427/44 914/1166/44 +f 917/1168/44 918/1428/44 916/1169/44 +f 921/1171/44 922/1429/44 920/1172/44 +f 923/1174/44 925/1430/44 926/1175/44 +f 927/1177/44 929/1431/44 930/1178/44 +f 932/1180/46 934/1432/46 933/1181/46 +f 935/1183/46 936/1433/46 938/1184/46 +f 941/1186/44 942/1434/44 940/1187/44 +f 943/1189/44 945/1435/44 946/1190/44 +f 948/1192/45 950/1436/45 949/1193/45 +f 951/1195/45 952/1437/45 954/1196/45 +f 956/1198/45 958/1438/45 957/1199/45 +f 959/1201/45 960/1439/45 962/1202/45 +f 964/1204/45 966/1440/45 965/1205/45 +f 967/1207/45 968/1441/45 970/1208/45 +f 972/1210/45 974/1442/45 973/1211/45 +f 975/1213/45 976/1443/45 978/1214/45 +f 980/1216/45 982/1444/45 981/1217/45 +f 983/1219/45 984/1445/45 986/1220/45 +f 989/1222/47 990/1446/47 988/1223/47 +f 991/1225/47 993/1447/47 994/1226/47 +f 997/1228/47 998/1448/47 996/1229/47 +f 999/1231/47 1001/1449/47 1002/1232/47 +f 1005/1234/47 1006/1450/47 1004/1235/47 +f 1007/1237/47 1009/1451/47 1010/1238/47 +f 1013/1240/47 1014/1452/47 1012/1241/47 +f 1015/1243/47 1017/1453/47 1018/1244/47 +f 1021/1246/47 1022/1454/47 1020/1247/47 +f 1023/1249/47 1025/1455/47 1026/1250/47 +f 1029/1252/44 1030/1456/44 1028/1253/44 +f 1033/1255/44 1034/1457/44 1032/1256/44 +f 1035/1258/44 1037/1458/44 1038/1259/44 +f 1039/1261/44 1041/1459/44 1042/1262/44 +f 1045/1264/44 1046/1460/44 1044/1265/44 +f 1049/1267/44 1050/1461/44 1048/1268/44 +f 1051/1270/44 1053/1462/44 1054/1271/44 +f 1055/1273/44 1057/1463/44 1058/1274/44 +f 1060/1276/46 1062/1464/46 1061/1277/46 +f 1064/1279/46 1066/1465/46 1065/1280/46 +f 1067/1282/46 1068/1466/46 1070/1283/46 +f 1071/1285/46 1072/1467/46 1074/1286/46 +f 1076/1288/46 1078/1468/46 1077/1289/46 +f 1080/1291/46 1082/1469/46 1081/1292/46 +f 1083/1294/46 1084/1470/46 1086/1295/46 +f 1087/1297/46 1088/1471/46 1090/1298/46 +f 1093/1300/44 1094/1472/44 1092/1301/44 +f 1095/1303/44 1097/1473/44 1098/1304/44 +f 1100/1306/46 1102/1474/46 1101/1307/46 +f 1103/1309/46 1104/1475/46 1106/1310/46 +f 1109/1312/47 1110/1476/47 1108/1313/47 +f 1111/1315/47 1113/1477/47 1114/1316/47 +f 1117/1318/47 1118/1478/47 1116/1319/47 +f 1119/1321/47 1121/1479/47 1122/1322/47 +f 1125/1324/47 1126/1480/47 1124/1325/47 +f 1127/1327/47 1129/1481/47 1130/1328/47 +f 1133/1330/47 1134/1482/47 1132/1331/47 +f 1135/1333/47 1137/1483/47 1138/1334/47 +f 1141/1336/47 1142/1484/47 1140/1337/47 +f 1143/1339/47 1145/1485/47 1146/1340/47 +f 1148/1342/45 1150/1486/45 1149/1343/45 +f 1151/1345/45 1152/1487/45 1154/1346/45 +f 1156/1348/45 1158/1488/45 1157/1349/45 +f 1159/1351/45 1160/1489/45 1162/1352/45 +f 1164/1354/45 1166/1490/45 1165/1355/45 +f 1167/1357/45 1168/1491/45 1170/1358/45 +f 1172/1360/45 1174/1492/45 1173/1361/45 +f 1175/1363/45 1176/1493/45 1178/1364/45 +f 1180/1366/45 1182/1494/45 1181/1367/45 +f 1183/1369/45 1184/1495/45 1186/1370/45 o Atlas_Pad v -1.500000 2.000000 1.500000 v 1.500000 2.000000 1.500000 @@ -5511,752 +5515,752 @@ vn 0.6428 -0.7660 0.0000 vn -0.4545 0.7660 -0.4545 vn 0.4545 -0.7660 0.4545 s off -f 1214/1492/52 1211/1493/52 1212/1494/52 -f 1187/1495/52 1192/1496/52 1188/1497/52 -f 1197/1498/53 1202/1499/53 1198/1500/53 -f 1192/1496/54 1198/1500/54 1194/1501/54 -f 1193/1502/55 1196/1503/55 1191/1504/55 -f 1194/1505/56 1195/1506/56 1193/1507/56 -f 1191/1508/57 1197/1509/57 1192/1510/57 -f 1202/1511/56 1203/1512/56 1201/1513/56 -f 1198/1514/53 1201/1513/53 1195/1506/53 -f 1195/1515/53 1199/1516/53 1196/1503/53 -f 1196/1517/53 1200/1518/53 1197/1509/53 -f 1189/1519/52 1191/1520/52 1187/1495/52 -f 1199/1521/57 1205/1522/57 1200/1518/57 -f 1200/1523/54 1206/1524/54 1202/1499/54 -f 1201/1525/55 1204/1526/55 1199/1516/55 -f 1190/1527/52 1193/1528/52 1189/1519/52 -f 1188/1497/52 1194/1501/52 1190/1527/52 -f 1208/1529/58 1187/1495/58 1188/1497/58 -f 1207/1530/59 1189/1519/59 1187/1495/59 -f 1209/1531/60 1190/1527/60 1189/1519/60 -f 1210/1532/61 1188/1497/61 1190/1527/61 -f 1223/1533/56 1217/1534/56 1222/1535/56 -f 1216/1536/52 1221/1537/52 1215/1538/52 -f 1224/1539/54 1216/1536/54 1219/1540/54 -f 1215/1538/57 1219/1541/57 1216/1536/57 -f 1222/1535/58 1224/1539/58 1223/1533/58 -f 1222/1542/55 1217/1543/55 1218/1544/55 -f 1237/1545/56 1236/1546/56 1235/1547/56 -f 1233/1548/55 1238/1549/55 1232/1550/55 -f 1231/1551/57 1233/1548/57 1232/1552/57 -f 1225/1553/54 1230/1554/54 1231/1555/54 -f 1239/1556/52 1237/1545/52 1233/1548/52 -f 1274/1557/53 1273/1558/53 1272/1559/53 -f 1273/1560/57 1277/1561/57 1272/1562/57 -f 1278/1563/52 1276/1564/52 1277/1561/52 -f 1274/1565/56 1279/1566/56 1275/1567/56 -f 1280/1568/57 1283/1569/57 1282/1570/57 -f 1272/1571/55 1276/1564/55 1274/1572/55 -f 1275/1573/54 1278/1563/54 1273/1574/54 -f 1249/1575/57 1265/1576/57 1248/1577/57 -f 1243/1578/54 1258/1579/54 1241/1580/54 -f 1251/1581/54 1266/1582/54 1249/1575/54 -f 1242/1583/56 1259/1584/56 1243/1578/56 -f 1250/1585/56 1267/1586/56 1251/1581/56 -f 1244/1587/55 1260/1588/55 1246/1589/55 -f 1252/1590/55 1268/1591/55 1254/1592/55 -f 1245/1593/57 1261/1594/57 1244/1587/57 -f 1253/1595/57 1269/1596/57 1252/1590/57 -f 1247/1597/54 1262/1598/54 1245/1593/54 -f 1255/1599/54 1270/1600/54 1253/1595/54 -f 1246/1589/56 1263/1601/56 1247/1602/56 -f 1240/1603/55 1256/1604/55 1242/1583/55 -f 1254/1605/56 1271/1606/56 1255/1599/56 -f 1248/1607/55 1264/1608/55 1250/1585/55 -f 1241/1609/57 1257/1610/57 1240/1603/57 -f 1284/1611/56 1287/1612/56 1285/1613/56 -f 1291/1614/54 1288/1615/54 1290/1616/54 -f 1295/1617/55 1292/1618/55 1293/1619/55 -f 1330/1620/53 1329/1621/53 1328/1622/53 -f 1329/1623/57 1333/1624/57 1328/1625/57 -f 1334/1626/52 1332/1627/52 1333/1624/52 -f 1330/1628/56 1335/1629/56 1331/1630/56 -f 1336/1631/57 1339/1632/57 1338/1633/57 -f 1328/1634/55 1332/1627/55 1330/1635/55 -f 1331/1636/54 1334/1626/54 1329/1637/54 -f 1305/1638/57 1321/1639/57 1304/1640/57 -f 1299/1641/54 1314/1642/54 1297/1643/54 -f 1307/1644/54 1322/1645/54 1305/1638/54 -f 1298/1646/56 1315/1647/56 1299/1641/56 -f 1306/1648/56 1323/1649/56 1307/1644/56 -f 1300/1650/55 1316/1651/55 1302/1652/55 -f 1308/1653/55 1324/1654/55 1310/1655/55 -f 1301/1656/57 1317/1657/57 1300/1650/57 -f 1309/1658/57 1325/1659/57 1308/1653/57 -f 1303/1660/54 1318/1661/54 1301/1656/54 -f 1311/1662/54 1326/1663/54 1309/1658/54 -f 1302/1652/56 1319/1664/56 1303/1665/56 -f 1296/1666/55 1312/1667/55 1298/1646/55 -f 1310/1668/56 1327/1669/56 1311/1662/56 -f 1304/1670/55 1320/1671/55 1306/1648/55 -f 1297/1672/57 1313/1673/57 1296/1666/57 -f 1340/1674/56 1343/1675/56 1341/1676/56 -f 1347/1677/54 1344/1678/54 1346/1679/54 -f 1351/1680/55 1348/1681/55 1349/1682/55 -f 1386/1683/53 1385/1684/53 1384/1685/53 -f 1385/1686/57 1389/1687/57 1384/1688/57 -f 1390/1689/52 1388/1690/52 1389/1687/52 -f 1386/1691/56 1391/1692/56 1387/1693/56 -f 1392/1694/57 1395/1695/57 1394/1696/57 -f 1384/1697/55 1388/1690/55 1386/1698/55 -f 1387/1699/54 1390/1689/54 1385/1700/54 -f 1361/1701/57 1377/1702/57 1360/1703/57 -f 1355/1704/54 1370/1705/54 1353/1706/54 -f 1363/1707/54 1378/1708/54 1361/1701/54 -f 1354/1709/56 1371/1710/56 1355/1704/56 -f 1362/1711/56 1379/1712/56 1363/1707/56 -f 1356/1713/55 1372/1714/55 1358/1715/55 -f 1364/1716/55 1380/1717/55 1366/1718/55 -f 1357/1719/57 1373/1720/57 1356/1713/57 -f 1365/1721/57 1381/1722/57 1364/1716/57 -f 1359/1723/54 1374/1724/54 1357/1719/54 -f 1367/1725/54 1382/1726/54 1365/1721/54 -f 1358/1715/56 1375/1727/56 1359/1728/56 -f 1352/1729/55 1368/1730/55 1354/1709/55 -f 1366/1731/56 1383/1732/56 1367/1725/56 -f 1360/1733/55 1376/1734/55 1362/1711/55 -f 1353/1735/57 1369/1736/57 1352/1729/57 -f 1396/1737/56 1399/1738/56 1397/1739/56 -f 1403/1740/54 1400/1741/54 1402/1742/54 -f 1407/1743/55 1404/1744/55 1405/1745/55 -f 1442/1746/53 1441/1747/53 1440/1748/53 -f 1441/1749/57 1445/1750/57 1440/1751/57 -f 1446/1752/52 1444/1753/52 1445/1750/52 -f 1442/1754/56 1447/1755/56 1443/1756/56 -f 1448/1757/57 1451/1758/57 1450/1759/57 -f 1440/1760/55 1444/1753/55 1442/1761/55 -f 1443/1762/54 1446/1752/54 1441/1763/54 -f 1417/1764/57 1433/1765/57 1416/1766/57 -f 1411/1767/54 1426/1768/54 1409/1769/54 -f 1419/1770/54 1434/1771/54 1417/1764/54 -f 1410/1772/56 1427/1773/56 1411/1767/56 -f 1418/1774/56 1435/1775/56 1419/1770/56 -f 1412/1776/55 1428/1777/55 1414/1778/55 -f 1420/1779/55 1436/1780/55 1422/1781/55 -f 1413/1782/57 1429/1783/57 1412/1776/57 -f 1421/1784/57 1437/1785/57 1420/1779/57 -f 1415/1786/54 1430/1787/54 1413/1782/54 -f 1423/1788/54 1438/1789/54 1421/1784/54 -f 1414/1778/56 1431/1790/56 1415/1791/56 -f 1408/1792/55 1424/1793/55 1410/1772/55 -f 1422/1794/56 1439/1795/56 1423/1788/56 -f 1416/1796/55 1432/1797/55 1418/1774/55 -f 1409/1798/57 1425/1799/57 1408/1792/57 -f 1452/1800/56 1455/1801/56 1453/1802/56 -f 1459/1803/54 1456/1804/54 1458/1805/54 -f 1463/1806/55 1460/1807/55 1461/1808/55 -f 1469/1809/62 1464/1810/62 1466/1811/62 -f 1468/1812/63 1467/1813/63 1465/1814/63 -f 1493/1815/53 1472/1816/53 1487/1817/53 -f 1470/1818/64 1472/1819/64 1473/1820/64 -f 1484/1821/52 1470/1818/52 1483/1822/52 -f 1483/1822/65 1473/1823/65 1493/1824/65 -f 1475/1825/53 1488/1826/53 1490/1827/53 -f 1480/1828/52 1474/1829/52 1479/1830/52 -f 1475/1831/66 1476/1832/66 1477/1833/66 -f 1479/1830/67 1475/1834/67 1490/1835/67 -f 1487/1836/55 1485/1837/55 1486/1838/55 -f 1488/1839/54 1481/1840/54 1489/1841/54 -f 1487/1842/67 1471/1843/67 1484/1821/67 -f 1488/1844/65 1476/1832/65 1480/1828/65 -f 1492/1845/57 1483/1846/57 1493/1847/57 -f 1491/1848/56 1479/1849/56 1490/1850/56 -f 1488/1851/53 1492/1852/53 1487/1853/53 -f 1482/1854/52 1480/1855/52 1478/1856/52 -f 1489/1841/65 1482/1857/65 1492/1858/65 -f 1486/1838/67 1478/1859/67 1491/1860/67 -f 1549/1861/67 1557/1862/67 1544/1863/67 -f 1505/1864/56 1527/1865/56 1503/1866/56 -f 1546/1867/65 1553/1868/65 1543/1869/65 -f 1553/1870/52 1555/1871/52 1557/1872/52 -f 1547/1873/53 1543/1874/53 1548/1875/53 -f 1500/1876/56 1511/1877/56 1501/1878/56 -f 1506/1879/57 1533/1880/57 1508/1881/57 -f 1508/1881/55 1532/1882/55 1509/1883/55 -f 1509/1884/56 1531/1885/56 1507/1886/56 -f 1495/1887/57 1517/1888/57 1494/1889/57 -f 1494/1889/55 1514/1890/55 1496/1891/55 -f 1503/1866/54 1526/1892/54 1502/1893/54 -f 1497/1894/54 1516/1895/54 1495/1887/54 -f 1496/1896/56 1515/1897/56 1497/1894/56 -f 1498/1898/55 1510/1899/55 1500/1900/55 -f 1504/1901/55 1528/1902/55 1505/1903/55 -f 1501/1878/54 1512/1904/54 1499/1905/54 -f 1499/1905/57 1513/1906/57 1498/1898/57 -f 1502/1893/57 1529/1907/57 1504/1901/57 -f 1507/1886/54 1530/1908/54 1506/1879/54 -f 1539/1909/67 1518/1910/67 1523/1911/67 -f 1540/1912/65 1521/1913/65 1524/1914/65 -f 1520/1915/64 1538/1916/64 1522/1917/64 -f 1519/1918/66 1541/1919/66 1525/1920/66 -f 1544/1921/56 1556/1922/56 1545/1923/56 -f 1543/1924/57 1552/1925/57 1542/1926/57 -f 1547/1927/65 1575/1928/65 1555/1929/65 -f 1548/1930/67 1580/1931/67 1551/1932/67 -f 1547/1933/54 1554/1934/54 1546/1867/54 -f 1548/1935/55 1550/1936/55 1549/1861/55 -f 1563/1937/53 1561/1938/53 1559/1939/53 -f 1569/1940/52 1571/1941/52 1573/1942/52 -f 1562/1943/65 1569/1944/65 1561/1945/65 -f 1558/1946/67 1573/1947/67 1565/1948/67 -f 1565/1949/56 1572/1950/56 1564/1951/56 -f 1561/1952/57 1568/1953/57 1560/1954/57 -f 1564/1955/66 1571/1941/66 1563/1956/66 -f 1560/1957/64 1567/1958/64 1559/1959/64 -f 1563/1956/54 1570/1960/54 1562/1943/54 -f 1559/1959/55 1566/1961/55 1558/1946/55 -f 1556/1962/67 1576/1963/67 1545/1964/67 -f 1576/1965/66 1575/1928/66 1574/1966/66 -f 1555/1929/52 1577/1967/52 1556/1962/52 -f 1576/1968/53 1547/1969/53 1545/1970/53 -f 1552/1971/65 1578/1972/65 1542/1973/65 -f 1551/1932/52 1581/1974/52 1552/1971/52 -f 1581/1974/64 1579/1975/64 1578/1976/64 -f 1542/1977/53 1579/1978/53 1548/1979/53 -f 1583/1980/54 1584/1981/54 1582/1982/54 -f 1586/1983/55 1588/1984/55 1587/1985/55 -f 1585/1986/56 1586/1983/56 1584/1981/56 -f 1582/1982/57 1588/1987/57 1583/1980/57 -f 1583/1980/53 1589/1988/53 1585/1986/53 -f 1584/1981/52 1587/1989/52 1582/1982/52 -f 1596/1990/52 1594/1991/52 1595/1992/52 -f 1593/1993/54 1596/1990/54 1591/1994/54 -f 1590/1995/55 1594/1991/55 1592/1996/55 -f 1592/1997/56 1597/1998/56 1593/1999/56 -f 1591/2000/57 1595/1992/57 1590/2001/57 -f 1606/2002/56 1601/2003/56 1600/2004/56 -f 1601/2003/68 1608/2005/68 1599/2006/68 -f 1603/2007/55 1610/2008/55 1613/2009/55 -f 1608/2005/57 1598/2010/57 1599/2006/57 -f 1603/2007/69 1612/2011/69 1602/2012/69 -f 1604/2013/70 1610/2014/70 1605/2015/70 -f 1607/2016/71 1600/2004/71 1598/2017/71 -f 1602/2012/54 1611/2018/54 1604/2013/54 -f 1615/2019/54 1621/2020/54 1620/2021/54 -f 1614/2022/55 1618/2023/55 1616/2024/55 -f 1616/2024/72 1621/2020/72 1617/2025/72 -f 1615/2019/73 1619/2026/73 1614/2027/73 -f 1624/2028/74 1627/2029/74 1626/2030/74 -f 1622/2031/65 1626/2030/65 1629/2032/65 -f 1623/2033/75 1629/2032/75 1628/2034/75 -f 1625/2035/67 1628/2034/67 1627/2036/67 -f 1717/2037/66 1718/2038/66 1716/2039/66 -f 1635/2040/76 1632/2041/76 1630/2042/76 -f 1634/2043/77 1631/2044/77 1633/2045/77 -f 1636/2046/65 1649/2047/65 1641/2048/65 -f 1639/2049/67 1650/2050/67 1642/2051/67 -f 1648/2052/66 1638/2053/66 1640/2054/66 -f 1651/2055/64 1637/2056/64 1643/2057/64 -f 1655/2058/56 1652/2059/56 1654/2060/56 -f 1659/2061/57 1656/2062/57 1657/2063/57 -f 1660/2064/55 1663/2065/55 1662/2066/55 -f 1664/2067/54 1667/2068/54 1665/2069/54 -f 1671/2070/56 1668/2071/56 1670/2072/56 -f 1675/2073/57 1672/2074/57 1673/2075/57 -f 1676/2076/55 1679/2077/55 1678/2078/55 -f 1680/2079/54 1683/2080/54 1681/2081/54 -f 1687/2082/56 1684/2083/56 1686/2084/56 -f 1691/2085/57 1688/2086/57 1689/2087/57 -f 1692/2088/55 1695/2089/55 1694/2090/55 -f 1696/2091/54 1699/2092/54 1697/2093/54 -f 1703/2094/56 1700/2095/56 1702/2096/56 -f 1707/2097/57 1704/2098/57 1705/2099/57 -f 1708/2100/55 1711/2101/55 1710/2102/55 -f 1712/2103/54 1715/2104/54 1713/2105/54 -f 1720/2106/64 1722/2107/64 1721/2108/64 -f 1719/2109/67 1720/2106/67 1718/2038/67 -f 1716/2039/65 1722/2110/65 1717/2037/65 -f 1717/2037/53 1723/2111/53 1719/2109/53 -f 1718/2038/52 1721/2112/52 1716/2039/52 -f 1730/2113/52 1728/2114/52 1729/2115/52 -f 1727/2116/66 1730/2113/66 1725/2117/66 -f 1724/2118/64 1728/2114/64 1726/2119/64 -f 1726/2120/67 1731/2121/67 1727/2122/67 -f 1725/2123/65 1729/2115/65 1724/2124/65 -f 1740/2125/67 1735/2126/67 1734/2127/67 -f 1735/2126/78 1742/2128/78 1733/2129/78 -f 1737/2130/64 1744/2131/64 1747/2132/64 -f 1742/2128/65 1732/2133/65 1733/2129/65 -f 1737/2130/79 1746/2134/79 1736/2135/79 -f 1738/2136/80 1744/2137/80 1739/2138/80 -f 1741/2139/81 1734/2127/81 1732/2140/81 -f 1736/2135/66 1745/2141/66 1738/2136/66 -f 1749/2142/66 1755/2143/66 1754/2144/66 -f 1748/2145/64 1752/2146/64 1750/2147/64 -f 1750/2147/82 1755/2143/82 1751/2148/82 -f 1749/2142/83 1753/2149/83 1748/2150/83 -f 1757/2151/65 1758/2152/65 1756/2153/65 -f 1760/2154/67 1762/2155/67 1761/2156/67 -f 1759/2157/66 1760/2154/66 1758/2152/66 -f 1756/2153/64 1762/2158/64 1757/2151/64 -f 1757/2151/53 1763/2159/53 1759/2157/53 -f 1756/2153/52 1760/2160/52 1761/2161/52 -f 1770/2162/52 1768/2163/52 1769/2164/52 -f 1767/2165/65 1770/2162/65 1765/2166/65 -f 1764/2167/67 1768/2163/67 1766/2168/67 -f 1766/2169/66 1771/2170/66 1767/2171/66 -f 1765/2172/64 1769/2164/64 1764/2173/64 -f 1780/2174/66 1775/2175/66 1774/2176/66 -f 1775/2175/84 1782/2177/84 1773/2178/84 -f 1777/2179/67 1784/2180/67 1787/2181/67 -f 1782/2177/64 1772/2182/64 1773/2178/64 -f 1777/2179/85 1786/2183/85 1776/2184/85 -f 1778/2185/86 1784/2186/86 1779/2187/86 -f 1781/2188/87 1774/2176/87 1772/2189/87 -f 1776/2184/65 1785/2190/65 1778/2185/65 -f 1789/2191/65 1795/2192/65 1794/2193/65 -f 1788/2194/67 1792/2195/67 1790/2196/67 -f 1791/2197/88 1792/2195/88 1795/2192/88 -f 1789/2191/89 1793/2198/89 1788/2199/89 -f 1797/2200/55 1798/2201/55 1796/2202/55 -f 1800/2203/54 1802/2204/54 1801/2205/54 -f 1799/2206/57 1800/2203/57 1798/2201/57 -f 1796/2202/56 1802/2207/56 1797/2200/56 -f 1797/2200/53 1803/2208/53 1799/2206/53 -f 1798/2201/52 1801/2209/52 1796/2202/52 -f 1810/2210/52 1808/2211/52 1809/2212/52 -f 1807/2213/55 1810/2210/55 1805/2214/55 -f 1804/2215/54 1808/2211/54 1806/2216/54 -f 1806/2217/57 1811/2218/57 1807/2219/57 -f 1805/2220/56 1809/2212/56 1804/2221/56 -f 1820/2222/57 1815/2223/57 1814/2224/57 -f 1815/2223/90 1822/2225/90 1813/2226/90 -f 1817/2227/54 1824/2228/54 1827/2229/54 -f 1822/2225/56 1812/2230/56 1813/2226/56 -f 1817/2227/73 1826/2231/73 1816/2232/73 -f 1818/2233/72 1824/2234/72 1819/2235/72 -f 1812/2236/91 1820/2222/91 1814/2224/91 -f 1816/2232/55 1825/2237/55 1818/2233/55 -f 1829/2238/55 1835/2239/55 1834/2240/55 -f 1828/2241/54 1832/2242/54 1830/2243/54 -f 1830/2243/70 1835/2239/70 1831/2244/70 -f 1829/2238/69 1833/2245/69 1828/2246/69 -f 1837/2247/67 1838/2248/67 1836/2249/67 -f 1840/2250/65 1842/2251/65 1841/2252/65 -f 1839/2253/64 1840/2250/64 1838/2248/64 -f 1836/2249/66 1842/2254/66 1837/2247/66 -f 1837/2247/53 1843/2255/53 1839/2253/53 -f 1836/2249/52 1840/2256/52 1841/2257/52 -f 1850/2258/52 1848/2259/52 1849/2260/52 -f 1847/2261/67 1850/2258/67 1845/2262/67 -f 1844/2263/65 1848/2259/65 1846/2264/65 -f 1846/2265/64 1851/2266/64 1847/2267/64 -f 1845/2268/66 1849/2260/66 1844/2269/66 -f 1860/2270/64 1855/2271/64 1854/2272/64 -f 1855/2271/92 1862/2273/92 1853/2274/92 -f 1857/2275/65 1864/2276/65 1867/2277/65 -f 1862/2273/66 1852/2278/66 1853/2274/66 -f 1857/2275/89 1866/2279/89 1856/2280/89 -f 1858/2281/88 1864/2282/88 1859/2283/88 -f 1852/2284/93 1860/2270/93 1854/2272/93 -f 1856/2280/67 1865/2285/67 1858/2281/67 -f 1869/2286/67 1875/2287/67 1874/2288/67 -f 1868/2289/65 1872/2290/65 1870/2291/65 -f 1871/2292/86 1872/2290/86 1875/2287/86 -f 1869/2286/85 1873/2293/85 1868/2294/85 -f 1877/2295/64 1878/2296/64 1876/2297/64 -f 1880/2298/66 1882/2299/66 1881/2300/66 -f 1879/2301/65 1880/2298/65 1878/2296/65 -f 1876/2297/67 1882/2302/67 1877/2295/67 -f 1877/2295/53 1883/2303/53 1879/2301/53 -f 1878/2296/52 1881/2304/52 1876/2297/52 -f 1885/2305/66 1888/2306/66 1891/2307/66 -f 1885/2305/83 1890/2308/83 1884/2309/83 -f 1886/2310/82 1888/2311/82 1887/2312/82 -f 1884/2309/64 1889/2313/64 1886/2310/64 -f 1893/2314/64 1899/2315/64 1898/2316/64 -f 1892/2317/66 1896/2318/66 1894/2319/66 -f 1894/2319/80 1899/2315/80 1895/2320/80 -f 1893/2314/79 1897/2321/79 1892/2322/79 -f 1214/1492/52 1213/2323/52 1211/1493/52 -f 1187/1495/52 1191/1520/52 1192/1496/52 -f 1197/1498/53 1200/1523/53 1202/1499/53 -f 1192/1496/54 1197/1498/54 1198/1500/54 -f 1193/1502/55 1195/1515/55 1196/1503/55 -f 1194/1505/56 1198/1514/56 1195/1506/56 -f 1191/1508/57 1196/1517/57 1197/1509/57 -f 1202/1511/56 1206/2324/56 1203/1512/56 -f 1198/1514/53 1202/1511/53 1201/1513/53 -f 1195/1515/53 1201/1525/53 1199/1516/53 -f 1196/1517/53 1199/1521/53 1200/1518/53 -f 1189/1519/52 1193/1528/52 1191/1520/52 -f 1199/1521/57 1204/2325/57 1205/1522/57 -f 1200/1523/54 1205/2326/54 1206/1524/54 -f 1201/1525/55 1203/2327/55 1204/1526/55 -f 1190/1527/52 1194/1501/52 1193/1528/52 -f 1188/1497/52 1192/1496/52 1194/1501/52 -f 1208/1529/58 1207/1530/58 1187/1495/58 -f 1207/1530/59 1209/1531/59 1189/1519/59 -f 1209/1531/60 1210/1532/60 1190/1527/60 -f 1210/1532/61 1208/1529/61 1188/1497/61 -f 1223/1533/56 1220/2328/56 1217/1534/56 -f 1216/1536/52 1224/1539/52 1221/1537/52 -f 1220/2329/54 1223/2330/54 1219/1540/54 -f 1223/2330/54 1224/1539/54 1219/1540/54 -f 1215/1538/57 1218/2331/57 1219/1541/57 -f 1222/1535/58 1221/1537/58 1224/1539/58 -f 1218/1544/55 1215/1538/55 1221/1537/55 -f 1221/1537/55 1222/1542/55 1218/1544/55 -f 1235/1547/56 1226/2332/56 1234/2333/56 -f 1234/2333/56 1238/2334/56 1235/1547/56 -f 1238/2334/56 1237/1545/56 1235/1547/56 -f 1233/1548/55 1237/1545/55 1238/1549/55 -f 1231/1551/57 1230/1554/57 1233/1548/57 -f 1231/1555/54 1227/2335/54 1225/1553/54 -f 1227/2335/54 1228/2336/54 1225/1553/54 -f 1225/1553/54 1229/2337/54 1230/1554/54 -f 1230/1554/52 1229/2337/52 1239/1556/52 -f 1239/1556/52 1236/1546/52 1237/1545/52 -f 1233/1548/52 1230/1554/52 1239/1556/52 -f 1274/1557/53 1275/2338/53 1273/1558/53 -f 1273/1560/57 1278/1563/57 1277/1561/57 -f 1278/1563/52 1279/1566/52 1276/1564/52 -f 1274/1565/56 1276/1564/56 1279/1566/56 -f 1280/1568/57 1281/2339/57 1283/1569/57 -f 1272/1571/55 1277/1561/55 1276/1564/55 -f 1275/1573/54 1279/1566/54 1278/1563/54 -f 1249/1575/57 1266/1582/57 1265/1576/57 -f 1243/1578/54 1259/1584/54 1258/1579/54 -f 1251/1581/54 1267/1586/54 1266/1582/54 -f 1242/1583/56 1256/1604/56 1259/1584/56 -f 1250/1585/56 1264/1608/56 1267/1586/56 -f 1244/1587/55 1261/1594/55 1260/1588/55 -f 1252/1590/55 1269/1596/55 1268/1591/55 -f 1245/1593/57 1262/1598/57 1261/1594/57 -f 1253/1595/57 1270/1600/57 1269/1596/57 -f 1247/1597/54 1263/2340/54 1262/1598/54 -f 1255/1599/54 1271/1606/54 1270/1600/54 -f 1246/1589/56 1260/1588/56 1263/1601/56 -f 1240/1603/55 1257/1610/55 1256/1604/55 -f 1254/1605/56 1268/2341/56 1271/1606/56 -f 1248/1607/55 1265/2342/55 1264/1608/55 -f 1241/1609/57 1258/2343/57 1257/1610/57 -f 1284/1611/56 1286/2344/56 1287/1612/56 -f 1291/1614/54 1289/2345/54 1288/1615/54 -f 1295/1617/55 1294/2346/55 1292/1618/55 -f 1330/1620/53 1331/2347/53 1329/1621/53 -f 1329/1623/57 1334/1626/57 1333/1624/57 -f 1334/1626/52 1335/1629/52 1332/1627/52 -f 1330/1628/56 1332/1627/56 1335/1629/56 -f 1336/1631/57 1337/2348/57 1339/1632/57 -f 1328/1634/55 1333/1624/55 1332/1627/55 -f 1331/1636/54 1335/1629/54 1334/1626/54 -f 1305/1638/57 1322/1645/57 1321/1639/57 -f 1299/1641/54 1315/1647/54 1314/1642/54 -f 1307/1644/54 1323/1649/54 1322/1645/54 -f 1298/1646/56 1312/1667/56 1315/1647/56 -f 1306/1648/56 1320/1671/56 1323/1649/56 -f 1300/1650/55 1317/1657/55 1316/1651/55 -f 1308/1653/55 1325/1659/55 1324/1654/55 -f 1301/1656/57 1318/1661/57 1317/1657/57 -f 1309/1658/57 1326/1663/57 1325/1659/57 -f 1303/1660/54 1319/2349/54 1318/1661/54 -f 1311/1662/54 1327/1669/54 1326/1663/54 -f 1302/1652/56 1316/1651/56 1319/1664/56 -f 1296/1666/55 1313/1673/55 1312/1667/55 -f 1310/1668/56 1324/2350/56 1327/1669/56 -f 1304/1670/55 1321/2351/55 1320/1671/55 -f 1297/1672/57 1314/2352/57 1313/1673/57 -f 1340/1674/56 1342/2353/56 1343/1675/56 -f 1347/1677/54 1345/2354/54 1344/1678/54 -f 1351/1680/55 1350/2355/55 1348/1681/55 -f 1386/1683/53 1387/2356/53 1385/1684/53 -f 1385/1686/57 1390/1689/57 1389/1687/57 -f 1390/1689/52 1391/1692/52 1388/1690/52 -f 1386/1691/56 1388/1690/56 1391/1692/56 -f 1392/1694/57 1393/2357/57 1395/1695/57 -f 1384/1697/55 1389/1687/55 1388/1690/55 -f 1387/1699/54 1391/1692/54 1390/1689/54 -f 1361/1701/57 1378/1708/57 1377/1702/57 -f 1355/1704/54 1371/1710/54 1370/1705/54 -f 1363/1707/54 1379/1712/54 1378/1708/54 -f 1354/1709/56 1368/1730/56 1371/1710/56 -f 1362/1711/56 1376/1734/56 1379/1712/56 -f 1356/1713/55 1373/1720/55 1372/1714/55 -f 1364/1716/55 1381/1722/55 1380/1717/55 -f 1357/1719/57 1374/1724/57 1373/1720/57 -f 1365/1721/57 1382/1726/57 1381/1722/57 -f 1359/1723/54 1375/2358/54 1374/1724/54 -f 1367/1725/54 1383/1732/54 1382/1726/54 -f 1358/1715/56 1372/1714/56 1375/1727/56 -f 1352/1729/55 1369/1736/55 1368/1730/55 -f 1366/1731/56 1380/2359/56 1383/1732/56 -f 1360/1733/55 1377/2360/55 1376/1734/55 -f 1353/1735/57 1370/2361/57 1369/1736/57 -f 1396/1737/56 1398/2362/56 1399/1738/56 -f 1403/1740/54 1401/2363/54 1400/1741/54 -f 1407/1743/55 1406/2364/55 1404/1744/55 -f 1442/1746/53 1443/2365/53 1441/1747/53 -f 1441/1749/57 1446/1752/57 1445/1750/57 -f 1446/1752/52 1447/1755/52 1444/1753/52 -f 1442/1754/56 1444/1753/56 1447/1755/56 -f 1448/1757/57 1449/2366/57 1451/1758/57 -f 1440/1760/55 1445/1750/55 1444/1753/55 -f 1443/1762/54 1447/1755/54 1446/1752/54 -f 1417/1764/57 1434/1771/57 1433/1765/57 -f 1411/1767/54 1427/1773/54 1426/1768/54 -f 1419/1770/54 1435/1775/54 1434/1771/54 -f 1410/1772/56 1424/1793/56 1427/1773/56 -f 1418/1774/56 1432/1797/56 1435/1775/56 -f 1412/1776/55 1429/1783/55 1428/1777/55 -f 1420/1779/55 1437/1785/55 1436/1780/55 -f 1413/1782/57 1430/1787/57 1429/1783/57 -f 1421/1784/57 1438/1789/57 1437/1785/57 -f 1415/1786/54 1431/2367/54 1430/1787/54 -f 1423/1788/54 1439/1795/54 1438/1789/54 -f 1414/1778/56 1428/1777/56 1431/1790/56 -f 1408/1792/55 1425/1799/55 1424/1793/55 -f 1422/1794/56 1436/2368/56 1439/1795/56 -f 1416/1796/55 1433/2369/55 1432/1797/55 -f 1409/1798/57 1426/2370/57 1425/1799/57 -f 1452/1800/56 1454/2371/56 1455/1801/56 -f 1459/1803/54 1457/2372/54 1456/1804/54 -f 1463/1806/55 1462/2373/55 1460/1807/55 -f 1493/1815/53 1473/2374/53 1472/1816/53 -f 1470/1818/64 1471/1843/64 1472/1819/64 -f 1484/1821/52 1471/1843/52 1470/1818/52 -f 1483/1822/65 1470/1818/65 1473/1823/65 -f 1475/1825/53 1477/2375/53 1488/1826/53 -f 1480/1828/52 1476/1832/52 1474/1829/52 -f 1475/1831/66 1474/1829/66 1476/1832/66 -f 1479/1830/67 1474/1829/67 1475/1834/67 -f 1487/1836/55 1484/2376/55 1485/1837/55 -f 1488/1839/54 1480/1855/54 1481/1840/54 -f 1487/1842/67 1472/2377/67 1471/1843/67 -f 1488/1844/65 1477/2378/65 1476/1832/65 -f 1492/1845/57 1482/1854/57 1483/1846/57 -f 1491/1848/56 1478/1856/56 1479/1849/56 -f 1487/1853/53 1486/2379/53 1491/2380/53 -f 1491/2380/53 1490/2381/53 1488/1851/53 -f 1488/1851/53 1489/2382/53 1492/1852/53 -f 1492/1852/53 1493/2383/53 1487/1853/53 -f 1487/1853/53 1491/2380/53 1488/1851/53 -f 1478/1856/52 1485/1837/52 1484/2376/52 -f 1484/2376/52 1483/1846/52 1482/1854/52 -f 1482/1854/52 1481/1840/52 1480/1855/52 -f 1480/1855/52 1479/1849/52 1478/1856/52 -f 1478/1856/52 1484/2376/52 1482/1854/52 -f 1489/1841/65 1481/1840/65 1482/1857/65 -f 1486/1838/67 1485/1837/67 1478/1859/67 -f 1549/1861/67 1550/1936/67 1557/1862/67 -f 1505/1864/56 1528/2384/56 1527/1865/56 -f 1546/1867/65 1554/1934/65 1553/1868/65 -f 1557/1872/52 1550/1936/52 1551/2385/52 -f 1551/2385/52 1552/1925/52 1553/1870/52 -f 1553/1870/52 1554/1934/52 1555/1871/52 -f 1555/1871/52 1556/1922/52 1557/1872/52 -f 1557/1872/52 1551/2385/52 1553/1870/52 -f 1548/1875/53 1549/2386/53 1544/2387/53 -f 1544/2387/53 1545/2388/53 1547/1873/53 -f 1547/1873/53 1546/2389/53 1543/1874/53 -f 1543/1874/53 1542/2390/53 1548/1875/53 -f 1548/1875/53 1544/2387/53 1547/1873/53 -f 1500/1876/56 1510/2391/56 1511/1877/56 -f 1506/1879/57 1530/1908/57 1533/1880/57 -f 1508/1881/55 1533/1880/55 1532/1882/55 -f 1509/1884/56 1532/2392/56 1531/1885/56 -f 1495/1887/57 1516/1895/57 1517/1888/57 -f 1494/1889/55 1517/1888/55 1514/1890/55 -f 1503/1866/54 1527/1865/54 1526/1892/54 -f 1497/1894/54 1515/1897/54 1516/1895/54 -f 1496/1896/56 1514/2393/56 1515/1897/56 -f 1498/1898/55 1513/1906/55 1510/1899/55 -f 1504/1901/55 1529/1907/55 1528/1902/55 -f 1501/1878/54 1511/1877/54 1512/1904/54 -f 1499/1905/57 1512/1904/57 1513/1906/57 -f 1502/1893/57 1526/1892/57 1529/1907/57 -f 1507/1886/54 1531/1885/54 1530/1908/54 -f 1539/1909/67 1534/2394/67 1518/1910/67 -f 1540/1912/65 1537/2395/65 1521/1913/65 -f 1520/1915/64 1536/2396/64 1538/1916/64 -f 1519/1918/66 1535/2397/66 1541/1919/66 -f 1544/1921/56 1557/1872/56 1556/1922/56 -f 1543/1924/57 1553/1870/57 1552/1925/57 -f 1547/1927/65 1574/2398/65 1575/1928/65 -f 1548/1930/67 1579/2399/67 1580/1931/67 -f 1547/1933/54 1555/1871/54 1554/1934/54 -f 1548/1935/55 1551/2385/55 1550/1936/55 -f 1559/1939/53 1558/2400/53 1565/2401/53 -f 1565/2401/53 1564/2402/53 1563/1937/53 -f 1563/1937/53 1562/2403/53 1561/1938/53 -f 1561/1938/53 1560/2404/53 1559/1939/53 -f 1559/1939/53 1565/2401/53 1563/1937/53 -f 1573/1942/52 1566/1961/52 1567/1958/52 -f 1567/1958/52 1568/1953/52 1569/1940/52 -f 1569/1940/52 1570/1960/52 1571/1941/52 -f 1571/1941/52 1572/1950/52 1573/1942/52 -f 1573/1942/52 1567/1958/52 1569/1940/52 -f 1562/1943/65 1570/1960/65 1569/1944/65 -f 1558/1946/67 1566/1961/67 1573/1947/67 -f 1565/1949/56 1573/1942/56 1572/1950/56 -f 1561/1952/57 1569/1940/57 1568/1953/57 -f 1564/1955/66 1572/2405/66 1571/1941/66 -f 1560/1957/64 1568/2406/64 1567/1958/64 -f 1563/1956/54 1571/1941/54 1570/1960/54 -f 1559/1959/55 1567/1958/55 1566/1961/55 -f 1556/1962/67 1577/1967/67 1576/1963/67 -f 1576/1965/66 1577/1967/66 1575/1928/66 -f 1555/1929/52 1575/1928/52 1577/1967/52 -f 1576/1968/53 1574/2407/53 1547/1969/53 -f 1552/1971/65 1581/1974/65 1578/1972/65 -f 1551/1932/52 1580/1931/52 1581/1974/52 -f 1581/1974/64 1580/1931/64 1579/1975/64 -f 1542/1977/53 1578/2408/53 1579/1978/53 -f 1583/1980/54 1585/1986/54 1584/1981/54 -f 1586/1983/55 1589/2409/55 1588/1984/55 -f 1585/1986/56 1589/2409/56 1586/1983/56 -f 1582/1982/57 1587/2410/57 1588/1987/57 -f 1583/1980/53 1588/2411/53 1589/1988/53 -f 1584/1981/52 1586/2412/52 1587/1989/52 -f 1596/1990/52 1597/1998/52 1594/1991/52 -f 1593/1993/54 1597/1998/54 1596/1990/54 -f 1590/1995/55 1595/1992/55 1594/1991/55 -f 1592/1997/56 1594/1991/56 1597/1998/56 -f 1591/2000/57 1596/1990/57 1595/1992/57 -f 1606/2002/56 1609/2413/56 1601/2003/56 -f 1601/2003/68 1609/2413/68 1608/2005/68 -f 1603/2007/55 1605/2414/55 1610/2008/55 -f 1608/2005/57 1607/2415/57 1598/2010/57 -f 1603/2007/69 1613/2009/69 1612/2011/69 -f 1604/2013/70 1611/2018/70 1610/2014/70 -f 1607/2016/71 1606/2002/71 1600/2004/71 -f 1602/2012/54 1612/2011/54 1611/2018/54 -f 1615/2019/54 1617/2025/54 1621/2020/54 -f 1614/2022/55 1619/2416/55 1618/2023/55 -f 1616/2024/72 1618/2023/72 1621/2020/72 -f 1615/2019/73 1620/2021/73 1619/2026/73 -f 1624/2028/74 1625/2417/74 1627/2029/74 -f 1622/2031/65 1624/2028/65 1626/2030/65 -f 1623/2033/75 1622/2031/75 1629/2032/75 -f 1625/2035/67 1623/2033/67 1628/2034/67 -f 1717/2037/66 1719/2109/66 1718/2038/66 -f 1636/2046/65 1644/2418/65 1649/2047/65 -f 1639/2049/67 1647/2419/67 1650/2050/67 -f 1648/2052/66 1646/2420/66 1638/2053/66 -f 1651/2055/64 1645/2421/64 1637/2056/64 -f 1655/2058/56 1653/2422/56 1652/2059/56 -f 1659/2061/57 1658/2423/57 1656/2062/57 -f 1660/2064/55 1661/2424/55 1663/2065/55 -f 1664/2067/54 1666/2425/54 1667/2068/54 -f 1671/2070/56 1669/2426/56 1668/2071/56 -f 1675/2073/57 1674/2427/57 1672/2074/57 -f 1676/2076/55 1677/2428/55 1679/2077/55 -f 1680/2079/54 1682/2429/54 1683/2080/54 -f 1687/2082/56 1685/2430/56 1684/2083/56 -f 1691/2085/57 1690/2431/57 1688/2086/57 -f 1692/2088/55 1693/2432/55 1695/2089/55 -f 1696/2091/54 1698/2433/54 1699/2092/54 -f 1703/2094/56 1701/2434/56 1700/2095/56 -f 1707/2097/57 1706/2435/57 1704/2098/57 -f 1708/2100/55 1709/2436/55 1711/2101/55 -f 1712/2103/54 1714/2437/54 1715/2104/54 -f 1720/2106/64 1723/2438/64 1722/2107/64 -f 1719/2109/67 1723/2438/67 1720/2106/67 -f 1716/2039/65 1721/2439/65 1722/2110/65 -f 1717/2037/53 1722/2440/53 1723/2111/53 -f 1718/2038/52 1720/2441/52 1721/2112/52 -f 1730/2113/52 1731/2121/52 1728/2114/52 -f 1727/2116/66 1731/2121/66 1730/2113/66 -f 1724/2118/64 1729/2115/64 1728/2114/64 -f 1726/2120/67 1728/2114/67 1731/2121/67 -f 1725/2123/65 1730/2113/65 1729/2115/65 -f 1740/2125/67 1743/2442/67 1735/2126/67 -f 1735/2126/78 1743/2442/78 1742/2128/78 -f 1737/2130/64 1739/2443/64 1744/2131/64 -f 1742/2128/65 1741/2444/65 1732/2133/65 -f 1737/2130/79 1747/2132/79 1746/2134/79 -f 1738/2136/80 1745/2141/80 1744/2137/80 -f 1741/2139/81 1740/2125/81 1734/2127/81 -f 1736/2135/66 1746/2134/66 1745/2141/66 -f 1749/2142/66 1751/2148/66 1755/2143/66 -f 1748/2145/64 1753/2445/64 1752/2146/64 -f 1750/2147/82 1752/2146/82 1755/2143/82 -f 1749/2142/83 1754/2144/83 1753/2149/83 -f 1757/2151/65 1759/2157/65 1758/2152/65 -f 1760/2154/67 1763/2446/67 1762/2155/67 -f 1759/2157/66 1763/2446/66 1760/2154/66 -f 1756/2153/64 1761/2447/64 1762/2158/64 -f 1757/2151/53 1762/2448/53 1763/2159/53 -f 1756/2153/52 1758/2152/52 1760/2160/52 -f 1770/2162/52 1771/2170/52 1768/2163/52 -f 1767/2165/65 1771/2170/65 1770/2162/65 -f 1764/2167/67 1769/2164/67 1768/2163/67 -f 1766/2169/66 1768/2163/66 1771/2170/66 -f 1765/2172/64 1770/2162/64 1769/2164/64 -f 1780/2174/66 1783/2449/66 1775/2175/66 -f 1775/2175/84 1783/2449/84 1782/2177/84 -f 1777/2179/67 1779/2450/67 1784/2180/67 -f 1782/2177/64 1781/2451/64 1772/2182/64 -f 1777/2179/85 1787/2181/85 1786/2183/85 -f 1778/2185/86 1785/2190/86 1784/2186/86 -f 1781/2188/87 1780/2174/87 1774/2176/87 -f 1776/2184/65 1786/2183/65 1785/2190/65 -f 1789/2191/65 1791/2197/65 1795/2192/65 -f 1788/2194/67 1793/2452/67 1792/2195/67 -f 1791/2197/88 1790/2196/88 1792/2195/88 -f 1789/2191/89 1794/2193/89 1793/2198/89 -f 1797/2200/55 1799/2206/55 1798/2201/55 -f 1800/2203/54 1803/2453/54 1802/2204/54 -f 1799/2206/57 1803/2453/57 1800/2203/57 -f 1796/2202/56 1801/2454/56 1802/2207/56 -f 1797/2200/53 1802/2455/53 1803/2208/53 -f 1798/2201/52 1800/2456/52 1801/2209/52 -f 1810/2210/52 1811/2218/52 1808/2211/52 -f 1807/2213/55 1811/2218/55 1810/2210/55 -f 1804/2215/54 1809/2212/54 1808/2211/54 -f 1806/2217/57 1808/2211/57 1811/2218/57 -f 1805/2220/56 1810/2210/56 1809/2212/56 -f 1820/2222/57 1823/2457/57 1815/2223/57 -f 1815/2223/90 1823/2457/90 1822/2225/90 -f 1817/2227/54 1819/2458/54 1824/2228/54 -f 1822/2225/56 1821/2459/56 1812/2230/56 -f 1817/2227/73 1827/2229/73 1826/2231/73 -f 1818/2233/72 1825/2237/72 1824/2234/72 -f 1812/2236/91 1821/2460/91 1820/2222/91 -f 1816/2232/55 1826/2231/55 1825/2237/55 -f 1829/2238/55 1831/2244/55 1835/2239/55 -f 1828/2241/54 1833/2461/54 1832/2242/54 -f 1830/2243/70 1832/2242/70 1835/2239/70 -f 1829/2238/69 1834/2240/69 1833/2245/69 -f 1837/2247/67 1839/2253/67 1838/2248/67 -f 1840/2250/65 1843/2462/65 1842/2251/65 -f 1839/2253/64 1843/2462/64 1840/2250/64 -f 1836/2249/66 1841/2463/66 1842/2254/66 -f 1837/2247/53 1842/2464/53 1843/2255/53 -f 1836/2249/52 1838/2248/52 1840/2256/52 -f 1850/2258/52 1851/2266/52 1848/2259/52 -f 1847/2261/67 1851/2266/67 1850/2258/67 -f 1844/2263/65 1849/2260/65 1848/2259/65 -f 1846/2265/64 1848/2259/64 1851/2266/64 -f 1845/2268/66 1850/2258/66 1849/2260/66 -f 1860/2270/64 1863/2465/64 1855/2271/64 -f 1855/2271/92 1863/2465/92 1862/2273/92 -f 1857/2275/65 1859/2466/65 1864/2276/65 -f 1862/2273/66 1861/2467/66 1852/2278/66 -f 1857/2275/89 1867/2277/89 1866/2279/89 -f 1858/2281/88 1865/2285/88 1864/2282/88 -f 1852/2284/93 1861/2468/93 1860/2270/93 -f 1856/2280/67 1866/2279/67 1865/2285/67 -f 1869/2286/67 1871/2292/67 1875/2287/67 -f 1868/2289/65 1873/2469/65 1872/2290/65 -f 1871/2292/86 1870/2291/86 1872/2290/86 -f 1869/2286/85 1874/2288/85 1873/2293/85 -f 1877/2295/64 1879/2301/64 1878/2296/64 -f 1880/2298/66 1883/2470/66 1882/2299/66 -f 1879/2301/65 1883/2470/65 1880/2298/65 -f 1876/2297/67 1881/2471/67 1882/2302/67 -f 1877/2295/53 1882/2472/53 1883/2303/53 -f 1878/2296/52 1880/2473/52 1881/2304/52 -f 1885/2305/66 1887/2474/66 1888/2306/66 -f 1885/2305/83 1891/2307/83 1890/2308/83 -f 1886/2310/82 1889/2313/82 1888/2311/82 -f 1884/2309/64 1890/2308/64 1889/2313/64 -f 1893/2314/64 1895/2320/64 1899/2315/64 -f 1892/2317/66 1897/2475/66 1896/2318/66 -f 1894/2319/80 1896/2318/80 1899/2315/80 -f 1893/2314/79 1898/2316/79 1897/2321/79 +f 1214/1496/52 1211/1497/52 1212/1498/52 +f 1187/1499/52 1192/1500/52 1188/1501/52 +f 1197/1502/53 1202/1503/53 1198/1504/53 +f 1192/1500/54 1198/1504/54 1194/1505/54 +f 1193/1506/55 1196/1507/55 1191/1508/55 +f 1194/1509/56 1195/1510/56 1193/1511/56 +f 1191/1512/57 1197/1513/57 1192/1514/57 +f 1202/1515/56 1203/1516/56 1201/1517/56 +f 1198/1518/53 1201/1517/53 1195/1510/53 +f 1195/1519/53 1199/1520/53 1196/1507/53 +f 1196/1521/53 1200/1522/53 1197/1513/53 +f 1189/1523/52 1191/1524/52 1187/1499/52 +f 1199/1525/57 1205/1526/57 1200/1522/57 +f 1200/1527/54 1206/1528/54 1202/1503/54 +f 1201/1529/55 1204/1530/55 1199/1520/55 +f 1190/1531/52 1193/1532/52 1189/1523/52 +f 1188/1501/52 1194/1505/52 1190/1531/52 +f 1208/1533/58 1187/1499/58 1188/1501/58 +f 1207/1534/59 1189/1523/59 1187/1499/59 +f 1209/1535/60 1190/1531/60 1189/1523/60 +f 1210/1536/61 1188/1501/61 1190/1531/61 +f 1223/1537/56 1217/1538/56 1222/1539/56 +f 1216/1540/52 1221/1541/52 1215/1542/52 +f 1224/1543/54 1216/1540/54 1219/1544/54 +f 1215/1542/57 1219/1545/57 1216/1540/57 +f 1222/1539/58 1224/1543/58 1223/1537/58 +f 1222/1546/55 1217/1547/55 1218/1548/55 +f 1237/1549/56 1236/1550/56 1235/1551/56 +f 1233/1552/55 1238/1553/55 1232/1554/55 +f 1231/1555/57 1233/1552/57 1232/1556/57 +f 1225/1557/54 1230/1558/54 1231/1559/54 +f 1239/1560/52 1237/1549/52 1233/1552/52 +f 1274/1561/53 1273/1562/53 1272/1563/53 +f 1273/1564/57 1277/1565/57 1272/1566/57 +f 1278/1567/52 1276/1568/52 1277/1565/52 +f 1274/1569/56 1279/1570/56 1275/1571/56 +f 1280/1572/57 1283/1573/57 1282/1574/57 +f 1272/1575/55 1276/1568/55 1274/1576/55 +f 1275/1577/54 1278/1567/54 1273/1578/54 +f 1249/1579/57 1265/1580/57 1248/1581/57 +f 1243/1582/54 1258/1583/54 1241/1584/54 +f 1251/1585/54 1266/1586/54 1249/1579/54 +f 1242/1587/56 1259/1588/56 1243/1582/56 +f 1250/1589/56 1267/1590/56 1251/1585/56 +f 1244/1591/55 1260/1592/55 1246/1593/55 +f 1252/1594/55 1268/1595/55 1254/1596/55 +f 1245/1597/57 1261/1598/57 1244/1591/57 +f 1253/1599/57 1269/1600/57 1252/1594/57 +f 1247/1601/54 1262/1602/54 1245/1597/54 +f 1255/1603/54 1270/1604/54 1253/1599/54 +f 1246/1593/56 1263/1605/56 1247/1606/56 +f 1240/1607/55 1256/1608/55 1242/1587/55 +f 1254/1609/56 1271/1610/56 1255/1603/56 +f 1248/1611/55 1264/1612/55 1250/1589/55 +f 1241/1613/57 1257/1614/57 1240/1607/57 +f 1284/1615/56 1287/1616/56 1285/1617/56 +f 1291/1618/54 1288/1619/54 1290/1620/54 +f 1295/1621/55 1292/1622/55 1293/1623/55 +f 1330/1624/53 1329/1625/53 1328/1626/53 +f 1329/1627/57 1333/1628/57 1328/1629/57 +f 1334/1630/52 1332/1631/52 1333/1628/52 +f 1330/1632/56 1335/1633/56 1331/1634/56 +f 1336/1635/57 1339/1636/57 1338/1637/57 +f 1328/1638/55 1332/1631/55 1330/1639/55 +f 1331/1640/54 1334/1630/54 1329/1641/54 +f 1305/1642/57 1321/1643/57 1304/1644/57 +f 1299/1645/54 1314/1646/54 1297/1647/54 +f 1307/1648/54 1322/1649/54 1305/1642/54 +f 1298/1650/56 1315/1651/56 1299/1645/56 +f 1306/1652/56 1323/1653/56 1307/1648/56 +f 1300/1654/55 1316/1655/55 1302/1656/55 +f 1308/1657/55 1324/1658/55 1310/1659/55 +f 1301/1660/57 1317/1661/57 1300/1654/57 +f 1309/1662/57 1325/1663/57 1308/1657/57 +f 1303/1664/54 1318/1665/54 1301/1660/54 +f 1311/1666/54 1326/1667/54 1309/1662/54 +f 1302/1656/56 1319/1668/56 1303/1669/56 +f 1296/1670/55 1312/1671/55 1298/1650/55 +f 1310/1672/56 1327/1673/56 1311/1666/56 +f 1304/1674/55 1320/1675/55 1306/1652/55 +f 1297/1676/57 1313/1677/57 1296/1670/57 +f 1340/1678/56 1343/1679/56 1341/1680/56 +f 1347/1681/54 1344/1682/54 1346/1683/54 +f 1351/1684/55 1348/1685/55 1349/1686/55 +f 1386/1687/53 1385/1688/53 1384/1689/53 +f 1385/1690/57 1389/1691/57 1384/1692/57 +f 1390/1693/52 1388/1694/52 1389/1691/52 +f 1386/1695/56 1391/1696/56 1387/1697/56 +f 1392/1698/57 1395/1699/57 1394/1700/57 +f 1384/1701/55 1388/1694/55 1386/1702/55 +f 1387/1703/54 1390/1693/54 1385/1704/54 +f 1361/1705/57 1377/1706/57 1360/1707/57 +f 1355/1708/54 1370/1709/54 1353/1710/54 +f 1363/1711/54 1378/1712/54 1361/1705/54 +f 1354/1713/56 1371/1714/56 1355/1708/56 +f 1362/1715/56 1379/1716/56 1363/1711/56 +f 1356/1717/55 1372/1718/55 1358/1719/55 +f 1364/1720/55 1380/1721/55 1366/1722/55 +f 1357/1723/57 1373/1724/57 1356/1717/57 +f 1365/1725/57 1381/1726/57 1364/1720/57 +f 1359/1727/54 1374/1728/54 1357/1723/54 +f 1367/1729/54 1382/1730/54 1365/1725/54 +f 1358/1719/56 1375/1731/56 1359/1732/56 +f 1352/1733/55 1368/1734/55 1354/1713/55 +f 1366/1735/56 1383/1736/56 1367/1729/56 +f 1360/1737/55 1376/1738/55 1362/1715/55 +f 1353/1739/57 1369/1740/57 1352/1733/57 +f 1396/1741/56 1399/1742/56 1397/1743/56 +f 1403/1744/54 1400/1745/54 1402/1746/54 +f 1407/1747/55 1404/1748/55 1405/1749/55 +f 1442/1750/53 1441/1751/53 1440/1752/53 +f 1441/1753/57 1445/1754/57 1440/1755/57 +f 1446/1756/52 1444/1757/52 1445/1754/52 +f 1442/1758/56 1447/1759/56 1443/1760/56 +f 1448/1761/57 1451/1762/57 1450/1763/57 +f 1440/1764/55 1444/1757/55 1442/1765/55 +f 1443/1766/54 1446/1756/54 1441/1767/54 +f 1417/1768/57 1433/1769/57 1416/1770/57 +f 1411/1771/54 1426/1772/54 1409/1773/54 +f 1419/1774/54 1434/1775/54 1417/1768/54 +f 1410/1776/56 1427/1777/56 1411/1771/56 +f 1418/1778/56 1435/1779/56 1419/1774/56 +f 1412/1780/55 1428/1781/55 1414/1782/55 +f 1420/1783/55 1436/1784/55 1422/1785/55 +f 1413/1786/57 1429/1787/57 1412/1780/57 +f 1421/1788/57 1437/1789/57 1420/1783/57 +f 1415/1790/54 1430/1791/54 1413/1786/54 +f 1423/1792/54 1438/1793/54 1421/1788/54 +f 1414/1782/56 1431/1794/56 1415/1795/56 +f 1408/1796/55 1424/1797/55 1410/1776/55 +f 1422/1798/56 1439/1799/56 1423/1792/56 +f 1416/1800/55 1432/1801/55 1418/1778/55 +f 1409/1802/57 1425/1803/57 1408/1796/57 +f 1452/1804/56 1455/1805/56 1453/1806/56 +f 1459/1807/54 1456/1808/54 1458/1809/54 +f 1463/1810/55 1460/1811/55 1461/1812/55 +f 1469/1813/62 1464/1814/62 1466/1815/62 +f 1468/1816/63 1467/1817/63 1465/1818/63 +f 1493/1819/53 1472/1820/53 1487/1821/53 +f 1470/1822/64 1472/1823/64 1473/1824/64 +f 1484/1825/52 1470/1822/52 1483/1826/52 +f 1483/1826/65 1473/1827/65 1493/1828/65 +f 1475/1829/53 1488/1830/53 1490/1831/53 +f 1480/1832/52 1474/1833/52 1479/1834/52 +f 1475/1835/66 1476/1836/66 1477/1837/66 +f 1479/1834/67 1475/1838/67 1490/1839/67 +f 1487/1840/55 1485/1841/55 1486/1842/55 +f 1488/1843/54 1481/1844/54 1489/1845/54 +f 1487/1846/67 1471/1847/67 1484/1825/67 +f 1488/1848/65 1476/1836/65 1480/1832/65 +f 1492/1849/57 1483/1850/57 1493/1851/57 +f 1491/1852/56 1479/1853/56 1490/1854/56 +f 1488/1855/53 1492/1856/53 1487/1857/53 +f 1482/1858/52 1480/1859/52 1478/1860/52 +f 1489/1845/65 1482/1861/65 1492/1862/65 +f 1486/1842/67 1478/1863/67 1491/1864/67 +f 1549/1865/67 1557/1866/67 1544/1867/67 +f 1505/1868/56 1527/1869/56 1503/1870/56 +f 1546/1871/65 1553/1872/65 1543/1873/65 +f 1553/1874/52 1555/1875/52 1557/1876/52 +f 1547/1877/53 1543/1878/53 1548/1879/53 +f 1500/1880/56 1511/1881/56 1501/1882/56 +f 1506/1883/57 1533/1884/57 1508/1885/57 +f 1508/1885/55 1532/1886/55 1509/1887/55 +f 1509/1888/56 1531/1889/56 1507/1890/56 +f 1495/1891/57 1517/1892/57 1494/1893/57 +f 1494/1893/55 1514/1894/55 1496/1895/55 +f 1503/1870/54 1526/1896/54 1502/1897/54 +f 1497/1898/54 1516/1899/54 1495/1891/54 +f 1496/1900/56 1515/1901/56 1497/1898/56 +f 1498/1902/55 1510/1903/55 1500/1904/55 +f 1504/1905/55 1528/1906/55 1505/1907/55 +f 1501/1882/54 1512/1908/54 1499/1909/54 +f 1499/1909/57 1513/1910/57 1498/1902/57 +f 1502/1897/57 1529/1911/57 1504/1905/57 +f 1507/1890/54 1530/1912/54 1506/1883/54 +f 1539/1913/67 1518/1914/67 1523/1915/67 +f 1540/1916/65 1521/1917/65 1524/1918/65 +f 1520/1919/64 1538/1920/64 1522/1921/64 +f 1519/1922/66 1541/1923/66 1525/1924/66 +f 1544/1925/56 1556/1926/56 1545/1927/56 +f 1543/1928/57 1552/1929/57 1542/1930/57 +f 1547/1931/65 1575/1932/65 1555/1933/65 +f 1548/1934/67 1580/1935/67 1551/1936/67 +f 1547/1937/54 1554/1938/54 1546/1871/54 +f 1548/1939/55 1550/1940/55 1549/1865/55 +f 1563/1941/53 1561/1942/53 1559/1943/53 +f 1569/1944/52 1571/1945/52 1573/1946/52 +f 1562/1947/65 1569/1948/65 1561/1949/65 +f 1558/1950/67 1573/1951/67 1565/1952/67 +f 1565/1953/56 1572/1954/56 1564/1955/56 +f 1561/1956/57 1568/1957/57 1560/1958/57 +f 1564/1959/66 1571/1945/66 1563/1960/66 +f 1560/1961/64 1567/1962/64 1559/1963/64 +f 1563/1960/54 1570/1964/54 1562/1947/54 +f 1559/1963/55 1566/1965/55 1558/1950/55 +f 1556/1966/67 1576/1967/67 1545/1968/67 +f 1576/1969/66 1575/1932/66 1574/1970/66 +f 1555/1933/52 1577/1971/52 1556/1966/52 +f 1576/1972/53 1547/1973/53 1545/1974/53 +f 1552/1975/65 1578/1976/65 1542/1977/65 +f 1551/1936/52 1581/1978/52 1552/1975/52 +f 1581/1978/64 1579/1979/64 1578/1980/64 +f 1542/1981/53 1579/1982/53 1548/1983/53 +f 1583/1984/54 1584/1985/54 1582/1986/54 +f 1586/1987/55 1588/1988/55 1587/1989/55 +f 1585/1990/56 1586/1987/56 1584/1985/56 +f 1582/1986/57 1588/1991/57 1583/1984/57 +f 1583/1984/53 1589/1992/53 1585/1990/53 +f 1584/1985/52 1587/1993/52 1582/1986/52 +f 1596/1994/52 1594/1995/52 1595/1996/52 +f 1593/1997/54 1596/1994/54 1591/1998/54 +f 1590/1999/55 1594/1995/55 1592/2000/55 +f 1592/2001/56 1597/2002/56 1593/2003/56 +f 1591/2004/57 1595/1996/57 1590/2005/57 +f 1606/2006/56 1601/2007/56 1600/2008/56 +f 1601/2007/68 1608/2009/68 1599/2010/68 +f 1603/2011/55 1610/2012/55 1613/2013/55 +f 1608/2009/57 1598/2014/57 1599/2010/57 +f 1603/2011/69 1612/2015/69 1602/2016/69 +f 1604/2017/70 1610/2018/70 1605/2019/70 +f 1607/2020/71 1600/2008/71 1598/2021/71 +f 1602/2016/54 1611/2022/54 1604/2017/54 +f 1615/2023/54 1621/2024/54 1620/2025/54 +f 1614/2026/55 1618/2027/55 1616/2028/55 +f 1616/2028/72 1621/2024/72 1617/2029/72 +f 1615/2023/73 1619/2030/73 1614/2031/73 +f 1624/2032/74 1627/2033/74 1626/2034/74 +f 1622/2035/65 1626/2034/65 1629/2036/65 +f 1623/2037/75 1629/2036/75 1628/2038/75 +f 1625/2039/67 1628/2038/67 1627/2040/67 +f 1717/2041/66 1718/2042/66 1716/2043/66 +f 1635/2044/76 1632/2045/76 1630/2046/76 +f 1634/2047/77 1631/2048/77 1633/2049/77 +f 1636/2050/65 1649/2051/65 1641/2052/65 +f 1639/2053/67 1650/2054/67 1642/2055/67 +f 1648/2056/66 1638/2057/66 1640/2058/66 +f 1651/2059/64 1637/2060/64 1643/2061/64 +f 1655/2062/56 1652/2063/56 1654/2064/56 +f 1659/2065/57 1656/2066/57 1657/2067/57 +f 1660/2068/55 1663/2069/55 1662/2070/55 +f 1664/2071/54 1667/2072/54 1665/2073/54 +f 1671/2074/56 1668/2075/56 1670/2076/56 +f 1675/2077/57 1672/2078/57 1673/2079/57 +f 1676/2080/55 1679/2081/55 1678/2082/55 +f 1680/2083/54 1683/2084/54 1681/2085/54 +f 1687/2086/56 1684/2087/56 1686/2088/56 +f 1691/2089/57 1688/2090/57 1689/2091/57 +f 1692/2092/55 1695/2093/55 1694/2094/55 +f 1696/2095/54 1699/2096/54 1697/2097/54 +f 1703/2098/56 1700/2099/56 1702/2100/56 +f 1707/2101/57 1704/2102/57 1705/2103/57 +f 1708/2104/55 1711/2105/55 1710/2106/55 +f 1712/2107/54 1715/2108/54 1713/2109/54 +f 1720/2110/64 1722/2111/64 1721/2112/64 +f 1719/2113/67 1720/2110/67 1718/2042/67 +f 1716/2043/65 1722/2114/65 1717/2041/65 +f 1717/2041/53 1723/2115/53 1719/2113/53 +f 1718/2042/52 1721/2116/52 1716/2043/52 +f 1730/2117/52 1728/2118/52 1729/2119/52 +f 1727/2120/66 1730/2117/66 1725/2121/66 +f 1724/2122/64 1728/2118/64 1726/2123/64 +f 1726/2124/67 1731/2125/67 1727/2126/67 +f 1725/2127/65 1729/2119/65 1724/2128/65 +f 1740/2129/67 1735/2130/67 1734/2131/67 +f 1735/2130/78 1742/2132/78 1733/2133/78 +f 1737/2134/64 1744/2135/64 1747/2136/64 +f 1742/2132/65 1732/2137/65 1733/2133/65 +f 1737/2134/79 1746/2138/79 1736/2139/79 +f 1738/2140/80 1744/2141/80 1739/2142/80 +f 1741/2143/81 1734/2131/81 1732/2144/81 +f 1736/2139/66 1745/2145/66 1738/2140/66 +f 1749/2146/66 1755/2147/66 1754/2148/66 +f 1748/2149/64 1752/2150/64 1750/2151/64 +f 1750/2151/82 1755/2147/82 1751/2152/82 +f 1749/2146/83 1753/2153/83 1748/2154/83 +f 1757/2155/65 1758/2156/65 1756/2157/65 +f 1760/2158/67 1762/2159/67 1761/2160/67 +f 1759/2161/66 1760/2158/66 1758/2156/66 +f 1756/2157/64 1762/2162/64 1757/2155/64 +f 1757/2155/53 1763/2163/53 1759/2161/53 +f 1756/2157/52 1760/2164/52 1761/2165/52 +f 1770/2166/52 1768/2167/52 1769/2168/52 +f 1767/2169/65 1770/2166/65 1765/2170/65 +f 1764/2171/67 1768/2167/67 1766/2172/67 +f 1766/2173/66 1771/2174/66 1767/2175/66 +f 1765/2176/64 1769/2168/64 1764/2177/64 +f 1780/2178/66 1775/2179/66 1774/2180/66 +f 1775/2179/84 1782/2181/84 1773/2182/84 +f 1777/2183/67 1784/2184/67 1787/2185/67 +f 1782/2181/64 1772/2186/64 1773/2182/64 +f 1777/2183/85 1786/2187/85 1776/2188/85 +f 1778/2189/86 1784/2190/86 1779/2191/86 +f 1781/2192/87 1774/2180/87 1772/2193/87 +f 1776/2188/65 1785/2194/65 1778/2189/65 +f 1789/2195/65 1795/2196/65 1794/2197/65 +f 1788/2198/67 1792/2199/67 1790/2200/67 +f 1791/2201/88 1792/2199/88 1795/2196/88 +f 1789/2195/89 1793/2202/89 1788/2203/89 +f 1797/2204/55 1798/2205/55 1796/2206/55 +f 1800/2207/54 1802/2208/54 1801/2209/54 +f 1799/2210/57 1800/2207/57 1798/2205/57 +f 1796/2206/56 1802/2211/56 1797/2204/56 +f 1797/2204/53 1803/2212/53 1799/2210/53 +f 1798/2205/52 1801/2213/52 1796/2206/52 +f 1810/2214/52 1808/2215/52 1809/2216/52 +f 1807/2217/55 1810/2214/55 1805/2218/55 +f 1804/2219/54 1808/2215/54 1806/2220/54 +f 1806/2221/57 1811/2222/57 1807/2223/57 +f 1805/2224/56 1809/2216/56 1804/2225/56 +f 1820/2226/57 1815/2227/57 1814/2228/57 +f 1815/2227/90 1822/2229/90 1813/2230/90 +f 1817/2231/54 1824/2232/54 1827/2233/54 +f 1822/2229/56 1812/2234/56 1813/2230/56 +f 1817/2231/73 1826/2235/73 1816/2236/73 +f 1818/2237/72 1824/2238/72 1819/2239/72 +f 1812/2240/91 1820/2226/91 1814/2228/91 +f 1816/2236/55 1825/2241/55 1818/2237/55 +f 1829/2242/55 1835/2243/55 1834/2244/55 +f 1828/2245/54 1832/2246/54 1830/2247/54 +f 1830/2247/70 1835/2243/70 1831/2248/70 +f 1829/2242/69 1833/2249/69 1828/2250/69 +f 1837/2251/67 1838/2252/67 1836/2253/67 +f 1840/2254/65 1842/2255/65 1841/2256/65 +f 1839/2257/64 1840/2254/64 1838/2252/64 +f 1836/2253/66 1842/2258/66 1837/2251/66 +f 1837/2251/53 1843/2259/53 1839/2257/53 +f 1836/2253/52 1840/2260/52 1841/2261/52 +f 1850/2262/52 1848/2263/52 1849/2264/52 +f 1847/2265/67 1850/2262/67 1845/2266/67 +f 1844/2267/65 1848/2263/65 1846/2268/65 +f 1846/2269/64 1851/2270/64 1847/2271/64 +f 1845/2272/66 1849/2264/66 1844/2273/66 +f 1860/2274/64 1855/2275/64 1854/2276/64 +f 1855/2275/92 1862/2277/92 1853/2278/92 +f 1857/2279/65 1864/2280/65 1867/2281/65 +f 1862/2277/66 1852/2282/66 1853/2278/66 +f 1857/2279/89 1866/2283/89 1856/2284/89 +f 1858/2285/88 1864/2286/88 1859/2287/88 +f 1852/2288/93 1860/2274/93 1854/2276/93 +f 1856/2284/67 1865/2289/67 1858/2285/67 +f 1869/2290/67 1875/2291/67 1874/2292/67 +f 1868/2293/65 1872/2294/65 1870/2295/65 +f 1871/2296/86 1872/2294/86 1875/2291/86 +f 1869/2290/85 1873/2297/85 1868/2298/85 +f 1877/2299/64 1878/2300/64 1876/2301/64 +f 1880/2302/66 1882/2303/66 1881/2304/66 +f 1879/2305/65 1880/2302/65 1878/2300/65 +f 1876/2301/67 1882/2306/67 1877/2299/67 +f 1877/2299/53 1883/2307/53 1879/2305/53 +f 1878/2300/52 1881/2308/52 1876/2301/52 +f 1885/2309/66 1888/2310/66 1891/2311/66 +f 1885/2309/83 1890/2312/83 1884/2313/83 +f 1886/2314/82 1888/2315/82 1887/2316/82 +f 1884/2313/64 1889/2317/64 1886/2314/64 +f 1893/2318/64 1899/2319/64 1898/2320/64 +f 1892/2321/66 1896/2322/66 1894/2323/66 +f 1894/2323/80 1899/2319/80 1895/2324/80 +f 1893/2318/79 1897/2325/79 1892/2326/79 +f 1214/1496/52 1213/2327/52 1211/1497/52 +f 1187/1499/52 1191/1524/52 1192/1500/52 +f 1197/1502/53 1200/1527/53 1202/1503/53 +f 1192/1500/54 1197/1502/54 1198/1504/54 +f 1193/1506/55 1195/1519/55 1196/1507/55 +f 1194/1509/56 1198/1518/56 1195/1510/56 +f 1191/1512/57 1196/1521/57 1197/1513/57 +f 1202/1515/56 1206/2328/56 1203/1516/56 +f 1198/1518/53 1202/1515/53 1201/1517/53 +f 1195/1519/53 1201/1529/53 1199/1520/53 +f 1196/1521/53 1199/1525/53 1200/1522/53 +f 1189/1523/52 1193/1532/52 1191/1524/52 +f 1199/1525/57 1204/2329/57 1205/1526/57 +f 1200/1527/54 1205/2330/54 1206/1528/54 +f 1201/1529/55 1203/2331/55 1204/1530/55 +f 1190/1531/52 1194/1505/52 1193/1532/52 +f 1188/1501/52 1192/1500/52 1194/1505/52 +f 1208/1533/58 1207/1534/58 1187/1499/58 +f 1207/1534/59 1209/1535/59 1189/1523/59 +f 1209/1535/60 1210/1536/60 1190/1531/60 +f 1210/1536/61 1208/1533/61 1188/1501/61 +f 1223/1537/56 1220/2332/56 1217/1538/56 +f 1216/1540/52 1224/1543/52 1221/1541/52 +f 1220/2333/54 1223/2334/54 1219/1544/54 +f 1223/2334/54 1224/1543/54 1219/1544/54 +f 1215/1542/57 1218/2335/57 1219/1545/57 +f 1222/1539/58 1221/1541/58 1224/1543/58 +f 1218/1548/55 1215/1542/55 1221/1541/55 +f 1221/1541/55 1222/1546/55 1218/1548/55 +f 1235/1551/56 1226/2336/56 1234/2337/56 +f 1234/2337/56 1238/2338/56 1235/1551/56 +f 1238/2338/56 1237/1549/56 1235/1551/56 +f 1233/1552/55 1237/1549/55 1238/1553/55 +f 1231/1555/57 1230/1558/57 1233/1552/57 +f 1231/1559/54 1227/2339/54 1225/1557/54 +f 1227/2339/54 1228/2340/54 1225/1557/54 +f 1225/1557/54 1229/2341/54 1230/1558/54 +f 1230/1558/52 1229/2341/52 1239/1560/52 +f 1239/1560/52 1236/1550/52 1237/1549/52 +f 1233/1552/52 1230/1558/52 1239/1560/52 +f 1274/1561/53 1275/2342/53 1273/1562/53 +f 1273/1564/57 1278/1567/57 1277/1565/57 +f 1278/1567/52 1279/1570/52 1276/1568/52 +f 1274/1569/56 1276/1568/56 1279/1570/56 +f 1280/1572/57 1281/2343/57 1283/1573/57 +f 1272/1575/55 1277/1565/55 1276/1568/55 +f 1275/1577/54 1279/1570/54 1278/1567/54 +f 1249/1579/57 1266/1586/57 1265/1580/57 +f 1243/1582/54 1259/1588/54 1258/1583/54 +f 1251/1585/54 1267/1590/54 1266/1586/54 +f 1242/1587/56 1256/1608/56 1259/1588/56 +f 1250/1589/56 1264/1612/56 1267/1590/56 +f 1244/1591/55 1261/1598/55 1260/1592/55 +f 1252/1594/55 1269/1600/55 1268/1595/55 +f 1245/1597/57 1262/1602/57 1261/1598/57 +f 1253/1599/57 1270/1604/57 1269/1600/57 +f 1247/1601/54 1263/2344/54 1262/1602/54 +f 1255/1603/54 1271/1610/54 1270/1604/54 +f 1246/1593/56 1260/1592/56 1263/1605/56 +f 1240/1607/55 1257/1614/55 1256/1608/55 +f 1254/1609/56 1268/2345/56 1271/1610/56 +f 1248/1611/55 1265/2346/55 1264/1612/55 +f 1241/1613/57 1258/2347/57 1257/1614/57 +f 1284/1615/56 1286/2348/56 1287/1616/56 +f 1291/1618/54 1289/2349/54 1288/1619/54 +f 1295/1621/55 1294/2350/55 1292/1622/55 +f 1330/1624/53 1331/2351/53 1329/1625/53 +f 1329/1627/57 1334/1630/57 1333/1628/57 +f 1334/1630/52 1335/1633/52 1332/1631/52 +f 1330/1632/56 1332/1631/56 1335/1633/56 +f 1336/1635/57 1337/2352/57 1339/1636/57 +f 1328/1638/55 1333/1628/55 1332/1631/55 +f 1331/1640/54 1335/1633/54 1334/1630/54 +f 1305/1642/57 1322/1649/57 1321/1643/57 +f 1299/1645/54 1315/1651/54 1314/1646/54 +f 1307/1648/54 1323/1653/54 1322/1649/54 +f 1298/1650/56 1312/1671/56 1315/1651/56 +f 1306/1652/56 1320/1675/56 1323/1653/56 +f 1300/1654/55 1317/1661/55 1316/1655/55 +f 1308/1657/55 1325/1663/55 1324/1658/55 +f 1301/1660/57 1318/1665/57 1317/1661/57 +f 1309/1662/57 1326/1667/57 1325/1663/57 +f 1303/1664/54 1319/2353/54 1318/1665/54 +f 1311/1666/54 1327/1673/54 1326/1667/54 +f 1302/1656/56 1316/1655/56 1319/1668/56 +f 1296/1670/55 1313/1677/55 1312/1671/55 +f 1310/1672/56 1324/2354/56 1327/1673/56 +f 1304/1674/55 1321/2355/55 1320/1675/55 +f 1297/1676/57 1314/2356/57 1313/1677/57 +f 1340/1678/56 1342/2357/56 1343/1679/56 +f 1347/1681/54 1345/2358/54 1344/1682/54 +f 1351/1684/55 1350/2359/55 1348/1685/55 +f 1386/1687/53 1387/2360/53 1385/1688/53 +f 1385/1690/57 1390/1693/57 1389/1691/57 +f 1390/1693/52 1391/1696/52 1388/1694/52 +f 1386/1695/56 1388/1694/56 1391/1696/56 +f 1392/1698/57 1393/2361/57 1395/1699/57 +f 1384/1701/55 1389/1691/55 1388/1694/55 +f 1387/1703/54 1391/1696/54 1390/1693/54 +f 1361/1705/57 1378/1712/57 1377/1706/57 +f 1355/1708/54 1371/1714/54 1370/1709/54 +f 1363/1711/54 1379/1716/54 1378/1712/54 +f 1354/1713/56 1368/1734/56 1371/1714/56 +f 1362/1715/56 1376/1738/56 1379/1716/56 +f 1356/1717/55 1373/1724/55 1372/1718/55 +f 1364/1720/55 1381/1726/55 1380/1721/55 +f 1357/1723/57 1374/1728/57 1373/1724/57 +f 1365/1725/57 1382/1730/57 1381/1726/57 +f 1359/1727/54 1375/2362/54 1374/1728/54 +f 1367/1729/54 1383/1736/54 1382/1730/54 +f 1358/1719/56 1372/1718/56 1375/1731/56 +f 1352/1733/55 1369/1740/55 1368/1734/55 +f 1366/1735/56 1380/2363/56 1383/1736/56 +f 1360/1737/55 1377/2364/55 1376/1738/55 +f 1353/1739/57 1370/2365/57 1369/1740/57 +f 1396/1741/56 1398/2366/56 1399/1742/56 +f 1403/1744/54 1401/2367/54 1400/1745/54 +f 1407/1747/55 1406/2368/55 1404/1748/55 +f 1442/1750/53 1443/2369/53 1441/1751/53 +f 1441/1753/57 1446/1756/57 1445/1754/57 +f 1446/1756/52 1447/1759/52 1444/1757/52 +f 1442/1758/56 1444/1757/56 1447/1759/56 +f 1448/1761/57 1449/2370/57 1451/1762/57 +f 1440/1764/55 1445/1754/55 1444/1757/55 +f 1443/1766/54 1447/1759/54 1446/1756/54 +f 1417/1768/57 1434/1775/57 1433/1769/57 +f 1411/1771/54 1427/1777/54 1426/1772/54 +f 1419/1774/54 1435/1779/54 1434/1775/54 +f 1410/1776/56 1424/1797/56 1427/1777/56 +f 1418/1778/56 1432/1801/56 1435/1779/56 +f 1412/1780/55 1429/1787/55 1428/1781/55 +f 1420/1783/55 1437/1789/55 1436/1784/55 +f 1413/1786/57 1430/1791/57 1429/1787/57 +f 1421/1788/57 1438/1793/57 1437/1789/57 +f 1415/1790/54 1431/2371/54 1430/1791/54 +f 1423/1792/54 1439/1799/54 1438/1793/54 +f 1414/1782/56 1428/1781/56 1431/1794/56 +f 1408/1796/55 1425/1803/55 1424/1797/55 +f 1422/1798/56 1436/2372/56 1439/1799/56 +f 1416/1800/55 1433/2373/55 1432/1801/55 +f 1409/1802/57 1426/2374/57 1425/1803/57 +f 1452/1804/56 1454/2375/56 1455/1805/56 +f 1459/1807/54 1457/2376/54 1456/1808/54 +f 1463/1810/55 1462/2377/55 1460/1811/55 +f 1493/1819/53 1473/2378/53 1472/1820/53 +f 1470/1822/64 1471/1847/64 1472/1823/64 +f 1484/1825/52 1471/1847/52 1470/1822/52 +f 1483/1826/65 1470/1822/65 1473/1827/65 +f 1475/1829/53 1477/2379/53 1488/1830/53 +f 1480/1832/52 1476/1836/52 1474/1833/52 +f 1475/1835/66 1474/1833/66 1476/1836/66 +f 1479/1834/67 1474/1833/67 1475/1838/67 +f 1487/1840/55 1484/2380/55 1485/1841/55 +f 1488/1843/54 1480/1859/54 1481/1844/54 +f 1487/1846/67 1472/2381/67 1471/1847/67 +f 1488/1848/65 1477/2382/65 1476/1836/65 +f 1492/1849/57 1482/1858/57 1483/1850/57 +f 1491/1852/56 1478/1860/56 1479/1853/56 +f 1487/1857/53 1486/2383/53 1491/2384/53 +f 1491/2384/53 1490/2385/53 1488/1855/53 +f 1488/1855/53 1489/2386/53 1492/1856/53 +f 1492/1856/53 1493/2387/53 1487/1857/53 +f 1487/1857/53 1491/2384/53 1488/1855/53 +f 1478/1860/52 1485/1841/52 1484/2380/52 +f 1484/2380/52 1483/1850/52 1482/1858/52 +f 1482/1858/52 1481/1844/52 1480/1859/52 +f 1480/1859/52 1479/1853/52 1478/1860/52 +f 1478/1860/52 1484/2380/52 1482/1858/52 +f 1489/1845/65 1481/1844/65 1482/1861/65 +f 1486/1842/67 1485/1841/67 1478/1863/67 +f 1549/1865/67 1550/1940/67 1557/1866/67 +f 1505/1868/56 1528/2388/56 1527/1869/56 +f 1546/1871/65 1554/1938/65 1553/1872/65 +f 1557/1876/52 1550/1940/52 1551/2389/52 +f 1551/2389/52 1552/1929/52 1553/1874/52 +f 1553/1874/52 1554/1938/52 1555/1875/52 +f 1555/1875/52 1556/1926/52 1557/1876/52 +f 1557/1876/52 1551/2389/52 1553/1874/52 +f 1548/1879/53 1549/2390/53 1544/2391/53 +f 1544/2391/53 1545/2392/53 1547/1877/53 +f 1547/1877/53 1546/2393/53 1543/1878/53 +f 1543/1878/53 1542/2394/53 1548/1879/53 +f 1548/1879/53 1544/2391/53 1547/1877/53 +f 1500/1880/56 1510/2395/56 1511/1881/56 +f 1506/1883/57 1530/1912/57 1533/1884/57 +f 1508/1885/55 1533/1884/55 1532/1886/55 +f 1509/1888/56 1532/2396/56 1531/1889/56 +f 1495/1891/57 1516/1899/57 1517/1892/57 +f 1494/1893/55 1517/1892/55 1514/1894/55 +f 1503/1870/54 1527/1869/54 1526/1896/54 +f 1497/1898/54 1515/1901/54 1516/1899/54 +f 1496/1900/56 1514/2397/56 1515/1901/56 +f 1498/1902/55 1513/1910/55 1510/1903/55 +f 1504/1905/55 1529/1911/55 1528/1906/55 +f 1501/1882/54 1511/1881/54 1512/1908/54 +f 1499/1909/57 1512/1908/57 1513/1910/57 +f 1502/1897/57 1526/1896/57 1529/1911/57 +f 1507/1890/54 1531/1889/54 1530/1912/54 +f 1539/1913/67 1534/2398/67 1518/1914/67 +f 1540/1916/65 1537/2399/65 1521/1917/65 +f 1520/1919/64 1536/2400/64 1538/1920/64 +f 1519/1922/66 1535/2401/66 1541/1923/66 +f 1544/1925/56 1557/1876/56 1556/1926/56 +f 1543/1928/57 1553/1874/57 1552/1929/57 +f 1547/1931/65 1574/2402/65 1575/1932/65 +f 1548/1934/67 1579/2403/67 1580/1935/67 +f 1547/1937/54 1555/1875/54 1554/1938/54 +f 1548/1939/55 1551/2389/55 1550/1940/55 +f 1559/1943/53 1558/2404/53 1565/2405/53 +f 1565/2405/53 1564/2406/53 1563/1941/53 +f 1563/1941/53 1562/2407/53 1561/1942/53 +f 1561/1942/53 1560/2408/53 1559/1943/53 +f 1559/1943/53 1565/2405/53 1563/1941/53 +f 1573/1946/52 1566/1965/52 1567/1962/52 +f 1567/1962/52 1568/1957/52 1569/1944/52 +f 1569/1944/52 1570/1964/52 1571/1945/52 +f 1571/1945/52 1572/1954/52 1573/1946/52 +f 1573/1946/52 1567/1962/52 1569/1944/52 +f 1562/1947/65 1570/1964/65 1569/1948/65 +f 1558/1950/67 1566/1965/67 1573/1951/67 +f 1565/1953/56 1573/1946/56 1572/1954/56 +f 1561/1956/57 1569/1944/57 1568/1957/57 +f 1564/1959/66 1572/2409/66 1571/1945/66 +f 1560/1961/64 1568/2410/64 1567/1962/64 +f 1563/1960/54 1571/1945/54 1570/1964/54 +f 1559/1963/55 1567/1962/55 1566/1965/55 +f 1556/1966/67 1577/1971/67 1576/1967/67 +f 1576/1969/66 1577/1971/66 1575/1932/66 +f 1555/1933/52 1575/1932/52 1577/1971/52 +f 1576/1972/53 1574/2411/53 1547/1973/53 +f 1552/1975/65 1581/1978/65 1578/1976/65 +f 1551/1936/52 1580/1935/52 1581/1978/52 +f 1581/1978/64 1580/1935/64 1579/1979/64 +f 1542/1981/53 1578/2412/53 1579/1982/53 +f 1583/1984/54 1585/1990/54 1584/1985/54 +f 1586/1987/55 1589/2413/55 1588/1988/55 +f 1585/1990/56 1589/2413/56 1586/1987/56 +f 1582/1986/57 1587/2414/57 1588/1991/57 +f 1583/1984/53 1588/2415/53 1589/1992/53 +f 1584/1985/52 1586/2416/52 1587/1993/52 +f 1596/1994/52 1597/2002/52 1594/1995/52 +f 1593/1997/54 1597/2002/54 1596/1994/54 +f 1590/1999/55 1595/1996/55 1594/1995/55 +f 1592/2001/56 1594/1995/56 1597/2002/56 +f 1591/2004/57 1596/1994/57 1595/1996/57 +f 1606/2006/56 1609/2417/56 1601/2007/56 +f 1601/2007/68 1609/2417/68 1608/2009/68 +f 1603/2011/55 1605/2418/55 1610/2012/55 +f 1608/2009/57 1607/2419/57 1598/2014/57 +f 1603/2011/69 1613/2013/69 1612/2015/69 +f 1604/2017/70 1611/2022/70 1610/2018/70 +f 1607/2020/71 1606/2006/71 1600/2008/71 +f 1602/2016/54 1612/2015/54 1611/2022/54 +f 1615/2023/54 1617/2029/54 1621/2024/54 +f 1614/2026/55 1619/2420/55 1618/2027/55 +f 1616/2028/72 1618/2027/72 1621/2024/72 +f 1615/2023/73 1620/2025/73 1619/2030/73 +f 1624/2032/74 1625/2421/74 1627/2033/74 +f 1622/2035/65 1624/2032/65 1626/2034/65 +f 1623/2037/75 1622/2035/75 1629/2036/75 +f 1625/2039/67 1623/2037/67 1628/2038/67 +f 1717/2041/66 1719/2113/66 1718/2042/66 +f 1636/2050/65 1644/2422/65 1649/2051/65 +f 1639/2053/67 1647/2423/67 1650/2054/67 +f 1648/2056/66 1646/2424/66 1638/2057/66 +f 1651/2059/64 1645/2425/64 1637/2060/64 +f 1655/2062/56 1653/2426/56 1652/2063/56 +f 1659/2065/57 1658/2427/57 1656/2066/57 +f 1660/2068/55 1661/2428/55 1663/2069/55 +f 1664/2071/54 1666/2429/54 1667/2072/54 +f 1671/2074/56 1669/2430/56 1668/2075/56 +f 1675/2077/57 1674/2431/57 1672/2078/57 +f 1676/2080/55 1677/2432/55 1679/2081/55 +f 1680/2083/54 1682/2433/54 1683/2084/54 +f 1687/2086/56 1685/2434/56 1684/2087/56 +f 1691/2089/57 1690/2435/57 1688/2090/57 +f 1692/2092/55 1693/2436/55 1695/2093/55 +f 1696/2095/54 1698/2437/54 1699/2096/54 +f 1703/2098/56 1701/2438/56 1700/2099/56 +f 1707/2101/57 1706/2439/57 1704/2102/57 +f 1708/2104/55 1709/2440/55 1711/2105/55 +f 1712/2107/54 1714/2441/54 1715/2108/54 +f 1720/2110/64 1723/2442/64 1722/2111/64 +f 1719/2113/67 1723/2442/67 1720/2110/67 +f 1716/2043/65 1721/2443/65 1722/2114/65 +f 1717/2041/53 1722/2444/53 1723/2115/53 +f 1718/2042/52 1720/2445/52 1721/2116/52 +f 1730/2117/52 1731/2125/52 1728/2118/52 +f 1727/2120/66 1731/2125/66 1730/2117/66 +f 1724/2122/64 1729/2119/64 1728/2118/64 +f 1726/2124/67 1728/2118/67 1731/2125/67 +f 1725/2127/65 1730/2117/65 1729/2119/65 +f 1740/2129/67 1743/2446/67 1735/2130/67 +f 1735/2130/78 1743/2446/78 1742/2132/78 +f 1737/2134/64 1739/2447/64 1744/2135/64 +f 1742/2132/65 1741/2448/65 1732/2137/65 +f 1737/2134/79 1747/2136/79 1746/2138/79 +f 1738/2140/80 1745/2145/80 1744/2141/80 +f 1741/2143/81 1740/2129/81 1734/2131/81 +f 1736/2139/66 1746/2138/66 1745/2145/66 +f 1749/2146/66 1751/2152/66 1755/2147/66 +f 1748/2149/64 1753/2449/64 1752/2150/64 +f 1750/2151/82 1752/2150/82 1755/2147/82 +f 1749/2146/83 1754/2148/83 1753/2153/83 +f 1757/2155/65 1759/2161/65 1758/2156/65 +f 1760/2158/67 1763/2450/67 1762/2159/67 +f 1759/2161/66 1763/2450/66 1760/2158/66 +f 1756/2157/64 1761/2451/64 1762/2162/64 +f 1757/2155/53 1762/2452/53 1763/2163/53 +f 1756/2157/52 1758/2156/52 1760/2164/52 +f 1770/2166/52 1771/2174/52 1768/2167/52 +f 1767/2169/65 1771/2174/65 1770/2166/65 +f 1764/2171/67 1769/2168/67 1768/2167/67 +f 1766/2173/66 1768/2167/66 1771/2174/66 +f 1765/2176/64 1770/2166/64 1769/2168/64 +f 1780/2178/66 1783/2453/66 1775/2179/66 +f 1775/2179/84 1783/2453/84 1782/2181/84 +f 1777/2183/67 1779/2454/67 1784/2184/67 +f 1782/2181/64 1781/2455/64 1772/2186/64 +f 1777/2183/85 1787/2185/85 1786/2187/85 +f 1778/2189/86 1785/2194/86 1784/2190/86 +f 1781/2192/87 1780/2178/87 1774/2180/87 +f 1776/2188/65 1786/2187/65 1785/2194/65 +f 1789/2195/65 1791/2201/65 1795/2196/65 +f 1788/2198/67 1793/2456/67 1792/2199/67 +f 1791/2201/88 1790/2200/88 1792/2199/88 +f 1789/2195/89 1794/2197/89 1793/2202/89 +f 1797/2204/55 1799/2210/55 1798/2205/55 +f 1800/2207/54 1803/2457/54 1802/2208/54 +f 1799/2210/57 1803/2457/57 1800/2207/57 +f 1796/2206/56 1801/2458/56 1802/2211/56 +f 1797/2204/53 1802/2459/53 1803/2212/53 +f 1798/2205/52 1800/2460/52 1801/2213/52 +f 1810/2214/52 1811/2222/52 1808/2215/52 +f 1807/2217/55 1811/2222/55 1810/2214/55 +f 1804/2219/54 1809/2216/54 1808/2215/54 +f 1806/2221/57 1808/2215/57 1811/2222/57 +f 1805/2224/56 1810/2214/56 1809/2216/56 +f 1820/2226/57 1823/2461/57 1815/2227/57 +f 1815/2227/90 1823/2461/90 1822/2229/90 +f 1817/2231/54 1819/2462/54 1824/2232/54 +f 1822/2229/56 1821/2463/56 1812/2234/56 +f 1817/2231/73 1827/2233/73 1826/2235/73 +f 1818/2237/72 1825/2241/72 1824/2238/72 +f 1812/2240/91 1821/2464/91 1820/2226/91 +f 1816/2236/55 1826/2235/55 1825/2241/55 +f 1829/2242/55 1831/2248/55 1835/2243/55 +f 1828/2245/54 1833/2465/54 1832/2246/54 +f 1830/2247/70 1832/2246/70 1835/2243/70 +f 1829/2242/69 1834/2244/69 1833/2249/69 +f 1837/2251/67 1839/2257/67 1838/2252/67 +f 1840/2254/65 1843/2466/65 1842/2255/65 +f 1839/2257/64 1843/2466/64 1840/2254/64 +f 1836/2253/66 1841/2467/66 1842/2258/66 +f 1837/2251/53 1842/2468/53 1843/2259/53 +f 1836/2253/52 1838/2252/52 1840/2260/52 +f 1850/2262/52 1851/2270/52 1848/2263/52 +f 1847/2265/67 1851/2270/67 1850/2262/67 +f 1844/2267/65 1849/2264/65 1848/2263/65 +f 1846/2269/64 1848/2263/64 1851/2270/64 +f 1845/2272/66 1850/2262/66 1849/2264/66 +f 1860/2274/64 1863/2469/64 1855/2275/64 +f 1855/2275/92 1863/2469/92 1862/2277/92 +f 1857/2279/65 1859/2470/65 1864/2280/65 +f 1862/2277/66 1861/2471/66 1852/2282/66 +f 1857/2279/89 1867/2281/89 1866/2283/89 +f 1858/2285/88 1865/2289/88 1864/2286/88 +f 1852/2288/93 1861/2472/93 1860/2274/93 +f 1856/2284/67 1866/2283/67 1865/2289/67 +f 1869/2290/67 1871/2296/67 1875/2291/67 +f 1868/2293/65 1873/2473/65 1872/2294/65 +f 1871/2296/86 1870/2295/86 1872/2294/86 +f 1869/2290/85 1874/2292/85 1873/2297/85 +f 1877/2299/64 1879/2305/64 1878/2300/64 +f 1880/2302/66 1883/2474/66 1882/2303/66 +f 1879/2305/65 1883/2474/65 1880/2302/65 +f 1876/2301/67 1881/2475/67 1882/2306/67 +f 1877/2299/53 1882/2476/53 1883/2307/53 +f 1878/2300/52 1880/2477/52 1881/2308/52 +f 1885/2309/66 1887/2478/66 1888/2310/66 +f 1885/2309/83 1891/2311/83 1890/2312/83 +f 1886/2314/82 1889/2317/82 1888/2315/82 +f 1884/2313/64 1890/2312/64 1889/2317/64 +f 1893/2318/64 1895/2324/64 1899/2319/64 +f 1892/2321/66 1897/2479/66 1896/2322/66 +f 1894/2323/80 1896/2322/80 1899/2319/80 +f 1893/2318/79 1898/2320/79 1897/2325/79 o Huge_Rope v 0.375000 5.500000 2.500000 v 0.198223 5.573223 2.500000 @@ -6403,70 +6407,70 @@ vn 0.7071 0.7071 0.0000 vn -0.0000 1.0000 0.0000 vn -0.7071 0.7071 0.0000 s 1 -f 1902/2476/94 1909/2477/95 1901/2478/95 -f 1901/2478/95 1908/2479/96 1900/2480/96 -f 1907/2481/97 1914/2482/98 1906/2483/98 -f 1907/2481/97 1908/2484/96 1915/2485/97 -f 1905/2486/99 1912/2487/100 1904/2488/100 -f 1903/2489/101 1910/2490/94 1902/2476/94 -f 1906/2483/98 1913/2491/99 1905/2486/99 -f 1904/2488/100 1911/2492/101 1903/2489/101 -f 1918/2493/94 1925/2494/95 1917/2495/95 -f 1917/2495/95 1924/2496/96 1916/2497/96 -f 1923/2498/97 1930/2499/98 1922/2500/98 -f 1923/2498/97 1924/2501/96 1931/2502/97 -f 1921/2503/99 1928/2504/100 1920/2505/100 -f 1919/2506/101 1926/2507/94 1918/2493/94 -f 1922/2500/98 1929/2508/99 1921/2503/99 -f 1920/2505/100 1927/2509/101 1919/2506/101 -f 1934/2510/94 1941/2511/95 1933/2512/95 -f 1933/2512/95 1940/2513/96 1932/2514/96 -f 1939/2515/97 1946/2516/98 1938/2517/98 -f 1939/2515/97 1940/2518/96 1947/2519/97 -f 1937/2520/99 1944/2521/100 1936/2522/100 -f 1935/2523/101 1942/2524/94 1934/2510/94 -f 1938/2517/98 1945/2525/99 1937/2520/99 -f 1936/2522/100 1943/2526/101 1935/2523/101 -f 1950/2527/94 1957/2528/95 1949/2529/95 -f 1949/2529/95 1956/2530/96 1948/2531/96 -f 1955/2532/97 1962/2533/98 1954/2534/98 -f 1955/2532/97 1956/2535/96 1963/2536/97 -f 1953/2537/99 1960/2538/100 1952/2539/100 -f 1951/2540/101 1958/2541/94 1950/2527/94 -f 1954/2534/98 1961/2542/99 1953/2537/99 -f 1952/2539/100 1959/2543/101 1951/2540/101 -f 1902/2476/94 1910/2490/94 1909/2477/95 -f 1901/2478/95 1909/2477/95 1908/2479/96 -f 1907/2481/97 1915/2485/97 1914/2482/98 -f 1907/2481/97 1900/2544/96 1908/2484/96 -f 1905/2486/99 1913/2491/99 1912/2487/100 -f 1903/2489/101 1911/2492/101 1910/2490/94 -f 1906/2483/98 1914/2482/98 1913/2491/99 -f 1904/2488/100 1912/2487/100 1911/2492/101 -f 1918/2493/94 1926/2507/94 1925/2494/95 -f 1917/2495/95 1925/2494/95 1924/2496/96 -f 1923/2498/97 1931/2502/97 1930/2499/98 -f 1923/2498/97 1916/2545/96 1924/2501/96 -f 1921/2503/99 1929/2508/99 1928/2504/100 -f 1919/2506/101 1927/2509/101 1926/2507/94 -f 1922/2500/98 1930/2499/98 1929/2508/99 -f 1920/2505/100 1928/2504/100 1927/2509/101 -f 1934/2510/94 1942/2524/94 1941/2511/95 -f 1933/2512/95 1941/2511/95 1940/2513/96 -f 1939/2515/97 1947/2519/97 1946/2516/98 -f 1939/2515/97 1932/2546/96 1940/2518/96 -f 1937/2520/99 1945/2525/99 1944/2521/100 -f 1935/2523/101 1943/2526/101 1942/2524/94 -f 1938/2517/98 1946/2516/98 1945/2525/99 -f 1936/2522/100 1944/2521/100 1943/2526/101 -f 1950/2527/94 1958/2541/94 1957/2528/95 -f 1949/2529/95 1957/2528/95 1956/2530/96 -f 1955/2532/97 1963/2536/97 1962/2533/98 -f 1955/2532/97 1948/2547/96 1956/2535/96 -f 1953/2537/99 1961/2542/99 1960/2538/100 -f 1951/2540/101 1959/2543/101 1958/2541/94 -f 1954/2534/98 1962/2533/98 1961/2542/99 -f 1952/2539/100 1960/2538/100 1959/2543/101 +f 1902/2480/94 1909/2481/95 1901/2482/95 +f 1901/2482/95 1908/2483/96 1900/2484/96 +f 1907/2485/97 1914/2486/98 1906/2487/98 +f 1907/2485/97 1908/2488/96 1915/2489/97 +f 1905/2490/99 1912/2491/100 1904/2492/100 +f 1903/2493/101 1910/2494/94 1902/2480/94 +f 1906/2487/98 1913/2495/99 1905/2490/99 +f 1904/2492/100 1911/2496/101 1903/2493/101 +f 1918/2497/94 1925/2498/95 1917/2499/95 +f 1917/2499/95 1924/2500/96 1916/2501/96 +f 1923/2502/97 1930/2503/98 1922/2504/98 +f 1923/2502/97 1924/2505/96 1931/2506/97 +f 1921/2507/99 1928/2508/100 1920/2509/100 +f 1919/2510/101 1926/2511/94 1918/2497/94 +f 1922/2504/98 1929/2512/99 1921/2507/99 +f 1920/2509/100 1927/2513/101 1919/2510/101 +f 1934/2514/94 1941/2515/95 1933/2516/95 +f 1933/2516/95 1940/2517/96 1932/2518/96 +f 1939/2519/97 1946/2520/98 1938/2521/98 +f 1939/2519/97 1940/2522/96 1947/2523/97 +f 1937/2524/99 1944/2525/100 1936/2526/100 +f 1935/2527/101 1942/2528/94 1934/2514/94 +f 1938/2521/98 1945/2529/99 1937/2524/99 +f 1936/2526/100 1943/2530/101 1935/2527/101 +f 1950/2531/94 1957/2532/95 1949/2533/95 +f 1949/2533/95 1956/2534/96 1948/2535/96 +f 1955/2536/97 1962/2537/98 1954/2538/98 +f 1955/2536/97 1956/2539/96 1963/2540/97 +f 1953/2541/99 1960/2542/100 1952/2543/100 +f 1951/2544/101 1958/2545/94 1950/2531/94 +f 1954/2538/98 1961/2546/99 1953/2541/99 +f 1952/2543/100 1959/2547/101 1951/2544/101 +f 1902/2480/94 1910/2494/94 1909/2481/95 +f 1901/2482/95 1909/2481/95 1908/2483/96 +f 1907/2485/97 1915/2489/97 1914/2486/98 +f 1907/2485/97 1900/2548/96 1908/2488/96 +f 1905/2490/99 1913/2495/99 1912/2491/100 +f 1903/2493/101 1911/2496/101 1910/2494/94 +f 1906/2487/98 1914/2486/98 1913/2495/99 +f 1904/2492/100 1912/2491/100 1911/2496/101 +f 1918/2497/94 1926/2511/94 1925/2498/95 +f 1917/2499/95 1925/2498/95 1924/2500/96 +f 1923/2502/97 1931/2506/97 1930/2503/98 +f 1923/2502/97 1916/2549/96 1924/2505/96 +f 1921/2507/99 1929/2512/99 1928/2508/100 +f 1919/2510/101 1927/2513/101 1926/2511/94 +f 1922/2504/98 1930/2503/98 1929/2512/99 +f 1920/2509/100 1928/2508/100 1927/2513/101 +f 1934/2514/94 1942/2528/94 1941/2515/95 +f 1933/2516/95 1941/2515/95 1940/2517/96 +f 1939/2519/97 1947/2523/97 1946/2520/98 +f 1939/2519/97 1932/2550/96 1940/2522/96 +f 1937/2524/99 1945/2529/99 1944/2525/100 +f 1935/2527/101 1943/2530/101 1942/2528/94 +f 1938/2521/98 1946/2520/98 1945/2529/99 +f 1936/2526/100 1944/2525/100 1943/2530/101 +f 1950/2531/94 1958/2545/94 1957/2532/95 +f 1949/2533/95 1957/2532/95 1956/2534/96 +f 1955/2536/97 1963/2540/97 1962/2537/98 +f 1955/2536/97 1948/2551/96 1956/2539/96 +f 1953/2541/99 1961/2546/99 1960/2542/100 +f 1951/2544/101 1959/2547/101 1958/2545/94 +f 1954/2538/98 1962/2537/98 1961/2546/99 +f 1952/2543/100 1960/2542/100 1959/2547/101 o Huge_Pivot v 0.562500 1.500000 -2.812500 v 0.937500 1.500000 -2.812500 @@ -6699,98 +6703,98 @@ vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 vn -1.0000 0.0000 0.0000 s off -f 2005/2548/102 2009/2549/102 2004/2550/102 -f 2006/2551/103 2011/2552/103 2007/2553/103 -f 1974/2554/104 1973/2555/104 1972/2556/104 -f 1978/2557/104 1977/2558/104 1976/2559/104 -f 1982/2560/105 1980/2561/105 1981/2562/105 -f 1986/2563/105 1984/2564/105 1985/2565/105 -f 1970/2566/103 1987/2567/103 1971/2568/103 -f 1969/2569/102 1985/2570/102 1968/2571/102 -f 1966/2572/103 1983/2573/103 1967/2574/103 -f 1965/2575/102 1981/2576/102 1964/2577/102 -f 1971/2578/106 1986/2579/106 1969/2569/106 -f 1968/2571/107 1984/2564/107 1970/2566/107 -f 1967/2580/106 1982/2581/106 1965/2575/106 -f 1964/2577/107 1980/2561/107 1966/2572/107 -f 1990/2582/105 1988/2583/105 1989/2584/105 -f 1994/2585/105 1992/2586/105 1993/2587/105 -f 1973/2588/102 1989/2589/102 1972/2590/102 -f 1979/2591/106 1994/2592/106 1977/2593/106 -f 1976/2594/107 1992/2586/107 1978/2595/107 -f 1975/2596/106 1990/2597/106 1973/2588/106 -f 1972/2590/107 1988/2583/107 1974/2598/107 -f 1978/2595/103 1995/2599/103 1979/2600/103 -f 1977/2593/102 1993/2601/102 1976/2594/102 -f 1974/2598/103 1991/2602/103 1975/2603/103 -f 1998/2604/103 2003/2605/103 1999/2606/103 -f 1997/2607/102 2001/2608/102 1996/2609/102 -f 1999/2610/106 2002/2611/106 1997/2607/106 -f 1996/2609/107 2000/2612/107 1998/2604/107 -f 2007/2613/106 2010/2614/106 2005/2548/106 -f 2004/2550/107 2008/2615/107 2006/2551/107 -f 2021/2616/102 2025/2617/102 2020/2618/102 -f 2022/2619/103 2027/2620/103 2023/2621/103 -f 2014/2622/103 2019/2623/103 2015/2624/103 -f 2013/2625/102 2017/2626/102 2012/2627/102 -f 2015/2628/106 2018/2629/106 2013/2625/106 -f 2012/2627/107 2016/2630/107 2014/2622/107 -f 2023/2631/106 2026/2632/106 2021/2616/106 -f 2020/2618/107 2024/2633/107 2022/2619/107 -f 2028/2634/106 2031/2635/106 2029/2636/106 -f 2035/2637/107 2032/2638/107 2033/2639/107 -f 2037/2640/102 2038/2641/102 2039/2642/102 -f 2042/2643/103 2041/2644/103 2043/2645/103 -f 2047/2646/107 2044/2647/107 2045/2648/107 -f 2048/2649/106 2051/2650/106 2049/2651/106 -f 2054/2652/103 2053/2653/103 2055/2654/103 -f 2057/2655/102 2058/2656/102 2059/2657/102 -f 2005/2548/102 2010/2614/102 2009/2549/102 -f 2006/2551/103 2008/2615/103 2011/2552/103 -f 1974/2554/104 1975/2658/104 1973/2555/104 -f 1978/2557/104 1979/2659/104 1977/2558/104 -f 1982/2560/105 1983/2573/105 1980/2561/105 -f 1986/2563/105 1987/2567/105 1984/2564/105 -f 1970/2566/103 1984/2564/103 1987/2567/103 -f 1969/2569/102 1986/2579/102 1985/2570/102 -f 1966/2572/103 1980/2561/103 1983/2573/103 -f 1965/2575/102 1982/2581/102 1981/2576/102 -f 1971/2578/106 1987/2660/106 1986/2579/106 -f 1968/2571/107 1985/2570/107 1984/2564/107 -f 1967/2580/106 1983/2661/106 1982/2581/106 -f 1964/2577/107 1981/2576/107 1980/2561/107 -f 1990/2582/105 1991/2602/105 1988/2583/105 -f 1994/2585/105 1995/2599/105 1992/2586/105 -f 1973/2588/102 1990/2597/102 1989/2589/102 -f 1979/2591/106 1995/2662/106 1994/2592/106 -f 1976/2594/107 1993/2601/107 1992/2586/107 -f 1975/2596/106 1991/2663/106 1990/2597/106 -f 1972/2590/107 1989/2589/107 1988/2583/107 -f 1978/2595/103 1992/2586/103 1995/2599/103 -f 1977/2593/102 1994/2592/102 1993/2601/102 -f 1974/2598/103 1988/2583/103 1991/2602/103 -f 1998/2604/103 2000/2612/103 2003/2605/103 -f 1997/2607/102 2002/2611/102 2001/2608/102 -f 1999/2610/106 2003/2664/106 2002/2611/106 -f 1996/2609/107 2001/2608/107 2000/2612/107 -f 2007/2613/106 2011/2665/106 2010/2614/106 -f 2004/2550/107 2009/2549/107 2008/2615/107 -f 2021/2616/102 2026/2632/102 2025/2617/102 -f 2022/2619/103 2024/2633/103 2027/2620/103 -f 2014/2622/103 2016/2630/103 2019/2623/103 -f 2013/2625/102 2018/2629/102 2017/2626/102 -f 2015/2628/106 2019/2666/106 2018/2629/106 -f 2012/2627/107 2017/2626/107 2016/2630/107 -f 2023/2631/106 2027/2667/106 2026/2632/106 -f 2020/2618/107 2025/2617/107 2024/2633/107 -f 2028/2634/106 2030/2668/106 2031/2635/106 -f 2035/2637/107 2034/2669/107 2032/2638/107 -f 2037/2640/102 2036/2670/102 2038/2641/102 -f 2042/2643/103 2040/2671/103 2041/2644/103 -f 2047/2646/107 2046/2672/107 2044/2647/107 -f 2048/2649/106 2050/2673/106 2051/2650/106 -f 2054/2652/103 2052/2674/103 2053/2653/103 -f 2057/2655/102 2056/2675/102 2058/2656/102 +f 2005/2552/102 2009/2553/102 2004/2554/102 +f 2006/2555/103 2011/2556/103 2007/2557/103 +f 1974/2558/104 1973/2559/104 1972/2560/104 +f 1978/2561/104 1977/2562/104 1976/2563/104 +f 1982/2564/105 1980/2565/105 1981/2566/105 +f 1986/2567/105 1984/2568/105 1985/2569/105 +f 1970/2570/103 1987/2571/103 1971/2572/103 +f 1969/2573/102 1985/2574/102 1968/2575/102 +f 1966/2576/103 1983/2577/103 1967/2578/103 +f 1965/2579/102 1981/2580/102 1964/2581/102 +f 1971/2582/106 1986/2583/106 1969/2573/106 +f 1968/2575/107 1984/2568/107 1970/2570/107 +f 1967/2584/106 1982/2585/106 1965/2579/106 +f 1964/2581/107 1980/2565/107 1966/2576/107 +f 1990/2586/105 1988/2587/105 1989/2588/105 +f 1994/2589/105 1992/2590/105 1993/2591/105 +f 1973/2592/102 1989/2593/102 1972/2594/102 +f 1979/2595/106 1994/2596/106 1977/2597/106 +f 1976/2598/107 1992/2590/107 1978/2599/107 +f 1975/2600/106 1990/2601/106 1973/2592/106 +f 1972/2594/107 1988/2587/107 1974/2602/107 +f 1978/2599/103 1995/2603/103 1979/2604/103 +f 1977/2597/102 1993/2605/102 1976/2598/102 +f 1974/2602/103 1991/2606/103 1975/2607/103 +f 1998/2608/103 2003/2609/103 1999/2610/103 +f 1997/2611/102 2001/2612/102 1996/2613/102 +f 1999/2614/106 2002/2615/106 1997/2611/106 +f 1996/2613/107 2000/2616/107 1998/2608/107 +f 2007/2617/106 2010/2618/106 2005/2552/106 +f 2004/2554/107 2008/2619/107 2006/2555/107 +f 2021/2620/102 2025/2621/102 2020/2622/102 +f 2022/2623/103 2027/2624/103 2023/2625/103 +f 2014/2626/103 2019/2627/103 2015/2628/103 +f 2013/2629/102 2017/2630/102 2012/2631/102 +f 2015/2632/106 2018/2633/106 2013/2629/106 +f 2012/2631/107 2016/2634/107 2014/2626/107 +f 2023/2635/106 2026/2636/106 2021/2620/106 +f 2020/2622/107 2024/2637/107 2022/2623/107 +f 2028/2638/106 2031/2639/106 2029/2640/106 +f 2035/2641/107 2032/2642/107 2033/2643/107 +f 2037/2644/102 2038/2645/102 2039/2646/102 +f 2042/2647/103 2041/2648/103 2043/2649/103 +f 2047/2650/107 2044/2651/107 2045/2652/107 +f 2048/2653/106 2051/2654/106 2049/2655/106 +f 2054/2656/103 2053/2657/103 2055/2658/103 +f 2057/2659/102 2058/2660/102 2059/2661/102 +f 2005/2552/102 2010/2618/102 2009/2553/102 +f 2006/2555/103 2008/2619/103 2011/2556/103 +f 1974/2558/104 1975/2662/104 1973/2559/104 +f 1978/2561/104 1979/2663/104 1977/2562/104 +f 1982/2564/105 1983/2577/105 1980/2565/105 +f 1986/2567/105 1987/2571/105 1984/2568/105 +f 1970/2570/103 1984/2568/103 1987/2571/103 +f 1969/2573/102 1986/2583/102 1985/2574/102 +f 1966/2576/103 1980/2565/103 1983/2577/103 +f 1965/2579/102 1982/2585/102 1981/2580/102 +f 1971/2582/106 1987/2664/106 1986/2583/106 +f 1968/2575/107 1985/2574/107 1984/2568/107 +f 1967/2584/106 1983/2665/106 1982/2585/106 +f 1964/2581/107 1981/2580/107 1980/2565/107 +f 1990/2586/105 1991/2606/105 1988/2587/105 +f 1994/2589/105 1995/2603/105 1992/2590/105 +f 1973/2592/102 1990/2601/102 1989/2593/102 +f 1979/2595/106 1995/2666/106 1994/2596/106 +f 1976/2598/107 1993/2605/107 1992/2590/107 +f 1975/2600/106 1991/2667/106 1990/2601/106 +f 1972/2594/107 1989/2593/107 1988/2587/107 +f 1978/2599/103 1992/2590/103 1995/2603/103 +f 1977/2597/102 1994/2596/102 1993/2605/102 +f 1974/2602/103 1988/2587/103 1991/2606/103 +f 1998/2608/103 2000/2616/103 2003/2609/103 +f 1997/2611/102 2002/2615/102 2001/2612/102 +f 1999/2614/106 2003/2668/106 2002/2615/106 +f 1996/2613/107 2001/2612/107 2000/2616/107 +f 2007/2617/106 2011/2669/106 2010/2618/106 +f 2004/2554/107 2009/2553/107 2008/2619/107 +f 2021/2620/102 2026/2636/102 2025/2621/102 +f 2022/2623/103 2024/2637/103 2027/2624/103 +f 2014/2626/103 2016/2634/103 2019/2627/103 +f 2013/2629/102 2018/2633/102 2017/2630/102 +f 2015/2632/106 2019/2670/106 2018/2633/106 +f 2012/2631/107 2017/2630/107 2016/2634/107 +f 2023/2635/106 2027/2671/106 2026/2636/106 +f 2020/2622/107 2025/2621/107 2024/2637/107 +f 2028/2638/106 2030/2672/106 2031/2639/106 +f 2035/2641/107 2034/2673/107 2032/2642/107 +f 2037/2644/102 2036/2674/102 2038/2645/102 +f 2042/2647/103 2040/2675/103 2041/2648/103 +f 2047/2650/107 2046/2676/107 2044/2651/107 +f 2048/2653/106 2050/2677/106 2051/2654/106 +f 2054/2656/103 2052/2678/103 2053/2657/103 +f 2057/2659/102 2056/2679/102 2058/2660/102 o Huge_Erector v 0.562500 3.500000 -3.187500 v 0.562500 3.500000 -2.812500 @@ -7111,148 +7115,148 @@ vn 0.0000 0.0000 -1.0000 vn 0.7071 0.0000 0.7071 vn -0.7071 0.0000 0.7071 s off -f 2060/2676/108 2062/2677/108 2061/2678/108 -f 2066/2679/109 2064/2680/109 2065/2681/109 -f 2061/2682/110 2064/2680/110 2060/2676/110 -f 2062/2683/111 2065/2684/111 2061/2682/111 -f 2063/2685/112 2066/2686/112 2062/2683/112 -f 2060/2676/113 2067/2687/113 2063/2688/113 -f 2069/2689/113 2070/2690/113 2068/2691/113 -f 2079/2692/114 2073/2693/114 2077/2694/114 -f 2069/2695/110 2075/2696/110 2071/2697/110 -f 2069/2698/108 2068/2699/108 2077/2700/108 -f 2070/2701/112 2072/2702/112 2068/2703/112 -f 2070/2701/109 2071/2697/109 2078/2704/109 -f 2074/2705/115 2076/2706/115 2072/2707/115 -f 2078/2708/111 2077/2694/111 2076/2706/111 -f 2081/2709/113 2082/2710/113 2080/2711/113 -f 2091/2712/114 2085/2713/114 2089/2714/114 -f 2081/2715/110 2087/2716/110 2083/2717/110 -f 2081/2718/108 2080/2719/108 2089/2720/108 -f 2082/2710/112 2084/2721/112 2080/2722/112 -f 2082/2710/109 2083/2717/109 2090/2723/109 -f 2086/2724/115 2088/2725/115 2084/2726/115 -f 2090/2727/111 2089/2714/111 2088/2725/111 -f 2093/2728/113 2094/2729/113 2092/2730/113 -f 2103/2731/114 2097/2732/114 2101/2733/114 -f 2093/2734/110 2099/2735/110 2095/2736/110 -f 2093/2737/108 2092/2738/108 2101/2739/108 -f 2094/2729/112 2096/2740/112 2092/2741/112 -f 2094/2729/109 2095/2736/109 2102/2742/109 -f 2098/2743/115 2100/2744/115 2096/2745/115 -f 2102/2746/111 2101/2733/111 2100/2744/111 -f 2112/2747/108 2118/2748/108 2113/2749/108 -f 2108/2750/113 2110/2751/113 2109/2752/113 -f 2107/2753/109 2108/2750/109 2106/2754/109 -f 2104/2755/108 2110/2751/108 2105/2756/108 -f 2115/2757/109 2116/2758/109 2114/2759/109 -f 2116/2758/113 2118/2748/113 2117/2760/113 -f 2120/2761/108 2126/2762/108 2121/2763/108 -f 2123/2764/109 2124/2765/109 2122/2766/109 -f 2124/2765/113 2126/2762/113 2125/2767/113 -f 2135/2768/113 2142/2769/113 2134/2770/113 -f 2138/2771/110 2131/2772/110 2130/2773/110 -f 2140/2774/111 2133/2775/111 2132/2776/111 -f 2129/2777/112 2136/2778/112 2128/2779/112 -f 2144/2780/108 2146/2781/108 2145/2782/108 -f 2150/2783/109 2148/2784/109 2149/2785/109 -f 2145/2786/110 2148/2784/110 2144/2780/110 -f 2146/2787/111 2149/2788/111 2145/2786/111 -f 2147/2789/112 2150/2790/112 2146/2787/112 -f 2144/2780/113 2151/2791/113 2147/2792/113 -f 2152/2793/108 2154/2794/108 2153/2795/108 -f 2158/2796/109 2156/2797/109 2157/2798/109 -f 2153/2799/110 2156/2797/110 2152/2793/110 -f 2154/2800/111 2157/2801/111 2153/2799/111 -f 2155/2802/112 2158/2803/112 2154/2800/112 -f 2152/2793/113 2159/2804/113 2155/2805/113 -f 2160/2806/108 2162/2807/108 2161/2808/108 -f 2166/2809/109 2164/2810/109 2165/2811/109 -f 2161/2812/110 2164/2810/110 2160/2806/110 -f 2162/2813/111 2165/2814/111 2161/2812/111 -f 2163/2815/112 2166/2816/112 2162/2813/112 -f 2160/2806/113 2167/2817/113 2163/2818/113 -f 2182/2819/111 2175/2820/111 2174/2821/111 -f 2171/2822/112 2178/2823/112 2170/2824/112 -f 2173/2825/113 2180/2826/113 2172/2827/113 -f 2176/2828/110 2169/2829/110 2168/2830/110 -f 2060/2676/108 2063/2688/108 2062/2677/108 -f 2066/2679/109 2067/2687/109 2064/2680/109 -f 2061/2682/110 2065/2684/110 2064/2680/110 -f 2062/2683/111 2066/2686/111 2065/2684/111 -f 2063/2685/112 2067/2831/112 2066/2686/112 -f 2060/2676/113 2064/2680/113 2067/2687/113 -f 2069/2689/113 2071/2832/113 2070/2690/113 -f 2079/2692/114 2075/2696/114 2073/2693/114 -f 2069/2695/110 2073/2833/110 2075/2696/110 -f 2068/2699/108 2072/2834/108 2076/2835/108 -f 2077/2700/108 2073/2836/108 2069/2698/108 -f 2068/2699/108 2076/2835/108 2077/2700/108 -f 2070/2701/112 2074/2705/112 2072/2702/112 -f 2071/2697/109 2075/2696/109 2079/2837/109 -f 2078/2704/109 2074/2705/109 2070/2701/109 -f 2071/2697/109 2079/2837/109 2078/2704/109 -f 2074/2705/115 2078/2708/115 2076/2706/115 -f 2078/2708/111 2079/2692/111 2077/2694/111 -f 2081/2709/113 2083/2717/113 2082/2710/113 -f 2091/2712/114 2087/2716/114 2085/2713/114 -f 2081/2715/110 2085/2838/110 2087/2716/110 -f 2080/2719/108 2084/2839/108 2088/2840/108 -f 2089/2720/108 2085/2841/108 2081/2718/108 -f 2080/2719/108 2088/2840/108 2089/2720/108 -f 2082/2710/112 2086/2724/112 2084/2721/112 -f 2083/2717/109 2087/2716/109 2091/2842/109 -f 2090/2723/109 2086/2724/109 2082/2710/109 -f 2083/2717/109 2091/2842/109 2090/2723/109 -f 2086/2724/115 2090/2727/115 2088/2725/115 -f 2090/2727/111 2091/2712/111 2089/2714/111 -f 2093/2728/113 2095/2736/113 2094/2729/113 -f 2103/2731/114 2099/2735/114 2097/2732/114 -f 2093/2734/110 2097/2843/110 2099/2735/110 -f 2092/2738/108 2096/2844/108 2100/2845/108 -f 2101/2739/108 2097/2846/108 2093/2737/108 -f 2092/2738/108 2100/2845/108 2101/2739/108 -f 2094/2729/112 2098/2743/112 2096/2740/112 -f 2095/2736/109 2099/2735/109 2103/2847/109 -f 2102/2742/109 2098/2743/109 2094/2729/109 -f 2095/2736/109 2103/2847/109 2102/2742/109 -f 2098/2743/115 2102/2746/115 2100/2744/115 -f 2102/2746/111 2103/2731/111 2101/2733/111 -f 2112/2747/108 2117/2760/108 2118/2748/108 -f 2108/2750/113 2111/2848/113 2110/2751/113 -f 2107/2753/109 2111/2848/109 2108/2750/109 -f 2104/2755/108 2109/2752/108 2110/2751/108 -f 2115/2757/109 2119/2849/109 2116/2758/109 -f 2116/2758/113 2119/2849/113 2118/2748/113 -f 2120/2761/108 2125/2767/108 2126/2762/108 -f 2123/2764/109 2127/2850/109 2124/2765/109 -f 2124/2765/113 2127/2850/113 2126/2762/113 -f 2135/2768/113 2143/2851/113 2142/2769/113 -f 2138/2771/110 2139/2852/110 2131/2772/110 -f 2140/2774/111 2141/2853/111 2133/2775/111 -f 2129/2777/112 2137/2854/112 2136/2778/112 -f 2144/2780/108 2147/2792/108 2146/2781/108 -f 2150/2783/109 2151/2791/109 2148/2784/109 -f 2145/2786/110 2149/2788/110 2148/2784/110 -f 2146/2787/111 2150/2790/111 2149/2788/111 -f 2147/2789/112 2151/2855/112 2150/2790/112 -f 2144/2780/113 2148/2784/113 2151/2791/113 -f 2152/2793/108 2155/2805/108 2154/2794/108 -f 2158/2796/109 2159/2804/109 2156/2797/109 -f 2153/2799/110 2157/2801/110 2156/2797/110 -f 2154/2800/111 2158/2803/111 2157/2801/111 -f 2155/2802/112 2159/2856/112 2158/2803/112 -f 2152/2793/113 2156/2797/113 2159/2804/113 -f 2160/2806/108 2163/2818/108 2162/2807/108 -f 2166/2809/109 2167/2817/109 2164/2810/109 -f 2161/2812/110 2165/2814/110 2164/2810/110 -f 2162/2813/111 2166/2816/111 2165/2814/111 -f 2163/2815/112 2167/2857/112 2166/2816/112 -f 2160/2806/113 2164/2810/113 2167/2817/113 -f 2182/2819/111 2183/2858/111 2175/2820/111 -f 2171/2822/112 2179/2859/112 2178/2823/112 -f 2173/2825/113 2181/2860/113 2180/2826/113 -f 2176/2828/110 2177/2861/110 2169/2829/110 +f 2060/2680/108 2062/2681/108 2061/2682/108 +f 2066/2683/109 2064/2684/109 2065/2685/109 +f 2061/2686/110 2064/2684/110 2060/2680/110 +f 2062/2687/111 2065/2688/111 2061/2686/111 +f 2063/2689/112 2066/2690/112 2062/2687/112 +f 2060/2680/113 2067/2691/113 2063/2692/113 +f 2069/2693/113 2070/2694/113 2068/2695/113 +f 2079/2696/114 2073/2697/114 2077/2698/114 +f 2069/2699/110 2075/2700/110 2071/2701/110 +f 2069/2702/108 2068/2703/108 2077/2704/108 +f 2070/2705/112 2072/2706/112 2068/2707/112 +f 2070/2705/109 2071/2701/109 2078/2708/109 +f 2074/2709/115 2076/2710/115 2072/2711/115 +f 2078/2712/111 2077/2698/111 2076/2710/111 +f 2081/2713/113 2082/2714/113 2080/2715/113 +f 2091/2716/114 2085/2717/114 2089/2718/114 +f 2081/2719/110 2087/2720/110 2083/2721/110 +f 2081/2722/108 2080/2723/108 2089/2724/108 +f 2082/2714/112 2084/2725/112 2080/2726/112 +f 2082/2714/109 2083/2721/109 2090/2727/109 +f 2086/2728/115 2088/2729/115 2084/2730/115 +f 2090/2731/111 2089/2718/111 2088/2729/111 +f 2093/2732/113 2094/2733/113 2092/2734/113 +f 2103/2735/114 2097/2736/114 2101/2737/114 +f 2093/2738/110 2099/2739/110 2095/2740/110 +f 2093/2741/108 2092/2742/108 2101/2743/108 +f 2094/2733/112 2096/2744/112 2092/2745/112 +f 2094/2733/109 2095/2740/109 2102/2746/109 +f 2098/2747/115 2100/2748/115 2096/2749/115 +f 2102/2750/111 2101/2737/111 2100/2748/111 +f 2112/2751/108 2118/2752/108 2113/2753/108 +f 2108/2754/113 2110/2755/113 2109/2756/113 +f 2107/2757/109 2108/2754/109 2106/2758/109 +f 2104/2759/108 2110/2755/108 2105/2760/108 +f 2115/2761/109 2116/2762/109 2114/2763/109 +f 2116/2762/113 2118/2752/113 2117/2764/113 +f 2120/2765/108 2126/2766/108 2121/2767/108 +f 2123/2768/109 2124/2769/109 2122/2770/109 +f 2124/2769/113 2126/2766/113 2125/2771/113 +f 2135/2772/113 2142/2773/113 2134/2774/113 +f 2138/2775/110 2131/2776/110 2130/2777/110 +f 2140/2778/111 2133/2779/111 2132/2780/111 +f 2129/2781/112 2136/2782/112 2128/2783/112 +f 2144/2784/108 2146/2785/108 2145/2786/108 +f 2150/2787/109 2148/2788/109 2149/2789/109 +f 2145/2790/110 2148/2788/110 2144/2784/110 +f 2146/2791/111 2149/2792/111 2145/2790/111 +f 2147/2793/112 2150/2794/112 2146/2791/112 +f 2144/2784/113 2151/2795/113 2147/2796/113 +f 2152/2797/108 2154/2798/108 2153/2799/108 +f 2158/2800/109 2156/2801/109 2157/2802/109 +f 2153/2803/110 2156/2801/110 2152/2797/110 +f 2154/2804/111 2157/2805/111 2153/2803/111 +f 2155/2806/112 2158/2807/112 2154/2804/112 +f 2152/2797/113 2159/2808/113 2155/2809/113 +f 2160/2810/108 2162/2811/108 2161/2812/108 +f 2166/2813/109 2164/2814/109 2165/2815/109 +f 2161/2816/110 2164/2814/110 2160/2810/110 +f 2162/2817/111 2165/2818/111 2161/2816/111 +f 2163/2819/112 2166/2820/112 2162/2817/112 +f 2160/2810/113 2167/2821/113 2163/2822/113 +f 2182/2823/111 2175/2824/111 2174/2825/111 +f 2171/2826/112 2178/2827/112 2170/2828/112 +f 2173/2829/113 2180/2830/113 2172/2831/113 +f 2176/2832/110 2169/2833/110 2168/2834/110 +f 2060/2680/108 2063/2692/108 2062/2681/108 +f 2066/2683/109 2067/2691/109 2064/2684/109 +f 2061/2686/110 2065/2688/110 2064/2684/110 +f 2062/2687/111 2066/2690/111 2065/2688/111 +f 2063/2689/112 2067/2835/112 2066/2690/112 +f 2060/2680/113 2064/2684/113 2067/2691/113 +f 2069/2693/113 2071/2836/113 2070/2694/113 +f 2079/2696/114 2075/2700/114 2073/2697/114 +f 2069/2699/110 2073/2837/110 2075/2700/110 +f 2068/2703/108 2072/2838/108 2076/2839/108 +f 2077/2704/108 2073/2840/108 2069/2702/108 +f 2068/2703/108 2076/2839/108 2077/2704/108 +f 2070/2705/112 2074/2709/112 2072/2706/112 +f 2071/2701/109 2075/2700/109 2079/2841/109 +f 2078/2708/109 2074/2709/109 2070/2705/109 +f 2071/2701/109 2079/2841/109 2078/2708/109 +f 2074/2709/115 2078/2712/115 2076/2710/115 +f 2078/2712/111 2079/2696/111 2077/2698/111 +f 2081/2713/113 2083/2721/113 2082/2714/113 +f 2091/2716/114 2087/2720/114 2085/2717/114 +f 2081/2719/110 2085/2842/110 2087/2720/110 +f 2080/2723/108 2084/2843/108 2088/2844/108 +f 2089/2724/108 2085/2845/108 2081/2722/108 +f 2080/2723/108 2088/2844/108 2089/2724/108 +f 2082/2714/112 2086/2728/112 2084/2725/112 +f 2083/2721/109 2087/2720/109 2091/2846/109 +f 2090/2727/109 2086/2728/109 2082/2714/109 +f 2083/2721/109 2091/2846/109 2090/2727/109 +f 2086/2728/115 2090/2731/115 2088/2729/115 +f 2090/2731/111 2091/2716/111 2089/2718/111 +f 2093/2732/113 2095/2740/113 2094/2733/113 +f 2103/2735/114 2099/2739/114 2097/2736/114 +f 2093/2738/110 2097/2847/110 2099/2739/110 +f 2092/2742/108 2096/2848/108 2100/2849/108 +f 2101/2743/108 2097/2850/108 2093/2741/108 +f 2092/2742/108 2100/2849/108 2101/2743/108 +f 2094/2733/112 2098/2747/112 2096/2744/112 +f 2095/2740/109 2099/2739/109 2103/2851/109 +f 2102/2746/109 2098/2747/109 2094/2733/109 +f 2095/2740/109 2103/2851/109 2102/2746/109 +f 2098/2747/115 2102/2750/115 2100/2748/115 +f 2102/2750/111 2103/2735/111 2101/2737/111 +f 2112/2751/108 2117/2764/108 2118/2752/108 +f 2108/2754/113 2111/2852/113 2110/2755/113 +f 2107/2757/109 2111/2852/109 2108/2754/109 +f 2104/2759/108 2109/2756/108 2110/2755/108 +f 2115/2761/109 2119/2853/109 2116/2762/109 +f 2116/2762/113 2119/2853/113 2118/2752/113 +f 2120/2765/108 2125/2771/108 2126/2766/108 +f 2123/2768/109 2127/2854/109 2124/2769/109 +f 2124/2769/113 2127/2854/113 2126/2766/113 +f 2135/2772/113 2143/2855/113 2142/2773/113 +f 2138/2775/110 2139/2856/110 2131/2776/110 +f 2140/2778/111 2141/2857/111 2133/2779/111 +f 2129/2781/112 2137/2858/112 2136/2782/112 +f 2144/2784/108 2147/2796/108 2146/2785/108 +f 2150/2787/109 2151/2795/109 2148/2788/109 +f 2145/2790/110 2149/2792/110 2148/2788/110 +f 2146/2791/111 2150/2794/111 2149/2792/111 +f 2147/2793/112 2151/2859/112 2150/2794/112 +f 2144/2784/113 2148/2788/113 2151/2795/113 +f 2152/2797/108 2155/2809/108 2154/2798/108 +f 2158/2800/109 2159/2808/109 2156/2801/109 +f 2153/2803/110 2157/2805/110 2156/2801/110 +f 2154/2804/111 2158/2807/111 2157/2805/111 +f 2155/2806/112 2159/2860/112 2158/2807/112 +f 2152/2797/113 2156/2801/113 2159/2808/113 +f 2160/2810/108 2163/2822/108 2162/2811/108 +f 2166/2813/109 2167/2821/109 2164/2814/109 +f 2161/2816/110 2165/2818/110 2164/2814/110 +f 2162/2817/111 2166/2820/111 2165/2818/111 +f 2163/2819/112 2167/2861/112 2166/2820/112 +f 2160/2810/113 2164/2814/113 2167/2821/113 +f 2182/2823/111 2183/2862/111 2175/2824/111 +f 2171/2826/112 2179/2863/112 2178/2827/112 +f 2173/2829/113 2181/2864/113 2180/2830/113 +f 2176/2832/110 2177/2865/110 2169/2833/110 o Huge_Pad v -1.250000 2.000000 1.250000 v 1.250000 2.000000 1.250000 @@ -7883,285 +7887,285 @@ vn 0.6333 0.7150 0.2962 vn 0.0000 0.9239 0.3827 vn 0.7311 -0.6303 -0.2611 s off -f 2208/2862/116 2211/2863/116 2210/2864/116 -f 2184/2865/116 2189/2866/116 2185/2867/116 -f 2186/2868/116 2188/2869/116 2184/2865/116 -f 2187/2870/116 2190/2871/116 2186/2868/116 -f 2185/2867/116 2191/2872/116 2187/2870/116 -f 2191/2873/117 2194/2874/117 2190/2875/117 -f 2188/2876/118 2193/2877/118 2189/2878/118 -f 2189/2866/119 2195/2879/119 2191/2872/119 -f 2190/2880/120 2192/2881/120 2188/2882/120 -f 2193/2883/116 2199/2884/116 2195/2879/116 -f 2192/2885/116 2197/2886/116 2193/2877/116 -f 2194/2887/116 2196/2888/116 2192/2881/116 -f 2195/2889/116 2198/2890/116 2194/2874/116 -f 2197/2891/119 2203/2892/119 2199/2884/119 -f 2198/2893/120 2200/2894/120 2196/2888/120 -f 2199/2895/117 2202/2896/117 2198/2890/117 -f 2196/2897/118 2201/2898/118 2197/2886/118 -f 2205/2899/121 2184/2865/121 2185/2867/121 -f 2204/2900/122 2186/2868/122 2184/2865/122 -f 2206/2901/123 2187/2870/123 2186/2868/123 -f 2207/2902/124 2185/2867/124 2187/2870/124 -f 2218/2903/116 2216/2904/116 2217/2905/116 -f 2214/2906/117 2219/2907/117 2215/2908/117 -f 2215/2909/119 2218/2903/119 2213/2910/119 -f 2212/2911/120 2216/2904/120 2214/2912/120 -f 2226/2913/116 2224/2914/116 2225/2915/116 -f 2223/2916/119 2226/2913/119 2221/2917/119 -f 2220/2918/120 2224/2914/120 2222/2919/120 -f 2221/2920/118 2225/2915/118 2220/2921/118 -f 2239/2922/119 2254/2923/119 2237/2924/119 -f 2230/2925/117 2247/2926/117 2231/2927/117 -f 2238/2928/117 2255/2929/117 2239/2922/117 -f 2232/2930/120 2248/2931/120 2234/2932/120 -f 2240/2933/120 2256/2934/120 2242/2935/120 -f 2233/2936/118 2249/2937/118 2232/2938/118 -f 2241/2939/118 2257/2940/118 2240/2941/118 -f 2235/2942/119 2250/2943/119 2233/2936/119 -f 2243/2944/119 2258/2945/119 2241/2939/119 -f 2234/2932/117 2251/2946/117 2235/2942/117 -f 2228/2947/120 2244/2948/120 2230/2925/120 -f 2242/2935/117 2259/2949/117 2243/2944/117 -f 2236/2950/120 2252/2951/120 2238/2928/120 -f 2229/2952/118 2245/2953/118 2228/2954/118 -f 2237/2924/118 2253/2955/118 2236/2956/118 -f 2231/2927/119 2246/2957/119 2229/2952/119 -f 2262/2958/125 2261/2959/125 2260/2960/125 -f 2266/2961/116 2264/2962/116 2265/2963/116 -f 2262/2964/117 2267/2965/117 2263/2966/117 -f 2261/2967/118 2265/2968/118 2260/2969/118 -f 2263/2970/119 2266/2961/119 2261/2971/119 -f 2260/2972/120 2264/2973/120 2262/2974/120 -f 2271/2975/119 2278/2976/119 2269/2977/119 -f 2270/2978/117 2279/2979/117 2271/2975/117 -f 2272/2980/120 2280/2981/120 2274/2982/120 -f 2273/2983/118 2281/2984/118 2272/2985/118 -f 2275/2986/119 2282/2987/119 2273/2983/119 -f 2274/2982/117 2283/2988/117 2275/2986/117 -f 2268/2989/120 2276/2990/120 2270/2978/120 -f 2269/2977/118 2277/2991/118 2268/2992/118 -f 2287/2993/119 2294/2994/119 2285/2995/119 -f 2286/2996/117 2295/2997/117 2287/2993/117 -f 2288/2998/120 2296/2999/120 2290/3000/120 -f 2289/3001/118 2297/3002/118 2288/3003/118 -f 2291/3004/119 2298/3005/119 2289/3001/119 -f 2290/3000/117 2299/3006/117 2291/3004/117 -f 2284/3007/120 2292/3008/120 2286/2996/120 -f 2285/2995/118 2293/3009/118 2284/3010/118 -f 2334/3011/125 2333/3012/125 2332/3013/125 -f 2302/3014/117 2301/3015/117 2303/3016/117 -f 2305/3017/118 2306/3018/118 2307/3019/118 -f 2309/3020/120 2310/3021/120 2311/3022/120 -f 2314/3023/119 2313/3024/119 2315/3025/119 -f 2318/3026/117 2317/3027/117 2319/3028/117 -f 2321/3029/118 2322/3030/118 2323/3031/118 -f 2324/3032/120 2327/3033/120 2325/3034/120 -f 2331/3035/119 2328/3036/119 2329/3037/119 -f 2338/3038/116 2336/3039/116 2337/3040/116 -f 2334/3041/117 2339/3042/117 2335/3043/117 -f 2333/3044/118 2337/3045/118 2332/3046/118 -f 2335/3047/119 2338/3038/119 2333/3048/119 -f 2332/3049/120 2336/3050/120 2334/3051/120 -f 2348/3052/117 2363/3053/117 2367/3054/117 -f 2378/3055/117 2393/3056/117 2397/3057/117 -f 2401/3058/118 2402/3059/118 2403/3060/118 -f 2406/3061/117 2405/3062/117 2407/3063/117 -f 2410/3064/119 2409/3065/119 2411/3066/119 -f 2413/3067/120 2414/3068/120 2415/3069/120 -f 2417/3070/118 2418/3071/118 2419/3072/118 -f 2422/3073/117 2421/3074/117 2423/3075/117 -f 2427/3076/119 2424/3077/119 2425/3078/119 -f 2428/3079/120 2431/3080/120 2429/3081/120 -f 2208/2862/116 2209/3082/116 2211/2863/116 -f 2184/2865/116 2188/2869/116 2189/2866/116 -f 2186/2868/116 2190/2871/116 2188/2869/116 -f 2187/2870/116 2191/2872/116 2190/2871/116 -f 2185/2867/116 2189/2866/116 2191/2872/116 -f 2191/2873/117 2195/2889/117 2194/2874/117 -f 2188/2876/118 2192/2885/118 2193/2877/118 -f 2189/2866/119 2193/2883/119 2195/2879/119 -f 2190/2880/120 2194/2887/120 2192/2881/120 -f 2193/2883/116 2197/2891/116 2199/2884/116 -f 2192/2885/116 2196/2897/116 2197/2886/116 -f 2194/2887/116 2198/2893/116 2196/2888/116 -f 2195/2889/116 2199/2895/116 2198/2890/116 -f 2197/2891/119 2201/3083/119 2203/2892/119 -f 2198/2893/120 2202/3084/120 2200/2894/120 -f 2199/2895/117 2203/3085/117 2202/2896/117 -f 2196/2897/118 2200/3086/118 2201/2898/118 -f 2205/2899/121 2204/2900/121 2184/2865/121 -f 2204/2900/122 2206/2901/122 2186/2868/122 -f 2206/2901/123 2207/2902/123 2187/2870/123 -f 2207/2902/124 2205/2899/124 2185/2867/124 -f 2218/2903/116 2219/2907/116 2216/2904/116 -f 2214/2906/117 2216/2904/117 2219/2907/117 -f 2215/2909/119 2219/2907/119 2218/2903/119 -f 2212/2911/120 2217/2905/120 2216/2904/120 -f 2226/2913/116 2227/3087/116 2224/2914/116 -f 2223/2916/119 2227/3087/119 2226/2913/119 -f 2220/2918/120 2225/2915/120 2224/2914/120 -f 2221/2920/118 2226/2913/118 2225/2915/118 -f 2239/2922/119 2255/2929/119 2254/2923/119 -f 2230/2925/117 2244/2948/117 2247/2926/117 -f 2238/2928/117 2252/2951/117 2255/2929/117 -f 2232/2930/120 2249/3088/120 2248/2931/120 -f 2240/2933/120 2257/3089/120 2256/2934/120 -f 2233/2936/118 2250/2943/118 2249/2937/118 -f 2241/2939/118 2258/2945/118 2257/2940/118 -f 2235/2942/119 2251/2946/119 2250/2943/119 -f 2243/2944/119 2259/2949/119 2258/2945/119 -f 2234/2932/117 2248/2931/117 2251/2946/117 -f 2228/2947/120 2245/3090/120 2244/2948/120 -f 2242/2935/117 2256/2934/117 2259/2949/117 -f 2236/2950/120 2253/3091/120 2252/2951/120 -f 2229/2952/118 2246/2957/118 2245/2953/118 -f 2237/2924/118 2254/2923/118 2253/2955/118 -f 2231/2927/119 2247/2926/119 2246/2957/119 -f 2262/2958/125 2263/3092/125 2261/2959/125 -f 2266/2961/116 2267/2965/116 2264/2962/116 -f 2262/2964/117 2264/2962/117 2267/2965/117 -f 2261/2967/118 2266/3093/118 2265/2968/118 -f 2263/2970/119 2267/2965/119 2266/2961/119 -f 2260/2972/120 2265/2968/120 2264/2973/120 -f 2271/2975/119 2279/2979/119 2278/2976/119 -f 2270/2978/117 2276/2990/117 2279/2979/117 -f 2272/2980/120 2281/3094/120 2280/2981/120 -f 2273/2983/118 2282/2987/118 2281/2984/118 -f 2275/2986/119 2283/2988/119 2282/2987/119 -f 2274/2982/117 2280/2981/117 2283/2988/117 -f 2268/2989/120 2277/3095/120 2276/2990/120 -f 2269/2977/118 2278/2976/118 2277/2991/118 -f 2287/2993/119 2295/2997/119 2294/2994/119 -f 2286/2996/117 2292/3008/117 2295/2997/117 -f 2288/2998/120 2297/3096/120 2296/2999/120 -f 2289/3001/118 2298/3005/118 2297/3002/118 -f 2291/3004/119 2299/3006/119 2298/3005/119 -f 2290/3000/117 2296/2999/117 2299/3006/117 -f 2284/3007/120 2293/3097/120 2292/3008/120 -f 2285/2995/118 2294/2994/118 2293/3009/118 -f 2334/3011/125 2335/3098/125 2333/3012/125 -f 2302/3014/117 2300/3099/117 2301/3015/117 -f 2305/3017/118 2304/3100/118 2306/3018/118 -f 2309/3020/120 2308/3101/120 2310/3021/120 -f 2314/3023/119 2312/3102/119 2313/3024/119 -f 2318/3026/117 2316/3103/117 2317/3027/117 -f 2321/3029/118 2320/3104/118 2322/3030/118 -f 2324/3032/120 2326/3105/120 2327/3033/120 -f 2331/3035/119 2330/3106/119 2328/3036/119 -f 2338/3038/116 2339/3042/116 2336/3039/116 -f 2334/3041/117 2336/3039/117 2339/3042/117 -f 2333/3044/118 2338/3107/118 2337/3045/118 -f 2335/3047/119 2339/3042/119 2338/3038/119 -f 2332/3049/120 2337/3045/120 2336/3050/120 -f 2363/3053/117 2364/3108/117 2365/3109/117 -f 2365/3109/117 2366/3110/117 2363/3053/117 -f 2366/3110/117 2367/3054/117 2363/3053/117 -f 2367/3054/117 2368/3111/117 2369/3112/117 -f 2369/3112/117 2348/3052/117 2367/3054/117 -f 2393/3056/117 2394/3113/117 2395/3114/117 -f 2395/3114/117 2396/3115/117 2393/3056/117 -f 2396/3115/117 2397/3057/117 2393/3056/117 -f 2397/3057/117 2398/3116/117 2399/3117/117 -f 2399/3117/117 2378/3055/117 2397/3057/117 -f 2401/3058/118 2400/3118/118 2402/3059/118 -f 2406/3061/117 2404/3119/117 2405/3062/117 -f 2410/3064/119 2408/3120/119 2409/3065/119 -f 2413/3067/120 2412/3121/120 2414/3068/120 -f 2417/3070/118 2416/3122/118 2418/3071/118 -f 2422/3073/117 2420/3123/117 2421/3074/117 -f 2427/3076/119 2426/3124/119 2424/3077/119 -f 2428/3079/120 2430/3125/120 2431/3080/120 +f 2208/2866/116 2211/2867/116 2210/2868/116 +f 2184/2869/116 2189/2870/116 2185/2871/116 +f 2186/2872/116 2188/2873/116 2184/2869/116 +f 2187/2874/116 2190/2875/116 2186/2872/116 +f 2185/2871/116 2191/2876/116 2187/2874/116 +f 2191/2877/117 2194/2878/117 2190/2879/117 +f 2188/2880/118 2193/2881/118 2189/2882/118 +f 2189/2870/119 2195/2883/119 2191/2876/119 +f 2190/2884/120 2192/2885/120 2188/2886/120 +f 2193/2887/116 2199/2888/116 2195/2883/116 +f 2192/2889/116 2197/2890/116 2193/2881/116 +f 2194/2891/116 2196/2892/116 2192/2885/116 +f 2195/2893/116 2198/2894/116 2194/2878/116 +f 2197/2895/119 2203/2896/119 2199/2888/119 +f 2198/2897/120 2200/2898/120 2196/2892/120 +f 2199/2899/117 2202/2900/117 2198/2894/117 +f 2196/2901/118 2201/2902/118 2197/2890/118 +f 2205/2903/121 2184/2869/121 2185/2871/121 +f 2204/2904/122 2186/2872/122 2184/2869/122 +f 2206/2905/123 2187/2874/123 2186/2872/123 +f 2207/2906/124 2185/2871/124 2187/2874/124 +f 2218/2907/116 2216/2908/116 2217/2909/116 +f 2214/2910/117 2219/2911/117 2215/2912/117 +f 2215/2913/119 2218/2907/119 2213/2914/119 +f 2212/2915/120 2216/2908/120 2214/2916/120 +f 2226/2917/116 2224/2918/116 2225/2919/116 +f 2223/2920/119 2226/2917/119 2221/2921/119 +f 2220/2922/120 2224/2918/120 2222/2923/120 +f 2221/2924/118 2225/2919/118 2220/2925/118 +f 2239/2926/119 2254/2927/119 2237/2928/119 +f 2230/2929/117 2247/2930/117 2231/2931/117 +f 2238/2932/117 2255/2933/117 2239/2926/117 +f 2232/2934/120 2248/2935/120 2234/2936/120 +f 2240/2937/120 2256/2938/120 2242/2939/120 +f 2233/2940/118 2249/2941/118 2232/2942/118 +f 2241/2943/118 2257/2944/118 2240/2945/118 +f 2235/2946/119 2250/2947/119 2233/2940/119 +f 2243/2948/119 2258/2949/119 2241/2943/119 +f 2234/2936/117 2251/2950/117 2235/2946/117 +f 2228/2951/120 2244/2952/120 2230/2929/120 +f 2242/2939/117 2259/2953/117 2243/2948/117 +f 2236/2954/120 2252/2955/120 2238/2932/120 +f 2229/2956/118 2245/2957/118 2228/2958/118 +f 2237/2928/118 2253/2959/118 2236/2960/118 +f 2231/2931/119 2246/2961/119 2229/2956/119 +f 2262/2962/125 2261/2963/125 2260/2964/125 +f 2266/2965/116 2264/2966/116 2265/2967/116 +f 2262/2968/117 2267/2969/117 2263/2970/117 +f 2261/2971/118 2265/2972/118 2260/2973/118 +f 2263/2974/119 2266/2965/119 2261/2975/119 +f 2260/2976/120 2264/2977/120 2262/2978/120 +f 2271/2979/119 2278/2980/119 2269/2981/119 +f 2270/2982/117 2279/2983/117 2271/2979/117 +f 2272/2984/120 2280/2985/120 2274/2986/120 +f 2273/2987/118 2281/2988/118 2272/2989/118 +f 2275/2990/119 2282/2991/119 2273/2987/119 +f 2274/2986/117 2283/2992/117 2275/2990/117 +f 2268/2993/120 2276/2994/120 2270/2982/120 +f 2269/2981/118 2277/2995/118 2268/2996/118 +f 2287/2997/119 2294/2998/119 2285/2999/119 +f 2286/3000/117 2295/3001/117 2287/2997/117 +f 2288/3002/120 2296/3003/120 2290/3004/120 +f 2289/3005/118 2297/3006/118 2288/3007/118 +f 2291/3008/119 2298/3009/119 2289/3005/119 +f 2290/3004/117 2299/3010/117 2291/3008/117 +f 2284/3011/120 2292/3012/120 2286/3000/120 +f 2285/2999/118 2293/3013/118 2284/3014/118 +f 2334/3015/125 2333/3016/125 2332/3017/125 +f 2302/3018/117 2301/3019/117 2303/3020/117 +f 2305/3021/118 2306/3022/118 2307/3023/118 +f 2309/3024/120 2310/3025/120 2311/3026/120 +f 2314/3027/119 2313/3028/119 2315/3029/119 +f 2318/3030/117 2317/3031/117 2319/3032/117 +f 2321/3033/118 2322/3034/118 2323/3035/118 +f 2324/3036/120 2327/3037/120 2325/3038/120 +f 2331/3039/119 2328/3040/119 2329/3041/119 +f 2338/3042/116 2336/3043/116 2337/3044/116 +f 2334/3045/117 2339/3046/117 2335/3047/117 +f 2333/3048/118 2337/3049/118 2332/3050/118 +f 2335/3051/119 2338/3042/119 2333/3052/119 +f 2332/3053/120 2336/3054/120 2334/3055/120 +f 2348/3056/117 2363/3057/117 2367/3058/117 +f 2378/3059/117 2393/3060/117 2397/3061/117 +f 2401/3062/118 2402/3063/118 2403/3064/118 +f 2406/3065/117 2405/3066/117 2407/3067/117 +f 2410/3068/119 2409/3069/119 2411/3070/119 +f 2413/3071/120 2414/3072/120 2415/3073/120 +f 2417/3074/118 2418/3075/118 2419/3076/118 +f 2422/3077/117 2421/3078/117 2423/3079/117 +f 2427/3080/119 2424/3081/119 2425/3082/119 +f 2428/3083/120 2431/3084/120 2429/3085/120 +f 2208/2866/116 2209/3086/116 2211/2867/116 +f 2184/2869/116 2188/2873/116 2189/2870/116 +f 2186/2872/116 2190/2875/116 2188/2873/116 +f 2187/2874/116 2191/2876/116 2190/2875/116 +f 2185/2871/116 2189/2870/116 2191/2876/116 +f 2191/2877/117 2195/2893/117 2194/2878/117 +f 2188/2880/118 2192/2889/118 2193/2881/118 +f 2189/2870/119 2193/2887/119 2195/2883/119 +f 2190/2884/120 2194/2891/120 2192/2885/120 +f 2193/2887/116 2197/2895/116 2199/2888/116 +f 2192/2889/116 2196/2901/116 2197/2890/116 +f 2194/2891/116 2198/2897/116 2196/2892/116 +f 2195/2893/116 2199/2899/116 2198/2894/116 +f 2197/2895/119 2201/3087/119 2203/2896/119 +f 2198/2897/120 2202/3088/120 2200/2898/120 +f 2199/2899/117 2203/3089/117 2202/2900/117 +f 2196/2901/118 2200/3090/118 2201/2902/118 +f 2205/2903/121 2204/2904/121 2184/2869/121 +f 2204/2904/122 2206/2905/122 2186/2872/122 +f 2206/2905/123 2207/2906/123 2187/2874/123 +f 2207/2906/124 2205/2903/124 2185/2871/124 +f 2218/2907/116 2219/2911/116 2216/2908/116 +f 2214/2910/117 2216/2908/117 2219/2911/117 +f 2215/2913/119 2219/2911/119 2218/2907/119 +f 2212/2915/120 2217/2909/120 2216/2908/120 +f 2226/2917/116 2227/3091/116 2224/2918/116 +f 2223/2920/119 2227/3091/119 2226/2917/119 +f 2220/2922/120 2225/2919/120 2224/2918/120 +f 2221/2924/118 2226/2917/118 2225/2919/118 +f 2239/2926/119 2255/2933/119 2254/2927/119 +f 2230/2929/117 2244/2952/117 2247/2930/117 +f 2238/2932/117 2252/2955/117 2255/2933/117 +f 2232/2934/120 2249/3092/120 2248/2935/120 +f 2240/2937/120 2257/3093/120 2256/2938/120 +f 2233/2940/118 2250/2947/118 2249/2941/118 +f 2241/2943/118 2258/2949/118 2257/2944/118 +f 2235/2946/119 2251/2950/119 2250/2947/119 +f 2243/2948/119 2259/2953/119 2258/2949/119 +f 2234/2936/117 2248/2935/117 2251/2950/117 +f 2228/2951/120 2245/3094/120 2244/2952/120 +f 2242/2939/117 2256/2938/117 2259/2953/117 +f 2236/2954/120 2253/3095/120 2252/2955/120 +f 2229/2956/118 2246/2961/118 2245/2957/118 +f 2237/2928/118 2254/2927/118 2253/2959/118 +f 2231/2931/119 2247/2930/119 2246/2961/119 +f 2262/2962/125 2263/3096/125 2261/2963/125 +f 2266/2965/116 2267/2969/116 2264/2966/116 +f 2262/2968/117 2264/2966/117 2267/2969/117 +f 2261/2971/118 2266/3097/118 2265/2972/118 +f 2263/2974/119 2267/2969/119 2266/2965/119 +f 2260/2976/120 2265/2972/120 2264/2977/120 +f 2271/2979/119 2279/2983/119 2278/2980/119 +f 2270/2982/117 2276/2994/117 2279/2983/117 +f 2272/2984/120 2281/3098/120 2280/2985/120 +f 2273/2987/118 2282/2991/118 2281/2988/118 +f 2275/2990/119 2283/2992/119 2282/2991/119 +f 2274/2986/117 2280/2985/117 2283/2992/117 +f 2268/2993/120 2277/3099/120 2276/2994/120 +f 2269/2981/118 2278/2980/118 2277/2995/118 +f 2287/2997/119 2295/3001/119 2294/2998/119 +f 2286/3000/117 2292/3012/117 2295/3001/117 +f 2288/3002/120 2297/3100/120 2296/3003/120 +f 2289/3005/118 2298/3009/118 2297/3006/118 +f 2291/3008/119 2299/3010/119 2298/3009/119 +f 2290/3004/117 2296/3003/117 2299/3010/117 +f 2284/3011/120 2293/3101/120 2292/3012/120 +f 2285/2999/118 2294/2998/118 2293/3013/118 +f 2334/3015/125 2335/3102/125 2333/3016/125 +f 2302/3018/117 2300/3103/117 2301/3019/117 +f 2305/3021/118 2304/3104/118 2306/3022/118 +f 2309/3024/120 2308/3105/120 2310/3025/120 +f 2314/3027/119 2312/3106/119 2313/3028/119 +f 2318/3030/117 2316/3107/117 2317/3031/117 +f 2321/3033/118 2320/3108/118 2322/3034/118 +f 2324/3036/120 2326/3109/120 2327/3037/120 +f 2331/3039/119 2330/3110/119 2328/3040/119 +f 2338/3042/116 2339/3046/116 2336/3043/116 +f 2334/3045/117 2336/3043/117 2339/3046/117 +f 2333/3048/118 2338/3111/118 2337/3049/118 +f 2335/3051/119 2339/3046/119 2338/3042/119 +f 2332/3053/120 2337/3049/120 2336/3054/120 +f 2363/3057/117 2364/3112/117 2365/3113/117 +f 2365/3113/117 2366/3114/117 2363/3057/117 +f 2366/3114/117 2367/3058/117 2363/3057/117 +f 2367/3058/117 2368/3115/117 2369/3116/117 +f 2369/3116/117 2348/3056/117 2367/3058/117 +f 2393/3060/117 2394/3117/117 2395/3118/117 +f 2395/3118/117 2396/3119/117 2393/3060/117 +f 2396/3119/117 2397/3061/117 2393/3060/117 +f 2397/3061/117 2398/3120/117 2399/3121/117 +f 2399/3121/117 2378/3059/117 2397/3061/117 +f 2401/3062/118 2400/3122/118 2402/3063/118 +f 2406/3065/117 2404/3123/117 2405/3066/117 +f 2410/3068/119 2408/3124/119 2409/3069/119 +f 2413/3071/120 2412/3125/120 2414/3072/120 +f 2417/3074/118 2416/3126/118 2418/3075/118 +f 2422/3077/117 2420/3127/117 2421/3078/117 +f 2427/3080/119 2426/3128/119 2424/3081/119 +f 2428/3083/120 2430/3129/120 2431/3084/120 s 1 -f 2345/3126/126 2352/3127/127 2344/3128/118 -f 2343/3129/128 2350/3130/129 2342/3131/120 -f 2341/3132/130 2348/3133/131 2340/3134/117 -f 2340/3135/117 2355/3136/132 2347/3137/133 -f 2346/3138/119 2353/3139/134 2345/3126/126 -f 2344/3128/118 2351/3140/135 2343/3129/128 -f 2342/3131/120 2349/3141/136 2341/3132/130 -f 2347/3137/133 2354/3142/137 2346/3138/119 -f 2353/3143/134 2361/3144/138 2360/3145/139 -f 2351/3146/135 2359/3147/140 2358/3148/141 -f 2349/3149/136 2357/3150/142 2356/3151/143 -f 2354/3152/137 2362/3153/144 2361/3144/138 -f 2352/3127/127 2360/3145/139 2359/3147/140 -f 2351/3146/135 2357/3150/142 2350/3154/129 -f 2359/3147/140 2365/3155/145 2358/3148/141 -f 2356/3151/143 2364/3156/146 2363/3157/147 -f 2362/3153/144 2368/3158/148 2361/3144/138 -f 2359/3147/140 2367/3159/149 2366/3160/150 -f 2357/3150/142 2365/3155/145 2364/3156/146 -f 2361/3144/138 2367/3159/149 2360/3145/139 -f 2355/3161/132 2348/3162/131 2362/3153/144 -f 2362/3153/144 2348/3162/131 2369/3163/151 -f 2349/3149/136 2356/3151/143 2348/3164/131 -f 2356/3151/143 2363/3157/147 2348/3164/131 -f 2375/3165/126 2382/3166/127 2374/3167/118 -f 2373/3168/128 2380/3169/129 2372/3170/120 -f 2371/3171/130 2378/3172/131 2370/3173/117 -f 2370/3174/117 2385/3175/132 2377/3176/133 -f 2376/3177/119 2383/3178/134 2375/3165/126 -f 2374/3167/118 2381/3179/135 2373/3168/128 -f 2372/3170/120 2379/3180/136 2371/3171/130 -f 2377/3176/133 2384/3181/137 2376/3177/119 -f 2383/3182/134 2391/3183/138 2390/3184/139 -f 2382/3166/127 2388/3185/141 2381/3186/135 -f 2380/3187/129 2386/3188/143 2379/3189/136 -f 2385/3190/132 2391/3183/138 2384/3191/137 -f 2382/3166/127 2390/3184/139 2389/3192/140 -f 2381/3186/135 2387/3193/142 2380/3187/129 -f 2389/3192/140 2395/3194/145 2388/3185/141 -f 2386/3188/143 2394/3195/146 2393/3196/147 -f 2392/3197/144 2398/3198/148 2391/3183/138 -f 2389/3192/140 2397/3199/149 2396/3200/150 -f 2387/3193/142 2395/3194/145 2394/3195/146 -f 2391/3183/138 2397/3199/149 2390/3184/139 -f 2385/3190/132 2378/3201/131 2392/3197/144 -f 2392/3197/144 2378/3201/131 2399/3202/151 -f 2379/3189/136 2386/3188/143 2378/3203/131 -f 2386/3188/143 2393/3196/147 2378/3203/131 -f 2345/3126/126 2353/3139/134 2352/3127/127 -f 2343/3129/128 2351/3140/135 2350/3130/129 -f 2341/3132/130 2349/3141/136 2348/3133/131 -f 2340/3135/117 2348/3204/131 2355/3136/132 -f 2346/3138/119 2354/3142/137 2353/3139/134 -f 2344/3128/118 2352/3127/127 2351/3140/135 -f 2342/3131/120 2350/3130/129 2349/3141/136 -f 2347/3137/133 2355/3136/132 2354/3142/137 -f 2353/3143/134 2354/3152/137 2361/3144/138 -f 2351/3146/135 2352/3127/127 2359/3147/140 -f 2349/3149/136 2350/3154/129 2357/3150/142 -f 2354/3152/137 2355/3161/132 2362/3153/144 -f 2352/3127/127 2353/3143/134 2360/3145/139 -f 2351/3146/135 2358/3148/141 2357/3150/142 -f 2359/3147/140 2366/3160/150 2365/3155/145 -f 2356/3151/143 2357/3150/142 2364/3156/146 -f 2362/3153/144 2369/3163/151 2368/3158/148 -f 2359/3147/140 2360/3145/139 2367/3159/149 -f 2357/3150/142 2358/3148/141 2365/3155/145 -f 2361/3144/138 2368/3158/148 2367/3159/149 -f 2375/3165/126 2383/3178/134 2382/3166/127 -f 2373/3168/128 2381/3179/135 2380/3169/129 -f 2371/3171/130 2379/3180/136 2378/3172/131 -f 2370/3174/117 2378/3205/131 2385/3175/132 -f 2376/3177/119 2384/3181/137 2383/3178/134 -f 2374/3167/118 2382/3166/127 2381/3179/135 -f 2372/3170/120 2380/3169/129 2379/3180/136 -f 2377/3176/133 2385/3175/132 2384/3181/137 -f 2383/3182/134 2384/3191/137 2391/3183/138 -f 2382/3166/127 2389/3192/140 2388/3185/141 -f 2380/3187/129 2387/3193/142 2386/3188/143 -f 2385/3190/132 2392/3197/144 2391/3183/138 -f 2382/3166/127 2383/3182/134 2390/3184/139 -f 2381/3186/135 2388/3185/141 2387/3193/142 -f 2389/3192/140 2396/3200/150 2395/3194/145 -f 2386/3188/143 2387/3193/142 2394/3195/146 -f 2392/3197/144 2399/3202/151 2398/3198/148 -f 2389/3192/140 2390/3184/139 2397/3199/149 -f 2387/3193/142 2388/3185/141 2395/3194/145 -f 2391/3183/138 2398/3198/148 2397/3199/149 +f 2345/3130/126 2352/3131/127 2344/3132/118 +f 2343/3133/128 2350/3134/129 2342/3135/120 +f 2341/3136/130 2348/3137/131 2340/3138/117 +f 2340/3139/117 2355/3140/132 2347/3141/133 +f 2346/3142/119 2353/3143/134 2345/3130/126 +f 2344/3132/118 2351/3144/135 2343/3133/128 +f 2342/3135/120 2349/3145/136 2341/3136/130 +f 2347/3141/133 2354/3146/137 2346/3142/119 +f 2353/3147/134 2361/3148/138 2360/3149/139 +f 2351/3150/135 2359/3151/140 2358/3152/141 +f 2349/3153/136 2357/3154/142 2356/3155/143 +f 2354/3156/137 2362/3157/144 2361/3148/138 +f 2352/3131/127 2360/3149/139 2359/3151/140 +f 2351/3150/135 2357/3154/142 2350/3158/129 +f 2359/3151/140 2365/3159/145 2358/3152/141 +f 2356/3155/143 2364/3160/146 2363/3161/147 +f 2362/3157/144 2368/3162/148 2361/3148/138 +f 2359/3151/140 2367/3163/149 2366/3164/150 +f 2357/3154/142 2365/3159/145 2364/3160/146 +f 2361/3148/138 2367/3163/149 2360/3149/139 +f 2355/3165/132 2348/3166/131 2362/3157/144 +f 2362/3157/144 2348/3166/131 2369/3167/151 +f 2349/3153/136 2356/3155/143 2348/3168/131 +f 2356/3155/143 2363/3161/147 2348/3168/131 +f 2375/3169/126 2382/3170/127 2374/3171/118 +f 2373/3172/128 2380/3173/129 2372/3174/120 +f 2371/3175/130 2378/3176/131 2370/3177/117 +f 2370/3178/117 2385/3179/132 2377/3180/133 +f 2376/3181/119 2383/3182/134 2375/3169/126 +f 2374/3171/118 2381/3183/135 2373/3172/128 +f 2372/3174/120 2379/3184/136 2371/3175/130 +f 2377/3180/133 2384/3185/137 2376/3181/119 +f 2383/3186/134 2391/3187/138 2390/3188/139 +f 2382/3170/127 2388/3189/141 2381/3190/135 +f 2380/3191/129 2386/3192/143 2379/3193/136 +f 2385/3194/132 2391/3187/138 2384/3195/137 +f 2382/3170/127 2390/3188/139 2389/3196/140 +f 2381/3190/135 2387/3197/142 2380/3191/129 +f 2389/3196/140 2395/3198/145 2388/3189/141 +f 2386/3192/143 2394/3199/146 2393/3200/147 +f 2392/3201/144 2398/3202/148 2391/3187/138 +f 2389/3196/140 2397/3203/149 2396/3204/150 +f 2387/3197/142 2395/3198/145 2394/3199/146 +f 2391/3187/138 2397/3203/149 2390/3188/139 +f 2385/3194/132 2378/3205/131 2392/3201/144 +f 2392/3201/144 2378/3205/131 2399/3206/151 +f 2379/3193/136 2386/3192/143 2378/3207/131 +f 2386/3192/143 2393/3200/147 2378/3207/131 +f 2345/3130/126 2353/3143/134 2352/3131/127 +f 2343/3133/128 2351/3144/135 2350/3134/129 +f 2341/3136/130 2349/3145/136 2348/3137/131 +f 2340/3139/117 2348/3208/131 2355/3140/132 +f 2346/3142/119 2354/3146/137 2353/3143/134 +f 2344/3132/118 2352/3131/127 2351/3144/135 +f 2342/3135/120 2350/3134/129 2349/3145/136 +f 2347/3141/133 2355/3140/132 2354/3146/137 +f 2353/3147/134 2354/3156/137 2361/3148/138 +f 2351/3150/135 2352/3131/127 2359/3151/140 +f 2349/3153/136 2350/3158/129 2357/3154/142 +f 2354/3156/137 2355/3165/132 2362/3157/144 +f 2352/3131/127 2353/3147/134 2360/3149/139 +f 2351/3150/135 2358/3152/141 2357/3154/142 +f 2359/3151/140 2366/3164/150 2365/3159/145 +f 2356/3155/143 2357/3154/142 2364/3160/146 +f 2362/3157/144 2369/3167/151 2368/3162/148 +f 2359/3151/140 2360/3149/139 2367/3163/149 +f 2357/3154/142 2358/3152/141 2365/3159/145 +f 2361/3148/138 2368/3162/148 2367/3163/149 +f 2375/3169/126 2383/3182/134 2382/3170/127 +f 2373/3172/128 2381/3183/135 2380/3173/129 +f 2371/3175/130 2379/3184/136 2378/3176/131 +f 2370/3178/117 2378/3209/131 2385/3179/132 +f 2376/3181/119 2384/3185/137 2383/3182/134 +f 2374/3171/118 2382/3170/127 2381/3183/135 +f 2372/3174/120 2380/3173/129 2379/3184/136 +f 2377/3180/133 2385/3179/132 2384/3185/137 +f 2383/3186/134 2384/3195/137 2391/3187/138 +f 2382/3170/127 2389/3196/140 2388/3189/141 +f 2380/3191/129 2387/3197/142 2386/3192/143 +f 2385/3194/132 2392/3201/144 2391/3187/138 +f 2382/3170/127 2383/3186/134 2390/3188/139 +f 2381/3190/135 2388/3189/141 2387/3197/142 +f 2389/3196/140 2396/3204/150 2395/3198/145 +f 2386/3192/143 2387/3197/142 2394/3199/146 +f 2392/3201/144 2399/3206/151 2398/3202/148 +f 2389/3196/140 2390/3188/139 2397/3203/149 +f 2387/3197/142 2388/3189/141 2395/3198/145 +f 2391/3187/138 2398/3202/148 2397/3203/149 o Strong_Pad v -2.500000 2.000000 2.500000 v 2.500000 2.000000 2.500000 @@ -8862,385 +8866,385 @@ vn 0.1944 -0.9809 0.0000 vn -0.1447 0.7194 0.6794 vn -0.1447 0.7194 -0.6794 s off -f 2437/3206/152 2432/3207/152 2433/3208/152 -f 2439/3209/153 2461/3210/153 2437/3211/153 -f 2436/3212/152 2434/3213/152 2432/3207/152 -f 2438/3214/152 2435/3215/152 2434/3213/152 -f 2439/3216/152 2433/3208/152 2435/3215/152 -f 2433/3217/154 2432/3218/154 2458/3219/154 -f 2432/3220/153 2434/3221/153 2453/3222/153 -f 2434/3223/155 2435/3224/155 2456/3225/155 -f 2435/3215/156 2433/3208/156 2455/3226/156 -f 2436/3227/156 2462/3228/156 2438/3229/156 -f 2438/3230/154 2463/3231/154 2439/3232/154 -f 2437/3233/155 2460/3234/155 2436/3235/155 -f 2452/3236/157 2463/3237/157 2455/3238/157 -f 2457/3239/157 2461/3240/157 2458/3241/157 -f 2454/3242/157 2460/3243/157 2453/3244/157 -f 2459/3245/157 2462/3246/157 2456/3247/157 -f 2467/3248/158 2458/3241/158 2461/3240/158 -f 2467/3248/159 2452/3236/159 2444/3249/159 -f 2455/3238/160 2465/3250/160 2447/3251/160 -f 2459/3245/158 2465/3250/158 2463/3237/158 -f 2464/3252/161 2456/3247/161 2462/3246/161 -f 2464/3252/160 2454/3242/160 2446/3253/160 -f 2453/3244/159 2466/3254/159 2445/3255/159 -f 2457/3239/161 2466/3254/161 2460/3243/161 -f 2470/3256/155 2476/3257/155 2471/3258/155 -f 2473/3259/152 2474/3260/152 2472/3261/152 -f 2477/3262/156 2469/3263/156 2476/3264/156 -f 2469/3265/154 2472/3261/154 2468/3266/154 -f 2475/3267/162 2477/3262/162 2476/3257/162 -f 2468/3268/153 2474/3260/153 2475/3269/153 -f 2497/3270/154 2507/3271/154 2505/3272/154 -f 2484/3273/152 2482/3274/152 2483/3275/152 -f 2481/3276/156 2484/3273/156 2479/3277/156 -f 2478/3278/153 2482/3279/153 2480/3280/153 -f 2480/3280/155 2485/3281/155 2481/3276/155 -f 2479/3277/154 2483/3275/154 2478/3282/154 -f 2490/3283/154 2515/3284/154 2513/3285/154 -f 2507/3286/152 2503/3287/152 2504/3288/152 -f 2500/3289/156 2506/3290/156 2497/3291/156 -f 2499/3292/155 2503/3293/155 2509/3294/155 -f 2498/3295/157 2496/3296/157 2495/3297/157 -f 2495/3297/163 2499/3298/163 2498/3295/163 -f 2501/3299/164 2497/3291/164 2496/3300/164 -f 2505/3301/165 2503/3287/165 2502/3302/165 -f 2509/3303/166 2507/3286/166 2506/3290/166 -f 2494/3304/153 2502/3302/153 2499/3298/153 -f 2515/3305/152 2511/3306/152 2512/3307/152 -f 2487/3308/156 2514/3309/156 2490/3310/156 -f 2488/3311/155 2511/3312/155 2517/3313/155 -f 2489/3314/157 2491/3315/157 2492/3316/157 -f 2492/3316/163 2488/3317/163 2489/3314/163 -f 2486/3318/164 2490/3310/164 2491/3319/164 -f 2513/3320/165 2511/3306/165 2510/3321/165 -f 2517/3322/166 2515/3305/166 2514/3309/166 -f 2493/3323/153 2510/3321/153 2488/3317/153 -f 2578/3324/152 2581/3325/152 2580/3326/152 -f 2593/3327/154 2603/3328/154 2601/3329/154 -f 2586/3330/154 2611/3331/154 2609/3332/154 -f 2603/3333/152 2599/3334/152 2600/3335/152 -f 2596/3336/156 2602/3337/156 2593/3338/156 -f 2595/3339/155 2599/3340/155 2605/3341/155 -f 2594/3342/157 2592/3343/157 2591/3344/157 -f 2591/3344/163 2595/3345/163 2594/3342/163 -f 2597/3346/164 2593/3338/164 2592/3347/164 -f 2601/3348/165 2599/3334/165 2598/3349/165 -f 2605/3350/166 2603/3333/166 2602/3337/166 -f 2590/3351/153 2598/3349/153 2595/3345/153 -f 2611/3352/152 2607/3353/152 2608/3354/152 -f 2583/3355/156 2610/3356/156 2586/3357/156 -f 2584/3358/155 2607/3359/155 2613/3360/155 -f 2585/3361/157 2587/3362/157 2588/3363/157 -f 2588/3363/163 2584/3364/163 2585/3361/163 -f 2582/3365/164 2586/3357/164 2587/3366/164 -f 2609/3367/165 2607/3353/165 2606/3368/165 -f 2613/3369/166 2611/3352/166 2610/3356/166 -f 2589/3370/153 2606/3368/153 2584/3364/153 -f 2437/3206/152 2436/3212/152 2432/3207/152 -f 2439/3209/153 2463/3371/153 2461/3210/153 -f 2436/3212/152 2438/3214/152 2434/3213/152 -f 2438/3214/152 2439/3216/152 2435/3215/152 -f 2439/3216/152 2437/3206/152 2433/3208/152 -f 2450/3372/154 2440/3373/154 2433/3217/154 -f 2432/3218/154 2442/3374/154 2449/3375/154 -f 2432/3218/154 2449/3375/154 2457/3376/154 -f 2458/3219/154 2450/3372/154 2433/3217/154 -f 2432/3218/154 2457/3376/154 2458/3219/154 -f 2445/3377/153 2442/3378/153 2432/3220/153 -f 2434/3221/153 2441/3379/153 2446/3380/153 -f 2434/3221/153 2446/3380/153 2454/3381/153 -f 2453/3222/153 2445/3377/153 2432/3220/153 -f 2434/3221/153 2454/3381/153 2453/3222/153 -f 2448/3382/155 2441/3383/155 2434/3223/155 -f 2435/3224/155 2443/3384/155 2451/3385/155 -f 2435/3224/155 2451/3385/155 2459/3386/155 -f 2456/3225/155 2448/3382/155 2434/3223/155 -f 2435/3224/155 2459/3386/155 2456/3225/155 -f 2447/3251/156 2443/3387/156 2435/3215/156 -f 2433/3208/156 2440/3388/156 2444/3249/156 -f 2433/3208/156 2444/3249/156 2452/3389/156 -f 2455/3226/156 2447/3251/156 2435/3215/156 -f 2433/3208/156 2452/3389/156 2455/3226/156 -f 2436/3227/156 2460/3390/156 2462/3228/156 -f 2438/3230/154 2462/3391/154 2463/3231/154 -f 2437/3233/155 2461/3392/155 2460/3234/155 -f 2452/3236/157 2461/3240/157 2463/3237/157 -f 2457/3239/157 2460/3243/157 2461/3240/157 -f 2454/3242/157 2462/3246/157 2460/3243/157 -f 2459/3245/157 2463/3237/157 2462/3246/157 -f 2467/3248/158 2450/3393/158 2458/3241/158 -f 2467/3248/159 2461/3240/159 2452/3236/159 -f 2455/3238/160 2463/3237/160 2465/3250/160 -f 2459/3245/158 2451/3394/158 2465/3250/158 -f 2464/3252/161 2448/3395/161 2456/3247/161 -f 2464/3252/160 2462/3246/160 2454/3242/160 -f 2453/3244/159 2460/3243/159 2466/3254/159 -f 2457/3239/161 2449/3396/161 2466/3254/161 -f 2470/3256/155 2475/3267/155 2476/3257/155 -f 2473/3259/152 2477/3262/152 2474/3260/152 -f 2473/3259/156 2469/3263/156 2477/3262/156 -f 2469/3263/156 2471/3397/156 2476/3264/156 -f 2469/3265/154 2473/3259/154 2472/3261/154 -f 2475/3267/162 2474/3260/162 2477/3262/162 -f 2475/3269/153 2470/3398/153 2468/3268/153 -f 2468/3268/153 2472/3261/153 2474/3260/153 -f 2505/3272/154 2494/3399/154 2495/3400/154 -f 2495/3400/154 2496/3401/154 2497/3270/154 -f 2497/3270/154 2506/3402/154 2507/3271/154 -f 2507/3271/154 2504/3403/154 2505/3272/154 -f 2505/3272/154 2495/3400/154 2497/3270/154 -f 2484/3273/152 2485/3404/152 2482/3274/152 -f 2481/3276/156 2485/3281/156 2484/3273/156 -f 2478/3278/153 2483/3405/153 2482/3279/153 -f 2480/3280/155 2482/3279/155 2485/3281/155 -f 2479/3277/154 2484/3273/154 2483/3275/154 -f 2513/3285/154 2493/3406/154 2492/3407/154 -f 2492/3407/154 2491/3408/154 2490/3283/154 -f 2490/3283/154 2514/3409/154 2515/3284/154 -f 2515/3284/154 2512/3410/154 2513/3285/154 -f 2513/3285/154 2492/3407/154 2490/3283/154 -f 2507/3286/152 2508/3411/152 2503/3287/152 -f 2500/3289/156 2509/3303/156 2506/3290/156 -f 2509/3294/155 2500/3412/155 2501/3413/155 -f 2501/3413/155 2498/3414/155 2499/3292/155 -f 2499/3292/155 2502/3415/155 2503/3293/155 -f 2503/3293/155 2508/3416/155 2509/3294/155 -f 2509/3294/155 2501/3413/155 2499/3292/155 -f 2498/3295/157 2501/3417/157 2496/3296/157 -f 2495/3297/163 2494/3304/163 2499/3298/163 -f 2501/3299/164 2500/3289/164 2497/3291/164 -f 2505/3301/165 2504/3288/165 2503/3287/165 -f 2509/3303/166 2508/3411/166 2507/3286/166 -f 2494/3304/153 2505/3301/153 2502/3302/153 -f 2515/3305/152 2516/3418/152 2511/3306/152 -f 2487/3308/156 2517/3322/156 2514/3309/156 -f 2517/3313/155 2487/3419/155 2486/3420/155 -f 2486/3420/155 2489/3421/155 2488/3311/155 -f 2488/3311/155 2510/3422/155 2511/3312/155 -f 2511/3312/155 2516/3423/155 2517/3313/155 -f 2517/3313/155 2486/3420/155 2488/3311/155 -f 2489/3314/157 2486/3424/157 2491/3315/157 -f 2492/3316/163 2493/3323/163 2488/3317/163 -f 2486/3318/164 2487/3308/164 2490/3310/164 -f 2513/3320/165 2512/3307/165 2511/3306/165 -f 2517/3322/166 2516/3418/166 2515/3305/166 -f 2493/3323/153 2513/3320/153 2510/3321/153 -f 2578/3324/152 2579/3425/152 2581/3325/152 -f 2601/3329/154 2590/3426/154 2591/3427/154 -f 2591/3427/154 2592/3428/154 2593/3327/154 -f 2593/3327/154 2602/3429/154 2603/3328/154 -f 2603/3328/154 2600/3430/154 2601/3329/154 -f 2601/3329/154 2591/3427/154 2593/3327/154 -f 2609/3332/154 2589/3431/154 2588/3432/154 -f 2588/3432/154 2587/3433/154 2586/3330/154 -f 2586/3330/154 2610/3434/154 2611/3331/154 -f 2611/3331/154 2608/3435/154 2609/3332/154 -f 2609/3332/154 2588/3432/154 2586/3330/154 -f 2603/3333/152 2604/3436/152 2599/3334/152 -f 2596/3336/156 2605/3350/156 2602/3337/156 -f 2605/3341/155 2596/3437/155 2597/3438/155 -f 2597/3438/155 2594/3439/155 2595/3339/155 -f 2595/3339/155 2598/3440/155 2599/3340/155 -f 2599/3340/155 2604/3441/155 2605/3341/155 -f 2605/3341/155 2597/3438/155 2595/3339/155 -f 2594/3342/157 2597/3442/157 2592/3343/157 -f 2591/3344/163 2590/3351/163 2595/3345/163 -f 2597/3346/164 2596/3336/164 2593/3338/164 -f 2601/3348/165 2600/3335/165 2599/3334/165 -f 2605/3350/166 2604/3436/166 2603/3333/166 -f 2590/3351/153 2601/3348/153 2598/3349/153 -f 2611/3352/152 2612/3443/152 2607/3353/152 -f 2583/3355/156 2613/3369/156 2610/3356/156 -f 2613/3360/155 2583/3444/155 2582/3445/155 -f 2582/3445/155 2585/3446/155 2584/3358/155 -f 2584/3358/155 2606/3447/155 2607/3359/155 -f 2607/3359/155 2612/3448/155 2613/3360/155 -f 2613/3360/155 2582/3445/155 2584/3358/155 -f 2585/3361/157 2582/3449/157 2587/3362/157 -f 2588/3363/163 2589/3370/163 2584/3364/163 -f 2582/3365/164 2583/3355/164 2586/3357/164 -f 2609/3367/165 2608/3354/165 2607/3353/165 -f 2613/3369/166 2612/3443/166 2611/3352/166 -f 2589/3370/153 2609/3367/153 2606/3368/153 +f 2437/3210/152 2432/3211/152 2433/3212/152 +f 2439/3213/153 2461/3214/153 2437/3215/153 +f 2436/3216/152 2434/3217/152 2432/3211/152 +f 2438/3218/152 2435/3219/152 2434/3217/152 +f 2439/3220/152 2433/3212/152 2435/3219/152 +f 2433/3221/154 2432/3222/154 2458/3223/154 +f 2432/3224/153 2434/3225/153 2453/3226/153 +f 2434/3227/155 2435/3228/155 2456/3229/155 +f 2435/3219/156 2433/3212/156 2455/3230/156 +f 2436/3231/156 2462/3232/156 2438/3233/156 +f 2438/3234/154 2463/3235/154 2439/3236/154 +f 2437/3237/155 2460/3238/155 2436/3239/155 +f 2452/3240/157 2463/3241/157 2455/3242/157 +f 2457/3243/157 2461/3244/157 2458/3245/157 +f 2454/3246/157 2460/3247/157 2453/3248/157 +f 2459/3249/157 2462/3250/157 2456/3251/157 +f 2467/3252/158 2458/3245/158 2461/3244/158 +f 2467/3252/159 2452/3240/159 2444/3253/159 +f 2455/3242/160 2465/3254/160 2447/3255/160 +f 2459/3249/158 2465/3254/158 2463/3241/158 +f 2464/3256/161 2456/3251/161 2462/3250/161 +f 2464/3256/160 2454/3246/160 2446/3257/160 +f 2453/3248/159 2466/3258/159 2445/3259/159 +f 2457/3243/161 2466/3258/161 2460/3247/161 +f 2470/3260/155 2476/3261/155 2471/3262/155 +f 2473/3263/152 2474/3264/152 2472/3265/152 +f 2477/3266/156 2469/3267/156 2476/3268/156 +f 2469/3269/154 2472/3265/154 2468/3270/154 +f 2475/3271/162 2477/3266/162 2476/3261/162 +f 2468/3272/153 2474/3264/153 2475/3273/153 +f 2497/3274/154 2507/3275/154 2505/3276/154 +f 2484/3277/152 2482/3278/152 2483/3279/152 +f 2481/3280/156 2484/3277/156 2479/3281/156 +f 2478/3282/153 2482/3283/153 2480/3284/153 +f 2480/3284/155 2485/3285/155 2481/3280/155 +f 2479/3281/154 2483/3279/154 2478/3286/154 +f 2490/3287/154 2515/3288/154 2513/3289/154 +f 2507/3290/152 2503/3291/152 2504/3292/152 +f 2500/3293/156 2506/3294/156 2497/3295/156 +f 2499/3296/155 2503/3297/155 2509/3298/155 +f 2498/3299/157 2496/3300/157 2495/3301/157 +f 2495/3301/163 2499/3302/163 2498/3299/163 +f 2501/3303/164 2497/3295/164 2496/3304/164 +f 2505/3305/165 2503/3291/165 2502/3306/165 +f 2509/3307/166 2507/3290/166 2506/3294/166 +f 2494/3308/153 2502/3306/153 2499/3302/153 +f 2515/3309/152 2511/3310/152 2512/3311/152 +f 2487/3312/156 2514/3313/156 2490/3314/156 +f 2488/3315/155 2511/3316/155 2517/3317/155 +f 2489/3318/157 2491/3319/157 2492/3320/157 +f 2492/3320/163 2488/3321/163 2489/3318/163 +f 2486/3322/164 2490/3314/164 2491/3323/164 +f 2513/3324/165 2511/3310/165 2510/3325/165 +f 2517/3326/166 2515/3309/166 2514/3313/166 +f 2493/3327/153 2510/3325/153 2488/3321/153 +f 2578/3328/152 2581/3329/152 2580/3330/152 +f 2593/3331/154 2603/3332/154 2601/3333/154 +f 2586/3334/154 2611/3335/154 2609/3336/154 +f 2603/3337/152 2599/3338/152 2600/3339/152 +f 2596/3340/156 2602/3341/156 2593/3342/156 +f 2595/3343/155 2599/3344/155 2605/3345/155 +f 2594/3346/157 2592/3347/157 2591/3348/157 +f 2591/3348/163 2595/3349/163 2594/3346/163 +f 2597/3350/164 2593/3342/164 2592/3351/164 +f 2601/3352/165 2599/3338/165 2598/3353/165 +f 2605/3354/166 2603/3337/166 2602/3341/166 +f 2590/3355/153 2598/3353/153 2595/3349/153 +f 2611/3356/152 2607/3357/152 2608/3358/152 +f 2583/3359/156 2610/3360/156 2586/3361/156 +f 2584/3362/155 2607/3363/155 2613/3364/155 +f 2585/3365/157 2587/3366/157 2588/3367/157 +f 2588/3367/163 2584/3368/163 2585/3365/163 +f 2582/3369/164 2586/3361/164 2587/3370/164 +f 2609/3371/165 2607/3357/165 2606/3372/165 +f 2613/3373/166 2611/3356/166 2610/3360/166 +f 2589/3374/153 2606/3372/153 2584/3368/153 +f 2437/3210/152 2436/3216/152 2432/3211/152 +f 2439/3213/153 2463/3375/153 2461/3214/153 +f 2436/3216/152 2438/3218/152 2434/3217/152 +f 2438/3218/152 2439/3220/152 2435/3219/152 +f 2439/3220/152 2437/3210/152 2433/3212/152 +f 2450/3376/154 2440/3377/154 2433/3221/154 +f 2432/3222/154 2442/3378/154 2449/3379/154 +f 2432/3222/154 2449/3379/154 2457/3380/154 +f 2458/3223/154 2450/3376/154 2433/3221/154 +f 2432/3222/154 2457/3380/154 2458/3223/154 +f 2445/3381/153 2442/3382/153 2432/3224/153 +f 2434/3225/153 2441/3383/153 2446/3384/153 +f 2434/3225/153 2446/3384/153 2454/3385/153 +f 2453/3226/153 2445/3381/153 2432/3224/153 +f 2434/3225/153 2454/3385/153 2453/3226/153 +f 2448/3386/155 2441/3387/155 2434/3227/155 +f 2435/3228/155 2443/3388/155 2451/3389/155 +f 2435/3228/155 2451/3389/155 2459/3390/155 +f 2456/3229/155 2448/3386/155 2434/3227/155 +f 2435/3228/155 2459/3390/155 2456/3229/155 +f 2447/3255/156 2443/3391/156 2435/3219/156 +f 2433/3212/156 2440/3392/156 2444/3253/156 +f 2433/3212/156 2444/3253/156 2452/3393/156 +f 2455/3230/156 2447/3255/156 2435/3219/156 +f 2433/3212/156 2452/3393/156 2455/3230/156 +f 2436/3231/156 2460/3394/156 2462/3232/156 +f 2438/3234/154 2462/3395/154 2463/3235/154 +f 2437/3237/155 2461/3396/155 2460/3238/155 +f 2452/3240/157 2461/3244/157 2463/3241/157 +f 2457/3243/157 2460/3247/157 2461/3244/157 +f 2454/3246/157 2462/3250/157 2460/3247/157 +f 2459/3249/157 2463/3241/157 2462/3250/157 +f 2467/3252/158 2450/3397/158 2458/3245/158 +f 2467/3252/159 2461/3244/159 2452/3240/159 +f 2455/3242/160 2463/3241/160 2465/3254/160 +f 2459/3249/158 2451/3398/158 2465/3254/158 +f 2464/3256/161 2448/3399/161 2456/3251/161 +f 2464/3256/160 2462/3250/160 2454/3246/160 +f 2453/3248/159 2460/3247/159 2466/3258/159 +f 2457/3243/161 2449/3400/161 2466/3258/161 +f 2470/3260/155 2475/3271/155 2476/3261/155 +f 2473/3263/152 2477/3266/152 2474/3264/152 +f 2473/3263/156 2469/3267/156 2477/3266/156 +f 2469/3267/156 2471/3401/156 2476/3268/156 +f 2469/3269/154 2473/3263/154 2472/3265/154 +f 2475/3271/162 2474/3264/162 2477/3266/162 +f 2475/3273/153 2470/3402/153 2468/3272/153 +f 2468/3272/153 2472/3265/153 2474/3264/153 +f 2505/3276/154 2494/3403/154 2495/3404/154 +f 2495/3404/154 2496/3405/154 2497/3274/154 +f 2497/3274/154 2506/3406/154 2507/3275/154 +f 2507/3275/154 2504/3407/154 2505/3276/154 +f 2505/3276/154 2495/3404/154 2497/3274/154 +f 2484/3277/152 2485/3408/152 2482/3278/152 +f 2481/3280/156 2485/3285/156 2484/3277/156 +f 2478/3282/153 2483/3409/153 2482/3283/153 +f 2480/3284/155 2482/3283/155 2485/3285/155 +f 2479/3281/154 2484/3277/154 2483/3279/154 +f 2513/3289/154 2493/3410/154 2492/3411/154 +f 2492/3411/154 2491/3412/154 2490/3287/154 +f 2490/3287/154 2514/3413/154 2515/3288/154 +f 2515/3288/154 2512/3414/154 2513/3289/154 +f 2513/3289/154 2492/3411/154 2490/3287/154 +f 2507/3290/152 2508/3415/152 2503/3291/152 +f 2500/3293/156 2509/3307/156 2506/3294/156 +f 2509/3298/155 2500/3416/155 2501/3417/155 +f 2501/3417/155 2498/3418/155 2499/3296/155 +f 2499/3296/155 2502/3419/155 2503/3297/155 +f 2503/3297/155 2508/3420/155 2509/3298/155 +f 2509/3298/155 2501/3417/155 2499/3296/155 +f 2498/3299/157 2501/3421/157 2496/3300/157 +f 2495/3301/163 2494/3308/163 2499/3302/163 +f 2501/3303/164 2500/3293/164 2497/3295/164 +f 2505/3305/165 2504/3292/165 2503/3291/165 +f 2509/3307/166 2508/3415/166 2507/3290/166 +f 2494/3308/153 2505/3305/153 2502/3306/153 +f 2515/3309/152 2516/3422/152 2511/3310/152 +f 2487/3312/156 2517/3326/156 2514/3313/156 +f 2517/3317/155 2487/3423/155 2486/3424/155 +f 2486/3424/155 2489/3425/155 2488/3315/155 +f 2488/3315/155 2510/3426/155 2511/3316/155 +f 2511/3316/155 2516/3427/155 2517/3317/155 +f 2517/3317/155 2486/3424/155 2488/3315/155 +f 2489/3318/157 2486/3428/157 2491/3319/157 +f 2492/3320/163 2493/3327/163 2488/3321/163 +f 2486/3322/164 2487/3312/164 2490/3314/164 +f 2513/3324/165 2512/3311/165 2511/3310/165 +f 2517/3326/166 2516/3422/166 2515/3309/166 +f 2493/3327/153 2513/3324/153 2510/3325/153 +f 2578/3328/152 2579/3429/152 2581/3329/152 +f 2601/3333/154 2590/3430/154 2591/3431/154 +f 2591/3431/154 2592/3432/154 2593/3331/154 +f 2593/3331/154 2602/3433/154 2603/3332/154 +f 2603/3332/154 2600/3434/154 2601/3333/154 +f 2601/3333/154 2591/3431/154 2593/3331/154 +f 2609/3336/154 2589/3435/154 2588/3436/154 +f 2588/3436/154 2587/3437/154 2586/3334/154 +f 2586/3334/154 2610/3438/154 2611/3335/154 +f 2611/3335/154 2608/3439/154 2609/3336/154 +f 2609/3336/154 2588/3436/154 2586/3334/154 +f 2603/3337/152 2604/3440/152 2599/3338/152 +f 2596/3340/156 2605/3354/156 2602/3341/156 +f 2605/3345/155 2596/3441/155 2597/3442/155 +f 2597/3442/155 2594/3443/155 2595/3343/155 +f 2595/3343/155 2598/3444/155 2599/3344/155 +f 2599/3344/155 2604/3445/155 2605/3345/155 +f 2605/3345/155 2597/3442/155 2595/3343/155 +f 2594/3346/157 2597/3446/157 2592/3347/157 +f 2591/3348/163 2590/3355/163 2595/3349/163 +f 2597/3350/164 2596/3340/164 2593/3342/164 +f 2601/3352/165 2600/3339/165 2599/3338/165 +f 2605/3354/166 2604/3440/166 2603/3337/166 +f 2590/3355/153 2601/3352/153 2598/3353/153 +f 2611/3356/152 2612/3447/152 2607/3357/152 +f 2583/3359/156 2613/3373/156 2610/3360/156 +f 2613/3364/155 2583/3448/155 2582/3449/155 +f 2582/3449/155 2585/3450/155 2584/3362/155 +f 2584/3362/155 2606/3451/155 2607/3363/155 +f 2607/3363/155 2612/3452/155 2613/3364/155 +f 2613/3364/155 2582/3449/155 2584/3362/155 +f 2585/3365/157 2582/3453/157 2587/3366/157 +f 2588/3367/163 2589/3374/163 2584/3368/163 +f 2582/3369/164 2583/3359/164 2586/3361/164 +f 2609/3371/165 2608/3358/165 2607/3357/165 +f 2613/3373/166 2612/3447/166 2611/3356/166 +f 2589/3374/153 2609/3371/153 2606/3372/153 s 1 -f 2532/3450/167 2524/3451/168 2525/3452/169 -f 2523/3453/170 2529/3454/171 2522/3455/172 -f 2527/3456/173 2518/3457/174 2519/3458/175 -f 2526/3459/176 2525/3452/169 2518/3457/174 -f 2531/3460/166 2523/3453/170 2524/3451/168 -f 2522/3455/172 2528/3461/177 2521/3462/178 -f 2537/3463/179 2529/3454/171 2530/3464/180 -f 2534/3465/181 2526/3459/176 2527/3456/173 -f 2533/3466/182 2532/3450/167 2526/3459/176 -f 2538/3467/183 2530/3464/180 2531/3460/166 -f 2529/3454/171 2535/3468/184 2528/3461/177 -f 2532/3450/167 2538/3467/183 2531/3460/166 -f 2520/3469/185 2521/3462/178 2528/3461/177 -f 2528/3461/177 2535/3468/184 2520/3469/185 -f 2519/3458/175 2520/3470/185 2527/3456/173 -f 2527/3456/173 2520/3470/185 2534/3465/181 -f 2534/3471/181 2541/3472/155 2533/3473/182 -f 2520/3474/185 2542/3475/186 2534/3471/181 -f 2533/3473/182 2547/3476/162 2539/3477/187 -f 2535/3478/184 2540/3479/157 2520/3480/185 -f 2538/3467/183 2545/3481/188 2537/3463/179 -f 2536/3482/189 2543/3483/190 2535/3478/184 -f 2539/3477/187 2546/3484/152 2538/3467/183 -f 2537/3463/179 2544/3485/154 2536/3482/189 -f 2555/3486/169 2561/3487/166 2554/3488/168 -f 2560/3489/180 2552/3490/172 2553/3491/170 -f 2557/3492/173 2548/3493/174 2549/3494/175 -f 2556/3495/176 2555/3486/169 2548/3493/174 -f 2561/3487/166 2553/3491/170 2554/3488/168 -f 2559/3496/171 2551/3497/178 2552/3490/172 -f 2560/3489/180 2566/3498/189 2559/3496/171 -f 2564/3499/181 2556/3495/176 2557/3492/173 -f 2556/3495/176 2569/3500/187 2562/3501/167 -f 2568/3502/183 2560/3489/180 2561/3487/166 -f 2559/3496/171 2565/3503/184 2558/3504/177 -f 2562/3501/167 2568/3502/183 2561/3487/166 -f 2550/3505/185 2551/3497/178 2558/3504/177 -f 2558/3504/177 2565/3503/184 2550/3505/185 -f 2549/3494/175 2550/3506/185 2557/3492/173 -f 2557/3492/173 2550/3506/185 2564/3499/181 -f 2564/3507/181 2571/3508/155 2563/3509/182 -f 2550/3510/185 2572/3511/186 2564/3507/181 -f 2563/3509/182 2577/3512/162 2569/3500/187 -f 2565/3513/184 2570/3514/157 2550/3515/185 -f 2568/3502/183 2575/3516/188 2567/3517/179 -f 2566/3518/189 2573/3519/190 2565/3513/184 -f 2569/3500/187 2576/3520/152 2568/3502/183 -f 2567/3517/179 2574/3521/154 2566/3518/189 -f 2621/3522/191 2627/3523/165 2620/3524/192 -f 2619/3525/193 2625/3526/194 2618/3527/195 -f 2623/3528/196 2614/3529/197 2615/3530/198 -f 2622/3531/199 2621/3522/191 2614/3529/197 -f 2620/3524/192 2626/3532/200 2619/3525/193 -f 2618/3527/195 2624/3533/201 2617/3534/202 -f 2626/3532/200 2632/3535/203 2625/3526/194 -f 2630/3536/204 2622/3531/199 2623/3528/196 -f 2629/3537/205 2628/3538/206 2622/3531/199 -f 2634/3539/207 2626/3532/200 2627/3523/165 -f 2625/3526/194 2631/3540/208 2624/3533/201 -f 2628/3538/206 2634/3539/207 2627/3523/165 -f 2616/3541/209 2617/3534/202 2624/3533/201 -f 2624/3533/201 2631/3540/208 2616/3541/209 -f 2615/3530/198 2616/3542/209 2623/3528/196 -f 2623/3528/196 2616/3542/209 2630/3536/204 -f 2630/3543/204 2637/3544/154 2629/3545/205 -f 2616/3546/209 2638/3547/190 2630/3543/204 -f 2629/3545/205 2643/3548/188 2635/3549/210 -f 2631/3550/208 2636/3551/157 2616/3552/209 -f 2634/3539/207 2641/3553/162 2633/3554/211 -f 2632/3555/203 2639/3556/186 2631/3550/208 -f 2635/3549/210 2642/3557/152 2634/3539/207 -f 2633/3554/211 2640/3558/155 2632/3555/203 -f 2651/3559/191 2657/3560/165 2650/3561/192 -f 2656/3562/200 2648/3563/195 2649/3564/193 -f 2653/3565/196 2644/3566/197 2645/3567/198 -f 2652/3568/199 2651/3559/191 2644/3566/197 -f 2657/3560/165 2649/3564/193 2650/3561/192 -f 2648/3563/195 2654/3569/201 2647/3570/202 -f 2663/3571/211 2655/3572/194 2656/3562/200 -f 2653/3565/196 2659/3573/205 2652/3568/199 -f 2659/3573/205 2658/3574/206 2652/3568/199 -f 2664/3575/207 2656/3562/200 2657/3560/165 -f 2655/3572/194 2661/3576/208 2654/3569/201 -f 2665/3577/210 2657/3560/165 2658/3574/206 -f 2646/3578/209 2647/3570/202 2654/3569/201 -f 2654/3569/201 2661/3576/208 2646/3578/209 -f 2645/3567/198 2646/3579/209 2653/3565/196 -f 2653/3565/196 2646/3579/209 2660/3580/204 -f 2660/3581/204 2667/3582/154 2659/3583/205 -f 2646/3584/209 2668/3585/190 2660/3581/204 -f 2659/3583/205 2673/3586/188 2665/3577/210 -f 2661/3587/208 2666/3588/157 2646/3589/209 -f 2664/3575/207 2671/3590/162 2663/3571/211 -f 2662/3591/203 2669/3592/186 2661/3587/208 -f 2664/3575/207 2673/3586/188 2672/3593/152 -f 2662/3591/203 2671/3590/162 2670/3594/155 -f 2532/3450/167 2531/3460/166 2524/3451/168 -f 2523/3453/170 2530/3464/180 2529/3454/171 -f 2527/3456/173 2526/3459/176 2518/3457/174 -f 2526/3459/176 2532/3450/167 2525/3452/169 -f 2531/3460/166 2530/3464/180 2523/3453/170 -f 2522/3455/172 2529/3454/171 2528/3461/177 -f 2537/3463/179 2536/3595/189 2529/3454/171 -f 2534/3465/181 2533/3466/182 2526/3459/176 -f 2533/3466/182 2539/3477/187 2532/3450/167 -f 2538/3467/183 2537/3463/179 2530/3464/180 -f 2529/3454/171 2536/3595/189 2535/3468/184 -f 2532/3450/167 2539/3477/187 2538/3467/183 -f 2534/3471/181 2542/3475/186 2541/3472/155 -f 2520/3474/185 2540/3596/157 2542/3475/186 -f 2533/3473/182 2541/3472/155 2547/3476/162 -f 2535/3478/184 2543/3483/190 2540/3479/157 -f 2538/3467/183 2546/3484/152 2545/3481/188 -f 2536/3482/189 2544/3485/154 2543/3483/190 -f 2539/3477/187 2547/3476/162 2546/3484/152 -f 2537/3463/179 2545/3481/188 2544/3485/154 -f 2555/3486/169 2562/3501/167 2561/3487/166 -f 2560/3489/180 2559/3496/171 2552/3490/172 -f 2557/3492/173 2556/3495/176 2548/3493/174 -f 2556/3495/176 2562/3501/167 2555/3486/169 -f 2561/3487/166 2560/3489/180 2553/3491/170 -f 2559/3496/171 2558/3504/177 2551/3497/178 -f 2560/3489/180 2567/3517/179 2566/3498/189 -f 2564/3499/181 2563/3597/182 2556/3495/176 -f 2556/3495/176 2563/3597/182 2569/3500/187 -f 2568/3502/183 2567/3517/179 2560/3489/180 -f 2559/3496/171 2566/3498/189 2565/3503/184 -f 2562/3501/167 2569/3500/187 2568/3502/183 -f 2564/3507/181 2572/3511/186 2571/3508/155 -f 2550/3510/185 2570/3598/157 2572/3511/186 -f 2563/3509/182 2571/3508/155 2577/3512/162 -f 2565/3513/184 2573/3519/190 2570/3514/157 -f 2568/3502/183 2576/3520/152 2575/3516/188 -f 2566/3518/189 2574/3521/154 2573/3519/190 -f 2569/3500/187 2577/3512/162 2576/3520/152 -f 2567/3517/179 2575/3516/188 2574/3521/154 -f 2621/3522/191 2628/3538/206 2627/3523/165 -f 2619/3525/193 2626/3532/200 2625/3526/194 -f 2623/3528/196 2622/3531/199 2614/3529/197 -f 2622/3531/199 2628/3538/206 2621/3522/191 -f 2620/3524/192 2627/3523/165 2626/3532/200 -f 2618/3527/195 2625/3526/194 2624/3533/201 -f 2626/3532/200 2633/3554/211 2632/3535/203 -f 2630/3536/204 2629/3537/205 2622/3531/199 -f 2629/3537/205 2635/3549/210 2628/3538/206 -f 2634/3539/207 2633/3554/211 2626/3532/200 -f 2625/3526/194 2632/3535/203 2631/3540/208 -f 2628/3538/206 2635/3549/210 2634/3539/207 -f 2630/3543/204 2638/3547/190 2637/3544/154 -f 2616/3546/209 2636/3599/157 2638/3547/190 -f 2629/3545/205 2637/3544/154 2643/3548/188 -f 2631/3550/208 2639/3556/186 2636/3551/157 -f 2634/3539/207 2642/3557/152 2641/3553/162 -f 2632/3555/203 2640/3558/155 2639/3556/186 -f 2635/3549/210 2643/3548/188 2642/3557/152 -f 2633/3554/211 2641/3553/162 2640/3558/155 -f 2651/3559/191 2658/3574/206 2657/3560/165 -f 2656/3562/200 2655/3572/194 2648/3563/195 -f 2653/3565/196 2652/3568/199 2644/3566/197 -f 2652/3568/199 2658/3574/206 2651/3559/191 -f 2657/3560/165 2656/3562/200 2649/3564/193 -f 2648/3563/195 2655/3572/194 2654/3569/201 -f 2663/3571/211 2662/3600/203 2655/3572/194 -f 2653/3565/196 2660/3580/204 2659/3573/205 -f 2659/3573/205 2665/3577/210 2658/3574/206 -f 2664/3575/207 2663/3571/211 2656/3562/200 -f 2655/3572/194 2662/3600/203 2661/3576/208 -f 2665/3577/210 2664/3575/207 2657/3560/165 -f 2660/3581/204 2668/3585/190 2667/3582/154 -f 2646/3584/209 2666/3601/157 2668/3585/190 -f 2659/3583/205 2667/3582/154 2673/3586/188 -f 2661/3587/208 2669/3592/186 2666/3588/157 -f 2664/3575/207 2672/3593/152 2671/3590/162 -f 2662/3591/203 2670/3594/155 2669/3592/186 -f 2664/3575/207 2665/3577/210 2673/3586/188 -f 2662/3591/203 2663/3571/211 2671/3590/162 +f 2532/3454/167 2524/3455/168 2525/3456/169 +f 2523/3457/170 2529/3458/171 2522/3459/172 +f 2527/3460/173 2518/3461/174 2519/3462/175 +f 2526/3463/176 2525/3456/169 2518/3461/174 +f 2531/3464/166 2523/3457/170 2524/3455/168 +f 2522/3459/172 2528/3465/177 2521/3466/178 +f 2537/3467/179 2529/3458/171 2530/3468/180 +f 2534/3469/181 2526/3463/176 2527/3460/173 +f 2533/3470/182 2532/3454/167 2526/3463/176 +f 2538/3471/183 2530/3468/180 2531/3464/166 +f 2529/3458/171 2535/3472/184 2528/3465/177 +f 2532/3454/167 2538/3471/183 2531/3464/166 +f 2520/3473/185 2521/3466/178 2528/3465/177 +f 2528/3465/177 2535/3472/184 2520/3473/185 +f 2519/3462/175 2520/3474/185 2527/3460/173 +f 2527/3460/173 2520/3474/185 2534/3469/181 +f 2534/3475/181 2541/3476/155 2533/3477/182 +f 2520/3478/185 2542/3479/186 2534/3475/181 +f 2533/3477/182 2547/3480/162 2539/3481/187 +f 2535/3482/184 2540/3483/157 2520/3484/185 +f 2538/3471/183 2545/3485/188 2537/3467/179 +f 2536/3486/189 2543/3487/190 2535/3482/184 +f 2539/3481/187 2546/3488/152 2538/3471/183 +f 2537/3467/179 2544/3489/154 2536/3486/189 +f 2555/3490/169 2561/3491/166 2554/3492/168 +f 2560/3493/180 2552/3494/172 2553/3495/170 +f 2557/3496/173 2548/3497/174 2549/3498/175 +f 2556/3499/176 2555/3490/169 2548/3497/174 +f 2561/3491/166 2553/3495/170 2554/3492/168 +f 2559/3500/171 2551/3501/178 2552/3494/172 +f 2560/3493/180 2566/3502/189 2559/3500/171 +f 2564/3503/181 2556/3499/176 2557/3496/173 +f 2556/3499/176 2569/3504/187 2562/3505/167 +f 2568/3506/183 2560/3493/180 2561/3491/166 +f 2559/3500/171 2565/3507/184 2558/3508/177 +f 2562/3505/167 2568/3506/183 2561/3491/166 +f 2550/3509/185 2551/3501/178 2558/3508/177 +f 2558/3508/177 2565/3507/184 2550/3509/185 +f 2549/3498/175 2550/3510/185 2557/3496/173 +f 2557/3496/173 2550/3510/185 2564/3503/181 +f 2564/3511/181 2571/3512/155 2563/3513/182 +f 2550/3514/185 2572/3515/186 2564/3511/181 +f 2563/3513/182 2577/3516/162 2569/3504/187 +f 2565/3517/184 2570/3518/157 2550/3519/185 +f 2568/3506/183 2575/3520/188 2567/3521/179 +f 2566/3522/189 2573/3523/190 2565/3517/184 +f 2569/3504/187 2576/3524/152 2568/3506/183 +f 2567/3521/179 2574/3525/154 2566/3522/189 +f 2621/3526/191 2627/3527/165 2620/3528/192 +f 2619/3529/193 2625/3530/194 2618/3531/195 +f 2623/3532/196 2614/3533/197 2615/3534/198 +f 2622/3535/199 2621/3526/191 2614/3533/197 +f 2620/3528/192 2626/3536/200 2619/3529/193 +f 2618/3531/195 2624/3537/201 2617/3538/202 +f 2626/3536/200 2632/3539/203 2625/3530/194 +f 2630/3540/204 2622/3535/199 2623/3532/196 +f 2629/3541/205 2628/3542/206 2622/3535/199 +f 2634/3543/207 2626/3536/200 2627/3527/165 +f 2625/3530/194 2631/3544/208 2624/3537/201 +f 2628/3542/206 2634/3543/207 2627/3527/165 +f 2616/3545/209 2617/3538/202 2624/3537/201 +f 2624/3537/201 2631/3544/208 2616/3545/209 +f 2615/3534/198 2616/3546/209 2623/3532/196 +f 2623/3532/196 2616/3546/209 2630/3540/204 +f 2630/3547/204 2637/3548/154 2629/3549/205 +f 2616/3550/209 2638/3551/190 2630/3547/204 +f 2629/3549/205 2643/3552/188 2635/3553/210 +f 2631/3554/208 2636/3555/157 2616/3556/209 +f 2634/3543/207 2641/3557/162 2633/3558/211 +f 2632/3559/203 2639/3560/186 2631/3554/208 +f 2635/3553/210 2642/3561/152 2634/3543/207 +f 2633/3558/211 2640/3562/155 2632/3559/203 +f 2651/3563/191 2657/3564/165 2650/3565/192 +f 2656/3566/200 2648/3567/195 2649/3568/193 +f 2653/3569/196 2644/3570/197 2645/3571/198 +f 2652/3572/199 2651/3563/191 2644/3570/197 +f 2657/3564/165 2649/3568/193 2650/3565/192 +f 2648/3567/195 2654/3573/201 2647/3574/202 +f 2663/3575/211 2655/3576/194 2656/3566/200 +f 2653/3569/196 2659/3577/205 2652/3572/199 +f 2659/3577/205 2658/3578/206 2652/3572/199 +f 2664/3579/207 2656/3566/200 2657/3564/165 +f 2655/3576/194 2661/3580/208 2654/3573/201 +f 2665/3581/210 2657/3564/165 2658/3578/206 +f 2646/3582/209 2647/3574/202 2654/3573/201 +f 2654/3573/201 2661/3580/208 2646/3582/209 +f 2645/3571/198 2646/3583/209 2653/3569/196 +f 2653/3569/196 2646/3583/209 2660/3584/204 +f 2660/3585/204 2667/3586/154 2659/3587/205 +f 2646/3588/209 2668/3589/190 2660/3585/204 +f 2659/3587/205 2673/3590/188 2665/3581/210 +f 2661/3591/208 2666/3592/157 2646/3593/209 +f 2664/3579/207 2671/3594/162 2663/3575/211 +f 2662/3595/203 2669/3596/186 2661/3591/208 +f 2664/3579/207 2673/3590/188 2672/3597/152 +f 2662/3595/203 2671/3594/162 2670/3598/155 +f 2532/3454/167 2531/3464/166 2524/3455/168 +f 2523/3457/170 2530/3468/180 2529/3458/171 +f 2527/3460/173 2526/3463/176 2518/3461/174 +f 2526/3463/176 2532/3454/167 2525/3456/169 +f 2531/3464/166 2530/3468/180 2523/3457/170 +f 2522/3459/172 2529/3458/171 2528/3465/177 +f 2537/3467/179 2536/3599/189 2529/3458/171 +f 2534/3469/181 2533/3470/182 2526/3463/176 +f 2533/3470/182 2539/3481/187 2532/3454/167 +f 2538/3471/183 2537/3467/179 2530/3468/180 +f 2529/3458/171 2536/3599/189 2535/3472/184 +f 2532/3454/167 2539/3481/187 2538/3471/183 +f 2534/3475/181 2542/3479/186 2541/3476/155 +f 2520/3478/185 2540/3600/157 2542/3479/186 +f 2533/3477/182 2541/3476/155 2547/3480/162 +f 2535/3482/184 2543/3487/190 2540/3483/157 +f 2538/3471/183 2546/3488/152 2545/3485/188 +f 2536/3486/189 2544/3489/154 2543/3487/190 +f 2539/3481/187 2547/3480/162 2546/3488/152 +f 2537/3467/179 2545/3485/188 2544/3489/154 +f 2555/3490/169 2562/3505/167 2561/3491/166 +f 2560/3493/180 2559/3500/171 2552/3494/172 +f 2557/3496/173 2556/3499/176 2548/3497/174 +f 2556/3499/176 2562/3505/167 2555/3490/169 +f 2561/3491/166 2560/3493/180 2553/3495/170 +f 2559/3500/171 2558/3508/177 2551/3501/178 +f 2560/3493/180 2567/3521/179 2566/3502/189 +f 2564/3503/181 2563/3601/182 2556/3499/176 +f 2556/3499/176 2563/3601/182 2569/3504/187 +f 2568/3506/183 2567/3521/179 2560/3493/180 +f 2559/3500/171 2566/3502/189 2565/3507/184 +f 2562/3505/167 2569/3504/187 2568/3506/183 +f 2564/3511/181 2572/3515/186 2571/3512/155 +f 2550/3514/185 2570/3602/157 2572/3515/186 +f 2563/3513/182 2571/3512/155 2577/3516/162 +f 2565/3517/184 2573/3523/190 2570/3518/157 +f 2568/3506/183 2576/3524/152 2575/3520/188 +f 2566/3522/189 2574/3525/154 2573/3523/190 +f 2569/3504/187 2577/3516/162 2576/3524/152 +f 2567/3521/179 2575/3520/188 2574/3525/154 +f 2621/3526/191 2628/3542/206 2627/3527/165 +f 2619/3529/193 2626/3536/200 2625/3530/194 +f 2623/3532/196 2622/3535/199 2614/3533/197 +f 2622/3535/199 2628/3542/206 2621/3526/191 +f 2620/3528/192 2627/3527/165 2626/3536/200 +f 2618/3531/195 2625/3530/194 2624/3537/201 +f 2626/3536/200 2633/3558/211 2632/3539/203 +f 2630/3540/204 2629/3541/205 2622/3535/199 +f 2629/3541/205 2635/3553/210 2628/3542/206 +f 2634/3543/207 2633/3558/211 2626/3536/200 +f 2625/3530/194 2632/3539/203 2631/3544/208 +f 2628/3542/206 2635/3553/210 2634/3543/207 +f 2630/3547/204 2638/3551/190 2637/3548/154 +f 2616/3550/209 2636/3603/157 2638/3551/190 +f 2629/3549/205 2637/3548/154 2643/3552/188 +f 2631/3554/208 2639/3560/186 2636/3555/157 +f 2634/3543/207 2642/3561/152 2641/3557/162 +f 2632/3559/203 2640/3562/155 2639/3560/186 +f 2635/3553/210 2643/3552/188 2642/3561/152 +f 2633/3558/211 2641/3557/162 2640/3562/155 +f 2651/3563/191 2658/3578/206 2657/3564/165 +f 2656/3566/200 2655/3576/194 2648/3567/195 +f 2653/3569/196 2652/3572/199 2644/3570/197 +f 2652/3572/199 2658/3578/206 2651/3563/191 +f 2657/3564/165 2656/3566/200 2649/3568/193 +f 2648/3567/195 2655/3576/194 2654/3573/201 +f 2663/3575/211 2662/3604/203 2655/3576/194 +f 2653/3569/196 2660/3584/204 2659/3577/205 +f 2659/3577/205 2665/3581/210 2658/3578/206 +f 2664/3579/207 2663/3575/211 2656/3566/200 +f 2655/3576/194 2662/3604/203 2661/3580/208 +f 2665/3581/210 2664/3579/207 2657/3564/165 +f 2660/3585/204 2668/3589/190 2667/3586/154 +f 2646/3588/209 2666/3605/157 2668/3589/190 +f 2659/3587/205 2667/3586/154 2673/3590/188 +f 2661/3591/208 2669/3596/186 2666/3592/157 +f 2664/3579/207 2672/3597/152 2671/3594/162 +f 2662/3595/203 2670/3598/155 2669/3596/186 +f 2664/3579/207 2665/3581/210 2673/3590/188 +f 2662/3595/203 2663/3575/211 2671/3594/162 o Strong_Rope v 0.625000 7.661612 0.088388 v 0.625000 7.625000 0.000000 @@ -9613,211 +9617,211 @@ vn 0.2962 0.6332 0.7150 vn 0.0392 0.9947 0.0948 vn 0.3827 0.0000 0.9239 s off -f 2778/3602/212 2783/3603/212 2779/3604/212 -f 2779/3605/213 2785/3606/213 2781/3607/213 -f 2780/3608/214 2782/3609/214 2778/3602/214 -f 2781/3607/215 2784/3610/215 2780/3608/215 -f 2790/3611/213 2789/3612/213 2788/3613/213 -f 2787/3614/213 2793/3615/213 2786/3616/213 -f 2794/3617/213 2792/3618/213 2793/3615/213 -f 2795/3619/213 2791/3620/213 2792/3618/213 -f 2791/3620/213 2797/3621/213 2790/3611/213 -f 2802/3622/214 2801/3623/214 2809/3624/214 -f 2805/3625/214 2799/3626/214 2798/3627/214 -f 2804/3628/214 2806/3629/214 2805/3625/214 -f 2803/3630/214 2807/3631/214 2804/3628/214 -f 2803/3630/214 2809/3624/214 2808/3632/214 -f 2778/3602/212 2782/3609/212 2783/3603/212 -f 2779/3605/213 2783/3633/213 2785/3606/213 -f 2780/3608/214 2784/3610/214 2782/3609/214 -f 2781/3607/215 2785/3606/215 2784/3610/215 -f 2790/3611/213 2797/3621/213 2789/3612/213 -f 2787/3614/213 2794/3617/213 2793/3615/213 -f 2794/3617/213 2795/3619/213 2792/3618/213 -f 2795/3619/213 2796/3634/213 2791/3620/213 -f 2791/3620/213 2796/3634/213 2797/3621/213 -f 2802/3622/214 2800/3635/214 2801/3623/214 -f 2805/3625/214 2806/3629/214 2799/3626/214 -f 2804/3628/214 2807/3631/214 2806/3629/214 -f 2803/3630/214 2808/3632/214 2807/3631/214 -f 2803/3630/214 2802/3622/214 2809/3624/214 +f 2778/3606/212 2783/3607/212 2779/3608/212 +f 2779/3609/213 2785/3610/213 2781/3611/213 +f 2780/3612/214 2782/3613/214 2778/3606/214 +f 2781/3611/215 2784/3614/215 2780/3612/215 +f 2790/3615/213 2789/3616/213 2788/3617/213 +f 2787/3618/213 2793/3619/213 2786/3620/213 +f 2794/3621/213 2792/3622/213 2793/3619/213 +f 2795/3623/213 2791/3624/213 2792/3622/213 +f 2791/3624/213 2797/3625/213 2790/3615/213 +f 2802/3626/214 2801/3627/214 2809/3628/214 +f 2805/3629/214 2799/3630/214 2798/3631/214 +f 2804/3632/214 2806/3633/214 2805/3629/214 +f 2803/3634/214 2807/3635/214 2804/3632/214 +f 2803/3634/214 2809/3628/214 2808/3636/214 +f 2778/3606/212 2782/3613/212 2783/3607/212 +f 2779/3609/213 2783/3637/213 2785/3610/213 +f 2780/3612/214 2784/3614/214 2782/3613/214 +f 2781/3611/215 2785/3610/215 2784/3614/215 +f 2790/3615/213 2797/3625/213 2789/3616/213 +f 2787/3618/213 2794/3621/213 2793/3619/213 +f 2794/3621/213 2795/3623/213 2792/3622/213 +f 2795/3623/213 2796/3638/213 2791/3624/213 +f 2791/3624/213 2796/3638/213 2797/3625/213 +f 2802/3626/214 2800/3639/214 2801/3627/214 +f 2805/3629/214 2806/3633/214 2799/3630/214 +f 2804/3632/214 2807/3635/214 2806/3633/214 +f 2803/3634/214 2808/3636/214 2807/3635/214 +f 2803/3634/214 2802/3626/214 2809/3628/214 s 1 -f 2683/3636/216 2676/3637/217 2684/3638/218 -f 2686/3639/219 2679/3640/215 2687/3641/220 -f 2684/3638/218 2677/3642/221 2685/3643/222 -f 2688/3644/223 2681/3645/224 2703/3646/225 -f 2682/3647/226 2675/3648/212 2683/3636/216 -f 2703/3649/225 2674/3650/227 2682/3647/226 -f 2687/3641/220 2680/3651/228 2688/3644/223 -f 2685/3643/222 2678/3652/229 2686/3639/219 -f 2689/3653/230 2703/3654/225 2682/3655/226 -f 2703/3654/225 2689/3653/230 2696/3656/231 -f 2695/3657/232 2688/3658/223 2703/3659/225 -f 2702/3660/233 2695/3657/232 2703/3659/225 -f 2693/3661/234 2687/3662/220 2694/3663/235 -f 2691/3664/236 2685/3643/222 2692/3665/237 -f 2689/3653/230 2683/3666/216 2690/3667/238 -f 2694/3663/235 2688/3658/223 2695/3657/232 -f 2693/3661/234 2685/3643/222 2686/3639/219 -f 2690/3667/238 2684/3638/218 2691/3664/236 -f 2702/3660/233 2694/3663/235 2695/3657/232 -f 2700/3668/239 2692/3665/237 2693/3661/234 -f 2698/3669/240 2690/3667/238 2691/3664/236 -f 2700/3668/239 2694/3663/235 2701/3670/241 -f 2698/3669/240 2692/3665/237 2699/3671/242 -f 2697/3672/243 2689/3653/230 2690/3667/238 -f 2708/3673/244 2701/3674/241 2709/3675/245 -f 2706/3676/246 2699/3671/242 2707/3677/247 -f 2710/3678/248 2703/3679/225 2725/3680/249 -f 2704/3681/250 2697/3682/243 2705/3683/251 -f 2725/3684/249 2696/3685/231 2704/3681/250 -f 2709/3675/245 2702/3686/233 2710/3678/248 -f 2707/3677/247 2700/3668/239 2708/3673/244 -f 2705/3683/251 2698/3669/240 2706/3676/246 -f 2711/3687/252 2725/3688/249 2704/3689/250 -f 2718/3690/253 2725/3688/249 2711/3687/252 -f 2717/3691/254 2710/3692/248 2725/3693/249 -f 2725/3693/249 2724/3694/255 2717/3691/254 -f 2708/3673/244 2716/3695/256 2715/3696/257 -f 2706/3676/246 2714/3697/258 2713/3698/259 -f 2711/3687/252 2705/3699/251 2712/3700/260 -f 2709/3701/245 2717/3691/254 2716/3695/256 -f 2714/3697/258 2708/3673/244 2715/3696/257 -f 2712/3700/260 2706/3676/246 2713/3698/259 -f 2712/3700/260 2720/3702/261 2719/3703/262 -f 2722/3704/263 2716/3695/256 2723/3705/264 -f 2720/3702/261 2714/3697/258 2721/3706/265 -f 2718/3690/253 2712/3700/260 2719/3703/262 -f 2723/3705/264 2717/3691/254 2724/3694/255 -f 2714/3697/258 2722/3704/263 2721/3706/265 -f 2737/3707/258 2729/3708/263 2730/3709/265 -f 2728/3710/264 2734/3711/254 2727/3712/255 -f 2733/3713/253 2739/3714/260 2732/3715/262 -f 2731/3716/261 2737/3707/258 2730/3709/265 -f 2729/3708/263 2735/3717/256 2728/3710/264 -f 2739/3714/260 2731/3716/261 2732/3715/262 -f 2739/3714/260 2745/3718/246 2738/3719/259 -f 2737/3707/258 2743/3720/244 2736/3721/257 -f 2742/3722/245 2734/3711/254 2735/3717/256 -f 2740/3723/252 2746/3724/251 2739/3714/260 -f 2745/3718/246 2737/3707/258 2738/3719/259 -f 2743/3720/244 2735/3717/256 2736/3721/257 -f 2726/3725/249 2727/3712/255 2734/3711/254 -f 2734/3711/254 2741/3726/248 2726/3725/249 -f 2733/3713/253 2726/3727/249 2740/3723/252 -f 2740/3723/252 2726/3727/249 2747/3728/250 -f 2746/3729/251 2753/3730/240 2745/3718/246 -f 2744/3731/247 2751/3732/239 2743/3720/244 -f 2742/3733/245 2749/3734/233 2741/3735/248 -f 2726/3736/249 2755/3737/231 2747/3738/250 -f 2747/3738/250 2754/3739/243 2746/3729/251 -f 2741/3735/248 2748/3740/225 2726/3741/249 -f 2745/3718/246 2752/3742/242 2744/3731/247 -f 2743/3720/244 2750/3743/241 2742/3733/245 -f 2755/3744/231 2761/3745/238 2754/3746/243 -f 2753/3730/240 2759/3747/237 2752/3742/242 -f 2751/3732/239 2757/3748/235 2750/3749/241 -f 2754/3746/243 2760/3750/236 2753/3730/240 -f 2751/3732/239 2759/3747/237 2758/3751/234 -f 2749/3752/233 2757/3748/235 2756/3753/232 -f 2760/3750/236 2768/3754/216 2767/3755/218 -f 2758/3751/234 2766/3756/222 2765/3757/219 -f 2757/3748/235 2763/3758/223 2756/3753/232 -f 2762/3759/230 2768/3754/216 2761/3745/238 -f 2760/3750/236 2766/3756/222 2759/3747/237 -f 2758/3751/234 2764/3760/220 2757/3748/235 -f 2749/3752/233 2756/3753/232 2748/3761/225 -f 2756/3753/232 2763/3758/223 2748/3761/225 -f 2748/3762/225 2762/3759/230 2755/3744/231 -f 2762/3759/230 2748/3762/225 2769/3763/226 -f 2766/3756/222 2773/3764/229 2765/3757/219 -f 2764/3765/220 2771/3766/228 2763/3767/223 -f 2748/3768/225 2777/3769/227 2769/3770/226 -f 2769/3770/226 2776/3771/212 2768/3772/216 -f 2763/3767/223 2770/3773/224 2748/3774/225 -f 2767/3755/218 2774/3775/221 2766/3756/222 -f 2765/3757/219 2772/3776/215 2764/3765/220 -f 2768/3772/216 2775/3777/217 2767/3755/218 -f 2683/3636/216 2675/3648/212 2676/3637/217 -f 2686/3639/219 2678/3652/229 2679/3640/215 -f 2684/3638/218 2676/3637/217 2677/3642/221 -f 2688/3644/223 2680/3651/228 2681/3645/224 -f 2682/3647/226 2674/3650/227 2675/3648/212 -f 2703/3649/225 2681/3778/224 2674/3650/227 -f 2687/3641/220 2679/3640/215 2680/3651/228 -f 2685/3643/222 2677/3642/221 2678/3652/229 -f 2693/3661/234 2686/3639/219 2687/3662/220 -f 2691/3664/236 2684/3638/218 2685/3643/222 -f 2689/3653/230 2682/3655/226 2683/3666/216 -f 2694/3663/235 2687/3662/220 2688/3658/223 -f 2693/3661/234 2692/3665/237 2685/3643/222 -f 2690/3667/238 2683/3666/216 2684/3638/218 -f 2702/3660/233 2701/3670/241 2694/3663/235 -f 2700/3668/239 2699/3671/242 2692/3665/237 -f 2698/3669/240 2697/3672/243 2690/3667/238 -f 2700/3668/239 2693/3661/234 2694/3663/235 -f 2698/3669/240 2691/3664/236 2692/3665/237 -f 2697/3672/243 2696/3656/231 2689/3653/230 -f 2708/3673/244 2700/3668/239 2701/3674/241 -f 2706/3676/246 2698/3669/240 2699/3671/242 -f 2710/3678/248 2702/3686/233 2703/3679/225 -f 2704/3681/250 2696/3685/231 2697/3682/243 -f 2725/3684/249 2703/3779/225 2696/3685/231 -f 2709/3675/245 2701/3674/241 2702/3686/233 -f 2707/3677/247 2699/3671/242 2700/3668/239 -f 2705/3683/251 2697/3682/243 2698/3669/240 -f 2708/3673/244 2709/3701/245 2716/3695/256 -f 2706/3676/246 2707/3677/247 2714/3697/258 -f 2711/3687/252 2704/3689/250 2705/3699/251 -f 2709/3701/245 2710/3692/248 2717/3691/254 -f 2714/3697/258 2707/3677/247 2708/3673/244 -f 2712/3700/260 2705/3699/251 2706/3676/246 -f 2712/3700/260 2713/3698/259 2720/3702/261 -f 2722/3704/263 2715/3696/257 2716/3695/256 -f 2720/3702/261 2713/3698/259 2714/3697/258 -f 2718/3690/253 2711/3687/252 2712/3700/260 -f 2723/3705/264 2716/3695/256 2717/3691/254 -f 2714/3697/258 2715/3696/257 2722/3704/263 -f 2737/3707/258 2736/3721/257 2729/3708/263 -f 2728/3710/264 2735/3717/256 2734/3711/254 -f 2733/3713/253 2740/3723/252 2739/3714/260 -f 2731/3716/261 2738/3719/259 2737/3707/258 -f 2729/3708/263 2736/3721/257 2735/3717/256 -f 2739/3714/260 2738/3719/259 2731/3716/261 -f 2739/3714/260 2746/3724/251 2745/3718/246 -f 2737/3707/258 2744/3731/247 2743/3720/244 -f 2742/3722/245 2741/3726/248 2734/3711/254 -f 2740/3723/252 2747/3728/250 2746/3724/251 -f 2745/3718/246 2744/3731/247 2737/3707/258 -f 2743/3720/244 2742/3722/245 2735/3717/256 -f 2746/3729/251 2754/3739/243 2753/3730/240 -f 2744/3731/247 2752/3742/242 2751/3732/239 -f 2742/3733/245 2750/3743/241 2749/3734/233 -f 2726/3736/249 2748/3780/225 2755/3737/231 -f 2747/3738/250 2755/3737/231 2754/3739/243 -f 2741/3735/248 2749/3734/233 2748/3740/225 -f 2745/3718/246 2753/3730/240 2752/3742/242 -f 2743/3720/244 2751/3732/239 2750/3743/241 -f 2755/3744/231 2762/3759/230 2761/3745/238 -f 2753/3730/240 2760/3750/236 2759/3747/237 -f 2751/3732/239 2758/3751/234 2757/3748/235 -f 2754/3746/243 2761/3745/238 2760/3750/236 -f 2751/3732/239 2752/3742/242 2759/3747/237 -f 2749/3752/233 2750/3749/241 2757/3748/235 -f 2760/3750/236 2761/3745/238 2768/3754/216 -f 2758/3751/234 2759/3747/237 2766/3756/222 -f 2757/3748/235 2764/3760/220 2763/3758/223 -f 2762/3759/230 2769/3763/226 2768/3754/216 -f 2760/3750/236 2767/3755/218 2766/3756/222 -f 2758/3751/234 2765/3757/219 2764/3760/220 -f 2766/3756/222 2774/3775/221 2773/3764/229 -f 2764/3765/220 2772/3776/215 2771/3766/228 -f 2748/3768/225 2770/3781/224 2777/3769/227 -f 2769/3770/226 2777/3769/227 2776/3771/212 -f 2763/3767/223 2771/3766/228 2770/3773/224 -f 2767/3755/218 2775/3777/217 2774/3775/221 -f 2765/3757/219 2773/3764/229 2772/3776/215 -f 2768/3772/216 2776/3771/212 2775/3777/217 +f 2683/3640/216 2676/3641/217 2684/3642/218 +f 2686/3643/219 2679/3644/215 2687/3645/220 +f 2684/3642/218 2677/3646/221 2685/3647/222 +f 2688/3648/223 2681/3649/224 2703/3650/225 +f 2682/3651/226 2675/3652/212 2683/3640/216 +f 2703/3653/225 2674/3654/227 2682/3651/226 +f 2687/3645/220 2680/3655/228 2688/3648/223 +f 2685/3647/222 2678/3656/229 2686/3643/219 +f 2689/3657/230 2703/3658/225 2682/3659/226 +f 2703/3658/225 2689/3657/230 2696/3660/231 +f 2695/3661/232 2688/3662/223 2703/3663/225 +f 2702/3664/233 2695/3661/232 2703/3663/225 +f 2693/3665/234 2687/3666/220 2694/3667/235 +f 2691/3668/236 2685/3647/222 2692/3669/237 +f 2689/3657/230 2683/3670/216 2690/3671/238 +f 2694/3667/235 2688/3662/223 2695/3661/232 +f 2693/3665/234 2685/3647/222 2686/3643/219 +f 2690/3671/238 2684/3642/218 2691/3668/236 +f 2702/3664/233 2694/3667/235 2695/3661/232 +f 2700/3672/239 2692/3669/237 2693/3665/234 +f 2698/3673/240 2690/3671/238 2691/3668/236 +f 2700/3672/239 2694/3667/235 2701/3674/241 +f 2698/3673/240 2692/3669/237 2699/3675/242 +f 2697/3676/243 2689/3657/230 2690/3671/238 +f 2708/3677/244 2701/3678/241 2709/3679/245 +f 2706/3680/246 2699/3675/242 2707/3681/247 +f 2710/3682/248 2703/3683/225 2725/3684/249 +f 2704/3685/250 2697/3686/243 2705/3687/251 +f 2725/3688/249 2696/3689/231 2704/3685/250 +f 2709/3679/245 2702/3690/233 2710/3682/248 +f 2707/3681/247 2700/3672/239 2708/3677/244 +f 2705/3687/251 2698/3673/240 2706/3680/246 +f 2711/3691/252 2725/3692/249 2704/3693/250 +f 2718/3694/253 2725/3692/249 2711/3691/252 +f 2717/3695/254 2710/3696/248 2725/3697/249 +f 2725/3697/249 2724/3698/255 2717/3695/254 +f 2708/3677/244 2716/3699/256 2715/3700/257 +f 2706/3680/246 2714/3701/258 2713/3702/259 +f 2711/3691/252 2705/3703/251 2712/3704/260 +f 2709/3705/245 2717/3695/254 2716/3699/256 +f 2714/3701/258 2708/3677/244 2715/3700/257 +f 2712/3704/260 2706/3680/246 2713/3702/259 +f 2712/3704/260 2720/3706/261 2719/3707/262 +f 2722/3708/263 2716/3699/256 2723/3709/264 +f 2720/3706/261 2714/3701/258 2721/3710/265 +f 2718/3694/253 2712/3704/260 2719/3707/262 +f 2723/3709/264 2717/3695/254 2724/3698/255 +f 2714/3701/258 2722/3708/263 2721/3710/265 +f 2737/3711/258 2729/3712/263 2730/3713/265 +f 2728/3714/264 2734/3715/254 2727/3716/255 +f 2733/3717/253 2739/3718/260 2732/3719/262 +f 2731/3720/261 2737/3711/258 2730/3713/265 +f 2729/3712/263 2735/3721/256 2728/3714/264 +f 2739/3718/260 2731/3720/261 2732/3719/262 +f 2739/3718/260 2745/3722/246 2738/3723/259 +f 2737/3711/258 2743/3724/244 2736/3725/257 +f 2742/3726/245 2734/3715/254 2735/3721/256 +f 2740/3727/252 2746/3728/251 2739/3718/260 +f 2745/3722/246 2737/3711/258 2738/3723/259 +f 2743/3724/244 2735/3721/256 2736/3725/257 +f 2726/3729/249 2727/3716/255 2734/3715/254 +f 2734/3715/254 2741/3730/248 2726/3729/249 +f 2733/3717/253 2726/3731/249 2740/3727/252 +f 2740/3727/252 2726/3731/249 2747/3732/250 +f 2746/3733/251 2753/3734/240 2745/3722/246 +f 2744/3735/247 2751/3736/239 2743/3724/244 +f 2742/3737/245 2749/3738/233 2741/3739/248 +f 2726/3740/249 2755/3741/231 2747/3742/250 +f 2747/3742/250 2754/3743/243 2746/3733/251 +f 2741/3739/248 2748/3744/225 2726/3745/249 +f 2745/3722/246 2752/3746/242 2744/3735/247 +f 2743/3724/244 2750/3747/241 2742/3737/245 +f 2755/3748/231 2761/3749/238 2754/3750/243 +f 2753/3734/240 2759/3751/237 2752/3746/242 +f 2751/3736/239 2757/3752/235 2750/3753/241 +f 2754/3750/243 2760/3754/236 2753/3734/240 +f 2751/3736/239 2759/3751/237 2758/3755/234 +f 2749/3756/233 2757/3752/235 2756/3757/232 +f 2760/3754/236 2768/3758/216 2767/3759/218 +f 2758/3755/234 2766/3760/222 2765/3761/219 +f 2757/3752/235 2763/3762/223 2756/3757/232 +f 2762/3763/230 2768/3758/216 2761/3749/238 +f 2760/3754/236 2766/3760/222 2759/3751/237 +f 2758/3755/234 2764/3764/220 2757/3752/235 +f 2749/3756/233 2756/3757/232 2748/3765/225 +f 2756/3757/232 2763/3762/223 2748/3765/225 +f 2748/3766/225 2762/3763/230 2755/3748/231 +f 2762/3763/230 2748/3766/225 2769/3767/226 +f 2766/3760/222 2773/3768/229 2765/3761/219 +f 2764/3769/220 2771/3770/228 2763/3771/223 +f 2748/3772/225 2777/3773/227 2769/3774/226 +f 2769/3774/226 2776/3775/212 2768/3776/216 +f 2763/3771/223 2770/3777/224 2748/3778/225 +f 2767/3759/218 2774/3779/221 2766/3760/222 +f 2765/3761/219 2772/3780/215 2764/3769/220 +f 2768/3776/216 2775/3781/217 2767/3759/218 +f 2683/3640/216 2675/3652/212 2676/3641/217 +f 2686/3643/219 2678/3656/229 2679/3644/215 +f 2684/3642/218 2676/3641/217 2677/3646/221 +f 2688/3648/223 2680/3655/228 2681/3649/224 +f 2682/3651/226 2674/3654/227 2675/3652/212 +f 2703/3653/225 2681/3782/224 2674/3654/227 +f 2687/3645/220 2679/3644/215 2680/3655/228 +f 2685/3647/222 2677/3646/221 2678/3656/229 +f 2693/3665/234 2686/3643/219 2687/3666/220 +f 2691/3668/236 2684/3642/218 2685/3647/222 +f 2689/3657/230 2682/3659/226 2683/3670/216 +f 2694/3667/235 2687/3666/220 2688/3662/223 +f 2693/3665/234 2692/3669/237 2685/3647/222 +f 2690/3671/238 2683/3670/216 2684/3642/218 +f 2702/3664/233 2701/3674/241 2694/3667/235 +f 2700/3672/239 2699/3675/242 2692/3669/237 +f 2698/3673/240 2697/3676/243 2690/3671/238 +f 2700/3672/239 2693/3665/234 2694/3667/235 +f 2698/3673/240 2691/3668/236 2692/3669/237 +f 2697/3676/243 2696/3660/231 2689/3657/230 +f 2708/3677/244 2700/3672/239 2701/3678/241 +f 2706/3680/246 2698/3673/240 2699/3675/242 +f 2710/3682/248 2702/3690/233 2703/3683/225 +f 2704/3685/250 2696/3689/231 2697/3686/243 +f 2725/3688/249 2703/3783/225 2696/3689/231 +f 2709/3679/245 2701/3678/241 2702/3690/233 +f 2707/3681/247 2699/3675/242 2700/3672/239 +f 2705/3687/251 2697/3686/243 2698/3673/240 +f 2708/3677/244 2709/3705/245 2716/3699/256 +f 2706/3680/246 2707/3681/247 2714/3701/258 +f 2711/3691/252 2704/3693/250 2705/3703/251 +f 2709/3705/245 2710/3696/248 2717/3695/254 +f 2714/3701/258 2707/3681/247 2708/3677/244 +f 2712/3704/260 2705/3703/251 2706/3680/246 +f 2712/3704/260 2713/3702/259 2720/3706/261 +f 2722/3708/263 2715/3700/257 2716/3699/256 +f 2720/3706/261 2713/3702/259 2714/3701/258 +f 2718/3694/253 2711/3691/252 2712/3704/260 +f 2723/3709/264 2716/3699/256 2717/3695/254 +f 2714/3701/258 2715/3700/257 2722/3708/263 +f 2737/3711/258 2736/3725/257 2729/3712/263 +f 2728/3714/264 2735/3721/256 2734/3715/254 +f 2733/3717/253 2740/3727/252 2739/3718/260 +f 2731/3720/261 2738/3723/259 2737/3711/258 +f 2729/3712/263 2736/3725/257 2735/3721/256 +f 2739/3718/260 2738/3723/259 2731/3720/261 +f 2739/3718/260 2746/3728/251 2745/3722/246 +f 2737/3711/258 2744/3735/247 2743/3724/244 +f 2742/3726/245 2741/3730/248 2734/3715/254 +f 2740/3727/252 2747/3732/250 2746/3728/251 +f 2745/3722/246 2744/3735/247 2737/3711/258 +f 2743/3724/244 2742/3726/245 2735/3721/256 +f 2746/3733/251 2754/3743/243 2753/3734/240 +f 2744/3735/247 2752/3746/242 2751/3736/239 +f 2742/3737/245 2750/3747/241 2749/3738/233 +f 2726/3740/249 2748/3784/225 2755/3741/231 +f 2747/3742/250 2755/3741/231 2754/3743/243 +f 2741/3739/248 2749/3738/233 2748/3744/225 +f 2745/3722/246 2753/3734/240 2752/3746/242 +f 2743/3724/244 2751/3736/239 2750/3747/241 +f 2755/3748/231 2762/3763/230 2761/3749/238 +f 2753/3734/240 2760/3754/236 2759/3751/237 +f 2751/3736/239 2758/3755/234 2757/3752/235 +f 2754/3750/243 2761/3749/238 2760/3754/236 +f 2751/3736/239 2752/3746/242 2759/3751/237 +f 2749/3756/233 2750/3753/241 2757/3752/235 +f 2760/3754/236 2761/3749/238 2768/3758/216 +f 2758/3755/234 2759/3751/237 2766/3760/222 +f 2757/3752/235 2764/3764/220 2763/3762/223 +f 2762/3763/230 2769/3767/226 2768/3758/216 +f 2760/3754/236 2767/3759/218 2766/3760/222 +f 2758/3755/234 2765/3761/219 2764/3764/220 +f 2766/3760/222 2774/3779/221 2773/3768/229 +f 2764/3769/220 2772/3780/215 2771/3770/228 +f 2748/3772/225 2770/3785/224 2777/3773/227 +f 2769/3774/226 2777/3773/227 2776/3775/212 +f 2763/3771/223 2771/3770/228 2770/3777/224 +f 2767/3759/218 2775/3781/217 2774/3779/221 +f 2765/3761/219 2773/3768/229 2772/3780/215 +f 2768/3776/216 2776/3775/212 2775/3781/217 o Strong_Pivot v 0.750000 1.500000 -2.750000 v 0.250000 1.500000 -2.750000 @@ -9901,42 +9905,42 @@ vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 s off -f 2815/3782/266 2817/3783/266 2814/3784/266 -f 2813/3785/267 2815/3786/267 2810/3787/267 -f 2812/3788/268 2816/3789/268 2813/3790/268 -f 2811/3791/269 2817/3783/269 2812/3788/269 -f 2810/3787/270 2814/3792/270 2811/3791/270 -f 2823/3793/266 2825/3794/266 2822/3795/266 -f 2821/3796/267 2823/3797/267 2818/3798/267 -f 2820/3799/268 2824/3800/268 2821/3801/268 -f 2819/3802/269 2825/3794/269 2820/3799/269 -f 2818/3798/270 2822/3803/270 2819/3802/270 -f 2832/3804/268 2829/3805/268 2828/3806/268 -f 2831/3807/270 2826/3808/270 2827/3809/270 -f 2833/3810/267 2827/3809/267 2829/3811/267 -f 2830/3812/269 2828/3806/269 2826/3808/269 -f 2840/3813/268 2837/3814/268 2836/3815/268 -f 2839/3816/270 2834/3817/270 2835/3818/270 -f 2841/3819/267 2835/3818/267 2837/3820/267 -f 2838/3821/269 2836/3815/269 2834/3817/269 -f 2815/3782/266 2816/3789/266 2817/3783/266 -f 2813/3785/267 2816/3822/267 2815/3786/267 -f 2812/3788/268 2817/3783/268 2816/3789/268 -f 2811/3791/269 2814/3792/269 2817/3783/269 -f 2810/3787/270 2815/3786/270 2814/3792/270 -f 2823/3793/266 2824/3800/266 2825/3794/266 -f 2821/3796/267 2824/3823/267 2823/3797/267 -f 2820/3799/268 2825/3794/268 2824/3800/268 -f 2819/3802/269 2822/3803/269 2825/3794/269 -f 2818/3798/270 2823/3797/270 2822/3803/270 -f 2832/3804/268 2833/3824/268 2829/3805/268 -f 2831/3807/270 2830/3812/270 2826/3808/270 -f 2833/3810/267 2831/3807/267 2827/3809/267 -f 2830/3812/269 2832/3804/269 2828/3806/269 -f 2840/3813/268 2841/3825/268 2837/3814/268 -f 2839/3816/270 2838/3821/270 2834/3817/270 -f 2841/3819/267 2839/3816/267 2835/3818/267 -f 2838/3821/269 2840/3813/269 2836/3815/269 +f 2815/3786/266 2817/3787/266 2814/3788/266 +f 2813/3789/267 2815/3790/267 2810/3791/267 +f 2812/3792/268 2816/3793/268 2813/3794/268 +f 2811/3795/269 2817/3787/269 2812/3792/269 +f 2810/3791/270 2814/3796/270 2811/3795/270 +f 2823/3797/266 2825/3798/266 2822/3799/266 +f 2821/3800/267 2823/3801/267 2818/3802/267 +f 2820/3803/268 2824/3804/268 2821/3805/268 +f 2819/3806/269 2825/3798/269 2820/3803/269 +f 2818/3802/270 2822/3807/270 2819/3806/270 +f 2832/3808/268 2829/3809/268 2828/3810/268 +f 2831/3811/270 2826/3812/270 2827/3813/270 +f 2833/3814/267 2827/3813/267 2829/3815/267 +f 2830/3816/269 2828/3810/269 2826/3812/269 +f 2840/3817/268 2837/3818/268 2836/3819/268 +f 2839/3820/270 2834/3821/270 2835/3822/270 +f 2841/3823/267 2835/3822/267 2837/3824/267 +f 2838/3825/269 2836/3819/269 2834/3821/269 +f 2815/3786/266 2816/3793/266 2817/3787/266 +f 2813/3789/267 2816/3826/267 2815/3790/267 +f 2812/3792/268 2817/3787/268 2816/3793/268 +f 2811/3795/269 2814/3796/269 2817/3787/269 +f 2810/3791/270 2815/3790/270 2814/3796/270 +f 2823/3797/266 2824/3804/266 2825/3798/266 +f 2821/3800/267 2824/3827/267 2823/3801/267 +f 2820/3803/268 2825/3798/268 2824/3804/268 +f 2819/3806/269 2822/3807/269 2825/3798/269 +f 2818/3802/270 2823/3801/270 2822/3807/270 +f 2832/3808/268 2833/3828/268 2829/3809/268 +f 2831/3811/270 2830/3816/270 2826/3812/270 +f 2833/3814/267 2831/3811/267 2827/3813/267 +f 2830/3816/269 2832/3808/269 2828/3810/269 +f 2840/3817/268 2841/3829/268 2837/3818/268 +f 2839/3820/270 2838/3825/270 2834/3821/270 +f 2841/3823/267 2839/3820/267 2835/3822/267 +f 2838/3825/269 2840/3817/269 2836/3819/269 o Strong_Erector v 0.250000 3.500000 -2.750000 v 0.750000 3.500000 -2.750000 @@ -10189,138 +10193,138 @@ vn 0.0000 0.0000 1.0000 vn 0.7071 0.0000 -0.7071 vn -0.7071 0.0000 -0.7071 s off -f 2845/3826/271 2843/3827/271 2842/3828/271 -f 2849/3829/271 2847/3830/271 2846/3831/271 -f 2851/3832/272 2853/3833/272 2850/3834/272 -f 2855/3835/272 2857/3836/272 2854/3837/272 -f 2848/3838/273 2855/3839/273 2847/3840/273 -f 2849/3829/274 2856/3841/274 2848/3842/274 -f 2844/3843/273 2851/3844/273 2843/3845/273 -f 2845/3826/274 2852/3846/274 2844/3847/274 -f 2846/3848/275 2857/3836/275 2849/3829/275 -f 2847/3840/276 2854/3849/276 2846/3848/276 -f 2842/3850/275 2853/3833/275 2845/3826/275 -f 2843/3845/276 2850/3851/276 2842/3850/276 -f 2859/3852/272 2860/3853/272 2858/3854/272 -f 2864/3855/271 2862/3856/271 2863/3857/271 -f 2860/3853/274 2866/3858/274 2858/3854/274 -f 2861/3859/275 2864/3860/275 2860/3861/275 -f 2859/3852/274 2865/3862/274 2861/3863/274 -f 2858/3864/273 2862/3865/273 2859/3866/273 -f 2869/3867/275 2871/3868/275 2867/3869/275 -f 2864/3860/274 2867/3869/274 2860/3861/274 -f 2858/3864/274 2868/3870/274 2863/3871/274 -f 2863/3857/274 2869/3872/274 2864/3855/274 -f 2871/3873/276 2872/3874/276 2870/3875/276 -f 2867/3876/272 2870/3875/272 2866/3858/272 -f 2866/3877/273 2872/3878/273 2868/3870/273 -f 2868/3879/271 2873/3880/271 2869/3872/271 -f 2879/3881/271 2874/3882/271 2878/3883/271 -f 2881/3884/273 2875/3885/273 2879/3886/273 -f 2880/3887/272 2877/3888/272 2881/3889/272 -f 2876/3890/276 2875/3891/276 2877/3888/276 -f 2884/3892/274 2878/3883/274 2883/3893/274 -f 2889/3894/274 2879/3886/274 2884/3895/274 -f 2883/3896/274 2880/3897/274 2887/3898/274 -f 2878/3899/275 2876/3900/275 2880/3897/275 -f 2889/3894/273 2885/3901/273 2888/3902/273 -f 2888/3903/274 2882/3904/274 2886/3905/274 -f 2886/3906/275 2883/3896/275 2887/3898/275 -f 2887/3907/274 2881/3889/274 2889/3908/274 -f 2883/3893/271 2885/3909/271 2884/3892/271 -f 2888/3903/272 2887/3907/272 2889/3908/272 -f 2903/3910/271 2894/3911/271 2895/3912/271 -f 2901/3913/273 2897/3914/273 2893/3915/273 -f 2890/3916/272 2899/3917/272 2891/3918/272 -f 2902/3919/275 2890/3916/275 2894/3911/275 -f 2904/3920/275 2892/3921/275 2896/3922/275 -f 2905/3923/271 2896/3922/271 2897/3924/271 -f 2892/3921/272 2901/3913/272 2893/3915/272 -f 2899/3917/273 2895/3925/273 2891/3918/273 -f 2907/3926/274 2908/3927/274 2909/3928/274 -f 2912/3929/276 2910/3930/276 2911/3931/276 -f 2907/3926/272 2913/3932/272 2906/3933/272 -f 2913/3934/272 2925/3935/272 2917/3936/272 -f 2908/3927/271 2911/3937/271 2909/3928/271 -f 2911/3938/271 2923/3939/271 2915/3940/271 -f 2912/3941/271 2908/3927/271 2916/3942/271 -f 2913/3932/272 2917/3943/272 2906/3933/272 -f 2917/3936/277 2908/3927/277 2906/3933/277 -f 2911/3937/271 2915/3944/271 2909/3928/271 -f 2910/3930/272 2907/3926/272 2914/3945/272 -f 2915/3940/278 2907/3926/278 2909/3928/278 -f 2920/3946/276 2925/3935/276 2921/3947/276 -f 2918/3948/276 2923/3939/276 2919/3949/276 -f 2912/3950/275 2921/3951/275 2913/3934/275 -f 2914/3952/272 2918/3953/272 2910/3954/272 -f 2915/3940/275 2922/3955/275 2914/3952/275 -f 2916/3956/271 2920/3957/271 2912/3958/271 -f 2917/3936/273 2924/3959/273 2916/3956/273 -f 2910/3954/273 2919/3960/273 2911/3961/273 -f 2845/3826/271 2844/3847/271 2843/3827/271 -f 2849/3829/271 2848/3842/271 2847/3830/271 -f 2851/3832/272 2852/3846/272 2853/3833/272 -f 2855/3835/272 2856/3841/272 2857/3836/272 -f 2848/3838/273 2856/3962/273 2855/3839/273 -f 2849/3829/274 2857/3836/274 2856/3841/274 -f 2844/3843/273 2852/3963/273 2851/3844/273 -f 2845/3826/274 2853/3833/274 2852/3846/274 -f 2846/3848/275 2854/3849/275 2857/3836/275 -f 2847/3840/276 2855/3839/276 2854/3849/276 -f 2842/3850/275 2850/3851/275 2853/3833/275 -f 2843/3845/276 2851/3844/276 2850/3851/276 -f 2859/3852/272 2861/3863/272 2860/3853/272 -f 2864/3855/271 2865/3964/271 2862/3856/271 -f 2860/3853/274 2867/3876/274 2866/3858/274 -f 2861/3859/275 2865/3965/275 2864/3860/275 -f 2859/3852/274 2862/3966/274 2865/3862/274 -f 2858/3864/273 2863/3871/273 2862/3865/273 -f 2869/3867/275 2873/3967/275 2871/3868/275 -f 2864/3860/274 2869/3867/274 2867/3869/274 -f 2858/3864/274 2866/3877/274 2868/3870/274 -f 2863/3857/274 2868/3879/274 2869/3872/274 -f 2871/3873/276 2873/3968/276 2872/3874/276 -f 2867/3876/272 2871/3873/272 2870/3875/272 -f 2866/3877/273 2870/3969/273 2872/3878/273 -f 2868/3879/271 2872/3970/271 2873/3880/271 -f 2879/3881/271 2875/3971/271 2874/3882/271 -f 2881/3884/273 2877/3972/273 2875/3885/273 -f 2880/3887/272 2876/3890/272 2877/3888/272 -f 2876/3890/276 2874/3973/276 2875/3891/276 -f 2884/3892/274 2879/3881/274 2878/3883/274 -f 2889/3894/274 2881/3884/274 2879/3886/274 -f 2883/3896/274 2878/3899/274 2880/3897/274 -f 2878/3899/275 2874/3974/275 2876/3900/275 -f 2889/3894/273 2884/3895/273 2885/3901/273 -f 2888/3903/274 2885/3975/274 2882/3904/274 -f 2886/3906/275 2882/3976/275 2883/3896/275 -f 2887/3907/274 2880/3887/274 2881/3889/274 -f 2883/3893/271 2882/3977/271 2885/3909/271 -f 2888/3903/272 2886/3905/272 2887/3907/272 -f 2903/3910/271 2902/3919/271 2894/3911/271 -f 2901/3913/273 2905/3978/273 2897/3914/273 -f 2890/3916/272 2898/3979/272 2899/3917/272 -f 2902/3919/275 2898/3979/275 2890/3916/275 -f 2904/3920/275 2900/3980/275 2892/3921/275 -f 2905/3923/271 2904/3920/271 2896/3922/271 -f 2892/3921/272 2900/3980/272 2901/3913/272 -f 2899/3917/273 2903/3981/273 2895/3925/273 -f 2907/3926/274 2906/3933/274 2908/3927/274 -f 2912/3929/276 2913/3932/276 2910/3930/276 -f 2907/3926/272 2910/3930/272 2913/3932/272 -f 2913/3934/272 2921/3951/272 2925/3935/272 -f 2908/3927/271 2912/3941/271 2911/3937/271 -f 2911/3938/271 2919/3982/271 2923/3939/271 -f 2917/3936/277 2916/3956/277 2908/3927/277 -f 2915/3940/278 2914/3952/278 2907/3926/278 -f 2920/3946/276 2924/3959/276 2925/3935/276 -f 2918/3948/276 2922/3955/276 2923/3939/276 -f 2912/3950/275 2920/3983/275 2921/3951/275 -f 2914/3952/272 2922/3955/272 2918/3953/272 -f 2915/3940/275 2923/3939/275 2922/3955/275 -f 2916/3956/271 2924/3959/271 2920/3957/271 -f 2917/3936/273 2925/3935/273 2924/3959/273 -f 2910/3954/273 2918/3953/273 2919/3960/273 +f 2845/3830/271 2843/3831/271 2842/3832/271 +f 2849/3833/271 2847/3834/271 2846/3835/271 +f 2851/3836/272 2853/3837/272 2850/3838/272 +f 2855/3839/272 2857/3840/272 2854/3841/272 +f 2848/3842/273 2855/3843/273 2847/3844/273 +f 2849/3833/274 2856/3845/274 2848/3846/274 +f 2844/3847/273 2851/3848/273 2843/3849/273 +f 2845/3830/274 2852/3850/274 2844/3851/274 +f 2846/3852/275 2857/3840/275 2849/3833/275 +f 2847/3844/276 2854/3853/276 2846/3852/276 +f 2842/3854/275 2853/3837/275 2845/3830/275 +f 2843/3849/276 2850/3855/276 2842/3854/276 +f 2859/3856/272 2860/3857/272 2858/3858/272 +f 2864/3859/271 2862/3860/271 2863/3861/271 +f 2860/3857/274 2866/3862/274 2858/3858/274 +f 2861/3863/275 2864/3864/275 2860/3865/275 +f 2859/3856/274 2865/3866/274 2861/3867/274 +f 2858/3868/273 2862/3869/273 2859/3870/273 +f 2869/3871/275 2871/3872/275 2867/3873/275 +f 2864/3864/274 2867/3873/274 2860/3865/274 +f 2858/3868/274 2868/3874/274 2863/3875/274 +f 2863/3861/274 2869/3876/274 2864/3859/274 +f 2871/3877/276 2872/3878/276 2870/3879/276 +f 2867/3880/272 2870/3879/272 2866/3862/272 +f 2866/3881/273 2872/3882/273 2868/3874/273 +f 2868/3883/271 2873/3884/271 2869/3876/271 +f 2879/3885/271 2874/3886/271 2878/3887/271 +f 2881/3888/273 2875/3889/273 2879/3890/273 +f 2880/3891/272 2877/3892/272 2881/3893/272 +f 2876/3894/276 2875/3895/276 2877/3892/276 +f 2884/3896/274 2878/3887/274 2883/3897/274 +f 2889/3898/274 2879/3890/274 2884/3899/274 +f 2883/3900/274 2880/3901/274 2887/3902/274 +f 2878/3903/275 2876/3904/275 2880/3901/275 +f 2889/3898/273 2885/3905/273 2888/3906/273 +f 2888/3907/274 2882/3908/274 2886/3909/274 +f 2886/3910/275 2883/3900/275 2887/3902/275 +f 2887/3911/274 2881/3893/274 2889/3912/274 +f 2883/3897/271 2885/3913/271 2884/3896/271 +f 2888/3907/272 2887/3911/272 2889/3912/272 +f 2903/3914/271 2894/3915/271 2895/3916/271 +f 2901/3917/273 2897/3918/273 2893/3919/273 +f 2890/3920/272 2899/3921/272 2891/3922/272 +f 2902/3923/275 2890/3920/275 2894/3915/275 +f 2904/3924/275 2892/3925/275 2896/3926/275 +f 2905/3927/271 2896/3926/271 2897/3928/271 +f 2892/3925/272 2901/3917/272 2893/3919/272 +f 2899/3921/273 2895/3929/273 2891/3922/273 +f 2907/3930/274 2908/3931/274 2909/3932/274 +f 2912/3933/276 2910/3934/276 2911/3935/276 +f 2907/3930/272 2913/3936/272 2906/3937/272 +f 2913/3938/272 2925/3939/272 2917/3940/272 +f 2908/3931/271 2911/3941/271 2909/3932/271 +f 2911/3942/271 2923/3943/271 2915/3944/271 +f 2912/3945/271 2908/3931/271 2916/3946/271 +f 2913/3936/272 2917/3947/272 2906/3937/272 +f 2917/3940/277 2908/3931/277 2906/3937/277 +f 2911/3941/271 2915/3948/271 2909/3932/271 +f 2910/3934/272 2907/3930/272 2914/3949/272 +f 2915/3944/278 2907/3930/278 2909/3932/278 +f 2920/3950/276 2925/3939/276 2921/3951/276 +f 2918/3952/276 2923/3943/276 2919/3953/276 +f 2912/3954/275 2921/3955/275 2913/3938/275 +f 2914/3956/272 2918/3957/272 2910/3958/272 +f 2915/3944/275 2922/3959/275 2914/3956/275 +f 2916/3960/271 2920/3961/271 2912/3962/271 +f 2917/3940/273 2924/3963/273 2916/3960/273 +f 2910/3958/273 2919/3964/273 2911/3965/273 +f 2845/3830/271 2844/3851/271 2843/3831/271 +f 2849/3833/271 2848/3846/271 2847/3834/271 +f 2851/3836/272 2852/3850/272 2853/3837/272 +f 2855/3839/272 2856/3845/272 2857/3840/272 +f 2848/3842/273 2856/3966/273 2855/3843/273 +f 2849/3833/274 2857/3840/274 2856/3845/274 +f 2844/3847/273 2852/3967/273 2851/3848/273 +f 2845/3830/274 2853/3837/274 2852/3850/274 +f 2846/3852/275 2854/3853/275 2857/3840/275 +f 2847/3844/276 2855/3843/276 2854/3853/276 +f 2842/3854/275 2850/3855/275 2853/3837/275 +f 2843/3849/276 2851/3848/276 2850/3855/276 +f 2859/3856/272 2861/3867/272 2860/3857/272 +f 2864/3859/271 2865/3968/271 2862/3860/271 +f 2860/3857/274 2867/3880/274 2866/3862/274 +f 2861/3863/275 2865/3969/275 2864/3864/275 +f 2859/3856/274 2862/3970/274 2865/3866/274 +f 2858/3868/273 2863/3875/273 2862/3869/273 +f 2869/3871/275 2873/3971/275 2871/3872/275 +f 2864/3864/274 2869/3871/274 2867/3873/274 +f 2858/3868/274 2866/3881/274 2868/3874/274 +f 2863/3861/274 2868/3883/274 2869/3876/274 +f 2871/3877/276 2873/3972/276 2872/3878/276 +f 2867/3880/272 2871/3877/272 2870/3879/272 +f 2866/3881/273 2870/3973/273 2872/3882/273 +f 2868/3883/271 2872/3974/271 2873/3884/271 +f 2879/3885/271 2875/3975/271 2874/3886/271 +f 2881/3888/273 2877/3976/273 2875/3889/273 +f 2880/3891/272 2876/3894/272 2877/3892/272 +f 2876/3894/276 2874/3977/276 2875/3895/276 +f 2884/3896/274 2879/3885/274 2878/3887/274 +f 2889/3898/274 2881/3888/274 2879/3890/274 +f 2883/3900/274 2878/3903/274 2880/3901/274 +f 2878/3903/275 2874/3978/275 2876/3904/275 +f 2889/3898/273 2884/3899/273 2885/3905/273 +f 2888/3907/274 2885/3979/274 2882/3908/274 +f 2886/3910/275 2882/3980/275 2883/3900/275 +f 2887/3911/274 2880/3891/274 2881/3893/274 +f 2883/3897/271 2882/3981/271 2885/3913/271 +f 2888/3907/272 2886/3909/272 2887/3911/272 +f 2903/3914/271 2902/3923/271 2894/3915/271 +f 2901/3917/273 2905/3982/273 2897/3918/273 +f 2890/3920/272 2898/3983/272 2899/3921/272 +f 2902/3923/275 2898/3983/275 2890/3920/275 +f 2904/3924/275 2900/3984/275 2892/3925/275 +f 2905/3927/271 2904/3924/271 2896/3926/271 +f 2892/3925/272 2900/3984/272 2901/3917/272 +f 2899/3921/273 2903/3985/273 2895/3929/273 +f 2907/3930/274 2906/3937/274 2908/3931/274 +f 2912/3933/276 2913/3936/276 2910/3934/276 +f 2907/3930/272 2910/3934/272 2913/3936/272 +f 2913/3938/272 2921/3955/272 2925/3939/272 +f 2908/3931/271 2912/3945/271 2911/3941/271 +f 2911/3942/271 2919/3986/271 2923/3943/271 +f 2917/3940/277 2916/3960/277 2908/3931/277 +f 2915/3944/278 2914/3956/278 2907/3930/278 +f 2920/3950/276 2924/3963/276 2925/3939/276 +f 2918/3952/276 2922/3959/276 2923/3943/276 +f 2912/3954/275 2920/3987/275 2921/3955/275 +f 2914/3956/272 2922/3959/272 2918/3957/272 +f 2915/3944/275 2923/3943/275 2922/3959/275 +f 2916/3960/271 2924/3963/271 2920/3961/271 +f 2917/3940/273 2925/3939/273 2924/3963/273 +f 2910/3958/273 2918/3957/273 2919/3964/273 o Micro_Rope v -0.187500 5.250000 1.375000 v -0.275888 5.213388 1.375000 @@ -10399,38 +10403,38 @@ vn -0.7071 -0.7071 0.0000 vn 0.0000 -1.0000 0.0000 vn -1.0000 0.0000 0.0000 s 1 -f 2934/3984/279 2927/3985/280 2926/3986/279 -f 2941/3987/281 2926/3986/279 2933/3988/281 -f 2939/3989/282 2932/3990/283 2931/3991/282 -f 2937/3992/284 2930/3993/285 2929/3994/284 -f 2935/3995/280 2928/3996/286 2927/3985/280 -f 2940/3997/283 2933/3988/281 2932/3990/283 -f 2938/3998/285 2931/3991/282 2930/3999/285 -f 2936/4000/286 2929/3994/284 2928/3996/286 -f 2950/4001/279 2943/4002/280 2942/4003/279 -f 2957/4004/281 2942/4003/279 2949/4005/281 -f 2955/4006/282 2948/4007/283 2947/4008/282 -f 2953/4009/284 2946/4010/285 2945/4011/284 -f 2951/4012/280 2944/4013/286 2943/4002/280 -f 2956/4014/283 2949/4005/281 2948/4007/283 -f 2954/4015/285 2947/4008/282 2946/4016/285 -f 2952/4017/286 2945/4011/284 2944/4013/286 -f 2934/3984/279 2935/3995/280 2927/3985/280 -f 2941/3987/281 2934/3984/279 2926/3986/279 -f 2939/3989/282 2940/3997/283 2932/3990/283 -f 2937/3992/284 2938/4018/285 2930/3993/285 -f 2935/3995/280 2936/4000/286 2928/3996/286 -f 2940/3997/283 2941/3987/281 2933/3988/281 -f 2938/3998/285 2939/3989/282 2931/3991/282 -f 2936/4000/286 2937/3992/284 2929/3994/284 -f 2950/4001/279 2951/4012/280 2943/4002/280 -f 2957/4004/281 2950/4001/279 2942/4003/279 -f 2955/4006/282 2956/4014/283 2948/4007/283 -f 2953/4009/284 2954/4019/285 2946/4010/285 -f 2951/4012/280 2952/4017/286 2944/4013/286 -f 2956/4014/283 2957/4004/281 2949/4005/281 -f 2954/4015/285 2955/4006/282 2947/4008/282 -f 2952/4017/286 2953/4009/284 2945/4011/284 +f 2934/3988/279 2927/3989/280 2926/3990/279 +f 2941/3991/281 2926/3990/279 2933/3992/281 +f 2939/3993/282 2932/3994/283 2931/3995/282 +f 2937/3996/284 2930/3997/285 2929/3998/284 +f 2935/3999/280 2928/4000/286 2927/3989/280 +f 2940/4001/283 2933/3992/281 2932/3994/283 +f 2938/4002/285 2931/3995/282 2930/4003/285 +f 2936/4004/286 2929/3998/284 2928/4000/286 +f 2950/4005/279 2943/4006/280 2942/4007/279 +f 2957/4008/281 2942/4007/279 2949/4009/281 +f 2955/4010/282 2948/4011/283 2947/4012/282 +f 2953/4013/284 2946/4014/285 2945/4015/284 +f 2951/4016/280 2944/4017/286 2943/4006/280 +f 2956/4018/283 2949/4009/281 2948/4011/283 +f 2954/4019/285 2947/4012/282 2946/4020/285 +f 2952/4021/286 2945/4015/284 2944/4017/286 +f 2934/3988/279 2935/3999/280 2927/3989/280 +f 2941/3991/281 2934/3988/279 2926/3990/279 +f 2939/3993/282 2940/4001/283 2932/3994/283 +f 2937/3996/284 2938/4022/285 2930/3997/285 +f 2935/3999/280 2936/4004/286 2928/4000/286 +f 2940/4001/283 2941/3991/281 2933/3992/281 +f 2938/4002/285 2939/3993/282 2931/3995/282 +f 2936/4004/286 2937/3996/284 2929/3998/284 +f 2950/4005/279 2951/4016/280 2943/4006/280 +f 2957/4008/281 2950/4005/279 2942/4007/279 +f 2955/4010/282 2956/4018/283 2948/4011/283 +f 2953/4013/284 2954/4023/285 2946/4014/285 +f 2951/4016/280 2952/4021/286 2944/4017/286 +f 2956/4018/283 2957/4008/281 2949/4009/281 +f 2954/4019/285 2955/4010/282 2947/4012/282 +f 2952/4021/286 2953/4013/284 2945/4015/284 o Micro_Pivot v -0.125000 1.250000 -1.375000 v 0.125000 1.250000 -1.375000 @@ -10476,24 +10480,24 @@ vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 2964/4020/287 2962/4021/287 2963/4022/287 -f 2961/4023/288 2964/4024/288 2959/4025/288 -f 2958/4026/289 2962/4021/289 2960/4027/289 -f 2960/4027/290 2965/4028/290 2961/4029/290 -f 2959/4025/291 2963/4030/291 2958/4026/291 -f 2968/4031/290 2973/4032/290 2969/4033/290 -f 2967/4034/291 2971/4035/291 2966/4036/291 -f 2969/4037/288 2972/4038/288 2967/4034/288 -f 2966/4036/289 2970/4039/289 2968/4031/289 -f 2964/4020/287 2965/4028/287 2962/4021/287 -f 2961/4023/288 2965/4040/288 2964/4024/288 -f 2958/4026/289 2963/4030/289 2962/4021/289 -f 2960/4027/290 2962/4021/290 2965/4028/290 -f 2959/4025/291 2964/4024/291 2963/4030/291 -f 2968/4031/290 2970/4039/290 2973/4032/290 -f 2967/4034/291 2972/4038/291 2971/4035/291 -f 2969/4037/288 2973/4041/288 2972/4038/288 -f 2966/4036/289 2971/4035/289 2970/4039/289 +f 2964/4024/287 2962/4025/287 2963/4026/287 +f 2961/4027/288 2964/4028/288 2959/4029/288 +f 2958/4030/289 2962/4025/289 2960/4031/289 +f 2960/4031/290 2965/4032/290 2961/4033/290 +f 2959/4029/291 2963/4034/291 2958/4030/291 +f 2968/4035/290 2973/4036/290 2969/4037/290 +f 2967/4038/291 2971/4039/291 2966/4040/291 +f 2969/4041/288 2972/4042/288 2967/4038/288 +f 2966/4040/289 2970/4043/289 2968/4035/289 +f 2964/4024/287 2965/4032/287 2962/4025/287 +f 2961/4027/288 2965/4044/288 2964/4028/288 +f 2958/4030/289 2963/4034/289 2962/4025/289 +f 2960/4031/290 2962/4025/290 2965/4032/290 +f 2959/4029/291 2964/4028/291 2963/4034/291 +f 2968/4035/290 2970/4043/290 2973/4036/290 +f 2967/4038/291 2972/4042/291 2971/4039/291 +f 2969/4041/288 2973/4045/288 2972/4042/288 +f 2966/4040/289 2971/4039/289 2970/4043/289 o Micro_Erector v -0.125000 3.250000 -1.625000 v -0.125000 3.250000 -1.375000 @@ -10539,34 +10543,34 @@ v 0.000000 5.000000 -1.375000 v 0.000000 4.750000 -1.375000 v 0.000000 4.250000 -0.625000 v 0.000000 4.000000 -0.625000 -v -0.125000 4.250000 -1.375000 -v 0.125000 4.250000 -1.375000 -v -0.125000 4.000000 -1.375000 -v 0.125000 4.000000 -1.375000 -v -0.125000 4.250000 -0.625000 -v 0.125000 4.250000 -0.625000 -v -0.125000 4.000000 -0.625000 -v 0.125000 4.000000 -0.625000 -v 0.375000 4.250000 -0.125000 -v 0.625000 4.250000 -0.125000 -v 0.375000 4.000000 -0.125000 -v 0.625000 4.000000 -0.125000 -v 0.375000 4.250000 0.375000 -v 0.625000 4.250000 0.125000 -v 0.375000 4.000000 0.375000 -v 0.625000 4.000000 0.125000 -v -0.625000 4.250000 -0.125000 -v -0.375000 4.250000 -0.125000 -v -0.625000 4.000000 -0.125000 -v -0.375000 4.000000 -0.125000 -v -0.625000 4.250000 0.125000 -v -0.375000 4.250000 0.375000 -v -0.625000 4.000000 0.125000 -v -0.375000 4.000000 0.375000 -v -0.125000 4.250000 -0.375000 -v 0.125000 4.250000 -0.375000 -v -0.125000 4.000000 -0.375000 v 0.125000 4.000000 -0.375000 +v -0.125000 4.000000 -0.375000 +v 0.125000 4.250000 -0.375000 +v -0.125000 4.250000 -0.375000 +v -0.375000 4.000000 0.375000 +v -0.625000 4.000000 0.125000 +v -0.375000 4.250000 0.375000 +v -0.625000 4.250000 0.125000 +v -0.375000 4.000000 -0.125000 +v -0.625000 4.000000 -0.125000 +v -0.375000 4.250000 -0.125000 +v -0.625000 4.250000 -0.125000 +v 0.625000 4.000000 0.125000 +v 0.375000 4.000000 0.375000 +v 0.625000 4.250000 0.125000 +v 0.375000 4.250000 0.375000 +v 0.625000 4.000000 -0.125000 +v 0.375000 4.000000 -0.125000 +v 0.625000 4.250000 -0.125000 +v 0.375000 4.250000 -0.125000 +v 0.125000 4.000000 -0.625000 +v -0.125000 4.000000 -0.625000 +v 0.125000 4.250000 -0.625000 +v -0.125000 4.250000 -0.625000 +v 0.125000 4.000000 -1.375000 +v -0.125000 4.000000 -1.375000 +v 0.125000 4.250000 -1.375000 +v -0.125000 4.250000 -1.375000 v 0.000000 6.250000 -0.625000 v 0.000000 6.000000 -0.625000 v 0.000000 5.500000 -1.375000 @@ -10641,46 +10645,59 @@ vt 0.444444 0.034483 vt 0.444444 0.034483 vt 0.511111 0.000000 vt 0.511111 0.034483 -vt 1.000000 0.172414 -vt 0.977778 0.103448 -vt 1.000000 0.103448 -vt 0.866667 -0.000000 -vt 0.844444 0.103448 -vt 0.844444 -0.000000 -vt 0.933333 0.000000 -vt 0.911111 0.103448 -vt 0.911111 0.000000 -vt 1.000000 -0.000000 -vt 0.977778 -0.000000 -vt 0.866667 0.241379 -vt 0.844444 0.206897 -vt 0.866667 0.206897 -vt 0.866667 0.172414 -vt 0.844444 0.172414 -vt 0.888889 0.172414 -vt 0.844444 0.310345 -vt 0.866667 0.310345 -vt 0.955556 0.172414 vt 0.933333 0.103448 -vt 0.977778 0.172414 -vt 0.977778 0.206897 -vt 1.000000 0.241379 -vt 0.977778 0.241379 -vt 0.977778 0.310345 -vt 1.000000 0.310345 -vt 0.955556 0.241379 +vt 0.911111 0.137931 +vt 0.911111 0.103448 vt 0.933333 0.137931 vt 0.911111 0.172414 vt 0.911111 0.137931 -vt 1.000000 0.344828 -vt 0.866667 0.344828 -vt 0.866667 0.103448 +vt 1.000000 0.172414 +vt 0.977778 0.206897 +vt 0.977778 0.172414 +vt 0.955556 0.172414 +vt 0.955556 0.241379 +vt 0.977778 0.310345 +vt 1.000000 0.241379 +vt 1.000000 0.310345 +vt 0.888889 0.172414 +vt 0.866667 0.206897 +vt 0.866667 0.172414 +vt 0.977778 0.241379 +vt 0.933333 0.103448 +vt 0.844444 0.310345 +vt 0.866667 0.241379 +vt 0.866667 0.310345 +vt 0.888889 0.172414 +vt 0.866667 0.206897 +vt 0.866667 0.172414 +vt 0.844444 0.206897 +vt 0.844444 0.172414 +vt 0.955556 0.172414 +vt 0.977778 0.206897 +vt 0.955556 0.241379 +vt 0.933333 -0.000000 +vt 0.911111 -0.000000 +vt 1.000000 -0.000000 +vt 0.977778 0.103448 +vt 0.977778 -0.000000 +vt 0.933333 0.000000 +vt 0.911111 0.103448 +vt 0.911111 0.000000 +vt 0.866667 -0.000000 +vt 0.844444 0.103448 +vt 0.844444 -0.000000 +vt 1.000000 0.103448 vt 0.511111 0.034483 vt 0.444444 0.000000 vt 0.444444 0.034483 vt 0.511111 0.000000 vt 0.444444 0.034483 vt 0.511111 0.034483 +vt 1.000000 0.344828 +vt 0.866667 0.344828 +vt 0.866667 0.103448 +vt 0.933333 0.137931 +vt 0.977778 0.172414 vt 0.844444 0.862069 vt 0.844444 0.241379 vt 0.888889 0.241379 @@ -10691,14 +10708,15 @@ vt 0.977778 0.344828 vt 0.844444 0.344828 vt 0.511111 0.000000 vt 0.444444 -0.000000 +vt 0.933333 0.172414 +vt 1.000000 0.206897 +vt 0.888889 0.241379 vt 0.844444 0.241379 vt 0.888889 0.241379 -vt 1.000000 0.206897 -vt 0.933333 0.172414 -vt 0.977778 0.344828 -vt 0.844444 0.344828 vt 0.511111 0.000000 vt 0.444444 -0.000000 +vt 0.977778 0.344828 +vt 0.844444 0.344828 vn 0.0000 -1.0000 0.0000 vn 0.0000 0.7071 -0.7071 vn 0.0000 0.0000 -1.0000 @@ -10711,114 +10729,126 @@ vn 0.7071 0.0000 0.7071 vn -0.7071 0.0000 0.7071 vn 0.7071 0.0000 -0.7071 s off -f 2974/4042/292 2976/4043/292 2975/4044/292 -f 2980/4045/293 2978/4046/293 2979/4047/293 -f 2974/4042/294 2981/4048/294 2977/4049/294 -f 2976/4050/295 2979/4051/295 2975/4052/295 -f 2976/4053/296 2981/4048/296 2980/4054/296 -f 2975/4052/297 2978/4046/297 2974/4042/297 -f 3000/4055/292 3008/4056/292 3001/4057/292 -f 3000/4058/298 2986/4059/298 2988/4060/298 -f 2983/4061/296 2989/4062/296 2985/4063/296 -f 2982/4064/299 2987/4065/299 2983/4066/299 -f 2984/4067/297 2986/4059/297 2982/4068/297 -f 2985/4069/292 2988/4070/292 2984/4071/292 -f 2994/4072/300 2997/4073/300 2995/4074/300 -f 2992/4075/292 2997/4076/292 2996/4077/292 -f 2991/4078/296 2997/4073/296 2993/4079/296 -f 2990/4080/299 2995/4074/299 2991/4078/299 -f 2992/4081/297 2994/4072/297 2990/4082/297 -f 2999/4083/299 2986/4084/299 2998/4085/299 -f 3002/4086/301 3005/4087/301 3003/4088/301 -f 3001/4057/292 3004/4089/292 3000/4055/292 -f 2999/4090/296 3005/4087/296 3001/4091/296 -f 2999/4083/299 3002/4086/299 3003/4092/299 -f 3000/4058/297 3002/4086/297 2998/4085/297 -f 3006/4093/295 3009/4094/295 3007/4095/295 -f 2989/4096/292 3008/4056/292 2988/4070/292 -f 3008/4097/300 2999/4090/300 3001/4091/300 -f 2986/4084/299 3007/4095/299 2987/4065/299 -f 3007/4098/301 2992/4081/301 2990/4082/301 -f 2991/4078/299 3007/4095/299 2990/4080/299 -f 2991/4078/302 2989/4062/302 2987/4099/302 -f 3009/4100/292 2993/4101/292 2992/4075/292 -f 3011/4102/296 3012/4103/296 3010/4104/296 -f 3016/4105/296 3015/4106/296 3014/4107/296 -f 3036/4108/298 3022/4109/298 3024/4110/298 -f 3019/4111/296 3025/4112/296 3021/4113/296 -f 3018/4114/299 3023/4115/299 3019/4116/299 -f 3020/4117/297 3022/4109/297 3018/4118/297 -f 3030/4119/300 3033/4120/300 3031/4121/300 -f 3027/4122/296 3033/4120/296 3029/4123/296 -f 3026/4124/299 3031/4121/299 3027/4122/299 -f 3028/4125/297 3030/4119/297 3026/4126/297 -f 3035/4127/299 3022/4128/299 3034/4129/299 -f 3038/4130/301 3041/4131/301 3039/4132/301 -f 3035/4133/296 3041/4131/296 3037/4134/296 -f 3035/4127/299 3038/4130/299 3039/4135/299 -f 3036/4108/297 3038/4130/297 3034/4129/297 -f 3042/4136/295 3045/4137/295 3043/4138/295 -f 3044/4139/300 3035/4133/300 3037/4134/300 -f 3022/4128/299 3043/4138/299 3023/4115/299 -f 3043/4140/301 3028/4125/301 3026/4126/301 -f 3027/4122/299 3043/4138/299 3026/4124/299 -f 3027/4122/302 3025/4112/302 3023/4141/302 -f 3048/4142/297 3047/4143/297 3046/4144/297 -f 3051/4145/297 3052/4146/297 3050/4147/297 -f 2974/4042/292 2977/4049/292 2976/4043/292 -f 2980/4045/293 2981/4048/293 2978/4046/293 -f 2974/4042/294 2978/4046/294 2981/4048/294 -f 2976/4050/295 2980/4148/295 2979/4051/295 -f 2976/4053/296 2977/4049/296 2981/4048/296 -f 2975/4052/297 2979/4051/297 2978/4046/297 -f 3000/4055/292 2988/4070/292 3008/4056/292 -f 3000/4058/298 2998/4085/298 2986/4059/298 -f 2983/4061/296 2987/4099/296 2989/4062/296 -f 2982/4064/299 2986/4084/299 2987/4065/299 -f 2984/4067/297 2988/4060/297 2986/4059/297 -f 2985/4069/292 2989/4096/292 2988/4070/292 -f 2994/4072/300 2996/4149/300 2997/4073/300 -f 2992/4075/292 2993/4101/292 2997/4076/292 -f 2991/4078/296 2995/4074/296 2997/4073/296 -f 2990/4080/299 2994/4150/299 2995/4074/299 -f 2992/4081/297 2996/4149/297 2994/4072/297 -f 2999/4083/299 3006/4093/299 2986/4084/299 -f 3002/4086/301 3004/4151/301 3005/4087/301 -f 3001/4057/292 3005/4152/292 3004/4089/292 -f 2999/4090/296 3003/4088/296 3005/4087/296 -f 2999/4083/299 2998/4085/299 3002/4086/299 -f 3000/4058/297 3004/4151/297 3002/4086/297 -f 3006/4093/295 3008/4153/295 3009/4094/295 -f 2989/4096/292 3009/4100/292 3008/4056/292 -f 3008/4097/300 3006/4154/300 2999/4090/300 -f 2986/4084/299 3006/4093/299 3007/4095/299 -f 3007/4098/301 3009/4155/301 2992/4081/301 -f 2991/4078/299 2987/4065/299 3007/4095/299 -f 2991/4078/302 2993/4079/302 2989/4062/302 -f 3009/4100/292 2989/4096/292 2993/4101/292 -f 3011/4102/296 3013/4156/296 3012/4103/296 -f 3016/4105/296 3017/4157/296 3015/4106/296 -f 3036/4108/298 3034/4129/298 3022/4109/298 -f 3019/4111/296 3023/4141/296 3025/4112/296 -f 3018/4114/299 3022/4128/299 3023/4115/299 -f 3020/4117/297 3024/4110/297 3022/4109/297 -f 3030/4119/300 3032/4158/300 3033/4120/300 -f 3027/4122/296 3031/4121/296 3033/4120/296 -f 3026/4124/299 3030/4159/299 3031/4121/299 -f 3028/4125/297 3032/4158/297 3030/4119/297 -f 3035/4127/299 3042/4136/299 3022/4128/299 -f 3038/4130/301 3040/4160/301 3041/4131/301 -f 3035/4133/296 3039/4132/296 3041/4131/296 -f 3035/4127/299 3034/4129/299 3038/4130/299 -f 3036/4108/297 3040/4160/297 3038/4130/297 -f 3042/4136/295 3044/4161/295 3045/4137/295 -f 3044/4139/300 3042/4162/300 3035/4133/300 -f 3022/4128/299 3042/4136/299 3043/4138/299 -f 3043/4140/301 3045/4163/301 3028/4125/301 -f 3027/4122/299 3023/4115/299 3043/4138/299 -f 3027/4122/302 3029/4123/302 3025/4112/302 -f 3048/4142/297 3049/4164/297 3047/4143/297 -f 3051/4145/297 3053/4165/297 3052/4146/297 +f 2974/4046/292 2976/4047/292 2975/4048/292 +f 2980/4049/293 2978/4050/293 2979/4051/293 +f 2974/4046/294 2981/4052/294 2977/4053/294 +f 2976/4054/295 2979/4055/295 2975/4056/295 +f 2976/4057/296 2981/4052/296 2980/4058/296 +f 2975/4056/297 2978/4050/297 2974/4046/297 +f 3000/4059/292 3008/4060/292 3001/4061/292 +f 3000/4062/298 2986/4063/298 2988/4064/298 +f 2983/4065/296 2989/4066/296 2985/4067/296 +f 2982/4068/299 2987/4069/299 2983/4070/299 +f 2984/4071/297 2986/4063/297 2982/4072/297 +f 2985/4073/292 2988/4074/292 2984/4075/292 +f 2994/4076/300 2997/4077/300 2995/4078/300 +f 2992/4079/292 2997/4080/292 2996/4081/292 +f 2991/4082/296 2997/4077/296 2993/4083/296 +f 2990/4084/299 2995/4078/299 2991/4082/299 +f 2992/4085/297 2994/4076/297 2990/4086/297 +f 2999/4087/299 2986/4088/299 2998/4089/299 +f 3002/4090/301 3005/4091/301 3003/4092/301 +f 3001/4061/292 3004/4093/292 3000/4059/292 +f 2999/4094/296 3005/4091/296 3001/4095/296 +f 2999/4087/299 3002/4090/299 3003/4096/299 +f 3000/4062/297 3002/4090/297 2998/4089/297 +f 3006/4097/295 3009/4098/295 3007/4099/295 +f 2989/4100/292 3008/4060/292 2988/4074/292 +f 3008/4101/300 2999/4094/300 3001/4095/300 +f 2986/4088/299 3007/4099/299 2987/4069/299 +f 3007/4102/301 2992/4085/301 2990/4086/301 +f 2991/4082/299 3007/4099/299 2990/4084/299 +f 2991/4082/302 2989/4066/302 2987/4103/302 +f 3009/4104/292 2993/4105/292 2992/4079/292 +f 3011/4106/296 3012/4107/296 3010/4108/296 +f 3016/4109/296 3015/4110/296 3014/4111/296 +f 3038/4112/292 3019/4113/292 3039/4114/292 +f 3021/4115/295 3018/4116/295 3020/4117/295 +f 3027/4118/297 3025/4119/297 3029/4120/297 +f 3028/4121/299 3025/4119/299 3024/4122/299 +f 3028/4123/296 3022/4124/296 3026/4125/296 +f 3026/4126/292 3023/4127/292 3027/4128/292 +f 3025/4119/301 3022/4124/301 3024/4129/301 +f 3028/4121/299 3041/4130/299 3029/4120/299 +f 3035/4131/297 3033/4132/297 3037/4133/297 +f 3037/4134/299 3032/4135/299 3036/4136/299 +f 3036/4136/296 3030/4137/296 3034/4138/296 +f 3035/4139/292 3030/4140/292 3031/4141/292 +f 3033/4132/300 3030/4137/300 3032/4135/300 +f 3042/4142/292 3039/4114/292 3043/4143/292 +f 3043/4144/297 3041/4145/297 3045/4146/297 +f 3045/4147/299 3040/4148/299 3044/4149/299 +f 3044/4150/296 3038/4151/296 3042/4152/296 +f 3027/4118/298 3041/4145/298 3039/4153/298 +f 3027/4128/292 3019/4113/292 3026/4126/292 +f 3048/4154/297 3047/4155/297 3046/4156/297 +f 3051/4157/297 3052/4158/297 3050/4159/297 +f 3019/4160/300 3028/4123/300 3026/4125/300 +f 3041/4130/299 3020/4117/299 3040/4148/299 +f 3020/4161/301 3035/4131/301 3037/4133/301 +f 3036/4136/299 3020/4117/299 3037/4134/299 +f 3036/4136/302 3038/4151/302 3040/4162/302 +f 3018/4163/292 3034/4164/292 3035/4139/292 +f 2974/4046/292 2977/4053/292 2976/4047/292 +f 2980/4049/293 2981/4052/293 2978/4050/293 +f 2974/4046/294 2978/4050/294 2981/4052/294 +f 2976/4054/295 2980/4165/295 2979/4055/295 +f 2976/4057/296 2977/4053/296 2981/4052/296 +f 2975/4056/297 2979/4055/297 2978/4050/297 +f 3000/4059/292 2988/4074/292 3008/4060/292 +f 3000/4062/298 2998/4089/298 2986/4063/298 +f 2983/4065/296 2987/4103/296 2989/4066/296 +f 2982/4068/299 2986/4088/299 2987/4069/299 +f 2984/4071/297 2988/4064/297 2986/4063/297 +f 2985/4073/292 2989/4100/292 2988/4074/292 +f 2994/4076/300 2996/4166/300 2997/4077/300 +f 2992/4079/292 2993/4105/292 2997/4080/292 +f 2991/4082/296 2995/4078/296 2997/4077/296 +f 2990/4084/299 2994/4167/299 2995/4078/299 +f 2992/4085/297 2996/4166/297 2994/4076/297 +f 2999/4087/299 3006/4097/299 2986/4088/299 +f 3002/4090/301 3004/4168/301 3005/4091/301 +f 3001/4061/292 3005/4169/292 3004/4093/292 +f 2999/4094/296 3003/4092/296 3005/4091/296 +f 2999/4087/299 2998/4089/299 3002/4090/299 +f 3000/4062/297 3004/4168/297 3002/4090/297 +f 3006/4097/295 3008/4170/295 3009/4098/295 +f 2989/4100/292 3009/4104/292 3008/4060/292 +f 3008/4101/300 3006/4171/300 2999/4094/300 +f 2986/4088/299 3006/4097/299 3007/4099/299 +f 3007/4102/301 3009/4172/301 2992/4085/301 +f 2991/4082/299 2987/4069/299 3007/4099/299 +f 2991/4082/302 2993/4083/302 2989/4066/302 +f 3009/4104/292 2989/4100/292 2993/4105/292 +f 3011/4106/296 3013/4173/296 3012/4107/296 +f 3016/4109/296 3017/4174/296 3015/4110/296 +f 3038/4112/292 3018/4163/292 3019/4113/292 +f 3021/4115/295 3019/4175/295 3018/4116/295 +f 3027/4118/297 3023/4176/297 3025/4119/297 +f 3028/4121/299 3029/4120/299 3025/4119/299 +f 3028/4123/296 3024/4129/296 3022/4124/296 +f 3026/4126/292 3022/4177/292 3023/4127/292 +f 3025/4119/301 3023/4176/301 3022/4124/301 +f 3028/4121/299 3021/4115/299 3041/4130/299 +f 3035/4131/297 3031/4178/297 3033/4132/297 +f 3037/4134/299 3033/4179/299 3032/4135/299 +f 3036/4136/296 3032/4135/296 3030/4137/296 +f 3035/4139/292 3034/4164/292 3030/4140/292 +f 3033/4132/300 3031/4178/300 3030/4137/300 +f 3042/4142/292 3038/4112/292 3039/4114/292 +f 3043/4144/297 3039/4153/297 3041/4145/297 +f 3045/4147/299 3041/4130/299 3040/4148/299 +f 3044/4150/296 3040/4162/296 3038/4151/296 +f 3027/4118/298 3029/4120/298 3041/4145/298 +f 3027/4128/292 3039/4114/292 3019/4113/292 +f 3048/4154/297 3049/4180/297 3047/4155/297 +f 3051/4157/297 3053/4181/297 3052/4158/297 +f 3019/4160/300 3021/4182/300 3028/4123/300 +f 3041/4130/299 3021/4115/299 3020/4117/299 +f 3020/4161/301 3018/4183/301 3035/4131/301 +f 3036/4136/299 3040/4148/299 3020/4117/299 +f 3036/4136/302 3034/4138/302 3038/4151/302 +f 3018/4163/292 3038/4112/292 3034/4164/292 o Micro_Pad v -1.250000 2.000000 1.250000 v 1.250000 2.000000 1.250000 @@ -11243,190 +11273,190 @@ vn 0.0000 -0.7071 0.7071 vn 0.7071 -0.7071 -0.0000 vn -0.0000 -0.7071 -0.7071 s off -f 3062/4166/303 3056/4167/303 3054/4168/303 -f 3063/4169/303 3054/4168/303 3055/4170/303 -f 3055/4170/304 3061/4171/304 3057/4172/304 -f 3056/4173/305 3059/4174/305 3054/4175/305 -f 3057/4176/306 3058/4177/306 3056/4178/306 -f 3054/4179/307 3060/4180/307 3055/4181/307 -f 3066/4182/304 3064/4183/304 3062/4184/304 -f 3064/4185/303 3057/4172/303 3056/4167/303 -f 3065/4186/303 3055/4170/303 3057/4172/303 -f 3059/4187/308 3067/4188/308 3060/4189/308 -f 3060/4189/308 3069/4190/308 3061/4171/308 -f 3061/4171/308 3068/4191/308 3058/4192/308 -f 3058/4192/308 3066/4193/308 3059/4187/308 -f 3071/4194/303 3072/4195/303 3070/4196/303 -f 3068/4197/307 3065/4198/307 3064/4199/307 -f 3069/4200/305 3063/4201/305 3065/4202/305 -f 3067/4203/306 3062/4204/306 3063/4205/306 -f 3075/4206/306 3077/4207/306 3082/4208/306 -f 3077/4209/305 3084/4210/305 3082/4211/305 -f 3074/4212/304 3078/4213/304 3083/4214/304 -f 3085/4215/309 3082/4211/309 3084/4210/309 -f 3083/4216/307 3081/4217/307 3079/4218/307 -f 3085/4219/307 3084/4220/307 3080/4221/307 -f 3084/4220/305 3086/4222/305 3080/4221/305 -f 3086/4223/310 3083/4216/310 3078/4224/310 -f 3093/4225/303 3091/4226/303 3092/4227/303 -f 3087/4228/305 3091/4226/305 3089/4229/305 -f 3089/4230/306 3094/4231/306 3090/4232/306 -f 3088/4233/307 3092/4227/307 3087/4234/307 -f 3090/4235/304 3093/4225/304 3088/4236/304 -f 3113/4237/303 3111/4238/303 3112/4239/303 -f 3117/4240/303 3115/4241/303 3116/4242/303 -f 3121/4243/303 3119/4244/303 3120/4245/303 -f 3125/4246/303 3123/4247/303 3124/4248/303 -f 3106/4249/304 3121/4243/304 3104/4250/304 -f 3097/4251/306 3114/4252/306 3098/4253/306 -f 3105/4254/306 3122/4255/306 3106/4249/306 -f 3099/4256/305 3115/4257/305 3101/4258/305 -f 3107/4259/305 3123/4260/305 3109/4261/305 -f 3100/4262/307 3116/4263/307 3099/4256/307 -f 3108/4264/307 3124/4265/307 3107/4259/307 -f 3102/4266/304 3117/4240/304 3100/4267/304 -f 3110/4268/304 3125/4246/304 3108/4269/304 -f 3101/4258/306 3118/4270/306 3102/4266/306 -f 3095/4271/305 3111/4272/305 3097/4251/305 -f 3109/4261/306 3126/4273/306 3110/4268/306 -f 3103/4274/305 3119/4275/305 3105/4254/305 -f 3096/4276/307 3112/4277/307 3095/4271/307 -f 3104/4278/307 3120/4279/307 3103/4274/307 -f 3098/4253/304 3113/4237/304 3096/4280/304 -f 3129/4281/307 3128/4282/307 3130/4283/307 -f 3133/4284/306 3132/4285/306 3131/4286/306 -f 3135/4287/304 3138/4288/304 3136/4289/304 -f 3142/4290/305 3139/4291/305 3140/4292/305 -f 3153/4293/303 3151/4294/303 3152/4295/303 -f 3157/4296/303 3155/4297/303 3156/4298/303 -f 3146/4299/304 3153/4293/304 3144/4300/304 -f 3143/4301/305 3151/4302/305 3145/4303/305 -f 3149/4304/306 3158/4305/306 3150/4306/306 -f 3148/4307/307 3156/4308/307 3147/4309/307 -f 3145/4303/306 3154/4310/306 3146/4299/306 -f 3144/4311/307 3152/4312/307 3143/4301/307 -f 3150/4306/304 3157/4296/304 3148/4313/304 -f 3147/4309/305 3155/4314/305 3149/4304/305 -f 3160/4315/307 3162/4316/307 3167/4317/307 -f 3162/4318/304 3169/4319/304 3167/4320/304 -f 3159/4321/305 3163/4322/305 3168/4323/305 -f 3161/4324/311 3169/4319/311 3170/4325/311 -f 3168/4326/306 3166/4327/306 3164/4328/306 -f 3170/4329/306 3169/4330/306 3165/4331/306 -f 3169/4330/304 3171/4332/304 3165/4331/304 -f 3171/4333/312 3168/4326/312 3163/4334/312 -f 3173/4335/305 3175/4336/305 3180/4337/305 -f 3175/4338/307 3182/4339/307 3180/4340/307 -f 3172/4341/306 3176/4342/306 3181/4343/306 -f 3174/4344/310 3182/4339/310 3183/4345/310 -f 3181/4346/304 3179/4347/304 3177/4348/304 -f 3183/4349/304 3182/4350/304 3178/4351/304 -f 3182/4350/307 3184/4352/307 3178/4351/307 -f 3184/4353/311 3181/4346/311 3176/4354/311 -f 3186/4355/304 3188/4356/304 3193/4357/304 -f 3188/4358/306 3195/4359/306 3193/4360/306 -f 3185/4361/307 3189/4362/307 3194/4363/307 -f 3196/4364/312 3193/4360/312 3195/4359/312 -f 3194/4365/305 3192/4366/305 3190/4367/305 -f 3196/4368/305 3195/4369/305 3191/4370/305 -f 3195/4369/306 3197/4371/306 3191/4370/306 -f 3197/4372/309 3194/4365/309 3189/4373/309 -f 3199/4374/306 3200/4375/306 3201/4376/306 -f 3203/4377/307 3204/4378/307 3202/4379/307 -f 3209/4380/305 3206/4381/305 3207/4382/305 -f 3210/4383/304 3213/4384/304 3211/4385/304 -f 3062/4166/303 3064/4185/303 3056/4167/303 -f 3063/4169/303 3062/4166/303 3054/4168/303 -f 3055/4170/304 3060/4189/304 3061/4171/304 -f 3056/4173/305 3058/4386/305 3059/4174/305 -f 3057/4176/306 3061/4387/306 3058/4177/306 -f 3054/4179/307 3059/4388/307 3060/4180/307 -f 3066/4182/304 3068/4389/304 3064/4183/304 -f 3064/4185/303 3065/4186/303 3057/4172/303 -f 3065/4186/303 3063/4169/303 3055/4170/303 -f 3059/4187/308 3066/4193/308 3067/4188/308 -f 3060/4189/308 3067/4188/308 3069/4190/308 -f 3061/4171/308 3069/4190/308 3068/4191/308 -f 3058/4192/308 3068/4191/308 3066/4193/308 -f 3071/4194/303 3073/4390/303 3072/4195/303 -f 3068/4197/307 3069/4391/307 3065/4198/307 -f 3069/4200/305 3067/4392/305 3063/4201/305 -f 3067/4203/306 3066/4393/306 3062/4204/306 -f 3076/4394/306 3074/4212/306 3082/4208/306 -f 3074/4212/306 3075/4206/306 3082/4208/306 -f 3077/4209/305 3081/4217/305 3084/4210/305 -f 3079/4395/304 3075/4206/304 3083/4214/304 -f 3075/4206/304 3074/4212/304 3083/4214/304 -f 3085/4215/309 3076/4396/309 3082/4211/309 -f 3083/4216/307 3084/4210/307 3081/4217/307 -f 3086/4223/310 3084/4210/310 3083/4216/310 -f 3093/4225/303 3094/4231/303 3091/4226/303 -f 3087/4228/305 3092/4227/305 3091/4226/305 -f 3089/4230/306 3091/4226/306 3094/4231/306 -f 3088/4233/307 3093/4225/307 3092/4227/307 -f 3090/4235/304 3094/4231/304 3093/4225/304 -f 3113/4237/303 3114/4252/303 3111/4238/303 -f 3117/4240/303 3118/4270/303 3115/4241/303 -f 3121/4243/303 3122/4255/303 3119/4244/303 -f 3125/4246/303 3126/4273/303 3123/4247/303 -f 3106/4249/304 3122/4255/304 3121/4243/304 -f 3097/4251/306 3111/4272/306 3114/4252/306 -f 3105/4254/306 3119/4275/306 3122/4255/306 -f 3099/4256/305 3116/4263/305 3115/4257/305 -f 3107/4259/305 3124/4265/305 3123/4260/305 -f 3100/4262/307 3117/4397/307 3116/4263/307 -f 3108/4264/307 3125/4398/307 3124/4265/307 -f 3102/4266/304 3118/4270/304 3117/4240/304 -f 3110/4268/304 3126/4273/304 3125/4246/304 -f 3101/4258/306 3115/4257/306 3118/4270/306 -f 3095/4271/305 3112/4277/305 3111/4272/305 -f 3109/4261/306 3123/4260/306 3126/4273/306 -f 3103/4274/305 3120/4279/305 3119/4275/305 -f 3096/4276/307 3113/4399/307 3112/4277/307 -f 3104/4278/307 3121/4400/307 3120/4279/307 -f 3098/4253/304 3114/4252/304 3113/4237/304 -f 3129/4281/307 3127/4401/307 3128/4282/307 -f 3133/4284/306 3134/4402/306 3132/4285/306 -f 3135/4287/304 3137/4403/304 3138/4288/304 -f 3142/4290/305 3141/4404/305 3139/4291/305 -f 3153/4293/303 3154/4310/303 3151/4294/303 -f 3157/4296/303 3158/4305/303 3155/4297/303 -f 3146/4299/304 3154/4310/304 3153/4293/304 -f 3143/4301/305 3152/4312/305 3151/4302/305 -f 3149/4304/306 3155/4314/306 3158/4305/306 -f 3148/4307/307 3157/4405/307 3156/4308/307 -f 3145/4303/306 3151/4302/306 3154/4310/306 -f 3144/4311/307 3153/4406/307 3152/4312/307 -f 3150/4306/304 3158/4305/304 3157/4296/304 -f 3147/4309/305 3156/4308/305 3155/4314/305 -f 3161/4407/307 3159/4321/307 3167/4317/307 -f 3159/4321/307 3160/4315/307 3167/4317/307 -f 3162/4318/304 3166/4327/304 3169/4319/304 -f 3164/4408/305 3160/4315/305 3168/4323/305 -f 3160/4315/305 3159/4321/305 3168/4323/305 -f 3161/4324/311 3167/4320/311 3169/4319/311 -f 3168/4326/306 3169/4319/306 3166/4327/306 -f 3171/4333/312 3169/4319/312 3168/4326/312 -f 3174/4409/305 3172/4341/305 3180/4337/305 -f 3172/4341/305 3173/4335/305 3180/4337/305 -f 3175/4338/307 3179/4347/307 3182/4339/307 -f 3177/4410/306 3173/4335/306 3181/4343/306 -f 3173/4335/306 3172/4341/306 3181/4343/306 -f 3174/4344/310 3180/4340/310 3182/4339/310 -f 3181/4346/304 3182/4339/304 3179/4347/304 -f 3184/4353/311 3182/4339/311 3181/4346/311 -f 3187/4411/304 3185/4361/304 3193/4357/304 -f 3185/4361/304 3186/4355/304 3193/4357/304 -f 3188/4358/306 3192/4366/306 3195/4359/306 -f 3190/4412/307 3186/4355/307 3194/4363/307 -f 3186/4355/307 3185/4361/307 3194/4363/307 -f 3196/4364/312 3187/4413/312 3193/4360/312 -f 3194/4365/305 3195/4359/305 3192/4366/305 -f 3197/4372/309 3195/4359/309 3194/4365/309 -f 3199/4374/306 3198/4414/306 3200/4375/306 -f 3203/4377/307 3205/4415/307 3204/4378/307 -f 3209/4380/305 3208/4416/305 3206/4381/305 -f 3210/4383/304 3212/4417/304 3213/4384/304 +f 3062/4184/303 3056/4185/303 3054/4186/303 +f 3063/4187/303 3054/4186/303 3055/4188/303 +f 3055/4188/304 3061/4189/304 3057/4190/304 +f 3056/4191/305 3059/4192/305 3054/4193/305 +f 3057/4194/306 3058/4195/306 3056/4196/306 +f 3054/4197/307 3060/4198/307 3055/4199/307 +f 3066/4200/304 3064/4201/304 3062/4202/304 +f 3064/4203/303 3057/4190/303 3056/4185/303 +f 3065/4204/303 3055/4188/303 3057/4190/303 +f 3059/4205/308 3067/4206/308 3060/4207/308 +f 3060/4207/308 3069/4208/308 3061/4189/308 +f 3061/4189/308 3068/4209/308 3058/4210/308 +f 3058/4210/308 3066/4211/308 3059/4205/308 +f 3071/4212/303 3072/4213/303 3070/4214/303 +f 3068/4215/307 3065/4216/307 3064/4217/307 +f 3069/4218/305 3063/4219/305 3065/4220/305 +f 3067/4221/306 3062/4222/306 3063/4223/306 +f 3075/4224/306 3077/4225/306 3082/4226/306 +f 3077/4227/305 3084/4228/305 3082/4229/305 +f 3074/4230/304 3078/4231/304 3083/4232/304 +f 3085/4233/309 3082/4229/309 3084/4228/309 +f 3083/4234/307 3081/4235/307 3079/4236/307 +f 3085/4237/307 3084/4238/307 3080/4239/307 +f 3084/4238/305 3086/4240/305 3080/4239/305 +f 3086/4241/310 3083/4234/310 3078/4242/310 +f 3093/4243/303 3091/4244/303 3092/4245/303 +f 3087/4246/305 3091/4244/305 3089/4247/305 +f 3089/4248/306 3094/4249/306 3090/4250/306 +f 3088/4251/307 3092/4245/307 3087/4252/307 +f 3090/4253/304 3093/4243/304 3088/4254/304 +f 3113/4255/303 3111/4256/303 3112/4257/303 +f 3117/4258/303 3115/4259/303 3116/4260/303 +f 3121/4261/303 3119/4262/303 3120/4263/303 +f 3125/4264/303 3123/4265/303 3124/4266/303 +f 3106/4267/304 3121/4261/304 3104/4268/304 +f 3097/4269/306 3114/4270/306 3098/4271/306 +f 3105/4272/306 3122/4273/306 3106/4267/306 +f 3099/4274/305 3115/4275/305 3101/4276/305 +f 3107/4277/305 3123/4278/305 3109/4279/305 +f 3100/4280/307 3116/4281/307 3099/4274/307 +f 3108/4282/307 3124/4283/307 3107/4277/307 +f 3102/4284/304 3117/4258/304 3100/4285/304 +f 3110/4286/304 3125/4264/304 3108/4287/304 +f 3101/4276/306 3118/4288/306 3102/4284/306 +f 3095/4289/305 3111/4290/305 3097/4269/305 +f 3109/4279/306 3126/4291/306 3110/4286/306 +f 3103/4292/305 3119/4293/305 3105/4272/305 +f 3096/4294/307 3112/4295/307 3095/4289/307 +f 3104/4296/307 3120/4297/307 3103/4292/307 +f 3098/4271/304 3113/4255/304 3096/4298/304 +f 3129/4299/307 3128/4300/307 3130/4301/307 +f 3133/4302/306 3132/4303/306 3131/4304/306 +f 3135/4305/304 3138/4306/304 3136/4307/304 +f 3142/4308/305 3139/4309/305 3140/4310/305 +f 3153/4311/303 3151/4312/303 3152/4313/303 +f 3157/4314/303 3155/4315/303 3156/4316/303 +f 3146/4317/304 3153/4311/304 3144/4318/304 +f 3143/4319/305 3151/4320/305 3145/4321/305 +f 3149/4322/306 3158/4323/306 3150/4324/306 +f 3148/4325/307 3156/4326/307 3147/4327/307 +f 3145/4321/306 3154/4328/306 3146/4317/306 +f 3144/4329/307 3152/4330/307 3143/4319/307 +f 3150/4324/304 3157/4314/304 3148/4331/304 +f 3147/4327/305 3155/4332/305 3149/4322/305 +f 3160/4333/307 3162/4334/307 3167/4335/307 +f 3162/4336/304 3169/4337/304 3167/4338/304 +f 3159/4339/305 3163/4340/305 3168/4341/305 +f 3161/4342/311 3169/4337/311 3170/4343/311 +f 3168/4344/306 3166/4345/306 3164/4346/306 +f 3170/4347/306 3169/4348/306 3165/4349/306 +f 3169/4348/304 3171/4350/304 3165/4349/304 +f 3171/4351/312 3168/4344/312 3163/4352/312 +f 3173/4353/305 3175/4354/305 3180/4355/305 +f 3175/4356/307 3182/4357/307 3180/4358/307 +f 3172/4359/306 3176/4360/306 3181/4361/306 +f 3174/4362/310 3182/4357/310 3183/4363/310 +f 3181/4364/304 3179/4365/304 3177/4366/304 +f 3183/4367/304 3182/4368/304 3178/4369/304 +f 3182/4368/307 3184/4370/307 3178/4369/307 +f 3184/4371/311 3181/4364/311 3176/4372/311 +f 3186/4373/304 3188/4374/304 3193/4375/304 +f 3188/4376/306 3195/4377/306 3193/4378/306 +f 3185/4379/307 3189/4380/307 3194/4381/307 +f 3196/4382/312 3193/4378/312 3195/4377/312 +f 3194/4383/305 3192/4384/305 3190/4385/305 +f 3196/4386/305 3195/4387/305 3191/4388/305 +f 3195/4387/306 3197/4389/306 3191/4388/306 +f 3197/4390/309 3194/4383/309 3189/4391/309 +f 3199/4392/306 3200/4393/306 3201/4394/306 +f 3203/4395/307 3204/4396/307 3202/4397/307 +f 3209/4398/305 3206/4399/305 3207/4400/305 +f 3210/4401/304 3213/4402/304 3211/4403/304 +f 3062/4184/303 3064/4203/303 3056/4185/303 +f 3063/4187/303 3062/4184/303 3054/4186/303 +f 3055/4188/304 3060/4207/304 3061/4189/304 +f 3056/4191/305 3058/4404/305 3059/4192/305 +f 3057/4194/306 3061/4405/306 3058/4195/306 +f 3054/4197/307 3059/4406/307 3060/4198/307 +f 3066/4200/304 3068/4407/304 3064/4201/304 +f 3064/4203/303 3065/4204/303 3057/4190/303 +f 3065/4204/303 3063/4187/303 3055/4188/303 +f 3059/4205/308 3066/4211/308 3067/4206/308 +f 3060/4207/308 3067/4206/308 3069/4208/308 +f 3061/4189/308 3069/4208/308 3068/4209/308 +f 3058/4210/308 3068/4209/308 3066/4211/308 +f 3071/4212/303 3073/4408/303 3072/4213/303 +f 3068/4215/307 3069/4409/307 3065/4216/307 +f 3069/4218/305 3067/4410/305 3063/4219/305 +f 3067/4221/306 3066/4411/306 3062/4222/306 +f 3076/4412/306 3074/4230/306 3082/4226/306 +f 3074/4230/306 3075/4224/306 3082/4226/306 +f 3077/4227/305 3081/4235/305 3084/4228/305 +f 3079/4413/304 3075/4224/304 3083/4232/304 +f 3075/4224/304 3074/4230/304 3083/4232/304 +f 3085/4233/309 3076/4414/309 3082/4229/309 +f 3083/4234/307 3084/4228/307 3081/4235/307 +f 3086/4241/310 3084/4228/310 3083/4234/310 +f 3093/4243/303 3094/4249/303 3091/4244/303 +f 3087/4246/305 3092/4245/305 3091/4244/305 +f 3089/4248/306 3091/4244/306 3094/4249/306 +f 3088/4251/307 3093/4243/307 3092/4245/307 +f 3090/4253/304 3094/4249/304 3093/4243/304 +f 3113/4255/303 3114/4270/303 3111/4256/303 +f 3117/4258/303 3118/4288/303 3115/4259/303 +f 3121/4261/303 3122/4273/303 3119/4262/303 +f 3125/4264/303 3126/4291/303 3123/4265/303 +f 3106/4267/304 3122/4273/304 3121/4261/304 +f 3097/4269/306 3111/4290/306 3114/4270/306 +f 3105/4272/306 3119/4293/306 3122/4273/306 +f 3099/4274/305 3116/4281/305 3115/4275/305 +f 3107/4277/305 3124/4283/305 3123/4278/305 +f 3100/4280/307 3117/4415/307 3116/4281/307 +f 3108/4282/307 3125/4416/307 3124/4283/307 +f 3102/4284/304 3118/4288/304 3117/4258/304 +f 3110/4286/304 3126/4291/304 3125/4264/304 +f 3101/4276/306 3115/4275/306 3118/4288/306 +f 3095/4289/305 3112/4295/305 3111/4290/305 +f 3109/4279/306 3123/4278/306 3126/4291/306 +f 3103/4292/305 3120/4297/305 3119/4293/305 +f 3096/4294/307 3113/4417/307 3112/4295/307 +f 3104/4296/307 3121/4418/307 3120/4297/307 +f 3098/4271/304 3114/4270/304 3113/4255/304 +f 3129/4299/307 3127/4419/307 3128/4300/307 +f 3133/4302/306 3134/4420/306 3132/4303/306 +f 3135/4305/304 3137/4421/304 3138/4306/304 +f 3142/4308/305 3141/4422/305 3139/4309/305 +f 3153/4311/303 3154/4328/303 3151/4312/303 +f 3157/4314/303 3158/4323/303 3155/4315/303 +f 3146/4317/304 3154/4328/304 3153/4311/304 +f 3143/4319/305 3152/4330/305 3151/4320/305 +f 3149/4322/306 3155/4332/306 3158/4323/306 +f 3148/4325/307 3157/4423/307 3156/4326/307 +f 3145/4321/306 3151/4320/306 3154/4328/306 +f 3144/4329/307 3153/4424/307 3152/4330/307 +f 3150/4324/304 3158/4323/304 3157/4314/304 +f 3147/4327/305 3156/4326/305 3155/4332/305 +f 3161/4425/307 3159/4339/307 3167/4335/307 +f 3159/4339/307 3160/4333/307 3167/4335/307 +f 3162/4336/304 3166/4345/304 3169/4337/304 +f 3164/4426/305 3160/4333/305 3168/4341/305 +f 3160/4333/305 3159/4339/305 3168/4341/305 +f 3161/4342/311 3167/4338/311 3169/4337/311 +f 3168/4344/306 3169/4337/306 3166/4345/306 +f 3171/4351/312 3169/4337/312 3168/4344/312 +f 3174/4427/305 3172/4359/305 3180/4355/305 +f 3172/4359/305 3173/4353/305 3180/4355/305 +f 3175/4356/307 3179/4365/307 3182/4357/307 +f 3177/4428/306 3173/4353/306 3181/4361/306 +f 3173/4353/306 3172/4359/306 3181/4361/306 +f 3174/4362/310 3180/4358/310 3182/4357/310 +f 3181/4364/304 3182/4357/304 3179/4365/304 +f 3184/4371/311 3182/4357/311 3181/4364/311 +f 3187/4429/304 3185/4379/304 3193/4375/304 +f 3185/4379/304 3186/4373/304 3193/4375/304 +f 3188/4376/306 3192/4384/306 3195/4377/306 +f 3190/4430/307 3186/4373/307 3194/4381/307 +f 3186/4373/307 3185/4379/307 3194/4381/307 +f 3196/4382/312 3187/4431/312 3193/4378/312 +f 3194/4383/305 3195/4377/305 3192/4384/305 +f 3197/4390/309 3195/4377/309 3194/4383/309 +f 3199/4392/306 3198/4432/306 3200/4393/306 +f 3203/4395/307 3205/4433/307 3204/4396/307 +f 3209/4398/305 3208/4434/305 3206/4399/305 +f 3210/4401/304 3212/4435/304 3213/4402/304 o V2_Pad v -0.500000 2.000000 0.500000 v 0.500000 2.000000 0.500000 @@ -12481,457 +12511,457 @@ vn -0.9007 0.3762 -0.2172 vn -0.9007 0.4343 0.0000 vn -0.9007 0.3762 0.2172 s off -f 3219/4418/313 3220/4419/313 3218/4420/313 -f 3225/4421/314 3218/4420/314 3224/4422/314 -f 3221/4423/315 3222/4424/315 3220/4419/315 -f 3223/4425/316 3219/4418/316 3225/4426/316 -f 3218/4420/317 3222/4427/317 3224/4428/317 -f 3214/4429/313 3227/4430/313 3215/4431/313 -f 3215/4431/313 3229/4432/313 3216/4433/313 -f 3216/4433/313 3228/4434/313 3217/4435/313 -f 3217/4435/313 3226/4436/313 3214/4429/313 -f 3232/4437/313 3230/4438/313 3231/4439/313 -f 3240/4440/318 3237/4441/318 3235/4442/318 -f 3241/4443/318 3235/4442/318 3234/4444/318 -f 3238/4445/318 3234/4444/318 3236/4446/318 -f 3239/4447/318 3236/4446/318 3237/4441/318 -f 3216/4448/317 3235/4449/317 3215/4450/317 -f 3227/4430/316 3241/4443/316 3229/4432/316 -f 3228/4451/317 3239/4452/317 3226/4453/317 -f 3215/4454/315 3237/4455/315 3214/4456/315 -f 3214/4457/316 3236/4458/316 3217/4459/316 -f 3229/4460/315 3238/4461/315 3228/4462/315 -f 3226/4463/314 3240/4464/314 3227/4465/314 -f 3217/4466/314 3234/4467/314 3216/4468/314 -f 3244/4469/315 3249/4470/315 3245/4471/315 -f 3243/4472/314 3246/4473/314 3242/4474/314 -f 3245/4475/316 3247/4476/316 3243/4477/316 -f 3242/4478/317 3248/4479/317 3244/4480/317 -f 3261/4481/316 3263/4482/316 3259/4483/316 -f 3255/4484/313 3256/4485/313 3254/4486/313 -f 3253/4487/316 3255/4484/316 3251/4488/316 -f 3250/4489/317 3256/4490/317 3252/4491/317 -f 3252/4492/315 3257/4493/315 3253/4494/315 -f 3251/4495/314 3254/4496/314 3250/4497/314 -f 3258/4498/317 3264/4499/317 3260/4500/317 -f 3260/4501/315 3265/4502/315 3261/4503/315 -f 3259/4504/314 3262/4505/314 3258/4506/314 -f 3261/4481/318 3258/4507/318 3260/4508/318 -f 3272/4509/313 3270/4510/313 3271/4511/313 -f 3269/4512/316 3272/4509/316 3267/4513/316 -f 3266/4514/317 3270/4515/317 3268/4516/317 -f 3268/4516/315 3273/4517/315 3269/4512/315 -f 3267/4513/314 3271/4518/314 3266/4519/314 -f 3276/4520/318 3274/4521/318 3277/4522/318 -f 3303/4523/318 3305/4524/318 3302/4525/318 -f 3306/4526/313 3308/4527/313 3309/4528/313 -f 3309/4529/314 3303/4530/314 3302/4531/314 -f 3308/4527/317 3304/4532/317 3303/4533/317 -f 3307/4534/315 3305/4524/315 3304/4535/315 -f 3306/4536/316 3302/4537/316 3305/4524/316 -f 3313/4538/316 3317/4539/316 3314/4540/316 -f 3312/4541/315 3314/4542/315 3315/4543/315 -f 3311/4544/317 3315/4545/317 3316/4546/317 -f 3310/4547/314 3316/4548/314 3317/4539/314 -f 3313/4549/313 3311/4550/313 3310/4551/313 -f 3316/4552/318 3314/4553/318 3317/4539/318 -f 3319/4554/318 3321/4555/318 3318/4556/318 -f 3322/4557/313 3324/4558/313 3325/4559/313 -f 3325/4559/314 3319/4560/314 3318/4561/314 -f 3324/4562/317 3320/4563/317 3319/4564/317 -f 3323/4565/315 3321/4566/315 3320/4563/315 -f 3322/4567/316 3318/4568/316 3321/4569/316 -f 3329/4570/316 3333/4571/316 3330/4572/316 -f 3328/4573/315 3330/4574/315 3331/4575/315 -f 3327/4576/317 3331/4577/317 3332/4578/317 -f 3326/4579/314 3332/4578/314 3333/4580/314 -f 3329/4570/313 3327/4581/313 3326/4582/313 -f 3332/4578/318 3330/4583/318 3333/4584/318 -f 3334/4585/313 3336/4586/313 3337/4587/313 -f 3337/4588/314 3276/4520/314 3277/4589/314 -f 3336/4590/317 3275/4591/317 3276/4520/317 -f 3335/4592/315 3274/4593/315 3275/4594/315 -f 3334/4585/316 3277/4595/316 3274/4596/316 -f 3341/4597/316 3345/4598/316 3342/4599/316 -f 3340/4600/315 3342/4601/315 3343/4602/315 -f 3339/4603/317 3343/4602/317 3344/4604/317 -f 3338/4605/314 3344/4606/314 3345/4607/314 -f 3341/4608/313 3339/4609/313 3338/4605/313 -f 3344/4610/318 3342/4611/318 3345/4612/318 -f 3347/4613/318 3349/4614/318 3346/4615/318 -f 3350/4616/313 3352/4617/313 3353/4618/313 -f 3353/4619/314 3347/4620/314 3346/4615/314 -f 3352/4621/317 3348/4622/317 3347/4623/317 -f 3351/4624/315 3349/4625/315 3348/4626/315 -f 3350/4627/316 3346/4615/316 3349/4628/316 -f 3357/4629/316 3361/4630/316 3358/4631/316 -f 3356/4632/315 3358/4631/315 3359/4633/315 -f 3355/4634/317 3359/4635/317 3360/4636/317 -f 3354/4637/314 3360/4638/314 3361/4639/314 -f 3357/4640/313 3355/4634/313 3354/4641/313 -f 3360/4642/318 3358/4631/318 3361/4643/318 -f 3363/4644/318 3364/4645/318 3362/4646/318 -f 3365/4647/317 3368/4648/317 3364/4645/317 -f 3362/4646/316 3367/4649/316 3363/4644/316 -f 3366/4650/313 3369/4651/313 3367/4649/313 -f 3371/4652/318 3372/4653/318 3370/4654/318 -f 3373/4655/317 3376/4656/317 3372/4653/317 -f 3370/4654/316 3375/4657/316 3371/4652/316 -f 3374/4658/313 3377/4659/313 3375/4660/313 -f 3379/4661/318 3380/4662/318 3378/4663/318 -f 3381/4664/317 3384/4665/317 3380/4666/317 -f 3378/4663/316 3383/4667/316 3379/4661/316 -f 3382/4668/313 3385/4669/313 3383/4667/313 -f 3387/4670/318 3388/4671/318 3386/4672/318 -f 3389/4673/317 3392/4674/317 3388/4671/317 -f 3386/4675/316 3391/4676/316 3387/4677/316 -f 3390/4678/313 3393/4679/313 3391/4676/313 -f 3395/4680/315 3396/4681/315 3394/4682/315 -f 3397/4683/317 3400/4684/317 3396/4681/317 -f 3394/4682/316 3399/4685/316 3395/4680/316 -f 3398/4686/314 3401/4687/314 3399/4685/314 -f 3403/4688/315 3404/4689/315 3402/4690/315 -f 3405/4691/317 3408/4692/317 3404/4689/317 -f 3402/4690/316 3407/4693/316 3403/4688/316 -f 3406/4694/314 3409/4695/314 3407/4696/314 -f 3411/4697/315 3412/4698/315 3410/4699/315 -f 3413/4700/317 3416/4701/317 3412/4702/317 -f 3410/4699/316 3415/4703/316 3411/4697/316 -f 3414/4704/314 3417/4705/314 3415/4703/314 -f 3419/4706/315 3420/4707/315 3418/4708/315 -f 3421/4709/317 3424/4710/317 3420/4707/317 -f 3418/4711/316 3423/4712/316 3419/4713/316 -f 3422/4714/314 3425/4715/314 3423/4712/314 -f 3429/4716/318 3426/4717/318 3427/4718/318 -f 3433/4719/315 3428/4720/315 3429/4716/315 -f 3430/4721/314 3427/4718/314 3426/4717/314 -f 3430/4721/313 3433/4722/313 3431/4723/313 -f 3437/4724/318 3434/4725/318 3435/4726/318 -f 3441/4727/315 3436/4728/315 3437/4729/315 -f 3438/4730/314 3435/4726/314 3434/4725/314 -f 3438/4730/313 3441/4727/313 3439/4731/313 -f 3445/4732/318 3442/4733/318 3443/4734/318 -f 3449/4735/315 3444/4736/315 3445/4732/315 -f 3446/4737/314 3443/4734/314 3442/4733/314 -f 3446/4738/313 3449/4735/313 3447/4739/313 -f 3453/4740/318 3450/4741/318 3451/4742/318 -f 3457/4743/315 3452/4744/315 3453/4740/315 -f 3454/4745/314 3451/4746/314 3450/4747/314 -f 3454/4745/313 3457/4743/313 3455/4748/313 -f 3484/4749/315 3489/4750/315 3485/4751/315 -f 3483/4752/314 3486/4753/314 3482/4754/314 -f 3485/4755/316 3487/4756/316 3483/4757/316 -f 3482/4758/317 3488/4759/317 3484/4760/317 -f 3501/4761/316 3503/4762/316 3499/4763/316 -f 3495/4764/313 3496/4765/313 3494/4766/313 -f 3493/4767/316 3495/4764/316 3491/4768/316 -f 3490/4769/317 3496/4770/317 3492/4771/317 -f 3492/4772/315 3497/4773/315 3493/4774/315 -f 3491/4775/314 3494/4776/314 3490/4777/314 -f 3498/4778/317 3504/4779/317 3500/4780/317 -f 3500/4781/315 3505/4782/315 3501/4783/315 -f 3499/4784/314 3502/4785/314 3498/4786/314 -f 3501/4761/318 3498/4787/318 3500/4788/318 -f 3508/4789/315 3513/4790/315 3509/4791/315 -f 3507/4792/314 3510/4793/314 3506/4794/314 -f 3509/4795/316 3511/4796/316 3507/4797/316 -f 3506/4798/317 3512/4799/317 3508/4800/317 -f 3525/4801/316 3527/4802/316 3523/4803/316 -f 3519/4804/313 3520/4805/313 3518/4806/313 -f 3517/4807/316 3519/4804/316 3515/4808/316 -f 3514/4809/317 3520/4810/317 3516/4811/317 -f 3516/4812/315 3521/4813/315 3517/4814/315 -f 3515/4815/314 3518/4816/314 3514/4817/314 -f 3522/4818/317 3528/4819/317 3524/4820/317 -f 3524/4821/315 3529/4822/315 3525/4823/315 -f 3523/4824/314 3526/4825/314 3522/4826/314 -f 3525/4801/318 3522/4827/318 3524/4828/318 -f 3532/4829/315 3537/4830/315 3533/4831/315 -f 3531/4832/314 3534/4833/314 3530/4834/314 -f 3533/4835/316 3535/4836/316 3531/4837/316 -f 3530/4838/317 3536/4839/317 3532/4840/317 -f 3549/4841/316 3551/4842/316 3547/4843/316 -f 3543/4844/313 3544/4845/313 3542/4846/313 -f 3541/4847/316 3543/4844/316 3539/4848/316 -f 3538/4849/317 3544/4850/317 3540/4851/317 -f 3540/4852/315 3545/4853/315 3541/4854/315 -f 3539/4855/314 3542/4856/314 3538/4857/314 -f 3546/4858/317 3552/4859/317 3548/4860/317 -f 3548/4861/315 3553/4862/315 3549/4863/315 -f 3547/4864/314 3550/4865/314 3546/4866/314 -f 3549/4841/318 3546/4867/318 3548/4868/318 -f 3219/4418/313 3221/4423/313 3220/4419/313 -f 3225/4421/314 3219/4418/314 3218/4420/314 -f 3221/4423/315 3223/4869/315 3222/4424/315 -f 3223/4425/316 3221/4423/316 3219/4418/316 -f 3218/4420/317 3220/4419/317 3222/4427/317 -f 3214/4429/313 3226/4436/313 3227/4430/313 -f 3215/4431/313 3227/4430/313 3229/4432/313 -f 3216/4433/313 3229/4432/313 3228/4434/313 -f 3217/4435/313 3228/4434/313 3226/4436/313 -f 3232/4437/313 3233/4870/313 3230/4438/313 -f 3240/4440/318 3239/4447/318 3237/4441/318 -f 3241/4443/318 3240/4440/318 3235/4442/318 -f 3238/4445/318 3241/4443/318 3234/4444/318 -f 3239/4447/318 3238/4445/318 3236/4446/318 -f 3216/4448/317 3234/4871/317 3235/4449/317 -f 3227/4430/316 3240/4440/316 3241/4443/316 -f 3228/4451/317 3238/4872/317 3239/4452/317 -f 3215/4454/315 3235/4873/315 3237/4455/315 -f 3214/4457/316 3237/4874/316 3236/4458/316 -f 3229/4460/315 3241/4875/315 3238/4461/315 -f 3226/4463/314 3239/4876/314 3240/4464/314 -f 3217/4466/314 3236/4877/314 3234/4467/314 -f 3244/4469/315 3248/4878/315 3249/4470/315 -f 3243/4472/314 3247/4879/314 3246/4473/314 -f 3245/4475/316 3249/4880/316 3247/4476/316 -f 3242/4478/317 3246/4881/317 3248/4479/317 -f 3261/4481/316 3265/4882/316 3263/4482/316 -f 3255/4484/313 3257/4883/313 3256/4485/313 -f 3253/4487/316 3257/4883/316 3255/4484/316 -f 3250/4489/317 3254/4884/317 3256/4490/317 -f 3252/4492/315 3256/4885/315 3257/4493/315 -f 3251/4495/314 3255/4886/314 3254/4496/314 -f 3258/4498/317 3262/4887/317 3264/4499/317 -f 3260/4501/315 3264/4888/315 3265/4502/315 -f 3259/4504/314 3263/4889/314 3262/4505/314 -f 3261/4481/318 3259/4483/318 3258/4507/318 -f 3272/4509/313 3273/4517/313 3270/4510/313 -f 3269/4512/316 3273/4517/316 3272/4509/316 -f 3266/4514/317 3271/4890/317 3270/4515/317 -f 3268/4516/315 3270/4515/315 3273/4517/315 -f 3267/4513/314 3272/4509/314 3271/4518/314 -f 3276/4520/318 3275/4891/318 3274/4521/318 -f 3303/4523/318 3304/4892/318 3305/4524/318 -f 3306/4526/313 3307/4893/313 3308/4527/313 -f 3309/4529/314 3308/4527/314 3303/4530/314 -f 3308/4527/317 3307/4894/317 3304/4532/317 -f 3307/4534/315 3306/4895/315 3305/4524/315 -f 3306/4536/316 3309/4896/316 3302/4537/316 -f 3313/4538/316 3310/4897/316 3317/4539/316 -f 3312/4541/315 3313/4898/315 3314/4542/315 -f 3311/4544/317 3312/4541/317 3315/4545/317 -f 3310/4547/314 3311/4899/314 3316/4548/314 -f 3313/4549/313 3312/4541/313 3311/4550/313 -f 3316/4552/318 3315/4900/318 3314/4553/318 -f 3319/4554/318 3320/4563/318 3321/4555/318 -f 3322/4557/313 3323/4901/313 3324/4558/313 -f 3325/4559/314 3324/4902/314 3319/4560/314 -f 3324/4562/317 3323/4903/317 3320/4563/317 -f 3323/4565/315 3322/4904/315 3321/4566/315 -f 3322/4567/316 3325/4559/316 3318/4568/316 -f 3329/4570/316 3326/4905/316 3333/4571/316 -f 3328/4573/315 3329/4570/315 3330/4574/315 -f 3327/4576/317 3328/4906/317 3331/4577/317 -f 3326/4579/314 3327/4907/314 3332/4578/314 -f 3329/4570/313 3328/4908/313 3327/4581/313 -f 3332/4578/318 3331/4909/318 3330/4583/318 -f 3334/4585/313 3335/4910/313 3336/4586/313 -f 3337/4588/314 3336/4911/314 3276/4520/314 -f 3336/4590/317 3335/4912/317 3275/4591/317 -f 3335/4592/315 3334/4585/315 3274/4593/315 -f 3334/4585/316 3337/4913/316 3277/4595/316 -f 3341/4597/316 3338/4605/316 3345/4598/316 -f 3340/4600/315 3341/4914/315 3342/4601/315 -f 3339/4603/317 3340/4915/317 3343/4602/317 -f 3338/4605/314 3339/4916/314 3344/4606/314 -f 3341/4608/313 3340/4917/313 3339/4609/313 -f 3344/4610/318 3343/4602/318 3342/4611/318 -f 3347/4613/318 3348/4918/318 3349/4614/318 -f 3350/4616/313 3351/4624/313 3352/4617/313 -f 3353/4619/314 3352/4919/314 3347/4620/314 -f 3352/4621/317 3351/4624/317 3348/4622/317 -f 3351/4624/315 3350/4920/315 3349/4625/315 -f 3350/4627/316 3353/4921/316 3346/4615/316 -f 3357/4629/316 3354/4922/316 3361/4630/316 -f 3356/4632/315 3357/4923/315 3358/4631/315 -f 3355/4634/317 3356/4924/317 3359/4635/317 -f 3354/4637/314 3355/4634/314 3360/4638/314 -f 3357/4640/313 3356/4925/313 3355/4634/313 -f 3360/4642/318 3359/4926/318 3358/4631/318 -f 3363/4644/318 3365/4647/318 3364/4645/318 -f 3365/4647/317 3369/4927/317 3368/4648/317 -f 3362/4646/316 3366/4650/316 3367/4649/316 -f 3366/4650/313 3368/4928/313 3369/4651/313 -f 3371/4652/318 3373/4655/318 3372/4653/318 -f 3373/4655/317 3377/4659/317 3376/4656/317 -f 3370/4654/316 3374/4929/316 3375/4657/316 -f 3374/4658/313 3376/4656/313 3377/4659/313 -f 3379/4661/318 3381/4930/318 3380/4662/318 -f 3381/4664/317 3385/4669/317 3384/4665/317 -f 3378/4663/316 3382/4668/316 3383/4667/316 -f 3382/4668/313 3384/4665/313 3385/4669/313 -f 3387/4670/318 3389/4673/318 3388/4671/318 -f 3389/4673/317 3393/4679/317 3392/4674/317 -f 3386/4675/316 3390/4678/316 3391/4676/316 -f 3390/4678/313 3392/4674/313 3393/4679/313 -f 3395/4680/315 3397/4683/315 3396/4681/315 -f 3397/4683/317 3401/4931/317 3400/4684/317 -f 3394/4682/316 3398/4686/316 3399/4685/316 -f 3398/4686/314 3400/4932/314 3401/4687/314 -f 3403/4688/315 3405/4691/315 3404/4689/315 -f 3405/4691/317 3409/4695/317 3408/4692/317 -f 3402/4690/316 3406/4933/316 3407/4693/316 -f 3406/4694/314 3408/4692/314 3409/4695/314 -f 3411/4697/315 3413/4934/315 3412/4698/315 -f 3413/4700/317 3417/4705/317 3416/4701/317 -f 3410/4699/316 3414/4704/316 3415/4703/316 -f 3414/4704/314 3416/4701/314 3417/4705/314 -f 3419/4706/315 3421/4709/315 3420/4707/315 -f 3421/4709/317 3425/4715/317 3424/4710/317 -f 3418/4711/316 3422/4714/316 3423/4712/316 -f 3422/4714/314 3424/4710/314 3425/4715/314 -f 3429/4716/318 3428/4720/318 3426/4717/318 -f 3433/4719/315 3432/4935/315 3428/4720/315 -f 3430/4721/314 3431/4723/314 3427/4718/314 -f 3430/4721/313 3432/4936/313 3433/4722/313 -f 3437/4724/318 3436/4937/318 3434/4725/318 -f 3441/4727/315 3440/4938/315 3436/4728/315 -f 3438/4730/314 3439/4731/314 3435/4726/314 -f 3438/4730/313 3440/4938/313 3441/4727/313 -f 3445/4732/318 3444/4736/318 3442/4733/318 -f 3449/4735/315 3448/4939/315 3444/4736/315 -f 3446/4737/314 3447/4940/314 3443/4734/314 -f 3446/4738/313 3448/4939/313 3449/4735/313 -f 3453/4740/318 3452/4744/318 3450/4741/318 -f 3457/4743/315 3456/4941/315 3452/4744/315 -f 3454/4745/314 3455/4748/314 3451/4746/314 -f 3454/4745/313 3456/4941/313 3457/4743/313 -f 3484/4749/315 3488/4942/315 3489/4750/315 -f 3483/4752/314 3487/4943/314 3486/4753/314 -f 3485/4755/316 3489/4944/316 3487/4756/316 -f 3482/4758/317 3486/4945/317 3488/4759/317 -f 3501/4761/316 3505/4946/316 3503/4762/316 -f 3495/4764/313 3497/4947/313 3496/4765/313 -f 3493/4767/316 3497/4947/316 3495/4764/316 -f 3490/4769/317 3494/4948/317 3496/4770/317 -f 3492/4772/315 3496/4949/315 3497/4773/315 -f 3491/4775/314 3495/4950/314 3494/4776/314 -f 3498/4778/317 3502/4951/317 3504/4779/317 -f 3500/4781/315 3504/4952/315 3505/4782/315 -f 3499/4784/314 3503/4953/314 3502/4785/314 -f 3501/4761/318 3499/4763/318 3498/4787/318 -f 3508/4789/315 3512/4954/315 3513/4790/315 -f 3507/4792/314 3511/4955/314 3510/4793/314 -f 3509/4795/316 3513/4956/316 3511/4796/316 -f 3506/4798/317 3510/4957/317 3512/4799/317 -f 3525/4801/316 3529/4958/316 3527/4802/316 -f 3519/4804/313 3521/4959/313 3520/4805/313 -f 3517/4807/316 3521/4959/316 3519/4804/316 -f 3514/4809/317 3518/4960/317 3520/4810/317 -f 3516/4812/315 3520/4961/315 3521/4813/315 -f 3515/4815/314 3519/4962/314 3518/4816/314 -f 3522/4818/317 3526/4963/317 3528/4819/317 -f 3524/4821/315 3528/4964/315 3529/4822/315 -f 3523/4824/314 3527/4965/314 3526/4825/314 -f 3525/4801/318 3523/4803/318 3522/4827/318 -f 3532/4829/315 3536/4966/315 3537/4830/315 -f 3531/4832/314 3535/4967/314 3534/4833/314 -f 3533/4835/316 3537/4968/316 3535/4836/316 -f 3530/4838/317 3534/4969/317 3536/4839/317 -f 3549/4841/316 3553/4970/316 3551/4842/316 -f 3543/4844/313 3545/4971/313 3544/4845/313 -f 3541/4847/316 3545/4971/316 3543/4844/316 -f 3538/4849/317 3542/4972/317 3544/4850/317 -f 3540/4852/315 3544/4973/315 3545/4853/315 -f 3539/4855/314 3543/4974/314 3542/4856/314 -f 3546/4858/317 3550/4975/317 3552/4859/317 -f 3548/4861/315 3552/4976/315 3553/4862/315 -f 3547/4864/314 3551/4977/314 3550/4865/314 -f 3549/4841/318 3547/4843/318 3546/4867/318 +f 3219/4436/313 3220/4437/313 3218/4438/313 +f 3225/4439/314 3218/4438/314 3224/4440/314 +f 3221/4441/315 3222/4442/315 3220/4437/315 +f 3223/4443/316 3219/4436/316 3225/4444/316 +f 3218/4438/317 3222/4445/317 3224/4446/317 +f 3214/4447/313 3227/4448/313 3215/4449/313 +f 3215/4449/313 3229/4450/313 3216/4451/313 +f 3216/4451/313 3228/4452/313 3217/4453/313 +f 3217/4453/313 3226/4454/313 3214/4447/313 +f 3232/4455/313 3230/4456/313 3231/4457/313 +f 3240/4458/318 3237/4459/318 3235/4460/318 +f 3241/4461/318 3235/4460/318 3234/4462/318 +f 3238/4463/318 3234/4462/318 3236/4464/318 +f 3239/4465/318 3236/4464/318 3237/4459/318 +f 3216/4466/317 3235/4467/317 3215/4468/317 +f 3227/4448/316 3241/4461/316 3229/4450/316 +f 3228/4469/317 3239/4470/317 3226/4471/317 +f 3215/4472/315 3237/4473/315 3214/4474/315 +f 3214/4475/316 3236/4476/316 3217/4477/316 +f 3229/4478/315 3238/4479/315 3228/4480/315 +f 3226/4481/314 3240/4482/314 3227/4483/314 +f 3217/4484/314 3234/4485/314 3216/4486/314 +f 3244/4487/315 3249/4488/315 3245/4489/315 +f 3243/4490/314 3246/4491/314 3242/4492/314 +f 3245/4493/316 3247/4494/316 3243/4495/316 +f 3242/4496/317 3248/4497/317 3244/4498/317 +f 3261/4499/316 3263/4500/316 3259/4501/316 +f 3255/4502/313 3256/4503/313 3254/4504/313 +f 3253/4505/316 3255/4502/316 3251/4506/316 +f 3250/4507/317 3256/4508/317 3252/4509/317 +f 3252/4510/315 3257/4511/315 3253/4512/315 +f 3251/4513/314 3254/4514/314 3250/4515/314 +f 3258/4516/317 3264/4517/317 3260/4518/317 +f 3260/4519/315 3265/4520/315 3261/4521/315 +f 3259/4522/314 3262/4523/314 3258/4524/314 +f 3261/4499/318 3258/4525/318 3260/4526/318 +f 3272/4527/313 3270/4528/313 3271/4529/313 +f 3269/4530/316 3272/4527/316 3267/4531/316 +f 3266/4532/317 3270/4533/317 3268/4534/317 +f 3268/4534/315 3273/4535/315 3269/4530/315 +f 3267/4531/314 3271/4536/314 3266/4537/314 +f 3276/4538/318 3274/4539/318 3277/4540/318 +f 3303/4541/318 3305/4542/318 3302/4543/318 +f 3306/4544/313 3308/4545/313 3309/4546/313 +f 3309/4547/314 3303/4548/314 3302/4549/314 +f 3308/4545/317 3304/4550/317 3303/4551/317 +f 3307/4552/315 3305/4542/315 3304/4553/315 +f 3306/4554/316 3302/4555/316 3305/4542/316 +f 3313/4556/316 3317/4557/316 3314/4558/316 +f 3312/4559/315 3314/4560/315 3315/4561/315 +f 3311/4562/317 3315/4563/317 3316/4564/317 +f 3310/4565/314 3316/4566/314 3317/4557/314 +f 3313/4567/313 3311/4568/313 3310/4569/313 +f 3316/4570/318 3314/4571/318 3317/4557/318 +f 3319/4572/318 3321/4573/318 3318/4574/318 +f 3322/4575/313 3324/4576/313 3325/4577/313 +f 3325/4577/314 3319/4578/314 3318/4579/314 +f 3324/4580/317 3320/4581/317 3319/4582/317 +f 3323/4583/315 3321/4584/315 3320/4581/315 +f 3322/4585/316 3318/4586/316 3321/4587/316 +f 3329/4588/316 3333/4589/316 3330/4590/316 +f 3328/4591/315 3330/4592/315 3331/4593/315 +f 3327/4594/317 3331/4595/317 3332/4596/317 +f 3326/4597/314 3332/4596/314 3333/4598/314 +f 3329/4588/313 3327/4599/313 3326/4600/313 +f 3332/4596/318 3330/4601/318 3333/4602/318 +f 3334/4603/313 3336/4604/313 3337/4605/313 +f 3337/4606/314 3276/4538/314 3277/4607/314 +f 3336/4608/317 3275/4609/317 3276/4538/317 +f 3335/4610/315 3274/4611/315 3275/4612/315 +f 3334/4603/316 3277/4613/316 3274/4614/316 +f 3341/4615/316 3345/4616/316 3342/4617/316 +f 3340/4618/315 3342/4619/315 3343/4620/315 +f 3339/4621/317 3343/4620/317 3344/4622/317 +f 3338/4623/314 3344/4624/314 3345/4625/314 +f 3341/4626/313 3339/4627/313 3338/4623/313 +f 3344/4628/318 3342/4629/318 3345/4630/318 +f 3347/4631/318 3349/4632/318 3346/4633/318 +f 3350/4634/313 3352/4635/313 3353/4636/313 +f 3353/4637/314 3347/4638/314 3346/4633/314 +f 3352/4639/317 3348/4640/317 3347/4641/317 +f 3351/4642/315 3349/4643/315 3348/4644/315 +f 3350/4645/316 3346/4633/316 3349/4646/316 +f 3357/4647/316 3361/4648/316 3358/4649/316 +f 3356/4650/315 3358/4649/315 3359/4651/315 +f 3355/4652/317 3359/4653/317 3360/4654/317 +f 3354/4655/314 3360/4656/314 3361/4657/314 +f 3357/4658/313 3355/4652/313 3354/4659/313 +f 3360/4660/318 3358/4649/318 3361/4661/318 +f 3363/4662/318 3364/4663/318 3362/4664/318 +f 3365/4665/317 3368/4666/317 3364/4663/317 +f 3362/4664/316 3367/4667/316 3363/4662/316 +f 3366/4668/313 3369/4669/313 3367/4667/313 +f 3371/4670/318 3372/4671/318 3370/4672/318 +f 3373/4673/317 3376/4674/317 3372/4671/317 +f 3370/4672/316 3375/4675/316 3371/4670/316 +f 3374/4676/313 3377/4677/313 3375/4678/313 +f 3379/4679/318 3380/4680/318 3378/4681/318 +f 3381/4682/317 3384/4683/317 3380/4684/317 +f 3378/4681/316 3383/4685/316 3379/4679/316 +f 3382/4686/313 3385/4687/313 3383/4685/313 +f 3387/4688/318 3388/4689/318 3386/4690/318 +f 3389/4691/317 3392/4692/317 3388/4689/317 +f 3386/4693/316 3391/4694/316 3387/4695/316 +f 3390/4696/313 3393/4697/313 3391/4694/313 +f 3395/4698/315 3396/4699/315 3394/4700/315 +f 3397/4701/317 3400/4702/317 3396/4699/317 +f 3394/4700/316 3399/4703/316 3395/4698/316 +f 3398/4704/314 3401/4705/314 3399/4703/314 +f 3403/4706/315 3404/4707/315 3402/4708/315 +f 3405/4709/317 3408/4710/317 3404/4707/317 +f 3402/4708/316 3407/4711/316 3403/4706/316 +f 3406/4712/314 3409/4713/314 3407/4714/314 +f 3411/4715/315 3412/4716/315 3410/4717/315 +f 3413/4718/317 3416/4719/317 3412/4720/317 +f 3410/4717/316 3415/4721/316 3411/4715/316 +f 3414/4722/314 3417/4723/314 3415/4721/314 +f 3419/4724/315 3420/4725/315 3418/4726/315 +f 3421/4727/317 3424/4728/317 3420/4725/317 +f 3418/4729/316 3423/4730/316 3419/4731/316 +f 3422/4732/314 3425/4733/314 3423/4730/314 +f 3429/4734/318 3426/4735/318 3427/4736/318 +f 3433/4737/315 3428/4738/315 3429/4734/315 +f 3430/4739/314 3427/4736/314 3426/4735/314 +f 3430/4739/313 3433/4740/313 3431/4741/313 +f 3437/4742/318 3434/4743/318 3435/4744/318 +f 3441/4745/315 3436/4746/315 3437/4747/315 +f 3438/4748/314 3435/4744/314 3434/4743/314 +f 3438/4748/313 3441/4745/313 3439/4749/313 +f 3445/4750/318 3442/4751/318 3443/4752/318 +f 3449/4753/315 3444/4754/315 3445/4750/315 +f 3446/4755/314 3443/4752/314 3442/4751/314 +f 3446/4756/313 3449/4753/313 3447/4757/313 +f 3453/4758/318 3450/4759/318 3451/4760/318 +f 3457/4761/315 3452/4762/315 3453/4758/315 +f 3454/4763/314 3451/4764/314 3450/4765/314 +f 3454/4763/313 3457/4761/313 3455/4766/313 +f 3484/4767/315 3489/4768/315 3485/4769/315 +f 3483/4770/314 3486/4771/314 3482/4772/314 +f 3485/4773/316 3487/4774/316 3483/4775/316 +f 3482/4776/317 3488/4777/317 3484/4778/317 +f 3501/4779/316 3503/4780/316 3499/4781/316 +f 3495/4782/313 3496/4783/313 3494/4784/313 +f 3493/4785/316 3495/4782/316 3491/4786/316 +f 3490/4787/317 3496/4788/317 3492/4789/317 +f 3492/4790/315 3497/4791/315 3493/4792/315 +f 3491/4793/314 3494/4794/314 3490/4795/314 +f 3498/4796/317 3504/4797/317 3500/4798/317 +f 3500/4799/315 3505/4800/315 3501/4801/315 +f 3499/4802/314 3502/4803/314 3498/4804/314 +f 3501/4779/318 3498/4805/318 3500/4806/318 +f 3508/4807/315 3513/4808/315 3509/4809/315 +f 3507/4810/314 3510/4811/314 3506/4812/314 +f 3509/4813/316 3511/4814/316 3507/4815/316 +f 3506/4816/317 3512/4817/317 3508/4818/317 +f 3525/4819/316 3527/4820/316 3523/4821/316 +f 3519/4822/313 3520/4823/313 3518/4824/313 +f 3517/4825/316 3519/4822/316 3515/4826/316 +f 3514/4827/317 3520/4828/317 3516/4829/317 +f 3516/4830/315 3521/4831/315 3517/4832/315 +f 3515/4833/314 3518/4834/314 3514/4835/314 +f 3522/4836/317 3528/4837/317 3524/4838/317 +f 3524/4839/315 3529/4840/315 3525/4841/315 +f 3523/4842/314 3526/4843/314 3522/4844/314 +f 3525/4819/318 3522/4845/318 3524/4846/318 +f 3532/4847/315 3537/4848/315 3533/4849/315 +f 3531/4850/314 3534/4851/314 3530/4852/314 +f 3533/4853/316 3535/4854/316 3531/4855/316 +f 3530/4856/317 3536/4857/317 3532/4858/317 +f 3549/4859/316 3551/4860/316 3547/4861/316 +f 3543/4862/313 3544/4863/313 3542/4864/313 +f 3541/4865/316 3543/4862/316 3539/4866/316 +f 3538/4867/317 3544/4868/317 3540/4869/317 +f 3540/4870/315 3545/4871/315 3541/4872/315 +f 3539/4873/314 3542/4874/314 3538/4875/314 +f 3546/4876/317 3552/4877/317 3548/4878/317 +f 3548/4879/315 3553/4880/315 3549/4881/315 +f 3547/4882/314 3550/4883/314 3546/4884/314 +f 3549/4859/318 3546/4885/318 3548/4886/318 +f 3219/4436/313 3221/4441/313 3220/4437/313 +f 3225/4439/314 3219/4436/314 3218/4438/314 +f 3221/4441/315 3223/4887/315 3222/4442/315 +f 3223/4443/316 3221/4441/316 3219/4436/316 +f 3218/4438/317 3220/4437/317 3222/4445/317 +f 3214/4447/313 3226/4454/313 3227/4448/313 +f 3215/4449/313 3227/4448/313 3229/4450/313 +f 3216/4451/313 3229/4450/313 3228/4452/313 +f 3217/4453/313 3228/4452/313 3226/4454/313 +f 3232/4455/313 3233/4888/313 3230/4456/313 +f 3240/4458/318 3239/4465/318 3237/4459/318 +f 3241/4461/318 3240/4458/318 3235/4460/318 +f 3238/4463/318 3241/4461/318 3234/4462/318 +f 3239/4465/318 3238/4463/318 3236/4464/318 +f 3216/4466/317 3234/4889/317 3235/4467/317 +f 3227/4448/316 3240/4458/316 3241/4461/316 +f 3228/4469/317 3238/4890/317 3239/4470/317 +f 3215/4472/315 3235/4891/315 3237/4473/315 +f 3214/4475/316 3237/4892/316 3236/4476/316 +f 3229/4478/315 3241/4893/315 3238/4479/315 +f 3226/4481/314 3239/4894/314 3240/4482/314 +f 3217/4484/314 3236/4895/314 3234/4485/314 +f 3244/4487/315 3248/4896/315 3249/4488/315 +f 3243/4490/314 3247/4897/314 3246/4491/314 +f 3245/4493/316 3249/4898/316 3247/4494/316 +f 3242/4496/317 3246/4899/317 3248/4497/317 +f 3261/4499/316 3265/4900/316 3263/4500/316 +f 3255/4502/313 3257/4901/313 3256/4503/313 +f 3253/4505/316 3257/4901/316 3255/4502/316 +f 3250/4507/317 3254/4902/317 3256/4508/317 +f 3252/4510/315 3256/4903/315 3257/4511/315 +f 3251/4513/314 3255/4904/314 3254/4514/314 +f 3258/4516/317 3262/4905/317 3264/4517/317 +f 3260/4519/315 3264/4906/315 3265/4520/315 +f 3259/4522/314 3263/4907/314 3262/4523/314 +f 3261/4499/318 3259/4501/318 3258/4525/318 +f 3272/4527/313 3273/4535/313 3270/4528/313 +f 3269/4530/316 3273/4535/316 3272/4527/316 +f 3266/4532/317 3271/4908/317 3270/4533/317 +f 3268/4534/315 3270/4533/315 3273/4535/315 +f 3267/4531/314 3272/4527/314 3271/4536/314 +f 3276/4538/318 3275/4909/318 3274/4539/318 +f 3303/4541/318 3304/4910/318 3305/4542/318 +f 3306/4544/313 3307/4911/313 3308/4545/313 +f 3309/4547/314 3308/4545/314 3303/4548/314 +f 3308/4545/317 3307/4912/317 3304/4550/317 +f 3307/4552/315 3306/4913/315 3305/4542/315 +f 3306/4554/316 3309/4914/316 3302/4555/316 +f 3313/4556/316 3310/4915/316 3317/4557/316 +f 3312/4559/315 3313/4916/315 3314/4560/315 +f 3311/4562/317 3312/4559/317 3315/4563/317 +f 3310/4565/314 3311/4917/314 3316/4566/314 +f 3313/4567/313 3312/4559/313 3311/4568/313 +f 3316/4570/318 3315/4918/318 3314/4571/318 +f 3319/4572/318 3320/4581/318 3321/4573/318 +f 3322/4575/313 3323/4919/313 3324/4576/313 +f 3325/4577/314 3324/4920/314 3319/4578/314 +f 3324/4580/317 3323/4921/317 3320/4581/317 +f 3323/4583/315 3322/4922/315 3321/4584/315 +f 3322/4585/316 3325/4577/316 3318/4586/316 +f 3329/4588/316 3326/4923/316 3333/4589/316 +f 3328/4591/315 3329/4588/315 3330/4592/315 +f 3327/4594/317 3328/4924/317 3331/4595/317 +f 3326/4597/314 3327/4925/314 3332/4596/314 +f 3329/4588/313 3328/4926/313 3327/4599/313 +f 3332/4596/318 3331/4927/318 3330/4601/318 +f 3334/4603/313 3335/4928/313 3336/4604/313 +f 3337/4606/314 3336/4929/314 3276/4538/314 +f 3336/4608/317 3335/4930/317 3275/4609/317 +f 3335/4610/315 3334/4603/315 3274/4611/315 +f 3334/4603/316 3337/4931/316 3277/4613/316 +f 3341/4615/316 3338/4623/316 3345/4616/316 +f 3340/4618/315 3341/4932/315 3342/4619/315 +f 3339/4621/317 3340/4933/317 3343/4620/317 +f 3338/4623/314 3339/4934/314 3344/4624/314 +f 3341/4626/313 3340/4935/313 3339/4627/313 +f 3344/4628/318 3343/4620/318 3342/4629/318 +f 3347/4631/318 3348/4936/318 3349/4632/318 +f 3350/4634/313 3351/4642/313 3352/4635/313 +f 3353/4637/314 3352/4937/314 3347/4638/314 +f 3352/4639/317 3351/4642/317 3348/4640/317 +f 3351/4642/315 3350/4938/315 3349/4643/315 +f 3350/4645/316 3353/4939/316 3346/4633/316 +f 3357/4647/316 3354/4940/316 3361/4648/316 +f 3356/4650/315 3357/4941/315 3358/4649/315 +f 3355/4652/317 3356/4942/317 3359/4653/317 +f 3354/4655/314 3355/4652/314 3360/4656/314 +f 3357/4658/313 3356/4943/313 3355/4652/313 +f 3360/4660/318 3359/4944/318 3358/4649/318 +f 3363/4662/318 3365/4665/318 3364/4663/318 +f 3365/4665/317 3369/4945/317 3368/4666/317 +f 3362/4664/316 3366/4668/316 3367/4667/316 +f 3366/4668/313 3368/4946/313 3369/4669/313 +f 3371/4670/318 3373/4673/318 3372/4671/318 +f 3373/4673/317 3377/4677/317 3376/4674/317 +f 3370/4672/316 3374/4947/316 3375/4675/316 +f 3374/4676/313 3376/4674/313 3377/4677/313 +f 3379/4679/318 3381/4948/318 3380/4680/318 +f 3381/4682/317 3385/4687/317 3384/4683/317 +f 3378/4681/316 3382/4686/316 3383/4685/316 +f 3382/4686/313 3384/4683/313 3385/4687/313 +f 3387/4688/318 3389/4691/318 3388/4689/318 +f 3389/4691/317 3393/4697/317 3392/4692/317 +f 3386/4693/316 3390/4696/316 3391/4694/316 +f 3390/4696/313 3392/4692/313 3393/4697/313 +f 3395/4698/315 3397/4701/315 3396/4699/315 +f 3397/4701/317 3401/4949/317 3400/4702/317 +f 3394/4700/316 3398/4704/316 3399/4703/316 +f 3398/4704/314 3400/4950/314 3401/4705/314 +f 3403/4706/315 3405/4709/315 3404/4707/315 +f 3405/4709/317 3409/4713/317 3408/4710/317 +f 3402/4708/316 3406/4951/316 3407/4711/316 +f 3406/4712/314 3408/4710/314 3409/4713/314 +f 3411/4715/315 3413/4952/315 3412/4716/315 +f 3413/4718/317 3417/4723/317 3416/4719/317 +f 3410/4717/316 3414/4722/316 3415/4721/316 +f 3414/4722/314 3416/4719/314 3417/4723/314 +f 3419/4724/315 3421/4727/315 3420/4725/315 +f 3421/4727/317 3425/4733/317 3424/4728/317 +f 3418/4729/316 3422/4732/316 3423/4730/316 +f 3422/4732/314 3424/4728/314 3425/4733/314 +f 3429/4734/318 3428/4738/318 3426/4735/318 +f 3433/4737/315 3432/4953/315 3428/4738/315 +f 3430/4739/314 3431/4741/314 3427/4736/314 +f 3430/4739/313 3432/4954/313 3433/4740/313 +f 3437/4742/318 3436/4955/318 3434/4743/318 +f 3441/4745/315 3440/4956/315 3436/4746/315 +f 3438/4748/314 3439/4749/314 3435/4744/314 +f 3438/4748/313 3440/4956/313 3441/4745/313 +f 3445/4750/318 3444/4754/318 3442/4751/318 +f 3449/4753/315 3448/4957/315 3444/4754/315 +f 3446/4755/314 3447/4958/314 3443/4752/314 +f 3446/4756/313 3448/4957/313 3449/4753/313 +f 3453/4758/318 3452/4762/318 3450/4759/318 +f 3457/4761/315 3456/4959/315 3452/4762/315 +f 3454/4763/314 3455/4766/314 3451/4764/314 +f 3454/4763/313 3456/4959/313 3457/4761/313 +f 3484/4767/315 3488/4960/315 3489/4768/315 +f 3483/4770/314 3487/4961/314 3486/4771/314 +f 3485/4773/316 3489/4962/316 3487/4774/316 +f 3482/4776/317 3486/4963/317 3488/4777/317 +f 3501/4779/316 3505/4964/316 3503/4780/316 +f 3495/4782/313 3497/4965/313 3496/4783/313 +f 3493/4785/316 3497/4965/316 3495/4782/316 +f 3490/4787/317 3494/4966/317 3496/4788/317 +f 3492/4790/315 3496/4967/315 3497/4791/315 +f 3491/4793/314 3495/4968/314 3494/4794/314 +f 3498/4796/317 3502/4969/317 3504/4797/317 +f 3500/4799/315 3504/4970/315 3505/4800/315 +f 3499/4802/314 3503/4971/314 3502/4803/314 +f 3501/4779/318 3499/4781/318 3498/4805/318 +f 3508/4807/315 3512/4972/315 3513/4808/315 +f 3507/4810/314 3511/4973/314 3510/4811/314 +f 3509/4813/316 3513/4974/316 3511/4814/316 +f 3506/4816/317 3510/4975/317 3512/4817/317 +f 3525/4819/316 3529/4976/316 3527/4820/316 +f 3519/4822/313 3521/4977/313 3520/4823/313 +f 3517/4825/316 3521/4977/316 3519/4822/316 +f 3514/4827/317 3518/4978/317 3520/4828/317 +f 3516/4830/315 3520/4979/315 3521/4831/315 +f 3515/4833/314 3519/4980/314 3518/4834/314 +f 3522/4836/317 3526/4981/317 3528/4837/317 +f 3524/4839/315 3528/4982/315 3529/4840/315 +f 3523/4842/314 3527/4983/314 3526/4843/314 +f 3525/4819/318 3523/4821/318 3522/4845/318 +f 3532/4847/315 3536/4984/315 3537/4848/315 +f 3531/4850/314 3535/4985/314 3534/4851/314 +f 3533/4853/316 3537/4986/316 3535/4854/316 +f 3530/4856/317 3534/4987/317 3536/4857/317 +f 3549/4859/316 3553/4988/316 3551/4860/316 +f 3543/4862/313 3545/4989/313 3544/4863/313 +f 3541/4865/316 3545/4989/316 3543/4862/316 +f 3538/4867/317 3542/4990/317 3544/4868/317 +f 3540/4870/315 3544/4991/315 3545/4871/315 +f 3539/4873/314 3543/4992/314 3542/4874/314 +f 3546/4876/317 3550/4993/317 3552/4877/317 +f 3548/4879/315 3552/4994/315 3553/4880/315 +f 3547/4882/314 3551/4995/314 3550/4883/314 +f 3549/4859/318 3547/4861/318 3546/4885/318 s 1 -f 3279/4978/319 3280/4979/320 3278/4980/321 -f 3281/4981/322 3282/4982/323 3280/4979/320 -f 3283/4983/324 3284/4984/325 3282/4982/323 -f 3285/4985/326 3286/4986/327 3284/4987/325 -f 3287/4988/328 3288/4989/329 3286/4986/327 -f 3289/4990/330 3290/4991/331 3288/4989/329 -f 3291/4992/332 3292/4993/333 3290/4991/331 -f 3293/4994/334 3294/4995/335 3292/4993/333 -f 3295/4996/336 3296/4997/337 3294/4995/335 -f 3297/4998/338 3298/4999/339 3296/4997/337 -f 3293/4994/334 3466/5000/340 3295/4996/336 -f 3299/5001/341 3300/5002/342 3298/4999/339 -f 3301/5003/343 3278/4980/321 3300/5002/342 -f 3288/4989/329 3476/5004/344 3475/5005/345 -f 3462/5006/346 3460/5007/347 3468/5008/348 -f 3293/4994/334 3464/5009/349 3465/5010/350 -f 3289/4990/330 3464/5011/349 3291/4992/332 -f 3287/4988/328 3463/5012/351 3289/4990/330 -f 3285/4985/326 3462/5013/346 3287/4988/328 -f 3279/4978/319 3469/5014/352 3459/5015/353 -f 3279/4978/319 3458/5016/354 3281/4981/322 -f 3285/5017/326 3460/5018/347 3461/5019/355 -f 3301/5003/343 3468/5020/348 3469/5021/352 -f 3283/4983/324 3458/5022/354 3460/5023/347 -f 3299/5001/341 3467/5024/356 3468/5025/348 -f 3295/4996/336 3467/5026/356 3297/4998/338 -f 3473/5027/357 3477/5028/358 3481/5029/359 -f 3288/4989/329 3474/5030/360 3286/4986/327 -f 3284/4987/325 3474/5031/360 3473/5032/357 -f 3300/5002/342 3470/5033/361 3481/5034/359 -f 3278/4980/321 3471/5035/362 3470/5036/361 -f 3284/4984/325 3472/5037/363 3282/4982/323 -f 3300/5002/342 3480/5038/364 3298/4999/339 -f 3282/4982/323 3471/5039/362 3280/4979/320 -f 3298/4999/339 3479/5040/365 3296/4997/337 -f 3294/4995/335 3479/5041/365 3478/5042/366 -f 3294/4995/335 3477/5043/358 3292/4993/333 -f 3292/4993/333 3476/5044/344 3290/4991/331 -f 3279/4978/319 3281/4981/322 3280/4979/320 -f 3281/4981/322 3283/4983/324 3282/4982/323 -f 3283/4983/324 3285/5017/326 3284/4984/325 -f 3285/4985/326 3287/4988/328 3286/4986/327 -f 3287/4988/328 3289/4990/330 3288/4989/329 -f 3289/4990/330 3291/4992/332 3290/4991/331 -f 3291/4992/332 3293/4994/334 3292/4993/333 -f 3293/4994/334 3295/4996/336 3294/4995/335 -f 3295/4996/336 3297/4998/338 3296/4997/337 -f 3297/4998/338 3299/5001/341 3298/4999/339 -f 3293/4994/334 3465/5045/350 3466/5000/340 -f 3299/5001/341 3301/5003/343 3300/5002/342 -f 3301/5003/343 3279/4978/319 3278/4980/321 -f 3288/4989/329 3290/4991/331 3476/5004/344 -f 3460/5007/347 3458/5046/354 3459/5047/353 -f 3459/5047/353 3469/5048/352 3460/5007/347 -f 3469/5048/352 3468/5008/348 3460/5007/347 -f 3468/5008/348 3467/5049/356 3466/5050/340 -f 3466/5050/340 3465/5051/350 3468/5008/348 -f 3465/5051/350 3464/5052/349 3468/5008/348 -f 3464/5052/349 3463/5053/351 3462/5006/346 -f 3462/5006/346 3461/5054/355 3460/5007/347 -f 3464/5052/349 3462/5006/346 3468/5008/348 -f 3293/4994/334 3291/4992/332 3464/5009/349 -f 3289/4990/330 3463/5055/351 3464/5011/349 -f 3287/4988/328 3462/5056/346 3463/5012/351 -f 3285/4985/326 3461/5057/355 3462/5013/346 -f 3279/4978/319 3301/5003/343 3469/5014/352 -f 3279/4978/319 3459/5058/353 3458/5016/354 -f 3285/5017/326 3283/4983/324 3460/5018/347 -f 3301/5003/343 3299/5001/341 3468/5020/348 -f 3283/4983/324 3281/4981/322 3458/5022/354 -f 3299/5001/341 3297/4998/338 3467/5024/356 -f 3295/4996/336 3466/5059/340 3467/5026/356 -f 3481/5029/359 3470/5060/361 3471/5061/362 -f 3471/5061/362 3472/5062/363 3481/5029/359 -f 3472/5062/363 3473/5027/357 3481/5029/359 -f 3473/5027/357 3474/5063/360 3475/5064/345 -f 3475/5064/345 3476/5065/344 3477/5028/358 -f 3477/5028/358 3478/5066/366 3479/5067/365 -f 3479/5067/365 3480/5068/364 3477/5028/358 -f 3480/5068/364 3481/5029/359 3477/5028/358 -f 3473/5027/357 3475/5064/345 3477/5028/358 -f 3288/4989/329 3475/5069/345 3474/5030/360 -f 3284/4987/325 3286/4986/327 3474/5031/360 -f 3300/5002/342 3278/4980/321 3470/5033/361 -f 3278/4980/321 3280/4979/320 3471/5035/362 -f 3284/4984/325 3473/5070/357 3472/5037/363 -f 3300/5002/342 3481/5071/359 3480/5038/364 -f 3282/4982/323 3472/5072/363 3471/5039/362 -f 3298/4999/339 3480/5073/364 3479/5040/365 -f 3294/4995/335 3296/4997/337 3479/5041/365 -f 3294/4995/335 3478/5074/366 3477/5043/358 -f 3292/4993/333 3477/5075/358 3476/5044/344 +f 3279/4996/319 3280/4997/320 3278/4998/321 +f 3281/4999/322 3282/5000/323 3280/4997/320 +f 3283/5001/324 3284/5002/325 3282/5000/323 +f 3285/5003/326 3286/5004/327 3284/5005/325 +f 3287/5006/328 3288/5007/329 3286/5004/327 +f 3289/5008/330 3290/5009/331 3288/5007/329 +f 3291/5010/332 3292/5011/333 3290/5009/331 +f 3293/5012/334 3294/5013/335 3292/5011/333 +f 3295/5014/336 3296/5015/337 3294/5013/335 +f 3297/5016/338 3298/5017/339 3296/5015/337 +f 3293/5012/334 3466/5018/340 3295/5014/336 +f 3299/5019/341 3300/5020/342 3298/5017/339 +f 3301/5021/343 3278/4998/321 3300/5020/342 +f 3288/5007/329 3476/5022/344 3475/5023/345 +f 3462/5024/346 3460/5025/347 3468/5026/348 +f 3293/5012/334 3464/5027/349 3465/5028/350 +f 3289/5008/330 3464/5029/349 3291/5010/332 +f 3287/5006/328 3463/5030/351 3289/5008/330 +f 3285/5003/326 3462/5031/346 3287/5006/328 +f 3279/4996/319 3469/5032/352 3459/5033/353 +f 3279/4996/319 3458/5034/354 3281/4999/322 +f 3285/5035/326 3460/5036/347 3461/5037/355 +f 3301/5021/343 3468/5038/348 3469/5039/352 +f 3283/5001/324 3458/5040/354 3460/5041/347 +f 3299/5019/341 3467/5042/356 3468/5043/348 +f 3295/5014/336 3467/5044/356 3297/5016/338 +f 3473/5045/357 3477/5046/358 3481/5047/359 +f 3288/5007/329 3474/5048/360 3286/5004/327 +f 3284/5005/325 3474/5049/360 3473/5050/357 +f 3300/5020/342 3470/5051/361 3481/5052/359 +f 3278/4998/321 3471/5053/362 3470/5054/361 +f 3284/5002/325 3472/5055/363 3282/5000/323 +f 3300/5020/342 3480/5056/364 3298/5017/339 +f 3282/5000/323 3471/5057/362 3280/4997/320 +f 3298/5017/339 3479/5058/365 3296/5015/337 +f 3294/5013/335 3479/5059/365 3478/5060/366 +f 3294/5013/335 3477/5061/358 3292/5011/333 +f 3292/5011/333 3476/5062/344 3290/5009/331 +f 3279/4996/319 3281/4999/322 3280/4997/320 +f 3281/4999/322 3283/5001/324 3282/5000/323 +f 3283/5001/324 3285/5035/326 3284/5002/325 +f 3285/5003/326 3287/5006/328 3286/5004/327 +f 3287/5006/328 3289/5008/330 3288/5007/329 +f 3289/5008/330 3291/5010/332 3290/5009/331 +f 3291/5010/332 3293/5012/334 3292/5011/333 +f 3293/5012/334 3295/5014/336 3294/5013/335 +f 3295/5014/336 3297/5016/338 3296/5015/337 +f 3297/5016/338 3299/5019/341 3298/5017/339 +f 3293/5012/334 3465/5063/350 3466/5018/340 +f 3299/5019/341 3301/5021/343 3300/5020/342 +f 3301/5021/343 3279/4996/319 3278/4998/321 +f 3288/5007/329 3290/5009/331 3476/5022/344 +f 3460/5025/347 3458/5064/354 3459/5065/353 +f 3459/5065/353 3469/5066/352 3460/5025/347 +f 3469/5066/352 3468/5026/348 3460/5025/347 +f 3468/5026/348 3467/5067/356 3466/5068/340 +f 3466/5068/340 3465/5069/350 3468/5026/348 +f 3465/5069/350 3464/5070/349 3468/5026/348 +f 3464/5070/349 3463/5071/351 3462/5024/346 +f 3462/5024/346 3461/5072/355 3460/5025/347 +f 3464/5070/349 3462/5024/346 3468/5026/348 +f 3293/5012/334 3291/5010/332 3464/5027/349 +f 3289/5008/330 3463/5073/351 3464/5029/349 +f 3287/5006/328 3462/5074/346 3463/5030/351 +f 3285/5003/326 3461/5075/355 3462/5031/346 +f 3279/4996/319 3301/5021/343 3469/5032/352 +f 3279/4996/319 3459/5076/353 3458/5034/354 +f 3285/5035/326 3283/5001/324 3460/5036/347 +f 3301/5021/343 3299/5019/341 3468/5038/348 +f 3283/5001/324 3281/4999/322 3458/5040/354 +f 3299/5019/341 3297/5016/338 3467/5042/356 +f 3295/5014/336 3466/5077/340 3467/5044/356 +f 3481/5047/359 3470/5078/361 3471/5079/362 +f 3471/5079/362 3472/5080/363 3481/5047/359 +f 3472/5080/363 3473/5045/357 3481/5047/359 +f 3473/5045/357 3474/5081/360 3475/5082/345 +f 3475/5082/345 3476/5083/344 3477/5046/358 +f 3477/5046/358 3478/5084/366 3479/5085/365 +f 3479/5085/365 3480/5086/364 3477/5046/358 +f 3480/5086/364 3481/5047/359 3477/5046/358 +f 3473/5045/357 3475/5082/345 3477/5046/358 +f 3288/5007/329 3475/5087/345 3474/5048/360 +f 3284/5005/325 3286/5004/327 3474/5049/360 +f 3300/5020/342 3278/4998/321 3470/5051/361 +f 3278/4998/321 3280/4997/320 3471/5053/362 +f 3284/5002/325 3473/5088/357 3472/5055/363 +f 3300/5020/342 3481/5089/359 3480/5056/364 +f 3282/5000/323 3472/5090/363 3471/5057/362 +f 3298/5017/339 3480/5091/364 3479/5058/365 +f 3294/5013/335 3296/5015/337 3479/5059/365 +f 3294/5013/335 3478/5092/366 3477/5061/358 +f 3292/5011/333 3477/5093/358 3476/5062/344 o V2_Rope v 0.000000 9.000000 1.750000 v 0.000000 8.875000 1.750000 @@ -13186,139 +13216,139 @@ vn -0.6794 0.7194 0.1447 vn 0.6794 0.7194 0.1447 vn 0.7263 -0.6737 -0.1363 s off -f 3555/5076/367 3558/5077/367 3554/5078/367 -f 3560/5079/367 3557/5080/367 3556/5081/367 -f 3559/5082/367 3560/5079/367 3558/5077/367 -f 3639/5083/368 3642/5084/368 3643/5085/368 -f 3641/5086/368 3644/5087/368 3640/5088/368 -f 3644/5087/368 3643/5085/368 3642/5084/368 -f 3555/5076/367 3559/5082/367 3558/5077/367 -f 3560/5079/367 3561/5089/367 3557/5080/367 -f 3559/5082/367 3561/5089/367 3560/5079/367 -f 3639/5083/368 3638/5090/368 3642/5084/368 -f 3641/5086/368 3645/5091/368 3644/5087/368 -f 3644/5087/368 3645/5091/368 3643/5085/368 +f 3555/5094/367 3558/5095/367 3554/5096/367 +f 3560/5097/367 3557/5098/367 3556/5099/367 +f 3559/5100/367 3560/5097/367 3558/5095/367 +f 3639/5101/368 3642/5102/368 3643/5103/368 +f 3641/5104/368 3644/5105/368 3640/5106/368 +f 3644/5105/368 3643/5103/368 3642/5102/368 +f 3555/5094/367 3559/5100/367 3558/5095/367 +f 3560/5097/367 3561/5107/367 3557/5098/367 +f 3559/5100/367 3561/5107/367 3560/5097/367 +f 3639/5101/368 3638/5108/368 3642/5102/368 +f 3641/5104/368 3645/5109/368 3644/5105/368 +f 3644/5105/368 3645/5109/368 3643/5103/368 s 1 -f 3566/5092/369 3575/5093/370 3567/5094/371 -f 3564/5095/372 3573/5096/373 3565/5097/374 -f 3562/5098/375 3571/5099/376 3563/5100/377 -f 3562/5101/375 3576/5102/378 3570/5103/379 -f 3566/5092/369 3573/5096/373 3574/5104/380 -f 3563/5100/377 3572/5105/381 3564/5095/372 -f 3576/5102/378 3577/5106/382 3570/5103/379 -f 3573/5096/373 3581/5107/383 3574/5104/380 -f 3572/5105/381 3578/5108/384 3579/5109/385 -f 3575/5093/370 3581/5107/383 3582/5110/386 -f 3572/5105/381 3580/5111/387 3573/5096/373 -f 3571/5099/376 3577/5112/382 3578/5108/384 -f 3567/5094/371 3575/5093/370 3568/5113/388 -f 3575/5093/370 3582/5110/386 3568/5113/388 -f 3568/5113/388 3576/5102/378 3569/5114/389 -f 3576/5102/378 3568/5113/388 3583/5115/390 -f 3583/5115/390 3584/5116/391 3591/5117/392 -f 3583/5115/390 3585/5118/393 3577/5106/382 -f 3582/5110/386 3584/5116/391 3568/5119/388 -f 3580/5111/387 3589/5120/394 3581/5107/383 -f 3579/5109/385 3586/5121/395 3587/5122/396 -f 3581/5107/383 3590/5123/397 3582/5110/386 -f 3579/5109/385 3588/5124/398 3580/5111/387 -f 3577/5112/382 3586/5121/395 3578/5108/384 -f 3569/5114/389 3598/5125/399 3568/5126/388 -f 3567/5094/371 3596/5127/400 3566/5092/369 -f 3565/5097/374 3594/5128/401 3564/5095/372 -f 3563/5100/377 3592/5129/395 3562/5098/375 -f 3562/5101/375 3599/5130/402 3569/5114/389 -f 3568/5126/388 3597/5131/403 3567/5094/371 -f 3566/5092/369 3595/5132/404 3565/5097/374 -f 3564/5095/372 3593/5133/405 3563/5100/377 -f 3610/5134/368 3603/5135/381 3602/5136/368 -f 3608/5137/391 3601/5138/406 3600/5139/391 -f 3615/5140/388 3600/5139/391 3607/5141/388 -f 3613/5142/407 3606/5143/367 3605/5144/407 -f 3611/5145/381 3604/5146/396 3603/5135/381 -f 3609/5147/406 3602/5136/368 3601/5138/406 -f 3614/5148/367 3607/5141/388 3606/5143/367 -f 3612/5149/396 3605/5144/407 3604/5150/396 -f 3598/5125/399 3620/5151/408 3597/5131/403 -f 3596/5127/400 3618/5152/409 3595/5132/404 -f 3594/5128/401 3616/5153/410 3593/5133/405 -f 3598/5125/399 3622/5154/411 3621/5155/412 -f 3597/5131/403 3619/5156/397 3596/5127/400 -f 3594/5128/401 3618/5152/409 3617/5157/413 -f 3616/5153/410 3624/5158/414 3623/5159/415 -f 3622/5154/411 3628/5160/416 3621/5155/412 -f 3620/5151/408 3626/5161/417 3619/5156/397 -f 3617/5157/413 3625/5162/418 3624/5158/414 -f 3620/5151/408 3628/5160/416 3627/5163/419 -f 3618/5152/409 3626/5161/417 3625/5162/418 -f 3593/5133/405 3616/5153/410 3592/5164/395 -f 3616/5153/410 3623/5159/415 3592/5164/395 -f 3599/5130/402 3592/5165/395 3622/5154/411 -f 3622/5154/411 3592/5165/395 3629/5166/420 -f 3629/5166/420 3630/5167/396 3637/5168/407 -f 3629/5166/420 3636/5169/367 3628/5160/416 -f 3623/5159/415 3630/5170/396 3592/5171/395 -f 3627/5163/419 3634/5172/391 3626/5161/417 -f 3625/5162/418 3632/5173/368 3624/5158/414 -f 3628/5160/416 3635/5174/388 3627/5163/419 -f 3626/5161/417 3633/5175/406 3625/5162/418 -f 3623/5159/415 3632/5173/368 3631/5176/381 -f 3566/5092/369 3574/5104/380 3575/5093/370 -f 3564/5095/372 3572/5105/381 3573/5096/373 -f 3562/5098/375 3570/5177/379 3571/5099/376 -f 3562/5101/375 3569/5114/389 3576/5102/378 -f 3566/5092/369 3565/5097/374 3573/5096/373 -f 3563/5100/377 3571/5099/376 3572/5105/381 -f 3576/5102/378 3583/5115/390 3577/5106/382 -f 3573/5096/373 3580/5111/387 3581/5107/383 -f 3572/5105/381 3571/5099/376 3578/5108/384 -f 3575/5093/370 3574/5104/380 3581/5107/383 -f 3572/5105/381 3579/5109/385 3580/5111/387 -f 3571/5099/376 3570/5177/379 3577/5112/382 -f 3583/5115/390 3568/5119/388 3584/5116/391 -f 3583/5115/390 3591/5117/392 3585/5118/393 -f 3582/5110/386 3590/5123/397 3584/5116/391 -f 3580/5111/387 3588/5124/398 3589/5120/394 -f 3579/5109/385 3578/5108/384 3586/5121/395 -f 3581/5107/383 3589/5120/394 3590/5123/397 -f 3579/5109/385 3587/5122/396 3588/5124/398 -f 3577/5112/382 3585/5178/393 3586/5121/395 -f 3569/5114/389 3599/5130/402 3598/5125/399 -f 3567/5094/371 3597/5131/403 3596/5127/400 -f 3565/5097/374 3595/5132/404 3594/5128/401 -f 3563/5100/377 3593/5133/405 3592/5129/395 -f 3562/5101/375 3592/5179/395 3599/5130/402 -f 3568/5126/388 3598/5125/399 3597/5131/403 -f 3566/5092/369 3596/5127/400 3595/5132/404 -f 3564/5095/372 3594/5128/401 3593/5133/405 -f 3610/5134/368 3611/5145/381 3603/5135/381 -f 3608/5137/391 3609/5147/406 3601/5138/406 -f 3615/5140/388 3608/5137/391 3600/5139/391 -f 3613/5142/407 3614/5148/367 3606/5143/367 -f 3611/5145/381 3612/5180/396 3604/5146/396 -f 3609/5147/406 3610/5134/368 3602/5136/368 -f 3614/5148/367 3615/5140/388 3607/5141/388 -f 3612/5149/396 3613/5142/407 3605/5144/407 -f 3598/5125/399 3621/5155/412 3620/5151/408 -f 3596/5127/400 3619/5156/397 3618/5152/409 -f 3594/5128/401 3617/5157/413 3616/5153/410 -f 3598/5125/399 3599/5130/402 3622/5154/411 -f 3597/5131/403 3620/5151/408 3619/5156/397 -f 3594/5128/401 3595/5132/404 3618/5152/409 -f 3616/5153/410 3617/5157/413 3624/5158/414 -f 3622/5154/411 3629/5166/420 3628/5160/416 -f 3620/5151/408 3627/5163/419 3626/5161/417 -f 3617/5157/413 3618/5152/409 3625/5162/418 -f 3620/5151/408 3621/5155/412 3628/5160/416 -f 3618/5152/409 3619/5156/397 3626/5161/417 -f 3629/5166/420 3592/5181/395 3630/5167/396 -f 3629/5166/420 3637/5168/407 3636/5169/367 -f 3623/5159/415 3631/5176/381 3630/5170/396 -f 3627/5163/419 3635/5174/388 3634/5172/391 -f 3625/5162/418 3633/5175/406 3632/5173/368 -f 3628/5160/416 3636/5169/367 3635/5174/388 -f 3626/5161/417 3634/5172/391 3633/5175/406 -f 3623/5159/415 3624/5158/414 3632/5173/368 +f 3566/5110/369 3575/5111/370 3567/5112/371 +f 3564/5113/372 3573/5114/373 3565/5115/374 +f 3562/5116/375 3571/5117/376 3563/5118/377 +f 3562/5119/375 3576/5120/378 3570/5121/379 +f 3566/5110/369 3573/5114/373 3574/5122/380 +f 3563/5118/377 3572/5123/381 3564/5113/372 +f 3576/5120/378 3577/5124/382 3570/5121/379 +f 3573/5114/373 3581/5125/383 3574/5122/380 +f 3572/5123/381 3578/5126/384 3579/5127/385 +f 3575/5111/370 3581/5125/383 3582/5128/386 +f 3572/5123/381 3580/5129/387 3573/5114/373 +f 3571/5117/376 3577/5130/382 3578/5126/384 +f 3567/5112/371 3575/5111/370 3568/5131/388 +f 3575/5111/370 3582/5128/386 3568/5131/388 +f 3568/5131/388 3576/5120/378 3569/5132/389 +f 3576/5120/378 3568/5131/388 3583/5133/390 +f 3583/5133/390 3584/5134/391 3591/5135/392 +f 3583/5133/390 3585/5136/393 3577/5124/382 +f 3582/5128/386 3584/5134/391 3568/5137/388 +f 3580/5129/387 3589/5138/394 3581/5125/383 +f 3579/5127/385 3586/5139/395 3587/5140/396 +f 3581/5125/383 3590/5141/397 3582/5128/386 +f 3579/5127/385 3588/5142/398 3580/5129/387 +f 3577/5130/382 3586/5139/395 3578/5126/384 +f 3569/5132/389 3598/5143/399 3568/5144/388 +f 3567/5112/371 3596/5145/400 3566/5110/369 +f 3565/5115/374 3594/5146/401 3564/5113/372 +f 3563/5118/377 3592/5147/395 3562/5116/375 +f 3562/5119/375 3599/5148/402 3569/5132/389 +f 3568/5144/388 3597/5149/403 3567/5112/371 +f 3566/5110/369 3595/5150/404 3565/5115/374 +f 3564/5113/372 3593/5151/405 3563/5118/377 +f 3610/5152/368 3603/5153/381 3602/5154/368 +f 3608/5155/391 3601/5156/406 3600/5157/391 +f 3615/5158/388 3600/5157/391 3607/5159/388 +f 3613/5160/407 3606/5161/367 3605/5162/407 +f 3611/5163/381 3604/5164/396 3603/5153/381 +f 3609/5165/406 3602/5154/368 3601/5156/406 +f 3614/5166/367 3607/5159/388 3606/5161/367 +f 3612/5167/396 3605/5162/407 3604/5168/396 +f 3598/5143/399 3620/5169/408 3597/5149/403 +f 3596/5145/400 3618/5170/409 3595/5150/404 +f 3594/5146/401 3616/5171/410 3593/5151/405 +f 3598/5143/399 3622/5172/411 3621/5173/412 +f 3597/5149/403 3619/5174/397 3596/5145/400 +f 3594/5146/401 3618/5170/409 3617/5175/413 +f 3616/5171/410 3624/5176/414 3623/5177/415 +f 3622/5172/411 3628/5178/416 3621/5173/412 +f 3620/5169/408 3626/5179/417 3619/5174/397 +f 3617/5175/413 3625/5180/418 3624/5176/414 +f 3620/5169/408 3628/5178/416 3627/5181/419 +f 3618/5170/409 3626/5179/417 3625/5180/418 +f 3593/5151/405 3616/5171/410 3592/5182/395 +f 3616/5171/410 3623/5177/415 3592/5182/395 +f 3599/5148/402 3592/5183/395 3622/5172/411 +f 3622/5172/411 3592/5183/395 3629/5184/420 +f 3629/5184/420 3630/5185/396 3637/5186/407 +f 3629/5184/420 3636/5187/367 3628/5178/416 +f 3623/5177/415 3630/5188/396 3592/5189/395 +f 3627/5181/419 3634/5190/391 3626/5179/417 +f 3625/5180/418 3632/5191/368 3624/5176/414 +f 3628/5178/416 3635/5192/388 3627/5181/419 +f 3626/5179/417 3633/5193/406 3625/5180/418 +f 3623/5177/415 3632/5191/368 3631/5194/381 +f 3566/5110/369 3574/5122/380 3575/5111/370 +f 3564/5113/372 3572/5123/381 3573/5114/373 +f 3562/5116/375 3570/5195/379 3571/5117/376 +f 3562/5119/375 3569/5132/389 3576/5120/378 +f 3566/5110/369 3565/5115/374 3573/5114/373 +f 3563/5118/377 3571/5117/376 3572/5123/381 +f 3576/5120/378 3583/5133/390 3577/5124/382 +f 3573/5114/373 3580/5129/387 3581/5125/383 +f 3572/5123/381 3571/5117/376 3578/5126/384 +f 3575/5111/370 3574/5122/380 3581/5125/383 +f 3572/5123/381 3579/5127/385 3580/5129/387 +f 3571/5117/376 3570/5195/379 3577/5130/382 +f 3583/5133/390 3568/5137/388 3584/5134/391 +f 3583/5133/390 3591/5135/392 3585/5136/393 +f 3582/5128/386 3590/5141/397 3584/5134/391 +f 3580/5129/387 3588/5142/398 3589/5138/394 +f 3579/5127/385 3578/5126/384 3586/5139/395 +f 3581/5125/383 3589/5138/394 3590/5141/397 +f 3579/5127/385 3587/5140/396 3588/5142/398 +f 3577/5130/382 3585/5196/393 3586/5139/395 +f 3569/5132/389 3599/5148/402 3598/5143/399 +f 3567/5112/371 3597/5149/403 3596/5145/400 +f 3565/5115/374 3595/5150/404 3594/5146/401 +f 3563/5118/377 3593/5151/405 3592/5147/395 +f 3562/5119/375 3592/5197/395 3599/5148/402 +f 3568/5144/388 3598/5143/399 3597/5149/403 +f 3566/5110/369 3596/5145/400 3595/5150/404 +f 3564/5113/372 3594/5146/401 3593/5151/405 +f 3610/5152/368 3611/5163/381 3603/5153/381 +f 3608/5155/391 3609/5165/406 3601/5156/406 +f 3615/5158/388 3608/5155/391 3600/5157/391 +f 3613/5160/407 3614/5166/367 3606/5161/367 +f 3611/5163/381 3612/5198/396 3604/5164/396 +f 3609/5165/406 3610/5152/368 3602/5154/368 +f 3614/5166/367 3615/5158/388 3607/5159/388 +f 3612/5167/396 3613/5160/407 3605/5162/407 +f 3598/5143/399 3621/5173/412 3620/5169/408 +f 3596/5145/400 3619/5174/397 3618/5170/409 +f 3594/5146/401 3617/5175/413 3616/5171/410 +f 3598/5143/399 3599/5148/402 3622/5172/411 +f 3597/5149/403 3620/5169/408 3619/5174/397 +f 3594/5146/401 3595/5150/404 3618/5170/409 +f 3616/5171/410 3617/5175/413 3624/5176/414 +f 3622/5172/411 3629/5184/420 3628/5178/416 +f 3620/5169/408 3627/5181/419 3626/5179/417 +f 3617/5175/413 3618/5170/409 3625/5180/418 +f 3620/5169/408 3621/5173/412 3628/5178/416 +f 3618/5170/409 3619/5174/397 3626/5179/417 +f 3629/5184/420 3592/5199/395 3630/5185/396 +f 3629/5184/420 3637/5186/407 3636/5187/367 +f 3623/5177/415 3631/5194/381 3630/5188/396 +f 3627/5181/419 3635/5192/388 3634/5190/391 +f 3625/5180/418 3633/5193/406 3632/5191/368 +f 3628/5178/416 3636/5187/367 3635/5192/388 +f 3626/5179/417 3634/5190/391 3633/5193/406 +f 3623/5177/415 3624/5176/414 3632/5191/368 o V2_Pivot v 0.500000 1.250000 -1.625000 v 0.750000 1.250000 -1.625000 @@ -13402,42 +13432,42 @@ vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 3652/5182/421 3650/5183/421 3651/5184/421 -f 3649/5185/422 3652/5186/422 3647/5187/422 -f 3646/5188/423 3650/5183/423 3648/5189/423 -f 3648/5189/424 3653/5190/424 3649/5191/424 -f 3647/5187/425 3651/5192/425 3646/5188/425 -f 3660/5193/421 3658/5194/421 3659/5195/421 -f 3657/5196/422 3660/5197/422 3655/5198/422 -f 3654/5199/423 3658/5194/423 3656/5200/423 -f 3656/5200/424 3661/5201/424 3657/5202/424 -f 3655/5198/425 3659/5203/425 3654/5199/425 -f 3665/5204/422 3668/5205/422 3663/5206/422 -f 3662/5207/423 3666/5208/423 3664/5209/423 -f 3664/5209/424 3669/5210/424 3665/5211/424 -f 3663/5206/425 3667/5212/425 3662/5207/425 -f 3673/5213/422 3676/5214/422 3671/5215/422 -f 3670/5216/423 3674/5217/423 3672/5218/423 -f 3672/5218/424 3677/5219/424 3673/5220/424 -f 3671/5215/425 3675/5221/425 3670/5216/425 -f 3652/5182/421 3653/5190/421 3650/5183/421 -f 3649/5185/422 3653/5222/422 3652/5186/422 -f 3646/5188/423 3651/5192/423 3650/5183/423 -f 3648/5189/424 3650/5183/424 3653/5190/424 -f 3647/5187/425 3652/5186/425 3651/5192/425 -f 3660/5193/421 3661/5201/421 3658/5194/421 -f 3657/5196/422 3661/5223/422 3660/5197/422 -f 3654/5199/423 3659/5203/423 3658/5194/423 -f 3656/5200/424 3658/5194/424 3661/5201/424 -f 3655/5198/425 3660/5197/425 3659/5203/425 -f 3665/5204/422 3669/5224/422 3668/5205/422 -f 3662/5207/423 3667/5212/423 3666/5208/423 -f 3664/5209/424 3666/5208/424 3669/5210/424 -f 3663/5206/425 3668/5205/425 3667/5212/425 -f 3673/5213/422 3677/5225/422 3676/5214/422 -f 3670/5216/423 3675/5221/423 3674/5217/423 -f 3672/5218/424 3674/5217/424 3677/5219/424 -f 3671/5215/425 3676/5214/425 3675/5221/425 +f 3652/5200/421 3650/5201/421 3651/5202/421 +f 3649/5203/422 3652/5204/422 3647/5205/422 +f 3646/5206/423 3650/5201/423 3648/5207/423 +f 3648/5207/424 3653/5208/424 3649/5209/424 +f 3647/5205/425 3651/5210/425 3646/5206/425 +f 3660/5211/421 3658/5212/421 3659/5213/421 +f 3657/5214/422 3660/5215/422 3655/5216/422 +f 3654/5217/423 3658/5212/423 3656/5218/423 +f 3656/5218/424 3661/5219/424 3657/5220/424 +f 3655/5216/425 3659/5221/425 3654/5217/425 +f 3665/5222/422 3668/5223/422 3663/5224/422 +f 3662/5225/423 3666/5226/423 3664/5227/423 +f 3664/5227/424 3669/5228/424 3665/5229/424 +f 3663/5224/425 3667/5230/425 3662/5225/425 +f 3673/5231/422 3676/5232/422 3671/5233/422 +f 3670/5234/423 3674/5235/423 3672/5236/423 +f 3672/5236/424 3677/5237/424 3673/5238/424 +f 3671/5233/425 3675/5239/425 3670/5234/425 +f 3652/5200/421 3653/5208/421 3650/5201/421 +f 3649/5203/422 3653/5240/422 3652/5204/422 +f 3646/5206/423 3651/5210/423 3650/5201/423 +f 3648/5207/424 3650/5201/424 3653/5208/424 +f 3647/5205/425 3652/5204/425 3651/5210/425 +f 3660/5211/421 3661/5219/421 3658/5212/421 +f 3657/5214/422 3661/5241/422 3660/5215/422 +f 3654/5217/423 3659/5221/423 3658/5212/423 +f 3656/5218/424 3658/5212/424 3661/5219/424 +f 3655/5216/425 3660/5215/425 3659/5221/425 +f 3665/5222/422 3669/5242/422 3668/5223/422 +f 3662/5225/423 3667/5230/423 3666/5226/423 +f 3664/5227/424 3666/5226/424 3669/5228/424 +f 3663/5224/425 3668/5223/425 3667/5230/425 +f 3673/5231/422 3677/5243/422 3676/5232/422 +f 3670/5234/423 3675/5239/423 3674/5235/423 +f 3672/5236/424 3674/5235/424 3677/5237/424 +f 3671/5233/425 3676/5232/425 3675/5239/425 o V2_Erector v 0.500000 2.750000 -1.875000 v 0.500000 2.750000 -1.625000 @@ -13826,174 +13856,174 @@ vn -0.7071 0.0000 0.7071 vn 0.7071 0.0000 0.7071 vn 0.7071 0.0000 -0.7071 s off -f 3708/5226/426 3706/5227/426 3707/5228/426 -f 3704/5229/426 3702/5230/426 3703/5231/426 -f 3698/5232/427 3700/5233/427 3699/5234/427 -f 3694/5235/427 3696/5236/427 3695/5237/427 -f 3678/5238/427 3680/5239/427 3679/5240/427 -f 3682/5241/427 3684/5242/427 3683/5243/427 -f 3688/5244/426 3686/5245/426 3687/5246/426 -f 3692/5247/426 3690/5248/426 3691/5249/426 -f 3685/5250/428 3692/5251/428 3684/5252/428 -f 3683/5253/429 3690/5248/429 3682/5241/429 -f 3681/5254/428 3688/5255/428 3680/5256/428 -f 3679/5257/429 3686/5245/429 3678/5238/429 -f 3682/5241/430 3693/5258/430 3685/5259/430 -f 3684/5252/431 3691/5260/431 3683/5253/431 -f 3678/5238/430 3689/5261/430 3681/5262/430 -f 3680/5256/431 3687/5263/431 3679/5257/431 -f 3701/5264/428 3708/5265/428 3700/5266/428 -f 3699/5267/429 3706/5227/429 3698/5232/429 -f 3697/5268/428 3704/5269/428 3696/5270/428 -f 3695/5271/429 3702/5230/429 3694/5235/429 -f 3698/5232/430 3709/5272/430 3701/5273/430 -f 3700/5266/431 3707/5274/431 3699/5267/431 -f 3694/5235/430 3705/5275/430 3697/5276/430 -f 3696/5270/431 3703/5277/431 3695/5271/431 -f 3714/5278/426 3710/5279/426 3715/5280/426 -f 3716/5281/426 3713/5282/426 3717/5283/426 -f 3710/5279/426 3713/5282/426 3711/5284/426 -f 3725/5285/426 3722/5286/426 3724/5287/426 -f 3719/5288/426 3722/5286/426 3718/5289/426 -f 3721/5290/426 3725/5285/426 3720/5291/426 -f 3723/5292/431 3730/5293/431 3722/5294/431 -f 3725/5285/432 3728/5295/432 3720/5296/432 -f 3722/5294/433 3726/5297/433 3718/5289/433 -f 3724/5287/430 3733/5298/430 3725/5285/430 -f 3721/5290/434 3731/5299/434 3723/5292/434 -f 3719/5300/435 3732/5301/435 3724/5287/435 -f 3727/5302/427 3730/5303/427 3732/5301/427 -f 3733/5298/427 3730/5303/427 3731/5304/427 -f 3729/5305/427 3733/5298/427 3731/5304/427 -f 3741/5306/428 3735/5307/428 3737/5308/428 -f 3740/5309/427 3737/5310/427 3736/5311/427 -f 3738/5312/429 3736/5311/429 3734/5313/429 -f 3735/5307/426 3738/5312/426 3734/5313/426 -f 3749/5314/428 3743/5315/428 3745/5316/428 -f 3748/5317/427 3745/5318/427 3744/5319/427 -f 3746/5320/429 3744/5319/429 3742/5321/429 -f 3743/5315/426 3746/5320/426 3742/5321/426 -f 3757/5322/428 3751/5323/428 3753/5324/428 -f 3756/5325/427 3753/5326/427 3752/5327/427 -f 3754/5328/429 3752/5327/429 3750/5329/429 -f 3751/5323/426 3754/5328/426 3750/5329/426 -f 3765/5330/428 3759/5331/428 3761/5332/428 -f 3764/5333/427 3761/5334/427 3760/5335/427 -f 3762/5336/429 3760/5335/429 3758/5337/429 -f 3759/5331/426 3762/5336/426 3758/5337/426 -f 3773/5338/428 3767/5339/428 3769/5340/428 -f 3772/5341/427 3769/5342/427 3768/5343/427 -f 3770/5344/429 3768/5343/429 3766/5345/429 -f 3767/5339/426 3770/5344/426 3766/5345/426 -f 3781/5346/428 3775/5347/428 3777/5348/428 -f 3780/5349/427 3777/5350/427 3776/5351/427 -f 3778/5352/429 3776/5351/429 3774/5353/429 -f 3775/5347/426 3778/5352/426 3774/5353/426 -f 3783/5354/430 3786/5355/430 3782/5356/430 -f 3785/5357/430 3788/5358/430 3789/5359/430 -f 3791/5360/430 3794/5361/430 3790/5362/430 -f 3793/5363/430 3796/5364/430 3797/5365/430 -f 3799/5366/430 3802/5367/430 3798/5368/430 -f 3801/5369/430 3804/5370/430 3805/5371/430 -f 3712/5372/431 3810/5373/431 3713/5374/431 -f 3710/5279/432 3808/5375/432 3715/5376/432 -f 3713/5374/433 3806/5377/433 3717/5283/433 -f 3711/5284/430 3813/5378/430 3710/5279/430 -f 3714/5278/434 3811/5379/434 3712/5372/434 -f 3716/5380/435 3812/5381/435 3711/5284/435 -f 3807/5382/427 3810/5383/427 3812/5381/427 -f 3813/5378/427 3810/5383/427 3811/5384/427 -f 3809/5385/427 3813/5378/427 3811/5384/427 -f 3818/5386/431 3815/5387/431 3814/5388/431 -f 3817/5389/431 3820/5390/431 3816/5391/431 -f 3826/5392/431 3823/5393/431 3822/5394/431 -f 3825/5395/431 3828/5396/431 3824/5397/431 -f 3834/5398/431 3831/5399/431 3830/5400/431 -f 3833/5401/431 3836/5402/431 3832/5403/431 -f 3708/5226/426 3709/5272/426 3706/5227/426 -f 3704/5229/426 3705/5275/426 3702/5230/426 -f 3698/5232/427 3701/5273/427 3700/5233/427 -f 3694/5235/427 3697/5276/427 3696/5236/427 -f 3678/5238/427 3681/5262/427 3680/5239/427 -f 3682/5241/427 3685/5259/427 3684/5242/427 -f 3688/5244/426 3689/5261/426 3686/5245/426 -f 3692/5247/426 3693/5258/426 3690/5248/426 -f 3685/5250/428 3693/5404/428 3692/5251/428 -f 3683/5253/429 3691/5260/429 3690/5248/429 -f 3681/5254/428 3689/5405/428 3688/5255/428 -f 3679/5257/429 3687/5263/429 3686/5245/429 -f 3682/5241/430 3690/5248/430 3693/5258/430 -f 3684/5252/431 3692/5251/431 3691/5260/431 -f 3678/5238/430 3686/5245/430 3689/5261/430 -f 3680/5256/431 3688/5255/431 3687/5263/431 -f 3701/5264/428 3709/5406/428 3708/5265/428 -f 3699/5267/429 3707/5274/429 3706/5227/429 -f 3697/5268/428 3705/5407/428 3704/5269/428 -f 3695/5271/429 3703/5277/429 3702/5230/429 -f 3698/5232/430 3706/5227/430 3709/5272/430 -f 3700/5266/431 3708/5265/431 3707/5274/431 -f 3694/5235/430 3702/5230/430 3705/5275/430 -f 3696/5270/431 3704/5269/431 3703/5277/431 -f 3714/5278/426 3712/5408/426 3710/5279/426 -f 3716/5281/426 3711/5284/426 3713/5282/426 -f 3710/5279/426 3712/5408/426 3713/5282/426 -f 3725/5285/426 3723/5409/426 3722/5286/426 -f 3719/5288/426 3724/5287/426 3722/5286/426 -f 3721/5290/426 3723/5409/426 3725/5285/426 -f 3723/5292/431 3731/5299/431 3730/5293/431 -f 3725/5285/432 3733/5298/432 3728/5295/432 -f 3722/5294/433 3730/5293/433 3726/5297/433 -f 3724/5287/430 3732/5301/430 3733/5298/430 -f 3721/5290/434 3729/5410/434 3731/5299/434 -f 3719/5300/435 3727/5411/435 3732/5301/435 -f 3727/5302/427 3726/5412/427 3730/5303/427 -f 3733/5298/427 3732/5301/427 3730/5303/427 -f 3729/5305/427 3728/5413/427 3733/5298/427 -f 3741/5306/428 3739/5414/428 3735/5307/428 -f 3740/5309/427 3741/5415/427 3737/5310/427 -f 3738/5312/429 3740/5309/429 3736/5311/429 -f 3735/5307/426 3739/5414/426 3738/5312/426 -f 3749/5314/428 3747/5416/428 3743/5315/428 -f 3748/5317/427 3749/5417/427 3745/5318/427 -f 3746/5320/429 3748/5317/429 3744/5319/429 -f 3743/5315/426 3747/5416/426 3746/5320/426 -f 3757/5322/428 3755/5418/428 3751/5323/428 -f 3756/5325/427 3757/5419/427 3753/5326/427 -f 3754/5328/429 3756/5325/429 3752/5327/429 -f 3751/5323/426 3755/5418/426 3754/5328/426 -f 3765/5330/428 3763/5420/428 3759/5331/428 -f 3764/5333/427 3765/5421/427 3761/5334/427 -f 3762/5336/429 3764/5333/429 3760/5335/429 -f 3759/5331/426 3763/5420/426 3762/5336/426 -f 3773/5338/428 3771/5422/428 3767/5339/428 -f 3772/5341/427 3773/5423/427 3769/5342/427 -f 3770/5344/429 3772/5341/429 3768/5343/429 -f 3767/5339/426 3771/5422/426 3770/5344/426 -f 3781/5346/428 3779/5424/428 3775/5347/428 -f 3780/5349/427 3781/5425/427 3777/5350/427 -f 3778/5352/429 3780/5349/429 3776/5351/429 -f 3775/5347/426 3779/5424/426 3778/5352/426 -f 3783/5354/430 3787/5426/430 3786/5355/430 -f 3785/5357/430 3784/5427/430 3788/5358/430 -f 3791/5360/430 3795/5428/430 3794/5361/430 -f 3793/5363/430 3792/5429/430 3796/5364/430 -f 3799/5366/430 3803/5430/430 3802/5367/430 -f 3801/5369/430 3800/5431/430 3804/5370/430 -f 3712/5372/431 3811/5379/431 3810/5373/431 -f 3710/5279/432 3813/5378/432 3808/5375/432 -f 3713/5374/433 3810/5373/433 3806/5377/433 -f 3711/5284/430 3812/5381/430 3813/5378/430 -f 3714/5278/434 3809/5432/434 3811/5379/434 -f 3716/5380/435 3807/5433/435 3812/5381/435 -f 3807/5382/427 3806/5434/427 3810/5383/427 -f 3813/5378/427 3812/5381/427 3810/5383/427 -f 3809/5385/427 3808/5435/427 3813/5378/427 -f 3818/5386/431 3819/5436/431 3815/5387/431 -f 3817/5389/431 3821/5437/431 3820/5390/431 -f 3826/5392/431 3827/5438/431 3823/5393/431 -f 3825/5395/431 3829/5439/431 3828/5396/431 -f 3834/5398/431 3835/5440/431 3831/5399/431 -f 3833/5401/431 3837/5441/431 3836/5402/431 +f 3708/5244/426 3706/5245/426 3707/5246/426 +f 3704/5247/426 3702/5248/426 3703/5249/426 +f 3698/5250/427 3700/5251/427 3699/5252/427 +f 3694/5253/427 3696/5254/427 3695/5255/427 +f 3678/5256/427 3680/5257/427 3679/5258/427 +f 3682/5259/427 3684/5260/427 3683/5261/427 +f 3688/5262/426 3686/5263/426 3687/5264/426 +f 3692/5265/426 3690/5266/426 3691/5267/426 +f 3685/5268/428 3692/5269/428 3684/5270/428 +f 3683/5271/429 3690/5266/429 3682/5259/429 +f 3681/5272/428 3688/5273/428 3680/5274/428 +f 3679/5275/429 3686/5263/429 3678/5256/429 +f 3682/5259/430 3693/5276/430 3685/5277/430 +f 3684/5270/431 3691/5278/431 3683/5271/431 +f 3678/5256/430 3689/5279/430 3681/5280/430 +f 3680/5274/431 3687/5281/431 3679/5275/431 +f 3701/5282/428 3708/5283/428 3700/5284/428 +f 3699/5285/429 3706/5245/429 3698/5250/429 +f 3697/5286/428 3704/5287/428 3696/5288/428 +f 3695/5289/429 3702/5248/429 3694/5253/429 +f 3698/5250/430 3709/5290/430 3701/5291/430 +f 3700/5284/431 3707/5292/431 3699/5285/431 +f 3694/5253/430 3705/5293/430 3697/5294/430 +f 3696/5288/431 3703/5295/431 3695/5289/431 +f 3714/5296/426 3710/5297/426 3715/5298/426 +f 3716/5299/426 3713/5300/426 3717/5301/426 +f 3710/5297/426 3713/5300/426 3711/5302/426 +f 3725/5303/426 3722/5304/426 3724/5305/426 +f 3719/5306/426 3722/5304/426 3718/5307/426 +f 3721/5308/426 3725/5303/426 3720/5309/426 +f 3723/5310/431 3730/5311/431 3722/5312/431 +f 3725/5303/432 3728/5313/432 3720/5314/432 +f 3722/5312/433 3726/5315/433 3718/5307/433 +f 3724/5305/430 3733/5316/430 3725/5303/430 +f 3721/5308/434 3731/5317/434 3723/5310/434 +f 3719/5318/435 3732/5319/435 3724/5305/435 +f 3727/5320/427 3730/5321/427 3732/5319/427 +f 3733/5316/427 3730/5321/427 3731/5322/427 +f 3729/5323/427 3733/5316/427 3731/5322/427 +f 3741/5324/428 3735/5325/428 3737/5326/428 +f 3740/5327/427 3737/5328/427 3736/5329/427 +f 3738/5330/429 3736/5329/429 3734/5331/429 +f 3735/5325/426 3738/5330/426 3734/5331/426 +f 3749/5332/428 3743/5333/428 3745/5334/428 +f 3748/5335/427 3745/5336/427 3744/5337/427 +f 3746/5338/429 3744/5337/429 3742/5339/429 +f 3743/5333/426 3746/5338/426 3742/5339/426 +f 3757/5340/428 3751/5341/428 3753/5342/428 +f 3756/5343/427 3753/5344/427 3752/5345/427 +f 3754/5346/429 3752/5345/429 3750/5347/429 +f 3751/5341/426 3754/5346/426 3750/5347/426 +f 3765/5348/428 3759/5349/428 3761/5350/428 +f 3764/5351/427 3761/5352/427 3760/5353/427 +f 3762/5354/429 3760/5353/429 3758/5355/429 +f 3759/5349/426 3762/5354/426 3758/5355/426 +f 3773/5356/428 3767/5357/428 3769/5358/428 +f 3772/5359/427 3769/5360/427 3768/5361/427 +f 3770/5362/429 3768/5361/429 3766/5363/429 +f 3767/5357/426 3770/5362/426 3766/5363/426 +f 3781/5364/428 3775/5365/428 3777/5366/428 +f 3780/5367/427 3777/5368/427 3776/5369/427 +f 3778/5370/429 3776/5369/429 3774/5371/429 +f 3775/5365/426 3778/5370/426 3774/5371/426 +f 3783/5372/430 3786/5373/430 3782/5374/430 +f 3785/5375/430 3788/5376/430 3789/5377/430 +f 3791/5378/430 3794/5379/430 3790/5380/430 +f 3793/5381/430 3796/5382/430 3797/5383/430 +f 3799/5384/430 3802/5385/430 3798/5386/430 +f 3801/5387/430 3804/5388/430 3805/5389/430 +f 3712/5390/431 3810/5391/431 3713/5392/431 +f 3710/5297/432 3808/5393/432 3715/5394/432 +f 3713/5392/433 3806/5395/433 3717/5301/433 +f 3711/5302/430 3813/5396/430 3710/5297/430 +f 3714/5296/434 3811/5397/434 3712/5390/434 +f 3716/5398/435 3812/5399/435 3711/5302/435 +f 3807/5400/427 3810/5401/427 3812/5399/427 +f 3813/5396/427 3810/5401/427 3811/5402/427 +f 3809/5403/427 3813/5396/427 3811/5402/427 +f 3818/5404/431 3815/5405/431 3814/5406/431 +f 3817/5407/431 3820/5408/431 3816/5409/431 +f 3826/5410/431 3823/5411/431 3822/5412/431 +f 3825/5413/431 3828/5414/431 3824/5415/431 +f 3834/5416/431 3831/5417/431 3830/5418/431 +f 3833/5419/431 3836/5420/431 3832/5421/431 +f 3708/5244/426 3709/5290/426 3706/5245/426 +f 3704/5247/426 3705/5293/426 3702/5248/426 +f 3698/5250/427 3701/5291/427 3700/5251/427 +f 3694/5253/427 3697/5294/427 3696/5254/427 +f 3678/5256/427 3681/5280/427 3680/5257/427 +f 3682/5259/427 3685/5277/427 3684/5260/427 +f 3688/5262/426 3689/5279/426 3686/5263/426 +f 3692/5265/426 3693/5276/426 3690/5266/426 +f 3685/5268/428 3693/5422/428 3692/5269/428 +f 3683/5271/429 3691/5278/429 3690/5266/429 +f 3681/5272/428 3689/5423/428 3688/5273/428 +f 3679/5275/429 3687/5281/429 3686/5263/429 +f 3682/5259/430 3690/5266/430 3693/5276/430 +f 3684/5270/431 3692/5269/431 3691/5278/431 +f 3678/5256/430 3686/5263/430 3689/5279/430 +f 3680/5274/431 3688/5273/431 3687/5281/431 +f 3701/5282/428 3709/5424/428 3708/5283/428 +f 3699/5285/429 3707/5292/429 3706/5245/429 +f 3697/5286/428 3705/5425/428 3704/5287/428 +f 3695/5289/429 3703/5295/429 3702/5248/429 +f 3698/5250/430 3706/5245/430 3709/5290/430 +f 3700/5284/431 3708/5283/431 3707/5292/431 +f 3694/5253/430 3702/5248/430 3705/5293/430 +f 3696/5288/431 3704/5287/431 3703/5295/431 +f 3714/5296/426 3712/5426/426 3710/5297/426 +f 3716/5299/426 3711/5302/426 3713/5300/426 +f 3710/5297/426 3712/5426/426 3713/5300/426 +f 3725/5303/426 3723/5427/426 3722/5304/426 +f 3719/5306/426 3724/5305/426 3722/5304/426 +f 3721/5308/426 3723/5427/426 3725/5303/426 +f 3723/5310/431 3731/5317/431 3730/5311/431 +f 3725/5303/432 3733/5316/432 3728/5313/432 +f 3722/5312/433 3730/5311/433 3726/5315/433 +f 3724/5305/430 3732/5319/430 3733/5316/430 +f 3721/5308/434 3729/5428/434 3731/5317/434 +f 3719/5318/435 3727/5429/435 3732/5319/435 +f 3727/5320/427 3726/5430/427 3730/5321/427 +f 3733/5316/427 3732/5319/427 3730/5321/427 +f 3729/5323/427 3728/5431/427 3733/5316/427 +f 3741/5324/428 3739/5432/428 3735/5325/428 +f 3740/5327/427 3741/5433/427 3737/5328/427 +f 3738/5330/429 3740/5327/429 3736/5329/429 +f 3735/5325/426 3739/5432/426 3738/5330/426 +f 3749/5332/428 3747/5434/428 3743/5333/428 +f 3748/5335/427 3749/5435/427 3745/5336/427 +f 3746/5338/429 3748/5335/429 3744/5337/429 +f 3743/5333/426 3747/5434/426 3746/5338/426 +f 3757/5340/428 3755/5436/428 3751/5341/428 +f 3756/5343/427 3757/5437/427 3753/5344/427 +f 3754/5346/429 3756/5343/429 3752/5345/429 +f 3751/5341/426 3755/5436/426 3754/5346/426 +f 3765/5348/428 3763/5438/428 3759/5349/428 +f 3764/5351/427 3765/5439/427 3761/5352/427 +f 3762/5354/429 3764/5351/429 3760/5353/429 +f 3759/5349/426 3763/5438/426 3762/5354/426 +f 3773/5356/428 3771/5440/428 3767/5357/428 +f 3772/5359/427 3773/5441/427 3769/5360/427 +f 3770/5362/429 3772/5359/429 3768/5361/429 +f 3767/5357/426 3771/5440/426 3770/5362/426 +f 3781/5364/428 3779/5442/428 3775/5365/428 +f 3780/5367/427 3781/5443/427 3777/5368/427 +f 3778/5370/429 3780/5367/429 3776/5369/429 +f 3775/5365/426 3779/5442/426 3778/5370/426 +f 3783/5372/430 3787/5444/430 3786/5373/430 +f 3785/5375/430 3784/5445/430 3788/5376/430 +f 3791/5378/430 3795/5446/430 3794/5379/430 +f 3793/5381/430 3792/5447/430 3796/5382/430 +f 3799/5384/430 3803/5448/430 3802/5385/430 +f 3801/5387/430 3800/5449/430 3804/5388/430 +f 3712/5390/431 3811/5397/431 3810/5391/431 +f 3710/5297/432 3813/5396/432 3808/5393/432 +f 3713/5392/433 3810/5391/433 3806/5395/433 +f 3711/5302/430 3812/5399/430 3813/5396/430 +f 3714/5296/434 3809/5450/434 3811/5397/434 +f 3716/5398/435 3807/5451/435 3812/5399/435 +f 3807/5400/427 3806/5452/427 3810/5401/427 +f 3813/5396/427 3812/5399/427 3810/5401/427 +f 3809/5403/427 3808/5453/427 3813/5396/427 +f 3818/5404/431 3819/5454/431 3815/5405/431 +f 3817/5407/431 3821/5455/431 3820/5408/431 +f 3826/5410/431 3827/5456/431 3823/5411/431 +f 3825/5413/431 3829/5457/431 3828/5414/431 +f 3834/5416/431 3835/5458/431 3831/5417/431 +f 3833/5419/431 3837/5459/431 3836/5420/431 o Pad v -4.500000 0.000000 4.500000 v 4.500000 0.000000 4.500000 @@ -14156,60 +14186,60 @@ vn 0.0000 -0.7071 0.7071 vn 0.7071 0.7071 0.0000 vn -0.7071 0.7071 0.0000 s off -f 3839/5442/436 3849/5443/436 3843/5444/436 -f 3848/5445/437 3847/5446/437 3846/5447/437 -f 3843/5444/438 3848/5448/438 3842/5449/438 -f 3840/5450/437 3845/5451/437 3841/5452/437 -f 3839/5453/439 3842/5454/439 3838/5455/439 -f 3842/5456/440 3846/5457/440 3838/5458/440 -f 3838/5459/441 3847/5460/441 3839/5442/441 -f 3852/5461/439 3851/5462/439 3850/5463/439 -f 3845/5464/436 3850/5465/436 3841/5466/436 -f 3840/5467/440 3853/5468/440 3844/5469/440 -f 3844/5470/438 3852/5471/438 3845/5464/438 -f 3841/5466/441 3851/5472/441 3840/5473/441 -f 3859/5474/438 3855/5475/438 3856/5476/438 -f 3854/5477/438 3861/5478/438 3857/5479/438 -f 3865/5480/442 3862/5481/442 3863/5482/442 -f 3867/5483/441 3864/5484/441 3865/5480/441 -f 3869/5485/443 3866/5486/443 3867/5483/443 -f 3884/5487/440 3876/5488/440 3882/5489/440 -f 3878/5490/440 3880/5491/440 3874/5492/440 -f 3862/5493/436 3864/5494/436 3870/5495/436 -f 3868/5496/436 3872/5497/436 3866/5498/436 -f 3869/5499/440 3867/5500/440 3873/5501/440 -f 3863/5502/440 3871/5503/440 3865/5504/440 -f 3879/5505/436 3875/5506/436 3881/5507/436 -f 3885/5508/436 3883/5509/436 3877/5510/436 -f 3878/5511/443 3881/5512/443 3880/5513/443 -f 3880/5513/441 3883/5514/441 3882/5515/441 -f 3882/5515/442 3885/5516/442 3884/5517/442 -f 3887/5518/444 3891/5519/444 3890/5520/444 -f 3890/5520/445 3888/5521/445 3886/5522/445 -f 3889/5523/441 3886/5524/441 3888/5525/441 -f 3839/5442/436 3847/5460/436 3849/5443/436 -f 3848/5445/437 3849/5526/437 3847/5446/437 -f 3843/5444/438 3849/5443/438 3848/5448/438 -f 3840/5450/437 3844/5527/437 3845/5451/437 -f 3839/5453/439 3843/5528/439 3842/5454/439 -f 3842/5456/440 3848/5529/440 3846/5457/440 -f 3838/5459/441 3846/5530/441 3847/5460/441 -f 3852/5461/439 3853/5531/439 3851/5462/439 -f 3845/5464/436 3852/5471/436 3850/5465/436 -f 3840/5467/440 3851/5532/440 3853/5468/440 -f 3844/5470/438 3853/5533/438 3852/5471/438 -f 3841/5466/441 3850/5465/441 3851/5472/441 -f 3859/5474/438 3858/5534/438 3855/5475/438 -f 3854/5477/438 3860/5535/438 3861/5478/438 -f 3865/5480/442 3864/5484/442 3862/5481/442 -f 3867/5483/441 3866/5486/441 3864/5484/441 -f 3869/5485/443 3868/5536/443 3866/5486/443 -f 3878/5511/443 3879/5537/443 3881/5512/443 -f 3880/5513/441 3881/5512/441 3883/5514/441 -f 3882/5515/442 3883/5514/442 3885/5516/442 -f 3887/5518/444 3889/5523/444 3891/5519/444 -f 3890/5520/445 3891/5519/445 3888/5521/445 -f 3889/5523/441 3887/5518/441 3886/5524/441 +f 3839/5460/436 3849/5461/436 3843/5462/436 +f 3848/5463/437 3847/5464/437 3846/5465/437 +f 3843/5462/438 3848/5466/438 3842/5467/438 +f 3840/5468/437 3845/5469/437 3841/5470/437 +f 3839/5471/439 3842/5472/439 3838/5473/439 +f 3842/5474/440 3846/5475/440 3838/5476/440 +f 3838/5477/441 3847/5478/441 3839/5460/441 +f 3852/5479/439 3851/5480/439 3850/5481/439 +f 3845/5482/436 3850/5483/436 3841/5484/436 +f 3840/5485/440 3853/5486/440 3844/5487/440 +f 3844/5488/438 3852/5489/438 3845/5482/438 +f 3841/5484/441 3851/5490/441 3840/5491/441 +f 3859/5492/438 3855/5493/438 3856/5494/438 +f 3854/5495/438 3861/5496/438 3857/5497/438 +f 3865/5498/442 3862/5499/442 3863/5500/442 +f 3867/5501/441 3864/5502/441 3865/5498/441 +f 3869/5503/443 3866/5504/443 3867/5501/443 +f 3884/5505/440 3876/5506/440 3882/5507/440 +f 3878/5508/440 3880/5509/440 3874/5510/440 +f 3862/5511/436 3864/5512/436 3870/5513/436 +f 3868/5514/436 3872/5515/436 3866/5516/436 +f 3869/5517/440 3867/5518/440 3873/5519/440 +f 3863/5520/440 3871/5521/440 3865/5522/440 +f 3879/5523/436 3875/5524/436 3881/5525/436 +f 3885/5526/436 3883/5527/436 3877/5528/436 +f 3878/5529/443 3881/5530/443 3880/5531/443 +f 3880/5531/441 3883/5532/441 3882/5533/441 +f 3882/5533/442 3885/5534/442 3884/5535/442 +f 3887/5536/444 3891/5537/444 3890/5538/444 +f 3890/5538/445 3888/5539/445 3886/5540/445 +f 3889/5541/441 3886/5542/441 3888/5543/441 +f 3839/5460/436 3847/5478/436 3849/5461/436 +f 3848/5463/437 3849/5544/437 3847/5464/437 +f 3843/5462/438 3849/5461/438 3848/5466/438 +f 3840/5468/437 3844/5545/437 3845/5469/437 +f 3839/5471/439 3843/5546/439 3842/5472/439 +f 3842/5474/440 3848/5547/440 3846/5475/440 +f 3838/5477/441 3846/5548/441 3847/5478/441 +f 3852/5479/439 3853/5549/439 3851/5480/439 +f 3845/5482/436 3852/5489/436 3850/5483/436 +f 3840/5485/440 3851/5550/440 3853/5486/440 +f 3844/5488/438 3853/5551/438 3852/5489/438 +f 3841/5484/441 3850/5483/441 3851/5490/441 +f 3859/5492/438 3858/5552/438 3855/5493/438 +f 3854/5495/438 3860/5553/438 3861/5496/438 +f 3865/5498/442 3864/5502/442 3862/5499/442 +f 3867/5501/441 3866/5504/441 3864/5502/441 +f 3869/5503/443 3868/5554/443 3866/5504/443 +f 3878/5529/443 3879/5555/443 3881/5530/443 +f 3880/5531/441 3881/5530/441 3883/5532/441 +f 3882/5533/442 3883/5532/442 3885/5534/442 +f 3887/5536/444 3889/5541/444 3891/5537/444 +f 3890/5538/445 3891/5537/445 3888/5539/445 +f 3889/5541/441 3887/5536/441 3886/5542/441 o Micro_Missile v 0.324760 3.500000 -0.187500 v 0.156250 3.500000 -0.270633 @@ -14814,423 +14844,423 @@ vn 0.9659 0.0000 -0.2588 vn -0.9659 0.0000 -0.2588 vn -0.9659 0.0000 0.2588 s off -f 3892/5538/446 3893/5539/446 3894/5540/446 -f 3895/5541/446 3896/5542/446 3893/5539/446 -f 3897/5543/446 3896/5544/446 3898/5545/446 -f 3899/5546/446 3900/5547/446 3897/5543/446 -f 3901/5548/446 3902/5549/446 3899/5546/446 -f 3903/5550/446 3904/5551/446 3901/5548/446 -f 3905/5552/446 3906/5553/446 3903/5550/446 -f 3907/5554/446 3908/5555/446 3905/5552/446 -f 3907/5554/446 3909/5556/446 3910/5557/446 -f 3911/5558/446 3912/5559/446 3909/5556/446 -f 3913/5560/446 3912/5559/446 3914/5561/446 -f 3892/5538/446 3915/5562/446 3913/5560/446 -f 3916/5563/447 3917/5564/447 3918/5565/447 -f 3919/5566/447 3920/5567/447 3916/5563/447 -f 3921/5568/447 3922/5569/447 3919/5566/447 -f 3923/5570/447 3924/5571/447 3921/5568/447 -f 3925/5572/447 3926/5573/447 3923/5574/447 -f 3925/5572/447 3927/5575/447 3928/5576/447 -f 3929/5577/447 3930/5578/447 3927/5575/447 -f 3931/5579/447 3930/5578/447 3932/5580/447 -f 3933/5581/447 3934/5582/447 3931/5579/447 -f 3933/5581/447 3935/5583/447 3936/5584/447 -f 3937/5585/447 3935/5583/447 3938/5586/447 -f 3918/5565/447 3939/5587/447 3937/5585/447 -f 3940/5588/447 3941/5589/447 3942/5590/447 -f 3943/5591/447 3944/5592/447 3940/5588/447 -f 3945/5593/447 3946/5594/447 3943/5591/447 -f 3947/5595/447 3948/5596/447 3945/5593/447 -f 3949/5597/447 3950/5598/447 3947/5599/447 -f 3949/5597/447 3951/5600/447 3952/5601/447 -f 3953/5602/447 3954/5603/447 3951/5600/447 -f 3955/5604/447 3954/5603/447 3956/5605/447 -f 3957/5606/447 3958/5607/447 3955/5604/447 -f 3957/5606/447 3959/5608/447 3960/5609/447 -f 3961/5610/447 3959/5608/447 3962/5611/447 -f 3942/5590/447 3963/5612/447 3961/5610/447 -f 3964/5613/447 3965/5614/447 3966/5615/447 -f 3967/5616/447 3968/5617/447 3964/5613/447 -f 3969/5618/447 3970/5619/447 3967/5616/447 -f 3971/5620/447 3972/5621/447 3969/5618/447 -f 3973/5622/447 3974/5623/447 3971/5624/447 -f 3973/5622/447 3975/5625/447 3976/5626/447 -f 3977/5627/447 3978/5628/447 3975/5625/447 -f 3979/5629/447 3978/5628/447 3980/5630/447 -f 3981/5631/447 3982/5632/447 3979/5629/447 -f 3981/5631/447 3983/5633/447 3984/5634/447 -f 3985/5635/447 3983/5633/447 3986/5636/447 -f 3966/5615/447 3987/5637/447 3985/5635/447 -f 3988/5638/446 3989/5639/446 3990/5640/446 -f 3991/5641/446 3992/5642/446 3988/5638/446 -f 3991/5641/446 3993/5643/446 3994/5644/446 -f 3995/5645/446 3996/5646/446 3993/5643/446 -f 3997/5647/446 3996/5648/446 3998/5649/446 -f 3999/5650/446 4000/5651/446 3997/5647/446 -f 4001/5652/446 4002/5653/446 3999/5650/446 -f 4003/5654/446 4004/5655/446 4001/5652/446 -f 4005/5656/446 4006/5657/446 4003/5654/446 -f 4007/5658/446 4008/5659/446 4005/5656/446 -f 4007/5658/446 4009/5660/446 4010/5661/446 -f 4011/5662/446 3989/5639/446 4009/5660/446 -f 4012/5663/446 4013/5664/446 4014/5665/446 -f 4015/5666/446 4016/5667/446 4012/5663/446 -f 4015/5666/446 4017/5668/446 4018/5669/446 -f 4019/5670/446 4020/5671/446 4017/5668/446 -f 4021/5672/446 4020/5673/446 4022/5674/446 -f 4023/5675/446 4024/5676/446 4021/5672/446 -f 4025/5677/446 4026/5678/446 4023/5675/446 -f 4027/5679/446 4028/5680/446 4025/5677/446 -f 4029/5681/446 4030/5682/446 4027/5679/446 -f 4031/5683/446 4032/5684/446 4029/5681/446 -f 4031/5683/446 4033/5685/446 4034/5686/446 -f 4035/5687/446 4013/5664/446 4033/5685/446 -f 4036/5688/447 4037/5689/447 4038/5690/447 -f 4039/5691/448 4040/5692/448 4041/5693/448 -f 4038/5694/449 4040/5695/449 4036/5696/449 -f 4040/5695/450 4037/5689/450 4036/5696/450 -f 4042/5697/451 4043/5698/451 4044/5699/451 -f 4045/5700/452 4042/5697/452 4044/5699/452 -f 4046/5701/453 4042/5702/453 4047/5703/453 -f 4044/5704/447 4043/5698/447 4045/5705/447 -f 4048/5706/447 4049/5707/447 4050/5708/447 -f 4051/5709/454 4052/5710/454 4053/5711/454 -f 4050/5712/455 4052/5713/455 4048/5714/455 -f 4052/5713/456 4049/5707/456 4048/5714/456 -f 4054/5715/457 4055/5716/457 4056/5717/457 -f 4057/5718/458 4054/5715/458 4056/5717/458 -f 4058/5719/459 4054/5720/459 4059/5721/459 -f 4056/5722/447 4055/5716/447 4057/5723/447 -f 4060/5724/447 4061/5725/447 4062/5726/447 -f 4063/5727/447 4064/5728/447 4061/5725/447 -f 4065/5729/447 4066/5730/447 4064/5728/447 -f 4067/5731/447 4068/5732/447 4066/5730/447 -f 4068/5732/447 4069/5733/447 4070/5734/447 -f 4069/5735/447 4071/5736/447 4070/5734/447 -f 4072/5737/447 4073/5738/447 4071/5739/447 -f 4074/5740/447 4075/5741/447 4073/5738/447 -f 4076/5742/447 4077/5743/447 4075/5741/447 -f 4078/5744/447 4079/5745/447 4077/5743/447 -f 4080/5746/447 4081/5747/447 4079/5745/447 -f 4082/5748/447 4062/5726/447 4081/5747/447 -f 3892/5538/446 3895/5541/446 3893/5539/446 -f 3895/5541/446 3898/5749/446 3896/5542/446 -f 3897/5543/446 3900/5547/446 3896/5544/446 -f 3899/5546/446 3902/5549/446 3900/5547/446 -f 3901/5548/446 3904/5551/446 3902/5549/446 -f 3903/5550/446 3906/5553/446 3904/5551/446 -f 3905/5552/446 3908/5555/446 3906/5553/446 -f 3907/5554/446 3910/5557/446 3908/5555/446 -f 3907/5554/446 3911/5558/446 3909/5556/446 -f 3911/5558/446 3914/5561/446 3912/5559/446 -f 3913/5560/446 3915/5562/446 3912/5559/446 -f 3892/5538/446 3894/5540/446 3915/5562/446 -f 3916/5563/447 3920/5567/447 3917/5564/447 -f 3919/5566/447 3922/5569/447 3920/5567/447 -f 3921/5568/447 3924/5571/447 3922/5569/447 -f 3923/5570/447 3926/5750/447 3924/5571/447 -f 3925/5572/447 3928/5576/447 3926/5573/447 -f 3925/5572/447 3929/5577/447 3927/5575/447 -f 3929/5577/447 3932/5580/447 3930/5578/447 -f 3931/5579/447 3934/5582/447 3930/5578/447 -f 3933/5581/447 3936/5584/447 3934/5582/447 -f 3933/5581/447 3938/5586/447 3935/5583/447 -f 3937/5585/447 3939/5587/447 3935/5583/447 -f 3918/5565/447 3917/5564/447 3939/5587/447 -f 3940/5588/447 3944/5592/447 3941/5589/447 -f 3943/5591/447 3946/5594/447 3944/5592/447 -f 3945/5593/447 3948/5596/447 3946/5594/447 -f 3947/5595/447 3950/5751/447 3948/5596/447 -f 3949/5597/447 3952/5601/447 3950/5598/447 -f 3949/5597/447 3953/5602/447 3951/5600/447 -f 3953/5602/447 3956/5605/447 3954/5603/447 -f 3955/5604/447 3958/5607/447 3954/5603/447 -f 3957/5606/447 3960/5609/447 3958/5607/447 -f 3957/5606/447 3962/5611/447 3959/5608/447 -f 3961/5610/447 3963/5612/447 3959/5608/447 -f 3942/5590/447 3941/5589/447 3963/5612/447 -f 3964/5613/447 3968/5617/447 3965/5614/447 -f 3967/5616/447 3970/5619/447 3968/5617/447 -f 3969/5618/447 3972/5621/447 3970/5619/447 -f 3971/5620/447 3974/5752/447 3972/5621/447 -f 3973/5622/447 3976/5626/447 3974/5623/447 -f 3973/5622/447 3977/5627/447 3975/5625/447 -f 3977/5627/447 3980/5630/447 3978/5628/447 -f 3979/5629/447 3982/5632/447 3978/5628/447 -f 3981/5631/447 3984/5634/447 3982/5632/447 -f 3981/5631/447 3986/5636/447 3983/5633/447 -f 3985/5635/447 3987/5637/447 3983/5633/447 -f 3966/5615/447 3965/5614/447 3987/5637/447 -f 3988/5638/446 3992/5642/446 3989/5639/446 -f 3991/5641/446 3994/5644/446 3992/5642/446 -f 3991/5641/446 3995/5645/446 3993/5643/446 -f 3995/5645/446 3998/5753/446 3996/5646/446 -f 3997/5647/446 4000/5651/446 3996/5648/446 -f 3999/5650/446 4002/5653/446 4000/5651/446 -f 4001/5652/446 4004/5655/446 4002/5653/446 -f 4003/5654/446 4006/5657/446 4004/5655/446 -f 4005/5656/446 4008/5659/446 4006/5657/446 -f 4007/5658/446 4010/5661/446 4008/5659/446 -f 4007/5658/446 4011/5662/446 4009/5660/446 -f 4011/5662/446 3990/5640/446 3989/5639/446 -f 4012/5663/446 4016/5667/446 4013/5664/446 -f 4015/5666/446 4018/5669/446 4016/5667/446 -f 4015/5666/446 4019/5670/446 4017/5668/446 -f 4019/5670/446 4022/5754/446 4020/5671/446 -f 4021/5672/446 4024/5676/446 4020/5673/446 -f 4023/5675/446 4026/5678/446 4024/5676/446 -f 4025/5677/446 4028/5680/446 4026/5678/446 -f 4027/5679/446 4030/5682/446 4028/5680/446 -f 4029/5681/446 4032/5684/446 4030/5682/446 -f 4031/5683/446 4034/5686/446 4032/5684/446 -f 4031/5683/446 4035/5687/446 4033/5685/446 -f 4035/5687/446 4014/5665/446 4013/5664/446 -f 4038/5694/449 4041/5755/449 4040/5695/449 -f 4040/5695/450 4039/5691/450 4037/5689/450 -f 4042/5697/451 4046/5701/451 4043/5698/451 -f 4045/5700/452 4047/5756/452 4042/5697/452 -f 4050/5712/455 4053/5757/455 4052/5713/455 -f 4052/5713/456 4051/5709/456 4049/5707/456 -f 4054/5715/457 4058/5719/457 4055/5716/457 -f 4057/5718/458 4059/5758/458 4054/5715/458 -f 4060/5724/447 4063/5759/447 4061/5725/447 -f 4063/5727/447 4065/5760/447 4064/5728/447 -f 4065/5729/447 4067/5761/447 4066/5730/447 -f 4067/5731/447 4083/5762/447 4068/5732/447 -f 4068/5732/447 4083/5763/447 4069/5733/447 -f 4069/5735/447 4072/5764/447 4071/5736/447 -f 4072/5737/447 4074/5765/447 4073/5738/447 -f 4074/5740/447 4076/5766/447 4075/5741/447 -f 4076/5742/447 4078/5767/447 4077/5743/447 -f 4078/5744/447 4080/5768/447 4079/5745/447 -f 4080/5746/447 4082/5769/447 4081/5747/447 -f 4082/5748/447 4060/5770/447 4062/5726/447 +f 3892/5556/446 3893/5557/446 3894/5558/446 +f 3895/5559/446 3896/5560/446 3893/5557/446 +f 3897/5561/446 3896/5562/446 3898/5563/446 +f 3899/5564/446 3900/5565/446 3897/5561/446 +f 3901/5566/446 3902/5567/446 3899/5564/446 +f 3903/5568/446 3904/5569/446 3901/5566/446 +f 3905/5570/446 3906/5571/446 3903/5568/446 +f 3907/5572/446 3908/5573/446 3905/5570/446 +f 3907/5572/446 3909/5574/446 3910/5575/446 +f 3911/5576/446 3912/5577/446 3909/5574/446 +f 3913/5578/446 3912/5577/446 3914/5579/446 +f 3892/5556/446 3915/5580/446 3913/5578/446 +f 3916/5581/447 3917/5582/447 3918/5583/447 +f 3919/5584/447 3920/5585/447 3916/5581/447 +f 3921/5586/447 3922/5587/447 3919/5584/447 +f 3923/5588/447 3924/5589/447 3921/5586/447 +f 3925/5590/447 3926/5591/447 3923/5592/447 +f 3925/5590/447 3927/5593/447 3928/5594/447 +f 3929/5595/447 3930/5596/447 3927/5593/447 +f 3931/5597/447 3930/5596/447 3932/5598/447 +f 3933/5599/447 3934/5600/447 3931/5597/447 +f 3933/5599/447 3935/5601/447 3936/5602/447 +f 3937/5603/447 3935/5601/447 3938/5604/447 +f 3918/5583/447 3939/5605/447 3937/5603/447 +f 3940/5606/447 3941/5607/447 3942/5608/447 +f 3943/5609/447 3944/5610/447 3940/5606/447 +f 3945/5611/447 3946/5612/447 3943/5609/447 +f 3947/5613/447 3948/5614/447 3945/5611/447 +f 3949/5615/447 3950/5616/447 3947/5617/447 +f 3949/5615/447 3951/5618/447 3952/5619/447 +f 3953/5620/447 3954/5621/447 3951/5618/447 +f 3955/5622/447 3954/5621/447 3956/5623/447 +f 3957/5624/447 3958/5625/447 3955/5622/447 +f 3957/5624/447 3959/5626/447 3960/5627/447 +f 3961/5628/447 3959/5626/447 3962/5629/447 +f 3942/5608/447 3963/5630/447 3961/5628/447 +f 3964/5631/447 3965/5632/447 3966/5633/447 +f 3967/5634/447 3968/5635/447 3964/5631/447 +f 3969/5636/447 3970/5637/447 3967/5634/447 +f 3971/5638/447 3972/5639/447 3969/5636/447 +f 3973/5640/447 3974/5641/447 3971/5642/447 +f 3973/5640/447 3975/5643/447 3976/5644/447 +f 3977/5645/447 3978/5646/447 3975/5643/447 +f 3979/5647/447 3978/5646/447 3980/5648/447 +f 3981/5649/447 3982/5650/447 3979/5647/447 +f 3981/5649/447 3983/5651/447 3984/5652/447 +f 3985/5653/447 3983/5651/447 3986/5654/447 +f 3966/5633/447 3987/5655/447 3985/5653/447 +f 3988/5656/446 3989/5657/446 3990/5658/446 +f 3991/5659/446 3992/5660/446 3988/5656/446 +f 3991/5659/446 3993/5661/446 3994/5662/446 +f 3995/5663/446 3996/5664/446 3993/5661/446 +f 3997/5665/446 3996/5666/446 3998/5667/446 +f 3999/5668/446 4000/5669/446 3997/5665/446 +f 4001/5670/446 4002/5671/446 3999/5668/446 +f 4003/5672/446 4004/5673/446 4001/5670/446 +f 4005/5674/446 4006/5675/446 4003/5672/446 +f 4007/5676/446 4008/5677/446 4005/5674/446 +f 4007/5676/446 4009/5678/446 4010/5679/446 +f 4011/5680/446 3989/5657/446 4009/5678/446 +f 4012/5681/446 4013/5682/446 4014/5683/446 +f 4015/5684/446 4016/5685/446 4012/5681/446 +f 4015/5684/446 4017/5686/446 4018/5687/446 +f 4019/5688/446 4020/5689/446 4017/5686/446 +f 4021/5690/446 4020/5691/446 4022/5692/446 +f 4023/5693/446 4024/5694/446 4021/5690/446 +f 4025/5695/446 4026/5696/446 4023/5693/446 +f 4027/5697/446 4028/5698/446 4025/5695/446 +f 4029/5699/446 4030/5700/446 4027/5697/446 +f 4031/5701/446 4032/5702/446 4029/5699/446 +f 4031/5701/446 4033/5703/446 4034/5704/446 +f 4035/5705/446 4013/5682/446 4033/5703/446 +f 4036/5706/447 4037/5707/447 4038/5708/447 +f 4039/5709/448 4040/5710/448 4041/5711/448 +f 4038/5712/449 4040/5713/449 4036/5714/449 +f 4040/5713/450 4037/5707/450 4036/5714/450 +f 4042/5715/451 4043/5716/451 4044/5717/451 +f 4045/5718/452 4042/5715/452 4044/5717/452 +f 4046/5719/453 4042/5720/453 4047/5721/453 +f 4044/5722/447 4043/5716/447 4045/5723/447 +f 4048/5724/447 4049/5725/447 4050/5726/447 +f 4051/5727/454 4052/5728/454 4053/5729/454 +f 4050/5730/455 4052/5731/455 4048/5732/455 +f 4052/5731/456 4049/5725/456 4048/5732/456 +f 4054/5733/457 4055/5734/457 4056/5735/457 +f 4057/5736/458 4054/5733/458 4056/5735/458 +f 4058/5737/459 4054/5738/459 4059/5739/459 +f 4056/5740/447 4055/5734/447 4057/5741/447 +f 4060/5742/447 4061/5743/447 4062/5744/447 +f 4063/5745/447 4064/5746/447 4061/5743/447 +f 4065/5747/447 4066/5748/447 4064/5746/447 +f 4067/5749/447 4068/5750/447 4066/5748/447 +f 4068/5750/447 4069/5751/447 4070/5752/447 +f 4069/5753/447 4071/5754/447 4070/5752/447 +f 4072/5755/447 4073/5756/447 4071/5757/447 +f 4074/5758/447 4075/5759/447 4073/5756/447 +f 4076/5760/447 4077/5761/447 4075/5759/447 +f 4078/5762/447 4079/5763/447 4077/5761/447 +f 4080/5764/447 4081/5765/447 4079/5763/447 +f 4082/5766/447 4062/5744/447 4081/5765/447 +f 3892/5556/446 3895/5559/446 3893/5557/446 +f 3895/5559/446 3898/5767/446 3896/5560/446 +f 3897/5561/446 3900/5565/446 3896/5562/446 +f 3899/5564/446 3902/5567/446 3900/5565/446 +f 3901/5566/446 3904/5569/446 3902/5567/446 +f 3903/5568/446 3906/5571/446 3904/5569/446 +f 3905/5570/446 3908/5573/446 3906/5571/446 +f 3907/5572/446 3910/5575/446 3908/5573/446 +f 3907/5572/446 3911/5576/446 3909/5574/446 +f 3911/5576/446 3914/5579/446 3912/5577/446 +f 3913/5578/446 3915/5580/446 3912/5577/446 +f 3892/5556/446 3894/5558/446 3915/5580/446 +f 3916/5581/447 3920/5585/447 3917/5582/447 +f 3919/5584/447 3922/5587/447 3920/5585/447 +f 3921/5586/447 3924/5589/447 3922/5587/447 +f 3923/5588/447 3926/5768/447 3924/5589/447 +f 3925/5590/447 3928/5594/447 3926/5591/447 +f 3925/5590/447 3929/5595/447 3927/5593/447 +f 3929/5595/447 3932/5598/447 3930/5596/447 +f 3931/5597/447 3934/5600/447 3930/5596/447 +f 3933/5599/447 3936/5602/447 3934/5600/447 +f 3933/5599/447 3938/5604/447 3935/5601/447 +f 3937/5603/447 3939/5605/447 3935/5601/447 +f 3918/5583/447 3917/5582/447 3939/5605/447 +f 3940/5606/447 3944/5610/447 3941/5607/447 +f 3943/5609/447 3946/5612/447 3944/5610/447 +f 3945/5611/447 3948/5614/447 3946/5612/447 +f 3947/5613/447 3950/5769/447 3948/5614/447 +f 3949/5615/447 3952/5619/447 3950/5616/447 +f 3949/5615/447 3953/5620/447 3951/5618/447 +f 3953/5620/447 3956/5623/447 3954/5621/447 +f 3955/5622/447 3958/5625/447 3954/5621/447 +f 3957/5624/447 3960/5627/447 3958/5625/447 +f 3957/5624/447 3962/5629/447 3959/5626/447 +f 3961/5628/447 3963/5630/447 3959/5626/447 +f 3942/5608/447 3941/5607/447 3963/5630/447 +f 3964/5631/447 3968/5635/447 3965/5632/447 +f 3967/5634/447 3970/5637/447 3968/5635/447 +f 3969/5636/447 3972/5639/447 3970/5637/447 +f 3971/5638/447 3974/5770/447 3972/5639/447 +f 3973/5640/447 3976/5644/447 3974/5641/447 +f 3973/5640/447 3977/5645/447 3975/5643/447 +f 3977/5645/447 3980/5648/447 3978/5646/447 +f 3979/5647/447 3982/5650/447 3978/5646/447 +f 3981/5649/447 3984/5652/447 3982/5650/447 +f 3981/5649/447 3986/5654/447 3983/5651/447 +f 3985/5653/447 3987/5655/447 3983/5651/447 +f 3966/5633/447 3965/5632/447 3987/5655/447 +f 3988/5656/446 3992/5660/446 3989/5657/446 +f 3991/5659/446 3994/5662/446 3992/5660/446 +f 3991/5659/446 3995/5663/446 3993/5661/446 +f 3995/5663/446 3998/5771/446 3996/5664/446 +f 3997/5665/446 4000/5669/446 3996/5666/446 +f 3999/5668/446 4002/5671/446 4000/5669/446 +f 4001/5670/446 4004/5673/446 4002/5671/446 +f 4003/5672/446 4006/5675/446 4004/5673/446 +f 4005/5674/446 4008/5677/446 4006/5675/446 +f 4007/5676/446 4010/5679/446 4008/5677/446 +f 4007/5676/446 4011/5680/446 4009/5678/446 +f 4011/5680/446 3990/5658/446 3989/5657/446 +f 4012/5681/446 4016/5685/446 4013/5682/446 +f 4015/5684/446 4018/5687/446 4016/5685/446 +f 4015/5684/446 4019/5688/446 4017/5686/446 +f 4019/5688/446 4022/5772/446 4020/5689/446 +f 4021/5690/446 4024/5694/446 4020/5691/446 +f 4023/5693/446 4026/5696/446 4024/5694/446 +f 4025/5695/446 4028/5698/446 4026/5696/446 +f 4027/5697/446 4030/5700/446 4028/5698/446 +f 4029/5699/446 4032/5702/446 4030/5700/446 +f 4031/5701/446 4034/5704/446 4032/5702/446 +f 4031/5701/446 4035/5705/446 4033/5703/446 +f 4035/5705/446 4014/5683/446 4013/5682/446 +f 4038/5712/449 4041/5773/449 4040/5713/449 +f 4040/5713/450 4039/5709/450 4037/5707/450 +f 4042/5715/451 4046/5719/451 4043/5716/451 +f 4045/5718/452 4047/5774/452 4042/5715/452 +f 4050/5730/455 4053/5775/455 4052/5731/455 +f 4052/5731/456 4051/5727/456 4049/5725/456 +f 4054/5733/457 4058/5737/457 4055/5734/457 +f 4057/5736/458 4059/5776/458 4054/5733/458 +f 4060/5742/447 4063/5777/447 4061/5743/447 +f 4063/5745/447 4065/5778/447 4064/5746/447 +f 4065/5747/447 4067/5779/447 4066/5748/447 +f 4067/5749/447 4083/5780/447 4068/5750/447 +f 4068/5750/447 4083/5781/447 4069/5751/447 +f 4069/5753/447 4072/5782/447 4071/5754/447 +f 4072/5755/447 4074/5783/447 4073/5756/447 +f 4074/5758/447 4076/5784/447 4075/5759/447 +f 4076/5760/447 4078/5785/447 4077/5761/447 +f 4078/5762/447 4080/5786/447 4079/5763/447 +f 4080/5764/447 4082/5787/447 4081/5765/447 +f 4082/5766/447 4060/5788/447 4062/5744/447 s 1 -f 4068/5732/460 3913/5560/461 4066/5730/461 -f 4061/5725/462 3907/5554/463 4062/5726/463 -f 4079/5745/464 3901/5548/465 4077/5743/465 -f 4070/5734/466 3892/5538/460 4068/5732/460 -f 4073/5738/467 3898/5545/468 4071/5739/468 -f 4064/5728/469 3911/5558/462 4061/5725/462 -f 4081/5747/470 3903/5550/464 4079/5745/464 -f 4071/5736/468 3895/5541/466 4070/5734/466 -f 4075/5741/471 3897/5543/467 4073/5738/467 -f 4066/5730/461 3914/5561/469 4064/5728/469 -f 4062/5726/463 3905/5552/470 4081/5747/470 -f 4077/5743/465 3899/5546/471 4075/5741/471 -f 3912/5559/469 3937/5585/462 3909/5556/462 -f 3908/5555/470 3931/5579/464 3906/5553/464 -f 3896/5542/468 3921/5568/466 3893/5539/466 -f 3902/5549/471 3925/5572/467 3900/5547/467 -f 3915/5562/461 3918/5565/469 3912/5559/469 -f 3910/5557/463 3933/5581/470 3908/5555/470 -f 3904/5551/465 3929/5577/471 3902/5549/471 -f 3894/5540/460 3916/5563/461 3915/5562/461 -f 3909/5556/462 3938/5586/463 3910/5557/463 -f 3906/5553/464 3932/5580/465 3904/5551/465 -f 3893/5539/466 3919/5566/460 3894/5540/460 -f 3900/5547/467 3923/5574/468 3896/5544/468 -f 3924/5571/466 3991/5641/460 3922/5569/460 -f 3928/5576/467 3998/5649/468 3926/5573/468 -f 3917/5564/469 4011/5662/462 3939/5587/462 -f 3936/5584/470 4003/5654/464 3934/5582/464 -f 3926/5750/468 3995/5645/466 3924/5571/466 -f 3927/5575/471 3997/5647/467 3928/5576/467 -f 3920/5567/461 3990/5640/469 3917/5564/469 -f 3935/5583/463 4005/5656/470 3936/5584/470 -f 3930/5578/465 3999/5650/471 3927/5575/471 -f 3922/5569/460 3988/5638/461 3920/5567/461 -f 3939/5587/462 4007/5658/463 3935/5583/463 -f 3934/5582/464 4001/5652/465 3930/5578/465 -f 3989/5639/469 3961/5610/462 4009/5660/462 -f 4008/5659/470 3955/5604/464 4006/5657/464 -f 3996/5646/468 3945/5593/466 3993/5643/466 -f 4002/5653/471 3949/5597/467 4000/5651/467 -f 3992/5642/461 3942/5590/469 3989/5639/469 -f 4010/5661/463 3957/5606/470 4008/5659/470 -f 4004/5655/465 3953/5602/471 4002/5653/471 -f 3994/5644/460 3940/5588/461 3992/5642/461 -f 4009/5660/462 3962/5611/463 4010/5661/463 -f 4006/5657/464 3956/5605/465 4004/5655/465 -f 3993/5643/466 3943/5591/460 3994/5644/460 -f 4000/5651/467 3947/5599/468 3996/5648/468 -f 3948/5596/466 4015/5666/460 3946/5594/460 -f 3952/5601/467 4022/5674/468 3950/5598/468 -f 3941/5589/469 4035/5687/462 3963/5612/462 -f 3960/5609/470 4027/5679/464 3958/5607/464 -f 3950/5751/468 4019/5670/466 3948/5596/466 -f 3951/5600/471 4021/5672/467 3952/5601/467 -f 3944/5592/461 4014/5665/469 3941/5589/469 -f 3959/5608/463 4029/5681/470 3960/5609/470 -f 3954/5603/465 4023/5675/471 3951/5600/471 -f 3946/5594/460 4012/5663/461 3944/5592/461 -f 3963/5612/462 4031/5683/463 3959/5608/463 -f 3958/5607/464 4025/5677/465 3954/5603/465 -f 4013/5664/469 3985/5635/462 4033/5685/462 -f 4032/5684/470 3979/5629/464 4030/5682/464 -f 4020/5671/468 3969/5618/466 4017/5668/466 -f 4026/5678/471 3973/5622/467 4024/5676/467 -f 4016/5667/461 3966/5615/469 4013/5664/469 -f 4034/5686/463 3981/5631/470 4032/5684/470 -f 4028/5680/465 3977/5627/471 4026/5678/471 -f 4018/5669/460 3964/5613/461 4016/5667/461 -f 4033/5685/462 3986/5636/463 4034/5686/463 -f 4030/5682/464 3980/5630/465 4028/5680/465 -f 4017/5668/466 3967/5616/460 4018/5669/460 -f 4024/5676/467 3971/5624/468 4020/5673/468 -f 3972/5621/466 4084/5771/472 3970/5619/460 -f 3976/5626/467 4085/5772/473 3974/5623/468 -f 3965/5614/469 4086/5773/474 3987/5637/462 -f 3984/5634/470 4087/5774/475 3982/5632/464 -f 3974/5752/468 4088/5775/476 3972/5621/466 -f 3975/5625/471 4089/5776/477 3976/5626/467 -f 3968/5617/461 4090/5777/478 3965/5614/469 -f 3983/5633/463 4091/5778/479 3984/5634/470 -f 3978/5628/465 4092/5779/480 3975/5625/471 -f 3970/5619/460 4093/5780/481 3968/5617/461 -f 3987/5637/462 4094/5781/482 3983/5633/463 -f 3982/5632/464 4095/5782/483 3978/5628/465 -f 4094/5781/482 4096/5783/484 4091/5778/479 -f 4095/5782/483 4097/5784/485 4092/5779/480 -f 4093/5780/481 4098/5785/486 4099/5786/487 -f 4086/5773/474 4100/5787/488 4094/5781/482 -f 4095/5782/483 4101/5788/489 4102/5789/490 -f 4088/5775/476 4098/5790/486 4084/5771/472 -f 4089/5776/477 4103/5791/491 4085/5772/473 -f 4086/5773/474 4104/5792/492 4105/5793/493 -f 4091/5778/479 4101/5794/489 4087/5774/475 -f 4085/5795/473 4106/5796/494 4088/5775/476 -f 4092/5779/480 4107/5797/495 4089/5776/477 -f 4093/5780/481 4104/5798/492 4090/5777/478 -f 4103/5791/491 4107/5799/495 4108/5800/446 -f 4107/5797/495 4097/5801/485 4108/5802/446 -f 4097/5784/485 4102/5803/490 4108/5804/446 -f 4102/5789/490 4101/5788/489 4108/5805/446 -f 4101/5794/489 4096/5806/484 4108/5807/446 -f 4096/5783/484 4100/5808/488 4108/5809/446 -f 4100/5787/488 4105/5810/493 4108/5811/446 -f 4105/5793/493 4104/5792/492 4108/5812/446 -f 4104/5798/492 4099/5813/487 4108/5814/446 -f 4099/5786/487 4098/5785/486 4108/5815/446 -f 4098/5790/486 4106/5816/494 4108/5817/446 -f 4106/5796/494 4103/5818/491 4108/5819/446 -f 4074/5765/496 4072/5737/497 4109/5820/447 -f 4072/5764/497 4069/5735/498 4109/5821/447 -f 4069/5733/498 4083/5763/499 4109/5822/447 -f 4083/5762/499 4067/5731/500 4109/5823/447 -f 4067/5761/500 4065/5729/501 4109/5824/447 -f 4065/5760/501 4063/5727/502 4109/5825/447 -f 4063/5759/502 4060/5724/503 4109/5826/447 -f 4060/5770/503 4082/5748/504 4109/5827/447 -f 4082/5769/504 4080/5746/505 4109/5828/447 -f 4080/5768/505 4078/5744/506 4109/5829/447 -f 4078/5767/506 4076/5742/507 4109/5830/447 -f 4076/5766/507 4074/5740/496 4109/5831/447 -f 4110/5832/461 4111/5833/508 4112/5834/508 -f 4113/5835/509 4114/5836/461 4110/5832/461 -f 4115/5837/465 4116/5838/510 4117/5839/510 -f 4118/5840/511 4119/5841/465 4115/5837/465 -f 4068/5732/460 3892/5538/460 3913/5560/461 -f 4061/5725/462 3911/5558/462 3907/5554/463 -f 4079/5745/464 3903/5550/464 3901/5548/465 -f 4070/5734/466 3895/5541/466 3892/5538/460 -f 4073/5738/467 3897/5543/467 3898/5545/468 -f 4064/5728/469 3914/5561/469 3911/5558/462 -f 4081/5747/470 3905/5552/470 3903/5550/464 -f 4071/5736/468 3898/5749/468 3895/5541/466 -f 4075/5741/471 3899/5546/471 3897/5543/467 -f 4066/5730/461 3913/5560/461 3914/5561/469 -f 4062/5726/463 3907/5554/463 3905/5552/470 -f 4077/5743/465 3901/5548/465 3899/5546/471 -f 3912/5559/469 3918/5565/469 3937/5585/462 -f 3908/5555/470 3933/5581/470 3931/5579/464 -f 3896/5542/468 3923/5570/468 3921/5568/466 -f 3902/5549/471 3929/5577/471 3925/5572/467 -f 3915/5562/461 3916/5563/461 3918/5565/469 -f 3910/5557/463 3938/5586/463 3933/5581/470 -f 3904/5551/465 3932/5580/465 3929/5577/471 -f 3894/5540/460 3919/5566/460 3916/5563/461 -f 3909/5556/462 3937/5585/462 3938/5586/463 -f 3906/5553/464 3931/5579/464 3932/5580/465 -f 3893/5539/466 3921/5568/466 3919/5566/460 -f 3900/5547/467 3925/5572/467 3923/5574/468 -f 3924/5571/466 3995/5645/466 3991/5641/460 -f 3928/5576/467 3997/5647/467 3998/5649/468 -f 3917/5564/469 3990/5640/469 4011/5662/462 -f 3936/5584/470 4005/5656/470 4003/5654/464 -f 3926/5750/468 3998/5753/468 3995/5645/466 -f 3927/5575/471 3999/5650/471 3997/5647/467 -f 3920/5567/461 3988/5638/461 3990/5640/469 -f 3935/5583/463 4007/5658/463 4005/5656/470 -f 3930/5578/465 4001/5652/465 3999/5650/471 -f 3922/5569/460 3991/5641/460 3988/5638/461 -f 3939/5587/462 4011/5662/462 4007/5658/463 -f 3934/5582/464 4003/5654/464 4001/5652/465 -f 3989/5639/469 3942/5590/469 3961/5610/462 -f 4008/5659/470 3957/5606/470 3955/5604/464 -f 3996/5646/468 3947/5595/468 3945/5593/466 -f 4002/5653/471 3953/5602/471 3949/5597/467 -f 3992/5642/461 3940/5588/461 3942/5590/469 -f 4010/5661/463 3962/5611/463 3957/5606/470 -f 4004/5655/465 3956/5605/465 3953/5602/471 -f 3994/5644/460 3943/5591/460 3940/5588/461 -f 4009/5660/462 3961/5610/462 3962/5611/463 -f 4006/5657/464 3955/5604/464 3956/5605/465 -f 3993/5643/466 3945/5593/466 3943/5591/460 -f 4000/5651/467 3949/5597/467 3947/5599/468 -f 3948/5596/466 4019/5670/466 4015/5666/460 -f 3952/5601/467 4021/5672/467 4022/5674/468 -f 3941/5589/469 4014/5665/469 4035/5687/462 -f 3960/5609/470 4029/5681/470 4027/5679/464 -f 3950/5751/468 4022/5754/468 4019/5670/466 -f 3951/5600/471 4023/5675/471 4021/5672/467 -f 3944/5592/461 4012/5663/461 4014/5665/469 -f 3959/5608/463 4031/5683/463 4029/5681/470 -f 3954/5603/465 4025/5677/465 4023/5675/471 -f 3946/5594/460 4015/5666/460 4012/5663/461 -f 3963/5612/462 4035/5687/462 4031/5683/463 -f 3958/5607/464 4027/5679/464 4025/5677/465 -f 4013/5664/469 3966/5615/469 3985/5635/462 -f 4032/5684/470 3981/5631/470 3979/5629/464 -f 4020/5671/468 3971/5620/468 3969/5618/466 -f 4026/5678/471 3977/5627/471 3973/5622/467 -f 4016/5667/461 3964/5613/461 3966/5615/469 -f 4034/5686/463 3986/5636/463 3981/5631/470 -f 4028/5680/465 3980/5630/465 3977/5627/471 -f 4018/5669/460 3967/5616/460 3964/5613/461 -f 4033/5685/462 3985/5635/462 3986/5636/463 -f 4030/5682/464 3979/5629/464 3980/5630/465 -f 4017/5668/466 3969/5618/466 3967/5616/460 -f 4024/5676/467 3973/5622/467 3971/5624/468 -f 3972/5621/466 4088/5775/476 4084/5771/472 -f 3976/5626/467 4089/5776/477 4085/5772/473 -f 3965/5614/469 4090/5777/478 4086/5773/474 -f 3984/5634/470 4091/5778/479 4087/5774/475 -f 3974/5752/468 4085/5795/473 4088/5775/476 -f 3975/5625/471 4092/5779/480 4089/5776/477 -f 3968/5617/461 4093/5780/481 4090/5777/478 -f 3983/5633/463 4094/5781/482 4091/5778/479 -f 3978/5628/465 4095/5782/483 4092/5779/480 -f 3970/5619/460 4084/5771/472 4093/5780/481 -f 3987/5637/462 4086/5773/474 4094/5781/482 -f 3982/5632/464 4087/5774/475 4095/5782/483 -f 4094/5781/482 4100/5808/488 4096/5783/484 -f 4095/5782/483 4102/5803/490 4097/5784/485 -f 4093/5780/481 4084/5771/472 4098/5785/486 -f 4086/5773/474 4105/5810/493 4100/5787/488 -f 4095/5782/483 4087/5774/475 4101/5788/489 -f 4088/5775/476 4106/5816/494 4098/5790/486 -f 4089/5776/477 4107/5799/495 4103/5791/491 -f 4086/5773/474 4090/5777/478 4104/5792/492 -f 4091/5778/479 4096/5806/484 4101/5794/489 -f 4085/5795/473 4103/5818/491 4106/5796/494 -f 4092/5779/480 4097/5801/485 4107/5797/495 -f 4093/5780/481 4099/5813/487 4104/5798/492 -f 4110/5832/461 4114/5836/461 4111/5833/508 -f 4113/5835/509 4120/5842/509 4114/5836/461 -f 4115/5837/465 4119/5841/465 4116/5838/510 -f 4118/5840/511 4121/5843/511 4119/5841/465 +f 4068/5750/460 3913/5578/461 4066/5748/461 +f 4061/5743/462 3907/5572/463 4062/5744/463 +f 4079/5763/464 3901/5566/465 4077/5761/465 +f 4070/5752/466 3892/5556/460 4068/5750/460 +f 4073/5756/467 3898/5563/468 4071/5757/468 +f 4064/5746/469 3911/5576/462 4061/5743/462 +f 4081/5765/470 3903/5568/464 4079/5763/464 +f 4071/5754/468 3895/5559/466 4070/5752/466 +f 4075/5759/471 3897/5561/467 4073/5756/467 +f 4066/5748/461 3914/5579/469 4064/5746/469 +f 4062/5744/463 3905/5570/470 4081/5765/470 +f 4077/5761/465 3899/5564/471 4075/5759/471 +f 3912/5577/469 3937/5603/462 3909/5574/462 +f 3908/5573/470 3931/5597/464 3906/5571/464 +f 3896/5560/468 3921/5586/466 3893/5557/466 +f 3902/5567/471 3925/5590/467 3900/5565/467 +f 3915/5580/461 3918/5583/469 3912/5577/469 +f 3910/5575/463 3933/5599/470 3908/5573/470 +f 3904/5569/465 3929/5595/471 3902/5567/471 +f 3894/5558/460 3916/5581/461 3915/5580/461 +f 3909/5574/462 3938/5604/463 3910/5575/463 +f 3906/5571/464 3932/5598/465 3904/5569/465 +f 3893/5557/466 3919/5584/460 3894/5558/460 +f 3900/5565/467 3923/5592/468 3896/5562/468 +f 3924/5589/466 3991/5659/460 3922/5587/460 +f 3928/5594/467 3998/5667/468 3926/5591/468 +f 3917/5582/469 4011/5680/462 3939/5605/462 +f 3936/5602/470 4003/5672/464 3934/5600/464 +f 3926/5768/468 3995/5663/466 3924/5589/466 +f 3927/5593/471 3997/5665/467 3928/5594/467 +f 3920/5585/461 3990/5658/469 3917/5582/469 +f 3935/5601/463 4005/5674/470 3936/5602/470 +f 3930/5596/465 3999/5668/471 3927/5593/471 +f 3922/5587/460 3988/5656/461 3920/5585/461 +f 3939/5605/462 4007/5676/463 3935/5601/463 +f 3934/5600/464 4001/5670/465 3930/5596/465 +f 3989/5657/469 3961/5628/462 4009/5678/462 +f 4008/5677/470 3955/5622/464 4006/5675/464 +f 3996/5664/468 3945/5611/466 3993/5661/466 +f 4002/5671/471 3949/5615/467 4000/5669/467 +f 3992/5660/461 3942/5608/469 3989/5657/469 +f 4010/5679/463 3957/5624/470 4008/5677/470 +f 4004/5673/465 3953/5620/471 4002/5671/471 +f 3994/5662/460 3940/5606/461 3992/5660/461 +f 4009/5678/462 3962/5629/463 4010/5679/463 +f 4006/5675/464 3956/5623/465 4004/5673/465 +f 3993/5661/466 3943/5609/460 3994/5662/460 +f 4000/5669/467 3947/5617/468 3996/5666/468 +f 3948/5614/466 4015/5684/460 3946/5612/460 +f 3952/5619/467 4022/5692/468 3950/5616/468 +f 3941/5607/469 4035/5705/462 3963/5630/462 +f 3960/5627/470 4027/5697/464 3958/5625/464 +f 3950/5769/468 4019/5688/466 3948/5614/466 +f 3951/5618/471 4021/5690/467 3952/5619/467 +f 3944/5610/461 4014/5683/469 3941/5607/469 +f 3959/5626/463 4029/5699/470 3960/5627/470 +f 3954/5621/465 4023/5693/471 3951/5618/471 +f 3946/5612/460 4012/5681/461 3944/5610/461 +f 3963/5630/462 4031/5701/463 3959/5626/463 +f 3958/5625/464 4025/5695/465 3954/5621/465 +f 4013/5682/469 3985/5653/462 4033/5703/462 +f 4032/5702/470 3979/5647/464 4030/5700/464 +f 4020/5689/468 3969/5636/466 4017/5686/466 +f 4026/5696/471 3973/5640/467 4024/5694/467 +f 4016/5685/461 3966/5633/469 4013/5682/469 +f 4034/5704/463 3981/5649/470 4032/5702/470 +f 4028/5698/465 3977/5645/471 4026/5696/471 +f 4018/5687/460 3964/5631/461 4016/5685/461 +f 4033/5703/462 3986/5654/463 4034/5704/463 +f 4030/5700/464 3980/5648/465 4028/5698/465 +f 4017/5686/466 3967/5634/460 4018/5687/460 +f 4024/5694/467 3971/5642/468 4020/5691/468 +f 3972/5639/466 4084/5789/472 3970/5637/460 +f 3976/5644/467 4085/5790/473 3974/5641/468 +f 3965/5632/469 4086/5791/474 3987/5655/462 +f 3984/5652/470 4087/5792/475 3982/5650/464 +f 3974/5770/468 4088/5793/476 3972/5639/466 +f 3975/5643/471 4089/5794/477 3976/5644/467 +f 3968/5635/461 4090/5795/478 3965/5632/469 +f 3983/5651/463 4091/5796/479 3984/5652/470 +f 3978/5646/465 4092/5797/480 3975/5643/471 +f 3970/5637/460 4093/5798/481 3968/5635/461 +f 3987/5655/462 4094/5799/482 3983/5651/463 +f 3982/5650/464 4095/5800/483 3978/5646/465 +f 4094/5799/482 4096/5801/484 4091/5796/479 +f 4095/5800/483 4097/5802/485 4092/5797/480 +f 4093/5798/481 4098/5803/486 4099/5804/487 +f 4086/5791/474 4100/5805/488 4094/5799/482 +f 4095/5800/483 4101/5806/489 4102/5807/490 +f 4088/5793/476 4098/5808/486 4084/5789/472 +f 4089/5794/477 4103/5809/491 4085/5790/473 +f 4086/5791/474 4104/5810/492 4105/5811/493 +f 4091/5796/479 4101/5812/489 4087/5792/475 +f 4085/5813/473 4106/5814/494 4088/5793/476 +f 4092/5797/480 4107/5815/495 4089/5794/477 +f 4093/5798/481 4104/5816/492 4090/5795/478 +f 4103/5809/491 4107/5817/495 4108/5818/446 +f 4107/5815/495 4097/5819/485 4108/5820/446 +f 4097/5802/485 4102/5821/490 4108/5822/446 +f 4102/5807/490 4101/5806/489 4108/5823/446 +f 4101/5812/489 4096/5824/484 4108/5825/446 +f 4096/5801/484 4100/5826/488 4108/5827/446 +f 4100/5805/488 4105/5828/493 4108/5829/446 +f 4105/5811/493 4104/5810/492 4108/5830/446 +f 4104/5816/492 4099/5831/487 4108/5832/446 +f 4099/5804/487 4098/5803/486 4108/5833/446 +f 4098/5808/486 4106/5834/494 4108/5835/446 +f 4106/5814/494 4103/5836/491 4108/5837/446 +f 4074/5783/496 4072/5755/497 4109/5838/447 +f 4072/5782/497 4069/5753/498 4109/5839/447 +f 4069/5751/498 4083/5781/499 4109/5840/447 +f 4083/5780/499 4067/5749/500 4109/5841/447 +f 4067/5779/500 4065/5747/501 4109/5842/447 +f 4065/5778/501 4063/5745/502 4109/5843/447 +f 4063/5777/502 4060/5742/503 4109/5844/447 +f 4060/5788/503 4082/5766/504 4109/5845/447 +f 4082/5787/504 4080/5764/505 4109/5846/447 +f 4080/5786/505 4078/5762/506 4109/5847/447 +f 4078/5785/506 4076/5760/507 4109/5848/447 +f 4076/5784/507 4074/5758/496 4109/5849/447 +f 4110/5850/461 4111/5851/508 4112/5852/508 +f 4113/5853/509 4114/5854/461 4110/5850/461 +f 4115/5855/465 4116/5856/510 4117/5857/510 +f 4118/5858/511 4119/5859/465 4115/5855/465 +f 4068/5750/460 3892/5556/460 3913/5578/461 +f 4061/5743/462 3911/5576/462 3907/5572/463 +f 4079/5763/464 3903/5568/464 3901/5566/465 +f 4070/5752/466 3895/5559/466 3892/5556/460 +f 4073/5756/467 3897/5561/467 3898/5563/468 +f 4064/5746/469 3914/5579/469 3911/5576/462 +f 4081/5765/470 3905/5570/470 3903/5568/464 +f 4071/5754/468 3898/5767/468 3895/5559/466 +f 4075/5759/471 3899/5564/471 3897/5561/467 +f 4066/5748/461 3913/5578/461 3914/5579/469 +f 4062/5744/463 3907/5572/463 3905/5570/470 +f 4077/5761/465 3901/5566/465 3899/5564/471 +f 3912/5577/469 3918/5583/469 3937/5603/462 +f 3908/5573/470 3933/5599/470 3931/5597/464 +f 3896/5560/468 3923/5588/468 3921/5586/466 +f 3902/5567/471 3929/5595/471 3925/5590/467 +f 3915/5580/461 3916/5581/461 3918/5583/469 +f 3910/5575/463 3938/5604/463 3933/5599/470 +f 3904/5569/465 3932/5598/465 3929/5595/471 +f 3894/5558/460 3919/5584/460 3916/5581/461 +f 3909/5574/462 3937/5603/462 3938/5604/463 +f 3906/5571/464 3931/5597/464 3932/5598/465 +f 3893/5557/466 3921/5586/466 3919/5584/460 +f 3900/5565/467 3925/5590/467 3923/5592/468 +f 3924/5589/466 3995/5663/466 3991/5659/460 +f 3928/5594/467 3997/5665/467 3998/5667/468 +f 3917/5582/469 3990/5658/469 4011/5680/462 +f 3936/5602/470 4005/5674/470 4003/5672/464 +f 3926/5768/468 3998/5771/468 3995/5663/466 +f 3927/5593/471 3999/5668/471 3997/5665/467 +f 3920/5585/461 3988/5656/461 3990/5658/469 +f 3935/5601/463 4007/5676/463 4005/5674/470 +f 3930/5596/465 4001/5670/465 3999/5668/471 +f 3922/5587/460 3991/5659/460 3988/5656/461 +f 3939/5605/462 4011/5680/462 4007/5676/463 +f 3934/5600/464 4003/5672/464 4001/5670/465 +f 3989/5657/469 3942/5608/469 3961/5628/462 +f 4008/5677/470 3957/5624/470 3955/5622/464 +f 3996/5664/468 3947/5613/468 3945/5611/466 +f 4002/5671/471 3953/5620/471 3949/5615/467 +f 3992/5660/461 3940/5606/461 3942/5608/469 +f 4010/5679/463 3962/5629/463 3957/5624/470 +f 4004/5673/465 3956/5623/465 3953/5620/471 +f 3994/5662/460 3943/5609/460 3940/5606/461 +f 4009/5678/462 3961/5628/462 3962/5629/463 +f 4006/5675/464 3955/5622/464 3956/5623/465 +f 3993/5661/466 3945/5611/466 3943/5609/460 +f 4000/5669/467 3949/5615/467 3947/5617/468 +f 3948/5614/466 4019/5688/466 4015/5684/460 +f 3952/5619/467 4021/5690/467 4022/5692/468 +f 3941/5607/469 4014/5683/469 4035/5705/462 +f 3960/5627/470 4029/5699/470 4027/5697/464 +f 3950/5769/468 4022/5772/468 4019/5688/466 +f 3951/5618/471 4023/5693/471 4021/5690/467 +f 3944/5610/461 4012/5681/461 4014/5683/469 +f 3959/5626/463 4031/5701/463 4029/5699/470 +f 3954/5621/465 4025/5695/465 4023/5693/471 +f 3946/5612/460 4015/5684/460 4012/5681/461 +f 3963/5630/462 4035/5705/462 4031/5701/463 +f 3958/5625/464 4027/5697/464 4025/5695/465 +f 4013/5682/469 3966/5633/469 3985/5653/462 +f 4032/5702/470 3981/5649/470 3979/5647/464 +f 4020/5689/468 3971/5638/468 3969/5636/466 +f 4026/5696/471 3977/5645/471 3973/5640/467 +f 4016/5685/461 3964/5631/461 3966/5633/469 +f 4034/5704/463 3986/5654/463 3981/5649/470 +f 4028/5698/465 3980/5648/465 3977/5645/471 +f 4018/5687/460 3967/5634/460 3964/5631/461 +f 4033/5703/462 3985/5653/462 3986/5654/463 +f 4030/5700/464 3979/5647/464 3980/5648/465 +f 4017/5686/466 3969/5636/466 3967/5634/460 +f 4024/5694/467 3973/5640/467 3971/5642/468 +f 3972/5639/466 4088/5793/476 4084/5789/472 +f 3976/5644/467 4089/5794/477 4085/5790/473 +f 3965/5632/469 4090/5795/478 4086/5791/474 +f 3984/5652/470 4091/5796/479 4087/5792/475 +f 3974/5770/468 4085/5813/473 4088/5793/476 +f 3975/5643/471 4092/5797/480 4089/5794/477 +f 3968/5635/461 4093/5798/481 4090/5795/478 +f 3983/5651/463 4094/5799/482 4091/5796/479 +f 3978/5646/465 4095/5800/483 4092/5797/480 +f 3970/5637/460 4084/5789/472 4093/5798/481 +f 3987/5655/462 4086/5791/474 4094/5799/482 +f 3982/5650/464 4087/5792/475 4095/5800/483 +f 4094/5799/482 4100/5826/488 4096/5801/484 +f 4095/5800/483 4102/5821/490 4097/5802/485 +f 4093/5798/481 4084/5789/472 4098/5803/486 +f 4086/5791/474 4105/5828/493 4100/5805/488 +f 4095/5800/483 4087/5792/475 4101/5806/489 +f 4088/5793/476 4106/5834/494 4098/5808/486 +f 4089/5794/477 4107/5817/495 4103/5809/491 +f 4086/5791/474 4090/5795/478 4104/5810/492 +f 4091/5796/479 4096/5824/484 4101/5812/489 +f 4085/5813/473 4103/5836/491 4106/5814/494 +f 4092/5797/480 4097/5819/485 4107/5815/495 +f 4093/5798/481 4099/5831/487 4104/5816/492 +f 4110/5850/461 4114/5854/461 4111/5851/508 +f 4113/5853/509 4120/5860/509 4114/5854/461 +f 4115/5855/465 4119/5859/465 4116/5856/510 +f 4118/5858/511 4121/5861/511 4119/5859/465 o ABM_Missile v -0.176777 3.500000 -0.176777 v 0.176777 3.500000 -0.176777 @@ -16594,765 +16624,765 @@ vn -0.8660 0.0000 -0.5000 vn 0.8660 -0.0000 -0.5000 vn 0.8660 -0.0000 0.5000 s off -f 4122/5844/512 4123/5845/512 4124/5846/512 -f 4125/5847/512 4126/5848/512 4127/5849/512 -f 4128/5850/512 4127/5851/512 4129/5852/512 -f 4128/5850/512 4130/5853/512 4131/5854/512 -f 4131/5854/512 4132/5855/512 4133/5856/512 -f 4134/5857/512 4132/5858/512 4135/5859/512 -f 4136/5860/512 4135/5861/512 4137/5862/512 -f 4138/5863/512 4137/5864/512 4139/5865/512 -f 4138/5863/512 4140/5866/512 4141/5867/512 -f 4142/5868/512 4140/5869/512 4143/5870/512 -f 4144/5871/512 4143/5872/512 4145/5873/512 -f 4144/5871/512 4146/5874/512 4147/5875/512 -f 4147/5875/512 4148/5876/512 4149/5877/512 -f 4150/5878/512 4151/5879/512 4152/5880/512 -f 4153/5881/512 4148/5882/512 4154/5883/512 -f 4152/5880/512 4126/5884/512 4155/5885/512 -f 4153/5881/512 4156/5886/512 4150/5878/512 -f 4157/5887/512 4158/5888/512 4159/5889/512 -f 4160/5890/513 4161/5891/513 4162/5892/513 -f 4163/5893/514 4164/5894/514 4161/5891/514 -f 4165/5895/515 4163/5896/515 4160/5897/515 -f 4164/5894/516 4162/5898/516 4161/5899/516 -f 4166/5900/512 4167/5901/512 4168/5902/512 -f 4169/5903/517 4170/5904/517 4171/5905/517 -f 4170/5906/518 4166/5900/518 4168/5902/518 -f 4167/5907/519 4170/5906/519 4168/5902/519 -f 4172/5908/520 4173/5909/520 4174/5910/520 -f 4175/5911/512 4176/5912/512 4177/5913/512 -f 4178/5914/512 4179/5915/512 4180/5916/512 -f 4181/5917/512 4180/5918/512 4182/5919/512 -f 4181/5917/512 4183/5920/512 4184/5921/512 -f 4184/5921/512 4185/5922/512 4186/5923/512 -f 4187/5924/512 4185/5925/512 4188/5926/512 -f 4189/5927/512 4188/5928/512 4190/5929/512 -f 4191/5930/512 4190/5931/512 4192/5932/512 -f 4191/5930/512 4193/5933/512 4194/5934/512 -f 4195/5935/512 4193/5936/512 4196/5937/512 -f 4197/5938/512 4196/5939/512 4198/5940/512 -f 4197/5938/512 4199/5941/512 4200/5942/512 -f 4200/5942/512 4201/5943/512 4202/5944/512 -f 4203/5945/512 4204/5946/512 4205/5947/512 -f 4206/5948/512 4201/5949/512 4207/5950/512 -f 4205/5947/512 4179/5951/512 4208/5952/512 -f 4206/5948/512 4209/5953/512 4203/5945/512 -f 4210/5954/512 4211/5955/512 4212/5956/512 -f 4213/5957/512 4214/5958/512 4215/5959/512 -f 4216/5960/521 4217/5961/521 4218/5962/521 -f 4217/5963/522 4213/5957/522 4215/5959/522 -f 4214/5964/523 4217/5963/523 4215/5959/523 -f 4219/5965/512 4220/5966/512 4221/5967/512 -f 4222/5968/512 4221/5969/512 4223/5970/512 -f 4222/5968/512 4224/5971/512 4225/5972/512 -f 4225/5972/512 4226/5973/512 4227/5974/512 -f 4228/5975/512 4226/5976/512 4229/5977/512 -f 4230/5978/512 4229/5979/512 4231/5980/512 -f 4232/5981/512 4231/5982/512 4233/5983/512 -f 4232/5981/512 4234/5984/512 4235/5985/512 -f 4236/5986/512 4234/5987/512 4237/5988/512 -f 4236/5986/512 4238/5989/512 4239/5990/512 -f 4239/5990/512 4240/5991/512 4241/5992/512 -f 4241/5992/512 4242/5993/512 4243/5994/512 -f 4244/5995/512 4245/5996/512 4246/5997/512 -f 4247/5998/512 4242/5999/512 4248/6000/512 -f 4246/5997/512 4220/6001/512 4249/6002/512 -f 4247/5998/512 4250/6003/512 4244/5995/512 -f 4251/6004/512 4252/6005/512 4253/6006/512 -f 4254/6007/512 4255/6008/512 4256/6009/512 -f 4257/6010/524 4258/6011/524 4259/6012/524 -f 4258/6013/525 4254/6007/525 4256/6009/525 -f 4255/6014/526 4258/6013/526 4256/6009/526 -f 4260/6015/512 4261/6016/512 4262/6017/512 -f 4263/6018/512 4262/6019/512 4264/6020/512 -f 4263/6018/512 4265/6021/512 4266/6022/512 -f 4266/6022/512 4267/6023/512 4268/6024/512 -f 4269/6025/512 4267/6026/512 4270/6027/512 -f 4271/6028/512 4270/6029/512 4272/6030/512 -f 4273/6031/512 4272/6032/512 4274/6033/512 -f 4273/6031/512 4275/6034/512 4276/6035/512 -f 4277/6036/512 4275/6037/512 4278/6038/512 -f 4279/6039/512 4278/6040/512 4280/6041/512 -f 4279/6039/512 4281/6042/512 4282/6043/512 -f 4282/6043/512 4283/6044/512 4284/6045/512 -f 4285/6046/512 4286/6047/512 4287/6048/512 -f 4288/6049/512 4283/6050/512 4289/6051/512 -f 4287/6048/512 4261/6052/512 4290/6053/512 -f 4285/6046/512 4289/6054/512 4291/6055/512 -f 4292/6056/512 4293/6057/512 4294/6058/512 -f 4295/6059/512 4296/6060/512 4297/6061/512 -f 4298/6062/527 4299/6063/527 4300/6064/527 -f 4299/6065/528 4295/6059/528 4297/6061/528 -f 4296/6066/529 4299/6065/529 4297/6061/529 -f 4301/6067/530 4302/6068/530 4303/6069/530 -f 4304/6070/531 4305/6071/531 4302/6068/531 -f 4306/6072/532 4304/6073/532 4301/6074/532 -f 4305/6071/533 4303/6075/533 4302/6076/533 -f 4307/6077/520 4308/6078/520 4309/6079/520 -f 4310/6080/512 4311/6081/512 4312/6082/512 -f 4313/6083/534 4314/6084/534 4315/6085/534 -f 4316/6086/535 4317/6087/535 4314/6084/535 -f 4318/6088/536 4316/6089/536 4313/6090/536 -f 4317/6087/537 4315/6091/537 4314/6092/537 -f 4319/6093/520 4320/6094/520 4321/6095/520 -f 4322/6096/512 4323/6097/512 4324/6098/512 -f 4325/6099/538 4326/6100/538 4327/6101/538 -f 4326/6100/539 4328/6102/539 4327/6101/539 -f 4329/6103/540 4326/6104/540 4330/6105/540 -f 4328/6102/541 4325/6106/541 4327/6107/541 -f 4331/6108/520 4332/6109/520 4333/6110/520 -f 4334/6111/512 4335/6112/512 4336/6113/512 -f 4122/5844/512 4337/6114/512 4338/6115/512 -f 4338/6115/512 4339/6116/512 4122/5844/512 -f 4339/6116/512 4123/5845/512 4122/5844/512 -f 4123/5845/512 4340/6117/512 4341/6118/512 -f 4341/6118/512 4342/6119/512 4124/5846/512 -f 4124/5846/512 4343/6120/512 4344/6121/512 -f 4344/6121/512 4345/6122/512 4346/6123/512 -f 4346/6123/512 4347/6124/512 4122/5844/512 -f 4347/6124/512 4348/6125/512 4122/5844/512 -f 4348/6125/512 4349/6126/512 4122/5844/512 -f 4123/5845/512 4341/6118/512 4124/5846/512 -f 4124/5846/512 4344/6121/512 4122/5844/512 -f 4344/6121/512 4346/6123/512 4122/5844/512 -f 4125/5847/512 4155/6127/512 4126/5848/512 -f 4128/5850/512 4125/5847/512 4127/5851/512 -f 4128/5850/512 4129/6128/512 4130/5853/512 -f 4131/5854/512 4130/6129/512 4132/5855/512 -f 4134/5857/512 4133/5856/512 4132/5858/512 -f 4136/5860/512 4134/5857/512 4135/5861/512 -f 4138/5863/512 4136/5860/512 4137/5864/512 -f 4138/5863/512 4139/6130/512 4140/5866/512 -f 4142/5868/512 4141/5867/512 4140/5869/512 -f 4144/5871/512 4142/5868/512 4143/5872/512 -f 4144/5871/512 4145/6131/512 4146/5874/512 -f 4147/5875/512 4146/6132/512 4148/5876/512 -f 4150/5878/512 4156/6133/512 4151/5879/512 -f 4153/5881/512 4149/5877/512 4148/5882/512 -f 4152/5880/512 4151/6134/512 4126/5884/512 -f 4153/5881/512 4154/6135/512 4156/5886/512 -f 4159/5889/512 4350/6136/512 4351/6137/512 -f 4351/6137/512 4352/6138/512 4159/5889/512 -f 4352/6138/512 4353/6139/512 4159/5889/512 -f 4353/6139/512 4354/6140/512 4355/6141/512 -f 4355/6141/512 4356/6142/512 4157/5887/512 -f 4157/5887/512 4357/6143/512 4158/5888/512 -f 4357/6143/512 4358/6144/512 4158/5888/512 -f 4358/6144/512 4359/6145/512 4158/5888/512 -f 4158/5888/512 4360/6146/512 4361/6147/512 -f 4361/6147/512 4362/6148/512 4159/5889/512 -f 4353/6139/512 4355/6141/512 4159/5889/512 -f 4355/6141/512 4157/5887/512 4159/5889/512 -f 4158/5888/512 4361/6147/512 4159/5889/512 -f 4160/5890/513 4163/5893/513 4161/5891/513 -f 4163/5893/514 4165/5895/514 4164/5894/514 -f 4170/5906/518 4169/5903/518 4166/5900/518 -f 4167/5907/519 4171/6149/519 4170/5906/519 -f 4174/5910/520 4363/6150/520 4172/5908/520 -f 4172/5908/520 4364/6151/520 4173/5909/520 -f 4173/5909/520 4365/6152/520 4174/5910/520 -f 4177/5913/512 4366/6153/512 4367/6154/512 -f 4367/6154/512 4368/6155/512 4177/5913/512 -f 4368/6155/512 4175/5911/512 4177/5913/512 -f 4178/5914/512 4208/6156/512 4179/5915/512 -f 4181/5917/512 4178/5914/512 4180/5918/512 -f 4181/5917/512 4182/6157/512 4183/5920/512 -f 4184/5921/512 4183/6158/512 4185/5922/512 -f 4187/5924/512 4186/5923/512 4185/5925/512 -f 4189/5927/512 4187/5924/512 4188/5928/512 -f 4191/5930/512 4189/5927/512 4190/5931/512 -f 4191/5930/512 4192/6159/512 4193/5933/512 -f 4195/5935/512 4194/5934/512 4193/5936/512 -f 4197/5938/512 4195/5935/512 4196/5939/512 -f 4197/5938/512 4198/6160/512 4199/5941/512 -f 4200/5942/512 4199/6161/512 4201/5943/512 -f 4203/5945/512 4209/6162/512 4204/5946/512 -f 4206/5948/512 4202/5944/512 4201/5949/512 -f 4205/5947/512 4204/6163/512 4179/5951/512 -f 4206/5948/512 4207/6164/512 4209/5953/512 -f 4212/5956/512 4369/6165/512 4370/6166/512 -f 4370/6166/512 4371/6167/512 4372/6168/512 -f 4372/6168/512 4373/6169/512 4374/6170/512 -f 4374/6170/512 4375/6171/512 4376/6172/512 -f 4376/6172/512 4377/6173/512 4378/6174/512 -f 4378/6174/512 4379/6175/512 4210/5954/512 -f 4210/5954/512 4380/6176/512 4211/5955/512 -f 4211/5955/512 4381/6177/512 4212/5956/512 -f 4212/5956/512 4370/6166/512 4376/6172/512 -f 4370/6166/512 4372/6168/512 4376/6172/512 -f 4372/6168/512 4374/6170/512 4376/6172/512 -f 4376/6172/512 4378/6174/512 4212/5956/512 -f 4378/6174/512 4210/5954/512 4212/5956/512 -f 4217/5963/522 4216/5960/522 4213/5957/522 -f 4214/5964/523 4218/6178/523 4217/5963/523 -f 4219/5965/512 4249/6179/512 4220/5966/512 -f 4222/5968/512 4219/5965/512 4221/5969/512 -f 4222/5968/512 4223/6180/512 4224/5971/512 -f 4225/5972/512 4224/6181/512 4226/5973/512 -f 4228/5975/512 4227/5974/512 4226/5976/512 -f 4230/5978/512 4228/5975/512 4229/5979/512 -f 4232/5981/512 4230/5978/512 4231/5982/512 -f 4232/5981/512 4233/6182/512 4234/5984/512 -f 4236/5986/512 4235/5985/512 4234/5987/512 -f 4236/5986/512 4237/6183/512 4238/5989/512 -f 4239/5990/512 4238/6184/512 4240/5991/512 -f 4241/5992/512 4240/6185/512 4242/5993/512 -f 4244/5995/512 4250/6186/512 4245/5996/512 -f 4247/5998/512 4243/5994/512 4242/5999/512 -f 4246/5997/512 4245/6187/512 4220/6001/512 -f 4247/5998/512 4248/6188/512 4250/6003/512 -f 4253/6006/512 4382/6189/512 4383/6190/512 -f 4383/6190/512 4384/6191/512 4385/6192/512 -f 4385/6192/512 4386/6193/512 4387/6194/512 -f 4387/6194/512 4388/6195/512 4251/6004/512 -f 4251/6004/512 4389/6196/512 4252/6005/512 -f 4389/6196/512 4390/6197/512 4252/6005/512 -f 4390/6197/512 4391/6198/512 4252/6005/512 -f 4252/6005/512 4392/6199/512 4393/6200/512 -f 4393/6200/512 4394/6201/512 4253/6006/512 -f 4253/6006/512 4383/6190/512 4385/6192/512 -f 4385/6192/512 4387/6194/512 4253/6006/512 -f 4387/6194/512 4251/6004/512 4253/6006/512 -f 4252/6005/512 4393/6200/512 4253/6006/512 -f 4258/6013/525 4257/6010/525 4254/6007/525 -f 4255/6014/526 4259/6202/526 4258/6013/526 -f 4260/6015/512 4290/6203/512 4261/6016/512 -f 4263/6018/512 4260/6015/512 4262/6019/512 -f 4263/6018/512 4264/6204/512 4265/6021/512 -f 4266/6022/512 4265/6205/512 4267/6023/512 -f 4269/6025/512 4268/6024/512 4267/6026/512 -f 4271/6028/512 4269/6025/512 4270/6029/512 -f 4273/6031/512 4271/6028/512 4272/6032/512 -f 4273/6031/512 4274/6206/512 4275/6034/512 -f 4277/6036/512 4276/6035/512 4275/6037/512 -f 4279/6039/512 4277/6036/512 4278/6040/512 -f 4279/6039/512 4280/6207/512 4281/6042/512 -f 4282/6043/512 4281/6208/512 4283/6044/512 -f 4285/6046/512 4291/6209/512 4286/6047/512 -f 4288/6049/512 4284/6045/512 4283/6050/512 -f 4287/6048/512 4286/6210/512 4261/6052/512 -f 4285/6046/512 4288/6049/512 4289/6054/512 -f 4294/6058/512 4395/6211/512 4396/6212/512 -f 4396/6212/512 4397/6213/512 4294/6058/512 -f 4397/6213/512 4398/6214/512 4294/6058/512 -f 4398/6214/512 4399/6215/512 4400/6216/512 -f 4400/6216/512 4401/6217/512 4292/6056/512 -f 4292/6056/512 4402/6218/512 4293/6057/512 -f 4402/6218/512 4403/6219/512 4293/6057/512 -f 4403/6219/512 4404/6220/512 4293/6057/512 -f 4293/6057/512 4405/6221/512 4406/6222/512 -f 4406/6222/512 4407/6223/512 4294/6058/512 -f 4398/6214/512 4400/6216/512 4294/6058/512 -f 4400/6216/512 4292/6056/512 4294/6058/512 -f 4293/6057/512 4406/6222/512 4294/6058/512 -f 4299/6065/528 4298/6062/528 4295/6059/528 -f 4296/6066/529 4300/6224/529 4299/6065/529 -f 4301/6067/530 4304/6070/530 4302/6068/530 -f 4304/6070/531 4306/6072/531 4305/6071/531 -f 4308/6078/520 4408/6225/520 4309/6079/520 -f 4309/6079/520 4409/6226/520 4410/6227/520 -f 4410/6227/520 4307/6077/520 4309/6079/520 -f 4312/6082/512 4411/6228/512 4412/6229/512 -f 4412/6229/512 4413/6230/512 4312/6082/512 -f 4413/6230/512 4310/6080/512 4312/6082/512 -f 4313/6083/534 4316/6086/534 4314/6084/534 -f 4316/6086/535 4318/6088/535 4317/6087/535 -f 4321/6095/520 4414/6231/520 4319/6093/520 -f 4319/6093/520 4415/6232/520 4320/6094/520 -f 4320/6094/520 4416/6233/520 4321/6095/520 -f 4324/6098/512 4417/6234/512 4418/6235/512 -f 4418/6235/512 4419/6236/512 4324/6098/512 -f 4419/6236/512 4322/6096/512 4324/6098/512 -f 4325/6099/538 4330/6237/538 4326/6100/538 -f 4326/6100/539 4329/6103/539 4328/6102/539 -f 4333/6110/520 4420/6238/520 4331/6108/520 -f 4331/6108/520 4421/6239/520 4332/6109/520 -f 4332/6109/520 4422/6240/520 4333/6110/520 -f 4336/6113/512 4423/6241/512 4424/6242/512 -f 4424/6242/512 4425/6243/512 4336/6113/512 -f 4425/6243/512 4334/6111/512 4336/6113/512 +f 4122/5862/512 4123/5863/512 4124/5864/512 +f 4125/5865/512 4126/5866/512 4127/5867/512 +f 4128/5868/512 4127/5869/512 4129/5870/512 +f 4128/5868/512 4130/5871/512 4131/5872/512 +f 4131/5872/512 4132/5873/512 4133/5874/512 +f 4134/5875/512 4132/5876/512 4135/5877/512 +f 4136/5878/512 4135/5879/512 4137/5880/512 +f 4138/5881/512 4137/5882/512 4139/5883/512 +f 4138/5881/512 4140/5884/512 4141/5885/512 +f 4142/5886/512 4140/5887/512 4143/5888/512 +f 4144/5889/512 4143/5890/512 4145/5891/512 +f 4144/5889/512 4146/5892/512 4147/5893/512 +f 4147/5893/512 4148/5894/512 4149/5895/512 +f 4150/5896/512 4151/5897/512 4152/5898/512 +f 4153/5899/512 4148/5900/512 4154/5901/512 +f 4152/5898/512 4126/5902/512 4155/5903/512 +f 4153/5899/512 4156/5904/512 4150/5896/512 +f 4157/5905/512 4158/5906/512 4159/5907/512 +f 4160/5908/513 4161/5909/513 4162/5910/513 +f 4163/5911/514 4164/5912/514 4161/5909/514 +f 4165/5913/515 4163/5914/515 4160/5915/515 +f 4164/5912/516 4162/5916/516 4161/5917/516 +f 4166/5918/512 4167/5919/512 4168/5920/512 +f 4169/5921/517 4170/5922/517 4171/5923/517 +f 4170/5924/518 4166/5918/518 4168/5920/518 +f 4167/5925/519 4170/5924/519 4168/5920/519 +f 4172/5926/520 4173/5927/520 4174/5928/520 +f 4175/5929/512 4176/5930/512 4177/5931/512 +f 4178/5932/512 4179/5933/512 4180/5934/512 +f 4181/5935/512 4180/5936/512 4182/5937/512 +f 4181/5935/512 4183/5938/512 4184/5939/512 +f 4184/5939/512 4185/5940/512 4186/5941/512 +f 4187/5942/512 4185/5943/512 4188/5944/512 +f 4189/5945/512 4188/5946/512 4190/5947/512 +f 4191/5948/512 4190/5949/512 4192/5950/512 +f 4191/5948/512 4193/5951/512 4194/5952/512 +f 4195/5953/512 4193/5954/512 4196/5955/512 +f 4197/5956/512 4196/5957/512 4198/5958/512 +f 4197/5956/512 4199/5959/512 4200/5960/512 +f 4200/5960/512 4201/5961/512 4202/5962/512 +f 4203/5963/512 4204/5964/512 4205/5965/512 +f 4206/5966/512 4201/5967/512 4207/5968/512 +f 4205/5965/512 4179/5969/512 4208/5970/512 +f 4206/5966/512 4209/5971/512 4203/5963/512 +f 4210/5972/512 4211/5973/512 4212/5974/512 +f 4213/5975/512 4214/5976/512 4215/5977/512 +f 4216/5978/521 4217/5979/521 4218/5980/521 +f 4217/5981/522 4213/5975/522 4215/5977/522 +f 4214/5982/523 4217/5981/523 4215/5977/523 +f 4219/5983/512 4220/5984/512 4221/5985/512 +f 4222/5986/512 4221/5987/512 4223/5988/512 +f 4222/5986/512 4224/5989/512 4225/5990/512 +f 4225/5990/512 4226/5991/512 4227/5992/512 +f 4228/5993/512 4226/5994/512 4229/5995/512 +f 4230/5996/512 4229/5997/512 4231/5998/512 +f 4232/5999/512 4231/6000/512 4233/6001/512 +f 4232/5999/512 4234/6002/512 4235/6003/512 +f 4236/6004/512 4234/6005/512 4237/6006/512 +f 4236/6004/512 4238/6007/512 4239/6008/512 +f 4239/6008/512 4240/6009/512 4241/6010/512 +f 4241/6010/512 4242/6011/512 4243/6012/512 +f 4244/6013/512 4245/6014/512 4246/6015/512 +f 4247/6016/512 4242/6017/512 4248/6018/512 +f 4246/6015/512 4220/6019/512 4249/6020/512 +f 4247/6016/512 4250/6021/512 4244/6013/512 +f 4251/6022/512 4252/6023/512 4253/6024/512 +f 4254/6025/512 4255/6026/512 4256/6027/512 +f 4257/6028/524 4258/6029/524 4259/6030/524 +f 4258/6031/525 4254/6025/525 4256/6027/525 +f 4255/6032/526 4258/6031/526 4256/6027/526 +f 4260/6033/512 4261/6034/512 4262/6035/512 +f 4263/6036/512 4262/6037/512 4264/6038/512 +f 4263/6036/512 4265/6039/512 4266/6040/512 +f 4266/6040/512 4267/6041/512 4268/6042/512 +f 4269/6043/512 4267/6044/512 4270/6045/512 +f 4271/6046/512 4270/6047/512 4272/6048/512 +f 4273/6049/512 4272/6050/512 4274/6051/512 +f 4273/6049/512 4275/6052/512 4276/6053/512 +f 4277/6054/512 4275/6055/512 4278/6056/512 +f 4279/6057/512 4278/6058/512 4280/6059/512 +f 4279/6057/512 4281/6060/512 4282/6061/512 +f 4282/6061/512 4283/6062/512 4284/6063/512 +f 4285/6064/512 4286/6065/512 4287/6066/512 +f 4288/6067/512 4283/6068/512 4289/6069/512 +f 4287/6066/512 4261/6070/512 4290/6071/512 +f 4285/6064/512 4289/6072/512 4291/6073/512 +f 4292/6074/512 4293/6075/512 4294/6076/512 +f 4295/6077/512 4296/6078/512 4297/6079/512 +f 4298/6080/527 4299/6081/527 4300/6082/527 +f 4299/6083/528 4295/6077/528 4297/6079/528 +f 4296/6084/529 4299/6083/529 4297/6079/529 +f 4301/6085/530 4302/6086/530 4303/6087/530 +f 4304/6088/531 4305/6089/531 4302/6086/531 +f 4306/6090/532 4304/6091/532 4301/6092/532 +f 4305/6089/533 4303/6093/533 4302/6094/533 +f 4307/6095/520 4308/6096/520 4309/6097/520 +f 4310/6098/512 4311/6099/512 4312/6100/512 +f 4313/6101/534 4314/6102/534 4315/6103/534 +f 4316/6104/535 4317/6105/535 4314/6102/535 +f 4318/6106/536 4316/6107/536 4313/6108/536 +f 4317/6105/537 4315/6109/537 4314/6110/537 +f 4319/6111/520 4320/6112/520 4321/6113/520 +f 4322/6114/512 4323/6115/512 4324/6116/512 +f 4325/6117/538 4326/6118/538 4327/6119/538 +f 4326/6118/539 4328/6120/539 4327/6119/539 +f 4329/6121/540 4326/6122/540 4330/6123/540 +f 4328/6120/541 4325/6124/541 4327/6125/541 +f 4331/6126/520 4332/6127/520 4333/6128/520 +f 4334/6129/512 4335/6130/512 4336/6131/512 +f 4122/5862/512 4337/6132/512 4338/6133/512 +f 4338/6133/512 4339/6134/512 4122/5862/512 +f 4339/6134/512 4123/5863/512 4122/5862/512 +f 4123/5863/512 4340/6135/512 4341/6136/512 +f 4341/6136/512 4342/6137/512 4124/5864/512 +f 4124/5864/512 4343/6138/512 4344/6139/512 +f 4344/6139/512 4345/6140/512 4346/6141/512 +f 4346/6141/512 4347/6142/512 4122/5862/512 +f 4347/6142/512 4348/6143/512 4122/5862/512 +f 4348/6143/512 4349/6144/512 4122/5862/512 +f 4123/5863/512 4341/6136/512 4124/5864/512 +f 4124/5864/512 4344/6139/512 4122/5862/512 +f 4344/6139/512 4346/6141/512 4122/5862/512 +f 4125/5865/512 4155/6145/512 4126/5866/512 +f 4128/5868/512 4125/5865/512 4127/5869/512 +f 4128/5868/512 4129/6146/512 4130/5871/512 +f 4131/5872/512 4130/6147/512 4132/5873/512 +f 4134/5875/512 4133/5874/512 4132/5876/512 +f 4136/5878/512 4134/5875/512 4135/5879/512 +f 4138/5881/512 4136/5878/512 4137/5882/512 +f 4138/5881/512 4139/6148/512 4140/5884/512 +f 4142/5886/512 4141/5885/512 4140/5887/512 +f 4144/5889/512 4142/5886/512 4143/5890/512 +f 4144/5889/512 4145/6149/512 4146/5892/512 +f 4147/5893/512 4146/6150/512 4148/5894/512 +f 4150/5896/512 4156/6151/512 4151/5897/512 +f 4153/5899/512 4149/5895/512 4148/5900/512 +f 4152/5898/512 4151/6152/512 4126/5902/512 +f 4153/5899/512 4154/6153/512 4156/5904/512 +f 4159/5907/512 4350/6154/512 4351/6155/512 +f 4351/6155/512 4352/6156/512 4159/5907/512 +f 4352/6156/512 4353/6157/512 4159/5907/512 +f 4353/6157/512 4354/6158/512 4355/6159/512 +f 4355/6159/512 4356/6160/512 4157/5905/512 +f 4157/5905/512 4357/6161/512 4158/5906/512 +f 4357/6161/512 4358/6162/512 4158/5906/512 +f 4358/6162/512 4359/6163/512 4158/5906/512 +f 4158/5906/512 4360/6164/512 4361/6165/512 +f 4361/6165/512 4362/6166/512 4159/5907/512 +f 4353/6157/512 4355/6159/512 4159/5907/512 +f 4355/6159/512 4157/5905/512 4159/5907/512 +f 4158/5906/512 4361/6165/512 4159/5907/512 +f 4160/5908/513 4163/5911/513 4161/5909/513 +f 4163/5911/514 4165/5913/514 4164/5912/514 +f 4170/5924/518 4169/5921/518 4166/5918/518 +f 4167/5925/519 4171/6167/519 4170/5924/519 +f 4174/5928/520 4363/6168/520 4172/5926/520 +f 4172/5926/520 4364/6169/520 4173/5927/520 +f 4173/5927/520 4365/6170/520 4174/5928/520 +f 4177/5931/512 4366/6171/512 4367/6172/512 +f 4367/6172/512 4368/6173/512 4177/5931/512 +f 4368/6173/512 4175/5929/512 4177/5931/512 +f 4178/5932/512 4208/6174/512 4179/5933/512 +f 4181/5935/512 4178/5932/512 4180/5936/512 +f 4181/5935/512 4182/6175/512 4183/5938/512 +f 4184/5939/512 4183/6176/512 4185/5940/512 +f 4187/5942/512 4186/5941/512 4185/5943/512 +f 4189/5945/512 4187/5942/512 4188/5946/512 +f 4191/5948/512 4189/5945/512 4190/5949/512 +f 4191/5948/512 4192/6177/512 4193/5951/512 +f 4195/5953/512 4194/5952/512 4193/5954/512 +f 4197/5956/512 4195/5953/512 4196/5957/512 +f 4197/5956/512 4198/6178/512 4199/5959/512 +f 4200/5960/512 4199/6179/512 4201/5961/512 +f 4203/5963/512 4209/6180/512 4204/5964/512 +f 4206/5966/512 4202/5962/512 4201/5967/512 +f 4205/5965/512 4204/6181/512 4179/5969/512 +f 4206/5966/512 4207/6182/512 4209/5971/512 +f 4212/5974/512 4369/6183/512 4370/6184/512 +f 4370/6184/512 4371/6185/512 4372/6186/512 +f 4372/6186/512 4373/6187/512 4374/6188/512 +f 4374/6188/512 4375/6189/512 4376/6190/512 +f 4376/6190/512 4377/6191/512 4378/6192/512 +f 4378/6192/512 4379/6193/512 4210/5972/512 +f 4210/5972/512 4380/6194/512 4211/5973/512 +f 4211/5973/512 4381/6195/512 4212/5974/512 +f 4212/5974/512 4370/6184/512 4376/6190/512 +f 4370/6184/512 4372/6186/512 4376/6190/512 +f 4372/6186/512 4374/6188/512 4376/6190/512 +f 4376/6190/512 4378/6192/512 4212/5974/512 +f 4378/6192/512 4210/5972/512 4212/5974/512 +f 4217/5981/522 4216/5978/522 4213/5975/522 +f 4214/5982/523 4218/6196/523 4217/5981/523 +f 4219/5983/512 4249/6197/512 4220/5984/512 +f 4222/5986/512 4219/5983/512 4221/5987/512 +f 4222/5986/512 4223/6198/512 4224/5989/512 +f 4225/5990/512 4224/6199/512 4226/5991/512 +f 4228/5993/512 4227/5992/512 4226/5994/512 +f 4230/5996/512 4228/5993/512 4229/5997/512 +f 4232/5999/512 4230/5996/512 4231/6000/512 +f 4232/5999/512 4233/6200/512 4234/6002/512 +f 4236/6004/512 4235/6003/512 4234/6005/512 +f 4236/6004/512 4237/6201/512 4238/6007/512 +f 4239/6008/512 4238/6202/512 4240/6009/512 +f 4241/6010/512 4240/6203/512 4242/6011/512 +f 4244/6013/512 4250/6204/512 4245/6014/512 +f 4247/6016/512 4243/6012/512 4242/6017/512 +f 4246/6015/512 4245/6205/512 4220/6019/512 +f 4247/6016/512 4248/6206/512 4250/6021/512 +f 4253/6024/512 4382/6207/512 4383/6208/512 +f 4383/6208/512 4384/6209/512 4385/6210/512 +f 4385/6210/512 4386/6211/512 4387/6212/512 +f 4387/6212/512 4388/6213/512 4251/6022/512 +f 4251/6022/512 4389/6214/512 4252/6023/512 +f 4389/6214/512 4390/6215/512 4252/6023/512 +f 4390/6215/512 4391/6216/512 4252/6023/512 +f 4252/6023/512 4392/6217/512 4393/6218/512 +f 4393/6218/512 4394/6219/512 4253/6024/512 +f 4253/6024/512 4383/6208/512 4385/6210/512 +f 4385/6210/512 4387/6212/512 4253/6024/512 +f 4387/6212/512 4251/6022/512 4253/6024/512 +f 4252/6023/512 4393/6218/512 4253/6024/512 +f 4258/6031/525 4257/6028/525 4254/6025/525 +f 4255/6032/526 4259/6220/526 4258/6031/526 +f 4260/6033/512 4290/6221/512 4261/6034/512 +f 4263/6036/512 4260/6033/512 4262/6037/512 +f 4263/6036/512 4264/6222/512 4265/6039/512 +f 4266/6040/512 4265/6223/512 4267/6041/512 +f 4269/6043/512 4268/6042/512 4267/6044/512 +f 4271/6046/512 4269/6043/512 4270/6047/512 +f 4273/6049/512 4271/6046/512 4272/6050/512 +f 4273/6049/512 4274/6224/512 4275/6052/512 +f 4277/6054/512 4276/6053/512 4275/6055/512 +f 4279/6057/512 4277/6054/512 4278/6058/512 +f 4279/6057/512 4280/6225/512 4281/6060/512 +f 4282/6061/512 4281/6226/512 4283/6062/512 +f 4285/6064/512 4291/6227/512 4286/6065/512 +f 4288/6067/512 4284/6063/512 4283/6068/512 +f 4287/6066/512 4286/6228/512 4261/6070/512 +f 4285/6064/512 4288/6067/512 4289/6072/512 +f 4294/6076/512 4395/6229/512 4396/6230/512 +f 4396/6230/512 4397/6231/512 4294/6076/512 +f 4397/6231/512 4398/6232/512 4294/6076/512 +f 4398/6232/512 4399/6233/512 4400/6234/512 +f 4400/6234/512 4401/6235/512 4292/6074/512 +f 4292/6074/512 4402/6236/512 4293/6075/512 +f 4402/6236/512 4403/6237/512 4293/6075/512 +f 4403/6237/512 4404/6238/512 4293/6075/512 +f 4293/6075/512 4405/6239/512 4406/6240/512 +f 4406/6240/512 4407/6241/512 4294/6076/512 +f 4398/6232/512 4400/6234/512 4294/6076/512 +f 4400/6234/512 4292/6074/512 4294/6076/512 +f 4293/6075/512 4406/6240/512 4294/6076/512 +f 4299/6083/528 4298/6080/528 4295/6077/528 +f 4296/6084/529 4300/6242/529 4299/6083/529 +f 4301/6085/530 4304/6088/530 4302/6086/530 +f 4304/6088/531 4306/6090/531 4305/6089/531 +f 4308/6096/520 4408/6243/520 4309/6097/520 +f 4309/6097/520 4409/6244/520 4410/6245/520 +f 4410/6245/520 4307/6095/520 4309/6097/520 +f 4312/6100/512 4411/6246/512 4412/6247/512 +f 4412/6247/512 4413/6248/512 4312/6100/512 +f 4413/6248/512 4310/6098/512 4312/6100/512 +f 4313/6101/534 4316/6104/534 4314/6102/534 +f 4316/6104/535 4318/6106/535 4317/6105/535 +f 4321/6113/520 4414/6249/520 4319/6111/520 +f 4319/6111/520 4415/6250/520 4320/6112/520 +f 4320/6112/520 4416/6251/520 4321/6113/520 +f 4324/6116/512 4417/6252/512 4418/6253/512 +f 4418/6253/512 4419/6254/512 4324/6116/512 +f 4419/6254/512 4322/6114/512 4324/6116/512 +f 4325/6117/538 4330/6255/538 4326/6118/538 +f 4326/6118/539 4329/6121/539 4328/6120/539 +f 4333/6128/520 4420/6256/520 4331/6126/520 +f 4331/6126/520 4421/6257/520 4332/6127/520 +f 4332/6127/520 4422/6258/520 4333/6128/520 +f 4336/6131/512 4423/6259/512 4424/6260/512 +f 4424/6260/512 4425/6261/512 4336/6131/512 +f 4425/6261/512 4334/6129/512 4336/6131/512 s 1 -f 4426/6244/542 4427/6245/543 4428/6246/520 -f 4429/6247/544 4426/6244/542 4428/6248/520 -f 4430/6249/545 4429/6247/544 4428/6250/520 -f 4431/6251/546 4430/6249/545 4428/6252/520 -f 4432/6253/547 4431/6251/546 4428/6254/520 -f 4433/6255/548 4432/6253/547 4428/6256/520 -f 4434/6257/549 4433/6255/548 4428/6258/520 -f 4435/6259/550 4434/6257/549 4428/6260/520 -f 4435/6259/550 4428/6261/520 4436/6262/551 -f 4437/6263/552 4436/6262/551 4428/6264/520 -f 4438/6265/553 4437/6263/552 4428/6266/520 -f 4439/6267/554 4438/6265/553 4428/6268/520 -f 4440/6269/555 4439/6270/554 4428/6271/520 -f 4441/6272/556 4440/6269/555 4428/6273/520 -f 4442/6274/557 4441/6272/556 4428/6275/520 -f 4427/6245/543 4442/6274/557 4428/6276/520 -f 4440/6269/558 4443/6277/559 4439/6270/559 -f 4432/6253/560 4444/6278/561 4431/6251/561 -f 4439/6267/559 4445/6279/562 4438/6265/562 -f 4431/6251/561 4446/6280/563 4430/6249/563 -f 4438/6265/562 4447/6281/564 4437/6263/564 -f 4430/6249/563 4448/6282/565 4429/6247/565 -f 4437/6263/564 4449/6283/566 4436/6262/566 -f 4429/6247/565 4450/6284/567 4426/6244/567 -f 4436/6262/566 4451/6285/568 4435/6259/568 -f 4427/6245/569 4452/6286/570 4442/6274/570 -f 4426/6244/567 4453/6287/569 4427/6245/569 -f 4435/6259/568 4454/6288/571 4434/6257/571 -f 4442/6274/570 4455/6289/572 4441/6272/572 -f 4434/6257/571 4456/6290/573 4433/6255/573 -f 4441/6272/572 4457/6291/558 4440/6269/558 -f 4433/6255/573 4458/6292/560 4432/6253/560 -f 4451/6285/574 4459/6293/575 4454/6288/575 -f 4452/6286/576 4460/6294/577 4455/6289/577 -f 4454/6288/575 4461/6295/578 4456/6290/578 -f 4455/6289/577 4462/6296/579 4457/6291/579 -f 4456/6290/578 4463/6297/580 4458/6292/580 -f 4457/6291/579 4464/6298/581 4443/6277/581 -f 4458/6292/580 4465/6299/582 4444/6278/582 -f 4443/6300/581 4466/6301/583 4445/6279/583 -f 4444/6278/582 4467/6302/584 4446/6280/584 -f 4445/6279/583 4468/6303/585 4447/6281/585 -f 4446/6280/584 4469/6304/586 4448/6282/586 -f 4447/6281/585 4470/6305/587 4449/6283/587 -f 4448/6282/586 4471/6306/588 4450/6284/588 -f 4449/6283/587 4472/6307/574 4451/6285/574 -f 4453/6287/589 4473/6308/576 4452/6286/576 -f 4450/6284/588 4474/6309/589 4453/6287/589 -f 4467/6310/563 4123/6311/565 4469/6312/565 -f 4468/6313/564 4345/6314/566 4470/6315/566 -f 4469/6312/565 4339/6316/567 4471/6317/567 -f 4470/6315/566 4344/6318/568 4472/6319/568 -f 4474/6320/569 4337/6321/570 4473/6322/570 -f 4471/6317/567 4338/6323/569 4474/6320/569 -f 4472/6319/568 4343/6324/571 4459/6325/571 -f 4473/6322/570 4122/6326/572 4460/6327/572 -f 4459/6325/571 4124/6328/573 4461/6329/573 -f 4460/6327/572 4349/6330/558 4462/6331/558 -f 4461/6329/573 4342/6332/560 4463/6333/560 -f 4462/6331/558 4348/6334/559 4464/6335/559 -f 4463/6333/560 4341/6336/561 4465/6337/561 -f 4464/6338/559 4347/6339/562 4466/6301/562 -f 4465/6337/561 4340/6340/563 4467/6310/563 -f 4466/6301/562 4346/6341/564 4468/6313/564 -f 4155/5885/564 4475/6342/562 4152/5880/562 -f 4141/5867/565 4476/6343/563 4138/5863/563 -f 4125/5847/566 4477/6344/564 4155/6127/564 -f 4142/5868/567 4478/6345/565 4141/5867/565 -f 4128/5850/568 4479/6346/566 4125/5847/566 -f 4144/5871/569 4480/6347/567 4142/5868/567 -f 4131/5854/571 4481/6348/568 4128/5850/568 -f 4147/5875/570 4482/6349/569 4144/5871/569 -f 4133/5856/573 4483/6350/571 4131/5854/571 -f 4149/5877/572 4484/6351/570 4147/5875/570 -f 4134/5857/560 4485/6352/573 4133/5856/573 -f 4153/5881/558 4486/6353/572 4149/5877/572 -f 4136/5860/561 4487/6354/560 4134/5857/560 -f 4152/5880/562 4488/6355/559 4150/5878/559 -f 4150/5878/559 4489/6356/558 4153/5881/558 -f 4138/5863/563 4490/6357/561 4136/5860/561 -f 4482/6349/590 4491/6358/591 4480/6347/592 -f 4478/6345/593 4480/6347/592 4491/6359/591 -f 4476/6343/594 4478/6345/593 4491/6360/591 -f 4490/6357/595 4476/6343/594 4491/6361/591 -f 4487/6354/596 4490/6357/595 4491/6362/591 -f 4485/6352/597 4487/6354/596 4491/6363/591 -f 4483/6350/598 4485/6352/597 4491/6364/591 -f 4481/6348/599 4483/6350/598 4491/6365/591 -f 4479/6346/600 4481/6348/599 4491/6366/591 -f 4477/6344/601 4479/6346/600 4491/6367/591 -f 4475/6342/602 4477/6368/601 4491/6369/591 -f 4488/6355/603 4475/6342/602 4491/6370/591 -f 4489/6356/604 4488/6355/603 4491/6371/591 -f 4486/6353/605 4489/6356/604 4491/6372/591 -f 4484/6351/606 4486/6353/605 4491/6373/591 -f 4482/6349/590 4484/6351/606 4491/6374/591 -f 4140/5866/607 4357/6375/608 4157/6376/607 -f 4140/5869/607 4356/6377/609 4143/5870/609 -f 4143/5872/609 4355/6378/610 4145/5873/610 -f 4145/6131/610 4354/6379/611 4146/5874/611 -f 4148/5876/612 4354/6379/611 4353/6380/612 -f 4151/5879/613 4351/6381/614 4350/6382/613 -f 4148/5882/612 4352/6383/615 4154/5883/615 -f 4151/6134/613 4159/6384/616 4126/5884/616 -f 4154/6135/615 4351/6381/614 4156/5886/614 -f 4127/5849/617 4159/6385/616 4362/6386/617 -f 4127/5851/617 4361/6387/618 4129/5852/618 -f 4129/6128/618 4360/6388/619 4130/5853/619 -f 4130/6129/619 4158/6389/620 4132/5855/620 -f 4132/5858/620 4359/6390/621 4135/5859/621 -f 4135/5861/621 4358/6391/622 4137/5862/622 -f 4137/5864/622 4357/6375/608 4139/5865/608 -f 4172/6392/559 4367/6393/623 4366/6394/559 -f 4363/6395/623 4368/6396/624 4367/6393/623 -f 4174/6397/624 4175/6398/561 4368/6396/624 -f 4365/6399/561 4176/6400/625 4175/6398/561 -f 4173/6401/625 4177/6402/626 4176/6400/625 -f 4364/6403/626 4366/6394/559 4177/6404/626 -f 4208/5952/565 4492/6405/563 4205/5947/563 -f 4194/5934/564 4493/6406/562 4191/5930/562 -f 4178/5914/567 4494/6407/565 4208/6156/565 -f 4195/5935/566 4495/6408/564 4194/5934/564 -f 4181/5917/569 4496/6409/567 4178/5914/567 -f 4197/5938/568 4497/6410/566 4195/5935/566 -f 4184/5921/570 4498/6411/569 4181/5917/569 -f 4200/5942/571 4499/6412/568 4197/5938/568 -f 4186/5923/572 4500/6413/570 4184/5921/570 -f 4202/5944/573 4501/6414/571 4200/5942/571 -f 4187/5924/558 4502/6415/572 4186/5923/572 -f 4206/5948/560 4503/6416/573 4202/5944/573 -f 4189/5927/559 4504/6417/558 4187/5924/558 -f 4205/5947/563 4505/6418/561 4203/5945/561 -f 4203/5945/561 4506/6419/560 4206/5948/560 -f 4191/5930/562 4507/6420/559 4189/5927/559 -f 4499/6412/627 4508/6421/628 4497/6410/629 -f 4495/6408/630 4497/6410/629 4508/6422/628 -f 4493/6406/631 4495/6408/630 4508/6423/628 -f 4507/6420/632 4493/6406/631 4508/6424/628 -f 4504/6417/633 4507/6420/632 4508/6425/628 -f 4502/6415/634 4504/6417/633 4508/6426/628 -f 4500/6413/635 4502/6415/634 4508/6427/628 -f 4498/6411/636 4500/6413/635 4508/6428/628 -f 4496/6409/637 4498/6411/636 4508/6429/628 -f 4494/6407/638 4496/6409/637 4508/6430/628 -f 4492/6405/639 4494/6431/638 4508/6432/628 -f 4505/6418/640 4492/6405/639 4508/6433/628 -f 4506/6419/641 4505/6418/640 4508/6434/628 -f 4503/6416/642 4506/6419/641 4508/6435/628 -f 4501/6414/643 4503/6416/642 4508/6436/628 -f 4499/6412/627 4501/6414/643 4508/6437/628 -f 4193/5933/616 4377/6438/613 4376/6439/616 -f 4193/5936/616 4375/6440/617 4196/5937/617 -f 4196/5939/617 4374/6441/618 4198/5940/618 -f 4199/5941/619 4374/6441/618 4373/6442/619 -f 4201/5943/620 4373/6442/619 4372/6443/620 -f 4209/6162/622 4369/6444/608 4204/5946/608 -f 4201/5949/620 4371/6445/621 4207/5950/621 -f 4179/5951/607 4369/6444/608 4212/6446/607 -f 4207/6164/621 4370/6447/622 4209/5953/622 -f 4179/5915/607 4381/6448/609 4180/5916/609 -f 4180/5918/609 4211/6449/610 4182/5919/610 -f 4182/6157/610 4380/6450/611 4183/5920/611 -f 4183/6158/611 4210/6451/612 4185/5922/612 -f 4185/5925/612 4379/6452/615 4188/5926/615 -f 4188/5928/615 4378/6453/614 4190/5929/614 -f 4190/5931/614 4377/6438/613 4192/5932/613 -f 4249/6002/573 4509/6454/571 4246/5997/571 -f 4235/5985/572 4510/6455/570 4232/5981/570 -f 4219/5965/560 4511/6456/573 4249/6179/573 -f 4236/5986/558 4512/6457/572 4235/5985/572 -f 4222/5968/561 4513/6458/560 4219/5965/560 -f 4239/5990/559 4514/6459/558 4236/5986/558 -f 4225/5972/563 4515/6460/561 4222/5968/561 -f 4241/5992/562 4516/6461/559 4239/5990/559 -f 4227/5974/565 4517/6462/563 4225/5972/563 -f 4243/5994/564 4518/6463/562 4241/5992/562 -f 4228/5975/567 4519/6464/565 4227/5974/565 -f 4247/5998/566 4520/6465/564 4243/5994/564 -f 4230/5978/569 4521/6466/567 4228/5975/567 -f 4246/5997/571 4522/6467/568 4244/5995/568 -f 4244/5995/568 4523/6468/566 4247/5998/566 -f 4232/5981/570 4524/6469/569 4230/5978/569 -f 4516/6461/644 4525/6470/645 4514/6459/646 -f 4512/6457/647 4514/6459/646 4525/6471/645 -f 4510/6455/648 4512/6457/647 4525/6472/645 -f 4524/6469/649 4510/6455/648 4525/6473/645 -f 4521/6466/650 4524/6469/649 4525/6474/645 -f 4519/6464/651 4521/6466/650 4525/6475/645 -f 4517/6462/652 4519/6464/651 4525/6476/645 -f 4515/6460/653 4517/6462/652 4525/6477/645 -f 4513/6458/654 4515/6460/653 4525/6478/645 -f 4511/6456/655 4513/6458/654 4525/6479/645 -f 4509/6454/656 4511/6480/655 4525/6481/645 -f 4522/6467/657 4509/6454/656 4525/6482/645 -f 4523/6468/658 4522/6467/657 4525/6483/645 -f 4520/6465/659 4523/6468/658 4525/6484/645 -f 4518/6463/660 4520/6465/659 4525/6485/645 -f 4516/6461/644 4518/6463/660 4525/6486/645 -f 4233/6182/611 4251/6487/612 4234/5984/612 -f 4234/5987/612 4388/6488/615 4237/5988/615 -f 4237/6183/615 4387/6489/614 4238/5989/614 -f 4238/6184/614 4386/6490/613 4240/5991/613 -f 4242/5993/616 4386/6490/613 4385/6491/616 -f 4250/6186/618 4382/6492/619 4245/5996/619 -f 4242/5999/616 4384/6493/617 4248/6000/617 -f 4245/6187/619 4253/6494/620 4220/6001/620 -f 4248/6188/617 4383/6495/618 4250/6003/618 -f 4221/5967/621 4253/6496/620 4394/6497/621 -f 4221/5969/621 4393/6498/622 4223/5970/622 -f 4223/6180/622 4392/6499/608 4224/5971/608 -f 4224/6181/608 4252/6500/607 4226/5973/607 -f 4226/5976/607 4391/6501/609 4229/5977/609 -f 4229/5979/609 4390/6502/610 4231/5980/610 -f 4231/5982/610 4389/6503/611 4233/5983/611 -f 4290/6053/572 4526/6504/570 4287/6048/570 -f 4276/6035/573 4527/6505/571 4273/6031/571 -f 4260/6015/558 4528/6506/572 4290/6203/572 -f 4277/6036/560 4529/6507/573 4276/6035/573 -f 4263/6018/559 4530/6508/558 4260/6015/558 -f 4279/6039/561 4531/6509/560 4277/6036/560 -f 4266/6022/562 4532/6510/559 4263/6018/559 -f 4282/6043/563 4533/6511/561 4279/6039/561 -f 4268/6024/564 4534/6512/562 4266/6022/562 -f 4284/6045/565 4535/6513/563 4282/6043/563 -f 4269/6025/566 4536/6514/564 4268/6024/564 -f 4288/6049/567 4537/6515/565 4284/6045/565 -f 4271/6028/568 4538/6516/566 4269/6025/566 -f 4287/6048/570 4539/6517/569 4285/6046/569 -f 4285/6046/569 4540/6518/567 4288/6049/567 -f 4273/6031/571 4541/6519/568 4271/6028/568 -f 4533/6511/661 4542/6520/662 4531/6509/663 -f 4529/6507/664 4531/6509/663 4542/6521/662 -f 4527/6505/665 4529/6507/664 4542/6522/662 -f 4541/6519/666 4527/6505/665 4542/6523/662 -f 4538/6516/667 4541/6519/666 4542/6524/662 -f 4536/6514/668 4538/6516/667 4542/6525/662 -f 4534/6512/669 4536/6514/668 4542/6526/662 -f 4532/6510/670 4534/6512/669 4542/6527/662 -f 4530/6508/671 4532/6510/670 4542/6528/662 -f 4528/6506/672 4530/6508/671 4542/6529/662 -f 4526/6504/673 4528/6530/672 4542/6531/662 -f 4539/6517/674 4526/6504/673 4542/6532/662 -f 4540/6518/675 4539/6517/674 4542/6533/662 -f 4537/6515/676 4540/6518/675 4542/6534/662 -f 4535/6513/677 4537/6515/676 4542/6535/662 -f 4533/6511/661 4535/6513/677 4542/6536/662 -f 4275/6034/620 4402/6537/619 4292/6538/620 -f 4275/6037/620 4401/6539/621 4278/6038/621 -f 4278/6040/621 4400/6540/622 4280/6041/622 -f 4281/6042/608 4400/6540/622 4399/6541/608 -f 4281/6208/608 4398/6542/607 4283/6044/607 -f 4291/6209/610 4395/6543/611 4286/6047/611 -f 4289/6051/609 4398/6542/607 4397/6544/609 -f 4261/6052/612 4395/6543/611 4294/6545/612 -f 4289/6054/609 4396/6546/610 4291/6055/610 -f 4262/6017/615 4294/6547/612 4407/6548/615 -f 4262/6019/615 4406/6549/614 4264/6020/614 -f 4265/6021/613 4406/6549/614 4405/6550/613 -f 4265/6205/613 4293/6551/616 4267/6023/616 -f 4267/6026/616 4404/6552/617 4270/6027/617 -f 4270/6029/617 4403/6553/618 4272/6030/618 -f 4272/6032/618 4402/6537/619 4274/6033/619 -f 4309/6554/561 4412/6555/625 4411/6556/561 -f 4408/6557/625 4413/6558/626 4412/6555/625 -f 4308/6559/626 4310/6560/559 4413/6558/626 -f 4307/6561/559 4311/6562/623 4310/6560/559 -f 4410/6563/623 4312/6564/624 4311/6562/623 -f 4409/6565/624 4411/6556/561 4312/6566/624 -f 4319/6567/568 4418/6568/678 4417/6569/568 -f 4414/6570/678 4419/6571/679 4418/6568/678 -f 4321/6572/679 4322/6573/569 4419/6571/679 -f 4416/6574/569 4323/6575/680 4322/6573/569 -f 4320/6576/680 4324/6577/681 4323/6575/680 -f 4415/6578/681 4417/6569/568 4324/6579/681 -f 4331/6580/569 4424/6581/680 4423/6582/569 -f 4420/6583/680 4425/6584/681 4424/6581/680 -f 4333/6585/681 4334/6586/568 4425/6584/681 -f 4422/6587/568 4335/6588/678 4334/6586/568 -f 4332/6589/678 4336/6590/679 4335/6588/678 -f 4421/6591/679 4423/6582/569 4336/6592/679 -f 4440/6269/558 4457/6291/558 4443/6277/559 -f 4432/6253/560 4458/6292/560 4444/6278/561 -f 4439/6267/559 4443/6300/559 4445/6279/562 -f 4431/6251/561 4444/6278/561 4446/6280/563 -f 4438/6265/562 4445/6279/562 4447/6281/564 -f 4430/6249/563 4446/6280/563 4448/6282/565 -f 4437/6263/564 4447/6281/564 4449/6283/566 -f 4429/6247/565 4448/6282/565 4450/6284/567 -f 4436/6262/566 4449/6283/566 4451/6285/568 -f 4427/6245/569 4453/6287/569 4452/6286/570 -f 4426/6244/567 4450/6284/567 4453/6287/569 -f 4435/6259/568 4451/6285/568 4454/6288/571 -f 4442/6274/570 4452/6286/570 4455/6289/572 -f 4434/6257/571 4454/6288/571 4456/6290/573 -f 4441/6272/572 4455/6289/572 4457/6291/558 -f 4433/6255/573 4456/6290/573 4458/6292/560 -f 4451/6285/574 4472/6593/574 4459/6293/575 -f 4452/6286/576 4473/6594/576 4460/6294/577 -f 4454/6288/575 4459/6595/575 4461/6295/578 -f 4455/6289/577 4460/6596/577 4462/6296/579 -f 4456/6290/578 4461/6597/578 4463/6297/580 -f 4457/6291/579 4462/6598/579 4464/6298/581 -f 4458/6292/580 4463/6599/580 4465/6299/582 -f 4443/6300/581 4464/6338/581 4466/6301/583 -f 4444/6278/582 4465/6600/582 4467/6302/584 -f 4445/6279/583 4466/6601/583 4468/6303/585 -f 4446/6280/584 4467/6602/584 4469/6304/586 -f 4447/6281/585 4468/6603/585 4470/6305/587 -f 4448/6282/586 4469/6604/586 4471/6306/588 -f 4449/6283/587 4470/6605/587 4472/6307/574 -f 4453/6287/589 4474/6606/589 4473/6308/576 -f 4450/6284/588 4471/6607/588 4474/6309/589 -f 4467/6310/563 4340/6340/563 4123/6311/565 -f 4468/6313/564 4346/6341/564 4345/6314/566 -f 4469/6312/565 4123/6311/565 4339/6316/567 -f 4470/6315/566 4345/6314/566 4344/6318/568 -f 4474/6320/569 4338/6323/569 4337/6321/570 -f 4471/6317/567 4339/6316/567 4338/6323/569 -f 4472/6319/568 4344/6318/568 4343/6324/571 -f 4473/6322/570 4337/6321/570 4122/6326/572 -f 4459/6325/571 4343/6324/571 4124/6328/573 -f 4460/6327/572 4122/6326/572 4349/6330/558 -f 4461/6329/573 4124/6328/573 4342/6332/560 -f 4462/6331/558 4349/6330/558 4348/6334/559 -f 4463/6333/560 4342/6332/560 4341/6336/561 -f 4464/6338/559 4348/6608/559 4347/6339/562 -f 4465/6337/561 4341/6336/561 4340/6340/563 -f 4466/6301/562 4347/6339/562 4346/6341/564 -f 4155/5885/564 4477/6368/564 4475/6342/562 -f 4141/5867/565 4478/6345/565 4476/6343/563 -f 4125/5847/566 4479/6346/566 4477/6344/564 -f 4142/5868/567 4480/6347/567 4478/6345/565 -f 4128/5850/568 4481/6348/568 4479/6346/566 -f 4144/5871/569 4482/6349/569 4480/6347/567 -f 4131/5854/571 4483/6350/571 4481/6348/568 -f 4147/5875/570 4484/6351/570 4482/6349/569 -f 4133/5856/573 4485/6352/573 4483/6350/571 -f 4149/5877/572 4486/6353/572 4484/6351/570 -f 4134/5857/560 4487/6354/560 4485/6352/573 -f 4153/5881/558 4489/6356/558 4486/6353/572 -f 4136/5860/561 4490/6357/561 4487/6354/560 -f 4152/5880/562 4475/6342/562 4488/6355/559 -f 4150/5878/559 4488/6355/559 4489/6356/558 -f 4138/5863/563 4476/6343/563 4490/6357/561 -f 4140/5866/607 4139/6130/608 4357/6375/608 -f 4140/5869/607 4157/6376/607 4356/6377/609 -f 4143/5872/609 4356/6377/609 4355/6378/610 -f 4145/6131/610 4355/6378/610 4354/6379/611 -f 4148/5876/612 4146/6132/611 4354/6379/611 -f 4151/5879/613 4156/6133/614 4351/6381/614 -f 4148/5882/612 4353/6380/612 4352/6383/615 -f 4151/6134/613 4350/6382/613 4159/6384/616 -f 4154/6135/615 4352/6383/615 4351/6381/614 -f 4127/5849/617 4126/5848/616 4159/6385/616 -f 4127/5851/617 4362/6386/617 4361/6387/618 -f 4129/6128/618 4361/6387/618 4360/6388/619 -f 4130/6129/619 4360/6388/619 4158/6389/620 -f 4132/5858/620 4158/6389/620 4359/6390/621 -f 4135/5861/621 4359/6390/621 4358/6391/622 -f 4137/5864/622 4358/6391/622 4357/6375/608 -f 4172/6392/559 4363/6395/623 4367/6393/623 -f 4363/6395/623 4174/6397/624 4368/6396/624 -f 4174/6397/624 4365/6399/561 4175/6398/561 -f 4365/6399/561 4173/6401/625 4176/6400/625 -f 4173/6401/625 4364/6609/626 4177/6402/626 -f 4364/6403/626 4172/6392/559 4366/6394/559 -f 4208/5952/565 4494/6431/565 4492/6405/563 -f 4194/5934/564 4495/6408/564 4493/6406/562 -f 4178/5914/567 4496/6409/567 4494/6407/565 -f 4195/5935/566 4497/6410/566 4495/6408/564 -f 4181/5917/569 4498/6411/569 4496/6409/567 -f 4197/5938/568 4499/6412/568 4497/6410/566 -f 4184/5921/570 4500/6413/570 4498/6411/569 -f 4200/5942/571 4501/6414/571 4499/6412/568 -f 4186/5923/572 4502/6415/572 4500/6413/570 -f 4202/5944/573 4503/6416/573 4501/6414/571 -f 4187/5924/558 4504/6417/558 4502/6415/572 -f 4206/5948/560 4506/6419/560 4503/6416/573 -f 4189/5927/559 4507/6420/559 4504/6417/558 -f 4205/5947/563 4492/6405/563 4505/6418/561 -f 4203/5945/561 4505/6418/561 4506/6419/560 -f 4191/5930/562 4493/6406/562 4507/6420/559 -f 4193/5933/616 4192/6159/613 4377/6438/613 -f 4193/5936/616 4376/6439/616 4375/6440/617 -f 4196/5939/617 4375/6440/617 4374/6441/618 -f 4199/5941/619 4198/6160/618 4374/6441/618 -f 4201/5943/620 4199/6161/619 4373/6442/619 -f 4209/6162/622 4370/6447/622 4369/6444/608 -f 4201/5949/620 4372/6443/620 4371/6445/621 -f 4179/5951/607 4204/6163/608 4369/6444/608 -f 4207/6164/621 4371/6445/621 4370/6447/622 -f 4179/5915/607 4212/6610/607 4381/6448/609 -f 4180/5918/609 4381/6448/609 4211/6449/610 -f 4182/6157/610 4211/6449/610 4380/6450/611 -f 4183/6158/611 4380/6450/611 4210/6451/612 -f 4185/5925/612 4210/6451/612 4379/6452/615 -f 4188/5928/615 4379/6452/615 4378/6453/614 -f 4190/5931/614 4378/6453/614 4377/6438/613 -f 4249/6002/573 4511/6480/573 4509/6454/571 -f 4235/5985/572 4512/6457/572 4510/6455/570 -f 4219/5965/560 4513/6458/560 4511/6456/573 -f 4236/5986/558 4514/6459/558 4512/6457/572 -f 4222/5968/561 4515/6460/561 4513/6458/560 -f 4239/5990/559 4516/6461/559 4514/6459/558 -f 4225/5972/563 4517/6462/563 4515/6460/561 -f 4241/5992/562 4518/6463/562 4516/6461/559 -f 4227/5974/565 4519/6464/565 4517/6462/563 -f 4243/5994/564 4520/6465/564 4518/6463/562 -f 4228/5975/567 4521/6466/567 4519/6464/565 -f 4247/5998/566 4523/6468/566 4520/6465/564 -f 4230/5978/569 4524/6469/569 4521/6466/567 -f 4246/5997/571 4509/6454/571 4522/6467/568 -f 4244/5995/568 4522/6467/568 4523/6468/566 -f 4232/5981/570 4510/6455/570 4524/6469/569 -f 4233/6182/611 4389/6503/611 4251/6487/612 -f 4234/5987/612 4251/6487/612 4388/6488/615 -f 4237/6183/615 4388/6488/615 4387/6489/614 -f 4238/6184/614 4387/6489/614 4386/6490/613 -f 4242/5993/616 4240/6185/613 4386/6490/613 -f 4250/6186/618 4383/6495/618 4382/6492/619 -f 4242/5999/616 4385/6491/616 4384/6493/617 -f 4245/6187/619 4382/6492/619 4253/6494/620 -f 4248/6188/617 4384/6493/617 4383/6495/618 -f 4221/5967/621 4220/5966/620 4253/6496/620 -f 4221/5969/621 4394/6497/621 4393/6498/622 -f 4223/6180/622 4393/6498/622 4392/6499/608 -f 4224/6181/608 4392/6499/608 4252/6500/607 -f 4226/5976/607 4252/6500/607 4391/6501/609 -f 4229/5979/609 4391/6501/609 4390/6502/610 -f 4231/5982/610 4390/6502/610 4389/6503/611 -f 4290/6053/572 4528/6530/572 4526/6504/570 -f 4276/6035/573 4529/6507/573 4527/6505/571 -f 4260/6015/558 4530/6508/558 4528/6506/572 -f 4277/6036/560 4531/6509/560 4529/6507/573 -f 4263/6018/559 4532/6510/559 4530/6508/558 -f 4279/6039/561 4533/6511/561 4531/6509/560 -f 4266/6022/562 4534/6512/562 4532/6510/559 -f 4282/6043/563 4535/6513/563 4533/6511/561 -f 4268/6024/564 4536/6514/564 4534/6512/562 -f 4284/6045/565 4537/6515/565 4535/6513/563 -f 4269/6025/566 4538/6516/566 4536/6514/564 -f 4288/6049/567 4540/6518/567 4537/6515/565 -f 4271/6028/568 4541/6519/568 4538/6516/566 -f 4287/6048/570 4526/6504/570 4539/6517/569 -f 4285/6046/569 4539/6517/569 4540/6518/567 -f 4273/6031/571 4527/6505/571 4541/6519/568 -f 4275/6034/620 4274/6206/619 4402/6537/619 -f 4275/6037/620 4292/6538/620 4401/6539/621 -f 4278/6040/621 4401/6539/621 4400/6540/622 -f 4281/6042/608 4280/6207/622 4400/6540/622 -f 4281/6208/608 4399/6541/608 4398/6542/607 -f 4291/6209/610 4396/6546/610 4395/6543/611 -f 4289/6051/609 4283/6050/607 4398/6542/607 -f 4261/6052/612 4286/6210/611 4395/6543/611 -f 4289/6054/609 4397/6544/609 4396/6546/610 -f 4262/6017/615 4261/6016/612 4294/6547/612 -f 4262/6019/615 4407/6548/615 4406/6549/614 -f 4265/6021/613 4264/6204/614 4406/6549/614 -f 4265/6205/613 4405/6550/613 4293/6551/616 -f 4267/6026/616 4293/6551/616 4404/6552/617 -f 4270/6029/617 4404/6552/617 4403/6553/618 -f 4272/6032/618 4403/6553/618 4402/6537/619 -f 4309/6554/561 4408/6557/625 4412/6555/625 -f 4408/6557/625 4308/6559/626 4413/6558/626 -f 4308/6559/626 4307/6561/559 4310/6560/559 -f 4307/6561/559 4410/6563/623 4311/6562/623 -f 4410/6563/623 4409/6611/624 4312/6564/624 -f 4409/6565/624 4309/6554/561 4411/6556/561 -f 4319/6567/568 4414/6570/678 4418/6568/678 -f 4414/6570/678 4321/6572/679 4419/6571/679 -f 4321/6572/679 4416/6574/569 4322/6573/569 -f 4416/6574/569 4320/6576/680 4323/6575/680 -f 4320/6576/680 4415/6612/681 4324/6577/681 -f 4415/6578/681 4319/6567/568 4417/6569/568 -f 4331/6580/569 4420/6583/680 4424/6581/680 -f 4420/6583/680 4333/6585/681 4425/6584/681 -f 4333/6585/681 4422/6587/568 4334/6586/568 -f 4422/6587/568 4332/6589/678 4335/6588/678 -f 4332/6589/678 4421/6613/679 4336/6590/679 -f 4421/6591/679 4331/6580/569 4423/6582/569 +f 4426/6262/542 4427/6263/543 4428/6264/520 +f 4429/6265/544 4426/6262/542 4428/6266/520 +f 4430/6267/545 4429/6265/544 4428/6268/520 +f 4431/6269/546 4430/6267/545 4428/6270/520 +f 4432/6271/547 4431/6269/546 4428/6272/520 +f 4433/6273/548 4432/6271/547 4428/6274/520 +f 4434/6275/549 4433/6273/548 4428/6276/520 +f 4435/6277/550 4434/6275/549 4428/6278/520 +f 4435/6277/550 4428/6279/520 4436/6280/551 +f 4437/6281/552 4436/6280/551 4428/6282/520 +f 4438/6283/553 4437/6281/552 4428/6284/520 +f 4439/6285/554 4438/6283/553 4428/6286/520 +f 4440/6287/555 4439/6288/554 4428/6289/520 +f 4441/6290/556 4440/6287/555 4428/6291/520 +f 4442/6292/557 4441/6290/556 4428/6293/520 +f 4427/6263/543 4442/6292/557 4428/6294/520 +f 4440/6287/558 4443/6295/559 4439/6288/559 +f 4432/6271/560 4444/6296/561 4431/6269/561 +f 4439/6285/559 4445/6297/562 4438/6283/562 +f 4431/6269/561 4446/6298/563 4430/6267/563 +f 4438/6283/562 4447/6299/564 4437/6281/564 +f 4430/6267/563 4448/6300/565 4429/6265/565 +f 4437/6281/564 4449/6301/566 4436/6280/566 +f 4429/6265/565 4450/6302/567 4426/6262/567 +f 4436/6280/566 4451/6303/568 4435/6277/568 +f 4427/6263/569 4452/6304/570 4442/6292/570 +f 4426/6262/567 4453/6305/569 4427/6263/569 +f 4435/6277/568 4454/6306/571 4434/6275/571 +f 4442/6292/570 4455/6307/572 4441/6290/572 +f 4434/6275/571 4456/6308/573 4433/6273/573 +f 4441/6290/572 4457/6309/558 4440/6287/558 +f 4433/6273/573 4458/6310/560 4432/6271/560 +f 4451/6303/574 4459/6311/575 4454/6306/575 +f 4452/6304/576 4460/6312/577 4455/6307/577 +f 4454/6306/575 4461/6313/578 4456/6308/578 +f 4455/6307/577 4462/6314/579 4457/6309/579 +f 4456/6308/578 4463/6315/580 4458/6310/580 +f 4457/6309/579 4464/6316/581 4443/6295/581 +f 4458/6310/580 4465/6317/582 4444/6296/582 +f 4443/6318/581 4466/6319/583 4445/6297/583 +f 4444/6296/582 4467/6320/584 4446/6298/584 +f 4445/6297/583 4468/6321/585 4447/6299/585 +f 4446/6298/584 4469/6322/586 4448/6300/586 +f 4447/6299/585 4470/6323/587 4449/6301/587 +f 4448/6300/586 4471/6324/588 4450/6302/588 +f 4449/6301/587 4472/6325/574 4451/6303/574 +f 4453/6305/589 4473/6326/576 4452/6304/576 +f 4450/6302/588 4474/6327/589 4453/6305/589 +f 4467/6328/563 4123/6329/565 4469/6330/565 +f 4468/6331/564 4345/6332/566 4470/6333/566 +f 4469/6330/565 4339/6334/567 4471/6335/567 +f 4470/6333/566 4344/6336/568 4472/6337/568 +f 4474/6338/569 4337/6339/570 4473/6340/570 +f 4471/6335/567 4338/6341/569 4474/6338/569 +f 4472/6337/568 4343/6342/571 4459/6343/571 +f 4473/6340/570 4122/6344/572 4460/6345/572 +f 4459/6343/571 4124/6346/573 4461/6347/573 +f 4460/6345/572 4349/6348/558 4462/6349/558 +f 4461/6347/573 4342/6350/560 4463/6351/560 +f 4462/6349/558 4348/6352/559 4464/6353/559 +f 4463/6351/560 4341/6354/561 4465/6355/561 +f 4464/6356/559 4347/6357/562 4466/6319/562 +f 4465/6355/561 4340/6358/563 4467/6328/563 +f 4466/6319/562 4346/6359/564 4468/6331/564 +f 4155/5903/564 4475/6360/562 4152/5898/562 +f 4141/5885/565 4476/6361/563 4138/5881/563 +f 4125/5865/566 4477/6362/564 4155/6145/564 +f 4142/5886/567 4478/6363/565 4141/5885/565 +f 4128/5868/568 4479/6364/566 4125/5865/566 +f 4144/5889/569 4480/6365/567 4142/5886/567 +f 4131/5872/571 4481/6366/568 4128/5868/568 +f 4147/5893/570 4482/6367/569 4144/5889/569 +f 4133/5874/573 4483/6368/571 4131/5872/571 +f 4149/5895/572 4484/6369/570 4147/5893/570 +f 4134/5875/560 4485/6370/573 4133/5874/573 +f 4153/5899/558 4486/6371/572 4149/5895/572 +f 4136/5878/561 4487/6372/560 4134/5875/560 +f 4152/5898/562 4488/6373/559 4150/5896/559 +f 4150/5896/559 4489/6374/558 4153/5899/558 +f 4138/5881/563 4490/6375/561 4136/5878/561 +f 4482/6367/590 4491/6376/591 4480/6365/592 +f 4478/6363/593 4480/6365/592 4491/6377/591 +f 4476/6361/594 4478/6363/593 4491/6378/591 +f 4490/6375/595 4476/6361/594 4491/6379/591 +f 4487/6372/596 4490/6375/595 4491/6380/591 +f 4485/6370/597 4487/6372/596 4491/6381/591 +f 4483/6368/598 4485/6370/597 4491/6382/591 +f 4481/6366/599 4483/6368/598 4491/6383/591 +f 4479/6364/600 4481/6366/599 4491/6384/591 +f 4477/6362/601 4479/6364/600 4491/6385/591 +f 4475/6360/602 4477/6386/601 4491/6387/591 +f 4488/6373/603 4475/6360/602 4491/6388/591 +f 4489/6374/604 4488/6373/603 4491/6389/591 +f 4486/6371/605 4489/6374/604 4491/6390/591 +f 4484/6369/606 4486/6371/605 4491/6391/591 +f 4482/6367/590 4484/6369/606 4491/6392/591 +f 4140/5884/607 4357/6393/608 4157/6394/607 +f 4140/5887/607 4356/6395/609 4143/5888/609 +f 4143/5890/609 4355/6396/610 4145/5891/610 +f 4145/6149/610 4354/6397/611 4146/5892/611 +f 4148/5894/612 4354/6397/611 4353/6398/612 +f 4151/5897/613 4351/6399/614 4350/6400/613 +f 4148/5900/612 4352/6401/615 4154/5901/615 +f 4151/6152/613 4159/6402/616 4126/5902/616 +f 4154/6153/615 4351/6399/614 4156/5904/614 +f 4127/5867/617 4159/6403/616 4362/6404/617 +f 4127/5869/617 4361/6405/618 4129/5870/618 +f 4129/6146/618 4360/6406/619 4130/5871/619 +f 4130/6147/619 4158/6407/620 4132/5873/620 +f 4132/5876/620 4359/6408/621 4135/5877/621 +f 4135/5879/621 4358/6409/622 4137/5880/622 +f 4137/5882/622 4357/6393/608 4139/5883/608 +f 4172/6410/559 4367/6411/623 4366/6412/559 +f 4363/6413/623 4368/6414/624 4367/6411/623 +f 4174/6415/624 4175/6416/561 4368/6414/624 +f 4365/6417/561 4176/6418/625 4175/6416/561 +f 4173/6419/625 4177/6420/626 4176/6418/625 +f 4364/6421/626 4366/6412/559 4177/6422/626 +f 4208/5970/565 4492/6423/563 4205/5965/563 +f 4194/5952/564 4493/6424/562 4191/5948/562 +f 4178/5932/567 4494/6425/565 4208/6174/565 +f 4195/5953/566 4495/6426/564 4194/5952/564 +f 4181/5935/569 4496/6427/567 4178/5932/567 +f 4197/5956/568 4497/6428/566 4195/5953/566 +f 4184/5939/570 4498/6429/569 4181/5935/569 +f 4200/5960/571 4499/6430/568 4197/5956/568 +f 4186/5941/572 4500/6431/570 4184/5939/570 +f 4202/5962/573 4501/6432/571 4200/5960/571 +f 4187/5942/558 4502/6433/572 4186/5941/572 +f 4206/5966/560 4503/6434/573 4202/5962/573 +f 4189/5945/559 4504/6435/558 4187/5942/558 +f 4205/5965/563 4505/6436/561 4203/5963/561 +f 4203/5963/561 4506/6437/560 4206/5966/560 +f 4191/5948/562 4507/6438/559 4189/5945/559 +f 4499/6430/627 4508/6439/628 4497/6428/629 +f 4495/6426/630 4497/6428/629 4508/6440/628 +f 4493/6424/631 4495/6426/630 4508/6441/628 +f 4507/6438/632 4493/6424/631 4508/6442/628 +f 4504/6435/633 4507/6438/632 4508/6443/628 +f 4502/6433/634 4504/6435/633 4508/6444/628 +f 4500/6431/635 4502/6433/634 4508/6445/628 +f 4498/6429/636 4500/6431/635 4508/6446/628 +f 4496/6427/637 4498/6429/636 4508/6447/628 +f 4494/6425/638 4496/6427/637 4508/6448/628 +f 4492/6423/639 4494/6449/638 4508/6450/628 +f 4505/6436/640 4492/6423/639 4508/6451/628 +f 4506/6437/641 4505/6436/640 4508/6452/628 +f 4503/6434/642 4506/6437/641 4508/6453/628 +f 4501/6432/643 4503/6434/642 4508/6454/628 +f 4499/6430/627 4501/6432/643 4508/6455/628 +f 4193/5951/616 4377/6456/613 4376/6457/616 +f 4193/5954/616 4375/6458/617 4196/5955/617 +f 4196/5957/617 4374/6459/618 4198/5958/618 +f 4199/5959/619 4374/6459/618 4373/6460/619 +f 4201/5961/620 4373/6460/619 4372/6461/620 +f 4209/6180/622 4369/6462/608 4204/5964/608 +f 4201/5967/620 4371/6463/621 4207/5968/621 +f 4179/5969/607 4369/6462/608 4212/6464/607 +f 4207/6182/621 4370/6465/622 4209/5971/622 +f 4179/5933/607 4381/6466/609 4180/5934/609 +f 4180/5936/609 4211/6467/610 4182/5937/610 +f 4182/6175/610 4380/6468/611 4183/5938/611 +f 4183/6176/611 4210/6469/612 4185/5940/612 +f 4185/5943/612 4379/6470/615 4188/5944/615 +f 4188/5946/615 4378/6471/614 4190/5947/614 +f 4190/5949/614 4377/6456/613 4192/5950/613 +f 4249/6020/573 4509/6472/571 4246/6015/571 +f 4235/6003/572 4510/6473/570 4232/5999/570 +f 4219/5983/560 4511/6474/573 4249/6197/573 +f 4236/6004/558 4512/6475/572 4235/6003/572 +f 4222/5986/561 4513/6476/560 4219/5983/560 +f 4239/6008/559 4514/6477/558 4236/6004/558 +f 4225/5990/563 4515/6478/561 4222/5986/561 +f 4241/6010/562 4516/6479/559 4239/6008/559 +f 4227/5992/565 4517/6480/563 4225/5990/563 +f 4243/6012/564 4518/6481/562 4241/6010/562 +f 4228/5993/567 4519/6482/565 4227/5992/565 +f 4247/6016/566 4520/6483/564 4243/6012/564 +f 4230/5996/569 4521/6484/567 4228/5993/567 +f 4246/6015/571 4522/6485/568 4244/6013/568 +f 4244/6013/568 4523/6486/566 4247/6016/566 +f 4232/5999/570 4524/6487/569 4230/5996/569 +f 4516/6479/644 4525/6488/645 4514/6477/646 +f 4512/6475/647 4514/6477/646 4525/6489/645 +f 4510/6473/648 4512/6475/647 4525/6490/645 +f 4524/6487/649 4510/6473/648 4525/6491/645 +f 4521/6484/650 4524/6487/649 4525/6492/645 +f 4519/6482/651 4521/6484/650 4525/6493/645 +f 4517/6480/652 4519/6482/651 4525/6494/645 +f 4515/6478/653 4517/6480/652 4525/6495/645 +f 4513/6476/654 4515/6478/653 4525/6496/645 +f 4511/6474/655 4513/6476/654 4525/6497/645 +f 4509/6472/656 4511/6498/655 4525/6499/645 +f 4522/6485/657 4509/6472/656 4525/6500/645 +f 4523/6486/658 4522/6485/657 4525/6501/645 +f 4520/6483/659 4523/6486/658 4525/6502/645 +f 4518/6481/660 4520/6483/659 4525/6503/645 +f 4516/6479/644 4518/6481/660 4525/6504/645 +f 4233/6200/611 4251/6505/612 4234/6002/612 +f 4234/6005/612 4388/6506/615 4237/6006/615 +f 4237/6201/615 4387/6507/614 4238/6007/614 +f 4238/6202/614 4386/6508/613 4240/6009/613 +f 4242/6011/616 4386/6508/613 4385/6509/616 +f 4250/6204/618 4382/6510/619 4245/6014/619 +f 4242/6017/616 4384/6511/617 4248/6018/617 +f 4245/6205/619 4253/6512/620 4220/6019/620 +f 4248/6206/617 4383/6513/618 4250/6021/618 +f 4221/5985/621 4253/6514/620 4394/6515/621 +f 4221/5987/621 4393/6516/622 4223/5988/622 +f 4223/6198/622 4392/6517/608 4224/5989/608 +f 4224/6199/608 4252/6518/607 4226/5991/607 +f 4226/5994/607 4391/6519/609 4229/5995/609 +f 4229/5997/609 4390/6520/610 4231/5998/610 +f 4231/6000/610 4389/6521/611 4233/6001/611 +f 4290/6071/572 4526/6522/570 4287/6066/570 +f 4276/6053/573 4527/6523/571 4273/6049/571 +f 4260/6033/558 4528/6524/572 4290/6221/572 +f 4277/6054/560 4529/6525/573 4276/6053/573 +f 4263/6036/559 4530/6526/558 4260/6033/558 +f 4279/6057/561 4531/6527/560 4277/6054/560 +f 4266/6040/562 4532/6528/559 4263/6036/559 +f 4282/6061/563 4533/6529/561 4279/6057/561 +f 4268/6042/564 4534/6530/562 4266/6040/562 +f 4284/6063/565 4535/6531/563 4282/6061/563 +f 4269/6043/566 4536/6532/564 4268/6042/564 +f 4288/6067/567 4537/6533/565 4284/6063/565 +f 4271/6046/568 4538/6534/566 4269/6043/566 +f 4287/6066/570 4539/6535/569 4285/6064/569 +f 4285/6064/569 4540/6536/567 4288/6067/567 +f 4273/6049/571 4541/6537/568 4271/6046/568 +f 4533/6529/661 4542/6538/662 4531/6527/663 +f 4529/6525/664 4531/6527/663 4542/6539/662 +f 4527/6523/665 4529/6525/664 4542/6540/662 +f 4541/6537/666 4527/6523/665 4542/6541/662 +f 4538/6534/667 4541/6537/666 4542/6542/662 +f 4536/6532/668 4538/6534/667 4542/6543/662 +f 4534/6530/669 4536/6532/668 4542/6544/662 +f 4532/6528/670 4534/6530/669 4542/6545/662 +f 4530/6526/671 4532/6528/670 4542/6546/662 +f 4528/6524/672 4530/6526/671 4542/6547/662 +f 4526/6522/673 4528/6548/672 4542/6549/662 +f 4539/6535/674 4526/6522/673 4542/6550/662 +f 4540/6536/675 4539/6535/674 4542/6551/662 +f 4537/6533/676 4540/6536/675 4542/6552/662 +f 4535/6531/677 4537/6533/676 4542/6553/662 +f 4533/6529/661 4535/6531/677 4542/6554/662 +f 4275/6052/620 4402/6555/619 4292/6556/620 +f 4275/6055/620 4401/6557/621 4278/6056/621 +f 4278/6058/621 4400/6558/622 4280/6059/622 +f 4281/6060/608 4400/6558/622 4399/6559/608 +f 4281/6226/608 4398/6560/607 4283/6062/607 +f 4291/6227/610 4395/6561/611 4286/6065/611 +f 4289/6069/609 4398/6560/607 4397/6562/609 +f 4261/6070/612 4395/6561/611 4294/6563/612 +f 4289/6072/609 4396/6564/610 4291/6073/610 +f 4262/6035/615 4294/6565/612 4407/6566/615 +f 4262/6037/615 4406/6567/614 4264/6038/614 +f 4265/6039/613 4406/6567/614 4405/6568/613 +f 4265/6223/613 4293/6569/616 4267/6041/616 +f 4267/6044/616 4404/6570/617 4270/6045/617 +f 4270/6047/617 4403/6571/618 4272/6048/618 +f 4272/6050/618 4402/6555/619 4274/6051/619 +f 4309/6572/561 4412/6573/625 4411/6574/561 +f 4408/6575/625 4413/6576/626 4412/6573/625 +f 4308/6577/626 4310/6578/559 4413/6576/626 +f 4307/6579/559 4311/6580/623 4310/6578/559 +f 4410/6581/623 4312/6582/624 4311/6580/623 +f 4409/6583/624 4411/6574/561 4312/6584/624 +f 4319/6585/568 4418/6586/678 4417/6587/568 +f 4414/6588/678 4419/6589/679 4418/6586/678 +f 4321/6590/679 4322/6591/569 4419/6589/679 +f 4416/6592/569 4323/6593/680 4322/6591/569 +f 4320/6594/680 4324/6595/681 4323/6593/680 +f 4415/6596/681 4417/6587/568 4324/6597/681 +f 4331/6598/569 4424/6599/680 4423/6600/569 +f 4420/6601/680 4425/6602/681 4424/6599/680 +f 4333/6603/681 4334/6604/568 4425/6602/681 +f 4422/6605/568 4335/6606/678 4334/6604/568 +f 4332/6607/678 4336/6608/679 4335/6606/678 +f 4421/6609/679 4423/6600/569 4336/6610/679 +f 4440/6287/558 4457/6309/558 4443/6295/559 +f 4432/6271/560 4458/6310/560 4444/6296/561 +f 4439/6285/559 4443/6318/559 4445/6297/562 +f 4431/6269/561 4444/6296/561 4446/6298/563 +f 4438/6283/562 4445/6297/562 4447/6299/564 +f 4430/6267/563 4446/6298/563 4448/6300/565 +f 4437/6281/564 4447/6299/564 4449/6301/566 +f 4429/6265/565 4448/6300/565 4450/6302/567 +f 4436/6280/566 4449/6301/566 4451/6303/568 +f 4427/6263/569 4453/6305/569 4452/6304/570 +f 4426/6262/567 4450/6302/567 4453/6305/569 +f 4435/6277/568 4451/6303/568 4454/6306/571 +f 4442/6292/570 4452/6304/570 4455/6307/572 +f 4434/6275/571 4454/6306/571 4456/6308/573 +f 4441/6290/572 4455/6307/572 4457/6309/558 +f 4433/6273/573 4456/6308/573 4458/6310/560 +f 4451/6303/574 4472/6611/574 4459/6311/575 +f 4452/6304/576 4473/6612/576 4460/6312/577 +f 4454/6306/575 4459/6613/575 4461/6313/578 +f 4455/6307/577 4460/6614/577 4462/6314/579 +f 4456/6308/578 4461/6615/578 4463/6315/580 +f 4457/6309/579 4462/6616/579 4464/6316/581 +f 4458/6310/580 4463/6617/580 4465/6317/582 +f 4443/6318/581 4464/6356/581 4466/6319/583 +f 4444/6296/582 4465/6618/582 4467/6320/584 +f 4445/6297/583 4466/6619/583 4468/6321/585 +f 4446/6298/584 4467/6620/584 4469/6322/586 +f 4447/6299/585 4468/6621/585 4470/6323/587 +f 4448/6300/586 4469/6622/586 4471/6324/588 +f 4449/6301/587 4470/6623/587 4472/6325/574 +f 4453/6305/589 4474/6624/589 4473/6326/576 +f 4450/6302/588 4471/6625/588 4474/6327/589 +f 4467/6328/563 4340/6358/563 4123/6329/565 +f 4468/6331/564 4346/6359/564 4345/6332/566 +f 4469/6330/565 4123/6329/565 4339/6334/567 +f 4470/6333/566 4345/6332/566 4344/6336/568 +f 4474/6338/569 4338/6341/569 4337/6339/570 +f 4471/6335/567 4339/6334/567 4338/6341/569 +f 4472/6337/568 4344/6336/568 4343/6342/571 +f 4473/6340/570 4337/6339/570 4122/6344/572 +f 4459/6343/571 4343/6342/571 4124/6346/573 +f 4460/6345/572 4122/6344/572 4349/6348/558 +f 4461/6347/573 4124/6346/573 4342/6350/560 +f 4462/6349/558 4349/6348/558 4348/6352/559 +f 4463/6351/560 4342/6350/560 4341/6354/561 +f 4464/6356/559 4348/6626/559 4347/6357/562 +f 4465/6355/561 4341/6354/561 4340/6358/563 +f 4466/6319/562 4347/6357/562 4346/6359/564 +f 4155/5903/564 4477/6386/564 4475/6360/562 +f 4141/5885/565 4478/6363/565 4476/6361/563 +f 4125/5865/566 4479/6364/566 4477/6362/564 +f 4142/5886/567 4480/6365/567 4478/6363/565 +f 4128/5868/568 4481/6366/568 4479/6364/566 +f 4144/5889/569 4482/6367/569 4480/6365/567 +f 4131/5872/571 4483/6368/571 4481/6366/568 +f 4147/5893/570 4484/6369/570 4482/6367/569 +f 4133/5874/573 4485/6370/573 4483/6368/571 +f 4149/5895/572 4486/6371/572 4484/6369/570 +f 4134/5875/560 4487/6372/560 4485/6370/573 +f 4153/5899/558 4489/6374/558 4486/6371/572 +f 4136/5878/561 4490/6375/561 4487/6372/560 +f 4152/5898/562 4475/6360/562 4488/6373/559 +f 4150/5896/559 4488/6373/559 4489/6374/558 +f 4138/5881/563 4476/6361/563 4490/6375/561 +f 4140/5884/607 4139/6148/608 4357/6393/608 +f 4140/5887/607 4157/6394/607 4356/6395/609 +f 4143/5890/609 4356/6395/609 4355/6396/610 +f 4145/6149/610 4355/6396/610 4354/6397/611 +f 4148/5894/612 4146/6150/611 4354/6397/611 +f 4151/5897/613 4156/6151/614 4351/6399/614 +f 4148/5900/612 4353/6398/612 4352/6401/615 +f 4151/6152/613 4350/6400/613 4159/6402/616 +f 4154/6153/615 4352/6401/615 4351/6399/614 +f 4127/5867/617 4126/5866/616 4159/6403/616 +f 4127/5869/617 4362/6404/617 4361/6405/618 +f 4129/6146/618 4361/6405/618 4360/6406/619 +f 4130/6147/619 4360/6406/619 4158/6407/620 +f 4132/5876/620 4158/6407/620 4359/6408/621 +f 4135/5879/621 4359/6408/621 4358/6409/622 +f 4137/5882/622 4358/6409/622 4357/6393/608 +f 4172/6410/559 4363/6413/623 4367/6411/623 +f 4363/6413/623 4174/6415/624 4368/6414/624 +f 4174/6415/624 4365/6417/561 4175/6416/561 +f 4365/6417/561 4173/6419/625 4176/6418/625 +f 4173/6419/625 4364/6627/626 4177/6420/626 +f 4364/6421/626 4172/6410/559 4366/6412/559 +f 4208/5970/565 4494/6449/565 4492/6423/563 +f 4194/5952/564 4495/6426/564 4493/6424/562 +f 4178/5932/567 4496/6427/567 4494/6425/565 +f 4195/5953/566 4497/6428/566 4495/6426/564 +f 4181/5935/569 4498/6429/569 4496/6427/567 +f 4197/5956/568 4499/6430/568 4497/6428/566 +f 4184/5939/570 4500/6431/570 4498/6429/569 +f 4200/5960/571 4501/6432/571 4499/6430/568 +f 4186/5941/572 4502/6433/572 4500/6431/570 +f 4202/5962/573 4503/6434/573 4501/6432/571 +f 4187/5942/558 4504/6435/558 4502/6433/572 +f 4206/5966/560 4506/6437/560 4503/6434/573 +f 4189/5945/559 4507/6438/559 4504/6435/558 +f 4205/5965/563 4492/6423/563 4505/6436/561 +f 4203/5963/561 4505/6436/561 4506/6437/560 +f 4191/5948/562 4493/6424/562 4507/6438/559 +f 4193/5951/616 4192/6177/613 4377/6456/613 +f 4193/5954/616 4376/6457/616 4375/6458/617 +f 4196/5957/617 4375/6458/617 4374/6459/618 +f 4199/5959/619 4198/6178/618 4374/6459/618 +f 4201/5961/620 4199/6179/619 4373/6460/619 +f 4209/6180/622 4370/6465/622 4369/6462/608 +f 4201/5967/620 4372/6461/620 4371/6463/621 +f 4179/5969/607 4204/6181/608 4369/6462/608 +f 4207/6182/621 4371/6463/621 4370/6465/622 +f 4179/5933/607 4212/6628/607 4381/6466/609 +f 4180/5936/609 4381/6466/609 4211/6467/610 +f 4182/6175/610 4211/6467/610 4380/6468/611 +f 4183/6176/611 4380/6468/611 4210/6469/612 +f 4185/5943/612 4210/6469/612 4379/6470/615 +f 4188/5946/615 4379/6470/615 4378/6471/614 +f 4190/5949/614 4378/6471/614 4377/6456/613 +f 4249/6020/573 4511/6498/573 4509/6472/571 +f 4235/6003/572 4512/6475/572 4510/6473/570 +f 4219/5983/560 4513/6476/560 4511/6474/573 +f 4236/6004/558 4514/6477/558 4512/6475/572 +f 4222/5986/561 4515/6478/561 4513/6476/560 +f 4239/6008/559 4516/6479/559 4514/6477/558 +f 4225/5990/563 4517/6480/563 4515/6478/561 +f 4241/6010/562 4518/6481/562 4516/6479/559 +f 4227/5992/565 4519/6482/565 4517/6480/563 +f 4243/6012/564 4520/6483/564 4518/6481/562 +f 4228/5993/567 4521/6484/567 4519/6482/565 +f 4247/6016/566 4523/6486/566 4520/6483/564 +f 4230/5996/569 4524/6487/569 4521/6484/567 +f 4246/6015/571 4509/6472/571 4522/6485/568 +f 4244/6013/568 4522/6485/568 4523/6486/566 +f 4232/5999/570 4510/6473/570 4524/6487/569 +f 4233/6200/611 4389/6521/611 4251/6505/612 +f 4234/6005/612 4251/6505/612 4388/6506/615 +f 4237/6201/615 4388/6506/615 4387/6507/614 +f 4238/6202/614 4387/6507/614 4386/6508/613 +f 4242/6011/616 4240/6203/613 4386/6508/613 +f 4250/6204/618 4383/6513/618 4382/6510/619 +f 4242/6017/616 4385/6509/616 4384/6511/617 +f 4245/6205/619 4382/6510/619 4253/6512/620 +f 4248/6206/617 4384/6511/617 4383/6513/618 +f 4221/5985/621 4220/5984/620 4253/6514/620 +f 4221/5987/621 4394/6515/621 4393/6516/622 +f 4223/6198/622 4393/6516/622 4392/6517/608 +f 4224/6199/608 4392/6517/608 4252/6518/607 +f 4226/5994/607 4252/6518/607 4391/6519/609 +f 4229/5997/609 4391/6519/609 4390/6520/610 +f 4231/6000/610 4390/6520/610 4389/6521/611 +f 4290/6071/572 4528/6548/572 4526/6522/570 +f 4276/6053/573 4529/6525/573 4527/6523/571 +f 4260/6033/558 4530/6526/558 4528/6524/572 +f 4277/6054/560 4531/6527/560 4529/6525/573 +f 4263/6036/559 4532/6528/559 4530/6526/558 +f 4279/6057/561 4533/6529/561 4531/6527/560 +f 4266/6040/562 4534/6530/562 4532/6528/559 +f 4282/6061/563 4535/6531/563 4533/6529/561 +f 4268/6042/564 4536/6532/564 4534/6530/562 +f 4284/6063/565 4537/6533/565 4535/6531/563 +f 4269/6043/566 4538/6534/566 4536/6532/564 +f 4288/6067/567 4540/6536/567 4537/6533/565 +f 4271/6046/568 4541/6537/568 4538/6534/566 +f 4287/6066/570 4526/6522/570 4539/6535/569 +f 4285/6064/569 4539/6535/569 4540/6536/567 +f 4273/6049/571 4527/6523/571 4541/6537/568 +f 4275/6052/620 4274/6224/619 4402/6555/619 +f 4275/6055/620 4292/6556/620 4401/6557/621 +f 4278/6058/621 4401/6557/621 4400/6558/622 +f 4281/6060/608 4280/6225/622 4400/6558/622 +f 4281/6226/608 4399/6559/608 4398/6560/607 +f 4291/6227/610 4396/6564/610 4395/6561/611 +f 4289/6069/609 4283/6068/607 4398/6560/607 +f 4261/6070/612 4286/6228/611 4395/6561/611 +f 4289/6072/609 4397/6562/609 4396/6564/610 +f 4262/6035/615 4261/6034/612 4294/6565/612 +f 4262/6037/615 4407/6566/615 4406/6567/614 +f 4265/6039/613 4264/6222/614 4406/6567/614 +f 4265/6223/613 4405/6568/613 4293/6569/616 +f 4267/6044/616 4293/6569/616 4404/6570/617 +f 4270/6047/617 4404/6570/617 4403/6571/618 +f 4272/6050/618 4403/6571/618 4402/6555/619 +f 4309/6572/561 4408/6575/625 4412/6573/625 +f 4408/6575/625 4308/6577/626 4413/6576/626 +f 4308/6577/626 4307/6579/559 4310/6578/559 +f 4307/6579/559 4410/6581/623 4311/6580/623 +f 4410/6581/623 4409/6629/624 4312/6582/624 +f 4409/6583/624 4309/6572/561 4411/6574/561 +f 4319/6585/568 4414/6588/678 4418/6586/678 +f 4414/6588/678 4321/6590/679 4419/6589/679 +f 4321/6590/679 4416/6592/569 4322/6591/569 +f 4416/6592/569 4320/6594/680 4323/6593/680 +f 4320/6594/680 4415/6630/681 4324/6595/681 +f 4415/6596/681 4319/6585/568 4417/6587/568 +f 4331/6598/569 4420/6601/680 4424/6599/680 +f 4420/6601/680 4333/6603/681 4425/6602/681 +f 4333/6603/681 4422/6605/568 4334/6604/568 +f 4422/6605/568 4332/6607/678 4335/6606/678 +f 4332/6607/678 4421/6631/679 4336/6608/679 +f 4421/6609/679 4331/6598/569 4423/6600/569 o Huge_Missile v 0.923880 8.500000 0.382684 v 0.618718 8.500000 0.618719 @@ -18329,609 +18359,609 @@ vn 0.9808 0.0000 -0.1951 vn -0.5556 -0.0000 0.8315 vn -0.9808 -0.0000 0.1951 s off -f 4543/6614/682 4544/6615/682 4545/6616/682 -f 4546/6617/682 4547/6618/682 4548/6619/682 -f 4549/6620/682 4544/6615/682 4550/6621/682 -f 4551/6622/682 4552/6623/682 4546/6617/682 -f 4549/6620/682 4553/6624/682 4554/6625/682 -f 4555/6626/682 4556/6627/682 4557/6628/682 -f 4551/6622/682 4557/6628/682 4558/6629/682 -f 4559/6630/682 4553/6624/682 4560/6631/682 -f 4561/6632/682 4556/6627/682 4562/6633/682 -f 4563/6634/682 4564/6635/682 4559/6630/682 -f 4561/6632/682 4565/6636/682 4566/6637/682 -f 4567/6638/682 4568/6639/682 4563/6634/682 -f 4569/6640/682 4570/6641/682 4565/6636/682 -f 4571/6642/682 4572/6643/682 4567/6638/682 -f 4573/6644/682 4545/6616/682 4570/6641/682 -f 4574/6645/682 4575/6646/682 4576/6647/682 -f 4548/6619/682 4577/6648/682 4571/6649/682 -f 4578/6650/683 4579/6651/683 4580/6652/683 -f 4581/6653/683 4582/6654/683 4578/6650/683 -f 4583/6655/683 4584/6656/683 4581/6653/683 -f 4585/6657/683 4586/6658/683 4583/6655/683 -f 4587/6659/683 4588/6660/683 4585/6657/683 -f 4589/6661/683 4590/6662/683 4587/6659/683 -f 4589/6661/683 4591/6663/683 4592/6664/683 -f 4593/6665/683 4594/6666/683 4591/6663/683 -f 4595/6667/683 4596/6668/683 4594/6666/683 -f 4597/6669/683 4598/6670/683 4596/6671/683 -f 4599/6672/683 4600/6673/683 4598/6670/683 -f 4601/6674/683 4600/6673/683 4602/6675/683 -f 4601/6674/683 4603/6676/683 4604/6677/683 -f 4605/6678/683 4603/6676/683 4606/6679/683 -f 4607/6680/683 4608/6681/683 4605/6678/683 -f 4580/6652/683 4609/6682/683 4607/6680/683 -f 4610/6683/682 4611/6684/682 4612/6685/682 -f 4613/6686/682 4614/6687/682 4615/6688/682 -f 4616/6689/684 4617/6690/684 4618/6691/684 -f 4614/6687/685 4617/6692/685 4616/6689/685 -f 4615/6693/686 4617/6692/686 4613/6686/686 -f 4619/6694/682 4620/6695/682 4621/6696/682 -f 4622/6697/682 4623/6698/682 4624/6699/682 -f 4625/6700/682 4626/6701/682 4627/6702/682 -f 4628/6703/682 4629/6704/682 4630/6705/682 -f 4631/6706/687 4632/6707/687 4633/6708/687 -f 4629/6704/688 4632/6709/688 4631/6706/688 -f 4630/6710/689 4632/6709/689 4628/6703/689 -f 4634/6711/682 4635/6712/682 4636/6713/682 -f 4637/6714/690 4638/6715/690 4639/6716/690 -f 4635/6712/691 4638/6717/691 4637/6714/691 -f 4636/6718/692 4638/6717/692 4634/6711/692 -f 4640/6719/682 4641/6720/682 4642/6721/682 -f 4643/6722/693 4644/6723/693 4645/6724/693 -f 4641/6720/694 4644/6725/694 4643/6722/694 -f 4642/6726/695 4644/6725/695 4640/6719/695 -f 4543/6614/682 4550/6621/682 4544/6615/682 -f 4546/6617/682 4552/6623/682 4547/6618/682 -f 4549/6620/682 4554/6625/682 4544/6615/682 -f 4551/6622/682 4558/6629/682 4552/6623/682 -f 4549/6620/682 4560/6631/682 4553/6624/682 -f 4555/6626/682 4562/6633/682 4556/6627/682 -f 4551/6622/682 4555/6626/682 4557/6628/682 -f 4559/6630/682 4564/6635/682 4553/6624/682 -f 4561/6632/682 4566/6637/682 4556/6627/682 -f 4563/6634/682 4568/6639/682 4564/6635/682 -f 4561/6632/682 4569/6640/682 4565/6636/682 -f 4567/6638/682 4572/6643/682 4568/6639/682 -f 4569/6640/682 4573/6644/682 4570/6641/682 -f 4571/6642/682 4577/6727/682 4572/6643/682 -f 4573/6644/682 4543/6614/682 4545/6616/682 -f 4576/6647/682 4646/6728/682 4647/6729/682 -f 4646/6728/682 4648/6730/682 4647/6729/682 -f 4648/6730/682 4649/6731/682 4647/6729/682 -f 4647/6729/682 4650/6732/682 4651/6733/682 -f 4651/6733/682 4652/6734/682 4574/6645/682 -f 4574/6645/682 4653/6735/682 4575/6646/682 -f 4653/6735/682 4654/6736/682 4575/6646/682 -f 4654/6736/682 4655/6737/682 4575/6646/682 -f 4575/6646/682 4656/6738/682 4657/6739/682 -f 4657/6739/682 4658/6740/682 4575/6646/682 -f 4658/6740/682 4576/6647/682 4575/6646/682 -f 4647/6729/682 4651/6733/682 4576/6647/682 -f 4651/6733/682 4574/6645/682 4576/6647/682 -f 4548/6619/682 4547/6618/682 4577/6648/682 -f 4578/6650/683 4582/6654/683 4579/6651/683 -f 4581/6653/683 4584/6656/683 4582/6654/683 -f 4583/6655/683 4586/6658/683 4584/6656/683 -f 4585/6657/683 4588/6660/683 4586/6658/683 -f 4587/6659/683 4590/6662/683 4588/6660/683 -f 4589/6661/683 4592/6664/683 4590/6662/683 -f 4589/6661/683 4593/6665/683 4591/6663/683 -f 4593/6665/683 4595/6667/683 4594/6666/683 -f 4595/6667/683 4597/6741/683 4596/6668/683 -f 4597/6669/683 4599/6672/683 4598/6670/683 -f 4599/6672/683 4602/6675/683 4600/6673/683 -f 4601/6674/683 4604/6677/683 4600/6673/683 -f 4601/6674/683 4606/6679/683 4603/6676/683 -f 4605/6678/683 4608/6681/683 4603/6676/683 -f 4607/6680/683 4609/6682/683 4608/6681/683 -f 4580/6652/683 4579/6651/683 4609/6682/683 -f 4610/6683/682 4659/6742/682 4660/6743/682 -f 4660/6743/682 4661/6744/682 4610/6683/682 -f 4661/6744/682 4611/6684/682 4610/6683/682 -f 4611/6684/682 4662/6745/682 4663/6746/682 -f 4663/6746/682 4664/6747/682 4612/6685/682 -f 4612/6685/682 4665/6748/682 4666/6749/682 -f 4666/6749/682 4667/6750/682 4668/6751/682 -f 4668/6751/682 4669/6752/682 4670/6753/682 -f 4670/6753/682 4671/6754/682 4610/6683/682 -f 4611/6684/682 4663/6746/682 4612/6685/682 -f 4612/6685/682 4666/6749/682 4610/6683/682 -f 4666/6749/682 4668/6751/682 4610/6683/682 -f 4668/6751/682 4670/6753/682 4610/6683/682 -f 4614/6687/685 4613/6686/685 4617/6692/685 -f 4615/6693/686 4618/6755/686 4617/6692/686 -f 4621/6696/682 4672/6756/682 4673/6757/682 -f 4672/6756/682 4674/6758/682 4673/6757/682 -f 4674/6758/682 4675/6759/682 4673/6757/682 -f 4673/6757/682 4676/6760/682 4677/6761/682 -f 4677/6761/682 4678/6762/682 4619/6694/682 -f 4619/6694/682 4679/6763/682 4620/6695/682 -f 4679/6763/682 4680/6764/682 4620/6695/682 -f 4680/6764/682 4681/6765/682 4620/6695/682 -f 4620/6695/682 4682/6766/682 4683/6767/682 -f 4683/6767/682 4684/6768/682 4620/6695/682 -f 4684/6768/682 4621/6696/682 4620/6695/682 -f 4673/6757/682 4677/6761/682 4621/6696/682 -f 4677/6761/682 4619/6694/682 4621/6696/682 -f 4624/6699/682 4685/6769/682 4686/6770/682 -f 4685/6769/682 4687/6771/682 4686/6770/682 -f 4687/6771/682 4688/6772/682 4686/6770/682 -f 4686/6770/682 4689/6773/682 4690/6774/682 -f 4690/6774/682 4691/6775/682 4622/6697/682 -f 4622/6697/682 4692/6776/682 4623/6698/682 -f 4692/6776/682 4693/6777/682 4623/6698/682 -f 4693/6777/682 4694/6778/682 4623/6698/682 -f 4623/6698/682 4695/6779/682 4696/6780/682 -f 4696/6780/682 4697/6781/682 4623/6698/682 -f 4697/6781/682 4624/6699/682 4623/6698/682 -f 4686/6770/682 4690/6774/682 4624/6699/682 -f 4690/6774/682 4622/6697/682 4624/6699/682 -f 4627/6702/682 4698/6782/682 4699/6783/682 -f 4698/6782/682 4700/6784/682 4699/6783/682 -f 4700/6784/682 4701/6785/682 4699/6783/682 -f 4699/6783/682 4702/6786/682 4703/6787/682 -f 4703/6787/682 4704/6788/682 4625/6700/682 -f 4625/6700/682 4705/6789/682 4626/6701/682 -f 4705/6789/682 4706/6790/682 4626/6701/682 -f 4706/6790/682 4707/6791/682 4626/6701/682 -f 4626/6701/682 4708/6792/682 4709/6793/682 -f 4709/6793/682 4710/6794/682 4626/6701/682 -f 4710/6794/682 4627/6702/682 4626/6701/682 -f 4699/6783/682 4703/6787/682 4627/6702/682 -f 4703/6787/682 4625/6700/682 4627/6702/682 -f 4629/6704/688 4628/6703/688 4632/6709/688 -f 4630/6710/689 4633/6795/689 4632/6709/689 -f 4635/6712/691 4634/6711/691 4638/6717/691 -f 4636/6718/692 4639/6796/692 4638/6717/692 -f 4641/6720/694 4640/6719/694 4644/6725/694 -f 4642/6726/695 4645/6797/695 4644/6725/695 +f 4543/6632/682 4544/6633/682 4545/6634/682 +f 4546/6635/682 4547/6636/682 4548/6637/682 +f 4549/6638/682 4544/6633/682 4550/6639/682 +f 4551/6640/682 4552/6641/682 4546/6635/682 +f 4549/6638/682 4553/6642/682 4554/6643/682 +f 4555/6644/682 4556/6645/682 4557/6646/682 +f 4551/6640/682 4557/6646/682 4558/6647/682 +f 4559/6648/682 4553/6642/682 4560/6649/682 +f 4561/6650/682 4556/6645/682 4562/6651/682 +f 4563/6652/682 4564/6653/682 4559/6648/682 +f 4561/6650/682 4565/6654/682 4566/6655/682 +f 4567/6656/682 4568/6657/682 4563/6652/682 +f 4569/6658/682 4570/6659/682 4565/6654/682 +f 4571/6660/682 4572/6661/682 4567/6656/682 +f 4573/6662/682 4545/6634/682 4570/6659/682 +f 4574/6663/682 4575/6664/682 4576/6665/682 +f 4548/6637/682 4577/6666/682 4571/6667/682 +f 4578/6668/683 4579/6669/683 4580/6670/683 +f 4581/6671/683 4582/6672/683 4578/6668/683 +f 4583/6673/683 4584/6674/683 4581/6671/683 +f 4585/6675/683 4586/6676/683 4583/6673/683 +f 4587/6677/683 4588/6678/683 4585/6675/683 +f 4589/6679/683 4590/6680/683 4587/6677/683 +f 4589/6679/683 4591/6681/683 4592/6682/683 +f 4593/6683/683 4594/6684/683 4591/6681/683 +f 4595/6685/683 4596/6686/683 4594/6684/683 +f 4597/6687/683 4598/6688/683 4596/6689/683 +f 4599/6690/683 4600/6691/683 4598/6688/683 +f 4601/6692/683 4600/6691/683 4602/6693/683 +f 4601/6692/683 4603/6694/683 4604/6695/683 +f 4605/6696/683 4603/6694/683 4606/6697/683 +f 4607/6698/683 4608/6699/683 4605/6696/683 +f 4580/6670/683 4609/6700/683 4607/6698/683 +f 4610/6701/682 4611/6702/682 4612/6703/682 +f 4613/6704/682 4614/6705/682 4615/6706/682 +f 4616/6707/684 4617/6708/684 4618/6709/684 +f 4614/6705/685 4617/6710/685 4616/6707/685 +f 4615/6711/686 4617/6710/686 4613/6704/686 +f 4619/6712/682 4620/6713/682 4621/6714/682 +f 4622/6715/682 4623/6716/682 4624/6717/682 +f 4625/6718/682 4626/6719/682 4627/6720/682 +f 4628/6721/682 4629/6722/682 4630/6723/682 +f 4631/6724/687 4632/6725/687 4633/6726/687 +f 4629/6722/688 4632/6727/688 4631/6724/688 +f 4630/6728/689 4632/6727/689 4628/6721/689 +f 4634/6729/682 4635/6730/682 4636/6731/682 +f 4637/6732/690 4638/6733/690 4639/6734/690 +f 4635/6730/691 4638/6735/691 4637/6732/691 +f 4636/6736/692 4638/6735/692 4634/6729/692 +f 4640/6737/682 4641/6738/682 4642/6739/682 +f 4643/6740/693 4644/6741/693 4645/6742/693 +f 4641/6738/694 4644/6743/694 4643/6740/694 +f 4642/6744/695 4644/6743/695 4640/6737/695 +f 4543/6632/682 4550/6639/682 4544/6633/682 +f 4546/6635/682 4552/6641/682 4547/6636/682 +f 4549/6638/682 4554/6643/682 4544/6633/682 +f 4551/6640/682 4558/6647/682 4552/6641/682 +f 4549/6638/682 4560/6649/682 4553/6642/682 +f 4555/6644/682 4562/6651/682 4556/6645/682 +f 4551/6640/682 4555/6644/682 4557/6646/682 +f 4559/6648/682 4564/6653/682 4553/6642/682 +f 4561/6650/682 4566/6655/682 4556/6645/682 +f 4563/6652/682 4568/6657/682 4564/6653/682 +f 4561/6650/682 4569/6658/682 4565/6654/682 +f 4567/6656/682 4572/6661/682 4568/6657/682 +f 4569/6658/682 4573/6662/682 4570/6659/682 +f 4571/6660/682 4577/6745/682 4572/6661/682 +f 4573/6662/682 4543/6632/682 4545/6634/682 +f 4576/6665/682 4646/6746/682 4647/6747/682 +f 4646/6746/682 4648/6748/682 4647/6747/682 +f 4648/6748/682 4649/6749/682 4647/6747/682 +f 4647/6747/682 4650/6750/682 4651/6751/682 +f 4651/6751/682 4652/6752/682 4574/6663/682 +f 4574/6663/682 4653/6753/682 4575/6664/682 +f 4653/6753/682 4654/6754/682 4575/6664/682 +f 4654/6754/682 4655/6755/682 4575/6664/682 +f 4575/6664/682 4656/6756/682 4657/6757/682 +f 4657/6757/682 4658/6758/682 4575/6664/682 +f 4658/6758/682 4576/6665/682 4575/6664/682 +f 4647/6747/682 4651/6751/682 4576/6665/682 +f 4651/6751/682 4574/6663/682 4576/6665/682 +f 4548/6637/682 4547/6636/682 4577/6666/682 +f 4578/6668/683 4582/6672/683 4579/6669/683 +f 4581/6671/683 4584/6674/683 4582/6672/683 +f 4583/6673/683 4586/6676/683 4584/6674/683 +f 4585/6675/683 4588/6678/683 4586/6676/683 +f 4587/6677/683 4590/6680/683 4588/6678/683 +f 4589/6679/683 4592/6682/683 4590/6680/683 +f 4589/6679/683 4593/6683/683 4591/6681/683 +f 4593/6683/683 4595/6685/683 4594/6684/683 +f 4595/6685/683 4597/6759/683 4596/6686/683 +f 4597/6687/683 4599/6690/683 4598/6688/683 +f 4599/6690/683 4602/6693/683 4600/6691/683 +f 4601/6692/683 4604/6695/683 4600/6691/683 +f 4601/6692/683 4606/6697/683 4603/6694/683 +f 4605/6696/683 4608/6699/683 4603/6694/683 +f 4607/6698/683 4609/6700/683 4608/6699/683 +f 4580/6670/683 4579/6669/683 4609/6700/683 +f 4610/6701/682 4659/6760/682 4660/6761/682 +f 4660/6761/682 4661/6762/682 4610/6701/682 +f 4661/6762/682 4611/6702/682 4610/6701/682 +f 4611/6702/682 4662/6763/682 4663/6764/682 +f 4663/6764/682 4664/6765/682 4612/6703/682 +f 4612/6703/682 4665/6766/682 4666/6767/682 +f 4666/6767/682 4667/6768/682 4668/6769/682 +f 4668/6769/682 4669/6770/682 4670/6771/682 +f 4670/6771/682 4671/6772/682 4610/6701/682 +f 4611/6702/682 4663/6764/682 4612/6703/682 +f 4612/6703/682 4666/6767/682 4610/6701/682 +f 4666/6767/682 4668/6769/682 4610/6701/682 +f 4668/6769/682 4670/6771/682 4610/6701/682 +f 4614/6705/685 4613/6704/685 4617/6710/685 +f 4615/6711/686 4618/6773/686 4617/6710/686 +f 4621/6714/682 4672/6774/682 4673/6775/682 +f 4672/6774/682 4674/6776/682 4673/6775/682 +f 4674/6776/682 4675/6777/682 4673/6775/682 +f 4673/6775/682 4676/6778/682 4677/6779/682 +f 4677/6779/682 4678/6780/682 4619/6712/682 +f 4619/6712/682 4679/6781/682 4620/6713/682 +f 4679/6781/682 4680/6782/682 4620/6713/682 +f 4680/6782/682 4681/6783/682 4620/6713/682 +f 4620/6713/682 4682/6784/682 4683/6785/682 +f 4683/6785/682 4684/6786/682 4620/6713/682 +f 4684/6786/682 4621/6714/682 4620/6713/682 +f 4673/6775/682 4677/6779/682 4621/6714/682 +f 4677/6779/682 4619/6712/682 4621/6714/682 +f 4624/6717/682 4685/6787/682 4686/6788/682 +f 4685/6787/682 4687/6789/682 4686/6788/682 +f 4687/6789/682 4688/6790/682 4686/6788/682 +f 4686/6788/682 4689/6791/682 4690/6792/682 +f 4690/6792/682 4691/6793/682 4622/6715/682 +f 4622/6715/682 4692/6794/682 4623/6716/682 +f 4692/6794/682 4693/6795/682 4623/6716/682 +f 4693/6795/682 4694/6796/682 4623/6716/682 +f 4623/6716/682 4695/6797/682 4696/6798/682 +f 4696/6798/682 4697/6799/682 4623/6716/682 +f 4697/6799/682 4624/6717/682 4623/6716/682 +f 4686/6788/682 4690/6792/682 4624/6717/682 +f 4690/6792/682 4622/6715/682 4624/6717/682 +f 4627/6720/682 4698/6800/682 4699/6801/682 +f 4698/6800/682 4700/6802/682 4699/6801/682 +f 4700/6802/682 4701/6803/682 4699/6801/682 +f 4699/6801/682 4702/6804/682 4703/6805/682 +f 4703/6805/682 4704/6806/682 4625/6718/682 +f 4625/6718/682 4705/6807/682 4626/6719/682 +f 4705/6807/682 4706/6808/682 4626/6719/682 +f 4706/6808/682 4707/6809/682 4626/6719/682 +f 4626/6719/682 4708/6810/682 4709/6811/682 +f 4709/6811/682 4710/6812/682 4626/6719/682 +f 4710/6812/682 4627/6720/682 4626/6719/682 +f 4699/6801/682 4703/6805/682 4627/6720/682 +f 4703/6805/682 4625/6718/682 4627/6720/682 +f 4629/6722/688 4628/6721/688 4632/6727/688 +f 4630/6728/689 4633/6813/689 4632/6727/689 +f 4635/6730/691 4634/6729/691 4638/6735/691 +f 4636/6736/692 4639/6814/692 4638/6735/692 +f 4641/6738/694 4640/6737/694 4644/6743/694 +f 4642/6744/695 4645/6815/695 4644/6743/695 s 1 -f 4711/6798/696 4669/6799/697 4712/6800/697 -f 4713/6801/698 4714/6802/699 4715/6803/699 -f 4716/6804/700 4717/6805/701 4718/6806/701 -f 4719/6807/702 4720/6808/698 4713/6801/698 -f 4721/6809/703 4722/6810/700 4716/6804/700 -f 4723/6811/704 4724/6812/702 4719/6807/702 -f 4721/6809/703 4725/6813/705 4726/6814/703 -f 4727/6815/706 4728/6816/704 4723/6817/704 -f 4729/6818/707 4725/6819/705 4730/6820/705 -f 4731/6821/708 4732/6822/706 4727/6815/706 -f 4733/6823/709 4734/6824/707 4729/6818/707 -f 4735/6825/710 4736/6826/708 4731/6821/708 -f 4737/6827/711 4738/6828/709 4733/6823/709 -f 4739/6829/712 4740/6830/710 4735/6825/710 -f 4715/6803/699 4741/6831/713 4742/6832/713 -f 4742/6832/713 4743/6833/711 4737/6827/711 -f 4718/6806/701 4744/6834/712 4739/6829/712 -f 4745/6835/714 4663/6836/715 4746/6837/715 -f 4714/6802/716 4720/6838/717 4747/6839/683 -f 4720/6808/717 4724/6840/718 4747/6841/683 -f 4724/6812/718 4728/6842/719 4747/6843/683 -f 4728/6816/719 4732/6844/720 4747/6845/683 -f 4732/6822/720 4736/6846/721 4747/6847/683 -f 4736/6826/721 4740/6848/722 4747/6849/683 -f 4740/6830/722 4744/6850/723 4747/6851/683 -f 4744/6834/723 4717/6852/724 4747/6853/683 -f 4717/6805/724 4722/6854/725 4747/6855/683 -f 4722/6810/725 4726/6856/726 4747/6857/683 -f 4726/6814/726 4725/6813/727 4747/6858/683 -f 4725/6819/727 4734/6859/728 4747/6860/683 -f 4734/6824/728 4738/6861/729 4747/6862/683 -f 4738/6828/729 4743/6863/730 4747/6864/683 -f 4743/6833/730 4741/6865/731 4747/6866/683 -f 4741/6831/731 4714/6867/716 4747/6868/683 -f 4748/6869/732 4670/6870/696 4711/6871/696 -f 4749/6872/733 4664/6873/714 4745/6835/714 -f 4750/6874/734 4671/6875/732 4748/6869/732 -f 4751/6876/735 4612/6877/733 4749/6872/733 -f 4752/6878/736 4610/6879/734 4750/6874/734 -f 4753/6880/737 4665/6881/735 4751/6876/735 -f 4754/6882/738 4660/6883/739 4755/6884/739 -f 4755/6884/739 4659/6885/736 4752/6878/736 -f 4756/6886/740 4666/6887/737 4753/6880/737 -f 4757/6888/741 4661/6889/738 4754/6882/738 -f 4758/6890/742 4759/6891/693 4760/6892/693 -f 4761/6893/743 4759/6891/693 4762/6894/743 -f 4761/6893/743 4763/6895/744 4764/6896/744 -f 4765/6897/745 4763/6898/744 4766/6899/745 -f 4765/6897/745 4767/6900/687 4768/6901/687 -f 4768/6901/687 4769/6902/746 4770/6903/746 -f 4770/6903/746 4771/6904/747 4772/6905/747 -f 4772/6905/747 4773/6906/748 4774/6907/748 -f 4774/6907/748 4775/6908/690 4776/6909/690 -f 4777/6910/749 4775/6908/690 4778/6911/749 -f 4777/6910/749 4779/6912/750 4780/6913/750 -f 4780/6913/750 4781/6914/751 4782/6915/751 -f 4782/6915/751 4783/6916/684 4784/6917/684 -f 4785/6918/752 4783/6916/684 4786/6919/752 -f 4787/6920/753 4786/6919/752 4788/6921/753 -f 4658/6922/732 4776/6909/734 4576/6923/734 -f 4574/6924/733 4761/6893/735 4653/6925/735 -f 4576/6923/734 4777/6910/736 4646/6926/736 -f 4653/6925/735 4764/6896/737 4654/6927/737 -f 4648/6928/739 4782/6915/738 4649/6929/738 -f 4646/6926/736 4780/6913/739 4648/6928/739 -f 4654/6930/737 4765/6897/740 4655/6931/740 -f 4649/6929/738 4784/6917/741 4647/6932/741 -f 4655/6931/740 4768/6901/754 4575/6933/754 -f 4647/6932/741 4785/6918/755 4650/6934/755 -f 4575/6933/754 4770/6903/697 4656/6935/697 -f 4650/6934/755 4787/6920/715 4651/6936/715 -f 4656/6935/697 4772/6905/696 4657/6937/696 -f 4651/6936/715 4758/6890/714 4652/6938/714 -f 4657/6937/696 4774/6907/732 4658/6922/732 -f 4652/6938/714 4760/6892/733 4574/6924/733 -f 4787/6920/753 4789/6939/742 4758/6890/742 -f 4583/6940/756 4754/6882/757 4585/6941/757 -f 4746/6837/715 4662/6942/755 4790/6943/755 -f 4558/6629/736 4591/6663/734 4552/6623/734 -f 4554/6625/735 4609/6682/733 4544/6615/733 -f 4552/6623/734 4594/6666/732 4547/6618/732 -f 4544/6615/733 4579/6651/714 4545/6616/714 -f 4547/6618/732 4596/6668/696 4577/6648/696 -f 4545/6616/714 4582/6654/715 4570/6641/715 -f 4577/6727/696 4598/6670/697 4572/6643/697 -f 4570/6641/715 4584/6656/755 4565/6636/755 -f 4572/6643/697 4600/6673/754 4568/6639/754 -f 4565/6636/755 4586/6658/741 4566/6637/741 -f 4568/6639/754 4604/6677/740 4564/6635/740 -f 4566/6637/741 4588/6660/738 4556/6627/738 -f 4564/6635/740 4603/6676/737 4553/6624/737 -f 4557/6628/739 4592/6664/736 4558/6629/736 -f 4556/6627/738 4590/6662/739 4557/6628/739 -f 4553/6624/737 4608/6681/735 4554/6625/735 -f 4601/6944/758 4791/6945/759 4756/6886/758 -f 4581/6946/760 4757/6888/756 4583/6940/756 -f 4599/6947/761 4791/6945/759 4602/6948/759 -f 4578/6949/762 4790/6943/760 4581/6946/760 -f 4599/6947/761 4711/6798/763 4712/6800/761 -f 4578/6949/762 4745/6835/764 4746/6837/762 -f 4595/6950/765 4711/6871/763 4597/6951/763 -f 4607/6952/766 4745/6835/764 4580/6953/764 -f 4593/6954/767 4748/6869/765 4595/6950/765 -f 4607/6952/766 4751/6876/768 4749/6872/766 -f 4589/6955/769 4750/6874/767 4593/6954/767 -f 4606/6956/770 4751/6876/768 4605/6957/768 -f 4587/6958/771 4754/6882/757 4755/6884/771 -f 4587/6958/771 4752/6878/769 4589/6955/769 -f 4601/6944/758 4753/6880/770 4606/6956/770 -f 4791/6945/754 4667/6959/740 4756/6886/740 -f 4790/6943/755 4611/6960/741 4757/6888/741 -f 4712/6800/697 4668/6961/754 4791/6945/754 -f 4543/6614/714 4730/6820/715 4721/6809/714 -f 4573/6644/715 4729/6818/755 4730/6820/715 -f 4569/6640/755 4733/6823/741 4729/6818/755 -f 4561/6632/741 4737/6827/738 4733/6823/741 -f 4562/6633/738 4742/6832/739 4737/6827/738 -f 4555/6626/739 4715/6803/736 4742/6832/739 -f 4551/6622/736 4713/6801/734 4715/6803/736 -f 4546/6617/734 4719/6807/732 4713/6801/734 -f 4548/6619/732 4723/6811/696 4719/6807/732 -f 4571/6642/696 4727/6815/697 4723/6817/696 -f 4567/6638/697 4731/6821/754 4727/6815/697 -f 4563/6634/754 4735/6825/740 4731/6821/754 -f 4559/6630/740 4739/6829/737 4735/6825/740 -f 4560/6631/737 4718/6806/735 4739/6829/737 -f 4549/6620/735 4716/6804/733 4718/6806/735 -f 4550/6621/733 4721/6809/714 4716/6804/733 -f 4792/6962/741 4793/6963/772 4794/6964/741 -f 4795/6965/755 4794/6964/741 4796/6966/755 -f 4797/6967/773 4796/6966/755 4798/6968/773 -f 4799/6969/742 4800/6970/693 4801/6971/693 -f 4802/6972/743 4800/6970/693 4803/6973/743 -f 4802/6972/743 4804/6974/744 4805/6975/744 -f 4806/6976/745 4804/6977/744 4807/6978/745 -f 4806/6976/745 4808/6979/687 4809/6980/687 -f 4809/6980/687 4810/6981/746 4811/6982/746 -f 4811/6982/746 4812/6983/747 4813/6984/747 -f 4814/6985/748 4812/6983/747 4815/6986/748 -f 4814/6985/748 4816/6987/690 4817/6988/690 -f 4818/6989/749 4816/6987/690 4819/6990/749 -f 4820/6991/750 4819/6990/749 4821/6992/750 -f 4820/6991/750 4822/6993/751 4823/6994/751 -f 4824/6995/684 4822/6993/751 4825/6996/684 -f 4826/6997/752 4825/6996/684 4827/6998/752 -f 4828/6999/753 4827/6998/752 4829/7000/753 -f 4684/7001/732 4817/6988/734 4621/7002/734 -f 4619/7003/733 4802/6972/735 4679/7004/735 -f 4621/7002/734 4818/6989/736 4672/7005/736 -f 4679/7004/735 4805/6975/737 4680/7006/737 -f 4674/7007/739 4823/6994/738 4675/7008/738 -f 4672/7005/736 4820/6991/739 4674/7007/739 -f 4680/7009/737 4806/6976/740 4681/7010/740 -f 4675/7008/738 4824/6995/741 4673/7011/741 -f 4681/7010/740 4809/6980/754 4620/7012/754 -f 4673/7011/741 4826/6997/755 4676/7013/755 -f 4620/7012/754 4811/6982/697 4682/7014/697 -f 4676/7013/755 4828/6999/715 4677/7015/715 -f 4682/7014/697 4813/6984/696 4683/7016/696 -f 4677/7015/715 4799/6969/714 4678/7017/714 -f 4683/7016/696 4814/6985/732 4684/7001/732 -f 4678/7017/714 4801/6971/733 4619/7003/733 -f 4828/6999/753 4830/7018/742 4799/6969/742 -f 4831/7019/742 4832/7020/693 4833/7021/693 -f 4834/7022/743 4832/7020/693 4835/7023/743 -f 4834/7022/743 4836/7024/744 4837/7025/744 -f 4838/7026/745 4836/7027/744 4839/7028/745 -f 4838/7026/745 4840/7029/687 4841/7030/687 -f 4841/7030/687 4842/7031/746 4843/7032/746 -f 4843/7032/746 4844/7033/747 4845/7034/747 -f 4846/7035/748 4844/7033/747 4847/7036/748 -f 4846/7035/748 4848/7037/690 4849/7038/690 -f 4850/7039/749 4848/7037/690 4851/7040/749 -f 4850/7039/749 4852/7041/750 4853/7042/750 -f 4853/7042/750 4854/7043/751 4855/7044/751 -f 4855/7044/751 4856/7045/684 4857/7046/684 -f 4858/7047/752 4856/7045/684 4859/7048/752 -f 4860/7049/753 4859/7048/752 4861/7050/753 -f 4697/7051/732 4849/7038/734 4624/7052/734 -f 4622/7053/733 4834/7022/735 4692/7054/735 -f 4624/7052/734 4850/7039/736 4685/7055/736 -f 4692/7054/735 4837/7025/737 4693/7056/737 -f 4687/7057/739 4855/7044/738 4688/7058/738 -f 4685/7055/736 4853/7042/739 4687/7057/739 -f 4693/7059/737 4838/7026/740 4694/7060/740 -f 4688/7058/738 4857/7046/741 4686/7061/741 -f 4694/7060/740 4841/7030/754 4623/7062/754 -f 4686/7061/741 4858/7047/755 4689/7063/755 -f 4623/7062/754 4843/7032/697 4695/7064/697 -f 4689/7063/755 4860/7049/715 4690/7065/715 -f 4695/7064/697 4845/7034/696 4696/7066/696 -f 4690/7065/715 4831/7019/714 4691/7067/714 -f 4696/7066/696 4846/7035/732 4697/7051/732 -f 4691/7067/714 4833/7021/733 4622/7053/733 -f 4860/7049/753 4862/7068/742 4831/7019/742 -f 4863/7069/742 4864/7070/693 4865/7071/693 -f 4866/7072/743 4864/7070/693 4867/7073/743 -f 4866/7072/743 4868/7074/744 4869/7075/744 -f 4870/7076/745 4868/7077/744 4871/7078/745 -f 4870/7076/745 4872/7079/687 4873/7080/687 -f 4873/7080/687 4874/7081/746 4875/7082/746 -f 4875/7082/746 4876/7083/747 4877/7084/747 -f 4878/7085/748 4876/7083/747 4879/7086/748 -f 4878/7085/748 4880/7087/690 4881/7088/690 -f 4882/7089/749 4880/7087/690 4883/7090/749 -f 4882/7089/749 4884/7091/750 4885/7092/750 -f 4885/7092/750 4886/7093/751 4887/7094/751 -f 4887/7094/751 4888/7095/684 4889/7096/684 -f 4890/7097/752 4888/7095/684 4891/7098/752 -f 4892/7099/753 4891/7098/752 4893/7100/753 -f 4710/7101/732 4881/7088/734 4627/7102/734 -f 4625/7103/733 4866/7072/735 4705/7104/735 -f 4627/7102/734 4882/7089/736 4698/7105/736 -f 4705/7104/735 4869/7075/737 4706/7106/737 -f 4700/7107/739 4887/7094/738 4701/7108/738 -f 4698/7105/736 4885/7092/739 4700/7107/739 -f 4706/7109/737 4870/7076/740 4707/7110/740 -f 4701/7108/738 4889/7096/741 4699/7111/741 -f 4707/7110/740 4873/7080/754 4626/7112/754 -f 4699/7111/741 4890/7097/755 4702/7113/755 -f 4626/7112/754 4875/7082/697 4708/7114/697 -f 4702/7113/755 4892/7099/715 4703/7115/715 -f 4708/7114/697 4877/7084/696 4709/7116/696 -f 4703/7115/715 4863/7069/714 4704/7117/714 -f 4709/7116/696 4878/7085/732 4710/7101/732 -f 4704/7117/714 4865/7071/733 4625/7103/733 -f 4892/7099/753 4894/7118/742 4863/7069/742 -f 4895/7119/754 4896/7120/774 4897/7121/754 -f 4898/7122/697 4897/7121/754 4899/7123/697 -f 4900/7124/775 4899/7123/697 4901/7125/775 -f 4711/6798/696 4670/7126/696 4669/6799/697 -f 4713/6801/698 4720/6838/698 4714/6802/699 -f 4716/6804/700 4722/6854/700 4717/6805/701 -f 4719/6807/702 4724/6840/702 4720/6808/698 -f 4721/6809/703 4726/6856/703 4722/6810/700 -f 4723/6811/704 4728/6842/704 4724/6812/702 -f 4721/6809/703 4730/6820/705 4725/6813/705 -f 4727/6815/706 4732/6844/706 4728/6816/704 -f 4729/6818/707 4734/6859/707 4725/6819/705 -f 4731/6821/708 4736/6846/708 4732/6822/706 -f 4733/6823/709 4738/6861/709 4734/6824/707 -f 4735/6825/710 4740/6848/710 4736/6826/708 -f 4737/6827/711 4743/6863/711 4738/6828/709 -f 4739/6829/712 4744/6850/712 4740/6830/710 -f 4715/6803/699 4714/6867/699 4741/6831/713 -f 4742/6832/713 4741/6865/713 4743/6833/711 -f 4718/6806/701 4717/6852/701 4744/6834/712 -f 4745/6835/714 4664/6873/714 4663/6836/715 -f 4748/6869/732 4671/6875/732 4670/6870/696 -f 4749/6872/733 4612/6877/733 4664/6873/714 -f 4750/6874/734 4610/6879/734 4671/6875/732 -f 4751/6876/735 4665/6881/735 4612/6877/733 -f 4752/6878/736 4659/6885/736 4610/6879/734 -f 4753/6880/737 4666/6887/737 4665/6881/735 -f 4754/6882/738 4661/6889/738 4660/6883/739 -f 4755/6884/739 4660/6883/739 4659/6885/736 -f 4756/6886/740 4667/6959/740 4666/6887/737 -f 4757/6888/741 4611/6960/741 4661/6889/738 -f 4758/6890/742 4789/6939/742 4759/6891/693 -f 4761/6893/743 4760/6892/693 4759/6891/693 -f 4761/6893/743 4762/6894/743 4763/6895/744 -f 4765/6897/745 4764/7127/744 4763/6898/744 -f 4765/6897/745 4766/6899/745 4767/6900/687 -f 4768/6901/687 4767/6900/687 4769/6902/746 -f 4770/6903/746 4769/6902/746 4771/6904/747 -f 4772/6905/747 4771/6904/747 4773/6906/748 -f 4774/6907/748 4773/6906/748 4775/6908/690 -f 4777/6910/749 4776/6909/690 4775/6908/690 -f 4777/6910/749 4778/6911/749 4779/6912/750 -f 4780/6913/750 4779/6912/750 4781/6914/751 -f 4782/6915/751 4781/6914/751 4783/6916/684 -f 4785/6918/752 4784/6917/684 4783/6916/684 -f 4787/6920/753 4785/6918/752 4786/6919/752 -f 4658/6922/732 4774/6907/732 4776/6909/734 -f 4574/6924/733 4760/6892/733 4761/6893/735 -f 4576/6923/734 4776/6909/734 4777/6910/736 -f 4653/6925/735 4761/6893/735 4764/6896/737 -f 4648/6928/739 4780/6913/739 4782/6915/738 -f 4646/6926/736 4777/6910/736 4780/6913/739 -f 4654/6930/737 4764/7127/737 4765/6897/740 -f 4649/6929/738 4782/6915/738 4784/6917/741 -f 4655/6931/740 4765/6897/740 4768/6901/754 -f 4647/6932/741 4784/6917/741 4785/6918/755 -f 4575/6933/754 4768/6901/754 4770/6903/697 -f 4650/6934/755 4785/6918/755 4787/6920/715 -f 4656/6935/697 4770/6903/697 4772/6905/696 -f 4651/6936/715 4787/6920/715 4758/6890/714 -f 4657/6937/696 4772/6905/696 4774/6907/732 -f 4652/6938/714 4758/6890/714 4760/6892/733 -f 4787/6920/753 4788/6921/753 4789/6939/742 -f 4583/6940/756 4757/6888/756 4754/6882/757 -f 4746/6837/715 4663/6836/715 4662/6942/755 -f 4558/6629/736 4592/6664/736 4591/6663/734 -f 4554/6625/735 4608/6681/735 4609/6682/733 -f 4552/6623/734 4591/6663/734 4594/6666/732 -f 4544/6615/733 4609/6682/733 4579/6651/714 -f 4547/6618/732 4594/6666/732 4596/6668/696 -f 4545/6616/714 4579/6651/714 4582/6654/715 -f 4577/6727/696 4596/6671/696 4598/6670/697 -f 4570/6641/715 4582/6654/715 4584/6656/755 -f 4572/6643/697 4598/6670/697 4600/6673/754 -f 4565/6636/755 4584/6656/755 4586/6658/741 -f 4568/6639/754 4600/6673/754 4604/6677/740 -f 4566/6637/741 4586/6658/741 4588/6660/738 -f 4564/6635/740 4604/6677/740 4603/6676/737 -f 4557/6628/739 4590/6662/739 4592/6664/736 -f 4556/6627/738 4588/6660/738 4590/6662/739 -f 4553/6624/737 4603/6676/737 4608/6681/735 -f 4601/6944/758 4602/6948/759 4791/6945/759 -f 4581/6946/760 4790/6943/760 4757/6888/756 -f 4599/6947/761 4712/6800/761 4791/6945/759 -f 4578/6949/762 4746/6837/762 4790/6943/760 -f 4599/6947/761 4597/6669/763 4711/6798/763 -f 4578/6949/762 4580/6953/764 4745/6835/764 -f 4595/6950/765 4748/6869/765 4711/6871/763 -f 4607/6952/766 4749/6872/766 4745/6835/764 -f 4593/6954/767 4750/6874/767 4748/6869/765 -f 4607/6952/766 4605/6957/768 4751/6876/768 -f 4589/6955/769 4752/6878/769 4750/6874/767 -f 4606/6956/770 4753/6880/770 4751/6876/768 -f 4587/6958/771 4585/6941/757 4754/6882/757 -f 4587/6958/771 4755/6884/771 4752/6878/769 -f 4601/6944/758 4756/6886/758 4753/6880/770 -f 4791/6945/754 4668/6961/754 4667/6959/740 -f 4790/6943/755 4662/6942/755 4611/6960/741 -f 4712/6800/697 4669/6799/697 4668/6961/754 -f 4543/6614/714 4573/6644/715 4730/6820/715 -f 4573/6644/715 4569/6640/755 4729/6818/755 -f 4569/6640/755 4561/6632/741 4733/6823/741 -f 4561/6632/741 4562/6633/738 4737/6827/738 -f 4562/6633/738 4555/6626/739 4742/6832/739 -f 4555/6626/739 4551/6622/736 4715/6803/736 -f 4551/6622/736 4546/6617/734 4713/6801/734 -f 4546/6617/734 4548/6619/732 4719/6807/732 -f 4548/6619/732 4571/6649/696 4723/6811/696 -f 4571/6642/696 4567/6638/697 4727/6815/697 -f 4567/6638/697 4563/6634/754 4731/6821/754 -f 4563/6634/754 4559/6630/740 4735/6825/740 -f 4559/6630/740 4560/6631/737 4739/6829/737 -f 4560/6631/737 4549/6620/735 4718/6806/735 -f 4549/6620/735 4550/6621/733 4716/6804/733 -f 4550/6621/733 4543/6614/714 4721/6809/714 -f 4792/6962/741 4902/7128/772 4793/6963/772 -f 4795/6965/755 4792/6962/741 4794/6964/741 -f 4797/6967/773 4795/6965/755 4796/6966/755 -f 4799/6969/742 4830/7018/742 4800/6970/693 -f 4802/6972/743 4801/6971/693 4800/6970/693 -f 4802/6972/743 4803/6973/743 4804/6974/744 -f 4806/6976/745 4805/7129/744 4804/6977/744 -f 4806/6976/745 4807/6978/745 4808/6979/687 -f 4809/6980/687 4808/6979/687 4810/6981/746 -f 4811/6982/746 4810/6981/746 4812/6983/747 -f 4814/6985/748 4813/6984/747 4812/6983/747 -f 4814/6985/748 4815/6986/748 4816/6987/690 -f 4818/6989/749 4817/6988/690 4816/6987/690 -f 4820/6991/750 4818/6989/749 4819/6990/749 -f 4820/6991/750 4821/6992/750 4822/6993/751 -f 4824/6995/684 4823/6994/751 4822/6993/751 -f 4826/6997/752 4824/6995/684 4825/6996/684 -f 4828/6999/753 4826/6997/752 4827/6998/752 -f 4684/7001/732 4814/6985/732 4817/6988/734 -f 4619/7003/733 4801/6971/733 4802/6972/735 -f 4621/7002/734 4817/6988/734 4818/6989/736 -f 4679/7004/735 4802/6972/735 4805/6975/737 -f 4674/7007/739 4820/6991/739 4823/6994/738 -f 4672/7005/736 4818/6989/736 4820/6991/739 -f 4680/7009/737 4805/7129/737 4806/6976/740 -f 4675/7008/738 4823/6994/738 4824/6995/741 -f 4681/7010/740 4806/6976/740 4809/6980/754 -f 4673/7011/741 4824/6995/741 4826/6997/755 -f 4620/7012/754 4809/6980/754 4811/6982/697 -f 4676/7013/755 4826/6997/755 4828/6999/715 -f 4682/7014/697 4811/6982/697 4813/6984/696 -f 4677/7015/715 4828/6999/715 4799/6969/714 -f 4683/7016/696 4813/6984/696 4814/6985/732 -f 4678/7017/714 4799/6969/714 4801/6971/733 -f 4828/6999/753 4829/7000/753 4830/7018/742 -f 4831/7019/742 4862/7068/742 4832/7020/693 -f 4834/7022/743 4833/7021/693 4832/7020/693 -f 4834/7022/743 4835/7023/743 4836/7024/744 -f 4838/7026/745 4837/7130/744 4836/7027/744 -f 4838/7026/745 4839/7028/745 4840/7029/687 -f 4841/7030/687 4840/7029/687 4842/7031/746 -f 4843/7032/746 4842/7031/746 4844/7033/747 -f 4846/7035/748 4845/7034/747 4844/7033/747 -f 4846/7035/748 4847/7036/748 4848/7037/690 -f 4850/7039/749 4849/7038/690 4848/7037/690 -f 4850/7039/749 4851/7040/749 4852/7041/750 -f 4853/7042/750 4852/7041/750 4854/7043/751 -f 4855/7044/751 4854/7043/751 4856/7045/684 -f 4858/7047/752 4857/7046/684 4856/7045/684 -f 4860/7049/753 4858/7047/752 4859/7048/752 -f 4697/7051/732 4846/7035/732 4849/7038/734 -f 4622/7053/733 4833/7021/733 4834/7022/735 -f 4624/7052/734 4849/7038/734 4850/7039/736 -f 4692/7054/735 4834/7022/735 4837/7025/737 -f 4687/7057/739 4853/7042/739 4855/7044/738 -f 4685/7055/736 4850/7039/736 4853/7042/739 -f 4693/7059/737 4837/7130/737 4838/7026/740 -f 4688/7058/738 4855/7044/738 4857/7046/741 -f 4694/7060/740 4838/7026/740 4841/7030/754 -f 4686/7061/741 4857/7046/741 4858/7047/755 -f 4623/7062/754 4841/7030/754 4843/7032/697 -f 4689/7063/755 4858/7047/755 4860/7049/715 -f 4695/7064/697 4843/7032/697 4845/7034/696 -f 4690/7065/715 4860/7049/715 4831/7019/714 -f 4696/7066/696 4845/7034/696 4846/7035/732 -f 4691/7067/714 4831/7019/714 4833/7021/733 -f 4860/7049/753 4861/7050/753 4862/7068/742 -f 4863/7069/742 4894/7118/742 4864/7070/693 -f 4866/7072/743 4865/7071/693 4864/7070/693 -f 4866/7072/743 4867/7073/743 4868/7074/744 -f 4870/7076/745 4869/7131/744 4868/7077/744 -f 4870/7076/745 4871/7078/745 4872/7079/687 -f 4873/7080/687 4872/7079/687 4874/7081/746 -f 4875/7082/746 4874/7081/746 4876/7083/747 -f 4878/7085/748 4877/7084/747 4876/7083/747 -f 4878/7085/748 4879/7086/748 4880/7087/690 -f 4882/7089/749 4881/7088/690 4880/7087/690 -f 4882/7089/749 4883/7090/749 4884/7091/750 -f 4885/7092/750 4884/7091/750 4886/7093/751 -f 4887/7094/751 4886/7093/751 4888/7095/684 -f 4890/7097/752 4889/7096/684 4888/7095/684 -f 4892/7099/753 4890/7097/752 4891/7098/752 -f 4710/7101/732 4878/7085/732 4881/7088/734 -f 4625/7103/733 4865/7071/733 4866/7072/735 -f 4627/7102/734 4881/7088/734 4882/7089/736 -f 4705/7104/735 4866/7072/735 4869/7075/737 -f 4700/7107/739 4885/7092/739 4887/7094/738 -f 4698/7105/736 4882/7089/736 4885/7092/739 -f 4706/7109/737 4869/7131/737 4870/7076/740 -f 4701/7108/738 4887/7094/738 4889/7096/741 -f 4707/7110/740 4870/7076/740 4873/7080/754 -f 4699/7111/741 4889/7096/741 4890/7097/755 -f 4626/7112/754 4873/7080/754 4875/7082/697 -f 4702/7113/755 4890/7097/755 4892/7099/715 -f 4708/7114/697 4875/7082/697 4877/7084/696 -f 4703/7115/715 4892/7099/715 4863/7069/714 -f 4709/7116/696 4877/7084/696 4878/7085/732 -f 4704/7117/714 4863/7069/714 4865/7071/733 -f 4892/7099/753 4893/7100/753 4894/7118/742 -f 4895/7119/754 4903/7132/774 4896/7120/774 -f 4898/7122/697 4895/7119/754 4897/7121/754 -f 4900/7124/775 4898/7122/697 4899/7123/697 +f 4711/6816/696 4669/6817/697 4712/6818/697 +f 4713/6819/698 4714/6820/699 4715/6821/699 +f 4716/6822/700 4717/6823/701 4718/6824/701 +f 4719/6825/702 4720/6826/698 4713/6819/698 +f 4721/6827/703 4722/6828/700 4716/6822/700 +f 4723/6829/704 4724/6830/702 4719/6825/702 +f 4721/6827/703 4725/6831/705 4726/6832/703 +f 4727/6833/706 4728/6834/704 4723/6835/704 +f 4729/6836/707 4725/6837/705 4730/6838/705 +f 4731/6839/708 4732/6840/706 4727/6833/706 +f 4733/6841/709 4734/6842/707 4729/6836/707 +f 4735/6843/710 4736/6844/708 4731/6839/708 +f 4737/6845/711 4738/6846/709 4733/6841/709 +f 4739/6847/712 4740/6848/710 4735/6843/710 +f 4715/6821/699 4741/6849/713 4742/6850/713 +f 4742/6850/713 4743/6851/711 4737/6845/711 +f 4718/6824/701 4744/6852/712 4739/6847/712 +f 4745/6853/714 4663/6854/715 4746/6855/715 +f 4714/6820/716 4720/6856/717 4747/6857/683 +f 4720/6826/717 4724/6858/718 4747/6859/683 +f 4724/6830/718 4728/6860/719 4747/6861/683 +f 4728/6834/719 4732/6862/720 4747/6863/683 +f 4732/6840/720 4736/6864/721 4747/6865/683 +f 4736/6844/721 4740/6866/722 4747/6867/683 +f 4740/6848/722 4744/6868/723 4747/6869/683 +f 4744/6852/723 4717/6870/724 4747/6871/683 +f 4717/6823/724 4722/6872/725 4747/6873/683 +f 4722/6828/725 4726/6874/726 4747/6875/683 +f 4726/6832/726 4725/6831/727 4747/6876/683 +f 4725/6837/727 4734/6877/728 4747/6878/683 +f 4734/6842/728 4738/6879/729 4747/6880/683 +f 4738/6846/729 4743/6881/730 4747/6882/683 +f 4743/6851/730 4741/6883/731 4747/6884/683 +f 4741/6849/731 4714/6885/716 4747/6886/683 +f 4748/6887/732 4670/6888/696 4711/6889/696 +f 4749/6890/733 4664/6891/714 4745/6853/714 +f 4750/6892/734 4671/6893/732 4748/6887/732 +f 4751/6894/735 4612/6895/733 4749/6890/733 +f 4752/6896/736 4610/6897/734 4750/6892/734 +f 4753/6898/737 4665/6899/735 4751/6894/735 +f 4754/6900/738 4660/6901/739 4755/6902/739 +f 4755/6902/739 4659/6903/736 4752/6896/736 +f 4756/6904/740 4666/6905/737 4753/6898/737 +f 4757/6906/741 4661/6907/738 4754/6900/738 +f 4758/6908/742 4759/6909/693 4760/6910/693 +f 4761/6911/743 4759/6909/693 4762/6912/743 +f 4761/6911/743 4763/6913/744 4764/6914/744 +f 4765/6915/745 4763/6916/744 4766/6917/745 +f 4765/6915/745 4767/6918/687 4768/6919/687 +f 4768/6919/687 4769/6920/746 4770/6921/746 +f 4770/6921/746 4771/6922/747 4772/6923/747 +f 4772/6923/747 4773/6924/748 4774/6925/748 +f 4774/6925/748 4775/6926/690 4776/6927/690 +f 4777/6928/749 4775/6926/690 4778/6929/749 +f 4777/6928/749 4779/6930/750 4780/6931/750 +f 4780/6931/750 4781/6932/751 4782/6933/751 +f 4782/6933/751 4783/6934/684 4784/6935/684 +f 4785/6936/752 4783/6934/684 4786/6937/752 +f 4787/6938/753 4786/6937/752 4788/6939/753 +f 4658/6940/732 4776/6927/734 4576/6941/734 +f 4574/6942/733 4761/6911/735 4653/6943/735 +f 4576/6941/734 4777/6928/736 4646/6944/736 +f 4653/6943/735 4764/6914/737 4654/6945/737 +f 4648/6946/739 4782/6933/738 4649/6947/738 +f 4646/6944/736 4780/6931/739 4648/6946/739 +f 4654/6948/737 4765/6915/740 4655/6949/740 +f 4649/6947/738 4784/6935/741 4647/6950/741 +f 4655/6949/740 4768/6919/754 4575/6951/754 +f 4647/6950/741 4785/6936/755 4650/6952/755 +f 4575/6951/754 4770/6921/697 4656/6953/697 +f 4650/6952/755 4787/6938/715 4651/6954/715 +f 4656/6953/697 4772/6923/696 4657/6955/696 +f 4651/6954/715 4758/6908/714 4652/6956/714 +f 4657/6955/696 4774/6925/732 4658/6940/732 +f 4652/6956/714 4760/6910/733 4574/6942/733 +f 4787/6938/753 4789/6957/742 4758/6908/742 +f 4583/6958/756 4754/6900/757 4585/6959/757 +f 4746/6855/715 4662/6960/755 4790/6961/755 +f 4558/6647/736 4591/6681/734 4552/6641/734 +f 4554/6643/735 4609/6700/733 4544/6633/733 +f 4552/6641/734 4594/6684/732 4547/6636/732 +f 4544/6633/733 4579/6669/714 4545/6634/714 +f 4547/6636/732 4596/6686/696 4577/6666/696 +f 4545/6634/714 4582/6672/715 4570/6659/715 +f 4577/6745/696 4598/6688/697 4572/6661/697 +f 4570/6659/715 4584/6674/755 4565/6654/755 +f 4572/6661/697 4600/6691/754 4568/6657/754 +f 4565/6654/755 4586/6676/741 4566/6655/741 +f 4568/6657/754 4604/6695/740 4564/6653/740 +f 4566/6655/741 4588/6678/738 4556/6645/738 +f 4564/6653/740 4603/6694/737 4553/6642/737 +f 4557/6646/739 4592/6682/736 4558/6647/736 +f 4556/6645/738 4590/6680/739 4557/6646/739 +f 4553/6642/737 4608/6699/735 4554/6643/735 +f 4601/6962/758 4791/6963/759 4756/6904/758 +f 4581/6964/760 4757/6906/756 4583/6958/756 +f 4599/6965/761 4791/6963/759 4602/6966/759 +f 4578/6967/762 4790/6961/760 4581/6964/760 +f 4599/6965/761 4711/6816/763 4712/6818/761 +f 4578/6967/762 4745/6853/764 4746/6855/762 +f 4595/6968/765 4711/6889/763 4597/6969/763 +f 4607/6970/766 4745/6853/764 4580/6971/764 +f 4593/6972/767 4748/6887/765 4595/6968/765 +f 4607/6970/766 4751/6894/768 4749/6890/766 +f 4589/6973/769 4750/6892/767 4593/6972/767 +f 4606/6974/770 4751/6894/768 4605/6975/768 +f 4587/6976/771 4754/6900/757 4755/6902/771 +f 4587/6976/771 4752/6896/769 4589/6973/769 +f 4601/6962/758 4753/6898/770 4606/6974/770 +f 4791/6963/754 4667/6977/740 4756/6904/740 +f 4790/6961/755 4611/6978/741 4757/6906/741 +f 4712/6818/697 4668/6979/754 4791/6963/754 +f 4543/6632/714 4730/6838/715 4721/6827/714 +f 4573/6662/715 4729/6836/755 4730/6838/715 +f 4569/6658/755 4733/6841/741 4729/6836/755 +f 4561/6650/741 4737/6845/738 4733/6841/741 +f 4562/6651/738 4742/6850/739 4737/6845/738 +f 4555/6644/739 4715/6821/736 4742/6850/739 +f 4551/6640/736 4713/6819/734 4715/6821/736 +f 4546/6635/734 4719/6825/732 4713/6819/734 +f 4548/6637/732 4723/6829/696 4719/6825/732 +f 4571/6660/696 4727/6833/697 4723/6835/696 +f 4567/6656/697 4731/6839/754 4727/6833/697 +f 4563/6652/754 4735/6843/740 4731/6839/754 +f 4559/6648/740 4739/6847/737 4735/6843/740 +f 4560/6649/737 4718/6824/735 4739/6847/737 +f 4549/6638/735 4716/6822/733 4718/6824/735 +f 4550/6639/733 4721/6827/714 4716/6822/733 +f 4792/6980/741 4793/6981/772 4794/6982/741 +f 4795/6983/755 4794/6982/741 4796/6984/755 +f 4797/6985/773 4796/6984/755 4798/6986/773 +f 4799/6987/742 4800/6988/693 4801/6989/693 +f 4802/6990/743 4800/6988/693 4803/6991/743 +f 4802/6990/743 4804/6992/744 4805/6993/744 +f 4806/6994/745 4804/6995/744 4807/6996/745 +f 4806/6994/745 4808/6997/687 4809/6998/687 +f 4809/6998/687 4810/6999/746 4811/7000/746 +f 4811/7000/746 4812/7001/747 4813/7002/747 +f 4814/7003/748 4812/7001/747 4815/7004/748 +f 4814/7003/748 4816/7005/690 4817/7006/690 +f 4818/7007/749 4816/7005/690 4819/7008/749 +f 4820/7009/750 4819/7008/749 4821/7010/750 +f 4820/7009/750 4822/7011/751 4823/7012/751 +f 4824/7013/684 4822/7011/751 4825/7014/684 +f 4826/7015/752 4825/7014/684 4827/7016/752 +f 4828/7017/753 4827/7016/752 4829/7018/753 +f 4684/7019/732 4817/7006/734 4621/7020/734 +f 4619/7021/733 4802/6990/735 4679/7022/735 +f 4621/7020/734 4818/7007/736 4672/7023/736 +f 4679/7022/735 4805/6993/737 4680/7024/737 +f 4674/7025/739 4823/7012/738 4675/7026/738 +f 4672/7023/736 4820/7009/739 4674/7025/739 +f 4680/7027/737 4806/6994/740 4681/7028/740 +f 4675/7026/738 4824/7013/741 4673/7029/741 +f 4681/7028/740 4809/6998/754 4620/7030/754 +f 4673/7029/741 4826/7015/755 4676/7031/755 +f 4620/7030/754 4811/7000/697 4682/7032/697 +f 4676/7031/755 4828/7017/715 4677/7033/715 +f 4682/7032/697 4813/7002/696 4683/7034/696 +f 4677/7033/715 4799/6987/714 4678/7035/714 +f 4683/7034/696 4814/7003/732 4684/7019/732 +f 4678/7035/714 4801/6989/733 4619/7021/733 +f 4828/7017/753 4830/7036/742 4799/6987/742 +f 4831/7037/742 4832/7038/693 4833/7039/693 +f 4834/7040/743 4832/7038/693 4835/7041/743 +f 4834/7040/743 4836/7042/744 4837/7043/744 +f 4838/7044/745 4836/7045/744 4839/7046/745 +f 4838/7044/745 4840/7047/687 4841/7048/687 +f 4841/7048/687 4842/7049/746 4843/7050/746 +f 4843/7050/746 4844/7051/747 4845/7052/747 +f 4846/7053/748 4844/7051/747 4847/7054/748 +f 4846/7053/748 4848/7055/690 4849/7056/690 +f 4850/7057/749 4848/7055/690 4851/7058/749 +f 4850/7057/749 4852/7059/750 4853/7060/750 +f 4853/7060/750 4854/7061/751 4855/7062/751 +f 4855/7062/751 4856/7063/684 4857/7064/684 +f 4858/7065/752 4856/7063/684 4859/7066/752 +f 4860/7067/753 4859/7066/752 4861/7068/753 +f 4697/7069/732 4849/7056/734 4624/7070/734 +f 4622/7071/733 4834/7040/735 4692/7072/735 +f 4624/7070/734 4850/7057/736 4685/7073/736 +f 4692/7072/735 4837/7043/737 4693/7074/737 +f 4687/7075/739 4855/7062/738 4688/7076/738 +f 4685/7073/736 4853/7060/739 4687/7075/739 +f 4693/7077/737 4838/7044/740 4694/7078/740 +f 4688/7076/738 4857/7064/741 4686/7079/741 +f 4694/7078/740 4841/7048/754 4623/7080/754 +f 4686/7079/741 4858/7065/755 4689/7081/755 +f 4623/7080/754 4843/7050/697 4695/7082/697 +f 4689/7081/755 4860/7067/715 4690/7083/715 +f 4695/7082/697 4845/7052/696 4696/7084/696 +f 4690/7083/715 4831/7037/714 4691/7085/714 +f 4696/7084/696 4846/7053/732 4697/7069/732 +f 4691/7085/714 4833/7039/733 4622/7071/733 +f 4860/7067/753 4862/7086/742 4831/7037/742 +f 4863/7087/742 4864/7088/693 4865/7089/693 +f 4866/7090/743 4864/7088/693 4867/7091/743 +f 4866/7090/743 4868/7092/744 4869/7093/744 +f 4870/7094/745 4868/7095/744 4871/7096/745 +f 4870/7094/745 4872/7097/687 4873/7098/687 +f 4873/7098/687 4874/7099/746 4875/7100/746 +f 4875/7100/746 4876/7101/747 4877/7102/747 +f 4878/7103/748 4876/7101/747 4879/7104/748 +f 4878/7103/748 4880/7105/690 4881/7106/690 +f 4882/7107/749 4880/7105/690 4883/7108/749 +f 4882/7107/749 4884/7109/750 4885/7110/750 +f 4885/7110/750 4886/7111/751 4887/7112/751 +f 4887/7112/751 4888/7113/684 4889/7114/684 +f 4890/7115/752 4888/7113/684 4891/7116/752 +f 4892/7117/753 4891/7116/752 4893/7118/753 +f 4710/7119/732 4881/7106/734 4627/7120/734 +f 4625/7121/733 4866/7090/735 4705/7122/735 +f 4627/7120/734 4882/7107/736 4698/7123/736 +f 4705/7122/735 4869/7093/737 4706/7124/737 +f 4700/7125/739 4887/7112/738 4701/7126/738 +f 4698/7123/736 4885/7110/739 4700/7125/739 +f 4706/7127/737 4870/7094/740 4707/7128/740 +f 4701/7126/738 4889/7114/741 4699/7129/741 +f 4707/7128/740 4873/7098/754 4626/7130/754 +f 4699/7129/741 4890/7115/755 4702/7131/755 +f 4626/7130/754 4875/7100/697 4708/7132/697 +f 4702/7131/755 4892/7117/715 4703/7133/715 +f 4708/7132/697 4877/7102/696 4709/7134/696 +f 4703/7133/715 4863/7087/714 4704/7135/714 +f 4709/7134/696 4878/7103/732 4710/7119/732 +f 4704/7135/714 4865/7089/733 4625/7121/733 +f 4892/7117/753 4894/7136/742 4863/7087/742 +f 4895/7137/754 4896/7138/774 4897/7139/754 +f 4898/7140/697 4897/7139/754 4899/7141/697 +f 4900/7142/775 4899/7141/697 4901/7143/775 +f 4711/6816/696 4670/7144/696 4669/6817/697 +f 4713/6819/698 4720/6856/698 4714/6820/699 +f 4716/6822/700 4722/6872/700 4717/6823/701 +f 4719/6825/702 4724/6858/702 4720/6826/698 +f 4721/6827/703 4726/6874/703 4722/6828/700 +f 4723/6829/704 4728/6860/704 4724/6830/702 +f 4721/6827/703 4730/6838/705 4725/6831/705 +f 4727/6833/706 4732/6862/706 4728/6834/704 +f 4729/6836/707 4734/6877/707 4725/6837/705 +f 4731/6839/708 4736/6864/708 4732/6840/706 +f 4733/6841/709 4738/6879/709 4734/6842/707 +f 4735/6843/710 4740/6866/710 4736/6844/708 +f 4737/6845/711 4743/6881/711 4738/6846/709 +f 4739/6847/712 4744/6868/712 4740/6848/710 +f 4715/6821/699 4714/6885/699 4741/6849/713 +f 4742/6850/713 4741/6883/713 4743/6851/711 +f 4718/6824/701 4717/6870/701 4744/6852/712 +f 4745/6853/714 4664/6891/714 4663/6854/715 +f 4748/6887/732 4671/6893/732 4670/6888/696 +f 4749/6890/733 4612/6895/733 4664/6891/714 +f 4750/6892/734 4610/6897/734 4671/6893/732 +f 4751/6894/735 4665/6899/735 4612/6895/733 +f 4752/6896/736 4659/6903/736 4610/6897/734 +f 4753/6898/737 4666/6905/737 4665/6899/735 +f 4754/6900/738 4661/6907/738 4660/6901/739 +f 4755/6902/739 4660/6901/739 4659/6903/736 +f 4756/6904/740 4667/6977/740 4666/6905/737 +f 4757/6906/741 4611/6978/741 4661/6907/738 +f 4758/6908/742 4789/6957/742 4759/6909/693 +f 4761/6911/743 4760/6910/693 4759/6909/693 +f 4761/6911/743 4762/6912/743 4763/6913/744 +f 4765/6915/745 4764/7145/744 4763/6916/744 +f 4765/6915/745 4766/6917/745 4767/6918/687 +f 4768/6919/687 4767/6918/687 4769/6920/746 +f 4770/6921/746 4769/6920/746 4771/6922/747 +f 4772/6923/747 4771/6922/747 4773/6924/748 +f 4774/6925/748 4773/6924/748 4775/6926/690 +f 4777/6928/749 4776/6927/690 4775/6926/690 +f 4777/6928/749 4778/6929/749 4779/6930/750 +f 4780/6931/750 4779/6930/750 4781/6932/751 +f 4782/6933/751 4781/6932/751 4783/6934/684 +f 4785/6936/752 4784/6935/684 4783/6934/684 +f 4787/6938/753 4785/6936/752 4786/6937/752 +f 4658/6940/732 4774/6925/732 4776/6927/734 +f 4574/6942/733 4760/6910/733 4761/6911/735 +f 4576/6941/734 4776/6927/734 4777/6928/736 +f 4653/6943/735 4761/6911/735 4764/6914/737 +f 4648/6946/739 4780/6931/739 4782/6933/738 +f 4646/6944/736 4777/6928/736 4780/6931/739 +f 4654/6948/737 4764/7145/737 4765/6915/740 +f 4649/6947/738 4782/6933/738 4784/6935/741 +f 4655/6949/740 4765/6915/740 4768/6919/754 +f 4647/6950/741 4784/6935/741 4785/6936/755 +f 4575/6951/754 4768/6919/754 4770/6921/697 +f 4650/6952/755 4785/6936/755 4787/6938/715 +f 4656/6953/697 4770/6921/697 4772/6923/696 +f 4651/6954/715 4787/6938/715 4758/6908/714 +f 4657/6955/696 4772/6923/696 4774/6925/732 +f 4652/6956/714 4758/6908/714 4760/6910/733 +f 4787/6938/753 4788/6939/753 4789/6957/742 +f 4583/6958/756 4757/6906/756 4754/6900/757 +f 4746/6855/715 4663/6854/715 4662/6960/755 +f 4558/6647/736 4592/6682/736 4591/6681/734 +f 4554/6643/735 4608/6699/735 4609/6700/733 +f 4552/6641/734 4591/6681/734 4594/6684/732 +f 4544/6633/733 4609/6700/733 4579/6669/714 +f 4547/6636/732 4594/6684/732 4596/6686/696 +f 4545/6634/714 4579/6669/714 4582/6672/715 +f 4577/6745/696 4596/6689/696 4598/6688/697 +f 4570/6659/715 4582/6672/715 4584/6674/755 +f 4572/6661/697 4598/6688/697 4600/6691/754 +f 4565/6654/755 4584/6674/755 4586/6676/741 +f 4568/6657/754 4600/6691/754 4604/6695/740 +f 4566/6655/741 4586/6676/741 4588/6678/738 +f 4564/6653/740 4604/6695/740 4603/6694/737 +f 4557/6646/739 4590/6680/739 4592/6682/736 +f 4556/6645/738 4588/6678/738 4590/6680/739 +f 4553/6642/737 4603/6694/737 4608/6699/735 +f 4601/6962/758 4602/6966/759 4791/6963/759 +f 4581/6964/760 4790/6961/760 4757/6906/756 +f 4599/6965/761 4712/6818/761 4791/6963/759 +f 4578/6967/762 4746/6855/762 4790/6961/760 +f 4599/6965/761 4597/6687/763 4711/6816/763 +f 4578/6967/762 4580/6971/764 4745/6853/764 +f 4595/6968/765 4748/6887/765 4711/6889/763 +f 4607/6970/766 4749/6890/766 4745/6853/764 +f 4593/6972/767 4750/6892/767 4748/6887/765 +f 4607/6970/766 4605/6975/768 4751/6894/768 +f 4589/6973/769 4752/6896/769 4750/6892/767 +f 4606/6974/770 4753/6898/770 4751/6894/768 +f 4587/6976/771 4585/6959/757 4754/6900/757 +f 4587/6976/771 4755/6902/771 4752/6896/769 +f 4601/6962/758 4756/6904/758 4753/6898/770 +f 4791/6963/754 4668/6979/754 4667/6977/740 +f 4790/6961/755 4662/6960/755 4611/6978/741 +f 4712/6818/697 4669/6817/697 4668/6979/754 +f 4543/6632/714 4573/6662/715 4730/6838/715 +f 4573/6662/715 4569/6658/755 4729/6836/755 +f 4569/6658/755 4561/6650/741 4733/6841/741 +f 4561/6650/741 4562/6651/738 4737/6845/738 +f 4562/6651/738 4555/6644/739 4742/6850/739 +f 4555/6644/739 4551/6640/736 4715/6821/736 +f 4551/6640/736 4546/6635/734 4713/6819/734 +f 4546/6635/734 4548/6637/732 4719/6825/732 +f 4548/6637/732 4571/6667/696 4723/6829/696 +f 4571/6660/696 4567/6656/697 4727/6833/697 +f 4567/6656/697 4563/6652/754 4731/6839/754 +f 4563/6652/754 4559/6648/740 4735/6843/740 +f 4559/6648/740 4560/6649/737 4739/6847/737 +f 4560/6649/737 4549/6638/735 4718/6824/735 +f 4549/6638/735 4550/6639/733 4716/6822/733 +f 4550/6639/733 4543/6632/714 4721/6827/714 +f 4792/6980/741 4902/7146/772 4793/6981/772 +f 4795/6983/755 4792/6980/741 4794/6982/741 +f 4797/6985/773 4795/6983/755 4796/6984/755 +f 4799/6987/742 4830/7036/742 4800/6988/693 +f 4802/6990/743 4801/6989/693 4800/6988/693 +f 4802/6990/743 4803/6991/743 4804/6992/744 +f 4806/6994/745 4805/7147/744 4804/6995/744 +f 4806/6994/745 4807/6996/745 4808/6997/687 +f 4809/6998/687 4808/6997/687 4810/6999/746 +f 4811/7000/746 4810/6999/746 4812/7001/747 +f 4814/7003/748 4813/7002/747 4812/7001/747 +f 4814/7003/748 4815/7004/748 4816/7005/690 +f 4818/7007/749 4817/7006/690 4816/7005/690 +f 4820/7009/750 4818/7007/749 4819/7008/749 +f 4820/7009/750 4821/7010/750 4822/7011/751 +f 4824/7013/684 4823/7012/751 4822/7011/751 +f 4826/7015/752 4824/7013/684 4825/7014/684 +f 4828/7017/753 4826/7015/752 4827/7016/752 +f 4684/7019/732 4814/7003/732 4817/7006/734 +f 4619/7021/733 4801/6989/733 4802/6990/735 +f 4621/7020/734 4817/7006/734 4818/7007/736 +f 4679/7022/735 4802/6990/735 4805/6993/737 +f 4674/7025/739 4820/7009/739 4823/7012/738 +f 4672/7023/736 4818/7007/736 4820/7009/739 +f 4680/7027/737 4805/7147/737 4806/6994/740 +f 4675/7026/738 4823/7012/738 4824/7013/741 +f 4681/7028/740 4806/6994/740 4809/6998/754 +f 4673/7029/741 4824/7013/741 4826/7015/755 +f 4620/7030/754 4809/6998/754 4811/7000/697 +f 4676/7031/755 4826/7015/755 4828/7017/715 +f 4682/7032/697 4811/7000/697 4813/7002/696 +f 4677/7033/715 4828/7017/715 4799/6987/714 +f 4683/7034/696 4813/7002/696 4814/7003/732 +f 4678/7035/714 4799/6987/714 4801/6989/733 +f 4828/7017/753 4829/7018/753 4830/7036/742 +f 4831/7037/742 4862/7086/742 4832/7038/693 +f 4834/7040/743 4833/7039/693 4832/7038/693 +f 4834/7040/743 4835/7041/743 4836/7042/744 +f 4838/7044/745 4837/7148/744 4836/7045/744 +f 4838/7044/745 4839/7046/745 4840/7047/687 +f 4841/7048/687 4840/7047/687 4842/7049/746 +f 4843/7050/746 4842/7049/746 4844/7051/747 +f 4846/7053/748 4845/7052/747 4844/7051/747 +f 4846/7053/748 4847/7054/748 4848/7055/690 +f 4850/7057/749 4849/7056/690 4848/7055/690 +f 4850/7057/749 4851/7058/749 4852/7059/750 +f 4853/7060/750 4852/7059/750 4854/7061/751 +f 4855/7062/751 4854/7061/751 4856/7063/684 +f 4858/7065/752 4857/7064/684 4856/7063/684 +f 4860/7067/753 4858/7065/752 4859/7066/752 +f 4697/7069/732 4846/7053/732 4849/7056/734 +f 4622/7071/733 4833/7039/733 4834/7040/735 +f 4624/7070/734 4849/7056/734 4850/7057/736 +f 4692/7072/735 4834/7040/735 4837/7043/737 +f 4687/7075/739 4853/7060/739 4855/7062/738 +f 4685/7073/736 4850/7057/736 4853/7060/739 +f 4693/7077/737 4837/7148/737 4838/7044/740 +f 4688/7076/738 4855/7062/738 4857/7064/741 +f 4694/7078/740 4838/7044/740 4841/7048/754 +f 4686/7079/741 4857/7064/741 4858/7065/755 +f 4623/7080/754 4841/7048/754 4843/7050/697 +f 4689/7081/755 4858/7065/755 4860/7067/715 +f 4695/7082/697 4843/7050/697 4845/7052/696 +f 4690/7083/715 4860/7067/715 4831/7037/714 +f 4696/7084/696 4845/7052/696 4846/7053/732 +f 4691/7085/714 4831/7037/714 4833/7039/733 +f 4860/7067/753 4861/7068/753 4862/7086/742 +f 4863/7087/742 4894/7136/742 4864/7088/693 +f 4866/7090/743 4865/7089/693 4864/7088/693 +f 4866/7090/743 4867/7091/743 4868/7092/744 +f 4870/7094/745 4869/7149/744 4868/7095/744 +f 4870/7094/745 4871/7096/745 4872/7097/687 +f 4873/7098/687 4872/7097/687 4874/7099/746 +f 4875/7100/746 4874/7099/746 4876/7101/747 +f 4878/7103/748 4877/7102/747 4876/7101/747 +f 4878/7103/748 4879/7104/748 4880/7105/690 +f 4882/7107/749 4881/7106/690 4880/7105/690 +f 4882/7107/749 4883/7108/749 4884/7109/750 +f 4885/7110/750 4884/7109/750 4886/7111/751 +f 4887/7112/751 4886/7111/751 4888/7113/684 +f 4890/7115/752 4889/7114/684 4888/7113/684 +f 4892/7117/753 4890/7115/752 4891/7116/752 +f 4710/7119/732 4878/7103/732 4881/7106/734 +f 4625/7121/733 4865/7089/733 4866/7090/735 +f 4627/7120/734 4881/7106/734 4882/7107/736 +f 4705/7122/735 4866/7090/735 4869/7093/737 +f 4700/7125/739 4885/7110/739 4887/7112/738 +f 4698/7123/736 4882/7107/736 4885/7110/739 +f 4706/7127/737 4869/7149/737 4870/7094/740 +f 4701/7126/738 4887/7112/738 4889/7114/741 +f 4707/7128/740 4870/7094/740 4873/7098/754 +f 4699/7129/741 4889/7114/741 4890/7115/755 +f 4626/7130/754 4873/7098/754 4875/7100/697 +f 4702/7131/755 4890/7115/755 4892/7117/715 +f 4708/7132/697 4875/7100/697 4877/7102/696 +f 4703/7133/715 4892/7117/715 4863/7087/714 +f 4709/7134/696 4877/7102/696 4878/7103/732 +f 4704/7135/714 4863/7087/714 4865/7089/733 +f 4892/7117/753 4893/7118/753 4894/7136/742 +f 4895/7137/754 4903/7150/774 4896/7138/774 +f 4898/7140/697 4895/7137/754 4897/7139/754 +f 4900/7142/775 4898/7140/697 4899/7141/697 o Strong_Missile v 0.866138 2.750000 0.358766 v 0.750000 2.750000 0.000000 @@ -19574,341 +19604,341 @@ vn 0.9923 0.1240 -0.0000 vn -0.9167 0.1240 0.3797 vn 0.9167 0.1240 -0.3797 s off -f 4904/7133/776 4905/7134/776 4906/7135/776 -f 4906/7135/776 4907/7136/776 4908/7137/776 -f 4907/7138/776 4909/7139/776 4908/7137/776 -f 4910/7140/776 4911/7141/776 4909/7139/776 -f 4912/7142/776 4913/7143/776 4911/7141/776 -f 4914/7144/776 4915/7145/776 4913/7143/776 -f 4916/7146/776 4917/7147/776 4915/7145/776 -f 4917/7147/776 4918/7148/776 4919/7149/776 -f 4918/7150/776 4920/7151/776 4919/7149/776 -f 4920/7152/776 4921/7153/776 4922/7154/776 -f 4922/7154/776 4923/7155/776 4924/7156/776 -f 4923/7157/776 4925/7158/776 4924/7156/776 -f 4926/7159/776 4927/7160/776 4925/7158/776 -f 4927/7160/776 4928/7161/776 4929/7162/776 -f 4928/7163/776 4930/7164/776 4929/7162/776 -f 4931/7165/776 4904/7133/776 4930/7164/776 -f 4932/7166/776 4933/7167/776 4934/7168/776 -f 4935/7169/777 4936/7170/777 4937/7171/777 -f 4938/7172/778 4935/7169/778 4939/7173/778 -f 4935/7174/779 4937/7175/779 4939/7173/779 -f 4936/7176/776 4940/7177/776 4938/7172/776 -f 4941/7178/780 4942/7179/780 4943/7180/780 -f 4944/7181/781 4941/7178/781 4945/7182/781 -f 4941/7183/782 4943/7184/782 4945/7182/782 -f 4942/7185/776 4946/7186/776 4944/7181/776 -f 4947/7187/780 4948/7188/780 4949/7189/780 -f 4950/7190/781 4947/7187/781 4951/7191/781 -f 4947/7192/783 4949/7193/783 4951/7191/783 -f 4948/7194/776 4952/7195/776 4950/7190/776 -f 4953/7196/776 4954/7197/776 4955/7198/776 -f 4956/7199/784 4957/7200/784 4958/7201/784 -f 4955/7198/785 4956/7202/785 4958/7201/785 -f 4956/7202/786 4953/7203/786 4957/7204/786 -f 4959/7205/777 4960/7206/777 4961/7207/777 -f 4962/7208/778 4959/7205/778 4963/7209/778 -f 4959/7210/787 4961/7211/787 4963/7209/787 -f 4960/7212/776 4964/7213/776 4962/7208/776 -f 4965/7214/776 4966/7215/776 4967/7216/776 -f 4968/7217/788 4969/7218/788 4970/7219/788 -f 4967/7216/785 4968/7220/785 4970/7219/785 -f 4968/7220/786 4965/7221/786 4969/7222/786 -f 4971/7223/776 4972/7224/776 4973/7225/776 -f 4974/7226/789 4975/7227/789 4976/7228/789 -f 4973/7225/790 4974/7229/790 4976/7228/790 -f 4974/7229/791 4971/7230/791 4975/7231/791 -f 4977/7232/776 4978/7233/776 4979/7234/776 -f 4980/7235/792 4981/7236/792 4982/7237/792 -f 4979/7234/790 4980/7238/790 4982/7237/790 -f 4980/7238/791 4977/7239/791 4981/7240/791 -f 4904/7133/776 4983/7241/776 4905/7134/776 -f 4906/7135/776 4905/7242/776 4907/7136/776 -f 4907/7138/776 4910/7243/776 4909/7139/776 -f 4910/7140/776 4912/7244/776 4911/7141/776 -f 4912/7142/776 4914/7245/776 4913/7143/776 -f 4914/7144/776 4916/7246/776 4915/7145/776 -f 4916/7146/776 4984/7247/776 4917/7147/776 -f 4917/7147/776 4984/7248/776 4918/7148/776 -f 4918/7150/776 4985/7249/776 4920/7151/776 -f 4920/7152/776 4985/7250/776 4921/7153/776 -f 4922/7154/776 4921/7251/776 4923/7155/776 -f 4923/7157/776 4926/7252/776 4925/7158/776 -f 4926/7159/776 4986/7253/776 4927/7160/776 -f 4927/7160/776 4986/7254/776 4928/7161/776 -f 4928/7163/776 4931/7255/776 4930/7164/776 -f 4931/7165/776 4983/7256/776 4904/7133/776 -f 4932/7166/776 4987/7257/776 4988/7258/776 -f 4988/7258/776 4989/7259/776 4933/7167/776 -f 4933/7167/776 4990/7260/776 4991/7261/776 -f 4991/7261/776 4992/7262/776 4934/7168/776 -f 4934/7168/776 4993/7263/776 4994/7264/776 -f 4994/7264/776 4995/7265/776 4996/7266/776 -f 4996/7266/776 4997/7267/776 4998/7268/776 -f 4998/7268/776 4999/7269/776 4996/7266/776 -f 4999/7269/776 4932/7166/776 4996/7266/776 -f 4932/7166/776 4988/7258/776 4933/7167/776 -f 4933/7167/776 4991/7261/776 4934/7168/776 -f 4934/7168/776 4994/7264/776 4932/7166/776 -f 4994/7264/776 4996/7266/776 4932/7166/776 -f 4935/7169/777 4940/7177/777 4936/7170/777 -f 4938/7172/778 4940/7177/778 4935/7169/778 -f 4941/7178/780 4946/7186/780 4942/7179/780 -f 4944/7181/781 4946/7186/781 4941/7178/781 -f 4947/7187/780 4952/7195/780 4948/7188/780 -f 4950/7190/781 4952/7195/781 4947/7187/781 -f 4955/7198/785 4954/7197/785 4956/7202/785 -f 4956/7202/786 4954/7197/786 4953/7203/786 -f 4959/7205/777 4964/7213/777 4960/7206/777 -f 4962/7208/778 4964/7213/778 4959/7205/778 -f 4967/7216/785 4966/7215/785 4968/7220/785 -f 4968/7220/786 4966/7215/786 4965/7221/786 -f 4973/7225/790 4972/7224/790 4974/7229/790 -f 4974/7229/791 4972/7224/791 4971/7230/791 -f 4979/7234/790 4978/7233/790 4980/7238/790 -f 4980/7238/791 4978/7233/791 4977/7239/791 +f 4904/7151/776 4905/7152/776 4906/7153/776 +f 4906/7153/776 4907/7154/776 4908/7155/776 +f 4907/7156/776 4909/7157/776 4908/7155/776 +f 4910/7158/776 4911/7159/776 4909/7157/776 +f 4912/7160/776 4913/7161/776 4911/7159/776 +f 4914/7162/776 4915/7163/776 4913/7161/776 +f 4916/7164/776 4917/7165/776 4915/7163/776 +f 4917/7165/776 4918/7166/776 4919/7167/776 +f 4918/7168/776 4920/7169/776 4919/7167/776 +f 4920/7170/776 4921/7171/776 4922/7172/776 +f 4922/7172/776 4923/7173/776 4924/7174/776 +f 4923/7175/776 4925/7176/776 4924/7174/776 +f 4926/7177/776 4927/7178/776 4925/7176/776 +f 4927/7178/776 4928/7179/776 4929/7180/776 +f 4928/7181/776 4930/7182/776 4929/7180/776 +f 4931/7183/776 4904/7151/776 4930/7182/776 +f 4932/7184/776 4933/7185/776 4934/7186/776 +f 4935/7187/777 4936/7188/777 4937/7189/777 +f 4938/7190/778 4935/7187/778 4939/7191/778 +f 4935/7192/779 4937/7193/779 4939/7191/779 +f 4936/7194/776 4940/7195/776 4938/7190/776 +f 4941/7196/780 4942/7197/780 4943/7198/780 +f 4944/7199/781 4941/7196/781 4945/7200/781 +f 4941/7201/782 4943/7202/782 4945/7200/782 +f 4942/7203/776 4946/7204/776 4944/7199/776 +f 4947/7205/780 4948/7206/780 4949/7207/780 +f 4950/7208/781 4947/7205/781 4951/7209/781 +f 4947/7210/783 4949/7211/783 4951/7209/783 +f 4948/7212/776 4952/7213/776 4950/7208/776 +f 4953/7214/776 4954/7215/776 4955/7216/776 +f 4956/7217/784 4957/7218/784 4958/7219/784 +f 4955/7216/785 4956/7220/785 4958/7219/785 +f 4956/7220/786 4953/7221/786 4957/7222/786 +f 4959/7223/777 4960/7224/777 4961/7225/777 +f 4962/7226/778 4959/7223/778 4963/7227/778 +f 4959/7228/787 4961/7229/787 4963/7227/787 +f 4960/7230/776 4964/7231/776 4962/7226/776 +f 4965/7232/776 4966/7233/776 4967/7234/776 +f 4968/7235/788 4969/7236/788 4970/7237/788 +f 4967/7234/785 4968/7238/785 4970/7237/785 +f 4968/7238/786 4965/7239/786 4969/7240/786 +f 4971/7241/776 4972/7242/776 4973/7243/776 +f 4974/7244/789 4975/7245/789 4976/7246/789 +f 4973/7243/790 4974/7247/790 4976/7246/790 +f 4974/7247/791 4971/7248/791 4975/7249/791 +f 4977/7250/776 4978/7251/776 4979/7252/776 +f 4980/7253/792 4981/7254/792 4982/7255/792 +f 4979/7252/790 4980/7256/790 4982/7255/790 +f 4980/7256/791 4977/7257/791 4981/7258/791 +f 4904/7151/776 4983/7259/776 4905/7152/776 +f 4906/7153/776 4905/7260/776 4907/7154/776 +f 4907/7156/776 4910/7261/776 4909/7157/776 +f 4910/7158/776 4912/7262/776 4911/7159/776 +f 4912/7160/776 4914/7263/776 4913/7161/776 +f 4914/7162/776 4916/7264/776 4915/7163/776 +f 4916/7164/776 4984/7265/776 4917/7165/776 +f 4917/7165/776 4984/7266/776 4918/7166/776 +f 4918/7168/776 4985/7267/776 4920/7169/776 +f 4920/7170/776 4985/7268/776 4921/7171/776 +f 4922/7172/776 4921/7269/776 4923/7173/776 +f 4923/7175/776 4926/7270/776 4925/7176/776 +f 4926/7177/776 4986/7271/776 4927/7178/776 +f 4927/7178/776 4986/7272/776 4928/7179/776 +f 4928/7181/776 4931/7273/776 4930/7182/776 +f 4931/7183/776 4983/7274/776 4904/7151/776 +f 4932/7184/776 4987/7275/776 4988/7276/776 +f 4988/7276/776 4989/7277/776 4933/7185/776 +f 4933/7185/776 4990/7278/776 4991/7279/776 +f 4991/7279/776 4992/7280/776 4934/7186/776 +f 4934/7186/776 4993/7281/776 4994/7282/776 +f 4994/7282/776 4995/7283/776 4996/7284/776 +f 4996/7284/776 4997/7285/776 4998/7286/776 +f 4998/7286/776 4999/7287/776 4996/7284/776 +f 4999/7287/776 4932/7184/776 4996/7284/776 +f 4932/7184/776 4988/7276/776 4933/7185/776 +f 4933/7185/776 4991/7279/776 4934/7186/776 +f 4934/7186/776 4994/7282/776 4932/7184/776 +f 4994/7282/776 4996/7284/776 4932/7184/776 +f 4935/7187/777 4940/7195/777 4936/7188/777 +f 4938/7190/778 4940/7195/778 4935/7187/778 +f 4941/7196/780 4946/7204/780 4942/7197/780 +f 4944/7199/781 4946/7204/781 4941/7196/781 +f 4947/7205/780 4952/7213/780 4948/7206/780 +f 4950/7208/781 4952/7213/781 4947/7205/781 +f 4955/7216/785 4954/7215/785 4956/7220/785 +f 4956/7220/786 4954/7215/786 4953/7221/786 +f 4959/7223/777 4964/7231/777 4960/7224/777 +f 4962/7226/778 4964/7231/778 4959/7223/778 +f 4967/7234/785 4966/7233/785 4968/7238/785 +f 4968/7238/786 4966/7233/786 4965/7239/786 +f 4973/7243/790 4972/7242/790 4974/7247/790 +f 4974/7247/791 4972/7242/791 4971/7248/791 +f 4979/7252/790 4978/7251/790 4980/7256/790 +f 4980/7256/791 4978/7251/791 4977/7257/791 s 1 -f 5000/7270/793 5001/7271/794 5002/7272/794 -f 5003/7273/795 5004/7274/796 5005/7275/796 -f 5006/7276/797 5007/7277/793 5000/7270/793 -f 5008/7278/798 5009/7279/795 5003/7273/795 -f 5010/7280/799 5011/7281/797 5006/7276/797 -f 5012/7282/800 5013/7283/798 5008/7278/798 -f 5014/7284/801 5015/7285/799 5010/7286/799 -f 5016/7287/802 5017/7288/800 5012/7282/800 -f 5018/7289/803 5019/7290/801 5014/7284/801 -f 5020/7291/804 5021/7292/802 5016/7287/802 -f 5022/7293/805 5023/7294/803 5018/7289/803 -f 5024/7295/806 5025/7296/804 5020/7291/804 -f 5026/7297/807 5027/7298/805 5022/7293/805 -f 5002/7272/794 5028/7299/808 5029/7300/808 -f 5029/7300/808 5030/7301/806 5024/7295/806 -f 5005/7275/796 5031/7302/807 5026/7297/807 -f 5031/7302/809 5032/7303/810 5027/7298/810 -f 5001/7271/811 5033/7304/812 5028/7299/812 -f 5028/7299/812 5034/7305/813 5030/7301/814 -f 5004/7274/815 5035/7306/809 5031/7302/809 -f 5007/7277/816 5036/7307/811 5001/7271/811 -f 5009/7279/817 5037/7308/815 5004/7274/815 -f 5011/7281/818 5038/7309/816 5007/7277/816 -f 5009/7279/817 5039/7310/819 5040/7311/817 -f 5015/7312/820 5041/7313/818 5011/7281/818 -f 5017/7288/821 5039/7314/819 5013/7283/819 -f 5019/7290/822 5042/7315/820 5015/7285/820 -f 5017/7288/821 5043/7316/823 5044/7317/821 -f 5023/7294/824 5045/7318/822 5019/7290/822 -f 5025/7296/825 5043/7319/823 5021/7292/823 -f 5027/7298/810 5046/7320/824 5023/7294/824 -f 5030/7301/814 5047/7321/825 5025/7296/825 -f 5048/7322/826 5008/7278/827 5003/7273/826 -f 5036/7307/828 5038/7323/829 5049/7324/830 -f 5038/7309/829 5041/7325/831 5049/7326/830 -f 5041/7313/831 5042/7327/832 5049/7328/830 -f 5042/7315/832 5045/7329/833 5049/7330/830 -f 5045/7318/833 5046/7331/834 5049/7332/830 -f 5046/7320/834 5032/7333/835 5049/7334/830 -f 5032/7303/835 5035/7335/836 5049/7336/830 -f 5035/7306/836 5037/7337/837 5049/7338/830 -f 5037/7308/837 5040/7339/838 5049/7340/830 -f 5040/7311/838 5039/7310/839 5049/7341/830 -f 5039/7314/839 5044/7342/840 5049/7343/830 -f 5044/7317/840 5043/7316/841 5049/7344/830 -f 5043/7319/841 5047/7345/842 5049/7346/830 -f 5047/7321/842 5034/7347/843 5049/7348/830 -f 5034/7305/843 5033/7349/844 5049/7350/830 -f 5033/7304/844 5036/7351/828 5049/7352/830 -f 5050/7353/827 5012/7282/845 5008/7278/827 -f 5051/7354/845 5016/7287/846 5012/7282/845 -f 5052/7355/846 5020/7291/847 5016/7287/846 -f 5053/7356/847 5024/7295/848 5020/7291/847 -f 5024/7295/848 5054/7357/849 5029/7300/849 -f 5054/7358/849 5002/7272/850 5029/7300/849 -f 5055/7359/850 5000/7270/851 5002/7272/850 -f 5056/7360/851 5006/7276/852 5000/7270/851 -f 5057/7361/852 5010/7280/853 5006/7276/852 -f 5058/7362/853 5014/7284/854 5010/7286/853 -f 5059/7363/854 5018/7289/855 5014/7284/854 -f 5060/7364/855 5022/7293/856 5018/7289/855 -f 5061/7365/856 5026/7297/857 5022/7293/856 -f 5062/7366/857 5005/7275/858 5026/7297/857 -f 5063/7367/858 5003/7273/826 5005/7275/858 -f 5055/7359/859 5064/7368/860 5056/7369/860 -f 5063/7367/861 5065/7370/862 5048/7371/862 -f 5056/7360/860 5066/7372/863 5057/7373/863 -f 5048/7322/862 5067/7374/864 5050/7375/864 -f 5057/7361/863 5068/7376/865 5058/7377/865 -f 5050/7353/864 5069/7378/866 5051/7379/866 -f 5058/7362/865 5070/7380/867 5059/7381/867 -f 5051/7354/866 5071/7382/868 5052/7383/868 -f 5059/7363/867 5072/7384/869 5060/7385/869 -f 5052/7355/868 5073/7386/870 5053/7387/870 -f 5060/7364/869 5074/7388/871 5061/7389/871 -f 5053/7356/870 5075/7390/872 5076/7391/872 -f 5061/7365/871 5077/7392/873 5062/7393/873 -f 5054/7358/874 5078/7394/859 5055/7395/859 -f 5076/7396/872 5079/7397/874 5054/7357/874 -f 5062/7366/873 5080/7398/861 5063/7399/861 -f 5072/7400/875 5081/7401/876 5074/7388/876 -f 5073/7402/877 5082/7403/878 5075/7390/878 -f 5074/7404/876 5083/7405/879 5077/7392/879 -f 5079/7406/880 5084/7407/881 5078/7394/881 -f 5075/7408/878 5085/7409/880 5079/7397/880 -f 5080/7398/882 5083/7405/879 5086/7410/882 -f 5078/7411/881 5087/7412/883 5064/7368/883 -f 5080/7413/882 5088/7414/884 5065/7370/884 -f 5064/7415/883 5089/7416/885 5066/7372/885 -f 5065/7417/884 5090/7418/886 5067/7374/886 -f 5066/7419/885 5091/7420/887 5068/7376/887 -f 5067/7421/886 5092/7422/888 5069/7378/888 -f 5068/7423/887 5093/7424/889 5070/7380/889 -f 5069/7425/888 5094/7426/890 5071/7382/890 -f 5070/7427/889 5095/7428/875 5072/7384/875 -f 5071/7429/890 5096/7430/877 5073/7386/877 -f 5090/7418/864 4906/7135/866 5092/7422/866 -f 5091/7431/865 4922/7154/867 5093/7424/867 -f 5092/7422/866 4908/7137/868 5094/7426/868 -f 5093/7424/867 4924/7156/869 5095/7428/869 -f 5094/7426/868 4909/7139/870 5096/7430/870 -f 5095/7428/869 4925/7158/871 5081/7401/871 -f 5096/7430/870 4911/7141/872 5082/7403/872 -f 5081/7401/871 4927/7160/873 5083/7405/873 -f 5085/7409/874 4915/7145/859 5084/7407/859 -f 5082/7403/872 4913/7143/874 5085/7409/874 -f 5083/7405/873 4929/7162/861 5086/7410/861 -f 5084/7407/859 4917/7147/860 5087/7412/860 -f 5086/7410/861 4930/7164/862 5088/7414/862 -f 5087/7412/860 4919/7149/863 5089/7416/863 -f 5088/7414/862 4904/7133/864 5090/7418/864 -f 5089/7416/863 4920/7151/865 5091/7420/865 -f 4910/7140/870 4989/7432/872 4912/7244/872 -f 4926/7159/871 4994/7433/873 4986/7253/873 -f 4914/7144/874 4987/7434/859 4916/7246/859 -f 4912/7142/872 4988/7435/874 4914/7245/874 -f 4986/7254/873 4993/7436/861 4928/7161/861 -f 4916/7146/859 4932/7437/860 4984/7247/860 -f 4928/7163/861 4934/7438/862 4931/7255/862 -f 4984/7248/860 4999/7439/863 4918/7148/863 -f 4931/7165/862 4992/7440/864 4983/7256/864 -f 4918/7150/863 4998/7441/865 4985/7249/865 -f 4983/7241/864 4991/7442/866 4905/7134/866 -f 4985/7250/865 4997/7443/867 4921/7153/867 -f 4905/7242/866 4990/7444/868 4907/7136/868 -f 4921/7251/867 4996/7445/869 4923/7155/869 -f 4907/7138/868 4933/7446/870 4910/7243/870 -f 4923/7157/869 4995/7447/871 4926/7252/871 -f 5000/7270/793 5007/7277/793 5001/7271/794 -f 5003/7273/795 5009/7279/795 5004/7274/796 -f 5006/7276/797 5011/7281/797 5007/7277/793 -f 5008/7278/798 5013/7283/798 5009/7279/795 -f 5010/7280/799 5015/7312/799 5011/7281/797 -f 5012/7282/800 5017/7288/800 5013/7283/798 -f 5014/7284/801 5019/7290/801 5015/7285/799 -f 5016/7287/802 5021/7292/802 5017/7288/800 -f 5018/7289/803 5023/7294/803 5019/7290/801 -f 5020/7291/804 5025/7296/804 5021/7292/802 -f 5022/7293/805 5027/7298/805 5023/7294/803 -f 5024/7295/806 5030/7301/806 5025/7296/804 -f 5026/7297/807 5031/7302/807 5027/7298/805 -f 5002/7272/794 5001/7271/794 5028/7299/808 -f 5029/7300/808 5028/7299/808 5030/7301/806 -f 5005/7275/796 5004/7274/796 5031/7302/807 -f 5031/7302/809 5035/7335/809 5032/7303/810 -f 5001/7271/811 5036/7351/811 5033/7304/812 -f 5028/7299/812 5033/7349/812 5034/7305/813 -f 5004/7274/815 5037/7337/815 5035/7306/809 -f 5007/7277/816 5038/7323/816 5036/7307/811 -f 5009/7279/817 5040/7339/817 5037/7308/815 -f 5011/7281/818 5041/7325/818 5038/7309/816 -f 5009/7279/817 5013/7283/819 5039/7310/819 -f 5015/7312/820 5042/7327/820 5041/7313/818 -f 5017/7288/821 5044/7342/821 5039/7314/819 -f 5019/7290/822 5045/7329/822 5042/7315/820 -f 5017/7288/821 5021/7292/823 5043/7316/823 -f 5023/7294/824 5046/7331/824 5045/7318/822 -f 5025/7296/825 5047/7345/825 5043/7319/823 -f 5027/7298/810 5032/7333/810 5046/7320/824 -f 5030/7301/814 5034/7347/813 5047/7321/825 -f 5048/7322/826 5050/7375/827 5008/7278/827 -f 5050/7353/827 5051/7379/845 5012/7282/845 -f 5051/7354/845 5052/7383/846 5016/7287/846 -f 5052/7355/846 5053/7387/847 5020/7291/847 -f 5053/7356/847 5076/7391/848 5024/7295/848 -f 5024/7295/848 5076/7396/848 5054/7357/849 -f 5054/7358/849 5055/7395/850 5002/7272/850 -f 5055/7359/850 5056/7369/851 5000/7270/851 -f 5056/7360/851 5057/7373/852 5006/7276/852 -f 5057/7361/852 5058/7377/853 5010/7280/853 -f 5058/7362/853 5059/7381/854 5014/7284/854 -f 5059/7363/854 5060/7385/855 5018/7289/855 -f 5060/7364/855 5061/7389/856 5022/7293/856 -f 5061/7365/856 5062/7393/857 5026/7297/857 -f 5062/7366/857 5063/7399/858 5005/7275/858 -f 5063/7367/858 5048/7371/826 5003/7273/826 -f 5055/7359/859 5078/7411/859 5064/7368/860 -f 5063/7367/861 5080/7413/861 5065/7370/862 -f 5056/7360/860 5064/7415/860 5066/7372/863 -f 5048/7322/862 5065/7417/862 5067/7374/864 -f 5057/7361/863 5066/7419/863 5068/7376/865 -f 5050/7353/864 5067/7421/864 5069/7378/866 -f 5058/7362/865 5068/7423/865 5070/7380/867 -f 5051/7354/866 5069/7425/866 5071/7382/868 -f 5059/7363/867 5070/7427/867 5072/7384/869 -f 5052/7355/868 5071/7429/868 5073/7386/870 -f 5060/7364/869 5072/7400/869 5074/7388/871 -f 5053/7356/870 5073/7402/870 5075/7390/872 -f 5061/7365/871 5074/7404/871 5077/7392/873 -f 5054/7358/874 5079/7406/874 5078/7394/859 -f 5076/7396/872 5075/7408/872 5079/7397/874 -f 5062/7366/873 5077/7448/873 5080/7398/861 -f 5072/7400/875 5095/7428/875 5081/7401/876 -f 5073/7402/877 5096/7430/877 5082/7403/878 -f 5074/7404/876 5081/7401/876 5083/7405/879 -f 5079/7406/880 5085/7409/880 5084/7407/881 -f 5075/7408/878 5082/7403/878 5085/7409/880 -f 5080/7398/882 5077/7448/879 5083/7405/879 -f 5078/7411/881 5084/7407/881 5087/7412/883 -f 5080/7413/882 5086/7410/882 5088/7414/884 -f 5064/7415/883 5087/7412/883 5089/7416/885 -f 5065/7417/884 5088/7414/884 5090/7418/886 -f 5066/7419/885 5089/7416/885 5091/7420/887 -f 5067/7421/886 5090/7418/886 5092/7422/888 -f 5068/7423/887 5091/7431/887 5093/7424/889 -f 5069/7425/888 5092/7422/888 5094/7426/890 -f 5070/7427/889 5093/7424/889 5095/7428/875 -f 5071/7429/890 5094/7426/890 5096/7430/877 -f 5090/7418/864 4904/7133/864 4906/7135/866 -f 5091/7431/865 4920/7152/865 4922/7154/867 -f 5092/7422/866 4906/7135/866 4908/7137/868 -f 5093/7424/867 4922/7154/867 4924/7156/869 -f 5094/7426/868 4908/7137/868 4909/7139/870 -f 5095/7428/869 4924/7156/869 4925/7158/871 -f 5096/7430/870 4909/7139/870 4911/7141/872 -f 5081/7401/871 4925/7158/871 4927/7160/873 -f 5085/7409/874 4913/7143/874 4915/7145/859 -f 5082/7403/872 4911/7141/872 4913/7143/874 -f 5083/7405/873 4927/7160/873 4929/7162/861 -f 5084/7407/859 4915/7145/859 4917/7147/860 -f 5086/7410/861 4929/7162/861 4930/7164/862 -f 5087/7412/860 4917/7147/860 4919/7149/863 -f 5088/7414/862 4930/7164/862 4904/7133/864 -f 5089/7416/863 4919/7149/863 4920/7151/865 -f 4910/7140/870 4933/7449/870 4989/7432/872 -f 4926/7159/871 4995/7450/871 4994/7433/873 -f 4914/7144/874 4988/7451/874 4987/7434/859 -f 4912/7142/872 4989/7452/872 4988/7435/874 -f 4986/7254/873 4994/7453/873 4993/7436/861 -f 4916/7146/859 4987/7454/859 4932/7437/860 -f 4928/7163/861 4993/7455/861 4934/7438/862 -f 4984/7248/860 4932/7456/860 4999/7439/863 -f 4931/7165/862 4934/7457/862 4992/7440/864 -f 4918/7150/863 4999/7458/863 4998/7441/865 -f 4983/7241/864 4992/7459/864 4991/7442/866 -f 4985/7250/865 4998/7460/865 4997/7443/867 -f 4905/7242/866 4991/7461/866 4990/7444/868 -f 4921/7251/867 4997/7462/867 4996/7445/869 -f 4907/7138/868 4990/7463/868 4933/7446/870 -f 4923/7157/869 4996/7464/869 4995/7447/871 +f 5000/7288/793 5001/7289/794 5002/7290/794 +f 5003/7291/795 5004/7292/796 5005/7293/796 +f 5006/7294/797 5007/7295/793 5000/7288/793 +f 5008/7296/798 5009/7297/795 5003/7291/795 +f 5010/7298/799 5011/7299/797 5006/7294/797 +f 5012/7300/800 5013/7301/798 5008/7296/798 +f 5014/7302/801 5015/7303/799 5010/7304/799 +f 5016/7305/802 5017/7306/800 5012/7300/800 +f 5018/7307/803 5019/7308/801 5014/7302/801 +f 5020/7309/804 5021/7310/802 5016/7305/802 +f 5022/7311/805 5023/7312/803 5018/7307/803 +f 5024/7313/806 5025/7314/804 5020/7309/804 +f 5026/7315/807 5027/7316/805 5022/7311/805 +f 5002/7290/794 5028/7317/808 5029/7318/808 +f 5029/7318/808 5030/7319/806 5024/7313/806 +f 5005/7293/796 5031/7320/807 5026/7315/807 +f 5031/7320/809 5032/7321/810 5027/7316/810 +f 5001/7289/811 5033/7322/812 5028/7317/812 +f 5028/7317/812 5034/7323/813 5030/7319/814 +f 5004/7292/815 5035/7324/809 5031/7320/809 +f 5007/7295/816 5036/7325/811 5001/7289/811 +f 5009/7297/817 5037/7326/815 5004/7292/815 +f 5011/7299/818 5038/7327/816 5007/7295/816 +f 5009/7297/817 5039/7328/819 5040/7329/817 +f 5015/7330/820 5041/7331/818 5011/7299/818 +f 5017/7306/821 5039/7332/819 5013/7301/819 +f 5019/7308/822 5042/7333/820 5015/7303/820 +f 5017/7306/821 5043/7334/823 5044/7335/821 +f 5023/7312/824 5045/7336/822 5019/7308/822 +f 5025/7314/825 5043/7337/823 5021/7310/823 +f 5027/7316/810 5046/7338/824 5023/7312/824 +f 5030/7319/814 5047/7339/825 5025/7314/825 +f 5048/7340/826 5008/7296/827 5003/7291/826 +f 5036/7325/828 5038/7341/829 5049/7342/830 +f 5038/7327/829 5041/7343/831 5049/7344/830 +f 5041/7331/831 5042/7345/832 5049/7346/830 +f 5042/7333/832 5045/7347/833 5049/7348/830 +f 5045/7336/833 5046/7349/834 5049/7350/830 +f 5046/7338/834 5032/7351/835 5049/7352/830 +f 5032/7321/835 5035/7353/836 5049/7354/830 +f 5035/7324/836 5037/7355/837 5049/7356/830 +f 5037/7326/837 5040/7357/838 5049/7358/830 +f 5040/7329/838 5039/7328/839 5049/7359/830 +f 5039/7332/839 5044/7360/840 5049/7361/830 +f 5044/7335/840 5043/7334/841 5049/7362/830 +f 5043/7337/841 5047/7363/842 5049/7364/830 +f 5047/7339/842 5034/7365/843 5049/7366/830 +f 5034/7323/843 5033/7367/844 5049/7368/830 +f 5033/7322/844 5036/7369/828 5049/7370/830 +f 5050/7371/827 5012/7300/845 5008/7296/827 +f 5051/7372/845 5016/7305/846 5012/7300/845 +f 5052/7373/846 5020/7309/847 5016/7305/846 +f 5053/7374/847 5024/7313/848 5020/7309/847 +f 5024/7313/848 5054/7375/849 5029/7318/849 +f 5054/7376/849 5002/7290/850 5029/7318/849 +f 5055/7377/850 5000/7288/851 5002/7290/850 +f 5056/7378/851 5006/7294/852 5000/7288/851 +f 5057/7379/852 5010/7298/853 5006/7294/852 +f 5058/7380/853 5014/7302/854 5010/7304/853 +f 5059/7381/854 5018/7307/855 5014/7302/854 +f 5060/7382/855 5022/7311/856 5018/7307/855 +f 5061/7383/856 5026/7315/857 5022/7311/856 +f 5062/7384/857 5005/7293/858 5026/7315/857 +f 5063/7385/858 5003/7291/826 5005/7293/858 +f 5055/7377/859 5064/7386/860 5056/7387/860 +f 5063/7385/861 5065/7388/862 5048/7389/862 +f 5056/7378/860 5066/7390/863 5057/7391/863 +f 5048/7340/862 5067/7392/864 5050/7393/864 +f 5057/7379/863 5068/7394/865 5058/7395/865 +f 5050/7371/864 5069/7396/866 5051/7397/866 +f 5058/7380/865 5070/7398/867 5059/7399/867 +f 5051/7372/866 5071/7400/868 5052/7401/868 +f 5059/7381/867 5072/7402/869 5060/7403/869 +f 5052/7373/868 5073/7404/870 5053/7405/870 +f 5060/7382/869 5074/7406/871 5061/7407/871 +f 5053/7374/870 5075/7408/872 5076/7409/872 +f 5061/7383/871 5077/7410/873 5062/7411/873 +f 5054/7376/874 5078/7412/859 5055/7413/859 +f 5076/7414/872 5079/7415/874 5054/7375/874 +f 5062/7384/873 5080/7416/861 5063/7417/861 +f 5072/7418/875 5081/7419/876 5074/7406/876 +f 5073/7420/877 5082/7421/878 5075/7408/878 +f 5074/7422/876 5083/7423/879 5077/7410/879 +f 5079/7424/880 5084/7425/881 5078/7412/881 +f 5075/7426/878 5085/7427/880 5079/7415/880 +f 5080/7416/882 5083/7423/879 5086/7428/882 +f 5078/7429/881 5087/7430/883 5064/7386/883 +f 5080/7431/882 5088/7432/884 5065/7388/884 +f 5064/7433/883 5089/7434/885 5066/7390/885 +f 5065/7435/884 5090/7436/886 5067/7392/886 +f 5066/7437/885 5091/7438/887 5068/7394/887 +f 5067/7439/886 5092/7440/888 5069/7396/888 +f 5068/7441/887 5093/7442/889 5070/7398/889 +f 5069/7443/888 5094/7444/890 5071/7400/890 +f 5070/7445/889 5095/7446/875 5072/7402/875 +f 5071/7447/890 5096/7448/877 5073/7404/877 +f 5090/7436/864 4906/7153/866 5092/7440/866 +f 5091/7449/865 4922/7172/867 5093/7442/867 +f 5092/7440/866 4908/7155/868 5094/7444/868 +f 5093/7442/867 4924/7174/869 5095/7446/869 +f 5094/7444/868 4909/7157/870 5096/7448/870 +f 5095/7446/869 4925/7176/871 5081/7419/871 +f 5096/7448/870 4911/7159/872 5082/7421/872 +f 5081/7419/871 4927/7178/873 5083/7423/873 +f 5085/7427/874 4915/7163/859 5084/7425/859 +f 5082/7421/872 4913/7161/874 5085/7427/874 +f 5083/7423/873 4929/7180/861 5086/7428/861 +f 5084/7425/859 4917/7165/860 5087/7430/860 +f 5086/7428/861 4930/7182/862 5088/7432/862 +f 5087/7430/860 4919/7167/863 5089/7434/863 +f 5088/7432/862 4904/7151/864 5090/7436/864 +f 5089/7434/863 4920/7169/865 5091/7438/865 +f 4910/7158/870 4989/7450/872 4912/7262/872 +f 4926/7177/871 4994/7451/873 4986/7271/873 +f 4914/7162/874 4987/7452/859 4916/7264/859 +f 4912/7160/872 4988/7453/874 4914/7263/874 +f 4986/7272/873 4993/7454/861 4928/7179/861 +f 4916/7164/859 4932/7455/860 4984/7265/860 +f 4928/7181/861 4934/7456/862 4931/7273/862 +f 4984/7266/860 4999/7457/863 4918/7166/863 +f 4931/7183/862 4992/7458/864 4983/7274/864 +f 4918/7168/863 4998/7459/865 4985/7267/865 +f 4983/7259/864 4991/7460/866 4905/7152/866 +f 4985/7268/865 4997/7461/867 4921/7171/867 +f 4905/7260/866 4990/7462/868 4907/7154/868 +f 4921/7269/867 4996/7463/869 4923/7173/869 +f 4907/7156/868 4933/7464/870 4910/7261/870 +f 4923/7175/869 4995/7465/871 4926/7270/871 +f 5000/7288/793 5007/7295/793 5001/7289/794 +f 5003/7291/795 5009/7297/795 5004/7292/796 +f 5006/7294/797 5011/7299/797 5007/7295/793 +f 5008/7296/798 5013/7301/798 5009/7297/795 +f 5010/7298/799 5015/7330/799 5011/7299/797 +f 5012/7300/800 5017/7306/800 5013/7301/798 +f 5014/7302/801 5019/7308/801 5015/7303/799 +f 5016/7305/802 5021/7310/802 5017/7306/800 +f 5018/7307/803 5023/7312/803 5019/7308/801 +f 5020/7309/804 5025/7314/804 5021/7310/802 +f 5022/7311/805 5027/7316/805 5023/7312/803 +f 5024/7313/806 5030/7319/806 5025/7314/804 +f 5026/7315/807 5031/7320/807 5027/7316/805 +f 5002/7290/794 5001/7289/794 5028/7317/808 +f 5029/7318/808 5028/7317/808 5030/7319/806 +f 5005/7293/796 5004/7292/796 5031/7320/807 +f 5031/7320/809 5035/7353/809 5032/7321/810 +f 5001/7289/811 5036/7369/811 5033/7322/812 +f 5028/7317/812 5033/7367/812 5034/7323/813 +f 5004/7292/815 5037/7355/815 5035/7324/809 +f 5007/7295/816 5038/7341/816 5036/7325/811 +f 5009/7297/817 5040/7357/817 5037/7326/815 +f 5011/7299/818 5041/7343/818 5038/7327/816 +f 5009/7297/817 5013/7301/819 5039/7328/819 +f 5015/7330/820 5042/7345/820 5041/7331/818 +f 5017/7306/821 5044/7360/821 5039/7332/819 +f 5019/7308/822 5045/7347/822 5042/7333/820 +f 5017/7306/821 5021/7310/823 5043/7334/823 +f 5023/7312/824 5046/7349/824 5045/7336/822 +f 5025/7314/825 5047/7363/825 5043/7337/823 +f 5027/7316/810 5032/7351/810 5046/7338/824 +f 5030/7319/814 5034/7365/813 5047/7339/825 +f 5048/7340/826 5050/7393/827 5008/7296/827 +f 5050/7371/827 5051/7397/845 5012/7300/845 +f 5051/7372/845 5052/7401/846 5016/7305/846 +f 5052/7373/846 5053/7405/847 5020/7309/847 +f 5053/7374/847 5076/7409/848 5024/7313/848 +f 5024/7313/848 5076/7414/848 5054/7375/849 +f 5054/7376/849 5055/7413/850 5002/7290/850 +f 5055/7377/850 5056/7387/851 5000/7288/851 +f 5056/7378/851 5057/7391/852 5006/7294/852 +f 5057/7379/852 5058/7395/853 5010/7298/853 +f 5058/7380/853 5059/7399/854 5014/7302/854 +f 5059/7381/854 5060/7403/855 5018/7307/855 +f 5060/7382/855 5061/7407/856 5022/7311/856 +f 5061/7383/856 5062/7411/857 5026/7315/857 +f 5062/7384/857 5063/7417/858 5005/7293/858 +f 5063/7385/858 5048/7389/826 5003/7291/826 +f 5055/7377/859 5078/7429/859 5064/7386/860 +f 5063/7385/861 5080/7431/861 5065/7388/862 +f 5056/7378/860 5064/7433/860 5066/7390/863 +f 5048/7340/862 5065/7435/862 5067/7392/864 +f 5057/7379/863 5066/7437/863 5068/7394/865 +f 5050/7371/864 5067/7439/864 5069/7396/866 +f 5058/7380/865 5068/7441/865 5070/7398/867 +f 5051/7372/866 5069/7443/866 5071/7400/868 +f 5059/7381/867 5070/7445/867 5072/7402/869 +f 5052/7373/868 5071/7447/868 5073/7404/870 +f 5060/7382/869 5072/7418/869 5074/7406/871 +f 5053/7374/870 5073/7420/870 5075/7408/872 +f 5061/7383/871 5074/7422/871 5077/7410/873 +f 5054/7376/874 5079/7424/874 5078/7412/859 +f 5076/7414/872 5075/7426/872 5079/7415/874 +f 5062/7384/873 5077/7466/873 5080/7416/861 +f 5072/7418/875 5095/7446/875 5081/7419/876 +f 5073/7420/877 5096/7448/877 5082/7421/878 +f 5074/7422/876 5081/7419/876 5083/7423/879 +f 5079/7424/880 5085/7427/880 5084/7425/881 +f 5075/7426/878 5082/7421/878 5085/7427/880 +f 5080/7416/882 5077/7466/879 5083/7423/879 +f 5078/7429/881 5084/7425/881 5087/7430/883 +f 5080/7431/882 5086/7428/882 5088/7432/884 +f 5064/7433/883 5087/7430/883 5089/7434/885 +f 5065/7435/884 5088/7432/884 5090/7436/886 +f 5066/7437/885 5089/7434/885 5091/7438/887 +f 5067/7439/886 5090/7436/886 5092/7440/888 +f 5068/7441/887 5091/7449/887 5093/7442/889 +f 5069/7443/888 5092/7440/888 5094/7444/890 +f 5070/7445/889 5093/7442/889 5095/7446/875 +f 5071/7447/890 5094/7444/890 5096/7448/877 +f 5090/7436/864 4904/7151/864 4906/7153/866 +f 5091/7449/865 4920/7170/865 4922/7172/867 +f 5092/7440/866 4906/7153/866 4908/7155/868 +f 5093/7442/867 4922/7172/867 4924/7174/869 +f 5094/7444/868 4908/7155/868 4909/7157/870 +f 5095/7446/869 4924/7174/869 4925/7176/871 +f 5096/7448/870 4909/7157/870 4911/7159/872 +f 5081/7419/871 4925/7176/871 4927/7178/873 +f 5085/7427/874 4913/7161/874 4915/7163/859 +f 5082/7421/872 4911/7159/872 4913/7161/874 +f 5083/7423/873 4927/7178/873 4929/7180/861 +f 5084/7425/859 4915/7163/859 4917/7165/860 +f 5086/7428/861 4929/7180/861 4930/7182/862 +f 5087/7430/860 4917/7165/860 4919/7167/863 +f 5088/7432/862 4930/7182/862 4904/7151/864 +f 5089/7434/863 4919/7167/863 4920/7169/865 +f 4910/7158/870 4933/7467/870 4989/7450/872 +f 4926/7177/871 4995/7468/871 4994/7451/873 +f 4914/7162/874 4988/7469/874 4987/7452/859 +f 4912/7160/872 4989/7470/872 4988/7453/874 +f 4986/7272/873 4994/7471/873 4993/7454/861 +f 4916/7164/859 4987/7472/859 4932/7455/860 +f 4928/7181/861 4993/7473/861 4934/7456/862 +f 4984/7266/860 4932/7474/860 4999/7457/863 +f 4931/7183/862 4934/7475/862 4992/7458/864 +f 4918/7168/863 4999/7476/863 4998/7459/865 +f 4983/7259/864 4992/7477/864 4991/7460/866 +f 4985/7268/865 4998/7478/865 4997/7461/867 +f 4905/7260/866 4991/7479/866 4990/7462/868 +f 4921/7269/867 4997/7480/867 4996/7463/869 +f 4907/7156/868 4990/7481/868 4933/7464/870 +f 4923/7175/869 4996/7482/869 4995/7465/871 o V2_Missile v 0.265165 2.500000 -0.265165 v 0.265165 2.500000 0.265165 @@ -20296,189 +20326,189 @@ vn -0.3797 -0.1240 -0.9167 vn 0.0000 -0.1240 -0.9923 vn 0.3797 -0.1240 0.9167 s off -f 5097/7465/891 5098/7466/891 5099/7467/891 -f 5100/7468/892 5101/7469/892 5102/7470/892 -f 5103/7471/893 5104/7472/893 5105/7473/893 -f 5106/7474/894 5107/7475/894 5108/7476/894 -f 5109/7477/895 5110/7478/895 5111/7479/895 -f 5112/7480/892 5106/7481/892 5104/7482/892 -f 5113/7483/896 5109/7484/896 5101/7485/896 -f 5103/7471/897 5105/7473/897 5114/7486/897 -f 5100/7468/893 5102/7470/893 5115/7487/893 -f 5107/7475/891 5104/7488/891 5108/7476/891 -f 5112/7489/898 5116/7490/898 5117/7491/898 -f 5111/7479/891 5102/7470/891 5101/7492/891 -f 5113/7493/899 5118/7494/899 5119/7495/899 -f 5120/7496/900 5121/7497/900 5122/7498/900 -f 5123/7499/891 5124/7500/891 5125/7501/891 -f 5121/7497/896 5126/7502/896 5127/7503/896 -f 5128/7504/893 5129/7505/893 5124/7506/893 -f 5129/7507/901 5123/7499/901 5125/7501/901 -f 5121/7497/897 5124/7508/897 5126/7502/897 -f 5130/7509/902 5131/7510/902 5132/7511/902 -f 5133/7512/891 5134/7513/891 5135/7514/891 -f 5136/7515/892 5134/7513/892 5137/7516/892 -f 5130/7517/897 5138/7518/897 5135/7519/897 -f 5137/7520/903 5133/7512/903 5138/7521/903 -f 5136/7515/896 5135/7522/896 5134/7513/896 -f 5139/7523/891 5140/7524/891 5141/7525/891 -f 5141/7525/891 5142/7526/891 5097/7465/891 -f 5097/7465/891 5143/7527/891 5098/7466/891 -f 5143/7527/891 5144/7528/891 5098/7466/891 -f 5144/7528/891 5145/7529/891 5098/7466/891 -f 5098/7466/891 5146/7530/891 5099/7467/891 -f 5146/7530/891 5147/7531/891 5099/7467/891 -f 5147/7531/891 5148/7532/891 5099/7467/891 -f 5099/7467/891 5149/7533/891 5150/7534/891 -f 5150/7534/891 5151/7535/891 5139/7523/891 -f 5139/7523/891 5141/7525/891 5097/7465/891 -f 5099/7467/891 5150/7534/891 5139/7523/891 -f 5139/7523/891 5097/7465/891 5099/7467/891 -f 5100/7468/892 5113/7493/892 5101/7469/892 -f 5103/7471/893 5112/7489/893 5104/7472/893 -f 5106/7474/894 5114/7536/894 5107/7475/894 -f 5109/7477/895 5115/7537/895 5110/7478/895 -f 5117/7538/892 5106/7481/892 5112/7480/892 -f 5106/7481/892 5108/7539/892 5104/7482/892 -f 5119/7540/896 5109/7484/896 5113/7483/896 -f 5109/7484/896 5111/7541/896 5101/7485/896 -f 5107/7475/897 5114/7486/897 5105/7473/897 -f 5114/7486/897 5116/7542/897 5103/7471/897 -f 5110/7478/893 5115/7487/893 5102/7470/893 -f 5115/7487/893 5118/7543/893 5100/7468/893 -f 5107/7475/891 5105/7473/891 5104/7488/891 -f 5112/7489/898 5103/7471/898 5116/7490/898 -f 5111/7479/891 5110/7478/891 5102/7470/891 -f 5113/7493/899 5100/7468/899 5118/7494/899 -f 5120/7496/900 5128/7544/900 5121/7497/900 -f 5123/7499/891 5126/7502/891 5124/7500/891 -f 5123/7499/896 5127/7503/896 5126/7502/896 -f 5127/7503/896 5122/7545/896 5121/7497/896 -f 5120/7546/893 5129/7505/893 5128/7504/893 -f 5129/7505/893 5125/7547/893 5124/7506/893 -f 5129/7507/901 5127/7548/901 5123/7499/901 -f 5121/7497/897 5128/7544/897 5124/7508/897 -f 5130/7509/902 5136/7515/902 5131/7510/902 -f 5133/7512/891 5152/7549/891 5134/7513/891 -f 5152/7549/892 5137/7516/892 5134/7513/892 -f 5137/7516/892 5131/7550/892 5136/7515/892 -f 5132/7551/897 5138/7518/897 5130/7517/897 -f 5138/7518/897 5133/7552/897 5135/7519/897 -f 5137/7520/903 5152/7549/903 5133/7512/903 -f 5136/7515/896 5130/7509/896 5135/7522/896 +f 5097/7483/891 5098/7484/891 5099/7485/891 +f 5100/7486/892 5101/7487/892 5102/7488/892 +f 5103/7489/893 5104/7490/893 5105/7491/893 +f 5106/7492/894 5107/7493/894 5108/7494/894 +f 5109/7495/895 5110/7496/895 5111/7497/895 +f 5112/7498/892 5106/7499/892 5104/7500/892 +f 5113/7501/896 5109/7502/896 5101/7503/896 +f 5103/7489/897 5105/7491/897 5114/7504/897 +f 5100/7486/893 5102/7488/893 5115/7505/893 +f 5107/7493/891 5104/7506/891 5108/7494/891 +f 5112/7507/898 5116/7508/898 5117/7509/898 +f 5111/7497/891 5102/7488/891 5101/7510/891 +f 5113/7511/899 5118/7512/899 5119/7513/899 +f 5120/7514/900 5121/7515/900 5122/7516/900 +f 5123/7517/891 5124/7518/891 5125/7519/891 +f 5121/7515/896 5126/7520/896 5127/7521/896 +f 5128/7522/893 5129/7523/893 5124/7524/893 +f 5129/7525/901 5123/7517/901 5125/7519/901 +f 5121/7515/897 5124/7526/897 5126/7520/897 +f 5130/7527/902 5131/7528/902 5132/7529/902 +f 5133/7530/891 5134/7531/891 5135/7532/891 +f 5136/7533/892 5134/7531/892 5137/7534/892 +f 5130/7535/897 5138/7536/897 5135/7537/897 +f 5137/7538/903 5133/7530/903 5138/7539/903 +f 5136/7533/896 5135/7540/896 5134/7531/896 +f 5139/7541/891 5140/7542/891 5141/7543/891 +f 5141/7543/891 5142/7544/891 5097/7483/891 +f 5097/7483/891 5143/7545/891 5098/7484/891 +f 5143/7545/891 5144/7546/891 5098/7484/891 +f 5144/7546/891 5145/7547/891 5098/7484/891 +f 5098/7484/891 5146/7548/891 5099/7485/891 +f 5146/7548/891 5147/7549/891 5099/7485/891 +f 5147/7549/891 5148/7550/891 5099/7485/891 +f 5099/7485/891 5149/7551/891 5150/7552/891 +f 5150/7552/891 5151/7553/891 5139/7541/891 +f 5139/7541/891 5141/7543/891 5097/7483/891 +f 5099/7485/891 5150/7552/891 5139/7541/891 +f 5139/7541/891 5097/7483/891 5099/7485/891 +f 5100/7486/892 5113/7511/892 5101/7487/892 +f 5103/7489/893 5112/7507/893 5104/7490/893 +f 5106/7492/894 5114/7554/894 5107/7493/894 +f 5109/7495/895 5115/7555/895 5110/7496/895 +f 5117/7556/892 5106/7499/892 5112/7498/892 +f 5106/7499/892 5108/7557/892 5104/7500/892 +f 5119/7558/896 5109/7502/896 5113/7501/896 +f 5109/7502/896 5111/7559/896 5101/7503/896 +f 5107/7493/897 5114/7504/897 5105/7491/897 +f 5114/7504/897 5116/7560/897 5103/7489/897 +f 5110/7496/893 5115/7505/893 5102/7488/893 +f 5115/7505/893 5118/7561/893 5100/7486/893 +f 5107/7493/891 5105/7491/891 5104/7506/891 +f 5112/7507/898 5103/7489/898 5116/7508/898 +f 5111/7497/891 5110/7496/891 5102/7488/891 +f 5113/7511/899 5100/7486/899 5118/7512/899 +f 5120/7514/900 5128/7562/900 5121/7515/900 +f 5123/7517/891 5126/7520/891 5124/7518/891 +f 5123/7517/896 5127/7521/896 5126/7520/896 +f 5127/7521/896 5122/7563/896 5121/7515/896 +f 5120/7564/893 5129/7523/893 5128/7522/893 +f 5129/7523/893 5125/7565/893 5124/7524/893 +f 5129/7525/901 5127/7566/901 5123/7517/901 +f 5121/7515/897 5128/7562/897 5124/7526/897 +f 5130/7527/902 5136/7533/902 5131/7528/902 +f 5133/7530/891 5152/7567/891 5134/7531/891 +f 5152/7567/892 5137/7534/892 5134/7531/892 +f 5137/7534/892 5131/7568/892 5136/7533/892 +f 5132/7569/897 5138/7536/897 5130/7535/897 +f 5138/7536/897 5133/7570/897 5135/7537/897 +f 5137/7538/903 5152/7567/903 5133/7530/903 +f 5136/7533/896 5130/7527/896 5135/7540/896 s 1 -f 5153/7553/904 5154/7554/905 5155/7555/906 -f 5156/7556/907 5157/7557/908 5158/7558/909 -f 5159/7559/910 5160/7560/911 5153/7553/904 -f 5161/7561/912 5162/7562/913 5156/7556/907 -f 5163/7563/914 5164/7564/915 5159/7559/910 -f 5165/7565/916 5166/7566/917 5161/7567/912 -f 5167/7568/918 5168/7569/919 5163/7563/914 -f 5169/7570/920 5170/7571/921 5165/7565/916 -f 5171/7572/922 5172/7573/923 5167/7568/918 -f 5173/7574/924 5174/7575/925 5169/7570/920 -f 5175/7576/926 5176/7577/927 5171/7572/922 -f 5173/7574/924 5177/7578/928 5178/7579/929 -f 5179/7580/930 5180/7581/931 5181/7582/932 -f 5181/7582/932 5182/7583/933 5175/7576/926 -f 5155/7555/906 5177/7578/928 5183/7584/934 -f 5158/7558/909 5184/7585/935 5179/7580/930 -f 5182/7583/933 5185/7586/936 5186/7587/937 -f 5154/7554/905 5187/7588/938 5177/7578/928 -f 5184/7585/935 5188/7589/939 5189/7590/940 -f 5154/7554/905 5190/7591/941 5191/7592/942 -f 5162/7562/913 5188/7593/939 5157/7557/908 -f 5164/7564/915 5190/7594/941 5160/7560/911 -f 5162/7562/913 5192/7595/943 5193/7596/944 -f 5164/7564/915 5194/7597/945 5195/7598/946 -f 5170/7571/921 5192/7599/943 5166/7566/917 -f 5172/7573/923 5194/7600/945 5168/7569/919 -f 5170/7571/921 5196/7601/947 5197/7602/948 -f 5176/7577/927 5198/7603/949 5172/7573/923 -f 5178/7579/929 5196/7604/947 5174/7575/925 -f 5182/7583/933 5199/7605/950 5176/7577/927 -f 5177/7578/928 5200/7606/951 5178/7579/929 -f 5184/7585/935 5185/7607/936 5180/7581/931 -f 5189/7590/940 5188/7589/939 5201/7608/952 -f 5188/7593/939 5193/7609/944 5201/7610/952 -f 5193/7596/944 5192/7595/943 5201/7611/952 -f 5192/7599/943 5197/7612/948 5201/7613/952 -f 5197/7602/948 5196/7601/947 5201/7614/952 -f 5196/7604/947 5200/7615/951 5201/7616/952 -f 5200/7606/951 5187/7617/938 5201/7618/952 -f 5187/7588/938 5191/7619/942 5201/7620/952 -f 5191/7592/942 5190/7591/941 5201/7621/952 -f 5190/7594/941 5195/7622/946 5201/7623/952 -f 5195/7598/946 5194/7597/945 5201/7624/952 -f 5194/7600/945 5198/7625/949 5201/7626/952 -f 5198/7603/949 5199/7627/950 5201/7628/952 -f 5199/7605/950 5186/7629/937 5201/7630/952 -f 5186/7587/937 5185/7586/936 5201/7631/952 -f 5185/7607/936 5189/7632/940 5201/7633/952 -f 5155/7555/906 5098/7634/953 5153/7553/904 -f 5156/7556/907 5139/7635/954 5151/7636/955 -f 5159/7559/910 5098/7637/953 5145/7638/956 -f 5161/7561/912 5151/7639/955 5150/7640/957 -f 5163/7563/914 5145/7641/956 5144/7642/958 -f 5165/7565/916 5150/7643/957 5149/7644/959 -f 5163/7563/914 5143/7645/960 5167/7568/918 -f 5165/7565/916 5099/7646/961 5169/7570/920 -f 5167/7568/918 5097/7647/962 5171/7572/922 -f 5169/7570/920 5148/7648/963 5173/7574/924 -f 5175/7576/926 5097/7649/962 5142/7650/964 -f 5173/7574/924 5147/7651/965 5183/7584/934 -f 5181/7582/932 5140/7652/966 5179/7580/930 -f 5175/7576/926 5141/7653/967 5181/7582/932 -f 5155/7555/906 5147/7654/965 5146/7655/968 -f 5158/7558/909 5140/7656/966 5139/7657/954 -f 5153/7553/904 5160/7560/911 5154/7554/905 -f 5156/7556/907 5162/7562/913 5157/7557/908 -f 5159/7559/910 5164/7564/915 5160/7560/911 -f 5161/7561/912 5166/7658/917 5162/7562/913 -f 5163/7563/914 5168/7569/919 5164/7564/915 -f 5165/7565/916 5170/7571/921 5166/7566/917 -f 5167/7568/918 5172/7573/923 5168/7569/919 -f 5169/7570/920 5174/7575/925 5170/7571/921 -f 5171/7572/922 5176/7577/927 5172/7573/923 -f 5173/7574/924 5178/7579/929 5174/7575/925 -f 5175/7576/926 5182/7583/933 5176/7577/927 -f 5173/7574/924 5183/7584/934 5177/7578/928 -f 5179/7580/930 5184/7585/935 5180/7581/931 -f 5181/7582/932 5180/7581/931 5182/7583/933 -f 5155/7555/906 5154/7554/905 5177/7578/928 -f 5158/7558/909 5157/7557/908 5184/7585/935 -f 5182/7583/933 5180/7581/931 5185/7586/936 -f 5154/7554/905 5191/7619/942 5187/7588/938 -f 5184/7585/935 5157/7557/908 5188/7589/939 -f 5154/7554/905 5160/7560/911 5190/7591/941 -f 5162/7562/913 5193/7609/944 5188/7593/939 -f 5164/7564/915 5195/7622/946 5190/7594/941 -f 5162/7562/913 5166/7658/917 5192/7595/943 -f 5164/7564/915 5168/7569/919 5194/7597/945 -f 5170/7571/921 5197/7612/948 5192/7599/943 -f 5172/7573/923 5198/7625/949 5194/7600/945 -f 5170/7571/921 5174/7575/925 5196/7601/947 -f 5176/7577/927 5199/7627/950 5198/7603/949 -f 5178/7579/929 5200/7615/951 5196/7604/947 -f 5182/7583/933 5186/7629/937 5199/7605/950 -f 5177/7578/928 5187/7617/938 5200/7606/951 -f 5184/7585/935 5189/7632/940 5185/7607/936 -f 5155/7555/906 5146/7659/968 5098/7634/953 -f 5156/7556/907 5158/7558/909 5139/7635/954 -f 5159/7559/910 5153/7553/904 5098/7637/953 -f 5161/7561/912 5156/7556/907 5151/7639/955 -f 5163/7563/914 5159/7559/910 5145/7641/956 -f 5165/7565/916 5161/7567/912 5150/7643/957 -f 5163/7563/914 5144/7660/958 5143/7645/960 -f 5165/7565/916 5149/7661/959 5099/7646/961 -f 5167/7568/918 5143/7662/960 5097/7647/962 -f 5169/7570/920 5099/7663/961 5148/7648/963 -f 5175/7576/926 5171/7572/922 5097/7649/962 -f 5173/7574/924 5148/7664/963 5147/7651/965 -f 5181/7582/932 5141/7665/967 5140/7652/966 -f 5175/7576/926 5142/7666/964 5141/7653/967 -f 5155/7555/906 5183/7584/934 5147/7654/965 -f 5158/7558/909 5179/7580/930 5140/7656/966 +f 5153/7571/904 5154/7572/905 5155/7573/906 +f 5156/7574/907 5157/7575/908 5158/7576/909 +f 5159/7577/910 5160/7578/911 5153/7571/904 +f 5161/7579/912 5162/7580/913 5156/7574/907 +f 5163/7581/914 5164/7582/915 5159/7577/910 +f 5165/7583/916 5166/7584/917 5161/7585/912 +f 5167/7586/918 5168/7587/919 5163/7581/914 +f 5169/7588/920 5170/7589/921 5165/7583/916 +f 5171/7590/922 5172/7591/923 5167/7586/918 +f 5173/7592/924 5174/7593/925 5169/7588/920 +f 5175/7594/926 5176/7595/927 5171/7590/922 +f 5173/7592/924 5177/7596/928 5178/7597/929 +f 5179/7598/930 5180/7599/931 5181/7600/932 +f 5181/7600/932 5182/7601/933 5175/7594/926 +f 5155/7573/906 5177/7596/928 5183/7602/934 +f 5158/7576/909 5184/7603/935 5179/7598/930 +f 5182/7601/933 5185/7604/936 5186/7605/937 +f 5154/7572/905 5187/7606/938 5177/7596/928 +f 5184/7603/935 5188/7607/939 5189/7608/940 +f 5154/7572/905 5190/7609/941 5191/7610/942 +f 5162/7580/913 5188/7611/939 5157/7575/908 +f 5164/7582/915 5190/7612/941 5160/7578/911 +f 5162/7580/913 5192/7613/943 5193/7614/944 +f 5164/7582/915 5194/7615/945 5195/7616/946 +f 5170/7589/921 5192/7617/943 5166/7584/917 +f 5172/7591/923 5194/7618/945 5168/7587/919 +f 5170/7589/921 5196/7619/947 5197/7620/948 +f 5176/7595/927 5198/7621/949 5172/7591/923 +f 5178/7597/929 5196/7622/947 5174/7593/925 +f 5182/7601/933 5199/7623/950 5176/7595/927 +f 5177/7596/928 5200/7624/951 5178/7597/929 +f 5184/7603/935 5185/7625/936 5180/7599/931 +f 5189/7608/940 5188/7607/939 5201/7626/952 +f 5188/7611/939 5193/7627/944 5201/7628/952 +f 5193/7614/944 5192/7613/943 5201/7629/952 +f 5192/7617/943 5197/7630/948 5201/7631/952 +f 5197/7620/948 5196/7619/947 5201/7632/952 +f 5196/7622/947 5200/7633/951 5201/7634/952 +f 5200/7624/951 5187/7635/938 5201/7636/952 +f 5187/7606/938 5191/7637/942 5201/7638/952 +f 5191/7610/942 5190/7609/941 5201/7639/952 +f 5190/7612/941 5195/7640/946 5201/7641/952 +f 5195/7616/946 5194/7615/945 5201/7642/952 +f 5194/7618/945 5198/7643/949 5201/7644/952 +f 5198/7621/949 5199/7645/950 5201/7646/952 +f 5199/7623/950 5186/7647/937 5201/7648/952 +f 5186/7605/937 5185/7604/936 5201/7649/952 +f 5185/7625/936 5189/7650/940 5201/7651/952 +f 5155/7573/906 5098/7652/953 5153/7571/904 +f 5156/7574/907 5139/7653/954 5151/7654/955 +f 5159/7577/910 5098/7655/953 5145/7656/956 +f 5161/7579/912 5151/7657/955 5150/7658/957 +f 5163/7581/914 5145/7659/956 5144/7660/958 +f 5165/7583/916 5150/7661/957 5149/7662/959 +f 5163/7581/914 5143/7663/960 5167/7586/918 +f 5165/7583/916 5099/7664/961 5169/7588/920 +f 5167/7586/918 5097/7665/962 5171/7590/922 +f 5169/7588/920 5148/7666/963 5173/7592/924 +f 5175/7594/926 5097/7667/962 5142/7668/964 +f 5173/7592/924 5147/7669/965 5183/7602/934 +f 5181/7600/932 5140/7670/966 5179/7598/930 +f 5175/7594/926 5141/7671/967 5181/7600/932 +f 5155/7573/906 5147/7672/965 5146/7673/968 +f 5158/7576/909 5140/7674/966 5139/7675/954 +f 5153/7571/904 5160/7578/911 5154/7572/905 +f 5156/7574/907 5162/7580/913 5157/7575/908 +f 5159/7577/910 5164/7582/915 5160/7578/911 +f 5161/7579/912 5166/7676/917 5162/7580/913 +f 5163/7581/914 5168/7587/919 5164/7582/915 +f 5165/7583/916 5170/7589/921 5166/7584/917 +f 5167/7586/918 5172/7591/923 5168/7587/919 +f 5169/7588/920 5174/7593/925 5170/7589/921 +f 5171/7590/922 5176/7595/927 5172/7591/923 +f 5173/7592/924 5178/7597/929 5174/7593/925 +f 5175/7594/926 5182/7601/933 5176/7595/927 +f 5173/7592/924 5183/7602/934 5177/7596/928 +f 5179/7598/930 5184/7603/935 5180/7599/931 +f 5181/7600/932 5180/7599/931 5182/7601/933 +f 5155/7573/906 5154/7572/905 5177/7596/928 +f 5158/7576/909 5157/7575/908 5184/7603/935 +f 5182/7601/933 5180/7599/931 5185/7604/936 +f 5154/7572/905 5191/7637/942 5187/7606/938 +f 5184/7603/935 5157/7575/908 5188/7607/939 +f 5154/7572/905 5160/7578/911 5190/7609/941 +f 5162/7580/913 5193/7627/944 5188/7611/939 +f 5164/7582/915 5195/7640/946 5190/7612/941 +f 5162/7580/913 5166/7676/917 5192/7613/943 +f 5164/7582/915 5168/7587/919 5194/7615/945 +f 5170/7589/921 5197/7630/948 5192/7617/943 +f 5172/7591/923 5198/7643/949 5194/7618/945 +f 5170/7589/921 5174/7593/925 5196/7619/947 +f 5176/7595/927 5199/7645/950 5198/7621/949 +f 5178/7597/929 5200/7633/951 5196/7622/947 +f 5182/7601/933 5186/7647/937 5199/7623/950 +f 5177/7596/928 5187/7635/938 5200/7624/951 +f 5184/7603/935 5189/7650/940 5185/7625/936 +f 5155/7573/906 5146/7677/968 5098/7652/953 +f 5156/7574/907 5158/7576/909 5139/7653/954 +f 5159/7577/910 5153/7571/904 5098/7655/953 +f 5161/7579/912 5156/7574/907 5151/7657/955 +f 5163/7581/914 5159/7577/910 5145/7659/956 +f 5165/7583/916 5161/7585/912 5150/7661/957 +f 5163/7581/914 5144/7678/958 5143/7663/960 +f 5165/7583/916 5149/7679/959 5099/7664/961 +f 5167/7586/918 5143/7680/960 5097/7665/962 +f 5169/7588/920 5099/7681/961 5148/7666/963 +f 5175/7594/926 5171/7590/922 5097/7667/962 +f 5173/7592/924 5148/7682/963 5147/7669/965 +f 5181/7600/932 5141/7683/967 5140/7670/966 +f 5175/7594/926 5142/7684/964 5141/7671/967 +f 5155/7573/906 5183/7602/934 5147/7672/965 +f 5158/7576/909 5179/7598/930 5140/7674/966 o Atlas_Missile v -1.154849 5.312499 -0.478354 v -0.795495 5.312499 -0.795495 @@ -21501,483 +21531,483 @@ vn 0.4867 0.2290 -0.8430 vn -0.9549 0.1504 -0.2559 vn -0.4867 0.2290 0.8430 s off -f 5202/7667/969 5203/7668/969 5204/7669/969 -f 5205/7670/969 5206/7671/969 5207/7672/969 -f 5208/7673/969 5209/7674/969 5202/7667/969 -f 5210/7675/970 5211/7676/970 5212/7677/970 -f 5213/7678/969 5214/7679/969 5215/7680/969 -f 5216/7681/969 5206/7671/969 5217/7682/969 -f 5217/7682/969 5218/7683/969 5216/7681/969 -f 5219/7684/969 5218/7683/969 5220/7685/969 -f 5221/7686/969 5222/7687/969 5219/7684/969 -f 5221/7686/969 5223/7688/969 5224/7689/969 -f 5225/7690/969 5223/7688/969 5226/7691/969 -f 5227/7692/969 5228/7693/969 5229/7694/969 -f 5230/7695/969 5229/7694/969 5228/7693/969 -f 5230/7695/969 5231/7696/969 5232/7697/969 -f 5233/7698/969 5231/7696/969 5234/7699/969 -f 5235/7700/969 5203/7668/969 5236/7701/969 -f 5236/7701/969 5237/7702/969 5235/7700/969 -f 5233/7698/969 5238/7703/969 5239/7704/969 -f 5240/7705/971 5241/7706/971 5242/7707/971 -f 5243/7708/971 5244/7709/971 5245/7710/971 -f 5244/7709/971 5246/7711/971 5245/7710/971 -f 5245/7710/971 5247/7712/971 5248/7713/971 -f 5249/7714/971 5247/7712/971 5246/7711/971 -f 5250/7715/971 5246/7711/971 5251/7716/971 -f 5245/7710/971 5246/7711/971 5247/7712/971 -f 5252/7717/971 5253/7718/971 5254/7719/971 -f 5255/7720/971 5256/7721/971 5257/7722/971 -f 5258/7723/971 5259/7724/971 5260/7725/971 -f 5261/7726/971 5262/7727/971 5263/7728/971 -f 5263/7728/971 5257/7722/971 5256/7721/971 -f 5254/7719/971 5260/7725/971 5262/7727/971 -f 5263/7728/971 5260/7725/971 5259/7724/971 -f 5264/7729/971 5265/7730/971 5266/7731/971 -f 5267/7732/971 5268/7733/971 5269/7734/971 -f 5270/7735/971 5271/7736/971 5272/7737/971 -f 5273/7738/971 5274/7739/971 5275/7740/971 -f 5275/7740/971 5269/7734/971 5268/7733/971 -f 5266/7731/971 5272/7737/971 5274/7739/971 -f 5275/7740/971 5272/7737/971 5271/7736/971 -f 5276/7741/971 5242/7707/971 5277/7742/971 -f 5278/7743/971 5279/7744/971 5280/7745/971 -f 5281/7746/971 5251/7716/971 5279/7744/971 -f 5282/7747/971 5277/7742/971 5244/7709/971 -f 5277/7742/971 5251/7716/971 5244/7709/971 -f 5280/7745/971 5277/7742/971 5242/7707/971 -f 5214/7679/972 5283/7748/972 5284/7749/972 -f 5285/7750/973 5286/7751/973 5287/7752/973 -f 5288/7753/971 5289/7754/971 5290/7755/971 -f 5289/7754/971 5291/7756/971 5290/7755/971 -f 5290/7755/971 5292/7757/971 5293/7758/971 -f 5294/7759/971 5292/7757/971 5291/7756/971 -f 5295/7760/971 5291/7756/971 5241/7706/971 -f 5290/7755/971 5291/7756/971 5292/7757/971 -f 5296/7761/971 5297/7762/971 5298/7763/971 -f 5299/7764/971 5300/7765/971 5301/7766/971 -f 5302/7767/971 5303/7768/971 5304/7769/971 -f 5305/7770/971 5306/7771/971 5307/7772/971 -f 5300/7765/971 5303/7768/971 5301/7766/971 -f 5298/7763/971 5304/7769/971 5306/7771/971 -f 5307/7772/971 5304/7769/971 5303/7768/971 -f 5308/7773/971 5280/7745/971 5289/7754/971 -f 5289/7754/971 5242/7707/971 5241/7706/971 -f 5202/7667/969 5209/7674/969 5203/7668/969 -f 5205/7670/969 5208/7673/969 5206/7671/969 -f 5208/7673/969 5205/7670/969 5209/7674/969 -f 5216/7681/969 5207/7672/969 5206/7671/969 -f 5217/7682/969 5220/7685/969 5218/7683/969 -f 5219/7684/969 5222/7687/969 5218/7683/969 -f 5221/7686/969 5224/7689/969 5222/7687/969 -f 5221/7686/969 5226/7691/969 5223/7688/969 -f 5225/7690/969 5227/7692/969 5223/7688/969 -f 5227/7692/969 5225/7690/969 5228/7693/969 -f 5230/7695/969 5232/7697/969 5229/7694/969 -f 5230/7695/969 5234/7699/969 5231/7696/969 -f 5233/7698/969 5239/7704/969 5231/7696/969 -f 5235/7700/969 5204/7669/969 5203/7668/969 -f 5236/7701/969 5238/7774/969 5237/7702/969 -f 5233/7698/969 5237/7775/969 5238/7703/969 -f 5244/7709/971 5251/7716/971 5246/7711/971 -f 5263/7728/971 5259/7724/971 5257/7722/971 -f 5254/7719/971 5253/7718/971 5260/7725/971 -f 5263/7728/971 5262/7727/971 5260/7725/971 -f 5275/7740/971 5271/7736/971 5269/7734/971 -f 5266/7731/971 5265/7730/971 5272/7737/971 -f 5275/7740/971 5274/7739/971 5272/7737/971 -f 5277/7742/971 5279/7744/971 5251/7716/971 -f 5280/7745/971 5279/7744/971 5277/7742/971 -f 5214/7679/972 5213/7678/972 5283/7748/972 -f 5289/7754/971 5241/7706/971 5291/7756/971 -f 5300/7765/971 5307/7772/971 5303/7768/971 -f 5298/7763/971 5297/7762/971 5304/7769/971 -f 5307/7772/971 5306/7771/971 5304/7769/971 -f 5289/7754/971 5280/7745/971 5242/7707/971 +f 5202/7685/969 5203/7686/969 5204/7687/969 +f 5205/7688/969 5206/7689/969 5207/7690/969 +f 5208/7691/969 5209/7692/969 5202/7685/969 +f 5210/7693/970 5211/7694/970 5212/7695/970 +f 5213/7696/969 5214/7697/969 5215/7698/969 +f 5216/7699/969 5206/7689/969 5217/7700/969 +f 5217/7700/969 5218/7701/969 5216/7699/969 +f 5219/7702/969 5218/7701/969 5220/7703/969 +f 5221/7704/969 5222/7705/969 5219/7702/969 +f 5221/7704/969 5223/7706/969 5224/7707/969 +f 5225/7708/969 5223/7706/969 5226/7709/969 +f 5227/7710/969 5228/7711/969 5229/7712/969 +f 5230/7713/969 5229/7712/969 5228/7711/969 +f 5230/7713/969 5231/7714/969 5232/7715/969 +f 5233/7716/969 5231/7714/969 5234/7717/969 +f 5235/7718/969 5203/7686/969 5236/7719/969 +f 5236/7719/969 5237/7720/969 5235/7718/969 +f 5233/7716/969 5238/7721/969 5239/7722/969 +f 5240/7723/971 5241/7724/971 5242/7725/971 +f 5243/7726/971 5244/7727/971 5245/7728/971 +f 5244/7727/971 5246/7729/971 5245/7728/971 +f 5245/7728/971 5247/7730/971 5248/7731/971 +f 5249/7732/971 5247/7730/971 5246/7729/971 +f 5250/7733/971 5246/7729/971 5251/7734/971 +f 5245/7728/971 5246/7729/971 5247/7730/971 +f 5252/7735/971 5253/7736/971 5254/7737/971 +f 5255/7738/971 5256/7739/971 5257/7740/971 +f 5258/7741/971 5259/7742/971 5260/7743/971 +f 5261/7744/971 5262/7745/971 5263/7746/971 +f 5263/7746/971 5257/7740/971 5256/7739/971 +f 5254/7737/971 5260/7743/971 5262/7745/971 +f 5263/7746/971 5260/7743/971 5259/7742/971 +f 5264/7747/971 5265/7748/971 5266/7749/971 +f 5267/7750/971 5268/7751/971 5269/7752/971 +f 5270/7753/971 5271/7754/971 5272/7755/971 +f 5273/7756/971 5274/7757/971 5275/7758/971 +f 5275/7758/971 5269/7752/971 5268/7751/971 +f 5266/7749/971 5272/7755/971 5274/7757/971 +f 5275/7758/971 5272/7755/971 5271/7754/971 +f 5276/7759/971 5242/7725/971 5277/7760/971 +f 5278/7761/971 5279/7762/971 5280/7763/971 +f 5281/7764/971 5251/7734/971 5279/7762/971 +f 5282/7765/971 5277/7760/971 5244/7727/971 +f 5277/7760/971 5251/7734/971 5244/7727/971 +f 5280/7763/971 5277/7760/971 5242/7725/971 +f 5214/7697/972 5283/7766/972 5284/7767/972 +f 5285/7768/973 5286/7769/973 5287/7770/973 +f 5288/7771/971 5289/7772/971 5290/7773/971 +f 5289/7772/971 5291/7774/971 5290/7773/971 +f 5290/7773/971 5292/7775/971 5293/7776/971 +f 5294/7777/971 5292/7775/971 5291/7774/971 +f 5295/7778/971 5291/7774/971 5241/7724/971 +f 5290/7773/971 5291/7774/971 5292/7775/971 +f 5296/7779/971 5297/7780/971 5298/7781/971 +f 5299/7782/971 5300/7783/971 5301/7784/971 +f 5302/7785/971 5303/7786/971 5304/7787/971 +f 5305/7788/971 5306/7789/971 5307/7790/971 +f 5300/7783/971 5303/7786/971 5301/7784/971 +f 5298/7781/971 5304/7787/971 5306/7789/971 +f 5307/7790/971 5304/7787/971 5303/7786/971 +f 5308/7791/971 5280/7763/971 5289/7772/971 +f 5289/7772/971 5242/7725/971 5241/7724/971 +f 5202/7685/969 5209/7692/969 5203/7686/969 +f 5205/7688/969 5208/7691/969 5206/7689/969 +f 5208/7691/969 5205/7688/969 5209/7692/969 +f 5216/7699/969 5207/7690/969 5206/7689/969 +f 5217/7700/969 5220/7703/969 5218/7701/969 +f 5219/7702/969 5222/7705/969 5218/7701/969 +f 5221/7704/969 5224/7707/969 5222/7705/969 +f 5221/7704/969 5226/7709/969 5223/7706/969 +f 5225/7708/969 5227/7710/969 5223/7706/969 +f 5227/7710/969 5225/7708/969 5228/7711/969 +f 5230/7713/969 5232/7715/969 5229/7712/969 +f 5230/7713/969 5234/7717/969 5231/7714/969 +f 5233/7716/969 5239/7722/969 5231/7714/969 +f 5235/7718/969 5204/7687/969 5203/7686/969 +f 5236/7719/969 5238/7792/969 5237/7720/969 +f 5233/7716/969 5237/7793/969 5238/7721/969 +f 5244/7727/971 5251/7734/971 5246/7729/971 +f 5263/7746/971 5259/7742/971 5257/7740/971 +f 5254/7737/971 5253/7736/971 5260/7743/971 +f 5263/7746/971 5262/7745/971 5260/7743/971 +f 5275/7758/971 5271/7754/971 5269/7752/971 +f 5266/7749/971 5265/7748/971 5272/7755/971 +f 5275/7758/971 5274/7757/971 5272/7755/971 +f 5277/7760/971 5279/7762/971 5251/7734/971 +f 5280/7763/971 5279/7762/971 5277/7760/971 +f 5214/7697/972 5213/7696/972 5283/7766/972 +f 5289/7772/971 5241/7724/971 5291/7774/971 +f 5300/7783/971 5307/7790/971 5303/7786/971 +f 5298/7781/971 5297/7780/971 5304/7787/971 +f 5307/7790/971 5306/7789/971 5304/7787/971 +f 5289/7772/971 5280/7763/971 5242/7725/971 s 1 -f 5309/7776/974 5251/7777/975 5281/7778/976 -f 5310/7779/977 5236/7701/978 5311/7780/978 -f 5229/7694/979 5312/7781/980 5227/7692/980 -f 5207/7672/981 5313/7782/982 5205/7670/982 -f 5232/7697/983 5314/7783/979 5229/7694/979 -f 5216/7681/984 5315/7784/981 5207/7672/981 -f 5231/7696/985 5316/7785/983 5232/7697/983 -f 5218/7683/986 5317/7786/984 5216/7681/984 -f 5239/7704/987 5318/7787/985 5231/7696/985 -f 5222/7687/988 5319/7788/986 5218/7683/986 -f 5320/7789/987 5238/7703/977 5310/7790/977 -f 5224/7689/989 5321/7791/988 5222/7687/988 -f 5203/7668/976 5311/7780/978 5236/7701/978 -f 5223/7688/990 5322/7792/989 5224/7689/989 -f 5209/7674/991 5323/7793/976 5203/7668/976 -f 5227/7692/980 5324/7794/990 5223/7688/990 -f 5205/7670/982 5325/7795/991 5209/7674/991 -f 5316/7785/992 5326/7796/993 5314/7783/994 -f 5318/7787/995 5327/7797/996 5316/7785/992 -f 5320/7789/997 5328/7798/998 5318/7787/995 -f 5310/7790/999 5329/7799/1000 5320/7789/997 -f 5311/7780/1001 5330/7800/1002 5310/7779/999 -f 5323/7793/1003 5331/7801/1004 5311/7780/1001 -f 5325/7795/1005 5332/7802/1006 5323/7793/1003 -f 5313/7782/1007 5333/7803/1008 5325/7795/1005 -f 5313/7782/1007 5334/7804/1009 5335/7805/1010 -f 5317/7786/1011 5334/7806/1009 5315/7784/1012 -f 5317/7786/1011 5336/7807/1013 5337/7808/1014 -f 5321/7791/1015 5336/7809/1013 5319/7788/1016 -f 5322/7792/1017 5338/7810/1018 5321/7791/1015 -f 5324/7794/1019 5339/7811/1020 5322/7792/1017 -f 5312/7781/1021 5340/7812/1022 5324/7794/1019 -f 5314/7783/994 5341/7813/1023 5312/7781/1021 -f 5327/7797/996 5328/7814/998 5342/7815/969 -f 5337/7808/1014 5336/7807/1013 5342/7816/969 -f 5328/7798/998 5329/7817/1000 5342/7818/969 -f 5336/7809/1013 5338/7819/1018 5342/7820/969 -f 5330/7800/1002 5331/7821/1004 5342/7822/969 -f 5329/7799/1000 5330/7823/1002 5342/7824/969 -f 5338/7810/1018 5339/7825/1020 5342/7826/969 -f 5331/7801/1004 5332/7827/1006 5342/7828/969 -f 5339/7811/1020 5340/7829/1022 5342/7830/969 -f 5332/7802/1006 5333/7831/1008 5342/7832/969 -f 5340/7812/1022 5341/7833/1023 5342/7834/969 -f 5333/7803/1008 5335/7835/1010 5342/7836/969 -f 5341/7813/1023 5326/7837/993 5342/7838/969 -f 5335/7805/1010 5334/7804/1009 5342/7839/969 -f 5326/7796/993 5327/7840/996 5342/7841/969 -f 5334/7806/1009 5337/7842/1014 5342/7843/969 -f 5248/7844/1024 5343/7845/1025 5344/7846/1026 -f 5247/7847/1027 5345/7848/1028 5343/7849/1025 -f 5249/7850/1029 5346/7851/1030 5345/7852/1028 -f 5246/7853/1031 5347/7854/1032 5346/7855/1030 -f 5309/7856/1033 5250/7857/1034 5251/7858/1035 -f 5245/7859/1036 5344/7860/1026 5348/7861/1037 -f 5243/7862/1038 5348/7863/1037 5349/7864/1039 -f 5350/7865/1040 5243/7862/1038 5349/7866/1039 -f 5350/7865/1040 5351/7867/1041 5352/7868/1042 -f 5348/7863/1037 5351/7869/1041 5349/7864/1039 -f 5344/7860/1026 5353/7870/1043 5348/7861/1037 -f 5345/7848/1028 5215/7871/1044 5343/7849/1025 -f 5215/7872/1044 5344/7846/1026 5343/7845/1025 -f 5346/7851/1030 5213/7873/1045 5345/7852/1028 -f 5347/7854/1032 5354/7874/1046 5346/7855/1030 -f 5355/7875/1047 5309/7856/1033 5356/7876/1048 -f 5357/7877/984 5358/7878/1049 5356/7879/1050 -f 5356/7879/1050 5359/7880/1051 5355/7881/982 -f 5352/7882/1052 5212/7677/990 5360/7883/990 -f 5214/7884/987 5361/7885/1053 5353/7886/1054 -f 5353/7886/1054 5362/7887/1055 5351/7888/979 -f 5351/7888/979 5210/7675/1056 5352/7882/1057 -f 5355/7881/982 5363/7889/1058 5354/7890/1059 -f 5354/7890/1059 5364/7891/1060 5213/7892/978 -f 5210/7675/1056 5362/7887/1055 5211/7893/1061 -f 5362/7887/1055 5361/7885/1053 5211/7894/1061 -f 5361/7885/1053 5365/7895/1062 5211/7896/1061 -f 5364/7891/1060 5363/7889/1058 5211/7897/1061 -f 5363/7889/1058 5359/7880/1051 5211/7898/1061 -f 5359/7880/1051 5358/7878/1049 5211/7899/1061 -f 5358/7878/1049 5366/7900/1063 5211/7901/1061 -f 5350/7902/1064 5282/7903/985 5244/7904/1065 -f 5234/7905/985 5350/7902/1064 5233/7906/987 -f 5233/7906/987 5350/7902/1064 5237/7907/1066 -f 5237/7702/1067 5309/7776/974 5235/7908/978 -f 5204/7909/976 5309/7776/974 5281/7778/976 -f 5279/7910/991 5204/7909/976 5281/7778/976 -f 5278/7911/982 5202/7912/991 5279/7910/991 -f 5280/7913/981 5208/7914/982 5278/7911/982 -f 5308/7915/984 5206/7916/981 5280/7913/981 -f 5221/7917/989 5219/7918/1068 5367/7919/1069 -f 5367/7919/1069 5226/7920/990 5221/7917/989 -f 5367/7919/1069 5241/7921/1070 5240/7922/990 -f 5242/7923/980 5226/7920/990 5240/7922/990 -f 5276/7924/979 5225/7925/980 5242/7923/980 -f 5277/7926/983 5228/7927/979 5276/7924/979 -f 5282/7903/985 5230/7928/983 5277/7926/983 -f 5368/7929/1071 5253/7930/1072 5369/7931/1072 -f 5259/7932/1073 5370/7933/1074 5371/7934/1073 -f 5255/7935/1075 5372/7936/1076 5373/7937/1075 -f 5257/7938/1076 5371/7934/1073 5372/7936/1076 -f 5258/7939/1074 5368/7929/1071 5370/7933/1074 -f 5374/7940/979 5272/7941/1054 5375/7942/1054 -f 5376/7943/988 5269/7944/1077 5377/7945/1077 -f 5378/7946/982 5275/7947/1050 5379/7948/1050 -f 5375/7942/1054 5265/7949/1078 5380/7950/1078 -f 5381/7951/977 5266/7952/1079 5382/7953/1079 -f 5377/7945/1077 5271/7954/1052 5383/7955/1052 -f 5379/7948/1050 5268/7956/1080 5384/7957/1080 -f 5380/7950/1078 5264/7958/977 5381/7959/977 -f 5382/7953/1079 5274/7960/1059 5385/7961/1059 -f 5383/7955/1052 5270/7962/979 5374/7940/979 -f 5384/7957/1080 5267/7963/988 5376/7943/988 -f 5385/7961/1059 5273/7964/982 5378/7946/982 -f 5374/7940/1081 5386/7965/1082 5387/7966/1081 -f 5375/7942/1082 5388/7967/1083 5386/7965/1082 -f 5380/7950/1083 5389/7968/1084 5388/7967/1083 -f 5381/7951/1084 5390/7969/1085 5389/7970/1084 -f 5382/7953/1085 5391/7971/1086 5390/7969/1085 -f 5385/7961/1086 5392/7972/1087 5391/7971/1086 -f 5378/7946/1087 5393/7973/1088 5392/7972/1087 -f 5379/7948/1088 5394/7974/1089 5393/7973/1088 -f 5384/7957/1089 5395/7975/1090 5394/7974/1089 -f 5395/7975/1090 5377/7945/1091 5396/7976/1091 -f 5377/7945/1091 5397/7977/1092 5396/7976/1091 -f 5383/7955/1092 5387/7966/1081 5397/7977/1092 -f 5253/7930/1072 5398/7978/1093 5369/7931/1072 -f 5252/7979/1093 5399/7980/1094 5398/7981/1093 -f 5254/7982/1094 5400/7983/1095 5399/7980/1094 -f 5262/7984/1095 5401/7985/1096 5400/7983/1095 -f 5261/7986/1096 5402/7987/1097 5401/7985/1096 -f 5263/7988/1097 5403/7989/1098 5402/7987/1097 -f 5256/7990/1098 5373/7937/1075 5403/7989/1098 -f 5284/7749/1099 5404/7991/1100 5214/7992/1101 -f 5283/7748/1102 5213/7993/1103 5405/7994/1104 -f 5404/7995/1100 5283/7748/1102 5405/7996/1104 -f 5211/7997/1061 5365/7895/1062 5364/7891/1060 -f 5365/7895/1062 5213/7892/978 5364/7891/1060 -f 5293/7998/1105 5406/7999/1106 5407/8000/1107 -f 5292/8001/1108 5408/8002/1109 5406/8003/1106 -f 5294/8004/1110 5409/8005/1111 5408/8006/1109 -f 5291/8007/1112 5410/8008/1113 5409/8009/1111 -f 5367/8010/1114 5295/8011/1115 5241/8012/1116 -f 5290/8013/1117 5407/8014/1107 5411/8015/1118 -f 5288/8016/1119 5411/8017/1118 5412/8018/1120 -f 5413/8019/1121 5288/8016/1119 5412/8020/1120 -f 5413/8019/1121 5414/8021/1122 5415/8022/1123 -f 5411/8017/1118 5414/8023/1122 5412/8018/1120 -f 5407/8014/1107 5416/8024/1124 5411/8015/1118 -f 5408/8002/1109 5417/8025/1125 5406/8003/1106 -f 5417/8026/1125 5407/8000/1107 5406/7999/1106 -f 5409/8005/1111 5418/8027/1126 5408/8006/1109 -f 5410/8008/1113 5419/8028/1127 5409/8009/1111 -f 5420/8029/1128 5367/8010/1114 5421/8030/1129 -f 5422/8031/1130 5423/8032/1131 5424/8033/1132 -f 5423/8032/1131 5425/8034/1133 5426/8035/1134 -f 5427/8036/1135 5428/8037/1136 5429/8038/1137 -f 5430/8039/1138 5422/8040/1139 5424/8041/1139 -f 5427/8036/1135 5431/8042/1140 5432/8043/1141 -f 5433/8044/1142 5432/8043/1141 5431/8042/1140 -f 5429/8038/1137 5425/8045/1133 5434/8046/1143 -f 5431/8042/1140 5427/8036/1135 5429/8038/1137 -f 5285/7750/1144 5435/8047/1145 5286/8048/1146 -f 5435/8047/1145 5436/8049/1147 5286/8050/1146 -f 5436/8049/1147 5437/8051/1148 5286/8052/1146 -f 5438/8053/1149 5439/8054/1150 5286/8055/1146 -f 5439/8054/1150 5440/8056/1151 5286/8057/1146 -f 5440/8056/1151 5441/8058/1152 5286/8059/1146 -f 5441/8058/1152 5442/8060/1153 5286/8061/1146 -f 5443/8062/1097 5297/8063/1098 5444/8064/1098 -f 5445/8065/1095 5302/8066/1096 5446/8067/1096 -f 5299/8068/1093 5447/8069/1094 5448/8070/1093 -f 5301/8071/1094 5445/8065/1095 5447/8069/1094 -f 5302/8066/1096 5443/8062/1097 5446/8067/1096 -f 5297/8063/1098 5449/8072/1075 5444/8064/1098 -f 5296/8073/1075 5450/8074/1076 5449/8072/1075 -f 5298/8075/1076 5451/8076/1073 5450/8074/1076 -f 5451/8076/1073 5305/8077/1074 5452/8078/1074 -f 5305/8077/1074 5453/8079/1071 5452/8078/1074 -f 5307/8080/1071 5454/8081/1072 5453/8079/1071 -f 5300/8082/1072 5448/8083/1093 5454/8081/1072 -f 5286/8084/1146 5437/8051/1148 5438/8053/1149 -f 5455/8085/1154 5426/8086/1134 5456/8087/1155 -f 5413/8088/1156 5219/7918/1157 5220/8089/986 -f 5217/8090/984 5413/8088/1156 5220/8089/986 -f 5413/8088/1156 5308/7915/984 5289/8091/1158 -f 5455/8085/1154 5457/8092/982 5430/8093/1159 -f 5424/8033/1132 5455/8085/1154 5430/8093/1159 -f 5458/8094/979 5429/8038/1137 5459/8095/1160 -f 5429/8038/1137 5422/8031/1130 5459/8095/1160 -f 5460/8096/1161 5455/8085/1154 5456/8097/1155 -f 5460/8096/1161 5461/8098/1162 5455/8085/1154 -f 5460/8096/1161 5462/8099/1163 5461/8098/1162 -f 5463/8100/1164 5461/8098/1162 5462/8099/1163 -f 5432/8101/1054 5442/8060/1153 5441/8058/1152 -f 5427/8102/979 5441/8058/1152 5440/8056/1151 -f 5428/8103/1052 5440/8056/1151 5439/8054/1150 -f 5437/8051/1148 5425/8104/989 5438/8053/1149 -f 5460/8105/982 5436/8049/1147 5435/8047/1145 -f 5462/8106/1059 5435/8047/1145 5285/7750/1144 -f 5463/8107/976 5285/7750/1144 5287/7752/976 -f 5458/8108/971 5430/8039/1138 5457/8109/971 -f 5425/8104/989 5439/8054/1150 5438/8053/1149 -f 5456/8110/1050 5437/8051/1148 5436/8049/1147 -f 5464/8111/979 5465/8112/983 5466/8113/983 -f 5467/8114/1165 5468/8115/980 5469/8116/980 -f 5470/8117/982 5471/8118/981 5472/8119/981 -f 5473/8120/1166 5474/8121/991 5475/8122/991 -f 5466/8113/983 5476/8123/1167 5477/8124/1167 -f 5469/8116/980 5478/8125/979 5464/8111/979 -f 5472/8119/981 5479/8126/1168 5480/8127/1168 -f 5475/8122/991 5481/8128/982 5470/8117/982 -f 5482/8129/1169 5483/8130/1170 5484/8131/1170 -f 5485/8132/1171 5482/8129/1169 5486/8133/1171 -f 5487/8134/1172 5485/8132/1171 5486/8133/1171 -f 5488/8135/1173 5489/8136/1174 5490/8137/1174 -f 5491/8138/1175 5488/8135/1173 5492/8139/1175 -f 5493/8140/1176 5491/8138/1175 5492/8139/1175 -f 5310/7779/977 5238/7774/977 5236/7701/978 -f 5229/7694/979 5314/7783/979 5312/7781/980 -f 5207/7672/981 5315/7784/981 5313/7782/982 -f 5232/7697/983 5316/7785/983 5314/7783/979 -f 5216/7681/984 5317/7786/984 5315/7784/981 -f 5231/7696/985 5318/7787/985 5316/7785/983 -f 5218/7683/986 5319/7788/986 5317/7786/984 -f 5239/7704/987 5320/7789/987 5318/7787/985 -f 5222/7687/988 5321/7791/988 5319/7788/986 -f 5320/7789/987 5239/7704/987 5238/7703/977 -f 5224/7689/989 5322/7792/989 5321/7791/988 -f 5203/7668/976 5323/7793/976 5311/7780/978 -f 5223/7688/990 5324/7794/990 5322/7792/989 -f 5209/7674/991 5325/7795/991 5323/7793/976 -f 5227/7692/980 5312/7781/980 5324/7794/990 -f 5205/7670/982 5313/7782/982 5325/7795/991 -f 5316/7785/992 5327/7840/996 5326/7796/993 -f 5318/7787/995 5328/7814/998 5327/7797/996 -f 5320/7789/997 5329/7817/1000 5328/7798/998 -f 5310/7790/999 5330/7823/1002 5329/7799/1000 -f 5311/7780/1001 5331/7821/1004 5330/7800/1002 -f 5323/7793/1003 5332/7827/1006 5331/7801/1004 -f 5325/7795/1005 5333/7831/1008 5332/7802/1006 -f 5313/7782/1007 5335/7835/1010 5333/7803/1008 -f 5313/7782/1007 5315/7784/1012 5334/7804/1009 -f 5317/7786/1011 5337/7842/1014 5334/7806/1009 -f 5317/7786/1011 5319/7788/1016 5336/7807/1013 -f 5321/7791/1015 5338/7819/1018 5336/7809/1013 -f 5322/7792/1017 5339/7825/1020 5338/7810/1018 -f 5324/7794/1019 5340/7829/1022 5339/7811/1020 -f 5312/7781/1021 5341/7833/1023 5340/7812/1022 -f 5314/7783/994 5326/7837/993 5341/7813/1023 -f 5248/7844/1024 5247/7847/1027 5343/7845/1025 -f 5247/7847/1027 5249/7850/1029 5345/7848/1028 -f 5249/7850/1029 5246/7853/1031 5346/7851/1030 -f 5246/7853/1031 5250/7857/1034 5347/7854/1032 -f 5309/7856/1033 5347/8141/1032 5250/7857/1034 -f 5245/7859/1036 5248/7844/1024 5344/7860/1026 -f 5243/7862/1038 5245/7859/1036 5348/7863/1037 -f 5350/7865/1040 5244/8142/1177 5243/7862/1038 -f 5350/7865/1040 5349/7866/1039 5351/7867/1041 -f 5348/7863/1037 5353/8143/1043 5351/7869/1041 -f 5344/7860/1026 5214/8144/1178 5353/7870/1043 -f 5345/7848/1028 5213/8145/1045 5215/7871/1044 -f 5215/7872/1044 5214/8146/1178 5344/7846/1026 -f 5346/7851/1030 5354/8147/1046 5213/7873/1045 -f 5347/7854/1032 5355/8148/1047 5354/7874/1046 -f 5355/7875/1047 5347/8141/1032 5309/7856/1033 -f 5357/7877/984 5366/7900/1063 5358/7878/1049 -f 5356/7879/1050 5358/7878/1049 5359/7880/1051 -f 5352/7882/1057 5210/7675/1056 5212/7677/990 -f 5214/7884/987 5365/7895/1062 5361/7885/1053 -f 5353/7886/1054 5361/7885/1053 5362/7887/1055 -f 5351/7888/979 5362/7887/1055 5210/7675/1056 -f 5355/7881/982 5359/7880/1051 5363/7889/1058 -f 5354/7890/1059 5363/7889/1058 5364/7891/1060 -f 5234/7905/985 5282/7903/985 5350/7902/1064 -f 5204/7909/976 5235/7908/978 5309/7776/974 -f 5279/7910/991 5202/7912/991 5204/7909/976 -f 5278/7911/982 5208/7914/982 5202/7912/991 -f 5280/7913/981 5206/7916/981 5208/7914/982 -f 5308/7915/984 5217/8090/984 5206/7916/981 -f 5367/7919/1069 5240/7922/990 5226/7920/990 -f 5242/7923/980 5225/7925/980 5226/7920/990 -f 5276/7924/979 5228/7927/979 5225/7925/980 -f 5277/7926/983 5230/7928/983 5228/7927/979 -f 5282/7903/985 5234/7905/985 5230/7928/983 -f 5368/7929/1071 5260/8149/1071 5253/7930/1072 -f 5259/7932/1073 5258/7939/1074 5370/7933/1074 -f 5255/7935/1075 5257/7938/1076 5372/7936/1076 -f 5257/7938/1076 5259/7932/1073 5371/7934/1073 -f 5258/7939/1074 5260/8149/1071 5368/7929/1071 -f 5374/7940/979 5270/7962/979 5272/7941/1054 -f 5376/7943/988 5267/7963/988 5269/7944/1077 -f 5378/7946/982 5273/7964/982 5275/7947/1050 -f 5375/7942/1054 5272/7941/1054 5265/7949/1078 -f 5381/7951/977 5264/8150/977 5266/7952/1079 -f 5377/7945/1077 5269/7944/1077 5271/7954/1052 -f 5379/7948/1050 5275/7947/1050 5268/7956/1080 -f 5380/7950/1078 5265/7949/1078 5264/7958/977 -f 5382/7953/1079 5266/7952/1079 5274/7960/1059 -f 5383/7955/1052 5271/7954/1052 5270/7962/979 -f 5384/7957/1080 5268/7956/1080 5267/7963/988 -f 5385/7961/1059 5274/7960/1059 5273/7964/982 -f 5374/7940/1081 5375/7942/1082 5386/7965/1082 -f 5375/7942/1082 5380/7950/1083 5388/7967/1083 -f 5380/7950/1083 5381/7959/1084 5389/7968/1084 -f 5381/7951/1084 5382/7953/1085 5390/7969/1085 -f 5382/7953/1085 5385/7961/1086 5391/7971/1086 -f 5385/7961/1086 5378/7946/1087 5392/7972/1087 -f 5378/7946/1087 5379/7948/1088 5393/7973/1088 -f 5379/7948/1088 5384/7957/1089 5394/7974/1089 -f 5384/7957/1089 5376/7943/1090 5395/7975/1090 -f 5395/7975/1090 5376/7943/1090 5377/7945/1091 -f 5377/7945/1091 5383/7955/1092 5397/7977/1092 -f 5383/7955/1092 5374/7940/1081 5387/7966/1081 -f 5253/7930/1072 5252/8151/1093 5398/7978/1093 -f 5252/7979/1093 5254/7982/1094 5399/7980/1094 -f 5254/7982/1094 5262/7984/1095 5400/7983/1095 -f 5262/7984/1095 5261/7986/1096 5401/7985/1096 -f 5261/7986/1096 5263/7988/1097 5402/7987/1097 -f 5263/7988/1097 5256/7990/1098 5403/7989/1098 -f 5256/7990/1098 5255/7935/1075 5373/7937/1075 -f 5404/7995/1100 5284/7749/1099 5283/7748/1102 -f 5365/7895/1062 5214/7884/987 5213/7892/978 -f 5293/7998/1105 5292/8001/1108 5406/7999/1106 -f 5292/8001/1108 5294/8004/1110 5408/8002/1109 -f 5294/8004/1110 5291/8007/1112 5409/8005/1111 -f 5291/8007/1112 5295/8011/1115 5410/8008/1113 -f 5367/8010/1114 5410/8152/1113 5295/8011/1115 -f 5290/8013/1117 5293/7998/1105 5407/8014/1107 -f 5288/8016/1119 5290/8013/1117 5411/8017/1118 -f 5413/8019/1121 5289/8153/1179 5288/8016/1119 -f 5413/8019/1121 5412/8020/1120 5414/8021/1122 -f 5411/8017/1118 5416/8154/1124 5414/8023/1122 -f 5407/8014/1107 5494/8155/1180 5416/8024/1124 -f 5408/8002/1109 5418/8156/1126 5417/8025/1125 -f 5417/8026/1125 5494/8157/1180 5407/8000/1107 -f 5409/8005/1111 5419/8158/1127 5418/8027/1126 -f 5410/8008/1113 5420/8159/1128 5419/8028/1127 -f 5420/8029/1128 5410/8152/1113 5367/8010/1114 -f 5422/8031/1130 5434/8046/1143 5423/8032/1131 -f 5423/8032/1131 5434/8046/1143 5425/8034/1133 -f 5430/8039/1138 5459/8160/1138 5422/8040/1139 -f 5429/8038/1137 5428/8161/1136 5425/8045/1133 -f 5443/8062/1097 5304/8162/1097 5297/8063/1098 -f 5445/8065/1095 5303/8163/1095 5302/8066/1096 -f 5299/8068/1093 5301/8071/1094 5447/8069/1094 -f 5301/8071/1094 5303/8163/1095 5445/8065/1095 -f 5302/8066/1096 5304/8162/1097 5443/8062/1097 -f 5297/8063/1098 5296/8073/1075 5449/8072/1075 -f 5296/8073/1075 5298/8075/1076 5450/8074/1076 -f 5298/8075/1076 5306/8164/1073 5451/8076/1073 -f 5451/8076/1073 5306/8164/1073 5305/8077/1074 -f 5305/8077/1074 5307/8080/1071 5453/8079/1071 -f 5307/8080/1071 5300/8082/1072 5454/8081/1072 -f 5300/8082/1072 5299/8165/1093 5448/8083/1093 -f 5455/8085/1154 5423/8032/1131 5426/8086/1134 -f 5217/8090/984 5308/7915/984 5413/8088/1156 -f 5455/8085/1154 5461/8098/1162 5457/8092/982 -f 5424/8033/1132 5423/8032/1131 5455/8085/1154 -f 5458/8094/979 5431/8042/1140 5429/8038/1137 -f 5429/8038/1137 5434/8046/1143 5422/8031/1130 -f 5432/8101/1054 5433/8166/985 5442/8060/1153 -f 5427/8102/979 5432/8101/1054 5441/8058/1152 -f 5428/8103/1052 5427/8102/979 5440/8056/1151 -f 5437/8051/1148 5426/8167/986 5425/8104/989 -f 5460/8105/982 5456/8110/1050 5436/8049/1147 -f 5462/8106/1059 5460/8105/982 5435/8047/1145 -f 5463/8107/976 5462/8106/1059 5285/7750/1144 -f 5458/8108/971 5459/8160/1138 5430/8039/1138 -f 5425/8104/989 5428/8103/1052 5439/8054/1150 -f 5456/8110/1050 5426/8167/986 5437/8051/1148 -f 5464/8111/979 5478/8125/979 5465/8112/983 -f 5467/8114/1165 5495/8168/1165 5468/8115/980 -f 5470/8117/982 5481/8128/982 5471/8118/981 -f 5473/8120/1166 5496/8169/1166 5474/8121/991 -f 5466/8113/983 5465/8112/983 5476/8123/1167 -f 5469/8116/980 5468/8115/980 5478/8125/979 -f 5472/8119/981 5471/8118/981 5479/8126/1168 -f 5475/8122/991 5474/8121/991 5481/8128/982 -f 5482/8129/1169 5497/8170/1169 5483/8130/1170 -f 5485/8132/1171 5497/8170/1169 5482/8129/1169 -f 5487/8134/1172 5498/8171/1172 5485/8132/1171 -f 5488/8135/1173 5499/8172/1173 5489/8136/1174 -f 5491/8138/1175 5499/8172/1173 5488/8135/1173 -f 5493/8140/1176 5500/8173/1176 5491/8138/1175 +f 5309/7794/974 5251/7795/975 5281/7796/976 +f 5310/7797/977 5236/7719/978 5311/7798/978 +f 5229/7712/979 5312/7799/980 5227/7710/980 +f 5207/7690/981 5313/7800/982 5205/7688/982 +f 5232/7715/983 5314/7801/979 5229/7712/979 +f 5216/7699/984 5315/7802/981 5207/7690/981 +f 5231/7714/985 5316/7803/983 5232/7715/983 +f 5218/7701/986 5317/7804/984 5216/7699/984 +f 5239/7722/987 5318/7805/985 5231/7714/985 +f 5222/7705/988 5319/7806/986 5218/7701/986 +f 5320/7807/987 5238/7721/977 5310/7808/977 +f 5224/7707/989 5321/7809/988 5222/7705/988 +f 5203/7686/976 5311/7798/978 5236/7719/978 +f 5223/7706/990 5322/7810/989 5224/7707/989 +f 5209/7692/991 5323/7811/976 5203/7686/976 +f 5227/7710/980 5324/7812/990 5223/7706/990 +f 5205/7688/982 5325/7813/991 5209/7692/991 +f 5316/7803/992 5326/7814/993 5314/7801/994 +f 5318/7805/995 5327/7815/996 5316/7803/992 +f 5320/7807/997 5328/7816/998 5318/7805/995 +f 5310/7808/999 5329/7817/1000 5320/7807/997 +f 5311/7798/1001 5330/7818/1002 5310/7797/999 +f 5323/7811/1003 5331/7819/1004 5311/7798/1001 +f 5325/7813/1005 5332/7820/1006 5323/7811/1003 +f 5313/7800/1007 5333/7821/1008 5325/7813/1005 +f 5313/7800/1007 5334/7822/1009 5335/7823/1010 +f 5317/7804/1011 5334/7824/1009 5315/7802/1012 +f 5317/7804/1011 5336/7825/1013 5337/7826/1014 +f 5321/7809/1015 5336/7827/1013 5319/7806/1016 +f 5322/7810/1017 5338/7828/1018 5321/7809/1015 +f 5324/7812/1019 5339/7829/1020 5322/7810/1017 +f 5312/7799/1021 5340/7830/1022 5324/7812/1019 +f 5314/7801/994 5341/7831/1023 5312/7799/1021 +f 5327/7815/996 5328/7832/998 5342/7833/969 +f 5337/7826/1014 5336/7825/1013 5342/7834/969 +f 5328/7816/998 5329/7835/1000 5342/7836/969 +f 5336/7827/1013 5338/7837/1018 5342/7838/969 +f 5330/7818/1002 5331/7839/1004 5342/7840/969 +f 5329/7817/1000 5330/7841/1002 5342/7842/969 +f 5338/7828/1018 5339/7843/1020 5342/7844/969 +f 5331/7819/1004 5332/7845/1006 5342/7846/969 +f 5339/7829/1020 5340/7847/1022 5342/7848/969 +f 5332/7820/1006 5333/7849/1008 5342/7850/969 +f 5340/7830/1022 5341/7851/1023 5342/7852/969 +f 5333/7821/1008 5335/7853/1010 5342/7854/969 +f 5341/7831/1023 5326/7855/993 5342/7856/969 +f 5335/7823/1010 5334/7822/1009 5342/7857/969 +f 5326/7814/993 5327/7858/996 5342/7859/969 +f 5334/7824/1009 5337/7860/1014 5342/7861/969 +f 5248/7862/1024 5343/7863/1025 5344/7864/1026 +f 5247/7865/1027 5345/7866/1028 5343/7867/1025 +f 5249/7868/1029 5346/7869/1030 5345/7870/1028 +f 5246/7871/1031 5347/7872/1032 5346/7873/1030 +f 5309/7874/1033 5250/7875/1034 5251/7876/1035 +f 5245/7877/1036 5344/7878/1026 5348/7879/1037 +f 5243/7880/1038 5348/7881/1037 5349/7882/1039 +f 5350/7883/1040 5243/7880/1038 5349/7884/1039 +f 5350/7883/1040 5351/7885/1041 5352/7886/1042 +f 5348/7881/1037 5351/7887/1041 5349/7882/1039 +f 5344/7878/1026 5353/7888/1043 5348/7879/1037 +f 5345/7866/1028 5215/7889/1044 5343/7867/1025 +f 5215/7890/1044 5344/7864/1026 5343/7863/1025 +f 5346/7869/1030 5213/7891/1045 5345/7870/1028 +f 5347/7872/1032 5354/7892/1046 5346/7873/1030 +f 5355/7893/1047 5309/7874/1033 5356/7894/1048 +f 5357/7895/984 5358/7896/1049 5356/7897/1050 +f 5356/7897/1050 5359/7898/1051 5355/7899/982 +f 5352/7900/1052 5212/7695/990 5360/7901/990 +f 5214/7902/987 5361/7903/1053 5353/7904/1054 +f 5353/7904/1054 5362/7905/1055 5351/7906/979 +f 5351/7906/979 5210/7693/1056 5352/7900/1057 +f 5355/7899/982 5363/7907/1058 5354/7908/1059 +f 5354/7908/1059 5364/7909/1060 5213/7910/978 +f 5210/7693/1056 5362/7905/1055 5211/7911/1061 +f 5362/7905/1055 5361/7903/1053 5211/7912/1061 +f 5361/7903/1053 5365/7913/1062 5211/7914/1061 +f 5364/7909/1060 5363/7907/1058 5211/7915/1061 +f 5363/7907/1058 5359/7898/1051 5211/7916/1061 +f 5359/7898/1051 5358/7896/1049 5211/7917/1061 +f 5358/7896/1049 5366/7918/1063 5211/7919/1061 +f 5350/7920/1064 5282/7921/985 5244/7922/1065 +f 5234/7923/985 5350/7920/1064 5233/7924/987 +f 5233/7924/987 5350/7920/1064 5237/7925/1066 +f 5237/7720/1067 5309/7794/974 5235/7926/978 +f 5204/7927/976 5309/7794/974 5281/7796/976 +f 5279/7928/991 5204/7927/976 5281/7796/976 +f 5278/7929/982 5202/7930/991 5279/7928/991 +f 5280/7931/981 5208/7932/982 5278/7929/982 +f 5308/7933/984 5206/7934/981 5280/7931/981 +f 5221/7935/989 5219/7936/1068 5367/7937/1069 +f 5367/7937/1069 5226/7938/990 5221/7935/989 +f 5367/7937/1069 5241/7939/1070 5240/7940/990 +f 5242/7941/980 5226/7938/990 5240/7940/990 +f 5276/7942/979 5225/7943/980 5242/7941/980 +f 5277/7944/983 5228/7945/979 5276/7942/979 +f 5282/7921/985 5230/7946/983 5277/7944/983 +f 5368/7947/1071 5253/7948/1072 5369/7949/1072 +f 5259/7950/1073 5370/7951/1074 5371/7952/1073 +f 5255/7953/1075 5372/7954/1076 5373/7955/1075 +f 5257/7956/1076 5371/7952/1073 5372/7954/1076 +f 5258/7957/1074 5368/7947/1071 5370/7951/1074 +f 5374/7958/979 5272/7959/1054 5375/7960/1054 +f 5376/7961/988 5269/7962/1077 5377/7963/1077 +f 5378/7964/982 5275/7965/1050 5379/7966/1050 +f 5375/7960/1054 5265/7967/1078 5380/7968/1078 +f 5381/7969/977 5266/7970/1079 5382/7971/1079 +f 5377/7963/1077 5271/7972/1052 5383/7973/1052 +f 5379/7966/1050 5268/7974/1080 5384/7975/1080 +f 5380/7968/1078 5264/7976/977 5381/7977/977 +f 5382/7971/1079 5274/7978/1059 5385/7979/1059 +f 5383/7973/1052 5270/7980/979 5374/7958/979 +f 5384/7975/1080 5267/7981/988 5376/7961/988 +f 5385/7979/1059 5273/7982/982 5378/7964/982 +f 5374/7958/1081 5386/7983/1082 5387/7984/1081 +f 5375/7960/1082 5388/7985/1083 5386/7983/1082 +f 5380/7968/1083 5389/7986/1084 5388/7985/1083 +f 5381/7969/1084 5390/7987/1085 5389/7988/1084 +f 5382/7971/1085 5391/7989/1086 5390/7987/1085 +f 5385/7979/1086 5392/7990/1087 5391/7989/1086 +f 5378/7964/1087 5393/7991/1088 5392/7990/1087 +f 5379/7966/1088 5394/7992/1089 5393/7991/1088 +f 5384/7975/1089 5395/7993/1090 5394/7992/1089 +f 5395/7993/1090 5377/7963/1091 5396/7994/1091 +f 5377/7963/1091 5397/7995/1092 5396/7994/1091 +f 5383/7973/1092 5387/7984/1081 5397/7995/1092 +f 5253/7948/1072 5398/7996/1093 5369/7949/1072 +f 5252/7997/1093 5399/7998/1094 5398/7999/1093 +f 5254/8000/1094 5400/8001/1095 5399/7998/1094 +f 5262/8002/1095 5401/8003/1096 5400/8001/1095 +f 5261/8004/1096 5402/8005/1097 5401/8003/1096 +f 5263/8006/1097 5403/8007/1098 5402/8005/1097 +f 5256/8008/1098 5373/7955/1075 5403/8007/1098 +f 5284/7767/1099 5404/8009/1100 5214/8010/1101 +f 5283/7766/1102 5213/8011/1103 5405/8012/1104 +f 5404/8013/1100 5283/7766/1102 5405/8014/1104 +f 5211/8015/1061 5365/7913/1062 5364/7909/1060 +f 5365/7913/1062 5213/7910/978 5364/7909/1060 +f 5293/8016/1105 5406/8017/1106 5407/8018/1107 +f 5292/8019/1108 5408/8020/1109 5406/8021/1106 +f 5294/8022/1110 5409/8023/1111 5408/8024/1109 +f 5291/8025/1112 5410/8026/1113 5409/8027/1111 +f 5367/8028/1114 5295/8029/1115 5241/8030/1116 +f 5290/8031/1117 5407/8032/1107 5411/8033/1118 +f 5288/8034/1119 5411/8035/1118 5412/8036/1120 +f 5413/8037/1121 5288/8034/1119 5412/8038/1120 +f 5413/8037/1121 5414/8039/1122 5415/8040/1123 +f 5411/8035/1118 5414/8041/1122 5412/8036/1120 +f 5407/8032/1107 5416/8042/1124 5411/8033/1118 +f 5408/8020/1109 5417/8043/1125 5406/8021/1106 +f 5417/8044/1125 5407/8018/1107 5406/8017/1106 +f 5409/8023/1111 5418/8045/1126 5408/8024/1109 +f 5410/8026/1113 5419/8046/1127 5409/8027/1111 +f 5420/8047/1128 5367/8028/1114 5421/8048/1129 +f 5422/8049/1130 5423/8050/1131 5424/8051/1132 +f 5423/8050/1131 5425/8052/1133 5426/8053/1134 +f 5427/8054/1135 5428/8055/1136 5429/8056/1137 +f 5430/8057/1138 5422/8058/1139 5424/8059/1139 +f 5427/8054/1135 5431/8060/1140 5432/8061/1141 +f 5433/8062/1142 5432/8061/1141 5431/8060/1140 +f 5429/8056/1137 5425/8063/1133 5434/8064/1143 +f 5431/8060/1140 5427/8054/1135 5429/8056/1137 +f 5285/7768/1144 5435/8065/1145 5286/8066/1146 +f 5435/8065/1145 5436/8067/1147 5286/8068/1146 +f 5436/8067/1147 5437/8069/1148 5286/8070/1146 +f 5438/8071/1149 5439/8072/1150 5286/8073/1146 +f 5439/8072/1150 5440/8074/1151 5286/8075/1146 +f 5440/8074/1151 5441/8076/1152 5286/8077/1146 +f 5441/8076/1152 5442/8078/1153 5286/8079/1146 +f 5443/8080/1097 5297/8081/1098 5444/8082/1098 +f 5445/8083/1095 5302/8084/1096 5446/8085/1096 +f 5299/8086/1093 5447/8087/1094 5448/8088/1093 +f 5301/8089/1094 5445/8083/1095 5447/8087/1094 +f 5302/8084/1096 5443/8080/1097 5446/8085/1096 +f 5297/8081/1098 5449/8090/1075 5444/8082/1098 +f 5296/8091/1075 5450/8092/1076 5449/8090/1075 +f 5298/8093/1076 5451/8094/1073 5450/8092/1076 +f 5451/8094/1073 5305/8095/1074 5452/8096/1074 +f 5305/8095/1074 5453/8097/1071 5452/8096/1074 +f 5307/8098/1071 5454/8099/1072 5453/8097/1071 +f 5300/8100/1072 5448/8101/1093 5454/8099/1072 +f 5286/8102/1146 5437/8069/1148 5438/8071/1149 +f 5455/8103/1154 5426/8104/1134 5456/8105/1155 +f 5413/8106/1156 5219/7936/1157 5220/8107/986 +f 5217/8108/984 5413/8106/1156 5220/8107/986 +f 5413/8106/1156 5308/7933/984 5289/8109/1158 +f 5455/8103/1154 5457/8110/982 5430/8111/1159 +f 5424/8051/1132 5455/8103/1154 5430/8111/1159 +f 5458/8112/979 5429/8056/1137 5459/8113/1160 +f 5429/8056/1137 5422/8049/1130 5459/8113/1160 +f 5460/8114/1161 5455/8103/1154 5456/8115/1155 +f 5460/8114/1161 5461/8116/1162 5455/8103/1154 +f 5460/8114/1161 5462/8117/1163 5461/8116/1162 +f 5463/8118/1164 5461/8116/1162 5462/8117/1163 +f 5432/8119/1054 5442/8078/1153 5441/8076/1152 +f 5427/8120/979 5441/8076/1152 5440/8074/1151 +f 5428/8121/1052 5440/8074/1151 5439/8072/1150 +f 5437/8069/1148 5425/8122/989 5438/8071/1149 +f 5460/8123/982 5436/8067/1147 5435/8065/1145 +f 5462/8124/1059 5435/8065/1145 5285/7768/1144 +f 5463/8125/976 5285/7768/1144 5287/7770/976 +f 5458/8126/971 5430/8057/1138 5457/8127/971 +f 5425/8122/989 5439/8072/1150 5438/8071/1149 +f 5456/8128/1050 5437/8069/1148 5436/8067/1147 +f 5464/8129/979 5465/8130/983 5466/8131/983 +f 5467/8132/1165 5468/8133/980 5469/8134/980 +f 5470/8135/982 5471/8136/981 5472/8137/981 +f 5473/8138/1166 5474/8139/991 5475/8140/991 +f 5466/8131/983 5476/8141/1167 5477/8142/1167 +f 5469/8134/980 5478/8143/979 5464/8129/979 +f 5472/8137/981 5479/8144/1168 5480/8145/1168 +f 5475/8140/991 5481/8146/982 5470/8135/982 +f 5482/8147/1169 5483/8148/1170 5484/8149/1170 +f 5485/8150/1171 5482/8147/1169 5486/8151/1171 +f 5487/8152/1172 5485/8150/1171 5486/8151/1171 +f 5488/8153/1173 5489/8154/1174 5490/8155/1174 +f 5491/8156/1175 5488/8153/1173 5492/8157/1175 +f 5493/8158/1176 5491/8156/1175 5492/8157/1175 +f 5310/7797/977 5238/7792/977 5236/7719/978 +f 5229/7712/979 5314/7801/979 5312/7799/980 +f 5207/7690/981 5315/7802/981 5313/7800/982 +f 5232/7715/983 5316/7803/983 5314/7801/979 +f 5216/7699/984 5317/7804/984 5315/7802/981 +f 5231/7714/985 5318/7805/985 5316/7803/983 +f 5218/7701/986 5319/7806/986 5317/7804/984 +f 5239/7722/987 5320/7807/987 5318/7805/985 +f 5222/7705/988 5321/7809/988 5319/7806/986 +f 5320/7807/987 5239/7722/987 5238/7721/977 +f 5224/7707/989 5322/7810/989 5321/7809/988 +f 5203/7686/976 5323/7811/976 5311/7798/978 +f 5223/7706/990 5324/7812/990 5322/7810/989 +f 5209/7692/991 5325/7813/991 5323/7811/976 +f 5227/7710/980 5312/7799/980 5324/7812/990 +f 5205/7688/982 5313/7800/982 5325/7813/991 +f 5316/7803/992 5327/7858/996 5326/7814/993 +f 5318/7805/995 5328/7832/998 5327/7815/996 +f 5320/7807/997 5329/7835/1000 5328/7816/998 +f 5310/7808/999 5330/7841/1002 5329/7817/1000 +f 5311/7798/1001 5331/7839/1004 5330/7818/1002 +f 5323/7811/1003 5332/7845/1006 5331/7819/1004 +f 5325/7813/1005 5333/7849/1008 5332/7820/1006 +f 5313/7800/1007 5335/7853/1010 5333/7821/1008 +f 5313/7800/1007 5315/7802/1012 5334/7822/1009 +f 5317/7804/1011 5337/7860/1014 5334/7824/1009 +f 5317/7804/1011 5319/7806/1016 5336/7825/1013 +f 5321/7809/1015 5338/7837/1018 5336/7827/1013 +f 5322/7810/1017 5339/7843/1020 5338/7828/1018 +f 5324/7812/1019 5340/7847/1022 5339/7829/1020 +f 5312/7799/1021 5341/7851/1023 5340/7830/1022 +f 5314/7801/994 5326/7855/993 5341/7831/1023 +f 5248/7862/1024 5247/7865/1027 5343/7863/1025 +f 5247/7865/1027 5249/7868/1029 5345/7866/1028 +f 5249/7868/1029 5246/7871/1031 5346/7869/1030 +f 5246/7871/1031 5250/7875/1034 5347/7872/1032 +f 5309/7874/1033 5347/8159/1032 5250/7875/1034 +f 5245/7877/1036 5248/7862/1024 5344/7878/1026 +f 5243/7880/1038 5245/7877/1036 5348/7881/1037 +f 5350/7883/1040 5244/8160/1177 5243/7880/1038 +f 5350/7883/1040 5349/7884/1039 5351/7885/1041 +f 5348/7881/1037 5353/8161/1043 5351/7887/1041 +f 5344/7878/1026 5214/8162/1178 5353/7888/1043 +f 5345/7866/1028 5213/8163/1045 5215/7889/1044 +f 5215/7890/1044 5214/8164/1178 5344/7864/1026 +f 5346/7869/1030 5354/8165/1046 5213/7891/1045 +f 5347/7872/1032 5355/8166/1047 5354/7892/1046 +f 5355/7893/1047 5347/8159/1032 5309/7874/1033 +f 5357/7895/984 5366/7918/1063 5358/7896/1049 +f 5356/7897/1050 5358/7896/1049 5359/7898/1051 +f 5352/7900/1057 5210/7693/1056 5212/7695/990 +f 5214/7902/987 5365/7913/1062 5361/7903/1053 +f 5353/7904/1054 5361/7903/1053 5362/7905/1055 +f 5351/7906/979 5362/7905/1055 5210/7693/1056 +f 5355/7899/982 5359/7898/1051 5363/7907/1058 +f 5354/7908/1059 5363/7907/1058 5364/7909/1060 +f 5234/7923/985 5282/7921/985 5350/7920/1064 +f 5204/7927/976 5235/7926/978 5309/7794/974 +f 5279/7928/991 5202/7930/991 5204/7927/976 +f 5278/7929/982 5208/7932/982 5202/7930/991 +f 5280/7931/981 5206/7934/981 5208/7932/982 +f 5308/7933/984 5217/8108/984 5206/7934/981 +f 5367/7937/1069 5240/7940/990 5226/7938/990 +f 5242/7941/980 5225/7943/980 5226/7938/990 +f 5276/7942/979 5228/7945/979 5225/7943/980 +f 5277/7944/983 5230/7946/983 5228/7945/979 +f 5282/7921/985 5234/7923/985 5230/7946/983 +f 5368/7947/1071 5260/8167/1071 5253/7948/1072 +f 5259/7950/1073 5258/7957/1074 5370/7951/1074 +f 5255/7953/1075 5257/7956/1076 5372/7954/1076 +f 5257/7956/1076 5259/7950/1073 5371/7952/1073 +f 5258/7957/1074 5260/8167/1071 5368/7947/1071 +f 5374/7958/979 5270/7980/979 5272/7959/1054 +f 5376/7961/988 5267/7981/988 5269/7962/1077 +f 5378/7964/982 5273/7982/982 5275/7965/1050 +f 5375/7960/1054 5272/7959/1054 5265/7967/1078 +f 5381/7969/977 5264/8168/977 5266/7970/1079 +f 5377/7963/1077 5269/7962/1077 5271/7972/1052 +f 5379/7966/1050 5275/7965/1050 5268/7974/1080 +f 5380/7968/1078 5265/7967/1078 5264/7976/977 +f 5382/7971/1079 5266/7970/1079 5274/7978/1059 +f 5383/7973/1052 5271/7972/1052 5270/7980/979 +f 5384/7975/1080 5268/7974/1080 5267/7981/988 +f 5385/7979/1059 5274/7978/1059 5273/7982/982 +f 5374/7958/1081 5375/7960/1082 5386/7983/1082 +f 5375/7960/1082 5380/7968/1083 5388/7985/1083 +f 5380/7968/1083 5381/7977/1084 5389/7986/1084 +f 5381/7969/1084 5382/7971/1085 5390/7987/1085 +f 5382/7971/1085 5385/7979/1086 5391/7989/1086 +f 5385/7979/1086 5378/7964/1087 5392/7990/1087 +f 5378/7964/1087 5379/7966/1088 5393/7991/1088 +f 5379/7966/1088 5384/7975/1089 5394/7992/1089 +f 5384/7975/1089 5376/7961/1090 5395/7993/1090 +f 5395/7993/1090 5376/7961/1090 5377/7963/1091 +f 5377/7963/1091 5383/7973/1092 5397/7995/1092 +f 5383/7973/1092 5374/7958/1081 5387/7984/1081 +f 5253/7948/1072 5252/8169/1093 5398/7996/1093 +f 5252/7997/1093 5254/8000/1094 5399/7998/1094 +f 5254/8000/1094 5262/8002/1095 5400/8001/1095 +f 5262/8002/1095 5261/8004/1096 5401/8003/1096 +f 5261/8004/1096 5263/8006/1097 5402/8005/1097 +f 5263/8006/1097 5256/8008/1098 5403/8007/1098 +f 5256/8008/1098 5255/7953/1075 5373/7955/1075 +f 5404/8013/1100 5284/7767/1099 5283/7766/1102 +f 5365/7913/1062 5214/7902/987 5213/7910/978 +f 5293/8016/1105 5292/8019/1108 5406/8017/1106 +f 5292/8019/1108 5294/8022/1110 5408/8020/1109 +f 5294/8022/1110 5291/8025/1112 5409/8023/1111 +f 5291/8025/1112 5295/8029/1115 5410/8026/1113 +f 5367/8028/1114 5410/8170/1113 5295/8029/1115 +f 5290/8031/1117 5293/8016/1105 5407/8032/1107 +f 5288/8034/1119 5290/8031/1117 5411/8035/1118 +f 5413/8037/1121 5289/8171/1179 5288/8034/1119 +f 5413/8037/1121 5412/8038/1120 5414/8039/1122 +f 5411/8035/1118 5416/8172/1124 5414/8041/1122 +f 5407/8032/1107 5494/8173/1180 5416/8042/1124 +f 5408/8020/1109 5418/8174/1126 5417/8043/1125 +f 5417/8044/1125 5494/8175/1180 5407/8018/1107 +f 5409/8023/1111 5419/8176/1127 5418/8045/1126 +f 5410/8026/1113 5420/8177/1128 5419/8046/1127 +f 5420/8047/1128 5410/8170/1113 5367/8028/1114 +f 5422/8049/1130 5434/8064/1143 5423/8050/1131 +f 5423/8050/1131 5434/8064/1143 5425/8052/1133 +f 5430/8057/1138 5459/8178/1138 5422/8058/1139 +f 5429/8056/1137 5428/8179/1136 5425/8063/1133 +f 5443/8080/1097 5304/8180/1097 5297/8081/1098 +f 5445/8083/1095 5303/8181/1095 5302/8084/1096 +f 5299/8086/1093 5301/8089/1094 5447/8087/1094 +f 5301/8089/1094 5303/8181/1095 5445/8083/1095 +f 5302/8084/1096 5304/8180/1097 5443/8080/1097 +f 5297/8081/1098 5296/8091/1075 5449/8090/1075 +f 5296/8091/1075 5298/8093/1076 5450/8092/1076 +f 5298/8093/1076 5306/8182/1073 5451/8094/1073 +f 5451/8094/1073 5306/8182/1073 5305/8095/1074 +f 5305/8095/1074 5307/8098/1071 5453/8097/1071 +f 5307/8098/1071 5300/8100/1072 5454/8099/1072 +f 5300/8100/1072 5299/8183/1093 5448/8101/1093 +f 5455/8103/1154 5423/8050/1131 5426/8104/1134 +f 5217/8108/984 5308/7933/984 5413/8106/1156 +f 5455/8103/1154 5461/8116/1162 5457/8110/982 +f 5424/8051/1132 5423/8050/1131 5455/8103/1154 +f 5458/8112/979 5431/8060/1140 5429/8056/1137 +f 5429/8056/1137 5434/8064/1143 5422/8049/1130 +f 5432/8119/1054 5433/8184/985 5442/8078/1153 +f 5427/8120/979 5432/8119/1054 5441/8076/1152 +f 5428/8121/1052 5427/8120/979 5440/8074/1151 +f 5437/8069/1148 5426/8185/986 5425/8122/989 +f 5460/8123/982 5456/8128/1050 5436/8067/1147 +f 5462/8124/1059 5460/8123/982 5435/8065/1145 +f 5463/8125/976 5462/8124/1059 5285/7768/1144 +f 5458/8126/971 5459/8178/1138 5430/8057/1138 +f 5425/8122/989 5428/8121/1052 5439/8072/1150 +f 5456/8128/1050 5426/8185/986 5437/8069/1148 +f 5464/8129/979 5478/8143/979 5465/8130/983 +f 5467/8132/1165 5495/8186/1165 5468/8133/980 +f 5470/8135/982 5481/8146/982 5471/8136/981 +f 5473/8138/1166 5496/8187/1166 5474/8139/991 +f 5466/8131/983 5465/8130/983 5476/8141/1167 +f 5469/8134/980 5468/8133/980 5478/8143/979 +f 5472/8137/981 5471/8136/981 5479/8144/1168 +f 5475/8140/991 5474/8139/991 5481/8146/982 +f 5482/8147/1169 5497/8188/1169 5483/8148/1170 +f 5485/8150/1171 5497/8188/1169 5482/8147/1169 +f 5487/8152/1172 5498/8189/1172 5485/8150/1171 +f 5488/8153/1173 5499/8190/1173 5489/8154/1174 +f 5491/8156/1175 5499/8190/1173 5488/8153/1173 +f 5493/8158/1176 5500/8191/1176 5491/8156/1175 l 5502 5421 l 5415 5501 diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_large.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_large.png new file mode 100644 index 0000000000000000000000000000000000000000..d0597322ccae83e4812e50462598d6dab1bd8153 GIT binary patch literal 3064 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 UIYC#yWVcddV`)cvx|e+AAKQLPF8}}l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret.png deleted file mode 100644 index d51b92ff1ff76a0e281c873d5227d7803558d5a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2081 zcmb`IdsNd$7RP_T@FRqm0!HK&0*xSO1l=HL2qgvC6a=IYJ!l)J#_(i3tAopErcqU3fS6?zE(lmyNPKcU9w z&5nk!pApeW53gA7&-EjqFP7UJX!?X8?K#TUeHqA$+Z%2L?kF&Pil=8!s6WjJdCJ+FtwVt+W2{1^`!Rd*xC&)zQ?o^5>cNTKYd7VSGx z%=!*!$YLwJ5~&B6OVyc$^R24My}gHXnOC}Q(t(VBe+;$FPhaot?Uk&p`K`}>vSNK5 zbj64ZQrd8o#7^$lCcN<*>1|;YMjNmgsSOAnunyyU)m~TI{5mw@QFTZJ?^o>=WE79| z#0KOJEemyd8mQhRngB4cR7Bh1>zC7?@42zVQPQ@sAm_RV+?x#?J=BWIsGE9!}~eO}TA31h?g| z$%kZPo)2Kdm;p`HwW?G$S;5VLmj4EvufXx=myFedV1?uwuU8o8S-YmRFVYam2vkv9x}&dw7|=YKB0p2q6srD#IDSx)6f~e&%6V~*Ih3S| zT$bM}hWSgY?ygecYoZ$EibmrXf?}Xkd(}GTx++qR?5lxvDrQlGE`N7xrWlh`?}<>< zqC3&O_-yu${bnWQZ1RE1-5XJv{o;bFE!&LA%A+yRcV*v(<1ySA?(t*Ow{afsyU`=h zo+>mI;WVJ3K|eSv21?5LZ9+vTtB~m%GEX6|cqhpBpUhiaYf4Cq>p3!LNb%U?bA}Ey zyqfZm^!TOb2$qk8J0pKfmg^?5@SX%uy3oaoV)Y#dcXWsX*s$A6C&&M^{P1isJ!RR=QzMZcwZiUi>@H;!*XjkDrSko{_k$4vqvY6HBu`sW z)aMs#XW>J781lSUkyl<8C*n%$W3p*Ine3GlZ@}9JvMnRRGKZNgEN709XeH4+*-*gq zP;0NsH$1ak!KeS2*N4vmEAGxuj=n5Na9u6`{*>6XaEyIL29;Blr*ORQeQM+!WA6KFs&TfE~yaE zRlxPWZ)1TuZKqWIM6YCkUgHd;Wh|UwuLfX8C$H^X9$SV4t#~fT!Y$fTro9iT9`5XJuC6_{Cw{CLXV?$8B3~ z@<%kS#}N^;xoq-UXf7BLMd-<~WB!`$OFEbFVB@pA)MzL<@G=BDBwr})*EC~k&#kbU z%b#hU>@jHxL+0QtP%k_gjv?xTS#8rM~0T_XyRauO z+X!{S#QSqPvKJ%mVT0bv*3r`)dwX6+job`ooBRF6S2 zv_AK85fyZ(5)r!Glqf@6#D`DzpSUYgIamsX6Fmd|Z|Z-b{$W87p+fUsKP)uBFw+L! z?w1p<_)k#FyNY3QoQQ~t<~4*Gs- zV5?w%cZTDEdx$#Qdx*(*F{*d9OA1Jgn^~J!?JqW#mL_sl+tdhfd)3ia>kGI&EOj2q pu$8&uHm3NPyZUog|6PL}HWaiv&Fkp?_?n*=Iy<=^yzM|s`U&|{TDbrK diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.questionmark.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.questionmark.png new file mode 100644 index 0000000000000000000000000000000000000000..72b1a1cee453d88e77a26585ba3a46caba15e1dc GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf|%UHf`s;N>IxS09=`+1g{-{4pS3j3^P6OCFNu6tq-1^+r6a!szfdTgL=N&RGijDk~rGI&PR4oBqCUU5gsi z^T1sDHkO%JCVx8+pB}Mc(v8V?Eakt zG3V{vy3>YcFS%uy=E=jFl0ORy#WH z*_B2ICe3Ecqt_Y_+&j4BgVoK8St%!#-@lGHfBDAajdefd&dy&l(Wv{wy*>R;XU^Qa zK_~lEdzs9N@`M)(4m?apz{Hb{Jv%Lpjiv9`gw?m#bxdpE)?R$~%rcu7Ze>ZXx%Ks> zPs00u+<33O>(s}z-p9RXa@MC_X6tZlkYIrjoqfz@t%ZU2y`^@4dp*PbpSAv1TOF?k ziAv6b>`(tSl_gVmKb<@CuVnQ0nc@A$8jMK-3T%u?PjVaPEIzgM{n5X1ua`khI+^_Z zz5bdl!rC==MK|u&vX!0cYzYJk_^JUKA489k5xCf0y7}*3kYxuilG`NiT8| z&tQgl1MHV8-<$S)*PpXG{*dM7o}G-fh1*$vJnNKP`=5C&2WttZj!@OZ=?%V2T`eio zn1Yx(TU7X}I2DAkX6h4v&k82%-Efon^63VnT8xmSxX8%D1QW zQMsCZQKojphcBm8Bsw}ziu>*5KCD*%_qa|j@8;BMgPA@V+-3^@qfSD*XJE| zpPqVe=Y1xEng>-{xP4_l>eo_YVv?+ck+`y#y=SHDUzoBea${ot~H<;yn&zt`DwaMhL% z$Fx>0&@#i1G|~A>)QX{>-oQa^8Zh2wJ#5+$IJYmy6x{)ri$Zd$`*170aI}H zYK7;s;&gV-yO?prH;Oj^n&T09AHiBoVQM#kVIqr<9E{}%d*5@@7MhNbuzU= gUPu*EV4UIKc_90}Xl0xNuoz?TboFyt=akR{09W80DF6Tf literal 1238 zcmeAS@N?(olHy`uVBq!ia0vp^2|&DogAGW2Se7jgq*#ibJVQ8upoSx*1IX?5ba4!+ znDch7ZQf%yiMDttn}$YP$A$wOK`*5W8Mf<%xUh5ZT+cMw)2OHuw7P?9>g+?Iuhwpl zSy3dLz<56)NaL1iCSSeFsr6x1^Nz{&dI;V>{PS_a2_MdXVLdBtJa+|7Gkxl8u6KvM z;GMz&9;P#3;>pUMsZA=Gzy9BU_1u8(q|k=2iEq-(o;uoZiawkD`}c0+{Z+@7+ugqy z?l(p1xb)1DOPey8Av(d@RgN$HmR&)z=w^)jf~$>8hnuWOa8u3R%)(0V23 zO#Ov()@|dw`lo#AmjhZh1~v50Xl{@{DSj?wi{!ZxNh79q~&9TKVy9yexx zOgr+dle^?7XRM_yLl3gw5P?K7t7p4g&(?(MLc>$Z>=h*k@8zsspvb85qxr`*wl~5a zP4+X2l<%l7V5t|0``)yRW!i&&x4O{pZCw`x?gx12Z@VdTFj`|@`lrAA23_+-79mB z?qBC0KmTPOpKfm$e}P36mj;CcKK~v*USjt6@bNlpuiAQ}mHXYkO!c4t>+gk5M^1xg z24fB+;_|MbfB*i~UEsH|vEjM(Z_13y71^-bZ`$e9H^2W+X#Rh1=4(B+srehULiTO!(t6== zW$w?Jbv0M@f>>o6)*YPwg0=;dA(s)@ zH;1<_C|@||-WHoF-@HE;Ta|yU&yorF6X_QW%QDlaPk)!Zp=dYfEUg;f`(N%J{2d`x z(&l>1VgbK?^ZSOl2}`C19=bW5A^n4@W_?}VHn{_aA2vxvt$zObhrF|9WQ@D$e~(`~ z?c(1%uRLqwaog|M!^i%Jg`qJK)Hh^H*wPsK#>n46AkSx4S?kKFb%oq@BI3{_q~KpknZJ^>bP0l+XkK!lNU^ diff --git a/src/main/resources/assets/hbm/textures/models/missileEndo.png b/src/main/resources/assets/hbm/textures/models/missileEndo.png deleted file mode 100644 index df6d25975086c28c1875c83a0b59eeb111d12dd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9979 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 From a57a284d1cb7e509a836fd66339112505a217d88 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Feb 2024 20:47:34 +0100 Subject: [PATCH 171/376] why didn't it do that to begin with? --- .../hbm/entity/effect/EntityFalloutRain.java | 71 ++++++++++--------- .../explosion/ExplosionNukeRayBatched.java | 2 +- 2 files changed, 39 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 5ba2952f4..6c589034a 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -47,42 +47,25 @@ public class EntityFalloutRain extends Entity { if(!worldObj.isRemote) { + long start = System.currentTimeMillis(); + if(firstTick) { - if (chunksToProcess.isEmpty() && outerChunksToProcess.isEmpty()) gatherChunks(); + if(chunksToProcess.isEmpty() && outerChunksToProcess.isEmpty()) gatherChunks(); firstTick = false; } if(tickDelay == 0) { tickDelay = BombConfig.fDelay; - if (!chunksToProcess.isEmpty()) { - long chunkPos = chunksToProcess.remove(chunksToProcess.size() - 1); // Just so it doesn't shift the whole list every time - int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); - int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); - boolean biomeModified = false; - for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { - double percent = Math.hypot(x - posX, z - posZ) * 100 / getScale(); - stomp(x, z, percent); - BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z)); - if(biome != null) { - WorldUtil.setBiome(worldObj, x, z, biome); - biomeModified = true; - } - } - } - if(biomeModified) WorldUtil.syncBiomeChange(worldObj, chunkPosX << 4, chunkPosZ << 4); - - } else if (!outerChunksToProcess.isEmpty()) { - long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); - int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); - int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); - boolean biomeModified = false; - for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { - double distance = Math.hypot(x - posX, z - posZ); - if(distance <= getScale()) { - double percent = distance * 100 / getScale(); + while(System.currentTimeMillis() < start + BombConfig.mk5) { + if(!chunksToProcess.isEmpty()) { + long chunkPos = chunksToProcess.remove(chunksToProcess.size() - 1); // Just so it doesn't shift the whole list every time + int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); + int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); + boolean biomeModified = false; + for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { + double percent = Math.hypot(x - posX, z - posZ) * 100 / getScale(); stomp(x, z, percent); BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z)); if(biome != null) { @@ -91,11 +74,33 @@ public class EntityFalloutRain extends Entity { } } } + if(biomeModified) WorldUtil.syncBiomeChange(worldObj, chunkPosX << 4, chunkPosZ << 4); + + } else if (!outerChunksToProcess.isEmpty()) { + long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); + int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); + int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); + boolean biomeModified = false; + for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { + double distance = Math.hypot(x - posX, z - posZ); + if(distance <= getScale()) { + double percent = distance * 100 / getScale(); + stomp(x, z, percent); + BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z)); + if(biome != null) { + WorldUtil.setBiome(worldObj, x, z, biome); + biomeModified = true; + } + } + } + } + if(biomeModified) WorldUtil.syncBiomeChange(worldObj, chunkPosX << 4, chunkPosZ << 4); + + } else { + setDead(); + break; } - if(biomeModified) WorldUtil.syncBiomeChange(worldObj, chunkPosX << 4, chunkPosZ << 4); - - } else { - setDead(); } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index 8f075876c..dd843d93e 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -81,7 +81,7 @@ public class ExplosionNukeRayBatched { int amountProcessed = 0; - while (this.gspNumMax >= this.gspNum){ + while(this.gspNumMax >= this.gspNum){ // Get Cartesian coordinates for spherical coordinates Vec3 vec = this.getSpherical2cartesian(); From 9e58492165bfd8c78bd3d29a8ebd721b7304ca35 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Feb 2024 20:58:32 +0100 Subject: [PATCH 172/376] yeah sure why not --- changelog | 4 +++- src/main/java/com/hbm/config/FalloutConfigJSON.java | 8 +++++++- .../java/com/hbm/entity/effect/EntityFalloutRain.java | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/changelog b/changelog index 4e0725dbb..eb4e10426 100644 --- a/changelog +++ b/changelog @@ -34,7 +34,9 @@ * PWRs on the edge of unloaded chunks now additionally reset their internal heat value to further reduce the time until they can potentially melt down * Removed the assembly recipe for the radial engine since it will be retired soon * Removed the endo and exothermal missiles -* Doomsday missiles are no longer laggy cluster missiles, instead they are now near-identical to thermonuclear missiles but with an added fallout radius of 100 +* Doomsday missiles are no longer laggy cluster missiles, instead they are now near-identical to thermonuclear missiles but with an added fallout radius of 100# +* Fallout rain now uses the same variable length code that the MK5 uses for optimal tick utilization, making it a lot faster +* Lighter sellafite variants should no longer replace darker ones in overlapping craters, making bombed-out landscapes look more natural ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index b962781da..9d0a69c52 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -197,7 +197,7 @@ public class FalloutConfigJSON { public FalloutEntry max(double max) { this.maxDist = max; return this; } public FalloutEntry sol(boolean solid) { this.isSolid = solid; return this; } - public boolean eval(World world, int x, int y, int z, Block b, int meta, double dist) { + public boolean eval(World world, int x, int y, int z, Block b, int meta, double dist, Block originalBlock, int originalMeta) { if(matchesBlock != null && b != matchesBlock) return false; if(matchesMaterial != null && b.getMaterial() != matchesMaterial) return false; @@ -210,6 +210,9 @@ public class FalloutConfigJSON { if(primaryBlocks == null) return false; MetaBlock block = chooseRandomOutcome(primaryBlocks); + if(block.block == ModBlocks.sellafield_slaked && originalBlock == ModBlocks.sellafield_slaked) { + if(block.meta <= originalMeta) return false; + } world.setBlock(x, y, z, block.block, block.meta, 3); return true; @@ -218,6 +221,9 @@ public class FalloutConfigJSON { if(secondaryBlocks == null) return false; MetaBlock block = chooseRandomOutcome(secondaryBlocks); + if(block.block == ModBlocks.sellafield_slaked && originalBlock == ModBlocks.sellafield_slaked) { + if(block.meta <= originalMeta) return false; + } world.setBlock(x, y, z, block.block, block.meta, 3); return true; } diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 6c589034a..abddcb261 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -199,7 +199,7 @@ public class EntityFalloutRain extends Entity { for(FalloutEntry entry : FalloutConfigJSON.entries) { - if(entry.eval(worldObj, x, y, z, b, meta, dist)) { + if(entry.eval(worldObj, x, y, z, b, meta, dist, b, meta)) { if(entry.isSolid()) { depth++; } From 7f689bfc3757b8947315beb09fbf7b9844e186e6 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 11 Feb 2024 13:06:05 -0800 Subject: [PATCH 173/376] minor changes, mapgen --- .../java/com/hbm/items/tool/ItemWandD.java | 31 +--------------- .../com/hbm/world/gen/MapGenNTMFeatures.java | 37 +++++++++++-------- .../world/gen/component/CivilianFeatures.java | 29 +++++++++------ .../world/gen/component/OfficeFeatures.java | 8 ++-- .../hbm/world/gen/component/RuinFeatures.java | 16 ++++---- 5 files changed, 53 insertions(+), 68 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index d41af6091..f3bd325b1 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,21 +2,13 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; -import com.hbm.util.BobMathUtil; -import com.hbm.util.TrackerUtil; -import com.hbm.world.gen.component.CivilianFeatures.RuralHouse1; -import com.hbm.world.gen.component.Component; -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -30,17 +22,6 @@ public class ItemWandD extends Item { if(pos != null) { - /*for(int x = 0; x <= 14; x++) { - for(int y = 0; y <= 8; y++) { - for(int z = 0; z <= 14; z++) { - System.out.print("a"); - Block block = world.getBlock(pos.blockX + x, pos.blockY + y, pos.blockZ + z); - int meta = world.getBlockMetadata(pos.blockX + x, pos.blockY + y, pos.blockZ + z); - world.setBlock(pos.blockX + x, pos.blockY + y, pos.blockZ + z + 32, block, meta, 2); - } - } - }*/ - /*ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(ModBlocks.block_slag)).setNoDrop()); @@ -51,21 +32,13 @@ public class ItemWandD extends Item { //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); - int i = pos.blockX >> 4; + /*int i = pos.blockX >> 4; int j = pos.blockZ >> 4; i = (i << 4) + 8; j = (j << 4) + 8; Component comp = new RuralHouse1(world.rand, i, j); - comp.addComponentParts(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32)); - - /*int i = pos.blockX >> 4; - int j = pos.blockZ >> 4; - - MapGenNTMFeatures.Start start = new MapGenNTMFeatures.Start(world, world.rand, i, j); - i = (i << 4) + 8; - j = (j << 4) + 8; - start.generateStructure(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32)); + comp.addComponentParts(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32));*/ /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index dc5487eb3..018da9c7f 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -13,6 +13,7 @@ import com.hbm.world.gen.component.CivilianFeatures.NTMHouse2; import com.hbm.world.gen.component.CivilianFeatures.NTMLab1; import com.hbm.world.gen.component.CivilianFeatures.NTMLab2; import com.hbm.world.gen.component.CivilianFeatures.NTMWorkshop1; +import com.hbm.world.gen.component.CivilianFeatures.RuralHouse1; import com.hbm.world.gen.component.OfficeFeatures.LargeOffice; import com.hbm.world.gen.component.OfficeFeatures.LargeOfficeCorner; import com.hbm.world.gen.component.RuinFeatures.NTMRuin1; @@ -111,8 +112,10 @@ public class MapGenNTMFeatures extends MapGenStructure { public Start(World world, Random rand, int chunkX, int chunkZ) { super(chunkX, chunkZ); - BiomeGenBase biome = world.getBiomeGenForCoords(chunkX * 16 + 8, chunkZ * 16 + 8); //Only gets the biome in the corner of the chunk. - final int posY = 64; // Terrain *does not exist* at this stage - at least, for vanilla. Here it has to be called after, but better safe than sorry. + int i = (chunkX << 4) + 8; + int j = (chunkZ << 4) + 8; + + BiomeGenBase biome = world.getBiomeGenForCoords(i, j); //Only gets the biome in the corner of the chunk. /* * Probably want to use nextInt() to increase the structures of rarity here. As a fallback, you could have generic stone brick/useless block ruins that will always be chosen if the @@ -124,53 +127,57 @@ public class MapGenNTMFeatures extends MapGenStructure { if(rand.nextInt(3) == 0) { //Empty Ruin Structures switch(rand.nextInt(4)) { case 0: - NTMRuin1 ruin1 = new NTMRuin1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin1 ruin1 = new NTMRuin1(rand, i, j); this.components.add(ruin1); break; case 1: - NTMRuin2 ruin2 = new NTMRuin2(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin2 ruin2 = new NTMRuin2(rand, i, j); this.components.add(ruin2); break; case 2: - NTMRuin3 ruin3 = new NTMRuin3(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin3 ruin3 = new NTMRuin3(rand, i, j); this.components.add(ruin3); break; case 3: - NTMRuin4 ruin4 = new NTMRuin4(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin4 ruin4 = new NTMRuin4(rand, i, j); this.components.add(ruin4); } } else if(biome.temperature >= 1.0 && biome.rainfall == 0 && !(biome instanceof BiomeGenMesa)) { //Desert & Savannah if(rand.nextBoolean()) { - NTMHouse1 house1 = new NTMHouse1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMHouse1 house1 = new NTMHouse1(rand, i, j); this.components.add(house1); } else { - NTMHouse2 house2 = new NTMHouse2(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMHouse2 house2 = new NTMHouse2(rand, i, j); this.components.add(house2); } } else if(biome.temperature >= 0.25 && biome.temperature <= 0.3 && biome.rainfall >= 0.6 && biome.rainfall <= 0.9 && rand.nextBoolean()) { //Taiga & Mega Taiga - NTMWorkshop1 workshop1 = new NTMWorkshop1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMWorkshop1 workshop1 = new NTMWorkshop1(rand, i, j); //TODO replace this this.components.add(workshop1); } else { //Everything else - switch(rand.nextInt(4)) { + switch(rand.nextInt(6)) { case 0: - NTMLab2 lab2 = new NTMLab2(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMLab2 lab2 = new NTMLab2(rand, i, j); //and these, too this.components.add(lab2); break; case 1: - NTMLab1 lab1 = new NTMLab1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMLab1 lab1 = new NTMLab1(rand, i, j); this.components.add(lab1); break; case 2: - LargeOffice office = new LargeOffice(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + LargeOffice office = new LargeOffice(rand, i, j); this.components.add(office); break; case 3: - LargeOfficeCorner officeCorner = new LargeOfficeCorner(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + LargeOfficeCorner officeCorner = new LargeOfficeCorner(rand, i, j); this.components.add(officeCorner); break; + case 4: + case 5: + RuralHouse1 ruralHouse = new RuralHouse1(rand, i, j); + this.components.add(ruralHouse); break; } } if(GeneralConfig.enableDebugMode) { - System.out.print("[Debug] StructureStart at " + (chunkX * 16 + 8) + ", " + posY + ", " + (chunkZ * 16 + 8) + "\n[Debug] Components: "); + System.out.print("[Debug] StructureStart at " + i + ", 64, " + j + "\n[Debug] Components: "); this.components.forEach((component) -> { System.out.print(MapGenStructureIO.func_143036_a((StructureComponent) component) + " "); }); diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index db31dd3cc..c6f3c67f4 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -44,8 +44,8 @@ public class CivilianFeatures { } /** Constructor for this feature; takes coordinates for bounding box */ - public NTMHouse1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 9, 4, 6); + public NTMHouse1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 9, 4, 6); this.hasPlacedChest = false; } @@ -141,8 +141,8 @@ public class CivilianFeatures { super(); } - public NTMHouse2(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 15, 5, 9); + public NTMHouse2(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 15, 5, 9); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -287,8 +287,8 @@ public class CivilianFeatures { } /** Constructor for this feature; takes coordinates for bounding box */ - public NTMLab1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 9, 4, 7); + public NTMLab1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 9, 4, 7); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -414,8 +414,8 @@ public class CivilianFeatures { super(); } - public NTMLab2(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 12, 11, 8); + public NTMLab2(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 12, 11, 8); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -588,8 +588,8 @@ public class CivilianFeatures { super(); } - public NTMWorkshop1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 10, 6, 8); + public NTMWorkshop1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 10, 6, 8); this.hasPlacedLoot = false; } @@ -730,7 +730,6 @@ public class CivilianFeatures { public static class RuralHouse1 extends Component { - public RuralHouse1() { super(); } @@ -746,6 +745,12 @@ public class CivilianFeatures { return false; } + //FillWithAir + fillWithAir(world, box, 9, 1, 3, 12, 4, 8); + fillWithAir(world, box, 5, 1, 2, 8, 3, 8); + fillWithAir(world, box, 2, 1, 5, 4, 3, 8); + fillWithAir(world, box, 2, 1, 10, 7, 3, 12); + //Foundations fillWithBlocks(world, box, 1, 0, 4, 4, 0, 4, ModBlocks.concrete_colored_ext); fillWithBlocks(world, box, 4, 0, 2, 4, 0, 3, ModBlocks.concrete_colored_ext); @@ -1067,7 +1072,7 @@ public class CivilianFeatures { placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 7, 2, 8, box); fillWithMetadataBlocks(world, box, 7, 3, 8, 9, 3, 8, Blocks.wooden_slab, 1); placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 4, 1, 5, box); //kitchen - placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, metaN, 3, 1, 5, box); + placeBlockAtCurrentPosition(world, rand.nextBoolean() ? ModBlocks.machine_electric_furnace_off : Blocks.furnace, metaN, 3, 1, 5, box); //idk why the meta is off between all these blocks and idc fillWithBlocks(world, box, 2, 1, 5, 2, 1, 6, Blocks.double_stone_slab); placeBlockAtCurrentPosition(world, Blocks.cauldron, 2, 2, 1, 7, box); placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 2, 1, 8, box); diff --git a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index 244c1c8f4..724323390 100644 --- a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -30,8 +30,8 @@ public class OfficeFeatures { super(); } - public LargeOffice(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 14, 5, 12); + public LargeOffice(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 14, 5, 12); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -231,8 +231,8 @@ public class OfficeFeatures { super(); } - public LargeOfficeCorner(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 11, 15, 14); + public LargeOfficeCorner(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 11, 15, 14); } @Override diff --git a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java index 914b01b7e..9204e7b0e 100644 --- a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java @@ -26,8 +26,8 @@ public class RuinFeatures { super(); } - public NTMRuin1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 8, 6, 10); + public NTMRuin1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 8, 6, 10); } @Override @@ -98,8 +98,8 @@ public class RuinFeatures { super(); } - public NTMRuin2(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 7, 5, 10); + public NTMRuin2(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 7, 5, 10); } @Override @@ -161,8 +161,8 @@ public class RuinFeatures { super(); } - public NTMRuin3(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 8, 3, 10); + public NTMRuin3(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 8, 3, 10); } @Override @@ -218,8 +218,8 @@ public class RuinFeatures { super(); } - public NTMRuin4(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 10, 2, 11); + public NTMRuin4(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 10, 2, 11); } @Override From 81de0478256bf3f614dae2b1cbca05bfe58c5024 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 11 Feb 2024 13:11:34 -0800 Subject: [PATCH 174/376] fixes --- src/main/java/com/hbm/inventory/gui/GUIBookLore.java | 4 ++-- src/main/java/com/hbm/items/tool/ItemWandD.java | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index 4ac298bd0..dc628427a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -102,13 +102,13 @@ public class GUIBookLore extends GuiScreen { if(argTag.hasNoTags()) text = I18nUtil.resolveKey(k + defacto); - else { //TODO consider caching the text per page + else { List args = new ArrayList(); int index = 1; String arg = argTag.getString("a1"); while(!arg.isEmpty()) { - args.add(I18nUtil.resolveKey(arg)); //TODO check if this works fine + args.add(arg); index++; arg = argTag.getString("a" + index); } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index f3bd325b1..b3fff506b 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,11 +2,13 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -68,7 +70,7 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - /*List del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50)); + List del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50)); if(!del.isEmpty()) { for(EntityNukeTorex torex : del) torex.setDead(); @@ -80,7 +82,6 @@ public class ItemWandD extends Item { IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); EntityTrackerEntry entry = (EntityTrackerEntry) map.lookup(torex.getEntityId()); entry.blocksDistanceThreshold = 1000;*/ - //TrackerUtil.setTrackingRange(world, torex, 1000); //world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, 150, pos.blockX, pos.blockY + 1, pos.blockZ)); //DungeonToolbox.generateBedrockOreWithChance(world, world.rand, pos.blockX, pos.blockZ, EnumBedrockOre.TITANIUM, new FluidStack(Fluids.SULFURIC_ACID, 500), 2, 1); From 787549f9d7d15d63cd032c119606ca92712d613d Mon Sep 17 00:00:00 2001 From: MartinTheDragon Date: Sun, 11 Feb 2024 23:13:09 +0100 Subject: [PATCH 175/376] Make fallout perimeters more interesting --- .../com/hbm/config/FalloutConfigJSON.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index 9d0a69c52..e2f67f3bc 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -1,13 +1,5 @@ package com.hbm.config; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - import com.google.common.collect.HashBiMap; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -19,12 +11,19 @@ import com.hbm.inventory.RecipesCommon.MetaBlock; import com.hbm.main.MainRegistry; import com.hbm.util.Compat; import com.hbm.util.Tuple.Triplet; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.world.World; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + public class FalloutConfigJSON { public static final List entries = new ArrayList(); @@ -166,6 +165,7 @@ public class FalloutConfigJSON { private double primaryChance = 1.0D; private double minDist = 0.0D; private double maxDist = 100.0D; + private double falloffStart = 0.9D; /** Whether the depth value should be decremented when this block is converted */ private boolean isSolid = false; @@ -180,6 +180,7 @@ public class FalloutConfigJSON { entry.sec(secondaryBlocks); entry.min(minDist); entry.max(maxDist); + entry.fo(falloffStart); entry.sol(isSolid); return entry; @@ -195,16 +196,18 @@ public class FalloutConfigJSON { public FalloutEntry c(double chance) { this.primaryChance = chance; return this; } public FalloutEntry min(double min) { this.minDist = min; return this; } public FalloutEntry max(double max) { this.maxDist = max; return this; } + public FalloutEntry fo(double falloffStart) { this.falloffStart = falloffStart; return this; } public FalloutEntry sol(boolean solid) { this.isSolid = solid; return this; } public boolean eval(World world, int x, int y, int z, Block b, int meta, double dist, Block originalBlock, int originalMeta) { - + + if(dist > maxDist || dist < minDist) return false; if(matchesBlock != null && b != matchesBlock) return false; if(matchesMaterial != null && b.getMaterial() != matchesMaterial) return false; if(matchesMeta != -1 && meta != matchesMeta) return false; if(matchesOpaque && !b.isOpaqueCube()) return false; - if(dist > maxDist || dist < minDist) return false; - + if(dist > maxDist * falloffStart && Math.abs(world.rand.nextGaussian()) < Math.pow((dist - maxDist * falloffStart) / (maxDist - maxDist * falloffStart), 2D) * 3D) return false; + if(primaryChance == 1D || rand.nextDouble() < primaryChance) { if(primaryBlocks == null) return false; @@ -274,7 +277,7 @@ public class FalloutConfigJSON { if(minDist != 0.0D) writer.name("minimumDistancePercent").value(minDist); if(maxDist != 100.0D) writer.name("maximumDistancePercent").value(maxDist); - + if(falloffStart != 0.9D) writer.name("falloffStartFactor").value(falloffStart); } private static FalloutEntry readEntry(JsonElement recipe) { @@ -296,6 +299,7 @@ public class FalloutConfigJSON { if(obj.has("minimumDistancePercent")) entry.min(obj.get("minimumDistancePercent").getAsDouble()); if(obj.has("maximumDistancePercent")) entry.max(obj.get("maximumDistancePercent").getAsDouble()); + if(obj.has("falloffStartFactor")) entry.fo(obj.get("falloffStartFactor").getAsDouble()); return entry; } From f9826d8f3f8fdee83cfe9e00eb22a45c2b4682bb Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 12 Feb 2024 15:37:33 +1100 Subject: [PATCH 176/376] Add the final three types of light, with models and texturing --- src/main/java/com/hbm/blocks/BlockEnums.java | 6 + src/main/java/com/hbm/blocks/ModBlocks.java | 12 +- .../com/hbm/blocks/machine/Spotlight.java | 122 +++- .../hbm/blocks/machine/SpotlightModular.java | 25 + src/main/java/com/hbm/main/ClientProxy.java | 1 + src/main/java/com/hbm/main/NEIConfig.java | 2 + .../java/com/hbm/main/ResourceManager.java | 5 +- .../com/hbm/render/block/RenderLight.java | 97 +++ .../java/com/hbm/render/util/ObjUtil.java | 31 +- .../assets/hbm/models/lights/cage_lamp.obj | 571 ++++++++++++++++++ .../assets/hbm/models/lights/flood_lamp.obj | 228 +++++++ .../hbm/models/lights/fluorescent_lamp.obj | 306 ++++++++++ .../assets/hbm/textures/blocks/cage_lamp.png | Bin 0 -> 2178 bytes .../assets/hbm/textures/blocks/flood_lamp.png | Bin 0 -> 1011 bytes .../hbm/textures/blocks/fluorescent_lamp.png | Bin 0 -> 806 bytes 15 files changed, 1395 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/SpotlightModular.java create mode 100644 src/main/java/com/hbm/render/block/RenderLight.java create mode 100644 src/main/resources/assets/hbm/models/lights/cage_lamp.obj create mode 100644 src/main/resources/assets/hbm/models/lights/flood_lamp.obj create mode 100644 src/main/resources/assets/hbm/models/lights/fluorescent_lamp.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/cage_lamp.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/flood_lamp.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp.png diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index 6bb64b079..d78b45671 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -58,4 +58,10 @@ public class BlockEnums { GREEN, STEEL } + + public static enum LightType { + INCANDESCENT, + FLUORESCENT, + HALOGEN + } } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b2d396730..b4d5d29e6 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -335,7 +335,9 @@ public class ModBlocks { public static Block lantern; public static Block lantern_behemoth; - public static Block spotlight; + public static Block spotlight_incandescent; + public static Block spotlight_fluoro; + public static Block spotlight_halogen; public static Block spotlight_beam; public static Block reinforced_stone; @@ -1563,7 +1565,9 @@ public class ModBlocks { lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(null).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); - spotlight = new Spotlight(Material.iron, 8).setBlockName("spotlight").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); + spotlight_incandescent = new Spotlight(Material.iron, 2, LightType.INCANDESCENT).setBlockName("spotlight_incandescent").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cage_lamp"); + spotlight_fluoro = new SpotlightModular(Material.iron, 8, LightType.FLUORESCENT).setBlockName("spotlight_fluoro").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":fluorescent_lamp"); + spotlight_halogen = new Spotlight(Material.iron, 32, LightType.HALOGEN).setBlockName("spotlight_halogen").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":flood_lamp"); spotlight_beam = new SpotlightBeam().setBlockName("spotlight_beam"); reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); @@ -2744,7 +2748,9 @@ public class ModBlocks { GameRegistry.registerBlock(lamp_demon, lamp_demon.getUnlocalizedName()); GameRegistry.registerBlock(lantern, lantern.getUnlocalizedName()); GameRegistry.registerBlock(lantern_behemoth, lantern_behemoth.getUnlocalizedName()); - GameRegistry.registerBlock(spotlight, spotlight.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_incandescent, spotlight_incandescent.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_fluoro, spotlight_fluoro.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_halogen, spotlight_halogen.getUnlocalizedName()); GameRegistry.registerBlock(spotlight_beam, spotlight_beam.getUnlocalizedName()); //Reinforced Blocks diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java index 12f12a57e..f722c7ff4 100644 --- a/src/main/java/com/hbm/blocks/machine/Spotlight.java +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -1,23 +1,101 @@ package com.hbm.blocks.machine; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.BlockEnums.LightType; +import com.hbm.main.ResourceManager; +import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; +import net.minecraft.block.BlockSlab; import net.minecraft.block.material.Material; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class Spotlight extends Block { public int beamLength; + public LightType type; - public Spotlight(Material mat, int beamLength) { + public Spotlight(Material mat, int beamLength, LightType type) { super(mat); setLightLevel(1.0F); this.beamLength = beamLength; + this.type = type; } + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + public WavefrontObject getModel() { + switch (type) { + case FLUORESCENT: return (WavefrontObject) ResourceManager.fluorescent_lamp; + case HALOGEN: return (WavefrontObject) ResourceManager.flood_lamp; + default: return (WavefrontObject) ResourceManager.cage_lamp; + } + } + + public String getPartName(int connectionCount) { + switch (type) { + case HALOGEN: return "FloodLamp"; + default: return "CageLamp"; + } + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) { + return null; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + ForgeDirection dir = getDirection(world, x, y, z); + float[] bounds = swizzleBounds(dir); + float[] offset = new float[] { 0.5F - dir.offsetX * (0.5F - bounds[0]), 0.5F - dir.offsetY * (0.5F - bounds[1]), 0.5F - dir.offsetZ * (0.5F - bounds[2]) }; + + setBlockBounds(offset[0] - bounds[0], offset[1] - bounds[1], offset[2] - bounds[2], offset[0] + bounds[0], offset[1] + bounds[1], offset[2] + bounds[2]); + } + + private float[] swizzleBounds(ForgeDirection dir) { + float[] bounds = getBounds(); + switch (dir) { + case EAST: + case WEST: + return new float[] { bounds[2], bounds[1], bounds[0] }; + case UP: + case DOWN: + return new float[] { bounds[1], bounds[2], bounds[0] }; + default: + return bounds; + } + } + + // Returns an xyz (half-)size for a given object type + private float[] getBounds() { + switch (type) { + case FLUORESCENT: return new float[] {0.5F, 0.5F, 0.1F}; + case HALOGEN: return new float[] {0.35F, 0.25F, 0.2F}; + default: return new float[] {0.25F, 0.2F, 0.15F}; + } + } + @Override public int onBlockPlaced(World world, int x, int y, int z, int side, float hx, float hy, float hz, int initData) { return side << 1; @@ -25,6 +103,7 @@ public class Spotlight extends Block { @Override public void onBlockAdded(World world, int x, int y, int z) { + if (world.isRemote) return; updateBeam(world, x, y, z); } @@ -43,22 +122,55 @@ public class Spotlight extends Block { public void onNeighborBlockChange(World world, int x, int y, int z, Block neighborBlock) { if (world.isRemote) return; if (neighborBlock instanceof SpotlightBeam) return; + + ForgeDirection dir = getDirection(world, x, y, z); + + if (!canPlace(world, x, y, z, dir)) { + dropBlockAsItem(world, x, y, z, 0, 0); + world.setBlockToAir(x, y, z); + return; + } + updateBeam(world, x, y, z); } + + @Override + public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { + if(!super.canPlaceBlockOnSide(world, x, y, z, side)) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(side); + + return canPlace(world, x, y, z, dir); + } - public void updateBeam(World world, int x, int y, int z) { - if (world.isRemote) return; + // BlockSlab doesn't actually properly return isSideSolid, + // probably because MOJANK thought this would only ever be used for torches, + // which can't be placed on ceilings... + private boolean canPlace(World world, int x, int y, int z, ForgeDirection dir) { + x -= dir.offsetX; + y -= dir.offsetY; + z -= dir.offsetZ; + Block block = world.getBlock(x, y, z); + if (block instanceof BlockSlab) { + int meta = world.getBlockMetadata(x, y, z); + return dir == ((meta & 8) == 8 ? ForgeDirection.UP : ForgeDirection.DOWN) || block.func_149730_j(); + } + + return block.isSideSolid(world, x, y, z, dir); + } + + private void updateBeam(World world, int x, int y, int z) { ForgeDirection dir = getDirection(world, x, y, z); propagateBeam(world, x, y, z, dir, beamLength); } - private ForgeDirection getDirection(World world, int x, int y, int z) { + public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z) { int metadata = world.getBlockMetadata(x, y, z); return getDirection(metadata); } - private ForgeDirection getDirection(int metadata) { + public ForgeDirection getDirection(int metadata) { return ForgeDirection.getOrientation(metadata >> 1); } diff --git a/src/main/java/com/hbm/blocks/machine/SpotlightModular.java b/src/main/java/com/hbm/blocks/machine/SpotlightModular.java new file mode 100644 index 000000000..c5244d242 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/SpotlightModular.java @@ -0,0 +1,25 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockEnums.LightType; + +import net.minecraft.block.material.Material; +import net.minecraft.world.IBlockAccess; + +public class SpotlightModular extends Spotlight { + + public SpotlightModular(Material mat, int beamLength, LightType type) { + super(mat, beamLength, type); + } + + @Override + public String getPartName(int connectionCount) { + if (connectionCount == 0) return "FluoroSingle"; + if (connectionCount == 1) return "FluoroCap"; + return "FluoroMid"; + } + + public boolean canConnectTo(IBlockAccess world, int x, int y, int z) { + return world.getBlock(x, y, z) == this; + } + +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 728f13789..10e30be35 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -852,6 +852,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderSplitter()); RenderingRegistry.registerBlockHandler(new RenderCapacitor()); RenderingRegistry.registerBlockHandler(new RenderPedestal()); + RenderingRegistry.registerBlockHandler(new RenderLight()); RenderingRegistry.registerBlockHandler(new RenderFoundryBasin()); RenderingRegistry.registerBlockHandler(new RenderFoundryMold()); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 11cdcbcb9..45c3fdb6e 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -130,6 +130,8 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.pink_slab)); API.hideItem(new ItemStack(ModBlocks.pink_double_slab)); API.hideItem(new ItemStack(ModBlocks.pink_stairs)); + + API.hideItem(new ItemStack(ModBlocks.spotlight_beam)); API.registerHighlightIdentifier(ModBlocks.ore_random, new IHighlightHandler() { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 89bf64e26..0c0b51f90 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -358,8 +358,11 @@ public class ResourceManager { public static WavefrontObjDisplayList silo_hatch = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch.obj"))); - //Lantern + //Lights public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); + public static final IModelCustom cage_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/cage_lamp.obj")); + public static final IModelCustom fluorescent_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/fluorescent_lamp.obj")); + public static final IModelCustom flood_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/flood_lamp.obj")); //Tesla Coil public static final IModelCustom tesla = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/tesla.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderLight.java b/src/main/java/com/hbm/render/block/RenderLight.java new file mode 100644 index 000000000..4c1ce369a --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderLight.java @@ -0,0 +1,97 @@ +package com.hbm.render.block; + +import com.hbm.blocks.machine.Spotlight; +import com.hbm.blocks.machine.SpotlightModular; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; + +public class RenderLight implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if (!(block instanceof Spotlight)) return true; + Spotlight spot = (Spotlight) block; + + Tessellator tessellator = Tessellator.instance; + ForgeDirection dir = spot.getDirection(world, x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float ox = 0.5F - dir.offsetX * 0.5F, oy = 0.5F - dir.offsetY * 0.5F, oz = 0.5F - dir.offsetZ * 0.5F; + float rot = ObjUtil.getYaw(dir); + float pitch = ObjUtil.getPitch(dir); + float roll = 0; + + int connectionCount = 0; + if (spot instanceof SpotlightModular) { + ForgeDirection connectionDirection = null; + SpotlightModular modular = (SpotlightModular) spot; + + // Searching through only adjacent blocks is simple, iterate through all directions ignoring the root and its opposite + // Once we have found any valid connection, we'll only connect in that one axis + for (ForgeDirection availableDir : ForgeDirection.VALID_DIRECTIONS) { + if (availableDir == dir || availableDir == dir.getOpposite()) continue; + if (modular.canConnectTo(world, x + availableDir.offsetX, y + availableDir.offsetY, z + availableDir.offsetZ)) { + connectionCount++; + connectionDirection = availableDir; + + break; + } + } + + if (connectionDirection != null) { + // Check if we're sandwiched between two lights + if (modular.canConnectTo(world, x - connectionDirection.offsetX, y - connectionDirection.offsetY, z - connectionDirection.offsetZ)) { + connectionCount++; + } + + roll = getRotation(connectionDirection, dir); + } + } + + tessellator.addTranslation(x + ox, y + oy, z + oz); + ObjUtil.renderPartWithIcon(spot.getModel(), spot.getPartName(connectionCount), block.getIcon(0, 0), tessellator, rot, pitch, roll, false); + tessellator.addTranslation(-x - ox, -y - oy, -z - oz); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return Spotlight.renderID; + } + + // This is very ad-hoc, which isn't ideal + private float getRotation(ForgeDirection dir, ForgeDirection axis) { + float flipX = axis == ForgeDirection.DOWN || axis == ForgeDirection.NORTH || axis == ForgeDirection.WEST ? -0.5F : 0.5F; + float addX = axis == ForgeDirection.NORTH || axis == ForgeDirection.SOUTH ? -0.5F : 0; + boolean flipNS = axis == ForgeDirection.WEST; + switch (dir) { + case NORTH: return flipNS ? (float)Math.PI : 0; + case SOUTH: return !flipNS ? (float)Math.PI : 0; + case EAST: return (float)Math.PI * (flipX + addX); + case WEST: return (float)Math.PI * (-flipX + addX); + case UP: return (float)Math.PI * -0.5F; + case DOWN: return (float)Math.PI * 0.5F; + default: return 0; + } + } + +} diff --git a/src/main/java/com/hbm/render/util/ObjUtil.java b/src/main/java/com/hbm/render/util/ObjUtil.java index 9385fa1e8..fd94f75bd 100644 --- a/src/main/java/com/hbm/render/util/ObjUtil.java +++ b/src/main/java/com/hbm/render/util/ObjUtil.java @@ -8,14 +8,19 @@ import net.minecraftforge.client.model.obj.GroupObject; import net.minecraftforge.client.model.obj.TextureCoordinate; import net.minecraftforge.client.model.obj.Vertex; import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; public class ObjUtil { public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes, float rot, boolean shadow) { - renderWithIcon(model, icon, tes, rot, 0, shadow); + renderWithIcon(model, icon, tes, rot, 0, 0, shadow); } public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes, float rot, float pitch, boolean shadow) { + renderWithIcon(model, icon, tes, rot, pitch, 0, shadow); + } + + public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes, float rot, float pitch, float roll, boolean shadow) { for(GroupObject go : model.groupObjects) { for(Face f : go.faces) { @@ -41,6 +46,7 @@ public class ObjUtil { Vertex v = f.vertices[i]; Vec3 vec = Vec3.createVectorHelper(v.x, v.y, v.z); + vec.rotateAroundX(roll); vec.rotateAroundZ(pitch); vec.rotateAroundY(rot); @@ -61,10 +67,14 @@ public class ObjUtil { } public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, boolean shadow) { - renderPartWithIcon(model, name, icon, tes, rot, 0, shadow); + renderPartWithIcon(model, name, icon, tes, rot, 0, 0, shadow); } public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, float pitch, boolean shadow) { + renderPartWithIcon(model, name, icon, tes, rot, pitch, 0, shadow); + } + + public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, float pitch, float roll, boolean shadow) { GroupObject go = null; @@ -108,6 +118,7 @@ public class ObjUtil { Vertex v = f.vertices[i]; Vec3 vec = Vec3.createVectorHelper(v.x, v.y, v.z); + vec.rotateAroundX(roll); vec.rotateAroundZ(pitch); vec.rotateAroundY(rot); @@ -148,4 +159,20 @@ public class ObjUtil { public static void clearColor() { hasColor = false; } + + // Both methods assume model is facing towards +X (EAST) + // Why not +Z (NORTH)? Pitch doesn't rotate as you would expect in that case using the (current) draw methods + public static float getPitch(ForgeDirection dir) { + if (dir == ForgeDirection.UP) return (float)Math.PI * -0.5F; + if (dir == ForgeDirection.DOWN) return (float)Math.PI * 0.5F; + return 0; + } + + public static float getYaw(ForgeDirection dir) { + if (dir == ForgeDirection.NORTH) return (float)Math.PI * 0.5f;; + if (dir == ForgeDirection.SOUTH) return (float)Math.PI * -0.5f; + if (dir == ForgeDirection.WEST) return (float)Math.PI; + return 0; + } + } diff --git a/src/main/resources/assets/hbm/models/lights/cage_lamp.obj b/src/main/resources/assets/hbm/models/lights/cage_lamp.obj new file mode 100644 index 000000000..74169d283 --- /dev/null +++ b/src/main/resources/assets/hbm/models/lights/cage_lamp.obj @@ -0,0 +1,571 @@ +# Blender 4.0.1 +# www.blender.org +o CageLamp +v 0.174699 0.050284 -0.170405 +v 0.174699 0.037785 -0.170405 +v 0.187198 0.050284 -0.175448 +v 0.187198 0.037785 -0.175448 +v -0.002109 0.145255 -0.201498 +v -0.002109 0.101109 -0.243600 +v -0.002109 -0.103152 -0.243600 +v -0.002109 -0.145255 -0.201498 +v 0.056171 0.061436 -0.200955 +v 0.056171 0.094421 -0.170760 +v 0.056171 -0.093758 -0.171142 +v 0.056171 -0.063790 -0.201110 +v -0.002109 0.103152 0.243600 +v -0.002109 0.145255 0.201498 +v -0.002109 -0.145255 0.201498 +v -0.002109 -0.103152 0.243600 +v 0.056171 0.094258 0.170780 +v 0.056171 0.064290 0.200748 +v 0.056171 -0.063790 0.200748 +v 0.056171 -0.093758 0.170780 +v 0.009739 0.097808 -0.169350 +v 0.009739 0.063030 -0.204128 +v 0.174699 0.050284 0.170405 +v 0.009739 -0.063030 -0.204128 +v 0.009739 -0.097808 -0.169350 +v 0.174699 0.037785 0.170405 +v 0.125944 0.063030 -0.204128 +v 0.124890 0.095332 -0.169350 +v 0.169823 0.063030 -0.169350 +v 0.125944 -0.097808 -0.169350 +v 0.125944 -0.063030 -0.204128 +v 0.169823 -0.063030 -0.169350 +v 0.009739 0.063030 0.204128 +v 0.009739 0.097808 0.169350 +v 0.187198 0.050284 0.175448 +v 0.009739 -0.097808 0.169350 +v 0.009739 -0.063030 0.204128 +v 0.187198 0.037785 0.175448 +v 0.125944 0.063030 0.204128 +v 0.169823 0.063030 0.169350 +v 0.125944 0.097808 0.169350 +v 0.169823 -0.063030 0.169350 +v 0.125944 -0.063030 0.204128 +v 0.125944 -0.097808 0.169350 +v 0.137281 0.037785 -0.222204 +v 0.131756 0.037785 -0.209752 +v 0.131756 0.050284 -0.209752 +v 0.131756 0.050284 0.209752 +v 0.131756 0.037785 0.209752 +v 0.137281 0.037785 0.222204 +v 0.137281 0.050284 0.222204 +v 0.137281 0.050284 -0.222204 +v 0.053429 0.037785 -0.229540 +v 0.052340 0.037785 -0.217088 +v 0.052340 0.050284 -0.217088 +v 0.052340 0.050284 0.217088 +v 0.052340 0.037785 0.217088 +v 0.053429 0.037785 0.229540 +v 0.053429 0.050284 0.229540 +v 0.053429 0.050284 -0.229540 +v 0.174699 -0.037801 -0.170405 +v 0.174699 -0.050300 -0.170405 +v 0.187198 -0.037801 -0.175448 +v 0.187198 -0.050300 -0.175448 +v 0.174699 -0.037801 0.170405 +v 0.174699 -0.050300 0.170405 +v 0.187198 -0.037801 0.175448 +v 0.187198 -0.050300 0.175448 +v 0.137281 -0.050300 -0.222204 +v 0.131756 -0.050300 -0.209752 +v 0.131756 -0.037801 -0.209752 +v 0.131756 -0.037801 0.209752 +v 0.131756 -0.050300 0.209752 +v 0.137281 -0.050300 0.222204 +v 0.137281 -0.037801 0.222204 +v 0.137281 -0.037801 -0.222204 +v 0.053429 -0.050300 -0.229540 +v 0.052340 -0.050300 -0.217088 +v 0.052340 -0.037801 -0.217088 +v 0.052340 -0.037801 0.217088 +v 0.052340 -0.050300 0.217088 +v 0.053429 -0.050300 0.229540 +v 0.053429 -0.037801 0.229540 +v 0.053429 -0.037801 -0.229540 +v 0.056203 -0.116057 -0.126340 +v 0.056203 0.116108 -0.126340 +v 0.056203 0.116108 -0.113840 +v 0.055114 0.106003 -0.113840 +v 0.055114 0.106003 -0.126340 +v 0.055114 -0.105546 -0.126340 +v 0.055114 -0.105546 -0.113840 +v 0.056203 -0.116057 -0.113840 +v 0.140055 -0.109785 -0.126340 +v 0.140055 0.111267 -0.126340 +v 0.140055 0.111267 -0.113840 +v 0.136242 0.100805 -0.113840 +v 0.136242 0.100805 -0.126340 +v 0.137912 -0.099557 -0.126340 +v 0.137912 -0.099557 -0.113840 +v 0.140055 -0.109785 -0.113840 +v 0.189972 0.072795 -0.113840 +v 0.189972 0.072795 -0.126340 +v 0.177473 0.064705 -0.113840 +v 0.177473 0.064705 -0.126340 +v 0.189972 -0.069577 -0.113840 +v 0.189972 -0.069577 -0.126340 +v 0.177473 -0.063223 -0.113840 +v 0.177473 -0.063223 -0.126340 +v 0.177473 -0.063223 0.113750 +v 0.177473 -0.063223 0.126250 +v 0.189972 -0.069577 0.113750 +v 0.189972 -0.069577 0.126250 +v 0.177473 0.064705 0.113750 +v 0.177473 0.064705 0.126250 +v 0.189972 0.072795 0.113750 +v 0.189972 0.072795 0.126250 +v 0.140055 -0.109785 0.126250 +v 0.137912 -0.099557 0.126250 +v 0.137912 -0.099557 0.113750 +v 0.136242 0.100805 0.113750 +v 0.136242 0.100805 0.126250 +v 0.140055 0.111267 0.126250 +v 0.140055 0.111267 0.113750 +v 0.140055 -0.109785 0.113750 +v 0.056203 -0.116057 0.126250 +v 0.055114 -0.105546 0.126250 +v 0.055114 -0.105546 0.113750 +v 0.055114 0.106003 0.113750 +v 0.055114 0.106003 0.126250 +v 0.056203 0.116108 0.126250 +v 0.056203 0.116108 0.113750 +v 0.056203 -0.116057 0.113750 +v 0.177473 -0.063223 -0.006231 +v 0.177473 -0.063223 0.006268 +v 0.189972 -0.069577 -0.006231 +v 0.189972 -0.069577 0.006268 +v 0.177473 0.064705 -0.006231 +v 0.177473 0.064705 0.006268 +v 0.189972 0.072795 -0.006231 +v 0.189972 0.072795 0.006268 +v 0.140055 -0.109785 0.006268 +v 0.137912 -0.099557 0.006268 +v 0.137912 -0.099557 -0.006231 +v 0.136242 0.100805 -0.006231 +v 0.136242 0.100805 0.006268 +v 0.140055 0.111267 0.006268 +v 0.140055 0.111267 -0.006231 +v 0.140055 -0.109785 -0.006231 +v 0.056203 -0.116057 0.006268 +v 0.055114 -0.105546 0.006268 +v 0.055114 -0.105546 -0.006231 +v 0.055114 0.106003 -0.006231 +v 0.055114 0.106003 0.006268 +v 0.056203 0.116108 0.006268 +v 0.056203 0.116108 -0.006231 +v 0.056203 -0.116057 -0.006231 +v 0.056171 -0.145255 0.201498 +v 0.056171 -0.103152 0.243600 +v 0.056171 0.145255 -0.201498 +v 0.056171 0.099913 -0.243600 +v 0.056171 0.103152 0.243600 +v 0.056171 0.145255 0.201498 +v 0.056171 -0.103152 -0.243600 +v 0.056171 -0.145255 -0.201498 +v -0.002109 0.145255 0.000000 +v 0.056171 0.145255 0.000000 +v 0.056171 0.094339 0.000010 +v -0.002109 -0.145255 0.000000 +v 0.056171 -0.145255 0.000000 +v 0.056171 -0.093758 -0.000181 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 0.6902 -0.7237 +vn -0.0000 0.7071 0.7071 +vn -0.0000 -0.7071 -0.7071 +vn 1.0000 -0.0000 -0.0000 +vn 0.4700 0.6538 -0.5930 +vn 0.4889 -0.6168 -0.6168 +vn -1.0000 -0.0000 -0.0000 +vn 0.4889 0.6168 0.6168 +vn 0.4889 -0.6168 0.6168 +vn 0.6212 -0.0000 0.7837 +vn 0.0152 0.7070 -0.7070 +vn 0.5837 0.8120 -0.0000 +vn 0.6212 -0.7837 -0.0000 +vn 0.6212 -0.0000 -0.7837 +vn 0.0215 0.9998 -0.0000 +vn 0.0872 -0.0000 -0.9962 +vn 0.6836 -0.0000 0.7298 +vn 0.6836 -0.0000 -0.7298 +vn -0.6756 -0.0000 0.7373 +vn -0.6756 -0.0000 -0.7373 +vn 0.0872 -0.0000 0.9962 +vn -0.0920 -0.0000 0.9958 +vn -0.0920 -0.0000 -0.9958 +vn -0.0639 -0.9980 -0.0000 +vn -0.0721 0.9974 -0.0000 +vn 0.0576 0.9983 -0.0000 +vn -0.6587 -0.7524 -0.0000 +vn -0.6764 0.7365 -0.0000 +vn 0.6273 -0.7788 -0.0000 +vn 0.6105 0.7921 -0.0000 +vn 0.0746 -0.9972 -0.0000 +vn 0.0140 0.6804 -0.7327 +vn -0.0000 0.7327 -0.6805 +vn 0.6211 0.7837 -0.0077 +vn -0.0000 1.0000 -0.0073 +vt 0.250000 0.625000 +vt 0.375000 0.562500 +vt 0.375000 0.625000 +vt 0.187500 0.562500 +vt 0.062500 0.625000 +vt 0.062500 0.562500 +vt 0.187500 0.625000 +vt 0.000286 0.562500 +vt 0.000000 0.625000 +vt 0.000000 0.562500 +vt 0.250000 0.562500 +vt 1.000000 0.250000 +vt 0.812500 0.750000 +vt 1.000000 0.750000 +vt 0.000000 0.687500 +vt 0.500000 0.750000 +vt 0.000000 0.750000 +vt 0.750000 0.812500 +vt 0.562500 1.000000 +vt 0.562500 0.812500 +vt 0.750000 0.250000 +vt 0.562500 0.750000 +vt 0.562500 0.250000 +vt 0.750000 0.000000 +vt 0.562500 0.187500 +vt 0.562500 0.000000 +vt 0.500000 0.687500 +vt 0.750000 0.937500 +vt 0.812500 0.937500 +vt 0.812500 1.000000 +vt 0.875000 0.937500 +vt 0.500000 0.625000 +vt 0.000000 0.750000 +vt 0.250000 0.687500 +vt 0.250000 0.750000 +vt 0.875000 0.812500 +vt 0.875000 0.750000 +vt 0.937500 0.812500 +vt 0.937500 1.000000 +vt 0.937500 0.937500 +vt 1.000000 0.937500 +vt 0.750000 0.750000 +vt 0.812500 0.250000 +vt 0.937500 0.750000 +vt 0.500000 0.250000 +vt 0.500000 0.812500 +vt 0.000000 0.812500 +vt 0.750000 0.187500 +vt 0.250000 0.812500 +vt 0.000000 0.687500 +vt 0.250000 0.937500 +vt 0.500000 1.000000 +vt 0.250000 1.000000 +vt 0.500000 0.875000 +vt 0.250000 0.875000 +vt 0.000000 1.000000 +vt 0.000000 0.937500 +vt 0.500000 0.937500 +vt 0.000000 0.875000 +vt 0.291985 0.089153 +vt 0.415266 0.073249 +vt 0.343988 0.001971 +vt 0.293149 0.410977 +vt 0.416463 0.420276 +vt 0.345186 0.497037 +vt 0.291985 0.407455 +vt 0.415266 0.422512 +vt 0.342719 0.356721 +vt 0.293796 0.092400 +vt 0.416463 0.076496 +vt 0.344530 0.143134 +vt 0.344267 0.355136 +vt 0.004061 0.497037 +vt 0.004044 0.410840 +vt 0.002863 0.001971 +vt 0.002557 0.089153 +vt 0.342719 0.139887 +vt 0.002863 0.493790 +vt 0.343988 0.493790 +vt 0.500000 0.562500 +vt 0.004061 0.005218 +vt 0.345186 0.005218 +vt 0.750000 1.000000 +vt 0.875000 1.000000 +vt -0.000000 0.687500 +vt 0.002880 0.407592 +vt 0.004367 0.092400 +s 0 +f 8/1/1 169/2/1 168/3/1 +f 161/4/2 16/5/2 158/6/2 +f 14/1/3 166/2/3 165/3/3 +f 7/7/4 160/6/4 163/4/4 +f 157/8/5 16/5/5 15/9/5 +f 159/10/6 6/5/6 5/9/6 +f 14/1/7 161/4/7 162/11/7 +f 8/1/8 163/4/8 164/11/8 +f 25/12/1 44/13/1 36/14/1 +f 1/15/3 35/16/3 3/17/3 +f 39/18/2 37/19/2 43/20/2 +f 29/21/9 42/22/9 32/23/9 +f 22/24/4 31/25/4 24/26/4 +f 2/17/1 38/27/1 26/16/1 +f 27/28/10 28/29/10 29/30/10 +f 30/29/11 31/31/11 32/30/11 +f 23/27/12 2/9/12 26/32/12 +f 1/33/3 52/34/3 47/35/3 +f 39/36/13 40/37/13 41/38/13 +f 42/39/14 43/40/14 44/41/14 +f 40/42/15 43/20/15 42/22/15 +f 28/29/16 22/42/16 21/13/16 +f 28/43/17 40/42/17 29/21/17 +f 44/41/5 37/44/5 36/14/5 +f 26/17/1 50/34/1 49/35/1 +f 30/45/18 42/22/18 44/16/18 +f 3/17/9 38/46/9 4/47/9 +f 34/39/7 39/36/7 41/38/7 +f 32/23/19 27/48/19 29/21/19 +f 25/13/8 31/31/8 30/29/8 +f 34/14/20 28/43/20 21/12/20 +f 45/49/21 60/17/21 52/35/21 +f 47/35/3 60/27/3 55/16/3 +f 35/17/22 50/49/22 38/47/22 +f 4/46/23 52/35/23 3/16/23 +f 1/27/24 46/1/24 2/32/24 +f 2/16/1 45/34/1 4/27/1 +f 26/9/25 48/34/25 23/15/25 +f 23/16/3 51/34/3 35/27/3 +f 51/35/26 58/46/26 50/49/26 +f 47/34/27 54/9/27 46/1/27 +f 48/35/3 59/50/3 51/34/3 +f 49/35/1 58/27/1 57/16/1 +f 49/1/28 56/27/28 48/34/28 +f 46/35/1 53/15/1 45/34/1 +f 61/15/3 67/16/3 63/17/3 +f 62/17/1 68/27/1 66/16/1 +f 65/27/12 62/9/12 66/32/12 +f 61/33/3 76/34/3 71/35/3 +f 66/27/1 74/35/1 73/34/1 +f 63/17/9 68/46/9 64/47/9 +f 69/49/21 84/17/21 76/35/21 +f 71/35/3 84/27/3 79/16/3 +f 67/17/22 74/49/22 68/47/22 +f 64/46/23 76/35/23 63/16/23 +f 61/27/24 70/1/24 62/32/24 +f 62/50/1 69/35/1 64/17/1 +f 66/9/25 72/34/25 65/15/25 +f 65/16/3 75/34/3 67/27/3 +f 75/35/26 82/46/26 74/49/26 +f 71/34/27 78/9/27 70/1/27 +f 72/35/3 83/50/3 75/34/3 +f 73/34/1 82/33/1 81/50/1 +f 73/1/28 80/27/28 72/34/28 +f 70/34/1 77/16/1 69/35/1 +f 99/51/2 92/52/2 100/53/2 +f 96/49/29 89/54/29 97/55/29 +f 96/51/2 87/56/2 88/57/2 +f 97/53/4 86/57/4 94/51/4 +f 98/49/30 91/54/30 99/55/30 +f 94/55/31 87/58/31 95/51/31 +f 102/58/4 97/53/4 94/51/4 +f 103/47/32 97/55/32 104/59/32 +f 105/56/2 99/51/2 100/53/2 +f 108/47/33 99/55/33 107/59/33 +f 105/59/34 93/51/34 106/57/34 +f 101/57/35 94/55/35 95/51/35 +f 98/53/4 85/58/4 90/52/4 +f 100/55/36 85/58/36 93/51/36 +f 106/58/9 101/59/9 105/54/9 +f 101/52/2 96/51/2 103/58/2 +f 106/57/4 98/53/4 108/56/4 +f 104/47/12 107/54/12 103/59/12 +f 103/57/2 105/52/2 101/56/2 +f 104/56/4 106/58/4 108/52/4 +f 113/56/4 111/58/4 109/52/4 +f 114/57/2 112/52/2 116/56/2 +f 113/47/12 110/54/12 114/59/12 +f 111/57/4 119/53/4 109/56/4 +f 116/52/2 121/51/2 114/58/2 +f 112/54/9 115/57/9 116/59/9 +f 117/55/36 132/58/36 124/51/36 +f 119/53/4 132/58/4 127/52/4 +f 116/57/35 123/55/35 122/51/35 +f 112/59/34 124/51/34 111/57/34 +f 109/47/33 118/55/33 110/59/33 +f 112/56/2 118/51/2 117/53/2 +f 114/47/32 120/55/32 113/59/32 +f 115/58/4 120/53/4 123/51/4 +f 123/55/31 130/58/31 122/51/31 +f 119/49/30 126/54/30 118/55/30 +f 120/53/4 131/57/4 123/51/4 +f 121/51/2 130/56/2 129/57/2 +f 120/55/29 129/46/29 128/54/29 +f 118/51/2 125/52/2 117/53/2 +f 137/56/4 135/58/4 133/52/4 +f 138/57/2 136/52/2 140/56/2 +f 137/47/12 134/54/12 138/59/12 +f 135/57/4 143/53/4 133/56/4 +f 140/52/2 145/51/2 138/58/2 +f 136/54/9 139/57/9 140/59/9 +f 141/55/36 156/58/36 148/51/36 +f 143/53/4 156/58/4 151/52/4 +f 140/57/35 147/55/35 146/51/35 +f 136/59/34 148/51/34 135/57/34 +f 133/47/33 142/55/33 134/59/33 +f 136/56/2 142/51/2 141/53/2 +f 138/47/32 144/55/32 137/59/32 +f 139/58/4 144/53/4 147/51/4 +f 147/55/31 154/58/31 146/51/31 +f 143/49/30 150/54/30 142/55/30 +f 144/53/4 155/57/4 147/51/4 +f 145/51/2 154/56/2 153/57/2 +f 144/55/29 153/46/29 152/54/29 +f 142/51/2 149/52/2 141/53/2 +f 20/60/9 158/61/9 157/62/9 +f 10/63/9 160/64/9 159/65/9 +f 17/66/9 161/67/9 18/68/9 +f 11/69/9 163/70/9 12/71/9 +f 12/71/9 160/64/9 9/72/9 +f 10/63/9 166/73/9 167/74/9 +f 20/60/9 169/75/9 170/76/9 +f 19/77/9 161/67/9 158/61/9 +f 17/66/9 166/78/9 162/79/9 +f 165/3/3 159/80/3 5/32/3 +f 11/69/9 169/81/9 164/82/9 +f 168/3/1 157/80/1 15/32/1 +f 8/1/1 164/11/1 169/2/1 +f 161/4/2 13/7/2 16/5/2 +f 14/1/3 162/11/3 166/2/3 +f 7/7/4 6/5/4 160/6/4 +f 157/8/5 158/6/5 16/5/5 +f 159/10/37 160/6/37 6/5/37 +f 14/1/7 13/7/7 161/4/7 +f 8/1/8 7/7/8 163/4/8 +f 25/12/1 30/43/1 44/13/1 +f 1/15/3 23/27/3 35/16/3 +f 39/18/2 33/83/2 37/19/2 +f 29/21/9 40/42/9 42/22/9 +f 22/24/4 27/48/4 31/25/4 +f 2/17/1 4/15/1 38/27/1 +f 23/27/12 1/15/12 2/9/12 +f 1/33/3 3/50/3 52/34/3 +f 40/42/15 39/18/15 43/20/15 +f 28/29/38 27/28/38 22/42/38 +f 28/43/39 41/13/39 40/42/39 +f 44/41/5 43/40/5 37/44/5 +f 26/17/1 38/15/1 50/34/1 +f 30/45/18 32/23/18 42/22/18 +f 3/17/9 35/16/9 38/46/9 +f 34/39/7 33/84/7 39/36/7 +f 32/23/19 31/25/19 27/48/19 +f 25/13/8 24/37/8 31/31/8 +f 34/14/40 41/13/40 28/43/40 +f 45/49/21 53/47/21 60/17/21 +f 47/35/3 52/34/3 60/27/3 +f 35/17/22 51/35/22 50/49/22 +f 4/46/23 45/49/23 52/35/23 +f 1/27/24 47/34/24 46/1/24 +f 2/16/1 46/35/1 45/34/1 +f 26/9/25 49/1/25 48/34/25 +f 23/16/3 48/35/3 51/34/3 +f 51/35/26 59/16/26 58/46/26 +f 47/34/27 55/15/27 54/9/27 +f 48/35/3 56/33/3 59/50/3 +f 49/35/1 50/34/1 58/27/1 +f 49/1/28 57/32/28 56/27/28 +f 46/35/1 54/17/1 53/15/1 +f 61/15/3 65/27/3 67/16/3 +f 62/17/1 64/15/1 68/27/1 +f 65/27/12 61/15/12 62/9/12 +f 61/33/3 63/85/3 76/34/3 +f 66/27/1 68/16/1 74/35/1 +f 63/17/9 67/16/9 68/46/9 +f 69/49/21 77/47/21 84/17/21 +f 71/35/3 76/34/3 84/27/3 +f 67/17/22 75/35/22 74/49/22 +f 64/46/23 69/49/23 76/35/23 +f 61/27/24 71/34/24 70/1/24 +f 62/50/1 70/34/1 69/35/1 +f 66/9/25 73/1/25 72/34/25 +f 65/16/3 72/35/3 75/34/3 +f 75/35/26 83/16/26 82/46/26 +f 71/34/27 79/15/27 78/9/27 +f 72/35/3 80/33/3 83/50/3 +f 73/34/1 74/35/1 82/33/1 +f 73/1/28 81/32/28 80/27/28 +f 70/34/1 78/27/1 77/16/1 +f 99/51/2 91/58/2 92/52/2 +f 96/49/29 88/46/29 89/54/29 +f 96/51/2 95/53/2 87/56/2 +f 97/53/4 89/56/4 86/57/4 +f 98/49/30 90/46/30 91/54/30 +f 94/55/31 86/54/31 87/58/31 +f 102/58/4 104/52/4 97/53/4 +f 103/47/32 96/49/32 97/55/32 +f 105/56/2 107/57/2 99/51/2 +f 108/47/33 98/49/33 99/55/33 +f 105/59/34 100/55/34 93/51/34 +f 101/57/35 102/59/35 94/55/35 +f 98/53/4 93/51/4 85/58/4 +f 100/55/36 92/54/36 85/58/36 +f 106/58/9 102/57/9 101/59/9 +f 101/52/2 95/53/2 96/51/2 +f 106/57/4 93/51/4 98/53/4 +f 104/47/12 108/46/12 107/54/12 +f 103/57/2 107/58/2 105/52/2 +f 104/56/4 102/57/4 106/58/4 +f 113/56/4 115/57/4 111/58/4 +f 114/57/2 110/58/2 112/52/2 +f 113/47/12 109/46/12 110/54/12 +f 111/57/4 124/51/4 119/53/4 +f 116/52/2 122/53/2 121/51/2 +f 112/54/9 111/58/9 115/57/9 +f 117/55/36 125/54/36 132/58/36 +f 119/53/4 124/51/4 132/58/4 +f 116/57/35 115/59/35 123/55/35 +f 112/59/34 117/55/34 124/51/34 +f 109/47/33 119/49/33 118/55/33 +f 112/56/2 110/57/2 118/51/2 +f 114/47/32 121/49/32 120/55/32 +f 115/58/4 113/52/4 120/53/4 +f 123/55/31 131/54/31 130/58/31 +f 119/49/30 127/46/30 126/54/30 +f 120/53/4 128/56/4 131/57/4 +f 121/51/2 122/53/2 130/56/2 +f 120/55/29 121/49/29 129/46/29 +f 118/51/2 126/58/2 125/52/2 +f 137/56/4 139/57/4 135/58/4 +f 138/57/2 134/58/2 136/52/2 +f 137/47/12 133/46/12 134/54/12 +f 135/57/4 148/51/4 143/53/4 +f 140/52/2 146/53/2 145/51/2 +f 136/54/9 135/58/9 139/57/9 +f 141/55/36 149/54/36 156/58/36 +f 143/53/4 148/51/4 156/58/4 +f 140/57/35 139/59/35 147/55/35 +f 136/59/34 141/55/34 148/51/34 +f 133/47/33 143/49/33 142/55/33 +f 136/56/2 134/57/2 142/51/2 +f 138/47/32 145/49/32 144/55/32 +f 139/58/4 137/52/4 144/53/4 +f 147/55/31 155/54/31 154/58/31 +f 143/49/30 151/46/30 150/54/30 +f 144/53/4 152/56/4 155/57/4 +f 145/51/2 146/53/2 154/56/2 +f 144/55/29 145/49/29 153/46/29 +f 142/51/2 150/58/2 149/52/2 +f 20/60/9 19/77/9 158/61/9 +f 10/63/9 9/72/9 160/64/9 +f 17/66/9 162/79/9 161/67/9 +f 11/69/9 164/82/9 163/70/9 +f 12/71/9 163/70/9 160/64/9 +f 10/63/9 159/65/9 166/73/9 +f 20/60/9 157/62/9 169/75/9 +f 19/77/9 18/68/9 161/67/9 +f 17/66/9 167/86/9 166/78/9 +f 165/3/3 166/2/3 159/80/3 +f 11/69/9 170/87/9 169/81/9 +f 168/3/1 169/2/1 157/80/1 diff --git a/src/main/resources/assets/hbm/models/lights/flood_lamp.obj b/src/main/resources/assets/hbm/models/lights/flood_lamp.obj new file mode 100644 index 000000000..09cddd769 --- /dev/null +++ b/src/main/resources/assets/hbm/models/lights/flood_lamp.obj @@ -0,0 +1,228 @@ +# Blender 4.0.1 +# www.blender.org +o FloodLamp +v 0.015049 -0.086498 0.155863 +v 0.015049 0.086498 0.155863 +v 0.015049 -0.086498 -0.155863 +v 0.015049 0.086498 -0.155863 +v 0.306240 -0.185247 0.273848 +v 0.306240 0.185247 0.273848 +v 0.306240 -0.185247 -0.273848 +v 0.306240 0.185247 -0.273848 +v 0.306240 0.228156 -0.325088 +v 0.306240 -0.228156 -0.325088 +v 0.306240 -0.228156 0.325088 +v 0.306240 0.228156 0.325088 +v 0.183352 0.115790 -0.171171 +v 0.183352 -0.115790 -0.171171 +v 0.183352 -0.115790 0.171171 +v 0.183352 0.115790 0.171171 +v 0.183138 0.057253 -0.202014 +v 0.183138 0.057253 0.202014 +v 0.183138 -0.057253 -0.202014 +v 0.183138 -0.057253 0.202014 +v 0.214999 -0.040484 -0.202014 +v 0.214999 -0.040484 0.202014 +v 0.228196 0.000000 -0.202014 +v 0.228196 0.000000 0.202014 +v 0.214999 0.040484 -0.202014 +v 0.214999 0.040484 0.202014 +v -0.001481 -0.036719 0.241790 +v -0.001481 0.036719 0.241790 +v -0.001481 -0.036719 -0.241790 +v -0.001481 0.036719 -0.241790 +v 0.005048 -0.036719 0.237296 +v 0.005048 0.036719 0.237296 +v 0.005048 -0.036719 -0.237296 +v 0.005048 0.036719 -0.237296 +v 0.150804 -0.036719 0.259541 +v 0.150804 0.036719 0.259541 +v 0.150804 0.036719 -0.259541 +v 0.150804 -0.036719 -0.259541 +v 0.150804 -0.036719 -0.253185 +v 0.150804 0.036719 -0.253185 +v 0.150804 0.036719 0.253185 +v 0.150804 -0.036719 0.253185 +v 0.071925 -0.135739 -0.228998 +v 0.071925 0.135739 -0.228998 +v 0.071925 -0.135739 0.228998 +v 0.071925 0.135739 0.228998 +v 0.256780 0.219497 -0.320654 +v 0.256780 -0.219497 0.320654 +v 0.256780 -0.219497 -0.320654 +v 0.256780 0.219497 0.320654 +vn -1.0000 -0.0000 -0.0000 +vn -0.0893 -0.0000 -0.9960 +vn 0.4920 -0.8706 -0.0000 +vn -0.7894 -0.0000 0.6139 +vn -0.1724 -0.9850 -0.0000 +vn -0.6545 0.7560 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.6412 -0.0000 0.7674 +vn 0.6412 -0.0000 -0.7674 +vn 0.4920 0.8706 -0.0000 +vn 0.4658 -0.8849 -0.0000 +vn 0.9508 -0.3099 -0.0000 +vn 0.9508 0.3099 -0.0000 +vn 0.4658 0.8849 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.1084 -0.0000 0.9941 +vn -0.0000 1.0000 -0.0000 +vn 0.1084 -0.0000 -0.9941 +vn -0.1158 -0.0000 -0.9933 +vn -0.1158 -0.0000 0.9933 +vn -0.4127 0.9109 -0.0000 +vn -0.6545 -0.7560 -0.0000 +vn -0.4442 -0.0000 0.8959 +vn -0.7894 -0.0000 -0.6139 +vn -0.0893 -0.0000 0.9960 +vn -0.1724 0.9850 -0.0000 +vn -0.4127 -0.9109 -0.0000 +vn -0.4442 -0.0000 -0.8959 +vt 0.750000 0.312500 +vt 0.937500 0.000000 +vt 0.937500 0.312500 +vt 0.433577 0.606066 +vt 0.390675 0.995211 +vt 0.433577 0.987684 +vt 0.319041 0.068172 +vt 0.433066 0.416342 +vt 0.319041 0.496674 +vt 0.592516 0.678877 +vt 0.640575 0.872068 +vt 0.592516 0.914873 +vt 0.954474 0.992052 +vt 0.393131 0.950474 +vt 0.950619 0.950474 +vt 0.536383 0.742486 +vt 0.870944 0.796340 +vt 0.472806 0.796340 +vt 0.520556 0.519306 +vt 0.125992 0.563849 +vt 0.166945 0.519306 +vt 0.520555 0.043194 +vt 0.561508 0.563849 +vt 0.125992 -0.001349 +vt 0.166945 0.043194 +vt 0.166945 0.045709 +vt 0.561508 0.001166 +vt 0.520555 0.045709 +vt 0.062500 1.000000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.999676 0.773340 +vt 0.890949 0.511648 +vt 0.999676 0.451269 +vt 1.000000 0.773310 +vt 0.891273 0.511618 +vt 1.000000 0.451239 +vt 0.320607 0.064998 +vt 0.433145 0.419320 +vt 0.320607 0.493499 +vt 0.000000 0.437500 +vt 0.062500 0.437500 +vt 0.000000 1.000000 +vt 0.937500 0.437500 +vt 1.000000 0.000000 +vt 1.000000 0.437500 +vt 1.000000 0.125000 +vt 0.937500 0.125000 +vt 0.950619 0.956002 +vt 0.393131 0.956002 +vt 0.807367 0.757948 +vt 0.472806 0.801131 +vt 0.536383 0.757948 +vt 0.640575 0.721682 +vt 0.390675 0.598539 +vt 0.390675 0.995211 +vt 0.954474 0.995950 +vt 0.389276 0.995950 +vt 0.870944 0.801131 +vt 0.750000 0.000000 +vt 0.390675 0.598539 +vt 0.433066 0.148504 +vt 0.389276 0.992052 +vt 0.807367 0.742486 +vt 0.561508 -0.001349 +vt 0.125992 0.001166 +vt 0.062500 0.687500 +vt 0.890949 0.712961 +vt 0.891273 0.712931 +vt 0.433145 0.151481 +s 0 +f 2/1/1 3/2/1 1/3/1 +f 47/4/2 10/5/2 49/6/2 +f 6/7/3 13/8/3 8/9/3 +f 46/10/4 1/11/4 45/12/4 +f 10/13/5 48/14/5 49/15/5 +f 4/16/6 46/17/6 44/18/6 +f 7/19/7 9/20/7 8/21/7 +f 5/22/7 10/23/7 7/19/7 +f 8/21/7 12/24/7 6/25/7 +f 6/26/7 11/27/7 5/28/7 +f 13/29/7 15/30/7 14/31/7 +f 8/32/8 14/33/8 7/34/8 +f 5/35/9 16/36/9 6/37/9 +f 7/38/10 15/39/10 5/40/10 +f 21/41/11 20/29/11 19/42/11 +f 23/41/12 22/29/12 21/42/12 +f 25/29/13 24/41/13 23/43/13 +f 17/29/14 26/41/14 25/43/14 +f 28/44/1 29/45/1 27/46/1 +f 33/2/15 38/47/15 39/48/15 +f 34/44/7 31/45/7 33/46/7 +f 33/45/16 40/48/16 34/2/16 +f 33/44/15 27/45/15 29/46/15 +f 30/45/17 32/44/17 34/2/17 +f 32/2/17 36/47/17 41/48/17 +f 32/48/18 42/45/18 31/47/18 +f 34/45/17 37/48/17 30/2/17 +f 30/48/19 38/45/19 29/47/19 +f 27/45/20 36/48/20 28/2/20 +f 31/45/15 35/48/15 27/2/15 +f 44/18/21 50/49/21 47/50/21 +f 3/51/22 45/52/22 1/53/22 +f 50/4/23 45/12/23 48/6/23 +f 4/54/24 43/12/24 3/11/24 +f 12/55/25 48/6/25 11/56/25 +f 47/50/26 12/57/26 9/58/26 +f 49/15/27 45/52/27 43/59/27 +f 44/10/28 49/6/28 43/12/28 +f 2/1/1 4/60/1 3/2/1 +f 47/4/2 9/61/2 10/5/2 +f 6/7/3 16/62/3 13/8/3 +f 46/10/4 2/54/4 1/11/4 +f 10/13/5 11/63/5 48/14/5 +f 4/16/6 2/64/6 46/17/6 +f 7/19/7 10/23/7 9/20/7 +f 5/22/7 11/65/7 10/23/7 +f 8/21/7 9/20/7 12/24/7 +f 6/26/7 12/66/7 11/27/7 +f 13/29/7 16/67/7 15/30/7 +f 8/32/8 13/68/8 14/33/8 +f 5/35/9 15/69/9 16/36/9 +f 7/38/10 14/70/10 15/39/10 +f 21/41/11 22/43/11 20/29/11 +f 23/41/12 24/43/12 22/29/12 +f 25/29/13 26/42/13 24/41/13 +f 17/29/14 18/42/14 26/41/14 +f 28/44/1 30/2/1 29/45/1 +f 33/2/15 29/45/15 38/47/15 +f 34/44/7 32/2/7 31/45/7 +f 33/45/16 39/47/16 40/48/16 +f 33/44/15 31/2/15 27/45/15 +f 30/45/17 28/46/17 32/44/17 +f 32/2/17 28/45/17 36/47/17 +f 32/48/18 41/2/18 42/45/18 +f 34/45/17 40/47/17 37/48/17 +f 30/48/19 37/2/19 38/45/19 +f 27/45/20 35/47/20 36/48/20 +f 31/45/15 42/47/15 35/48/15 +f 44/18/21 46/17/21 50/49/21 +f 3/51/22 43/59/22 45/52/22 +f 50/4/23 46/10/23 45/12/23 +f 4/54/24 44/10/24 43/12/24 +f 12/55/25 50/4/25 48/6/25 +f 47/50/26 50/49/26 12/57/26 +f 49/15/27 48/14/27 45/52/27 +f 44/10/28 47/4/28 49/6/28 diff --git a/src/main/resources/assets/hbm/models/lights/fluorescent_lamp.obj b/src/main/resources/assets/hbm/models/lights/fluorescent_lamp.obj new file mode 100644 index 000000000..9343ef1bc --- /dev/null +++ b/src/main/resources/assets/hbm/models/lights/fluorescent_lamp.obj @@ -0,0 +1,306 @@ +# Blender 4.0.1 +# www.blender.org +o FluoroCap +v -0.002210 -0.289110 0.300000 +v -0.002210 0.289110 0.300000 +v -0.002210 -0.289110 -0.500000 +v -0.002210 0.289110 -0.500000 +v 0.147790 -0.315000 0.300000 +v 0.147790 0.315000 0.300000 +v 0.147790 -0.315000 -0.500000 +v 0.147790 0.315000 -0.500000 +v 0.072790 -0.315000 -0.500000 +v 0.072790 0.315000 -0.500000 +v 0.072790 -0.315000 0.300000 +v 0.072790 0.315000 0.300000 +v -0.002210 0.289110 0.350000 +v -0.002210 -0.289110 0.350000 +v 0.147790 -0.315000 0.350000 +v 0.147790 0.315000 0.350000 +v 0.072790 0.315000 0.350000 +v 0.072790 -0.315000 0.350000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.3263 0.9453 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.3263 -0.9453 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.125000 0.937500 +vt 0.625000 0.875000 +vt 0.625000 0.937500 +vt 0.125000 0.687500 +vt 0.625000 0.125000 +vt 0.625000 0.687500 +vt 0.687500 0.125000 +vt 0.687500 0.687500 +vt 0.000000 0.687500 +vt 0.062500 0.125000 +vt 0.062500 0.687500 +vt 0.125000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.687500 +vt 0.125000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.062500 +vt 0.625000 0.000000 +vt 0.625000 0.062500 +vt 1.000000 0.375000 +vt 0.937500 0.437500 +vt 0.937500 0.375000 +vt 1.000000 0.437500 +vt 0.937500 1.000000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.937500 0.500000 +vt 0.125000 0.875000 +vt 0.000000 0.125000 +vt 0.125000 0.000000 +s 0 +f 10/1/1 7/2/1 9/3/1 +f 8/4/2 5/5/2 7/6/2 +f 7/6/3 11/7/3 9/8/3 +f 4/9/4 12/10/4 10/11/4 +f 10/11/5 6/12/5 8/4/5 +f 9/8/6 1/13/6 3/14/6 +f 4/15/1 9/3/1 3/16/1 +f 17/17/7 14/18/7 18/19/7 +f 13/20/4 12/21/4 2/22/4 +f 18/21/6 1/20/6 11/23/6 +f 16/12/7 18/19/7 15/5/7 +f 16/24/2 5/25/2 6/26/2 +f 17/21/5 6/25/5 12/23/5 +f 15/27/3 11/23/3 5/25/3 +f 10/1/1 8/28/1 7/2/1 +f 8/4/2 6/12/2 5/5/2 +f 7/6/3 5/5/3 11/7/3 +f 4/9/4 2/29/4 12/10/4 +f 10/11/5 12/10/5 6/12/5 +f 9/8/6 11/7/6 1/13/6 +f 4/15/1 10/1/1 9/3/1 +f 17/17/7 13/30/7 14/18/7 +f 13/20/4 17/23/4 12/21/4 +f 18/21/6 14/22/6 1/20/6 +f 16/12/7 17/17/7 18/19/7 +f 16/24/2 15/27/2 5/25/2 +f 17/21/5 16/27/5 6/25/5 +f 15/27/3 18/21/3 11/23/3 +o FluoroMid +v -0.002210 -0.289110 0.500000 +v -0.002210 0.289110 0.500000 +v -0.002210 -0.289110 -0.500000 +v -0.002210 0.289110 -0.500000 +v 0.147790 -0.315000 0.500000 +v 0.147790 0.315000 0.500000 +v 0.147790 -0.315000 -0.500000 +v 0.147790 0.315000 -0.500000 +v 0.072790 -0.315000 -0.500000 +v 0.072790 0.315000 -0.500000 +v 0.072790 -0.315000 0.500000 +v 0.072790 0.315000 0.500000 +v -0.002210 -0.289110 0.000000 +v -0.002210 0.289110 0.000000 +v 0.147790 -0.315000 0.000000 +v 0.147790 0.315000 0.000000 +v 0.072790 0.315000 0.000000 +v 0.072790 -0.315000 0.000000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.3263 0.9453 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.3263 -0.9453 -0.0000 +vt 0.125000 0.937500 +vt 0.625000 0.875000 +vt 0.625000 0.937500 +vt 0.125000 0.687500 +vt 0.625000 0.312500 +vt 0.625000 0.687500 +vt 0.125000 0.062500 +vt 0.625000 0.000000 +vt 0.625000 0.062500 +vt 0.625000 0.500000 +vt 0.687500 0.125000 +vt 0.687500 0.500000 +vt 0.000000 0.500000 +vt 0.062500 0.125000 +vt 0.062500 0.500000 +vt 0.125000 0.125000 +vt 0.125000 0.500000 +vt 0.750000 0.125000 +vt 0.750000 0.500000 +vt 0.625000 0.125000 +vt 0.125000 1.000000 +vt 0.625000 1.000000 +vt 0.687500 0.875000 +vt 0.750000 0.875000 +vt 0.062500 0.875000 +vt 0.125000 0.875000 +vt -0.000000 0.875000 +vt 0.125000 0.312500 +vt 0.125000 0.000000 +vt 0.000000 0.125000 +s 0 +f 28/31/8 25/32/8 27/33/8 +f 34/34/9 23/35/9 33/36/9 +f 30/37/10 19/38/10 29/39/10 +f 33/40/11 29/41/11 36/42/11 +f 32/43/12 30/44/12 35/45/12 +f 35/45/13 24/46/13 34/47/13 +f 36/42/14 19/48/14 31/49/14 +f 24/46/10 29/39/10 23/50/10 +f 22/51/8 27/33/8 21/52/8 +f 27/53/14 31/49/14 21/54/14 +f 28/55/13 34/47/13 26/56/13 +f 22/57/12 35/45/12 28/55/12 +f 25/32/11 36/42/11 27/53/11 +f 26/34/9 33/35/9 25/36/9 +f 28/31/8 26/56/8 25/32/8 +f 34/34/9 24/58/9 23/35/9 +f 30/37/10 20/59/10 19/38/10 +f 33/40/11 23/50/11 29/41/11 +f 32/43/12 20/60/12 30/44/12 +f 35/45/13 30/44/13 24/46/13 +f 36/42/14 29/41/14 19/48/14 +f 24/46/10 30/37/10 29/39/10 +f 22/51/8 28/31/8 27/33/8 +f 27/53/14 36/42/14 31/49/14 +f 28/55/13 35/45/13 34/47/13 +f 22/57/12 32/43/12 35/45/12 +f 25/32/11 33/40/11 36/42/11 +f 26/34/9 34/58/9 33/35/9 +o FluoroSingle +v -0.002210 -0.289110 0.300000 +v -0.002210 0.289110 0.300000 +v -0.002210 -0.289110 -0.300000 +v -0.002210 0.289110 -0.300000 +v 0.147790 -0.315000 0.300000 +v 0.147790 0.315000 0.300000 +v 0.147790 -0.315000 -0.300000 +v 0.147790 0.315000 -0.300000 +v 0.072790 -0.315000 -0.300000 +v 0.072790 0.315000 -0.300000 +v 0.072790 -0.315000 0.300000 +v 0.072790 0.315000 0.300000 +v 0.072790 -0.315000 -0.350000 +v 0.072790 0.315000 -0.350000 +v 0.147790 0.315000 -0.350000 +v 0.147790 -0.315000 -0.350000 +v 0.072790 -0.315000 0.350000 +v 0.072790 0.315000 0.350000 +v -0.002210 0.289110 0.350000 +v -0.002210 -0.289110 0.350000 +v 0.147790 -0.315000 0.350000 +v 0.147790 0.315000 0.350000 +v -0.002210 -0.289110 -0.350000 +v -0.002210 0.289110 -0.350000 +v -0.002210 -0.289110 0.000000 +v -0.002210 0.289110 0.000000 +v 0.147790 -0.315000 0.000000 +v 0.147790 0.315000 0.000000 +v 0.072790 0.315000 0.000000 +v 0.072790 -0.315000 0.000000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.3263 0.9453 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.3263 -0.9453 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.125000 0.375000 +vt 0.625000 0.125000 +vt 0.625000 0.375000 +vt 0.625000 0.625000 +vt 0.687500 0.375000 +vt 0.687500 0.625000 +vt 0.000000 0.625000 +vt 0.062500 0.375000 +vt 0.062500 0.625000 +vt 0.125000 0.375000 +vt 0.125000 0.625000 +vt 0.750000 0.375000 +vt 0.750000 0.625000 +vt 0.125000 0.937500 +vt 0.625000 0.875000 +vt 0.625000 0.937500 +vt 0.937500 0.437500 +vt 1.000000 0.500000 +vt 1.000000 0.437500 +vt 0.937500 0.562500 +vt 1.000000 1.000000 +vt 1.000000 0.562500 +vt 1.000000 0.500000 +vt 0.937500 0.500000 +vt 0.125000 0.062500 +vt 0.625000 -0.000000 +vt 0.625000 0.062500 +vt 1.000000 0.500000 +vt 0.125000 0.125000 +vt 0.625000 0.125000 +vt 0.937500 1.000000 +vt 0.937500 0.562500 +vt 0.125000 1.000000 +vt 0.625000 1.000000 +vt 1.000000 0.562500 +vt 1.000000 0.562500 +vt 0.687500 0.875000 +vt 0.750000 0.875000 +vt 0.062500 0.875000 +vt 0.125000 0.875000 +vt 0.000000 0.875000 +vt 0.125000 0.875000 +vt 0.625000 0.875000 +vt 0.125000 0.125000 +vt 0.625000 0.375000 +vt 0.000000 0.375000 +vt 0.125000 -0.000000 +s 0 +f 64/61/15 41/62/15 63/63/15 +f 63/64/16 47/65/16 66/66/16 +f 62/67/17 48/68/17 65/69/17 +f 65/69/18 42/70/18 64/71/18 +f 66/66/19 37/72/19 61/73/19 +f 50/74/20 52/75/20 49/76/20 +f 51/77/18 46/78/18 44/79/18 +f 52/80/15 44/81/15 43/82/15 +f 49/83/16 43/77/16 45/84/16 +f 54/85/21 56/86/21 53/87/21 +f 55/79/17 48/84/17 38/77/17 +f 53/88/19 37/77/19 47/84/19 +f 58/89/21 53/87/21 57/90/21 +f 58/91/15 41/82/15 42/81/15 +f 54/78/18 42/92/18 48/84/18 +f 57/82/16 47/84/16 41/92/16 +f 60/93/20 49/76/20 59/94/20 +f 50/84/17 40/95/17 46/78/17 +f 59/96/19 45/84/19 39/92/19 +f 45/97/19 61/73/19 39/98/19 +f 46/99/18 64/71/18 44/100/18 +f 40/101/17 65/69/17 46/99/17 +f 43/75/16 66/66/16 45/97/16 +f 44/102/15 63/64/15 43/103/15 +f 64/61/15 42/104/15 41/62/15 +f 63/64/16 41/105/16 47/65/16 +f 62/67/17 38/106/17 48/68/17 +f 65/69/18 48/68/18 42/70/18 +f 66/66/19 47/65/19 37/72/19 +f 50/74/20 51/100/20 52/75/20 +f 51/77/18 50/84/18 46/78/18 +f 52/80/15 51/91/15 44/81/15 +f 49/83/16 52/79/16 43/77/16 +f 54/85/21 55/107/21 56/86/21 +f 55/79/17 54/78/17 48/84/17 +f 53/88/19 56/79/19 37/77/19 +f 58/89/21 54/85/21 53/87/21 +f 58/91/15 57/80/15 41/82/15 +f 54/78/18 58/95/18 42/92/18 +f 57/82/16 53/88/16 47/84/16 +f 60/93/20 50/74/20 49/76/20 +f 50/84/17 60/92/17 40/95/17 +f 59/96/19 49/83/19 45/84/19 +f 45/97/19 66/66/19 61/73/19 +f 46/99/18 65/69/18 64/71/18 +f 40/101/17 62/67/17 65/69/17 +f 43/75/16 63/64/16 66/66/16 +f 44/102/15 64/71/15 63/64/15 diff --git a/src/main/resources/assets/hbm/textures/blocks/cage_lamp.png b/src/main/resources/assets/hbm/textures/blocks/cage_lamp.png new file mode 100644 index 0000000000000000000000000000000000000000..8932b2ffabe6a1915ca53412d5b08aaf1d05eed6 GIT binary patch literal 2178 zcmds2jaL&_7Jmtd1OyS0wzvyvnpT7kosVQPiJxEsq$M;!u&7mhlbL}~NFtd6Ztc=4 zDpstec2W6g(Xw^HVnND>+S=W^#nttrRoJ7jqDNf?TUL>}>nT?E4cgG2J!k)bP3FzL zbAR{#=FYpnNj6zilY#;w0ssI(=44|!vLVv)_e1BX(FYKjgM5}*uvkD0@@Wz$H3pnC z5QGw)Np#S__jx!7rY0=>$tIaCRwWrn-~jl^NFYabVQBfwLV*vmGV}$q2ry~f2jEw- znO|PhU*ODdZ^J$xBc$FjQKyGZ%h)4+STSW{YX^pgd3>9qogqlhmf?<&>-&L65hISqh zPcnEL0*w-Aw%QgMj4u1D1&G>g1UZfZw}Ern9h_m@B?yLwG^xWhXy-8v&hQwkvy&L) zSuG^=B-Gn=uU@WQf%xWn`OHp_2%UBw@s$*~;~a<#a+HpswGd;qdJ5C%SPo+a9l8`q z!H$*=*V9cc`#=9hU+95z98Q@3v;HJL4)Ng}Nz;s$!*IQh#WWO0VW?3S!zoDftN>}d zR?9fsZy~+_sV`|~4DnVoAbUSqIEtb(yisdD6a`md0eH#bd^DvQIbNKuKZVq{V!pM;eSIyEsbYaHtj`JXXTT_t?UVkb@#LLXig( zBDN9KLlMUkgaO9`hPwWO%4ScLxj2Wg`hOSY<{g@aipHhj5luy+0oun!;(Rir|o5NIi?O9A(F74dS37$ujU~*|=S=MJm8C5^_jlEW=@Xfze|+ z+>Y)@Q;=cEl##L|)a0y*COwbj9-o6W3zCpx$6t13^rHdJKIEQ@UMP?}QBs`CqtT$B z4h$zToUsvl13E}@j?x>{+X&jAp$!x@5hMuje1@YAqshqsZ8pZ+m}vzWmKUd|h0Swa zv*dhK*KxKgy&~M_Zm&uqk2lH#dmdbRtM0yEr~1ayQXj?4#cK7!DVstToC(^LnWb#? zKbMd(X=&f7PtT4VZVY{F;KYg7r~}vk?zuScNOyPl%K_!dd-lOs#`bnTwsocT$noQW z$?u9ILAPXaK08bo)ox2h+TPyEl*8led)BRreybv{ckL^6s$y$*vpBWm@Ks#Xv+Pr)Edj&1xZ}xoUIzkgvdivpw(h$NmYoeZ22*e&?m8QZBHvw$K0TvDpo| znsWEKt+_qQH=?dLD6^xV3RNg8%h$#~1%8*<@OglWId`usC3aPLIJacO73Nayk^T8g zc}-1l-Iguid^58_S&}wQ9I%W{Sv)*NMg`yh{#Y!d&Mw;>ovVq6d^174%L+zE+is1S z8hz)bn!+Qh)~DaEw_IYHH@rc0&&3NA->0-5f7%$jy?%)0GSe5X>|2{zzcB%C`n76C zK3CFG`TX*K96WX5JipNh$K9jVpFKVT{6(m+2cDzI}Px z@ZCY<-AcV>Py1)L($#VN1#vZ+aU*9 zr^g(-`R$>Kp&=-WiS-V6xm}?SD{l&Jx7M5e$uqmhG6@5G=EkyT9*nhi?Rc~4hh(8m z<*D)i^PP2PmPIC4JooswxBrzsKRd5+epKuSnQ43fcFg)DjemV54r`wC)s^f$U+!8_ zZoW6YqP-Mf(P+Ey-Sy>HM;8qB42S=?Gv&^zs?_Z5Z66eFP!m1JXGMqK{(~(qIcQ)c z@&5MBr%%ky*%~=;=R{ja75uT&MJ}l_?tdY2BsFDf_25Tir6V)7V|Z)%`4;K5`v3Sl O24+*LabLp9wf_N$62;>H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/flood_lamp.png b/src/main/resources/assets/hbm/textures/blocks/flood_lamp.png new file mode 100644 index 0000000000000000000000000000000000000000..1582fc9637766cd2570f1be0eb0387f20ea4f486 GIT binary patch literal 1011 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`W~mXLX}-P;T0pi05PJYIBb;Vp zlwx3oif}MW!`UEX7$#J_-vgvL^WEHvL3}W{rM2xGkil8t5eXFJ76M_$OLy!3FfcIl zc)B=-SO}&Dd;1Fqiu_Bvbt%)kvFw+?K{1m_8d67Fxm6=X7rDd=9Ck~5sGNBG*o+;G zADHj#FjCoMaBRj8vo5a>owG6y9dZzL)Vjf5yC7GW^=0z2s%Ki9uV$W^W4-hF$Gh)q z!hbxFPk(I_cVtmu&YIQEN^6NFx>U87>sv|2grkd#YxeFtc6!g%&@(S5%q)*JUA*egQl&M^m$xqs_B8vHGb1x) z!@YZP+m1c`qwT>RS6x(#*JzRYV72Dtlnx=`b{|f_Ss{frI$B^hCH}= zLb`6vRQ{*RpOt%GhwD2p_-s7=H0yTfV<8W?`z7nXFq~!QFD&velXJEZQuGaZ@NBQ+ zzWaCY_TIHFPxx{-`UQvg{STAXZ)__yj^f+0=#J9Cz1z5Wd94kEXB>OH@OXjcn+)q) zeeL~iKmNG8yB9vbCd*+Zxa+`|=XSf-{wZ(2UB2_wxjDA%k<$ua-x95vGsEHWyjqKr z9~@Rz)(?ty1|}LFN-%Ixf2A-jdacTo`^#4=W@c@Bq`i98$Kp!K#+RBmQrXRNZ}o)h z&r3dI&uIQ}in?jnq!gD)Cobibl}-DdU~uAZj0MNZ3>DE?6BJ6b#AeKVm{A-Op&T4@ zA}w)i#E-P_aPjZ?@%xWFN)p>$bJk$y*)4G`pV*f!uhM) zWZ&xbW@f&zf4LybP0l+XkK0-}@* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp.png b/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp.png new file mode 100644 index 0000000000000000000000000000000000000000..f10e42271b9137d525b42951f7d5df1388401e25 GIT binary patch literal 806 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`W~mXLX}-P;T0pi0i&x?c27V_8 z7|p=MD8;}Elwky74n}D>8)OW_S&u&{K#DWp&8-;32ZLK$+s*+QoCO|{KtXOH5N5n| zx9$%E1Cza{i(`m|pl|T$ykJ8S8T)s>vs^?>T`n+%3bO8NvfaSYlF;}=D(tUCT>~rQ zA|(yq43|wO9>?82b3<^I@bQiBEsN9op3i!&KX0jovXK3+VM5tB3w68Y7SZ!bDfr5h=@oWI}rZ1?K<5u1x{n=Li9mRK0^a>n18jy_%M zE~(^wj(fh>k^S;Z)mdq?gF|hD9~^r0#z>m;@G7SrW?y`qYcJ_kZxT(myOc6F$aB?{ z_0D(Cl&)L$^3l16iogEuJ9Ju^^_AD&?>F{uJntrYMaJQlny6=2@!W=+C0%FJxIKUK z>#;4`9HIAPc~D+j;1^N1BvEIV_1Cr4lFeQ}JGT1goN3o5PfgkUW=7)eJPmgRPR3{- zwflljvxSc;eRpQ)Q_FNdP*d0H;C=eq240)9A{Fy)>sD@Ar?tv6NrAyzB|bd#+n2L} z?2kXPEbQI!KjDaR!k@1)b9Ws&cvq@l-nKD4C*!4bljL6ha~Dqa$nd#G{E2<=%~M?O z;-QQQQtbyDosYkJ_^77sX;I{=cav13Kb?JTzP_Y+=DK?>?kR!O%Py{4op){BYSE`b zb9r3m-}~@sd&y+poC%FTpKa7XD#Em^cI9=+S)RX&^;wR*O8LnD?l_nGmxp`K0@D}e P$(F&>)z4*}Q$iB}bl*N> literal 0 HcmV?d00001 From 58ec00004ce05dfe7e37eeb2d3a788437ab03c4d Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 12 Feb 2024 16:14:05 +1100 Subject: [PATCH 177/376] Render the blocks in the inventory correctly Add crafting recipes for the three light types --- .../java/com/hbm/main/CraftingManager.java | 3 +++ .../com/hbm/render/block/RenderLight.java | 23 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index fb36d022f..04f6ac617 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -462,6 +462,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_green_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P', P_RED.dust(), 'T', ModItems.cell_tritium, '1', "dustSulfur", '2', CU.dust() }); addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_blue_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P',P_RED.dust(), 'T', ModItems.cell_tritium, '1', AL.dust(), '2', ST.dust() }); addRecipeAuto(new ItemStack(ModBlocks.lantern, 1), new Object[] { "PGP", " S ", " S ", 'P', KEY_ANYPANE, 'G', Items.glowstone_dust, 'S', ModBlocks.steel_beam }); + addRecipeAuto(new ItemStack(ModBlocks.spotlight_incandescent, 8), new Object[] { " G ", " T ", " I ", 'G', KEY_ANYPANE, 'T', ModItems.wire_tungsten, 'I', Items.iron_ingot }); + addRecipeAuto(new ItemStack(ModBlocks.spotlight_fluoro, 8), new Object[] { " G ", " M ", " A ", 'G', KEY_ANYPANE, 'M', ModItems.ingot_mercury, 'A', ModItems.plate_aluminium }); + addRecipeAuto(new ItemStack(ModBlocks.spotlight_halogen, 8), new Object[] { " G ", " B ", " S ", 'G', KEY_ANYPANE, 'B', ModItems.powder_bromine, 'S', ModItems.plate_steel }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire, 16), new Object[] { "AIA", "I I", "AIA", 'A', ModItems.wire_aluminium, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_fire, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', P_RED.dust() }); diff --git a/src/main/java/com/hbm/render/block/RenderLight.java b/src/main/java/com/hbm/render/block/RenderLight.java index 4c1ce369a..465bae66e 100644 --- a/src/main/java/com/hbm/render/block/RenderLight.java +++ b/src/main/java/com/hbm/render/block/RenderLight.java @@ -1,5 +1,7 @@ package com.hbm.render.block; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.machine.Spotlight; import com.hbm.blocks.machine.SpotlightModular; import com.hbm.render.util.ObjUtil; @@ -8,6 +10,7 @@ import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; @@ -15,7 +18,25 @@ public class RenderLight implements ISimpleBlockRenderingHandler { @Override public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + if (!(block instanceof Spotlight)) return; + Spotlight spot = (Spotlight) block; + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, 0); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glRotated(-90, 0, 1, 0); + GL11.glScaled(1.5D, 1.5D, 1.5D); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon(spot.getModel(), spot.getPartName(0), iicon, tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); } @Override @@ -70,7 +91,7 @@ public class RenderLight implements ISimpleBlockRenderingHandler { @Override public boolean shouldRender3DInInventory(int modelId) { - return false; + return true; } @Override From 8790e4fa3fbe35ff19f93f86cd05896b898b6b5c Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 12 Feb 2024 17:28:07 +1100 Subject: [PATCH 178/376] Add off variations to lights, activated by applying power (like redstone torches) --- src/main/java/com/hbm/blocks/ModBlocks.java | 15 ++- .../hbm/blocks/generic/ReinforcedLamp.java | 4 +- .../com/hbm/blocks/machine/Spotlight.java | 87 +++++++++++++++++- .../hbm/blocks/machine/SpotlightModular.java | 4 +- src/main/java/com/hbm/main/NEIConfig.java | 3 + .../assets/hbm/textures/blocks/cage_lamp.png | Bin 2178 -> 4858 bytes .../hbm/textures/blocks/cage_lamp_off.png | Bin 0 -> 4994 bytes .../hbm/textures/blocks/flood_lamp_off.png | Bin 0 -> 4921 bytes .../textures/blocks/fluorescent_lamp_off.png | Bin 0 -> 4650 bytes 9 files changed, 103 insertions(+), 10 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/cage_lamp_off.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/flood_lamp_off.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp_off.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b4d5d29e6..638c667a9 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -336,8 +336,11 @@ public class ModBlocks { public static Block lantern_behemoth; public static Block spotlight_incandescent; + public static Block spotlight_incandescent_off; public static Block spotlight_fluoro; + public static Block spotlight_fluoro_off; public static Block spotlight_halogen; + public static Block spotlight_halogen_off; public static Block spotlight_beam; public static Block reinforced_stone; @@ -1565,9 +1568,12 @@ public class ModBlocks { lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(null).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); - spotlight_incandescent = new Spotlight(Material.iron, 2, LightType.INCANDESCENT).setBlockName("spotlight_incandescent").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cage_lamp"); - spotlight_fluoro = new SpotlightModular(Material.iron, 8, LightType.FLUORESCENT).setBlockName("spotlight_fluoro").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":fluorescent_lamp"); - spotlight_halogen = new Spotlight(Material.iron, 32, LightType.HALOGEN).setBlockName("spotlight_halogen").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":flood_lamp"); + spotlight_incandescent = new Spotlight(Material.iron, 2, LightType.INCANDESCENT, true).setBlockName("spotlight_incandescent").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cage_lamp"); + spotlight_incandescent_off = new Spotlight(Material.iron, 2, LightType.INCANDESCENT, false).setBlockName("spotlight_incandescent_off").setBlockTextureName(RefStrings.MODID + ":cage_lamp_off"); + spotlight_fluoro = new SpotlightModular(Material.iron, 8, LightType.FLUORESCENT, true).setBlockName("spotlight_fluoro").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":fluorescent_lamp"); + spotlight_fluoro_off = new SpotlightModular(Material.iron, 8, LightType.FLUORESCENT, false).setBlockName("spotlight_fluoro_off").setBlockTextureName(RefStrings.MODID + ":fluorescent_lamp_off"); + spotlight_halogen = new Spotlight(Material.iron, 32, LightType.HALOGEN, true).setBlockName("spotlight_halogen").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":flood_lamp"); + spotlight_halogen_off = new Spotlight(Material.iron, 32, LightType.HALOGEN, false).setBlockName("spotlight_halogen_off").setBlockTextureName(RefStrings.MODID + ":flood_lamp_off"); spotlight_beam = new SpotlightBeam().setBlockName("spotlight_beam"); reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); @@ -2749,8 +2755,11 @@ public class ModBlocks { GameRegistry.registerBlock(lantern, lantern.getUnlocalizedName()); GameRegistry.registerBlock(lantern_behemoth, lantern_behemoth.getUnlocalizedName()); GameRegistry.registerBlock(spotlight_incandescent, spotlight_incandescent.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_incandescent_off, spotlight_incandescent_off.getUnlocalizedName()); GameRegistry.registerBlock(spotlight_fluoro, spotlight_fluoro.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_fluoro_off, spotlight_fluoro_off.getUnlocalizedName()); GameRegistry.registerBlock(spotlight_halogen, spotlight_halogen.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_halogen_off, spotlight_halogen_off.getUnlocalizedName()); GameRegistry.registerBlock(spotlight_beam, spotlight_beam.getUnlocalizedName()); //Reinforced Blocks diff --git a/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java b/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java index b2de460b3..a3a7819b6 100644 --- a/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java +++ b/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java @@ -77,7 +77,7 @@ public class ReinforcedLamp extends Block { return new ItemStack(getOff()); } - private Block getOff() { + protected Block getOff() { if(this == ModBlocks.reinforced_lamp_on) return ModBlocks.reinforced_lamp_off; @@ -89,7 +89,7 @@ public class ReinforcedLamp extends Block { return this; } - private Block getOn() { + protected Block getOn() { if(this == ModBlocks.reinforced_lamp_off) return ModBlocks.reinforced_lamp_on; diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java index f722c7ff4..1a5bf2fed 100644 --- a/src/main/java/com/hbm/blocks/machine/Spotlight.java +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -1,13 +1,20 @@ package com.hbm.blocks.machine; import com.hbm.blocks.ModBlocks; + +import java.util.Random; + import com.hbm.blocks.BlockEnums.LightType; import com.hbm.main.ResourceManager; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -16,15 +23,22 @@ import net.minecraftforge.common.util.ForgeDirection; public class Spotlight extends Block { + // I'd be extending the ReinforcedLamp class if it wasn't for the inverted behaviour of these specific lights + // I want these blocks to be eminently useful, so removing the need for redstone by default is desired, + // these act more like redstone torches, in that applying a signal turns them off + public boolean isOn; + public int beamLength; public LightType type; - public Spotlight(Material mat, int beamLength, LightType type) { + public Spotlight(Material mat, int beamLength, LightType type, boolean isOn) { super(mat); - setLightLevel(1.0F); - + this.beamLength = beamLength; this.type = type; + this.isOn = isOn; + + if (isOn) setLightLevel(1.0F); } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @@ -104,9 +118,25 @@ public class Spotlight extends Block { @Override public void onBlockAdded(World world, int x, int y, int z) { if (world.isRemote) return; + + if (updatePower(world, x, y, z)) return; + updateBeam(world, x, y, z); } + private boolean updatePower(World world, int x, int y, int z) { + boolean isPowered = world.isBlockIndirectlyGettingPowered(x, y, z); + if (isOn && isPowered) { + world.scheduleBlockUpdate(x, y, z, this, 4); + return true; + } else if (!isOn && !isPowered) { + world.setBlock(x, y, z, getOn(), world.getBlockMetadata(x, y, z), 2); + return true; + } + + return false; + } + @Override public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { ForgeDirection dir = getDirection(metadata); @@ -117,6 +147,15 @@ public class Spotlight extends Block { unpropagateBeam(world, x, y, z, dir); } + @Override + public void updateTick(World world, int x, int y, int z, Random p_149674_5_) { + if (world.isRemote) return; + + if (isOn && world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.setBlock(x, y, z, getOff(), world.getBlockMetadata(x, y, z), 2); + } + } + // Repropagate the beam if we've become unblocked @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block neighborBlock) { @@ -131,6 +170,8 @@ public class Spotlight extends Block { return; } + if (updatePower(world, x, y, z)) return; + updateBeam(world, x, y, z); } @@ -161,6 +202,8 @@ public class Spotlight extends Block { } private void updateBeam(World world, int x, int y, int z) { + if (!isOn) return; + ForgeDirection dir = getDirection(world, x, y, z); propagateBeam(world, x, y, z, dir, beamLength); } @@ -174,6 +217,22 @@ public class Spotlight extends Block { return ForgeDirection.getOrientation(metadata >> 1); } + @Override + public Item getItemDropped(int i, Random r, int j) { + return Item.getItemFromBlock(getOn()); + } + + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + return Item.getItemFromBlock(getOn()); + } + + @Override + protected ItemStack createStackedBlock(int e) { + return new ItemStack(getOn()); + } + // Recursively add beam blocks, updating any that already exist with new incoming light directions public static void propagateBeam(World world, int x, int y, int z, ForgeDirection dir, int distance) { distance--; @@ -230,5 +289,27 @@ public class Spotlight extends Block { backPropagate(world, x, y, z, dir); } + + protected Block getOff() { + if(this == ModBlocks.spotlight_incandescent) + return ModBlocks.spotlight_incandescent_off; + if(this == ModBlocks.spotlight_fluoro) + return ModBlocks.spotlight_fluoro_off; + if(this == ModBlocks.spotlight_halogen) + return ModBlocks.spotlight_halogen_off; + + return this; + } + + protected Block getOn() { + if(this == ModBlocks.spotlight_incandescent_off) + return ModBlocks.spotlight_incandescent; + if(this == ModBlocks.spotlight_fluoro_off) + return ModBlocks.spotlight_fluoro; + if(this == ModBlocks.spotlight_halogen_off) + return ModBlocks.spotlight_halogen; + + return this; + } } diff --git a/src/main/java/com/hbm/blocks/machine/SpotlightModular.java b/src/main/java/com/hbm/blocks/machine/SpotlightModular.java index c5244d242..5a0cddc2b 100644 --- a/src/main/java/com/hbm/blocks/machine/SpotlightModular.java +++ b/src/main/java/com/hbm/blocks/machine/SpotlightModular.java @@ -7,8 +7,8 @@ import net.minecraft.world.IBlockAccess; public class SpotlightModular extends Spotlight { - public SpotlightModular(Material mat, int beamLength, LightType type) { - super(mat, beamLength, type); + public SpotlightModular(Material mat, int beamLength, LightType type, boolean isOn) { + super(mat, beamLength, type, isOn); } @Override diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 45c3fdb6e..8ee671107 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -131,6 +131,9 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.pink_double_slab)); API.hideItem(new ItemStack(ModBlocks.pink_stairs)); + API.hideItem(new ItemStack(ModBlocks.spotlight_incandescent_off)); + API.hideItem(new ItemStack(ModBlocks.spotlight_fluoro_off)); + API.hideItem(new ItemStack(ModBlocks.spotlight_halogen_off)); API.hideItem(new ItemStack(ModBlocks.spotlight_beam)); API.registerHighlightIdentifier(ModBlocks.ore_random, new IHighlightHandler() { diff --git a/src/main/resources/assets/hbm/textures/blocks/cage_lamp.png b/src/main/resources/assets/hbm/textures/blocks/cage_lamp.png index 8932b2ffabe6a1915ca53412d5b08aaf1d05eed6..f78cb205e71fa2b16e538db58c73169205e3fad2 100644 GIT binary patch literal 4858 zcmeHLX;f3!7QVp<78@P{ML~)o&R~+8d5|!eU=lGH21NwKo0}WBNCuKX0;Qs&h^Pp* zh!Y?@qdc@K&!YI8pHr>YB2M6lV(auOT3WS2wI=};*Xvquxz_7Hv)0YM_ndEkd++b; zeO6AEDx;(%S6^2Mf=F_iBnI5w?bjeD@LgJ##s#-)xp6biF^Gk1FzPjU21YjL7%(zs z#WfIQy`oh{yB#GD`u(ogM5l$*`6bEw)V$UwF2#}B$&?W5bNBY1{V9(Pe0nlJ0Be_OOHCcSX?veMv!*7!-Ld#4rSd>dXB zee4&oDc~5p$jeE)d~t+rwzPFxlHvrxQu{ld#%)U6uvOdHy6tbCl^ceA$GRJRbRN_2 zaHEf6#+oMI?3S*BTV`)B%2HLI4Q$m+U8nI^EnsW(&s;85c57Zy^L+CNDZ5j7^vo%t z5JXsni^WR0So}IqkllvQ%S5uHVSdL`&ZkENF3fh%{6<;%pIS4ylsk(UNctX5Oe7JiLl$mXaF_(F~s_>e1%xbu{((=sT(h1chVD&yl zgnEt7eM!=pAL5U<2N4%FFAE@!(mXhIM&(`A@z6iy;Ejl!)z9{Zo}3>8`?Py5MW^y6 z+$P;_Q$*g~Kg~~r$pb>hRNdI#j-JJdnYsxNeROL? zR?m3jsXO)a%TNNRuGBB|`G}rJmnK9_+bgf(H+QM7j_3$83{B%?ba%JzP8>V`l}}TP z@Z~JeHQl2QoI6L69&YCvGOwSzBWgFg49jU5EjEq{Rn*KR-uV9B`kxO!rZyk?@#&=- zC+`m^wQXOmpI;!JQ!8nE=->J1;iI2!vVM9w4;s^AEFvwjeGBR_8wYhaQ!!PD>a{dP ztyf_*tJVMt5`uz5tp)_0iQm>D5kwHZ2-&?=%hc!l8EK1`>O9T4+e5oM-ANfzsk7@19D(_m_Z z70+f;LR`tgMzuy5BbnSs0p3KEG_%5Zv$hCm>o!%RApNd*Y1DMx2U ztW=$8q@ALdLxP!5BW^I`dL7x$iKz5hW)Xz~=E<+)(;5_tH}pDFp9(+^x)m|d88n!# z)zbT0n9LE`fTS;=KeaH$f%c`xU?zQ*5yc|1F`ap2e+o7F#@>)+%y6WmM(J1vrUg(F z@XC0{rBtp^zOk@Nkcw*!4l5w`J4iFGc`MdCvDs%F>GTf-n7`qD2mLyC2N<9f3ZX=g zX4%7&OGFgAf1z5B;%cGek-<~5*c_gkig1}ImCa|sQ~?J?sC{Ni9h65fI%45Q64TH*oH3*=!&f83JRXD3hq+7^i^1l+ z1w{eHrNDcEKUCNMO)l5Bhbc@4egRp)QR(27 zKms^sIjbV2632lH`c1qqA3S|zkR_NPXt0OJ!%yLD9%RQ%$oxPlom!FG( zAg2{_NqF42@29Ui9pxDf6}~e4c*a(NZ&_S3j7lsX8spWai9#RmQ+`cY; z&UsRhhX=WkxV&&@ccuRaw!x+LqIKB@;=v zOsh^~mK*u&KI48>U)*6hwWDjxuP)-xm)!grMb}pS^6BP)J%?^0i49G^c5MpNXsTwd zZquEfVoN_hay52maCutX%`3Um@ry5n^P&0Slf$;-O#DR0Ej813Md5lk`s@pyOJ#xO zqhN?6gM2r+5nVnT4#{X0)4fIyayl{Wu0LArzTjc*7hgOZ$I)*qb)UUrUt_?yHWU=(<>&7~>Xt{JycHCrU-Lkmy&#U9ue3^X8(;50urXbCE>SNg7$P86c|%@sphm}{?gb#+uGf0Vp(fd8BU zA@1z0L;pROu(4+6*}bU=W6)x}@baanS;<{ZJ7722H>QmwvZ_rZC=~wk9HSN8cyO3x&lqwd=Z`XygKxGwg1+XlNTKS O9mpf1B-I}FDF literal 2178 zcmds2jaL&_7Jmtd1OyS0wzvyvnpT7kosVQPiJxEsq$M;!u&7mhlbL}~NFtd6Ztc=4 zDpstec2W6g(Xw^HVnND>+S=W^#nttrRoJ7jqDNf?TUL>}>nT?E4cgG2J!k)bP3FzL zbAR{#=FYpnNj6zilY#;w0ssI(=44|!vLVv)_e1BX(FYKjgM5}*uvkD0@@Wz$H3pnC z5QGw)Np#S__jx!7rY0=>$tIaCRwWrn-~jl^NFYabVQBfwLV*vmGV}$q2ry~f2jEw- znO|PhU*ODdZ^J$xBc$FjQKyGZ%h)4+STSW{YX^pgd3>9qogqlhmf?<&>-&L65hISqh zPcnEL0*w-Aw%QgMj4u1D1&G>g1UZfZw}Ern9h_m@B?yLwG^xWhXy-8v&hQwkvy&L) zSuG^=B-Gn=uU@WQf%xWn`OHp_2%UBw@s$*~;~a<#a+HpswGd;qdJ5C%SPo+a9l8`q z!H$*=*V9cc`#=9hU+95z98Q@3v;HJL4)Ng}Nz;s$!*IQh#WWO0VW?3S!zoDftN>}d zR?9fsZy~+_sV`|~4DnVoAbUSqIEtb(yisdD6a`md0eH#bd^DvQIbNKuKZVq{V!pM;eSIyEsbYaHtj`JXXTT_t?UVkb@#LLXig( zBDN9KLlMUkgaO9`hPwWO%4ScLxj2Wg`hOSY<{g@aipHhj5luy+0oun!;(Rir|o5NIi?O9A(F74dS37$ujU~*|=S=MJm8C5^_jlEW=@Xfze|+ z+>Y)@Q;=cEl##L|)a0y*COwbj9-o6W3zCpx$6t13^rHdJKIEQ@UMP?}QBs`CqtT$B z4h$zToUsvl13E}@j?x>{+X&jAp$!x@5hMuje1@YAqshqsZ8pZ+m}vzWmKUd|h0Swa zv*dhK*KxKgy&~M_Zm&uqk2lH#dmdbRtM0yEr~1ayQXj?4#cK7!DVstToC(^LnWb#? zKbMd(X=&f7PtT4VZVY{F;KYg7r~}vk?zuScNOyPl%K_!dd-lOs#`bnTwsocT$noQW z$?u9ILAPXaK08bo)ox2h+TPyEl*8led)BRreybv{ckL^6s$y$*vpBWm@Ks#Xv+Pr)Edj&1xZ}xoUIzkgvdivpw(h$NmYoeZ22*e&?m8QZBHvw$K0TvDpo| znsWEKt+_qQH=?dLD6^xV3RNg8%h$#~1%8*<@OglWId`usC3aPLIJacO73Nayk^T8g zc}-1l-Iguid^58_S&}wQ9I%W{Sv)*NMg`yh{#Y!d&Mw;>ovVq6d^174%L+zE+is1S z8hz)bn!+Qh)~DaEw_IYHH@rc0&&3NA->0-5f7%$jy?%)0GSe5X>|2{zzcB%C`n76C zK3CFG`TX*K96WX5JipNh$K9jVpFKVT{6(m+2cDzI}Px z@ZCY<-AcV>Py1)L($#VN1#vZ+aU*9 zr^g(-`R$>Kp&=-WiS-V6xm}?SD{l&Jx7M5e$uqmhG6@5G=EkyT9*nhi?Rc~4hh(8m z<*D)i^PP2PmPIC4JooswxBrzsKRd5+epKuSnQ43fcFg)DjemV54r`wC)s^f$U+!8_ zZoW6YqP-Mf(P+Ey-Sy>HM;8qB42S=?Gv&^zs?_Z5Z66eFP!m1JXGMqK{(~(qIcQ)c z@&5MBr%%ky*%~=;=R{ja75uT&MJ}l_?tdY2BsFDf_25Tir6V)7V|Z)%`4;K5`v3Sl O24+*LabLp9wf_N$62;>H diff --git a/src/main/resources/assets/hbm/textures/blocks/cage_lamp_off.png b/src/main/resources/assets/hbm/textures/blocks/cage_lamp_off.png new file mode 100644 index 0000000000000000000000000000000000000000..c2bf59718c412e5841020b277dc6cdeb167b591a GIT binary patch literal 4994 zcmeHKYfuzd7H*J$K~YdlK#7c_;sbl8d*0nLAkLu7>L?qB_Xi)vB>I#ykzbBr+sF|y%cI8pb_)-JkVqUxDW6vrc;!;0!9xlb+q#t%Kxu#>vu=!$0+YfBMt=$>vCQ>yVc@-m#^2^N*Wt zEhBAB(C!6vp>L*Bq29Mnz3{?MF=aJ@E^9Au809iXUw{4r`Ci_=Mv8wGc1G>V*?xLjGb(sop5$SA>E?wwi&F0`w9K#BPK^FMZ``1v z8}bF&C$?pIWZ6Ga>?s)j(*P`I*rgA5UR{=Zxas^7pNa8-z6YxORL(QP`R{m%>I?qn zK44C)G;-z_Oi1H@{FB-ySkB)sOxsF1Nej04h5XmQt?}BVS+kF6b}KG7lQ;eEO)cQZ1r2 ztLS(pe1(OcyJA)pwIYGSbo`KD_aHkC2n;k!@a%>}qZPL+`3_zjJafZBKF2m0IEv!+XeT9*<)s$qR=&)qk$d2wwp`*I(%}JI- zM>sl4NGH+;0JVZu(OyeV*JvZUEjS6{7=zhi1;p-!WEuTyv3mK&%{ap8=?F0I=Iw=k z6}tlrP+BdnHc?5Odm6Qp&#jN^OcbNT9gnD7CzeR%I+&1&C|IIE5g3zF1gs!Xg@H*wZVHN(ZQ*p=duK+Cn`tea#Vpy zP?16=mWf`2=Ft`_s6~zyMFe7rV}?r%4#EM_5?rMM0>?Or23J{Vf;Cy9Or}I7pL2o7 zS$0orK||>XmQWKc4M-7@1V=$_a`R_hz@6^sJ4r(4lcaN1zobP={8$@m;B! z&>L@yr@1@;$zVhTcS(leh>S0M`{9XX7)GNs38RPwCNV zhlIyf#H;XvgxrSsDw#pT|4DZzpvMjhWa%6OJ2Tkmh21-SmtNeS`WAm(W%d?V0Mvbp zypg_ra`nmeMhd(UxUahUzaAP-AKgeWaZ13s-4<1gVKFMy(fsPHn$cOPC68{ zzhB0hmX;R1E9Ad=a%%g%*$|Z0AY1j~iI>-s%7F=RX0c$yvAF@}pHQvh0jC$7CSd!_vyYT9b2X%f` zd$T4LeOWm8vFG0lpH$yDy#n@T9ji{w%&FVA>rQdN zUS4dNL^xx@G5_L|btfVxdTsy6`ooUWGy9q+7Oe~4n7cjAZE7G^9lNc6lvW-2M6Y*k zj$C%$)!lVjAs<2-2M4c>6kW7FzWr=f!Qt(`e9t-c$9-g%CRYTzEJ?WZXkh{>omP6y z+iUR}XP#F<{r*w43!NJk28zQ_5Sj9Qmv;02x b3A?|#saf~0wIx~mxSG?1%~Btjx-|VaerrM< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/flood_lamp_off.png b/src/main/resources/assets/hbm/textures/blocks/flood_lamp_off.png new file mode 100644 index 0000000000000000000000000000000000000000..b79c23c1d8b78c5b2c5233aa5373c6d55df33362 GIT binary patch literal 4921 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 Y=Vn)id-=_66RiUx62=HBC(O$JFUW5~qW}N^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp_off.png b/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp_off.png new file mode 100644 index 0000000000000000000000000000000000000000..edc0193a7950e9f705e8824e285cafd1902279fb GIT binary patch literal 4650 zcmeHKc~BH*79SAN;9^klKv9}zl#SAJpDhFG%m@=08G((UxTdGO2O8#breOxMF+@=@ zDu=G3#uzZMmNlhWHD2+;0|*}RKwOWYgLvVAMn$5c?$-k%)TV07s?C2))l7f=eeeC= zd%t(oe2aBcqkVlw_^?#(su?be+);@iHIGM6=P3ErDO(x5!rvv>*tsCyU zrs@-CkVnf3dPVIB|9{uk^R`#BcNTy43EJnt4MPei(Y3#v#q!9fluDgOseBU;h+^HR zC5o6M6N9Q|*JY^3&CB+i^ONqYdmG@wjbEt$rMu*_8C{+Fysvh|@_=E{hjzGJHTwEP zRVmZ^O`qh~&YF{LO`uB#zb*}!anx!3rO44X+VOx@o{>XyQq!5wJ$!%Kx#rF z!`6##&pTR_S~_cPQ>rc5wFV3Qa(&o9|0NqatM;y5>ATXoP`06B#Ek*+(jh<3Tvwm* z)s6?XvxkpMA0N1-E=cJa8w2+pB)C&i<}+a03~@r-w^US1V{lgc2e#VloAOF<4{=3t zP}Fb1?JeiSr^fHml*>*()?W^8nrI!CE;hb+abf4ou)NoSyU(JpX85mu!QOx73>;nQ zl33?7oVl)W+4>F7IXgyaV@GMrlfAB-y8Y#&%7@75gEya^zf#lOr+DL*RhGQ@%8xgw zF5Vsepyh7M{j0+JujaDGp0ySDF4}ku)Lk|O>ML0rhvF6!2O}(clH)X4LE*7j5m8Pn zhG&vAq$krTvjTpw_aF>WgaV!}*7CGgC7DjeFrW#lDV-4D zO#!FVv=!xY9S#S_A>>$WXR3A8CU zfwWt)Y&faTCe3tccL)OS(zj;WjP7s6A-lntNb1&qcvJxmj**Y8fCJ&wE)>Y zBx%aYDx;p~YyKs9*zlq%~45YMLRAs@l8228$`T~0#%6_yL-hz5dcakmP$ktnHa$_f&>5(JtD(#Il?C; zGM-ea=0Nrf`0L@Jhw-U@w0+U%ef8B{)xBkVX~5`%(p0JRuXsQ|#O z0ir>bHWH&Pwj_(isDK%#AV#z6SPL48z-UZ`(If!n2}CGQfbs=Nd@0J8p<>y1J|E?E zleZ9*A?JTdGwlOKbR<27vIF}$?yZiVN+joWymh=9DR(nLkh?8V4DSfRj%AaC+fRVi zafGL1<}?z_kIsU9vrqj_F%TGEE&+*0q!L_=h$Lbh(eq_`1n2V!14)R*27>H~Znqd{ z2WBHDr2!rRSD--MTtR>COw|WHz`31Mei< zTV4M*x_sVVrbsjR2jl=(rMb_e!oW4lTOS*(a$mSu&y;&V1FQF}F)4NyYrtUU>v6VW zZadiQM{Bg|ez!gUk5NUp+u%E@Ow3lSTcZL2z>sGVwz7(8fw+ zn05Y%{5V%oN`e37*m1RS&%f7fo&T4V$IXwU!&mqQEVe;e@Jx8|<>1g=yQ1U~!KcT= zu{WPTA9bj*F(l`gpDX_A3c7H0Onlq^75)9E4dvIK4I8r^_SpRJ)lJX5oR;R3Hy56` z-u$fOnMio*A7)=}giIJ%(`UJCCiLEuwok4WS_rtqm=t>?Lmh(gzxbW zWrwux%jtW6NGY{%Y{sGb)*+>(r7vF{=A?eucrs(ztAAERzFrVrvh;jWpHspf#;(Y;VJ_ciR-3PqJ$po_^lYGU(g|W2A0j`TTIA$*&6I z99v7R-JLsIH+1=wkGAJ#e&M}-^pwK7bKh}X{X^FX3PZ2|^s;T{jImf^<``i~RYr2+ z-MHfmN!T-G)V(rQz>LiNN-@PQOkU-gp$J*53-{(+G6mdxABy+L9J$qaiYW<=da7#6 I Date: Mon, 12 Feb 2024 17:40:21 +1100 Subject: [PATCH 179/376] Add English localisation --- src/main/resources/assets/hbm/lang/en_US.lang | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a627dc85e..e784c31fd 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5059,6 +5059,9 @@ tile.lamp_tritium_green_off.name=Green Tritium Lamp tile.lamp_tritium_green_on.name=Green Tritium Lamp tile.lantern.name=Lantern tile.lantern_behemoth.name=Old Lantern +tile.spotlight_incandescent.name=Cage Lamp +tile.spotlight_fluoro.name=Fluorescent Light +tile.spotlight_halogen.name=Halogen Floodlight tile.launch_pad.name=Missile Launch Pad tile.launch_table.name=Large Launch Pad tile.leaves_layer.name=Fallen Leaves From a6ccd25119c3e6152a9f57c19a89fb17db181667 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 12 Feb 2024 08:53:50 +0100 Subject: [PATCH 180/376] tritium lamps now have a shoddy light beam implementation too more cargo cult behavior --- changelog | 13 +- gradle.properties | 4 +- src/main/java/com/hbm/blocks/ISpotlight.java | 6 + src/main/java/com/hbm/blocks/ModBlocks.java | 8 +- .../hbm/blocks/generic/ReinforcedLamp.java | 18 +- .../com/hbm/blocks/generic/TritiumLamp.java | 117 +++++++ .../com/hbm/blocks/machine/Spotlight.java | 324 +++++++++--------- .../com/hbm/blocks/machine/SpotlightBeam.java | 30 +- .../com/hbm/tileentity/TileEntityData.java | 24 +- 9 files changed, 333 insertions(+), 211 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/ISpotlight.java create mode 100644 src/main/java/com/hbm/blocks/generic/TritiumLamp.java diff --git a/changelog b/changelog index eb4e10426..f40cf352c 100644 --- a/changelog +++ b/changelog @@ -9,6 +9,15 @@ * Using desulfurized oil skips the (rather destructive) desulfurization process of the standard refinery, yielding higher-quality oils * Hydrotreating also allows cracked diesel variants to turn into their normal counterparts * Can convert coal oil directly into coal gasoline +* Rural house + * A new structure of an old brick house +* Industrial lighting + * Three new lamps that project out a beam of light for more coverage + * Cage lamps are made from tungsten filaments and project light by 2 additional blocks + * Fluorescent lights are made from mercury and project light 8 blocks, they also connect with each other to form light strips + * Halogen floodlights are made with bromine and cast a light beam 32 blocks long + * Lights are on by default and can be toggled with redstone + * Tritium lamps have also been retrofitted with longer range lighting, casting beams in all cardinal directions for 8 blocks ## Changed * Deco bocks now drop all of the time, but they drop themselves instead of ingots @@ -37,6 +46,7 @@ * Doomsday missiles are no longer laggy cluster missiles, instead they are now near-identical to thermonuclear missiles but with an added fallout radius of 100# * Fallout rain now uses the same variable length code that the MK5 uses for optimal tick utilization, making it a lot faster * Lighter sellafite variants should no longer replace darker ones in overlapping craters, making bombed-out landscapes look more natural +* Fallout's range-based effects now have a more natural gradient instead of creating smooth rings ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace @@ -50,4 +60,5 @@ * Fixed chunk-loading drones not loading chunks * Fixed several chemistry templates missing names * Fixed rampant mode random scout spawns being able to appear inside blocks -* Fixed turret rotation sometimes desyncing when out of range, this is especially noticeable with slow-moving arty \ No newline at end of file +* Fixed turret rotation sometimes desyncing when out of range, this is especially noticeable with slow-moving arty +* Fixed research reactor OC integration allowing the control rods to be set out of bounds \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index a50134150..63da2b739 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,5 +17,5 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ JamesH2 (blood mechanics, nitric acid, particle emitter), sdddddf80 (recipe configs, chinese localization,\ \ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\ \ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks),\ - \ 245tt (anvil GUI improvements), MellowArpeggiation (new animation system, turbine sounds, sound fixes),\ - \ FOlkvangrField (custom machine parts) + \ 245tt (anvil GUI improvements), MellowArpeggiation (new animation system, turbine sounds, sound fixes,\ + \ industrial lights), FOlkvangrField (custom machine parts) diff --git a/src/main/java/com/hbm/blocks/ISpotlight.java b/src/main/java/com/hbm/blocks/ISpotlight.java new file mode 100644 index 000000000..d6ccba272 --- /dev/null +++ b/src/main/java/com/hbm/blocks/ISpotlight.java @@ -0,0 +1,6 @@ +package com.hbm.blocks; + +public interface ISpotlight { + + public int getBeamLength(); +} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index cb1d3bd5e..38a9fd385 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1557,10 +1557,10 @@ public class ModBlocks { reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock, true).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(300.0F); reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane", RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, true).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(300.0F); - lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); - lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); - lamp_tritium_blue_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_blue_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_off"); - lamp_tritium_blue_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_blue_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_on"); + lamp_tritium_green_off = new TritiumLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); + lamp_tritium_green_on = new TritiumLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); + lamp_tritium_blue_off = new TritiumLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_blue_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_off"); + lamp_tritium_blue_on = new TritiumLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_blue_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_on"); lamp_uv_off = new UVLamp(false).setBlockName("lamp_uv_off").setCreativeTab(MainRegistry.blockTab); lamp_uv_on = new UVLamp(true).setBlockName("lamp_uv_on").setCreativeTab(null); diff --git a/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java b/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java index a3a7819b6..e589e35d8 100644 --- a/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java +++ b/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java @@ -78,26 +78,12 @@ public class ReinforcedLamp extends Block { } protected Block getOff() { - - if(this == ModBlocks.reinforced_lamp_on) - return ModBlocks.reinforced_lamp_off; - if(this == ModBlocks.lamp_tritium_green_on) - return ModBlocks.lamp_tritium_green_off; - if(this == ModBlocks.lamp_tritium_blue_on) - return ModBlocks.lamp_tritium_blue_off; - + if(this == ModBlocks.reinforced_lamp_on) return ModBlocks.reinforced_lamp_off; return this; } protected Block getOn() { - - if(this == ModBlocks.reinforced_lamp_off) - return ModBlocks.reinforced_lamp_on; - if(this == ModBlocks.lamp_tritium_green_off) - return ModBlocks.lamp_tritium_green_on; - if(this == ModBlocks.lamp_tritium_blue_off) - return ModBlocks.lamp_tritium_blue_on; - + if(this == ModBlocks.reinforced_lamp_off) return ModBlocks.reinforced_lamp_on; return this; } } diff --git a/src/main/java/com/hbm/blocks/generic/TritiumLamp.java b/src/main/java/com/hbm/blocks/generic/TritiumLamp.java new file mode 100644 index 000000000..77118915f --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/TritiumLamp.java @@ -0,0 +1,117 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.blocks.ISpotlight; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.Spotlight; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TritiumLamp extends Block implements ISpotlight { + + private final boolean isOn; + + public TritiumLamp(Material mat, boolean isOn) { + super(mat); + this.isOn = isOn; + + if(isOn) { + this.setLightLevel(1.0F); + } + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + + if(!world.isRemote) { + + if(this.isOn && !world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.scheduleBlockUpdate(x, y, z, this, 4); + + } else if(!this.isOn && world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.setBlock(x, y, z, getOn(), 0, 2); + } + + updateBeam(world, x, y, z); + } + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block b) { + + if(!world.isRemote) { + + if(this.isOn && !world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.scheduleBlockUpdate(x, y, z, this, 4); + + } else if(!this.isOn && world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.setBlock(x, y, z, getOn(), 0, 2); + } + + updateBeam(world, x, y, z); + } + } + + @Override + public void updateTick(World world, int x, int y, int z, Random p_149674_5_) { + + if(!world.isRemote && this.isOn && !world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.setBlock(x, y, z, getOff(), 0, 2); + } + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { + super.breakBlock(world, x, y, z, block, metadata); + if(world.isRemote) return; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) Spotlight.unpropagateBeam(world, x, y, z, dir); + } + + private void updateBeam(World world, int x, int y, int z) { + if(!isOn) return; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) Spotlight.propagateBeam(world, x, y, z, dir, getBeamLength()); + } + + @Override + public Item getItemDropped(int i, Random r, int j) { + return Item.getItemFromBlock(getOff()); + } + + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + return Item.getItemFromBlock(getOff()); + } + + @Override + protected ItemStack createStackedBlock(int e) { + return new ItemStack(getOff()); + } + + protected Block getOff() { + if(this == ModBlocks.lamp_tritium_green_on) return ModBlocks.lamp_tritium_green_off; + if(this == ModBlocks.lamp_tritium_blue_on) return ModBlocks.lamp_tritium_blue_off; + return this; + } + + protected Block getOn() { + if(this == ModBlocks.lamp_tritium_green_off) return ModBlocks.lamp_tritium_green_on; + if(this == ModBlocks.lamp_tritium_blue_off) return ModBlocks.lamp_tritium_blue_on; + return this; + } + + @Override + public int getBeamLength() { + return 8; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java index 1a5bf2fed..035405b0f 100644 --- a/src/main/java/com/hbm/blocks/machine/Spotlight.java +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -5,6 +5,7 @@ import com.hbm.blocks.ModBlocks; import java.util.Random; import com.hbm.blocks.BlockEnums.LightType; +import com.hbm.blocks.ISpotlight; import com.hbm.main.ResourceManager; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -21,24 +22,24 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class Spotlight extends Block { +public class Spotlight extends Block implements ISpotlight { - // I'd be extending the ReinforcedLamp class if it wasn't for the inverted behaviour of these specific lights - // I want these blocks to be eminently useful, so removing the need for redstone by default is desired, - // these act more like redstone torches, in that applying a signal turns them off - public boolean isOn; + // I'd be extending the ReinforcedLamp class if it wasn't for the inverted behaviour of these specific lights + // I want these blocks to be eminently useful, so removing the need for redstone by default is desired, + // these act more like redstone torches, in that applying a signal turns them off + public boolean isOn; - public int beamLength; - public LightType type; + public int beamLength; + public LightType type; public Spotlight(Material mat, int beamLength, LightType type, boolean isOn) { super(mat); - - this.beamLength = beamLength; - this.type = type; - this.isOn = isOn; - if (isOn) setLightLevel(1.0F); + this.beamLength = beamLength; + this.type = type; + this.isOn = isOn; + + if(isOn) setLightLevel(1.0F); } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @@ -48,20 +49,20 @@ public class Spotlight extends Block { return renderID; } - public WavefrontObject getModel() { - switch (type) { - case FLUORESCENT: return (WavefrontObject) ResourceManager.fluorescent_lamp; - case HALOGEN: return (WavefrontObject) ResourceManager.flood_lamp; - default: return (WavefrontObject) ResourceManager.cage_lamp; - } - } + public WavefrontObject getModel() { + switch(type) { + case FLUORESCENT: return (WavefrontObject) ResourceManager.fluorescent_lamp; + case HALOGEN: return (WavefrontObject) ResourceManager.flood_lamp; + default: return (WavefrontObject) ResourceManager.cage_lamp; + } + } - public String getPartName(int connectionCount) { - switch (type) { - case HALOGEN: return "FloodLamp"; - default: return "CageLamp"; - } - } + public String getPartName(int connectionCount) { + switch(type) { + case HALOGEN: return "FloodLamp"; + default: return "CageLamp"; + } + } @Override public boolean isOpaqueCube() { @@ -81,75 +82,70 @@ public class Spotlight extends Block { @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { ForgeDirection dir = getDirection(world, x, y, z); - float[] bounds = swizzleBounds(dir); - float[] offset = new float[] { 0.5F - dir.offsetX * (0.5F - bounds[0]), 0.5F - dir.offsetY * (0.5F - bounds[1]), 0.5F - dir.offsetZ * (0.5F - bounds[2]) }; - - setBlockBounds(offset[0] - bounds[0], offset[1] - bounds[1], offset[2] - bounds[2], offset[0] + bounds[0], offset[1] + bounds[1], offset[2] + bounds[2]); + float[] bounds = swizzleBounds(dir); + float[] offset = new float[] { 0.5F - dir.offsetX * (0.5F - bounds[0]), 0.5F - dir.offsetY * (0.5F - bounds[1]), 0.5F - dir.offsetZ * (0.5F - bounds[2]) }; + + setBlockBounds(offset[0] - bounds[0], offset[1] - bounds[1], offset[2] - bounds[2], offset[0] + bounds[0], offset[1] + bounds[1], offset[2] + bounds[2]); } - private float[] swizzleBounds(ForgeDirection dir) { - float[] bounds = getBounds(); - switch (dir) { - case EAST: - case WEST: - return new float[] { bounds[2], bounds[1], bounds[0] }; - case UP: - case DOWN: - return new float[] { bounds[1], bounds[2], bounds[0] }; - default: - return bounds; - } - } + private float[] swizzleBounds(ForgeDirection dir) { + float[] bounds = getBounds(); + switch(dir) { + case EAST: + case WEST: return new float[] { bounds[2], bounds[1], bounds[0] }; + case UP: + case DOWN: return new float[] { bounds[1], bounds[2], bounds[0] }; + default: return bounds; + } + } - // Returns an xyz (half-)size for a given object type - private float[] getBounds() { - switch (type) { - case FLUORESCENT: return new float[] {0.5F, 0.5F, 0.1F}; - case HALOGEN: return new float[] {0.35F, 0.25F, 0.2F}; - default: return new float[] {0.25F, 0.2F, 0.15F}; - } - } + // Returns an xyz (half-)size for a given object type + private float[] getBounds() { + switch(type) { + case FLUORESCENT: return new float[] { 0.5F, 0.5F, 0.1F }; + case HALOGEN: return new float[] { 0.35F, 0.25F, 0.2F }; + default: return new float[] { 0.25F, 0.2F, 0.15F }; + } + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float hx, float hy, float hz, int initData) { + return side << 1; + } - @Override - public int onBlockPlaced(World world, int x, int y, int z, int side, float hx, float hy, float hz, int initData) { - return side << 1; - } - @Override public void onBlockAdded(World world, int x, int y, int z) { - if (world.isRemote) return; - - if (updatePower(world, x, y, z)) return; - + if(world.isRemote) return; + if(updatePower(world, x, y, z)) return; updateBeam(world, x, y, z); } - private boolean updatePower(World world, int x, int y, int z) { - boolean isPowered = world.isBlockIndirectlyGettingPowered(x, y, z); - if (isOn && isPowered) { - world.scheduleBlockUpdate(x, y, z, this, 4); - return true; - } else if (!isOn && !isPowered) { - world.setBlock(x, y, z, getOn(), world.getBlockMetadata(x, y, z), 2); - return true; - } + private boolean updatePower(World world, int x, int y, int z) { + boolean isPowered = world.isBlockIndirectlyGettingPowered(x, y, z); + if(isOn && isPowered) { + world.scheduleBlockUpdate(x, y, z, this, 4); + return true; + } else if(!isOn && !isPowered) { + world.setBlock(x, y, z, getOn(), world.getBlockMetadata(x, y, z), 2); + return true; + } - return false; - } + return false; + } - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { - ForgeDirection dir = getDirection(metadata); - super.breakBlock(world, x, y, z, block, metadata); + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { + ForgeDirection dir = getDirection(metadata); + super.breakBlock(world, x, y, z, block, metadata); - if (world.isRemote) return; - - unpropagateBeam(world, x, y, z, dir); - } + if(world.isRemote) return; + + unpropagateBeam(world, x, y, z, dir); + } @Override public void updateTick(World world, int x, int y, int z, Random p_149674_5_) { - if (world.isRemote) return; + if (world.isRemote) return; if (isOn && world.isBlockIndirectlyGettingPowered(x, y, z)) { world.setBlock(x, y, z, getOff(), world.getBlockMetadata(x, y, z), 2); @@ -159,20 +155,20 @@ public class Spotlight extends Block { // Repropagate the beam if we've become unblocked @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block neighborBlock) { - if (world.isRemote) return; - if (neighborBlock instanceof SpotlightBeam) return; + if(world.isRemote) return; + if(neighborBlock instanceof SpotlightBeam) return; - ForgeDirection dir = getDirection(world, x, y, z); + ForgeDirection dir = getDirection(world, x, y, z); - if (!canPlace(world, x, y, z, dir)) { - dropBlockAsItem(world, x, y, z, 0, 0); - world.setBlockToAir(x, y, z); - return; - } + if(!canPlace(world, x, y, z, dir)) { + dropBlockAsItem(world, x, y, z, 0, 0); + world.setBlockToAir(x, y, z); + return; + } - if (updatePower(world, x, y, z)) return; + if(updatePower(world, x, y, z)) return; - updateBeam(world, x, y, z); + updateBeam(world, x, y, z); } @Override @@ -184,38 +180,38 @@ public class Spotlight extends Block { return canPlace(world, x, y, z, dir); } - // BlockSlab doesn't actually properly return isSideSolid, - // probably because MOJANK thought this would only ever be used for torches, - // which can't be placed on ceilings... - private boolean canPlace(World world, int x, int y, int z, ForgeDirection dir) { - x -= dir.offsetX; - y -= dir.offsetY; - z -= dir.offsetZ; + // BlockSlab doesn't actually properly return isSideSolid, + // probably because MOJANK thought this would only ever be used for torches, + // which can't be placed on ceilings... + private boolean canPlace(World world, int x, int y, int z, ForgeDirection dir) { + x -= dir.offsetX; + y -= dir.offsetY; + z -= dir.offsetZ; - Block block = world.getBlock(x, y, z); - if (block instanceof BlockSlab) { - int meta = world.getBlockMetadata(x, y, z); - return dir == ((meta & 8) == 8 ? ForgeDirection.UP : ForgeDirection.DOWN) || block.func_149730_j(); - } + Block block = world.getBlock(x, y, z); + if(block instanceof BlockSlab) { + int meta = world.getBlockMetadata(x, y, z); + return dir == ((meta & 8) == 8 ? ForgeDirection.UP : ForgeDirection.DOWN) || block.func_149730_j(); + } return block.isSideSolid(world, x, y, z, dir); - } - - private void updateBeam(World world, int x, int y, int z) { - if (!isOn) return; - - ForgeDirection dir = getDirection(world, x, y, z); - propagateBeam(world, x, y, z, dir, beamLength); } - public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z) { - int metadata = world.getBlockMetadata(x, y, z); - return getDirection(metadata); - } + private void updateBeam(World world, int x, int y, int z) { + if(!isOn) return; - public ForgeDirection getDirection(int metadata) { - return ForgeDirection.getOrientation(metadata >> 1); - } + ForgeDirection dir = getDirection(world, x, y, z); + propagateBeam(world, x, y, z, dir, beamLength); + } + + public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z) { + int metadata = world.getBlockMetadata(x, y, z); + return getDirection(metadata); + } + + public ForgeDirection getDirection(int metadata) { + return ForgeDirection.getOrientation(metadata >> 1); + } @Override public Item getItemDropped(int i, Random r, int j) { @@ -233,62 +229,66 @@ public class Spotlight extends Block { return new ItemStack(getOn()); } - // Recursively add beam blocks, updating any that already exist with new incoming light directions - public static void propagateBeam(World world, int x, int y, int z, ForgeDirection dir, int distance) { - distance--; - if (distance <= 0) return; + // Recursively add beam blocks, updating any that already exist with new incoming light directions + public static void propagateBeam(World world, int x, int y, int z, ForgeDirection dir, int distance) { + distance--; + if(distance <= 0) + return; - x += dir.offsetX; - y += dir.offsetY; - z += dir.offsetZ; + x += dir.offsetX; + y += dir.offsetY; + z += dir.offsetZ; - Block block = world.getBlock(x, y, z); - if (!block.isAir(world, x, y, z)) return; + Block block = world.getBlock(x, y, z); + if(!block.isAir(world, x, y, z)) + return; - if (!(block instanceof SpotlightBeam)) { - world.setBlock(x, y, z, ModBlocks.spotlight_beam); - } + if(!(block instanceof SpotlightBeam)) { + world.setBlock(x, y, z, ModBlocks.spotlight_beam); + } - // If we encounter an existing beam, add a new INCOMING direction to the metadata - SpotlightBeam.setDirection(world, x, y, z, dir, true); + // If we encounter an existing beam, add a new INCOMING direction to the + // metadata + SpotlightBeam.setDirection(world, x, y, z, dir, true); - propagateBeam(world, x, y, z, dir, distance); - } + propagateBeam(world, x, y, z, dir, distance); + } - // Recursively delete beam blocks, if they aren't still illuminated from a different direction - public static void unpropagateBeam(World world, int x, int y, int z, ForgeDirection dir) { - x += dir.offsetX; - y += dir.offsetY; - z += dir.offsetZ; + // Recursively delete beam blocks, if they aren't still illuminated from a different direction + public static void unpropagateBeam(World world, int x, int y, int z, ForgeDirection dir) { + x += dir.offsetX; + y += dir.offsetY; + z += dir.offsetZ; - Block block = world.getBlock(x, y, z); - if (!(block instanceof SpotlightBeam)) return; + Block block = world.getBlock(x, y, z); + if(!(block instanceof SpotlightBeam)) + return; - // Remove the metadata associated with this direction - // If all directions are set to zero, delete the beam - if (SpotlightBeam.setDirection(world, x, y, z, dir, false) == 0) { - world.setBlockToAir(x, y, z); - } + // Remove the metadata associated with this direction + // If all directions are set to zero, delete the beam + if(SpotlightBeam.setDirection(world, x, y, z, dir, false) == 0) { + world.setBlockToAir(x, y, z); + } - unpropagateBeam(world, x, y, z, dir); - } + unpropagateBeam(world, x, y, z, dir); + } - // Travels back through a beam to the source, and if found, repropagates the beam - public static void backPropagate(World world, int x, int y, int z, ForgeDirection dir) { - x -= dir.offsetX; - y -= dir.offsetY; - z -= dir.offsetZ; + // Travels back through a beam to the source, and if found, repropagates the beam + public static void backPropagate(World world, int x, int y, int z, ForgeDirection dir) { + x -= dir.offsetX; + y -= dir.offsetY; + z -= dir.offsetZ; - Block block = world.getBlock(x, y, z); - if (block instanceof Spotlight) { - Spotlight spot = (Spotlight) block; - propagateBeam(world, x, y, z, dir, spot.beamLength); - } else if (!(block instanceof SpotlightBeam)) { - return; - } + Block block = world.getBlock(x, y, z); + if(block instanceof ISpotlight) { + ISpotlight spot = (ISpotlight) block; + propagateBeam(world, x, y, z, dir, spot.getBeamLength()); + } else if(!(block instanceof SpotlightBeam)) { + return; + } - backPropagate(world, x, y, z, dir); - } + backPropagate(world, x, y, z, dir); + } protected Block getOff() { if(this == ModBlocks.spotlight_incandescent) @@ -311,5 +311,9 @@ public class Spotlight extends Block { return this; } - + + @Override + public int getBeamLength() { + return this.beamLength; + } } diff --git a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java index 479159779..b96cc4a6a 100644 --- a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java +++ b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java @@ -16,25 +16,25 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class SpotlightBeam extends BlockContainer { - - public SpotlightBeam() { - super(Material.air); - setLightLevel(1.0F); - setLightOpacity(0); - setHardness(-1); - setResistance(1_000_000); - setBlockBounds(0, 0, 0, 0, 0, 0); - } + + public SpotlightBeam() { + super(Material.air); + setLightLevel(1.0F); + setLightOpacity(0); + setHardness(-1); + setResistance(1_000_000); + setBlockBounds(0, 0, 0, 0, 0, 0); + } // If a block is placed onto the beam, handle the new cutoff - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { if (!world.isRemote) { for (ForgeDirection dir : getDirections(world, x, y, z)) { Spotlight.unpropagateBeam(world, x, y, z, dir); } } - super.breakBlock(world, x, y, z, block, metadata); + super.breakBlock(world, x, y, z, block, metadata); } @@ -92,7 +92,7 @@ public class SpotlightBeam extends BlockContainer { public boolean isOpaqueCube() { return false; } - + @Override public boolean isAir(IBlockAccess world, int x, int y, int z) { return true; @@ -105,12 +105,11 @@ public class SpotlightBeam extends BlockContainer { @Override public boolean isLeaves(IBlockAccess world, int x, int y, int z) { - // This was taken from GregsLighting (cargo cult behaviour) + // This was taken from GregsLighting (cargo cult behaviour) // This is a bit screwy, but it's needed so that trees are not prevented from growing // near a floodlight beam. return true; } - @Override public boolean renderAsNormalBlock() { @@ -131,5 +130,4 @@ public class SpotlightBeam extends BlockContainer { public int getRenderType() { return -1; } - } diff --git a/src/main/java/com/hbm/tileentity/TileEntityData.java b/src/main/java/com/hbm/tileentity/TileEntityData.java index 1356d66c3..df740c776 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityData.java +++ b/src/main/java/com/hbm/tileentity/TileEntityData.java @@ -9,18 +9,18 @@ import net.minecraft.tileentity.TileEntity; // Use this TE if you need more bits, that's it. Blame Mojang public class TileEntityData extends TileEntity { - public int metadata; - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - metadata = nbt.getInteger("meta"); - } + public int metadata; - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("meta", metadata); - } + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + metadata = nbt.getInteger("meta"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("meta", metadata); + } } From 6ca2fc463a82469117b027db85b500c3bbe192cd Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 12 Feb 2024 10:10:53 +0100 Subject: [PATCH 181/376] let's see if this does anything --- changelog | 1 + .../java/api/hbm/fluid/IFluidConnector.java | 3 ++- src/main/java/api/hbm/fluid/PipeNet.java | 6 +++--- .../java/com/hbm/blocks/machine/BlockPWR.java | 13 ++++++++++++ .../com/hbm/blocks/machine/Spotlight.java | 20 +++++++----------- .../com/hbm/sound/AudioWrapperClient.java | 4 +++- .../hbm/tileentity/TileEntityDoorGeneric.java | 3 --- .../TileEntityMachineStrandCaster.java | 12 +++++++++++ .../network/TileEntityPipeBaseNT.java | 13 ++++++++++++ .../network/TileEntityPipeExhaust.java | 13 ++++++++++++ .../assets/hbm/textures/blocks/ash.png | Bin 718 -> 745 bytes 11 files changed, 68 insertions(+), 20 deletions(-) diff --git a/changelog b/changelog index f40cf352c..be9868a23 100644 --- a/changelog +++ b/changelog @@ -47,6 +47,7 @@ * Fallout rain now uses the same variable length code that the MK5 uses for optimal tick utilization, making it a lot faster * Lighter sellafite variants should no longer replace darker ones in overlapping craters, making bombed-out landscapes look more natural * Fallout's range-based effects now have a more natural gradient instead of creating smooth rings +* Fallout has been made significantly darker and less saturated to blend in with the crater more ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index a47b56def..a51bcdeb2 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -4,13 +4,14 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.ILoadedTile; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public interface IFluidConnector { +public interface IFluidConnector extends ILoadedTile { /** * Returns the amount of fluid that remains diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index cab1fd29f..3dacf2f0b 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -90,9 +90,9 @@ public class PipeNet implements IPipeNet { @Override public long transferFluid(long fill, int pressure) { - - this.subscribers.removeIf(x -> - x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() + + subscribers.removeIf(x -> + x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() || !x.isLoaded() ); if(this.subscribers.isEmpty()) diff --git a/src/main/java/com/hbm/blocks/machine/BlockPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPWR.java index eeecb464a..06b650798 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockPWR.java +++ b/src/main/java/com/hbm/blocks/machine/BlockPWR.java @@ -316,5 +316,18 @@ public class BlockPWR extends BlockContainer implements IBlockCT { return false; } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } } } diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java index 035405b0f..b5f7b0c56 100644 --- a/src/main/java/com/hbm/blocks/machine/Spotlight.java +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -38,6 +38,8 @@ public class Spotlight extends Block implements ISpotlight { this.beamLength = beamLength; this.type = type; this.isOn = isOn; + + this.setHardness(1F); if(isOn) setLightLevel(1.0F); } @@ -291,23 +293,17 @@ public class Spotlight extends Block implements ISpotlight { } protected Block getOff() { - if(this == ModBlocks.spotlight_incandescent) - return ModBlocks.spotlight_incandescent_off; - if(this == ModBlocks.spotlight_fluoro) - return ModBlocks.spotlight_fluoro_off; - if(this == ModBlocks.spotlight_halogen) - return ModBlocks.spotlight_halogen_off; + if(this == ModBlocks.spotlight_incandescent) return ModBlocks.spotlight_incandescent_off; + if(this == ModBlocks.spotlight_fluoro) return ModBlocks.spotlight_fluoro_off; + if(this == ModBlocks.spotlight_halogen) return ModBlocks.spotlight_halogen_off; return this; } protected Block getOn() { - if(this == ModBlocks.spotlight_incandescent_off) - return ModBlocks.spotlight_incandescent; - if(this == ModBlocks.spotlight_fluoro_off) - return ModBlocks.spotlight_fluoro; - if(this == ModBlocks.spotlight_halogen_off) - return ModBlocks.spotlight_halogen; + if(this == ModBlocks.spotlight_incandescent_off) return ModBlocks.spotlight_incandescent; + if(this == ModBlocks.spotlight_fluoro_off) return ModBlocks.spotlight_fluoro; + if(this == ModBlocks.spotlight_halogen_off) return ModBlocks.spotlight_halogen; return this; } diff --git a/src/main/java/com/hbm/sound/AudioWrapperClient.java b/src/main/java/com/hbm/sound/AudioWrapperClient.java index bc259c1dd..ca5d038ba 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClient.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClient.java @@ -72,8 +72,10 @@ public class AudioWrapperClient extends AudioWrapper { @Override public void stopSound() { - if(sound != null) + if(sound != null) { sound.stop(); + sound.setKeepAlive(0); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 0fb24cdb2..74497304d 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -271,7 +271,6 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn if(this.state == 1 && state == 2){ // Door transitioning to closed if(audio != null) { audio.stopSound(); - audio.setKeepAlive(0); } if(doorType.getCloseSoundLoop() != null){ @@ -294,12 +293,10 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn if(state == 1 || state == 0){ // Door finished any transition if(audio != null){ audio.stopSound(); - audio.setKeepAlive(0); audio = null; } if(audio2 != null){ audio2.stopSound(); - audio.setKeepAlive(0); audio2 = null; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 3e78fb541..23e86b847 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -325,4 +325,16 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase return bb; } + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java index c238da297..4db863014 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java @@ -153,4 +153,17 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor super.writeToNBT(nbt); nbt.setInteger("type", this.type.getID()); } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java index 992aca682..5d4ac7d1c 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java @@ -112,4 +112,17 @@ public class TileEntityPipeExhaust extends TileEntity implements IFluidConductor if(type == Fluids.SMOKE_LEADED) nets[1] = network; if(type == Fluids.SMOKE_POISON) nets[2] = network; } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } } diff --git a/src/main/resources/assets/hbm/textures/blocks/ash.png b/src/main/resources/assets/hbm/textures/blocks/ash.png index a1631562859cbd126c312e4da1bd3181a141c4ab..7ad5b19dbf0b222d9a9f36ba71dfd2b6df95afd5 100644 GIT binary patch delta 732 zcmV<20wev-1?dHl8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0-#AmK~y-6CDO}s z;zk%i;iJAtZCwxu+l1JenoTOpRCam)_ed7;ZEQ1u0HKzCbt?-m&-Sa6{Pp*r^S8(E z%pss`0)WLb%D^NugA5p@vCd+&Wezh%Rq*q3M=w3;+n?lFlDm?%%&#&CLoGDH$s*2`z&7s{hSjX+EL1VdGFR0F6NXwM{ z?m$ohi)Ft*0DlSI_k-!4{3NJn8CNJ;^qaPW>apT+NBf|xJ^CWOGLJ5fkM z?|ZZ}WI6?A%DO~j`1t(5YDHNsDDsk-3y1C}vnZ7JJu~wcj&s~McPJF8&9K@cBCMBd zw%Z40;Bvh%g%MCpQBZ^Qtg02(Sw=66Vc;Sc-ga*sk4MU?Kr6$!J)x~3%QF%T+q*4+ z38gS-t$#^XO5&hxTk34d_I8WaDTDX4=L1!}VDy3v6ID@iJRZq%hq>Eq=!YwP=uuHo zmkT5YM)|ri(eTHwzteX;i)FKp98RzK*!{qC*DE?`hTs`QNc2Ev9aUa>y0+uD?Kd)Kxo{!qfCS<6e#8|y zsm(AyUf*fzhGkQ-uocI)W%QmXk-DmR-Mugiq`9TYbDVQT2}}sFi~JApd}xPp4PdJP O0000t{za`u_tJA(r1Sg86?_{-OS-k&~NwSOwIB7_>)S#PYyt6nKU z5K)43#>+BW`oS;*f8M_fT491YN>U}gjR>*cbX8H4g!OZ8Tp0b>Zk@=BY7y8B~q-qU0anpcOS zyIn8+Ya!B%7k`F&7;G2n(7tp=s2pW&-*26))d7~KmK*B9vZ&Cjn}zdZv7Q#CU0mk+S%x{rX-Xe=<)sGT}X6- z^J&pPE>GW|zEKJpl}%CsUU8yiaohz%^Q6|%DzDDZzkjz4b~ksrB@vwtC$JzPC2T_t zWVDlOU3cw%P3Ntp^L8V{q#Rymzv?C}v#iSNvW2UkBE;x`<3NJQ_^CXChXf=8wl2Ej z)&0ZcV)Zz6v+H8O3h51ezhjNac~Ds4<%ZgSH+7dR`QyX>gFu-H`Z7O@Ds@vZvrB<*h-e{z7wO=Ji@u7LHMq9K7`s$;A*KBM z=@Uay7Rg<8XHB%kHll$jJe5>Lj#8w8g9zT>$fKFurERT3EYi334b^&|-%Vo&+8Mf? z&?*wx5+;L8AG-7FSteN_awU|@ePFI{yBG6cCOT`lzTBMkA}4j7QB3@ziH3c7c%IMa n^Xu48(S}UQ3U(oJB;x-8CtZ9}gU^VU00000NkvXXu0mjfV&qC^ From 6f00c6805169d3ab120d951738177457dd85bf18 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 12 Feb 2024 16:49:47 +0100 Subject: [PATCH 182/376] tweaks, recipes, hydrotreater texture --- changelog | 11 +++ .../com/hbm/blocks/generic/BlockKeyhole.java | 5 -- .../java/com/hbm/crafting/WeaponRecipes.java | 6 +- .../hbm/entity/effect/EntityNukeTorex.java | 12 +++ .../inventory/recipes/ArcWelderRecipes.java | 1 + .../inventory/recipes/AssemblerRecipes.java | 2 +- .../hbm/inventory/recipes/MixerRecipes.java | 4 +- .../java/com/hbm/items/armor/ItemModCard.java | 2 +- .../com/hbm/items/armor/ItemModCharm.java | 2 +- .../com/hbm/items/armor/ItemModMedal.java | 2 +- .../java/com/hbm/items/armor/ItemModV1.java | 2 +- .../bomb/TileEntityLaunchPadLarge.java | 79 ++++++++++++++---- .../oil/TileEntityMachineHydrotreater.java | 15 ++++ src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../textures/models/machines/hydrotreater.png | Bin 941 -> 2008 bytes 16 files changed, 116 insertions(+), 31 deletions(-) diff --git a/changelog b/changelog index be9868a23..5b3c195cb 100644 --- a/changelog +++ b/changelog @@ -48,6 +48,17 @@ * Lighter sellafite variants should no longer replace darker ones in overlapping craters, making bombed-out landscapes look more natural * Fallout's range-based effects now have a more natural gradient instead of creating smooth rings * Fallout has been made significantly darker and less saturated to blend in with the crater more +* Except for solid fueled missiles, all missiles are now fueled in the launch pad and no longer need to be crafted with fuel +* Missile fuel types have been adjusted + * Tier 0: Solid Fuel + * Tier 1: Ethanol + Peroxide + * Tier 2: Kerosene + Peroxide + * Tier 3: Kerosene + LOXY + * Tier 4: Jet Fuel + LOXY +* The micro EMP has been made cheaper, while the schrabidium missile has been made more expensive +* Oxyhydrogen can now be made by mixing air (i.e. nothing) with hydrogen + * The oxygen + hydrogen recipe remains in order to give an option to void oxygen without needing to resort to flare stacks +* Removed some of the lower tier items fomr the red room loot pool, making the average red room better ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java index b1306c8cd..74b2ffdfd 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -221,26 +221,21 @@ public class BlockKeyhole extends BlockStone { public static void initPedestal() { pedestalItems = new ArrayList(); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ballistic_gauntlet), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.night_vision), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.protection_charm), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.armor_polish), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.bandaid), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.serum), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.quartz_plutonium), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.morning_glory), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.lodestone), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.spider_milk), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ink), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.heart_container), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.black_diamond), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wd40), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.scrumpy), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wild_p), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_aos), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_qos), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.starmetal_sword), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.radaway_flush), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.gem_alexandrite), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.crackpipe), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.flask_infusion), 5)); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 885ec1a96..b2e085d57 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -30,10 +30,8 @@ public class WeaponRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_taint, 1), new Object[] { ModItems.missile_assembly, ModItems.bucket_mud, ModItems.powder_spark_mix, ModItems.powder_magic }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_micro, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_bhole, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_black_hole }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_aschrab }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.cell_sas3, ModItems.circuit_targeting_tier4 }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_emp, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModBlocks.emp_bomb, ModItems.circuit_targeting_tier3 }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_anti_ballistic, 1), new Object[] { ModItems.missile_generic, ModItems.circuit_targeting_tier3 }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.cell_anti_schrabidium, ANY_HARDPLASTIC.ingot() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_emp, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModBlocks.emp_bomb }); //Missile fins CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_stability_10_flat, 1), new Object[] { "PSP", "P P", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold }); diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 1cb44d301..9951b9410 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -1,5 +1,6 @@ package com.hbm.entity.effect; +import java.awt.Color; import java.util.ArrayList; import com.hbm.util.BobMathUtil; @@ -460,6 +461,17 @@ public class EntityNukeTorex extends Entity { Math.max(col * 2, 0.25), Math.max(col * 0.5, 0.25) ); + } else if(type == 2) { + Color color = Color.getHSBColor(this.angle / 2F / (float) Math.PI, 1F, 1F); + if(this.type == TorexType.RING) { + this.color = Vec3.createVectorHelper( + Math.max(col * 1, 0.25), + Math.max(col * 1, 0.25), + Math.max(col * 1, 0.25) + ); + } else { + this.color = Vec3.createVectorHelper(color.getRed() / 255D, color.getGreen() / 255D, color.getBlue() / 255D); + } } else { this.color = Vec3.createVectorHelper( Math.max(col * 2, 0.25), diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index b4bf12a3a..0a61eb238 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -90,6 +90,7 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 12), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plateCast(), 3))); //Missiles + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_anti_ballistic), 100, 5_000L, new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.missile_assembly), new ComparableStack(ModItems.thruster_small, 4))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_generic), 100, 5_000L, new ComparableStack(ModItems.warhead_generic_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary), 100, 5_000L, new ComparableStack(ModItems.warhead_incendiary_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster), 100, 5_000L, new ComparableStack(ModItems.warhead_cluster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index dd0a5e044..58e25c9e8 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -178,7 +178,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack(TI.plate(), 6), },100); makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); - makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_full, 3, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); + makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 2), new OreDictStack(TI.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.rocket_fuel, 8), new ComparableStack(ModItems.circuit_targeting_tier1, 1), }, 200); makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new OreDictStack(ANY_RUBBER.ingot(), 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit_targeting_tier2) },100); makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3) },150); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 35f82fdb7..ec5890cd1 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -71,7 +71,9 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.THORIUM_SALT, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.CHLORINE, 1000)).setSolid(new OreDictStack(TH232.dust()))); register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); - register(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); + register(Fluids.OXYHYDROGEN, + new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)), + new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); register(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0))); register(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0))); diff --git a/src/main/java/com/hbm/items/armor/ItemModCard.java b/src/main/java/com/hbm/items/armor/ItemModCard.java index 4249d0591..e5a27c897 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCard.java +++ b/src/main/java/com/hbm/items/armor/ItemModCard.java @@ -15,7 +15,7 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent; public class ItemModCard extends ItemArmorMod { public ItemModCard() { - super(ArmorModHandler.helmet_only, true, false, false, false); + super(ArmorModHandler.helmet_only, true, true, false, false); this.setCreativeTab(null); } diff --git a/src/main/java/com/hbm/items/armor/ItemModCharm.java b/src/main/java/com/hbm/items/armor/ItemModCharm.java index 2d68ff328..cc0b995c8 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCharm.java +++ b/src/main/java/com/hbm/items/armor/ItemModCharm.java @@ -14,7 +14,7 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent; public class ItemModCharm extends ItemArmorMod { public ItemModCharm() { - super(ArmorModHandler.helmet_only, false, true, false, false); + super(ArmorModHandler.helmet_only, true, true, false, false); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModMedal.java b/src/main/java/com/hbm/items/armor/ItemModMedal.java index 99fc25b59..693c8c9ff 100644 --- a/src/main/java/com/hbm/items/armor/ItemModMedal.java +++ b/src/main/java/com/hbm/items/armor/ItemModMedal.java @@ -13,7 +13,7 @@ import net.minecraft.util.EnumChatFormatting; public class ItemModMedal extends ItemArmorMod { public ItemModMedal() { - super(ArmorModHandler.extra, false, true, false, false); + super(ArmorModHandler.plate_only, true, true, false, false); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModV1.java b/src/main/java/com/hbm/items/armor/ItemModV1.java index bb5d8a3a6..fa6b0b9d7 100644 --- a/src/main/java/com/hbm/items/armor/ItemModV1.java +++ b/src/main/java/com/hbm/items/armor/ItemModV1.java @@ -18,7 +18,7 @@ public class ItemModV1 extends ItemArmorMod implements IArmorModDash { private static final UUID speed = UUID.fromString("1d11e63e-28c4-4e14-b09f-fe0bd1be708f"); public ItemModV1() { - super(ArmorModHandler.extra, false, true, false, false); + super(ArmorModHandler.plate_only, false, true, false, false); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index 1d7b734be..df1726998 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.bomb; import com.hbm.inventory.container.ContainerLaunchPadLarge; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUILaunchPadLarge; import com.hbm.items.weapon.ItemMissile; import com.hbm.tileentity.IGUIProvider; @@ -8,6 +10,7 @@ import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; @@ -17,9 +20,10 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IRadarCommandReceiver { +public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { public ItemStack toRender; public int formFactor = -1; @@ -35,15 +39,21 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I public float prevLift = 1F; public float prevErector = 90F; public float syncLift; - public float syncErector ; - public int delay = 20; + public float syncErector; private int sync; + /** Delay between erector movements */ + public int delay = 20; public long power; public final long maxPower = 100_000; + + public FluidTank[] tanks; public TileEntityLaunchPadLarge() { super(7); + this.tanks = new FluidTank[2]; + this.tanks[0] = new FluidTank(Fluids.NONE, 24_000); + this.tanks[1] = new FluidTank(Fluids.NONE, 24_000); } @Override @@ -61,7 +71,9 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I if(slots[0] != null) { if(slots[0].getItem() instanceof ItemMissile) { - this.formFactor = ((ItemMissile) slots[0].getItem()).formFactor.ordinal(); + ItemMissile missile = (ItemMissile) slots[0].getItem(); + this.formFactor = missile.formFactor.ordinal(); + setFuel(missile); } if(this.erector == 90F && this.lift == 1F) { @@ -148,6 +160,28 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I } } } + + @SuppressWarnings("incomplete-switch") //shut up + public void setFuel(ItemMissile missile) { + switch(missile.fuel) { + case ETHANOL_PEROXIDE: + tanks[0].setTankType(Fluids.ETHANOL); + tanks[1].setTankType(Fluids.ACID); + break; + case KEROSENE_PEROXIDE: + tanks[0].setTankType(Fluids.KEROSENE); + tanks[1].setTankType(Fluids.ACID); + break; + case KEROSENE_LOXY: + tanks[0].setTankType(Fluids.KEROSENE); + tanks[1].setTankType(Fluids.OXYGEN); + break; + case JETFUEL_LOXY: + tanks[0].setTankType(Fluids.KEROSENE_REFORM); + tanks[1].setTankType(Fluids.OXYGEN); + break; + } + } @Override public void serialize(ByteBuf buf) { @@ -189,21 +223,34 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I this.sync = 3; } } - + @Override - public long getPower() { - return power; + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + power = nbt.getLong("power"); + + this.erected = nbt.getBoolean("erected"); + this.readyToLoad = nbt.getBoolean("readyToLoad"); + this.lift = nbt.getFloat("lift"); + this.erector = nbt.getFloat("erector"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + + nbt.setBoolean("erected", erected); + nbt.setBoolean("readyToLoad", readyToLoad); + nbt.setFloat("lift", lift); + nbt.setFloat("erector", erector); } - @Override - public void setPower(long power) { - this.power = power; - } - - @Override - public long getMaxPower() { - return maxPower; - } + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + @Override public FluidTank[] getAllTanks() { return this.tanks; } + @Override public FluidTank[] getReceivingTanks() { return this.tanks; } @Override public boolean sendCommandPosition(int x, int y, int z) { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java index 66f296d0d..8590c8098 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java @@ -19,6 +19,7 @@ import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -73,8 +74,22 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme } } } + + this.networkPackNT(25); } } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + for(int i = 0; i < 4; i++) tanks[i].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + for(int i = 0; i < 4; i++) tanks[i].deserialize(buf); + } private void reform() { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 61b7c73cf..ca43e4679 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -343,6 +343,7 @@ container.heaterFirebox=Feuerbüchse container.heaterHeatex=Wärmetauscher container.heaterOilburner=Brenner container.heaterOven=Heizofen +container.hydrotreater=Hydrotreater container.iGenerator=Industrieller Generator container.keyForge=Schlossertisch container.launchPad=Raketenabschussrampe @@ -4051,6 +4052,7 @@ tile.heater_oilburner.desc=Erzäuft Wärme aus fluiden Brennstoffen.$Kann mit ei tile.heater_oven.name=Heizofen tile.heater_oven.desc=Erzeugt Wärme aus Festbrennstoff.$Nimmt von unten Wärme mit 50%% Effizienz auf. tile.hev_battery.name=Anzugs-Batterie +tile.machine_hydrotreater.name=Hydrotreater tile.impact_dirt.name=Versengte Erde tile.iter.name=Kernfusionsreaktor tile.ladder_aluminium.name=Aluminiumleiter diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ea23c3c07..b65517cbe 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -702,6 +702,7 @@ container.heaterFirebox=Firebox container.heaterHeatex=Heat Exchanger container.heaterOilburner=Fluid Burner container.heaterOven=Heating Oven +container.hydrotreater=Hydrotreater container.iGenerator=Industrial Generator container.keyForge=Locksmith Table container.launchPad=Missile Launch Pad @@ -5053,6 +5054,7 @@ tile.heater_oilburner.desc=Burns fluids to produce heat.$Can be configured with tile.heater_oven.name=Heating Oven tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency. tile.hev_battery.name=Suit Battery +tile.machine_hydrotreater.name=Hydrotreater tile.impact_dirt.name=Scorched Dirt tile.iter.name=Fusion Reactor tile.ladder_aluminium.name=Aluminium Ladder diff --git a/src/main/resources/assets/hbm/textures/models/machines/hydrotreater.png b/src/main/resources/assets/hbm/textures/models/machines/hydrotreater.png index 51df73ed4d725f086f4c8e8c644d45c76e9b0c72..e661b90cfb072ceb7f89551a7b6f5f1b2d63fd6a 100644 GIT binary patch delta 1979 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 Wk~0jtq_ctfkHOQ`&t;ucLK6UiO_Q4d From e2807f0721c9365ac0a386c809345b59ae8df61f Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 12 Feb 2024 21:18:37 +0100 Subject: [PATCH 183/376] girthier meatier more sensual missiles --- .../explosion/ExplosionNukeRayBatched.java | 30 +- .../hbm/inventory/gui/GUILaunchPadLarge.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 10 + src/main/java/com/hbm/main/ClientProxy.java | 6 +- .../java/com/hbm/main/ResourceManager.java | 11 +- .../entity/rocket/RenderMissileDoomsday.java | 37 - .../entity/rocket/RenderMissileMirv.java | 34 - .../entity/rocket/RenderMissileNuclear.java | 15 +- .../render/item/ItemRenderMissileGeneric.java | 13 +- .../bomb/TileEntityLaunchPadLarge.java | 63 + .../assets/hbm/models/missile_atlas.obj | 1505 +++++++++++++++++ .../models/missile_atlas_doomsday.png | Bin 0 -> 33643 bytes .../missile_atlas_doomsday_weathered.png | Bin 0 -> 56419 bytes .../textures/models/missile_atlas_nuclear.png | Bin 0 -> 29610 bytes .../models/missile_atlas_tectonic.png | Bin 0 -> 33442 bytes .../textures/models/missile_atlas_thermo.png | Bin 0 -> 31538 bytes 16 files changed, 1617 insertions(+), 109 deletions(-) delete mode 100644 src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java delete mode 100644 src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java create mode 100644 src/main/resources/assets/hbm/models/missile_atlas.obj create mode 100644 src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday_weathered.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_atlas_nuclear.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_atlas_tectonic.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_atlas_thermo.png diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index dd843d93e..6088e261d 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -122,15 +122,6 @@ public class ExplosionNukeRayBatched { } if(res <= 0 || i + 1 >= this.length || i == length - 1) { - - /*NBTTagCompound fx = new NBTTagCompound(); - fx.setString("type", "debugline"); - fx.setDouble("mX", vec.xCoord * i); - fx.setDouble("mY", vec.yCoord * i); - fx.setDouble("mZ", vec.zCoord * i); - fx.setInteger("color", 0xff0000); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(fx, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 200));*/ - break; } } @@ -180,7 +171,7 @@ public class ExplosionNukeRayBatched { int diff1 = Math.abs((chunkX - o1.chunkXPos)) + Math.abs((chunkZ - o1.chunkZPos)); int diff2 = Math.abs((chunkX - o2.chunkXPos)) + Math.abs((chunkZ - o2.chunkZPos)); - return diff1 > diff2 ? 1 : diff1 < diff2 ? -1 : 0; + return diff1 - diff2; } } @@ -191,6 +182,7 @@ public class ExplosionNukeRayBatched { ChunkCoordIntPair coord = orderedChunks.get(0); List list = perChunk.get(coord); HashSet toRem = new HashSet(); + HashSet toRemTips = new HashSet(); //List toRem = new ArrayList(); int chunkX = coord.chunkXPos; int chunkZ = coord.chunkZPos; @@ -209,6 +201,10 @@ public class ExplosionNukeRayBatched { double pX = vec.xCoord / vec.lengthVector(); double pY = vec.yCoord / vec.lengthVector(); double pZ = vec.zCoord / vec.lengthVector(); + + int tipX = (int) Math.floor(x); + int tipY = (int) Math.floor(y); + int tipZ = (int) Math.floor(z); boolean inChunk = false; for(int i = enter; i < vec.lengthVector(); i++) { @@ -227,14 +223,18 @@ public class ExplosionNukeRayBatched { inChunk = true; if(!world.isAirBlock(x0, y0, z0)) { - toRem.add(new BlockPos(x0, y0, z0)); + + BlockPos pos = new BlockPos(x0, y0, z0); + + if(x0 == tipX && y0 == tipY && z0 == tipZ) { + toRemTips.add(pos); + } + toRem.add(pos); } } } - - for(BlockPos pos : toRem) { - world.setBlock(pos.getX(), pos.getY(), pos.getZ(), Blocks.air); - } + + for(BlockPos pos : toRem) world.setBlock(pos.getX(), pos.getY(), pos.getZ(), Blocks.air, 0, toRemTips.contains(pos) ? 3 : 2); perChunk.remove(coord); orderedChunks.remove(0); diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java index 4d1fb1c22..11d4fea67 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java @@ -63,7 +63,7 @@ public class GUILaunchPadLarge extends GuiInfoContainer { case V2: scale = 1.75D; break; case STRONG: scale = 1.375D; break; case HUGE: scale = 0.925D; break; - case ATLAS: break; + case ATLAS: scale = 0.875D; break; case OTHER: break; } if(missile == ModItems.missile_stealth) scale = 1.125D; diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 58e25c9e8..8e135c4fb 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -988,6 +988,16 @@ public class AssemblerRecipes { new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_red_copper, 3) }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_hydrotreater, 1), new AStack[] { + !exp ? new OreDictStack(STEEL.plateWelded(), 8) : new OreDictStack(STEEL.heavyComp(), 4), + !exp ? new OreDictStack(CU.plateCast(), 4) : new OreDictStack(CU.heavyComp(), 2), + new OreDictStack(NB.ingot(), 8), + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), + new ComparableStack(ModItems.hull_big_steel, 2), + new ComparableStack(ModItems.pipes_steel, 1), + new ComparableStack(ModItems.motor_desh, 2), + new ComparableStack(ModItems.circuit_red_copper, 3) + }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_compressor, 1), new AStack[] { new OreDictStack(STEEL.plateCast(), 8), diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index b6761bac6..a11765e7a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -443,7 +443,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_volcano, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); - MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday, new ItemRenderMissileGeneric(RenderMissileType.TYPE_DOOMSDAY)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_carrier, new ItemRenderMissileGeneric(RenderMissileType.TYPE_CARRIER)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_shuttle, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ROBIN)); @@ -705,10 +705,10 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMissileRain.class, new RenderMissileHuge()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileDrill.class, new RenderMissileHuge()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileNuclear.class, new RenderMissileNuclear()); - RenderingRegistry.registerEntityRenderingHandler(EntityMissileMirv.class, new RenderMissileMirv()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileMirv.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileVolcano.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityMIRV.class, new RenderMirv()); - RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileDoomsday()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityCarrier.class, new RenderCarrierMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityBooster.class, new RenderBoosterMissile()); RenderingRegistry.registerEntityRenderingHandler(EntitySoyuz.class, new RenderSoyuz()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c28708ef7..0d1a9613d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1070,8 +1070,7 @@ public class ResourceManager { public static final IModelCustom missileStealth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_stealth.obj"), false).asDisplayList(); public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")).asDisplayList(); public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")).asDisplayList(); - public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); - public static final IModelCustom missileDoomsday = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileDoomsday.obj")); + public static final IModelCustom missileNuclear = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_atlas.obj")).asDisplayList(); public static final IModelCustom missileMicro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_micro.obj")).asDisplayList(); public static final IModelCustom missileShuttle = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileShuttle.obj")); public static final IModelCustom missileCarrier = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileCarrier.obj")); @@ -1221,10 +1220,10 @@ public class ResourceManager { public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_inc.png"); public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_cl.png"); public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_bu.png"); - public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeon.png"); - public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonH.png"); - public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonV.png"); - public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileDoomsday.png"); + public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_nuclear.png"); + public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_thermo.png"); + public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_tectonic.png"); + public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_doomsday.png"); public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_taint.png"); public static final ResourceLocation missileShuttle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileShuttle.png"); public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro.png"); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java deleted file mode 100644 index cff1937a5..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMissileDoomsday extends Render { - - public RenderMissileDoomsday() { - } - - @Override - public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - GL11.glScalef(2F, 2F, 2F); - - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.missileDoomsday_tex); - ResourceManager.missileDoomsday.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileDoomsday_tex; - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java deleted file mode 100644 index de0358088..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMissileMirv extends Render { - - public RenderMissileMirv() { } - - @Override - public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(ResourceManager.missileMIRV_tex); - ResourceManager.missileNuclear.renderAll(); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileMIRV_tex; - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java index 9af283e9d..b5fb8b48f 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java @@ -2,6 +2,9 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; +import com.hbm.entity.missile.EntityMissileDoomsday; +import com.hbm.entity.missile.EntityMissileTier4.EntityMissileMirv; +import com.hbm.entity.missile.EntityMissileTier4.EntityMissileNuclear; import com.hbm.entity.missile.EntityMissileTier4.EntityMissileVolcano; import com.hbm.main.ResourceManager; @@ -21,14 +24,16 @@ public class RenderMissileNuclear extends Render { GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - if(entity instanceof EntityMissileVolcano) - bindTexture(ResourceManager.missileVolcano_tex); - else - bindTexture(ResourceManager.missileNuclear_tex); + if(entity instanceof EntityMissileNuclear) bindTexture(ResourceManager.missileNuclear_tex); + if(entity instanceof EntityMissileMirv) bindTexture(ResourceManager.missileMIRV_tex); + if(entity instanceof EntityMissileDoomsday) bindTexture(ResourceManager.missileDoomsday_tex); + if(entity instanceof EntityMissileVolcano) bindTexture(ResourceManager.missileVolcano_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileNuclear.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java index f73a64345..f3354722d 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -31,7 +31,6 @@ public class ItemRenderMissileGeneric implements IItemRenderer { TYPE_STEALTH, TYPE_ABM, TYPE_NUCLEAR, - TYPE_DOOMSDAY, TYPE_CARRIER, TYPE_ROBIN } @@ -75,8 +74,7 @@ public class ItemRenderMissileGeneric implements IItemRenderer { case TYPE_TIER3: guiScale = 1.25D; guiOffset = 1D; break; case TYPE_STEALTH: guiScale = 1.75D; guiOffset = 4.75D; break; case TYPE_ABM: guiScale = 2.25D; guiOffset = 7D; break; - case TYPE_NUCLEAR: guiScale = 1.75D; guiOffset = 4D; break; - case TYPE_DOOMSDAY: guiScale = 1.5D; guiOffset = 3D; break; + case TYPE_NUCLEAR: guiScale = 1.375D; guiOffset = 1.5D; break; case TYPE_CARRIER: guiScale = 0.625D; guiOffset = -17D; break; case TYPE_ROBIN: guiScale = 1.25D; guiOffset = 2D; break; } @@ -162,11 +160,10 @@ public class ItemRenderMissileGeneric implements IItemRenderer { renderers.put(new ComparableStack(ModItems.missile_rain), generateStandard(ResourceManager.missileHuge_CL_tex, ResourceManager.missileHuge)); renderers.put(new ComparableStack(ModItems.missile_drill), generateStandard(ResourceManager.missileHuge_BU_tex, ResourceManager.missileHuge)); - renderers.put(new ComparableStack(ModItems.missile_nuclear), generateLarge(ResourceManager.missileNuclear_tex, ResourceManager.missileNuclear)); - renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateLarge(ResourceManager.missileMIRV_tex, ResourceManager.missileNuclear)); - renderers.put(new ComparableStack(ModItems.missile_volcano), generateLarge(ResourceManager.missileVolcano_tex, ResourceManager.missileNuclear)); - - renderers.put(new ComparableStack(ModItems.missile_doomsday), generateDouble(ResourceManager.missileDoomsday_tex, ResourceManager.missileDoomsday)); + renderers.put(new ComparableStack(ModItems.missile_nuclear), generateStandard(ResourceManager.missileNuclear_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateStandard(ResourceManager.missileMIRV_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_volcano), generateStandard(ResourceManager.missileVolcano_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_doomsday), generateStandard(ResourceManager.missileDoomsday_tex, ResourceManager.missileNuclear)); renderers.put(new ComparableStack(ModItems.missile_carrier), x -> { GL11.glScalef(2F, 2F, 2F); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index df1726998..85b7338f7 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -5,6 +5,9 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUILaunchPadLarge; import com.hbm.items.weapon.ItemMissile; +import com.hbm.items.weapon.ItemMissile.MissileFormFactor; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityMachineBase; @@ -47,6 +50,12 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I public long power; public final long maxPower = 100_000; + private AudioWrapper audioLift; + private AudioWrapper audioErector; + + protected boolean liftMoving = false; + protected boolean erectorMoving = false; + public FluidTank[] tanks; public TileEntityLaunchPadLarge() { @@ -65,6 +74,9 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I public void updateEntity() { if(!worldObj.isRemote) { + + this.prevLift = this.lift; + this.prevErector = this.erector; float erectorSpeed = 1.5F; float liftSpeed = 0.025F; @@ -74,6 +86,11 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I ItemMissile missile = (ItemMissile) slots[0].getItem(); this.formFactor = missile.formFactor.ordinal(); setFuel(missile); + + if(missile.formFactor == MissileFormFactor.ATLAS || missile.formFactor == MissileFormFactor.HUGE) { + erectorSpeed /= 2F; + liftSpeed /= 2F; + } } if(this.erector == 90F && this.lift == 1F) { @@ -144,6 +161,16 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I } } + boolean prevLiftMoving = this.liftMoving; + boolean prevErectorMoving = this.erectorMoving; + this.liftMoving = false; + this.erectorMoving = false; + if(this.prevLift != this.lift) this.liftMoving = true; + if(this.prevErector != this.erector) this.erectorMoving = true; + + if(prevLiftMoving && !this.liftMoving) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:door.wgh_stop", 2F, 1F); + if(prevErectorMoving && !this.erectorMoving) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:door.garage_stop", 2F, 1F); + this.networkPackNT(250); } else { @@ -158,6 +185,36 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I this.lift = this.syncLift; this.erector = this.syncErector; } + + if(this.liftMoving) { + if(this.audioLift == null) { + this.audioLift = MainRegistry.proxy.getLoopedSound("hbm:door.wgh_start", xCoord, yCoord, zCoord, 0.75F, 25F, 1.0F, 5); + this.audioLift.startSound(); + } else if(!this.audioLift.isPlaying()) { + this.audioLift.startSound(); + } + this.audioLift.keepAlive(); + } else { + if(this.audioLift != null) { + this.audioLift.stopSound(); + this.audioLift = null; + } + } + + if(this.erectorMoving) { + if(this.audioErector == null) { + this.audioErector = MainRegistry.proxy.getLoopedSound("hbm:door.garage_move", xCoord, yCoord, zCoord, 1.5F, 25F, 1.0F, 5); + this.audioErector.startSound(); + } else if(!this.audioErector.isPlaying()) { + this.audioErector.startSound(); + } + this.audioErector.keepAlive(); + } else { + if(this.audioErector != null) { + this.audioErector.stopSound(); + this.audioErector = null; + } + } } } @@ -187,6 +244,9 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I public void serialize(ByteBuf buf) { super.serialize(buf); + buf.writeBoolean(this.liftMoving); + buf.writeBoolean(this.erectorMoving); + if(slots[0] != null) { buf.writeBoolean(true); buf.writeInt(Item.getIdFromItem(slots[0].getItem())); @@ -205,6 +265,9 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I @Override public void deserialize(ByteBuf buf) { super.deserialize(buf); + + this.liftMoving = buf.readBoolean(); + this.erectorMoving = buf.readBoolean(); if(buf.readBoolean()) { this.toRender = new ItemStack(Item.getItemById(buf.readInt()), 1, buf.readShort()); diff --git a/src/main/resources/assets/hbm/models/missile_atlas.obj b/src/main/resources/assets/hbm/models/missile_atlas.obj new file mode 100644 index 000000000..ce22b2edb --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_atlas.obj @@ -0,0 +1,1505 @@ +# Blender v3.2.0 OBJ File: 'titan.blend' +# www.blender.org +mtllib missile_icbm.mtl +o Circle.002_Circle.003 +v -0.883883 0.687500 -0.883883 +v -1.154849 0.687500 -0.478354 +v -1.250000 0.687500 0.000000 +v -1.154849 0.687500 0.478354 +v -0.883883 0.687500 0.883883 +v 0.883883 0.687500 0.883884 +v 1.154849 0.687500 0.478354 +v 1.250000 0.687500 -0.000000 +v 1.154849 0.687500 -0.478355 +v 0.883884 0.687500 -0.883883 +v 0.000000 3.312500 -1.250000 +v -0.478354 3.312500 -1.154849 +v -0.883883 3.312500 -0.883883 +v -1.154849 3.312500 -0.478354 +v -1.250000 3.312500 0.000000 +v -1.154849 3.312500 0.478354 +v -0.883883 3.312500 0.883883 +v -0.478354 3.312500 1.154849 +v 0.000000 3.312500 1.250000 +v 0.478354 3.312500 1.154849 +v 0.883883 3.312500 0.883884 +v 1.154849 3.312500 0.478354 +v 1.250000 3.312500 -0.000000 +v 1.154849 3.312500 -0.478355 +v 0.883884 3.312500 -0.883883 +v 0.478354 3.312500 -1.154849 +v 0.000000 3.312500 -1.125000 +v -0.430519 3.312500 -1.039364 +v -0.795495 3.312500 -0.795495 +v -1.039364 3.312500 -0.430519 +v -1.125000 3.312500 0.000000 +v -1.039364 3.312500 0.430519 +v -0.795495 3.312500 0.795495 +v -0.430519 3.312500 1.039364 +v 0.000000 3.312500 1.125000 +v 0.430519 3.312500 1.039364 +v 0.795495 3.312500 0.795495 +v 1.039364 3.312500 0.430519 +v 1.125000 3.312500 -0.000000 +v 1.039364 3.312500 -0.430519 +v 0.795495 3.312500 -0.795495 +v 0.430519 3.312500 -1.039364 +v 0.000000 10.812500 -1.125000 +v -0.430519 10.812500 -1.039364 +v -0.795495 10.812500 -0.795495 +v -1.039364 10.812500 -0.430519 +v -1.125000 10.812500 0.000000 +v -1.039364 10.812500 0.430519 +v -0.795495 10.812500 0.795495 +v -0.430519 10.812500 1.039364 +v 0.000000 10.812500 1.125000 +v 0.430519 10.812500 1.039364 +v 0.795495 10.812500 0.795495 +v 1.039364 10.812500 0.430519 +v 1.125000 10.812500 -0.000000 +v 1.039364 10.812500 -0.430519 +v 0.795495 10.812500 -0.795495 +v 0.430519 10.812500 -1.039364 +v -0.000000 13.312500 -0.562500 +v -0.215259 13.312500 -0.519682 +v -0.397748 13.312500 -0.397748 +v -0.519682 13.312500 -0.215259 +v -0.562500 13.312500 0.000000 +v -0.519682 13.312500 0.215259 +v -0.397748 13.312500 0.397748 +v -0.215259 13.312500 0.519682 +v 0.000000 13.312500 0.562500 +v 0.215259 13.312500 0.519682 +v 0.397747 13.312500 0.397748 +v 0.519682 13.312500 0.215260 +v 0.562500 13.312500 -0.000000 +v 0.519682 13.312500 -0.215260 +v 0.397748 13.312500 -0.397748 +v 0.215259 13.312500 -0.519682 +v -0.000000 14.437500 -0.000000 +v -0.500000 2.250000 -1.250000 +v -0.433013 2.250000 -1.500000 +v -0.250000 2.250000 -1.683013 +v 0.000000 2.250000 -1.750000 +v 0.500000 2.250000 -1.250000 +v 0.433013 2.250000 -1.500000 +v 0.250000 2.250000 -1.683013 +v 0.000000 0.687500 -2.000000 +v -0.375000 0.687500 -1.899519 +v -0.649519 0.687500 -1.625000 +v -0.750000 0.687500 -1.250000 +v 0.750000 0.687500 -1.250000 +v 0.649519 0.687500 -1.625000 +v 0.375000 0.687500 -1.899519 +v 0.125000 3.312500 -1.466506 +v 0.216506 3.312500 -1.375000 +v 0.250000 3.312500 -1.250000 +v 0.216506 3.312500 -1.125000 +v -0.216506 3.312500 -1.125000 +v -0.250000 3.312500 -1.250000 +v -0.216506 3.312500 -1.375000 +v -0.125000 3.312500 -1.466506 +v 0.180586 3.312500 -1.089079 +v -0.180586 3.312500 -1.089079 +v 0.687126 0.687500 -1.015352 +v -0.687126 0.687500 -1.015352 +v 0.125000 6.812500 -1.466506 +v 0.216506 6.812500 -1.375000 +v 0.250000 6.812500 -1.250000 +v 0.216506 6.812500 -1.125000 +v -0.216506 6.812500 -1.125000 +v -0.250000 6.812500 -1.250000 +v -0.216506 6.812500 -1.375000 +v -0.125000 6.812500 -1.466506 +v 0.180586 6.812500 -1.089079 +v -0.180586 6.812500 -1.089079 +v 0.000000 7.687500 -1.125000 +v 0.478354 2.250000 -1.154849 +v -0.478354 2.250000 -1.154849 +v 0.000000 0.687500 -1.625000 +v -0.187500 0.687500 -1.574759 +v -0.324760 0.687500 -1.437500 +v -0.375000 0.687500 -1.250000 +v -0.324760 0.687500 -1.062500 +v -0.187500 0.687500 -0.925241 +v 0.000000 0.687500 -0.875000 +v 0.187500 0.687500 -0.925241 +v 0.324760 0.687500 -1.062500 +v 0.375000 0.687500 -1.250000 +v 0.324760 0.687500 -1.437500 +v 0.187500 0.687500 -1.574759 +v 0.000000 0.000000 -1.750000 +v -0.250000 0.000000 -1.683013 +v -0.433013 0.000000 -1.500000 +v -0.500000 0.000000 -1.250000 +v -0.433013 0.000000 -1.000000 +v -0.250000 0.000000 -0.816987 +v 0.000000 0.000000 -0.750000 +v 0.250000 0.000000 -0.816987 +v 0.433013 0.000000 -1.000000 +v 0.500000 0.000000 -1.250000 +v 0.433013 0.000000 -1.500000 +v 0.250000 0.000000 -1.683013 +v 0.000000 0.687500 -0.375000 +v -0.187500 0.687500 -0.324759 +v -0.324760 0.687500 -0.187500 +v -0.375000 0.687500 0.000000 +v -0.324760 0.687500 0.187500 +v -0.187500 0.687500 0.324759 +v 0.000000 0.687500 0.375000 +v 0.187500 0.687500 0.324759 +v 0.324760 0.687500 0.187500 +v 0.375000 0.687500 0.000000 +v 0.324760 0.687500 -0.187500 +v 0.187500 0.687500 -0.324759 +v 0.000000 0.375000 -0.500000 +v -0.250000 0.375000 -0.433013 +v -0.433013 0.375000 -0.250000 +v -0.500000 0.375000 0.000000 +v -0.433013 0.375000 0.250000 +v -0.250000 0.375000 0.433013 +v 0.000000 0.375000 0.500000 +v 0.250000 0.375000 0.433013 +v 0.433013 0.375000 0.250000 +v 0.500000 0.375000 0.000000 +v 0.433013 0.375000 -0.250000 +v 0.250000 0.375000 -0.433013 +v 0.000000 0.000000 -0.500000 +v -0.250000 0.000000 -0.433013 +v -0.433013 0.000000 -0.250000 +v -0.500000 0.000000 0.000000 +v -0.433013 0.000000 0.250000 +v -0.250000 0.000000 0.433013 +v 0.000000 0.000000 0.500000 +v 0.250000 0.000000 0.433013 +v 0.433013 0.000000 0.250000 +v 0.500000 0.000000 0.000000 +v 0.433013 0.000000 -0.250000 +v 0.250000 0.000000 -0.433013 +v 0.000000 3.312500 -1.500000 +v 0.125000 3.376629 -1.642699 +v -0.125000 3.376629 -1.642699 +v 0.062500 3.687500 -1.466506 +v -0.062500 3.687500 -1.466506 +v 0.500000 2.250000 1.250000 +v 0.433013 2.250000 1.500000 +v 0.250000 2.250000 1.683013 +v -0.000000 2.250000 1.750000 +v -0.500000 2.250000 1.250000 +v -0.433013 2.250000 1.500000 +v -0.250000 2.250000 1.683013 +v -0.000000 0.687500 2.000000 +v 0.375000 0.687500 1.899519 +v 0.649519 0.687500 1.625000 +v 0.750000 0.687500 1.250000 +v -0.750000 0.687500 1.250000 +v -0.649519 0.687500 1.625000 +v -0.375000 0.687500 1.899519 +v -0.125000 3.312500 1.466506 +v -0.216506 3.312500 1.375000 +v -0.250000 3.312500 1.250000 +v -0.216506 3.312500 1.125000 +v 0.216506 3.312500 1.125000 +v 0.250000 3.312500 1.250000 +v 0.216506 3.312500 1.375000 +v 0.125000 3.312500 1.466506 +v -0.180586 3.312500 1.089079 +v 0.180586 3.312500 1.089079 +v -0.687126 0.687500 1.015352 +v 0.687126 0.687500 1.015353 +v -0.125000 6.812500 1.466506 +v -0.216506 6.812500 1.375000 +v -0.250000 6.812500 1.250000 +v -0.216506 6.812500 1.125000 +v 0.216506 6.812500 1.125000 +v 0.250000 6.812500 1.250000 +v 0.216506 6.812500 1.375000 +v 0.125000 6.812500 1.466506 +v -0.180586 6.812500 1.089079 +v 0.180586 6.812500 1.089079 +v -0.000000 7.687500 1.125000 +v -0.478354 2.250000 1.154849 +v 0.478354 2.250000 1.154849 +v -0.000000 0.687500 1.625000 +v 0.187500 0.687500 1.574759 +v 0.324759 0.687500 1.437500 +v 0.375000 0.687500 1.250000 +v 0.324759 0.687500 1.062500 +v 0.187500 0.687500 0.925241 +v -0.000000 0.687500 0.875000 +v -0.187500 0.687500 0.925241 +v -0.324760 0.687500 1.062500 +v -0.375000 0.687500 1.250000 +v -0.324760 0.687500 1.437500 +v -0.187500 0.687500 1.574759 +v -0.000000 0.000000 1.750000 +v 0.250000 0.000000 1.683013 +v 0.433013 0.000000 1.500000 +v 0.500000 0.000000 1.250000 +v 0.433013 0.000000 1.000000 +v 0.250000 0.000000 0.816987 +v -0.000000 0.000000 0.750000 +v -0.250000 0.000000 0.816987 +v -0.433013 0.000000 1.000000 +v -0.500000 0.000000 1.250000 +v -0.433013 0.000000 1.500000 +v -0.250000 0.000000 1.683013 +v -0.000000 3.312500 1.500000 +v -0.378886 3.312500 1.500000 +v -0.218750 3.437500 1.722636 +v 0.218750 3.437500 1.722636 +v 0.378886 3.312500 1.500000 +v -0.378886 3.312500 1.049635 +v 0.378886 3.312500 1.049635 +v -0.378886 4.562500 1.500000 +v -0.218750 4.562500 1.722636 +v 0.218750 4.562500 1.722636 +v 0.378886 4.562500 1.500000 +v -0.378886 4.562500 1.049635 +v 0.378886 4.562500 1.049635 +v 0.180586 5.437500 1.089079 +v -0.216506 5.437500 1.125000 +v -0.250000 5.437500 1.250000 +v -0.216506 5.437500 1.375000 +v 0.216506 5.437500 1.375000 +v 0.250000 5.437500 1.250000 +v 0.216506 5.437500 1.125000 +v -0.180586 5.437500 1.089079 +v -0.125000 5.437500 1.466506 +v 0.125000 5.437500 1.466506 +v -0.806102 10.093750 -0.806102 +v -1.053223 10.093750 -0.436259 +v -1.140000 10.093750 0.000000 +v -1.053223 10.093750 0.436259 +v -0.806102 10.093750 0.806102 +v 0.806102 10.093750 0.806102 +v 1.053223 10.093750 0.436259 +v 1.140000 10.093750 -0.000000 +v 1.053223 10.093750 -0.436259 +v 0.806102 10.093750 -0.806102 +v -0.806102 8.125000 -0.806102 +v -1.053223 8.125000 -0.436259 +v -1.140000 8.125000 0.000000 +v -1.053223 8.125000 0.436259 +v -0.806102 8.125000 0.806102 +v 0.806102 8.125000 0.806102 +v 1.053223 8.125000 0.436259 +v 1.140000 8.125000 -0.000000 +v 1.053223 8.125000 -0.436259 +v 0.806102 8.125000 -0.806102 +v -0.225167 6.406250 1.380000 +v -0.145625 6.406250 1.475167 +v 0.145625 6.406250 1.475167 +v 0.225166 6.406250 1.380000 +v -0.225167 5.875000 1.380000 +v -0.145625 5.875000 1.475167 +v 0.145625 5.875000 1.475167 +v 0.225166 5.875000 1.380000 +v 0.225166 6.406250 -1.380000 +v 0.145625 6.406250 -1.475167 +v -0.145625 6.406250 -1.475167 +v -0.225167 6.406250 -1.380000 +v 0.225166 5.875000 -1.380000 +v 0.145625 5.875000 -1.475167 +v -0.145625 5.875000 -1.475167 +v -0.225167 5.875000 -1.380000 +vt 0.107143 0.186667 +vt 0.071429 0.195556 +vt 0.071429 0.186667 +vt 0.142857 0.195556 +vt 0.178571 0.186667 +vt 0.178571 0.195556 +vt 0.142857 0.186667 +vt 0.107143 0.195556 +vt 0.576531 0.622222 +vt 0.576531 0.684444 +vt 0.571429 0.622222 +vt 0.790816 0.577778 +vt 0.770408 0.577778 +vt 0.780612 0.573333 +vt 0.214286 0.195556 +vt 0.214286 0.186667 +vt 0.250000 0.195556 +vt 0.285714 0.186667 +vt 0.250000 0.186667 +vt 0.321429 0.186667 +vt 0.285714 0.195556 +vt 0.357143 0.195556 +vt 0.321429 0.195556 +vt 0.392857 0.186667 +vt 0.357143 0.186667 +vt 0.392857 0.195556 +vt 0.428571 0.186667 +vt 0.428571 0.195556 +vt 0.464286 0.186667 +vt 0.500000 0.195556 +vt 0.464286 0.195556 +vt 0.535714 0.186667 +vt 0.500000 0.186667 +vt 0.035714 0.186667 +vt 0.035714 0.195556 +vt 0.000000 0.186667 +vt 0.571429 0.195556 +vt 0.535714 0.195556 +vt 0.744173 0.160632 +vt 0.733441 0.146640 +vt 0.777277 0.179900 +vt 0.918367 0.151111 +vt 0.899213 0.146640 +vt 0.948980 0.143966 +vt 0.948980 0.051590 +vt 0.979592 0.097778 +vt 0.971389 0.124444 +vt 0.971389 0.071111 +vt 0.918367 0.044444 +vt 0.899213 0.048915 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.816327 0.186667 +vt 0.855376 0.179900 +vt 0.816327 0.008889 +vt 0.855376 0.015655 +vt 0.777277 0.015655 +vt 0.888480 0.034924 +vt 0.888480 0.160632 +vt 0.790816 0.591111 +vt 0.770408 0.591111 +vt 0.668367 0.622222 +vt 0.668367 0.684444 +vt 0.663265 0.622222 +vt 0.714286 0.044444 +vt 0.733441 0.048915 +vt 0.683674 0.051590 +vt 0.683674 0.143966 +vt 0.653061 0.097778 +vt 0.661264 0.071111 +vt 0.661264 0.124444 +vt 0.714286 0.151111 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.744173 0.034924 +vt 0.000000 0.195556 +vt 0.571429 0.186667 +vt 0.040816 0.111111 +vt 0.061224 -0.000000 +vt 0.081633 -0.000000 +vt -0.000000 0.728889 +vt 0.035714 0.728889 +vt 0.392857 0.728889 +vt 0.142857 0.728889 +vt 0.428571 0.728889 +vt 0.178571 0.728889 +vt 0.464286 0.728889 +vt 0.214286 0.728889 +vt 0.500000 0.728889 +vt 0.250000 0.728889 +vt 0.535714 0.728889 +vt 0.571429 0.728889 +vt 0.285714 0.728889 +vt 0.321429 0.728889 +vt 0.071429 0.728889 +vt 0.357143 0.728889 +vt 0.107143 0.728889 +vt 0.438776 0.911111 +vt 0.474490 0.911111 +vt 0.510204 0.911111 +vt 0.545918 0.911111 +vt 0.010204 0.911111 +vt 0.045918 0.911111 +vt 0.081633 0.911111 +vt 0.117347 0.911111 +vt 0.168367 0.911111 +vt 0.153061 0.911111 +vt 0.188776 0.911111 +vt 0.239796 0.911111 +vt 0.224490 0.911111 +vt 0.260204 0.911111 +vt 0.295918 0.911111 +vt 0.331633 0.911111 +vt 0.367347 0.911111 +vt 0.403061 0.911111 +vt 0.489796 0.911111 +vt 0.482143 1.000000 +vt 0.232143 1.000000 +vt 0.525510 0.911111 +vt 0.517857 1.000000 +vt 0.275510 0.911111 +vt 0.267857 1.000000 +vt 0.025510 0.911111 +vt 0.017857 1.000000 +vt 0.561224 0.911111 +vt 0.553571 1.000000 +vt 0.311224 0.911111 +vt 0.303571 1.000000 +vt 0.061224 0.911111 +vt 0.053571 1.000000 +vt 0.346939 0.911111 +vt 0.339286 1.000000 +vt 0.096939 0.911111 +vt 0.089286 1.000000 +vt 0.382653 0.911111 +vt 0.375000 1.000000 +vt 0.132653 0.911111 +vt 0.125000 1.000000 +vt 0.418367 0.911111 +vt 0.410714 1.000000 +vt 0.160714 1.000000 +vt 0.454082 0.911111 +vt 0.446429 1.000000 +vt 0.204082 0.911111 +vt 0.196429 1.000000 +vt 0.653061 0.186667 +vt 0.678571 0.297778 +vt 0.658163 0.297778 +vt 0.683673 0.186667 +vt 0.709184 0.297778 +vt 0.688776 0.297778 +vt 0.714286 0.186667 +vt 0.739796 0.297778 +vt 0.719388 0.297778 +vt 0.744898 0.186667 +vt 0.770408 0.297778 +vt 0.750000 0.297778 +vt 0.785714 0.297778 +vt 0.775510 0.186667 +vt 0.795918 0.186667 +vt 0.622449 0.186667 +vt 0.647959 0.297778 +vt 0.627551 0.297778 +vt 0.591837 0.186667 +vt 0.617347 0.297778 +vt 0.596939 0.297778 +vt 0.581633 0.297778 +vt 0.591837 0.297778 +vt 0.591837 0.373333 +vt 0.581633 0.373333 +vt 0.602041 0.373333 +vt 0.632653 0.373333 +vt 0.693878 0.373333 +vt 0.673469 0.373333 +vt 0.724490 0.373333 +vt 0.755102 0.373333 +vt 0.775510 0.373333 +vt 0.785714 0.373333 +vt 0.663265 0.373333 +vt 0.658163 0.622222 +vt 0.658163 0.373333 +vt 0.647959 0.622222 +vt 0.647959 0.373333 +vt 0.576531 0.373333 +vt 0.571429 0.373333 +vt 0.607143 0.373333 +vt 0.596939 0.622222 +vt 0.596939 0.373333 +vt 0.586735 0.622222 +vt 0.586735 0.373333 +vt 0.637755 0.622222 +vt 0.637755 0.373333 +vt 0.627551 0.622222 +vt 0.627551 0.373333 +vt 0.581633 0.688889 +vt 0.591837 0.688889 +vt 0.607143 0.622222 +vt 0.602041 0.688889 +vt 0.632653 0.688889 +vt 0.642857 0.688889 +vt 0.653061 0.688889 +vt 0.663265 0.622222 +vt 0.658163 0.684444 +vt 0.612245 0.111111 +vt 0.571429 0.000000 +vt 0.591837 0.000000 +vt 0.571429 0.186667 +vt 0.612245 0.186667 +vt 0.653061 0.186667 +vt 0.040816 0.186667 +vt 0.081633 0.186667 +vt 0.122449 -0.000000 +vt 0.163265 0.000000 +vt 0.122449 0.186667 +vt 0.204082 0.000000 +vt 0.163265 0.186667 +vt 0.244898 -0.000000 +vt 0.204082 0.186667 +vt 0.367347 0.186667 +vt 0.326531 0.186667 +vt 0.367347 0.111111 +vt 0.408163 0.186667 +vt 0.387755 -0.000000 +vt 0.408163 -0.000000 +vt 0.448980 0.000000 +vt 0.489796 -0.000000 +vt 0.448980 0.186667 +vt 0.530612 -0.000000 +vt 0.489796 0.186667 +vt 0.530612 0.186667 +vt 0.948980 0.235556 +vt 0.964286 0.186667 +vt 0.964286 0.235556 +vt 0.918367 0.186667 +vt 0.933673 0.235556 +vt 0.918367 0.235556 +vt 0.887755 0.186667 +vt 0.903061 0.235556 +vt 0.887755 0.235556 +vt 0.903061 0.186667 +vt 0.933673 0.186667 +vt 0.933673 0.262222 +vt 0.948980 0.235556 +vt 0.948980 0.262222 +vt 0.887755 0.262222 +vt 0.903061 0.235556 +vt 0.903061 0.262222 +vt 0.841837 0.262222 +vt 0.857143 0.235556 +vt 0.857143 0.262222 +vt 0.964286 0.235556 +vt 0.964286 0.262222 +vt 0.795918 0.262222 +vt 0.811224 0.235556 +vt 0.811224 0.262222 +vt 0.918367 0.235556 +vt 0.918367 0.262222 +vt 0.872449 0.235556 +vt 0.872449 0.262222 +vt 0.979592 0.235556 +vt 0.979592 0.262222 +vt 0.826531 0.235556 +vt 0.826531 0.262222 +vt 0.933673 0.235556 +vt 0.887755 0.235556 +vt 0.841837 0.235556 +vt 0.948980 0.284444 +vt 0.933673 0.284444 +vt 0.964286 0.284444 +vt 0.979592 0.284444 +vt 0.811224 0.284444 +vt 0.795918 0.284444 +vt 0.826531 0.284444 +vt 0.841837 0.284444 +vt 0.857143 0.284444 +vt 0.872449 0.284444 +vt 0.887755 0.284444 +vt 0.903061 0.284444 +vt 0.918367 0.284444 +vt 0.979592 0.235556 +vt 0.795918 0.186667 +vt 0.811224 0.235556 +vt 0.795918 0.235556 +vt 0.811224 0.186667 +vt 0.826531 0.235556 +vt 0.826531 0.186667 +vt 0.841837 0.235556 +vt 0.841837 0.186667 +vt 0.857143 0.235556 +vt 0.857143 0.186667 +vt 0.872449 0.235556 +vt 0.872449 0.186667 +vt 0.770408 0.617778 +vt 0.755102 0.591111 +vt 0.806122 0.591111 +vt 0.790816 0.617778 +vt 0.775510 0.617778 +vt 0.785714 0.617778 +vt 0.617347 0.688889 +vt 0.653061 0.186667 +vt 0.678571 0.297778 +vt 0.658163 0.297778 +vt 0.683673 0.186667 +vt 0.709184 0.297778 +vt 0.688776 0.297778 +vt 0.714286 0.186667 +vt 0.739796 0.297778 +vt 0.719388 0.297778 +vt 0.744898 0.186667 +vt 0.770408 0.297778 +vt 0.750000 0.297778 +vt 0.785714 0.297778 +vt 0.775510 0.186667 +vt 0.795918 0.186667 +vt 0.622449 0.186667 +vt 0.647959 0.297778 +vt 0.627551 0.297778 +vt 0.591837 0.186667 +vt 0.617347 0.297778 +vt 0.596939 0.297778 +vt 0.581633 0.297778 +vt 0.591837 0.297778 +vt 0.591837 0.373333 +vt 0.581633 0.373333 +vt 0.602041 0.373333 +vt 0.632653 0.373333 +vt 0.693878 0.373333 +vt 0.673469 0.373333 +vt 0.724490 0.373333 +vt 0.755102 0.373333 +vt 0.775510 0.373333 +vt 0.785714 0.373333 +vt 0.760204 0.382222 +vt 0.724490 0.462222 +vt 0.724490 0.382222 +vt 0.760204 0.524444 +vt 0.724490 0.524444 +vt 0.798469 0.524444 +vt 0.785714 0.524444 +vt 0.780612 0.462222 +vt 0.755102 0.555556 +vt 0.806122 0.573333 +vt 0.765306 0.573333 +vt 0.816327 0.462222 +vt 0.811224 0.524444 +vt 0.816327 0.524444 +vt 0.765306 0.524444 +vt 0.760204 0.462222 +vt 0.678571 0.622222 +vt 0.673469 0.688889 +vt 0.688776 0.622222 +vt 0.683673 0.688889 +vt 0.698980 0.622222 +vt 0.693878 0.688889 +vt 0.719388 0.622222 +vt 0.729592 0.622222 +vt 0.724490 0.688889 +vt 0.739796 0.622222 +vt 0.734694 0.688889 +vt 0.750000 0.622222 +vt 0.744898 0.688889 +vt 0.755102 0.622222 +vt 0.750000 0.684444 +vt 0.857143 0.235556 +vt 0.872449 0.186667 +vt 0.872449 0.235556 +vt 0.826531 0.235556 +vt 0.841837 0.186667 +vt 0.841837 0.235556 +vt 0.795918 0.186667 +vt 0.811224 0.235556 +vt 0.795918 0.235556 +vt 0.811224 0.186667 +vt 0.887755 0.235556 +vt 0.887755 0.186667 +vt 0.903061 0.235556 +vt 0.903061 0.186667 +vt 0.918367 0.235556 +vt 0.933673 0.186667 +vt 0.933673 0.235556 +vt 0.948980 0.235556 +vt 0.948980 0.186667 +vt 0.964286 0.235556 +vt 0.964286 0.186667 +vt 0.979592 0.235556 +vt 0.709184 0.688889 +vt 0.704082 0.462222 +vt 0.719388 0.524444 +vt 0.704082 0.524444 +vt 0.285714 0.111111 +vt 0.285714 0.186667 +vt 0.244898 0.186667 +vt 0.265306 0.000000 +vt 0.668367 0.373333 +vt 0.704082 0.373333 +vt 0.816327 0.373333 +vt 0.780612 0.373333 +vt 0.686224 0.524444 +vt 0.698980 0.524444 +vt 0.668367 0.462222 +vt 0.673469 0.524444 +vt 0.668367 0.524444 +vt 0.750000 0.524444 +vt 0.739796 0.524444 +vt 0.729592 0.524444 +vt 0.719388 0.524444 +vt 0.678571 0.524444 +vt 0.668367 0.524444 +vt 0.663265 0.524444 +vt 0.816327 0.524444 +vt 0.755102 0.524444 +vt 0.688776 0.524444 +vt 0.714286 0.968889 +vt 0.785714 0.688889 +vt 0.785714 0.968889 +vt 0.571429 0.968889 +vt 0.642857 0.688889 +vt 0.642857 0.968889 +vt 0.714286 0.968889 +vt 0.785714 0.688889 +vt 0.785714 0.968889 +vt 0.571429 0.968889 +vt 0.642857 0.688889 +vt 0.642857 0.968889 +vt 0.857143 0.688889 +vt 0.857143 0.968889 +vt 0.714286 0.688889 +vt 0.857143 0.688889 +vt 0.857143 0.968889 +vt 0.714286 0.688889 +vt 0.923469 0.764444 +vt 0.943878 0.688889 +vt 0.943878 0.764444 +vt 0.877551 0.688889 +vt 0.877551 0.764444 +vt 0.857143 0.764444 +vt 0.923469 0.764444 +vt 0.943878 0.688889 +vt 0.943878 0.764444 +vt 0.877551 0.688889 +vt 0.877551 0.764444 +vt 0.857143 0.764444 +vt 0.775510 0.297778 +vt 0.571429 0.186667 +vt 0.612245 0.373333 +vt 0.642857 0.373333 +vt 0.704082 0.373333 +vt 0.663265 0.373333 +vt 0.734694 0.373333 +vt 0.765306 0.373333 +vt 0.948980 0.186667 +vt 0.795918 0.235556 +vt 0.979592 0.186667 +vt 0.775510 0.297778 +vt 0.571429 0.186667 +vt 0.612245 0.373333 +vt 0.642857 0.373333 +vt 0.704082 0.373333 +vt 0.663265 0.373333 +vt 0.734694 0.373333 +vt 0.765306 0.373333 +vt 0.816327 0.555556 +vt 0.780612 0.524444 +vt 0.857143 0.186667 +vt 0.826531 0.186667 +vt 0.918367 0.186667 +vt 0.979592 0.186667 +vt 0.755102 0.524444 +vt 0.698980 0.524444 +vt 0.571429 0.688889 +vt 0.571429 0.688889 +vt 0.923469 0.688889 +vt 0.857143 0.688889 +vt 0.923469 0.688889 +vt 0.857143 0.688889 +vn 0.0000 1.0000 0.0000 +vn 0.6965 0.1723 0.6965 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.9397 -0.3420 +vn -0.6965 0.1723 -0.6965 +vn -0.5144 0.0000 -0.8575 +vn -0.5556 0.0000 -0.8315 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 -0.9239 +vn 1.0000 0.0000 -0.0000 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn -1.0000 0.0000 -0.0000 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9013 0.2195 -0.3733 +vn 0.9436 0.3312 -0.0000 +vn 0.9756 0.2195 0.0000 +vn 0.6899 0.2195 -0.6899 +vn 0.8717 0.3312 -0.3611 +vn 0.3733 0.2195 -0.9013 +vn 0.6672 0.3312 -0.6672 +vn -0.0000 0.2195 -0.9756 +vn 0.3611 0.3312 -0.8717 +vn -0.3733 0.2195 -0.9013 +vn -0.0000 0.3312 -0.9436 +vn -0.6899 0.2195 -0.6899 +vn -0.3611 0.3312 -0.8717 +vn -0.9013 0.2195 -0.3733 +vn -0.6672 0.3312 -0.6672 +vn -0.9756 0.2195 -0.0000 +vn -0.8717 0.3312 -0.3611 +vn -0.8717 0.3312 0.3611 +vn -0.9436 0.3312 0.0000 +vn -0.6899 0.2195 0.6899 +vn -0.9013 0.2195 0.3733 +vn -0.3611 0.3312 0.8717 +vn -0.6672 0.3312 0.6672 +vn 0.0000 0.2195 0.9756 +vn -0.3733 0.2195 0.9013 +vn 0.3733 0.2195 0.9013 +vn -0.0000 0.3312 0.9436 +vn 0.6899 0.2195 0.6899 +vn 0.3611 0.3312 0.8717 +vn 0.9013 0.2195 0.3733 +vn 0.6672 0.3312 0.6672 +vn 0.8717 0.3312 0.3611 +vn 0.4937 0.1580 -0.8551 +vn -0.0000 0.1925 -0.9813 +vn 0.4906 0.1925 -0.8498 +vn -0.0000 0.1580 -0.9874 +vn -0.4906 0.1925 -0.8498 +vn -0.4937 0.1580 -0.8551 +vn -0.8498 0.1925 -0.4906 +vn -0.8551 0.1580 -0.4937 +vn -0.9811 0.1926 -0.0186 +vn -0.9568 0.1891 0.2208 +vn -0.9876 0.1569 -0.0007 +vn -0.9549 0.1504 0.2559 +vn 0.8551 0.1580 -0.4937 +vn 0.8498 0.1925 -0.4906 +vn 0.9876 0.1569 -0.0007 +vn 0.9811 0.1926 -0.0186 +vn 0.9568 0.1891 0.2208 +vn 0.9730 0.2306 -0.0011 +vn 0.9412 0.2249 0.2522 +vn 0.8430 0.2290 -0.4867 +vn -0.0000 0.2290 -0.9734 +vn -0.4867 0.2290 -0.8430 +vn -0.8430 0.2290 -0.4867 +vn -0.9730 0.2306 -0.0011 +vn -0.9412 0.2249 0.2522 +vn -0.8658 0.1046 0.4893 +vn -0.8660 0.0000 0.5000 +vn -0.9905 0.1370 -0.0100 +vn 0.8660 0.0000 0.5000 +vn 0.8497 0.1670 -0.5001 +vn 0.8660 0.0000 -0.5000 +vn 0.9905 0.1370 -0.0100 +vn 0.9043 0.0825 0.4189 +vn -0.8497 0.1670 -0.5001 +vn -0.8660 0.0000 -0.5000 +vn -0.3745 0.1870 -0.9082 +vn -0.0746 0.6706 -0.7381 +vn 0.3745 0.1870 -0.9082 +vn -0.7043 0.0895 0.7043 +vn 0.5144 -0.0000 -0.8575 +vn 0.5556 -0.0000 -0.8315 +vn 0.1951 0.0000 -0.9808 +vn -0.1951 0.0000 -0.9808 +vn 0.1951 -0.0000 0.9808 +vn 0.5144 0.0000 0.8575 +vn 0.5556 0.0000 0.8315 +vn 0.8521 0.1789 -0.4919 +vn 0.4919 0.1789 -0.8521 +vn 0.8521 0.1789 0.4919 +vn 0.9839 0.1789 -0.0000 +vn -0.0000 0.1789 0.9839 +vn 0.4919 0.1789 0.8521 +vn 0.5000 0.0000 0.8660 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 0.8660 +vn 0.9285 0.3714 0.0000 +vn 0.8041 0.3714 -0.4642 +vn 0.4642 0.3714 -0.8041 +vn -0.0000 0.3714 -0.9285 +vn -0.4642 0.3714 -0.8041 +vn -0.8041 0.3714 -0.4642 +vn -0.9285 0.3714 0.0000 +vn -0.8041 0.3714 0.4642 +vn -0.4642 0.3714 0.8041 +vn 0.0000 0.3714 0.9285 +vn 0.4642 0.3714 0.8041 +vn 0.8041 0.3714 0.4642 +vn -0.0000 0.1789 -0.9839 +vn -0.4919 0.1789 -0.8521 +vn -0.8521 0.1789 -0.4919 +vn -0.9839 0.1789 0.0000 +vn -0.8521 0.1789 0.4919 +vn -0.4919 0.1789 0.8521 +vn 0.6886 0.4574 -0.5627 +vn 0.2733 0.5153 -0.8122 +vn 0.9846 0.1641 0.0597 +vn -0.6886 0.4574 -0.5627 +vn -0.9846 0.1641 0.0597 +vn -0.2733 0.5153 -0.8122 +vn -0.4937 0.1580 0.8551 +vn 0.0000 0.1925 0.9813 +vn -0.4906 0.1925 0.8498 +vn 0.0000 0.1580 0.9874 +vn 0.4906 0.1925 0.8498 +vn 0.4937 0.1580 0.8551 +vn 0.8498 0.1925 0.4906 +vn 0.8551 0.1580 0.4937 +vn 0.9811 0.1926 0.0186 +vn 0.9568 0.1891 -0.2208 +vn 0.9876 0.1569 0.0007 +vn 0.9549 0.1504 -0.2559 +vn -0.8551 0.1580 0.4937 +vn -0.8498 0.1925 0.4906 +vn -0.9876 0.1569 0.0007 +vn -0.9811 0.1926 0.0186 +vn -0.9568 0.1891 -0.2208 +vn -0.9730 0.2306 0.0011 +vn -0.9412 0.2249 -0.2522 +vn -0.8430 0.2290 0.4867 +vn -0.0000 0.2290 0.9734 +vn 0.4867 0.2290 0.8430 +vn 0.8430 0.2290 0.4867 +vn 0.9730 0.2306 0.0011 +vn 0.9412 0.2249 -0.2522 +vn 0.5098 0.0000 0.8603 +vn -0.4475 0.1436 0.8827 +vn -0.5098 0.0000 0.8603 +vn 0.3856 0.2768 0.8802 +vn -0.3856 0.2768 0.8802 +vn 0.9796 0.2009 -0.0044 +vn 0.8462 0.2260 0.4826 +vn 0.9417 0.1046 0.3198 +vn 0.0000 -0.9802 0.1978 +vn 0.0000 -0.8720 0.4896 +vn 0.9968 0.0762 -0.0244 +vn 0.8471 0.1996 -0.4926 +vn 0.6944 0.1887 -0.6944 +vn 0.4475 0.1436 0.8827 +vn -0.9043 0.0825 -0.4189 +vn -0.9905 0.1370 0.0100 +vn 0.0746 0.6706 0.7381 +vn -0.8497 0.1670 0.5001 +vn -0.3745 0.1870 0.9082 +vn 0.3745 0.1870 0.9082 +vn 0.8497 0.1670 0.5001 +vn 0.9905 0.1370 0.0100 +vn 0.8658 0.1046 -0.4893 +vn 0.7043 0.0895 -0.7043 +vn -0.9417 0.1046 0.3198 +vn -0.8462 0.2260 0.4826 +vn -0.5144 -0.0000 0.8575 +vn -0.1951 0.0000 0.9808 +vn -0.5556 -0.0000 0.8315 +vn -0.9661 0.0000 0.2581 +vn 0.9661 0.0000 0.2581 +vn -0.9796 0.2009 -0.0044 +vn -0.9968 0.0762 -0.0244 +vn -0.8471 0.1996 -0.4926 +vn -0.6944 0.1887 -0.6944 +vn 0.8315 0.0000 0.5556 +vn -0.8315 0.0000 -0.5556 +vn 0.8315 0.0000 -0.5556 +vn -0.8315 0.0000 0.5556 +vn 0.4235 0.0000 0.9059 +vn 0.7673 0.0000 0.6413 +vn -0.4235 0.0000 0.9059 +vn -0.7673 0.0000 0.6413 +vn -0.4235 0.0000 -0.9059 +vn -0.7673 0.0000 -0.6413 +vn 0.4235 0.0000 -0.9059 +vn 0.7673 0.0000 -0.6413 +vn 0.9549 0.1504 0.2559 +vn 0.4867 0.2290 -0.8430 +vn -0.9549 0.1504 -0.2559 +vn -0.4867 0.2290 0.8430 +usemtl Material.001 +s off +f 14/1/1 29/2/1 13/3/1 +f 31/4/1 16/5/1 32/6/1 +f 15/7/1 30/8/1 14/1/1 +f 105/9/2 112/10/2 110/11/2 +f 97/12/1 90/13/1 175/14/1 +f 33/15/1 16/5/1 17/16/1 +f 17/16/1 34/17/1 33/15/1 +f 19/18/1 34/17/1 18/19/1 +f 20/20/1 35/21/1 19/18/1 +f 20/20/1 37/22/1 36/23/1 +f 22/24/1 37/22/1 21/25/1 +f 38/26/1 23/27/1 39/28/1 +f 24/29/1 39/28/1 23/27/1 +f 24/29/1 41/30/1 40/31/1 +f 26/32/1 41/30/1 25/33/1 +f 12/34/1 29/2/1 28/35/1 +f 28/35/1 11/36/1 12/34/1 +f 26/32/1 27/37/1 42/38/1 +f 6/39/3 205/40/3 7/41/3 +f 87/42/3 100/43/3 88/44/3 +f 100/43/3 85/45/3 88/44/3 +f 88/44/3 83/46/3 89/47/3 +f 84/48/3 83/46/3 85/45/3 +f 86/49/3 85/45/3 101/50/3 +f 88/44/3 85/45/3 83/46/3 +f 127/51/3 138/52/3 128/53/3 +f 133/54/3 132/55/3 134/56/3 +f 136/57/3 135/58/3 137/59/3 +f 130/60/3 129/61/3 131/62/3 +f 131/62/3 134/56/3 132/55/3 +f 128/53/3 137/59/3 129/61/3 +f 131/62/3 137/59/3 135/58/3 +f 163/63/3 174/64/3 164/65/3 +f 169/66/3 168/67/3 170/68/3 +f 172/69/3 171/70/3 173/71/3 +f 166/72/3 165/73/3 167/74/3 +f 167/74/3 170/68/3 168/67/3 +f 164/65/3 173/71/3 165/73/3 +f 167/74/3 173/71/3 171/70/3 +f 8/75/3 7/41/3 9/76/3 +f 3/77/3 2/78/3 4/79/3 +f 1/80/3 101/50/3 2/78/3 +f 10/81/3 9/76/3 100/43/3 +f 9/76/3 101/50/3 100/43/3 +f 4/79/3 9/76/3 7/41/3 +f 90/13/4 177/82/4 176/83/4 +f 209/84/5 216/85/5 214/86/5 +f 191/87/3 204/88/3 192/89/3 +f 204/88/3 189/90/3 192/89/3 +f 192/89/3 187/91/3 193/92/3 +f 188/93/3 187/91/3 189/90/3 +f 190/94/3 189/90/3 205/40/3 +f 192/89/3 189/90/3 187/91/3 +f 231/95/3 242/96/3 232/97/3 +f 237/98/3 236/99/3 238/100/3 +f 240/101/3 239/102/3 241/103/3 +f 234/104/3 233/105/3 235/106/3 +f 236/99/3 239/102/3 238/100/3 +f 232/97/3 241/103/3 233/105/3 +f 235/106/3 241/103/3 239/102/3 +f 5/107/3 4/79/3 204/88/3 +f 204/88/3 7/41/3 205/40/3 +f 14/1/1 30/8/1 29/2/1 +f 31/4/1 15/7/1 16/5/1 +f 15/7/1 31/4/1 30/8/1 +f 33/15/1 32/6/1 16/5/1 +f 17/16/1 18/19/1 34/17/1 +f 19/18/1 35/21/1 34/17/1 +f 20/20/1 36/23/1 35/21/1 +f 20/20/1 21/25/1 37/22/1 +f 22/24/1 38/26/1 37/22/1 +f 38/26/1 22/24/1 23/27/1 +f 24/29/1 40/31/1 39/28/1 +f 24/29/1 25/33/1 41/30/1 +f 26/32/1 42/38/1 41/30/1 +f 12/34/1 13/3/1 29/2/1 +f 28/35/1 27/108/1 11/36/1 +f 26/32/1 11/109/1 27/37/1 +f 100/43/3 101/50/3 85/45/3 +f 131/62/3 135/58/3 134/56/3 +f 128/53/3 138/52/3 137/59/3 +f 131/62/3 129/61/3 137/59/3 +f 167/74/3 171/70/3 170/68/3 +f 164/65/3 174/64/3 173/71/3 +f 167/74/3 165/73/3 173/71/3 +f 9/76/3 2/78/3 101/50/3 +f 4/79/3 2/78/3 9/76/3 +f 90/13/4 97/12/4 177/82/4 +f 204/88/3 205/40/3 189/90/3 +f 236/99/3 235/106/3 239/102/3 +f 232/97/3 242/96/3 241/103/3 +f 235/106/3 233/105/3 241/103/3 +f 204/88/3 4/79/3 7/41/3 +s 1 +f 114/110/6 101/111/7 1/112/8 +f 43/113/9 28/35/10 44/114/10 +f 39/28/11 54/115/12 38/26/12 +f 32/6/13 47/116/14 31/4/14 +f 40/31/15 55/117/11 39/28/11 +f 33/15/16 48/118/13 32/6/13 +f 41/30/17 56/119/15 40/31/15 +f 34/17/18 49/120/16 33/15/16 +f 42/38/19 57/121/17 41/30/17 +f 35/21/20 50/122/18 34/17/18 +f 58/123/19 27/37/9 43/124/9 +f 36/23/21 51/125/20 35/21/20 +f 29/2/8 44/114/10 28/35/10 +f 37/22/22 52/126/21 36/23/21 +f 30/8/23 45/127/8 29/2/8 +f 38/26/12 53/128/22 37/22/22 +f 31/4/14 46/129/23 30/8/23 +f 56/119/24 71/130/25 55/117/26 +f 57/121/27 72/131/28 56/119/24 +f 58/123/29 73/132/30 57/121/27 +f 43/124/31 74/133/32 58/123/29 +f 44/114/33 59/134/34 43/113/31 +f 45/127/35 60/135/36 44/114/33 +f 46/129/37 61/136/38 45/127/35 +f 47/116/39 62/137/40 46/129/37 +f 47/116/39 64/138/41 63/139/42 +f 49/120/43 64/140/41 48/118/44 +f 49/120/43 66/141/45 65/142/46 +f 51/125/47 66/143/45 50/122/48 +f 52/126/49 67/144/50 51/125/47 +f 53/128/51 68/145/52 52/126/49 +f 54/115/53 69/146/54 53/128/51 +f 55/117/26 70/147/55 54/115/53 +f 72/131/28 73/148/30 75/149/1 +f 65/142/46 66/141/45 75/150/1 +f 73/132/30 74/151/32 75/152/1 +f 66/143/45 67/153/50 75/154/1 +f 59/134/34 60/155/36 75/156/1 +f 74/133/32 59/157/34 75/158/1 +f 67/144/50 68/159/52 75/160/1 +f 60/135/36 61/161/38 75/162/1 +f 68/145/52 69/163/54 75/164/1 +f 61/136/38 62/165/40 75/166/1 +f 69/146/54 70/167/55 75/168/1 +f 62/137/40 63/169/42 75/170/1 +f 70/147/55 71/171/25 75/172/1 +f 63/139/42 64/138/41 75/173/1 +f 71/130/25 72/174/28 75/175/1 +f 64/140/41 65/176/46 75/177/1 +f 89/178/56 79/179/57 82/180/58 +f 83/181/59 78/182/60 79/183/57 +f 84/184/61 77/185/62 78/186/60 +f 85/187/63 76/188/64 77/189/62 +f 114/190/65 86/191/66 101/192/67 +f 88/193/68 82/194/58 81/195/69 +f 87/196/70 81/197/69 80/198/71 +f 113/199/72 87/196/70 80/200/71 +f 113/199/72 92/201/73 93/202/74 +f 81/197/69 92/203/73 80/198/71 +f 82/194/58 91/204/75 81/195/69 +f 78/182/60 175/205/76 79/183/57 +f 175/206/76 82/180/58 79/179/57 +f 77/185/62 97/207/77 78/186/60 +f 76/188/64 96/208/78 77/189/62 +f 95/209/79 114/190/65 94/210/80 +f 99/211/16 106/212/81 94/213/82 +f 94/213/82 107/214/83 95/215/14 +f 93/216/84 110/11/22 98/217/22 +f 90/218/19 103/219/85 91/220/86 +f 91/220/86 104/221/87 92/222/11 +f 92/222/11 105/9/88 93/216/84 +f 95/215/14 108/223/89 96/224/90 +f 96/224/90 109/225/91 97/226/10 +f 105/9/88 104/221/87 112/227/92 +f 104/221/87 103/219/85 112/228/92 +f 103/219/85 102/229/93 112/230/92 +f 109/225/91 108/223/89 112/231/92 +f 108/223/89 107/214/83 112/232/92 +f 107/214/83 106/212/81 112/233/92 +f 106/212/81 111/234/94 112/235/92 +f 113/236/95 10/237/17 100/238/96 +f 25/239/17 113/236/95 26/240/19 +f 26/240/19 113/236/95 11/241/97 +f 11/36/98 114/110/6 12/242/10 +f 13/243/8 114/110/6 1/112/8 +f 2/244/23 13/243/8 1/112/8 +f 3/245/14 14/246/23 2/244/23 +f 4/247/13 15/248/14 3/245/14 +f 5/249/16 16/250/13 4/247/13 +f 20/251/21 19/252/99 218/253/100 +f 218/253/100 21/254/22 20/251/21 +f 218/253/100 205/255/101 6/256/22 +f 7/257/12 21/254/22 6/256/22 +f 8/258/11 22/259/12 7/257/12 +f 9/260/15 23/261/11 8/258/11 +f 10/237/17 24/262/15 9/260/15 +f 125/263/102 138/264/103 126/265/103 +f 135/266/104 124/267/105 123/268/104 +f 133/269/106 122/270/107 121/271/106 +f 134/272/107 123/268/104 122/270/107 +f 136/273/105 125/263/102 124/267/105 +f 160/274/11 173/275/86 161/276/86 +f 157/277/20 170/278/108 158/279/108 +f 154/280/14 167/281/82 155/282/82 +f 161/276/86 174/283/109 162/284/109 +f 151/285/9 164/286/110 152/287/110 +f 158/279/108 171/288/84 159/289/84 +f 155/282/82 168/290/111 156/291/111 +f 162/284/109 163/292/9 151/293/9 +f 152/287/110 165/294/90 153/295/90 +f 159/289/84 172/296/11 160/274/11 +f 156/291/111 169/297/20 157/277/20 +f 153/295/90 166/298/14 154/280/14 +f 160/274/112 149/299/113 148/300/112 +f 161/276/113 150/301/114 149/299/113 +f 162/284/114 139/302/115 150/301/114 +f 151/285/115 140/303/116 139/304/115 +f 152/287/116 141/305/117 140/303/116 +f 153/295/117 142/306/118 141/305/117 +f 154/280/118 143/307/119 142/306/118 +f 155/282/119 144/308/120 143/307/119 +f 156/291/120 145/309/121 144/308/120 +f 145/309/121 158/279/122 146/310/122 +f 158/279/122 147/311/123 146/310/122 +f 159/289/123 148/300/112 147/311/123 +f 138/264/103 115/312/124 126/265/103 +f 127/313/124 116/314/125 115/315/124 +f 128/316/125 117/317/126 116/314/125 +f 129/318/126 118/319/127 117/317/126 +f 130/320/127 119/321/128 118/319/127 +f 131/322/128 120/323/129 119/321/128 +f 132/324/129 121/271/106 120/323/129 +f 176/83/130 178/325/131 90/326/132 +f 177/82/133 97/327/134 179/328/135 +f 178/329/131 177/82/133 179/330/135 +f 112/331/92 102/229/93 109/225/91 +f 102/229/93 97/226/10 109/225/91 +f 193/332/136 183/333/137 186/334/138 +f 187/335/139 182/336/140 183/337/137 +f 188/338/141 181/339/142 182/340/140 +f 189/341/143 180/342/144 181/343/142 +f 218/344/145 190/345/146 205/346/147 +f 192/347/148 186/348/138 185/349/149 +f 191/350/150 185/351/149 184/352/151 +f 217/353/152 191/350/150 184/354/151 +f 217/353/152 196/355/153 197/356/154 +f 185/351/149 196/357/153 184/352/151 +f 186/348/138 195/358/155 185/349/149 +f 182/336/140 243/359/156 183/337/137 +f 243/360/156 186/334/138 183/333/137 +f 181/339/142 201/361/157 182/340/140 +f 180/342/144 200/362/158 181/343/142 +f 199/363/159 218/344/145 198/364/160 +f 246/365/161 251/366/162 245/367/163 +f 251/366/162 265/368/164 264/369/165 +f 261/370/166 260/371/167 253/372/168 +f 244/373/169 246/374/170 245/375/170 +f 261/370/166 255/376/171 262/377/172 +f 256/378/173 262/377/172 255/376/171 +f 253/372/168 265/379/164 252/380/174 +f 255/376/171 261/370/166 253/372/168 +f 209/84/175 208/381/176 216/382/177 +f 208/381/176 207/383/178 216/384/177 +f 207/383/178 206/385/179 216/386/177 +f 213/387/180 212/388/181 216/389/177 +f 212/388/181 211/390/182 216/391/177 +f 211/390/182 210/392/183 216/393/177 +f 210/392/183 215/394/184 216/395/177 +f 229/396/128 242/397/129 230/398/129 +f 227/399/126 240/400/127 228/401/127 +f 237/402/124 226/403/125 225/404/124 +f 238/405/125 227/399/126 226/403/125 +f 240/400/127 229/396/128 228/401/127 +f 242/397/129 219/406/106 230/398/129 +f 231/407/106 220/408/107 219/406/106 +f 232/409/107 221/410/104 220/408/107 +f 221/410/104 234/411/105 222/412/105 +f 234/411/105 223/413/102 222/412/105 +f 235/414/102 224/415/103 223/413/102 +f 236/416/103 225/417/124 224/415/103 +f 216/418/177 206/385/179 213/387/180 +f 250/419/185 264/420/165 259/421/186 +f 217/422/187 19/252/188 18/423/18 +f 17/424/16 217/422/187 18/423/18 +f 217/422/187 5/249/16 204/425/189 +f 250/419/185 248/426/14 244/427/190 +f 245/367/163 250/419/185 244/427/190 +f 249/428/11 253/372/168 247/429/191 +f 253/372/168 246/365/161 247/429/191 +f 258/430/192 250/419/185 259/431/186 +f 258/430/192 254/432/193 250/419/185 +f 258/430/192 257/433/194 254/432/193 +f 263/434/195 254/432/193 257/433/194 +f 262/435/86 215/394/184 210/392/183 +f 261/436/11 210/392/183 211/390/182 +f 260/437/84 211/390/182 212/388/181 +f 206/385/179 265/438/21 213/387/180 +f 258/439/14 207/383/178 208/381/176 +f 257/440/90 208/381/176 209/84/175 +f 263/441/8 209/84/175 214/86/8 +f 249/442/3 244/373/169 248/443/3 +f 265/438/21 212/388/181 213/387/180 +f 259/444/82 206/385/179 207/383/178 +f 273/445/11 284/446/15 274/447/15 +f 271/448/196 282/449/12 272/450/12 +f 268/451/14 279/452/13 269/453/13 +f 266/454/197 277/455/23 267/456/23 +f 274/447/15 285/457/198 275/458/198 +f 272/450/12 283/459/11 273/445/11 +f 269/453/13 280/460/199 270/461/199 +f 267/456/23 278/462/14 268/451/14 +f 288/463/200 293/464/201 289/465/201 +f 291/466/202 288/463/200 287/467/202 +f 286/468/203 291/466/202 287/467/202 +f 296/469/204 301/470/205 297/471/205 +f 299/472/206 296/469/204 295/473/206 +f 294/474/207 299/472/206 295/473/206 +f 43/113/9 27/108/9 28/35/10 +f 39/28/11 55/117/11 54/115/12 +f 32/6/13 48/118/13 47/116/14 +f 40/31/15 56/119/15 55/117/11 +f 33/15/16 49/120/16 48/118/13 +f 41/30/17 57/121/17 56/119/15 +f 34/17/18 50/122/18 49/120/16 +f 42/38/19 58/123/19 57/121/17 +f 35/21/20 51/125/20 50/122/18 +f 58/123/19 42/38/19 27/37/9 +f 36/23/21 52/126/21 51/125/20 +f 29/2/8 45/127/8 44/114/10 +f 37/22/22 53/128/22 52/126/21 +f 30/8/23 46/129/23 45/127/8 +f 38/26/12 54/115/12 53/128/22 +f 31/4/14 47/116/14 46/129/23 +f 56/119/24 72/174/28 71/130/25 +f 57/121/27 73/148/30 72/131/28 +f 58/123/29 74/151/32 73/132/30 +f 43/124/31 59/157/34 74/133/32 +f 44/114/33 60/155/36 59/134/34 +f 45/127/35 61/161/38 60/135/36 +f 46/129/37 62/165/40 61/136/38 +f 47/116/39 63/169/42 62/137/40 +f 47/116/39 48/118/44 64/138/41 +f 49/120/43 65/176/46 64/140/41 +f 49/120/43 50/122/48 66/141/45 +f 51/125/47 67/153/50 66/143/45 +f 52/126/49 68/159/52 67/144/50 +f 53/128/51 69/163/54 68/145/52 +f 54/115/53 70/167/55 69/146/54 +f 55/117/26 71/171/25 70/147/55 +f 89/178/56 83/181/59 79/179/57 +f 83/181/59 84/184/61 78/182/60 +f 84/184/61 85/187/63 77/185/62 +f 85/187/63 86/191/66 76/188/64 +f 114/190/65 76/475/64 86/191/66 +f 88/193/68 89/178/56 82/194/58 +f 87/196/70 88/193/68 81/197/69 +f 113/199/72 100/476/208 87/196/70 +f 113/199/72 80/200/71 92/201/73 +f 81/197/69 91/477/75 92/203/73 +f 82/194/58 90/478/209 91/204/75 +f 78/182/60 97/479/77 175/205/76 +f 175/206/76 90/480/209 82/180/58 +f 77/185/62 96/481/78 97/207/77 +f 76/188/64 95/482/79 96/208/78 +f 95/209/79 76/475/64 114/190/65 +f 99/211/16 111/234/94 106/212/81 +f 94/213/82 106/212/81 107/214/83 +f 93/216/84 105/9/88 110/11/22 +f 90/218/19 102/229/93 103/219/85 +f 91/220/86 103/219/85 104/221/87 +f 92/222/11 104/221/87 105/9/88 +f 95/215/14 107/214/83 108/223/89 +f 96/224/90 108/223/89 109/225/91 +f 25/239/17 10/237/17 113/236/95 +f 13/243/8 12/242/10 114/110/6 +f 2/244/23 14/246/23 13/243/8 +f 3/245/14 15/248/14 14/246/23 +f 4/247/13 16/250/13 15/248/14 +f 5/249/16 17/424/16 16/250/13 +f 218/253/100 6/256/22 21/254/22 +f 7/257/12 22/259/12 21/254/22 +f 8/258/11 23/261/11 22/259/12 +f 9/260/15 24/262/15 23/261/11 +f 10/237/17 25/239/17 24/262/15 +f 125/263/102 137/483/102 138/264/103 +f 135/266/104 136/273/105 124/267/105 +f 133/269/106 134/272/107 122/270/107 +f 134/272/107 135/266/104 123/268/104 +f 136/273/105 137/483/102 125/263/102 +f 160/274/11 172/296/11 173/275/86 +f 157/277/20 169/297/20 170/278/108 +f 154/280/14 166/298/14 167/281/82 +f 161/276/86 173/275/86 174/283/109 +f 151/285/9 163/484/9 164/286/110 +f 158/279/108 170/278/108 171/288/84 +f 155/282/82 167/281/82 168/290/111 +f 162/284/109 174/283/109 163/292/9 +f 152/287/110 164/286/110 165/294/90 +f 159/289/84 171/288/84 172/296/11 +f 156/291/111 168/290/111 169/297/20 +f 153/295/90 165/294/90 166/298/14 +f 160/274/112 161/276/113 149/299/113 +f 161/276/113 162/284/114 150/301/114 +f 162/284/114 151/293/115 139/302/115 +f 151/285/115 152/287/116 140/303/116 +f 152/287/116 153/295/117 141/305/117 +f 153/295/117 154/280/118 142/306/118 +f 154/280/118 155/282/119 143/307/119 +f 155/282/119 156/291/120 144/308/120 +f 156/291/120 157/277/121 145/309/121 +f 145/309/121 157/277/121 158/279/122 +f 158/279/122 159/289/123 147/311/123 +f 159/289/123 160/274/112 148/300/112 +f 138/264/103 127/485/124 115/312/124 +f 127/313/124 128/316/125 116/314/125 +f 128/316/125 129/318/126 117/317/126 +f 129/318/126 130/320/127 118/319/127 +f 130/320/127 131/322/128 119/321/128 +f 131/322/128 132/324/129 120/323/129 +f 132/324/129 133/269/106 121/271/106 +f 178/329/131 176/83/130 177/82/133 +f 102/229/93 90/218/19 97/226/10 +f 193/332/136 187/335/139 183/333/137 +f 187/335/139 188/338/141 182/336/140 +f 188/338/141 189/341/143 181/339/142 +f 189/341/143 190/345/146 180/342/144 +f 218/344/145 180/486/144 190/345/146 +f 192/347/148 193/332/136 186/348/138 +f 191/350/150 192/347/148 185/351/149 +f 217/353/152 204/487/210 191/350/150 +f 217/353/152 184/354/151 196/355/153 +f 185/351/149 195/488/155 196/357/153 +f 186/348/138 194/489/211 195/358/155 +f 182/336/140 201/490/157 243/359/156 +f 243/360/156 194/491/211 186/334/138 +f 181/339/142 200/492/158 201/361/157 +f 180/342/144 199/493/159 200/362/158 +f 199/363/159 180/486/144 218/344/145 +f 246/365/161 252/380/174 251/366/162 +f 251/366/162 252/380/174 265/368/164 +f 244/373/169 247/494/169 246/374/170 +f 253/372/168 260/495/167 265/379/164 +f 229/396/128 241/496/128 242/397/129 +f 227/399/126 239/497/126 240/400/127 +f 237/402/124 238/405/125 226/403/125 +f 238/405/125 239/497/126 227/399/126 +f 240/400/127 241/496/128 229/396/128 +f 242/397/129 231/407/106 219/406/106 +f 231/407/106 232/409/107 220/408/107 +f 232/409/107 233/498/104 221/410/104 +f 221/410/104 233/498/104 234/411/105 +f 234/411/105 235/414/102 223/413/102 +f 235/414/102 236/416/103 224/415/103 +f 236/416/103 237/499/124 225/417/124 +f 250/419/185 251/366/162 264/420/165 +f 17/424/16 5/249/16 217/422/187 +f 250/419/185 254/432/193 248/426/14 +f 245/367/163 251/366/162 250/419/185 +f 249/428/11 255/376/171 253/372/168 +f 253/372/168 252/380/174 246/365/161 +f 262/435/86 256/500/17 215/394/184 +f 261/436/11 262/435/86 210/392/183 +f 260/437/84 261/436/11 211/390/182 +f 206/385/179 264/501/18 265/438/21 +f 258/439/14 259/444/82 207/383/178 +f 257/440/90 258/439/14 208/381/176 +f 263/441/8 257/440/90 209/84/175 +f 249/442/3 247/494/169 244/373/169 +f 265/438/21 260/437/84 212/388/181 +f 259/444/82 264/501/18 206/385/179 +f 273/445/11 283/459/11 284/446/15 +f 271/448/196 281/502/196 282/449/12 +f 268/451/14 278/462/14 279/452/13 +f 266/454/197 276/503/197 277/455/23 +f 274/447/15 284/446/15 285/457/198 +f 272/450/12 282/449/12 283/459/11 +f 269/453/13 279/452/13 280/460/199 +f 267/456/23 277/455/23 278/462/14 +f 288/463/200 292/504/200 293/464/201 +f 291/466/202 292/504/200 288/463/200 +f 286/468/203 290/505/203 291/466/202 +f 296/469/204 300/506/204 301/470/205 +f 299/472/206 300/506/204 296/469/204 +f 294/474/207 298/507/207 299/472/206 +l 197 202 +l 203 198 diff --git a/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday.png b/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday.png new file mode 100644 index 0000000000000000000000000000000000000000..5166b956ed804eeb0aa761637686fa0661af1f18 GIT binary patch literal 33643 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 T0Mb*F00000NkvXXu0mjfun_wM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday_weathered.png b/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday_weathered.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3863da6eca526eb8d8823409a719d6a4e7cef4 GIT binary patch literal 56419 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_atlas_nuclear.png b/src/main/resources/assets/hbm/textures/models/missile_atlas_nuclear.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2b429d087e6b2a0e3f3e55ee5de910e71aaa99 GIT binary patch literal 29610 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_atlas_tectonic.png b/src/main/resources/assets/hbm/textures/models/missile_atlas_tectonic.png new file mode 100644 index 0000000000000000000000000000000000000000..d4fe9c9c0bb49ad826911bdd275f39a3ab4dc763 GIT binary patch literal 33442 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 p0000EWmrjOO-%qQ00008000000002eQ Date: Tue, 13 Feb 2024 14:01:01 +0100 Subject: [PATCH 184/376] the malicious gigglefish from the silly dimension --- changelog | 9 +- .../java/com/hbm/blocks/BlockDummyable.java | 1 - .../com/hbm/blocks/bomb/LaunchPadLarge.java | 39 +- .../hbm/blocks/machine/MachineCentrifuge.java | 1 + .../hbm/blocks/machine/MachineCrucible.java | 1 + .../hbm/blocks/machine/MachineGasCent.java | 1 + .../hbm/blocks/machine/MachineGasFlare.java | 1 + .../hbm/blocks/machine/MachineSawmill.java | 1 + .../com/hbm/blocks/rail/RailStandardRamp.java | 1 + .../entity/missile/EntityMissileBaseNT.java | 13 +- .../entity/missile/EntityMissileCustom.java | 7 +- .../com/hbm/explosion/ExplosionNukeSmall.java | 16 +- .../container/ContainerLaunchPadLarge.java | 6 +- .../hbm/inventory/gui/GUILaunchPadLarge.java | 6 +- .../com/hbm/items/weapon/ItemMissile.java | 25 +- .../render/entity/effect/RenderFallout.java | 274 ++++---------- .../entity/rocket/RenderMissileGeneric.java | 8 + .../entity/rocket/RenderMissileHuge.java | 8 + .../entity/rocket/RenderMissileNuclear.java | 8 + .../entity/rocket/RenderMissileStrong.java | 8 + .../entity/rocket/RenderMissileTaint.java | 8 + .../hbm/tileentity/TileEntityDoorGeneric.java | 20 +- .../bomb/TileEntityLaunchPadBase.java | 345 ++++++++++++++++++ .../bomb/TileEntityLaunchPadLarge.java | 122 ++----- .../oil/TileEntityMachineFractionTower.java | 94 +---- .../assets/hbm/textures/entity/fallout.png | Bin 297 -> 232 bytes 26 files changed, 597 insertions(+), 426 deletions(-) create mode 100644 src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java diff --git a/changelog b/changelog index 5b3c195cb..56b64c230 100644 --- a/changelog +++ b/changelog @@ -9,6 +9,7 @@ * Using desulfurized oil skips the (rather destructive) desulfurization process of the standard refinery, yielding higher-quality oils * Hydrotreating also allows cracked diesel variants to turn into their normal counterparts * Can convert coal oil directly into coal gasoline + * For people afraid that this means yet another oil expansion that they need to progress through, I can assure you that this machine is entirely optional * Rural house * A new structure of an old brick house * Industrial lighting @@ -38,6 +39,9 @@ * Covneyor ejectors can now eject sulfur out of the side ports of refineries * Refineries and vacuum refineries now have fluid ID slots for changing the recipe * Removed the remaining old oil separation recipes from the chemical plant + * To help people coping with this terrible, terrible loss, fraction towers are now twice as fast + * This is a reminder that the chemical plant is a chemical reactor first and foremost, recipes like mixing and fractioning only existed because at the time there was no dedicated machine for it + * Fractional distilling is not a chemical process but a purely physical one, I don't know who needs to know this but I feel like some people might be unaware of the fact * More large models have been converted into display lists which should improve performance somewhat * Corroded barrels now crumble after a while * PWRs on the edge of unloaded chunks now additionally reset their internal heat value to further reduce the time until they can potentially melt down @@ -59,6 +63,8 @@ * Oxyhydrogen can now be made by mixing air (i.e. nothing) with hydrogen * The oxygen + hydrogen recipe remains in order to give an option to void oxygen without needing to resort to flare stacks * Removed some of the lower tier items fomr the red room loot pool, making the average red room better +* Retextured the fallout effect, fallout no longer has large snowflakes and the color now matches the crater better +* High-yield mini nukes no longer create chunk radiation, since they use the MK5 which already has AoE radiation, this prevents dead grass from spawning that makes the crater look uglier ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace @@ -73,4 +79,5 @@ * Fixed several chemistry templates missing names * Fixed rampant mode random scout spawns being able to appear inside blocks * Fixed turret rotation sometimes desyncing when out of range, this is especially noticeable with slow-moving arty -* Fixed research reactor OC integration allowing the control rods to be set out of bounds \ No newline at end of file +* Fixed research reactor OC integration allowing the control rods to be set out of bounds +* Fixed fallout falling faster and overlaying if multiple fallout areas intersect \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/BlockDummyable.java b/src/main/java/com/hbm/blocks/BlockDummyable.java index 4d7b35b2e..d802eac32 100644 --- a/src/main/java/com/hbm/blocks/BlockDummyable.java +++ b/src/main/java/com/hbm/blocks/BlockDummyable.java @@ -36,7 +36,6 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl public BlockDummyable(Material mat) { super(mat); - this.maxY = 0.999D; //item bounce prevention this.setTickRandomly(true); } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java index 3ee94b272..eb6d9daa8 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java @@ -1,14 +1,16 @@ package com.hbm.blocks.bomb; import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IBomb; import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class LaunchPadLarge extends BlockDummyable { +public class LaunchPadLarge extends BlockDummyable implements IBomb { public LaunchPadLarge(Material mat) { super(mat); @@ -34,4 +36,39 @@ public class LaunchPadLarge extends BlockDummyable { public int getOffset() { return 4; } + + @Override + public BombReturnCode explode(World world, int x, int y, int z) { + + if(!world.isRemote) { + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPadLarge){ + TileEntityLaunchPadLarge entity = (TileEntityLaunchPadLarge)core; + return entity.launchFromDesignator(); + } + } + } + + return BombReturnCode.UNDEFINED; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){ + + if(!world.isRemote){ + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPadLarge){ + TileEntityLaunchPadLarge door = (TileEntityLaunchPadLarge)core; + door.updateRedstonePower(x, y, z); + } + } + } + super.onNeighborBlockChange( world, x, y, z, blockIn); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java b/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java index b1315d224..3cfc64582 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java @@ -19,6 +19,7 @@ public class MachineCentrifuge extends BlockDummyable { super(mat); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5D, 0D, -0.5D, 0.5D, 1D, 0.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.375D, 1D, -0.375D, 0.375D, 4D, 0.375D)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineCrucible.java b/src/main/java/com/hbm/blocks/machine/MachineCrucible.java index b2ccf824c..cb9671776 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCrucible.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCrucible.java @@ -37,6 +37,7 @@ public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 0.5D, -1.25D, -1D, 1.5D, 1.25D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 0.5D, 1D, 1.25D, 1.5D, 1.25D)); this.bounding.add(AxisAlignedBB.getBoundingBox(1D, 0.5D, -1.25D, 1.25D, 1.5D, 1.25D)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasCent.java b/src/main/java/com/hbm/blocks/machine/MachineGasCent.java index 3c3ebad48..3184452f9 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasCent.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasCent.java @@ -20,6 +20,7 @@ public class MachineGasCent extends BlockDummyable implements IMultiblock { super(mat); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5D, 0D, -0.5D, 0.5D, 1D, 0.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.4375D, 1D, -0.4375D, 0.4375D, 4D, 0.4375D)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java index 4567cf760..61e1e53ca 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java @@ -25,6 +25,7 @@ public class MachineGasFlare extends BlockDummyable implements ITooltipProvider this.bounding.add(AxisAlignedBB.getBoundingBox(-0.75D, 3.875D, -0.75D, 0.75D, 9, 0.75D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 9D, -1.5D, 1.5D, 9.375D, 1.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.75D, 9.375D, -0.75D, 0.75D, 12, 0.75D)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineSawmill.java b/src/main/java/com/hbm/blocks/machine/MachineSawmill.java index 1be748c34..8a112a2b2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSawmill.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSawmill.java @@ -33,6 +33,7 @@ public class MachineSawmill extends BlockDummyable implements ILookOverlay, IToo this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, 1.5D, 1D, 1.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 1D, -0.5D, -0.625D, 1.875D, 0.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.625D, 1D, -1D, 1.375D, 2D, 1D)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java index aab9ed31d..214aac005 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -32,6 +32,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRende this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5, 0.0, -1.5, 0.5, 0.5, 0.5)); this.bounding.add(AxisAlignedBB.getBoundingBox(0.5, 0.0, -1.5, 1.5, 0.7, 0.5)); this.bounding.add(AxisAlignedBB.getBoundingBox(1.5, 0.0, -1.5, 2.5, 0.9, 0.5)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 4ee1c8acf..2a2a65b4d 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -100,6 +100,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen protected void entityInit() { super.entityInit(); init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + this.dataWatcher.addObject(3, new Byte((byte) 5)); } @Override @@ -238,7 +239,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen if(this.isEntityInvulnerable()) { return false; } else { - if(!this.isDead && !this.worldObj.isRemote) { + if(this.health > 0 && !this.worldObj.isRemote) { health -= amount; if(this.health <= 0) { @@ -251,10 +252,12 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen } protected void killMissile() { - this.setDead(); - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); - ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); + if(!this.isDead) { + this.setDead(); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); + } } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 94c296f17..7429e0b8e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -72,8 +72,11 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo @Override protected void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + if(!this.isDead) { + this.setDead(); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + } } @Override diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java b/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java index 88dbdacaf..f9cbfec62 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java @@ -34,12 +34,14 @@ public class ExplosionNukeSmall { if(params.killRadius > 0) ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, params.killRadius); if(!params.miniNuke) world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int) params.blastRadius, posX, posY, posZ).mute()); - float radMod = params.radiationLevel / 3F; - - for(int i = -2; i <= 2; i++) { - for(int j = -2; j <= 2; j++) { - if(Math.abs(i) + Math.abs(j) < 4) { - ChunkRadiationManager.proxy.incrementRad(world, (int) Math.floor(posX + i * 16), (int) Math.floor(posY), (int) Math.floor(posZ + j * 16), 50 / (Math.abs(i) + Math.abs(j) + 1) * radMod); + if(params.miniNuke) { + float radMod = params.radiationLevel / 3F; + + for(int i = -2; i <= 2; i++) { + for(int j = -2; j <= 2; j++) { + if(Math.abs(i) + Math.abs(j) < 4) { + ChunkRadiationManager.proxy.incrementRad(world, (int) Math.floor(posX + i * 16), (int) Math.floor(posY), (int) Math.floor(posZ + j * 16), 50 / (Math.abs(i) + Math.abs(j) + 1) * radMod); + } } } } @@ -49,7 +51,7 @@ public class ExplosionNukeSmall { public static MukeParams PARAMS_TOTS = new MukeParams() {{ blastRadius = 10F; killRadius = 30F; particle = "tinytot"; shrapnelCount = 0; resolution = 32; radiationLevel = 1; }}; public static MukeParams PARAMS_LOW = new MukeParams() {{ blastRadius = 15F; killRadius = 45F; radiationLevel = 2; }}; public static MukeParams PARAMS_MEDIUM = new MukeParams() {{ blastRadius = 20F; killRadius = 55F; radiationLevel = 3; }}; - public static MukeParams PARAMS_HIGH = new MukeParams() {{ miniNuke = false; blastRadius = BombConfig.fatmanRadius; shrapnelCount = 0; radiationLevel = 4; }}; + public static MukeParams PARAMS_HIGH = new MukeParams() {{ miniNuke = false; blastRadius = BombConfig.fatmanRadius; shrapnelCount = 0; }}; /* more sensible approach with more customization options, idea shamelessly stolen from Martin */ public static class MukeParams { diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java index 4ba62c1ae..37bc65623 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; +import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -11,9 +11,9 @@ import net.minecraft.item.ItemStack; public class ContainerLaunchPadLarge extends Container { - private TileEntityLaunchPadLarge launchpad; + private TileEntityLaunchPadBase launchpad; - public ContainerLaunchPadLarge(InventoryPlayer invPlayer, TileEntityLaunchPadLarge tedf) { + public ContainerLaunchPadLarge(InventoryPlayer invPlayer, TileEntityLaunchPadBase tedf) { launchpad = tedf; diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java index 11d4fea67..c99bd9f9b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java @@ -11,7 +11,7 @@ import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemMissile; import com.hbm.lib.RefStrings; import com.hbm.render.item.ItemRenderMissileGeneric; -import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; +import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderHelper; @@ -23,9 +23,9 @@ import net.minecraft.util.ResourceLocation; public class GUILaunchPadLarge extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_launch_pad_large.png"); - private TileEntityLaunchPadLarge launchpad; + private TileEntityLaunchPadBase launchpad; - public GUILaunchPadLarge(InventoryPlayer invPlayer, TileEntityLaunchPadLarge tedf) { + public GUILaunchPadLarge(InventoryPlayer invPlayer, TileEntityLaunchPadBase tedf) { super(new ContainerLaunchPadLarge(invPlayer, tedf)); launchpad = tedf; diff --git a/src/main/java/com/hbm/items/weapon/ItemMissile.java b/src/main/java/com/hbm/items/weapon/ItemMissile.java index 740487f8e..1f2023494 100644 --- a/src/main/java/com/hbm/items/weapon/ItemMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemMissile.java @@ -13,17 +13,22 @@ public class ItemMissile extends ItemCustomLore { public final MissileFormFactor formFactor; public final MissileTier tier; public final MissileFuel fuel; + public int fuelCap; public ItemMissile(MissileFormFactor form, MissileTier tier) { - this.formFactor = form; - this.tier = tier; - this.fuel = form.defaultFuel; + this(form, tier, form.defaultFuel); } public ItemMissile(MissileFormFactor form, MissileTier tier, MissileFuel fuel) { this.formFactor = form; this.tier = tier; this.fuel = fuel; + this.setFuelCap(this.fuel.defaultCap); + } + + public ItemMissile setFuelCap(int fuelCap) { + this.fuelCap = fuelCap; + return this; } @Override @@ -64,16 +69,18 @@ public class ItemMissile extends ItemCustomLore { } public enum MissileFuel { - SOLID(EnumChatFormatting.GOLD + "Solid Fuel (pre-fueled)"), - ETHANOL_PEROXIDE(EnumChatFormatting.AQUA + "Ethanol / Hydrogen Peroxide"), - KEROSENE_PEROXIDE(EnumChatFormatting.BLUE + "Kerosene / Hydrogen Peroxide"), - KEROSENE_LOXY(EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Liquid Oxygen"), - JETFUEL_LOXY(EnumChatFormatting.RED + "Jet Fuel / Liquid Oxygen"); + SOLID(EnumChatFormatting.GOLD + "Solid Fuel (pre-fueled)", 0), + ETHANOL_PEROXIDE(EnumChatFormatting.AQUA + "Ethanol / Hydrogen Peroxide", 4_000), + KEROSENE_PEROXIDE(EnumChatFormatting.BLUE + "Kerosene / Hydrogen Peroxide", 8_000), + KEROSENE_LOXY(EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Liquid Oxygen", 12_000), + JETFUEL_LOXY(EnumChatFormatting.RED + "Jet Fuel / Liquid Oxygen", 16_000); public String display; + public int defaultCap; - private MissileFuel(String display) { + private MissileFuel(String display, int defaultCap) { this.display = display; + this.defaultCap = defaultCap; } } } diff --git a/src/main/java/com/hbm/render/entity/effect/RenderFallout.java b/src/main/java/com/hbm/render/entity/effect/RenderFallout.java index 1b3131ad1..fb565fd31 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderFallout.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderFallout.java @@ -17,45 +17,34 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraftforge.client.IRenderHandler; public class RenderFallout extends Render { - private Minecraft mc; + private static final ResourceLocation falloutTexture = new ResourceLocation(RefStrings.MODID, "textures/entity/fallout.png"); private Random random = new Random(); float[] rainXCoords; float[] rainYCoords; - private int rendererUpdateCount; long lastTime = System.nanoTime(); - private static final ResourceLocation falloutTexture = new ResourceLocation(RefStrings.MODID, - "textures/entity/fallout.png"); @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { - if (p_76986_1_ instanceof EntityFalloutRain) - this.render((EntityFalloutRain) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + if(entity instanceof EntityFalloutRain) + this.render((EntityFalloutRain) entity, x, y, z, f0, f1); } - public void render(EntityFalloutRain p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, - float p_76986_8_, float p_76986_9_) { - - this.mc = Minecraft.getMinecraft(); + public void render(EntityFalloutRain entity, double x, double y, double z, float f0, float f1) { - EntityLivingBase entitylivingbase = this.mc.renderViewEntity; - Vec3 vector = Vec3.createVectorHelper(entitylivingbase.posX - p_76986_1_.posX, - entitylivingbase.posY - p_76986_1_.posY, entitylivingbase.posZ - p_76986_1_.posZ); - - double d = vector.lengthVector(); - - if (d <= p_76986_1_.getScale()) { - rendererUpdateCount++; + Minecraft mc = Minecraft.getMinecraft(); + + EntityLivingBase entitylivingbase = mc.renderViewEntity; + Vec3 vector = Vec3.createVectorHelper(entitylivingbase.posX - entity.posX, entitylivingbase.posY - entity.posY, entitylivingbase.posZ - entity.posZ); + + if(vector.lengthVector() <= entity.getScale()) { long time = System.nanoTime(); - float t = (time - lastTime) / 50000000; - if (t <= 1.0F) + float t = (time - lastTime) / 50_000_000; + if(t <= 1.0F) renderRainSnow(t); else renderRainSnow(1.0F); @@ -65,31 +54,25 @@ public class RenderFallout extends Render { } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; + protected ResourceLocation getEntityTexture(Entity entity) { + return this.falloutTexture; } - protected void renderRainSnow(float p_78474_1_) { + protected void renderRainSnow(float interp) { - IRenderHandler renderer = null; - if ((renderer = this.mc.theWorld.provider.getWeatherRenderer()) != null) { - renderer.render(p_78474_1_, this.mc.theWorld, mc); - return; - } + Minecraft mc = Minecraft.getMinecraft(); + int timer = mc.thePlayer.ticksExisted; - // float f1 = this.mc.theWorld.getRainStrength(p_78474_1_); + float intensity = 1F; - float f1 = 1; + if(intensity > 0.0F) { - if (f1 > 0.0F) { - // this.enableLightmap((double)p_78474_1_); - - if (this.rainXCoords == null) { + if(this.rainXCoords == null) { this.rainXCoords = new float[1024]; this.rainYCoords = new float[1024]; - for (int i = 0; i < 32; ++i) { - for (int j = 0; j < 32; ++j) { + for(int i = 0; i < 32; ++i) { + for(int j = 0; j < 32; ++j) { float f2 = j - 16; float f3 = i - 16; float f4 = MathHelper.sqrt_float(f2 * f2 + f3 * f3); @@ -99,185 +82,88 @@ public class RenderFallout extends Render { } } - EntityLivingBase entitylivingbase = this.mc.renderViewEntity; - WorldClient worldclient = this.mc.theWorld; - int k2 = MathHelper.floor_double(entitylivingbase.posX); - int l2 = MathHelper.floor_double(entitylivingbase.posY); - int i3 = MathHelper.floor_double(entitylivingbase.posZ); + WorldClient worldclient = mc.theWorld; + EntityLivingBase camera = mc.renderViewEntity; + + int playerX = MathHelper.floor_double(camera.posX); + int playerY = MathHelper.floor_double(camera.posY); + int playerZ = MathHelper.floor_double(camera.posZ); + double dX = camera.lastTickPosX + (camera.posX - camera.lastTickPosX) * interp; + double dY = camera.lastTickPosY + (camera.posY - camera.lastTickPosY) * interp; + double dZ = camera.lastTickPosZ + (camera.posZ - camera.lastTickPosZ) * interp; + + int playerHeight = MathHelper.floor_double(dY); + byte renderLayerCount = 5; + byte layer = -1; + + if(mc.gameSettings.fancyGraphics) renderLayerCount = 10; + Tessellator tessellator = Tessellator.instance; GL11.glDisable(GL11.GL_CULL_FACE); GL11.glNormal3f(0.0F, 1.0F, 0.0F); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - double d0 = entitylivingbase.lastTickPosX - + (entitylivingbase.posX - entitylivingbase.lastTickPosX) * p_78474_1_; - double d1 = entitylivingbase.lastTickPosY - + (entitylivingbase.posY - entitylivingbase.lastTickPosY) * p_78474_1_; - double d2 = entitylivingbase.lastTickPosZ - + (entitylivingbase.posZ - entitylivingbase.lastTickPosZ) * p_78474_1_; - int k = MathHelper.floor_double(d1); - byte b0 = 5; - - if (this.mc.gameSettings.fancyGraphics) { - b0 = 10; - } - - byte b1 = -1; - float f5 = this.rendererUpdateCount + p_78474_1_; - - if (this.mc.gameSettings.fancyGraphics) { - b0 = 10; - } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - for (int l = i3 - b0; l <= i3 + b0; ++l) { - for (int i1 = k2 - b0; i1 <= k2 + b0; ++i1) { - int j1 = (l - i3 + 16) * 32 + i1 - k2 + 16; - float f6 = this.rainXCoords[j1] * 0.5F; - float f7 = this.rainYCoords[j1] * 0.5F; - BiomeGenBase biomegenbase = worldclient.getBiomeGenForCoords(i1, l); - if (true) { - int k1 = worldclient.getPrecipitationHeight(i1, l); - int l1 = l2 - b0; - int i2 = l2 + b0; + for(int layerZ = playerZ - renderLayerCount; layerZ <= playerZ + renderLayerCount; ++layerZ) { + for(int layerX = playerX - renderLayerCount; layerX <= playerX + renderLayerCount; ++layerX) { + int rainCoord = (layerZ - playerZ + 16) * 32 + layerX - playerX + 16; + float rainCoordX = this.rainXCoords[rainCoord] * 0.5F; + float rainCoordY = this.rainYCoords[rainCoord] * 0.5F; - if (l1 < k1) { - l1 = k1; - } + int rainHeight = worldclient.getPrecipitationHeight(layerX, layerZ); + int minHeight = playerY - renderLayerCount; + int maxHeight = playerY + renderLayerCount; - if (i2 < k1) { - i2 = k1; - } + if(minHeight < rainHeight) minHeight = rainHeight; + if(maxHeight < rainHeight) maxHeight = rainHeight; + + int layerY = rainHeight; + if(rainHeight < playerHeight) layerY = playerHeight; - float f8 = 1.0F; - int j2 = k1; + if(minHeight != maxHeight) { + this.random.setSeed(layerX * layerX * 3121 + layerX * 45238971 ^ layerZ * layerZ * 418711 + layerZ * 13761); - if (k1 < k) { - j2 = k; - } - - if (l1 != i2) { - this.random.setSeed(i1 * i1 * 3121 + i1 * 45238971 ^ l * l * 418711 + l * 13761); - biomegenbase.getFloatTemperature(i1, l1, l); - float f10; - double d4; - - /* - * if (false) { if (b1 != 0) { if (b1 >= 0) { - * tessellator.draw(); } - * - * b1 = 0; - * this.mc.getTextureManager().bindTexture(this. - * falloutTexture); tessellator.startDrawingQuads(); - * //System.out.println("Called!"); } - * - * f10 = ((float)(this.rendererUpdateCount + i1 * i1 - * * 3121 + i1 * 45238971 + l * l * 418711 + l * - * 13761 & 31) + p_78474_1_) / 32.0F * (3.0F + - * this.random.nextFloat()); double d3 = - * (double)((float)i1 + 0.5F) - - * entitylivingbase.posX; d4 = (double)((float)l + - * 0.5F) - entitylivingbase.posZ; float f12 = - * MathHelper.sqrt_double(d3 * d3 + d4 * d4) / - * (float)b0; float f13 = 1.0F; - * tessellator.setBrightness(worldclient. - * getLightBrightnessForSkyBlocks(i1, j2, l, 0)); - * tessellator.setColorRGBA_F(f13, f13, f13, ((1.0F - * - f12 * f12) * 0.5F + 0.5F) * f1); - * tessellator.setTranslation(-d0 * 1.0D, -d1 * - * 1.0D, -d2 * 1.0D); - * tessellator.addVertexWithUV((double)((float)i1 - - * f6) + 0.5D, (double)l1, (double)((float)l - f7) + - * 0.5D, (double)(0.0F * f8), (double)((float)l1 * - * f8 / 4.0F + f10 * f8)); - * tessellator.addVertexWithUV((double)((float)i1 + - * f6) + 0.5D, (double)l1, (double)((float)l + f7) + - * 0.5D, (double)(1.0F * f8), (double)((float)l1 * - * f8 / 4.0F + f10 * f8)); - * tessellator.addVertexWithUV((double)((float)i1 + - * f6) + 0.5D, (double)i2, (double)((float)l + f7) + - * 0.5D, (double)(1.0F * f8), (double)((float)i2 * - * f8 / 4.0F + f10 * f8)); - * tessellator.addVertexWithUV((double)((float)i1 - - * f6) + 0.5D, (double)i2, (double)((float)l - f7) + - * 0.5D, (double)(0.0F * f8), (double)((float)i2 * - * f8 / 4.0F + f10 * f8)); - * tessellator.setTranslation(0.0D, 0.0D, 0.0D); } - * else - */ - { - if (b1 != 1) { - if (b1 >= 0) { - tessellator.draw(); - } - - b1 = 1; - this.mc.getTextureManager().bindTexture(RenderFallout.falloutTexture); - tessellator.startDrawingQuads(); - } - - f10 = ((this.rendererUpdateCount & 511) + p_78474_1_) / 512.0F; - float f16 = this.random.nextFloat() + f5 * 0.01F * (float) this.random.nextGaussian(); - float f11 = this.random.nextFloat() + f5 * (float) this.random.nextGaussian() * 0.001F; - d4 = i1 + 0.5F - entitylivingbase.posX; - double d5 = l + 0.5F - entitylivingbase.posZ; - float f14 = MathHelper.sqrt_double(d4 * d4 + d5 * d5) / b0; - float f15 = 1.0F; - tessellator.setBrightness( - (worldclient.getLightBrightnessForSkyBlocks(i1, j2, l, 0) * 3 + 15728880) / 4); - tessellator.setColorRGBA_F(f15, f15, f15, ((1.0F - f14 * f14) * 0.3F + 0.5F) * f1); - tessellator.setTranslation(-d0 * 1.0D, -d1 * 1.0D, -d2 * 1.0D); - tessellator.addVertexWithUV(i1 - f6 + 0.5D, l1, - l - f7 + 0.5D, 0.0F * f8 + f16, - l1 * f8 / 4.0F + f10 * f8 + f11); - tessellator.addVertexWithUV(i1 + f6 + 0.5D, l1, - l + f7 + 0.5D, 1.0F * f8 + f16, - l1 * f8 / 4.0F + f10 * f8 + f11); - tessellator.addVertexWithUV(i1 + f6 + 0.5D, i2, - l + f7 + 0.5D, 1.0F * f8 + f16, - i2 * f8 / 4.0F + f10 * f8 + f11); - tessellator.addVertexWithUV(i1 - f6 + 0.5D, i2, - l - f7 + 0.5D, 0.0F * f8 + f16, - i2 * f8 / 4.0F + f10 * f8 + f11); - tessellator.setTranslation(0.0D, 0.0D, 0.0D); + if(layer != 1) { + if(layer >= 0) { + tessellator.draw(); } + + layer = 1; + mc.getTextureManager().bindTexture(RenderFallout.falloutTexture); + tessellator.startDrawingQuads(); } + + float fallSpeed = 1.0F; + float swayLoop = ((timer & 511) + interp) / 512.0F; + float fallVariation = 0.4F + this.random.nextFloat() * 0.2F; + float swayVariation = this.random.nextFloat(); + double distX = layerX + 0.5F - camera.posX; + double distZ = layerZ + 0.5F - camera.posZ; + float intensityMod = MathHelper.sqrt_double(distX * distX + distZ * distZ) / renderLayerCount; + float colorMod = 1.0F; + + tessellator.setBrightness((worldclient.getLightBrightnessForSkyBlocks(layerX, layerY, layerZ, 0) * 3 + 15728880) / 4); + tessellator.setColorRGBA_F(colorMod, colorMod, colorMod, ((1.0F - intensityMod * intensityMod) * 0.3F + 0.5F) * intensity); + tessellator.setTranslation(-dX * 1.0D, -dY * 1.0D, -dZ * 1.0D); + tessellator.addVertexWithUV(layerX - rainCoordX + 0.5D, minHeight, layerZ - rainCoordY + 0.5D, 0.0F * fallSpeed + fallVariation, minHeight * fallSpeed / 4.0F + swayLoop * fallSpeed + swayVariation); + tessellator.addVertexWithUV(layerX + rainCoordX + 0.5D, minHeight, layerZ + rainCoordY + 0.5D, 1.0F * fallSpeed + fallVariation, minHeight * fallSpeed / 4.0F + swayLoop * fallSpeed + swayVariation); + tessellator.addVertexWithUV(layerX + rainCoordX + 0.5D, maxHeight, layerZ + rainCoordY + 0.5D, 1.0F * fallSpeed + fallVariation, maxHeight * fallSpeed / 4.0F + swayLoop * fallSpeed + swayVariation); + tessellator.addVertexWithUV(layerX - rainCoordX + 0.5D, maxHeight, layerZ - rainCoordY + 0.5D, 0.0F * fallSpeed + fallVariation, maxHeight * fallSpeed / 4.0F + swayLoop * fallSpeed + swayVariation); + tessellator.setTranslation(0.0D, 0.0D, 0.0D); } } } - if (b1 >= 0) { + if(layer >= 0) { tessellator.draw(); - // System.out.println("Fired!"); } GL11.glEnable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_BLEND); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - // this.disableLightmap((double)p_78474_1_); } } - - /* - * public void enableLightmap(double p_78463_1_) { - * OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit); - * GL11.glMatrixMode(GL11.GL_TEXTURE); GL11.glLoadIdentity(); float f = - * 0.00390625F; GL11.glScalef(f, f, f); GL11.glTranslatef(8.0F, 8.0F, 8.0F); - * GL11.glMatrixMode(GL11.GL_MODELVIEW); - * this.mc.getTextureManager().bindTexture(this.locationLightMap); - * GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, - * GL11.GL_LINEAR); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, - * GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); - * GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, - * GL11.GL_LINEAR); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, - * GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); - * GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, - * GL11.GL_CLAMP); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, - * GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP); GL11.glColor4f(1.0F, 1.0F, 1.0F, - * 1.0F); GL11.glEnable(GL11.GL_TEXTURE_2D); - * OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit); } - */ - } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 657819463..cf420dd0b 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -3,6 +3,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; import com.hbm.entity.missile.EntityMissileAntiBallistic; +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileStealth; import com.hbm.entity.missile.EntityMissileTier1.*; import com.hbm.main.ResourceManager; @@ -25,6 +26,13 @@ public class RenderMissileGeneric extends Render { GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + if(entity instanceof EntityMissileAntiBallistic) { bindTexture(ResourceManager.missileAA_tex); GL11.glShadeModel(GL11.GL_SMOOTH); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java index c2c484c6f..70edc8592 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.main.ResourceManager; @@ -23,6 +24,13 @@ public class RenderMissileHuge extends Render { GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + if(entity instanceof EntityMissileBurst) bindTexture(ResourceManager.missileHuge_HE_tex); if(entity instanceof EntityMissileInferno) bindTexture(ResourceManager.missileHuge_IN_tex); if(entity instanceof EntityMissileRain) bindTexture(ResourceManager.missileHuge_CL_tex); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java index b5fb8b48f..8a8adc589 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileDoomsday; import com.hbm.entity.missile.EntityMissileTier4.EntityMissileMirv; import com.hbm.entity.missile.EntityMissileTier4.EntityMissileNuclear; @@ -25,6 +26,13 @@ public class RenderMissileNuclear extends Render { GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + if(entity instanceof EntityMissileNuclear) bindTexture(ResourceManager.missileNuclear_tex); if(entity instanceof EntityMissileMirv) bindTexture(ResourceManager.missileMIRV_tex); if(entity instanceof EntityMissileDoomsday) bindTexture(ResourceManager.missileDoomsday_tex); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java index 4c1804342..d02c2b35c 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileTier2.*; import com.hbm.main.ResourceManager; @@ -23,6 +24,13 @@ public class RenderMissileStrong extends Render { GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); GL11.glScalef(1.5F, 1.5F, 1.5F); + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + if(entity instanceof EntityMissileStrong) bindTexture(ResourceManager.missileStrong_HE_tex); if(entity instanceof EntityMissileIncendiaryStrong) bindTexture(ResourceManager.missileStrong_IN_tex); if(entity instanceof EntityMissileClusterStrong) bindTexture(ResourceManager.missileStrong_CL_tex); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java index 519ed3ec3..422b8fd33 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileTier0.*; import com.hbm.main.ResourceManager; @@ -23,6 +24,13 @@ public class RenderMissileTaint extends Render { GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + GL11.glEnable(GL11.GL_CULL_FACE); bindTexture(getEntityTexture(entity)); GL11.glShadeModel(GL11.GL_SMOOTH); diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 74497304d..8f7cdaa8f 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -352,7 +352,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } @Override - public void readFromNBT(NBTTagCompound tag){ + public void readFromNBT(NBTTagCompound tag) { this.state = tag.getByte("state"); this.openTicks = tag.getInteger("openTicks"); this.animStartTime = tag.getInteger("animStartTime"); @@ -361,16 +361,16 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn this.skinIndex = tag.getByte("skin"); NBTTagCompound activatedBlocks = tag.getCompoundTag("activatedBlocks"); this.activatedBlocks.clear(); - for(int i = 0; i < activatedBlocks.func_150296_c().size()/3; i ++){ - this.activatedBlocks.add(new BlockPos(activatedBlocks.getInteger("x"+i), activatedBlocks.getInteger("y"+i), activatedBlocks.getInteger("z"+i))); + for(int i = 0; i < activatedBlocks.func_150296_c().size() / 3; i++) { + this.activatedBlocks.add(new BlockPos(activatedBlocks.getInteger("x" + i), activatedBlocks.getInteger("y" + i), activatedBlocks.getInteger("z" + i))); } super.readFromNBT(tag); } @Override - public void writeToNBT(NBTTagCompound tag){ + public void writeToNBT(NBTTagCompound tag) { super.writeToNBT(tag); - + tag.setByte("state", state); tag.setInteger("openTicks", openTicks); tag.setLong("animStartTime", animStartTime); @@ -380,10 +380,10 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn tag.setByte("skin", skinIndex); NBTTagCompound activatedBlocks = new NBTTagCompound(); int i = 0; - for(BlockPos p : this.activatedBlocks){ - activatedBlocks.setInteger("x"+i, p.getX()); - activatedBlocks.setInteger("y"+i, p.getY()); - activatedBlocks.setInteger("z"+i, p.getZ()); + for(BlockPos p : this.activatedBlocks) { + activatedBlocks.setInteger("x" + i, p.getX()); + activatedBlocks.setInteger("y" + i, p.getY()); + activatedBlocks.setInteger("z" + i, p.getZ()); i++; } tag.setTag("activatedBlocks", activatedBlocks); @@ -407,7 +407,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } } - public void updateRedstonePower(int x, int y, int z){ + public void updateRedstonePower(int x, int y, int z) { //Drillgon200: Best I could come up with without having to use dummy tile entities BlockPos pos = new BlockPos(x, y, z); boolean powered = worldObj.isBlockIndirectlyGettingPowered(x, y, z); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java new file mode 100644 index 000000000..a54b485ef --- /dev/null +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -0,0 +1,345 @@ +package com.hbm.tileentity.bomb; + +import java.util.HashSet; +import java.util.Set; + +import org.apache.logging.log4j.Level; + +import com.hbm.config.GeneralConfig; +import com.hbm.entity.missile.EntityMissileAntiBallistic; +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.interfaces.IBomb.BombReturnCode; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.container.ContainerLaunchPadLarge; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUILaunchPadLarge; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.item.IDesignatorItem; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { + + public ItemStack toRender; + + public long power; + public final long maxPower = 100_000; + + public int prevRedstonePower; + public int redstonePower; + public Set activatedBlocks = new HashSet<>(4); + + public FluidTank[] tanks; + + public TileEntityLaunchPadBase() { + super(7); + this.tanks = new FluidTank[2]; + this.tanks[0] = new FluidTank(Fluids.NONE, 24_000); + this.tanks[1] = new FluidTank(Fluids.NONE, 24_000); + } + + @Override + public String getName() { + return "container.launchPad"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(this.redstonePower > 0 && this.prevRedstonePower == 0) { + this.launchFromDesignator(); + } + + this.prevRedstonePower = this.redstonePower; + + this.power = Library.chargeTEFromItems(slots, 2, power, maxPower); + tanks[0].loadTank(3, 4, slots); + tanks[1].loadTank(5, 6, slots); + + this.networkPackNT(250); + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeLong(this.power); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + + if(slots[0] != null) { + buf.writeBoolean(true); + buf.writeInt(Item.getIdFromItem(slots[0].getItem())); + buf.writeShort((short) slots[0].getItemDamage()); + } else { + buf.writeBoolean(false); + } + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.power = buf.readLong(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + + if(buf.readBoolean()) { + this.toRender = new ItemStack(Item.getItemById(buf.readInt()), 1, buf.readShort()); + } else { + this.toRender = null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); + + this.redstonePower = nbt.getInteger("redstonePower"); + this.prevRedstonePower = nbt.getInteger("prevRedstonePower"); + NBTTagCompound activatedBlocks = nbt.getCompoundTag("activatedBlocks"); + this.activatedBlocks.clear(); + for(int i = 0; i < activatedBlocks.func_150296_c().size() / 3; i++) { + this.activatedBlocks.add(new BlockPos(activatedBlocks.getInteger("x" + i), activatedBlocks.getInteger("y" + i), activatedBlocks.getInteger("z" + i))); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + tanks[0].writeToNBT(nbt, "t0"); + tanks[1].writeToNBT(nbt, "t1"); + + nbt.setInteger("redstonePower", redstonePower); + nbt.setInteger("prevRedstonePower", prevRedstonePower); + NBTTagCompound activatedBlocks = new NBTTagCompound(); + int i = 0; + for(BlockPos p : this.activatedBlocks) { + activatedBlocks.setInteger("x" + i, p.getX()); + activatedBlocks.setInteger("y" + i, p.getY()); + activatedBlocks.setInteger("z" + i, p.getZ()); + i++; + } + nbt.setTag("activatedBlocks", activatedBlocks); + } + + public void updateRedstonePower(int x, int y, int z) { + BlockPos pos = new BlockPos(x, y, z); + boolean powered = worldObj.isBlockIndirectlyGettingPowered(x, y, z); + boolean contained = activatedBlocks.contains(pos); + if(!contained && powered){ + activatedBlocks.add(pos); + if(redstonePower == -1){ + redstonePower = 0; + } + redstonePower++; + } else if(contained && !powered){ + activatedBlocks.remove(pos); + redstonePower--; + if(redstonePower == 0){ + redstonePower = -1; + } + } + } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + @Override public FluidTank[] getAllTanks() { return this.tanks; } + @Override public FluidTank[] getReceivingTanks() { return this.tanks; } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerLaunchPadLarge(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUILaunchPadLarge(player.inventory, this); + } + + @SuppressWarnings("incomplete-switch") //shut up + public void setFuel(ItemMissile missile) { + switch(missile.fuel) { + case ETHANOL_PEROXIDE: + tanks[0].setTankType(Fluids.ETHANOL); + tanks[1].setTankType(Fluids.ACID); + break; + case KEROSENE_PEROXIDE: + tanks[0].setTankType(Fluids.KEROSENE); + tanks[1].setTankType(Fluids.ACID); + break; + case KEROSENE_LOXY: + tanks[0].setTankType(Fluids.KEROSENE); + tanks[1].setTankType(Fluids.OXYGEN); + break; + case JETFUEL_LOXY: + tanks[0].setTankType(Fluids.KEROSENE_REFORM); + tanks[1].setTankType(Fluids.OXYGEN); + break; + } + } + + /** Requires the missile slot to be non-null and he item to be compatible */ + public boolean isMissileValid() { + return slots[0] != null && slots[0].getItem() instanceof ItemMissile; + } + + public boolean hasFuel() { + if(this.power < 75_000) return false; + + if(slots[0] != null && slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) slots[0].getItem(); + if(this.tanks[0].getFill() < missile.fuelCap) return false; + if(this.tanks[1].getFill() < missile.fuelCap) return false; + + return true; + } + + return false; + } + + public Entity instantiateMissile(int targetX, int targetZ) { + + if(slots[0] == null) return null; + + Class clazz = TileEntityLaunchPad.missiles.get(new ComparableStack(slots[0]).makeSingular()); + + if(clazz != null) { + try { + EntityMissileBaseNT missile = clazz.getConstructor(World.class, float.class, float.class, float.class, int.class, int.class).newInstance(worldObj, xCoord + 0.5F, yCoord + 2F, zCoord + 0.5F, targetX, targetZ); + if(GeneralConfig.enableExtendedLogging) MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + xCoord + " / " + yCoord + " / " + zCoord + " to " + xCoord + " / " + zCoord + "!"); + return missile; + } catch(Exception e) { } + } + + if(slots[0].getItem() == ModItems.missile_anti_ballistic) { + EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(worldObj); + missile.posX = xCoord + 0.5F; + missile.posY = yCoord + 2F; + missile.posZ = zCoord + 0.5F; + return missile; + } + + return null; + } + + public void finalizeLaunch(Entity missile) { + worldObj.spawnEntityInWorld(missile); + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); + + this.power -= 75_000; + + if(slots[0] != null && slots[0].getItem() instanceof ItemMissile) { + ItemMissile item = (ItemMissile) slots[0].getItem(); + tanks[0].setFill(tanks[0].getFill() - item.fuelCap); + tanks[1].setFill(tanks[1].getFill() - item.fuelCap); + } + + this.decrStackSize(0, 1); + } + + public BombReturnCode launchFromDesignator() { + if(!canLaunch()) return BombReturnCode.ERROR_MISSING_COMPONENT; + + boolean needsDesignator = needsDesignator(slots[0].getItem()); + + int targetX = 0; + int targetZ = 0; + + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + + IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); + + if(!designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord) && needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); + targetX = (int) Math.floor(coords.xCoord); + targetZ = (int) Math.floor(coords.zCoord); + + } else { + if(needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + return this.launchToCoordinate(targetX, targetZ); + } + + public BombReturnCode launchToEntity(Entity entity) { + if(!canLaunch()) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Entity e = instantiateMissile((int) Math.floor(entity.posX), (int) Math.floor(entity.posZ)); + if(e != null) { + + if(e instanceof EntityMissileAntiBallistic) { + EntityMissileAntiBallistic abm = (EntityMissileAntiBallistic) e; + abm.tracking = entity; + } + + finalizeLaunch(e); + return BombReturnCode.LAUNCHED; + } + return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + public BombReturnCode launchToCoordinate(int targetX, int targetZ) { + if(!canLaunch()) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Entity e = instantiateMissile(targetX, targetZ); + if(e != null) { + finalizeLaunch(e); + return BombReturnCode.LAUNCHED; + } + return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + return this.launchToCoordinate(x, z) == BombReturnCode.LAUNCHED; + } + + @Override + public boolean sendCommandEntity(Entity target) { + return this.launchToEntity(target) == BombReturnCode.LAUNCHED; + } + + public boolean needsDesignator(Item item) { + return item != ModItems.missile_anti_ballistic; + } + + /** Full launch condition, checks if the item is launchable, fuel and power are present and any additional checks based on launch pad type */ + public boolean canLaunch() { + return this.isMissileValid() && this.hasFuel() && this.isReadyForLaunch(); + } + + /** Any extra conditions for launching in addition to the missile being valid and fueled */ + public abstract boolean isReadyForLaunch(); +} diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index 85b7338f7..87ee4d71a 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -1,34 +1,21 @@ package com.hbm.tileentity.bomb; -import com.hbm.inventory.container.ContainerLaunchPadLarge; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUILaunchPadLarge; +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.items.weapon.ItemMissile; import com.hbm.items.weapon.ItemMissile.MissileFormFactor; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; -import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { +public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { - public ItemStack toRender; public int formFactor = -1; /** Whether the missile has already been placed on the launchpad. Missile will render statically on the pad if true */ public boolean erected = false; @@ -47,27 +34,15 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I /** Delay between erector movements */ public int delay = 20; - public long power; - public final long maxPower = 100_000; - private AudioWrapper audioLift; private AudioWrapper audioErector; protected boolean liftMoving = false; protected boolean erectorMoving = false; - - public FluidTank[] tanks; - - public TileEntityLaunchPadLarge() { - super(7); - this.tanks = new FluidTank[2]; - this.tanks[0] = new FluidTank(Fluids.NONE, 24_000); - this.tanks[1] = new FluidTank(Fluids.NONE, 24_000); - } @Override - public String getName() { - return "container.launchPad"; + public boolean isReadyForLaunch() { + return this.erected && this.readyToLoad; } @Override @@ -81,7 +56,7 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I float erectorSpeed = 1.5F; float liftSpeed = 0.025F; - if(slots[0] != null) { + if(this.isMissileValid()) { if(slots[0].getItem() instanceof ItemMissile) { ItemMissile missile = (ItemMissile) slots[0].getItem(); this.formFactor = missile.formFactor.ordinal(); @@ -170,8 +145,6 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I if(prevLiftMoving && !this.liftMoving) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:door.wgh_stop", 2F, 1F); if(prevErectorMoving && !this.erectorMoving) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:door.garage_stop", 2F, 1F); - - this.networkPackNT(250); } else { this.prevLift = this.lift; @@ -216,28 +189,8 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I } } } - } - - @SuppressWarnings("incomplete-switch") //shut up - public void setFuel(ItemMissile missile) { - switch(missile.fuel) { - case ETHANOL_PEROXIDE: - tanks[0].setTankType(Fluids.ETHANOL); - tanks[1].setTankType(Fluids.ACID); - break; - case KEROSENE_PEROXIDE: - tanks[0].setTankType(Fluids.KEROSENE); - tanks[1].setTankType(Fluids.ACID); - break; - case KEROSENE_LOXY: - tanks[0].setTankType(Fluids.KEROSENE); - tanks[1].setTankType(Fluids.OXYGEN); - break; - case JETFUEL_LOXY: - tanks[0].setTankType(Fluids.KEROSENE_REFORM); - tanks[1].setTankType(Fluids.OXYGEN); - break; - } + + super.updateEntity(); } @Override @@ -246,17 +199,8 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I buf.writeBoolean(this.liftMoving); buf.writeBoolean(this.erectorMoving); - - if(slots[0] != null) { - buf.writeBoolean(true); - buf.writeInt(Item.getIdFromItem(slots[0].getItem())); - buf.writeShort((short) slots[0].getItemDamage()); - } else { - buf.writeBoolean(false); - } - - buf.writeBoolean(erected); - buf.writeBoolean(readyToLoad); + buf.writeBoolean(this.erected); + buf.writeBoolean(this.readyToLoad); buf.writeByte((byte) this.formFactor); buf.writeFloat(this.lift); buf.writeFloat(this.erector); @@ -268,17 +212,9 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I this.liftMoving = buf.readBoolean(); this.erectorMoving = buf.readBoolean(); - - if(buf.readBoolean()) { - this.toRender = new ItemStack(Item.getItemById(buf.readInt()), 1, buf.readShort()); - } else { - this.toRender = null; - } - this.erected = buf.readBoolean(); this.readyToLoad = buf.readBoolean(); this.formFactor = buf.readByte(); - this.syncLift = buf.readFloat(); this.syncErector = buf.readFloat(); @@ -290,49 +226,33 @@ public class TileEntityLaunchPadLarge extends TileEntityMachineBase implements I @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - power = nbt.getLong("power"); this.erected = nbt.getBoolean("erected"); this.readyToLoad = nbt.getBoolean("readyToLoad"); this.lift = nbt.getFloat("lift"); this.erector = nbt.getFloat("erector"); + this.formFactor = nbt.getInteger("formFactor"); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setLong("power", power); nbt.setBoolean("erected", erected); nbt.setBoolean("readyToLoad", readyToLoad); nbt.setFloat("lift", lift); nbt.setFloat("erector", erector); + nbt.setInteger("formFactor", formFactor); } - - @Override public long getPower() { return power; } - @Override public void setPower(long power) { this.power = power; } - @Override public long getMaxPower() { return maxPower; } - @Override public FluidTank[] getAllTanks() { return this.tanks; } - @Override public FluidTank[] getReceivingTanks() { return this.tanks; } - - @Override - public boolean sendCommandPosition(int x, int y, int z) { - return false; - } - - @Override - public boolean sendCommandEntity(Entity target) { - return false; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerLaunchPadLarge(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUILaunchPadLarge(player.inventory, this); + + public Entity instantiateMissile(int targetX, int targetZ) { + Entity missile = super.instantiateMissile(targetX, targetZ); + + if(missile instanceof EntityMissileBaseNT) { + EntityMissileBaseNT base = (EntityMissileBaseNT) missile; + base.getDataWatcher().updateObject(3, (byte) (this.getBlockMetadata() - 10)); + } + + return missile; } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java index 19ed18ecd..a00c4ecfb 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java @@ -1,12 +1,6 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.FractionRecipes; @@ -22,19 +16,16 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineFractionTower extends TileEntityLoadedBase implements IFluidSource, IFluidAcceptor, INBTPacketReceiver, IFluidStandardTransceiver { +public class TileEntityMachineFractionTower extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver { public FluidTank[] tanks; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); public TileEntityMachineFractionTower() { tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.HEAVYOIL, 4000, 0); - tanks[1] = new FluidTank(Fluids.BITUMEN, 4000, 1); - tanks[2] = new FluidTank(Fluids.SMEAR, 4000, 2); + tanks[0] = new FluidTank(Fluids.HEAVYOIL, 4000); + tanks[1] = new FluidTank(Fluids.BITUMEN, 4000); + tanks[2] = new FluidTank(Fluids.SMEAR, 4000); } @Override @@ -69,14 +60,9 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme setupTanks(); this.updateConnections(); - if(worldObj.getTotalWorldTime() % 20 == 0) + if(worldObj.getTotalWorldTime() % 10 == 0) fractionate(); - if(worldObj.getTotalWorldTime() % 10 == 0) { - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); - } - this.sendFluid(); NBTTagCompound data = new NBTTagCompound(); @@ -168,76 +154,6 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme for(int i = 0; i < 3; i++) tanks[i].writeToNBT(nbt, "tank" + i); } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - } - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - this.tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - else - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - - for(int i = 2; i < 6; i++) { - ForgeDirection dir = ForgeDirection.getOrientation(i); - fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, this.getTact(), type); - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[1].getTankType()) return list1; - if(type == tanks[2].getTankType()) return list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[1].getTankType()) list1.clear(); - if(type == tanks[2].getTankType()) list2.clear(); - } AxisAlignedBB bb = null; diff --git a/src/main/resources/assets/hbm/textures/entity/fallout.png b/src/main/resources/assets/hbm/textures/entity/fallout.png index 5c638498881205e387f4338c6ff224ca8e8db239..05471e074600111f96c306df3c127eb49fe2254f 100644 GIT binary patch delta 188 zcmZ3<^n!7MN&S3J7srr_Id5;B7Hm-9VRfkT`oHz%-N{CMc8Bs(C5?-WrVKY)u1qht3gTe~DWM4fBoaH% delta 253 zcmaFCxRPmtN&N#)7srr_IdAVC6l^x&VR2ZRu&VIjNppU?a{_KJ%D4?=I5zP1tY%jNlp1o27tmcM!Ze49QtN7~u rSN3o Date: Tue, 13 Feb 2024 16:53:25 +0100 Subject: [PATCH 185/376] some preparation --- changelog | 1 + .../java/com/hbm/blocks/bomb/Balefire.java | 269 ++++----- .../hbm/explosion/ExplosionNukeAdvanced.java | 89 +-- .../com/hbm/explosion/ExplosionNukeRay.java | 519 ------------------ .../explosion/ExplosionNukeRayBalefire.java | 23 + .../explosion/ExplosionNukeRayBatched.java | 12 +- 6 files changed, 171 insertions(+), 742 deletions(-) delete mode 100644 src/main/java/com/hbm/explosion/ExplosionNukeRay.java create mode 100644 src/main/java/com/hbm/explosion/ExplosionNukeRayBalefire.java diff --git a/changelog b/changelog index 56b64c230..e754f9074 100644 --- a/changelog +++ b/changelog @@ -65,6 +65,7 @@ * Removed some of the lower tier items fomr the red room loot pool, making the average red room better * Retextured the fallout effect, fallout no longer has large snowflakes and the color now matches the crater better * High-yield mini nukes no longer create chunk radiation, since they use the MK5 which already has AoE radiation, this prevents dead grass from spawning that makes the crater look uglier +* Balefire spread is now limited to prevent densely vegetated biomes from lagging to hell ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/src/main/java/com/hbm/blocks/bomb/Balefire.java b/src/main/java/com/hbm/blocks/bomb/Balefire.java index 3ad57ad2c..ecf7f579f 100644 --- a/src/main/java/com/hbm/blocks/bomb/Balefire.java +++ b/src/main/java/com/hbm/blocks/bomb/Balefire.java @@ -25,193 +25,136 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class Balefire extends BlockFire { - - private IIcon field_149850_M; - public Balefire() - { - super(); - } + private IIcon icon; - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister p_149651_1_) { - - field_149850_M = p_149651_1_.registerIcon(this.getTextureName()); - } + public Balefire() { + super(); + } - @SideOnly(Side.CLIENT) - public IIcon getFireIcon(int p_149840_1_) - { - return field_149850_M; - } - - @SideOnly(Side.CLIENT) - public IIcon getIcon(int p_149691_1_, int p_149691_2_) - { - return field_149850_M; - } - public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_) - { - if (p_149674_1_.getGameRules().getGameRuleBooleanValue("doFireTick")) - { - boolean flag = p_149674_1_.getBlock(p_149674_2_, p_149674_3_ - 1, p_149674_4_).isFireSource(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, UP); + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister register) { + icon = register.registerIcon(this.getTextureName()); + } - if (!this.canPlaceBlockAt(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_)) - { - p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); - } + @SideOnly(Side.CLIENT) + public IIcon getFireIcon(int i) { + return icon; + } - /*if (!flag && p_149674_1_.isRaining() && (p_149674_1_.canLightningStrikeAt(p_149674_2_, p_149674_3_, p_149674_4_) || p_149674_1_.canLightningStrikeAt(p_149674_2_ - 1, p_149674_3_, p_149674_4_) || p_149674_1_.canLightningStrikeAt(p_149674_2_ + 1, p_149674_3_, p_149674_4_) || p_149674_1_.canLightningStrikeAt(p_149674_2_, p_149674_3_, p_149674_4_ - 1) || p_149674_1_.canLightningStrikeAt(p_149674_2_, p_149674_3_, p_149674_4_ + 1))) - { - p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); - } - else*/ - { - int l = 0; - /*int l = p_149674_1_.getBlockMetadata(p_149674_2_, p_149674_3_, p_149674_4_); + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icon; + } - if (l < 15) - { - p_149674_1_.setBlockMetadataWithNotify(p_149674_2_, p_149674_3_, p_149674_4_, l + p_149674_5_.nextInt(3) / 2, 4); - }*/ + public void updateTick(World world, int x, int y, int z, Random rand) { + if(world.getGameRules().getGameRuleBooleanValue("doFireTick")) { + boolean onNetherrack = world.getBlock(x, y - 1, z).isFireSource(world, x, y - 1, z, UP); - p_149674_1_.scheduleBlockUpdate(p_149674_2_, p_149674_3_, p_149674_4_, this, this.tickRate(p_149674_1_) + p_149674_5_.nextInt(10)); + if(!this.canPlaceBlockAt(world, x, y, z)) { + world.setBlockToAir(x, y, z); + } - if (!flag && !this.canNeighborBurn(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_)) - { - if (!World.doesBlockHaveSolidTopSurface(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_)/* || l > 3*/) - { - p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); - } - } - /*else if (!flag && !this.canCatchFire(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, UP) && l == 15 && p_149674_5_.nextInt(4) == 0) - { - //p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); - }*/ - else - { - //boolean flag1 = p_149674_1_.isBlockHighHumidity(p_149674_2_, p_149674_3_, p_149674_4_); - byte b0 = 0; + int meta = world.getBlockMetadata(x, y, z); - /*if (flag1) - { - b0 = -50; - }*/ + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world) + rand.nextInt(10)); - this.tryCatchFire(p_149674_1_, p_149674_2_ + 1, p_149674_3_, p_149674_4_, 300 + b0, p_149674_5_, l, WEST ); - this.tryCatchFire(p_149674_1_, p_149674_2_ - 1, p_149674_3_, p_149674_4_, 300 + b0, p_149674_5_, l, EAST ); - this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, 250 + b0, p_149674_5_, l, UP ); - this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_ + 1, p_149674_4_, 250 + b0, p_149674_5_, l, DOWN ); - this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_ - 1, 300 + b0, p_149674_5_, l, SOUTH); - this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_ + 1, 300 + b0, p_149674_5_, l, NORTH); + if(!onNetherrack && !this.canNeighborBurn(world, x, y, z)) { + if(!World.doesBlockHaveSolidTopSurface(world, x, y - 1, z)) { + world.setBlockToAir(x, y, z); + } + } else { + if(meta < 15) { + this.tryCatchFire(world, x + 1, y, z, 500, rand, meta, WEST); + this.tryCatchFire(world, x - 1, y, z, 500, rand, meta, EAST); + this.tryCatchFire(world, x, y - 1, z, 300, rand, meta, UP); + this.tryCatchFire(world, x, y + 1, z, 300, rand, meta, DOWN); + this.tryCatchFire(world, x, y, z - 1, 500, rand, meta, SOUTH); + this.tryCatchFire(world, x, y, z + 1, 500, rand, meta, NORTH); + } - for (int i1 = p_149674_2_ - 1; i1 <= p_149674_2_ + 1; ++i1) - { - for (int j1 = p_149674_4_ - 1; j1 <= p_149674_4_ + 1; ++j1) - { - for (int k1 = p_149674_3_ - 1; k1 <= p_149674_3_ + 4; ++k1) - { - if (i1 != p_149674_2_ || k1 != p_149674_3_ || j1 != p_149674_4_) - { - int l1 = 100; + for(int i1 = x - 1; i1 <= x + 1; ++i1) { + for(int j1 = z - 1; j1 <= z + 1; ++j1) { + for(int k1 = y - 1; k1 <= y + 4; ++k1) { + if(i1 != x || k1 != y || j1 != z) { + int l1 = 100; - if (k1 > p_149674_3_ + 1) - { - l1 += (k1 - (p_149674_3_ + 1)) * 100; - } + if(k1 > y + 1) { + l1 += (k1 - (y + 1)) * 100; + } - int i2 = this.getChanceOfNeighborsEncouragingFire(p_149674_1_, i1, k1, j1); + int i2 = this.getChanceOfNeighborsEncouragingFire(world, i1, k1, j1); - if (i2 > 0) - { - int j2 = (i2 + 40 + p_149674_1_.difficultySetting.getDifficultyId() * 7) / (l + 30); + if(i2 > 0) { + int j2 = (i2 + 40 + world.difficultySetting.getDifficultyId() * 7) / (meta + 30); - /*if (flag1) - { - j2 /= 2; - }*/ + if(j2 > 0 && rand.nextInt(l1) <= j2) { + int k2 = meta + rand.nextInt(5) / 4; - if (j2 > 0 && p_149674_5_.nextInt(l1) <= j2) - { - int k2 = l + p_149674_5_.nextInt(5) / 4; + if(k2 > 15) { + k2 = 15; + } - if (k2 > 15) - { - k2 = 15; - } + world.setBlock(i1, k1, j1, this, k2, 3); + } + } + } + } + } + } + } + } + } - p_149674_1_.setBlock(i1, k1, j1, this, k2, 3); - } - } - } - } - } - } - } - } - } - } + private void tryCatchFire(World world, int x, int y, int z, int chance, Random rand, int fireMetadata, ForgeDirection face) { + int flammability = world.getBlock(x, y, z).getFlammability(world, x, y, z, face); - private void tryCatchFire(World p_149841_1_, int p_149841_2_, int p_149841_3_, int p_149841_4_, int p_149841_5_, Random p_149841_6_, int p_149841_7_, ForgeDirection face) - { - int j1 = p_149841_1_.getBlock(p_149841_2_, p_149841_3_, p_149841_4_).getFlammability(p_149841_1_, p_149841_2_, p_149841_3_, p_149841_4_, face); + if(rand.nextInt(chance) < flammability) { + boolean flag = world.getBlock(x, y, z) == Blocks.tnt; - if (p_149841_6_.nextInt(p_149841_5_) < j1) - { - boolean flag = p_149841_1_.getBlock(p_149841_2_, p_149841_3_, p_149841_4_) == Blocks.tnt; + world.setBlock(x, y, z, this, fireMetadata + 1, 3); - p_149841_1_.setBlock(p_149841_2_, p_149841_3_, p_149841_4_, this, 15, 3); + if(flag) { + Blocks.tnt.onBlockDestroyedByPlayer(world, x, y, z, 1); + } + } + } - if (flag) - { - Blocks.tnt.onBlockDestroyedByPlayer(p_149841_1_, p_149841_2_, p_149841_3_, p_149841_4_, 1); - } - } - } + private boolean canNeighborBurn(World world, int x, int y, int z) { + return this.canCatchFire(world, x + 1, y, z, WEST) + || this.canCatchFire(world, x - 1, y, z, EAST) + || this.canCatchFire(world, x, y - 1, z, UP) + || this.canCatchFire(world, x, y + 1, z, DOWN) + || this.canCatchFire(world, x, y, z - 1, SOUTH) + || this.canCatchFire(world, x, y, z + 1, NORTH); + } - private boolean canNeighborBurn(World p_149847_1_, int p_149847_2_, int p_149847_3_, int p_149847_4_) - { - return this.canCatchFire(p_149847_1_, p_149847_2_ + 1, p_149847_3_, p_149847_4_, WEST ) || - this.canCatchFire(p_149847_1_, p_149847_2_ - 1, p_149847_3_, p_149847_4_, EAST ) || - this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_ - 1, p_149847_4_, UP ) || - this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_ + 1, p_149847_4_, DOWN ) || - this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_, p_149847_4_ - 1, SOUTH) || - this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_, p_149847_4_ + 1, NORTH); - } + private int getChanceOfNeighborsEncouragingFire(World world, int x, int y, int z) { - private int getChanceOfNeighborsEncouragingFire(World p_149845_1_, int p_149845_2_, int p_149845_3_, int p_149845_4_) - { - byte b0 = 0; + if(!world.isAirBlock(x, y, z)) { + return 0; + } else { + int spread = 0; + spread = this.getChanceToEncourageFire(world, x + 1, y, z, spread, WEST); + spread = this.getChanceToEncourageFire(world, x - 1, y, z, spread, EAST); + spread = this.getChanceToEncourageFire(world, x, y - 1, z, spread, UP); + spread = this.getChanceToEncourageFire(world, x, y + 1, z, spread, DOWN); + spread = this.getChanceToEncourageFire(world, x, y, z - 1, spread, SOUTH); + spread = this.getChanceToEncourageFire(world, x, y, z + 1, spread, NORTH); + return spread; + } + } - if (!p_149845_1_.isAirBlock(p_149845_2_, p_149845_3_, p_149845_4_)) - { - return 0; - } - else - { - int l = b0; - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_ + 1, p_149845_3_, p_149845_4_, l, WEST ); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_ - 1, p_149845_3_, p_149845_4_, l, EAST ); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_ - 1, p_149845_4_, l, UP ); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_ + 1, p_149845_4_, l, DOWN ); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_, p_149845_4_ - 1, l, SOUTH); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_, p_149845_4_ + 1, l, NORTH); - return l; - } - } - - public boolean canCatchFire(IBlockAccess world, int x, int y, int z, ForgeDirection face) - { - return world.getBlock(x, y, z).isFlammable(world, x, y, z, face); - } - - @Override - public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity p_149670_5_) - { - p_149670_5_.setFire(10); - - if(p_149670_5_ instanceof EntityLivingBase) - ((EntityLivingBase)p_149670_5_).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 5 * 20, 9)); - } + @Override + public boolean canCatchFire(IBlockAccess world, int x, int y, int z, ForgeDirection face) { + return world.getBlock(x, y, z).isFlammable(world, x, y, z, face); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + entity.setFire(10); + + if(entity instanceof EntityLivingBase) ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 5 * 20, 9)); + } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java index 5893488d5..6aa06d540 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java @@ -3,8 +3,7 @@ package com.hbm.explosion; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class ExplosionNukeAdvanced -{ +public class ExplosionNukeAdvanced { public int posX; public int posY; public int posZ; @@ -20,7 +19,7 @@ public class ExplosionNukeAdvanced private int element; public float explosionCoefficient = 1.0F; public int type = 0; - + public void saveToNbt(NBTTagCompound nbt, String name) { nbt.setInteger(name + "posX", posX); nbt.setInteger(name + "posY", posY); @@ -37,7 +36,7 @@ public class ExplosionNukeAdvanced nbt.setFloat(name + "explosionCoefficient", explosionCoefficient); nbt.setInteger(name + "type", type); } - + public void readFromNbt(NBTTagCompound nbt, String name) { posX = nbt.getInteger(name + "posX"); posY = nbt.getInteger(name + "posY"); @@ -54,92 +53,64 @@ public class ExplosionNukeAdvanced explosionCoefficient = nbt.getFloat(name + "explosionCoefficient"); type = nbt.getInteger(name + "type"); } - - public ExplosionNukeAdvanced(int x, int y, int z, World world, int rad, float coefficient, int typ) - { + + public ExplosionNukeAdvanced(int x, int y, int z, World world, int rad, float coefficient, int typ) { this.posX = x; this.posY = y; this.posZ = z; - this.worldObj = world; - this.radius = rad; this.radius2 = this.radius * this.radius; - - this.explosionCoefficient = Math.min(Math.max((rad + coefficient * (y - 60))/(coefficient*rad), 1/coefficient),1.0f); //scale the coefficient depending on detonation height + this.explosionCoefficient = Math.min(Math.max((rad + coefficient * (y - 60)) / (coefficient * rad), 1 / coefficient), 1.0f); this.type = typ; - - this.nlimit = this.radius2 * 4; //How many total columns should be broken (radius ^ 2 is one quadrant, there are 4 quadrants) + this.nlimit = this.radius2 * 4; } - - public boolean update() - { - switch(this.type) - { - case 0: - breakColumn(this.lastposX, this.lastposZ); break; - case 1: - vapor(this.lastposX, this.lastposZ); break; - case 2: - waste(this.lastposX, this.lastposZ); break; + + public boolean update() { + switch(this.type) { + case 0: breakColumn(this.lastposX, this.lastposZ); break; + case 1: vapor(this.lastposX, this.lastposZ); break; + case 2: waste(this.lastposX, this.lastposZ); break; } - this.shell = (int) Math.floor((Math.sqrt(n) + 1) / 2); //crazy stuff I can't explain + this.shell = (int) Math.floor((Math.sqrt(n) + 1) / 2); int shell2 = this.shell * 2; this.leg = (int) Math.floor((this.n - (shell2 - 1) * (shell2 - 1)) / shell2); this.element = (this.n - (shell2 - 1) * (shell2 - 1)) - shell2 * this.leg - this.shell + 1; this.lastposX = this.leg == 0 ? this.shell : this.leg == 1 ? -this.element : this.leg == 2 ? -this.shell : this.element; this.lastposZ = this.leg == 0 ? this.element : this.leg == 1 ? this.shell : this.leg == 2 ? -this.element : -this.shell; this.n++; - return this.n > this.nlimit; //return whether we are done or not + return this.n > this.nlimit; } - private void breakColumn(int x, int z) - { - int dist = this.radius2 - (x * x + z * z); //we have two sides of the triangle (hypotenuse is radius, one leg is (x*x+z*z)) this calculates the third one - if (dist > 0) //check if any blocks have to be broken here - { - dist = (int) Math.sqrt(dist); //calculate sphere height at this (x,z) coordinate - for (int y = dist; y > -dist * this.explosionCoefficient; y--) //go from top to bottom to favor light updates - { - if(y<8){//only spare blocks that are mostly below epicenter - y-= ExplosionNukeGeneric.destruction(this.worldObj, this.posX + x, this.posY + y, this.posZ + z);//spare blocks below - }else{//don't spare blocks above epicenter + private void breakColumn(int x, int z) { + int dist = this.radius2 - (x * x + z * z); + if(dist > 0) { + dist = (int) Math.sqrt(dist); + for(int y = dist; y > -dist * this.explosionCoefficient; y--) { + if(y < 8) { + y -= ExplosionNukeGeneric.destruction(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); + } else { ExplosionNukeGeneric.destruction(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); } } } } - private void vapor(int x, int z) - { + private void vapor(int x, int z) { int dist = this.radius2 - (x * x + z * z); - if (dist > 0) - { + if(dist > 0) { dist = (int) Math.sqrt(dist); - //int dist0 = (int)Math.sqrt(this.radius2*0.15f - (x * x + z * z)); - for (int y = dist; y > -dist * this.explosionCoefficient; y--) - { - y-=ExplosionNukeGeneric.vaporDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); - /* - if(dist0>0){//skip blocks already in the destruction zone: we will - if(y>=dist0 || y<=-dist0*this.explosionCoefficient){ - y-=ExplosionNukeGeneric.vaporDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); - } - }else{ - y-=ExplosionNukeGeneric.vaporDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); - }*/ + for(int y = dist; y > -dist * this.explosionCoefficient; y--) { + y -= ExplosionNukeGeneric.vaporDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); } } } - private void waste(int x, int z) - { + private void waste(int x, int z) { int dist = this.radius2 - (x * x + z * z); - if (dist > 0) - { + if(dist > 0) { dist = (int) Math.sqrt(dist); - for (int y = dist; y > -dist * this.explosionCoefficient; y--) - { + for(int y = dist; y > -dist * this.explosionCoefficient; y--) { if(radius >= 95) ExplosionNukeGeneric.wasteDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); else diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java deleted file mode 100644 index a36975d17..000000000 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java +++ /dev/null @@ -1,519 +0,0 @@ -package com.hbm.explosion; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.init.Blocks; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class ExplosionNukeRay { - - List affectedBlocks = new ArrayList<>(); - int posX; - int posY; - int posZ; - World world; - - int strength; - int length; - int processed; - - int gspNumMax; - int gspNum; - double gspX; - double gspY; - - public boolean isAusf3Complete = false; - - /*[[unused]] - int count; - int speed; - int startY; - int startCir; - Random rand = new Random(); - private double overrideRange = 0; - */ - - public ExplosionNukeRay(World world, int x, int y, int z, int strength, int count, int speed, int length) { - this.world = world; - this.posX = x; - this.posY = y; - this.posZ = z; - this.strength = strength; - this.length = length; - //Ausf3, must be double - //Mk 4.5, must be int32 - - // Total number of points - this.gspNumMax = (int)(2.5 * Math.PI * Math.pow(this.strength,2)); - this.gspNum = 1; - - // The beginning of the generalized spiral points - this.gspX = Math.PI; - this.gspY = 0.0; - - - /*[[unused]] - // this.startY = strength; - this.startY = 0; - this.startCir = 0; - - this.count = count; - this.speed = speed; - - //starts at around 80, becomes 8 at length 500 - this.overrideRange = Math.max((Math.log(length) * 4 - 2.5D) * 10, 0); - */ - } - - // Raise one generalized spiral points - private void generateGspUp(){ - if (this.gspNum < this.gspNumMax) { - int k = this.gspNum + 1; - double hk = -1.0 + 2.0 * (k - 1.0) / (this.gspNumMax - 1.0); - this.gspX = Math.acos(hk); - - double prev_lon = this.gspY; - double lon = prev_lon + 3.6 / Math.sqrt(this.gspNumMax) / Math.sqrt(1.0 - hk * hk); - this.gspY = lon % (Math.PI * 2); - } else { - this.gspX = 0.0; - this.gspY = 0.0; - } - this.gspNum++; - } - - // Get Cartesian coordinates for spherical coordinates - private Vec3 getSpherical2cartesian(){ - double dx = Math.sin(this.gspX) * Math.cos(this.gspY); - double dz = Math.sin(this.gspX) * Math.sin(this.gspY); - double dy = Math.cos(this.gspX); - return Vec3.createVectorHelper(dx, dy, dz); - } - - //currently used by mk4 - public void collectTipMk4_5(int count) { - - int amountProcessed = 0; - - while (this.gspNumMax >= this.gspNum){ - // Get Cartesian coordinates for spherical coordinates - Vec3 vec = this.getSpherical2cartesian(); - - int length = (int)Math.ceil(strength); - float res = strength; - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { - affectedBlocks.add(lastPos); - } - break; - } - } - // Raise one generalized spiral points - this.generateGspUp(); - - amountProcessed++; - if(amountProcessed >= count) { - return; - } - } - isAusf3Complete = true; - } - - public void processTip(int count) { - - int processedBlocks = 0; - int braker = 0; - - for(int l = 0; l < Integer.MAX_VALUE; l++) { - - if(processedBlocks >= count) - return; - - if(braker >= count * 50) - return; - - if(l > affectedBlocks.size() - 1) - break; - - if(affectedBlocks.isEmpty()) - return; - - int in = affectedBlocks.size() - 1; - - float x = affectedBlocks.get(in).xCoord; - float y = affectedBlocks.get(in).yCoord; - float z = affectedBlocks.get(in).zCoord; - - world.setBlock((int)x, (int)y, (int)z, Blocks.air); - - Vec3 vec = Vec3.createVectorHelper(x - this.posX, y - this.posY, z - this.posZ); - double pX = vec.xCoord / vec.lengthVector(); - double pY = vec.yCoord / vec.lengthVector(); - double pZ = vec.zCoord / vec.lengthVector(); - - for(int i = 0; i < vec.lengthVector(); i ++) { - int x0 = (int)(posX + pX * i); - int y0 = (int)(posY + pY * i); - int z0 = (int)(posZ + pZ * i); - - if(!world.isAirBlock(x0, y0, z0)) { - world.setBlock(x0, y0, z0, Blocks.air); - processedBlocks++; - } - - braker++; - } - - affectedBlocks.remove(in); - } - - processed += count; - } - - /*public void processBunch(int count) { - for(int l = processed; l < processed + count; l++) { - - if(l > affectedBlocks.size() - 1) - break; - - int x = affectedBlocks.get(l).chunkPosX; - int y = affectedBlocks.get(l).chunkPosY; - int z = affectedBlocks.get(l).chunkPosZ; - - if(world.getBlock(x, y, z) != Blocks.air) - { - world.setBlock(x, y, z, Blocks.air); - } - } - - processed += count; - } - - public void collectBunch(int count) { - - for(int k = 0; k < count; k++) { - double phi = rand.nextDouble() * (Math.PI * 2); - double costheta = rand.nextDouble() * 2 - 1; - double theta = Math.acos(costheta); - double x = Math.sin( theta) * Math.cos( phi ); - double y = Math.sin( theta) * Math.sin( phi ); - double z = Math.cos( theta ); - - Vec3 vec = Vec3.createVectorHelper(x, y, z); - int length = (int)Math.ceil(strength); - - float res = strength; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - int x0 = (int)(posX + (vec.xCoord * i)); - int y0 = (int)(posY + (vec.yCoord * i)); - int z0 = (int)(posZ + (vec.zCoord * i)); - if(!world.getBlock(x0, y0, z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock(x0, y0, z0).getExplosionResistance(null), 1.25); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 1.25); - - if(res > 0 && world.getBlock(x0, y0, z0) != Blocks.air) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100) - affectedBlocks.add(new ChunkPosition(x0, y0, z0)); - } - } - } - }*/ -/* - @Untested //override range - public void collectTip(int count) { - - for(int k = 0; k < count; k++) { - double phi = rand.nextDouble() * (Math.PI * 2); - double costheta = rand.nextDouble() * 2 - 1; - double theta = Math.acos(costheta); - double x = Math.sin(theta) * Math.cos(phi); - double y = Math.sin(theta) * Math.sin(phi); - double z = Math.cos(theta); - - Vec3 vec = Vec3.createVectorHelper(x, y, z); - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 1.25); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 1.25); - - //Blast resistance calculations are still done to preserve the general shape, - //but if the blast were to be stopped within this range we go through with it anyway. - //There is currently no blast resistance limit on this, could change in the future. - boolean inOverrideRange = this.overrideRange >= length; - - if((res > 0 || inOverrideRange) && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - - // Only stop if we are either out of range or if the remaining strength is 0 while being outside the override range - - if((res <= 0 && !inOverrideRange) || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - break; - } - } - } - } -*/ - /* - public void collectTipExperimental(int count) { - - for(int k = 0; k < count; k++) { - double phi = rand.nextDouble() * (Math.PI * 2); - double costheta = rand.nextDouble() * 2 - 1; - double theta = Math.acos(costheta); - double x = Math.sin(theta) * Math.cos(phi); - double y = Math.sin(theta) * Math.sin(phi); - double z = Math.cos(theta); - - Vec3 vec = Vec3.createVectorHelper(x, y, z); - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - break; - } - } - } - } - */ - /*public void collectTipAusf3(int count) { - - int amountProcessed = 0; - - //Axial - //StartY starts at this.length - for(double y = startY; y >= -strength; y -= (0.35D + ( Math.pow((strength - Math.abs(y)) / strength, 1.5D) * 0.3D))) { - - double sectionRad = Math.sqrt(Math.pow(strength, 2) - Math.pow(y, 2)); - double circumference = (1.5 * Math.PI * sectionRad + rand.nextDouble()) * (sectionRad / strength + 0.1D); - - //circumference = Math.ceil(circumference); - - //Radial - //StartCir starts at circumference - for(int r = startCir; r < circumference; r ++) { - - Vec3 vec = Vec3.createVectorHelper(sectionRad, y, 0); - vec = vec.normalize(); - if(y > 0) - vec.rotateAroundZ((float) (y / sectionRad) * 0.15F); - if(y < 0) - vec.rotateAroundZ((float) (y / sectionRad) * -0.15F); - vec.rotateAroundY((float) (360 / circumference * r)); - - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - } - break; - } - } - - amountProcessed++; - - if(amountProcessed >= count) { - startY = y + 1; - startCir = startCir + 1; - return; - } - } - } - - isAusf3Complete = true; - }*/ - - //Dysfunctional, punches hole into ground - /*public void collectTipAusf3(int count) { - - int amountProcessed = 0; - - //Axial - //StartY starts at this.length - for(int y = startY; y >= -length; y--) { - - double circumference = 2 * Math.PI * Math.sqrt(Math.pow(y, 2) + Math.pow(length, 2)); - - circumference = Math.ceil(circumference); - - //Radial - //StartCir starts at circumference - for(int r = startCir; r < circumference; r ++) { - - Vec3 vec = Vec3.createVectorHelper(1, y, 0); - vec.normalize(); - vec.rotateAroundY((float) (360 / circumference * r)); - - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - break; - } - } - - amountProcessed++; - - if(amountProcessed >= count) { - startY = y + 1; - startCir = startCir + 1; - return; - } - } - } - - isAusf3Complete = true; - }*/ - - public void deleteStorage() { - this.affectedBlocks.clear(); - } - - public int getStoredSize() { - return this.affectedBlocks.size(); - } - - public int getProgress() { - return this.processed; - } - - public class FloatTriplet { - public float xCoord; - public float yCoord; - public float zCoord; - - public FloatTriplet(float x, float y, float z) { - xCoord = x; - yCoord = y; - zCoord = z; - } - } - -} diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBalefire.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBalefire.java new file mode 100644 index 000000000..39db58083 --- /dev/null +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBalefire.java @@ -0,0 +1,23 @@ +package com.hbm.explosion; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class ExplosionNukeRayBalefire extends ExplosionNukeRayBatched { + + public ExplosionNukeRayBalefire(World world, int x, int y, int z, int strength, int speed, int length) { + super(world, x, y, z, strength, speed, length); + } + + protected void handleTip(int x, int y, int z) { + + if(world.rand.nextInt(5) == 0 && world.getBlock(x, y - 1, z).isSideSolid(world, x, y - 1, z, ForgeDirection.UP)) { + world.setBlock(x, y, z, ModBlocks.balefire, 0, 3); + } else { + world.setBlock(x, y, z, Blocks.air, 0, 3); + } + } +} diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index 6088e261d..de45a8741 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -234,12 +234,22 @@ public class ExplosionNukeRayBatched { } } - for(BlockPos pos : toRem) world.setBlock(pos.getX(), pos.getY(), pos.getZ(), Blocks.air, 0, toRemTips.contains(pos) ? 3 : 2); + for(BlockPos pos : toRem) { + if(toRemTips.contains(pos)) { + this.handleTip(pos.getX(), pos.getY(), pos.getZ()); + } else { + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), Blocks.air, 0, 2); + } + } perChunk.remove(coord); orderedChunks.remove(0); } + protected void handleTip(int x, int y, int z) { + world.setBlock(x, y, z, Blocks.air, 0, 3); + } + public class FloatTriplet { public float xCoord; public float yCoord; From 82ec052d2768132176f609af564884cfc62ec4ec Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 13 Feb 2024 20:37:39 +0100 Subject: [PATCH 186/376] launch pad GUI, crash fix --- .../hbm/inventory/gui/GUILaunchPadLarge.java | 25 +++++++++++++ .../bomb/TileEntityLaunchPadBase.java | 23 ++++++++++++ .../bomb/TileEntityLaunchPadLarge.java | 36 +++++++++++++++---- 3 files changed, 78 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java index c99bd9f9b..e144595e2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java @@ -33,6 +33,15 @@ public class GUILaunchPadLarge extends GuiInfoContainer { this.ySize = 236; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 88 - 52, 16, 52, launchpad.power, launchpad.maxPower); + launchpad.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 70 - 52, 16, 52); + launchpad.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 70 - 52, 16, 52); + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.launchpad.hasCustomInventoryName() ? this.launchpad.getInventoryName() : I18n.format(this.launchpad.getInventoryName()); @@ -46,6 +55,22 @@ public class GUILaunchPadLarge extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + int fuel = launchpad.getFuelState(); + int oxidizer = launchpad.getOxidizerState(); + + if(fuel == 1) drawTexturedModalRect(guiLeft + 130, guiTop + 23, 192, 0, 6, 8); + if(fuel == -1) drawTexturedModalRect(guiLeft + 130, guiTop + 23, 198, 0, 6, 8); + if(oxidizer == 1) drawTexturedModalRect(guiLeft + 148, guiTop + 23, 192, 0, 6, 8); + if(oxidizer == -1) drawTexturedModalRect(guiLeft + 148, guiTop + 23, 198, 0, 6, 8); + if(launchpad.isMissileValid()) { + drawTexturedModalRect(guiLeft + 112, guiTop + 23, launchpad.power >= 75_000 ? 192 : 198, 0, 6, 8); + } + + int power = (int) (launchpad.power * 52 / launchpad.maxPower); + drawTexturedModalRect(guiLeft + 107, guiTop + 88 - power, 176, 52 - power, 16, power); + launchpad.tanks[0].renderTank(guiLeft + 125, guiTop + 88,this.zLevel, 16, 52); + launchpad.tanks[1].renderTank(guiLeft + 143, guiTop + 88,this.zLevel, 16, 52); + if(launchpad.slots[0] != null) { Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(launchpad.slots[0]).makeSingular()); if(renderer != null) { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index a54b485ef..6cc7d1a4b 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -16,6 +16,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUILaunchPadLarge; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemMissile; +import com.hbm.items.weapon.ItemMissile.MissileFuel; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; @@ -340,6 +341,28 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl return this.isMissileValid() && this.hasFuel() && this.isReadyForLaunch(); } + public int getFuelState() { + return getGaugeState(0); + } + + public int getOxidizerState() { + return getGaugeState(1); + } + + public int getGaugeState(int tank) { + if(slots[0] == null) return 0; + + if(slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) slots[0].getItem(); + MissileFuel fuel = missile.fuel; + + if(fuel == MissileFuel.SOLID) return 0; + return tanks[tank].getFill() >= missile.fuelCap ? 1 : -1; + } + + return 0; + } + /** Any extra conditions for launching in addition to the missile being valid and fueled */ public abstract boolean isReadyForLaunch(); } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index 87ee4d71a..7b36f7791 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -10,9 +10,12 @@ import com.hbm.tileentity.IRadarCommandReceiver; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { @@ -160,11 +163,9 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements } if(this.liftMoving) { - if(this.audioLift == null) { + if(this.audioLift == null || !this.audioLift.isPlaying()) { this.audioLift = MainRegistry.proxy.getLoopedSound("hbm:door.wgh_start", xCoord, yCoord, zCoord, 0.75F, 25F, 1.0F, 5); this.audioLift.startSound(); - } else if(!this.audioLift.isPlaying()) { - this.audioLift.startSound(); } this.audioLift.keepAlive(); } else { @@ -175,11 +176,9 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements } if(this.erectorMoving) { - if(this.audioErector == null) { + if(this.audioErector == null || !this.audioErector.isPlaying()) { this.audioErector = MainRegistry.proxy.getLoopedSound("hbm:door.garage_move", xCoord, yCoord, zCoord, 1.5F, 25F, 1.0F, 5); this.audioErector.startSound(); - } else if(!this.audioErector.isPlaying()) { - this.audioErector.startSound(); } this.audioErector.keepAlive(); } else { @@ -255,4 +254,29 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements return missile; } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 10, + yCoord, + zCoord - 10, + xCoord + 11, + yCoord + 15, + zCoord + 11 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } From 9ff31388c8c39e4bf47106c056ff1b40ec005c6c Mon Sep 17 00:00:00 2001 From: George Paton Date: Wed, 14 Feb 2024 17:21:07 +1100 Subject: [PATCH 187/376] Make worldgen mines be inactive until a player comes within 25 blocks, this has two effects: * Far away worldgen mines won't be triggered by mobs * You can hear an activation beep (once), giving you an indication of their existence --- src/main/java/com/hbm/blocks/ModBlocks.java | 8 +- .../java/com/hbm/blocks/bomb/Landmine.java | 39 +++------ src/main/java/com/hbm/lib/HbmWorldGen.java | 7 ++ .../tileentity/bomb/TileEntityLandmine.java | 86 ++++++++++--------- 4 files changed, 70 insertions(+), 70 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 38a9fd385..c8fc293b6 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1819,10 +1819,10 @@ public class ModBlocks { charge_miner = new BlockChargeMiner().setBlockName("charge_miner").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); charge_c4 = new BlockChargeC4().setBlockName("charge_c4").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); charge_semtex = new BlockChargeSemtex().setBlockName("charge_semtex").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); - mine_ap = new Landmine(Material.iron).setBlockName("mine_ap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_ap"); - mine_he = new Landmine(Material.iron).setBlockName("mine_he").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_he"); - mine_shrap = new Landmine(Material.iron).setBlockName("mine_shrap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_shrap"); - mine_fat = new Landmine(Material.iron).setBlockName("mine_fat").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_fat"); + mine_ap = new Landmine(Material.iron, 1.5D, 1D).setBlockName("mine_ap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_ap"); + mine_he = new Landmine(Material.iron, 2D, 5D).setBlockName("mine_he").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_he"); + mine_shrap = new Landmine(Material.iron, 1.5D, 1D).setBlockName("mine_shrap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_shrap"); + mine_fat = new Landmine(Material.iron, 2.5D, 1D).setBlockName("mine_fat").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_fat"); dynamite = new BlockDynamite().setBlockName("dynamite").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":dynamite"); tnt = new BlockTNT().setBlockName("tnt_ntm").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":tnt"); semtex = new BlockSemtex().setBlockName("semtex").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":semtex"); diff --git a/src/main/java/com/hbm/blocks/bomb/Landmine.java b/src/main/java/com/hbm/blocks/bomb/Landmine.java index 85ebdc82c..5f6b76062 100644 --- a/src/main/java/com/hbm/blocks/bomb/Landmine.java +++ b/src/main/java/com/hbm/blocks/bomb/Landmine.java @@ -26,8 +26,14 @@ public class Landmine extends BlockContainer implements IBomb { public static boolean safeMode = false; - public Landmine(Material p_i45386_1_) { - super(p_i45386_1_); + public double range; + public double height; + + public Landmine(Material mat, double range, double height) { + super(mat); + + this.range = range; + this.height = height; } @Override @@ -56,7 +62,7 @@ public class Landmine extends BlockContainer implements IBomb { } @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { float f = 0.0625F; if(this == ModBlocks.mine_ap) this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 2 * f, 10 * f); @@ -70,15 +76,7 @@ public class Landmine extends BlockContainer implements IBomb { @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - float f = 0.0625F; - if(this == ModBlocks.mine_ap) - this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 2 * f, 10 * f); - if(this == ModBlocks.mine_he) - this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); - if(this == ModBlocks.mine_shrap) - this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); - if(this == ModBlocks.mine_fat) - this.setBlockBounds(5 * f, 0.0F, 4 * f, 11 * f, 6 * f, 12 * f); + setBlockBoundsBasedOnState(world, x, y, z); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } @@ -92,14 +90,7 @@ public class Landmine extends BlockContainer implements IBomb { explode(world, x, y, z); } - boolean flag = false; - if(!World.doesBlockHaveSolidTopSurface(world, x, y - 1, z) && !BlockFence.func_149825_a(world.getBlock(x, y - 1, z))) { - flag = true; - } - - if(flag) { - if(!safeMode) { explode(world, x, y, z); } else { @@ -157,18 +148,14 @@ public class Landmine extends BlockContainer implements IBomb { if(this == ModBlocks.mine_ap) { world.newExplosion(null, x + 0.5, y + 0.5, z + 0.5, 2.5F, false, false); - } - if(this == ModBlocks.mine_he) { + } else if(this == ModBlocks.mine_he) { ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 3F, true, false, false); world.newExplosion(null, x + 0.5, y + 2, z + 0.5, 15F, false, false); - } - if(this == ModBlocks.mine_shrap) { + } else if(this == ModBlocks.mine_shrap) { ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 1, true, false, false); ExplosionLarge.spawnShrapnelShower(world, x + 0.5, y + 0.5, z + 0.5, 0, 1D, 0, 45, 0.2D); ExplosionLarge.spawnShrapnels(world, x + 0.5, y + 0.5, z + 0.5, 5); - } - if(this == ModBlocks.mine_fat) { - + } else if(this == ModBlocks.mine_fat) { ExplosionNukeSmall.explode(world, x + 0.5, y + 0.5, z + 0.5, ExplosionNukeSmall.PARAMS_MEDIUM); } } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 1ae86289b..efce71839 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -13,6 +13,7 @@ import com.hbm.handler.MultiblockHandlerXR; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; +import com.hbm.tileentity.bomb.TileEntityLandmine; import com.hbm.tileentity.deco.TileEntityLanternBehemoth; import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; @@ -152,6 +153,7 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.limestoneSpawn, 12, 25, 30, ModBlocks.stone_resource, EnumStoneType.LIMESTONE.ordinal()); if(rand.nextInt(3) == 0) { + @SuppressWarnings("unchecked") WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOres); BedrockOreDefinition def = item.get(); @@ -394,6 +396,8 @@ public class HbmWorldGen implements IWorldGenerator { if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { world.setBlock(x, y, z, ModBlocks.mine_ap); + TileEntityLandmine landmine = (TileEntityLandmine) world.getTileEntity(x, y, z); + landmine.waitingForPlayer = true; if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned landmine at " + x + " " + (y) + " " + z); @@ -429,6 +433,8 @@ public class HbmWorldGen implements IWorldGenerator { int y = world.getHeightValue(x, z); if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { world.setBlock(x, y, z, ModBlocks.mine_he); + TileEntityLandmine landmine = (TileEntityLandmine) world.getTileEntity(x, y, z); + landmine.waitingForPlayer = true; } } @@ -768,6 +774,7 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.netherPlutoniumSpawn, 4, 0, 127, ModBlocks.ore_nether_plutonium, Blocks.netherrack); if(rand.nextInt(10) == 0) { + @SuppressWarnings("unchecked") WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOresNether); BedrockOreDefinition def = item.get(); int randPosX = i + rand.nextInt(2) + 8; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java index b6b909f62..65f53a83e 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java @@ -2,13 +2,14 @@ package com.hbm.tileentity.bomb; import java.util.List; -import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.Landmine; +import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -16,55 +17,59 @@ import net.minecraft.util.AxisAlignedBB; public class TileEntityLandmine extends TileEntity { private boolean isPrimed = false; + public boolean waitingForPlayer = false; public void updateEntity() { + if(worldObj.isRemote) return; + + Block block = worldObj.getBlock(xCoord, yCoord, zCoord); - if(!worldObj.isRemote) { - Block block = worldObj.getBlock(xCoord, yCoord, zCoord); - double range = 1; - double height = 1; + if(!(block instanceof Landmine)) return; + Landmine landmine = (Landmine) block; - if (block == ModBlocks.mine_ap) { - range = 1.5D; - } - if (block == ModBlocks.mine_he) { - range = 2; - height = 5; - } - if (block == ModBlocks.mine_shrap) { - range = 1.5D; - } - if (block == ModBlocks.mine_fat) { - range = 2.5D; - } - - if(!isPrimed) - range *= 2; - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - height, zCoord - range, xCoord + range + 1, yCoord + height, zCoord + range + 1)); - - boolean flag = false; - for(Object o : list) { + double range = landmine.range; + double height = landmine.height; + if (waitingForPlayer) { + range = 25; + height = 25; + } else if(!isPrimed) { + range *= 2; + height *= 2; + } + + @SuppressWarnings("unchecked") + List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, + AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - height, zCoord - range, xCoord + range + 1, yCoord + height, zCoord + range + 1)); + + for(Object o : list) { + if(waitingForPlayer) { + // This mine has been generated by worldgen and is ignoring mobs until a player is close enough + // This is to prevent worldgen mines from detonating well before they become gameplay relevant + + if(o instanceof EntityPlayer) { + MainRegistry.logger.info("player is in range, enabling"); + waitingForPlayer = false; + return; + } + } else { if(o instanceof EntityLivingBase) { - - flag = true; - if(isPrimed) { - //why did i do it like that? - ((Landmine) block).explode(worldObj, xCoord, yCoord, zCoord); + // iunno, you tell me + landmine.explode(worldObj, xCoord, yCoord, zCoord); } - + return; } } + } - if(!isPrimed && !flag) { - - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:weapon.fstbmbStart", 3.0F, 1.0F); - isPrimed = true; - } + // After placing, the mine needs to prime itself in order to not immediately kill the placer + // The mine will prime itself only after all entities have left its trigger radius * 2 + // I'm leaving this note because I made a dumb assumption on what this was meant to do + if(!isPrimed && !waitingForPlayer) { + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:weapon.fstbmbStart", 3.0F, 1.0F); + isPrimed = true; } } @@ -72,18 +77,19 @@ public class TileEntityLandmine extends TileEntity { super.readFromNBT(nbt); isPrimed = nbt.getBoolean("primed"); + waitingForPlayer = nbt.getBoolean("waiting"); } public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setBoolean("primed", isPrimed); + nbt.setBoolean("waiting", waitingForPlayer); } @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } } From 786ced191bc3df9638f8230f9c04268a8b193c98 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 14 Feb 2024 15:38:25 +0100 Subject: [PATCH 188/376] launch pad condensation for LOXY rockets --- changelog | 2 + .../com/hbm/blocks/bomb/BlockVolcano.java | 4 - .../java/com/hbm/blocks/bomb/LaunchPad.java | 145 ++----- .../com/hbm/blocks/bomb/LaunchPadLarge.java | 4 +- .../hbm/handler/guncfg/Gun20GaugeFactory.java | 1 - .../hbm/handler/guncfg/Gun45ACPFactory.java | 1 - .../hbm/handler/guncfg/Gun50BMGFactory.java | 1 - .../hbm/handler/guncfg/Gun556mmFactory.java | 1 - .../hbm/handler/guncfg/Gun75BoltFactory.java | 1 - .../hbm/handler/guncfg/Gun762mmFactory.java | 1 - .../hbm/handler/guncfg/GunGaussFactory.java | 1 - .../hbm/handler/guncfg/GunRocketFactory.java | 1 - .../container/ContainerLaunchPadTier1.java | 65 --- .../hbm/inventory/gui/GUILaunchPadTier1.java | 64 --- .../inventory/recipes/anvil/AnvilRecipes.java | 2 +- .../java/com/hbm/items/tool/ItemBoltgun.java | 1 - .../com/hbm/items/weapon/ItemCoilgun.java | 1 - .../java/com/hbm/items/weapon/ItemGunBio.java | 1 - .../com/hbm/items/weapon/ItemGunCongo.java | 1 - .../java/com/hbm/items/weapon/ItemGunPip.java | 1 - .../java/com/hbm/lib/HbmChestContents.java | 1 - src/main/java/com/hbm/main/ClientProxy.java | 3 + src/main/java/com/hbm/main/MainRegistry.java | 4 +- .../hbm/particle/ParticleCoolingTower.java | 44 +- .../render/tileentity/RenderLaunchPad.java | 12 +- .../tileentity/bomb/TileEntityLaunchPad.java | 394 ++---------------- .../bomb/TileEntityLaunchPadBase.java | 78 +++- .../bomb/TileEntityLaunchPadLarge.java | 57 ++- .../machine/TileEntityFurnaceBrick.java | 2 + 29 files changed, 225 insertions(+), 669 deletions(-) delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUILaunchPadTier1.java diff --git a/changelog b/changelog index e754f9074..77a41cc8c 100644 --- a/changelog +++ b/changelog @@ -66,6 +66,8 @@ * Retextured the fallout effect, fallout no longer has large snowflakes and the color now matches the crater better * High-yield mini nukes no longer create chunk radiation, since they use the MK5 which already has AoE radiation, this prevents dead grass from spawning that makes the crater look uglier * Balefire spread is now limited to prevent densely vegetated biomes from lagging to hell +* The bricked furnace now makes charcoal twice as fast +* Combination ovens no longer need two welded copper plates and instead only cast plates, therefore no longer being post-arc welder. This should make it more affordable and useful in the initial earlygame where things like automatic wood farms are most important. ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java index 0d586e803..f2a8d73d7 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java @@ -198,10 +198,6 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB } } - /* TODO */ - private boolean doesPyroclastic() { return false; } - private double getPyroclasticRange() { return 0D; } - /** Causes two magma explosions, one from bedrock to the core and one from the core to 15 blocks above. */ private void blastMagmaChannel() { ExplosionNT explosion = new ExplosionNT(worldObj, null, xCoord + 0.5, yCoord + worldObj.rand.nextInt(15) + 1.5, zCoord + 0.5, 7); diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index 78436a540..ac7910c4a 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -1,131 +1,74 @@ package com.hbm.blocks.bomb; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IBomb; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityLaunchPad; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class LaunchPad extends BlockContainer implements IBomb { +public class LaunchPad extends BlockDummyable implements IBomb { - public static boolean keepInventory = false; - private final static Random field_149933_a = new Random(); - - public LaunchPad(Material p_i45386_1_) { - super(p_i45386_1_); + public LaunchPad(Material mat) { + super(mat); } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityLaunchPad(); + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLaunchPad(); + return null; } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - if(!keepInventory) { - TileEntityLaunchPad tileentityfurnace = (TileEntityLaunchPad) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if(tileentityfurnace != null) { - for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if(itemstack != null) { - float f = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while(itemstack.stackSize > 0) { - int j1 = LaunchPad.field_149933_a.nextInt(21) + 10; - - if(j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if(itemstack.hasTagCompound()) { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float) LaunchPad.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) LaunchPad.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) LaunchPad.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - + @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()) { - TileEntityLaunchPad entity = (TileEntityLaunchPad) world.getTileEntity(x, y, z); - if(entity != null) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } + return this.standardOpenBehavior(world, x, y, z, player, 0); } @Override - public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) { - if(p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z) && !p_149695_1_.isRemote) { - this.explode(p_149695_1_, x, y, z); - } + public int[] getDimensions() { + return new int[] {0, 0, 1, 1, 1, 1}; } @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) { - return Item.getItemFromBlock(ModBlocks.launch_pad); + public int getOffset() { + return 1; } @Override public BombReturnCode explode(World world, int x, int y, int z) { - TileEntityLaunchPad entity = (TileEntityLaunchPad) world.getTileEntity(x, y, z); - return entity.launchFromDesignator(); + + if(!world.isRemote) { + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPad){ + TileEntityLaunchPad entity = (TileEntityLaunchPad)core; + return entity.launchFromDesignator(); + } + } + } + + return BombReturnCode.UNDEFINED; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){ + + if(!world.isRemote){ + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPad){ + TileEntityLaunchPad launchpad = (TileEntityLaunchPad)core; + launchpad.updateRedstonePower(x, y, z); + } + } + } + super.onNeighborBlockChange( world, x, y, z, blockIn); } - } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java index eb6d9daa8..da9f9bdec 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java @@ -64,8 +64,8 @@ public class LaunchPadLarge extends BlockDummyable implements IBomb { if(corePos != null){ TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); if(core instanceof TileEntityLaunchPadLarge){ - TileEntityLaunchPadLarge door = (TileEntityLaunchPadLarge)core; - door.updateRedstonePower(x, y, z); + TileEntityLaunchPadLarge launchpad = (TileEntityLaunchPadLarge)core; + launchpad.updateRedstonePower(x, y, z); } } } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java index 573e56e84..2bf40a528 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java @@ -13,7 +13,6 @@ import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java index 0e7916786..d21ebf9c9 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java @@ -12,7 +12,6 @@ import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index 6a99a6109..847a3f3ab 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -20,7 +20,6 @@ import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index e3f697b5a..4c0f19804 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -18,7 +18,6 @@ import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java index 2f24b5a02..47ae1fb7d 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java @@ -14,7 +14,6 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java index 993751dda..3419a631b 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java @@ -15,7 +15,6 @@ import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java index 93dfe03b9..905f80321 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java @@ -9,7 +9,6 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java index 0c9b53a54..1c933ce55 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java @@ -13,7 +13,6 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoRocket; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java deleted file mode 100644 index a19e9a385..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.bomb.TileEntityLaunchPad; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerLaunchPadTier1 extends Container { - - private TileEntityLaunchPad diFurnace; - - public ContainerLaunchPadTier1(InventoryPlayer invPlayer, TileEntityLaunchPad tedf) { - - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 26, 17)); - this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 134, 17)); - - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= 2) { - if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { - return null; - } - } else { - return null; - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadTier1.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadTier1.java deleted file mode 100644 index e57b35868..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadTier1.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.hbm.inventory.gui; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerLaunchPadTier1; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.bomb.TileEntityLaunchPad; - -public class GUILaunchPadTier1 extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_launch_pad.png"); - private TileEntityLaunchPad diFurnace; - - public GUILaunchPadTier1(InventoryPlayer invPlayer, TileEntityLaunchPad tedf) { - super(new ContainerLaunchPadTier1(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 53, 160, 16, diFurnace.power, diFurnace.maxPower); - - String[] text = new String[] { "First Slot:", - " -Missile (no custom ones!)", - " -Carrier Rocket" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "Second Slot:", - " -Target designator for missiles", - " -Satellite payload for the carrier rocket" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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); - - int j1 = (int)diFurnace.getPowerScaled(160); - drawTexturedModalRect(guiLeft + 8, guiTop + 53, 8, 166, j1, 16); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - } -} diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index f6a37b64d..794daf237 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -312,7 +312,7 @@ public class AnvilRecipes { new AStack[] { new ComparableStack(Blocks.stonebrick, 8), new OreDictStack(KEY_LOG, 16), - new OreDictStack(CU.plateWelded(), 2), + new OreDictStack(CU.plateCast(), 2), new OreDictStack(KEY_BRICK, 16) }, new AnvilOutput(new ItemStack(ModBlocks.furnace_combination))).setTier(2)); diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index c4178aa08..0b4ef3dd2 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -8,7 +8,6 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.util.EntityDamageUtil; diff --git a/src/main/java/com/hbm/items/weapon/ItemCoilgun.java b/src/main/java/com/hbm/items/weapon/ItemCoilgun.java index 2cff7857d..af245c5d2 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCoilgun.java +++ b/src/main/java/com/hbm/items/weapon/ItemCoilgun.java @@ -2,7 +2,6 @@ package com.hbm.items.weapon; import com.hbm.handler.GunConfiguration; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBio.java b/src/main/java/com/hbm/items/weapon/ItemGunBio.java index 77ea4a9f7..1e7184e84 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBio.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBio.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.handler.GunConfiguration; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunCongo.java b/src/main/java/com/hbm/items/weapon/ItemGunCongo.java index 4e34d889a..a4657cb6e 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunCongo.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunCongo.java @@ -2,7 +2,6 @@ package com.hbm.items.weapon; import com.hbm.handler.GunConfiguration; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunPip.java b/src/main/java/com/hbm/items/weapon/ItemGunPip.java index c57e56a70..c6ed8aaf9 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunPip.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunPip.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.handler.GunConfiguration; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index c0bda98a8..c1571f47b 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -17,7 +17,6 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; -import net.minecraft.world.ChunkCoordIntPair; public class HbmChestContents { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a11765e7a..40e1cf518 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1715,6 +1715,9 @@ public class ClientProxy extends ServerProxy { fx.setBaseScale(data.getFloat("base")); fx.setMaxScale(data.getFloat("max")); fx.setLife(data.getInteger("life") / (particleSetting + 1)); + if(data.hasKey("noWind")) fx.noWind(); + if(data.hasKey("strafe")) fx.setStrafe(data.getFloat("strafe")); + if(data.hasKey("alpha")) fx.alphaMod(data.getFloat("alpha")); if(data.hasKey("color")) { Color color = new Color(data.getInteger("color")); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 006d32211..3928f0aa8 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -41,7 +41,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.satellites.Satellite; import com.hbm.tileentity.TileMappings; -import com.hbm.tileentity.bomb.TileEntityLaunchPad; +import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; import com.hbm.tileentity.bomb.TileEntityNukeCustom; import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.tileentity.machine.rbmk.RBMKDials; @@ -332,7 +332,7 @@ public class MainRegistry { TileMappings.writeMappings(); MachineDynConfig.initialize(); - TileEntityLaunchPad.registerLaunchables(); + TileEntityLaunchPadBase.registerLaunchables(); for(Entry, String[]> e : TileMappings.map.entrySet()) { diff --git a/src/main/java/com/hbm/particle/ParticleCoolingTower.java b/src/main/java/com/hbm/particle/ParticleCoolingTower.java index ced14c05f..cf9d39559 100644 --- a/src/main/java/com/hbm/particle/ParticleCoolingTower.java +++ b/src/main/java/com/hbm/particle/ParticleCoolingTower.java @@ -15,6 +15,9 @@ public class ParticleCoolingTower extends EntityFX { private float baseScale = 1.0F; private float maxScale = 1.0F; private float lift = 0.3F; + private float strafe = 0.075F; + private boolean windDir = true; + private float alphaMod = 0.25F; public ParticleCoolingTower(TextureManager texman, World world, double x, double y, double z) { super(world, x, y, z); @@ -23,21 +26,13 @@ public class ParticleCoolingTower extends EntityFX { this.noClip = true; } - public void setBaseScale(float f) { - this.baseScale = f; - } - - public void setMaxScale(float f) { - this.maxScale = f; - } - - public void setLift(float f) { - this.lift = f; - } - - public void setLife(int i) { - this.particleMaxAge = i; - } + public void setBaseScale(float f) { this.baseScale = f; } + public void setMaxScale(float f) { this.maxScale = f; } + public void setLift(float f) { this.lift = f; } + public void setLife(int i) { this.particleMaxAge = i; } + public void setStrafe(float f) { this.strafe = f; } + public void noWind() { this.windDir = false; } + public void alphaMod(float mod) { this.alphaMod = mod; } public void onUpdate() { @@ -47,20 +42,25 @@ public class ParticleCoolingTower extends EntityFX { float ageScale = (float) this.particleAge / (float) this.particleMaxAge; - this.particleAlpha = 0.25F - ageScale * 0.25F; + this.particleAlpha = alphaMod - ageScale * alphaMod; this.particleScale = baseScale + (float)Math.pow((maxScale * ageScale - baseScale), 2); this.particleAge++; - - if(this.motionY < this.lift) { + + if(lift > 0 && this.motionY < this.lift) { this.motionY += 0.01F; } + if(lift < 0 && this.motionY > this.lift) { + this.motionY -= 0.01F; + } - this.motionX += rand.nextGaussian() * 0.075D * ageScale; - this.motionZ += rand.nextGaussian() * 0.075D * ageScale; + this.motionX += rand.nextGaussian() * strafe * ageScale; + this.motionZ += rand.nextGaussian() * strafe * ageScale; - this.motionX += 0.02 * ageScale; - this.motionX -= 0.01 * ageScale; + if(windDir) { + this.motionX += 0.02 * ageScale; + this.motionZ -= 0.01 * ageScale; + } if(this.particleAge == this.particleMaxAge) { this.setDead(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java index b0f720391..a57b0cce3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java @@ -4,6 +4,7 @@ import java.util.function.Consumer; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderMissileGeneric; @@ -21,13 +22,18 @@ public class RenderLaunchPad extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } bindTexture(ResourceManager.missile_pad_tex); ResourceManager.missile_pad.renderAll(); - GL11.glDisable(GL11.GL_CULL_FACE); - if(tileEntity instanceof TileEntityLaunchPad) { ItemStack toRender = ((TileEntityLaunchPad) tileEntity).toRender; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 5513e6de1..2b7c53dea 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -1,230 +1,65 @@ package com.hbm.tileentity.bomb; -import java.util.HashMap; -import java.util.List; - -import org.apache.logging.log4j.Level; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.bomb.LaunchPad; -import com.hbm.config.GeneralConfig; -import com.hbm.entity.missile.EntityCarrier; -import com.hbm.entity.missile.EntityMissileAntiBallistic; -import com.hbm.entity.missile.EntityMissileBaseNT; -import com.hbm.entity.missile.EntityMissileDoomsday; -import com.hbm.entity.missile.EntityMissileShuttle; -import com.hbm.entity.missile.EntityMissileStealth; -import com.hbm.entity.missile.EntityMissileTier0.*; -import com.hbm.entity.missile.EntityMissileTier1.*; -import com.hbm.entity.missile.EntityMissileTier2.*; -import com.hbm.entity.missile.EntityMissileTier3.*; -import com.hbm.entity.missile.EntityMissileTier4.*; -import com.hbm.interfaces.IBomb.BombReturnCode; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.inventory.container.ContainerLaunchPadTier1; -import com.hbm.inventory.gui.GUILaunchPadTier1; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.IRadarCommandReceiver; -import com.hbm.tileentity.TileEntityMachineBase; - import api.hbm.energy.IEnergyUser; -import api.hbm.item.IDesignatorItem; -import cpw.mods.fml.common.Optional; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnergyUser, SimpleComponent, IGUIProvider, IRadarCommandReceiver { - - /** Automatic instantiation of generic missiles, i.e. everything that both extends EntityMissileBaseNT and needs a designator */ - public static final HashMap> missiles = new HashMap(); - - public static void registerLaunchables() { +public class TileEntityLaunchPad extends TileEntityLaunchPadBase implements IEnergyUser, IFluidStandardReceiver { - //Tier 0 - missiles.put(new ComparableStack(ModItems.missile_micro), EntityMissileMicro.class); - missiles.put(new ComparableStack(ModItems.missile_schrabidium), EntityMissileSchrabidium.class); - missiles.put(new ComparableStack(ModItems.missile_bhole), EntityMissileBHole.class); - missiles.put(new ComparableStack(ModItems.missile_taint), EntityMissileTaint.class); - missiles.put(new ComparableStack(ModItems.missile_emp), EntityMissileEMP.class); - //Tier 1 - missiles.put(new ComparableStack(ModItems.missile_generic), EntityMissileGeneric.class); - missiles.put(new ComparableStack(ModItems.missile_decoy), EntityMissileDecoy.class); - missiles.put(new ComparableStack(ModItems.missile_incendiary), EntityMissileIncendiary.class); - missiles.put(new ComparableStack(ModItems.missile_cluster), EntityMissileCluster.class); - missiles.put(new ComparableStack(ModItems.missile_buster), EntityMissileBunkerBuster.class); - //Tier 2 - missiles.put(new ComparableStack(ModItems.missile_strong), EntityMissileStrong.class); - missiles.put(new ComparableStack(ModItems.missile_incendiary_strong), EntityMissileIncendiaryStrong.class); - missiles.put(new ComparableStack(ModItems.missile_cluster_strong), EntityMissileClusterStrong.class); - missiles.put(new ComparableStack(ModItems.missile_buster_strong), EntityMissileBusterStrong.class); - missiles.put(new ComparableStack(ModItems.missile_emp_strong), EntityMissileEMPStrong.class); - //Tier 3 - missiles.put(new ComparableStack(ModItems.missile_burst), EntityMissileBurst.class); - missiles.put(new ComparableStack(ModItems.missile_inferno), EntityMissileInferno.class); - missiles.put(new ComparableStack(ModItems.missile_rain), EntityMissileRain.class); - missiles.put(new ComparableStack(ModItems.missile_drill), EntityMissileDrill.class); - missiles.put(new ComparableStack(ModItems.missile_shuttle), EntityMissileShuttle.class); - //Tier 4 - missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class); - missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class); - missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class); - - missiles.put(new ComparableStack(ModItems.missile_doomsday), EntityMissileDoomsday.class); - missiles.put(new ComparableStack(ModItems.missile_stealth), EntityMissileStealth.class); - } - - public ItemStack toRender; + @Override public boolean isReadyForLaunch() { return delay <= 0; } + @Override public double getLaunchOffset() { return 2D; } - public long power; - public final long maxPower = 100000; - - private static final int[] slots_bottom = new int[] {0, 1, 2}; - private static final int[] slots_side = new int[] {0}; - - public TileEntityLaunchPad() { - super(3); - } - - @Override - public String getName() { - return "container.launchPad"; - } + public int delay = 0; @Override public void updateEntity() { if(!worldObj.isRemote) { - power = Library.chargeTEFromItems(slots, 2, power, maxPower); - this.updateConnections(); + if(this.delay > 0) delay--; - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - if(slots[0] != null) { - data.setInteger("id", Item.getIdFromItem(slots[0].getItem())); - data.setShort("meta", (short) slots[0].getItemDamage()); - } - networkPack(data, 250); - } else { - - - List entities = worldObj.getEntitiesWithinAABB(EntityMissileBaseNT.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); - - if(!entities.isEmpty()) { - - for(int i = 0; i < 15; i++) { - - boolean dir = worldObj.rand.nextBoolean(); - float moX = (float) (dir ? 0 : worldObj.rand.nextGaussian() * 0.5F); - float moZ = (float) (!dir ? 0 : worldObj.rand.nextGaussian() * 0.5F); - - MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] { moX, 0, moZ }); - } + if(!this.isMissileValid() || !this.hasFuel()) { + this.delay = 100; } } - } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - if(nbt.hasKey("id")) { - this.toRender = new ItemStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getShort("meta")); - } else { - this.toRender = null; - } - } - - private void updateConnections() { - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; + super.updateEntity(); } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - power = nbt.getLong("power"); - - if(slots == null || slots.length != 3) slots = new ItemStack[3]; + + this.delay = nbt.getInteger("delay"); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setLong("power", power); + + nbt.setInteger("delay", delay); } - @Override - public int[] getAccessibleSlotsFromSide(int side) { - return side == 0 ? slots_bottom : (side == 1 ? new int[0] : slots_side); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } + AxisAlignedBB bb = null; @Override public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public long transferPower(long power) { - this.power += power; - if(this.power > this.getMaxPower()) { - long overshoot = this.power - this.getMaxPower(); - this.power = this.getMaxPower(); - return overshoot; + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 15, + zCoord + 3 + ); } - return 0; - } - - @Override - public boolean canConnect(ForgeDirection dir) { - return dir != ForgeDirection.UP && dir != ForgeDirection.UNKNOWN; + + return bb; } @Override @@ -232,181 +67,4 @@ public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnerg public double getMaxRenderDistanceSquared() { return 65536.0D; } - - public boolean hasPower() { - return this.power >= 75_000; - } - - @Override - public boolean sendCommandPosition(int x, int y, int z) { - return this.launchToCoordinate(x, z) == BombReturnCode.LAUNCHED; - } - - @Override - public boolean sendCommandEntity(Entity target) { - return this.launchToEntity(target) == BombReturnCode.LAUNCHED; - } - - public BombReturnCode launchFromDesignator() { - if(slots[0] == null) return BombReturnCode.ERROR_MISSING_COMPONENT; - - boolean needsDesignator = missiles.containsKey(new ComparableStack(slots[0]).makeSingular()); - - int targetX = 0; - int targetZ = 0; - - if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { - - IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); - - if(!designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord) && needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; - - Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); - targetX = (int) Math.floor(coords.xCoord); - targetZ = (int) Math.floor(coords.zCoord); - - } else { - if(needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; - } - - return this.launchToCoordinate(targetX, targetZ); - } - - public BombReturnCode launchToEntity(Entity entity) { - if(!hasPower()) return BombReturnCode.ERROR_MISSING_COMPONENT; - Entity e = instantiateMissile((int) Math.floor(entity.posX), (int) Math.floor(entity.posZ)); - if(e != null) { - - if(e instanceof EntityMissileAntiBallistic) { - EntityMissileAntiBallistic abm = (EntityMissileAntiBallistic) e; - abm.tracking = entity; - } - - finalizeLaunch(e); - return BombReturnCode.LAUNCHED; - } - return BombReturnCode.ERROR_MISSING_COMPONENT; - } - - public BombReturnCode launchToCoordinate(int targetX, int targetZ) { - if(!hasPower()) return BombReturnCode.ERROR_MISSING_COMPONENT; - Entity e = instantiateMissile(targetX, targetZ); - if(e != null) { - finalizeLaunch(e); - return BombReturnCode.LAUNCHED; - } - return BombReturnCode.ERROR_MISSING_COMPONENT; - } - - public Entity instantiateMissile(int targetX, int targetZ) { - - if(slots[0] == null) return null; - - if(slots[0].getItem() == ModItems.missile_carrier) { - EntityCarrier missile = new EntityCarrier(worldObj); - missile.posX = xCoord + 0.5F; - missile.posY = yCoord + 1F; - missile.posZ = zCoord + 0.5F; - if(slots[1] != null) { - missile.setPayload(slots[1]); - this.slots[1] = null; - } - worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:entity.rocketTakeoff", 100.0F, 1.0F); - return missile; - } - - Class clazz = this.missiles.get(new ComparableStack(slots[0]).makeSingular()); - - if(clazz != null) { - try { - EntityMissileBaseNT missile = clazz.getConstructor(World.class, float.class, float.class, float.class, int.class, int.class).newInstance(worldObj, xCoord + 0.5F, yCoord + 1F, zCoord + 0.5F, targetX, targetZ); - worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); - if(GeneralConfig.enableExtendedLogging) MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + xCoord + " / " + yCoord + " / " + zCoord + " to " + xCoord + " / " + zCoord + "!"); - return missile; - } catch(Exception e) { } - } - - if(slots[0].getItem() == ModItems.missile_anti_ballistic) { - EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(worldObj); - missile.posX = xCoord + 0.5F; - missile.posY = yCoord + 0.5F; - missile.posZ = zCoord + 0.5F; - worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); - return missile; - } - - return null; - } - - public void finalizeLaunch(Entity missile) { - this.power -= 75_000; - worldObj.spawnEntityInWorld(missile); - this.decrStackSize(0, 1); - } - - // do some opencomputer stuff - @Override - public String getComponentName() { - return "launch_pad"; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyInfo(Context context, Arguments args) { - return new Object[] {getPower(), getMaxPower()}; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getCoords(Context context, Arguments args) { - if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { - int xCoord2; - int zCoord2; - if (slots[1].stackTagCompound != null) { - xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); - zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); - } else - return new Object[] {false}; - - // Not sure if i should have this - /* - if(xCoord2 == xCoord && zCoord2 == zCoord) { - xCoord2 += 1; - } - */ - - return new Object[] {xCoord2, zCoord2}; - } - return new Object[] {false, "Designator not found"}; - } - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] setCoords(Context context, Arguments args) { - if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { - slots[1].stackTagCompound = new NBTTagCompound(); - slots[1].stackTagCompound.setInteger("xCoord", args.checkInteger(0)); - slots[1].stackTagCompound.setInteger("zCoord", args.checkInteger(1)); - - return new Object[] {true}; - } - return new Object[] {false, "Designator not found"}; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] launch(Context context, Arguments args) { - ((LaunchPad) ModBlocks.launch_pad).explode(worldObj, xCoord, yCoord, zCoord); - return new Object[] {}; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerLaunchPadTier1(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUILaunchPadTier1(player.inventory, this); - } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index 6cc7d1a4b..b2e746207 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.bomb; +import java.util.HashMap; import java.util.HashSet; import java.util.Set; @@ -8,6 +9,31 @@ import org.apache.logging.log4j.Level; import com.hbm.config.GeneralConfig; import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileDoomsday; +import com.hbm.entity.missile.EntityMissileShuttle; +import com.hbm.entity.missile.EntityMissileStealth; +import com.hbm.entity.missile.EntityMissileTier0.EntityMissileBHole; +import com.hbm.entity.missile.EntityMissileTier0.EntityMissileEMP; +import com.hbm.entity.missile.EntityMissileTier0.EntityMissileMicro; +import com.hbm.entity.missile.EntityMissileTier0.EntityMissileSchrabidium; +import com.hbm.entity.missile.EntityMissileTier0.EntityMissileTaint; +import com.hbm.entity.missile.EntityMissileTier1.EntityMissileBunkerBuster; +import com.hbm.entity.missile.EntityMissileTier1.EntityMissileCluster; +import com.hbm.entity.missile.EntityMissileTier1.EntityMissileDecoy; +import com.hbm.entity.missile.EntityMissileTier1.EntityMissileGeneric; +import com.hbm.entity.missile.EntityMissileTier1.EntityMissileIncendiary; +import com.hbm.entity.missile.EntityMissileTier2.EntityMissileBusterStrong; +import com.hbm.entity.missile.EntityMissileTier2.EntityMissileClusterStrong; +import com.hbm.entity.missile.EntityMissileTier2.EntityMissileEMPStrong; +import com.hbm.entity.missile.EntityMissileTier2.EntityMissileIncendiaryStrong; +import com.hbm.entity.missile.EntityMissileTier2.EntityMissileStrong; +import com.hbm.entity.missile.EntityMissileTier3.EntityMissileBurst; +import com.hbm.entity.missile.EntityMissileTier3.EntityMissileDrill; +import com.hbm.entity.missile.EntityMissileTier3.EntityMissileInferno; +import com.hbm.entity.missile.EntityMissileTier3.EntityMissileRain; +import com.hbm.entity.missile.EntityMissileTier4.EntityMissileMirv; +import com.hbm.entity.missile.EntityMissileTier4.EntityMissileNuclear; +import com.hbm.entity.missile.EntityMissileTier4.EntityMissileVolcano; import com.hbm.interfaces.IBomb.BombReturnCode; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerLaunchPadLarge; @@ -37,10 +63,49 @@ import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { + + /** Automatic instantiation of generic missiles, i.e. everything that both extends EntityMissileBaseNT and needs a designator */ + public static final HashMap> missiles = new HashMap(); + + public static void registerLaunchables() { + + //Tier 0 + missiles.put(new ComparableStack(ModItems.missile_micro), EntityMissileMicro.class); + missiles.put(new ComparableStack(ModItems.missile_schrabidium), EntityMissileSchrabidium.class); + missiles.put(new ComparableStack(ModItems.missile_bhole), EntityMissileBHole.class); + missiles.put(new ComparableStack(ModItems.missile_taint), EntityMissileTaint.class); + missiles.put(new ComparableStack(ModItems.missile_emp), EntityMissileEMP.class); + //Tier 1 + missiles.put(new ComparableStack(ModItems.missile_generic), EntityMissileGeneric.class); + missiles.put(new ComparableStack(ModItems.missile_decoy), EntityMissileDecoy.class); + missiles.put(new ComparableStack(ModItems.missile_incendiary), EntityMissileIncendiary.class); + missiles.put(new ComparableStack(ModItems.missile_cluster), EntityMissileCluster.class); + missiles.put(new ComparableStack(ModItems.missile_buster), EntityMissileBunkerBuster.class); + //Tier 2 + missiles.put(new ComparableStack(ModItems.missile_strong), EntityMissileStrong.class); + missiles.put(new ComparableStack(ModItems.missile_incendiary_strong), EntityMissileIncendiaryStrong.class); + missiles.put(new ComparableStack(ModItems.missile_cluster_strong), EntityMissileClusterStrong.class); + missiles.put(new ComparableStack(ModItems.missile_buster_strong), EntityMissileBusterStrong.class); + missiles.put(new ComparableStack(ModItems.missile_emp_strong), EntityMissileEMPStrong.class); + //Tier 3 + missiles.put(new ComparableStack(ModItems.missile_burst), EntityMissileBurst.class); + missiles.put(new ComparableStack(ModItems.missile_inferno), EntityMissileInferno.class); + missiles.put(new ComparableStack(ModItems.missile_rain), EntityMissileRain.class); + missiles.put(new ComparableStack(ModItems.missile_drill), EntityMissileDrill.class); + missiles.put(new ComparableStack(ModItems.missile_shuttle), EntityMissileShuttle.class); + //Tier 4 + missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class); + missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class); + missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class); + + missiles.put(new ComparableStack(ModItems.missile_doomsday), EntityMissileDoomsday.class); + missiles.put(new ComparableStack(ModItems.missile_stealth), EntityMissileStealth.class); + } public ItemStack toRender; @@ -233,21 +298,22 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl if(slots[0] == null) return null; - Class clazz = TileEntityLaunchPad.missiles.get(new ComparableStack(slots[0]).makeSingular()); + Class clazz = TileEntityLaunchPadBase.missiles.get(new ComparableStack(slots[0]).makeSingular()); if(clazz != null) { try { - EntityMissileBaseNT missile = clazz.getConstructor(World.class, float.class, float.class, float.class, int.class, int.class).newInstance(worldObj, xCoord + 0.5F, yCoord + 2F, zCoord + 0.5F, targetX, targetZ); + EntityMissileBaseNT missile = clazz.getConstructor(World.class, float.class, float.class, float.class, int.class, int.class).newInstance(worldObj, xCoord + 0.5F, yCoord + (float) getLaunchOffset() /* Position arguments need to be floats, jackass */, zCoord + 0.5F, targetX, targetZ); if(GeneralConfig.enableExtendedLogging) MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + xCoord + " / " + yCoord + " / " + zCoord + " to " + xCoord + " / " + zCoord + "!"); + missile.getDataWatcher().updateObject(3, (byte) MathHelper.clamp_int(this.getBlockMetadata() - 10, 2, 5)); return missile; } catch(Exception e) { } } if(slots[0].getItem() == ModItems.missile_anti_ballistic) { EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(worldObj); - missile.posX = xCoord + 0.5F; - missile.posY = yCoord + 2F; - missile.posZ = zCoord + 0.5F; + missile.posX = xCoord + 0.5D; + missile.posY = yCoord + getLaunchOffset(); + missile.posZ = zCoord + 0.5D; return missile; } @@ -278,7 +344,6 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl int targetZ = 0; if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { - IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); if(!designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord) && needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; @@ -365,4 +430,5 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl /** Any extra conditions for launching in addition to the missile being valid and fueled */ public abstract boolean isReadyForLaunch(); + public abstract double getLaunchOffset(); } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index 7b36f7791..2b6622bfe 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -1,6 +1,6 @@ package com.hbm.tileentity.bomb; -import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.inventory.fluid.Fluids; import com.hbm.items.weapon.ItemMissile; import com.hbm.items.weapon.ItemMissile.MissileFormFactor; import com.hbm.main.MainRegistry; @@ -13,7 +13,6 @@ import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; @@ -43,10 +42,8 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements protected boolean liftMoving = false; protected boolean erectorMoving = false; - @Override - public boolean isReadyForLaunch() { - return this.erected && this.readyToLoad; - } + @Override public boolean isReadyForLaunch() { return this.erected && this.readyToLoad; } + @Override public double getLaunchOffset() { return 2D; } @Override public void updateEntity() { @@ -187,6 +184,43 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements this.audioErector = null; } } + + if(this.erected && this.hasFuel() && this.tanks[1].getTankType() == Fluids.OXYGEN) { + + //maybe too much? + /*if(this.formFactor == MissileFormFactor.ATLAS.ordinal() && worldObj.getTotalWorldTime() % 4 == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", -5F); + data.setFloat("base", 0.25F); + data.setFloat("max", 0.5F); + data.setInteger("life", 30 + worldObj.rand.nextInt(10)); + data.setDouble("posX", xCoord + 0.5 - (dir.offsetX + rot.offsetX) * 0.5); + data.setDouble("posZ", zCoord + 0.5 - (dir.offsetZ + rot.offsetZ) * 0.5); + data.setDouble("posY", yCoord + 14.625); + data.setBoolean("noWind", true); + data.setFloat("alphaMod", 0.01F); + data.setFloat("strafe", 0.05F); + for(int i = 0; i < 3; i++) MainRegistry.proxy.effectNT(data); + }*/ + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", 0F); + data.setFloat("base", 0.5F); + data.setFloat("max", 2F); + data.setInteger("life", 60 + worldObj.rand.nextInt(30)); + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posZ", zCoord + 0.5); + data.setDouble("posY", yCoord + 2); + data.setBoolean("noWind", true); + data.setFloat("alphaMod", 2F); + data.setFloat("strafe", 0.05F); + for(int i = 0; i < 3; i++) MainRegistry.proxy.effectNT(data); + } } super.updateEntity(); @@ -244,17 +278,6 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements nbt.setInteger("formFactor", formFactor); } - public Entity instantiateMissile(int targetX, int targetZ) { - Entity missile = super.instantiateMissile(targetX, targetZ); - - if(missile instanceof EntityMissileBaseNT) { - EntityMissileBaseNT base = (EntityMissileBaseNT) missile; - base.getDataWatcher().updateObject(3, (byte) (this.getBlockMetadata() - 10)); - } - - return missile; - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java index f31af3b06..be440a25c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java @@ -40,6 +40,8 @@ public class TileEntityFurnaceBrick extends TileEntityMachineBase implements IGU burnSpeed.put(Item.getItemFromBlock(Blocks.netherrack), 4); burnSpeed.put(Item.getItemFromBlock(Blocks.cobblestone), 2); burnSpeed.put(Item.getItemFromBlock(Blocks.sand), 2); + burnSpeed.put(Item.getItemFromBlock(Blocks.log), 2); + burnSpeed.put(Item.getItemFromBlock(Blocks.log2), 2); } public int burnTime; From ca2505dad0c8c7f38f2c74abd3909852b4d7b57a Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 14 Feb 2024 21:29:08 +0100 Subject: [PATCH 189/376] launch pad textures, silo launch pad --- changelog | 1 + src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../entity/missile/EntityMissileTier1.java | 5 + .../hbm/entity/projectile/EntityChemical.java | 12 + .../java/com/hbm/main/ResourceManager.java | 4 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../bomb/TileEntityLaunchPadBase.java | 7 + .../bomb/TileEntityLaunchPadLarge.java | 31 +-- src/main/resources/assets/hbm/lang/de_DE.lang | 5 +- src/main/resources/assets/hbm/lang/en_US.lang | 5 +- .../hbm/models/weapons/launch_pad_erector.obj | 30 +-- .../hbm/models/weapons/launch_pad_silo.obj | 255 ++++++++++++++++++ .../textures/models/launchpad/erector_abm.png | Bin 1268 -> 1968 bytes .../textures/models/launchpad/erector_v2.png | Bin 1634 -> 2876 bytes .../hbm/textures/models/launchpad/pad.png | Bin 1993 -> 7615 bytes .../hbm/textures/models/launchpad/silo.png | Bin 0 -> 3394 bytes 16 files changed, 309 insertions(+), 49 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/launch_pad_silo.obj create mode 100644 src/main/resources/assets/hbm/textures/models/launchpad/silo.png diff --git a/changelog b/changelog index 77a41cc8c..80e8902be 100644 --- a/changelog +++ b/changelog @@ -68,6 +68,7 @@ * Balefire spread is now limited to prevent densely vegetated biomes from lagging to hell * The bricked furnace now makes charcoal twice as fast * Combination ovens no longer need two welded copper plates and instead only cast plates, therefore no longer being post-arc welder. This should make it more affordable and useful in the initial earlygame where things like automatic wood farms are most important. +* Any water-like extinguishing fluid shot from the chemical thrower can now wash away fallout layers ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 38a9fd385..21b10b095 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2160,7 +2160,7 @@ public class ModBlocks { tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_large = new LaunchPadLarge(Material.iron).setBlockName("launch_pad_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":concrete_smooth"); + launch_pad_large = new LaunchPadLarge(Material.iron).setBlockName("launch_pad_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); radar_screen = new MachineRadarScreen(Material.iron).setBlockName("radar_screen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java index 3f9b01111..93cd9a875 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -25,6 +25,11 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { return list; } + @Override + protected float getContrailScale() { + return 0.5F; + } + public static class EntityMissileGeneric extends EntityMissileTier1 { public EntityMissileGeneric(World world) { super(world); } public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityChemical.java b/src/main/java/com/hbm/entity/projectile/EntityChemical.java index 240d8f9d5..9a6a87c22 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChemical.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChemical.java @@ -453,6 +453,18 @@ public class EntityChemical extends EntityThrowableNT { if(core instanceof IRepairable) { ((IRepairable) core).tryExtinguish(worldObj, x, y, z, fext); } + + if(fext == EnumExtinguishType.WATER && style == ChemicalStyle.LIQUID) { + for(int i = -2; i <= 2; i++) { + for(int j = 0; j <= 1; j++) { + for(int k = -2; k <= 2; k++) { + if(worldObj.getBlock(x + i, y + j, z + k) == ModBlocks.fallout) { + worldObj.setBlock(x + i, y + j, z + k, Blocks.air); + } + } + } + } + } } Block block = worldObj.getBlock(x, y, z); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 0d1a9613d..d6d9c7086 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1087,7 +1087,7 @@ public class ResourceManager { public static final IModelCustom soyuz_launcher_support = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support.obj"), false).asDisplayList(); //Missile Parts - public static final IModelCustom missile_pad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missilePad.obj")); + public static final IModelCustom missile_pad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/launch_pad_silo.obj")); public static final IModelCustom missile_erector = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/launch_pad_erector.obj")).asDisplayList(); public static final IModelCustom missile_assembly = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_assembly.obj")); public static final IModelCustom strut = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/strut.obj")); @@ -1288,7 +1288,7 @@ public class ResourceManager { public static final ResourceLocation soyuz_launcher_support_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_launcher/launcher_support.png"); //Missile Parts - public static final ResourceLocation missile_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missilePad.png"); + public static final ResourceLocation missile_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/silo.png"); public static final ResourceLocation missile_erector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/pad.png"); public static final ResourceLocation missile_erector_micro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_micro.png"); public static final ResourceLocation missile_erector_v2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_v2.png"); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index defb5b790..1f99e3dd9 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -340,6 +340,7 @@ public class TileMappings { put(TileEntitySpacer.class, "tileentity_fraction_spacer"); put(TileEntityMachineCatalyticCracker.class, "tileentity_catalytic_cracker"); put(TileEntityMachineCatalyticReformer.class, "tileentity_catalytic_reformer"); + put(TileEntityMachineHydrotreater.class, "tileentity_hydrotreater"); put(TileEntityMachineCoker.class, "tileentity_coker"); put(TileEntityChimneyBrick.class, "tileentity_chimney_brick"); put(TileEntityChimneyIndustrial.class, "tileentity_chimney_industrial"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index b2e746207..efe1d593e 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -144,6 +144,13 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl this.power = Library.chargeTEFromItems(slots, 2, power, maxPower); tanks[0].loadTank(3, 4, slots); tanks[1].loadTank(5, 6, slots); + + if(this.isMissileValid()) { + if(slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) slots[0].getItem(); + setFuel(missile); + } + } this.networkPackNT(250); } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index 2b6622bfe..cf826d0d4 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.bomb; -import com.hbm.inventory.fluid.Fluids; import com.hbm.items.weapon.ItemMissile; import com.hbm.items.weapon.ItemMissile.MissileFormFactor; import com.hbm.main.MainRegistry; @@ -60,7 +59,6 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements if(slots[0].getItem() instanceof ItemMissile) { ItemMissile missile = (ItemMissile) slots[0].getItem(); this.formFactor = missile.formFactor.ordinal(); - setFuel(missile); if(missile.formFactor == MissileFormFactor.ATLAS || missile.formFactor == MissileFormFactor.HUGE) { erectorSpeed /= 2F; @@ -185,36 +183,15 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements } } - if(this.erected && this.hasFuel() && this.tanks[1].getTankType() == Fluids.OXYGEN) { - - //maybe too much? - /*if(this.formFactor == MissileFormFactor.ATLAS.ordinal() && worldObj.getTotalWorldTime() % 4 == 0) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "tower"); - data.setFloat("lift", -5F); - data.setFloat("base", 0.25F); - data.setFloat("max", 0.5F); - data.setInteger("life", 30 + worldObj.rand.nextInt(10)); - data.setDouble("posX", xCoord + 0.5 - (dir.offsetX + rot.offsetX) * 0.5); - data.setDouble("posZ", zCoord + 0.5 - (dir.offsetZ + rot.offsetZ) * 0.5); - data.setDouble("posY", yCoord + 14.625); - data.setBoolean("noWind", true); - data.setFloat("alphaMod", 0.01F); - data.setFloat("strafe", 0.05F); - for(int i = 0; i < 3; i++) MainRegistry.proxy.effectNT(data); - }*/ - + if(this.erected && (this.formFactor == MissileFormFactor.HUGE.ordinal() || this.formFactor == MissileFormFactor.ATLAS.ordinal()) && this.tanks[1].getFill() > 0) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "tower"); data.setFloat("lift", 0F); data.setFloat("base", 0.5F); data.setFloat("max", 2F); - data.setInteger("life", 60 + worldObj.rand.nextInt(30)); - data.setDouble("posX", xCoord + 0.5); - data.setDouble("posZ", zCoord + 0.5); + data.setInteger("life", 70 + worldObj.rand.nextInt(30)); + data.setDouble("posX", xCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); + data.setDouble("posZ", zCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); data.setDouble("posY", yCoord + 2); data.setBoolean("noWind", true); data.setFloat("alphaMod", 2F); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ca43e4679..ca5bae17c 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -346,7 +346,7 @@ container.heaterOven=Heizofen container.hydrotreater=Hydrotreater container.iGenerator=Industrieller Generator container.keyForge=Schlossertisch -container.launchPad=Raketenabschussrampe +container.launchPad=Startrampe container.launchTable=Große Startrampe container.leadBox=Sicherheitsbehälter container.machineArcWelder=Lichtbogenschweißer @@ -4072,7 +4072,8 @@ tile.lamp_tritium_green_off.name=Grüne Tritiumlampe tile.lamp_tritium_green_on.name=Grüne Tritiumlampe tile.lantern.name=Laterne tile.lantern_behemoth.name=Alte Laterne -tile.launch_pad.name=Raketenabschussrampe +tile.launch_pad.name=Silo-Startrampe +tile.launch_pad_large.name=Startrampe tile.launch_table.name=Große Startrampe tile.leaves_layer.name=Totes Laub tile.lox_barrel.name=LOX-Fass diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b65517cbe..b830664c3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -705,7 +705,7 @@ container.heaterOven=Heating Oven container.hydrotreater=Hydrotreater container.iGenerator=Industrial Generator container.keyForge=Locksmith Table -container.launchPad=Missile Launch Pad +container.launchPad=Launch Pad container.launchTable=Large Launch Pad container.leadBox=Containment Box container.machineArcWelder=Arc Welder @@ -5077,7 +5077,8 @@ tile.lantern_behemoth.name=Old Lantern tile.spotlight_incandescent.name=Cage Lamp tile.spotlight_fluoro.name=Fluorescent Light tile.spotlight_halogen.name=Halogen Floodlight -tile.launch_pad.name=Missile Launch Pad +tile.launch_pad.name=Silo Launch Pad +tile.launch_pad_large.name=Launch Pad tile.launch_table.name=Large Launch Pad tile.leaves_layer.name=Fallen Leaves tile.lox_barrel.name=LOX Barrel diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj index 40c90c71d..6e1c08cdd 100644 --- a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj @@ -14124,30 +14124,30 @@ vt 0.975000 0.539474 vt 0.925000 0.750000 vt 1.000000 0.539474 vt 0.975000 0.750000 -vt 0.925000 0.776316 -vt 0.900000 0.776316 -vt 0.900000 0.763158 -vt 0.975000 0.776316 vt 1.000000 0.763158 vt 1.000000 0.776316 -vt 0.925000 0.750000 +vt 0.975000 0.776316 vt 0.900000 0.763158 -vt 0.900000 0.750000 +vt 0.925000 0.776316 +vt 0.900000 0.776316 +vt 1.000000 0.763158 vt 0.975000 0.750000 vt 1.000000 0.750000 -vt 1.000000 0.763158 -vt 0.975000 0.539474 -vt 1.000000 0.526316 -vt 1.000000 0.539474 +vt 0.900000 0.763158 +vt 0.900000 0.750000 +vt 0.925000 0.750000 +vt 0.900000 0.526316 vt 0.925000 0.539474 vt 0.900000 0.539474 -vt 0.900000 0.526316 -vt 0.975000 0.986842 -vt 1.000000 0.986842 -vt 1.000000 1.000000 -vt 0.925000 0.986842 +vt 1.000000 0.526316 +vt 1.000000 0.539474 +vt 0.975000 0.539474 vt 0.900000 1.000000 vt 0.900000 0.986842 +vt 0.925000 0.986842 +vt 1.000000 1.000000 +vt 0.975000 0.986842 +vt 1.000000 0.986842 vt 1.000000 0.776316 vt 0.975000 0.986842 vt 0.975000 0.776316 diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_silo.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_silo.obj new file mode 100644 index 000000000..02249dc56 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_silo.obj @@ -0,0 +1,255 @@ +# Blender v2.79 (sub 0) OBJ File: 'launch_pad_silo.blend' +# www.blender.org +o Plane +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 1.500000 0.000000 -0.500000 +v 0.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v 0.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v 0.500000 0.000000 0.500000 +v 1.500000 0.000000 0.500000 +v -1.500000 0.000000 -0.500000 +v -0.500000 0.000000 -0.500000 +v -1.500000 0.000000 -1.500000 +v -0.500000 0.000000 -1.500000 +v -1.500000 0.000000 1.500000 +v -0.500000 0.000000 1.500000 +v -1.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.500000 -1.500000 +v 0.500000 0.500000 -0.500000 +v 1.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.500000 1.500000 +v 1.500000 0.500000 0.500000 +v -1.500000 0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +v -0.500000 0.500000 -1.500000 +v -0.500000 0.500000 1.500000 +v -0.500000 0.500000 0.500000 +v -1.500000 0.500000 0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +vt 0.250000 0.750000 +vt 0.750000 1.000000 +vt -0.000000 1.000000 +vt 0.250000 0.500000 +vt -0.000000 0.250000 +vt 0.500000 0.750000 +vt 0.750000 0.250000 +vt 0.500000 0.500000 +vt 0.250000 0.250000 +vt 0.500000 0.125000 +vt 0.500000 0.250000 +vt 0.250000 0.125000 +vt 0.500000 0.250000 +vt 0.250000 0.250000 +vt 0.250000 0.125000 +vt 0.500000 0.250000 +vt 0.250000 0.250000 +vt 0.250000 0.250000 +vt 0.500000 0.125000 +vt 0.500000 0.250000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 0.750000 0.250000 +vt 1.000000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 0.750000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.500000 +vt 0.750000 0.250000 +vt 1.000000 0.250000 +vt 0.750000 0.250000 +vt 1.000000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt -0.000000 -0.000000 +vt 0.250000 0.125000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 0.750000 0.000000 +vt 0.500000 0.125000 +vt 0.500000 0.000000 +vt 0.250000 0.125000 +vt 0.750000 0.250000 +vt 0.000000 0.250000 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.500000 0.125000 +vt 0.500000 0.000000 +vt 0.000000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.125000 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.500000 0.125000 +vt 0.500000 0.000000 +vt 0.000000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.125000 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.500000 0.125000 +vt 0.750000 -0.000000 +vt 0.250000 0.750000 +vt 0.500000 0.500000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vt 0.250000 0.750000 +vt 0.500000 0.750000 +vt 0.250000 0.125000 +vt 0.500000 0.125000 +vt 0.500000 0.125000 +vt 0.250000 0.125000 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 1.000000 0.250000 +vt 0.750000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 0.250000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 0.250000 -0.000000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 0.500000 -0.000000 +vt 0.250000 0.500000 +vt 0.250000 0.500000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 5/1/1 3/2/1 1/3/1 +f 6/4/1 1/3/1 2/5/1 +f 7/6/1 4/7/1 3/2/1 +f 8/8/1 2/5/1 4/7/1 +f 8/9/2 28/10/2 6/11/2 +f 32/12/3 8/13/3 7/14/3 +f 35/15/4 7/16/4 5/17/4 +f 6/18/5 35/19/5 5/20/5 +f 11/21/6 10/22/6 9/23/6 +f 15/24/6 14/25/6 13/26/6 +f 19/27/6 18/28/6 17/29/6 +f 23/30/6 22/31/6 21/32/6 +f 29/33/2 15/34/2 13/35/2 +f 33/36/4 18/37/4 20/38/4 +f 27/39/6 28/40/6 26/41/6 +f 26/42/6 33/43/6 25/44/6 +f 32/45/6 36/46/6 31/47/6 +f 29/48/6 35/49/6 28/50/6 +f 35/51/4 22/52/4 24/53/4 +f 28/54/5 16/55/5 15/56/5 +f 26/57/2 11/58/2 9/59/2 +f 36/60/5 24/61/5 23/62/5 +f 14/63/4 30/64/4 2/5/4 +f 27/65/3 9/66/3 10/67/3 +f 30/64/4 4/7/4 2/5/4 +f 32/68/3 17/69/3 18/70/3 +f 14/71/3 29/72/3 13/73/3 +f 34/74/3 2/75/3 1/76/3 +f 34/74/3 21/77/3 22/78/3 +f 21/32/2 36/79/2 23/80/2 +f 3/81/2 36/79/2 1/82/2 +f 31/83/2 19/84/2 17/85/2 +f 19/86/5 33/87/5 20/88/5 +f 4/89/5 33/87/5 3/90/5 +f 25/91/5 12/92/5 11/93/5 +f 27/94/4 12/95/4 4/7/4 +f 37/96/1 40/97/1 39/98/1 +f 44/99/6 41/100/6 43/101/6 +f 5/1/1 7/6/1 3/2/1 +f 6/4/1 5/1/1 1/3/1 +f 7/6/1 8/8/1 4/7/1 +f 8/8/1 6/4/1 2/5/1 +f 8/9/2 26/102/2 28/10/2 +f 32/12/3 26/103/3 8/13/3 +f 35/15/4 32/104/4 7/16/4 +f 6/18/5 28/105/5 35/19/5 +f 11/21/6 12/106/6 10/22/6 +f 15/24/6 16/107/6 14/25/6 +f 19/27/6 20/108/6 18/28/6 +f 23/30/6 24/109/6 22/31/6 +f 29/33/2 28/110/2 15/34/2 +f 33/36/4 32/111/4 18/37/4 +f 27/39/6 30/112/6 28/40/6 +f 26/42/6 32/113/6 33/43/6 +f 32/45/6 35/114/6 36/46/6 +f 29/48/6 34/115/6 35/49/6 +f 35/51/4 34/116/4 22/52/4 +f 28/54/5 30/117/5 16/55/5 +f 26/57/2 25/118/2 11/58/2 +f 36/60/5 35/119/5 24/61/5 +f 14/63/4 16/120/4 30/64/4 +f 27/65/3 26/121/3 9/66/3 +f 30/64/4 27/94/4 4/7/4 +f 32/68/3 31/122/3 17/69/3 +f 14/71/3 2/75/3 29/72/3 +f 34/74/3 29/72/3 2/75/3 +f 34/74/3 1/76/3 21/77/3 +f 21/32/2 1/82/2 36/79/2 +f 3/81/2 31/83/2 36/79/2 +f 31/83/2 3/81/2 19/84/2 +f 19/86/5 3/90/5 33/87/5 +f 4/89/5 25/91/5 33/87/5 +f 25/91/5 4/89/5 12/92/5 +f 27/94/4 10/123/4 12/95/4 +f 37/96/1 38/124/1 40/97/1 +f 44/99/6 42/125/6 41/100/6 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png index c597f87c9697846241d8c5e76e94f0e0439dffe8..4da76e4669055e51e674e1b5414d3396d87a7978 100644 GIT binary patch literal 1968 zcmb_ddo z8<~huE-@1dV-81W64AIvW0Y^c{`l7V*80}>*V*gY@4KG;zW=<>-s{;J?ifc2F(oko z03^^(cAkQKPOzzaLU6 z5a!`pyoKfVaYq^nDtvaa?_LDq>z_9XOZm!9=gd{M37oR`!9y)m)6+sg<){t@gHb}) z!Fa4g4H4!FJ>soG)aTFlGS~GIiLtr5KnVtNoMc(Q+0& zyGOh#s526t$}yMjJx)Hc2(89cNW#*(AJ$DW)Sp-=p)vX{!!t3Yg4mtmOHE@h!{CHQ z>d_ohTd3b8mln?NNZie8OU%Dqom=xcGV@eT>f&NZadGj-*zylo(`##w)JiqBwu%CU zuG&7!jm~ldw?bvik<(|cAC|?_J?{gz0?8N|;seN)&`|rP@7voxEYsA1Rqt{w)oR18 zfs>h3x5-OEQ?eb-!fFyHZ2k6;=6EAP)-a)*e8>dNC07YwJqx07WxOuR5r3X|h>8j| zbmY^%P!=5=yg92eRq-~0?#Hia+}x3OuJpd}n>Y9NUNcmYjM&c^I76+9I#_JXki;=Z zO_RJ1>aldpMi;i;w5iE1YjH63p;GBvqTchHiW%i)ojd}^?nf6b%0D6^LLFsKTFjXg zg-A+K6otPh*RG*fYF)SIu1xfDj*6s!fSK{t#FhB6zlvB&?8aWIDsUjWJX+Og9WPL5 zyzXrGdRsF|achn}*qV*7zOiw>tO?S?4eU1&w?ZJghlaB6f?uZ-jL?Ggv|Bsl?RUc|M|OjK0ZHXG-7A}PJJd=N_qU=q0<5Ma2mIuEAbP6<=RV{?+T&{z$2Kjgn zhtoySTUU~SjfmE$JkYX^e4!}sV0{hkf&MkHS7pcyH!b&KsB>v)X~zVLOb9SEE-VE} z9k47!e!49C8&yty&{CSu-@<)7iYuBQ7B}8mpJV>u@hqm>Z=RmF7)}w)1XlY$aP8h~ zFKyJHe)oL~`~Y~n_*FyMz`(#i9D%;5Z#@;Ze=6*{KjZ{ELunJ#WeEIl7$hJZ>A=Fk)E)l z6i)Ho7x!)DAqXfv7Qc3z=Jo?zleI{H5&RP2BJHAfHGw?pO`U~ytS=SEGH+BUvwJoF|~>_Qg`}$yuK7{!J7De-igG0dZ1RodXlq zLjPuLS~8cn_!+y2J0fXBweBW%DA3q1QXQ@G^C5NLBD1uby8}ejuuLQZp*y7=>}#nSMiF54#0-Eg^x>dk3luO}Y8$ zzJ?4Q-j7kp%k`v7Jt_L)mCD=LfL~Y(I-NBKib6RiW5?e+!_Dw4;cC?GZCaA|U($n* zbSKY1x~>=ETG$co$Ai=Sk2n>k!kq2ds7MXm@Fx7%d-{U=!(y=&lbm>w@pMHLnfTJ= zyvSRfz^mDXpsZpLCH$0f|_qsJuj3bbwu9KL4FP2c4)6PSW7#eH2k8G7*YY|`u{ ze+A&b5L}v`-Frb?1PpZ6adv0;s9pV4+!f}5?r0!pqP^ugr6wwl1iHS%GmQx2=r8`q zmi&PnF4mU;Q2@Smlr#CvOjeZiGI-NL^9v|O5=cvH%yxAACOP9sy<^W8xKI`M*;0Hh zdGzx+K2R0yX9Vu_A^1IWa8;m4%U0HRbS!VhT17thD<+Zj1APV<3`q)wa`nayi?db@ z)yTjndj&#O&f{E81!os7ym;`Y$)(fee3#e7?1=y)^!ronXq_Jr*vtnftD??k!50jm M?J;%~n{&zk0(TUY#sB~S literal 1268 zcmeAS@N?(olHy`uVBq!ia0vp^2|&DogAGW2Se7jgq*#ibJVQ8upoSx*1IS(N>Eakt zG3V{vy3>YcFS%uy=E=jFl0ORy#WH z*_B2ICe3Ecqt_Y_+&j4BgVoK8St%!#-@lGHfBDAajdefd&dy&l(Wv{wy*>R;XU^Qa zK_~lEdzs9N@`M)(4m?apz{Hb{Jv%Lpjiv9`gw?m#bxdpE)?R$~%rcu7Ze>ZXx%Ks> zPs00u+<33O>(s}z-p9RXa@MC_X6tZlkYIrjoqfz@t%ZU2y`^@4dp*PbpSAv1TOF?k ziAv6b>`(tSl_gVmKb<@CuVnQ0nc@A$8jMK-3T%u?PjVaPEIzgM{n5X1ua`khI+^_Z zz5bdl!rC==MK|u&vX!0cYzYJk_^JUKA489k5xCf0y7}*3kYxuilG`NiT8| z&tQgl1MHV8-<$S)*PpXG{*dM7o}G-fh1*$vJnNKP`=5C&2WttZj!@OZ=?%V2T`eio zn1Yx(TU7X}I2DAkX6h4v&k82%-Efon^63VnT8xmSxX8%D1QW zQMsCZQKojphcBm8Bsw}ziu>*5KCD*%_qa|j@8;BMgPA@V+-3^@qfSD*XJE| zpPqVe=Y1xEng>-{xP4_l>eo_YVv?+ck+`y#y=SHDUzoBea${ot~H<;yn&zt`DwaMhL% z$Fx>0&@#i1G|~A>)QX{>-oQa^8Zh2wJ#5+$IJYmy6x{)ri$Zd$`*170aI}H zYK7;s;&gV-yO?prH;Oj^n&T09AHiBoVQM#kVIqr<9E{}%d*5@@7MhNbuzU= gUPu*EV4UIKc_90}Xl0xNuoz?TboFyt=akR{09W80DF6Tf diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png index d57c5b24327702d40fcfb56d797a97d289c3eff8..d494ed9f24bfac383bdcabd6417a94d319678b04 100644 GIT binary patch delta 2854 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 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/pad.png b/src/main/resources/assets/hbm/textures/models/launchpad/pad.png index 37a1af1c4a5bfedde724386d023024b1b9a62525..6f908dc2c562270a5ca948a21a83a376824ccce4 100644 GIT binary patch literal 7615 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 Z-H+{GWcXm!z!zE24egs+r5d(j{{!$cHbejb literal 1993 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 N4z^ADw{{ez1g(Ls~ literal 0 HcmV?d00001 From 675838eec769c2e74f99c141491c4f2496a2f1d2 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 15 Feb 2024 16:10:53 +0100 Subject: [PATCH 190/376] more energy control compat stuff --- .../java/api/hbm/tile/IInfoProviderEC.java | 85 +-------- .../tileentity/machine/TileEntityChungus.java | 18 +- .../machine/TileEntityDiFurnace.java | 11 +- .../machine/TileEntityDiFurnaceRTG.java | 11 +- .../machine/TileEntityMachineAmgen.java | 29 +++- .../machine/TileEntityMachineArcFurnace.java | 10 +- .../machine/TileEntityMachineCentrifuge.java | 10 +- .../machine/TileEntityMachineDiesel.java | 13 +- .../machine/TileEntityMachineEPress.java | 9 +- .../machine/TileEntityMachineGasCent.java | 10 +- .../TileEntityMachineLargeTurbine.java | 21 ++- .../machine/TileEntityMachineMiniRTG.java | 30 ++-- .../machine/TileEntityMachineRTG.java | 10 +- .../machine/TileEntityMachineSPP.java | 10 +- .../machine/TileEntityMachineTurbine.java | 76 +++----- .../machine/TileEntityMachineWoodBurner.java | 20 ++- .../storage/TileEntityMachineBattery.java | 11 +- .../com/hbm/util/CompatEnergyControl.java | 163 ++++++++++++++++++ 18 files changed, 370 insertions(+), 177 deletions(-) create mode 100644 src/main/java/com/hbm/util/CompatEnergyControl.java diff --git a/src/main/java/api/hbm/tile/IInfoProviderEC.java b/src/main/java/api/hbm/tile/IInfoProviderEC.java index e6a0f7835..ea4995bbd 100644 --- a/src/main/java/api/hbm/tile/IInfoProviderEC.java +++ b/src/main/java/api/hbm/tile/IInfoProviderEC.java @@ -1,9 +1,6 @@ package api.hbm.tile; -import com.hbm.inventory.fluid.tank.FluidTank; - import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.StatCollector; /** * Info providers for ENERGY CONTROL @@ -18,84 +15,6 @@ import net.minecraft.util.StatCollector; * */ public interface IInfoProviderEC { - /** The meat of the interface and the only method that should be called from externally, returns - * an NBTTagCompound with all relevant data in EC's accepted format, the implementor takes care of - * collecting and adding the data. */ - public NBTTagCompound provideInfo(); - - - - - /* - * INTERNAL USE ONLY - HELPER METHODS BELOW - */ - - /** Instantiates the NBTTagCompound and adds common identifiers needed for NTM machines (e.g. HE as the energy type) */ - public default NBTTagCompound setup() { - NBTTagCompound data = new NBTTagCompound(); - data.setString(KEY_EUTYPE, "HE"); - return data; - } - - /** Adds the tank to the NBTTagCompound using the supplied String as the key. */ - public default void addTank(String name, NBTTagCompound tag, FluidTank tank) { - if(tank.getFill() == 0) { - tag.setString(name, "N/A"); - } else { - tag.setString(name, String.format("%s: %s mB", StatCollector.translateToLocal(tank.getTankType().getConditionalName()), tank.getFill())); - } - } - - /* - * [DATA TYPE] _ [NAME] _ [UNIT] - */ - - public static final String KEY_EUTYPE = "euType"; - - public static final String L_ENERGY_HE = "energy"; - public static final String L_ENERGY_TU = "energyTU"; - public static final String L_ENERGY_ = "energy_"; // Blast Furnace fuel - - public static final String L_CAPACITY_HE = "capacity"; - public static final String L_CAPACITY_TU = "capacityTU"; - public static final String L_CAPACITY_ = "capacity_"; // Blast Furnace fuel capacity - - public static final String D_CONSUMPTION_HE = "consumptionHE"; - public static final String D_CONSUMPTION_MB = "consumption"; - @Deprecated public static final String S_CONSUMPTION_ = "consumption_"; // FWatz fluid consumption rates - - public static final String D_OUTPUT_HE = "output"; - public static final String D_OUTPUT_MB = "outputmb"; - public static final String D_OUTPUT_TU = "outputTU"; - - public static final String L_DIFF_HE = "diff"; // Battery diff per tick - @Deprecated public static final String I_TEMP_K = "temp"; // Unused? - public static final String D_TURBINE_PERCENT = "turbine"; // CCGT slider - public static final String I_TURBINE_SPEED = "speed"; // CCGT RPM - public static final String L_COREHEAT_C = "core"; // Research Reactor core heat - public static final String L_HULLHEAT_C = "hull"; // Research Reactor hull heat - public static final String S_LEVEL_PERCENT = "level"; // Research Reactor rods - @Deprecated public static final String L_HEATL = "heatL"; // AMS and old Watz heat values - public static final String D_HEAT_C = "heat"; // Research Reactor and RBMK column heat - public static final String L_PRESSURE_BAR = "bar"; // ZIRNOX pressure - public static final String I_FUEL = "fuel"; // RTG Blast Furnace heat - @Deprecated public static final String S_FUELTEXT = "fuelText"; // Large Nuclear Reactor only - @Deprecated public static final String S_DEPLETED = "depleted"; // Large Nuclear Reactor only - public static final String D_DEPLETION_PERCENT = "depletion"; // RBMK Fuel depletion - public static final String D_XENON_PERCENT = "xenon"; // RBMK Fuel xenon poisoning - public static final String D_SKIN_C = "skin"; // RBMK Fuel skin heat - public static final String D_CORE_C = "c_heat"; // RBMK Fuel core heat - public static final String D_MELT_C = "melt"; // RBMK Fuel melting point - public static final String I_PROGRESS = "progress"; - public static final String I_FLUX = "flux"; // Research and Breeding Reactor flux - public static final String I_WATER = "water"; // Research Reactor water gauge - public static final String L_DURABILITY = "durability"; // DFC Stabilizer Lens - public static final String S_TANK = "tank"; - public static final String S_TANK2 = "tank2"; - public static final String S_TANK3 = "tank3"; - public static final String S_TANK4 = "tank4"; - public static final String S_TANK5 = "tank5"; - @Deprecated public static final String I_PISTONS = "pistons"; // Radial Performance Engine piston count - public static final String S_CHUNKRAD = "chunkRad"; // Geiger Counter - public static final String B_ACTIVE = "active"; + /** Adds any custom data that isn't covered by the standard energy and fluid implementations. */ + public void provideExtraInfo(NBTTagCompound data); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index e32a41fb8..3ef6a42d2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -20,11 +20,13 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -39,7 +41,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent { +public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC { public long power; public static final long maxPower = 100000000000L; @@ -51,6 +53,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public List list2 = new ArrayList(); public FluidTank[] tanks; + protected double[] info = new double[3]; private AudioWrapper audio; private float audioDesync; @@ -69,6 +72,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc if(!worldObj.isRemote) { + this.info = new double[3]; + boolean operational = false; FluidType in = tanks[0].getTankType(); boolean valid = false; @@ -83,6 +88,9 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc tanks[0].setFill(tanks[0].getFill() - ops * trait.amountReq); tanks[1].setFill(tanks[1].getFill() + ops * trait.amountProduced); this.power += (ops * trait.heatEnergy * eff); + info[0] = ops * trait.amountReq; + info[1] = ops * trait.amountProduced; + info[2] = ops * trait.heatEnergy * eff; valid = true; operational = ops > 0; } @@ -373,4 +381,12 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public FluidTank[] getAllTanks() { return tanks; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, info[1] > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, info[0]); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java index 4e5cf6c3b..c1d3bb893 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java @@ -12,8 +12,10 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.CompatEnergyControl; import api.hbm.fluid.IFluidStandardSender; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -27,7 +29,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityDiFurnace extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider { +public class TileEntityDiFurnace extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider, IInfoProviderEC { public int progress; public int fuel; @@ -270,4 +272,11 @@ public class TileEntityDiFurnace extends TileEntityMachinePolluting implements I public FluidTank[] getSendingTanks() { return this.getSmokeTanks(); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_ENERGY_, this.fuel); + data.setLong(CompatEnergyControl.L_CAPACITY_, this.maxFuel); + data.setInteger(CompatEnergyControl.I_PROGRESS, this.progress); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java index 224beb56d..db4d16a27 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java @@ -7,8 +7,10 @@ import com.hbm.inventory.recipes.BlastFurnaceRecipes; import com.hbm.items.machine.ItemRTGPellet; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.RTGUtil; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -18,8 +20,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGUIProvider -{ +public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGUIProvider, IInfoProviderEC { + public short progress; private short processSpeed = 0; // Edit as needed @@ -219,4 +221,9 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU return new GUIMachineDiFurnaceRTG(player.inventory, this); } + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_FUEL, this.getPower()); + data.setInteger(CompatEnergyControl.I_PROGRESS, this.progress); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java index a88a7db69..ec2e10421 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java @@ -3,27 +3,33 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.energy.IEnergyGenerator; +import api.hbm.tile.IInfoProviderEC; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEnergyGenerator { +public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEnergyGenerator, IInfoProviderEC { public long power; public long maxPower = 500; + protected long output = 0; @Override public void updateEntity() { if(!worldObj.isRemote) { + + this.output = 0; Block block = worldObj.getBlock(xCoord, yCoord, zCoord); if(block == ModBlocks.machine_amgen) { float rad = ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord); - power += rad; + this.output += rad; ChunkRadiationManager.proxy.decrementRad(worldObj, xCoord, yCoord, zCoord, 5F); } else if(block == ModBlocks.machine_geo) { @@ -31,6 +37,7 @@ public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEne this.checkGeoInteraction(xCoord, yCoord - 1, zCoord); } + this.power += this.output; if(power > maxPower) power = maxPower; @@ -44,21 +51,21 @@ public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEne Block b = worldObj.getBlock(x, y, z); if(b == ModBlocks.geysir_water) { - power += 75; + this.output += 75; } else if(b == ModBlocks.geysir_chlorine) { - power += 100; + this.output += 100; } else if(b == ModBlocks.geysir_vapor) { - power += 50; + this.output += 50; } else if(b == ModBlocks.geysir_nether) { - power += 500; + this.output += 500; } else if(b == Blocks.lava) { - power += 100; + this.output += 100; if(worldObj.rand.nextInt(6000) == 0) { worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.obsidian); } } else if(b == Blocks.flowing_lava) { - power += 25; + this.output += 25; if(worldObj.rand.nextInt(3000) == 0) { worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.cobblestone); @@ -80,4 +87,10 @@ public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEne public long getMaxPower() { return this.maxPower; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.output > 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 195b5f43e..085eb355e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -11,8 +11,10 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.energy.IEnergyUser; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -26,7 +28,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; -public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider { +public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider, IInfoProviderEC { private ItemStack slots[]; @@ -400,4 +402,10 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineArcFurnace(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.hasPower() && this.canProcess()); + data.setInteger(CompatEnergyControl.I_PROGRESS, this.dualCookTime); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index 73e60b196..247214a14 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -15,9 +15,11 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; import api.hbm.energy.IEnergyUser; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -30,7 +32,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public int progress; public long power; @@ -345,4 +347,10 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement if(type == UpgradeType.OVERDRIVE) return 3; return 0; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setInteger(CompatEnergyControl.B_ACTIVE, this.progress); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index be79c3f6e..6adb43898 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -24,10 +24,12 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.CompatEnergyControl; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -38,7 +40,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider { +public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { public long power; public int soundCycle = 0; @@ -326,4 +328,13 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen public FluidTank[] getSendingTanks() { return this.getSmokeTanks(); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + long he = getHEFromFuel(tank.getTankType()); + boolean active = tank.getFill() > 0 && he > 0; + data.setBoolean(CompatEnergyControl.B_ACTIVE, active); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, active ? 1D : 0D); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, he); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index d75431102..b7bd4ec24 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -13,9 +13,11 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; import api.hbm.energy.IEnergyUser; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -28,7 +30,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power = 0; public final static long maxPower = 50000; @@ -281,4 +283,9 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE if(type == UpgradeType.SPEED) return 3; return 0; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setInteger(CompatEnergyControl.I_PROGRESS, this.press); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index dbfc389bd..bc51868ab 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -15,11 +15,13 @@ import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -34,7 +36,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; //epic! -public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { public long power; public int progress; @@ -452,4 +454,10 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineGasCent(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setInteger(CompatEnergyControl.I_PROGRESS, this.progress); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 885408284..3041a8a9b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -21,10 +21,12 @@ import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -42,13 +44,14 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent { +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC { public long power; public static final long maxPower = 100000000; public int age = 0; public List list2 = new ArrayList(); public FluidTank[] tanks; + protected double[] info = new double[3]; private boolean shouldTurn; public float rotor; @@ -79,9 +82,10 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme if(!worldObj.isRemote) { + this.info = new double[3]; + age++; - if(age >= 2) - { + if(age >= 2) { age = 0; } @@ -112,6 +116,9 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks[0].setFill(tanks[0].getFill() - ops * trait.amountReq); tanks[1].setFill(tanks[1].getFill() + ops * trait.amountProduced); this.power += (ops * trait.heatEnergy * eff); + info[0] = ops * trait.amountReq; + info[1] = ops * trait.amountProduced; + info[2] = ops * trait.heatEnergy * eff; valid = true; operational = ops > 0; } @@ -377,4 +384,12 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineLargeTurbine(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, info[1] > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, info[0]); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java index e9d41a607..cf6c1372d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java @@ -2,11 +2,14 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.energy.IEnergyGenerator; +import api.hbm.tile.IInfoProviderEC; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IEnergyGenerator { +public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IEnergyGenerator, IInfoProviderEC { public long power; boolean tact = false; @@ -16,10 +19,7 @@ public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IE if(!worldObj.isRemote) { - if(this.getBlockType() == ModBlocks.machine_powerrtg) - power += 2500; - else - power += 700; + power += this.getOutput(); if(power > getMaxPower()) power = getMaxPower(); @@ -28,15 +28,16 @@ public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IE this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } } - + + public long getOutput() { + if(this.getBlockType() == ModBlocks.machine_powerrtg) return 2_500; + return 700; + } @Override public long getMaxPower() { - - if(this.getBlockType() == ModBlocks.machine_powerrtg) - return 50000; - - return 1400; + if(this.getBlockType() == ModBlocks.machine_powerrtg) return 50_000; + return 1_400; } @Override @@ -48,4 +49,11 @@ public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IE public void setPower(long i) { power = i; } + + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, true); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.getOutput()); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index 4e386f468..255966614 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -8,9 +8,11 @@ import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.RTGUtil; import api.hbm.energy.IEnergyGenerator; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -24,7 +26,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IGUIProvider { +public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IGUIProvider, IInfoProviderEC { private ItemStack slots[]; @@ -249,4 +251,10 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineRTG(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.heat > 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, heat * 5D); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java index ad3adb63d..9e1a58aa7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java @@ -3,11 +3,14 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.energy.IEnergyGenerator; +import api.hbm.tile.IInfoProviderEC; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; -public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnergyGenerator { +public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnergyGenerator, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -86,4 +89,9 @@ public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnerg return this.maxPower; } + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.gen > 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.gen); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 1845c5e72..543f471eb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -1,12 +1,7 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; - import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerMachineTurbine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -19,10 +14,12 @@ import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -42,14 +39,13 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent { +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC { private ItemStack slots[]; public long power; public static final long maxPower = 1000000; public int age = 0; - public List list2 = new ArrayList(); public FluidTank[] tanks; private static final int[] slots_top = new int[] {4}; @@ -57,6 +53,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS private static final int[] slots_side = new int[] {4}; private String customName; + protected double[] info = new double[3]; public TileEntityMachineTurbine() { slots = new ItemStack[7]; @@ -230,16 +227,16 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS @Override public void updateEntity() { - if(!worldObj.isRemote) - { + if(!worldObj.isRemote) { + + this.info = new double[3]; + age++; - if(age >= 2) - { + if(age >= 2) { age = 0; } this.subscribeToAllAround(tanks[0].getTankType(), this); - fillFluidInit(tanks[1].getTankType()); for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); @@ -262,6 +259,9 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS tanks[0].setFill(tanks[0].getFill() - ops * trait.amountReq); tanks[1].setFill(tanks[1].getFill() + ops * trait.amountProduced); this.power += (ops * trait.heatEnergy * eff); + info[0] = ops * trait.amountReq; + info[1] = ops * trait.amountProduced; + info[2] = ops * trait.heatEnergy * eff; valid = true; } } @@ -279,32 +279,6 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS } } - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; - } - @Override public void setFluidFill(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) @@ -323,14 +297,6 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS return 0; } - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - @Override public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) @@ -343,16 +309,6 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS tanks[index].setTankType(type); } - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } - @Override public long getPower() { return power; @@ -423,4 +379,12 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineTurbine(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, info[1] > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, info[0]); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index e2d9fc11f..7d08f55dc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -16,10 +16,12 @@ import com.hbm.lib.Library; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -31,7 +33,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyGenerator, IGUIProvider { +public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyGenerator, IGUIProvider, IInfoProviderEC { public long power; public static final long maxPower = 100_000; @@ -39,6 +41,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement public int maxBurnTime; public boolean liquidBurn = false; public boolean isOn = false; + protected int powerGen = 0; public FluidTank tank; @@ -63,6 +66,8 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement if(!worldObj.isRemote) { + powerGen = 0; + this.tank.setType(2, slots); this.tank.loadTank(3, 4, slots); this.power = Library.chargeItemsFromTE(slots, 5, power, maxPower); @@ -96,8 +101,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement } else if(this.power < this.maxPower && isOn){ this.burnTime--; - this.power += 100; - if(power > maxPower) this.power = this.maxPower; + this.powerGen += 100; if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); } @@ -111,7 +115,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement int toBurn = Math.min(tank.getFill(), 2); if(toBurn > 0) { - this.power += trait.getHeatEnergy() * toBurn / 2_000L; + this.powerGen += trait.getHeatEnergy() * toBurn / 2_000L; this.tank.setFill(this.tank.getFill() - toBurn); if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * toBurn / 2F); } @@ -119,6 +123,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement } } + this.power += this.powerGen; if(this.power > this.maxPower) this.power = this.maxPower; NBTTagCompound data = new NBTTagCompound(); @@ -301,4 +306,11 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, isOn); + if(this.liquidBurn) data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, 1D); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, power); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index f20d2f7fb..21b8f7825 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine.storage; import api.hbm.energy.*; +import api.hbm.tile.IInfoProviderEC; + import com.hbm.blocks.machine.MachineBattery; import com.hbm.config.GeneralConfig; import com.hbm.inventory.container.ContainerMachineBattery; @@ -9,6 +11,8 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; + import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -32,7 +36,7 @@ import java.util.List; import java.util.Set; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyUser, IPersistentNBT, SimpleComponent, IGUIProvider { +public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyUser, IPersistentNBT, SimpleComponent, IGUIProvider, IInfoProviderEC { public long[] log = new long[20]; public long delta = 0; @@ -464,4 +468,9 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineBattery(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_DIFF_HE, (log[0] - log[19]) / 20L); + } } diff --git a/src/main/java/com/hbm/util/CompatEnergyControl.java b/src/main/java/com/hbm/util/CompatEnergyControl.java new file mode 100644 index 000000000..e6c4ff387 --- /dev/null +++ b/src/main/java/com/hbm/util/CompatEnergyControl.java @@ -0,0 +1,163 @@ +package com.hbm.util; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.tileentity.machine.TileEntityMachineGasCent; +import com.hbm.tileentity.machine.TileEntityMachineGasCent.PseudoFluidTank; +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; + +import api.hbm.energy.IBatteryItem; +import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidUser; +import api.hbm.tile.IInfoProviderEC; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +/** Provides data specified by EC's CrossModBase */ +public class CompatEnergyControl { + + /** Returns true for stacks with electric items like batteries or powertools (i.e. implements IBatteryItem) */ + public static boolean isElectricItem(ItemStack stack) { + return stack.getItem() instanceof IBatteryItem; + } + + /** Standardized discharge for IBatteryItem, returns the amount that was removed */ + public static double dischargeItem(ItemStack stack, double needed) { + IBatteryItem battery = (IBatteryItem) stack.getItem(); + long toDischarge = Math.min(battery.getDischargeRate(), Math.min(battery.getCharge(stack), (long) needed)); + battery.dischargeBattery(stack, toDischarge); + return toDischarge; + } + + /** Returns the power and maxPower values for IEnergyUser */ + public static void getEnergyData(TileEntity tile, NBTTagCompound data) { + + data.setString(KEY_EUTYPE, "HE"); + + if(tile instanceof IEnergyUser) { + IEnergyUser user = (IEnergyUser) tile; + data.setDouble(L_ENERGY_HE, user.getPower()); + data.setDouble(L_CAPACITY_HE, user.getMaxPower()); + } + } + + /** Returns the heat for RBMKs */ + public static int getHeat(TileEntity tile) { + if(tile instanceof TileEntityRBMKBase) return (int) ((TileEntityRBMKBase) tile).heat; + //original implementation also used the SNR and LNR for some reason, but those no longer exist. neither ZINOX nor research reactor were part of the system. + return -1; + } + + /** Returns a list of Object arrays, one array for each fluid tank where the array contains fluid name, fill state and capacity (STRING, INTEGER, INTEGER) */ + public static List getAllTanks(TileEntity tile) { + + List list = new ArrayList(); + + if(tile instanceof IFluidUser) { + IFluidUser user = (IFluidUser) tile; + + for(FluidTank tank : user.getAllTanks()) { + if(tank.getTankType() == Fluids.SMOKE || tank.getTankType() == Fluids.SMOKE_LEADED || tank.getTankType() == Fluids.SMOKE_POISON) continue; + list.add(toFluidInfo(tank)); + } + } + + if(tile instanceof TileEntityMachineGasCent) { + TileEntityMachineGasCent cent = (TileEntityMachineGasCent) tile; + list.add(toFluidInfo(cent.inputTank)); + list.add(toFluidInfo(cent.outputTank)); + } + + if(!list.isEmpty()) return list; + + return null; + } + + private static Object[] toFluidInfo(FluidTank tank) { + return new Object[] {tank.getTankType().getName(), tank.getFill(), tank.getMaxFill()}; + } + + private static Object[] toFluidInfo(PseudoFluidTank tank) { + return new Object[] {tank.getTankType().getName(), tank.getFill(), tank.getMaxFill()}; + } + + /** Returns any non-standard data like progress, unique stats and so forth. Data comes from the IInfoProviderEC implementation */ + public static void getExtraData(TileEntity tile, NBTTagCompound data) { + + if(tile instanceof IInfoProviderEC) { + IInfoProviderEC provider = (IInfoProviderEC) tile; + provider.provideExtraInfo(data); + } + } + + /** Returns the core tile entity for that position, can resolve the MK1 "IMultiblock" and MK2 "BlockDummyable" systems. */ + public static TileEntity findTileEntity(World world, int x, int y, int z) { + return CompatExternal.getCoreFromPos(world, x, y, z); //CompatExternal you're just standing around, do something for once + } + + /** Returns the ResourceLocation for the given fluid name */ + public static ResourceLocation getFluidTexture(String name) { + FluidType type = Fluids.fromName(name); + return type == null ? null : type.getTexture(); + } + + /* + * [DATA TYPE] _ [NAME] _ [UNIT] + */ + + public static final String KEY_EUTYPE = "euType"; + + public static final String L_ENERGY_HE = "energy"; + public static final String L_ENERGY_TU = "energyTU"; + public static final String L_ENERGY_ = "energy_"; // Blast Furnace fuel + + public static final String L_CAPACITY_HE = "capacity"; + public static final String L_CAPACITY_TU = "capacityTU"; + public static final String L_CAPACITY_ = "capacity_"; // Blast Furnace fuel capacity + + public static final String D_CONSUMPTION_HE = "consumptionHE"; + public static final String D_CONSUMPTION_MB = "consumption"; + @Deprecated public static final String S_CONSUMPTION_ = "consumption_"; // FWatz fluid consumption rates + + public static final String D_OUTPUT_HE = "output"; + public static final String D_OUTPUT_MB = "outputmb"; + public static final String D_OUTPUT_TU = "outputTU"; + + public static final String L_DIFF_HE = "diff"; // Battery diff per tick + @Deprecated public static final String I_TEMP_K = "temp"; // Unused? + public static final String D_TURBINE_PERCENT = "turbine"; // CCGT slider + public static final String I_TURBINE_SPEED = "speed"; // CCGT RPM + public static final String L_COREHEAT_C = "core"; // Research Reactor core heat + public static final String L_HULLHEAT_C = "hull"; // Research Reactor hull heat + public static final String S_LEVEL_PERCENT = "level"; // Research Reactor rods + @Deprecated public static final String L_HEATL = "heatL"; // AMS and old Watz heat values + public static final String D_HEAT_C = "heat"; // Research Reactor and RBMK column heat + public static final String L_PRESSURE_BAR = "bar"; // ZIRNOX pressure + public static final String L_FUEL = "fuel"; // RTG Blast Furnace heat + @Deprecated public static final String S_FUELTEXT = "fuelText"; // Large Nuclear Reactor only + @Deprecated public static final String S_DEPLETED = "depleted"; // Large Nuclear Reactor only + public static final String D_DEPLETION_PERCENT = "depletion"; // RBMK Fuel depletion + public static final String D_XENON_PERCENT = "xenon"; // RBMK Fuel xenon poisoning + public static final String D_SKIN_C = "skin"; // RBMK Fuel skin heat + public static final String D_CORE_C = "c_heat"; // RBMK Fuel core heat + public static final String D_MELT_C = "melt"; // RBMK Fuel melting point + public static final String I_PROGRESS = "progress"; + public static final String I_FLUX = "flux"; // Research and Breeding Reactor flux + public static final String I_WATER = "water"; // Research Reactor water gauge + public static final String L_DURABILITY = "durability"; // DFC Stabilizer Lens + public static final String S_TANK = "tank"; + public static final String S_TANK2 = "tank2"; + public static final String S_TANK3 = "tank3"; + public static final String S_TANK4 = "tank4"; + public static final String S_TANK5 = "tank5"; + @Deprecated public static final String I_PISTONS = "pistons"; // Radial Performance Engine piston count + public static final String S_CHUNKRAD = "chunkRad"; // Geiger Counter + public static final String B_ACTIVE = "active"; +} From c77d10cde448a5876bdb8ea983065d6f959cc7fc Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 15 Feb 2024 21:44:59 +0100 Subject: [PATCH 191/376] bedrock ores, more launch pad textures --- .../java/api/hbm/energy/IEnergyConnector.java | 6 ++-- src/main/java/com/hbm/config/WorldConfig.java | 4 +++ .../inventory/recipes/CentrifugeRecipes.java | 7 ++++ .../com/hbm/items/special/ItemBedrockOre.java | 3 +- .../com/hbm/world/feature/BedrockOre.java | 33 ++++++++++-------- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../textures/models/launchpad/erector_abm.png | Bin 1968 -> 1969 bytes .../models/launchpad/erector_micro.png | Bin 1163 -> 2566 bytes .../models/launchpad/erector_strong.png | Bin 2544 -> 6695 bytes .../textures/models/launchpad/erector_v2.png | Bin 2876 -> 2984 bytes 11 files changed, 36 insertions(+), 19 deletions(-) diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java index fc6905758..311a09ff8 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ b/src/main/java/api/hbm/energy/IEnergyConnector.java @@ -2,8 +2,8 @@ package api.hbm.energy; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.CompatEnergyControl; -import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -112,8 +112,8 @@ public interface IEnergyConnector extends ILoadedTile { /** Shortcut for adding energy data to tiles that implement IInfoProviderEC, should NOT be used externally for compat! Use IInfoProviderEC.provideInfo() instead! */ public default void provideInfoForEC(NBTTagCompound data) { - data.setLong(IInfoProviderEC.L_ENERGY_HE, this.getPower()); - data.setLong(IInfoProviderEC.L_CAPACITY_HE, this.getMaxPower()); + data.setLong(CompatEnergyControl.L_ENERGY_HE, this.getPower()); + data.setLong(CompatEnergyControl.L_CAPACITY_HE, this.getMaxPower()); } public default ConnectionPriority getPriority() { diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 227010114..0b1fa3a55 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -39,6 +39,7 @@ public class WorldConfig { public static int bedrockChlorocalciteSpawn = 35; public static int bedrockAsbestosSpawn = 50; public static int bedrockNiobiumSpawn = 50; + public static int bedrockNeodymiumSpawn = 50; public static int bedrockTitaniumSpawn = 100; public static int bedrockTungstenSpawn = 100; public static int bedrockGoldSpawn = 50; @@ -48,6 +49,7 @@ public class WorldConfig { public static int bedrockNiterSpawn = 50; public static int bedrockFluoriteSpawn = 50; public static int bedrockRedstoneSpawn = 50; + public static int bedrockRareEarthSpawn = 50; public static int bedrockGlowstoneSpawn = 100; public static int bedrockPhosphorusSpawn = 50; public static int bedrockQuartzSpawn = 100; @@ -166,6 +168,8 @@ public class WorldConfig { bedrockFluoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B12_bedrockFluoriteWeight", "Spawn weight for fluorite bedrock ore", 50); bedrockRedstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B13_bedrockRedstoneWeight", "Spawn weight for redstone bedrock ore", 50); bedrockChlorocalciteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B14_bedrockChlorocalciteWeight", "Spawn weight for chlorocalcite bedrock ore", 35); + bedrockNeodymiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B15_bedrockNeodymiumWeight", "Spawn weight for neodymium bedrock ore", 50); + bedrockRareEarthSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B16_bedrockRareEarthWeight", "Spawn weight for rare earth bedrock ore", 50); bedrockGlowstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN00_bedrockGlowstoneWeight", "Spawn weight for glowstone bedrock ore", 100); bedrockPhosphorusSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN01_bedrockPhosphorusWeight", "Spawn weight for phosphorus bedrock ore", 50); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 5b933fdd3..3085c7e76 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -21,6 +21,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; @@ -265,6 +266,12 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.nugget_bismuth, 6), new ItemStack(ModItems.nuclear_waste_tiny, 1) }); + + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE)), new ItemStack[] { + new ItemStack(ModItems.powder_cobalt_tiny, 2), + new ItemStack(ModItems.powder_boron_tiny, 2), + new ItemStack(ModItems.powder_niobium_tiny, 2), + new ItemStack(ModItems.nugget_zirconium, 3) }); ArrayList naquadriaNuggets = OreDictionary.getOres("nuggetNaquadria"); if(naquadriaNuggets.size() != 0) { diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index ca2ad4853..2dc6404f0 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -98,7 +98,8 @@ public class ItemBedrockOre extends ItemEnumMulti { CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON), //i guess? FLUORITE("Fluorite", 0xF6F3E7, B_SILICON, B_LITHIUM, B_ALUMINIUM), //different silicon-bearing gemstones, generic lithium, aluminium from sodium compound trailings HEMATITE("Hematite", 0xA37B72, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite - MALACHITE("Malachite", 0x66B48C, B_SULFUR, B_SULFUR, B_SULFUR); //sulfur sulfur sulfur sulfur + MALACHITE("Malachite", 0x66B48C, B_SULFUR, B_SULFUR, B_SULFUR), //sulfur sulfur sulfur sulfur + NEODYMIUM("Neodymium", 0x8F8F5F, B_LITHIUM, B_SILICON, B_BISMUTH); //yeah whatever public String oreName; public int color; diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 98bbd0c48..1b7318610 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -10,6 +10,7 @@ import com.hbm.config.WorldConfig; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.util.WeightedRandomGeneric; @@ -28,21 +29,23 @@ public class BedrockOre { public static HashMap replacements = new HashMap(); public static void init() { - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.FLUORITE, 1), WorldConfig.bedrockFluoriteSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 8), 1, 0x202020), WorldConfig.bedrockCoalSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NEODYMIUM, 3, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNeodymiumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.FLUORITE, 1), WorldConfig.bedrockFluoriteSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 8), 1, 0x202020), WorldConfig.bedrockCoalSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), 2, 0x8F9999, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockRedstoneSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.glowstone_dust, 4), 1, 0xF9FF4D), WorldConfig.bedrockGlowstoneSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(ModItems.powder_fire, 4), 1, 0xD7341F), WorldConfig.bedrockPhosphorusSpawn); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ca5bae17c..fd89e6138 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2587,6 +2587,7 @@ item.ore.gold=Gold item.ore.hematite=Hematit item.ore.iron=Eisen item.ore.malachite=Malachit +item.ore.neodymium=Neodym item.ore.niobium=Niob item.ore.titanium=Titan item.ore.tungsten=Wolfram diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b830664c3..0a827d824 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3351,6 +3351,7 @@ item.ore.gold=Gold item.ore.hematite=Hematite item.ore.iron=Iron item.ore.malachite=Malachite +item.ore.neodymium=Neodymium item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png index 4da76e4669055e51e674e1b5414d3396d87a7978..25763b61e65aaa973c4154451226ff558ed5b346 100644 GIT binary patch delta 1697 zcmaKsX;{(;9>@QP%2)*J(J0=fWSd7O>S|GvVjd||+VNx;Rd-?le$mC$gs}iZ%zgK$ky2TJjk40)Lp?zw)>Mc5dRBk zS6?<{Zj?{9xgFDb>5d~pC(8V3E9-&sZ8B32lXd0BGrvqEGC$`SdE@O3 zl*|t$!_j@U6Yt-v0S8!G%=C04A1+b_3$lI{?_$snZBVNb3io8T>eJe$`&T-j9nL3U z`jON7JC4=&oB-yP7EnN{J+VMxfWo7{2HzGtq6J~+G6k|}EO!=JaNf2<#9 zy?T_1symWVEQk#mm)DXun`zq*1hkyLS7mX!Ba$z0Zp&muV>7eapUYbD^t7}+)o@-@ z6AUm&?+jk#`RTn)F^tu5aeE({a7dTV56A~nBH1{d>_?E8m>4W84uk*=vlt*3lQK!v zlO%VfT1Lg2T6xyMkRQK`l$f}?GtS-sN@7ic3_%RmCdgRx{N<#iBs-Rg8iM9kroHj? z1TdwLxL!9K{p25;#vbgfF#${|WfT*KRr*f05pG!9svxHrp_r8pHKZLod2Owf`x??N zkL-4W9zTBkOjUcwwhp-|Iaonqzf48sFg2Q}?Hb*})2YvSPAK<~Na94o)@7{9A zt%-;(zxMmNq5iqiG5~d%^#E+kDgh(@vzoLA)!H9|Ye>%{UG0eZhcL6U8ciUq`G!9k zpIcro%#A?Fz)U7{*RfZA=lWVT7XTT7AKoCI|Z?&Ua0;h@ng450)aqPd=8;KnZ?3= zGwh-C|HmGw;)aM%4OC3Rqtr0m5k`zaAV}$!TjuAhCp3nT8z&k}{9>)5M&o524-PHuHZ>)769(Pv3ZBRRxDvd=OPaArRst89A(Q;)_>h|x# zu-cHHeib!0H01LFlWlZ_5dl z=nsh{7sAgZzfL_ST}9L4<5A1o>623#IuUu4#y$9>W0+y4hnCKr9ba-RD5vE00x2>T zo6W9}(y;!~zyb+r9cpR4f%cP}Fh2q$@b7SVz5)7?z=CsP>qkV%1Z2pQl11HIw-t#* zOUmW&neZRQ=s>L68LKg^@PGhc1t@`4RApaK97^!}{nPzrbO~(EJ440~_L()bFT(7d zqe-0Y<;RkP$evOTMhRP$QxcyleB}1eX&PFnI&5W>(LLNp+woA1UkBctz~nI)jB|+s z@s!~a@LaY-{i$ByXa)3zHj18!GB05g+sV2|!U-5)3B)0#c?$(pF z7WJqXjTyPtbAhB>nK@k*Qn#*ab#ecNcd0!qeca!W-TccdSrKPR8u*~5?#RkD8lq&g zt%w^ctdd(+qic+9p#!s&MQWBMNqZtk;lgO}1i1VV(cE{j+_$Um3H!3J23BNGK zs41q~GeVzDDdx30j94$mdqB28Dk0Bi(twfk59m;2L0>T`HnV^ z>yRay#b{?~lAD}Nwxh9c*uF)OGNv?)89 c6Wge_4bnzTd-wF*cn$1~k0%cM!X2OdFOUy1Jpcdz delta 1692 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 R^nj%cgQu&X%Q~loCIFB<97O;C diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_strong.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_strong.png index 1d71e1efde85c433eaf750f07b8abe66f7250ea4..4b32f21622b09922897a5ace2003bc828d2b5064 100644 GIT binary patch literal 6695 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 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png index d494ed9f24bfac383bdcabd6417a94d319678b04..f4cea5f797feb9c5ae7688c5c5c87f2daa70b77b 100644 GIT binary patch delta 2963 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 JPDHLkV1fW@nePAq delta 2854 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 Date: Fri, 16 Feb 2024 15:01:25 +0100 Subject: [PATCH 192/376] life extender rework, more EC compat --- changelog | 9 +- .../com/hbm/crafting/ConsumableRecipes.java | 1 + .../java/com/hbm/extprop/HbmPlayerProps.java | 18 +++- .../com/hbm/handler/EntityEffectHandler.java | 8 +- .../gui/GUIScreenTemplateFolder.java | 3 +- .../inventory/recipes/AssemblerRecipes.java | 1 - src/main/java/com/hbm/items/ModItems.java | 10 +- .../com/hbm/items/armor/ArmorAustralium.java | 78 -------------- .../com/hbm/items/armor/ItemModShield.java | 33 ++++++ .../java/com/hbm/items/food/ItemFlask.java | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 4 +- .../hbm/render/util/RenderScreenOverlay.java | 2 +- .../machine/TileEntityCondenser.java | 97 +++--------------- .../machine/TileEntityCondenserPowered.java | 2 - .../tileentity/machine/TileEntityITER.java | 12 ++- .../machine/TileEntityMachineCyclotron.java | 10 +- .../machine/TileEntityMachineIGenerator.java | 15 ++- .../machine/TileEntityMachineRadGen.java | 13 ++- .../machine/TileEntityMachineRadiolysis.java | 9 +- .../TileEntityMachineReactorBreeding.java | 9 +- .../machine/TileEntityMachineTurbineGas.java | 15 ++- .../machine/TileEntityReactorResearch.java | 11 +- .../machine/TileEntityReactorZirnox.java | 23 ++++- .../tileentity/machine/TileEntitySILEX.java | 13 ++- .../machine/TileEntityTowerLarge.java | 16 +-- .../machine/TileEntityTowerSmall.java | 14 +-- .../oil/TileEntityMachineLiquefactor.java | 10 +- .../oil/TileEntityMachineSolidifier.java | 10 +- .../machine/rbmk/TileEntityCraneConsole.java | 20 ++-- .../com/hbm/util/CompatEnergyControl.java | 1 + .../hbm/textures/items/australium_iii.png | Bin 282 -> 300 bytes 31 files changed, 234 insertions(+), 235 deletions(-) delete mode 100644 src/main/java/com/hbm/items/armor/ArmorAustralium.java create mode 100644 src/main/java/com/hbm/items/armor/ItemModShield.java diff --git a/changelog b/changelog index 80e8902be..be14b503d 100644 --- a/changelog +++ b/changelog @@ -69,6 +69,11 @@ * The bricked furnace now makes charcoal twice as fast * Combination ovens no longer need two welded copper plates and instead only cast plates, therefore no longer being post-arc welder. This should make it more affordable and useful in the initial earlygame where things like automatic wood farms are most important. * Any water-like extinguishing fluid shot from the chemical thrower can now wash away fallout layers +* Overhauled the Mk.III life extender + * The assembler recipe has been replaced with a simpler but more expensive workbench recipe + * Instead of taking up the chestplate slot, it's now an armor mod worn in the insert slot + * The armor no longer gives absorption, instead it adds 25 points to the shield count + * The +25 bypasses the shield limit of 100, meaning that with enough shield infusions, the total maximum is now 125 ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace @@ -84,4 +89,6 @@ * Fixed rampant mode random scout spawns being able to appear inside blocks * Fixed turret rotation sometimes desyncing when out of range, this is especially noticeable with slow-moving arty * Fixed research reactor OC integration allowing the control rods to be set out of bounds -* Fixed fallout falling faster and overlaying if multiple fallout areas intersect \ No newline at end of file +* Fixed fallout falling faster and overlaying if multiple fallout areas intersect +* Fixed template folder 3D models rendering with weird shading +* HUD elements like jetpack charge and the shield bar should now still render even if Tinker's Construct replaces the health bar renderer \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 3ebdae6c8..1a240f826 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -168,6 +168,7 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ASBESTOS.ingot(), 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', ModItems.ingot_meteorite_forged }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_yharonite, 1), new Object[] { "YIY", "IYI", "YIY", 'Y', ModItems.billet_yharonite, 'I', ModItems.insert_du }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.australium_iii, 1), new Object[] { "WSW", "PAP", "SPS", 'S', STEEL.plateWelded(), 'P', ANY_PLASTIC.ingot(), 'A', AUSTRALIUM.ingot(), 'W', GOLD.wireDense() }); //Servos CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set, 1), new Object[] { "MBM", "PBP", "MBM", 'M', ModItems.motor, 'B', STEEL.bolt(), 'P', IRON.plate() }); diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index 4f28169c2..b1dfbd74d 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -1,13 +1,16 @@ package com.hbm.extprop; import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.handler.ArmorModHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.items.armor.ItemModShield; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -144,8 +147,19 @@ public class HbmPlayerProps implements IExtendedEntityProperties { } } - public float getMaxShield() { - return this.maxShield; + public float getEffectiveMaxShield() { + + float max = this.maxShield; + + if(player.getCurrentArmor(2) != null) { + ItemStack[] mods = ArmorModHandler.pryMods(player.getCurrentArmor(2)); + if(mods[ArmorModHandler.kevlar] != null && mods[ArmorModHandler.kevlar].getItem() instanceof ItemModShield) { + ItemModShield mod = (ItemModShield) mods[ArmorModHandler.kevlar].getItem(); + max += mod.shield; + } + } + + return max; } @Override diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 61e96b2b2..86b640a72 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -77,13 +77,13 @@ public class EntityEffectHandler { HbmPlayerProps pprps = HbmPlayerProps.getData((EntityPlayerMP) entity); NBTTagCompound data = new NBTTagCompound(); - if(pprps.shield < pprps.maxShield && entity.ticksExisted > pprps.lastDamage + 60) { + if(pprps.shield < pprps.getEffectiveMaxShield() && entity.ticksExisted > pprps.lastDamage + 60) { int tsd = entity.ticksExisted - (pprps.lastDamage + 60); - pprps.shield += Math.min(pprps.maxShield - pprps.shield, 0.005F * tsd); + pprps.shield += Math.min(pprps.getEffectiveMaxShield() - pprps.shield, 0.005F * tsd); } - if(pprps.shield > pprps.maxShield) - pprps.shield = pprps.maxShield; + if(pprps.shield > pprps.getEffectiveMaxShield()) + pprps.shield = pprps.getEffectiveMaxShield(); props.saveNBTData(data); pprps.saveNBTData(data); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 06e2d2e70..aae2a8a45 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -7,6 +7,7 @@ import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.FluidType; @@ -313,7 +314,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { public void drawIcon(boolean b) { try { RenderHelper.enableGUIStandardItemLighting(); - GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) 240 / 1.0F, (float) 240 / 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); if(stack != null) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 8e135c4fb..51880f151 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -219,7 +219,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.tritium_deuterium_cake, 1), new AStack[] {new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.cell_tritium, 2), new OreDictStack(LI.ingot(), 4), },150); makeRecipe(new ComparableStack(ModItems.pellet_cluster, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new ComparableStack(Blocks.tnt, 1), }, 50); makeRecipe(new ComparableStack(ModItems.pellet_buckshot, 1), new AStack[] {new OreDictStack(PB.nugget(), 6), }, 50); - makeRecipe(new ComparableStack(ModItems.australium_iii, 1), new AStack[] {new ComparableStack(ModItems.nugget_australium, 6), new OreDictStack(STEEL.ingot(), 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_copper, 6), },150); makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 3), new ComparableStack(ModItems.wire_tungsten, 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); makeRecipe(new ComparableStack(ModItems.pellet_schrabidium, 1), new AStack[] {new OreDictStack(SA326.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); makeRecipe(new ComparableStack(ModItems.pellet_hes, 1), new AStack[] {new ComparableStack(ModItems.ingot_hes, 5), new OreDictStack(IRON.plate(), 2), }, 200); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 21588be1a..088ffd540 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2017,10 +2017,6 @@ public class ModItems { public static Item robes_legs; public static Item robes_boots; - public static Item australium_iii; - public static Item australium_iv; - public static Item australium_v; - public static Item jetpack_boost; public static Item jetpack_break; public static Item jetpack_fly; @@ -2212,6 +2208,7 @@ public class ModItems { public static Item night_vision; public static Item card_aos; public static Item card_qos; + public static Item australium_iii; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -3460,6 +3457,7 @@ public class ModItems { night_vision = new ItemModNightVision().setUnlocalizedName("night_vision").setTextureName(RefStrings.MODID + ":night_vision"); card_aos = new ItemModCard().setUnlocalizedName("card_aos").setTextureName(RefStrings.MODID + ":card_aos"); card_qos = new ItemModCard().setUnlocalizedName("card_qos").setTextureName(RefStrings.MODID + ":card_qos"); + australium_iii = new ItemModShield(25F).setUnlocalizedName("australium_iii").setTextureName(RefStrings.MODID + ":australium_iii"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -5371,8 +5369,6 @@ public class ModItems { liquidator_legs = new ArmorLiquidator(aMatLiquidator, 2, RefStrings.MODID + ":textures/armor/liquidator_2.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_legs"); liquidator_boots = new ArmorLiquidator(aMatLiquidator, 3, RefStrings.MODID + ":textures/armor/liquidator_1.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_boots"); - australium_iii = new ArmorAustralium(MainRegistry.aMatAus3, 1).setUnlocalizedName("australium_iii").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":australium_iii"); - jetpack_boost = new JetpackBooster(Fluids.BALEFIRE, 32000).setUnlocalizedName("jetpack_boost").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_boost"); jetpack_break = new JetpackBreak(Fluids.KEROSENE, 12000).setUnlocalizedName("jetpack_break").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_break"); jetpack_fly = new JetpackRegular(Fluids.KEROSENE, 12000).setUnlocalizedName("jetpack_fly").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_fly"); @@ -7580,6 +7576,7 @@ public class ModItems { GameRegistry.registerItem(night_vision, night_vision.getUnlocalizedName()); GameRegistry.registerItem(card_aos, card_aos.getUnlocalizedName()); GameRegistry.registerItem(card_qos, card_qos.getUnlocalizedName()); + GameRegistry.registerItem(australium_iii, australium_iii.getUnlocalizedName()); //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); @@ -7863,7 +7860,6 @@ public class ModItems { GameRegistry.registerItem(apple_euphemium, apple_euphemium.getUnlocalizedName()); GameRegistry.registerItem(watch, watch.getUnlocalizedName()); GameRegistry.registerItem(mask_of_infamy, mask_of_infamy.getUnlocalizedName()); - GameRegistry.registerItem(australium_iii, australium_iii.getUnlocalizedName()); GameRegistry.registerItem(jackt, jackt.getUnlocalizedName()); GameRegistry.registerItem(jackt2, jackt2.getUnlocalizedName()); GameRegistry.registerItem(jetpack_fly, jetpack_fly.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorAustralium.java b/src/main/java/com/hbm/items/armor/ArmorAustralium.java deleted file mode 100644 index b5a681561..000000000 --- a/src/main/java/com/hbm/items/armor/ArmorAustralium.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hbm.items.armor; - -import java.util.List; -import java.util.Random; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemArmor; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ArmorAustralium extends ItemArmor { - - Random rand = new Random(); - - public ArmorAustralium(ArmorMaterial armorMaterial, int armorType) { - super(armorMaterial, 0, armorType); - } - - @Override - public void onArmorTick(World world, EntityPlayer player, ItemStack armor) { - if(armor.getItemDamage() < armor.getMaxDamage()) { - if (armor.getItem() == ModItems.australium_iii) { - if(rand.nextInt(3) == 0) { - armor.damageItem(1, player); - } - if(!player.isPotionActive(Potion.field_76444_x.id)) - player.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 80, 2, true)); - } - if (armor.getItem() == ModItems.australium_iv) { - if(rand.nextInt(5) == 0) { - armor.damageItem(1, player); - } - if(!player.isPotionActive(Potion.field_76444_x.id)) - player.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 80, 4, true)); - } - if (armor.getItem() == ModItems.australium_v) { - if(rand.nextInt(7) == 0) { - armor.damageItem(1, player); - } - if(!player.isPotionActive(Potion.field_76444_x.id)) - player.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 80, 3, true)); - } - } - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if (itemstack.getItem() == ModItems.australium_iii) - list.add("Ouch, that hurts."); - if (itemstack.getItem() == ModItems.australium_iv) - list.add("Just do it."); - if (itemstack.getItem() == ModItems.australium_v) - list.add("Gobbles up less australium than Mark IV!"); - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) { - if(stack.getItem().equals(ModItems.australium_iii)) { - return (RefStrings.MODID + ":textures/armor/australium_iii.png"); - } - if(stack.getItem().equals(ModItems.australium_iv)) { - return (RefStrings.MODID + ":textures/armor/australium_iv.png"); - } - if(stack.getItem().equals(ModItems.australium_v)) { - return (RefStrings.MODID + ":textures/armor/australium_v.png"); - } - - else return null; - } - -} diff --git a/src/main/java/com/hbm/items/armor/ItemModShield.java b/src/main/java/com/hbm/items/armor/ItemModShield.java new file mode 100644 index 000000000..9aa1782e4 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModShield.java @@ -0,0 +1,33 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemModShield extends ItemArmorMod { + + public final float shield; + + public ItemModShield(float shield) { + super(ArmorModHandler.kevlar, false, true, false, false); + this.shield = shield; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD); + list.add(color + "+" + (Math.round(shield * 10) * 0.1) + " shield"); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD); + list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(shield * 10) * 0.1) + " health)"); + } +} diff --git a/src/main/java/com/hbm/items/food/ItemFlask.java b/src/main/java/com/hbm/items/food/ItemFlask.java index 9ecdb4fc2..13826d3b8 100644 --- a/src/main/java/com/hbm/items/food/ItemFlask.java +++ b/src/main/java/com/hbm/items/food/ItemFlask.java @@ -50,7 +50,7 @@ public class ItemFlask extends ItemEnumMulti { float infusion = 5F; HbmPlayerProps props = HbmPlayerProps.getData(player); props.maxShield = Math.min(props.shieldCap, props.maxShield + infusion); - props.shield = Math.min(props.shield + infusion, props.maxShield); + props.shield = Math.min(props.shield + infusion, props.getEffectiveMaxShield()); } return stack; diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 592132ad5..c0ec6f220 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -364,7 +364,7 @@ public class ModEventHandlerClient { } } - @SubscribeEvent + @SubscribeEvent(receiveCanceled = true) public void onOverlayRender(RenderGameOverlayEvent.Post event) { /// HANDLE ELECTRIC FSB HUD /// @@ -374,7 +374,7 @@ public class ModEventHandlerClient { if(!event.isCanceled() && event.type == event.type.HEALTH) { HbmPlayerProps props = HbmPlayerProps.getData(player); - if(props.maxShield > 0) { + if(props.getEffectiveMaxShield() > 0) { RenderScreenOverlay.renderShieldBar(event.resolution, Minecraft.getMinecraft().ingameGUI); } } diff --git a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java index 50ef61541..0fd88f3c7 100644 --- a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java +++ b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java @@ -297,7 +297,7 @@ public class RenderScreenOverlay { Minecraft.getMinecraft().renderEngine.bindTexture(misc); gui.drawTexturedModalRect(left, top, 146, 0, 81, 9); - int i = (int) Math.ceil(props.shield * 79 / props.maxShield); + int i = (int) Math.ceil(props.shield * 79 / props.getEffectiveMaxShield()); gui.drawTexturedModalRect(left + 1, top, 147, 9, i, 9); String label = "" + ((int) (props.shield * 10F)) / 10D; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index 3e4df7177..2a13a059a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -1,35 +1,29 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.lib.Library; import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.EnumSkyBlock; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, INBTPacketReceiver { +public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IInfoProviderEC { public int age = 0; public FluidTank[] tanks; - public List list = new ArrayList(); public int waterTimer = 0; + protected int throughput; public TileEntityCondenser() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 100, 0); - tanks[1] = new FluidTank(Fluids.WATER, 100, 1); + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 100); + tanks[1] = new FluidTank(Fluids.WATER, 100); } @Override @@ -49,6 +43,8 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA this.waterTimer--; int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); + this.throughput = convert; + if(extraCondition(convert)) { tanks[0].setFill(tanks[0].getFill() - convert); @@ -71,7 +67,6 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA this.subscribeToAllAround(tanks[0].getTankType(), this); this.sendFluidToAll(tanks[1], this); - fillFluidInit(tanks[1].getTankType()); data.setByte("timer", (byte) this.waterTimer); packExtra(data); INBTPacketReceiver.networkPack(this, data, 150); @@ -103,76 +98,6 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA tanks[1].writeToNBT(nbt, "steam"); } - @Override - public void fillFluidInit(FluidType type) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - fillFluid(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks [1]}; @@ -187,4 +112,10 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA public FluidTank[] getAllTanks() { return tanks; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, throughput); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, throughput); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java index 7bd58cf0a..8051f40ff 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java @@ -91,8 +91,6 @@ public class TileEntityCondenserPowered extends TileEntityCondenser implements I tanks[1].writeToNBT(nbt, "steam"); } - @Deprecated @Override public void fillFluidInit(FluidType type) { } - @Override public void subscribeToAllAround(FluidType type, TileEntity te) { for(DirPos pos : getConPos()) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 4a7e3de46..367fd3b2a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -27,10 +27,12 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -44,7 +46,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider /* TODO: finish fluid API impl */ { +public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { public long power; public static final long maxPower = 10000000; @@ -649,4 +651,12 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIITER(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.isOn && plasma.getFill() > 0); + int output = FusionRecipes.getSteamProduction(plasma.getTankType()); + data.setDouble("consumption", output * 10); + data.setDouble("outputmb", output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 618ce4f80..f538dff8a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -30,12 +30,14 @@ import com.hbm.tileentity.IConditionalInvAccess; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -50,7 +52,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider { +public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000000; @@ -613,4 +615,10 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements if(type == UpgradeType.EFFECT) return 3; return 0; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.isOn && this.progress > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.progress > 0 ? consumption - 100_000 * getConsumption() : 0); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 6d68a4c76..5ef4699b0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -18,11 +18,13 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.RTGUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -37,7 +39,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineIGenerator extends TileEntityMachineBase implements IFluidAcceptor, IEnergyGenerator, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider { +public class TileEntityMachineIGenerator extends TileEntityMachineBase implements IFluidAcceptor, IEnergyGenerator, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { public long power; public int spin; @@ -66,6 +68,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public static int waterRate = 10; public static int lubeRate = 1; public static long fluidHeatDiv = 1_000L; + + protected long output; @Override public String getConfigName() { @@ -219,7 +223,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement this.tanks[2].setFill(this.tanks[2].getFill() - lubeRate); } - this.power += this.spin * genMult; + this.output = (long) (this.spin * genMult); + this.power += this.output; if(this.power > this.maxPower) this.power = this.maxPower; @@ -385,4 +390,10 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIIGenerator(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.output > 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java index e44e62e8a..c3977ba78 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java @@ -11,9 +11,11 @@ import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.Tuple.Triplet; import api.hbm.energy.IEnergyGenerator; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -28,12 +30,13 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadGen extends TileEntityMachineBase implements IEnergyGenerator, IGUIProvider { +public class TileEntityMachineRadGen extends TileEntityMachineBase implements IEnergyGenerator, IGUIProvider, IInfoProviderEC { public int[] progress = new int[12]; public int[] maxProgress = new int[12]; public int[] production = new int[12]; public ItemStack[] processing = new ItemStack[12]; + protected int output; public long power; public static final long maxPower = 1000000; @@ -53,6 +56,8 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE public void updateEntity() { if(!worldObj.isRemote) { + + this.output = 0; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); this.sendPower(worldObj, this.xCoord - dir.offsetX * 4, this.yCoord, this.zCoord - dir.offsetZ * 4, dir.getOpposite()); @@ -82,6 +87,7 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE this.isOn = true; this.power += production[i]; + this.output += production[i]; progress[i]++; if(progress[i] >= maxProgress[i]) { @@ -290,4 +296,9 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineRadGen(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index 1e63bd80f..cc5210787 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -19,12 +19,14 @@ import com.hbm.items.machine.ItemRTGPelletDepleted; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.RTGUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -37,7 +39,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { public long power; public static final int maxPower = 1000000; @@ -384,4 +386,9 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRadiolysis(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.heat * 10); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java index 42ac92f71..b565d8358 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java @@ -8,7 +8,9 @@ import com.hbm.inventory.recipes.BreederRecipes; import com.hbm.inventory.recipes.BreederRecipes.BreederRecipe; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -28,7 +30,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineReactorBreeding extends TileEntityMachineBase implements SimpleComponent, IGUIProvider { +public class TileEntityMachineReactorBreeding extends TileEntityMachineBase implements SimpleComponent, IGUIProvider, IInfoProviderEC { public int flux; public float progress; @@ -251,4 +253,9 @@ public class TileEntityMachineReactorBreeding extends TileEntityMachineBase impl public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineReactorBreeding(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setInteger(CompatEnergyControl.I_FLUX, flux); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 9a92c3db8..6e784e6e7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -19,9 +19,11 @@ import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -39,7 +41,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider, SimpleComponent { +public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC { public long power; public static final long maxPower = 1000000L; @@ -649,4 +651,15 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineTurbineGas(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.state == 1); + data.setDouble(CompatEnergyControl.D_HEAT_C, Math.max(20D, this.temp)); + data.setDouble(CompatEnergyControl.D_TURBINE_PERCENT, this.powerSliderPos * 100D / 60D); + data.setInteger(CompatEnergyControl.I_TURBINE_SPEED, this.rpm); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.instantPowerOutput); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.waterToBoil); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, this.waterToBoil * 10); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 35f116b72..fb5b31782 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -14,7 +14,9 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPlateFuel; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -39,7 +41,7 @@ import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) //TODO: fix reactor control; -public class TileEntityReactorResearch extends TileEntityMachineBase implements IControlReceiver, SimpleComponent, IGUIProvider { +public class TileEntityReactorResearch extends TileEntityMachineBase implements IControlReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC { @SideOnly(Side.CLIENT) public double lastLevel; @@ -446,4 +448,11 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIReactorResearch(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_HEAT_C, Math.round(heat * 2.0E-5D * 980.0D + 20.0D)); + data.setInteger(CompatEnergyControl.I_FLUX, totalFlux); + data.setInteger(CompatEnergyControl.I_WATER, water); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index 2064b13f9..91286049a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -28,10 +28,12 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -50,7 +52,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider { +public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider, IInfoProviderEC { public int heat; public static final int maxHeat = 100000; @@ -64,6 +66,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public FluidTank steam; public FluidTank carbonDioxide; public FluidTank water; + protected int output; private static final int[] slots_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; @@ -188,6 +191,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF if(!worldObj.isRemote) { + this.output = 0; age++; if (age >= 20) { @@ -254,11 +258,11 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF // function of SHS produced per tick // (heat - 10256)/100000 * steamFill (max efficiency at 14b) * 25 * 5 (should get rid of any rounding errors) if(this.heat > 10256) { - int Water = (int)((((float)heat - 10256F) / (float)maxHeat) * Math.min(((float)carbonDioxide.getFill() / 14000F), 1F) * 25F * 5F); - int Steam = Water * 1; + int cycle = (int)((((float)heat - 10256F) / (float)maxHeat) * Math.min(((float)carbonDioxide.getFill() / 14000F), 1F) * 25F * 5F); + this.output = cycle; - water.setFill(water.getFill() - Water); - steam.setFill(steam.getFill() + Steam); + water.setFill(water.getFill() - cycle); + steam.setFill(steam.getFill() + cycle); if(water.getFill() < 0) water.setFill(0); @@ -606,4 +610,13 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIReactorZirnox(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_HEAT_C, Math.round(heat * 1.0E-5D * 780.0D + 20.0D)); + data.setDouble(CompatEnergyControl.D_MAXHEAT_C, Math.round(maxHeat * 1.0E-5D * 780.0D + 20.0D)); + data.setLong(CompatEnergyControl.L_PRESSURE_BAR, Math.round(pressure * 1.0E-5D * 30.0D)); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, output); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index 7148b06b1..ffaf2871f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -15,10 +15,12 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.InventoryUtil; import com.hbm.util.WeightedRandomObject; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -32,7 +34,7 @@ import net.minecraft.util.WeightedRandom; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { public EnumWavelengths mode = EnumWavelengths.NULL; public boolean hasLaser; @@ -373,4 +375,13 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUISILEX(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + if(current == null) + data.setString("tank2", "N/A"); + else + data.setString("tank2", String.format("%s: %s mB", current.toStack().getDisplayName(), currentFill)); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java index 03b16cf88..a68c62ae0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java @@ -16,8 +16,8 @@ public class TileEntityTowerLarge extends TileEntityCondenser { public TileEntityTowerLarge() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 10000, 0); - tanks[1] = new FluidTank(Fluids.WATER, 10000, 1); + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 10000); + tanks[1] = new FluidTank(Fluids.WATER, 10000); } @Override @@ -43,18 +43,6 @@ public class TileEntityTowerLarge extends TileEntityCondenser { } } - @Override - public void fillFluidInit(FluidType type) { - - for(int i = 2; i < 6; i++) { - ForgeDirection dir = ForgeDirection.getOrientation(i); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - fillFluid(xCoord + dir.offsetX * 5, yCoord, zCoord + dir.offsetZ * 5, getTact(), type); - fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * 3, getTact(), type); - fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * -3, getTact(), type); - } - } - @Override public void subscribeToAllAround(FluidType type, TileEntity te) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java index 7dbb010bb..248edec3a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java @@ -11,14 +11,13 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; public class TileEntityTowerSmall extends TileEntityCondenser { public TileEntityTowerSmall() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 1000, 0); - tanks[1] = new FluidTank(Fluids.WATER, 1000, 1); + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 1000); + tanks[1] = new FluidTank(Fluids.WATER, 1000); } @Override @@ -59,15 +58,6 @@ public class TileEntityTowerSmall extends TileEntityCondenser { this.sendFluid(this.tanks[1], worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); this.sendFluid(this.tanks[1], worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); } - - @Override - public void fillFluidInit(FluidType type) { - - for(int i = 2; i <= 6; i++) { - ForgeDirection dir = ForgeDirection.getOrientation(i); - fillFluid(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, getTact(), type); - } - } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 2cd37bd61..f02c1f4b4 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -19,11 +19,13 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardSender; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -35,7 +37,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -326,4 +328,10 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen if(type == UpgradeType.POWER) return 3; return 0; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.usage); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index 1f900c83b..cf7cb6319 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -16,12 +16,14 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -33,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -302,4 +304,10 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement if(type == UpgradeType.POWER) return 3; return 0; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.usage); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index 823259e3d..37e97639f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -80,16 +80,18 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece goesDown = false; if(!worldObj.isRemote && this.canTargetInteract()) { - if(this.loadedItem != null) { - getColumnAtPos().load(this.loadedItem); - this.loadedItem = null; - } else { - IRBMKLoadable column = getColumnAtPos(); - this.loadedItem = column.provideNext(); - column.unload(); + IRBMKLoadable column = getColumnAtPos(); + if(column != null) { // canTargetInteract already assumes this, but there seems to be some freak race conditions that cause the column to be null anyway + if(this.loadedItem != null) { + column.load(this.loadedItem); + this.loadedItem = null; + } else { + this.loadedItem = column.provideNext(); + column.unload(); + } + + this.markDirty(); } - - this.markDirty(); } } diff --git a/src/main/java/com/hbm/util/CompatEnergyControl.java b/src/main/java/com/hbm/util/CompatEnergyControl.java index e6c4ff387..7f60115fa 100644 --- a/src/main/java/com/hbm/util/CompatEnergyControl.java +++ b/src/main/java/com/hbm/util/CompatEnergyControl.java @@ -139,6 +139,7 @@ public class CompatEnergyControl { public static final String S_LEVEL_PERCENT = "level"; // Research Reactor rods @Deprecated public static final String L_HEATL = "heatL"; // AMS and old Watz heat values public static final String D_HEAT_C = "heat"; // Research Reactor and RBMK column heat + public static final String D_MAXHEAT_C = "maxHeat"; // ZIRNOX melting temp public static final String L_PRESSURE_BAR = "bar"; // ZIRNOX pressure public static final String L_FUEL = "fuel"; // RTG Blast Furnace heat @Deprecated public static final String S_FUELTEXT = "fuelText"; // Large Nuclear Reactor only diff --git a/src/main/resources/assets/hbm/textures/items/australium_iii.png b/src/main/resources/assets/hbm/textures/items/australium_iii.png index 5a876c2b6676bc8808c68dda718810c8ade144a9..04cef8027883fa0f6429e517260a122bdde9ce7b 100644 GIT binary patch delta 256 zcmV+b0ssD*0;~d%G=JksL_t(IjjfVBZo@DPMxTNX&XS=6b%ab@3-koJP;S&EH|YU1 zc}quXXaP^&*g;n6G?v?-eSiQ_B0v5}@JB-HLREckr<4|b1AxEc>>)fBTUFi6t{h{G z7ZHEQ=^;E59+onj8E-F{ZdcC60iKQ#5%HY!RVAD1KtCx@ba^{qUse^GXCH@|!1h3> zB0n+(Zx5y2OAGZt6>r5t>3eS9%%Cz3(Dh&Y7EJ;BfH>RVg{r!U`1ypNPk6PLd^dM$ z-|(xSXl8tW|4MTP04XIzWVM3T7DR-c^QyoqBGMe*zwrq-o>j{Do{Y-?0000l`Pt6Abpq!c oh-fir(SV5HoLe+lL!a?KUd$3t2`%1Q761SM07*qoM6N<$f(qPii2wiq From 65cda2b65b6fc6a5f843964b4895f8930fb8d277 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 16 Feb 2024 22:07:17 +0100 Subject: [PATCH 193/376] almost forgot about this one --- .../hbm/handler/nei/BoilerRecipeHandler.java | 121 +++++++++--------- .../hbm/handler/nei/HydrotreatingHandler.java | 16 +++ .../hbm/inventory/gui/GUILaunchPadLarge.java | 4 +- .../recipes/HydrotreatingRecipes.java | 2 +- .../com/hbm/items/weapon/ItemMissile.java | 1 + src/main/java/com/hbm/main/NEIConfig.java | 1 + .../bomb/TileEntityLaunchPadLarge.java | 104 +++++++-------- .../models/launchpad/erector_atlas.png | Bin 3599 -> 14476 bytes .../models/launchpad/erector_huge.png | Bin 2310 -> 10488 bytes 9 files changed, 132 insertions(+), 117 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java diff --git a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java index 5d966c2b8..776261ac4 100644 --- a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java @@ -17,34 +17,33 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; public class BoilerRecipeHandler extends TemplateRecipeHandler { - - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe - { - PositionedStack input; - PositionedStack result; - - public SmeltingSet(ItemStack input, ItemStack result) { - input.stackSize = 1; - this.input = new PositionedStack(input, 21 + 9, 6 + 18); - this.result = new PositionedStack(result, 120, 24); - } + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); - @Override + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack input; + PositionedStack result; + + public SmeltingSet(ItemStack input, ItemStack result) { + input.stackSize = 1; + this.input = new PositionedStack(input, 21 + 9, 6 + 18); + this.result = new PositionedStack(result, 120, 24); + } + + @Override public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input})); - } + return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] { input })); + } - @Override + @Override public PositionedStack getResult() { - return result; - } - } - + return result; + } + } + @Override public String getRecipeName() { return "Boiler"; @@ -55,23 +54,22 @@ public class BoilerRecipeHandler extends TemplateRecipeHandler { return RefStrings.MODID + ":textures/gui/nei/gui_nei_boiler.png"; } - @Override - public Class getGuiClass() { - return null; - } + @Override + public Class getGuiClass() { + return null; + } + + @Override + public TemplateRecipeHandler newInstance() { + return super.newInstance(); + } - @Override - public TemplateRecipeHandler newInstance() { - return super.newInstance(); - } - @Override public void loadCraftingRecipes(String outputId, Object... results) { - if ((outputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { + if((outputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), - (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue())); } } else { super.loadCraftingRecipes(outputId, results); @@ -81,17 +79,15 @@ public class BoilerRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (compareFluidStacks((ItemStack)recipe.getValue(), result) || - compareFluidStacks((ItemStack)recipe.getValue(), result)) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), - (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + if(compareFluidStacks((ItemStack) recipe.getValue(), result) || compareFluidStacks((ItemStack) recipe.getValue(), result)) + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue())); } } @Override public void loadUsageRecipes(String inputId, Object... ingredients) { - if ((inputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { + if((inputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { loadCraftingRecipes("ntmboiler", new Object[0]); } else { super.loadUsageRecipes(inputId, ingredients); @@ -101,32 +97,31 @@ public class BoilerRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (compareFluidStacks(ingredient, (ItemStack)recipe.getKey())) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), - (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + if(compareFluidStacks(ingredient, (ItemStack) recipe.getKey())) + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue())); } } - + private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); } - @Override - public void drawExtras(int recipe) { - drawProgressBar(80, 23, 0, 85, 6, 17, 240, 3); - } - - @Override - public void loadTransferRects() { - transferRectsGui = new LinkedList(); - guiGui = new LinkedList>(); + @Override + public void drawExtras(int recipe) { + drawProgressBar(80, 23, 0, 85, 6, 17, 240, 3); + } - transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27 - 9, 23, 36, 18), "ntmboiler")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 29 - 18 - 18, 18, 18 * 2), "ntmboiler")); - guiGui.add(GUIMachineBoiler.class); - guiGui.add(GUIMachineBoilerElectric.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - } + @Override + public void loadTransferRects() { + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); + + transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27 - 9, 23, 36, 18), "ntmboiler")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 29 - 18 - 18, 18, 18 * 2), "ntmboiler")); + guiGui.add(GUIMachineBoiler.class); + guiGui.add(GUIMachineBoilerElectric.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } } diff --git a/src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java b/src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java new file mode 100644 index 000000000..81a932ddb --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java @@ -0,0 +1,16 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.HydrotreatingRecipes; + +public class HydrotreatingHandler extends NEIUniversalHandler { + + public HydrotreatingHandler() { + super("Hydrotreating", ModBlocks.machine_hydrotreater, HydrotreatingRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmHydrotreating"; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java index e144595e2..713ff71d7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java @@ -38,8 +38,8 @@ public class GUILaunchPadLarge extends GuiInfoContainer { super.drawScreen(mouseX, mouseY, f); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 88 - 52, 16, 52, launchpad.power, launchpad.maxPower); - launchpad.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 70 - 52, 16, 52); - launchpad.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 70 - 52, 16, 52); + launchpad.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 88 - 52, 16, 52); + launchpad.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 88 - 52, 16, 52); } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java index 5836457a5..620d5b490 100644 --- a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java @@ -71,7 +71,7 @@ public class HydrotreatingRecipes extends SerializableRecipe { for(Entry> recipe : recipes.entrySet()) { map.put(new ItemStack[] { ItemFluidIcon.make(recipe.getKey(), 1000), - ItemFluidIcon.make(recipe.getValue().getX().type, recipe.getValue().getX().fill * 10) }, + ItemFluidIcon.make(recipe.getValue().getX().type, recipe.getValue().getX().fill * 10, 1) }, new ItemStack[] { ItemFluidIcon.make(recipe.getValue().getY().type, recipe.getValue().getY().fill * 10), ItemFluidIcon.make(recipe.getValue().getZ().type, recipe.getValue().getZ().fill * 10) }); diff --git a/src/main/java/com/hbm/items/weapon/ItemMissile.java b/src/main/java/com/hbm/items/weapon/ItemMissile.java index 1f2023494..74ac62c42 100644 --- a/src/main/java/com/hbm/items/weapon/ItemMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemMissile.java @@ -35,6 +35,7 @@ public class ItemMissile extends ItemCustomLore { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { list.add(EnumChatFormatting.ITALIC + this.tier.display); list.add("Fuel: " + this.fuel.display); + if(this.fuelCap > 0) list.add("Fuel capacity: " + this.fuelCap + "mB"); super.addInformation(itemstack, player, list, bool); } diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 8ee671107..d97c3e50f 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -42,6 +42,7 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new VacuumRecipeHandler()); registerHandler(new CrackingHandler()); registerHandler(new ReformingHandler()); + registerHandler(new HydrotreatingHandler()); registerHandler(new BoilerRecipeHandler()); registerHandler(new ChemplantRecipeHandler()); registerHandler(new CrystallizerRecipeHandler()); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index cf826d0d4..32cbc093b 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -75,60 +75,62 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements delay = 20; } - if(delay > 0) { - delay--; - - if(delay < 10 && scheduleErect) { - this.erected = true; - this.scheduleErect = false; - } - - // if there is no missile or the missile isn't ready (i.e. the erector hasn't returned to zero position yet), retract - if(slots[0] == null || !readyToLoad) { - //fold back erector - if(erector < 90F) { - erector = Math.min(erector + erectorSpeed, 90F); - if(erector == 90F) delay = 20; - //extend lift - } else if(lift < 1F) { - lift = Math.min(lift + liftSpeed, 1F); - if(erector == 1F) { - //if the lift is fully extended, the loading can begin - readyToLoad = true; - delay = 20; - } - } - } - - } else { - - //only extend if the erector isn't up yet and the missile can be loaded - if(!erected && readyToLoad) { - //first, rotate the erector - if(erector != 0F) { - erector = Math.max(erector - erectorSpeed, 0F); - if(erector == 0F) delay = 20; - //then retract the lift - } else if(lift > 0) { - lift = Math.max(lift - liftSpeed, 0F); - if(lift == 0F) { - //once the lift is at the bottom, the missile is deployed - scheduleErect = true; - delay = 20; + if(this.power >= 75_000) { + if(delay > 0) { + delay--; + + if(delay < 10 && scheduleErect) { + this.erected = true; + this.scheduleErect = false; + } + + // if there is no missile or the missile isn't ready (i.e. the erector hasn't returned to zero position yet), retract + if(slots[0] == null || !readyToLoad) { + //fold back erector + if(erector < 90F) { + erector = Math.min(erector + erectorSpeed, 90F); + if(erector == 90F) delay = 20; + //extend lift + } else if(lift < 1F) { + lift = Math.min(lift + liftSpeed, 1F); + if(erector == 1F) { + //if the lift is fully extended, the loading can begin + readyToLoad = true; + delay = 20; + } } } + } else { - //first, fold back the erector - if(erector < 90F) { - erector = Math.min(erector + erectorSpeed, 90F); - if(erector == 90F) delay = 20; - //then extend the lift again - } else if(lift < 1F) { - lift = Math.min(lift + liftSpeed, 1F); - if(erector == 1F) { - //if the lift is fully extended, the loading can begin - readyToLoad = true; - delay = 20; + + //only extend if the erector isn't up yet and the missile can be loaded + if(!erected && readyToLoad) { + //first, rotate the erector + if(erector != 0F) { + erector = Math.max(erector - erectorSpeed, 0F); + if(erector == 0F) delay = 20; + //then retract the lift + } else if(lift > 0) { + lift = Math.max(lift - liftSpeed, 0F); + if(lift == 0F) { + //once the lift is at the bottom, the missile is deployed + scheduleErect = true; + delay = 20; + } + } + } else { + //first, fold back the erector + if(erector < 90F) { + erector = Math.min(erector + erectorSpeed, 90F); + if(erector == 90F) delay = 20; + //then extend the lift again + } else if(lift < 1F) { + lift = Math.min(lift + liftSpeed, 1F); + if(erector == 1F) { + //if the lift is fully extended, the loading can begin + readyToLoad = true; + delay = 20; + } } } } diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png index 279b1a92de02f7d5a29dd44cc0b0f7f5f6151f03..0513ab1247ff7c8ed8b5c28a4b7305646ca32f65 100644 GIT binary patch literal 14476 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 literal 2310 zcma)8e>~Is8lUE#Mme11R69(a+f8!(=q4RaHspwmW6_Qgu`7$DbjVgSu8b6J$Bkml z5(=|w=Eueg$B!dpVHpdZtC?RjjP1;fv&uQQ+qtj%y5B#(-|y@7d_K?fexCQ|{XC!R z-+H;}>4J3u0DzwRv7<-;K+9J1{|xkr=AFJo*{%6#UvhT$1!zp(Yc$OHwm@dcV1EQQnC$5+^Yo4>Z|4z}WDH zH)weQ#A_YQ<6=&4?by^|@H7!H^_p#*wdXI$l?pdXPpFCOt*6;EIwf`GR_B&vbV)T0 zT{uuV8i%Vv^BaoBjiPeH{ZBHceJXofIu+4Y3yX8zJurmS+xCargrMcz1=l>eH2R#P z6as(;Yl96)aA0$M^pqCB5MM)c{6=}7f{E5Y8J)EY)^P$~V9F^NnC{0q?6cjuIq8#Y zyLgE<#x9sLNf}=@k=I#x2r75-)L*D2a=N2UP5-sT8pOX{X#^%esc69Ch6j6COQ!s< zOzYt&s#eGYUSiX$t|QZj^=alt?;{&v;oCE*TFJPAkr6swHqVF}!8+d8)dLmBrqm$T zD(ZpLeY3^x=Ay}aF}R$BGi~;dvNcwhBCQb6zad5R#8maVN(Q@P@rMOF+GAS>d;M5~ zml@(@u5~Kd!h&FsB_h z){-&ThVC@!7(eyOb)@yS#yyZT5O<>N@+E<$z_H1z$kS>2$|ZJU9y-E41m8#&%^c{j zzWa=dt|i9~pvQq5UsOf9u3LAFQ@K=Te@yeDvo;v+;dFlP>(rOX=Q@3xeE!3L_Odk7 z-g3`5-zD;)=-Olo$Tsnx)nv36X!p?+yY(HPVFBi6?U`hQV`;ikpVCTl3`#_vXyGiw%PJ% z(eK3=GDaV_G>fH$8MdZZRT)__b7)&FSRFL17|!;@i56H4O6;_CL=H4S*VbsgE)EDp z=53~5QhR-1Jr>dZ*r0#<{^vm`$5 z2|a=qzgZGPU^o19m%C@y*yV~XSMrRsA$5`ODMR+Z5ukIAQ__u4!;hIAGVYWyp-93;^puxL;T>O8<(9D5(w2u{ zErQEC*JQBS1T|&VUvM%(Rrk}5F4pzB)}2LzdPW6akR!6)oaP9QgF1hFISKYvhJUa8clBirLYNnul zDXJEVva$X^*z3*Utt2%Li)9YgENS04l{!CmdX1z0N1|bgGq8Ex`jG(T-7ZilRH$rB zAs#oCTve-83hBy&du*^d}(h%)E8Hv3gj>* zL2)42-bd3SJ`nW>a2RVr-I!W0zN`*R447a@YWT~CR(%*NZps2vSVD|icG#MZi(+1a zgr101G+C^Mj&6ex$>q7kU_p2I!Dx@+1@FQ`!JK2b<;x*Tx^9nAZrSa#_)GVG%O_*- z0b5T+Hg4JOeHUKLbnTqZx^6PDXD*q`1d*A{HQS6@i^6t!Jc=4^)M9YwiDuSO6Aye^0{CGdPQO4_39EhAAPY6vtELXcd zvM~PKq=Ld42#Wi9_TZ24DT5ckrM@`k2U_H}-EIke0Q@EOCaMA#s11hd`Q6>jZ_^`$ zCgBXRGfcY2}R z(b<9Ikv+B?XL=4YEl-^|i!#F3ypbF4l(IRDjnvr*wM1_EeVB z5&_1<2w^sm4`$QoK8=61vI#+&%XU|c5Z3xQS1zD^-^=NbdAD`ruqa`* zN#sr+OJoit%p4jI?5Sy4H3<|YpNF*h22gbvtMS$$#7#T3Av28_ xO9Mf1174Y3In1|2O;3p`_zzP3{s?cLXf#!azvZsltGU*MoZSMd8 From d08d5031785e419f860b021a216262ef448396e2 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 18 Feb 2024 17:28:53 +1100 Subject: [PATCH 194/376] Added old-school animations for the super shotgun, including new CONSTANT keyframe loading --- .../entity/projectile/EntityBulletBaseNT.java | 2 +- .../com/hbm/handler/GunConfiguration.java | 2 + .../hbm/handler/guncfg/Gun12GaugeFactory.java | 31 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../com/hbm/render/anim/AnimationLoader.java | 4 +- .../hbm/render/anim/BusAnimationKeyframe.java | 2 +- .../hbm/render/anim/BusAnimationSequence.java | 7 +- .../item/weapon/ItemRenderWeaponShotty.java | 74 +- .../weapons/animations/supershotty.json | 1 + .../assets/hbm/models/weapons/supershotty.obj | 21223 ++++++++-------- .../assets/hbm/sounds/weapon/shottyShoot.ogg | Bin 28617 -> 15206 bytes 11 files changed, 10636 insertions(+), 10711 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/animations/supershotty.json diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index bfaaf8b31..53e45f70b 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -115,7 +115,7 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(gun != null && gun.getItem() instanceof ItemGunBase) { GunConfiguration cfg = ((ItemGunBase) gun.getItem()).mainConfig; - if(cfg != null && cfg.hasSights && entity.isSneaking()) { + if(cfg != null && (cfg.hasSights && entity.isSneaking()) || cfg.isCentered) { offsetShot = false; } } diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index fe0e09b56..470883534 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -42,6 +42,8 @@ public class GunConfiguration implements Cloneable { public boolean animationsLoaded = false; //when sneaking, disables crosshair and centers the bullet spawn point public boolean hasSights; + //does this weapon behave like fully sick old-school boomer shooters + public boolean isCentered; //texture overlay when sneaking public ResourceLocation scopeTexture; //whether the FOV multiplier should be absolute or multiplicative to other modifiers, multiplicative mode is experimental! diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index ae35fbdbc..00c98c9ff 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -180,7 +180,7 @@ public class Gun12GaugeFactory { GunConfiguration config = new GunConfiguration(); - config.rateOfFire = 20; + config.rateOfFire = 30; config.roundsPerCycle = 2; config.gunMode = GunConfiguration.MODE_NORMAL; config.firingMode = GunConfiguration.FIRE_MANUAL; @@ -190,33 +190,14 @@ public class Gun12GaugeFactory { config.durability = 3000; config.reloadType = GunConfiguration.RELOAD_NONE; config.allowsInfinity = true; - config.hasSights = true; + config.isCentered = true; config.crosshair = Crosshair.L_CIRCLE; config.reloadSound = GunConfiguration.RSOUND_REVOLVER; config.firingSound = "hbm:weapon.shottyShoot"; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("SHOTTY_RECOIL", new BusAnimationSequence() - .addKeyframePosition(0.5, 0, 0, 50) - .addKeyframePosition(0, 0, 0, 50) - ) - .addBus("SHOTTY_BREAK", new BusAnimationSequence() - .addKeyframePosition(0, 0, 0, 100) //do nothing for 100ms - .addKeyframePosition(0, 0, 60, 200) //open - .addKeyframePosition(0, 0, 60, 500) //do nothing for 500ms - .addKeyframePosition(0, 0, 0, 200) //close - ) - .addBus("SHOTTY_EJECT", new BusAnimationSequence() - .addKeyframePosition(0, 0, 0, 300) //do nothing for 300ms - .addKeyframePosition(1, 0, 0, 700) //fling! - ) - .addBus("SHOTTY_INSERT", new BusAnimationSequence() - .addKeyframePosition(0, 0, 0, 300) //do nothing for 300ms - .addKeyframePosition(1, 0, 1, 0) //reposition - .addKeyframePosition(1, 0, 0, 350) //come in from the side - .addKeyframePosition(0, 0, 0, 150) //push - ) - ); + + config.loadAnimations = i -> { + config.animations.put(AnimType.CYCLE, ResourceManager.supershotty_anim.get("Fire")); + }; config.name = "supershotty"; config.manufacturer = EnumGunManufacturer.UAC; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 0d1a9613d..456c8a5b4 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -849,6 +849,7 @@ public class ResourceManager { public static final HashMap novac_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/novac.json")); public static final HashMap ks23_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/ks23.json")); public static final HashMap spas_12_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/spas12.json")); + public static final HashMap supershotty_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/supershotty.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); diff --git a/src/main/java/com/hbm/render/anim/AnimationLoader.java b/src/main/java/com/hbm/render/anim/AnimationLoader.java index 2c51bd0c3..4ad0edb6a 100644 --- a/src/main/java/com/hbm/render/anim/AnimationLoader.java +++ b/src/main/java/com/hbm/render/anim/AnimationLoader.java @@ -14,6 +14,7 @@ import com.google.gson.JsonArray; import net.minecraft.client.Minecraft; import net.minecraft.util.ResourceLocation; +import com.hbm.render.anim.BusAnimationKeyframe.InterpolationType; import com.hbm.render.anim.BusAnimationSequence.Dimension; public class AnimationLoader { @@ -142,8 +143,9 @@ public class AnimationLoader { double value = array.get(0).getAsDouble(); int duration = array.get(1).getAsInt(); + InterpolationType interpolation = array.size() >= 3 ? InterpolationType.valueOf(array.get(2).getAsString()) : InterpolationType.LINEAR; - return new BusAnimationKeyframe(value, duration); + return new BusAnimationKeyframe(value, duration, interpolation); } } diff --git a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java index 3c30e481d..6833652dd 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java @@ -7,7 +7,7 @@ public class BusAnimationKeyframe { //it's an enum so stuff like accelerated animations between just //two frames could be implemented public static enum InterpolationType { - NONE, + CONSTANT, LINEAR } diff --git a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java index 599edd63b..ea573fb96 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java @@ -91,11 +91,16 @@ public class BusAnimationSequence { continue; } - if (currentFrame.interpolationType == InterpolationType.NONE || millis >= endTime) { + if (millis >= endTime) { transform[i] = currentFrame.value; continue; } + if (previousFrame != null && previousFrame.interpolationType == InterpolationType.CONSTANT) { + transform[i] = previousFrame.value; + continue; + } + double a = currentFrame.value; double b = previousFrame != null ? previousFrame.value : 0; double t = (double)(millis - startTime) / (double)currentFrame.duration; diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java index 25840aa8c..b48f78a84 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.ResourceManager; import com.hbm.render.anim.HbmAnimations; +import com.hbm.render.anim.HbmAnimations.Animation; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; @@ -41,10 +42,6 @@ public class ItemRenderWeaponShotty implements IItemRenderer { GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); - String barrel = "Body_Cube.008"; - String handle = "handle_Cylinder.005"; - String shells = "boolets_Cylinder.008"; - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.shotty_tex); EntityPlayer player = Minecraft.getMinecraft().thePlayer; @@ -52,70 +49,55 @@ public class ItemRenderWeaponShotty implements IItemRenderer { switch(type) { case EQUIPPED_FIRST_PERSON: - - double[] recoil = HbmAnimations.getRelevantTransformation("SHOTTY_RECOIL"); - double[] eject = HbmAnimations.getRelevantTransformation("SHOTTY_BREAK"); - double[] ejectShell = HbmAnimations.getRelevantTransformation("SHOTTY_EJECT"); - double[] insertShell = HbmAnimations.getRelevantTransformation("SHOTTY_INSERT"); GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(1.75F, -0.2F, -0.3F); - - if(player.isSneaking()) { - GL11.glTranslatef(0F, 1.0F, -2.05F); - GL11.glRotatef(3.5F, 0.0F, 1.0F, 0.0F); - } else { - - GL11.glRotated(-eject[2] * 0.25, 0, 0, 1); - } + GL11.glRotatef(-95F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-2.0F, 0.5F, -2.0F); - GL11.glTranslated(-recoil[0] * 2, 0, 0); - GL11.glRotated(recoil[0] * 5, 0, 0, 1); - - GL11.glPushMatrix(); - GL11.glRotated(-eject[2] * 0.8, 0, 0, 1); - ResourceManager.shotty.renderPart(barrel); + HbmAnimations.applyRelevantTransformation("Body"); + ResourceManager.shotty.renderPart("Body"); - GL11.glPushMatrix(); - GL11.glRotated(ejectShell[0] * 90, 0, 0, 1); - GL11.glTranslated(-ejectShell[0] * 10, 0, 0); - ResourceManager.shotty.renderPart(shells); - GL11.glPopMatrix(); - - if(ItemGunBase.getBeltSize(player, ItemGunBase.getBeltType(player, item, true)) > 0) { + HbmAnimations.applyRelevantTransformation("Barrel"); + ResourceManager.shotty.renderPart("Barrel"); + + // If we've run out of ammo, stop drawing the shells after ejection has completed + Animation anim = HbmAnimations.getRelevantAnim(); + int millis = anim != null ? (int)(System.currentTimeMillis() - anim.startMillis) : 0; + + if(ItemGunBase.getBeltSize(player, ItemGunBase.getBeltType(player, item, true)) > 0 || millis < 1000) { GL11.glPushMatrix(); - GL11.glTranslated(-insertShell[0], insertShell[2] * -2, insertShell[2] * -1); - ResourceManager.shotty.renderPart(shells); + HbmAnimations.applyRelevantTransformation("ShellL"); + ResourceManager.shotty.renderPart("ShellL"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("ShellR"); + ResourceManager.shotty.renderPart("ShellR"); GL11.glPopMatrix(); } - GL11.glPopMatrix(); - - ResourceManager.shotty.renderPart(handle); - break; case EQUIPPED: - GL11.glRotatef(-80F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-170F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-10F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-10F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.5F, 0.0F, -0.4F); + GL11.glTranslatef(-0.4F, 0.0F, -0.5F); GL11.glScaled(0.35, 0.35, 0.35); - ResourceManager.shotty.renderPart(handle); - ResourceManager.shotty.renderPart(barrel); + ResourceManager.shotty.renderPart("Body"); + ResourceManager.shotty.renderPart("Barrel"); break; case ENTITY: GL11.glScaled(0.5, 0.5, 0.5); - GL11.glTranslatef(-1.0F, 0.2F, 0.0F); - ResourceManager.shotty.renderPart(handle); - ResourceManager.shotty.renderPart(barrel); + GL11.glTranslatef(0.0F, 0.2F, 0.0F); + ResourceManager.shotty.renderPart("Body"); + ResourceManager.shotty.renderPart("Barrel"); break; default: break; diff --git a/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json b/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json new file mode 100644 index 000000000..a03ff1ab5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Barrel": {"rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [-60.019016916301425, 583.3333333333334, "CONSTANT"], [0.0, 816.6666666666666, "CONSTANT"]]}}, "Body": {"location": {"x": [[0.0, 0.0], [-0.03072790987789631, 66.66666666666667], [-0.015153210610151291, 50.0], [0.022971127182245255, 49.999999999999986], [0.0, 133.33333333333334], [-0.07112908363342285, 283.33333333333337], [-0.21566513180732727, 166.66666666666663], [-0.30311062932014465, 166.66666666666663], [0.09931233525276184, 200.0000000000001], [0.09931233525276184, 99.99999999999977], [0.1618872582912445, 33.333333333333485], [0.16223274171352386, 33.33333333333326], [0.08028656989336014, 183.33333333333326], [0.0, 150.00000000000023]], "z": [[-0.0, 0.0], [0.6719817519187927, 66.66666666666667], [0.7913707494735718, 50.0], [0.4098809063434601, 49.999999999999986], [-0.0, 133.33333333333334], [-0.0558139905333519, 283.33333333333337], [-0.33660149574279785, 166.66666666666663], [-0.3699745833873749, 166.66666666666663], [-0.27975839376449585, 200.0000000000001], [-0.27975839376449585, 99.99999999999977], [-0.3401995301246643, 33.333333333333485], [-0.3562721014022827, 33.33333333333326], [-0.2893483638763428, 183.33333333333326], [-0.0, 150.00000000000023]], "y": [[0.0, 0.0], [0.04576312005519867, 66.66666666666667], [-0.05352889001369476, 50.0], [0.05586424842476845, 49.999999999999986], [0.0, 133.33333333333334], [-0.19011610746383667, 283.33333333333337], [-0.17373046278953552, 166.66666666666663], [-0.2395477145910263, 166.66666666666663], [-0.318528413772583, 200.0000000000001], [-0.318528413772583, 99.99999999999977], [-0.5854879021644592, 33.333333333333485], [-0.6872552037239075, 33.33333333333326], [-0.08996553719043732, 183.33333333333326], [0.0, 150.00000000000023]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [18.96056586236767, 33.333333333333336, "CONSTANT"], [0.0, 200.0, "CONSTANT"], [4.2845085106836525, 350.0, "CONSTANT"], [-4.00202896208485, 699.9999999999999, "CONSTANT"], [29.908722186758006, 116.66666666666674, "CONSTANT"], [0.0, 216.66666666666674, "CONSTANT"]], "z": [[-0.0, 0.0, "CONSTANT"], [-8.923772777989535, 33.333333333333336, "CONSTANT"], [-0.0, 200.0, "CONSTANT"], [1.6447364460089273, 350.0, "CONSTANT"], [-0.729462122284099, 699.9999999999999, "CONSTANT"], [-10.496272716449585, 116.66666666666674, "CONSTANT"], [-0.0, 216.66666666666674, "CONSTANT"]], "y": [[0.0, 0.0, "CONSTANT"], [1.9835915222433687, 33.333333333333336, "CONSTANT"], [0.0, 200.0, "CONSTANT"], [26.651758433868473, 350.0, "CONSTANT"], [17.920975212198584, 699.9999999999999, "CONSTANT"], [19.204354096865643, 116.66666666666674, "CONSTANT"], [0.0, 216.66666666666674, "CONSTANT"]]}}, "ShellL": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.09376272559165955, 49.999999999999886], [0.1621313840150833, 83.33333333333337], [0.17189833521842957, 33.33333333333337], [0.17189833521842957, 50.0], [-0.25194650888442993, 66.66666666666674], [-0.7040476202964783, 149.9999999999999, "CONSTANT"], [-1.641493320465088, 16.66666666666663], [-0.48360228538513184, 66.66666666666674], [-0.0976385846734047, 66.66666666666674], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [1.188506007194519, 49.999999999999886], [2.0551249980926514, 83.33333333333337], [2.1789276599884033, 33.33333333333337], [2.1789276599884033, 50.0], [0.6366069316864014, 66.66666666666674], [-1.0085352659225464, 149.9999999999999, "CONSTANT"], [-1.0141838788986206, 16.66666666666663], [0.6391998529434204, 66.66666666666674], [1.1903276443481445, 66.66666666666674], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.6720442175865173, 49.999999999999886], [1.162076473236084, 83.33333333333337], [1.2320810556411743, 33.33333333333337], [1.2320810556411743, 50.0], [0.4826660752296448, 66.66666666666674], [-0.3167097568511963, 149.9999999999999, "CONSTANT"], [-1.3532683849334717, 16.66666666666663], [-0.3891531825065613, 66.66666666666674], [-0.0677814781665802, 66.66666666666674], [0.0, 116.66666666666652]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [-5.534420749078115, 166.66666666666663, "CONSTANT"], [7.606445291826578, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663, "CONSTANT"]], "z": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [28.371060481933252, 166.66666666666663, "CONSTANT"], [59.14797655182804, 166.66666666666663, "CONSTANT"], [-0.0, 116.66666666666663, "CONSTANT"]], "y": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [-42.628757647896585, 166.66666666666663, "CONSTANT"], [-85.51808701262917, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663, "CONSTANT"]]}}, "ShellR": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.16738982498645782, 33.33333333333337], [0.3459389805793762, 66.66666666666663], [0.368257611989975, 33.33333333333326], [0.368257611989975, 66.66666666666674], [0.37765786051750183, 66.66666666666663], [0.3922804296016693, 116.66666666666663, "CONSTANT"], [-1.7031582593917847, 16.66666666666663], [-0.576391339302063, 66.66666666666674], [-0.20080244541168213, 66.66666666666674], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [0.7584316730499268, 33.33333333333337], [1.5674254894256592, 66.66666666666663], [1.668549656867981, 33.33333333333326], [1.668549656867981, 66.66666666666674], [0.5923407077789307, 66.66666666666663], [-1.0817619562149048, 116.66666666666663, "CONSTANT"], [-1.004889726638794, 16.66666666666663], [0.6418739557266235, 66.66666666666674], [1.1907953023910522, 66.66666666666674], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.45365622639656067, 33.33333333333337], [0.9375561475753784, 66.66666666666663], [0.9980437159538269, 33.33333333333326], [0.9980437159538269, 66.66666666666674], [0.2533489465713501, 66.66666666666663], [-0.9050651788711548, 116.66666666666663, "CONSTANT"], [-1.431460976600647, 16.66666666666663], [-0.5393484830856323, 66.66666666666674], [-0.24197767674922943, 66.66666666666674], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [7.528320734326326, 133.33333333333326, "CONSTANT"], [45.55883366975119, 166.66666666666663, "CONSTANT"], [0.0, 100.0, "CONSTANT"]], "z": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [-10.561780207005532, 133.33333333333326, "CONSTANT"], [-11.69752028389453, 166.66666666666663, "CONSTANT"], [-0.0, 100.0, "CONSTANT"]], "y": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [18.100727008133102, 133.33333333333326, "CONSTANT"], [65.2065046097911, 166.66666666666663, "CONSTANT"], [0.0, 100.0, "CONSTANT"]]}}}}, "offset": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/supershotty.obj b/src/main/resources/assets/hbm/models/weapons/supershotty.obj index 10a9056da..115506132 100644 --- a/src/main/resources/assets/hbm/models/weapons/supershotty.obj +++ b/src/main/resources/assets/hbm/models/weapons/supershotty.obj @@ -1,1380 +1,7053 @@ -# Blender v2.79 (sub 0) OBJ File: 'shotty3.blend' +# Blender 4.0.1 # www.blender.org -o handle_Cylinder.005 -v -2.245215 0.158745 0.128180 -v -2.083610 0.158745 0.105625 -v -2.083570 0.123570 0.105400 -v -2.245215 0.123570 0.129475 -v -2.083570 0.089745 0.105440 -v -2.245215 0.089745 0.133310 -v -2.083570 0.058575 0.105675 -v -2.245215 0.058575 0.139545 -v -2.083570 0.031250 0.105690 -v -2.245215 0.031250 0.147930 -v -2.083570 0.008830 0.105480 -v -2.245215 0.008830 0.158150 -v -2.083570 -0.007835 0.105365 -v -2.245215 -0.007835 0.174980 -v -2.245215 0.058575 0.359425 -v -2.083565 0.019155 0.389250 -v -2.083565 0.089500 0.389185 -v -2.245215 0.089745 0.365095 -v -2.083570 0.123570 0.389195 -v -2.245215 0.123570 0.368585 -v -2.083570 0.158745 0.389140 -v -2.245215 0.158745 0.369765 -v -2.083565 0.193920 0.389045 -v -2.245215 0.193920 0.368585 -v -2.083565 0.227745 0.388925 -v -2.245215 0.227745 0.365095 -v -2.083565 0.280795 0.389170 -v -2.245215 0.258915 0.359425 -v -2.083565 0.345415 0.388700 -v -2.245215 0.286240 0.351795 -v -2.084215 0.344835 0.340665 -v -2.245215 0.308665 0.337830 -v -2.083950 0.345235 0.297580 -v -2.245215 0.325325 0.311255 -v -2.083415 0.345655 0.273030 -v -2.245215 0.335585 0.277120 -v -2.083095 0.345075 0.247500 -v -2.245215 0.339050 0.240835 -v -2.083255 0.345290 0.221970 -v -2.245215 0.335585 0.204265 -v -2.083665 0.345370 0.192415 -v -2.245215 0.325325 0.174980 -v -2.083815 0.345665 0.144360 -v -2.245215 0.308665 0.158150 -v -2.083565 0.345415 0.106295 -v -2.245215 0.286240 0.147930 -v -2.083570 0.293665 0.105945 -v -2.245215 0.258915 0.139545 -v -2.083565 0.229315 0.105600 -v -2.245215 0.227745 0.133310 -v -2.083610 0.193920 0.105435 -v -2.245215 0.193920 0.129475 -v -2.245215 -0.021560 0.240835 -v -2.245215 -0.018095 0.277120 -v -2.257880 -0.014270 0.275950 -v -2.257140 -0.017450 0.241175 -v -2.260070 -0.004500 0.307830 -v -2.277205 -0.004700 0.306510 -v -2.272960 -0.013340 0.275500 -v -2.310890 0.215395 0.364075 -v -2.303350 0.183845 0.367505 -v -2.328755 0.290990 0.161325 -v -2.332175 0.306595 0.180075 -v -2.263625 0.011105 0.161325 -v -2.268410 0.032035 0.149140 -v -2.280895 0.086630 0.364075 -v -2.274245 0.057535 0.358190 -v -2.334170 0.316205 0.275870 -v -2.332175 0.306595 0.307730 -v -2.288120 0.118200 0.130660 -v -2.295675 0.151025 0.129390 -v -2.303360 0.183840 0.130660 -v -2.245215 -0.007835 0.311255 -v -2.317945 0.244475 0.358190 -v -2.324025 0.270005 0.149140 -v -2.260070 -0.004500 0.180070 -v -2.288120 0.118200 0.367505 -v -2.334855 0.319445 0.241090 -v -2.280895 0.086630 0.134430 -v -2.245215 0.008830 0.337830 -v -2.263625 0.011105 0.332715 -v -2.324020 0.270010 0.348695 -v -2.317960 0.244470 0.140555 -v -2.245215 -0.018095 0.204265 -v -2.257880 -0.014270 0.207535 -v -2.295675 0.151030 0.368665 -v -2.334170 0.316205 0.207520 -v -2.274245 0.057535 0.140555 -v -2.245215 0.031250 0.351795 -v -2.268410 0.032035 0.348695 -v -2.328745 0.290990 0.332680 -v -2.310905 0.215390 0.134430 -v -2.293380 0.028245 0.347430 -v -2.304685 0.051195 0.357490 -v -2.334670 0.039275 0.356620 -v -2.318540 0.020190 0.346145 -v -2.425160 0.287605 0.241335 -v -2.424035 0.284635 0.275285 -v -2.284100 0.009415 0.331025 -v -2.424025 0.284635 0.208735 -v -2.420440 0.275850 0.181795 -v -2.414190 0.261595 0.162635 -v -2.317595 0.077385 0.363595 -v -2.331690 0.105795 0.131155 -v -2.346655 0.135315 0.129890 -v -2.404765 0.242465 0.149850 -v -2.331685 0.105795 0.367050 -v -2.317595 0.077385 0.134900 -v -2.392360 0.219365 0.141035 -v -2.346635 0.135315 0.368205 -v -2.304685 0.051195 0.141035 -v -2.377830 0.193145 0.134900 -v -2.362140 0.164810 0.367050 -v -2.293380 0.028245 0.149840 -v -2.362190 0.164810 0.131155 -v -2.377780 0.193160 0.363595 -v -2.284100 0.009415 0.162600 -v -2.392330 0.219400 0.357480 -v -2.277205 -0.004700 0.181745 -v -2.404755 0.242495 0.347390 -v -2.272960 -0.013340 0.208720 -v -2.414195 0.261615 0.330925 -v -2.271525 -0.016590 0.241400 -v -2.420445 0.275850 0.306355 -v -2.373370 0.084670 0.366535 -v -2.395125 0.109190 0.367700 -v -2.436870 0.075925 0.367315 -v -2.409540 0.057335 0.366145 -v -2.496990 0.215000 0.163960 -v -2.505790 0.227305 0.183430 -v -2.353125 0.061055 0.362960 -v -2.373385 0.084670 0.131695 -v -2.395175 0.109190 0.130440 -v -2.483195 0.198680 0.150735 -v -2.353130 0.061055 0.135440 -v -2.464430 0.179100 0.141680 -v -2.334670 0.039275 0.141675 -v -2.441935 0.157215 0.135440 -v -2.418275 0.133670 0.366535 -v -2.318540 0.020190 0.150700 -v -2.418340 0.133645 0.131695 -v -2.441905 0.157295 0.362955 -v -2.305300 0.004540 0.163870 -v -2.464475 0.179220 0.356590 -v -2.295465 -0.007075 0.183265 -v -2.483310 0.198820 0.346060 -v -2.289410 -0.014450 0.209755 -v -2.497105 0.215085 0.329195 -v -2.287360 -0.016725 0.241615 -v -2.505870 0.227345 0.305040 -v -2.289410 -0.014450 0.274915 -v -2.510480 0.234875 0.274725 -v -2.295465 -0.007075 0.305320 -v -2.511905 0.237410 0.241575 -v -2.305300 0.004540 0.329390 -v -2.510455 0.234875 0.209885 -v -2.496840 0.112550 0.362510 -v -2.526090 0.129540 0.355865 -v -2.573820 0.075965 0.355650 -v -2.539885 0.064000 0.362365 -v -2.361325 0.022930 0.142115 -v -2.384290 0.039440 0.135840 -v -2.496675 0.112355 0.135845 -v -2.525675 0.129215 0.142130 -v -2.466210 0.094535 0.366145 -v -2.341245 0.008465 0.151405 -v -2.466200 0.094445 0.132115 -v -2.324775 -0.003380 0.164895 -v -2.436895 0.075905 0.130870 -v -2.312535 -0.012145 0.184345 -v -2.550835 0.144800 0.344950 -v -2.304995 -0.017540 0.210550 -v -2.568720 0.157715 0.327975 -v -2.302450 -0.019445 0.241820 -v -2.579735 0.167355 0.303940 -v -2.304995 -0.017540 0.274415 -v -2.585340 0.173315 0.274195 -v -2.312535 -0.012145 0.304280 -v -2.587000 0.175325 0.241875 -v -2.324775 -0.003380 0.328250 -v -2.585225 0.173280 0.210815 -v -2.341245 0.008465 0.345105 -v -2.579480 0.167240 0.184605 -v -2.361325 0.022930 0.355915 -v -2.568285 0.157470 0.165055 -v -2.384285 0.039440 0.362520 -v -2.409565 0.057335 0.132115 -v -2.550295 0.144445 0.151465 -v -2.624000 0.096080 0.327425 -v -2.637145 0.102970 0.303510 -v -2.680100 0.036580 0.303450 -v -2.665575 0.032360 0.327345 -v -2.329500 -0.021635 0.184820 -v -2.343475 -0.015670 0.165270 -v -2.602840 0.086885 0.344550 -v -2.320880 -0.025275 0.210885 -v -2.317970 -0.026500 0.241855 -v -2.320880 -0.025275 0.274210 -v -2.643805 0.107155 0.274010 -v -2.329500 -0.021635 0.303870 -v -2.645725 0.108520 0.241955 -v -2.343475 -0.015670 0.327750 -v -2.643600 0.107085 0.211190 -v -2.362290 -0.007585 0.344720 -v -2.636580 0.102745 0.185140 -v -2.385220 0.002305 0.355710 -v -2.622985 0.095600 0.165460 -v -2.411460 0.013595 0.362380 -v -2.440255 0.025845 0.132265 -v -2.471335 0.038550 0.131020 -v -2.601640 0.086315 0.151680 -v -2.440255 0.025850 0.366010 -v -2.411460 0.013595 0.135985 -v -2.572805 0.075395 0.142275 -v -2.471360 0.038600 0.367175 -v -2.385220 0.002305 0.142255 -v -2.539275 0.063625 0.135985 -v -2.504810 0.051430 0.366005 -v -2.362290 -0.007585 0.151605 -v -2.504620 0.051275 0.132265 -v -2.689720 0.039905 0.241960 -v -2.687215 0.038980 0.211245 -v -2.720295 -0.029960 0.211250 -v -2.722895 -0.029515 0.241960 -v -2.341355 -0.041420 0.274155 -v -2.338215 -0.042140 0.241865 -v -2.687555 0.039085 0.273985 -v -2.350585 -0.039260 0.303760 -v -2.365580 -0.035710 0.327610 -v -2.385740 -0.030870 0.344640 -v -2.679215 0.036280 0.185220 -v -2.410390 -0.024955 0.355675 -v -2.664055 0.031855 0.165515 -v -2.438600 -0.018195 0.362360 -v -2.469535 -0.010870 0.132285 -v -2.502665 -0.003240 0.131045 -v -2.640540 0.025890 0.151705 -v -2.469540 -0.010855 0.365990 -v -2.438595 -0.018195 0.136005 -v -2.609750 0.019135 0.142290 -v -2.502755 -0.003180 0.367155 -v -2.410390 -0.024955 0.142275 -v -2.574350 0.011900 0.136005 -v -2.538265 0.004605 0.365985 -v -2.385740 -0.030870 0.151640 -v -2.537865 0.004395 0.132285 -v -2.575285 0.012325 0.362350 -v -2.365580 -0.035710 0.165355 -v -2.611405 0.019775 0.355625 -v -2.350585 -0.039260 0.184950 -v -2.642450 0.026640 0.344495 -v -2.341355 -0.041420 0.210975 -v -2.368935 -0.070295 0.211070 -v -2.365740 -0.070650 0.241905 -v -2.398255 -0.114585 0.241930 -v -2.401490 -0.114465 0.211165 -v -2.414465 -0.065095 0.344580 -v -2.393785 -0.067485 0.327510 -v -2.712000 -0.031335 0.185230 -v -2.439825 -0.062165 0.355650 -v -2.696495 -0.033650 0.165520 -v -2.468975 -0.058825 0.362355 -v -2.500910 -0.055200 0.132290 -v -2.534955 -0.051425 0.131045 -v -2.672975 -0.036695 0.151705 -v -2.500920 -0.055190 0.365985 -v -2.468980 -0.058825 0.136005 -v -2.642315 -0.040205 0.142295 -v -2.535055 -0.051380 0.367150 -v -2.439825 -0.062165 0.142285 -v -2.607155 -0.043890 0.136005 -v -2.571110 -0.047480 0.365985 -v -2.414465 -0.065095 0.151670 -v -2.570675 -0.047625 0.132290 -v -2.608335 -0.043540 0.362350 -v -2.393785 -0.067485 0.165420 -v -2.644255 -0.039670 0.355625 -v -2.378430 -0.069240 0.185050 -v -2.675285 -0.036140 0.344490 -v -2.698435 -0.033180 0.327340 -v -2.713095 -0.031095 0.303445 -v -2.368935 -0.070295 0.274090 -v -2.720715 -0.029885 0.273985 -v -2.378430 -0.069240 0.303650 -v -2.410975 -0.114090 0.303540 -v -2.426300 -0.113465 0.327415 -v -2.458510 -0.173580 0.327360 -v -2.443140 -0.173625 0.303475 -v -2.739505 -0.100195 0.303445 -v -2.725695 -0.100945 0.327340 -v -2.401490 -0.114465 0.274040 -v -2.746610 -0.099795 0.273985 -v -2.748690 -0.099680 0.241960 -v -2.746135 -0.099850 0.211250 -v -2.447080 -0.112615 0.344525 -v -2.738270 -0.100335 0.185230 -v -2.472550 -0.111570 0.355630 -v -2.723695 -0.101200 0.165520 -v -2.501970 -0.110385 0.362350 -v -2.534275 -0.109090 0.132290 -v -2.568515 -0.107750 0.131045 -v -2.701685 -0.102360 0.151705 -v -2.534275 -0.109090 0.365985 -v -2.501970 -0.110385 0.136005 -v -2.672905 -0.103695 0.142295 -v -2.568610 -0.107735 0.367150 -v -2.472550 -0.111570 0.142290 -v -2.639480 -0.105030 0.136005 -v -2.604365 -0.106320 0.365985 -v -2.447080 -0.112615 0.151695 -v -2.603955 -0.106395 0.132290 -v -2.640600 -0.104870 0.362350 -v -2.426300 -0.113465 0.165475 -v -2.674890 -0.103405 0.355625 -v -2.410975 -0.114090 0.185145 -v -2.704070 -0.102030 0.344490 -v -2.504705 -0.173425 0.355625 -v -2.534175 -0.173325 0.362345 -v -2.561465 -0.245870 0.362340 -v -2.531895 -0.245545 0.355615 -v -2.766820 -0.172195 0.211250 -v -2.769175 -0.172180 0.241960 -v -2.479140 -0.173510 0.344500 -v -2.759610 -0.172255 0.185230 -v -2.746520 -0.172355 0.165520 -v -2.566525 -0.173220 0.132290 -v -2.600680 -0.173110 0.131045 -v -2.726895 -0.172540 0.151705 -v -2.566530 -0.173220 0.365985 -v -2.534170 -0.173325 0.136005 -v -2.700765 -0.172705 0.142295 -v -2.600740 -0.173110 0.367150 -v -2.504705 -0.173425 0.142295 -v -2.669600 -0.172870 0.136005 -v -2.635895 -0.172985 0.365985 -v -2.479140 -0.173510 0.151705 -v -2.635545 -0.172995 0.132290 -v -2.670530 -0.172815 0.362345 -v -2.458510 -0.173580 0.165510 -v -2.702445 -0.172605 0.355625 -v -2.443140 -0.173625 0.185205 -v -2.728970 -0.172400 0.344490 -v -2.433680 -0.173650 0.211220 -v -2.748375 -0.172235 0.327335 -v -2.430485 -0.173660 0.241950 -v -2.760725 -0.172180 0.303445 -v -2.433680 -0.173650 0.274005 -v -2.767315 -0.172170 0.273985 -v -2.627855 -0.246590 0.367145 -v -2.662210 -0.246955 0.365980 -v -2.680530 -0.323325 0.365945 -v -2.646840 -0.322830 0.367110 -v -2.593845 -0.246225 0.132295 -v -2.627815 -0.246590 0.131050 -v -2.746930 -0.247870 0.151715 -v -2.764405 -0.248090 0.165540 -v -2.593850 -0.246225 0.365980 -v -2.561465 -0.245870 0.136015 -v -2.723555 -0.247610 0.142300 -v -2.531895 -0.245545 0.142300 -v -2.694620 -0.247300 0.136015 -v -2.506285 -0.245260 0.151715 -v -2.662000 -0.246955 0.132295 -v -2.695275 -0.247295 0.362340 -v -2.485385 -0.245025 0.165540 -v -2.724765 -0.247580 0.355615 -v -2.469975 -0.244850 0.185250 -v -2.748490 -0.247820 0.344470 -v -2.460440 -0.244745 0.211260 -v -2.765825 -0.248035 0.327315 -v -2.457185 -0.244705 0.241965 -v -2.776960 -0.248215 0.303425 -v -2.460440 -0.244745 0.273980 -v -2.783015 -0.248350 0.273975 -v -2.469975 -0.244850 0.303435 -v -2.784850 -0.248405 0.241965 -v -2.485385 -0.245025 0.327315 -v -2.782590 -0.248370 0.211270 -v -2.506285 -0.245260 0.344470 -v -2.775980 -0.248260 0.185250 -v -2.739545 -0.324225 0.355545 -v -2.761295 -0.324590 0.344365 -v -2.766970 -0.389980 0.343985 -v -2.746660 -0.389585 0.355270 -v -2.525160 -0.321030 0.151785 -v -2.551020 -0.321415 0.142345 -v -2.680390 -0.323325 0.132335 -v -2.711730 -0.323795 0.136050 -v -2.712140 -0.323795 0.362300 -v -2.504070 -0.320715 0.165645 -v -2.646815 -0.322830 0.131095 -v -2.488410 -0.320480 0.185375 -v -2.478730 -0.320335 0.211360 -v -2.776860 -0.324900 0.327185 -v -2.475475 -0.320285 0.241990 -v -2.787265 -0.325140 0.303320 -v -2.478730 -0.320335 0.273925 -v -2.793120 -0.325300 0.273925 -v -2.488410 -0.320480 0.303320 -v -2.794845 -0.325360 0.241995 -v -2.504070 -0.320715 0.327190 -v -2.792645 -0.325315 0.211360 -v -2.525160 -0.321030 0.344365 -v -2.786375 -0.325165 0.185375 -v -2.551020 -0.321415 0.355545 -v -2.775710 -0.324930 0.165645 -v -2.580715 -0.321855 0.362300 -v -2.613070 -0.322335 0.132335 -v -2.760155 -0.324610 0.151785 -v -2.613070 -0.322335 0.365945 -v -2.580715 -0.321855 0.136050 -v -2.738720 -0.324230 0.142345 -v -2.791750 -0.390555 0.302955 -v -2.797520 -0.390710 0.273760 -v -2.798095 -0.424740 0.273375 -v -2.792355 -0.424585 0.302120 -v -2.488715 -0.385535 0.211665 -v -2.498450 -0.385685 0.185785 -v -2.781815 -0.390305 0.326750 -v -2.485410 -0.385485 0.242075 -v -2.488715 -0.385535 0.273760 -v -2.498450 -0.385685 0.302955 -v -2.799250 -0.390765 0.242075 -v -2.514260 -0.385930 0.326750 -v -2.796890 -0.390715 0.211665 -v -2.535520 -0.386260 0.343985 -v -2.790740 -0.390565 0.185785 -v -2.561505 -0.386660 0.355270 -v -2.780610 -0.390320 0.166020 -v -2.591205 -0.387115 0.362110 -v -2.623485 -0.387610 0.132490 -v -2.656955 -0.388125 0.131250 -v -2.765945 -0.389990 0.152060 -v -2.623495 -0.387610 0.365795 -v -2.591205 -0.387115 0.136205 -v -2.745940 -0.389590 0.142535 -v -2.656995 -0.388125 0.366965 -v -2.561505 -0.386660 0.142535 -v -2.720250 -0.389135 0.136205 -v -2.690035 -0.388640 0.365795 -v -2.535520 -0.386260 0.152060 -v -2.689895 -0.388640 0.132490 -v -2.720640 -0.389135 0.362110 -v -2.514260 -0.385930 0.166020 -v -2.502665 -0.419725 0.302120 -v -2.492935 -0.419575 0.273375 -v -2.799725 -0.424790 0.242275 -v -2.518435 -0.419970 0.325740 -v -2.797415 -0.424740 0.212370 -v -2.539675 -0.420295 0.343060 -v -2.791150 -0.424590 0.186730 -v -2.565555 -0.420695 0.354580 -v -2.781160 -0.424345 0.166920 -v -2.595125 -0.421150 0.361620 -v -2.627160 -0.421645 0.132875 -v -2.660250 -0.422155 0.131635 -v -2.766780 -0.424015 0.152750 -v -2.627180 -0.421645 0.365405 -v -2.595120 -0.421150 0.136615 -v -2.747275 -0.423620 0.143030 -v -2.660330 -0.422155 0.366605 -v -2.565555 -0.420695 0.143030 -v -2.722250 -0.423165 0.136615 -v -2.692870 -0.422670 0.365405 -v -2.539675 -0.420295 0.152750 -v -2.692660 -0.422670 0.132875 -v -2.722680 -0.423165 0.361620 -v -2.518435 -0.419970 0.166920 -v -2.748050 -0.423620 0.354580 -v -2.502665 -0.419725 0.186730 -v -2.767910 -0.424015 0.343060 -v -2.492935 -0.419575 0.212370 -v -2.782400 -0.424340 0.325735 -v -2.489645 -0.419525 0.242275 -v -1.762300 0.345415 0.036535 -v -1.762300 -0.029775 0.036535 -v -2.005025 -0.029775 0.106295 -v -2.005025 0.345415 0.106295 -v -2.005025 0.345415 0.388700 -v -1.762300 0.345415 0.458465 -v -1.256330 0.345415 0.458465 -v -1.256330 0.344275 0.036535 -v -2.005025 -0.029775 0.388700 -v -1.762300 -0.029775 0.458465 -v -2.083565 -0.029775 0.388700 -v -2.083565 -0.029775 0.106295 -v -1.242615 -0.029775 0.036535 -v -1.242615 -0.029775 0.458465 -v -1.242615 0.528295 0.036535 -v -1.242615 0.528295 0.458465 -v -1.996305 0.397485 0.159635 -v -1.996305 0.338465 0.159745 -v -1.996305 0.346050 0.127420 -v -1.996305 0.397715 0.127420 -v -1.209905 0.526990 0.036535 -v -1.192005 0.528295 0.458465 -v -1.237005 0.527575 0.458075 -v -1.237005 0.610485 0.458075 -v -1.237005 0.610485 0.036925 -v -1.237005 0.527970 0.036925 -v -1.101375 0.636010 0.068310 -v -0.701100 0.674165 0.119505 -v -0.701100 0.526745 0.119505 -v -1.104905 0.526745 0.036925 -v -0.701100 0.674165 0.192190 -v -0.701100 0.674165 0.291950 -v -0.701100 0.674165 0.375495 -v -0.701100 0.526745 0.375495 -v -1.101375 0.636010 0.426685 -v -1.104905 0.526745 0.458075 -v -0.717595 0.674165 0.291950 -v -0.728800 0.674165 0.279145 -v -0.900040 0.674165 0.279145 -v -0.900040 0.674165 0.207660 -v -0.729865 0.674165 0.207660 -v -0.712795 0.674165 0.192190 -v -0.712795 0.666440 0.192190 -v -0.701100 0.666440 0.192190 -v -0.729865 0.666440 0.207660 -v -0.900040 0.666440 0.207660 -v -0.900040 0.666440 0.279145 -v -0.728800 0.666440 0.279145 -v -0.717595 0.666440 0.291950 -v -0.701100 0.666440 0.291950 -v -1.283710 0.571260 0.458075 -v -1.283710 0.571260 0.036925 -v -1.304040 0.527410 0.444625 -v -1.304040 0.527410 0.049260 -v -1.559855 0.322705 0.424470 -v -1.559855 0.522335 0.424470 -v -1.561210 0.524040 0.335985 -v -1.561150 0.523945 0.159015 -v -1.559855 0.522335 0.070530 -v -1.559855 0.322705 0.070530 -v -1.996305 0.397715 0.367580 -v -1.697225 0.397715 0.424470 -v -1.697225 0.345140 0.424470 -v -1.996305 0.346420 0.367580 -v -1.697225 0.345830 0.070530 -v -1.697225 0.397715 0.070530 -v -1.594875 0.497885 0.070530 -v -1.630775 0.466715 0.070530 -v -1.630880 0.466880 0.424470 -v -1.594910 0.497935 0.424470 -v -1.606540 0.512635 0.335985 -v -1.606015 0.511820 0.159015 -v -1.941475 0.397940 0.161510 -v -1.923820 0.398010 0.170110 -v -1.923820 0.338760 0.170110 -v -1.941475 0.338690 0.161510 -v -1.649535 0.490555 0.335985 -v -1.648690 0.489250 0.159015 -v -1.888280 0.398155 0.283115 -v -1.897200 0.398120 0.299205 -v -1.897200 0.338870 0.299205 -v -1.888280 0.338905 0.283115 -v -1.909200 0.398070 0.313310 -v -1.909200 0.338820 0.313310 -v -1.923820 0.398010 0.324885 -v -1.923820 0.338760 0.324885 -v -1.996305 0.397485 0.335365 -v -1.996305 0.338465 0.367580 -v -1.996305 0.338010 0.335475 -v -1.996305 0.392625 0.336205 -v -1.698450 0.399255 0.335985 -v -1.698395 0.399170 0.159015 -v -1.941475 0.397940 0.333485 -v -1.989480 0.338495 0.336850 -v -1.941475 0.338690 0.333485 -v -1.909200 0.398070 0.181685 -v -1.909200 0.338820 0.181685 -v -1.897200 0.398120 0.195790 -v -1.897200 0.338870 0.195790 -v -1.888280 0.398155 0.211880 -v -1.888280 0.338905 0.211880 -v -1.882715 0.398180 0.229340 -v -1.882715 0.338930 0.229340 -v -1.880905 0.398185 0.247500 -v -1.880905 0.338935 0.247500 -v -1.882715 0.398180 0.265655 -v -1.882715 0.338930 0.265655 -v -1.973310 0.338795 0.304950 -v -1.972210 0.334765 0.292635 -v -1.957810 0.335285 0.292635 -v -1.949415 0.340540 0.304950 -v -1.972210 0.334765 0.202360 -v -1.973310 0.338795 0.190050 -v -1.950425 0.340540 0.190050 -v -1.957810 0.335285 0.202360 -v -1.980085 0.344055 0.315050 -v -1.957335 0.345080 0.315050 -v -1.972210 0.331770 0.216410 -v -1.957705 0.332345 0.216410 -v -1.970825 0.349310 0.322560 -v -1.972210 0.329925 0.231650 -v -1.956815 0.330540 0.231650 -v -1.972210 0.329305 0.247500 -v -1.956510 0.329925 0.247500 -v -1.972210 0.329925 0.263350 -v -1.956815 0.330540 0.263350 -v -1.978855 0.349550 0.172440 -v -1.972360 0.361715 0.166255 -v -1.959315 0.350255 0.172440 -v -1.972210 0.331770 0.278590 -v -1.957705 0.332345 0.278590 -v -1.981730 0.344055 0.179945 -v -1.961540 0.344055 0.179945 -v -1.943760 0.334050 0.278590 -v -1.946605 0.336815 0.292635 -v -1.946605 0.336815 0.202360 -v -1.943760 0.334050 0.216410 -v -1.952490 0.351400 0.322560 -v -1.942010 0.332345 0.231650 -v -1.973400 0.361715 0.328745 -v -1.959770 0.358860 0.327185 -v -1.941415 0.331770 0.247500 -v -1.942010 0.332345 0.263350 -v -1.962295 0.355870 0.167815 -v -1.928365 0.335285 0.231650 -v -1.927505 0.334765 0.247500 -v -1.928365 0.335285 0.263350 -v -1.930910 0.336815 0.278590 -v -1.949645 0.346740 0.179945 -v -1.935230 0.339305 0.292635 -v -1.936280 0.339305 0.202360 -v -1.930910 0.336815 0.216410 -v -1.936820 0.351710 0.179945 -v -1.931855 0.345510 0.190050 -v -1.916730 0.346740 0.292635 -v -1.927515 0.348980 0.304950 -v -1.924120 0.342660 0.202360 -v -1.940750 0.348980 0.315050 -v -1.918775 0.340540 0.216410 -v -1.916405 0.339235 0.231650 -v -1.915315 0.338795 0.247500 -v -1.916405 0.339235 0.263350 -v -1.917725 0.340540 0.278590 -v -1.905725 0.344055 0.231650 -v -1.905305 0.343705 0.247500 -v -1.905725 0.344055 0.263350 -v -1.948460 0.354825 0.172440 -v -1.905000 0.350255 0.278590 -v -1.920920 0.352945 0.190050 -v -1.911285 0.351400 0.202360 -v -1.932430 0.354825 0.315050 -v -1.904495 0.350255 0.216410 -v -1.907905 0.356455 0.292635 -v -1.919285 0.357240 0.304950 -v -1.943575 0.356965 0.322560 -v -1.899105 0.349550 0.231650 -v -1.897675 0.349310 0.247500 -v -1.899105 0.349550 0.263350 -v -1.942935 0.361715 0.172440 -v -1.893530 0.361715 0.247500 -v -1.895040 0.361715 0.263350 -v -1.900150 0.361715 0.278590 -v -1.929300 0.361715 0.179945 -v -1.916935 0.361715 0.190050 -v -1.907210 0.361715 0.202360 -v -1.899990 0.361715 0.216410 -v -1.895040 0.361715 0.231650 -v -1.929670 0.361715 0.315050 -v -1.972430 0.387445 0.177475 -v -1.951075 0.389570 0.181535 -v -1.904260 0.388955 0.261430 -v -1.910575 0.393620 0.274820 -v -1.936060 0.389570 0.188135 -v -1.916885 0.392605 0.287165 -v -1.925810 0.391235 0.197015 -v -1.925620 0.391235 0.297985 -v -1.917645 0.392605 0.207835 -v -1.939700 0.392330 0.306865 -v -1.910575 0.393620 0.220175 -v -1.949980 0.387665 0.313460 -v -1.904260 0.388955 0.233570 -v -1.972035 0.387445 0.317525 -v -1.901625 0.389065 0.247500 -v -1.914780 0.400455 0.233570 -v -1.909610 0.397785 0.247500 -v -1.914780 0.400455 0.261430 -v -1.924485 0.399935 0.274820 -v -1.928625 0.399090 0.287165 -v -1.937095 0.399715 0.197015 -v -1.931590 0.397955 0.297985 -v -1.933060 0.401165 0.207835 -v -1.920065 0.399935 0.220175 -v -1.955820 0.392605 0.313460 -v -1.921975 0.403120 0.247500 -v -1.936975 0.404125 0.220175 -v -1.934300 0.404905 0.233570 -v -1.932805 0.404905 0.261430 -v -1.961005 0.393620 0.181535 -v -1.945940 0.397955 0.188135 -v -1.972900 0.406685 0.243215 -v -1.947545 0.401165 0.297985 -v -1.960230 0.399935 0.188135 -v -1.938335 0.404125 0.274820 -v -1.957475 0.402235 0.197015 -v -1.950695 0.399090 0.306865 -v -1.936395 0.405165 0.247500 -v -1.964100 0.402900 0.297985 -v -1.964410 0.400455 0.306865 -v -1.977550 0.396980 0.182390 -v -1.981800 0.400455 0.306865 -v -1.978945 0.400455 0.188135 -v -1.979250 0.402900 0.197015 -v -1.980435 0.402900 0.297985 -v -1.992995 0.399090 0.188135 -v -1.995525 0.401165 0.197015 -v -1.995040 0.401165 0.297985 -v -1.985260 0.393620 0.313460 -v -1.999060 0.397955 0.306865 -v -2.017980 0.402900 0.233570 -v -2.010790 0.405165 0.247500 -v -2.017160 0.402900 0.261430 -v -1.992800 0.389570 0.181535 -v -2.016035 0.402235 0.274820 -v -2.023035 0.403120 0.247500 -v -2.012570 0.397955 0.297985 -v -2.015905 0.399090 0.207835 -v -2.020135 0.399935 0.220175 -v -1.996460 0.385600 0.313460 -v -2.006550 0.392330 0.188135 -v -2.014880 0.399090 0.287165 -v -2.012825 0.397955 0.197015 -v -2.035665 0.397665 0.261430 -v -2.035550 0.388635 0.274820 -v -2.028525 0.392605 0.287165 -v -2.018940 0.391235 0.197015 -v -2.021115 0.387420 0.297985 -v -2.028165 0.392605 0.207835 -v -2.010350 0.386570 0.306865 -v -2.036370 0.388635 0.220175 -v -2.035665 0.397665 0.233570 -v -2.036430 0.397785 0.247500 -v -2.041435 0.388955 0.233570 -v -2.042795 0.389065 0.247500 -v -2.041435 0.388955 0.261430 -v -2.049375 0.361715 0.263350 -v -2.044900 0.361715 0.278590 -v -2.002635 0.361715 0.172440 -v -2.015180 0.361715 0.179945 -v -2.037205 0.361715 0.292635 -v -2.027485 0.361715 0.190050 -v -2.027845 0.361715 0.304950 -v -2.037205 0.361715 0.202360 -v -2.015920 0.361715 0.315050 -v -2.044900 0.361715 0.216410 -v -2.003040 0.361715 0.322560 -v -2.049375 0.361715 0.231650 -v -1.985785 0.358860 0.327185 -v -2.050890 0.361715 0.247500 -v -1.985200 0.358860 0.167815 -v -2.039925 0.350255 0.278590 -v -2.033135 0.351400 0.292635 -v -2.011770 0.354825 0.179945 -v -2.024020 0.352945 0.190050 -v -2.024020 0.352945 0.304950 -v -2.033135 0.351400 0.202360 -v -2.011085 0.354825 0.315050 -v -2.039925 0.350255 0.216410 -v -2.045310 0.349550 0.231650 -v -2.046745 0.349310 0.247500 -v -2.045310 0.349550 0.263350 -v -1.997450 0.354825 0.322560 -v -2.038695 0.344055 0.231650 -v -2.039115 0.343705 0.247500 -v -2.038695 0.344055 0.263350 -v -1.997550 0.354825 0.172440 -v -2.002790 0.348980 0.179945 -v -2.011750 0.345510 0.190050 -v -2.020300 0.342660 0.292635 -v -2.011065 0.345510 0.304950 -v -2.020300 0.342660 0.202360 -v -1.997320 0.346740 0.315050 -v -2.025645 0.340540 0.216410 -v -2.028015 0.339235 0.231650 -v -2.029105 0.338795 0.247500 -v -2.028015 0.339235 0.263350 -v -2.025645 0.340540 0.278590 -v -2.016055 0.335285 0.231650 -v -2.016915 0.334765 0.247500 -v -2.016055 0.335285 0.263350 -v -2.013510 0.336815 0.278590 -v -2.010470 0.339305 0.292635 -v -2.010470 0.339305 0.202360 -v -2.013510 0.336815 0.216410 -v -1.997815 0.336815 0.292635 -v -1.992665 0.340540 0.304950 -v -1.992050 0.340540 0.190050 -v -1.997815 0.336815 0.202360 -v -2.000660 0.334050 0.216410 -v -1.984250 0.350255 0.322560 -v -2.002410 0.332345 0.231650 -v -2.003000 0.331770 0.247500 -v -2.002410 0.332345 0.263350 -v -2.000660 0.334050 0.278590 -v -1.987910 0.329925 0.247500 -v -1.987605 0.330540 0.263350 -v -1.986715 0.332345 0.278590 -v -1.986610 0.335285 0.292635 -v -1.986610 0.335285 0.202360 -v -1.986715 0.332345 0.216410 -v -1.987605 0.330540 0.231650 -v -2.269235 0.347550 0.235480 -v -2.269235 0.347600 0.259715 -v -2.117450 0.385435 0.267245 -v -2.117450 0.385920 0.230835 -v -2.026840 0.345165 0.222180 -v -2.026890 0.378580 0.222260 -v -2.026890 0.378355 0.274560 -v -2.026840 0.344905 0.274480 -v -2.317485 0.362090 0.260315 -v -2.376175 0.340810 0.260315 -v -2.376175 0.304590 0.260315 -v -2.376175 0.304590 0.234690 -v -2.317485 0.362090 0.234690 -v -2.376175 0.340810 0.234690 -v -2.506960 -0.250935 0.300235 -v -2.506960 -0.008795 0.300235 -v -2.505510 -0.003690 0.194765 -v -2.506960 -0.250935 0.194765 -v -2.216500 0.014335 0.194765 -v -2.351800 -0.058250 0.194765 -v -2.408370 -0.137535 0.194765 -v -2.418475 -0.163915 0.194765 -v -2.395900 -0.180515 0.194765 -v -2.244870 -0.205020 0.194765 -v -1.528665 -0.186320 0.194765 -v -1.427845 -0.163555 0.194765 -v -1.402640 -0.141600 0.194765 -v -1.374995 -0.054600 0.194765 -v -1.382020 -0.025535 0.194765 -v -1.222115 -0.016790 0.194765 -v -1.222115 -0.143445 0.194765 -v -1.237290 -0.178805 0.194765 -v -1.270295 -0.218090 0.194765 -v -1.324510 -0.250935 0.194765 -v -1.222115 -0.142655 0.300235 -v -1.236505 -0.177230 0.300235 -v -1.324510 -0.250935 0.300235 -v -1.382020 -0.025535 0.300235 -v -1.222115 -0.016790 0.300235 -v -2.216500 0.014335 0.300235 -v -2.243670 -0.205120 0.300235 -v -1.527205 -0.186385 0.300235 -v -2.396485 -0.180745 0.300235 -v -2.406905 -0.137210 0.300235 -v -2.418035 -0.163865 0.300235 -v -1.401925 -0.140725 0.300235 -v -1.373825 -0.056425 0.300235 -v -1.428855 -0.165310 0.300235 -v -2.351070 -0.058090 0.300235 -v -1.271080 -0.219665 0.300235 -v -2.326100 -0.065320 0.226280 -v -2.308950 -0.123340 0.226280 -v -2.308845 -0.124235 0.268720 -v -2.326280 -0.065505 0.268720 -v -2.266235 -0.160670 0.226280 -v -2.265920 -0.160735 0.268720 -v -2.229115 -0.170110 0.226280 -v -2.229140 -0.170090 0.268720 -v -2.219210 -0.165375 0.226280 -v -2.219180 -0.165835 0.268720 -v -2.226995 -0.151795 0.226280 -v -2.226610 -0.151935 0.268720 -v -2.248190 -0.146450 0.268720 -v -2.248450 -0.146340 0.226280 -v -2.267480 -0.121705 0.268720 -v -2.267865 -0.121460 0.226280 -v -2.285085 -0.075980 0.268720 -v -2.275010 -0.011715 0.268720 -v -2.311665 -0.001875 0.268720 -v -2.284895 -0.075800 0.226280 -v -2.274750 -0.011665 0.226280 -v -2.311780 -0.001885 0.226280 -v -1.011405 0.006605 0.431800 -v -1.011405 0.006605 0.063200 -v -1.011405 -0.039020 0.081790 -v -1.011405 -0.039020 0.413205 -v -1.011405 -0.136895 0.063200 -v -0.030905 -0.015925 0.087135 -v -0.150645 -0.168190 0.087135 -v -0.030905 -0.015925 0.407865 -v -0.151425 -0.167515 0.406835 -v -1.011405 -0.136895 0.431800 -v -1.011405 -0.091270 0.081790 -v -1.277680 -0.088935 0.081790 -v -1.277680 -0.027920 0.081790 -v -1.011405 -0.091270 0.413205 -v -1.277680 -0.088935 0.413205 -v -1.277680 -0.027920 0.413205 -v -1.306860 -0.060780 0.076225 -v -1.306860 -0.060780 0.407640 -v -1.336670 -0.007010 0.076225 -v -1.336670 -0.007010 0.407640 -v -0.151295 -0.169130 0.448130 -v -0.151295 -0.079230 0.448130 -v -0.151295 -0.079230 0.046870 -v -0.151295 -0.169130 0.046870 -v 0.158730 -0.079230 0.046870 -v 0.158730 -0.124180 0.046870 -v 0.158730 -0.169130 0.046870 -v 0.221530 -0.124180 0.247500 -v 0.221530 -0.079230 0.247500 -v 0.158730 -0.053560 0.448130 -v 0.158730 -0.124180 0.448130 -v 0.158730 -0.169130 0.448130 -v 0.221530 -0.169130 0.247500 -v -0.184515 -0.165945 0.407510 -v -0.184060 -0.083075 0.406835 -v -0.179635 -0.079230 0.085680 -v -0.182180 -0.166015 0.087635 -v -0.680755 0.453600 -0.173155 -v -0.746980 0.453600 -0.173130 -v -0.747140 0.364120 -0.192150 -v -0.680755 0.364120 -0.192175 -v -0.680755 0.318380 0.243005 -v -0.747220 0.318380 0.243030 -v -0.747055 0.409860 0.243030 -v -0.680755 0.409860 0.243005 -v -0.747300 0.274640 -0.173130 -v -0.680755 0.274640 -0.173155 -v -0.746910 0.493430 0.205820 -v -0.680755 0.493430 0.205800 -v -0.747435 0.200630 -0.119360 -v -0.680755 0.200630 -0.119385 -v -0.746800 0.554640 0.137840 -v -0.680755 0.554640 0.137815 -v -0.747515 0.154890 -0.040140 -v -0.680755 0.154890 -0.040160 -v -0.746745 0.582910 0.050840 -v -0.680755 0.582910 0.050815 -v -0.747535 0.145330 0.050840 -v -0.680755 0.145330 0.050815 -v -0.746765 0.573345 -0.040140 -v -0.680755 0.573345 -0.040160 -v -0.747480 0.173600 0.137840 -v -0.680755 0.173600 0.137815 -v -0.746845 0.527605 -0.119365 -v -0.680755 0.527605 -0.119385 -v -0.747370 0.234810 0.205820 -v -0.680755 0.234810 0.205800 -v -1.161435 0.453600 -0.172990 -v -1.161435 0.364120 -0.192010 -v -1.222645 0.364120 -0.133315 -v -1.222615 0.430455 -0.119215 -v -1.161435 0.274640 -0.172990 -v -1.222615 0.297785 -0.119215 -v -1.161435 0.200630 -0.119220 -v -1.222535 0.242920 -0.079350 -v -1.161435 0.493430 0.205965 -v -1.161435 0.554640 0.137980 -v -1.222105 0.505360 0.111320 -v -1.221985 0.459980 0.161720 -v -1.161435 0.154890 -0.039995 -v -1.222410 0.209010 -0.020620 -v -1.161435 0.582910 0.050980 -v -1.222260 0.526315 0.046825 -v -1.161435 0.145330 0.050980 -v -1.222260 0.201925 0.046825 -v -1.161435 0.573345 -0.039995 -v -1.222410 0.519225 -0.020620 -v -1.161435 0.173600 0.137980 -v -1.222105 0.222880 0.111320 -v -1.161435 0.527605 -0.119220 -v -1.222535 0.485320 -0.079350 -v -1.161435 0.234810 0.205965 -v -1.221985 0.268255 0.161720 -v -1.161435 0.318380 0.243170 -v -1.221915 0.330210 0.189300 -v -1.247530 0.341030 0.140340 -v -1.247595 0.298840 0.121555 -v -1.248285 0.364120 -0.079355 -v -1.248250 0.409290 -0.069750 -v -1.221915 0.398025 0.189300 -v -1.247530 0.387210 0.140340 -v -1.248250 0.318945 -0.069750 -v -1.247595 0.429400 0.121555 -v -1.248160 0.281585 -0.042605 -v -1.247715 0.460300 0.087235 -v -1.248020 0.258495 -0.002610 -v -1.247865 0.474570 0.043315 -v -1.247865 0.253665 0.043315 -v -1.248020 0.469745 -0.002615 -v -1.247715 0.267940 0.087235 -v -1.248160 0.446655 -0.042605 -v -1.260980 0.391105 -0.027835 -v -1.260965 0.413425 -0.011620 -v -1.260875 0.350325 0.097675 -v -1.260885 0.325120 0.086450 -v -1.260985 0.364120 -0.033575 -v -1.260875 0.377915 0.097675 -v -1.260980 0.337135 -0.027835 -v -1.260885 0.403120 0.086450 -v -1.260965 0.314810 -0.011620 -v -1.260900 0.421580 0.065950 -v -1.260945 0.301020 0.012275 -v -1.260925 0.430105 0.039710 -v -1.260925 0.298135 0.039710 -v -1.260945 0.427220 0.012275 -v -1.260900 0.306660 0.065950 -v -1.275615 0.376445 0.005375 -v -1.275615 0.386640 0.012780 -v -1.275615 0.357820 0.062700 -v -1.275615 0.346305 0.057575 -v -1.275615 0.364120 0.002755 -v -1.275615 0.370420 0.062700 -v -1.275615 0.351795 0.005375 -v -1.275615 0.381930 0.057575 -v -1.275615 0.341600 0.012780 -v -1.275615 0.390365 0.048210 -v -1.275615 0.335300 0.023695 -v -1.275615 0.394255 0.036225 -v -1.275615 0.333980 0.036225 -v -1.275615 0.392940 0.023695 -v -1.275615 0.337875 0.048210 -v -0.679410 0.315780 0.260095 -v -0.679410 0.226205 0.220215 -v -0.679410 0.569005 0.147355 -v -0.679410 0.503395 0.220215 -v -0.679410 0.413825 0.260095 -v -0.679410 0.160600 0.147355 -v -0.679410 0.130300 0.054105 -v -0.736070 0.493430 0.205800 -v -0.738695 0.503395 0.220215 -v -0.738695 0.569005 0.147355 -v -0.736070 0.554640 0.137815 -v -0.679410 0.140550 -0.043405 -v -0.736070 0.409860 0.243005 -v -0.738695 0.413825 0.260095 -v -0.679410 0.189575 -0.128320 -v -0.736070 0.318380 0.243005 -v -0.738695 0.315780 0.260095 -v -0.736070 0.234810 0.205800 -v -0.738695 0.226205 0.220215 -v -0.679410 0.268895 -0.185950 -v -0.736070 0.173600 0.137815 -v -0.738695 0.160600 0.147355 -v -0.679410 0.589055 -0.043405 -v -0.679410 0.599305 0.054105 -v -0.736070 0.145330 0.050815 -v -0.738695 0.130300 0.054105 -v -0.736070 0.154890 -0.040160 -v -0.738695 0.140550 -0.043405 -v -0.736070 0.200630 -0.119385 -v -0.738695 0.189575 -0.128320 -v -0.736070 0.274640 -0.173155 -v -0.738695 0.268895 -0.185950 -v -0.679410 0.364800 -0.206335 -v -0.736070 0.364120 -0.192175 -v -0.738695 0.364800 -0.206335 -v -0.679410 0.460710 -0.185950 -v -0.738695 0.599305 0.054105 -v -0.736070 0.582910 0.050815 -v -0.738695 0.589055 -0.043405 -v -0.736070 0.573345 -0.040165 -v -0.679410 0.540030 -0.128320 -v -0.738695 0.540030 -0.128320 -v -0.736070 0.527605 -0.119385 -v -0.736070 0.453600 -0.173155 -v -0.738695 0.460710 -0.185950 -v -0.773190 0.582910 0.050840 -v -0.773205 0.573345 -0.040140 -v -0.774075 0.587475 -0.044730 -v -0.774055 0.597685 0.052390 -v -0.746495 0.226075 0.217840 -v -0.746335 0.315290 0.257560 -v -0.746560 0.189590 -0.129305 -v -0.746650 0.140760 -0.044730 -v -0.773585 0.364120 -0.192150 -v -0.773745 0.274640 -0.173130 -v -0.774645 0.268595 -0.186705 -v -0.774475 0.364120 -0.207010 -v -0.745880 0.567505 0.145270 -v -0.745825 0.597685 0.052390 -v -0.745845 0.587475 -0.044730 -v -0.773960 0.154890 -0.040140 -v -0.773975 0.145330 0.050840 -v -0.774895 0.130555 0.052390 -v -0.774875 0.140760 -0.044730 -v -0.746665 0.130555 0.052390 -v -0.746610 0.160730 0.145270 -v -0.746245 0.364120 -0.207010 -v -0.746420 0.268595 -0.186705 -v -0.773290 0.527605 -0.119365 -v -0.774160 0.538645 -0.129305 -v -0.746160 0.412945 0.257560 -v -0.746000 0.502160 0.217840 -v -0.773875 0.200630 -0.119360 -v -0.774790 0.189590 -0.129305 -v -0.745935 0.538645 -0.129305 -v -0.774565 0.315290 0.257560 -v -0.774390 0.412945 0.257560 -v -0.774230 0.502160 0.217840 -v -0.774110 0.567505 0.145270 -v -0.774840 0.160730 0.145270 -v -0.774725 0.226075 0.217840 -v -0.746075 0.459640 -0.186705 -v -0.774305 0.459640 -0.186705 -v -0.773420 0.453600 -0.173130 -v -0.773665 0.318380 0.243030 -v -0.773500 0.409860 0.243030 -v -0.773350 0.493430 0.205820 -v -0.773240 0.554640 0.137840 -v -0.773925 0.173600 0.137840 -v -0.773815 0.234810 0.205820 -v -0.788740 0.154305 -0.040330 -v -0.788755 0.144715 0.050905 -v -0.788705 0.173065 0.138150 -v -0.788595 0.234445 0.206320 -v -0.788360 0.364120 -0.192770 -v -0.788525 0.274390 -0.173695 -v -0.788280 0.409985 0.243635 -v -0.788130 0.493790 0.206320 -v -0.787965 0.583520 0.050900 -v -0.787985 0.573935 -0.040330 -v -0.788655 0.200170 -0.119775 -v -0.788020 0.555175 0.138150 -v -0.788065 0.528065 -0.119775 -v -0.788200 0.453850 -0.173695 -v -0.788445 0.318250 0.243635 -v -0.682030 0.445465 0.253085 -v -0.748260 0.445465 0.253105 -v -0.748420 0.355985 0.234085 -v -0.682035 0.355985 0.234065 -v -0.682030 0.310245 0.669245 -v -0.748500 0.310250 0.669265 -v -0.748335 0.401725 0.669265 -v -0.682035 0.401725 0.669245 -v -0.748580 0.266505 0.253105 -v -0.682035 0.266505 0.253085 -v -0.748185 0.485295 0.632060 -v -0.682035 0.485295 0.632035 -v -0.748710 0.192500 0.306875 -v -0.682035 0.192500 0.306855 -v -0.748075 0.546505 0.564080 -v -0.682035 0.546505 0.564055 -v -0.748795 0.146760 0.386100 -v -0.682035 0.146760 0.386075 -v -0.748025 0.574775 0.477075 -v -0.682035 0.574775 0.477055 -v -0.748810 0.137200 0.477075 -v -0.682035 0.137200 0.477055 -v -0.748040 0.565215 0.386100 -v -0.682035 0.565215 0.386075 -v -0.748760 0.165465 0.564080 -v -0.682035 0.165465 0.564055 -v -0.748125 0.519475 0.306875 -v -0.682035 0.519475 0.306855 -v -0.748650 0.226680 0.632060 -v -0.682035 0.226680 0.632035 -v -1.162715 0.445465 0.253250 -v -1.162715 0.355985 0.234230 -v -1.223920 0.355985 0.292925 -v -1.223895 0.422320 0.307025 -v -1.162715 0.310250 0.669410 -v -1.162715 0.401725 0.669410 -v -1.223190 0.389895 0.615540 -v -1.223190 0.322080 0.615540 -v -1.162715 0.266505 0.253250 -v -1.223895 0.289650 0.307025 -v -1.162715 0.485295 0.632200 -v -1.223260 0.451850 0.587955 -v -1.162715 0.192500 0.307020 -v -1.223810 0.234790 0.346885 -v -1.162715 0.546505 0.564220 -v -1.223385 0.497225 0.537560 -v -1.162715 0.146760 0.386240 -v -1.223690 0.200880 0.405620 -v -1.162715 0.574775 0.477220 -v -1.223535 0.518185 0.473065 -v -1.162715 0.137200 0.477220 -v -1.223535 0.193790 0.473065 -v -1.162715 0.565215 0.386240 -v -1.223690 0.511095 0.405620 -v -1.162715 0.165465 0.564220 -v -1.223385 0.214745 0.537560 -v -1.162715 0.519475 0.307020 -v -1.223810 0.477185 0.346885 -v -1.162715 0.226680 0.632200 -v -1.223260 0.260125 0.587955 -v -1.248810 0.332895 0.566580 -v -1.248875 0.290705 0.547795 -v -1.249560 0.355985 0.346885 -v -1.249530 0.401160 0.356485 -v -1.248810 0.379080 0.566580 -v -1.249530 0.310815 0.356485 -v -1.248875 0.421265 0.547795 -v -1.249435 0.273455 0.383630 -v -1.248990 0.452170 0.513475 -v -1.249300 0.250360 0.423625 -v -1.249145 0.466440 0.469555 -v -1.249145 0.245535 0.469555 -v -1.249300 0.461610 0.423625 -v -1.248990 0.259805 0.513475 -v -1.249435 0.438520 0.383630 -v -1.262260 0.382975 0.398400 -v -1.262245 0.405295 0.414620 -v -1.262150 0.342190 0.523910 -v -1.262160 0.316990 0.512690 -v -1.262265 0.355985 0.392665 -v -1.262155 0.369780 0.523910 -v -1.262260 0.329000 0.398400 -v -1.262160 0.394985 0.512690 -v -1.262245 0.306680 0.414620 -v -1.262180 0.413445 0.492190 -v -1.262225 0.292885 0.438510 -v -1.262205 0.421970 0.465950 -v -1.262205 0.290000 0.465950 -v -1.262225 0.419090 0.438510 -v -1.262180 0.298530 0.492190 -v -1.276895 0.368310 0.431615 -v -1.276895 0.378505 0.439020 -v -1.276895 0.349685 0.488940 -v -1.276895 0.338175 0.483815 -v -1.276895 0.355985 0.428995 -v -1.276895 0.362285 0.488940 -v -1.276895 0.343660 0.431615 -v -1.276895 0.373800 0.483815 -v -1.276895 0.333465 0.439020 -v -1.276895 0.382230 0.474450 -v -1.276895 0.327165 0.449935 -v -1.276895 0.386125 0.462465 -v -1.276895 0.325850 0.462465 -v -1.276895 0.384805 0.449935 -v -1.276895 0.329745 0.474450 -v -0.680685 0.307645 0.686335 -v -0.680685 0.218075 0.646455 -v -0.680685 0.560870 0.573590 -v -0.680685 0.495265 0.646455 -v -0.680685 0.405695 0.686335 -v -0.680685 0.152470 0.573590 -v -0.680685 0.122170 0.480345 -v -0.737345 0.485295 0.632035 -v -0.739975 0.495265 0.646455 -v -0.739975 0.560870 0.573590 -v -0.737345 0.546505 0.564055 -v -0.680685 0.132420 0.382830 -v -0.737345 0.401725 0.669245 -v -0.739975 0.405695 0.686335 -v -0.680685 0.181440 0.297920 -v -0.737345 0.310250 0.669245 -v -0.739975 0.307645 0.686335 -v -0.737345 0.226680 0.632035 -v -0.739975 0.218075 0.646455 -v -0.680685 0.260765 0.240290 -v -0.737345 0.165465 0.564055 -v -0.739975 0.152470 0.573590 -v -0.680685 0.580920 0.382830 -v -0.680685 0.591170 0.480345 -v -0.737345 0.137200 0.477055 -v -0.739975 0.122170 0.480345 -v -0.737345 0.146760 0.386075 -v -0.739975 0.132420 0.382830 -v -0.737345 0.192500 0.306855 -v -0.739975 0.181440 0.297920 -v -0.737345 0.266505 0.253085 -v -0.739975 0.260765 0.240290 -v -0.680685 0.356670 0.219905 -v -0.737345 0.355985 0.234065 -v -0.739975 0.356670 0.219905 -v -0.680685 0.452575 0.240290 -v -0.739975 0.591170 0.480345 -v -0.737350 0.574775 0.477055 -v -0.739975 0.580920 0.382830 -v -0.737350 0.565215 0.386075 -v -0.680685 0.531900 0.297920 -v -0.739975 0.531900 0.297920 -v -0.737345 0.519475 0.306855 -v -0.737345 0.445465 0.253085 -v -0.739975 0.452575 0.240290 -v -0.774470 0.574775 0.477075 -v -0.774485 0.565215 0.386100 -v -0.775355 0.579345 0.381510 -v -0.775335 0.589550 0.478630 -v -0.747615 0.307160 0.683800 -v -0.747775 0.217945 0.644080 -v -0.747925 0.132630 0.381510 -v -0.747840 0.181460 0.296935 -v -0.774860 0.355985 0.234085 -v -0.775020 0.266505 0.253105 -v -0.775925 0.260465 0.239535 -v -0.775755 0.355985 0.219230 -v -0.747105 0.589550 0.478630 -v -0.747160 0.559375 0.571505 -v -0.747125 0.579345 0.381510 -v -0.775240 0.146760 0.386100 -v -0.775255 0.137200 0.477075 -v -0.776175 0.122420 0.478630 -v -0.776155 0.132630 0.381510 -v -0.747890 0.152600 0.571505 -v -0.747945 0.122420 0.478630 -v -0.747695 0.260465 0.239535 -v -0.747525 0.355985 0.219230 -v -0.774565 0.519475 0.306875 -v -0.775440 0.530515 0.296935 -v -0.747280 0.494030 0.644080 -v -0.747440 0.404815 0.683800 -v -0.775155 0.192500 0.306875 -v -0.776070 0.181460 0.296935 -v -0.747210 0.530515 0.296935 -v -0.775665 0.404815 0.683800 -v -0.775845 0.307160 0.683800 -v -0.775390 0.559375 0.571505 -v -0.775505 0.494030 0.644080 -v -0.776005 0.217945 0.644080 -v -0.776120 0.152600 0.571505 -v -0.747355 0.451510 0.239535 -v -0.775585 0.451510 0.239535 -v -0.774700 0.445465 0.253105 -v -0.774945 0.310250 0.669265 -v -0.774780 0.401725 0.669265 -v -0.774630 0.485295 0.632060 -v -0.774520 0.546505 0.564080 -v -0.775205 0.165465 0.564080 -v -0.775095 0.226680 0.632060 -v -0.790015 0.146170 0.385910 -v -0.790035 0.136585 0.477140 -v -0.789985 0.164930 0.564385 -v -0.789875 0.226315 0.632560 -v -0.789640 0.355985 0.233470 -v -0.789800 0.266255 0.252540 -v -0.789560 0.401855 0.669870 -v -0.789410 0.485660 0.632560 -v -0.789245 0.575390 0.477140 -v -0.789265 0.565800 0.385910 -v -0.789935 0.192040 0.306465 -v -0.789295 0.547040 0.564385 -v -0.789345 0.519935 0.306465 -v -0.789480 0.445720 0.252540 -v -0.789725 0.310120 0.669870 -v -0.103610 0.100905 -0.017245 -v -0.031100 0.121580 0.030715 -v -0.083800 0.075715 0.037735 -v -0.136695 0.046975 -0.016895 -v -0.149105 -0.016640 -0.017480 -v -0.078420 -0.016640 0.053885 -v -0.143925 -0.082670 0.491875 -v -0.149340 -0.049230 0.492625 -v -0.157235 -0.016640 0.494195 -v -0.141165 0.048860 0.503085 -v -0.104400 0.078455 0.469295 -v -0.107100 0.104395 0.503060 -v -0.144205 -0.016640 0.474705 -v -0.117320 -0.082670 0.465850 -v -0.073925 0.125680 0.486320 -v -0.125655 0.016750 0.463630 -v -0.097885 0.048860 0.456230 -v -0.107100 -0.016640 0.452555 -v -0.079335 0.016750 0.445155 -v -0.073770 -0.082670 0.448475 -v -0.031095 0.125680 0.467630 -v -0.040530 0.078455 0.448385 -v -0.051570 -0.016640 0.437755 -v -0.031100 -0.050035 0.436640 -v -1.064745 0.144700 0.512235 -v -1.064745 0.144700 -0.017240 -v -1.142250 0.148875 0.036660 -v -1.142250 0.148875 0.458340 -v -1.064745 -0.047185 -0.017240 -v -0.031095 0.144700 -0.017240 -v -0.031095 0.134460 -0.017240 -v -0.139870 -0.079515 -0.015680 -v -0.131850 -0.079680 -0.017240 -v -0.031095 0.144700 0.502910 -v -1.142250 -0.031475 0.036660 -v -1.240260 0.148875 0.036660 -v -1.064745 -0.047185 0.512235 -v -1.142250 -0.031475 0.458340 -v -1.240260 0.148875 0.458340 -v -0.149340 0.015950 0.496530 -v -0.031095 0.147710 0.497695 -v -0.071390 -0.080255 0.049685 +o Barrel +v 0.257504 0.031247 -2.046854 +v 0.251539 0.116042 -2.661849 +v 0.238709 0.128102 -3.318399 +v 0.238709 0.229737 -3.270603 +v 0.277764 0.193887 -0.380589 +v 0.281913 -0.057518 -0.381339 +v 0.279034 -0.054938 -0.562753 +v 0.278349 -0.031928 -0.658844 +v 0.276329 0.038397 -0.773504 +v 0.209213 -0.004398 -0.126359 +v 0.229543 0.006412 -0.166054 +v 0.309118 0.003287 -0.122389 +v 0.315338 -0.044908 -0.101029 +v 0.241223 -0.086863 -0.114574 +v 0.206548 -0.065553 -0.142879 +v 0.017483 0.150982 0.574606 +v 0.013388 0.150357 0.063481 +v 0.017453 0.151277 0.221681 +v 0.010023 0.151487 0.396201 +v 0.013168 0.151357 0.132611 +v 0.211109 0.505352 -4.168079 +v 0.156169 0.511997 -4.168079 +v 0.156169 0.511997 -4.330939 +v 0.211109 0.505352 -4.330939 +v -0.293571 0.382322 -4.158724 +v -0.281896 0.328227 -4.158724 +v -0.249226 0.283557 -4.158724 +v 0.258599 0.476937 -4.168079 +v 0.258599 0.476937 -4.330939 +v -0.282236 0.436492 -4.158724 +v 0.290429 0.431667 -4.168079 +v 0.290429 0.431667 -4.330939 +v -0.202011 0.509187 -4.158724 +v -0.249851 0.481367 -4.158724 +v -0.146991 0.515147 -4.158724 +v 0.288739 0.323412 -4.330939 +v 0.255514 0.279152 -4.330939 +v 0.255514 0.279152 -4.168079 +v 0.288739 0.323412 -4.168079 +v 0.037419 0.353797 -4.330939 +v 0.037419 0.353797 -4.168079 +v 0.059134 0.302897 -4.168079 +v 0.059134 0.302897 -4.330939 +v 0.103274 0.495717 -4.168079 +v 0.061574 0.459332 -4.168079 +v 0.061574 0.459332 -4.330939 +v 0.103274 0.495717 -4.330939 +v 0.207164 0.252232 -4.330939 +v 0.207164 0.252232 -4.168079 +v 0.099679 0.265227 -4.330939 +v 0.099679 0.265227 -4.168079 +v 0.038279 0.409132 -4.168079 +v 0.038279 0.409132 -4.330939 +v -0.030391 0.410822 -4.158724 +v -0.030216 0.355482 -4.158724 +v -0.052566 0.304857 -4.158724 +v -0.146151 0.250427 -4.158724 +v -0.201211 0.256037 -4.158724 +v -0.094301 0.498212 -4.158724 +v -0.053056 0.461312 -4.158724 +v -0.359691 0.327162 -3.218804 +v -0.365016 0.327162 -2.728569 +v -0.337241 0.469917 -2.728389 +v -0.331911 0.469917 -3.218794 +v -0.314351 0.460522 -2.729089 +v -0.309026 0.460522 -3.218963 +v -0.247481 -0.054963 -0.553664 +v -0.248306 -0.057783 -0.380589 +v -0.250127 0.199882 -0.382089 +v -0.207156 0.232322 -3.446038 +v -0.207156 0.167387 -3.378423 +v -0.207156 0.128102 -3.318399 +v -0.219986 0.117302 -2.660964 +v -0.225946 0.032697 -2.046918 +v -0.244741 0.039057 -0.774434 +v -0.246111 -0.032128 -0.659204 +v 0.368759 0.327162 -3.219118 +v 0.383999 0.327162 -2.729089 +v 0.247399 0.197872 -2.727359 +v 0.234554 0.205312 -3.217434 +v 0.015774 0.145872 -3.401334 +v 0.015774 0.209937 -3.452199 +v 0.222434 0.232322 -3.446038 +v 0.238709 0.167387 -3.378423 +v -0.001637 0.695932 0.864801 +v -0.002277 0.699697 0.903036 +v 0.010088 0.699747 0.903381 +v 0.024018 0.699747 0.903381 +v 0.022363 0.696012 0.864806 +v -0.018937 0.383037 -0.211934 +v -0.019082 0.382922 0.729396 +v -0.028537 0.699747 0.711006 +v -0.028537 0.725437 0.711006 +v -0.018936 0.721257 -0.211934 +v 0.015774 0.122067 -3.318399 +v 0.015779 0.104522 -2.660903 +v 0.015779 0.020532 -2.047064 +v 0.015779 -0.017763 -0.827554 +v -0.114481 0.030242 -0.823684 +v -0.230861 0.205312 -2.724623 +v -0.205606 0.188322 -2.724068 +v -0.185281 0.211267 -2.724324 +v -0.210536 0.228262 -2.724879 +v -0.261711 0.246142 -2.725559 +v -0.319966 0.306657 -2.727608 +v -0.336271 0.394167 -2.728623 +v 0.015779 -0.049748 -0.712704 +v 0.146039 0.030237 -0.823684 +v 0.015774 -0.072578 -0.607349 +v -0.030216 0.355482 -4.352614 +v -0.052566 0.304857 -4.352614 +v -0.030391 0.410822 -4.352614 +v -0.053056 0.461312 -4.352614 +v -0.094301 0.498212 -4.352614 +v -0.146991 0.515147 -4.352614 +v -0.202011 0.509187 -4.352614 +v -0.249851 0.481367 -4.352614 +v -0.282236 0.436492 -4.352614 +v -0.293571 0.382322 -4.352614 +v -0.281896 0.328227 -4.352614 +v -0.249226 0.283557 -4.352614 +v -0.201211 0.256037 -4.352614 +v -0.146151 0.250427 -4.352614 +v -0.093576 0.267692 -4.352614 +v -0.031366 0.474472 -4.350559 +v -0.079881 0.523372 -4.352614 +v -0.211061 0.536742 -4.352614 +v -0.144051 0.544002 -4.352614 +v -0.002041 0.416942 -4.352614 +v -0.001826 0.349542 -4.352614 +v -0.029046 0.287882 -4.352614 +v -0.078996 0.242622 -4.352614 +v -0.143031 0.221592 -4.352614 +v -0.210086 0.228427 -4.352614 +v -0.268561 0.261942 -4.352614 +v -0.308351 0.316347 -4.352614 +v -0.322576 0.382232 -4.352614 +v -0.308771 0.448202 -4.352614 +v -0.269326 0.502857 -4.352614 +v -0.079881 0.523372 -4.183839 +v -0.029651 0.478432 -4.183839 +v -0.268561 0.261942 -4.183839 +v -0.210086 0.228427 -4.183839 +v -0.144051 0.544002 -4.183839 +v -0.143031 0.221592 -4.183839 +v -0.211061 0.536742 -4.183839 +v -0.078996 0.242622 -4.183839 +v -0.269326 0.502857 -4.183839 +v -0.029046 0.287882 -4.183839 +v -0.308771 0.448202 -4.183839 +v -0.001826 0.349542 -4.183839 +v -0.322576 0.382232 -4.183839 +v -0.002041 0.416942 -4.183839 +v -0.308351 0.316347 -4.183839 +v -0.263051 0.268102 -4.166004 +v -0.300811 0.319732 -4.166004 +v -0.083991 0.516202 -4.166004 +v -0.036321 0.473552 -4.166004 +v -0.207556 0.236297 -4.166004 +v -0.144886 0.535777 -4.166004 +v -0.143921 0.229812 -4.166004 +v -0.208481 0.528887 -4.166004 +v -0.083151 0.249767 -4.166004 +v -0.263771 0.496732 -4.166004 +v -0.035751 0.292717 -4.166004 +v -0.301206 0.444867 -4.166004 +v -0.009916 0.351237 -4.166004 +v 0.309499 0.439802 -4.168079 +v 0.321819 0.377037 -4.168079 +v 0.307549 0.314682 -4.168079 +v 0.315049 0.311207 -4.185909 +v 0.330089 0.376907 -4.185909 +v 0.317104 0.443047 -4.185909 +v -0.010121 0.415202 -4.166004 +v -0.003182 0.430657 0.004771 +v -0.037872 0.507917 0.004771 +v -0.338067 0.235897 0.004771 +v -0.388062 0.304257 0.004771 +v -0.102631 0.562592 0.005651 +v -0.264592 0.193787 0.004771 +v -0.183126 0.588747 0.005651 +v -0.183127 0.183897 0.005651 +v -0.265812 0.581182 0.004771 +v -0.102632 0.210052 0.005651 +v -0.339022 0.538607 0.004771 +v -0.037117 0.268492 0.004771 +v -0.388587 0.469932 0.004771 +v -0.002917 0.345967 0.004771 +v -0.314306 0.382257 -4.166004 +v -0.405932 0.387042 0.004771 +v -0.270022 0.176892 0.052351 +v -0.178427 0.167557 0.052351 +v -0.423677 0.386982 0.052351 +v -0.404252 0.296987 0.052351 +v 0.014163 0.434402 0.052351 +v -0.023547 0.518392 0.052351 +v -0.404822 0.477102 0.052351 +v -0.350937 0.551757 0.052351 +v -0.349897 0.222672 0.052351 +v 0.014453 0.342332 0.052351 +v -0.022727 0.258107 0.052351 +v -0.271352 0.598042 0.052351 +v -0.179816 0.607957 0.052351 +v -0.090952 0.196282 0.052351 +v -0.092162 0.579782 0.052351 +v -0.022727 0.258107 0.688621 +v -0.051452 0.278837 0.720896 +v -0.108762 0.226902 0.720896 +v -0.090952 0.196282 0.688621 +v -0.092162 0.579782 0.688621 +v -0.179817 0.607957 0.688621 +v -0.183407 0.572717 0.720896 +v -0.109777 0.549047 0.720896 +v -0.270022 0.176892 0.688621 +v -0.178427 0.167557 0.688621 +v -0.182237 0.202772 0.720896 +v -0.259182 0.210612 0.720896 +v -0.423677 0.386982 0.688621 +v -0.404252 0.296987 0.688621 +v -0.371937 0.311497 0.720896 +v -0.388257 0.387097 0.720896 +v 0.014163 0.434402 0.688621 +v -0.023547 0.518392 0.688621 +v -0.052142 0.497482 0.720896 +v -0.020462 0.426927 0.720896 +v -0.404822 0.477102 0.688621 +v -0.372412 0.462797 0.720896 +v -0.327152 0.525507 0.720896 +v -0.350937 0.551757 0.688621 +v -0.349897 0.222672 0.688621 +v -0.326282 0.249072 0.720896 +v 0.014453 0.342332 0.688621 +v -0.020217 0.349587 0.720896 +v -0.271352 0.598042 0.688621 +v -0.260297 0.564387 0.720896 +v 0.213259 0.232412 -4.168079 +v 0.149549 0.226722 -4.168079 +v 0.089034 0.247432 -4.168079 +v 0.042169 0.290972 -4.168079 +v 0.017069 0.349802 -4.168079 +v 0.018064 0.413762 -4.168079 +v 0.044989 0.471782 -4.168079 +v 0.093189 0.513837 -4.168079 +v 0.154324 0.532652 -4.168079 +v 0.217824 0.524972 -4.168079 +v 0.272714 0.492132 -4.168079 +v 0.269149 0.263527 -4.168079 +v 0.290429 0.431667 -4.354689 +v 0.301089 0.377357 -4.354689 +v 0.301089 0.377357 -4.330939 +v 0.258599 0.476937 -4.354689 +v 0.211109 0.505352 -4.354689 +v 0.156169 0.511997 -4.354689 +v 0.103274 0.495717 -4.354689 +v 0.061574 0.459332 -4.354689 +v 0.038279 0.409132 -4.354689 +v 0.037419 0.353797 -4.354689 +v 0.099679 0.265227 -4.354689 +v 0.059134 0.302897 -4.354689 +v 0.008959 0.348212 -4.354689 +v 0.010009 0.415602 -4.354689 +v 0.038379 0.476742 -4.354689 +v 0.089164 0.521057 -4.354689 +v 0.153589 0.540882 -4.354689 +v 0.220499 0.532792 -4.354689 +v 0.278339 0.498187 -4.354689 +v 0.317104 0.443047 -4.354689 +v 0.330089 0.376907 -4.354689 +v 0.315049 0.311207 -4.354689 +v 0.274584 0.257302 -4.354689 +v 0.215694 0.224512 -4.354689 +v 0.207164 0.252232 -4.354689 +v 0.255514 0.279152 -4.354689 +v 0.288739 0.323412 -4.354689 +v 0.084789 0.240342 -4.354689 +v 0.035409 0.286217 -4.354689 +v 0.220499 0.532792 -4.185909 +v 0.278339 0.498187 -4.185909 +v 0.153589 0.540882 -4.185909 +v 0.148559 0.218512 -4.185909 +v 0.148559 0.218512 -4.354689 +v 0.215694 0.224512 -4.185909 +v 0.089164 0.521057 -4.185909 +v 0.274584 0.257302 -4.185909 +v 0.041188 0.463312 0.002701 +v 0.091349 0.531547 0.002701 +v 0.005373 0.380672 0.050276 +v 0.023119 0.380572 0.002701 +v 0.040263 0.297637 0.002701 +v 0.024013 0.290507 0.050276 +v 0.443613 0.424262 0.050276 +v 0.426233 0.420667 0.002701 +v 0.392218 0.498227 0.002701 +v 0.406633 0.508577 0.050276 +v 0.025018 0.470622 0.050276 +v 0.079548 0.544802 0.050276 +v 0.089658 0.228842 0.002701 +v 0.077713 0.215722 0.050276 +v 0.443098 0.332192 0.050276 +v 0.405183 0.248292 0.050276 +v 0.390883 0.258802 0.002701 +v 0.425758 0.335977 0.002701 +v 0.159538 0.590392 0.050276 +v 0.246524 0.600097 0.050891 +v 0.249203 0.581867 0.002701 +v 0.164929 0.573482 0.002701 +v 0.336418 0.187072 0.050276 +v 0.248658 0.165422 0.050301 +v 0.246903 0.183082 0.002721 +v 0.327628 0.202487 0.002701 +v 0.162763 0.186087 0.002701 +v 0.157188 0.169242 0.050276 +v 0.038728 0.383037 -0.211934 +v 0.038729 0.721257 -0.211934 +v 0.048713 0.699747 0.711006 +v 0.049053 0.699747 0.725431 +v 0.037978 0.699747 0.736011 +v 0.037943 0.699747 0.710271 +v 0.048713 0.699747 0.695846 +v 0.338558 0.570562 0.686546 +v 0.251153 0.599502 0.686546 +v 0.247253 0.564297 0.718821 +v 0.320673 0.539987 0.718821 +v 0.338558 0.570562 0.050276 +v 0.329598 0.555247 0.002701 +v 0.024013 0.290507 0.686546 +v 0.077713 0.215722 0.686546 +v 0.157188 0.169242 0.686546 +v 0.079548 0.544802 0.686546 +v 0.103103 0.518347 0.718821 +v 0.170298 0.556642 0.718821 +v 0.159538 0.590392 0.686546 +v 0.248698 0.159107 0.686546 +v -0.249872 0.167682 -0.010114 +v -0.196637 0.146957 -0.001924 +v -0.249677 0.160812 0.041836 +v 0.037978 0.725457 0.736011 +v -0.017757 0.725267 0.735916 +v -0.017757 0.699747 0.735916 +v -0.017772 0.725267 0.711006 +v 0.049053 0.725457 0.725431 +v 0.048713 0.725457 0.711006 +v 0.037943 0.725202 0.694201 +v 0.037943 0.744567 0.711006 +v -0.017772 0.744567 0.711006 +v -0.017772 0.725202 0.694201 +v 0.311063 0.081002 -0.093779 +v 0.325593 0.037747 -0.022504 +v 0.021738 0.585607 0.754561 +v -0.002022 0.585607 0.754571 +v -0.002022 0.646267 0.795101 +v 0.021738 0.646267 0.795096 +v 0.121944 0.657312 -0.382644 +v 0.121944 0.595772 -1.365783 +v -0.109221 0.595772 -1.365783 +v -0.109401 0.657847 -0.387254 +v -0.051431 0.657312 -0.382644 +v 0.152039 0.247307 -4.354689 +v 0.152039 0.247307 -4.332014 +v -0.281352 0.013822 -0.050209 +v -0.298717 0.016267 -0.063084 +v -0.279777 0.017777 -0.071024 +v 0.315278 -0.052943 0.095106 +v 0.309203 -0.109308 -0.005179 +v 0.185258 0.151487 0.063471 +v 0.185258 0.151487 0.728931 +v 0.017503 0.150682 0.728941 +v -0.299022 0.061517 -0.079799 +v -0.300807 0.072827 -0.057289 +v -0.270382 0.073372 -0.062549 +v -0.279352 0.065737 -0.077734 +v 0.037998 0.181192 0.728946 +v 0.037998 0.267997 0.729181 +v 0.038898 0.382992 0.729391 +v -0.017932 0.267922 0.729191 +v -0.017932 0.181192 0.728951 +v 0.024028 0.699477 0.873126 +v 0.021738 0.383157 0.729706 +v -0.002022 0.383157 0.729716 +v 0.114178 0.198492 0.728936 +v 0.114178 0.198492 0.063476 +v 0.047078 0.256007 0.064351 +v 0.037998 0.267997 0.063291 +v 0.049743 0.259732 0.729121 +v -0.017772 0.699747 0.709161 +v -0.028332 0.725267 0.725431 +v -0.028332 0.699747 0.725431 +v 0.323348 0.079012 0.016446 +v 0.309698 0.123247 -0.035659 +v 0.037943 0.699747 0.903381 +v 0.037943 0.712497 0.902956 +v -0.017772 0.712497 0.902956 +v -0.017772 0.699747 0.903381 +v -0.017772 0.741617 0.872056 +v -0.017772 0.725242 0.895226 +v 0.037943 0.725242 0.895226 +v 0.037943 0.741617 0.872056 +v -0.014832 0.380827 0.712381 +v -0.014832 0.699822 0.670921 +v -0.018937 0.702032 0.687916 +v -0.052097 0.514632 0.704271 +v -0.047992 0.512422 0.687271 +v 0.038728 0.702032 0.688161 +v 0.035278 0.699677 0.669951 +v 0.035278 0.380687 0.711166 +v 0.070858 0.512742 0.707221 +v 0.067403 0.510392 0.688321 +v 0.302978 -0.099353 0.054171 +v 0.229173 -0.125883 0.056966 +v 0.237348 -0.139828 -0.008819 +v 0.235333 -0.075863 0.121821 +v 0.230863 -0.006803 0.144746 +v 0.308158 0.004367 0.119611 +v 0.232228 -0.122183 -0.072284 +v 0.305443 -0.091283 -0.070643 +v 0.237253 0.103392 -0.115314 +v 0.232613 0.143257 -0.062584 +v -0.217852 -0.119548 0.057206 +v -0.216347 -0.083563 0.104661 +v -0.283712 -0.087028 0.058846 +v -0.269127 -0.106688 0.034611 +v 0.264148 -0.057298 -0.152988 +v -0.173227 -0.061733 0.003611 +v -0.193117 -0.094728 0.060596 +v -0.199307 -0.118223 -0.005174 +v -0.219832 0.149352 -0.000779 +v -0.200852 0.131592 0.039536 +v -0.198402 0.135412 -0.019214 +v -0.181342 -0.006008 0.093151 +v -0.219317 -0.132098 0.000941 +v -0.177027 0.080352 0.035871 +v -0.169807 0.008742 0.041836 +v -0.276337 0.020837 -0.034209 +v -0.301017 0.018442 -0.045794 +v -0.276982 0.073742 -0.042899 +v -0.296762 0.065827 -0.028359 +v -0.199432 -0.005763 0.127386 +v -0.194992 0.089872 0.089166 +v -0.220052 0.118492 0.087111 +v -0.217217 0.074767 0.122716 +v -0.221937 0.143812 0.038446 +v -0.220552 0.022727 0.138266 +v -0.220727 -0.030538 0.133616 +v 0.332058 0.015782 -0.055874 +v 0.329933 0.044117 -0.084299 +v 0.331923 0.065542 -0.035419 +v 0.299873 0.014807 -0.046584 +v 0.302243 0.018742 -0.069954 +v 0.296618 0.050322 -0.083429 +v 0.326733 0.076602 -0.064474 +v 0.282068 0.038312 -0.051574 +v 0.300858 0.042007 -0.021564 +v 0.294073 0.071832 -0.044764 +v -0.283927 0.050637 0.101921 +v -0.282502 -0.004593 0.111601 +v -0.284037 0.103522 0.059121 +v -0.267302 0.127037 0.024206 +v -0.285337 -0.048368 0.091391 +v -0.286312 0.119632 0.000331 +v -0.284962 0.102297 -0.065879 +v -0.296132 0.019397 -0.071079 +v -0.298607 0.040057 0.032116 +v -0.295462 -0.030563 0.061831 +v -0.271837 0.120367 -0.044589 +v -0.280377 0.048112 -0.110154 +v -0.222682 0.117577 -0.091789 +v -0.218297 0.071742 -0.128119 +v -0.282987 -0.006018 -0.115024 +v -0.284702 -0.103573 -0.000984 +v -0.279367 -0.098778 -0.045124 +v -0.213297 0.019942 -0.141599 +v -0.216452 -0.030813 -0.137214 +v -0.214962 -0.121973 -0.052674 +v -0.221507 -0.091713 -0.102799 +v -0.269302 -0.050633 -0.106129 +v -0.220552 0.143857 -0.041744 +v -0.195157 -0.082963 -0.084229 +v -0.202447 0.113652 -0.082339 +v -0.182567 -0.027868 -0.094549 +v -0.186302 0.100872 -0.055264 +v -0.190687 0.050672 -0.107504 +v -0.172997 0.041257 -0.056244 +v -0.300667 0.050892 -0.026149 +v -0.306227 0.037637 -0.064254 +v -0.271432 0.060147 -0.028094 +v -0.273487 0.038512 -0.024609 +v 0.200558 0.183897 0.005651 +v 0.199183 0.170807 0.041836 +v 0.272388 0.166922 0.046141 +v 0.282103 0.192467 0.005651 +v -0.223136 0.197872 -3.214803 +v -0.330941 0.394167 -3.219194 +v -0.314631 0.306657 -3.218554 +v -0.256371 0.246142 -3.217253 +v -0.207796 0.219212 -3.215113 +v -0.182541 0.202217 -3.214558 +v -0.197881 0.180877 -3.214254 +v 0.307423 0.120252 0.048946 +v 0.309453 0.062992 0.101951 +v -0.297342 -0.044508 -0.027989 +v 0.233963 0.105637 0.110206 +v 0.235018 0.053587 0.138616 +v -0.284942 -0.073198 -0.077164 +v 0.194918 -0.035073 0.083176 +v 0.200818 -0.100168 -0.019659 +v -0.196637 0.008742 -0.140144 +v -0.199437 0.072357 -0.129619 +v -0.247942 0.070067 -0.149204 +v -0.248312 0.008742 -0.161459 +v -0.273767 0.051492 -0.084064 +v -0.297172 0.035627 -0.083449 +v -0.168437 0.041172 -0.001924 +v -0.168437 0.008742 -0.034354 +v -0.168437 -0.023693 -0.001924 +v 0.120068 0.210052 0.005651 +v 0.057168 0.266682 0.005651 +v 0.046523 0.258947 0.041836 +v 0.113488 0.198652 0.041836 +v -0.190007 0.126287 0.041836 +v -0.178337 0.101097 -0.001924 +v -0.175057 0.072357 0.041836 +v -0.175702 -0.057783 0.041836 +v -0.173997 -0.057783 -0.031584 +v -0.100206 0.213897 -0.380589 +v -0.038681 0.269292 -0.380589 +v -0.017636 0.316562 -0.380589 +v 0.034118 0.316562 -0.380589 +v 0.055163 0.269292 -0.380589 +v 0.116689 0.211567 -0.380589 +v 0.195429 0.185932 -0.380589 +v -0.178941 0.188312 -0.380589 +v 0.202933 -0.063468 -0.034674 +v 0.208333 0.104637 0.022541 +v 0.207743 -0.057783 0.035326 +v 0.211843 0.008742 -0.097019 +v 0.278308 0.042012 -0.161583 +v 0.212933 0.103837 -0.029689 +v 0.273913 0.129472 -0.106899 +v -0.247952 -0.057783 -0.146429 +v -0.249397 0.126287 -0.099659 +v -0.199437 -0.054878 -0.129619 +v -0.190157 0.126287 -0.046904 +v -0.249792 0.159797 -0.052794 +v -0.182537 0.072357 -0.087249 +v -0.179397 -0.023693 -0.092504 +v -0.194956 0.677767 -0.115719 +v -0.194957 0.682082 0.688181 +v 0.211243 0.682082 0.688181 +v 0.211243 0.682082 -0.115719 +v 0.123624 0.674512 -0.383239 +v -0.110116 0.674827 -0.387329 +v -0.165212 0.151487 0.728931 +v -0.165212 0.151487 0.063471 +v 0.252228 0.589727 0.688181 +v 0.231163 0.583307 0.005651 +v 0.123624 0.561207 -0.383239 +v 0.064884 0.576727 -0.383239 +v 0.033309 0.551472 -0.383399 +v 0.033309 0.496567 -0.383634 +v 0.038459 0.424832 -0.383684 +v 0.038459 0.411517 -0.383684 +v -0.001916 0.411517 -0.383684 +v -0.001916 0.424832 -0.383684 +v -0.025856 0.496852 -0.384079 +v -0.025856 0.553142 -0.386014 +v -0.056331 0.576727 -0.387329 +v -0.109236 0.563877 -0.386649 +v 0.038898 0.382992 0.063081 +v 0.010438 0.410047 0.705471 +v 0.020698 0.705552 0.697316 +v -0.002242 0.699387 0.873036 +v 0.276598 0.165707 -0.004299 +v 0.017333 0.152452 0.003456 +v 0.015204 0.221232 -4.352719 +v 0.179774 0.218477 -4.352809 +v 0.017503 0.151527 0.060731 +v -0.093576 0.267692 -4.158724 +v 0.121944 0.517322 -4.353459 +v 0.121944 0.553172 -4.353234 +v -0.181752 0.170807 0.041836 +v -0.096052 0.198652 0.041836 +v -0.029087 0.258947 0.041836 +v -0.003437 0.316562 0.041836 +v -0.017527 0.316562 0.005651 +v 0.301089 0.377357 -4.168079 +v -0.165212 0.172792 0.728931 +v -0.097737 0.203897 0.728946 +v -0.092337 0.191297 0.063486 +v -0.165212 0.170227 0.063471 +v -0.025692 0.258657 0.063471 +v 0.340999 0.469917 -3.218134 +v 0.214259 0.228262 -3.216328 +v 0.265419 0.246142 -3.217794 +v 0.323704 0.306657 -3.218189 +v 0.340039 0.394167 -3.217859 +v 0.318159 0.460522 -3.216474 +v 0.356244 0.469917 -2.727933 +v 0.333389 0.460522 -2.726804 +v 0.152039 0.247307 -4.168079 +v 0.185258 0.171947 0.063471 +v 0.179774 0.229217 -4.352809 +v 0.084789 0.240342 -4.185909 +v 0.010009 0.415602 -4.185909 +v 0.038379 0.476742 -4.185909 +v 0.035409 0.286217 -4.185909 +v 0.008959 0.348212 -4.185909 +v 0.336418 0.187072 0.686546 +v 0.318878 0.217847 0.718821 +v 0.245193 0.194357 0.718821 +v 0.025018 0.470622 0.686546 +v 0.057293 0.456032 0.718821 +v 0.168323 0.202872 0.718821 +v 0.101558 0.241912 0.718821 +v 0.005373 0.380672 0.686546 +v 0.040793 0.380472 0.718821 +v 0.443098 0.332192 0.686546 +v 0.408493 0.339752 0.718821 +v 0.376638 0.269272 0.718821 +v 0.405183 0.248292 0.686546 +v 0.056453 0.304737 0.718821 +v 0.443613 0.424262 0.686546 +v 0.406633 0.508577 0.686546 +v 0.377858 0.487917 0.718821 +v 0.408923 0.417087 0.718821 +v -0.170801 0.229217 -4.350684 +v -0.170696 0.218477 -4.352809 +v 0.020868 0.316562 0.041836 +v 0.034958 0.316562 0.005651 +v -0.272937 0.032742 -0.081034 +v 0.237383 0.145597 0.052736 +v -0.248307 0.190747 0.005651 +v -0.248307 0.171017 0.041836 +v -0.226037 0.600417 0.688181 +v 0.008718 0.436702 0.688181 +v 0.043858 0.515632 0.688181 +v 0.124283 0.556622 0.688181 +v 0.200398 0.584892 0.688181 +v 0.185258 0.171947 0.728931 +v 0.355294 0.394167 -2.727499 +v 0.338969 0.306657 -2.727453 +v 0.280709 0.246142 -2.726309 +v 0.232084 0.219212 -2.726408 +v -0.109996 0.506777 -4.350559 +v -0.109221 0.553172 -4.353234 +v -0.201372 0.587917 0.006221 +v -0.226037 0.600417 0.050891 +v 0.084999 0.514337 -4.353234 +v 0.041284 0.473062 -4.353234 +v 0.013304 0.353292 -4.352809 +v 0.036839 0.291602 -4.352809 +v 0.081609 0.247417 -4.352809 +v 0.141614 0.225572 -4.352809 +v -0.136856 0.226762 -4.350474 +v -0.072241 0.250267 -4.347369 +v -0.028361 0.293002 -4.347369 +v -0.007616 0.354332 -4.347389 +v -0.076481 0.517867 -4.350559 +v -0.017932 0.267922 0.063296 +v -0.019082 0.382922 0.063091 +v -0.293571 0.382322 -4.158724 +v -0.281896 0.328227 -4.158724 +v -0.281896 0.328227 -4.328869 +v -0.293571 0.382322 -4.328869 +v -0.249226 0.283557 -4.158724 +v -0.249226 0.283557 -4.328869 +v -0.282236 0.436492 -4.158724 +v -0.282236 0.436492 -4.328869 +v -0.202011 0.509187 -4.158724 +v -0.249851 0.481367 -4.158724 +v -0.249851 0.481367 -4.328869 +v -0.202011 0.509187 -4.328869 +v -0.146991 0.515147 -4.328869 +v -0.146991 0.515147 -4.158724 +v -0.030391 0.410822 -4.158724 +v -0.030216 0.355482 -4.158724 +v -0.030216 0.355482 -4.328869 +v -0.030391 0.410822 -4.328869 +v -0.052566 0.304857 -4.158724 +v -0.052566 0.304857 -4.328869 +v -0.146151 0.250427 -4.328869 +v -0.146151 0.250427 -4.158724 +v -0.201211 0.256037 -4.158724 +v -0.201211 0.256037 -4.328869 +v -0.094301 0.498212 -4.158724 +v -0.094301 0.498212 -4.328869 +v -0.053056 0.461312 -4.158724 +v -0.053056 0.461312 -4.328869 +v -0.030216 0.355482 -4.352614 +v -0.052566 0.304857 -4.352614 +v -0.030391 0.410822 -4.352614 +v -0.053056 0.461312 -4.352614 +v -0.094301 0.498212 -4.352614 +v -0.146991 0.515147 -4.352614 +v -0.202011 0.509187 -4.352614 +v -0.249851 0.481367 -4.352614 +v -0.282236 0.436492 -4.352614 +v -0.293571 0.382322 -4.352614 +v -0.281896 0.328227 -4.352614 +v -0.249226 0.283557 -4.352614 +v -0.201211 0.256037 -4.352614 +v -0.146151 0.250427 -4.352614 +v -0.093576 0.267692 -4.328869 +v -0.093576 0.267692 -4.352614 +v -0.093576 0.267692 -4.158724 +vn 0.9990 0.0433 -0.0130 +vn 0.2109 -0.0576 -0.9758 +vn 0.9995 0.0285 -0.0149 +vn 0.9999 -0.0104 -0.0111 +vn 0.9998 0.0091 -0.0194 +vn 0.9997 0.0165 -0.0156 +vn 0.9999 0.0088 -0.0050 +vn 0.9999 0.0138 -0.0091 +vn 0.6821 0.1629 -0.7129 +vn 0.0835 -0.9715 -0.2218 +vn 0.0669 -0.3970 -0.9154 +vn 0.2513 -0.9679 -0.0047 +vn 0.2528 -0.9675 -0.0008 +vn 0.2523 -0.9677 -0.0008 +vn -0.0238 -0.9997 -0.0006 +vn -0.1439 -0.9895 0.0094 +vn -0.0248 -0.9997 0.0003 +vn 0.0890 -0.9960 -0.0000 +vn -0.3238 -0.9461 -0.0000 +vn -0.6806 -0.7327 -0.0000 +vn -0.6806 -0.7326 -0.0000 +vn -0.9198 -0.3925 -0.0000 +vn -0.6575 0.7535 -0.0000 +vn -0.9071 0.4210 -0.0000 +vn 0.9813 0.1926 -0.0000 +vn 0.8181 0.5751 -0.0000 +vn 0.7998 -0.6003 -0.0000 +vn 0.4864 -0.8737 -0.0000 +vn -0.2942 0.9558 -0.0000 +vn 0.5135 0.8581 -0.0000 +vn 0.9748 -0.2231 -0.0000 +vn -0.9815 0.1910 -0.0107 +vn 0.3798 0.9251 0.0041 +vn -0.9999 0.0015 -0.0143 +vn -0.9999 -0.0017 -0.0131 +vn -0.9999 -0.0031 -0.0103 +vn 0.6753 -0.7370 -0.0271 +vn 0.6837 -0.7294 -0.0231 +vn 0.6717 -0.7402 -0.0288 +vn -0.0095 -0.8319 -0.5549 +vn 0.1291 -0.6812 -0.7206 +vn 0.0902 -0.7990 -0.5946 +vn 0.9937 0.0967 -0.0559 +vn 0.9964 0.0732 -0.0423 +vn 1.0000 -0.0000 -0.0000 +vn -0.0016 0.9953 -0.0973 +vn -0.0000 0.9953 -0.0964 +vn -0.0027 0.9379 -0.3468 +vn -0.9999 -0.0121 -0.0062 +vn -0.9999 -0.0000 -0.0104 +vn -0.0742 -0.7934 -0.6042 +vn -0.0186 -0.6346 -0.7726 +vn -0.0000 -0.9835 -0.1808 +vn 0.0283 -0.9544 -0.2973 +vn -0.0025 -0.9969 -0.0788 +vn 0.0483 -0.9957 -0.0785 +vn -0.2055 -0.9589 -0.1956 +vn -0.1846 -0.9286 -0.3220 +vn -0.0512 -0.9965 -0.0663 +vn -0.0144 0.0087 0.9999 +vn -0.0235 0.0055 0.9997 +vn -0.0123 0.0198 0.9997 +vn 0.2035 -0.9596 -0.1944 +vn 0.1823 -0.9289 -0.3223 +vn 0.1477 -0.9273 -0.3440 +vn -0.0000 -0.9882 -0.1529 +vn 0.0003 -0.9530 -0.3029 +vn -0.0029 -0.9977 -0.0675 +vn -0.0382 -0.9991 0.0207 +vn -0.0002 -0.9946 -0.1042 +vn 0.0383 -0.9990 0.0215 +vn 0.0655 0.0289 -0.9974 +vn 0.0105 0.0046 -0.9999 +vn 0.0615 0.0327 -0.9976 +vn -0.0000 -0.0000 -1.0000 +vn 0.8102 0.5861 -0.0053 +vn 0.4901 0.8472 0.2049 +vn 0.7905 0.5793 0.1986 +vn -0.6668 -0.7453 -0.0000 +vn -0.2992 -0.9309 0.2096 +vn -0.6520 -0.7287 0.2095 +vn 0.1014 0.9948 -0.0000 +vn 0.5209 0.8536 -0.0000 +vn -0.3060 -0.9520 -0.0000 +vn 0.1053 -0.9721 0.2096 +vn -0.3120 0.9501 -0.0000 +vn 0.0991 0.9728 0.2096 +vn 0.1077 -0.9942 -0.0000 +vn 0.4916 -0.8453 0.2095 +vn -0.6715 0.7410 -0.0000 +vn -0.3051 0.9290 0.2096 +vn 0.5027 -0.8644 -0.0000 +vn 0.7929 -0.5722 0.2095 +vn -0.9148 0.4038 -0.0000 +vn -0.6566 0.7246 0.2096 +vn 0.9788 -0.2048 -0.0000 +vn 0.8109 -0.5852 -0.0000 +vn -1.0000 -0.0032 -0.0000 +vn -0.8945 0.3949 0.2096 +vn 0.9725 0.2327 -0.0000 +vn 0.9571 -0.2003 0.2095 +vn -0.9122 -0.4096 -0.0000 +vn -0.9778 -0.0031 0.2096 +vn 0.9559 0.2095 0.2059 +vn -0.6511 -0.7285 0.2129 +vn -0.8920 -0.4005 0.2095 +vn 0.4858 0.8465 0.2178 +vn -0.2983 -0.9300 0.2147 +vn 0.0997 0.9713 0.2159 +vn 0.1058 -0.9705 0.2167 +vn -0.3042 0.9283 0.2138 +vn 0.4910 -0.8433 0.2186 +vn -0.6559 0.7245 0.2121 +vn 0.7912 -0.5706 0.2200 +vn -0.8941 0.3949 0.2111 +vn 0.9547 -0.1997 0.2206 +vn 0.9776 -0.0152 0.2097 +vn 0.8993 0.3837 0.2096 +vn 0.9071 -0.0141 0.4208 +vn 0.9535 0.2056 0.2204 +vn 0.9774 0.2114 -0.0024 +vn 0.7878 0.5756 0.2193 +vn 0.7976 0.6031 -0.0044 +vn -0.6675 -0.7444 -0.0178 +vn -0.8915 -0.4007 0.2115 +vn 0.4845 0.8747 -0.0076 +vn -0.3156 -0.9488 -0.0140 +vn 0.1106 0.9938 -0.0117 +vn 0.0960 -0.9953 -0.0099 +vn -0.3045 0.9524 -0.0161 +vn 0.4964 -0.8681 -0.0059 +vn -0.6720 0.7403 -0.0196 +vn 0.8078 -0.5895 -0.0031 +vn -0.9148 0.4034 -0.0216 +vn 0.9788 -0.2049 -0.0019 +vn -0.9775 -0.0032 0.2109 +vn -0.9998 -0.0030 -0.0220 +vn -0.3036 -0.9372 -0.1716 +vn 0.0889 -0.9358 -0.3411 +vn 0.1091 -0.9798 -0.1674 +vn -0.9848 -0.0031 -0.1736 +vn -0.8547 -0.3838 -0.3495 +vn -0.8984 -0.4034 -0.1736 +vn 0.9627 0.2078 -0.1736 +vn 0.7512 0.5546 -0.3578 +vn 0.7949 0.5814 -0.1736 +vn -0.9009 0.3977 -0.1736 +vn -0.6291 0.6943 -0.3495 +vn -0.8571 0.3784 -0.3495 +vn -0.6247 -0.6983 -0.3494 +vn -0.6566 -0.7340 -0.1736 +vn 0.9639 -0.2017 -0.1736 +vn 0.7582 -0.5485 -0.3524 +vn 0.9171 -0.1919 -0.3495 +vn -0.3044 0.9361 -0.1762 +vn 0.0943 0.9205 -0.3791 +vn -0.2834 0.8931 -0.3495 +vn 0.4579 -0.8147 -0.3557 +vn 0.4966 -0.8501 -0.1753 +vn 0.4844 0.8533 -0.1927 +vn -0.9370 -0.0030 -0.3494 +vn -0.2945 -0.8895 -0.3494 +vn 0.9159 0.1977 -0.3494 +vn -0.6613 0.7298 -0.1736 +vn 0.7986 -0.5763 -0.1736 +vn -0.9123 -0.4089 -0.0206 +vn 0.5461 -0.3941 0.7392 +vn 0.3386 -0.5822 0.7392 +vn 0.3349 0.5843 0.7392 +vn 0.0683 0.6700 0.7392 +vn 0.0725 -0.6696 0.7392 +vn -0.2061 -0.6412 0.7392 +vn -0.6735 -0.0021 0.7392 +vn -0.6144 -0.2759 0.7392 +vn 0.5436 0.3976 0.7392 +vn 0.6583 0.1421 0.7392 +vn -0.6161 0.2720 0.7392 +vn -0.4522 0.4991 0.7392 +vn -0.4491 -0.5019 0.7392 +vn 0.6592 -0.1379 0.7392 +vn -0.2101 0.6399 0.7392 +vn -0.2102 0.6399 0.7392 +vn -0.4491 -0.5020 0.7392 +vn 0.4428 0.8051 -0.3947 +vn 0.1014 0.9762 -0.1916 +vn -0.9123 -0.4096 -0.0000 +vn 0.9775 0.2110 -0.0000 +vn 0.8072 0.5903 -0.0000 +vn 0.4973 0.8676 -0.0000 +vn -0.9148 0.4039 -0.0000 +vn -0.9999 0.0156 -0.0000 +vn 0.3238 0.9461 -0.0000 +vn 0.6655 0.7164 0.2096 +vn 0.6806 0.7326 -0.0000 +vn -0.0890 0.9960 -0.0000 +vn 0.3166 0.9251 0.2096 +vn -0.1201 -0.9928 -0.0000 +vn 0.2876 -0.9345 0.2096 +vn -0.1174 -0.9707 0.2096 +vn -0.4864 0.8737 -0.0000 +vn -0.0870 0.9739 0.2095 +vn 0.6575 -0.7535 -0.0000 +vn 0.2942 -0.9558 -0.0000 +vn -0.9109 0.4125 0.0017 +vn -0.8004 0.5994 -0.0017 +vn -0.9749 0.2227 0.0007 +vn -0.9848 0.0055 -0.1736 +vn -0.8581 -0.3763 -0.3495 +vn -0.9019 -0.3955 -0.1736 +vn 0.9644 0.1994 -0.1736 +vn 0.7611 0.5465 -0.3495 +vn 0.7999 0.5744 -0.1736 +vn -0.8974 0.4056 -0.1736 +vn -0.6230 0.6998 -0.3495 +vn -0.8538 0.3859 -0.3495 +vn -0.6308 -0.6928 -0.3494 +vn -0.6631 -0.7282 -0.1736 +vn 0.7935 -0.5833 -0.1736 +vn 0.9153 -0.1999 -0.3495 +vn 0.9621 -0.2101 -0.1736 +vn 0.0944 0.9807 -0.1713 +vn -0.2873 0.8909 -0.3519 +vn -0.3040 0.9366 -0.1741 +vn 0.0984 -0.9799 -0.1737 +vn 0.4338 -0.8299 -0.3508 +vn 0.4595 -0.8712 -0.1729 +vn -0.9369 0.0052 -0.3495 +vn -0.2610 -0.8993 -0.3508 +vn -0.2781 -0.9449 -0.1729 +vn 0.9175 0.1897 -0.3495 +vn -0.6549 0.7355 -0.1736 +vn -0.0000 -1.0000 -0.0000 +vn 0.0741 0.6694 0.7392 +vn 0.3400 0.5814 0.7392 +vn 0.4946 0.8518 -0.1726 +vn 0.1109 0.9304 -0.3493 +vn -0.6733 -0.7394 -0.0000 +vn -0.9158 -0.4016 -0.0000 +vn -0.3114 -0.9503 -0.0046 +vn -0.4479 0.5030 0.7392 +vn -0.2045 0.6417 0.7392 +vn 0.0989 -0.9951 -0.0099 +vn -0.3673 -0.9294 0.0358 +vn -0.4535 -0.8912 -0.0103 +vn -0.4039 -0.8909 -0.2076 +vn -0.0017 -0.0000 1.0000 +vn -0.0025 1.0000 -0.0008 +vn -0.0000 1.0000 -0.0000 +vn -0.0021 1.0000 -0.0009 +vn -0.0000 -0.6554 0.7553 +vn 0.0452 -0.9968 -0.0659 +vn 0.9831 0.0449 -0.1776 +vn 0.9983 0.0228 -0.0531 +vn 0.9927 -0.0741 -0.0955 +vn -0.0004 0.3482 -0.9374 +vn -0.0004 0.6966 -0.7174 +vn 0.0003 0.9993 -0.0384 +vn 0.0142 0.9979 -0.0633 +vn 0.0067 0.9980 -0.0629 +vn 0.1200 0.9928 -0.0000 +vn -0.0026 0.9366 -0.3503 +vn -0.1083 -0.9792 0.1718 +vn -0.1072 -0.9933 -0.0440 +vn 0.0001 -0.9824 -0.1867 +vn 0.9851 -0.1721 0.0025 +vn 0.9925 -0.0814 0.0912 +vn 0.0018 -1.0000 -0.0084 +vn 0.0037 -1.0000 -0.0012 +vn 0.0029 -1.0000 0.0014 +vn -0.1136 0.8968 -0.4277 +vn -0.0942 0.8866 -0.4529 +vn -0.1184 0.8991 -0.4213 +vn -0.1581 0.9165 -0.3675 +vn 0.0009 -0.0024 1.0000 +vn 0.0001 0.0284 0.9996 +vn 0.0002 -0.0018 1.0000 +vn 0.8973 -0.4414 0.0042 +vn -0.0004 0.1219 -0.9925 +vn 0.7295 0.6839 -0.0003 +vn 0.5790 0.8153 -0.0068 +vn 0.6337 0.7735 -0.0069 +vn 0.0113 0.0305 -0.9995 +vn 0.0086 0.0271 -0.9996 +vn 0.0199 0.0411 -0.9990 +vn -0.9999 -0.0000 0.0142 +vn -0.7041 -0.0000 0.7101 +vn 1.0000 -0.0000 -0.0006 +vn -0.1262 0.0533 -0.9906 +vn -0.0430 0.0181 -0.9989 +vn -0.1685 0.0711 -0.9831 +vn 0.0043 1.0000 0.0032 +vn 0.0094 0.9999 0.0069 +vn 0.0158 0.9998 0.0116 +vn 0.6908 -0.0000 0.7231 +vn 0.9997 -0.0000 -0.0236 +vn 0.9745 0.2143 -0.0661 +vn 0.9856 0.1607 0.0534 +vn 0.0041 0.2804 0.9599 +vn -0.0168 -0.0144 0.9998 +vn -0.0038 0.0246 0.9997 +vn -0.0000 0.6819 0.7314 +vn -0.0000 0.8166 0.5771 +vn -0.0000 0.9998 0.0183 +vn 0.0018 -1.0000 -0.0003 +vn 0.0006 -1.0000 -0.0003 +vn -0.0000 0.0287 0.9996 +vn -0.0000 -0.0000 1.0000 +vn 0.9707 0.0306 0.2384 +vn 0.9724 0.0300 0.2313 +vn 0.9706 0.0306 0.2387 +vn -0.9718 -0.0648 -0.2266 +vn -0.9406 -0.2741 -0.2004 +vn -0.9404 -0.2741 -0.2012 +vn -0.9569 0.1475 -0.2503 +vn -0.9827 0.0237 0.1835 +vn -0.9812 0.0242 0.1915 +vn -0.9811 0.0243 0.1918 +vn 0.9831 -0.0601 -0.1729 +vn 0.9527 -0.2613 -0.1549 +vn 0.9832 -0.0589 -0.1726 +vn 0.9687 0.1448 -0.2018 +vn -0.0000 1.0000 -0.0045 +vn -0.0002 1.0000 -0.0045 +vn -0.0003 1.0000 -0.0045 +vn 0.9999 -0.0000 -0.0108 +vn 0.9999 -0.0126 -0.0065 +vn 0.0001 0.0285 0.9996 +vn 0.3645 -0.8229 0.4359 +vn 0.3824 -0.9234 -0.0325 +vn 0.3899 -0.9200 -0.0399 +vn 0.3612 -0.5353 0.7635 +vn 0.3238 -0.8590 0.3965 +vn 0.3752 -0.0534 0.9254 +vn 0.3106 -0.1017 0.9451 +vn 0.3251 -0.8385 -0.4373 +vn 0.9475 -0.2902 -0.1343 +vn 0.3836 0.7520 -0.5360 +vn 0.4112 0.5668 -0.7139 +vn 0.3864 0.6004 -0.7002 +vn -0.3535 -0.8400 0.4116 +vn -0.4504 -0.7240 0.5225 +vn -0.4720 -0.8446 0.2528 +vn -0.7143 -0.4904 -0.4994 +vn -0.2033 0.2636 -0.9430 +vn 0.9709 -0.2396 0.0042 +vn 0.8155 -0.4857 0.3146 +vn 0.7604 -0.6490 -0.0219 +vn 0.5391 0.8417 0.0301 +vn 0.7112 0.6632 0.2331 +vn 0.7465 0.6602 -0.0822 +vn 0.9303 -0.0631 0.3612 +vn 0.6451 -0.7067 0.2906 +vn 0.5792 -0.8137 0.0489 +vn 0.9600 0.2504 0.1255 +vn 0.9928 0.0081 0.1193 +vn -0.1143 -0.8962 0.4287 +vn -0.1749 -0.9587 0.2241 +vn -0.4743 0.8627 -0.1755 +vn 0.7043 -0.0757 0.7059 +vn 0.0227 0.9724 0.2321 +vn 0.8009 0.3815 0.4616 +vn 0.6057 0.6268 0.4902 +vn 0.7148 0.2916 0.6357 +vn 0.4741 0.8413 0.2598 +vn 0.5823 0.1248 0.8034 +vn 0.5530 -0.2778 0.7855 +vn 0.9983 -0.0196 0.0542 +vn 0.9948 0.0722 -0.0721 +vn 0.9990 0.0262 0.0369 +vn -0.0186 -0.9856 -0.1678 +vn 0.1023 -0.5718 -0.8140 +vn 0.0710 -0.5485 -0.8331 +vn 0.2596 -0.6742 -0.6914 +vn -0.0992 -0.4054 -0.9087 +vn 0.0756 0.5249 -0.8478 +vn -0.7970 -0.4900 -0.3531 +vn -0.7982 -0.4757 -0.3697 +vn -0.7937 -0.3528 -0.4955 +vn -0.8414 0.1993 0.5023 +vn -0.7328 -0.4461 0.5138 +vn 0.0886 -0.7667 0.6358 +vn 0.0340 -0.7415 0.6701 +vn -0.0879 -0.6726 0.7347 +vn 0.0707 0.9364 0.3438 +vn 0.7446 -0.4023 0.5326 +vn -0.3947 0.1141 0.9117 +vn -0.4336 0.3707 0.8213 +vn -0.4368 -0.1116 0.8926 +vn -0.4260 0.6842 0.5920 +vn -0.4453 0.7326 0.5148 +vn -0.4612 0.8601 0.2182 +vn -0.4286 -0.4827 0.7638 +vn -0.3904 -0.6018 0.6967 +vn -0.9862 0.1546 -0.0595 +vn -0.9704 0.1800 -0.1609 +vn -0.9787 0.0457 -0.2004 +vn -0.3978 -0.2910 0.8701 +vn -0.9760 0.0768 0.2039 +vn -0.9928 0.0800 0.0891 +vn -0.9843 -0.0923 0.1501 +vn -0.9770 0.1691 0.1297 +vn -0.9805 0.1957 0.0197 +vn -0.9841 0.1321 -0.1188 +vn 0.8076 -0.5742 0.1343 +vn -0.4924 0.8275 -0.2696 +vn -0.4715 0.7025 -0.5330 +vn -0.4923 0.8705 -0.0008 +vn -0.4055 0.3268 -0.8537 +vn -0.4074 0.6839 -0.6052 +vn -0.3904 0.3924 -0.8329 +vn -0.9479 0.1166 -0.2965 +vn -0.9627 -0.0337 -0.2685 +vn -0.3664 -0.9304 -0.0060 +vn -0.4430 -0.8965 -0.0008 +vn -0.3910 -0.8562 -0.3376 +vn -0.3986 0.9170 -0.0151 +vn -0.4328 -0.1135 -0.8943 +vn -0.3536 0.0743 -0.9324 +vn -0.3524 -0.2441 -0.9035 +vn -0.3539 -0.8766 -0.3259 +vn -0.3830 -0.6564 -0.6499 +vn -0.0178 0.5246 0.8512 +vn -0.0065 0.5136 0.8580 +vn 0.1034 0.3997 0.9108 +vn -0.5086 -0.4131 -0.7555 +vn -0.3916 0.8853 -0.2509 +vn 0.7564 -0.2088 -0.6199 +vn 0.7906 -0.4557 -0.4091 +vn 0.5978 -0.5372 -0.5951 +vn 0.5275 0.8051 -0.2713 +vn 0.6522 0.5935 -0.4716 +vn 0.7920 0.0346 -0.6095 +vn 0.9097 -0.1437 -0.3896 +vn 0.9148 0.3531 -0.1960 +vn 0.8482 0.1887 -0.4949 +vn 0.9826 0.0939 -0.1604 +vn 0.7193 -0.6460 -0.2555 +vn -0.4108 0.8642 0.2906 +vn -0.9773 -0.2010 0.0668 +vn -0.9808 0.1178 0.1555 +vn -0.9847 -0.0910 -0.1484 +vn 0.0175 0.1523 0.9882 +vn 0.0189 0.1480 0.9888 +vn 0.0158 0.1575 0.9874 +vn 0.1247 0.9722 0.1981 +vn -0.0566 0.8810 0.4698 +vn -0.1013 0.9636 0.2475 +vn 0.1630 0.7564 0.6335 +vn -0.2727 -0.4961 0.8243 +vn -0.3054 -0.4608 0.8333 +vn -0.3051 -0.4610 0.8333 +vn 0.0442 -0.7714 -0.6348 +vn 0.2009 -0.7448 -0.6364 +vn 0.0073 -0.7946 -0.6071 +vn 0.4431 -0.5555 -0.7036 +vn 0.4072 -0.7605 -0.5058 +vn 0.4200 0.3517 -0.8366 +vn -0.0539 -0.9955 -0.0777 +vn -0.0050 -0.0231 -0.9997 +vn -0.0411 -0.0778 -0.9961 +vn -0.0039 -0.0116 -0.9999 +vn 0.9552 0.2647 0.1322 +vn 0.9820 0.0741 0.1735 +vn 0.9103 -0.3820 0.1595 +vn -0.9902 -0.1279 -0.0562 +vn -0.9752 -0.1999 0.0954 +vn 0.4056 0.4477 0.7969 +vn 0.3645 0.6106 0.7030 +vn 0.3479 0.2792 0.8950 +vn 0.3710 -0.0480 0.9274 +vn 0.3360 -0.1276 0.9332 +vn -0.9689 -0.1862 -0.1627 +vn -0.8509 -0.4771 0.2199 +vn -0.8390 -0.3515 0.4155 +vn -0.7941 -0.6074 -0.0220 +vn -0.7314 -0.6814 -0.0284 +vn 0.1650 0.1265 0.9782 +vn -0.1847 -0.1259 -0.9747 +vn -0.2334 0.1254 0.9643 +vn 0.2329 -0.1253 -0.9644 +vn -1.0000 -0.0000 -0.0000 +vn -0.3691 0.0072 0.9294 +vn -0.3681 -0.1730 0.9135 +vn -0.3813 0.0112 0.9244 +vn 0.0081 0.4087 -0.9126 +vn -0.0087 0.1110 -0.9938 +vn -0.0703 0.2353 -0.9694 +vn -0.1176 -0.6420 -0.7576 +vn -0.2294 -0.6967 -0.6797 +vn -0.0742 -0.3024 -0.9503 +vn -0.9013 -0.1377 -0.4107 +vn -0.9578 0.1185 -0.2619 +vn -0.9954 -0.0943 0.0135 +vn -0.9961 0.0875 -0.0078 +vn -0.9976 0.0018 -0.0688 +vn 0.4916 0.8526 0.1771 +vn 0.7603 0.5524 0.3418 +vn 0.4699 0.8139 0.3418 +vn -0.9453 -0.3189 -0.0685 +vn -0.9656 -0.2596 0.0143 +vn -0.9825 -0.1716 -0.0729 +vn -0.9897 0.1273 -0.0651 +vn -0.9905 0.1182 0.0706 +vn -0.0008 0.0024 -1.0000 +vn 0.0030 -0.0002 -1.0000 +vn -0.0004 0.0015 -1.0000 +vn 0.9994 -0.0340 0.0001 +vn 0.9976 -0.0490 0.0498 +vn 0.9977 -0.0090 -0.0678 +vn 0.7339 -0.3981 0.5504 +vn 0.7631 -0.3508 0.5427 +vn 0.7666 -0.3449 0.5416 +vn 0.7953 -0.2921 0.5311 +vn 0.9956 -0.0616 0.0709 +vn 0.9946 -0.0619 0.0838 +vn -0.9288 -0.3706 0.0013 +vn -0.3508 0.1838 0.9183 +vn -0.4838 -0.6747 0.5575 +vn -0.2608 -0.6421 0.7209 +vn -0.4930 -0.7244 0.4818 +vn -0.3317 0.1682 0.9283 +vn -0.5165 -0.7079 0.4818 +vn -0.4492 -0.8152 0.3657 +vn -0.9362 -0.0121 0.3512 +vn -0.9689 -0.1148 0.2191 +vn -0.9240 -0.1016 0.3686 +vn -0.6115 -0.6564 0.4419 +vn -0.9615 0.0292 0.2733 +vn -0.9096 0.1065 0.4017 +vn -0.9940 -0.0119 0.1085 +vn -0.9546 -0.2834 0.0921 +vn -0.3090 0.9510 0.0075 +vn -0.0798 0.9967 0.0149 +vn -0.0562 0.9878 0.1452 +vn 0.7964 0.5785 0.1765 +vn 0.5090 0.8608 0.0009 +vn 0.8156 0.5786 -0.0003 +vn 0.1107 0.9938 0.0038 +vn -0.0973 0.9952 0.0063 +vn -0.0089 0.9999 -0.0131 +vn -0.0061 0.9998 -0.0194 +vn -0.0082 0.9999 -0.0112 +vn -0.0015 -1.0000 -0.0078 +vn 0.9727 -0.0298 -0.2303 +vn 0.9144 0.4047 -0.0014 +vn 0.9573 0.2818 -0.0644 +vn -0.0000 0.0003 -1.0000 +vn 0.0017 -0.0004 -1.0000 +vn 0.3765 -0.9264 -0.0019 +vn 0.3764 -0.9265 -0.0019 +vn 0.3729 -0.9279 -0.0004 +vn -0.2531 0.9674 0.0009 +vn -0.2513 0.9679 0.0026 +vn 1.0000 -0.0078 -0.0000 +vn -0.0289 -0.9544 -0.2971 +vn 0.9578 -0.0498 0.2830 +vn 0.9748 -0.1065 0.1962 +vn 0.9794 -0.1467 0.1386 +vn 0.0366 -0.9983 -0.0449 +vn 0.6564 -0.7386 0.1537 +vn 0.6364 -0.7514 0.1742 +vn 0.7025 -0.7055 0.0938 +vn 0.0953 -0.9812 -0.1677 +vn 0.9996 0.0274 -0.0007 +vn -0.8144 0.5325 0.2308 +vn -0.8095 0.5871 -0.0023 +vn -0.5896 0.7650 0.2591 +vn 0.0018 -0.9998 -0.0192 +vn -0.0208 -0.9998 -0.0019 +vn -0.4087 0.9125 -0.0194 +vn -0.5149 0.8572 -0.0124 +vn -0.2777 0.9606 -0.0037 +vn -0.0033 0.0009 1.0000 +vn 0.0002 0.0019 1.0000 +vn 0.0023 -0.0006 1.0000 +vn -0.5307 0.8474 -0.0129 +vn -0.7030 0.7110 -0.0176 +vn -1.0000 -0.0000 0.0006 +vn -0.6231 -0.7821 -0.0009 +vn -0.5582 -0.8297 0.0038 +vn -0.6170 -0.7870 0.0022 +vn -0.6759 -0.7370 -0.0012 +vn -0.0275 0.0087 -0.9996 +vn -0.0296 0.0198 -0.9994 +vn -0.0484 -0.0011 -0.9988 +vn -0.3797 0.9250 0.0118 +vn -0.3797 0.9251 0.0118 +vn 0.9811 0.1910 -0.0305 +vn -0.1496 -0.9299 -0.3359 +vn 1.0000 -0.0000 -0.0012 +vn -0.5021 -0.8391 0.2096 +vn 0.9071 -0.4209 -0.0000 +vn 0.6429 -0.7367 0.2095 +vn -0.9748 0.2231 -0.0000 +vn -0.7820 0.5870 0.2095 +vn -0.7998 0.6003 -0.0000 +vn -0.4756 0.8543 0.2096 +vn 0.8869 -0.4116 0.2096 +vn -0.8181 -0.5751 -0.0000 +vn -0.9595 -0.1884 0.2096 +vn -0.9813 -0.1926 -0.0000 +vn 0.9198 0.3925 -0.0000 +vn 0.9999 -0.0156 -0.0000 +vn -0.9532 0.2182 0.2095 +vn -0.7422 -0.5218 0.4205 +vn -0.4658 -0.7786 0.4205 +vn 0.2938 0.8584 0.4206 +vn -0.1089 -0.9006 0.4207 +vn 0.5965 -0.6836 0.4205 +vn 0.2668 -0.8671 0.4207 +vn -0.0808 0.9037 0.4205 +vn -0.7256 0.5447 0.4205 +vn -0.4413 0.7927 0.4206 +vn 0.7284 -0.5468 0.4129 +vn -0.8844 0.2025 0.4205 +vn -0.8903 -0.1748 0.4205 +vn 0.8127 0.5822 -0.0226 +vn 0.9192 0.3930 -0.0260 +vn 0.6795 0.7334 -0.0226 +vn -0.9151 -0.4032 0.0002 +vn -0.5148 -0.8573 -0.0017 +vn -0.6723 -0.7403 -0.0047 +vn -0.7999 -0.5623 0.2096 +vn -0.5135 -0.8581 -0.0000 +vn -0.2772 -0.9608 -0.0095 +vn 0.2928 -0.9561 -0.0124 +vn 0.1018 -0.9947 -0.0147 +vn 0.5061 0.8623 -0.0183 +vn 0.3221 0.9465 -0.0176 +vn -0.1219 -0.9925 -0.0072 +vn -0.3020 0.9533 -0.0069 +vn -0.0908 0.9958 -0.0117 +vn -0.4878 0.8729 -0.0061 +vn 0.1119 0.9936 -0.0127 +vn -0.6639 0.7478 -0.0018 +vn 0.6560 -0.7546 -0.0175 +vn 0.4648 -0.8852 -0.0210 +vn 0.7449 0.5238 0.4132 +vn 0.6175 0.6647 0.4205 +vn 0.9060 -0.4227 -0.0238 +vn 0.8056 -0.5920 -0.0240 +vn 0.9791 0.2020 -0.0249 +vn 0.9995 -0.0156 -0.0271 +vn 0.9768 -0.2129 -0.0249 +vn -1.0000 0.0056 0.0030 +vn -0.9813 -0.1923 0.0008 +vn -0.8180 -0.5753 0.0005 +vn 0.7549 -0.5549 -0.3495 +vn 0.3335 -0.5851 0.7392 +vn 0.0667 -0.6702 0.7392 +vn -0.6138 0.2774 0.7392 +vn -0.4535 -0.4980 0.7392 +vn -0.2117 -0.6394 0.7392 +vn -0.6735 0.0038 0.7392 +vn 0.6580 -0.1437 0.7392 +vn 0.5426 -0.3989 0.7392 +vn -0.6168 -0.2705 0.7392 +vn -0.2117 -0.6393 0.7392 +vn 0.6595 0.1364 0.7392 +vn 0.5471 0.3928 0.7392 +vn 0.6595 0.1363 0.7392 +vn -0.6735 0.0037 0.7392 +vn 0.4925 -0.8703 -0.0044 +vn 0.8057 -0.5923 -0.0000 +vn 0.9770 -0.2134 -0.0000 +vn 0.8123 0.5833 -0.0000 +vn 0.9793 0.2025 -0.0000 +vn 0.5048 0.8632 -0.0000 +vn 0.1106 0.9939 0.0008 +vn -0.3042 0.9526 0.0008 +vn -0.6650 0.7469 -0.0000 +vn -0.9113 0.4118 -0.0000 +vn -1.0000 0.0056 -0.0000 +vn -0.9999 -0.0100 0.0011 +vn -0.9226 -0.3347 -0.1916 +vn -0.9843 0.1762 0.0141 +vn 0.0493 -0.3646 -0.9299 +vn -0.3572 -0.4007 0.8437 +vn -0.9407 0.2753 0.1981 +vn 0.9799 0.1650 -0.1122 +vn -0.3968 0.7908 -0.4661 +vn -0.8892 0.3724 -0.2657 +vn -0.7649 -0.6180 -0.1816 +vn 0.1875 -0.8034 0.5651 +vn 0.9621 -0.1015 0.2532 +vn 0.6808 0.3512 -0.6427 +vn 0.4103 0.6956 -0.5898 +vn -0.4863 -0.6284 -0.6071 +vn -0.9748 -0.2230 -0.0024 +vn -0.9088 -0.3885 -0.1520 +vn -0.9670 -0.0055 0.2547 +vn -0.9595 -0.1390 0.2450 +vn -0.4087 0.4417 0.7987 +vn -0.7515 -0.6337 -0.1835 +vn -0.7690 -0.6052 -0.2058 +vn 0.4685 0.2949 -0.8328 +vn 0.9838 0.0412 0.1746 +vn 0.3757 0.6927 0.6157 +vn 0.3094 0.7720 0.5552 +vn -0.8068 -0.3446 0.4799 +vn -0.7864 -0.2399 0.5692 +vn 0.8992 0.4004 0.1767 +vn 0.9136 0.4067 -0.0020 +vn 0.0621 0.8997 0.4320 +vn 0.0030 0.9404 0.3401 +vn 0.1573 0.9267 0.3412 +vn 0.8607 0.3833 0.3351 +vn -0.4473 -0.8943 -0.0147 +vn -0.4752 -0.8212 -0.3159 +vn 0.7858 0.1059 0.6093 +vn 0.8061 0.1543 0.5712 +vn 0.8449 0.2860 0.4521 +vn 0.0037 -0.0020 1.0000 +vn 0.0015 -0.0014 1.0000 +vn 0.0012 0.0035 1.0000 +vn -0.0046 -1.0000 -0.0023 +vn 0.5077 0.8616 -0.0000 +vn 0.3499 0.9368 -0.0000 +vn 0.0001 -0.0000 1.0000 +vn -0.0000 -0.0001 1.0000 +vn 0.0827 -0.0776 0.9935 +vn 0.0277 -0.0409 0.9988 +vn 0.0457 -0.0116 0.9989 +vn 0.0855 -0.9899 -0.1130 +vn -1.0000 -0.0016 -0.0001 +vn -1.0000 -0.0018 -0.0001 +vn -1.0000 0.0043 0.0001 +vn 0.1047 0.9631 0.2481 +vn 0.1599 0.9869 0.0225 +vn -0.8746 -0.3672 -0.3166 +vn -0.9735 0.2134 -0.0821 +vn -0.9706 -0.1246 -0.2062 +vn 0.0144 -0.9998 -0.0158 +vn -0.0010 -0.9999 -0.0158 +vn 0.0077 -0.9999 0.0101 +vn -0.0034 -1.0000 0.0041 +vn 0.0251 -0.9777 0.2085 +vn 0.9978 -0.0667 0.0025 +vn 0.9990 -0.0249 0.0367 +vn 1.0000 0.0030 0.0092 +vn -1.0000 -0.0072 0.0035 +vn -0.9999 -0.0151 -0.0013 +vn -0.9995 0.0309 0.0025 +vn 0.5280 -0.8468 0.0645 +vn 0.6505 -0.7359 0.1878 +vn 0.6366 -0.7513 0.1741 +vn 0.2913 0.9566 -0.0036 +vn 0.3038 0.9527 0.0077 +vn 0.3420 0.9387 0.0424 +vn -0.0000 0.9999 -0.0143 +vn -0.0000 0.9993 -0.0384 +vn -0.0006 -0.0028 -1.0000 +vn -0.0001 -0.0003 -1.0000 +vn -0.0333 0.0351 -0.9988 +vn 0.6681 -0.7142 0.2089 +vn -0.9994 0.0120 0.0331 +vn -0.9963 0.0214 0.0837 +vn -1.0000 -0.0029 0.0089 +vn 0.0003 -0.0013 1.0000 +vn -0.0002 -0.0014 1.0000 +vn 0.0001 -0.0002 1.0000 +vn 0.9999 0.0100 -0.0000 +vn 1.0000 0.0100 -0.0000 +vn 0.9123 0.4096 -0.0000 +vn 1.0000 0.0031 -0.0000 +vn 0.6668 0.7452 -0.0000 +vn 0.9148 -0.4038 -0.0000 +vn 0.6715 -0.7410 -0.0000 +vn 0.3120 -0.9501 -0.0000 +vn -0.1014 -0.9948 -0.0000 +vn -0.9775 -0.2110 -0.0000 +vn -0.9788 0.2048 -0.0000 +vn -0.8109 0.5852 -0.0000 +vn 0.3060 0.9520 -0.0000 +vn -0.1077 0.9942 -0.0000 +vn -0.4972 -0.8676 -0.0000 +vn -0.8072 -0.5903 -0.0000 +vn -0.5027 0.8644 -0.0000 +vn -0.9999 -0.0033 -0.0105 +vn -1.0000 -0.0071 -0.0049 +vn -0.9998 -0.0144 -0.0167 +vn -0.9998 0.0134 -0.0140 +vn -0.9995 -0.0234 -0.0191 +vn -0.9997 -0.0195 -0.0126 +vn 0.6871 -0.7262 -0.0214 +vn 0.9841 0.1539 -0.0890 +vn -0.0016 0.9952 -0.0981 +vn -0.9999 -0.0063 -0.0082 +vn -0.9996 -0.0298 -0.0002 +vn -0.0912 -0.7183 -0.6898 +vn 0.0295 -0.0027 0.9996 +vn 0.0264 -0.0028 0.9996 +vn 0.0065 -0.0011 1.0000 +vn -0.0094 0.0173 0.9998 +vn -0.0091 0.0192 0.9998 +vn -0.0083 0.0185 0.9998 +vn -0.0872 -0.9909 -0.1022 +vn -0.0034 0.0158 -0.9999 +vn 0.0058 0.0162 -0.9999 +vn 0.8936 0.1754 0.4131 +vn 0.8878 -0.2032 0.4130 +vn 0.0937 -0.9323 -0.3495 +vn 0.4730 0.8088 -0.3494 +vn -0.0033 1.0000 -0.0003 +vn -0.0034 1.0000 -0.0000 +vn 0.9851 0.0990 -0.1407 +vn -0.0002 0.6962 -0.7178 +vn -0.0000 0.9980 -0.0625 +vn 0.0048 -1.0000 -0.0019 +vn 0.0040 -1.0000 -0.0011 +vn -0.0002 -0.0027 1.0000 +vn 0.0011 -0.0025 1.0000 +vn 0.5284 0.8490 -0.0032 +vn 0.7972 0.6037 -0.0000 +vn -0.0000 0.0164 -0.9999 +vn -0.0000 0.0327 0.9995 +vn -0.0000 0.2852 0.9585 +vn 0.0224 0.0333 0.9992 +vn -0.0032 -1.0000 -0.0000 +vn 0.9725 0.0300 0.2310 +vn -0.9719 -0.0648 -0.2263 +vn -0.9828 0.0237 0.1831 +vn 0.9525 -0.2613 -0.1562 +vn 0.9686 0.1448 -0.2022 +vn 0.9995 -0.0310 -0.0002 +vn 0.9999 -0.0065 -0.0086 +vn 0.3996 -0.4929 0.7729 +vn 0.3836 0.7520 -0.5361 +vn 0.3828 0.7516 -0.5373 +vn -0.0973 0.5972 0.7962 +vn 0.0212 0.1409 0.9898 +vn 0.0081 -0.0203 -0.9998 +vn 0.0110 -0.0303 -0.9995 +vn 0.0166 -0.0264 -0.9995 +vn -0.0082 0.0052 -1.0000 +vn -0.0189 0.0031 -0.9998 +vn -0.0053 0.0052 -1.0000 +vn 0.0165 -0.0264 -0.9995 +vn 0.0083 -0.0203 -0.9998 +vn -0.3623 -0.1676 0.9169 +vn 0.0201 -0.0057 -0.9998 +vn 0.0081 -0.0023 -1.0000 +vn 0.0006 0.0033 -1.0000 +vn -0.0003 0.0030 -1.0000 +vn 0.0015 0.9999 -0.0103 +vn -0.0032 1.0000 -0.0016 +vn -0.0030 -1.0000 -0.0016 +vn 0.9140 0.4056 -0.0016 +vn 0.9538 -0.1365 -0.2676 +vn 0.9537 -0.0289 -0.2993 +vn 0.9503 -0.0000 -0.3113 +vn 0.0142 0.0012 -0.9999 +vn 0.0115 -0.0069 -0.9999 +vn 0.0176 -0.0074 -0.9998 +vn 0.0191 0.0055 -0.9998 +vn -0.0113 -0.0062 -0.9999 +vn 0.0180 -0.0102 -0.9998 +vn 0.0063 0.0012 -1.0000 +vn 0.0379 -0.0230 -0.9990 +vn 0.0357 -0.0342 -0.9988 +vn -0.3729 0.9279 0.0038 +vn -0.3747 0.9272 0.0019 +vn 0.9100 -0.0505 0.4116 +vn 0.9151 -0.0470 0.4004 +vn 0.9908 0.1342 0.0165 +vn 0.9848 0.1740 -0.0006 +vn 0.9875 -0.1094 0.1136 +vn 0.6233 -0.7423 0.2458 +vn -0.0163 -0.9997 -0.0158 +vn 0.9996 0.0275 -0.0007 +vn 0.9998 0.0175 -0.0011 +vn 0.9998 0.0178 -0.0011 +vn 1.0000 0.0003 -0.0000 +vn -0.2911 0.8960 0.3352 +vn -0.4699 0.8139 0.3418 +vn -0.6854 0.5137 0.5161 +vn -0.8607 0.3832 0.3352 +vn -0.9136 0.4067 0.0003 +vn -0.6691 0.7432 0.0032 +vn -0.0014 -0.0017 1.0000 +vn -0.0079 0.0242 0.9997 +vn 0.0113 -0.0005 0.9999 +vn 0.0052 -0.0017 1.0000 +vn 0.0100 0.0008 1.0000 +vn 0.0219 0.0098 0.9997 +vn -0.0028 -0.0002 1.0000 +vn -0.0030 -0.0004 1.0000 +vn -0.0126 0.0217 0.9997 +vn -0.0078 0.0066 0.9999 +vn -0.0053 0.0017 1.0000 +vn -0.0021 -0.0010 1.0000 +vn -0.6258 0.7800 -0.0036 +vn -0.5583 -0.8296 0.0038 +vn -0.6874 -0.7262 -0.0075 +vn -0.0714 -0.0027 -0.9974 +vn -0.0683 -0.0028 -0.9977 +vn -0.0323 0.0156 -0.9994 +vn -0.0347 0.0174 -0.9992 +vn -0.0184 0.0055 -0.9998 +vn -0.9071 0.4209 -0.0000 +vn 0.7450 0.5238 0.4131 +vn 0.7063 -0.0395 0.7068 +vn 0.0006 0.0003 1.0000 +vn -0.0023 0.0048 1.0000 +vn -0.0101 0.0039 0.9999 +vn -0.0031 0.0053 1.0000 +vn 0.0067 0.0043 1.0000 +vn 0.0064 -0.0029 1.0000 +vn -0.0000 0.0001 1.0000 +vn -0.0001 -0.0000 1.0000 +vn -0.0002 -0.0001 1.0000 +vn -0.0003 -0.0004 1.0000 +vn 0.0003 -0.0004 1.0000 +vn 0.0002 -0.0001 1.0000 +vn 0.0502 0.0051 0.9987 +vn 0.0605 0.0030 0.9982 +vn 0.0473 0.0051 0.9989 +vn 0.0162 -0.0329 0.9993 +vn 0.0467 -0.0229 0.9986 +vn -0.9999 0.0167 -0.0002 +vn -0.9999 0.0166 -0.0002 +vn -0.9346 0.3557 -0.0000 +vn -0.9342 0.3568 -0.0002 +vn -0.9545 -0.0094 -0.2980 +vn -0.9584 -0.0547 -0.2802 +vn 0.0014 -0.9967 0.0809 +vn -0.0131 -0.9999 0.0094 +vn -0.0467 -0.9980 -0.0425 +vn -0.0167 -0.9667 -0.2554 +vn 0.0010 -0.9859 0.1676 +vn -0.0332 -0.9994 -0.0085 +vn 0.0598 -0.9982 -0.0001 +vn 0.9880 -0.1342 0.0770 +vn 0.9993 -0.0247 0.0276 +vn 0.9773 -0.2038 0.0573 +vn 0.9690 -0.2315 0.0865 +vn 0.9725 -0.2239 0.0642 +vn -0.9909 0.1330 0.0213 +vn -0.9936 0.1103 0.0229 +vn -0.9972 0.0742 -0.0029 +vn -0.9985 0.0524 0.0149 +vn -1.0000 -0.0049 0.0037 +vn -0.9999 -0.0116 -0.0006 +vn -1.0000 -0.0051 0.0015 +vn -1.0000 0.0016 -0.0005 +vn 0.2611 0.9648 -0.0304 +vn 0.0092 -0.0671 -0.9977 +vn -0.0097 0.0008 -1.0000 +vn 0.0014 -0.0563 -0.9984 +vn -0.0066 0.0063 -1.0000 +vn -0.0167 0.0132 -0.9998 +vn 0.0191 -0.0579 -0.9981 +vn -0.0261 -0.0183 -0.9995 +vn -0.0460 0.0158 -0.9988 +vn -0.2141 0.0549 -0.9753 +vn -0.2055 0.0399 -0.9779 +vn -0.0823 0.0220 -0.9964 +vn -0.0581 -0.0022 -0.9983 +vn -0.0202 0.1220 -0.9923 +vn -0.0008 -0.0015 -1.0000 +vn 0.0166 0.2081 -0.9780 +vn 0.0201 0.1943 -0.9807 +vn -0.0022 0.2634 -0.9647 +vn -0.9850 0.1712 0.0195 +vn -0.9776 0.2095 0.0217 +vn -0.9378 -0.0362 0.3452 +vn -0.9241 -0.0466 0.3792 +vn 0.0002 -0.0007 1.0000 +vn 0.0024 -0.0026 1.0000 +vn -0.0002 -0.0000 1.0000 +vn -0.0003 -0.0009 1.0000 +vt 0.296448 0.102843 +vt 0.381104 0.047947 +vt 0.035834 0.368077 +vt 0.260019 0.614243 +vt 0.318792 0.625190 +vt 0.275800 0.672218 +vt 0.064766 0.305619 +vt 0.214319 0.161856 +vt 0.375342 0.030583 +vt 0.007698 0.338314 +vt 0.029408 0.318256 +vt 0.043335 0.310187 +vt 0.318905 0.667648 +vt 0.252574 0.694311 +vt 0.236882 0.637031 +vt 0.150287 0.628071 +vt 0.161490 0.706348 +vt 0.155366 0.668298 +vt 0.158302 0.652484 +vt 0.161554 0.687117 +vt 0.159356 0.670738 +vt 0.177046 0.635712 +vt 0.113858 0.672367 +vt 0.172255 0.628996 +vt 0.099369 0.633504 +vt 0.170505 0.620102 +vt 0.100245 0.588370 +vt 0.172087 0.610476 +vt 0.193985 0.511804 +vt 0.184343 0.596378 +vt 0.152646 0.515062 +vt 0.206820 0.627110 +vt 0.277410 0.625302 +vt 0.267428 0.666574 +vt 0.192657 0.639020 +vt 0.171748 0.713811 +vt 0.184184 0.639184 +vt 0.199912 0.595309 +vt 0.231216 0.519947 +vt 0.209484 0.608292 +vt 0.277410 0.583179 +vt 0.201008 0.635047 +vt 0.169178 0.452166 +vt 0.078800 0.768428 +vt 0.075894 0.452870 +vt 0.064099 0.767980 +vt 0.061196 0.452764 +vt 0.323553 0.069332 +vt 0.329659 0.048130 +vt 0.388490 0.045773 +vt 0.180052 0.766554 +vt 0.293930 0.450084 +vt 0.291558 0.766986 +vt 0.365394 0.036567 +vt 0.393169 0.043399 +vt 0.379297 0.054638 +vt 0.379304 0.071635 +vt 0.371065 0.062010 +vt 0.668046 0.738449 +vt 0.668026 0.728691 +vt 0.697871 0.729790 +vt 0.325815 0.430384 +vt 0.338798 0.430384 +vt 0.336684 0.785453 +vt 0.343554 0.027453 +vt 0.375485 0.025070 +vt 0.355937 0.047164 +vt 0.281354 0.120599 +vt 0.298249 0.138538 +vt 0.063679 0.307987 +vt 0.047021 0.304828 +vt 0.197459 0.172409 +vt 0.116186 0.647469 +vt 0.167094 0.533190 +vt 0.144756 0.611156 +vt 0.083961 0.329606 +vt 0.085997 0.346730 +vt 0.067528 0.358456 +vt 0.073363 0.319224 +vt 0.058636 0.333248 +vt 0.211458 0.187373 +vt 0.005853 0.351113 +vt 0.046154 0.345112 +vt 0.037898 0.385539 +vt 0.725084 0.164647 +vt 0.723553 0.158385 +vt 0.727062 0.163206 +vt 0.711602 0.183175 +vt 0.715876 0.183996 +vt 0.710769 0.185812 +vt 0.739821 0.127397 +vt 0.753782 0.142282 +vt 0.706307 0.182228 +vt 0.698730 0.216346 +vt 0.685786 0.204282 +vt 0.718775 0.155720 +vt 0.715259 0.221941 +vt 0.713491 0.155905 +vt 0.722526 0.120807 +vt 0.715955 0.186917 +vt 0.733490 0.219325 +vt 0.708645 0.158709 +vt 0.704953 0.122675 +vt 0.721039 0.185231 +vt 0.750106 0.207316 +vt 0.705023 0.163741 +vt 0.689598 0.132342 +vt 0.727836 0.175925 +vt 0.725106 0.181335 +vt 0.703336 0.169962 +vt 0.678716 0.148426 +vt 0.728637 0.169479 +vt 0.760042 0.187005 +vt 0.703689 0.176461 +vt 0.674296 0.168043 +vt 0.761256 0.163594 +vt 0.681265 0.208398 +vt 0.676971 0.187712 +vt 0.743470 0.121033 +vt 0.695706 0.222422 +vt 0.723381 0.112937 +vt 0.714770 0.229775 +vt 0.702885 0.115790 +vt 0.736080 0.226501 +vt 0.685430 0.127255 +vt 0.755277 0.212407 +vt 0.673365 0.145709 +vt 0.766255 0.188961 +vt 0.751196 0.205325 +vt 0.760981 0.185314 +vt 0.755725 0.210130 +vt 0.767870 0.162564 +vt 0.483959 0.110852 +vt 0.969960 0.121605 +vt 0.483787 0.118039 +vt 0.484212 0.175076 +vt 0.969565 0.167729 +vt 0.969630 0.173987 +vt 0.484952 0.119474 +vt 0.970126 0.130178 +vt 0.484753 0.126396 +vt 0.484329 0.181867 +vt 0.969728 0.180245 +vt 0.969960 0.136435 +vt 0.484458 0.133149 +vt 0.484471 0.188497 +vt 0.969847 0.186503 +vt 0.969796 0.142694 +vt 0.484387 0.139652 +vt 0.484622 0.195187 +vt 0.969975 0.192760 +vt 0.969665 0.148951 +vt 0.484246 0.146449 +vt 0.484770 0.202114 +vt 0.970101 0.199017 +vt 0.969579 0.155210 +vt 0.484148 0.153512 +vt 0.484907 0.209290 +vt 0.970219 0.205274 +vt 0.969540 0.161470 +vt 0.484103 0.160766 +vt 0.970306 0.211532 +vt 0.485009 0.216570 +vt 0.759437 0.138254 +vt 0.043825 0.574278 +vt 0.066391 0.622018 +vt 0.038510 0.624672 +vt 0.178363 0.485327 +vt 0.132179 0.524952 +vt 0.119564 0.496854 +vt 0.205193 0.738509 +vt 0.240940 0.692312 +vt 0.258566 0.716764 +vt 0.236791 0.498723 +vt 0.260084 0.551333 +vt 0.223314 0.526436 +vt 0.094770 0.548661 +vt 0.072289 0.528583 +vt 0.145225 0.738509 +vt 0.109974 0.690139 +vt 0.152169 0.707241 +vt 0.310309 0.578357 +vt 0.285685 0.625051 +vt 0.282244 0.585959 +vt 0.079910 0.659637 +vt 0.053992 0.673528 +vt 0.297153 0.677889 +vt 0.177850 0.517458 +vt 0.071684 0.582983 +vt 0.198662 0.708515 +vt 0.283142 0.531868 +vt 0.091276 0.714321 +vt 0.484133 0.168018 +vt 0.920731 0.597940 +vt 0.903938 0.543036 +vt 0.942946 0.580578 +vt 0.905043 0.780290 +vt 0.853566 0.769454 +vt 0.891577 0.755450 +vt 0.855245 0.526323 +vt 0.812701 0.559133 +vt 0.804567 0.531906 +vt 0.718087 0.662365 +vt 0.754338 0.618031 +vt 0.746375 0.662248 +vt 0.943559 0.742509 +vt 0.937649 0.684279 +vt 0.964783 0.690499 +vt 0.754744 0.706425 +vt 0.760609 0.764453 +vt 0.729498 0.718611 +vt 0.729002 0.606054 +vt 0.777975 0.581612 +vt 0.937145 0.639146 +vt 0.964783 0.632964 +vt 0.813680 0.764929 +vt 0.856535 0.797414 +vt 0.805776 0.792238 +vt 0.852526 0.554309 +vt 0.921362 0.725386 +vt 0.759688 0.560014 +vt 0.271796 0.663565 +vt 0.313734 0.629211 +vt 0.772519 0.110747 +vt 0.709912 0.117729 +vt 0.709912 0.110747 +vt 0.772519 0.117729 +vt 0.709912 0.124711 +vt 0.778726 0.742693 +vt 0.772519 0.124711 +vt 0.709912 0.131692 +vt 0.772519 0.131692 +vt 0.709912 0.138674 +vt 0.772519 0.138674 +vt 0.709912 0.145656 +vt 0.772519 0.145656 +vt 0.709912 0.152638 +vt 0.772519 0.152638 +vt 0.709912 0.159619 +vt 0.772519 0.159619 +vt 0.709912 0.166601 +vt 0.772519 0.166601 +vt 0.709912 0.173583 +vt 0.709912 0.180565 +vt 0.772519 0.173583 +vt 0.772519 0.180565 +vt 0.709912 0.187547 +vt 0.772519 0.187547 +vt 0.709912 0.194528 +vt 0.709912 0.201510 +vt 0.772519 0.194528 +vt 0.772519 0.201510 +vt 0.709912 0.208492 +vt 0.772519 0.208492 +vt 0.581093 0.645132 +vt 0.603781 0.639512 +vt 0.608740 0.661388 +vt 0.726981 0.174407 +vt 0.723067 0.177597 +vt 0.725165 0.173608 +vt 0.727752 0.169119 +vt 0.725819 0.169174 +vt 0.726656 0.164150 +vt 0.724946 0.165095 +vt 0.723836 0.160349 +vt 0.722687 0.162043 +vt 0.719758 0.158341 +vt 0.719376 0.160520 +vt 0.715092 0.158507 +vt 0.715527 0.160721 +vt 0.710689 0.160853 +vt 0.711840 0.162704 +vt 0.707359 0.164961 +vt 0.705935 0.175548 +vt 0.707675 0.170501 +vt 0.707942 0.174918 +vt 0.705716 0.170151 +vt 0.709047 0.166164 +vt 0.725435 0.158006 +vt 0.728801 0.162746 +vt 0.762432 0.162790 +vt 0.730144 0.168771 +vt 0.755795 0.142495 +vt 0.706247 0.182073 +vt 0.698598 0.218101 +vt 0.684639 0.205881 +vt 0.720407 0.155568 +vt 0.742762 0.127448 +vt 0.715944 0.186699 +vt 0.710628 0.185394 +vt 0.484476 0.179366 +vt 0.970192 0.175478 +vt 0.970245 0.181740 +vt 0.177028 0.485893 +vt 0.222095 0.526742 +vt 0.235358 0.499123 +vt 0.144451 0.739355 +vt 0.109116 0.691060 +vt 0.090460 0.715285 +vt 0.118256 0.497530 +vt 0.093555 0.549427 +vt 0.130944 0.525611 +vt 0.258511 0.551039 +vt 0.281310 0.531966 +vt 0.257165 0.717852 +vt 0.197884 0.709488 +vt 0.204249 0.739355 +vt 0.037408 0.625657 +vt 0.070523 0.583838 +vt 0.042609 0.575184 +vt 0.311181 0.630042 +vt 0.269794 0.664861 +vt 0.294508 0.679219 +vt 0.176623 0.517982 +vt 0.280183 0.585816 +vt 0.307659 0.577845 +vt 0.151381 0.708137 +vt 0.071004 0.529375 +vt 0.272542 0.756816 +vt 0.319458 0.454369 +vt 0.319458 0.756816 +vt 0.195505 0.728782 +vt 0.158795 0.772174 +vt 0.164003 0.723040 +vt 0.854491 0.798991 +vt 0.889910 0.757267 +vt 0.903185 0.782258 +vt 0.053035 0.674542 +vt 0.065319 0.622936 +vt 0.777220 0.743735 +vt 0.803814 0.793429 +vt 0.758935 0.765339 +vt 0.055645 0.560553 +vt 0.085835 0.571116 +vt 0.052945 0.594360 +vt 0.195487 0.652780 +vt 0.126933 0.516508 +vt 0.195505 0.516517 +vt 0.133283 0.633683 +vt 0.125966 0.664022 +vt 0.091024 0.690109 +vt 0.262609 0.630973 +vt 0.152787 0.575424 +vt 0.262609 0.575424 +vt 0.225552 0.202243 +vt 0.199418 0.586336 +vt 0.819994 0.746843 +vt 0.763814 0.730207 +vt 0.819994 0.730196 +vt 0.163478 0.695413 +vt 0.163446 0.561456 +vt 0.173352 0.560832 +vt 0.709548 0.178646 +vt 0.708231 0.179960 +vt 0.697912 0.746604 +vt 0.886978 0.568216 +vt 0.907767 0.564368 +vt 0.911018 0.585272 +vt 0.273287 0.553544 +vt 0.232715 0.507377 +vt 0.181062 0.777784 +vt 0.180989 0.432590 +vt 0.211081 0.695672 +vt 0.935628 0.547777 +vt 0.928335 0.534586 +vt 0.957061 0.514718 +vt 0.953673 0.541275 +vt 0.264483 0.609153 +vt 0.214574 0.720008 +vt 0.215429 0.609151 +vt 0.820524 0.552760 +vt 0.816236 0.564136 +vt 0.818580 0.604308 +vt 0.977054 0.746836 +vt 0.175301 0.801976 +vt 0.161807 0.439493 +vt 0.174456 0.439519 +vt 0.249368 0.572381 +vt 0.157624 0.676127 +vt 0.157559 0.572357 +vt 0.252242 0.555075 +vt 0.262949 0.582689 +vt 0.250389 0.588987 +vt 0.195569 0.516508 +vt 0.325918 0.542286 +vt 0.222901 0.642861 +vt 0.267417 0.588326 +vt 0.271105 0.564524 +vt 0.171193 0.685318 +vt 0.151737 0.608220 +vt 0.169451 0.570217 +vt 0.127832 0.649666 +vt 0.152545 0.627205 +vt 0.172283 0.627297 +vt 0.127832 0.675813 +vt 0.216734 0.725573 +vt 0.127832 0.725573 +vt 0.105909 0.462751 +vt 0.021077 0.782399 +vt 0.021077 0.462751 +vt 0.065793 0.457768 +vt 0.084619 0.458339 +vt 0.108210 0.782802 +vt 0.234271 0.474384 +vt 0.298671 0.450845 +vt 0.298671 0.474384 +vt 0.881052 0.748887 +vt 0.894087 0.499407 +vt 0.894087 0.786407 +vt 0.827150 0.688128 +vt 0.883392 0.752398 +vt 0.896428 0.789917 +vt 0.873114 0.583614 +vt 0.824810 0.684617 +vt 0.900819 0.796593 +vt 0.886821 0.542960 +vt 0.900819 0.504088 +vt 0.830423 0.604345 +vt 0.853632 0.607711 +vt 0.235549 0.782542 +vt 0.194646 0.438622 +vt 0.227326 0.431587 +vt 0.164786 0.785449 +vt 0.162663 0.430379 +vt 0.175655 0.430379 +vt 0.242453 0.765105 +vt 0.263009 0.523159 +vt 0.309742 0.542637 +vt 0.264154 0.457185 +vt 0.298591 0.506679 +vt 0.196716 0.498795 +vt 0.200462 0.439717 +vt 0.320799 0.580957 +vt 0.278448 0.589160 +vt 0.116297 0.654629 +vt 0.186553 0.635602 +vt 0.165229 0.682820 +vt 0.105918 0.485981 +vt 0.134656 0.504380 +vt 0.136066 0.481351 +vt 0.309429 0.714666 +vt 0.301416 0.537221 +vt 0.329610 0.511479 +vt 0.300178 0.485482 +vt 0.321744 0.702481 +vt 0.330347 0.665420 +vt 0.288229 0.669719 +vt 0.331049 0.569269 +vt 0.355610 0.485981 +vt 0.314563 0.455848 +vt 0.314762 0.619629 +vt 0.308023 0.582873 +vt 0.877023 0.547152 +vt 0.900329 0.554458 +vt 0.932482 0.511002 +vt 0.914183 0.524699 +vt 0.347823 0.569516 +vt 0.339103 0.628659 +vt 0.362347 0.651411 +vt 0.361841 0.618071 +vt 0.358811 0.683852 +vt 0.364007 0.586030 +vt 0.364503 0.554248 +vt 0.953081 0.541991 +vt 0.929418 0.567271 +vt 0.907393 0.539597 +vt 0.950784 0.536249 +vt 0.934390 0.516693 +vt 0.965839 0.506925 +vt 0.960858 0.575264 +vt 0.928899 0.592619 +vt 0.900072 0.564677 +vt 0.925604 0.545762 +vt 0.898703 0.524833 +vt 0.942330 0.573348 +vt 0.902608 0.570019 +vt 0.965839 0.575300 +vt 0.877278 0.537666 +vt 0.359814 0.520250 +vt 0.105918 0.586040 +vt 0.122763 0.606554 +vt 0.122160 0.568036 +vt 0.105918 0.651411 +vt 0.134501 0.651986 +vt 0.116857 0.686917 +vt 0.128578 0.540344 +vt 0.105918 0.519517 +vt 0.179299 0.610462 +vt 0.206268 0.646985 +vt 0.195687 0.585356 +vt 0.105918 0.554738 +vt 0.158694 0.599897 +vt 0.147941 0.550950 +vt 0.165834 0.671052 +vt 0.668850 0.167746 +vt 0.179299 0.594155 +vt 0.210315 0.672096 +vt 0.221813 0.605981 +vt 0.238193 0.651293 +vt 0.241063 0.616632 +vt 0.219795 0.566854 +vt 0.183376 0.447393 +vt 0.166142 0.483401 +vt 0.203060 0.490554 +vt 0.140665 0.679871 +vt 0.175223 0.708304 +vt 0.175223 0.447393 +vt 0.243353 0.585256 +vt 0.241335 0.554039 +vt 0.237966 0.475216 +vt 0.232297 0.447393 +vt 0.207928 0.489377 +vt 0.240476 0.513146 +vt 0.251532 0.481330 +vt 0.900465 0.507474 +vt 0.921065 0.518190 +vt 0.224365 0.534698 +vt 0.247604 0.683125 +vt 0.265852 0.521012 +vt 0.259271 0.647142 +vt 0.270424 0.558400 +vt 0.279577 0.636261 +vt 0.263947 0.602862 +vt 0.285541 0.597356 +vt 0.259965 0.475042 +vt 0.105918 0.683801 +vt 0.109995 0.708304 +vt 0.900607 0.554110 +vt 0.906244 0.530861 +vt 0.918100 0.552857 +vt 0.903498 0.502883 +vt 0.877735 0.522424 +vt 0.140284 0.563354 +vt 0.147562 0.537185 +vt 0.157422 0.547084 +vt 0.352558 0.651996 +vt 0.351599 0.694222 +vt 0.264200 0.103081 +vt 0.143507 0.615307 +vt 0.167506 0.692768 +vt 0.114162 0.579622 +vt 0.138423 0.558381 +vt 0.163878 0.517052 +vt 0.182157 0.540271 +vt 0.101175 0.495838 +vt 0.144662 0.457293 +vt 0.211297 0.516323 +vt 0.322901 0.436996 +vt 0.352558 0.538438 +vt 0.891052 0.677793 +vt 0.917004 0.511202 +vt 0.917004 0.792988 +vt 0.878415 0.705410 +vt 0.893073 0.634076 +vt 0.920336 0.516840 +vt 0.920336 0.798718 +vt 0.846158 0.681812 +vt 0.275288 0.572357 +vt 0.275288 0.624832 +vt 0.249398 0.594995 +vt 0.209176 0.709866 +vt 0.249368 0.676127 +vt 0.167421 0.491426 +vt 0.124294 0.471366 +vt 0.162808 0.460306 +vt 0.957061 0.564870 +vt 0.927904 0.563325 +vt 0.150752 0.576637 +vt 0.190834 0.577182 +vt 0.170151 0.604581 +vt 0.128181 0.582143 +vt 0.109668 0.601489 +vt 0.117887 0.576989 +vt 0.093949 0.599522 +vt 0.114144 0.574560 +vt 0.129560 0.603106 +vt 0.212519 0.604928 +vt 0.212519 0.558390 +vt 0.231646 0.613041 +vt 0.227152 0.648851 +vt 0.201506 0.617369 +vt 0.139457 0.483153 +vt 0.077627 0.552409 +vt 0.101353 0.474052 +vt 0.165272 0.528563 +vt 0.207887 0.557441 +vt 0.120923 0.575474 +vt 0.170479 0.601100 +vt 0.206597 0.460159 +vt 0.086526 0.503205 +vt 0.132175 0.499398 +vt 0.206821 0.490684 +vt 0.100525 0.547157 +vt 0.063972 0.533756 +vt 0.132613 0.525187 +vt 0.190409 0.519748 +vt 0.170804 0.556982 +vt 0.121105 0.677240 +vt 0.205558 0.648994 +vt 0.131040 0.698669 +vt 0.120791 0.604036 +vt 0.195827 0.623937 +vt 0.207649 0.610159 +vt 0.212359 0.602400 +vt 0.287078 0.712267 +vt 0.252897 0.802356 +vt 0.128758 0.712271 +vt 0.243796 0.777942 +vt 0.211881 0.741978 +vt 0.212506 0.605245 +vt 0.331206 0.533544 +vt 0.331202 0.809653 +vt 0.250386 0.590767 +vt 0.225808 0.675074 +vt 0.193918 0.686639 +vt 0.193915 0.675082 +vt 0.145648 0.587952 +vt 0.153023 0.628692 +vt 0.115329 0.787499 +vt 0.221666 0.444608 +vt 0.221666 0.787392 +vt 0.337913 0.036846 +vt 0.800736 0.658409 +vt 0.694096 0.708634 +vt 0.748012 0.622240 +vt 0.162198 0.707502 +vt 0.114327 0.626249 +vt 0.092619 0.489940 +vt 0.135367 0.489934 +vt 0.134341 0.490121 +vt 0.581829 0.656266 +vt 0.582205 0.643874 +vt 0.608643 0.657856 +vt 0.263579 0.448575 +vt 0.267297 0.448675 +vt 0.264232 0.688301 +vt 0.118691 0.632067 +vt 0.195676 0.634976 +vt 0.367186 0.436037 +vt 0.369064 0.435460 +vt 0.369064 0.446998 +vt 0.157595 0.652282 +vt 0.139370 0.699960 +vt 0.118811 0.545559 +vt 0.176974 0.602004 +vt 0.206796 0.712223 +vt 0.234698 0.802319 +vt 0.169544 0.439544 +vt 0.234698 0.439493 +vt 0.562797 0.641426 +vt 0.565453 0.666175 +vt 0.627405 0.667443 +vt 0.245196 0.803897 +vt 0.159624 0.441498 +vt 0.244492 0.440999 +vt 0.392020 0.638012 +vt 0.045367 0.655659 +vt 0.045367 0.638014 +vt 0.284583 0.452887 +vt 0.301479 0.768428 +vt 0.283085 0.768364 +vt 0.172083 0.767614 +vt 0.150875 0.627246 +vt 0.186150 0.587085 +vt 0.208564 0.688133 +vt 0.084286 0.450002 +vt 0.071571 0.766388 +vt 0.069521 0.449747 +vt 0.178000 0.449680 +vt 0.086339 0.766986 +vt 0.034390 0.322797 +vt 0.716106 0.183929 +vt 0.712436 0.180963 +vt 0.716024 0.181572 +vt 0.206153 0.600413 +vt 0.719885 0.180488 +vt 0.711682 0.182911 +vt 0.332646 0.435561 +vt 0.350092 0.816437 +vt 0.332646 0.816524 +vt 0.675346 0.188923 +vt 0.721672 0.185008 +vt 0.716280 0.222162 +vt 0.709349 0.158612 +vt 0.706700 0.120767 +vt 0.714728 0.155740 +vt 0.725522 0.119727 +vt 0.734665 0.217607 +vt 0.703313 0.169968 +vt 0.677441 0.147810 +vt 0.705383 0.163699 +vt 0.729202 0.175190 +vt 0.726116 0.180718 +vt 0.689513 0.130771 +vt 0.666470 0.167805 +vt 0.669341 0.191107 +vt 0.761656 0.138536 +vt 0.679626 0.211026 +vt 0.716559 0.229434 +vt 0.696121 0.224894 +vt 0.746698 0.120586 +vt 0.704784 0.113720 +vt 0.726339 0.112168 +vt 0.737338 0.224195 +vt 0.685433 0.125314 +vt 0.672199 0.144669 +vt 0.484104 0.145241 +vt 0.969961 0.144158 +vt 0.969947 0.150422 +vt 0.484567 0.193884 +vt 0.970285 0.200529 +vt 0.484542 0.200953 +vt 0.672631 0.168500 +vt 0.703606 0.176529 +vt 0.484495 0.207757 +vt 0.970229 0.213055 +vt 0.484456 0.214348 +vt 0.484131 0.152176 +vt 0.969979 0.156687 +vt 0.970252 0.206792 +vt 0.484297 0.165508 +vt 0.970044 0.162951 +vt 0.970121 0.169214 +vt 0.484202 0.158872 +vt 0.484393 0.172304 +vt 0.484786 0.111975 +vt 0.970932 0.118244 +vt 0.484720 0.118516 +vt 0.767252 0.187756 +vt 0.769124 0.162040 +vt 0.484617 0.116667 +vt 0.970142 0.131630 +vt 0.484400 0.123593 +vt 0.484136 0.138057 +vt 0.970029 0.137894 +vt 0.484235 0.130771 +vt 0.484536 0.186623 +vt 0.970285 0.188003 +vt 0.970306 0.194266 +vt 0.239668 0.693930 +vt 0.216734 0.675813 +vt 0.904289 0.545005 +vt 0.852814 0.555862 +vt 0.855781 0.527901 +vt 0.728248 0.719312 +vt 0.759854 0.560902 +vt 0.812928 0.560404 +vt 0.777973 0.582655 +vt 0.717332 0.663006 +vt 0.753583 0.707327 +vt 0.936896 0.641000 +vt 0.942805 0.582769 +vt 0.964030 0.634771 +vt 0.728744 0.606756 +vt 0.753991 0.618934 +vt 0.811945 0.766199 +vt 0.805021 0.533098 +vt 0.920609 0.599900 +vt 0.964030 0.692306 +vt 0.919977 0.727346 +vt 0.936391 0.686133 +vt 0.745620 0.663114 +vt 0.942193 0.744700 +vt 0.709912 0.215474 +vt 0.350146 0.436640 +vt 0.367133 0.806539 +vt 0.350190 0.806571 +vt 0.107097 0.627693 +vt 0.108184 0.620317 +vt 0.119453 0.618151 +vt 0.937565 0.584611 +vt 0.868521 0.556075 +vt 0.960858 0.512637 +vt 0.105918 0.617345 +vt 0.118984 0.476287 +vt 0.108501 0.453370 +vt 0.084558 0.560630 +vt 0.105941 0.596325 +vt 0.310102 0.447416 +vt 0.310102 0.708280 +vt 0.054717 0.479533 +vt 0.076264 0.466463 +vt 0.097811 0.465749 +vt 0.191332 0.627510 +vt 0.133562 0.719949 +vt 0.121285 0.705451 +vt 0.131344 0.555061 +vt 0.211034 0.500194 +vt 0.724507 0.179085 +vt 0.180789 0.604721 +vt 0.117261 0.569132 +vt 0.288234 0.549025 +vt 0.146500 0.588610 +vt 0.166408 0.803908 +vt 0.231871 0.441085 +vt 0.231871 0.803909 +vt 0.043980 0.638066 +vt 0.390629 0.657331 +vt 0.043980 0.657330 +vt 0.588528 0.681834 +vt 0.574882 0.676320 +vt 0.630206 0.655378 +vt 0.220758 0.706446 +vt 0.233541 0.771678 +vt 0.152011 0.579100 +vt 0.056424 0.367415 +vt 0.267316 0.448783 +vt 0.274784 0.448575 +vt 0.272279 0.536226 +vt 0.099764 0.465749 +vt 0.099764 0.794045 +vt 0.028991 0.741096 +vt 0.141547 0.711432 +vt 0.208794 0.655666 +vt 0.320795 0.572740 +vt 0.307950 0.589772 +vt 0.232351 0.532549 +vt 0.180003 0.767981 +vt 0.133760 0.767968 +vt 0.134369 0.493727 +vt 0.227815 0.649188 +vt 0.232268 0.612759 +vt 0.269325 0.704233 +vt 0.246728 0.630194 +vt 0.197348 0.602668 +vt 0.282628 0.491928 +vt 0.135289 0.489242 +vt 0.176745 0.631828 +vt 0.157863 0.655488 +vt 0.109154 0.440439 +vt 0.099688 0.459852 +vt 0.136487 0.446954 +vt 0.232297 0.708304 +vt 0.238974 0.683097 +vt 0.008480 0.800988 +vt 0.407403 0.447459 +vt 0.036793 0.828524 +vt 0.359842 0.504845 +vt 0.367112 0.469866 +vt 0.363822 0.620812 +vt 0.685894 0.604739 +vt 0.792590 0.651454 +vt 0.740616 0.688691 +vt 0.258538 0.547976 +vt 0.225461 0.484605 +vt 0.167856 0.484688 +vt 0.204303 0.450095 +vt 0.226143 0.444502 +vt 0.119805 0.787392 +vt 0.119805 0.444608 +vt 0.194262 0.588454 +vt 0.256279 0.552826 +vt 0.199364 0.595218 +vt 0.187505 0.584542 +vt 0.229036 0.526209 +vt 0.271948 0.591593 +vt 0.201797 0.603654 +vt 0.201242 0.612132 +vt 0.256321 0.674292 +vt 0.198121 0.619076 +vt 0.192992 0.623455 +vt 0.227234 0.703855 +vt 0.116170 0.673909 +vt 0.169500 0.610001 +vt 0.173624 0.617454 +vt 0.099949 0.631784 +vt 0.168259 0.601429 +vt 0.166956 0.518822 +vt 0.174141 0.587280 +vt 0.139178 0.530065 +vt 0.186474 0.624717 +vt 0.147997 0.705299 +vt 0.179823 0.622432 +vt 0.725826 0.175056 +vt 0.722153 0.178139 +vt 0.724044 0.174342 +vt 0.726387 0.169758 +vt 0.724491 0.169903 +vt 0.723385 0.165642 +vt 0.722202 0.160686 +vt 0.721012 0.162359 +vt 0.718280 0.158582 +vt 0.717854 0.160627 +vt 0.713972 0.158669 +vt 0.714406 0.160768 +vt 0.709989 0.161008 +vt 0.711191 0.162751 +vt 0.706988 0.165168 +vt 0.708677 0.166285 +vt 0.705490 0.170262 +vt 0.707388 0.170569 +vt 0.707675 0.175019 +vt 0.708001 0.180219 +vt 0.705848 0.175585 +vt 0.709457 0.178808 +vt 0.712362 0.181200 +vt 0.715822 0.181857 +vt 0.720089 0.182722 +vt 0.719269 0.180787 +vt 0.723539 0.179542 +vt 0.180390 0.584076 +vt 0.197163 0.515281 +vt 0.271948 0.634806 +vt 0.115685 0.553724 +vt 0.169944 0.593389 +vt 0.100883 0.588970 +vt 0.192291 0.593771 +vt 0.210252 0.617955 +vt 0.238889 0.694713 +vt 0.339891 0.033820 +vt 0.360458 0.014530 +vt 0.022446 0.385164 +vt 0.104553 0.285332 +vt 0.023490 0.369930 +vt 0.026427 0.358619 +vt 0.169356 0.207893 +vt 0.668329 0.747110 +vt 0.165771 0.785453 +vt 0.165651 0.423324 +vt 0.349524 0.013035 +vt 0.215519 0.749251 +vt 0.200561 0.766772 +vt 0.168820 0.697328 +vt 0.175150 0.483896 +vt 0.188801 0.458524 +vt 0.201868 0.496878 +vt 0.215519 0.471506 +vt 0.023921 0.334271 +vt 0.671600 0.189680 +vt 0.970110 0.115337 +vt 0.970306 0.123922 +vt 0.890665 0.568032 +vt 0.581093 0.657225 +vt 0.579706 0.651105 +vt 0.585016 0.640340 +vt 0.590796 0.637557 +vt 0.597433 0.637264 +vt 0.608740 0.643912 +vt 0.611455 0.649704 +vt 0.611455 0.655885 +vt 0.603781 0.665260 +vt 0.597433 0.666832 +vt 0.590796 0.665833 +vt 0.585016 0.662435 +vt 0.720710 0.182424 +vt 0.280470 0.626193 +vt 0.272542 0.454369 +vt 0.851770 0.771006 +vt 0.078947 0.660579 +vt 0.054201 0.526134 +vt 0.152787 0.630973 +vt 0.763814 0.746853 +vt 0.202973 0.560832 +vt 0.202973 0.695413 +vt 0.211017 0.432541 +vt 0.211037 0.512599 +vt 0.211827 0.777736 +vt 0.215312 0.525547 +vt 0.264366 0.525478 +vt 0.265426 0.720008 +vt 0.977054 0.730190 +vt 0.253847 0.439630 +vt 0.253847 0.802453 +vt 0.161667 0.802553 +vt 0.325918 0.642861 +vt 0.194508 0.627297 +vt 0.216734 0.649666 +vt 0.216734 0.627297 +vt 0.127816 0.627297 +vt 0.105909 0.782399 +vt 0.108210 0.457768 +vt 0.023377 0.780946 +vt 0.023377 0.457768 +vt 0.044585 0.457768 +vt 0.234271 0.450827 +vt 0.848498 0.685322 +vt 0.211155 0.787793 +vt 0.335787 0.423324 +vt 0.335699 0.785449 +vt 0.290788 0.765173 +vt 0.189640 0.774772 +vt 0.175485 0.749677 +vt 0.197104 0.735777 +vt 0.195938 0.458524 +vt 0.165712 0.528641 +vt 0.211259 0.475708 +vt 0.211259 0.760871 +vt 0.191836 0.630793 +vt 0.201181 0.641632 +vt 0.161801 0.803719 +vt 0.128769 0.441635 +vt 0.287078 0.441635 +vt 0.211243 0.432637 +vt 0.243950 0.432743 +vt 0.211825 0.777842 +vt 0.239777 0.809653 +vt 0.236235 0.574344 +vt 0.228178 0.436438 +vt 0.332137 0.437634 +vt 0.108370 0.457995 +vt 0.293038 0.458286 +vt 0.246640 0.543184 +vt 0.293038 0.556655 +vt 0.150823 0.543181 +vt 0.109026 0.554322 +vt 0.174987 0.612558 +vt 0.221723 0.612794 +vt 0.174924 0.563657 +vt 0.221713 0.565123 +vt 0.225811 0.686631 +vt 0.115329 0.444502 +vt 0.977611 0.684219 +vt 0.953285 0.706882 +vt 0.701874 0.553659 +vt 0.702069 0.527374 +vt 0.704813 0.560928 +vt 0.092820 0.767961 +vt 0.585750 0.639317 +vt 0.591029 0.636927 +vt 0.597039 0.637275 +vt 0.602747 0.640193 +vt 0.607057 0.645239 +vt 0.609112 0.651531 +vt 0.606007 0.663036 +vt 0.590549 0.665540 +vt 0.601674 0.666302 +vt 0.596168 0.667244 +vt 0.585313 0.661826 +vt 0.580781 0.649872 +vt 0.267297 0.783587 +vt 0.259032 0.783285 +vt 0.108846 0.681140 +vt 0.103788 0.649857 +vt 0.170248 0.802442 +vt 0.570250 0.630345 +vt 0.561088 0.654029 +vt 0.575159 0.676023 +vt 0.588782 0.681545 +vt 0.603793 0.681956 +vt 0.617443 0.676725 +vt 0.631890 0.655009 +vt 0.597074 0.620271 +vt 0.630779 0.642388 +vt 0.623624 0.631208 +vt 0.611752 0.623170 +vt 0.582328 0.622690 +vt 0.154550 0.804507 +vt 0.392020 0.658075 +vt 0.302976 0.452951 +vt 0.259270 0.751033 +vt 0.240884 0.770341 +vt 0.229212 0.441980 +vt 0.259270 0.458646 +vt 0.216825 0.498419 +vt 0.350092 0.435460 +vt 0.970960 0.111975 +vt 0.970306 0.125366 +vt 0.890824 0.569849 +vt 0.772519 0.215474 +vt 0.367133 0.435460 +vt 0.097811 0.792171 +vt 0.027038 0.518698 +vt 0.022050 0.790931 +vt 0.048570 0.460209 +vt 0.369430 0.460209 +vt 0.393986 0.531106 +vt 0.357472 0.524564 +vt 0.057138 0.544589 +vt 0.016196 0.540388 +vt 0.234035 0.602324 +vt 0.208545 0.673246 +vt 0.166408 0.441084 +vt 0.390629 0.638066 +vt 0.565141 0.666479 +vt 0.560742 0.654326 +vt 0.562422 0.641703 +vt 0.569858 0.630592 +vt 0.581929 0.622903 +vt 0.596678 0.620440 +vt 0.611359 0.623268 +vt 0.623116 0.631113 +vt 0.630113 0.642341 +vt 0.626759 0.667862 +vt 0.617032 0.677247 +vt 0.603542 0.682270 +vt 0.238861 0.434065 +vt 0.208361 0.516967 +vt 0.257646 0.452955 +vt 0.257646 0.754262 +vt 0.188162 0.618478 +vt 0.274784 0.803410 +vt 0.270640 0.803271 +vt 0.078217 0.793331 +vt 0.056670 0.780261 +vt 0.024003 0.468863 +vt 0.307951 0.808658 +vt 0.228621 0.808658 +vt 0.227029 0.435583 +vt 0.328843 0.434552 +vt 0.179789 0.489959 +vt 0.332118 0.585098 +vt 0.332118 0.698790 +vt 0.309212 0.586099 +vt 0.308210 0.697854 +vt 0.285450 0.699257 +vt 0.271271 0.566606 +vt 0.252657 0.705153 +vt 0.140966 0.607404 +vt 0.140973 0.491835 +vt 0.282628 0.686931 +vt 0.267629 0.707508 +vt 0.267267 0.681966 +vt 0.157303 0.703261 +vt 0.151510 0.703269 +vt 0.153431 0.677036 +vt 0.140412 0.684992 +vt 0.280459 0.490002 +vt 0.208429 0.606816 +vt 0.280459 0.608219 +vt 0.242980 0.600630 +vt 0.379091 0.419923 +vt 0.028126 0.733572 +vt 0.029621 0.521536 +vt 0.064034 0.703794 +vt 0.065764 0.521765 +vt 0.068554 0.555674 +vt 0.074971 0.734624 +vt 0.108057 0.662705 +vt 0.109927 0.596019 +vt 0.229392 0.641886 +vt 0.230621 0.621945 +vt 0.291265 0.660773 +vt 0.292944 0.600726 +vt 0.334275 0.701102 +vt 0.337630 0.559808 +vt 0.367112 0.791321 +vt 0.356079 0.791468 +vt 0.358325 0.760311 +vt 0.356289 0.469829 +vt 0.699040 0.751173 +vt 0.696774 0.785087 +vt 0.945083 0.602988 +vt 0.969409 0.625257 +vt 0.377077 0.450759 +vt 0.303950 0.504075 +vt 0.377111 0.473918 +vt 0.237685 0.573495 +vt 0.225603 0.582865 +vt 0.016154 0.475399 +vt 0.016119 0.451280 +vt 0.085701 0.510511 +vt 0.167998 0.582865 +vt 0.226143 0.787499 +vt 0.188554 0.710454 +s 0 +f 2/1/1 4/2/1 5/3/1 +f 13/4/2 14/5/2 10/6/2 +f 9/7/3 1/8/3 5/3/3 +f 1/8/4 2/1/4 5/3/4 +f 2/1/5 3/9/5 4/2/5 +f 5/3/6 6/10/6 7/11/6 +f 7/11/7 8/12/7 5/3/7 +f 8/12/8 9/7/8 5/3/8 +f 15/13/9 10/6/9 14/5/9 +f 10/6/10 11/14/10 12/15/10 +f 13/4/11 10/6/11 12/15/11 +s 1 +f 16/16/12 17/17/13 18/18/14 +f 19/19/15 20/20/16 18/21/17 +f 22/22/18 24/23/19 21/24/19 +f 21/24/19 29/25/20 28/26/21 +f 28/26/21 32/27/22 31/28/22 +f 37/29/23 39/30/24 36/31/24 +f 41/32/25 43/33/26 40/34/25 +f 45/35/27 47/36/28 44/37/28 +f 49/38/29 37/29/23 48/39/29 +f 43/33/26 51/40/30 50/41/30 +f 40/34/25 52/42/31 41/32/25 +f 61/43/32 63/44/32 64/45/32 +f 64/45/33 65/46/33 66/47/33 +f 75/48/34 76/49/35 69/50/36 +f 77/51/37 79/52/38 80/53/39 +f 81/54/40 83/55/41 84/56/42 +f 84/56/43 4/57/44 3/58/45 +f 87/59/46 88/60/47 89/61/48 +f 92/62/49 93/63/50 94/64/50 +f 71/65/51 82/66/52 81/54/40 +f 95/67/53 71/65/51 81/54/40 +f 95/67/53 84/56/42 3/58/54 +f 96/68/55 3/58/54 2/69/56 +f 99/70/57 75/71/58 74/72/59 +f 62/73/60 104/74/61 105/75/62 +f 108/76/63 9/77/64 8/78/65 +f 99/70/57 98/79/66 107/80/67 +f 108/76/63 98/79/66 97/81/68 +f 68/82/69 109/83/70 6/84/71 +f 113/85/72 126/86/73 125/87/74 +f 122/88/75 123/89/75 134/90/75 +f 125/87/76 140/91/77 141/92/78 +f 135/93/79 143/94/80 142/95/81 +f 128/96/82 140/91/77 126/86/83 +f 134/90/84 145/97/85 143/94/80 +f 127/98/86 144/99/87 128/96/82 +f 133/100/88 147/101/89 145/97/85 +f 139/102/90 146/103/91 127/98/86 +f 132/104/92 149/105/93 147/101/89 +f 138/106/94 148/107/95 139/102/90 +f 130/108/96 149/105/93 131/109/97 +f 137/110/98 150/111/99 138/106/94 +f 129/112/100 151/113/101 130/108/96 +f 136/114/102 152/115/103 137/110/98 +f 125/87/76 153/116/104 129/112/100 +f 155/117/105 154/118/106 142/95/81 +f 157/119/107 141/92/78 140/91/77 +f 159/120/108 142/95/81 143/94/80 +f 160/121/109 140/91/77 144/99/87 +f 159/120/108 145/97/85 161/122/110 +f 144/99/87 162/123/111 160/121/109 +f 161/122/110 147/101/89 163/124/112 +f 146/103/91 164/125/113 162/123/111 +f 147/101/89 165/126/114 163/124/112 +f 148/107/95 166/127/115 164/125/113 +f 149/105/93 167/128/116 165/126/114 +f 172/129/117 173/130/118 169/131/119 +f 167/128/116 153/116/104 174/132/120 +f 154/118/106 135/93/79 142/95/81 +f 175/133/121 158/134/122 176/135/123 +f 177/136/124 156/137/125 155/138/105 +f 176/139/123 157/140/107 179/141/126 +f 180/142/127 155/138/105 159/143/108 +f 179/141/126 160/144/109 181/145/128 +f 182/146/129 159/143/108 161/147/110 +f 181/145/128 162/148/111 183/149/130 +f 184/150/131 161/147/110 163/151/112 +f 183/149/130 164/152/113 185/153/132 +f 186/154/133 163/151/112 165/155/114 +f 185/153/132 166/156/115 187/157/134 +f 188/158/135 165/155/114 167/159/116 +f 187/157/134 189/160/136 190/161/137 +f 188/158/135 174/162/120 175/163/121 +f 174/132/120 141/92/78 158/164/122 +f 191/165/138 182/166/139 192/167/140 +f 193/168/141 178/169/142 194/170/143 +f 195/171/144 176/172/145 196/173/146 +f 197/174/147 185/175/148 187/176/149 +f 194/170/143 177/177/150 199/178/151 +f 200/179/152 186/180/153 188/181/154 +f 202/182/155 181/183/156 183/184/157 +f 192/167/140 184/185/158 204/186/159 +f 176/172/145 205/187/160 196/173/146 +f 193/168/141 187/176/149 190/188/161 +f 199/178/151 180/189/162 191/165/138 +f 200/179/152 175/190/163 195/171/144 +f 202/182/155 185/175/148 198/191/164 +f 204/186/159 186/180/153 201/192/165 +f 178/193/166 189/160/136 156/137/125 +f 207/194/167 209/195/168 206/196/167 +f 210/197/169 212/198/170 213/199/169 +f 215/200/171 217/201/172 214/202/172 +f 218/203/173 220/204/174 221/205/173 +f 223/206/175 225/207/176 222/208/176 +f 227/209/177 229/210/178 226/211/177 +f 219/212/174 231/213/179 220/204/174 +f 233/214/180 206/196/167 232/215/180 +f 235/216/181 211/217/170 234/218/182 +f 209/195/168 216/219/171 215/200/171 +f 210/197/169 224/220/175 223/206/175 +f 221/205/173 226/211/177 218/203/173 +f 230/221/183 217/201/172 231/213/179 +f 232/215/180 225/207/176 233/214/180 +f 179/222/184 203/223/185 205/187/160 +f 194/224/143 230/225/79 219/226/186 +f 199/227/151 214/228/84 230/225/79 +f 228/229/178 234/218/182 229/210/178 +f 191/230/138 215/231/88 214/228/84 +f 192/232/140 209/233/92 215/231/88 +f 204/234/159 206/235/97 209/233/92 +f 201/236/165 232/237/96 206/235/97 +f 200/238/152 222/239/187 232/237/96 +f 195/240/144 223/241/188 222/239/187 +f 196/242/146 210/243/189 223/241/188 +f 211/244/82 205/245/160 203/246/185 +f 203/246/185 234/247/86 211/244/82 +f 202/248/155 229/249/90 234/247/86 +f 226/250/190 198/251/164 197/252/147 +f 218/253/98 197/252/147 193/254/141 +f 237/255/75 241/256/75 245/257/75 +f 248/258/22 250/259/191 32/260/22 +f 251/261/20 32/260/22 29/262/20 +f 252/263/19 29/262/20 24/264/19 +f 253/265/18 24/264/19 23/266/18 +f 254/267/28 23/266/18 47/268/28 +f 255/269/27 47/268/28 46/270/27 +f 46/270/27 256/271/31 255/269/27 +f 53/272/31 257/273/25 256/271/31 +f 258/274/30 43/275/26 50/276/30 +f 259/277/26 40/278/25 43/275/26 +f 252/263/75 253/265/75 264/279/75 +f 265/280/192 278/281/193 266/282/194 +f 264/279/195 277/283/196 265/280/192 +f 281/284/197 282/285/198 280/286/199 +f 263/287/200 279/288/201 264/279/195 +f 270/289/202 282/285/198 271/290/203 +f 285/291/204 242/292/205 241/293/206 +f 287/294/207 289/295/208 290/296/209 +f 291/297/210 293/298/211 294/299/212 +f 295/300/213 286/301/214 285/302/215 +f 290/296/209 297/303/216 298/304/217 +f 300/305/218 302/306/219 299/307/220 +f 304/308/221 306/309/222 303/310/223 +f 308/311/224 310/312/225 307/313/226 +f 287/294/207 285/302/215 288/314/227 +f 298/304/217 311/315/228 312/316/229 +f 299/307/220 292/317/230 291/297/210 +f 296/318/231 306/309/222 286/301/214 +f 90/319/75 314/320/75 313/321/75 +f 318/322/232 319/323/232 315/324/232 +f 321/325/233 323/326/234 320/327/234 +f 324/328/235 305/329/236 304/308/221 +f 290/224/209 327/225/237 326/226/238 +f 298/227/217 328/228/239 327/225/237 +f 330/330/240 332/331/241 329/332/240 +f 328/228/239 308/232/224 333/231/242 +f 334/333/243 335/334/244 336/335/245 +f 317/336/246 338/337/246 339/338/246 +f 337/339/247 341/340/248 342/341/249 +f 344/342/250 346/343/250 343/344/250 +f 96/68/55 1/345/251 97/81/68 +f 12/15/252 348/346/253 13/4/254 +f 350/347/255 352/348/256 349/349/255 +f 355/350/257 356/351/258 357/352/259 +f 258/274/30 359/353/260 358/354/260 +f 352/348/256 85/355/261 89/61/48 +f 360/356/262 361/357/263 362/358/264 +f 364/359/265 348/346/253 363/360/266 +f 365/361/267 366/362/268 18/363/269 +f 368/364/270 369/365/271 370/366/272 +f 368/364/270 370/366/272 371/367/273 +f 373/368/274 91/369/275 375/370/276 +f 89/371/277 377/372/277 88/373/277 +f 349/349/255 379/374/278 350/347/255 +f 382/375/279 373/376/280 384/377/281 +f 345/378/282 318/379/283 385/380/284 +f 386/381/285 92/382/285 387/383/285 +f 387/383/286 338/384/286 386/381/286 +f 340/385/287 339/386/287 385/387/287 +f 92/382/288 340/385/289 385/387/290 +f 386/381/291 340/385/292 93/388/293 +f 337/339/294 316/389/294 341/340/294 +f 342/341/295 316/389/295 315/324/295 +f 387/383/232 385/387/232 339/386/232 +f 348/346/253 389/390/296 388/391/297 +f 392/392/298 86/393/299 87/394/300 +f 395/395/301 397/396/302 394/397/302 +f 397/398/303 345/399/303 394/400/303 +f 87/401/304 86/402/305 385/403/232 +f 315/404/306 93/405/307 92/406/306 +f 398/407/308 400/408/309 91/409/310 +f 401/410/311 398/411/312 91/412/313 +f 399/413/314 401/414/311 400/408/314 +f 403/415/315 405/416/316 374/417/317 +f 406/418/318 405/416/319 407/419/320 +f 407/419/320 403/415/321 406/418/318 +f 314/420/322 93/421/323 342/422/324 +f 314/423/325 342/424/325 315/425/326 +f 92/406/306 374/426/327 315/404/306 +f 408/427/328 410/428/329 364/359/330 +f 408/427/328 411/429/331 409/430/332 +f 411/429/331 413/431/333 412/432/334 +f 414/433/335 364/359/330 410/428/329 +f 13/4/254 364/359/265 415/434/336 +f 417/435/337 347/436/338 416/437/339 +f 418/438/340 420/439/341 421/440/342 +f 11/14/343 422/441/343 10/6/343 +f 422/441/344 15/13/344 10/6/344 +f 423/442/345 424/443/346 425/444/347 +f 426/445/348 427/446/349 428/447/350 +f 423/442/345 429/448/351 424/443/346 +f 425/444/347 418/449/352 430/450/353 +f 431/451/354 429/448/351 432/452/355 +f 360/356/262 433/453/356 434/454/357 +f 435/455/358 370/366/358 436/456/358 +f 429/448/351 437/457/359 424/443/346 +f 436/456/360 370/366/360 369/365/360 +f 438/458/361 437/457/359 429/448/351 +f 439/459/362 440/460/363 438/458/361 +f 441/461/364 439/459/362 427/446/349 +f 437/457/359 442/462/365 443/463/366 +f 440/460/363 442/462/365 437/457/359 +f 444/464/367 445/465/368 446/466/369 +f 447/467/370 448/468/370 444/469/370 +f 448/470/371 445/465/372 444/464/373 +f 448/470/371 449/471/374 445/465/372 +f 445/465/375 449/471/375 450/472/375 +f 448/468/376 451/473/377 449/474/378 +f 451/473/379 452/475/379 453/476/379 +f 452/475/380 451/473/380 447/467/380 +f 447/467/381 348/477/382 452/475/383 +f 446/466/384 450/472/384 453/478/384 +f 437/457/359 443/463/366 419/479/385 +f 442/480/386 454/481/387 455/482/388 +f 454/481/387 439/483/389 456/484/390 +f 439/483/389 457/485/391 456/484/390 +f 458/486/392 420/439/341 419/487/393 +f 436/488/394 460/489/395 461/490/396 +f 455/482/388 458/486/392 443/491/397 +f 454/481/398 462/492/399 463/493/400 +f 456/484/401 459/494/402 462/492/399 +f 152/115/103 154/118/106 189/495/136 +f 436/488/394 434/496/403 462/492/399 +f 459/494/402 436/488/394 462/492/399 +f 434/496/404 461/490/404 462/492/404 +f 464/497/405 460/489/406 459/494/407 +f 465/498/408 466/499/409 467/500/410 +f 465/498/411 468/501/412 461/490/396 +f 460/489/395 465/498/411 461/490/396 +f 430/502/413 469/503/414 470/504/415 +f 459/494/407 457/505/391 426/506/416 +f 430/507/413 421/440/342 469/503/414 +f 468/501/417 471/508/418 472/509/419 +f 473/510/420 430/511/413 470/512/415 +f 467/500/410 471/508/418 465/498/408 +f 474/513/421 473/514/420 470/504/415 +f 446/466/422 452/515/423 348/516/424 +f 475/517/425 472/509/419 474/513/421 +f 464/497/405 476/518/426 466/499/409 +f 472/509/427 477/519/428 474/513/429 +f 476/518/430 428/447/350 478/520/431 +f 471/508/432 479/521/433 472/509/427 +f 478/520/431 480/522/434 481/523/435 +f 481/523/435 482/524/436 479/521/433 +f 477/519/428 425/444/347 473/525/437 +f 478/520/431 428/447/350 480/522/434 +f 479/521/433 423/442/345 477/519/428 +f 476/518/430 426/445/348 428/447/350 +f 482/524/436 423/442/345 479/521/433 +f 457/485/391 441/526/438 426/527/416 +f 482/524/436 431/451/354 432/452/355 +f 480/522/434 428/447/350 431/451/354 +f 434/528/439 483/529/440 484/530/441 +f 485/531/442 483/529/443 486/532/444 +f 361/357/263 360/356/262 434/454/357 +f 487/533/445 489/534/446 490/535/447 +f 436/456/448 485/531/448 435/455/448 +f 483/529/449 434/528/450 486/532/451 +f 15/536/452 14/5/453 414/433/335 +f 422/441/454 14/537/454 15/13/454 +f 14/5/453 13/4/455 415/434/456 +f 14/5/453 415/434/456 414/433/335 +f 416/437/339 347/436/338 11/14/457 +f 96/68/55 74/72/59 73/538/458 +f 493/539/459 494/540/460 61/541/461 +f 388/391/297 498/542/462 499/543/463 +f 363/360/266 408/427/464 364/359/265 +f 500/544/465 420/439/466 463/493/400 +f 499/543/467 501/545/468 502/546/469 +f 413/431/470 502/546/469 412/432/471 +f 461/490/396 503/547/472 500/544/465 +f 409/430/473 504/548/474 505/549/475 +f 409/430/473 505/549/475 410/428/476 +f 406/550/477 403/551/477 374/552/477 +f 407/419/478 405/416/478 404/553/478 +f 401/554/479 91/555/479 400/556/479 +f 402/557/480 399/413/480 398/407/480 +f 346/558/45 345/559/45 340/560/45 +f 343/561/481 318/379/481 344/562/481 +f 506/563/482 508/564/483 509/565/484 +f 371/367/485 510/566/486 368/364/487 +f 362/358/488 361/357/489 511/567/490 +f 511/567/491 484/530/441 368/364/492 +f 512/568/493 514/569/494 432/570/495 +f 515/571/496 517/572/497 518/573/498 +f 519/574/499 520/575/500 521/576/501 +f 522/577/502 514/569/494 523/578/503 +f 6/579/504 68/580/505 529/581/506 +f 532/582/507 533/583/508 534/584/509 +f 535/585/510 536/586/511 537/587/512 +f 537/587/512 536/586/511 538/588/513 +f 532/582/507 535/585/514 537/587/515 +f 532/582/507 537/587/515 533/583/508 +f 519/574/499 335/334/516 520/575/500 +f 522/577/502 432/570/495 514/569/494 +f 521/576/501 520/575/500 512/568/493 +f 539/589/517 506/563/482 509/565/484 +f 540/590/518 508/564/519 507/591/520 +f 506/563/482 539/589/517 541/592/521 +f 542/593/522 543/594/523 540/590/518 +f 506/563/524 544/595/525 507/591/526 +f 544/595/527 540/590/518 507/591/520 +f 335/334/244 543/594/523 542/593/522 +f 545/596/528 506/563/524 541/592/529 +f 545/596/528 544/595/525 506/563/524 +f 513/597/530 545/596/528 523/578/503 +f 513/597/530 544/595/525 545/596/528 +f 514/569/494 513/597/530 523/578/503 +f 513/597/530 512/568/493 544/595/525 +f 520/575/500 544/595/525 512/568/493 +f 520/575/500 335/334/516 542/593/531 +f 184/598/532 531/599/533 182/600/534 +f 516/601/535 529/581/536 528/602/537 +f 515/571/496 530/603/538 529/581/536 +f 5/604/539 487/533/445 490/535/447 +f 549/605/540 550/606/541 546/607/542 +f 553/608/543 20/609/16 19/610/15 +f 549/611/544 548/612/545 304/613/546 +f 560/614/547 562/615/75 563/616/548 +f 16/16/549 367/617/550 17/17/551 +f 17/17/552 16/618/553 18/21/552 +f 568/619/554 373/620/554 383/621/554 +f 96/68/55 72/622/555 95/67/53 +f 350/623/556 570/624/557 351/625/558 +f 17/626/559 18/21/17 20/20/16 +f 537/587/560 572/627/561 533/583/562 +f 365/628/267 17/629/559 576/630/563 +f 55/631/75 577/632/75 34/633/75 +f 578/634/45 579/635/45 354/636/564 +f 584/637/565 525/638/566 184/598/567 +f 576/639/563 17/640/559 573/641/568 +f 18/21/17 16/618/569 19/642/15 +f 44/37/28 23/643/18 22/22/18 +f 31/28/22 250/644/191 585/645/191 +f 585/645/191 36/31/24 39/30/24 +f 52/42/31 46/646/27 45/35/27 +f 586/647/570 588/648/571 589/649/572 +f 180/650/573 184/651/574 179/652/575 +f 587/653/576 590/654/577 588/655/571 +f 552/656/481 589/657/578 553/658/578 +f 491/659/579 101/660/580 100/661/581 +f 62/662/582 491/659/579 100/661/581 +f 77/663/583 594/664/584 595/665/585 +f 597/666/586 596/667/587 598/668/586 +f 78/669/588 591/670/588 597/666/588 +f 109/83/70 76/671/589 107/80/67 +f 273/672/23 48/673/29 37/674/23 +f 48/39/29 599/675/260 49/38/29 +f 36/676/24 273/672/23 37/674/23 +f 358/354/75 272/677/75 281/284/75 +f 600/678/590 575/679/590 601/680/590 +f 602/681/591 281/284/197 280/286/199 +f 269/682/592 284/683/593 270/289/202 +f 261/684/594 604/685/595 262/686/596 +f 262/686/596 283/687/597 263/287/200 +f 269/682/592 172/129/117 171/688/598 +f 276/689/599 606/690/600 260/691/601 +f 267/692/602 172/129/117 268/693/603 +f 260/691/601 603/694/604 261/684/594 +f 239/695/605 602/681/591 238/696/606 +f 266/282/194 173/130/118 267/692/602 +f 245/697/607 278/281/193 277/283/196 +f 237/698/608 602/681/591 280/286/199 +f 282/285/198 247/699/609 236/700/610 +f 280/286/199 236/700/610 237/698/608 +f 244/701/611 277/283/196 279/288/201 +f 283/687/597 242/702/612 243/703/613 +f 284/683/593 170/704/614 247/699/609 +f 604/685/595 241/705/615 242/702/612 +f 603/694/604 240/706/616 241/705/615 +f 293/707/617 168/708/618 246/709/619 +f 289/710/620 238/711/621 297/712/622 +f 239/695/605 606/690/600 605/713/623 +f 275/714/624 605/713/623 276/689/599 +f 311/715/625 236/716/626 309/717/627 +f 325/718/628 246/709/619 245/719/629 +f 297/712/622 237/720/630 311/715/625 +f 306/721/631 244/722/632 243/723/633 +f 305/724/634 245/719/629 244/722/632 +f 286/725/635 243/723/633 242/292/205 +f 309/726/627 247/727/636 310/728/637 +f 168/729/638 278/281/193 246/730/639 +f 310/731/637 170/732/640 301/733/641 +f 292/734/642 169/735/643 168/708/618 +f 302/736/644 170/732/640 169/735/643 +f 311/315/228 308/311/224 312/316/229 +f 288/737/645 241/293/206 240/738/646 +f 279/288/201 243/703/613 244/701/611 +f 293/298/211 324/328/235 294/299/212 +f 289/710/620 240/738/646 239/739/647 +f 307/313/226 301/740/648 300/305/218 +f 392/392/298 396/741/301 395/395/301 +f 607/742/649 609/743/650 333/744/650 +f 610/745/651 330/330/240 329/332/240 +f 327/746/652 612/747/653 613/748/652 +f 614/749/654 611/750/651 610/745/651 +f 617/751/655 619/752/656 616/753/655 +f 326/754/657 613/748/652 620/755/657 +f 331/756/241 321/325/233 332/331/241 +f 333/744/650 612/747/653 328/757/658 +f 618/758/656 607/742/649 619/752/656 +f 621/759/659 623/760/660 624/761/661 +f 326/754/657 615/762/662 614/749/654 +f 320/327/234 623/760/660 622/763/660 +f 624/761/661 616/753/655 621/759/659 +f 607/233/663 300/236/218 619/235/664 +f 300/236/218 616/237/665 619/235/664 +f 607/233/663 308/232/224 307/234/226 +f 291/240/210 622/241/666 621/239/667 +f 299/238/220 621/239/667 616/237/665 +f 622/241/666 324/245/235 320/243/668 +f 324/245/235 321/244/669 320/243/668 +f 332/247/670 304/246/221 303/248/223 +f 303/248/223 329/249/671 332/247/670 +f 296/251/231 610/250/672 329/249/671 +f 295/252/213 614/253/673 610/250/672 +f 287/254/207 326/764/238 614/253/673 +f 625/765/674 553/766/578 589/767/578 +f 583/768/248 627/769/248 628/770/248 +f 361/357/675 434/454/439 484/530/441 +f 368/364/492 484/530/441 369/365/676 +f 361/357/675 484/530/441 511/567/491 +f 510/566/486 511/567/490 368/364/487 +f 629/771/677 511/567/490 510/566/486 +f 629/771/677 362/358/488 511/567/490 +f 433/453/678 486/532/451 434/528/450 +f 483/529/440 436/456/679 369/365/676 +f 484/530/441 483/529/440 369/365/676 +f 446/466/369 445/465/368 450/472/680 +f 449/474/681 453/476/681 450/772/681 +f 451/473/682 453/476/682 449/474/682 +f 448/468/376 447/467/683 451/473/377 +f 447/773/381 444/464/684 348/516/382 +f 348/516/685 444/464/367 446/466/369 +f 480/522/434 431/451/354 482/524/436 +f 432/452/355 423/442/345 482/524/436 +f 423/442/345 425/444/347 477/519/428 +f 425/444/347 430/450/353 473/525/437 +f 480/522/434 482/524/436 481/523/435 +f 481/523/435 479/521/433 471/508/432 +f 477/519/428 473/525/437 474/513/429 +f 478/520/431 481/523/435 467/500/686 +f 467/500/686 481/523/435 471/508/432 +f 479/521/433 477/519/428 472/509/427 +f 476/518/430 478/520/431 466/499/687 +f 466/499/687 478/520/431 467/500/686 +f 468/501/417 472/509/419 475/517/425 +f 466/499/409 460/489/406 464/497/405 +f 475/517/425 474/513/421 503/547/688 +f 503/547/688 474/513/421 470/504/415 +f 471/508/418 468/501/417 465/498/408 +f 468/501/417 475/517/425 503/547/688 +f 469/503/689 503/547/472 470/504/690 +f 500/544/465 503/547/472 469/503/689 +f 461/490/396 434/496/403 436/488/394 +f 462/492/399 461/490/396 500/544/465 +f 462/492/399 500/544/465 463/493/400 +f 469/503/414 421/440/342 420/439/341 +f 457/505/391 459/494/407 456/484/390 +f 456/484/401 462/492/399 454/481/398 +f 454/481/398 463/493/400 455/482/691 +f 463/493/400 458/486/692 455/482/691 +f 463/493/400 420/439/466 458/486/692 +f 458/486/392 419/487/393 443/491/397 +f 440/774/693 454/481/387 442/480/386 +f 418/438/340 421/775/342 430/776/413 +f 455/482/388 443/491/397 442/480/386 +f 437/457/359 419/479/385 424/443/346 +f 439/459/362 438/458/361 427/446/349 +f 419/479/385 418/449/352 424/443/346 +f 440/460/363 437/457/359 438/458/361 +f 441/461/364 427/446/349 426/445/348 +f 438/458/361 431/451/354 427/446/349 +f 438/458/361 429/448/351 431/451/354 +f 424/443/346 418/449/352 425/444/347 +f 432/452/355 429/448/351 423/442/345 +f 427/446/349 431/451/354 428/447/350 +f 505/549/475 414/433/694 410/428/476 +f 505/549/475 15/536/695 414/433/694 +f 11/14/457 347/436/338 12/15/696 +f 348/346/253 388/391/297 363/360/266 +f 388/391/297 413/431/697 363/360/266 +f 388/391/297 389/390/296 498/542/462 +f 498/542/698 630/777/699 501/545/468 +f 499/543/467 498/542/698 501/545/468 +f 413/431/470 499/543/467 502/546/469 +f 411/778/700 412/779/701 504/780/474 +f 409/430/473 411/429/700 504/548/474 +f 396/781/45 391/782/45 390/783/45 +f 628/770/702 528/602/537 527/784/703 +f 182/600/534 632/785/704 580/786/705 +f 487/533/445 518/573/498 488/787/706 +f 517/572/497 628/770/702 627/769/707 +f 336/335/245 335/334/708 519/574/709 +f 422/788/710 535/585/711 532/582/712 +f 249/789/191 36/676/24 250/259/191 +f 635/790/713 636/791/714 210/792/715 +f 19/642/15 16/618/569 367/793/716 +f 381/794/717 638/795/718 600/796/718 +f 366/797/45 600/798/287 638/799/45 +f 292/800/719 293/801/719 309/802/720 +f 641/803/721 79/804/722 78/805/723 +f 109/83/70 8/78/65 7/806/724 +f 193/254/141 219/764/186 218/253/98 +f 567/807/725 356/808/726 355/809/727 +f 385/810/481 393/811/481 394/812/481 +f 521/576/501 512/568/493 432/570/495 +f 631/813/728 531/599/533 69/814/729 +f 645/815/730 646/816/731 546/817/732 +f 626/818/733 574/819/734 573/820/568 +f 68/821/735 6/822/736 541/823/737 +f 538/824/738 536/825/739 5/826/740 +f 69/827/741 540/828/742 543/829/743 +f 489/830/744 630/831/745 572/832/746 +f 389/390/747 630/777/748 498/542/749 +f 464/497/405 426/833/416 476/834/426 +f 644/835/750 354/836/751 579/837/750 +f 652/838/752 575/839/753 574/840/754 +f 533/583/755 572/627/746 630/831/745 +f 570/841/756 349/842/757 352/843/758 +f 50/41/30 599/675/260 359/844/260 +f 359/353/260 272/677/29 358/354/260 +f 372/845/759 376/846/760 367/847/761 +f 659/848/762 375/849/763 658/850/762 +f 661/851/764 663/852/765 660/853/765 +f 664/854/766 662/855/764 661/851/764 +f 660/853/765 667/856/767 666/857/767 +f 669/858/768 671/859/769 668/860/769 +f 673/861/770 671/859/769 672/862/770 +f 677/863/771 675/864/772 674/865/771 +f 676/866/772 678/867/773 675/864/772 +f 683/868/774 681/869/775 680/870/775 +f 672/862/770 684/871/776 673/861/770 +f 687/872/777 674/865/771 686/873/777 +f 688/874/772 679/875/773 676/876/772 +f 690/877/771 676/876/772 677/878/771 +f 691/85/777 677/878/771 687/879/777 +f 692/880/776 687/879/777 685/881/776 +f 693/882/770 685/881/776 672/883/770 +f 694/884/769 672/883/770 671/885/769 +f 695/886/768 671/885/769 670/887/768 +f 696/888/767 670/887/768 667/889/767 +f 697/890/765 667/889/767 663/891/765 +f 662/892/764 699/893/766 698/894/764 +f 698/894/764 663/891/765 662/892/764 +f 700/88/774 665/895/766 683/896/774 +f 701/89/775 683/896/774 680/897/775 +f 703/898/778 680/897/775 702/899/778 +f 689/900/773 702/899/778 679/875/773 +f 682/901/774 665/902/766 664/854/766 +f 666/857/767 670/903/768 669/858/768 +f 684/871/776 687/872/777 686/873/777 +f 702/904/778 681/869/775 704/905/778 +f 679/906/773 704/905/778 678/867/773 +f 22/22/18 23/643/18 24/23/19 +f 21/24/19 24/23/19 29/25/20 +f 28/26/21 29/25/20 32/27/22 +f 37/29/23 38/907/23 39/30/24 +f 41/32/25 42/908/26 43/33/26 +f 45/35/27 46/646/27 47/36/28 +f 49/38/29 38/907/23 37/29/23 +f 43/33/26 42/908/26 51/40/30 +f 40/34/25 53/909/31 52/42/31 +f 61/43/32 62/662/32 63/44/32 +f 64/45/33 63/44/33 65/46/33 +f 76/49/35 67/910/779 69/50/36 +f 67/910/779 68/911/780 69/50/36 +f 69/50/36 70/912/781 73/913/782 +f 70/912/781 71/914/481 72/915/783 +f 73/913/782 70/912/781 72/915/783 +f 73/913/782 74/916/784 69/50/36 +f 74/916/784 75/48/34 69/50/36 +f 77/51/37 78/669/785 79/52/38 +f 81/54/40 82/66/52 83/55/41 +f 84/56/43 83/55/786 4/57/44 +f 89/61/48 85/355/261 87/59/46 +f 85/355/261 86/917/787 87/59/46 +f 94/64/50 90/918/788 92/62/49 +f 90/918/788 91/919/789 92/62/49 +f 71/65/51 70/920/790 82/66/52 +f 95/67/53 72/622/555 71/65/51 +f 95/67/53 81/54/40 84/56/42 +f 96/68/55 95/67/53 3/58/54 +f 74/72/59 97/81/68 99/70/57 +f 97/81/68 98/79/66 99/70/57 +f 65/921/791 63/922/792 106/923/793 +f 63/922/792 62/73/60 106/923/793 +f 62/73/60 100/924/794 104/74/61 +f 100/924/794 101/925/795 103/926/796 +f 104/74/61 100/924/794 103/926/796 +f 101/925/795 102/927/795 103/926/796 +f 105/75/62 106/923/793 62/73/60 +f 8/78/65 107/80/67 108/76/63 +f 107/80/67 98/79/66 108/76/63 +f 107/80/67 76/671/589 99/70/57 +f 76/671/589 75/71/58 99/70/57 +f 97/81/68 1/345/251 108/76/63 +f 1/345/251 9/77/64 108/76/63 +f 67/928/797 109/83/70 68/82/69 +f 109/83/70 7/806/724 6/84/71 +f 113/85/72 114/880/75 126/86/73 +f 139/102/75 127/98/75 117/886/75 +f 127/98/75 128/96/75 116/884/75 +f 117/886/75 127/98/75 116/884/75 +f 128/96/75 126/86/73 115/882/75 +f 126/86/73 114/880/75 115/882/75 +f 138/106/75 139/102/75 117/886/75 +f 136/114/75 137/110/75 119/890/75 +f 137/110/75 138/106/75 118/888/75 +f 134/90/75 135/93/75 122/88/75 +f 135/93/75 136/114/75 121/893/75 +f 122/88/75 135/93/75 121/893/75 +f 132/104/75 133/100/75 124/898/75 +f 133/100/75 134/90/75 123/89/75 +f 124/898/75 133/100/75 123/89/75 +f 130/108/75 131/109/75 111/900/75 +f 131/109/75 132/104/75 111/900/75 +f 125/87/74 129/112/798 112/877/799 +f 129/112/798 130/108/75 112/877/799 +f 112/877/799 113/85/72 125/87/74 +f 128/96/75 115/882/75 116/884/75 +f 110/874/75 112/877/799 130/108/75 +f 111/900/75 110/874/75 130/108/75 +f 138/106/75 117/886/75 118/888/75 +f 124/898/75 111/900/75 132/104/75 +f 137/110/75 118/888/75 119/890/75 +f 136/114/75 119/890/75 120/894/75 +f 136/114/75 120/894/75 121/893/75 +f 125/87/76 126/86/83 140/91/77 +f 135/93/79 134/90/84 143/94/80 +f 128/96/82 144/99/87 140/91/77 +f 134/90/84 133/100/88 145/97/85 +f 127/98/86 146/103/91 144/99/87 +f 133/100/88 132/104/92 147/101/89 +f 139/102/90 148/107/95 146/103/91 +f 132/104/92 131/109/97 149/105/93 +f 138/106/94 150/111/99 148/107/95 +f 130/108/96 151/113/101 149/105/93 +f 137/110/98 152/115/103 150/111/99 +f 129/112/100 153/116/104 151/113/101 +f 136/114/102 154/118/106 152/115/103 +f 125/87/76 141/92/78 153/116/104 +f 155/117/105 156/929/125 154/118/106 +f 157/119/107 158/164/122 141/92/78 +f 159/120/108 155/117/105 142/95/81 +f 160/121/109 157/119/107 140/91/77 +f 159/120/108 143/94/80 145/97/85 +f 144/99/87 146/103/91 162/123/111 +f 161/122/110 145/97/85 147/101/89 +f 146/103/91 148/107/95 164/125/113 +f 147/101/89 149/105/93 165/126/114 +f 148/107/95 150/111/99 166/127/115 +f 149/105/93 151/113/101 167/128/116 +f 173/130/118 168/729/800 169/131/119 +f 169/131/119 170/704/801 171/688/598 +f 171/688/598 172/129/117 169/131/119 +f 167/128/116 151/113/101 153/116/104 +f 154/118/106 136/114/102 135/93/79 +f 175/133/121 174/930/120 158/134/122 +f 177/136/124 178/193/166 156/137/125 +f 176/139/123 158/931/122 157/140/107 +f 180/142/127 177/136/124 155/138/105 +f 179/141/126 157/140/107 160/144/109 +f 182/146/129 180/142/127 159/143/108 +f 181/145/128 160/144/109 162/148/111 +f 184/150/131 182/146/129 161/147/110 +f 183/149/130 162/148/111 164/152/113 +f 186/154/133 184/150/131 163/151/112 +f 185/153/132 164/152/113 166/156/115 +f 188/158/135 186/154/133 165/155/114 +f 187/157/134 166/156/115 189/160/136 +f 188/158/135 167/159/116 174/162/120 +f 174/132/120 153/116/104 141/92/78 +f 191/165/138 180/189/162 182/166/139 +f 193/168/141 190/188/161 178/169/142 +f 195/171/144 175/190/163 176/172/145 +f 197/174/147 198/191/164 185/175/148 +f 194/170/143 178/169/142 177/177/150 +f 200/179/152 201/192/165 186/180/153 +f 202/182/155 203/223/185 181/183/156 +f 192/167/140 182/166/139 184/185/158 +f 176/172/145 179/222/184 205/187/160 +f 193/168/141 197/174/147 187/176/149 +f 199/178/151 177/177/150 180/189/162 +f 200/179/152 188/181/154 175/190/163 +f 202/182/155 183/184/157 185/175/148 +f 204/186/159 184/185/158 186/180/153 +f 178/193/166 190/161/137 189/160/136 +f 207/194/167 208/932/168 209/195/168 +f 210/197/169 211/217/170 212/198/170 +f 215/200/171 216/219/171 217/201/172 +f 218/203/173 219/212/174 220/204/174 +f 223/206/175 224/220/175 225/207/176 +f 227/209/177 228/229/178 229/210/178 +f 219/212/174 230/221/183 231/213/179 +f 233/214/180 207/194/167 206/196/167 +f 235/216/181 212/198/170 211/217/170 +f 209/195/168 208/932/168 216/219/171 +f 210/197/169 213/199/169 224/220/175 +f 221/205/173 227/209/177 226/211/177 +f 230/221/183 214/202/172 217/201/172 +f 232/215/180 222/208/176 225/207/176 +f 179/222/184 181/183/156 203/223/185 +f 194/224/143 199/227/151 230/225/79 +f 199/227/151 191/230/138 214/228/84 +f 228/229/178 235/216/181 234/218/182 +f 191/230/138 192/232/140 215/231/88 +f 192/232/140 204/234/159 209/233/92 +f 204/234/159 201/236/165 206/235/97 +f 201/236/165 200/238/152 232/237/96 +f 200/238/152 195/240/144 222/239/187 +f 195/240/144 196/242/146 223/241/188 +f 196/242/146 205/245/160 210/243/189 +f 211/244/82 210/243/189 205/245/160 +f 203/246/185 202/248/155 234/247/86 +f 202/248/155 198/251/164 229/249/90 +f 226/250/190 229/249/90 198/251/164 +f 218/253/98 226/250/190 197/252/147 +f 247/933/75 236/934/75 237/255/75 +f 237/255/75 238/935/75 239/936/75 +f 239/936/75 240/937/75 237/255/75 +f 240/937/75 241/256/75 237/255/75 +f 241/256/75 242/938/75 243/939/75 +f 243/939/75 244/940/75 245/257/75 +f 245/257/75 246/941/75 168/942/75 +f 168/942/75 169/943/75 245/257/75 +f 169/943/75 170/944/75 245/257/75 +f 170/944/75 247/933/75 237/255/75 +f 241/256/75 243/939/75 245/257/75 +f 170/944/75 237/255/75 245/257/75 +f 248/258/22 249/789/191 250/259/191 +f 251/261/20 248/258/22 32/260/22 +f 252/263/19 251/261/20 29/262/20 +f 253/265/18 252/263/19 24/264/19 +f 254/267/28 253/265/18 23/266/18 +f 255/269/27 254/267/28 47/268/28 +f 46/270/27 53/272/31 256/271/31 +f 53/272/31 40/278/25 257/273/25 +f 258/274/30 259/277/26 43/275/26 +f 259/277/26 257/273/25 40/278/25 +f 276/689/75 260/691/75 257/273/75 +f 260/691/75 261/684/75 257/273/75 +f 261/684/75 262/686/75 256/271/75 +f 262/686/75 263/287/75 255/269/75 +f 256/271/75 262/686/75 255/269/75 +f 263/287/75 264/279/75 253/265/75 +f 264/279/75 265/280/75 252/263/75 +f 265/280/75 266/282/75 251/261/75 +f 266/282/75 267/692/75 248/258/75 +f 267/692/75 268/693/75 249/789/75 +f 268/693/75 269/682/75 249/789/75 +f 269/682/75 270/289/75 274/945/75 +f 270/289/75 271/290/75 273/672/75 +f 274/945/75 270/289/75 273/672/75 +f 271/290/75 272/677/75 273/672/75 +f 275/714/75 276/689/75 259/277/75 +f 259/277/75 258/274/75 275/714/75 +f 257/273/75 259/277/75 276/689/75 +f 269/682/75 274/945/75 249/789/75 +f 256/271/75 257/273/75 261/684/75 +f 267/692/75 249/789/75 248/258/75 +f 266/282/75 248/258/75 251/261/75 +f 254/267/75 255/269/75 263/287/75 +f 253/265/75 254/267/75 263/287/75 +f 265/280/75 251/261/75 252/263/75 +f 265/280/192 277/283/196 278/281/193 +f 264/279/195 279/288/201 277/283/196 +f 281/284/197 271/290/203 282/285/198 +f 263/287/200 283/687/597 279/288/201 +f 270/289/202 284/683/593 282/285/198 +f 285/291/204 286/725/635 242/292/205 +f 287/294/207 288/314/227 289/295/208 +f 291/297/210 292/317/230 293/298/211 +f 295/300/213 296/318/231 286/301/214 +f 290/296/209 289/295/208 297/303/216 +f 300/305/218 301/740/648 302/306/219 +f 304/308/221 305/329/236 306/309/222 +f 308/311/224 309/946/802 310/312/225 +f 287/294/207 295/300/213 285/302/215 +f 298/304/217 297/303/216 311/315/228 +f 299/307/220 302/306/219 292/317/230 +f 296/318/231 303/310/223 306/309/222 +f 90/319/75 94/947/75 314/320/75 +f 315/324/232 316/389/232 318/322/232 +f 316/389/232 317/336/232 318/322/232 +f 321/325/233 322/948/233 323/326/234 +f 324/328/235 325/949/803 305/329/236 +f 290/224/209 298/227/217 327/225/237 +f 298/227/217 312/230/229 328/228/239 +f 330/330/240 331/756/241 332/331/241 +f 328/228/239 312/230/229 308/232/224 +f 317/336/246 337/339/246 338/337/246 +f 342/341/249 340/950/804 337/339/247 +f 340/950/804 338/337/805 337/339/247 +f 344/342/250 345/951/250 346/343/250 +f 96/68/55 2/69/56 1/345/251 +f 12/15/252 347/436/806 348/346/253 +f 350/347/255 351/952/807 352/348/256 +f 357/352/259 353/953/808 354/954/751 +f 354/954/751 355/350/257 357/352/259 +f 258/274/30 50/276/30 359/353/260 +f 352/348/256 351/952/807 85/355/261 +f 364/359/265 13/4/254 348/346/253 +f 367/955/809 16/956/810 366/362/268 +f 16/956/810 18/363/269 366/362/268 +f 18/363/269 17/957/559 365/361/267 +f 376/958/760 372/959/759 375/370/811 +f 372/959/759 373/368/812 375/370/811 +f 373/368/274 374/960/327 91/369/275 +f 349/349/255 378/961/278 379/374/278 +f 384/377/281 380/962/813 382/375/279 +f 380/962/813 381/963/717 382/375/279 +f 382/375/279 383/964/814 373/376/280 +f 345/378/282 344/562/815 318/379/283 +f 386/381/285 93/388/285 92/382/285 +f 387/383/286 339/386/286 338/384/286 +f 340/385/287 338/965/287 339/386/287 +f 92/382/288 93/388/75 340/385/289 +f 386/381/291 338/384/248 340/385/292 +f 337/339/294 317/336/294 316/389/294 +f 342/341/295 341/340/295 316/389/295 +f 387/383/232 92/382/232 385/387/232 +f 348/346/253 347/436/806 389/390/296 +f 87/394/300 88/966/816 391/967/817 +f 88/966/816 390/968/816 391/967/817 +f 87/394/300 391/967/817 392/392/298 +f 392/392/298 393/969/818 86/393/299 +f 395/395/301 396/741/301 397/396/302 +f 397/398/303 344/970/303 345/399/303 +f 86/402/305 393/971/819 385/403/232 +f 385/403/232 318/972/232 87/401/304 +f 318/972/232 390/973/232 88/974/232 +f 88/974/232 87/401/304 318/972/232 +f 315/404/306 342/975/307 93/405/307 +f 398/407/308 399/413/820 400/408/309 +f 401/410/311 402/976/821 398/411/312 +f 399/413/314 402/557/821 401/414/311 +f 403/415/315 404/553/822 405/416/316 +f 406/418/318 374/417/823 405/416/319 +f 407/419/320 404/553/824 403/415/321 +f 314/420/322 94/977/322 93/421/323 +f 315/425/326 374/978/825 313/979/826 +f 313/979/826 314/423/325 315/425/326 +f 92/406/306 91/980/275 374/426/327 +f 408/427/328 409/430/332 410/428/329 +f 408/427/328 363/360/827 411/429/331 +f 411/429/331 363/360/827 413/431/333 +f 414/433/335 415/434/456 364/359/330 +f 417/435/828 389/390/829 347/436/338 +f 418/438/340 419/487/393 420/439/341 +f 454/481/387 440/774/693 439/483/389 +f 439/483/389 441/526/438 457/485/391 +f 436/488/394 459/494/402 460/489/395 +f 154/118/106 156/929/125 189/495/136 +f 189/495/136 166/127/115 150/111/99 +f 150/111/99 152/115/103 189/495/136 +f 465/498/408 460/489/406 466/499/409 +f 446/466/422 453/478/830 452/515/423 +f 485/531/442 436/456/831 483/529/443 +f 487/533/445 488/787/706 489/534/446 +f 96/68/55 97/81/68 74/72/59 +f 497/981/832 491/982/833 495/983/834 +f 491/982/833 61/541/461 494/540/460 +f 61/541/461 64/984/835 492/985/836 +f 64/984/835 66/986/837 492/985/836 +f 495/983/838 496/987/839 497/981/839 +f 494/540/460 495/983/834 491/982/833 +f 61/541/461 492/985/836 493/539/459 +f 500/544/465 469/503/689 420/439/466 +f 461/490/396 468/501/412 503/547/472 +f 506/563/482 507/591/840 508/564/483 +f 512/568/493 513/597/530 514/569/494 +f 515/571/496 516/601/535 517/572/497 +f 525/638/75 526/988/75 527/784/75 +f 525/638/75 527/784/75 528/602/75 +f 524/989/75 525/638/75 529/581/506 +f 525/638/75 528/602/75 529/581/506 +f 68/580/505 69/814/841 531/599/842 +f 531/599/842 524/989/75 68/580/505 +f 524/989/75 529/581/506 68/580/505 +f 530/603/843 5/604/844 6/579/504 +f 529/581/506 530/603/843 6/579/504 +f 544/595/527 542/593/522 540/590/518 +f 335/334/244 334/333/243 543/594/523 +f 520/575/500 542/593/531 544/595/525 +f 184/598/532 524/989/532 531/599/533 +f 516/601/535 515/571/496 529/581/536 +f 515/571/496 487/533/445 530/603/538 +f 5/604/539 530/603/538 487/533/445 +f 551/990/845 546/607/542 550/606/541 +f 546/607/542 547/991/846 549/605/540 +f 547/991/846 548/992/248 549/605/540 +f 367/993/716 552/994/847 19/610/15 +f 552/994/847 553/608/543 19/610/15 +f 553/608/543 17/995/559 20/609/16 +f 548/612/545 554/996/848 304/613/546 +f 304/613/546 555/997/849 549/611/544 +f 555/997/849 556/998/850 549/611/544 +f 556/998/850 550/999/851 549/611/544 +f 551/1000/852 550/1001/853 557/1002/854 +f 550/1001/853 556/1003/75 557/1002/854 +f 566/1004/855 567/1005/856 551/1000/852 +f 563/616/548 564/1006/857 559/1007/858 +f 564/1006/857 565/1008/859 558/1009/860 +f 559/1007/858 564/1006/857 558/1009/860 +f 565/1008/859 566/1004/855 557/1002/854 +f 566/1004/855 551/1000/852 557/1002/854 +f 565/1008/859 557/1002/854 558/1009/860 +f 559/1007/858 560/614/547 563/616/548 +f 560/614/547 561/1010/75 562/615/75 +f 17/17/861 367/617/862 16/618/862 +f 568/619/554 374/1011/554 373/620/554 +f 96/68/55 73/538/458 72/622/555 +f 350/623/556 379/1012/863 569/1013/864 +f 571/1014/865 86/1015/866 85/1016/867 +f 570/624/557 571/1014/865 85/1016/867 +f 350/623/556 569/1013/864 570/624/557 +f 570/624/557 85/1016/867 351/625/558 +f 537/587/560 538/588/868 572/627/561 +f 576/630/563 573/820/568 365/628/267 +f 573/820/568 574/819/734 575/1017/869 +f 365/628/267 573/820/568 575/1017/869 +f 57/1018/75 58/1019/75 27/1020/75 +f 27/1020/75 26/1021/75 25/1022/75 +f 25/1022/75 30/1023/75 34/633/75 +f 34/633/75 33/1024/75 60/1025/75 +f 33/1024/75 35/1026/75 60/1025/75 +f 35/1026/75 59/1027/75 60/1025/75 +f 60/1025/75 54/1028/75 55/631/75 +f 55/631/75 56/1029/75 577/632/75 +f 577/632/75 57/1018/75 27/1020/75 +f 27/1020/75 25/1022/75 577/632/75 +f 25/1022/75 34/633/75 577/632/75 +f 60/1025/75 55/631/75 34/633/75 +f 354/636/870 353/1030/871 556/1031/872 +f 556/1031/872 578/634/873 354/636/870 +f 184/598/567 182/600/874 581/1032/875 +f 182/600/874 580/786/874 581/1032/875 +f 581/1032/875 582/1033/876 184/598/567 +f 582/1033/876 583/768/877 584/637/565 +f 584/637/565 526/988/878 525/638/566 +f 525/638/566 524/989/879 184/598/567 +f 582/1033/876 584/637/565 184/598/567 +f 44/37/28 47/36/28 23/643/18 +f 31/28/22 32/27/22 250/644/191 +f 585/645/191 250/644/191 36/31/24 +f 52/42/31 53/909/31 46/646/27 +f 586/647/570 587/1034/576 588/648/571 +f 177/1035/880 180/650/573 179/652/575 +f 180/650/573 182/1036/881 184/651/574 +f 184/651/574 186/1037/882 179/652/575 +f 186/1037/882 188/1038/883 179/652/575 +f 188/1038/883 175/1039/884 179/652/575 +f 175/1039/884 176/1040/885 179/652/575 +f 179/652/575 181/1041/886 190/1042/887 +f 181/1041/886 183/1043/888 185/1044/889 +f 187/1045/890 181/1041/886 185/1044/889 +f 187/1045/890 190/1042/887 181/1041/886 +f 190/1042/887 178/1046/891 179/652/575 +f 178/1046/891 177/1035/880 179/652/575 +f 587/653/576 375/1047/892 590/654/577 +f 552/656/481 586/1048/481 589/657/578 +f 491/659/579 497/1049/893 101/660/893 +f 62/662/582 61/43/894 491/659/579 +f 596/1050/895 591/1051/896 595/665/585 +f 591/1051/896 77/663/583 595/665/585 +f 80/1052/897 592/1053/898 593/1054/899 +f 80/1052/897 593/1054/899 77/663/583 +f 593/1054/899 594/664/584 77/663/583 +f 597/666/586 591/670/587 596/667/587 +f 78/669/588 77/51/588 591/670/588 +f 109/83/70 67/928/797 76/671/589 +f 273/672/23 272/677/29 48/673/29 +f 48/39/29 359/844/260 599/675/260 +f 36/676/24 274/945/900 273/672/23 +f 272/677/75 271/290/75 281/284/75 +f 281/284/75 275/714/75 358/354/75 +f 275/714/75 258/274/75 358/354/75 +f 600/678/287 365/1055/287 575/679/590 +f 602/681/591 275/714/624 281/284/197 +f 269/682/592 171/688/598 284/683/593 +f 261/684/594 603/694/604 604/685/595 +f 262/686/596 604/685/595 283/687/597 +f 269/682/592 268/693/603 172/129/117 +f 276/689/599 605/713/623 606/690/600 +f 267/692/602 173/130/118 172/129/117 +f 260/691/601 606/690/600 603/694/604 +f 239/695/605 605/713/623 602/681/591 +f 266/282/194 278/281/193 173/130/118 +f 245/697/607 246/730/639 278/281/193 +f 237/698/608 238/696/606 602/681/591 +f 282/285/198 284/683/593 247/699/609 +f 280/286/199 282/285/198 236/700/610 +f 244/701/611 245/697/607 277/283/196 +f 283/687/597 604/685/595 242/702/612 +f 284/683/593 171/688/598 170/704/614 +f 604/685/595 603/694/604 241/705/615 +f 603/694/604 606/690/600 240/706/616 +f 293/707/617 292/734/642 168/708/618 +f 289/710/620 239/739/647 238/711/621 +f 239/695/605 240/706/616 606/690/600 +f 275/714/624 602/681/591 605/713/623 +f 311/715/625 237/720/630 236/716/626 +f 325/718/628 293/707/617 246/709/619 +f 297/712/622 238/711/621 237/720/630 +f 306/721/631 305/724/634 244/722/632 +f 305/724/634 325/718/628 245/719/629 +f 286/725/635 306/721/631 243/723/633 +f 309/726/627 236/1056/626 247/727/636 +f 168/729/901 173/130/118 278/281/193 +f 310/731/637 247/1057/636 170/732/640 +f 292/734/642 302/736/644 169/735/643 +f 302/736/644 301/733/641 170/732/640 +f 311/315/228 309/946/802 308/311/224 +f 288/737/645 285/291/204 241/293/206 +f 279/288/201 283/687/597 243/703/613 +f 293/298/211 325/949/803 324/328/235 +f 289/710/620 288/737/645 240/738/646 +f 307/313/226 310/312/225 301/740/648 +f 392/392/298 391/967/817 396/741/301 +f 607/742/649 608/1058/649 609/743/650 +f 610/745/651 611/750/651 330/330/240 +f 327/746/652 328/757/658 612/747/653 +f 614/749/654 615/762/662 611/750/651 +f 617/751/655 618/758/656 619/752/656 +f 326/754/657 327/746/652 613/748/652 +f 331/756/241 322/948/233 321/325/233 +f 333/744/650 609/743/650 612/747/653 +f 618/758/656 608/1058/649 607/742/649 +f 621/759/659 622/763/660 623/760/660 +f 326/754/657 620/755/657 615/762/662 +f 320/327/234 323/326/234 623/760/660 +f 624/761/661 617/751/655 616/753/655 +f 607/233/663 307/234/226 300/236/218 +f 300/236/218 299/238/220 616/237/665 +f 607/233/663 333/231/242 308/232/224 +f 291/240/210 294/242/212 622/241/666 +f 299/238/220 291/240/210 621/239/667 +f 622/241/666 294/242/212 324/245/235 +f 324/245/235 304/246/221 321/244/669 +f 332/247/670 321/244/669 304/246/221 +f 303/248/223 296/251/231 329/249/671 +f 296/251/231 295/252/213 610/250/672 +f 295/252/213 287/254/207 614/253/673 +f 287/254/207 290/1059/209 326/764/238 +f 625/765/674 626/1060/674 553/766/578 +f 628/770/248 527/784/248 584/637/248 +f 527/784/248 526/988/248 584/637/248 +f 584/637/248 583/768/248 628/770/248 +f 388/391/297 499/543/463 413/431/697 +f 390/783/45 318/1061/45 397/1062/45 +f 318/1061/45 344/1063/45 397/1062/45 +f 397/1062/45 396/781/45 390/783/45 +f 628/770/702 516/601/535 528/602/537 +f 182/600/534 631/813/728 632/785/704 +f 487/533/445 515/571/496 518/573/498 +f 517/572/497 516/601/535 628/770/702 +f 422/788/710 536/586/902 535/585/711 +f 249/789/191 274/945/900 36/676/24 +f 548/1064/903 547/1065/904 210/792/715 +f 547/1065/904 633/1066/905 211/1067/906 +f 547/1065/904 211/1067/906 210/792/715 +f 637/1068/307 554/1069/307 548/1064/903 +f 636/791/714 637/1068/307 548/1064/903 +f 223/1070/907 634/1071/908 635/790/713 +f 548/1064/903 210/792/715 636/791/714 +f 210/792/715 223/1070/907 635/790/713 +f 381/794/717 380/1072/813 638/795/718 +f 366/797/45 365/1073/287 600/798/287 +f 293/801/719 325/1074/307 309/802/720 +f 325/1074/307 305/1075/909 309/802/720 +f 305/1075/909 306/1076/307 309/802/720 +f 306/1076/307 286/1077/307 309/802/720 +f 286/1077/307 285/1078/910 309/802/720 +f 285/1078/910 288/1079/910 309/802/720 +f 288/1079/910 289/1080/910 309/802/720 +f 289/1080/910 297/1081/911 309/802/720 +f 297/1081/911 311/1082/912 309/802/720 +f 309/802/720 310/1083/913 301/1084/914 +f 301/1084/914 302/1085/719 309/802/720 +f 302/1085/719 292/800/719 309/802/720 +f 78/805/723 597/1086/915 639/1087/916 +f 597/1086/915 598/1088/917 639/1087/916 +f 641/803/721 642/1089/918 79/804/722 +f 78/805/723 639/1087/916 640/1090/919 +f 640/1090/919 641/803/721 78/805/723 +f 109/83/70 107/80/67 8/78/65 +f 193/254/141 194/1059/143 219/764/186 +f 644/1091/920 643/1092/921 355/809/727 +f 643/1092/921 567/807/725 355/809/727 +f 392/1093/481 395/1094/481 393/811/481 +f 395/1094/481 394/812/481 393/811/481 +f 394/812/481 345/1095/481 385/810/481 +f 631/813/728 182/600/534 531/599/533 +f 646/816/731 633/1096/922 547/1097/923 +f 546/817/732 551/1098/924 567/1099/925 +f 646/816/731 547/1097/923 546/817/732 +f 567/1099/925 645/815/730 546/817/732 +f 573/820/568 17/629/559 553/1100/543 +f 553/1100/543 626/818/733 573/820/568 +f 534/1101/926 522/1102/927 532/1103/928 +f 522/1102/927 523/1104/929 532/1103/928 +f 523/1104/929 545/1105/930 532/1103/928 +f 6/822/736 422/1106/931 541/823/737 +f 422/1106/931 532/1103/928 545/1105/930 +f 541/823/737 422/1106/931 545/1105/930 +f 541/823/737 539/1107/932 68/821/735 +f 536/825/739 422/1108/933 6/1109/934 +f 5/826/740 490/1110/935 538/824/738 +f 490/1110/935 489/1111/936 572/1112/937 +f 490/1110/935 572/1112/937 538/824/738 +f 536/825/739 6/1109/934 5/826/740 +f 336/1113/938 632/1114/939 334/1115/940 +f 632/1114/939 631/1116/941 334/1115/940 +f 69/827/741 68/1117/942 508/1118/943 +f 68/1117/942 539/1119/944 509/1120/945 +f 68/1117/942 509/1120/945 508/1118/943 +f 543/829/743 334/1115/940 631/1116/941 +f 69/827/741 508/1118/943 540/828/742 +f 543/829/743 631/1116/941 69/827/741 +f 389/390/747 417/435/946 630/777/748 +f 464/497/405 459/494/407 426/833/416 +f 644/835/750 355/1121/257 354/836/751 +f 644/1122/947 579/1123/948 657/1124/949 +f 579/1123/948 578/1125/950 647/1126/951 +f 579/1123/948 647/1126/951 657/1124/949 +f 657/1124/949 643/1127/952 644/1122/947 +f 125/1128/953 657/1124/949 647/1126/951 +f 125/1128/953 647/1126/951 648/1129/954 +f 656/1130/955 125/1128/953 648/1129/954 +f 656/1130/955 648/1129/954 649/1131/956 +f 655/1132/957 656/1130/955 649/1131/956 +f 655/1132/957 649/1131/956 650/1133/958 +f 654/1134/959 655/1132/957 574/840/754 +f 655/1132/957 650/1133/958 574/840/754 +f 650/1133/958 651/1135/960 574/840/754 +f 626/1136/961 625/1137/962 653/1138/963 +f 653/1138/963 654/1134/959 574/840/754 +f 652/838/752 601/1139/75 575/839/753 +f 651/1135/960 652/838/752 574/840/754 +f 574/840/754 626/1136/961 653/1138/963 +f 89/1140/964 88/1141/965 570/841/756 +f 570/841/756 569/1142/966 349/842/757 +f 569/1142/966 378/1143/967 349/842/757 +f 352/843/758 89/1140/964 570/841/756 +f 50/41/30 51/40/30 599/675/260 +f 359/353/260 48/673/29 272/677/29 +f 367/847/761 366/1144/719 380/1145/968 +f 366/1144/719 638/1146/719 380/1145/968 +f 380/1145/968 384/1147/969 372/845/759 +f 384/1147/969 373/1148/812 372/845/759 +f 586/1149/970 552/1150/911 587/1151/971 +f 552/1150/911 367/847/761 376/846/760 +f 587/1151/971 552/1150/911 376/846/760 +f 376/846/760 375/1152/811 587/1151/971 +f 367/847/761 380/1145/968 372/845/759 +f 659/848/762 91/1153/762 375/849/763 +f 661/851/764 662/855/764 663/852/765 +f 664/854/766 665/902/766 662/855/764 +f 660/853/765 663/852/765 667/856/767 +f 669/858/768 670/903/768 671/859/769 +f 673/861/770 668/860/769 671/859/769 +f 677/863/771 676/866/772 675/864/772 +f 676/866/772 679/906/773 678/867/773 +f 683/868/774 682/901/774 681/869/775 +f 672/862/770 685/1154/776 684/871/776 +f 687/872/777 677/863/771 674/865/771 +f 688/874/772 689/900/773 679/875/773 +f 690/877/771 688/874/772 676/876/772 +f 691/85/777 690/877/771 677/878/771 +f 692/880/776 691/85/777 687/879/777 +f 693/882/770 692/880/776 685/881/776 +f 694/884/769 693/882/770 672/883/770 +f 695/886/768 694/884/769 671/885/769 +f 696/888/767 695/886/768 670/887/768 +f 697/890/765 696/888/767 667/889/767 +f 662/892/764 665/895/766 699/893/766 +f 698/894/764 697/890/765 663/891/765 +f 700/88/774 699/893/766 665/895/766 +f 701/89/775 700/88/774 683/896/774 +f 703/898/778 701/89/775 680/897/775 +f 689/900/773 703/898/778 702/899/778 +f 682/901/774 683/868/774 665/902/766 +f 666/857/767 667/856/767 670/903/768 +f 684/871/776 685/1154/776 687/872/777 +f 702/904/778 680/870/775 681/869/775 +f 679/906/773 702/904/778 704/905/778 +o Body +v -0.104042 0.181447 2.257226 +v -0.126597 0.181447 2.095622 +v -0.126822 0.146272 2.095582 +v -0.102747 0.146272 2.257226 +v -0.126782 0.112447 2.095582 +v -0.098912 0.112447 2.257226 +v -0.126547 0.081277 2.095582 +v -0.092677 0.081277 2.257226 +v -0.126532 0.053952 2.095582 +v -0.084292 0.053952 2.257226 +v -0.126742 0.031532 2.095582 +v -0.074072 0.031532 2.257226 +v -0.126857 0.014867 2.095582 +v -0.057242 0.014867 2.257226 +v 0.127203 0.081277 2.257226 +v 0.157028 0.041857 2.095577 +v 0.156963 0.112202 2.095577 +v 0.132873 0.112447 2.257226 +v 0.156973 0.146272 2.095582 +v 0.136363 0.146272 2.257226 +v 0.156918 0.181447 2.095582 +v 0.137543 0.181447 2.257226 +v 0.156823 0.216622 2.095577 +v 0.136363 0.216622 2.257226 +v 0.156703 0.250447 2.095577 +v 0.132873 0.250447 2.257226 +v 0.156948 0.303497 2.095577 +v 0.127203 0.281617 2.257226 +v 0.156478 0.368117 2.095577 +v 0.119573 0.308942 2.257226 +v 0.108443 0.367537 2.096226 +v 0.105608 0.331367 2.257226 +v 0.065358 0.367937 2.095962 +v 0.079033 0.348027 2.257226 +v 0.040808 0.368357 2.095427 +v 0.044898 0.358287 2.257226 +v 0.015278 0.367777 2.095107 +v 0.008613 0.361752 2.257226 +v -0.010252 0.367992 2.095267 +v -0.027957 0.358287 2.257226 +v -0.039807 0.368072 2.095676 +v -0.057242 0.348027 2.257226 +v -0.087862 0.368367 2.095827 +v -0.074072 0.331367 2.257226 +v -0.125927 0.368117 2.095577 +v -0.084292 0.308942 2.257226 +v -0.126277 0.316367 2.095582 +v -0.092677 0.281617 2.257226 +v -0.126622 0.252017 2.095577 +v -0.098912 0.250447 2.257226 +v -0.126787 0.216622 2.095622 +v -0.102747 0.216622 2.257226 +v 0.008613 0.001142 2.257226 +v 0.044898 0.004607 2.257226 +v 0.043728 0.008432 2.269892 +v 0.008953 0.005252 2.269151 +v 0.075608 0.018202 2.272082 +v 0.074288 0.018002 2.289217 +v 0.043278 0.009362 2.284971 +v 0.131853 0.238097 2.322901 +v 0.135283 0.206547 2.315361 +v -0.070897 0.313692 2.340766 +v -0.052147 0.329297 2.344187 +v -0.070897 0.033807 2.275636 +v -0.083082 0.054737 2.280421 +v 0.131853 0.109332 2.292907 +v 0.125968 0.080237 2.286257 +v 0.043648 0.338907 2.346182 +v 0.075508 0.329297 2.344187 +v -0.101562 0.140902 2.300132 +v -0.102832 0.173727 2.307687 +v -0.101562 0.206542 2.315372 +v 0.079033 0.014867 2.257226 +v 0.125968 0.267177 2.329957 +v -0.083082 0.292707 2.336036 +v -0.052152 0.018202 2.272082 +v 0.135283 0.140902 2.300132 +v 0.008868 0.342147 2.346867 +v -0.097792 0.109332 2.292907 +v 0.105608 0.031532 2.257226 +v 0.100493 0.033807 2.275636 +v 0.116473 0.292712 2.336031 +v -0.091667 0.267172 2.329972 +v -0.027957 0.004607 2.257226 +v -0.024687 0.008432 2.269892 +v 0.136443 0.173732 2.307687 +v -0.024702 0.338907 2.346182 +v -0.091667 0.080237 2.286257 +v 0.119573 0.053952 2.257226 +v 0.116473 0.054737 2.280421 +v 0.100458 0.313692 2.340756 +v -0.097792 0.238092 2.322917 +v 0.115208 0.050947 2.305392 +v 0.125268 0.073897 2.316697 +v 0.124398 0.061977 2.346682 +v 0.113923 0.042892 2.330552 +v 0.009113 0.310307 2.437171 +v 0.043063 0.307337 2.436047 +v 0.098803 0.032117 2.296112 +v -0.023487 0.307337 2.436037 +v -0.050427 0.298552 2.432451 +v -0.069587 0.284297 2.426202 +v 0.131373 0.100087 2.329607 +v -0.101067 0.128497 2.343702 +v -0.102332 0.158017 2.358666 +v -0.082372 0.265167 2.416776 +v 0.134828 0.128497 2.343697 +v -0.097322 0.100087 2.329607 +v -0.091187 0.242067 2.404372 +v 0.135983 0.158017 2.358647 +v -0.091187 0.073897 2.316697 +v -0.097322 0.215847 2.389842 +v 0.134828 0.187512 2.374151 +v -0.082382 0.050947 2.305392 +v -0.101067 0.187512 2.374202 +v 0.131373 0.215862 2.389791 +v -0.069622 0.032117 2.296112 +v 0.125258 0.242102 2.404341 +v -0.050477 0.018002 2.289217 +v 0.115168 0.265197 2.416767 +v -0.023502 0.009362 2.284971 +v 0.098703 0.284317 2.426207 +v 0.009178 0.006112 2.283536 +v 0.074133 0.298552 2.432456 +v 0.134313 0.107372 2.385381 +v 0.135478 0.131892 2.407136 +v 0.135093 0.098627 2.448882 +v 0.133923 0.080037 2.421551 +v -0.068262 0.237702 2.509001 +v -0.048792 0.250007 2.517802 +v 0.130738 0.083757 2.365137 +v -0.100527 0.107372 2.385396 +v -0.101782 0.131892 2.407187 +v -0.081487 0.221382 2.495207 +v -0.096782 0.083757 2.365142 +v -0.090542 0.201802 2.476442 +v -0.090547 0.061977 2.346682 +v -0.096782 0.179917 2.453947 +v 0.134313 0.156372 2.430287 +v -0.081522 0.042892 2.330552 +v -0.100527 0.156347 2.430351 +v 0.130733 0.179997 2.453917 +v -0.068352 0.027242 2.317312 +v 0.124368 0.201922 2.476486 +v -0.048957 0.015627 2.307477 +v 0.113838 0.221522 2.495322 +v -0.022467 0.008252 2.301422 +v 0.096973 0.237787 2.509116 +v 0.009393 0.005977 2.299371 +v 0.072818 0.250047 2.517882 +v 0.042693 0.008252 2.301422 +v 0.042503 0.257577 2.522491 +v 0.073098 0.015627 2.307477 +v 0.009353 0.260112 2.523916 +v 0.097168 0.027242 2.317312 +v -0.022337 0.257577 2.522466 +v 0.130288 0.135252 2.508852 +v 0.123643 0.152242 2.538101 +v 0.123428 0.098667 2.585832 +v 0.130143 0.086702 2.551897 +v -0.090107 0.045632 2.373337 +v -0.096382 0.062142 2.396302 +v -0.096377 0.135057 2.508687 +v -0.090092 0.151917 2.537687 +v 0.133923 0.117237 2.478221 +v -0.080817 0.031167 2.353256 +v -0.100107 0.117147 2.478212 +v -0.067327 0.019322 2.336787 +v -0.101352 0.098607 2.448906 +v -0.047877 0.010557 2.324547 +v 0.112728 0.167502 2.562846 +v -0.021672 0.005162 2.317007 +v 0.095753 0.180417 2.580732 +v 0.009598 0.003257 2.314461 +v 0.071718 0.190057 2.591747 +v 0.042193 0.005162 2.317007 +v 0.041973 0.196017 2.597352 +v 0.072058 0.010557 2.324547 +v 0.009653 0.198027 2.599011 +v 0.096028 0.019322 2.336787 +v -0.021407 0.195982 2.597237 +v 0.112883 0.031167 2.353256 +v -0.047617 0.189942 2.591491 +v 0.123693 0.045632 2.373337 +v -0.067167 0.180172 2.580297 +v 0.130298 0.062142 2.396297 +v -0.100107 0.080037 2.421576 +v -0.080757 0.167147 2.562307 +v 0.095203 0.118782 2.636012 +v 0.071288 0.125672 2.649157 +v 0.071228 0.059282 2.692111 +v 0.095123 0.055062 2.677587 +v -0.047402 0.001067 2.341511 +v -0.066952 0.007032 2.355487 +v 0.112328 0.109587 2.614851 +v -0.021337 -0.002573 2.332891 +v 0.009633 -0.003798 2.329982 +v 0.041988 -0.002573 2.332891 +v 0.041788 0.129857 2.655817 +v 0.071648 0.001067 2.341511 +v 0.009733 0.131222 2.657737 +v 0.095528 0.007032 2.355487 +v -0.021032 0.129787 2.655612 +v 0.112498 0.015117 2.374301 +v -0.047082 0.125447 2.648592 +v 0.123488 0.025007 2.397232 +v -0.066762 0.118302 2.634996 +v 0.130158 0.036297 2.423471 +v -0.099957 0.048547 2.452266 +v -0.101202 0.061252 2.483346 +v -0.080542 0.109017 2.613652 +v 0.133788 0.048552 2.452266 +v -0.096237 0.036297 2.423471 +v -0.089947 0.098097 2.584816 +v 0.134953 0.061302 2.483371 +v -0.089967 0.025007 2.397232 +v -0.096237 0.086327 2.551286 +v 0.133783 0.074132 2.516822 +v -0.080617 0.015117 2.374301 +v -0.099957 0.073977 2.516632 +v 0.009738 0.062607 2.701731 +v -0.020977 0.061682 2.699227 +v -0.020972 -0.007258 2.732306 +v 0.009738 -0.006813 2.734906 +v 0.041933 -0.018718 2.353367 +v 0.009643 -0.019438 2.350227 +v 0.041763 0.061787 2.699567 +v 0.071538 -0.016558 2.362597 +v 0.095388 -0.013008 2.377592 +v 0.112418 -0.008168 2.397752 +v -0.047002 0.058982 2.691226 +v 0.123453 -0.002253 2.422401 +v -0.066707 0.054557 2.676067 +v 0.130138 0.004507 2.450612 +v -0.099937 0.011832 2.481547 +v -0.101177 0.019462 2.514677 +v -0.080517 0.048592 2.652551 +v 0.133768 0.011847 2.481552 +v -0.096217 0.004507 2.450607 +v -0.089932 0.041837 2.621762 +v 0.134933 0.019522 2.514766 +v -0.089947 -0.002253 2.422401 +v -0.096217 0.034602 2.586362 +v 0.133763 0.027307 2.550277 +v -0.080582 -0.008168 2.397752 +v -0.099937 0.027097 2.549876 +v 0.130128 0.035027 2.587296 +v -0.066867 -0.013008 2.377592 +v 0.123403 0.042477 2.623416 +v -0.047272 -0.016558 2.362597 +v 0.112273 0.049342 2.654462 +v -0.021247 -0.018718 2.353367 +v -0.021152 -0.047593 2.380947 +v 0.009683 -0.047948 2.377752 +v 0.009708 -0.091883 2.410267 +v -0.021057 -0.091763 2.413502 +v 0.112358 -0.042393 2.426476 +v 0.095288 -0.044783 2.405797 +v -0.046992 -0.008633 2.724011 +v 0.123428 -0.039463 2.451837 +v -0.066702 -0.010948 2.708507 +v 0.130133 -0.036123 2.480987 +v -0.099932 -0.032498 2.512922 +v -0.101177 -0.028723 2.546967 +v -0.080517 -0.013993 2.684987 +v 0.133763 -0.032488 2.512932 +v -0.096217 -0.036123 2.480992 +v -0.089927 -0.017503 2.654326 +v 0.134928 -0.028678 2.547066 +v -0.089937 -0.039463 2.451837 +v -0.096217 -0.021188 2.619167 +v 0.133763 -0.024778 2.583122 +v -0.080552 -0.042393 2.426476 +v -0.099932 -0.024923 2.582686 +v 0.130128 -0.020838 2.620347 +v -0.066802 -0.044783 2.405797 +v 0.123403 -0.016968 2.656266 +v -0.047172 -0.046538 2.390441 +v 0.112268 -0.013438 2.687297 +v 0.095118 -0.010478 2.710447 +v 0.071223 -0.008393 2.725106 +v 0.041868 -0.047593 2.380947 +v 0.041763 -0.007183 2.732727 +v 0.071428 -0.046538 2.390441 +v 0.071318 -0.091388 2.422987 +v 0.095193 -0.090763 2.438312 +v 0.095138 -0.150878 2.470521 +v 0.071253 -0.150923 2.455152 +v 0.071223 -0.077493 2.751517 +v 0.095118 -0.078243 2.737706 +v 0.041818 -0.091763 2.413502 +v 0.041763 -0.077093 2.758621 +v 0.009738 -0.076978 2.760701 +v -0.020972 -0.077148 2.758147 +v 0.112303 -0.089913 2.459091 +v -0.046992 -0.077633 2.750282 +v 0.123408 -0.088868 2.484561 +v -0.066702 -0.078498 2.735707 +v 0.130128 -0.087683 2.513982 +v -0.099932 -0.086388 2.546287 +v -0.101177 -0.085048 2.580527 +v -0.080517 -0.079658 2.713696 +v 0.133763 -0.086388 2.546287 +v -0.096217 -0.087683 2.513982 +v -0.089927 -0.080993 2.684916 +v 0.134928 -0.085033 2.580621 +v -0.089932 -0.088868 2.484561 +v -0.096217 -0.082328 2.651492 +v 0.133763 -0.083618 2.616377 +v -0.080527 -0.089913 2.459091 +v -0.099932 -0.083693 2.615967 +v 0.130128 -0.082168 2.652611 +v -0.066747 -0.090763 2.438312 +v 0.123403 -0.080703 2.686902 +v -0.047077 -0.091388 2.422987 +v 0.112268 -0.079328 2.716082 +v 0.123403 -0.150723 2.516716 +v 0.130123 -0.150623 2.546186 +v 0.130118 -0.223168 2.573477 +v 0.123393 -0.222843 2.543906 +v -0.020972 -0.149493 2.778831 +v 0.009738 -0.149478 2.781187 +v 0.112278 -0.150808 2.491152 +v -0.046992 -0.149553 2.771621 +v -0.066702 -0.149653 2.758532 +v -0.099932 -0.150518 2.578537 +v -0.101177 -0.150408 2.612692 +v -0.080517 -0.149838 2.738907 +v 0.133763 -0.150518 2.578542 +v -0.096217 -0.150623 2.546181 +v -0.089927 -0.150003 2.712776 +v 0.134928 -0.150408 2.612751 +v -0.089927 -0.150723 2.516716 +v -0.096217 -0.150168 2.681612 +v 0.133763 -0.150283 2.647907 +v -0.080517 -0.150808 2.491152 +v -0.099932 -0.150293 2.647557 +v 0.130123 -0.150113 2.682542 +v -0.066712 -0.150878 2.470521 +v 0.123403 -0.149903 2.714457 +v -0.047017 -0.150923 2.455152 +v 0.112268 -0.149698 2.740982 +v -0.021002 -0.150948 2.445692 +v 0.095113 -0.149533 2.760386 +v 0.009728 -0.150958 2.442497 +v 0.071223 -0.149478 2.772737 +v 0.041783 -0.150948 2.445692 +v 0.041763 -0.149468 2.779326 +v 0.134923 -0.223888 2.639867 +v 0.133758 -0.224253 2.674222 +v 0.133723 -0.300623 2.692542 +v 0.134888 -0.300128 2.658852 +v -0.099927 -0.223523 2.605856 +v -0.101172 -0.223888 2.639827 +v -0.080507 -0.225168 2.758941 +v -0.066682 -0.225388 2.776417 +v 0.133758 -0.223523 2.605861 +v -0.096207 -0.223168 2.573477 +v -0.089922 -0.224908 2.735567 +v -0.089922 -0.222843 2.543906 +v -0.096207 -0.224598 2.706631 +v -0.080507 -0.222558 2.518296 +v -0.099927 -0.224253 2.674011 +v 0.130118 -0.224593 2.707287 +v -0.066682 -0.222323 2.497396 +v 0.123393 -0.224878 2.736777 +v -0.046972 -0.222148 2.481987 +v 0.112248 -0.225118 2.760502 +v -0.020962 -0.222043 2.472451 +v 0.095093 -0.225333 2.777837 +v 0.009743 -0.222003 2.469197 +v 0.071203 -0.225513 2.788971 +v 0.041758 -0.222043 2.472451 +v 0.041753 -0.225648 2.795027 +v 0.071213 -0.222148 2.481987 +v 0.009743 -0.225703 2.796861 +v 0.095093 -0.222323 2.497396 +v -0.020952 -0.225668 2.794601 +v 0.112248 -0.222558 2.518296 +v -0.046972 -0.225558 2.787992 +v 0.123323 -0.301523 2.751557 +v 0.112143 -0.301888 2.773307 +v 0.111763 -0.367278 2.778981 +v 0.123048 -0.366883 2.758672 +v -0.080437 -0.298328 2.537172 +v -0.089877 -0.298713 2.563031 +v -0.099887 -0.300623 2.692401 +v -0.096172 -0.301093 2.723742 +v 0.130078 -0.301093 2.724152 +v -0.066577 -0.298013 2.516082 +v -0.101127 -0.300128 2.658827 +v -0.046847 -0.297778 2.500422 +v -0.020862 -0.297633 2.490741 +v 0.094963 -0.302198 2.788872 +v 0.009768 -0.297583 2.487487 +v 0.071098 -0.302438 2.799277 +v 0.041703 -0.297633 2.490741 +v 0.041703 -0.302598 2.805131 +v 0.071098 -0.297778 2.500422 +v 0.009773 -0.302658 2.806857 +v 0.094968 -0.298013 2.516082 +v -0.020862 -0.302613 2.804657 +v 0.112143 -0.298328 2.537172 +v -0.046847 -0.302463 2.798387 +v 0.123323 -0.298713 2.563031 +v -0.066577 -0.302228 2.787722 +v 0.130078 -0.299153 2.592726 +v -0.099887 -0.299633 2.625082 +v -0.080437 -0.301908 2.772166 +v 0.133723 -0.299633 2.625082 +v -0.096172 -0.299153 2.592726 +v -0.089877 -0.301528 2.750731 +v 0.070733 -0.367853 2.803761 +v 0.041538 -0.368008 2.809531 +v 0.041153 -0.402038 2.810107 +v 0.069898 -0.401883 2.804367 +v -0.020557 -0.362833 2.500726 +v -0.046437 -0.362983 2.510462 +v 0.094528 -0.367603 2.793827 +v 0.009853 -0.362783 2.497422 +v 0.041538 -0.362833 2.500726 +v 0.070733 -0.362983 2.510462 +v 0.009853 -0.368063 2.811261 +v 0.094528 -0.363228 2.526272 +v -0.020557 -0.368013 2.808902 +v 0.111763 -0.363558 2.547532 +v -0.046437 -0.367863 2.802752 +v 0.123048 -0.363958 2.573517 +v -0.066202 -0.367618 2.792622 +v 0.129888 -0.364413 2.603216 +v -0.099732 -0.364908 2.635497 +v -0.100972 -0.365423 2.668967 +v -0.080162 -0.367288 2.777956 +v 0.133573 -0.364908 2.635507 +v -0.096017 -0.364413 2.603216 +v -0.089687 -0.366888 2.757951 +v 0.134743 -0.365423 2.669007 +v -0.089687 -0.363958 2.573517 +v -0.096017 -0.366433 2.732261 +v 0.133573 -0.365938 2.702047 +v -0.080162 -0.363558 2.547532 +v -0.099732 -0.365938 2.701906 +v 0.129888 -0.366433 2.732651 +v -0.066202 -0.363228 2.526272 +v 0.069898 -0.397023 2.514677 +v 0.041153 -0.396873 2.504946 +v 0.010053 -0.402088 2.811737 +v 0.093518 -0.397268 2.530447 +v -0.019852 -0.402038 2.809427 +v 0.110838 -0.397593 2.551687 +v -0.045492 -0.401888 2.803162 +v 0.122358 -0.397993 2.577567 +v -0.065302 -0.401643 2.793172 +v 0.129398 -0.398448 2.607136 +v -0.099347 -0.398943 2.639172 +v -0.100587 -0.399453 2.672261 +v -0.079472 -0.401313 2.778791 +v 0.133183 -0.398943 2.639192 +v -0.095607 -0.398448 2.607131 +v -0.089192 -0.400918 2.759287 +v 0.134383 -0.399453 2.672342 +v -0.089192 -0.397993 2.577567 +v -0.095607 -0.400463 2.734262 +v 0.133183 -0.399968 2.704881 +v -0.079472 -0.397593 2.551687 +v -0.099347 -0.399968 2.704672 +v 0.129398 -0.400463 2.734692 +v -0.065302 -0.397268 2.530447 +v 0.122358 -0.400918 2.760062 +v -0.045492 -0.397023 2.514677 +v 0.110838 -0.401313 2.779922 +v -0.019852 -0.396873 2.504946 +v 0.093513 -0.401638 2.794411 +v 0.010053 -0.396823 2.501657 +v -0.195687 0.368117 1.774311 +v -0.195687 -0.007073 1.774311 +v -0.125927 -0.007073 2.017036 +v -0.125927 0.368117 2.017036 +v 0.156478 0.368117 2.017036 +v 0.226243 0.368117 1.774311 +v 0.226243 0.368117 1.268341 +v -0.195687 0.366977 1.268341 +v 0.156478 -0.007073 2.017036 +v 0.226243 -0.007073 1.774311 +v 0.156478 -0.007073 2.095577 +v -0.125927 -0.007073 2.095577 +v -0.195687 -0.007073 1.254626 +v 0.226243 -0.007073 1.254626 +v -0.195687 0.550997 1.254626 +v 0.226243 0.550997 1.254626 +v -0.072587 0.420187 2.008317 +v -0.072477 0.361167 2.008317 +v -0.104802 0.368752 2.008317 +v -0.104802 0.420417 2.008317 +v -0.195687 0.549692 1.221916 +v 0.226243 0.550997 1.204016 +v 0.225853 0.550277 1.249016 +v 0.225853 0.633187 1.249016 +v -0.195297 0.633187 1.249016 +v -0.195297 0.550672 1.249016 +v -0.163912 0.658712 1.113386 +v -0.112717 0.696867 0.713111 +v -0.112717 0.549447 0.713111 +v -0.195297 0.549447 1.116916 +v -0.040032 0.696867 0.713111 +v 0.059728 0.696867 0.713111 +v 0.143273 0.696867 0.713111 +v 0.143273 0.549447 0.713111 +v 0.194463 0.658712 1.113386 +v 0.225853 0.549447 1.116916 +v 0.059728 0.696867 0.729606 +v 0.046923 0.696867 0.740811 +v 0.046923 0.696867 0.912051 +v -0.024562 0.696867 0.912051 +v -0.024562 0.696867 0.741876 +v -0.040032 0.696867 0.724806 +v -0.040032 0.689142 0.724806 +v -0.040032 0.689142 0.713111 +v -0.024562 0.689142 0.741876 +v -0.024562 0.689142 0.912051 +v 0.046923 0.689142 0.912051 +v 0.046923 0.689142 0.740811 +v 0.059728 0.689142 0.729606 +v 0.059728 0.689142 0.713111 +v 0.225853 0.593962 1.295721 +v -0.195297 0.593962 1.295721 +v 0.212403 0.550112 1.316051 +v -0.182962 0.550112 1.316051 +v 0.192248 0.345407 1.571866 +v 0.192248 0.545037 1.571866 +v 0.103763 0.546742 1.573221 +v -0.073207 0.546647 1.573161 +v -0.161692 0.545037 1.571866 +v -0.161692 0.345407 1.571866 +v 0.135358 0.420417 2.008317 +v 0.192248 0.420417 1.709236 +v 0.192248 0.367842 1.709236 +v 0.135358 0.369122 2.008317 +v -0.161692 0.368532 1.709236 +v -0.161692 0.420417 1.709236 +v -0.161692 0.520587 1.606886 +v -0.161692 0.489417 1.642786 +v 0.192248 0.489582 1.642891 +v 0.192248 0.520637 1.606921 +v 0.103763 0.535337 1.618551 +v -0.073207 0.534522 1.618026 +v -0.070712 0.420642 1.953486 +v -0.062112 0.420712 1.935831 +v -0.062112 0.361462 1.935831 +v -0.070712 0.361392 1.953486 +v 0.103763 0.513257 1.661546 +v -0.073207 0.511952 1.660701 +v 0.050893 0.420857 1.900291 +v 0.066983 0.420822 1.909211 +v 0.066983 0.361572 1.909211 +v 0.050893 0.361607 1.900291 +v 0.081088 0.420772 1.921211 +v 0.081088 0.361522 1.921211 +v 0.092663 0.420712 1.935831 +v 0.092663 0.361462 1.935831 +v 0.103143 0.420187 2.008317 +v 0.135358 0.361167 2.008317 +v 0.103253 0.360712 2.008317 +v 0.103983 0.415327 2.008317 +v 0.103763 0.421957 1.710461 +v -0.073207 0.421872 1.710406 +v 0.101263 0.420642 1.953486 +v 0.104628 0.361197 2.001492 +v 0.101263 0.361392 1.953486 +v -0.050537 0.420772 1.921211 +v -0.050537 0.361522 1.921211 +v -0.036432 0.420822 1.909211 +v -0.036432 0.361572 1.909211 +v -0.020342 0.420857 1.900291 +v -0.020342 0.361607 1.900291 +v -0.002882 0.420882 1.894726 +v -0.002882 0.361632 1.894726 +v 0.015278 0.420887 1.892916 +v 0.015278 0.361637 1.892916 +v 0.033433 0.420882 1.894726 +v 0.033433 0.361632 1.894726 +v 0.072728 0.361497 1.985322 +v 0.060413 0.357467 1.984221 +v 0.060413 0.357987 1.969821 +v 0.072728 0.363242 1.961426 +v -0.029862 0.357467 1.984221 +v -0.042172 0.361497 1.985322 +v -0.042172 0.363242 1.962436 +v -0.029862 0.357987 1.969821 +v 0.082828 0.366757 1.992096 +v 0.082828 0.367782 1.969347 +v -0.015812 0.354472 1.984221 +v -0.015812 0.355047 1.969717 +v 0.090338 0.372012 1.982836 +v -0.000572 0.352627 1.984221 +v -0.000572 0.353242 1.968827 +v 0.015278 0.352007 1.984221 +v 0.015278 0.352627 1.968521 +v 0.031128 0.352627 1.984221 +v 0.031128 0.353242 1.968827 +v -0.059782 0.372252 1.990866 +v -0.065967 0.384417 1.984371 +v -0.059782 0.372957 1.971326 +v 0.046368 0.354472 1.984221 +v 0.046368 0.355047 1.969717 +v -0.052277 0.366757 1.993742 +v -0.052277 0.366757 1.973552 +v 0.046368 0.356752 1.955771 +v 0.060413 0.359517 1.958616 +v -0.029862 0.359517 1.958616 +v -0.015812 0.356752 1.955771 +v 0.090338 0.374102 1.964501 +v -0.000572 0.355047 1.954021 +v 0.096523 0.384417 1.985411 +v 0.094963 0.381562 1.971781 +v 0.015278 0.354472 1.953426 +v 0.031128 0.355047 1.954021 +v -0.064407 0.378572 1.974307 +v -0.000572 0.357987 1.940376 +v 0.015278 0.357467 1.939516 +v 0.031128 0.357987 1.940376 +v 0.046368 0.359517 1.942921 +v -0.052277 0.369442 1.961657 +v 0.060413 0.362007 1.947241 +v -0.029862 0.362007 1.948291 +v -0.015812 0.359517 1.942921 +v -0.052277 0.374412 1.948831 +v -0.042172 0.368212 1.943866 +v 0.060413 0.369442 1.928741 +v 0.072728 0.371682 1.939526 +v -0.029862 0.365362 1.936131 +v 0.082828 0.371682 1.952761 +v -0.015812 0.363242 1.930786 +v -0.000572 0.361937 1.928416 +v 0.015278 0.361497 1.927326 +v 0.031128 0.361937 1.928416 +v 0.046368 0.363242 1.929736 +v -0.000572 0.366757 1.917736 +v 0.015278 0.366407 1.917316 +v 0.031128 0.366757 1.917736 +v -0.059782 0.377527 1.960471 +v 0.046368 0.372957 1.917011 +v -0.042172 0.375647 1.932931 +v -0.029862 0.374102 1.923296 +v 0.082828 0.377527 1.944441 +v -0.015812 0.372957 1.916506 +v 0.060413 0.379157 1.919916 +v 0.072728 0.379942 1.931296 +v 0.090338 0.379667 1.955586 +v -0.000572 0.372252 1.911116 +v 0.015278 0.372012 1.909686 +v 0.031128 0.372252 1.911116 +v -0.059782 0.384417 1.954947 +v 0.015278 0.384417 1.905541 +v 0.031128 0.384417 1.907051 +v 0.046368 0.384417 1.912161 +v -0.052277 0.384417 1.941311 +v -0.042172 0.384417 1.928946 +v -0.029862 0.384417 1.919221 +v -0.015812 0.384417 1.912001 +v -0.000572 0.384417 1.907051 +v 0.082828 0.384417 1.941681 +v -0.054747 0.410147 1.984442 +v -0.050687 0.412272 1.963086 +v 0.029208 0.411657 1.916271 +v 0.042598 0.416322 1.922586 +v -0.044087 0.412272 1.948071 +v 0.054943 0.415307 1.928896 +v -0.035207 0.413937 1.937821 +v 0.065763 0.413937 1.937631 +v -0.024387 0.415307 1.929656 +v 0.074643 0.415032 1.951711 +v -0.012047 0.416322 1.922586 +v 0.081238 0.410367 1.961992 +v 0.001348 0.411657 1.916271 +v 0.085303 0.410147 1.984046 +v 0.015278 0.411767 1.913636 +v 0.001348 0.423157 1.926791 +v 0.015278 0.420487 1.921621 +v 0.029208 0.423157 1.926791 +v 0.042598 0.422637 1.936496 +v 0.054943 0.421792 1.940636 +v -0.035207 0.422417 1.949106 +v 0.065763 0.420657 1.943601 +v -0.024387 0.423867 1.945071 +v -0.012047 0.422637 1.932076 +v 0.081238 0.415307 1.967831 +v 0.015278 0.425822 1.933986 +v -0.012047 0.426827 1.948986 +v 0.001348 0.427607 1.946311 +v 0.029208 0.427607 1.944816 +v -0.050687 0.416322 1.973017 +v -0.044087 0.420657 1.957952 +v 0.010993 0.429387 1.984911 +v 0.065763 0.423867 1.959557 +v -0.044087 0.422637 1.972241 +v 0.042598 0.426827 1.950346 +v -0.035207 0.424937 1.969486 +v 0.074643 0.421792 1.962707 +v 0.015278 0.427867 1.948406 +v 0.065763 0.425602 1.976111 +v 0.074643 0.423157 1.976421 +v -0.049832 0.419682 1.989562 +v 0.074643 0.423157 1.993811 +v -0.044087 0.423157 1.990957 +v -0.035207 0.425602 1.991261 +v 0.065763 0.425602 1.992446 +v -0.044087 0.421792 2.005007 +v -0.035207 0.423867 2.007536 +v 0.065763 0.423867 2.007051 +v 0.081238 0.416322 1.997272 +v 0.074643 0.420657 2.011071 +v 0.001348 0.425602 2.029992 +v 0.015278 0.427867 2.022802 +v 0.029208 0.425602 2.029171 +v -0.050687 0.412272 2.004812 +v 0.042598 0.424937 2.028047 +v 0.015278 0.425822 2.035047 +v 0.065763 0.420657 2.024581 +v -0.024387 0.421792 2.027916 +v -0.012047 0.422637 2.032146 +v 0.081238 0.408302 2.008471 +v -0.044087 0.415032 2.018562 +v 0.054943 0.421792 2.026891 +v -0.035207 0.420657 2.024837 +v 0.029208 0.420367 2.047677 +v 0.042598 0.411337 2.047562 +v 0.054943 0.415307 2.040537 +v -0.035207 0.413937 2.030951 +v 0.065763 0.410122 2.033127 +v -0.024387 0.415307 2.040177 +v 0.074643 0.409272 2.022362 +v -0.012047 0.411337 2.048382 +v 0.001348 0.420367 2.047677 +v 0.015278 0.420487 2.048441 +v 0.001348 0.411657 2.053447 +v 0.015278 0.411767 2.054806 +v 0.029208 0.411657 2.053447 +v 0.031128 0.384417 2.061387 +v 0.046368 0.384417 2.056911 +v -0.059782 0.384417 2.014647 +v -0.052277 0.384417 2.027192 +v 0.060413 0.384417 2.049217 +v -0.042172 0.384417 2.039496 +v 0.072728 0.384417 2.039856 +v -0.029862 0.384417 2.049217 +v 0.082828 0.384417 2.027931 +v -0.015812 0.384417 2.056911 +v 0.090338 0.384417 2.015052 +v -0.000572 0.384417 2.061387 +v 0.094963 0.381562 1.997797 +v 0.015278 0.384417 2.062901 +v -0.064407 0.381562 1.997211 +v 0.046368 0.372957 2.051937 +v 0.060413 0.374102 2.045146 +v -0.052277 0.377527 2.023782 +v -0.042172 0.375647 2.036031 +v 0.072728 0.375647 2.036031 +v -0.029862 0.374102 2.045146 +v 0.082828 0.377527 2.023097 +v -0.015812 0.372957 2.051937 +v -0.000572 0.372252 2.057322 +v 0.015278 0.372012 2.058757 +v 0.031128 0.372252 2.057322 +v 0.090338 0.377527 2.009461 +v -0.000572 0.366757 2.050707 +v 0.015278 0.366407 2.051126 +v 0.031128 0.366757 2.050707 +v -0.059782 0.377527 2.009562 +v -0.052277 0.371682 2.014802 +v -0.042172 0.368212 2.023762 +v 0.060413 0.365362 2.032311 +v 0.072728 0.368212 2.023077 +v -0.029862 0.365362 2.032311 +v 0.082828 0.369442 2.009331 +v -0.015812 0.363242 2.037657 +v -0.000572 0.361937 2.040026 +v 0.015278 0.361497 2.041116 +v 0.031128 0.361937 2.040026 +v 0.046368 0.363242 2.037657 +v -0.000572 0.357987 2.028067 +v 0.015278 0.357467 2.028927 +v 0.031128 0.357987 2.028067 +v 0.046368 0.359517 2.025522 +v 0.060413 0.362007 2.022481 +v -0.029862 0.362007 2.022481 +v -0.015812 0.359517 2.025522 +v 0.060413 0.359517 2.009826 +v 0.072728 0.363242 2.004677 +v -0.042172 0.363242 2.004061 +v -0.029862 0.359517 2.009826 +v -0.015812 0.356752 2.012671 +v 0.090338 0.372957 1.996261 +v -0.000572 0.355047 2.014421 +v 0.015278 0.354472 2.015012 +v 0.031128 0.355047 2.014421 +v 0.046368 0.356752 2.012671 +v 0.015278 0.352627 1.999922 +v 0.031128 0.353242 1.999616 +v 0.046368 0.355047 1.998726 +v 0.060413 0.357987 1.998621 +v -0.029862 0.357987 1.998621 +v -0.015812 0.355047 1.998726 +v -0.000572 0.353242 1.999616 +v 0.003258 0.370252 2.281246 +v 0.027493 0.370302 2.281246 +v 0.035023 0.408137 2.129462 +v -0.001387 0.408622 2.129462 +v -0.010042 0.367867 2.038851 +v -0.009962 0.401282 2.038902 +v 0.042338 0.401057 2.038902 +v 0.042258 0.367607 2.038851 +v 0.028093 0.384792 2.329497 +v 0.028093 0.363512 2.388186 +v 0.028093 0.327292 2.388186 +v 0.002468 0.327292 2.388186 +v 0.002468 0.384792 2.329497 +v 0.002468 0.363512 2.388186 +v 0.068013 -0.228233 2.518971 +v 0.068013 0.013907 2.518971 +v -0.037457 0.019012 2.517522 +v -0.037457 -0.228233 2.518971 +v -0.037457 0.037037 2.228512 +v -0.037457 -0.035548 2.363811 +v -0.037457 -0.114833 2.420382 +v -0.037457 -0.141213 2.430486 +v -0.037457 -0.157813 2.407912 +v -0.037457 -0.182318 2.256881 +v -0.037457 -0.163618 1.540676 +v -0.037457 -0.140853 1.439856 +v -0.037457 -0.118898 1.414651 +v -0.037457 -0.031898 1.387006 +v -0.037457 -0.002833 1.394031 +v -0.037457 0.005912 1.234126 +v -0.037457 -0.120743 1.234126 +v -0.037457 -0.156103 1.249301 +v -0.037457 -0.195388 1.282306 +v -0.037457 -0.228233 1.336521 +v 0.068013 -0.119953 1.234126 +v 0.068013 -0.154528 1.248516 +v 0.068013 -0.228233 1.336521 +v 0.068013 -0.002833 1.394031 +v 0.068013 0.005912 1.234126 +v 0.068013 0.037037 2.228512 +v 0.068013 -0.182418 2.255682 +v 0.068013 -0.163683 1.539216 +v 0.068013 -0.158043 2.408497 +v 0.068013 -0.114508 2.418916 +v 0.068013 -0.141163 2.430047 +v 0.068013 -0.118023 1.413936 +v 0.068013 -0.033723 1.385836 +v 0.068013 -0.142608 1.440866 +v 0.068013 -0.035388 2.363081 +v 0.068013 -0.196963 1.283091 +v -0.005942 -0.042618 2.338112 +v -0.005942 -0.100638 2.320961 +v 0.036498 -0.101533 2.320857 +v 0.036498 -0.042803 2.338292 +v -0.005942 -0.137968 2.278247 +v 0.036498 -0.138033 2.277931 +v -0.005942 -0.147408 2.241127 +v 0.036498 -0.147388 2.241152 +v -0.005942 -0.142673 2.231221 +v 0.036498 -0.143133 2.231192 +v -0.005942 -0.129093 2.239007 +v 0.036498 -0.129233 2.238621 +v 0.036498 -0.123748 2.260201 +v -0.005942 -0.123638 2.260462 +v 0.036498 -0.099003 2.279491 +v -0.005942 -0.098758 2.279876 +v 0.036498 -0.053278 2.297096 +v 0.036498 0.010987 2.287022 +v 0.036498 0.020827 2.323677 +v -0.005942 -0.053098 2.296906 +v -0.005942 0.011037 2.286762 +v -0.005942 0.020817 2.323792 +v 0.199578 0.029307 1.023416 +v -0.169022 0.029307 1.023416 +v -0.150432 -0.016318 1.023416 +v 0.180983 -0.016318 1.023416 +v -0.169022 -0.114193 1.023416 +v -0.145087 0.006777 0.042916 +v -0.145087 -0.145488 0.162656 +v 0.175643 0.006777 0.042916 +v 0.174613 -0.144813 0.163436 +v 0.199578 -0.114193 1.023416 +v -0.150432 -0.068568 1.023416 +v -0.150432 -0.066233 1.289691 +v -0.150432 -0.005218 1.289691 +v 0.180983 -0.068568 1.023416 +v 0.180983 -0.066233 1.289691 +v 0.180983 -0.005218 1.289691 +v -0.155997 -0.038078 1.318871 +v 0.175418 -0.038078 1.318871 +v -0.155997 0.015692 1.348681 +v 0.175418 0.015692 1.348681 +v 0.215908 -0.146428 0.163306 +v 0.215908 -0.056528 0.163306 +v -0.185352 -0.056528 0.163306 +v -0.185352 -0.146428 0.163306 +v -0.185352 -0.056528 -0.146719 +v -0.185352 -0.101478 -0.146719 +v -0.185352 -0.146428 -0.146719 +v 0.015278 -0.101478 -0.209519 +v 0.015278 -0.056528 -0.209519 +v 0.215908 -0.030858 -0.146719 +v 0.215908 -0.101478 -0.146719 +v 0.215908 -0.146428 -0.146719 +v 0.015278 -0.146428 -0.209519 +v 0.175288 -0.143243 0.196526 +v 0.174613 -0.060373 0.196071 +v -0.146542 -0.056528 0.191646 +v -0.144587 -0.143313 0.194191 +v -0.405377 0.476302 0.692766 +v -0.405352 0.476302 0.758991 +v -0.424372 0.386822 0.759151 +v -0.424397 0.386822 0.692766 +v 0.010783 0.341082 0.692766 +v 0.010808 0.341082 0.759231 +v 0.010808 0.432562 0.759066 +v 0.010783 0.432562 0.692766 +v -0.405352 0.297342 0.759311 +v -0.405377 0.297342 0.692766 +v -0.026402 0.516132 0.758921 +v -0.026422 0.516132 0.692766 +v -0.351582 0.223332 0.759446 +v -0.351607 0.223332 0.692766 +v -0.094382 0.577342 0.758811 +v -0.094407 0.577342 0.692766 +v -0.272362 0.177592 0.759526 +v -0.272382 0.177592 0.692766 +v -0.181382 0.605612 0.758756 +v -0.181407 0.605612 0.692766 +v -0.181382 0.168032 0.759546 +v -0.181407 0.168032 0.692766 +v -0.272362 0.596047 0.758776 +v -0.272382 0.596047 0.692766 +v -0.094382 0.196302 0.759491 +v -0.094407 0.196302 0.692766 +v -0.351587 0.550307 0.758856 +v -0.351607 0.550307 0.692766 +v -0.026402 0.257512 0.759381 +v -0.026422 0.257512 0.692766 +v -0.405212 0.476302 1.173446 +v -0.424232 0.386822 1.173446 +v -0.365537 0.386822 1.234656 +v -0.351437 0.453157 1.234626 +v -0.405212 0.297342 1.173446 +v -0.351437 0.320487 1.234626 +v -0.351442 0.223332 1.173446 +v -0.311572 0.265622 1.234546 +v -0.026257 0.516132 1.173446 +v -0.094242 0.577342 1.173446 +v -0.120902 0.528062 1.234116 +v -0.070502 0.482682 1.233996 +v -0.272217 0.177592 1.173446 +v -0.252842 0.231712 1.234421 +v -0.181242 0.605612 1.173446 +v -0.185397 0.549017 1.234271 +v -0.181242 0.168032 1.173446 +v -0.185397 0.224627 1.234271 +v -0.272217 0.596047 1.173446 +v -0.252842 0.541927 1.234421 +v -0.094242 0.196302 1.173446 +v -0.120902 0.245582 1.234116 +v -0.351442 0.550307 1.173446 +v -0.311572 0.508022 1.234546 +v -0.026257 0.257512 1.173446 +v -0.070502 0.290957 1.233996 +v 0.010948 0.341082 1.173446 +v -0.042922 0.352912 1.233926 +v -0.091882 0.363732 1.259541 +v -0.110667 0.321542 1.259606 +v -0.311577 0.386822 1.260296 +v -0.301972 0.431992 1.260261 +v -0.042922 0.420727 1.233926 +v -0.091882 0.409912 1.259541 +v -0.301972 0.341647 1.260261 +v -0.110667 0.452102 1.259606 +v -0.274827 0.304287 1.260171 +v -0.144987 0.483002 1.259726 +v -0.234832 0.281197 1.260031 +v -0.188907 0.497272 1.259876 +v -0.188907 0.276367 1.259876 +v -0.234837 0.492447 1.260031 +v -0.144987 0.290642 1.259726 +v -0.274827 0.469357 1.260171 +v -0.260057 0.413807 1.272991 +v -0.243842 0.436127 1.272976 +v -0.134547 0.373027 1.272886 +v -0.145772 0.347822 1.272896 +v -0.265797 0.386822 1.272996 +v -0.134547 0.400617 1.272886 +v -0.260057 0.359837 1.272991 +v -0.145772 0.425822 1.272896 +v -0.243842 0.337512 1.272976 +v -0.166272 0.444282 1.272911 +v -0.219947 0.323722 1.272956 +v -0.192512 0.452807 1.272936 +v -0.192512 0.320837 1.272936 +v -0.219947 0.449922 1.272956 +v -0.166272 0.329362 1.272911 +v -0.226847 0.399147 1.287626 +v -0.219442 0.409342 1.287626 +v -0.169522 0.380522 1.287626 +v -0.174647 0.369007 1.287626 +v -0.229467 0.386822 1.287626 +v -0.169522 0.393122 1.287626 +v -0.226847 0.374497 1.287626 +v -0.174647 0.404632 1.287626 +v -0.219442 0.364302 1.287626 +v -0.184012 0.413067 1.287626 +v -0.208527 0.358002 1.287626 +v -0.195997 0.416957 1.287626 +v -0.195997 0.356682 1.287626 +v -0.208527 0.415642 1.287626 +v -0.184012 0.360577 1.287626 +v 0.027873 0.338482 0.691421 +v -0.012007 0.248907 0.691421 +v -0.084867 0.591707 0.691421 +v -0.012007 0.526097 0.691421 +v 0.027873 0.436527 0.691421 +v -0.084867 0.183302 0.691421 +v -0.178117 0.153002 0.691421 +v -0.026422 0.516132 0.748081 +v -0.012007 0.526097 0.750706 +v -0.084867 0.591707 0.750706 +v -0.094407 0.577342 0.748081 +v -0.275627 0.163252 0.691421 +v 0.010783 0.432562 0.748081 +v 0.027873 0.436527 0.750706 +v -0.360542 0.212277 0.691421 +v 0.010783 0.341082 0.748081 +v 0.027873 0.338482 0.750706 +v -0.026422 0.257512 0.748081 +v -0.012007 0.248907 0.750706 +v -0.418172 0.291597 0.691421 +v -0.094407 0.196302 0.748081 +v -0.084867 0.183302 0.750706 +v -0.275627 0.611757 0.691421 +v -0.178117 0.622007 0.691421 +v -0.181407 0.168032 0.748081 +v -0.178117 0.153002 0.750706 +v -0.272382 0.177592 0.748081 +v -0.275627 0.163252 0.750706 +v -0.351607 0.223332 0.748081 +v -0.360542 0.212277 0.750706 +v -0.405377 0.297342 0.748081 +v -0.418172 0.291597 0.750706 +v -0.438557 0.387502 0.691421 +v -0.424397 0.386822 0.748081 +v -0.438557 0.387502 0.750706 +v -0.418172 0.483412 0.691421 +v -0.178117 0.622007 0.750706 +v -0.181407 0.605612 0.748081 +v -0.275627 0.611757 0.750706 +v -0.272387 0.596047 0.748081 +v -0.360542 0.562732 0.691421 +v -0.360542 0.562732 0.750706 +v -0.351607 0.550307 0.748081 +v -0.405377 0.476302 0.748081 +v -0.418172 0.483412 0.750706 +v -0.181382 0.605612 0.785201 +v -0.272362 0.596047 0.785216 +v -0.276952 0.610177 0.786086 +v -0.179832 0.620387 0.786066 +v -0.014382 0.248777 0.758506 +v 0.025338 0.337992 0.758346 +v -0.361527 0.212292 0.758571 +v -0.276952 0.163462 0.758661 +v -0.424372 0.386822 0.785596 +v -0.405352 0.297342 0.785756 +v -0.418927 0.291297 0.786656 +v -0.439232 0.386822 0.786486 +v -0.086952 0.590207 0.757891 +v -0.179832 0.620387 0.757836 +v -0.276952 0.610177 0.757856 +v -0.272362 0.177592 0.785971 +v -0.181382 0.168032 0.785986 +v -0.179832 0.153257 0.786906 +v -0.276952 0.163462 0.786886 +v -0.179832 0.153257 0.758676 +v -0.086952 0.183432 0.758621 +v -0.439232 0.386822 0.758256 +v -0.418927 0.291297 0.758431 +v -0.351587 0.550307 0.785301 +v -0.361527 0.561347 0.786171 +v 0.025338 0.435647 0.758171 +v -0.014382 0.524862 0.758011 +v -0.351582 0.223332 0.785886 +v -0.361527 0.212292 0.786801 +v -0.361527 0.561347 0.757946 +v 0.025338 0.337992 0.786576 +v 0.025338 0.435647 0.786401 +v -0.014382 0.524862 0.786241 +v -0.086952 0.590207 0.786121 +v -0.086952 0.183432 0.786851 +v -0.014382 0.248777 0.786736 +v -0.418927 0.482342 0.758086 +v -0.418927 0.482342 0.786316 +v -0.405352 0.476302 0.785431 +v 0.010808 0.341082 0.785676 +v 0.010808 0.432562 0.785511 +v -0.026402 0.516132 0.785361 +v -0.094382 0.577342 0.785251 +v -0.094382 0.196302 0.785936 +v -0.026402 0.257512 0.785826 +v -0.272552 0.177007 0.800751 +v -0.181317 0.167417 0.800766 +v -0.094072 0.195767 0.800716 +v -0.025902 0.257147 0.800606 +v -0.424992 0.386822 0.800371 +v -0.405917 0.297092 0.800536 +v 0.011413 0.432687 0.800291 +v -0.025902 0.516492 0.800141 +v -0.181322 0.606222 0.799976 +v -0.272552 0.596637 0.799996 +v -0.351997 0.222872 0.800666 +v -0.094072 0.577877 0.800031 +v -0.351997 0.550767 0.800076 +v -0.405917 0.476552 0.800211 +v 0.011413 0.340952 0.800456 +v 0.020863 0.468167 0.694041 +v 0.020883 0.468167 0.760271 +v 0.001863 0.378687 0.760431 +v 0.001843 0.378687 0.694046 +v 0.437023 0.332947 0.694041 +v 0.437043 0.332952 0.760511 +v 0.437043 0.424427 0.760346 +v 0.437023 0.424427 0.694046 +v 0.020883 0.289207 0.760591 +v 0.020863 0.289207 0.694046 +v 0.399838 0.507997 0.760196 +v 0.399813 0.507997 0.694046 +v 0.074653 0.215202 0.760721 +v 0.074633 0.215202 0.694046 +v 0.331858 0.569207 0.760086 +v 0.331833 0.569207 0.694046 +v 0.153878 0.169462 0.760806 +v 0.153853 0.169462 0.694046 +v 0.244853 0.597477 0.760036 +v 0.244833 0.597477 0.694046 +v 0.244853 0.159902 0.760821 +v 0.244833 0.159902 0.694046 +v 0.153878 0.587917 0.760051 +v 0.153853 0.587917 0.694046 +v 0.331858 0.188167 0.760771 +v 0.331833 0.188167 0.694046 +v 0.074653 0.542177 0.760136 +v 0.074633 0.542177 0.694046 +v 0.399838 0.249382 0.760661 +v 0.399813 0.249382 0.694046 +v 0.021028 0.468167 1.174726 +v 0.002008 0.378687 1.174726 +v 0.060703 0.378687 1.235931 +v 0.074803 0.445022 1.235906 +v 0.437188 0.332952 1.174726 +v 0.437188 0.424427 1.174726 +v 0.383318 0.412597 1.235201 +v 0.383318 0.344782 1.235201 +v 0.021028 0.289207 1.174726 +v 0.074803 0.312352 1.235906 +v 0.399978 0.507997 1.174726 +v 0.355733 0.474552 1.235271 +v 0.074798 0.215202 1.174726 +v 0.114663 0.257492 1.235821 +v 0.331998 0.569207 1.174726 +v 0.305338 0.519927 1.235396 +v 0.154018 0.169462 1.174726 +v 0.173398 0.223582 1.235701 +v 0.244998 0.597477 1.174726 +v 0.240843 0.540887 1.235546 +v 0.244998 0.159902 1.174726 +v 0.240843 0.216492 1.235546 +v 0.154018 0.587917 1.174726 +v 0.173398 0.533797 1.235701 +v 0.331998 0.188167 1.174726 +v 0.305338 0.237447 1.235396 +v 0.074798 0.542177 1.174726 +v 0.114663 0.499887 1.235821 +v 0.399978 0.249382 1.174726 +v 0.355733 0.282827 1.235271 +v 0.334358 0.355597 1.260821 +v 0.315573 0.313407 1.260886 +v 0.114663 0.378687 1.261571 +v 0.124263 0.423862 1.261541 +v 0.334358 0.401782 1.260821 +v 0.124263 0.333517 1.261541 +v 0.315573 0.443967 1.260886 +v 0.151408 0.296157 1.261446 +v 0.281253 0.474872 1.261001 +v 0.191403 0.273062 1.261311 +v 0.237333 0.489142 1.261156 +v 0.237333 0.268237 1.261156 +v 0.191403 0.484312 1.261311 +v 0.281253 0.282507 1.261001 +v 0.151408 0.461222 1.261446 +v 0.166178 0.405677 1.274271 +v 0.182398 0.427997 1.274256 +v 0.291688 0.364892 1.274161 +v 0.280468 0.339692 1.274171 +v 0.160443 0.378687 1.274276 +v 0.291688 0.392482 1.274166 +v 0.166178 0.351702 1.274271 +v 0.280468 0.417687 1.274171 +v 0.182398 0.329382 1.274256 +v 0.259968 0.436147 1.274191 +v 0.206288 0.315587 1.274236 +v 0.233728 0.444672 1.274216 +v 0.233728 0.312702 1.274216 +v 0.206288 0.441792 1.274236 +v 0.259968 0.321232 1.274191 +v 0.199393 0.391012 1.288906 +v 0.206798 0.401207 1.288906 +v 0.256718 0.372387 1.288906 +v 0.251593 0.360877 1.288906 +v 0.196773 0.378687 1.288906 +v 0.256718 0.384987 1.288906 +v 0.199393 0.366362 1.288906 +v 0.251593 0.396502 1.288906 +v 0.206798 0.356167 1.288906 +v 0.242228 0.404932 1.288906 +v 0.217713 0.349867 1.288906 +v 0.230243 0.408827 1.288906 +v 0.230243 0.348552 1.288906 +v 0.217713 0.407507 1.288906 +v 0.242228 0.352447 1.288906 +v 0.454113 0.330347 0.692696 +v 0.414233 0.240777 0.692696 +v 0.341368 0.583572 0.692696 +v 0.414233 0.517967 0.692696 +v 0.454113 0.428397 0.692696 +v 0.341368 0.175172 0.692696 +v 0.248123 0.144872 0.692696 +v 0.399813 0.507997 0.749356 +v 0.414233 0.517967 0.751986 +v 0.341368 0.583572 0.751986 +v 0.331833 0.569207 0.749356 +v 0.150608 0.155122 0.692696 +v 0.437023 0.424427 0.749356 +v 0.454113 0.428397 0.751986 +v 0.065698 0.204142 0.692696 +v 0.437023 0.332952 0.749356 +v 0.454113 0.330347 0.751986 +v 0.399813 0.249382 0.749356 +v 0.414233 0.240777 0.751986 +v 0.008068 0.283467 0.692696 +v 0.331833 0.188167 0.749356 +v 0.341368 0.175172 0.751986 +v 0.150608 0.603622 0.692696 +v 0.248123 0.613872 0.692696 +v 0.244833 0.159902 0.749356 +v 0.248123 0.144872 0.751986 +v 0.153853 0.169462 0.749356 +v 0.150608 0.155122 0.751986 +v 0.074633 0.215202 0.749356 +v 0.065698 0.204142 0.751986 +v 0.020863 0.289207 0.749356 +v 0.008068 0.283467 0.751986 +v -0.012317 0.379372 0.692696 +v 0.001843 0.378687 0.749356 +v -0.012317 0.379372 0.751986 +v 0.008068 0.475277 0.692696 +v 0.248123 0.613872 0.751986 +v 0.244833 0.597477 0.749361 +v 0.150608 0.603622 0.751986 +v 0.153853 0.587917 0.749361 +v 0.065698 0.554602 0.692696 +v 0.065698 0.554602 0.751986 +v 0.074633 0.542177 0.749356 +v 0.020863 0.468167 0.749356 +v 0.008068 0.475277 0.751986 +v 0.244853 0.597477 0.786481 +v 0.153878 0.587917 0.786496 +v 0.149288 0.602047 0.787366 +v 0.246408 0.612252 0.787346 +v 0.451578 0.329862 0.759626 +v 0.411858 0.240647 0.759786 +v 0.149288 0.155332 0.759936 +v 0.064713 0.204162 0.759851 +v 0.001863 0.378687 0.786871 +v 0.020883 0.289207 0.787031 +v 0.007313 0.283167 0.787936 +v -0.012992 0.378687 0.787766 +v 0.246408 0.612252 0.759116 +v 0.339283 0.582077 0.759171 +v 0.149288 0.602047 0.759136 +v 0.153878 0.169462 0.787251 +v 0.244853 0.159902 0.787266 +v 0.246408 0.145122 0.788186 +v 0.149288 0.155332 0.788166 +v 0.339283 0.175302 0.759901 +v 0.246408 0.145122 0.759956 +v 0.007313 0.283167 0.759706 +v -0.012992 0.378687 0.759536 +v 0.074653 0.542177 0.786576 +v 0.064713 0.553217 0.787451 +v 0.411858 0.516732 0.759291 +v 0.451578 0.427517 0.759451 +v 0.074653 0.215202 0.787166 +v 0.064713 0.204162 0.788081 +v 0.064713 0.553217 0.759221 +v 0.451578 0.427517 0.787676 +v 0.451578 0.329862 0.787856 +v 0.339283 0.582077 0.787401 +v 0.411858 0.516732 0.787516 +v 0.411858 0.240647 0.788016 +v 0.339283 0.175302 0.788131 +v 0.007313 0.474212 0.759366 +v 0.007313 0.474212 0.787596 +v 0.020883 0.468167 0.786711 +v 0.437043 0.332952 0.786956 +v 0.437043 0.424427 0.786791 +v 0.399838 0.507997 0.786641 +v 0.331858 0.569207 0.786531 +v 0.331858 0.188167 0.787216 +v 0.399838 0.249382 0.787106 +v 0.153688 0.168872 0.802026 +v 0.244918 0.159287 0.802046 +v 0.332163 0.187632 0.801996 +v 0.400338 0.249017 0.801886 +v 0.001248 0.378687 0.801651 +v 0.020318 0.288957 0.801811 +v 0.437648 0.424557 0.801571 +v 0.400338 0.508362 0.801421 +v 0.244918 0.598092 0.801256 +v 0.153688 0.588502 0.801276 +v 0.074243 0.214742 0.801946 +v 0.332163 0.569742 0.801306 +v 0.074243 0.542637 0.801356 +v 0.020318 0.468422 0.801491 +v 0.437648 0.332822 0.801736 +v -0.249467 0.123607 0.115621 +v -0.201507 0.144282 0.043111 +v -0.194487 0.098417 0.095811 +v -0.249117 0.069677 0.148706 +v -0.249702 0.006062 0.161116 +v -0.178337 0.006062 0.090431 +v 0.259653 -0.059968 0.155936 +v 0.260403 -0.026528 0.161351 +v 0.261973 0.006062 0.169246 +v 0.270863 0.071562 0.153176 +v 0.237073 0.101157 0.116411 +v 0.270838 0.127097 0.119111 +v 0.242483 0.006062 0.156216 +v 0.233628 -0.059968 0.129331 +v 0.254098 0.148382 0.085936 +v 0.231408 0.039452 0.137666 +v 0.224008 0.071562 0.109896 +v 0.220333 0.006062 0.119111 +v 0.212933 0.039452 0.091346 +v 0.216253 -0.059968 0.085781 +v 0.235408 0.148382 0.043106 +v 0.216163 0.101157 0.052541 +v 0.205533 0.006062 0.063581 +v 0.204418 -0.027333 0.043111 +v 0.280013 0.167402 1.076756 +v -0.249462 0.167402 1.076756 +v -0.195562 0.171577 1.154261 +v 0.226118 0.171577 1.154261 +v -0.249462 -0.024483 1.076756 +v -0.249462 0.167402 0.043106 +v -0.249462 0.157162 0.043106 +v -0.247902 -0.056813 0.151881 +v -0.249462 -0.056978 0.143861 +v 0.270688 0.167402 0.043106 +v -0.195562 -0.008773 1.154261 +v -0.195562 0.171577 1.252271 +v 0.280013 -0.024483 1.076756 +v 0.226118 -0.008773 1.154261 +v 0.226118 0.171577 1.252271 +v 0.264308 0.038652 0.161351 +v 0.265473 0.170412 0.043106 +v -0.182537 -0.057553 0.083401 +vn -0.9964 0.0014 0.0850 +vn -0.9897 -0.0004 0.1434 +vn -0.9936 -0.0711 0.0880 +vn -0.9870 -0.0115 0.1601 +vn -0.9835 -0.1488 0.1027 +vn -0.9817 -0.0152 0.1896 +vn -0.9623 -0.2399 0.1280 +vn -0.9728 -0.0112 0.2315 +vn -0.9164 -0.3578 0.1795 +vn -0.9588 -0.0110 0.2839 +vn -0.7942 -0.5529 0.2522 +vn -0.9477 -0.0516 0.3149 +vn -0.4925 -0.8183 0.2965 +vn 0.9678 -0.2191 0.1239 +vn 0.9880 -0.0171 0.1533 +vn 0.9863 -0.1422 0.0839 +vn 0.9950 -0.0648 0.0764 +vn 0.9924 -0.0017 0.1233 +vn 0.9973 0.0014 0.0733 +vn 0.9924 0.0052 0.1227 +vn 0.9944 0.0664 0.0824 +vn 0.9882 0.0169 0.1523 +vn 0.9852 0.1432 0.0946 +vn 0.9676 0.2183 0.1267 +vn 0.9788 0.0157 0.2042 +vn 0.9248 0.3436 0.1632 +vn 0.0803 0.9662 0.2449 +vn 0.6616 0.7101 0.2410 +vn 0.7916 0.4929 0.3612 +vn 0.0306 0.9838 0.1768 +vn 0.3901 0.9039 0.1756 +vn 0.0312 0.9952 0.0923 +vn 0.1843 0.9724 0.1433 +vn 0.0041 0.9987 0.0503 +vn -0.0017 0.9911 0.1334 +vn -0.0011 0.9988 0.0489 +vn -0.2072 0.9681 0.1411 +vn -0.0152 0.9957 0.0912 +vn -0.4980 0.8480 0.1816 +vn -0.0325 0.9827 0.1826 +vn -0.7764 0.5855 0.2334 +vn -0.0961 0.9635 0.2499 +vn -0.8489 0.3869 0.3603 +vn -0.9336 0.3215 0.1579 +vn -0.9725 0.0210 0.2319 +vn -0.9626 0.2325 0.1391 +vn -0.9842 0.0234 0.1755 +vn -0.9819 0.1561 0.1077 +vn -0.9928 0.0727 0.0953 +vn -0.9897 0.0025 0.1433 +vn 0.1654 -0.9574 0.2369 +vn 0.0005 -0.9805 0.1968 +vn 0.0002 -0.9778 0.2095 +vn 0.3925 -0.9050 0.1639 +vn 0.1840 -0.9829 0.0040 +vn 0.1816 -0.9655 0.1867 +vn 0.9884 0.1439 0.0488 +vn 0.9973 0.0665 0.0302 +vn -0.4964 0.8318 0.2484 +vn -0.7700 -0.6291 0.1064 +vn -0.9106 -0.4130 0.0132 +vn 0.9621 -0.2726 -0.0004 +vn 0.1933 0.9432 0.2701 +vn 0.4156 0.8723 0.2578 +vn -0.9998 -0.0020 0.0175 +vn -0.9968 0.0730 0.0330 +vn 0.9626 0.2585 0.0808 +vn -0.7673 0.6137 0.1860 +vn 0.9885 -0.1513 -0.0040 +vn -0.0018 0.9619 0.2735 +vn -0.9872 -0.1594 -0.0050 +vn -0.9969 -0.0784 0.0042 +vn 0.3496 -0.8972 0.2700 +vn 0.6698 -0.7316 0.1270 +vn 0.8785 0.4558 0.1432 +vn -0.9130 0.3909 0.1165 +vn -0.1895 -0.9498 0.2488 +vn -0.4589 -0.8650 0.2029 +vn 0.9999 -0.0018 0.0160 +vn 0.9974 -0.0717 0.0040 +vn -0.2162 0.9382 0.2704 +vn -0.9655 -0.2604 -0.0061 +vn 0.8895 -0.4100 0.2015 +vn 0.6962 -0.6555 0.2926 +vn 0.6776 0.7026 0.2173 +vn -0.9659 0.2476 0.0761 +vn -0.1987 -0.9575 0.2089 +vn 0.8771 -0.4783 0.0438 +vn -0.9870 0.1522 0.0517 +vn 0.9559 -0.2874 -0.0597 +vn 0.8433 -0.5093 -0.1714 +vn 0.8601 -0.5047 -0.0744 +vn -0.0019 0.9084 0.4181 +vn 0.1920 0.8915 0.4103 +vn 0.3960 -0.9175 -0.0373 +vn -0.2142 0.8867 0.4097 +vn 0.6534 -0.7540 -0.0666 +vn -0.4838 0.7939 0.3684 +vn -0.9969 -0.0761 -0.0174 +vn -1.0000 -0.0026 0.0094 +vn -0.9060 0.3828 0.1808 +vn -0.7500 0.5992 0.2800 +vn 0.9872 -0.1549 -0.0379 +vn -0.9865 -0.1586 -0.0411 +vn -0.9647 0.2377 0.1132 +vn 0.9974 -0.0708 -0.0157 +vn -0.9622 -0.2658 -0.0601 +vn -0.9870 0.1439 0.0709 +vn 1.0000 -0.0025 0.0087 +vn -0.8984 -0.4334 -0.0713 +vn -0.9969 0.0687 0.0386 +vn 0.9974 0.0631 0.0357 +vn -0.7366 -0.6737 -0.0599 +vn 0.9878 0.1391 0.0699 +vn -0.4657 -0.8846 -0.0236 +vn 0.9588 0.2555 0.1245 +vn -0.2038 -0.9789 0.0114 +vn 0.8681 0.4480 0.2137 +vn 0.6679 0.6742 0.3154 +vn -0.0024 -0.9996 0.0270 +vn 0.4133 0.8267 0.3818 +vn 1.0000 -0.0044 0.0068 +vn 0.9969 -0.0623 -0.0471 +vn 0.9971 -0.0696 -0.0316 +vn -0.7388 0.5516 0.3872 +vn -0.4681 0.7254 0.5047 +vn 0.9491 -0.2918 -0.1187 +vn -0.9968 -0.0732 -0.0333 +vn -1.0000 -0.0047 0.0075 +vn -0.9023 0.3519 0.2488 +vn 0.9853 -0.1549 -0.0716 +vn -0.9853 -0.1540 -0.0735 +vn -0.9650 0.2132 0.1526 +vn -0.9577 -0.2648 -0.1130 +vn -0.9875 0.1266 0.0936 +vn -0.8850 -0.4400 -0.1524 +vn -0.9970 0.0594 0.0489 +vn 0.9974 0.0560 0.0464 +vn -0.7102 -0.6814 -0.1771 +vn 0.9877 0.1254 0.0938 +vn -0.4417 -0.8833 -0.1571 +vn 0.9577 0.2332 0.1684 +vn -0.1909 -0.9743 -0.1197 +vn 0.8637 0.4115 0.2912 +vn -0.0017 -0.9951 -0.0985 +vn 0.6616 0.6152 0.4287 +vn 0.1833 0.8081 0.5598 +vn 0.4041 0.7522 0.5205 +vn 0.1717 -0.9772 -0.1250 +vn -0.0022 0.8215 0.5702 +vn 0.3804 -0.9092 -0.1693 +vn 0.6308 -0.7507 -0.1963 +vn -0.2046 0.8043 0.5579 +vn 0.9586 0.2027 0.1999 +vn 0.9887 0.0921 0.1183 +vn 0.9880 0.1088 0.1095 +vn -0.9545 -0.2459 -0.1690 +vn -0.9847 -0.1396 -0.1045 +vn -0.9884 0.1070 0.1075 +vn -0.9666 0.1821 0.1801 +vn 1.0000 -0.0034 0.0033 +vn -0.8761 -0.4147 -0.2458 +vn -0.9972 0.0508 0.0540 +vn 0.9975 0.0488 0.0518 +vn -0.6968 -0.6440 -0.3159 +vn -1.0000 -0.0038 0.0036 +vn -0.4294 -0.8383 -0.3360 +vn -0.1878 -0.9328 -0.3077 +vn 0.8664 0.3581 0.3480 +vn -0.0014 -0.9553 -0.2955 +vn 0.6599 0.5402 0.5222 +vn 0.1723 0.7090 0.6838 +vn 0.3928 0.6624 0.6379 +vn 0.1695 -0.9351 -0.3112 +vn -0.0029 0.7185 0.6955 +vn 0.3712 -0.8606 -0.3487 +vn 0.6201 -0.7042 -0.3457 +vn -0.4569 0.6375 0.6204 +vn -0.1947 0.7043 0.6826 +vn 0.8334 -0.4779 -0.2776 +vn -0.7345 0.4853 0.4742 +vn 0.9440 -0.2738 -0.1841 +vn -0.9967 -0.0647 -0.0487 +vn -0.9034 0.3061 0.3001 +vn 0.9840 -0.1429 -0.1067 +vn 0.3909 0.5560 0.7335 +vn 0.6698 0.3706 0.6435 +vn 0.6651 0.4523 0.5942 +vn -0.4307 -0.7458 -0.5082 +vn -0.6923 -0.5732 -0.4384 +vn 0.9611 0.1690 0.2186 +vn -0.1894 -0.8328 -0.5201 +vn 0.8719 0.2980 0.3886 +vn -0.0017 -0.8566 -0.5159 +vn 0.1710 -0.8351 -0.5228 +vn -0.0047 0.6020 0.7985 +vn 0.1645 0.5949 0.7868 +vn 0.3738 -0.7659 -0.5231 +vn -0.1921 0.5900 0.7842 +vn 0.6176 -0.6256 -0.4766 +vn -0.4590 0.5338 0.7102 +vn 0.8279 -0.4265 -0.3642 +vn -0.7405 0.4039 0.5371 +vn 0.9410 -0.2454 -0.2328 +vn -0.9967 -0.0554 -0.0599 +vn -1.0000 -0.0016 0.0006 +vn -0.9078 0.2529 0.3345 +vn 0.9833 -0.1268 -0.1306 +vn -0.9843 -0.1231 -0.1268 +vn -0.9691 0.1497 0.1961 +vn 0.9969 -0.0535 -0.0579 +vn -0.9528 -0.2199 -0.2094 +vn -0.9892 0.0894 0.1161 +vn 1.0000 -0.0014 0.0006 +vn -0.8716 -0.3715 -0.3198 +vn -0.9974 0.0443 0.0573 +vn 0.9976 0.0428 0.0548 +vn -0.0072 0.4866 0.8736 +vn -0.1908 0.3837 0.9035 +vn -0.0082 0.3888 0.9213 +vn -0.0019 -0.7453 -0.6668 +vn 0.3903 0.4528 0.8016 +vn 0.1725 -0.7288 -0.6626 +vn 0.1620 0.4816 0.8613 +vn 0.3745 -0.6726 -0.6382 +vn -0.1945 0.4776 0.8568 +vn 0.6135 -0.5557 -0.5610 +vn -0.4634 0.4334 0.7730 +vn 0.8226 -0.3854 -0.4180 +vn -0.7470 0.3294 0.5775 +vn 0.9386 -0.2247 -0.2619 +vn -0.9965 -0.0502 -0.0662 +vn -1.0000 -0.0008 -0.0005 +vn -0.9115 0.2079 0.3549 +vn 0.9826 -0.1163 -0.1449 +vn -0.9837 -0.1126 -0.1404 +vn -0.9699 0.1263 0.2084 +vn 0.9968 -0.0486 -0.0640 +vn -0.9510 -0.2011 -0.2348 +vn -0.9893 0.0780 0.1229 +vn 1.0000 -0.0008 -0.0005 +vn -0.8675 -0.3368 -0.3662 +vn -0.9974 0.0401 0.0603 +vn 0.9976 0.0385 0.0576 +vn -0.6874 -0.5106 -0.5164 +vn 0.9890 0.0799 0.1248 +vn -0.4303 -0.6548 -0.6213 +vn 0.9622 0.1424 0.2320 +vn -0.1911 -0.7265 -0.6601 +vn 0.8757 0.2461 0.4153 +vn -0.1926 -0.6320 -0.7506 +vn -0.0019 -0.5396 -0.8419 +vn -0.1981 -0.5275 -0.8261 +vn 0.6113 -0.4919 -0.6199 +vn -0.4576 0.3540 0.8156 +vn 0.8200 -0.3458 -0.4561 +vn -0.7404 0.2767 0.6126 +vn 0.9372 -0.2044 -0.2827 +vn -0.9965 -0.0463 -0.0702 +vn -1.0000 -0.0004 -0.0005 +vn -0.9074 0.1816 0.3790 +vn 0.9822 -0.1067 -0.1547 +vn -0.9833 -0.1032 -0.1498 +vn -0.9682 0.1147 0.2224 +vn 0.9967 -0.0448 -0.0678 +vn -0.9500 -0.1828 -0.2532 +vn -0.9887 0.0727 0.1311 +vn 1.0000 -0.0005 -0.0005 +vn -0.8654 -0.3023 -0.3995 +vn -0.9972 0.0380 0.0642 +vn 0.9975 0.0361 0.0610 +vn -0.6852 -0.4523 -0.5709 +vn 0.9884 0.0738 0.1328 +vn -0.4308 -0.5735 -0.6968 +vn 0.9605 0.1277 0.2472 +vn 0.8711 0.2131 0.4425 +vn -0.0018 -0.6467 -0.7627 +vn 0.6602 0.3102 0.6840 +vn 0.3804 0.3692 0.8479 +vn 0.1741 -0.6340 -0.7535 +vn 0.1557 0.3868 0.9089 +vn 0.3755 -0.5889 -0.7157 +vn 0.6184 -0.4133 -0.6684 +vn 0.3981 -0.3819 -0.8341 +vn 0.3829 -0.4927 -0.7814 +vn 0.6355 0.2623 0.7262 +vn 0.3577 0.3001 0.8843 +vn 0.1794 -0.5292 -0.8293 +vn 0.1443 0.3087 0.9401 +vn -0.1801 0.3069 0.9345 +vn -0.0089 0.3094 0.9509 +vn -0.4340 0.2899 0.8530 +vn 0.8240 -0.2921 -0.4855 +vn -0.7176 0.2374 0.6548 +vn 0.9387 -0.1739 -0.2977 +vn -0.9966 -0.0401 -0.0726 +vn -1.0000 0.0002 0.0001 +vn -0.8959 0.1638 0.4130 +vn 0.9826 -0.0918 -0.1613 +vn -0.9837 -0.0888 -0.1561 +vn -0.9642 0.1064 0.2429 +vn 0.9968 -0.0388 -0.0702 +vn -0.9513 -0.1555 -0.2663 +vn -0.9876 0.0680 0.1417 +vn 1.0000 0.0002 -0.0000 +vn -0.8688 -0.2549 -0.4245 +vn -0.9970 0.0353 0.0685 +vn 0.9973 0.0335 0.0652 +vn -0.6918 -0.3793 -0.6145 +vn 0.9873 0.0684 0.1434 +vn -0.4384 -0.4794 -0.7602 +vn 0.9560 0.1171 0.2692 +vn 0.8567 0.1889 0.4800 +vn 0.9837 -0.0719 -0.1645 +vn 0.9466 -0.0962 -0.3079 +vn 0.9427 -0.1352 -0.3051 +vn -0.1670 0.2361 0.9573 +vn -0.0089 0.2368 0.9715 +vn 0.6332 -0.3199 -0.7047 +vn -0.4030 0.2277 0.8864 +vn 0.8332 -0.2262 -0.5046 +vn -0.6836 0.1950 0.7033 +vn -0.9968 -0.0317 -0.0738 +vn -1.0000 0.0006 0.0007 +vn -0.8782 0.1410 0.4570 +vn -0.9848 -0.0697 -0.1591 +vn -0.9589 0.0931 0.2679 +vn 0.9970 -0.0307 -0.0715 +vn -0.9545 -0.1208 -0.2726 +vn -0.9864 0.0588 0.1532 +vn 1.0000 0.0005 0.0005 +vn -0.8763 -0.1968 -0.4398 +vn -0.9969 0.0300 0.0727 +vn 0.9972 0.0285 0.0694 +vn -0.7056 -0.2925 -0.6454 +vn 0.9861 0.0590 0.1554 +vn -0.4544 -0.3710 -0.8099 +vn 0.9496 0.1013 0.2965 +vn -0.2068 -0.4085 -0.8890 +vn 0.8358 0.1593 0.5255 +vn -0.0019 -0.4177 -0.9086 +vn 0.6001 0.2107 0.7716 +vn 0.3307 0.2329 0.9145 +vn 0.1874 -0.4099 -0.8927 +vn 0.1339 0.2368 0.9623 +vn 0.9971 0.0213 0.0728 +vn 1.0000 -0.0010 0.0009 +vn 1.0000 0.0003 0.0009 +vn -0.9970 -0.0231 -0.0743 +vn -1.0000 0.0003 0.0011 +vn -0.8583 0.1077 0.5017 +vn -0.6471 0.1423 0.7490 +vn 0.9849 -0.0517 -0.1653 +vn -0.9859 -0.0499 -0.1598 +vn -0.9528 0.0720 0.2950 +vn 0.9972 -0.0223 -0.0719 +vn -0.9578 -0.0857 -0.2744 +vn -0.9854 0.0449 0.1641 +vn -0.8851 -0.1386 -0.4443 +vn -0.9969 0.0223 0.0761 +vn -0.7214 -0.2059 -0.6612 +vn 0.9849 0.0451 0.1674 +vn -0.4712 -0.2616 -0.8423 +vn 0.9419 0.0777 0.3267 +vn -0.2173 -0.2888 -0.9324 +vn 0.8122 0.1190 0.5710 +vn -0.0021 -0.2954 -0.9554 +vn 0.5661 0.1508 0.8104 +vn 0.3081 0.1623 0.9374 +vn 0.1971 -0.2898 -0.9366 +vn 0.1269 0.1648 0.9781 +vn 0.4142 -0.2698 -0.8693 +vn -0.1571 0.1643 0.9738 +vn -0.0081 0.1653 0.9862 +vn 0.6507 -0.2261 -0.7249 +vn -0.3730 0.1598 0.9140 +vn 0.8441 -0.1599 -0.5117 +vn 0.7891 0.0731 0.6099 +vn 0.9270 0.0158 0.3748 +vn 0.9345 0.0496 0.3525 +vn -0.8904 -0.0928 -0.4455 +vn -0.9599 -0.0581 -0.2744 +vn -0.9968 0.0136 0.0785 +vn -0.9843 0.0286 0.1739 +vn 0.9970 0.0130 0.0757 +vn -0.7327 -0.1367 -0.6667 +vn -1.0000 -0.0011 0.0011 +vn 0.9835 0.0288 0.1786 +vn -0.4851 -0.1729 -0.8572 +vn -0.2252 -0.1899 -0.9556 +vn -0.0021 -0.1937 -0.9811 +vn 0.5384 0.0894 0.8379 +vn 0.2962 0.0956 0.9503 +vn 0.2045 -0.1904 -0.9602 +vn 0.1240 0.0975 0.9875 +vn 0.4280 -0.1782 -0.8861 +vn -0.1523 0.0956 0.9837 +vn -0.0092 0.0974 0.9952 +vn 0.6638 -0.1502 -0.7327 +vn -0.3546 0.0928 0.9304 +vn 0.8510 -0.1075 -0.5141 +vn -0.6158 0.0844 0.7834 +vn 0.9490 -0.0657 -0.3085 +vn -0.9971 -0.0166 -0.0746 +vn -0.8376 0.0669 0.5422 +vn 0.9854 -0.0360 -0.1662 +vn -0.9865 -0.0343 -0.1601 +vn -0.9469 0.0463 0.3182 +vn 0.9972 -0.0162 -0.0725 +vn 0.1245 0.0406 0.9914 +vn 0.2909 0.0104 0.9567 +vn 0.2912 0.0362 0.9560 +vn -0.2301 -0.1366 -0.9635 +vn -0.4912 -0.1280 -0.8616 +vn 0.7736 0.0236 0.6333 +vn -0.0023 -0.1376 -0.9905 +vn 0.5241 0.0302 0.8511 +vn 0.2093 -0.1359 -0.9684 +vn 0.4355 -0.1303 -0.8907 +vn -0.1550 0.0373 0.9872 +vn -0.0117 0.0408 0.9991 +vn 0.6692 -0.1144 -0.7343 +vn -0.3454 0.0314 0.9379 +vn 0.8520 -0.0865 -0.5163 +vn -0.5971 0.0270 0.8017 +vn 0.9483 -0.0560 -0.3125 +vn -0.9970 -0.0170 -0.0755 +vn -1.0000 -0.0068 0.0008 +vn -0.8222 0.0218 0.5687 +vn 0.9850 -0.0326 -0.1695 +vn -0.9864 -0.0297 -0.1617 +vn -0.9411 0.0160 0.3378 +vn 0.9971 -0.0172 -0.0743 +vn -0.9596 -0.0479 -0.2772 +vn -0.9833 0.0096 0.1818 +vn 1.0000 -0.0065 0.0005 +vn -0.8907 -0.0744 -0.4484 +vn -0.9968 0.0021 0.0803 +vn 0.9969 0.0019 0.0782 +vn -0.7358 -0.1053 -0.6690 +vn 0.9820 0.0090 0.1886 +vn 0.2124 -0.1237 -0.9693 +vn 0.1241 0.0148 0.9922 +vn 0.4402 -0.1215 -0.8896 +vn -0.1564 0.0119 0.9876 +vn -0.0121 0.0139 0.9998 +vn 0.6732 -0.1090 -0.7314 +vn -0.3421 0.0033 0.9396 +vn 0.8538 -0.0836 -0.5138 +vn -0.5864 -0.0038 0.8100 +vn 0.9484 -0.0545 -0.3123 +vn -0.9971 -0.0191 -0.0739 +vn -0.9999 -0.0112 0.0028 +vn -0.8127 -0.0057 0.5826 +vn 0.9850 -0.0327 -0.1695 +vn -0.9866 -0.0299 -0.1603 +vn -0.9369 -0.0038 0.3496 +vn 0.9971 -0.0190 -0.0736 +vn -0.9599 -0.0459 -0.2765 +vn -0.9821 -0.0030 0.1882 +vn 0.9999 -0.0107 0.0024 +vn -0.8917 -0.0707 -0.4470 +vn -0.9965 -0.0055 0.0836 +vn 0.9966 -0.0062 0.0826 +vn -0.7384 -0.0996 -0.6670 +vn 0.9803 -0.0055 0.1977 +vn -0.4946 -0.1198 -0.8608 +vn 0.9212 -0.0069 0.3889 +vn -0.2320 -0.1251 -0.9646 +vn 0.7628 -0.0061 0.6466 +vn -0.0017 -0.1241 -0.9923 +vn 0.5164 0.0001 0.8564 +vn -0.0000 -0.9999 -0.0154 +vn -0.9902 -0.0000 0.1395 +vn -0.9902 -0.0000 0.1396 +vn -0.0000 1.0000 -0.0000 +vn 0.9902 -0.0000 0.1395 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.9636 0.2200 -0.1516 +vn -0.9558 0.2356 -0.1758 +vn -0.9892 0.0463 -0.1392 +vn 0.9902 0.1179 -0.0748 +vn 0.9637 0.2198 -0.1515 +vn -0.0000 -1.0000 0.0034 +vn -0.0002 -1.0000 0.0069 +vn -0.0004 -1.0000 0.0046 +vn 0.0674 0.9905 0.1201 +vn -0.0243 0.9853 0.1692 +vn 0.0239 0.9854 0.1685 +vn 0.7410 -0.0000 -0.6715 +vn -0.6585 -0.0000 -0.7526 +vn -0.0000 0.7658 0.6431 +vn -0.0000 0.6243 0.7812 +vn -0.0000 0.6229 0.7823 +vn -0.0000 0.4206 0.9072 +vn -0.9925 -0.0895 0.0830 +vn -0.9920 -0.0928 0.0860 +vn -0.9658 -0.1900 0.1761 +vn 0.9904 -0.1009 0.0943 +vn 0.9912 -0.0966 0.0904 +vn 0.9597 -0.2053 0.1920 +vn -0.0054 -0.0042 1.0000 +vn -0.0146 -0.0000 0.9999 +vn -0.0039 -0.0047 1.0000 +vn -0.9940 0.0027 0.1097 +vn -0.9941 0.0052 0.1083 +vn -0.9938 -0.0000 0.1113 +vn 0.9941 0.0052 0.1083 +vn 0.9940 0.0027 0.1097 +vn 0.9938 -0.0000 0.1113 +vn 0.0071 0.9998 0.0161 +vn 0.0196 0.9996 0.0209 +vn 0.0033 0.9999 0.0148 +vn 0.9824 -0.0000 0.1869 +vn 0.9972 -0.0000 0.0747 +vn -0.9824 -0.0000 0.1869 +vn -0.9972 -0.0000 0.0747 +vn -0.9960 -0.0000 0.0891 +vn -0.1177 0.9172 0.3806 +vn 0.0714 0.9533 0.2935 +vn -0.0706 0.9492 0.3067 +vn 0.9702 -0.0000 0.2421 +vn 0.8466 -0.0000 0.5322 +vn 0.8463 -0.0000 0.5326 +vn 0.1179 0.9219 0.3690 +vn 0.2118 0.6804 0.7016 +vn 0.1426 0.8144 0.5626 +vn 0.0246 0.8205 0.5711 +vn -0.2028 0.6830 0.7017 +vn -0.1359 0.8125 0.5670 +vn -0.0233 0.8197 0.5723 +vn -0.1540 0.7061 0.6911 +vn 0.1536 0.7069 0.6904 +vn -0.3963 -0.0000 0.9181 +vn -0.5691 -0.0000 0.8223 +vn -0.3961 -0.0000 0.9182 +vn -0.5693 -0.0000 0.8221 +vn -0.7193 -0.0000 0.6947 +vn -0.7196 -0.0000 0.6944 +vn -0.8463 -0.0000 0.5326 +vn 0.0783 0.5339 0.8419 +vn -0.0780 0.5403 0.8379 +vn -0.9981 0.0017 -0.0621 +vn -0.9804 0.0131 -0.1966 +vn -0.9956 -0.0882 0.0307 +vn -0.8466 -0.0000 0.5322 +vn -0.9674 -0.0096 0.2529 +vn 0.7196 -0.0000 0.6944 +vn 0.7193 -0.0000 0.6947 +vn 0.9994 0.0009 0.0332 +vn 0.9707 0.0005 0.2403 +vn 0.5693 -0.0000 0.8221 +vn 0.5691 -0.0000 0.8223 +vn 0.3963 -0.0000 0.9181 +vn 0.3961 -0.0000 0.9182 +vn 0.2026 -0.0000 0.9793 +vn 0.2025 -0.0000 0.9793 +vn -0.2025 -0.0000 0.9793 +vn -0.2026 -0.0000 0.9793 +vn 0.3935 -0.9193 0.0009 +vn 0.2683 -0.9598 -0.0820 +vn 0.4204 -0.8890 -0.1816 +vn -0.3811 -0.9245 0.0073 +vn -0.2703 -0.9592 -0.0831 +vn -0.2591 -0.9659 -0.0009 +vn 0.5304 -0.8409 -0.1076 +vn 0.5208 -0.8519 0.0560 +vn -0.1652 -0.9830 -0.0797 +vn -0.1643 -0.9864 -0.0000 +vn 0.7469 -0.6647 -0.0138 +vn -0.0796 -0.9968 -0.0000 +vn -0.0810 -0.9934 -0.0807 +vn -0.0000 -0.9967 -0.0808 +vn 0.0810 -0.9934 -0.0807 +vn 0.0796 -0.9968 -0.0000 +vn -0.7549 -0.6526 0.0653 +vn -0.8716 -0.4893 0.0307 +vn -0.7317 -0.6705 -0.1225 +vn 0.1652 -0.9830 -0.0797 +vn 0.1643 -0.9864 -0.0000 +vn -0.5263 -0.8460 -0.0850 +vn -0.5357 -0.8380 0.1037 +vn 0.2591 -0.9659 -0.0009 +vn -0.4110 -0.8966 -0.1647 +vn 0.2696 -0.9485 -0.1663 +vn -0.2779 -0.9442 -0.1768 +vn -0.1786 -0.9697 -0.1667 +vn 0.7697 -0.6083 -0.1937 +vn -0.0852 -0.9824 -0.1663 +vn 0.8914 -0.4470 -0.0751 +vn 0.8911 -0.4537 0.0069 +vn -0.0000 -0.9860 -0.1670 +vn 0.0852 -0.9824 -0.1663 +vn -0.6505 -0.6963 0.3032 +vn 0.1758 -0.9705 -0.1647 +vn -0.0898 -0.9613 -0.2605 +vn -0.0000 -0.9645 -0.2639 +vn 0.0865 -0.9623 -0.2578 +vn 0.2083 -0.9446 -0.2537 +vn -0.5868 -0.7751 -0.2344 +vn 0.3339 -0.8983 -0.2856 +vn -0.3046 -0.9228 -0.2361 +vn -0.1944 -0.9496 -0.2460 +vn -0.5014 -0.7893 -0.3545 +vn 0.5371 -0.7116 -0.4529 +vn -0.3626 -0.8430 -0.3974 +vn 0.6093 -0.7183 -0.3359 +vn -0.2358 -0.8797 -0.4129 +vn -0.0930 -0.9274 -0.3623 +vn -0.0000 -0.9274 -0.3740 +vn 0.0806 -0.9288 -0.3617 +vn 0.2577 -0.8787 -0.4019 +vn -0.7253 -0.5603 -0.4001 +vn 0.4464 -0.7335 -0.5125 +vn -0.1353 -0.8313 -0.5391 +vn -0.0000 -0.8500 -0.5268 +vn 0.1351 -0.8276 -0.5449 +vn -0.8512 -0.4616 -0.2497 +vn -0.8333 -0.4528 -0.3171 +vn 0.3359 -0.5835 -0.7394 +vn -0.6317 -0.5101 -0.5838 +vn -0.4712 -0.5563 -0.6845 +vn 0.7323 -0.4413 -0.5186 +vn -0.3515 -0.5795 -0.7353 +vn 0.6218 -0.5199 -0.5858 +vn 0.7870 -0.4979 -0.3643 +vn -0.1791 -0.5577 -0.8105 +vn -0.0000 -0.8059 -0.5920 +vn 0.1875 -0.5579 -0.8084 +vn -0.8523 -0.3229 -0.4116 +vn 0.4616 -0.5393 -0.7043 +vn -0.0000 -0.3169 -0.9485 +vn 0.1931 -0.3110 -0.9306 +vn 0.3348 -0.3497 -0.8750 +vn -0.7820 -0.3509 -0.5151 +vn -0.6624 -0.3016 -0.6857 +vn -0.5038 -0.3170 -0.8035 +vn -0.3678 -0.3295 -0.8696 +vn -0.1890 -0.3112 -0.9314 +vn 0.7791 -0.2331 -0.5819 +vn -0.9121 0.3525 -0.2095 +vn -0.8757 0.4150 -0.2467 +vn -0.8924 0.3555 -0.2780 +vn 0.4243 0.3083 -0.8514 +vn 0.2012 0.4873 -0.8497 +vn 0.3260 0.6276 -0.7070 +vn -0.7499 0.4578 -0.4776 +vn -0.7737 0.3549 -0.5249 +vn 0.5496 0.2963 -0.7811 +vn 0.5961 0.2737 -0.7548 +vn -0.6546 0.3575 -0.6661 +vn -0.5891 0.5505 -0.5915 +vn 0.6146 0.4756 -0.6294 +vn 0.6391 0.2655 -0.7219 +vn -0.5053 0.3573 -0.7854 +vn -0.5323 0.3431 -0.7739 +vn 0.7784 0.3215 -0.5392 +vn 0.7437 0.5381 -0.3968 +vn -0.3704 0.3390 -0.8648 +vn -0.3333 0.5839 -0.7403 +vn 0.8836 0.3589 -0.3007 +vn 0.8857 0.3306 -0.3261 +vn -0.2000 0.4881 -0.8495 +vn -0.2054 0.3118 -0.9277 +vn 0.9051 0.3598 -0.2268 +vn 0.8825 0.4703 -0.0008 +vn -0.0000 0.4972 -0.8676 +vn -0.0000 0.2838 -0.9589 +vn -0.8580 0.3751 -0.3508 +vn -0.9181 0.3962 -0.0069 +vn 0.9162 0.4004 0.0168 +vn 0.2097 0.3118 -0.9267 +vn -0.1137 0.8651 -0.4885 +vn -0.0000 0.7838 -0.6210 +vn 0.1420 0.8644 -0.4823 +vn 0.2017 0.9383 -0.2810 +vn 0.3202 0.8418 -0.4345 +vn 0.2041 0.9209 -0.3320 +vn -0.5150 0.6767 -0.5262 +vn 0.5760 0.6287 -0.5224 +vn -0.2531 0.9257 -0.2810 +vn -0.3969 0.7926 -0.4629 +vn -0.2460 0.8863 -0.3924 +vn 0.8656 0.4730 -0.1645 +vn -0.0047 0.9646 -0.2635 +vn -0.0598 0.9896 -0.1306 +vn 0.0835 0.9857 -0.1465 +vn -0.8315 0.5408 -0.1269 +vn -0.6166 0.7381 -0.2738 +vn -0.0135 0.9999 0.0083 +vn 0.2370 0.9520 -0.1938 +vn 0.1550 0.9685 -0.1949 +vn -0.1704 0.9830 -0.0678 +vn -0.4828 0.8716 -0.0848 +vn 0.2326 -0.9309 0.2816 +vn -0.1860 0.9797 -0.0753 +vn -0.2151 0.9692 -0.1198 +vn 0.3106 0.9107 -0.2722 +vn 0.7665 0.6016 -0.2251 +vn -0.0037 0.9964 -0.0848 +vn 0.1197 0.9812 -0.1515 +vn 0.1628 0.9852 -0.0537 +vn 0.2667 0.9626 -0.0472 +vn 0.7608 0.6488 -0.0143 +vn -0.7511 0.6579 0.0547 +vn 0.5137 0.8569 0.0430 +vn -0.3969 0.9172 0.0343 +vn -0.1695 0.9847 0.0399 +vn 0.1591 0.9856 0.0581 +vn -0.5379 0.8061 0.2468 +vn -0.2214 0.9581 0.1819 +vn 0.1669 0.9759 0.1402 +vn 0.8499 0.5155 0.1091 +vn 0.6267 0.7260 0.2831 +vn -0.1542 0.9752 0.1589 +vn 0.0121 0.9965 0.0833 +vn 0.0888 0.9821 0.1660 +vn -0.8622 0.4491 0.2344 +vn 0.2048 0.9570 0.2056 +vn 0.0043 0.9660 0.2586 +vn 0.1725 0.9690 0.1771 +vn -0.2109 0.9220 0.3249 +vn -0.2000 0.9335 0.2976 +vn 0.8780 0.3861 0.2831 +vn -0.7291 0.5580 0.3962 +vn 0.1294 0.9878 0.0870 +vn -0.4400 0.7890 0.4287 +vn 0.2145 0.7694 0.6017 +vn 0.3660 0.5163 0.7742 +vn 0.4166 0.6377 0.6479 +vn 0.3486 0.7900 0.5043 +vn -0.6038 0.5000 0.6209 +vn 0.6338 0.4616 0.6207 +vn 0.5369 0.5477 0.6417 +vn -0.4169 0.6260 0.6590 +vn 0.7722 0.4085 0.4867 +vn -0.3703 0.5112 0.7756 +vn -0.2029 0.7746 0.5990 +vn -0.0000 0.9290 0.3700 +vn -0.2030 0.4195 0.8848 +vn -0.0000 0.5745 0.8185 +vn -0.0000 0.4397 0.8981 +vn 0.2254 0.4176 0.8802 +vn 0.1993 0.3095 0.9298 +vn 0.3588 0.3507 0.8650 +vn -0.8721 0.3670 0.3237 +vn -0.7672 0.3499 0.5376 +vn 0.5120 0.3397 0.7889 +vn -0.6549 0.3486 0.6705 +vn 0.6468 0.3581 0.6733 +vn -0.5261 0.3346 0.7818 +vn 0.7588 0.3700 0.5360 +vn -0.3626 0.3272 0.8726 +vn 0.8655 0.3928 0.3109 +vn -0.1925 0.3006 0.9341 +vn 0.8993 0.3951 0.1877 +vn -0.0000 0.2852 0.9585 +vn -0.8990 0.3915 0.1963 +vn -0.9092 0.3761 0.1789 +vn 0.5010 -0.3248 0.8022 +vn 0.3529 -0.5894 0.7267 +vn 0.5139 -0.3199 0.7960 +vn -0.7869 -0.2642 0.5578 +vn -0.6272 -0.5087 0.5897 +vn -0.6613 -0.2756 0.6977 +vn 0.6491 -0.2981 0.6998 +vn 0.6240 -0.5275 0.5765 +vn -0.5199 -0.3136 0.7946 +vn -0.5076 -0.3229 0.7988 +vn 0.7735 -0.3415 0.5339 +vn 0.7320 -0.5106 0.4511 +vn -0.3529 -0.5894 0.7267 +vn -0.3687 -0.3521 0.8603 +vn 0.8498 -0.3255 0.4145 +vn -0.1745 -0.5609 0.8093 +vn -0.1766 -0.3119 0.9336 +vn -0.0000 -0.3169 0.9485 +vn -0.0000 -0.3169 0.9484 +vn 0.1766 -0.3119 0.9336 +vn 0.1745 -0.5609 0.8093 +vn 0.3688 -0.3521 0.8603 +vn -0.8679 -0.2800 0.4103 +vn -0.7453 -0.4612 0.4815 +vn 0.8867 -0.4502 0.1054 +vn 0.8259 -0.4696 0.3120 +vn -0.0000 -0.8500 0.5268 +vn -0.0000 -0.8059 0.5920 +vn 0.1352 -0.8314 0.5390 +vn -0.8831 -0.4548 0.1149 +vn -0.8298 -0.4808 0.2834 +vn -0.1353 -0.8312 0.5393 +vn -0.5065 -0.7944 0.3353 +vn 0.3676 -0.8358 0.4077 +vn 0.5121 -0.7916 0.3334 +vn -0.3632 -0.8365 0.4104 +vn -0.3745 -0.7665 0.5218 +vn 0.5844 -0.7695 0.2576 +vn -0.2358 -0.8797 0.4129 +vn -0.0930 -0.9274 0.3623 +vn -0.0000 -0.9274 0.3740 +vn 0.0930 -0.9274 0.3623 +vn 0.2358 -0.8797 0.4129 +vn -0.6193 -0.7285 0.2929 +vn 0.3745 -0.7665 0.5218 +vn -0.0000 -0.9645 0.2639 +vn 0.0898 -0.9613 0.2605 +vn 0.1834 -0.9504 0.2512 +vn 0.3280 -0.9136 0.2404 +vn -0.3229 -0.9155 0.2399 +vn -0.1834 -0.9504 0.2512 +vn -0.0898 -0.9613 0.2605 +vn 0.2961 -0.9403 0.1678 +vn 0.4007 -0.9024 0.1584 +vn -0.2973 -0.9403 0.1658 +vn -0.1727 -0.9715 0.1622 +vn 0.7600 -0.6414 0.1046 +vn -0.0852 -0.9824 0.1663 +vn -0.0000 -0.9860 0.1670 +vn 0.0852 -0.9824 0.1663 +vn 0.1727 -0.9715 0.1622 +vn -0.4151 -0.8953 0.1614 +vn -0.0000 -0.9967 0.0808 +vn 0.0810 -0.9934 0.0807 +vn 0.1652 -0.9830 0.0797 +vn 0.2710 -0.9587 0.0858 +vn -0.2724 -0.9583 0.0866 +vn -0.1652 -0.9830 0.0797 +vn -0.0810 -0.9934 0.0807 +vn 0.0001 0.9696 0.2448 +vn 0.0110 0.9970 0.0769 +vn -0.0020 0.9695 0.2451 +vn -0.0000 0.0015 -1.0000 +vn 0.9970 0.0208 0.0741 +vn 0.9973 0.0377 0.0627 +vn 0.9917 0.1200 0.0461 +vn -0.0005 -0.9933 -0.1153 +vn -0.0047 -0.9934 -0.1149 +vn -0.0049 -0.9934 -0.1148 +vn -0.0000 0.9401 0.3409 +vn 0.0065 0.9968 -0.0801 +vn 0.0133 0.9969 0.0774 +vn -0.0006 0.9576 -0.2883 +vn -0.0014 0.9577 -0.2879 +vn -0.0000 0.9575 -0.2885 +vn -0.9997 0.0242 0.0064 +vn -0.9999 -0.0106 -0.0104 +vn -0.9924 0.1158 0.0409 +vn -0.0100 0.0044 0.9999 +vn -0.0035 0.0015 1.0000 +vn -0.0001 -0.2011 -0.9796 +vn 0.0029 -0.5131 -0.8584 +vn -0.0013 -0.5238 -0.8518 +vn -0.0000 0.9985 0.0546 +vn 0.0105 0.9978 0.0661 +vn 0.0368 0.9965 0.0756 +vn 0.0471 0.9957 0.0793 +vn 0.0002 0.9979 -0.0653 +vn 0.0023 0.9924 0.1229 +vn 0.0009 0.9977 -0.0672 +vn 0.0015 0.9873 -0.1591 +vn 0.0030 0.9871 -0.1602 +vn -0.0041 0.2813 -0.9596 +vn -0.0051 -0.3624 -0.9320 +vn -0.0041 0.2577 -0.9662 +vn 0.0093 0.3101 0.9506 +vn 0.0105 0.3088 0.9511 +vn 0.0038 0.3162 0.9487 +vn 0.0051 0.9925 0.1218 +vn 0.0044 0.8908 0.4544 +vn 0.0043 0.7416 0.6708 +vn 0.0105 0.8902 0.4554 +vn -0.0047 -0.7492 -0.6623 +vn -0.0070 -0.5786 -0.8156 +vn -0.0095 -0.5808 -0.8140 +vn 0.0012 -0.2389 0.9710 +vn 0.0052 -0.2526 0.9675 +vn -0.0000 -0.2349 0.9720 +vn -0.0008 -0.7603 -0.6496 +vn -0.0065 -0.7584 -0.6518 +vn -0.0059 -0.8579 -0.5137 +vn -0.0000 -0.8631 -0.5051 +vn 0.0015 -0.1950 -0.9808 +vn -0.0043 -0.2842 0.9588 +vn -0.0040 -0.0317 0.9995 +vn -0.0033 -0.0308 0.9995 +vn -0.0017 -0.8867 0.4624 +vn -0.0069 -0.7566 0.6539 +vn -0.0143 -0.7529 0.6580 +vn 0.0003 -0.9691 0.2465 +vn 0.0020 -0.8889 0.4581 +vn -0.0011 -0.9051 -0.4252 +vn -0.0102 -0.9196 -0.3928 +vn -0.0085 -0.9169 -0.3991 +vn -0.0038 0.4915 -0.8709 +vn 0.0021 0.4773 -0.8788 +vn 0.0045 0.4714 -0.8819 +vn 0.0010 0.9692 -0.2464 +vn -0.0049 0.4932 -0.8699 +vn -0.0035 0.6150 -0.7885 +vn -0.0023 0.4897 -0.8719 +vn 0.0020 0.1036 -0.9946 +vn 0.0053 0.0997 -0.9950 +vn 0.0005 0.2215 0.9751 +vn 0.0026 0.2202 0.9755 +vn 0.0010 0.9664 -0.2572 +vn 0.0008 0.9663 -0.2574 +vn 0.0027 0.9668 -0.2553 +vn 0.0051 -0.1557 -0.9878 +vn 0.0059 -0.1562 -0.9877 +vn 0.0007 -0.9022 -0.4313 +vn -0.9996 -0.0022 -0.0274 +vn -0.9996 -0.0174 -0.0243 +vn -0.9996 -0.0000 -0.0278 +vn 0.0021 -0.6196 -0.7849 +vn 0.0011 -0.6209 -0.7839 +vn 0.0032 -0.6181 -0.7861 +vn 0.9994 -0.0238 -0.0242 +vn 0.9996 -0.0029 -0.0284 +vn 0.9996 -0.0000 -0.0290 +vn 0.0005 -0.9994 0.0358 +vn 0.0015 -0.9993 0.0362 +vn -0.0000 -0.9994 0.0356 +vn -0.0000 0.9997 -0.0230 +vn -0.0000 0.9991 -0.0417 +vn -0.0000 -1.0000 0.0088 +vn -0.0000 -0.7196 0.6944 +vn -0.0000 -0.6139 0.7894 +vn -0.0000 -0.6036 0.7973 +vn -0.0000 -0.4849 0.8746 +vn 0.9873 -0.0282 0.1565 +vn 0.9888 -0.0398 0.1438 +vn 0.9911 -0.0645 0.1164 +vn -0.9888 0.0398 -0.1438 +vn -0.9873 0.0282 -0.1565 +vn -0.9911 0.0645 -0.1164 +vn 0.2987 -0.0000 -0.9543 +vn -0.2987 -0.0000 -0.9543 +vn -0.6292 -0.0060 -0.7772 +vn -0.6256 -0.0031 -0.7802 +vn -0.6216 -0.0000 -0.7834 +vn 0.0389 0.9981 -0.0481 +vn 0.5945 -0.0069 -0.8040 +vn 0.5995 -0.0032 -0.8004 +vn 0.6039 -0.0000 -0.7971 +vn -0.0244 0.9974 -0.0684 +vn 0.9136 -0.4065 -0.0003 +vn 1.0000 -0.0000 -0.0004 +vn 0.9136 -0.4067 -0.0003 +vn -0.9781 0.2079 0.0004 +vn -0.9782 -0.2077 0.0004 +vn -0.9781 -0.2079 0.0004 +vn 1.0000 0.0002 -0.0004 +vn 0.9136 0.4067 -0.0003 +vn -0.8091 -0.5876 0.0003 +vn -0.8090 -0.5878 0.0003 +vn 0.9135 0.4070 -0.0003 +vn 0.6692 0.7431 -0.0003 +vn -0.5001 -0.8659 0.0002 +vn -0.5000 -0.8661 0.0002 +vn 0.6690 0.7433 -0.0002 +vn 0.3090 0.9510 -0.0001 +vn -0.1046 -0.9945 -0.0000 +vn -0.1045 -0.9945 -0.0000 +vn 0.3089 0.9511 -0.0001 +vn -0.1045 0.9945 -0.0000 +vn 0.3091 -0.9510 -0.0001 +vn -0.1046 0.9945 -0.0000 +vn -0.5000 0.8660 0.0002 +vn 0.6691 -0.7431 -0.0002 +vn -0.8089 0.5879 0.0003 +vn -0.8090 0.5878 0.0003 +vn 0.6692 -0.7431 -0.0002 +vn -0.9781 0.2081 0.0004 +vn -0.6604 0.2933 0.6913 +vn -0.6003 -0.0000 0.7997 +vn -0.5489 0.2452 0.7991 +vn -0.6604 -0.2933 0.6913 +vn -0.7218 -0.0000 0.6921 +vn -0.4858 -0.5378 0.6890 +vn -0.5489 -0.2452 0.7991 +vn 0.4981 0.5524 0.6684 +vn 0.3097 0.5326 0.7877 +vn 0.4243 0.3816 0.8212 +vn -0.2264 -0.6919 0.6856 +vn -0.4029 -0.4496 0.7972 +vn 0.3663 0.6372 0.6781 +vn 0.0661 0.6082 0.7910 +vn 0.0749 -0.7277 0.6818 +vn -0.1858 -0.5783 0.7944 +vn 0.0749 0.7277 0.6818 +vn -0.1858 0.5783 0.7944 +vn 0.3663 -0.6372 0.6781 +vn 0.0661 -0.6082 0.7910 +vn -0.2264 0.6919 0.6856 +vn -0.4029 0.4496 0.7972 +vn 0.5962 -0.4343 0.6752 +vn 0.3097 -0.5326 0.7877 +vn -0.4858 0.5378 0.6890 +vn 0.6816 -0.3031 0.6660 +vn 0.5019 -0.3630 0.7851 +vn 0.5453 -0.1772 0.8193 +vn 0.3108 -0.2230 0.9239 +vn -0.3595 -0.0000 0.9332 +vn -0.3287 0.1480 0.9328 +vn 0.4451 0.0944 0.8905 +vn 0.3767 -0.0792 0.9229 +vn 0.3108 0.2230 0.9239 +vn 0.3767 0.0792 0.9229 +vn -0.3287 -0.1480 0.9328 +vn 0.1921 0.3260 0.9257 +vn -0.2411 -0.2719 0.9316 +vn 0.0428 0.3707 0.9278 +vn -0.1102 -0.3509 0.9299 +vn -0.1102 0.3509 0.9299 +vn 0.0428 -0.3707 0.9278 +vn -0.2411 0.2719 0.9316 +vn 0.1921 -0.3260 0.9257 +vn -0.2876 0.1289 0.9490 +vn -0.2113 0.2367 0.9483 +vn 0.2675 -0.1933 0.9440 +vn -0.3143 -0.0000 0.9493 +vn 0.3242 0.0687 0.9435 +vn 0.3242 -0.0687 0.9435 +vn 0.2675 0.1933 0.9440 +vn -0.2876 -0.1289 0.9490 +vn 0.1649 0.2828 0.9449 +vn -0.2113 -0.2367 0.9483 +vn 0.0355 0.3220 0.9461 +vn -0.0975 -0.3052 0.9473 +vn -0.0976 0.3052 0.9473 +vn 0.0355 -0.3220 0.9461 +vn 0.1649 -0.2828 0.9449 +vn -0.1961 0.0875 0.9767 +vn -0.1439 0.1602 0.9765 +vn 0.1769 -0.1283 0.9758 +vn -0.2145 -0.0000 0.9767 +vn 0.2141 -0.0454 0.9758 +vn 0.1769 0.1283 0.9758 +vn 0.2141 0.0454 0.9758 +vn -0.1961 -0.0875 0.9767 +vn 0.1092 0.1886 0.9760 +vn -0.1439 -0.1602 0.9765 +vn 0.0230 0.2157 0.9762 +vn -0.0665 -0.2056 0.9764 +vn -0.0664 0.2056 0.9764 +vn 0.0230 -0.2158 0.9762 +vn 0.1092 -0.1885 0.9760 +vn -0.0759 0.0169 -0.9970 +vn -0.0653 0.0464 -0.9968 +vn -0.0643 0.0482 -0.9968 +vn -0.0394 -0.0672 -0.9970 +vn -0.0618 -0.0452 -0.9971 +vn -0.0383 -0.0679 -0.9970 +vn -0.0620 -0.0448 -0.9971 +vn -0.0748 -0.0157 -0.9971 +vn -0.0426 0.0718 -0.9965 +vn -0.0406 0.0733 -0.9965 +vn -0.0761 0.0157 -0.9970 +vn -0.0102 0.0869 -0.9962 +vn -0.0076 0.0875 -0.9961 +vn -0.0679 -0.0497 0.9965 +vn -0.0763 -0.1300 0.9886 +vn -0.0421 -0.0746 0.9963 +vn 0.0274 0.0872 -0.9958 +vn 0.0296 0.0867 -0.9958 +vn -0.0823 -0.0172 0.9965 +vn -0.1201 -0.0868 0.9890 +vn 0.0627 0.0705 -0.9955 +vn 0.0638 0.0696 -0.9955 +vn -0.1472 0.0303 0.9886 +vn -0.0834 0.0186 0.9963 +vn -0.1263 0.0898 0.9879 +vn -0.0706 0.0529 0.9961 +vn 0.0872 0.0389 -0.9954 +vn 0.0872 0.0388 -0.9954 +vn -0.0824 0.1388 0.9869 +vn -0.0446 0.0805 0.9958 +vn 0.0250 -0.0802 -0.9965 +vn -0.0072 -0.0803 -0.9967 +vn 0.0275 -0.0796 -0.9964 +vn -0.0197 0.1678 0.9856 +vn -0.0084 0.0960 0.9954 +vn 0.0528 0.1682 0.9843 +vn 0.0324 0.0950 0.9949 +vn 0.1209 0.1358 0.9833 +vn 0.0698 0.0762 0.9946 +vn 0.1680 0.0749 0.9829 +vn 0.0955 0.0425 0.9945 +vn 0.0946 0.0007 -0.9955 +vn 0.1036 0.0008 0.9946 +vn 0.0945 -0.0005 -0.9955 +vn 0.0852 -0.0362 -0.9957 +vn -0.0179 -0.1546 0.9878 +vn -0.0079 -0.0882 0.9961 +vn 0.0483 -0.1549 0.9867 +vn 0.0301 -0.0874 0.9957 +vn 0.0835 -0.0382 -0.9958 +vn 0.0602 -0.0645 -0.9961 +vn 0.1121 -0.1276 0.9855 +vn 0.0660 -0.0708 0.9953 +vn 0.0581 -0.0661 -0.9961 +vn 0.0927 -0.0397 0.9949 +vn 0.1822 -0.0010 0.9833 +vn -0.0092 -0.0799 -0.9968 +vn 0.1610 -0.0736 0.9842 +vn 0.5000 0.8660 -0.0000 +vn 0.8090 0.5878 -0.0000 +vn -0.3090 -0.9511 -0.0000 +vn -0.6691 -0.7431 -0.0000 +vn 0.1045 0.9945 -0.0000 +vn 0.1045 -0.9945 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn -0.6691 0.7431 -0.0000 +vn -0.3090 0.9511 -0.0000 +vn 0.8090 -0.5878 -0.0000 +vn -0.9135 0.4067 -0.0000 +vn 0.9781 -0.2079 -0.0000 +vn 0.9781 0.2079 -0.0000 +vn -0.9135 -0.4067 -0.0000 +vn -0.0186 0.0554 -0.9983 +vn 0.0063 0.0578 -0.9983 +vn 0.6691 0.7431 -0.0002 +vn 0.5000 0.8660 -0.0002 +vn 0.6691 0.7432 -0.0002 +vn 0.5001 -0.8660 -0.0002 +vn 0.8090 -0.5878 -0.0003 +vn 0.5000 -0.8660 -0.0002 +vn 0.1046 -0.9945 -0.0000 +vn 0.4999 0.8661 -0.0002 +vn 0.1046 0.9945 -0.0000 +vn 0.8091 -0.5877 -0.0003 +vn -0.6693 -0.7430 0.0002 +vn -0.9135 -0.4067 0.0003 +vn -0.9136 -0.4065 0.0003 +vn -0.6690 0.7432 0.0002 +vn -0.3090 0.9511 0.0001 +vn -0.3090 -0.9511 0.0001 +vn -0.3091 -0.9510 0.0001 +vn -1.0000 -0.0000 0.0003 +vn -1.0000 0.0002 0.0003 +vn -0.6691 -0.7432 0.0002 +vn -0.9135 0.4069 0.0003 +vn -0.6691 0.7432 0.0002 +vn -0.9135 0.4068 0.0003 +vn 0.0585 -0.0107 0.9982 +vn 0.0484 -0.0334 0.9983 +vn -0.0402 -0.0429 0.9983 +vn -0.0185 -0.0551 0.9983 +vn -0.0546 -0.0261 -0.9982 +vn -0.0598 -0.0018 -0.9982 +vn -0.0601 -0.0019 -0.9982 +vn 0.0063 0.0615 0.9981 +vn 0.0301 0.0540 0.9981 +vn -0.0185 0.0589 0.9981 +vn -0.0186 0.0590 0.9981 +vn -0.0184 -0.0586 -0.9981 +vn 0.0063 -0.0615 -0.9981 +vn -0.0185 -0.0587 -0.9981 +vn 0.0063 -0.0581 0.9983 +vn 0.0300 -0.0502 0.9983 +vn -0.0601 0.0018 0.9982 +vn -0.0547 -0.0226 0.9982 +vn -0.0400 0.0427 -0.9983 +vn 0.0585 0.0142 0.9982 +vn 0.0486 0.0371 0.9981 +vn -0.0402 -0.0465 -0.9981 +vn -0.0400 0.0463 0.9981 +vn -0.0400 0.0462 0.9981 +vn -0.9782 0.2077 -0.0000 +vn -0.9782 -0.2077 -0.0000 +vn -0.9781 -0.2081 -0.0000 +vn 0.6690 -0.7432 -0.0000 +vn 0.3091 -0.9510 -0.0000 +vn 0.6693 -0.7430 -0.0000 +vn -0.8089 -0.5879 -0.0000 +vn -0.5001 -0.8660 -0.0000 +vn -0.4999 -0.8661 -0.0000 +vn 0.3089 0.9511 -0.0000 +vn -0.5001 0.8660 -0.0000 +vn -0.8089 0.5879 -0.0000 +vn -0.8091 0.5876 -0.0000 +vn 0.9136 0.4065 -0.0000 +vn 0.9135 0.4069 -0.0000 +vn -0.8091 -0.5876 -0.0000 +vn 0.3090 -0.9511 -0.0000 +vn -0.4999 0.8661 -0.0000 +vn 0.3091 0.9510 -0.0000 +vn 0.6690 0.7432 -0.0000 +vn 0.9135 -0.4069 -0.0000 +vn 0.9136 -0.4065 -0.0000 +vn -0.9781 0.2081 -0.0000 +vn 1.0000 -0.0002 -0.0000 +vn 0.6693 0.7430 -0.0000 +vn -0.0549 0.0262 0.9981 +vn -0.0550 0.0226 -0.9982 +vn 0.0588 -0.0143 -0.9982 +vn 0.0589 0.0107 -0.9982 +vn 0.0487 0.0336 -0.9982 +vn 0.0300 0.0502 -0.9983 +vn 0.0300 -0.0537 -0.9981 +vn 0.0486 -0.0371 -0.9981 +vn -0.0731 0.6937 -0.7166 +vn 0.2159 0.6633 -0.7165 +vn -0.0731 0.6937 -0.7165 +vn -0.3494 0.6038 -0.7165 +vn -0.5650 0.4094 -0.7163 +vn -0.5651 0.4092 -0.7163 +vn 0.6381 0.2827 -0.7162 +vn 0.6981 -0.0011 -0.7160 +vn 0.6380 0.2829 -0.7162 +vn -0.6828 -0.1465 -0.7158 +vn -0.5646 -0.4113 -0.7156 +vn -0.5645 -0.4115 -0.7156 +vn 0.2155 -0.6648 -0.7153 +vn -0.0729 -0.6949 -0.7154 +vn 0.2156 -0.6648 -0.7153 +vn -0.3493 0.6038 -0.7165 +vn 0.4674 0.5179 -0.7165 +vn 0.2160 0.6633 -0.7165 +vn 0.4675 0.5178 -0.7165 +vn -0.3488 -0.6055 -0.7153 +vn 0.4669 -0.5197 -0.7155 +vn 0.6375 -0.2852 -0.7157 +vn 0.4668 -0.5198 -0.7155 +vn -0.6831 0.1440 -0.7160 +vn -0.6831 0.1438 -0.7160 +vn 0.6376 -0.2850 -0.7157 +vn 0.6981 -0.0014 -0.7160 +vn -0.6829 -0.1463 -0.7158 +vn -0.3489 -0.6055 -0.7153 +vn 1.0000 -0.0000 -0.0003 +vn -0.9781 0.2080 0.0003 +vn -0.9782 -0.2077 0.0003 +vn -0.9781 -0.2079 0.0003 +vn 1.0000 0.0002 -0.0003 +vn 0.9135 0.4067 -0.0003 +vn 0.9134 0.4070 -0.0003 +vn 0.6692 0.7431 -0.0002 +vn -0.5000 -0.8660 0.0002 +vn 0.3091 0.9510 -0.0001 +vn 0.3090 -0.9511 -0.0001 +vn -0.9781 0.2081 0.0003 +vn 0.7228 -0.1539 0.6737 +vn 0.6079 0.1287 0.7835 +vn 0.6079 -0.1287 0.7835 +vn -0.6602 -0.2934 0.6914 +vn -0.7218 -0.0000 0.6922 +vn 0.7228 0.1539 0.6737 +vn 0.5019 0.3630 0.7851 +vn 0.5962 0.4343 0.6752 +vn 0.3097 0.5325 0.7877 +vn 0.3664 0.6372 0.6781 +vn 0.0750 0.7277 0.6818 +vn 0.3664 -0.6372 0.6781 +vn 0.3097 -0.5325 0.7877 +vn 0.5019 -0.3630 0.7850 +vn -0.3595 -0.0000 0.9331 +vn 0.3767 -0.0793 0.9229 +vn 0.3767 0.0793 0.9229 +vn -0.1103 -0.3509 0.9299 +vn -0.1103 0.3509 0.9299 +vn -0.2114 0.2367 0.9483 +vn 0.2675 -0.1932 0.9440 +vn -0.3144 -0.0000 0.9493 +vn 0.1650 0.2828 0.9449 +vn -0.2114 -0.2367 0.9483 +vn -0.0976 -0.3052 0.9473 +vn -0.0975 0.3052 0.9473 +vn 0.1650 -0.2828 0.9449 +vn -0.1439 0.1602 0.9766 +vn 0.1770 -0.1283 0.9758 +vn 0.2141 -0.0455 0.9757 +vn 0.1092 0.1885 0.9760 +vn 0.0230 0.2158 0.9762 +vn -0.0664 -0.2056 0.9764 +vn 0.0231 -0.2157 0.9762 +vn -0.0655 0.0466 -0.9968 +vn -0.0645 0.0483 -0.9967 +vn -0.0396 -0.0674 -0.9969 +vn -0.0620 -0.0454 -0.9970 +vn -0.0384 -0.0682 -0.9969 +vn -0.0622 -0.0450 -0.9970 +vn -0.0751 -0.0157 -0.9971 +vn -0.0428 0.0721 -0.9965 +vn -0.0408 0.0736 -0.9965 +vn -0.0102 0.0872 -0.9961 +vn -0.0076 0.0878 -0.9961 +vn -0.0680 -0.0498 0.9964 +vn -0.0764 -0.1303 0.9885 +vn -0.0422 -0.0748 0.9963 +vn 0.0275 0.0875 -0.9958 +vn 0.0296 0.0866 -0.9958 +vn -0.0826 -0.0170 0.9964 +vn -0.1203 -0.0869 0.9889 +vn 0.0629 0.0707 -0.9955 +vn 0.0640 0.0698 -0.9955 +vn -0.1475 0.0304 0.9886 +vn -0.0835 0.0186 0.9963 +vn -0.1265 0.0900 0.9879 +vn -0.0707 0.0530 0.9961 +vn 0.0875 0.0390 -0.9954 +vn 0.0876 0.0389 -0.9954 +vn -0.0826 0.1391 0.9868 +vn -0.0447 0.0806 0.9957 +vn 0.0250 -0.0801 -0.9965 +vn -0.0072 -0.0806 -0.9967 +vn 0.0276 -0.0800 -0.9964 +vn -0.0197 0.1681 0.9856 +vn -0.0084 0.0961 0.9953 +vn 0.0529 0.1685 0.9843 +vn 0.0325 0.0952 0.9949 +vn 0.1211 0.1360 0.9833 +vn 0.0700 0.0764 0.9946 +vn 0.1684 0.0750 0.9829 +vn 0.0957 0.0426 0.9945 +vn 0.0949 0.0007 -0.9955 +vn 0.1038 0.0008 0.9946 +vn 0.0846 -0.0362 -0.9958 +vn -0.0178 -0.1546 0.9878 +vn -0.0079 -0.0883 0.9961 +vn 0.0483 -0.1550 0.9867 +vn 0.0301 -0.0875 0.9957 +vn 0.0835 -0.0381 -0.9958 +vn 0.0604 -0.0647 -0.9961 +vn 0.1123 -0.1278 0.9854 +vn 0.0661 -0.0709 0.9953 +vn 0.0583 -0.0663 -0.9961 +vn 0.0928 -0.0398 0.9949 +vn 0.1826 -0.0010 0.9832 +vn -0.0093 -0.0802 -0.9967 +vn 0.1613 -0.0737 0.9841 +vn -0.9136 0.4067 -0.0000 +vn -0.9136 -0.4067 -0.0000 +vn 0.9782 -0.2077 -0.0003 +vn 0.9781 0.2079 -0.0003 +vn 0.9781 -0.2079 -0.0003 +vn 0.8089 0.5879 -0.0003 +vn 0.8090 0.5878 -0.0003 +vn 0.9781 0.2081 -0.0003 +vn 0.8091 -0.5876 -0.0003 +vn -0.0585 0.0106 -0.9982 +vn -0.0484 0.0334 -0.9983 +vn 0.0186 0.0554 -0.9983 +vn 0.0400 0.0427 -0.9983 +vn -0.0549 -0.0262 -0.9981 +vn -0.0601 -0.0018 -0.9982 +vn -0.0063 -0.0615 -0.9981 +vn -0.0299 -0.0537 -0.9981 +vn 0.0185 -0.0586 -0.9981 +vn -0.0185 -0.0586 -0.9981 +vn -0.0300 0.0502 -0.9983 +vn -0.0062 0.0578 -0.9983 +vn 0.0550 0.0227 -0.9982 +vn 0.0601 -0.0018 -0.9982 +vn -0.0402 0.0429 -0.9983 +vn -0.0483 -0.0369 -0.9981 +vn -0.0584 -0.0142 -0.9982 +vn 0.0402 -0.0465 -0.9981 +vn 0.9782 0.2077 -0.0000 +vn 0.9782 -0.2077 -0.0000 +vn 0.9781 0.2081 -0.0000 +vn -0.6690 0.7432 -0.0000 +vn -0.3091 0.9510 -0.0000 +vn -0.3089 0.9511 -0.0000 +vn 0.5001 0.8660 -0.0000 +vn 0.8089 0.5879 -0.0000 +vn 0.4999 0.8661 -0.0000 +vn -0.3091 -0.9510 -0.0000 +vn 0.8089 -0.5879 -0.0000 +vn 0.5001 -0.8660 -0.0000 +vn 0.8091 -0.5876 -0.0000 +vn -0.9136 -0.4065 -0.0000 +vn -1.0000 -0.0002 -0.0000 +vn -1.0000 0.0002 -0.0000 +vn 0.8091 0.5876 -0.0000 +vn 0.4999 -0.8661 -0.0000 +vn -0.6690 -0.7432 -0.0000 +vn -0.6693 -0.7430 -0.0000 +vn -0.9135 0.4069 -0.0000 +vn -0.6693 0.7430 -0.0000 +vn 0.9781 -0.2081 -0.0000 +vn -0.9136 0.4065 -0.0000 +vn -0.9135 -0.4069 -0.0000 +vn 0.0549 -0.0262 -0.9981 +vn 0.0546 -0.0261 -0.9982 +vn -0.0550 0.0227 -0.9982 +vn 0.0585 0.0106 -0.9982 +vn 0.0484 0.0334 -0.9983 +vn 0.0064 -0.0619 -0.9981 +vn -0.0730 0.6936 -0.7167 +vn -0.3494 0.6038 -0.7164 +vn 0.6381 0.2827 -0.7161 +vn 0.6381 0.2829 -0.7161 +vn -0.6828 -0.1465 -0.7157 +vn -0.5647 -0.4114 -0.7155 +vn -0.5645 -0.4116 -0.7155 +vn 0.2155 -0.6647 -0.7154 +vn -0.0729 -0.6950 -0.7153 +vn 0.2156 -0.6646 -0.7154 +vn -0.3493 0.6039 -0.7164 +vn 0.4675 0.5178 -0.7164 +vn -0.3487 -0.6053 -0.7155 +vn 0.4669 -0.5197 -0.7154 +vn 0.6376 -0.2853 -0.7156 +vn -0.6830 0.1440 -0.7161 +vn -0.6830 0.1438 -0.7161 +vn 0.6377 -0.2851 -0.7156 +vn -0.3488 -0.6053 -0.7155 +vn -0.4510 -0.6347 -0.6275 +vn -0.3537 -0.8114 -0.4653 +vn -0.5880 -0.4251 -0.6882 +vn -0.6364 -0.2148 -0.7408 +vn -0.7096 -0.0162 -0.7044 +vn -0.6961 0.0197 -0.7177 +vn 0.9517 0.0281 -0.3056 +vn 0.5207 -0.3405 -0.7829 +vn 0.7021 -0.4308 -0.5669 +vn 0.4733 -0.5439 -0.6929 +vn 0.5547 -0.0611 -0.8298 +vn 0.6899 -0.0218 -0.7235 +vn 0.4970 0.1383 -0.8567 +vn 0.6661 0.1763 -0.7247 +vn 0.8386 0.1455 -0.5249 +vn 0.7182 -0.5412 -0.4373 +vn 0.7668 -0.1830 -0.6153 +vn 0.9010 -0.2271 -0.3697 +vn 0.9202 0.0253 -0.3906 +vn 0.9492 -0.0934 -0.3005 +vn 0.9505 0.1011 -0.2938 +vn 0.8352 -0.4534 -0.3111 +vn 0.8943 -0.3523 -0.2759 +vn 0.9690 0.0560 -0.2406 +vn 0.9754 0.0907 -0.2011 +vn -0.0000 0.9998 -0.0205 +vn -0.0000 0.9995 -0.0313 +vn -1.0000 0.0041 -0.0073 +vn 0.9798 0.0562 -0.1918 +vn -0.0218 0.2639 -0.9643 +vn -1.0000 0.0005 -0.0004 +vn -1.0000 0.0002 -0.0009 +vn -1.0000 0.0007 -0.0000 +vn -0.0000 -0.9949 0.1006 +vn -0.0000 -0.9924 0.1228 +vn -0.0013 -0.9951 0.0993 +vn -0.8210 -0.0000 0.5709 +vn 0.8210 -0.0000 0.5709 +vn -0.0000 0.0132 0.9999 +vn 1.0000 0.0005 -0.0004 +vn 1.0000 0.0002 -0.0009 +vn 1.0000 -0.0000 -0.0012 +vn -0.0000 -0.9999 0.0169 +vn 0.0469 0.2320 0.9716 +vn -0.1428 -0.8642 -0.4824 +vn -0.3053 -0.9365 -0.1723 +vn -0.4039 -0.9001 -0.1634 +vn 0.9999 -0.0078 -0.0104 +vn -0.7065 0.1084 -0.6994 +vn -0.7206 0.0805 -0.6887 +vn 0.3137 -0.4281 0.8475 +vn 0.1688 -0.2846 -0.9437 +vn -0.2368 -0.8817 -0.4080 +vn -0.0001 1.0000 0.0055 +vn -0.0003 1.0000 0.0057 +vn 0.0096 0.9999 0.0075 +vn -0.0433 -0.9986 0.0302 +vn -0.0050 -0.9996 0.0262 +vn -0.0031 -0.7494 -0.6621 +vn -0.0007 -0.8808 -0.4735 +vn -0.0000 -0.8806 -0.4739 +vn 0.9681 -0.0444 0.2466 +vn -0.6896 -0.6547 0.3096 +vn -0.9904 0.0004 0.1382 +vn -0.9477 -0.0516 0.3148 +vn 0.9929 0.0021 0.1190 +vn 0.9743 0.0071 0.2250 +vn -0.0076 0.9993 0.0368 +vn -0.9678 0.0066 0.2517 +vn -0.0007 -0.9999 -0.0170 +vn -0.0000 -0.9999 -0.0156 +vn 0.0004 -0.9999 -0.0150 +vn -0.0004 -0.9999 -0.0150 +vn 0.0001 -0.9999 -0.0155 +vn 0.0008 -0.9999 -0.0170 +vn 0.0040 -0.9999 -0.0163 +vn 0.0009 -0.9998 -0.0190 +vn 0.0041 -0.9998 -0.0169 +vn 0.0018 -0.9998 -0.0189 +vn 0.0041 -0.9998 -0.0175 +vn 0.0025 -0.9998 -0.0189 +vn -0.0000 -0.9998 -0.0197 +vn -0.0003 -0.9998 -0.0208 +vn -0.0033 -0.9999 -0.0167 +vn -0.0008 -0.9998 -0.0213 +vn -0.0035 -0.9998 -0.0176 +vn -0.0016 -0.9998 -0.0214 +vn -0.0036 -0.9998 -0.0186 +vn -0.0015 1.0000 -0.0013 +vn -0.0007 1.0000 -0.0005 +vn -0.0027 1.0000 -0.0023 +vn -0.0217 -0.9985 0.0509 +vn -0.0263 -0.9977 0.0617 +vn -0.9902 0.1179 -0.0747 +vn -0.9919 -0.0000 -0.1269 +vn 0.9892 0.0463 -0.1391 +vn 0.9558 0.2357 -0.1758 +vn 0.9919 -0.0000 -0.1269 +vn -0.0009 -1.0000 0.0093 +vn -0.0533 0.9983 0.0236 +vn -0.0742 0.9901 0.1193 +vn -0.0000 0.9827 0.1849 +vn 0.0528 0.9983 0.0256 +vn 0.0039 -0.0049 1.0000 +vn 0.0153 -0.0000 0.9999 +vn 0.0054 -0.0044 1.0000 +vn -0.9943 0.0080 0.1067 +vn 0.9943 0.0080 0.1067 +vn -0.0033 0.9999 0.0149 +vn -0.0072 0.9998 0.0162 +vn -0.0185 0.9996 0.0208 +vn 0.9960 -0.0000 0.0891 +vn -0.0000 0.0001 1.0000 +vn -0.0209 0.6935 0.7201 +vn -0.9849 -0.1702 0.0324 +vn -0.9661 -0.0000 0.2582 +vn 0.0220 0.6921 0.7215 +vn 0.9995 0.0019 0.0322 +vn 0.9999 -0.0081 -0.0079 +vn 0.9996 0.0269 0.0083 +vn 0.9967 -0.0025 0.0807 +vn -0.0000 -0.9933 -0.1154 +vn 0.0043 0.9967 -0.0812 +vn -0.0020 0.9577 -0.2876 +vn -0.9956 0.0022 0.0941 +vn -0.9961 0.0353 0.0812 +vn -0.9950 0.0811 0.0586 +vn -0.0135 0.0059 0.9999 +vn -0.0000 0.9981 0.0622 +vn -0.0116 -0.3853 -0.9227 +vn 0.0051 0.7872 -0.6166 +vn -0.0016 0.8027 -0.5964 +vn 0.0158 0.3028 0.9529 +vn -0.0018 0.7540 0.6568 +vn 0.0063 -0.2564 0.9665 +vn -0.0036 -0.2846 0.9586 +vn -0.0062 0.4973 -0.8675 +vn 0.0010 0.9692 -0.2463 +vn -0.0032 0.6148 -0.7887 +vn -0.0009 0.9658 -0.2593 +vn -0.9995 -0.0188 -0.0240 +vn -0.0000 -0.6223 -0.7828 +vn 0.9994 -0.0257 -0.0238 +vn 0.0020 -0.9993 0.0364 +vn 0.9823 -0.0000 0.1873 +vn -0.9823 -0.0000 -0.1873 +vn -0.6335 -0.0094 -0.7737 +vn -0.6256 -0.0031 -0.7801 +vn 0.5945 -0.0069 -0.8041 +vn 0.5897 -0.0104 -0.8076 +vn -0.4999 0.8661 0.0002 +vn 0.4981 0.5525 0.6683 +vn -0.0747 -0.0160 -0.9971 +vn -0.1447 -0.0311 0.9890 +vn 0.9135 -0.4068 -0.0003 +vn -0.0750 -0.0161 -0.9971 +vn -0.1450 -0.0311 0.9889 +vn -1.0000 -0.0002 0.0003 +vn -1.0000 0.0002 0.0002 +vn -1.0000 -0.0017 0.0001 +vn -1.0000 -0.0000 -0.0001 +vn -1.0000 0.0002 -0.0004 +vn -1.0000 -0.0000 -0.0012 +vn 1.0000 0.0007 -0.0000 +vn 0.9999 -0.0080 -0.0105 +vn 0.9993 -0.0309 -0.0209 +vn 0.9983 -0.0545 -0.0217 +vn 0.9519 0.0281 -0.3052 +vn 1.0000 -0.0000 -0.0090 +vn 0.9880 -0.1522 -0.0274 +vn 0.9969 -0.0764 -0.0178 +vn 0.9938 0.1106 0.0080 +vn -0.0012 -0.7945 -0.6073 +vn -0.1065 0.0384 -0.9936 +vn -0.0434 -0.2158 -0.9755 +vn -0.0992 0.0796 -0.9919 +vn -0.0920 -0.4258 -0.9001 +vn 0.0086 -0.3391 -0.9407 +vn -0.0218 -0.2661 -0.9637 +vn -0.0564 0.5881 -0.8068 +vn 0.0001 -0.0000 -1.0000 +vn 0.0001 -0.0001 -1.0000 +vn 0.0037 -0.0154 -0.9999 +vn 0.5723 -0.7811 -0.2497 +vn -0.0094 0.9999 0.0071 +vn -0.0133 0.9999 0.0063 +vn -0.0034 1.0000 0.0029 +vn 0.0020 1.0000 0.0053 +vn -0.0034 1.0000 0.0021 +vn -0.0053 1.0000 0.0010 +vn 0.0071 0.9999 0.0085 +vn -0.0020 1.0000 0.0053 +vn 0.0140 0.9999 0.0067 +vn 0.0034 1.0000 0.0021 +vn 0.0034 1.0000 0.0031 +vn 0.0053 1.0000 0.0010 +vn 0.0040 1.0000 0.0004 +vn -0.0071 0.9999 0.0085 +vn -0.0040 1.0000 0.0004 +vn 0.0005 1.0000 0.0052 +vn -0.0007 1.0000 0.0056 +vn 0.0002 1.0000 0.0053 +vn -0.0731 -0.9967 0.0347 +vn -0.0063 -1.0000 0.0047 +vn -0.0062 -1.0000 0.0049 +vn -0.0061 -1.0000 0.0024 +vn 0.4983 -0.7947 0.3466 +vn 0.9413 -0.1042 0.3211 +vn -0.4925 -0.8183 0.2964 +vn -0.9177 -0.0390 0.3952 +vn 0.0841 -0.9963 0.0186 vt 0.253710 0.110526 vt 0.252349 0.068980 vt 0.240097 0.108230 @@ -2533,7 +8206,6 @@ vt 0.102714 0.574049 vt 0.151506 0.572592 vt 0.337191 0.624061 vt 0.337191 0.704667 -vt 0.337191 0.704667 vt 0.320684 0.647879 vt 0.083852 0.600957 vt 0.313479 0.584301 @@ -2555,24 +8227,16 @@ vt 0.261863 0.480363 vt 0.261863 0.751637 vt 0.175980 0.543455 vt 0.256586 0.543455 -vt 0.256586 0.543455 vt 0.256586 0.785272 vt 0.175980 0.785272 -vt 0.175980 0.785272 vt 0.256586 0.462849 -vt 0.175980 0.543455 vt 0.175980 0.462849 vt 0.197878 0.688963 vt 0.248434 0.522479 vt 0.248434 0.689647 -vt 0.337191 0.624061 -vt 0.337191 0.704667 vt 0.334807 0.548694 vt 0.057193 0.653727 vt 0.057193 0.548694 -vt 0.175980 0.462849 -vt 0.175980 0.543455 -vt 0.175980 0.543455 vt 0.219390 0.594549 vt 0.185128 0.622603 vt 0.219390 0.659949 @@ -3444,13 +9108,8 @@ vt 0.332306 0.648580 vt 0.369571 0.568061 vt 0.249842 0.522353 vt 0.172030 0.465145 -vt 0.175980 0.543455 -vt 0.256586 0.785272 -vt 0.256586 0.543455 vt 0.189399 0.521681 -vt 0.337191 0.624061 vt 0.334807 0.653727 -vt 0.175980 0.462849 vt 0.207656 0.556503 vt 0.241942 0.659949 vt 0.309031 0.804486 @@ -3606,4528 +9265,2914 @@ vt 0.232488 0.109666 vt 0.238571 0.261723 vt 0.197818 0.221995 vt 0.198793 0.203902 -vn -0.0850 0.0014 -0.9964 -vn -0.1434 -0.0004 -0.9897 -vn -0.0880 -0.0711 -0.9936 -vn -0.1601 -0.0115 -0.9870 -vn -0.1027 -0.1488 -0.9835 -vn -0.1896 -0.0152 -0.9817 -vn -0.1280 -0.2399 -0.9623 -vn -0.2315 -0.0112 -0.9728 -vn -0.1795 -0.3578 -0.9164 -vn -0.2839 -0.0110 -0.9588 -vn -0.2522 -0.5529 -0.7942 -vn -0.3148 -0.0516 -0.9477 -vn -0.2965 -0.8183 -0.4925 -vn -0.1239 -0.2191 0.9678 -vn -0.1533 -0.0171 0.9880 -vn -0.0839 -0.1422 0.9863 -vn -0.0764 -0.0648 0.9950 -vn -0.1233 -0.0017 0.9924 -vn -0.0733 0.0014 0.9973 -vn -0.1227 0.0052 0.9924 -vn -0.0824 0.0664 0.9944 -vn -0.1523 0.0169 0.9882 -vn -0.0946 0.1432 0.9852 -vn -0.1267 0.2183 0.9676 -vn -0.2042 0.0157 0.9788 -vn -0.1632 0.3436 0.9248 -vn -0.2449 0.9662 0.0803 -vn -0.2410 0.7101 0.6616 -vn -0.3612 0.4929 0.7916 -vn -0.1768 0.9838 0.0306 -vn -0.1756 0.9039 0.3901 -vn -0.0923 0.9952 0.0312 -vn -0.1433 0.9724 0.1843 -vn -0.0503 0.9987 0.0041 -vn -0.1334 0.9911 -0.0017 -vn -0.0489 0.9988 -0.0011 -vn -0.1411 0.9681 -0.2072 -vn -0.0912 0.9957 -0.0152 -vn -0.1816 0.8480 -0.4980 -vn -0.1826 0.9827 -0.0325 -vn -0.2334 0.5855 -0.7764 -vn -0.2499 0.9635 -0.0961 -vn -0.3603 0.3869 -0.8489 -vn -0.1579 0.3215 -0.9336 -vn -0.2319 0.0210 -0.9725 -vn -0.1391 0.2325 -0.9626 -vn -0.1755 0.0234 -0.9842 -vn -0.1077 0.1561 -0.9819 -vn -0.0953 0.0727 -0.9928 -vn -0.1433 0.0025 -0.9897 -vn -0.2369 -0.9574 0.1654 -vn -0.1967 -0.9805 0.0005 -vn -0.2095 -0.9778 0.0002 -vn -0.1639 -0.9050 0.3925 -vn -0.0040 -0.9829 0.1840 -vn -0.1867 -0.9655 0.1816 -vn -0.0488 0.1439 0.9884 -vn -0.0302 0.0665 0.9973 -vn -0.2484 0.8318 -0.4964 -vn -0.1064 -0.6291 -0.7700 -vn -0.0132 -0.4130 -0.9106 -vn 0.0004 -0.2726 0.9621 -vn -0.2701 0.9432 0.1933 -vn -0.2578 0.8723 0.4156 -vn -0.0175 -0.0020 -0.9998 -vn -0.0330 0.0730 -0.9968 -vn -0.0808 0.2585 0.9626 -vn -0.1860 0.6137 -0.7673 -vn 0.0040 -0.1513 0.9885 -vn -0.2735 0.9619 -0.0018 -vn 0.0050 -0.1594 -0.9872 -vn -0.0042 -0.0784 -0.9969 -vn -0.2700 -0.8972 0.3496 -vn -0.1270 -0.7316 0.6698 -vn -0.1432 0.4558 0.8785 -vn -0.1165 0.3909 -0.9130 -vn -0.2488 -0.9498 -0.1895 -vn -0.2029 -0.8650 -0.4589 -vn -0.0160 -0.0018 0.9999 -vn -0.0040 -0.0716 0.9974 -vn -0.2704 0.9382 -0.2162 -vn 0.0061 -0.2604 -0.9655 -vn -0.2015 -0.4100 0.8895 -vn -0.2926 -0.6555 0.6962 -vn -0.2173 0.7026 0.6776 -vn -0.0761 0.2476 -0.9659 -vn -0.2089 -0.9575 -0.1987 -vn -0.0438 -0.4783 0.8771 -vn -0.0517 0.1522 -0.9870 -vn 0.0597 -0.2874 0.9559 -vn 0.1714 -0.5093 0.8433 -vn 0.0744 -0.5047 0.8601 -vn -0.4181 0.9084 -0.0019 -vn -0.4103 0.8915 0.1920 -vn 0.0373 -0.9175 0.3960 -vn -0.4097 0.8867 -0.2142 -vn 0.0666 -0.7540 0.6534 -vn -0.3684 0.7939 -0.4838 -vn 0.0174 -0.0761 -0.9969 -vn -0.0094 -0.0026 -1.0000 -vn -0.1809 0.3828 -0.9060 -vn -0.2800 0.5992 -0.7500 -vn 0.0379 -0.1549 0.9872 -vn 0.0411 -0.1586 -0.9865 -vn -0.1132 0.2377 -0.9647 -vn 0.0157 -0.0708 0.9974 -vn 0.0601 -0.2658 -0.9622 -vn -0.0709 0.1439 -0.9870 -vn -0.0087 -0.0025 1.0000 -vn 0.0713 -0.4334 -0.8984 -vn -0.0386 0.0687 -0.9969 -vn -0.0357 0.0631 0.9974 -vn 0.0599 -0.6737 -0.7366 -vn -0.0699 0.1391 0.9878 -vn 0.0236 -0.8846 -0.4657 -vn -0.1245 0.2555 0.9588 -vn -0.0114 -0.9789 -0.2038 -vn -0.2137 0.4480 0.8681 -vn -0.3154 0.6742 0.6679 -vn -0.0270 -0.9996 -0.0024 -vn -0.3818 0.8267 0.4133 -vn -0.0068 -0.0044 1.0000 -vn 0.0471 -0.0623 0.9969 -vn 0.0316 -0.0696 0.9971 -vn -0.3872 0.5516 -0.7388 -vn -0.5047 0.7254 -0.4681 -vn 0.1187 -0.2918 0.9491 -vn 0.0333 -0.0732 -0.9968 -vn -0.0075 -0.0047 -1.0000 -vn -0.2488 0.3519 -0.9023 -vn 0.0716 -0.1549 0.9853 -vn 0.0735 -0.1540 -0.9853 -vn -0.1526 0.2132 -0.9650 -vn 0.1130 -0.2648 -0.9577 -vn -0.0936 0.1266 -0.9875 -vn 0.1524 -0.4400 -0.8850 -vn -0.0489 0.0594 -0.9970 -vn -0.0464 0.0560 0.9974 -vn 0.1771 -0.6814 -0.7102 -vn -0.0938 0.1254 0.9877 -vn 0.1571 -0.8833 -0.4417 -vn -0.1684 0.2332 0.9577 -vn 0.1197 -0.9743 -0.1909 -vn -0.2912 0.4115 0.8637 -vn 0.0985 -0.9951 -0.0017 -vn -0.4287 0.6152 0.6616 -vn -0.5598 0.8081 0.1833 -vn -0.5205 0.7522 0.4041 -vn 0.1250 -0.9772 0.1717 -vn -0.5702 0.8215 -0.0022 -vn 0.1693 -0.9092 0.3804 -vn 0.1963 -0.7507 0.6308 -vn -0.5579 0.8043 -0.2046 -vn -0.1999 0.2027 0.9586 -vn -0.1183 0.0921 0.9887 -vn -0.1095 0.1088 0.9880 -vn 0.1690 -0.2459 -0.9545 -vn 0.1045 -0.1396 -0.9847 -vn -0.1075 0.1070 -0.9884 -vn -0.1801 0.1821 -0.9666 -vn -0.0033 -0.0034 1.0000 -vn 0.2458 -0.4147 -0.8761 -vn -0.0540 0.0508 -0.9972 -vn -0.0518 0.0488 0.9975 -vn 0.3159 -0.6440 -0.6968 -vn -0.0036 -0.0038 -1.0000 -vn 0.3360 -0.8383 -0.4294 -vn 0.3077 -0.9328 -0.1878 -vn -0.3480 0.3581 0.8664 -vn 0.2955 -0.9553 -0.0014 -vn -0.5222 0.5402 0.6599 -vn -0.6838 0.7090 0.1723 -vn -0.6379 0.6624 0.3928 -vn 0.3112 -0.9351 0.1695 -vn -0.6955 0.7185 -0.0029 -vn 0.3487 -0.8606 0.3712 -vn 0.3457 -0.7042 0.6201 -vn -0.6204 0.6375 -0.4569 -vn -0.6826 0.7043 -0.1947 -vn 0.2776 -0.4779 0.8334 -vn -0.4742 0.4853 -0.7345 -vn 0.1841 -0.2738 0.9440 -vn 0.0487 -0.0647 -0.9967 -vn -0.3001 0.3061 -0.9034 -vn 0.1067 -0.1429 0.9840 -vn -0.7335 0.5560 0.3909 -vn -0.6435 0.3706 0.6698 -vn -0.5942 0.4523 0.6651 -vn 0.5082 -0.7458 -0.4307 -vn 0.4384 -0.5732 -0.6923 -vn -0.2186 0.1690 0.9611 -vn 0.5201 -0.8328 -0.1894 -vn -0.3886 0.2980 0.8719 -vn 0.5159 -0.8566 -0.0017 -vn 0.5228 -0.8352 0.1710 -vn -0.7985 0.6020 -0.0047 -vn -0.7868 0.5949 0.1645 -vn 0.5231 -0.7659 0.3738 -vn -0.7842 0.5900 -0.1921 -vn 0.4766 -0.6256 0.6176 -vn -0.7102 0.5338 -0.4590 -vn 0.3642 -0.4265 0.8279 -vn -0.5371 0.4039 -0.7405 -vn 0.2328 -0.2454 0.9410 -vn 0.0599 -0.0554 -0.9967 -vn -0.0006 -0.0016 -1.0000 -vn -0.3345 0.2529 -0.9078 -vn 0.1306 -0.1268 0.9833 -vn 0.1268 -0.1231 -0.9843 -vn -0.1961 0.1497 -0.9691 -vn 0.0579 -0.0535 0.9969 -vn 0.2094 -0.2199 -0.9528 -vn -0.1161 0.0894 -0.9892 -vn -0.0006 -0.0014 1.0000 -vn 0.3198 -0.3715 -0.8716 -vn -0.0573 0.0443 -0.9974 -vn -0.0548 0.0428 0.9976 -vn -0.8736 0.4866 -0.0072 -vn -0.9035 0.3837 -0.1908 -vn -0.9213 0.3888 -0.0082 -vn 0.6668 -0.7453 -0.0019 -vn -0.8016 0.4528 0.3903 -vn 0.6626 -0.7288 0.1725 -vn -0.8613 0.4816 0.1620 -vn 0.6382 -0.6726 0.3745 -vn -0.8568 0.4776 -0.1945 -vn 0.5610 -0.5557 0.6135 -vn -0.7730 0.4334 -0.4634 -vn 0.4180 -0.3854 0.8226 -vn -0.5775 0.3294 -0.7470 -vn 0.2619 -0.2247 0.9386 -vn 0.0662 -0.0502 -0.9965 -vn 0.0005 -0.0008 -1.0000 -vn -0.3549 0.2079 -0.9115 -vn 0.1449 -0.1163 0.9826 -vn 0.1405 -0.1126 -0.9837 -vn -0.2084 0.1263 -0.9699 -vn 0.0640 -0.0486 0.9968 -vn 0.2348 -0.2011 -0.9510 -vn -0.1229 0.0780 -0.9893 -vn 0.0005 -0.0008 1.0000 -vn 0.3662 -0.3368 -0.8675 -vn -0.0603 0.0401 -0.9974 -vn -0.0576 0.0385 0.9976 -vn 0.5164 -0.5106 -0.6874 -vn -0.1248 0.0799 0.9890 -vn 0.6213 -0.6548 -0.4303 -vn -0.2320 0.1424 0.9622 -vn 0.6601 -0.7265 -0.1911 -vn -0.4153 0.2461 0.8757 -vn 0.7506 -0.6320 -0.1926 -vn 0.8419 -0.5396 -0.0019 -vn 0.8261 -0.5275 -0.1981 -vn 0.6199 -0.4919 0.6113 -vn -0.8156 0.3540 -0.4577 -vn 0.4561 -0.3458 0.8200 -vn -0.6126 0.2767 -0.7404 -vn 0.2827 -0.2044 0.9372 -vn 0.0702 -0.0463 -0.9965 -vn 0.0005 -0.0004 -1.0000 -vn -0.3790 0.1816 -0.9074 -vn 0.1547 -0.1067 0.9822 -vn 0.1498 -0.1032 -0.9833 -vn -0.2224 0.1147 -0.9682 -vn 0.0678 -0.0448 0.9967 -vn 0.2532 -0.1828 -0.9500 -vn -0.1311 0.0727 -0.9887 -vn 0.0005 -0.0005 1.0000 -vn 0.3995 -0.3023 -0.8654 -vn -0.0642 0.0380 -0.9972 -vn -0.0610 0.0361 0.9975 -vn 0.5709 -0.4523 -0.6852 -vn -0.1328 0.0738 0.9884 -vn 0.6968 -0.5735 -0.4308 -vn -0.2472 0.1277 0.9605 -vn -0.4425 0.2131 0.8711 -vn 0.7627 -0.6467 -0.0018 -vn -0.6840 0.3102 0.6602 -vn -0.8479 0.3692 0.3804 -vn 0.7535 -0.6340 0.1741 -vn -0.9089 0.3868 0.1557 -vn 0.7157 -0.5889 0.3755 -vn 0.6684 -0.4133 0.6184 -vn 0.8341 -0.3819 0.3981 -vn 0.7814 -0.4927 0.3829 -vn -0.7262 0.2623 0.6355 -vn -0.8843 0.3001 0.3577 -vn 0.8293 -0.5292 0.1794 -vn -0.9401 0.3087 0.1443 -vn -0.9345 0.3069 -0.1801 -vn -0.9509 0.3094 -0.0089 -vn -0.8530 0.2899 -0.4340 -vn 0.4855 -0.2921 0.8240 -vn -0.6548 0.2374 -0.7176 -vn 0.2977 -0.1739 0.9387 -vn 0.0726 -0.0401 -0.9966 -vn -0.0001 0.0002 -1.0000 -vn -0.4130 0.1638 -0.8959 -vn 0.1614 -0.0918 0.9826 -vn 0.1561 -0.0888 -0.9837 -vn -0.2429 0.1064 -0.9642 -vn 0.0702 -0.0388 0.9968 -vn 0.2663 -0.1555 -0.9513 -vn -0.1417 0.0680 -0.9876 -vn 0.0000 0.0002 1.0000 -vn 0.4245 -0.2549 -0.8688 -vn -0.0685 0.0353 -0.9970 -vn -0.0652 0.0335 0.9973 -vn 0.6145 -0.3793 -0.6918 -vn -0.1434 0.0684 0.9873 -vn 0.7602 -0.4794 -0.4384 -vn -0.2692 0.1171 0.9560 -vn -0.4800 0.1889 0.8567 -vn 0.1645 -0.0719 0.9837 -vn 0.3079 -0.0962 0.9466 -vn 0.3051 -0.1352 0.9427 -vn -0.9573 0.2361 -0.1670 -vn -0.9715 0.2368 -0.0089 -vn 0.7047 -0.3199 0.6332 -vn -0.8864 0.2277 -0.4031 -vn 0.5046 -0.2262 0.8332 -vn -0.7033 0.1950 -0.6836 -vn 0.0738 -0.0317 -0.9968 -vn -0.0007 0.0006 -1.0000 -vn -0.4570 0.1410 -0.8782 -vn 0.1591 -0.0697 -0.9848 -vn -0.2679 0.0931 -0.9589 -vn 0.0715 -0.0307 0.9970 -vn 0.2726 -0.1208 -0.9545 -vn -0.1532 0.0588 -0.9864 -vn -0.0005 0.0005 1.0000 -vn 0.4398 -0.1968 -0.8763 -vn -0.0727 0.0300 -0.9969 -vn -0.0694 0.0285 0.9972 -vn 0.6454 -0.2925 -0.7056 -vn -0.1554 0.0590 0.9861 -vn 0.8099 -0.3710 -0.4544 -vn -0.2965 0.1013 0.9496 -vn 0.8890 -0.4085 -0.2067 -vn -0.5255 0.1593 0.8358 -vn 0.9086 -0.4177 -0.0019 -vn -0.7716 0.2107 0.6001 -vn -0.9145 0.2329 0.3307 -vn 0.8927 -0.4099 0.1874 -vn -0.9623 0.2368 0.1339 -vn -0.0728 0.0213 0.9971 -vn -0.0009 -0.0010 1.0000 -vn -0.0009 0.0003 1.0000 -vn 0.0743 -0.0231 -0.9970 -vn -0.0011 0.0003 -1.0000 -vn -0.5017 0.1077 -0.8583 -vn -0.7490 0.1423 -0.6471 -vn 0.1653 -0.0517 0.9849 -vn 0.1598 -0.0499 -0.9859 -vn -0.2950 0.0720 -0.9528 -vn 0.0719 -0.0223 0.9972 -vn 0.2744 -0.0857 -0.9578 -vn -0.1641 0.0449 -0.9854 -vn 0.4443 -0.1386 -0.8851 -vn -0.0761 0.0223 -0.9969 -vn 0.6612 -0.2059 -0.7214 -vn -0.1674 0.0451 0.9849 -vn 0.8423 -0.2616 -0.4712 -vn -0.3267 0.0777 0.9419 -vn 0.9324 -0.2888 -0.2173 -vn -0.5710 0.1190 0.8122 -vn 0.9554 -0.2954 -0.0021 -vn -0.8104 0.1508 0.5661 -vn -0.9374 0.1623 0.3081 -vn 0.9366 -0.2898 0.1971 -vn -0.9781 0.1648 0.1269 -vn 0.8693 -0.2698 0.4142 -vn -0.9738 0.1643 -0.1571 -vn -0.9862 0.1653 -0.0081 -vn 0.7249 -0.2261 0.6507 -vn -0.9140 0.1598 -0.3730 -vn 0.5117 -0.1599 0.8441 -vn -0.6099 0.0731 0.7891 -vn -0.3748 0.0158 0.9270 -vn -0.3525 0.0496 0.9345 -vn 0.4455 -0.0928 -0.8904 -vn 0.2744 -0.0581 -0.9599 -vn -0.0785 0.0136 -0.9968 -vn -0.1739 0.0286 -0.9843 -vn -0.0757 0.0130 0.9970 -vn 0.6667 -0.1367 -0.7327 -vn -0.0011 -0.0011 -1.0000 -vn -0.1786 0.0288 0.9835 -vn 0.8572 -0.1729 -0.4851 -vn 0.9556 -0.1899 -0.2252 -vn 0.9811 -0.1937 -0.0021 -vn -0.8379 0.0894 0.5384 -vn -0.9503 0.0956 0.2962 -vn 0.9602 -0.1904 0.2045 -vn -0.9875 0.0975 0.1240 -vn 0.8861 -0.1782 0.4280 -vn -0.9837 0.0956 -0.1523 -vn -0.9952 0.0973 -0.0092 -vn 0.7327 -0.1502 0.6638 -vn -0.9304 0.0928 -0.3546 -vn 0.5141 -0.1075 0.8510 -vn -0.7834 0.0844 -0.6158 -vn 0.3085 -0.0657 0.9490 -vn 0.0746 -0.0166 -0.9971 -vn -0.5422 0.0669 -0.8376 -vn 0.1662 -0.0360 0.9854 -vn 0.1601 -0.0343 -0.9865 -vn -0.3182 0.0463 -0.9469 -vn 0.0725 -0.0162 0.9972 -vn -0.9914 0.0406 0.1245 -vn -0.9567 0.0103 0.2909 -vn -0.9560 0.0362 0.2912 -vn 0.9635 -0.1366 -0.2301 -vn 0.8616 -0.1280 -0.4912 -vn -0.6333 0.0236 0.7736 -vn 0.9905 -0.1376 -0.0023 -vn -0.8511 0.0302 0.5241 -vn 0.9684 -0.1359 0.2093 -vn 0.8907 -0.1303 0.4355 -vn -0.9872 0.0373 -0.1550 -vn -0.9991 0.0408 -0.0117 -vn 0.7343 -0.1144 0.6692 -vn -0.9379 0.0314 -0.3454 -vn 0.5163 -0.0865 0.8520 -vn -0.8017 0.0270 -0.5971 -vn 0.3125 -0.0560 0.9483 -vn 0.0755 -0.0170 -0.9970 -vn -0.0008 -0.0068 -1.0000 -vn -0.5687 0.0218 -0.8222 -vn 0.1695 -0.0326 0.9850 -vn 0.1617 -0.0297 -0.9864 -vn -0.3378 0.0160 -0.9411 -vn 0.0743 -0.0172 0.9971 -vn 0.2772 -0.0479 -0.9596 -vn -0.1818 0.0096 -0.9833 -vn -0.0005 -0.0065 1.0000 -vn 0.4484 -0.0744 -0.8907 -vn -0.0803 0.0021 -0.9968 -vn -0.0782 0.0019 0.9969 -vn 0.6690 -0.1053 -0.7358 -vn -0.1886 0.0090 0.9820 -vn 0.9693 -0.1237 0.2124 -vn -0.9922 0.0148 0.1241 -vn 0.8896 -0.1215 0.4402 -vn -0.9876 0.0119 -0.1564 -vn -0.9998 0.0139 -0.0121 -vn 0.7314 -0.1090 0.6732 -vn -0.9396 0.0033 -0.3421 -vn 0.5138 -0.0836 0.8538 -vn -0.8100 -0.0038 -0.5864 -vn 0.3123 -0.0545 0.9484 -vn 0.0739 -0.0191 -0.9971 -vn -0.0028 -0.0112 -0.9999 -vn -0.5826 -0.0057 -0.8127 -vn 0.1695 -0.0327 0.9850 -vn 0.1603 -0.0299 -0.9866 -vn -0.3496 -0.0038 -0.9369 -vn 0.0736 -0.0190 0.9971 -vn 0.2765 -0.0459 -0.9599 -vn -0.1882 -0.0030 -0.9821 -vn -0.0024 -0.0107 0.9999 -vn 0.4470 -0.0707 -0.8917 -vn -0.0836 -0.0055 -0.9965 -vn -0.0826 -0.0062 0.9966 -vn 0.6670 -0.0996 -0.7384 -vn -0.1977 -0.0055 0.9803 -vn 0.8608 -0.1198 -0.4946 -vn -0.3889 -0.0069 0.9212 -vn 0.9646 -0.1251 -0.2320 -vn -0.6466 -0.0061 0.7628 -vn 0.9923 -0.1241 -0.0017 -vn -0.8564 0.0001 0.5164 -vn 0.0154 -0.9999 0.0000 -vn -0.1395 0.0000 -0.9902 -vn -0.1396 0.0000 -0.9902 -vn 0.0000 1.0000 0.0000 -vn -0.1395 -0.0000 0.9902 -vn -0.0000 -1.0000 -0.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.1516 0.2200 -0.9636 -vn 0.1758 0.2356 -0.9558 -vn 0.1392 0.0463 -0.9892 -vn 0.0748 0.1179 0.9902 -vn 0.1515 0.2198 0.9637 -vn -0.0034 -1.0000 0.0000 -vn -0.0069 -1.0000 -0.0002 -vn -0.0046 -1.0000 -0.0004 -vn -0.1201 0.9905 0.0674 -vn -0.1692 0.9853 -0.0243 -vn -0.1685 0.9854 0.0239 -vn 0.6715 0.0000 0.7410 -vn 0.7526 0.0000 -0.6585 -vn -0.6431 0.7658 0.0000 -vn -0.7812 0.6243 0.0000 -vn -0.7823 0.6229 0.0000 -vn -0.9072 0.4206 0.0000 -vn -0.0830 -0.0895 -0.9925 -vn -0.0860 -0.0928 -0.9920 -vn -0.1761 -0.1900 -0.9658 -vn -0.0943 -0.1009 0.9904 -vn -0.0904 -0.0966 0.9912 -vn -0.1920 -0.2053 0.9597 -vn -1.0000 -0.0042 -0.0054 -vn -0.9999 0.0000 -0.0146 -vn -1.0000 -0.0047 -0.0039 -vn -0.1097 0.0027 -0.9940 -vn -0.1083 0.0052 -0.9941 -vn -0.1113 0.0000 -0.9938 -vn -0.1083 0.0052 0.9941 -vn -0.1097 0.0027 0.9940 -vn -0.1113 -0.0000 0.9938 -vn -0.0161 0.9998 0.0071 -vn -0.0209 0.9996 0.0196 -vn -0.0148 0.9999 0.0033 -vn -0.1869 0.0000 0.9824 -vn -0.0747 -0.0000 0.9972 -vn -0.1869 0.0000 -0.9824 -vn -0.0747 0.0000 -0.9972 -vn -0.0891 0.0000 -0.9960 -vn -0.3806 0.9172 -0.1177 -vn -0.2935 0.9533 0.0714 -vn -0.3067 0.9492 -0.0706 -vn -0.2421 0.0000 0.9702 -vn -0.5322 0.0000 0.8466 -vn -0.5326 0.0000 0.8463 -vn -0.3690 0.9219 0.1179 -vn -0.7016 0.6804 0.2118 -vn -0.5626 0.8144 0.1426 -vn -0.5711 0.8205 0.0246 -vn -0.7017 0.6830 -0.2028 -vn -0.5670 0.8125 -0.1359 -vn -0.5723 0.8197 -0.0233 -vn -0.6911 0.7061 -0.1540 -vn -0.6904 0.7069 0.1536 -vn -0.9181 0.0000 -0.3963 -vn -0.8223 0.0000 -0.5691 -vn -0.9182 0.0000 -0.3961 -vn -0.8221 0.0000 -0.5694 -vn -0.6947 0.0000 -0.7193 -vn -0.6944 0.0000 -0.7196 -vn -0.5326 -0.0000 -0.8463 -vn -0.8419 0.5339 0.0783 -vn -0.8379 0.5403 -0.0780 -vn 0.0621 0.0017 -0.9981 -vn 0.1966 0.0131 -0.9804 -vn -0.0307 -0.0882 -0.9956 -vn -0.5322 -0.0000 -0.8466 -vn -0.2529 -0.0096 -0.9674 -vn -0.6944 0.0000 0.7196 -vn -0.6947 0.0000 0.7193 -vn -0.0332 0.0009 0.9994 -vn -0.2403 0.0005 0.9707 -vn -0.8221 0.0000 0.5694 -vn -0.8223 0.0000 0.5691 -vn -0.9181 0.0000 0.3963 -vn -0.9182 0.0000 0.3961 -vn -0.9793 0.0000 0.2026 -vn -0.9793 0.0000 0.2025 -vn -0.9793 0.0000 -0.2025 -vn -0.9793 0.0000 -0.2026 -vn -0.0009 -0.9193 0.3935 -vn 0.0820 -0.9598 0.2683 -vn 0.1816 -0.8890 0.4204 -vn -0.0073 -0.9245 -0.3811 -vn 0.0831 -0.9592 -0.2703 -vn 0.0009 -0.9658 -0.2591 -vn 0.1076 -0.8409 0.5304 -vn -0.0560 -0.8518 0.5208 -vn 0.0797 -0.9830 -0.1652 -vn -0.0000 -0.9864 -0.1643 -vn 0.0140 -0.6644 0.7472 -vn 0.0000 -0.9968 -0.0795 -vn 0.0807 -0.9934 -0.0810 -vn 0.0808 -0.9967 0.0000 -vn 0.0807 -0.9934 0.0810 -vn -0.0000 -0.9968 0.0795 -vn -0.0653 -0.6526 -0.7549 -vn -0.0307 -0.4893 -0.8716 -vn 0.1225 -0.6705 -0.7317 -vn 0.0797 -0.9830 0.1652 -vn -0.0000 -0.9864 0.1644 -vn 0.0850 -0.8460 -0.5263 -vn -0.1037 -0.8380 -0.5357 -vn 0.0009 -0.9659 0.2591 -vn 0.1647 -0.8966 -0.4110 -vn 0.1663 -0.9485 0.2696 -vn 0.1772 -0.9441 -0.2780 -vn 0.1667 -0.9697 -0.1786 -vn 0.1937 -0.6083 0.7697 -vn 0.1663 -0.9824 -0.0852 -vn 0.0751 -0.4471 0.8914 -vn -0.0069 -0.4537 0.8911 -vn 0.1670 -0.9860 0.0000 -vn 0.1663 -0.9824 0.0852 -vn -0.3032 -0.6963 -0.6505 -vn 0.1647 -0.9705 0.1758 -vn 0.2605 -0.9613 -0.0898 -vn 0.2639 -0.9645 0.0000 -vn 0.2578 -0.9623 0.0865 -vn 0.2537 -0.9446 0.2083 -vn 0.2344 -0.7751 -0.5868 -vn 0.2856 -0.8983 0.3339 -vn 0.2361 -0.9228 -0.3046 -vn 0.2460 -0.9496 -0.1944 -vn 0.3545 -0.7893 -0.5014 -vn 0.4529 -0.7116 0.5371 -vn 0.3974 -0.8430 -0.3626 -vn 0.3359 -0.7186 0.6090 -vn 0.4129 -0.8797 -0.2358 -vn 0.3623 -0.9274 -0.0930 -vn 0.3740 -0.9274 0.0000 -vn 0.3617 -0.9288 0.0806 -vn 0.4019 -0.8787 0.2577 -vn 0.4001 -0.5603 -0.7253 -vn 0.5125 -0.7335 0.4464 -vn 0.5391 -0.8313 -0.1353 -vn 0.5268 -0.8500 -0.0000 -vn 0.5449 -0.8276 0.1351 -vn 0.2497 -0.4616 -0.8512 -vn 0.3171 -0.4528 -0.8333 -vn 0.7394 -0.5835 0.3359 -vn 0.5838 -0.5101 -0.6317 -vn 0.6845 -0.5562 -0.4712 -vn 0.5186 -0.4413 0.7323 -vn 0.7353 -0.5795 -0.3515 -vn 0.5858 -0.5199 0.6218 -vn 0.3643 -0.4979 0.7870 -vn 0.8105 -0.5577 -0.1791 -vn 0.5920 -0.8059 -0.0000 -vn 0.8084 -0.5579 0.1875 -vn 0.4116 -0.3229 -0.8523 -vn 0.7043 -0.5393 0.4616 -vn 0.9485 -0.3169 0.0000 -vn 0.9306 -0.3110 0.1931 -vn 0.8750 -0.3497 0.3348 -vn 0.5151 -0.3509 -0.7820 -vn 0.6857 -0.3016 -0.6624 -vn 0.8035 -0.3171 -0.5038 -vn 0.8696 -0.3295 -0.3678 -vn 0.9314 -0.3112 -0.1890 -vn 0.5819 -0.2331 0.7791 -vn 0.2095 0.3525 -0.9121 -vn 0.2467 0.4150 -0.8757 -vn 0.2780 0.3555 -0.8924 -vn 0.8514 0.3083 0.4243 -vn 0.8497 0.4873 0.2012 -vn 0.7070 0.6276 0.3260 -vn 0.4776 0.4578 -0.7499 -vn 0.5249 0.3549 -0.7737 -vn 0.7811 0.2963 0.5496 -vn 0.7548 0.2737 0.5961 -vn 0.6661 0.3575 -0.6546 -vn 0.5915 0.5505 -0.5891 -vn 0.6294 0.4756 0.6146 -vn 0.7219 0.2655 0.6391 -vn 0.7854 0.3573 -0.5053 -vn 0.7739 0.3431 -0.5323 -vn 0.5392 0.3215 0.7784 -vn 0.3968 0.5381 0.7437 -vn 0.8648 0.3390 -0.3704 -vn 0.7403 0.5838 -0.3333 -vn 0.3007 0.3589 0.8836 -vn 0.3261 0.3306 0.8857 -vn 0.8495 0.4881 -0.2000 -vn 0.9277 0.3118 -0.2054 -vn 0.2268 0.3598 0.9051 -vn 0.0008 0.4703 0.8825 -vn 0.8676 0.4972 -0.0000 -vn 0.9589 0.2838 0.0000 -vn 0.3508 0.3751 -0.8580 -vn 0.0070 0.3962 -0.9181 -vn -0.0168 0.4004 0.9162 -vn 0.9267 0.3118 0.2097 -vn 0.4885 0.8651 -0.1137 -vn 0.6210 0.7838 -0.0000 -vn 0.4823 0.8644 0.1420 -vn 0.2810 0.9383 0.2017 -vn 0.4345 0.8418 0.3202 -vn 0.3320 0.9209 0.2041 -vn 0.5262 0.6767 -0.5150 -vn 0.5224 0.6287 0.5760 -vn 0.2810 0.9258 -0.2531 -vn 0.4629 0.7926 -0.3969 -vn 0.3924 0.8863 -0.2460 -vn 0.1645 0.4730 0.8656 -vn 0.2635 0.9646 -0.0047 -vn 0.1306 0.9896 -0.0598 -vn 0.1465 0.9857 0.0835 -vn 0.1269 0.5408 -0.8315 -vn 0.2738 0.7379 -0.6169 -vn -0.0083 0.9999 -0.0135 -vn 0.1938 0.9520 0.2370 -vn 0.1949 0.9685 0.1550 -vn 0.0678 0.9830 -0.1704 -vn 0.0848 0.8716 -0.4828 -vn -0.2816 -0.9309 0.2326 -vn 0.0753 0.9797 -0.1858 -vn 0.1198 0.9692 -0.2151 -vn 0.2722 0.9107 0.3106 -vn 0.2251 0.6016 0.7665 -vn 0.0848 0.9964 -0.0037 -vn 0.1517 0.9812 0.1195 -vn 0.0537 0.9852 0.1628 -vn 0.0472 0.9626 0.2667 -vn 0.0143 0.6488 0.7608 -vn -0.0547 0.6579 -0.7511 -vn -0.0430 0.8569 0.5137 -vn -0.0343 0.9172 -0.3969 -vn -0.0399 0.9847 -0.1695 -vn -0.0581 0.9856 0.1591 -vn -0.2468 0.8061 -0.5379 -vn -0.1819 0.9581 -0.2214 -vn -0.1402 0.9759 0.1669 -vn -0.1091 0.5155 0.8499 -vn -0.2831 0.7260 0.6267 -vn -0.1589 0.9752 -0.1542 -vn -0.0833 0.9965 0.0121 -vn -0.1660 0.9821 0.0888 -vn -0.2344 0.4491 -0.8622 -vn -0.2056 0.9570 0.2048 -vn -0.2586 0.9660 0.0043 -vn -0.1771 0.9690 0.1725 -vn -0.3249 0.9219 -0.2109 -vn -0.2976 0.9335 -0.2000 -vn -0.2831 0.3861 0.8780 -vn -0.3962 0.5580 -0.7291 -vn -0.0870 0.9878 0.1294 -vn -0.4287 0.7890 -0.4400 -vn -0.6017 0.7694 0.2145 -vn -0.7742 0.5163 0.3660 -vn -0.6479 0.6377 0.4166 -vn -0.5043 0.7900 0.3486 -vn -0.6209 0.5000 -0.6038 -vn -0.6207 0.4616 0.6338 -vn -0.6417 0.5477 0.5369 -vn -0.6590 0.6260 -0.4169 -vn -0.4867 0.4085 0.7722 -vn -0.7756 0.5111 -0.3703 -vn -0.5990 0.7746 -0.2029 -vn -0.3700 0.9290 0.0000 -vn -0.8847 0.4196 -0.2030 -vn -0.8185 0.5745 -0.0000 -vn -0.8981 0.4397 -0.0000 -vn -0.8802 0.4176 0.2254 -vn -0.9298 0.3095 0.1993 -vn -0.8650 0.3507 0.3588 -vn -0.3237 0.3670 -0.8721 -vn -0.5376 0.3499 -0.7672 -vn -0.7889 0.3397 0.5120 -vn -0.6705 0.3486 -0.6549 -vn -0.6733 0.3581 0.6468 -vn -0.7818 0.3346 -0.5261 -vn -0.5360 0.3700 0.7588 -vn -0.8726 0.3272 -0.3626 -vn -0.3109 0.3928 0.8655 -vn -0.9341 0.3006 -0.1925 -vn -0.1877 0.3951 0.8993 -vn -0.9585 0.2852 -0.0000 -vn -0.1963 0.3915 -0.8990 -vn -0.1789 0.3761 -0.9092 -vn -0.8022 -0.3246 0.5010 -vn -0.7267 -0.5894 0.3529 -vn -0.7960 -0.3199 0.5139 -vn -0.5578 -0.2641 -0.7869 -vn -0.5897 -0.5087 -0.6272 -vn -0.6977 -0.2756 -0.6613 -vn -0.6998 -0.2981 0.6491 -vn -0.5765 -0.5275 0.6240 -vn -0.7946 -0.3136 -0.5198 -vn -0.7988 -0.3229 -0.5076 -vn -0.5339 -0.3415 0.7735 -vn -0.4511 -0.5106 0.7320 -vn -0.7267 -0.5894 -0.3529 -vn -0.8603 -0.3521 -0.3687 -vn -0.4145 -0.3255 0.8498 -vn -0.8093 -0.5609 -0.1745 -vn -0.9335 -0.3119 -0.1766 -vn -0.9485 -0.3169 -0.0000 -vn -0.9335 -0.3119 0.1766 -vn -0.8093 -0.5609 0.1745 -vn -0.8603 -0.3521 0.3688 -vn -0.4103 -0.2800 -0.8679 -vn -0.4815 -0.4611 -0.7453 -vn -0.1054 -0.4502 0.8867 -vn -0.3120 -0.4696 0.8259 -vn -0.5268 -0.8500 -0.0000 -vn -0.5920 -0.8059 -0.0000 -vn -0.5390 -0.8314 0.1352 -vn -0.1149 -0.4548 -0.8831 -vn -0.2834 -0.4808 -0.8298 -vn -0.5393 -0.8312 -0.1353 -vn -0.3353 -0.7944 -0.5065 -vn -0.4077 -0.8358 0.3676 -vn -0.3334 -0.7916 0.5121 -vn -0.4101 -0.8366 -0.3631 -vn -0.5218 -0.7665 -0.3745 -vn -0.2576 -0.7695 0.5844 -vn -0.4129 -0.8797 -0.2358 -vn -0.3623 -0.9274 -0.0930 -vn -0.3740 -0.9274 0.0000 -vn -0.3623 -0.9274 0.0930 -vn -0.4129 -0.8797 0.2358 -vn -0.2929 -0.7285 -0.6193 -vn -0.5218 -0.7665 0.3745 -vn -0.2639 -0.9645 0.0000 -vn -0.2605 -0.9613 0.0898 -vn -0.2512 -0.9504 0.1834 -vn -0.2404 -0.9136 0.3280 -vn -0.2397 -0.9157 -0.3227 -vn -0.2512 -0.9504 -0.1834 -vn -0.2605 -0.9613 -0.0898 -vn -0.1678 -0.9403 0.2961 -vn -0.1584 -0.9024 0.4007 -vn -0.1658 -0.9403 -0.2973 -vn -0.1622 -0.9715 -0.1727 -vn -0.1046 -0.6414 0.7600 -vn -0.1663 -0.9824 -0.0852 -vn -0.1670 -0.9860 0.0000 -vn -0.1663 -0.9824 0.0852 -vn -0.1622 -0.9715 0.1727 -vn -0.1614 -0.8953 -0.4151 -vn -0.0808 -0.9967 0.0000 -vn -0.0807 -0.9934 0.0810 -vn -0.0797 -0.9830 0.1652 -vn -0.0858 -0.9587 0.2710 -vn -0.0865 -0.9583 -0.2724 -vn -0.0797 -0.9830 -0.1652 -vn -0.0807 -0.9934 -0.0810 -vn -0.2448 0.9696 0.0001 -vn -0.0769 0.9970 0.0110 -vn -0.2451 0.9695 -0.0020 -vn 1.0000 0.0015 0.0000 -vn -0.0741 0.0208 0.9970 -vn -0.0627 0.0377 0.9973 -vn -0.0461 0.1200 0.9917 -vn 0.1153 -0.9933 -0.0005 -vn 0.1149 -0.9934 -0.0047 -vn 0.1148 -0.9934 -0.0049 -vn -0.3409 0.9401 0.0000 -vn 0.0801 0.9968 0.0065 -vn -0.0774 0.9969 0.0133 -vn 0.2883 0.9576 -0.0006 -vn 0.2879 0.9577 -0.0014 -vn 0.2885 0.9575 0.0000 -vn -0.0064 0.0242 -0.9997 -vn 0.0104 -0.0106 -0.9999 -vn -0.0409 0.1158 -0.9924 -vn -0.9999 0.0044 -0.0100 -vn -1.0000 0.0015 -0.0035 -vn 0.9796 -0.2011 -0.0001 -vn 0.8584 -0.5131 0.0029 -vn 0.8518 -0.5238 -0.0013 -vn -0.0546 0.9985 0.0000 -vn -0.0661 0.9978 0.0105 -vn -0.0756 0.9965 0.0368 -vn -0.0793 0.9957 0.0471 -vn 0.0653 0.9979 0.0002 -vn -0.1229 0.9924 0.0023 -vn 0.0672 0.9977 0.0009 -vn 0.1591 0.9873 0.0015 -vn 0.1602 0.9871 0.0030 -vn 0.9596 0.2813 -0.0041 -vn 0.9320 -0.3624 -0.0051 -vn 0.9662 0.2577 -0.0041 -vn -0.9506 0.3101 0.0093 -vn -0.9511 0.3088 0.0105 -vn -0.9487 0.3162 0.0038 -vn -0.1218 0.9925 0.0051 -vn -0.4544 0.8908 0.0044 -vn -0.6708 0.7416 0.0043 -vn -0.4554 0.8902 0.0105 -vn 0.6623 -0.7492 -0.0047 -vn 0.8156 -0.5786 -0.0070 -vn 0.8140 -0.5808 -0.0095 -vn -0.9710 -0.2389 0.0012 -vn -0.9675 -0.2527 0.0052 -vn -0.9720 -0.2349 -0.0000 -vn 0.6496 -0.7603 -0.0008 -vn 0.6518 -0.7584 -0.0065 -vn 0.5138 -0.8579 -0.0059 -vn 0.5051 -0.8631 0.0000 -vn 0.9808 -0.1950 0.0015 -vn -0.9588 -0.2842 -0.0043 -vn -0.9995 -0.0317 -0.0040 -vn -0.9995 -0.0308 -0.0033 -vn -0.4624 -0.8867 -0.0017 -vn -0.6539 -0.7566 -0.0069 -vn -0.6580 -0.7529 -0.0142 -vn -0.2465 -0.9691 0.0003 -vn -0.4581 -0.8889 0.0020 -vn 0.4252 -0.9051 -0.0011 -vn 0.3928 -0.9195 -0.0102 -vn 0.3991 -0.9169 -0.0085 -vn 0.8709 0.4915 -0.0038 -vn 0.8788 0.4773 0.0021 -vn 0.8819 0.4714 0.0045 -vn 0.2464 0.9692 0.0010 -vn 0.8699 0.4932 -0.0049 -vn 0.7885 0.6150 -0.0035 -vn 0.8719 0.4897 -0.0023 -vn 0.9946 0.1036 0.0020 -vn 0.9950 0.0997 0.0053 -vn -0.9751 0.2215 0.0005 -vn -0.9755 0.2202 0.0026 -vn 0.2572 0.9664 0.0010 -vn 0.2574 0.9663 0.0008 -vn 0.2554 0.9668 0.0027 -vn 0.9878 -0.1557 0.0051 -vn 0.9877 -0.1562 0.0059 -vn 0.4313 -0.9022 0.0007 -vn 0.0274 -0.0022 -0.9996 -vn 0.0243 -0.0174 -0.9996 -vn 0.0278 0.0000 -0.9996 -vn 0.7849 -0.6196 0.0021 -vn 0.7839 -0.6209 0.0011 -vn 0.7861 -0.6181 0.0032 -vn 0.0242 -0.0238 0.9994 -vn 0.0284 -0.0029 0.9996 -vn 0.0290 0.0000 0.9996 -vn -0.0358 -0.9994 0.0005 -vn -0.0362 -0.9993 0.0015 -vn -0.0356 -0.9994 -0.0000 -vn 0.0230 0.9997 0.0000 -vn 0.0417 0.9991 0.0000 -vn -0.0088 -1.0000 -0.0000 -vn -0.6944 -0.7196 -0.0000 -vn -0.7894 -0.6139 -0.0000 -vn -0.7973 -0.6036 -0.0000 -vn -0.8746 -0.4849 -0.0000 -vn -0.1565 -0.0282 0.9873 -vn -0.1438 -0.0398 0.9888 -vn -0.1164 -0.0645 0.9911 -vn 0.1438 0.0398 -0.9888 -vn 0.1565 0.0282 -0.9873 -vn 0.1164 0.0645 -0.9911 -vn 0.9543 0.0000 0.2987 -vn 0.9543 0.0000 -0.2987 -vn 0.7772 -0.0060 -0.6292 -vn 0.7802 -0.0031 -0.6256 -vn 0.7834 0.0000 -0.6216 -vn 0.0481 0.9981 0.0389 -vn 0.8040 -0.0069 0.5945 -vn 0.8004 -0.0032 0.5995 -vn 0.7971 -0.0000 0.6039 -vn 0.0684 0.9974 -0.0244 -vn 0.0003 -0.4065 0.9136 -vn 0.0004 -0.0000 1.0000 -vn 0.0003 -0.4067 0.9136 -vn -0.0004 0.2079 -0.9781 -vn -0.0004 -0.2077 -0.9782 -vn -0.0004 -0.2079 -0.9781 -vn 0.0004 0.0002 1.0000 -vn 0.0003 0.4067 0.9136 -vn -0.0003 -0.5876 -0.8091 -vn -0.0003 -0.5878 -0.8090 -vn 0.0003 0.4070 0.9135 -vn 0.0003 0.7431 0.6692 -vn -0.0002 -0.8659 -0.5001 -vn -0.0002 -0.8660 -0.5000 -vn 0.0002 0.7433 0.6690 -vn 0.0001 0.9510 0.3090 -vn -0.0000 -0.9945 -0.1046 -vn -0.0000 -0.9945 -0.1045 -vn 0.0001 0.9511 0.3089 -vn -0.0000 0.9945 -0.1045 -vn 0.0001 -0.9510 0.3091 -vn -0.0000 0.9945 -0.1046 -vn -0.0002 0.8660 -0.5000 -vn 0.0002 -0.7431 0.6691 -vn -0.0003 0.5879 -0.8089 -vn -0.0003 0.5878 -0.8090 -vn 0.0002 -0.7431 0.6692 -vn -0.0004 0.2081 -0.9781 -vn -0.6913 0.2933 -0.6604 -vn -0.7997 -0.0000 -0.6003 -vn -0.7991 0.2452 -0.5489 -vn -0.6913 -0.2933 -0.6604 -vn -0.6921 -0.0000 -0.7218 -vn -0.6890 -0.5378 -0.4858 -vn -0.7991 -0.2452 -0.5489 -vn -0.6684 0.5524 0.4981 -vn -0.7877 0.5326 0.3097 -vn -0.8212 0.3816 0.4243 -vn -0.6856 -0.6919 -0.2264 -vn -0.7972 -0.4496 -0.4029 -vn -0.6781 0.6372 0.3663 -vn -0.7910 0.6082 0.0661 -vn -0.6818 -0.7277 0.0749 -vn -0.7944 -0.5783 -0.1858 -vn -0.6818 0.7277 0.0749 -vn -0.7944 0.5783 -0.1858 -vn -0.6781 -0.6372 0.3663 -vn -0.7910 -0.6082 0.0661 -vn -0.6856 0.6919 -0.2264 -vn -0.7972 0.4496 -0.4029 -vn -0.6752 -0.4343 0.5962 -vn -0.7877 -0.5326 0.3097 -vn -0.6890 0.5378 -0.4858 -vn -0.6660 -0.3031 0.6816 -vn -0.7851 -0.3630 0.5019 -vn -0.8193 -0.1772 0.5453 -vn -0.9239 -0.2230 0.3108 -vn -0.9332 0.0000 -0.3595 -vn -0.9328 0.1480 -0.3287 -vn -0.8905 0.0944 0.4451 -vn -0.9229 -0.0792 0.3767 -vn -0.9239 0.2230 0.3108 -vn -0.9229 0.0792 0.3767 -vn -0.9328 -0.1480 -0.3287 -vn -0.9257 0.3260 0.1921 -vn -0.9316 -0.2719 -0.2411 -vn -0.9278 0.3707 0.0428 -vn -0.9299 -0.3509 -0.1102 -vn -0.9299 0.3509 -0.1102 -vn -0.9278 -0.3707 0.0428 -vn -0.9316 0.2719 -0.2411 -vn -0.9257 -0.3260 0.1921 -vn -0.9490 0.1289 -0.2876 -vn -0.9483 0.2367 -0.2114 -vn -0.9440 -0.1933 0.2675 -vn -0.9493 0.0000 -0.3143 -vn -0.9435 0.0687 0.3242 -vn -0.9435 -0.0687 0.3242 -vn -0.9440 0.1933 0.2675 -vn -0.9490 -0.1289 -0.2876 -vn -0.9449 0.2828 0.1649 -vn -0.9483 -0.2367 -0.2113 -vn -0.9461 0.3220 0.0355 -vn -0.9473 -0.3053 -0.0975 -vn -0.9473 0.3052 -0.0976 -vn -0.9461 -0.3220 0.0355 -vn -0.9449 -0.2828 0.1649 -vn -0.9767 0.0875 -0.1961 -vn -0.9765 0.1602 -0.1439 -vn -0.9758 -0.1283 0.1769 -vn -0.9767 -0.0000 -0.2145 -vn -0.9758 -0.0454 0.2141 -vn -0.9758 0.1283 0.1769 -vn -0.9758 0.0455 0.2141 -vn -0.9767 -0.0875 -0.1961 -vn -0.9760 0.1885 0.1092 -vn -0.9766 -0.1602 -0.1439 -vn -0.9762 0.2157 0.0230 -vn -0.9764 -0.2056 -0.0665 -vn -0.9764 0.2056 -0.0664 -vn -0.9762 -0.2158 0.0230 -vn -0.9760 -0.1885 0.1092 -vn 0.9970 0.0169 -0.0759 -vn 0.9968 0.0464 -0.0653 -vn 0.9968 0.0481 -0.0643 -vn 0.9970 -0.0672 -0.0394 -vn 0.9971 -0.0452 -0.0618 -vn 0.9970 -0.0679 -0.0383 -vn 0.9971 -0.0448 -0.0620 -vn 0.9971 -0.0157 -0.0748 -vn 0.9965 0.0718 -0.0426 -vn 0.9965 0.0733 -0.0406 -vn 0.9970 0.0157 -0.0761 -vn 0.9962 0.0869 -0.0102 -vn 0.9961 0.0875 -0.0076 -vn -0.9965 -0.0497 -0.0679 -vn -0.9886 -0.1300 -0.0763 -vn -0.9963 -0.0746 -0.0421 -vn 0.9958 0.0872 0.0274 -vn 0.9958 0.0870 0.0296 -vn -0.9965 -0.0172 -0.0823 -vn -0.9890 -0.0868 -0.1201 -vn 0.9955 0.0705 0.0627 -vn 0.9955 0.0696 0.0638 -vn -0.9886 0.0303 -0.1472 -vn -0.9963 0.0186 -0.0834 -vn -0.9879 0.0898 -0.1263 -vn -0.9961 0.0529 -0.0706 -vn 0.9954 0.0390 0.0875 -vn 0.9954 0.0388 0.0872 -vn -0.9869 0.1388 -0.0824 -vn -0.9958 0.0805 -0.0446 -vn 0.9965 -0.0802 0.0250 -vn 0.9967 -0.0803 -0.0072 -vn 0.9964 -0.0796 0.0275 -vn -0.9856 0.1678 -0.0197 -vn -0.9954 0.0960 -0.0084 -vn -0.9843 0.1682 0.0528 -vn -0.9949 0.0950 0.0324 -vn -0.9833 0.1358 0.1209 -vn -0.9946 0.0762 0.0698 -vn -0.9829 0.0749 0.1680 -vn -0.9945 0.0425 0.0955 -vn 0.9955 0.0007 0.0946 -vn -0.9946 0.0008 0.1036 -vn 0.9955 -0.0005 0.0945 -vn 0.9957 -0.0362 0.0852 -vn -0.9878 -0.1546 -0.0179 -vn -0.9961 -0.0882 -0.0079 -vn -0.9867 -0.1549 0.0483 -vn -0.9957 -0.0874 0.0301 -vn 0.9958 -0.0381 0.0835 -vn 0.9961 -0.0645 0.0602 -vn -0.9855 -0.1276 0.1121 -vn -0.9953 -0.0708 0.0660 -vn 0.9961 -0.0661 0.0581 -vn -0.9949 -0.0397 0.0927 -vn -0.9833 -0.0010 0.1822 -vn 0.9968 -0.0799 -0.0092 -vn -0.9842 -0.0736 0.1610 -vn 0.0000 0.8660 0.5000 -vn 0.0000 0.5878 0.8090 -vn 0.0000 -0.9511 -0.3090 -vn 0.0000 -0.7431 -0.6691 -vn 0.0000 0.9945 0.1045 -vn 0.0000 -0.9945 0.1045 -vn 0.0000 -0.8660 0.5000 -vn 0.0000 0.7431 -0.6691 -vn 0.0000 0.9511 -0.3090 -vn 0.0000 -0.5878 0.8090 -vn 0.0000 0.4067 -0.9135 -vn 0.0000 -0.2079 0.9781 -vn 0.0000 0.2079 0.9781 -vn 0.0000 -0.4067 -0.9135 -vn 0.9983 0.0554 -0.0186 -vn 0.9983 0.0578 0.0063 -vn 0.0002 0.7431 0.6691 -vn 0.0002 0.8660 0.5000 -vn 0.0002 0.7432 0.6691 -vn 0.0002 -0.8660 0.5001 -vn 0.0003 -0.5878 0.8090 -vn 0.0002 -0.8660 0.5000 -vn 0.0000 -0.9945 0.1046 -vn 0.0002 0.8661 0.4999 -vn 0.0000 0.9945 0.1046 -vn 0.0003 -0.5877 0.8091 -vn -0.0002 -0.7430 -0.6693 -vn -0.0003 -0.4067 -0.9135 -vn -0.0003 -0.4065 -0.9136 -vn -0.0002 0.7432 -0.6690 -vn -0.0001 0.9511 -0.3090 -vn -0.0001 -0.9511 -0.3090 -vn -0.0001 -0.9510 -0.3091 -vn -0.0003 -0.0000 -1.0000 -vn -0.0003 0.0002 -1.0000 -vn -0.0002 -0.7432 -0.6691 -vn -0.0003 0.4069 -0.9135 -vn -0.0002 0.7432 -0.6691 -vn -0.0003 0.4068 -0.9135 -vn -0.9982 -0.0107 0.0588 -vn -0.9983 -0.0334 0.0484 -vn -0.9982 -0.0106 0.0585 -vn -0.9983 -0.0429 -0.0402 -vn -0.9983 -0.0551 -0.0185 -vn 0.9982 -0.0261 -0.0546 -vn 0.9982 -0.0018 -0.0598 -vn 0.9982 -0.0019 -0.0601 -vn -0.9981 0.0615 0.0063 -vn -0.9981 0.0540 0.0301 -vn -0.9981 0.0589 -0.0185 -vn -0.9981 0.0589 -0.0186 -vn 0.9981 -0.0587 -0.0184 -vn 0.9981 -0.0615 0.0063 -vn 0.9981 -0.0587 -0.0185 -vn -0.9983 -0.0581 0.0063 -vn -0.9983 -0.0502 0.0300 -vn -0.9983 -0.0501 0.0300 -vn -0.9982 0.0018 -0.0601 -vn -0.9982 -0.0226 -0.0547 -vn 0.9983 0.0427 -0.0400 -vn -0.9982 0.0142 0.0585 -vn -0.9981 0.0371 0.0486 -vn 0.9981 -0.0464 -0.0402 -vn 0.9981 -0.0262 -0.0549 -vn -0.9981 0.0463 -0.0400 -vn -0.9981 0.0462 -0.0400 -vn 0.0000 0.2077 -0.9782 -vn 0.0000 -0.2077 -0.9782 -vn 0.0000 -0.2081 -0.9781 -vn 0.0000 -0.7432 0.6690 -vn 0.0000 -0.9510 0.3091 -vn 0.0000 -0.7430 0.6693 -vn 0.0000 -0.5879 -0.8089 -vn 0.0000 -0.8660 -0.5001 -vn 0.0000 -0.8661 -0.4999 -vn 0.0000 0.9511 0.3089 -vn 0.0000 0.8660 -0.5001 -vn 0.0000 0.5879 -0.8089 -vn 0.0000 0.5876 -0.8091 -vn 0.0000 0.4065 0.9136 -vn 0.0000 0.4069 0.9135 -vn 0.0000 -0.5876 -0.8091 -vn 0.0000 -0.9511 0.3090 -vn 0.0000 0.8661 -0.4999 -vn 0.0000 0.9510 0.3091 -vn 0.0000 0.7432 0.6690 -vn 0.0000 -0.4069 0.9135 -vn 0.0000 -0.4065 0.9136 -vn 0.0000 0.2081 -0.9781 -vn 0.0000 -0.0002 1.0000 -vn 0.0000 0.7430 0.6693 -vn -0.9981 0.0262 -0.0549 -vn 0.9981 -0.0465 -0.0402 -vn 0.9982 0.0226 -0.0550 -vn 0.9982 -0.0143 0.0585 -vn 0.9982 0.0107 0.0589 -vn 0.9982 -0.0143 0.0588 -vn 0.9982 0.0227 -0.0550 -vn 0.9982 0.0336 0.0487 -vn 0.9983 0.0502 0.0300 -vn 0.9981 -0.0537 0.0300 -vn 0.9981 -0.0371 0.0486 -vn 0.7165 0.6937 -0.0731 -vn 0.7165 0.6633 0.2159 -vn 0.7165 0.6038 -0.3494 -vn 0.7163 0.4094 -0.5650 -vn 0.7163 0.4092 -0.5651 -vn 0.7162 0.2827 0.6381 -vn 0.7160 -0.0011 0.6981 -vn 0.7162 0.2829 0.6380 -vn 0.7158 -0.1465 -0.6828 -vn 0.7156 -0.4113 -0.5646 -vn 0.7156 -0.4115 -0.5645 -vn 0.7153 -0.6648 0.2155 -vn 0.7154 -0.6949 -0.0729 -vn 0.7153 -0.6648 0.2156 -vn 0.7165 0.6038 -0.3493 -vn 0.7165 0.5179 0.4674 -vn 0.7165 0.6633 0.2160 -vn 0.7165 0.5178 0.4675 -vn 0.7153 -0.6055 -0.3488 -vn 0.7155 -0.5197 0.4669 -vn 0.7157 -0.2852 0.6375 -vn 0.7155 -0.5198 0.4668 -vn 0.7160 0.1440 -0.6831 -vn 0.7160 0.1438 -0.6831 -vn 0.7157 -0.2850 0.6376 -vn 0.7160 -0.0014 0.6981 -vn 0.7158 -0.1463 -0.6829 -vn 0.7153 -0.6055 -0.3489 -vn 0.0003 -0.0000 1.0000 -vn -0.0003 0.2080 -0.9781 -vn -0.0003 -0.2077 -0.9782 -vn -0.0003 -0.2079 -0.9781 -vn 0.0003 0.0002 1.0000 -vn 0.0003 0.4067 0.9135 -vn 0.0003 0.4070 0.9134 -vn 0.0002 0.7431 0.6692 -vn 0.0001 0.9510 0.3091 -vn 0.0001 -0.9511 0.3090 -vn -0.0003 0.2081 -0.9781 -vn -0.6737 -0.1539 0.7228 -vn -0.7835 0.1287 0.6079 -vn -0.7835 -0.1287 0.6079 -vn -0.6914 -0.2934 -0.6602 -vn -0.6922 0.0000 -0.7218 -vn -0.6737 0.1539 0.7228 -vn -0.7851 0.3630 0.5019 -vn -0.6911 -0.2932 -0.6606 -vn -0.6752 0.4343 0.5962 -vn -0.7877 0.5325 0.3097 -vn -0.6781 0.6372 0.3664 -vn -0.6818 0.7277 0.0750 -vn -0.6781 -0.6372 0.3664 -vn -0.7877 -0.5325 0.3097 -vn -0.7850 -0.3630 0.5019 -vn -0.9331 -0.0000 -0.3595 -vn -0.9229 -0.0793 0.3767 -vn -0.9229 0.0793 0.3767 -vn -0.9299 -0.3509 -0.1103 -vn -0.9299 0.3509 -0.1103 -vn -0.9440 -0.1932 0.2675 -vn -0.9493 -0.0000 -0.3144 -vn -0.9449 0.2828 0.1650 -vn -0.9483 -0.2367 -0.2114 -vn -0.9473 -0.3052 -0.0976 -vn -0.9473 0.3052 -0.0975 -vn -0.9449 -0.2828 0.1650 -vn -0.9766 0.1602 -0.1439 -vn -0.9758 -0.1283 0.1770 -vn -0.9757 -0.0455 0.2141 -vn -0.9758 0.0454 0.2141 -vn -0.9760 0.1886 0.1092 -vn -0.9765 -0.1602 -0.1439 -vn -0.9762 0.2158 0.0230 -vn -0.9764 -0.2056 -0.0664 -vn -0.9762 -0.2157 0.0231 -vn 0.9970 0.0169 -0.0756 -vn 0.9968 0.0466 -0.0655 -vn 0.9967 0.0483 -0.0645 -vn 0.9970 -0.0672 -0.0393 -vn 0.9970 -0.0454 -0.0620 -vn 0.9969 -0.0682 -0.0384 -vn 0.9971 -0.0157 -0.0751 -vn 0.9965 0.0721 -0.0428 -vn 0.9965 0.0736 -0.0408 -vn 0.9961 0.0878 -0.0076 -vn -0.9964 -0.0498 -0.0680 -vn -0.9885 -0.1303 -0.0764 -vn -0.9963 -0.0748 -0.0422 -vn 0.9958 0.0875 0.0275 -vn 0.9958 0.0867 0.0296 -vn -0.9964 -0.0170 -0.0826 -vn -0.9889 -0.0869 -0.1203 -vn 0.9955 0.0707 0.0629 -vn 0.9955 0.0698 0.0640 -vn -0.9886 0.0304 -0.1475 -vn -0.9963 0.0186 -0.0836 -vn -0.9879 0.0900 -0.1265 -vn -0.9961 0.0530 -0.0707 -vn 0.9954 0.0389 0.0876 -vn -0.9868 0.1391 -0.0826 -vn -0.9957 0.0806 -0.0447 -vn 0.9965 -0.0800 0.0250 -vn 0.9967 -0.0806 -0.0072 -vn 0.9964 -0.0800 0.0276 -vn -0.9856 0.1681 -0.0197 -vn -0.9953 0.0961 -0.0084 -vn -0.9843 0.1683 0.0528 -vn -0.9949 0.0952 0.0325 -vn -0.9833 0.1360 0.1211 -vn -0.9946 0.0764 0.0700 -vn -0.9829 0.0750 0.1684 -vn -0.9945 0.0426 0.0957 -vn 0.9955 0.0007 0.0949 -vn -0.9946 0.0008 0.1038 -vn 0.9958 -0.0360 0.0843 -vn -0.9878 -0.1546 -0.0178 -vn -0.9961 -0.0883 -0.0079 -vn -0.9867 -0.1550 0.0483 -vn -0.9957 -0.0875 0.0301 -vn 0.9961 -0.0647 0.0604 -vn -0.9854 -0.1278 0.1123 -vn -0.9953 -0.0709 0.0661 -vn 0.9961 -0.0663 0.0583 -vn -0.9949 -0.0398 0.0928 -vn 0.9967 -0.0802 -0.0093 -vn -0.9841 -0.0737 0.1613 -vn 0.0000 0.4067 -0.9136 -vn 0.0000 -0.4067 -0.9136 -vn 0.0003 -0.2077 0.9782 -vn 0.0003 0.2079 0.9781 -vn 0.0003 -0.2079 0.9781 -vn 0.0003 0.5879 0.8089 -vn 0.0003 0.5878 0.8090 -vn 0.0003 0.2081 0.9781 -vn 0.0003 -0.5876 0.8091 -vn 0.9982 0.0106 -0.0585 -vn 0.9983 0.0334 -0.0484 -vn 0.9983 0.0554 0.0186 -vn 0.9983 0.0427 0.0400 -vn 0.9982 -0.0260 -0.0544 -vn 0.9982 -0.0018 -0.0601 -vn 0.9981 -0.0615 -0.0063 -vn 0.9981 -0.0537 -0.0299 -vn 0.9981 -0.0586 0.0185 -vn 0.9981 -0.0586 -0.0185 -vn 0.9981 -0.0590 -0.0184 -vn 0.9983 0.0502 -0.0300 -vn 0.9983 0.0578 -0.0063 -vn 0.9983 0.0578 -0.0062 -vn 0.9982 0.0227 0.0550 -vn 0.9982 -0.0018 0.0601 -vn 0.9983 0.0429 -0.0402 -vn 0.9982 -0.0369 -0.0483 -vn 0.9982 -0.0142 -0.0584 -vn 0.9982 -0.0143 -0.0588 -vn 0.9981 -0.0465 0.0402 -vn 0.0000 0.2077 0.9782 -vn 0.0000 -0.2077 0.9782 -vn 0.0000 0.2081 0.9781 -vn 0.0000 0.7432 -0.6690 -vn 0.0000 0.9510 -0.3091 -vn 0.0000 0.9511 -0.3089 -vn 0.0000 0.8660 0.5001 -vn 0.0000 0.5879 0.8089 -vn 0.0000 0.8661 0.4999 -vn 0.0000 -0.9510 -0.3091 -vn 0.0000 -0.5879 0.8089 -vn 0.0000 -0.8660 0.5001 -vn 0.0000 -0.5876 0.8091 -vn 0.0000 -0.4065 -0.9136 -vn 0.0000 -0.0002 -1.0000 -vn 0.0000 0.0002 -1.0000 -vn 0.0000 0.5876 0.8091 -vn 0.0000 -0.8661 0.4999 -vn 0.0000 -0.7432 -0.6690 -vn 0.0000 -0.7430 -0.6693 -vn 0.0000 0.4069 -0.9135 -vn 0.0000 0.7430 -0.6693 -vn 0.0000 -0.2081 0.9781 -vn 0.0000 0.4065 -0.9136 -vn 0.0000 -0.4069 -0.9135 -vn 0.9981 -0.0262 0.0549 -vn 0.9982 -0.0261 0.0544 -vn 0.9982 0.0225 -0.0547 -vn 0.9982 0.0106 0.0585 -vn 0.9983 0.0334 0.0484 -vn 0.9981 -0.0619 0.0064 -vn 0.9981 -0.0369 -0.0483 -vn 0.7167 0.6936 -0.0730 -vn 0.7164 0.6038 -0.3494 -vn 0.7161 0.2827 0.6381 -vn 0.7161 0.2829 0.6381 -vn 0.7157 -0.1465 -0.6828 -vn 0.7155 -0.4114 -0.5647 -vn 0.7155 -0.4116 -0.5645 -vn 0.7154 -0.6647 0.2155 -vn 0.7153 -0.6950 -0.0729 -vn 0.7154 -0.6646 0.2156 -vn 0.7164 0.6039 -0.3493 -vn 0.7155 -0.6053 -0.3487 -vn 0.7154 -0.5197 0.4669 -vn 0.7156 -0.2853 0.6376 -vn 0.7161 0.1440 -0.6830 -vn 0.7161 0.1438 -0.6830 -vn 0.7156 -0.2851 0.6377 -vn 0.7155 -0.6053 -0.3488 -vn 0.6275 -0.6347 -0.4510 -vn 0.4653 -0.8114 -0.3537 -vn 0.6882 -0.4251 -0.5880 -vn 0.7408 -0.2148 -0.6364 -vn 0.7044 -0.0162 -0.7096 -vn 0.7177 0.0197 -0.6961 -vn 0.3055 0.0281 0.9518 -vn 0.7829 -0.3405 0.5207 -vn 0.5669 -0.4308 0.7021 -vn 0.6929 -0.5439 0.4733 -vn 0.8298 -0.0611 0.5547 -vn 0.7235 -0.0218 0.6899 -vn 0.8567 0.1383 0.4970 -vn 0.7247 0.1763 0.6661 -vn 0.5249 0.1455 0.8386 -vn 0.4374 -0.5412 0.7182 -vn 0.6153 -0.1830 0.7668 -vn 0.3697 -0.2271 0.9010 -vn 0.3906 0.0253 0.9202 -vn 0.3005 -0.0934 0.9492 -vn 0.2938 0.1011 0.9505 -vn 0.3111 -0.4534 0.8352 -vn 0.2759 -0.3523 0.8943 -vn 0.2406 0.0560 0.9690 -vn 0.2011 0.0907 0.9754 -vn 0.0205 0.9998 0.0000 -vn 0.0313 0.9995 0.0000 -vn 0.0073 0.0041 -1.0000 -vn 0.1917 0.0562 0.9798 -vn 0.9643 0.2639 -0.0217 -vn 0.0004 0.0005 -1.0000 -vn 0.0009 0.0002 -1.0000 -vn 0.0000 0.0007 -1.0000 -vn -0.1006 -0.9949 -0.0000 -vn -0.1228 -0.9924 -0.0000 -vn -0.0993 -0.9951 -0.0013 -vn -0.5709 0.0000 -0.8210 -vn -0.5709 0.0000 0.8210 -vn -0.9999 0.0132 0.0000 -vn 0.0004 0.0005 1.0000 -vn 0.0009 0.0002 1.0000 -vn 0.0012 0.0000 1.0000 -vn -0.0169 -0.9999 -0.0000 -vn -0.9716 0.2320 0.0466 -vn 0.4824 -0.8642 -0.1428 -vn 0.1723 -0.9365 -0.3053 -vn 0.1634 -0.9001 -0.4039 -vn 0.0105 -0.0080 0.9999 -vn 0.6994 0.1084 -0.7065 -vn 0.6887 0.0805 -0.7206 -vn -0.8475 -0.4281 0.3137 -vn 0.9437 -0.2846 0.1688 -vn 0.4080 -0.8817 -0.2368 -vn -0.0055 1.0000 -0.0001 -vn -0.0057 1.0000 -0.0003 -vn -0.0075 0.9999 0.0096 -vn -0.0302 -0.9986 -0.0433 -vn -0.0262 -0.9996 -0.0050 -vn 0.6621 -0.7494 -0.0031 -vn 0.4735 -0.8808 -0.0007 -vn 0.4739 -0.8806 -0.0000 -vn -0.2466 -0.0444 0.9681 -vn -0.3096 -0.6547 -0.6896 -vn -0.1382 0.0004 -0.9904 -vn -0.1190 0.0021 0.9929 -vn -0.2250 0.0071 0.9743 -vn -0.0368 0.9993 -0.0076 -vn -0.2517 0.0066 -0.9678 -vn 0.0170 -0.9999 -0.0007 -vn 0.0156 -0.9999 0.0000 -vn 0.0150 -0.9999 0.0004 -vn 0.0150 -0.9999 -0.0004 -vn 0.0155 -0.9999 0.0001 -vn 0.0170 -0.9999 0.0008 -vn 0.0163 -0.9999 0.0040 -vn 0.0190 -0.9998 0.0009 -vn 0.0169 -0.9998 0.0041 -vn 0.0189 -0.9998 0.0018 -vn 0.0175 -0.9998 0.0041 -vn 0.0189 -0.9998 0.0025 -vn 0.0197 -0.9998 -0.0000 -vn 0.0208 -0.9998 -0.0003 -vn 0.0167 -0.9999 -0.0033 -vn 0.0213 -0.9998 -0.0008 -vn 0.0176 -0.9998 -0.0035 -vn 0.0214 -0.9998 -0.0016 -vn 0.0186 -0.9998 -0.0036 -vn 0.0013 1.0000 -0.0015 -vn 0.0005 1.0000 -0.0007 -vn 0.0023 1.0000 -0.0027 -vn -0.0509 -0.9985 -0.0217 -vn -0.0617 -0.9977 -0.0263 -vn 0.0747 0.1179 -0.9902 -vn 0.1269 -0.0000 -0.9919 -vn 0.1391 0.0463 0.9892 -vn 0.1759 0.2357 0.9558 -vn 0.1269 0.0000 0.9919 -vn -0.0093 -1.0000 -0.0009 -vn -0.0236 0.9983 -0.0533 -vn -0.1193 0.9901 -0.0742 -vn -0.1849 0.9827 0.0000 -vn -0.0256 0.9983 0.0528 -vn -1.0000 -0.0049 0.0039 -vn -0.9999 0.0000 0.0153 -vn -1.0000 -0.0044 0.0054 -vn -0.1067 0.0080 -0.9943 -vn -0.1067 0.0080 0.9943 -vn -0.0149 0.9999 -0.0033 -vn -0.0162 0.9998 -0.0072 -vn -0.0208 0.9996 -0.0185 -vn -0.0891 0.0000 0.9960 -vn -0.7201 0.6935 -0.0209 -vn -0.0324 -0.1702 -0.9849 -vn -0.2582 0.0000 -0.9661 -vn -0.7215 0.6921 0.0220 -vn -0.0322 0.0019 0.9995 -vn 0.0079 -0.0081 0.9999 -vn -0.0083 0.0269 0.9996 -vn -0.0807 -0.0025 0.9967 -vn 0.1154 -0.9933 0.0000 -vn 0.0812 0.9967 0.0043 -vn 0.2876 0.9577 -0.0020 -vn -0.0941 0.0022 -0.9956 -vn -0.0812 0.0353 -0.9961 -vn -0.0586 0.0811 -0.9950 -vn -0.9999 0.0059 -0.0135 -vn -0.0622 0.9981 0.0000 -vn 0.9227 -0.3853 -0.0116 -vn 0.6166 0.7872 0.0051 -vn 0.5964 0.8027 -0.0016 -vn -0.9529 0.3028 0.0158 -vn -0.6568 0.7540 -0.0018 -vn -0.9665 -0.2564 0.0063 -vn -0.9586 -0.2846 -0.0036 -vn 0.8675 0.4973 -0.0062 -vn 0.2463 0.9692 0.0010 -vn 0.7887 0.6148 -0.0032 -vn 0.2593 0.9658 -0.0009 -vn 0.0240 -0.0188 -0.9995 -vn 0.7828 -0.6223 -0.0000 -vn 0.0238 -0.0257 0.9994 -vn -0.0364 -0.9993 0.0020 -vn -0.1873 0.0000 0.9823 -vn 0.1873 0.0000 -0.9823 -vn 0.7737 -0.0094 -0.6335 -vn 0.8076 -0.0104 0.5897 -vn -0.0002 0.8661 -0.4999 -vn 0.9971 -0.0160 -0.0747 -vn -0.9890 -0.0311 -0.1447 -vn 0.0003 -0.4068 0.9135 -vn 0.9971 -0.0161 -0.0750 -vn -0.9889 -0.0311 -0.1450 -vn -0.0003 -0.0002 -1.0000 -vn -0.0002 0.0002 -1.0000 -vn -0.0001 -0.0017 -1.0000 -vn 0.0001 0.0000 -1.0000 -vn 0.0004 0.0002 -1.0000 -vn 0.0012 0.0000 -1.0000 -vn 0.0000 0.0007 1.0000 -vn 0.0209 -0.0309 0.9993 -vn 0.0217 -0.0545 0.9983 -vn 0.3052 0.0281 0.9519 -vn 0.0090 0.0000 1.0000 -vn 0.0274 -0.1522 0.9880 -vn 0.0178 -0.0764 0.9969 -vn -0.0080 0.1106 0.9938 -vn 0.6073 -0.7945 -0.0012 -vn 0.9936 0.0384 -0.1065 -vn 0.9755 -0.2158 -0.0434 -vn 0.9919 0.0797 -0.0992 -vn 0.9001 -0.4258 -0.0920 -vn 0.9407 -0.3391 0.0086 -vn 0.9637 -0.2661 -0.0218 -vn 0.8068 0.5881 -0.0564 -vn 1.0000 0.0000 0.0001 -vn 1.0000 -0.0001 0.0001 -vn 0.9999 -0.0154 0.0037 -vn 0.2497 -0.7811 0.5723 -vn -0.0071 0.9999 -0.0094 -vn -0.0063 0.9999 -0.0133 -vn -0.0029 1.0000 -0.0034 -vn -0.0053 1.0000 0.0020 -vn -0.0021 1.0000 -0.0034 -vn -0.0010 1.0000 -0.0053 -vn -0.0085 0.9999 0.0071 -vn -0.0053 1.0000 -0.0020 -vn -0.0067 0.9999 0.0140 -vn -0.0021 1.0000 0.0034 -vn -0.0031 1.0000 0.0034 -vn -0.0010 1.0000 0.0053 -vn -0.0004 1.0000 0.0040 -vn -0.0085 0.9999 -0.0071 -vn -0.0004 1.0000 -0.0040 -vn -0.0052 1.0000 0.0005 -vn -0.0056 1.0000 -0.0007 -vn -0.0053 1.0000 0.0002 -vn -0.0347 -0.9967 -0.0731 -vn -0.0047 -1.0000 -0.0063 -vn -0.0049 -1.0000 -0.0062 -vn -0.0024 -1.0000 -0.0061 -vn -0.3466 -0.7947 0.4983 -vn -0.3211 -0.1042 0.9413 -vn -0.3952 -0.0390 -0.9177 -vn -0.0186 -0.9963 0.0841 s 1 -f 1/1/1 3/2/2 4/3/3 -f 4/3/3 5/4/4 6/5/5 -f 6/5/5 7/6/6 8/7/7 -f 8/7/7 9/8/8 10/9/9 -f 10/9/9 11/10/10 12/11/11 -f 12/11/11 13/12/12 14/13/13 -f 15/14/14 17/15/15 18/16/16 -f 17/15/15 20/17/17 18/16/16 -f 19/18/18 22/19/19 20/17/17 -f 22/19/19 23/20/20 24/21/21 -f 24/21/21 25/22/22 26/23/23 -f 25/22/22 28/24/24 26/23/23 -f 27/25/25 30/26/26 28/24/24 -f 29/27/27 32/28/28 30/26/29 -f 31/29/30 34/30/31 32/28/28 -f 33/31/32 36/32/33 34/30/31 -f 35/33/34 38/34/35 36/32/33 -f 38/34/35 39/35/36 40/36/37 -f 40/36/37 41/37/38 42/38/39 -f 42/38/39 43/39/40 44/40/41 -f 44/40/41 45/41/42 46/42/43 -f 46/42/44 47/43/45 48/44/46 -f 48/44/46 49/45/47 50/46/48 -f 49/45/47 52/47/49 50/46/48 -f 51/48/50 1/1/1 52/47/49 -f 54/49/51 56/50/52 53/51/53 -f 57/52/54 59/53/55 55/54/56 -f 24/21/21 60/55/57 61/56/58 -f 44/40/41 63/57/59 42/38/39 -f 10/9/9 64/58/60 65/59/61 -f 18/16/16 67/60/62 15/14/14 -f 34/30/31 68/61/63 69/62/64 -f 4/3/3 71/63/65 1/1/1 -f 1/1/1 72/64/66 52/47/49 -f 54/49/51 57/52/54 55/54/56 -f 26/23/23 74/65/67 60/55/57 -f 46/42/44 62/66/68 44/40/41 -f 14/13/13 64/58/60 12/11/11 -f 20/17/17 66/67/69 18/16/16 -f 36/32/33 78/68/70 68/61/63 -f 4/3/3 79/69/71 70/70/72 -f 73/71/73 81/72/74 57/52/54 -f 28/24/24 82/73/75 74/65/67 -f 48/44/46 75/74/76 46/42/44 -f 84/75/77 76/76/78 14/13/13 -f 20/17/17 86/77/79 77/78/80 -f 38/34/35 87/79/81 78/68/70 -f 6/5/5 88/80/82 79/69/71 -f 89/81/83 81/72/74 80/82/84 -f 30/26/26 91/83/85 82/73/75 -f 50/46/48 83/84/86 48/44/46 -f 53/51/53 85/85/87 84/75/77 -f 22/19/19 61/56/58 86/77/79 -f 40/36/37 63/57/59 87/79/81 -f 8/7/7 65/59/61 88/80/82 -f 15/14/14 90/86/88 89/87/83 -f 32/28/28 69/62/64 91/83/85 -f 52/47/49 92/88/89 50/46/48 -f 94/89/90 96/90/91 93/91/92 -f 68/61/63 97/92/93 98/93/94 -f 81/72/74 58/94/95 57/52/54 -f 78/68/70 100/95/96 97/92/93 -f 90/96/88 99/97/97 81/72/74 -f 87/79/81 101/98/98 100/95/96 -f 67/60/62 93/91/92 90/86/88 -f 62/66/68 101/98/98 63/57/59 -f 66/67/69 94/89/90 67/60/62 -f 71/63/65 104/99/99 105/100/100 -f 62/66/68 106/101/101 102/102/102 -f 77/78/80 103/103/103 66/67/69 -f 70/70/72 108/104/104 104/99/99 -f 75/74/76 109/105/105 106/101/101 -f 86/77/79 107/106/106 77/78/80 -f 79/69/71 111/107/107 108/104/104 -f 83/84/86 112/108/108 109/105/105 -f 61/56/58 110/109/109 86/77/79 -f 88/80/82 114/110/110 111/107/107 -f 92/88/89 115/111/111 112/108/108 -f 60/55/57 113/112/112 61/56/58 -f 65/59/61 117/113/113 114/110/110 -f 72/64/66 105/100/100 115/111/111 -f 74/65/67 116/114/114 60/55/57 -f 64/58/60 119/115/115 117/113/113 -f 82/73/75 118/116/116 74/65/67 -f 76/76/78 121/117/117 119/115/115 -f 91/83/85 120/118/118 82/73/75 -f 56/50/52 121/117/117 85/85/87 -f 69/62/64 122/119/119 91/83/85 -f 55/54/56 123/120/120 56/50/52 -f 69/62/64 98/93/94 124/121/121 -f 126/122/122 128/123/123 125/124/124 -f 101/98/98 129/125/125 130/126/126 -f 103/103/103 95/127/127 94/89/90 -f 105/100/100 132/128/128 133/129/129 -f 102/102/102 134/130/130 129/125/125 -f 107/106/106 131/131/131 103/103/103 -f 104/99/99 135/132/132 132/128/128 -f 106/101/101 136/133/133 134/130/130 -f 110/109/109 125/124/124 107/106/106 -f 108/104/104 137/134/134 135/132/132 -f 109/105/105 138/135/135 136/133/133 -f 113/112/112 126/122/122 110/109/109 -f 111/107/107 140/136/136 137/134/134 -f 112/108/108 141/137/137 138/135/135 -f 116/114/114 139/138/138 113/112/112 -f 114/110/110 143/139/139 140/136/136 -f 115/111/111 133/129/129 141/137/137 -f 118/116/116 142/140/140 116/114/114 -f 117/113/113 145/141/141 143/139/139 -f 120/118/118 144/142/142 118/116/116 -f 119/115/115 147/143/143 145/141/141 -f 122/119/119 146/144/144 120/118/118 -f 121/117/117 149/145/145 147/143/143 -f 124/121/121 148/146/146 122/119/119 -f 59/53/55 149/145/145 123/120/120 -f 124/121/121 152/147/147 150/148/148 -f 58/94/95 151/149/149 59/53/55 -f 98/93/94 154/150/150 152/147/147 -f 99/97/97 153/151/151 58/94/95 -f 100/95/96 154/150/150 97/92/93 -f 93/152/92 155/153/152 99/97/97 -f 101/98/98 156/154/153 100/95/96 -f 158/155/154 160/156/155 157/157/156 -f 135/132/132 161/158/157 162/159/158 -f 136/133/133 163/160/159 164/161/160 -f 139/138/138 127/162/161 126/122/122 -f 137/134/134 166/163/162 161/158/157 -f 138/135/135 167/164/163 163/160/159 -f 142/140/140 165/165/164 139/138/138 -f 140/136/136 168/166/165 166/163/162 -f 141/137/137 169/167/166 167/164/163 -f 144/142/142 157/157/156 142/140/140 -f 143/139/139 170/168/167 168/166/165 -f 146/144/144 158/155/154 144/142/142 -f 145/141/141 172/169/168 170/168/167 -f 148/146/146 171/170/169 146/144/144 -f 147/143/143 174/171/170 172/169/168 -f 150/148/148 173/172/171 148/146/146 -f 151/149/149 174/171/170 149/145/145 -f 150/148/148 177/173/172 175/174/173 -f 153/151/151 176/175/174 151/149/149 -f 152/147/147 179/176/175 177/173/172 -f 155/153/152 178/177/176 153/151/151 -f 156/154/153 179/176/175 154/150/150 -f 96/178/91 180/179/177 155/153/152 -f 156/154/153 183/180/178 181/181/179 -f 95/127/127 182/182/180 96/90/91 -f 130/126/126 185/183/181 183/180/178 -f 131/131/131 184/184/182 95/127/127 -f 133/129/129 187/185/183 169/167/166 -f 129/125/125 188/186/184 185/183/181 -f 125/124/124 186/187/185 131/131/131 -f 132/128/128 162/159/158 187/185/183 -f 134/130/130 164/161/160 188/186/184 -f 190/188/186 192/189/187 189/190/188 -f 168/166/165 193/191/189 194/192/190 -f 171/170/169 159/193/191 158/155/154 -f 170/168/167 196/194/192 193/191/189 -f 173/172/171 195/195/193 171/170/169 -f 172/169/168 197/196/194 196/194/192 -f 175/174/173 189/190/188 173/172/171 -f 176/175/174 197/196/194 174/171/170 -f 177/173/172 190/188/186 175/174/173 -f 178/177/176 198/197/195 176/175/174 -f 177/173/172 201/198/196 199/199/197 -f 180/179/177 200/200/198 178/177/176 -f 179/176/175 203/201/199 201/198/196 -f 182/202/180 202/203/200 180/179/177 -f 181/181/179 205/204/201 203/201/199 -f 184/184/182 204/205/202 182/182/180 -f 183/180/178 207/206/203 205/204/201 -f 186/187/185 206/207/204 184/184/182 -f 169/167/166 209/208/205 210/209/206 -f 185/183/181 211/210/207 207/206/203 -f 128/123/123 208/211/208 186/187/185 -f 187/185/183 213/212/209 209/208/205 -f 188/186/184 214/213/210 211/210/207 -f 127/162/161 212/214/211 128/123/123 -f 162/159/158 216/215/212 213/212/209 -f 164/161/160 217/216/213 214/213/210 -f 165/165/164 215/217/214 127/162/161 -f 161/158/157 219/218/215 216/215/212 -f 163/160/159 220/219/216 217/216/213 -f 157/157/156 218/220/217 165/165/164 -f 166/163/162 194/192/190 219/218/215 -f 167/164/163 210/209/206 220/219/216 -f 221/221/218 223/222/219 224/223/220 -f 198/197/195 226/224/221 197/196/194 -f 199/199/197 191/225/222 190/188/186 -f 200/200/198 225/226/223 198/197/195 -f 201/198/196 227/227/224 199/199/197 -f 202/203/200 228/228/225 200/200/198 -f 201/198/196 222/229/226 221/221/218 -f 204/230/202 229/231/227 202/203/200 -f 203/201/199 231/232/228 222/229/226 -f 206/207/204 230/233/229 204/205/202 -f 205/204/201 233/234/230 231/232/228 -f 208/211/208 232/235/231 206/207/204 -f 210/209/206 235/236/232 236/237/233 -f 207/206/203 237/238/234 233/234/230 -f 212/214/211 234/239/235 208/211/208 -f 209/208/205 239/240/236 235/236/232 -f 211/210/207 240/241/237 237/238/234 -f 215/217/214 238/242/238 212/214/211 -f 213/212/209 242/243/239 239/240/236 -f 214/213/210 243/244/240 240/241/237 -f 218/220/217 241/245/241 215/217/214 -f 216/215/212 245/246/242 242/243/239 -f 217/216/213 246/247/243 243/244/240 -f 160/156/155 244/248/244 218/220/217 -f 219/218/215 248/249/245 245/246/242 -f 220/219/216 236/237/233 246/247/243 -f 159/193/191 247/250/246 160/156/155 -f 194/192/190 250/251/247 248/249/245 -f 195/195/193 249/252/248 159/193/191 -f 193/191/189 252/253/249 250/251/247 -f 189/190/188 251/254/250 195/195/193 -f 196/194/192 226/224/221 252/253/249 -f 253/255/251 255/256/252 256/257/253 -f 230/258/229 258/259/254 229/231/227 -f 222/229/226 259/260/255 223/222/219 -f 232/235/231 257/261/256 230/233/229 -f 231/232/228 261/262/257 259/260/255 -f 234/239/235 260/263/258 232/235/231 -f 236/237/233 263/264/259 264/265/260 -f 233/234/230 265/266/261 261/262/257 -f 238/242/238 262/267/262 234/239/235 -f 235/236/232 267/268/263 263/264/259 -f 237/238/234 268/269/264 265/266/261 -f 241/245/241 266/270/265 238/242/238 -f 239/240/236 270/271/266 267/268/263 -f 240/241/237 271/272/267 268/269/264 -f 244/248/244 269/273/268 241/245/241 -f 242/243/239 273/274/269 270/271/266 -f 243/244/240 274/275/270 271/272/267 -f 247/250/246 272/276/271 244/248/244 -f 245/246/242 276/277/272 273/274/269 -f 246/247/243 264/265/260 274/275/270 -f 249/252/248 275/278/273 247/250/246 -f 248/249/245 278/279/274 276/277/272 -f 251/254/250 277/280/275 249/252/248 -f 250/251/247 253/255/251 278/279/274 -f 192/189/187 279/281/276 251/254/250 -f 252/253/249 254/282/277 253/255/251 -f 191/225/222 280/283/278 192/189/187 -f 225/226/223 254/282/277 226/224/221 -f 227/227/224 281/284/279 191/225/222 -f 228/228/225 282/285/280 225/226/223 -f 221/221/218 283/286/281 227/227/224 -f 229/231/227 284/287/282 228/228/225 -f 286/288/283 288/289/284 285/290/285 -f 281/284/279 290/291/286 280/283/278 -f 282/285/280 255/256/252 254/282/277 -f 283/286/281 289/292/287 281/284/279 -f 284/287/282 291/293/288 282/285/280 -f 224/223/220 292/294/289 283/286/281 -f 258/259/254 285/290/285 284/287/282 -f 224/223/220 294/295/290 293/296/291 -f 257/297/256 286/288/283 258/259/254 -f 223/222/219 296/298/292 294/295/290 -f 260/263/258 295/299/293 257/261/256 -f 259/260/255 298/300/294 296/298/292 -f 262/267/262 297/301/295 260/263/258 -f 264/265/260 300/302/296 301/303/297 -f 261/262/257 302/304/298 298/300/294 -f 266/270/265 299/305/299 262/267/262 -f 263/264/259 304/306/300 300/302/296 -f 265/266/261 305/307/301 302/304/298 -f 269/273/268 303/308/302 266/270/265 -f 267/268/263 307/309/303 304/306/300 -f 268/269/264 308/310/304 305/307/301 -f 272/276/271 306/311/305 269/273/268 -f 270/271/266 310/312/306 307/309/303 -f 271/272/267 311/313/307 308/310/304 -f 275/278/273 309/314/308 272/276/271 -f 273/274/269 313/315/309 310/312/306 -f 274/275/270 301/303/297 311/313/307 -f 277/280/275 312/316/310 275/278/273 -f 276/277/272 315/317/311 313/315/309 -f 279/281/276 314/318/312 277/280/275 -f 278/279/274 256/257/253 315/317/311 -f 280/283/278 316/319/313 279/281/276 -f 318/320/314 320/321/315 317/322/316 -f 293/296/291 321/323/317 322/324/318 -f 295/325/293 287/326/319 286/288/283 -f 294/295/290 324/327/320 321/323/317 -f 297/301/295 323/328/321 295/299/293 -f 296/298/292 325/329/322 324/327/320 -f 299/305/299 317/322/316 297/301/295 -f 301/303/297 326/330/323 327/331/324 -f 298/300/294 328/332/325 325/329/322 -f 303/308/302 318/320/314 299/305/299 -f 300/302/296 330/333/326 326/330/323 -f 302/304/298 331/334/327 328/332/325 -f 306/311/305 329/335/328 303/308/302 -f 304/306/300 333/336/329 330/333/326 -f 305/307/301 334/337/330 331/334/327 -f 309/314/308 332/338/331 306/311/305 -f 307/309/303 336/339/332 333/336/329 -f 308/310/304 337/340/333 334/337/330 -f 312/316/310 335/341/334 309/314/308 -f 310/312/306 339/342/335 336/339/332 -f 311/313/307 327/331/324 337/340/333 -f 314/318/312 338/343/336 312/316/310 -f 313/315/309 341/344/337 339/342/335 -f 316/319/313 340/345/338 314/318/312 -f 315/317/311 343/346/339 341/344/337 -f 290/291/286 342/347/340 316/319/313 -f 256/257/253 345/348/341 343/346/339 -f 289/292/287 344/349/342 290/291/286 -f 291/293/288 345/348/341 255/256/252 -f 292/294/289 346/350/343 289/292/287 -f 285/290/285 347/351/344 291/293/288 -f 293/296/291 348/352/345 292/294/289 -f 350/353/346 352/354/347 349/355/348 -f 327/331/324 353/356/349 354/357/350 -f 325/329/322 355/358/351 356/359/352 -f 329/335/328 319/360/353 318/320/314 -f 326/330/323 358/361/354 353/356/349 -f 328/332/325 359/362/355 355/358/351 -f 332/338/331 357/363/356 329/335/328 -f 330/333/326 360/364/357 358/361/354 -f 331/334/327 361/365/358 359/362/355 -f 335/341/334 349/355/348 332/338/331 -f 333/336/329 362/366/359 360/364/357 -f 334/337/330 363/367/360 361/365/358 -f 338/343/336 350/353/346 335/341/334 -f 336/339/332 365/368/361 362/366/359 -f 337/340/333 354/357/350 363/367/360 -f 340/345/338 364/369/362 338/343/336 -f 339/342/335 367/370/363 365/368/361 -f 342/347/340 366/371/364 340/345/338 -f 341/344/337 369/372/365 367/370/363 -f 344/349/342 368/373/366 342/347/340 -f 343/346/339 371/374/367 369/372/365 -f 346/350/343 370/375/368 344/349/342 -f 347/351/344 371/374/367 345/348/341 -f 348/352/345 372/376/369 346/350/343 -f 288/289/284 373/377/370 347/351/344 -f 322/324/318 374/378/371 348/352/345 -f 287/326/319 375/379/372 288/289/284 -f 322/324/318 378/380/373 376/381/374 -f 323/382/321 377/383/375 287/326/319 -f 321/323/317 380/384/376 378/380/373 -f 317/322/316 379/385/377 323/328/321 -f 324/327/320 356/359/352 380/384/376 -f 382/386/378 384/387/379 381/388/380 -f 360/364/357 385/389/381 386/390/382 -f 361/365/358 387/391/383 388/392/384 -f 364/369/362 351/393/385 350/353/346 -f 362/366/359 390/394/386 385/389/381 -f 363/367/360 391/395/387 387/391/383 -f 366/371/364 389/396/388 364/369/362 -f 365/368/361 392/397/389 390/394/386 -f 368/373/366 381/388/380 366/371/364 -f 367/370/363 393/398/390 392/397/389 -f 370/375/368 382/386/378 368/373/366 -f 369/372/365 395/399/391 393/398/390 -f 372/376/369 394/400/392 370/375/368 -f 373/377/370 395/399/391 371/374/367 -f 374/378/371 396/401/393 372/376/369 -f 375/379/372 397/402/394 373/377/370 -f 376/381/374 398/403/395 374/378/371 -f 377/383/375 399/404/396 375/379/372 -f 376/381/374 402/405/397 400/406/398 -f 379/407/377 401/408/399 377/383/375 -f 378/380/373 404/409/400 402/405/397 -f 320/321/315 403/410/401 379/385/377 -f 380/384/376 406/411/402 404/409/400 -f 319/360/353 405/412/403 320/321/315 -f 354/357/350 408/413/404 391/395/387 -f 356/359/352 409/414/405 406/411/402 -f 357/363/356 407/415/406 319/360/353 -f 353/356/349 411/416/407 408/413/404 -f 355/358/351 412/417/408 409/414/405 -f 349/355/348 410/418/409 357/363/356 -f 358/361/354 386/390/382 411/416/407 -f 359/362/355 388/392/384 412/417/408 -f 414/419/410 416/420/411 413/421/412 -f 392/397/389 417/422/413 418/423/414 -f 394/400/392 383/424/415 382/386/378 -f 393/398/390 420/425/416 417/422/413 -f 396/401/393 419/426/417 394/400/392 -f 397/402/394 420/425/416 395/399/391 -f 398/403/395 413/421/412 396/401/393 -f 399/404/396 421/427/418 397/402/394 -f 400/406/398 414/419/410 398/403/395 -f 401/408/399 422/428/419 399/404/396 -f 400/406/398 425/429/420 423/430/421 -f 403/431/401 424/432/422 401/408/399 -f 402/405/397 427/433/423 425/429/420 -f 405/412/403 426/434/424 403/410/401 -f 404/409/400 429/435/425 427/433/423 -f 407/415/406 428/436/426 405/412/403 -f 391/395/387 431/437/427 432/438/428 -f 406/411/402 433/439/429 429/435/425 -f 410/418/409 430/440/430 407/415/406 -f 408/413/404 435/441/431 431/437/427 -f 409/414/405 436/442/432 433/439/429 -f 352/354/347 434/443/433 410/418/409 -f 411/416/407 438/444/434 435/441/431 -f 412/417/408 439/445/435 436/442/432 -f 351/393/385 437/446/436 352/354/347 -f 386/390/382 441/447/437 438/444/434 -f 388/392/384 442/448/438 439/445/435 -f 389/396/388 440/449/439 351/393/385 -f 385/389/381 444/450/440 441/447/437 -f 387/391/383 432/438/428 442/448/438 -f 381/388/380 443/451/441 389/396/388 -f 390/394/386 418/423/414 444/450/440 -f 422/428/419 446/452/442 421/427/418 -f 423/430/421 415/453/443 414/419/410 -f 424/432/422 445/454/444 422/428/419 -f 423/430/421 449/455/445 447/456/446 -f 426/457/424 448/458/447 424/432/422 -f 425/429/420 451/459/448 449/455/445 -f 428/436/426 450/460/449 426/434/424 -f 427/433/423 453/461/450 451/459/448 -f 430/440/430 452/462/451 428/436/426 -f 432/438/428 455/463/452 456/464/453 -f 429/435/425 457/465/454 453/461/450 -f 434/443/433 454/466/455 430/440/430 -f 431/437/427 459/467/456 455/463/452 -f 433/439/429 460/468/457 457/465/454 -f 437/446/436 458/469/458 434/443/433 -f 435/441/431 462/470/459 459/467/456 -f 436/442/432 463/471/460 460/468/457 -f 440/449/439 461/472/461 437/446/436 -f 438/444/434 465/473/462 462/470/459 -f 439/445/435 466/474/463 463/471/460 -f 443/451/441 464/475/464 440/449/439 -f 441/447/437 468/476/465 465/473/462 -f 442/448/438 456/464/453 466/474/463 -f 384/387/379 467/477/466 443/451/441 -f 444/450/440 470/478/467 468/476/465 -f 383/424/415 469/479/468 384/387/379 -f 418/423/414 472/480/469 470/478/467 -f 419/426/417 471/481/470 383/424/415 -f 417/422/413 474/482/471 472/480/469 -f 413/421/412 473/483/472 419/426/417 -f 421/427/418 474/482/471 420/425/416 -f 446/484/473 452/485/473 462/486/473 -f 476/487/474 478/488/474 475/489/475 -f 478/490/476 29/491/476 479/492/476 -f 479/493/477 484/494/477 480/495/477 -f 484/496/478 483/497/478 477/498/478 -f 489/499/479 488/500/479 487/501/479 -f 491/502/480 493/503/480 492/504/480 -f 495/505/481 482/506/481 489/507/481 -f 481/508/481 490/509/481 496/510/481 -f 479/511/477 485/512/482 483/513/477 -f 477/514/474 45/515/481 478/516/474 -f 498/517/480 500/518/480 497/519/480 -f 504/520/483 501/521/484 503/522/485 -f 506/523/479 507/524/479 508/525/479 -f 498/526/486 497/527/482 510/528/487 -f 510/529/488 497/519/489 504/530/490 -f 513/531/491 501/532/492 509/533/493 -f 516/534/482 518/535/482 505/536/482 -f 519/537/476 522/538/476 524/539/476 -f 514/540/482 519/537/482 515/541/482 -f 512/542/481 521/543/481 513/544/481 -f 506/523/481 523/545/481 511/546/481 -f 515/541/494 517/547/494 516/534/494 -f 513/544/479 520/548/479 514/540/479 -f 511/546/495 522/538/495 512/542/495 -f 505/536/480 524/539/480 506/523/480 -f 499/549/496 525/550/497 498/551/496 -f 526/552/498 527/553/499 525/554/497 -f 526/555/500 500/556/501 528/557/502 -f 497/558/503 525/559/504 527/560/505 -f 532/561/506 533/562/507 534/563/508 -f 533/564/509 482/565/510 534/566/511 -f 481/567/512 530/568/513 529/569/514 -f 531/570/515 530/571/516 490/572/517 -f 538/573/518 536/574/519 535/575/518 -f 493/576/520 540/577/521 539/578/522 -f 542/579/481 541/580/481 534/581/481 -f 543/582/482 536/583/519 529/584/482 -f 546/585/523 531/586/524 532/587/525 -f 547/588/526 549/589/527 548/590/528 -f 545/591/529 543/592/530 544/593/531 -f 531/586/524 544/593/531 530/594/532 -f 542/595/533 546/585/523 541/596/534 -f 541/596/534 532/587/525 533/597/535 -f 545/591/529 552/598/536 551/599/537 -f 556/600/538 554/601/539 553/602/540 -f 555/603/541 557/604/542 554/601/539 -f 558/605/543 559/606/544 557/604/542 -f 538/607/480 535/608/480 564/609/480 -f 552/598/536 565/610/545 551/599/537 -f 542/595/533 566/611/546 552/598/536 -f 568/612/547 563/613/548 564/614/549 -f 565/610/545 543/592/530 551/599/537 -f 560/615/550 567/616/551 559/606/544 -f 548/590/528 571/617/552 570/618/553 -f 491/619/554 550/620/555 547/588/526 -f 570/618/553 573/621/556 572/622/557 -f 572/622/557 575/623/558 574/624/559 -f 574/624/559 577/625/560 576/626/561 -f 576/626/561 579/627/480 578/628/480 -f 579/627/480 580/629/562 578/628/480 -f 581/630/563 553/602/540 580/629/562 -f 582/631/564 584/632/565 585/633/566 -f 587/634/567 589/635/568 586/636/569 -f 582/631/564 591/637/570 590/638/571 -f 586/636/569 593/639/572 592/640/573 -f 594/641/574 590/638/571 591/637/570 -f 595/642/575 593/639/572 596/643/576 -f 597/644/478 596/643/576 598/645/577 -f 597/644/478 600/646/578 599/647/579 -f 601/648/580 602/649/581 603/650/582 -f 599/647/579 605/651/583 604/652/584 -f 601/648/580 607/653/585 606/654/586 -f 583/655/587 605/651/583 584/632/565 -f 587/634/567 607/653/585 588/656/588 -f 605/651/583 609/657/589 584/632/565 -f 585/633/566 584/632/565 609/657/589 -f 589/635/568 588/658/588 610/659/590 -f 593/639/572 610/659/590 611/660/591 -f 594/661/574 591/662/570 612/663/592 -f 596/643/576 611/660/591 613/664/593 -f 594/661/574 615/665/594 614/666/595 -f 598/645/577 613/664/593 616/667/596 -f 598/645/577 617/668/597 600/646/578 -f 603/650/582 602/649/581 618/669/598 -f 600/646/578 608/670/599 605/651/583 -f 616/667/596 619/671/600 620/672/601 -f 616/667/596 621/673/602 617/668/597 -f 617/668/597 622/674/603 608/670/599 -f 607/675/585 603/676/582 623/677/604 -f 608/670/599 624/678/605 609/657/589 -f 588/658/588 607/675/585 623/677/604 -f 585/679/566 609/657/589 624/678/605 -f 610/659/590 588/680/588 625/681/606 -f 611/660/591 625/681/606 626/682/607 -f 613/664/593 626/682/607 619/671/600 -f 623/677/604 628/683/608 588/680/588 -f 624/678/605 630/684/609 585/685/566 -f 625/681/606 628/683/608 631/686/610 -f 585/685/566 632/687/611 591/688/570 -f 626/682/607 631/686/610 633/689/612 -f 612/690/592 591/688/570 632/687/611 -f 619/671/600 633/689/612 634/691/613 -f 620/672/601 634/691/613 635/692/614 -f 620/672/601 636/693/615 621/673/602 -f 621/673/602 637/694/616 622/674/603 -f 623/677/604 603/695/582 627/696/617 -f 622/674/603 629/697/618 624/678/605 -f 635/692/614 638/698/619 639/699/620 -f 635/692/614 640/700/621 636/693/615 -f 603/695/582 618/701/622 641/702/623 -f 637/694/616 640/700/621 642/703/624 -f 627/696/617 603/695/582 641/702/623 -f 629/697/618 637/694/616 642/703/624 -f 628/683/608 627/704/617 643/705/625 -f 631/686/610 643/705/625 644/706/626 -f 632/687/611 630/707/609 645/708/627 -f 633/689/612 644/706/626 646/709/628 -f 612/710/592 632/687/611 645/708/627 -f 633/689/612 638/698/619 634/691/613 -f 629/711/618 648/712/629 630/707/609 -f 645/708/627 630/707/609 648/712/629 -f 612/713/592 645/714/627 649/715/630 -f 638/698/619 646/716/628 650/717/631 -f 615/718/594 612/713/592 649/715/630 -f 639/699/620 650/717/631 651/719/632 -f 639/699/620 652/720/633 640/700/621 -f 641/702/623 618/701/622 653/721/634 -f 642/703/624 640/700/621 652/720/633 -f 627/704/617 641/702/623 653/721/634 -f 629/711/618 642/722/624 647/723/635 -f 651/719/636 655/724/637 652/720/633 -f 652/720/633 656/725/638 642/722/624 -f 627/726/617 653/727/634 657/728/639 -f 647/723/635 642/722/624 656/725/638 -f 643/729/625 657/728/639 658/730/640 -f 644/731/626 658/730/640 659/732/641 -f 646/716/628 659/732/641 660/733/642 -f 650/717/631 660/733/642 661/734/643 -f 651/719/636 661/734/643 654/735/636 -f 645/736/627 648/737/629 662/738/644 -f 649/739/630 645/736/627 662/738/644 -f 618/701/645 664/740/646 653/741/647 -f 656/742/648 665/743/649 666/744/650 -f 653/741/647 667/745/651 657/746/652 -f 656/742/648 668/747/653 647/748/654 -f 658/749/655 667/745/651 669/750/656 -f 647/748/654 670/751/657 648/737/658 -f 659/752/659 669/750/656 671/753/660 -f 662/738/661 670/751/657 672/754/662 -f 660/755/663 671/753/660 673/756/664 -f 662/738/661 674/757/665 649/758/666 -f 660/755/663 675/759/667 661/760/668 -f 615/718/669 674/757/665 676/761/670 -f 661/760/668 677/762/671 654/763/672 -f 618/701/645 602/764/673 663/765/674 -f 614/766/675 615/718/669 676/761/670 -f 655/767/676 677/762/671 665/743/649 -f 675/759/667 673/768/664 678/769/677 -f 675/759/667 679/770/678 677/762/671 -f 665/743/649 679/770/678 680/771/679 -f 666/744/650 665/743/649 680/771/679 -f 666/772/650 680/773/679 681/774/680 -f 668/775/681 681/774/680 682/776/682 -f 669/777/656 667/778/651 683/779/683 -f 670/780/657 682/776/682 684/781/684 -f 669/777/656 685/782/685 671/783/686 -f 672/784/662 670/780/657 684/781/684 -f 671/783/686 686/785/687 673/768/664 -f 674/786/665 672/787/662 687/788/688 -f 678/769/677 673/768/664 686/785/687 -f 676/761/670 674/786/665 687/788/688 -f 679/770/678 678/789/677 688/790/689 -f 680/771/679 679/770/678 688/790/689 -f 686/785/687 690/791/690 678/789/677 -f 688/790/689 678/789/677 690/791/690 -f 680/773/679 688/792/689 691/793/691 -f 664/794/646 663/765/674 692/795/692 -f 681/774/680 680/773/679 691/793/691 -f 664/794/646 693/796/693 667/778/651 -f 682/797/682 681/798/680 694/799/694 -f 683/779/683 667/778/651 693/796/693 -f 682/797/682 695/800/695 684/801/696 -f 672/787/662 684/781/684 695/802/695 -f 686/785/687 685/803/685 689/804/697 -f 693/796/693 692/805/692 696/806/698 -f 694/807/699 681/808/699 697/809/699 -f 693/796/693 698/810/700 683/811/701 -f 685/812/685 698/813/700 694/814/694 -f 672/815/662 695/816/695 699/817/702 -f 689/818/697 685/812/685 694/814/694 -f 687/819/688 672/815/662 699/817/703 -f 688/792/689 690/820/690 700/821/704 -f 691/793/691 688/792/689 700/821/704 -f 681/808/680 691/822/691 697/809/705 -f 690/823/690 689/824/697 694/825/694 -f 700/826/704 690/823/690 694/827/694 -f 691/828/691 700/826/704 694/829/694 -f 697/830/705 691/828/691 694/831/694 -f 695/832/695 694/833/694 701/834/706 -f 699/817/702 701/835/706 702/836/707 -f 687/837/688 699/817/703 702/836/708 -f 676/761/670 687/838/688 702/839/708 -f 692/840/692 663/765/674 703/841/709 -f 696/842/698 692/840/692 703/841/709 -f 676/761/670 702/839/708 704/843/710 -f 696/844/698 703/845/709 705/846/711 -f 696/844/698 706/847/712 698/848/700 -f 701/849/706 694/850/694 707/851/713 -f 694/852/694 698/853/700 706/854/712 -f 702/855/707 707/856/713 704/857/710 -f 705/858/711 703/859/709 708/860/714 -f 706/861/712 708/860/714 709/862/715 -f 707/863/713 694/864/694 710/865/716 -f 694/866/694 706/867/712 709/868/715 -f 704/869/710 707/870/713 710/871/716 -f 676/761/670 704/872/710 711/873/717 -f 704/874/710 710/875/716 712/876/718 -f 711/873/717 704/874/710 712/876/718 -f 694/877/694 713/878/719 714/879/720 -f 694/880/694 714/879/720 715/881/721 -f 703/859/709 663/765/674 716/882/722 -f 694/883/694 715/881/721 717/884/723 -f 708/860/714 703/859/709 716/882/722 -f 715/881/721 714/879/720 718/885/724 -f 714/879/720 713/886/719 718/885/724 -f 712/887/718 710/888/716 719/889/725 -f 694/890/694 720/891/726 721/892/727 -f 711/893/717 712/894/718 722/895/728 -f 713/886/719 694/896/694 721/892/727 -f 676/761/670 711/893/717 722/895/728 -f 708/897/714 716/898/722 723/899/729 -f 694/900/694 717/901/723 724/902/730 -f 709/903/715 723/899/729 725/904/731 -f 710/905/716 724/902/730 719/906/725 -f 709/907/715 720/891/726 694/890/694 -f 717/908/723 726/909/732 727/910/733 -f 717/908/723 728/911/734 724/912/735 -f 725/904/731 723/913/729 729/914/736 -f 724/912/735 730/915/737 719/889/738 -f 720/916/726 729/914/736 731/917/739 -f 719/889/738 732/918/740 712/894/718 -f 721/919/727 731/917/739 733/920/741 -f 722/895/728 712/894/718 732/918/740 -f 721/919/727 734/921/742 713/922/719 -f 718/923/724 734/921/742 735/924/743 -f 718/923/724 726/909/732 715/925/721 -f 734/921/742 733/926/741 736/927/744 -f 735/924/745 736/927/744 737/928/746 -f 735/924/745 738/929/747 726/909/732 -f 727/910/733 726/909/732 738/929/747 -f 727/930/733 739/931/748 740/932/749 -f 723/933/729 741/934/750 742/935/751 -f 727/930/733 743/936/752 728/937/734 -f 729/938/736 742/935/751 744/939/753 -f 730/940/737 743/936/752 745/941/754 -f 729/938/736 746/942/755 731/943/739 -f 732/944/740 745/941/754 747/945/756 -f 733/926/741 746/942/755 748/946/757 -f 732/944/740 749/947/758 722/948/728 -f 733/926/741 750/949/759 736/927/744 -f 722/948/728 751/950/760 676/761/670 -f 736/927/744 752/951/761 737/928/746 -f 663/765/674 602/952/762 753/953/763 -f 614/954/675 676/761/670 751/950/760 -f 738/929/747 752/951/761 739/931/748 -f 716/955/722 753/953/763 741/934/750 -f 743/956/764 754/957/765 755/958/766 -f 742/959/767 757/960/768 744/961/769 -f 745/962/770 755/958/766 758/963/771 -f 744/961/769 759/964/772 746/965/773 -f 747/966/774 758/963/771 760/967/775 -f 746/965/773 761/968/776 748/969/777 -f 749/970/778 747/966/774 760/967/775 -f 748/969/777 762/971/779 750/972/780 -f 750/972/780 763/973/781 752/974/781 -f 739/975/782 763/973/781 764/976/783 -f 740/977/784 764/976/783 754/957/765 -f 742/959/767 741/978/785 756/979/786 -f 751/980/787 749/981/778 765/982/788 -f 762/971/779 767/983/789 763/973/790 -f 764/976/783 767/983/789 768/984/791 -f 741/978/785 753/985/792 769/986/793 -f 754/957/765 764/976/783 768/984/791 -f 756/979/786 741/978/785 769/986/793 -f 749/981/778 760/987/775 765/982/788 -f 762/971/779 761/988/776 766/989/794 -f 756/990/786 771/991/795 757/992/768 -f 758/993/771 772/994/796 773/995/797 -f 757/992/768 774/996/798 759/997/799 -f 760/987/775 773/995/797 775/998/800 -f 759/997/799 776/999/801 761/988/776 -f 765/982/788 760/987/775 775/998/800 -f 766/989/794 776/999/801 777/1000/802 -f 766/989/794 778/1001/803 767/983/789 -f 768/984/791 778/1001/803 779/1002/804 -f 768/984/791 780/1003/805 754/1004/765 -f 756/990/786 769/1005/793 770/1006/806 -f 755/1007/807 780/1003/805 772/994/796 -f 777/1000/802 782/1008/808 778/1001/803 -f 779/1002/804 782/1008/808 783/1009/809 -f 780/1003/805 783/1009/809 784/1010/810 -f 772/994/796 784/1010/810 785/1011/811 -f 773/995/797 772/994/796 785/1011/811 -f 774/996/798 771/1012/795 786/1013/812 -f 774/996/798 787/1014/813 776/999/801 -f 776/999/801 781/1015/814 777/1000/802 -f 773/1016/797 788/1017/815 789/1018/816 -f 771/1012/795 791/1019/817 786/1013/812 -f 775/1020/800 773/1016/797 789/1018/816 -f 786/1013/812 792/1021/818 787/1014/813 -f 765/1022/788 775/1023/800 793/1024/819 -f 787/1014/813 794/1025/820 781/1015/814 -f 751/980/787 765/1022/788 793/1024/819 -f 781/1015/814 795/1026/821 782/1008/808 -f 783/1009/809 795/1026/821 796/1027/822 -f 769/1028/793 753/1029/792 601/1030/580 -f 784/1010/810 796/1027/822 797/1031/823 -f 769/1028/793 606/1032/586 770/1033/806 -f 785/1011/811 797/1031/823 788/1017/815 -f 770/1033/806 790/1034/824 771/1012/795 -f 796/1027/822 798/1035/825 799/1036/826 -f 601/1030/580 753/1029/792 602/1037/581 -f 797/1031/823 799/1036/826 800/1038/827 -f 788/1017/815 800/1038/827 801/1039/828 -f 789/1018/816 788/1017/815 801/1039/828 -f 791/1019/817 790/1040/824 802/1041/829 -f 775/1023/800 789/1042/816 590/1043/571 -f 791/1019/817 803/1044/830 792/1021/818 -f 793/1024/819 775/1023/800 590/1043/571 -f 792/1021/818 804/1045/831 794/1025/820 -f 751/1046/787 793/1047/819 614/1048/595 -f 794/1025/820 798/1035/825 795/1026/821 -f 802/1041/829 587/634/567 586/636/569 -f 590/1043/571 789/1042/816 582/631/564 -f 803/1044/830 586/636/569 592/640/573 -f 793/1047/819 590/638/571 594/641/574 -f 803/1044/830 595/642/575 804/1045/831 -f 614/1048/595 793/1047/819 594/641/574 -f 804/1045/831 597/644/478 798/1035/825 -f 799/1036/826 597/644/478 599/647/579 -f 800/1038/827 599/647/579 604/652/584 -f 800/1038/827 583/655/587 801/1039/828 -f 790/1040/824 606/654/586 587/634/567 -f 801/1039/828 582/631/564 789/1042/816 -f 806/1049/832 808/1050/833 805/1051/834 -f 809/1052/835 811/1053/835 812/1054/835 -f 812/1055/836 807/1056/837 806/1057/838 -f 815/1058/839 809/1052/840 812/1054/841 -f 817/1059/842 814/1060/842 813/1061/842 -f 811/1062/843 808/1063/833 807/1064/844 -f 814/1065/480 816/1066/480 815/1067/480 -f 813/1068/845 805/1069/846 817/1070/847 -f 816/1071/848 817/1072/849 805/1073/850 -f 820/1074/851 822/1075/852 819/1076/480 -f 829/1077/481 830/1078/481 838/1079/481 -f 835/1080/853 840/1081/854 836/1082/855 -f 838/1083/478 819/1084/478 822/1085/478 -f 833/1086/856 843/1087/856 834/1088/856 -f 844/1089/857 821/1090/858 820/1074/859 -f 845/1091/860 829/1092/861 828/1093/862 -f 847/1094/863 828/1095/862 827/1096/864 -f 826/1097/865 825/1098/866 849/1099/867 -f 851/1100/868 831/1101/869 850/1102/870 -f 846/1103/871 830/1104/872 829/1105/861 -f 850/1106/873 830/1107/872 852/1108/874 -f 824/1109/875 848/1110/876 825/1111/877 -f 832/1112/878 842/1113/879 833/1086/880 -f 836/1114/855 854/1115/881 837/1116/882 -f 838/1117/883 854/1115/881 841/1118/884 -f 839/1119/885 834/1120/479 843/1121/479 -f 856/1122/886 858/1123/887 855/1124/888 -f 859/1125/889 857/1126/890 856/1122/891 -f 861/1127/892 860/1128/893 859/1125/889 -f 863/1129/894 864/1130/895 862/1131/896 -f 863/1132/897 866/1133/898 864/1134/899 -f 867/1135/900 865/1136/900 868/1137/900 -f 869/1138/901 868/1139/902 870/1140/903 -f 869/1141/482 871/1142/482 857/1143/482 -f 871/1144/904 870/1145/903 874/1146/905 -f 870/1147/481 868/1148/481 859/1149/481 -f 855/1124/888 873/1150/906 876/1151/907 -f 876/1151/908 872/1152/909 875/1153/910 -f 872/1154/911 874/1155/905 875/1156/912 -f 862/1131/896 861/1127/913 863/1129/894 -f 878/1157/480 880/1158/480 877/1159/480 -f 878/1160/914 883/1161/915 881/1162/916 -f 882/1163/917 885/1164/918 883/1165/919 -f 885/1166/920 877/1167/921 886/1168/922 -f 881/1169/923 885/1170/924 886/1171/925 -f 878/1157/926 884/1172/926 882/1163/926 -f 879/1173/481 888/1174/481 889/1175/481 -f 881/1176/480 890/1177/480 887/1178/480 -f 881/1179/480 879/1180/480 878/1181/480 -f 877/1182/480 890/1183/480 886/1184/480 -f 892/1185/480 888/1186/480 891/1187/480 -f 880/1188/482 891/1189/482 890/1190/482 -f 879/1191/927 892/1192/927 880/1158/927 -f 890/1193/928 888/1194/928 887/1195/928 -f 888/1186/929 894/1196/930 893/1197/931 -f 894/1196/930 895/1198/932 893/1197/931 -f 894/1199/933 892/1200/934 896/1201/935 -f 889/1202/936 893/1203/937 895/1204/938 -f 898/1205/480 900/1206/480 897/1207/480 -f 899/1208/481 901/1209/481 902/1210/481 -f 905/1211/939 907/1212/939 904/1213/939 -f 907/1214/482 898/1215/482 897/1216/482 -f 909/1217/478 908/1218/478 897/1219/478 -f 904/1213/939 908/1220/939 909/1221/939 -f 902/1222/940 909/1221/940 903/1223/940 -f 901/1224/940 904/1213/940 902/1222/940 -f 897/1225/941 911/1226/942 898/1227/943 -f 897/1228/944 885/1229/944 910/1230/944 -f 899/1231/945 913/1232/946 900/1233/947 -f 913/1234/948 883/1235/948 900/1236/948 -f 915/1237/949 917/1238/950 914/1239/951 -f 918/1240/952 920/1241/953 921/1242/954 -f 916/1243/955 923/1244/956 917/1238/950 -f 921/1242/954 924/1245/957 925/1246/958 -f 922/1247/959 927/1248/960 923/1244/956 -f 925/1246/958 928/1249/961 929/1250/962 -f 926/1251/963 931/1252/964 927/1248/960 -f 929/1250/962 932/1253/965 933/1254/966 -f 930/1255/967 935/1256/968 931/1252/964 -f 933/1254/966 936/1257/969 937/1258/969 -f 934/1259/970 939/1260/971 935/1256/968 -f 936/1257/969 941/1261/972 937/1258/969 -f 939/1260/971 942/1262/973 943/1263/974 -f 940/1264/975 914/1239/951 941/1261/972 -f 943/1263/974 919/1265/976 918/1240/952 -f 944/1266/977 946/1267/978 947/1268/979 -f 948/1269/980 946/1267/978 945/1270/981 -f 950/1271/982 949/1272/983 948/1269/980 -f 952/1273/984 954/1274/985 955/1275/986 -f 956/1276/987 951/1277/988 950/1271/982 -f 953/1278/989 959/1279/990 954/1274/985 -f 960/1280/991 957/1281/992 956/1276/987 -f 958/1282/993 963/1283/994 959/1279/990 -f 964/1284/995 961/1285/996 960/1280/991 -f 962/1286/997 967/1287/998 963/1283/994 -f 968/1288/999 965/1289/1000 964/1284/995 -f 966/1290/1001 947/1291/979 967/1287/998 -f 970/1292/1002 969/1293/1003 968/1288/999 -f 971/1294/1004 973/1295/1005 969/1293/1003 -f 947/1268/979 974/1296/1006 975/1297/1007 -f 976/1298/1008 972/1299/1009 971/1294/1004 -f 949/1272/983 974/1296/1006 946/1267/978 -f 976/1298/1008 979/1300/1010 977/1301/1011 -f 951/1277/988 978/1302/1012 949/1272/983 -f 955/1275/986 981/1303/1013 979/1300/1010 -f 957/1281/992 980/1304/1014 951/1277/988 -f 954/1274/985 983/1305/1015 981/1303/1013 -f 961/1285/996 982/1306/1016 957/1281/992 -f 959/1279/990 985/1307/1017 983/1305/1015 -f 965/1289/1000 984/1308/1018 961/1285/996 -f 963/1283/994 987/1309/1019 985/1307/1017 -f 969/1293/1003 986/1310/1020 965/1289/1000 -f 967/1287/998 975/1311/1007 987/1309/1019 -f 987/1309/1019 988/1312/1021 989/1313/1022 -f 972/1299/1009 991/1314/1023 973/1295/1005 -f 975/1297/1007 992/1315/1024 988/1316/1021 -f 972/1299/1009 993/1317/1025 990/1318/1026 -f 978/1302/1012 992/1315/1024 974/1296/1006 -f 977/1301/1011 995/1319/1027 993/1317/1025 -f 980/1304/1014 994/1320/1028 978/1302/1012 -f 979/1300/1010 997/1321/1029 995/1319/1027 -f 982/1306/1016 996/1322/1030 980/1304/1014 -f 981/1303/1013 999/1323/1031 997/1321/1029 -f 984/1308/1018 998/1324/1032 982/1306/1016 -f 983/1305/1015 1001/1325/1033 999/1323/1031 -f 986/1310/1020 1000/1326/1034 984/1308/1018 -f 985/1307/1017 989/1313/1022 1001/1325/1033 -f 973/1295/1005 1002/1327/1035 986/1310/1020 -f 989/1313/1022 1003/1328/1036 1004/1329/1037 -f 990/1318/1026 1006/1330/1038 991/1314/1023 -f 988/1316/1021 1007/1331/1039 1003/1332/1036 -f 993/1317/1025 1005/1333/1040 990/1318/1026 -f 994/1320/1028 1007/1331/1039 992/1315/1024 -f 993/1317/1025 1010/1334/1041 1008/1335/1042 -f 996/1322/1030 1009/1336/1043 994/1320/1028 -f 995/1319/1027 1012/1337/1044 1010/1334/1041 -f 998/1324/1032 1011/1338/1045 996/1322/1030 -f 997/1321/1029 1014/1339/1046 1012/1337/1044 -f 1000/1326/1034 1013/1340/1047 998/1324/1032 -f 999/1323/1031 1016/1341/1048 1014/1339/1046 -f 1002/1327/1035 1015/1342/1049 1000/1326/1034 -f 1001/1325/1033 1004/1329/1037 1016/1341/1048 -f 991/1314/1023 1017/1343/1050 1002/1327/1035 -f 1014/1344/1046 1004/1345/1037 1017/1346/1050 -f 918/1240/1051 1019/1347/1052 943/1263/1053 -f 1020/1348/1054 925/1246/1055 929/1250/1056 -f 1021/1349/1057 921/1242/1058 925/1246/1055 -f 943/1263/1053 1023/1350/1059 939/1260/1060 -f 921/1242/1058 1018/1351/1061 918/1240/1051 -f 939/1260/1060 1024/1352/1062 935/1256/1063 -f 1025/1353/1064 1027/1354/1065 1028/1355/1066 -f 935/1256/1063 1029/1356/1067 931/1252/1068 -f 1030/1357/1069 1026/1358/1070 1025/1353/1064 -f 931/1252/1068 1032/1359/1071 927/1248/1072 -f 1034/1360/1073 1030/1357/1069 1033/1361/1074 -f 1036/1362/1075 1033/1361/1074 1035/1363/1076 -f 927/1248/1072 1037/1364/1077 923/1244/1078 -f 1039/1365/1079 1035/1363/1076 1038/1366/1080 -f 1040/1367/1081 933/1254/1082 937/1258/1083 -f 1043/1368/1084 1038/1366/1080 1042/1369/1085 -f 1045/1370/1086 1042/1369/1085 1044/1371/1087 -f 1047/1372/1088 1044/1371/1087 1046/1373/1089 -f 1049/1374/1090 1046/1373/1089 1048/1375/1091 -f 1037/1364/1077 917/1238/1092 923/1244/1078 -f 1051/1376/1093 1049/1374/1090 1048/1375/1091 -f 1050/1377/1094 914/1239/1095 917/1238/1092 -f 1028/1355/1066 1054/1378/1096 1055/1379/1097 -f 1055/1379/1097 1056/1380/1098 1057/1381/1099 -f 1053/1382/1100 941/1261/1101 914/1239/1095 -f 1057/1381/1099 1059/1383/1102 1060/1384/1103 -f 1058/1385/1104 937/1258/1083 941/1261/1101 -f 1061/1386/1105 1052/1387/1106 1051/1376/1093 -f 1041/1388/1107 929/1250/1056 933/1254/1082 -f 1060/1384/1103 1062/1389/1108 1061/1386/1105 -f 1027/1354/1109 1021/1349/1110 1020/1348/1109 -f 1045/1370/1111 1032/1359/1112 1029/1356/1111 -f 1054/1378/1113 1020/1348/1109 1041/1388/1113 -f 1043/1368/1114 1029/1356/1111 1024/1352/1114 -f 1039/1365/1115 1024/1352/1114 1023/1350/1115 -f 1059/1383/1116 1040/1367/1117 1058/1385/1116 -f 1036/1362/1118 1023/1350/1115 1019/1347/1118 -f 1062/1389/1119 1058/1385/1116 1053/1382/1119 -f 1034/1360/1120 1019/1347/1118 1018/1351/1120 -f 1052/1387/481 1053/1382/1119 1050/1377/481 -f 1031/1390/1121 1018/1351/1120 1022/1391/1121 -f 1049/1374/1122 1050/1377/481 1037/1364/1122 -f 1026/1358/1110 1022/1391/1121 1021/1349/1110 -f 1047/1372/1112 1037/1364/1122 1032/1359/1112 -f 1056/1380/1117 1041/1388/1113 1040/1367/1117 -f 1064/1392/1123 1066/1393/1124 1063/1394/1124 -f 924/1395/1125 953/1278/1126 952/1273/1127 -f 938/1396/1128 968/1288/1129 964/1284/1130 -f 938/1396/1128 960/1280/1131 934/1397/1114 -f 928/1398/1132 958/1399/1133 953/1400/1126 -f 942/1401/1134 970/1292/951 968/1288/1129 -f 926/1402/1135 948/1403/1136 922/1404/1137 -f 940/1405/1138 962/1406/1139 936/1407/1139 -f 934/1408/1114 956/1409/1140 930/1410/1141 -f 922/1404/1137 945/1411/1142 916/1412/1143 -f 932/1413/1113 962/1406/1139 958/1399/1133 -f 930/1410/1141 950/1414/1144 926/1402/1135 -f 915/1415/1145 966/1416/1146 940/1405/1138 -f 916/1412/1143 944/1417/1147 915/1418/1145 -f 919/1419/1148 1067/1420/1149 1068/1421/1150 -f 926/1422/1151 1070/1423/1152 930/1424/1152 -f 1072/1425/1153 1074/1426/1154 1071/1427/1155 -f 932/1428/1156 1075/1429/1157 1076/1430/1156 -f 936/1431/1158 1076/1430/1156 1077/1432/1159 -f 1078/1433/1160 1080/1434/1161 1081/1435/1162 -f 934/1436/1163 1083/1437/1164 938/1438/1165 -f 916/1439/1166 1085/1440/1167 922/1441/1167 -f 1086/1442/1168 1065/1443/1123 1064/1392/1123 -f 920/1444/1169 1089/1445/1170 924/1446/1170 -f 930/1424/1152 1082/1447/1163 934/1436/1163 -f 1090/1448/1171 1073/1449/1172 1072/1425/1153 -f 938/1438/1165 1067/1420/1149 942/1450/1149 -f 936/1431/1158 1092/1451/1173 940/1452/1174 -f 1068/1421/1175 1094/1453/1176 1088/1454/1177 -f 1092/1451/1178 1065/1455/1179 1087/1456/1180 -f 1089/1445/1181 1096/1457/1182 1075/1429/1183 -f 1082/1447/970 1081/1458/1184 1080/1459/968 -f 1083/1437/1185 1098/1460/1186 1067/1420/1187 -f 1085/1440/1188 1074/1461/305 1073/1462/1189 -f 1088/1454/1177 1095/1463/1190 1089/1445/1181 -f 1077/1432/1191 1066/1464/966 1065/1455/1179 -f 1082/1447/970 1097/1465/1192 1083/1437/1185 -f 1070/1423/1193 1091/1466/1194 1081/1458/1184 -f 1075/1429/1183 1066/1464/966 1076/1430/966 -f 1099/1467/1195 1087/1456/1180 1100/1468/1196 -f 1067/1420/1187 1093/1469/1197 1068/1421/1175 -f 1084/1470/1198 1100/1468/1196 1074/1461/305 -f 1069/1471/1199 1073/1462/1189 1091/1466/1194 -f 915/1472/1200 1092/1451/1173 1099/1467/1200 -f 1090/1448/1171 1081/1435/1162 1091/1473/1201 -f 916/1439/1166 1099/1467/1200 1084/1470/1166 -f 1101/1474/1202 1087/1475/1168 1086/1442/1168 -f 1102/1476/1203 1094/1477/1204 1093/1478/1205 -f 1071/1427/1155 1100/1479/1206 1101/1474/1202 -f 1104/1480/1207 1096/1481/1208 1095/1482/1207 -f 1106/1483/1209 1098/1484/1210 1097/1485/1209 -f 1103/1486/1204 1095/1482/1207 1094/1477/1204 -f 1079/1487/1161 1097/1485/1209 1080/1434/1161 -f 919/1419/1148 1088/1454/1169 920/1444/1169 -f 1063/1394/1124 1096/1481/1208 1105/1488/1208 -f 922/1441/1167 1069/1471/1151 926/1422/1151 -f 924/1446/1170 1075/1429/1157 928/1489/1157 -f 1107/1490/1210 1093/1478/1205 1098/1484/1210 -f 1080/1491/1211 1108/1492/1212 1109/1493/1211 -f 1097/1494/1213 1111/1495/1214 1098/1496/1215 -f 1073/1497/1216 1112/1498/1217 1113/1499/1218 -f 1094/1500/1219 1115/1501/1220 1095/1502/1221 -f 1065/1503/1222 1116/1504/1223 1117/1505/1224 -f 1080/1491/1211 1110/1506/1225 1097/1494/1213 -f 1118/1507/1226 1081/1508/1227 1091/1509/1228 -f 1096/1510/1229 1116/1504/1223 1066/1511/1223 -f 1120/1512/1230 1100/1513/1231 1087/1514/1232 -f 1098/1496/1215 1122/1515/1233 1093/1516/1234 -f 1121/1517/1235 1074/1518/1236 1100/1519/1231 -f 1091/1509/1228 1113/1499/1218 1118/1507/1226 -f 1093/1516/1234 1114/1520/1237 1094/1500/1219 -f 1087/1514/1232 1117/1505/1224 1120/1512/1230 -f 1095/1502/1221 1119/1521/1238 1096/1510/1229 -f 1124/1522/949 1126/1523/1239 1123/1524/951 -f 1127/1525/1240 1129/1526/1241 1130/1527/1242 -f 1125/1528/1243 1132/1529/1244 1126/1523/1239 -f 1130/1530/1242 1133/1531/957 1134/1532/958 -f 1131/1533/1245 1136/1534/1246 1132/1529/1244 -f 1134/1532/958 1137/1535/961 1138/1536/962 -f 1135/1537/963 1140/1538/1247 1136/1534/1246 -f 1138/1536/962 1141/1539/965 1142/1540/966 -f 1139/1541/967 1144/1542/968 1140/1538/1247 -f 1142/1540/966 1145/1543/1248 1146/1544/969 -f 1143/1545/968 1148/1546/971 1144/1542/968 -f 1145/1543/1248 1150/1547/975 1146/1544/969 -f 1148/1546/971 1151/1548/973 1152/1549/974 -f 1149/1550/975 1123/1524/951 1150/1547/975 -f 1152/1549/974 1128/1551/1249 1127/1525/1240 -f 1153/1552/977 1155/1553/978 1156/1554/979 -f 1157/1555/1250 1159/1556/1251 1160/1557/1252 -f 1161/1558/1253 1155/1553/978 1154/1559/1254 -f 1158/1560/1255 1164/1561/1256 1159/1562/1251 -f 1165/1563/982 1162/1564/983 1161/1558/1257 -f 1163/1565/1258 1168/1566/1259 1164/1561/1256 -f 1169/1567/987 1166/1568/988 1165/1563/982 -f 1167/1569/1260 1172/1570/990 1168/1566/1259 -f 1173/1571/991 1170/1572/992 1169/1567/987 -f 1171/1573/1261 1176/1574/994 1172/1570/990 -f 1177/1575/1262 1174/1576/996 1173/1571/991 -f 1175/1577/997 1180/1578/998 1176/1574/994 -f 1181/1579/999 1178/1580/1263 1177/1575/1262 -f 1179/1581/1001 1156/1554/979 1180/1578/998 -f 1157/1555/1250 1182/1582/1264 1181/1579/999 -f 1160/1557/1252 1184/1583/1005 1182/1582/1264 -f 1156/1554/979 1185/1584/1265 1186/1585/1007 -f 1159/1556/1251 1183/1586/1266 1160/1557/1252 -f 1162/1564/983 1185/1584/1265 1155/1553/978 -f 1159/1562/1251 1189/1587/1010 1187/1588/1267 -f 1166/1568/988 1188/1589/1012 1162/1564/983 -f 1164/1561/1256 1191/1590/1013 1189/1587/1010 -f 1170/1572/992 1190/1591/1014 1166/1568/988 -f 1168/1566/1259 1193/1592/1015 1191/1590/1013 -f 1174/1576/996 1192/1593/1268 1170/1572/992 -f 1172/1570/990 1195/1594/1269 1193/1592/1015 -f 1178/1580/1263 1194/1595/1018 1174/1576/996 -f 1176/1574/994 1197/1596/1019 1195/1594/1269 -f 1182/1582/1264 1196/1597/1020 1178/1580/1263 -f 1180/1578/998 1186/1585/1007 1197/1596/1019 -f 1197/1596/1019 1198/1598/1021 1199/1599/1022 -f 1183/1586/1266 1201/1600/1270 1184/1583/1005 -f 1186/1585/1007 1202/1601/1271 1198/1598/1021 -f 1183/1586/1266 1203/1602/1025 1200/1603/1026 -f 1188/1589/1012 1202/1601/1271 1185/1584/1265 -f 1187/1588/1267 1205/1604/1027 1203/1605/1025 -f 1190/1591/1014 1204/1606/1028 1188/1589/1012 -f 1189/1587/1010 1207/1607/1272 1205/1604/1027 -f 1192/1593/1268 1206/1608/1273 1190/1591/1014 -f 1191/1590/1013 1209/1609/1031 1207/1607/1272 -f 1194/1595/1018 1208/1610/1274 1192/1593/1268 -f 1193/1592/1015 1211/1611/1275 1209/1609/1031 -f 1196/1597/1020 1210/1612/1034 1194/1595/1018 -f 1195/1594/1269 1199/1599/1022 1211/1611/1275 -f 1184/1583/1005 1212/1613/1276 1196/1597/1020 -f 1199/1599/1022 1213/1614/1036 1214/1615/1277 -f 1200/1603/1026 1216/1616/1278 1201/1600/1270 -f 1198/1598/1021 1217/1617/1039 1213/1614/1036 -f 1203/1602/1025 1215/1618/1279 1200/1603/1026 -f 1204/1606/1028 1217/1617/1039 1202/1601/1271 -f 1203/1605/1025 1220/1619/1041 1218/1620/1280 -f 1206/1608/1273 1219/1621/1043 1204/1606/1028 -f 1205/1604/1027 1222/1622/1281 1220/1619/1041 -f 1208/1610/1274 1221/1623/1282 1206/1608/1273 -f 1207/1607/1272 1224/1624/1283 1222/1622/1281 -f 1210/1612/1034 1223/1625/1284 1208/1610/1274 -f 1209/1609/1031 1226/1626/1048 1224/1624/1283 -f 1212/1613/1276 1225/1627/1285 1210/1612/1034 -f 1211/1611/1275 1214/1615/1277 1226/1626/1048 -f 1201/1600/1270 1227/1628/1050 1212/1613/1276 -f 1227/1629/1050 1220/1630/1041 1214/1631/1277 -f 1127/1525/1286 1229/1632/1287 1152/1549/1288 -f 1230/1633/1289 1134/1532/1290 1138/1536/1291 -f 1231/1634/1057 1130/1530/1292 1134/1532/1290 -f 1152/1549/1288 1233/1635/1293 1148/1546/1294 -f 1130/1527/1292 1228/1636/1061 1127/1525/1286 -f 1148/1546/1294 1234/1637/1062 1144/1542/1295 -f 1235/1638/1296 1237/1639/1297 1238/1640/1298 -f 1144/1542/1295 1239/1641/1299 1140/1538/1300 -f 1240/1642/1301 1236/1643/1302 1235/1638/1296 -f 1140/1538/1300 1242/1644/1303 1136/1534/1304 -f 1244/1645/1305 1240/1642/1301 1243/1646/1306 -f 1246/1647/1307 1243/1646/1306 1245/1648/1308 -f 1136/1534/1304 1247/1649/1077 1132/1529/1309 -f 1249/1650/1310 1245/1648/1308 1248/1651/1311 -f 1250/1652/1312 1142/1540/1313 1146/1544/1314 -f 1253/1653/1315 1248/1651/1311 1252/1654/1316 -f 1255/1655/1317 1252/1654/1316 1254/1656/1318 -f 1257/1657/1319 1254/1656/1318 1256/1658/1320 -f 1259/1659/1321 1256/1658/1320 1258/1660/1322 -f 1247/1649/1077 1126/1523/1323 1132/1529/1309 -f 1261/1661/1324 1259/1659/1321 1258/1660/1322 -f 1260/1662/1094 1123/1524/1325 1126/1523/1323 -f 1238/1640/1298 1264/1663/1326 1265/1664/1327 -f 1265/1664/1327 1266/1665/1328 1267/1666/1329 -f 1263/1667/1100 1150/1547/1330 1123/1524/1325 -f 1267/1666/1329 1269/1668/1331 1270/1669/1332 -f 1268/1670/1333 1146/1544/1314 1150/1547/1330 -f 1271/1671/1334 1262/1672/1106 1261/1661/1324 -f 1251/1673/1335 1138/1536/1291 1142/1540/1313 -f 1270/1669/1332 1272/1674/1336 1271/1671/1334 -f 1237/1639/1109 1231/1634/1110 1230/1633/1109 -f 1255/1655/1111 1242/1644/1112 1239/1641/1111 -f 1264/1663/1113 1230/1633/1109 1251/1673/1113 -f 1253/1653/1114 1239/1641/1111 1234/1637/1114 -f 1249/1650/1115 1234/1637/1114 1233/1635/1115 -f 1269/1668/1116 1250/1652/1117 1268/1670/1116 -f 1246/1647/1118 1233/1635/1115 1229/1632/1118 -f 1272/1674/1337 1268/1670/1116 1263/1667/1337 -f 1244/1645/1120 1229/1632/1118 1228/1636/1120 -f 1262/1672/481 1263/1667/1337 1260/1662/481 -f 1241/1675/1121 1228/1636/1120 1232/1676/1121 -f 1259/1659/1338 1260/1662/481 1247/1649/1338 -f 1236/1643/1110 1232/1677/1121 1231/1634/1110 -f 1257/1657/1112 1247/1649/1338 1242/1644/1112 -f 1266/1665/1117 1251/1673/1113 1250/1652/1117 -f 1273/1678/1124 1275/1679/1123 1276/1680/1124 -f 1128/1681/1339 1158/1682/1340 1157/1683/1341 -f 1133/1684/1342 1167/1685/1126 1163/1686/1343 -f 1147/1687/1128 1181/1688/1129 1177/1689/1130 -f 1129/1690/1344 1163/1686/1343 1158/1691/1340 -f 1147/1687/1128 1173/1692/1131 1143/1693/1114 -f 1137/1694/1132 1171/1695/1133 1167/1685/1126 -f 1151/1696/1345 1157/1683/1341 1181/1688/1129 -f 1135/1697/1135 1161/1558/958 1131/1698/958 -f 1149/1699/1138 1175/1577/1139 1145/1700/1139 -f 1143/1701/1114 1169/1567/1140 1139/1702/1141 -f 1141/1703/1113 1175/1704/1139 1171/1695/1133 -f 1139/1702/1141 1165/1563/1144 1135/1697/1135 -f 1124/1705/974 1179/1581/1146 1149/1699/1138 -f 1128/1706/1346 1278/1707/1347 1151/1708/1347 -f 1279/1709/1348 1135/1710/1349 1139/1711/1348 -f 1282/1712/1350 1284/1713/1154 1281/1714/1351 -f 1141/1715/1352 1286/1716/1353 1137/1717/1353 -f 1287/1718/1354 1141/1715/1352 1145/1719/1354 -f 1289/1720/1161 1291/1721/1355 1288/1722/1356 -f 1147/1723/1357 1293/1724/1358 1143/1725/1359 -f 1294/1726/1360 1125/1727/1361 1131/1728/1360 -f 1296/1729/1362 1275/1679/1123 1274/1730/1123 -f 1133/1731/1363 1299/1732/1364 1129/1733/1365 -f 1143/1725/1359 1279/1709/1348 1139/1711/1348 -f 1300/1734/1201 1283/1735/1350 1282/1712/1350 -f 1278/1707/1347 1147/1723/1357 1151/1708/1347 -f 1302/1736/1366 1145/1719/1354 1149/1737/1366 -f 1303/1738/1367 1277/1739/1368 1299/1732/1369 -f 1302/1736/1370 1275/1740/1371 1287/1718/1372 -f 1305/1741/1373 1298/1742/1374 1286/1716/1375 -f 1293/1724/1131 1291/1743/1111 1279/1709/1376 -f 1307/1744/1377 1292/1745/1378 1278/1707/1379 -f 1294/1726/1380 1284/1746/1381 1295/1747/1382 -f 1306/1748/1383 1299/1732/1369 1298/1742/1374 -f 1287/1718/1372 1276/1749/1133 1285/1750/1113 -f 1308/1751/1384 1293/1724/1131 1292/1745/1378 -f 1279/1709/1376 1301/1752/1385 1280/1753/1386 -f 1276/1749/1133 1286/1716/1375 1285/1750/1113 -f 1309/1754/1387 1297/1755/1388 1302/1736/1370 -f 1304/1756/1389 1278/1707/1379 1277/1739/1368 -f 1295/1747/1382 1310/1757/1390 1309/1754/1387 -f 1280/1753/1386 1283/1758/1391 1294/1726/1380 -f 1309/1754/1392 1149/1737/1366 1124/1759/1393 -f 1288/1722/1356 1301/1760/1201 1300/1734/1201 -f 1295/1747/1361 1124/1759/1393 1125/1727/1361 -f 1296/1729/1362 1310/1761/1394 1297/1762/1362 -f 1312/1763/1205 1303/1764/1395 1304/1765/1205 -f 1281/1714/1351 1310/1761/1394 1311/1766/1206 -f 1315/1767/1208 1306/1768/1396 1314/1769/1396 -f 1316/1770/1209 1307/1771/1210 1308/1772/1209 -f 1313/1773/1395 1306/1768/1396 1303/1764/1395 -f 1289/1720/1161 1308/1772/1209 1290/1774/1397 -f 1129/1775/1365 1277/1739/1346 1128/1706/1346 -f 1273/1678/1124 1305/1776/1208 1315/1767/1208 -f 1280/1753/1349 1131/1728/1360 1135/1710/1349 -f 1137/1717/1353 1298/1742/1398 1133/1731/1363 -f 1317/1777/1210 1304/1765/1205 1307/1771/1210 -f 1290/1778/1399 1318/1779/1212 1319/1780/1399 -f 1308/1781/1400 1321/1782/1214 1307/1783/1215 -f 1283/1784/1401 1322/1785/1217 1323/1786/1402 -f 1303/1787/1403 1325/1788/1404 1306/1789/1405 -f 1275/1790/1406 1326/1791/1407 1327/1792/1408 -f 1290/1778/1399 1320/1793/1409 1308/1781/1400 -f 1328/1794/1226 1291/1795/1227 1301/1796/1228 -f 1305/1797/1410 1326/1791/1407 1276/1798/1407 -f 1330/1799/1411 1310/1800/1412 1297/1801/1232 -f 1307/1783/1215 1332/1802/1413 1304/1803/1414 -f 1331/1804/1415 1284/1805/1236 1310/1800/1412 -f 1301/1796/1228 1323/1786/1402 1328/1794/1226 -f 1304/1803/1414 1324/1806/1237 1303/1807/1403 -f 1297/1801/1232 1327/1792/1408 1330/1799/1411 -f 1306/1789/1405 1329/1808/1416 1305/1797/1410 -f 1333/1809/1417 1334/1810/1418 1335/1811/1419 -f 1336/1812/1420 1333/1809/1417 1335/1811/1419 -f 1337/1813/1421 1336/1812/1420 1338/1814/1422 -f 1336/1812/1420 1335/1811/1419 1338/1814/1422 -f 1339/1815/1423 1340/1816/1423 1341/1817/1423 -f 1342/1818/1424 1343/1819/1425 1344/1820/1426 -f 1341/1817/1427 1345/1821/1428 1342/1818/1424 -f 1340/1816/1429 1345/1821/1428 1341/1817/1427 -f 1339/1815/1430 1345/1821/1428 1340/1816/1429 -f 1339/1815/1430 1346/1822/1431 1345/1821/1428 -f 1343/1819/1425 1347/1823/1432 1344/1820/1426 -f 1348/1824/1433 1342/1818/1424 1345/1821/1428 -f 1348/1824/1433 1349/1825/1434 1343/1819/1425 -f 1350/1826/1435 1348/1824/1433 1345/1821/1428 -f 1346/1822/1431 1350/1826/1435 1345/1821/1428 -f 1350/1826/1435 1351/1827/1436 1349/1825/1434 -f 1346/1822/1431 1352/1828/1437 1350/1826/1435 -f 1343/1819/1425 1353/1829/1438 1347/1823/1432 -f 1343/1819/1425 1354/1830/1439 1353/1829/1438 -f 1349/1825/1434 1354/1830/1439 1343/1819/1425 -f 1351/1827/1436 1354/1830/1439 1349/1825/1434 -f 1350/1826/1435 1355/1831/1440 1351/1827/1436 -f 1352/1828/1437 1355/1831/1440 1350/1826/1435 -f 1352/1828/1437 1356/1832/1441 1355/1831/1440 -f 1357/1833/1442 1359/1834/1443 1360/1835/1443 -f 1337/1836/1444 1364/1837/1445 1365/1838/1446 -f 1358/1839/1442 1366/1840/476 1362/1841/476 -f 1359/1842/1447 487/1843/1448 1368/1844/1449 -f 1369/1845/1450 1367/1846/1451 1361/1847/1452 -f 1358/1848/1453 1367/1849/1453 1359/1850/1453 -f 1357/1851/1454 1370/1852/1454 1369/1853/1454 -f 1371/1854/1455 487/1855/1455 488/1856/1455 -f 1360/1857/1456 488/1858/1457 1370/1859/1458 -f 1359/1860/1443 1371/1854/476 1360/1861/1443 -f 1370/1862/1451 487/1855/1459 1367/1846/1451 -f 1372/1863/1460 1341/1817/1460 1342/1818/1460 -f 1344/1820/1461 1347/1823/1461 1373/1864/1461 -f 1373/1865/1462 1366/1866/1463 1369/1867/1464 -f 1374/1868/1465 1337/1813/1421 1338/1814/1422 -f 1364/1869/1466 1337/1813/1421 1374/1868/1465 -f 1366/1870/480 1373/1871/1467 1353/1872/1468 -f 1334/1810/1418 1333/1809/1417 1363/1873/1469 -f 1258/1874/1322 1248/1875/1311 1235/1876/1296 -f 1057/1877/1099 1048/1878/1091 1038/1879/1080 -f 482/1880/481 489/1881/481 487/1882/481 -f 578/1883/1470 580/1884/1471 565/1885/1472 -f 1364/1886/1473 1339/1887/1474 1361/1847/1452 -f 845/1888/482 847/1889/482 819/1890/482 -f 481/1891/482 484/1892/477 488/1893/482 -f 853/1894/1475 823/1895/1476 844/1089/1477 -f 89/1896/83 80/1897/84 16/1898/1478 -f 486/1899/1479 53/1900/53 84/1901/77 -f 1/1/1 2/1902/1480 3/2/2 -f 4/3/3 3/2/2 5/4/4 -f 6/5/5 5/4/4 7/6/6 -f 8/7/7 7/6/6 9/8/8 -f 10/9/9 9/8/8 11/10/10 -f 12/11/11 11/10/10 13/12/12 -f 15/14/14 16/1903/1478 17/15/15 -f 17/15/15 19/18/18 20/17/17 -f 19/18/18 21/1904/1481 22/19/19 -f 22/19/19 21/1904/1481 23/20/20 -f 24/21/21 23/20/20 25/22/22 -f 25/22/22 27/25/25 28/24/24 -f 27/25/25 29/27/1482 30/26/26 -f 29/27/27 31/29/30 32/28/28 -f 31/29/30 33/31/32 34/30/31 -f 33/31/32 35/33/34 36/32/33 -f 35/33/34 37/1905/1483 38/34/35 -f 38/34/35 37/1905/1483 39/35/36 -f 40/36/37 39/35/36 41/37/38 -f 42/38/39 41/37/38 43/39/40 -f 44/40/41 43/39/40 45/41/42 -f 46/42/44 45/41/1484 47/43/45 -f 48/44/46 47/43/45 49/45/47 -f 49/45/47 51/48/50 52/47/49 -f 51/48/50 2/1902/1480 1/1/1 -f 54/49/51 55/54/56 56/50/52 -f 57/52/54 58/94/95 59/53/55 -f 24/21/21 26/23/23 60/55/57 -f 44/40/41 62/66/68 63/57/59 -f 10/9/9 12/11/11 64/58/60 -f 18/16/16 66/67/69 67/60/62 -f 34/30/31 36/32/33 68/61/63 -f 4/3/3 70/70/72 71/63/65 -f 1/1/1 71/63/65 72/64/66 -f 54/49/51 73/71/73 57/52/54 -f 26/23/23 28/24/24 74/65/67 -f 46/42/44 75/74/76 62/66/68 -f 14/13/13 76/76/78 64/58/60 -f 20/17/17 77/78/80 66/67/69 -f 36/32/33 38/34/35 78/68/70 -f 4/3/3 6/5/5 79/69/71 -f 73/71/73 80/82/84 81/72/74 -f 28/24/24 30/26/26 82/73/75 -f 48/44/46 83/84/86 75/74/76 -f 84/75/77 85/85/87 76/76/78 -f 20/17/17 22/19/19 86/77/79 -f 38/34/35 40/36/37 87/79/81 -f 6/5/5 8/7/7 88/80/82 -f 89/81/83 90/96/88 81/72/74 -f 30/26/26 32/28/28 91/83/85 -f 50/46/48 92/88/89 83/84/86 -f 53/51/53 56/50/52 85/85/87 -f 22/19/19 24/21/21 61/56/58 -f 40/36/37 42/38/39 63/57/59 -f 8/7/7 10/9/9 65/59/61 -f 15/14/14 67/60/62 90/86/88 -f 32/28/28 34/30/31 69/62/64 -f 52/47/49 72/64/66 92/88/89 -f 94/89/90 95/127/127 96/90/91 -f 68/61/63 78/68/70 97/92/93 -f 81/72/74 99/97/97 58/94/95 -f 78/68/70 87/79/81 100/95/96 -f 90/96/88 93/152/92 99/97/97 -f 87/79/81 63/57/59 101/98/98 -f 67/60/62 94/89/90 93/91/92 -f 62/66/68 102/102/102 101/98/98 -f 66/67/69 103/103/103 94/89/90 -f 71/63/65 70/70/72 104/99/99 -f 62/66/68 75/74/76 106/101/101 -f 77/78/80 107/106/106 103/103/103 -f 70/70/72 79/69/71 108/104/104 -f 75/74/76 83/84/86 109/105/105 -f 86/77/79 110/109/109 107/106/106 -f 79/69/71 88/80/82 111/107/107 -f 83/84/86 92/88/89 112/108/108 -f 61/56/58 113/112/112 110/109/109 -f 88/80/82 65/59/61 114/110/110 -f 92/88/89 72/64/66 115/111/111 -f 60/55/57 116/114/114 113/112/112 -f 65/59/61 64/58/60 117/113/113 -f 72/64/66 71/63/65 105/100/100 -f 74/65/67 118/116/116 116/114/114 -f 64/58/60 76/76/78 119/115/115 -f 82/73/75 120/118/118 118/116/116 -f 76/76/78 85/85/87 121/117/117 -f 91/83/85 122/119/119 120/118/118 -f 56/50/52 123/120/120 121/117/117 -f 69/62/64 124/121/121 122/119/119 -f 55/54/56 59/53/55 123/120/120 -f 69/62/64 68/61/63 98/93/94 -f 126/122/122 127/162/161 128/123/123 -f 101/98/98 102/102/102 129/125/125 -f 103/103/103 131/131/131 95/127/127 -f 105/100/100 104/99/99 132/128/128 -f 102/102/102 106/101/101 134/130/130 -f 107/106/106 125/124/124 131/131/131 -f 104/99/99 108/104/104 135/132/132 -f 106/101/101 109/105/105 136/133/133 -f 110/109/109 126/122/122 125/124/124 -f 108/104/104 111/107/107 137/134/134 -f 109/105/105 112/108/108 138/135/135 -f 113/112/112 139/138/138 126/122/122 -f 111/107/107 114/110/110 140/136/136 -f 112/108/108 115/111/111 141/137/137 -f 116/114/114 142/140/140 139/138/138 -f 114/110/110 117/113/113 143/139/139 -f 115/111/111 105/100/100 133/129/129 -f 118/116/116 144/142/142 142/140/140 -f 117/113/113 119/115/115 145/141/141 -f 120/118/118 146/144/144 144/142/142 -f 119/115/115 121/117/117 147/143/143 -f 122/119/119 148/146/146 146/144/144 -f 121/117/117 123/120/120 149/145/145 -f 124/121/121 150/148/148 148/146/146 -f 59/53/55 151/149/149 149/145/145 -f 124/121/121 98/93/94 152/147/147 -f 58/94/95 153/151/151 151/149/149 -f 98/93/94 97/92/93 154/150/150 -f 99/97/97 155/153/152 153/151/151 -f 100/95/96 156/154/153 154/150/150 -f 93/152/92 96/178/91 155/153/152 -f 101/98/98 130/126/126 156/154/153 -f 158/155/154 159/193/191 160/156/155 -f 135/132/132 137/134/134 161/158/157 -f 136/133/133 138/135/135 163/160/159 -f 139/138/138 165/165/164 127/162/161 -f 137/134/134 140/136/136 166/163/162 -f 138/135/135 141/137/137 167/164/163 -f 142/140/140 157/157/156 165/165/164 -f 140/136/136 143/139/139 168/166/165 -f 141/137/137 133/129/129 169/167/166 -f 144/142/142 158/155/154 157/157/156 -f 143/139/139 145/141/141 170/168/167 -f 146/144/144 171/170/169 158/155/154 -f 145/141/141 147/143/143 172/169/168 -f 148/146/146 173/172/171 171/170/169 -f 147/143/143 149/145/145 174/171/170 -f 150/148/148 175/174/173 173/172/171 -f 151/149/149 176/175/174 174/171/170 -f 150/148/148 152/147/147 177/173/172 -f 153/151/151 178/177/176 176/175/174 -f 152/147/147 154/150/150 179/176/175 -f 155/153/152 180/179/177 178/177/176 -f 156/154/153 181/181/179 179/176/175 -f 96/178/91 182/202/180 180/179/177 -f 156/154/153 130/126/126 183/180/178 -f 95/127/127 184/184/182 182/182/180 -f 130/126/126 129/125/125 185/183/181 -f 131/131/131 186/187/185 184/184/182 -f 133/129/129 132/128/128 187/185/183 -f 129/125/125 134/130/130 188/186/184 -f 125/124/124 128/123/123 186/187/185 -f 132/128/128 135/132/132 162/159/158 -f 134/130/130 136/133/133 164/161/160 -f 190/188/186 191/225/222 192/189/187 -f 168/166/165 170/168/167 193/191/189 -f 171/170/169 195/195/193 159/193/191 -f 170/168/167 172/169/168 196/194/192 -f 173/172/171 189/190/188 195/195/193 -f 172/169/168 174/171/170 197/196/194 -f 175/174/173 190/188/186 189/190/188 -f 176/175/174 198/197/195 197/196/194 -f 177/173/172 199/199/197 190/188/186 -f 178/177/176 200/200/198 198/197/195 -f 177/173/172 179/176/175 201/198/196 -f 180/179/177 202/203/200 200/200/198 -f 179/176/175 181/181/179 203/201/199 -f 182/202/180 204/230/202 202/203/200 -f 181/181/179 183/180/178 205/204/201 -f 184/184/182 206/207/204 204/205/202 -f 183/180/178 185/183/181 207/206/203 -f 186/187/185 208/211/208 206/207/204 -f 169/167/166 187/185/183 209/208/205 -f 185/183/181 188/186/184 211/210/207 -f 128/123/123 212/214/211 208/211/208 -f 187/185/183 162/159/158 213/212/209 -f 188/186/184 164/161/160 214/213/210 -f 127/162/161 215/217/214 212/214/211 -f 162/159/158 161/158/157 216/215/212 -f 164/161/160 163/160/159 217/216/213 -f 165/165/164 218/220/217 215/217/214 -f 161/158/157 166/163/162 219/218/215 -f 163/160/159 167/164/163 220/219/216 -f 157/157/156 160/156/155 218/220/217 -f 166/163/162 168/166/165 194/192/190 -f 167/164/163 169/167/166 210/209/206 -f 221/221/218 222/229/226 223/222/219 -f 198/197/195 225/226/223 226/224/221 -f 199/199/197 227/227/224 191/225/222 -f 200/200/198 228/228/225 225/226/223 -f 201/198/196 221/221/218 227/227/224 -f 202/203/200 229/231/227 228/228/225 -f 201/198/196 203/201/199 222/229/226 -f 204/230/202 230/258/229 229/231/227 -f 203/201/199 205/204/201 231/232/228 -f 206/207/204 232/235/231 230/233/229 -f 205/204/201 207/206/203 233/234/230 -f 208/211/208 234/239/235 232/235/231 -f 210/209/206 209/208/205 235/236/232 -f 207/206/203 211/210/207 237/238/234 -f 212/214/211 238/242/238 234/239/235 -f 209/208/205 213/212/209 239/240/236 -f 211/210/207 214/213/210 240/241/237 -f 215/217/214 241/245/241 238/242/238 -f 213/212/209 216/215/212 242/243/239 -f 214/213/210 217/216/213 243/244/240 -f 218/220/217 244/248/244 241/245/241 -f 216/215/212 219/218/215 245/246/242 -f 217/216/213 220/219/216 246/247/243 -f 160/156/155 247/250/246 244/248/244 -f 219/218/215 194/192/190 248/249/245 -f 220/219/216 210/209/206 236/237/233 -f 159/193/191 249/252/248 247/250/246 -f 194/192/190 193/191/189 250/251/247 -f 195/195/193 251/254/250 249/252/248 -f 193/191/189 196/194/192 252/253/249 -f 189/190/188 192/189/187 251/254/250 -f 196/194/192 197/196/194 226/224/221 -f 253/255/251 254/282/277 255/256/252 -f 230/258/229 257/297/256 258/259/254 -f 222/229/226 231/232/228 259/260/255 -f 232/235/231 260/263/258 257/261/256 -f 231/232/228 233/234/230 261/262/257 -f 234/239/235 262/267/262 260/263/258 -f 236/237/233 235/236/232 263/264/259 -f 233/234/230 237/238/234 265/266/261 -f 238/242/238 266/270/265 262/267/262 -f 235/236/232 239/240/236 267/268/263 -f 237/238/234 240/241/237 268/269/264 -f 241/245/241 269/273/268 266/270/265 -f 239/240/236 242/243/239 270/271/266 -f 240/241/237 243/244/240 271/272/267 -f 244/248/244 272/276/271 269/273/268 -f 242/243/239 245/246/242 273/274/269 -f 243/244/240 246/247/243 274/275/270 -f 247/250/246 275/278/273 272/276/271 -f 245/246/242 248/249/245 276/277/272 -f 246/247/243 236/237/233 264/265/260 -f 249/252/248 277/280/275 275/278/273 -f 248/249/245 250/251/247 278/279/274 -f 251/254/250 279/281/276 277/280/275 -f 250/251/247 252/253/249 253/255/251 -f 192/189/187 280/283/278 279/281/276 -f 252/253/249 226/224/221 254/282/277 -f 191/225/222 281/284/279 280/283/278 -f 225/226/223 282/285/280 254/282/277 -f 227/227/224 283/286/281 281/284/279 -f 228/228/225 284/287/282 282/285/280 -f 221/221/218 224/223/220 283/286/281 -f 229/231/227 258/259/254 284/287/282 -f 286/288/283 287/326/319 288/289/284 -f 281/284/279 289/292/287 290/291/286 -f 282/285/280 291/293/288 255/256/252 -f 283/286/281 292/294/289 289/292/287 -f 284/287/282 285/290/285 291/293/288 -f 224/223/220 293/296/291 292/294/289 -f 258/259/254 286/288/283 285/290/285 -f 224/223/220 223/222/219 294/295/290 -f 257/297/256 295/325/293 286/288/283 -f 223/222/219 259/260/255 296/298/292 -f 260/263/258 297/301/295 295/299/293 -f 259/260/255 261/262/257 298/300/294 -f 262/267/262 299/305/299 297/301/295 -f 264/265/260 263/264/259 300/302/296 -f 261/262/257 265/266/261 302/304/298 -f 266/270/265 303/308/302 299/305/299 -f 263/264/259 267/268/263 304/306/300 -f 265/266/261 268/269/264 305/307/301 -f 269/273/268 306/311/305 303/308/302 -f 267/268/263 270/271/266 307/309/303 -f 268/269/264 271/272/267 308/310/304 -f 272/276/271 309/314/308 306/311/305 -f 270/271/266 273/274/269 310/312/306 -f 271/272/267 274/275/270 311/313/307 -f 275/278/273 312/316/310 309/314/308 -f 273/274/269 276/277/272 313/315/309 -f 274/275/270 264/265/260 301/303/297 -f 277/280/275 314/318/312 312/316/310 -f 276/277/272 278/279/274 315/317/311 -f 279/281/276 316/319/313 314/318/312 -f 278/279/274 253/255/251 256/257/253 -f 280/283/278 290/291/286 316/319/313 -f 318/320/314 319/360/353 320/321/315 -f 293/296/291 294/295/290 321/323/317 -f 295/325/293 323/382/321 287/326/319 -f 294/295/290 296/298/292 324/327/320 -f 297/301/295 317/322/316 323/328/321 -f 296/298/292 298/300/294 325/329/322 -f 299/305/299 318/320/314 317/322/316 -f 301/303/297 300/302/296 326/330/323 -f 298/300/294 302/304/298 328/332/325 -f 303/308/302 329/335/328 318/320/314 -f 300/302/296 304/306/300 330/333/326 -f 302/304/298 305/307/301 331/334/327 -f 306/311/305 332/338/331 329/335/328 -f 304/306/300 307/309/303 333/336/329 -f 305/307/301 308/310/304 334/337/330 -f 309/314/308 335/341/334 332/338/331 -f 307/309/303 310/312/306 336/339/332 -f 308/310/304 311/313/307 337/340/333 -f 312/316/310 338/343/336 335/341/334 -f 310/312/306 313/315/309 339/342/335 -f 311/313/307 301/303/297 327/331/324 -f 314/318/312 340/345/338 338/343/336 -f 313/315/309 315/317/311 341/344/337 -f 316/319/313 342/347/340 340/345/338 -f 315/317/311 256/257/253 343/346/339 -f 290/291/286 344/349/342 342/347/340 -f 256/257/253 255/256/252 345/348/341 -f 289/292/287 346/350/343 344/349/342 -f 291/293/288 347/351/344 345/348/341 -f 292/294/289 348/352/345 346/350/343 -f 285/290/285 288/289/284 347/351/344 -f 293/296/291 322/324/318 348/352/345 -f 350/353/346 351/393/385 352/354/347 -f 327/331/324 326/330/323 353/356/349 -f 325/329/322 328/332/325 355/358/351 -f 329/335/328 357/363/356 319/360/353 -f 326/330/323 330/333/326 358/361/354 -f 328/332/325 331/334/327 359/362/355 -f 332/338/331 349/355/348 357/363/356 -f 330/333/326 333/336/329 360/364/357 -f 331/334/327 334/337/330 361/365/358 -f 335/341/334 350/353/346 349/355/348 -f 333/336/329 336/339/332 362/366/359 -f 334/337/330 337/340/333 363/367/360 -f 338/343/336 364/369/362 350/353/346 -f 336/339/332 339/342/335 365/368/361 -f 337/340/333 327/331/324 354/357/350 -f 340/345/338 366/371/364 364/369/362 -f 339/342/335 341/344/337 367/370/363 -f 342/347/340 368/373/366 366/371/364 -f 341/344/337 343/346/339 369/372/365 -f 344/349/342 370/375/368 368/373/366 -f 343/346/339 345/348/341 371/374/367 -f 346/350/343 372/376/369 370/375/368 -f 347/351/344 373/377/370 371/374/367 -f 348/352/345 374/378/371 372/376/369 -f 288/289/284 375/379/372 373/377/370 -f 322/324/318 376/381/374 374/378/371 -f 287/326/319 377/383/375 375/379/372 -f 322/324/318 321/323/317 378/380/373 -f 323/382/321 379/407/377 377/383/375 -f 321/323/317 324/327/320 380/384/376 -f 317/322/316 320/321/315 379/385/377 -f 324/327/320 325/329/322 356/359/352 -f 382/386/378 383/424/415 384/387/379 -f 360/364/357 362/366/359 385/389/381 -f 361/365/358 363/367/360 387/391/383 -f 364/369/362 389/396/388 351/393/385 -f 362/366/359 365/368/361 390/394/386 -f 363/367/360 354/357/350 391/395/387 -f 366/371/364 381/388/380 389/396/388 -f 365/368/361 367/370/363 392/397/389 -f 368/373/366 382/386/378 381/388/380 -f 367/370/363 369/372/365 393/398/390 -f 370/375/368 394/400/392 382/386/378 -f 369/372/365 371/374/367 395/399/391 -f 372/376/369 396/401/393 394/400/392 -f 373/377/370 397/402/394 395/399/391 -f 374/378/371 398/403/395 396/401/393 -f 375/379/372 399/404/396 397/402/394 -f 376/381/374 400/406/398 398/403/395 -f 377/383/375 401/408/399 399/404/396 -f 376/381/374 378/380/373 402/405/397 -f 379/407/377 403/431/401 401/408/399 -f 378/380/373 380/384/376 404/409/400 -f 320/321/315 405/412/403 403/410/401 -f 380/384/376 356/359/352 406/411/402 -f 319/360/353 407/415/406 405/412/403 -f 354/357/350 353/356/349 408/413/404 -f 356/359/352 355/358/351 409/414/405 -f 357/363/356 410/418/409 407/415/406 -f 353/356/349 358/361/354 411/416/407 -f 355/358/351 359/362/355 412/417/408 -f 349/355/348 352/354/347 410/418/409 -f 358/361/354 360/364/357 386/390/382 -f 359/362/355 361/365/358 388/392/384 -f 414/419/410 415/453/443 416/420/411 -f 392/397/389 393/398/390 417/422/413 -f 394/400/392 419/426/417 383/424/415 -f 393/398/390 395/399/391 420/425/416 -f 396/401/393 413/421/412 419/426/417 -f 397/402/394 421/427/418 420/425/416 -f 398/403/395 414/419/410 413/421/412 -f 399/404/396 422/428/419 421/427/418 -f 400/406/398 423/430/421 414/419/410 -f 401/408/399 424/432/422 422/428/419 -f 400/406/398 402/405/397 425/429/420 -f 403/431/401 426/457/424 424/432/422 -f 402/405/397 404/409/400 427/433/423 -f 405/412/403 428/436/426 426/434/424 -f 404/409/400 406/411/402 429/435/425 -f 407/415/406 430/440/430 428/436/426 -f 391/395/387 408/413/404 431/437/427 -f 406/411/402 409/414/405 433/439/429 -f 410/418/409 434/443/433 430/440/430 -f 408/413/404 411/416/407 435/441/431 -f 409/414/405 412/417/408 436/442/432 -f 352/354/347 437/446/436 434/443/433 -f 411/416/407 386/390/382 438/444/434 -f 412/417/408 388/392/384 439/445/435 -f 351/393/385 440/449/439 437/446/436 -f 386/390/382 385/389/381 441/447/437 -f 388/392/384 387/391/383 442/448/438 -f 389/396/388 443/451/441 440/449/439 -f 385/389/381 390/394/386 444/450/440 -f 387/391/383 391/395/387 432/438/428 -f 381/388/380 384/387/379 443/451/441 -f 390/394/386 392/397/389 418/423/414 -f 422/428/419 445/454/444 446/452/442 -f 423/430/421 447/456/446 415/453/443 -f 424/432/422 448/458/447 445/454/444 -f 423/430/421 425/429/420 449/455/445 -f 426/457/424 450/1906/449 448/458/447 -f 425/429/420 427/433/423 451/459/448 -f 428/436/426 452/462/451 450/460/449 -f 427/433/423 429/435/425 453/461/450 -f 430/440/430 454/466/455 452/462/451 -f 432/438/428 431/437/427 455/463/452 -f 429/435/425 433/439/429 457/465/454 -f 434/443/433 458/469/458 454/466/455 -f 431/437/427 435/441/431 459/467/456 -f 433/439/429 436/442/432 460/468/457 -f 437/446/436 461/472/461 458/469/458 -f 435/441/431 438/444/434 462/470/459 -f 436/442/432 439/445/435 463/471/460 -f 440/449/439 464/475/464 461/472/461 -f 438/444/434 441/447/437 465/473/462 -f 439/445/435 442/448/438 466/474/463 -f 443/451/441 467/477/466 464/475/464 -f 441/447/437 444/450/440 468/476/465 -f 442/448/438 432/438/428 456/464/453 -f 384/387/379 469/479/468 467/477/466 -f 444/450/440 418/423/414 470/478/467 -f 383/424/415 471/481/470 469/479/468 -f 418/423/414 417/422/413 472/480/469 -f 419/426/417 473/483/472 471/481/470 -f 417/422/413 420/425/416 474/482/471 -f 413/421/412 416/420/411 473/483/472 -f 421/427/418 446/452/442 474/482/471 -f 466/1907/1485 456/1908/1486 461/1909/1486 -f 456/1908/1486 455/1910/473 458/1911/473 -f 455/1910/473 459/1912/473 458/1911/473 -f 459/1912/473 462/486/473 452/485/473 -f 458/1911/473 459/1912/473 454/1913/473 -f 462/486/473 465/1914/473 472/1915/473 -f 465/1914/473 468/1916/1487 470/1917/473 -f 472/1915/473 465/1914/473 470/1917/473 -f 472/1915/473 474/1918/473 462/486/473 -f 474/1918/473 446/484/473 462/486/473 -f 446/484/473 445/1919/473 452/485/473 -f 445/1919/473 448/1920/1488 450/1921/1489 -f 452/485/473 445/1919/473 450/1921/1489 -f 452/485/473 454/1913/473 459/1912/473 -f 458/1911/473 461/1909/1486 456/1908/1486 -f 461/1909/1486 464/1922/1490 466/1907/1485 -f 464/1922/1490 467/1923/1491 415/1924/1492 -f 467/1923/1491 469/1925/1493 416/1926/1494 -f 415/1924/1492 467/1923/1491 416/1926/1494 -f 469/1925/1493 471/1927/1495 473/1928/1496 -f 473/1928/1496 416/1926/1494 469/1925/1493 -f 415/1924/1492 447/1929/1497 464/1922/1490 -f 447/1929/1497 449/1930/1498 463/1931/1499 -f 466/1907/1485 447/1929/1497 463/1931/1499 -f 449/1930/1498 451/1932/1500 460/1933/1501 -f 451/1932/1500 453/1934/1502 457/1935/1503 -f 460/1933/1501 451/1932/1500 457/1935/1503 -f 460/1933/1501 463/1931/1499 449/1930/1498 -f 447/1929/1497 466/1907/1485 464/1922/1490 -f 476/487/474 477/1936/474 478/488/474 -f 479/492/476 480/1937/476 478/490/476 -f 480/1937/476 481/1938/1504 475/1939/1505 -f 478/490/476 480/1937/476 475/1939/1505 -f 481/1938/1504 482/1940/1506 475/1939/1505 -f 478/490/476 45/1941/476 29/491/476 -f 479/493/477 483/1942/477 484/494/477 -f 483/497/478 485/1943/1507 486/1944/1508 -f 477/498/478 476/1945/478 484/496/478 -f 476/1945/478 487/1946/478 488/1947/478 -f 483/497/478 486/1944/1508 477/498/478 -f 488/1947/478 484/496/478 476/1945/478 -f 489/499/479 490/1948/479 488/500/479 -f 491/502/480 494/1949/480 493/503/480 -f 479/511/477 29/1950/482 485/512/482 -f 477/514/474 486/1951/481 45/515/481 -f 498/517/480 499/1952/480 500/518/480 -f 504/520/483 500/1953/481 499/1954/1509 -f 499/1954/1509 501/521/484 504/520/483 -f 501/521/484 502/1955/1510 503/522/485 -f 508/525/479 503/1956/479 506/523/479 -f 503/1956/479 502/1957/479 505/536/479 -f 505/536/479 506/523/479 503/1956/479 -f 510/528/487 508/1958/1511 509/1959/1512 -f 508/1958/1511 507/1960/1513 509/1959/1512 -f 509/1959/1512 498/526/486 510/528/487 -f 497/519/489 500/518/1514 504/530/490 -f 504/530/490 503/1956/478 508/525/478 -f 508/525/478 510/529/488 504/530/490 -f 505/1961/476 502/1962/1515 516/1963/476 -f 502/1962/1515 501/532/492 514/1964/1516 -f 516/1963/476 502/1962/1515 515/1965/476 -f 501/532/492 499/1966/1517 509/533/493 -f 499/1966/1517 498/1967/1517 509/533/493 -f 509/533/493 507/1968/1518 513/531/491 -f 507/1968/1518 506/1969/476 511/1970/476 -f 514/1964/1516 515/1965/476 502/1962/1515 -f 511/1970/476 512/1971/476 507/1968/1518 -f 512/1971/476 513/531/491 507/1968/1518 -f 513/531/491 514/1964/1516 501/532/492 -f 516/534/482 517/547/482 518/535/482 -f 524/539/476 518/535/476 519/537/476 -f 518/535/476 517/547/476 519/537/476 -f 519/537/476 520/548/476 521/543/476 -f 522/538/476 523/545/476 524/539/476 -f 519/537/476 521/543/476 522/538/476 -f 514/540/482 520/548/482 519/537/482 -f 512/542/481 522/538/481 521/543/481 -f 506/523/481 524/539/481 523/545/481 -f 515/541/494 519/537/494 517/547/494 -f 513/544/479 521/543/479 520/548/479 -f 511/546/495 523/545/495 522/538/495 -f 505/536/480 518/535/480 524/539/480 -f 499/549/496 526/1972/498 525/550/497 -f 526/552/498 528/1973/499 527/553/499 -f 526/555/500 499/1974/481 500/556/501 -f 497/558/503 498/1975/482 525/559/504 -f 534/563/508 529/1976/1519 532/561/506 -f 529/1976/1519 530/1977/1520 531/1978/1521 -f 532/561/506 529/1976/1519 531/1978/1521 -f 533/564/509 489/1979/1522 482/565/510 -f 481/567/512 490/1980/1523 530/568/513 -f 490/572/517 489/1981/1524 532/1982/1525 -f 489/1981/1524 533/1983/1526 532/1982/1525 -f 490/572/517 532/1982/1525 531/570/515 -f 538/573/518 537/1984/1527 536/574/519 -f 493/576/520 494/1985/520 540/577/521 -f 541/580/481 533/1986/481 534/581/481 -f 534/581/481 539/1987/522 540/1988/521 -f 540/1988/521 542/579/481 534/581/481 -f 537/1989/1527 529/584/482 536/583/519 -f 529/584/482 530/1990/482 544/1991/482 -f 543/582/482 529/584/482 544/1991/482 -f 546/585/523 545/591/529 531/586/524 -f 547/588/526 550/620/555 549/589/527 -f 545/591/529 551/599/537 543/592/530 -f 531/586/524 545/591/529 544/593/531 -f 542/595/533 552/598/536 546/585/523 -f 541/596/534 546/585/523 532/587/525 -f 545/591/529 546/585/523 552/598/536 -f 556/600/538 555/603/541 554/601/539 -f 555/603/541 558/605/543 557/604/542 -f 558/605/543 560/615/550 559/606/544 -f 535/608/480 561/1992/480 564/609/480 -f 564/609/480 563/1993/480 538/607/480 -f 563/1993/480 562/1994/480 538/607/480 -f 552/598/536 566/611/546 565/610/545 -f 542/595/533 540/1995/1528 566/611/546 -f 561/1996/1529 567/616/551 564/614/549 -f 567/616/551 569/1997/1530 568/612/547 -f 564/614/549 567/616/551 568/612/547 -f 565/610/545 536/1998/1531 543/592/530 -f 560/615/550 569/1997/1530 567/616/551 -f 548/590/528 549/589/527 571/617/552 -f 491/619/554 492/1999/1532 550/620/555 -f 570/618/553 571/617/552 573/621/556 -f 572/622/557 573/621/556 575/623/558 -f 574/624/559 575/623/558 577/625/560 -f 576/626/561 577/625/560 579/627/480 -f 579/627/480 581/630/563 580/629/562 -f 581/630/563 556/600/538 553/602/540 -f 582/631/564 583/655/587 584/632/565 -f 587/634/567 588/656/588 589/635/568 -f 582/631/564 585/633/566 591/637/570 -f 586/636/569 589/635/568 593/639/572 -f 595/642/575 592/640/573 593/639/572 -f 597/644/478 595/642/575 596/643/576 -f 597/644/478 598/645/577 600/646/578 -f 599/647/579 600/646/578 605/651/583 -f 601/648/580 603/650/582 607/653/585 -f 583/655/587 604/652/584 605/651/583 -f 587/634/567 606/654/586 607/653/585 -f 605/651/583 608/670/599 609/657/589 -f 593/639/572 589/635/568 610/659/590 -f 596/643/576 593/639/572 611/660/591 -f 594/661/574 612/663/592 615/665/594 -f 598/645/577 596/643/576 613/664/593 -f 598/645/577 616/667/596 617/668/597 -f 600/646/578 617/668/597 608/670/599 -f 616/667/596 613/664/593 619/671/600 -f 616/667/596 620/672/601 621/673/602 -f 617/668/597 621/673/602 622/674/603 -f 608/670/599 622/674/603 624/678/605 -f 611/660/591 610/659/590 625/681/606 -f 613/664/593 611/660/591 626/682/607 -f 623/677/604 627/696/617 628/683/608 -f 624/678/605 629/697/618 630/684/609 -f 625/681/606 588/680/588 628/683/608 -f 585/685/566 630/684/609 632/687/611 -f 626/682/607 625/681/606 631/686/610 -f 619/671/600 626/682/607 633/689/612 -f 620/672/601 619/671/600 634/691/613 -f 620/672/601 635/692/614 636/693/615 -f 621/673/602 636/693/615 637/694/616 -f 622/674/603 637/694/616 629/697/618 -f 635/692/614 634/691/613 638/698/619 -f 635/692/614 639/699/620 640/700/621 -f 637/694/616 636/693/615 640/700/621 -f 631/686/610 628/683/608 643/705/625 -f 633/689/612 631/686/610 644/706/626 -f 633/689/612 646/709/628 638/698/619 -f 629/711/618 647/723/635 648/712/629 -f 639/699/620 638/698/619 650/717/631 -f 639/699/620 651/719/632 652/720/633 -f 651/719/636 654/735/636 655/724/637 -f 652/720/633 655/724/637 656/725/638 -f 643/729/625 627/726/617 657/728/639 -f 644/731/626 643/729/625 658/730/640 -f 646/716/628 644/731/626 659/732/641 -f 650/717/631 646/716/628 660/733/642 -f 651/719/636 650/717/631 661/734/643 -f 618/701/645 663/765/674 664/740/646 -f 656/742/648 655/767/676 665/743/649 -f 653/741/647 664/740/646 667/745/651 -f 656/742/648 666/744/650 668/747/653 -f 658/749/655 657/746/652 667/745/651 -f 647/748/654 668/747/653 670/751/657 -f 659/752/659 658/749/655 669/750/656 -f 662/738/661 648/737/658 670/751/657 -f 660/755/663 659/752/659 671/753/660 -f 662/738/661 672/754/662 674/757/665 -f 660/755/663 673/756/664 675/759/667 -f 615/718/669 649/758/666 674/757/665 -f 661/760/668 675/759/667 677/762/671 -f 655/767/676 654/763/672 677/762/671 -f 675/759/667 678/769/677 679/770/678 -f 665/743/649 677/762/671 679/770/678 -f 668/775/681 666/772/650 681/774/680 -f 670/780/657 668/775/681 682/776/682 -f 669/777/656 683/779/683 685/782/685 -f 671/783/686 685/782/685 686/785/687 -f 686/785/687 689/804/697 690/791/690 -f 664/794/646 692/795/692 693/796/693 -f 682/797/682 694/799/694 695/800/695 -f 693/796/693 696/806/698 698/810/700 -f 685/812/685 683/2000/701 698/813/700 -f 699/817/702 695/816/695 701/835/706 -f 696/844/698 705/846/711 706/847/712 -f 702/855/707 701/2001/706 707/856/713 -f 706/861/712 705/858/711 708/860/714 -f 709/903/715 708/897/714 723/899/729 -f 710/905/716 694/900/694 724/902/730 -f 709/907/715 725/2002/731 720/891/726 -f 717/908/723 715/925/721 726/909/732 -f 717/908/723 727/910/733 728/911/734 -f 724/912/735 728/911/734 730/915/737 -f 720/916/726 725/904/731 729/914/736 -f 719/889/738 730/915/737 732/918/740 -f 721/919/727 720/916/726 731/917/739 -f 721/919/727 733/920/741 734/921/742 -f 718/923/724 713/922/719 734/921/742 -f 718/923/724 735/924/743 726/909/732 -f 735/924/745 734/921/742 736/927/744 -f 735/924/745 737/928/746 738/929/747 -f 727/930/733 738/929/747 739/931/748 -f 723/933/729 716/955/722 741/934/750 -f 727/930/733 740/932/749 743/936/752 -f 729/938/736 723/933/729 742/935/751 -f 730/940/737 728/937/734 743/936/752 -f 729/938/736 744/939/753 746/942/755 -f 732/944/740 730/940/737 745/941/754 -f 733/926/741 731/943/739 746/942/755 -f 732/944/740 747/945/756 749/947/758 -f 733/926/741 748/946/757 750/949/759 -f 722/948/728 749/947/758 751/950/760 -f 736/927/744 750/949/759 752/951/761 -f 738/929/747 737/928/746 752/951/761 -f 716/955/722 663/765/674 753/953/763 -f 743/956/764 740/977/784 754/957/765 -f 742/959/767 756/979/786 757/960/768 -f 745/962/770 743/956/764 755/958/766 -f 744/961/769 757/960/768 759/964/772 -f 747/966/774 745/962/770 758/963/771 -f 746/965/773 759/964/772 761/968/776 -f 748/969/777 761/968/776 762/971/779 -f 750/972/780 762/971/779 763/973/781 -f 739/975/782 752/974/781 763/973/781 -f 740/977/784 739/975/782 764/976/783 -f 762/971/779 766/989/794 767/983/789 -f 764/976/783 763/973/790 767/983/789 -f 756/990/786 770/1006/806 771/991/795 -f 758/993/771 755/1007/807 772/994/796 -f 757/992/768 771/991/795 774/996/798 -f 760/987/775 758/993/771 773/995/797 -f 759/997/799 774/996/798 776/999/801 -f 766/989/794 761/988/776 776/999/801 -f 766/989/794 777/1000/802 778/1001/803 -f 768/984/791 767/983/789 778/1001/803 -f 768/984/791 779/1002/804 780/1003/805 -f 755/1007/807 754/1004/765 780/1003/805 -f 777/1000/802 781/1015/814 782/1008/808 -f 779/1002/804 778/1001/803 782/1008/808 -f 780/1003/805 779/1002/804 783/1009/809 -f 772/994/796 780/1003/805 784/1010/810 -f 774/996/798 786/1013/812 787/1014/813 -f 776/999/801 787/1014/813 781/1015/814 -f 773/1016/797 785/1011/811 788/1017/815 -f 771/1012/795 790/1034/824 791/1019/817 -f 786/1013/812 791/1019/817 792/1021/818 -f 787/1014/813 792/1021/818 794/1025/820 -f 781/1015/814 794/1025/820 795/1026/821 -f 783/1009/809 782/1008/808 795/1026/821 -f 784/1010/810 783/1009/809 796/1027/822 -f 769/1028/793 601/1030/580 606/1032/586 -f 785/1011/811 784/1010/810 797/1031/823 -f 770/1033/806 606/1032/586 790/1034/824 -f 796/1027/822 795/1026/821 798/1035/825 -f 797/1031/823 796/1027/822 799/1036/826 -f 788/1017/815 797/1031/823 800/1038/827 -f 791/1019/817 802/1041/829 803/1044/830 -f 792/1021/818 803/1044/830 804/1045/831 -f 794/1025/820 804/1045/831 798/1035/825 -f 802/1041/829 790/1040/824 587/634/567 -f 803/1044/830 802/1041/829 586/636/569 -f 803/1044/830 592/640/573 595/642/575 -f 804/1045/831 595/642/575 597/644/478 -f 799/1036/826 798/1035/825 597/644/478 -f 800/1038/827 799/1036/826 599/647/579 -f 800/1038/827 604/652/584 583/655/587 -f 801/1039/828 583/655/587 582/631/564 -f 806/1049/832 807/2003/844 808/1050/833 -f 809/1052/835 810/2004/835 811/1053/835 -f 806/1057/838 813/2005/1533 815/2006/1534 -f 813/2005/1533 814/2007/482 815/2006/1534 -f 815/2006/1534 812/1055/836 806/1057/838 -f 812/1055/836 811/2008/1535 807/1056/837 -f 815/1058/839 816/2009/1536 809/1052/840 -f 817/1059/842 818/2010/842 814/1060/842 -f 811/1062/843 810/2011/1537 808/1063/833 -f 814/1065/480 818/2012/480 816/1066/480 -f 813/1068/845 806/2013/1538 805/1069/846 -f 810/2014/1539 809/2015/1540 808/2016/1541 -f 809/2015/1540 816/1071/848 805/1073/850 -f 816/1071/848 818/2017/481 817/1072/849 -f 805/1073/850 808/2016/1541 809/2015/1540 -f 820/1074/851 821/1090/1542 822/1075/852 -f 821/2018/481 823/2019/481 824/2020/481 -f 821/2018/481 824/2020/481 825/2021/481 -f 837/2022/481 838/1079/481 831/2023/481 -f 838/1079/481 822/2024/481 828/2025/481 -f 829/1077/481 838/1079/481 828/2025/481 -f 835/2026/481 836/2027/481 831/2023/481 -f 836/2027/481 837/2022/481 831/2023/481 -f 833/2028/481 834/2029/481 832/2030/481 -f 834/2029/481 835/2026/481 832/2030/481 -f 822/2024/481 821/2018/481 826/2031/481 -f 821/2018/481 825/2021/481 826/2031/481 -f 832/2030/481 835/2026/481 831/2023/481 -f 822/2024/481 826/2031/481 827/2032/481 -f 822/2024/481 827/2032/481 828/2025/481 -f 830/1078/481 831/2023/481 838/1079/481 -f 835/1080/853 839/2033/885 840/1081/854 -f 838/1083/478 841/2034/478 819/1084/478 -f 833/1086/856 842/1113/856 843/1087/856 -f 844/1089/857 823/1895/1543 821/1090/858 -f 845/1091/860 846/2035/871 829/1092/861 -f 847/1094/863 845/2036/860 828/1095/862 -f 825/1098/866 848/2037/1544 849/1099/867 -f 849/1099/867 847/2038/1545 827/2039/1546 -f 827/2039/1546 826/1097/865 849/1099/867 -f 851/1100/868 832/1112/1547 831/1101/869 -f 846/1103/871 852/2040/874 830/1104/872 -f 850/1106/873 831/2041/1548 830/1107/872 -f 824/1109/875 853/1894/1475 848/1110/876 -f 832/1112/878 851/1100/1549 842/1113/879 -f 836/1114/855 840/2042/854 854/1115/881 -f 838/1117/883 837/1116/882 854/1115/881 -f 839/1119/885 835/2043/853 834/1120/479 -f 856/1122/886 857/1126/1550 858/1123/887 -f 859/1125/889 860/1128/893 857/1126/890 -f 861/1127/892 862/1131/892 860/1128/893 -f 863/1132/897 865/2044/1551 866/1133/898 -f 867/1135/900 866/2045/1552 865/1136/900 -f 869/1138/901 867/2046/1553 868/1139/902 -f 864/2047/482 866/2048/482 862/2049/482 -f 866/2048/482 867/2050/482 862/2049/482 -f 857/1143/482 860/2051/482 869/1141/482 -f 860/2051/482 862/2049/482 867/2050/482 -f 873/2052/482 858/2053/482 872/2054/482 -f 858/2053/482 857/1143/482 871/1142/482 -f 871/1142/482 872/2054/482 858/2053/482 -f 860/2051/482 867/2050/482 869/1141/482 -f 871/1144/904 869/2055/901 870/1145/903 -f 876/2056/481 875/2057/481 855/2058/481 -f 875/2057/481 874/2059/481 855/2058/481 -f 859/1149/481 856/2060/481 870/1147/481 -f 856/2060/481 855/2058/481 874/2059/481 -f 870/1147/481 856/2060/481 874/2059/481 -f 863/2061/481 861/2062/481 865/2063/481 -f 861/2062/481 859/1149/481 868/1148/481 -f 868/1148/481 865/2063/481 861/2062/481 -f 855/1124/888 858/1123/887 873/1150/906 -f 876/1151/908 873/1150/1554 872/1152/909 -f 872/1154/911 871/2064/904 874/1155/905 -f 878/1157/480 879/1191/480 880/1158/480 -f 878/1160/914 882/2065/1555 883/1161/915 -f 882/1163/917 884/1172/1556 885/1164/918 -f 885/1166/920 884/2066/1557 877/1167/921 -f 881/1169/923 883/2067/1558 885/1170/924 -f 878/1157/926 877/1159/926 884/1172/926 -f 879/1173/481 887/2068/481 888/1174/481 -f 881/1176/480 886/2069/480 890/1177/480 -f 881/1179/480 887/2070/480 879/1180/480 -f 877/1182/480 880/2071/480 890/1183/480 -f 892/1185/480 889/2072/480 888/1186/480 -f 880/1188/482 892/2073/482 891/1189/482 -f 879/1191/927 889/2074/927 892/1192/927 -f 890/1193/928 891/2075/928 888/1194/928 -f 888/1186/929 891/1187/929 894/1196/930 -f 894/1196/930 896/2076/932 895/1198/932 -f 894/1199/933 891/2077/1559 892/1200/934 -f 889/1202/936 888/2078/1560 893/1203/937 -f 898/1205/480 899/2079/480 900/1206/480 -f 903/2080/481 900/2081/481 902/1210/481 -f 900/2081/481 899/1208/481 902/1210/481 -f 905/1211/939 906/2082/939 907/1212/939 -f 897/1216/482 908/2083/482 907/1214/482 -f 907/1214/482 906/2084/482 898/1215/482 -f 897/1219/478 900/2085/478 909/1217/478 -f 900/2085/478 903/2086/478 909/1217/478 -f 904/1213/939 907/1212/939 908/1220/939 -f 902/1222/940 904/1213/940 909/1221/940 -f 901/1224/940 905/1211/940 904/1213/940 -f 897/1225/941 910/2087/1561 911/1226/942 -f 899/1231/945 912/2088/1562 913/1232/946 -f 915/1237/949 916/1243/955 917/1238/950 -f 918/1240/952 919/1265/976 920/1241/953 -f 916/1243/955 922/1247/959 923/1244/956 -f 921/1242/954 920/1241/953 924/1245/957 -f 922/1247/959 926/1251/963 927/1248/960 -f 925/1246/958 924/1245/957 928/1249/961 -f 926/1251/963 930/1255/967 931/1252/964 -f 929/1250/962 928/1249/961 932/1253/965 -f 930/1255/967 934/1259/970 935/1256/968 -f 933/1254/966 932/1253/965 936/1257/969 -f 934/1259/970 938/2089/1563 939/1260/971 -f 936/1257/969 940/1264/975 941/1261/972 -f 939/1260/971 938/2089/1563 942/1262/973 -f 940/1264/975 915/2090/949 914/1239/951 -f 943/1263/974 942/1262/973 919/1265/976 -f 944/1266/977 945/1270/981 946/1267/978 -f 948/1269/980 949/1272/983 946/1267/978 -f 950/1271/982 951/1277/988 949/1272/983 -f 952/1273/984 953/1278/989 954/1274/985 -f 956/1276/987 957/1281/992 951/1277/988 -f 953/1278/989 958/1282/993 959/1279/990 -f 960/1280/991 961/1285/996 957/1281/992 -f 958/1282/993 962/1286/997 963/1283/994 -f 964/1284/995 965/1289/1000 961/1285/996 -f 962/1286/997 966/1290/1001 967/1287/998 -f 968/1288/999 969/1293/1003 965/1289/1000 -f 966/1290/1001 944/2091/977 947/1291/979 -f 970/1292/1002 971/1294/1004 969/1293/1003 -f 971/1294/1004 972/1299/1009 973/1295/1005 -f 947/1268/979 946/1267/978 974/1296/1006 -f 976/1298/1008 977/1301/1011 972/1299/1009 -f 949/1272/983 978/1302/1012 974/1296/1006 -f 976/1298/1008 955/1275/986 979/1300/1010 -f 951/1277/988 980/1304/1014 978/1302/1012 -f 955/1275/986 954/1274/985 981/1303/1013 -f 957/1281/992 982/1306/1016 980/1304/1014 -f 954/1274/985 959/1279/990 983/1305/1015 -f 961/1285/996 984/1308/1018 982/1306/1016 -f 959/1279/990 963/1283/994 985/1307/1017 -f 965/1289/1000 986/1310/1020 984/1308/1018 -f 963/1283/994 967/1287/998 987/1309/1019 -f 969/1293/1003 973/1295/1005 986/1310/1020 -f 967/1287/998 947/1291/979 975/1311/1007 -f 987/1309/1019 975/1311/1007 988/1312/1021 -f 972/1299/1009 990/1318/1026 991/1314/1023 -f 975/1297/1007 974/1296/1006 992/1315/1024 -f 972/1299/1009 977/1301/1011 993/1317/1025 -f 978/1302/1012 994/1320/1028 992/1315/1024 -f 977/1301/1011 979/1300/1010 995/1319/1027 -f 980/1304/1014 996/1322/1030 994/1320/1028 -f 979/1300/1010 981/1303/1013 997/1321/1029 -f 982/1306/1016 998/1324/1032 996/1322/1030 -f 981/1303/1013 983/1305/1015 999/1323/1031 -f 984/1308/1018 1000/1326/1034 998/1324/1032 -f 983/1305/1015 985/1307/1017 1001/1325/1033 -f 986/1310/1020 1002/1327/1035 1000/1326/1034 -f 985/1307/1017 987/1309/1019 989/1313/1022 -f 973/1295/1005 991/1314/1023 1002/1327/1035 -f 989/1313/1022 988/1312/1021 1003/1328/1036 -f 990/1318/1026 1005/1333/1040 1006/1330/1038 -f 988/1316/1021 992/1315/1024 1007/1331/1039 -f 993/1317/1025 1008/1335/1042 1005/1333/1040 -f 994/1320/1028 1009/1336/1043 1007/1331/1039 -f 993/1317/1025 995/1319/1027 1010/1334/1041 -f 996/1322/1030 1011/1338/1045 1009/1336/1043 -f 995/1319/1027 997/1321/1029 1012/1337/1044 -f 998/1324/1032 1013/1340/1047 1011/1338/1045 -f 997/1321/1029 999/1323/1031 1014/1339/1046 -f 1000/1326/1034 1015/1342/1049 1013/1340/1047 -f 999/1323/1031 1001/1325/1033 1016/1341/1048 -f 1002/1327/1035 1017/1343/1050 1015/1342/1049 -f 1001/1325/1033 989/1313/1022 1004/1329/1037 -f 991/1314/1023 1006/1330/1038 1017/1343/1050 -f 1003/2092/1036 1007/2093/1039 1009/2094/1043 -f 1009/2094/1043 1011/2095/1045 1013/2096/1047 -f 1013/2096/1047 1015/2097/1049 1017/1346/1050 -f 1017/1346/1050 1006/2098/1038 1005/2099/1040 -f 1005/2099/1040 1008/2100/1042 1010/2101/1041 -f 1010/2101/1041 1012/2102/1044 1014/1344/1046 -f 1014/1344/1046 1016/2103/1048 1004/1345/1037 -f 1004/1345/1037 1003/2092/1036 1017/1346/1050 -f 1003/2092/1036 1009/2094/1043 1017/1346/1050 -f 1009/2094/1043 1013/2096/1047 1017/1346/1050 -f 1017/1346/1050 1005/2099/1040 1010/2101/1041 -f 1010/2101/1041 1014/1344/1046 1017/1346/1050 -f 918/1240/1051 1018/1351/1061 1019/1347/1052 -f 1020/1348/1054 1021/1349/1057 925/1246/1055 -f 1021/1349/1057 1022/1391/1564 921/1242/1058 -f 943/1263/1053 1019/1347/1052 1023/1350/1059 -f 921/1242/1058 1022/1391/1564 1018/1351/1061 -f 939/1260/1060 1023/1350/1059 1024/1352/1062 -f 1025/1353/1064 1026/1358/1070 1027/1354/1065 -f 935/1256/1063 1024/1352/1062 1029/1356/1067 -f 1030/1357/1069 1031/1390/1565 1026/1358/1070 -f 931/1252/1068 1029/1356/1067 1032/1359/1071 -f 1034/1360/1073 1031/1390/1565 1030/1357/1069 -f 1036/1362/1075 1034/1360/1073 1033/1361/1074 -f 927/1248/1072 1032/1359/1071 1037/1364/1077 -f 1039/1365/1079 1036/1362/1075 1035/1363/1076 -f 1040/1367/1081 1041/1388/1107 933/1254/1082 -f 1043/1368/1084 1039/1365/1079 1038/1366/1080 -f 1045/1370/1086 1043/1368/1084 1042/1369/1085 -f 1047/1372/1088 1045/1370/1086 1044/1371/1087 -f 1049/1374/1090 1047/1372/1088 1046/1373/1089 -f 1037/1364/1077 1050/1377/1094 917/1238/1092 -f 1051/1376/1093 1052/1387/1106 1049/1374/1090 -f 1050/1377/1094 1053/1382/1100 914/1239/1095 -f 1028/1355/1066 1027/1354/1065 1054/1378/1096 -f 1055/1379/1097 1054/1378/1096 1056/1380/1098 -f 1053/1382/1100 1058/1385/1104 941/1261/1101 -f 1057/1381/1099 1056/1380/1098 1059/1383/1102 -f 1058/1385/1104 1040/1367/1081 937/1258/1083 -f 1061/1386/1105 1062/2104/1108 1052/1387/1106 -f 1041/1388/1107 1020/1348/1054 929/1250/1056 -f 1060/1384/1103 1059/1383/1102 1062/1389/1108 -f 1027/1354/1109 1026/1358/1110 1021/1349/1110 -f 1045/1370/1111 1047/1372/1112 1032/1359/1112 -f 1054/1378/1113 1027/1354/1109 1020/1348/1109 -f 1043/1368/1114 1045/1370/1111 1029/1356/1111 -f 1039/1365/1115 1043/1368/1114 1024/1352/1114 -f 1059/1383/1116 1056/1380/1117 1040/1367/1117 -f 1036/1362/1118 1039/1365/1115 1023/1350/1115 -f 1062/1389/1119 1059/1383/1116 1058/1385/1116 -f 1034/1360/1120 1036/1362/1118 1019/1347/1118 -f 1052/1387/481 1062/2104/1119 1053/1382/1119 -f 1031/1390/1121 1034/1360/1120 1018/1351/1120 -f 1049/1374/1122 1052/1387/481 1050/1377/481 -f 1026/1358/1110 1031/1390/1121 1022/1391/1121 -f 1047/1372/1112 1049/1374/1122 1037/1364/1122 -f 1056/1380/1117 1054/1378/1113 1041/1388/1113 -f 1064/1392/1123 1065/1443/1123 1066/1393/1124 -f 924/1395/1125 928/2105/1132 953/1278/1126 -f 938/1396/1128 942/1401/1134 968/1288/1129 -f 938/1396/1128 964/1284/1130 960/1280/1131 -f 928/1398/1132 932/1413/1113 958/1399/1133 -f 942/1401/1134 919/2106/1566 970/1292/951 -f 926/1402/1135 950/1414/1144 948/1403/1136 -f 940/1405/1138 966/1416/1146 962/1406/1139 -f 934/1408/1114 960/2107/1131 956/1409/1140 -f 922/1404/1137 948/1403/1136 945/1411/1142 -f 932/1413/1113 936/1407/1139 962/1406/1139 -f 930/1410/1141 956/1409/1140 950/1414/1144 -f 915/1415/1145 944/2108/1147 966/1416/1146 -f 916/1412/1143 945/1411/1142 944/1417/1147 -f 919/1419/1148 942/1450/1149 1067/1420/1149 -f 926/1422/1151 1069/1471/1151 1070/1423/1152 -f 1072/1425/1153 1073/1449/1172 1074/1426/1154 -f 932/1428/1156 928/1489/1157 1075/1429/1157 -f 936/1431/1158 932/1428/1156 1076/1430/1156 -f 1078/1433/1160 1079/1487/1161 1080/1434/1161 -f 934/1436/1163 1082/1447/1163 1083/1437/1164 -f 916/1439/1166 1084/1470/1166 1085/1440/1167 -f 1086/1442/1168 1087/1475/1168 1065/1443/1123 -f 920/1444/1169 1088/1454/1169 1089/1445/1170 -f 930/1424/1152 1070/1423/1152 1082/1447/1163 -f 1090/1448/1171 1091/1473/1201 1073/1449/1172 -f 938/1438/1165 1083/1437/1164 1067/1420/1149 -f 936/1431/1158 1077/1432/1159 1092/1451/1173 -f 1068/1421/1175 1093/1469/1197 1094/1453/1176 -f 1092/1451/1178 1077/1432/1191 1065/1455/1179 -f 1089/1445/1181 1095/1463/1190 1096/1457/1182 -f 1082/1447/970 1070/1423/1193 1081/1458/1184 -f 1083/1437/1185 1097/1465/1192 1098/1460/1186 -f 1085/1440/1188 1084/1470/1198 1074/1461/305 -f 1088/1454/1177 1094/1453/1176 1095/1463/1190 -f 1077/1432/1191 1076/1430/966 1066/1464/966 -f 1082/1447/970 1080/1459/968 1097/1465/1192 -f 1070/1423/1193 1069/1471/1199 1091/1466/1194 -f 1075/1429/1183 1096/1457/1182 1066/1464/966 -f 1099/1467/1195 1092/1451/1178 1087/1456/1180 -f 1067/1420/1187 1098/1460/1186 1093/1469/1197 -f 1084/1470/1198 1099/1467/1195 1100/1468/1196 -f 1069/1471/1199 1085/1440/1188 1073/1462/1189 -f 915/1472/1200 940/1452/1174 1092/1451/1173 -f 1090/1448/1171 1078/1433/1160 1081/1435/1162 -f 916/1439/1166 915/2109/1200 1099/1467/1200 -f 1101/1474/1202 1100/1479/1206 1087/1475/1168 -f 1102/1476/1203 1103/1486/1204 1094/1477/1204 -f 1071/1427/1155 1074/1426/1154 1100/1479/1206 -f 1104/1480/1207 1105/1488/1208 1096/1481/1208 -f 1106/1483/1209 1107/1490/1210 1098/1484/1210 -f 1103/1486/1204 1104/1480/1207 1095/1482/1207 -f 1079/1487/1161 1106/1483/1209 1097/1485/1209 -f 919/1419/1148 1068/1421/1150 1088/1454/1169 -f 1063/1394/1124 1066/1393/1124 1096/1481/1208 -f 922/1441/1167 1085/1440/1167 1069/1471/1151 -f 924/1446/1170 1089/1445/1170 1075/1429/1157 -f 1107/1490/1210 1102/1476/1203 1093/1478/1205 -f 1080/1491/1211 1081/1508/1227 1108/1492/1212 -f 1097/1494/1213 1110/1506/1225 1111/1495/1214 -f 1073/1497/1216 1074/1518/1236 1112/1498/1217 -f 1094/1500/1219 1114/1520/1237 1115/1501/1220 -f 1065/1503/1222 1066/1511/1223 1116/1504/1223 -f 1080/1491/1211 1109/1493/1211 1110/1506/1225 -f 1118/1507/1226 1108/1492/1212 1081/1508/1227 -f 1096/1510/1229 1119/1521/1238 1116/1504/1223 -f 1120/1512/1230 1121/1517/1235 1100/1513/1231 -f 1098/1496/1215 1111/1495/1214 1122/1515/1233 -f 1121/1517/1235 1112/1498/1217 1074/1518/1236 -f 1091/1509/1228 1073/1497/1216 1113/1499/1218 -f 1093/1516/1234 1122/1515/1233 1114/1520/1237 -f 1087/1514/1232 1065/1503/1222 1117/1505/1224 -f 1095/1502/1221 1115/1501/1220 1119/1521/1238 -f 1124/1522/949 1125/1528/1243 1126/1523/1239 -f 1127/1525/1240 1128/1551/1249 1129/1526/1241 -f 1125/1528/1243 1131/1533/1245 1132/1529/1244 -f 1130/1530/1242 1129/2110/1241 1133/1531/957 -f 1131/1533/1245 1135/1537/963 1136/1534/1246 -f 1134/1532/958 1133/1531/957 1137/1535/961 -f 1135/1537/963 1139/1541/967 1140/1538/1247 -f 1138/1536/962 1137/1535/961 1141/1539/965 -f 1139/1541/967 1143/1545/968 1144/1542/968 -f 1142/1540/966 1141/1539/965 1145/1543/1248 -f 1143/1545/968 1147/2111/1563 1148/1546/971 -f 1145/1543/1248 1149/1550/975 1150/1547/975 -f 1148/1546/971 1147/2111/1563 1151/1548/973 -f 1149/1550/975 1124/1522/949 1123/1524/951 -f 1152/1549/974 1151/1548/973 1128/1551/1249 -f 1153/1552/977 1154/1559/1254 1155/1553/978 -f 1157/1555/1250 1158/2112/1255 1159/1556/1251 -f 1161/1558/1253 1162/1564/983 1155/1553/978 -f 1158/1560/1255 1163/1565/1258 1164/1561/1256 -f 1165/1563/982 1166/1568/988 1162/1564/983 -f 1163/1565/1258 1167/1569/1260 1168/1566/1259 -f 1169/1567/987 1170/1572/992 1166/1568/988 -f 1167/1569/1260 1171/1573/1261 1172/1570/990 -f 1173/1571/991 1174/1576/996 1170/1572/992 -f 1171/1573/1261 1175/1577/997 1176/1574/994 -f 1177/1575/1262 1178/1580/1263 1174/1576/996 -f 1175/1577/997 1179/1581/1001 1180/1578/998 -f 1181/1579/999 1182/1582/1264 1178/1580/1263 -f 1179/1581/1001 1153/1552/977 1156/1554/979 -f 1157/1555/1250 1160/1557/1252 1182/1582/1264 -f 1160/1557/1252 1183/1586/1266 1184/1583/1005 -f 1156/1554/979 1155/1553/978 1185/1584/1265 -f 1159/1556/1251 1187/2113/1267 1183/1586/1266 -f 1162/1564/983 1188/1589/1012 1185/1584/1265 -f 1159/1562/1251 1164/1561/1256 1189/1587/1010 -f 1166/1568/988 1190/1591/1014 1188/1589/1012 -f 1164/1561/1256 1168/1566/1259 1191/1590/1013 -f 1170/1572/992 1192/1593/1268 1190/1591/1014 -f 1168/1566/1259 1172/1570/990 1193/1592/1015 -f 1174/1576/996 1194/1595/1018 1192/1593/1268 -f 1172/1570/990 1176/1574/994 1195/1594/1269 -f 1178/1580/1263 1196/1597/1020 1194/1595/1018 -f 1176/1574/994 1180/1578/998 1197/1596/1019 -f 1182/1582/1264 1184/1583/1005 1196/1597/1020 -f 1180/1578/998 1156/1554/979 1186/1585/1007 -f 1197/1596/1019 1186/1585/1007 1198/1598/1021 -f 1183/1586/1266 1200/1603/1026 1201/1600/1270 -f 1186/1585/1007 1185/1584/1265 1202/1601/1271 -f 1183/1586/1266 1187/2113/1267 1203/1602/1025 -f 1188/1589/1012 1204/1606/1028 1202/1601/1271 -f 1187/1588/1267 1189/1587/1010 1205/1604/1027 -f 1190/1591/1014 1206/1608/1273 1204/1606/1028 -f 1189/1587/1010 1191/1590/1013 1207/1607/1272 -f 1192/1593/1268 1208/1610/1274 1206/1608/1273 -f 1191/1590/1013 1193/1592/1015 1209/1609/1031 -f 1194/1595/1018 1210/1612/1034 1208/1610/1274 -f 1193/1592/1015 1195/1594/1269 1211/1611/1275 -f 1196/1597/1020 1212/1613/1276 1210/1612/1034 -f 1195/1594/1269 1197/1596/1019 1199/1599/1022 -f 1184/1583/1005 1201/1600/1270 1212/1613/1276 -f 1199/1599/1022 1198/1598/1021 1213/1614/1036 -f 1200/1603/1026 1215/1618/1279 1216/1616/1278 -f 1198/1598/1021 1202/1601/1271 1217/1617/1039 -f 1203/1602/1025 1218/2114/1280 1215/1618/1279 -f 1204/1606/1028 1219/1621/1043 1217/1617/1039 -f 1203/1605/1025 1205/1604/1027 1220/1619/1041 -f 1206/1608/1273 1221/1623/1282 1219/1621/1043 -f 1205/1604/1027 1207/1607/1272 1222/1622/1281 -f 1208/1610/1274 1223/1625/1284 1221/1623/1282 -f 1207/1607/1272 1209/1609/1031 1224/1624/1283 -f 1210/1612/1034 1225/1627/1285 1223/1625/1284 -f 1209/1609/1031 1211/1611/1275 1226/1626/1048 -f 1212/1613/1276 1227/1628/1050 1225/1627/1285 -f 1211/1611/1275 1199/1599/1022 1214/1615/1277 -f 1201/1600/1270 1216/1616/1278 1227/1628/1050 -f 1213/2115/1036 1217/2116/1039 1219/2117/1043 -f 1219/2117/1043 1221/2118/1282 1223/2119/1284 -f 1223/2119/1284 1225/2120/1285 1219/2117/1043 -f 1225/2120/1285 1227/1629/1050 1219/2117/1043 -f 1227/1629/1050 1216/2121/1278 1215/2122/1279 -f 1215/2122/1279 1218/2123/1280 1227/1629/1050 -f 1218/2123/1280 1220/1630/1041 1227/1629/1050 -f 1220/1630/1041 1222/2124/1281 1224/2125/1283 -f 1224/2125/1283 1226/2126/1048 1220/1630/1041 -f 1226/2126/1048 1214/1631/1277 1220/1630/1041 -f 1214/1631/1277 1213/2115/1036 1227/1629/1050 -f 1213/2115/1036 1219/2117/1043 1227/1629/1050 -f 1127/1525/1286 1228/1636/1061 1229/1632/1287 -f 1230/1633/1289 1231/1634/1057 1134/1532/1290 -f 1231/1634/1057 1232/1677/1567 1130/1530/1292 -f 1152/1549/1288 1229/1632/1287 1233/1635/1293 -f 1130/1527/1292 1232/1676/1567 1228/1636/1061 -f 1148/1546/1294 1233/1635/1293 1234/1637/1062 -f 1235/1638/1296 1236/1643/1302 1237/1639/1297 -f 1144/1542/1295 1234/1637/1062 1239/1641/1299 -f 1240/1642/1301 1241/2127/1568 1236/1643/1302 -f 1140/1538/1300 1239/1641/1299 1242/1644/1303 -f 1244/1645/1305 1241/1675/1568 1240/1642/1301 -f 1246/1647/1307 1244/1645/1305 1243/1646/1306 -f 1136/1534/1304 1242/1644/1303 1247/1649/1077 -f 1249/1650/1310 1246/1647/1307 1245/1648/1308 -f 1250/1652/1312 1251/1673/1335 1142/1540/1313 -f 1253/1653/1315 1249/1650/1310 1248/1651/1311 -f 1255/1655/1317 1253/1653/1315 1252/1654/1316 -f 1257/1657/1319 1255/1655/1317 1254/1656/1318 -f 1259/1659/1321 1257/1657/1319 1256/1658/1320 -f 1247/1649/1077 1260/1662/1094 1126/1523/1323 -f 1261/1661/1324 1262/1672/1106 1259/1659/1321 -f 1260/1662/1094 1263/1667/1100 1123/1524/1325 -f 1238/1640/1298 1237/1639/1297 1264/1663/1326 -f 1265/1664/1327 1264/1663/1326 1266/1665/1328 -f 1263/1667/1100 1268/1670/1333 1150/1547/1330 -f 1267/1666/1329 1266/1665/1328 1269/1668/1331 -f 1268/1670/1333 1250/1652/1312 1146/1544/1314 -f 1271/1671/1334 1272/1674/1336 1262/1672/1106 -f 1251/1673/1335 1230/1633/1289 1138/1536/1291 -f 1270/1669/1332 1269/1668/1331 1272/1674/1336 -f 1237/1639/1109 1236/1643/1110 1231/1634/1110 -f 1255/1655/1111 1257/1657/1112 1242/1644/1112 -f 1264/1663/1113 1237/1639/1109 1230/1633/1109 -f 1253/1653/1114 1255/1655/1111 1239/1641/1111 -f 1249/1650/1115 1253/1653/1114 1234/1637/1114 -f 1269/1668/1116 1266/1665/1117 1250/1652/1117 -f 1246/1647/1118 1249/1650/1115 1233/1635/1115 -f 1272/1674/1337 1269/1668/1116 1268/1670/1116 -f 1244/1645/1120 1246/1647/1118 1229/1632/1118 -f 1262/1672/481 1272/1674/1337 1263/1667/1337 -f 1241/1675/1121 1244/1645/1120 1228/1636/1120 -f 1259/1659/1338 1262/1672/481 1260/1662/481 -f 1236/1643/1110 1241/2127/1121 1232/1677/1121 -f 1257/1657/1112 1259/1659/1338 1247/1649/1338 -f 1266/1665/1117 1264/1663/1113 1251/1673/1113 -f 1273/1678/1124 1274/1730/1123 1275/1679/1123 -f 1128/1681/1339 1129/2128/1344 1158/1682/1340 -f 1133/1684/1342 1137/1694/1132 1167/1685/1126 -f 1147/1687/1128 1151/1696/1345 1181/1688/1129 -f 1129/1690/1344 1133/1684/1342 1163/1686/1343 -f 1147/1687/1128 1177/1689/1130 1173/1692/1131 -f 1137/1694/1132 1141/1703/1113 1171/1695/1133 -f 1151/1696/1345 1128/1681/1339 1157/1683/1341 -f 1135/1697/1135 1165/1563/1144 1161/1558/958 -f 1149/1699/1138 1179/1581/1146 1175/1577/1139 -f 1143/1701/1114 1173/1571/1131 1169/1567/1140 -f 1141/1703/1113 1145/2129/1139 1175/1704/1139 -f 1139/1702/1141 1169/1567/1140 1165/1563/1144 -f 1124/1705/974 1153/1552/974 1179/1581/1146 -f 1128/1706/1346 1277/1739/1346 1278/1707/1347 -f 1279/1709/1348 1280/1753/1349 1135/1710/1349 -f 1282/1712/1350 1283/1735/1350 1284/1713/1154 -f 1141/1715/1352 1285/1750/1352 1286/1716/1353 -f 1287/1718/1354 1285/1750/1352 1141/1715/1352 -f 1289/1720/1161 1290/1774/1397 1291/1721/1355 -f 1147/1723/1357 1292/1745/1357 1293/1724/1358 -f 1294/1726/1360 1295/1747/1361 1125/1727/1361 -f 1296/1729/1362 1297/1762/1362 1275/1679/1123 -f 1133/1731/1363 1298/1742/1398 1299/1732/1364 -f 1143/1725/1359 1293/1724/1358 1279/1709/1348 -f 1300/1734/1201 1301/1760/1201 1283/1735/1350 -f 1278/1707/1347 1292/1745/1357 1147/1723/1357 -f 1302/1736/1366 1287/1718/1354 1145/1719/1354 -f 1303/1738/1367 1304/1756/1389 1277/1739/1368 -f 1302/1736/1370 1297/1755/1388 1275/1740/1371 -f 1305/1741/1373 1306/1748/1383 1298/1742/1374 -f 1293/1724/1131 1290/2130/1114 1291/1743/1111 -f 1307/1744/1377 1308/1751/1384 1292/1745/1378 -f 1294/1726/1380 1283/1758/1391 1284/1746/1381 -f 1306/1748/1383 1303/1738/1367 1299/1732/1369 -f 1287/1718/1372 1275/1740/1371 1276/1749/1133 -f 1308/1751/1384 1290/2130/1114 1293/1724/1131 -f 1279/1709/1376 1291/1743/1111 1301/1752/1385 -f 1276/1749/1133 1305/1741/1373 1286/1716/1375 -f 1309/1754/1387 1310/1757/1390 1297/1755/1388 -f 1304/1756/1389 1307/1744/1377 1278/1707/1379 -f 1295/1747/1382 1284/1746/1381 1310/1757/1390 -f 1280/1753/1386 1301/1752/1385 1283/1758/1391 -f 1309/1754/1392 1302/1736/1366 1149/1737/1366 -f 1288/1722/1356 1291/1721/1355 1301/1760/1201 -f 1295/1747/1361 1309/1754/1392 1124/1759/1393 -f 1296/1729/1362 1311/1766/1206 1310/1761/1394 -f 1312/1763/1205 1313/1773/1395 1303/1764/1395 -f 1281/1714/1351 1284/1713/1154 1310/1761/1394 -f 1315/1767/1208 1305/1776/1208 1306/1768/1396 -f 1316/1770/1209 1317/1777/1210 1307/1771/1210 -f 1313/1773/1395 1314/1769/1396 1306/1768/1396 -f 1289/1720/1161 1316/1770/1209 1308/1772/1209 -f 1129/1775/1365 1299/1732/1364 1277/1739/1346 -f 1273/1678/1124 1276/1680/1124 1305/1776/1208 -f 1280/1753/1349 1294/1726/1360 1131/1728/1360 -f 1137/1717/1353 1286/1716/1353 1298/1742/1398 -f 1317/1777/1210 1312/1763/1205 1304/1765/1205 -f 1290/1778/1399 1291/1795/1227 1318/1779/1212 -f 1308/1781/1400 1320/1793/1409 1321/1782/1214 -f 1283/1784/1401 1284/1805/1236 1322/1785/1217 -f 1303/1787/1403 1324/1806/1237 1325/1788/1404 -f 1275/1790/1406 1276/1798/1407 1326/1791/1407 -f 1290/1778/1399 1319/1780/1399 1320/1793/1409 -f 1328/1794/1226 1318/1779/1212 1291/1795/1227 -f 1305/1797/1410 1329/1808/1416 1326/1791/1407 -f 1330/1799/1411 1331/1804/1415 1310/1800/1412 -f 1307/1783/1215 1321/1782/1214 1332/1802/1413 -f 1331/1804/1415 1322/1785/1217 1284/1805/1236 -f 1301/1796/1228 1283/1784/1401 1323/1786/1402 -f 1304/1803/1414 1332/1802/1413 1324/1806/1237 -f 1297/1801/1232 1275/1790/1406 1327/1792/1408 -f 1306/1789/1405 1325/1788/1404 1329/1808/1416 -f 1348/1824/1433 1343/1819/1425 1342/1818/1424 -f 1350/1826/1435 1349/1825/1434 1348/1824/1433 -f 1357/1833/1442 1358/1839/1442 1359/1834/1443 -f 1365/1838/1446 1361/2131/1569 1337/1836/1444 -f 1361/2131/1569 1358/2132/1570 1337/1836/1444 -f 1358/2132/1570 1362/2133/481 1333/2134/1571 -f 1362/2133/481 1363/2135/1572 1333/2134/1571 -f 1358/2132/1570 1333/2134/1571 1336/2136/1573 -f 1358/2132/1570 1336/2136/1573 1337/1836/1444 -f 1358/1839/1442 1357/1833/1442 1366/1840/476 -f 1359/1842/1447 1367/2137/1574 487/1843/1448 -f 1369/1845/1450 1370/1862/1451 1367/1846/1451 -f 1358/1848/1453 1361/2138/1453 1367/1849/1453 -f 1357/1851/1454 1360/2139/1454 1370/1852/1454 -f 1371/1854/1455 1368/2140/1455 487/1855/1455 -f 1360/1857/1456 1371/2141/1575 488/1858/1457 -f 1359/1860/1443 1368/2140/476 1371/1854/476 -f 1370/1862/1451 488/1856/1459 487/1855/1459 -f 1369/1867/1464 1339/2142/1576 1341/2143/1577 -f 1339/2142/1578 1340/2144/1578 1341/2143/1578 -f 1366/1866/1463 1357/2145/1579 1369/1867/1464 -f 1369/1867/1464 1341/2143/1577 1372/2146/1580 -f 1369/1867/1464 1372/2146/1580 1342/2147/1581 -f 1369/1867/1464 1342/2147/1581 1344/2148/1582 -f 1369/1867/1464 1344/2148/1582 1373/1865/1462 -f 1352/2149/1583 1374/2150/1584 1356/2151/1585 -f 1374/2150/1584 1338/2152/1586 1356/2151/1585 -f 1338/2152/1586 1335/2153/1587 1354/2154/1588 -f 1335/2153/1587 1334/2155/1589 1354/2154/1588 -f 1338/2152/1586 1355/2156/1590 1356/2151/1585 -f 1334/2155/1589 1363/2157/1591 1362/2158/1592 -f 1334/2155/1589 1362/2158/1592 1366/1870/480 -f 1355/2156/1590 1338/2152/1586 1351/2159/1593 -f 1351/2159/1593 1338/2152/1586 1354/2154/1588 -f 1373/1871/1467 1347/2160/1594 1353/1872/1468 -f 1353/1872/1468 1354/2154/1588 1334/2155/1589 -f 1353/1872/1468 1334/2155/1589 1366/1870/480 -f 1238/2161/1298 1265/2162/1327 1267/2163/1329 -f 1267/2163/1329 1270/2164/1332 1271/2165/1334 -f 1271/2165/1334 1261/2166/1324 1258/1874/1322 -f 1258/1874/1322 1256/2167/1320 1254/2168/1318 -f 1254/2168/1318 1252/2169/1316 1258/1874/1322 -f 1252/2169/1316 1248/1875/1311 1258/1874/1322 -f 1248/1875/1311 1245/2170/1308 1235/1876/1296 -f 1245/2170/1308 1243/2171/1306 1235/1876/1296 -f 1243/2171/1306 1240/2172/1301 1235/1876/1296 -f 1235/1876/1296 1238/2161/1298 1267/2163/1329 -f 1267/2163/1329 1271/2165/1334 1235/1876/1296 -f 1271/2165/1334 1258/1874/1322 1235/1876/1296 -f 1028/2173/1066 1055/2174/1097 1057/1877/1099 -f 1057/1877/1099 1060/2175/1103 1048/1878/1091 -f 1060/2175/1103 1061/2176/1105 1048/1878/1091 -f 1061/2176/1105 1051/2177/1093 1048/1878/1091 -f 1048/1878/1091 1046/2178/1089 1038/1879/1080 -f 1046/2178/1089 1044/2179/1087 1038/1879/1080 -f 1044/2179/1087 1042/2180/1085 1038/1879/1080 -f 1038/1879/1080 1035/2181/1076 1033/2182/1074 -f 1033/2182/1074 1030/2183/1069 1038/1879/1080 -f 1030/2183/1069 1025/2184/1064 1038/1879/1080 -f 1025/2184/1064 1028/2173/1066 1057/1877/1099 -f 1025/2184/1064 1057/1877/1099 1038/1879/1080 -f 487/1882/481 476/2185/474 482/1880/481 -f 476/2185/474 475/2186/475 482/1880/481 -f 566/2187/1595 540/2188/1596 572/2189/1597 -f 540/2188/1596 494/2190/1598 547/2191/1599 -f 548/2192/1600 540/2188/1596 547/2191/1599 -f 494/2190/1598 491/2193/1601 547/2191/1599 -f 535/2194/1602 536/2195/1603 567/2196/1604 -f 536/2195/1603 565/1885/1472 554/2197/1605 -f 559/2198/1606 536/2195/1603 557/2199/1607 -f 567/2196/1604 561/2200/1608 535/2194/1602 -f 559/2198/1606 567/2196/1604 536/2195/1603 -f 540/2188/1596 548/2192/1600 570/2201/1609 -f 540/2188/1596 570/2201/1609 572/2189/1597 -f 557/2199/1607 536/2195/1603 554/2197/1605 -f 565/1885/1472 566/2187/1595 578/1883/1470 -f 566/2187/1595 572/2189/1597 574/2202/1610 -f 553/2203/1611 554/2197/1605 565/1885/1472 -f 566/2187/1595 574/2202/1610 576/2204/1612 -f 566/2187/1595 576/2204/1612 578/1883/1470 -f 580/1884/1471 553/2203/1611 565/1885/1472 -f 1361/1847/1452 1365/2205/1613 1364/1886/1473 -f 1364/1886/1473 1374/2150/1614 1346/2206/1615 -f 1374/2150/1614 1352/2149/1616 1346/2206/1615 -f 1346/2206/1615 1339/1887/1474 1364/1886/1473 -f 1339/1887/1474 1369/1845/1450 1361/1847/1452 -f 819/1890/482 841/2207/482 845/1888/482 -f 841/2207/482 854/2208/482 850/2209/482 -f 845/1888/482 841/2207/482 846/2210/482 -f 854/2208/482 840/2211/482 850/2209/482 -f 840/2211/482 839/2212/482 850/2209/482 -f 839/2212/482 843/2213/482 851/2214/482 -f 843/2213/482 842/2215/482 851/2214/482 -f 853/2216/482 844/2217/482 820/2218/482 -f 848/2219/482 853/2216/482 820/2218/482 -f 839/2212/482 851/2214/482 850/2209/482 -f 848/2219/482 820/2218/482 849/2220/482 -f 820/2218/482 819/1890/482 849/2220/482 -f 850/2209/482 852/2221/482 841/2207/482 -f 852/2221/482 846/2210/482 841/2207/482 -f 847/1889/482 849/2220/482 819/1890/482 -f 481/1891/482 480/2222/477 484/1892/477 -f 488/1893/482 490/2223/482 481/1891/482 -f 853/1894/1475 824/1109/875 823/1895/1476 -f 80/1897/84 73/2224/1617 485/2225/1618 -f 485/2225/1618 16/1898/1478 80/1897/84 -f 16/1898/1478 15/2226/14 89/1896/83 -f 14/2227/13 13/2228/1619 486/1899/1479 -f 486/1899/1479 485/2229/1620 53/1900/53 -f 485/2229/1620 73/2230/73 54/2231/51 -f 485/2229/1620 54/2231/51 53/1900/53 -f 84/1901/77 14/2227/13 486/1899/1479 -o boolets_Cylinder.008 -v -0.589670 0.462960 0.317325 -v -0.589670 0.398760 0.288740 -v -0.717905 0.398760 0.288740 -v -0.717905 0.462960 0.317325 -v 0.008600 0.523475 -0.024120 -v 0.008600 0.488525 -0.084650 -v -0.589530 0.489220 -0.085270 -v -0.589530 0.524355 -0.024410 -v 0.008600 0.218055 0.111860 -v 0.008600 0.264825 0.163800 -v -0.589530 0.264275 0.164550 -v -0.589530 0.217250 0.112325 -v 0.008600 0.431985 -0.125730 -v -0.589530 0.432360 -0.126580 -v 0.008600 0.328675 0.192225 -v -0.589530 0.328480 0.193135 -v 0.008600 0.363620 -0.140260 -v -0.589530 0.363620 -0.141190 -v 0.008600 0.398565 0.192225 -v -0.589530 0.398760 0.193135 -v 0.008600 0.295255 -0.125730 -v -0.589530 0.294875 -0.126580 -v 0.008600 0.462415 0.163800 -v -0.589530 0.462960 0.164550 -v 0.008600 0.238710 -0.084650 -v -0.589530 0.238020 -0.085270 -v 0.008600 0.509180 0.111860 -v -0.589530 0.509985 0.112325 -v 0.008600 0.203765 -0.024120 -v -0.589530 0.202880 -0.024410 -v 0.008600 0.530780 0.045390 -v -0.589530 0.531705 0.045485 -v 0.008600 0.196460 0.045390 -v -0.589530 0.195535 0.045485 -v -0.717380 0.400240 0.015920 -v -0.717410 0.547770 -0.032015 -v -0.717410 0.507510 -0.101745 -v -0.717390 0.392235 0.002055 -v -0.717410 0.171050 0.048060 -v -0.699540 0.197310 0.045300 -v -0.699540 0.218795 0.111430 -v -0.717410 0.195930 0.124635 -v -0.717365 0.330270 0.047075 -v -0.717410 0.249805 0.184465 -v -0.717415 0.340985 0.058975 -v -0.717410 0.442375 -0.149070 -v -0.717340 0.379280 -0.007360 -v -0.717410 0.323360 0.217215 -v -0.717385 0.355610 0.065485 -v -0.717410 0.363620 -0.165810 -v -0.717410 0.363620 -0.010690 -v -0.717410 0.403875 0.217215 -v -0.717390 0.371625 0.065485 -v -0.717410 0.284865 -0.149070 -v -0.717455 0.347955 -0.007360 -v -0.717410 0.477430 0.184465 -v -0.717345 0.386255 0.058975 -v -0.717410 0.219725 -0.101745 -v -0.717465 0.335000 0.002055 -v -0.717410 0.531305 0.124635 -v -0.717370 0.396965 0.047075 -v -0.717410 0.179470 -0.032015 -v -0.717470 0.326995 0.015920 -v -0.717410 0.556185 0.048060 -v -0.717350 0.401915 0.031845 -v -0.717435 0.325320 0.031845 -v -0.699540 0.522660 -0.023855 -v -0.699540 0.487890 -0.084075 -v -0.699540 0.265325 0.163105 -v -0.699540 0.431635 -0.124950 -v -0.699540 0.328850 0.191390 -v -0.699540 0.363620 -0.139405 -v -0.699540 0.398385 0.191390 -v -0.699540 0.295600 -0.124950 -v -0.699540 0.461910 0.163105 -v -0.699540 0.239345 -0.084075 -v -0.699540 0.508440 0.111430 -v -0.699540 0.204580 -0.023855 -v -0.699540 0.529930 0.045300 -v -0.717765 0.294875 -0.126580 -v -0.717765 0.363620 -0.141190 -v -0.717765 0.524355 -0.024410 -v -0.717765 0.531705 0.045485 -v -0.717765 0.202880 -0.024410 -v -0.717765 0.238020 -0.085270 -v -0.717765 0.489220 -0.085270 -v -0.717765 0.432360 -0.126580 -v -0.717765 0.195535 0.045485 -v -0.717765 0.509985 0.112325 -v -0.717765 0.462960 0.164550 -v -0.717765 0.328480 0.193135 -v -0.717765 0.264275 0.164550 -v -0.717765 0.398760 0.193135 -v -0.717765 0.217250 0.112325 -v -0.717130 0.392235 0.002055 -v -0.716850 0.377665 0.015175 -v -0.716700 0.381595 0.021980 -v -0.716990 0.400240 0.015920 -v -0.717155 0.340985 0.058975 -v -0.716915 0.352510 0.043110 -v -0.717075 0.347250 0.037270 -v -0.717030 0.371305 0.010555 -v -0.717095 0.355610 0.065485 -v -0.716800 0.359690 0.046305 -v -0.717125 0.363620 0.008920 -v -0.716965 0.371625 0.065485 -v -0.716790 0.367550 0.046305 -v -0.717235 0.355930 0.010555 -v -0.717000 0.386255 0.058975 -v -0.716615 0.374725 0.043110 -v -0.717290 0.349575 0.015175 -v -0.716905 0.396965 0.047075 -v -0.716700 0.379985 0.037270 -v -0.717265 0.345645 0.021980 -v -0.716980 0.401915 0.031845 -v -0.716630 0.382415 0.029795 -v -0.717215 0.344825 0.029795 -v -0.717175 0.355930 0.010555 -v -0.717185 0.349575 0.015175 -v -0.717190 0.345645 0.021980 -v -0.717130 0.344825 0.029795 -v -0.716865 0.352510 0.043110 -v -0.716795 0.359690 0.046305 -v -0.716585 0.367550 0.046305 -v -0.716615 0.374725 0.043110 -v -0.716480 0.379985 0.037270 -v -0.716590 0.382415 0.029795 -v -0.716595 0.381595 0.021980 -v -0.716755 0.377665 0.015175 -v -0.716900 0.371305 0.010555 -v 0.008460 0.523475 0.506000 -v -0.589670 0.524355 0.506285 -v -0.589670 0.489220 0.567150 -v 0.008460 0.488525 0.566525 -v 0.008460 0.218055 0.370020 -v -0.589670 0.217250 0.369555 -v -0.589670 0.264275 0.317325 -v 0.008460 0.264825 0.318080 -v -0.589670 0.432360 0.608455 -v 0.008460 0.431985 0.607605 -v -0.589670 0.328480 0.288740 -v 0.008460 0.328670 0.289650 -v -0.589670 0.363620 0.623070 -v 0.008460 0.363620 0.622140 -v 0.008460 0.398565 0.289650 -v -0.589670 0.294875 0.608455 -v 0.008460 0.295255 0.607605 -v 0.008460 0.462415 0.318080 -v -0.589670 0.238020 0.567150 -v 0.008460 0.238710 0.566525 -v -0.589670 0.509985 0.369555 -v 0.008460 0.509180 0.370020 -v -0.589670 0.202880 0.506285 -v 0.008460 0.203765 0.506000 -v -0.589670 0.531705 0.436390 -v 0.008460 0.530780 0.436490 -v -0.589670 0.195535 0.436390 -v 0.008460 0.196460 0.436490 -v -0.717335 0.400240 0.465960 -v -0.717330 0.392235 0.479825 -v -0.717550 0.507510 0.583620 -v -0.717550 0.547770 0.513890 -v -0.717550 0.171050 0.433820 -v -0.717550 0.195930 0.357245 -v -0.699680 0.218795 0.370445 -v -0.699680 0.197310 0.436580 -v -0.717620 0.330270 0.434805 -v -0.717600 0.340985 0.422905 -v -0.717550 0.249805 0.297410 -v -0.717360 0.379280 0.489235 -v -0.717550 0.442375 0.630945 -v -0.717525 0.355610 0.416390 -v -0.717550 0.323360 0.264660 -v -0.717395 0.363620 0.492565 -v -0.717550 0.363620 0.647685 -v -0.717370 0.371625 0.416390 -v -0.717550 0.403875 0.264660 -v -0.717435 0.347955 0.489235 -v -0.717550 0.284865 0.630945 -v -0.717435 0.386255 0.422905 -v -0.717375 0.335000 0.479825 -v -0.717550 0.219725 0.583620 -v -0.717395 0.396965 0.434805 -v -0.717550 0.531305 0.357245 -v -0.717550 0.477430 0.297410 -v -0.717525 0.326995 0.465960 -v -0.717550 0.179470 0.513890 -v -0.717355 0.401915 0.450035 -v -0.717550 0.556185 0.433820 -v -0.717600 0.325320 0.450035 -v -0.699680 0.487890 0.565955 -v -0.699680 0.522660 0.505735 -v -0.699680 0.265325 0.318770 -v -0.699680 0.431635 0.606825 -v -0.699680 0.328850 0.290485 -v -0.699680 0.363620 0.621285 -v -0.699680 0.398385 0.290485 -v -0.699680 0.295600 0.606825 -v -0.699680 0.461910 0.318770 -v -0.699680 0.239345 0.565955 -v -0.699680 0.508440 0.370445 -v -0.699680 0.204580 0.505735 -v -0.699680 0.529925 0.436580 -v -0.717905 0.363620 0.623070 -v -0.717905 0.294875 0.608455 -v -0.717905 0.531705 0.436390 -v -0.717905 0.524355 0.506285 -v -0.717905 0.238020 0.567150 -v -0.717905 0.202880 0.506285 -v -0.717905 0.489220 0.567150 -v -0.717905 0.432360 0.608455 -v -0.717905 0.195535 0.436390 -v -0.717905 0.509985 0.369555 -v -0.717905 0.264275 0.317325 -v -0.717905 0.328480 0.288740 -v -0.717905 0.217250 0.369555 -v -0.716650 0.392235 0.479825 -v -0.716635 0.400240 0.465960 -v -0.716145 0.381590 0.459900 -v -0.716125 0.377665 0.466705 -v -0.717475 0.347250 0.444610 -v -0.717430 0.352510 0.438770 -v -0.716695 0.379280 0.489235 -v -0.716250 0.371305 0.471325 -v -0.717255 0.359690 0.435570 -v -0.716845 0.363620 0.492565 -v -0.716400 0.363620 0.472955 -v -0.716905 0.367550 0.435570 -v -0.717030 0.347955 0.489235 -v -0.716665 0.355930 0.471325 -v -0.717030 0.386255 0.422905 -v -0.716655 0.374725 0.438770 -v -0.716905 0.349575 0.466705 -v -0.716830 0.396965 0.434805 -v -0.716410 0.379985 0.444610 -v -0.717260 0.345645 0.459900 -v -0.716705 0.401915 0.450035 -v -0.716225 0.382415 0.452085 -v -0.717430 0.344820 0.452085 -v -0.716250 0.363620 0.472955 -v -0.716015 0.371305 0.471325 -v -0.715935 0.377665 0.466705 -v -0.715910 0.381590 0.459900 -v -0.716030 0.382415 0.452085 -v -0.716230 0.379985 0.444610 -v -0.716525 0.374725 0.438770 -v -0.716520 0.355930 0.471325 -vt 0.680521 0.406246 -vt 0.652061 0.430658 -vt 0.664534 0.402365 -vt 0.680997 0.433791 +f 705/1155/972 707/1156/973 708/1157/974 +f 708/1157/974 709/1158/975 710/1159/976 +f 710/1159/976 711/1160/977 712/1161/978 +f 712/1161/978 713/1162/979 714/1163/980 +f 714/1163/980 715/1164/981 716/1165/982 +f 716/1165/982 717/1166/983 718/1167/984 +f 719/1168/985 721/1169/986 722/1170/987 +f 721/1169/986 724/1171/988 722/1170/987 +f 723/1172/989 726/1173/990 724/1171/988 +f 726/1173/990 727/1174/991 728/1175/992 +f 728/1175/992 729/1176/993 730/1177/994 +f 729/1176/993 732/1178/995 730/1177/994 +f 731/1179/996 734/1180/997 732/1178/995 +f 733/1181/998 736/1182/999 734/1180/1000 +f 735/1183/1001 738/1184/1002 736/1182/999 +f 737/1185/1003 740/1186/1004 738/1184/1002 +f 739/1187/1005 742/1188/1006 740/1186/1004 +f 742/1188/1006 743/1189/1007 744/1190/1008 +f 744/1190/1008 745/1191/1009 746/1192/1010 +f 746/1192/1010 747/1193/1011 748/1194/1012 +f 748/1194/1012 749/1195/1013 750/1196/1014 +f 750/1196/1015 751/1197/1016 752/1198/1017 +f 752/1198/1017 753/1199/1018 754/1200/1019 +f 753/1199/1018 756/1201/1020 754/1200/1019 +f 755/1202/1021 705/1155/972 756/1201/1020 +f 758/1203/1022 760/1204/1023 757/1205/1024 +f 761/1206/1025 763/1207/1026 759/1208/1027 +f 728/1175/992 764/1209/1028 765/1210/1029 +f 748/1194/1012 767/1211/1030 746/1192/1010 +f 714/1163/980 768/1212/1031 769/1213/1032 +f 722/1170/987 771/1214/1033 719/1168/985 +f 738/1184/1002 772/1215/1034 773/1216/1035 +f 708/1157/974 775/1217/1036 705/1155/972 +f 705/1155/972 776/1218/1037 756/1201/1020 +f 758/1203/1022 761/1206/1025 759/1208/1027 +f 730/1177/994 778/1219/1038 764/1209/1028 +f 750/1196/1015 766/1220/1039 748/1194/1012 +f 718/1167/984 768/1212/1031 716/1165/982 +f 724/1171/988 770/1221/1040 722/1170/987 +f 740/1186/1004 782/1222/1041 772/1215/1034 +f 708/1157/974 783/1223/1042 774/1224/1043 +f 777/1225/1044 785/1226/1045 761/1206/1025 +f 732/1178/995 786/1227/1046 778/1219/1038 +f 752/1198/1017 779/1228/1047 750/1196/1015 +f 788/1229/1048 780/1230/1049 718/1167/984 +f 724/1171/988 790/1231/1050 781/1232/1051 +f 742/1188/1006 791/1233/1052 782/1222/1041 +f 710/1159/976 792/1234/1053 783/1223/1042 +f 793/1235/1054 785/1226/1045 784/1236/1055 +f 734/1180/997 795/1237/1056 786/1227/1046 +f 754/1200/1019 787/1238/1057 752/1198/1017 +f 757/1205/1024 789/1239/1058 788/1229/1048 +f 726/1173/990 765/1210/1029 790/1231/1050 +f 744/1190/1008 767/1211/1030 791/1233/1052 +f 712/1161/978 769/1213/1032 792/1234/1053 +f 719/1168/985 794/1240/1059 793/1241/1054 +f 736/1182/999 773/1216/1035 795/1237/1056 +f 756/1201/1020 796/1242/1060 754/1200/1019 +f 798/1243/1061 800/1244/1062 797/1245/1063 +f 772/1215/1034 801/1246/1064 802/1247/1065 +f 785/1226/1045 762/1248/1066 761/1206/1025 +f 782/1222/1041 804/1249/1067 801/1246/1064 +f 794/1250/1059 803/1251/1068 785/1226/1045 +f 791/1233/1052 805/1252/1069 804/1249/1067 +f 771/1214/1033 797/1245/1063 794/1240/1059 +f 766/1220/1039 805/1252/1069 767/1211/1030 +f 770/1221/1040 798/1243/1061 771/1214/1033 +f 775/1217/1036 808/1253/1070 809/1254/1071 +f 766/1220/1039 810/1255/1072 806/1256/1073 +f 781/1232/1051 807/1257/1074 770/1221/1040 +f 774/1224/1043 812/1258/1075 808/1253/1070 +f 779/1228/1047 813/1259/1076 810/1255/1072 +f 790/1231/1050 811/1260/1077 781/1232/1051 +f 783/1223/1042 815/1261/1078 812/1258/1075 +f 787/1238/1057 816/1262/1079 813/1259/1076 +f 765/1210/1029 814/1263/1080 790/1231/1050 +f 792/1234/1053 818/1264/1081 815/1261/1078 +f 796/1242/1060 819/1265/1082 816/1262/1079 +f 764/1209/1028 817/1266/1083 765/1210/1029 +f 769/1213/1032 821/1267/1084 818/1264/1081 +f 776/1218/1037 809/1254/1071 819/1265/1082 +f 778/1219/1038 820/1268/1085 764/1209/1028 +f 768/1212/1031 823/1269/1086 821/1267/1084 +f 786/1227/1046 822/1270/1087 778/1219/1038 +f 780/1230/1049 825/1271/1088 823/1269/1086 +f 795/1237/1056 824/1272/1089 786/1227/1046 +f 760/1204/1023 825/1271/1088 789/1239/1058 +f 773/1216/1035 826/1273/1090 795/1237/1056 +f 759/1208/1027 827/1274/1091 760/1204/1023 +f 773/1216/1035 802/1247/1065 828/1275/1092 +f 830/1276/1093 832/1277/1094 829/1278/1095 +f 805/1252/1069 833/1279/1096 834/1280/1097 +f 807/1257/1074 799/1281/1098 798/1243/1061 +f 809/1254/1071 836/1282/1099 837/1283/1100 +f 806/1256/1073 838/1284/1101 833/1279/1096 +f 811/1260/1077 835/1285/1102 807/1257/1074 +f 808/1253/1070 839/1286/1103 836/1282/1099 +f 810/1255/1072 840/1287/1104 838/1284/1101 +f 814/1263/1080 829/1278/1095 811/1260/1077 +f 812/1258/1075 841/1288/1105 839/1286/1103 +f 813/1259/1076 842/1289/1106 840/1287/1104 +f 817/1266/1083 830/1276/1093 814/1263/1080 +f 815/1261/1078 844/1290/1107 841/1288/1105 +f 816/1262/1079 845/1291/1108 842/1289/1106 +f 820/1268/1085 843/1292/1109 817/1266/1083 +f 818/1264/1081 847/1293/1110 844/1290/1107 +f 819/1265/1082 837/1283/1100 845/1291/1108 +f 822/1270/1087 846/1294/1111 820/1268/1085 +f 821/1267/1084 849/1295/1112 847/1293/1110 +f 824/1272/1089 848/1296/1113 822/1270/1087 +f 823/1269/1086 851/1297/1114 849/1295/1112 +f 826/1273/1090 850/1298/1115 824/1272/1089 +f 825/1271/1088 853/1299/1116 851/1297/1114 +f 828/1275/1092 852/1300/1117 826/1273/1090 +f 763/1207/1026 853/1299/1116 827/1274/1091 +f 828/1275/1092 856/1301/1118 854/1302/1119 +f 762/1248/1066 855/1303/1120 763/1207/1026 +f 802/1247/1065 858/1304/1121 856/1301/1118 +f 803/1251/1068 857/1305/1122 762/1248/1066 +f 804/1249/1067 858/1304/1121 801/1246/1064 +f 797/1306/1063 859/1307/1123 803/1251/1068 +f 805/1252/1069 860/1308/1124 804/1249/1067 +f 862/1309/1125 864/1310/1126 861/1311/1127 +f 839/1286/1103 865/1312/1128 866/1313/1129 +f 840/1287/1104 867/1314/1130 868/1315/1131 +f 843/1292/1109 831/1316/1132 830/1276/1093 +f 841/1288/1105 870/1317/1133 865/1312/1128 +f 842/1289/1106 871/1318/1134 867/1314/1130 +f 846/1294/1111 869/1319/1135 843/1292/1109 +f 844/1290/1107 872/1320/1136 870/1317/1133 +f 845/1291/1108 873/1321/1137 871/1318/1134 +f 848/1296/1113 861/1311/1127 846/1294/1111 +f 847/1293/1110 874/1322/1138 872/1320/1136 +f 850/1298/1115 862/1309/1125 848/1296/1113 +f 849/1295/1112 876/1323/1139 874/1322/1138 +f 852/1300/1117 875/1324/1140 850/1298/1115 +f 851/1297/1114 878/1325/1141 876/1323/1139 +f 854/1302/1119 877/1326/1142 852/1300/1117 +f 855/1303/1120 878/1325/1141 853/1299/1116 +f 854/1302/1119 881/1327/1143 879/1328/1144 +f 857/1305/1122 880/1329/1145 855/1303/1120 +f 856/1301/1118 883/1330/1146 881/1327/1143 +f 859/1307/1123 882/1331/1147 857/1305/1122 +f 860/1308/1124 883/1330/1146 858/1304/1121 +f 800/1332/1062 884/1333/1148 859/1307/1123 +f 860/1308/1124 887/1334/1149 885/1335/1150 +f 799/1281/1098 886/1336/1151 800/1244/1062 +f 834/1280/1097 889/1337/1152 887/1334/1149 +f 835/1285/1102 888/1338/1153 799/1281/1098 +f 837/1283/1100 891/1339/1154 873/1321/1137 +f 833/1279/1096 892/1340/1155 889/1337/1152 +f 829/1278/1095 890/1341/1156 835/1285/1102 +f 836/1282/1099 866/1313/1129 891/1339/1154 +f 838/1284/1101 868/1315/1131 892/1340/1155 +f 894/1342/1157 896/1343/1158 893/1344/1159 +f 872/1320/1136 897/1345/1160 898/1346/1161 +f 875/1324/1140 863/1347/1162 862/1309/1125 +f 874/1322/1138 900/1348/1163 897/1345/1160 +f 877/1326/1142 899/1349/1164 875/1324/1140 +f 876/1323/1139 901/1350/1165 900/1348/1163 +f 879/1328/1144 893/1344/1159 877/1326/1142 +f 880/1329/1145 901/1350/1165 878/1325/1141 +f 881/1327/1143 894/1342/1157 879/1328/1144 +f 882/1331/1147 902/1351/1166 880/1329/1145 +f 881/1327/1143 905/1352/1167 903/1353/1168 +f 884/1333/1148 904/1354/1169 882/1331/1147 +f 883/1330/1146 907/1355/1170 905/1352/1167 +f 886/1356/1151 906/1357/1171 884/1333/1148 +f 885/1335/1150 909/1358/1172 907/1355/1170 +f 888/1338/1153 908/1359/1173 886/1336/1151 +f 887/1334/1149 911/1360/1174 909/1358/1172 +f 890/1341/1156 910/1361/1175 888/1338/1153 +f 873/1321/1137 913/1362/1176 914/1363/1177 +f 889/1337/1152 915/1364/1178 911/1360/1174 +f 832/1277/1094 912/1365/1179 890/1341/1156 +f 891/1339/1154 917/1366/1180 913/1362/1176 +f 892/1340/1155 918/1367/1181 915/1364/1178 +f 831/1316/1132 916/1368/1182 832/1277/1094 +f 866/1313/1129 920/1369/1183 917/1366/1180 +f 868/1315/1131 921/1370/1184 918/1367/1181 +f 869/1319/1135 919/1371/1185 831/1316/1132 +f 865/1312/1128 923/1372/1186 920/1369/1183 +f 867/1314/1130 924/1373/1187 921/1370/1184 +f 861/1311/1127 922/1374/1188 869/1319/1135 +f 870/1317/1133 898/1346/1161 923/1372/1186 +f 871/1318/1134 914/1363/1177 924/1373/1187 +f 925/1375/1189 927/1376/1190 928/1377/1191 +f 902/1351/1166 930/1378/1192 901/1350/1165 +f 903/1353/1168 895/1379/1193 894/1342/1157 +f 904/1354/1169 929/1380/1194 902/1351/1166 +f 905/1352/1167 931/1381/1195 903/1353/1168 +f 906/1357/1171 932/1382/1196 904/1354/1169 +f 905/1352/1167 926/1383/1197 925/1375/1189 +f 908/1384/1173 933/1385/1198 906/1357/1171 +f 907/1355/1170 935/1386/1199 926/1383/1197 +f 910/1361/1175 934/1387/1200 908/1359/1173 +f 909/1358/1172 937/1388/1201 935/1386/1199 +f 912/1365/1179 936/1389/1202 910/1361/1175 +f 914/1363/1177 939/1390/1203 940/1391/1204 +f 911/1360/1174 941/1392/1205 937/1388/1201 +f 916/1368/1182 938/1393/1206 912/1365/1179 +f 913/1362/1176 943/1394/1207 939/1390/1203 +f 915/1364/1178 944/1395/1208 941/1392/1205 +f 919/1371/1185 942/1396/1209 916/1368/1182 +f 917/1366/1180 946/1397/1210 943/1394/1207 +f 918/1367/1181 947/1398/1211 944/1395/1208 +f 922/1374/1188 945/1399/1212 919/1371/1185 +f 920/1369/1183 949/1400/1213 946/1397/1210 +f 921/1370/1184 950/1401/1214 947/1398/1211 +f 864/1310/1126 948/1402/1215 922/1374/1188 +f 923/1372/1186 952/1403/1216 949/1400/1213 +f 924/1373/1187 940/1391/1204 950/1401/1214 +f 863/1347/1162 951/1404/1217 864/1310/1126 +f 898/1346/1161 954/1405/1218 952/1403/1216 +f 899/1349/1164 953/1406/1219 863/1347/1162 +f 897/1345/1160 956/1407/1220 954/1405/1218 +f 893/1344/1159 955/1408/1221 899/1349/1164 +f 900/1348/1163 930/1378/1192 956/1407/1220 +f 957/1409/1222 959/1410/1223 960/1411/1224 +f 934/1412/1200 962/1413/1225 933/1385/1198 +f 926/1383/1197 963/1414/1226 927/1376/1190 +f 936/1389/1202 961/1415/1227 934/1387/1200 +f 935/1386/1199 965/1416/1228 963/1414/1226 +f 938/1393/1206 964/1417/1229 936/1389/1202 +f 940/1391/1204 967/1418/1230 968/1419/1231 +f 937/1388/1201 969/1420/1232 965/1416/1228 +f 942/1396/1209 966/1421/1233 938/1393/1206 +f 939/1390/1203 971/1422/1234 967/1418/1230 +f 941/1392/1205 972/1423/1235 969/1420/1232 +f 945/1399/1212 970/1424/1236 942/1396/1209 +f 943/1394/1207 974/1425/1237 971/1422/1234 +f 944/1395/1208 975/1426/1238 972/1423/1235 +f 948/1402/1215 973/1427/1239 945/1399/1212 +f 946/1397/1210 977/1428/1240 974/1425/1237 +f 947/1398/1211 978/1429/1241 975/1426/1238 +f 951/1404/1217 976/1430/1242 948/1402/1215 +f 949/1400/1213 980/1431/1243 977/1428/1240 +f 950/1401/1214 968/1419/1231 978/1429/1241 +f 953/1406/1219 979/1432/1244 951/1404/1217 +f 952/1403/1216 982/1433/1245 980/1431/1243 +f 955/1408/1221 981/1434/1246 953/1406/1219 +f 954/1405/1218 957/1409/1222 982/1433/1245 +f 896/1343/1158 983/1435/1247 955/1408/1221 +f 956/1407/1220 958/1436/1248 957/1409/1222 +f 895/1379/1193 984/1437/1249 896/1343/1158 +f 929/1380/1194 958/1436/1248 930/1378/1192 +f 931/1381/1195 985/1438/1250 895/1379/1193 +f 932/1382/1196 986/1439/1251 929/1380/1194 +f 925/1375/1189 987/1440/1252 931/1381/1195 +f 933/1385/1198 988/1441/1253 932/1382/1196 +f 990/1442/1254 992/1443/1255 989/1444/1256 +f 985/1438/1250 994/1445/1257 984/1437/1249 +f 986/1439/1251 959/1410/1223 958/1436/1248 +f 987/1440/1252 993/1446/1258 985/1438/1250 +f 988/1441/1253 995/1447/1259 986/1439/1251 +f 928/1377/1191 996/1448/1260 987/1440/1252 +f 962/1413/1225 989/1444/1256 988/1441/1253 +f 928/1377/1191 998/1449/1261 997/1450/1262 +f 961/1451/1227 990/1442/1254 962/1413/1225 +f 927/1376/1190 1000/1452/1263 998/1449/1261 +f 964/1417/1229 999/1453/1264 961/1415/1227 +f 963/1414/1226 1002/1454/1265 1000/1452/1263 +f 966/1421/1233 1001/1455/1266 964/1417/1229 +f 968/1419/1231 1004/1456/1267 1005/1457/1268 +f 965/1416/1228 1006/1458/1269 1002/1454/1265 +f 970/1424/1236 1003/1459/1270 966/1421/1233 +f 967/1418/1230 1008/1460/1271 1004/1456/1267 +f 969/1420/1232 1009/1461/1272 1006/1458/1269 +f 973/1427/1239 1007/1462/1273 970/1424/1236 +f 971/1422/1234 1011/1463/1274 1008/1460/1271 +f 972/1423/1235 1012/1464/1275 1009/1461/1272 +f 976/1430/1242 1010/1465/1276 973/1427/1239 +f 974/1425/1237 1014/1466/1277 1011/1463/1274 +f 975/1426/1238 1015/1467/1278 1012/1464/1275 +f 979/1432/1244 1013/1468/1279 976/1430/1242 +f 977/1428/1240 1017/1469/1280 1014/1466/1277 +f 978/1429/1241 1005/1457/1268 1015/1467/1278 +f 981/1434/1246 1016/1470/1281 979/1432/1244 +f 980/1431/1243 1019/1471/1282 1017/1469/1280 +f 983/1435/1247 1018/1472/1283 981/1434/1246 +f 982/1433/1245 960/1411/1224 1019/1471/1282 +f 984/1437/1249 1020/1473/1284 983/1435/1247 +f 1022/1474/1285 1024/1475/1286 1021/1476/1287 +f 997/1450/1262 1025/1477/1288 1026/1478/1289 +f 999/1479/1264 991/1480/1290 990/1442/1254 +f 998/1449/1261 1028/1481/1291 1025/1477/1288 +f 1001/1455/1266 1027/1482/1292 999/1453/1264 +f 1000/1452/1263 1029/1483/1293 1028/1481/1291 +f 1003/1459/1270 1021/1476/1287 1001/1455/1266 +f 1005/1457/1268 1030/1484/1294 1031/1485/1295 +f 1002/1454/1265 1032/1486/1296 1029/1483/1293 +f 1007/1462/1273 1022/1474/1285 1003/1459/1270 +f 1004/1456/1267 1034/1487/1297 1030/1484/1294 +f 1006/1458/1269 1035/1488/1298 1032/1486/1296 +f 1010/1465/1276 1033/1489/1299 1007/1462/1273 +f 1008/1460/1271 1037/1490/1300 1034/1487/1297 +f 1009/1461/1272 1038/1491/1301 1035/1488/1298 +f 1013/1468/1279 1036/1492/1302 1010/1465/1276 +f 1011/1463/1274 1040/1493/1303 1037/1490/1300 +f 1012/1464/1275 1041/1494/1304 1038/1491/1301 +f 1016/1470/1281 1039/1495/1305 1013/1468/1279 +f 1014/1466/1277 1043/1496/1306 1040/1493/1303 +f 1015/1467/1278 1031/1485/1295 1041/1494/1304 +f 1018/1472/1283 1042/1497/1307 1016/1470/1281 +f 1017/1469/1280 1045/1498/1308 1043/1496/1306 +f 1020/1473/1284 1044/1499/1309 1018/1472/1283 +f 1019/1471/1282 1047/1500/1310 1045/1498/1308 +f 994/1445/1257 1046/1501/1311 1020/1473/1284 +f 960/1411/1224 1049/1502/1312 1047/1500/1310 +f 993/1446/1258 1048/1503/1313 994/1445/1257 +f 995/1447/1259 1049/1502/1312 959/1410/1223 +f 996/1448/1260 1050/1504/1314 993/1446/1258 +f 989/1444/1256 1051/1505/1315 995/1447/1259 +f 997/1450/1262 1052/1506/1316 996/1448/1260 +f 1054/1507/1317 1056/1508/1318 1053/1509/1319 +f 1031/1485/1295 1057/1510/1320 1058/1511/1321 +f 1029/1483/1293 1059/1512/1322 1060/1513/1323 +f 1033/1489/1299 1023/1514/1324 1022/1474/1285 +f 1030/1484/1294 1062/1515/1325 1057/1510/1320 +f 1032/1486/1296 1063/1516/1326 1059/1512/1322 +f 1036/1492/1302 1061/1517/1327 1033/1489/1299 +f 1034/1487/1297 1064/1518/1328 1062/1515/1325 +f 1035/1488/1298 1065/1519/1329 1063/1516/1326 +f 1039/1495/1305 1053/1509/1319 1036/1492/1302 +f 1037/1490/1300 1066/1520/1330 1064/1518/1328 +f 1038/1491/1301 1067/1521/1331 1065/1519/1329 +f 1042/1497/1307 1054/1507/1317 1039/1495/1305 +f 1040/1493/1303 1069/1522/1332 1066/1520/1330 +f 1041/1494/1304 1058/1511/1321 1067/1521/1331 +f 1044/1499/1309 1068/1523/1333 1042/1497/1307 +f 1043/1496/1306 1071/1524/1334 1069/1522/1332 +f 1046/1501/1311 1070/1525/1335 1044/1499/1309 +f 1045/1498/1308 1073/1526/1336 1071/1524/1334 +f 1048/1503/1313 1072/1527/1337 1046/1501/1311 +f 1047/1500/1310 1075/1528/1338 1073/1526/1336 +f 1050/1504/1314 1074/1529/1339 1048/1503/1313 +f 1051/1505/1315 1075/1528/1338 1049/1502/1312 +f 1052/1506/1316 1076/1530/1340 1050/1504/1314 +f 992/1443/1255 1077/1531/1341 1051/1505/1315 +f 1026/1478/1289 1078/1532/1342 1052/1506/1316 +f 991/1480/1290 1079/1533/1343 992/1443/1255 +f 1026/1478/1289 1082/1534/1344 1080/1535/1345 +f 1027/1536/1292 1081/1537/1346 991/1480/1290 +f 1025/1477/1288 1084/1538/1347 1082/1534/1344 +f 1021/1476/1287 1083/1539/1348 1027/1482/1292 +f 1028/1481/1291 1060/1513/1323 1084/1538/1347 +f 1086/1540/1349 1088/1541/1350 1085/1542/1351 +f 1064/1518/1328 1089/1543/1352 1090/1544/1353 +f 1065/1519/1329 1091/1545/1354 1092/1546/1355 +f 1068/1523/1333 1055/1547/1356 1054/1507/1317 +f 1066/1520/1330 1094/1548/1357 1089/1543/1352 +f 1067/1521/1331 1095/1549/1358 1091/1545/1354 +f 1070/1525/1335 1093/1550/1359 1068/1523/1333 +f 1069/1522/1332 1096/1551/1360 1094/1548/1357 +f 1072/1527/1337 1085/1542/1351 1070/1525/1335 +f 1071/1524/1334 1097/1552/1361 1096/1551/1360 +f 1074/1529/1339 1086/1540/1349 1072/1527/1337 +f 1073/1526/1336 1099/1553/1362 1097/1552/1361 +f 1076/1530/1340 1098/1554/1363 1074/1529/1339 +f 1077/1531/1341 1099/1553/1362 1075/1528/1338 +f 1078/1532/1342 1100/1555/1364 1076/1530/1340 +f 1079/1533/1343 1101/1556/1365 1077/1531/1341 +f 1080/1535/1345 1102/1557/1366 1078/1532/1342 +f 1081/1537/1346 1103/1558/1367 1079/1533/1343 +f 1080/1535/1345 1106/1559/1368 1104/1560/1369 +f 1083/1561/1348 1105/1562/1370 1081/1537/1346 +f 1082/1534/1344 1108/1563/1371 1106/1559/1368 +f 1024/1475/1286 1107/1564/1372 1083/1539/1348 +f 1084/1538/1347 1110/1565/1373 1108/1563/1371 +f 1023/1514/1324 1109/1566/1374 1024/1475/1286 +f 1058/1511/1321 1112/1567/1375 1095/1549/1358 +f 1060/1513/1323 1113/1568/1376 1110/1565/1373 +f 1061/1517/1327 1111/1569/1377 1023/1514/1324 +f 1057/1510/1320 1115/1570/1378 1112/1567/1375 +f 1059/1512/1322 1116/1571/1379 1113/1568/1376 +f 1053/1509/1319 1114/1572/1380 1061/1517/1327 +f 1062/1515/1325 1090/1544/1353 1115/1570/1378 +f 1063/1516/1326 1092/1546/1355 1116/1571/1379 +f 1118/1573/1381 1120/1574/1382 1117/1575/1383 +f 1096/1551/1360 1121/1576/1384 1122/1577/1385 +f 1098/1554/1363 1087/1578/1386 1086/1540/1349 +f 1097/1552/1361 1124/1579/1387 1121/1576/1384 +f 1100/1555/1364 1123/1580/1388 1098/1554/1363 +f 1101/1556/1365 1124/1579/1387 1099/1553/1362 +f 1102/1557/1366 1117/1575/1383 1100/1555/1364 +f 1103/1558/1367 1125/1581/1389 1101/1556/1365 +f 1104/1560/1369 1118/1573/1381 1102/1557/1366 +f 1105/1562/1370 1126/1582/1390 1103/1558/1367 +f 1104/1560/1369 1129/1583/1391 1127/1584/1392 +f 1107/1585/1372 1128/1586/1393 1105/1562/1370 +f 1106/1559/1368 1131/1587/1394 1129/1583/1391 +f 1109/1566/1374 1130/1588/1395 1107/1564/1372 +f 1108/1563/1371 1133/1589/1396 1131/1587/1394 +f 1111/1569/1377 1132/1590/1397 1109/1566/1374 +f 1095/1549/1358 1135/1591/1398 1136/1592/1399 +f 1110/1565/1373 1137/1593/1400 1133/1589/1396 +f 1114/1572/1380 1134/1594/1401 1111/1569/1377 +f 1112/1567/1375 1139/1595/1402 1135/1591/1398 +f 1113/1568/1376 1140/1596/1403 1137/1593/1400 +f 1056/1508/1318 1138/1597/1404 1114/1572/1380 +f 1115/1570/1378 1142/1598/1405 1139/1595/1402 +f 1116/1571/1379 1143/1599/1406 1140/1596/1403 +f 1055/1547/1356 1141/1600/1407 1056/1508/1318 +f 1090/1544/1353 1145/1601/1408 1142/1598/1405 +f 1092/1546/1355 1146/1602/1409 1143/1599/1406 +f 1093/1550/1359 1144/1603/1410 1055/1547/1356 +f 1089/1543/1352 1148/1604/1411 1145/1601/1408 +f 1091/1545/1354 1136/1592/1399 1146/1602/1409 +f 1085/1542/1351 1147/1605/1412 1093/1550/1359 +f 1094/1548/1357 1122/1577/1385 1148/1604/1411 +f 1126/1582/1390 1150/1606/1413 1125/1581/1389 +f 1127/1584/1392 1119/1607/1414 1118/1573/1381 +f 1128/1586/1393 1149/1608/1415 1126/1582/1390 +f 1127/1584/1392 1153/1609/1416 1151/1610/1417 +f 1130/1611/1395 1152/1612/1418 1128/1586/1393 +f 1129/1583/1391 1155/1613/1419 1153/1609/1416 +f 1132/1590/1397 1154/1614/1420 1130/1588/1395 +f 1131/1587/1394 1157/1615/1421 1155/1613/1419 +f 1134/1594/1401 1156/1616/1422 1132/1590/1397 +f 1136/1592/1399 1159/1617/1423 1160/1618/1424 +f 1133/1589/1396 1161/1619/1425 1157/1615/1421 +f 1138/1597/1404 1158/1620/1426 1134/1594/1401 +f 1135/1591/1398 1163/1621/1427 1159/1617/1423 +f 1137/1593/1400 1164/1622/1428 1161/1619/1425 +f 1141/1600/1407 1162/1623/1429 1138/1597/1404 +f 1139/1595/1402 1166/1624/1430 1163/1621/1427 +f 1140/1596/1403 1167/1625/1431 1164/1622/1428 +f 1144/1603/1410 1165/1626/1432 1141/1600/1407 +f 1142/1598/1405 1169/1627/1433 1166/1624/1430 +f 1143/1599/1406 1170/1628/1434 1167/1625/1431 +f 1147/1605/1412 1168/1629/1435 1144/1603/1410 +f 1145/1601/1408 1172/1630/1436 1169/1627/1433 +f 1146/1602/1409 1160/1618/1424 1170/1628/1434 +f 1088/1541/1350 1171/1631/1437 1147/1605/1412 +f 1148/1604/1411 1174/1632/1438 1172/1630/1436 +f 1087/1578/1386 1173/1633/1439 1088/1541/1350 +f 1122/1577/1385 1176/1634/1440 1174/1632/1438 +f 1123/1580/1388 1175/1635/1441 1087/1578/1386 +f 1121/1576/1384 1178/1636/1442 1176/1634/1440 +f 1117/1575/1383 1177/1637/1443 1123/1580/1388 +f 1125/1581/1389 1178/1636/1442 1124/1579/1387 +f 1150/1638/1444 1156/1639/1444 1166/1640/1444 +f 1180/1641/1445 1182/1642/1445 1179/1643/1446 +f 1182/1644/1447 733/1645/1447 1183/1646/1447 +f 1183/1647/1448 1188/1648/1448 1184/1649/1448 +f 1188/1650/1449 1187/1651/1449 1181/1652/1449 +f 1193/1653/1450 1192/1654/1450 1191/1655/1450 +f 1195/1656/1451 1197/1657/1451 1196/1658/1451 +f 1199/1659/1452 1186/1660/1452 1193/1661/1452 +f 1185/1662/1452 1194/1663/1452 1200/1664/1452 +f 1183/1665/1448 1189/1666/1453 1187/1667/1448 +f 1181/1668/1445 749/1669/1452 1182/1670/1445 +f 1202/1671/1451 1204/1672/1451 1201/1673/1451 +f 1208/1674/1454 1205/1675/1455 1207/1676/1456 +f 1210/1677/1450 1211/1678/1450 1212/1679/1450 +f 1202/1680/1457 1201/1681/1453 1214/1682/1458 +f 1214/1683/1459 1201/1673/1460 1208/1684/1461 +f 1217/1685/1462 1205/1686/1463 1213/1687/1464 +f 1220/1688/1453 1222/1689/1453 1209/1690/1453 +f 1223/1691/1447 1226/1692/1447 1228/1693/1447 +f 1218/1694/1453 1223/1691/1453 1219/1695/1453 +f 1216/1696/1452 1225/1697/1452 1217/1698/1452 +f 1210/1677/1452 1227/1699/1452 1215/1700/1452 +f 1219/1695/1465 1221/1701/1465 1220/1688/1465 +f 1217/1698/1450 1224/1702/1450 1218/1694/1450 +f 1215/1700/1466 1226/1692/1466 1216/1696/1466 +f 1209/1690/1451 1228/1693/1451 1210/1677/1451 +f 1203/1703/1467 1229/1704/1468 1202/1705/1467 +f 1230/1706/1469 1231/1707/1470 1229/1708/1468 +f 1230/1709/1471 1204/1710/1472 1232/1711/1473 +f 1201/1712/1474 1229/1713/1475 1231/1714/1476 +f 1236/1715/1477 1237/1716/1478 1238/1717/1479 +f 1237/1718/1480 1186/1719/1481 1238/1720/1482 +f 1185/1721/1483 1234/1722/1484 1233/1723/1485 +f 1235/1724/1486 1234/1725/1487 1194/1726/1488 +f 1242/1727/1489 1240/1728/1490 1239/1729/1489 +f 1197/1730/1491 1244/1731/1492 1243/1732/1493 +f 1246/1733/1452 1245/1734/1452 1238/1735/1452 +f 1247/1736/1453 1240/1737/1490 1233/1738/1453 +f 1250/1739/1494 1235/1740/1495 1236/1741/1496 +f 1251/1742/1497 1253/1743/1498 1252/1744/1499 +f 1249/1745/1500 1247/1746/1501 1248/1747/1502 +f 1235/1740/1495 1248/1747/1502 1234/1748/1503 +f 1246/1749/1504 1250/1739/1494 1245/1750/1505 +f 1245/1750/1505 1236/1741/1496 1237/1751/1506 +f 1249/1745/1500 1256/1752/1507 1255/1753/1508 +f 1260/1754/1509 1258/1755/1510 1257/1756/1511 +f 1259/1757/1512 1261/1758/1513 1258/1755/1510 +f 1262/1759/1514 1263/1760/1515 1261/1758/1513 +f 1242/1761/1451 1239/1762/1451 1268/1763/1451 +f 1256/1752/1507 1269/1764/1516 1255/1753/1508 +f 1246/1749/1504 1270/1765/1517 1256/1752/1507 +f 1272/1766/1518 1267/1767/1519 1268/1768/1520 +f 1269/1764/1516 1247/1746/1501 1255/1753/1508 +f 1264/1769/1521 1271/1770/1522 1263/1760/1515 +f 1252/1744/1499 1275/1771/1523 1274/1772/1524 +f 1195/1773/1525 1254/1774/1526 1251/1742/1497 +f 1274/1772/1524 1277/1775/1527 1276/1776/1528 +f 1276/1776/1528 1279/1777/1529 1278/1778/1530 +f 1278/1778/1530 1281/1779/1531 1280/1780/1532 +f 1280/1780/1532 1283/1781/1451 1282/1782/1451 +f 1283/1781/1451 1284/1783/1533 1282/1782/1451 +f 1285/1784/1534 1257/1756/1511 1284/1783/1533 +f 1286/1785/1535 1288/1786/1536 1289/1787/1537 +f 1291/1788/1538 1293/1789/1539 1290/1790/1540 +f 1286/1785/1535 1295/1791/1541 1294/1792/1542 +f 1290/1790/1540 1297/1793/1543 1296/1794/1544 +f 1298/1795/1545 1294/1792/1542 1295/1791/1541 +f 1299/1796/1546 1297/1793/1543 1300/1797/1547 +f 1301/1798/1449 1300/1797/1547 1302/1799/1548 +f 1301/1798/1449 1304/1800/1549 1303/1801/1550 +f 1305/1802/1551 1306/1803/1552 1307/1804/1553 +f 1303/1801/1550 1309/1805/1554 1308/1806/1555 +f 1305/1802/1551 1311/1807/1556 1310/1808/1557 +f 1287/1809/1558 1309/1805/1554 1288/1786/1536 +f 1291/1788/1538 1311/1807/1556 1292/1810/1559 +f 1309/1805/1554 1313/1811/1560 1288/1786/1536 +f 1289/1787/1537 1288/1786/1536 1313/1811/1560 +f 1293/1789/1539 1292/1812/1559 1314/1813/1561 +f 1297/1793/1543 1314/1813/1561 1315/1814/1562 +f 1298/1815/1545 1295/1816/1541 1316/1817/1563 +f 1300/1797/1547 1315/1814/1562 1317/1818/1564 +f 1298/1815/1545 1319/1819/1565 1318/1820/1566 +f 1302/1799/1548 1317/1818/1564 1320/1821/1567 +f 1302/1799/1548 1321/1822/1568 1304/1800/1549 +f 1307/1804/1553 1306/1803/1552 1322/1823/1569 +f 1304/1800/1549 1312/1824/1570 1309/1805/1554 +f 1320/1821/1567 1323/1825/1571 1324/1826/1572 +f 1320/1821/1567 1325/1827/1573 1321/1822/1568 +f 1321/1822/1568 1326/1828/1574 1312/1824/1570 +f 1311/1829/1556 1307/1830/1553 1327/1831/1575 +f 1312/1824/1570 1328/1832/1576 1313/1811/1560 +f 1292/1812/1559 1311/1829/1556 1327/1831/1575 +f 1289/1833/1537 1313/1811/1560 1328/1832/1576 +f 1314/1813/1561 1292/1834/1559 1329/1835/1577 +f 1315/1814/1562 1329/1835/1577 1330/1836/1578 +f 1317/1818/1564 1330/1836/1578 1323/1825/1571 +f 1327/1831/1575 1332/1837/1579 1292/1834/1559 +f 1328/1832/1576 1334/1838/1580 1289/1839/1537 +f 1329/1835/1577 1332/1837/1579 1335/1840/1581 +f 1289/1839/1537 1336/1841/1582 1295/1842/1541 +f 1330/1836/1578 1335/1840/1581 1337/1843/1583 +f 1316/1844/1563 1295/1842/1541 1336/1841/1582 +f 1323/1825/1571 1337/1843/1583 1338/1845/1584 +f 1324/1826/1572 1338/1845/1584 1339/1846/1585 +f 1324/1826/1572 1340/1847/1586 1325/1827/1573 +f 1325/1827/1573 1341/1848/1587 1326/1828/1574 +f 1327/1831/1575 1307/1849/1553 1331/1850/1588 +f 1326/1828/1574 1333/1851/1589 1328/1832/1576 +f 1339/1846/1585 1342/1852/1590 1343/1853/1591 +f 1339/1846/1585 1344/1854/1592 1340/1847/1586 +f 1307/1849/1553 1322/1855/1593 1345/1856/1594 +f 1341/1848/1587 1344/1854/1592 1346/1857/1595 +f 1331/1850/1588 1307/1849/1553 1345/1856/1594 +f 1333/1851/1589 1341/1848/1587 1346/1857/1595 +f 1332/1837/1579 1331/1858/1588 1347/1859/1596 +f 1335/1840/1581 1347/1859/1596 1348/1860/1597 +f 1336/1841/1582 1334/1861/1580 1349/1862/1598 +f 1337/1843/1583 1348/1860/1597 1350/1863/1599 +f 1316/1864/1563 1336/1841/1582 1349/1862/1598 +f 1337/1843/1583 1342/1852/1590 1338/1845/1584 +f 1333/1865/1589 1352/1866/1600 1334/1861/1580 +f 1349/1862/1598 1334/1861/1580 1352/1866/1600 +f 1316/1867/1563 1349/1868/1598 1353/1869/1601 +f 1342/1852/1590 1350/1870/1599 1354/1871/1602 +f 1319/1872/1565 1316/1867/1563 1353/1869/1601 +f 1343/1853/1591 1354/1871/1602 1355/1873/1603 +f 1343/1853/1591 1356/1874/1604 1344/1854/1592 +f 1345/1856/1594 1322/1855/1593 1357/1875/1605 +f 1346/1857/1595 1344/1854/1592 1356/1874/1604 +f 1331/1858/1588 1345/1856/1594 1357/1875/1605 +f 1333/1865/1589 1346/1876/1595 1351/1877/1606 +f 1355/1873/1607 1359/1878/1608 1356/1874/1604 +f 1356/1874/1604 1360/1879/1609 1346/1876/1595 +f 1331/1880/1588 1357/1881/1605 1361/1882/1610 +f 1351/1877/1606 1346/1876/1595 1360/1879/1609 +f 1347/1883/1596 1361/1882/1610 1362/1884/1611 +f 1348/1885/1597 1362/1884/1611 1363/1886/1612 +f 1350/1870/1599 1363/1886/1612 1364/1887/1613 +f 1354/1871/1602 1364/1887/1613 1365/1888/1614 +f 1355/1873/1607 1365/1888/1614 1358/1889/1607 +f 1349/1890/1598 1352/1891/1600 1366/1892/1615 +f 1353/1893/1601 1349/1890/1598 1366/1892/1615 +f 1322/1855/1616 1368/1894/1617 1357/1895/1618 +f 1360/1896/1619 1369/1897/1620 1370/1898/1621 +f 1357/1895/1618 1371/1899/1622 1361/1900/1623 +f 1360/1896/1619 1372/1901/1624 1351/1902/1625 +f 1362/1903/1626 1371/1899/1622 1373/1904/1627 +f 1351/1902/1625 1374/1905/1628 1352/1891/1629 +f 1363/1906/1630 1373/1904/1627 1375/1907/1631 +f 1366/1892/1632 1374/1905/1628 1376/1908/1633 +f 1364/1909/1634 1375/1907/1631 1377/1910/1635 +f 1366/1892/1632 1378/1911/1636 1353/1912/1637 +f 1364/1909/1634 1379/1913/1638 1365/1914/1639 +f 1319/1872/1640 1378/1911/1636 1380/1915/1641 +f 1365/1914/1639 1381/1916/1642 1358/1917/1643 +f 1322/1855/1616 1306/1918/1644 1367/1919/1645 +f 1318/1920/1646 1319/1872/1640 1380/1915/1641 +f 1359/1921/1647 1381/1916/1642 1369/1897/1620 +f 1379/1913/1638 1377/1922/1635 1382/1923/1648 +f 1379/1913/1638 1383/1924/1649 1381/1916/1642 +f 1369/1897/1620 1383/1924/1649 1384/1925/1650 +f 1370/1898/1621 1369/1897/1620 1384/1925/1650 +f 1370/1926/1621 1384/1927/1650 1385/1928/1651 +f 1372/1929/1652 1385/1928/1651 1386/1930/1653 +f 1373/1931/1627 1371/1932/1622 1387/1933/1654 +f 1374/1934/1628 1386/1930/1653 1388/1935/1655 +f 1373/1931/1627 1389/1936/1656 1375/1937/1657 +f 1376/1938/1633 1374/1934/1628 1388/1935/1655 +f 1375/1937/1657 1390/1939/1658 1377/1922/1635 +f 1378/1940/1636 1376/1941/1633 1391/1942/1659 +f 1382/1923/1648 1377/1922/1635 1390/1939/1658 +f 1380/1915/1641 1378/1940/1636 1391/1942/1659 +f 1383/1924/1649 1382/1943/1648 1392/1944/1660 +f 1384/1925/1650 1383/1924/1649 1392/1944/1660 +f 1390/1939/1658 1394/1945/1661 1382/1943/1648 +f 1392/1944/1660 1382/1943/1648 1394/1945/1661 +f 1384/1927/1650 1392/1946/1660 1395/1947/1662 +f 1368/1948/1617 1367/1919/1645 1396/1949/1663 +f 1385/1928/1651 1384/1927/1650 1395/1947/1662 +f 1368/1948/1617 1397/1950/1664 1371/1932/1622 +f 1386/1951/1653 1385/1952/1651 1398/1953/1665 +f 1387/1933/1654 1371/1932/1622 1397/1950/1664 +f 1386/1951/1653 1399/1954/1666 1388/1955/1667 +f 1376/1941/1633 1388/1935/1655 1399/1956/1666 +f 1390/1939/1658 1389/1957/1656 1393/1958/1668 +f 1397/1950/1664 1396/1959/1663 1400/1960/1669 +f 1398/1961/1670 1385/1962/1670 1401/1963/1670 +f 1397/1950/1664 1402/1964/1671 1387/1965/1672 +f 1389/1966/1656 1402/1967/1671 1398/1968/1665 +f 1376/1969/1633 1399/1970/1666 1403/1971/1673 +f 1393/1972/1668 1389/1966/1656 1398/1968/1665 +f 1391/1973/1659 1376/1969/1633 1403/1971/1674 +f 1392/1946/1660 1394/1974/1661 1404/1975/1675 +f 1395/1947/1662 1392/1946/1660 1404/1975/1675 +f 1385/1962/1651 1395/1976/1662 1401/1963/1676 +f 1394/1977/1661 1393/1978/1668 1398/1979/1665 +f 1404/1980/1675 1394/1977/1661 1398/1981/1665 +f 1395/1982/1662 1404/1980/1675 1398/1983/1665 +f 1401/1984/1676 1395/1982/1662 1398/1985/1665 +f 1399/1986/1666 1398/1987/1665 1405/1988/1677 +f 1403/1971/1673 1405/1989/1677 1406/1990/1678 +f 1391/1991/1659 1403/1971/1674 1406/1990/1679 +f 1380/1915/1641 1391/1992/1659 1406/1993/1679 +f 1396/1994/1663 1367/1919/1645 1407/1995/1680 +f 1400/1996/1669 1396/1994/1663 1407/1995/1680 +f 1380/1915/1641 1406/1993/1679 1408/1997/1681 +f 1400/1998/1669 1407/1999/1680 1409/2000/1682 +f 1400/1998/1669 1410/2001/1683 1402/2002/1671 +f 1405/2003/1677 1398/2004/1665 1411/2005/1684 +f 1398/2006/1665 1402/2007/1671 1410/2008/1683 +f 1406/2009/1678 1411/2010/1684 1408/2011/1681 +f 1409/2012/1682 1407/2013/1680 1412/2014/1685 +f 1410/2015/1683 1412/2014/1685 1413/2016/1686 +f 1411/2017/1684 1398/2018/1665 1414/2019/1687 +f 1398/2020/1665 1410/2021/1683 1413/2022/1686 +f 1408/2023/1681 1411/2024/1684 1414/2025/1687 +f 1380/1915/1641 1408/2026/1681 1415/2027/1688 +f 1408/2028/1681 1414/2029/1687 1416/2030/1689 +f 1415/2027/1688 1408/2028/1681 1416/2030/1689 +f 1398/2031/1665 1417/2032/1690 1418/2033/1691 +f 1398/2034/1665 1418/2033/1691 1419/2035/1692 +f 1407/2013/1680 1367/1919/1645 1420/2036/1693 +f 1398/2037/1665 1419/2035/1692 1421/2038/1694 +f 1412/2014/1685 1407/2013/1680 1420/2036/1693 +f 1419/2035/1692 1418/2033/1691 1422/2039/1695 +f 1418/2033/1691 1417/2040/1690 1422/2039/1695 +f 1416/2041/1689 1414/2042/1687 1423/2043/1696 +f 1398/2044/1665 1424/2045/1697 1425/2046/1698 +f 1415/2047/1688 1416/2048/1689 1426/2049/1699 +f 1417/2040/1690 1398/2050/1665 1425/2046/1698 +f 1380/1915/1641 1415/2047/1688 1426/2049/1699 +f 1412/2051/1685 1420/2052/1693 1427/2053/1700 +f 1398/2054/1665 1421/2055/1694 1428/2056/1701 +f 1413/2057/1686 1427/2053/1700 1429/2058/1702 +f 1414/2059/1687 1428/2056/1701 1423/2060/1696 +f 1413/2061/1686 1424/2045/1697 1398/2044/1665 +f 1421/2062/1694 1430/2063/1703 1431/2064/1704 +f 1421/2062/1694 1432/2065/1705 1428/2066/1706 +f 1429/2058/1702 1427/2067/1700 1433/2068/1707 +f 1428/2066/1706 1434/2069/1708 1423/2043/1709 +f 1424/2070/1697 1433/2068/1707 1435/2071/1710 +f 1423/2043/1709 1436/2072/1711 1416/2048/1689 +f 1425/2073/1698 1435/2071/1710 1437/2074/1712 +f 1426/2049/1699 1416/2048/1689 1436/2072/1711 +f 1425/2073/1698 1438/2075/1713 1417/2076/1690 +f 1422/2077/1695 1438/2075/1713 1439/2078/1714 +f 1422/2077/1695 1430/2063/1703 1419/2079/1692 +f 1438/2075/1713 1437/2080/1712 1440/2081/1715 +f 1439/2078/1716 1440/2081/1715 1441/2082/1717 +f 1439/2078/1716 1442/2083/1718 1430/2063/1703 +f 1431/2064/1704 1430/2063/1703 1442/2083/1718 +f 1431/2084/1704 1443/2085/1719 1444/2086/1720 +f 1427/2087/1700 1445/2088/1721 1446/2089/1722 +f 1431/2084/1704 1447/2090/1723 1432/2091/1705 +f 1433/2092/1707 1446/2089/1722 1448/2093/1724 +f 1434/2094/1708 1447/2090/1723 1449/2095/1725 +f 1433/2092/1707 1450/2096/1726 1435/2097/1710 +f 1436/2098/1711 1449/2095/1725 1451/2099/1727 +f 1437/2080/1712 1450/2096/1726 1452/2100/1728 +f 1436/2098/1711 1453/2101/1729 1426/2102/1699 +f 1437/2080/1712 1454/2103/1730 1440/2081/1715 +f 1426/2102/1699 1455/2104/1731 1380/1915/1641 +f 1440/2081/1715 1456/2105/1732 1441/2082/1717 +f 1367/1919/1645 1306/2106/1733 1457/2107/1734 +f 1318/2108/1646 1380/1915/1641 1455/2104/1731 +f 1442/2083/1718 1456/2105/1732 1443/2085/1719 +f 1420/2109/1693 1457/2107/1734 1445/2088/1721 +f 1447/2110/1735 1458/2111/1736 1459/2112/1737 +f 1446/2113/1738 1461/2114/1739 1448/2115/1740 +f 1449/2116/1741 1459/2112/1737 1462/2117/1742 +f 1448/2115/1740 1463/2118/1743 1450/2119/1744 +f 1451/2120/1745 1462/2117/1742 1464/2121/1746 +f 1450/2119/1744 1465/2122/1747 1452/2123/1748 +f 1453/2124/1749 1451/2120/1745 1464/2121/1746 +f 1452/2123/1748 1466/2125/1750 1454/2126/1751 +f 1454/2126/1751 1467/2127/1752 1456/2128/1753 +f 1443/2129/1754 1467/2127/1752 1468/2130/1755 +f 1444/2131/1756 1468/2130/1755 1458/2111/1736 +f 1446/2113/1738 1445/2132/1757 1460/2133/1758 +f 1455/2134/1759 1453/2135/1749 1469/2136/1760 +f 1466/2125/1750 1471/2137/1761 1467/2127/1762 +f 1468/2130/1755 1471/2137/1761 1472/2138/1763 +f 1445/2132/1757 1457/2139/1764 1473/2140/1765 +f 1458/2111/1736 1468/2130/1755 1472/2138/1763 +f 1460/2133/1758 1445/2132/1757 1473/2140/1765 +f 1453/2135/1749 1464/2141/1746 1469/2136/1760 +f 1466/2125/1750 1465/2142/1747 1470/2143/1766 +f 1460/2144/1758 1475/2145/1767 1461/2146/1739 +f 1462/2147/1742 1476/2148/1768 1477/2149/1769 +f 1461/2146/1739 1478/2150/1770 1463/2151/1771 +f 1464/2141/1746 1477/2149/1769 1479/2152/1772 +f 1463/2151/1771 1480/2153/1773 1465/2142/1747 +f 1469/2136/1760 1464/2141/1746 1479/2152/1772 +f 1470/2143/1766 1480/2153/1773 1481/2154/1774 +f 1470/2143/1766 1482/2155/1775 1471/2137/1761 +f 1472/2138/1763 1482/2155/1775 1483/2156/1776 +f 1472/2138/1763 1484/2157/1777 1458/2158/1736 +f 1460/2144/1758 1473/2159/1765 1474/2160/1778 +f 1459/2161/1779 1484/2157/1777 1476/2148/1768 +f 1481/2154/1774 1486/2162/1780 1482/2155/1775 +f 1483/2156/1776 1486/2162/1780 1487/2163/1781 +f 1484/2157/1777 1487/2163/1781 1488/2164/1782 +f 1476/2148/1768 1488/2164/1782 1489/2165/1783 +f 1477/2149/1769 1476/2148/1768 1489/2165/1783 +f 1478/2150/1770 1475/2166/1767 1490/2167/1784 +f 1478/2150/1770 1491/2168/1785 1480/2153/1773 +f 1480/2153/1773 1485/2169/1786 1481/2154/1774 +f 1477/2170/1769 1492/2171/1787 1493/2172/1788 +f 1475/2166/1767 1495/2173/1789 1490/2167/1784 +f 1479/2174/1772 1477/2170/1769 1493/2172/1788 +f 1490/2167/1784 1496/2175/1790 1491/2168/1785 +f 1469/2176/1760 1479/2177/1772 1497/2178/1791 +f 1491/2168/1785 1498/2179/1792 1485/2169/1786 +f 1455/2134/1759 1469/2176/1760 1497/2178/1791 +f 1485/2169/1786 1499/2180/1793 1486/2162/1780 +f 1487/2163/1781 1499/2180/1793 1500/2181/1794 +f 1473/2182/1765 1457/2183/1764 1305/2184/1551 +f 1488/2164/1782 1500/2181/1794 1501/2185/1795 +f 1473/2182/1765 1310/2186/1557 1474/2187/1778 +f 1489/2165/1783 1501/2185/1795 1492/2171/1787 +f 1474/2187/1778 1494/2188/1796 1475/2166/1767 +f 1500/2181/1794 1502/2189/1797 1503/2190/1798 +f 1305/2184/1551 1457/2183/1764 1306/2191/1552 +f 1501/2185/1795 1503/2190/1798 1504/2192/1799 +f 1492/2171/1787 1504/2192/1799 1505/2193/1800 +f 1493/2172/1788 1492/2171/1787 1505/2193/1800 +f 1495/2173/1789 1494/2194/1796 1506/2195/1801 +f 1479/2177/1772 1493/2196/1788 1294/2197/1542 +f 1495/2173/1789 1507/2198/1802 1496/2175/1790 +f 1497/2178/1791 1479/2177/1772 1294/2197/1542 +f 1496/2175/1790 1508/2199/1803 1498/2179/1792 +f 1455/2200/1759 1497/2201/1791 1318/2202/1566 +f 1498/2179/1792 1502/2189/1797 1499/2180/1793 +f 1506/2195/1801 1291/1788/1538 1290/1790/1540 +f 1294/2197/1542 1493/2196/1788 1286/1785/1535 +f 1507/2198/1802 1290/1790/1540 1296/1794/1544 +f 1497/2201/1791 1294/1792/1542 1298/1795/1545 +f 1507/2198/1802 1299/1796/1546 1508/2199/1803 +f 1318/2202/1566 1497/2201/1791 1298/1795/1545 +f 1508/2199/1803 1301/1798/1449 1502/2189/1797 +f 1503/2190/1798 1301/1798/1449 1303/1801/1550 +f 1504/2192/1799 1303/1801/1550 1308/1806/1555 +f 1504/2192/1799 1287/1809/1558 1505/2193/1800 +f 1494/2194/1796 1310/1808/1557 1291/1788/1538 +f 1505/2193/1800 1286/1785/1535 1493/2196/1788 +f 1510/2203/1804 1512/2204/1805 1509/2205/1806 +f 1513/2206/1807 1515/2207/1807 1516/2208/1807 +f 1516/2209/1808 1511/2210/1809 1510/2211/1810 +f 1519/2212/1811 1513/2206/1812 1516/2208/1813 +f 1521/2213/1814 1518/2214/1814 1517/2215/1814 +f 1515/2216/1815 1512/2217/1805 1511/2218/1816 +f 1518/2219/1451 1520/2220/1451 1519/2221/1451 +f 1517/2222/1817 1509/2223/1818 1521/2224/1819 +f 1520/2225/1820 1521/2226/1821 1509/2227/1822 +f 1524/2228/1823 1526/2229/1824 1523/2230/1451 +f 1533/2231/1452 1534/2232/1452 1542/2233/1452 +f 1539/2234/1825 1544/2235/1826 1540/2236/1827 +f 1542/2237/1449 1523/2238/1449 1526/2239/1449 +f 1537/2240/1828 1547/2241/1828 1538/2242/1828 +f 1548/2243/1829 1525/2244/1830 1524/2228/1831 +f 1549/2245/1832 1533/2246/1833 1532/2247/1834 +f 1551/2248/1835 1532/2249/1834 1531/2250/1836 +f 1530/2251/1837 1529/2252/1838 1553/2253/1839 +f 1555/2254/1840 1535/2255/1841 1554/2256/1842 +f 1550/2257/1843 1534/2258/1844 1533/2259/1833 +f 1554/2260/1845 1534/2261/1844 1556/2262/1846 +f 1528/2263/1847 1552/2264/1848 1529/2265/1849 +f 1536/2266/1850 1546/2267/1851 1537/2240/1852 +f 1540/2268/1827 1558/2269/1853 1541/2270/1854 +f 1542/2271/1855 1558/2269/1853 1545/2272/1856 +f 1543/2273/1857 1538/2274/1450 1547/2275/1450 +f 1560/2276/1858 1562/2277/1859 1559/2278/1860 +f 1563/2279/1861 1561/2280/1862 1560/2276/1863 +f 1565/2281/1864 1564/2282/1865 1563/2279/1861 +f 1567/2283/1866 1568/2284/1867 1566/2285/1868 +f 1567/2286/1869 1570/2287/1870 1568/2288/1871 +f 1571/2289/1872 1569/2290/1872 1572/2291/1872 +f 1573/2292/1873 1572/2293/1874 1574/2294/1875 +f 1573/2295/1453 1575/2296/1453 1561/2297/1453 +f 1575/2298/1876 1574/2299/1875 1578/2300/1877 +f 1574/2301/1452 1572/2302/1452 1563/2303/1452 +f 1559/2278/1860 1577/2304/1878 1580/2305/1879 +f 1580/2305/1880 1576/2306/1881 1579/2307/1882 +f 1576/2308/1883 1578/2309/1877 1579/2310/1884 +f 1566/2285/1868 1565/2281/1885 1567/2283/1866 +f 1582/2311/1451 1584/2312/1451 1581/2312/1451 +f 1582/2313/1886 1587/2314/1887 1585/2315/1888 +f 1586/2316/1889 1589/2317/1890 1587/2318/1891 +f 1589/2319/1892 1581/2320/1893 1590/2321/1894 +f 1585/2322/1895 1589/2323/1896 1590/2324/1897 +f 1582/2311/1898 1588/2325/1898 1586/2316/1898 +f 1583/2326/1452 1592/2327/1452 1593/2328/1452 +f 1585/2329/1451 1594/2330/1451 1591/2331/1451 +f 1585/2332/1451 1583/2333/1451 1582/2333/1451 +f 1581/2334/1451 1594/2335/1451 1590/2335/1451 +f 1596/2336/1451 1592/2332/1451 1595/2337/1451 +f 1584/2338/1453 1595/2339/1453 1594/2340/1453 +f 1583/2311/1899 1596/2312/1899 1584/2312/1899 +f 1594/2341/1900 1592/2342/1900 1591/2343/1900 +f 1592/2332/1901 1598/2337/1902 1597/2332/1903 +f 1598/2337/1902 1599/2332/1904 1597/2332/1903 +f 1598/2344/1905 1596/2345/1906 1600/2346/1907 +f 1593/2347/1908 1597/2348/1909 1599/2349/1910 +f 1602/2350/1451 1604/2351/1451 1601/2352/1451 +f 1603/2353/1452 1605/2354/1452 1606/2355/1452 +f 1609/2356/1911 1611/2357/1911 1608/2358/1911 +f 1611/2359/1453 1602/2360/1453 1601/2361/1453 +f 1613/2362/1449 1612/2363/1449 1601/2364/1449 +f 1608/2358/1911 1612/2365/1911 1613/2366/1911 +f 1606/2367/1912 1613/2366/1912 1607/2368/1912 +f 1605/2369/1912 1608/2358/1912 1606/2367/1912 +f 1601/2370/1913 1615/2371/1914 1602/2372/1915 +f 1601/2373/1916 1589/2374/1916 1614/2375/1916 +f 1603/2376/1917 1617/2377/1918 1604/2378/1919 +f 1617/2379/1920 1587/2380/1920 1604/2381/1920 +f 1619/2382/1921 1621/2383/1922 1618/2384/1923 +f 1622/2385/1924 1624/2386/1925 1625/2387/1926 +f 1620/2388/1927 1627/2389/1928 1621/2383/1922 +f 1625/2387/1926 1628/2390/1929 1629/2391/1930 +f 1626/2392/1931 1631/2393/1932 1627/2389/1928 +f 1629/2391/1930 1632/2394/1933 1633/2395/1934 +f 1630/2396/1935 1635/2397/1936 1631/2393/1932 +f 1633/2395/1934 1636/2398/1937 1637/2399/1938 +f 1634/2400/1939 1639/2401/1940 1635/2397/1936 +f 1637/2399/1938 1640/2402/1941 1641/2403/1941 +f 1638/2404/1942 1643/2405/1943 1639/2401/1940 +f 1640/2402/1941 1645/2406/1944 1641/2403/1941 +f 1643/2405/1943 1646/2407/1945 1647/2408/1946 +f 1644/2409/1947 1618/2384/1923 1645/2406/1944 +f 1647/2408/1946 1623/2410/1948 1622/2385/1924 +f 1648/2411/1949 1650/2412/1950 1651/2413/1951 +f 1652/2414/1952 1650/2412/1950 1649/2415/1953 +f 1654/2416/1954 1653/2417/1955 1652/2414/1952 +f 1656/2418/1956 1658/2419/1957 1659/2420/1958 +f 1660/2421/1959 1655/2422/1960 1654/2416/1954 +f 1657/2423/1961 1663/2424/1962 1658/2419/1957 +f 1664/2425/1963 1661/2426/1964 1660/2421/1959 +f 1662/2427/1965 1667/2428/1966 1663/2424/1962 +f 1668/2429/1967 1665/2430/1968 1664/2425/1963 +f 1666/2431/1969 1671/2432/1970 1667/2428/1966 +f 1672/2433/1971 1669/2434/1972 1668/2429/1967 +f 1670/2435/1973 1651/2436/1951 1671/2432/1970 +f 1674/2437/1974 1673/2438/1975 1672/2433/1971 +f 1675/2439/1976 1677/2440/1977 1673/2438/1975 +f 1651/2413/1951 1678/2441/1978 1679/2442/1979 +f 1680/2443/1980 1676/2444/1981 1675/2439/1976 +f 1653/2417/1955 1678/2441/1978 1650/2412/1950 +f 1680/2443/1980 1683/2445/1982 1681/2446/1983 +f 1655/2422/1960 1682/2447/1984 1653/2417/1955 +f 1659/2420/1958 1685/2448/1985 1683/2445/1982 +f 1661/2426/1964 1684/2449/1986 1655/2422/1960 +f 1658/2419/1957 1687/2450/1987 1685/2448/1985 +f 1665/2430/1968 1686/2451/1988 1661/2426/1964 +f 1663/2424/1962 1689/2452/1989 1687/2450/1987 +f 1669/2434/1972 1688/2453/1990 1665/2430/1968 +f 1667/2428/1966 1691/2454/1991 1689/2452/1989 +f 1673/2438/1975 1690/2455/1992 1669/2434/1972 +f 1671/2432/1970 1679/2456/1979 1691/2454/1991 +f 1691/2454/1991 1692/2457/1993 1693/2458/1994 +f 1676/2444/1981 1695/2459/1995 1677/2440/1977 +f 1679/2442/1979 1696/2460/1996 1692/2461/1993 +f 1676/2444/1981 1697/2462/1997 1694/2463/1998 +f 1682/2447/1984 1696/2460/1996 1678/2441/1978 +f 1681/2446/1983 1699/2464/1999 1697/2462/1997 +f 1684/2449/1986 1698/2465/2000 1682/2447/1984 +f 1683/2445/1982 1701/2466/2001 1699/2464/1999 +f 1686/2451/1988 1700/2467/2002 1684/2449/1986 +f 1685/2448/1985 1703/2468/2003 1701/2466/2001 +f 1688/2453/1990 1702/2469/2004 1686/2451/1988 +f 1687/2450/1987 1705/2470/2005 1703/2468/2003 +f 1690/2455/1992 1704/2471/2006 1688/2453/1990 +f 1689/2452/1989 1693/2458/1994 1705/2470/2005 +f 1677/2440/1977 1706/2472/2007 1690/2455/1992 +f 1693/2458/1994 1707/2473/2008 1708/2474/2009 +f 1694/2463/1998 1710/2475/2010 1695/2459/1995 +f 1692/2461/1993 1711/2476/2011 1707/2477/2008 +f 1697/2462/1997 1709/2478/2012 1694/2463/1998 +f 1698/2465/2000 1711/2476/2011 1696/2460/1996 +f 1697/2462/1997 1714/2479/2013 1712/2480/2014 +f 1700/2467/2002 1713/2481/2015 1698/2465/2000 +f 1699/2464/1999 1716/2482/2016 1714/2479/2013 +f 1702/2469/2004 1715/2483/2017 1700/2467/2002 +f 1701/2466/2001 1718/2484/2018 1716/2482/2016 +f 1704/2471/2006 1717/2485/2019 1702/2469/2004 +f 1703/2468/2003 1720/2486/2020 1718/2484/2018 +f 1706/2472/2007 1719/2487/2021 1704/2471/2006 +f 1705/2470/2005 1708/2474/2009 1720/2486/2020 +f 1695/2459/1995 1721/2488/2022 1706/2472/2007 +f 1718/2489/2018 1708/2490/2009 1721/2491/2022 +f 1622/2385/2023 1723/2492/2024 1647/2408/2025 +f 1724/2493/2026 1629/2391/2027 1633/2395/2028 +f 1725/2494/2029 1625/2387/2030 1629/2391/2027 +f 1647/2408/2025 1727/2495/2031 1643/2405/2032 +f 1625/2387/2030 1722/2496/2033 1622/2385/2023 +f 1643/2405/2032 1728/2497/2034 1639/2401/2035 +f 1729/2498/2036 1731/2499/2037 1732/2500/2038 +f 1639/2401/2035 1733/2501/2039 1635/2397/2040 +f 1734/2502/2041 1730/2503/2042 1729/2498/2036 +f 1635/2397/2040 1736/2504/2043 1631/2393/2044 +f 1738/2505/2045 1734/2502/2041 1737/2506/2046 +f 1740/2507/2047 1737/2506/2046 1739/2508/2048 +f 1631/2393/2044 1741/2509/2049 1627/2389/2050 +f 1743/2510/2051 1739/2508/2048 1742/2511/2052 +f 1744/2512/2053 1637/2399/2054 1641/2403/2055 +f 1747/2513/2056 1742/2511/2052 1746/2514/2057 +f 1749/2515/2058 1746/2514/2057 1748/2516/2059 +f 1751/2517/2060 1748/2516/2059 1750/2518/2061 +f 1753/2519/2062 1750/2518/2061 1752/2520/2063 +f 1741/2509/2049 1621/2383/2064 1627/2389/2050 +f 1755/2521/2065 1753/2519/2062 1752/2520/2063 +f 1754/2522/2066 1618/2384/2067 1621/2383/2064 +f 1732/2500/2038 1758/2523/2068 1759/2524/2069 +f 1759/2524/2069 1760/2525/2070 1761/2526/2071 +f 1757/2527/2072 1645/2406/2073 1618/2384/2067 +f 1761/2526/2071 1763/2528/2074 1764/2529/2075 +f 1762/2530/2076 1641/2403/2055 1645/2406/2073 +f 1765/2531/2077 1756/2532/2078 1755/2521/2065 +f 1745/2533/2079 1633/2395/2028 1637/2399/2054 +f 1764/2529/2075 1766/2534/2080 1765/2531/2077 +f 1731/2499/2081 1725/2494/2082 1724/2493/2081 +f 1749/2515/2083 1736/2504/2084 1733/2501/2083 +f 1758/2523/2085 1724/2493/2081 1745/2533/2085 +f 1747/2513/2086 1733/2501/2083 1728/2497/2086 +f 1743/2510/2087 1728/2497/2086 1727/2495/2087 +f 1763/2528/2088 1744/2512/2089 1762/2530/2088 +f 1740/2507/2090 1727/2495/2087 1723/2492/2090 +f 1766/2534/2091 1762/2530/2088 1757/2527/2091 +f 1738/2505/2092 1723/2492/2090 1722/2496/2092 +f 1756/2532/1452 1757/2527/2091 1754/2522/1452 +f 1735/2535/2093 1722/2496/2092 1726/2536/2093 +f 1753/2519/2094 1754/2522/1452 1741/2509/2094 +f 1730/2503/2082 1726/2536/2093 1725/2494/2082 +f 1751/2517/2084 1741/2509/2094 1736/2504/2084 +f 1760/2525/2089 1745/2533/2085 1744/2512/2089 +f 1768/2537/2095 1770/2538/2096 1767/2539/2096 +f 1628/2540/2097 1657/2423/2098 1656/2418/2099 +f 1642/2541/2100 1672/2433/2101 1668/2429/2102 +f 1642/2541/2100 1664/2425/2103 1638/2542/2086 +f 1632/2543/2104 1662/2544/2105 1657/2545/2098 +f 1646/2546/2106 1674/2437/1923 1672/2433/2101 +f 1630/2547/2107 1652/2548/2108 1626/2549/2109 +f 1644/2550/2110 1666/2551/2111 1640/2552/2111 +f 1638/2553/2086 1660/2554/2112 1634/2555/2113 +f 1626/2549/2109 1649/2556/2114 1620/2557/2115 +f 1636/2558/2085 1666/2551/2111 1662/2544/2105 +f 1634/2555/2113 1654/2559/2116 1630/2547/2107 +f 1619/2560/2117 1670/2561/2118 1644/2550/2110 +f 1620/2557/2115 1648/2562/2119 1619/2563/2117 +f 1623/2564/2120 1771/2565/2121 1772/2566/2120 +f 1630/2567/2122 1774/2568/2123 1634/2569/2123 +f 1776/2570/2124 1778/2571/2125 1775/2572/2126 +f 1636/2573/2127 1779/2574/2128 1780/2575/2127 +f 1640/2576/2129 1780/2575/2127 1781/2577/2130 +f 1782/2578/2131 1784/2579/2132 1785/2580/2133 +f 1638/2581/2134 1787/2582/2135 1642/2583/2135 +f 1620/2584/2136 1789/2585/2137 1626/2586/2137 +f 1790/2587/2138 1769/2588/2095 1768/2537/2095 +f 1624/2589/2139 1793/2590/2140 1628/2591/2140 +f 1634/2569/2123 1786/2592/2134 1638/2581/2134 +f 1794/2593/2141 1777/2594/2124 1776/2570/2124 +f 1642/2583/2135 1771/2565/2121 1646/2595/2121 +f 1640/2576/2129 1796/2596/2142 1644/2597/2143 +f 1772/2566/2144 1798/2598/2145 1792/2599/2146 +f 1796/2596/2147 1769/2600/2148 1791/2601/2149 +f 1793/2590/2150 1800/2602/2151 1779/2574/2152 +f 1786/2592/1942 1785/2603/2153 1784/2604/1940 +f 1787/2582/2154 1802/2605/2155 1771/2565/2156 +f 1789/2585/2157 1778/2606/1276 1777/2607/2158 +f 1792/2599/2146 1799/2608/2159 1793/2590/2150 +f 1781/2577/2160 1770/2609/1938 1769/2600/2148 +f 1786/2592/1942 1801/2610/2161 1787/2582/2154 +f 1774/2568/2162 1795/2611/2163 1785/2603/2153 +f 1779/2574/2152 1770/2609/1938 1780/2575/1938 +f 1803/2612/2164 1791/2601/2149 1804/2613/2165 +f 1771/2565/2156 1797/2614/2166 1772/2566/2144 +f 1788/2615/2167 1804/2613/2165 1778/2606/1276 +f 1773/2616/2168 1777/2607/2158 1795/2611/2163 +f 1619/2617/2169 1796/2596/2142 1803/2612/2169 +f 1794/2593/2141 1785/2580/2133 1795/2618/2141 +f 1620/2584/2136 1803/2612/2169 1788/2615/2136 +f 1805/2619/2170 1791/2620/2138 1790/2587/2138 +f 1806/2621/2171 1798/2622/2172 1797/2623/2171 +f 1775/2572/2126 1804/2624/2170 1805/2619/2170 +f 1808/2625/2173 1800/2626/2174 1799/2627/2173 +f 1810/2628/2175 1802/2629/2176 1801/2630/2175 +f 1807/2631/2172 1799/2627/2173 1798/2622/2172 +f 1783/2632/2132 1801/2630/2175 1784/2579/2132 +f 1623/2564/2120 1792/2599/2139 1624/2589/2139 +f 1767/2539/2096 1800/2626/2174 1809/2633/2174 +f 1626/2586/2137 1773/2616/2122 1630/2567/2122 +f 1628/2591/2140 1779/2574/2128 1632/2634/2128 +f 1811/2635/2176 1797/2623/2171 1802/2629/2176 +f 1784/2636/2177 1812/2637/2178 1813/2638/2179 +f 1801/2639/2180 1815/2640/2181 1802/2641/2182 +f 1777/2642/2183 1816/2643/2184 1817/2644/2185 +f 1798/2645/2186 1819/2646/2187 1799/2647/2188 +f 1769/2648/2189 1820/2649/2190 1821/2650/2191 +f 1784/2636/2177 1814/2651/2192 1801/2639/2180 +f 1822/2652/2193 1785/2653/2194 1795/2654/2195 +f 1800/2655/2196 1820/2649/2190 1770/2656/2190 +f 1824/2657/2197 1804/2658/2198 1791/2659/2199 +f 1802/2641/2182 1826/2660/2200 1797/2661/2201 +f 1825/2662/2202 1778/2663/2203 1804/2664/2198 +f 1795/2654/2195 1817/2644/2185 1822/2652/2193 +f 1797/2661/2201 1818/2665/2204 1798/2645/2186 +f 1791/2659/2199 1821/2650/2191 1824/2657/2197 +f 1799/2647/2188 1823/2666/2205 1800/2655/2196 +f 1828/2667/1921 1830/2668/2206 1827/2669/1923 +f 1831/2670/2207 1833/2671/2208 1834/2672/2209 +f 1829/2673/2210 1836/2674/2211 1830/2668/2206 +f 1834/2675/2209 1837/2676/1929 1838/2677/1930 +f 1835/2678/2212 1840/2679/2213 1836/2674/2211 +f 1838/2677/1930 1841/2680/1933 1842/2681/2214 +f 1839/2682/1935 1844/2683/2215 1840/2679/2213 +f 1842/2681/2214 1845/2684/1937 1846/2685/1938 +f 1843/2686/1939 1848/2687/1940 1844/2683/2215 +f 1846/2685/1938 1849/2688/2216 1850/2689/1941 +f 1847/2690/1940 1852/2691/1943 1848/2687/1940 +f 1849/2688/2216 1854/2692/1947 1850/2689/1941 +f 1852/2691/1943 1855/2693/1945 1856/2694/1946 +f 1853/2695/1947 1827/2669/1923 1854/2692/1947 +f 1856/2694/1946 1832/2696/2217 1831/2670/2207 +f 1857/2697/1949 1859/2698/1950 1860/2699/1951 +f 1861/2700/2218 1863/2701/2219 1864/2702/2220 +f 1865/2703/2221 1859/2698/1950 1858/2704/2222 +f 1862/2705/2223 1868/2706/2224 1863/2707/2219 +f 1869/2708/1954 1866/2709/1955 1865/2703/1952 +f 1867/2710/2225 1872/2711/2226 1868/2706/2224 +f 1873/2712/1959 1870/2713/1960 1869/2708/1954 +f 1871/2714/2227 1876/2715/1962 1872/2711/2226 +f 1877/2716/1963 1874/2717/1964 1873/2712/1959 +f 1875/2718/2228 1880/2719/1966 1876/2715/1962 +f 1881/2720/2229 1878/2721/1968 1877/2716/1963 +f 1879/2722/1969 1884/2723/1970 1880/2719/1966 +f 1885/2724/1971 1882/2725/2230 1881/2720/2229 +f 1883/2726/1973 1860/2699/1951 1884/2723/1970 +f 1861/2700/2218 1886/2727/2231 1885/2724/1971 +f 1864/2702/2220 1888/2728/1977 1886/2727/2231 +f 1860/2699/1951 1889/2729/2232 1890/2730/1979 +f 1863/2701/2219 1887/2731/2233 1864/2702/2220 +f 1866/2709/1955 1889/2729/2232 1859/2698/1950 +f 1863/2707/2219 1893/2732/1982 1891/2733/2234 +f 1870/2713/1960 1892/2734/1984 1866/2709/1955 +f 1868/2706/2224 1895/2735/1985 1893/2732/1982 +f 1874/2717/1964 1894/2736/1986 1870/2713/1960 +f 1872/2711/2226 1897/2737/1987 1895/2735/1985 +f 1878/2721/1968 1896/2738/2235 1874/2717/1964 +f 1876/2715/1962 1899/2739/2236 1897/2737/1987 +f 1882/2725/2230 1898/2740/1990 1878/2721/1968 +f 1880/2719/1966 1901/2741/1991 1899/2739/2236 +f 1886/2727/2231 1900/2742/1992 1882/2725/2230 +f 1884/2723/1970 1890/2730/1979 1901/2741/1991 +f 1901/2741/1991 1902/2743/1993 1903/2744/2237 +f 1887/2731/2233 1905/2745/2238 1888/2728/1977 +f 1890/2730/1979 1906/2746/2239 1902/2743/1993 +f 1887/2731/2233 1907/2747/1997 1904/2748/1998 +f 1892/2734/1984 1906/2746/2239 1889/2729/2232 +f 1891/2733/2234 1909/2749/1999 1907/2750/1997 +f 1894/2736/1986 1908/2751/2000 1892/2734/1984 +f 1893/2732/1982 1911/2752/2240 1909/2749/1999 +f 1896/2738/2235 1910/2753/2241 1894/2736/1986 +f 1895/2735/1985 1913/2754/2003 1911/2752/2240 +f 1898/2740/1990 1912/2755/2242 1896/2738/2235 +f 1897/2737/1987 1915/2756/2243 1913/2754/2003 +f 1900/2742/1992 1914/2757/2006 1898/2740/1990 +f 1899/2739/2236 1903/2744/2237 1915/2756/2243 +f 1888/2728/1977 1916/2758/2244 1900/2742/1992 +f 1903/2744/2237 1917/2759/2008 1918/2760/2245 +f 1904/2748/1998 1920/2761/2246 1905/2745/2238 +f 1902/2743/1993 1921/2762/2011 1917/2759/2008 +f 1907/2747/1997 1919/2763/2247 1904/2748/1998 +f 1908/2751/2000 1921/2762/2011 1906/2746/2239 +f 1907/2750/1997 1924/2764/2013 1922/2765/2014 +f 1910/2753/2241 1923/2766/2015 1908/2751/2000 +f 1909/2749/1999 1926/2767/2248 1924/2764/2013 +f 1912/2755/2242 1925/2768/2017 1910/2753/2241 +f 1911/2752/2240 1928/2769/2249 1926/2767/2248 +f 1914/2757/2006 1927/2770/2250 1912/2755/2242 +f 1913/2754/2003 1930/2771/2020 1928/2769/2249 +f 1916/2758/2244 1929/2772/2251 1914/2757/2006 +f 1915/2756/2243 1918/2760/2245 1930/2771/2020 +f 1905/2745/2238 1931/2773/2022 1916/2758/2244 +f 1931/2774/2022 1924/2775/2013 1918/2776/2245 +f 1831/2670/2023 1933/2777/2252 1856/2694/2253 +f 1934/2778/2254 1838/2677/2255 1842/2681/2256 +f 1935/2779/2257 1834/2675/2258 1838/2677/2255 +f 1856/2694/2253 1937/2780/2259 1852/2691/2260 +f 1834/2672/2258 1932/2781/2033 1831/2670/2023 +f 1852/2691/2260 1938/2782/2261 1848/2687/2262 +f 1939/2783/2263 1941/2784/2264 1942/2785/2265 +f 1848/2687/2262 1943/2786/2266 1844/2683/2267 +f 1944/2787/2268 1940/2788/2269 1939/2783/2263 +f 1844/2683/2267 1946/2789/2270 1840/2679/2271 +f 1948/2790/2272 1944/2787/2268 1947/2791/2273 +f 1950/2792/2274 1947/2791/2273 1949/2793/2275 +f 1840/2679/2271 1951/2794/2276 1836/2674/2277 +f 1953/2795/2278 1949/2793/2275 1952/2796/2279 +f 1954/2797/2280 1846/2685/2281 1850/2689/2282 +f 1957/2798/2283 1952/2796/2279 1956/2799/2284 +f 1959/2800/2285 1956/2799/2284 1958/2801/2286 +f 1961/2802/2287 1958/2801/2286 1960/2803/2288 +f 1963/2804/2289 1960/2803/2288 1962/2805/2290 +f 1951/2794/2276 1830/2668/2291 1836/2674/2277 +f 1965/2806/2292 1963/2804/2289 1962/2805/2290 +f 1964/2807/2066 1827/2669/2293 1830/2668/2291 +f 1942/2785/2265 1968/2808/2294 1969/2809/2295 +f 1969/2809/2295 1970/2810/2296 1971/2811/2297 +f 1967/2812/2298 1854/2692/2299 1827/2669/2293 +f 1971/2811/2297 1973/2813/2300 1974/2814/2301 +f 1972/2815/2302 1850/2689/2282 1854/2692/2299 +f 1975/2816/2303 1966/2817/2304 1965/2806/2292 +f 1955/2818/2305 1842/2681/2256 1846/2685/2281 +f 1974/2814/2301 1976/2819/2306 1975/2816/2303 +f 1941/2784/2081 1935/2779/2082 1934/2778/2081 +f 1959/2800/2083 1946/2789/2084 1943/2786/2083 +f 1968/2808/2085 1934/2778/2081 1955/2818/2085 +f 1957/2798/2086 1943/2786/2083 1938/2782/2086 +f 1953/2795/2087 1938/2782/2086 1937/2780/2087 +f 1973/2813/2088 1954/2797/2089 1972/2815/2088 +f 1950/2792/2090 1937/2780/2087 1933/2777/2090 +f 1976/2819/2307 1972/2815/2088 1967/2812/2307 +f 1948/2790/2092 1933/2777/2090 1932/2781/2092 +f 1966/2817/1452 1967/2812/2307 1964/2807/1452 +f 1945/2820/2093 1932/2781/2092 1936/2821/2093 +f 1963/2804/2308 1964/2807/1452 1951/2794/2308 +f 1940/2788/2082 1936/2822/2093 1935/2779/2082 +f 1961/2802/2084 1951/2794/2308 1946/2789/2084 +f 1970/2810/2089 1955/2818/2085 1954/2797/2089 +f 1977/2823/2096 1979/2824/2095 1980/2825/2096 +f 1832/2826/2309 1862/2827/2310 1861/2828/2311 +f 1837/2829/2312 1871/2830/2098 1867/2831/2313 +f 1851/2832/2100 1885/2833/2101 1881/2834/2102 +f 1833/2835/2314 1867/2831/2313 1862/2836/2310 +f 1851/2832/2100 1877/2837/2103 1847/2838/2086 +f 1841/2839/2104 1875/2840/2105 1871/2830/2098 +f 1855/2841/2315 1861/2828/2311 1885/2833/2101 +f 1839/2842/2107 1865/2703/1930 1835/2843/1930 +f 1853/2844/2110 1879/2722/2111 1849/2845/2111 +f 1847/2846/2086 1873/2712/2112 1843/2847/2113 +f 1845/2848/2085 1879/2849/2111 1875/2840/2105 +f 1843/2847/2113 1869/2708/2116 1839/2842/2107 +f 1828/2850/1946 1883/2726/2118 1853/2844/2110 +f 1832/2851/2316 1982/2852/2317 1855/2853/2317 +f 1983/2854/2318 1839/2855/2319 1843/2856/2318 +f 1986/2857/2320 1988/2858/2321 1985/2859/2321 +f 1845/2860/2322 1990/2861/2323 1841/2862/2323 +f 1991/2863/2324 1845/2860/2322 1849/2864/2324 +f 1993/2865/2132 1995/2866/2325 1992/2867/2325 +f 1851/2868/2326 1997/2869/2327 1847/2870/2327 +f 1998/2871/2328 1829/2872/2329 1835/2873/2328 +f 2000/2874/2330 1979/2824/2095 1978/2875/2095 +f 1837/2876/2331 2003/2877/2332 1833/2878/2332 +f 1847/2870/2327 1983/2854/2318 1843/2856/2318 +f 2004/2879/2141 1987/2880/2320 1986/2857/2320 +f 1982/2852/2317 1851/2868/2326 1855/2853/2317 +f 2006/2881/2333 1849/2864/2324 1853/2882/2333 +f 2007/2883/2334 1981/2884/2335 2003/2877/2336 +f 2006/2881/2337 1979/2885/2338 1991/2863/2339 +f 2009/2886/2340 2002/2887/2341 1990/2861/2342 +f 1997/2869/2103 1995/2888/2083 1983/2854/2343 +f 2011/2889/2344 1996/2890/2345 1982/2852/2346 +f 1998/2871/2347 1988/2891/2348 1999/2892/2349 +f 2010/2893/2350 2003/2877/2336 2002/2887/2341 +f 1991/2863/2339 1980/2894/2105 1989/2895/2085 +f 2012/2896/2351 1997/2869/2103 1996/2890/2345 +f 1983/2854/2343 2005/2897/2352 1984/2898/2353 +f 1980/2894/2105 1990/2861/2342 1989/2895/2085 +f 2013/2899/2354 2001/2900/2355 2006/2881/2337 +f 2008/2901/2356 1982/2852/2346 1981/2884/2335 +f 1999/2892/2349 2014/2902/2357 2013/2899/2354 +f 1984/2898/2353 1987/2903/2358 1998/2871/2347 +f 2013/2899/2359 1853/2882/2333 1828/2904/2360 +f 1992/2867/2325 2005/2905/2141 2004/2879/2141 +f 1999/2892/2329 1828/2904/2360 1829/2872/2329 +f 2000/2874/2330 2014/2906/2361 2001/2907/2330 +f 2016/2908/2171 2007/2909/2362 2008/2910/2171 +f 1985/2859/2321 2014/2906/2361 2015/2911/2361 +f 2019/2912/2174 2010/2913/2363 2018/2914/2363 +f 2020/2915/2175 2011/2916/2176 2012/2917/2175 +f 2017/2918/2362 2010/2913/2363 2007/2909/2362 +f 1993/2865/2132 2012/2917/2175 1994/2919/2364 +f 1833/2920/2332 1981/2884/2316 1832/2851/2316 +f 1977/2823/2096 2009/2921/2174 2019/2912/2174 +f 1984/2898/2319 1835/2873/2328 1839/2855/2319 +f 1841/2862/2323 2002/2887/2331 1837/2876/2331 +f 2021/2922/2176 2008/2910/2171 2011/2916/2176 +f 1994/2923/2365 2022/2924/2178 2023/2925/2365 +f 2012/2926/2366 2025/2927/2181 2011/2928/2182 +f 1987/2929/2367 2026/2930/2184 2027/2931/2368 +f 2007/2932/2369 2029/2933/2370 2010/2934/2371 +f 1979/2935/2372 2030/2936/2373 2031/2937/2374 +f 1994/2923/2365 2024/2938/2375 2012/2926/2366 +f 2032/2939/2193 1995/2940/2194 2005/2941/2376 +f 2009/2942/2377 2030/2936/2373 1980/2943/2373 +f 2034/2944/2378 2014/2945/2379 2001/2946/2199 +f 2011/2928/2182 2036/2947/2380 2008/2948/2381 +f 2035/2949/2382 1988/2950/2203 2014/2945/2379 +f 2005/2941/2376 2027/2931/2368 2032/2939/2193 +f 2008/2948/2381 2028/2951/2204 2007/2952/2369 +f 2001/2946/2199 2031/2937/2374 2034/2944/2378 +f 2010/2934/2371 2033/2953/2383 2009/2942/2377 +f 2037/2954/2384 2038/2955/2385 2039/2956/2386 +f 2040/2957/2387 2037/2954/2384 2039/2956/2386 +f 2041/2958/2388 2040/2957/2387 2042/2959/2389 +f 2040/2957/2387 2039/2956/2386 2042/2959/2389 +f 2043/2960/2390 2044/2961/2390 2045/2962/2390 +f 2046/2963/2391 2047/2964/2392 2048/2965/2393 +f 2045/2962/2394 2049/2966/2395 2046/2963/2391 +f 2044/2961/2396 2049/2966/2395 2045/2962/2394 +f 2043/2960/2397 2049/2966/2395 2044/2961/2396 +f 2043/2960/2397 2050/2967/2398 2049/2966/2395 +f 2047/2964/2392 2051/2968/2399 2048/2965/2393 +f 2052/2969/2400 2046/2963/2391 2049/2966/2395 +f 2052/2969/2400 2053/2970/2401 2047/2964/2392 +f 2054/2971/2402 2052/2969/2400 2049/2966/2395 +f 2050/2967/2398 2054/2971/2402 2049/2966/2395 +f 2054/2971/2402 2055/2972/2403 2053/2970/2401 +f 2050/2967/2398 2056/2973/2404 2054/2971/2402 +f 2047/2964/2392 2057/2974/2405 2051/2968/2399 +f 2047/2964/2392 2058/2975/2406 2057/2974/2405 +f 2053/2970/2401 2058/2975/2406 2047/2964/2392 +f 2055/2972/2403 2058/2975/2406 2053/2970/2401 +f 2054/2971/2402 2059/2976/2407 2055/2972/2403 +f 2056/2973/2404 2059/2976/2407 2054/2971/2402 +f 2056/2973/2404 2060/2977/2408 2059/2976/2407 +f 2061/2978/2409 2063/2979/2410 2064/2980/2410 +f 2041/2981/2411 2068/2982/2412 2069/2983/2413 +f 2062/2984/2409 2070/2985/1447 2066/2986/1447 +f 2063/2987/2414 1191/2988/2415 2072/2989/2416 +f 2073/2990/2417 2071/2991/2418 2065/2992/2419 +f 2062/2993/2420 2071/2994/2420 2063/2995/2420 +f 2061/2996/2421 2074/2997/2421 2073/2998/2421 +f 2075/2999/2422 1191/3000/2422 1192/3001/2422 +f 2064/3002/2423 1192/3003/2424 2074/3004/2425 +f 2063/3005/2410 2075/2999/1447 2064/3006/2410 +f 2074/3007/2418 1191/3000/2426 2071/2991/2418 +f 2076/3008/2427 2045/2962/2427 2046/2963/2427 +f 2048/2965/2428 2051/2968/2428 2077/3009/2428 +f 2077/3010/2429 2070/3011/2430 2073/3012/2431 +f 2078/3013/2432 2041/2958/2388 2042/2959/2389 +f 2068/3014/2433 2041/2958/2388 2078/3013/2432 +f 2070/3015/1451 2077/3016/2434 2057/3017/2435 +f 2038/2955/2385 2037/2954/2384 2067/3018/2436 +f 1962/3019/2290 1952/3020/2279 1939/3021/2263 +f 1761/3022/2071 1752/3023/2063 1742/3024/2052 +f 1186/3025/1452 1193/3026/1452 1191/3027/1452 +f 1282/3028/2437 1284/3029/2438 1269/3030/2439 +f 2068/3031/2440 2043/3032/2441 2065/2992/2419 +f 1549/3033/1453 1551/3034/1453 1523/3035/1453 +f 1185/3036/1453 1188/3037/1448 1192/3038/1453 +f 1557/3039/2442 1527/3040/2443 1548/2243/2444 +f 793/3041/1054 784/3042/1055 720/3043/2445 +f 1190/3044/2446 757/3045/1024 788/3046/1048 +f 705/1155/972 706/3047/2447 707/1156/973 +f 708/1157/974 707/1156/973 709/1158/975 +f 710/1159/976 709/1158/975 711/1160/977 +f 712/1161/978 711/1160/977 713/1162/979 +f 714/1163/980 713/1162/979 715/1164/981 +f 716/1165/982 715/1164/981 717/1166/2448 +f 719/1168/985 720/3048/2445 721/1169/986 +f 721/1169/986 723/1172/989 724/1171/988 +f 723/1172/989 725/3049/2449 726/1173/990 +f 726/1173/990 725/3049/2449 727/1174/991 +f 728/1175/992 727/1174/991 729/1176/993 +f 729/1176/993 731/1179/996 732/1178/995 +f 731/1179/996 733/1181/2450 734/1180/997 +f 733/1181/998 735/1183/1001 736/1182/999 +f 735/1183/1001 737/1185/1003 738/1184/1002 +f 737/1185/1003 739/1187/1005 740/1186/1004 +f 739/1187/1005 741/3050/2451 742/1188/1006 +f 742/1188/1006 741/3050/2451 743/1189/1007 +f 744/1190/1008 743/1189/1007 745/1191/1009 +f 746/1192/1010 745/1191/1009 747/1193/1011 +f 748/1194/1012 747/1193/1011 749/1195/1013 +f 750/1196/1015 749/1195/2452 751/1197/1016 +f 752/1198/1017 751/1197/1016 753/1199/1018 +f 753/1199/1018 755/1202/1021 756/1201/1020 +f 755/1202/1021 706/3047/2447 705/1155/972 +f 758/1203/1022 759/1208/1027 760/1204/1023 +f 761/1206/1025 762/1248/1066 763/1207/1026 +f 728/1175/992 730/1177/994 764/1209/1028 +f 748/1194/1012 766/1220/1039 767/1211/1030 +f 714/1163/980 716/1165/982 768/1212/1031 +f 722/1170/987 770/1221/1040 771/1214/1033 +f 738/1184/1002 740/1186/1004 772/1215/1034 +f 708/1157/974 774/1224/1043 775/1217/1036 +f 705/1155/972 775/1217/1036 776/1218/1037 +f 758/1203/1022 777/1225/1044 761/1206/1025 +f 730/1177/994 732/1178/995 778/1219/1038 +f 750/1196/1015 779/1228/1047 766/1220/1039 +f 718/1167/984 780/1230/1049 768/1212/1031 +f 724/1171/988 781/1232/1051 770/1221/1040 +f 740/1186/1004 742/1188/1006 782/1222/1041 +f 708/1157/974 710/1159/976 783/1223/1042 +f 777/1225/1044 784/1236/1055 785/1226/1045 +f 732/1178/995 734/1180/997 786/1227/1046 +f 752/1198/1017 787/1238/1057 779/1228/1047 +f 788/1229/1048 789/1239/1058 780/1230/1049 +f 724/1171/988 726/1173/990 790/1231/1050 +f 742/1188/1006 744/1190/1008 791/1233/1052 +f 710/1159/976 712/1161/978 792/1234/1053 +f 793/1235/1054 794/1250/1059 785/1226/1045 +f 734/1180/997 736/1182/999 795/1237/1056 +f 754/1200/1019 796/1242/1060 787/1238/1057 +f 757/1205/1024 760/1204/1023 789/1239/1058 +f 726/1173/990 728/1175/992 765/1210/1029 +f 744/1190/1008 746/1192/1010 767/1211/1030 +f 712/1161/978 714/1163/980 769/1213/1032 +f 719/1168/985 771/1214/1033 794/1240/1059 +f 736/1182/999 738/1184/1002 773/1216/1035 +f 756/1201/1020 776/1218/1037 796/1242/1060 +f 798/1243/1061 799/1281/1098 800/1244/1062 +f 772/1215/1034 782/1222/1041 801/1246/1064 +f 785/1226/1045 803/1251/1068 762/1248/1066 +f 782/1222/1041 791/1233/1052 804/1249/1067 +f 794/1250/1059 797/1306/1063 803/1251/1068 +f 791/1233/1052 767/1211/1030 805/1252/1069 +f 771/1214/1033 798/1243/1061 797/1245/1063 +f 766/1220/1039 806/1256/1073 805/1252/1069 +f 770/1221/1040 807/1257/1074 798/1243/1061 +f 775/1217/1036 774/1224/1043 808/1253/1070 +f 766/1220/1039 779/1228/1047 810/1255/1072 +f 781/1232/1051 811/1260/1077 807/1257/1074 +f 774/1224/1043 783/1223/1042 812/1258/1075 +f 779/1228/1047 787/1238/1057 813/1259/1076 +f 790/1231/1050 814/1263/1080 811/1260/1077 +f 783/1223/1042 792/1234/1053 815/1261/1078 +f 787/1238/1057 796/1242/1060 816/1262/1079 +f 765/1210/1029 817/1266/1083 814/1263/1080 +f 792/1234/1053 769/1213/1032 818/1264/1081 +f 796/1242/1060 776/1218/1037 819/1265/1082 +f 764/1209/1028 820/1268/1085 817/1266/1083 +f 769/1213/1032 768/1212/1031 821/1267/1084 +f 776/1218/1037 775/1217/1036 809/1254/1071 +f 778/1219/1038 822/1270/1087 820/1268/1085 +f 768/1212/1031 780/1230/1049 823/1269/1086 +f 786/1227/1046 824/1272/1089 822/1270/1087 +f 780/1230/1049 789/1239/1058 825/1271/1088 +f 795/1237/1056 826/1273/1090 824/1272/1089 +f 760/1204/1023 827/1274/1091 825/1271/1088 +f 773/1216/1035 828/1275/1092 826/1273/1090 +f 759/1208/1027 763/1207/1026 827/1274/1091 +f 773/1216/1035 772/1215/1034 802/1247/1065 +f 830/1276/1093 831/1316/1132 832/1277/1094 +f 805/1252/1069 806/1256/1073 833/1279/1096 +f 807/1257/1074 835/1285/1102 799/1281/1098 +f 809/1254/1071 808/1253/1070 836/1282/1099 +f 806/1256/1073 810/1255/1072 838/1284/1101 +f 811/1260/1077 829/1278/1095 835/1285/1102 +f 808/1253/1070 812/1258/1075 839/1286/1103 +f 810/1255/1072 813/1259/1076 840/1287/1104 +f 814/1263/1080 830/1276/1093 829/1278/1095 +f 812/1258/1075 815/1261/1078 841/1288/1105 +f 813/1259/1076 816/1262/1079 842/1289/1106 +f 817/1266/1083 843/1292/1109 830/1276/1093 +f 815/1261/1078 818/1264/1081 844/1290/1107 +f 816/1262/1079 819/1265/1082 845/1291/1108 +f 820/1268/1085 846/1294/1111 843/1292/1109 +f 818/1264/1081 821/1267/1084 847/1293/1110 +f 819/1265/1082 809/1254/1071 837/1283/1100 +f 822/1270/1087 848/1296/1113 846/1294/1111 +f 821/1267/1084 823/1269/1086 849/1295/1112 +f 824/1272/1089 850/1298/1115 848/1296/1113 +f 823/1269/1086 825/1271/1088 851/1297/1114 +f 826/1273/1090 852/1300/1117 850/1298/1115 +f 825/1271/1088 827/1274/1091 853/1299/1116 +f 828/1275/1092 854/1302/1119 852/1300/1117 +f 763/1207/1026 855/1303/1120 853/1299/1116 +f 828/1275/1092 802/1247/1065 856/1301/1118 +f 762/1248/1066 857/1305/1122 855/1303/1120 +f 802/1247/1065 801/1246/1064 858/1304/1121 +f 803/1251/1068 859/1307/1123 857/1305/1122 +f 804/1249/1067 860/1308/1124 858/1304/1121 +f 797/1306/1063 800/1332/1062 859/1307/1123 +f 805/1252/1069 834/1280/1097 860/1308/1124 +f 862/1309/1125 863/1347/1162 864/1310/1126 +f 839/1286/1103 841/1288/1105 865/1312/1128 +f 840/1287/1104 842/1289/1106 867/1314/1130 +f 843/1292/1109 869/1319/1135 831/1316/1132 +f 841/1288/1105 844/1290/1107 870/1317/1133 +f 842/1289/1106 845/1291/1108 871/1318/1134 +f 846/1294/1111 861/1311/1127 869/1319/1135 +f 844/1290/1107 847/1293/1110 872/1320/1136 +f 845/1291/1108 837/1283/1100 873/1321/1137 +f 848/1296/1113 862/1309/1125 861/1311/1127 +f 847/1293/1110 849/1295/1112 874/1322/1138 +f 850/1298/1115 875/1324/1140 862/1309/1125 +f 849/1295/1112 851/1297/1114 876/1323/1139 +f 852/1300/1117 877/1326/1142 875/1324/1140 +f 851/1297/1114 853/1299/1116 878/1325/1141 +f 854/1302/1119 879/1328/1144 877/1326/1142 +f 855/1303/1120 880/1329/1145 878/1325/1141 +f 854/1302/1119 856/1301/1118 881/1327/1143 +f 857/1305/1122 882/1331/1147 880/1329/1145 +f 856/1301/1118 858/1304/1121 883/1330/1146 +f 859/1307/1123 884/1333/1148 882/1331/1147 +f 860/1308/1124 885/1335/1150 883/1330/1146 +f 800/1332/1062 886/1356/1151 884/1333/1148 +f 860/1308/1124 834/1280/1097 887/1334/1149 +f 799/1281/1098 888/1338/1153 886/1336/1151 +f 834/1280/1097 833/1279/1096 889/1337/1152 +f 835/1285/1102 890/1341/1156 888/1338/1153 +f 837/1283/1100 836/1282/1099 891/1339/1154 +f 833/1279/1096 838/1284/1101 892/1340/1155 +f 829/1278/1095 832/1277/1094 890/1341/1156 +f 836/1282/1099 839/1286/1103 866/1313/1129 +f 838/1284/1101 840/1287/1104 868/1315/1131 +f 894/1342/1157 895/1379/1193 896/1343/1158 +f 872/1320/1136 874/1322/1138 897/1345/1160 +f 875/1324/1140 899/1349/1164 863/1347/1162 +f 874/1322/1138 876/1323/1139 900/1348/1163 +f 877/1326/1142 893/1344/1159 899/1349/1164 +f 876/1323/1139 878/1325/1141 901/1350/1165 +f 879/1328/1144 894/1342/1157 893/1344/1159 +f 880/1329/1145 902/1351/1166 901/1350/1165 +f 881/1327/1143 903/1353/1168 894/1342/1157 +f 882/1331/1147 904/1354/1169 902/1351/1166 +f 881/1327/1143 883/1330/1146 905/1352/1167 +f 884/1333/1148 906/1357/1171 904/1354/1169 +f 883/1330/1146 885/1335/1150 907/1355/1170 +f 886/1356/1151 908/1384/1173 906/1357/1171 +f 885/1335/1150 887/1334/1149 909/1358/1172 +f 888/1338/1153 910/1361/1175 908/1359/1173 +f 887/1334/1149 889/1337/1152 911/1360/1174 +f 890/1341/1156 912/1365/1179 910/1361/1175 +f 873/1321/1137 891/1339/1154 913/1362/1176 +f 889/1337/1152 892/1340/1155 915/1364/1178 +f 832/1277/1094 916/1368/1182 912/1365/1179 +f 891/1339/1154 866/1313/1129 917/1366/1180 +f 892/1340/1155 868/1315/1131 918/1367/1181 +f 831/1316/1132 919/1371/1185 916/1368/1182 +f 866/1313/1129 865/1312/1128 920/1369/1183 +f 868/1315/1131 867/1314/1130 921/1370/1184 +f 869/1319/1135 922/1374/1188 919/1371/1185 +f 865/1312/1128 870/1317/1133 923/1372/1186 +f 867/1314/1130 871/1318/1134 924/1373/1187 +f 861/1311/1127 864/1310/1126 922/1374/1188 +f 870/1317/1133 872/1320/1136 898/1346/1161 +f 871/1318/1134 873/1321/1137 914/1363/1177 +f 925/1375/1189 926/1383/1197 927/1376/1190 +f 902/1351/1166 929/1380/1194 930/1378/1192 +f 903/1353/1168 931/1381/1195 895/1379/1193 +f 904/1354/1169 932/1382/1196 929/1380/1194 +f 905/1352/1167 925/1375/1189 931/1381/1195 +f 906/1357/1171 933/1385/1198 932/1382/1196 +f 905/1352/1167 907/1355/1170 926/1383/1197 +f 908/1384/1173 934/1412/1200 933/1385/1198 +f 907/1355/1170 909/1358/1172 935/1386/1199 +f 910/1361/1175 936/1389/1202 934/1387/1200 +f 909/1358/1172 911/1360/1174 937/1388/1201 +f 912/1365/1179 938/1393/1206 936/1389/1202 +f 914/1363/1177 913/1362/1176 939/1390/1203 +f 911/1360/1174 915/1364/1178 941/1392/1205 +f 916/1368/1182 942/1396/1209 938/1393/1206 +f 913/1362/1176 917/1366/1180 943/1394/1207 +f 915/1364/1178 918/1367/1181 944/1395/1208 +f 919/1371/1185 945/1399/1212 942/1396/1209 +f 917/1366/1180 920/1369/1183 946/1397/1210 +f 918/1367/1181 921/1370/1184 947/1398/1211 +f 922/1374/1188 948/1402/1215 945/1399/1212 +f 920/1369/1183 923/1372/1186 949/1400/1213 +f 921/1370/1184 924/1373/1187 950/1401/1214 +f 864/1310/1126 951/1404/1217 948/1402/1215 +f 923/1372/1186 898/1346/1161 952/1403/1216 +f 924/1373/1187 914/1363/1177 940/1391/1204 +f 863/1347/1162 953/1406/1219 951/1404/1217 +f 898/1346/1161 897/1345/1160 954/1405/1218 +f 899/1349/1164 955/1408/1221 953/1406/1219 +f 897/1345/1160 900/1348/1163 956/1407/1220 +f 893/1344/1159 896/1343/1158 955/1408/1221 +f 900/1348/1163 901/1350/1165 930/1378/1192 +f 957/1409/1222 958/1436/1248 959/1410/1223 +f 934/1412/1200 961/1451/1227 962/1413/1225 +f 926/1383/1197 935/1386/1199 963/1414/1226 +f 936/1389/1202 964/1417/1229 961/1415/1227 +f 935/1386/1199 937/1388/1201 965/1416/1228 +f 938/1393/1206 966/1421/1233 964/1417/1229 +f 940/1391/1204 939/1390/1203 967/1418/1230 +f 937/1388/1201 941/1392/1205 969/1420/1232 +f 942/1396/1209 970/1424/1236 966/1421/1233 +f 939/1390/1203 943/1394/1207 971/1422/1234 +f 941/1392/1205 944/1395/1208 972/1423/1235 +f 945/1399/1212 973/1427/1239 970/1424/1236 +f 943/1394/1207 946/1397/1210 974/1425/1237 +f 944/1395/1208 947/1398/1211 975/1426/1238 +f 948/1402/1215 976/1430/1242 973/1427/1239 +f 946/1397/1210 949/1400/1213 977/1428/1240 +f 947/1398/1211 950/1401/1214 978/1429/1241 +f 951/1404/1217 979/1432/1244 976/1430/1242 +f 949/1400/1213 952/1403/1216 980/1431/1243 +f 950/1401/1214 940/1391/1204 968/1419/1231 +f 953/1406/1219 981/1434/1246 979/1432/1244 +f 952/1403/1216 954/1405/1218 982/1433/1245 +f 955/1408/1221 983/1435/1247 981/1434/1246 +f 954/1405/1218 956/1407/1220 957/1409/1222 +f 896/1343/1158 984/1437/1249 983/1435/1247 +f 956/1407/1220 930/1378/1192 958/1436/1248 +f 895/1379/1193 985/1438/1250 984/1437/1249 +f 929/1380/1194 986/1439/1251 958/1436/1248 +f 931/1381/1195 987/1440/1252 985/1438/1250 +f 932/1382/1196 988/1441/1253 986/1439/1251 +f 925/1375/1189 928/1377/1191 987/1440/1252 +f 933/1385/1198 962/1413/1225 988/1441/1253 +f 990/1442/1254 991/1480/1290 992/1443/1255 +f 985/1438/1250 993/1446/1258 994/1445/1257 +f 986/1439/1251 995/1447/1259 959/1410/1223 +f 987/1440/1252 996/1448/1260 993/1446/1258 +f 988/1441/1253 989/1444/1256 995/1447/1259 +f 928/1377/1191 997/1450/1262 996/1448/1260 +f 962/1413/1225 990/1442/1254 989/1444/1256 +f 928/1377/1191 927/1376/1190 998/1449/1261 +f 961/1451/1227 999/1479/1264 990/1442/1254 +f 927/1376/1190 963/1414/1226 1000/1452/1263 +f 964/1417/1229 1001/1455/1266 999/1453/1264 +f 963/1414/1226 965/1416/1228 1002/1454/1265 +f 966/1421/1233 1003/1459/1270 1001/1455/1266 +f 968/1419/1231 967/1418/1230 1004/1456/1267 +f 965/1416/1228 969/1420/1232 1006/1458/1269 +f 970/1424/1236 1007/1462/1273 1003/1459/1270 +f 967/1418/1230 971/1422/1234 1008/1460/1271 +f 969/1420/1232 972/1423/1235 1009/1461/1272 +f 973/1427/1239 1010/1465/1276 1007/1462/1273 +f 971/1422/1234 974/1425/1237 1011/1463/1274 +f 972/1423/1235 975/1426/1238 1012/1464/1275 +f 976/1430/1242 1013/1468/1279 1010/1465/1276 +f 974/1425/1237 977/1428/1240 1014/1466/1277 +f 975/1426/1238 978/1429/1241 1015/1467/1278 +f 979/1432/1244 1016/1470/1281 1013/1468/1279 +f 977/1428/1240 980/1431/1243 1017/1469/1280 +f 978/1429/1241 968/1419/1231 1005/1457/1268 +f 981/1434/1246 1018/1472/1283 1016/1470/1281 +f 980/1431/1243 982/1433/1245 1019/1471/1282 +f 983/1435/1247 1020/1473/1284 1018/1472/1283 +f 982/1433/1245 957/1409/1222 960/1411/1224 +f 984/1437/1249 994/1445/1257 1020/1473/1284 +f 1022/1474/1285 1023/1514/1324 1024/1475/1286 +f 997/1450/1262 998/1449/1261 1025/1477/1288 +f 999/1479/1264 1027/1536/1292 991/1480/1290 +f 998/1449/1261 1000/1452/1263 1028/1481/1291 +f 1001/1455/1266 1021/1476/1287 1027/1482/1292 +f 1000/1452/1263 1002/1454/1265 1029/1483/1293 +f 1003/1459/1270 1022/1474/1285 1021/1476/1287 +f 1005/1457/1268 1004/1456/1267 1030/1484/1294 +f 1002/1454/1265 1006/1458/1269 1032/1486/1296 +f 1007/1462/1273 1033/1489/1299 1022/1474/1285 +f 1004/1456/1267 1008/1460/1271 1034/1487/1297 +f 1006/1458/1269 1009/1461/1272 1035/1488/1298 +f 1010/1465/1276 1036/1492/1302 1033/1489/1299 +f 1008/1460/1271 1011/1463/1274 1037/1490/1300 +f 1009/1461/1272 1012/1464/1275 1038/1491/1301 +f 1013/1468/1279 1039/1495/1305 1036/1492/1302 +f 1011/1463/1274 1014/1466/1277 1040/1493/1303 +f 1012/1464/1275 1015/1467/1278 1041/1494/1304 +f 1016/1470/1281 1042/1497/1307 1039/1495/1305 +f 1014/1466/1277 1017/1469/1280 1043/1496/1306 +f 1015/1467/1278 1005/1457/1268 1031/1485/1295 +f 1018/1472/1283 1044/1499/1309 1042/1497/1307 +f 1017/1469/1280 1019/1471/1282 1045/1498/1308 +f 1020/1473/1284 1046/1501/1311 1044/1499/1309 +f 1019/1471/1282 960/1411/1224 1047/1500/1310 +f 994/1445/1257 1048/1503/1313 1046/1501/1311 +f 960/1411/1224 959/1410/1223 1049/1502/1312 +f 993/1446/1258 1050/1504/1314 1048/1503/1313 +f 995/1447/1259 1051/1505/1315 1049/1502/1312 +f 996/1448/1260 1052/1506/1316 1050/1504/1314 +f 989/1444/1256 992/1443/1255 1051/1505/1315 +f 997/1450/1262 1026/1478/1289 1052/1506/1316 +f 1054/1507/1317 1055/1547/1356 1056/1508/1318 +f 1031/1485/1295 1030/1484/1294 1057/1510/1320 +f 1029/1483/1293 1032/1486/1296 1059/1512/1322 +f 1033/1489/1299 1061/1517/1327 1023/1514/1324 +f 1030/1484/1294 1034/1487/1297 1062/1515/1325 +f 1032/1486/1296 1035/1488/1298 1063/1516/1326 +f 1036/1492/1302 1053/1509/1319 1061/1517/1327 +f 1034/1487/1297 1037/1490/1300 1064/1518/1328 +f 1035/1488/1298 1038/1491/1301 1065/1519/1329 +f 1039/1495/1305 1054/1507/1317 1053/1509/1319 +f 1037/1490/1300 1040/1493/1303 1066/1520/1330 +f 1038/1491/1301 1041/1494/1304 1067/1521/1331 +f 1042/1497/1307 1068/1523/1333 1054/1507/1317 +f 1040/1493/1303 1043/1496/1306 1069/1522/1332 +f 1041/1494/1304 1031/1485/1295 1058/1511/1321 +f 1044/1499/1309 1070/1525/1335 1068/1523/1333 +f 1043/1496/1306 1045/1498/1308 1071/1524/1334 +f 1046/1501/1311 1072/1527/1337 1070/1525/1335 +f 1045/1498/1308 1047/1500/1310 1073/1526/1336 +f 1048/1503/1313 1074/1529/1339 1072/1527/1337 +f 1047/1500/1310 1049/1502/1312 1075/1528/1338 +f 1050/1504/1314 1076/1530/1340 1074/1529/1339 +f 1051/1505/1315 1077/1531/1341 1075/1528/1338 +f 1052/1506/1316 1078/1532/1342 1076/1530/1340 +f 992/1443/1255 1079/1533/1343 1077/1531/1341 +f 1026/1478/1289 1080/1535/1345 1078/1532/1342 +f 991/1480/1290 1081/1537/1346 1079/1533/1343 +f 1026/1478/1289 1025/1477/1288 1082/1534/1344 +f 1027/1536/1292 1083/1561/1348 1081/1537/1346 +f 1025/1477/1288 1028/1481/1291 1084/1538/1347 +f 1021/1476/1287 1024/1475/1286 1083/1539/1348 +f 1028/1481/1291 1029/1483/1293 1060/1513/1323 +f 1086/1540/1349 1087/1578/1386 1088/1541/1350 +f 1064/1518/1328 1066/1520/1330 1089/1543/1352 +f 1065/1519/1329 1067/1521/1331 1091/1545/1354 +f 1068/1523/1333 1093/1550/1359 1055/1547/1356 +f 1066/1520/1330 1069/1522/1332 1094/1548/1357 +f 1067/1521/1331 1058/1511/1321 1095/1549/1358 +f 1070/1525/1335 1085/1542/1351 1093/1550/1359 +f 1069/1522/1332 1071/1524/1334 1096/1551/1360 +f 1072/1527/1337 1086/1540/1349 1085/1542/1351 +f 1071/1524/1334 1073/1526/1336 1097/1552/1361 +f 1074/1529/1339 1098/1554/1363 1086/1540/1349 +f 1073/1526/1336 1075/1528/1338 1099/1553/1362 +f 1076/1530/1340 1100/1555/1364 1098/1554/1363 +f 1077/1531/1341 1101/1556/1365 1099/1553/1362 +f 1078/1532/1342 1102/1557/1366 1100/1555/1364 +f 1079/1533/1343 1103/1558/1367 1101/1556/1365 +f 1080/1535/1345 1104/1560/1369 1102/1557/1366 +f 1081/1537/1346 1105/1562/1370 1103/1558/1367 +f 1080/1535/1345 1082/1534/1344 1106/1559/1368 +f 1083/1561/1348 1107/1585/1372 1105/1562/1370 +f 1082/1534/1344 1084/1538/1347 1108/1563/1371 +f 1024/1475/1286 1109/1566/1374 1107/1564/1372 +f 1084/1538/1347 1060/1513/1323 1110/1565/1373 +f 1023/1514/1324 1111/1569/1377 1109/1566/1374 +f 1058/1511/1321 1057/1510/1320 1112/1567/1375 +f 1060/1513/1323 1059/1512/1322 1113/1568/1376 +f 1061/1517/1327 1114/1572/1380 1111/1569/1377 +f 1057/1510/1320 1062/1515/1325 1115/1570/1378 +f 1059/1512/1322 1063/1516/1326 1116/1571/1379 +f 1053/1509/1319 1056/1508/1318 1114/1572/1380 +f 1062/1515/1325 1064/1518/1328 1090/1544/1353 +f 1063/1516/1326 1065/1519/1329 1092/1546/1355 +f 1118/1573/1381 1119/1607/1414 1120/1574/1382 +f 1096/1551/1360 1097/1552/1361 1121/1576/1384 +f 1098/1554/1363 1123/1580/1388 1087/1578/1386 +f 1097/1552/1361 1099/1553/1362 1124/1579/1387 +f 1100/1555/1364 1117/1575/1383 1123/1580/1388 +f 1101/1556/1365 1125/1581/1389 1124/1579/1387 +f 1102/1557/1366 1118/1573/1381 1117/1575/1383 +f 1103/1558/1367 1126/1582/1390 1125/1581/1389 +f 1104/1560/1369 1127/1584/1392 1118/1573/1381 +f 1105/1562/1370 1128/1586/1393 1126/1582/1390 +f 1104/1560/1369 1106/1559/1368 1129/1583/1391 +f 1107/1585/1372 1130/1611/1395 1128/1586/1393 +f 1106/1559/1368 1108/1563/1371 1131/1587/1394 +f 1109/1566/1374 1132/1590/1397 1130/1588/1395 +f 1108/1563/1371 1110/1565/1373 1133/1589/1396 +f 1111/1569/1377 1134/1594/1401 1132/1590/1397 +f 1095/1549/1358 1112/1567/1375 1135/1591/1398 +f 1110/1565/1373 1113/1568/1376 1137/1593/1400 +f 1114/1572/1380 1138/1597/1404 1134/1594/1401 +f 1112/1567/1375 1115/1570/1378 1139/1595/1402 +f 1113/1568/1376 1116/1571/1379 1140/1596/1403 +f 1056/1508/1318 1141/1600/1407 1138/1597/1404 +f 1115/1570/1378 1090/1544/1353 1142/1598/1405 +f 1116/1571/1379 1092/1546/1355 1143/1599/1406 +f 1055/1547/1356 1144/1603/1410 1141/1600/1407 +f 1090/1544/1353 1089/1543/1352 1145/1601/1408 +f 1092/1546/1355 1091/1545/1354 1146/1602/1409 +f 1093/1550/1359 1147/1605/1412 1144/1603/1410 +f 1089/1543/1352 1094/1548/1357 1148/1604/1411 +f 1091/1545/1354 1095/1549/1358 1136/1592/1399 +f 1085/1542/1351 1088/1541/1350 1147/1605/1412 +f 1094/1548/1357 1096/1551/1360 1122/1577/1385 +f 1126/1582/1390 1149/1608/1415 1150/1606/1413 +f 1127/1584/1392 1151/1610/1417 1119/1607/1414 +f 1128/1586/1393 1152/1612/1418 1149/1608/1415 +f 1127/1584/1392 1129/1583/1391 1153/1609/1416 +f 1130/1611/1395 1154/3051/1420 1152/1612/1418 +f 1129/1583/1391 1131/1587/1394 1155/1613/1419 +f 1132/1590/1397 1156/1616/1422 1154/1614/1420 +f 1131/1587/1394 1133/1589/1396 1157/1615/1421 +f 1134/1594/1401 1158/1620/1426 1156/1616/1422 +f 1136/1592/1399 1135/1591/1398 1159/1617/1423 +f 1133/1589/1396 1137/1593/1400 1161/1619/1425 +f 1138/1597/1404 1162/1623/1429 1158/1620/1426 +f 1135/1591/1398 1139/1595/1402 1163/1621/1427 +f 1137/1593/1400 1140/1596/1403 1164/1622/1428 +f 1141/1600/1407 1165/1626/1432 1162/1623/1429 +f 1139/1595/1402 1142/1598/1405 1166/1624/1430 +f 1140/1596/1403 1143/1599/1406 1167/1625/1431 +f 1144/1603/1410 1168/1629/1435 1165/1626/1432 +f 1142/1598/1405 1145/1601/1408 1169/1627/1433 +f 1143/1599/1406 1146/1602/1409 1170/1628/1434 +f 1147/1605/1412 1171/1631/1437 1168/1629/1435 +f 1145/1601/1408 1148/1604/1411 1172/1630/1436 +f 1146/1602/1409 1136/1592/1399 1160/1618/1424 +f 1088/1541/1350 1173/1633/1439 1171/1631/1437 +f 1148/1604/1411 1122/1577/1385 1174/1632/1438 +f 1087/1578/1386 1175/1635/1441 1173/1633/1439 +f 1122/1577/1385 1121/1576/1384 1176/1634/1440 +f 1123/1580/1388 1177/1637/1443 1175/1635/1441 +f 1121/1576/1384 1124/1579/1387 1178/1636/1442 +f 1117/1575/1383 1120/1574/1382 1177/1637/1443 +f 1125/1581/1389 1150/1606/1413 1178/1636/1442 +f 1170/3052/2453 1160/3053/2454 1165/3054/2454 +f 1160/3053/2454 1159/3055/1444 1162/3056/1444 +f 1159/3055/1444 1163/3057/1444 1162/3056/1444 +f 1163/3057/1444 1166/1640/1444 1156/1639/1444 +f 1162/3056/1444 1163/3057/1444 1158/3058/1444 +f 1166/1640/1444 1169/3059/1444 1176/3060/1444 +f 1169/3059/1444 1172/3061/2455 1174/3062/1444 +f 1176/3060/1444 1169/3059/1444 1174/3062/1444 +f 1176/3060/1444 1178/3063/1444 1166/1640/1444 +f 1178/3063/1444 1150/1638/1444 1166/1640/1444 +f 1150/1638/1444 1149/3064/1444 1156/1639/1444 +f 1149/3064/1444 1152/3065/2456 1154/3066/2457 +f 1156/1639/1444 1149/3064/1444 1154/3066/2457 +f 1156/1639/1444 1158/3058/1444 1163/3057/1444 +f 1162/3056/1444 1165/3054/2454 1160/3053/2454 +f 1165/3054/2454 1168/3067/2458 1170/3052/2453 +f 1168/3067/2458 1171/3068/2459 1119/3069/2460 +f 1171/3068/2459 1173/3070/2461 1120/3071/2462 +f 1119/3069/2460 1171/3068/2459 1120/3071/2462 +f 1173/3070/2461 1175/3072/2463 1177/3073/2464 +f 1177/3073/2464 1120/3071/2462 1173/3070/2461 +f 1119/3069/2460 1151/3074/2465 1168/3067/2458 +f 1151/3074/2465 1153/3075/2466 1167/3076/2467 +f 1170/3052/2453 1151/3074/2465 1167/3076/2467 +f 1153/3075/2466 1155/3077/2468 1164/3078/2469 +f 1155/3077/2468 1157/3079/2470 1161/3080/2471 +f 1164/3078/2469 1155/3077/2468 1161/3080/2471 +f 1164/3078/2469 1167/3076/2467 1153/3075/2466 +f 1151/3074/2465 1170/3052/2453 1168/3067/2458 +f 1180/1641/1445 1181/3081/1445 1182/1642/1445 +f 1183/1646/1447 1184/3082/1447 1182/1644/1447 +f 1184/3082/1447 1185/3083/2472 1179/3084/2473 +f 1182/1644/1447 1184/3082/1447 1179/3084/2473 +f 1185/3083/2472 1186/3085/2474 1179/3084/2473 +f 1182/1644/1447 749/3086/1447 733/1645/1447 +f 1183/1647/1448 1187/3087/1448 1188/1648/1448 +f 1187/1651/1449 1189/3088/2475 1190/3089/2476 +f 1181/1652/1449 1180/3090/1449 1188/1650/1449 +f 1180/3090/1449 1191/3091/1449 1192/3092/1449 +f 1187/1651/1449 1190/3089/2476 1181/1652/1449 +f 1192/3092/1449 1188/1650/1449 1180/3090/1449 +f 1193/1653/1450 1194/3093/1450 1192/1654/1450 +f 1195/1656/1451 1198/3094/1451 1197/1657/1451 +f 1183/1665/1448 733/3095/1453 1189/1666/1453 +f 1181/1668/1445 1190/3096/1452 749/1669/1452 +f 1202/1671/1451 1203/3097/1451 1204/1672/1451 +f 1208/1674/1454 1204/3098/1452 1203/3099/2477 +f 1203/3099/2477 1205/1675/1455 1208/1674/1454 +f 1205/1675/1455 1206/3100/2478 1207/1676/1456 +f 1212/1679/1450 1207/3101/1450 1210/1677/1450 +f 1207/3101/1450 1206/3102/1450 1209/1690/1450 +f 1209/1690/1450 1210/1677/1450 1207/3101/1450 +f 1214/1682/1458 1212/3103/2479 1213/3104/2480 +f 1212/3103/2479 1211/3105/2481 1213/3104/2480 +f 1213/3104/2480 1202/1680/1457 1214/1682/1458 +f 1201/1673/1460 1204/1672/2482 1208/1684/1461 +f 1208/1684/1461 1207/3101/1449 1212/1679/1449 +f 1212/1679/1449 1214/1683/1459 1208/1684/1461 +f 1209/3106/1447 1206/3107/2483 1220/3108/1447 +f 1206/3107/2483 1205/1686/1463 1218/3109/2484 +f 1220/3108/1447 1206/3107/2483 1219/3110/1447 +f 1205/1686/1463 1203/3111/2485 1213/1687/1464 +f 1203/3111/2485 1202/3112/2485 1213/1687/1464 +f 1213/1687/1464 1211/3113/2486 1217/1685/1462 +f 1211/3113/2486 1210/3114/1447 1215/3115/1447 +f 1218/3109/2484 1219/3110/1447 1206/3107/2483 +f 1215/3115/1447 1216/3116/1447 1211/3113/2486 +f 1216/3116/1447 1217/1685/1462 1211/3113/2486 +f 1217/1685/1462 1218/3109/2484 1205/1686/1463 +f 1220/1688/1453 1221/1701/1453 1222/1689/1453 +f 1228/1693/1447 1222/1689/1447 1223/1691/1447 +f 1222/1689/1447 1221/1701/1447 1223/1691/1447 +f 1223/1691/1447 1224/1702/1447 1225/1697/1447 +f 1226/1692/1447 1227/1699/1447 1228/1693/1447 +f 1223/1691/1447 1225/1697/1447 1226/1692/1447 +f 1218/1694/1453 1224/1702/1453 1223/1691/1453 +f 1216/1696/1452 1226/1692/1452 1225/1697/1452 +f 1210/1677/1452 1228/1693/1452 1227/1699/1452 +f 1219/1695/1465 1223/1691/1465 1221/1701/1465 +f 1217/1698/1450 1225/1697/1450 1224/1702/1450 +f 1215/1700/1466 1227/1699/1466 1226/1692/1466 +f 1209/1690/1451 1222/1689/1451 1228/1693/1451 +f 1203/1703/1467 1230/3117/1469 1229/1704/1468 +f 1230/1706/1469 1232/3118/1470 1231/1707/1470 +f 1230/1709/1471 1203/3119/1452 1204/1710/1472 +f 1201/1712/1474 1202/3120/1453 1229/1713/1475 +f 1238/1717/1479 1233/3121/2487 1236/1715/1477 +f 1233/3121/2487 1234/3122/2488 1235/3123/2489 +f 1236/1715/1477 1233/3121/2487 1235/3123/2489 +f 1237/1718/1480 1193/3124/2490 1186/1719/1481 +f 1185/1721/1483 1194/3125/2491 1234/1722/1484 +f 1194/1726/1488 1193/3126/2492 1236/3127/2493 +f 1193/3126/2492 1237/3128/2494 1236/3127/2493 +f 1194/1726/1488 1236/3127/2493 1235/1724/1486 +f 1242/1727/1489 1241/3129/2495 1240/1728/1490 +f 1197/1730/1491 1198/3130/1491 1244/1731/1492 +f 1245/1734/1452 1237/3131/1452 1238/1735/1452 +f 1238/1735/1452 1243/3132/1493 1244/3133/1492 +f 1244/3133/1492 1246/1733/1452 1238/1735/1452 +f 1241/3134/2495 1233/1738/1453 1240/1737/1490 +f 1233/1738/1453 1234/3135/1453 1248/3136/1453 +f 1247/1736/1453 1233/1738/1453 1248/3136/1453 +f 1250/1739/1494 1249/1745/1500 1235/1740/1495 +f 1251/1742/1497 1254/1774/1526 1253/1743/1498 +f 1249/1745/1500 1255/1753/1508 1247/1746/1501 +f 1235/1740/1495 1249/1745/1500 1248/1747/1502 +f 1246/1749/1504 1256/1752/1507 1250/1739/1494 +f 1245/1750/1505 1250/1739/1494 1236/1741/1496 +f 1249/1745/1500 1250/1739/1494 1256/1752/1507 +f 1260/1754/1509 1259/1757/1512 1258/1755/1510 +f 1259/1757/1512 1262/1759/1514 1261/1758/1513 +f 1262/1759/1514 1264/1769/1521 1263/1760/1515 +f 1239/1762/1451 1265/3137/2496 1268/1763/1451 +f 1268/1763/1451 1267/3138/1451 1242/1761/1451 +f 1267/3138/1451 1266/3139/1451 1242/1761/1451 +f 1256/1752/1507 1270/1765/1517 1269/1764/1516 +f 1246/1749/1504 1244/3140/2497 1270/1765/1517 +f 1265/3141/2498 1271/1770/1522 1268/1768/1520 +f 1271/1770/1522 1273/3142/2499 1272/1766/1518 +f 1268/1768/1520 1271/1770/1522 1272/1766/1518 +f 1269/1764/1516 1240/3143/2500 1247/1746/1501 +f 1264/1769/1521 1273/3142/2499 1271/1770/1522 +f 1252/1744/1499 1253/1743/1498 1275/1771/1523 +f 1195/1773/1525 1196/3144/2501 1254/1774/1526 +f 1274/1772/1524 1275/1771/1523 1277/1775/1527 +f 1276/1776/1528 1277/1775/1527 1279/1777/1529 +f 1278/1778/1530 1279/1777/1529 1281/1779/1531 +f 1280/1780/1532 1281/1779/1531 1283/1781/1451 +f 1283/1781/1451 1285/1784/1534 1284/1783/1533 +f 1285/1784/1534 1260/1754/1509 1257/1756/1511 +f 1286/1785/1535 1287/1809/1558 1288/1786/1536 +f 1291/1788/1538 1292/1810/1559 1293/1789/1539 +f 1286/1785/1535 1289/1787/1537 1295/1791/1541 +f 1290/1790/1540 1293/1789/1539 1297/1793/1543 +f 1299/1796/1546 1296/1794/1544 1297/1793/1543 +f 1301/1798/1449 1299/1796/1546 1300/1797/1547 +f 1301/1798/1449 1302/1799/1548 1304/1800/1549 +f 1303/1801/1550 1304/1800/1549 1309/1805/1554 +f 1305/1802/1551 1307/1804/1553 1311/1807/1556 +f 1287/1809/1558 1308/1806/1555 1309/1805/1554 +f 1291/1788/1538 1310/1808/1557 1311/1807/1556 +f 1309/1805/1554 1312/1824/1570 1313/1811/1560 +f 1297/1793/1543 1293/1789/1539 1314/1813/1561 +f 1300/1797/1547 1297/1793/1543 1315/1814/1562 +f 1298/1815/1545 1316/1817/1563 1319/1819/1565 +f 1302/1799/1548 1300/1797/1547 1317/1818/1564 +f 1302/1799/1548 1320/1821/1567 1321/1822/1568 +f 1304/1800/1549 1321/1822/1568 1312/1824/1570 +f 1320/1821/1567 1317/1818/1564 1323/1825/1571 +f 1320/1821/1567 1324/1826/1572 1325/1827/1573 +f 1321/1822/1568 1325/1827/1573 1326/1828/1574 +f 1312/1824/1570 1326/1828/1574 1328/1832/1576 +f 1315/1814/1562 1314/1813/1561 1329/1835/1577 +f 1317/1818/1564 1315/1814/1562 1330/1836/1578 +f 1327/1831/1575 1331/1850/1588 1332/1837/1579 +f 1328/1832/1576 1333/1851/1589 1334/1838/1580 +f 1329/1835/1577 1292/1834/1559 1332/1837/1579 +f 1289/1839/1537 1334/1838/1580 1336/1841/1582 +f 1330/1836/1578 1329/1835/1577 1335/1840/1581 +f 1323/1825/1571 1330/1836/1578 1337/1843/1583 +f 1324/1826/1572 1323/1825/1571 1338/1845/1584 +f 1324/1826/1572 1339/1846/1585 1340/1847/1586 +f 1325/1827/1573 1340/1847/1586 1341/1848/1587 +f 1326/1828/1574 1341/1848/1587 1333/1851/1589 +f 1339/1846/1585 1338/1845/1584 1342/1852/1590 +f 1339/1846/1585 1343/1853/1591 1344/1854/1592 +f 1341/1848/1587 1340/1847/1586 1344/1854/1592 +f 1335/1840/1581 1332/1837/1579 1347/1859/1596 +f 1337/1843/1583 1335/1840/1581 1348/1860/1597 +f 1337/1843/1583 1350/1863/1599 1342/1852/1590 +f 1333/1865/1589 1351/1877/1606 1352/1866/1600 +f 1343/1853/1591 1342/1852/1590 1354/1871/1602 +f 1343/1853/1591 1355/1873/1603 1356/1874/1604 +f 1355/1873/1607 1358/1889/1607 1359/1878/1608 +f 1356/1874/1604 1359/1878/1608 1360/1879/1609 +f 1347/1883/1596 1331/1880/1588 1361/1882/1610 +f 1348/1885/1597 1347/1883/1596 1362/1884/1611 +f 1350/1870/1599 1348/1885/1597 1363/1886/1612 +f 1354/1871/1602 1350/1870/1599 1364/1887/1613 +f 1355/1873/1607 1354/1871/1602 1365/1888/1614 +f 1322/1855/1616 1367/1919/1645 1368/1894/1617 +f 1360/1896/1619 1359/1921/1647 1369/1897/1620 +f 1357/1895/1618 1368/1894/1617 1371/1899/1622 +f 1360/1896/1619 1370/1898/1621 1372/1901/1624 +f 1362/1903/1626 1361/1900/1623 1371/1899/1622 +f 1351/1902/1625 1372/1901/1624 1374/1905/1628 +f 1363/1906/1630 1362/1903/1626 1373/1904/1627 +f 1366/1892/1632 1352/1891/1629 1374/1905/1628 +f 1364/1909/1634 1363/1906/1630 1375/1907/1631 +f 1366/1892/1632 1376/1908/1633 1378/1911/1636 +f 1364/1909/1634 1377/1910/1635 1379/1913/1638 +f 1319/1872/1640 1353/1912/1637 1378/1911/1636 +f 1365/1914/1639 1379/1913/1638 1381/1916/1642 +f 1359/1921/1647 1358/1917/1643 1381/1916/1642 +f 1379/1913/1638 1382/1923/1648 1383/1924/1649 +f 1369/1897/1620 1381/1916/1642 1383/1924/1649 +f 1372/1929/1652 1370/1926/1621 1385/1928/1651 +f 1374/1934/1628 1372/1929/1652 1386/1930/1653 +f 1373/1931/1627 1387/1933/1654 1389/1936/1656 +f 1375/1937/1657 1389/1936/1656 1390/1939/1658 +f 1390/1939/1658 1393/1958/1668 1394/1945/1661 +f 1368/1948/1617 1396/1949/1663 1397/1950/1664 +f 1386/1951/1653 1398/1953/1665 1399/1954/1666 +f 1397/1950/1664 1400/1960/1669 1402/1964/1671 +f 1389/1966/1656 1387/3145/1672 1402/1967/1671 +f 1403/1971/1673 1399/1970/1666 1405/1989/1677 +f 1400/1998/1669 1409/2000/1682 1410/2001/1683 +f 1406/2009/1678 1405/3146/1677 1411/2010/1684 +f 1410/2015/1683 1409/2012/1682 1412/2014/1685 +f 1413/2057/1686 1412/2051/1685 1427/2053/1700 +f 1414/2059/1687 1398/2054/1665 1428/2056/1701 +f 1413/2061/1686 1429/3147/1702 1424/2045/1697 +f 1421/2062/1694 1419/2079/1692 1430/2063/1703 +f 1421/2062/1694 1431/2064/1704 1432/2065/1705 +f 1428/2066/1706 1432/2065/1705 1434/2069/1708 +f 1424/2070/1697 1429/2058/1702 1433/2068/1707 +f 1423/2043/1709 1434/2069/1708 1436/2072/1711 +f 1425/2073/1698 1424/2070/1697 1435/2071/1710 +f 1425/2073/1698 1437/2074/1712 1438/2075/1713 +f 1422/2077/1695 1417/2076/1690 1438/2075/1713 +f 1422/2077/1695 1439/2078/1714 1430/2063/1703 +f 1439/2078/1716 1438/2075/1713 1440/2081/1715 +f 1439/2078/1716 1441/2082/1717 1442/2083/1718 +f 1431/2084/1704 1442/2083/1718 1443/2085/1719 +f 1427/2087/1700 1420/2109/1693 1445/2088/1721 +f 1431/2084/1704 1444/2086/1720 1447/2090/1723 +f 1433/2092/1707 1427/2087/1700 1446/2089/1722 +f 1434/2094/1708 1432/2091/1705 1447/2090/1723 +f 1433/2092/1707 1448/2093/1724 1450/2096/1726 +f 1436/2098/1711 1434/2094/1708 1449/2095/1725 +f 1437/2080/1712 1435/2097/1710 1450/2096/1726 +f 1436/2098/1711 1451/2099/1727 1453/2101/1729 +f 1437/2080/1712 1452/2100/1728 1454/2103/1730 +f 1426/2102/1699 1453/2101/1729 1455/2104/1731 +f 1440/2081/1715 1454/2103/1730 1456/2105/1732 +f 1442/2083/1718 1441/2082/1717 1456/2105/1732 +f 1420/2109/1693 1367/1919/1645 1457/2107/1734 +f 1447/2110/1735 1444/2131/1756 1458/2111/1736 +f 1446/2113/1738 1460/2133/1758 1461/2114/1739 +f 1449/2116/1741 1447/2110/1735 1459/2112/1737 +f 1448/2115/1740 1461/2114/1739 1463/2118/1743 +f 1451/2120/1745 1449/2116/1741 1462/2117/1742 +f 1450/2119/1744 1463/2118/1743 1465/2122/1747 +f 1452/2123/1748 1465/2122/1747 1466/2125/1750 +f 1454/2126/1751 1466/2125/1750 1467/2127/1752 +f 1443/2129/1754 1456/2128/1753 1467/2127/1752 +f 1444/2131/1756 1443/2129/1754 1468/2130/1755 +f 1466/2125/1750 1470/2143/1766 1471/2137/1761 +f 1468/2130/1755 1467/2127/1762 1471/2137/1761 +f 1460/2144/1758 1474/2160/1778 1475/2145/1767 +f 1462/2147/1742 1459/2161/1779 1476/2148/1768 +f 1461/2146/1739 1475/2145/1767 1478/2150/1770 +f 1464/2141/1746 1462/2147/1742 1477/2149/1769 +f 1463/2151/1771 1478/2150/1770 1480/2153/1773 +f 1470/2143/1766 1465/2142/1747 1480/2153/1773 +f 1470/2143/1766 1481/2154/1774 1482/2155/1775 +f 1472/2138/1763 1471/2137/1761 1482/2155/1775 +f 1472/2138/1763 1483/2156/1776 1484/2157/1777 +f 1459/2161/1779 1458/2158/1736 1484/2157/1777 +f 1481/2154/1774 1485/2169/1786 1486/2162/1780 +f 1483/2156/1776 1482/2155/1775 1486/2162/1780 +f 1484/2157/1777 1483/2156/1776 1487/2163/1781 +f 1476/2148/1768 1484/2157/1777 1488/2164/1782 +f 1478/2150/1770 1490/2167/1784 1491/2168/1785 +f 1480/2153/1773 1491/2168/1785 1485/2169/1786 +f 1477/2170/1769 1489/2165/1783 1492/2171/1787 +f 1475/2166/1767 1494/2188/1796 1495/2173/1789 +f 1490/2167/1784 1495/2173/1789 1496/2175/1790 +f 1491/2168/1785 1496/2175/1790 1498/2179/1792 +f 1485/2169/1786 1498/2179/1792 1499/2180/1793 +f 1487/2163/1781 1486/2162/1780 1499/2180/1793 +f 1488/2164/1782 1487/2163/1781 1500/2181/1794 +f 1473/2182/1765 1305/2184/1551 1310/2186/1557 +f 1489/2165/1783 1488/2164/1782 1501/2185/1795 +f 1474/2187/1778 1310/2186/1557 1494/2188/1796 +f 1500/2181/1794 1499/2180/1793 1502/2189/1797 +f 1501/2185/1795 1500/2181/1794 1503/2190/1798 +f 1492/2171/1787 1501/2185/1795 1504/2192/1799 +f 1495/2173/1789 1506/2195/1801 1507/2198/1802 +f 1496/2175/1790 1507/2198/1802 1508/2199/1803 +f 1498/2179/1792 1508/2199/1803 1502/2189/1797 +f 1506/2195/1801 1494/2194/1796 1291/1788/1538 +f 1507/2198/1802 1506/2195/1801 1290/1790/1540 +f 1507/2198/1802 1296/1794/1544 1299/1796/1546 +f 1508/2199/1803 1299/1796/1546 1301/1798/1449 +f 1503/2190/1798 1502/2189/1797 1301/1798/1449 +f 1504/2192/1799 1503/2190/1798 1303/1801/1550 +f 1504/2192/1799 1308/1806/1555 1287/1809/1558 +f 1505/2193/1800 1287/1809/1558 1286/1785/1535 +f 1510/2203/1804 1511/3148/1816 1512/2204/1805 +f 1513/2206/1807 1514/3149/1807 1515/2207/1807 +f 1510/2211/1810 1517/3150/2502 1519/3151/2503 +f 1517/3150/2502 1518/3152/1453 1519/3151/2503 +f 1519/3151/2503 1516/2209/1808 1510/2211/1810 +f 1516/2209/1808 1515/3153/2504 1511/2210/1809 +f 1519/2212/1811 1520/3154/2505 1513/2206/1812 +f 1521/2213/1814 1522/3155/1814 1518/2214/1814 +f 1515/2216/1815 1514/3156/2506 1512/2217/1805 +f 1518/2219/1451 1522/3157/1451 1520/2220/1451 +f 1517/2222/1817 1510/3158/2507 1509/2223/1818 +f 1514/3159/2508 1513/3160/2509 1512/3161/2510 +f 1513/3160/2509 1520/2225/1820 1509/2227/1822 +f 1520/2225/1820 1522/3162/1452 1521/2226/1821 +f 1509/2227/1822 1512/3161/2510 1513/3160/2509 +f 1524/2228/1823 1525/2244/2511 1526/2229/1824 +f 1525/3163/1452 1527/3164/1452 1528/3165/1452 +f 1525/3163/1452 1528/3165/1452 1529/3166/1452 +f 1541/3167/1452 1542/2233/1452 1535/3168/1452 +f 1542/2233/1452 1526/3169/1452 1532/3170/1452 +f 1533/2231/1452 1542/2233/1452 1532/3170/1452 +f 1539/3171/1452 1540/3172/1452 1535/3168/1452 +f 1540/3172/1452 1541/3167/1452 1535/3168/1452 +f 1537/3173/1452 1538/3174/1452 1536/3175/1452 +f 1538/3174/1452 1539/3171/1452 1536/3175/1452 +f 1526/3169/1452 1525/3163/1452 1530/3176/1452 +f 1525/3163/1452 1529/3166/1452 1530/3176/1452 +f 1536/3175/1452 1539/3171/1452 1535/3168/1452 +f 1526/3169/1452 1530/3176/1452 1531/3177/1452 +f 1526/3169/1452 1531/3177/1452 1532/3170/1452 +f 1534/2232/1452 1535/3168/1452 1542/2233/1452 +f 1539/2234/1825 1543/3178/1857 1544/2235/1826 +f 1542/2237/1449 1545/3179/1449 1523/2238/1449 +f 1537/2240/1828 1546/2267/1828 1547/2241/1828 +f 1548/2243/1829 1527/3040/2512 1525/2244/1830 +f 1549/2245/1832 1550/3180/1843 1533/2246/1833 +f 1551/2248/1835 1549/3181/1832 1532/2249/1834 +f 1529/2252/1838 1552/3182/2513 1553/2253/1839 +f 1553/2253/1839 1551/3183/2514 1531/3184/2515 +f 1531/3184/2515 1530/2251/1837 1553/2253/1839 +f 1555/2254/1840 1536/2266/2516 1535/2255/1841 +f 1550/2257/1843 1556/3185/1846 1534/2258/1844 +f 1554/2260/1845 1535/3186/2517 1534/2261/1844 +f 1528/2263/1847 1557/3039/2442 1552/2264/1848 +f 1536/2266/1850 1555/2254/2518 1546/2267/1851 +f 1540/2268/1827 1544/3187/1826 1558/2269/1853 +f 1542/2271/1855 1541/2270/1854 1558/2269/1853 +f 1543/2273/1857 1539/3188/1825 1538/2274/1450 +f 1560/2276/1858 1561/2280/2519 1562/2277/1859 +f 1563/2279/1861 1564/2282/1865 1561/2280/1862 +f 1565/2281/1864 1566/2285/1864 1564/2282/1865 +f 1567/2286/1869 1569/3189/2520 1570/2287/1870 +f 1571/2289/1872 1570/3190/2521 1569/2290/1872 +f 1573/2292/1873 1571/3191/2522 1572/2293/1874 +f 1568/3192/1453 1570/3193/1453 1566/3194/1453 +f 1570/3193/1453 1571/3195/1453 1566/3194/1453 +f 1561/2297/1453 1564/3196/1453 1573/2295/1453 +f 1564/3196/1453 1566/3194/1453 1571/3195/1453 +f 1577/3197/1453 1562/3198/1453 1576/3199/1453 +f 1562/3198/1453 1561/2297/1453 1575/2296/1453 +f 1575/2296/1453 1576/3199/1453 1562/3198/1453 +f 1564/3196/1453 1571/3195/1453 1573/2295/1453 +f 1575/2298/1876 1573/3200/1873 1574/2299/1875 +f 1580/3201/1452 1579/3202/1452 1559/3203/1452 +f 1579/3202/1452 1578/3204/1452 1559/3203/1452 +f 1563/2303/1452 1560/3205/1452 1574/2301/1452 +f 1560/3205/1452 1559/3203/1452 1578/3204/1452 +f 1574/2301/1452 1560/3205/1452 1578/3204/1452 +f 1567/3206/1452 1565/3207/1452 1569/3208/1452 +f 1565/3207/1452 1563/2303/1452 1572/2302/1452 +f 1572/2302/1452 1569/3208/1452 1565/3207/1452 +f 1559/2278/1860 1562/2277/1859 1577/2304/1878 +f 1580/2305/1880 1577/2304/2523 1576/2306/1881 +f 1576/2308/1883 1575/3209/1876 1578/2309/1877 +f 1582/2311/1451 1583/2311/1451 1584/2312/1451 +f 1582/2313/1886 1586/3210/2524 1587/2314/1887 +f 1586/2316/1889 1588/2325/2525 1589/2317/1890 +f 1589/2319/1892 1588/3211/2526 1581/2320/1893 +f 1585/2322/1895 1587/3212/2527 1589/2323/1896 +f 1582/2311/1898 1581/2312/1898 1588/2325/1898 +f 1583/2326/1452 1591/3213/1452 1592/2327/1452 +f 1585/2329/1451 1590/3214/1451 1594/2330/1451 +f 1585/2332/1451 1591/2332/1451 1583/2333/1451 +f 1581/2334/1451 1584/2334/1451 1594/2335/1451 +f 1596/2336/1451 1593/2333/1451 1592/2332/1451 +f 1584/2338/1453 1596/3215/1453 1595/2339/1453 +f 1583/2311/1899 1593/2311/1899 1596/2312/1899 +f 1594/2341/1900 1595/3216/1900 1592/2342/1900 +f 1592/2332/1901 1595/2337/1901 1598/2337/1902 +f 1598/2337/1902 1600/2337/1904 1599/2332/1904 +f 1598/2344/1905 1595/3217/2528 1596/2345/1906 +f 1593/2347/1908 1592/3218/2529 1597/2348/1909 +f 1602/2350/1451 1603/3219/1451 1604/2351/1451 +f 1607/3220/1452 1604/3221/1452 1606/2355/1452 +f 1604/3221/1452 1603/2353/1452 1606/2355/1452 +f 1609/2356/1911 1610/3222/1911 1611/2357/1911 +f 1601/2361/1453 1612/3223/1453 1611/2359/1453 +f 1611/2359/1453 1610/3224/1453 1602/2360/1453 +f 1601/2364/1449 1604/3225/1449 1613/2362/1449 +f 1604/3225/1449 1607/3226/1449 1613/2362/1449 +f 1608/2358/1911 1611/2357/1911 1612/2365/1911 +f 1606/2367/1912 1608/2358/1912 1613/2366/1912 +f 1605/2369/1912 1609/2356/1912 1608/2358/1912 +f 1601/2370/1913 1614/3227/2530 1615/2371/2531 +f 1603/2376/2532 1616/3228/2533 1617/2377/1918 +f 1619/2382/1921 1620/2388/1927 1621/2383/1922 +f 1622/2385/1924 1623/2410/1948 1624/2386/1925 +f 1620/2388/1927 1626/2392/1931 1627/2389/1928 +f 1625/2387/1926 1624/2386/1925 1628/2390/1929 +f 1626/2392/1931 1630/2396/1935 1631/2393/1932 +f 1629/2391/1930 1628/2390/1929 1632/2394/1933 +f 1630/2396/1935 1634/2400/1939 1635/2397/1936 +f 1633/2395/1934 1632/2394/1933 1636/2398/1937 +f 1634/2400/1939 1638/2404/1942 1639/2401/1940 +f 1637/2399/1938 1636/2398/1937 1640/2402/1941 +f 1638/2404/1942 1642/3229/2534 1643/2405/1943 +f 1640/2402/1941 1644/2409/1947 1645/2406/1944 +f 1643/2405/1943 1642/3229/2534 1646/2407/1945 +f 1644/2409/1947 1619/3230/1921 1618/2384/1923 +f 1647/2408/1946 1646/2407/1945 1623/2410/1948 +f 1648/2411/1949 1649/2415/1953 1650/2412/1950 +f 1652/2414/1952 1653/2417/1955 1650/2412/1950 +f 1654/2416/1954 1655/2422/1960 1653/2417/1955 +f 1656/2418/2535 1657/2423/1961 1658/2419/1957 +f 1660/2421/1959 1661/2426/1964 1655/2422/1960 +f 1657/2423/1961 1662/2427/1965 1663/2424/1962 +f 1664/2425/1963 1665/2430/1968 1661/2426/1964 +f 1662/2427/1965 1666/2431/1969 1667/2428/1966 +f 1668/2429/1967 1669/2434/1972 1665/2430/1968 +f 1666/2431/1969 1670/2435/1973 1671/2432/1970 +f 1672/2433/1971 1673/2438/1975 1669/2434/1972 +f 1670/2435/1973 1648/3231/1949 1651/2436/1951 +f 1674/2437/1974 1675/2439/1976 1673/2438/1975 +f 1675/2439/1976 1676/2444/1981 1677/2440/1977 +f 1651/2413/1951 1650/2412/1950 1678/2441/1978 +f 1680/2443/1980 1681/2446/1983 1676/2444/1981 +f 1653/2417/1955 1682/2447/1984 1678/2441/1978 +f 1680/2443/1980 1659/2420/1958 1683/2445/1982 +f 1655/2422/1960 1684/2449/1986 1682/2447/1984 +f 1659/2420/1958 1658/2419/1957 1685/2448/1985 +f 1661/2426/1964 1686/2451/1988 1684/2449/1986 +f 1658/2419/1957 1663/2424/1962 1687/2450/1987 +f 1665/2430/1968 1688/2453/1990 1686/2451/1988 +f 1663/2424/1962 1667/2428/1966 1689/2452/1989 +f 1669/2434/1972 1690/2455/1992 1688/2453/1990 +f 1667/2428/1966 1671/2432/1970 1691/2454/1991 +f 1673/2438/1975 1677/2440/1977 1690/2455/1992 +f 1671/2432/1970 1651/2436/1951 1679/2456/1979 +f 1691/2454/1991 1679/2456/1979 1692/2457/1993 +f 1676/2444/1981 1694/2463/1998 1695/2459/1995 +f 1679/2442/1979 1678/2441/1978 1696/2460/1996 +f 1676/2444/1981 1681/2446/1983 1697/2462/1997 +f 1682/2447/1984 1698/2465/2000 1696/2460/1996 +f 1681/2446/1983 1683/2445/1982 1699/2464/1999 +f 1684/2449/1986 1700/2467/2002 1698/2465/2000 +f 1683/2445/1982 1685/2448/1985 1701/2466/2001 +f 1686/2451/1988 1702/2469/2004 1700/2467/2002 +f 1685/2448/1985 1687/2450/1987 1703/2468/2003 +f 1688/2453/1990 1704/2471/2006 1702/2469/2004 +f 1687/2450/1987 1689/2452/1989 1705/2470/2005 +f 1690/2455/1992 1706/2472/2007 1704/2471/2006 +f 1689/2452/1989 1691/2454/1991 1693/2458/1994 +f 1677/2440/1977 1695/2459/1995 1706/2472/2007 +f 1693/2458/1994 1692/2457/1993 1707/2473/2008 +f 1694/2463/1998 1709/2478/2012 1710/2475/2010 +f 1692/2461/1993 1696/2460/1996 1711/2476/2011 +f 1697/2462/1997 1712/2480/2014 1709/2478/2012 +f 1698/2465/2000 1713/2481/2015 1711/2476/2011 +f 1697/2462/1997 1699/2464/1999 1714/2479/2013 +f 1700/2467/2002 1715/2483/2017 1713/2481/2015 +f 1699/2464/1999 1701/2466/2001 1716/2482/2016 +f 1702/2469/2004 1717/2485/2019 1715/2483/2017 +f 1701/2466/2001 1703/2468/2003 1718/2484/2018 +f 1704/2471/2006 1719/2487/2021 1717/2485/2019 +f 1703/2468/2003 1705/2470/2005 1720/2486/2020 +f 1706/2472/2007 1721/2488/2022 1719/2487/2021 +f 1705/2470/2005 1693/2458/1994 1708/2474/2009 +f 1695/2459/1995 1710/2475/2010 1721/2488/2022 +f 1707/3232/2008 1711/3233/2011 1713/3234/2015 +f 1713/3234/2015 1715/3235/2017 1717/3236/2019 +f 1717/3236/2019 1719/3237/2021 1721/2491/2022 +f 1721/2491/2022 1710/3238/2010 1709/3239/2012 +f 1709/3239/2012 1712/3240/2014 1714/3241/2013 +f 1714/3241/2013 1716/3242/2016 1718/2489/2018 +f 1718/2489/2018 1720/3243/2020 1708/2490/2009 +f 1708/2490/2009 1707/3232/2008 1721/2491/2022 +f 1707/3232/2008 1713/3234/2015 1721/2491/2022 +f 1713/3234/2015 1717/3236/2019 1721/2491/2022 +f 1721/2491/2022 1709/3239/2012 1714/3241/2013 +f 1714/3241/2013 1718/2489/2018 1721/2491/2022 +f 1622/2385/2023 1722/2496/2033 1723/2492/2024 +f 1724/2493/2026 1725/2494/2029 1629/2391/2027 +f 1725/2494/2029 1726/2536/2536 1625/2387/2030 +f 1647/2408/2025 1723/2492/2024 1727/2495/2031 +f 1625/2387/2030 1726/2536/2536 1722/2496/2033 +f 1643/2405/2032 1727/2495/2031 1728/2497/2034 +f 1729/2498/2036 1730/2503/2042 1731/2499/2037 +f 1639/2401/2035 1728/2497/2034 1733/2501/2039 +f 1734/2502/2041 1735/2535/2537 1730/2503/2042 +f 1635/2397/2040 1733/2501/2039 1736/2504/2043 +f 1738/2505/2045 1735/2535/2537 1734/2502/2041 +f 1740/2507/2047 1738/2505/2045 1737/2506/2046 +f 1631/2393/2044 1736/2504/2043 1741/2509/2049 +f 1743/2510/2051 1740/2507/2047 1739/2508/2048 +f 1744/2512/2053 1745/2533/2079 1637/2399/2054 +f 1747/2513/2056 1743/2510/2051 1742/2511/2052 +f 1749/2515/2058 1747/2513/2056 1746/2514/2057 +f 1751/2517/2060 1749/2515/2058 1748/2516/2059 +f 1753/2519/2062 1751/2517/2060 1750/2518/2061 +f 1741/2509/2049 1754/2522/2066 1621/2383/2064 +f 1755/2521/2065 1756/2532/2078 1753/2519/2062 +f 1754/2522/2066 1757/2527/2072 1618/2384/2067 +f 1732/2500/2038 1731/2499/2037 1758/2523/2068 +f 1759/2524/2069 1758/2523/2068 1760/2525/2070 +f 1757/2527/2072 1762/2530/2076 1645/2406/2073 +f 1761/2526/2071 1760/2525/2070 1763/2528/2074 +f 1762/2530/2076 1744/2512/2053 1641/2403/2055 +f 1765/2531/2077 1766/3244/2080 1756/2532/2078 +f 1745/2533/2079 1724/2493/2026 1633/2395/2028 +f 1764/2529/2075 1763/2528/2074 1766/2534/2080 +f 1731/2499/2081 1730/2503/2082 1725/2494/2082 +f 1749/2515/2083 1751/2517/2084 1736/2504/2084 +f 1758/2523/2085 1731/2499/2081 1724/2493/2081 +f 1747/2513/2086 1749/2515/2083 1733/2501/2083 +f 1743/2510/2087 1747/2513/2086 1728/2497/2086 +f 1763/2528/2088 1760/2525/2089 1744/2512/2089 +f 1740/2507/2090 1743/2510/2087 1727/2495/2087 +f 1766/2534/2091 1763/2528/2088 1762/2530/2088 +f 1738/2505/2092 1740/2507/2090 1723/2492/2090 +f 1756/2532/1452 1766/3244/2091 1757/2527/2091 +f 1735/2535/2093 1738/2505/2092 1722/2496/2092 +f 1753/2519/2094 1756/2532/1452 1754/2522/1452 +f 1730/2503/2082 1735/2535/2093 1726/2536/2093 +f 1751/2517/2084 1753/2519/2094 1741/2509/2094 +f 1760/2525/2089 1758/2523/2085 1745/2533/2085 +f 1768/2537/2095 1769/2588/2095 1770/2538/2096 +f 1628/2540/2097 1632/3245/2104 1657/2423/2098 +f 1642/2541/2100 1646/2546/2106 1672/2433/2101 +f 1642/2541/2100 1668/2429/2102 1664/2425/2103 +f 1632/2543/2104 1636/2558/2085 1662/2544/2105 +f 1646/2546/2106 1623/3246/2538 1674/2437/2538 +f 1630/2547/2107 1654/2559/2116 1652/2548/2108 +f 1644/2550/2110 1670/2561/2118 1666/2551/2111 +f 1638/2553/2086 1664/3247/2103 1660/2554/2112 +f 1626/2549/2109 1652/2548/2108 1649/2556/2114 +f 1636/2558/2085 1640/2552/2111 1666/2551/2111 +f 1634/2555/2113 1660/2554/2112 1654/2559/2116 +f 1619/2560/2117 1648/3248/2119 1670/2561/2118 +f 1620/2557/2115 1649/2556/2114 1648/2562/2119 +f 1623/2564/2120 1646/2595/2121 1771/2565/2121 +f 1630/2567/2122 1773/2616/2122 1774/2568/2123 +f 1776/2570/2124 1777/2594/2124 1778/2571/2125 +f 1636/2573/2127 1632/2634/2128 1779/2574/2128 +f 1640/2576/2129 1636/2573/2127 1780/2575/2127 +f 1782/2578/2131 1783/2632/2132 1784/2579/2132 +f 1638/2581/2134 1786/2592/2134 1787/2582/2135 +f 1620/2584/2136 1788/2615/2136 1789/2585/2137 +f 1790/2587/2138 1791/2620/2138 1769/2588/2095 +f 1624/2589/2139 1792/2599/2139 1793/2590/2140 +f 1634/2569/2123 1774/2568/2123 1786/2592/2134 +f 1794/2593/2141 1795/2618/2141 1777/2594/2124 +f 1642/2583/2135 1787/2582/2135 1771/2565/2121 +f 1640/2576/2129 1781/2577/2130 1796/2596/2142 +f 1772/2566/2144 1797/2614/2166 1798/2598/2145 +f 1796/2596/2147 1781/2577/2160 1769/2600/2148 +f 1793/2590/2150 1799/2608/2159 1800/2602/2151 +f 1786/2592/1942 1774/2568/2162 1785/2603/2153 +f 1787/2582/2154 1801/2610/2161 1802/2605/2155 +f 1789/2585/2157 1788/2615/2167 1778/2606/1276 +f 1792/2599/2146 1798/2598/2145 1799/2608/2159 +f 1781/2577/2160 1780/2575/1938 1770/2609/1938 +f 1786/2592/1942 1784/2604/1940 1801/2610/2161 +f 1774/2568/2162 1773/2616/2168 1795/2611/2163 +f 1779/2574/2152 1800/2602/2151 1770/2609/1938 +f 1803/2612/2164 1796/2596/2147 1791/2601/2149 +f 1771/2565/2156 1802/2605/2155 1797/2614/2166 +f 1788/2615/2167 1803/2612/2164 1804/2613/2165 +f 1773/2616/2168 1789/2585/2157 1777/2607/2158 +f 1619/2617/2169 1644/2597/2143 1796/2596/2142 +f 1794/2593/2141 1782/2578/2131 1785/2580/2133 +f 1620/2584/2136 1619/3249/2169 1803/2612/2169 +f 1805/2619/2170 1804/2624/2170 1791/2620/2138 +f 1806/2621/2171 1807/2631/2172 1798/2622/2172 +f 1775/2572/2126 1778/2571/2125 1804/2624/2170 +f 1808/2625/2173 1809/2633/2174 1800/2626/2174 +f 1810/2628/2175 1811/2635/2176 1802/2629/2176 +f 1807/2631/2172 1808/2625/2173 1799/2627/2173 +f 1783/2632/2132 1810/2628/2175 1801/2630/2175 +f 1623/2564/2120 1772/2566/2120 1792/2599/2139 +f 1767/2539/2096 1770/2538/2096 1800/2626/2174 +f 1626/2586/2137 1789/2585/2137 1773/2616/2122 +f 1628/2591/2140 1793/2590/2140 1779/2574/2128 +f 1811/2635/2176 1806/2621/2171 1797/2623/2171 +f 1784/2636/2177 1785/2653/2194 1812/2637/2178 +f 1801/2639/2180 1814/2651/2192 1815/2640/2181 +f 1777/2642/2183 1778/2663/2203 1816/2643/2184 +f 1798/2645/2186 1818/2665/2204 1819/2646/2187 +f 1769/2648/2189 1770/2656/2190 1820/2649/2190 +f 1784/2636/2177 1813/2638/2179 1814/2651/2192 +f 1822/2652/2193 1812/2637/2178 1785/2653/2194 +f 1800/2655/2196 1823/2666/2205 1820/2649/2190 +f 1824/2657/2197 1825/2662/2202 1804/2658/2198 +f 1802/2641/2182 1815/2640/2181 1826/2660/2200 +f 1825/2662/2202 1816/2643/2184 1778/2663/2203 +f 1795/2654/2195 1777/2642/2183 1817/2644/2185 +f 1797/2661/2201 1826/2660/2200 1818/2665/2204 +f 1791/2659/2199 1769/2648/2189 1821/2650/2191 +f 1799/2647/2188 1819/2646/2187 1823/2666/2205 +f 1828/2667/1921 1829/2673/2210 1830/2668/2206 +f 1831/2670/2207 1832/2696/2217 1833/2671/2208 +f 1829/2673/2210 1835/2678/2212 1836/2674/2211 +f 1834/2675/2209 1833/3250/2208 1837/2676/1929 +f 1835/2678/2212 1839/2682/1935 1840/2679/2213 +f 1838/2677/1930 1837/2676/1929 1841/2680/1933 +f 1839/2682/1935 1843/2686/1939 1844/2683/2215 +f 1842/2681/2214 1841/2680/1933 1845/2684/1937 +f 1843/2686/1939 1847/2690/1940 1848/2687/1940 +f 1846/2685/1938 1845/2684/1937 1849/2688/2216 +f 1847/2690/1940 1851/3251/2534 1852/2691/1943 +f 1849/2688/2216 1853/2695/1947 1854/2692/1947 +f 1852/2691/1943 1851/3251/2534 1855/2693/1945 +f 1853/2695/1947 1828/2667/1921 1827/2669/1923 +f 1856/2694/1946 1855/2693/1945 1832/2696/2217 +f 1857/2697/1949 1858/2704/2222 1859/2698/1950 +f 1861/2700/2218 1862/3252/2223 1863/2701/2219 +f 1865/2703/1952 1866/2709/1955 1859/2698/1950 +f 1862/2705/2223 1867/2710/2225 1868/2706/2224 +f 1869/2708/1954 1870/2713/1960 1866/2709/1955 +f 1867/2710/2225 1871/2714/2227 1872/2711/2226 +f 1873/2712/1959 1874/2717/1964 1870/2713/1960 +f 1871/2714/2227 1875/2718/2228 1876/2715/1962 +f 1877/2716/1963 1878/2721/1968 1874/2717/1964 +f 1875/2718/2228 1879/2722/1969 1880/2719/1966 +f 1881/2720/2229 1882/2725/2230 1878/2721/1968 +f 1879/2722/1969 1883/2726/1973 1884/2723/1970 +f 1885/2724/1971 1886/2727/2231 1882/2725/2230 +f 1883/2726/1973 1857/2697/1949 1860/2699/1951 +f 1861/2700/2218 1864/2702/2220 1886/2727/2231 +f 1864/2702/2220 1887/2731/2233 1888/2728/1977 +f 1860/2699/1951 1859/2698/1950 1889/2729/2232 +f 1863/2701/2219 1891/3253/2234 1887/2731/2233 +f 1866/2709/1955 1892/2734/1984 1889/2729/2232 +f 1863/2707/2219 1868/2706/2224 1893/2732/1982 +f 1870/2713/1960 1894/2736/1986 1892/2734/1984 +f 1868/2706/2224 1872/2711/2226 1895/2735/1985 +f 1874/2717/1964 1896/2738/2235 1894/2736/1986 +f 1872/2711/2226 1876/2715/1962 1897/2737/1987 +f 1878/2721/1968 1898/2740/1990 1896/2738/2235 +f 1876/2715/1962 1880/2719/1966 1899/2739/2236 +f 1882/2725/2230 1900/2742/1992 1898/2740/1990 +f 1880/2719/1966 1884/2723/1970 1901/2741/1991 +f 1886/2727/2231 1888/2728/1977 1900/2742/1992 +f 1884/2723/1970 1860/2699/1951 1890/2730/1979 +f 1901/2741/1991 1890/2730/1979 1902/2743/1993 +f 1887/2731/2233 1904/2748/1998 1905/2745/2238 +f 1890/2730/1979 1889/2729/2232 1906/2746/2239 +f 1887/2731/2233 1891/3253/2234 1907/2747/1997 +f 1892/2734/1984 1908/2751/2000 1906/2746/2239 +f 1891/2733/2234 1893/2732/1982 1909/2749/1999 +f 1894/2736/1986 1910/2753/2241 1908/2751/2000 +f 1893/2732/1982 1895/2735/1985 1911/2752/2240 +f 1896/2738/2235 1912/2755/2242 1910/2753/2241 +f 1895/2735/1985 1897/2737/1987 1913/2754/2003 +f 1898/2740/1990 1914/2757/2006 1912/2755/2242 +f 1897/2737/1987 1899/2739/2236 1915/2756/2243 +f 1900/2742/1992 1916/2758/2244 1914/2757/2006 +f 1899/2739/2236 1901/2741/1991 1903/2744/2237 +f 1888/2728/1977 1905/2745/2238 1916/2758/2244 +f 1903/2744/2237 1902/2743/1993 1917/2759/2008 +f 1904/2748/1998 1919/2763/2247 1920/2761/2246 +f 1902/2743/1993 1906/2746/2239 1921/2762/2011 +f 1907/2747/1997 1922/3254/2014 1919/2763/2247 +f 1908/2751/2000 1923/2766/2015 1921/2762/2011 +f 1907/2750/1997 1909/2749/1999 1924/2764/2013 +f 1910/2753/2241 1925/2768/2017 1923/2766/2015 +f 1909/2749/1999 1911/2752/2240 1926/2767/2248 +f 1912/2755/2242 1927/2770/2250 1925/2768/2017 +f 1911/2752/2240 1913/2754/2003 1928/2769/2249 +f 1914/2757/2006 1929/2772/2251 1927/2770/2250 +f 1913/2754/2003 1915/2756/2243 1930/2771/2020 +f 1916/2758/2244 1931/2773/2022 1929/2772/2251 +f 1915/2756/2243 1903/2744/2237 1918/2760/2245 +f 1905/2745/2238 1920/2761/2246 1931/2773/2022 +f 1917/3255/2008 1921/3256/2011 1923/3257/2015 +f 1923/3257/2015 1925/3258/2017 1927/3259/2250 +f 1927/3259/2250 1929/3260/2251 1923/3257/2015 +f 1929/3260/2251 1931/2774/2022 1923/3257/2015 +f 1931/2774/2022 1920/3261/2246 1919/3262/2247 +f 1919/3262/2247 1922/3263/2014 1931/2774/2022 +f 1922/3263/2014 1924/2775/2013 1931/2774/2022 +f 1924/2775/2013 1926/3264/2248 1928/3265/2249 +f 1928/3265/2249 1930/3266/2020 1924/2775/2013 +f 1930/3266/2020 1918/2776/2245 1924/2775/2013 +f 1918/2776/2245 1917/3255/2008 1931/2774/2022 +f 1917/3255/2008 1923/3257/2015 1931/2774/2022 +f 1831/2670/2023 1932/2781/2033 1933/2777/2252 +f 1934/2778/2254 1935/2779/2257 1838/2677/2255 +f 1935/2779/2257 1936/2822/2539 1834/2675/2258 +f 1856/2694/2253 1933/2777/2252 1937/2780/2259 +f 1834/2672/2258 1936/2821/2539 1932/2781/2033 +f 1852/2691/2260 1937/2780/2259 1938/2782/2261 +f 1939/2783/2263 1940/2788/2269 1941/2784/2264 +f 1848/2687/2262 1938/2782/2261 1943/2786/2266 +f 1944/2787/2268 1945/3267/2540 1940/2788/2269 +f 1844/2683/2267 1943/2786/2266 1946/2789/2270 +f 1948/2790/2272 1945/2820/2540 1944/2787/2268 +f 1950/2792/2274 1948/2790/2272 1947/2791/2273 +f 1840/2679/2271 1946/2789/2270 1951/2794/2276 +f 1953/2795/2278 1950/2792/2274 1949/2793/2275 +f 1954/2797/2280 1955/2818/2305 1846/2685/2281 +f 1957/2798/2283 1953/2795/2278 1952/2796/2279 +f 1959/2800/2285 1957/2798/2283 1956/2799/2284 +f 1961/2802/2287 1959/2800/2285 1958/2801/2286 +f 1963/2804/2289 1961/2802/2287 1960/2803/2288 +f 1951/2794/2276 1964/2807/2066 1830/2668/2291 +f 1965/2806/2292 1966/2817/2304 1963/2804/2289 +f 1964/2807/2066 1967/2812/2298 1827/2669/2293 +f 1942/2785/2265 1941/2784/2264 1968/2808/2294 +f 1969/2809/2295 1968/2808/2294 1970/2810/2296 +f 1967/2812/2298 1972/2815/2302 1854/2692/2299 +f 1971/2811/2297 1970/2810/2296 1973/2813/2300 +f 1972/2815/2302 1954/2797/2280 1850/2689/2282 +f 1975/2816/2303 1976/2819/2306 1966/2817/2304 +f 1955/2818/2305 1934/2778/2254 1842/2681/2256 +f 1974/2814/2301 1973/2813/2300 1976/2819/2306 +f 1941/2784/2081 1940/2788/2082 1935/2779/2082 +f 1959/2800/2083 1961/2802/2084 1946/2789/2084 +f 1968/2808/2085 1941/2784/2081 1934/2778/2081 +f 1957/2798/2086 1959/2800/2083 1943/2786/2083 +f 1953/2795/2087 1957/2798/2086 1938/2782/2086 +f 1973/2813/2088 1970/2810/2089 1954/2797/2089 +f 1950/2792/2090 1953/2795/2087 1937/2780/2087 +f 1976/2819/2307 1973/2813/2088 1972/2815/2088 +f 1948/2790/2092 1950/2792/2090 1933/2777/2090 +f 1966/2817/1452 1976/2819/2307 1967/2812/2307 +f 1945/2820/2093 1948/2790/2092 1932/2781/2092 +f 1963/2804/2308 1966/2817/1452 1964/2807/1452 +f 1940/2788/2082 1945/3267/2093 1936/2822/2093 +f 1961/2802/2084 1963/2804/2308 1951/2794/2308 +f 1970/2810/2089 1968/2808/2085 1955/2818/2085 +f 1977/2823/2096 1978/2875/2095 1979/2824/2095 +f 1832/2826/2309 1833/3268/2314 1862/2827/2310 +f 1837/2829/2312 1841/2839/2104 1871/2830/2098 +f 1851/2832/2100 1855/2841/2315 1885/2833/2101 +f 1833/2835/2314 1837/2829/2312 1867/2831/2313 +f 1851/2832/2100 1881/2834/2102 1877/2837/2103 +f 1841/2839/2104 1845/2848/2085 1875/2840/2105 +f 1855/2841/2315 1832/2826/2309 1861/2828/2311 +f 1839/2842/2107 1869/2708/2116 1865/2703/1930 +f 1853/2844/2110 1883/2726/2118 1879/2722/2111 +f 1847/2846/2086 1877/2716/2103 1873/2712/2112 +f 1845/2848/2085 1849/3269/2111 1879/2849/2111 +f 1843/2847/2113 1873/2712/2112 1869/2708/2116 +f 1828/2850/1946 1857/2697/1946 1883/2726/2118 +f 1832/2851/2316 1981/2884/2316 1982/2852/2317 +f 1983/2854/2318 1984/2898/2319 1839/2855/2319 +f 1986/2857/2320 1987/2880/2320 1988/2858/2321 +f 1845/2860/2322 1989/2895/2322 1990/2861/2323 +f 1991/2863/2324 1989/2895/2322 1845/2860/2322 +f 1993/2865/2132 1994/2919/2364 1995/2866/2325 +f 1851/2868/2326 1996/2890/2326 1997/2869/2327 +f 1998/2871/2328 1999/2892/2329 1829/2872/2329 +f 2000/2874/2330 2001/2907/2330 1979/2824/2095 +f 1837/2876/2331 2002/2887/2331 2003/2877/2332 +f 1847/2870/2327 1997/2869/2327 1983/2854/2318 +f 2004/2879/2141 2005/2905/2141 1987/2880/2320 +f 1982/2852/2317 1996/2890/2326 1851/2868/2326 +f 2006/2881/2333 1991/2863/2324 1849/2864/2324 +f 2007/2883/2334 2008/2901/2356 1981/2884/2335 +f 2006/2881/2337 2001/2900/2355 1979/2885/2338 +f 2009/2886/2340 2010/2893/2350 2002/2887/2341 +f 1997/2869/2103 1994/3270/2086 1995/2888/2083 +f 2011/2889/2344 2012/2896/2351 1996/2890/2345 +f 1998/2871/2347 1987/2903/2358 1988/2891/2348 +f 2010/2893/2350 2007/2883/2334 2003/2877/2336 +f 1991/2863/2339 1979/2885/2338 1980/2894/2105 +f 2012/2896/2351 1994/3270/2086 1997/2869/2103 +f 1983/2854/2343 1995/2888/2083 2005/2897/2352 +f 1980/2894/2105 2009/2886/2340 1990/2861/2342 +f 2013/2899/2354 2014/2902/2357 2001/2900/2355 +f 2008/2901/2356 2011/2889/2344 1982/2852/2346 +f 1999/2892/2349 1988/2891/2348 2014/2902/2357 +f 1984/2898/2353 2005/2897/2352 1987/2903/2358 +f 2013/2899/2359 2006/2881/2333 1853/2882/2333 +f 1992/2867/2325 1995/2866/2325 2005/2905/2141 +f 1999/2892/2329 2013/2899/2359 1828/2904/2360 +f 2000/2874/2330 2015/2911/2361 2014/2906/2361 +f 2016/2908/2171 2017/2918/2362 2007/2909/2362 +f 1985/2859/2321 1988/2858/2321 2014/2906/2361 +f 2019/2912/2174 2009/2921/2174 2010/2913/2363 +f 2020/2915/2175 2021/2922/2176 2011/2916/2176 +f 2017/2918/2362 2018/2914/2363 2010/2913/2363 +f 1993/2865/2132 2020/2915/2175 2012/2917/2175 +f 1833/2920/2332 2003/2877/2332 1981/2884/2316 +f 1977/2823/2096 1980/2825/2096 2009/2921/2174 +f 1984/2898/2319 1998/2871/2328 1835/2873/2328 +f 1841/2862/2323 1990/2861/2323 2002/2887/2331 +f 2021/2922/2176 2016/2908/2171 2008/2910/2171 +f 1994/2923/2365 1995/2940/2194 2022/2924/2178 +f 2012/2926/2366 2024/2938/2375 2025/2927/2181 +f 1987/2929/2367 1988/2950/2203 2026/2930/2184 +f 2007/2932/2369 2028/2951/2204 2029/2933/2370 +f 1979/2935/2372 1980/2943/2373 2030/2936/2373 +f 1994/2923/2365 2023/2925/2365 2024/2938/2375 +f 2032/2939/2193 2022/2924/2178 1995/2940/2194 +f 2009/2942/2377 2033/2953/2383 2030/2936/2373 +f 2034/2944/2378 2035/2949/2382 2014/2945/2379 +f 2011/2928/2182 2025/2927/2181 2036/2947/2380 +f 2035/2949/2382 2026/2930/2184 1988/2950/2203 +f 2005/2941/2376 1987/2929/2367 2027/2931/2368 +f 2008/2948/2381 2036/2947/2380 2028/2951/2204 +f 2001/2946/2199 1979/2935/2372 2031/2937/2374 +f 2010/2934/2371 2029/2933/2370 2033/2953/2383 +f 2052/2969/2400 2047/2964/2392 2046/2963/2391 +f 2054/2971/2402 2053/2970/2401 2052/2969/2400 +f 2061/2978/2409 2062/2984/2409 2063/2979/2410 +f 2069/2983/2413 2065/3271/2541 2041/2981/2411 +f 2065/3271/2541 2062/3272/2542 2041/2981/2411 +f 2062/3272/2542 2066/3273/1452 2037/3274/2543 +f 2066/3273/1452 2067/3275/2544 2037/3274/2543 +f 2062/3272/2542 2037/3274/2543 2040/3276/2545 +f 2062/3272/2542 2040/3276/2545 2041/2981/2411 +f 2062/2984/2409 2061/2978/2409 2070/2985/1447 +f 2063/2987/2414 2071/3277/2546 1191/2988/2415 +f 2073/2990/2417 2074/3007/2418 2071/2991/2418 +f 2062/2993/2420 2065/3278/2420 2071/2994/2420 +f 2061/2996/2421 2064/3279/2421 2074/2997/2421 +f 2075/2999/2422 2072/3280/2422 1191/3000/2422 +f 2064/3002/2423 2075/3281/2547 1192/3003/2424 +f 2063/3005/2410 2072/3280/1447 2075/2999/1447 +f 2074/3007/2418 1192/3001/2426 1191/3000/2426 +f 2073/3012/2548 2043/3282/2549 2045/3283/2550 +f 2043/3282/2551 2044/3284/2551 2045/3283/2551 +f 2070/3011/2430 2061/3285/2552 2073/3012/2431 +f 2073/3012/2431 2045/3283/2550 2076/3286/2553 +f 2073/3012/2431 2076/3286/2553 2046/3287/2554 +f 2073/3012/2431 2046/3287/2554 2048/3288/2555 +f 2073/3012/2431 2048/3288/2555 2077/3010/2429 +f 2056/3289/2556 2078/3290/2557 2060/3291/2558 +f 2078/3290/2557 2042/3292/2559 2060/3291/2558 +f 2042/3292/2559 2039/3293/2560 2058/3294/2561 +f 2039/3293/2560 2038/3295/2562 2058/3294/2561 +f 2042/3292/2559 2059/3296/2563 2060/3291/2558 +f 2038/3295/2562 2067/3297/2564 2066/3298/2565 +f 2038/3295/2562 2066/3298/2565 2070/3015/1451 +f 2059/3296/2563 2042/3292/2559 2055/3299/2566 +f 2055/3299/2566 2042/3292/2559 2058/3294/2561 +f 2077/3016/2434 2051/3300/2567 2057/3017/2435 +f 2057/3017/2435 2058/3294/2561 2038/3295/2562 +f 2057/3017/2435 2038/3295/2562 2070/3015/1451 +f 1942/3301/2265 1969/3302/2295 1971/3303/2297 +f 1971/3303/2297 1974/3304/2301 1975/3305/2303 +f 1975/3305/2303 1965/3306/2292 1962/3019/2290 +f 1962/3019/2290 1960/3307/2288 1958/3308/2286 +f 1958/3308/2286 1956/3309/2284 1962/3019/2290 +f 1956/3309/2284 1952/3020/2279 1962/3019/2290 +f 1952/3020/2279 1949/3310/2275 1939/3021/2263 +f 1949/3310/2275 1947/3311/2273 1939/3021/2263 +f 1947/3311/2273 1944/3312/2268 1939/3021/2263 +f 1939/3021/2263 1942/3301/2265 1971/3303/2297 +f 1971/3303/2297 1975/3305/2303 1939/3021/2263 +f 1975/3305/2303 1962/3019/2290 1939/3021/2263 +f 1732/3313/2038 1759/3314/2069 1761/3022/2071 +f 1761/3022/2071 1764/3315/2075 1752/3023/2063 +f 1764/3315/2075 1765/3316/2077 1752/3023/2063 +f 1765/3316/2077 1755/3317/2065 1752/3023/2063 +f 1752/3023/2063 1750/3318/2061 1742/3024/2052 +f 1750/3318/2061 1748/3319/2059 1742/3024/2052 +f 1748/3319/2059 1746/3320/2057 1742/3024/2052 +f 1742/3024/2052 1739/3321/2048 1737/3322/2046 +f 1737/3322/2046 1734/3323/2041 1742/3024/2052 +f 1734/3323/2041 1729/3324/2036 1742/3024/2052 +f 1729/3324/2036 1732/3313/2038 1761/3022/2071 +f 1729/3324/2036 1761/3022/2071 1742/3024/2052 +f 1191/3027/1452 1180/3325/1445 1186/3025/1452 +f 1180/3325/1445 1179/3326/1446 1186/3025/1452 +f 1270/3327/2568 1244/3328/2569 1276/3329/2570 +f 1244/3328/2569 1198/3330/2571 1251/3331/2572 +f 1252/3332/2573 1244/3328/2569 1251/3331/2572 +f 1198/3330/2571 1195/3333/2574 1251/3331/2572 +f 1239/3334/2575 1240/3335/2576 1271/3336/2577 +f 1240/3335/2576 1269/3030/2439 1258/3337/2578 +f 1263/3338/2579 1240/3335/2576 1261/3339/2580 +f 1271/3336/2577 1265/3340/2581 1239/3334/2575 +f 1263/3338/2579 1271/3336/2577 1240/3335/2576 +f 1244/3328/2569 1252/3332/2573 1274/3341/2582 +f 1244/3328/2569 1274/3341/2582 1276/3329/2570 +f 1261/3339/2580 1240/3335/2576 1258/3337/2578 +f 1269/3030/2439 1270/3327/2568 1282/3028/2437 +f 1270/3327/2568 1276/3329/2570 1278/3342/2583 +f 1257/3343/2584 1258/3337/2578 1269/3030/2439 +f 1270/3327/2568 1278/3342/2583 1280/3344/2585 +f 1270/3327/2568 1280/3344/2585 1282/3028/2437 +f 1284/3029/2438 1257/3343/2584 1269/3030/2439 +f 2065/2992/2419 2069/3345/2586 2068/3031/2440 +f 2068/3031/2440 2078/3290/2587 2050/3346/2588 +f 2078/3290/2587 2056/3289/2589 2050/3346/2588 +f 2050/3346/2588 2043/3032/2441 2068/3031/2440 +f 2043/3032/2441 2073/2990/2417 2065/2992/2419 +f 1523/3035/1453 1545/3347/1453 1549/3033/1453 +f 1545/3347/1453 1558/3348/1453 1554/3349/1453 +f 1549/3033/1453 1545/3347/1453 1550/3350/1453 +f 1558/3348/1453 1544/3351/1453 1554/3349/1453 +f 1544/3351/1453 1543/3352/1453 1554/3349/1453 +f 1543/3352/1453 1547/3353/1453 1555/3354/1453 +f 1547/3353/1453 1546/3355/1453 1555/3354/1453 +f 1557/3356/1453 1548/3357/1453 1524/3358/1453 +f 1552/3359/1453 1557/3356/1453 1524/3358/1453 +f 1543/3352/1453 1555/3354/1453 1554/3349/1453 +f 1552/3359/1453 1524/3358/1453 1553/3360/1453 +f 1524/3358/1453 1523/3035/1453 1553/3360/1453 +f 1554/3349/1453 1556/3361/1453 1545/3347/1453 +f 1556/3361/1453 1550/3350/1453 1545/3347/1453 +f 1551/3034/1453 1553/3360/1453 1523/3035/1453 +f 1185/3036/1453 1184/3362/1448 1188/3037/1448 +f 1192/3038/1453 1194/3363/1453 1185/3036/1453 +f 1557/3039/2442 1528/2263/1847 1527/3040/2443 +f 784/3042/1055 777/3364/2590 1189/3365/2591 +f 1189/3365/2591 720/3043/2445 784/3042/1055 +f 720/3043/2445 719/3366/985 793/3041/1054 +f 718/3367/2592 717/3368/2593 1190/3044/2446 +f 1190/3044/2446 1189/3369/2594 757/3045/1024 +f 1189/3369/2594 777/3370/1044 758/3371/1022 +f 1189/3369/2594 758/3371/1022 757/3045/1024 +f 788/3046/1048 718/3367/984 1190/3044/2446 +o ShellL +v -0.256342 0.546177 0.003411 +v -0.316872 0.511227 0.003411 +v -0.317492 0.511922 0.601541 +v -0.256632 0.547057 0.601541 +v -0.120362 0.240757 0.003411 +v -0.068422 0.287527 0.003411 +v -0.067672 0.286977 0.601541 +v -0.119897 0.239952 0.601541 +v -0.357952 0.454687 0.003411 +v -0.358802 0.455062 0.601541 +v -0.039997 0.351377 0.003411 +v -0.039087 0.351182 0.601541 +v -0.372482 0.386322 0.003411 +v -0.373412 0.386322 0.601541 +v -0.039997 0.421267 0.003411 +v -0.039087 0.421462 0.601541 +v -0.357952 0.317957 0.003411 +v -0.358802 0.317577 0.601541 +v -0.068422 0.485117 0.003411 +v -0.067672 0.485662 0.601541 +v -0.316872 0.261412 0.003411 +v -0.317492 0.260722 0.601541 +v -0.120362 0.531882 0.003411 +v -0.119897 0.532687 0.601541 +v -0.256342 0.226467 0.003411 +v -0.256632 0.225582 0.601541 +v -0.186832 0.553482 0.003411 +v -0.186737 0.554407 0.601541 +v -0.186832 0.219162 0.003411 +v -0.186737 0.218237 0.601541 +v -0.216302 0.422942 0.729391 +v -0.264237 0.570472 0.729421 +v -0.333967 0.530212 0.729421 +v -0.230167 0.414937 0.729401 +v -0.184162 0.193752 0.729421 +v -0.186922 0.220012 0.711551 +v -0.120792 0.241497 0.711551 +v -0.107587 0.218632 0.729421 +v -0.185147 0.352972 0.729376 +v -0.047757 0.272507 0.729421 +v -0.173247 0.363687 0.729426 +v -0.381292 0.465077 0.729421 +v -0.239582 0.401982 0.729351 +v -0.015007 0.346062 0.729421 +v -0.166737 0.378312 0.729396 +v -0.398032 0.386322 0.729421 +v -0.242912 0.386322 0.729421 +v -0.015007 0.426577 0.729421 +v -0.166737 0.394327 0.729401 +v -0.381292 0.307567 0.729421 +v -0.239582 0.370657 0.729466 +v -0.047757 0.500132 0.729421 +v -0.173247 0.408957 0.729356 +v -0.333967 0.242427 0.729421 +v -0.230167 0.357702 0.729476 +v -0.107587 0.554007 0.729421 +v -0.185147 0.419667 0.729381 +v -0.264237 0.202172 0.729421 +v -0.216302 0.349697 0.729481 +v -0.184162 0.578887 0.729421 +v -0.200377 0.424617 0.729361 +v -0.200377 0.348022 0.729446 +v -0.256077 0.545362 0.711551 +v -0.316297 0.510592 0.711551 +v -0.069117 0.288027 0.711551 +v -0.357172 0.454337 0.711551 +v -0.040832 0.351552 0.711551 +v -0.371627 0.386322 0.711551 +v -0.040832 0.421087 0.711551 +v -0.357172 0.318302 0.711551 +v -0.069117 0.484612 0.711551 +v -0.316297 0.262047 0.711551 +v -0.120792 0.531142 0.711551 +v -0.256077 0.227282 0.711551 +v -0.186922 0.552632 0.711551 +v -0.358802 0.317577 0.729776 +v -0.373412 0.386322 0.729776 +v -0.256632 0.547057 0.729776 +v -0.186737 0.554407 0.729776 +v -0.256632 0.225582 0.729776 +v -0.317492 0.260722 0.729776 +v -0.317492 0.511922 0.729776 +v -0.358802 0.455062 0.729776 +v -0.186737 0.218237 0.729776 +v -0.119897 0.532687 0.729776 +v -0.067672 0.485662 0.729776 +v -0.039087 0.351182 0.729776 +v -0.067672 0.286977 0.729776 +v -0.039087 0.421462 0.729776 +v -0.119897 0.239952 0.729776 +v -0.230167 0.414937 0.729141 +v -0.217047 0.400367 0.728861 +v -0.210242 0.404297 0.728711 +v -0.216302 0.422942 0.729001 +v -0.173247 0.363687 0.729166 +v -0.189112 0.375212 0.728926 +v -0.194952 0.369952 0.729086 +v -0.221667 0.394007 0.729041 +v -0.166737 0.378312 0.729106 +v -0.185917 0.382392 0.728811 +v -0.223302 0.386322 0.729136 +v -0.166737 0.394327 0.728976 +v -0.185917 0.390252 0.728801 +v -0.221667 0.378632 0.729246 +v -0.173247 0.408957 0.729011 +v -0.189112 0.397427 0.728626 +v -0.217047 0.372277 0.729301 +v -0.185147 0.419667 0.728916 +v -0.194952 0.402687 0.728711 +v -0.210242 0.368347 0.729276 +v -0.200377 0.424617 0.728991 +v -0.202427 0.405117 0.728641 +v -0.202427 0.367527 0.729226 +v -0.221667 0.378632 0.729186 +v -0.217047 0.372277 0.729196 +v -0.210242 0.368347 0.729201 +v -0.202427 0.367527 0.729141 +v -0.189112 0.375212 0.728876 +v -0.185917 0.382392 0.728806 +v -0.185917 0.390252 0.728596 +v -0.189112 0.397427 0.728626 +v -0.194952 0.402687 0.728491 +v -0.202427 0.405117 0.728601 +v -0.210242 0.404297 0.728606 +v -0.217047 0.400367 0.728766 +v -0.221667 0.394007 0.728911 +vn -0.6691 0.7431 -0.0016 +vn -0.3090 0.9511 -0.0008 +vn -0.3090 0.9511 -0.0016 +vn 0.5000 -0.8660 -0.0016 +vn 0.8090 -0.5878 -0.0008 +vn 0.5000 -0.8660 -0.0008 +vn -0.9136 0.4067 -0.0008 +vn -0.6691 0.7432 -0.0008 +vn 0.8090 -0.5878 -0.0016 +vn 0.9781 -0.2079 -0.0008 +vn -1.0000 -0.0000 -0.0016 +vn -0.9135 0.4067 -0.0016 +vn 0.9782 0.2079 -0.0016 +vn 0.9782 -0.2079 -0.0016 +vn -0.9136 -0.4067 -0.0016 +vn -1.0000 -0.0000 -0.0008 +vn 0.8090 0.5878 -0.0016 +vn 0.9781 0.2079 -0.0008 +vn -0.6691 -0.7431 -0.0016 +vn -0.9135 -0.4067 -0.0008 +vn 0.5000 0.8660 -0.0016 +vn 0.8090 0.5878 -0.0008 +vn -0.3090 -0.9511 -0.0016 +vn -0.6691 -0.7431 -0.0008 +vn 0.1046 0.9945 -0.0016 +vn 0.5000 0.8660 -0.0008 +vn 0.1045 -0.9945 -0.0008 +vn -0.3090 -0.9511 -0.0008 +vn 0.1045 0.9945 -0.0008 +vn 0.1045 -0.9945 -0.0016 +vn 0.0001 -0.0002 1.0000 +vn -0.0009 -0.0011 1.0000 +vn 0.0013 0.0002 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.0586 -0.5574 -0.8282 +vn 0.2802 -0.4854 -0.8282 +vn 0.2803 -0.4854 -0.8282 +vn 0.0008 0.0077 1.0000 +vn -0.0001 -0.0000 1.0000 +vn -0.0008 -0.0006 1.0000 +vn 0.0001 -0.0003 1.0000 +vn 0.0077 0.0019 1.0000 +vn -0.0001 0.0001 1.0000 +vn 0.0001 0.0009 1.0000 +vn 0.0003 -0.0000 1.0000 +vn 0.0057 0.0034 1.0000 +vn -0.0003 -0.0000 1.0000 +vn -0.0004 0.0012 1.0000 +vn -0.0002 -0.0000 1.0000 +vn 0.0035 0.0034 1.0000 +vn 0.0001 0.0006 1.0000 +vn -0.0002 -0.0002 1.0000 +vn 0.0024 0.0036 1.0000 +vn -0.0002 -0.0003 1.0000 +vn -0.0000 -0.0003 1.0000 +vn 0.0022 0.0038 1.0000 +vn 0.0002 0.0002 1.0000 +vn 0.0028 0.0059 1.0000 +vn 0.0001 0.0001 1.0000 +vn -0.1732 0.5331 -0.8281 +vn -0.3750 0.4165 -0.8282 +vn 0.4535 -0.3295 -0.8282 +vn -0.5120 0.2280 -0.8282 +vn 0.5483 -0.1165 -0.8281 +vn -0.5605 -0.0000 -0.8282 +vn 0.5483 0.1165 -0.8281 +vn -0.5121 -0.2280 -0.8281 +vn 0.4535 0.3294 -0.8282 +vn 0.4535 0.3295 -0.8282 +vn -0.3750 -0.4165 -0.8282 +vn 0.2803 0.4854 -0.8282 +vn -0.1732 -0.5331 -0.8281 +vn 0.2802 0.4854 -0.8282 +vn 0.0586 0.5575 -0.8281 +vn -1.0000 -0.0000 -0.0000 +vn 0.1045 0.9945 -0.0000 +vn -0.6691 -0.7431 -0.0000 +vn -0.3090 0.9511 -0.0000 +vn -0.9136 0.4067 -0.0000 +vn -0.9135 -0.4067 -0.0000 +vn -0.3090 -0.9511 -0.0000 +vn -0.6691 0.7432 -0.0000 +vn 0.8090 0.5878 -0.0000 +vn 0.8090 -0.5878 -0.0000 +vn 0.9781 0.2079 -0.0000 +vn 0.1045 -0.9945 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.9781 -0.2079 -0.0000 +vn 0.0250 0.0001 0.9997 +vn 0.0093 -0.0107 0.9999 +vn 0.0176 -0.0014 0.9998 +vn -0.0035 0.0141 0.9999 +vn 0.0054 0.0185 0.9998 +vn 0.0227 0.0066 0.9997 +vn -0.0116 0.0098 0.9999 +vn -0.0032 0.0208 0.9998 +vn 0.0163 0.0112 0.9998 +vn -0.0102 0.0002 0.9999 +vn -0.0111 0.0125 0.9999 +vn 0.0088 0.0105 0.9999 +vn -0.0125 -0.0058 0.9999 +vn -0.0154 0.0023 0.9999 +vn -0.0102 -0.0106 0.9999 +vn -0.0080 -0.0098 0.9999 +vn 0.0060 0.0092 0.9999 +vn 0.0021 -0.0150 0.9999 +vn 0.0018 -0.0169 0.9999 +vn 0.0163 -0.0121 0.9998 +vn 0.0136 0.0186 0.9997 +vn 0.0080 0.0211 0.9997 +vn 0.0068 0.0182 0.9998 +vn -0.0000 -0.0000 1.0000 +vn -0.0003 -0.0002 1.0000 +vn -0.0000 -0.0004 1.0000 +vn -0.0000 -0.0002 1.0000 +vn -0.0193 -0.0068 0.9998 +vn 0.0045 0.0079 1.0000 +vn 0.0111 0.0124 0.9999 +vn 0.0123 0.0171 0.9998 +vn 0.0535 0.0178 0.9984 +vn 0.0119 0.0152 0.9998 +vn 0.0003 0.0018 1.0000 +vn 0.0082 0.0106 0.9999 +vn 0.0061 0.0065 1.0000 +vn 0.0107 0.0121 0.9999 +vn 0.0453 -0.0105 0.9989 +vn 0.0152 0.0142 0.9998 +vn 0.0692 0.0266 0.9972 +vn 0.0360 0.0656 0.9972 +vn -0.0044 0.0483 0.9988 vt 0.900095 0.372831 vt 0.985204 0.360142 vt 0.901646 0.377367 @@ -8271,6 +12316,456 @@ vt 0.683212 0.470177 vt 0.596487 0.327587 vt 0.606329 0.336849 vt 0.618961 0.335910 +vt 0.612555 0.371309 +vt 0.732969 0.405750 +vt 0.687564 0.434164 +vt 0.682906 0.303280 +vt 0.723925 0.400441 +vt 0.627355 0.390490 +vt 0.723869 0.334698 +vt 0.673753 0.465539 +vt 0.688657 0.455255 +vt 0.682126 0.452537 +vt 0.626707 0.332818 +vt 0.631076 0.324865 +vt 0.631270 0.316393 +vt 0.628318 0.309157 +vt 0.622169 0.303994 +vt 0.614288 0.301889 +vt 0.605651 0.302595 +vt 0.600209 0.309710 +vt 0.596324 0.314769 +vt 0.594972 0.321125 +vt 0.600664 0.333078 +vt 0.612748 0.337849 +s 1 +f 2080/3372/2595 2082/3373/2596 2079/3374/2597 +f 2083/3375/2598 2085/3376/2599 2086/3377/2600 +f 2080/3372/2595 2088/3378/2601 2081/3379/2602 +f 2084/3380/2603 2090/3381/2604 2085/3376/2599 +f 2091/3382/2605 2088/3378/2601 2087/3383/2606 +f 2093/3384/2607 2090/3381/2604 2089/3385/2608 +f 2095/3386/2609 2092/3387/2610 2091/3382/2605 +f 2097/3388/2611 2094/3389/2612 2093/3384/2607 +f 2099/3390/2613 2096/3391/2614 2095/3386/2609 +f 2101/3392/2615 2098/3393/2616 2097/3388/2611 +f 2103/3394/2617 2100/3395/2618 2099/3390/2613 +f 2105/3396/2619 2102/3397/2620 2101/3392/2615 +f 2103/3394/2617 2108/3398/2621 2104/3399/2622 +f 2079/3374/2597 2106/3400/2623 2105/3396/2619 +f 2107/3401/2624 2086/3377/2600 2108/3398/2621 +f 2110/3402/2625 2112/3403/2626 2109/3404/2627 +f 2107/3401/2628 2099/3390/2628 2101/3392/2628 +f 2113/3405/2629 2115/3406/2630 2116/3407/2631 +f 2117/3408/2632 2118/3409/2633 2119/3410/2634 +f 2111/3411/2635 2121/3412/2636 2112/3403/2626 +f 2119/3410/2634 2122/3413/2637 2123/3414/2638 +f 2120/3415/2639 2125/3416/2640 2121/3412/2636 +f 2123/3414/2638 2126/3417/2641 2127/3418/2642 +f 2125/3416/2640 2128/3419/2643 2129/3420/2644 +f 2126/3417/2641 2131/3421/2645 2127/3418/2642 +f 2129/3420/2644 2132/3422/2646 2133/3423/2647 +f 2131/3421/2645 2134/3424/2648 2135/3425/2649 +f 2133/3423/2647 2136/3426/2649 2137/3427/2650 +f 2134/3424/2648 2139/3428/2651 2135/3425/2649 +f 2136/3426/2649 2140/3429/2652 2137/3427/2650 +f 2139/3428/2651 2110/3402/2625 2109/3404/2627 +f 2140/3429/2652 2116/3430/2653 2117/3408/2632 +f 2110/3431/2654 2142/3432/2655 2111/3433/2655 +f 2116/3407/2631 2143/3434/2656 2118/3435/2656 +f 2111/3433/2655 2144/3436/2657 2120/3437/2657 +f 2143/3434/2656 2122/3438/2658 2118/3435/2656 +f 2144/3436/2657 2124/3439/2659 2120/3437/2657 +f 2145/3440/2658 2126/3441/2660 2122/3438/2658 +f 2146/3442/2659 2128/3443/2661 2124/3439/2659 +f 2126/3441/2660 2149/3444/2662 2130/3445/2663 +f 2148/3446/2661 2132/3447/2664 2128/3443/2661 +f 2149/3444/2662 2134/3448/2665 2130/3445/2663 +f 2150/3449/2664 2136/3450/2666 2132/3447/2664 +f 2151/3451/2667 2138/3452/2668 2134/3448/2665 +f 2136/3450/2666 2114/3453/2629 2113/3405/2629 +f 2138/3452/2668 2141/3454/2654 2110/3431/2654 +f 2096/3455/2614 2155/3456/2669 2092/3457/2610 +f 2082/3458/2596 2157/3459/2670 2106/3460/2623 +f 2104/3461/2622 2159/3462/2671 2100/3463/2618 +f 2081/3464/2602 2156/3465/2672 2082/3458/2596 +f 2092/3457/2610 2161/3466/2673 2088/3467/2601 +f 2100/3463/2618 2154/3468/2674 2096/3455/2614 +f 2108/3469/2621 2158/3470/2675 2104/3461/2622 +f 2088/3467/2601 2160/3471/2676 2081/3464/2602 +f 2102/3472/2620 2164/3473/2677 2098/3474/2616 +f 2090/3475/2604 2166/3476/2678 2085/3477/2599 +f 2098/3474/2616 2167/3478/2679 2094/3479/2612 +f 2086/3480/2600 2162/3481/2680 2108/3469/2621 +f 2106/3460/2623 2163/3482/2681 2102/3472/2620 +f 2085/3477/2599 2168/3483/2682 2086/3480/2600 +f 2094/3479/2612 2165/3484/2683 2090/3475/2604 +f 2170/3485/2684 2172/3486/2685 2169/3487/2686 +f 2173/3488/2687 2175/3489/2688 2117/3490/2632 +f 2176/3491/2689 2169/3487/2686 2121/3492/2636 +f 2177/3493/2690 2174/3494/2691 2173/3488/2687 +f 2179/3495/2692 2121/3492/2636 2125/3496/2640 +f 2180/3497/2693 2178/3498/2694 2177/3493/2690 +f 2182/3499/2695 2125/3496/2640 2129/3500/2644 +f 2183/3501/2696 2181/3502/2697 2180/3497/2693 +f 2133/3503/2647 2182/3499/2695 2129/3500/2644 +f 2187/3504/2698 2183/3501/2696 2186/3505/2699 +f 2188/3506/2700 2133/3503/2647 2137/3507/2650 +f 2190/3508/2701 2186/3505/2699 2189/3509/2702 +f 2140/3510/2652 2188/3506/2700 2137/3507/2650 +f 2171/3511/2703 2189/3509/2702 2172/3486/2685 +f 2175/3489/2688 2140/3510/2652 2117/3490/2632 +f 2199/3512/2704 2201/3513/2705 2203/3514/2706 +f 2080/3372/2595 2081/3379/2602 2082/3373/2596 +f 2083/3375/2598 2084/3380/2603 2085/3376/2599 +f 2080/3372/2595 2087/3383/2606 2088/3378/2601 +f 2084/3380/2603 2089/3385/2608 2090/3381/2604 +f 2091/3382/2605 2092/3387/2610 2088/3378/2601 +f 2093/3384/2607 2094/3389/2612 2090/3381/2604 +f 2095/3386/2609 2096/3391/2614 2092/3387/2610 +f 2097/3388/2611 2098/3393/2616 2094/3389/2612 +f 2099/3390/2613 2100/3395/2618 2096/3391/2614 +f 2101/3392/2615 2102/3397/2620 2098/3393/2616 +f 2103/3394/2617 2104/3399/2622 2100/3395/2618 +f 2105/3396/2619 2106/3400/2623 2102/3397/2620 +f 2103/3394/2617 2107/3401/2624 2108/3398/2621 +f 2079/3374/2597 2082/3373/2596 2106/3400/2623 +f 2107/3401/2624 2083/3375/2598 2086/3377/2600 +f 2110/3402/2625 2111/3411/2635 2112/3403/2626 +f 2095/3386/2628 2091/3382/2628 2087/3383/2628 +f 2087/3383/2628 2080/3372/2628 2101/3392/2628 +f 2080/3372/2628 2079/3374/2628 2101/3392/2628 +f 2079/3374/2628 2105/3396/2628 2101/3392/2628 +f 2101/3392/2628 2097/3388/2628 2093/3384/2628 +f 2093/3384/2628 2089/3385/2628 2101/3392/2628 +f 2089/3385/2628 2084/3380/2628 2101/3392/2628 +f 2084/3380/2628 2083/3375/2628 2107/3401/2628 +f 2107/3401/2628 2103/3394/2628 2099/3390/2628 +f 2099/3390/2628 2095/3386/2628 2101/3392/2628 +f 2095/3386/2628 2087/3383/2628 2101/3392/2628 +f 2084/3380/2628 2107/3401/2628 2101/3392/2628 +f 2113/3405/2629 2114/3453/2629 2115/3406/2630 +f 2117/3408/2632 2116/3430/2653 2118/3409/2633 +f 2111/3411/2635 2120/3415/2639 2121/3412/2636 +f 2119/3410/2634 2118/3409/2633 2122/3413/2637 +f 2120/3415/2639 2124/3515/2707 2125/3416/2640 +f 2123/3414/2638 2122/3413/2637 2126/3417/2641 +f 2125/3416/2640 2124/3515/2707 2128/3419/2643 +f 2126/3417/2641 2130/3516/2708 2131/3421/2645 +f 2129/3420/2644 2128/3419/2643 2132/3422/2646 +f 2131/3421/2645 2130/3516/2708 2134/3424/2648 +f 2133/3423/2647 2132/3422/2646 2136/3426/2649 +f 2134/3424/2648 2138/3517/2709 2139/3428/2651 +f 2136/3426/2649 2113/3518/2710 2140/3429/2652 +f 2139/3428/2651 2138/3517/2709 2110/3402/2625 +f 2140/3429/2652 2113/3518/2710 2116/3430/2653 +f 2110/3431/2654 2141/3454/2654 2142/3432/2655 +f 2116/3407/2631 2115/3406/2630 2143/3434/2656 +f 2111/3433/2655 2142/3432/2655 2144/3436/2657 +f 2143/3434/2656 2145/3440/2658 2122/3438/2658 +f 2144/3436/2657 2146/3442/2659 2124/3439/2659 +f 2145/3440/2658 2147/3519/2660 2126/3441/2660 +f 2146/3442/2659 2148/3446/2661 2128/3443/2661 +f 2126/3441/2660 2147/3519/2660 2149/3444/2662 +f 2148/3446/2661 2150/3449/2664 2132/3447/2664 +f 2149/3444/2662 2151/3451/2667 2134/3448/2665 +f 2150/3449/2664 2152/3520/2666 2136/3450/2666 +f 2151/3451/2667 2153/3521/2668 2138/3452/2668 +f 2136/3450/2666 2152/3520/2666 2114/3453/2629 +f 2138/3452/2668 2153/3521/2668 2141/3454/2654 +f 2096/3455/2614 2154/3468/2674 2155/3456/2669 +f 2082/3458/2596 2156/3465/2672 2157/3459/2670 +f 2104/3461/2622 2158/3470/2675 2159/3462/2671 +f 2081/3464/2602 2160/3471/2676 2156/3465/2672 +f 2092/3457/2610 2155/3456/2669 2161/3466/2673 +f 2100/3463/2618 2159/3462/2671 2154/3468/2674 +f 2108/3469/2621 2162/3481/2680 2158/3470/2675 +f 2088/3467/2601 2161/3466/2673 2160/3471/2676 +f 2102/3472/2620 2163/3482/2681 2164/3473/2677 +f 2090/3475/2604 2165/3484/2683 2166/3476/2678 +f 2098/3474/2616 2164/3473/2677 2167/3478/2679 +f 2086/3480/2600 2168/3483/2682 2162/3481/2680 +f 2106/3460/2623 2157/3459/2670 2163/3482/2681 +f 2085/3477/2599 2166/3476/2678 2168/3483/2682 +f 2094/3479/2612 2167/3478/2679 2165/3484/2683 +f 2170/3485/2684 2171/3511/2703 2172/3486/2685 +f 2173/3488/2687 2174/3494/2691 2175/3489/2688 +f 2176/3491/2689 2170/3485/2684 2169/3487/2686 +f 2177/3493/2690 2178/3498/2694 2174/3494/2691 +f 2179/3495/2692 2176/3491/2689 2121/3492/2636 +f 2180/3497/2693 2181/3502/2697 2178/3498/2694 +f 2182/3499/2695 2179/3495/2692 2125/3496/2640 +f 2183/3501/2696 2184/3522/2711 2181/3502/2697 +f 2133/3503/2647 2185/3523/2712 2182/3499/2695 +f 2187/3504/2698 2184/3522/2711 2183/3501/2696 +f 2188/3506/2700 2185/3523/2712 2133/3503/2647 +f 2190/3508/2701 2187/3504/2698 2186/3505/2699 +f 2140/3510/2652 2191/3524/2713 2188/3506/2700 +f 2171/3511/2703 2190/3508/2701 2189/3509/2702 +f 2175/3489/2688 2191/3524/2713 2140/3510/2652 +f 2204/3525/2714 2179/3526/2715 2192/3527/2716 +f 2192/3527/2716 2193/3528/2717 2194/3529/2718 +f 2194/3529/2718 2195/3530/2719 2192/3527/2716 +f 2195/3530/2719 2175/3531/2720 2192/3527/2716 +f 2175/3531/2720 2196/3532/2721 2197/3533/2722 +f 2197/3533/2722 2198/3534/2723 2199/3512/2704 +f 2199/3512/2704 2200/3535/2724 2201/3513/2705 +f 2201/3513/2705 2202/3536/2725 2203/3514/2706 +f 2203/3514/2706 2204/3525/2714 2175/3531/2720 +f 2204/3525/2714 2192/3527/2716 2175/3531/2720 +f 2175/3531/2720 2197/3533/2722 2203/3514/2706 +f 2197/3533/2722 2199/3512/2704 2203/3514/2706 +o ShellR +v 0.085103 0.485662 0.601681 +v 0.056518 0.421462 0.601681 +v 0.056518 0.421462 0.729916 +v 0.085103 0.485662 0.729916 +v 0.273778 0.546177 0.003551 +v 0.274063 0.547057 0.601681 +v 0.334928 0.511922 0.601681 +v 0.334303 0.511227 0.003551 +v 0.137798 0.240757 0.003551 +v 0.137333 0.239952 0.601681 +v 0.085103 0.286977 0.601681 +v 0.085858 0.287527 0.003551 +v 0.376233 0.455062 0.601681 +v 0.375383 0.454687 0.003551 +v 0.056518 0.351182 0.601681 +v 0.057428 0.351372 0.003551 +v 0.390848 0.386322 0.601681 +v 0.389918 0.386322 0.003551 +v 0.057428 0.421267 0.003551 +v 0.376233 0.317577 0.601681 +v 0.375383 0.317957 0.003551 +v 0.085859 0.485117 0.003551 +v 0.334928 0.260722 0.601681 +v 0.334303 0.261412 0.003551 +v 0.137333 0.532687 0.601681 +v 0.137799 0.531882 0.003551 +v 0.274063 0.225582 0.601681 +v 0.273778 0.226467 0.003551 +v 0.204168 0.554407 0.601681 +v 0.204269 0.553482 0.003551 +v 0.204168 0.218237 0.601681 +v 0.204268 0.219162 0.003551 +v 0.233738 0.422942 0.729346 +v 0.247603 0.414937 0.729341 +v 0.351398 0.530212 0.729561 +v 0.281668 0.570472 0.729561 +v 0.201598 0.193752 0.729561 +v 0.125023 0.218632 0.729561 +v 0.138223 0.241497 0.711691 +v 0.204358 0.220012 0.711691 +v 0.202583 0.352972 0.729631 +v 0.190683 0.363687 0.729611 +v 0.065188 0.272507 0.729561 +v 0.257013 0.401982 0.729371 +v 0.398723 0.465077 0.729561 +v 0.184168 0.378312 0.729536 +v 0.032438 0.346062 0.729561 +v 0.260343 0.386322 0.729406 +v 0.415463 0.386322 0.729561 +v 0.184168 0.394327 0.729381 +v 0.032438 0.426577 0.729561 +v 0.257013 0.370657 0.729446 +v 0.398723 0.307567 0.729561 +v 0.190683 0.408957 0.729446 +v 0.247603 0.357702 0.729386 +v 0.351398 0.242427 0.729561 +v 0.202583 0.419667 0.729406 +v 0.125023 0.554007 0.729561 +v 0.065188 0.500132 0.729561 +v 0.233738 0.349697 0.729536 +v 0.281668 0.202172 0.729561 +v 0.217813 0.424617 0.729366 +v 0.201598 0.578887 0.729561 +v 0.217813 0.348022 0.729611 +v 0.333733 0.510592 0.711691 +v 0.273513 0.545362 0.711691 +v 0.086548 0.288027 0.711691 +v 0.374603 0.454337 0.711691 +v 0.058263 0.351552 0.711691 +v 0.389063 0.386322 0.711691 +v 0.058263 0.421087 0.711691 +v 0.374603 0.318302 0.711691 +v 0.086548 0.484612 0.711691 +v 0.333733 0.262047 0.711691 +v 0.138223 0.531142 0.711691 +v 0.273513 0.227282 0.711691 +v 0.204358 0.552627 0.711691 +v 0.390848 0.386322 0.729916 +v 0.376233 0.317577 0.729916 +v 0.204168 0.554407 0.729916 +v 0.274063 0.547057 0.729916 +v 0.334928 0.260722 0.729916 +v 0.274063 0.225582 0.729916 +v 0.334928 0.511922 0.729916 +v 0.376233 0.455062 0.729916 +v 0.204168 0.218237 0.729916 +v 0.137333 0.532687 0.729916 +v 0.085103 0.286977 0.729916 +v 0.056518 0.351182 0.729916 +v 0.137333 0.239952 0.729916 +v 0.247603 0.414937 0.728661 +v 0.233738 0.422942 0.728646 +v 0.227678 0.404292 0.728156 +v 0.234483 0.400367 0.728136 +v 0.212388 0.369952 0.729486 +v 0.206548 0.375212 0.729441 +v 0.257013 0.401982 0.728706 +v 0.239103 0.394007 0.728261 +v 0.203348 0.382392 0.729266 +v 0.260343 0.386322 0.728856 +v 0.240733 0.386322 0.728411 +v 0.203348 0.390252 0.728916 +v 0.257013 0.370657 0.729041 +v 0.239103 0.378632 0.728676 +v 0.190683 0.408957 0.729041 +v 0.206548 0.397427 0.728666 +v 0.234483 0.372277 0.728916 +v 0.202583 0.419667 0.728841 +v 0.212388 0.402687 0.728421 +v 0.227678 0.368347 0.729271 +v 0.217813 0.424617 0.728716 +v 0.219863 0.405117 0.728236 +v 0.219863 0.367522 0.729441 +v 0.240733 0.386322 0.728261 +v 0.239103 0.394007 0.728026 +v 0.234483 0.400367 0.727946 +v 0.227678 0.404292 0.727921 +v 0.219863 0.405117 0.728041 +v 0.212388 0.402687 0.728241 +v 0.206548 0.397427 0.728536 +v 0.239103 0.378632 0.728531 +vn -0.9135 0.4068 -0.0000 +vn 0.3090 0.9511 -0.0008 +vn 0.6691 0.7431 -0.0016 +vn 0.3090 0.9510 -0.0015 +vn -0.5000 -0.8660 -0.0008 +vn -0.8090 -0.5878 -0.0016 +vn -0.5000 -0.8660 -0.0016 +vn 0.6691 0.7431 -0.0008 +vn 0.9135 0.4068 -0.0016 +vn -0.8090 -0.5878 -0.0008 +vn -0.9781 -0.2079 -0.0016 +vn 0.9135 0.4067 -0.0008 +vn 1.0000 -0.0000 -0.0016 +vn -0.9781 -0.2079 -0.0008 +vn -0.9781 0.2079 -0.0016 +vn 1.0000 -0.0000 -0.0008 +vn 0.9135 -0.4067 -0.0016 +vn -0.7654 0.6435 -0.0010 +vn -0.8090 0.5878 -0.0016 +vn 0.6691 -0.7431 -0.0008 +vn 0.6691 -0.7431 -0.0016 +vn -0.5000 0.8660 -0.0008 +vn -0.5000 0.8660 -0.0016 +vn 0.3090 -0.9511 -0.0016 +vn -0.1045 0.9945 -0.0008 +vn -0.1045 0.9945 -0.0016 +vn 0.3090 -0.9511 -0.0008 +vn -0.1045 -0.9945 -0.0016 +vn -0.1045 -0.9945 -0.0008 +vn 0.0003 -0.0016 1.0000 +vn -0.0009 -0.0010 1.0000 +vn -0.0004 -0.0013 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0586 -0.5574 -0.8282 +vn -0.2803 -0.4854 -0.8281 +vn 0.0020 0.0028 1.0000 +vn -0.0002 -0.0000 1.0000 +vn -0.0002 -0.0004 1.0000 +vn -0.0011 -0.0005 1.0000 +vn -0.0011 -0.0004 1.0000 +vn 0.0059 0.0066 1.0000 +vn 0.0012 0.0058 1.0000 +vn -0.0009 0.0015 1.0000 +vn -0.0020 0.0014 1.0000 +vn -0.0060 0.0002 1.0000 +vn -0.0141 0.0030 0.9999 +vn -0.0011 -0.0019 1.0000 +vn -0.0010 0.0004 1.0000 +vn -0.0010 -0.0000 1.0000 +vn 0.0119 0.0081 0.9999 +vn -0.0039 0.0043 1.0000 +vn 0.0021 0.0117 0.9999 +vn -0.0009 -0.0003 1.0000 +vn 0.0013 0.0015 1.0000 +vn -0.0117 0.0085 0.9999 +vn 0.0002 0.0005 1.0000 +vn -0.0008 0.0008 1.0000 +vn 0.0013 -0.0009 1.0000 +vn 0.0035 0.0002 1.0000 +vn 0.0028 0.0037 1.0000 +vn 0.0060 0.0071 1.0000 +vn 0.0001 -0.0012 1.0000 +vn -0.0000 -0.0003 1.0000 +vn 0.3751 0.4166 -0.8281 +vn 0.1732 0.5331 -0.8281 +vn -0.4535 -0.3295 -0.8281 +vn 0.5121 0.2280 -0.8281 +vn -0.5483 -0.1165 -0.8281 +vn 0.5605 -0.0000 -0.8281 +vn -0.5483 0.1165 -0.8281 +vn 0.5121 -0.2280 -0.8281 +vn -0.4535 0.3295 -0.8281 +vn 0.3751 -0.4166 -0.8281 +vn -0.2803 0.4854 -0.8281 +vn 0.1732 -0.5331 -0.8281 +vn -0.0586 0.5574 -0.8282 +vn 1.0000 -0.0000 -0.0000 +vn 0.9135 -0.4067 -0.0008 +vn -0.1045 0.9945 -0.0000 +vn 0.6691 -0.7431 -0.0000 +vn 0.3090 0.9511 -0.0000 +vn 0.9135 0.4067 -0.0000 +vn 0.9135 -0.4067 -0.0000 +vn 0.3090 -0.9511 -0.0000 +vn 0.6691 0.7431 -0.0000 +vn -0.6691 0.7432 -0.0000 +vn -0.8090 -0.5878 -0.0000 +vn -0.1045 -0.9945 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn -0.9781 -0.2079 -0.0000 +vn -0.9904 0.1383 -0.0010 +vn -0.0051 -0.0243 0.9997 +vn -0.0231 -0.0141 0.9996 +vn -0.0190 -0.0163 0.9997 +vn 0.0089 0.0141 0.9999 +vn 0.0095 0.0263 0.9996 +vn -0.0294 0.0027 0.9996 +vn -0.0223 -0.0021 0.9997 +vn 0.0271 0.0325 0.9991 +vn -0.0249 0.0243 0.9994 +vn -0.0194 0.0129 0.9997 +vn 0.0286 0.0343 0.9990 +vn -0.0108 0.0342 0.9994 +vn -0.0085 0.0233 0.9997 +vn 0.0249 0.0045 0.9997 +vn 0.0349 0.0082 0.9994 +vn 0.0161 0.0430 0.9989 +vn 0.0199 -0.0100 0.9998 +vn 0.0331 -0.0098 0.9994 +vn 0.0194 0.0361 0.9992 +vn 0.0100 -0.0212 0.9997 +vn 0.0183 -0.0240 0.9995 +vn 0.0131 0.0196 0.9997 +vn -0.0015 -0.0258 0.9997 +vn 0.0024 -0.0028 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.0228 0.0381 0.9990 +vn 0.0107 0.0328 0.9994 +vn 0.0170 0.0312 0.9994 +vn 0.0062 0.0170 0.9998 +vn 0.0169 0.0287 0.9994 +vn 0.0181 0.0265 0.9995 +vn 0.0196 0.0364 0.9991 +vn 0.0047 0.0508 0.9987 +vt 0.680521 0.406246 +vt 0.652061 0.430658 +vt 0.664534 0.402365 +vt 0.680997 0.433791 vt 0.795099 0.368734 vt 0.880048 0.374065 vt 0.878852 0.378577 @@ -8419,28 +12914,6 @@ vt 0.695201 0.449465 vt 0.628300 0.331461 vt 0.632514 0.314850 vt 0.605536 0.300814 -vt 0.612555 0.371309 -vt 0.732969 0.405750 -vt 0.687564 0.434164 -vt 0.682906 0.303280 -vt 0.723925 0.400441 -vt 0.627355 0.390490 -vt 0.723869 0.334698 -vt 0.673753 0.465539 -vt 0.688657 0.455255 -vt 0.682126 0.452537 -vt 0.626707 0.332818 -vt 0.631076 0.324865 -vt 0.631270 0.316393 -vt 0.628318 0.309157 -vt 0.622169 0.303994 -vt 0.614288 0.301889 -vt 0.605651 0.302595 -vt 0.600209 0.309710 -vt 0.596324 0.314769 -vt 0.594972 0.321125 -vt 0.600664 0.333078 -vt 0.612748 0.337849 vt 0.890640 0.475362 vt 0.909873 0.286529 vt 0.667016 0.375922 @@ -8456,4707 +12929,185 @@ vt 0.632152 0.323407 vt 0.629284 0.306912 vt 0.622867 0.301380 vt 0.614483 0.299388 -vn 0.0000 0.4068 -0.9135 -vn 0.0016 0.7431 -0.6691 -vn 0.0008 0.9511 -0.3090 -vn 0.0016 0.9511 -0.3090 -vn 0.0016 -0.8660 0.5000 -vn 0.0008 -0.5878 0.8090 -vn 0.0008 -0.8660 0.5000 -vn 0.0008 0.4067 -0.9136 -vn 0.0008 0.7432 -0.6691 -vn 0.0016 -0.5878 0.8090 -vn 0.0008 -0.2079 0.9781 -vn 0.0016 0.0000 -1.0000 -vn 0.0016 0.4067 -0.9135 -vn 0.0016 0.2079 0.9782 -vn 0.0016 -0.2079 0.9782 -vn 0.0016 -0.4067 -0.9136 -vn 0.0008 0.0000 -1.0000 -vn 0.0016 0.5878 0.8090 -vn 0.0008 0.2079 0.9781 -vn 0.0016 -0.7431 -0.6691 -vn 0.0008 -0.4067 -0.9135 -vn 0.0016 0.8660 0.5000 -vn 0.0008 0.5878 0.8090 -vn 0.0016 -0.9511 -0.3090 -vn 0.0008 -0.7431 -0.6691 -vn 0.0016 0.9945 0.1046 -vn 0.0008 0.8660 0.5000 -vn 0.0008 -0.9945 0.1045 -vn 0.0008 -0.9511 -0.3090 -vn 0.0008 0.9945 0.1045 -vn 0.0016 -0.9945 0.1045 -vn -1.0000 -0.0002 0.0001 -vn -1.0000 -0.0011 -0.0009 -vn -1.0000 0.0002 0.0013 -vn 1.0000 0.0000 0.0000 -vn 0.8282 -0.5574 0.0586 -vn 0.8282 -0.4854 0.2802 -vn 0.8282 -0.4854 0.2803 -vn -1.0000 0.0077 0.0008 -vn -1.0000 0.0000 -0.0001 -vn -1.0000 -0.0006 -0.0008 -vn -1.0000 -0.0003 0.0001 -vn -1.0000 0.0019 0.0077 -vn -1.0000 0.0001 -0.0001 -vn -1.0000 0.0009 0.0001 -vn -1.0000 0.0000 0.0003 -vn -1.0000 0.0034 0.0057 -vn -1.0000 0.0000 -0.0003 -vn -1.0000 0.0012 -0.0004 -vn -1.0000 0.0000 -0.0002 -vn -1.0000 0.0034 0.0035 -vn -1.0000 0.0006 0.0001 -vn -1.0000 -0.0002 -0.0002 -vn -1.0000 0.0036 0.0024 -vn -1.0000 -0.0003 -0.0002 -vn -1.0000 -0.0003 0.0000 -vn -1.0000 0.0038 0.0022 -vn -1.0000 0.0002 0.0002 -vn -1.0000 0.0059 0.0028 -vn -1.0000 0.0001 0.0001 -vn 0.8281 0.5331 -0.1732 -vn 0.8282 0.4165 -0.3750 -vn 0.8282 -0.3295 0.4535 -vn 0.8281 -0.3295 0.4535 -vn 0.8282 0.2280 -0.5120 -vn 0.8281 -0.1165 0.5483 -vn 0.8282 -0.0000 -0.5605 -vn 0.8281 0.1165 0.5483 -vn 0.8281 -0.2280 -0.5121 -vn 0.8282 0.3295 0.4535 -vn 0.8281 0.3295 0.4535 -vn 0.8282 -0.4165 -0.3750 -vn 0.8282 0.4854 0.2803 -vn 0.8282 -0.4166 -0.3750 -vn 0.8281 -0.5331 -0.1732 -vn 0.8282 0.4854 0.2802 -vn 0.8281 0.5575 0.0586 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.9945 0.1045 -vn 0.0000 -0.7431 -0.6691 -vn 0.0000 0.9511 -0.3090 -vn 0.0000 0.4067 -0.9136 -vn 0.0000 -0.4067 -0.9135 -vn 0.0000 -0.9511 -0.3090 -vn 0.0000 0.7432 -0.6691 -vn 0.0000 0.5878 0.8090 -vn 0.0000 -0.5878 0.8090 -vn 0.0000 0.2079 0.9781 -vn 0.0000 -0.9945 0.1045 -vn 0.0000 0.8660 0.5000 -vn 0.0000 -0.8660 0.5000 -vn 0.0000 -0.2079 0.9781 -vn -0.9997 0.0001 0.0250 -vn -0.9999 -0.0107 0.0091 -vn -0.9998 -0.0014 0.0176 -vn -0.9999 0.0144 -0.0037 -vn -0.9998 0.0185 0.0054 -vn -0.9997 0.0066 0.0227 -vn -0.9999 0.0098 -0.0116 -vn -0.9998 0.0211 -0.0033 -vn -0.9998 0.0113 0.0163 -vn -0.9999 0.0002 -0.0102 -vn -0.9999 0.0126 -0.0111 -vn -0.9999 0.0105 0.0088 -vn -0.9999 -0.0058 -0.0125 -vn -0.9999 0.0023 -0.0154 -vn -0.9999 -0.0107 -0.0102 -vn -0.9999 -0.0098 -0.0080 -vn -0.9999 0.0092 0.0060 -vn -0.9999 -0.0150 0.0021 -vn -0.9999 -0.0169 0.0018 -vn -0.9998 -0.0121 0.0163 -vn -0.9997 0.0186 0.0136 -vn -0.9997 0.0211 0.0080 -vn -0.9998 0.0182 0.0068 -vn 0.0008 0.9511 0.3090 -vn 0.0016 0.7431 0.6691 -vn 0.0015 0.9510 0.3090 -vn 0.0008 -0.8660 -0.5000 -vn 0.0016 -0.5878 -0.8090 -vn 0.0016 -0.8660 -0.5000 -vn 0.0008 0.7431 0.6691 -vn 0.0016 0.4068 0.9135 -vn 0.0008 -0.5878 -0.8090 -vn 0.0016 -0.2079 -0.9781 -vn 0.0008 0.4067 0.9135 -vn 0.0016 0.0000 1.0000 -vn 0.0008 -0.2079 -0.9781 -vn 0.0016 0.2079 -0.9781 -vn 0.0008 0.0000 1.0000 -vn 0.0016 -0.4067 0.9135 -vn 0.0010 0.6435 -0.7654 -vn 0.0016 0.5878 -0.8090 -vn 0.0008 -0.7431 0.6691 -vn 0.0016 -0.7431 0.6691 -vn 0.0008 0.8660 -0.5000 -vn 0.0016 0.8660 -0.5000 -vn 0.0016 -0.9511 0.3090 -vn 0.0008 0.9945 -0.1045 -vn 0.0016 0.9945 -0.1045 -vn 0.0008 -0.9511 0.3090 -vn 0.0016 -0.9945 -0.1045 -vn 0.0008 -0.9945 -0.1045 -vn -1.0000 -0.0016 0.0003 -vn -1.0000 -0.0010 -0.0009 -vn -1.0000 -0.0013 -0.0004 -vn 0.8282 -0.5574 -0.0586 -vn 0.8281 -0.4854 -0.2803 -vn -1.0000 0.0028 0.0020 -vn -1.0000 -0.0004 -0.0002 -vn -1.0000 -0.0005 -0.0010 -vn -1.0000 -0.0004 -0.0011 -vn -1.0000 0.0066 0.0059 -vn -1.0000 0.0058 0.0012 -vn -1.0000 0.0015 -0.0009 -vn -1.0000 0.0014 -0.0020 -vn -1.0000 0.0002 -0.0060 -vn -0.9999 0.0030 -0.0141 -vn -1.0000 -0.0019 -0.0011 -vn -1.0000 0.0004 -0.0010 -vn -1.0000 0.0000 -0.0010 -vn -0.9999 0.0081 0.0119 -vn -1.0000 0.0043 -0.0039 -vn -0.9999 0.0117 0.0021 -vn -1.0000 -0.0003 -0.0009 -vn -1.0000 0.0015 0.0013 -vn -0.9999 0.0085 -0.0117 -vn -1.0000 0.0005 0.0002 -vn -1.0000 0.0008 -0.0008 -vn -1.0000 -0.0009 0.0013 -vn -1.0000 0.0002 0.0035 -vn -1.0000 0.0037 0.0028 -vn -1.0000 0.0071 0.0060 -vn -1.0000 -0.0012 0.0001 -vn 0.8281 0.4166 0.3751 -vn 0.8281 0.5331 0.1732 -vn 0.8282 -0.3295 -0.4535 -vn 0.8282 0.2280 0.5120 -vn 0.8281 -0.1165 -0.5483 -vn 0.8281 0.0000 0.5605 -vn 0.8282 0.2280 0.5121 -vn 0.8281 0.1165 -0.5483 -vn 0.8281 -0.2280 0.5121 -vn 0.8282 0.3295 -0.4535 -vn 0.8281 -0.4166 0.3751 -vn 0.8281 0.4854 -0.2803 -vn 0.8281 -0.5331 0.1732 -vn 0.8282 0.5574 -0.0586 -vn 0.0000 0.0000 1.0000 -vn 0.0008 -0.4067 0.9135 -vn 0.0000 0.9945 -0.1045 -vn 0.0000 -0.7431 0.6691 -vn 0.0000 0.9511 0.3090 -vn 0.0000 0.4067 0.9135 -vn 0.0000 -0.4067 0.9135 -vn 0.0000 -0.9511 0.3090 -vn 0.0000 0.7431 0.6691 -vn 0.0000 -0.5878 -0.8090 -vn 0.0000 -0.9945 -0.1045 -vn 0.0000 0.8660 -0.5000 -vn 0.0000 -0.8660 -0.5000 -vn 0.0000 -0.2079 -0.9781 -vn 0.0010 0.1383 -0.9904 -vn -0.9997 -0.0243 -0.0051 -vn -0.9996 -0.0141 -0.0231 -vn -0.9997 -0.0163 -0.0190 -vn -0.9999 0.0141 0.0089 -vn -0.9996 0.0263 0.0095 -vn -0.9996 0.0027 -0.0294 -vn -0.9997 -0.0021 -0.0223 -vn -0.9991 0.0325 0.0271 -vn -0.9994 0.0243 -0.0249 -vn -0.9997 0.0129 -0.0194 -vn -0.9990 0.0343 0.0286 -vn -0.9994 0.0342 -0.0108 -vn -0.9997 0.0233 -0.0085 -vn -0.9997 0.0045 0.0249 -vn -0.9994 0.0082 0.0349 -vn -0.9989 0.0430 0.0161 -vn -0.9998 -0.0100 0.0199 -vn -0.9994 -0.0099 0.0331 -vn -0.9992 0.0361 0.0194 -vn -0.9997 -0.0212 0.0100 -vn -0.9995 -0.0240 0.0183 -vn -0.9997 0.0196 0.0131 -vn -0.9997 -0.0258 -0.0015 -vn -1.0000 0.0000 0.0000 -vn -1.0000 -0.0002 -0.0003 -vn -1.0000 -0.0004 -0.0000 -vn -1.0000 -0.0002 0.0000 -vn -0.9998 -0.0068 -0.0193 -vn -1.0000 0.0079 0.0045 -vn -0.9999 0.0125 0.0111 -vn -0.9998 0.0171 0.0122 -vn -0.9984 0.0179 0.0534 -vn -0.9998 0.0152 0.0119 -vn -1.0000 0.0018 0.0003 -vn -0.9999 0.0106 0.0082 -vn -1.0000 0.0065 0.0061 -vn -0.9999 0.0121 0.0107 -vn -0.9989 -0.0104 0.0453 -vn -0.9998 0.0142 0.0152 -vn -0.9972 0.0267 0.0693 -vn -0.9972 0.0655 0.0360 -vn -0.9988 0.0483 -0.0044 -vn -1.0000 -0.0028 0.0024 -vn -0.9990 0.0381 0.0228 -vn -0.9994 0.0328 0.0107 -vn -0.9994 0.0312 0.0170 -vn -0.9998 0.0171 0.0063 -vn -0.9994 0.0287 0.0169 -vn -0.9995 0.0265 0.0181 -vn -0.9991 0.0364 0.0196 -vn -0.9987 0.0508 0.0047 -s off -f 1376/2232/1621 1378/2233/1621 1375/2234/1621 -f 1376/2232/1621 1377/2235/1621 1378/2233/1621 +s 0 +f 2206/3537/2726 2208/3538/2726 2205/3539/2726 +f 2206/3537/2726 2207/3540/2726 2208/3538/2726 s 1 -f 1380/2236/1622 1382/2237/1623 1379/2238/1624 -f 1383/2239/1625 1385/2240/1626 1386/2241/1627 -f 1380/2236/1622 1388/2242/1628 1381/2243/1629 -f 1384/2244/1630 1390/2245/1631 1385/2240/1626 -f 1391/2246/1632 1388/2242/1628 1387/2247/1633 -f 1393/2248/1634 1390/2245/1631 1389/2249/1635 -f 1395/2250/1636 1392/2251/1637 1391/2246/1632 -f 1397/2252/1638 1394/2253/1639 1393/2248/1634 -f 1399/2254/1640 1396/2255/1641 1395/2250/1636 -f 1401/2256/1642 1398/2257/1643 1397/2252/1638 -f 1403/2258/1644 1400/2259/1645 1399/2254/1640 -f 1405/2260/1646 1402/2261/1647 1401/2256/1642 -f 1403/2258/1644 1408/2262/1648 1404/2263/1649 -f 1379/2238/1624 1406/2264/1650 1405/2260/1646 -f 1407/2265/1651 1386/2241/1627 1408/2262/1648 -f 1410/2266/1652 1412/2267/1653 1409/2268/1654 -f 1407/2265/1655 1399/2254/1655 1401/2256/1655 -f 1413/2269/1656 1415/2270/1657 1416/2271/1658 -f 1417/2272/1659 1418/2273/1660 1419/2274/1661 -f 1411/2275/1662 1421/2276/1663 1412/2267/1653 -f 1419/2274/1661 1422/2277/1664 1423/2278/1665 -f 1420/2279/1666 1425/2280/1667 1421/2276/1663 -f 1423/2278/1665 1426/2281/1668 1427/2282/1669 -f 1425/2280/1667 1428/2283/1670 1429/2284/1671 -f 1426/2281/1668 1431/2285/1672 1427/2282/1669 -f 1429/2284/1671 1432/2286/1673 1433/2287/1674 -f 1431/2285/1672 1434/2288/1675 1435/2289/1676 -f 1433/2287/1674 1436/2290/1676 1437/2291/1677 -f 1434/2288/1675 1439/2292/1678 1435/2289/1676 -f 1436/2290/1676 1440/2293/1679 1437/2291/1677 -f 1439/2292/1678 1410/2266/1652 1409/2268/1654 -f 1440/2293/1679 1416/2294/1680 1417/2272/1659 -f 1410/2295/1681 1442/2296/1682 1411/2297/1682 -f 1416/2271/1658 1443/2298/1683 1418/2299/1684 -f 1411/2297/1682 1444/2300/1685 1420/2301/1685 -f 1443/2298/1683 1422/2302/1686 1418/2299/1684 -f 1444/2300/1685 1424/2303/1687 1420/2301/1685 -f 1445/2304/1686 1426/2305/1688 1422/2302/1686 -f 1446/2306/1687 1428/2307/1689 1424/2303/1687 -f 1426/2305/1688 1449/2308/1690 1430/2309/1691 -f 1448/2310/1689 1432/2311/1692 1428/2307/1689 -f 1449/2308/1690 1434/2312/1693 1430/2309/1691 -f 1450/2313/1694 1436/2314/1695 1432/2311/1692 -f 1451/2315/1696 1438/2316/1697 1434/2312/1693 -f 1436/2314/1695 1414/2317/1656 1413/2269/1656 -f 1438/2316/1697 1441/2318/1681 1410/2295/1681 -f 1396/2319/1641 1455/2320/1698 1392/2321/1637 -f 1382/2322/1623 1457/2323/1699 1406/2324/1650 -f 1404/2325/1649 1459/2326/1700 1400/2327/1645 -f 1381/2328/1629 1456/2329/1701 1382/2322/1623 -f 1392/2321/1637 1461/2330/1702 1388/2331/1628 -f 1400/2327/1645 1454/2332/1703 1396/2319/1641 -f 1408/2333/1648 1458/2334/1704 1404/2325/1649 -f 1388/2331/1628 1460/2335/1705 1381/2328/1629 -f 1402/2336/1647 1464/2337/1706 1398/2338/1643 -f 1390/2339/1631 1466/2340/1707 1385/2341/1626 -f 1398/2338/1643 1467/2342/1708 1394/2343/1639 -f 1386/2344/1627 1462/2345/1709 1408/2333/1648 -f 1406/2324/1650 1463/2346/1710 1402/2336/1647 -f 1385/2341/1626 1468/2347/1711 1386/2344/1627 -f 1394/2343/1639 1465/2348/1712 1390/2339/1631 -f 1470/2349/1713 1472/2350/1714 1469/2351/1715 -f 1473/2352/1716 1475/2353/1717 1417/2354/1659 -f 1476/2355/1718 1469/2351/1715 1421/2356/1663 -f 1477/2357/1719 1474/2358/1720 1473/2352/1716 -f 1479/2359/1721 1421/2356/1663 1425/2360/1667 -f 1480/2361/1722 1478/2362/1723 1477/2357/1719 -f 1482/2363/1724 1425/2360/1667 1429/2364/1671 -f 1483/2365/1725 1481/2366/1726 1480/2361/1722 -f 1433/2367/1674 1482/2363/1724 1429/2364/1671 -f 1487/2368/1727 1483/2365/1725 1486/2369/1728 -f 1488/2370/1729 1433/2367/1674 1437/2371/1677 -f 1490/2372/1730 1486/2369/1728 1489/2373/1731 -f 1440/2374/1679 1488/2370/1729 1437/2371/1677 -f 1471/2375/1732 1489/2373/1731 1472/2350/1714 -f 1475/2353/1717 1440/2374/1679 1417/2354/1659 -f 1499/2376/1733 1501/2377/1734 1503/2378/1735 -f 1506/2379/1736 1508/2380/1737 1505/2381/1738 -f 1510/2382/1739 1512/2383/1740 1509/2384/1741 -f 1507/2385/1742 1514/2386/1743 1508/2380/1737 -f 1511/2387/1744 1516/2388/1745 1512/2383/1740 -f 1513/2389/1746 1518/2390/1747 1514/2386/1743 -f 1515/2391/1748 1519/2392/1749 1516/2388/1745 -f 1517/2393/1750 1521/2394/1751 1518/2390/1747 -f 1519/2392/1749 1375/2395/1752 1522/2396/1753 -f 1521/2394/1751 1523/2397/1754 1524/2398/1755 -f 1522/2396/1753 1525/2399/1756 1526/2400/1757 -f 1523/2397/1754 1528/2401/1758 1524/2398/1755 -f 1526/2400/1757 1529/2402/1759 1530/2403/1760 -f 1527/2404/1761 1532/2405/1762 1528/2401/1758 -f 1530/2403/1760 1506/2379/1736 1505/2381/1738 -f 1531/2406/1763 1509/2384/1741 1532/2405/1762 -f 1533/2407/1764 1535/2408/1765 1536/2409/1766 -f 1521/2394/1655 1509/2384/1655 1522/2396/1655 -f 1537/2410/1767 1539/2411/1768 1540/2412/1767 -f 1541/2413/1769 1543/2414/1670 1538/2415/1770 -f 1534/2416/1771 1545/2417/1772 1535/2408/1765 -f 1546/2418/1773 1543/2414/1670 1542/2419/1774 -f 1548/2420/1775 1545/2417/1772 1544/2421/1776 -f 1377/2422/1777 1551/2423/1778 1547/2424/1779 -f 1548/2420/1775 1553/2425/1780 1549/2426/1781 -f 1550/2427/1782 1378/2428/1783 1377/2422/1777 -f 1555/2429/1784 1553/2425/1780 1552/2430/1785 -f 1558/2431/1786 1559/2432/1787 1378/2428/1783 -f 1555/2429/1784 1561/2433/1788 1556/2434/1789 -f 1562/2435/1790 1558/2431/1786 1557/2436/1791 -f 1564/2437/1792 1561/2433/1788 1560/2438/1793 -f 1562/2435/1790 1536/2409/1766 1563/2439/1794 -f 1564/2437/1792 1538/2415/1770 1537/2440/1676 -f 1535/2441/1795 1566/2442/1796 1536/2443/1796 -f 1543/2444/1797 1539/2411/1768 1538/2445/1768 -f 1545/2446/1798 1565/2447/1795 1535/2441/1795 -f 1547/2448/1799 1567/2449/1797 1543/2444/1797 -f 1549/2450/1800 1568/2451/1801 1545/2446/1798 -f 1551/2452/1802 1569/2453/1799 1547/2448/1799 -f 1553/2454/1803 1570/2455/1800 1549/2450/1800 -f 1551/2452/1802 1573/2456/1804 1571/2457/1802 -f 1556/2458/1805 1572/2459/1803 1553/2454/1803 -f 1559/2460/1804 1575/2461/1806 1573/2456/1804 -f 1556/2458/1805 1576/2462/1807 1574/2463/1805 -f 1563/2464/1808 1575/2461/1806 1558/2465/1806 -f 1561/2466/1807 1540/2412/1767 1576/2462/1807 -f 1536/2443/1796 1577/2467/1808 1563/2464/1808 -f 1578/2468/1809 1520/2469/1810 1517/2470/1750 -f 1580/2471/1811 1506/2472/1736 1529/2473/1759 -f 1582/2474/1812 1527/2475/1761 1523/2476/1754 -f 1581/2477/1813 1507/2478/1742 1506/2472/1736 -f 1585/2479/1814 1517/2470/1750 1513/2480/1746 -f 1579/2481/1815 1523/2476/1754 1520/2469/1810 -f 1583/2482/1816 1531/2483/1763 1527/2475/1761 -f 1584/2484/1817 1513/2480/1746 1507/2478/1742 -f 1378/2233/1705 1525/2485/1756 1375/2234/1752 -f 1588/2486/1818 1515/2487/1748 1511/2488/1744 -f 1586/2489/1819 1510/2490/1739 1531/2483/1763 -f 1587/2491/1820 1529/2473/1759 1525/2485/1756 -f 1590/2492/1821 1511/2488/1744 1510/2490/1739 -f 1589/2493/1822 1376/2232/1823 1515/2487/1748 -f 1592/2494/1824 1594/2495/1825 1591/2496/1826 -f 1542/2497/1774 1595/2498/1827 1596/2499/1828 -f 1591/2496/1826 1598/2500/1829 1597/2501/1830 -f 1542/2497/1774 1599/2502/1831 1546/2503/1773 -f 1597/2501/1830 1601/2504/1832 1600/2505/1833 -f 1550/2506/1782 1599/2502/1831 1602/2507/1834 -f 1600/2505/1833 1604/2508/1835 1603/2509/1836 -f 1605/2510/1837 1602/2507/1834 1606/2511/1838 -f 1603/2509/1836 1607/2512/1839 1555/2513/1784 -f 1608/2514/1840 1606/2511/1838 1609/2515/1841 -f 1555/2513/1784 1610/2516/1842 1560/2517/1793 -f 1611/2518/1843 1609/2515/1841 1612/2519/1844 -f 1560/2517/1793 1613/2520/1845 1564/2521/1792 -f 1592/2494/1824 1612/2519/1844 1593/2522/1846 -f 1541/2523/1769 1613/2520/1845 1595/2498/1827 -f 1602/2524/1834 1596/2525/1828 1607/2526/1839 -f 1377/2422/1777 1559/2432/1787 1551/2423/1778 -f 1380/2236/1622 1381/2243/1629 1382/2237/1623 -f 1383/2239/1625 1384/2244/1630 1385/2240/1626 -f 1380/2236/1622 1387/2247/1633 1388/2242/1628 -f 1384/2244/1630 1389/2249/1635 1390/2245/1631 -f 1391/2246/1632 1392/2251/1637 1388/2242/1628 -f 1393/2248/1634 1394/2253/1639 1390/2245/1631 -f 1395/2250/1636 1396/2255/1641 1392/2251/1637 -f 1397/2252/1638 1398/2257/1643 1394/2253/1639 -f 1399/2254/1640 1400/2259/1645 1396/2255/1641 -f 1401/2256/1642 1402/2261/1647 1398/2257/1643 -f 1403/2258/1644 1404/2263/1649 1400/2259/1645 -f 1405/2260/1646 1406/2264/1650 1402/2261/1647 -f 1403/2258/1644 1407/2265/1651 1408/2262/1648 -f 1379/2238/1624 1382/2237/1623 1406/2264/1650 -f 1407/2265/1651 1383/2239/1625 1386/2241/1627 -f 1410/2266/1652 1411/2275/1662 1412/2267/1653 -f 1395/2250/1655 1391/2246/1655 1387/2247/1655 -f 1387/2247/1655 1380/2236/1655 1401/2256/1655 -f 1380/2236/1655 1379/2238/1655 1401/2256/1655 -f 1379/2238/1655 1405/2260/1655 1401/2256/1655 -f 1401/2256/1655 1397/2252/1655 1393/2248/1655 -f 1393/2248/1655 1389/2249/1655 1401/2256/1655 -f 1389/2249/1655 1384/2244/1655 1401/2256/1655 -f 1384/2244/1655 1383/2239/1655 1407/2265/1655 -f 1407/2265/1655 1403/2258/1655 1399/2254/1655 -f 1399/2254/1655 1395/2250/1655 1401/2256/1655 -f 1395/2250/1655 1387/2247/1655 1401/2256/1655 -f 1384/2244/1655 1407/2265/1655 1401/2256/1655 -f 1413/2269/1656 1414/2317/1656 1415/2270/1657 -f 1417/2272/1659 1416/2294/1680 1418/2273/1660 -f 1411/2275/1662 1420/2279/1666 1421/2276/1663 -f 1419/2274/1661 1418/2273/1660 1422/2277/1664 -f 1420/2279/1666 1424/2527/1847 1425/2280/1667 -f 1423/2278/1665 1422/2277/1664 1426/2281/1668 -f 1425/2280/1667 1424/2527/1847 1428/2283/1670 -f 1426/2281/1668 1430/2528/1848 1431/2285/1672 -f 1429/2284/1671 1428/2283/1670 1432/2286/1673 -f 1431/2285/1672 1430/2528/1848 1434/2288/1675 -f 1433/2287/1674 1432/2286/1673 1436/2290/1676 -f 1434/2288/1675 1438/2529/1849 1439/2292/1678 -f 1436/2290/1676 1413/2530/1850 1440/2293/1679 -f 1439/2292/1678 1438/2529/1849 1410/2266/1652 -f 1440/2293/1679 1413/2530/1850 1416/2294/1680 -f 1410/2295/1681 1441/2318/1681 1442/2296/1682 -f 1416/2271/1658 1415/2270/1657 1443/2298/1683 -f 1411/2297/1682 1442/2296/1682 1444/2300/1685 -f 1443/2298/1683 1445/2304/1686 1422/2302/1686 -f 1444/2300/1685 1446/2306/1687 1424/2303/1687 -f 1445/2304/1686 1447/2531/1688 1426/2305/1688 -f 1446/2306/1687 1448/2310/1689 1428/2307/1689 -f 1426/2305/1688 1447/2531/1688 1449/2308/1690 -f 1448/2310/1689 1450/2313/1694 1432/2311/1692 -f 1449/2308/1690 1451/2315/1696 1434/2312/1693 -f 1450/2313/1694 1452/2532/1695 1436/2314/1695 -f 1451/2315/1696 1453/2533/1697 1438/2316/1697 -f 1436/2314/1695 1452/2532/1695 1414/2317/1656 -f 1438/2316/1697 1453/2533/1697 1441/2318/1681 -f 1396/2319/1641 1454/2332/1703 1455/2320/1698 -f 1382/2322/1623 1456/2329/1701 1457/2323/1699 -f 1404/2325/1649 1458/2334/1704 1459/2326/1700 -f 1381/2328/1629 1460/2335/1705 1456/2329/1701 -f 1392/2321/1637 1455/2320/1698 1461/2330/1702 -f 1400/2327/1645 1459/2326/1700 1454/2332/1703 -f 1408/2333/1648 1462/2345/1709 1458/2334/1704 -f 1388/2331/1628 1461/2330/1702 1460/2335/1705 -f 1402/2336/1647 1463/2346/1710 1464/2337/1706 -f 1390/2339/1631 1465/2348/1712 1466/2340/1707 -f 1398/2338/1643 1464/2337/1706 1467/2342/1708 -f 1386/2344/1627 1468/2347/1711 1462/2345/1709 -f 1406/2324/1650 1457/2323/1699 1463/2346/1710 -f 1385/2341/1626 1466/2340/1707 1468/2347/1711 -f 1394/2343/1639 1467/2342/1708 1465/2348/1712 -f 1470/2349/1713 1471/2375/1732 1472/2350/1714 -f 1473/2352/1716 1474/2358/1720 1475/2353/1717 -f 1476/2355/1718 1470/2349/1713 1469/2351/1715 -f 1477/2357/1719 1478/2362/1723 1474/2358/1720 -f 1479/2359/1721 1476/2355/1718 1421/2356/1663 -f 1480/2361/1722 1481/2366/1726 1478/2362/1723 -f 1482/2363/1724 1479/2359/1721 1425/2360/1667 -f 1483/2365/1725 1484/2534/1851 1481/2366/1726 -f 1433/2367/1674 1485/2535/1852 1482/2363/1724 -f 1487/2368/1727 1484/2534/1851 1483/2365/1725 -f 1488/2370/1729 1485/2535/1852 1433/2367/1674 -f 1490/2372/1730 1487/2368/1727 1486/2369/1728 -f 1440/2374/1679 1491/2536/1853 1488/2370/1729 -f 1471/2375/1732 1490/2372/1730 1489/2373/1731 -f 1475/2353/1717 1491/2536/1853 1440/2374/1679 -f 1504/2537/1854 1479/2538/1855 1492/2539/1856 -f 1492/2539/1856 1493/2540/1857 1494/2541/1858 -f 1494/2541/1858 1495/2542/1859 1492/2539/1856 -f 1495/2542/1859 1475/2543/1860 1492/2539/1856 -f 1475/2543/1860 1496/2544/1861 1497/2545/1862 -f 1497/2545/1862 1498/2546/1863 1499/2376/1733 -f 1499/2376/1733 1500/2547/1864 1501/2377/1734 -f 1501/2377/1734 1502/2548/1865 1503/2378/1735 -f 1503/2378/1735 1504/2537/1854 1475/2543/1860 -f 1504/2537/1854 1492/2539/1856 1475/2543/1860 -f 1475/2543/1860 1497/2545/1862 1503/2378/1735 -f 1497/2545/1862 1499/2376/1733 1503/2378/1735 -f 1506/2379/1736 1507/2385/1742 1508/2380/1737 -f 1510/2382/1739 1511/2387/1744 1512/2383/1740 -f 1507/2385/1742 1513/2389/1746 1514/2386/1743 -f 1511/2387/1744 1515/2391/1748 1516/2388/1745 -f 1513/2389/1746 1517/2393/1750 1518/2390/1747 -f 1515/2391/1748 1376/2549/1823 1519/2392/1749 -f 1517/2393/1750 1520/2550/1810 1521/2394/1751 -f 1519/2392/1749 1376/2549/1823 1375/2395/1752 -f 1521/2394/1751 1520/2550/1810 1523/2397/1754 -f 1522/2396/1753 1375/2395/1752 1525/2399/1756 -f 1523/2397/1754 1527/2404/1761 1528/2401/1758 -f 1526/2400/1757 1525/2399/1756 1529/2402/1759 -f 1527/2404/1761 1531/2406/1763 1532/2405/1762 -f 1530/2403/1760 1529/2402/1759 1506/2379/1736 -f 1531/2406/1763 1510/2382/1739 1509/2384/1741 -f 1533/2407/1764 1534/2416/1771 1535/2408/1765 -f 1514/2386/1655 1518/2390/1655 1521/2394/1655 -f 1521/2394/1655 1524/2398/1655 1528/2401/1655 -f 1528/2401/1655 1532/2405/1655 1521/2394/1655 -f 1532/2405/1655 1509/2384/1655 1521/2394/1655 -f 1509/2384/1655 1512/2383/1655 1522/2396/1655 -f 1512/2383/1655 1516/2388/1655 1522/2396/1655 -f 1516/2388/1655 1519/2392/1655 1522/2396/1655 -f 1522/2396/1655 1526/2400/1655 1508/2380/1655 -f 1526/2400/1655 1530/2403/1655 1508/2380/1655 -f 1530/2403/1655 1505/2381/1655 1508/2380/1655 -f 1508/2380/1655 1514/2386/1655 1521/2394/1655 -f 1508/2380/1655 1521/2394/1655 1522/2396/1655 -f 1537/2410/1767 1538/2445/1768 1539/2411/1768 -f 1541/2413/1769 1542/2419/1774 1543/2414/1670 -f 1534/2416/1771 1544/2421/1776 1545/2417/1772 -f 1546/2418/1773 1547/2424/1779 1543/2414/1670 -f 1548/2420/1775 1549/2426/1781 1545/2417/1772 -f 1547/2424/1779 1546/2418/1773 1377/2422/1777 -f 1546/2418/1773 1550/2427/1782 1377/2422/1777 -f 1548/2420/1775 1552/2430/1785 1553/2425/1780 -f 1550/2427/1782 1554/2551/1866 1378/2428/1783 -f 1555/2429/1784 1556/2434/1789 1553/2425/1780 -f 1378/2428/1783 1554/2551/1866 1557/2436/1791 -f 1557/2436/1791 1558/2431/1786 1378/2428/1783 -f 1555/2429/1784 1560/2438/1793 1561/2433/1788 -f 1562/2435/1790 1563/2439/1794 1558/2431/1786 -f 1564/2437/1792 1537/2440/1676 1561/2433/1788 -f 1562/2435/1790 1533/2407/1764 1536/2409/1766 -f 1564/2437/1792 1541/2413/1769 1538/2415/1770 -f 1535/2441/1795 1565/2447/1795 1566/2442/1796 -f 1543/2444/1797 1567/2449/1797 1539/2411/1768 -f 1545/2446/1798 1568/2451/1801 1565/2447/1795 -f 1547/2448/1799 1569/2453/1799 1567/2449/1797 -f 1549/2450/1800 1570/2455/1800 1568/2451/1801 -f 1551/2452/1802 1571/2457/1802 1569/2453/1799 -f 1553/2454/1803 1572/2459/1803 1570/2455/1800 -f 1551/2452/1802 1559/2460/1804 1573/2456/1804 -f 1556/2458/1805 1574/2463/1805 1572/2459/1803 -f 1559/2460/1804 1558/2465/1806 1575/2461/1806 -f 1556/2458/1805 1561/2466/1807 1576/2462/1807 -f 1563/2464/1808 1577/2467/1808 1575/2461/1806 -f 1561/2466/1807 1537/2410/1767 1540/2412/1767 -f 1536/2443/1796 1566/2442/1796 1577/2467/1808 -f 1578/2468/1809 1579/2481/1815 1520/2469/1810 -f 1580/2471/1811 1581/2477/1813 1506/2472/1736 -f 1582/2474/1812 1583/2482/1816 1527/2475/1761 -f 1581/2477/1813 1584/2484/1817 1507/2478/1742 -f 1585/2479/1814 1578/2468/1809 1517/2470/1750 -f 1579/2481/1815 1582/2474/1812 1523/2476/1754 -f 1583/2482/1816 1586/2489/1819 1531/2483/1763 -f 1584/2484/1817 1585/2479/1814 1513/2480/1746 -f 1378/2233/1705 1587/2491/1820 1525/2485/1756 -f 1588/2486/1818 1589/2493/1822 1515/2487/1748 -f 1586/2489/1819 1590/2492/1821 1510/2490/1739 -f 1587/2491/1820 1580/2471/1811 1529/2473/1759 -f 1590/2492/1821 1588/2486/1818 1511/2488/1744 -f 1589/2493/1822 1377/2235/1698 1376/2232/1823 -f 1592/2494/1824 1593/2522/1846 1594/2495/1825 -f 1542/2497/1774 1541/2523/1769 1595/2498/1827 -f 1591/2496/1826 1594/2495/1825 1598/2500/1829 -f 1542/2497/1774 1596/2499/1828 1599/2502/1831 -f 1597/2501/1830 1598/2500/1829 1601/2504/1832 -f 1550/2506/1782 1546/2503/1773 1599/2502/1831 -f 1600/2505/1833 1601/2504/1832 1604/2508/1835 -f 1605/2510/1837 1550/2506/1782 1602/2507/1834 -f 1603/2509/1836 1604/2508/1835 1607/2512/1839 -f 1608/2514/1840 1605/2510/1837 1606/2511/1838 -f 1555/2513/1784 1607/2512/1839 1610/2516/1842 -f 1611/2518/1843 1608/2514/1840 1609/2515/1841 -f 1560/2517/1793 1610/2516/1842 1613/2520/1845 -f 1592/2494/1824 1611/2518/1843 1612/2519/1844 -f 1541/2523/1769 1564/2521/1792 1613/2520/1845 -f 1621/2552/1867 1614/2553/1868 1615/2554/1869 -f 1615/2554/1869 1616/2555/1870 1617/2556/1871 -f 1617/2556/1871 1618/2557/1872 1619/2558/1873 -f 1619/2558/1873 1620/2559/1874 1602/2524/1834 -f 1602/2524/1834 1599/2560/1831 1596/2525/1828 -f 1596/2525/1828 1595/2561/1827 1613/2562/1845 -f 1613/2562/1845 1610/2563/1842 1596/2525/1828 -f 1610/2563/1842 1607/2526/1839 1596/2525/1828 -f 1607/2526/1839 1621/2552/1867 1619/2558/1873 -f 1621/2552/1867 1615/2554/1869 1619/2558/1873 -f 1615/2554/1869 1617/2556/1871 1619/2558/1873 -f 1619/2558/1873 1602/2524/1834 1607/2526/1839 -f 1377/2422/1777 1378/2428/1783 1559/2432/1787 -o Body_Cube.008 -v 2.058865 0.008545 0.489725 -v 2.673860 0.093340 0.483760 -v 3.330410 0.105400 0.470930 -v 3.282615 0.207035 0.470930 -v 0.392600 0.171185 0.509985 -v 0.393350 -0.080220 0.514135 -v 0.574765 -0.077640 0.511255 -v 0.670855 -0.054630 0.510570 -v 0.785515 0.015695 0.508550 -v 0.138370 -0.027100 0.441435 -v 0.178065 -0.016290 0.461765 -v 0.134400 -0.019415 0.541340 -v 0.113040 -0.067610 0.547560 -v 0.126585 -0.109565 0.473445 -v 0.154890 -0.088255 0.438770 -v -0.562595 0.128280 0.249705 -v -0.051470 0.127655 0.245610 -v -0.209670 0.128575 0.249675 -v -0.384190 0.128785 0.242245 -v -0.120600 0.128655 0.245390 -v 4.180090 0.482650 0.443330 -v 4.180090 0.489295 0.388390 -v 4.342950 0.489295 0.388390 -v 4.342950 0.482650 0.443330 -v 4.170735 0.359620 -0.061350 -v 4.170735 0.305525 -0.049675 -v 4.170735 0.260855 -0.017005 -v 4.180090 0.454235 0.490820 -v 4.342950 0.454235 0.490820 -v 4.170735 0.413790 -0.050015 -v 4.180090 0.408965 0.522650 -v 4.342950 0.408965 0.522650 -v 4.170735 0.486485 0.030210 -v 4.170735 0.458665 -0.017630 -v 4.170735 0.492445 0.085230 -v 4.342950 0.300710 0.520960 -v 4.342950 0.256450 0.487735 -v 4.180090 0.256450 0.487735 -v 4.180090 0.300710 0.520960 -v 4.342950 0.331095 0.269640 -v 4.180090 0.331095 0.269640 -v 4.180090 0.280195 0.291355 -v 4.342950 0.280195 0.291355 -v 4.180090 0.473015 0.335495 -v 4.180090 0.436630 0.293795 -v 4.342950 0.436630 0.293795 -v 4.342950 0.473015 0.335495 -v 4.342950 0.229530 0.439385 -v 4.180090 0.229530 0.439385 -v 4.342950 0.242525 0.331900 -v 4.180090 0.242525 0.331900 -v 4.180090 0.386430 0.270500 -v 4.342950 0.386430 0.270500 -v 4.170735 0.388120 0.201830 -v 4.170735 0.332780 0.202005 -v 4.170735 0.282155 0.179655 -v 4.170735 0.227725 0.086070 -v 4.170735 0.233335 0.031010 -v 4.170735 0.475510 0.137920 -v 4.170735 0.438610 0.179165 -v 3.230815 0.304460 -0.127470 -v 2.740580 0.304460 -0.132795 -v 2.740400 0.447215 -0.105020 -v 3.230805 0.447215 -0.099690 -v 2.741100 0.437820 -0.082130 -v 3.230975 0.437820 -0.076805 -v 0.565675 -0.077665 -0.015260 -v 0.392600 -0.080485 -0.016085 -v 0.394100 0.177180 -0.017905 -v 3.458050 0.209620 0.025065 -v 3.390435 0.144685 0.025065 -v 3.330410 0.105400 0.025065 -v 2.672975 0.094600 0.012235 -v 2.058930 0.009995 0.006275 -v 0.786445 0.016355 -0.012520 -v 0.671215 -0.054830 -0.013890 -v 3.231130 0.304460 0.600980 -v 2.741100 0.304460 0.616220 -v 2.739370 0.175170 0.479620 -v 3.229445 0.182610 0.466775 -v 3.413345 0.123170 0.247995 -v 3.464210 0.187235 0.247995 -v 3.458050 0.209620 0.454655 -v 3.390435 0.144685 0.470930 -v -0.852790 0.673230 0.230585 -v -0.891025 0.676995 0.229945 -v -0.891370 0.677045 0.242310 -v -0.891370 0.677045 0.256240 -v -0.852795 0.673310 0.254585 -v 0.223945 0.360335 0.213285 -v -0.717385 0.360220 0.213140 -v -0.698995 0.677045 0.203685 -v -0.698995 0.702735 0.203685 -v 0.223945 0.698555 0.213285 -v 3.330410 0.099365 0.247995 -v 2.672915 0.081820 0.248000 -v 2.059075 -0.002170 0.248000 -v 0.839565 -0.040465 0.248000 -v 0.835695 0.007540 0.117740 -v 2.736635 0.182610 0.001360 -v 2.736080 0.165620 0.026615 -v 2.736335 0.188565 0.046940 -v 2.736890 0.205560 0.021685 -v 2.737570 0.223440 -0.029490 -v 2.739620 0.283955 -0.087745 -v 2.740635 0.371465 -0.104050 -v 0.724715 -0.072450 0.248000 -v 0.835695 0.007535 0.378260 -v 0.619360 -0.095280 0.247995 -v 4.364625 0.332780 0.202005 -v 4.364625 0.282155 0.179655 -v 4.364625 0.388120 0.201830 -v 4.364625 0.438610 0.179165 -v 4.364625 0.475510 0.137920 -v 4.364625 0.492445 0.085230 -v 4.364625 0.486485 0.030210 -v 4.364625 0.458665 -0.017630 -v 4.364625 0.413790 -0.050015 -v 4.364625 0.359620 -0.061350 -v 4.364625 0.305525 -0.049675 -v 4.364625 0.260855 -0.017005 -v 4.364625 0.233335 0.031010 -v 4.364625 0.227725 0.086070 -v 4.364625 0.244990 0.138645 -v 4.362570 0.451770 0.200855 -v 4.364625 0.500670 0.152340 -v 4.364625 0.514040 0.021160 -v 4.364625 0.521300 0.088170 -v 4.364625 0.394240 0.230180 -v 4.364625 0.326840 0.230395 -v 4.364625 0.265180 0.203175 -v 4.364625 0.219920 0.153225 -v 4.364625 0.198890 0.089190 -v 4.364625 0.205725 0.022135 -v 4.364625 0.239240 -0.036340 -v 4.364625 0.293645 -0.076130 -v 4.364625 0.359530 -0.090355 -v 4.364625 0.425500 -0.076550 -v 4.364625 0.480155 -0.037105 -v 4.195850 0.500670 0.152340 -v 4.195850 0.455730 0.202570 -v 4.195850 0.239240 -0.036340 -v 4.195850 0.205725 0.022135 -v 4.195850 0.521300 0.088170 -v 4.195850 0.198890 0.089190 -v 4.195850 0.514040 0.021160 -v 4.195850 0.219920 0.153225 -v 4.195850 0.480155 -0.037105 -v 4.195850 0.265180 0.203175 -v 4.195850 0.425500 -0.076550 -v 4.195850 0.326840 0.230395 -v 4.195850 0.359530 -0.090355 -v 4.195850 0.394240 0.230180 -v 4.195850 0.293645 -0.076130 -v 4.178015 0.245400 -0.030830 -v 4.178015 0.297030 -0.068590 -v 4.178015 0.493500 0.148230 -v 4.178015 0.450850 0.195900 -v 4.178015 0.213595 0.024665 -v 4.178015 0.513075 0.087335 -v 4.178015 0.207110 0.088300 -v 4.178015 0.506185 0.023740 -v 4.178015 0.227065 0.149070 -v 4.178015 0.474030 -0.031550 -v 4.178015 0.270015 0.196470 -v 4.178015 0.422165 -0.068985 -v 4.178015 0.328535 0.222305 -v 4.180090 0.417100 0.541720 -v 4.180090 0.354335 0.554040 -v 4.180090 0.291980 0.539770 -v 4.197920 0.288505 0.547270 -v 4.197920 0.354205 0.562310 -v 4.197920 0.420345 0.549325 -v 4.178015 0.392500 0.222100 -v 0.007240 0.407955 0.229040 -v 0.007240 0.485215 0.194350 -v 0.007240 0.213195 -0.105845 -v 0.007240 0.281555 -0.155840 -v 0.006360 0.539890 0.129590 -v 0.007240 0.171085 -0.032370 -v 0.006360 0.566045 0.049095 -v 0.006360 0.161195 0.049095 -v 0.007240 0.558480 -0.033590 -v 0.006360 0.187350 0.129590 -v 0.007240 0.515905 -0.106800 -v 0.007240 0.245790 0.195105 -v 0.007240 0.447230 -0.156365 -v 0.007240 0.323265 0.229305 -v 4.178015 0.359555 -0.082085 -v 0.007240 0.364340 -0.173710 -v -0.040340 0.154190 -0.037800 -v -0.040340 0.144855 0.053795 -v -0.040340 0.364280 -0.191455 -v -0.040340 0.274285 -0.172030 -v -0.040340 0.411700 0.246385 -v -0.040340 0.495690 0.208675 -v -0.040340 0.454400 -0.172600 -v -0.040340 0.529055 -0.118715 -v -0.040340 0.199970 -0.117675 -v -0.040340 0.319630 0.246675 -v -0.040340 0.235405 0.209495 -v -0.040340 0.575340 -0.039130 -v -0.040340 0.585255 0.052405 -v -0.040340 0.173580 0.141270 -v -0.040340 0.557080 0.140060 -v -0.676610 0.235405 0.209495 -v -0.708885 0.256135 0.180770 -v -0.708885 0.204200 0.123460 -v -0.676610 0.173580 0.141270 -v -0.676610 0.557080 0.140060 -v -0.676610 0.585255 0.052405 -v -0.708885 0.550015 0.048815 -v -0.708885 0.526345 0.122445 -v -0.676610 0.154190 -0.037800 -v -0.676610 0.144855 0.053795 -v -0.708885 0.180070 0.049985 -v -0.708885 0.187910 -0.026960 -v -0.676610 0.364280 -0.191455 -v -0.676610 0.274285 -0.172030 -v -0.708885 0.288795 -0.139715 -v -0.708885 0.364395 -0.156035 -v -0.676610 0.411700 0.246385 -v -0.676610 0.495690 0.208675 -v -0.708885 0.474780 0.180080 -v -0.708885 0.404225 0.211760 -v -0.676610 0.454400 -0.172600 -v -0.708885 0.440095 -0.140190 -v -0.708885 0.502805 -0.094930 -v -0.676610 0.529055 -0.118715 -v -0.676610 0.199970 -0.117675 -v -0.708885 0.226370 -0.094060 -v -0.676610 0.319630 0.246675 -v -0.708885 0.326885 0.212005 -v -0.676610 0.575340 -0.039130 -v -0.708885 0.541685 -0.028075 -v 4.180090 0.209710 0.445480 -v 4.180090 0.204020 0.381770 -v 4.180090 0.224730 0.321255 -v 4.180090 0.268270 0.274390 -v 4.180090 0.327100 0.249290 -v 4.180090 0.391060 0.250285 -v 4.180090 0.449080 0.277210 -v 4.180090 0.491135 0.325410 -v 4.180090 0.509950 0.386545 -v 4.180090 0.502270 0.450045 -v 4.180090 0.469430 0.504935 -v 4.180090 0.240825 0.501370 -v 4.366700 0.408965 0.522650 -v 4.366700 0.354655 0.533310 -v 4.342950 0.354655 0.533310 -v 4.366700 0.454235 0.490820 -v 4.366700 0.482650 0.443330 -v 4.366700 0.489295 0.388390 -v 4.366700 0.473015 0.335495 -v 4.366700 0.436630 0.293795 -v 4.366700 0.386430 0.270500 -v 4.366700 0.331095 0.269640 -v 4.366700 0.242525 0.331900 -v 4.366700 0.280195 0.291355 -v 4.366700 0.325510 0.241180 -v 4.366700 0.392900 0.242230 -v 4.366700 0.454040 0.270600 -v 4.366700 0.498355 0.321385 -v 4.366700 0.518180 0.385810 -v 4.366700 0.510090 0.452720 -v 4.366700 0.475485 0.510560 -v 4.366700 0.420345 0.549325 -v 4.366700 0.354205 0.562310 -v 4.366700 0.288505 0.547270 -v 4.366700 0.234600 0.506805 -v 4.366700 0.201810 0.447915 -v 4.366700 0.229530 0.439385 -v 4.366700 0.256450 0.487735 -v 4.366700 0.300710 0.520960 -v 4.366700 0.217640 0.317010 -v 4.366700 0.263515 0.267630 -v 4.197920 0.510090 0.452720 -v 4.197920 0.475485 0.510560 -v 4.197920 0.518180 0.385810 -v 4.197920 0.195810 0.380780 -v 4.366700 0.195810 0.380780 -v 4.197920 0.201810 0.447915 -v 4.197920 0.498355 0.321385 -v 4.197920 0.234600 0.506805 -v 0.009310 0.440610 0.273410 -v 0.009310 0.508845 0.323570 -v -0.038265 0.357970 0.237595 -v 0.009310 0.357870 0.255340 -v 0.009310 0.274935 0.272485 -v -0.038265 0.267805 0.256235 -v -0.038265 0.401560 0.675835 -v 0.009310 0.397965 0.658455 -v 0.009310 0.475525 0.624440 -v -0.038265 0.485875 0.638855 -v -0.038265 0.447920 0.257240 -v -0.038265 0.522100 0.311770 -v 0.009310 0.206140 0.321880 -v -0.038265 0.193020 0.309935 -v -0.038265 0.309490 0.675320 -v -0.038265 0.225590 0.637405 -v 0.009310 0.236100 0.623105 -v 0.009310 0.313275 0.657980 -v -0.038265 0.567690 0.391760 -v -0.038880 0.577395 0.478745 -v 0.009310 0.559165 0.481425 -v 0.009310 0.550780 0.397150 -v -0.038265 0.164370 0.568640 -v -0.038290 0.142720 0.480880 -v 0.009290 0.160380 0.479125 -v 0.009310 0.179785 0.559850 -v 0.009310 0.163385 0.394985 -v -0.038265 0.146540 0.389410 -v 0.223945 0.360335 0.270950 -v 0.223945 0.698555 0.270950 -v -0.698995 0.677045 0.280935 -v -0.713420 0.677045 0.281275 -v -0.724000 0.677045 0.270200 -v -0.698260 0.677045 0.270165 -v -0.683835 0.677045 0.280935 -v -0.674535 0.547860 0.570780 -v -0.674535 0.576800 0.483375 -v -0.706810 0.541595 0.479475 -v -0.706810 0.517285 0.552895 -v -0.038265 0.547860 0.570780 -v 0.009310 0.532545 0.561820 -v -0.674535 0.267805 0.256235 -v -0.674535 0.193020 0.309935 -v -0.674535 0.146540 0.389410 -v -0.674535 0.522100 0.311770 -v -0.706810 0.495645 0.335325 -v -0.706810 0.533940 0.402520 -v -0.674535 0.567690 0.391760 -v -0.674535 0.136405 0.480920 -v 0.022125 0.144980 -0.017650 -v 0.013935 0.124255 0.035585 -v -0.029825 0.138110 -0.017455 -v -0.724000 0.702755 0.270200 -v -0.723905 0.702565 0.214465 -v -0.723905 0.677045 0.214465 -v -0.698995 0.702565 0.214450 -v -0.713420 0.702755 0.281275 -v -0.698995 0.702755 0.280935 -v -0.682190 0.702500 0.270165 -v -0.698995 0.721865 0.270165 -v -0.698995 0.721865 0.214450 -v -0.682190 0.702500 0.214450 -v 0.105790 0.058300 0.543285 -v 0.034515 0.015045 0.557815 -v -0.742550 0.562905 0.253960 -v -0.742560 0.562905 0.230200 -v -0.783090 0.623565 0.230200 -v -0.783085 0.623565 0.253960 -v 0.394655 0.634610 0.354165 -v 1.377795 0.573070 0.354165 -v 1.377795 0.573070 0.123000 -v 0.399265 0.635145 0.122820 -v 0.394655 0.634610 0.180790 -v 4.366700 0.224605 0.384260 -v 4.344025 0.224605 0.384260 -v 0.062220 -0.008880 -0.049130 -v 0.075095 -0.006435 -0.066495 -v 0.083035 -0.004925 -0.047555 -v -0.083095 -0.075645 0.547500 -v 0.017190 -0.132010 0.541425 -v -0.051460 0.128785 0.417480 -v -0.716920 0.128785 0.417480 -v -0.716930 0.127980 0.249725 -v 0.091810 0.038815 -0.066800 -v 0.069300 0.050125 -0.068585 -v 0.074560 0.050670 -0.038160 -v 0.089745 0.043035 -0.047130 -v -0.716935 0.158490 0.270220 -v -0.717170 0.245295 0.270220 -v -0.717380 0.360290 0.271120 -v -0.717180 0.245220 0.214290 -v -0.716940 0.158490 0.214290 -v -0.861115 0.676775 0.256250 -v -0.717695 0.360455 0.253960 -v -0.717705 0.360455 0.230200 -v -0.716925 0.175790 0.346400 -v -0.051465 0.175790 0.346400 -v -0.052340 0.233305 0.279300 -v -0.051280 0.245295 0.270220 -v -0.717110 0.237030 0.281965 -v -0.697150 0.677045 0.214450 -v -0.713420 0.702565 0.203890 -v -0.713420 0.677045 0.203890 -v -0.004435 0.056310 0.555570 -v 0.047670 0.100545 0.541920 -v -0.891370 0.677045 0.270165 -v -0.890945 0.689795 0.270165 -v -0.890945 0.689795 0.214450 -v -0.891370 0.677045 0.214450 -v -0.860045 0.718915 0.214450 -v -0.883215 0.702540 0.214450 -v -0.883215 0.702540 0.270165 -v -0.860045 0.718915 0.270165 -v -0.700370 0.358125 0.217390 -v -0.658910 0.677120 0.217390 -v -0.675905 0.679330 0.213285 -v -0.692260 0.491930 0.180125 -v -0.675260 0.489720 0.184230 -v -0.676150 0.679330 0.270950 -v -0.657940 0.676975 0.267500 -v -0.699155 0.357985 0.267500 -v -0.695210 0.490040 0.303080 -v -0.676310 0.487690 0.299625 -v -0.042160 -0.122055 0.535200 -v -0.044955 -0.148585 0.461395 -v 0.020830 -0.162530 0.469570 -v -0.109810 -0.098565 0.467555 -v -0.132735 -0.029505 0.463085 -v -0.107600 -0.018335 0.540380 -v 0.084295 -0.144885 0.464450 -v 0.082655 -0.113985 0.537665 -v 0.127325 0.080690 0.469475 -v 0.074595 0.120555 0.464835 -v -0.045195 -0.142250 0.014370 -v -0.092650 -0.106265 0.015875 -v -0.046835 -0.109730 -0.051490 -v -0.022600 -0.129390 -0.036905 -v 0.165000 -0.080000 0.496370 -v 0.008400 -0.084435 0.058995 -v -0.048585 -0.117430 0.039105 -v 0.017185 -0.140925 0.032915 -v 0.012790 0.126650 0.012390 -v -0.027525 0.108890 0.031370 -v 0.031225 0.112710 0.033820 -v -0.081140 -0.028710 0.050880 -v 0.011070 -0.154800 0.012905 -v -0.023860 0.057650 0.055195 -v -0.029825 -0.013960 0.062415 -v 0.046220 -0.001865 -0.044115 -v 0.057805 -0.004260 -0.068795 -v 0.054910 0.051040 -0.044760 -v 0.040370 0.043125 -0.064540 -v -0.115375 -0.028465 0.032790 -v -0.077155 0.067170 0.037230 -v -0.075100 0.095790 0.012170 -v -0.110705 0.052065 0.015005 -v -0.026435 0.121110 0.010285 -v -0.126255 0.000025 0.011670 -v -0.121605 -0.053240 0.011495 -v 0.067885 -0.006920 0.564280 -v 0.096310 0.021415 0.562155 -v 0.047430 0.042840 0.564145 -v 0.058595 -0.007895 0.532095 -v 0.081965 -0.003960 0.534465 -v 0.095440 0.027620 0.528840 -v 0.076485 0.053900 0.558955 -v 0.063585 0.015610 0.514290 -v 0.033575 0.019305 0.533080 -v 0.056775 0.049130 0.526295 -v -0.089910 0.027935 -0.051705 -v -0.099590 -0.027295 -0.050280 -v -0.047110 0.080820 -0.051815 -v -0.012195 0.104335 -0.035080 -v -0.079380 -0.071070 -0.053115 -v 0.011680 0.096930 -0.054090 -v 0.077890 0.079595 -0.052740 -v 0.083090 -0.003305 -0.063910 -v -0.020105 0.017355 -0.066385 -v -0.049820 -0.053265 -0.063240 -v 0.056600 0.097665 -0.039615 -v 0.122165 0.025410 -0.048155 -v 0.103800 0.094875 0.009540 -v 0.140130 0.049040 0.013925 -v 0.127035 -0.028720 -0.050765 -v 0.012995 -0.126275 -0.052480 -v 0.057135 -0.121480 -0.047145 -v 0.153610 -0.002760 0.018925 -v 0.149225 -0.053515 0.015770 -v 0.064685 -0.144675 0.017260 -v 0.114810 -0.114415 0.010715 -v 0.118140 -0.073335 -0.037080 -v 0.053755 0.121155 0.011670 -v 0.096240 -0.105665 0.037065 -v 0.094350 0.090950 0.029775 -v 0.106560 -0.050570 0.049655 -v 0.067275 0.078170 0.045920 -v 0.119515 0.027970 0.041535 -v 0.068255 0.018555 0.059225 -v 0.038160 0.028190 -0.068445 -v 0.076265 0.014935 -0.074005 -v 0.040105 0.037445 -0.039210 -v 0.036620 0.015810 -0.041265 -v 0.006360 0.161195 0.432780 -v -0.029825 0.148105 0.431405 -v -0.034130 0.144220 0.504610 -v 0.006360 0.169765 0.514325 -v 3.226815 0.175170 0.009085 -v 3.231205 0.371465 -0.098720 -v 3.230565 0.283955 -0.082410 -v 3.229265 0.223440 -0.024150 -v 3.227125 0.196510 0.024425 -v 3.226570 0.179515 0.049680 -v 3.226265 0.158175 0.034340 -v -0.036935 0.097550 0.539645 -v -0.089940 0.040290 0.541675 -v 0.040000 -0.067210 -0.065120 -v -0.098195 0.082935 0.466185 -v -0.126605 0.030885 0.467240 -v 0.089175 -0.095900 -0.052720 -v -0.071165 -0.057775 0.427140 -v 0.031670 -0.122870 0.433040 -v 0.152155 -0.013960 0.035585 -v 0.141630 0.049655 0.032785 -v 0.161215 0.047365 -0.015720 -v 0.173470 -0.013960 -0.016090 -v 0.096075 0.028790 -0.041545 -v 0.095460 0.012925 -0.064950 -v 0.013935 0.018470 0.063785 -v 0.046365 -0.013960 0.063785 -v 0.013935 -0.046395 0.063785 -v 0.006360 0.187350 0.352290 -v 0.006360 0.243980 0.289390 -v -0.029825 0.236245 0.278745 -v -0.029825 0.175950 0.345710 -v -0.029825 0.103585 0.042215 -v 0.013935 0.078395 0.053885 -v -0.029825 0.049655 0.057165 -v -0.029825 -0.080485 0.056520 -v 0.043595 -0.080485 0.058225 -v 0.392600 0.191195 0.132015 -v 0.392600 0.246590 0.193540 -v 0.392600 0.293860 0.214585 -v 0.392600 0.293860 0.266340 -v 0.392600 0.246590 0.287385 -v 0.392600 0.188865 0.348910 -v 0.392600 0.163230 0.427650 -v 0.392600 0.165610 0.053280 -v 0.046685 -0.086170 0.435155 -v -0.010530 0.081935 0.440555 -v -0.023315 -0.080485 0.439965 -v 0.109030 -0.013960 0.444065 -v 0.173595 0.019310 0.510530 -v 0.041700 0.081135 0.445155 -v 0.118910 0.106770 0.506135 -v 0.158440 -0.080485 -0.015730 -v 0.111670 0.103585 -0.017175 -v 0.141630 -0.077580 0.032785 -v 0.058915 0.103585 0.042065 -v 0.064805 0.137095 -0.017570 -v 0.099260 0.049655 0.049685 -v 0.104515 -0.046395 0.052825 -v 0.127730 0.655065 0.037265 -v -0.676170 0.659380 0.037265 -v -0.676170 0.659380 0.443465 -v 0.127730 0.659380 0.443465 -v 0.395250 0.651810 0.355845 -v 0.399340 0.652125 0.122105 -v -0.716920 0.128785 0.067010 -v -0.051460 0.128785 0.067010 -v -0.676170 0.567025 0.484450 -v 0.006360 0.560605 0.463385 -v 0.395250 0.538505 0.355845 -v 0.395250 0.554025 0.297105 -v 0.395410 0.528770 0.265530 -v 0.395645 0.473865 0.265530 -v 0.395695 0.402130 0.270680 -v 0.395695 0.388815 0.270680 -v 0.395695 0.388815 0.230305 -v 0.395695 0.402130 0.230305 -v 0.396090 0.474150 0.206365 -v 0.398025 0.530440 0.206365 -v 0.399340 0.554025 0.175890 -v 0.398660 0.541175 0.122985 -v -0.051070 0.360290 0.271120 -v -0.693460 0.387345 0.242660 -v -0.685305 0.682850 0.252920 -v -0.861025 0.676685 0.229980 -v 0.016310 0.143005 0.508820 -v 0.008555 0.129750 0.249555 -v 4.364730 0.198530 0.247425 -v 4.364820 0.195775 0.411995 -v -0.048720 0.128825 0.249725 -v 4.170735 0.244990 0.138645 -v 4.365470 0.494620 0.354165 -v 4.365245 0.530470 0.354165 -v -0.029825 0.148105 0.050470 -v -0.029825 0.175950 0.136170 -v -0.029825 0.236245 0.203135 -v -0.029825 0.293860 0.228785 -v 0.006360 0.293860 0.214695 -v 4.180090 0.354655 0.533310 -v -0.716920 0.150090 0.067010 -v -0.716935 0.181195 0.134485 -v -0.051475 0.168595 0.139885 -v -0.051460 0.147525 0.067010 -v -0.051460 0.235955 0.206530 -v 3.230145 0.447215 0.573220 -v 3.228340 0.205560 0.446480 -v 3.229805 0.223440 0.497640 -v 3.230200 0.283955 0.555925 -v 3.229870 0.371465 0.572260 -v 3.228485 0.437820 0.550380 -v 2.739945 0.447215 0.588465 -v 2.738815 0.437820 0.565610 -v 4.180090 0.224605 0.384260 -v -0.051460 0.149245 0.417480 -v 4.364820 0.206515 0.411995 -v 4.197920 0.217640 0.317010 -v 4.197920 0.392900 0.242230 -v 4.197920 0.454040 0.270600 -v 4.197920 0.263515 0.267630 -v 4.197920 0.325510 0.241180 -v -0.674535 0.164370 0.568640 -v -0.706810 0.195145 0.551100 -v -0.706810 0.171655 0.477415 -v -0.674535 0.447920 0.257240 -v -0.706810 0.433330 0.289515 -v -0.706810 0.180170 0.400545 -v -0.706810 0.219210 0.333780 -v -0.674535 0.357970 0.237595 -v -0.706810 0.357770 0.273015 -v -0.674535 0.309490 0.675320 -v -0.706810 0.317050 0.640715 -v -0.706810 0.246570 0.608860 -v -0.674535 0.225590 0.637405 -v -0.706810 0.282035 0.288675 -v -0.674535 0.401560 0.675835 -v -0.674535 0.485875 0.638855 -v -0.706810 0.465215 0.610080 -v -0.706810 0.394385 0.641145 -v 4.362695 0.206515 0.061420 -v 4.364820 0.195775 0.061525 -v -0.029825 0.293860 0.253090 -v 0.006360 0.293860 0.267180 -v 0.093045 0.010040 -0.040715 -v -0.040725 0.122895 0.469605 -v 0.006360 0.168045 -0.016085 -v -0.029825 0.148315 -0.016085 -v -0.676170 0.577715 0.006185 -v -0.676170 0.414000 0.240940 -v -0.676170 0.492930 0.276080 -v -0.676170 0.533920 0.356505 -v -0.676170 0.562190 0.432620 -v -0.716920 0.149245 0.417480 -v 2.739510 0.371465 0.587515 -v 2.739465 0.283955 0.571190 -v 2.738320 0.223440 0.512930 -v 2.738420 0.196510 0.464305 -v 4.362570 0.484075 0.122225 -v 4.365245 0.530470 0.123000 -v 0.005790 0.565215 0.030850 -v -0.038880 0.577715 0.006185 -v 4.365245 0.491635 0.317220 -v 4.365245 0.450360 0.273505 -v 4.364820 0.330590 0.245525 -v 4.364820 0.268900 0.269060 -v 4.364820 0.224715 0.313830 -v 4.364820 0.202870 0.373835 -v 4.362485 0.204060 0.095365 -v 4.359380 0.227565 0.159980 -v 4.359380 0.270300 0.203860 -v 4.359400 0.331630 0.224605 -v 4.362570 0.495165 0.155740 -v -0.051285 0.245220 0.214290 -v -0.051080 0.360220 0.213140 -v 4.170735 0.359620 -0.061350 -v 4.170735 0.305525 -0.049675 -v 4.340880 0.305525 -0.049675 -v 4.340880 0.359620 -0.061350 -v 4.170735 0.260855 -0.017005 -v 4.340880 0.260855 -0.017005 -v 4.170735 0.413790 -0.050015 -v 4.340880 0.413790 -0.050015 -v 4.170735 0.486485 0.030210 -v 4.170735 0.458665 -0.017630 -v 4.340880 0.458665 -0.017630 -v 4.340880 0.486485 0.030210 -v 4.340880 0.492445 0.085230 -v 4.170735 0.492445 0.085230 -v 4.170735 0.388120 0.201830 -v 4.170735 0.332780 0.202005 -v 4.340880 0.332780 0.202005 -v 4.340880 0.388120 0.201830 -v 4.170735 0.282155 0.179655 -v 4.340880 0.282155 0.179655 -v 4.340880 0.227725 0.086070 -v 4.170735 0.227725 0.086070 -v 4.170735 0.233335 0.031010 -v 4.340880 0.233335 0.031010 -v 4.170735 0.475510 0.137920 -v 4.340880 0.475510 0.137920 -v 4.170735 0.438610 0.179165 -v 4.340880 0.438610 0.179165 -v 4.364625 0.332780 0.202005 -v 4.364625 0.282155 0.179655 -v 4.364625 0.388120 0.201830 -v 4.364625 0.438610 0.179165 -v 4.364625 0.475510 0.137920 -v 4.364625 0.492445 0.085230 -v 4.364625 0.486485 0.030210 -v 4.364625 0.458665 -0.017630 -v 4.364625 0.413790 -0.050015 -v 4.364625 0.359620 -0.061350 -v 4.364625 0.305525 -0.049675 -v 4.364625 0.260855 -0.017005 -v 4.364625 0.233335 0.031010 -v 4.364625 0.227725 0.086070 -v 4.340880 0.244990 0.138645 -v 4.364625 0.244990 0.138645 -v 4.170735 0.244990 0.138645 -vt 0.296448 0.102843 -vt 0.381104 0.047947 -vt 0.035834 0.368077 -vt 0.260019 0.614243 -vt 0.318792 0.625190 -vt 0.275800 0.672218 -vt 0.064766 0.305619 -vt 0.214319 0.161856 -vt 0.375342 0.030583 -vt 0.007698 0.338314 -vt 0.029408 0.318256 -vt 0.043335 0.310187 -vt 0.318905 0.667648 -vt 0.252574 0.694311 -vt 0.236882 0.637031 -vt 0.150287 0.628071 -vt 0.161490 0.706348 -vt 0.155366 0.668298 -vt 0.158302 0.652484 -vt 0.161554 0.687117 -vt 0.159356 0.670738 -vt 0.177046 0.635712 -vt 0.113858 0.672367 -vt 0.172255 0.628996 -vt 0.099369 0.633504 -vt 0.170505 0.620102 -vt 0.100245 0.588370 -vt 0.172087 0.610476 -vt 0.193985 0.511804 -vt 0.184343 0.596378 -vt 0.152646 0.515062 -vt 0.206820 0.627110 -vt 0.277410 0.625302 -vt 0.267428 0.666574 -vt 0.192657 0.639020 -vt 0.171748 0.713811 -vt 0.184184 0.639184 -vt 0.199912 0.595309 -vt 0.231216 0.519947 -vt 0.209484 0.608292 -vt 0.277410 0.583179 -vt 0.201008 0.635047 -vt 0.169178 0.452166 -vt 0.078800 0.768428 -vt 0.075894 0.452870 -vt 0.064099 0.767980 -vt 0.061196 0.452764 -vt 0.323553 0.069332 -vt 0.329659 0.048130 -vt 0.388490 0.045773 -vt 0.180052 0.766554 -vt 0.293930 0.450084 -vt 0.291558 0.766986 -vt 0.365394 0.036567 -vt 0.393169 0.043399 -vt 0.379297 0.054638 -vt 0.379304 0.071635 -vt 0.371065 0.062010 -vt 0.668046 0.738449 -vt 0.668026 0.728691 -vt 0.697871 0.729790 -vt 0.325815 0.430384 -vt 0.338798 0.430384 -vt 0.336684 0.785453 -vt 0.343554 0.027453 -vt 0.375485 0.025070 -vt 0.355937 0.047164 -vt 0.281354 0.120599 -vt 0.298249 0.138538 -vt 0.063679 0.307987 -vt 0.047021 0.304828 -vt 0.197459 0.172409 -vt 0.116186 0.647469 -vt 0.167094 0.533190 -vt 0.144756 0.611156 -vt 0.083961 0.329606 -vt 0.085997 0.346730 -vt 0.067528 0.358456 -vt 0.073363 0.319224 -vt 0.058636 0.333248 -vt 0.211458 0.187373 -vt 0.005853 0.351113 -vt 0.046154 0.345112 -vt 0.037898 0.385539 -vt 0.725084 0.164647 -vt 0.723553 0.158385 -vt 0.727062 0.163206 -vt 0.711602 0.183175 -vt 0.715876 0.183996 -vt 0.710769 0.185812 -vt 0.739821 0.127397 -vt 0.753782 0.142282 -vt 0.706307 0.182228 -vt 0.698730 0.216346 -vt 0.685786 0.204282 -vt 0.718775 0.155720 -vt 0.715259 0.221941 -vt 0.713491 0.155905 -vt 0.722526 0.120807 -vt 0.715955 0.186917 -vt 0.733490 0.219325 -vt 0.708645 0.158709 -vt 0.704953 0.122675 -vt 0.721039 0.185231 -vt 0.750106 0.207316 -vt 0.705023 0.163741 -vt 0.689598 0.132342 -vt 0.727836 0.175925 -vt 0.725106 0.181335 -vt 0.703336 0.169962 -vt 0.678716 0.148426 -vt 0.728637 0.169479 -vt 0.760042 0.187005 -vt 0.703689 0.176461 -vt 0.674296 0.168043 -vt 0.761256 0.163594 -vt 0.681265 0.208398 -vt 0.676971 0.187712 -vt 0.743470 0.121033 -vt 0.695706 0.222422 -vt 0.723381 0.112937 -vt 0.714770 0.229775 -vt 0.702885 0.115790 -vt 0.736080 0.226501 -vt 0.685430 0.127255 -vt 0.755277 0.212407 -vt 0.673365 0.145709 -vt 0.766255 0.188961 -vt 0.751196 0.205325 -vt 0.760981 0.185314 -vt 0.755725 0.210130 -vt 0.767870 0.162564 -vt 0.483959 0.110852 -vt 0.969960 0.121605 -vt 0.483787 0.118039 -vt 0.484212 0.175076 -vt 0.969565 0.167729 -vt 0.969630 0.173987 -vt 0.484952 0.119474 -vt 0.970126 0.130178 -vt 0.484753 0.126396 -vt 0.484329 0.181867 -vt 0.969728 0.180245 -vt 0.969960 0.136435 -vt 0.484458 0.133149 -vt 0.484471 0.188497 -vt 0.969847 0.186503 -vt 0.969796 0.142694 -vt 0.484387 0.139652 -vt 0.484622 0.195187 -vt 0.969975 0.192760 -vt 0.969665 0.148951 -vt 0.484246 0.146449 -vt 0.484770 0.202114 -vt 0.970101 0.199017 -vt 0.969579 0.155210 -vt 0.484148 0.153512 -vt 0.484907 0.209290 -vt 0.970219 0.205274 -vt 0.969540 0.161470 -vt 0.484103 0.160766 -vt 0.970306 0.211532 -vt 0.485009 0.216570 -vt 0.759437 0.138254 -vt 0.043825 0.574278 -vt 0.066391 0.622018 -vt 0.038510 0.624672 -vt 0.178363 0.485327 -vt 0.132179 0.524952 -vt 0.119564 0.496854 -vt 0.205193 0.738509 -vt 0.240940 0.692312 -vt 0.258566 0.716764 -vt 0.236791 0.498723 -vt 0.260084 0.551333 -vt 0.223314 0.526436 -vt 0.094770 0.548661 -vt 0.072289 0.528583 -vt 0.145225 0.738509 -vt 0.109974 0.690139 -vt 0.152169 0.707241 -vt 0.310309 0.578357 -vt 0.285685 0.625051 -vt 0.282244 0.585959 -vt 0.079910 0.659637 -vt 0.053992 0.673528 -vt 0.297153 0.677889 -vt 0.177850 0.517458 -vt 0.071684 0.582983 -vt 0.198662 0.708515 -vt 0.283142 0.531868 -vt 0.091276 0.714321 -vt 0.484133 0.168018 -vt 0.920731 0.597940 -vt 0.903938 0.543036 -vt 0.942946 0.580578 -vt 0.905043 0.780290 -vt 0.853566 0.769454 -vt 0.891577 0.755450 -vt 0.855245 0.526323 -vt 0.812701 0.559133 -vt 0.804567 0.531906 -vt 0.718087 0.662365 -vt 0.754338 0.618031 -vt 0.746375 0.662248 -vt 0.943559 0.742509 -vt 0.937649 0.684279 -vt 0.964783 0.690499 -vt 0.754744 0.706425 -vt 0.760609 0.764453 -vt 0.729498 0.718611 -vt 0.729002 0.606054 -vt 0.777975 0.581612 -vt 0.937145 0.639146 -vt 0.964783 0.632964 -vt 0.813680 0.764929 -vt 0.856535 0.797414 -vt 0.805776 0.792238 -vt 0.852526 0.554309 -vt 0.921362 0.725386 -vt 0.759688 0.560014 -vt 0.271796 0.663565 -vt 0.313734 0.629211 -vt 0.772519 0.110747 -vt 0.709912 0.117729 -vt 0.709912 0.110747 -vt 0.772519 0.117729 -vt 0.709912 0.124711 -vt 0.778726 0.742693 -vt 0.772519 0.124711 -vt 0.709912 0.131692 -vt 0.772519 0.131692 -vt 0.709912 0.138674 -vt 0.772519 0.138674 -vt 0.709912 0.145656 -vt 0.772519 0.145656 -vt 0.709912 0.152638 -vt 0.772519 0.152638 -vt 0.709912 0.159619 -vt 0.772519 0.159619 -vt 0.709912 0.166601 -vt 0.772519 0.166601 -vt 0.709912 0.173583 -vt 0.709912 0.180565 -vt 0.772519 0.173583 -vt 0.772519 0.180565 -vt 0.709912 0.187547 -vt 0.772519 0.187547 -vt 0.709912 0.194528 -vt 0.709912 0.201510 -vt 0.772519 0.194528 -vt 0.772519 0.201510 -vt 0.709912 0.208492 -vt 0.772519 0.208492 -vt 0.581093 0.645132 -vt 0.603781 0.639512 -vt 0.608740 0.661388 -vt 0.726981 0.174407 -vt 0.723067 0.177597 -vt 0.725165 0.173608 -vt 0.727752 0.169119 -vt 0.725819 0.169174 -vt 0.726656 0.164150 -vt 0.724946 0.165095 -vt 0.723836 0.160349 -vt 0.722687 0.162043 -vt 0.719758 0.158341 -vt 0.719376 0.160520 -vt 0.715092 0.158507 -vt 0.715527 0.160721 -vt 0.710689 0.160853 -vt 0.711840 0.162704 -vt 0.707359 0.164961 -vt 0.705935 0.175548 -vt 0.707675 0.170501 -vt 0.707942 0.174918 -vt 0.705716 0.170151 -vt 0.709047 0.166164 -vt 0.725435 0.158006 -vt 0.728801 0.162746 -vt 0.762432 0.162790 -vt 0.730144 0.168771 -vt 0.755795 0.142495 -vt 0.706247 0.182073 -vt 0.698598 0.218101 -vt 0.684639 0.205881 -vt 0.720407 0.155568 -vt 0.742762 0.127448 -vt 0.715944 0.186699 -vt 0.710628 0.185394 -vt 0.484476 0.179366 -vt 0.970192 0.175478 -vt 0.970245 0.181740 -vt 0.177028 0.485893 -vt 0.222095 0.526742 -vt 0.235358 0.499123 -vt 0.144451 0.739355 -vt 0.109116 0.691060 -vt 0.090460 0.715285 -vt 0.118256 0.497530 -vt 0.093555 0.549427 -vt 0.130944 0.525611 -vt 0.258511 0.551039 -vt 0.281310 0.531966 -vt 0.257165 0.717852 -vt 0.197884 0.709488 -vt 0.204249 0.739355 -vt 0.037408 0.625657 -vt 0.070523 0.583838 -vt 0.042609 0.575184 -vt 0.311181 0.630042 -vt 0.269794 0.664861 -vt 0.294508 0.679219 -vt 0.176623 0.517982 -vt 0.280183 0.585816 -vt 0.307659 0.577845 -vt 0.151381 0.708137 -vt 0.071004 0.529375 -vt 0.272542 0.756816 -vt 0.319458 0.454369 -vt 0.319458 0.756816 -vt 0.195505 0.728782 -vt 0.158795 0.772174 -vt 0.164003 0.723040 -vt 0.854491 0.798991 -vt 0.889910 0.757267 -vt 0.903185 0.782258 -vt 0.053035 0.674542 -vt 0.065319 0.622936 -vt 0.772519 0.110747 -vt 0.709912 0.117729 -vt 0.709912 0.110747 -vt 0.772519 0.117729 -vt 0.709912 0.124711 -vt 0.777220 0.743735 -vt 0.803814 0.793429 -vt 0.758935 0.765339 -vt 0.772519 0.131692 -vt 0.709912 0.131692 -vt 0.055645 0.560553 -vt 0.085835 0.571116 -vt 0.052945 0.594360 -vt 0.195487 0.652780 -vt 0.126933 0.516508 -vt 0.195505 0.516517 -vt 0.133283 0.633683 -vt 0.125966 0.664022 -vt 0.091024 0.690109 -vt 0.262609 0.630973 -vt 0.152787 0.575424 -vt 0.262609 0.575424 -vt 0.225552 0.202243 -vt 0.199418 0.586336 -vt 0.819994 0.746843 -vt 0.763814 0.730207 -vt 0.819994 0.730196 -vt 0.163478 0.695413 -vt 0.163446 0.561456 -vt 0.173352 0.560832 -vt 0.709548 0.178646 -vt 0.708231 0.179960 -vt 0.697912 0.746604 -vt 0.886978 0.568216 -vt 0.907767 0.564368 -vt 0.911018 0.585272 -vt 0.273287 0.553544 -vt 0.232715 0.507377 -vt 0.181062 0.777784 -vt 0.180989 0.432590 -vt 0.211081 0.695672 -vt 0.935628 0.547777 -vt 0.928335 0.534586 -vt 0.957061 0.514718 -vt 0.953673 0.541275 -vt 0.264483 0.609153 -vt 0.214574 0.720008 -vt 0.215429 0.609151 -vt 0.820524 0.552760 -vt 0.816236 0.564136 -vt 0.818580 0.604308 -vt 0.977054 0.746836 -vt 0.175301 0.801976 -vt 0.161807 0.439493 -vt 0.174456 0.439519 -vt 0.249368 0.572381 -vt 0.157624 0.676127 -vt 0.157559 0.572357 -vt 0.252242 0.555075 -vt 0.262949 0.582689 -vt 0.250389 0.588987 -vt 0.195569 0.516508 -vt 0.325918 0.542286 -vt 0.222901 0.642861 -vt 0.267417 0.588326 -vt 0.271105 0.564524 -vt 0.171193 0.685318 -vt 0.151737 0.608220 -vt 0.169451 0.570217 -vt 0.127832 0.649666 -vt 0.152545 0.627205 -vt 0.172283 0.627297 -vt 0.127832 0.675813 -vt 0.216734 0.725573 -vt 0.127832 0.725573 -vt 0.105909 0.462751 -vt 0.021077 0.782399 -vt 0.021077 0.462751 -vt 0.065793 0.457768 -vt 0.084619 0.458339 -vt 0.108210 0.782802 -vt 0.234271 0.474384 -vt 0.298671 0.450845 -vt 0.298671 0.474384 -vt 0.881052 0.748887 -vt 0.894087 0.499407 -vt 0.894087 0.786407 -vt 0.827150 0.688128 -vt 0.883392 0.752398 -vt 0.896428 0.789917 -vt 0.873114 0.583614 -vt 0.824810 0.684617 -vt 0.900819 0.796593 -vt 0.886821 0.542960 -vt 0.900819 0.504088 -vt 0.830423 0.604345 -vt 0.853632 0.607711 -vt 0.235549 0.782542 -vt 0.194646 0.438622 -vt 0.227326 0.431587 -vt 0.164786 0.785449 -vt 0.162663 0.430379 -vt 0.175655 0.430379 -vt 0.242453 0.765105 -vt 0.263009 0.523159 -vt 0.309742 0.542637 -vt 0.264154 0.457185 -vt 0.298591 0.506679 -vt 0.196716 0.498795 -vt 0.200462 0.439717 -vt 0.320799 0.580957 -vt 0.278448 0.589160 -vt 0.116297 0.654629 -vt 0.186553 0.635602 -vt 0.165229 0.682820 -vt 0.105918 0.485981 -vt 0.134656 0.504380 -vt 0.136066 0.481351 -vt 0.309429 0.714666 -vt 0.301416 0.537221 -vt 0.329610 0.511479 -vt 0.300178 0.485482 -vt 0.321744 0.702481 -vt 0.330347 0.665420 -vt 0.288229 0.669719 -vt 0.331049 0.569269 -vt 0.355610 0.485981 -vt 0.314563 0.455848 -vt 0.314762 0.619629 -vt 0.308023 0.582873 -vt 0.877023 0.547152 -vt 0.900329 0.554458 -vt 0.932482 0.511002 -vt 0.914183 0.524699 -vt 0.347823 0.569516 -vt 0.339103 0.628659 -vt 0.362347 0.651411 -vt 0.361841 0.618071 -vt 0.358811 0.683852 -vt 0.364007 0.586030 -vt 0.364503 0.554248 -vt 0.953081 0.541991 -vt 0.929418 0.567271 -vt 0.907393 0.539597 -vt 0.950784 0.536249 -vt 0.934390 0.516693 -vt 0.965839 0.506925 -vt 0.960858 0.575264 -vt 0.928899 0.592619 -vt 0.900072 0.564677 -vt 0.925604 0.545762 -vt 0.898703 0.524833 -vt 0.942330 0.573348 -vt 0.902608 0.570019 -vt 0.965839 0.575300 -vt 0.877278 0.537666 -vt 0.359814 0.520250 -vt 0.105918 0.586040 -vt 0.122763 0.606554 -vt 0.122160 0.568036 -vt 0.105918 0.651411 -vt 0.134501 0.651986 -vt 0.116857 0.686917 -vt 0.128578 0.540344 -vt 0.105918 0.519517 -vt 0.179299 0.610462 -vt 0.206268 0.646985 -vt 0.195687 0.585356 -vt 0.105918 0.554738 -vt 0.158694 0.599897 -vt 0.147941 0.550950 -vt 0.165834 0.671052 -vt 0.668850 0.167746 -vt 0.179299 0.594155 -vt 0.210315 0.672096 -vt 0.221813 0.605981 -vt 0.238193 0.651293 -vt 0.241063 0.616632 -vt 0.219795 0.566854 -vt 0.183376 0.447393 -vt 0.166142 0.483401 -vt 0.203060 0.490554 -vt 0.140665 0.679871 -vt 0.175223 0.708304 -vt 0.175223 0.447393 -vt 0.243353 0.585256 -vt 0.241335 0.554039 -vt 0.237966 0.475216 -vt 0.232297 0.447393 -vt 0.207928 0.489377 -vt 0.240476 0.513146 -vt 0.251532 0.481330 -vt 0.900465 0.507474 -vt 0.921065 0.518190 -vt 0.224365 0.534698 -vt 0.247604 0.683125 -vt 0.265852 0.521012 -vt 0.259271 0.647142 -vt 0.270424 0.558400 -vt 0.279577 0.636261 -vt 0.263947 0.602862 -vt 0.285541 0.597356 -vt 0.259965 0.475042 -vt 0.105918 0.683801 -vt 0.109995 0.708304 -vt 0.900607 0.554110 -vt 0.906244 0.530861 -vt 0.918100 0.552857 -vt 0.903498 0.502883 -vt 0.877735 0.522424 -vt 0.140284 0.563354 -vt 0.147562 0.537185 -vt 0.157422 0.547084 -vt 0.352558 0.651996 -vt 0.351599 0.694222 -vt 0.264200 0.103081 -vt 0.143507 0.615307 -vt 0.167506 0.692768 -vt 0.114162 0.579622 -vt 0.138423 0.558381 -vt 0.163878 0.517052 -vt 0.182157 0.540271 -vt 0.101175 0.495838 -vt 0.144662 0.457293 -vt 0.211297 0.516323 -vt 0.322901 0.436996 -vt 0.352558 0.538438 -vt 0.891052 0.677793 -vt 0.917004 0.511202 -vt 0.917004 0.792988 -vt 0.878415 0.705410 -vt 0.893073 0.634076 -vt 0.920336 0.516840 -vt 0.920336 0.798718 -vt 0.846158 0.681812 -vt 0.275288 0.572357 -vt 0.275288 0.624832 -vt 0.249398 0.594995 -vt 0.209176 0.709866 -vt 0.249368 0.676127 -vt 0.167421 0.491426 -vt 0.124294 0.471366 -vt 0.162808 0.460306 -vt 0.957061 0.564870 -vt 0.927904 0.563325 -vt 0.150752 0.576637 -vt 0.190834 0.577182 -vt 0.170151 0.604581 -vt 0.128181 0.582143 -vt 0.109668 0.601489 -vt 0.117887 0.576989 -vt 0.093949 0.599522 -vt 0.114144 0.574560 -vt 0.129560 0.603106 -vt 0.212519 0.604928 -vt 0.212519 0.558390 -vt 0.231646 0.613041 -vt 0.227152 0.648851 -vt 0.201506 0.617369 -vt 0.139457 0.483153 -vt 0.077627 0.552409 -vt 0.101353 0.474052 -vt 0.165272 0.528563 -vt 0.207887 0.557441 -vt 0.120923 0.575474 -vt 0.170479 0.601100 -vt 0.206597 0.460159 -vt 0.086526 0.503205 -vt 0.132175 0.499398 -vt 0.206821 0.490684 -vt 0.100525 0.547157 -vt 0.063972 0.533756 -vt 0.132613 0.525187 -vt 0.190409 0.519748 -vt 0.170804 0.556982 -vt 0.121105 0.677240 -vt 0.205558 0.648994 -vt 0.131040 0.698669 -vt 0.120791 0.604036 -vt 0.195827 0.623937 -vt 0.207649 0.610159 -vt 0.212359 0.602400 -vt 0.287078 0.712267 -vt 0.252897 0.802356 -vt 0.128758 0.712271 -vt 0.243796 0.777942 -vt 0.211881 0.741978 -vt 0.212506 0.605245 -vt 0.331206 0.533544 -vt 0.331202 0.809653 -vt 0.250386 0.590767 -vt 0.225808 0.675074 -vt 0.193918 0.686639 -vt 0.193915 0.675082 -vt 0.145648 0.587952 -vt 0.153023 0.628692 -vt 0.115329 0.787499 -vt 0.221666 0.444608 -vt 0.221666 0.787392 -vt 0.337913 0.036846 -vt 0.800736 0.658409 -vt 0.694096 0.708634 -vt 0.748012 0.622240 -vt 0.162198 0.707502 -vt 0.114327 0.626249 -vt 0.092619 0.489940 -vt 0.135367 0.489934 -vt 0.134341 0.490121 -vt 0.581829 0.656266 -vt 0.582205 0.643874 -vt 0.608643 0.657856 -vt 0.263579 0.448575 -vt 0.267297 0.448675 -vt 0.264232 0.688301 -vt 0.118691 0.632067 -vt 0.195676 0.634976 -vt 0.367186 0.436037 -vt 0.369064 0.435460 -vt 0.369064 0.446998 -vt 0.157595 0.652282 -vt 0.139370 0.699960 -vt 0.118811 0.545559 -vt 0.176974 0.602004 -vt 0.206796 0.712223 -vt 0.234698 0.802319 -vt 0.169544 0.439544 -vt 0.234698 0.439493 -vt 0.562797 0.641426 -vt 0.565453 0.666175 -vt 0.627405 0.667443 -vt 0.245196 0.803897 -vt 0.159624 0.441498 -vt 0.244492 0.440999 -vt 0.392020 0.638012 -vt 0.045367 0.655659 -vt 0.045367 0.638014 -vt 0.284583 0.452887 -vt 0.301479 0.768428 -vt 0.283085 0.768364 -vt 0.172083 0.767614 -vt 0.150875 0.627246 -vt 0.186150 0.587085 -vt 0.208564 0.688133 -vt 0.084286 0.450002 -vt 0.071571 0.766388 -vt 0.069521 0.449747 -vt 0.178000 0.449680 -vt 0.086339 0.766986 -vt 0.034390 0.322797 -vt 0.716106 0.183929 -vt 0.712436 0.180963 -vt 0.716024 0.181572 -vt 0.206153 0.600413 -vt 0.719885 0.180488 -vt 0.711682 0.182911 -vt 0.332646 0.435561 -vt 0.350092 0.816437 -vt 0.332646 0.816524 -vt 0.675346 0.188923 -vt 0.721672 0.185008 -vt 0.716280 0.222162 -vt 0.709349 0.158612 -vt 0.706700 0.120767 -vt 0.714728 0.155740 -vt 0.725522 0.119727 -vt 0.734665 0.217607 -vt 0.703313 0.169968 -vt 0.677441 0.147810 -vt 0.705383 0.163699 -vt 0.729202 0.175190 -vt 0.726116 0.180718 -vt 0.689513 0.130771 -vt 0.666470 0.167805 -vt 0.669341 0.191107 -vt 0.761656 0.138536 -vt 0.679626 0.211026 -vt 0.716559 0.229434 -vt 0.696121 0.224894 -vt 0.746698 0.120586 -vt 0.704784 0.113720 -vt 0.726339 0.112168 -vt 0.737338 0.224195 -vt 0.685433 0.125314 -vt 0.672199 0.144669 -vt 0.484104 0.145241 -vt 0.969961 0.144158 -vt 0.969947 0.150422 -vt 0.484567 0.193884 -vt 0.970285 0.200529 -vt 0.484542 0.200953 -vt 0.672631 0.168500 -vt 0.703606 0.176529 -vt 0.484495 0.207757 -vt 0.970229 0.213055 -vt 0.484456 0.214348 -vt 0.484131 0.152176 -vt 0.969979 0.156687 -vt 0.970252 0.206792 -vt 0.484297 0.165508 -vt 0.970044 0.162951 -vt 0.970121 0.169214 -vt 0.484202 0.158872 -vt 0.484393 0.172304 -vt 0.484786 0.111975 -vt 0.970932 0.118244 -vt 0.484720 0.118516 -vt 0.767252 0.187756 -vt 0.769124 0.162040 -vt 0.484617 0.116667 -vt 0.970142 0.131630 -vt 0.484400 0.123593 -vt 0.484136 0.138057 -vt 0.970029 0.137894 -vt 0.484235 0.130771 -vt 0.484536 0.186623 -vt 0.970285 0.188003 -vt 0.970306 0.194266 -vt 0.239668 0.693930 -vt 0.216734 0.675813 -vt 0.904289 0.545005 -vt 0.852814 0.555862 -vt 0.855781 0.527901 -vt 0.728248 0.719312 -vt 0.759854 0.560902 -vt 0.812928 0.560404 -vt 0.777973 0.582655 -vt 0.717332 0.663006 -vt 0.753583 0.707327 -vt 0.936896 0.641000 -vt 0.942805 0.582769 -vt 0.964030 0.634771 -vt 0.728744 0.606756 -vt 0.753991 0.618934 -vt 0.811945 0.766199 -vt 0.805021 0.533098 -vt 0.920609 0.599900 -vt 0.964030 0.692306 -vt 0.919977 0.727346 -vt 0.936391 0.686133 -vt 0.745620 0.663114 -vt 0.942193 0.744700 -vt 0.709912 0.138674 -vt 0.772519 0.145656 -vt 0.709912 0.145656 -vt 0.709912 0.152638 -vt 0.772519 0.138674 -vt 0.772519 0.159619 -vt 0.709912 0.166601 -vt 0.709912 0.159619 -vt 0.772519 0.152638 -vt 0.772519 0.173583 -vt 0.709912 0.173583 -vt 0.709912 0.180565 -vt 0.709912 0.187547 -vt 0.772519 0.180565 -vt 0.772519 0.187547 -vt 0.709912 0.194528 -vt 0.772519 0.194528 -vt 0.709912 0.201510 -vt 0.772519 0.201510 -vt 0.709912 0.208492 -vt 0.772519 0.208492 -vt 0.709912 0.215474 -vt 0.350146 0.436640 -vt 0.367133 0.806539 -vt 0.350190 0.806571 -vt 0.107097 0.627693 -vt 0.108184 0.620317 -vt 0.119453 0.618151 -vt 0.937565 0.584611 -vt 0.868521 0.556075 -vt 0.960858 0.512637 -vt 0.105918 0.617345 -vt 0.118984 0.476287 -vt 0.108501 0.453370 -vt 0.084558 0.560630 -vt 0.105941 0.596325 -vt 0.310102 0.447416 -vt 0.310102 0.708280 -vt 0.054717 0.479533 -vt 0.076264 0.466463 -vt 0.097811 0.465749 -vt 0.191332 0.627510 -vt 0.133562 0.719949 -vt 0.121285 0.705451 -vt 0.131344 0.555061 -vt 0.211034 0.500194 -vt 0.724507 0.179085 -vt 0.180789 0.604721 -vt 0.117261 0.569132 -vt 0.288234 0.549025 -vt 0.146500 0.588610 -vt 0.166408 0.803908 -vt 0.231871 0.441085 -vt 0.231871 0.803909 -vt 0.043980 0.638066 -vt 0.390629 0.657331 -vt 0.043980 0.657330 -vt 0.588528 0.681834 -vt 0.574882 0.676320 -vt 0.630206 0.655378 -vt 0.220758 0.706446 -vt 0.233541 0.771678 -vt 0.152011 0.579100 -vt 0.056424 0.367415 -vt 0.709912 0.215474 -vt 0.267316 0.448783 -vt 0.274784 0.448575 -vt 0.272279 0.536226 -vt 0.099764 0.465749 -vt 0.099764 0.794045 -vt 0.028991 0.741096 -vt 0.141547 0.711432 -vt 0.208794 0.655666 -vt 0.320795 0.572740 -vt 0.307950 0.589772 -vt 0.232351 0.532549 -vt 0.180003 0.767981 -vt 0.133760 0.767968 -vt 0.134369 0.493727 -vt 0.227815 0.649188 -vt 0.232268 0.612759 -vt 0.269325 0.704233 -vt 0.246728 0.630194 -vt 0.197348 0.602668 -vt 0.282628 0.491928 -vt 0.135289 0.489242 -vt 0.176745 0.631828 -vt 0.157863 0.655488 -vt 0.109154 0.440439 -vt 0.099688 0.459852 -vt 0.136487 0.446954 -vt 0.232297 0.708304 -vt 0.238974 0.683097 -vt 0.008480 0.800988 -vt 0.407403 0.447459 -vt 0.036793 0.828524 -vt 0.359842 0.504845 -vt 0.367112 0.469866 -vt 0.363822 0.620812 -vt 0.685894 0.604739 -vt 0.792590 0.651454 -vt 0.740616 0.688691 -vt 0.258538 0.547976 -vt 0.225461 0.484605 -vt 0.167856 0.484688 -vt 0.204303 0.450095 -vt 0.226143 0.444502 -vt 0.119805 0.787392 -vt 0.119805 0.444608 -vt 0.194262 0.588454 -vt 0.256279 0.552826 -vt 0.199364 0.595218 -vt 0.187505 0.584542 -vt 0.229036 0.526209 -vt 0.271948 0.591593 -vt 0.201797 0.603654 -vt 0.201242 0.612132 -vt 0.256321 0.674292 -vt 0.198121 0.619076 -vt 0.192992 0.623455 -vt 0.227234 0.703855 -vt 0.116170 0.673909 -vt 0.169500 0.610001 -vt 0.173624 0.617454 -vt 0.099949 0.631784 -vt 0.168259 0.601429 -vt 0.166956 0.518822 -vt 0.174141 0.587280 -vt 0.139178 0.530065 -vt 0.186474 0.624717 -vt 0.147997 0.705299 -vt 0.179823 0.622432 -vt 0.725826 0.175056 -vt 0.722153 0.178139 -vt 0.724044 0.174342 -vt 0.726387 0.169758 -vt 0.724491 0.169903 -vt 0.725084 0.164647 -vt 0.723385 0.165642 -vt 0.722202 0.160686 -vt 0.721012 0.162359 -vt 0.718280 0.158582 -vt 0.717854 0.160627 -vt 0.713972 0.158669 -vt 0.714406 0.160768 -vt 0.709989 0.161008 -vt 0.711191 0.162751 -vt 0.706988 0.165168 -vt 0.708677 0.166285 -vt 0.705490 0.170262 -vt 0.707388 0.170569 -vt 0.707675 0.175019 -vt 0.708001 0.180219 -vt 0.705848 0.175585 -vt 0.711602 0.183175 -vt 0.709457 0.178808 -vt 0.712362 0.181200 -vt 0.715876 0.183996 -vt 0.715822 0.181857 -vt 0.720089 0.182722 -vt 0.719269 0.180787 -vt 0.723539 0.179542 -vt 0.180390 0.584076 -vt 0.197163 0.515281 -vt 0.271948 0.634806 -vt 0.115685 0.553724 -vt 0.169944 0.593389 -vt 0.100883 0.588970 -vt 0.192291 0.593771 -vt 0.210252 0.617955 -vt 0.238889 0.694713 -vt 0.339891 0.033820 -vt 0.360458 0.014530 -vt 0.022446 0.385164 -vt 0.104553 0.285332 -vt 0.023490 0.369930 -vt 0.026427 0.358619 -vt 0.169356 0.207893 -vt 0.668329 0.747110 -vt 0.165771 0.785453 -vt 0.165651 0.423324 -vt 0.349524 0.013035 -vt 0.215519 0.749251 -vt 0.200561 0.766772 -vt 0.168820 0.697328 -vt 0.175150 0.483896 -vt 0.188801 0.458524 -vt 0.201868 0.496878 -vt 0.215519 0.471506 -vt 0.023921 0.334271 -vt 0.722202 0.160686 -vt 0.709989 0.161008 -vt 0.713972 0.158669 -vt 0.718280 0.158582 -vt 0.705490 0.170262 -vt 0.706988 0.165168 -vt 0.708001 0.180219 -vt 0.720089 0.182722 -vt 0.723539 0.179542 -vt 0.726387 0.169758 -vt 0.725826 0.175056 -vt 0.705848 0.175585 -vt 0.671600 0.189680 -vt 0.970110 0.115337 -vt 0.970306 0.123922 -vt 0.890665 0.568032 -vt 0.581093 0.657225 -vt 0.579706 0.651105 -vt 0.585016 0.640340 -vt 0.590796 0.637557 -vt 0.597433 0.637264 -vt 0.608740 0.643912 -vt 0.611455 0.649704 -vt 0.611455 0.655885 -vt 0.603781 0.665260 -vt 0.597433 0.666832 -vt 0.590796 0.665833 -vt 0.585016 0.662435 -vt 0.720710 0.182424 -vt 0.280470 0.626193 -vt 0.272542 0.454369 -vt 0.851770 0.771006 -vt 0.078947 0.660579 -vt 0.772519 0.124711 -vt 0.054201 0.526134 -vt 0.152787 0.630973 -vt 0.763814 0.746853 -vt 0.202973 0.560832 -vt 0.202973 0.695413 -vt 0.211017 0.432541 -vt 0.211037 0.512599 -vt 0.211827 0.777736 -vt 0.215312 0.525547 -vt 0.264366 0.525478 -vt 0.265426 0.720008 -vt 0.977054 0.730190 -vt 0.253847 0.439630 -vt 0.253847 0.802453 -vt 0.161667 0.802553 -vt 0.325918 0.642861 -vt 0.194508 0.627297 -vt 0.216734 0.649666 -vt 0.216734 0.627297 -vt 0.127816 0.627297 -vt 0.105909 0.782399 -vt 0.108210 0.457768 -vt 0.023377 0.780946 -vt 0.023377 0.457768 -vt 0.044585 0.457768 -vt 0.234271 0.450827 -vt 0.848498 0.685322 -vt 0.211155 0.787793 -vt 0.335787 0.423324 -vt 0.335699 0.785449 -vt 0.290788 0.765173 -vt 0.189640 0.774772 -vt 0.175485 0.749677 -vt 0.197104 0.735777 -vt 0.195938 0.458524 -vt 0.165712 0.528641 -vt 0.211259 0.475708 -vt 0.211259 0.760871 -vt 0.191836 0.630793 -vt 0.201181 0.641632 -vt 0.161801 0.803719 -vt 0.128769 0.441635 -vt 0.287078 0.441635 -vt 0.211243 0.432637 -vt 0.243950 0.432743 -vt 0.211825 0.777842 -vt 0.239777 0.809653 -vt 0.236235 0.574344 -vt 0.228178 0.436438 -vt 0.332137 0.437634 -vt 0.108370 0.457995 -vt 0.293038 0.458286 -vt 0.246640 0.543184 -vt 0.293038 0.556655 -vt 0.150823 0.543181 -vt 0.109026 0.554322 -vt 0.174987 0.612558 -vt 0.221723 0.612794 -vt 0.174924 0.563657 -vt 0.221713 0.565123 -vt 0.225811 0.686631 -vt 0.115329 0.444502 -vt 0.977611 0.684219 -vt 0.953285 0.706882 -vt 0.701874 0.553659 -vt 0.702069 0.527374 -vt 0.704813 0.560928 -vt 0.092820 0.767961 -vt 0.585750 0.639317 -vt 0.591029 0.636927 -vt 0.597039 0.637275 -vt 0.602747 0.640193 -vt 0.607057 0.645239 -vt 0.609112 0.651531 -vt 0.606007 0.663036 -vt 0.590549 0.665540 -vt 0.601674 0.666302 -vt 0.596168 0.667244 -vt 0.585313 0.661826 -vt 0.580781 0.649872 -vt 0.267297 0.783587 -vt 0.259032 0.783285 -vt 0.108846 0.681140 -vt 0.103788 0.649857 -vt 0.170248 0.802442 -vt 0.570250 0.630345 -vt 0.561088 0.654029 -vt 0.575159 0.676023 -vt 0.588782 0.681545 -vt 0.603793 0.681956 -vt 0.617443 0.676725 -vt 0.631890 0.655009 -vt 0.597074 0.620271 -vt 0.630779 0.642388 -vt 0.623624 0.631208 -vt 0.611752 0.623170 -vt 0.582328 0.622690 -vt 0.154550 0.804507 -vt 0.392020 0.658075 -vt 0.302976 0.452951 -vt 0.259270 0.751033 -vt 0.240884 0.770341 -vt 0.229212 0.441980 -vt 0.259270 0.458646 -vt 0.216825 0.498419 -vt 0.350092 0.435460 -vt 0.970960 0.111975 -vt 0.970306 0.125366 -vt 0.890824 0.569849 -vt 0.772519 0.166601 -vt 0.772519 0.215474 -vt 0.367133 0.435460 -vt 0.097811 0.792171 -vt 0.027038 0.518698 -vt 0.022050 0.790931 -vt 0.048570 0.460209 -vt 0.369430 0.460209 -vt 0.393986 0.531106 -vt 0.357472 0.524564 -vt 0.057138 0.544589 -vt 0.016196 0.540388 -vt 0.234035 0.602324 -vt 0.208545 0.673246 -vt 0.166408 0.441084 -vt 0.390629 0.638066 -vt 0.565141 0.666479 -vt 0.560742 0.654326 -vt 0.562422 0.641703 -vt 0.569858 0.630592 -vt 0.581929 0.622903 -vt 0.596678 0.620440 -vt 0.611359 0.623268 -vt 0.623116 0.631113 -vt 0.630113 0.642341 -vt 0.626759 0.667862 -vt 0.617032 0.677247 -vt 0.603542 0.682270 -vt 0.238861 0.434065 -vt 0.208361 0.516967 -vt 0.257646 0.452955 -vt 0.257646 0.754262 -vt 0.188162 0.618478 -vt 0.772519 0.215474 -vt 0.274784 0.803410 -vt 0.270640 0.803271 -vt 0.078217 0.793331 -vt 0.056670 0.780261 -vt 0.024003 0.468863 -vt 0.307951 0.808658 -vt 0.228621 0.808658 -vt 0.227029 0.435583 -vt 0.328843 0.434552 -vt 0.179789 0.489959 -vt 0.332118 0.585098 -vt 0.332118 0.698790 -vt 0.309212 0.586099 -vt 0.308210 0.697854 -vt 0.285450 0.699257 -vt 0.271271 0.566606 -vt 0.252657 0.705153 -vt 0.140966 0.607404 -vt 0.140973 0.491835 -vt 0.282628 0.686931 -vt 0.267629 0.707508 -vt 0.267267 0.681966 -vt 0.157303 0.703261 -vt 0.151510 0.703269 -vt 0.153431 0.677036 -vt 0.140412 0.684992 -vt 0.280459 0.490002 -vt 0.208429 0.606816 -vt 0.280459 0.608219 -vt 0.242980 0.600630 -vt 0.379091 0.419923 -vt 0.028126 0.733572 -vt 0.029621 0.521536 -vt 0.064034 0.703794 -vt 0.065764 0.521765 -vt 0.068554 0.555674 -vt 0.074971 0.734624 -vt 0.108057 0.662705 -vt 0.109927 0.596019 -vt 0.229392 0.641886 -vt 0.230621 0.621945 -vt 0.291265 0.660773 -vt 0.292944 0.600726 -vt 0.334275 0.701102 -vt 0.337630 0.559808 -vt 0.367112 0.791321 -vt 0.356079 0.791468 -vt 0.358325 0.760311 -vt 0.356289 0.469829 -vt 0.699040 0.751173 -vt 0.696774 0.785087 -vt 0.945083 0.602988 -vt 0.969409 0.625257 -vt 0.377077 0.450759 -vt 0.303950 0.504075 -vt 0.377111 0.473918 -vt 0.237685 0.573495 -vt 0.225603 0.582865 -vt 0.016154 0.475399 -vt 0.016119 0.451280 -vt 0.085701 0.510511 -vt 0.167998 0.582865 -vt 0.226143 0.787499 -vt 0.188554 0.710454 -vn 0.0130 0.0433 0.9990 -vn 0.9758 -0.0576 0.2109 -vn 0.0149 0.0285 0.9995 -vn 0.0111 -0.0104 0.9999 -vn 0.0194 0.0091 0.9998 -vn 0.0156 0.0165 0.9997 -vn 0.0050 0.0088 0.9999 -vn 0.0091 0.0138 0.9999 -vn 0.7129 0.1629 0.6821 -vn 0.2218 -0.9715 0.0835 -vn 0.9154 -0.3970 0.0669 -vn 0.0047 -0.9679 0.2513 -vn 0.0008 -0.9675 0.2528 -vn 0.0008 -0.9677 0.2523 -vn 0.0006 -0.9997 -0.0238 -vn -0.0094 -0.9896 -0.1438 -vn -0.0003 -0.9997 -0.0248 -vn 0.0000 -0.9960 0.0890 -vn 0.0000 -0.9461 -0.3238 -vn 0.0000 -0.7326 -0.6806 -vn 0.0000 -0.3925 -0.9198 -vn 0.0000 0.7535 -0.6575 -vn 0.0000 0.4210 -0.9071 -vn 0.0000 0.1926 0.9813 -vn 0.0000 0.5751 0.8181 -vn 0.0000 -0.6003 0.7998 -vn 0.0000 -0.8737 0.4864 -vn 0.0000 0.9558 -0.2942 -vn 0.0000 0.8581 0.5135 -vn 0.0000 -0.2231 0.9748 -vn 0.0107 0.1910 -0.9815 -vn -0.0041 0.9251 0.3798 -vn 0.0143 0.0015 -0.9999 -vn 0.0131 -0.0017 -0.9999 -vn 0.0103 -0.0031 -0.9999 -vn 0.0271 -0.7370 0.6753 -vn 0.0231 -0.7294 0.6837 -vn 0.0288 -0.7402 0.6717 -vn 0.5549 -0.8319 -0.0095 -vn 0.7206 -0.6812 0.1291 -vn 0.5946 -0.7990 0.0902 -vn 0.0559 0.0967 0.9937 -vn 0.0423 0.0732 0.9964 -vn 0.0000 0.0000 1.0000 -vn 0.0973 0.9953 -0.0015 -vn 0.0964 0.9953 -0.0003 -vn 0.3468 0.9379 -0.0027 -vn 0.0062 -0.0121 -0.9999 -vn 0.0104 0.0000 -0.9999 -vn 0.6042 -0.7934 -0.0742 -vn 0.7726 -0.6346 -0.0186 -vn 0.1808 -0.9835 -0.0000 -vn 0.2973 -0.9544 0.0283 -vn 0.0788 -0.9969 -0.0025 -vn 0.0785 -0.9957 0.0483 -vn 0.1956 -0.9589 -0.2055 -vn 0.3220 -0.9286 -0.1846 -vn 0.0663 -0.9965 -0.0512 -vn -0.9999 0.0087 -0.0144 -vn -0.9997 0.0055 -0.0235 -vn -0.9997 0.0198 -0.0123 -vn 0.1944 -0.9596 0.2035 -vn 0.3223 -0.9289 0.1823 -vn 0.3440 -0.9273 0.1477 -vn 0.1529 -0.9882 -0.0000 -vn 0.3029 -0.9530 0.0003 -vn 0.0675 -0.9977 -0.0029 -vn -0.0207 -0.9991 -0.0382 -vn 0.1042 -0.9946 -0.0002 -vn -0.0215 -0.9990 0.0383 -vn 0.9974 0.0289 0.0655 -vn 0.9999 0.0046 0.0105 -vn 0.9976 0.0327 0.0615 -vn 1.0000 0.0000 0.0000 -vn 0.0053 0.5861 0.8102 -vn -0.2049 0.8472 0.4901 -vn -0.1986 0.5793 0.7905 -vn 0.0000 -0.7453 -0.6668 -vn -0.2096 -0.9309 -0.2992 -vn -0.2095 -0.7287 -0.6520 -vn 0.0000 0.9948 0.1014 -vn 0.0000 0.8536 0.5209 -vn 0.0000 -0.9520 -0.3060 -vn -0.2096 -0.9721 0.1053 -vn 0.0000 0.9501 -0.3120 -vn -0.2096 0.9728 0.0991 -vn 0.0000 -0.9942 0.1077 -vn -0.2095 -0.8453 0.4916 -vn 0.0000 0.7410 -0.6715 -vn -0.2096 0.9290 -0.3051 -vn 0.0000 -0.8644 0.5027 -vn -0.2095 -0.5722 0.7929 -vn 0.0000 0.4038 -0.9148 -vn -0.2096 0.7246 -0.6566 -vn 0.0000 -0.2048 0.9788 -vn 0.0000 -0.5852 0.8109 -vn 0.0000 -0.0032 -1.0000 -vn -0.2096 0.3949 -0.8945 -vn 0.0000 0.2327 0.9725 -vn -0.2095 -0.2003 0.9571 -vn 0.0000 -0.4096 -0.9122 -vn -0.2096 -0.0031 -0.9778 -vn -0.2059 0.2095 0.9559 -vn -0.2129 -0.7285 -0.6511 -vn -0.2095 -0.4005 -0.8920 -vn -0.2177 0.8465 0.4858 -vn -0.2147 -0.9300 -0.2983 -vn -0.2159 0.9713 0.0997 -vn -0.2167 -0.9705 0.1058 -vn -0.2138 0.9283 -0.3042 -vn -0.2186 -0.8433 0.4910 -vn -0.2121 0.7245 -0.6559 -vn -0.2200 -0.5706 0.7912 -vn -0.2110 0.3949 -0.8941 -vn -0.2206 -0.1997 0.9547 -vn -0.2097 -0.0152 0.9776 -vn -0.2096 0.3837 0.8993 -vn -0.4208 -0.0141 0.9070 -vn -0.2203 0.2056 0.9535 -vn 0.0024 0.2114 0.9774 -vn -0.2193 0.5756 0.7878 -vn 0.0044 0.6031 0.7976 -vn 0.0178 -0.7444 -0.6675 -vn -0.2115 -0.4007 -0.8915 -vn 0.0076 0.8747 0.4845 -vn 0.0140 -0.9488 -0.3156 -vn 0.0117 0.9938 0.1106 -vn 0.0099 -0.9953 0.0960 -vn 0.0161 0.9524 -0.3045 -vn 0.0059 -0.8681 0.4964 -vn 0.0196 0.7403 -0.6720 -vn 0.0031 -0.5895 0.8078 -vn 0.0216 0.4034 -0.9148 -vn 0.0019 -0.2049 0.9788 -vn -0.2109 -0.0032 -0.9775 -vn 0.0220 -0.0030 -0.9998 -vn 0.1716 -0.9372 -0.3036 -vn 0.3411 -0.9358 0.0889 -vn 0.1674 -0.9798 0.1091 -vn 0.1736 -0.0031 -0.9848 -vn 0.3495 -0.3838 -0.8547 -vn 0.1736 -0.4034 -0.8984 -vn 0.1736 0.2078 0.9627 -vn 0.3578 0.5546 0.7512 -vn 0.1736 0.5814 0.7949 -vn 0.1736 0.3977 -0.9009 -vn 0.3495 0.6943 -0.6291 -vn 0.3495 0.3784 -0.8571 -vn 0.3494 -0.6983 -0.6247 -vn 0.1736 -0.7340 -0.6566 -vn 0.1736 -0.2017 0.9639 -vn 0.3524 -0.5485 0.7582 -vn 0.3495 -0.1919 0.9171 -vn 0.1762 0.9361 -0.3044 -vn 0.3791 0.9205 0.0943 -vn 0.3495 0.8931 -0.2834 -vn 0.3557 -0.8147 0.4579 -vn 0.1753 -0.8501 0.4966 -vn 0.1927 0.8533 0.4844 -vn 0.3494 -0.0030 -0.9370 -vn 0.3494 -0.8895 -0.2945 -vn 0.3494 0.1977 0.9159 -vn 0.1736 0.7298 -0.6613 -vn 0.1736 -0.5763 0.7986 -vn 0.0206 -0.4089 -0.9123 -vn -0.7392 -0.3941 0.5461 -vn -0.7392 -0.5822 0.3386 -vn -0.7392 0.5843 0.3349 -vn -0.7392 0.6700 0.0683 -vn -0.7392 -0.6696 0.0725 -vn -0.7392 -0.6412 -0.2061 -vn -0.7392 -0.0021 -0.6735 -vn -0.7392 -0.2759 -0.6144 -vn -0.7392 0.3976 0.5436 -vn -0.7392 0.1421 0.6583 -vn -0.7392 0.2720 -0.6161 -vn -0.7392 0.4991 -0.4522 -vn -0.7392 -0.5019 -0.4491 -vn -0.7392 -0.1379 0.6592 -vn -0.7392 0.6399 -0.2101 -vn -0.7392 -0.5020 -0.4491 -vn 0.3947 0.8051 0.4428 -vn 0.1916 0.9762 0.1014 -vn 0.0000 -0.4096 -0.9123 -vn 0.0000 0.2110 0.9775 -vn 0.0000 0.5903 0.8072 -vn 0.0000 0.8676 0.4973 -vn 0.0000 0.4039 -0.9148 -vn 0.0000 0.0156 -0.9999 -vn 0.0000 0.9461 0.3238 -vn -0.2096 0.7164 0.6655 -vn 0.0000 0.7326 0.6806 -vn 0.0000 0.9960 -0.0890 -vn -0.2096 0.9251 0.3166 -vn 0.0000 -0.9928 -0.1201 -vn -0.2096 -0.9345 0.2876 -vn -0.2097 -0.9707 -0.1174 -vn 0.0000 0.8737 -0.4864 -vn -0.2095 0.9739 -0.0870 -vn 0.0000 -0.7535 0.6575 -vn 0.0000 -0.9558 0.2942 -vn -0.0017 0.4125 -0.9109 -vn 0.0017 0.5994 -0.8004 -vn -0.0007 0.2227 -0.9749 -vn 0.1736 0.0055 -0.9848 -vn 0.3495 -0.3763 -0.8581 -vn 0.1736 -0.3955 -0.9019 -vn 0.1736 0.1994 0.9644 -vn 0.3495 0.5465 0.7611 -vn 0.1736 0.5744 0.7999 -vn 0.1736 0.4056 -0.8974 -vn 0.3495 0.6998 -0.6230 -vn 0.3495 0.3859 -0.8538 -vn 0.3494 -0.6928 -0.6308 -vn 0.1736 -0.7282 -0.6631 -vn 0.1736 -0.5833 0.7935 -vn 0.3495 -0.1999 0.9153 -vn 0.1736 -0.2101 0.9621 -vn 0.1713 0.9807 0.0944 -vn 0.3519 0.8909 -0.2873 -vn 0.1741 0.9366 -0.3040 -vn 0.1737 -0.9799 0.0984 -vn 0.3508 -0.8299 0.4338 -vn 0.1729 -0.8712 0.4595 -vn 0.3495 0.0052 -0.9369 -vn 0.3508 -0.8993 -0.2610 -vn 0.1729 -0.9449 -0.2781 -vn 0.3495 0.1897 0.9175 -vn 0.1736 0.7355 -0.6549 -vn 0.0000 -1.0000 0.0000 -vn -0.7392 0.6694 0.0741 -vn -0.7392 0.5814 0.3400 -vn 0.1726 0.8518 0.4946 -vn 0.3493 0.9304 0.1109 -vn 0.0000 -0.7394 -0.6733 -vn 0.0000 -0.4016 -0.9158 -vn 0.0046 -0.9503 -0.3114 -vn -0.7392 0.5030 -0.4479 -vn -0.7392 0.6417 -0.2045 -vn 0.0099 -0.9951 0.0989 -vn -0.0358 -0.9294 -0.3673 -vn 0.0103 -0.8912 -0.4535 -vn 0.2076 -0.8909 -0.4039 -vn -1.0000 0.0000 -0.0017 -vn 0.0008 1.0000 -0.0025 -vn 0.0000 1.0000 -0.0000 -vn 0.0009 1.0000 -0.0021 -vn -0.7553 -0.6554 0.0000 -vn 0.0659 -0.9968 0.0452 -vn 0.1776 0.0449 0.9831 -vn 0.0531 0.0228 0.9983 -vn 0.0955 -0.0741 0.9927 -vn 0.9374 0.3482 -0.0004 -vn 0.7174 0.6966 -0.0004 -vn 0.0384 0.9993 0.0003 -vn 0.0633 0.9979 0.0142 -vn 0.0629 0.9980 0.0067 -vn 0.0000 0.9928 0.1200 -vn 0.3503 0.9366 -0.0026 -vn -0.1718 -0.9792 -0.1083 -vn 0.0440 -0.9933 -0.1072 -vn 0.1867 -0.9824 0.0001 -vn -0.0025 -0.1721 0.9851 -vn -0.0912 -0.0814 0.9925 -vn 0.0084 -1.0000 0.0018 -vn 0.0012 -1.0000 0.0037 -vn -0.0014 -1.0000 0.0029 -vn 0.4277 0.8968 -0.1136 -vn 0.4529 0.8866 -0.0942 -vn 0.4213 0.8991 -0.1184 -vn 0.3675 0.9165 -0.1580 -vn -1.0000 -0.0024 0.0009 -vn -0.9996 0.0284 0.0001 -vn -1.0000 -0.0023 0.0002 -vn -0.0042 -0.4414 0.8973 -vn 0.9925 0.1219 -0.0004 -vn 0.0003 0.6839 0.7295 -vn 0.0068 0.8153 0.5790 -vn 0.0069 0.7735 0.6337 -vn 0.9995 0.0305 0.0113 -vn 0.9996 0.0271 0.0086 -vn 0.9990 0.0411 0.0199 -vn -0.0142 0.0000 -0.9999 -vn -0.7101 0.0000 -0.7041 -vn 0.0006 0.0000 1.0000 -vn 0.9906 0.0533 -0.1263 -vn 0.9989 0.0181 -0.0430 -vn 0.9831 0.0711 -0.1685 -vn -0.0032 1.0000 0.0043 -vn -0.0069 0.9999 0.0094 -vn -0.0116 0.9998 0.0158 -vn -0.7231 0.0000 0.6908 -vn 0.0239 -0.0000 0.9997 -vn 0.0661 0.2143 0.9745 -vn -0.0534 0.1607 0.9856 -vn -0.9599 0.2804 0.0041 -vn -0.9998 -0.0146 -0.0168 -vn -0.9997 0.0245 -0.0038 -vn -0.7314 0.6819 0.0000 -vn -0.5771 0.8166 0.0000 -vn -0.0183 0.9998 0.0000 -vn 0.0003 -1.0000 0.0018 -vn 0.0003 -1.0000 0.0006 -vn -0.9996 0.0287 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.2384 0.0306 0.9707 -vn -0.2313 0.0300 0.9724 -vn -0.2387 0.0306 0.9706 -vn 0.2266 -0.0648 -0.9718 -vn 0.2004 -0.2741 -0.9406 -vn 0.2011 -0.2741 -0.9404 -vn 0.2503 0.1475 -0.9569 -vn -0.1835 0.0237 -0.9827 -vn -0.1915 0.0242 -0.9812 -vn -0.1918 0.0243 -0.9811 -vn 0.1729 -0.0601 0.9831 -vn 0.1549 -0.2613 0.9527 -vn 0.1726 -0.0589 0.9832 -vn 0.2018 0.1448 0.9687 -vn 0.0045 1.0000 -0.0000 -vn 0.0045 1.0000 -0.0002 -vn 0.0045 1.0000 -0.0003 -vn 0.0108 0.0000 0.9999 -vn 0.0065 -0.0126 0.9999 -vn -0.9996 0.0285 0.0001 -vn -0.4359 -0.8229 0.3645 -vn 0.0325 -0.9234 0.3824 -vn 0.0399 -0.9200 0.3899 -vn -0.7635 -0.5353 0.3612 -vn -0.3965 -0.8590 0.3238 -vn -0.9254 -0.0534 0.3752 -vn -0.9451 -0.1017 0.3106 -vn 0.4373 -0.8385 0.3251 -vn 0.1343 -0.2902 0.9475 -vn 0.5361 0.7520 0.3836 -vn 0.7139 0.5668 0.4112 -vn 0.7002 0.6004 0.3864 -vn -0.4116 -0.8400 -0.3535 -vn -0.5225 -0.7240 -0.4504 -vn -0.2528 -0.8446 -0.4720 -vn 0.4994 -0.4904 -0.7143 -vn 0.9430 0.2636 -0.2033 -vn -0.0042 -0.2396 0.9709 -vn -0.3146 -0.4857 0.8155 -vn 0.0219 -0.6490 0.7604 -vn -0.0301 0.8417 0.5391 -vn -0.2331 0.6632 0.7112 -vn 0.0822 0.6602 0.7465 -vn -0.3612 -0.0631 0.9303 -vn -0.2906 -0.7067 0.6451 -vn -0.0489 -0.8137 0.5792 -vn -0.1255 0.2504 0.9600 -vn -0.1193 0.0081 0.9928 -vn -0.4287 -0.8962 -0.1143 -vn -0.2241 -0.9587 -0.1749 -vn 0.1755 0.8627 -0.4743 -vn -0.7058 -0.0757 0.7043 -vn -0.2321 0.9724 0.0227 -vn -0.4616 0.3815 0.8009 -vn -0.4902 0.6268 0.6057 -vn -0.6356 0.2916 0.7148 -vn -0.2598 0.8413 0.4741 -vn -0.8034 0.1248 0.5823 -vn -0.7855 -0.2778 0.5530 -vn -0.0542 -0.0196 0.9983 -vn 0.0720 0.0719 0.9948 -vn -0.0369 0.0262 0.9990 -vn 0.1678 -0.9856 -0.0186 -vn 0.8140 -0.5718 0.1023 -vn 0.8331 -0.5485 0.0710 -vn 0.6914 -0.6742 0.2596 -vn 0.9087 -0.4054 -0.0992 -vn 0.8478 0.5249 0.0756 -vn 0.3531 -0.4900 -0.7970 -vn 0.3697 -0.4757 -0.7982 -vn 0.4955 -0.3528 -0.7937 -vn -0.5023 0.1993 -0.8414 -vn -0.5138 -0.4461 -0.7328 -vn -0.6358 -0.7667 0.0886 -vn -0.6701 -0.7415 0.0340 -vn -0.7347 -0.6726 -0.0879 -vn -0.3438 0.9364 0.0707 -vn -0.5326 -0.4023 0.7446 -vn -0.9117 0.1141 -0.3947 -vn -0.8213 0.3707 -0.4336 -vn -0.8926 -0.1116 -0.4368 -vn -0.5920 0.6842 -0.4260 -vn -0.5148 0.7326 -0.4453 -vn -0.2182 0.8601 -0.4612 -vn -0.7638 -0.4827 -0.4286 -vn -0.6967 -0.6018 -0.3904 -vn 0.0595 0.1546 -0.9862 -vn 0.1609 0.1800 -0.9704 -vn 0.2004 0.0457 -0.9787 -vn -0.8701 -0.2910 -0.3978 -vn -0.2039 0.0768 -0.9760 -vn -0.0891 0.0800 -0.9928 -vn -0.1501 -0.0923 -0.9843 -vn -0.1297 0.1691 -0.9770 -vn -0.0197 0.1957 -0.9805 -vn 0.1188 0.1321 -0.9841 -vn -0.1343 -0.5742 0.8076 -vn 0.2696 0.8275 -0.4924 -vn 0.5330 0.7025 -0.4715 -vn 0.0008 0.8705 -0.4923 -vn 0.8537 0.3268 -0.4055 -vn 0.6052 0.6839 -0.4074 -vn 0.8329 0.3924 -0.3904 -vn 0.2965 0.1166 -0.9479 -vn 0.2685 -0.0337 -0.9627 -vn 0.0060 -0.9304 -0.3664 -vn 0.0008 -0.8965 -0.4430 -vn 0.3376 -0.8562 -0.3910 -vn 0.0151 0.9170 -0.3986 -vn 0.8943 -0.1135 -0.4328 -vn 0.9324 0.0743 -0.3536 -vn 0.9035 -0.2441 -0.3524 -vn 0.3259 -0.8766 -0.3539 -vn 0.6499 -0.6564 -0.3830 -vn -0.8512 0.5246 -0.0178 -vn -0.8580 0.5136 -0.0065 -vn -0.9108 0.3996 0.1034 -vn 0.7555 -0.4131 -0.5086 -vn 0.2509 0.8853 -0.3916 -vn 0.6199 -0.2088 0.7564 -vn 0.4091 -0.4557 0.7906 -vn 0.5951 -0.5372 0.5978 -vn 0.2713 0.8051 0.5275 -vn 0.4716 0.5935 0.6522 -vn 0.6095 0.0346 0.7920 -vn 0.3896 -0.1437 0.9097 -vn 0.1960 0.3531 0.9148 -vn 0.4949 0.1887 0.8482 -vn 0.1604 0.0939 0.9826 -vn 0.2555 -0.6460 0.7193 -vn -0.2906 0.8642 -0.4108 -vn -0.0668 -0.2010 -0.9773 -vn -0.1555 0.1178 -0.9808 -vn 0.1484 -0.0910 -0.9847 -vn -0.9882 0.1523 0.0175 -vn -0.9888 0.1480 0.0189 -vn -0.9874 0.1576 0.0158 -vn -0.1981 0.9722 0.1247 -vn -0.4698 0.8810 -0.0566 -vn -0.2475 0.9636 -0.1013 -vn -0.6335 0.7564 0.1630 -vn -0.8243 -0.4961 -0.2727 -vn -0.8333 -0.4608 -0.3054 -vn -0.8333 -0.4610 -0.3051 -vn 0.6348 -0.7714 0.0442 -vn 0.6364 -0.7448 0.2009 -vn 0.6071 -0.7946 0.0073 -vn 0.7036 -0.5555 0.4431 -vn 0.5058 -0.7605 0.4072 -vn 0.8366 0.3517 0.4200 -vn 0.0777 -0.9955 -0.0539 -vn 0.9997 -0.0231 -0.0049 -vn 0.9961 -0.0778 -0.0411 -vn 0.9999 -0.0116 -0.0039 -vn -0.1322 0.2647 0.9552 -vn -0.1735 0.0741 0.9820 -vn -0.1596 -0.3820 0.9103 -vn 0.0562 -0.1279 -0.9902 -vn -0.0954 -0.1999 -0.9752 -vn -0.7969 0.4477 0.4056 -vn -0.7030 0.6106 0.3645 -vn -0.8950 0.2792 0.3479 -vn -0.9274 -0.0480 0.3710 -vn -0.9332 -0.1276 0.3360 -vn 0.1627 -0.1862 -0.9689 -vn -0.2199 -0.4771 -0.8509 -vn -0.4155 -0.3515 -0.8390 -vn 0.0220 -0.6074 -0.7941 -vn 0.0284 -0.6814 -0.7314 -vn -0.9782 0.1265 0.1650 -vn 0.9747 -0.1259 -0.1847 -vn -0.9643 0.1254 -0.2334 -vn 0.9644 -0.1253 0.2329 -vn 0.0000 0.0000 -1.0000 -vn -0.9294 0.0072 -0.3691 -vn -0.9135 -0.1730 -0.3681 -vn -0.9244 0.0112 -0.3813 -vn 0.9126 0.4087 0.0081 -vn 0.9938 0.1110 -0.0087 -vn 0.9694 0.2353 -0.0703 -vn 0.7576 -0.6420 -0.1176 -vn 0.6797 -0.6967 -0.2294 -vn 0.9503 -0.3024 -0.0742 -vn 0.4107 -0.1377 -0.9013 -vn 0.2619 0.1185 -0.9578 -vn -0.0135 -0.0943 -0.9954 -vn 0.0078 0.0875 -0.9961 -vn 0.0688 0.0018 -0.9976 -vn -0.1771 0.8526 0.4916 -vn -0.3418 0.5524 0.7603 -vn -0.3418 0.8139 0.4699 -vn 0.0685 -0.3189 -0.9453 -vn -0.0143 -0.2596 -0.9656 -vn 0.0729 -0.1716 -0.9825 -vn 0.0651 0.1273 -0.9897 -vn -0.0706 0.1182 -0.9905 -vn 1.0000 0.0023 -0.0008 -vn 1.0000 -0.0002 0.0030 -vn 1.0000 0.0015 -0.0004 -vn -0.0001 -0.0340 0.9994 -vn -0.0498 -0.0490 0.9976 -vn 0.0678 -0.0090 0.9977 -vn -0.5504 -0.3981 0.7339 -vn -0.5427 -0.3508 0.7631 -vn -0.5416 -0.3449 0.7666 -vn -0.5311 -0.2921 0.7953 -vn -0.0709 -0.0616 0.9956 -vn -0.0838 -0.0619 0.9946 -vn -0.0013 -0.3706 -0.9288 -vn -0.9183 0.1838 -0.3508 -vn -0.5575 -0.6747 -0.4838 -vn -0.7209 -0.6421 -0.2608 -vn -0.4818 -0.7244 -0.4930 -vn -0.9283 0.1682 -0.3317 -vn -0.4818 -0.7079 -0.5165 -vn -0.3657 -0.8152 -0.4492 -vn -0.3512 -0.0121 -0.9362 -vn -0.2191 -0.1148 -0.9689 -vn -0.3686 -0.1016 -0.9240 -vn -0.4419 -0.6564 -0.6115 -vn -0.2733 0.0292 -0.9615 -vn -0.4017 0.1065 -0.9096 -vn -0.1085 -0.0119 -0.9940 -vn -0.0921 -0.2834 -0.9546 -vn -0.0075 0.9510 -0.3090 -vn -0.0149 0.9967 -0.0798 -vn -0.1452 0.9878 -0.0562 -vn -0.1765 0.5785 0.7964 -vn -0.0009 0.8608 0.5090 -vn 0.0003 0.5786 0.8156 -vn -0.0038 0.9938 0.1107 -vn -0.0063 0.9952 -0.0973 -vn 0.0131 0.9999 -0.0089 -vn 0.0194 0.9998 -0.0061 -vn 0.0112 0.9999 -0.0082 -vn 0.0078 -1.0000 -0.0015 -vn 0.2303 -0.0298 0.9727 -vn 0.0014 0.4047 0.9144 -vn 0.0644 0.2818 0.9573 -vn 1.0000 0.0003 0.0000 -vn 1.0000 -0.0004 0.0017 -vn 0.0019 -0.9264 0.3765 -vn 0.0019 -0.9264 0.3764 -vn 0.0004 -0.9279 0.3729 -vn -0.0009 0.9674 -0.2532 -vn -0.0027 0.9679 -0.2513 -vn 0.0000 -0.0078 1.0000 -vn 0.2971 -0.9544 -0.0289 -vn -0.2830 -0.0498 0.9578 -vn -0.1962 -0.1065 0.9748 -vn -0.1386 -0.1467 0.9794 -vn 0.0449 -0.9983 0.0366 -vn -0.1537 -0.7386 0.6564 -vn -0.1742 -0.7514 0.6364 -vn -0.0938 -0.7055 0.7025 -vn 0.1677 -0.9812 0.0954 -vn 0.0000 0.0003 1.0000 -vn 0.0007 0.0274 0.9996 -vn -0.2308 0.5325 -0.8144 -vn 0.0023 0.5871 -0.8095 -vn -0.2591 0.7650 -0.5896 -vn 0.0192 -0.9998 0.0018 -vn 0.0019 -0.9998 -0.0209 -vn 0.0194 0.9125 -0.4087 -vn 0.0124 0.8572 -0.5149 -vn 0.0037 0.9606 -0.2777 -vn -1.0000 0.0009 -0.0033 -vn -1.0000 0.0019 0.0002 -vn -1.0000 -0.0006 0.0023 -vn 0.0129 0.8474 -0.5307 -vn 0.0176 0.7110 -0.7030 -vn -0.0006 0.0000 -1.0000 -vn 0.0009 -0.7821 -0.6231 -vn -0.0038 -0.8297 -0.5582 -vn -0.0022 -0.7870 -0.6170 -vn 0.0012 -0.7370 -0.6759 -vn 0.9996 0.0087 -0.0275 -vn 0.9994 0.0198 -0.0296 -vn 0.9988 -0.0011 -0.0484 -vn -0.0118 0.9250 -0.3797 -vn -0.0118 0.9251 -0.3797 -vn 0.0305 0.1910 0.9811 -vn 0.3359 -0.9299 -0.1496 -vn 0.0008 -0.0000 1.0000 -vn 0.0012 0.0000 1.0000 -vn -0.2096 -0.8391 -0.5021 -vn 0.0000 -0.4209 0.9071 -vn -0.2095 -0.7367 0.6429 -vn 0.0000 0.2231 -0.9748 -vn -0.2095 0.5870 -0.7820 -vn 0.0000 0.6003 -0.7998 -vn -0.2096 0.8543 -0.4756 -vn -0.2096 -0.4116 0.8869 -vn 0.0000 -0.5751 -0.8181 -vn -0.2096 -0.1883 -0.9595 -vn 0.0000 -0.1926 -0.9813 -vn 0.0000 0.3925 0.9198 -vn 0.0000 -0.0156 0.9999 -vn -0.2095 0.2182 -0.9532 -vn -0.4206 -0.5218 -0.7422 -vn -0.4205 -0.7786 -0.4658 -vn -0.4205 0.8584 0.2938 -vn -0.4207 -0.9006 -0.1090 -vn -0.4205 -0.6836 0.5965 -vn -0.4207 -0.8671 0.2668 -vn -0.4205 0.9037 -0.0808 -vn -0.4205 0.5447 -0.7256 -vn -0.4206 0.7927 -0.4413 -vn -0.4129 -0.5468 0.7284 -vn -0.4205 0.2025 -0.8844 -vn -0.4205 -0.1748 -0.8903 -vn 0.0226 0.5822 0.8127 -vn 0.0260 0.3930 0.9192 -vn 0.0226 0.7334 0.6795 -vn -0.0002 -0.4032 -0.9151 -vn 0.0017 -0.8573 -0.5148 -vn 0.0047 -0.7403 -0.6723 -vn -0.2096 -0.5623 -0.7999 -vn 0.0000 -0.8581 -0.5135 -vn 0.0095 -0.9608 -0.2772 -vn 0.0124 -0.9561 0.2928 -vn 0.0147 -0.9947 0.1018 -vn 0.0183 0.8623 0.5061 -vn 0.0176 0.9465 0.3221 -vn 0.0072 -0.9925 -0.1219 -vn 0.0069 0.9533 -0.3020 -vn 0.0117 0.9958 -0.0908 -vn 0.0061 0.8729 -0.4878 -vn 0.0127 0.9936 0.1119 -vn 0.0018 0.7478 -0.6639 -vn 0.0175 -0.7546 0.6560 -vn 0.0210 -0.8852 0.4648 -vn -0.4131 0.5238 0.7450 -vn -0.4205 0.6647 0.6175 -vn 0.0238 -0.4227 0.9060 -vn 0.0240 -0.5920 0.8056 -vn 0.0249 0.2020 0.9791 -vn 0.0271 -0.0156 0.9995 -vn 0.0249 -0.2129 0.9768 -vn -0.0030 0.0056 -1.0000 -vn -0.0008 -0.1923 -0.9813 -vn -0.0005 -0.5753 -0.8180 -vn 0.3495 -0.5549 0.7549 -vn -0.7392 -0.5851 0.3335 -vn -0.7392 -0.6702 0.0667 -vn -0.7392 0.2774 -0.6138 -vn -0.7392 -0.4980 -0.4535 -vn -0.7392 -0.6394 -0.2117 -vn -0.7392 0.0038 -0.6735 -vn -0.7392 -0.1437 0.6580 -vn -0.7392 -0.3989 0.5426 -vn -0.7392 -0.2705 -0.6168 -vn -0.7392 -0.6393 -0.2117 -vn -0.7392 0.1364 0.6595 -vn -0.7392 0.3928 0.5471 -vn -0.7392 0.1363 0.6595 -vn -0.7392 0.0037 -0.6735 -vn 0.0044 -0.8703 0.4925 -vn 0.0000 -0.5923 0.8057 -vn 0.0000 -0.2134 0.9770 -vn 0.0000 0.5833 0.8123 -vn 0.0000 0.2025 0.9793 -vn 0.0000 0.8632 0.5048 -vn -0.0008 0.9939 0.1106 -vn -0.0008 0.9526 -0.3042 -vn 0.0000 0.7469 -0.6650 -vn 0.0000 0.4118 -0.9113 -vn 0.0000 0.0056 -1.0000 -vn -0.0011 -0.0100 -0.9999 -vn 0.1916 -0.3347 -0.9226 -vn -0.0141 0.1762 -0.9843 -vn 0.9299 -0.3646 0.0492 -vn -0.8437 -0.4007 -0.3572 -vn -0.1981 0.2753 -0.9407 -vn 0.1122 0.1650 0.9799 -vn 0.4661 0.7908 -0.3968 -vn 0.2657 0.3724 -0.8892 -vn 0.1816 -0.6180 -0.7649 -vn -0.5651 -0.8034 0.1875 -vn -0.2532 -0.1015 0.9621 -vn 0.6427 0.3512 0.6808 -vn 0.5898 0.6956 0.4103 -vn 0.6071 -0.6284 -0.4863 -vn 0.0024 -0.2230 -0.9748 -vn 0.1520 -0.3885 -0.9088 -vn -0.2547 -0.0055 -0.9670 -vn -0.2450 -0.1390 -0.9595 -vn -0.7987 0.4417 -0.4087 -vn 0.1835 -0.6337 -0.7515 -vn 0.2058 -0.6052 -0.7690 -vn 0.8328 0.2949 0.4686 -vn -0.1746 0.0412 0.9838 -vn -0.6157 0.6927 0.3757 -vn -0.5552 0.7720 0.3094 -vn -0.4799 -0.3446 -0.8068 -vn -0.5692 -0.2399 -0.7864 -vn -0.1767 0.4004 0.8992 -vn 0.0020 0.4067 0.9136 -vn -0.4320 0.8997 0.0621 -vn -0.3401 0.9404 0.0030 -vn -0.3412 0.9267 0.1573 -vn -0.3351 0.3833 0.8607 -vn 0.0147 -0.8943 -0.4473 -vn 0.3159 -0.8212 -0.4752 -vn -0.6093 0.1059 0.7858 -vn -0.5712 0.1543 0.8061 -vn -0.4521 0.2860 0.8449 -vn -1.0000 -0.0020 0.0037 -vn -1.0000 -0.0014 0.0015 -vn -1.0000 0.0035 0.0012 -vn 0.0023 -1.0000 -0.0046 -vn 0.0000 0.8616 0.5077 -vn 0.0000 0.9368 0.3499 -vn 0.0005 -0.0000 1.0000 -vn -1.0000 0.0000 0.0001 -vn -1.0000 -0.0001 0.0000 -vn -0.9936 -0.0776 0.0827 -vn -0.9988 -0.0409 0.0277 -vn -0.9989 -0.0116 0.0457 -vn 0.1130 -0.9899 0.0855 -vn 0.0001 -0.0016 -1.0000 -vn 0.0001 -0.0018 -1.0000 -vn -0.0001 0.0043 -1.0000 -vn -0.2481 0.9631 0.1047 -vn -0.0225 0.9869 0.1599 -vn 0.3166 -0.3672 -0.8746 -vn 0.0821 0.2134 -0.9735 -vn 0.2062 -0.1246 -0.9706 -vn 0.0158 -0.9998 0.0144 -vn 0.0158 -0.9999 -0.0010 -vn -0.0101 -0.9999 0.0077 -vn -0.0041 -1.0000 -0.0034 -vn -0.2085 -0.9777 0.0251 -vn -0.0025 -0.0667 0.9978 -vn -0.0367 -0.0249 0.9990 -vn -0.0092 0.0030 1.0000 -vn -0.0035 -0.0072 -1.0000 -vn 0.0013 -0.0151 -0.9999 -vn -0.0025 0.0309 -0.9995 -vn -0.0645 -0.8468 0.5280 -vn -0.1878 -0.7359 0.6505 -vn -0.1741 -0.7513 0.6366 -vn 0.0036 0.9566 0.2913 -vn -0.0077 0.9527 0.3038 -vn -0.0424 0.9387 0.3420 -vn 0.0143 0.9999 0.0000 -vn 0.0384 0.9993 0.0000 -vn 1.0000 -0.0029 -0.0006 -vn 1.0000 -0.0004 -0.0001 -vn 0.9988 0.0351 -0.0333 -vn -0.2089 -0.7142 0.6681 -vn -0.0331 0.0120 -0.9994 -vn -0.0837 0.0214 -0.9963 -vn -0.0089 -0.0029 -1.0000 -vn -1.0000 -0.0013 0.0003 -vn -1.0000 -0.0014 -0.0002 -vn -1.0000 -0.0002 0.0001 -vn 0.0000 0.0100 1.0000 -vn 0.0000 0.0100 0.9999 -vn 0.0000 0.4096 0.9123 -vn 0.0000 0.0031 1.0000 -vn 0.0000 0.7452 0.6668 -vn 0.0000 -0.4038 0.9148 -vn 0.0000 -0.7410 0.6715 -vn 0.0000 -0.9501 0.3120 -vn 0.0000 -0.9948 -0.1014 -vn 0.0000 -0.2110 -0.9775 -vn 0.0000 0.2048 -0.9788 -vn 0.0000 0.5852 -0.8109 -vn 0.0000 0.9520 0.3060 -vn 0.0000 0.9942 -0.1077 -vn 0.0000 -0.8676 -0.4972 -vn 0.0000 -0.5903 -0.8072 -vn 0.0000 0.8644 -0.5027 -vn 0.0105 -0.0033 -0.9999 -vn 0.0049 -0.0071 -1.0000 -vn 0.0167 -0.0144 -0.9998 -vn 0.0140 0.0134 -0.9998 -vn 0.0191 -0.0234 -0.9995 -vn 0.0126 -0.0195 -0.9997 -vn 0.0214 -0.7262 0.6871 -vn 0.0890 0.1539 0.9841 -vn 0.0981 0.9952 -0.0016 -vn 0.0082 -0.0063 -0.9999 -vn 0.0002 -0.0298 -0.9996 -vn 0.6898 -0.7183 -0.0912 -vn -0.9996 -0.0027 0.0294 -vn -0.9996 -0.0028 0.0264 -vn -1.0000 -0.0011 0.0065 -vn -0.9998 0.0173 -0.0094 -vn -0.9998 0.0192 -0.0091 -vn -0.9998 0.0185 -0.0083 -vn 0.1022 -0.9909 -0.0872 -vn 0.9999 0.0158 -0.0034 -vn 0.9999 0.0162 0.0058 -vn -0.4131 0.1754 0.8936 -vn -0.4130 -0.2032 0.8878 -vn 0.3495 -0.9323 0.0937 -vn 0.3494 0.8088 0.4730 -vn 0.0003 1.0000 -0.0033 -vn -0.0000 1.0000 -0.0034 -vn 0.1407 0.0990 0.9851 -vn 0.7178 0.6962 -0.0002 -vn 0.0625 0.9980 0.0000 -vn 0.0019 -1.0000 0.0048 -vn 0.0011 -1.0000 0.0040 -vn 0.0032 0.8490 0.5284 -vn 0.0000 0.6037 0.7972 -vn 0.9999 0.0164 0.0000 -vn -0.9995 0.0328 -0.0000 -vn -0.9585 0.2852 0.0000 -vn -0.9992 0.0328 0.0224 -vn 0.0000 -1.0000 -0.0032 -vn -0.2310 0.0300 0.9725 -vn 0.2263 -0.0648 -0.9719 -vn -0.1831 0.0237 -0.9828 -vn 0.1562 -0.2613 0.9525 -vn 0.2022 0.1448 0.9686 -vn 0.0002 -0.0310 0.9995 -vn 0.0086 -0.0065 0.9999 -vn -0.7729 -0.4929 0.3996 -vn 0.5373 0.7515 0.3828 -vn -0.7962 0.5972 -0.0973 -vn -0.9898 0.1409 0.0212 -vn 0.9998 -0.0203 0.0082 -vn 0.9995 -0.0303 0.0110 -vn 0.9995 -0.0264 0.0165 -vn 1.0000 0.0052 -0.0082 -vn 0.9998 0.0031 -0.0188 -vn 1.0000 0.0052 -0.0053 -vn 0.9998 -0.0203 0.0083 -vn -0.9169 -0.1676 -0.3623 -vn 0.9998 -0.0057 0.0201 -vn 1.0000 -0.0023 0.0081 -vn 1.0000 0.0033 0.0006 -vn 1.0000 0.0030 -0.0003 -vn 0.0103 0.9999 0.0015 -vn 0.0016 1.0000 -0.0032 -vn 0.0016 -1.0000 -0.0030 -vn 0.0016 0.4056 0.9140 -vn 0.2676 -0.1365 0.9538 -vn 0.2993 -0.0289 0.9537 -vn 0.3113 0.0000 0.9503 -vn 0.9999 0.0012 0.0142 -vn 0.9999 -0.0069 0.0115 -vn 0.9998 -0.0074 0.0176 -vn 0.9998 0.0055 0.0191 -vn 0.9999 -0.0062 -0.0113 -vn 0.9998 -0.0102 0.0180 -vn 1.0000 0.0012 0.0063 -vn 0.9990 -0.0230 0.0379 -vn 0.9988 -0.0342 0.0357 -vn -0.0038 0.9279 -0.3729 -vn -0.0019 0.9272 -0.3747 -vn -0.4116 -0.0505 0.9100 -vn -0.4004 -0.0470 0.9152 -vn -0.0165 0.1342 0.9908 -vn 0.0006 0.1740 0.9847 -vn -0.1136 -0.1094 0.9875 -vn -0.2458 -0.7423 0.6233 -vn 0.0158 -0.9997 -0.0163 -vn 0.0011 0.0175 0.9998 -vn 0.0011 0.0178 0.9998 -vn -0.3352 0.8960 -0.2911 -vn -0.3418 0.8139 -0.4699 -vn -0.5161 0.5137 -0.6854 -vn -0.3352 0.3832 -0.8607 -vn -0.0003 0.4067 -0.9136 -vn -0.0032 0.7432 -0.6691 -vn -1.0000 -0.0017 -0.0014 -vn -0.9997 0.0242 -0.0079 -vn -0.9999 -0.0005 0.0113 -vn -1.0000 -0.0017 0.0052 -vn -1.0000 0.0008 0.0100 -vn -0.9997 0.0098 0.0219 -vn -1.0000 -0.0002 -0.0028 -vn -1.0000 -0.0004 -0.0030 -vn -0.9997 0.0217 -0.0126 -vn -0.9999 0.0066 -0.0078 -vn -1.0000 0.0017 -0.0053 -vn -1.0000 -0.0010 -0.0021 -vn 0.0036 0.7800 -0.6258 -vn -0.0038 -0.8296 -0.5583 -vn 0.0075 -0.7262 -0.6874 -vn 0.9974 -0.0027 -0.0714 -vn 0.9977 -0.0028 -0.0683 -vn 0.9994 0.0156 -0.0323 -vn 0.9992 0.0174 -0.0347 -vn 0.9998 0.0055 -0.0184 -vn 0.0000 0.4209 -0.9071 -vn -0.7068 -0.0395 0.7063 -vn -1.0000 0.0003 0.0006 -vn -1.0000 0.0048 -0.0023 -vn -0.9999 0.0039 -0.0102 -vn -1.0000 0.0053 -0.0031 -vn -1.0000 0.0043 0.0067 -vn -1.0000 -0.0029 0.0064 -vn -1.0000 0.0001 0.0000 -vn -1.0000 0.0000 -0.0001 -vn -1.0000 -0.0001 -0.0002 -vn -1.0000 -0.0004 -0.0003 -vn -1.0000 -0.0004 0.0003 -vn -1.0000 -0.0001 0.0002 -vn -0.9987 0.0051 0.0502 -vn -0.9982 0.0030 0.0605 -vn -0.9989 0.0051 0.0473 -vn -0.9993 -0.0329 0.0162 -vn -0.9986 -0.0229 0.0467 -vn 0.0002 0.0167 -0.9999 -vn 0.0002 0.0166 -0.9999 -vn 0.0000 0.3557 -0.9346 -vn 0.0002 0.3568 -0.9342 -vn 0.2980 -0.0094 -0.9545 -vn 0.2802 -0.0547 -0.9584 -vn -0.0809 -0.9967 0.0014 -vn -0.0094 -0.9999 -0.0131 -vn 0.0425 -0.9980 -0.0467 -vn 0.2554 -0.9667 -0.0167 -vn -0.1676 -0.9859 0.0010 -vn 0.0085 -0.9994 -0.0332 -vn 0.0001 -0.9982 0.0598 -vn -0.0770 -0.1342 0.9880 -vn -0.0276 -0.0247 0.9993 -vn -0.0573 -0.2038 0.9773 -vn -0.0865 -0.2315 0.9690 -vn -0.0642 -0.2239 0.9725 -vn -0.0213 0.1330 -0.9909 -vn -0.0229 0.1103 -0.9936 -vn 0.0029 0.0742 -0.9972 -vn -0.0149 0.0524 -0.9985 -vn -0.0037 -0.0049 -1.0000 -vn 0.0006 -0.0116 -0.9999 -vn -0.0015 -0.0051 -1.0000 -vn 0.0005 0.0016 -1.0000 -vn 0.0304 0.9648 0.2611 -vn 0.9977 -0.0671 0.0092 -vn 1.0000 0.0008 -0.0097 -vn 0.9984 -0.0563 0.0014 -vn 1.0000 0.0063 -0.0066 -vn 0.9998 0.0132 -0.0167 -vn 0.9981 -0.0579 0.0191 -vn 0.9995 -0.0183 -0.0261 -vn 0.9988 0.0158 -0.0460 -vn 0.9753 0.0548 -0.2141 -vn 0.9779 0.0399 -0.2055 -vn 0.9964 0.0220 -0.0823 -vn 0.9983 -0.0022 -0.0581 -vn 0.9923 0.1220 -0.0202 -vn 1.0000 -0.0015 -0.0008 -vn 0.9780 0.2080 0.0165 -vn 0.9807 0.1942 0.0201 -vn 0.9647 0.2633 -0.0022 -vn -0.0195 0.1712 -0.9850 -vn -0.0217 0.2095 -0.9776 -vn -0.3452 -0.0362 -0.9378 -vn -0.3792 -0.0466 -0.9241 -vn -1.0000 -0.0007 0.0002 -vn -1.0000 -0.0026 0.0024 -vn -1.0000 0.0000 -0.0002 -vn -1.0000 -0.0009 -0.0003 -vn -1.0000 -0.0037 -0.0008 -s off -f 1623/2564/1875 1625/2565/1875 1626/2566/1875 -f 1634/2567/1876 1635/2568/1876 1631/2569/1876 -f 1630/2570/1877 1622/2571/1877 1626/2566/1877 -f 1622/2571/1878 1623/2564/1878 1626/2566/1878 -f 1623/2564/1879 1624/2572/1879 1625/2565/1879 -f 1626/2566/1880 1627/2573/1880 1628/2574/1880 -f 1628/2574/1881 1629/2575/1881 1626/2566/1881 -f 1629/2575/1882 1630/2570/1882 1626/2566/1882 -f 1636/2576/1883 1631/2569/1883 1635/2568/1883 -f 1631/2569/1884 1632/2577/1884 1633/2578/1884 -f 1634/2567/1885 1631/2569/1885 1633/2578/1885 -s 1 -f 1637/2579/1886 1638/2580/1887 1639/2581/1888 -f 1640/2582/1889 1641/2583/1890 1639/2584/1891 -f 1643/2585/1892 1645/2586/1893 1642/2587/1893 -f 1642/2587/1893 1650/2588/1894 1649/2589/1894 -f 1649/2589/1894 1653/2590/1895 1652/2591/1895 -f 1658/2592/1896 1660/2593/1897 1657/2594/1897 -f 1662/2595/1898 1664/2596/1899 1661/2597/1898 -f 1666/2598/1900 1668/2599/1901 1665/2600/1901 -f 1670/2601/1902 1658/2592/1896 1669/2602/1902 -f 1664/2596/1899 1672/2603/1903 1671/2604/1903 -f 1661/2597/1898 1673/2605/1904 1662/2595/1898 -f 1682/2606/1905 1684/2607/1905 1685/2608/1905 -f 1685/2608/1906 1686/2609/1906 1687/2610/1906 -f 1696/2611/1907 1697/2612/1908 1690/2613/1909 -f 1698/2614/1910 1700/2615/1911 1701/2616/1912 -f 1702/2617/1913 1704/2618/1914 1705/2619/1915 -f 1705/2619/1916 1625/2620/1917 1624/2621/1918 -f 1708/2622/1919 1709/2623/1920 1710/2624/1921 -f 1713/2625/1922 1714/2626/1923 1715/2627/1923 -f 1692/2628/1924 1703/2629/1925 1702/2617/1913 -f 1716/2630/1926 1692/2628/1924 1702/2617/1913 -f 1716/2630/1926 1705/2619/1915 1624/2621/1927 -f 1717/2631/1928 1624/2621/1927 1623/2632/1929 -f 1720/2633/1930 1696/2634/1931 1695/2635/1932 -f 1683/2636/1933 1725/2637/1934 1726/2638/1935 -f 1729/2639/1936 1630/2640/1937 1629/2641/1938 -f 1720/2633/1930 1719/2642/1939 1728/2643/1940 -f 1729/2639/1936 1719/2642/1939 1718/2644/1941 -f 1689/2645/1942 1730/2646/1943 1627/2647/1944 -f 1734/2648/1945 1747/2649/1946 1746/2650/1947 -f 1743/2651/1948 1744/2652/1948 1755/2653/1948 -f 1746/2650/1949 1761/2654/1950 1762/2655/1951 -f 1756/2656/1952 1764/2657/1953 1763/2658/1954 -f 1749/2659/1955 1761/2654/1950 1747/2649/1956 -f 1755/2653/1957 1766/2660/1958 1764/2657/1953 -f 1748/2661/1959 1765/2662/1960 1749/2659/1955 -f 1754/2663/1961 1768/2664/1962 1766/2660/1958 -f 1760/2665/1963 1767/2666/1964 1748/2661/1959 -f 1753/2667/1965 1770/2668/1966 1768/2664/1962 -f 1759/2669/1967 1769/2670/1968 1760/2665/1963 -f 1751/2671/1969 1770/2668/1966 1752/2672/1970 -f 1758/2673/1971 1771/2674/1972 1759/2669/1967 -f 1750/2675/1973 1772/2676/1974 1751/2671/1969 -f 1757/2677/1975 1773/2678/1976 1758/2673/1971 -f 1746/2650/1949 1774/2679/1977 1750/2675/1973 -f 1776/2680/1978 1775/2681/1979 1763/2658/1954 -f 1778/2682/1980 1762/2655/1951 1761/2654/1950 -f 1780/2683/1981 1763/2658/1954 1764/2657/1953 -f 1781/2684/1982 1761/2654/1950 1765/2662/1960 -f 1780/2683/1981 1766/2660/1958 1782/2685/1983 -f 1765/2662/1960 1783/2686/1984 1781/2684/1982 -f 1782/2685/1983 1768/2664/1962 1784/2687/1985 -f 1767/2666/1964 1785/2688/1986 1783/2686/1984 -f 1768/2664/1962 1786/2689/1987 1784/2687/1985 -f 1769/2670/1968 1787/2690/1988 1785/2688/1986 -f 1770/2668/1966 1788/2691/1989 1786/2689/1987 -f 1793/2692/1990 1794/2693/1991 1790/2694/1992 -f 1788/2691/1989 1774/2679/1977 1795/2695/1993 -f 1775/2681/1979 1756/2656/1952 1763/2658/1954 -f 1796/2696/1994 1779/2697/1995 1797/2698/1996 -f 1798/2699/1997 1777/2700/1998 1776/2701/1978 -f 1797/2702/1996 1778/2703/1980 1800/2704/1999 -f 1801/2705/2000 1776/2701/1978 1780/2706/1981 -f 1800/2704/1999 1781/2707/1982 1802/2708/2001 -f 1803/2709/2002 1780/2706/1981 1782/2710/1983 -f 1802/2708/2001 1783/2711/1984 1804/2712/2003 -f 1805/2713/2004 1782/2710/1983 1784/2714/1985 -f 1804/2712/2003 1785/2715/1986 1806/2716/2005 -f 1807/2717/2006 1784/2714/1985 1786/2718/1987 -f 1806/2716/2005 1787/2719/1988 1808/2720/2007 -f 1809/2721/2008 1786/2718/1987 1788/2722/1989 -f 1808/2720/2007 1810/2723/2009 1811/2724/2010 -f 1809/2721/2008 1795/2725/1993 1796/2726/1994 -f 1795/2695/1993 1762/2655/1951 1779/2727/1995 -f 1812/2728/2011 1803/2729/2012 1813/2730/2013 -f 1814/2731/2014 1799/2732/2015 1815/2733/2016 -f 1816/2734/2017 1797/2735/2018 1817/2736/2019 -f 1818/2737/2020 1806/2738/2021 1808/2739/2022 -f 1815/2733/2016 1798/2740/2023 1820/2741/2024 -f 1821/2742/2025 1807/2743/2026 1809/2744/2027 -f 1823/2745/2028 1802/2746/2029 1804/2747/2030 -f 1813/2730/2013 1805/2748/2031 1825/2749/2032 -f 1797/2735/2018 1826/2750/2033 1817/2736/2019 -f 1814/2731/2014 1808/2739/2022 1811/2751/2034 -f 1820/2741/2024 1801/2752/2035 1812/2728/2011 -f 1821/2742/2025 1796/2753/2036 1816/2734/2017 -f 1823/2745/2028 1806/2738/2021 1819/2754/2037 -f 1825/2749/2032 1807/2743/2026 1822/2755/2038 -f 1799/2756/2039 1810/2723/2009 1777/2700/1998 -f 1828/2757/2040 1830/2758/2041 1827/2759/2040 -f 1831/2760/2042 1833/2761/2043 1834/2762/2042 -f 1836/2763/2044 1838/2764/2045 1835/2765/2045 -f 1839/2766/2046 1841/2767/2047 1842/2768/2046 -f 1844/2769/2048 1846/2770/2049 1843/2771/2049 -f 1848/2772/2050 1850/2773/2051 1847/2774/2050 -f 1840/2775/2047 1852/2776/2052 1841/2767/2047 -f 1854/2777/2053 1827/2759/2040 1853/2778/2053 -f 1856/2779/2054 1832/2780/2043 1855/2781/2054 -f 1830/2758/2041 1837/2782/2044 1836/2763/2044 -f 1831/2760/2042 1845/2783/2048 1844/2769/2048 -f 1842/2768/2046 1847/2774/2050 1839/2766/2046 -f 1851/2784/2055 1838/2764/2045 1852/2776/2052 -f 1853/2778/2053 1846/2770/2049 1854/2777/2053 -f 1800/2785/2056 1824/2786/2057 1826/2750/2033 -f 1815/2787/2016 1851/2788/1952 1840/2789/2058 -f 1820/2790/2024 1835/2791/1957 1851/2788/1952 -f 1849/2792/2051 1855/2781/2054 1850/2773/2051 -f 1812/2793/2011 1836/2794/1961 1835/2791/1957 -f 1813/2795/2013 1830/2796/1965 1836/2794/1961 -f 1825/2797/2032 1827/2798/1970 1830/2796/1965 -f 1822/2799/2038 1853/2800/1969 1827/2798/1970 -f 1821/2801/2025 1843/2802/2059 1853/2800/1969 -f 1816/2803/2017 1844/2804/2060 1843/2802/2059 -f 1817/2805/2019 1831/2806/2061 1844/2804/2060 -f 1832/2807/1955 1826/2808/2033 1824/2809/2057 -f 1824/2809/2057 1855/2810/1959 1832/2807/1955 -f 1823/2811/2028 1850/2812/1963 1855/2810/1959 -f 1847/2813/2062 1819/2814/2037 1818/2815/2020 -f 1839/2816/1971 1818/2815/2020 1814/2817/2014 -f 1858/2818/1948 1862/2819/1948 1866/2820/1948 -f 1869/2821/1895 1871/2822/2063 1653/2823/1895 -f 1872/2824/1894 1653/2823/1895 1650/2825/1894 -f 1873/2826/1893 1650/2825/1894 1645/2827/1893 -f 1874/2828/1892 1645/2827/1893 1644/2829/1892 -f 1875/2830/1901 1644/2829/1892 1668/2831/1901 -f 1876/2832/1900 1668/2831/1901 1667/2833/1900 -f 1667/2833/1900 1877/2834/1904 1876/2832/1900 -f 1674/2835/1904 1878/2836/1898 1877/2834/1904 -f 1879/2837/1903 1664/2838/1899 1671/2839/1903 -f 1880/2840/1899 1661/2841/1898 1664/2838/1899 -f 1873/2826/1948 1874/2828/1948 1885/2842/1948 -f 1886/2843/2064 1899/2844/2065 1887/2845/2066 -f 1885/2842/2067 1898/2846/2068 1886/2843/2064 -f 1902/2847/2069 1903/2848/2070 1901/2849/2071 -f 1884/2850/2072 1900/2851/2073 1885/2842/2067 -f 1891/2852/2074 1903/2848/2070 1892/2853/2075 -f 1906/2854/2076 1863/2855/2077 1862/2856/2078 -f 1908/2857/2079 1910/2858/2080 1911/2859/2081 -f 1912/2860/2082 1914/2861/2083 1915/2862/2084 -f 1916/2863/2085 1907/2864/2086 1906/2865/2087 -f 1911/2859/2081 1918/2866/2088 1919/2867/2089 -f 1921/2868/2090 1923/2869/2091 1920/2870/2092 -f 1925/2871/2093 1927/2872/2094 1924/2873/2095 -f 1929/2874/2096 1931/2875/2097 1928/2876/2098 -f 1908/2857/2079 1906/2865/2087 1909/2877/2099 -f 1919/2867/2089 1932/2878/2100 1933/2879/2101 -f 1920/2870/2092 1913/2880/2102 1912/2860/2082 -f 1917/2881/2103 1927/2872/2094 1907/2864/2086 -f 1711/2882/1948 1935/2883/1948 1934/2884/1948 -f 1939/2885/2104 1940/2886/2104 1936/2887/2104 -f 1942/2888/2105 1944/2889/2106 1941/2890/2106 -f 1945/2891/2107 1926/2892/2108 1925/2871/2093 -f 1911/2893/2081 1948/2894/2109 1947/2895/2110 -f 1919/2896/2089 1949/2897/2111 1948/2894/2109 -f 1951/2898/2112 1953/2899/2113 1950/2900/2112 -f 1949/2897/2111 1929/2901/2096 1954/2902/2114 -f 1955/2903/2115 1956/2904/2116 1957/2905/2117 -f 1938/2906/2118 1959/2907/2118 1960/2908/2118 -f 1958/2909/2119 1962/2910/2120 1963/2911/2121 -f 1965/2912/2122 1967/2913/2122 1964/2914/2122 -f 1717/2631/1928 1622/2915/2123 1718/2644/1941 -f 1633/2578/2124 1969/2916/2125 1634/2567/2126 -f 1971/2917/2127 1973/2918/2128 1970/2919/2127 -f 1976/2920/2129 1977/2921/2130 1978/2922/2131 -f 1879/2837/1903 1980/2923/2132 1979/2924/2132 -f 1973/2918/2128 1706/2925/2133 1710/2624/1921 -f 1981/2926/2134 1982/2927/2135 1983/2928/2136 -f 1985/2929/2137 1969/2916/2125 1984/2930/2138 -f 1986/2931/2139 1987/2932/2140 1639/2933/2141 -f 1989/2934/2142 1990/2935/2143 1991/2936/2144 -f 1989/2934/2142 1991/2936/2144 1992/2937/2145 -f 1994/2938/2146 1712/2939/2147 1996/2940/2148 -f 1710/2941/2149 1998/2942/2149 1709/2943/2149 -f 1970/2919/2127 2000/2944/2150 1971/2917/2127 -f 2003/2945/2151 1994/2946/2152 2005/2947/2153 -f 1966/2948/2154 1939/2949/2155 2006/2950/2156 -f 2007/2951/2157 1713/2952/2157 2008/2953/2157 -f 2008/2953/2158 1959/2954/2158 2007/2951/2158 -f 1961/2955/2159 1960/2956/2159 2006/2957/2159 -f 1713/2952/2160 1961/2955/2161 2006/2957/2162 -f 2007/2951/2163 1961/2955/2164 1714/2958/2165 -f 1958/2909/2166 1937/2959/2166 1962/2910/2166 -f 1963/2911/2167 1937/2959/2167 1936/2887/2167 -f 2008/2953/2104 2006/2957/2104 1960/2956/2104 -f 1969/2916/2125 2010/2960/2168 2009/2961/2169 -f 2013/2962/2170 1707/2963/2171 1708/2964/2172 -f 2016/2965/2173 2018/2966/2174 2015/2967/2174 -f 2018/2968/2175 1966/2969/2175 2015/2970/2175 -f 1708/2971/2176 1707/2972/2177 2006/2973/2104 -f 1936/2974/2178 1714/2975/2179 1713/2976/2178 -f 2019/2977/2180 2021/2978/2181 1712/2979/2182 -f 2022/2980/2183 2019/2981/2184 1712/2982/2185 -f 2020/2983/2186 2022/2984/2183 2021/2978/2186 -f 2024/2985/2187 2026/2986/2188 1995/2987/2189 -f 2027/2988/2190 2026/2986/2191 2028/2989/2192 -f 2028/2989/2192 2024/2985/2193 2027/2988/2190 -f 1935/2990/2194 1714/2991/2195 1963/2992/2196 -f 1935/2993/2197 1963/2994/2197 1936/2995/2198 -f 1713/2976/2178 1995/2996/2199 1936/2974/2178 -f 2029/2997/2200 2031/2998/2201 1985/2929/2202 -f 2029/2997/2200 2032/2999/2203 2030/3000/2204 -f 2032/2999/2203 2034/3001/2205 2033/3002/2206 -f 2035/3003/2207 1985/2929/2202 2031/2998/2201 -f 1634/2567/2126 1985/2929/2137 2036/3004/2208 -f 2038/3005/2209 1968/3006/2210 2037/3007/2211 -f 2039/3008/2212 2041/3009/2213 2042/3010/2214 -f 1632/2577/2215 2043/3011/2215 1631/2569/2215 -f 2043/3011/2216 1636/2576/2216 1631/2569/2216 -f 2044/3012/2217 2045/3013/2218 2046/3014/2219 -f 2047/3015/2220 2048/3016/2221 2049/3017/2222 -f 2044/3012/2217 2050/3018/2223 2045/3013/2218 -f 2046/3014/2219 2039/3019/2224 2051/3020/2225 -f 2052/3021/2226 2050/3018/2223 2053/3022/2227 -f 1981/2926/2134 2054/3023/2228 2055/3024/2229 -f 2056/3025/2230 1991/2936/2230 2057/3026/2230 -f 2050/3018/2223 2058/3027/2231 2045/3013/2218 -f 2057/3026/2232 1991/2936/2232 1990/2935/2232 -f 2059/3028/2233 2058/3027/2231 2050/3018/2223 -f 2060/3029/2234 2061/3030/2235 2059/3028/2233 -f 2062/3031/2236 2060/3029/2234 2048/3016/2221 -f 2058/3027/2231 2063/3032/2237 2064/3033/2238 -f 2061/3030/2235 2063/3032/2237 2058/3027/2231 -f 2065/3034/2239 2066/3035/2240 2067/3036/2241 -f 2068/3037/2242 2069/3038/2242 2065/3039/2242 -f 2069/3040/2243 2066/3035/2244 2065/3034/2245 -f 2069/3040/2243 2070/3041/2246 2066/3035/2244 -f 2066/3035/2247 2070/3041/2247 2071/3042/2247 -f 2069/3038/2248 2072/3043/2249 2070/3044/2250 -f 2072/3043/2251 2073/3045/2251 2074/3046/2251 -f 2073/3045/2252 2072/3043/2252 2068/3037/2252 -f 2068/3037/2253 1969/3047/2254 2073/3045/2255 -f 2067/3036/2256 2071/3042/2256 2074/3048/2256 -f 2058/3027/2231 2064/3033/2238 2040/3049/2257 -f 2063/3050/2258 2075/3051/2259 2076/3052/2260 -f 2075/3051/2259 2060/3053/2261 2077/3054/2262 -f 2060/3053/2261 2078/3055/2263 2077/3054/2262 -f 2079/3056/2264 2041/3009/2213 2040/3057/2265 -f 2057/3058/2266 2081/3059/2267 2082/3060/2268 -f 2076/3052/2260 2079/3056/2264 2064/3061/2269 -f 2075/3051/2270 2083/3062/2271 2084/3063/2272 -f 2077/3054/2273 2080/3064/2274 2083/3062/2271 -f 1773/2678/1976 1775/2681/1979 1810/3065/2009 -f 2057/3058/2266 2055/3066/2275 2083/3062/2271 -f 2080/3064/2274 2057/3058/2266 2083/3062/2271 -f 2055/3066/2276 2082/3060/2276 2083/3062/2276 -f 2085/3067/2277 2081/3059/2278 2080/3064/2279 -f 2086/3068/2280 2087/3069/2281 2088/3070/2282 -f 2086/3068/2283 2089/3071/2284 2082/3060/2268 -f 2081/3059/2267 2086/3068/2283 2082/3060/2268 -f 2051/3072/2285 2090/3073/2286 2091/3074/2287 -f 2080/3064/2279 2078/3075/2263 2047/3076/2288 -f 2051/3077/2285 2042/3010/2214 2090/3073/2286 -f 2089/3071/2289 2092/3078/2290 2093/3079/2291 -f 2094/3080/2292 2051/3081/2285 2091/3082/2287 -f 2088/3070/2282 2092/3078/2290 2086/3068/2280 -f 2095/3083/2293 2094/3084/2292 2091/3074/2287 -f 2067/3036/2294 2073/3085/2295 1969/3086/2296 -f 2096/3087/2297 2093/3079/2291 2095/3083/2293 -f 2085/3067/2277 2097/3088/2298 2087/3069/2281 -f 2093/3079/2299 2098/3089/2300 2095/3083/2301 -f 2097/3088/2302 2049/3017/2222 2099/3090/2303 -f 2092/3078/2304 2100/3091/2305 2093/3079/2299 -f 2099/3090/2303 2101/3092/2306 2102/3093/2307 -f 2102/3093/2307 2103/3094/2308 2100/3091/2305 -f 2098/3089/2300 2046/3014/2219 2094/3095/2309 -f 2099/3090/2303 2049/3017/2222 2101/3092/2306 -f 2100/3091/2305 2044/3012/2217 2098/3089/2300 -f 2097/3088/2302 2047/3015/2220 2049/3017/2222 -f 2103/3094/2308 2044/3012/2217 2100/3091/2305 -f 2078/3055/2263 2062/3096/2310 2047/3097/2288 -f 2103/3094/2308 2052/3021/2226 2053/3022/2227 -f 2101/3092/2306 2049/3017/2222 2052/3021/2226 -f 2055/3098/2311 2104/3099/2312 2105/3100/2313 -f 2106/3101/2314 2104/3099/2315 2107/3102/2316 -f 1982/2927/2135 1981/2926/2134 2055/3024/2229 -f 2108/3103/2317 2110/3104/2318 2111/3105/2319 -f 2057/3026/2320 2106/3101/2320 2056/3025/2320 -f 2104/3099/2321 2055/3098/2322 2107/3102/2323 -f 1636/3106/2324 1635/2568/2325 2035/3003/2207 -f 2043/3011/2326 1635/3107/2326 1636/2576/2326 -f 1635/2568/2325 1634/2567/2327 2036/3004/2328 -f 1635/2568/2325 2036/3004/2328 2035/3003/2207 -f 2037/3007/2211 1968/3006/2210 1632/2577/2329 -f 1717/2631/1928 1695/2635/1932 1694/3108/2330 -f 2114/3109/2331 2115/3110/2332 1682/3111/2333 -f 2009/2961/2169 2119/3112/2334 2120/3113/2335 -f 1984/2930/2138 2029/2997/2336 1985/2929/2137 -f 2121/3114/2337 2041/3009/2338 2084/3063/2272 -f 2120/3113/2339 2122/3115/2340 2123/3116/2341 -f 2034/3001/2342 2123/3116/2341 2033/3002/2343 -f 2082/3060/2268 2124/3117/2344 2121/3114/2337 -f 2030/3000/2345 2125/3118/2346 2126/3119/2347 -f 2030/3000/2345 2126/3119/2347 2031/2998/2348 -f 2027/3120/2349 2024/3121/2349 1995/3122/2349 -f 2028/2989/2350 2026/2986/2350 2025/3123/2350 -f 2022/3124/2351 1712/3125/2351 2021/3126/2351 -f 2023/3127/2352 2020/2983/2352 2019/2977/2352 -f 1967/3128/1918 1966/3129/1918 1961/3130/1918 -f 1964/3131/2353 1939/2949/2353 1965/3132/2353 -f 2127/3133/2354 2129/3134/2355 2130/3135/2356 -f 1992/2937/2357 2131/3136/2358 1989/2934/2359 -f 1983/2928/2360 1982/2927/2361 2132/3137/2362 -f 2132/3137/2363 2105/3100/2313 1989/2934/2364 -f 2133/3138/2365 2135/3139/2366 2053/3140/2367 -f 2136/3141/2368 2138/3142/2369 2139/3143/2370 -f 2140/3144/2371 2141/3145/2372 2142/3146/2373 -f 2143/3147/2374 2135/3139/2366 2144/3148/2375 -f 1627/3149/2376 1689/3150/2377 2150/3151/2378 -f 2153/3152/2379 2154/3153/2380 2155/3154/2381 -f 2156/3155/2382 2157/3156/2383 2158/3157/2384 -f 2158/3157/2384 2157/3156/2383 2159/3158/2385 -f 2153/3152/2379 2156/3155/2386 2158/3157/2387 -f 2153/3152/2379 2158/3157/2387 2154/3153/2380 -f 2140/3144/2371 1956/2904/2388 2141/3145/2372 -f 2143/3147/2374 2053/3140/2367 2135/3139/2366 -f 2142/3146/2373 2141/3145/2372 2133/3138/2365 -f 2160/3159/2389 2127/3133/2354 2130/3135/2356 -f 2161/3160/2390 2129/3134/2391 2128/3161/2392 -f 2127/3133/2354 2160/3159/2389 2162/3162/2393 -f 2163/3163/2394 2164/3164/2395 2161/3160/2390 -f 2127/3133/2396 2165/3165/2397 2128/3161/2398 -f 2165/3165/2399 2161/3160/2390 2128/3161/2392 -f 1956/2904/2116 2164/3164/2395 2163/3163/2394 -f 2166/3166/2400 2127/3133/2396 2162/3162/2401 -f 2166/3166/2400 2165/3165/2397 2127/3133/2396 -f 2134/3167/2402 2166/3166/2400 2144/3148/2375 -f 2134/3167/2402 2165/3165/2397 2166/3166/2400 -f 2135/3139/2366 2134/3167/2402 2144/3148/2375 -f 2134/3167/2402 2133/3138/2365 2165/3165/2397 -f 2141/3145/2372 2165/3165/2397 2133/3138/2365 -f 2141/3145/2372 1956/2904/2388 2163/3163/2403 -f 1805/3168/2404 2152/3169/2405 1803/3170/2406 -f 2137/3171/2407 2150/3151/2408 2149/3172/2409 -f 2136/3141/2368 2151/3173/2410 2150/3151/2408 -f 1626/3174/2411 2108/3103/2317 2111/3105/2319 -f 2170/3175/2412 2171/3176/2413 2167/3177/2414 -f 2174/3178/2415 1641/3179/1890 1640/3180/1889 -f 2170/3181/2416 2169/3182/2417 1925/3183/2418 -f 2181/3184/2419 2183/3185/1948 2184/3186/2420 -f 1637/2579/2421 1988/3187/2422 1638/2580/2423 -f 1638/2580/2424 1637/3188/2425 1639/2584/2424 -f 2189/3189/2426 1994/3190/2426 2004/3191/2426 -f 1717/2631/1928 1693/3192/2427 1716/2630/1926 -f 1971/3193/2428 2191/3194/2429 1972/3195/2430 -f 1638/3196/2431 1639/2584/1891 1641/2583/1890 -f 2158/3157/2432 2193/3197/2433 2154/3153/2434 -f 1986/3198/2139 1638/3199/2431 2197/3200/2435 -f 1676/3201/1948 2198/3202/1948 1655/3203/1948 -f 2199/3204/2436 2200/3205/1918 1975/3206/2437 -f 2205/3207/2438 2146/3208/2439 1805/3168/2440 -f 2197/3209/2435 1638/3210/2431 2194/3211/2441 -f 1639/2584/1891 1637/3188/2442 1640/3212/1889 -f 1665/2600/1901 1644/3213/1892 1643/2585/1892 -f 1652/2591/1895 1871/3214/2063 2206/3215/2063 -f 2206/3215/2063 1657/2594/1897 1660/2593/1897 -f 1673/2605/1904 1667/3216/1900 1666/2598/1900 -f 2207/3217/2443 2209/3218/2444 2210/3219/2445 -f 1801/3220/2446 1805/3221/2447 1800/3222/2448 -f 2208/3223/2449 2211/3224/2450 2209/3225/2444 -f 2173/3226/2353 2210/3227/2451 2174/3228/2451 -f 2112/3229/2452 1722/3230/2453 1721/3231/2454 -f 1683/3232/2455 2112/3229/2452 1721/3231/2454 -f 1698/3233/2456 2215/3234/2457 2216/3235/2458 -f 2218/3236/2459 2217/3237/2460 2219/3238/2459 -f 1699/3239/2461 2212/3240/2461 2218/3236/2461 -f 1730/2646/1943 1697/3241/2462 1728/2643/1940 -f 1894/3242/1896 1669/3243/1902 1658/3244/1896 -f 1669/2602/1902 2220/3245/2132 1670/2601/1902 -f 1657/3246/1897 1894/3242/1896 1658/3244/1896 -f 1979/2924/1948 1893/3247/1948 1902/2847/1948 -f 2221/3248/2463 2196/3249/2464 2222/3250/2464 -f 2223/3251/2465 1902/2847/2069 1901/2849/2071 -f 1890/3252/2466 1905/3253/2467 1891/2852/2074 -f 1882/3254/2468 2225/3255/2469 1883/3256/2470 -f 1883/3256/2470 1904/3257/2471 1884/2850/2072 -f 1890/3252/2466 1793/2692/1990 1792/3258/2472 -f 1897/3259/2473 2227/3260/2474 1881/3261/2475 -f 1888/3262/2476 1793/2692/1990 1889/3263/2477 -f 1881/3261/2475 2224/3264/2478 1882/3254/2468 -f 1860/3265/2479 2223/3251/2465 1859/3266/2480 -f 1887/2845/2066 1794/2693/1991 1888/3262/2476 -f 1866/3267/2481 1899/2844/2065 1898/2846/2068 -f 1858/3268/2482 2223/3251/2465 1901/2849/2071 -f 1903/2848/2070 1868/3269/2483 1857/3270/2484 -f 1901/2849/2071 1857/3270/2484 1858/3268/2482 -f 1865/3271/2485 1898/2846/2068 1900/2851/2073 -f 1904/3257/2471 1863/3272/2486 1864/3273/2487 -f 1905/3253/2467 1791/3274/2488 1868/3269/2483 -f 2225/3255/2469 1862/3275/2489 1863/3272/2486 -f 2224/3264/2478 1861/3276/2490 1862/3275/2489 -f 1914/3277/2491 1789/3278/2492 1867/3279/2493 -f 1910/3280/2494 1859/3281/2495 1918/3282/2496 -f 1860/3265/2479 2227/3260/2474 2226/3283/2497 -f 1896/3284/2498 2226/3283/2497 1897/3259/2473 -f 1932/3285/2499 1857/3286/2500 1930/3287/2501 -f 1946/3288/2502 1867/3279/2493 1866/3289/2503 -f 1918/3282/2496 1858/3290/2504 1932/3285/2499 -f 1927/3291/2505 1865/3292/2506 1864/3293/2507 -f 1926/3294/2508 1866/3289/2503 1865/3292/2506 -f 1907/3295/2509 1864/3293/2507 1863/2855/2077 -f 1930/3296/2501 1868/3297/2510 1931/3298/2511 -f 1789/3299/2512 1899/2844/2065 1867/3300/2513 -f 1931/3301/2511 1791/3302/2514 1922/3303/2515 -f 1913/3304/2516 1790/3305/2517 1789/3278/2492 -f 1923/3306/2518 1791/3302/2514 1790/3305/2517 -f 1932/2878/2100 1929/2874/2096 1933/2879/2101 -f 1909/3307/2519 1862/2856/2078 1861/3308/2520 -f 1900/2851/2073 1864/3273/2487 1865/3271/2485 -f 1914/2861/2083 1945/2891/2107 1915/2862/2084 -f 1910/3280/2494 1861/3308/2520 1860/3309/2521 -f 1928/2876/2098 1922/3310/2522 1921/2868/2090 -f 2013/2962/2170 2017/3311/2173 2016/2965/2173 -f 2228/3312/2523 2230/3313/2524 1954/3314/2524 -f 2231/3315/2525 1951/2898/2112 1950/2900/2112 -f 1948/3316/2526 2233/3317/2527 2234/3318/2526 -f 2235/3319/2528 2232/3320/2525 2231/3315/2525 -f 2238/3321/2529 2240/3322/2530 2237/3323/2529 -f 1947/3324/2531 2234/3318/2526 2241/3325/2531 -f 1952/3326/2113 1942/2888/2105 1953/2899/2113 -f 1954/3314/2524 2233/3317/2527 1949/3327/2532 -f 2239/3328/2530 2228/3312/2523 2240/3322/2530 -f 2242/3329/2533 2244/3330/2534 2245/3331/2535 -f 1947/3324/2531 2236/3332/2536 2235/3319/2528 -f 1941/2890/2106 2244/3330/2534 2243/3333/2534 -f 2245/3331/2535 2237/3323/2529 2242/3329/2533 -f 2228/3334/2537 1921/3335/2090 2240/3336/2538 -f 1921/3335/2090 2237/3337/2539 2240/3336/2538 -f 2228/3334/2537 1929/2901/2096 1928/3338/2098 -f 1912/3339/2082 2243/3340/2540 2242/3341/2541 -f 1920/3342/2092 2242/3341/2541 2237/3337/2539 -f 2243/3340/2540 1945/3343/2107 1941/3344/2542 -f 1945/3343/2107 1942/3345/2543 1941/3344/2542 -f 1953/3346/2544 1925/3347/2093 1924/3348/2095 -f 1924/3348/2095 1950/3349/2545 1953/3346/2544 -f 1917/3350/2103 2231/3351/2546 1950/3349/2545 -f 1916/3352/2085 2235/3353/2547 2231/3351/2546 -f 1908/3354/2079 1947/3355/2110 2235/3353/2547 -f 2246/3356/2548 2174/3357/2451 2210/3358/2451 -f 2204/3359/2120 2248/3360/2120 2249/3361/2120 -f 1982/2927/2549 2055/3024/2311 2105/3100/2313 -f 1989/2934/2364 2105/3100/2313 1990/2935/2550 -f 1982/2927/2549 2105/3100/2313 2132/3137/2363 -f 2131/3136/2358 2132/3137/2362 1989/2934/2359 -f 2250/3362/2551 2132/3137/2362 2131/3136/2358 -f 2250/3362/2551 1983/2928/2360 2132/3137/2362 -f 2054/3023/2552 2107/3102/2323 2055/3098/2322 -f 2104/3099/2312 2057/3026/2553 1990/2935/2550 -f 2105/3100/2313 2104/3099/2312 1990/2935/2550 -f 2067/3036/2241 2066/3035/2240 2071/3042/2554 -f 2070/3044/2555 2074/3046/2555 2071/3363/2555 -f 2072/3043/2556 2074/3046/2556 2070/3044/2556 -f 2069/3038/2248 2068/3037/2557 2072/3043/2249 -f 2068/3364/2253 2065/3034/2558 1969/3086/2254 -f 1969/3086/2559 2065/3034/2239 2067/3036/2241 -f 2101/3092/2306 2052/3021/2226 2103/3094/2308 -f 2053/3022/2227 2044/3012/2217 2103/3094/2308 -f 2044/3012/2217 2046/3014/2219 2098/3089/2300 -f 2046/3014/2219 2051/3020/2225 2094/3095/2309 -f 2101/3092/2306 2103/3094/2308 2102/3093/2307 -f 2102/3093/2307 2100/3091/2305 2092/3078/2304 -f 2098/3089/2300 2094/3095/2309 2095/3083/2301 -f 2099/3090/2303 2102/3093/2307 2088/3070/2560 -f 2088/3070/2560 2102/3093/2307 2092/3078/2304 -f 2100/3091/2305 2098/3089/2300 2093/3079/2299 -f 2097/3088/2302 2099/3090/2303 2087/3069/2561 -f 2087/3069/2561 2099/3090/2303 2088/3070/2560 -f 2089/3071/2289 2093/3079/2291 2096/3087/2297 -f 2087/3069/2281 2081/3059/2278 2085/3067/2277 -f 2096/3087/2297 2095/3083/2293 2124/3117/2562 -f 2124/3117/2562 2095/3083/2293 2091/3074/2287 -f 2092/3078/2290 2089/3071/2289 2086/3068/2280 -f 2089/3071/2289 2096/3087/2297 2124/3117/2562 -f 2090/3073/2563 2124/3117/2344 2091/3074/2564 -f 2121/3114/2337 2124/3117/2344 2090/3073/2563 -f 2082/3060/2268 2055/3066/2275 2057/3058/2266 -f 2083/3062/2271 2082/3060/2268 2121/3114/2337 -f 2083/3062/2271 2121/3114/2337 2084/3063/2272 -f 2090/3073/2286 2042/3010/2214 2041/3009/2213 -f 2078/3075/2263 2080/3064/2279 2077/3054/2262 -f 2077/3054/2273 2083/3062/2271 2075/3051/2270 -f 2075/3051/2270 2084/3063/2272 2076/3052/2565 -f 2084/3063/2272 2079/3056/2566 2076/3052/2565 -f 2084/3063/2272 2041/3009/2338 2079/3056/2566 -f 2079/3056/2264 2040/3057/2265 2064/3061/2269 -f 2061/3365/2567 2075/3051/2259 2063/3050/2258 -f 2039/3008/2212 2042/3366/2214 2051/3367/2285 -f 2076/3052/2260 2064/3061/2269 2063/3050/2258 -f 2058/3027/2231 2040/3049/2257 2045/3013/2218 -f 2060/3029/2234 2059/3028/2233 2048/3016/2221 -f 2040/3049/2257 2039/3019/2224 2045/3013/2218 -f 2061/3030/2235 2058/3027/2231 2059/3028/2233 -f 2062/3031/2236 2048/3016/2221 2047/3015/2220 -f 2059/3028/2233 2052/3021/2226 2048/3016/2221 -f 2059/3028/2233 2050/3018/2223 2052/3021/2226 -f 2045/3013/2218 2039/3019/2224 2046/3014/2219 -f 2053/3022/2227 2050/3018/2223 2044/3012/2217 -f 2048/3016/2221 2052/3021/2226 2049/3017/2222 -f 2126/3119/2347 2035/3003/2568 2031/2998/2348 -f 2126/3119/2347 1636/3106/2569 2035/3003/2568 -f 1632/2577/2329 1968/3006/2210 1633/2578/2570 -f 1969/2916/2125 2009/2961/2169 1984/2930/2138 -f 2009/2961/2169 2034/3001/2571 1984/2930/2138 -f 2009/2961/2169 2010/2960/2168 2119/3112/2334 -f 2119/3112/2572 2251/3368/2573 2122/3115/2340 -f 2120/3113/2339 2119/3112/2572 2122/3115/2340 -f 2034/3001/2342 2120/3113/2339 2123/3116/2341 -f 2032/3369/2574 2033/3370/2575 2125/3371/2346 -f 2030/3000/2345 2032/2999/2574 2125/3118/2346 -f 2017/3372/1918 2012/3373/1918 2011/3374/1918 -f 2249/3361/2576 2149/3172/2409 2148/3375/2577 -f 1803/3170/2406 2253/3376/2578 2201/3377/2579 -f 2108/3103/2317 2139/3143/2370 2109/3378/2580 -f 2138/3142/2369 2249/3361/2576 2248/3360/2581 -f 1957/2905/2117 1956/2904/2582 2140/3144/2583 -f 2043/3379/2584 2156/3155/2585 2153/3152/2586 -f 1870/3380/2063 1657/3246/1897 1871/2822/2063 -f 2256/3381/2587 2257/3382/2588 1831/3383/2589 -f 1640/3212/1889 1637/3188/2442 1988/3384/2590 -f 2002/3385/2591 2259/3386/2592 2221/3387/2592 -f 1987/3388/1918 2221/3389/2593 2259/3390/1918 -f 1913/3391/2594 1914/3392/2179 1930/3393/2595 -f 2262/3394/2596 1700/3395/2597 1699/3396/2598 -f 1730/2646/1943 1629/2641/1938 1628/3397/2599 -f 1814/2817/2014 1840/3398/2058 1839/2816/1971 -f 2188/3399/2600 1977/3400/2601 1976/3401/2602 -f 2006/3402/2353 2014/3403/2353 2015/3404/2353 -f 2142/3146/2373 2133/3138/2365 2053/3140/2367 -f 2252/3405/2603 2152/3169/2405 1690/3406/2604 -f 2266/3407/2605 2267/3408/2606 2167/3409/2607 -f 2247/3410/2608 2195/3411/2609 2194/3412/2441 -f 1689/3413/2610 1627/3414/2611 2162/3415/2612 -f 2159/3416/2613 2157/3417/2614 1626/3418/2615 -f 1690/3419/2616 2161/3420/2617 2164/3421/2618 -f 2110/3422/2619 2251/3423/2620 2193/3424/2621 -f 2010/2960/2622 2251/3368/2623 2119/3112/2624 -f 2085/3067/2277 2047/3425/2288 2097/3426/2298 -f 2265/3427/2625 1975/3428/2626 2200/3429/2625 -f 2273/3430/2627 2196/3431/2628 2195/3432/2629 -f 2154/3153/2630 2193/3197/2621 2251/3423/2620 -f 2191/3433/2631 1970/3434/2632 1973/3435/2633 -f 1671/2604/1903 2220/3245/2132 1980/3436/2132 -f 1980/2923/2132 1893/3247/1902 1979/2924/2132 -f 1993/3437/2634 1997/3438/2635 1988/3439/2636 -f 2280/3440/2637 1996/3441/2638 2279/3442/2637 -f 2282/3443/2639 2284/3444/2640 2281/3445/2640 -f 2285/3446/2641 2283/3447/2639 2282/3443/2639 -f 2281/3445/2640 2288/3448/2642 2287/3449/2642 -f 2290/3450/2643 2292/3451/2644 2289/3452/2644 -f 2294/3453/2645 2292/3451/2644 2293/3454/2645 -f 2298/3455/2646 2296/3456/2647 2295/3457/2646 -f 2297/3458/2647 2299/3459/2648 2296/3456/2647 -f 2304/3460/2649 2302/3461/2650 2301/3462/2650 -f 2293/3454/2645 2305/3463/2651 2294/3453/2645 -f 2308/3464/2652 2295/3457/2646 2307/3465/2652 -f 2309/3466/2647 2300/3467/2648 2297/3468/2647 -f 2311/3469/2646 2297/3468/2647 2298/3470/2646 -f 2312/3471/2652 2298/3470/2646 2308/3472/2652 -f 2313/3473/2651 2308/3472/2652 2306/3474/2651 -f 2314/3475/2645 2306/3474/2651 2293/3476/2645 -f 2315/3477/2644 2293/3476/2645 2292/3478/2644 -f 2316/3479/2643 2292/3478/2644 2291/3480/2643 -f 2317/3481/2642 2291/3480/2643 2288/3482/2642 -f 2318/3483/2640 2288/3482/2642 2284/3484/2640 -f 2283/3485/2639 2320/3486/2641 2319/3487/2639 -f 2319/3487/2639 2284/3484/2640 2283/3485/2639 -f 2321/3488/2649 2286/3489/2641 2304/3490/2649 -f 2322/3491/2650 2304/3490/2649 2301/3492/2650 -f 2324/3493/2653 2301/3492/2650 2323/3494/2653 -f 2310/3495/2648 2323/3494/2653 2300/3467/2648 -f 2303/3496/2649 2286/3497/2641 2285/3446/2641 -f 2287/3449/2642 2291/3498/2643 2290/3450/2643 -f 2305/3463/2651 2308/3464/2652 2307/3465/2652 -f 2323/3499/2653 2302/3461/2650 2325/3500/2653 -f 2300/3501/2648 2325/3500/2653 2299/3459/2648 -f 1643/2585/1892 1644/3213/1892 1645/2586/1893 -f 1642/2587/1893 1645/2586/1893 1650/2588/1894 -f 1649/2589/1894 1650/2588/1894 1653/2590/1895 -f 1658/2592/1896 1659/3502/1896 1660/2593/1897 -f 1662/2595/1898 1663/3503/1899 1664/2596/1899 -f 1666/2598/1900 1667/3216/1900 1668/2599/1901 -f 1670/2601/1902 1659/3502/1896 1658/2592/1896 -f 1664/2596/1899 1663/3503/1899 1672/2603/1903 -f 1661/2597/1898 1674/3504/1904 1673/2605/1904 -f 1682/2606/1905 1683/3232/1905 1684/2607/1905 -f 1685/2608/1906 1684/2607/1906 1686/2609/1906 -f 1697/2612/1908 1688/3505/2654 1690/2613/1909 -f 1688/3505/2654 1689/3506/2655 1690/2613/1909 -f 1690/2613/1909 1691/3507/2656 1694/3508/2657 -f 1691/3507/2656 1692/3509/2353 1693/3510/2658 -f 1694/3508/2657 1691/3507/2656 1693/3510/2658 -f 1694/3508/2657 1695/3511/2659 1690/2613/1909 -f 1695/3511/2659 1696/2611/1907 1690/2613/1909 -f 1698/2614/1910 1699/3239/2660 1700/2615/1911 -f 1702/2617/1913 1703/2629/1925 1704/2618/1914 -f 1705/2619/1916 1704/2618/2661 1625/2620/1917 -f 1710/2624/1921 1706/2925/2133 1708/2622/1919 -f 1706/2925/2133 1707/3512/2662 1708/2622/1919 -f 1715/2627/1923 1711/3513/2663 1713/2625/1922 -f 1711/3513/2663 1712/3514/2664 1713/2625/1922 -f 1692/2628/1924 1691/3515/2665 1703/2629/1925 -f 1716/2630/1926 1693/3192/2427 1692/2628/1924 -f 1716/2630/1926 1702/2617/1913 1705/2619/1915 -f 1717/2631/1928 1716/2630/1926 1624/2621/1927 -f 1695/2635/1932 1718/2644/1941 1720/2633/1930 -f 1718/2644/1941 1719/2642/1939 1720/2633/1930 -f 1686/3516/2666 1684/3517/2667 1727/3518/2668 -f 1684/3517/2667 1683/2636/1933 1727/3518/2668 -f 1683/2636/1933 1721/3519/2669 1725/2637/1934 -f 1721/3519/2669 1722/3520/2670 1724/3521/2671 -f 1725/2637/1934 1721/3519/2669 1724/3521/2671 -f 1722/3520/2670 1723/3522/2670 1724/3521/2671 -f 1726/2638/1935 1727/3518/2668 1683/2636/1933 -f 1629/2641/1938 1728/2643/1940 1729/2639/1936 -f 1728/2643/1940 1719/2642/1939 1729/2639/1936 -f 1728/2643/1940 1697/3241/2462 1720/2633/1930 -f 1697/3241/2462 1696/2634/1931 1720/2633/1930 -f 1718/2644/1941 1622/2915/2123 1729/2639/1936 -f 1622/2915/2123 1630/2640/1937 1729/2639/1936 -f 1688/3523/2672 1730/2646/1943 1689/2645/1942 -f 1730/2646/1943 1628/3397/2599 1627/2647/1944 -f 1734/2648/1945 1735/3524/1948 1747/2649/1946 -f 1760/2665/1948 1748/2661/1948 1738/3525/1948 -f 1748/2661/1948 1749/2659/1948 1737/3526/1948 -f 1738/3525/1948 1748/2661/1948 1737/3526/1948 -f 1749/2659/1948 1747/2649/1946 1736/3527/1948 -f 1747/2649/1946 1735/3524/1948 1736/3527/1948 -f 1759/2669/1948 1760/2665/1948 1738/3525/1948 -f 1757/2677/1948 1758/2673/1948 1740/3528/1948 -f 1758/2673/1948 1759/2669/1948 1739/3529/1948 -f 1755/2653/1948 1756/2656/1948 1743/2651/1948 -f 1756/2656/1948 1757/2677/1948 1742/3530/1948 -f 1743/2651/1948 1756/2656/1948 1742/3530/1948 -f 1753/2667/1948 1754/2663/1948 1745/3531/1948 -f 1754/2663/1948 1755/2653/1948 1744/2652/1948 -f 1745/3531/1948 1754/2663/1948 1744/2652/1948 -f 1751/2671/1948 1752/2672/1948 1732/3532/1948 -f 1752/2672/1948 1753/2667/1948 1732/3532/1948 -f 1746/2650/1947 1750/2675/2673 1733/3533/2674 -f 1750/2675/2673 1751/2671/1948 1733/3533/2674 -f 1733/3533/2674 1734/2648/1945 1746/2650/1947 -f 1749/2659/1948 1736/3527/1948 1737/3526/1948 -f 1731/3534/1948 1733/3533/2674 1751/2671/1948 -f 1732/3532/1948 1731/3534/1948 1751/2671/1948 -f 1759/2669/1948 1738/3525/1948 1739/3529/1948 -f 1745/3531/1948 1732/3532/1948 1753/2667/1948 -f 1758/2673/1948 1739/3529/1948 1740/3528/1948 -f 1757/2677/1948 1740/3528/1948 1741/3535/1948 -f 1757/2677/1948 1741/3535/1948 1742/3530/1948 -f 1746/2650/1949 1747/2649/1956 1761/2654/1950 -f 1756/2656/1952 1755/2653/1957 1764/2657/1953 -f 1749/2659/1955 1765/2662/1960 1761/2654/1950 -f 1755/2653/1957 1754/2663/1961 1766/2660/1958 -f 1748/2661/1959 1767/2666/1964 1765/2662/1960 -f 1754/2663/1961 1753/2667/1965 1768/2664/1962 -f 1760/2665/1963 1769/2670/1968 1767/2666/1964 -f 1753/2667/1965 1752/2672/1970 1770/2668/1966 -f 1759/2669/1967 1771/2674/1972 1769/2670/1968 -f 1751/2671/1969 1772/2676/1974 1770/2668/1966 -f 1758/2673/1971 1773/2678/1976 1771/2674/1972 -f 1750/2675/1973 1774/2679/1977 1772/2676/1974 -f 1757/2677/1975 1775/2681/1979 1773/2678/1976 -f 1746/2650/1949 1762/2655/1951 1774/2679/1977 -f 1776/2680/1978 1777/3536/1998 1775/2681/1979 -f 1778/2682/1980 1779/2727/1995 1762/2655/1951 -f 1780/2683/1981 1776/2680/1978 1763/2658/1954 -f 1781/2684/1982 1778/2682/1980 1761/2654/1950 -f 1780/2683/1981 1764/2657/1953 1766/2660/1958 -f 1765/2662/1960 1767/2666/1964 1783/2686/1984 -f 1782/2685/1983 1766/2660/1958 1768/2664/1962 -f 1767/2666/1964 1769/2670/1968 1785/2688/1986 -f 1768/2664/1962 1770/2668/1966 1786/2689/1987 -f 1769/2670/1968 1771/2674/1972 1787/2690/1988 -f 1770/2668/1966 1772/2676/1974 1788/2691/1989 -f 1794/2693/1991 1789/3299/2675 1790/2694/1992 -f 1790/2694/1992 1791/3274/2676 1792/3258/2472 -f 1792/3258/2472 1793/2692/1990 1790/2694/1992 -f 1788/2691/1989 1772/2676/1974 1774/2679/1977 -f 1775/2681/1979 1757/2677/1975 1756/2656/1952 -f 1796/2696/1994 1795/3537/1993 1779/2697/1995 -f 1798/2699/1997 1799/2756/2039 1777/2700/1998 -f 1797/2702/1996 1779/3538/1995 1778/2703/1980 -f 1801/2705/2000 1798/2699/1997 1776/2701/1978 -f 1800/2704/1999 1778/2703/1980 1781/2707/1982 -f 1803/2709/2002 1801/2705/2000 1780/2706/1981 -f 1802/2708/2001 1781/2707/1982 1783/2711/1984 -f 1805/2713/2004 1803/2709/2002 1782/2710/1983 -f 1804/2712/2003 1783/2711/1984 1785/2715/1986 -f 1807/2717/2006 1805/2713/2004 1784/2714/1985 -f 1806/2716/2005 1785/2715/1986 1787/2719/1988 -f 1809/2721/2008 1807/2717/2006 1786/2718/1987 -f 1808/2720/2007 1787/2719/1988 1810/2723/2009 -f 1809/2721/2008 1788/2722/1989 1795/2725/1993 -f 1795/2695/1993 1774/2679/1977 1762/2655/1951 -f 1812/2728/2011 1801/2752/2035 1803/2729/2012 -f 1814/2731/2014 1811/2751/2034 1799/2732/2015 -f 1816/2734/2017 1796/2753/2036 1797/2735/2018 -f 1818/2737/2020 1819/2754/2037 1806/2738/2021 -f 1815/2733/2016 1799/2732/2015 1798/2740/2023 -f 1821/2742/2025 1822/2755/2038 1807/2743/2026 -f 1823/2745/2028 1824/2786/2057 1802/2746/2029 -f 1813/2730/2013 1803/2729/2012 1805/2748/2031 -f 1797/2735/2018 1800/2785/2056 1826/2750/2033 -f 1814/2731/2014 1818/2737/2020 1808/2739/2022 -f 1820/2741/2024 1798/2740/2023 1801/2752/2035 -f 1821/2742/2025 1809/2744/2027 1796/2753/2036 -f 1823/2745/2028 1804/2747/2030 1806/2738/2021 -f 1825/2749/2032 1805/2748/2031 1807/2743/2026 -f 1799/2756/2039 1811/2724/2010 1810/2723/2009 -f 1828/2757/2040 1829/3539/2041 1830/2758/2041 -f 1831/2760/2042 1832/2780/2043 1833/2761/2043 -f 1836/2763/2044 1837/2782/2044 1838/2764/2045 -f 1839/2766/2046 1840/2775/2047 1841/2767/2047 -f 1844/2769/2048 1845/2783/2048 1846/2770/2049 -f 1848/2772/2050 1849/2792/2051 1850/2773/2051 -f 1840/2775/2047 1851/2784/2055 1852/2776/2052 -f 1854/2777/2053 1828/2757/2040 1827/2759/2040 -f 1856/2779/2054 1833/2761/2043 1832/2780/2043 -f 1830/2758/2041 1829/3539/2041 1837/2782/2044 -f 1831/2760/2042 1834/2762/2042 1845/2783/2048 -f 1842/2768/2046 1848/2772/2050 1847/2774/2050 -f 1851/2784/2055 1835/2765/2045 1838/2764/2045 -f 1853/2778/2053 1843/2771/2049 1846/2770/2049 -f 1800/2785/2056 1802/2746/2029 1824/2786/2057 -f 1815/2787/2016 1820/2790/2024 1851/2788/1952 -f 1820/2790/2024 1812/2793/2011 1835/2791/1957 -f 1849/2792/2051 1856/2779/2054 1855/2781/2054 -f 1812/2793/2011 1813/2795/2013 1836/2794/1961 -f 1813/2795/2013 1825/2797/2032 1830/2796/1965 -f 1825/2797/2032 1822/2799/2038 1827/2798/1970 -f 1822/2799/2038 1821/2801/2025 1853/2800/1969 -f 1821/2801/2025 1816/2803/2017 1843/2802/2059 -f 1816/2803/2017 1817/2805/2019 1844/2804/2060 -f 1817/2805/2019 1826/2808/2033 1831/2806/2061 -f 1832/2807/1955 1831/2806/2061 1826/2808/2033 -f 1824/2809/2057 1823/2811/2028 1855/2810/1959 -f 1823/2811/2028 1819/2814/2037 1850/2812/1963 -f 1847/2813/2062 1850/2812/1963 1819/2814/2037 -f 1839/2816/1971 1847/2813/2062 1818/2815/2020 -f 1868/3540/1948 1857/3541/1948 1858/2818/1948 -f 1858/2818/1948 1859/3542/1948 1860/3543/1948 -f 1860/3543/1948 1861/3544/1948 1858/2818/1948 -f 1861/3544/1948 1862/2819/1948 1858/2818/1948 -f 1862/2819/1948 1863/3545/1948 1864/3546/1948 -f 1864/3546/1948 1865/3547/1948 1866/2820/1948 -f 1866/2820/1948 1867/3548/1948 1789/3549/1948 -f 1789/3549/1948 1790/3550/1948 1866/2820/1948 -f 1790/3550/1948 1791/3551/1948 1866/2820/1948 -f 1791/3551/1948 1868/3540/1948 1858/2818/1948 -f 1862/2819/1948 1864/3546/1948 1866/2820/1948 -f 1791/3551/1948 1858/2818/1948 1866/2820/1948 -f 1869/2821/1895 1870/3380/2063 1871/2822/2063 -f 1872/2824/1894 1869/2821/1895 1653/2823/1895 -f 1873/2826/1893 1872/2824/1894 1650/2825/1894 -f 1874/2828/1892 1873/2826/1893 1645/2827/1893 -f 1875/2830/1901 1874/2828/1892 1644/2829/1892 -f 1876/2832/1900 1875/2830/1901 1668/2831/1901 -f 1667/2833/1900 1674/2835/1904 1877/2834/1904 -f 1674/2835/1904 1661/2841/1898 1878/2836/1898 -f 1879/2837/1903 1880/2840/1899 1664/2838/1899 -f 1880/2840/1899 1878/2836/1898 1661/2841/1898 -f 1897/3259/1948 1881/3261/1948 1878/2836/1948 -f 1881/3261/1948 1882/3254/1948 1878/2836/1948 -f 1882/3254/1948 1883/3256/1948 1877/2834/1948 -f 1883/3256/1948 1884/2850/1948 1876/2832/1948 -f 1877/2834/1948 1883/3256/1948 1876/2832/1948 -f 1884/2850/1948 1885/2842/1948 1874/2828/1948 -f 1885/2842/1948 1886/2843/1948 1873/2826/1948 -f 1886/2843/1948 1887/2845/1948 1872/2824/1948 -f 1887/2845/1948 1888/3262/1948 1869/2821/1948 -f 1888/3262/1948 1889/3263/1948 1870/3380/1948 -f 1889/3263/1948 1890/3252/1948 1870/3380/1948 -f 1890/3252/1948 1891/2852/1948 1895/3552/1948 -f 1891/2852/1948 1892/2853/1948 1894/3242/1948 -f 1895/3552/1948 1891/2852/1948 1894/3242/1948 -f 1892/2853/1948 1893/3247/1948 1894/3242/1948 -f 1896/3284/1948 1897/3259/1948 1880/2840/1948 -f 1880/2840/1948 1879/2837/1948 1896/3284/1948 -f 1878/2836/1948 1880/2840/1948 1897/3259/1948 -f 1890/3252/1948 1895/3552/1948 1870/3380/1948 -f 1877/2834/1948 1878/2836/1948 1882/3254/1948 -f 1888/3262/1948 1870/3380/1948 1869/2821/1948 -f 1887/2845/1948 1869/2821/1948 1872/2824/1948 -f 1875/2830/1948 1876/2832/1948 1884/2850/1948 -f 1874/2828/1948 1875/2830/1948 1884/2850/1948 -f 1886/2843/1948 1872/2824/1948 1873/2826/1948 -f 1886/2843/2064 1898/2846/2068 1899/2844/2065 -f 1885/2842/2067 1900/2851/2073 1898/2846/2068 -f 1902/2847/2069 1892/2853/2075 1903/2848/2070 -f 1884/2850/2072 1904/3257/2471 1900/2851/2073 -f 1891/2852/2074 1905/3253/2467 1903/2848/2070 -f 1906/2854/2076 1907/3295/2509 1863/2855/2077 -f 1908/2857/2079 1909/2877/2099 1910/2858/2080 -f 1912/2860/2082 1913/2880/2102 1914/2861/2083 -f 1916/2863/2085 1917/2881/2103 1907/2864/2086 -f 1911/2859/2081 1910/2858/2080 1918/2866/2088 -f 1921/2868/2090 1922/3310/2522 1923/2869/2091 -f 1925/2871/2093 1926/2892/2108 1927/2872/2094 -f 1929/2874/2096 1930/3553/2677 1931/2875/2097 -f 1908/2857/2079 1916/2863/2085 1906/2865/2087 -f 1919/2867/2089 1918/2866/2088 1932/2878/2100 -f 1920/2870/2092 1923/2869/2091 1913/2880/2102 -f 1917/2881/2103 1924/2873/2095 1927/2872/2094 -f 1711/2882/1948 1715/3554/1948 1935/2883/1948 -f 1936/2887/2104 1937/2959/2104 1939/2885/2104 -f 1937/2959/2104 1938/2906/2104 1939/2885/2104 -f 1942/2888/2105 1943/3555/2105 1944/2889/2106 -f 1945/2891/2107 1946/3556/2678 1926/2892/2108 -f 1911/2893/2081 1919/2896/2089 1948/2894/2109 -f 1919/2896/2089 1933/3557/2101 1949/2897/2111 -f 1951/2898/2112 1952/3326/2113 1953/2899/2113 -f 1949/2897/2111 1933/3557/2101 1929/2901/2096 -f 1938/2906/2118 1958/2909/2118 1959/2907/2118 -f 1963/2911/2121 1961/3558/2679 1958/2909/2119 -f 1961/3558/2679 1959/2907/2680 1958/2909/2119 -f 1965/2912/2122 1966/3559/2122 1967/2913/2122 -f 1717/2631/1928 1623/2632/1929 1622/2915/2123 -f 1633/2578/2124 1968/3006/2681 1969/2916/2125 -f 1971/2917/2127 1972/3560/2682 1973/2918/2128 -f 1978/2922/2131 1974/3561/2683 1975/3562/2626 -f 1975/3562/2626 1976/2920/2129 1978/2922/2131 -f 1879/2837/1903 1671/2839/1903 1980/2923/2132 -f 1973/2918/2128 1972/3560/2682 1706/2925/2133 -f 1985/2929/2137 1634/2567/2126 1969/2916/2125 -f 1988/3563/2684 1637/3564/2685 1987/2932/2140 -f 1637/3564/2685 1639/2933/2141 1987/2932/2140 -f 1639/2933/2141 1638/3565/2431 1986/2931/2139 -f 1997/3566/2635 1993/3567/2634 1996/2940/2148 -f 1993/3567/2634 1994/2938/2146 1996/2940/2148 -f 1994/2938/2146 1995/3568/2199 1712/2939/2147 -f 1970/2919/2127 1999/3569/2150 2000/2944/2150 -f 2005/2947/2153 2001/3570/2686 2003/2945/2151 -f 2001/3570/2686 2002/3571/2591 2003/2945/2151 -f 2003/2945/2151 2004/3572/2687 1994/2946/2152 -f 1966/2948/2154 1965/3132/2688 1939/2949/2155 -f 2007/2951/2157 1714/2958/2157 1713/2952/2157 -f 2008/2953/2158 1960/2956/2158 1959/2954/2158 -f 1961/2955/2159 1959/3573/2159 1960/2956/2159 -f 1713/2952/2160 1714/2958/1948 1961/2955/2161 -f 2007/2951/2163 1959/2954/2120 1961/2955/2164 -f 1958/2909/2166 1938/2906/2166 1937/2959/2166 -f 1963/2911/2167 1962/2910/2167 1937/2959/2167 -f 2008/2953/2104 1713/2952/2104 2006/2957/2104 -f 1969/2916/2125 1968/3006/2681 2010/2960/2168 -f 1708/2964/2172 1709/3574/2689 2012/3575/2690 -f 1709/3574/2689 2011/3576/2689 2012/3575/2690 -f 1708/2964/2172 2012/3575/2690 2013/2962/2170 -f 2013/2962/2170 2014/3577/2691 1707/2963/2171 -f 2016/2965/2173 2017/3311/2173 2018/2966/2174 -f 2018/2968/2175 1965/3578/2175 1966/2969/2175 -f 1707/2972/2177 2014/3579/2692 2006/2973/2104 -f 2006/2973/2104 1939/3580/2104 1708/2971/2176 -f 1939/3580/2104 2011/3581/2104 1709/3582/2104 -f 1709/3582/2104 1708/2971/2176 1939/3580/2104 -f 1936/2974/2178 1963/3583/2179 1714/2975/2179 -f 2019/2977/2180 2020/2983/2693 2021/2978/2181 -f 2022/2980/2183 2023/3584/2694 2019/2981/2184 -f 2020/2983/2186 2023/3127/2694 2022/2984/2183 -f 2024/2985/2187 2025/3123/2695 2026/2986/2188 -f 2027/2988/2190 1995/2987/2696 2026/2986/2191 -f 2028/2989/2192 2025/3123/2697 2024/2985/2193 -f 1935/2990/2194 1715/3585/2194 1714/2991/2195 -f 1936/2995/2198 1995/3586/2698 1934/3587/2699 -f 1934/3587/2699 1935/2993/2197 1936/2995/2198 -f 1713/2976/2178 1712/3588/2147 1995/2996/2199 -f 2029/2997/2200 2030/3000/2204 2031/2998/2201 -f 2029/2997/2200 1984/2930/2700 2032/2999/2203 -f 2032/2999/2203 1984/2930/2700 2034/3001/2205 -f 2035/3003/2207 2036/3004/2328 1985/2929/2202 -f 2038/3005/2209 2010/2960/2701 1968/3006/2210 -f 2039/3008/2212 2040/3057/2265 2041/3009/2213 -f 2075/3051/2259 2061/3365/2567 2060/3053/2261 -f 2060/3053/2261 2062/3096/2310 2078/3055/2263 -f 2057/3058/2266 2080/3064/2274 2081/3059/2267 -f 1775/2681/1979 1777/3536/1998 1810/3065/2009 -f 1810/3065/2009 1787/2690/1988 1771/2674/1972 -f 1771/2674/1972 1773/2678/1976 1810/3065/2009 -f 2086/3068/2280 2081/3059/2278 2087/3069/2281 -f 2067/3036/2294 2074/3048/2702 2073/3085/2295 -f 2106/3101/2314 2057/3026/2703 2104/3099/2315 -f 2108/3103/2317 2109/3378/2580 2110/3104/2318 -f 1717/2631/1928 1718/2644/1941 1695/2635/1932 -f 2118/3589/2704 2112/3590/2705 2116/3591/2706 -f 2112/3590/2705 1682/3111/2333 2115/3110/2332 -f 1682/3111/2333 1685/3592/2707 2113/3593/2708 -f 1685/3592/2707 1687/3594/2709 2113/3593/2708 -f 2116/3591/2706 2117/3595/2710 2118/3589/2704 -f 2115/3110/2332 2116/3591/2706 2112/3590/2705 -f 1682/3111/2333 2113/3593/2708 2114/3109/2331 -f 2121/3114/2337 2090/3073/2563 2041/3009/2338 -f 2082/3060/2268 2089/3071/2284 2124/3117/2344 -f 2127/3133/2354 2128/3161/2711 2129/3134/2355 -f 2133/3138/2365 2134/3167/2402 2135/3139/2366 -f 2136/3141/2368 2137/3171/2407 2138/3142/2369 -f 2146/3208/1948 2147/3596/1948 2148/3375/1948 -f 2146/3208/1948 2148/3375/1948 2149/3172/1948 -f 2145/3597/1948 2146/3208/1948 2150/3151/2378 -f 2146/3208/1948 2149/3172/1948 2150/3151/2378 -f 1689/3150/2377 1690/3406/2712 2152/3169/2713 -f 2152/3169/2713 2145/3597/1948 1689/3150/2377 -f 2145/3597/1948 2150/3151/2378 1689/3150/2377 -f 2151/3173/2714 1626/3174/2715 1627/3149/2376 -f 2150/3151/2378 2151/3173/2714 1627/3149/2376 -f 2165/3165/2399 2163/3163/2394 2161/3160/2390 -f 1956/2904/2116 1955/2903/2115 2164/3164/2395 -f 2141/3145/2372 2163/3163/2403 2165/3165/2397 -f 1805/3168/2404 2145/3597/2404 2152/3169/2405 -f 2137/3171/2407 2136/3141/2368 2150/3151/2408 -f 2136/3141/2368 2108/3103/2317 2151/3173/2410 -f 1626/3174/2411 2151/3173/2410 2108/3103/2317 -f 2172/3598/2716 2167/3177/2414 2171/3176/2413 -f 2167/3177/2414 2168/3599/2717 2170/3175/2412 -f 2168/3599/2717 2169/3600/2120 2170/3175/2412 -f 1988/3601/2590 2173/3602/2718 1640/3180/1889 -f 2173/3602/2718 2174/3178/2415 1640/3180/1889 -f 2174/3178/2415 1638/3603/2431 1641/3179/1890 -f 2169/3182/2417 2175/3604/2719 1925/3183/2418 -f 1925/3183/2418 2176/3605/2720 2170/3181/2416 -f 2176/3605/2720 2177/3606/2721 2170/3181/2416 -f 2177/3606/2721 2171/3607/2722 2170/3181/2416 -f 2172/3608/2723 2171/3609/2724 2178/3610/2725 -f 2171/3609/2724 2177/3611/1948 2178/3610/2725 -f 2187/3612/2726 2188/3613/2727 2172/3608/2723 -f 2184/3186/2420 2185/3614/2728 2180/3615/2729 -f 2185/3614/2728 2186/3616/2730 2179/3617/2731 -f 2180/3615/2729 2185/3614/2728 2179/3617/2731 -f 2186/3616/2730 2187/3612/2726 2178/3610/2725 -f 2187/3612/2726 2172/3608/2723 2178/3610/2725 -f 2186/3616/2730 2178/3610/2725 2179/3617/2731 -f 2180/3615/2729 2181/3184/2419 2184/3186/2420 -f 2181/3184/2419 2182/3618/1948 2183/3185/1948 -f 1638/2580/2732 1988/3187/2733 1637/3188/2733 -f 2189/3189/2426 1995/3619/2426 1994/3190/2426 -f 1717/2631/1928 1694/3108/2330 1693/3192/2427 -f 1971/3193/2428 2000/3620/2734 2190/3621/2735 -f 2192/3622/2736 1707/3623/2737 1706/3624/2738 -f 2191/3194/2429 2192/3622/2736 1706/3624/2738 -f 1971/3193/2428 2190/3621/2735 2191/3194/2429 -f 2191/3194/2429 1706/3624/2738 1972/3195/2430 -f 2158/3157/2432 2159/3158/2739 2193/3197/2433 -f 2197/3200/2435 2194/3412/2441 1986/3198/2139 -f 2194/3412/2441 2195/3411/2609 2196/3625/2740 -f 1986/3198/2139 2194/3412/2441 2196/3625/2740 -f 1678/3626/1948 1679/3627/1948 1648/3628/1948 -f 1648/3628/1948 1647/3629/1948 1646/3630/1948 -f 1646/3630/1948 1651/3631/1948 1655/3203/1948 -f 1655/3203/1948 1654/3632/1948 1681/3633/1948 -f 1654/3632/1948 1656/3634/1948 1681/3633/1948 -f 1656/3634/1948 1680/3635/1948 1681/3633/1948 -f 1681/3633/1948 1675/3636/1948 1676/3201/1948 -f 1676/3201/1948 1677/3637/1948 2198/3202/1948 -f 2198/3202/1948 1678/3626/1948 1648/3628/1948 -f 1648/3628/1948 1646/3630/1948 2198/3202/1948 -f 1646/3630/1948 1655/3203/1948 2198/3202/1948 -f 1681/3633/1948 1676/3201/1948 1655/3203/1948 -f 1975/3206/2437 1974/3638/2741 2177/3639/2742 -f 2177/3639/2742 2199/3204/2436 1975/3206/2437 -f 1805/3168/2440 1803/3170/2743 2202/3640/2744 -f 1803/3170/2743 2201/3377/2743 2202/3640/2744 -f 2202/3640/2744 2203/3641/2745 1805/3168/2440 -f 2203/3641/2745 2204/3359/2746 2205/3207/2438 -f 2205/3207/2438 2147/3596/2747 2146/3208/2439 -f 2146/3208/2439 2145/3597/2748 1805/3168/2440 -f 2203/3641/2745 2205/3207/2438 1805/3168/2440 -f 1665/2600/1901 1668/2599/1901 1644/3213/1892 -f 1652/2591/1895 1653/2590/1895 1871/3214/2063 -f 2206/3215/2063 1871/3214/2063 1657/2594/1897 -f 1673/2605/1904 1674/3504/1904 1667/3216/1900 -f 2207/3217/2443 2208/3642/2449 2209/3218/2444 -f 1798/3643/2749 1801/3220/2446 1800/3222/2448 -f 1801/3220/2446 1803/3644/2750 1805/3221/2447 -f 1805/3221/2447 1807/3645/2751 1800/3222/2448 -f 1807/3645/2751 1809/3646/2752 1800/3222/2448 -f 1809/3646/2752 1796/3647/2753 1800/3222/2448 -f 1796/3647/2753 1797/3648/2754 1800/3222/2448 -f 1800/3222/2448 1802/3649/2755 1811/3650/2756 -f 1802/3649/2755 1804/3651/2757 1806/3652/2758 -f 1808/3653/2759 1802/3649/2755 1806/3652/2758 -f 1808/3653/2759 1811/3650/2756 1802/3649/2755 -f 1811/3650/2756 1799/3654/2760 1800/3222/2448 -f 1799/3654/2760 1798/3643/2749 1800/3222/2448 -f 2208/3223/2449 1996/3655/2761 2211/3224/2450 -f 2173/3226/2353 2207/3656/2353 2210/3227/2451 -f 2112/3229/2452 2118/3657/2762 1722/3230/2453 -f 1683/3232/2455 1682/2606/2763 2112/3229/2452 -f 2217/3658/2764 2212/3659/2765 2216/3235/2458 -f 2212/3659/2765 1698/3233/2456 2216/3235/2458 -f 1701/3660/2766 2213/3661/2767 2214/3662/2768 -f 1701/3660/2766 2214/3662/2768 1698/3233/2456 -f 2214/3662/2768 2215/3234/2457 1698/3233/2456 -f 2218/3236/2459 2212/3240/2460 2217/3237/2460 -f 1699/3239/2461 1698/2614/2461 2212/3240/2461 -f 1730/2646/1943 1688/3523/2672 1697/3241/2462 -f 1894/3242/1896 1893/3247/1902 1669/3243/1902 -f 1669/2602/1902 1980/3436/2132 2220/3245/2132 -f 1657/3246/1897 1895/3552/2769 1894/3242/1896 -f 1893/3247/1948 1892/2853/1948 1902/2847/1948 -f 1902/2847/1948 1896/3284/1948 1979/2924/1948 -f 1896/3284/1948 1879/2837/1948 1979/2924/1948 -f 2221/3248/2463 1986/3663/2463 2196/3249/2464 -f 2223/3251/2465 1896/3284/2498 1902/2847/2069 -f 1890/3252/2466 1792/3258/2472 1905/3253/2467 -f 1882/3254/2468 2224/3264/2478 2225/3255/2469 -f 1883/3256/2470 2225/3255/2469 1904/3257/2471 -f 1890/3252/2466 1889/3263/2477 1793/2692/1990 -f 1897/3259/2473 2226/3283/2497 2227/3260/2474 -f 1888/3262/2476 1794/2693/1991 1793/2692/1990 -f 1881/3261/2475 2227/3260/2474 2224/3264/2478 -f 1860/3265/2479 2226/3283/2497 2223/3251/2465 -f 1887/2845/2066 1899/2844/2065 1794/2693/1991 -f 1866/3267/2481 1867/3300/2513 1899/2844/2065 -f 1858/3268/2482 1859/3266/2480 2223/3251/2465 -f 1903/2848/2070 1905/3253/2467 1868/3269/2483 -f 1901/2849/2071 1903/2848/2070 1857/3270/2484 -f 1865/3271/2485 1866/3267/2481 1898/2846/2068 -f 1904/3257/2471 2225/3255/2469 1863/3272/2486 -f 1905/3253/2467 1792/3258/2472 1791/3274/2488 -f 2225/3255/2469 2224/3264/2478 1862/3275/2489 -f 2224/3264/2478 2227/3260/2474 1861/3276/2490 -f 1914/3277/2491 1913/3304/2516 1789/3278/2492 -f 1910/3280/2494 1860/3309/2521 1859/3281/2495 -f 1860/3265/2479 1861/3276/2490 2227/3260/2474 -f 1896/3284/2498 2223/3251/2465 2226/3283/2497 -f 1932/3285/2499 1858/3290/2504 1857/3286/2500 -f 1946/3288/2502 1914/3277/2491 1867/3279/2493 -f 1918/3282/2496 1859/3281/2495 1858/3290/2504 -f 1927/3291/2505 1926/3294/2508 1865/3292/2506 -f 1926/3294/2508 1946/3288/2502 1866/3289/2503 -f 1907/3295/2509 1927/3291/2505 1864/3293/2507 -f 1930/3296/2501 1857/3664/2500 1868/3297/2510 -f 1789/3299/2512 1794/2693/1991 1899/2844/2065 -f 1931/3301/2511 1868/3665/2510 1791/3302/2514 -f 1913/3304/2516 1923/3306/2518 1790/3305/2517 -f 1923/3306/2518 1922/3303/2515 1791/3302/2514 -f 1932/2878/2100 1930/3553/2677 1929/2874/2096 -f 1909/3307/2519 1906/2854/2076 1862/2856/2078 -f 1900/2851/2073 1904/3257/2471 1864/3273/2487 -f 1914/2861/2083 1946/3556/2678 1945/2891/2107 -f 1910/3280/2494 1909/3307/2519 1861/3308/2520 -f 1928/2876/2098 1931/2875/2097 1922/3310/2522 -f 2013/2962/2170 2012/3575/2690 2017/3311/2173 -f 2228/3312/2523 2229/3666/2523 2230/3313/2524 -f 2231/3315/2525 2232/3320/2525 1951/2898/2112 -f 1948/3316/2526 1949/3327/2532 2233/3317/2527 -f 2235/3319/2528 2236/3332/2536 2232/3320/2525 -f 2238/3321/2529 2239/3328/2530 2240/3322/2530 -f 1947/3324/2531 1948/3316/2526 2234/3318/2526 -f 1952/3326/2113 1943/3555/2105 1942/2888/2105 -f 1954/3314/2524 2230/3313/2524 2233/3317/2527 -f 2239/3328/2530 2229/3666/2523 2228/3312/2523 -f 2242/3329/2533 2243/3333/2534 2244/3330/2534 -f 1947/3324/2531 2241/3325/2531 2236/3332/2536 -f 1941/2890/2106 1944/2889/2106 2244/3330/2534 -f 2245/3331/2535 2238/3321/2529 2237/3323/2529 -f 2228/3334/2537 1928/3338/2098 1921/3335/2090 -f 1921/3335/2090 1920/3342/2092 2237/3337/2539 -f 2228/3334/2537 1954/2902/2114 1929/2901/2096 -f 1912/3339/2082 1915/3667/2084 2243/3340/2540 -f 1920/3342/2092 1912/3339/2082 2242/3341/2541 -f 2243/3340/2540 1915/3667/2084 1945/3343/2107 -f 1945/3343/2107 1925/3347/2093 1942/3345/2543 -f 1953/3346/2544 1942/3345/2543 1925/3347/2093 -f 1924/3348/2095 1917/3350/2103 1950/3349/2545 -f 1917/3350/2103 1916/3352/2085 2231/3351/2546 -f 1916/3352/2085 1908/3354/2079 2235/3353/2547 -f 1908/3354/2079 1911/3668/2081 1947/3355/2110 -f 2246/3356/2548 2247/3669/2548 2174/3357/2451 -f 2249/3361/2120 2148/3375/2120 2205/3207/2120 -f 2148/3375/2120 2147/3596/2120 2205/3207/2120 -f 2205/3207/2120 2204/3359/2120 2249/3361/2120 -f 2009/2961/2169 2120/3113/2335 2034/3001/2571 -f 2011/3374/1918 1939/3670/1918 2018/3671/1918 -f 1939/3670/1918 1965/3672/1918 2018/3671/1918 -f 2018/3671/1918 2017/3372/1918 2011/3374/1918 -f 2249/3361/2576 2137/3171/2407 2149/3172/2409 -f 1803/3170/2406 2252/3405/2603 2253/3376/2578 -f 2108/3103/2317 2136/3141/2368 2139/3143/2370 -f 2138/3142/2369 2137/3171/2407 2249/3361/2576 -f 2043/3379/2584 2157/3156/2770 2156/3155/2585 -f 1870/3380/2063 1895/3552/2769 1657/3246/1897 -f 2169/3673/2771 2168/3674/2772 1831/3383/2589 -f 2168/3674/2772 2254/3675/2773 1832/3676/2774 -f 2168/3674/2772 1832/3676/2774 1831/3383/2589 -f 2258/3677/2179 2175/3678/2179 2169/3673/2771 -f 2257/3382/2588 2258/3677/2179 2169/3673/2771 -f 1844/3679/2775 2255/3680/2776 2256/3381/2587 -f 2169/3673/2771 1831/3383/2589 2257/3382/2588 -f 1831/3383/2589 1844/3679/2775 2256/3381/2587 -f 2002/3385/2591 2001/3681/2686 2259/3386/2592 -f 1987/3388/1918 1986/3682/2593 2221/3389/2593 -f 1914/3392/2179 1946/3683/2179 1930/3393/2595 -f 1946/3683/2179 1926/3684/2777 1930/3393/2595 -f 1926/3684/2777 1927/3685/2179 1930/3393/2595 -f 1927/3685/2179 1907/3686/2179 1930/3393/2595 -f 1907/3686/2179 1906/3687/2778 1930/3393/2595 -f 1906/3687/2778 1909/3688/2778 1930/3393/2595 -f 1909/3688/2778 1910/3689/2778 1930/3393/2595 -f 1910/3689/2778 1918/3690/2779 1930/3393/2595 -f 1918/3690/2779 1932/3691/2780 1930/3393/2595 -f 1930/3393/2595 1931/3692/2781 1922/3693/2782 -f 1922/3693/2782 1923/3694/2594 1930/3393/2595 -f 1923/3694/2594 1913/3391/2594 1930/3393/2595 -f 1699/3396/2598 2218/3695/2783 2260/3696/2784 -f 2218/3695/2783 2219/3697/2785 2260/3696/2784 -f 2262/3394/2596 2263/3698/2786 1700/3395/2597 -f 1699/3396/2598 2260/3696/2784 2261/3699/2787 -f 2261/3699/2787 2262/3394/2596 1699/3396/2598 -f 1730/2646/1943 1728/2643/1940 1629/2641/1938 -f 1814/2817/2014 1815/3700/2016 1840/3398/2058 -f 2265/3701/2788 2264/3702/2789 1976/3401/2602 -f 2264/3702/2789 2188/3399/2600 1976/3401/2602 -f 2013/3703/2353 2016/3704/2353 2014/3403/2353 -f 2016/3704/2353 2015/3404/2353 2014/3403/2353 -f 2015/3404/2353 1966/3705/2353 2006/3402/2353 -f 2252/3405/2603 1803/3170/2406 2152/3169/2405 -f 2267/3408/2606 2254/3706/2790 2168/3707/2791 -f 2167/3409/2607 2172/3708/2792 2188/3709/2793 -f 2267/3408/2606 2168/3707/2791 2167/3409/2607 -f 2188/3709/2793 2266/3407/2605 2167/3409/2607 -f 2194/3412/2441 1638/3199/2431 2174/3710/2415 -f 2174/3710/2415 2247/3410/2608 2194/3412/2441 -f 2155/3711/2794 2143/3712/2795 2153/3713/2796 -f 2143/3712/2795 2144/3714/2797 2153/3713/2796 -f 2144/3714/2797 2166/3715/2798 2153/3713/2796 -f 1627/3414/2611 2043/3716/2799 2162/3415/2612 -f 2043/3716/2799 2153/3713/2796 2166/3715/2798 -f 2162/3415/2612 2043/3716/2799 2166/3715/2798 -f 2162/3415/2612 2160/3717/2800 1689/3413/2610 -f 2157/3417/2614 2043/3718/2801 1627/3719/2802 -f 1626/3418/2615 2111/3720/2803 2159/3416/2613 -f 2111/3720/2803 2110/3721/2804 2193/3722/2805 -f 2111/3720/2803 2193/3722/2805 2159/3416/2613 -f 2157/3417/2614 1627/3719/2802 1626/3418/2615 -f 1957/3723/2806 2253/3724/2807 1955/3725/2808 -f 2253/3724/2807 2252/3726/2809 1955/3725/2808 -f 1690/3419/2616 1689/3727/2810 2129/3728/2811 -f 1689/3727/2810 2160/3729/2812 2130/3730/2813 -f 1689/3727/2810 2130/3730/2813 2129/3728/2811 -f 2164/3421/2618 1955/3725/2808 2252/3726/2809 -f 1690/3419/2616 2129/3728/2811 2161/3420/2617 -f 2164/3421/2618 2252/3726/2809 1690/3419/2616 -f 2010/2960/2622 2038/3005/2814 2251/3368/2623 -f 2085/3067/2277 2080/3064/2279 2047/3425/2288 -f 2265/3427/2625 1976/3731/2129 1975/3428/2626 -f 2265/3732/2815 2200/3733/2816 2278/3734/2817 -f 2200/3733/2816 2199/3735/2818 2268/3736/2819 -f 2200/3733/2816 2268/3736/2819 2278/3734/2817 -f 2278/3734/2817 2264/3737/2820 2265/3732/2815 -f 1746/3738/2821 2278/3734/2817 2268/3736/2819 -f 1746/3738/2821 2268/3736/2819 2269/3739/2822 -f 2277/3740/2823 1746/3738/2821 2269/3739/2822 -f 2277/3740/2823 2269/3739/2822 2270/3741/2824 -f 2276/3742/2825 2277/3740/2823 2270/3741/2824 -f 2276/3742/2825 2270/3741/2824 2271/3743/2826 -f 2275/3744/2827 2276/3742/2825 2195/3432/2629 -f 2276/3742/2825 2271/3743/2826 2195/3432/2629 -f 2271/3743/2826 2272/3745/2828 2195/3432/2629 -f 2247/3746/2829 2246/3747/2830 2274/3748/2831 -f 2274/3748/2831 2275/3744/2827 2195/3432/2629 -f 2273/3430/2627 2222/3749/1948 2196/3431/2628 -f 2272/3745/2828 2273/3430/2627 2195/3432/2629 -f 2195/3432/2629 2247/3746/2829 2274/3748/2831 -f 1710/3750/2832 1709/3751/2833 2191/3433/2631 -f 2191/3433/2631 2190/3752/2834 1970/3434/2632 -f 2190/3752/2834 1999/3753/2835 1970/3434/2632 -f 1973/3435/2633 1710/3750/2832 2191/3433/2631 -f 1671/2604/1903 1672/2603/1903 2220/3245/2132 -f 1980/2923/2132 1669/3243/1902 1893/3247/1902 -f 1988/3439/2636 1987/3754/2594 2001/3755/2836 -f 1987/3754/2594 2259/3756/2594 2001/3755/2836 -f 2001/3755/2836 2005/3757/2837 1993/3437/2634 -f 2005/3757/2837 1994/3758/2146 1993/3437/2634 -f 2207/3759/2838 2173/3760/2779 2208/3761/2839 -f 2173/3760/2779 1988/3439/2636 1997/3438/2635 -f 2208/3761/2839 2173/3760/2779 1997/3438/2635 -f 1997/3438/2635 1996/3762/2840 2208/3761/2839 -f 1988/3439/2636 2001/3755/2836 1993/3437/2634 -f 2280/3440/2637 1712/3763/2637 1996/3441/2638 -f 2282/3443/2639 2283/3447/2639 2284/3444/2640 -f 2285/3446/2641 2286/3497/2641 2283/3447/2639 -f 2281/3445/2640 2284/3444/2640 2288/3448/2642 -f 2290/3450/2643 2291/3498/2643 2292/3451/2644 -f 2294/3453/2645 2289/3452/2644 2292/3451/2644 -f 2298/3455/2646 2297/3458/2647 2296/3456/2647 -f 2297/3458/2647 2300/3501/2648 2299/3459/2648 -f 2304/3460/2649 2303/3496/2649 2302/3461/2650 -f 2293/3454/2645 2306/3764/2651 2305/3463/2651 -f 2308/3464/2652 2298/3455/2646 2295/3457/2646 -f 2309/3466/2647 2310/3495/2648 2300/3467/2648 -f 2311/3469/2646 2309/3466/2647 2297/3468/2647 -f 2312/3471/2652 2311/3469/2646 2298/3470/2646 -f 2313/3473/2651 2312/3471/2652 2308/3472/2652 -f 2314/3475/2645 2313/3473/2651 2306/3474/2651 -f 2315/3477/2644 2314/3475/2645 2293/3476/2645 -f 2316/3479/2643 2315/3477/2644 2292/3478/2644 -f 2317/3481/2642 2316/3479/2643 2291/3480/2643 -f 2318/3483/2640 2317/3481/2642 2288/3482/2642 -f 2283/3485/2639 2286/3489/2641 2320/3486/2641 -f 2319/3487/2639 2318/3483/2640 2284/3484/2640 -f 2321/3488/2649 2320/3486/2641 2286/3489/2641 -f 2322/3491/2650 2321/3488/2649 2304/3490/2649 -f 2324/3493/2653 2322/3491/2650 2301/3492/2650 -f 2310/3495/2648 2324/3493/2653 2323/3494/2653 -f 2303/3496/2649 2304/3460/2649 2286/3497/2641 -f 2287/3449/2642 2288/3448/2642 2291/3498/2643 -f 2305/3463/2651 2306/3764/2651 2308/3464/2652 -f 2323/3499/2653 2301/3462/2650 2302/3461/2650 -f 2300/3501/2648 2323/3499/2653 2325/3500/2653 +f 2210/3541/2727 2212/3542/2728 2209/3543/2729 +f 2214/3544/2730 2216/3545/2731 2213/3546/2732 +f 2211/3547/2733 2218/3548/2734 2212/3542/2728 +f 2215/3549/2735 2220/3550/2736 2216/3545/2731 +f 2217/3551/2737 2222/3552/2738 2218/3548/2734 +f 2219/3553/2739 2223/3554/2740 2220/3550/2736 +f 2221/3555/2741 2225/3556/2742 2222/3552/2738 +f 2223/3554/2740 2205/3557/2743 2226/3558/2744 +f 2225/3556/2742 2227/3559/2745 2228/3560/2746 +f 2226/3558/2744 2229/3561/2747 2230/3562/2748 +f 2227/3559/2745 2232/3563/2749 2228/3560/2746 +f 2230/3562/2748 2233/3564/2750 2234/3565/2751 +f 2231/3566/2752 2236/3567/2753 2232/3563/2749 +f 2234/3565/2751 2210/3541/2727 2209/3543/2729 +f 2235/3568/2754 2213/3546/2732 2236/3567/2753 +f 2237/3569/2755 2239/3570/2756 2240/3571/2757 +f 2225/3556/2758 2213/3546/2758 2226/3558/2758 +f 2241/3572/2759 2243/3573/2760 2244/3574/2759 +f 2245/3575/2761 2247/3576/2762 2242/3577/2763 +f 2238/3578/2764 2249/3579/2765 2239/3570/2756 +f 2250/3580/2766 2247/3576/2762 2246/3581/2767 +f 2252/3582/2768 2249/3579/2765 2248/3583/2769 +f 2207/3584/2770 2255/3585/2771 2251/3586/2772 +f 2252/3582/2768 2257/3587/2773 2253/3588/2774 +f 2254/3589/2775 2208/3590/2776 2207/3584/2770 +f 2259/3591/2777 2257/3587/2773 2256/3592/2778 +f 2262/3593/2779 2263/3594/2780 2208/3590/2776 +f 2259/3591/2777 2265/3595/2781 2260/3596/2782 +f 2266/3597/2783 2262/3593/2779 2261/3598/2784 +f 2268/3599/2785 2265/3595/2781 2264/3600/2786 +f 2266/3597/2783 2240/3571/2757 2267/3601/2787 +f 2268/3599/2785 2242/3577/2763 2241/3602/2788 +f 2239/3603/2789 2270/3604/2790 2240/3605/2790 +f 2247/3606/2791 2243/3573/2760 2242/3607/2760 +f 2249/3608/2792 2269/3609/2789 2239/3603/2789 +f 2251/3610/2793 2271/3611/2791 2247/3606/2791 +f 2253/3612/2794 2272/3613/2792 2249/3608/2792 +f 2255/3614/2795 2273/3615/2793 2251/3610/2793 +f 2257/3616/2796 2274/3617/2794 2253/3612/2794 +f 2255/3614/2795 2277/3618/2797 2275/3619/2795 +f 2260/3620/2798 2276/3621/2796 2257/3616/2796 +f 2263/3622/2797 2279/3623/2799 2277/3618/2797 +f 2260/3620/2798 2280/3624/2800 2278/3625/2798 +f 2267/3626/2801 2279/3623/2799 2262/3627/2799 +f 2265/3628/2800 2244/3574/2759 2280/3624/2800 +f 2240/3605/2790 2281/3629/2801 2267/3626/2801 +f 2282/3630/2802 2224/3631/2803 2221/3632/2741 +f 2284/3633/2804 2210/3634/2727 2233/3635/2750 +f 2286/3636/2805 2231/3637/2752 2227/3638/2745 +f 2285/3639/2806 2211/3640/2733 2210/3634/2727 +f 2289/3641/2807 2221/3632/2741 2217/3642/2737 +f 2283/3643/2808 2227/3638/2745 2224/3631/2803 +f 2287/3644/2809 2235/3645/2754 2231/3637/2752 +f 2288/3646/2810 2217/3642/2737 2211/3640/2733 +f 2208/3538/2811 2229/3647/2747 2205/3539/2743 +f 2292/3648/2812 2219/3649/2739 2215/3650/2735 +f 2290/3651/2813 2214/3652/2730 2235/3645/2754 +f 2291/3653/2814 2233/3635/2750 2229/3647/2747 +f 2294/3654/2815 2215/3650/2735 2214/3652/2730 +f 2293/3655/2816 2206/3537/2817 2219/3649/2739 +f 2296/3656/2818 2298/3657/2819 2295/3658/2820 +f 2246/3659/2767 2299/3660/2821 2300/3661/2822 +f 2295/3658/2820 2302/3662/2823 2301/3663/2824 +f 2246/3659/2767 2303/3664/2825 2250/3665/2766 +f 2301/3663/2824 2305/3666/2826 2304/3667/2827 +f 2254/3668/2775 2303/3664/2825 2306/3669/2828 +f 2304/3667/2827 2308/3670/2829 2307/3671/2830 +f 2309/3672/2831 2306/3669/2828 2310/3673/2832 +f 2307/3671/2830 2311/3674/2833 2259/3675/2777 +f 2312/3676/2834 2310/3673/2832 2313/3677/2835 +f 2259/3675/2777 2314/3678/2836 2264/3679/2786 +f 2315/3680/2837 2313/3677/2835 2316/3681/2838 +f 2264/3679/2786 2317/3682/2839 2268/3683/2785 +f 2296/3656/2818 2316/3681/2838 2297/3684/2840 +f 2245/3685/2761 2317/3682/2839 2299/3660/2821 +f 2306/3686/2828 2300/3687/2822 2311/3688/2833 +f 2207/3584/2770 2263/3594/2780 2255/3585/2771 +f 2210/3541/2727 2211/3547/2733 2212/3542/2728 +f 2214/3544/2730 2215/3549/2735 2216/3545/2731 +f 2211/3547/2733 2217/3551/2737 2218/3548/2734 +f 2215/3549/2735 2219/3553/2739 2220/3550/2736 +f 2217/3551/2737 2221/3555/2741 2222/3552/2738 +f 2219/3553/2739 2206/3689/2817 2223/3554/2740 +f 2221/3555/2741 2224/3690/2803 2225/3556/2742 +f 2223/3554/2740 2206/3689/2817 2205/3557/2743 +f 2225/3556/2742 2224/3690/2803 2227/3559/2745 +f 2226/3558/2744 2205/3557/2743 2229/3561/2747 +f 2227/3559/2745 2231/3566/2752 2232/3563/2749 +f 2230/3562/2748 2229/3561/2747 2233/3564/2750 +f 2231/3566/2752 2235/3568/2754 2236/3567/2753 +f 2234/3565/2751 2233/3564/2750 2210/3541/2727 +f 2235/3568/2754 2214/3544/2730 2213/3546/2732 +f 2237/3569/2755 2238/3578/2764 2239/3570/2756 +f 2218/3548/2758 2222/3552/2758 2225/3556/2758 +f 2225/3556/2758 2228/3560/2758 2232/3563/2758 +f 2232/3563/2758 2236/3567/2758 2225/3556/2758 +f 2236/3567/2758 2213/3546/2758 2225/3556/2758 +f 2213/3546/2758 2216/3545/2758 2226/3558/2758 +f 2216/3545/2758 2220/3550/2758 2226/3558/2758 +f 2220/3550/2758 2223/3554/2758 2226/3558/2758 +f 2226/3558/2758 2230/3562/2758 2212/3542/2758 +f 2230/3562/2758 2234/3565/2758 2212/3542/2758 +f 2234/3565/2758 2209/3543/2758 2212/3542/2758 +f 2212/3542/2758 2218/3548/2758 2225/3556/2758 +f 2212/3542/2758 2225/3556/2758 2226/3558/2758 +f 2241/3572/2759 2242/3607/2760 2243/3573/2760 +f 2245/3575/2761 2246/3581/2767 2247/3576/2762 +f 2238/3578/2764 2248/3583/2769 2249/3579/2765 +f 2250/3580/2766 2251/3586/2772 2247/3576/2762 +f 2252/3582/2768 2253/3588/2774 2249/3579/2765 +f 2251/3586/2772 2250/3580/2766 2207/3584/2770 +f 2250/3580/2766 2254/3589/2775 2207/3584/2770 +f 2252/3582/2768 2256/3592/2778 2257/3587/2773 +f 2254/3589/2775 2258/3691/2841 2208/3590/2776 +f 2259/3591/2777 2260/3596/2782 2257/3587/2773 +f 2208/3590/2776 2258/3691/2841 2261/3598/2784 +f 2261/3598/2784 2262/3593/2779 2208/3590/2776 +f 2259/3591/2777 2264/3600/2786 2265/3595/2781 +f 2266/3597/2783 2267/3601/2787 2262/3593/2779 +f 2268/3599/2785 2241/3602/2788 2265/3595/2781 +f 2266/3597/2783 2237/3569/2755 2240/3571/2757 +f 2268/3599/2785 2245/3575/2761 2242/3577/2763 +f 2239/3603/2789 2269/3609/2789 2270/3604/2790 +f 2247/3606/2791 2271/3611/2791 2243/3573/2760 +f 2249/3608/2792 2272/3613/2792 2269/3609/2789 +f 2251/3610/2793 2273/3615/2793 2271/3611/2791 +f 2253/3612/2794 2274/3617/2794 2272/3613/2792 +f 2255/3614/2795 2275/3619/2795 2273/3615/2793 +f 2257/3616/2796 2276/3621/2796 2274/3617/2794 +f 2255/3614/2795 2263/3622/2797 2277/3618/2797 +f 2260/3620/2798 2278/3625/2798 2276/3621/2796 +f 2263/3622/2797 2262/3627/2799 2279/3623/2799 +f 2260/3620/2798 2265/3628/2800 2280/3624/2800 +f 2267/3626/2801 2281/3629/2801 2279/3623/2799 +f 2265/3628/2800 2241/3572/2759 2244/3574/2759 +f 2240/3605/2790 2270/3604/2790 2281/3629/2801 +f 2282/3630/2802 2283/3643/2808 2224/3631/2803 +f 2284/3633/2804 2285/3639/2806 2210/3634/2727 +f 2286/3636/2805 2287/3644/2809 2231/3637/2752 +f 2285/3639/2806 2288/3646/2810 2211/3640/2733 +f 2289/3641/2807 2282/3630/2802 2221/3632/2741 +f 2283/3643/2808 2286/3636/2805 2227/3638/2745 +f 2287/3644/2809 2290/3651/2813 2235/3645/2754 +f 2288/3646/2810 2289/3641/2807 2217/3642/2737 +f 2208/3538/2811 2291/3653/2814 2229/3647/2747 +f 2292/3648/2812 2293/3655/2816 2219/3649/2739 +f 2290/3651/2813 2294/3654/2815 2214/3652/2730 +f 2291/3653/2814 2284/3633/2804 2233/3635/2750 +f 2294/3654/2815 2292/3648/2812 2215/3650/2735 +f 2293/3655/2816 2207/3540/2842 2206/3537/2817 +f 2296/3656/2818 2297/3684/2840 2298/3657/2819 +f 2246/3659/2767 2245/3685/2761 2299/3660/2821 +f 2295/3658/2820 2298/3657/2819 2302/3662/2823 +f 2246/3659/2767 2300/3661/2822 2303/3664/2825 +f 2301/3663/2824 2302/3662/2823 2305/3666/2826 +f 2254/3668/2775 2250/3665/2766 2303/3664/2825 +f 2304/3667/2827 2305/3666/2826 2308/3670/2829 +f 2309/3672/2831 2254/3668/2775 2306/3669/2828 +f 2307/3671/2830 2308/3670/2829 2311/3674/2833 +f 2312/3676/2834 2309/3672/2831 2310/3673/2832 +f 2259/3675/2777 2311/3674/2833 2314/3678/2836 +f 2315/3680/2837 2312/3676/2834 2313/3677/2835 +f 2264/3679/2786 2314/3678/2836 2317/3682/2839 +f 2296/3656/2818 2315/3680/2837 2316/3681/2838 +f 2245/3685/2761 2268/3683/2785 2317/3682/2839 +f 2325/3692/2843 2318/3693/2844 2319/3694/2845 +f 2319/3694/2845 2320/3695/2846 2321/3696/2847 +f 2321/3696/2847 2322/3697/2848 2323/3698/2849 +f 2323/3698/2849 2324/3699/2850 2306/3686/2828 +f 2306/3686/2828 2303/3700/2825 2300/3687/2822 +f 2300/3687/2822 2299/3701/2821 2317/3702/2839 +f 2317/3702/2839 2314/3703/2836 2300/3687/2822 +f 2314/3703/2836 2311/3688/2833 2300/3687/2822 +f 2311/3688/2833 2325/3692/2843 2323/3698/2849 +f 2325/3692/2843 2319/3694/2845 2323/3698/2849 +f 2319/3694/2845 2321/3696/2847 2323/3698/2849 +f 2323/3698/2849 2306/3686/2828 2311/3688/2833 +f 2207/3584/2770 2208/3590/2776 2263/3594/2780 diff --git a/src/main/resources/assets/hbm/sounds/weapon/shottyShoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/shottyShoot.ogg index 13aca3d353da18217626b738437c87cd47066e3c..0d37b493a9a3a862f00b8e9fabb4a2f7b6fdf4d3 100644 GIT binary patch literal 15206 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 ZK6lcg&ie@Ba?rt|`Io&0B&43<{{SOe=!gIS literal 28617 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 +_$D14 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 From b787040e33036d0de7c0ad0d355aff3c03d9aa27 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 18 Feb 2024 17:53:37 +1100 Subject: [PATCH 195/376] oops forgot to update the Blender reference implementation --- ntm-animator.blend | Bin 1098396 -> 1099952 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ntm-animator.blend b/ntm-animator.blend index ca5f2a6586e5e3fd084ee389f54a61fd0f1a7db0..83169042bec4a2c9d93635a34ec6fb784856af9c 100644 GIT binary patch delta 128145 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 H)!Y9E!@(?* delta 128163 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 M9`^e|m;d(v0&65sF#rGn From 6d14bbb10b8e14341f6cc0e908641aedc9d0a665 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 18 Feb 2024 20:01:53 +1100 Subject: [PATCH 196/376] Another small bugfix in reference implementation, it would try to add unsupported lerp types --- ntm-animator.blend | Bin 1099952 -> 1100788 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ntm-animator.blend b/ntm-animator.blend index 83169042bec4a2c9d93635a34ec6fb784856af9c..252086d2796f63c88c44c762fb86322434eec3e6 100644 GIT binary patch delta 140456 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 delta 139501 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

    U0s8Ef$(GIx&{xUKD}H*$@=idEyT8Hd!j>dpej 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 ScQ|01&4-C0^u{3ok}d!P4VV%D literal 0 HcmV?d00001 From 7a4799939d0c6081742b15b3179e1fc9373e279e Mon Sep 17 00:00:00 2001 From: Kal19801 <158162434+Kal19801@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:22:03 +0800 Subject: [PATCH 208/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index abc8bf4a4..fee314d02 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -661,6 +661,7 @@ container.heaterFirebox=燃烧室 container.heaterHeatex=热交换器 container.heaterOilburner=流体燃烧器 container.heaterOven=加热炉 +container.hydrotreater=加氢装置 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 @@ -1259,6 +1260,7 @@ hbmfluid.colloid=胶体 hbmfluid.coolant=冷却液 hbmfluid.coolant_hot=热冷却液 hbmfluid.crackoil=裂化油 +hbmfluid.crackoil_ds=脱硫裂化油 hbmfluid.cryogel=冷凝胶 hbmfluid.death=锇酸溶液 hbmfluid.deuterium=氘 @@ -1286,7 +1288,9 @@ hbmfluid.heavywater_hot=高温重水 hbmfluid.helium3=氦-3 hbmfluid.helium4=氦-4 hbmfluid.hotcrackoil=热裂化油 +hbmfluid.hotcrackoil_ds=热的脱硫裂化油 hbmfluid.hotoil=热原油 +hbmfluid.hotoil_ds=热的脱硫原油 hbmfluid.hotsteam=热蒸汽 hbmfluid.hydrogen=液氢 hbmfluid.iongel=离子凝胶 @@ -1295,6 +1299,7 @@ hbmfluid.kerosene_reform=喷气燃料 hbmfluid.lava=岩浆 hbmfluid.lightoil=轻油 hbmfluid.lightoil_crack=裂化轻油 +hbmfluid.lightoil_ds=脱硫轻油 hbmfluid.lightoil_vacuum=减压轻油 hbmfluid.lpg=液化石油气 hbmfluid.lubricant=润滑油 @@ -1305,12 +1310,14 @@ hbmfluid.mustardgas=芥子气 hbmfluid.naphtha=石脑油 hbmfluid.naphtha_coker=焦化石脑油 hbmfluid.naphtha_crack=裂化石脑油 +hbmfluid.naphtha_ds=脱硫石脑油 hbmfluid.nitan=NITAN牌100号超级燃料 hbmfluid.nitric_acid=硝酸 hbmfluid.nitroglycerin=硝酸甘油 hbmfluid.none=无 hbmfluid.oil=原油 hbmfluid.oil_coker=焦化油 +hbmfluid.oil_ds=脱硫原油 hbmfluid.oxygen=液氧 hbmfluid.oxyhydrogen=氢氧混合气 hbmfluid.pain=Pn(III) 钽铁溶液 @@ -5038,6 +5045,7 @@ tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 tile.machine_hephaestus.name=地热换热器 +tile.machine_hydrotreater.name=加氢装置 tile.machine_industrial_boiler.name=工业锅炉 tile.machine_industrial_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热率:ΔT*0.01 TU/T$不会爆炸 tile.machine_industrial_generator.name=工业发电机 From 315bb8d4496f5eaac16ba57410eedcfc800009a4 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 20 Feb 2024 16:26:13 +0100 Subject: [PATCH 209/376] whatever --- changelog | 16 +++++----------- .../com/hbm/entity/projectile/EntityTom.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 2 +- src/main/java/com/hbm/lib/HbmWorldGen.java | 8 +------- 4 files changed, 8 insertions(+), 20 deletions(-) diff --git a/changelog b/changelog index b007c05fe..be8d936a0 100644 --- a/changelog +++ b/changelog @@ -1,15 +1,9 @@ ## Changed * Updated chinese localization -* Due to the HTR-01 being incompatible with the new launch pad, it is no longer craftable and is being retired - * Any remaining rockets can be crafted into a Soyuz -* All Soyuz launcher components now have double the yield in crafting recipes, making the launcher half as expensive -* There is now a config for disabling fluid container oredict (i.e. anything with the "container" prefix) which also disables TrainCraft diesel compatibility -* Silo structures now spawn with launch pads again - * This is strictly speaking a progression skip since silo launch pads are post vacuum oil, the structure will be overhauled soon +* Tweaked super shotgun animations, added config for changing the animation style +* The benelli now has reloading animations and the drum mag as advertised +* Tom will now explode close to bedrock even when not hitting a block ## Fixed -* Fixed missile loading process being skipped when a new missile is inserted in the same tick as the launch pad is triggered -* Fixed super shotgun's centered model causing it to permanently have the ironsights accuracy bonus -* The shield bar now renders as part of the armor HUD (but still below it), which should fix the issue of the bar not rendering with Tinker's Construct installed for good -* Fixed launch pad redstone interaction breaking after the first time the redstone state changes -* Fallout layers now use the sand material, fixing an issue where grass blocks with fallout on top look snowy +* Fixed the structure toggle on the world creation screen not working correctly on most world types +* Fixed antiknock having a broken sprite and localization diff --git a/src/main/java/com/hbm/entity/projectile/EntityTom.java b/src/main/java/com/hbm/entity/projectile/EntityTom.java index 7a6e56df7..c8d6854dc 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityTom.java +++ b/src/main/java/com/hbm/entity/projectile/EntityTom.java @@ -30,7 +30,7 @@ public class EntityTom extends EntityThrowable { motionY = -0.5; - if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air || this.posY < 10) { if(!this.worldObj.isRemote) { EntityTomBlast tom = new EntityTomBlast(worldObj); tom.posX = posX; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 9ace8049a..d8214f073 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3313,7 +3313,7 @@ public class ModItems { thermo_element = new Item().setUnlocalizedName("thermo_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":thermo_element"); catalytic_converter = new Item().setUnlocalizedName("catalytic_converter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":catalytic_converter"); - fuel_additive = new ItemEnumMulti(ItemEnums.EnumFuelAdditive.class, true, true).setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); + fuel_additive = new ItemEnumMulti(ItemEnums.EnumFuelAdditive.class, true, true).setUnlocalizedName("fuel_additive").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuel_additive"); canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":canister_empty"); canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_empty"); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index efce71839..bda498e9b 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -49,7 +49,6 @@ import net.minecraft.world.biome.BiomeGenForest; import net.minecraft.world.biome.BiomeGenJungle; import net.minecraft.world.biome.BiomeGenRiver; import net.minecraft.world.chunk.IChunkProvider; -import net.minecraft.world.gen.ChunkProviderFlat; import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.common.IWorldGenerator; @@ -218,13 +217,8 @@ public class HbmWorldGen implements IWorldGenerator { } } - boolean enableDungeons = true; + boolean enableDungeons = world.getWorldInfo().isMapFeaturesEnabled(); - if(world.getChunkProvider() instanceof ChunkProviderFlat) { - ChunkProviderFlat provider = (ChunkProviderFlat) world.getChunkProvider(); - enableDungeons = provider.hasDungeons; - } - if(GeneralConfig.enableDungeons && world.provider.dimensionId == 0 && enableDungeons) { if(MobConfig.enableHives && rand.nextInt(MobConfig.hiveSpawn) == 0) { From 5ce1b997b3ca8292d92fa3e6dda0943925ba7cef Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 20 Feb 2024 20:03:45 -0600 Subject: [PATCH 210/376] small bug fix --- .../com/hbm/tileentity/bomb/TileEntityLaunchTable.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index ce5bf1020..b4b66e174 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -704,9 +704,11 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide @Callback @Optional.Method(modid = "OpenComputers") public Object[] launch(Context context, Arguments args) { - //worldObj.getBlock(xCoord, yCoord, zCoord).explode(worldObj, xCoord, yCoord, zCoord); - ((LaunchPad) ModBlocks.launch_pad).explode(worldObj, xCoord, yCoord, zCoord); - return new Object[] {}; + if(this.canLaunch()) { + this.launchFromDesignator(); + return new Object[] {true}; + } + return new Object[] {false}; } @Override From 0b79e3c29add705d167b04992216756533e9a17d Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 20 Feb 2024 20:12:50 -0600 Subject: [PATCH 211/376] oops useless imports --- .../java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index b4b66e174..ed300621f 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -2,8 +2,6 @@ package com.hbm.tileentity.bomb; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.bomb.LaunchPad; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.MissileStruct; import com.hbm.interfaces.IFluidAcceptor; From b63f0291056b868d4c46c48b25e46328ad7cf154 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 21 Feb 2024 09:52:42 +0100 Subject: [PATCH 212/376] assembler config now uses the new system --- changelog | 4 + .../gui/GUIScreenTemplateFolder.java | 48 +- .../inventory/recipes/AssemblerRecipes.java | 578 +++++------------- .../inventory/recipes/anvil/AnvilRecipes.java | 7 +- .../recipes/loader/SerializableRecipe.java | 1 + .../items/machine/ItemAssemblyTemplate.java | 30 +- src/main/java/com/hbm/main/MainRegistry.java | 6 +- 7 files changed, 222 insertions(+), 452 deletions(-) diff --git a/changelog b/changelog index be8d936a0..fa755b7ee 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,10 @@ * Tweaked super shotgun animations, added config for changing the animation style * The benelli now has reloading animations and the drum mag as advertised * Tom will now explode close to bedrock even when not hitting a block +* The assembler recipe config now uses the same system as all other recipe configs, the file has moved into the `hbmRecipes` folder + * Old files are still compatible if moved to the new folder, since the base structure of the recipe file is the same + * Recipes should work as expected with the `/ntmreload` command + * Recipes now have an optional list for specifying which template folder they are made in ## Fixed * Fixed the structure toggle on the world creation screen not working correctly on most world types diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index aae2a8a45..f58519d0a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -13,6 +13,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.AssemblerRecipes; +import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; import com.hbm.inventory.recipes.ChemplantRecipes; import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.inventory.recipes.CrucibleRecipes; @@ -34,6 +35,7 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -56,21 +58,22 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(player.getHeldItem() == null) return; + + Item item = player.getHeldItem().getItem(); - if(player.getHeldItem().getItem() == ModItems.template_folder) { + this.isJournal = item != ModItems.template_folder; + if(!this.isJournal) { // Stamps - for(ItemStack i : ItemStamp.stamps.get(StampType.PLATE)) - allStacks.add(i.copy()); - for(ItemStack i : ItemStamp.stamps.get(StampType.WIRE)) - allStacks.add(i.copy()); - for(ItemStack i : ItemStamp.stamps.get(StampType.CIRCUIT)) - allStacks.add(i.copy()); + for(ItemStack i : ItemStamp.stamps.get(StampType.PLATE)) allStacks.add(i.copy()); + for(ItemStack i : ItemStamp.stamps.get(StampType.WIRE)) allStacks.add(i.copy()); + for(ItemStack i : ItemStamp.stamps.get(StampType.CIRCUIT)) allStacks.add(i.copy()); // Tracks for(int i = 1; i < ItemCassette.TrackType.values().length; i++) { allStacks.add(new ItemStack(ModItems.siren_track, 1, i)); } + // Fluid IDs FluidType[] fluids = Fluids.getInNiceOrder(); for(int i = 1; i < fluids.length; i++) { @@ -78,14 +81,18 @@ public class GUIScreenTemplateFolder extends GuiScreen { allStacks.add(new ItemStack(ModItems.fluid_identifier, 1, fluids[i].getID())); } } - // Assembly Templates - for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++) { - - ComparableStack comp = AssemblerRecipes.recipeList.get(i); - if(AssemblerRecipes.hidden.get(comp) == null) { - allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); - } + } + + // Assembly Templates + for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++) { + ComparableStack comp = AssemblerRecipes.recipeList.get(i); + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(comp); + if(recipe != null && recipe.folders.contains(item)) { + allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); } + } + + if(!this.isJournal) { // Chemistry Templates for(int i = 0; i < ChemplantRecipes.recipes.size(); i++) { ChemRecipe chem = ChemplantRecipes.recipes.get(i); @@ -96,19 +103,6 @@ public class GUIScreenTemplateFolder extends GuiScreen { for(int i = 0; i < CrucibleRecipes.recipes.size(); i++) { allStacks.add(new ItemStack(ModItems.crucible_template, 1, CrucibleRecipes.recipes.get(i).getId())); } - } else { - - for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++) { - - if(AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)) != null && - AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)).contains(player.getHeldItem().getItem())) { - - ComparableStack comp = AssemblerRecipes.recipeList.get(i); - allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); - } - } - - isJournal = true; } search(null); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 068b8db5b..42c3792ad 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1,6 +1,16 @@ package com.hbm.inventory.recipes; -import com.google.gson.Gson; +import static com.hbm.inventory.OreDictManager.*; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -8,142 +18,35 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.inventory.OreDictManager; -import com.hbm.inventory.RecipesCommon.AStack; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.RecipesCommon.*; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.NTMMaterial; +import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemAmmoEnums; -import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; +import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.items.weapon.ItemAmmoHIMARS; import com.hbm.main.MainRegistry; + import cpw.mods.fml.common.Loader; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.util.*; -import java.util.Map.Entry; - -import static com.hbm.inventory.OreDictManager.*; - -public class AssemblerRecipes { - - public static File config; - public static File template; - private static final Gson gson = new Gson(); - public static HashMap recipes = new HashMap(); - public static HashMap time = new HashMap(); +public class AssemblerRecipes extends SerializableRecipe { + + public static HashMap recipes = new HashMap(); public static List recipeList = new ArrayList(); - public static HashMap> hidden = new HashMap(); - - /** - * Pre-Init phase: Finds the recipe config (if exists) and checks if a template is present, if not it generates one. - * @param dir The suggested config folder - */ - public static void preInit(File dir) { - - if(dir == null || !dir.isDirectory()) - return; - - template = dir; - - List files = Arrays.asList(dir.listFiles()); - - for(File file : files) { - if(file.getName().equals("hbmAssembler.json")) { - config = file; - } - } - } - - public static void loadRecipes() { - - if(config == null) { - registerDefaults(); - } else { - loadJSONRecipes(); - } - - generateList(); - saveTemplateJSON(template); - } - - /** - * Generates an ordered list of outputs, used by the template item to generate subitems - */ - private static void generateList() { - - List list = new ArrayList(recipes.keySet()); - Collections.sort(list); - recipeList = list; - } - - public static ItemStack getOutputFromTempate(ItemStack stack) { - - if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { - - ComparableStack comp = ItemAssemblyTemplate.readType(stack); - - //NEW - if(comp != null) { - return comp.toStack(); - } - - //LEGACY - int i = stack.getItemDamage(); - if(i >= 0 && i < recipeList.size()) { - return recipeList.get(i).toStack(); - } - } - - return null; - } - - public static List getRecipeFromTempate(ItemStack stack) { - - if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { - - //NEW - ComparableStack compStack = ItemAssemblyTemplate.readType(stack); - if(compStack != null) { - AStack[] ret = recipes.get(compStack); - return ret == null ? null : Arrays.asList(ret); - } - - //LEGACY - int i = stack.getItemDamage(); - if(i >= 0 && i < recipeList.size()) { - ItemStack out = recipeList.get(i).toStack(); - - if(out != null) { - ComparableStack comp = new ComparableStack(out); - AStack[] ret = recipes.get(comp); - return ret == null ? null : Arrays.asList(ret); - } - } - } - - return null; - } - - /** - * Registers regular recipes if there's no custom configuration - */ - private static void registerDefaults() { + + @Override + public void registerDefaults() { boolean exp = GeneralConfig.enableExpensiveMode; @@ -308,7 +211,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.nuke_fleija, 1), new AStack[] {new ComparableStack(ModItems.hull_small_aluminium, 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.wire_gold, 8), new OreDictStack("dyeWhite", 4), },400); makeRecipe(new ComparableStack(ModBlocks.nuke_solinium, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new ComparableStack(ModItems.wire_gold, 10), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack("dyeGray", 4), },400); makeRecipe(new ComparableStack(ModBlocks.nuke_n2, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 12), new ComparableStack(ModItems.pipes_steel, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new OreDictStack("dyeBlack", 12), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.wire_gold, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new OreDictStack("dyeGray", 6), },600); + makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.wire_gold, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new OreDictStack("dyeGray", 6), },600, ModItems.journal_pip, ModItems.journal_bj); makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.wire_gold, 12), new OreDictStack("dyeGray", 4), },300); makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.wire_gold, 6), },250); makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); @@ -397,15 +300,15 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.mp_warhead_10_buster, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new ComparableStack(ModBlocks.det_charge, 1), new ComparableStack(ModBlocks.det_cord, 4), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },100); makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(PU239.ingot(), 1), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear_large, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(AL.plate(), 4), new OreDictStack(PU239.ingot(), 2), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },300); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.powder_magic, 12), new ComparableStack(ModItems.bucket_mud, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_cloud, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.grenade_pink_cloud, 2), },100); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.powder_magic, 12), new ComparableStack(ModItems.bucket_mud, 1), },100, ModItems.journal_pip); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_cloud, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.grenade_pink_cloud, 2), },100, ModItems.journal_pip); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_he, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 2), new OreDictStack(P_RED.dust(), 8), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },400); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60); - makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new ComparableStack(ModItems.hull_big_titanium, 32), new ComparableStack(ModItems.hull_big_steel, 18), new OreDictStack(FIBER.ingot(), 64), },600); - makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new OreDictStack(ANY_RUBBER.ingot(), 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new ComparableStack(ModItems.hull_big_titanium, 32), new ComparableStack(ModItems.hull_big_steel, 18), new OreDictStack(FIBER.ingot(), 64), },600, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new OreDictStack(ANY_RUBBER.ingot(), 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600, ModItems.journal_bj); makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600); @@ -669,7 +572,7 @@ public class AssemblerRecipes { new ComparableStack(ModItems.coin_radiation, 1), new ComparableStack(ModItems.coin_maskman, 1), new ComparableStack(ModItems.coin_worm, 1), - }, 1200); + }, 1200, ModItems.journal_bj); makeRecipe(new ComparableStack(ModBlocks.vault_door, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 32), @@ -1060,7 +963,7 @@ public class AssemblerRecipes { if(!GeneralConfig.enable528) { makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); - makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), }, 400, ModItems.journal_pip); makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150); makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300); @@ -1269,298 +1172,142 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.heavy_component, 1, mat.id), new AStack[] { new OreDictStack(MaterialShapes.CASTPLATE.name() + mat.names[0], 256) }, 12_000); } } - - /// HIDDEN /// - hidden.put(new ComparableStack(ModBlocks.machine_radgen, 1), new HashSet() {{ add(ModItems.journal_pip); }}); - hidden.put(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new HashSet() {{ add(ModItems.journal_pip); add(ModItems.journal_bj); }}); - hidden.put(new ComparableStack(ModItems.mp_warhead_10_cloud, 1), new HashSet() {{ add(ModItems.journal_pip); }}); - hidden.put(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new HashSet() {{ add(ModItems.journal_pip); }}); - hidden.put(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new HashSet() {{ add(ModItems.journal_bj); }}); - hidden.put(new ComparableStack(ModItems.sat_gerald, 1), new HashSet() {{ add(ModItems.journal_bj); }}); - hidden.put(new ComparableStack(ModItems.missile_soyuz, 1), new HashSet() {{ add(ModItems.journal_bj); }}); - hidden.put(new ComparableStack(ModItems.missile_soyuz_lander, 1), new HashSet() {{ add(ModItems.journal_bj); }}); } public static void makeRecipe(ComparableStack out, AStack[] in, int duration) { + makeRecipe(out, in, duration, ModItems.template_folder); + } + + public static void makeRecipe(ComparableStack out, AStack[] in, int duration, Item... folder) { if(out == null || Item.itemRegistry.getNameForObject(out.item) == null) { MainRegistry.logger.error("Canceling assembler registration, item was null!"); return; } - recipes.put(out, in); - time.put(out, duration); + AssemblerRecipe recipe = new AssemblerRecipe(in, duration, folder); + recipes.put(out, recipe); + recipeList.add(out); + } + + @Override + public String getFileName() { + return "hbmAssembler.json"; + } + + @Override + public Object getRecipeObject() { + return this.recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + recipeList.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = recipe.getAsJsonObject(); + + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + AStack[] input = this.readAStackArray(obj.get("input").getAsJsonArray()); + int duration = obj.get("duration").getAsInt(); + + if(obj.has("folders")) { + JsonArray array = obj.get("folders").getAsJsonArray(); + List items = new ArrayList(); + for(JsonElement element : array) { + Item item = (Item) Item.itemRegistry.getObject(element.getAsString()); + if(item != null) items.add(item); + } + this.makeRecipe(new ComparableStack(output), input, duration, items.toArray(new Item[0])); + } else { + this.makeRecipe(new ComparableStack(output), input, duration); + } + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry entry = (Entry) recipe; + + writer.name("output"); + this.writeItemStack(entry.getKey().toStack(), writer); + writer.name("input").beginArray(); + for(AStack stack : entry.getValue().ingredients) this.writeAStack(stack, writer); + writer.endArray(); + writer.name("duration").value(entry.getValue().time); + + if(entry.getValue().folders.size() != 1 || !entry.getValue().folders.contains(ModItems.template_folder)) { + writer.name("folders").beginArray(); + for(Item folder : entry.getValue().folders) writer.value(Item.itemRegistry.getNameForObject(folder)); + writer.endArray(); + } + } + + public static ItemStack getOutputFromTempate(ItemStack stack) { + + if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { + + ComparableStack comp = ItemAssemblyTemplate.readType(stack); + + //NEW + if(comp != null) { + return comp.toStack(); + } + + //LEGACY + int i = stack.getItemDamage(); + if(i >= 0 && i < recipeList.size()) { + return recipeList.get(i).toStack(); + } + } + + return null; + } + + public static List getRecipeFromTempate(ItemStack stack) { + + if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { + + //NEW + ComparableStack compStack = ItemAssemblyTemplate.readType(stack); + if(compStack != null) { + AssemblerRecipe recipe = recipes.get(compStack); + AStack[] ret = recipe.ingredients; + return ret == null ? null : Arrays.asList(ret); + } + + //LEGACY + int i = stack.getItemDamage(); + if(i >= 0 && i < recipeList.size()) { + ItemStack out = recipeList.get(i).toStack(); + + if(out != null) { + ComparableStack comp = new ComparableStack(out); + AssemblerRecipe recipe = recipes.get(comp); + AStack[] ret = recipe.ingredients; + return ret == null ? null : Arrays.asList(ret); + } + } + } + + return null; } public static void addTantalium(ComparableStack out, int amount) { - AStack[] ins = recipes.get(out); + AssemblerRecipe recipe = recipes.get(out); - if(ins != null) { + if(recipe != null) { - AStack[] news = new AStack[ins.length + 1]; + AStack[] news = new AStack[recipe.ingredients.length + 1]; - for(int i = 0; i < ins.length; i++) - news[i] = ins[i]; + for(int i = 0; i < recipe.ingredients.length; i++) + news[i] = recipe.ingredients[i]; news[news.length - 1] = new ComparableStack(ModItems.circuit_tantalium, amount); - - recipes.put(out, news); - } - } - - /* - * { - * recipes : [ - * { - * output : [ "item", "hbm:item.tank_steel", 1, 0 ], - * duration : 100, - * input : [ - * [ "dict", "blockSteel", 6 ], - * [ "dict", "plateTitanium", 2 ], - * [ "dict", "dyeGray", 1 ], - * ] - * }, - * { - * output : [ "item", "hbm:plate_gold", 2, 0 ], - * duration : 20, - * input : [ - * [ "dict", "ingotGold", 3 ], - * [ "item", "hbm:item.wire_gold", 5 ] - * ] - * } - * ] - * } - */ - private static void loadJSONRecipes() { - - try { - JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); - - JsonElement recipes = json.get("recipes"); - - if(recipes instanceof JsonArray) { - - JsonArray recArray = recipes.getAsJsonArray(); - - //go through the recipes array - for(JsonElement recipe : recArray) { - - if(recipe.isJsonObject()) { - - JsonObject recObj = recipe.getAsJsonObject(); - - JsonElement input = recObj.get("input"); - JsonElement output = recObj.get("output"); - JsonElement duration = recObj.get("duration"); - - int time = 100; - - if(duration.isJsonPrimitive()) { - if(duration.getAsJsonPrimitive().isNumber()) { - time = Math.max(1, duration.getAsJsonPrimitive().getAsInt()); - } - } - - if(!(input instanceof JsonArray)) { - MainRegistry.logger.error("Error reading recipe, no input found!"); - continue; - } - - if(!(output instanceof JsonArray)) { - MainRegistry.logger.error("Error reading recipe, no output found!"); - continue; - } - - Object outp = parseJsonArray(output.getAsJsonArray()); - List inp = new ArrayList(); - - for(JsonElement in : input.getAsJsonArray()) { - - if(in.isJsonArray()) { - Object i = parseJsonArray(in.getAsJsonArray()); - - if(i instanceof ComparableStack || i instanceof OreDictStack) - inp.add(i); - } - } - - if(outp instanceof ComparableStack) { - AssemblerRecipes.recipes.put((ComparableStack) outp, Arrays.copyOf(inp.toArray(), inp.size(), AStack[].class)); - AssemblerRecipes.time.put((ComparableStack) outp, time); - } - } - } - } - - } catch (Exception e) { - //shush - } - } - - private static Object parseJsonArray(JsonArray array) { - - boolean dict = false; - String item = ""; - int stacksize = 1; - int meta = 0; - - if(array.size() < 2) - return null; - - //is index 0 "item" or "dict"? - if(array.get(0).isJsonPrimitive()) { - - if(array.get(0).getAsString().equals("item")) { - dict = false; - } else if(array.get(0).getAsString().equals("dict")) { - dict = true; - } else { - - MainRegistry.logger.error("Error reading recipe, stack array does not have 'item' or 'dict' label!"); - return null; - } - - } else { - - MainRegistry.logger.error("Error reading recipe, label is not a valid data type!"); - return null; - } - - //is index 1 a string - if(array.get(1).isJsonPrimitive()) { - - item = array.get(1).getAsString(); - - } else { - MainRegistry.logger.error("Error reading recipe, item string is not a valid data type!"); - return null; - } - - //if index 2 exists, eval it as a stacksize - if(array.size() > 2 && array.get(2).isJsonPrimitive()) { - - if(array.get(2).getAsJsonPrimitive().isNumber()) { - - stacksize = Math.max(1, array.get(2).getAsJsonPrimitive().getAsNumber().intValue()); - - } else { - - MainRegistry.logger.error("Error reading recipe, stack size is not a valid data type!"); - return null; - } - } - - //ore dict implementation - if(dict) { - - if(OreDictionary.doesOreNameExist(item)) { - return new OreDictStack(item, stacksize); - } else { - - MainRegistry.logger.error("Error reading recipe, ore dict name does not exist!"); - return null; - } - - //comparable stack - } else { - - //if index 4 exists, eval it as a meta - if(array.size() > 3 && array.get(3).isJsonPrimitive()) { - - if(array.get(3).getAsJsonPrimitive().isNumber()) { - - meta = Math.max(0, array.get(3).getAsJsonPrimitive().getAsNumber().intValue()); - - } else { - - MainRegistry.logger.error("Error reading recipe, metadata is not a valid data type!"); - return null; - } - } - - Item it = (Item)Item.itemRegistry.getObject(item); - - if(it == null) { - - MainRegistry.logger.error("Item could not be found!"); - return null; - } - - return new ComparableStack(it, stacksize, meta); - } - } - - public static void saveTemplateJSON(File dir) { - - template = new File(dir.getAbsolutePath() + File.separatorChar + "_hbmAssembler.json"); - - try { - - JsonWriter writer = new JsonWriter(new FileWriter(template)); - writer.setIndent(" "); - - writer.beginObject(); - - writer.name("recipes").beginArray(); - - for(ComparableStack output : recipeList) { - - writer.beginObject(); - writer.name("output").beginArray(); - writer.setIndent(""); - writer.value("item"); - writer.value(Item.itemRegistry.getNameForObject(output.toStack().getItem())); - writer.value(output.stacksize); - if(output.meta > 0) - writer.value(output.meta); - writer.endArray(); - writer.setIndent(" "); - - - writer.name("input").beginArray(); - - AStack[] inputs = recipes.get(output); - for(AStack astack : inputs) { - - writer.beginArray(); - writer.setIndent(""); - - if(astack instanceof ComparableStack) { - ComparableStack comp = (ComparableStack) astack; - - writer.value("item"); - writer.value(Item.itemRegistry.getNameForObject(comp.toStack().getItem())); - writer.value(comp.stacksize); - if(comp.meta > 0) - writer.value(comp.meta); - } - - if(astack instanceof OreDictStack) { - OreDictStack ore = (OreDictStack) astack; - - writer.value("dict"); - writer.value(ore.name); - writer.value(ore.stacksize); - } - - writer.endArray(); - writer.setIndent(" "); - } - - writer.endArray(); - - writer.name("duration").value(time.get(output)); - - writer.endObject(); - } - - writer.endArray(); - writer.endObject(); - writer.close(); - - } catch(IOException e) { - //shush + recipe.ingredients = news; } } @@ -1568,18 +1315,13 @@ public class AssemblerRecipes { Map> recipes = new HashMap(); - for(Entry entry : AssemblerRecipes.recipes.entrySet()) { + for(Entry entry : AssemblerRecipes.recipes.entrySet()) { List value = new ArrayList(); + AssemblerRecipe recipe = entry.getValue(); - for(AStack o : entry.getValue()) { - - if(o instanceof ComparableStack) { - value.add(((ComparableStack)o).toStack()); - - } else if(o instanceof OreDictStack) { - value.add(((OreDictStack)o).extractForNEI()); - } + for(AStack o : recipe.ingredients) { + value.add(o.extractForNEI()); } recipes.put(entry.getKey().toStack(), value); @@ -1587,4 +1329,22 @@ public class AssemblerRecipes { return recipes; } + + public static class AssemblerRecipe { + + public AStack[] ingredients; + public int time; + public HashSet folders; + + public AssemblerRecipe(AStack[] ingredients, int time) { + this(ingredients, time, ModItems.template_folder); + } + + public AssemblerRecipe(AStack[] ingredients, int time, Item... folder) { + this.ingredients = ingredients; + this.time = time; + this.folders = new HashSet(); + for(Item item : folder) this.folders.add(item); + } + } } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 794daf237..e510ee224 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -12,6 +12,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.AssemblerRecipes; +import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; @@ -1058,10 +1059,10 @@ public class AnvilRecipes { public static void pullFromAssembler(ComparableStack result, int tier) { - AStack[] ingredients = AssemblerRecipes.recipes.get(result); + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(result); - if(ingredients != null) { - constructionRecipes.add(new AnvilConstructionRecipe(ingredients, new AnvilOutput(result.toStack())).setTier(tier)); + if(recipe != null) { + constructionRecipes.add(new AnvilConstructionRecipe(recipe.ingredients, new AnvilOutput(result.toStack())).setTier(tier)); } } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index ac32b1332..c187fd17a 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -67,6 +67,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new ElectrolyserMetalRecipes()); recipeHandlers.add(new ArcWelderRecipes()); recipeHandlers.add(new ExposureChamberRecipes()); + recipeHandlers.add(new AssemblerRecipes()); recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index a25a54983..d3e58e448 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -7,6 +7,7 @@ import java.util.List; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.AssemblerRecipes; +import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; @@ -37,8 +38,9 @@ public class ItemAssemblyTemplate extends Item { public IIcon getIconFromDamage(int meta) { ComparableStack stack = AssemblerRecipes.recipeList.get(meta); + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(stack); - if(AssemblerRecipes.hidden.get(stack) != null) + if(recipe != null && !recipe.folders.contains(ModItems.template_folder)) return this.hiddenIcon; return this.itemIcon; @@ -52,7 +54,9 @@ public class ItemAssemblyTemplate extends Item { //LEGACY if(out == null) out = AssemblerRecipes.recipeList.get(stack.getItemDamage()); - if(AssemblerRecipes.hidden.get(out) != null) + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(stack); + + if(recipe != null && !recipe.folders.contains(ModItems.template_folder)) return this.hiddenIcon; return this.itemIcon; @@ -144,12 +148,11 @@ public class ItemAssemblyTemplate extends Item { ComparableStack out = readType(stack); //LEGACY if(out == null) out = AssemblerRecipes.recipeList.get(i); - Integer time = AssemblerRecipes.time.get(out); - - if(time != null) - return time; - else - return 100; + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(out); + + if(recipe != null) return recipe.time; + + return 100; } @Override @@ -174,7 +177,14 @@ public class ItemAssemblyTemplate extends Item { out = AssemblerRecipes.recipeList.get(i); nbtType = false; } - HashSet folders = AssemblerRecipes.hidden.get(out); + + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(out); + if(recipe == null) { + list.add("I AM ERROR"); + return; + } + + HashSet folders = recipe.folders; if(folders == null) folders = new HashSet() { @@ -206,7 +216,7 @@ public class ItemAssemblyTemplate extends Item { return; } - Object[] in = AssemblerRecipes.recipes.get(out); + Object[] in = recipe.ingredients; if(in == null) { list.add("I AM ERROR"); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 3928f0aa8..890c996c6 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -285,7 +285,6 @@ public class MainRegistry { Satellite.register(); HTTPHandler.loadStats(); CraftingManager.mainRegistry(); - AssemblerRecipes.preInit(PreEvent.getModConfigurationDirectory()); SiegeTier.registerTiers(); HazardRegistry.registerItems(); HazardRegistry.registerTrafos(); @@ -843,11 +842,9 @@ public class MainRegistry { @EventHandler public static void PostLoad(FMLPostInitializationEvent PostEvent) { TileEntityNukeFurnace.registerFuels(); - AssemblerRecipes.loadRecipes(); MagicRecipes.register(); LemegetonRecipes.register(); SILEXRecipes.register(); - AnvilRecipes.register(); RefineryRecipes.registerRefinery(); GasCentrifugeRecipes.register(); @@ -856,6 +853,9 @@ public class MainRegistry { //the good stuff SerializableRecipe.registerAllHandlers(); SerializableRecipe.initialize(); + + //Anvil has to come after serializables (i.e. anvil) + AnvilRecipes.register(); //has to register after cracking, and therefore after all serializable recipes RadiolysisRecipes.registerRadiolysis(); From b30bb8ae15fdd18aecd2c78d8393a877ee705aa1 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 21 Feb 2024 16:31:34 +0100 Subject: [PATCH 213/376] last bit of EC compat stuff --- .../java/com/hbm/entity/EntityMappings.java | 1 + .../entity/missile/EntityMissileTier0.java | 37 ++++++++++++++++++ src/main/java/com/hbm/items/ModItems.java | 3 ++ src/main/java/com/hbm/main/ClientProxy.java | 2 + .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/rocket/RenderMissileTaint.java | 2 + .../render/item/ItemRenderMissileGeneric.java | 1 + .../bomb/TileEntityLaunchPadBase.java | 34 ++++------------ .../tileentity/machine/TileEntityCore.java | 16 +++++++- .../machine/TileEntityCoreEmitter.java | 12 +++++- .../machine/TileEntityCoreReceiver.java | 13 ++++-- .../machine/TileEntityCoreStabilizer.java | 15 ++++++- .../tileentity/machine/TileEntityGeiger.java | 13 +++++- .../machine/TileEntityHeaterElectric.java | 11 +++++- .../machine/TileEntityMachineTurbofan.java | 20 +++++++++- .../oil/TileEntityMachineGasFlare.java | 19 ++++++++- .../machine/rbmk/TileEntityRBMKBoiler.java | 19 ++++++++- .../machine/rbmk/TileEntityRBMKRod.java | 15 ++++++- .../com/hbm/util/CompatEnergyControl.java | 6 +++ .../hbm/textures/models/missile_test.png | Bin 0 -> 829 bytes 20 files changed, 200 insertions(+), 40 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/missile_test.png diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 179da42d0..30d51c83c 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -122,6 +122,7 @@ public class EntityMappings { addEntity(EntityExplosiveBeam.class, "entity_beam_bomb", 1000); addEntity(EntityAAShell.class, "entity_aa_shell", 1000); addEntity(EntityRocketHoming.class, "entity_stinger", 1000); + addEntity(EntityMissileTest.class, "entity_missile_test_mk2", 1000); addEntity(EntityMissileMicro.class, "entity_missile_micronuclear", 1000); addEntity(EntityCloudSolinium.class, "entity_cloud_rainbow", 1000); addEntity(EntityRagingVortex.class, "entity_raging_vortex", 250); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java index d6132a9c5..7ea0f7b6f 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -16,7 +16,10 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; public abstract class EntityMissileTier0 extends EntityMissileBaseNT { @@ -40,6 +43,40 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { return 0.5F; } + public static class EntityMissileTest extends EntityMissileTier0 { + public EntityMissileTest(World world) { super(world); } + public EntityMissileTest(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public ItemStack getDebrisRareDrop() { return null; } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_test); } + + @Override public void onImpact() { + int x = (int) Math.floor(posX); + int y = (int) Math.floor(posY); + int z = (int) Math.floor(posZ); + int range = 50; + + for(int iX = -range; iX <= range; iX++) { + for(int iY = -range; iY <= range; iY++) { + for(int iZ = -range; iZ <= range; iZ++) { + double dist = Math.sqrt(iX * iX + iY * iY + iZ * iZ); + if(dist > range) continue; + Block block = worldObj.getBlock(x + iX, y + iY, z + iZ); + int meta = worldObj.getBlockMetadata(x + iX, y + iY, z + iZ); + int charMeta = (int) MathHelper.clamp_double(12 - (dist / range) * (dist / range) * 13, 0, 12); + + if(block.isNormalCube()) { + if(block != ModBlocks.sellafield_slaked || meta < charMeta) { + worldObj.setBlock(x + iX, y + iY, z + iZ, ModBlocks.sellafield_slaked, charMeta, 3); + } + } else { + worldObj.setBlock(x + iX, y + iY, z + iZ, Blocks.air); + } + } + } + } + } + } + public static class EntityMissileMicro extends EntityMissileTier0 { public EntityMissileMicro(World world) { super(world); } public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d8214f073..d48129c4d 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1330,6 +1330,7 @@ public class ModItems { public static Item missile_emp; public static Item missile_shuttle; public static Item missile_stealth; + public static Item missile_test; public static Item mp_thruster_10_kerosene; public static Item mp_thruster_10_kerosene_tec; @@ -3955,6 +3956,7 @@ public class ModItems { missile_emp = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); missile_shuttle = new ItemMissile(MissileFormFactor.OTHER, MissileTier.TIER3, MissileFuel.KEROSENE_PEROXIDE).setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); missile_stealth = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER1).setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); + missile_test = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_test").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_micro"); missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_carrier"); missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); @@ -6878,6 +6880,7 @@ public class ModItems { //Missiles //Tier 0 + GameRegistry.registerItem(missile_test, missile_test.getUnlocalizedName()); GameRegistry.registerItem(missile_taint, missile_taint.getUnlocalizedName()); GameRegistry.registerItem(missile_micro, missile_micro.getUnlocalizedName()); GameRegistry.registerItem(missile_bhole, missile_bhole.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 0027bced9..9661ef3b6 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -419,6 +419,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.dnt_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); ItemRenderMissileGeneric.init(); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_test, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_taint, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_micro, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_bhole, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); @@ -719,6 +720,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMissileSchrabidium.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileEMP.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileShuttle.class, new RenderMissileShuttle()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileTest.class, new RenderMissileTaint()); //effects RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleija.class, new RenderCloudFleija()); RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleijaRainbow.class, new RenderCloudRainbow()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index b84692e8e..8aa0f75f7 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1239,6 +1239,7 @@ public class ResourceManager { public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_bhole.png"); public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_schrab.png"); public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_emp.png"); + public static final ResourceLocation missileMicroTest_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_test.png"); public static final ResourceLocation soyuz_engineblock = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/engineblock.png"); public static final ResourceLocation soyuz_bottomstage = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/bottomstage.png"); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java index 422b8fd33..09d45cba4 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java @@ -49,6 +49,8 @@ public class RenderMissileTaint extends Render { return ResourceManager.missileMicroSchrab_tex; if(p_110775_1_ instanceof EntityMissileEMP) return ResourceManager.missileMicroEMP_tex; + if(p_110775_1_ instanceof EntityMissileTest) + return ResourceManager.missileMicroTest_tex; return ResourceManager.missileMicro_tex; } diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java index f3354722d..d38d09a86 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -130,6 +130,7 @@ public class ItemRenderMissileGeneric implements IItemRenderer { public static void init() { + renderers.put(new ComparableStack(ModItems.missile_test), generateStandard(ResourceManager.missileMicroTest_tex, ResourceManager.missileMicro)); renderers.put(new ComparableStack(ModItems.missile_taint), generateStandard(ResourceManager.missileTaint_tex, ResourceManager.missileMicro)); renderers.put(new ComparableStack(ModItems.missile_micro), generateStandard(ResourceManager.missileMicro_tex, ResourceManager.missileMicro)); renderers.put(new ComparableStack(ModItems.missile_bhole), generateStandard(ResourceManager.missileMicroBHole_tex, ResourceManager.missileMicro)); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index ef9631a5f..81b2573c8 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -7,33 +7,12 @@ import java.util.Set; import org.apache.logging.log4j.Level; import com.hbm.config.GeneralConfig; -import com.hbm.entity.missile.EntityMissileAntiBallistic; -import com.hbm.entity.missile.EntityMissileBaseNT; -import com.hbm.entity.missile.EntityMissileDoomsday; -import com.hbm.entity.missile.EntityMissileShuttle; -import com.hbm.entity.missile.EntityMissileStealth; -import com.hbm.entity.missile.EntityMissileTier0.EntityMissileBHole; -import com.hbm.entity.missile.EntityMissileTier0.EntityMissileEMP; -import com.hbm.entity.missile.EntityMissileTier0.EntityMissileMicro; -import com.hbm.entity.missile.EntityMissileTier0.EntityMissileSchrabidium; -import com.hbm.entity.missile.EntityMissileTier0.EntityMissileTaint; -import com.hbm.entity.missile.EntityMissileTier1.EntityMissileBunkerBuster; -import com.hbm.entity.missile.EntityMissileTier1.EntityMissileCluster; -import com.hbm.entity.missile.EntityMissileTier1.EntityMissileDecoy; -import com.hbm.entity.missile.EntityMissileTier1.EntityMissileGeneric; -import com.hbm.entity.missile.EntityMissileTier1.EntityMissileIncendiary; -import com.hbm.entity.missile.EntityMissileTier2.EntityMissileBusterStrong; -import com.hbm.entity.missile.EntityMissileTier2.EntityMissileClusterStrong; -import com.hbm.entity.missile.EntityMissileTier2.EntityMissileEMPStrong; -import com.hbm.entity.missile.EntityMissileTier2.EntityMissileIncendiaryStrong; -import com.hbm.entity.missile.EntityMissileTier2.EntityMissileStrong; -import com.hbm.entity.missile.EntityMissileTier3.EntityMissileBurst; -import com.hbm.entity.missile.EntityMissileTier3.EntityMissileDrill; -import com.hbm.entity.missile.EntityMissileTier3.EntityMissileInferno; -import com.hbm.entity.missile.EntityMissileTier3.EntityMissileRain; -import com.hbm.entity.missile.EntityMissileTier4.EntityMissileMirv; -import com.hbm.entity.missile.EntityMissileTier4.EntityMissileNuclear; -import com.hbm.entity.missile.EntityMissileTier4.EntityMissileVolcano; +import com.hbm.entity.missile.*; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.interfaces.IBomb.BombReturnCode; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerLaunchPadLarge; @@ -78,6 +57,7 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl public static void registerLaunchables() { //Tier 0 + missiles.put(new ComparableStack(ModItems.missile_test), EntityMissileTest.class); missiles.put(new ComparableStack(ModItems.missile_micro), EntityMissileMicro.class); missiles.put(new ComparableStack(ModItems.missile_schrabidium), EntityMissileSchrabidium.class); missiles.put(new ComparableStack(ModItems.missile_bhole), EntityMissileBHole.class); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java index 3b12f505b..13c6a2036 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java @@ -21,7 +21,9 @@ import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ArmorUtil; +import com.hbm.util.CompatEnergyControl; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -33,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityCore extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityCore extends TileEntityMachineBase implements IGUIProvider, IInfoProviderEC { public int field; public int heat; @@ -41,6 +43,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide public FluidTank[] tanks; private boolean lastTickValid = false; public boolean meltdownTick = false; + protected int consumption; + protected int prevConsumption; public TileEntityCore() { super(3); @@ -59,6 +63,9 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide if(!worldObj.isRemote) { + this.prevConsumption = this.consumption; + this.consumption = 0; + int chunkX = xCoord >> 4; int chunkZ = zCoord >> 4; @@ -231,6 +238,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide if(tanks[0].getFill() < demand || tanks[1].getFill() < demand) return joules; + this.consumption += demand; + heat += (int)Math.ceil((double)joules / 10000D); tanks[0].setFill(tanks[0].getFill() - demand); @@ -355,4 +364,9 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICore(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.prevConsumption); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 7346c6168..442668e49 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -3,6 +3,8 @@ package com.hbm.tileentity.machine; import api.hbm.block.ILaserable; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; + import com.hbm.inventory.container.ContainerCoreEmitter; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -10,6 +12,8 @@ import com.hbm.inventory.gui.GUICoreEmitter; import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; + import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -33,7 +37,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider { +public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC { public long power; public static final long maxPower = 1000000000L; @@ -330,4 +334,10 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICoreEmitter(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, joules > 0 || prev > 0 ? 20 : 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, maxPower * watts / 2000); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 565c9a6ee..2805004db 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -8,10 +8,12 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICoreReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.block.ILaserable; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -30,7 +32,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider { +public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC { public long power; public long joules; @@ -153,8 +155,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } @@ -220,4 +221,10 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICoreReceiver(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, joules > 0 ? 20 : 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, joules * 5000); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 437d9cfa6..344b02ea0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -6,8 +6,10 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemLens; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.energy.IEnergyUser; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -26,7 +28,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyUser, SimpleComponent, IGUIProvider { +public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyUser, SimpleComponent, IGUIProvider, IInfoProviderEC { public long power; public static final long maxPower = 2500000000L; @@ -224,4 +226,15 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICoreStabilizer(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + int demand = (int) Math.pow(watts, 4); + long damage = ItemLens.getLensDamage(slots[0]); + ItemLens lens = (ItemLens) com.hbm.items.ModItems.ams_lens; + if(getPower() >= demand && slots[0] != null && slots[0].getItem() == lens && damage < 432000000L) + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, demand); + else + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, 0); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index 4c43bf5fc..a53e7614d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -4,15 +4,20 @@ import java.util.ArrayList; import java.util.List; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.ContaminationUtil; + +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityGeiger extends TileEntity implements SimpleComponent { +public class TileEntityGeiger extends TileEntity implements SimpleComponent, IInfoProviderEC { int timer = 0; int ticker = 0; @@ -74,4 +79,10 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent { return new Object[] {check()}; } + @Override + public void provideExtraInfo(NBTTagCompound data) { + int rads = check(); + String chunkPrefix = ContaminationUtil.getPreffixFromRad(rads); + data.setString(CompatEnergyControl.S_CHUNKRAD, chunkPrefix + rads + " RAD/s"); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java index 11e57b625..93f49a593 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java @@ -5,9 +5,11 @@ import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.energy.IEnergyUser; import api.hbm.tile.IHeatSource; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -15,7 +17,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyUser, INBTPacketReceiver { +public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyUser, INBTPacketReceiver, IInfoProviderEC { public long power; public int heatEnergy; @@ -200,4 +202,11 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setLong(CompatEnergyControl.D_CONSUMPTION_HE, getConsumption()); + data.setLong(CompatEnergyControl.L_ENERGY_TU, getHeatStored()); + data.setLong(CompatEnergyControl.D_OUTPUT_TU, getHeatGen()); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 01c4cc7ce..a1b83fb45 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -28,11 +28,13 @@ import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -49,7 +51,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 1_000_000; @@ -59,6 +61,8 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem public int afterburner; public boolean wasOn; public boolean showBlood = false; + protected int output; + protected int consumption; public float spin; public float lastSpin; @@ -119,6 +123,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem if(!worldObj.isRemote) { + this.output = 0; + this.consumption = 0; + //meta below 12 means that it's an old multiblock configuration if(this.getBlockMetadata() < 12) { //get old direction @@ -165,7 +172,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem if(amountToBurn > 0) { this.wasOn = true; this.tank.setFill(this.tank.getFill() - amountToBurn); - this.power += burnValue * amountToBurn * (1 + Math.min(this.afterburner / 3D, 4)); + this.output = (int) (burnValue * amountToBurn * (1 + Math.min(this.afterburner / 3D, 4))); + this.power += this.output; + this.consumption = amountToBurn; if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * amountToBurn); } @@ -513,4 +522,11 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem if(type == UpgradeType.AFTERBURN) return 3; return 0; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.output > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.consumption); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index c73041b75..d9f1f476c 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -24,12 +24,14 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -43,13 +45,15 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; public FluidTank tank; public boolean isOn = false; public boolean doesBurn = false; + protected int fluidUsed = 0; + protected int output = 0; public TileEntityMachineGasFlare() { super(6); @@ -99,6 +103,9 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements public void updateEntity() { if(!worldObj.isRemote) { + + this.fluidUsed = 0; + this.output = 0; for(DirPos pos : getConPos()) { this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -125,6 +132,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(tank.getTankType().hasTrait(FT_Gaseous.class) || tank.getTankType().hasTrait(FT_Gaseous_ART.class)) { int eject = Math.min(maxVent, tank.getFill()); + this.fluidUsed = eject; tank.setFill(tank.getFill() - eject); tank.getTankType().onFluidRelease(this, tank, eject); @@ -135,6 +143,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(tank.getTankType().hasTrait(FT_Flammable.class)) { int eject = Math.min(maxBurn, tank.getFill()); + this.fluidUsed = eject; tank.setFill(tank.getFill() - eject); int penalty = 5; @@ -145,6 +154,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements powerProd /= penalty; powerProd += powerProd * yield / 3; + this.output = (int) powerProd; power += powerProd; if(power > maxPower) @@ -336,4 +346,11 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(type == UpgradeType.EFFECT) return 3; return 0; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.fluidUsed > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.fluidUsed); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index c0a883300..164ce4192 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -3,6 +3,8 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidUser; import api.hbm.fluid.IPipeNet; +import api.hbm.tile.IInfoProviderEC; + import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; @@ -16,6 +18,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIRBMKBoiler; import com.hbm.lib.Library; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; @@ -35,11 +38,13 @@ import java.util.ArrayList; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent { +public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC { public FluidTank feed; public FluidTank steam; public List list = new ArrayList(); + protected int consumption; + protected int output; public TileEntityRBMKBoiler() { super(0); @@ -59,6 +64,9 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I if(!worldObj.isRemote) { feed.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + + this.consumption = 0; + this.output = 0; double heatCap = this.getHeatFromSteam(steam.getTankType()); double heatProvided = this.heat - heatCap; @@ -83,6 +91,9 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I steamProduced = (int)Math.floor((waterUsed * 100D) / steamFactor); } + this.consumption = waterUsed; + this.output = steamProduced; + feed.setFill(feed.getFill() - waterUsed); steam.setFill(steam.getFill() + steamProduced); @@ -402,4 +413,10 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKBoiler(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, consumption); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 3f1536eff..2b6d0c9b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -11,8 +11,10 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.util.Compat; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.ParticleUtil; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -31,7 +33,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IRBMKLoadable, SimpleComponent { +public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IRBMKLoadable, SimpleComponent, IInfoProviderEC { //amount of "neutron energy" buffered for the next tick to use for the reaction public double fluxFast; @@ -503,4 +505,15 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKRod(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { + data.setDouble(CompatEnergyControl.D_DEPLETION_PERCENT, ((1.0D - ItemRBMKRod.getEnrichment(slots[0])) * 100_000.0D) / 1_000.0D); + data.setDouble(CompatEnergyControl.D_XENON_PERCENT, ItemRBMKRod.getPoison(slots[0])); + data.setDouble(CompatEnergyControl.D_SKIN_C, ItemRBMKRod.getHullHeat(slots[0])); + data.setDouble(CompatEnergyControl.D_CORE_C, ItemRBMKRod.getCoreHeat(slots[0])); + data.setDouble(CompatEnergyControl.D_MELT_C, ((ItemRBMKRod) slots[0].getItem()).meltingPoint); + } + } } diff --git a/src/main/java/com/hbm/util/CompatEnergyControl.java b/src/main/java/com/hbm/util/CompatEnergyControl.java index 7f60115fa..ea3ec0683 100644 --- a/src/main/java/com/hbm/util/CompatEnergyControl.java +++ b/src/main/java/com/hbm/util/CompatEnergyControl.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityMachineGasCent; import com.hbm.tileentity.machine.TileEntityMachineGasCent.PseudoFluidTank; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; @@ -22,6 +23,11 @@ import net.minecraft.world.World; /** Provides data specified by EC's CrossModBase */ public class CompatEnergyControl { + + /** Returns the steel ingot to craft the sensor kit with */ + public static ItemStack getCraftingMaterial() { + return new ItemStack(ModItems.ingot_steel); //in the event that i do end up moving all ingots to metadata + } /** Returns true for stacks with electric items like batteries or powertools (i.e. implements IBatteryItem) */ public static boolean isElectricItem(ItemStack stack) { diff --git a/src/main/resources/assets/hbm/textures/models/missile_test.png b/src/main/resources/assets/hbm/textures/models/missile_test.png new file mode 100644 index 0000000000000000000000000000000000000000..3138a80f5c5b1ddd977b28beec61fca4be2d9437 GIT binary patch literal 829 zcmV-D1H$}?P)g96p=kb_tU^hXMc<094gOR}ehL8?Y`Cq=8P0pOLexqH&2QjTto&SE*^`^z>Ggforx?G+A3o*+8Va5tfJYzL2 z@eXuuyUDvkG;|qj(-AZ`y>7GZEntEft2!Q!-Us~_wnJ9wd$6IOBKtf|>g8uHyHUQe zHusjfhv;ItuA9>?uQ$K3exqFiUB=qAq&m|F#?a^0q|M;;RX_UB#}zs+XJ)Lnz_c0a zn7;!?p0QdZ1*Z|nuvv;eV|9f(V{P+hub^|=UFS?^=)>x^Z4=jG+s-Mvj8#vpFACtx zSes{!Ee$u@pHgr}+AbN}pcGV{U*D8=K`F>am-o|9Mhfpv-exsAK}nLdeh+>Qt(OmU zf&k!fXrFW&lzS*ilHMszAnE)G!Z3sm$NE@`F7%0_2mnwN1(GDGTtz88022~XlzRwx zh|;UaWn0h+0{V%f76iD9q89}G71hNk1i4%pk3x{kOW!C2xiE^?2bU#B_xfNv=;Jtk z`+s$G*I3fXg)Ww}k>~l_ZksZeYvQuxYA=_jX~0zOi@IDcb%mj9!)eJ~uh+W5P`2UZ z Date: Thu, 22 Feb 2024 18:56:09 +1100 Subject: [PATCH 214/376] Fix fog colour sticking on fast graphics --- src/main/java/com/hbm/main/ModEventHandlerRenderer.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 7e2dc368a..fe35469e1 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -450,7 +450,12 @@ public class ModEventHandlerRenderer { fogX = playerX; fogZ = playerZ; - if(doesBiomeApply) fogRGBMultiplier = Vec3.createVectorHelper(r / divider, g / divider, b / divider); + if(doesBiomeApply) { + fogRGBMultiplier = Vec3.createVectorHelper(r / divider, g / divider, b / divider); + } else { + fogRGBMultiplier = Vec3.createVectorHelper(red, green, blue); + } + return fogRGBMultiplier; } From c19c8ac4f484e87fcd52dfc5cad7078d4e7793a3 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 22 Feb 2024 16:52:38 +0100 Subject: [PATCH 215/376] the yapping never ends --- changelog | 4 + .../hbm/config/CustomMachineConfigJSON.java | 75 +++++++++---------- .../hbm/handler/nei/CustomMachineHandler.java | 13 ++-- .../inventory/gui/GUIElectrolyserFluid.java | 2 +- .../inventory/gui/GUIElectrolyserMetal.java | 2 +- .../inventory/recipes/ChemplantRecipes.java | 12 +-- .../recipes/CustomMachineRecipes.java | 37 ++------- .../recipes/ElectrolyserFluidRecipes.java | 4 +- .../machine/TileEntityCustomMachine.java | 20 ++--- .../machine/TileEntityElectrolyser.java | 27 ++++--- 10 files changed, 88 insertions(+), 108 deletions(-) diff --git a/changelog b/changelog index fa755b7ee..4d6932f67 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,10 @@ * Old files are still compatible if moved to the new folder, since the base structure of the recipe file is the same * Recipes should work as expected with the `/ntmreload` command * Recipes now have an optional list for specifying which template folder they are made in +* Electrolyzing heavy water now has the same yields as regular water, I don't remember why this incsonsistency existed and there was probably a reason for it but I don't care +* Electrolyzing fluids now only takes 20 ticks instead of 60 + * Batch sizes for water and heavy water have been doubled, effectively increasing throughout 6x + * The throughput for electrolysis on chemical plants has been halved (but heavy water still has the output buff, effectively remaining unchanged) ## Fixed * Fixed the structure toggle on the world creation screen not working correctly on most world types diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java index adbd60981..dc746f7d8 100644 --- a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -159,52 +159,49 @@ public class CustomMachineConfigJSON { configuration.fluidOutCap = machineObject.get("fluidOutCap").getAsInt(); configuration.itemOutCount = machineObject.get("itemOutCount").getAsInt(); configuration.generatorMode = machineObject.get("generatorMode").getAsBoolean(); - if(machineObject.get("maxPollutionCap")!=null) { - configuration.maxPollutionCap = machineObject.get("maxPollutionCap").getAsInt(); - } - else configuration.maxPollutionCap = 0; - if(machineObject.get("fluxMode")!=null) { - configuration.fluxMode = machineObject.get("fluxMode").getAsBoolean(); - } - else configuration.fluxMode = false; + if(machineObject.has("maxPollutionCap")) configuration.maxPollutionCap = machineObject.get("maxPollutionCap").getAsInt(); + if(machineObject.has("fluxMode")) configuration.fluxMode = machineObject.get("fluxMode").getAsBoolean(); configuration.recipeSpeedMult = machineObject.get("recipeSpeedMult").getAsDouble(); configuration.recipeConsumptionMult = machineObject.get("recipeConsumptionMult").getAsDouble(); configuration.maxPower = machineObject.get("maxPower").getAsLong(); - if(machineObject.get("maxHeat")!=null) { - configuration.maxHeat = machineObject.get("maxHeat").getAsInt(); - } - else configuration.maxHeat = 0; + if(machineObject.has("maxHeat")) configuration.maxHeat = machineObject.get("maxHeat").getAsInt(); if(machineObject.has("recipeShape") && machineObject.has("recipeParts")) { - JsonArray recipeShape = machineObject.get("recipeShape").getAsJsonArray(); - JsonArray recipeParts = machineObject.get("recipeParts").getAsJsonArray(); - - Object[] parts = new Object[recipeShape.size() + recipeParts.size()]; - - for(int j = 0; j < recipeShape.size(); j++) { - parts[j] = recipeShape.get(j).getAsString(); - } - - for(int j = 0; j < recipeParts.size(); j++) { - Object o = null; - - if(j % 2 == 0) { - o = recipeParts.get(j).getAsString().charAt(0); //god is dead and we killed him - } else { - AStack a = SerializableRecipe.readAStack(recipeParts.get(j).getAsJsonArray()); - - if(a instanceof ComparableStack) o = ((ComparableStack) a).toStack(); - if(a instanceof OreDictStack) o = ((OreDictStack) a).name; + try { + JsonArray recipeShape = machineObject.get("recipeShape").getAsJsonArray(); + JsonArray recipeParts = machineObject.get("recipeParts").getAsJsonArray(); + + Object[] parts = new Object[recipeShape.size() + recipeParts.size()]; + + for(int j = 0; j < recipeShape.size(); j++) { + parts[j] = recipeShape.get(j).getAsString(); } - - parts[j + recipeShape.size()] = o; + + for(int j = 0; j < recipeParts.size(); j++) { + Object o = null; + + if(j % 2 == 0) { + o = recipeParts.get(j).getAsString().charAt(0); //god is dead and we killed him + } else { + AStack a = SerializableRecipe.readAStack(recipeParts.get(j).getAsJsonArray()); + + if(a instanceof ComparableStack) o = ((ComparableStack) a).toStack(); + if(a instanceof OreDictStack) o = ((OreDictStack) a).name; + } + + parts[j + recipeShape.size()] = o; + } + + ItemStack stack = new ItemStack(ModBlocks.custom_machine, 1, i + 100); + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setString("machineType", configuration.unlocalizedName); + + CraftingManager.addRecipeAuto(stack, parts); + } catch(Exception ex) { + MainRegistry.logger.error("Caught exception trying to parse core recipe for custom machine " + configuration.unlocalizedName); + MainRegistry.logger.error("recipeShape was" + machineObject.get("recipeShape").toString()); + MainRegistry.logger.error("recipeParts was" + machineObject.get("recipeParts").toString()); } - - ItemStack stack = new ItemStack(ModBlocks.custom_machine, 1, i + 100); - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setString("machineType", configuration.unlocalizedName); - - CraftingManager.addRecipeAuto(stack, parts); } JsonArray components = machineObject.get("components").getAsJsonArray(); diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java index d691bf27a..fa3b88f6a 100644 --- a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -84,13 +84,13 @@ public class CustomMachineHandler extends TemplateRecipeHandler { } outputs.add(new PositionedStack(out, 102 + (i - 3) * 18, 42)); } - if(recipe.pollutionMode) { - this.pollutionType = recipe.pollutionType; - this.pollutionAmount = recipe.pollutionAmount; - } - if(recipe.radiationMode) this.radiationAmount = recipe.radiationAmount; + + this.pollutionType = recipe.pollutionType; + this.pollutionAmount = recipe.pollutionAmount; + this.radiationAmount = recipe.radiationAmount; if(conf.fluxMode) this.flux = recipe.flux; - if(conf.maxHeat>0 && recipe.heat>0) this.heat = recipe.heat; + if(conf.maxHeat > 0 && recipe.heat > 0) this.heat = recipe.heat; + this.machine = new PositionedStack(new ItemStack(ModBlocks.custom_machine, 1, 100 + CustomMachineConfigJSON.niceList.indexOf(conf)), 75, 42); } @@ -212,6 +212,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { @Override public void loadTransferRects() { if(this.conf == null) return; + transferRects.clear(); transferRects.add(new RecipeTransferRect(new Rectangle(65, 23, 36, 18), "ntm_" + conf.unlocalizedName)); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java index fa4964eed..914228045 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java @@ -67,7 +67,7 @@ public class GUIElectrolyserFluid extends GuiInfoContainer { int p = (int) (electrolyser.power * 89 / electrolyser.maxPower); drawTexturedModalRect(guiLeft + 186, guiTop + 107 - p, 210, 89 - p, 16, p); - if(electrolyser.power >= electrolyser.usage) + if(electrolyser.power >= electrolyser.usageFluid) drawTexturedModalRect(guiLeft + 190, guiTop + 4, 226, 40, 9, 12); int e = electrolyser.progressFluid * 41 / electrolyser.processFluidTime; diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java index b132811e1..3e4eabfd9 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java @@ -99,7 +99,7 @@ public class GUIElectrolyserMetal extends GuiInfoContainer { int p = (int) (electrolyser.power * 89 / electrolyser.maxPower); drawTexturedModalRect(guiLeft + 186, guiTop + 107 - p, 210, 89 - p, 16, p); - if(electrolyser.power >= electrolyser.usage) + if(electrolyser.power >= electrolyser.usageOre) drawTexturedModalRect(guiLeft + 190, guiTop + 4, 226, 25, 9, 12); int o = electrolyser.progressOre * 26 / electrolyser.processOreTime; diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 7f88fe3de..319d12250 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -226,10 +226,10 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids(new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.rocket_fuel, 4))); recipes.add(new ChemRecipe(58, "ELECTROLYSIS", 150) - .inputFluids(new FluidStack(Fluids.WATER, 8000)) + .inputFluids(new FluidStack(Fluids.WATER, 4000)) .outputFluids( - new FluidStack(Fluids.HYDROGEN, 800), - new FluidStack(Fluids.OXYGEN, 800))); + new FluidStack(Fluids.HYDROGEN, 400), + new FluidStack(Fluids.OXYGEN, 400))); recipes.add(new ChemRecipe(59, "XENON", 300) .inputFluids(new FluidStack(Fluids.NONE, 0)) .outputFluids(new FluidStack(Fluids.XENON, 50))); @@ -371,10 +371,10 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids(new FluidStack(Fluids.GAS, 1000)) .outputFluids(new FluidStack(Fluids.CARBONDIOXIDE, 1000))); recipes.add(new ChemRecipe(78, "HEAVY_ELECTROLYSIS", 150) - .inputFluids(new FluidStack(Fluids.HEAVYWATER, 8000)) + .inputFluids(new FluidStack(Fluids.HEAVYWATER, 2000)) .outputFluids( - new FluidStack(Fluids.DEUTERIUM, 400), - new FluidStack(Fluids.OXYGEN, 400))); + new FluidStack(Fluids.DEUTERIUM, 200), + new FluidStack(Fluids.OXYGEN, 200))); recipes.add(new ChemRecipe(80, "EPEARL", 100) .inputItems(new OreDictStack(DIAMOND.dust(), 1)) .inputFluids(new FluidStack(Fluids.XPJUICE, 500)) diff --git a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java index 132a48bca..bf9895e2d 100644 --- a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java @@ -36,10 +36,8 @@ public class CustomMachineRecipes extends SerializableRecipe { recipe.outputItems = new Pair[] {new Pair(new ItemStack(Items.paper, 3), 1F)}; recipe.duration = 60; recipe.consumptionPerTick = 10; - recipe.pollutionMode = true; recipe.pollutionType = "SOOT"; - recipe.pollutionAmount = 0.03f; - recipe.radiationMode = false; + recipe.pollutionAmount = 0.03F; recipe.radiationAmount = 0; recipe.flux = 0; recipe.heat = 0; @@ -80,32 +78,17 @@ public class CustomMachineRecipes extends SerializableRecipe { recipeInstance.duration = rec.get("duration").getAsInt(); recipeInstance.consumptionPerTick = rec.get("consumptionPerTick").getAsInt(); - if(rec.get("pollutionMode")!=null) { - recipeInstance.pollutionMode = rec.get("pollutionMode").getAsBoolean(); + if(rec.has("pollutionType") && rec.has("pollutionAmount")) { recipeInstance.pollutionType = rec.get("pollutionType").getAsString(); recipeInstance.pollutionAmount = rec.get("pollutionAmount").getAsFloat(); - } - else { - recipeInstance.pollutionMode = false; + } else { recipeInstance.pollutionType = ""; - recipeInstance.pollutionAmount = 0; } - if(rec.get("radiationMode")!=null) { - recipeInstance.radiationMode = rec.get("radiationMode").getAsBoolean(); - recipeInstance.radiationAmount = rec.get("radiationAmount").getAsFloat(); - } - else { - recipeInstance.radiationMode = false; - recipeInstance.radiationAmount = 0; - } - if(rec.get("flux")!=null) { - recipeInstance.flux = rec.get("flux").getAsInt(); - } - else recipeInstance.flux = 0; - if(rec.get("heat")!=null) { - recipeInstance.heat = rec.get("heat").getAsInt(); - } - else recipeInstance.heat = 0; + + if(rec.has("radiationAmount")) recipeInstance.radiationAmount = rec.get("radiationAmount").getAsFloat(); + if(rec.has("flux")) recipeInstance.flux = rec.get("flux").getAsInt(); + if(rec.has("heat")) recipeInstance.heat = rec.get("heat").getAsInt(); + list.add(recipeInstance); } @@ -140,10 +123,8 @@ public class CustomMachineRecipes extends SerializableRecipe { writer.name("duration").value(recipeInstance.duration); writer.name("consumptionPerTick").value(recipeInstance.consumptionPerTick); - writer.name("pollutionMode").value(recipeInstance.pollutionMode); writer.name("pollutionType").value(recipeInstance.pollutionType); writer.name("pollutionAmount").value(recipeInstance.pollutionAmount); - writer.name("radiationMode").value(recipeInstance.radiationMode); writer.name("radiationnAmount").value(recipeInstance.radiationAmount); writer.name("flux").value(recipeInstance.flux); writer.name("heat").value(recipeInstance.heat); @@ -163,11 +144,9 @@ public class CustomMachineRecipes extends SerializableRecipe { public int duration; public int consumptionPerTick; - public boolean pollutionMode; public String pollutionType; public float pollutionAmount; - public boolean radiationMode; public float radiationAmount; public int flux; public int heat; diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java index 658f0d305..b60884f26 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java @@ -24,8 +24,8 @@ public class ElectrolyserFluidRecipes extends SerializableRecipe { @Override public void registerDefaults() { - recipes.put(Fluids.WATER, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.HYDROGEN, 100), new FluidStack(Fluids.OXYGEN, 100))); - recipes.put(Fluids.HEAVYWATER, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.DEUTERIUM, 50), new FluidStack(Fluids.OXYGEN, 50))); + recipes.put(Fluids.WATER, new ElectrolysisRecipe(2_000, new FluidStack(Fluids.HYDROGEN, 200), new FluidStack(Fluids.OXYGEN, 200))); + recipes.put(Fluids.HEAVYWATER, new ElectrolysisRecipe(2_000, new FluidStack(Fluids.DEUTERIUM, 200), new FluidStack(Fluids.OXYGEN, 200))); recipes.put(Fluids.POTASSIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.NONE, 0), new ItemStack(ModItems.dust))); recipes.put(Fluids.CALCIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125))); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 784042f5d..92af2a4ed 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -259,21 +259,17 @@ public class TileEntityCustomMachine extends TileEntityMachinePolluting implemen return null; } public void pollution(CustomMachineRecipe recipe) { - if (recipe.pollutionMode) { - if (recipe.pollutionAmount > 0) { - this.pollute(PollutionHandler.PollutionType.valueOf(recipe.pollutionType), recipe.pollutionAmount); - } else if (recipe.pollutionAmount < 0 && PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionHandler.PollutionType.valueOf(recipe.pollutionType)) >= -recipe.pollutionAmount) { - PollutionHandler.decrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionHandler.PollutionType.valueOf(recipe.pollutionType), -recipe.pollutionAmount); - } + if(recipe.pollutionAmount > 0) { + this.pollute(PollutionHandler.PollutionType.valueOf(recipe.pollutionType), recipe.pollutionAmount); + } else if(recipe.pollutionAmount < 0 && PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionHandler.PollutionType.valueOf(recipe.pollutionType)) >= -recipe.pollutionAmount) { + PollutionHandler.decrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionHandler.PollutionType.valueOf(recipe.pollutionType), -recipe.pollutionAmount); } } public void radiation(CustomMachineRecipe recipe){ - if (recipe.radiationMode) { - if (recipe.radiationAmount > 0) { - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, recipe.radiationAmount); - } else if (recipe.radiationAmount < 0) { - ChunkRadiationManager.proxy.decrementRad(worldObj, xCoord, yCoord, zCoord, -recipe.radiationAmount); - } + if(recipe.radiationAmount > 0) { + ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, recipe.radiationAmount); + } else if (recipe.radiationAmount < 0) { + ChunkRadiationManager.proxy.decrementRad(worldObj, xCoord, yCoord, zCoord, -recipe.radiationAmount); } } protected void tryPullHeat(int x, int y, int z) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 749487b2b..b41f54a7d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -53,11 +53,13 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn public long power; public static final long maxPower = 20000000; - public static final int usageBase = 10000; - public int usage; + public static final int usageOreBase = 10_000; + public static final int usageFluidBase = 10_000; + public int usageOre; + public int usageFluid; public int progressFluid; - public static final int processFluidTimeBase = 60; + public static final int processFluidTimeBase = 20; public int processFluidTime; public int progressOre; public static final int processOreTimeBase = 600; @@ -136,11 +138,12 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn processFluidTime = processFluidTimeBase - processFluidTimeBase * speedLevel / 4; processOreTime = processOreTimeBase - processOreTimeBase * speedLevel / 4; - usage = usageBase - usageBase * powerLevel / 4; + usageOre = usageOreBase - usageOreBase * powerLevel / 4; + usageFluid = usageFluidBase - usageFluidBase * powerLevel / 4; if(this.canProcessFluid()) { this.progressFluid++; - this.power -= this.usage; + this.power -= this.usageFluid; if(this.progressFluid >= this.processFluidTime) { this.processFluids(); @@ -151,7 +154,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn if(this.canProcesMetal()) { this.progressOre++; - this.power -= this.usage; + this.power -= this.usageOre; if(this.progressOre >= this.processOreTime) { this.processMetal(); @@ -210,7 +213,8 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn data.setLong("power", this.power); data.setInteger("progressFluid", this.progressFluid); data.setInteger("progressOre", this.progressOre); - data.setInteger("usage", this.usage); + data.setInteger("usageOre", this.usageOre); + data.setInteger("usageFluid", this.usageFluid); data.setInteger("processFluidTime", this.processFluidTime); data.setInteger("processOreTime", this.processOreTime); if(this.leftStack != null) { @@ -247,7 +251,8 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn this.power = nbt.getLong("power"); this.progressFluid = nbt.getInteger("progressFluid"); this.progressOre = nbt.getInteger("progressOre"); - this.usage = nbt.getInteger("usage"); + this.usageOre = nbt.getInteger("usageOre"); + this.usageFluid = nbt.getInteger("usageFluid"); this.processFluidTime = nbt.getInteger("processFluidTime"); this.processOreTime = nbt.getInteger("processOreTime"); if(nbt.hasKey("leftType")) this.leftStack = new MaterialStack(Mats.matById.get(nbt.getInteger("leftType")), nbt.getInteger("leftAmount")); @@ -259,7 +264,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn public boolean canProcessFluid() { - if(this.power < usage) return false; + if(this.power < usageFluid) return false; ElectrolysisRecipe recipe = ElectrolyserFluidRecipes.recipes.get(tanks[0].getTankType()); @@ -310,7 +315,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn public boolean canProcesMetal() { if(slots[14] == null) return false; - if(this.power < usage) return false; + if(this.power < usageOre) return false; if(this.tanks[3].getFill() < 100) return false; ElectrolysisMetalRecipe recipe = ElectrolyserMetalRecipes.getRecipe(slots[14]); @@ -382,7 +387,6 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn this.power = nbt.getLong("power"); this.progressFluid = nbt.getInteger("progressFluid"); this.progressOre = nbt.getInteger("progressOre"); - this.usage = nbt.getInteger("usage"); this.processFluidTime = nbt.getInteger("processFluidTime"); this.processOreTime = nbt.getInteger("processOreTime"); if(nbt.hasKey("leftType")) this.leftStack = new MaterialStack(Mats.matById.get(nbt.getInteger("leftType")), nbt.getInteger("leftAmount")); @@ -399,7 +403,6 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn nbt.setLong("power", this.power); nbt.setInteger("progressFluid", this.progressFluid); nbt.setInteger("progressOre", this.progressOre); - nbt.setInteger("usage", this.usage); nbt.setInteger("processFluidTime", this.processFluidTime); nbt.setInteger("processOreTime", this.processOreTime); if(this.leftStack != null) { From 5d63b80777a5d15d807d71c6a73e16df76d74096 Mon Sep 17 00:00:00 2001 From: George Paton Date: Fri, 23 Feb 2024 15:47:00 +1100 Subject: [PATCH 216/376] Fix spotlight beams crashing in nuclear explosions Fix nuclear fallout depositing in midair on top of beams --- src/main/java/com/hbm/blocks/generic/BlockFallout.java | 7 ++++++- src/main/java/com/hbm/blocks/machine/Spotlight.java | 5 +++-- src/main/java/com/hbm/blocks/machine/SpotlightBeam.java | 1 + .../java/com/hbm/entity/effect/EntityFalloutRain.java | 8 ++++---- .../java/com/hbm/entity/item/EntityFallingBlockNT.java | 3 ++- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockFallout.java b/src/main/java/com/hbm/blocks/generic/BlockFallout.java index 9e273006a..175b1dd40 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFallout.java +++ b/src/main/java/com/hbm/blocks/generic/BlockFallout.java @@ -41,7 +41,12 @@ public class BlockFallout extends Block { public boolean canPlaceBlockAt(World world, int x, int y, int z) { Block block = world.getBlock(x, y - 1, z); - return block != Blocks.ice && block != Blocks.packed_ice ? (block.isLeaves(world, x, y - 1, z) ? true : (block == this && (world.getBlockMetadata(x, y - 1, z) & 7) == 7 ? true : block.isOpaqueCube() && block.getMaterial().blocksMovement())) : false; + + if (block == Blocks.ice || block == Blocks.packed_ice) return false; + if (block.isLeaves(world, x, y - 1, z) && !block.isAir(world, x, y - 1, z)) return true; + if (block == this && (world.getBlockMetadata(x, y - 1, z) & 7) == 7) return true; + + return block.isOpaqueCube() && block.getMaterial().blocksMovement(); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java index b5f7b0c56..c40a9ef9c 100644 --- a/src/main/java/com/hbm/blocks/machine/Spotlight.java +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -250,8 +250,9 @@ public class Spotlight extends Block implements ISpotlight { } // If we encounter an existing beam, add a new INCOMING direction to the - // metadata - SpotlightBeam.setDirection(world, x, y, z, dir, true); + // metadata, and cancel propagation if something goes wrong + if (SpotlightBeam.setDirection(world, x, y, z, dir, true) == 0) + return; propagateBeam(world, x, y, z, dir, distance); } diff --git a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java index b96cc4a6a..44c7c7209 100644 --- a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java +++ b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java @@ -69,6 +69,7 @@ public class SpotlightBeam extends BlockContainer { // Returns the final metadata, so the caller can optionally remove the block public static int setDirection(World world, int x, int y, int z, ForgeDirection dir, boolean state) { TileEntityData te = (TileEntityData) world.getTileEntity(x, y, z); + if (te == null) return 0; // This shouldn't happen, and if it does, cancel propagation int transformedMetadata = applyDirection(te.metadata, dir, state); te.metadata = transformedMetadata; return transformedMetadata; diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index abddcb261..df36d3276 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -211,12 +211,12 @@ public class EntityFalloutRain extends Entity { float hardness = b.getBlockHardness(worldObj, x, y, z); if(dist < 65 && hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0/* && !b.hasTileEntity(worldObj.getBlockMetadata(x, y, z))*/) { - Block bl = worldObj.getBlock(x, y - 1, z); - if(bl == Blocks.air) { + if(worldObj.getBlock(x, y - 1, z) == Blocks.air) { for(int i = 0; i <= depth; i++) { - hardness = worldObj.getBlock(x, y + i, z).getBlockHardness(worldObj, x, y + i, z); + Block block = worldObj.getBlock(x, y + i, z); + hardness = block.getBlockHardness(worldObj, x, y + i, z); if(hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0) { - EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, worldObj.getBlock(x, y + i, z), worldObj.getBlockMetadata(x, y + i, z)); + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, block, worldObj.getBlockMetadata(x, y + i, z)); entityfallingblock.canDrop = false; //turn off block drops because block dropping was coded by a mule with dementia worldObj.spawnEntityInWorld(entityfallingblock); } diff --git a/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java index cabc90143..150c4352f 100644 --- a/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java +++ b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Iterator; import com.hbm.blocks.BlockFallingNT; +import com.hbm.blocks.ISpotlight; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -91,7 +92,7 @@ public class EntityFallingBlockNT extends Entity { public void onUpdate() { - if(this.getBlock().getMaterial() == Material.air) { + if(this.getBlock().getMaterial() == Material.air || this.getBlock() instanceof ISpotlight) { this.setDead(); } else { this.prevPosX = this.posX; From 933d45fabaf0bb05c9cdf8dcdd897ebfc8a2adea Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 23 Feb 2024 09:07:55 +0100 Subject: [PATCH 217/376] localization for custom machines --- changelog | 2 ++ .../java/com/hbm/config/CustomMachineConfigJSON.java | 12 ++++++++++++ .../java/com/hbm/inventory/gui/GUIMachineCustom.java | 9 ++++++--- .../java/com/hbm/items/block/ItemCustomMachine.java | 4 +++- src/main/java/com/hbm/main/ClientProxy.java | 7 +++++++ src/main/java/com/hbm/main/ServerProxy.java | 2 ++ 6 files changed, 32 insertions(+), 4 deletions(-) diff --git a/changelog b/changelog index 4d6932f67..249f85271 100644 --- a/changelog +++ b/changelog @@ -11,7 +11,9 @@ * Electrolyzing fluids now only takes 20 ticks instead of 60 * Batch sizes for water and heavy water have been doubled, effectively increasing throughout 6x * The throughput for electrolysis on chemical plants has been halved (but heavy water still has the output buff, effectively remaining unchanged) +* Custom machines now have an optional localization field which allows translations to be added within the config ## Fixed * Fixed the structure toggle on the world creation screen not working correctly on most world types * Fixed antiknock having a broken sprite and localization +* Fixed crash caused by fallout affecting spotlight blocks, crashing the game diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java index dc746f7d8..aab315abd 100644 --- a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -8,10 +8,12 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map.Entry; import java.util.Set; import com.google.gson.Gson; import com.google.gson.JsonArray; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; @@ -58,6 +60,9 @@ public class CustomMachineConfigJSON { writer.beginObject(); writer.name("recipeKey").value("paperPress"); writer.name("unlocalizedName").value("paperPress"); + writer.name("localization").beginObject(); + writer.name("de_DE").value("Papierpresse"); + writer.endObject(); writer.name("localizedName").value("Paper Press"); writer.name("fluidInCount").value(1); writer.name("fluidInCap").value(1_000); @@ -152,6 +157,12 @@ public class CustomMachineConfigJSON { configuration.recipeKey = machineObject.get("recipeKey").getAsString(); configuration.unlocalizedName = machineObject.get("unlocalizedName").getAsString(); configuration.localizedName = machineObject.get("localizedName").getAsString(); + if(machineObject.has("localization")) { + JsonObject localization = machineObject.get("localization").getAsJsonObject(); + for(Entry entry : localization.entrySet()) { + configuration.localization.put(entry.getKey(), entry.getValue().getAsString()); + } + } configuration.fluidInCount = machineObject.get("fluidInCount").getAsInt(); configuration.fluidInCap = machineObject.get("fluidInCap").getAsInt(); configuration.itemInCount = machineObject.get("itemInCount").getAsInt(); @@ -240,6 +251,7 @@ public class CustomMachineConfigJSON { public String unlocalizedName; /** The display name of this machine */ public String localizedName; + public HashMap localization = new HashMap();; public int fluidInCount; public int fluidInCap; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java index dcfb6effd..2a02cd763 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java @@ -9,6 +9,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.SlotPattern; import com.hbm.inventory.container.ContainerMachineCustom; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityCustomMachine; import net.minecraft.client.Minecraft; @@ -69,6 +70,8 @@ public class GUIMachineCustom extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.custom.getInventoryName(); + String localizedName = this.custom.config.localization.get(MainRegistry.proxy.getLanguageCode()); + if(localizedName != null) name = localizedName; this.fontRendererObj.drawString(name, 68 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); if(custom.config.fluxMode) this.fontRendererObj.drawString("Flux:" + custom.flux,83, 57,0x08FF00); @@ -82,14 +85,14 @@ public class GUIMachineCustom extends GuiInfoContainer { if(custom.config.fluxMode){ drawTexturedModalRect(guiLeft + 78, guiTop + 54, 192, 122,51 , 15); } - if(custom.maxHeat>0) { - drawTexturedModalRect(guiLeft + 61, guiTop + 53, 236,0 , 18, 18); + if(custom.maxHeat > 0) { + drawTexturedModalRect(guiLeft + 61, guiTop + 53, 236, 0, 18, 18); GaugeUtil.drawSmoothGauge(guiLeft + 70, guiTop + 62, this.zLevel, (double) custom.heat / (double) custom.config.maxHeat, 5, 2, 1, 0x7F0000); } int p = custom.progress * 90 / custom.maxProgress; drawTexturedModalRect(guiLeft + 78, guiTop + 119, 192, 0, Math.min(p, 44), 16); if(p > 44) { - p-= 44; + p -= 44; drawTexturedModalRect(guiLeft + 78 + 44, guiTop + 119, 192, 16, p, 16); } diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java index 30723223d..ce6559b82 100644 --- a/src/main/java/com/hbm/items/block/ItemCustomMachine.java +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; +import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -39,7 +40,8 @@ public class ItemCustomMachine extends ItemBlock { MachineConfiguration conf = CustomMachineConfigJSON.niceList.get(id); if(conf != null) { - return conf.localizedName; + String localized = conf.localization.get(MainRegistry.proxy.getLanguageCode()); + return localized != null ? localized : conf.localizedName; } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 9661ef3b6..a28dc0c35 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -15,6 +15,7 @@ import net.minecraft.client.renderer.entity.RenderMinecart; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.client.resources.Language; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -2104,4 +2105,10 @@ public class ClientProxy extends ServerProxy { public void playSoundClient(double x, double y, double z, String sound, float volume, float pitch) { Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation(sound), volume, pitch, (float) x, (float) y, (float) z)); } + + @Override + public String getLanguageCode() { + Language lang = Minecraft.getMinecraft().getLanguageManager().getCurrentLanguage(); + return lang.getLanguageCode(); + } } diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 554783cee..5878d4d40 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -86,4 +86,6 @@ public class ServerProxy { } public void playSoundClient(double x, double y, double z, String sound, float volume, float pitch) { } + + public String getLanguageCode() { return "en_US"; } } \ No newline at end of file From e20c5ddd049510dc448447720e8ff8ee37b4c75a Mon Sep 17 00:00:00 2001 From: George Paton Date: Fri, 23 Feb 2024 23:48:39 +1100 Subject: [PATCH 218/376] Add Mellow bobblehead --- .../com/hbm/blocks/generic/BlockBobble.java | 3 +- .../hbm/inventory/gui/GUIScreenBobble.java | 53 + .../hbm/render/tileentity/RenderBobble.java | 25 + .../assets/hbm/models/trinkets/bobble.obj | 4033 ++++++++--------- .../hbm/textures/models/trinkets/glow.png | Bin 0 -> 4331 bytes .../textures/models/trinkets/mellowrpg8.png | Bin 0 -> 7337 bytes 6 files changed, 1983 insertions(+), 2131 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/glow.png create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/mellowrpg8.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index afd48197b..2f40e0fd8 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -192,7 +192,8 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), MICROWAVE( "Microwave", "Microwave", "OC Compatibility", "they call me the food heater", true, ScrapType.BRIDGE_BIOS), - PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK); + PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK), + MELLOW( "MELLOWARPEGGIATION", "Mellow", "Industrial lighting, animation tools", "Make something cool now, ask for permission later.", true, ScrapType.CPU_LOGIC); public String name; //the title of the tooltip public String label; //the name engraved in the socket diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenBobble.java b/src/main/java/com/hbm/inventory/gui/GUIScreenBobble.java index 52998b48a..edd779896 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenBobble.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenBobble.java @@ -1,8 +1,14 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; +import java.util.List; +import java.lang.Math; + import org.lwjgl.opengl.GL11; +import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; +import com.hbm.util.Tuple.Pair; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; @@ -59,6 +65,8 @@ public class GUIScreenBobble extends GuiScreen { nextLevel += 10; String bobbleName = this.bobble.type.name; + if(this.bobble.type == BobbleType.MELLOW) + bobbleName = anagramIt(bobbleName, "GEORGEWILLIAMPATON"); this.fontRendererObj.drawStringWithShadow(bobbleName, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(bobbleName) / 2), nextLevel, 0x009900); nextLevel += 20; @@ -110,4 +118,49 @@ public class GUIScreenBobble extends GuiScreen { public boolean doesGuiPauseGame() { return false; } + + // Animates the letters (from -> to) back and forth over 1.5 seconds + private String anagramIt(String from, String to) { + double t = Math.sin((double)System.currentTimeMillis() / 1500.0) * 0.75 + 0.5; + + char[] lettersFrom = from.toCharArray(); + char[] lettersTo = to.toCharArray(); + boolean[] hasPairedLetter = new boolean[lettersFrom.length]; + List> letterTargets = new ArrayList>(); + + for(int i = 0; i < lettersFrom.length; i++) { + char letterFrom = lettersFrom[i]; + for(int o = 0; o < lettersTo.length; o++) { + char letterTo = lettersTo[o]; + if(letterFrom == letterTo && !hasPairedLetter[o]) { + double v = lerp((double)i, (double)o, t); + letterTargets.add(new Pair(v, lettersFrom[i])); + hasPairedLetter[o] = true; + break; + } + } + } + + for(int i = 0; i < letterTargets.size(); i++) { + for (int j = i + 1; j < letterTargets.size(); j++) { + if (letterTargets.get(i).key > letterTargets.get(j).key) { + Pair temp = letterTargets.get(i); + letterTargets.set(i, letterTargets.get(j)); + letterTargets.set(j, temp); + } + } + } + + String anagrammedText = ""; + for(Pair in : letterTargets) { + anagrammedText += in.value; + } + + return anagrammedText; + } + + private double lerp(double a, double b, double t) { + t = Math.max(Math.min(t, 1), 0); + return a * (1 - t) + b * t; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderBobble.java b/src/main/java/com/hbm/render/tileentity/RenderBobble.java index 5d2e0ea14..fc5332997 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBobble.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBobble.java @@ -30,6 +30,8 @@ public class RenderBobble extends TileEntitySpecialRenderer { public static final IModelCustom bobble = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/bobble.obj")); public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/socket.png"); + public static final ResourceLocation glow = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/glow.png"); + public static final ResourceLocation lamp = new ResourceLocation(RefStrings.MODID, "textures/blocks/fluorescent_lamp.png"); public static final ResourceLocation bobble_vaultboy = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/vaultboy.png"); public static final ResourceLocation bobble_hbm = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/hbm.png"); @@ -47,6 +49,7 @@ public class RenderBobble extends TileEntitySpecialRenderer { public static final ResourceLocation bobble_cirno = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/cirno.png"); public static final ResourceLocation bobble_microwave = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/microwave.png"); public static final ResourceLocation bobble_peep = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/peep.png"); + public static final ResourceLocation bobble_mellow = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/mellowrpg8.png"); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float intero) { @@ -98,6 +101,7 @@ public class RenderBobble extends TileEntitySpecialRenderer { case DRILLGON: bindTexture(bobble_drillgon); break; case MICROWAVE: bindTexture(bobble_microwave); break; case PEEP: bindTexture(bobble_peep); break; + case MELLOW: bindTexture(bobble_mellow); break; default: bindTexture(ResourceManager.universal); } @@ -201,10 +205,17 @@ public class RenderBobble extends TileEntitySpecialRenderer { case VAER: rotLeftArm = new double[]{0, -5, 45}; rotRightArm = new double[]{0, 15, 45}; + break; case PEEP: rotLeftArm = new double[]{0, 0, 1}; rotRightArm = new double[]{0, 0, 1}; break; + case MELLOW: + rotLeftArm = new double[]{0, 10, 0}; + rotRightArm = new double[]{0, -10, 0}; + rotLeftLeg = new double[]{3, 5, 2}; + rotRightLeg = new double[]{-3, -5, 0}; + break; } } @@ -442,6 +453,20 @@ public class RenderBobble extends TileEntitySpecialRenderer { GL11.glScaled(0.5, 0.5, 0.5); shotgun.renderDud(0.0625F); break; + case MELLOW: + GL11.glEnable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + this.bindTexture(lamp); + bobble.renderPart("Fluoro"); + this.bindTexture(glow); + bobble.renderPart("Glow"); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopAttrib(); + break; } } diff --git a/src/main/resources/assets/hbm/models/trinkets/bobble.obj b/src/main/resources/assets/hbm/models/trinkets/bobble.obj index ca368efed..35e58fb51 100644 --- a/src/main/resources/assets/hbm/models/trinkets/bobble.obj +++ b/src/main/resources/assets/hbm/models/trinkets/bobble.obj @@ -1,179 +1,353 @@ -# Blender v2.79 (sub 0) OBJ File: 'bobble.blend' +# Blender 4.0.1 # www.blender.org -o PeepHat -v 0.281250 2.625000 -0.281250 -v 0.281250 2.625000 0.281250 -v -0.281250 2.625000 0.281250 -v -0.281250 2.625000 -0.281250 -v -0.281250 2.500000 -0.281250 -v -0.281250 2.500000 0.281250 -v 0.281250 2.500000 0.281250 -v 0.281250 2.500000 -0.281250 -v 0.000000 2.687500 0.062500 -v 0.000000 2.687500 -0.062500 -v 0.000000 2.625000 0.000000 -vt -0.000000 0.890625 -vt 0.015625 0.984375 -vt -0.000000 0.984375 -vt 0.125000 0.984375 -vt 0.109375 0.890625 -vt 0.125000 0.890625 -vt 0.015625 1.000000 -vt 0.109375 0.984375 -vt 0.109375 1.000000 -vt 0.109375 0.875000 -vt 0.015625 0.890625 -vt 0.015625 0.875000 -vt 0.000000 1.000000 -vt -0.000000 0.984375 -vt 0.015625 0.984375 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -s off -f 7/1/1 3/2/1 6/3/1 -f 5/4/2 1/5/2 8/6/2 -f 6/7/3 4/8/3 5/9/3 -f 8/10/4 2/11/4 7/12/4 -f 2/11/5 4/8/5 3/2/5 -f 9/13/4 11/14/4 10/15/4 -f 7/1/1 2/11/1 3/2/1 -f 5/4/2 4/8/2 1/5/2 -f 6/7/3 3/2/3 4/8/3 -f 8/10/4 1/5/4 2/11/4 -f 2/11/5 1/5/5 4/8/5 -o PeepTail -v -0.114030 1.104741 -0.062500 -v -0.071277 0.987279 -0.062500 -v -0.114030 1.104741 0.062500 -v -0.071277 0.987279 0.062500 -v -0.583876 0.933731 -0.062500 -v -0.541124 0.816269 -0.062500 -v -0.583876 0.933731 0.062500 -v -0.541124 0.816269 0.062500 -v -0.547280 0.814373 0.062500 -v -0.704707 1.160419 0.125000 -v -0.547280 0.814373 -0.062500 -v -0.704707 1.160419 -0.125000 -v -0.426539 0.846725 0.062500 -v -0.463226 1.225123 0.125000 -v -0.426539 0.846725 -0.062500 -v -0.463226 1.225123 -0.125000 -v -0.801764 1.522641 0.125000 -v -0.801764 1.522641 -0.125000 -v -0.560283 1.587345 -0.125000 -v -0.560283 1.587345 0.125000 -v -0.757570 1.599187 0.062500 -v -0.757570 1.599187 -0.062500 -v -0.636829 1.631540 -0.062500 -v -0.636829 1.631540 0.062500 -vt 0.937500 0.562500 -vt 0.968750 0.687500 -vt 0.937500 0.687500 -vt 0.968750 0.687500 -vt 0.937500 0.562500 -vt 0.968750 0.562500 -vt 0.937500 0.687500 -vt 0.968750 0.562500 -vt 0.968750 0.687500 -vt 0.968750 0.562500 -vt 0.937500 0.687500 -vt 0.937500 0.562500 -vt 0.937500 0.546875 -vt 0.890625 0.453125 -vt 0.921875 0.453125 -vt 0.937500 0.546875 -vt 0.890625 0.453125 -vt 0.921875 0.453125 -vt 0.937500 0.546875 -vt 0.890625 0.453125 -vt 0.921875 0.453125 -vt 0.937500 0.546875 -vt 0.890625 0.453125 -vt 0.921875 0.453125 -vt 0.890625 0.421875 -vt 0.875000 0.640625 -vt 0.875000 0.546875 -vt 0.937500 0.640625 -vt 0.890625 0.656250 -vt 0.875000 0.640625 -vt 0.875000 0.546875 -vt 0.875000 0.640625 -vt 0.875000 0.546875 -vt 0.875000 0.640625 -vt 0.875000 0.546875 -vt 0.921875 0.687500 -vt 0.890625 0.687500 -vt 0.921875 0.656250 -vt 0.890625 0.656250 -vt 0.937500 0.640625 -vt 0.890625 0.656250 -vt 0.937500 0.640625 -vt 0.890625 0.656250 -vt 0.968750 0.562500 -vt 0.937500 0.687500 -vt 0.937500 0.562500 -vt 0.968750 0.687500 -vt 0.921875 0.421875 -vt 0.921875 0.656250 -vt 0.937500 0.640625 -vt 0.921875 0.656250 -vt 0.921875 0.656250 -vn -0.3420 0.9397 0.0000 -vn 0.3420 -0.9397 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn -0.9102 -0.4141 0.0000 -vn 0.0425 -0.1588 -0.9864 -vn 0.9953 0.0965 0.0000 -vn 0.0425 -0.1588 0.9864 -vn 0.2588 -0.9659 0.0000 -vn 0.9659 0.2588 0.0000 -vn -0.8660 0.5000 0.0000 -vn -0.9659 -0.2588 0.0000 -vn -0.2588 0.9659 0.0000 -vn -0.1830 0.6830 0.7071 -vn -0.1830 0.6830 -0.7071 -vn 0.5000 0.8660 0.0000 -s off -f 16/16/6 14/17/6 12/18/6 -f 13/19/7 19/20/7 17/21/7 -f 14/22/8 19/23/8 15/24/8 -f 16/25/9 13/26/9 17/27/9 -f 21/28/10 22/29/10 20/30/10 -f 23/31/11 26/32/11 22/33/11 -f 27/34/12 24/35/12 26/36/12 -f 25/37/13 20/38/13 24/39/13 -f 26/40/14 20/30/14 22/29/14 -f 27/34/15 31/41/15 25/42/15 -f 28/43/16 33/44/16 29/45/16 -f 21/28/17 29/45/17 23/46/17 -f 25/37/8 28/47/8 21/48/8 -f 23/31/9 30/49/9 27/50/9 -f 33/44/18 35/51/18 34/52/18 -f 28/47/19 35/53/19 32/54/19 -f 29/55/20 34/56/20 30/49/20 -f 30/57/21 35/58/21 31/41/21 -f 16/16/6 18/59/6 14/17/6 -f 13/19/7 15/60/7 19/20/7 -f 14/22/8 18/61/8 19/23/8 -f 16/25/9 12/62/9 13/26/9 -f 21/28/10 23/46/10 22/29/10 -f 23/31/11 27/50/11 26/32/11 -f 27/34/12 25/42/12 24/35/12 -f 25/37/13 21/48/13 20/38/13 -f 26/40/14 24/63/14 20/30/14 -f 27/34/15 30/57/15 31/41/15 -f 28/43/16 32/64/16 33/44/16 -f 21/28/17 28/43/17 29/45/17 -f 25/37/8 31/65/8 28/47/8 -f 23/31/9 29/55/9 30/49/9 -f 33/44/18 32/64/18 35/51/18 -f 28/47/19 31/65/19 35/53/19 -f 29/55/20 33/66/20 34/56/20 -f 30/57/21 34/67/21 35/58/21 +o Body +v 0.125000 1.750000 0.250000 +v -0.125000 1.750000 0.250000 +v 0.125000 1.750000 -0.250000 +v -0.125000 1.750000 -0.250000 +v 0.125000 1.000000 0.250000 +v -0.125000 1.000000 0.250000 +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +v 0.156250 1.781250 0.281250 +v -0.156250 1.781250 0.281250 +v 0.156250 1.781250 -0.281250 +v -0.156250 1.781250 -0.281250 +v 0.156250 0.968750 0.281250 +v -0.156250 0.968750 0.281250 +v -0.156250 0.968750 -0.281250 +v 0.156250 0.968750 -0.281250 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.312500 0.687500 +vt 0.437500 0.750000 +vt 0.312500 0.750000 +vt 0.562500 0.687500 +vt 0.562500 0.750000 +vt 0.500000 0.687500 +vt 0.625000 0.500000 +vt 0.625000 0.687500 +vt 0.437500 0.687500 +vt 0.500000 0.500000 +vt 0.437500 0.500000 +vt 0.250000 0.687500 +vt 0.312500 0.500000 +vt 0.312500 0.437500 +vt 0.562500 0.500000 +vt 0.437500 0.437500 +vt 0.562500 0.437500 +vt 0.500000 0.437500 +vt 0.625000 0.250000 +vt 0.625000 0.437500 +vt 0.500000 0.250000 +vt 0.437500 0.250000 +vt 0.250000 0.437500 +vt 0.312500 0.250000 +vt 0.250000 0.500000 +vt 0.250000 0.250000 +s 0 +f 1/1/1 4/2/1 2/3/1 +f 7/2/2 5/4/2 6/5/2 +f 4/6/3 6/7/3 2/8/3 +f 3/9/4 7/10/4 4/6/4 +f 1/1/5 8/11/5 3/9/5 +f 2/12/6 5/13/6 1/1/6 +f 9/14/1 12/11/1 10/13/1 +f 14/15/2 16/16/2 13/17/2 +f 12/18/3 14/19/3 10/20/3 +f 11/16/4 15/21/4 12/18/4 +f 9/14/5 16/22/5 11/16/5 +f 10/23/6 13/24/6 9/14/6 +f 1/1/1 3/9/1 4/2/1 +f 7/2/2 8/9/2 5/4/2 +f 4/6/3 7/10/3 6/7/3 +f 3/9/4 8/11/4 7/10/4 +f 1/1/5 5/13/5 8/11/5 +f 2/12/6 6/25/6 5/13/6 +f 9/14/1 11/16/1 12/11/1 +f 14/15/2 15/11/2 16/16/2 +f 12/18/3 15/21/3 14/19/3 +f 11/16/4 16/22/4 15/21/4 +f 9/14/5 13/24/5 16/22/5 +f 10/23/6 14/26/6 13/24/6 +o Body17 +v 0.125000 1.750000 0.250000 +v -0.125000 1.750000 0.250000 +v 0.125000 1.750000 -0.250000 +v -0.125000 1.750000 -0.250000 +v 0.125000 1.000000 0.250000 +v -0.125000 1.000000 0.250000 +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.312500 0.375000 +vt 0.437500 0.500000 +vt 0.312500 0.500000 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.500000 0.375000 +vt 0.625000 -0.000000 +vt 0.625000 0.375000 +vt 0.437500 0.375000 +vt 0.500000 -0.000000 +vt 0.437500 -0.000000 +vt 0.250000 0.375000 +vt 0.312500 -0.000000 +vt 0.250000 -0.000000 +s 0 +f 17/27/7 20/28/7 18/29/7 +f 23/28/8 21/30/8 22/31/8 +f 20/32/9 22/33/9 18/34/9 +f 19/35/10 23/36/10 20/32/10 +f 17/27/11 24/37/11 19/35/11 +f 18/38/12 21/39/12 17/27/12 +f 17/27/7 19/35/7 20/28/7 +f 23/28/8 24/35/8 21/30/8 +f 20/32/9 23/36/9 22/33/9 +f 19/35/10 24/37/10 23/36/10 +f 17/27/11 21/39/11 24/37/11 +f 18/38/12 22/40/12 21/39/12 +o Cube +v 0.045753 0.237741 0.312500 +v 0.045753 0.737741 0.312500 +v 0.045753 0.237741 0.062500 +v 0.045753 0.737741 0.062500 +v 0.295753 0.237741 0.312500 +v 0.295753 0.737741 0.312500 +v 0.295753 0.237741 0.062500 +v 0.295753 0.737741 0.062500 +v -0.291506 0.316987 -0.062500 +v -0.041506 0.750000 -0.062500 +v -0.291506 0.316987 -0.312500 +v -0.041506 0.750000 -0.312500 +v -0.075000 0.191987 -0.062500 +v 0.175000 0.625000 -0.062500 +v -0.075000 0.191987 -0.312500 +v 0.175000 0.625000 -0.312500 +v 0.079247 0.612741 0.312500 +v -0.170753 1.045753 0.312500 +v 0.079247 0.612741 0.062500 +v -0.170753 1.045753 0.062500 +v 0.295753 0.737741 0.312500 +v 0.045753 1.170753 0.312500 +v 0.295753 0.737741 0.062500 +v 0.045753 1.170753 0.062500 +v -0.075000 0.625000 -0.062500 +v -0.075000 1.125000 -0.062500 +v -0.075000 0.625000 -0.312500 +v -0.075000 1.125000 -0.312500 +v 0.175000 0.625000 -0.062500 +v 0.175000 1.125000 -0.062500 +v 0.175000 0.625000 -0.312500 +v 0.175000 1.125000 -0.312500 +v -0.125000 1.000000 0.250000 +v 0.125000 1.000000 0.250000 +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +v -0.125000 1.250000 -0.250000 +v -0.125000 1.250000 0.250000 +v 0.125000 1.250000 0.250000 +v 0.125000 1.250000 -0.250000 +v -0.187500 1.250000 0.375000 +v 0.187500 1.250000 0.375000 +v -0.187500 1.250000 -0.375000 +v 0.187500 1.250000 -0.375000 +v -0.187500 1.750000 -0.375000 +v -0.187500 1.750000 0.375000 +v 0.187500 1.750000 0.375000 +v 0.187500 1.750000 -0.375000 +v 0.232576 1.266670 -0.066987 +v 0.041065 1.427367 -0.500000 +v 0.398429 1.127502 -0.191987 +v 0.206918 1.288199 -0.625000 +v 0.393273 1.458181 -0.066987 +v 0.201762 1.618878 -0.500000 +v 0.559126 1.319013 -0.191987 +v 0.367615 1.479710 -0.625000 +v 0.206918 1.288199 -0.375000 +v -0.176104 1.609593 -0.375000 +v 0.206918 1.288199 -0.625000 +v -0.176104 1.609593 -0.625000 +v 0.367615 1.479710 -0.375000 +v -0.015407 1.801104 -0.375000 +v 0.367615 1.479710 -0.625000 +v -0.015407 1.801104 -0.625000 +v 0.125000 1.871693 0.950891 +v 0.125000 1.438680 0.700891 +v 0.125000 1.996693 0.734384 +v 0.125000 1.563680 0.484384 +v -0.125000 1.871693 0.950891 +v -0.125000 1.438680 0.700891 +v -0.125000 1.996693 0.734384 +v -0.125000 1.563680 0.484384 +v 0.125000 1.438680 0.700891 +v 0.125000 1.525504 0.208487 +v 0.125000 1.684882 0.744303 +v 0.125000 1.771706 0.251899 +v -0.125000 1.438680 0.700891 +v -0.125000 1.525504 0.208487 +v -0.125000 1.684882 0.744303 +v -0.125000 1.771706 0.251899 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn -0.6428 -0.7660 -0.0000 +vn 0.6634 -0.5567 -0.5000 +vn 0.6428 0.7660 -0.0000 +vn -0.6634 0.5567 0.5000 +vn 0.3830 -0.3214 0.8660 +vn -0.3830 0.3214 -0.8660 +vn 0.7660 -0.6428 -0.0000 +vn -0.7660 0.6428 -0.0000 +vn -0.0000 0.5000 -0.8660 +vn -0.0000 -0.5000 0.8660 +vn -0.0000 0.8660 0.5000 +vn -0.0000 -0.8660 -0.5000 +vn -0.0000 0.9848 0.1736 +vn -0.0000 -0.9848 -0.1736 +vn -0.0000 -0.1736 0.9848 +vn -0.0000 0.1736 -0.9848 +s 0 +f 26//13 27//13 25//13 +f 28//14 31//14 27//14 +f 32//15 29//15 31//15 +f 30//16 25//16 29//16 +f 31//17 25//17 27//17 +f 28//18 30//18 32//18 +f 34//19 35//19 33//19 +f 35//14 40//14 39//14 +f 40//20 37//20 39//20 +f 38//16 33//16 37//16 +f 39//21 33//21 35//21 +f 36//22 38//22 40//22 +f 42//23 43//23 41//23 +f 44//14 47//14 43//14 +f 48//24 45//24 47//24 +f 45//16 42//16 41//16 +f 47//25 41//25 43//25 +f 44//26 46//26 48//26 +f 50//13 51//13 49//13 +f 52//14 55//14 51//14 +f 56//15 53//15 55//15 +f 54//16 49//16 53//16 +f 55//17 49//17 51//17 +f 52//18 54//18 56//18 +f 59//17 58//17 57//17 +f 63//18 61//18 62//18 +f 59//14 64//14 60//14 +f 58//16 62//16 57//16 +f 60//15 63//15 58//15 +f 57//13 61//13 59//13 +f 67//17 66//17 65//17 +f 71//18 69//18 70//18 +f 68//15 71//15 66//15 +f 65//13 69//13 67//13 +f 67//14 72//14 68//14 +f 66//16 70//16 65//16 +f 74//27 75//27 73//27 +f 76//28 79//28 75//28 +f 79//29 78//29 77//29 +f 78//30 73//30 77//30 +f 75//31 77//31 73//31 +f 76//32 78//32 80//32 +f 82//27 83//27 81//27 +f 84//14 87//14 83//14 +f 88//29 85//29 87//29 +f 85//16 82//16 81//16 +f 87//33 81//33 83//33 +f 84//34 86//34 88//34 +f 90//15 91//15 89//15 +f 92//35 95//35 91//35 +f 96//13 93//13 95//13 +f 94//36 89//36 93//36 +f 95//37 89//37 91//37 +f 92//38 94//38 96//38 +f 98//15 99//15 97//15 +f 100//39 103//39 99//39 +f 103//13 102//13 101//13 +f 102//40 97//40 101//40 +f 103//41 97//41 99//41 +f 100//42 102//42 104//42 +f 26//13 28//13 27//13 +f 28//14 32//14 31//14 +f 32//15 30//15 29//15 +f 30//16 26//16 25//16 +f 31//17 29//17 25//17 +f 28//18 26//18 30//18 +f 34//19 36//19 35//19 +f 35//14 36//14 40//14 +f 40//20 38//20 37//20 +f 38//16 34//16 33//16 +f 39//21 37//21 33//21 +f 36//22 34//22 38//22 +f 42//23 44//23 43//23 +f 44//14 48//14 47//14 +f 48//24 46//24 45//24 +f 45//16 46//16 42//16 +f 47//25 45//25 41//25 +f 44//26 42//26 46//26 +f 50//13 52//13 51//13 +f 52//14 56//14 55//14 +f 56//15 54//15 53//15 +f 54//16 50//16 49//16 +f 55//17 53//17 49//17 +f 52//18 50//18 54//18 +f 59//17 60//17 58//17 +f 63//18 64//18 61//18 +f 59//14 61//14 64//14 +f 58//16 63//16 62//16 +f 60//15 64//15 63//15 +f 57//13 62//13 61//13 +f 67//17 68//17 66//17 +f 71//18 72//18 69//18 +f 68//15 72//15 71//15 +f 65//13 70//13 69//13 +f 67//14 69//14 72//14 +f 66//16 71//16 70//16 +f 74//27 76//27 75//27 +f 76//28 80//28 79//28 +f 79//29 80//29 78//29 +f 78//30 74//30 73//30 +f 75//31 79//31 77//31 +f 76//32 74//32 78//32 +f 82//27 84//27 83//27 +f 84//14 88//14 87//14 +f 88//29 86//29 85//29 +f 85//16 86//16 82//16 +f 87//33 85//33 81//33 +f 84//34 82//34 86//34 +f 90//15 92//15 91//15 +f 92//35 96//35 95//35 +f 96//13 94//13 93//13 +f 94//36 90//36 89//36 +f 95//37 93//37 89//37 +f 92//38 90//38 94//38 +f 98//15 100//15 99//15 +f 100//39 104//39 103//39 +f 103//13 104//13 102//13 +f 102//40 98//40 97//40 +f 103//41 101//41 97//41 +f 100//42 98//42 102//42 o Drillgon v -0.250000 0.500000 0.437500 v -0.250000 1.125000 0.437500 @@ -277,6 +451,31 @@ v 0.062500 0.687500 0.625000 v -0.062500 0.687500 0.625000 v 0.062500 0.500000 0.437500 v -0.062500 0.500000 0.437500 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.3162 -0.9487 +vn 0.9487 0.3162 -0.0000 +vn -0.0000 0.3162 0.9487 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 -0.7071 -0.7071 +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 -0.0000 1.0000 -0.0000 +vn -0.9487 -0.0000 -0.3162 +vn -0.0000 0.9487 -0.3162 +vn 0.9487 -0.0000 -0.3162 +vn -0.0000 -0.9487 -0.3162 +vn -0.0000 0.9487 0.3162 +vn -0.9487 -0.0000 0.3162 +vn 0.9487 -0.0000 0.3162 +vn -0.0000 -0.9487 0.3162 +vn -0.0000 0.7071 0.7071 +vn -0.0000 0.7071 -0.7071 vt 0.846154 0.540541 vt 0.576923 0.270270 vt 0.846154 0.270270 @@ -310,19 +509,6 @@ vt 0.961538 0.054054 vt 0.884615 0.000000 vt 0.961538 0.000000 vt 0.884615 0.054054 -vt 0.846154 0.270270 -vt 0.846154 0.054054 -vt 0.884615 0.270270 -vt 0.961538 0.324324 -vt 0.884615 0.324324 -vt 0.961538 0.270270 -vt 1.000000 0.054054 -vt 1.000000 0.270270 -vt 0.961538 0.054054 -vt 0.884615 0.000000 -vt 0.961538 0.000000 -vt 0.884615 0.054054 -vt 0.846154 0.270270 vt 0.846154 0.054054 vt 0.384615 1.000000 vt 0.384615 0.837838 @@ -332,61 +518,13 @@ vt 0.000000 0.837838 vt 0.576923 0.702703 vt 0.461538 0.837838 vt 0.461538 0.108108 -vt 0.384615 -0.000000 -vt 0.461538 -0.000000 vt 0.461538 -0.000000 vt 0.480769 0.081081 -vt 0.461538 0.108108 -vt 0.384615 -0.000000 vt 0.384615 0.108108 -vt 0.461538 -0.000000 -vt 0.480769 0.081081 -vt 0.461538 0.108108 -vt 0.384615 -0.000000 -vt 0.461538 0.108108 -vt 0.384615 0.108108 -vt 0.384615 -0.000000 -vt 0.384615 0.108108 -vt 0.384615 -0.000000 -vt 0.461538 0.108108 -vt 0.384615 0.108108 -vt 0.461538 -0.000000 -vt 0.480769 0.081081 -vt 0.461538 0.108108 -vt 0.384615 -0.000000 vt 0.480769 0.027027 vt 0.538462 0.108108 -vt 0.480769 0.081081 -vt 0.461538 0.108108 -vt 0.384615 -0.000000 -vt 0.461538 -0.000000 -vt 0.461538 0.108108 -vt 0.384615 0.000000 -vt 0.461538 -0.000000 -vt 0.461538 -0.000000 -vt 0.480769 0.081081 -vt 0.538462 0.108108 vt 0.615385 -0.000000 vt 0.615385 0.108108 -vt 0.480769 0.027027 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.081081 -vt 0.480769 0.081081 -vt 0.461538 -0.000000 -vt 0.480769 0.081081 -vt 0.615385 -0.000000 -vt 0.615385 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 vt 0.192308 0.162162 vt 0.153846 0.108108 vt 0.192308 0.108108 @@ -396,7 +534,6 @@ vt 0.115385 0.162162 vt 0.076923 0.108108 vt 0.115385 0.054054 vt 0.153846 0.054054 -vt 0.153846 0.216216 vt 0.961538 0.459459 vt 0.923077 0.540541 vt 0.923077 0.432432 @@ -410,21 +547,6 @@ vt 0.884615 0.432432 vt 0.923077 0.324324 vt 0.846154 0.459459 vt 0.846154 0.405405 -vt 0.884615 0.324324 -vt 0.961538 0.459459 -vt 0.923077 0.540541 -vt 0.923077 0.432432 -vt 1.000000 0.459459 -vt 0.961538 0.513514 -vt 1.000000 0.351351 -vt 0.961538 0.405405 -vt 0.961538 0.351351 -vt 0.884615 0.432432 -vt 0.923077 0.324324 -vt 0.884615 0.540541 -vt 0.846154 0.459459 -vt 0.846154 0.405405 -vt 0.884615 0.324324 vt 0.192308 0.216216 vt -0.000000 0.216216 vt 0.423077 0.216216 @@ -433,17 +555,6 @@ vt 0.192308 1.000000 vt 0.807692 0.837838 vt 0.115385 0.837838 vt 0.576923 0.837838 -vt 0.384615 0.108108 -vt 0.384615 0.108108 -vt 0.538462 -0.000000 -vt 0.384615 0.108108 -vt 0.384615 0.108108 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 vt 0.538462 -0.000000 vt 0.076923 0.162162 vt 0.115385 0.216216 @@ -451,637 +562,158 @@ vt 1.000000 0.513514 vt 1.000000 0.405405 vt 0.846154 0.513514 vt 0.846154 0.351351 -vt 1.000000 0.513514 -vt 1.000000 0.405405 -vt 0.846154 0.513514 -vt 0.846154 0.351351 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.3162 -0.9487 -vn 0.9487 0.3162 0.0000 -vn 0.0000 0.3162 0.9487 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.7071 -0.7071 -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 0.0000 1.0000 -0.0000 -vn -0.9487 0.0000 -0.3162 -vn 0.0000 0.9487 -0.3162 -vn 0.9487 0.0000 -0.3162 -vn 0.0000 -0.9487 -0.3162 -vn 0.0000 0.9487 0.3162 -vn -0.9487 0.0000 0.3162 -vn 0.9487 0.0000 0.3162 -vn 0.0000 -0.9487 0.3162 -vn 0.0000 0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 -s off -f 37/68/22 38/69/22 36/70/22 -f 39/71/23 42/72/23 38/69/23 -f 43/73/24 40/74/24 42/72/24 -f 41/75/25 36/76/25 40/74/25 -f 40/74/24 50/77/24 42/72/24 -f 39/71/26 46/78/26 43/73/26 -f 46/79/24 71/80/24 47/81/24 -f 43/73/27 47/81/27 41/75/27 -f 37/68/22 45/82/22 39/71/22 -f 37/83/28 47/84/28 44/85/28 -f 50/77/29 49/86/29 48/87/29 -f 36/76/30 51/88/30 40/74/30 -f 42/72/31 48/89/31 38/69/31 -f 38/69/22 49/90/22 36/70/22 -f 53/91/32 54/92/32 52/93/32 -f 55/94/33 58/95/33 54/96/33 -f 59/97/34 56/98/34 58/99/34 -f 57/100/35 52/101/35 56/102/35 -f 55/94/36 57/100/36 59/97/36 -f 61/103/35 62/104/35 60/105/35 -f 63/106/32 66/107/32 62/108/32 -f 67/109/33 64/110/33 66/111/33 -f 65/112/34 60/113/34 64/114/34 -f 63/106/36 65/112/36 67/109/36 -f 69/115/36 71/80/36 70/116/36 -f 44/117/22 69/118/22 45/82/22 -f 47/84/25 68/119/25 44/85/25 -f 45/120/23 70/121/23 46/78/23 -f 73/122/22 74/123/22 72/124/22 -f 77/125/25 91/126/25 76/127/25 -f 79/128/24 76/127/24 78/129/24 -f 73/130/25 90/131/25 77/132/25 -f 78/133/29 72/134/29 74/135/29 -f 75/136/36 77/132/36 79/137/36 -f 81/138/22 82/139/22 80/140/22 -f 86/141/23 99/142/23 87/143/23 -f 87/143/24 84/144/24 86/141/24 -f 88/145/37 93/146/37 89/147/37 -f 86/148/29 80/149/29 82/150/29 -f 83/151/36 85/152/36 87/153/36 -f 72/124/25 89/147/25 73/122/25 -f 76/154/25 88/155/25 72/134/25 -f 94/156/25 92/157/25 95/158/25 -f 89/159/38 94/156/38 90/131/38 -f 90/160/39 95/161/39 91/126/39 -f 91/162/40 92/163/40 88/155/40 -f 99/164/41 100/165/41 96/166/41 -f 82/150/23 98/167/23 86/148/23 -f 87/153/23 96/166/23 83/151/23 -f 83/168/23 97/169/23 82/139/23 -f 100/165/23 102/170/23 101/171/23 -f 96/172/42 101/173/42 97/169/42 -f 98/174/43 103/175/43 99/142/43 -f 97/176/44 102/177/44 98/167/44 -f 107/178/23 110/179/23 106/180/23 -f 111/181/24 108/182/24 110/179/24 -f 109/183/25 104/184/25 108/182/25 -f 110/179/29 104/185/29 106/186/29 -f 107/187/36 109/183/36 111/181/36 -f 119/188/22 121/189/22 123/190/22 -f 118/191/30 116/192/30 119/188/30 -f 114/193/45 119/194/45 113/195/45 -f 122/196/46 123/190/46 121/189/46 -f 124/197/31 125/198/31 123/190/31 -f 122/196/24 118/199/24 124/197/24 -f 125/198/22 119/194/22 123/190/22 -f 118/200/24 126/201/24 124/197/24 -f 131/202/24 132/203/24 134/204/24 -f 130/205/31 129/206/31 131/202/31 -f 127/207/46 131/208/46 112/209/46 -f 132/203/45 135/210/45 134/204/45 -f 135/210/30 136/211/30 134/204/30 -f 133/212/22 130/213/22 135/210/22 -f 136/211/24 131/208/24 134/204/24 -f 130/214/22 137/215/22 135/210/22 -f 37/68/22 39/71/22 38/69/22 -f 39/71/23 43/73/23 42/72/23 -f 43/73/24 41/75/24 40/74/24 -f 41/75/25 37/83/25 36/76/25 -f 40/74/24 51/216/24 50/77/24 -f 39/71/26 45/120/26 46/78/26 -f 46/79/24 70/116/24 71/80/24 -f 43/73/27 46/79/27 47/81/27 -f 37/68/22 44/117/22 45/82/22 -f 37/83/28 41/75/28 47/84/28 -f 50/77/29 51/216/29 49/86/29 -f 36/76/30 49/217/30 51/88/30 -f 42/72/31 50/218/31 48/89/31 -f 38/69/22 48/219/22 49/90/22 -f 53/91/32 55/94/32 54/92/32 -f 55/94/33 59/97/33 58/95/33 -f 59/97/34 57/100/34 56/98/34 -f 57/100/35 53/91/35 52/101/35 -f 55/94/36 53/91/36 57/100/36 -f 61/103/35 63/106/35 62/104/35 -f 63/106/32 67/109/32 66/107/32 -f 67/109/33 65/112/33 64/110/33 -f 65/112/34 61/103/34 60/113/34 -f 63/106/36 61/103/36 65/112/36 -f 69/115/36 68/220/36 71/80/36 -f 44/117/22 68/221/22 69/118/22 -f 47/84/25 71/222/25 68/119/25 -f 45/120/23 69/223/23 70/121/23 -f 73/122/22 75/224/22 74/123/22 -f 77/125/25 90/160/25 91/126/25 -f 79/128/24 77/125/24 76/127/24 -f 73/130/25 89/159/25 90/131/25 -f 78/133/29 76/154/29 72/134/29 -f 75/136/36 73/130/36 77/132/36 -f 81/138/22 83/168/22 82/139/22 -f 86/141/23 98/174/23 99/142/23 -f 87/143/24 85/225/24 84/144/24 -f 88/145/37 92/226/37 93/146/37 -f 86/148/29 84/227/29 80/149/29 -f 83/151/36 81/228/36 85/152/36 -f 72/124/25 88/145/25 89/147/25 -f 76/154/25 91/162/25 88/155/25 -f 94/156/25 93/229/25 92/157/25 -f 89/159/38 93/229/38 94/156/38 -f 90/160/39 94/230/39 95/161/39 -f 91/162/40 95/231/40 92/163/40 -f 99/164/41 103/232/41 100/165/41 -f 82/150/23 97/176/23 98/167/23 -f 87/153/23 99/164/23 96/166/23 -f 83/168/23 96/172/23 97/169/23 -f 100/165/23 103/232/23 102/170/23 -f 96/172/42 100/233/42 101/173/42 -f 98/174/43 102/234/43 103/175/43 -f 97/176/44 101/235/44 102/177/44 -f 107/178/23 111/181/23 110/179/23 -f 111/181/24 109/183/24 108/182/24 -f 109/183/25 105/236/25 104/184/25 -f 110/179/29 108/182/29 104/185/29 -f 107/187/36 105/237/36 109/183/36 -f 119/188/22 116/192/22 121/189/22 -f 118/191/30 115/238/30 116/192/30 -f 114/193/45 118/239/45 119/194/45 -f 122/196/46 124/197/46 123/190/46 -f 124/197/31 126/201/31 125/198/31 -f 122/196/24 115/240/24 118/199/24 -f 125/198/22 113/195/22 119/194/22 -f 118/200/24 114/241/24 126/201/24 -f 131/202/24 129/206/24 132/203/24 -f 130/205/31 128/242/31 129/206/31 -f 127/207/46 130/243/46 131/208/46 -f 132/203/45 133/212/45 135/210/45 -f 135/210/30 137/215/30 136/211/30 -f 133/212/22 128/244/22 130/213/22 -f 136/211/24 112/209/24 131/208/24 -f 130/214/22 127/245/22 137/215/22 -l 117 120 -o Cube -v 0.045753 0.237741 0.312500 -v 0.045753 0.737741 0.312500 -v 0.045753 0.237741 0.062500 -v 0.045753 0.737741 0.062500 -v 0.295753 0.237741 0.312500 -v 0.295753 0.737741 0.312500 -v 0.295753 0.237741 0.062500 -v 0.295753 0.737741 0.062500 -v -0.291506 0.316987 -0.062500 -v -0.041506 0.750000 -0.062500 -v -0.291506 0.316987 -0.312500 -v -0.041506 0.750000 -0.312500 -v -0.075000 0.191987 -0.062500 -v 0.175000 0.625000 -0.062500 -v -0.075000 0.191987 -0.312500 -v 0.175000 0.625000 -0.312500 -v 0.079247 0.612741 0.312500 -v -0.170753 1.045753 0.312500 -v 0.079247 0.612741 0.062500 -v -0.170753 1.045753 0.062500 -v 0.295753 0.737741 0.312500 -v 0.045753 1.170753 0.312500 -v 0.295753 0.737741 0.062500 -v 0.045753 1.170753 0.062500 -v -0.075000 0.625000 -0.062500 -v -0.075000 1.125000 -0.062500 -v -0.075000 0.625000 -0.312500 -v -0.075000 1.125000 -0.312500 -v 0.175000 0.625000 -0.062500 -v 0.175000 1.125000 -0.062500 -v 0.175000 0.625000 -0.312500 -v 0.175000 1.125000 -0.312500 -v -0.125000 1.000000 0.250000 -v 0.125000 1.000000 0.250000 -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -v -0.125000 1.250000 -0.250000 -v -0.125000 1.250000 0.250000 -v 0.125000 1.250000 0.250000 -v 0.125000 1.250000 -0.250000 -v -0.187500 1.250000 0.375000 -v 0.187500 1.250000 0.375000 -v -0.187500 1.250000 -0.375000 -v 0.187500 1.250000 -0.375000 -v -0.187500 1.750000 -0.375000 -v -0.187500 1.750000 0.375000 -v 0.187500 1.750000 0.375000 -v 0.187500 1.750000 -0.375000 -v 0.232576 1.266670 -0.066987 -v 0.041065 1.427367 -0.500000 -v 0.398429 1.127502 -0.191987 -v 0.206918 1.288199 -0.625000 -v 0.393273 1.458181 -0.066987 -v 0.201762 1.618878 -0.500000 -v 0.559126 1.319013 -0.191987 -v 0.367615 1.479710 -0.625000 -v 0.206918 1.288199 -0.375000 -v -0.176104 1.609593 -0.375000 -v 0.206918 1.288199 -0.625000 -v -0.176104 1.609593 -0.625000 -v 0.367615 1.479710 -0.375000 -v -0.015407 1.801104 -0.375000 -v 0.367615 1.479710 -0.625000 -v -0.015407 1.801104 -0.625000 -v 0.125000 1.871693 0.950891 -v 0.125000 1.438680 0.700891 -v 0.125000 1.996693 0.734384 -v 0.125000 1.563680 0.484384 -v -0.125000 1.871693 0.950891 -v -0.125000 1.438680 0.700891 -v -0.125000 1.996693 0.734384 -v -0.125000 1.563680 0.484384 -v 0.125000 1.438680 0.700891 -v 0.125000 1.525504 0.208487 -v 0.125000 1.684882 0.744303 -v 0.125000 1.771706 0.251899 -v -0.125000 1.438680 0.700891 -v -0.125000 1.525504 0.208487 -v -0.125000 1.684882 0.744303 -v -0.125000 1.771706 0.251899 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.8660 0.5000 0.0000 -vn 0.8660 -0.5000 0.0000 -vn -0.5000 -0.8660 0.0000 -vn 0.5000 0.8660 0.0000 -vn -0.8660 -0.5000 0.0000 -vn 0.8660 0.5000 0.0000 -vn 0.5000 -0.8660 0.0000 -vn -0.5000 0.8660 0.0000 -vn -0.6428 -0.7660 0.0000 -vn 0.6634 -0.5567 -0.5000 -vn 0.6428 0.7660 -0.0000 -vn -0.6634 0.5567 0.5000 -vn 0.3830 -0.3214 0.8660 -vn -0.3830 0.3214 -0.8660 -vn 0.7660 -0.6428 0.0000 -vn -0.7660 0.6428 0.0000 -vn 0.0000 0.5000 -0.8660 -vn 0.0000 -0.5000 0.8660 -vn 0.0000 0.8660 0.5000 -vn 0.0000 -0.8660 -0.5000 -vn 0.0000 0.9848 0.1736 -vn 0.0000 -0.9848 -0.1736 -vn 0.0000 -0.1736 0.9848 -vn 0.0000 0.1736 -0.9848 -s off -f 139//47 140//47 138//47 -f 141//48 144//48 140//48 -f 145//49 142//49 144//49 -f 143//50 138//50 142//50 -f 144//51 138//51 140//51 -f 141//52 143//52 145//52 -f 147//53 148//53 146//53 -f 148//48 153//48 152//48 -f 153//54 150//54 152//54 -f 151//50 146//50 150//50 -f 152//55 146//55 148//55 -f 149//56 151//56 153//56 -f 155//57 156//57 154//57 -f 157//48 160//48 156//48 -f 161//58 158//58 160//58 -f 158//50 155//50 154//50 -f 160//59 154//59 156//59 -f 157//60 159//60 161//60 -f 163//47 164//47 162//47 -f 165//48 168//48 164//48 -f 169//49 166//49 168//49 -f 167//50 162//50 166//50 -f 168//51 162//51 164//51 -f 165//52 167//52 169//52 -f 172//51 171//51 170//51 -f 176//52 174//52 175//52 -f 172//48 177//48 173//48 -f 171//50 175//50 170//50 -f 173//49 176//49 171//49 -f 170//47 174//47 172//47 -f 180//51 179//51 178//51 -f 184//52 182//52 183//52 -f 181//49 184//49 179//49 -f 178//47 182//47 180//47 -f 180//48 185//48 181//48 -f 179//50 183//50 178//50 -f 187//61 188//61 186//61 -f 189//62 192//62 188//62 -f 192//63 191//63 190//63 -f 191//64 186//64 190//64 -f 188//65 190//65 186//65 -f 189//66 191//66 193//66 -f 195//61 196//61 194//61 -f 197//48 200//48 196//48 -f 201//63 198//63 200//63 -f 198//50 195//50 194//50 -f 200//67 194//67 196//67 -f 197//68 199//68 201//68 -f 203//49 204//49 202//49 -f 205//69 208//69 204//69 -f 209//47 206//47 208//47 -f 207//70 202//70 206//70 -f 208//71 202//71 204//71 -f 205//72 207//72 209//72 -f 211//49 212//49 210//49 -f 213//73 216//73 212//73 -f 216//47 215//47 214//47 -f 215//74 210//74 214//74 -f 216//75 210//75 212//75 -f 213//76 215//76 217//76 -f 139//47 141//47 140//47 -f 141//48 145//48 144//48 -f 145//49 143//49 142//49 -f 143//50 139//50 138//50 -f 144//51 142//51 138//51 -f 141//52 139//52 143//52 -f 147//53 149//53 148//53 -f 148//48 149//48 153//48 -f 153//54 151//54 150//54 -f 151//50 147//50 146//50 -f 152//55 150//55 146//55 -f 149//56 147//56 151//56 -f 155//57 157//57 156//57 -f 157//48 161//48 160//48 -f 161//58 159//58 158//58 -f 158//50 159//50 155//50 -f 160//59 158//59 154//59 -f 157//60 155//60 159//60 -f 163//47 165//47 164//47 -f 165//48 169//48 168//48 -f 169//49 167//49 166//49 -f 167//50 163//50 162//50 -f 168//51 166//51 162//51 -f 165//52 163//52 167//52 -f 172//51 173//51 171//51 -f 176//52 177//52 174//52 -f 172//48 174//48 177//48 -f 171//50 176//50 175//50 -f 173//49 177//49 176//49 -f 170//47 175//47 174//47 -f 180//51 181//51 179//51 -f 184//52 185//52 182//52 -f 181//49 185//49 184//49 -f 178//47 183//47 182//47 -f 180//48 182//48 185//48 -f 179//50 184//50 183//50 -f 187//61 189//61 188//61 -f 189//62 193//62 192//62 -f 192//63 193//63 191//63 -f 191//64 187//64 186//64 -f 188//65 192//65 190//65 -f 189//66 187//66 191//66 -f 195//61 197//61 196//61 -f 197//48 201//48 200//48 -f 201//63 199//63 198//63 -f 198//50 199//50 195//50 -f 200//67 198//67 194//67 -f 197//68 195//68 199//68 -f 203//49 205//49 204//49 -f 205//69 209//69 208//69 -f 209//47 207//47 206//47 -f 207//70 203//70 202//70 -f 208//71 206//71 202//71 -f 205//72 203//72 207//72 -f 211//49 213//49 212//49 -f 213//73 217//73 216//73 -f 216//47 217//47 215//47 -f 215//74 211//74 210//74 -f 216//75 214//75 210//75 -f 213//76 211//76 215//76 -o FumoHead -v -0.250000 0.750000 -0.250000 -v -0.250000 0.750000 0.250000 -v 0.250000 0.750000 0.250000 -v 0.250000 0.750000 -0.250000 -v -0.250000 1.250000 -0.250000 -v -0.250000 1.250000 0.250000 -v 0.250000 1.250000 0.250000 -v 0.250000 1.250000 -0.250000 -v -0.281250 0.718750 -0.281250 -v -0.281250 0.718750 0.281250 -v 0.281250 0.718750 0.281250 -v 0.281250 0.718750 -0.281250 -v -0.281250 1.281250 -0.281250 -v -0.281250 1.281250 0.281250 -v 0.281250 1.281250 0.281250 -v 0.281250 1.281250 -0.281250 -v -0.281250 1.093750 -0.281250 -v -0.281250 1.093750 0.281250 -v 0.281250 1.093750 0.281250 -v 0.281250 1.093750 -0.281250 -v -0.218750 1.093750 -0.468750 -v 0.218750 1.093750 -0.468750 -v -0.218750 1.093750 0.468750 -v 0.218750 1.093750 0.468750 -v 0.468750 1.093750 0.218750 -v 0.468750 1.093750 -0.218750 -v -0.468750 1.093750 -0.218750 -v -0.468750 1.093750 0.218750 -v -0.281250 1.156250 0.281250 -v 0.281250 1.156250 0.281250 -v 0.281250 1.156250 -0.281250 -v -0.281250 1.156250 -0.281250 -v 0.218750 1.156250 -0.468750 -v -0.218750 1.156250 -0.468750 -v -0.218750 1.156250 0.468750 -v 0.218750 1.156250 0.468750 -v 0.468750 1.156250 0.218750 -v 0.468750 1.156250 -0.218750 -v -0.468750 1.156250 -0.218750 -v -0.468750 1.156250 0.218750 -v 0.156250 1.156250 -0.281250 -v 0.093750 1.156250 -0.406250 -v 0.093750 1.281250 -0.406250 -v 0.156250 1.218750 -0.281250 -v 0.156250 1.156250 -0.281250 -v 0.218750 1.156250 -0.406250 -v 0.218750 1.281250 -0.406250 -v 0.156250 1.218750 -0.281250 -vt 0.375000 0.750000 -vt 0.250000 1.000000 -vt 0.250000 0.750000 -vt 0.125000 0.750000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 0.750000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt -0.000000 0.750000 -vt -0.000000 0.500000 -vt 0.500000 0.500000 -vt 0.375000 0.750000 -vt 0.875000 0.750000 -vt 0.750000 1.000000 -vt 0.750000 0.750000 -vt 0.625000 0.750000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 0.750000 -vt 0.750000 0.500000 -vt 0.625000 0.500000 -vt 0.500000 0.750000 -vt 0.500000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.750000 -vt 0.734375 0.343750 -vt 0.625000 0.250000 -vt 0.750000 0.250000 -vt 0.734375 0.343750 -vt 0.625000 0.250000 -vt 0.750000 0.250000 -vt 0.734375 0.343750 -vt 0.625000 0.250000 -vt 0.750000 0.250000 -vt 0.734375 0.343750 -vt 0.625000 0.250000 -vt 0.750000 0.250000 -vt 0.796875 0.218750 -vt 0.796875 0.218750 -vt 0.796875 0.218750 -vt 0.796875 0.218750 -vt 0.625000 0.468750 -vt 0.734375 0.375000 -vt 0.750000 0.468750 -vt 0.625000 0.468750 -vt 0.734375 0.375000 -vt 0.750000 0.468750 -vt 0.625000 0.468750 -vt 0.734375 0.375000 -vt 0.750000 0.468750 -vt 0.625000 0.468750 -vt 0.734375 0.375000 -vt 0.750000 0.468750 -vt 0.796875 0.500000 -vt 0.796875 0.500000 -vt 0.796875 0.500000 -vt 0.796875 0.500000 -vt 0.640625 0.375000 -vt 0.640625 0.343750 -vt 0.640625 0.375000 -vt 0.640625 0.343750 -vt 0.796875 0.343750 -vt 0.796875 0.343750 -vt 0.796875 0.343750 -vt 0.640625 0.375000 -vt 0.640625 0.343750 -vt 0.640625 0.375000 -vt 0.640625 0.343750 -vt 0.796875 0.343750 -vt 0.656250 0.187500 -vt 0.625000 0.218750 -vt 0.625000 0.187500 -vt 0.656250 0.187500 -vt 0.625000 0.218750 -vt 0.625000 0.187500 -vt 0.375000 1.000000 -vt 0.500000 0.750000 -vt 0.875000 1.000000 -vt 1.000000 0.750000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.656250 0.250000 -vt 0.656250 0.250000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.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 0.8944 0.0000 0.4472 -vn 0.8944 0.0000 -0.4472 -s off -f 218/246/77 220/247/77 219/248/77 -f 224/249/78 222/250/78 223/251/78 -f 218/252/79 225/253/79 221/254/79 -f 220/255/80 223/256/80 219/257/80 -f 221/254/81 224/249/81 220/255/81 -f 219/258/82 222/259/82 218/252/82 -f 226/260/77 228/261/77 227/262/77 -f 232/263/78 230/264/78 231/265/78 -f 226/266/79 233/267/79 229/268/79 -f 228/269/80 231/270/80 227/271/80 -f 229/268/81 232/263/81 228/269/81 -f 227/272/82 230/273/82 226/266/82 -f 238/274/77 237/275/77 234/276/77 -f 241/277/77 235/278/77 236/279/77 -f 243/280/77 236/281/77 237/282/77 -f 245/283/77 234/284/77 235/285/77 -f 235/285/77 240/286/77 245/283/77 -f 236/279/77 242/287/77 241/277/77 -f 237/282/77 239/288/77 243/280/77 -f 234/276/77 244/289/77 238/274/77 -f 248/290/78 251/291/78 249/292/78 -f 246/293/78 253/294/78 247/295/78 -f 247/296/78 255/297/78 248/298/78 -f 249/299/78 257/300/78 246/301/78 -f 246/301/78 257/300/78 252/302/78 -f 247/295/78 253/294/78 254/303/78 -f 248/298/78 255/297/78 250/304/78 -f 249/292/78 251/291/78 256/305/78 -f 241/277/80 252/306/80 240/307/80 -f 238/274/79 250/308/79 239/309/79 -f 239/310/83 255/297/83 243/280/83 -f 244/311/84 251/291/84 238/274/84 -f 240/312/85 257/300/85 245/283/85 -f 245/283/82 256/313/82 244/314/82 -f 243/280/81 254/315/81 242/316/81 -f 242/317/86 253/294/86 241/277/86 -f 263/318/87 265/319/87 262/320/87 -f 259/321/88 261/322/88 258/323/88 -f 218/246/77 221/324/77 220/247/77 -f 224/249/78 225/253/78 222/250/78 -f 218/252/79 222/259/79 225/253/79 -f 220/255/80 224/249/80 223/256/80 -f 221/254/81 225/253/81 224/249/81 -f 219/258/82 223/325/82 222/259/82 -f 226/260/77 229/326/77 228/261/77 -f 232/263/78 233/267/78 230/264/78 -f 226/266/79 230/273/79 233/267/79 -f 228/269/80 232/263/80 231/270/80 -f 229/268/81 233/267/81 232/263/81 -f 227/272/82 231/327/82 230/273/82 -f 238/274/77 239/309/77 237/275/77 -f 241/277/77 240/307/77 235/278/77 -f 243/280/77 242/316/77 236/281/77 -f 245/283/77 244/314/77 234/284/77 -f 248/290/78 250/308/78 251/291/78 -f 246/293/78 252/306/78 253/294/78 -f 247/296/78 254/315/78 255/297/78 -f 249/299/78 256/313/78 257/300/78 -f 241/277/80 253/294/80 252/306/80 -f 238/274/79 251/291/79 250/308/79 -f 239/310/83 250/328/83 255/297/83 -f 244/311/84 256/329/84 251/291/84 -f 240/312/85 252/330/85 257/300/85 -f 245/283/82 257/300/82 256/313/82 -f 243/280/81 255/297/81 254/315/81 -f 242/317/86 254/331/86 253/294/86 -f 263/318/87 264/332/87 265/319/87 -f 259/321/88 260/333/88 261/322/88 +s 0 +f 106/41/43 107/42/43 105/43/43 +f 108/44/44 111/45/44 107/42/44 +f 112/46/45 109/47/45 111/45/45 +f 110/48/46 105/49/46 109/47/46 +f 109/47/45 119/50/45 111/45/45 +f 108/44/47 115/51/47 112/46/47 +f 115/52/45 140/53/45 116/54/45 +f 112/46/48 116/54/48 110/48/48 +f 106/41/43 114/55/43 108/44/43 +f 106/56/49 116/57/49 113/58/49 +f 119/50/50 118/59/50 117/60/50 +f 105/49/51 120/61/51 109/47/51 +f 111/45/52 117/62/52 107/42/52 +f 107/42/43 118/63/43 105/43/43 +f 122/64/53 123/65/53 121/66/53 +f 124/67/54 127/68/54 123/69/54 +f 128/70/55 125/71/55 127/72/55 +f 126/73/56 121/43/56 125/74/56 +f 124/67/57 126/73/57 128/70/57 +f 130/64/56 131/65/56 129/66/56 +f 132/67/53 135/68/53 131/69/53 +f 136/70/54 133/71/54 135/72/54 +f 134/73/55 129/43/55 133/74/55 +f 132/67/57 134/73/57 136/70/57 +f 138/75/57 140/53/57 139/76/57 +f 113/77/43 138/78/43 114/55/43 +f 116/57/46 137/79/46 113/58/46 +f 114/80/44 139/81/44 115/51/44 +f 142/82/43 143/60/43 141/83/43 +f 146/83/46 160/84/46 145/82/46 +f 148/60/45 145/82/45 147/85/45 +f 142/83/46 159/84/46 146/82/46 +f 147/60/50 141/82/50 143/85/50 +f 144/60/57 146/82/57 148/85/57 +f 150/60/43 151/82/43 149/85/43 +f 155/83/44 168/84/44 156/82/44 +f 156/82/45 153/60/45 155/83/45 +f 157/86/58 162/87/58 158/84/58 +f 155/82/50 149/60/50 151/83/50 +f 152/82/57 154/60/57 156/83/57 +f 141/83/46 158/84/46 142/82/46 +f 145/83/46 157/84/46 141/82/46 +f 163/87/46 161/88/46 164/89/46 +f 158/86/59 163/87/59 159/84/59 +f 159/86/60 164/87/60 160/84/60 +f 160/86/61 161/87/61 157/84/61 +f 168/86/62 169/87/62 165/84/62 +f 151/83/44 167/84/44 155/82/44 +f 156/83/44 165/84/44 152/82/44 +f 152/83/44 166/84/44 151/82/44 +f 169/87/44 171/88/44 170/89/44 +f 165/86/63 170/87/63 166/84/63 +f 167/86/64 172/87/64 168/84/64 +f 166/86/65 171/87/65 167/84/65 +f 176/90/44 179/91/44 175/92/44 +f 180/93/45 177/94/45 179/91/45 +f 178/95/46 173/96/46 177/94/46 +f 179/91/50 173/97/50 175/98/50 +f 176/61/57 178/95/57 180/93/57 +f 188/99/43 190/100/43 192/101/43 +f 187/102/51 185/103/51 188/99/51 +f 183/104/66 188/105/66 182/106/66 +f 191/107/67 192/101/67 190/100/67 +f 193/108/52 194/109/52 192/101/52 +f 191/107/45 187/110/45 193/108/45 +f 194/109/43 188/105/43 192/101/43 +f 187/111/45 195/66/45 193/108/45 +f 200/99/45 201/100/45 203/101/45 +f 199/102/52 198/103/52 200/99/52 +f 196/104/67 200/105/67 181/106/67 +f 201/100/66 204/108/66 203/101/66 +f 204/108/51 205/109/51 203/101/51 +f 202/107/43 199/110/43 204/108/43 +f 205/109/45 200/105/45 203/101/45 +f 199/111/43 206/66/43 204/108/43 +f 106/41/43 108/44/43 107/42/43 +f 108/44/44 112/46/44 111/45/44 +f 112/46/45 110/48/45 109/47/45 +f 110/48/46 106/56/46 105/49/46 +f 109/47/45 120/112/45 119/50/45 +f 108/44/47 114/80/47 115/51/47 +f 115/52/45 139/76/45 140/53/45 +f 112/46/48 115/52/48 116/54/48 +f 106/41/43 113/77/43 114/55/43 +f 106/56/49 110/48/49 116/57/49 +f 119/50/50 120/112/50 118/59/50 +f 105/49/51 118/113/51 120/61/51 +f 111/45/52 119/114/52 117/62/52 +f 107/42/43 117/115/43 118/63/43 +f 122/64/53 124/67/53 123/65/53 +f 124/67/54 128/70/54 127/68/54 +f 128/70/55 126/73/55 125/71/55 +f 126/73/56 122/64/56 121/43/56 +f 124/67/57 122/64/57 126/73/57 +f 130/64/56 132/67/56 131/65/56 +f 132/67/53 136/70/53 135/68/53 +f 136/70/54 134/73/54 133/71/54 +f 134/73/55 130/64/55 129/43/55 +f 132/67/57 130/64/57 134/73/57 +f 138/75/57 137/116/57 140/53/57 +f 113/77/43 137/117/43 138/78/43 +f 116/57/46 140/118/46 137/79/46 +f 114/80/44 138/119/44 139/81/44 +f 142/82/43 144/85/43 143/60/43 +f 146/83/46 159/86/46 160/84/46 +f 148/60/45 146/83/45 145/82/45 +f 142/83/46 158/86/46 159/84/46 +f 147/60/50 145/83/50 141/82/50 +f 144/60/57 142/83/57 146/82/57 +f 150/60/43 152/83/43 151/82/43 +f 155/83/44 167/86/44 168/84/44 +f 156/82/45 154/85/45 153/60/45 +f 157/86/58 161/120/58 162/87/58 +f 155/82/50 153/85/50 149/60/50 +f 152/82/57 150/85/57 154/60/57 +f 141/83/46 157/86/46 158/84/46 +f 145/83/46 160/86/46 157/84/46 +f 163/87/46 162/120/46 161/88/46 +f 158/86/59 162/120/59 163/87/59 +f 159/86/60 163/120/60 164/87/60 +f 160/86/61 164/120/61 161/87/61 +f 168/86/62 172/120/62 169/87/62 +f 151/83/44 166/86/44 167/84/44 +f 156/83/44 168/86/44 165/84/44 +f 152/83/44 165/86/44 166/84/44 +f 169/87/44 172/120/44 171/88/44 +f 165/86/63 169/120/63 170/87/63 +f 167/86/64 171/120/64 172/87/64 +f 166/86/65 170/120/65 171/87/65 +f 176/90/44 180/93/44 179/91/44 +f 180/93/45 178/95/45 177/94/45 +f 178/95/46 174/121/46 173/96/46 +f 179/91/50 177/94/50 173/97/50 +f 176/61/57 174/122/57 178/95/57 +f 188/99/43 185/103/43 190/100/43 +f 187/102/51 184/123/51 185/103/51 +f 183/104/66 187/124/66 188/105/66 +f 191/107/67 193/108/67 192/101/67 +f 193/108/52 195/66/52 194/109/52 +f 191/107/45 184/125/45 187/110/45 +f 194/109/43 182/106/43 188/105/43 +f 187/111/45 183/126/45 195/66/45 +f 200/99/45 198/103/45 201/100/45 +f 199/102/52 197/123/52 198/103/52 +f 196/104/67 199/124/67 200/105/67 +f 201/100/66 202/107/66 204/108/66 +f 204/108/51 206/66/51 205/109/51 +f 202/107/43 197/125/43 199/110/43 +f 205/109/45 181/106/45 200/105/45 +f 199/111/43 196/126/43 206/66/43 +l 186 189 o Fumo v -0.390165 0.375000 -0.213388 v -0.213388 0.375000 -0.390165 @@ -1203,6 +835,44 @@ v -0.070312 0.669481 -0.463916 v -0.070312 0.533647 -0.427519 v 0.070312 0.533647 -0.427519 v 0.070312 0.669481 -0.463916 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.2588 0.9659 +vn 0.2588 -0.0000 -0.9659 +vn 0.9659 -0.0000 -0.2588 +vn -0.2588 -0.0000 -0.9659 +vn -0.9659 -0.0000 -0.2588 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 0.8944 0.4472 +vn -0.4472 0.8944 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.2588 -0.0000 0.9659 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.4472 0.8944 -0.0000 +vn 0.9659 -0.0000 0.2588 +vn 0.3162 0.8944 0.3162 +vn -0.0000 0.8944 -0.4472 +vn -0.3162 0.8944 -0.3162 +vn 0.3162 0.8944 -0.3162 +vn -0.3162 0.8944 0.3162 +vn -0.0000 0.2588 -0.9659 +vn 0.3162 -0.8944 0.3162 +vn -0.0000 -0.8944 0.4472 +vn -0.0000 0.9659 0.2588 +vn -0.0000 -0.9659 -0.2588 +vn -0.0000 -0.2588 0.9659 +vn -0.3162 -0.8944 -0.3162 +vn -0.4472 -0.8944 -0.0000 +vn 0.4472 -0.8944 -0.0000 +vn -0.0000 -0.8944 -0.4472 +vn -0.9659 -0.0000 0.2588 +vn 0.2588 -0.0000 0.9659 +vn 0.3162 -0.8944 -0.3162 +vn -0.3162 -0.8944 0.3162 +vn -0.0000 0.9659 -0.2588 +vn -0.0000 -0.9659 0.2588 +vn -0.0000 -0.2588 -0.9659 vt 0.343750 0.437500 vt 0.312500 0.281250 vt 0.312500 0.437500 @@ -1212,13 +882,10 @@ vt 0.281250 0.500000 vt 0.562500 0.187500 vt 0.593750 0.437500 vt 0.562500 0.437500 -vt 0.562500 0.437500 vt 0.593750 0.500000 -vt 0.593750 0.437500 vt 0.531250 0.437500 vt 0.500000 0.187500 vt 0.500000 0.437500 -vt 0.531250 0.437500 vt 0.562500 0.500000 vt 0.531250 0.500000 vt 0.593750 0.187500 @@ -1227,83 +894,25 @@ vt 0.796875 0.375000 vt 0.859375 0.500000 vt 0.796875 0.500000 vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.796875 0.375000 vt 0.531250 0.187500 -vt 0.500000 0.187500 -vt 0.500000 0.437500 vt 0.125000 0.375000 vt 0.187500 0.500000 vt 0.125000 0.500000 vt 0.062500 0.375000 -vt 0.125000 0.500000 vt 0.062500 0.500000 vt 0.125000 0.187500 vt 0.062500 0.187500 vt 0.250000 0.187500 vt 0.187500 0.375000 vt 0.187500 0.187500 -vt 0.125000 0.375000 vt -0.000000 0.375000 vt -0.000000 0.187500 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.593750 0.500000 -vt 0.562500 0.437500 -vt 0.593750 0.437500 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.859375 0.500000 -vt 0.796875 0.375000 -vt 0.859375 0.375000 -vt 0.562500 0.187500 -vt 0.531250 0.187500 -vt 0.593750 0.437500 vt 0.625000 0.187500 -vt 0.593750 0.187500 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.859375 0.500000 -vt 0.796875 0.375000 -vt 0.859375 0.375000 -vt 0.281250 0.437500 -vt 0.312500 0.500000 -vt 0.281250 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.859375 0.500000 -vt 0.796875 0.375000 -vt 0.796875 0.500000 -vt 0.312500 0.281250 -vt 0.343750 0.437500 -vt 0.312500 0.437500 vt 0.281250 0.281250 vt 0.343750 0.281250 vt 0.375000 0.437500 -vt 0.343750 0.437500 -vt 0.312500 0.500000 -vt 0.312500 0.437500 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.375000 vt 0.250000 0.281250 vt 0.250000 0.437500 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.375000 vt 0.406250 0.437500 vt 0.437500 0.500000 vt 0.406250 0.500000 @@ -1311,304 +920,872 @@ vt 0.437500 0.437500 vt 0.468750 0.281250 vt 0.468750 0.437500 vt 0.406250 0.281250 -vt 0.500000 0.437500 -vt 0.468750 0.437500 -vt 0.437500 0.500000 -vt 0.437500 0.437500 vt 0.375000 0.281250 -vt 0.375000 0.437500 -vt 0.562500 0.500000 -vt 0.531250 0.500000 -vt 0.562500 0.437500 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.281250 0.281250 -vt 0.375000 0.437500 -vt 0.343750 0.281250 -vt 0.312500 0.500000 -vt 0.343750 0.437500 -vt 0.312500 0.437500 -vt 0.250000 0.437500 -vt 0.250000 0.281250 -vt 0.437500 0.500000 -vt 0.406250 0.437500 -vt 0.406250 0.500000 -vt 0.437500 0.437500 -vt 0.468750 0.281250 vt 0.437500 0.281250 -vt 0.406250 0.281250 -vt 0.500000 0.437500 -vt 0.468750 0.437500 -vt 0.437500 0.500000 -vt 0.468750 0.437500 -vt 0.437500 0.437500 -vt 0.375000 0.281250 -vt 0.375000 0.437500 -vt 0.562500 0.500000 -vt 0.625000 0.187500 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.187500 0.375000 vt 0.250000 0.375000 -vt 0.796875 0.375000 -vt 0.562500 0.500000 -vt 0.796875 0.375000 -vt 0.796875 0.500000 -vt 0.625000 0.437500 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.796875 0.500000 -vt 0.796875 0.375000 -vt 0.859375 0.375000 -vt 0.375000 0.281250 -vt 0.343750 0.500000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.859375 0.500000 -vt 0.859375 0.500000 -vt 0.437500 0.281250 -vt 0.500000 0.281250 -vt 0.468750 0.500000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.375000 0.281250 vt 0.343750 0.500000 vt 0.500000 0.281250 vt 0.468750 0.500000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.2588 0.9659 -vn 0.2588 0.0000 -0.9659 -vn 0.9659 0.0000 -0.2588 -vn -0.2588 0.0000 -0.9659 -vn -0.9659 0.0000 -0.2588 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 0.8944 0.4472 -vn -0.4472 0.8944 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.2588 0.0000 0.9659 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 0.4472 0.8944 0.0000 -vn 0.9659 0.0000 0.2588 -vn 0.3162 0.8944 0.3162 -vn 0.0000 0.8944 -0.4472 -vn -0.3162 0.8944 -0.3162 -vn 0.3162 0.8944 -0.3162 -vn -0.3162 0.8944 0.3162 -vn 0.0000 0.2588 -0.9659 -vn 0.3162 -0.8944 0.3162 -vn 0.0000 -0.8944 0.4472 -vn 0.0000 0.9659 0.2588 -vn 0.0000 -0.9659 -0.2588 -vn 0.0000 -0.2588 0.9659 -vn -0.3162 -0.8944 -0.3162 -vn -0.4472 -0.8944 0.0000 -vn 0.4472 -0.8944 0.0000 -vn 0.0000 -0.8944 -0.4472 -vn -0.9659 0.0000 0.2588 -vn 0.2588 0.0000 0.9659 -vn 0.3162 -0.8944 -0.3162 -vn -0.3162 -0.8944 0.3162 -vn 0.0000 0.9659 -0.2588 -vn 0.0000 -0.9659 0.2588 -vn 0.0000 -0.2588 -0.9659 -s off -f 371/334/89 377/335/89 373/336/89 -f 371/337/90 372/338/90 370/339/90 -f 294/340/91 276/341/91 277/342/91 -f 368/343/92 366/344/92 367/345/92 -f 363/346/93 368/347/93 362/348/93 -f 275/349/94 276/350/94 274/351/94 -f 295/352/95 274/353/95 276/341/95 -f 271/354/96 272/355/96 273/356/96 -f 281/357/97 278/358/97 280/359/97 -f 297/360/98 277/342/98 275/349/98 -f 296/361/99 275/349/99 274/362/99 -f 284/363/95 283/364/95 282/365/95 -f 288/366/98 286/367/98 287/368/98 -f 285/369/89 288/366/89 283/370/89 -f 282/371/100 286/372/100 284/373/100 -f 284/373/101 289/374/101 285/369/101 -f 283/370/102 287/375/102 282/376/102 -f 290/377/103 293/378/103 291/379/103 -f 294/380/104 296/381/104 295/382/104 -f 306/383/105 309/384/105 307/385/105 -f 303/386/106 304/387/106 305/388/106 -f 363/346/98 366/389/98 369/390/98 -f 364/391/95 368/392/95 367/393/95 -f 310/394/107 313/395/107 311/396/107 -f 314/397/108 317/398/108 315/399/108 -f 319/400/109 320/401/109 321/402/109 -f 324/403/110 323/404/110 322/405/110 -f 266/406/111 269/407/111 268/408/111 -f 348/409/112 347/410/112 349/411/112 -f 333/412/89 323/413/89 325/414/89 -f 330/415/113 325/414/113 324/403/113 -f 332/416/114 322/417/114 323/413/114 -f 332/418/115 330/419/115 331/420/115 -f 298/421/116 301/422/116 300/423/116 -f 350/424/117 353/425/117 352/426/117 -f 329/427/118 326/428/118 327/429/118 -f 331/430/100 324/403/100 322/431/100 -f 334/432/119 337/433/119 336/434/119 -f 340/435/110 339/436/110 338/437/110 -f 341/438/89 344/439/89 339/440/89 -f 342/441/113 341/438/113 340/435/113 -f 344/439/114 338/442/114 339/440/114 -f 344/443/115 342/444/115 343/445/115 -f 343/446/100 340/435/100 338/447/100 -f 364/448/120 363/346/120 362/449/120 -f 364/391/121 366/389/121 365/450/121 -f 361/451/122 358/452/122 359/453/122 -f 357/454/123 354/455/123 355/456/123 -f 373/336/124 374/457/124 372/338/124 -f 370/458/125 376/459/125 371/334/125 -f 374/460/126 376/461/126 375/462/126 -f 370/463/100 374/457/100 375/464/100 -f 379/465/90 380/466/90 378/467/90 -f 381/468/89 384/469/89 385/470/89 -f 381/468/124 382/471/124 380/466/124 -f 378/472/125 384/469/125 379/473/125 -f 382/474/126 384/475/126 383/476/126 -f 380/466/100 383/477/100 378/478/100 -f 371/334/89 376/459/89 377/335/89 -f 371/337/90 373/336/90 372/338/90 -f 294/340/91 295/352/91 276/341/91 -f 368/343/92 369/479/92 366/344/92 -f 363/346/93 369/390/93 368/347/93 -f 275/349/94 277/342/94 276/350/94 -f 295/352/95 296/480/95 274/353/95 -f 271/354/96 270/481/96 272/355/96 -f 281/357/97 279/482/97 278/358/97 -f 297/360/98 294/340/98 277/342/98 -f 296/361/99 297/360/99 275/349/99 -f 284/363/95 285/483/95 283/364/95 -f 288/366/98 289/374/98 286/367/98 -f 285/369/89 289/374/89 288/366/89 -f 282/371/100 287/484/100 286/372/100 -f 284/373/101 286/372/101 289/374/101 -f 283/370/102 288/366/102 287/375/102 -f 290/377/103 292/485/103 293/378/103 -f 294/380/104 297/486/104 296/381/104 -f 306/383/105 308/487/105 309/384/105 -f 303/386/106 302/488/106 304/387/106 -f 363/346/98 365/450/98 366/389/98 -f 364/391/95 362/489/95 368/392/95 -f 310/394/107 312/490/107 313/395/107 -f 314/397/108 316/491/108 317/398/108 -f 319/400/109 318/492/109 320/401/109 -f 324/403/110 325/414/110 323/404/110 -f 266/406/111 267/493/111 269/407/111 -f 348/409/112 346/494/112 347/410/112 -f 333/412/89 332/416/89 323/413/89 -f 330/415/113 333/412/113 325/414/113 -f 332/416/114 331/495/114 322/417/114 -f 332/418/115 333/496/115 330/419/115 -f 298/421/116 299/497/116 301/422/116 -f 350/424/117 351/498/117 353/425/117 -f 329/427/118 328/499/118 326/428/118 -f 331/430/100 330/415/100 324/403/100 -f 334/432/119 335/500/119 337/433/119 -f 340/435/110 341/438/110 339/436/110 -f 341/438/89 345/501/89 344/439/89 -f 342/441/113 345/501/113 341/438/113 -f 344/439/114 343/502/114 338/442/114 -f 344/443/115 345/503/115 342/444/115 -f 343/446/100 342/441/100 340/435/100 -f 364/448/120 365/450/120 363/346/120 -f 364/391/121 367/393/121 366/389/121 -f 361/451/122 360/504/122 358/452/122 -f 357/454/123 356/505/123 354/455/123 -f 373/336/124 377/335/124 374/457/124 -f 370/458/125 375/506/125 376/459/125 -f 374/460/126 377/507/126 376/461/126 -f 370/463/100 372/338/100 374/457/100 -f 379/465/90 381/468/90 380/466/90 -f 381/468/89 379/473/89 384/469/89 -f 381/468/124 385/470/124 382/471/124 -f 378/472/125 383/508/125 384/469/125 -f 382/474/126 385/509/126 384/475/126 -f 380/466/100 382/471/100 383/477/100 +s 0 +f 312/127/68 318/128/68 314/129/68 +f 312/130/69 313/131/69 311/132/69 +f 235/133/70 217/134/70 218/135/70 +f 309/135/71 307/136/71 308/134/71 +f 304/137/72 309/138/72 303/139/72 +f 216/137/73 217/140/73 215/141/73 +f 236/142/74 215/143/74 217/134/74 +f 212/144/75 213/145/75 214/146/75 +f 222/147/76 219/146/76 221/144/76 +f 238/148/77 218/135/77 216/137/77 +f 237/138/78 216/137/78 215/139/78 +f 225/149/74 224/150/74 223/151/74 +f 229/152/77 227/151/77 228/153/77 +f 226/154/68 229/152/68 224/155/68 +f 223/156/79 227/157/79 225/158/79 +f 225/158/80 230/149/80 226/154/80 +f 224/155/81 228/159/81 223/160/81 +f 231/146/82 234/147/82 232/145/82 +f 235/136/83 237/135/83 236/134/83 +f 247/146/84 250/147/84 248/145/84 +f 244/145/85 245/144/85 246/147/85 +f 304/137/77 307/133/77 310/148/77 +f 305/134/74 309/161/74 308/142/74 +f 251/146/86 254/147/86 252/145/86 +f 255/146/87 258/147/87 256/145/87 +f 260/145/88 261/144/88 262/147/88 +f 265/131/89 264/130/89 263/132/89 +f 207/147/90 210/146/90 209/145/90 +f 289/145/91 288/144/91 290/146/91 +f 274/128/68 264/127/68 266/129/68 +f 271/162/92 266/129/92 265/131/92 +f 273/163/93 263/164/93 264/127/93 +f 273/127/94 271/130/94 272/129/94 +f 239/147/95 242/146/95 241/145/95 +f 291/147/96 294/146/96 293/145/96 +f 270/146/97 267/147/97 268/144/97 +f 272/165/79 265/131/79 263/166/79 +f 275/146/98 278/147/98 277/144/98 +f 281/167/89 280/168/89 279/169/89 +f 282/170/68 285/171/68 280/172/68 +f 283/173/92 282/170/92 281/167/92 +f 285/171/93 279/139/93 280/172/93 +f 285/172/94 283/168/94 284/170/94 +f 284/174/79 281/167/79 279/164/79 +f 305/140/99 304/137/99 303/141/99 +f 305/134/100 307/133/100 306/135/100 +f 302/147/101 299/146/101 300/145/101 +f 298/147/102 295/146/102 296/145/102 +f 314/129/103 315/162/103 313/131/103 +f 311/164/104 317/163/104 312/127/104 +f 315/130/105 317/127/105 316/129/105 +f 311/166/79 315/162/79 316/165/79 +f 320/168/69 321/167/69 319/169/69 +f 322/170/68 325/171/68 326/175/68 +f 322/170/103 323/173/103 321/167/103 +f 319/139/104 325/171/104 320/172/104 +f 323/168/105 325/172/105 324/170/105 +f 321/167/79 324/174/79 319/164/79 +f 312/127/68 317/163/68 318/128/68 +f 312/130/69 314/129/69 313/131/69 +f 235/133/70 236/142/70 217/134/70 +f 309/135/71 310/140/71 307/136/71 +f 304/137/72 310/148/72 309/138/72 +f 216/137/73 218/135/73 217/140/73 +f 236/142/74 237/161/74 215/143/74 +f 212/144/75 211/147/75 213/145/75 +f 222/147/76 220/145/76 219/146/76 +f 238/148/77 235/133/77 218/135/77 +f 237/138/78 238/148/78 216/137/78 +f 225/149/74 226/157/74 224/150/74 +f 229/152/77 230/149/77 227/151/77 +f 226/154/68 230/149/68 229/152/68 +f 223/156/79 228/176/79 227/157/79 +f 225/158/80 227/157/80 230/149/80 +f 224/155/81 229/152/81 228/159/81 +f 231/146/82 233/144/82 234/147/82 +f 235/136/83 238/140/83 237/135/83 +f 247/146/84 249/144/84 250/147/84 +f 244/145/85 243/146/85 245/144/85 +f 304/137/77 306/135/77 307/133/77 +f 305/134/74 303/143/74 309/161/74 +f 251/146/86 253/144/86 254/147/86 +f 255/146/87 257/144/87 258/147/87 +f 260/145/88 259/146/88 261/144/88 +f 265/131/89 266/129/89 264/130/89 +f 207/147/90 208/144/90 210/146/90 +f 289/145/91 287/147/91 288/144/91 +f 274/128/68 273/163/68 264/127/68 +f 271/162/92 274/128/92 266/129/92 +f 273/163/93 272/174/93 263/164/93 +f 273/127/94 274/177/94 271/130/94 +f 239/147/95 240/144/95 242/146/95 +f 291/147/96 292/144/96 294/146/96 +f 270/146/97 269/145/97 267/147/97 +f 272/165/79 271/162/79 265/131/79 +f 275/146/98 276/145/98 278/147/98 +f 281/167/89 282/170/89 280/168/89 +f 282/170/68 286/175/68 285/171/68 +f 283/173/92 286/175/92 282/170/92 +f 285/171/93 284/178/93 279/139/93 +f 285/172/94 286/179/94 283/168/94 +f 284/174/79 283/173/79 281/167/79 +f 305/140/99 306/135/99 304/137/99 +f 305/134/100 308/142/100 307/133/100 +f 302/147/101 301/144/101 299/146/101 +f 298/147/102 297/144/102 295/146/102 +f 314/129/103 318/128/103 315/162/103 +f 311/164/104 316/174/104 317/163/104 +f 315/130/105 318/177/105 317/127/105 +f 311/166/79 313/131/79 315/162/79 +f 320/168/69 322/170/69 321/167/69 +f 322/170/68 320/172/68 325/171/68 +f 322/170/103 326/175/103 323/173/103 +f 319/139/104 324/178/104 325/171/104 +f 323/168/105 326/179/105 325/172/105 +f 321/167/79 323/173/79 324/174/79 +o FumoHead +v -0.250000 0.750000 -0.250000 +v -0.250000 0.750000 0.250000 +v 0.250000 0.750000 0.250000 +v 0.250000 0.750000 -0.250000 +v -0.250000 1.250000 -0.250000 +v -0.250000 1.250000 0.250000 +v 0.250000 1.250000 0.250000 +v 0.250000 1.250000 -0.250000 +v -0.281250 0.718750 -0.281250 +v -0.281250 0.718750 0.281250 +v 0.281250 0.718750 0.281250 +v 0.281250 0.718750 -0.281250 +v -0.281250 1.281250 -0.281250 +v -0.281250 1.281250 0.281250 +v 0.281250 1.281250 0.281250 +v 0.281250 1.281250 -0.281250 +v -0.281250 1.093750 -0.281250 +v -0.281250 1.093750 0.281250 +v 0.281250 1.093750 0.281250 +v 0.281250 1.093750 -0.281250 +v -0.218750 1.093750 -0.468750 +v 0.218750 1.093750 -0.468750 +v -0.218750 1.093750 0.468750 +v 0.218750 1.093750 0.468750 +v 0.468750 1.093750 0.218750 +v 0.468750 1.093750 -0.218750 +v -0.468750 1.093750 -0.218750 +v -0.468750 1.093750 0.218750 +v -0.281250 1.156250 0.281250 +v 0.281250 1.156250 0.281250 +v 0.281250 1.156250 -0.281250 +v -0.281250 1.156250 -0.281250 +v 0.218750 1.156250 -0.468750 +v -0.218750 1.156250 -0.468750 +v -0.218750 1.156250 0.468750 +v 0.218750 1.156250 0.468750 +v 0.468750 1.156250 0.218750 +v 0.468750 1.156250 -0.218750 +v -0.468750 1.156250 -0.218750 +v -0.468750 1.156250 0.218750 +v 0.156250 1.156250 -0.281250 +v 0.093750 1.156250 -0.406250 +v 0.093750 1.281250 -0.406250 +v 0.156250 1.218750 -0.281250 +v 0.156250 1.156250 -0.281250 +v 0.218750 1.156250 -0.406250 +v 0.218750 1.281250 -0.406250 +v 0.156250 1.218750 -0.281250 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.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 0.8944 -0.0000 0.4472 +vn 0.8944 -0.0000 -0.4472 +vt 0.375000 0.750000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.125000 0.750000 +vt 0.125000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 0.500000 +vt 0.125000 0.500000 +vt -0.000000 0.750000 +vt -0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.875000 0.750000 +vt 0.750000 1.000000 +vt 0.750000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 0.750000 +vt 1.000000 0.500000 +vt 0.734375 0.343750 +vt 0.625000 0.250000 +vt 0.750000 0.250000 +vt 0.796875 0.218750 +vt 0.625000 0.468750 +vt 0.734375 0.375000 +vt 0.750000 0.468750 +vt 0.796875 0.500000 +vt 0.640625 0.375000 +vt 0.640625 0.343750 +vt 0.796875 0.343750 +vt 0.656250 0.187500 +vt 0.625000 0.218750 +vt 0.625000 0.187500 +vt 0.375000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 0.750000 +vt 0.796875 0.375000 +vt 0.656250 0.250000 +s 0 +f 327/180/106 329/181/106 328/182/106 +f 333/183/107 331/181/107 332/184/107 +f 327/185/108 334/182/108 330/186/108 +f 329/187/109 332/188/109 328/189/109 +f 330/186/110 333/183/110 329/187/110 +f 328/190/111 331/180/111 327/185/111 +f 335/191/106 337/192/106 336/193/106 +f 341/194/107 339/192/107 340/195/107 +f 335/196/108 342/193/108 338/197/108 +f 337/198/109 340/199/109 336/190/109 +f 338/197/110 341/194/110 337/198/110 +f 336/200/111 339/191/111 335/196/111 +f 347/201/106 346/202/106 343/203/106 +f 350/201/106 344/202/106 345/203/106 +f 352/201/106 345/202/106 346/203/106 +f 354/201/106 343/202/106 344/203/106 +f 344/203/106 349/204/106 354/201/106 +f 345/203/106 351/204/106 350/201/106 +f 346/203/106 348/204/106 352/201/106 +f 343/203/106 353/204/106 347/201/106 +f 357/205/107 360/206/107 358/207/107 +f 355/205/107 362/206/107 356/207/107 +f 356/205/107 364/206/107 357/207/107 +f 358/205/107 366/206/107 355/207/107 +f 355/207/107 366/206/107 361/208/107 +f 356/207/107 362/206/107 363/208/107 +f 357/207/107 364/206/107 359/208/107 +f 358/207/107 360/206/107 365/208/107 +f 350/201/109 361/209/109 349/210/109 +f 347/201/108 359/209/108 348/210/108 +f 348/211/112 364/206/112 352/201/112 +f 353/211/113 360/206/113 347/201/113 +f 349/211/114 366/206/114 354/201/114 +f 354/201/111 365/209/111 353/210/111 +f 352/201/110 363/209/110 351/210/110 +f 351/211/115 362/206/115 350/201/115 +f 372/212/116 374/213/116 371/214/116 +f 368/212/117 370/213/117 367/214/117 +f 327/180/106 330/215/106 329/181/106 +f 333/183/107 334/182/107 331/181/107 +f 327/185/108 331/180/108 334/182/108 +f 329/187/109 333/183/109 332/188/109 +f 330/186/110 334/182/110 333/183/110 +f 328/190/111 332/199/111 331/180/111 +f 335/191/106 338/216/106 337/192/106 +f 341/194/107 342/193/107 339/192/107 +f 335/196/108 339/191/108 342/193/108 +f 337/198/109 341/194/109 340/199/109 +f 338/197/110 342/193/110 341/194/110 +f 336/200/111 340/217/111 339/191/111 +f 347/201/106 348/210/106 346/202/106 +f 350/201/106 349/210/106 344/202/106 +f 352/201/106 351/210/106 345/202/106 +f 354/201/106 353/210/106 343/202/106 +f 357/205/107 359/209/107 360/206/107 +f 355/205/107 361/209/107 362/206/107 +f 356/205/107 363/209/107 364/206/107 +f 358/205/107 365/209/107 366/206/107 +f 350/201/109 362/206/109 361/209/109 +f 347/201/108 360/206/108 359/209/108 +f 348/211/112 359/218/112 364/206/112 +f 353/211/113 365/218/113 360/206/113 +f 349/211/114 361/218/114 366/206/114 +f 354/201/111 366/206/111 365/209/111 +f 352/201/110 364/206/110 363/209/110 +f 351/211/115 363/218/115 362/206/115 +f 372/212/116 373/219/116 374/213/116 +f 368/212/117 369/219/117 370/213/117 +o Head +v 0.375000 1.750000 0.375000 +v -0.375000 1.750000 0.375000 +v 0.375000 1.750000 -0.375000 +v -0.375000 1.750000 -0.375000 +v 0.375000 2.500000 0.375000 +v -0.375000 2.500000 0.375000 +v -0.375000 2.500000 -0.375000 +v 0.375000 2.500000 -0.375000 +v 0.421875 1.703125 0.421875 +v -0.421875 1.703125 0.421875 +v 0.421875 1.703125 -0.421875 +v -0.421875 1.703125 -0.421875 +v 0.421875 2.546875 0.421875 +v -0.421875 2.546875 0.421875 +v -0.421875 2.546875 -0.421875 +v 0.421875 2.546875 -0.421875 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.250000 1.000000 +vt 0.375000 0.875000 +vt 0.375000 1.000000 +vt 0.125000 0.875000 +vt 0.125000 1.000000 +vt 0.250000 0.750000 +vt 0.125000 0.750000 +vt -0.000000 0.875000 +vt -0.000000 0.750000 +vt 0.500000 0.750000 +vt 0.375000 0.750000 +vt 0.250000 0.875000 +vt 0.750000 1.000000 +vt 0.875000 0.875000 +vt 0.875000 1.000000 +vt 0.625000 0.875000 +vt 0.625000 1.000000 +vt 0.750000 0.750000 +vt 0.625000 0.750000 +vt 0.500000 0.875000 +vt 1.000000 0.750000 +vt 0.875000 0.750000 +vt 0.750000 0.875000 +vt 1.000000 0.875000 +s 0 +f 378/220/118 375/221/118 376/222/118 +f 379/223/119 381/220/119 380/224/119 +f 377/225/120 379/223/120 375/226/120 +f 375/226/121 380/227/121 376/228/121 +f 376/229/122 381/221/122 378/230/122 +f 378/230/123 382/231/123 377/225/123 +f 386/232/118 383/233/118 384/234/118 +f 387/235/119 389/232/119 388/236/119 +f 385/237/120 387/235/120 383/238/120 +f 383/238/121 388/239/121 384/229/121 +f 384/240/122 389/233/122 386/241/122 +f 386/241/123 390/242/123 385/237/123 +f 378/220/118 377/231/118 375/221/118 +f 379/223/119 382/231/119 381/220/119 +f 377/225/120 382/231/120 379/223/120 +f 375/226/121 379/223/121 380/227/121 +f 376/229/122 380/239/122 381/221/122 +f 378/230/123 381/221/123 382/231/123 +f 386/232/118 385/242/118 383/233/118 +f 387/235/119 390/242/119 389/232/119 +f 385/237/120 390/242/120 387/235/120 +f 383/238/121 387/235/121 388/239/121 +f 384/240/122 388/243/122 389/233/122 +f 386/241/123 389/233/123 390/242/123 +o Head17 +v 0.375000 1.750000 0.375000 +v -0.375000 1.750000 0.375000 +v 0.375000 1.750000 -0.375000 +v -0.375000 1.750000 -0.375000 +v 0.375000 2.500000 0.375000 +v -0.375000 2.500000 0.375000 +v -0.375000 2.500000 -0.375000 +v 0.375000 2.500000 -0.375000 +v 0.421875 1.703125 0.421875 +v -0.421875 1.703125 0.421875 +v 0.421875 1.703125 -0.421875 +v -0.421875 1.703125 -0.421875 +v 0.421875 2.546875 0.421875 +v -0.421875 2.546875 0.421875 +v -0.421875 2.546875 -0.421875 +v 0.421875 2.546875 -0.421875 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.250000 1.000000 +vt 0.375000 0.750000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.125000 1.000000 +vt 0.250000 0.500000 +vt 0.125000 0.500000 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.375000 0.500000 +vt 0.250000 0.750000 +vt 0.750000 1.000000 +vt 0.875000 0.750000 +vt 0.875000 1.000000 +vt 0.625000 0.750000 +vt 0.625000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 0.750000 +vt 1.000000 0.500000 +vt 0.875000 0.500000 +vt 0.750000 0.750000 +vt 1.000000 0.750000 +s 0 +f 394/244/124 391/245/124 392/246/124 +f 395/247/125 397/244/125 396/248/125 +f 393/249/126 395/247/126 391/250/126 +f 391/250/127 396/251/127 392/252/127 +f 392/253/128 397/245/128 394/254/128 +f 394/254/129 398/255/129 393/249/129 +f 402/256/124 399/257/124 400/258/124 +f 403/259/125 405/256/125 404/260/125 +f 401/261/126 403/259/126 399/262/126 +f 399/262/127 404/263/127 400/253/127 +f 400/264/128 405/257/128 402/265/128 +f 402/265/129 406/266/129 401/261/129 +f 394/244/124 393/255/124 391/245/124 +f 395/247/125 398/255/125 397/244/125 +f 393/249/126 398/255/126 395/247/126 +f 391/250/127 395/247/127 396/251/127 +f 392/253/128 396/263/128 397/245/128 +f 394/254/129 397/245/129 398/255/129 +f 402/256/124 401/266/124 399/257/124 +f 403/259/125 406/266/125 405/256/125 +f 401/261/126 406/266/126 403/259/126 +f 399/262/127 403/259/127 404/263/127 +f 400/264/128 404/267/128 405/257/128 +f 402/265/129 405/257/129 406/266/129 o Horn v 0.205806 2.419194 0.062500 v 0.294194 2.330806 0.062500 v 0.205806 2.419194 -0.062500 v 0.294194 2.330806 -0.062500 -v 0.780330 2.905330 0.000000 +v 0.780330 2.905330 -0.000000 +vn 0.7634 -0.6459 -0.0000 +vn 0.0587 0.0587 -0.9965 +vn 0.0587 0.0587 0.9965 +vn -0.6459 0.7634 -0.0000 vt 0.906250 0.500000 vt 0.890625 0.687500 vt 0.875000 0.500000 -vt 0.906250 0.500000 -vt 0.875000 0.500000 -vt 0.906250 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.906250 0.500000 -vn 0.7634 -0.6459 0.0000 -vn 0.0587 0.0587 -0.9965 -vn 0.0587 0.0587 0.9965 -vn -0.6459 0.7634 0.0000 -s off -f 389/510/127 390/511/127 387/512/127 -f 388/513/128 390/511/128 389/514/128 -f 387/515/129 390/511/129 386/516/129 -f 388/517/130 386/518/130 390/511/130 -o PelletShine -v -0.000000 0.250000 -0.375000 -v -0.187500 0.250000 -0.324760 -v -0.324760 0.250000 -0.187500 -v -0.375000 0.250000 0.000000 -v -0.324760 0.250000 0.187500 -v -0.187500 0.250000 0.324760 -v -0.000000 0.250000 0.375000 -v 0.187500 0.250000 0.324760 -v 0.324759 0.250000 0.187500 -v 0.375000 0.250000 0.000000 -v 0.324760 0.250000 -0.187500 -v 0.187500 0.250000 -0.324759 -v -0.000000 0.812500 -0.375000 -v -0.187500 0.812500 -0.324760 -v -0.324760 0.812500 -0.187500 -v -0.375000 0.812500 0.000000 -v -0.324760 0.812500 0.187500 -v -0.187500 0.812500 0.324760 -v -0.000000 0.812500 0.375000 -v 0.187500 0.812500 0.324760 -v 0.324759 0.812500 0.187500 -v 0.375000 0.812500 0.000000 -v 0.324760 0.812500 -0.187500 -v 0.187500 0.812500 -0.324759 -v 0.000000 0.875000 -0.312500 -v -0.156250 0.875000 -0.270633 -v -0.270633 0.875000 -0.156250 -v -0.312500 0.875000 0.000000 -v -0.270633 0.875000 0.156250 -v -0.156250 0.875000 0.270633 -v -0.000000 0.875000 0.312500 -v 0.156250 0.875000 0.270633 -v 0.270633 0.875000 0.156250 -v 0.312500 0.875000 0.000000 -v 0.270633 0.875000 -0.156250 -v 0.156250 0.875000 -0.270633 -vn -0.7071 0.0000 -0.7071 -vn 0.9659 0.0000 0.2588 -vn -0.2588 0.0000 0.9659 -vn -0.9659 0.0000 -0.2588 -vn 0.9659 0.0000 -0.2588 -vn 0.2588 0.0000 0.9659 -vn -0.9659 0.0000 0.2588 -vn 0.7071 0.0000 -0.7071 -vn -0.2588 0.0000 -0.9659 -vn 0.7071 0.0000 0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.2588 0.0000 -0.9659 -vn 0.6947 0.6947 0.1862 -vn 0.6947 0.6947 -0.1862 +s 0 +f 410/268/130 411/269/130 408/270/130 +f 409/268/131 411/269/131 410/270/131 +f 408/268/132 411/269/132 407/270/132 +f 409/270/133 407/268/133 411/269/133 +o LA +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +v -0.125000 1.750000 -0.250000 +v 0.125000 1.750000 -0.250000 +v -0.125000 1.000000 -0.500000 +v 0.125000 1.000000 -0.500000 +v 0.125000 1.750000 -0.500000 +v -0.125000 1.750000 -0.500000 +v -0.156250 0.968750 -0.218750 +v 0.156250 0.968750 -0.218750 +v -0.156250 1.781250 -0.218750 +v 0.156250 1.781250 -0.218750 +v -0.156250 0.968750 -0.531250 +v 0.156250 0.968750 -0.531250 +v -0.156250 1.781250 -0.531250 +v 0.156250 1.781250 -0.531250 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.625000 0.187500 +vt 0.562500 0.000000 +vt 0.625000 0.000000 +vt 0.687500 0.187500 +vt 0.687500 0.000000 +vt 0.750000 0.187500 +vt 0.562500 0.250000 +vt 0.562500 0.187500 +vt 0.687500 0.250000 +vt 0.625000 0.250000 +vt 0.500000 0.187500 +vt 0.875000 0.187500 +vt 0.937500 0.250000 +vt 0.875000 0.250000 +vt 0.812500 -0.000000 +vt 0.875000 -0.000000 +vt 0.812500 0.187500 +vt 0.937500 -0.000000 +vt 1.000000 0.187500 +vt 0.937500 0.187500 +vt 0.750000 0.000000 +vt 0.500000 0.000000 +vt 0.812500 0.250000 +vt 1.000000 -0.000000 +s 0 +f 418/271/134 413/272/134 417/273/134 +f 417/273/135 419/274/135 418/271/135 +f 416/275/136 414/276/136 419/274/136 +f 418/271/137 414/277/137 415/278/137 +f 417/271/138 412/279/138 416/280/138 +f 414/281/139 413/272/139 415/278/139 +f 425/282/138 420/283/138 424/284/138 +f 427/282/134 421/285/134 425/286/134 +f 426/284/137 423/287/137 427/282/137 +f 424/288/136 422/289/136 426/290/136 +f 422/276/139 421/285/139 423/287/139 +f 425/286/135 426/290/135 427/282/135 +f 418/271/134 415/278/134 413/272/134 +f 417/273/135 416/275/135 419/274/135 +f 416/275/136 412/291/136 414/276/136 +f 418/271/137 419/280/137 414/277/137 +f 417/271/138 413/274/138 412/279/138 +f 414/281/139 412/292/139 413/272/139 +f 425/282/138 421/290/138 420/283/138 +f 427/282/134 423/287/134 421/285/134 +f 426/284/137 422/293/137 423/287/137 +f 424/288/136 420/294/136 422/289/136 +f 422/276/139 420/291/139 421/285/139 +f 425/286/135 424/288/135 426/290/135 +o LA17 +v -0.125000 1.000000 -0.500000 +v 0.125000 1.000000 -0.500000 +v -0.125000 1.750000 -0.500000 +v 0.125000 1.750000 -0.500000 +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +v 0.125000 1.750000 -0.250000 +v -0.125000 1.750000 -0.250000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vt 0.687500 -0.000000 +vt 0.625000 0.375000 +vt 0.687500 0.375000 +vt 0.750000 0.375000 +vt 0.687500 0.500000 +vt 0.750000 0.500000 +vt 0.750000 -0.000000 +vt 0.812500 0.500000 +vt 0.812500 0.375000 +vt 0.875000 0.375000 +vt 0.812500 -0.000000 +vt 0.625000 -0.000000 +vt 0.875000 -0.000000 +s 0 +f 429/295/140 430/296/140 431/297/140 +f 434/298/141 430/299/141 435/300/141 +f 429/295/142 434/298/142 433/301/142 +f 428/302/143 433/298/143 432/300/143 +f 435/303/144 433/301/144 434/298/144 +f 430/304/145 432/305/145 435/303/145 +f 429/295/140 428/306/140 430/296/140 +f 434/298/141 431/297/141 430/299/141 +f 429/295/142 431/297/142 434/298/142 +f 428/302/143 429/303/143 433/298/143 +f 435/303/144 432/305/144 433/301/144 +f 430/304/145 428/307/145 432/305/145 +o LL +v -0.125000 1.000000 -0.250000 +v -0.125000 0.250000 -0.250000 +v 0.125000 1.000000 -0.250000 +v 0.125000 0.250000 -0.250000 +v -0.125000 1.000000 -0.000000 +v -0.125000 0.250000 -0.000000 +v 0.125000 1.000000 -0.000000 +v 0.125000 0.250000 -0.000000 +v -0.156250 1.031250 -0.281250 +v -0.156250 0.218750 -0.281250 +v 0.156250 1.031250 -0.281250 +v 0.156250 0.218750 -0.281250 +v -0.156250 1.031250 0.031250 +v -0.156250 0.218750 0.031250 +v 0.156250 1.031250 0.031250 +v 0.156250 0.218750 0.031250 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.375000 0.250000 +vt 0.437500 0.187500 +vt 0.437500 0.250000 +vt 0.500000 0.187500 +vt 0.437500 0.000000 +vt 0.500000 0.000000 +vt 0.312500 0.187500 +vt 0.250000 0.000000 +vt 0.312500 0.000000 +vt 0.375000 0.187500 +vt 0.375000 0.000000 +vt 0.312500 0.250000 +vt 0.062500 0.250000 +vt 0.125000 0.187500 +vt 0.125000 0.250000 +vt 0.187500 0.187500 +vt 0.187500 0.250000 +vt 0.062500 0.000000 +vt 0.125000 0.000000 +vt 0.187500 0.000000 +vt 0.250000 0.187500 +vt 0.062500 0.187500 +vt 0.000000 0.000000 +vt 0.000000 0.187500 +s 0 +f 437/308/146 443/309/146 441/310/146 +f 440/311/147 437/312/147 441/313/147 +f 442/314/148 441/315/148 443/316/148 +f 438/317/149 443/316/149 439/318/149 +f 440/319/150 438/317/150 436/308/150 +f 436/309/151 439/318/151 437/312/151 +f 448/320/150 446/321/150 444/322/150 +f 445/322/146 451/323/146 449/324/146 +f 446/321/149 451/325/149 447/326/149 +f 444/323/151 447/326/151 445/327/151 +f 448/328/147 445/327/147 449/315/147 +f 450/329/148 449/330/148 451/325/148 +f 437/308/146 439/317/146 443/309/146 +f 440/311/147 436/309/147 437/312/147 +f 442/314/148 440/328/148 441/315/148 +f 438/317/149 442/314/149 443/316/149 +f 440/319/150 442/314/150 438/317/150 +f 436/309/151 438/317/151 439/318/151 +f 448/320/150 450/329/150 446/321/150 +f 445/322/146 447/321/146 451/323/146 +f 446/321/149 450/329/149 451/325/149 +f 444/323/151 446/321/151 447/326/151 +f 448/328/147 444/323/147 445/327/147 +f 450/329/148 448/331/148 449/330/148 +o LL17 +v -0.125000 1.000000 -0.000000 +v -0.125000 0.250000 -0.000000 +v 0.125000 1.000000 -0.000000 +v 0.125000 0.250000 -0.000000 +v -0.125000 1.000000 -0.250000 +v -0.125000 0.250000 -0.250000 +v 0.125000 1.000000 -0.250000 +v 0.125000 0.250000 -0.250000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.125000 0.375000 +vt 0.062500 0.500000 +vt 0.125000 0.500000 +vt 0.187500 0.375000 +vt 0.187500 0.500000 +vt 0.062500 -0.000000 +vt 0.125000 -0.000000 +vt 0.187500 -0.000000 +vt 0.250000 0.375000 +vt 0.250000 -0.000000 +vt 0.000000 -0.000000 +vt 0.062500 0.375000 +vt 0.000000 0.375000 +s 0 +f 454/332/152 456/333/152 452/334/152 +f 459/335/153 453/334/153 457/336/153 +f 459/337/154 454/332/154 455/338/154 +f 455/338/155 452/335/155 453/339/155 +f 453/339/156 456/340/156 457/341/156 +f 457/342/157 458/343/157 459/337/157 +f 454/332/152 458/343/152 456/333/152 +f 459/335/153 455/332/153 453/334/153 +f 459/337/154 458/343/154 454/332/154 +f 455/338/155 454/332/155 452/335/155 +f 453/339/156 452/335/156 456/340/156 +f 457/342/157 456/344/157 458/343/157 +o PeepHat +v 0.281250 2.625000 -0.281250 +v 0.281250 2.625000 0.281250 +v -0.281250 2.625000 0.281250 +v -0.281250 2.625000 -0.281250 +v -0.281250 2.500000 -0.281250 +v -0.281250 2.500000 0.281250 +v 0.281250 2.500000 0.281250 +v 0.281250 2.500000 -0.281250 +v 0.000000 2.687500 0.062500 +v 0.000000 2.687500 -0.062500 +v 0.000000 2.625000 -0.000000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vt -0.000000 0.890625 +vt 0.015625 0.984375 +vt -0.000000 0.984375 +vt 0.125000 0.984375 +vt 0.109375 0.890625 +vt 0.125000 0.890625 +vt 0.015625 1.000000 +vt 0.109375 0.984375 +vt 0.109375 1.000000 +vt 0.109375 0.875000 +vt 0.015625 0.890625 +vt 0.015625 0.875000 +vt 0.000000 1.000000 +s 0 +f 466/345/158 462/346/158 465/347/158 +f 464/348/159 460/349/159 467/350/159 +f 465/351/160 463/352/160 464/353/160 +f 467/354/161 461/355/161 466/356/161 +f 461/355/162 463/352/162 462/346/162 +f 468/357/161 470/347/161 469/346/161 +f 466/345/158 461/355/158 462/346/158 +f 464/348/159 463/352/159 460/349/159 +f 465/351/160 462/346/160 463/352/160 +f 467/354/161 460/349/161 461/355/161 +f 461/355/162 460/349/162 463/352/162 +o PeepTail +v -0.114030 1.104741 -0.062500 +v -0.071277 0.987279 -0.062500 +v -0.114030 1.104741 0.062500 +v -0.071277 0.987279 0.062500 +v -0.583876 0.933731 -0.062500 +v -0.541124 0.816269 -0.062500 +v -0.583876 0.933731 0.062500 +v -0.541124 0.816269 0.062500 +v -0.547280 0.814373 0.062500 +v -0.704707 1.160419 0.125000 +v -0.547280 0.814373 -0.062500 +v -0.704707 1.160419 -0.125000 +v -0.426539 0.846725 0.062500 +v -0.463226 1.225123 0.125000 +v -0.426539 0.846725 -0.062500 +v -0.463226 1.225123 -0.125000 +v -0.801764 1.522641 0.125000 +v -0.801764 1.522641 -0.125000 +v -0.560283 1.587345 -0.125000 +v -0.560283 1.587345 0.125000 +v -0.757570 1.599187 0.062500 +v -0.757570 1.599187 -0.062500 +v -0.636829 1.631540 -0.062500 +v -0.636829 1.631540 0.062500 +vn -0.3420 0.9397 -0.0000 +vn 0.3420 -0.9397 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.9102 -0.4141 -0.0000 +vn 0.0425 -0.1588 -0.9864 +vn 0.9953 0.0965 -0.0000 +vn 0.0425 -0.1588 0.9864 +vn 0.2588 -0.9659 -0.0000 +vn 0.9659 0.2588 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn -0.9659 -0.2588 -0.0000 +vn -0.2588 0.9659 -0.0000 +vn -0.1830 0.6830 0.7071 +vn -0.1830 0.6830 -0.7071 +vn 0.5000 0.8660 -0.0000 +vt 0.937500 0.562500 +vt 0.968750 0.687500 +vt 0.937500 0.687500 +vt 0.968750 0.562500 +vt 0.937500 0.546875 +vt 0.890625 0.453125 +vt 0.921875 0.453125 +vt 0.890625 0.421875 +vt 0.875000 0.640625 +vt 0.875000 0.546875 +vt 0.937500 0.640625 +vt 0.890625 0.656250 +vt 0.921875 0.687500 +vt 0.890625 0.687500 +vt 0.921875 0.656250 +vt 0.921875 0.421875 +s 0 +f 475/358/163 473/359/163 471/360/163 +f 472/359/164 478/358/164 476/361/164 +f 473/360/165 478/361/165 474/359/165 +f 475/361/166 472/360/166 476/358/166 +f 480/362/167 481/363/167 479/364/167 +f 482/362/168 485/363/168 481/364/168 +f 486/362/169 483/363/169 485/364/169 +f 484/362/170 479/363/170 483/364/170 +f 485/365/171 479/364/171 481/363/171 +f 486/362/172 490/366/172 484/367/172 +f 487/368/173 492/369/173 488/366/173 +f 480/362/174 488/366/174 482/367/174 +f 484/362/165 487/366/165 480/367/165 +f 482/362/166 489/366/166 486/367/166 +f 492/369/175 494/370/175 493/371/175 +f 487/366/176 494/372/176 491/369/176 +f 488/368/177 493/369/177 489/366/177 +f 489/368/178 494/369/178 490/366/178 +f 475/358/163 477/361/163 473/359/163 +f 472/359/164 474/360/164 478/358/164 +f 473/360/165 477/358/165 478/361/165 +f 475/361/166 471/359/166 472/360/166 +f 480/362/167 482/367/167 481/363/167 +f 482/362/168 486/367/168 485/363/168 +f 486/362/169 484/367/169 483/363/169 +f 484/362/170 480/367/170 479/363/170 +f 485/365/171 483/373/171 479/364/171 +f 486/362/172 489/368/172 490/366/172 +f 487/368/173 491/372/173 492/369/173 +f 480/362/174 487/368/174 488/366/174 +f 484/362/165 490/368/165 487/366/165 +f 482/362/166 488/368/166 489/366/166 +f 492/369/175 491/372/175 494/370/175 +f 487/366/176 490/368/176 494/372/176 +f 488/368/177 492/372/177 493/369/177 +f 489/368/178 493/372/178 494/369/178 +o Pellet +v 0.000000 0.250000 -0.312500 +v -0.156250 0.250000 -0.270633 +v -0.270633 0.250000 -0.156250 +v -0.312500 0.250000 -0.000000 +v -0.270633 0.250000 0.156250 +v -0.156250 0.250000 0.270633 +v 0.000000 0.250000 0.312500 +v 0.156250 0.250000 0.270633 +v 0.270633 0.250000 0.156250 +v 0.312500 0.250000 -0.000000 +v 0.270633 0.250000 -0.156250 +v 0.156250 0.250000 -0.270633 +v 0.000000 0.750000 -0.312500 +v -0.156250 0.750000 -0.270633 +v -0.270633 0.750000 -0.156250 +v -0.312500 0.750000 -0.000000 +v -0.270633 0.750000 0.156250 +v -0.156250 0.750000 0.270633 +v 0.000000 0.750000 0.312500 +v 0.156250 0.750000 0.270633 +v 0.270633 0.750000 0.156250 +v 0.312500 0.750000 -0.000000 +v 0.270633 0.750000 -0.156250 +v 0.156250 0.750000 -0.270633 +v 0.000000 0.812500 -0.250000 +v -0.125000 0.812500 -0.216506 +v -0.216506 0.812500 -0.125000 +v -0.250000 0.812500 -0.000000 +v -0.216506 0.812500 0.125000 +v -0.125000 0.812500 0.216506 +v 0.000000 0.812500 0.250000 +v 0.125000 0.812500 0.216506 +v 0.216506 0.812500 0.125000 +v 0.250000 0.812500 -0.000000 +v 0.216506 0.812500 -0.125000 +v 0.125000 0.812500 -0.216506 +vn -0.2588 -0.0000 0.9659 +vn -0.9659 -0.0000 -0.2588 +vn 0.9659 -0.0000 -0.2588 +vn 0.2588 -0.0000 0.9659 +vn -0.9659 -0.0000 0.2588 +vn 0.7071 -0.0000 -0.7071 +vn -0.2588 -0.0000 -0.9659 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn 0.2588 -0.0000 -0.9659 +vn -0.7071 -0.0000 -0.7071 +vn 0.9659 -0.0000 0.2588 vn 0.5086 0.6947 -0.5086 vn 0.1862 0.6947 -0.6947 vn -0.1862 0.6947 -0.6947 @@ -1619,103 +1796,9 @@ vn -0.5086 0.6947 0.5086 vn -0.1862 0.6947 0.6947 vn 0.1862 0.6947 0.6947 vn 0.5086 0.6947 0.5086 -vn 0.0000 1.0000 0.0000 -s off -f 405//131 392//131 393//131 -f 412//132 399//132 400//132 -f 409//133 396//133 397//133 -f 406//134 393//134 394//134 -f 413//135 400//135 401//135 -f 410//136 397//136 398//136 -f 407//137 394//137 395//137 -f 414//138 401//138 402//138 -f 404//139 391//139 392//139 -f 411//140 398//140 399//140 -f 408//141 395//141 396//141 -f 403//142 402//142 391//142 -f 412//143 423//143 411//143 -f 412//144 425//144 424//144 -f 413//145 426//145 425//145 -f 414//146 415//146 426//146 -f 403//147 416//147 415//147 -f 404//148 417//148 416//148 -f 406//149 417//149 405//149 -f 407//150 418//150 406//150 -f 408//151 419//151 407//151 -f 409//152 420//152 408//152 -f 410//153 421//153 409//153 -f 411//154 422//154 410//154 -f 423//155 425//155 415//155 -f 405//131 404//131 392//131 -f 412//132 411//132 399//132 -f 409//133 408//133 396//133 -f 406//134 405//134 393//134 -f 413//135 412//135 400//135 -f 410//136 409//136 397//136 -f 407//137 406//137 394//137 -f 414//138 413//138 401//138 -f 404//139 403//139 391//139 -f 411//140 410//140 398//140 -f 408//141 407//141 395//141 -f 403//142 414//142 402//142 -f 412//143 424//143 423//143 -f 412//144 413//144 425//144 -f 413//145 414//145 426//145 -f 414//146 403//146 415//146 -f 403//147 404//147 416//147 -f 404//148 405//148 417//148 -f 406//149 418//149 417//149 -f 407//150 419//150 418//150 -f 408//151 420//151 419//151 -f 409//152 421//152 420//152 -f 410//153 422//153 421//153 -f 411//154 423//154 422//154 -f 415//155 416//155 419//155 -f 416//155 417//155 419//155 -f 417//155 418//155 419//155 -f 419//155 420//155 421//155 -f 421//155 422//155 423//155 -f 423//155 424//155 425//155 -f 425//155 426//155 415//155 -f 419//155 421//155 415//155 -f 421//155 423//155 415//155 -o Pellet -v 0.000000 0.250000 -0.312500 -v -0.156250 0.250000 -0.270633 -v -0.270633 0.250000 -0.156250 -v -0.312500 0.250000 0.000000 -v -0.270633 0.250000 0.156250 -v -0.156250 0.250000 0.270633 -v -0.000000 0.250000 0.312500 -v 0.156250 0.250000 0.270633 -v 0.270633 0.250000 0.156250 -v 0.312500 0.250000 0.000000 -v 0.270633 0.250000 -0.156250 -v 0.156250 0.250000 -0.270633 -v 0.000000 0.750000 -0.312500 -v -0.156250 0.750000 -0.270633 -v -0.270633 0.750000 -0.156250 -v -0.312500 0.750000 0.000000 -v -0.270633 0.750000 0.156250 -v -0.156250 0.750000 0.270633 -v -0.000000 0.750000 0.312500 -v 0.156250 0.750000 0.270633 -v 0.270633 0.750000 0.156250 -v 0.312500 0.750000 0.000000 -v 0.270633 0.750000 -0.156250 -v 0.156250 0.750000 -0.270633 -v 0.000000 0.812500 -0.250000 -v -0.125000 0.812500 -0.216506 -v -0.216506 0.812500 -0.125000 -v -0.250000 0.812500 0.000000 -v -0.216506 0.812500 0.125000 -v -0.125000 0.812500 0.216506 -v -0.000000 0.812500 0.250000 -v 0.125000 0.812500 0.216506 -v 0.216506 0.812500 0.125000 -v 0.250000 0.812500 0.000000 -v 0.216506 0.812500 -0.125000 -v 0.125000 0.812500 -0.216506 +vn 0.6947 0.6947 0.1862 +vn 0.6947 0.6947 -0.1862 +vn -0.0000 1.0000 -0.0000 vt 0.250000 0.000000 vt 0.166667 0.470588 vt 0.166667 0.000000 @@ -1778,20 +1861,118 @@ vt 0.015933 0.648338 vt 0.111111 0.531970 vt 0.166063 0.563151 vt 0.206290 0.648338 -vn -0.2588 0.0000 0.9659 -vn -0.9659 0.0000 -0.2588 -vn 0.9659 0.0000 -0.2588 -vn 0.2588 0.0000 0.9659 -vn -0.9659 0.0000 0.2588 -vn 0.7071 0.0000 -0.7071 -vn -0.2588 0.0000 -0.9659 -vn 0.7071 0.0000 0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.2588 0.0000 -0.9659 -vn -0.7071 0.0000 -0.7071 -vn 0.9659 0.0000 0.2588 +s 0 +f 501/374/179 512/375/179 500/376/179 +f 498/377/180 509/378/180 497/379/180 +f 505/380/181 516/381/181 504/382/181 +f 502/383/182 513/384/182 501/374/182 +f 499/385/183 510/386/183 498/387/183 +f 506/388/184 517/389/184 505/380/184 +f 496/390/185 507/391/185 495/392/185 +f 503/393/186 514/394/186 502/383/186 +f 500/376/187 511/395/187 499/385/187 +f 495/392/188 518/396/188 506/388/188 +f 497/379/189 508/397/189 496/390/189 +f 504/382/190 515/398/190 503/393/190 +f 517/389/191 530/399/191 529/400/191 +f 518/396/192 519/401/192 530/402/192 +f 508/397/193 519/403/193 507/391/193 +f 509/378/194 520/404/194 508/397/194 +f 510/405/195 521/406/195 509/378/195 +f 511/395/196 522/407/196 510/386/196 +f 512/375/197 523/408/197 511/395/197 +f 513/384/198 524/409/198 512/375/198 +f 514/394/199 525/410/199 513/384/199 +f 514/394/200 527/411/200 526/412/200 +f 515/398/201 528/413/201 527/414/201 +f 516/381/202 529/415/202 528/416/202 +f 523/417/203 527/418/203 519/419/203 +f 501/374/179 513/384/179 512/375/179 +f 498/377/180 510/405/180 509/378/180 +f 505/380/181 517/389/181 516/381/181 +f 502/383/182 514/394/182 513/384/182 +f 499/385/183 511/395/183 510/386/183 +f 506/388/184 518/396/184 517/389/184 +f 496/390/185 508/397/185 507/391/185 +f 503/393/186 515/398/186 514/394/186 +f 500/376/187 512/375/187 511/395/187 +f 495/392/188 507/391/188 518/396/188 +f 497/379/189 509/378/189 508/397/189 +f 504/382/190 516/381/190 515/398/190 +f 517/389/191 518/396/191 530/399/191 +f 518/396/192 507/391/192 519/401/192 +f 508/397/193 520/420/193 519/403/193 +f 509/378/194 521/421/194 520/404/194 +f 510/405/195 522/422/195 521/406/195 +f 511/395/196 523/423/196 522/407/196 +f 512/375/197 524/424/197 523/408/197 +f 513/384/198 525/425/198 524/409/198 +f 514/394/199 526/426/199 525/410/199 +f 514/394/200 515/398/200 527/411/200 +f 515/398/201 516/381/201 528/413/201 +f 516/381/202 517/389/202 529/415/202 +f 519/419/203 520/427/203 521/428/203 +f 521/428/203 522/429/203 523/417/203 +f 523/417/203 524/430/203 525/431/203 +f 525/431/203 526/432/203 523/417/203 +f 526/432/203 527/418/203 523/417/203 +f 527/418/203 528/433/203 529/434/203 +f 529/434/203 530/435/203 519/419/203 +f 519/419/203 521/428/203 523/417/203 +f 527/418/203 529/434/203 519/419/203 +o PelletShine +v 0.000000 0.250000 -0.375000 +v -0.187500 0.250000 -0.324760 +v -0.324760 0.250000 -0.187500 +v -0.375000 0.250000 -0.000000 +v -0.324760 0.250000 0.187500 +v -0.187500 0.250000 0.324760 +v 0.000000 0.250000 0.375000 +v 0.187500 0.250000 0.324760 +v 0.324759 0.250000 0.187500 +v 0.375000 0.250000 -0.000000 +v 0.324760 0.250000 -0.187500 +v 0.187500 0.250000 -0.324759 +v 0.000000 0.812500 -0.375000 +v -0.187500 0.812500 -0.324760 +v -0.324760 0.812500 -0.187500 +v -0.375000 0.812500 -0.000000 +v -0.324760 0.812500 0.187500 +v -0.187500 0.812500 0.324760 +v 0.000000 0.812500 0.375000 +v 0.187500 0.812500 0.324760 +v 0.324759 0.812500 0.187500 +v 0.375000 0.812500 -0.000000 +v 0.324760 0.812500 -0.187500 +v 0.187500 0.812500 -0.324759 +v 0.000000 0.875000 -0.312500 +v -0.156250 0.875000 -0.270633 +v -0.270633 0.875000 -0.156250 +v -0.312500 0.875000 -0.000000 +v -0.270633 0.875000 0.156250 +v -0.156250 0.875000 0.270633 +v 0.000000 0.875000 0.312500 +v 0.156250 0.875000 0.270633 +v 0.270633 0.875000 0.156250 +v 0.312500 0.875000 -0.000000 +v 0.270633 0.875000 -0.156250 +v 0.156250 0.875000 -0.270633 +vn -0.7071 -0.0000 -0.7071 +vn 0.9659 -0.0000 0.2588 +vn -0.2588 -0.0000 0.9659 +vn -0.9659 -0.0000 -0.2588 +vn 0.9659 -0.0000 -0.2588 +vn 0.2588 -0.0000 0.9659 +vn -0.9659 -0.0000 0.2588 +vn 0.7071 -0.0000 -0.7071 +vn -0.2588 -0.0000 -0.9659 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn 0.2588 -0.0000 -0.9659 +vn 0.6947 0.6947 0.1862 +vn 0.6947 0.6947 -0.1862 vn 0.5086 0.6947 -0.5086 -vn 0.1862 0.6947 -0.6947 +vn 0.1862 0.6947 -0.6948 vn -0.1862 0.6947 -0.6947 vn -0.5086 0.6947 -0.5086 vn -0.6947 0.6947 -0.1862 @@ -1800,228 +1981,67 @@ vn -0.5086 0.6947 0.5086 vn -0.1862 0.6947 0.6947 vn 0.1862 0.6947 0.6947 vn 0.5086 0.6947 0.5086 -vn 0.6947 0.6947 0.1862 -vn 0.6947 0.6947 -0.1862 -vn 0.0000 1.0000 -0.0000 -s off -f 433/519/156 444/520/156 432/521/156 -f 430/522/157 441/523/157 429/524/157 -f 437/525/158 448/526/158 436/527/158 -f 434/528/159 445/529/159 433/519/159 -f 431/530/160 442/531/160 430/532/160 -f 438/533/161 449/534/161 437/525/161 -f 428/535/162 439/536/162 427/537/162 -f 435/538/163 446/539/163 434/528/163 -f 432/521/164 443/540/164 431/530/164 -f 427/537/165 450/541/165 438/533/165 -f 429/524/166 440/542/166 428/535/166 -f 436/527/167 447/543/167 435/538/167 -f 449/534/168 462/544/168 461/545/168 -f 450/541/169 451/546/169 462/547/169 -f 440/542/170 451/548/170 439/536/170 -f 441/523/171 452/549/171 440/542/171 -f 442/550/172 453/551/172 441/523/172 -f 443/540/173 454/552/173 442/531/173 -f 444/520/174 455/553/174 443/540/174 -f 445/529/175 456/554/175 444/520/175 -f 446/539/176 457/555/176 445/529/176 -f 446/539/177 459/556/177 458/557/177 -f 447/543/178 460/558/178 459/559/178 -f 448/526/179 461/560/179 460/561/179 -f 455/562/180 459/563/180 451/564/180 -f 433/519/156 445/529/156 444/520/156 -f 430/522/157 442/550/157 441/523/157 -f 437/525/158 449/534/158 448/526/158 -f 434/528/159 446/539/159 445/529/159 -f 431/530/160 443/540/160 442/531/160 -f 438/533/161 450/541/161 449/534/161 -f 428/535/162 440/542/162 439/536/162 -f 435/538/163 447/543/163 446/539/163 -f 432/521/164 444/520/164 443/540/164 -f 427/537/165 439/536/165 450/541/165 -f 429/524/166 441/523/166 440/542/166 -f 436/527/167 448/526/167 447/543/167 -f 449/534/168 450/541/168 462/544/168 -f 450/541/169 439/536/169 451/546/169 -f 440/542/170 452/565/170 451/548/170 -f 441/523/171 453/566/171 452/549/171 -f 442/550/172 454/567/172 453/551/172 -f 443/540/173 455/568/173 454/552/173 -f 444/520/174 456/569/174 455/553/174 -f 445/529/175 457/570/175 456/554/175 -f 446/539/176 458/571/176 457/555/176 -f 446/539/177 447/543/177 459/556/177 -f 447/543/178 448/526/178 460/558/178 -f 448/526/179 449/534/179 461/560/179 -f 451/564/180 452/572/180 453/573/180 -f 453/573/180 454/574/180 455/562/180 -f 455/562/180 456/575/180 457/576/180 -f 457/576/180 458/577/180 455/562/180 -f 458/577/180 459/563/180 455/562/180 -f 459/563/180 460/578/180 461/579/180 -f 461/579/180 462/580/180 451/564/180 -f 451/564/180 453/573/180 455/562/180 -f 459/563/180 461/579/180 451/564/180 -o Head -v 0.375000 1.750000 0.375000 -v -0.375000 1.750000 0.375000 -v 0.375000 1.750000 -0.375000 -v -0.375000 1.750000 -0.375000 -v 0.375000 2.500000 0.375000 -v -0.375000 2.500000 0.375000 -v -0.375000 2.500000 -0.375000 -v 0.375000 2.500000 -0.375000 -v 0.421875 1.703125 0.421875 -v -0.421875 1.703125 0.421875 -v 0.421875 1.703125 -0.421875 -v -0.421875 1.703125 -0.421875 -v 0.421875 2.546875 0.421875 -v -0.421875 2.546875 0.421875 -v -0.421875 2.546875 -0.421875 -v 0.421875 2.546875 -0.421875 -vt 0.250000 1.000000 -vt 0.375000 0.875000 -vt 0.375000 1.000000 -vt 0.125000 0.875000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 0.750000 -vt 0.125000 0.750000 -vt -0.000000 0.875000 -vt -0.000000 0.750000 -vt 0.500000 0.750000 -vt 0.375000 0.875000 -vt 0.375000 0.750000 -vt 0.250000 0.875000 -vt 0.750000 1.000000 -vt 0.875000 0.875000 -vt 0.875000 1.000000 -vt 0.625000 0.875000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 0.750000 -vt 0.625000 0.750000 -vt 0.500000 0.875000 -vt 0.500000 0.750000 -vt 1.000000 0.750000 -vt 0.875000 0.875000 -vt 0.875000 0.750000 -vt 0.750000 0.875000 -vt 0.250000 0.875000 -vt 0.500000 0.875000 -vt 0.750000 0.875000 -vt 1.000000 0.875000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 -0.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -s off -f 466/581/181 463/582/181 464/583/181 -f 467/584/182 469/585/182 468/586/182 -f 465/587/183 467/584/183 463/588/183 -f 463/588/184 468/589/184 464/590/184 -f 464/591/185 469/592/185 466/593/185 -f 466/593/186 470/594/186 465/587/186 -f 474/595/181 471/596/181 472/597/181 -f 475/598/182 477/599/182 476/600/182 -f 473/601/183 475/598/183 471/602/183 -f 471/602/184 476/603/184 472/604/184 -f 472/605/185 477/606/185 474/607/185 -f 474/607/186 478/608/186 473/601/186 -f 466/581/181 465/609/181 463/582/181 -f 467/584/182 470/594/182 469/585/182 -f 465/587/183 470/594/183 467/584/183 -f 463/588/184 467/584/184 468/589/184 -f 464/591/185 468/610/185 469/592/185 -f 466/593/186 469/592/186 470/594/186 -f 474/595/181 473/611/181 471/596/181 -f 475/598/182 478/608/182 477/599/182 -f 473/601/183 478/608/183 475/598/183 -f 471/602/184 475/598/184 476/603/184 -f 472/605/185 476/612/185 477/606/185 -f 474/607/186 477/606/186 478/608/186 -o LA -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -v -0.125000 1.750000 -0.250000 -v 0.125000 1.750000 -0.250000 -v -0.125000 1.000000 -0.500000 -v 0.125000 1.000000 -0.500000 -v 0.125000 1.750000 -0.500000 -v -0.125000 1.750000 -0.500000 -v -0.156250 0.968750 -0.218750 -v 0.156250 0.968750 -0.218750 -v -0.156250 1.781250 -0.218750 -v 0.156250 1.781250 -0.218750 -v -0.156250 0.968750 -0.531250 -v 0.156250 0.968750 -0.531250 -v -0.156250 1.781250 -0.531250 -v 0.156250 1.781250 -0.531250 -vt 0.625000 0.187500 -vt 0.562500 0.000000 -vt 0.625000 0.000000 -vt 0.687500 0.187500 -vt 0.687500 0.000000 -vt 0.750000 0.187500 -vt 0.562500 0.250000 -vt 0.562500 0.187500 -vt 0.625000 0.187500 -vt 0.687500 0.250000 -vt 0.625000 0.250000 -vt 0.500000 0.187500 -vt 0.875000 0.187500 -vt 0.937500 0.250000 -vt 0.875000 0.250000 -vt 0.875000 0.187500 -vt 0.812500 -0.000000 -vt 0.875000 -0.000000 -vt 0.875000 0.250000 -vt 0.812500 0.187500 -vt 0.937500 -0.000000 -vt 1.000000 0.187500 -vt 0.937500 0.187500 -vt 0.750000 0.187500 -vt 0.750000 0.000000 -vt 0.625000 0.250000 -vt 0.687500 0.187500 -vt 0.500000 0.000000 -vt 0.937500 0.187500 -vt 0.812500 0.250000 -vt 1.000000 -0.000000 -vt 0.750000 -0.000000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -s off -f 485/613/187 480/614/187 484/615/187 -f 484/615/188 486/616/188 485/613/188 -f 483/617/189 481/618/189 486/616/189 -f 485/613/190 481/619/190 482/620/190 -f 484/621/191 479/622/191 483/623/191 -f 481/624/192 480/614/192 482/620/192 -f 492/625/191 487/626/191 491/627/191 -f 494/628/187 488/629/187 492/630/187 -f 493/631/190 490/632/190 494/628/190 -f 491/633/189 489/634/189 493/635/189 -f 489/636/192 488/629/192 490/632/192 -f 492/630/188 493/635/188 494/628/188 -f 485/613/187 482/620/187 480/614/187 -f 484/615/188 483/617/188 486/616/188 -f 483/617/189 479/637/189 481/618/189 -f 485/613/190 486/638/190 481/619/190 -f 484/621/191 480/639/191 479/622/191 -f 481/624/192 479/640/192 480/614/192 -f 492/625/191 488/641/191 487/626/191 -f 494/628/187 490/632/187 488/629/187 -f 493/631/190 489/642/190 490/632/190 -f 491/633/189 487/643/189 489/634/189 -f 489/636/192 487/644/192 488/629/192 -f 492/630/188 491/633/188 493/635/188 +vn -0.0000 1.0000 -0.0000 +vn 0.1862 0.6947 -0.6947 +s 0 +f 545//204 532//204 533//204 +f 552//205 539//205 540//205 +f 549//206 536//206 537//206 +f 546//207 533//207 534//207 +f 553//208 540//208 541//208 +f 550//209 537//209 538//209 +f 547//210 534//210 535//210 +f 554//211 541//211 542//211 +f 544//212 531//212 532//212 +f 551//213 538//213 539//213 +f 548//214 535//214 536//214 +f 543//215 542//215 531//215 +f 552//216 563//216 551//216 +f 552//217 565//217 564//217 +f 553//218 566//218 565//218 +f 554//219 555//219 566//219 +f 543//220 556//220 555//220 +f 544//221 557//221 556//221 +f 546//222 557//222 545//222 +f 547//223 558//223 546//223 +f 548//224 559//224 547//224 +f 549//225 560//225 548//225 +f 550//226 561//226 549//226 +f 551//227 562//227 550//227 +f 563//228 565//228 555//228 +f 545//204 544//204 532//204 +f 552//205 551//205 539//205 +f 549//206 548//206 536//206 +f 546//207 545//207 533//207 +f 553//208 552//208 540//208 +f 550//209 549//209 537//209 +f 547//210 546//210 534//210 +f 554//211 553//211 541//211 +f 544//212 543//212 531//212 +f 551//213 550//213 538//213 +f 548//214 547//214 535//214 +f 543//215 554//215 542//215 +f 552//216 564//216 563//216 +f 552//217 553//217 565//217 +f 553//218 554//218 566//218 +f 554//229 543//229 555//229 +f 543//220 544//220 556//220 +f 544//221 545//221 557//221 +f 546//222 558//222 557//222 +f 547//223 559//223 558//223 +f 548//224 560//224 559//224 +f 549//225 561//225 560//225 +f 550//226 562//226 561//226 +f 551//227 563//227 562//227 +f 555//228 556//228 559//228 +f 556//228 557//228 559//228 +f 557//228 558//228 559//228 +f 559//228 560//228 561//228 +f 561//228 562//228 563//228 +f 563//228 564//228 565//228 +f 565//228 566//228 555//228 +f 559//228 561//228 555//228 +f 561//228 563//228 555//228 o RA v -0.125000 1.750000 0.250000 v 0.125000 1.750000 0.250000 @@ -2039,6 +2059,12 @@ v 0.156250 1.781250 0.531250 v -0.156250 1.781250 0.531250 v 0.156250 0.968750 0.531250 v -0.156250 0.968750 0.531250 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 vt 0.750000 0.500000 vt 0.812500 0.687500 vt 0.750000 0.687500 @@ -2047,7 +2073,6 @@ vt 0.687500 0.500000 vt 0.687500 0.687500 vt 0.812500 0.500000 vt 0.875000 0.687500 -vt 0.750000 0.687500 vt 0.812500 0.750000 vt 0.750000 0.750000 vt 0.687500 0.750000 @@ -2059,138 +2084,85 @@ vt 0.687500 0.250000 vt 0.687500 0.437500 vt 0.812500 0.250000 vt 0.875000 0.437500 -vt 0.750000 0.500000 -vt 0.750000 0.437500 -vt 0.812500 0.500000 -vt 0.750000 0.500000 vt 0.625000 0.500000 vt 0.875000 0.500000 -vt 0.812500 0.687500 -vt 0.750000 0.750000 vt 0.625000 0.250000 vt 0.875000 0.250000 +s 0 +f 569/436/230 567/437/230 568/438/230 +f 572/439/231 573/440/231 571/441/231 +f 570/442/232 572/443/232 567/437/232 +f 569/438/233 574/444/233 570/445/233 +f 568/438/234 573/440/234 569/436/234 +f 568/438/235 572/446/235 571/441/235 +f 577/447/230 576/448/230 575/449/230 +f 580/450/231 581/451/231 579/452/231 +f 578/453/232 580/454/232 576/448/232 +f 576/436/235 579/452/235 575/449/235 +f 575/449/234 581/451/234 577/447/234 +f 577/449/233 582/442/233 578/436/233 +f 569/436/230 570/442/230 567/437/230 +f 572/439/231 574/455/231 573/440/231 +f 570/442/232 574/456/232 572/443/232 +f 569/438/233 573/437/233 574/444/233 +f 568/438/234 571/441/234 573/440/234 +f 568/438/235 567/445/235 572/446/235 +f 577/447/230 578/453/230 576/448/230 +f 580/450/231 582/457/231 581/451/231 +f 578/453/232 582/458/232 580/454/232 +f 576/436/235 580/440/235 579/452/235 +f 575/449/234 579/452/234 581/451/234 +f 577/449/233 581/448/233 582/442/233 +o RA17 +v -0.125000 1.750000 0.250000 +v 0.125000 1.750000 0.250000 +v 0.125000 1.000000 0.250000 +v -0.125000 1.000000 0.250000 +v 0.125000 1.750000 0.500000 +v -0.125000 1.750000 0.500000 +v 0.125000 1.000000 0.500000 +v -0.125000 1.000000 0.500000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vt 0.750000 -0.000000 +vt 0.812500 0.375000 +vt 0.750000 0.375000 +vt 0.625000 0.375000 +vt 0.687500 -0.000000 +vt 0.687500 0.375000 +vt 0.812500 -0.000000 +vt 0.875000 0.375000 +vt 0.812500 0.500000 +vt 0.750000 0.500000 vt 0.687500 0.500000 -vt 0.812500 0.437500 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 1.0000 0.0000 -s off -f 497/645/193 495/646/193 496/647/193 -f 500/648/194 501/649/194 499/650/194 -f 498/651/195 500/652/195 495/646/195 -f 497/653/196 502/654/196 498/655/196 -f 496/647/197 501/649/197 497/645/197 -f 496/647/198 500/656/198 499/650/198 -f 505/657/193 504/658/193 503/659/193 -f 508/660/194 509/661/194 507/662/194 -f 506/663/195 508/664/195 504/658/195 -f 504/665/198 507/662/198 503/659/198 -f 503/659/197 509/661/197 505/657/197 -f 505/666/196 510/667/196 506/668/196 -f 497/645/193 498/651/193 495/646/193 -f 500/648/194 502/669/194 501/649/194 -f 498/651/195 502/670/195 500/652/195 -f 497/653/196 501/671/196 502/654/196 -f 496/647/197 499/650/197 501/649/197 -f 496/647/198 495/672/198 500/656/198 -f 505/657/193 506/663/193 504/658/193 -f 508/660/194 510/673/194 509/661/194 -f 506/663/195 510/674/195 508/664/195 -f 504/665/198 508/675/198 507/662/198 -f 503/659/197 507/662/197 509/661/197 -f 505/666/196 509/676/196 510/667/196 -o LL -v -0.125000 1.000000 -0.250000 -v -0.125000 0.250000 -0.250000 -v 0.125000 1.000000 -0.250000 -v 0.125000 0.250000 -0.250000 -v -0.125000 1.000000 0.000000 -v -0.125000 0.250000 0.000000 -v 0.125000 1.000000 0.000000 -v 0.125000 0.250000 0.000000 -v -0.156250 1.031250 -0.281250 -v -0.156250 0.218750 -0.281250 -v 0.156250 1.031250 -0.281250 -v 0.156250 0.218750 -0.281250 -v -0.156250 1.031250 0.031250 -v -0.156250 0.218750 0.031250 -v 0.156250 1.031250 0.031250 -v 0.156250 0.218750 0.031250 -vt 0.375000 0.250000 -vt 0.437500 0.187500 -vt 0.437500 0.250000 -vt 0.500000 0.187500 -vt 0.437500 0.000000 -vt 0.500000 0.000000 -vt 0.312500 0.187500 -vt 0.250000 0.000000 -vt 0.312500 0.000000 -vt 0.375000 0.187500 -vt 0.375000 0.000000 -vt 0.312500 0.250000 -vt 0.375000 0.250000 -vt 0.437500 0.187500 -vt 0.062500 0.250000 -vt 0.125000 0.187500 -vt 0.125000 0.250000 -vt 0.125000 0.250000 -vt 0.187500 0.187500 -vt 0.187500 0.250000 -vt 0.062500 0.000000 -vt 0.125000 0.000000 -vt 0.187500 0.187500 -vt 0.187500 0.000000 -vt 0.250000 0.187500 -vt 0.250000 0.000000 -vt 0.062500 0.187500 -vt 0.000000 0.000000 -vt 0.375000 0.187500 -vt 0.250000 0.187500 -vt 0.125000 0.187500 -vt 0.000000 0.187500 -vn 0.0000 -1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -s off -f 512/677/199 518/678/199 516/679/199 -f 515/680/200 512/681/200 516/682/200 -f 517/683/201 516/684/201 518/685/201 -f 513/686/202 518/685/202 514/687/202 -f 515/688/203 513/686/203 511/689/203 -f 511/690/204 514/687/204 512/681/204 -f 523/691/203 521/692/203 519/693/203 -f 520/694/199 526/695/199 524/696/199 -f 521/692/202 526/697/202 522/698/202 -f 519/699/204 522/698/204 520/700/204 -f 523/701/200 520/700/200 524/702/200 -f 525/703/201 524/704/201 526/697/201 -f 512/677/199 514/705/199 518/678/199 -f 515/680/200 511/690/200 512/681/200 -f 517/683/201 515/706/201 516/684/201 -f 513/686/202 517/683/202 518/685/202 -f 515/688/203 517/683/203 513/686/203 -f 511/690/204 513/686/204 514/687/204 -f 523/691/203 525/703/203 521/692/203 -f 520/694/199 522/707/199 526/695/199 -f 521/692/202 525/703/202 526/697/202 -f 519/699/204 521/692/204 522/698/204 -f 523/701/200 519/699/200 520/700/200 -f 525/703/201 523/708/201 524/704/201 +vt 0.625000 -0.000000 +vt 0.875000 -0.000000 +s 0 +f 585/459/236 583/460/236 584/461/236 +f 588/462/237 589/463/237 587/464/237 +f 586/465/238 588/466/238 583/460/238 +f 585/461/239 590/467/239 586/468/239 +f 584/461/240 589/463/240 585/459/240 +f 584/461/241 588/469/241 587/464/241 +f 585/459/236 586/465/236 583/460/236 +f 588/462/237 590/470/237 589/463/237 +f 586/465/238 590/471/238 588/466/238 +f 585/461/239 589/460/239 590/467/239 +f 584/461/240 587/464/240 589/463/240 +f 584/461/241 583/468/241 588/469/241 o RL v 0.125000 0.250000 0.250000 v 0.125000 1.000000 0.250000 v -0.125000 0.250000 0.250000 v -0.125000 1.000000 0.250000 -v 0.125000 0.250000 0.000000 -v 0.125000 1.000000 0.000000 -v -0.125000 0.250000 0.000000 -v -0.125000 1.000000 0.000000 +v 0.125000 0.250000 -0.000000 +v 0.125000 1.000000 -0.000000 +v -0.125000 0.250000 -0.000000 +v -0.125000 1.000000 -0.000000 v 0.156250 0.218750 0.281250 v 0.156250 1.031250 0.281250 v -0.156250 0.218750 0.281250 @@ -2199,6 +2171,12 @@ v 0.156250 0.218750 -0.031250 v 0.156250 1.031250 -0.031250 v -0.156250 0.218750 -0.031250 v -0.156250 1.031250 -0.031250 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 vt 0.062500 0.687500 vt 0.000000 0.500000 vt 0.062500 0.500000 @@ -2209,10 +2187,8 @@ vt 0.187500 0.687500 vt 0.125000 0.500000 vt 0.125000 0.687500 vt 0.125000 0.750000 -vt 0.187500 0.687500 vt 0.187500 0.750000 vt 0.062500 0.750000 -vt 0.125000 0.750000 vt 0.062500 0.437500 vt -0.000000 0.250000 vt 0.062500 0.250000 @@ -2222,267 +2198,48 @@ vt 0.250000 0.250000 vt 0.187500 0.437500 vt 0.125000 0.250000 vt 0.125000 0.437500 -vt 0.125000 0.500000 -vt 0.187500 0.437500 -vt 0.187500 0.500000 -vt 0.062500 0.500000 -vt 0.125000 0.500000 vt 0.000000 0.687500 -vt 0.125000 0.687500 vt -0.000000 0.437500 -vt 0.125000 0.437500 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -s off -f 528/709/205 529/710/205 527/711/205 -f 530/712/206 533/713/206 529/714/206 -f 534/715/207 531/716/207 533/713/207 -f 532/717/208 527/711/208 531/716/208 -f 533/718/209 527/719/209 529/720/209 -f 530/721/210 532/717/210 534/722/210 -f 536/723/205 537/724/205 535/725/205 -f 538/726/206 541/727/206 537/728/206 -f 542/729/207 539/730/207 541/727/207 -f 540/731/208 535/725/208 539/730/208 -f 541/732/209 535/733/209 537/734/209 -f 538/735/210 540/731/210 542/736/210 -f 528/709/205 530/737/205 529/710/205 -f 530/712/206 534/715/206 533/713/206 -f 534/715/207 532/717/207 531/716/207 -f 532/717/208 528/709/208 527/711/208 -f 533/718/209 531/738/209 527/719/209 -f 530/721/210 528/709/210 532/717/210 -f 536/723/205 538/739/205 537/724/205 -f 538/726/206 542/729/206 541/727/206 -f 542/729/207 540/731/207 539/730/207 -f 540/731/208 536/723/208 535/725/208 -f 541/732/209 539/740/209 535/733/209 -f 538/735/210 536/723/210 540/731/210 -o Head17 -v 0.375000 1.750000 0.375000 -v -0.375000 1.750000 0.375000 -v 0.375000 1.750000 -0.375000 -v -0.375000 1.750000 -0.375000 -v 0.375000 2.500000 0.375000 -v -0.375000 2.500000 0.375000 -v -0.375000 2.500000 -0.375000 -v 0.375000 2.500000 -0.375000 -v 0.421875 1.703125 0.421875 -v -0.421875 1.703125 0.421875 -v 0.421875 1.703125 -0.421875 -v -0.421875 1.703125 -0.421875 -v 0.421875 2.546875 0.421875 -v -0.421875 2.546875 0.421875 -v -0.421875 2.546875 -0.421875 -v 0.421875 2.546875 -0.421875 -vt 0.250000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.125000 0.750000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.750000 -vt 0.000000 0.500000 -vt 0.500000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vt 0.250000 0.750000 -vt 0.750000 1.000000 -vt 0.875000 0.750000 -vt 0.875000 1.000000 -vt 0.625000 0.750000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 0.500000 -vt 0.500000 0.750000 -vt 0.500000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.750000 0.750000 -vt 0.250000 0.750000 -vt 0.500000 0.750000 -vt 0.750000 0.750000 -vt 1.000000 0.750000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 -0.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -s off -f 546/741/211 543/742/211 544/743/211 -f 547/744/212 549/745/212 548/746/212 -f 545/747/213 547/744/213 543/748/213 -f 543/748/214 548/749/214 544/750/214 -f 544/751/215 549/752/215 546/753/215 -f 546/753/216 550/754/216 545/747/216 -f 554/755/211 551/756/211 552/757/211 -f 555/758/212 557/759/212 556/760/212 -f 553/761/213 555/758/213 551/762/213 -f 551/762/214 556/763/214 552/764/214 -f 552/765/215 557/766/215 554/767/215 -f 554/767/216 558/768/216 553/761/216 -f 546/741/211 545/769/211 543/742/211 -f 547/744/212 550/754/212 549/745/212 -f 545/747/213 550/754/213 547/744/213 -f 543/748/214 547/744/214 548/749/214 -f 544/751/215 548/770/215 549/752/215 -f 546/753/216 549/752/216 550/754/216 -f 554/755/211 553/771/211 551/756/211 -f 555/758/212 558/768/212 557/759/212 -f 553/761/213 558/768/213 555/758/213 -f 551/762/214 555/758/214 556/763/214 -f 552/765/215 556/772/215 557/766/215 -f 554/767/216 557/766/216 558/768/216 -o RA17 -v -0.125000 1.750000 0.250000 -v 0.125000 1.750000 0.250000 -v 0.125000 1.000000 0.250000 -v -0.125000 1.000000 0.250000 -v 0.125000 1.750000 0.500000 -v -0.125000 1.750000 0.500000 -v 0.125000 1.000000 0.500000 -v -0.125000 1.000000 0.500000 -vt 0.750000 -0.000000 -vt 0.812500 0.375000 -vt 0.750000 0.375000 -vt 0.625000 0.375000 -vt 0.687500 -0.000000 -vt 0.687500 0.375000 -vt 0.812500 -0.000000 -vt 0.875000 0.375000 -vt 0.750000 0.375000 -vt 0.812500 0.500000 -vt 0.750000 0.500000 -vt 0.687500 0.500000 -vt 0.625000 -0.000000 -vt 0.875000 -0.000000 -vt 0.812500 0.375000 -vt 0.750000 0.500000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 1.0000 0.0000 -s off -f 561/773/217 559/774/217 560/775/217 -f 564/776/218 565/777/218 563/778/218 -f 562/779/219 564/780/219 559/774/219 -f 561/781/220 566/782/220 562/783/220 -f 560/775/221 565/777/221 561/773/221 -f 560/775/222 564/784/222 563/778/222 -f 561/773/217 562/779/217 559/774/217 -f 564/776/218 566/785/218 565/777/218 -f 562/779/219 566/786/219 564/780/219 -f 561/781/220 565/787/220 566/782/220 -f 560/775/221 563/778/221 565/777/221 -f 560/775/222 559/788/222 564/784/222 -o LA17 -v -0.125000 1.000000 -0.500000 -v 0.125000 1.000000 -0.500000 -v -0.125000 1.750000 -0.500000 -v 0.125000 1.750000 -0.500000 -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -v 0.125000 1.750000 -0.250000 -v -0.125000 1.750000 -0.250000 -vt 0.687500 -0.000000 -vt 0.625000 0.375000 -vt 0.687500 0.375000 -vt 0.750000 0.375000 -vt 0.687500 0.500000 -vt 0.750000 0.500000 -vt 0.750000 -0.000000 -vt 0.812500 0.500000 -vt 0.750000 0.375000 -vt 0.750000 0.500000 -vt 0.812500 0.375000 -vt 0.875000 0.375000 -vt 0.812500 -0.000000 -vt 0.625000 -0.000000 -vt 0.812500 0.375000 -vt 0.875000 -0.000000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 -0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 -0.0000 -s off -f 568/789/223 569/790/223 570/791/223 -f 573/792/224 569/793/224 574/794/224 -f 568/789/225 573/792/225 572/795/225 -f 567/796/226 572/797/226 571/798/226 -f 574/799/227 572/795/227 573/792/227 -f 569/800/228 571/801/228 574/799/228 -f 568/789/223 567/802/223 569/790/223 -f 573/792/224 570/791/224 569/793/224 -f 568/789/225 570/791/225 573/792/225 -f 567/796/226 568/803/226 572/797/226 -f 574/799/227 571/801/227 572/795/227 -f 569/800/228 567/804/228 571/801/228 -o LL17 -v -0.125000 1.000000 0.000000 -v -0.125000 0.250000 0.000000 -v 0.125000 1.000000 0.000000 -v 0.125000 0.250000 0.000000 -v -0.125000 1.000000 -0.250000 -v -0.125000 0.250000 -0.250000 -v 0.125000 1.000000 -0.250000 -v 0.125000 0.250000 -0.250000 -vt 0.125000 0.375000 -vt 0.062500 0.500000 -vt 0.125000 0.500000 -vt 0.187500 0.375000 -vt 0.125000 0.500000 -vt 0.187500 0.500000 -vt 0.062500 -0.000000 -vt 0.125000 -0.000000 -vt 0.187500 0.375000 -vt 0.187500 -0.000000 -vt 0.250000 0.375000 -vt 0.250000 -0.000000 -vt 0.000000 -0.000000 -vt 0.062500 0.375000 -vt 0.125000 0.375000 -vt 0.000000 0.375000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -s off -f 577/805/229 579/806/229 575/807/229 -f 582/808/230 576/809/230 580/810/230 -f 582/811/231 577/805/231 578/812/231 -f 578/812/232 575/813/232 576/814/232 -f 576/814/233 579/815/233 580/816/233 -f 580/817/234 581/818/234 582/811/234 -f 577/805/229 581/818/229 579/806/229 -f 582/808/230 578/819/230 576/809/230 -f 582/811/231 581/818/231 577/805/231 -f 578/812/232 577/805/232 575/813/232 -f 576/814/233 575/813/233 579/815/233 -f 580/817/234 579/820/234 581/818/234 +s 0 +f 592/472/242 593/473/242 591/474/242 +f 594/475/243 597/476/243 593/477/243 +f 598/478/244 595/479/244 597/476/244 +f 596/480/245 591/474/245 595/479/245 +f 597/481/246 591/478/246 593/482/246 +f 594/483/247 596/480/247 598/481/247 +f 600/484/242 601/485/242 599/486/242 +f 602/487/243 605/488/243 601/489/243 +f 606/490/244 603/491/244 605/488/244 +f 604/492/245 599/486/245 603/491/245 +f 605/479/246 599/490/246 601/476/246 +f 602/474/247 604/492/247 606/479/247 +f 592/472/242 594/493/242 593/473/242 +f 594/475/243 598/478/243 597/476/243 +f 598/478/244 596/480/244 595/479/244 +f 596/480/245 592/472/245 591/474/245 +f 597/481/246 595/480/246 591/478/246 +f 594/483/247 592/472/247 596/480/247 +f 600/484/242 602/494/242 601/485/242 +f 602/487/243 606/490/243 605/488/243 +f 606/490/244 604/492/244 603/491/244 +f 604/492/245 600/484/245 599/486/245 +f 605/479/246 603/492/246 599/490/246 +f 602/474/247 600/484/247 604/492/247 o RL17 v 0.125000 0.250000 0.250000 v 0.125000 1.000000 0.250000 v -0.125000 0.250000 0.250000 v -0.125000 1.000000 0.250000 -v 0.125000 0.250000 0.000000 -v 0.125000 1.000000 0.000000 -v -0.125000 0.250000 0.000000 -v -0.125000 1.000000 0.000000 +v 0.125000 0.250000 -0.000000 +v 0.125000 1.000000 -0.000000 +v -0.125000 0.250000 -0.000000 +v -0.125000 1.000000 -0.000000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 vt 0.062500 0.375000 vt 0.000000 -0.000000 vt 0.062500 -0.000000 @@ -2493,200 +2250,216 @@ vt 0.187500 0.375000 vt 0.125000 -0.000000 vt 0.125000 0.375000 vt 0.125000 0.500000 -vt 0.187500 0.375000 vt 0.187500 0.500000 vt 0.062500 0.500000 -vt 0.125000 0.500000 vt 0.000000 0.375000 -vt 0.125000 0.375000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -s off -f 584/821/235 585/822/235 583/823/235 -f 586/824/236 589/825/236 585/826/236 -f 590/827/237 587/828/237 589/825/237 -f 588/829/238 583/823/238 587/828/238 -f 589/830/239 583/831/239 585/832/239 -f 586/833/240 588/829/240 590/834/240 -f 584/821/235 586/835/235 585/822/235 -f 586/824/236 590/827/236 589/825/236 -f 590/827/237 588/829/237 587/828/237 -f 588/829/238 584/821/238 583/823/238 -f 589/830/239 587/836/239 583/831/239 -f 586/833/240 584/821/240 588/829/240 -o Body17 -v 0.125000 1.750000 0.250000 -v -0.125000 1.750000 0.250000 -v 0.125000 1.750000 -0.250000 -v -0.125000 1.750000 -0.250000 -v 0.125000 1.000000 0.250000 -v -0.125000 1.000000 0.250000 -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -vt 0.312500 0.375000 -vt 0.437500 0.500000 -vt 0.312500 0.500000 -vt 0.437500 0.500000 -vt 0.562500 0.375000 -vt 0.562500 0.500000 -vt 0.500000 0.375000 -vt 0.625000 -0.000000 -vt 0.625000 0.375000 -vt 0.437500 0.375000 -vt 0.500000 -0.000000 -vt 0.437500 -0.000000 -vt 0.250000 0.375000 -vt 0.312500 -0.000000 -vt 0.437500 0.375000 -vt 0.250000 -0.000000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 1.0000 -s off -f 591/837/241 594/838/241 592/839/241 -f 597/840/242 595/841/242 596/842/242 -f 594/843/243 596/844/243 592/845/243 -f 593/846/244 597/847/244 594/843/244 -f 591/837/245 598/848/245 593/846/245 -f 592/849/246 595/850/246 591/837/246 -f 591/837/241 593/846/241 594/838/241 -f 597/840/242 598/851/242 595/841/242 -f 594/843/243 597/847/243 596/844/243 -f 593/846/244 598/848/244 597/847/244 -f 591/837/245 595/850/245 598/848/245 -f 592/849/246 596/852/246 595/850/246 +s 0 +f 608/495/248 609/496/248 607/497/248 +f 610/498/249 613/499/249 609/500/249 +f 614/501/250 611/502/250 613/499/250 +f 612/503/251 607/497/251 611/502/251 +f 613/504/252 607/501/252 609/505/252 +f 610/506/253 612/503/253 614/504/253 +f 608/495/248 610/507/248 609/496/248 +f 610/498/249 614/501/249 613/499/249 +f 614/501/250 612/503/250 611/502/250 +f 612/503/251 608/495/251 607/497/251 +f 613/504/252 611/503/252 607/501/252 +f 610/506/253 608/495/253 612/503/253 o Socket v 0.625000 0.000000 0.625000 -v 0.625000 0.000000 -0.625000 +v 0.625000 -0.000000 -0.625000 v -0.625000 0.000000 0.625000 -v -0.625000 0.000000 -0.625000 +v -0.625000 -0.000000 -0.625000 v -0.625000 0.250000 0.625000 v 0.625000 0.250000 0.625000 v 0.625000 0.250000 -0.625000 v -0.625000 0.250000 -0.625000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 vt 0.000000 1.000000 vt 1.000000 0.166667 vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.000000 0.166667 -vt 1.000000 0.166667 vt 0.000000 0.166667 vt 1.000000 0.000000 -vt 1.000000 0.166667 -vt 1.000000 0.000000 -vt 0.000000 0.166667 vt 0.000000 0.000000 -vt 0.000000 0.166667 -vt 1.000000 0.000000 -vt 1.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.166667 -vt 0.000000 0.000000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -s off -f 601/853/247 600/854/247 599/855/247 -f 605/856/248 603/857/248 604/858/248 -f 601/859/249 606/860/249 602/861/249 -f 600/862/250 604/863/250 599/864/250 -f 602/865/251 605/866/251 600/854/251 -f 599/867/252 603/857/252 601/868/252 -f 601/853/247 602/865/247 600/854/247 -f 605/856/248 606/869/248 603/857/248 -f 601/859/249 603/870/249 606/860/249 -f 600/862/250 605/871/250 604/863/250 -f 602/865/251 606/872/251 605/866/251 -f 599/867/252 604/858/252 603/857/252 -o Body -v 0.125000 1.750000 0.250000 -v -0.125000 1.750000 0.250000 -v 0.125000 1.750000 -0.250000 -v -0.125000 1.750000 -0.250000 -v 0.125000 1.000000 0.250000 -v -0.125000 1.000000 0.250000 -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -v 0.156250 1.781250 0.281250 -v -0.156250 1.781250 0.281250 -v 0.156250 1.781250 -0.281250 -v -0.156250 1.781250 -0.281250 -v 0.156250 0.968750 0.281250 -v -0.156250 0.968750 0.281250 -v -0.156250 0.968750 -0.281250 -v 0.156250 0.968750 -0.281250 -vt 0.312500 0.687500 -vt 0.437500 0.750000 -vt 0.312500 0.750000 -vt 0.437500 0.750000 -vt 0.562500 0.687500 -vt 0.562500 0.750000 -vt 0.500000 0.687500 -vt 0.625000 0.500000 +s 0 +f 617/508/254 616/509/254 615/510/254 +f 621/510/255 619/511/255 620/509/255 +f 617/511/256 622/512/256 618/509/256 +f 616/512/257 620/511/257 615/513/257 +f 618/511/258 621/512/258 616/509/258 +f 615/512/259 619/511/259 617/513/259 +f 617/508/254 618/511/254 616/509/254 +f 621/510/255 622/508/255 619/511/255 +f 617/511/256 619/513/256 622/512/256 +f 616/512/257 621/509/257 620/511/257 +f 618/511/258 622/513/258 621/512/258 +f 615/512/259 620/509/259 619/511/259 +o Fluoro +v 0.610719 0.246094 0.295662 +v 0.397021 0.246094 0.295662 +v 0.610719 0.246094 0.000000 +v 0.397021 0.246094 0.000000 +v 0.620287 0.301531 0.295662 +v 0.387453 0.301531 0.295662 +v 0.620287 0.301531 0.000000 +v 0.387453 0.301531 0.000000 +v 0.620287 0.273812 0.000000 +v 0.387453 0.273812 0.000000 +v 0.620287 0.273812 0.295662 +v 0.387453 0.273812 0.295662 +v 0.397021 0.246094 0.314141 +v 0.610719 0.246094 0.314141 +v 0.620287 0.301531 0.314141 +v 0.387453 0.301531 0.314141 +v 0.387453 0.273812 0.314141 +v 0.620287 0.273812 0.314141 +v 0.397021 0.246094 -0.295662 +v 0.610719 0.246094 -0.295662 +v 0.397021 0.246094 0.000000 +v 0.610719 0.246094 0.000000 +v 0.387453 0.301531 -0.295662 +v 0.620287 0.301531 -0.295662 +v 0.387453 0.301531 0.000000 +v 0.620287 0.301531 -0.000000 +v 0.387453 0.273812 0.000000 +v 0.620287 0.273812 -0.000000 +v 0.387453 0.273812 -0.295662 +v 0.620287 0.273812 -0.295662 +v 0.610719 0.246094 -0.314141 +v 0.397021 0.246094 -0.314141 +v 0.387453 0.301531 -0.314141 +v 0.620287 0.301531 -0.314141 +v 0.620287 0.273812 -0.314141 +v 0.387453 0.273812 -0.314141 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.9453 -0.3263 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.9453 -0.3263 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.125000 0.937500 +vt 0.625000 0.875000 +vt 0.625000 0.937500 +vt 0.125000 0.687500 +vt 0.625000 0.125000 vt 0.625000 0.687500 -vt 0.437500 0.687500 -vt 0.500000 0.500000 -vt 0.437500 0.500000 -vt 0.250000 0.687500 -vt 0.312500 0.500000 -vt 0.312500 0.437500 -vt 0.437500 0.500000 -vt 0.312500 0.500000 -vt 0.562500 0.500000 -vt 0.437500 0.437500 -vt 0.562500 0.437500 -vt 0.500000 0.437500 -vt 0.625000 0.250000 -vt 0.625000 0.437500 -vt 0.437500 0.437500 -vt 0.500000 0.250000 -vt 0.437500 0.250000 -vt 0.250000 0.437500 -vt 0.312500 0.250000 -vt 0.437500 0.687500 -vt 0.250000 0.500000 -vt 0.437500 0.500000 -vt 0.250000 0.250000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 1.0000 -s off -f 607/873/253 610/874/253 608/875/253 -f 613/876/254 611/877/254 612/878/254 -f 610/879/255 612/880/255 608/881/255 -f 609/882/256 613/883/256 610/879/256 -f 607/873/257 614/884/257 609/882/257 -f 608/885/258 611/886/258 607/873/258 -f 615/887/253 618/888/253 616/889/253 -f 620/890/254 622/891/254 619/892/254 -f 618/893/255 620/894/255 616/895/255 -f 617/896/256 621/897/256 618/893/256 -f 615/887/257 622/898/257 617/896/257 -f 616/899/258 619/900/258 615/887/258 -f 607/873/253 609/882/253 610/874/253 -f 613/876/254 614/901/254 611/877/254 -f 610/879/255 613/883/255 612/880/255 -f 609/882/256 614/884/256 613/883/256 -f 607/873/257 611/886/257 614/884/257 -f 608/885/258 612/902/258 611/886/258 -f 615/887/253 617/896/253 618/888/253 -f 620/890/254 621/903/254 622/891/254 -f 618/893/255 621/897/255 620/894/255 -f 617/896/256 622/898/256 621/897/256 -f 615/887/257 619/900/257 622/898/257 -f 616/899/258 620/904/258 619/900/258 +vt 0.687500 0.125000 +vt 0.687500 0.687500 +vt 0.062500 0.687500 +vt 0.000000 0.125000 +vt 0.062500 0.125000 +vt 0.125000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.687500 +vt 0.125000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.062500 +vt 0.625000 0.000000 +vt 0.625000 0.062500 +vt 1.000000 0.375000 +vt 0.937500 0.437500 +vt 0.937500 0.375000 +vt 1.000000 0.437500 +vt 0.937500 1.000000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.937500 0.500000 +vt 0.000000 0.687500 +vt 0.125000 0.875000 +vt 0.125000 0.000000 +s 0 +f 632/514/260 629/515/260 631/516/260 +f 630/517/261 627/518/261 629/519/261 +f 629/519/262 633/520/262 631/521/262 +f 632/522/263 624/523/263 634/524/263 +f 632/522/264 628/525/264 630/517/264 +f 631/521/265 623/526/265 625/527/265 +f 626/528/260 631/516/260 625/529/260 +f 639/530/266 636/531/266 640/532/266 +f 635/533/263 634/534/263 624/535/263 +f 640/534/265 623/533/265 633/536/265 +f 638/525/266 640/532/266 637/518/266 +f 638/537/261 627/538/261 628/539/261 +f 639/534/264 628/538/264 634/536/264 +f 637/540/262 633/536/262 627/538/262 +f 650/514/266 647/515/266 649/516/266 +f 648/517/261 645/518/261 647/519/261 +f 647/519/264 651/520/264 649/521/264 +f 644/541/265 652/524/265 650/522/265 +f 650/522/262 646/525/262 648/517/262 +f 649/521/263 641/526/263 643/527/263 +f 644/528/266 649/516/266 643/529/266 +f 657/530/260 654/531/260 658/532/260 +f 653/533/265 652/534/265 642/535/265 +f 658/534/263 641/533/263 651/536/263 +f 656/525/260 658/532/260 655/518/260 +f 656/537/261 645/538/261 646/539/261 +f 657/534/262 646/538/262 652/536/262 +f 655/540/264 651/536/264 645/538/264 +f 632/514/260 630/542/260 629/515/260 +f 630/517/261 628/525/261 627/518/261 +f 629/519/262 627/518/262 633/520/262 +f 632/522/263 626/541/263 624/523/263 +f 632/522/264 634/524/264 628/525/264 +f 631/521/265 633/520/265 623/526/265 +f 626/528/260 632/514/260 631/516/260 +f 639/530/266 635/543/266 636/531/266 +f 635/533/263 639/536/263 634/534/263 +f 640/534/265 636/535/265 623/533/265 +f 638/525/266 639/530/266 640/532/266 +f 638/537/261 637/540/261 627/538/261 +f 639/534/264 638/540/264 628/538/264 +f 637/540/262 640/534/262 633/536/262 +f 650/514/266 648/542/266 647/515/266 +f 648/517/261 646/525/261 645/518/261 +f 647/519/264 645/518/264 651/520/264 +f 644/541/265 642/523/265 652/524/265 +f 650/522/262 652/524/262 646/525/262 +f 649/521/263 651/520/263 641/526/263 +f 644/528/266 650/514/266 649/516/266 +f 657/530/260 653/543/260 654/531/260 +f 653/533/265 657/536/265 652/534/265 +f 658/534/263 654/535/263 641/533/263 +f 656/525/260 657/530/260 658/532/260 +f 656/537/261 655/540/261 645/538/261 +f 657/534/262 656/540/262 646/538/262 +f 655/540/264 658/534/264 651/536/264 +o Glow +v 0.388825 0.297917 0.296631 +v -0.007899 1.660617 1.039308 +v 0.388825 0.297917 -0.296631 +v -0.007899 1.660617 -1.039308 +v 0.619008 0.297917 0.296631 +v 1.015732 1.660617 1.039308 +v 0.619008 0.297917 -0.296631 +v 1.015732 1.660617 -1.039308 +vn -0.9601 -0.2795 -0.0000 +vn -0.0000 -0.4785 -0.8781 +vn 0.9601 -0.2795 -0.0000 +vn -0.0000 -0.4785 0.8781 +vt 1.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 -0.000000 +vt 1.000000 1.000000 +vt 0.000000 -0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt -0.000000 1.000000 +s 0 +f 660/544/267 661/545/267 659/546/267 +f 662/547/268 665/548/268 661/549/268 +f 665/550/269 664/551/269 663/552/269 +f 664/544/270 659/545/270 663/546/270 +f 660/544/267 662/551/267 661/545/267 +f 662/547/268 666/553/268 665/548/268 +f 665/550/269 666/544/269 664/551/269 +f 664/544/270 660/551/270 659/545/270 diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/glow.png b/src/main/resources/assets/hbm/textures/models/trinkets/glow.png new file mode 100644 index 0000000000000000000000000000000000000000..2136ef651149a10cfe87a84593c5b9d52bfcb173 GIT binary patch literal 4331 zcmeHKYj6|S6<&eC#KA5x4u+T{8v$+;yxNy6OIs<%mV~W>jIdRZQ&O|qy%K9nT6wj$ zWQY0zDFG6QgA;H9lvmueNl0N@USS&S8slkjQsY7rn2@-M+tQ|lHYu1ep1OC}?@4Al zo@xGBGt%BYkMExI-E+?9ZgCalB_`aLfFMYsBi~jCpR<(jjOpo6ap_Na4ZA)l+3qg8weRMJ#zHdhygh%P zBS2qRc=KlZ^BYf!wxnArr4OG?u{ktPi)`@CAD=mLzj5~_>vyi4(>p=P`kZ(tNn=UO2T2LY0aH!&ii(xq~^6A z>*?w6UTSSGULC(WXI4K_UKuWwpGzLtmGaoxSop(dqkRuVZy*PX!K;^NPj$aTb#FP@ zbpBUc>sQa1n~Oa3jHB~n(~GG=`S*FL~6Hdn%7b--%ajl3VF_^o&ELh zo$prdGj_hcBX@m)S?HR!<-t?B)BWd8^&V-V+m;$EE9R%qS@w8Flw6$l$iHTm+g4`2 zohs=T?>S+7?GjV=apM`n)3u6P^NML}+|CADf|kFyGUwho2Y*xga#Q{vYd&nt{^WL1 z?~dR9P_v+8N~!B1Q_VlKZ(luJyys_9+6Zg>{uI>J!r3dRe^Osxiebn){ zsSV9<>=f%ZTGt-5UH;I`i>V7W0ey#C$aj@(v1z27l=W>PN3v6 zYqK9sFvl1O5Ck%d#)5%Rgo#=dKzfi;eSa)cr>8{&Wh1;KR!#L4m!6iu6G z%xf|kFg+lkw~_E-Ud{{g^gKxtzA+FhBmq_>8yFjv0>wipUlwiPC}6;V*O!Uu^(GEu zNnpfCE|cRa(m)znN`>M%W~nFzS$Ld6ko5yR9P+CQg>WXv<*;Ze9Wg3#1z6b!9bgX# zAzq9|MpbSh2#RD@;gifFj0O`$8)-UIpG6o(jaC6E0&7u0B?%p^S2fDPFfbiREvr;2 z1W@HL8^$UDRu(0K>6U?;A=oon+ZkLwqRIpFog(P33xS5h&8C< z*0CW!fb(OhV29Hah9;11$DU;WeUWxYj zjxIO}@sUwD#FsL3zQxbbIed#dKlP^&{OR6hc{cUJg?wc_T?ew^dCQxrQyPS4N|!jV$89cM^2A%2r(Uv`BhTM?`SlAKM!e~r%OPT#r|O<0 zv~%&i)YN29r$?r5-e_C&17j|J>@Lspw#_Z?#{W6Jq_Q>tr=2hEO=$0bX`Ul#?Yx=a o-(PS}`qcl|r)pPr_idY9dvU)$zH(Oj9VID;y}ZWZ~y=R literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/mellowrpg8.png b/src/main/resources/assets/hbm/textures/models/trinkets/mellowrpg8.png new file mode 100644 index 0000000000000000000000000000000000000000..efa5d6879a6e79c0d744fc357481be3426252611 GIT binary patch literal 7337 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 literal 0 HcmV?d00001 From 170bbf165e19c76a54bea25edcca4b5123b0d484 Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 23 Feb 2024 15:47:18 -0800 Subject: [PATCH 219/376] plop --- .../container/ContainerElectricFurnace.java | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java index 14e375c65..5056782e9 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java @@ -2,14 +2,18 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotSmelting; import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; +import api.hbm.energy.IBatteryItem; 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.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; public class ContainerElectricFurnace extends Container { @@ -42,33 +46,42 @@ public class ContainerElectricFurnace extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 2) { - if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { + if(index <= 3) { + if(!this.mergeItemStack(stack, 4, this.inventorySlots.size(), true)) { return null; } - var4.onSlotChange(var5, var3); - } else if(!this.mergeItemStack(var5, 1, 2, false)) { - if(!this.mergeItemStack(var5, 0, 1, false)) + slot.onSlotChange(stack, rStack); + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) + return null; + + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 3, 4, false)) + return null; + + } else if(!this.mergeItemStack(stack, 1, 2, false)) return null; } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override From 1be60d718f2ef51c1170563e7f44dd33c4af87ed Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 23 Feb 2024 15:51:02 -0800 Subject: [PATCH 220/376] 'ate unused imports --- .../com/hbm/inventory/container/ContainerElectricFurnace.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java index 5056782e9..19ee67510 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java @@ -13,7 +13,6 @@ import net.minecraft.inventory.Container; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; public class ContainerElectricFurnace extends Container { From 90a66ebfdbb03dce70a15773e50de2fa57198efd Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 24 Feb 2024 10:49:50 -0800 Subject: [PATCH 221/376] Fixed cent, acidizer, arc furnace & welder shift clicks --- .../container/ContainerCentrifuge.java | 47 +++++++++++------ .../container/ContainerCrystallizer.java | 50 ++++++++++--------- .../container/ContainerMachineArcFurnace.java | 43 ++++++++++------ .../container/ContainerMachineArcWelder.java | 35 +++++++------ 4 files changed, 105 insertions(+), 70 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java index 4fca10fa1..999bce6f6 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java @@ -2,8 +2,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -39,31 +42,43 @@ public class ContainerCentrifuge extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - SlotCraftingOutput.checkAchievements(p_82846_1_, var5); - - if(par2 <= 6) { - if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + + if(index <= 7) { + if(!this.mergeItemStack(stack, 8, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 0, 2, false)) { - return null; + + slot.onSlotChange(stack, rStack); + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 1, 2, false)) + return null; + + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 6, 8, false)) + return null; + + } else if(!this.mergeItemStack(stack, 0, 1, false)) + return null; } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java index 0a6747b9b..55f73ebd7 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java @@ -2,7 +2,9 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; import api.hbm.energy.IBatteryItem; @@ -46,44 +48,46 @@ public class ContainerCrystallizer extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - SlotCraftingOutput.checkAchievements(p_82846_1_, var5); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + SlotCraftingOutput.checkAchievements(player, stack); - if(par2 <= diFurnace.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { + if(index <= 7) { + if(!this.mergeItemStack(stack, 8, this.inventorySlots.size(), true)) { return null; } } else { - if(var3.getItem() instanceof IBatteryItem) { - if(!this.mergeItemStack(var5, 1, 2, false)) { + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 1, 2, false)) return null; - } - } else if(var3.getItem() instanceof IItemFluidIdentifier) { - if(!this.mergeItemStack(var5, 7, 8, false)) { + + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 7, 8, false)) return null; - } - } else { - if(!this.mergeItemStack(var5, 0, 1, false)) { + + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 5, 7, false)) + return null; + + } else + if(!this.mergeItemStack(stack, 0, 1, false)) return null; - } - } } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java index 746bef698..15fbae2e9 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java @@ -1,7 +1,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotSmelting; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; + +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -41,34 +45,43 @@ public class ContainerMachineArcFurnace extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 5) { - if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { + if(index <= 5) { + if(!this.mergeItemStack(stack, 6, this.inventorySlots.size(), true)) { return null; } - var4.onSlotChange(var5, var3); + slot.onSlotChange(stack, rStack); - } else if(!this.mergeItemStack(var5, 0, 1, false)) { - if(!this.mergeItemStack(var5, 2, 6, false)) + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 5, 6, false)) + return null; + + } else if(rStack.getItem() == ModItems.arc_electrode_desh || rStack.getItem() == ModItems.arc_electrode) { + if(!this.mergeItemStack(stack, 2, 5, false)) + return null; + + } else if(!this.mergeItemStack(stack, 0, 1, false)) return null; } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java index 9c5d516b8..701d718bf 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java @@ -3,6 +3,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotUpgrade; import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineArcWelder; @@ -52,35 +53,37 @@ public class ContainerMachineArcWelder extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(index); + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(index <= 3) { - if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { + if(index <= 7) { + if(!this.mergeItemStack(stack, 8, this.inventorySlots.size(), true)) { return null; } } else { - if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { - if(!this.mergeItemStack(var5, 4, 5, false)) return null; - } else if(var3.getItem() instanceof ItemMachineUpgrade ) { - if(!this.mergeItemStack(var5, 6, 8, false)) return null; + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 5, 6, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 6, 8, false)) return null; } else { - if(!this.mergeItemStack(var5, 0, 3, false)) return null; + if(!this.mergeItemStack(stack, 0, 3, false)) return null; } } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } } From e88d3aba19ffc56ca4a3d8a4cef7ec30940bf2f4 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 25 Feb 2024 17:59:07 +1100 Subject: [PATCH 222/376] Add animations to Congo Lake --- .../hbm/handler/guncfg/GunGrenadeFactory.java | 19 +- src/main/java/com/hbm/items/ModItems.java | 2 +- .../com/hbm/items/weapon/ItemGunCongo.java | 36 - .../java/com/hbm/main/ResourceManager.java | 1 + .../item/weapon/ItemRenderWeaponCongo.java | 85 +- .../models/weapons/animations/congolake.json | 1 + .../assets/hbm/models/weapons/congolake.obj | 4959 ++++++++++------- .../assets/hbm/sounds/weapon/glReload.ogg | Bin 10791 -> 23147 bytes .../assets/hbm/sounds/weapon/glShoot.ogg | Bin 18670 -> 51293 bytes 9 files changed, 2898 insertions(+), 2205 deletions(-) delete mode 100644 src/main/java/com/hbm/items/weapon/ItemGunCongo.java create mode 100644 src/main/resources/assets/hbm/models/weapons/animations/congolake.json diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index 092b7fd5a..cac9e4526 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -11,10 +11,12 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoGrenade; import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.main.ResourceManager; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -69,11 +71,11 @@ public class GunGrenadeFactory { GunConfiguration config = new GunConfiguration(); - config.rateOfFire = 20; + config.rateOfFire = 24; config.roundsPerCycle = 1; config.gunMode = GunConfiguration.MODE_NORMAL; config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 20; + config.reloadDuration = 16; config.firingDuration = 0; config.ammoCap = 4; config.reloadType = GunConfiguration.RELOAD_SINGLE; @@ -81,6 +83,7 @@ public class GunGrenadeFactory { config.crosshair = Crosshair.L_CIRCUMFLEX; config.firingSound = "hbm:weapon.glShoot"; config.reloadSound = GunConfiguration.RSOUND_GRENADE_NEW; + config.reloadSoundEnd = false; config.name = "congoLake"; config.manufacturer = EnumGunManufacturer.NAWS; @@ -89,7 +92,17 @@ public class GunGrenadeFactory { config.durability = 2500; config.ejector = EJECTOR_CONGOLAKE; - + + config.reloadAnimationsSequential = true; + + config.loadAnimations = i -> { + config.animations.put(AnimType.CYCLE, ResourceManager.congolake_anim.get("Fire")); + config.animations.put(AnimType.RELOAD, ResourceManager.congolake_anim.get("ReloadStart")); + config.animations.put(AnimType.RELOAD_EMPTY, ResourceManager.congolake_anim.get("ReloadEmpty")); + config.animations.put(AnimType.RELOAD_CYCLE, ResourceManager.congolake_anim.get("Reload")); + config.animations.put(AnimType.RELOAD_END, ResourceManager.congolake_anim.get("ReloadEnd")); + }; + return config; } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d48129c4d..71d8d9173 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4166,7 +4166,7 @@ public class ModItems { gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro"); gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); - gun_congolake = new ItemGunCongo(GunGrenadeFactory.getCongoConfig()).setUnlocalizedName("gun_congolake").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_congolake"); + gun_congolake = new ItemGunBase(GunGrenadeFactory.getCongoConfig()).setUnlocalizedName("gun_congolake").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_congolake"); 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_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunCongo.java b/src/main/java/com/hbm/items/weapon/ItemGunCongo.java deleted file mode 100644 index a4657cb6e..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunCongo.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.item.ItemStack; - -public class ItemGunCongo extends ItemGunBase { - - public ItemGunCongo(GunConfiguration config) { - super(config); - } - - @Override - @SideOnly(Side.CLIENT) - public BusAnimation getAnimation(ItemStack stack, AnimType type) { - - if(type == AnimType.CYCLE) { - return new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframePosition(1, 0, 0, 50) - .addKeyframePosition(0, 0, 0, 100)) - .addBus("PUMP", new BusAnimationSequence() - .addKeyframePosition(0, 0, 0, 500) - .addKeyframePosition(1, 0, 0, 100) - .addKeyframePosition(0, 0, 0, 200)); - - } - - return null; - } -} diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 8aa0f75f7..7d8bd7d01 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -853,6 +853,7 @@ public class ResourceManager { public static final HashMap spas_12_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/spas12.json")); public static final HashMap supershotty_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/supershotty.json")); public static final HashMap benelli_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/benelli.json")); + public static final HashMap congolake_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/congolake.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java index bcf9f2c02..ba99e1920 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java @@ -1,7 +1,12 @@ package com.hbm.render.item.weapon; +import java.awt.Color; + import org.lwjgl.opengl.GL11; +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.ResourceManager; import com.hbm.render.anim.HbmAnimations; @@ -34,8 +39,7 @@ public class ItemRenderWeaponCongo implements IItemRenderer { GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.congolake_tex); @@ -50,17 +54,70 @@ public class ItemRenderWeaponCongo implements IItemRenderer { GL11.glRotated(90, 0, 1, 0); GL11.glScaled(s0, s0, s0); - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(0, 0, -recoil[0]); - - GL11.glShadeModel(GL11.GL_SMOOTH); + HbmAnimations.applyRelevantTransformation("Gun"); ResourceManager.congolake.renderPart("Gun"); - double[] pump = HbmAnimations.getRelevantTransformation("PUMP"); - GL11.glTranslated(0, 0, -pump[0]); - - ResourceManager.congolake.renderPart("Pump_Pummp"); - GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + { + HbmAnimations.applyRelevantTransformation("Pump"); + ResourceManager.congolake.renderPart("Pump"); + } + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + { + HbmAnimations.applyRelevantTransformation("Sight"); + ResourceManager.congolake.renderPart("Sight"); + } + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + { + HbmAnimations.applyRelevantTransformation("Loop"); + ResourceManager.congolake.renderPart("Loop"); + } + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + { + HbmAnimations.applyRelevantTransformation("GuardOuter"); + ResourceManager.congolake.renderPart("GuardOuter"); + + GL11.glPushMatrix(); + { + HbmAnimations.applyRelevantTransformation("GuardInner"); + ResourceManager.congolake.renderPart("GuardInner"); + } + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); + + HbmAnimations.applyRelevantTransformation("Shell"); + + ItemGunBase gun = (ItemGunBase)item.getItem(); + BulletConfiguration bullet = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(ItemGunBase.getMagType(item))); + int[] colors = bullet.spentCasing != null ? bullet.spentCasing.getColors() : new int[] { 0x3E3E3E }; + + Color shellColor = new Color(colors.length >= 2 ? colors[1] : 0x3E3E3E); + GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); + ResourceManager.congolake.renderPart("Shell"); + + Color shellForeColor = new Color(colors[0]); + GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); + ResourceManager.congolake.renderPart("ShellFore"); + + GL11.glColor3f(1F, 1F, 1F); + } + GL11.glPopMatrix(); break; @@ -96,11 +153,11 @@ public class ItemRenderWeaponCongo implements IItemRenderer { } if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.congolake.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); } - + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); } } diff --git a/src/main/resources/assets/hbm/models/weapons/animations/congolake.json b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json new file mode 100644 index 000000000..7d1773aca --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0], [0.1729116439819336, 183.33333333333337], [0.13706907629966736, 83.33333333333326], [0.13706907629966736, 200.0], [0.08123889565467834, 166.66666666666663], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0], [0.07001475989818573, 183.33333333333337], [0.3594728708267212, 83.33333333333326], [0.3594728708267212, 200.0], [0.052131712436676025, 166.66666666666663], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0], [0.1356278508901596, 183.33333333333337], [0.16076654195785522, 83.33333333333326], [0.16076654195785522, 200.0], [0.13280370831489563, 166.66666666666663], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669], [-1.6187724423744758, 216.66666666666663], [-3.0496036919995886, 100.0], [-1.5771150119048625, 216.66666666666663], [-1.3797563756722266, 133.33333333333348], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669], [6.481160527009576, 216.66666666666663], [6.3670886839075465, 100.0], [2.910396325865089, 216.66666666666663], [2.9018462096847024, 133.33333333333348], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669], [-1.7981676810899783, 216.66666666666663], [-1.8284025806680975, 100.0], [4.424185025436767, 216.66666666666663], [0.5393851613977845, 133.33333333333348], [0.0, 116.66666666666652]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334], [-0.10627399384975433, 49.999999999999886], [-0.7439179420471191, 66.66666666666674], [-0.7439179420471191, 200.0], [-0.18597948551177979, 66.66666666666674], [-0.0, 66.66666666666652]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [-2.204763704938273e-09, 683.3333333333334], [-2.204763704938273e-09, 66.66666666666663], [1.5205265935236412e-09, 116.66666666666674], [-0.01397116482257843, 66.66666666666663], [-0.01397116482257843, 49.999999999999886], [1.5205265935236412e-09, 150.0]], "z": [[1.2549771070480347, 0.0], [1.2549771070480347, 683.3333333333334], [0.4066495895385742, 66.66666666666663], [0.4066495895385742, 116.66666666666674], [0.4519183039665222, 66.66666666666663], [0.4519183039665222, 49.999999999999886], [1.2549771070480347, 150.0]], "y": [[1.7459099292755127, 0.0], [1.199751853942871, 683.3333333333334], [1.199751853942871, 66.66666666666663], [1.5027252435684204, 116.66666666666674], [1.5814520120620728, 66.66666666666663], [1.5814520120620728, 49.999999999999886], [1.7459099292755127, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [-24.580495030325643, 116.66666666666674], [-15.192167789711336, 66.66666666666663], [-15.192167789711336, 49.999999999999886], [0.0, 150.0]], "z": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [0.0, 116.66666666666674], [-9.025331207124422e-09, 66.66666666666663], [-9.025331207124422e-09, 49.999999999999886], [0.0, 150.0]], "y": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [8.004127933608693e-08, 116.66666666666674], [1.31019960381489e-07, 66.66666666666663], [1.31019960381489e-07, 49.999999999999886], [0.0, 150.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "Reload": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[1.7611019611358643, 0.0], [1.7611019611358643, 400.0], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 66.66666666666663]], "z": [[0.31467199325561523, 0.0], [0.31467199325561523, 400.0], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 66.66666666666663]], "y": [[0.8750439286231995, 0.0], [0.8750439286231995, 400.0], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 66.66666666666663]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [-18.983153297952903, 400.0], [-20.627756982159838, 100.0], [-20.258341078257818, 116.66666666666674], [-18.983153297952903, 66.66666666666663]], "z": [[86.04810969222216, 0.0], [86.04810969222216, 400.0], [89.15816119870658, 100.0], [86.00693048171614, 116.66666666666674], [86.04810969222216, 66.66666666666663]], "y": [[29.613753637261834, 0.0], [29.613753637261834, 400.0], [25.730953311102372, 100.0], [27.311677651096765, 116.66666666666674], [29.613753637261834, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}, "ReloadEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [1.2511006593704224, 183.33333333333331], [1.6423077583312988, 216.66666666666669], [1.6554410457611084, 116.66666666666663], [1.7105761766433716, 66.66666666666674], [1.7611019611358643, 283.33333333333337]], "z": [[-0.0, 0.0], [0.26347818970680237, 183.33333333333331], [0.32502928376197815, 216.66666666666669], [0.30153536796569824, 116.66666666666663], [0.3000105023384094, 66.66666666666674], [0.31467199325561523, 283.33333333333337]], "y": [[0.0, 0.0], [0.42658743262290955, 183.33333333333331], [-0.009814918041229248, 216.66666666666669], [-0.1131410151720047, 116.66666666666663], [-0.20051059126853943, 66.66666666666674], [0.8750439286231995, 283.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 116.66666666666667], [-37.38541266737456, 283.3333333333333], [-36.45018560017598, 116.66666666666663], [-30.74254485044399, 66.66666666666674], [-18.983153297952903, 283.33333333333337]], "z": [[-0.0, 0.0], [32.06710636071164, 116.66666666666667], [40.97562647251089, 283.3333333333333], [38.71689657436601, 116.66666666666663], [32.11341504328433, 66.66666666666674], [86.04810969222216, 283.33333333333337]], "y": [[0.0, 0.0], [21.50487279989995, 116.66666666666667], [44.292741993873435, 283.3333333333333], [46.044774308440914, 116.66666666666663], [49.72028010083778, 66.66666666666674], [29.613753637261834, 283.33333333333337]]}}, "Pump": {"location": {"z": [[-0.0, 83.33333333333333], [-0.10627399384975433, 50.000000000000014], [-0.7439179420471191, 66.66666666666666], [-0.7439179420471191, 483.33333333333337], [-0.18597948551177979, 66.66666666666663], [-0.0, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.8807575702667236, 216.66666666666669], [0.1613924205303192, 216.66666666666669], [0.010319530963897705, 100.0], [2.558298035637563e-07, 83.33333333333337]], "z": [[-2.2731080055236816, 0.0], [-1.77922523021698, 216.66666666666669], [0.5386117100715637, 216.66666666666669], [0.9011819362640381, 100.0], [1.2500436305999756, 83.33333333333337]], "y": [[-1.4170563220977783, 0.0], [-0.7542737126350403, 216.66666666666669], [1.8265879154205322, 216.66666666666669], [1.7011022567749023, 100.0], [1.7520724534988403, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 166.66666666666666], [17.895010248068782, 216.66666666666666], [3.92045772037468, 116.66666666666669], [0.0, 116.66666666666674]], "z": [[0.0, 0.0], [-0.0, 166.66666666666666], [-7.282242678909106, 216.66666666666666], [-2.104055355191472, 116.66666666666669], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 166.66666666666666], [-21.433229238148392, 216.66666666666666], [-7.3901921111938655, 116.66666666666669], [0.0, 116.66666666666674]]}}}, "ReloadEnd": {"Gun": {"location": {"x": [[1.7611019611358643, 0.0], [-0.31797051429748535, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[0.31467199325561523, 0.0], [0.010336088016629219, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[0.8750439286231995, 0.0], [0.0250311940908432, 216.66666666666669], [0.0, 83.33333333333331]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [0.09662330444411844, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[86.04810969222216, 0.0], [-9.502314560125358, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[29.613753637261834, 0.0], [-0.24104249845162748, 216.66666666666669], [0.0, 83.33333333333331]]}}}, "ReloadStart": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[0.0, 0.0], [1.2318342924118042, 183.33333333333331], [1.642445683479309, 83.33333333333337], [1.7611019611358643, 133.33333333333331], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 66.66666666666663]], "z": [[-0.0, 0.0], [0.2732446491718292, 183.33333333333331], [0.36432620882987976, 83.33333333333337], [0.31467199325561523, 133.33333333333331], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 66.66666666666663]], "y": [[0.0, 0.0], [0.7328978776931763, 183.33333333333331], [0.9771971702575684, 83.33333333333337], [0.8750439286231995, 133.33333333333331], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 66.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 150.0], [-19.490018221164963, 83.33333333333334], [-18.983153297952903, 166.66666666666666], [-20.627756982159838, 100.0], [-20.258341078257818, 116.66666666666674], [-18.983153297952903, 66.66666666666663]], "z": [[-0.0, 0.0], [65.44332775888294, 150.0], [87.25777034517726, 83.33333333333334], [86.04810969222216, 166.66666666666666], [89.15816119870658, 100.0], [86.00693048171614, 116.66666666666674], [86.04810969222216, 66.66666666666663]], "y": [[0.0, 0.0], [21.504871092352655, 150.0], [28.673161456470208, 83.33333333333334], [29.613753637261834, 166.66666666666666], [25.730953311102372, 100.0], [27.311677651096765, 116.66666666666674], [29.613753637261834, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}}, "offset": {"GuardInner": [3.725290298461914e-09, 0.8707519173622131, 0.8854429721832275], "GuardOuter": [0.0, 0.8707519173622131, -0.07262593507766724], "Loop": [0.2532634139060974, 1.4936577081680298, 3.4837722778320312], "Pump": [1.1568772606551647e-09, 0.0, -0.0], "Shell": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "ShellFore": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "Sight": [0.0, 2.104297161102295, 2.990000009536743]}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/congolake.obj b/src/main/resources/assets/hbm/models/weapons/congolake.obj index 61dba5009..4a34fe6d0 100644 --- a/src/main/resources/assets/hbm/models/weapons/congolake.obj +++ b/src/main/resources/assets/hbm/models/weapons/congolake.obj @@ -1,383 +1,5 @@ -# Blender v2.79 (sub 0) OBJ File: 'CongoLake.blend' +# Blender 4.0.1 # www.blender.org -o Pump_Pummp -v 0.000000 0.935654 2.185543 -v -0.193840 1.015945 2.185543 -v -0.214852 0.994933 2.177396 -v 0.000000 0.905939 2.177396 -v -0.193840 1.403625 2.185543 -v -0.274131 1.209785 2.185543 -v -0.274131 1.209785 3.266089 -v -0.193840 1.403625 3.266089 -v 0.000000 1.483656 2.185543 -v 0.000000 1.483656 3.266089 -v 0.274131 1.209785 2.185543 -v 0.193656 1.403441 2.185543 -v 0.193656 1.403441 3.266089 -v 0.274131 1.209785 3.266089 -v 0.000000 0.935915 3.266089 -v -0.193840 1.015945 3.266089 -v 0.193656 1.016130 2.185543 -v 0.193656 1.016130 3.266089 -v 0.000000 1.513631 2.177396 -v 0.214852 1.424637 2.177396 -v 0.214852 1.424637 2.113585 -v 0.000000 1.513631 2.113585 -v -0.214852 1.424637 2.177396 -v 0.214852 0.994933 2.177396 -v -0.303846 1.209785 2.177396 -v 0.303846 1.209785 2.177396 -v -0.214852 0.994933 2.113585 -v -0.303846 1.209785 2.113585 -v -0.273445 1.209785 2.100498 -v -0.193355 1.016430 2.100498 -v -0.214852 1.424637 2.113585 -v 0.000000 0.905939 2.113585 -v 0.214852 0.994933 2.113585 -v 0.303846 1.209785 2.113585 -v -0.193355 1.403140 2.100498 -v 0.000000 1.483230 2.100498 -v 0.193355 1.403140 2.100498 -v 0.273445 1.209785 2.100498 -v 0.193355 1.016430 2.100498 -v 0.000000 0.936340 2.100498 -v 0.000000 0.905939 3.274235 -v -0.214852 0.994933 3.274235 -v 0.000000 1.513631 3.274235 -v 0.000000 1.513631 3.338046 -v 0.214852 1.424637 3.338046 -v 0.214852 1.424637 3.274235 -v -0.214852 1.424637 3.274235 -v 0.214852 0.994933 3.274235 -v -0.303846 1.209785 3.274235 -v 0.303846 1.209785 3.274235 -v -0.214852 0.994933 3.338046 -v -0.193355 1.016430 3.351134 -v -0.273445 1.209785 3.351134 -v -0.303846 1.209785 3.338046 -v -0.214852 1.424637 3.338046 -v 0.214852 0.994933 3.338046 -v 0.000000 0.905939 3.338046 -v 0.303846 1.209785 3.338046 -v -0.193355 1.403140 3.351134 -v 0.000000 0.936340 3.351134 -v 0.193355 1.016430 3.351134 -v 0.273445 1.209785 3.351134 -v 0.193355 1.403140 3.351134 -v 0.000000 1.483230 3.351134 -vt 0.270772 0.021748 -vt 0.259071 0.044520 -vt 0.258022 0.040873 -vt 0.124225 0.297698 -vt 0.000380 0.290063 -vt 0.124223 0.290059 -vt 0.000378 0.282428 -vt 0.124220 0.282425 -vt 0.124223 0.335878 -vt 0.000382 0.328240 -vt 0.124225 0.328243 -vt 0.124227 0.305336 -vt 0.000387 0.312974 -vt 0.000384 0.305339 -vt 0.124221 0.343509 -vt 0.000380 0.335874 -vt 0.000384 0.320605 -vt 0.124227 0.320609 -vt 0.000382 0.297701 -vt 0.124229 0.312974 -vt 0.301296 0.107856 -vt 0.311550 0.080842 -vt 0.315428 0.086659 -vt 0.319568 0.052066 -vt 0.317107 0.080578 -vt 0.317107 0.050600 -vt 0.254931 0.052066 -vt 0.257392 0.080578 -vt 0.254911 0.079099 -vt 0.303748 0.109442 -vt 0.316485 0.090335 -vt 0.316477 0.040872 -vt 0.301296 0.023322 -vt 0.303727 0.021748 -vt 0.278234 0.017112 -vt 0.297242 0.020803 -vt 0.277257 0.020803 -vt 0.270772 0.109430 -vt 0.259071 0.086659 -vt 0.273203 0.107856 -vt 0.278234 0.114066 -vt 0.297242 0.110375 -vt 0.296257 0.114096 -vt 0.297242 0.029029 -vt 0.278257 0.033023 -vt 0.277257 0.029029 -vt 0.311623 0.050600 -vt 0.257392 0.050600 -vt 0.262876 0.080578 -vt 0.315428 0.044519 -vt 0.297418 0.029138 -vt 0.277081 0.102040 -vt 0.277257 0.110375 -vt 0.297242 0.102149 -vt 0.273203 0.023322 -vt 0.262949 0.050336 -vt 0.308960 0.079078 -vt 0.278257 0.098155 -vt 0.265539 0.052100 -vt 0.277257 0.102149 -vt 0.296243 0.098155 -vt 0.311623 0.080578 -vt 0.308960 0.052100 -vt 0.262876 0.050600 -vt 0.265539 0.079078 -vt 0.296242 0.033023 -vt 0.189118 0.066082 -vt 0.194118 0.093837 -vt 0.187203 0.068873 -vt 0.246869 0.062649 -vt 0.244287 0.031805 -vt 0.251935 0.059501 -vt 0.246935 0.093837 -vt 0.251935 0.066083 -vt 0.253850 0.068873 -vt 0.196766 0.031805 -vt 0.187203 0.056711 -vt 0.194097 0.031747 -vt 0.246956 0.031747 -vt 0.253850 0.056711 -vt 0.222720 0.109905 -vt 0.241223 0.102404 -vt 0.224565 0.112754 -vt 0.199830 0.102404 -vt 0.218332 0.109905 -vt 0.216488 0.112754 -vt 0.216488 0.012829 -vt 0.199869 0.027151 -vt 0.199830 0.023147 -vt 0.241184 0.027151 -vt 0.224565 0.012829 -vt 0.241223 0.023147 -vt 0.203910 0.087717 -vt 0.220431 0.102305 -vt 0.201967 0.090833 -vt 0.239221 0.090631 -vt 0.244287 0.093779 -vt 0.201832 0.034953 -vt 0.189118 0.059501 -vt 0.220622 0.102305 -vt 0.241184 0.098433 -vt 0.220431 0.023279 -vt 0.218333 0.015679 -vt 0.199868 0.098433 -vt 0.239086 0.034751 -vt 0.222720 0.015679 -vt 0.194184 0.062935 -vt 0.196766 0.093779 -vt 0.197027 0.062792 -vt 0.220527 0.027543 -vt 0.244026 0.062792 -vt 0.237143 0.037867 -vt 0.220622 0.023278 -vt 0.201832 0.090631 -vt 0.239221 0.034953 -vt 0.237143 0.087717 -vt 0.246869 0.062935 -vt 0.203910 0.037867 -vt 0.194184 0.062649 -vt 0.239086 0.090833 -vt 0.201967 0.034750 -vt 0.000378 0.343505 -vt 0.297419 0.102040 -vt 0.319588 0.079099 -vt 0.296265 0.017112 -vt 0.258014 0.090336 -vt 0.311550 0.050336 -vt 0.262949 0.080842 -vt 0.277081 0.029138 -vt 0.220526 0.098041 -vn -0.1089 -0.2628 0.9587 -vn -0.9239 0.3827 0.0000 -vn -0.3816 0.9243 0.0000 -vn 0.9234 0.3837 0.0000 -vn -0.3816 -0.9243 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.9234 -0.3837 0.0000 -vn -0.9239 -0.3827 0.0000 -vn 0.3837 -0.9234 0.0002 -vn -0.1089 0.2628 0.9587 -vn 0.1083 -0.2605 0.9594 -vn 0.1080 0.2607 0.9593 -vn -0.2629 0.1089 0.9587 -vn -0.2628 -0.1089 0.9587 -vn 0.2628 -0.1089 0.9587 -vn 0.2605 0.1083 0.9594 -vn -0.3902 -0.1616 -0.9064 -vn -0.3827 0.9239 0.0000 -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.0000 0.0000 -1.0000 -vn 0.3902 0.1616 -0.9064 -vn -0.1616 -0.3902 -0.9064 -vn 0.1616 0.3902 -0.9064 -vn -0.1616 0.3902 -0.9064 -vn 0.1616 -0.3902 -0.9064 -vn -0.3902 0.1616 -0.9064 -vn 0.3902 -0.1616 -0.9064 -vn -0.1076 -0.2607 -0.9594 -vn -0.1076 0.2607 -0.9594 -vn 0.1080 -0.2607 -0.9594 -vn 0.1080 0.2607 -0.9594 -vn -0.2628 0.1089 -0.9587 -vn -0.2628 -0.1089 -0.9587 -vn 0.2605 -0.1082 -0.9594 -vn 0.2605 0.1082 -0.9594 -vn -0.3902 -0.1616 0.9064 -vn 0.0000 0.0000 1.0000 -vn 0.3902 0.1616 0.9064 -vn -0.1616 -0.3902 0.9064 -vn 0.1616 0.3902 0.9064 -vn -0.1616 0.3902 0.9064 -vn 0.1616 -0.3902 0.9064 -vn -0.3902 0.1616 0.9064 -vn 0.3902 -0.1616 0.9064 -vn -0.3827 -0.9239 0.0002 -vn -0.1077 0.2608 0.9594 -vn 0.1089 -0.2628 0.9587 -vn -0.2628 0.1089 0.9587 -vn -0.2629 -0.1089 0.9587 -vn 0.2605 -0.1083 0.9594 -vn 0.2628 0.1089 0.9587 -vn -0.1089 -0.2628 -0.9587 -vn -0.1089 0.2628 -0.9587 -vn 0.2628 -0.1089 -0.9587 -vn 0.2628 0.1089 -0.9587 -s off -f 2/1/1 4/2/1 1/3/1 -f 6/4/2 8/5/2 5/6/2 -f 5/6/3 10/7/3 9/8/3 -f 12/9/4 14/10/4 11/11/4 -f 2/12/5 15/13/5 16/14/5 -f 9/15/6 13/16/6 12/9/6 -f 11/11/7 18/17/7 17/18/7 -f 2/12/8 7/19/8 6/4/8 -f 17/18/9 15/13/9 1/20/9 -f 20/21/6 22/22/6 19/23/6 -f 5/24/10 19/25/10 23/26/10 -f 1/27/11 24/28/11 17/29/11 -f 12/30/12 19/23/12 9/31/12 -f 5/32/13 25/33/13 6/34/13 -f 2/35/14 25/36/14 3/37/14 -f 11/38/15 24/39/15 26/40/15 -f 11/41/16 20/42/16 12/43/16 -f 28/44/17 30/45/17 27/46/17 -f 19/25/18 31/47/18 23/26/18 -f 4/48/19 33/49/19 24/28/19 -f 23/50/2 28/51/2 25/33/2 -f 24/39/20 34/52/20 26/40/20 -f 25/36/8 27/46/8 3/37/8 -f 26/53/21 21/54/21 20/42/21 -f 3/55/22 32/56/22 4/2/22 -f 36/57/23 38/58/23 40/59/23 -f 34/60/24 37/61/24 21/54/24 -f 32/56/25 30/45/25 40/59/25 -f 22/22/26 37/61/26 36/57/26 -f 22/62/27 35/63/27 31/47/27 -f 32/64/28 39/65/28 33/49/28 -f 28/51/29 35/63/29 29/66/29 -f 34/52/30 39/65/30 38/58/30 -f 41/67/31 16/68/31 15/69/31 -f 44/70/6 46/71/6 43/72/6 -f 8/73/32 43/74/32 10/75/32 -f 48/76/33 15/77/33 18/78/33 -f 43/72/34 13/79/34 10/80/34 -f 49/81/35 8/82/35 7/83/35 -f 16/84/36 49/85/36 7/86/36 -f 14/87/37 48/88/37 18/89/37 -f 46/90/38 14/91/38 13/92/38 -f 52/93/39 54/94/39 51/95/39 -f 55/96/18 43/74/18 47/97/18 -f 56/98/19 41/99/19 48/76/19 -f 54/100/2 47/101/2 49/81/2 -f 58/102/20 48/88/20 50/103/20 -f 51/95/8 49/85/8 42/104/8 -f 45/105/21 50/106/21 46/90/21 -f 57/107/22 42/108/22 41/67/22 -f 60/109/40 62/110/40 64/111/40 -f 63/112/41 58/113/41 45/105/41 -f 60/109/42 51/114/42 57/107/42 -f 44/70/43 63/112/43 45/115/43 -f 59/116/44 44/117/44 55/96/44 -f 61/118/45 57/119/45 56/98/45 -f 54/100/46 59/116/46 55/120/46 -f 58/102/47 61/118/47 56/121/47 -f 2/1/1 3/55/1 4/2/1 -f 6/4/2 7/19/2 8/5/2 -f 5/6/3 8/5/3 10/7/3 -f 12/9/4 13/16/4 14/10/4 -f 2/12/48 1/20/48 15/13/48 -f 9/15/6 10/122/6 13/16/6 -f 11/11/7 14/10/7 18/17/7 -f 2/12/8 16/14/8 7/19/8 -f 17/18/19 18/17/19 15/13/19 -f 20/21/6 21/123/6 22/22/6 -f 5/24/49 9/124/49 19/25/49 -f 1/27/50 4/48/50 24/28/50 -f 12/30/12 20/21/12 19/23/12 -f 5/32/51 23/50/51 25/33/51 -f 2/35/52 6/125/52 25/36/52 -f 11/38/53 17/126/53 24/39/53 -f 11/41/54 26/53/54 20/42/54 -f 28/44/17 29/66/17 30/45/17 -f 19/25/18 22/62/18 31/47/18 -f 4/48/19 32/64/19 33/49/19 -f 23/50/2 31/127/2 28/51/2 -f 24/39/20 33/128/20 34/52/20 -f 25/36/8 28/44/8 27/46/8 -f 26/53/21 34/60/21 21/54/21 -f 3/55/22 27/129/22 32/56/22 -f 29/66/23 35/63/23 36/57/23 -f 36/57/23 37/61/23 38/58/23 -f 38/58/23 39/65/23 40/59/23 -f 40/59/23 30/45/23 29/66/23 -f 29/66/23 36/57/23 40/59/23 -f 34/60/24 38/58/24 37/61/24 -f 32/56/25 27/129/25 30/45/25 -f 22/22/26 21/123/26 37/61/26 -f 22/62/27 36/57/27 35/63/27 -f 32/64/28 40/59/28 39/65/28 -f 28/51/29 31/127/29 35/63/29 -f 34/52/30 33/128/30 39/65/30 -f 41/67/55 42/108/55 16/68/55 -f 44/70/6 45/115/6 46/71/6 -f 8/73/56 47/97/56 43/74/56 -f 48/76/33 41/99/33 15/77/33 -f 43/72/34 46/71/34 13/79/34 -f 49/81/35 47/101/35 8/82/35 -f 16/84/36 42/104/36 49/85/36 -f 14/87/57 50/103/57 48/88/57 -f 46/90/58 50/106/58 14/91/58 -f 52/93/39 53/130/39 54/94/39 -f 55/96/18 44/117/18 43/74/18 -f 56/98/19 57/119/19 41/99/19 -f 54/100/2 55/120/2 47/101/2 -f 58/102/20 56/121/20 48/88/20 -f 51/95/8 54/94/8 49/85/8 -f 45/105/21 58/113/21 50/106/21 -f 57/107/22 51/114/22 42/108/22 -f 64/111/40 59/116/40 53/130/40 -f 53/130/40 52/93/40 60/109/40 -f 60/109/40 61/118/40 62/110/40 -f 62/110/40 63/112/40 64/111/40 -f 64/111/40 53/130/40 60/109/40 -f 63/112/41 62/110/41 58/113/41 -f 60/109/42 52/93/42 51/114/42 -f 44/70/43 64/111/43 63/112/43 -f 59/116/44 64/111/44 44/117/44 -f 61/118/45 60/109/45 57/119/45 -f 54/100/46 53/130/46 59/116/46 -f 58/102/47 62/110/47 61/118/47 o Gun v 0.000000 2.012847 0.929753 v 0.000000 2.012847 1.070247 @@ -387,7 +9,7 @@ v 0.259217 1.720997 1.070247 v 0.257984 1.718743 0.928515 v 0.259047 1.606972 1.070247 v 0.257604 1.541884 0.928170 -v -0.144433 0.866083 0.913514 +v -0.208956 0.866083 0.913514 v -0.144446 0.864949 1.065059 v -0.258151 1.005157 1.070247 v -0.257451 1.005115 0.928270 @@ -401,7 +23,7 @@ v -0.183294 1.927366 0.929753 v 0.257451 1.005115 0.928270 v 0.258152 1.005157 1.070247 v 0.144446 0.864949 1.065059 -v 0.144434 0.866083 0.913514 +v 0.208957 0.866083 0.913514 v -0.257983 1.718743 -0.730968 v -0.183294 1.927366 -0.725578 v 0.257356 1.541884 -0.031674 @@ -622,53 +244,18 @@ v 0.326188 1.544065 3.484523 v 0.121073 1.544065 3.484523 v 0.326188 1.528315 3.446498 v 0.121073 1.528315 3.446498 -v 0.406256 1.125653 3.483772 -v 0.372781 1.206173 3.302696 -v 0.405798 1.241512 3.327720 -v 0.434647 1.172119 3.483772 -v 0.377865 1.264868 3.368210 -v 0.399229 1.213480 3.483772 -v 0.327584 1.243964 3.368210 -v 0.348947 1.192576 3.483772 -v 0.324441 1.207689 3.327720 -v 0.353290 1.138296 3.483772 -v 0.297563 1.387101 3.257974 -v 0.340975 1.397436 3.289178 -v 0.329861 1.380335 3.339669 -v 0.279580 1.359431 3.339669 -v 0.259618 1.363613 3.289178 -v 0.237243 1.532194 3.383282 -v 0.288991 1.522477 3.397170 -v 0.291365 1.472933 3.419640 -v 0.241084 1.452029 3.419640 -v 0.207634 1.488654 3.397170 -v 0.237243 1.532194 3.584262 -v 0.288991 1.522477 3.570374 -v 0.291365 1.472933 3.547904 -v 0.241084 1.452029 3.547904 -v 0.207634 1.488654 3.570374 -v 0.297563 1.387101 3.709570 -v 0.340975 1.397436 3.678366 -v 0.329861 1.380335 3.627876 -v 0.279580 1.359431 3.627876 -v 0.259618 1.363613 3.678366 -v 0.372781 1.206173 3.664848 -v 0.405798 1.241512 3.639824 -v 0.377865 1.264868 3.599334 -v 0.327584 1.243964 3.599334 -v 0.324441 1.207689 3.639824 -v 0.000000 1.983355 1.070358 -v 0.156272 1.918625 1.070358 -v 0.221002 1.762353 1.070358 -v 0.156272 1.606081 1.070358 -v 0.000000 1.541351 1.070358 -v -0.156272 1.606081 1.070358 -v -0.221002 1.762353 1.070358 +v 0.000000 1.983355 0.962615 +v 0.156272 1.918625 0.962615 +v 0.221002 1.762353 0.962615 +v 0.156272 1.606081 0.962615 +v 0.000000 1.541351 0.962615 +v -0.156272 1.606081 0.962615 +v -0.221002 1.762353 0.962615 v 0.000000 1.541351 3.018507 v 0.156272 1.606081 3.018507 v 0.156272 1.606081 3.391006 v 0.000000 1.541351 3.391006 -v -0.156272 1.918625 1.070358 +v -0.156272 1.918625 0.962615 v 0.156272 1.918625 3.391006 v 0.000000 1.983355 3.391006 v 0.000000 2.025926 3.417953 @@ -732,14 +319,14 @@ v 0.136914 1.625439 3.654342 v 0.193625 1.762353 3.654342 v 0.136914 1.899267 3.654342 v 0.000000 1.955978 3.654342 -v -0.156124 1.365909 1.034639 -v 0.000000 1.430577 1.034639 -v 0.156124 1.365909 1.034639 -v 0.220792 1.209785 1.034639 -v 0.156124 1.053662 1.034639 -v 0.000000 0.988993 1.034639 -v -0.156124 1.053662 1.034639 -v -0.220792 1.209785 1.034639 +v -0.156124 1.365909 0.961108 +v 0.000000 1.430577 0.961108 +v 0.156124 1.365909 0.961108 +v 0.220792 1.209785 0.961108 +v 0.156124 1.053662 0.961108 +v 0.000000 0.988993 0.961108 +v -0.156124 1.053662 0.961108 +v -0.220792 1.209785 0.961108 v 0.000000 1.430367 3.383215 v -0.155975 1.365760 3.383215 v -0.199637 1.409422 3.410316 @@ -835,30 +422,12 @@ v -0.000564 2.091560 2.870565 v 0.128183 2.091560 2.870565 v 0.128183 2.091560 2.999992 v -0.000758 2.091560 2.999992 -v -0.000758 2.040556 3.941854 -v -0.000758 2.038297 3.983544 -v -0.128183 2.038297 3.983544 -v -0.103443 2.040556 3.941854 v -0.128183 2.117034 2.999992 v -0.000758 2.117034 2.999992 v -0.000564 2.117035 2.870565 v -0.128183 2.117035 2.870565 v 0.128183 2.117034 2.999992 v 0.128183 2.117035 2.870565 -v -0.000758 2.113045 3.073697 -v -0.103443 2.113045 3.073697 -v -0.000758 2.063745 3.984738 -v -0.128183 2.063745 3.984738 -v 0.128183 2.038297 3.983544 -v 0.128183 2.063745 3.984738 -v -0.000758 2.087663 3.071927 -v 0.103443 2.087663 3.071927 -v 0.103443 2.065968 3.943648 -v -0.000758 2.065968 3.943648 -v -0.103443 2.087663 3.071927 -v -0.103443 2.065968 3.943648 -v 0.103443 2.040556 3.941854 -v 0.103443 2.113045 3.073697 v -0.101627 1.929570 4.174595 v -0.101627 2.046870 4.174595 v -0.101627 2.046870 4.045168 @@ -899,6 +468,619 @@ v -0.059365 1.189290 -1.312787 v -0.059465 1.198896 -1.284075 v 0.046693 1.198896 -1.284075 v 0.046593 1.189290 -1.312787 +v 0.216088 0.856270 -0.070880 +v 0.209065 0.960517 0.969733 +v -0.173324 1.890359 0.910839 +v -0.173324 1.890359 -0.012807 +v -0.217367 1.720794 0.910839 +v -0.217367 1.720794 -0.012807 +v -0.217367 1.599757 0.910839 +v -0.217367 1.599756 -0.012807 +v -0.003063 1.954934 0.967058 +v -0.216087 0.856270 -0.070880 +v 0.214043 1.724547 0.965868 +v -0.005693 0.957195 -0.735251 +v 0.151461 1.887264 0.966545 +v -0.208849 0.960517 0.969733 +v 0.213723 1.586004 0.965536 +v -0.173216 1.890425 0.967058 +v -0.217260 1.720861 0.967058 +v -0.217260 1.599823 0.967058 +vn 0.4257 0.9049 -0.0048 +vn 0.9414 0.3371 -0.0136 +vn 1.0000 -0.0021 -0.0092 +vn 0.9999 -0.0056 -0.0127 +vn -0.8659 -0.3409 0.3661 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 0.0049 -0.0080 +vn -1.0000 0.0016 -0.0087 +vn -0.9414 0.3371 -0.0136 +vn -0.9415 0.3368 -0.0109 +vn -0.4227 0.9063 -0.0000 +vn 0.8659 -0.3409 0.3661 +vn -0.9415 0.3371 -0.0000 +vn -0.9406 0.3395 0.0004 +vn 0.3933 -0.0014 0.9194 +vn 0.3737 0.1338 0.9179 +vn -1.0000 -0.0035 -0.0003 +vn 0.9937 -0.0000 -0.1121 +vn 1.0000 -0.0035 -0.0000 +vn 1.0000 -0.0000 -0.0003 +vn -0.9568 0.2679 -0.1132 +vn -0.7341 -0.6786 -0.0246 +vn -1.0000 -0.0004 -0.0003 +vn -0.0014 -0.9870 -0.1609 +vn 1.0000 -0.0079 -0.0019 +vn 1.0000 -0.0051 0.0001 +vn -1.0000 -0.0051 0.0001 +vn -1.0000 -0.0079 -0.0019 +vn 0.2096 -0.1752 0.9620 +vn -0.0000 -1.0000 -0.0075 +vn 1.0000 0.0016 -0.0088 +vn 1.0000 0.0048 -0.0080 +vn 0.9999 -0.0004 -0.0153 +vn 0.9999 -0.0004 -0.0102 +vn -0.9999 -0.0004 -0.0102 +vn -0.9999 -0.0004 -0.0153 +vn -1.0000 -0.0021 -0.0092 +vn -0.9999 -0.0069 -0.0104 +vn -0.9999 -0.0046 -0.0096 +vn -0.2096 -0.1752 0.9620 +vn 0.4227 0.9063 -0.0000 +vn 0.1385 0.3003 -0.9437 +vn 0.9415 0.3371 -0.0000 +vn 0.9985 -0.0546 -0.0000 +vn 0.3719 0.1363 -0.9182 +vn 0.7077 0.7065 -0.0002 +vn 0.1397 0.2995 0.9438 +vn 0.3939 0.0013 -0.9192 +vn -1.0000 -0.0066 0.0006 +vn -1.0000 -0.0061 0.0028 +vn -1.0000 -0.0049 0.0040 +vn 1.0000 -0.0000 -0.0000 +vn 1.0000 0.0007 0.0027 +vn 1.0000 -0.0015 -0.0022 +vn -0.9546 0.2485 -0.1646 +vn -0.9937 -0.0007 -0.1122 +vn -0.5111 0.8476 -0.1425 +vn 0.5111 0.8476 -0.1425 +vn 0.9568 0.2679 -0.1132 +vn -0.9937 -0.0000 -0.1121 +vn 0.9936 -0.0013 -0.1126 +vn -0.9389 0.3167 -0.1345 +vn -0.5509 -0.5672 0.6122 +vn 0.9389 0.3167 -0.1345 +vn -0.4738 0.7235 -0.5021 +vn -1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0023 0.0014 +vn 0.4738 0.7235 -0.5021 +vn 1.0000 -0.0012 0.0016 +vn 1.0000 -0.0039 0.0023 +vn 0.9546 0.2485 -0.1646 +vn -0.6739 -0.6939 0.2537 +vn 0.9694 0.2237 0.1012 +vn 1.0000 -0.0034 -0.0015 +vn 1.0000 -0.0019 -0.0014 +vn 0.5456 0.7635 0.3455 +vn 1.0000 0.0015 0.0024 +vn 1.0000 -0.0022 -0.0015 +vn -1.0000 -0.0045 0.0005 +vn -1.0000 -0.0035 0.0032 +vn -1.0000 -0.0007 0.0039 +vn -0.4293 0.8526 -0.2981 +vn -1.0000 -0.0004 0.0028 +vn 0.4293 0.8526 -0.2981 +vn 1.0000 -0.0037 0.0023 +vn 1.0000 -0.0061 0.0037 +vn -0.5813 0.8136 -0.0067 +vn -1.0000 -0.0019 -0.0013 +vn -1.0000 -0.0017 0.0003 +vn -0.6627 -0.6823 -0.3087 +vn -0.9694 0.2237 0.1012 +vn -0.9694 0.2236 0.1015 +vn 1.0000 0.0006 -0.0028 +vn 1.0000 -0.0008 0.0014 +vn -1.0000 -0.0034 -0.0015 +vn -1.0000 -0.0018 -0.0031 +vn -0.5456 0.7635 0.3455 +vn -1.0000 -0.0024 -0.0012 +vn -1.0000 -0.0017 -0.0000 +vn -0.9902 0.1399 -0.0006 +vn 0.5813 0.8136 -0.0067 +vn 1.0000 -0.0032 -0.0014 +vn 1.0000 -0.0034 0.0003 +vn 0.9737 0.2278 -0.0022 +vn 0.9738 0.2276 -0.0019 +vn -0.6847 -0.7050 0.1849 +vn -0.9738 0.2276 -0.0019 +vn 1.0000 -0.0016 -0.0001 +vn 0.6275 0.0151 -0.7785 +vn 0.6330 0.0176 -0.7740 +vn -0.7019 0.0021 -0.7122 +vn -0.7064 -0.0000 -0.7078 +vn 0.6040 0.2359 -0.7612 +vn 0.3767 0.8078 -0.4533 +vn -0.3910 0.8384 -0.3798 +vn -0.7142 0.0083 -0.6999 +vn -0.7143 0.0016 -0.6998 +vn -0.7176 0.0128 -0.6964 +vn -0.1915 -0.3110 -0.9309 +vn -0.6735 0.2590 -0.6923 +vn 0.6296 0.0075 -0.7769 +vn 0.6296 -0.0000 -0.7769 +vn 0.6254 -0.0051 -0.7803 +vn -0.7634 0.6459 -0.0028 +vn 0.7634 0.6459 -0.0028 +vn 1.0000 -0.0017 -0.0000 +vn 0.9902 0.1399 -0.0006 +vn -0.6967 -0.7174 0.0031 +vn 0.6973 -0.7167 0.0031 +vn -0.0000 -1.0000 0.0043 +vn 0.1962 -0.2566 -0.9464 +vn -0.0000 -0.0000 -1.0000 +vn 0.6853 -0.7044 0.1847 +vn -0.0000 -0.9673 0.2537 +vn 0.6633 -0.6818 -0.3085 +vn -0.0000 -0.9111 -0.4123 +vn 0.7110 -0.6559 0.2535 +vn 0.9999 0.0128 -0.0066 +vn 0.9999 0.0080 -0.0062 +vn 0.5516 -0.5669 0.6119 +vn -0.0000 -0.6796 0.7335 +vn 0.7348 -0.6778 -0.0246 +vn 0.9238 -0.0000 -0.3830 +vn 0.0056 -0.0098 -0.9999 +vn -0.0000 -0.9869 -0.1613 +vn -0.9239 0.3827 -0.0000 +vn 1.0000 -0.0000 -0.0015 +vn -0.0000 0.0216 -0.9998 +vn -0.9840 -0.1758 -0.0295 +vn -1.0000 -0.0000 -0.0015 +vn -0.0000 -0.0216 0.9998 +vn 0.9993 0.0008 -0.0364 +vn -0.0000 -0.0377 0.9993 +vn -0.9997 -0.0009 -0.0249 +vn -0.0057 -0.0103 -0.9999 +vn -0.0000 -0.9998 -0.0206 +vn -0.0000 -0.9997 -0.0225 +vn -0.9997 0.0005 -0.0231 +vn -0.0000 0.9998 0.0216 +vn -0.0000 -0.9998 -0.0216 +vn -0.0000 0.9604 0.2786 +vn -0.0000 -0.9648 -0.2630 +vn -1.0000 -0.0047 0.0009 +vn -0.0000 -0.7438 -0.6684 +vn -0.0000 0.7295 0.6840 +vn -0.0000 0.1212 0.9926 +vn 1.0000 -0.0039 0.0029 +vn 1.0000 -0.0005 -0.0048 +vn -0.0000 -0.1592 -0.9872 +vn -0.0000 -0.0766 -0.9971 +vn -0.0000 0.0714 0.9974 +vn -0.9999 0.0080 -0.0062 +vn -0.9999 0.0128 -0.0066 +vn -0.0000 0.1149 -0.9934 +vn -0.0000 -0.1149 0.9934 +vn -0.0000 0.0444 -0.9990 +vn -0.0000 -0.0997 0.9950 +vn -0.0000 -0.1804 0.9836 +vn -0.0000 -0.0613 -0.9981 +vn 0.9955 -0.0947 -0.0000 +vn -0.0000 0.1792 0.9838 +vn -0.0000 -0.2422 -0.9702 +vn 0.0008 0.5015 0.8652 +vn -0.0000 0.5038 0.8638 +vn 0.0005 0.5013 0.8653 +vn -0.9934 -0.0844 0.0771 +vn -0.0000 0.5088 0.8609 +vn 0.0025 0.5075 0.8616 +vn -0.0026 0.5077 0.8615 +vn -0.0000 -0.5752 -0.8180 +vn -0.0000 -0.7383 0.6745 +vn -0.0000 -0.9117 -0.4108 +vn 0.9385 -0.2548 0.2328 +vn -0.9386 -0.2548 0.2328 +vn -0.0000 -0.9994 -0.0347 +vn -0.0051 1.0000 -0.0000 +vn -0.0000 -0.0370 0.9993 +vn 0.9999 -0.0021 -0.0102 +vn 0.9999 0.0018 -0.0135 +vn -1.0000 -0.0035 -0.0069 +vn -0.9999 0.0001 -0.0134 +vn -1.0000 -0.0015 -0.0087 +vn 1.0000 0.0010 0.0047 +vn 1.0000 -0.0006 -0.0000 +vn -1.0000 -0.0027 0.0042 +vn -1.0000 -0.0017 -0.0006 +vn 0.0007 -1.0000 -0.0000 +vn -1.0000 -0.0015 -0.0000 +vn 1.0000 -0.0015 -0.0000 +vn 0.0032 1.0000 -0.0000 +vn 1.0000 -0.0056 0.0033 +vn 1.0000 -0.0015 0.0006 +vn 1.0000 0.0015 0.0047 +vn 1.0000 -0.0017 0.0008 +vn 1.0000 -0.0006 0.0051 +vn 0.0032 -1.0000 -0.0000 +vn -1.0000 0.0013 0.0045 +vn -1.0000 -0.0007 -0.0000 +vn -1.0000 -0.0006 0.0003 +vn -1.0000 -0.0015 -0.0006 +vn -1.0000 -0.0004 0.0051 +vn -1.0000 -0.0006 -0.0000 +vn -0.0032 1.0000 -0.0000 +vn -0.0032 -1.0000 -0.0000 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 -0.9239 -0.3827 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.3827 0.9239 +vn -0.0000 0.3827 0.9239 +vn -0.0000 0.9239 0.3827 +vn -0.0000 0.9239 -0.3827 +vn -0.0000 0.3827 -0.9239 +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.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.2163 0.5222 -0.8249 +vn -0.2163 0.5222 -0.8250 +vn -0.5222 -0.2163 -0.8249 +vn 0.2081 -0.4401 -0.8735 +vn 0.5222 0.2163 -0.8249 +vn -0.5222 0.2163 -0.8249 +vn -0.2163 -0.5222 -0.8249 +vn 0.5222 -0.2163 -0.8249 +vn 0.5222 0.2163 0.8249 +vn -0.5222 0.2163 0.8249 +vn -0.2163 -0.5222 0.8250 +vn 0.5222 -0.2163 0.8249 +vn 0.3827 0.9238 -0.0120 +vn 0.8438 -0.5265 0.1041 +vn -0.5222 -0.2163 0.8249 +vn 0.2058 -0.4197 0.8840 +vn -0.1653 0.4232 -0.8908 +vn -0.9239 0.3827 0.0001 +vn 0.1642 0.3964 -0.9033 +vn 0.3964 -0.1642 -0.9033 +vn 0.1642 -0.3964 -0.9033 +vn 0.3964 0.1642 -0.9033 +vn -0.3964 -0.1642 -0.9033 +vn -0.1642 -0.3964 -0.9033 +vn -0.3827 0.9239 0.0001 +vn 0.9239 0.3827 0.0001 +vn -0.3827 -0.9239 0.0001 +vn 0.3827 0.9239 0.0001 +vn 0.9239 -0.3827 0.0001 +vn -0.9239 -0.3827 0.0001 +vn -0.3964 0.1642 -0.9033 +vn 0.3827 -0.9239 0.0001 +vn 0.1317 -0.3179 0.9389 +vn 0.3179 0.1317 0.9389 +vn -0.3179 0.1317 0.9389 +vn -0.3179 -0.1317 0.9389 +vn -0.1317 -0.3179 0.9389 +vn -0.1355 0.3696 0.9193 +vn 0.1317 0.3179 0.9389 +vn 0.3179 -0.1317 0.9390 +vn -0.4654 -0.1928 -0.8638 +vn -0.1928 -0.4654 -0.8638 +vn -0.1928 0.4654 -0.8638 +vn 0.1928 0.4654 -0.8638 +vn 0.4654 -0.1928 -0.8639 +vn 0.1928 -0.4654 -0.8638 +vn 0.4654 0.1928 -0.8638 +vn -0.4654 0.1928 -0.8639 +vn 0.2570 -0.1064 0.9605 +vn 0.1064 -0.2570 0.9605 +vn 0.2570 0.1064 0.9605 +vn -0.2570 0.1064 0.9605 +vn -0.2570 -0.1064 0.9605 +vn -0.1064 -0.2570 0.9605 +vn -0.1064 0.2570 0.9605 +vn 0.1064 0.2570 0.9605 +vn 0.9968 0.0794 -0.0000 +vn -0.9968 0.0794 -0.0000 +vn -0.0007 0.0459 -0.9989 +vn -0.0009 0.0618 0.9981 +vn 0.0009 0.0618 0.9981 +vn 0.0006 0.0459 -0.9989 +vn 0.0465 0.1530 0.9871 +vn -0.0359 0.1299 0.9909 +vn -0.2910 0.9565 0.0178 +vn -0.7522 -0.6487 0.1156 +vn -0.2663 -0.9636 0.0231 +vn 0.3820 -0.9223 0.0577 +vn -0.6671 -0.2763 0.6919 +vn 0.6671 -0.2763 0.6919 +vn 0.2683 0.6476 0.7132 +vn -0.2660 0.6359 0.7244 +vn -0.2763 -0.6671 0.6919 +vn 0.6671 0.2763 0.6919 +vn -0.6907 0.2924 0.6614 +vn 0.2763 -0.6671 0.6919 +vn 0.2692 -0.6498 -0.7109 +vn -0.7364 0.3285 -0.5914 +vn -0.9213 0.3888 -0.0000 +vn 0.6498 0.2692 -0.7108 +vn 0.9213 0.3888 -0.0000 +vn -0.2692 -0.6498 -0.7108 +vn -0.2921 0.6981 -0.6537 +vn 0.2936 0.7087 -0.6415 +vn 0.6498 -0.2692 -0.7109 +vn -0.6498 -0.2692 -0.7108 +vn -0.9707 0.2404 -0.0000 +vn -0.0152 0.0364 -0.9992 +vn 0.9707 0.2404 -0.0000 +vn 0.0008 0.0018 1.0000 +vn -0.0007 0.0018 1.0000 +vn 0.0154 0.0365 -0.9992 +vn -0.0000 1.0000 -0.0000 +vn 0.9826 0.1855 -0.0000 +vn -0.9757 0.2193 -0.0000 +vn -0.9979 0.0652 -0.0000 +vn 0.9979 0.0652 -0.0000 +vn 0.5958 0.2860 -0.7505 +vn -0.5295 0.8483 -0.0000 +vn 0.5292 0.8485 -0.0000 +vn -0.5654 0.2964 0.7697 +vn -0.0000 0.9333 -0.3590 +vn -0.5112 0.8022 -0.3086 +vn -0.0000 0.9333 0.3590 +vn 0.5417 0.7846 0.3018 +vn -0.5654 0.2963 -0.7698 +vn 0.5417 0.7846 -0.3018 +vn 0.5958 0.2860 0.7505 +vn -0.5112 0.8022 0.3086 +vn 1.0000 -0.0023 -0.0003 +vn 0.0054 -0.0103 -0.9999 +vn -0.0060 -0.0098 -0.9999 +vn -0.2048 -0.2682 -0.9413 +vn 0.1799 -0.3126 -0.9327 +vn 0.0015 -0.9870 -0.1609 +vn 0.9385 0.3453 -0.0001 +vn 1.0000 -0.0015 -0.0087 +vn 0.9999 -0.0000 -0.0134 +vn -0.7768 -0.6298 -0.0036 +vn -1.0000 0.0004 -0.0021 +vn -1.0000 -0.0015 -0.0049 +vn -0.9385 0.3453 -0.0000 +vn 0.7768 -0.6298 -0.0036 +vn -0.9413 0.3377 -0.0022 +vn 0.3935 -0.0015 0.9193 +vn 0.4060 0.1562 0.9004 +vn -1.0000 -0.0021 -0.0000 +vn -1.0000 -0.0018 -0.0027 +vn 1.0000 -0.0036 -0.0000 +vn 1.0000 -0.0004 -0.0003 +vn -0.9608 0.2487 -0.1223 +vn -0.6066 -0.7945 -0.0284 +vn -0.6265 -0.7733 -0.0975 +vn -1.0000 -0.0000 -0.0003 +vn 1.0000 -0.0005 -0.0003 +vn 1.0000 0.0016 -0.0009 +vn 1.0000 0.0030 -0.0040 +vn -1.0000 0.0030 -0.0040 +vn -1.0000 0.0016 -0.0009 +vn -1.0000 -0.0005 -0.0003 +vn 1.0000 -0.0015 -0.0049 +vn 1.0000 0.0004 -0.0021 +vn 0.9999 -0.0056 -0.0118 +vn 1.0000 -0.0015 -0.0088 +vn -1.0000 -0.0015 -0.0088 +vn -0.9999 -0.0055 -0.0118 +vn -0.9999 -0.0015 -0.0102 +vn -0.9999 0.0036 -0.0102 +vn -0.9999 -0.0061 -0.0084 +vn 0.1422 0.3319 -0.9325 +vn 0.4062 0.1600 -0.8997 +vn 0.7079 0.7063 -0.0002 +vn 0.1430 0.3294 0.9333 +vn 0.3947 0.0009 -0.9188 +vn -1.0000 -0.0012 0.0016 +vn -1.0000 -0.0039 0.0023 +vn 1.0000 -0.0024 0.0014 +vn -0.9306 0.3160 -0.1849 +vn -0.9936 -0.0013 -0.1126 +vn -0.5412 0.8265 -0.1550 +vn 0.5412 0.8265 -0.1550 +vn 0.9608 0.2487 -0.1223 +vn 0.9937 -0.0007 -0.1122 +vn -0.9634 0.2291 -0.1393 +vn 0.9634 0.2291 -0.1393 +vn -0.3871 0.7687 -0.5092 +vn -1.0000 -0.0015 -0.0022 +vn -1.0000 0.0006 0.0027 +vn 0.3871 0.7687 -0.5092 +vn 1.0000 -0.0066 0.0006 +vn 1.0000 -0.0047 0.0042 +vn 1.0000 -0.0061 0.0028 +vn 0.9306 0.3160 -0.1849 +vn -0.0000 -0.9328 0.3605 +vn -0.7103 -0.6566 0.2537 +vn 1.0000 -0.0008 -0.0027 +vn 1.0000 -0.0020 0.0020 +vn -1.0000 -0.0061 0.0037 +vn -0.5495 0.7690 -0.3266 +vn -1.0000 -0.0022 -0.0015 +vn -1.0000 0.0016 0.0021 +vn 0.5495 0.7690 -0.3266 +vn 1.0000 -0.0045 0.0006 +vn 1.0000 -0.0010 0.0046 +vn 1.0000 -0.0035 0.0032 +vn -1.0000 -0.0015 -0.0007 +vn -0.7633 0.6459 0.0135 +vn -1.0000 -0.0025 -0.0012 +vn -1.0000 -0.0034 0.0003 +vn 1.0000 -0.0016 -0.0021 +vn -1.0000 -0.0031 -0.0014 +vn -1.0000 0.0002 -0.0028 +vn -1.0000 -0.0012 0.0012 +vn 0.7633 0.6459 0.0135 +vn 1.0000 -0.0020 -0.0013 +vn 1.0000 -0.0017 0.0003 +vn 0.9901 0.1401 -0.0111 +vn -0.9901 0.1401 -0.0111 +vn 0.6385 0.0097 -0.7696 +vn 0.6425 0.0150 -0.7662 +vn 0.6390 0.0022 -0.7692 +vn -0.7068 0.0066 -0.7074 +vn -0.7028 -0.0044 -0.7114 +vn 0.7066 0.2135 -0.6746 +vn 0.5060 0.8391 -0.1997 +vn -0.5146 0.8533 -0.0838 +vn -0.7041 0.0132 -0.7100 +vn -0.7086 0.0154 -0.7055 +vn -0.7884 0.2333 -0.5692 +vn 0.6241 0.0024 -0.7814 +vn 0.6746 -0.6933 0.2534 +vn 0.9999 0.0140 -0.0012 +vn 0.9999 0.0097 0.0052 +vn 1.0000 0.0094 0.0004 +vn 0.6270 -0.7729 -0.0976 +vn 0.6072 -0.7941 -0.0284 +vn 0.9841 -0.1697 -0.0533 +vn -0.0223 -0.9997 0.0105 +vn 0.0223 -0.9997 0.0105 +vn -0.9274 -0.0000 -0.3742 +vn 0.9987 -0.0092 -0.0494 +vn -1.0000 -0.0005 -0.0048 +vn -1.0000 -0.0039 0.0029 +vn 1.0000 -0.0047 0.0009 +vn -0.0004 -0.0719 -0.9974 +vn -1.0000 0.0094 0.0004 +vn -0.9999 0.0097 0.0052 +vn -0.9999 0.0140 -0.0012 +vn -0.0000 -0.1150 0.9934 +vn 0.9934 -0.0844 0.0771 +vn -0.0007 0.5015 0.8652 +vn -0.9955 -0.0947 -0.0000 +vn 0.0026 0.5098 0.8603 +vn 1.0000 -0.0015 -0.0095 +vn 1.0000 -0.0061 -0.0078 +vn 0.9999 0.0036 -0.0095 +vn 1.0000 0.0013 0.0045 +vn -1.0000 -0.0056 0.0033 +vn -1.0000 0.0016 0.0047 +vn -1.0000 -0.0015 0.0006 +vn 1.0000 -0.0030 0.0040 +vn 1.0000 -0.0017 -0.0008 +vn 1.0000 -0.0015 -0.0006 +vn 1.0000 -0.0004 0.0051 +vn -1.0000 0.0010 0.0046 +vn -1.0000 -0.0017 0.0006 +vn -1.0000 -0.0006 0.0051 +vn -0.0000 0.0127 -0.9999 +vn -0.0012 0.0155 -0.9999 +vn -0.0021 0.0150 -0.9999 +vn 0.0002 0.0112 -0.9999 +vn -0.0000 0.0171 -0.9999 +vn -0.0027 0.0139 -0.9999 +vn 0.0059 0.0010 -1.0000 +vn -0.0059 0.0011 -1.0000 +vn -0.0012 0.0113 -0.9999 +vn 0.0046 0.0133 -0.9999 +vn 0.2163 0.5222 -0.8250 +vn -0.2163 0.5222 -0.8249 +vn 0.2163 -0.5222 -0.8249 +vn -0.2081 -0.4401 -0.8735 +vn -0.2058 -0.4197 0.8840 +vn 0.2910 0.9565 0.0178 +vn 0.7522 -0.6487 0.1156 +vn 0.2163 -0.5222 0.8250 +vn -0.1642 0.3964 -0.9033 +vn 0.1653 0.4232 -0.8908 +vn -0.3179 -0.1317 0.9390 +vn -0.1317 0.3179 0.9389 +vn 0.1355 0.3696 0.9193 +vn 0.3179 -0.1317 0.9389 +vn -0.4654 -0.1928 -0.8639 +vn 0.4654 -0.1928 -0.8638 +vn 0.4654 0.1928 -0.8639 +vn -0.4654 0.1928 -0.8638 +vn 0.0359 0.1299 0.9909 +vn -0.0465 0.1530 0.9871 +vn -0.3827 0.9238 -0.0120 +vn -0.8438 -0.5265 0.1041 +vn -0.3820 -0.9223 0.0577 +vn 0.2663 -0.9636 0.0231 +vn 0.2645 0.6280 0.7319 +vn -0.2683 0.6476 0.7132 +vn 0.6907 0.2924 0.6614 +vn -0.6671 0.2763 0.6919 +vn 0.2692 -0.6498 -0.7108 +vn -0.6498 0.2692 -0.7108 +vn 0.7364 0.3285 -0.5914 +vn -0.2692 -0.6498 -0.7109 +vn -0.2936 0.7087 -0.6415 +vn 0.2910 0.6909 -0.6618 +vn 0.6498 -0.2692 -0.7108 +vn -0.6498 -0.2692 -0.7109 +vn -0.0000 0.0589 -0.9983 +vn -0.0000 0.0029 1.0000 +vn 0.2185 0.0412 -0.9750 +vn -0.5296 0.8483 -0.0000 +vn -0.2098 0.0472 0.9766 +vn -0.0000 -0.0001 1.0000 +vn -0.2098 0.0472 -0.9766 +vn 0.2184 0.0412 0.9750 +vn 1.0000 -0.0021 -0.0003 +vn -1.0000 0.0059 0.0043 +vn -1.0000 0.0040 0.0035 +vn -1.0000 0.0050 0.0041 +vn 0.3545 -0.9351 -0.0000 +vn 0.9679 -0.2514 -0.0000 +vn 1.0000 -0.0052 -0.0052 +vn 1.0000 -0.0025 -0.0012 +vn 1.0000 -0.0045 -0.0035 +vn -0.0000 -1.0000 0.0095 +vn 1.0000 -0.0000 -0.0019 +vn 0.0066 -0.9872 -0.1592 +vn -0.0002 -0.9869 -0.1613 +vn -0.0024 -0.9869 -0.1611 +vn -0.0029 0.0004 -1.0000 +vn -0.0059 0.0076 -1.0000 +vn 0.9679 -0.2514 -0.0016 +vn -1.0000 0.0023 0.0019 +vn 0.3545 -0.9351 0.0004 +vn -0.9999 0.0114 0.0033 +vn -1.0000 0.0040 0.0042 +vn -1.0000 0.0059 0.0058 +vn 0.9999 0.0057 -0.0158 +vn 0.9999 0.0080 -0.0141 +vn 0.9997 0.0051 -0.0255 +vn -0.9333 -0.3590 0.0022 +vn -0.4011 -0.9160 0.0018 +vn -0.0000 0.5115 -0.8593 +vn -1.0000 -0.0063 -0.0046 +vn -1.0000 -0.0046 -0.0033 +vn -1.0000 -0.0024 -0.0031 +vn 0.9999 0.0082 0.0070 +vn 1.0000 0.0047 0.0037 +vn 1.0000 0.0038 0.0009 +vn -0.0091 -0.9876 -0.1567 +vn 0.0007 -0.9869 -0.1613 +vn -0.0016 -0.9869 -0.1612 +vn 0.0078 -0.9874 -0.1582 +vn -0.0018 0.0035 -1.0000 +vn -0.8709 0.0032 -0.4914 +vn -0.8709 0.0073 -0.4915 +vn 0.0024 -0.0075 -1.0000 +vn -0.0000 -0.0042 -1.0000 +vn 0.0072 -0.0070 -0.9999 +vn -0.0047 0.0061 -1.0000 +vn -0.0014 0.0038 -1.0000 +vn -0.0013 -0.0051 -1.0000 +vn -0.0021 -0.0091 -1.0000 +vn 0.0040 0.0006 -1.0000 +vn -1.0000 0.0068 -0.0047 +vn -1.0000 0.0024 -0.0079 +vn -1.0000 0.0069 -0.0048 +vn 0.9998 0.0169 0.0048 +vn 1.0000 0.0064 0.0018 +vn 1.0000 0.0059 -0.0044 vt 0.314366 0.961863 vt 0.294812 0.975635 vt 0.294657 0.961939 @@ -972,13 +1154,6 @@ vt 0.088674 0.528893 vt 0.091711 0.518805 vt 0.273373 0.868342 vt 0.291054 0.804240 -vt 0.137874 0.461278 -vt 0.058604 0.420707 -vt 0.138976 0.425869 -vt 0.064584 0.393192 -vt 0.133379 0.393550 -vt 0.134776 0.484662 -vt 0.059414 0.457228 vt 0.017282 0.517402 vt 0.096715 0.601134 vt 0.094272 0.561212 @@ -1102,6 +1277,8 @@ vt 0.281554 0.625218 vt 0.271561 0.618402 vt 0.294030 0.616776 vt 0.170751 0.788410 +vt 0.157783 0.800051 +vt 0.152072 0.860847 vt 0.193727 0.919817 vt 0.180297 0.708701 vt 0.193725 0.708701 @@ -1121,12 +1298,11 @@ vt 0.263443 0.629089 vt 0.265727 0.618518 vt 0.263353 0.618566 vt 0.265808 0.625494 +vt 0.258767 0.637676 vt 0.254047 0.637653 -vt 0.263488 0.637699 vt 0.251845 0.609578 vt 0.251796 0.618515 vt 0.251734 0.625465 -vt 0.157783 0.800051 vt 0.138954 0.800369 vt 0.254084 0.625511 vt 0.254163 0.618559 @@ -1296,65 +1472,6 @@ vt 0.219558 0.399615 vt 0.181532 0.381137 vt 0.188270 0.431502 vt 0.188270 0.381137 -vt 0.187482 0.431554 -vt 0.156855 0.444483 -vt 0.154582 0.431555 -vt 0.181530 0.456662 -vt 0.160534 0.456663 -vt 0.181530 0.470033 -vt 0.160534 0.470034 -vt 0.156855 0.482213 -vt 0.187482 0.495142 -vt 0.154582 0.495142 -vt 0.208478 0.431554 -vt 0.177852 0.444483 -vt 0.175578 0.431554 -vt 0.202527 0.456662 -vt 0.202527 0.470033 -vt 0.177852 0.482213 -vt 0.208479 0.495141 -vt 0.175579 0.495142 -vt 0.229475 0.431554 -vt 0.198848 0.444483 -vt 0.196575 0.431554 -vt 0.227202 0.444483 -vt 0.223523 0.470033 -vt 0.198849 0.482213 -vt 0.229475 0.495141 -vt 0.196575 0.495142 -vt 0.250472 0.431554 -vt 0.219845 0.444483 -vt 0.217572 0.431554 -vt 0.248198 0.444483 -vt 0.223523 0.456662 -vt 0.244520 0.456662 -vt 0.244520 0.470033 -vt 0.219845 0.482212 -vt 0.250472 0.495141 -vt 0.217572 0.495141 -vt 0.238569 0.431554 -vt 0.269195 0.444483 -vt 0.240842 0.444483 -vt 0.265517 0.456662 -vt 0.269195 0.482213 -vt 0.240842 0.482212 -vt 0.238568 0.495141 -vt 0.259565 0.431554 -vt 0.290192 0.444483 -vt 0.261838 0.444483 -vt 0.286513 0.456663 -vt 0.265517 0.470033 -vt 0.290191 0.482213 -vt 0.261838 0.482212 -vt 0.259565 0.495141 -vt 0.280562 0.431554 -vt 0.311188 0.444483 -vt 0.282835 0.444483 -vt 0.307510 0.456663 -vt 0.286513 0.470033 -vt 0.311188 0.482213 -vt 0.282835 0.482213 -vt 0.280561 0.495142 vt 0.126584 0.919818 vt 0.140012 0.708701 vt 0.140013 0.919817 @@ -1667,9 +1784,6 @@ vt 0.251491 0.922891 vt 0.302318 0.955878 vt 0.296095 0.940846 vt 0.309892 0.941203 -vt 0.276157 1.000043 -vt 0.277845 0.988719 -vt 0.279031 0.999320 vt 0.284417 0.944018 vt 0.263815 0.960025 vt 0.274027 0.944968 @@ -1679,42 +1793,8 @@ vt 0.263891 0.944699 vt 0.253734 0.959924 vt 0.253781 0.944730 vt 0.263905 0.941721 -vt 0.262350 0.883120 -vt 0.272118 0.893652 -vt 0.262350 0.893652 vt 0.243789 0.946439 vt 0.243564 0.943592 -vt 0.274698 0.990680 -vt 0.275897 0.990665 -vt 0.222326 0.666214 -vt 0.223796 0.675651 -vt 0.221878 0.675521 -vt 0.276984 0.883345 -vt 0.274471 0.883120 -vt 0.209797 0.558857 -vt 0.219735 0.569163 -vt 0.209797 0.569163 -vt 0.225468 0.664276 -vt 0.226612 0.674973 -vt 0.222094 0.558857 -vt 0.223523 0.666167 -vt 0.281111 0.893792 -vt 0.279697 0.988827 -vt 0.228356 0.674554 -vt 0.227211 0.663856 -vt 0.220401 0.664219 -vt 0.217884 0.569235 -vt 0.272118 0.897282 -vt 0.279262 0.893687 -vt 0.219072 0.674722 -vt 0.289130 0.883559 -vt 0.289049 0.893859 -vt 0.272776 0.988740 -vt 0.274236 0.999907 -vt 0.271463 0.999118 -vt 0.226877 0.569238 -vt 0.236860 0.558893 -vt 0.236778 0.569413 vt 0.208616 0.698065 vt 0.199561 0.713051 vt 0.199561 0.698065 @@ -1765,8 +1845,6 @@ vt 0.223082 0.696719 vt 0.220294 0.682531 vt 0.232619 0.714384 vt 0.235699 0.728531 -vt 0.236749 0.573040 -vt 0.269746 0.998630 vt 0.144323 0.762715 vt 0.314455 0.975508 vt 0.097131 0.750157 @@ -1784,7 +1862,6 @@ vt 0.010554 0.041223 vt 0.199186 0.800615 vt 0.128645 0.801487 vt 0.203942 0.975766 -vt 0.062578 0.483566 vt 0.131861 0.038058 vt 0.318354 0.254488 vt 0.153393 0.041207 @@ -1822,19 +1899,6 @@ vt 0.214794 0.416868 vt 0.214794 0.406761 vt 0.226296 0.399615 vt 0.231060 0.406761 -vt 0.185209 0.444483 -vt 0.185209 0.482213 -vt 0.206205 0.444482 -vt 0.206205 0.482213 -vt 0.227202 0.482212 -vt 0.248198 0.482212 -vt 0.271468 0.431554 -vt 0.271468 0.495142 -vt 0.292465 0.431554 -vt 0.292465 0.495142 -vt 0.313461 0.431555 -vt 0.307510 0.470034 -vt 0.313461 0.495142 vt 0.113156 0.919818 vt 0.328124 0.919818 vt 0.313949 0.919163 @@ -1876,261 +1940,1673 @@ vt 0.304790 0.953196 vt 0.276265 0.953205 vt 0.220287 0.959600 vt 0.293315 0.949913 -vt 0.224609 0.558677 -vt 0.218549 0.664294 -vt 0.262350 0.897282 vt 0.220063 0.728189 vt 0.235926 0.682997 vt 0.216897 0.712351 vt 0.238896 0.698725 vt 0.238896 0.712391 vt 0.216897 0.698764 +vt 0.176993 0.860576 +vt 0.163321 0.799991 +vt 0.048042 0.441712 +vt 0.048083 0.435555 +vt 0.263488 0.637699 +s 0 +f 1/1/1 3/2/1 4/3/1 +f 4/3/2 5/4/2 6/5/2 +f 6/5/3 7/6/4 8/7/3 +f 10/8/5 12/9/5 9/10/5 +f 7/11/6 5/12/6 14/13/6 +f 12/14/7 16/15/8 17/16/8 +f 14/17/9 19/18/9 18/19/10 +f 13/20/11 1/21/11 19/18/11 +f 20/22/12 22/23/12 23/24/12 +f 25/25/13 18/19/14 19/18/13 +f 27/26/15 29/27/15 26/28/15 +f 31/29/16 27/26/16 30/30/16 +f 33/31/11 19/18/11 1/21/11 +f 34/32/17 24/33/17 35/34/17 +f 36/35/18 38/36/18 39/37/18 +f 41/38/19 26/39/19 40/40/19 +f 40/40/20 43/41/20 44/42/20 +f 48/43/21 46/44/21 45/45/21 +f 51/46/22 52/47/22 53/48/22 +f 34/32/23 54/49/23 17/16/23 +f 55/50/24 56/51/24 60/52/24 +f 20/53/25 61/54/26 56/51/26 +f 57/55/27 62/56/27 12/14/28 +f 23/57/29 61/54/29 20/58/29 +f 9/10/30 22/23/30 10/8/30 +f 63/59/31 20/53/32 43/41/31 +f 64/60/33 43/41/34 42/61/34 +f 17/16/35 65/62/36 34/32/35 +f 34/32/37 15/63/38 18/19/39 +f 9/64/40 12/65/40 62/56/40 +f 30/66/41 32/67/41 33/68/41 +f 4/69/42 67/70/42 1/71/42 +f 27/72/43 66/73/43 30/66/43 +f 67/70/44 33/74/44 1/71/44 +f 6/75/45 68/76/45 4/69/45 +f 26/28/46 71/77/46 8/78/46 +f 70/79/47 30/30/47 33/74/47 +f 6/75/48 71/77/48 69/80/48 +f 72/81/49 73/82/50 74/83/51 +f 38/36/52 76/84/53 39/37/54 +f 77/85/55 47/86/55 48/43/55 +f 78/87/56 47/86/56 72/81/56 +f 80/88/57 45/45/57 79/89/57 +f 81/90/58 80/91/58 79/92/58 +f 83/93/59 82/94/59 81/90/59 +f 78/87/60 51/95/60 50/96/60 +f 36/35/61 84/97/61 83/93/61 +f 86/98/62 73/82/62 77/85/62 +f 87/99/63 89/100/63 90/101/63 +f 91/102/64 93/103/64 92/104/64 +f 95/105/65 48/43/65 80/88/65 +f 51/95/66 74/83/67 88/106/66 +f 82/94/68 95/107/68 80/91/68 +f 39/37/69 91/102/70 84/97/70 +f 84/97/71 92/104/71 82/94/71 +f 52/47/72 88/108/72 87/99/72 +f 97/109/73 93/103/73 94/110/73 +f 94/110/74 99/111/75 97/109/74 +f 96/112/76 100/113/76 93/103/76 +f 75/114/52 98/115/77 76/84/78 +f 74/83/79 85/116/80 103/117/81 +f 100/118/82 77/85/82 95/105/82 +f 88/106/66 103/117/83 89/119/66 +f 92/104/84 100/113/84 95/107/84 +f 76/84/85 94/110/86 91/102/86 +f 104/120/66 106/121/66 107/122/66 +f 101/123/87 109/124/87 108/125/87 +f 105/126/88 112/127/89 106/121/89 +f 89/100/90 113/128/90 90/101/90 +f 86/98/91 111/129/92 85/116/91 +f 98/115/93 114/130/52 99/111/94 +f 85/116/95 105/126/95 103/117/96 +f 100/118/97 108/125/97 86/98/97 +f 103/117/98 104/120/66 89/119/66 +f 106/131/99 115/132/99 116/133/99 +f 118/134/52 120/135/52 117/136/52 +f 121/137/100 112/138/100 109/139/100 +f 122/140/101 101/141/101 96/112/101 +f 99/111/102 123/142/103 97/109/103 +f 97/109/104 122/140/105 96/112/105 +f 113/128/106 107/143/106 124/144/106 +f 109/124/107 111/129/107 108/125/107 +f 114/130/52 117/145/52 99/111/108 +f 41/38/109 36/146/110 83/147/109 +f 35/34/111 50/148/112 54/49/112 +f 83/147/113 66/73/113 41/38/113 +f 81/149/114 32/67/114 66/73/114 +f 32/150/115 45/151/115 25/25/115 +f 24/33/116 78/152/117 35/34/118 +f 125/153/119 54/154/119 49/155/119 +f 25/25/120 46/156/120 24/33/120 +f 40/40/121 37/157/122 36/146/123 +f 129/158/124 109/139/124 110/159/124 +f 107/160/66 116/133/66 130/161/66 +f 122/162/125 129/163/125 110/164/125 +f 117/136/126 126/165/126 123/166/126 +f 123/166/127 127/167/127 122/162/127 +f 124/168/128 130/161/128 131/169/128 +f 132/170/129 119/171/129 118/134/129 +f 124/168/130 128/172/130 132/170/130 +f 44/173/131 134/174/131 37/175/131 +f 135/176/132 137/177/132 53/178/132 +f 138/179/133 118/180/133 114/181/133 +f 113/128/134 132/182/134 138/179/134 +f 102/183/135 138/179/135 114/181/135 +f 90/101/136 138/179/136 139/184/136 +f 140/185/137 75/186/137 38/187/137 +f 170/188/138 467/189/139 466/190/139 +f 141/191/140 102/183/140 75/186/140 +f 87/99/141 139/184/141 141/191/141 +f 135/192/142 140/185/142 38/187/142 +f 133/193/143 142/194/143 134/195/143 +f 133/196/144 44/173/144 55/50/144 +f 57/55/145 59/197/145 477/198/145 +f 393/199/146 255/200/146 250/201/146 +f 142/194/147 144/202/147 136/203/147 +f 136/204/148 145/205/148 137/177/148 +f 134/195/147 136/203/147 135/206/147 +f 125/207/149 146/208/149 59/209/149 +f 49/210/150 137/211/150 146/208/150 +f 148/212/151 150/213/151 147/214/151 +f 143/215/152 150/213/152 151/216/152 +f 142/194/152 147/217/152 143/215/152 +f 147/214/153 479/218/153 59/219/153 +f 146/208/150 145/220/150 152/221/150 +f 146/208/154 148/222/154 59/209/154 +f 125/153/155 59/197/155 58/223/155 +f 149/224/156 151/216/156 150/213/156 +f 153/225/157 155/226/157 151/216/157 +f 152/221/150 154/227/150 153/225/150 +f 152/221/158 149/224/158 148/222/158 +f 144/228/159 157/229/159 145/205/159 +f 143/215/147 155/226/147 144/202/147 +f 157/230/66 160/231/66 158/232/66 +f 154/227/160 161/233/160 155/226/160 +f 144/202/52 161/233/52 156/234/52 +f 145/220/66 158/232/66 154/227/66 +f 162/235/52 164/236/52 165/237/52 +f 156/238/161 159/239/161 157/229/161 +f 156/234/52 163/240/52 162/235/52 +f 158/232/162 163/241/162 161/233/162 +f 167/242/66 169/243/163 166/244/66 +f 160/245/164 164/246/164 163/241/164 +f 159/247/66 166/244/66 160/231/66 +f 162/248/165 167/249/165 159/239/165 +f 165/250/166 168/251/166 167/249/166 +f 165/237/52 171/252/167 170/188/168 +f 166/253/169 171/254/169 164/246/169 +f 467/255/170 169/256/170 464/257/170 +f 465/258/171 170/259/171 466/260/171 +f 464/261/172 168/262/173 465/263/172 +f 172/264/66 174/265/66 175/266/66 +f 174/267/174 177/268/174 175/269/174 +f 176/270/52 179/271/52 177/272/52 +f 178/273/175 172/274/175 179/275/175 +f 177/268/176 181/276/176 175/269/176 +f 183/277/177 185/278/177 182/279/177 +f 175/266/66 183/280/66 172/264/66 +f 177/272/52 182/281/52 180/282/52 +f 172/274/178 182/279/178 179/275/178 +f 185/283/52 188/284/52 186/285/52 +f 180/286/179 189/287/179 181/276/179 +f 180/282/52 185/283/52 186/285/52 +f 181/288/66 184/289/66 183/280/66 +f 187/290/180 191/291/180 188/284/180 +f 184/289/66 192/292/66 193/293/66 +f 184/294/181 187/295/181 185/278/181 +f 186/296/182 192/297/182 189/287/182 +f 194/298/183 196/299/184 190/300/185 +f 193/293/186 197/301/186 194/302/186 +f 187/295/187 194/298/188 190/300/189 +f 188/303/190 197/304/190 192/297/190 +f 199/305/191 195/306/191 198/307/191 +f 197/304/192 199/308/192 198/309/192 +f 190/310/193 199/311/193 191/291/193 +f 194/302/194 198/312/194 195/313/194 +f 53/48/195 140/185/195 135/192/195 +f 15/314/196 201/315/196 7/316/196 +f 65/317/6 63/318/6 64/319/6 +f 16/320/6 21/321/6 63/318/6 +f 11/322/197 22/23/197 21/321/197 +f 8/7/198 64/60/199 42/61/198 +f 18/19/200 15/63/201 14/17/202 +f 200/323/196 203/324/196 201/315/196 +f 7/316/203 204/325/204 205/326/204 +f 15/314/205 206/327/206 207/328/206 +f 64/329/207 209/330/207 65/331/207 +f 202/332/6 211/333/6 203/334/6 +f 209/335/208 202/336/208 200/323/208 +f 208/337/207 210/338/207 209/330/207 +f 201/315/209 211/333/209 208/337/209 +f 213/339/210 215/340/210 212/341/210 +f 7/316/211 213/342/212 64/329/213 +f 201/315/214 212/343/214 204/325/214 +f 64/329/215 212/343/204 208/337/204 +f 207/344/216 218/345/216 216/346/216 +f 15/314/217 216/347/218 200/323/219 +f 200/323/220 219/348/220 209/335/220 +f 65/349/221 219/348/222 206/327/222 +f 220/350/99 218/345/99 217/351/99 +f 207/352/6 220/350/6 217/351/6 +f 219/353/223 220/350/223 206/354/223 +f 216/355/132 221/356/132 219/357/132 +f 222/358/126 215/340/126 214/359/126 +f 204/360/132 215/340/132 223/361/132 +f 204/362/224 222/358/224 205/363/224 +f 205/364/6 214/359/6 213/365/6 +f 130/366/132 116/367/132 120/368/132 +f 225/369/52 227/370/52 224/371/52 +f 229/372/225 231/373/225 228/374/225 +f 230/375/226 233/376/226 231/373/226 +f 232/377/227 235/378/227 233/379/227 +f 234/380/228 237/381/228 235/378/228 +f 236/382/229 239/383/229 237/381/229 +f 238/384/230 241/385/230 239/383/230 +f 234/386/52 232/387/52 240/388/52 +f 240/389/231 243/390/231 241/385/231 +f 242/391/232 228/374/232 243/390/232 +f 397/392/233 246/393/233 396/394/233 +f 393/199/234 249/395/234 392/396/234 +f 400/397/235 245/398/235 244/399/235 +f 400/397/236 255/200/236 404/400/236 +f 396/394/237 245/398/237 401/401/237 +f 252/402/238 254/403/238 251/404/238 +f 406/405/239 249/395/239 248/406/239 +f 397/392/238 248/407/238 247/408/238 +f 257/409/240 259/410/240 256/411/240 +f 261/412/146 263/413/146 260/414/146 +f 265/415/237 266/416/237 264/417/237 +f 251/418/239 268/419/239 267/420/239 +f 260/414/236 257/421/236 269/422/236 +f 269/422/235 256/423/235 265/415/235 +f 264/417/233 253/424/233 252/402/233 +f 267/420/234 262/425/234 261/412/234 +f 271/426/146 273/427/146 270/428/146 +f 257/429/241 270/428/241 258/430/241 +f 268/431/242 271/426/242 262/432/242 +f 254/433/243 275/434/243 276/435/243 +f 256/436/244 277/437/244 266/438/244 +f 262/439/245 270/428/245 263/440/245 +f 254/441/246 274/442/246 268/431/246 +f 266/443/247 275/434/247 253/444/247 +f 278/445/248 280/446/248 281/447/248 +f 277/437/233 284/448/233 275/434/233 +f 258/430/235 279/449/235 259/410/235 +f 270/428/236 285/450/236 258/430/236 +f 274/442/234 272/451/234 271/426/234 +f 259/410/237 278/445/237 277/437/237 +f 287/452/236 289/453/236 286/454/236 +f 272/451/249 287/455/249 273/427/249 +f 283/456/250 291/457/250 292/458/250 +f 284/448/251 281/459/251 293/460/251 +f 285/450/252 295/461/252 279/449/252 +f 280/462/253 295/461/253 296/463/253 +f 283/456/254 290/464/254 272/451/254 +f 284/448/255 291/465/255 282/466/255 +f 298/467/6 300/468/6 297/469/6 +f 292/470/234 301/471/234 290/472/234 +f 293/473/238 298/474/238 291/475/238 +f 280/476/237 304/477/237 281/478/237 +f 290/472/146 288/479/146 287/452/146 +f 291/480/239 297/469/239 292/470/239 +f 281/478/233 302/481/233 293/473/233 +f 286/454/235 303/482/235 280/476/235 +f 306/483/233 308/484/233 305/485/233 +f 304/477/6 310/486/6 302/481/6 +f 289/453/6 312/487/6 303/482/6 +f 289/453/6 305/488/6 311/489/6 +f 301/471/6 300/490/6 306/491/6 +f 298/474/6 310/492/6 299/493/6 +f 304/477/6 312/494/6 309/495/6 +f 301/471/6 305/496/6 288/479/6 +f 318/497/6 308/498/6 315/499/6 +f 299/500/235 313/501/235 300/502/235 +f 309/503/146 315/504/146 310/505/146 +f 311/506/239 317/507/239 312/508/239 +f 305/485/238 318/509/238 311/506/238 +f 300/502/237 307/510/237 306/483/237 +f 310/505/236 314/511/236 299/512/236 +f 312/508/234 316/513/234 309/503/234 +f 327/514/256 329/515/256 276/516/256 +f 326/517/257 328/518/257 319/519/257 +f 327/520/258 332/521/258 331/522/258 +f 333/523/259 335/524/259 336/525/259 +f 337/526/260 336/525/260 338/527/260 +f 331/522/261 335/524/261 334/528/261 +f 339/529/262 341/530/262 330/531/262 +f 337/532/263 340/533/263 339/534/263 +f 320/535/264 328/518/264 327/536/264 +f 321/537/265 334/538/265 322/539/265 +f 324/540/266 339/541/266 325/542/266 +f 320/535/267 331/543/267 321/537/267 +f 322/539/268 333/544/268 323/545/268 +f 325/542/269 330/546/269 326/517/269 +f 330/547/270 329/515/270 328/548/270 +f 323/545/271 337/549/271 324/550/271 +f 340/533/234 343/551/234 341/530/234 +f 341/530/146 344/552/146 329/515/146 +f 336/525/238 346/553/238 338/527/238 +f 332/521/237 348/554/237 335/524/237 +f 338/527/239 342/555/239 340/533/239 +f 335/524/233 345/556/233 336/525/233 +f 346/553/272 349/557/272 350/558/272 +f 347/559/273 352/560/273 348/554/273 +f 344/552/274 353/561/274 354/562/274 +f 342/555/275 353/563/275 343/551/275 +f 346/553/276 355/564/276 342/555/276 +f 344/552/277 356/565/277 282/566/277 +f 347/559/278 356/567/278 351/568/278 +f 345/556/279 352/569/279 349/570/279 +f 356/571/235 358/572/235 351/573/235 +f 359/574/280 361/575/280 362/576/280 +f 352/577/233 364/578/233 349/579/233 +f 349/579/238 365/580/238 350/581/238 +f 351/573/237 363/582/237 352/577/237 +f 353/583/146 366/584/146 354/585/146 +f 355/586/234 359/587/234 353/583/234 +f 350/588/239 360/589/239 355/586/239 +f 354/585/236 357/590/236 356/571/236 +f 362/591/146 369/592/146 367/593/146 +f 360/594/281 370/595/281 361/596/281 +f 366/597/282 371/598/282 357/599/282 +f 358/600/283 371/601/283 372/602/283 +f 363/603/284 374/604/284 364/605/284 +f 364/606/285 370/607/285 365/608/285 +f 363/609/286 372/610/286 373/611/286 +f 359/612/287 367/593/287 366/613/287 +f 375/614/288 377/615/288 378/616/288 +f 361/575/234 368/617/234 362/576/234 +f 370/595/239 379/618/239 361/596/239 +f 367/619/236 381/620/236 371/598/236 +f 371/601/235 382/621/235 372/602/235 +f 373/622/233 375/614/233 374/604/233 +f 374/623/238 380/624/238 370/607/238 +f 372/610/237 376/625/237 373/611/237 +f 384/626/6 386/627/6 377/615/6 +f 380/624/289 378/616/289 386/627/289 +f 382/628/290 377/615/290 376/625/290 +f 369/592/291 384/626/291 383/629/291 +f 379/630/292 384/626/292 368/617/292 +f 380/631/293 385/632/293 379/618/293 +f 381/620/294 383/629/294 388/633/294 +f 381/634/295 387/635/295 382/621/295 +f 332/636/296 284/637/296 347/638/296 +f 329/639/297 283/640/297 274/641/297 +f 274/641/298 276/642/298 329/639/298 +f 283/640/299 344/643/299 282/644/299 +f 282/645/300 347/638/300 284/637/300 +f 276/646/301 275/647/301 332/636/301 +f 294/648/302 296/463/302 295/461/302 +f 294/648/303 391/649/303 389/650/303 +f 285/450/304 390/651/304 294/648/304 +f 287/652/305 390/651/305 273/427/305 +f 286/653/306 296/463/306 389/650/306 +f 286/653/307 391/649/307 287/654/307 +f 395/655/308 261/656/308 394/657/308 +f 398/658/309 264/659/309 252/660/309 +f 402/661/310 269/662/310 265/663/310 +f 405/664/311 269/665/311 403/666/311 +f 407/667/312 267/668/312 395/655/312 +f 399/669/313 265/663/313 264/670/313 +f 394/657/314 260/671/314 405/664/314 +f 407/667/315 252/672/315 251/673/315 +f 397/674/316 409/675/316 406/676/316 +f 408/677/238 407/667/238 409/675/238 +f 404/678/317 410/679/317 411/680/317 +f 411/680/318 394/657/318 405/664/318 +f 401/681/319 413/682/319 396/683/319 +f 412/684/320 399/669/320 413/682/320 +f 392/685/321 409/675/321 414/686/321 +f 409/675/239 395/655/239 414/686/239 +f 400/687/322 411/680/322 415/688/322 +f 400/689/323 412/684/323 401/681/323 +f 396/690/324 408/677/324 397/691/324 +f 413/682/233 398/658/233 408/677/233 +f 392/692/325 410/679/325 393/693/325 +f 414/686/234 394/657/234 410/679/234 +f 405/694/326 417/695/326 411/696/326 +f 417/695/327 415/697/327 411/696/327 +f 419/698/328 402/699/328 412/700/328 +f 420/701/329 403/702/329 402/703/329 +f 403/702/330 416/704/330 405/694/330 +f 415/697/331 419/698/331 412/700/331 +f 423/705/332 425/706/332 422/707/332 +f 417/695/66 422/708/66 425/706/66 +f 424/709/332 426/710/332 427/711/332 +f 418/712/132 427/711/132 419/698/132 +f 417/695/132 424/709/132 418/712/132 +f 419/698/52 426/713/52 420/714/52 +f 429/715/66 431/716/66 428/717/66 +f 432/718/132 433/719/132 434/720/132 +f 436/721/52 438/722/52 435/723/52 +f 439/724/6 440/725/6 441/726/6 +f 436/727/132 443/728/132 444/729/132 +f 429/730/6 446/731/6 447/732/6 +f 429/715/66 448/733/66 430/734/66 +f 436/721/52 449/735/52 437/736/52 +f 451/737/333 453/738/333 450/739/333 +f 455/740/334 457/741/334 454/742/334 +f 458/743/335 448/733/335 447/744/335 +f 461/745/336 444/746/336 460/747/336 +f 459/748/337 451/749/337 448/733/337 +f 455/740/332 450/739/332 456/750/332 +f 452/751/338 458/743/338 453/738/338 +f 454/742/339 461/745/339 460/747/339 +f 461/745/340 456/752/340 449/735/340 +f 451/737/341 443/728/341 462/753/341 +f 443/728/342 455/740/342 444/729/342 +f 456/750/343 446/731/343 463/754/343 +f 446/731/344 450/739/344 447/732/344 +f 463/754/6 437/755/6 449/756/6 +f 440/725/6 439/724/6 463/754/6 +f 462/753/132 430/757/132 448/758/132 +f 433/719/132 432/718/132 462/753/132 +f 455/759/345 460/747/345 444/746/345 +f 448/758/346 451/737/346 462/753/346 +f 450/760/347 458/743/347 447/744/347 +f 449/756/348 456/750/348 463/754/348 +f 445/761/6 429/730/6 428/762/6 +f 442/763/132 436/727/132 435/764/132 +f 26/39/349 42/61/349 40/40/349 +f 55/50/350 60/52/350 133/196/350 +f 58/223/351 54/154/351 125/153/351 +f 49/155/352 54/154/352 50/765/352 +f 134/174/353 44/173/353 133/196/353 +f 59/197/354 57/55/354 58/223/354 +f 25/25/11 33/31/11 32/150/11 +f 1/1/41 2/766/41 3/2/41 +f 4/3/355 3/2/355 5/4/355 +f 6/5/356 5/4/356 7/6/357 +f 10/8/358 11/767/358 12/9/358 +f 5/12/6 3/768/6 14/13/6 +f 3/768/6 2/769/6 13/770/6 +f 14/13/6 3/768/6 13/770/6 +f 14/13/6 15/771/6 7/11/6 +f 12/14/359 11/772/360 16/15/360 +f 14/17/361 13/20/361 19/18/361 +f 13/20/11 2/773/11 1/21/11 +f 20/22/362 21/774/362 22/23/362 +f 25/25/13 24/33/13 18/19/363 +f 27/26/364 28/775/364 29/27/364 +f 31/29/365 28/775/365 27/26/365 +f 33/31/11 25/25/11 19/18/11 +f 34/32/366 18/19/367 24/33/366 +f 36/35/18 37/776/18 38/36/18 +f 41/38/368 27/72/368 26/39/368 +f 40/40/369 42/61/369 43/41/369 +f 48/43/370 47/86/370 46/44/370 +f 53/48/371 49/777/371 50/778/371 +f 50/778/372 51/46/372 53/48/372 +f 34/32/373 35/34/373 54/49/373 +f 55/779/52 44/42/52 56/51/52 +f 44/42/374 43/41/374 56/51/374 +f 43/41/375 20/53/376 56/51/375 +f 12/14/377 17/16/378 57/55/378 +f 17/16/379 54/49/379 57/55/379 +f 54/49/66 58/780/66 57/55/66 +f 9/10/30 23/24/30 22/23/30 +f 63/59/380 21/781/380 20/53/381 +f 64/60/382 63/59/383 43/41/383 +f 17/16/384 16/15/384 65/62/385 +f 34/32/386 65/62/387 15/63/388 +f 30/66/41 66/73/41 32/67/41 +f 4/69/389 68/76/389 67/70/389 +f 27/72/43 41/38/43 66/73/43 +f 67/70/44 70/79/44 33/74/44 +f 6/75/390 69/80/390 68/76/390 +f 26/28/391 29/27/391 71/77/391 +f 70/79/392 31/29/392 30/30/392 +f 6/75/393 8/78/393 71/77/393 +f 72/81/394 47/86/395 73/82/395 +f 38/36/52 75/114/52 76/84/396 +f 77/85/397 73/82/397 47/86/397 +f 78/87/398 46/44/398 47/86/398 +f 80/88/399 48/43/399 45/45/399 +f 81/90/400 82/94/400 80/91/400 +f 83/93/401 84/97/401 82/94/401 +f 78/87/60 72/81/60 51/95/60 +f 36/35/402 39/37/402 84/97/402 +f 86/98/403 85/116/403 73/82/403 +f 87/99/63 88/108/63 89/100/63 +f 91/102/404 94/110/404 93/103/404 +f 95/105/405 77/85/405 48/43/405 +f 51/95/66 72/81/406 74/83/407 +f 82/94/408 92/104/408 95/107/408 +f 39/37/409 76/84/410 91/102/411 +f 84/97/412 91/102/412 92/104/412 +f 87/99/413 141/191/413 140/185/413 +f 52/47/414 51/46/414 88/108/414 +f 87/99/413 140/185/413 52/47/413 +f 97/109/73 96/112/73 93/103/73 +f 94/110/74 98/115/415 99/111/74 +f 96/112/76 101/141/76 100/113/76 +f 75/114/52 102/782/52 98/115/416 +f 74/83/395 73/82/417 85/116/417 +f 100/118/418 86/98/418 77/85/418 +f 88/106/66 74/83/419 103/117/420 +f 92/104/421 93/103/421 100/113/421 +f 76/84/422 98/115/423 94/110/424 +f 104/120/66 105/126/425 106/121/66 +f 101/123/426 110/783/426 109/124/426 +f 105/126/427 111/129/428 112/127/428 +f 89/100/90 104/784/90 113/128/90 +f 86/98/91 108/125/91 111/129/91 +f 98/115/429 102/782/52 114/130/52 +f 85/116/95 111/129/95 105/126/430 +f 100/118/97 101/123/97 108/125/97 +f 103/117/431 105/126/432 104/120/66 +f 106/131/99 112/138/99 115/132/99 +f 118/134/52 119/171/52 120/135/52 +f 121/137/100 115/132/100 112/138/100 +f 122/140/433 110/785/433 101/141/433 +f 99/111/434 117/145/435 123/142/435 +f 97/109/436 123/142/436 122/140/436 +f 113/128/106 104/784/106 107/143/106 +f 109/124/437 112/127/437 111/129/437 +f 114/130/52 118/786/52 117/145/52 +f 41/38/438 40/40/439 36/146/440 +f 35/34/441 78/152/442 50/148/112 +f 83/147/443 81/149/443 66/73/443 +f 81/149/444 79/787/444 32/67/444 +f 32/150/445 79/788/445 45/151/445 +f 24/33/446 46/156/446 78/152/447 +f 25/25/448 45/151/448 46/156/448 +f 40/40/449 44/42/122 37/157/122 +f 129/158/124 121/137/124 109/139/124 +f 107/160/66 106/131/66 116/133/66 +f 122/162/125 127/167/125 129/163/125 +f 117/136/126 120/135/126 126/165/126 +f 123/166/127 126/165/127 127/167/127 +f 124/168/128 107/160/128 130/161/128 +f 132/170/129 128/172/129 119/171/129 +f 124/168/130 131/169/130 128/172/130 +f 135/176/132 136/204/132 137/177/132 +f 138/179/133 132/182/133 118/180/133 +f 113/128/134 124/144/134 132/182/134 +f 102/183/135 139/184/135 138/179/135 +f 90/101/136 113/128/136 138/179/136 +f 140/185/450 141/191/450 75/186/450 +f 170/188/451 171/252/452 467/189/453 +f 141/191/140 139/184/140 102/183/140 +f 87/99/141 90/101/141 139/184/141 +f 38/187/454 37/789/454 135/192/454 +f 37/789/455 134/790/455 135/192/455 +f 133/193/456 60/791/456 142/194/456 +f 62/56/457 57/55/457 9/64/457 +f 56/51/458 61/54/458 23/57/458 +f 393/199/146 404/400/146 255/200/146 +f 142/194/147 143/215/147 144/202/147 +f 136/204/148 144/228/148 145/205/148 +f 134/195/147 142/194/147 136/203/147 +f 125/207/459 49/210/459 146/208/459 +f 49/210/150 53/792/150 137/211/150 +f 148/212/151 149/224/151 150/213/151 +f 143/215/152 147/217/152 150/213/152 +f 142/194/460 60/791/460 147/217/460 +f 59/219/153 148/212/153 147/214/153 +f 146/208/150 137/211/150 145/220/150 +f 146/208/158 152/221/158 148/222/158 +f 149/224/156 153/225/156 151/216/156 +f 153/225/157 154/227/157 155/226/157 +f 152/221/150 145/220/150 154/227/150 +f 152/221/158 153/225/158 149/224/158 +f 144/228/159 156/238/159 157/229/159 +f 143/215/147 151/216/147 155/226/147 +f 157/230/66 159/247/66 160/231/66 +f 154/227/160 158/232/160 161/233/160 +f 144/202/52 155/226/52 161/233/52 +f 145/220/66 157/230/66 158/232/66 +f 162/235/52 163/240/52 164/236/52 +f 156/238/161 162/248/161 159/239/161 +f 156/234/52 161/233/52 163/240/52 +f 158/232/162 160/245/162 163/241/162 +f 167/242/66 168/262/461 169/243/462 +f 160/245/164 166/253/164 164/246/164 +f 159/247/66 167/242/66 166/244/66 +f 162/248/165 165/250/165 167/249/165 +f 165/250/166 170/259/166 168/251/166 +f 165/237/52 164/236/52 171/252/463 +f 166/253/169 169/256/169 171/254/169 +f 467/255/170 171/254/464 169/256/170 +f 465/258/171 168/251/171 170/259/171 +f 464/261/465 169/243/466 168/262/467 +f 172/264/66 173/793/66 174/265/66 +f 174/267/174 176/794/174 177/268/174 +f 176/270/52 178/795/52 179/271/52 +f 178/273/468 173/796/468 172/274/468 +f 177/268/176 180/286/176 181/276/176 +f 183/277/177 184/294/177 185/278/177 +f 175/266/66 181/288/66 183/280/66 +f 177/272/52 179/271/52 182/281/52 +f 172/274/178 183/277/178 182/279/178 +f 185/283/52 187/290/52 188/284/52 +f 180/286/179 186/296/179 189/287/179 +f 180/282/52 182/281/52 185/283/52 +f 181/288/66 189/797/66 184/289/66 +f 187/290/469 190/310/469 191/291/469 +f 184/289/66 189/797/66 192/292/66 +f 184/294/181 193/798/181 187/295/181 +f 186/296/182 188/303/182 192/297/182 +f 194/298/470 195/306/184 196/299/184 +f 193/293/471 192/292/471 197/301/471 +f 187/295/187 193/798/187 194/298/472 +f 188/303/190 191/799/190 197/304/190 +f 199/305/191 196/299/191 195/306/191 +f 197/304/192 191/799/192 199/308/192 +f 190/310/193 196/800/193 199/311/193 +f 194/302/194 197/301/194 198/312/194 +f 53/48/195 52/47/195 140/185/195 +f 15/314/196 200/323/196 201/315/196 +f 65/317/6 16/320/6 63/318/6 +f 16/320/6 11/322/6 21/321/6 +f 11/322/197 10/8/197 22/23/197 +f 8/7/473 7/6/474 64/60/475 +f 200/323/196 202/336/196 203/324/196 +f 7/316/476 201/315/204 204/325/204 +f 15/314/477 65/349/478 206/327/479 +f 64/329/207 208/337/207 209/330/207 +f 202/332/6 210/338/6 211/333/6 +f 209/335/208 210/801/208 202/336/208 +f 208/337/207 211/333/207 210/338/207 +f 201/315/209 203/324/209 211/333/209 +f 213/339/210 214/359/210 215/340/210 +f 7/316/480 205/326/481 213/342/481 +f 201/315/482 208/337/482 212/343/482 +f 64/329/483 213/342/204 212/343/204 +f 207/344/216 217/351/216 218/345/216 +f 15/314/484 207/328/218 216/347/218 +f 200/323/485 216/347/485 219/348/485 +f 65/349/486 209/335/222 219/348/222 +f 220/350/99 221/356/99 218/345/99 +f 207/352/6 206/802/6 220/350/6 +f 219/353/223 221/356/223 220/350/223 +f 216/355/132 218/345/132 221/356/132 +f 222/358/126 223/361/126 215/340/126 +f 204/360/132 212/803/132 215/340/132 +f 204/362/224 223/361/224 222/358/224 +f 205/364/6 222/358/6 214/359/6 +f 116/367/487 115/804/488 120/368/487 +f 115/804/489 121/805/490 126/806/491 +f 120/368/487 115/804/492 126/806/487 +f 121/805/493 129/807/132 127/808/494 +f 127/808/495 126/806/491 121/805/496 +f 120/368/132 119/809/132 130/366/132 +f 119/809/132 128/810/132 131/811/132 +f 130/366/132 119/809/132 131/811/132 +f 225/369/52 226/812/52 227/370/52 +f 229/372/225 230/375/225 231/373/225 +f 230/375/226 232/813/226 233/376/226 +f 232/377/227 234/380/227 235/378/227 +f 234/380/228 236/382/228 237/381/228 +f 236/382/229 238/384/229 239/383/229 +f 238/384/230 240/389/230 241/385/230 +f 232/387/52 230/814/52 240/388/52 +f 230/814/52 229/815/52 240/388/52 +f 229/815/52 242/816/52 240/388/52 +f 240/388/52 238/817/52 236/818/52 +f 236/818/52 234/386/52 240/388/52 +f 240/389/231 242/391/231 243/390/231 +f 242/391/232 229/372/232 228/374/232 +f 397/392/233 247/408/233 246/393/233 +f 393/199/234 250/201/234 249/395/234 +f 400/397/235 401/401/235 245/398/235 +f 400/397/236 244/399/236 255/200/236 +f 396/394/237 246/393/237 245/398/237 +f 252/402/238 253/424/238 254/403/238 +f 406/405/239 392/396/239 249/395/239 +f 397/392/238 406/819/238 248/407/238 +f 257/409/497 258/430/497 259/410/497 +f 261/412/146 262/425/146 263/413/146 +f 265/415/237 256/423/237 266/416/237 +f 251/418/239 254/820/239 268/419/239 +f 260/414/236 263/413/236 257/421/236 +f 269/422/235 257/421/235 256/423/235 +f 264/417/233 266/416/233 253/424/233 +f 267/420/234 268/419/234 262/425/234 +f 271/426/146 272/451/146 273/427/146 +f 257/429/498 263/821/498 270/428/498 +f 268/431/242 274/442/242 271/426/242 +f 254/433/499 253/444/499 275/434/499 +f 256/436/244 259/410/244 277/437/244 +f 262/439/245 271/426/245 270/428/245 +f 254/441/500 276/822/500 274/442/500 +f 266/443/247 277/437/247 275/434/247 +f 278/445/248 279/449/248 280/446/248 +f 277/437/233 278/445/233 284/448/233 +f 258/430/235 285/450/235 279/449/235 +f 270/428/236 273/427/236 285/450/236 +f 274/442/234 283/456/234 272/451/234 +f 259/410/237 279/449/237 278/445/237 +f 287/452/236 288/479/236 289/453/236 +f 272/451/249 290/823/249 287/455/249 +f 283/456/501 282/824/501 291/457/501 +f 284/448/251 278/445/251 281/459/251 +f 285/450/502 294/648/502 295/461/502 +f 280/462/503 279/449/503 295/461/503 +f 283/456/254 292/458/254 290/464/254 +f 284/448/504 293/460/504 291/465/504 +f 298/467/6 299/825/6 300/468/6 +f 292/470/234 297/469/234 301/471/234 +f 293/473/238 302/481/238 298/474/238 +f 280/476/237 303/482/237 304/477/237 +f 290/472/146 301/471/146 288/479/146 +f 291/480/239 298/467/239 297/469/239 +f 281/478/233 304/477/233 302/481/233 +f 286/454/235 289/453/235 303/482/235 +f 306/483/233 307/510/233 308/484/233 +f 304/477/6 309/826/6 310/486/6 +f 289/453/6 311/827/6 312/487/6 +f 289/453/6 288/479/6 305/488/6 +f 301/471/6 297/469/6 300/490/6 +f 298/474/6 302/481/6 310/492/6 +f 304/477/6 303/482/6 312/494/6 +f 301/471/6 306/828/6 305/496/6 +f 308/498/6 307/829/6 313/830/6 +f 313/830/6 314/831/6 308/498/6 +f 314/831/6 315/499/6 308/498/6 +f 315/499/6 316/832/6 317/833/6 +f 317/833/6 318/497/6 315/499/6 +f 299/500/235 314/834/235 313/501/235 +f 309/503/146 316/513/146 315/504/146 +f 311/506/239 318/509/239 317/507/239 +f 305/485/238 308/484/238 318/509/238 +f 300/502/237 313/501/237 307/510/237 +f 310/505/236 315/504/236 314/511/236 +f 312/508/234 317/507/234 316/513/234 +f 327/514/505 328/548/505 329/515/505 +f 326/517/257 330/546/257 328/518/257 +f 327/520/506 276/835/506 332/521/506 +f 333/523/259 334/836/259 335/524/259 +f 337/526/260 333/837/260 336/525/260 +f 331/522/261 332/521/261 335/524/261 +f 339/529/262 340/533/262 341/530/262 +f 337/532/263 338/527/263 340/533/263 +f 320/535/264 319/519/264 328/518/264 +f 321/537/265 331/543/265 334/538/265 +f 324/540/266 337/838/266 339/541/266 +f 320/535/267 327/536/267 331/543/267 +f 322/539/268 334/538/268 333/544/268 +f 325/542/269 339/541/269 330/546/269 +f 330/547/270 341/530/270 329/515/270 +f 323/545/271 333/544/271 337/549/271 +f 340/533/234 342/555/234 343/551/234 +f 341/530/146 343/551/146 344/552/146 +f 336/525/238 345/556/238 346/553/238 +f 332/521/237 347/559/237 348/554/237 +f 338/527/239 346/553/239 342/555/239 +f 335/524/233 348/554/233 345/556/233 +f 346/553/272 345/556/272 349/557/272 +f 347/559/273 351/568/273 352/560/273 +f 344/552/274 343/551/274 353/561/274 +f 342/555/507 355/839/507 353/563/507 +f 346/553/276 350/840/276 355/564/276 +f 344/552/508 354/562/508 356/565/508 +f 347/559/509 282/841/509 356/567/509 +f 345/556/510 348/554/510 352/569/510 +f 356/571/235 357/590/235 358/572/235 +f 359/574/511 360/842/511 361/575/511 +f 352/577/233 363/582/233 364/578/233 +f 349/579/238 364/578/238 365/580/238 +f 351/573/237 358/572/237 363/582/237 +f 353/583/146 359/587/146 366/584/146 +f 355/586/234 360/589/234 359/587/234 +f 350/588/239 365/843/239 360/589/239 +f 354/585/236 366/584/236 357/590/236 +f 362/591/146 368/844/146 369/592/146 +f 360/594/281 365/845/281 370/595/281 +f 366/597/282 367/619/282 371/598/282 +f 358/600/283 357/846/283 371/601/283 +f 363/603/512 373/622/512 374/604/512 +f 364/606/285 374/623/285 370/607/285 +f 363/609/513 358/847/513 372/610/513 +f 359/612/514 362/591/514 367/593/514 +f 375/614/288 376/848/288 377/615/288 +f 361/575/234 379/630/234 368/617/234 +f 370/595/239 380/631/239 379/618/239 +f 367/619/236 369/849/236 381/620/236 +f 371/601/235 381/634/235 382/621/235 +f 373/622/233 376/848/233 375/614/233 +f 374/623/238 375/850/238 380/624/238 +f 372/610/237 382/628/237 376/625/237 +f 388/633/6 383/629/6 384/626/6 +f 384/626/6 385/632/6 386/627/6 +f 386/627/6 378/616/6 377/615/6 +f 377/615/6 387/635/6 388/633/6 +f 388/633/6 384/626/6 377/615/6 +f 380/624/289 375/850/289 378/616/289 +f 382/628/290 387/635/290 377/615/290 +f 369/592/291 368/844/291 384/626/291 +f 379/630/292 385/632/292 384/626/292 +f 380/631/293 386/627/293 385/632/293 +f 381/620/294 369/849/294 383/629/294 +f 381/634/295 388/633/295 387/635/295 +f 332/636/296 275/647/296 284/637/296 +f 329/639/297 344/643/297 283/640/297 +f 294/648/515 389/650/515 296/463/515 +f 294/648/516 390/651/516 391/649/516 +f 285/450/517 273/427/517 390/651/517 +f 287/652/518 391/649/518 390/651/518 +f 286/653/519 280/851/519 296/463/519 +f 286/653/520 389/650/520 391/649/520 +f 395/655/308 267/852/308 261/656/308 +f 398/658/309 399/669/309 264/659/309 +f 402/661/521 403/853/521 269/662/521 +f 405/664/522 260/671/522 269/665/522 +f 407/667/312 251/854/312 267/668/312 +f 399/669/523 402/661/523 265/663/523 +f 394/657/524 261/855/524 260/671/524 +f 407/667/315 398/658/315 252/672/315 +f 397/674/525 408/677/525 409/675/525 +f 408/677/238 398/658/238 407/667/238 +f 404/678/526 393/856/526 410/679/526 +f 411/680/318 410/679/318 394/657/318 +f 401/681/527 412/684/527 413/682/527 +f 412/684/320 402/661/320 399/669/320 +f 392/685/528 406/857/528 409/675/528 +f 409/675/239 407/667/239 395/655/239 +f 400/687/529 404/678/529 411/680/529 +f 400/689/530 415/858/530 412/684/530 +f 396/690/531 413/682/531 408/677/531 +f 413/682/233 399/669/233 398/658/233 +f 392/692/532 414/686/532 410/679/532 +f 414/686/234 395/655/234 394/657/234 +f 405/694/326 416/704/326 417/695/326 +f 417/695/533 418/712/533 415/697/533 +f 419/698/328 420/714/328 402/699/328 +f 420/701/534 421/859/534 403/702/534 +f 403/702/534 421/859/534 416/704/534 +f 415/697/533 418/712/533 419/698/533 +f 423/705/332 424/709/332 425/706/332 +f 417/695/66 416/704/66 422/708/66 +f 424/709/332 423/705/332 426/710/332 +f 418/712/132 424/709/132 427/711/132 +f 417/695/132 425/706/132 424/709/132 +f 419/698/52 427/711/52 426/713/52 +f 429/715/66 430/734/66 431/716/66 +f 434/720/132 431/860/132 432/718/132 +f 431/860/132 430/757/132 432/718/132 +f 436/721/52 437/736/52 438/722/52 +f 441/726/6 438/861/6 439/724/6 +f 438/861/6 437/755/6 439/724/6 +f 436/727/132 442/763/132 443/728/132 +f 429/730/6 445/761/6 446/731/6 +f 429/715/66 447/744/66 448/733/66 +f 436/721/52 444/746/52 449/735/52 +f 451/737/333 452/751/333 453/738/333 +f 455/740/334 456/750/334 457/741/334 +f 458/743/335 459/748/335 448/733/335 +f 461/745/336 449/735/336 444/746/336 +f 459/748/535 452/862/535 451/749/535 +f 455/740/332 451/737/332 450/739/332 +f 452/751/536 459/748/536 458/743/536 +f 454/742/339 457/741/339 461/745/339 +f 461/745/537 457/863/537 456/752/537 +f 451/737/341 455/740/341 443/728/341 +f 456/750/343 450/739/343 446/731/343 +f 463/754/538 439/724/538 437/755/538 +f 463/754/6 446/731/6 440/725/6 +f 446/731/6 445/761/6 440/725/6 +f 462/753/132 432/718/132 430/757/132 +f 462/753/132 443/728/132 433/719/132 +f 443/728/132 442/763/132 433/719/132 +f 455/759/539 454/864/539 460/747/539 +f 450/760/540 453/865/540 458/743/540 +f 428/762/6 441/726/6 445/761/6 +f 441/726/6 440/725/6 445/761/6 +f 435/764/132 434/720/132 442/763/132 +f 434/720/132 433/719/132 442/763/132 +f 26/39/541 8/7/541 42/61/541 +f 421/859/6 423/705/6 416/704/6 +f 29/27/542 23/77/543 71/77/544 +f 67/70/545 471/79/545 70/79/545 +f 470/70/546 473/79/546 471/79/546 +f 473/79/52 474/70/52 475/79/52 +f 475/79/547 9/70/548 477/79/549 +f 23/57/550 468/866/550 56/51/550 +f 477/198/550 9/64/550 57/55/550 +f 468/866/145 60/52/145 56/51/145 +f 472/70/551 485/70/551 474/70/551 +f 479/867/552 468/866/553 59/197/554 +f 478/80/555 485/70/556 483/70/555 +f 470/70/557 484/70/557 472/70/557 +f 69/80/558 482/77/558 478/80/558 +f 67/70/559 483/70/559 470/70/559 +f 71/77/560 469/77/561 482/77/562 +f 474/70/563 481/70/564 9/70/565 +f 68/76/566 478/80/566 480/76/566 +f 67/70/567 480/76/567 476/70/567 +f 23/24/568 481/10/568 469/24/568 +f 321/868/132 323/868/132 325/868/132 +f 246/869/132 248/869/132 250/869/132 +f 147/214/153 60/870/153 479/218/153 +f 421/859/6 420/701/6 426/713/6 +f 423/705/6 422/707/6 416/704/6 +f 421/859/6 426/713/6 423/705/6 +f 29/27/569 468/27/570 23/77/571 +f 67/70/545 470/70/545 471/79/545 +f 470/70/546 472/70/546 473/79/546 +f 473/79/52 472/70/52 474/70/52 +f 475/79/572 474/70/573 9/70/574 +f 472/70/551 484/70/551 485/70/551 +f 479/867/575 60/52/145 468/866/576 +f 468/866/577 477/198/145 59/197/578 +f 476/70/579 480/76/579 478/80/579 +f 478/80/580 482/77/580 469/77/581 +f 469/77/582 481/10/583 485/70/584 +f 485/70/585 484/70/132 483/70/132 +f 483/70/586 476/70/586 478/80/586 +f 478/80/587 469/77/588 485/70/589 +f 470/70/557 483/70/557 484/70/557 +f 69/80/558 71/77/558 482/77/558 +f 67/70/559 476/70/559 483/70/559 +f 71/77/590 23/77/591 469/77/592 +f 474/70/593 485/70/594 481/70/595 +f 68/76/566 69/80/566 478/80/566 +f 67/70/567 68/76/567 480/76/567 +f 23/24/568 9/10/568 481/10/568 +f 325/868/132 326/868/132 319/868/132 +f 319/868/132 320/868/132 321/868/132 +f 321/868/132 322/868/132 323/868/132 +f 323/868/132 324/868/132 325/868/132 +f 325/868/132 319/868/132 321/868/132 +f 250/869/132 255/869/132 244/869/132 +f 244/869/132 245/869/132 246/869/132 +f 246/869/132 247/869/132 248/869/132 +f 248/869/132 249/869/132 250/869/132 +f 250/869/132 244/869/132 246/869/132 +o Pump +v 0.000000 0.935654 2.185543 +v -0.193840 1.015945 2.185543 +v -0.214852 0.994933 2.177396 +v 0.000000 0.905939 2.177396 +v -0.193840 1.403625 2.185543 +v -0.274131 1.209785 2.185543 +v -0.274131 1.209785 3.266089 +v -0.193840 1.403625 3.266089 +v 0.000000 1.483656 2.185543 +v 0.000000 1.483656 3.266089 +v 0.274131 1.209785 2.185543 +v 0.193656 1.403441 2.185543 +v 0.193656 1.403441 3.266089 +v 0.274131 1.209785 3.266089 +v 0.000000 0.935915 3.266089 +v -0.193840 1.015945 3.266089 +v 0.193656 1.016130 2.185543 +v 0.193656 1.016130 3.266089 +v 0.000000 1.513631 2.177396 +v 0.214852 1.424637 2.177396 +v 0.214852 1.424637 2.113585 +v 0.000000 1.513631 2.113585 +v -0.214852 1.424637 2.177396 +v 0.214852 0.994933 2.177396 +v -0.303846 1.209785 2.177396 +v 0.303846 1.209785 2.177396 +v -0.214852 0.994933 2.113585 +v -0.303846 1.209785 2.113585 +v -0.273445 1.209785 2.100498 +v -0.193355 1.016430 2.100498 +v -0.214852 1.424637 2.113585 +v 0.000000 0.905939 2.113585 +v 0.214852 0.994933 2.113585 +v 0.303846 1.209785 2.113585 +v -0.193355 1.403140 2.100498 +v 0.000000 1.483230 2.100498 +v 0.193355 1.403140 2.100498 +v 0.273445 1.209785 2.100498 +v 0.193355 1.016430 2.100498 +v 0.000000 0.936340 2.100498 +v 0.000000 0.905939 3.274235 +v -0.214852 0.994933 3.274235 +v 0.000000 1.513631 3.274235 +v 0.000000 1.513631 3.338046 +v 0.214852 1.424637 3.338046 +v 0.214852 1.424637 3.274235 +v -0.214852 1.424637 3.274235 +v 0.214852 0.994933 3.274235 +v -0.303846 1.209785 3.274235 +v 0.303846 1.209785 3.274235 +v -0.214852 0.994933 3.338046 +v -0.193355 1.016430 3.351134 +v -0.273445 1.209785 3.351134 +v -0.303846 1.209785 3.338046 +v -0.214852 1.424637 3.338046 +v 0.214852 0.994933 3.338046 +v 0.000000 0.905939 3.338046 +v 0.303846 1.209785 3.338046 +v -0.193355 1.403140 3.351134 +v 0.000000 0.936340 3.351134 +v 0.193355 1.016430 3.351134 +v 0.273445 1.209785 3.351134 +v 0.193355 1.403140 3.351134 +v 0.000000 1.483230 3.351134 +v 0.213936 1.724480 -0.012808 +v 0.213408 1.585937 -0.012808 +v 0.151081 1.887906 -0.012808 +v -0.003170 1.954868 0.910839 +v 0.151354 1.887197 0.910326 +v 0.213936 1.724480 0.909649 +v -0.003170 1.954868 -0.012807 +v 0.213616 1.585937 0.909317 +vn -0.1089 -0.2629 0.9587 +vn -0.9239 0.3827 -0.0000 +vn -0.3816 0.9243 -0.0000 +vn 0.9234 0.3837 -0.0000 +vn -0.3816 -0.9243 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn 0.9234 -0.3837 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.3837 -0.9234 0.0002 +vn -0.1089 0.2628 0.9587 +vn 0.1083 -0.2605 0.9594 +vn 0.1080 0.2607 0.9593 +vn -0.2628 0.1089 0.9587 +vn -0.2628 -0.1089 0.9587 +vn 0.2628 -0.1089 0.9587 +vn 0.2605 0.1083 0.9594 +vn -0.3902 -0.1616 -0.9064 +vn -0.3827 0.9239 -0.0000 +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.0000 -0.0000 -1.0000 +vn 0.3902 0.1616 -0.9064 +vn -0.1616 -0.3902 -0.9064 +vn 0.1616 0.3902 -0.9064 +vn -0.1616 0.3902 -0.9064 +vn 0.1616 -0.3902 -0.9064 +vn -0.3902 0.1616 -0.9064 +vn 0.3902 -0.1616 -0.9064 +vn -0.1076 -0.2607 -0.9594 +vn -0.1076 0.2607 -0.9594 +vn 0.1080 -0.2607 -0.9594 +vn 0.1080 0.2607 -0.9594 +vn -0.2628 0.1089 -0.9587 +vn -0.2628 -0.1089 -0.9587 +vn 0.2605 -0.1082 -0.9594 +vn 0.2605 0.1082 -0.9594 +vn -0.3902 -0.1616 0.9064 +vn -0.0000 -0.0000 1.0000 +vn 0.3902 0.1616 0.9064 +vn -0.1616 -0.3902 0.9064 +vn 0.1616 0.3902 0.9064 +vn -0.1616 0.3902 0.9064 +vn 0.1616 -0.3902 0.9064 +vn -0.3902 0.1616 0.9064 +vn 0.3902 -0.1616 0.9064 +vn -0.1089 -0.2628 0.9587 +vn -0.3827 -0.9239 0.0002 +vn -0.1077 0.2608 0.9594 +vn 0.1089 -0.2628 0.9587 +vn 0.2605 -0.1083 0.9594 +vn 0.2628 0.1089 0.9587 +vn -0.1089 -0.2628 -0.9587 +vn -0.1089 0.2628 -0.9587 +vn 0.2628 -0.1089 -0.9587 +vn 0.2628 0.1089 -0.9587 +vn 0.9333 0.3590 -0.0000 +vn 0.4012 0.9160 -0.0000 +vn 1.0000 -0.0023 -0.0000 +vn 0.3982 0.9173 0.0006 +vn 1.0000 -0.0038 -0.0002 +vt 0.270772 0.021748 +vt 0.259071 0.044520 +vt 0.258022 0.040873 +vt 0.124225 0.297698 +vt 0.000380 0.290063 +vt 0.124223 0.290059 +vt 0.000378 0.282428 +vt 0.124220 0.282425 +vt 0.124223 0.335878 +vt 0.000382 0.328240 +vt 0.124225 0.328243 +vt 0.124227 0.305336 +vt 0.000387 0.312974 +vt 0.000384 0.305339 +vt 0.124221 0.343509 +vt 0.000380 0.335874 +vt 0.000384 0.320605 +vt 0.124227 0.320609 +vt 0.000382 0.297701 +vt 0.124229 0.312974 +vt 0.301296 0.107856 +vt 0.311550 0.080842 +vt 0.315428 0.086659 +vt 0.319568 0.052066 +vt 0.317107 0.080578 +vt 0.317107 0.050600 +vt 0.254931 0.052066 +vt 0.257392 0.080578 +vt 0.254911 0.079099 +vt 0.303748 0.109442 +vt 0.316485 0.090335 +vt 0.316477 0.040872 +vt 0.301296 0.023322 +vt 0.303727 0.021748 +vt 0.278234 0.017112 +vt 0.297242 0.020803 +vt 0.277257 0.020803 +vt 0.270772 0.109430 +vt 0.259071 0.086659 +vt 0.273203 0.107856 +vt 0.278234 0.114066 +vt 0.297242 0.110375 +vt 0.296257 0.114096 +vt 0.297242 0.029029 +vt 0.278257 0.033023 +vt 0.277257 0.029029 +vt 0.311623 0.050600 +vt 0.257392 0.050600 +vt 0.262876 0.080578 +vt 0.315428 0.044519 +vt 0.297418 0.029138 +vt 0.277081 0.102040 +vt 0.277257 0.110375 +vt 0.297242 0.102149 +vt 0.273203 0.023322 +vt 0.262949 0.050336 +vt 0.308960 0.079078 +vt 0.278257 0.098155 +vt 0.265539 0.052100 +vt 0.277257 0.102149 +vt 0.296243 0.098155 +vt 0.311623 0.080578 +vt 0.308960 0.052100 +vt 0.262876 0.050600 +vt 0.265539 0.079078 +vt 0.296242 0.033023 +vt 0.189118 0.066082 +vt 0.194118 0.093837 +vt 0.187203 0.068873 +vt 0.246869 0.062649 +vt 0.244287 0.031805 +vt 0.251935 0.059501 +vt 0.246935 0.093837 +vt 0.251935 0.066083 +vt 0.253850 0.068873 +vt 0.196766 0.031805 +vt 0.187203 0.056711 +vt 0.194097 0.031747 +vt 0.246956 0.031747 +vt 0.253850 0.056711 +vt 0.222720 0.109905 +vt 0.241223 0.102404 +vt 0.224565 0.112754 +vt 0.199830 0.102404 +vt 0.218332 0.109905 +vt 0.216488 0.112754 +vt 0.216488 0.012829 +vt 0.199869 0.027151 +vt 0.199830 0.023147 +vt 0.241184 0.027151 +vt 0.224565 0.012829 +vt 0.241223 0.023147 +vt 0.203910 0.087717 +vt 0.220431 0.102305 +vt 0.201967 0.090833 +vt 0.239221 0.090631 +vt 0.244287 0.093779 +vt 0.201832 0.034953 +vt 0.189118 0.059501 +vt 0.220622 0.102305 +vt 0.241184 0.098433 +vt 0.220431 0.023279 +vt 0.218333 0.015679 +vt 0.199868 0.098433 +vt 0.239086 0.034751 +vt 0.222720 0.015679 +vt 0.194184 0.062935 +vt 0.196766 0.093779 +vt 0.197027 0.062792 +vt 0.220527 0.027543 +vt 0.244026 0.062792 +vt 0.237143 0.037867 +vt 0.220622 0.023278 +vt 0.201832 0.090631 +vt 0.239221 0.034953 +vt 0.237143 0.087717 +vt 0.246869 0.062935 +vt 0.203910 0.037867 +vt 0.194184 0.062649 +vt 0.239086 0.090833 +vt 0.201967 0.034750 +vt 0.000378 0.343505 +vt 0.297419 0.102040 +vt 0.319588 0.079099 +vt 0.296265 0.017112 +vt 0.258014 0.090336 +vt 0.311550 0.050336 +vt 0.262949 0.080842 +vt 0.277081 0.029138 +vt 0.220526 0.098041 +vt 0.137874 0.461278 +vt 0.058604 0.420707 +vt 0.138976 0.425869 +vt 0.064584 0.393192 +vt 0.133379 0.393550 +vt 0.134776 0.484662 +vt 0.059414 0.457228 +vt 0.062578 0.483566 +s 0 +f 487/871/596 489/872/596 486/873/596 +f 491/874/597 493/875/597 490/876/597 +f 490/876/598 495/877/598 494/878/598 +f 497/879/599 499/880/599 496/881/599 +f 487/882/600 500/883/600 501/884/600 +f 494/885/601 498/886/601 497/879/601 +f 496/881/602 503/887/602 502/888/602 +f 487/882/603 492/889/603 491/874/603 +f 502/888/604 500/883/604 486/890/604 +f 505/891/601 507/892/601 504/893/601 +f 490/894/605 504/895/605 508/896/605 +f 486/897/606 509/898/606 502/899/606 +f 497/900/607 504/893/607 494/901/607 +f 490/902/608 510/903/608 491/904/608 +f 487/905/609 510/906/609 488/907/609 +f 496/908/610 509/909/610 511/910/610 +f 496/911/611 505/912/611 497/913/611 +f 513/914/612 515/915/612 512/916/612 +f 504/895/613 516/917/613 508/896/613 +f 489/918/614 518/919/614 509/898/614 +f 508/920/597 513/921/597 510/903/597 +f 509/909/615 519/922/615 511/910/615 +f 510/906/603 512/916/603 488/907/603 +f 511/923/616 506/924/616 505/912/616 +f 488/925/617 517/926/617 489/872/617 +f 521/927/618 523/928/618 525/929/618 +f 519/930/619 522/931/619 506/924/619 +f 517/926/620 515/915/620 525/929/620 +f 507/892/621 522/931/621 521/927/621 +f 507/932/622 520/933/622 516/917/622 +f 517/934/623 524/935/623 518/919/623 +f 513/921/624 520/933/624 514/936/624 +f 519/922/625 524/935/625 523/928/625 +f 526/937/626 501/938/626 500/939/626 +f 529/940/601 531/941/601 528/942/601 +f 493/943/627 528/944/627 495/945/627 +f 533/946/628 500/947/628 503/948/628 +f 528/942/629 498/949/629 495/950/629 +f 534/951/630 493/952/630 492/953/630 +f 501/954/631 534/955/631 492/956/631 +f 499/957/632 533/958/632 503/959/632 +f 531/960/633 499/961/633 498/962/633 +f 537/963/634 539/964/634 536/965/634 +f 540/966/613 528/944/613 532/967/613 +f 541/968/614 526/969/614 533/946/614 +f 539/970/597 532/971/597 534/951/597 +f 543/972/615 533/958/615 535/973/615 +f 536/965/603 534/955/603 527/974/603 +f 530/975/616 535/976/616 531/960/616 +f 542/977/617 527/978/617 526/937/617 +f 545/979/635 547/980/635 549/981/635 +f 548/982/636 543/983/636 530/975/636 +f 545/979/637 536/984/637 542/977/637 +f 529/940/638 548/982/638 530/985/638 +f 544/986/639 529/987/639 540/966/639 +f 546/988/640 542/989/640 541/968/640 +f 539/970/641 544/986/641 540/990/641 +f 543/972/642 546/988/642 541/991/642 +f 487/871/643 488/925/643 489/872/643 +f 491/874/597 492/889/597 493/875/597 +f 490/876/598 493/875/598 495/877/598 +f 497/879/599 498/886/599 499/880/599 +f 487/882/644 486/890/644 500/883/644 +f 494/885/601 495/992/601 498/886/601 +f 496/881/602 499/880/602 503/887/602 +f 487/882/603 501/884/603 492/889/603 +f 502/888/614 503/887/614 500/883/614 +f 505/891/601 506/993/601 507/892/601 +f 490/894/645 494/994/645 504/895/645 +f 486/897/646 489/918/646 509/898/646 +f 497/900/607 505/891/607 504/893/607 +f 490/902/608 508/920/608 510/903/608 +f 487/905/609 491/995/609 510/906/609 +f 496/908/647 502/996/647 509/909/647 +f 496/911/648 511/923/648 505/912/648 +f 513/914/612 514/936/612 515/915/612 +f 504/895/613 507/932/613 516/917/613 +f 489/918/614 517/934/614 518/919/614 +f 508/920/597 516/997/597 513/921/597 +f 509/909/615 518/998/615 519/922/615 +f 510/906/603 513/914/603 512/916/603 +f 511/923/616 519/930/616 506/924/616 +f 488/925/617 512/999/617 517/926/617 +f 514/936/618 520/933/618 521/927/618 +f 521/927/618 522/931/618 523/928/618 +f 523/928/618 524/935/618 525/929/618 +f 525/929/618 515/915/618 514/936/618 +f 514/936/618 521/927/618 525/929/618 +f 519/930/619 523/928/619 522/931/619 +f 517/926/620 512/999/620 515/915/620 +f 507/892/621 506/993/621 522/931/621 +f 507/932/622 521/927/622 520/933/622 +f 517/934/623 525/929/623 524/935/623 +f 513/921/624 516/997/624 520/933/624 +f 519/922/625 518/998/625 524/935/625 +f 526/937/649 527/978/649 501/938/649 +f 529/940/601 530/985/601 531/941/601 +f 493/943/650 532/967/650 528/944/650 +f 533/946/628 526/969/628 500/947/628 +f 528/942/629 531/941/629 498/949/629 +f 534/951/630 532/971/630 493/952/630 +f 501/954/631 527/974/631 534/955/631 +f 499/957/651 535/973/651 533/958/651 +f 531/960/652 535/976/652 499/961/652 +f 537/963/634 538/1000/634 539/964/634 +f 540/966/613 529/987/613 528/944/613 +f 541/968/614 542/989/614 526/969/614 +f 539/970/597 540/990/597 532/971/597 +f 543/972/615 541/991/615 533/958/615 +f 536/965/603 539/964/603 534/955/603 +f 530/975/616 543/983/616 535/976/616 +f 542/977/617 536/984/617 527/978/617 +f 549/981/635 544/986/635 538/1000/635 +f 538/1000/635 537/963/635 545/979/635 +f 545/979/635 546/988/635 547/980/635 +f 547/980/635 548/982/635 549/981/635 +f 549/981/635 538/1000/635 545/979/635 +f 548/982/636 547/980/636 543/983/636 +f 545/979/637 537/963/637 536/984/637 +f 529/940/638 549/981/638 548/982/638 +f 544/986/639 549/981/639 529/987/639 +f 546/988/640 545/979/640 542/989/640 +f 539/970/641 538/1000/641 544/986/641 +f 543/972/642 547/980/642 546/988/642 +f 555/1001/653 552/1002/653 554/1003/653 +f 554/1003/654 556/1004/654 553/1005/654 +f 557/1006/655 550/1007/655 555/1001/655 +f 555/1001/653 550/1007/653 552/1002/653 +f 554/1003/656 552/1002/656 556/1004/656 +f 557/1006/657 551/1008/657 550/1007/657 +o Shell +v 0.000000 1.558350 0.961217 +v 0.132625 1.613285 0.961217 +v 0.187560 1.745910 0.961217 +v 0.132625 1.878535 0.961217 +v 0.000000 1.933470 0.961217 +v -0.132625 1.878535 0.961217 +v -0.187560 1.745910 0.961217 +v -0.132625 1.613285 0.961217 +v 0.142112 1.603798 0.961217 +v 0.000000 1.544933 0.961217 +v 0.200977 1.745910 0.961217 +v 0.142112 1.888022 0.961217 +v 0.000000 1.946887 0.961217 +v -0.142112 1.888022 0.961217 +v -0.200977 1.745910 0.961217 +v -0.142112 1.603798 0.961217 +v 0.142112 1.603798 0.924739 +v 0.000000 1.544933 0.924739 +v 0.200977 1.745910 0.924739 +v 0.142112 1.888022 0.924739 +v 0.000000 1.946887 0.924739 +v -0.142112 1.888022 0.924739 +v -0.200977 1.745910 0.924739 +v -0.142112 1.603798 0.924739 +v 0.000000 1.558350 1.273779 +v 0.132625 1.613285 1.273779 +v 0.187560 1.745910 1.273779 +v 0.132625 1.878535 1.273779 +v 0.000000 1.933470 1.273779 +v -0.132625 1.878535 1.273779 +v -0.187560 1.745910 1.273779 +v -0.132625 1.613285 1.273779 +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.9239 -0.3827 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.000036 0.790759 +vt 0.040554 0.713148 +vt 0.040554 0.790759 +vt 0.081073 0.790759 +vt 0.081073 0.713148 +vt 0.121591 0.790759 +vt 0.121591 0.713148 +vt 0.162109 0.790759 +vt 0.162109 0.713148 +vt 0.202628 0.790759 +vt 0.202628 0.713148 +vt 0.243146 0.790759 +vt 0.283665 0.713148 +vt 0.283665 0.790759 +vt 0.324183 0.790759 +vt 0.289062 0.718750 +vt 0.246094 0.734375 +vt 0.246094 0.718750 +vt 0.169922 0.718750 +vt 0.132812 0.734375 +vt 0.132812 0.718750 +vt 0.207031 0.734375 +vt 0.169922 0.734375 +vt 0.064453 0.718750 +vt 0.097656 0.734375 +vt 0.064453 0.734375 +vt 0.125490 0.709362 +vt 0.083924 0.722064 +vt 0.083924 0.709362 +vt 0.333322 0.709362 +vt 0.291755 0.722064 +vt 0.291755 0.709362 +vt 0.042358 0.722064 +vt 0.042358 0.709362 +vt 0.250189 0.722064 +vt 0.250189 0.709362 +vt 0.167057 0.709362 +vt 0.125490 0.722064 +vt 0.000792 0.722064 +vt 0.000792 0.709362 +vt 0.208623 0.722064 +vt 0.208623 0.709362 +vt 0.167057 0.722064 +vt 0.031250 0.718750 +vt 0.031250 0.734375 +vt 0.097656 0.718750 +vt 0.207031 0.718750 +vt 0.000000 0.734375 +vt 0.000000 0.718750 +vt 0.474368 0.725066 +vt 0.475111 0.802599 +vt 0.358812 0.803095 +vt 0.000036 0.713148 +vt 0.243146 0.713148 +vt 0.324183 0.713148 +vt 0.289062 0.734375 +vt 0.333322 0.722064 +vt 0.334353 0.764431 +vt 0.358068 0.725561 +vt 0.416064 0.709256 +vt 0.498826 0.763730 +vt 0.417116 0.818904 +s 0 +f 582/1009/658 559/1010/658 583/1011/658 +f 559/1010/659 584/1012/659 583/1011/659 +f 560/1013/660 585/1014/660 584/1012/660 +f 561/1015/661 586/1016/661 585/1014/661 +f 562/1017/662 587/1018/662 586/1016/662 +f 563/1019/663 588/1020/663 587/1018/663 +f 588/1020/664 565/1021/664 589/1022/664 +f 565/1021/665 582/1023/665 589/1022/665 +f 563/1024/666 572/1025/666 564/1026/666 +f 558/1027/666 566/1028/666 559/1029/666 +f 558/1027/666 573/1030/666 567/1031/666 +f 561/1032/666 568/1033/666 569/1034/666 +f 568/1035/660 577/1036/660 569/1037/660 +f 571/1038/663 580/1039/663 572/1040/663 +f 569/1037/661 578/1041/661 570/1042/661 +f 572/1040/664 581/1043/664 573/1044/664 +f 566/1045/659 576/1046/659 568/1035/659 +f 570/1042/662 579/1047/662 571/1048/662 +f 573/1044/665 575/1049/665 567/1050/665 +f 567/1050/658 574/1051/658 566/1045/658 +f 562/1052/666 569/1034/666 570/1053/666 +f 559/1029/666 568/1033/666 560/1054/666 +f 564/1026/666 573/1030/666 565/1055/666 +f 562/1052/666 571/1056/666 563/1057/666 +f 581/1058/667 579/1059/667 577/1060/667 +f 582/1009/658 558/1061/658 559/1010/658 +f 559/1010/659 560/1013/659 584/1012/659 +f 560/1013/660 561/1015/660 585/1014/660 +f 561/1015/661 562/1017/661 586/1016/661 +f 562/1017/662 563/1019/662 587/1018/662 +f 563/1019/663 564/1062/663 588/1020/663 +f 588/1020/664 564/1062/664 565/1021/664 +f 565/1021/665 558/1063/665 582/1023/665 +f 563/1024/666 571/1064/666 572/1025/666 +f 558/1027/666 567/1031/666 566/1028/666 +f 558/1027/666 565/1055/666 573/1030/666 +f 561/1032/666 560/1054/666 568/1033/666 +f 568/1035/660 576/1046/660 577/1036/660 +f 571/1038/663 579/1065/663 580/1039/663 +f 569/1037/661 577/1036/661 578/1041/661 +f 572/1040/664 580/1039/664 581/1043/664 +f 566/1045/659 574/1051/659 576/1046/659 +f 570/1042/662 578/1041/662 579/1047/662 +f 573/1044/665 581/1043/665 575/1049/665 +f 567/1050/658 575/1049/658 574/1051/658 +f 562/1052/666 561/1032/666 569/1034/666 +f 559/1029/666 566/1028/666 568/1033/666 +f 564/1026/666 572/1025/666 573/1030/666 +f 562/1052/666 570/1053/666 571/1056/666 +f 577/1060/667 576/1066/667 574/1067/667 +f 574/1067/667 575/1068/667 581/1058/667 +f 581/1058/667 580/1069/667 579/1059/667 +f 579/1059/667 578/1070/667 577/1060/667 +f 577/1060/667 574/1067/667 581/1058/667 +o Sight +v -0.128183 2.091560 2.999992 +v 0.128183 2.091560 2.999992 +v -0.000758 2.091560 2.999992 +v -0.000758 2.040556 3.941854 +v -0.000758 2.038297 3.983544 +v -0.128183 2.038297 3.983544 +v -0.103443 2.040556 3.941854 +v -0.128183 2.117034 2.999992 +v -0.000758 2.117034 2.999992 +v 0.128183 2.117034 2.999992 +v -0.000758 2.113045 3.073697 +v -0.103443 2.113045 3.073697 +v -0.000758 2.063745 3.984738 +v -0.128183 2.063745 3.984738 +v 0.128183 2.038297 3.983544 +v 0.128183 2.063745 3.984738 +v -0.000758 2.087663 3.071927 +v 0.103443 2.087663 3.071927 +v 0.103443 2.065968 3.943648 +v -0.000758 2.065968 3.943648 +v -0.103443 2.087663 3.071927 +v -0.103443 2.065968 3.943648 +v 0.103443 2.040556 3.941854 +v 0.103443 2.113045 3.073697 +vn -0.0000 -0.9985 -0.0541 +vn -0.0000 0.9985 0.0540 +vn -0.0000 -0.0469 0.9989 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.0704 -0.9975 +vn -0.0000 -0.0696 0.9976 +vn 0.0001 -0.9985 -0.0541 +vn -0.0001 -0.9985 -0.0541 +vn -0.0000 -0.0000 -1.0000 +vt 0.276157 1.000043 +vt 0.277845 0.988719 +vt 0.279031 0.999320 +vt 0.262350 0.883120 +vt 0.272118 0.893652 +vt 0.262350 0.893652 +vt 0.274698 0.990680 +vt 0.275897 0.990665 +vt 0.222326 0.666214 +vt 0.223796 0.675651 +vt 0.221878 0.675521 +vt 0.276984 0.883345 +vt 0.274471 0.883120 +vt 0.209797 0.558857 +vt 0.219735 0.569163 +vt 0.209797 0.569163 +vt 0.225468 0.664276 +vt 0.226612 0.674973 +vt 0.222094 0.558857 +vt 0.223523 0.666167 +vt 0.281111 0.893792 +vt 0.279697 0.988827 +vt 0.228356 0.674554 +vt 0.227211 0.663856 +vt 0.220401 0.664219 +vt 0.217884 0.569235 +vt 0.272118 0.897282 +vt 0.279262 0.893687 +vt 0.219072 0.674722 +vt 0.289130 0.883559 +vt 0.289049 0.893859 +vt 0.272776 0.988740 +vt 0.274236 0.999907 +vt 0.271463 0.999118 +vt 0.226877 0.569238 +vt 0.236860 0.558893 +vt 0.236778 0.569413 +vt 0.236749 0.573040 +vt 0.269746 0.998630 +vt 0.224609 0.558677 +vt 0.218549 0.664294 +vt 0.262350 0.897282 vt 0.226848 0.572865 vt 0.271059 0.988251 -vn 0.4257 0.9049 -0.0048 -vn 0.9414 0.3371 -0.0135 -vn 1.0000 -0.0021 -0.0092 -vn 0.9999 -0.0056 -0.0127 -vn -0.7762 -0.6305 -0.0048 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0049 -0.0080 -vn -1.0000 0.0016 -0.0087 -vn -0.9414 0.3371 -0.0136 -vn -0.9415 0.3368 -0.0109 -vn -0.4227 0.9063 0.0000 -vn 0.7762 -0.6305 -0.0048 -vn -0.9415 0.3371 0.0000 -vn -0.9406 0.3396 0.0004 -vn 0.3933 -0.0014 0.9194 -vn 0.3737 0.1338 0.9179 -vn -1.0000 -0.0035 -0.0003 -vn 0.9937 0.0000 -0.1121 -vn 1.0000 -0.0035 0.0000 -vn 1.0000 0.0000 -0.0002 -vn -0.9568 0.2679 -0.1132 -vn -0.7341 -0.6786 -0.0246 -vn -1.0000 -0.0004 -0.0003 -vn -0.0014 -0.9870 -0.1609 -vn 1.0000 -0.0079 -0.0019 -vn 1.0000 -0.0051 0.0001 -vn -1.0000 -0.0051 0.0001 -vn -1.0000 -0.0079 -0.0019 -vn 0.0908 -0.1778 0.9799 -vn 0.0000 -1.0000 -0.0075 -vn 1.0000 0.0016 -0.0088 -vn 1.0000 0.0049 -0.0080 -vn 0.9999 -0.0004 -0.0153 -vn 0.9999 -0.0004 -0.0102 -vn -0.9999 -0.0004 -0.0102 -vn -0.9999 -0.0004 -0.0153 -vn -1.0000 -0.0021 -0.0092 -vn -0.9999 -0.0069 -0.0104 -vn -0.9999 -0.0048 -0.0096 -vn -0.0908 -0.1778 0.9799 -vn 0.4227 0.9063 0.0000 -vn 0.1385 0.3003 -0.9437 -vn 0.9415 0.3371 0.0000 -vn 0.9333 0.3590 -0.0000 -vn 0.4012 0.9160 0.0000 -vn 1.0000 -0.0023 0.0000 -vn 0.9985 -0.0546 0.0000 -vn 0.3719 0.1363 -0.9182 -vn 0.7077 0.7065 -0.0002 -vn 0.1397 0.2995 0.9438 -vn 0.3939 0.0013 -0.9192 -vn -1.0000 -0.0068 0.0000 -vn -1.0000 -0.0061 0.0028 -vn -1.0000 -0.0042 0.0047 -vn 1.0000 0.0000 0.0000 -vn 1.0000 0.0007 0.0027 -vn 1.0000 -0.0016 -0.0023 -vn -0.9546 0.2485 -0.1646 -vn -0.9937 -0.0007 -0.1122 -vn -0.5111 0.8476 -0.1425 -vn 0.5111 0.8476 -0.1425 -vn 0.9568 0.2679 -0.1132 -vn -0.9937 0.0000 -0.1121 -vn 0.9936 -0.0013 -0.1126 -vn -0.9389 0.3167 -0.1345 -vn -0.5509 -0.5672 0.6122 -vn 0.9389 0.3167 -0.1345 -vn -0.4738 0.7235 -0.5021 -vn -1.0000 0.0000 0.0000 -vn -1.0000 -0.0023 0.0014 -vn 0.4738 0.7235 -0.5021 -vn 1.0000 -0.0012 0.0016 -vn 1.0000 -0.0039 0.0023 -vn 0.9546 0.2485 -0.1646 -vn -0.6739 -0.6939 0.2537 -vn 0.9694 0.2236 0.1017 -vn 0.9694 0.2237 0.1012 -vn 1.0000 -0.0034 -0.0015 -vn 1.0000 -0.0017 -0.0014 -vn 1.0000 -0.0038 -0.0012 -vn 0.5456 0.7635 0.3455 -vn 1.0000 0.0015 0.0024 -vn 1.0000 -0.0023 -0.0015 -vn -1.0000 -0.0045 0.0006 -vn -1.0000 -0.0035 0.0032 -vn -1.0000 -0.0007 0.0039 -vn -0.4293 0.8526 -0.2981 -vn -1.0000 -0.0004 0.0028 -vn 0.4293 0.8526 -0.2981 -vn 1.0000 -0.0037 0.0023 -vn 1.0000 -0.0061 0.0037 -vn -0.5813 0.8136 -0.0067 -vn -1.0000 -0.0019 -0.0013 -vn -1.0000 -0.0017 0.0003 -vn -0.6627 -0.6823 -0.3087 -vn -0.9694 0.2237 0.1012 -vn -0.9694 0.2235 0.1017 -vn 1.0000 0.0006 -0.0028 -vn 1.0000 -0.0008 0.0015 -vn -1.0000 -0.0034 -0.0015 -vn -1.0000 -0.0033 0.0002 -vn -1.0000 -0.0014 -0.0035 -vn -0.5456 0.7635 0.3455 -vn -1.0000 -0.0025 -0.0012 -vn -1.0000 -0.0017 0.0000 -vn -0.9902 0.1399 -0.0006 -vn 0.5813 0.8136 -0.0067 -vn 1.0000 -0.0032 -0.0014 -vn 1.0000 -0.0034 0.0003 -vn 1.0000 -0.0038 -0.0000 -vn 0.9737 0.2279 -0.0023 -vn 0.9738 0.2276 -0.0019 -vn -0.6847 -0.7050 0.1849 -vn -0.9738 0.2276 -0.0019 -vn -0.9736 0.2281 -0.0020 -vn 1.0000 -0.0017 -0.0001 -vn 0.6275 0.0151 -0.7785 -vn 0.6330 0.0176 -0.7740 -vn -0.7019 0.0021 -0.7122 -vn -0.7064 0.0000 -0.7078 -vn 0.6040 0.2359 -0.7612 -vn 0.3767 0.8078 -0.4533 -vn -0.3910 0.8384 -0.3797 -vn -0.7142 0.0083 -0.6999 -vn -0.7143 0.0016 -0.6998 -vn -0.7176 0.0128 -0.6964 -vn -0.1915 -0.3110 -0.9309 -vn -0.6735 0.2590 -0.6923 -vn 0.6296 0.0075 -0.7769 -vn 0.6296 0.0000 -0.7769 -vn 0.6254 -0.0051 -0.7803 -vn -0.7634 0.6459 -0.0028 -vn 0.7634 0.6459 -0.0028 -vn 1.0000 -0.0017 0.0000 -vn 0.9902 0.1399 -0.0006 -vn -0.6967 -0.7173 0.0031 -vn 0.6973 -0.7167 0.0031 -vn 0.0000 -1.0000 0.0043 -vn 0.1962 -0.2566 -0.9464 -vn 0.0000 0.0000 -1.0000 -vn 0.6853 -0.7044 0.1847 -vn 0.0000 -0.9673 0.2537 -vn 0.6633 -0.6818 -0.3085 -vn 0.0000 -0.9111 -0.4123 -vn 0.7110 -0.6559 0.2535 -vn 0.9999 0.0128 -0.0066 -vn 0.9999 0.0080 -0.0062 -vn 0.5516 -0.5669 0.6119 -vn 0.0000 -0.6796 0.7335 -vn 0.7348 -0.6778 -0.0246 -vn 0.9238 0.0000 -0.3830 -vn 0.0056 -0.0098 -0.9999 -vn 0.0000 -1.0000 0.0095 -vn -0.9239 0.3827 0.0000 -vn 1.0000 0.0000 -0.0015 -vn 0.0000 0.0216 -0.9998 -vn -0.9840 -0.1758 -0.0295 -vn -1.0000 0.0000 -0.0015 -vn 0.0000 -0.0216 0.9998 -vn 0.9993 0.0008 -0.0364 -vn 0.0000 -0.0377 0.9993 -vn -0.9997 -0.0009 -0.0249 -vn -0.0057 -0.0103 -0.9999 -vn 0.0000 -0.9998 -0.0206 -vn 0.0000 -0.9997 -0.0225 -vn -0.9997 0.0005 -0.0231 -vn 0.0000 0.9998 0.0216 -vn 0.0000 -0.9998 -0.0216 -vn 0.0000 0.9604 0.2786 -vn 0.0000 -0.9648 -0.2630 -vn -1.0000 -0.0047 0.0009 -vn 0.0000 -0.7438 -0.6684 -vn 0.0000 0.7295 0.6840 -vn 0.0000 0.1212 0.9926 -vn 1.0000 -0.0039 0.0029 -vn 1.0000 -0.0005 -0.0048 -vn 0.0000 -0.1592 -0.9872 -vn 0.0000 -0.0766 -0.9971 -vn 0.0000 0.0714 0.9974 -vn -0.9999 0.0080 -0.0062 -vn -0.9999 0.0128 -0.0066 -vn 0.0000 0.1150 -0.9934 -vn 0.0000 -0.1150 0.9934 -vn 0.0000 0.0444 -0.9990 -vn 0.0000 -0.0997 0.9950 -vn 0.0000 -0.1804 0.9836 -vn 0.0000 -0.0613 -0.9981 -vn 0.9955 -0.0947 0.0000 -vn 0.0000 0.1792 0.9838 -vn 0.0000 -0.2422 -0.9702 -vn 0.0008 0.5015 0.8652 -vn 0.0000 0.5038 0.8638 -vn 0.0005 0.5013 0.8652 -vn -0.9934 -0.0844 0.0771 -vn 0.0000 0.5088 0.8609 -vn 0.0025 0.5075 0.8616 -vn -0.0026 0.5077 0.8616 -vn 0.0000 -0.5752 -0.8180 -vn 0.0000 -0.7383 0.6745 -vn 0.0000 -0.9117 -0.4108 -vn 0.9385 -0.2548 0.2328 -vn -0.9386 -0.2548 0.2328 -vn 0.0000 -0.9994 -0.0347 -vn -0.0051 1.0000 0.0000 -vn 0.0000 -0.0370 0.9993 -vn 0.9999 -0.0021 -0.0102 -vn 0.9999 0.0018 -0.0135 -vn -1.0000 -0.0035 -0.0069 -vn -0.9999 0.0001 -0.0134 -vn -1.0000 -0.0015 -0.0087 -vn 1.0000 0.0010 0.0047 -vn 1.0000 -0.0006 0.0000 -vn -1.0000 -0.0027 0.0042 -vn -1.0000 -0.0017 -0.0006 -vn 0.0007 -1.0000 -0.0000 -vn -1.0000 -0.0012 0.0001 -vn -1.0000 -0.0015 0.0000 -vn -1.0000 -0.0013 -0.0003 -vn 1.0000 -0.0015 0.0000 -vn 0.0032 1.0000 0.0000 -vn 1.0000 -0.0056 0.0033 -vn 1.0000 -0.0015 0.0006 -vn 1.0000 0.0015 0.0047 -vn 1.0000 -0.0017 0.0008 -vn 1.0000 -0.0006 0.0051 -vn 0.0032 -1.0000 -0.0000 -vn -1.0000 0.0013 0.0045 -vn -1.0000 -0.0007 -0.0000 -vn -1.0000 -0.0006 0.0003 -vn -1.0000 -0.0012 -0.0007 -vn -1.0000 -0.0015 -0.0006 -vn -1.0000 -0.0012 -0.0008 -vn -1.0000 -0.0004 0.0051 -vn -1.0000 -0.0006 0.0000 -vn -0.0032 1.0000 0.0000 -vn -0.0032 -1.0000 0.0000 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 +s 0 +f 594/1071/668 596/1072/668 593/1073/668 +f 598/1074/669 601/1075/669 600/1076/669 +f 594/1071/670 603/1077/670 595/1078/670 +f 604/1079/670 602/1080/670 594/1081/670 +f 590/1082/671 603/1077/671 597/1083/671 +f 592/1084/668 607/1085/668 606/1086/668 +f 602/1080/669 608/1087/669 609/1088/669 +f 591/1089/672 605/1090/672 604/1079/672 +f 596/1072/672 601/1091/672 611/1092/672 +f 593/1093/673 608/1087/673 612/1094/673 +f 612/1095/671 613/1096/671 607/1085/671 +f 610/1097/674 600/1076/674 601/1075/674 +f 595/1078/675 610/1098/675 596/1072/675 +f 612/1095/668 594/1081/668 593/1099/668 +f 607/1085/676 604/1079/676 612/1095/676 +f 610/1098/668 592/1100/668 606/1101/668 +f 611/1102/669 602/1103/669 609/1104/669 +f 605/1090/669 613/1105/669 608/1087/669 +f 601/1075/669 603/1077/669 611/1102/669 +f 613/1105/669 598/1106/669 600/1107/669 +f 606/1108/674 613/1105/674 600/1107/674 +f 593/1109/673 611/1102/673 609/1104/673 +f 594/1071/668 595/1078/668 596/1072/668 +f 598/1074/669 597/1083/669 601/1075/669 +f 594/1071/670 602/1103/670 603/1077/670 +f 604/1079/670 605/1090/670 602/1080/670 +f 590/1082/671 595/1078/671 603/1077/671 +f 592/1084/668 591/1089/668 607/1085/668 +f 602/1080/669 605/1090/669 608/1087/669 +f 591/1089/672 599/1110/672 605/1090/672 +f 596/1072/672 610/1098/672 601/1091/672 +f 593/1093/673 609/1088/673 608/1087/673 +f 612/1095/671 608/1111/671 613/1096/671 +f 610/1097/674 606/1112/674 600/1076/674 +f 595/1078/676 590/1082/676 610/1098/676 +f 612/1095/668 604/1079/668 594/1081/668 +f 607/1085/675 591/1089/675 604/1079/675 +f 610/1098/668 590/1082/668 592/1100/668 +f 611/1102/669 603/1077/669 602/1103/669 +f 605/1090/669 599/1110/669 613/1105/669 +f 601/1075/669 597/1083/669 603/1077/669 +f 613/1105/669 599/1110/669 598/1106/669 +f 606/1108/674 607/1113/674 613/1105/674 +f 593/1109/673 596/1114/673 611/1102/673 +f 592/1084/677 598/1106/677 591/1089/677 +f 592/1084/677 590/1082/677 597/1083/677 +f 598/1106/677 599/1110/677 591/1089/677 +f 592/1084/677 597/1083/677 598/1106/677 +o Loop +v 0.406256 1.125653 3.483772 +v 0.372781 1.206173 3.302696 +v 0.405798 1.241512 3.327720 +v 0.434647 1.172119 3.483772 +v 0.377865 1.264868 3.368210 +v 0.399229 1.213480 3.483772 +v 0.327584 1.243964 3.368210 +v 0.348947 1.192576 3.483772 +v 0.324441 1.207689 3.327720 +v 0.353290 1.138296 3.483772 +v 0.297563 1.387101 3.257974 +v 0.340975 1.397436 3.289178 +v 0.329861 1.380335 3.339669 +v 0.279580 1.359431 3.339669 +v 0.259618 1.363613 3.289178 +v 0.237243 1.532194 3.383282 +v 0.288991 1.522477 3.397170 +v 0.291365 1.472933 3.419640 +v 0.241084 1.452029 3.419640 +v 0.207634 1.488654 3.397170 +v 0.237243 1.532194 3.584262 +v 0.288991 1.522477 3.570374 +v 0.291365 1.472933 3.547904 +v 0.241084 1.452029 3.547904 +v 0.207634 1.488654 3.570374 +v 0.297563 1.387101 3.709570 +v 0.340975 1.397436 3.678366 +v 0.329861 1.380335 3.627876 +v 0.279580 1.359431 3.627876 +v 0.259618 1.363613 3.678366 +v 0.372781 1.206173 3.664848 +v 0.405798 1.241512 3.639824 +v 0.377865 1.264868 3.599334 +v 0.327584 1.243964 3.599334 +v 0.324441 1.207689 3.639824 vn 0.7951 -0.4858 -0.3630 vn 0.7513 0.6433 0.1472 vn -0.3459 0.8319 0.4339 @@ -2140,24 +3616,24 @@ vn 0.5772 0.0383 -0.8157 vn 0.8396 0.4308 0.3307 vn -0.0854 0.2055 0.9749 vn -0.8976 -0.2914 0.3307 -vn -0.4343 -0.3822 -0.8157 +vn -0.4342 -0.3822 -0.8157 vn 0.3055 0.6919 -0.6541 vn 0.9498 0.1658 0.2652 -vn 0.2394 -0.5757 0.7818 +vn 0.2393 -0.5757 0.7818 vn -0.7874 -0.5564 0.2652 vn -0.7060 0.2715 -0.6542 -vn 0.1846 0.9828 0.0000 -vn 0.9989 0.0479 0.0000 -vn 0.3839 -0.9234 0.0000 -vn -0.7384 -0.6744 0.0000 -vn -0.8269 0.5623 0.0000 +vn 0.1845 0.9828 -0.0000 +vn 0.9989 0.0479 -0.0000 +vn 0.3839 -0.9234 -0.0000 +vn -0.7384 -0.6744 -0.0000 +vn -0.8269 0.5623 -0.0000 vn 0.3055 0.6919 0.6541 vn 0.9498 0.1658 -0.2652 vn 0.2394 -0.5757 -0.7818 vn -0.7874 -0.5564 -0.2652 -vn -0.7060 0.2715 0.6541 +vn -0.7060 0.2714 0.6541 vn 0.5772 0.0383 0.8157 -vn 0.8396 0.4308 -0.3308 +vn 0.8396 0.4308 -0.3307 vn -0.0854 0.2055 -0.9749 vn -0.8976 -0.2914 -0.3307 vn -0.4342 -0.3822 0.8157 @@ -2165,1330 +3641,511 @@ vn 0.7951 -0.4858 0.3630 vn 0.7513 0.6433 -0.1472 vn -0.3459 0.8319 -0.4339 vn -0.9860 -0.0789 -0.1472 -vn -0.2163 -0.9063 0.3630 -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.3827 -0.9239 0.0000 -vn -0.3827 -0.9239 0.0000 -vn 0.2163 0.5222 -0.8249 -vn -0.2163 0.5222 -0.8249 -vn -0.5222 -0.2163 -0.8249 -vn 0.2081 -0.4401 -0.8735 -vn 0.5222 0.2163 -0.8249 -vn -0.5222 0.2163 -0.8249 -vn -0.2163 -0.5222 -0.8249 -vn 0.5222 -0.2163 -0.8249 -vn 0.5222 0.2163 0.8249 -vn -0.5222 0.2163 0.8249 -vn -0.2163 -0.5222 0.8249 -vn 0.5222 -0.2163 0.8249 -vn 0.3827 0.9238 -0.0120 -vn 0.8438 -0.5265 0.1041 -vn -0.5222 -0.2163 0.8250 -vn 0.2058 -0.4197 0.8840 -vn -0.1653 0.4232 -0.8908 -vn -0.9239 0.3827 0.0001 -vn 0.1642 0.3964 -0.9033 -vn 0.3964 -0.1642 -0.9033 -vn 0.1642 -0.3964 -0.9033 -vn 0.3964 0.1642 -0.9033 -vn -0.3964 -0.1642 -0.9033 -vn -0.1642 -0.3964 -0.9033 -vn -0.3827 0.9239 0.0001 -vn 0.9239 0.3827 0.0001 -vn -0.3827 -0.9239 0.0001 -vn 0.3827 0.9239 0.0001 -vn 0.9239 -0.3827 0.0001 -vn -0.9239 -0.3827 0.0001 -vn -0.3964 0.1642 -0.9033 -vn 0.3827 -0.9239 0.0001 -vn 0.1317 -0.3179 0.9389 -vn 0.3179 0.1317 0.9389 -vn -0.3179 0.1317 0.9389 -vn -0.3179 -0.1317 0.9389 -vn -0.1317 -0.3179 0.9389 -vn -0.1355 0.3696 0.9193 -vn 0.1317 0.3179 0.9389 -vn 0.3179 -0.1317 0.9390 -vn -0.4654 -0.1928 -0.8638 -vn -0.1928 -0.4654 -0.8638 -vn -0.1928 0.4654 -0.8638 -vn 0.1928 0.4654 -0.8638 -vn 0.4654 -0.1928 -0.8639 -vn 0.1928 -0.4654 -0.8638 -vn 0.4654 0.1928 -0.8638 -vn -0.4654 0.1928 -0.8639 -vn 0.2570 -0.1064 0.9605 -vn 0.1064 -0.2570 0.9605 -vn 0.2570 0.1064 0.9605 -vn -0.2570 0.1064 0.9605 -vn -0.2570 -0.1064 0.9605 -vn -0.1064 -0.2570 0.9605 -vn -0.1064 0.2570 0.9605 -vn 0.1064 0.2570 0.9605 -vn 0.9968 0.0794 0.0000 -vn -0.9968 0.0794 0.0000 -vn -0.0007 0.0459 -0.9989 -vn -0.0009 0.0618 0.9981 -vn 0.0009 0.0618 0.9981 -vn 0.0007 0.0459 -0.9989 -vn 0.0465 0.1529 0.9871 -vn -0.0359 0.1299 0.9909 -vn -0.2910 0.9565 0.0178 -vn -0.7522 -0.6487 0.1156 -vn -0.2662 -0.9636 0.0231 -vn 0.3820 -0.9223 0.0577 -vn -0.6671 -0.2763 0.6919 -vn 0.6671 -0.2763 0.6919 -vn 0.2683 0.6476 0.7132 -vn -0.2660 0.6359 0.7244 -vn -0.2763 -0.6671 0.6919 -vn 0.6671 0.2763 0.6919 -vn -0.6907 0.2924 0.6614 -vn 0.2763 -0.6671 0.6919 -vn 0.2692 -0.6498 -0.7108 -vn -0.7364 0.3285 -0.5914 -vn -0.9213 0.3888 0.0000 -vn 0.6498 0.2692 -0.7108 -vn 0.9213 0.3888 0.0000 -vn -0.2692 -0.6498 -0.7109 -vn -0.2921 0.6981 -0.6537 -vn 0.2936 0.7087 -0.6415 -vn 0.6498 -0.2692 -0.7109 -vn -0.6498 -0.2692 -0.7108 -vn -0.9707 0.2404 0.0000 -vn -0.0152 0.0364 -0.9992 -vn 0.9707 0.2404 0.0000 -vn 0.0008 0.0018 1.0000 -vn 0.0000 -0.9985 -0.0541 -vn -0.0007 0.0018 1.0000 -vn 0.0154 0.0365 -0.9992 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.9985 0.0540 -vn 0.0000 -0.0469 0.9989 -vn 0.0000 0.0704 -0.9975 -vn 0.0000 -0.0696 0.9976 -vn 0.9826 0.1855 0.0000 -vn -0.9757 0.2193 0.0000 -vn -0.9979 0.0652 0.0000 -vn 0.9979 0.0652 0.0000 -vn 0.5958 0.2860 -0.7505 -vn -0.5296 0.8483 0.0000 -vn 0.5292 0.8485 0.0000 -vn -0.5654 0.2963 0.7697 -vn 0.0000 0.9333 -0.3590 -vn -0.5112 0.8022 -0.3086 -vn 0.0000 0.9333 0.3590 -vn 0.5416 0.7846 0.3018 -vn -0.5654 0.2963 -0.7698 -vn 0.5416 0.7846 -0.3018 -vn 0.5958 0.2860 0.7504 -vn -0.5112 0.8022 0.3086 -vn 1.0000 -0.0023 -0.0003 -vn 0.0054 -0.0103 -0.9999 -vn -0.0060 -0.0098 -0.9999 -vn -0.2048 -0.2682 -0.9413 -vn 0.1799 -0.3126 -0.9327 -vn 0.0000 -0.9869 -0.1613 -vn 0.0015 -0.9870 -0.1609 -vn 0.9385 0.3453 -0.0001 -vn 1.0000 -0.0015 -0.0087 -vn 0.9999 0.0000 -0.0134 -vn -0.7768 -0.6298 -0.0036 -vn -1.0000 0.0004 -0.0021 -vn -1.0000 -0.0015 -0.0049 -vn -0.9385 0.3453 0.0000 -vn 0.7768 -0.6298 -0.0036 -vn -0.9412 0.3378 -0.0026 -vn 0.3935 -0.0015 0.9193 -vn 0.4060 0.1562 0.9004 -vn -1.0000 -0.0021 0.0000 -vn -1.0000 -0.0018 -0.0027 -vn 1.0000 -0.0036 0.0000 -vn 1.0000 -0.0004 -0.0003 -vn -0.9608 0.2487 -0.1223 -vn -0.6066 -0.7945 -0.0284 -vn -0.6264 -0.7733 -0.0975 -vn -1.0000 0.0000 -0.0003 -vn 1.0000 -0.0005 -0.0003 -vn 1.0000 0.0016 -0.0009 -vn 1.0000 0.0030 -0.0040 -vn -1.0000 0.0030 -0.0040 -vn -1.0000 0.0016 -0.0009 -vn -1.0000 -0.0005 -0.0003 -vn 1.0000 -0.0015 -0.0049 -vn 1.0000 0.0004 -0.0021 -vn 0.9999 -0.0056 -0.0118 -vn 1.0000 -0.0015 -0.0088 -vn -1.0000 -0.0015 -0.0088 -vn -0.9999 -0.0056 -0.0118 -vn -0.9999 -0.0015 -0.0102 -vn -0.9999 0.0036 -0.0103 -vn -0.9999 -0.0061 -0.0084 -vn 0.1422 0.3319 -0.9325 -vn 0.3982 0.9173 0.0006 -vn 1.0000 -0.0038 -0.0002 -vn 0.4062 0.1600 -0.8997 -vn 0.7079 0.7063 -0.0002 -vn 0.1430 0.3294 0.9333 -vn 0.3947 0.0009 -0.9188 -vn -1.0000 -0.0012 0.0016 -vn -1.0000 -0.0039 0.0023 -vn 1.0000 -0.0024 0.0014 -vn -0.9306 0.3160 -0.1849 -vn -0.9936 -0.0013 -0.1126 -vn -0.5412 0.8265 -0.1550 -vn 0.5412 0.8265 -0.1550 -vn 0.9608 0.2487 -0.1223 -vn 0.9937 -0.0007 -0.1122 -vn -0.9634 0.2291 -0.1393 -vn 0.9634 0.2291 -0.1393 -vn -0.3871 0.7687 -0.5092 -vn -1.0000 -0.0016 -0.0023 -vn -1.0000 0.0006 0.0027 -vn 0.3871 0.7687 -0.5092 -vn 1.0000 -0.0068 0.0000 -vn 1.0000 -0.0042 0.0048 -vn 1.0000 -0.0061 0.0028 -vn 0.9306 0.3160 -0.1849 -vn 0.0000 -0.9328 0.3605 -vn -0.7103 -0.6566 0.2537 -vn 0.9693 0.2241 0.1015 -vn 1.0000 -0.0008 -0.0027 -vn 1.0000 -0.0030 0.0001 -vn 1.0000 -0.0020 0.0020 -vn -1.0000 -0.0038 0.0023 -vn -1.0000 -0.0061 0.0037 -vn -0.5495 0.7690 -0.3266 -vn -1.0000 -0.0023 -0.0015 -vn -1.0000 0.0017 0.0022 -vn 0.5495 0.7690 -0.3266 -vn 1.0000 -0.0045 0.0006 -vn 1.0000 -0.0010 0.0046 -vn 1.0000 -0.0035 0.0032 -vn -1.0000 -0.0015 -0.0007 -vn -0.7633 0.6459 0.0135 -vn -1.0000 -0.0035 -0.0002 -vn -1.0000 -0.0034 0.0003 -vn -0.9693 0.2238 0.1017 -vn 1.0000 -0.0017 -0.0022 -vn -1.0000 -0.0039 -0.0015 -vn -1.0000 -0.0019 -0.0008 -vn -1.0000 0.0002 -0.0028 -vn -1.0000 -0.0012 0.0012 -vn 0.7633 0.6459 0.0135 -vn 1.0000 -0.0020 -0.0013 -vn 1.0000 -0.0017 0.0003 -vn 0.9901 0.1400 -0.0116 -vn 0.9901 0.1401 -0.0111 -vn -0.9901 0.1401 -0.0111 -vn -0.9901 0.1401 -0.0116 -vn 0.6385 0.0097 -0.7696 -vn 0.6425 0.0150 -0.7662 -vn 0.6390 0.0022 -0.7692 -vn -0.7068 0.0066 -0.7074 -vn -0.7028 -0.0044 -0.7114 -vn 0.7066 0.2135 -0.6746 -vn 0.5060 0.8391 -0.1997 -vn -0.5146 0.8533 -0.0838 -vn -0.7041 0.0132 -0.7100 -vn -0.7086 0.0154 -0.7055 -vn -0.7884 0.2333 -0.5692 -vn 0.6241 0.0024 -0.7814 -vn -0.6967 -0.7174 0.0031 -vn 0.6746 -0.6933 0.2534 -vn 0.9999 0.0140 -0.0012 -vn 0.9999 0.0097 0.0052 -vn 1.0000 0.0094 0.0004 -vn 0.6270 -0.7729 -0.0976 -vn 0.6072 -0.7941 -0.0284 -vn 0.9841 -0.1697 -0.0533 -vn -0.0095 -0.9999 0.0105 -vn 0.0095 -0.9999 0.0105 -vn -0.9274 0.0000 -0.3742 -vn 0.9987 -0.0092 -0.0494 -vn -1.0000 -0.0005 -0.0048 -vn -1.0000 -0.0039 0.0029 -vn 1.0000 -0.0047 0.0009 -vn -0.0004 -0.0719 -0.9974 -vn -1.0000 0.0094 0.0004 -vn -0.9999 0.0097 0.0052 -vn -0.9999 0.0140 -0.0012 -vn 0.0000 0.1149 -0.9934 -vn 0.0000 -0.1149 0.9934 -vn 0.9934 -0.0844 0.0771 -vn -0.0007 0.5014 0.8652 -vn -0.9955 -0.0947 0.0000 -vn 0.0026 0.5098 0.8603 -vn 0.0000 -0.9117 -0.4107 -vn 1.0000 -0.0015 -0.0095 -vn 1.0000 -0.0061 -0.0078 -vn 0.9999 0.0036 -0.0095 -vn 1.0000 0.0013 0.0045 -vn -1.0000 -0.0056 0.0033 -vn -1.0000 0.0016 0.0047 -vn -1.0000 -0.0015 0.0006 -vn -1.0000 -0.0013 0.0003 -vn 1.0000 -0.0030 0.0040 -vn 1.0000 -0.0017 -0.0008 -vn 1.0000 -0.0015 -0.0006 -vn 1.0000 -0.0004 0.0051 -vn -1.0000 0.0010 0.0046 -vn -1.0000 -0.0014 0.0008 -vn -1.0000 -0.0017 0.0006 -vn -1.0000 -0.0006 0.0051 -vn 0.0000 0.0127 -0.9999 -vn -0.0012 0.0155 -0.9999 -vn -0.0021 0.0150 -0.9999 -vn 0.0002 0.0112 -0.9999 -vn 0.0000 0.0171 -0.9999 -vn -0.0027 0.0139 -0.9999 -vn 0.0059 0.0010 -1.0000 -vn -0.0059 0.0011 -1.0000 -vn -0.0012 0.0113 -0.9999 -vn 0.0046 0.0133 -0.9999 -vn -0.4342 -0.3822 -0.8157 +vn -0.2164 -0.9063 0.3630 +vn 0.2394 -0.5757 0.7818 vn -0.7060 0.2714 -0.6541 -vn 0.1845 0.9828 0.0000 vn -0.7060 0.2715 0.6542 -vn 0.8396 0.4308 -0.3307 vn -0.4343 -0.3822 0.8157 -vn 0.2163 -0.5222 -0.8249 -vn -0.5222 0.2163 -0.8250 -vn -0.2081 -0.4401 -0.8735 -vn -0.2058 -0.4197 0.8840 -vn 0.2910 0.9565 0.0178 -vn 0.7522 -0.6487 0.1156 -vn -0.5222 -0.2163 0.8249 -vn 0.2163 -0.5222 0.8249 -vn -0.1642 0.3964 -0.9033 -vn 0.1653 0.4232 -0.8908 -vn -0.3179 -0.1317 0.9390 -vn -0.1317 0.3179 0.9389 -vn 0.1355 0.3696 0.9193 -vn 0.3179 -0.1317 0.9389 -vn -0.4654 -0.1928 -0.8639 -vn 0.4654 -0.1928 -0.8638 -vn 0.4654 0.1928 -0.8639 -vn -0.4654 0.1928 -0.8638 -vn 0.0359 0.1299 0.9909 -vn -0.0465 0.1529 0.9871 -vn -0.3827 0.9238 -0.0120 -vn -0.8438 -0.5265 0.1041 -vn -0.3820 -0.9223 0.0577 -vn 0.2663 -0.9636 0.0231 -vn 0.2645 0.6280 0.7319 -vn -0.2683 0.6476 0.7132 -vn 0.6907 0.2924 0.6614 -vn -0.6671 0.2763 0.6919 -vn 0.2692 -0.6498 -0.7109 -vn -0.6498 0.2692 -0.7108 -vn 0.7364 0.3285 -0.5914 -vn -0.2692 -0.6498 -0.7108 -vn -0.2936 0.7087 -0.6415 -vn 0.2910 0.6909 -0.6618 -vn 0.6498 -0.2692 -0.7108 -vn -0.6498 -0.2692 -0.7109 -vn 0.0000 0.0589 -0.9983 -vn 0.0000 0.0029 1.0000 -vn 0.2185 0.0412 -0.9750 -vn -0.2098 0.0472 0.9766 -vn -0.2099 0.0472 -0.9766 -vn 0.2184 0.0412 0.9750 -vn 1.0000 -0.0021 -0.0003 -s off -f 65/131/59 67/132/59 68/133/59 -f 68/133/60 69/134/60 70/135/60 -f 70/135/61 71/136/62 72/137/61 -f 74/138/63 76/139/63 73/140/63 -f 71/141/64 69/142/64 78/143/64 -f 76/144/65 80/145/66 81/146/66 -f 78/147/67 83/148/67 82/149/68 -f 77/150/69 65/151/69 83/148/69 -f 84/152/70 86/153/70 87/154/70 -f 89/155/71 82/149/72 83/148/71 -f 91/156/73 93/157/73 90/158/73 -f 95/159/74 91/156/74 94/160/74 -f 97/161/69 83/148/69 65/151/69 -f 98/162/75 88/163/75 99/164/75 -f 100/165/76 102/166/76 103/167/76 -f 105/168/77 90/169/77 104/170/77 -f 104/170/78 107/171/78 108/172/78 -f 112/173/79 110/174/79 109/175/79 -f 115/176/80 116/177/80 117/178/80 -f 98/162/81 118/179/81 81/146/81 -f 119/180/82 120/181/82 124/182/82 -f 84/183/83 125/184/84 120/181/84 -f 121/185/85 126/186/85 76/144/86 -f 87/187/87 125/184/87 84/188/87 -f 73/140/88 86/153/88 74/138/88 -f 127/189/89 84/183/90 107/171/89 -f 128/190/91 107/171/92 106/191/92 -f 81/146/93 129/192/94 98/162/93 -f 98/162/95 79/193/96 82/149/97 -f 73/194/98 76/195/98 126/186/98 -f 94/196/99 96/197/99 97/198/99 -f 68/199/100 131/200/100 65/201/100 -f 91/202/101 130/203/101 94/196/101 -f 133/204/102 95/205/102 132/206/102 -f 132/206/103 134/207/103 131/208/103 -f 135/209/104 92/210/104 133/204/104 -f 131/200/105 97/211/105 65/201/105 -f 70/212/106 132/213/106 68/199/106 -f 90/158/107 135/214/107 72/215/107 -f 134/216/108 94/160/108 97/211/108 -f 70/212/109 135/214/109 133/217/109 -f 136/218/110 137/219/111 138/220/112 -f 102/166/113 140/221/114 103/167/115 -f 141/222/116 111/223/116 112/173/116 -f 142/224/117 111/223/117 136/218/117 -f 144/225/118 109/175/118 143/226/118 -f 145/227/119 144/228/119 143/229/119 -f 147/230/120 146/231/120 145/227/120 -f 142/224/121 115/232/121 114/233/121 -f 100/165/122 148/234/122 147/230/122 -f 150/235/123 137/219/123 141/222/123 -f 151/236/124 153/237/124 154/238/124 -f 155/239/125 157/240/125 156/241/125 -f 159/242/126 112/173/126 144/225/126 -f 115/232/127 138/220/128 152/243/127 -f 146/231/129 159/244/129 144/228/129 -f 103/167/130 155/239/131 148/234/131 -f 148/234/132 156/241/132 146/231/132 -f 116/177/133 152/245/133 151/236/133 -f 161/246/134 157/240/135 158/247/135 -f 158/247/136 163/248/137 161/246/138 -f 160/249/139 164/250/139 157/240/139 -f 139/251/113 162/252/140 140/221/141 -f 138/220/142 149/253/143 167/254/144 -f 164/255/145 141/222/145 159/242/145 -f 152/243/127 167/254/146 153/256/127 -f 156/241/147 164/250/147 159/244/147 -f 140/221/148 158/247/149 155/239/149 -f 168/257/127 170/258/127 171/259/127 -f 165/260/150 173/261/150 172/262/150 -f 169/263/151 176/264/152 170/258/152 -f 153/237/153 177/265/153 154/238/153 -f 150/235/154 175/266/155 149/253/154 -f 162/252/156 178/267/113 163/248/157 -f 149/253/158 169/263/159 167/254/160 -f 164/255/161 172/262/161 150/235/161 -f 167/254/162 168/257/127 153/256/127 -f 170/268/163 179/269/163 180/270/163 -f 182/271/113 184/272/113 181/273/113 -f 185/274/164 176/275/164 173/276/164 -f 186/277/165 165/278/165 160/249/165 -f 163/248/166 187/279/167 161/246/168 -f 161/246/169 186/277/170 160/249/170 -f 177/265/171 171/280/171 188/281/171 -f 173/261/172 175/266/173 172/262/172 -f 178/267/113 181/282/113 163/248/174 -f 105/168/175 100/283/176 147/284/175 -f 99/164/177 114/285/178 118/179/178 -f 147/284/179 130/203/179 105/168/179 -f 145/286/180 96/197/180 130/203/180 -f 96/287/181 109/288/181 89/155/181 -f 88/163/182 142/289/183 99/164/184 -f 189/290/185 118/291/185 113/292/185 -f 89/155/186 110/293/186 88/163/186 -f 104/170/187 101/294/188 100/283/189 -f 193/295/190 173/276/190 174/296/190 -f 171/297/127 180/270/127 194/298/127 -f 186/299/191 193/300/191 174/301/191 -f 181/273/192 190/302/192 187/303/192 -f 187/303/193 191/304/193 186/299/193 -f 188/305/194 194/298/194 195/306/194 -f 196/307/195 183/308/195 182/271/195 -f 188/305/196 192/309/196 196/307/196 -f 108/310/197 198/311/197 101/312/197 -f 199/313/198 201/314/198 117/315/198 -f 202/316/199 182/317/199 178/318/199 -f 177/265/200 196/319/200 202/316/200 -f 166/320/201 202/316/201 178/318/201 -f 154/238/202 202/316/202 203/321/202 -f 204/322/203 139/323/203 102/324/203 -f 234/325/204 584/326/205 583/327/205 -f 205/328/206 166/320/206 139/323/206 -f 151/236/207 203/321/207 205/328/207 -f 199/329/208 204/322/208 102/324/208 -f 197/330/209 206/331/209 198/332/209 -f 197/333/210 108/310/210 119/180/210 -f 87/187/211 73/194/211 120/181/211 -f 492/334/212 354/335/212 349/336/212 -f 206/331/213 208/337/213 200/338/213 -f 200/339/214 209/340/214 201/314/214 -f 198/332/213 200/338/213 199/341/213 -f 189/342/215 210/343/215 123/344/215 -f 113/345/216 201/346/216 210/343/216 -f 212/347/217 214/348/217 211/349/217 -f 207/350/218 214/348/218 215/351/218 -f 206/331/218 211/352/218 207/350/218 -f 123/353/219 211/349/219 124/354/219 -f 210/343/216 209/355/216 216/356/216 -f 210/343/220 212/357/220 123/344/220 -f 189/290/221 123/358/221 122/359/221 -f 213/360/222 215/351/222 214/348/222 -f 217/361/223 219/362/223 215/351/223 -f 216/356/216 218/363/216 217/361/216 -f 216/356/224 213/360/224 212/357/224 -f 208/364/225 221/365/225 209/340/225 -f 207/350/213 219/362/213 208/337/213 -f 221/366/127 224/367/127 222/368/127 -f 218/363/226 225/369/226 219/362/226 -f 208/337/113 225/369/113 220/370/113 -f 209/355/127 222/368/127 218/363/127 -f 226/371/113 228/372/113 229/373/113 -f 220/374/227 223/375/227 221/365/227 -f 220/370/113 227/376/113 226/371/113 -f 222/368/228 227/377/228 225/369/228 -f 231/378/127 233/379/229 230/380/127 -f 224/381/230 228/382/230 227/377/230 -f 223/383/127 230/380/127 224/367/127 -f 226/384/231 231/385/231 223/375/231 -f 229/386/232 232/387/232 231/385/232 -f 229/373/113 235/388/233 234/325/234 -f 230/389/235 235/390/235 228/382/235 -f 584/391/236 233/392/236 581/393/236 -f 582/394/237 234/395/237 583/396/237 -f 581/397/238 232/398/239 582/399/238 -f 236/400/127 238/401/127 239/402/127 -f 238/403/240 241/404/240 239/405/240 -f 240/406/113 243/407/113 241/408/113 -f 242/409/241 236/410/241 243/411/241 -f 241/404/242 245/412/242 239/405/242 -f 247/413/243 249/414/243 246/415/243 -f 239/402/127 247/416/127 236/400/127 -f 241/408/113 246/417/113 244/418/113 -f 236/410/244 246/415/244 243/411/244 -f 249/419/113 252/420/113 250/421/113 -f 244/422/245 253/423/245 245/412/245 -f 244/418/113 249/419/113 250/421/113 -f 245/424/127 248/425/127 247/416/127 -f 251/426/246 255/427/246 252/420/246 -f 248/425/127 256/428/127 257/429/127 -f 248/430/247 251/431/247 249/414/247 -f 250/432/248 256/433/248 253/423/248 -f 258/434/249 260/435/250 254/436/251 -f 257/429/252 261/437/252 258/438/252 -f 251/431/253 258/434/254 254/436/255 -f 252/439/256 261/440/256 256/433/256 -f 263/441/257 259/442/257 262/443/257 -f 261/440/258 263/444/258 262/445/258 -f 254/446/259 263/447/259 255/427/259 -f 258/438/260 262/448/260 259/449/260 -f 117/178/261 204/322/261 199/329/261 -f 79/450/262 265/451/262 71/452/262 -f 129/453/64 127/454/64 128/455/64 -f 80/456/64 85/457/64 127/454/64 -f 75/458/263 86/153/263 85/457/263 -f 72/137/264 128/190/265 106/191/264 -f 82/149/266 79/193/267 78/147/268 -f 264/459/262 267/460/262 265/451/262 -f 71/452/269 268/461/270 269/462/270 -f 79/450/271 270/463/272 271/464/272 -f 128/465/273 273/466/273 129/467/273 -f 266/468/64 275/469/64 267/470/64 -f 273/471/274 266/472/275 264/459/276 -f 272/473/273 274/474/273 273/466/273 -f 265/451/277 275/469/277 272/473/277 -f 277/475/278 279/476/278 276/477/278 -f 71/452/279 277/478/280 128/465/281 -f 265/451/282 276/479/282 268/461/282 -f 128/465/283 276/479/270 272/473/270 -f 271/480/284 282/481/284 280/482/284 -f 79/450/285 280/483/286 264/459/287 -f 264/459/288 283/484/289 273/471/290 -f 129/485/291 283/484/292 270/463/292 -f 284/486/163 282/481/163 281/487/163 -f 271/488/64 284/486/64 281/487/64 -f 283/489/293 284/486/293 270/490/293 -f 280/491/198 285/492/198 283/493/198 -f 286/494/192 279/476/192 278/495/192 -f 268/496/198 279/476/198 287/497/198 -f 268/498/294 286/494/294 269/499/294 -f 269/500/64 278/495/64 277/501/64 -f 194/502/198 180/503/198 184/504/198 -f 289/505/113 291/506/113 288/507/113 -f 293/508/295 295/509/295 292/510/295 -f 294/511/296 297/512/296 295/509/296 -f 296/513/297 299/514/297 297/515/297 -f 298/516/298 301/517/298 299/514/298 -f 300/518/299 303/519/299 301/517/299 -f 302/520/300 305/521/300 303/519/300 -f 298/522/113 296/523/113 304/524/113 -f 304/525/301 307/526/301 305/521/301 -f 306/527/302 292/510/302 307/526/302 -f 309/528/303 311/529/303 308/530/303 -f 311/529/304 312/531/304 313/532/304 -f 313/532/305 314/533/305 315/534/305 -f 314/533/306 317/535/306 315/534/306 -f 317/535/307 309/536/307 308/537/307 -f 318/538/308 310/539/308 309/540/308 -f 310/539/309 320/541/309 312/531/309 -f 312/531/310 321/542/310 314/533/310 -f 321/542/311 316/543/311 314/533/311 -f 316/543/312 318/544/312 309/545/312 -f 323/546/313 319/547/313 318/548/313 -f 324/549/314 320/541/314 319/547/314 -f 320/541/315 326/550/315 321/542/315 -f 326/550/316 322/551/316 321/542/316 -f 322/551/317 323/552/317 318/553/317 -f 328/554/318 324/555/318 323/556/318 -f 329/557/319 325/558/319 324/555/319 -f 330/559/320 326/550/320 325/558/320 -f 331/560/321 327/561/321 326/550/321 -f 327/561/322 328/562/322 323/563/322 -f 328/564/323 334/565/323 329/566/323 -f 329/566/324 335/567/324 330/559/324 -f 335/567/325 331/560/325 330/559/325 -f 331/560/326 337/568/326 332/569/326 -f 337/568/327 328/570/327 332/569/327 -f 333/571/328 339/572/328 334/573/328 -f 339/572/329 335/567/329 334/573/329 -f 340/574/330 336/575/330 335/567/330 -f 336/575/331 342/576/331 337/577/331 -f 342/576/332 333/578/332 337/577/332 -f 338/579/333 311/580/333 339/581/333 -f 311/580/334 340/574/334 339/581/334 -f 313/582/335 341/583/335 340/574/335 -f 341/583/336 317/584/336 342/585/336 -f 317/584/337 338/586/337 342/585/337 -f 496/587/338 345/588/338 495/589/338 -f 492/334/339 348/590/339 491/591/339 -f 499/592/340 344/593/340 343/594/340 -f 499/592/341 354/335/341 503/595/341 -f 495/589/342 344/593/342 500/596/342 -f 351/597/343 353/598/343 350/599/343 -f 505/600/344 348/590/344 347/601/344 -f 496/587/343 347/602/343 346/603/343 -f 356/604/345 358/605/345 355/606/345 -f 360/607/212 362/608/212 359/609/212 -f 364/610/342 365/611/342 363/612/342 -f 350/613/344 367/614/344 366/615/344 -f 359/609/341 356/616/341 368/617/341 -f 368/617/340 355/618/340 364/610/340 -f 363/612/338 352/619/338 351/597/338 -f 366/615/339 361/620/339 360/607/339 -f 370/621/212 372/622/212 369/623/212 -f 356/624/346 369/623/346 357/625/346 -f 367/626/347 370/621/347 361/627/347 -f 353/628/348 374/629/348 375/630/348 -f 355/631/349 376/632/349 365/633/349 -f 361/634/350 369/623/350 362/635/350 -f 353/636/351 373/637/351 367/626/351 -f 365/638/352 374/629/352 352/639/352 -f 377/640/353 379/641/353 380/642/353 -f 376/632/338 383/643/338 374/629/338 -f 357/625/340 378/644/340 358/605/340 -f 369/623/341 384/645/341 357/625/341 -f 373/637/339 371/646/339 370/621/339 -f 358/605/342 377/640/342 376/632/342 -f 386/647/341 388/648/341 385/649/341 -f 371/646/354 386/650/354 372/622/354 -f 382/651/355 390/652/355 391/653/355 -f 383/643/356 380/654/356 392/655/356 -f 384/645/357 394/656/357 378/644/357 -f 379/657/358 394/656/358 395/658/358 -f 382/651/359 389/659/359 371/646/359 -f 383/643/360 390/660/360 381/661/360 -f 397/662/64 399/663/64 396/664/64 -f 391/665/339 400/666/339 389/667/339 -f 392/668/343 397/669/343 390/670/343 -f 379/671/342 403/672/342 380/673/342 -f 389/667/212 387/674/212 386/647/212 -f 390/675/344 396/664/344 391/665/344 -f 380/673/338 401/676/338 392/668/338 -f 385/649/340 402/677/340 379/671/340 -f 405/678/338 407/679/338 404/680/338 -f 403/672/64 409/681/64 401/676/64 -f 388/648/64 411/682/64 402/677/64 -f 388/648/64 404/683/64 410/684/64 -f 400/666/64 399/685/64 405/686/64 -f 397/669/64 409/687/64 398/688/64 -f 403/672/64 411/689/64 408/690/64 -f 400/666/64 404/691/64 387/674/64 -f 417/692/64 407/693/64 414/694/64 -f 398/695/340 412/696/340 399/697/340 -f 408/698/212 414/699/212 409/700/212 -f 410/701/344 416/702/344 411/703/344 -f 404/680/343 417/704/343 410/701/343 -f 399/697/342 406/705/342 405/678/342 -f 409/700/341 413/706/341 398/707/341 -f 411/703/339 415/708/339 408/698/339 -f 426/709/361 428/710/361 375/711/361 -f 425/712/362 427/713/362 418/714/362 -f 426/715/363 431/716/363 430/717/363 -f 432/718/364 434/719/364 435/720/364 -f 436/721/365 435/720/365 437/722/365 -f 430/717/366 434/719/366 433/723/366 -f 438/724/367 440/725/367 429/726/367 -f 436/727/368 439/728/368 438/729/368 -f 419/730/369 427/713/369 426/731/369 -f 420/732/370 433/733/370 421/734/370 -f 423/735/371 438/736/371 424/737/371 -f 419/730/372 430/738/372 420/732/372 -f 421/734/373 432/739/373 422/740/373 -f 424/737/374 429/741/374 425/712/374 -f 429/742/375 428/710/375 427/743/375 -f 422/740/376 436/744/376 423/745/376 -f 439/728/339 442/746/339 440/725/339 -f 440/725/212 443/747/212 428/710/212 -f 435/720/343 445/748/343 437/722/343 -f 431/716/342 447/749/342 434/719/342 -f 437/722/344 441/750/344 439/728/344 -f 434/719/338 444/751/338 435/720/338 -f 445/748/377 448/752/377 449/753/377 -f 446/754/378 451/755/378 447/749/378 -f 443/747/379 452/756/379 453/757/379 -f 441/750/380 452/758/380 442/746/380 -f 445/748/381 454/759/381 441/750/381 -f 443/747/382 455/760/382 381/761/382 -f 446/754/383 455/762/383 450/763/383 -f 444/751/384 451/764/384 448/765/384 -f 455/766/340 457/767/340 450/768/340 -f 458/769/385 460/770/385 461/771/385 -f 451/772/338 463/773/338 448/774/338 -f 448/774/343 464/775/343 449/776/343 -f 450/768/342 462/777/342 451/772/342 -f 452/778/212 465/779/212 453/780/212 -f 454/781/339 458/782/339 452/778/339 -f 449/783/344 459/784/344 454/781/344 -f 453/780/341 456/785/341 455/766/341 -f 461/786/212 468/787/212 466/788/212 -f 459/789/386 469/790/386 460/791/386 -f 465/792/387 470/793/387 456/794/387 -f 457/795/388 470/796/388 471/797/388 -f 462/798/389 473/799/389 463/800/389 -f 463/801/390 469/802/390 464/803/390 -f 462/804/391 471/805/391 472/806/391 -f 458/807/392 466/788/392 465/808/392 -f 474/809/393 476/810/393 477/811/393 -f 460/770/339 467/812/339 461/771/339 -f 469/790/344 478/813/344 460/791/344 -f 466/814/341 480/815/341 470/793/341 -f 470/796/340 481/816/340 471/797/340 -f 472/817/338 474/809/338 473/799/338 -f 473/818/343 479/819/343 469/802/343 -f 471/805/342 475/820/342 472/806/342 -f 483/821/64 485/822/64 476/810/64 -f 479/819/394 477/811/394 485/822/394 -f 481/823/395 476/810/395 475/820/395 -f 468/787/396 483/821/396 482/824/396 -f 478/825/397 483/821/397 467/812/397 -f 479/826/398 484/827/398 478/813/398 -f 480/815/399 482/824/399 487/828/399 -f 480/829/400 486/830/400 481/816/400 -f 431/831/401 383/832/401 446/833/401 -f 428/834/402 382/835/402 373/836/402 -f 373/836/403 375/837/403 428/834/403 -f 382/835/404 443/838/404 381/839/404 -f 381/840/405 446/833/405 383/832/405 -f 375/841/406 374/842/406 431/831/406 -f 393/843/407 395/658/407 394/656/407 -f 393/843/408 490/844/408 488/845/408 -f 384/645/409 489/846/409 393/843/409 -f 386/847/410 489/846/410 372/622/410 -f 385/848/411 395/658/411 488/845/411 -f 385/848/412 490/844/412 386/849/412 -f 494/850/413 360/851/413 493/852/413 -f 497/853/414 363/854/414 351/855/414 -f 501/856/415 368/857/415 364/858/415 -f 504/859/416 368/860/416 502/861/416 -f 506/862/417 366/863/417 494/850/417 -f 498/864/418 364/858/418 363/865/418 -f 493/852/419 359/866/419 504/859/419 -f 506/862/420 351/867/420 350/868/420 -f 496/869/421 508/870/421 505/871/421 -f 507/872/343 506/862/343 508/870/343 -f 503/873/422 509/874/422 510/875/422 -f 510/875/423 493/852/423 504/859/423 -f 500/876/424 512/877/424 495/878/424 -f 511/879/425 498/864/425 512/877/425 -f 491/880/426 508/870/426 513/881/426 -f 508/870/344 494/850/344 513/881/344 -f 499/882/427 510/875/427 514/883/427 -f 499/884/428 511/879/428 500/876/428 -f 495/885/429 507/872/429 496/886/429 -f 512/877/338 497/853/338 507/872/338 -f 491/887/430 509/874/430 492/888/430 -f 513/881/339 493/852/339 509/874/339 -f 504/889/431 516/890/431 510/891/431 -f 516/890/432 514/892/432 510/891/432 -f 518/893/433 501/894/433 511/895/433 -f 519/896/434 502/897/434 501/898/434 -f 522/899/435 524/900/435 521/901/435 -f 502/897/436 515/902/436 504/889/436 -f 514/892/437 518/893/437 511/895/437 -f 526/903/438 528/904/438 525/905/438 -f 516/890/127 525/906/127 528/904/127 -f 527/907/438 529/908/438 530/909/438 -f 517/910/198 530/909/198 518/893/198 -f 516/890/198 527/907/198 517/910/198 -f 526/911/439 532/912/439 531/913/439 -f 518/893/113 529/914/113 519/915/113 -f 522/899/440 534/916/440 523/917/440 -f 535/918/440 533/919/440 522/920/440 -f 515/921/127 534/916/127 525/922/127 -f 520/923/435 538/924/435 537/925/435 -f 533/919/439 539/926/439 540/927/439 -f 519/928/113 536/929/113 535/918/113 -f 524/900/113 532/930/113 542/931/113 -f 521/932/441 539/926/441 543/933/441 -f 543/934/127 544/935/127 538/924/127 -f 541/936/442 531/913/442 532/912/442 -f 523/917/435 541/937/435 524/900/435 -f 543/934/435 522/920/435 521/938/435 -f 538/924/435 535/918/435 543/934/435 -f 541/937/435 520/939/435 537/940/435 -f 542/941/439 533/942/439 540/943/439 -f 536/929/439 544/944/439 539/926/439 -f 532/912/439 534/916/439 542/941/439 -f 544/944/439 526/945/439 531/946/439 -f 546/947/127 548/948/127 545/949/127 -f 549/950/198 550/951/198 551/952/198 -f 553/953/113 555/954/113 552/955/113 -f 556/956/64 557/957/64 558/958/64 -f 553/959/198 560/960/198 561/961/198 -f 546/962/64 563/963/64 564/964/64 -f 546/947/127 565/965/127 547/966/127 -f 553/953/113 566/967/113 554/968/113 -f 568/969/443 570/970/443 567/971/443 -f 572/972/444 574/973/444 571/974/444 -f 575/975/445 565/965/445 564/976/445 -f 578/977/446 561/978/446 577/979/446 -f 576/980/447 568/981/447 565/965/447 -f 572/972/438 567/971/438 573/982/438 -f 569/983/448 575/975/448 570/970/448 -f 571/974/449 578/977/449 577/979/449 -f 578/977/450 573/984/450 566/967/450 -f 568/969/451 560/960/451 579/985/451 -f 560/960/452 572/972/452 561/961/452 -f 573/982/453 563/963/453 580/986/453 -f 563/963/454 567/971/454 564/964/454 -f 580/986/64 554/987/64 566/988/64 -f 557/957/64 556/956/64 580/986/64 -f 579/985/198 547/989/198 565/990/198 -f 550/951/198 549/950/198 579/985/198 -f 572/991/455 577/979/455 561/978/455 -f 565/990/456 568/969/456 579/985/456 -f 567/992/457 575/975/457 564/976/457 -f 566/988/458 573/982/458 580/986/458 -f 562/993/64 546/962/64 545/994/64 -f 559/995/198 553/959/198 552/996/198 -f 537/997/442 544/944/442 531/946/442 -f 521/998/441 542/941/441 540/943/441 -f 90/169/459 106/191/459 104/170/459 -f 119/180/460 124/182/460 197/333/460 -f 122/359/461 118/291/461 189/290/461 -f 113/292/462 118/291/462 114/999/462 -f 198/311/463 108/310/463 197/333/463 -f 124/182/464 121/185/464 123/358/464 -f 123/358/465 121/185/465 122/359/465 -f 89/155/69 97/161/69 96/287/69 -f 65/131/99 66/1000/99 67/132/99 -f 68/133/466 67/132/466 69/134/466 -f 70/135/467 69/134/467 71/136/468 -f 74/138/469 75/1001/469 76/139/469 -f 69/142/64 67/1002/64 78/143/64 -f 67/1002/64 66/1003/64 77/1004/64 -f 78/143/64 67/1002/64 77/1004/64 -f 78/143/64 79/1005/64 71/141/64 -f 76/144/470 75/1006/471 80/145/471 -f 78/147/472 77/150/472 83/148/472 -f 77/150/69 66/1007/69 65/151/69 -f 84/152/473 85/1008/473 86/153/473 -f 89/155/71 88/163/71 82/149/474 -f 91/156/475 92/1009/475 93/157/475 -f 95/159/476 92/1009/476 91/156/476 -f 97/161/69 89/155/69 83/148/69 -f 98/162/477 82/149/478 88/163/477 -f 100/165/76 101/1010/76 102/166/76 -f 105/168/479 91/202/479 90/169/479 -f 104/170/480 106/191/480 107/171/480 -f 112/173/481 111/223/481 110/174/481 -f 117/178/482 113/1011/482 114/1012/482 -f 114/1012/483 115/176/483 117/178/483 -f 98/162/484 99/164/484 118/179/484 -f 119/1013/113 108/172/113 120/181/113 -f 108/172/485 107/171/485 120/181/485 -f 107/171/486 84/183/487 120/181/486 -f 76/144/488 81/146/489 121/185/489 -f 81/146/490 118/179/490 121/185/490 -f 118/179/127 122/1014/127 121/185/127 -f 73/140/88 87/154/88 86/153/88 -f 127/189/491 85/1015/491 84/183/492 -f 128/190/493 127/189/494 107/171/494 -f 81/146/495 80/145/495 129/192/496 -f 98/162/497 129/192/498 79/193/499 -f 94/196/99 130/203/99 96/197/99 -f 68/199/500 132/213/500 131/200/500 -f 91/202/101 105/168/101 130/203/101 -f 133/204/102 92/210/102 95/205/102 -f 132/206/501 95/205/501 134/207/501 -f 135/209/502 93/1016/502 92/210/502 -f 131/200/105 134/216/105 97/211/105 -f 70/212/503 133/217/503 132/213/503 -f 90/158/504 93/157/504 135/214/504 -f 134/216/505 95/159/505 94/160/505 -f 70/212/506 72/215/506 135/214/506 -f 136/218/507 111/223/508 137/219/508 -f 102/166/113 139/251/113 140/221/509 -f 141/222/510 137/219/510 111/223/510 -f 142/224/511 110/174/511 111/223/511 -f 144/225/512 112/173/512 109/175/512 -f 145/227/513 146/231/513 144/228/513 -f 147/230/514 148/234/514 146/231/514 -f 142/224/121 136/218/121 115/232/121 -f 100/165/515 103/167/515 148/234/515 -f 150/235/516 149/253/516 137/219/516 -f 151/236/124 152/245/124 153/237/124 -f 155/239/517 158/247/517 157/240/517 -f 159/242/518 141/222/518 112/173/518 -f 115/232/127 136/218/519 138/220/520 -f 146/231/521 156/241/521 159/244/521 -f 103/167/522 140/221/523 155/239/524 -f 148/234/525 155/239/525 156/241/525 -f 151/236/526 205/328/526 204/322/526 -f 116/177/527 115/176/527 152/245/527 -f 151/236/526 204/322/526 116/177/526 -f 161/246/528 160/249/135 157/240/135 -f 158/247/136 162/252/529 163/248/530 -f 160/249/139 165/278/139 164/250/139 -f 139/251/113 166/1017/113 162/252/531 -f 138/220/532 137/219/533 149/253/533 -f 164/255/534 150/235/534 141/222/534 -f 152/243/127 138/220/535 167/254/536 -f 156/241/537 157/240/537 164/250/537 -f 140/221/538 162/252/539 158/247/540 -f 168/257/127 169/263/541 170/258/127 -f 165/260/542 174/1018/542 173/261/542 -f 169/263/162 175/266/543 176/264/544 -f 153/237/153 168/1019/153 177/265/153 -f 150/235/154 172/262/154 175/266/545 -f 162/252/546 166/1017/113 178/267/113 -f 149/253/158 175/266/547 169/263/548 -f 164/255/161 165/260/161 172/262/161 -f 167/254/549 169/263/550 168/257/127 -f 170/268/163 176/275/163 179/269/163 -f 182/271/113 183/308/113 184/272/113 -f 185/274/164 179/269/164 176/275/164 -f 186/277/551 174/1020/551 165/278/551 -f 163/248/552 181/282/553 187/279/553 -f 161/246/554 187/279/555 186/277/555 -f 177/265/171 168/1019/171 171/280/171 -f 173/261/556 176/264/556 175/266/557 -f 178/267/113 182/1021/113 181/282/113 -f 105/168/558 104/170/559 100/283/560 -f 99/164/561 142/289/562 114/285/178 -f 147/284/563 145/286/563 130/203/563 -f 145/286/564 143/1022/564 96/197/564 -f 96/287/565 143/1023/565 109/288/565 -f 88/163/566 110/293/566 142/289/567 -f 89/155/568 109/288/568 110/293/568 -f 104/170/569 108/172/188 101/294/188 -f 193/295/190 185/274/190 173/276/190 -f 171/297/127 170/268/127 180/270/127 -f 186/299/191 191/304/191 193/300/191 -f 181/273/192 184/272/192 190/302/192 -f 187/303/193 190/302/193 191/304/193 -f 188/305/570 171/297/570 194/298/570 -f 196/307/195 192/309/195 183/308/195 -f 188/305/196 195/306/196 192/309/196 -f 199/313/198 200/339/198 201/314/198 -f 202/316/199 196/319/199 182/317/199 -f 177/265/200 188/281/200 196/319/200 -f 166/320/201 203/321/201 202/316/201 -f 154/238/202 177/265/202 202/316/202 -f 204/322/571 205/328/571 139/323/571 -f 234/325/572 235/388/573 584/326/574 -f 205/328/206 203/321/206 166/320/206 -f 151/236/207 154/238/207 203/321/207 -f 102/324/575 101/1024/575 199/329/575 -f 101/1024/576 198/1025/576 199/329/576 -f 197/330/577 124/1026/577 206/331/577 -f 126/186/578 121/185/578 73/194/578 -f 121/185/211 120/181/211 73/194/211 -f 120/181/579 125/184/579 87/187/579 -f 492/334/212 503/595/212 354/335/212 -f 206/331/213 207/350/213 208/337/213 -f 200/339/214 208/364/214 209/340/214 -f 198/332/213 206/331/213 200/338/213 -f 189/342/580 113/345/580 210/343/580 -f 113/345/216 117/1027/216 201/346/216 -f 212/347/217 213/360/217 214/348/217 -f 207/350/218 211/352/218 214/348/218 -f 206/331/581 124/1026/581 211/352/581 -f 123/353/219 212/347/219 211/349/219 -f 210/343/216 201/346/216 209/355/216 -f 210/343/224 216/356/224 212/357/224 -f 213/360/222 217/361/222 215/351/222 -f 217/361/223 218/363/223 219/362/223 -f 216/356/216 209/355/216 218/363/216 -f 216/356/224 217/361/224 213/360/224 -f 208/364/225 220/374/225 221/365/225 -f 207/350/213 215/351/213 219/362/213 -f 221/366/127 223/383/127 224/367/127 -f 218/363/226 222/368/226 225/369/226 -f 208/337/113 219/362/113 225/369/113 -f 209/355/127 221/366/127 222/368/127 -f 226/371/113 227/376/113 228/372/113 -f 220/374/227 226/384/227 223/375/227 -f 220/370/113 225/369/113 227/376/113 -f 222/368/228 224/381/228 227/377/228 -f 231/378/127 232/398/582 233/379/583 -f 224/381/230 230/389/230 228/382/230 -f 223/383/127 231/378/127 230/380/127 -f 226/384/231 229/386/231 231/385/231 -f 229/386/232 234/395/232 232/387/232 -f 229/373/113 228/372/113 235/388/584 -f 230/389/235 233/392/235 235/390/235 -f 584/391/236 235/390/585 233/392/236 -f 582/394/237 232/387/237 234/395/237 -f 581/397/586 233/379/587 232/398/588 -f 236/400/127 237/1028/127 238/401/127 -f 238/403/589 240/1029/589 241/404/589 -f 240/406/113 242/1030/113 243/407/113 -f 242/409/590 237/1031/590 236/410/590 -f 241/404/242 244/422/242 245/412/242 -f 247/413/243 248/430/243 249/414/243 -f 239/402/127 245/424/127 247/416/127 -f 241/408/113 243/407/113 246/417/113 -f 236/410/244 247/413/244 246/415/244 -f 249/419/113 251/426/113 252/420/113 -f 244/422/245 250/432/245 253/423/245 -f 244/418/113 246/417/113 249/419/113 -f 245/424/127 253/1032/127 248/425/127 -f 251/426/591 254/446/591 255/427/591 -f 248/425/127 253/1032/127 256/428/127 -f 248/430/247 257/1033/247 251/431/247 -f 250/432/248 252/439/248 256/433/248 -f 258/434/592 259/442/250 260/435/250 -f 257/429/593 256/428/593 261/437/593 -f 251/431/253 257/1033/253 258/434/594 -f 252/439/256 255/1034/256 261/440/256 -f 263/441/257 260/435/257 259/442/257 -f 261/440/595 255/1034/595 263/444/595 -f 254/446/259 260/1035/259 263/447/259 -f 258/438/260 261/437/260 262/448/260 -f 117/178/261 116/177/261 204/322/261 -f 79/450/262 264/459/262 265/451/262 -f 129/453/64 80/456/64 127/454/64 -f 80/456/64 75/458/64 85/457/64 -f 75/458/263 74/138/263 86/153/263 -f 72/137/596 71/136/597 128/190/598 -f 264/459/262 266/472/262 267/460/262 -f 71/452/599 265/451/270 268/461/270 -f 79/450/600 129/485/601 270/463/602 -f 128/465/273 272/473/273 273/466/273 -f 266/468/64 274/474/64 275/469/64 -f 273/471/603 274/1036/275 266/472/275 -f 272/473/273 275/469/273 274/474/273 -f 265/451/277 267/460/277 275/469/277 -f 277/475/278 278/495/278 279/476/278 -f 71/452/604 269/462/605 277/478/605 -f 265/451/606 272/473/606 276/479/606 -f 128/465/607 277/478/270 276/479/270 -f 271/480/284 281/487/284 282/481/284 -f 79/450/608 271/464/286 280/483/286 -f 264/459/609 280/483/610 283/484/610 -f 129/485/611 273/471/490 283/484/292 -f 284/486/163 285/492/163 282/481/163 -f 271/488/64 270/1037/64 284/486/64 -f 283/489/293 285/492/293 284/486/293 -f 280/491/198 282/481/198 285/492/198 -f 286/494/192 287/497/192 279/476/192 -f 268/496/198 276/1038/198 279/476/198 -f 268/498/294 287/497/294 286/494/294 -f 269/500/64 286/494/64 278/495/64 -f 180/503/612 179/1039/613 184/504/612 -f 179/1039/614 185/1040/615 190/1041/616 -f 184/504/612 179/1039/617 190/1041/612 -f 185/1040/618 193/1042/198 191/1043/619 -f 191/1043/620 190/1041/616 185/1040/621 -f 184/504/198 183/1044/198 194/502/198 -f 183/1044/198 192/1045/198 195/1046/198 -f 194/502/198 183/1044/198 195/1046/198 -f 289/505/113 290/1047/113 291/506/113 -f 293/508/295 294/511/295 295/509/295 -f 294/511/296 296/1048/296 297/512/296 -f 296/513/297 298/516/297 299/514/297 -f 298/516/298 300/518/298 301/517/298 -f 300/518/299 302/520/299 303/519/299 -f 302/520/300 304/525/300 305/521/300 -f 296/523/113 294/1049/113 304/524/113 -f 294/1049/113 293/1050/113 304/524/113 -f 293/1050/113 306/1051/113 304/524/113 -f 304/524/113 302/1052/113 300/1053/113 -f 300/1053/113 298/522/113 304/524/113 -f 304/525/301 306/527/301 307/526/301 -f 306/527/302 293/508/302 292/510/302 -f 309/528/303 310/1054/303 311/529/303 -f 311/529/304 310/1054/304 312/531/304 -f 313/532/305 312/531/305 314/533/305 -f 314/533/306 316/1055/306 317/535/306 -f 317/535/307 316/1055/307 309/536/307 -f 318/538/308 319/1056/308 310/539/308 -f 310/539/309 319/1056/309 320/541/309 -f 312/531/310 320/541/310 321/542/310 -f 321/542/311 322/1057/311 316/543/311 -f 316/543/622 322/1057/622 318/544/622 -f 323/546/313 324/549/313 319/547/313 -f 324/549/314 325/558/314 320/541/314 -f 320/541/315 325/558/315 326/550/315 -f 326/550/316 327/1058/316 322/551/316 -f 322/551/623 327/1058/623 323/552/623 -f 328/554/624 329/557/624 324/555/624 -f 329/557/319 330/559/319 325/558/319 -f 330/559/320 331/560/320 326/550/320 -f 331/560/321 332/1059/321 327/561/321 -f 327/561/322 332/1059/322 328/562/322 -f 328/564/323 333/1060/323 334/565/323 -f 329/566/324 334/565/324 335/567/324 -f 335/567/325 336/575/325 331/560/325 -f 331/560/326 336/575/326 337/568/326 -f 337/568/625 333/1061/625 328/570/625 -f 333/571/328 338/1062/328 339/572/328 -f 339/572/626 340/574/626 335/567/626 -f 340/574/330 341/583/330 336/575/330 -f 336/575/331 341/583/331 342/576/331 -f 342/576/627 338/1063/627 333/578/627 -f 338/579/333 308/1064/333 311/580/333 -f 311/580/334 313/582/334 340/574/334 -f 313/582/335 315/1065/335 341/583/335 -f 341/583/336 315/1065/336 317/584/336 -f 317/584/337 308/1066/337 338/586/337 -f 496/587/338 346/603/338 345/588/338 -f 492/334/339 349/336/339 348/590/339 -f 499/592/340 500/596/340 344/593/340 -f 499/592/341 343/594/341 354/335/341 -f 495/589/342 345/588/342 344/593/342 -f 351/597/343 352/619/343 353/598/343 -f 505/600/344 491/591/344 348/590/344 -f 496/587/343 505/1067/343 347/602/343 -f 356/604/345 357/625/345 358/605/345 -f 360/607/212 361/620/212 362/608/212 -f 364/610/342 355/618/342 365/611/342 -f 350/613/344 353/1068/344 367/614/344 -f 359/609/341 362/608/341 356/616/341 -f 368/617/340 356/616/340 355/618/340 -f 363/612/338 365/611/338 352/619/338 -f 366/615/339 367/614/339 361/620/339 -f 370/621/212 371/646/212 372/622/212 -f 356/624/346 362/1069/346 369/623/346 -f 367/626/347 373/637/347 370/621/347 -f 353/628/628 352/639/628 374/629/628 -f 355/631/349 358/605/349 376/632/349 -f 361/634/629 370/621/629 369/623/629 -f 353/636/630 375/1070/630 373/637/630 -f 365/638/352 376/632/352 374/629/352 -f 377/640/353 378/644/353 379/641/353 -f 376/632/338 377/640/338 383/643/338 -f 357/625/340 384/645/340 378/644/340 -f 369/623/341 372/622/341 384/645/341 -f 373/637/339 382/651/339 371/646/339 -f 358/605/342 378/644/342 377/640/342 -f 386/647/341 387/674/341 388/648/341 -f 371/646/354 389/1071/354 386/650/354 -f 382/651/631 381/1072/631 390/652/631 -f 383/643/356 377/640/356 380/654/356 -f 384/645/632 393/843/632 394/656/632 -f 379/657/633 378/644/633 394/656/633 -f 382/651/634 391/653/634 389/659/634 -f 383/643/635 392/655/635 390/660/635 -f 397/662/64 398/1073/64 399/663/64 -f 391/665/339 396/664/339 400/666/339 -f 392/668/343 401/676/343 397/669/343 -f 379/671/342 402/677/342 403/672/342 -f 389/667/212 400/666/212 387/674/212 -f 390/675/344 397/662/344 396/664/344 -f 380/673/338 403/672/338 401/676/338 -f 385/649/340 388/648/340 402/677/340 -f 405/678/338 406/705/338 407/679/338 -f 403/672/64 408/1074/64 409/681/64 -f 388/648/64 410/1075/64 411/682/64 -f 388/648/64 387/674/64 404/683/64 -f 400/666/64 396/664/64 399/685/64 -f 397/669/64 401/676/64 409/687/64 -f 403/672/64 402/677/64 411/689/64 -f 400/666/64 405/1076/64 404/691/64 -f 407/693/64 406/1077/64 412/1078/64 -f 412/1078/64 413/1079/64 407/693/64 -f 413/1079/64 414/694/64 407/693/64 -f 414/694/64 415/1080/64 416/1081/64 -f 416/1081/64 417/692/64 414/694/64 -f 398/695/340 413/1082/340 412/696/340 -f 408/698/212 415/708/212 414/699/212 -f 410/701/344 417/704/344 416/702/344 -f 404/680/343 407/679/343 417/704/343 -f 399/697/342 412/696/342 406/705/342 -f 409/700/341 414/699/341 413/706/341 -f 411/703/339 416/702/339 415/708/339 -f 426/709/636 427/743/636 428/710/636 -f 425/712/362 429/741/362 427/713/362 -f 426/715/637 375/1083/637 431/716/637 -f 432/718/364 433/1084/364 434/719/364 -f 436/721/365 432/1085/365 435/720/365 -f 430/717/366 431/716/366 434/719/366 -f 438/724/367 439/728/367 440/725/367 -f 436/727/368 437/722/368 439/728/368 -f 419/730/369 418/714/369 427/713/369 -f 420/732/370 430/738/370 433/733/370 -f 423/735/371 436/1086/371 438/736/371 -f 419/730/372 426/731/372 430/738/372 -f 421/734/373 433/733/373 432/739/373 -f 424/737/374 438/736/374 429/741/374 -f 429/742/375 440/725/375 428/710/375 -f 422/740/376 432/739/376 436/744/376 -f 439/728/339 441/750/339 442/746/339 -f 440/725/212 442/746/212 443/747/212 -f 435/720/343 444/751/343 445/748/343 -f 431/716/342 446/754/342 447/749/342 -f 437/722/344 445/748/344 441/750/344 -f 434/719/338 447/749/338 444/751/338 -f 445/748/377 444/751/377 448/752/377 -f 446/754/378 450/763/378 451/755/378 -f 443/747/379 442/746/379 452/756/379 -f 441/750/638 454/1087/638 452/758/638 -f 445/748/381 449/1088/381 454/759/381 -f 443/747/639 453/757/639 455/760/639 -f 446/754/640 381/1089/640 455/762/640 -f 444/751/641 447/749/641 451/764/641 -f 455/766/340 456/785/340 457/767/340 -f 458/769/642 459/1090/642 460/770/642 -f 451/772/338 462/777/338 463/773/338 -f 448/774/343 463/773/343 464/775/343 -f 450/768/342 457/767/342 462/777/342 -f 452/778/212 458/782/212 465/779/212 -f 454/781/339 459/784/339 458/782/339 -f 449/783/344 464/1091/344 459/784/344 -f 453/780/341 465/779/341 456/785/341 -f 461/786/212 467/1092/212 468/787/212 -f 459/789/386 464/1093/386 469/790/386 -f 465/792/387 466/814/387 470/793/387 -f 457/795/388 456/1094/388 470/796/388 -f 462/798/643 472/817/643 473/799/643 -f 463/801/390 473/818/390 469/802/390 -f 462/804/644 457/1095/644 471/805/644 -f 458/807/645 461/786/645 466/788/645 -f 474/809/393 475/1096/393 476/810/393 -f 460/770/339 478/825/339 467/812/339 -f 469/790/344 479/826/344 478/813/344 -f 466/814/341 468/1097/341 480/815/341 -f 470/796/340 480/829/340 481/816/340 -f 472/817/338 475/1096/338 474/809/338 -f 473/818/343 474/1098/343 479/819/343 -f 471/805/342 481/823/342 475/820/342 -f 487/828/64 482/824/64 483/821/64 -f 483/821/64 484/827/64 485/822/64 -f 485/822/64 477/811/64 476/810/64 -f 476/810/64 486/830/64 487/828/64 -f 487/828/64 483/821/64 476/810/64 -f 479/819/394 474/1098/394 477/811/394 -f 481/823/395 486/830/395 476/810/395 -f 468/787/396 467/1092/396 483/821/396 -f 478/825/397 484/827/397 483/821/397 -f 479/826/398 485/822/398 484/827/398 -f 480/815/399 468/1097/399 482/824/399 -f 480/829/400 487/828/400 486/830/400 -f 431/831/401 374/842/401 383/832/401 -f 428/834/402 443/838/402 382/835/402 -f 393/843/646 488/845/646 395/658/646 -f 393/843/647 489/846/647 490/844/647 -f 384/645/648 372/622/648 489/846/648 -f 386/847/649 490/844/649 489/846/649 -f 385/848/650 379/1099/650 395/658/650 -f 385/848/651 488/845/651 490/844/651 -f 494/850/413 366/1100/413 360/851/413 -f 497/853/414 498/864/414 363/854/414 -f 501/856/652 502/1101/652 368/857/652 -f 504/859/653 359/866/653 368/860/653 -f 506/862/417 350/1102/417 366/863/417 -f 498/864/654 501/856/654 364/858/654 -f 493/852/655 360/1103/655 359/866/655 -f 506/862/420 497/853/420 351/867/420 -f 496/869/656 507/872/656 508/870/656 -f 507/872/343 497/853/343 506/862/343 -f 503/873/657 492/1104/657 509/874/657 -f 510/875/423 509/874/423 493/852/423 -f 500/876/658 511/879/658 512/877/658 -f 511/879/425 501/856/425 498/864/425 -f 491/880/659 505/1105/659 508/870/659 -f 508/870/344 506/862/344 494/850/344 -f 499/882/660 503/873/660 510/875/660 -f 499/884/661 514/1106/661 511/879/661 -f 495/885/662 512/877/662 507/872/662 -f 512/877/338 498/864/338 497/853/338 -f 491/887/663 513/881/663 509/874/663 -f 513/881/339 494/850/339 493/852/339 -f 504/889/431 515/902/431 516/890/431 -f 516/890/664 517/910/664 514/892/664 -f 518/893/433 519/915/433 501/894/433 -f 519/896/665 520/1107/665 502/897/665 -f 522/899/435 523/917/435 524/900/435 -f 502/897/665 520/1107/665 515/902/665 -f 514/892/664 517/910/664 518/893/664 -f 526/903/438 527/907/438 528/904/438 -f 516/890/127 515/902/127 525/906/127 -f 527/907/438 526/903/438 529/908/438 -f 517/910/198 527/907/198 530/909/198 -f 516/890/198 528/904/198 527/907/198 -f 526/911/439 525/922/439 532/912/439 -f 518/893/113 530/909/113 529/914/113 -f 522/899/440 533/942/440 534/916/440 -f 535/918/440 536/929/440 533/919/440 -f 515/921/127 523/917/127 534/916/127 -f 520/923/435 519/928/435 538/924/435 -f 533/919/439 536/929/439 539/926/439 -f 519/928/113 529/1108/113 536/929/113 -f 524/900/113 541/937/113 532/930/113 -f 521/932/441 540/927/441 539/926/441 -f 543/934/127 539/1109/127 544/935/127 -f 541/936/442 537/1110/442 531/913/442 -f 523/917/435 515/921/435 541/937/435 -f 543/934/435 535/918/435 522/920/435 -f 538/924/435 519/928/435 535/918/435 -f 541/937/435 515/921/435 520/939/435 -f 542/941/439 534/916/439 533/942/439 -f 536/929/439 529/1108/439 544/944/439 -f 532/912/439 525/922/439 534/916/439 -f 544/944/439 529/1108/439 526/945/439 -f 546/947/127 547/966/127 548/948/127 -f 551/952/198 548/1111/198 549/950/198 -f 548/1111/198 547/989/198 549/950/198 -f 553/953/113 554/968/113 555/954/113 -f 558/958/64 555/1112/64 556/956/64 -f 555/1112/64 554/987/64 556/956/64 -f 553/959/198 559/995/198 560/960/198 -f 546/962/64 562/993/64 563/963/64 -f 546/947/127 564/976/127 565/965/127 -f 553/953/113 561/978/113 566/967/113 -f 568/969/443 569/983/443 570/970/443 -f 572/972/444 573/982/444 574/973/444 -f 575/975/445 576/980/445 565/965/445 -f 578/977/446 566/967/446 561/978/446 -f 576/980/666 569/1113/666 568/981/666 -f 572/972/438 568/969/438 567/971/438 -f 569/983/448 576/980/448 575/975/448 -f 571/974/449 574/973/449 578/977/449 -f 578/977/667 574/1114/667 573/984/667 -f 568/969/451 572/972/451 560/960/451 -f 573/982/453 567/971/453 563/963/453 -f 580/986/64 556/956/64 554/987/64 -f 580/986/64 563/963/64 557/957/64 -f 563/963/64 562/993/64 557/957/64 -f 579/985/198 549/950/198 547/989/198 -f 579/985/198 560/960/198 550/951/198 -f 560/960/198 559/995/198 550/951/198 -f 572/991/668 571/1115/668 577/979/668 -f 567/992/669 570/1116/669 575/975/669 -f 545/994/64 558/958/64 562/993/64 -f 558/958/64 557/957/64 562/993/64 -f 552/996/198 551/952/198 559/995/198 -f 551/952/198 550/951/198 559/995/198 -f 537/997/442 538/1117/442 544/944/442 -f 521/998/441 524/1118/441 542/941/441 -f 90/169/670 72/137/670 106/191/670 -f 124/182/464 120/181/464 121/185/464 +vn -0.2163 -0.9063 0.3630 +vt 0.187482 0.431554 +vt 0.156855 0.444483 +vt 0.154582 0.431555 +vt 0.181530 0.456662 +vt 0.160534 0.456663 +vt 0.181530 0.470033 +vt 0.160534 0.470034 +vt 0.156855 0.482213 +vt 0.187482 0.495142 +vt 0.154582 0.495142 +vt 0.208478 0.431554 +vt 0.177852 0.444483 +vt 0.175578 0.431554 +vt 0.202527 0.456662 +vt 0.202527 0.470033 +vt 0.177852 0.482213 +vt 0.208479 0.495141 +vt 0.175579 0.495142 +vt 0.229475 0.431554 +vt 0.198848 0.444483 +vt 0.196575 0.431554 +vt 0.227202 0.444483 +vt 0.223523 0.470033 +vt 0.198849 0.482213 +vt 0.229475 0.495141 +vt 0.196575 0.495142 +vt 0.250472 0.431554 +vt 0.219845 0.444483 +vt 0.217572 0.431554 +vt 0.248198 0.444483 +vt 0.223523 0.456662 +vt 0.244520 0.456662 +vt 0.244520 0.470033 +vt 0.219845 0.482212 +vt 0.250472 0.495141 +vt 0.217572 0.495141 +vt 0.238569 0.431554 +vt 0.269195 0.444483 +vt 0.240842 0.444483 +vt 0.265517 0.456662 +vt 0.269195 0.482213 +vt 0.240842 0.482212 +vt 0.238568 0.495141 +vt 0.259565 0.431554 +vt 0.290192 0.444483 +vt 0.261838 0.444483 +vt 0.286513 0.456663 +vt 0.265517 0.470033 +vt 0.290191 0.482213 +vt 0.261838 0.482212 +vt 0.259565 0.495141 +vt 0.280562 0.431554 +vt 0.311188 0.444483 +vt 0.282835 0.444483 +vt 0.307510 0.456663 +vt 0.286513 0.470033 +vt 0.311188 0.482213 +vt 0.282835 0.482213 +vt 0.280561 0.495142 +vt 0.185209 0.444483 +vt 0.185209 0.482213 +vt 0.206205 0.444482 +vt 0.206205 0.482213 +vt 0.227202 0.482212 +vt 0.248198 0.482212 +vt 0.271468 0.431554 +vt 0.271468 0.495142 +vt 0.292465 0.431554 +vt 0.292465 0.495142 +vt 0.313461 0.431555 +vt 0.307510 0.470034 +vt 0.313461 0.495142 +s 0 +f 615/1115/678 617/1116/678 614/1117/678 +f 617/1116/679 618/1118/679 619/1119/679 +f 619/1119/680 620/1120/680 621/1121/680 +f 620/1120/681 623/1122/681 621/1121/681 +f 623/1122/682 615/1123/682 614/1124/682 +f 624/1125/683 616/1126/683 615/1127/683 +f 616/1126/684 626/1128/684 618/1118/684 +f 618/1118/685 627/1129/685 620/1120/685 +f 627/1129/686 622/1130/686 620/1120/686 +f 622/1130/687 624/1131/687 615/1132/687 +f 629/1133/688 625/1134/688 624/1135/688 +f 630/1136/689 626/1128/689 625/1134/689 +f 626/1128/690 632/1137/690 627/1129/690 +f 632/1137/691 628/1138/691 627/1129/691 +f 628/1138/692 629/1139/692 624/1140/692 +f 634/1141/693 630/1142/693 629/1143/693 +f 635/1144/694 631/1145/694 630/1142/694 +f 636/1146/695 632/1137/695 631/1145/695 +f 637/1147/696 633/1148/696 632/1137/696 +f 633/1148/697 634/1149/697 629/1150/697 +f 634/1151/698 640/1152/698 635/1153/698 +f 635/1153/699 641/1154/699 636/1146/699 +f 641/1154/700 637/1147/700 636/1146/700 +f 637/1147/701 643/1155/701 638/1156/701 +f 643/1155/702 634/1157/702 638/1156/702 +f 639/1158/703 645/1159/703 640/1160/703 +f 645/1159/704 641/1154/704 640/1160/704 +f 646/1161/705 642/1162/705 641/1154/705 +f 642/1162/706 648/1163/706 643/1164/706 +f 648/1163/707 639/1165/707 643/1164/707 +f 644/1166/708 617/1167/708 645/1168/708 +f 617/1167/709 646/1161/709 645/1168/709 +f 619/1169/710 647/1170/710 646/1161/710 +f 647/1170/711 623/1171/711 648/1172/711 +f 623/1171/712 644/1173/712 648/1172/712 +f 615/1115/678 616/1174/678 617/1116/678 +f 617/1116/679 616/1174/679 618/1118/679 +f 619/1119/680 618/1118/680 620/1120/680 +f 620/1120/681 622/1175/681 623/1122/681 +f 623/1122/682 622/1175/682 615/1123/682 +f 624/1125/683 625/1176/683 616/1126/683 +f 616/1126/684 625/1176/684 626/1128/684 +f 618/1118/685 626/1128/685 627/1129/685 +f 627/1129/686 628/1177/686 622/1130/686 +f 622/1130/687 628/1177/687 624/1131/687 +f 629/1133/688 630/1136/688 625/1134/688 +f 630/1136/689 631/1145/689 626/1128/689 +f 626/1128/713 631/1145/713 632/1137/713 +f 632/1137/691 633/1178/691 628/1138/691 +f 628/1138/714 633/1178/714 629/1139/714 +f 634/1141/693 635/1144/693 630/1142/693 +f 635/1144/694 636/1146/694 631/1145/694 +f 636/1146/695 637/1147/695 632/1137/695 +f 637/1147/696 638/1179/696 633/1148/696 +f 633/1148/697 638/1179/697 634/1149/697 +f 634/1151/698 639/1180/698 640/1152/698 +f 635/1153/699 640/1152/699 641/1154/699 +f 641/1154/700 642/1162/700 637/1147/700 +f 637/1147/701 642/1162/701 643/1155/701 +f 643/1155/715 639/1181/715 634/1157/715 +f 639/1158/703 644/1182/703 645/1159/703 +f 645/1159/704 646/1161/704 641/1154/704 +f 646/1161/705 647/1170/705 642/1162/705 +f 642/1162/706 647/1170/706 648/1163/706 +f 648/1163/716 644/1183/716 639/1165/716 +f 644/1166/708 614/1184/708 617/1167/708 +f 617/1167/709 619/1169/709 646/1161/709 +f 619/1169/710 621/1185/710 647/1170/710 +f 647/1170/711 621/1185/711 623/1171/711 +f 623/1171/717 614/1186/717 644/1173/717 +o GuardOuter +v -0.171766 0.857316 0.902020 +v -0.171766 0.884188 0.902020 +v -0.171766 0.857316 0.868866 +v -0.171766 0.884188 0.868866 +v 0.171766 0.857316 0.902020 +v 0.171766 0.884188 0.902020 +v 0.171766 0.857316 0.868866 +v 0.171766 0.884188 0.868866 +v -0.202507 0.857316 0.868866 +v -0.202507 0.857316 0.902020 +v -0.202507 0.884188 0.902020 +v -0.202507 0.884188 0.868866 +v 0.202507 0.884188 0.868866 +v 0.202507 0.857316 0.868866 +v 0.202507 0.857316 0.902020 +v 0.202507 0.884188 0.902020 +v -0.171766 0.884188 -0.072626 +v -0.171766 0.857316 -0.072626 +v 0.171766 0.884188 -0.072626 +v 0.171766 0.857316 -0.072626 +v -0.202507 0.884188 -0.072626 +v -0.202507 0.857316 -0.072626 +v 0.202507 0.884188 -0.072626 +v 0.202507 0.857316 -0.072626 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vt 0.107481 0.515568 +vt 0.100711 0.826566 +vt 0.100711 0.515568 +vt 0.200617 0.674832 +vt 0.204562 0.504617 +vt 0.204562 0.674832 +vt 0.189902 0.504617 +vt 0.196672 0.515568 +vt 0.189902 0.515568 +vt 0.196672 0.690063 +vt 0.200617 0.519848 +vt 0.200617 0.690063 +vt 0.025060 0.515568 +vt 0.100711 0.504617 +vt 0.114251 0.515568 +vt 0.002510 0.987540 +vt 0.006455 0.971113 +vt 0.006455 0.987540 +vt 0.006455 0.521044 +vt 0.010401 0.504617 +vt 0.010401 0.521044 +vt 0.107481 0.504617 +vt 0.114251 0.504617 +vt 0.196672 0.705295 +vt 0.018291 0.504617 +vt 0.025060 0.504617 +vt 0.010401 0.971113 +vt 0.014346 0.504617 +vt 0.014346 0.971113 +vt 0.196672 0.519848 +vt 0.200617 0.504617 +vt 0.196672 0.735759 +vt 0.200617 0.720527 +vt 0.200617 0.735759 +vt 0.200617 0.705295 +vt 0.196672 0.720527 +vt 0.002510 0.971113 +vt 0.006455 0.504617 +vt 0.018291 0.826566 +vt 0.018291 0.515568 +vt 0.006455 0.987540 +vt 0.018291 0.504617 +vt 0.014346 0.504617 +vt 0.107481 0.826566 +vt 0.189902 0.826566 +vt 0.200617 0.504617 +vt 0.196672 0.504617 +vt 0.010401 0.504617 +vt 0.002510 0.504617 +vt 0.025060 0.826566 +vt 0.010401 0.987540 +vt 0.018291 0.971113 +vt 0.114251 0.826566 +vt 0.196672 0.826566 +s 0 +f 657/1187/718 666/1188/718 651/1189/718 +f 652/1190/719 655/1191/719 651/1192/719 +f 654/1193/720 661/1194/720 656/1195/720 +f 654/1196/721 649/1197/721 653/1198/721 +f 655/1199/718 649/1200/718 651/1189/718 +f 652/1201/720 654/1193/720 656/1195/720 +f 659/1202/722 657/1203/722 658/1204/722 +f 661/1205/723 663/1206/723 662/1207/723 +f 652/1201/720 659/1208/720 650/1209/720 +f 649/1200/718 657/1187/718 651/1189/718 +f 653/1198/721 664/1210/721 654/1196/721 +f 655/1199/718 663/1211/718 653/1212/718 +f 656/1213/722 668/1214/722 655/1215/722 +f 650/1216/721 658/1217/721 649/1197/721 +f 667/1218/719 672/1219/719 668/1220/719 +f 666/1221/719 669/1222/719 665/1210/719 +f 660/1223/722 670/1224/722 657/1203/722 +f 655/1199/718 672/1225/718 662/1226/718 +f 662/1207/723 671/1227/723 661/1205/723 +f 651/1228/723 665/1215/723 652/1229/723 +f 652/1201/720 669/1230/720 660/1187/720 +f 661/1194/720 667/1231/720 656/1195/720 +f 657/1187/718 670/1230/718 666/1188/718 +f 652/1190/719 656/1232/719 655/1191/719 +f 654/1193/720 664/1233/720 661/1194/720 +f 654/1196/721 650/1216/721 649/1197/721 +f 655/1199/718 653/1212/718 649/1200/718 +f 652/1201/720 650/1209/720 654/1193/720 +f 659/1202/722 660/1223/722 657/1203/722 +f 661/1205/723 664/1224/723 663/1206/723 +f 652/1201/720 660/1187/720 659/1208/720 +f 649/1200/718 658/1208/718 657/1187/718 +f 653/1198/721 663/1221/721 664/1210/721 +f 655/1199/718 662/1226/718 663/1211/718 +f 656/1213/722 667/1234/722 668/1214/722 +f 650/1216/721 659/1233/721 658/1217/721 +f 667/1218/719 671/1222/719 672/1219/719 +f 666/1221/719 670/1219/719 669/1222/719 +f 660/1223/722 669/1235/722 670/1224/722 +f 655/1199/718 668/1236/718 672/1225/718 +f 662/1207/723 672/1237/723 671/1227/723 +f 651/1228/723 666/1238/723 665/1215/723 +f 652/1201/720 665/1239/720 669/1230/720 +f 661/1194/720 671/1240/720 667/1231/720 +o GuardInner +v 0.161860 0.857316 -0.061518 +v 0.161860 0.884188 -0.061518 +v -0.161860 0.857316 -0.061518 +v -0.161860 0.884188 -0.061518 +v 0.057255 0.857316 0.868866 +v -0.057255 0.857316 0.868866 +v -0.057255 0.884188 0.868866 +v 0.057255 0.884188 0.868866 +v 0.057255 0.884188 -0.053868 +v -0.057255 0.884188 -0.053868 +v -0.057255 0.857316 -0.053868 +v 0.057255 0.857316 -0.053868 +v 0.057255 0.857316 0.852620 +v -0.057255 0.857316 0.852620 +v -0.057255 0.884188 0.852620 +v 0.057255 0.884188 0.852620 +v 0.161860 0.857316 0.844969 +v -0.161860 0.857316 0.844969 +v -0.161860 0.884188 0.844969 +v 0.161860 0.884188 0.844969 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0729 -0.0000 -0.9973 +vn 0.0729 -0.0000 -0.9973 +vn 0.0729 -0.0000 0.9973 +vn -0.0729 -0.0000 0.9973 +vt 0.005903 0.898813 +vt 0.226808 0.941986 +vt 0.005903 0.941986 +vt 0.333177 0.981424 +vt 0.001820 0.988178 +vt 0.001820 0.981424 +vt 0.007826 0.737326 +vt 0.226808 0.776764 +vt 0.005903 0.776764 +vt 0.001820 0.994932 +vt 0.333177 0.988178 +vt 0.333177 0.994932 +vt 0.007826 0.859375 +vt 0.226808 0.898813 +vt 0.084431 0.737326 +vt 0.041258 0.730572 +vt 0.084431 0.730572 +vt 0.001820 0.737326 +vt 0.041258 0.737326 +vt 0.123869 0.730572 +vt 0.001820 0.898813 +vt 0.001820 0.941986 +vt 0.226808 0.819937 +vt 0.005903 0.819937 +vt 0.163307 0.737326 +vt 0.170061 0.731201 +vt 0.170061 0.737326 +vt 0.001820 0.776764 +vt 0.001820 0.819937 +vt 0.176815 0.731201 +vt 0.170061 0.737326 +vt 0.170061 0.731201 +vt 0.007826 0.981424 +vt 0.163307 0.730572 +vt 0.123869 0.737326 +vt 0.041258 0.730572 +vt 0.001820 0.723818 +vt 0.041258 0.723818 +vt 0.333177 0.988178 +vt 0.228731 0.737326 +vt 0.001820 0.988178 +vt 0.228731 0.859375 +vt 0.001820 0.730572 +vt 0.163307 0.731201 +vt 0.176815 0.737326 +vt 0.228731 0.981424 +s 0 +f 688/1241/724 682/1242/724 687/1243/724 +f 673/1244/725 692/1245/725 689/1246/725 +f 690/1247/726 683/1248/726 686/1249/726 +f 676/1250/727 690/1251/727 691/1252/727 +f 692/1253/724 681/1254/724 688/1241/724 +f 682/1255/728 684/1256/728 683/1257/728 +f 674/1258/729 684/1256/729 681/1259/729 +f 675/1260/730 682/1255/730 683/1257/730 +f 680/1261/724 687/1243/724 679/1262/724 +f 686/1249/726 684/1263/726 685/1264/726 +f 679/1265/727 686/1266/727 678/1267/727 +f 678/1268/726 685/1264/726 677/1269/726 +f 677/1270/725 688/1271/725 680/1272/725 +f 684/1263/726 689/1253/726 685/1264/726 +f 682/1242/724 691/1273/724 687/1243/724 +f 689/1274/731 688/1275/731 685/1260/731 +f 687/1276/732 690/1277/732 686/1278/732 +f 688/1241/724 681/1254/724 682/1242/724 +f 673/1244/725 674/1279/725 692/1245/725 +f 690/1247/726 675/1280/726 683/1248/726 +f 676/1250/727 675/1281/727 690/1251/727 +f 692/1253/724 674/1282/724 681/1254/724 +f 682/1255/728 681/1259/728 684/1256/728 +f 674/1258/729 673/1283/729 684/1256/729 +f 675/1260/730 676/1275/730 682/1255/730 +f 680/1261/724 688/1241/724 687/1243/724 +f 686/1249/726 683/1248/726 684/1263/726 +f 679/1265/727 687/1284/727 686/1266/727 +f 678/1268/726 686/1249/726 685/1264/726 +f 677/1270/725 685/1285/725 688/1271/725 +f 684/1263/726 673/1282/726 689/1253/726 +f 682/1242/724 676/1286/724 691/1273/724 +f 689/1274/731 692/1265/731 688/1275/731 +f 687/1276/732 691/1283/732 690/1277/732 +o ShellFore +v 0.000000 1.558350 1.603447 +v 0.132625 1.613285 1.603447 +v 0.187560 1.745910 1.603447 +v 0.132625 1.878535 1.603447 +v 0.000000 1.933470 1.603447 +v -0.132625 1.878535 1.603447 +v -0.187560 1.745910 1.603447 +v -0.132625 1.613285 1.603447 +v 0.000000 1.601210 1.727859 +v 0.102318 1.643592 1.727859 +v 0.144700 1.745910 1.727859 +v 0.102318 1.848228 1.727859 +v 0.000000 1.890610 1.727859 +v -0.102318 1.848228 1.727859 +v -0.144700 1.745910 1.727859 +v -0.102318 1.643592 1.727859 +v 0.000000 1.745910 1.805015 +v 0.000000 1.558350 1.273779 +v 0.132625 1.613285 1.273779 +v 0.187560 1.745910 1.273779 +v 0.132625 1.878535 1.273779 +v 0.000000 1.933470 1.273779 +v -0.132625 1.878535 1.273779 +v -0.187560 1.745910 1.273779 +v -0.132625 1.613285 1.273779 +vn 0.3647 0.8804 0.3033 +vn -0.3827 -0.9239 -0.0000 +vn -0.8804 -0.3647 0.3033 +vn 0.8804 -0.3647 0.3033 +vn -0.3647 0.8804 0.3033 +vn -0.3647 -0.8804 0.3033 +vn 0.3647 -0.8804 0.3033 +vn 0.8804 0.3647 0.3033 +vn -0.8804 0.3647 0.3033 +vn 0.1913 -0.4618 0.8661 +vn 0.4618 -0.1913 0.8661 +vn 0.4618 0.1913 0.8661 +vn 0.1913 0.4618 0.8661 +vn -0.1913 0.4618 0.8661 +vn -0.4618 0.1913 0.8661 +vn -0.4618 -0.1913 0.8661 +vn -0.1913 -0.4618 0.8661 +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.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vt 0.166016 0.792597 +vt 0.207433 0.792597 +vt 0.041764 0.902716 +vt 0.000347 0.792597 +vt 0.041764 0.792597 +vt 0.083181 0.792597 +vt 0.248850 0.792597 +vt 0.290267 0.792597 +vt 0.124598 0.792597 +vt 0.331685 0.792597 +vt 0.916016 0.888455 +vt 0.972926 0.872501 +vt 0.916016 0.833984 +vt 0.996499 0.833984 +vt 0.972926 0.795468 +vt 0.916016 0.779514 +vt 0.859106 0.795468 +vt 0.835533 0.833984 +vt 0.859106 0.872501 +vt 0.083181 0.902716 +vt 0.124598 0.902716 +vt 0.166016 0.902716 +vt 0.207433 0.902716 +vt 0.248850 0.902716 +vt 0.290267 0.902716 +vt 0.331685 0.902716 +vt 0.000347 0.902716 +s 0 +f 697/1287/733 704/1288/733 696/1288/733 +f 717/1289/734 693/1290/734 700/1291/734 +f 699/1292/735 708/1291/735 707/1292/735 +f 695/1293/736 702/1294/736 694/1294/736 +f 698/1295/737 705/1287/737 697/1287/737 +f 700/1291/738 701/1290/738 708/1291/738 +f 694/1294/739 701/1296/739 693/1296/739 +f 696/1288/740 703/1293/740 695/1293/740 +f 698/1295/741 707/1292/741 706/1295/741 +f 701/1297/742 702/1298/742 709/1299/742 +f 702/1298/743 703/1300/743 709/1299/743 +f 703/1300/744 704/1301/744 709/1299/744 +f 704/1301/745 705/1302/745 709/1299/745 +f 705/1302/746 706/1303/746 709/1299/746 +f 706/1303/747 707/1304/747 709/1299/747 +f 707/1304/748 708/1305/748 709/1299/748 +f 708/1305/749 701/1297/749 709/1299/749 +f 716/1306/750 700/1291/750 699/1292/750 +f 715/1307/751 699/1292/751 698/1295/751 +f 714/1308/752 698/1295/752 697/1287/752 +f 713/1309/753 697/1287/753 696/1288/753 +f 712/1310/754 696/1288/754 695/1293/754 +f 711/1311/755 695/1293/755 694/1294/755 +f 710/1312/756 694/1294/756 693/1296/756 +f 697/1287/733 705/1287/733 704/1288/733 +f 717/1289/734 710/1313/734 693/1290/734 +f 699/1292/735 700/1291/735 708/1291/735 +f 695/1293/736 703/1293/736 702/1294/736 +f 698/1295/737 706/1295/737 705/1287/737 +f 700/1291/738 693/1290/738 701/1290/738 +f 694/1294/739 702/1294/739 701/1296/739 +f 696/1288/740 704/1288/740 703/1293/740 +f 698/1295/741 699/1292/741 707/1292/741 +f 716/1306/750 717/1289/750 700/1291/750 +f 715/1307/751 716/1306/751 699/1292/751 +f 714/1308/752 715/1307/752 698/1295/752 +f 713/1309/753 714/1308/753 697/1287/753 +f 712/1310/754 713/1309/754 696/1288/754 +f 711/1311/755 712/1310/755 695/1293/755 +f 710/1312/756 711/1311/756 694/1294/756 diff --git a/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg b/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg index 36de2dae710a5f913b2879bb737f90bfdcbd9b0a..0b7a888a0ebfc82b697df2486e8e5a6de78b3706 100644 GIT binary patch literal 23147 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 literal 10791 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 F^j~g61Csy% diff --git a/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg index f75be2fe68ee72ee2bf32b82c08993bcb73c57cb..dcc380f2f995d92ae4594a5c13b13b34226d1c4e 100644 GIT binary patch literal 51293 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 f=Kws|6%}azU*P{D= Date: Mon, 26 Feb 2024 12:12:47 +1100 Subject: [PATCH 223/376] Add empty firing animation and case colours --- .../java/com/hbm/handler/GunConfiguration.java | 1 + .../hbm/handler/guncfg/GunGrenadeFactory.java | 14 ++++++++------ .../java/com/hbm/items/weapon/ItemGunBase.java | 12 ++++++++---- .../java/com/hbm/packet/GunAnimationPacket.java | 4 ++-- src/main/java/com/hbm/particle/SpentCasing.java | 3 ++- .../java/com/hbm/render/anim/HbmAnimations.java | 1 + .../item/weapon/ItemRenderWeaponCongo.java | 7 ++++--- .../models/weapons/animations/congolake.json | 2 +- src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/weapon/glShootEmpty.ogg | Bin 0 -> 18670 bytes 10 files changed, 28 insertions(+), 17 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/weapon/glShootEmpty.ogg diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 591d19e3d..3fe99df52 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -55,6 +55,7 @@ public class GunConfiguration implements Cloneable { public int firingDuration; //sound path to the shooting sound public String firingSound = ""; + public String firingSoundEmpty = null; public float firingVolume = 1.0F; public float firingPitch = 1.0F; //how long the reload animation will play diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index cac9e4526..c396f27dc 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -33,7 +33,7 @@ public class GunGrenadeFactory { static { EJECTOR_LAUNCHER = new CasingEjector().setAngleRange(0.02F, 0.03F).setAfterReload(); EJECTOR_CONGOLAKE = new CasingEjector().setMotion(0.3, 0.1, 0).setAngleRange(0.02F, 0.03F).setDelay(15); - CASING40MM = new SpentCasing(CasingType.STRAIGHT).setScale(4F, 4F, 3F).setBounceMotion(0.02F, 0.03F).setColor(0x777777).setupSmoke(1F, 0.5D, 60, 40); + CASING40MM = new SpentCasing(CasingType.STRAIGHT).setScale(4F, 4F, 3F).setBounceMotion(0.02F, 0.03F).setColor(SpentCasing.COLOR_CASE_40MM, 0x4B5443).setupSmoke(1F, 0.5D, 60, 40); } public static GunConfiguration getHK69Config() { @@ -82,6 +82,7 @@ public class GunGrenadeFactory { config.allowsInfinity = true; config.crosshair = Crosshair.L_CIRCUMFLEX; config.firingSound = "hbm:weapon.glShoot"; + config.firingSoundEmpty = "hbm:weapon.glShootEmpty"; config.reloadSound = GunConfiguration.RSOUND_GRENADE_NEW; config.reloadSoundEnd = false; @@ -97,6 +98,7 @@ public class GunGrenadeFactory { config.loadAnimations = i -> { config.animations.put(AnimType.CYCLE, ResourceManager.congolake_anim.get("Fire")); + config.animations.put(AnimType.CYCLE_EMPTY, ResourceManager.congolake_anim.get("FireEmpty")); config.animations.put(AnimType.RELOAD, ResourceManager.congolake_anim.get("ReloadStart")); config.animations.put(AnimType.RELOAD_EMPTY, ResourceManager.congolake_anim.get("ReloadEmpty")); config.animations.put(AnimType.RELOAD_CYCLE, ResourceManager.congolake_anim.get("Reload")); @@ -206,7 +208,7 @@ public class GunGrenadeFactory { bullet.explosive = 7.5F; bullet.jolt = 6.5D; - bullet.spentCasing = CASING40MM.clone().register("40MMIF"); + bullet.spentCasing = CASING40MM.clone().register("40MMIF").setColor(SpentCasing.COLOR_CASE_40MM, 0x1C1C1C); return bullet; } @@ -223,7 +225,7 @@ public class GunGrenadeFactory { bullet.explosive = 10.0F; bullet.trail = 3; - bullet.spentCasing = CASING40MM.clone().register("40MMCon"); + bullet.spentCasing = CASING40MM.clone().register("40MMCon").setColor(SpentCasing.COLOR_CASE_40MM, 0x3D5E1D); return bullet; } @@ -237,7 +239,7 @@ public class GunGrenadeFactory { bullet.explosive = 1.5F; bullet.trail = 5; - bullet.spentCasing = CASING40MM.clone().register("40MMFin"); + bullet.spentCasing = CASING40MM.clone().register("40MMFin").setColor(SpentCasing.COLOR_CASE_40MM, 0x007FDB); return bullet; } @@ -254,7 +256,7 @@ public class GunGrenadeFactory { BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); }; - bullet.spentCasing = CASING40MM.clone().register("40MMNuke"); + bullet.spentCasing = CASING40MM.clone().register("40MMNuke").setColor(SpentCasing.COLOR_CASE_40MM, 0xE2C000); return bullet; } @@ -270,7 +272,7 @@ public class GunGrenadeFactory { bullet.trail = 5; bullet.vPFX = "bluedust"; - bullet.spentCasing = CASING40MM.clone().register("40MMTrac").setColor(0xEEEEEE); + bullet.spentCasing = CASING40MM.clone().register("40MMTrac").setColor(0xEEEEEE, 0x0075CA); return bullet; } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index c506eee78..e40e9889c 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -241,9 +241,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu for(int i = 0; i < bullets; i++) { spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); } - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); useUpAmmo(player, stack, true); player.inventoryContainer.detectAndSendChanges(); @@ -251,8 +248,15 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu int wear = (int) Math.ceil(config.wear / (1F + EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack))); setItemWear(stack, getItemWear(stack) + wear); } + + if(player instanceof EntityPlayerMP) { + AnimType animType = getMag(stack) == 0 ? AnimType.CYCLE_EMPTY : AnimType.CYCLE; + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(animType.ordinal()), (EntityPlayerMP) player); + } - world.playSoundAtEntity(player, mainConfig.firingSound, mainConfig.firingVolume, mainConfig.firingPitch); + String firingSound = mainConfig.firingSound; + if (getMag(stack) == 0 && mainConfig.firingSoundEmpty != null) firingSound = mainConfig.firingSoundEmpty; + world.playSoundAtEntity(player, firingSound, mainConfig.firingVolume, mainConfig.firingPitch); if(mainConfig.ejector != null && !mainConfig.ejector.getAfterReload()) queueCasing(player, mainConfig.ejector, config, stack); diff --git a/src/main/java/com/hbm/packet/GunAnimationPacket.java b/src/main/java/com/hbm/packet/GunAnimationPacket.java index 1699d1d9e..c744f72fd 100644 --- a/src/main/java/com/hbm/packet/GunAnimationPacket.java +++ b/src/main/java/com/hbm/packet/GunAnimationPacket.java @@ -67,8 +67,8 @@ public class GunAnimationPacket implements IMessage { animation = base.getAnimation(stack, AnimType.RELOAD); } - // Fallback to regular CYCLE if no ALT_CYCLE exists - if(animation == null && type == AnimType.ALT_CYCLE) { + // Fallback to regular CYCLE if no ALT_CYCLE (or CYCLE_EMPTY) exists + if(animation == null && (type == AnimType.ALT_CYCLE || type == AnimType.CYCLE_EMPTY)) { animation = base.getAnimation(stack, AnimType.CYCLE); } diff --git a/src/main/java/com/hbm/particle/SpentCasing.java b/src/main/java/com/hbm/particle/SpentCasing.java index a44534a3f..200f12893 100644 --- a/src/main/java/com/hbm/particle/SpentCasing.java +++ b/src/main/java/com/hbm/particle/SpentCasing.java @@ -15,8 +15,9 @@ public class SpentCasing implements Cloneable { public static final int COLOR_CASE_16INCH = 0xD89128; public static final int COLOR_CASE_16INCH_PHOS = 0xC8C8C8; public static final int COLOR_CASE_16INCH_NUKE = 0x495443; + public static final int COLOR_CASE_40MM = 0x515151; - public static final HashMap casingMap = new HashMap(); + public static final HashMap casingMap = new HashMap(); public enum CasingType { STRAIGHT("Straight"), diff --git a/src/main/java/com/hbm/render/anim/HbmAnimations.java b/src/main/java/com/hbm/render/anim/HbmAnimations.java index 3f99c151e..44fff33dc 100644 --- a/src/main/java/com/hbm/render/anim/HbmAnimations.java +++ b/src/main/java/com/hbm/render/anim/HbmAnimations.java @@ -23,6 +23,7 @@ public class HbmAnimations { RELOAD_CYCLE, //animation that plays for every individual round (for shotguns and similar single round loading weapons) RELOAD_END, //animation for transitioning from our RELOAD_CYCLE to idle CYCLE, //animation for every firing cycle + CYCLE_EMPTY, //animation for the final shot in the magazine ALT_CYCLE, //animation for alt fire cycles SPINUP, //animation for actionstart SPINDOWN, //animation for actionend diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java index ba99e1920..07cac42d7 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java @@ -8,6 +8,7 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.ResourceManager; +import com.hbm.particle.SpentCasing; import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; @@ -105,13 +106,13 @@ public class ItemRenderWeaponCongo implements IItemRenderer { ItemGunBase gun = (ItemGunBase)item.getItem(); BulletConfiguration bullet = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(ItemGunBase.getMagType(item))); - int[] colors = bullet.spentCasing != null ? bullet.spentCasing.getColors() : new int[] { 0x3E3E3E }; + int[] colors = bullet.spentCasing != null ? bullet.spentCasing.getColors() : new int[] { SpentCasing.COLOR_CASE_40MM }; - Color shellColor = new Color(colors.length >= 2 ? colors[1] : 0x3E3E3E); + Color shellColor = new Color(colors[0]); GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); ResourceManager.congolake.renderPart("Shell"); - Color shellForeColor = new Color(colors[0]); + Color shellForeColor = new Color(colors.length > 1 ? colors[1] : colors[0]); GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); ResourceManager.congolake.renderPart("ShellFore"); diff --git a/src/main/resources/assets/hbm/models/weapons/animations/congolake.json b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json index 7d1773aca..2cd8a1a7b 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/congolake.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json @@ -1 +1 @@ -{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0], [0.1729116439819336, 183.33333333333337], [0.13706907629966736, 83.33333333333326], [0.13706907629966736, 200.0], [0.08123889565467834, 166.66666666666663], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0], [0.07001475989818573, 183.33333333333337], [0.3594728708267212, 83.33333333333326], [0.3594728708267212, 200.0], [0.052131712436676025, 166.66666666666663], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0], [0.1356278508901596, 183.33333333333337], [0.16076654195785522, 83.33333333333326], [0.16076654195785522, 200.0], [0.13280370831489563, 166.66666666666663], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669], [-1.6187724423744758, 216.66666666666663], [-3.0496036919995886, 100.0], [-1.5771150119048625, 216.66666666666663], [-1.3797563756722266, 133.33333333333348], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669], [6.481160527009576, 216.66666666666663], [6.3670886839075465, 100.0], [2.910396325865089, 216.66666666666663], [2.9018462096847024, 133.33333333333348], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669], [-1.7981676810899783, 216.66666666666663], [-1.8284025806680975, 100.0], [4.424185025436767, 216.66666666666663], [0.5393851613977845, 133.33333333333348], [0.0, 116.66666666666652]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334], [-0.10627399384975433, 49.999999999999886], [-0.7439179420471191, 66.66666666666674], [-0.7439179420471191, 200.0], [-0.18597948551177979, 66.66666666666674], [-0.0, 66.66666666666652]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [-2.204763704938273e-09, 683.3333333333334], [-2.204763704938273e-09, 66.66666666666663], [1.5205265935236412e-09, 116.66666666666674], [-0.01397116482257843, 66.66666666666663], [-0.01397116482257843, 49.999999999999886], [1.5205265935236412e-09, 150.0]], "z": [[1.2549771070480347, 0.0], [1.2549771070480347, 683.3333333333334], [0.4066495895385742, 66.66666666666663], [0.4066495895385742, 116.66666666666674], [0.4519183039665222, 66.66666666666663], [0.4519183039665222, 49.999999999999886], [1.2549771070480347, 150.0]], "y": [[1.7459099292755127, 0.0], [1.199751853942871, 683.3333333333334], [1.199751853942871, 66.66666666666663], [1.5027252435684204, 116.66666666666674], [1.5814520120620728, 66.66666666666663], [1.5814520120620728, 49.999999999999886], [1.7459099292755127, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [-24.580495030325643, 116.66666666666674], [-15.192167789711336, 66.66666666666663], [-15.192167789711336, 49.999999999999886], [0.0, 150.0]], "z": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [0.0, 116.66666666666674], [-9.025331207124422e-09, 66.66666666666663], [-9.025331207124422e-09, 49.999999999999886], [0.0, 150.0]], "y": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [8.004127933608693e-08, 116.66666666666674], [1.31019960381489e-07, 66.66666666666663], [1.31019960381489e-07, 49.999999999999886], [0.0, 150.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "Reload": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[1.7611019611358643, 0.0], [1.7611019611358643, 400.0], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 66.66666666666663]], "z": [[0.31467199325561523, 0.0], [0.31467199325561523, 400.0], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 66.66666666666663]], "y": [[0.8750439286231995, 0.0], [0.8750439286231995, 400.0], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 66.66666666666663]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [-18.983153297952903, 400.0], [-20.627756982159838, 100.0], [-20.258341078257818, 116.66666666666674], [-18.983153297952903, 66.66666666666663]], "z": [[86.04810969222216, 0.0], [86.04810969222216, 400.0], [89.15816119870658, 100.0], [86.00693048171614, 116.66666666666674], [86.04810969222216, 66.66666666666663]], "y": [[29.613753637261834, 0.0], [29.613753637261834, 400.0], [25.730953311102372, 100.0], [27.311677651096765, 116.66666666666674], [29.613753637261834, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}, "ReloadEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [1.2511006593704224, 183.33333333333331], [1.6423077583312988, 216.66666666666669], [1.6554410457611084, 116.66666666666663], [1.7105761766433716, 66.66666666666674], [1.7611019611358643, 283.33333333333337]], "z": [[-0.0, 0.0], [0.26347818970680237, 183.33333333333331], [0.32502928376197815, 216.66666666666669], [0.30153536796569824, 116.66666666666663], [0.3000105023384094, 66.66666666666674], [0.31467199325561523, 283.33333333333337]], "y": [[0.0, 0.0], [0.42658743262290955, 183.33333333333331], [-0.009814918041229248, 216.66666666666669], [-0.1131410151720047, 116.66666666666663], [-0.20051059126853943, 66.66666666666674], [0.8750439286231995, 283.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 116.66666666666667], [-37.38541266737456, 283.3333333333333], [-36.45018560017598, 116.66666666666663], [-30.74254485044399, 66.66666666666674], [-18.983153297952903, 283.33333333333337]], "z": [[-0.0, 0.0], [32.06710636071164, 116.66666666666667], [40.97562647251089, 283.3333333333333], [38.71689657436601, 116.66666666666663], [32.11341504328433, 66.66666666666674], [86.04810969222216, 283.33333333333337]], "y": [[0.0, 0.0], [21.50487279989995, 116.66666666666667], [44.292741993873435, 283.3333333333333], [46.044774308440914, 116.66666666666663], [49.72028010083778, 66.66666666666674], [29.613753637261834, 283.33333333333337]]}}, "Pump": {"location": {"z": [[-0.0, 83.33333333333333], [-0.10627399384975433, 50.000000000000014], [-0.7439179420471191, 66.66666666666666], [-0.7439179420471191, 483.33333333333337], [-0.18597948551177979, 66.66666666666663], [-0.0, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.8807575702667236, 216.66666666666669], [0.1613924205303192, 216.66666666666669], [0.010319530963897705, 100.0], [2.558298035637563e-07, 83.33333333333337]], "z": [[-2.2731080055236816, 0.0], [-1.77922523021698, 216.66666666666669], [0.5386117100715637, 216.66666666666669], [0.9011819362640381, 100.0], [1.2500436305999756, 83.33333333333337]], "y": [[-1.4170563220977783, 0.0], [-0.7542737126350403, 216.66666666666669], [1.8265879154205322, 216.66666666666669], [1.7011022567749023, 100.0], [1.7520724534988403, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 166.66666666666666], [17.895010248068782, 216.66666666666666], [3.92045772037468, 116.66666666666669], [0.0, 116.66666666666674]], "z": [[0.0, 0.0], [-0.0, 166.66666666666666], [-7.282242678909106, 216.66666666666666], [-2.104055355191472, 116.66666666666669], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 166.66666666666666], [-21.433229238148392, 216.66666666666666], [-7.3901921111938655, 116.66666666666669], [0.0, 116.66666666666674]]}}}, "ReloadEnd": {"Gun": {"location": {"x": [[1.7611019611358643, 0.0], [-0.31797051429748535, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[0.31467199325561523, 0.0], [0.010336088016629219, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[0.8750439286231995, 0.0], [0.0250311940908432, 216.66666666666669], [0.0, 83.33333333333331]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [0.09662330444411844, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[86.04810969222216, 0.0], [-9.502314560125358, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[29.613753637261834, 0.0], [-0.24104249845162748, 216.66666666666669], [0.0, 83.33333333333331]]}}}, "ReloadStart": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[0.0, 0.0], [1.2318342924118042, 183.33333333333331], [1.642445683479309, 83.33333333333337], [1.7611019611358643, 133.33333333333331], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 66.66666666666663]], "z": [[-0.0, 0.0], [0.2732446491718292, 183.33333333333331], [0.36432620882987976, 83.33333333333337], [0.31467199325561523, 133.33333333333331], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 66.66666666666663]], "y": [[0.0, 0.0], [0.7328978776931763, 183.33333333333331], [0.9771971702575684, 83.33333333333337], [0.8750439286231995, 133.33333333333331], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 66.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 150.0], [-19.490018221164963, 83.33333333333334], [-18.983153297952903, 166.66666666666666], [-20.627756982159838, 100.0], [-20.258341078257818, 116.66666666666674], [-18.983153297952903, 66.66666666666663]], "z": [[-0.0, 0.0], [65.44332775888294, 150.0], [87.25777034517726, 83.33333333333334], [86.04810969222216, 166.66666666666666], [89.15816119870658, 100.0], [86.00693048171614, 116.66666666666674], [86.04810969222216, 66.66666666666663]], "y": [[0.0, 0.0], [21.504871092352655, 150.0], [28.673161456470208, 83.33333333333334], [29.613753637261834, 166.66666666666666], [25.730953311102372, 100.0], [27.311677651096765, 116.66666666666674], [29.613753637261834, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}}, "offset": {"GuardInner": [3.725290298461914e-09, 0.8707519173622131, 0.8854429721832275], "GuardOuter": [0.0, 0.8707519173622131, -0.07262593507766724], "Loop": [0.2532634139060974, 1.4936577081680298, 3.4837722778320312], "Pump": [1.1568772606551647e-09, 0.0, -0.0], "Shell": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "ShellFore": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "Sight": [0.0, 2.104297161102295, 2.990000009536743]}} \ No newline at end of file +{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0], [0.1729116439819336, 183.33333333333337], [0.13706907629966736, 83.33333333333326], [0.13706907629966736, 200.0], [0.08123889565467834, 166.66666666666663], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0], [0.07001475989818573, 183.33333333333337], [0.3594728708267212, 83.33333333333326], [0.3594728708267212, 200.0], [0.052131712436676025, 166.66666666666663], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0], [0.1356278508901596, 183.33333333333337], [0.16076654195785522, 83.33333333333326], [0.16076654195785522, 200.0], [0.13280370831489563, 166.66666666666663], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669], [-1.6187724423744758, 216.66666666666663], [-3.0496036919995886, 100.0], [-1.5771150119048625, 216.66666666666663], [-1.3797563756722266, 133.33333333333348], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669], [6.481160527009576, 216.66666666666663], [6.3670886839075465, 100.0], [2.910396325865089, 216.66666666666663], [2.9018462096847024, 133.33333333333348], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669], [-1.7981676810899783, 216.66666666666663], [-1.8284025806680975, 100.0], [4.424185025436767, 216.66666666666663], [0.5393851613977845, 133.33333333333348], [0.0, 116.66666666666652]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334], [-0.10627399384975433, 49.999999999999886], [-0.7439179420471191, 66.66666666666674], [-0.7439179420471191, 200.0], [-0.18597948551177979, 66.66666666666674], [-0.0, 66.66666666666652]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [-2.204763704938273e-09, 683.3333333333334], [-2.204763704938273e-09, 66.66666666666663], [1.5205265935236412e-09, 116.66666666666674], [-0.01397116482257843, 66.66666666666663], [-0.01397116482257843, 49.999999999999886], [1.5205265935236412e-09, 150.0]], "z": [[1.2549771070480347, 0.0], [1.2549771070480347, 683.3333333333334], [0.4066495895385742, 66.66666666666663], [0.4066495895385742, 116.66666666666674], [0.4519183039665222, 66.66666666666663], [0.4519183039665222, 49.999999999999886], [1.2549771070480347, 150.0]], "y": [[1.7459099292755127, 0.0], [1.199751853942871, 683.3333333333334], [1.199751853942871, 66.66666666666663], [1.5027252435684204, 116.66666666666674], [1.5814520120620728, 66.66666666666663], [1.5814520120620728, 49.999999999999886], [1.7459099292755127, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [-24.580495030325643, 116.66666666666674], [-15.192167789711336, 66.66666666666663], [-15.192167789711336, 49.999999999999886], [0.0, 150.0]], "z": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [0.0, 116.66666666666674], [-9.025331207124422e-09, 66.66666666666663], [-9.025331207124422e-09, 49.999999999999886], [0.0, 150.0]], "y": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [8.004127933608693e-08, 116.66666666666674], [1.31019960381489e-07, 66.66666666666663], [1.31019960381489e-07, 49.999999999999886], [0.0, 150.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "FireEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "Reload": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[1.7611019611358643, 0.0], [1.7662079334259033, 150.0], [1.7611019611358643, 250.0], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 99.99999999999989]], "z": [[0.31467199325561523, 0.0], [0.30754023790359497, 150.0], [0.31467199325561523, 250.0], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 99.99999999999989]], "y": [[0.8750439286231995, 0.0], [0.8376463055610657, 150.0], [0.8750439286231995, 250.0], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 99.99999999999989]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [-20.857867762844858, 250.0], [-18.983153297952903, 100.0], [-20.627756982159838, 116.66666666666669], [-20.258341078257818, 116.66666666666669], [-18.983153297952903, 133.33333333333326]], "z": [[86.04810969222216, 0.0], [87.57263523572567, 250.0], [86.04810969222216, 100.0], [89.15816119870658, 116.66666666666669], [86.00693048171614, 116.66666666666669], [86.04810969222216, 133.33333333333326]], "y": [[29.613753637261834, 0.0], [28.64577410544575, 250.0], [29.613753637261834, 100.0], [25.730953311102372, 116.66666666666669], [27.311677651096765, 116.66666666666669], [29.613753637261834, 133.33333333333326]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}, "ReloadEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [1.2511006593704224, 183.33333333333331], [1.6423077583312988, 216.66666666666669], [1.6554410457611084, 150.0], [1.7105761766433716, 66.66666666666674], [1.7476284503936768, 116.66666666666652], [1.7611019611358643, 133.33333333333348]], "z": [[-0.0, 0.0], [0.26347818970680237, 183.33333333333331], [0.32502928376197815, 216.66666666666669], [0.30153536796569824, 150.0], [0.3000105023384094, 66.66666666666674], [0.3107622563838959, 116.66666666666652], [0.31467199325561523, 133.33333333333348]], "y": [[0.0, 0.0], [0.42658743262290955, 183.33333333333331], [-0.009814918041229248, 216.66666666666669], [-0.1131410151720047, 150.0], [-0.20051059126853943, 66.66666666666674], [0.5882294178009033, 116.66666666666652], [0.8750439286231995, 133.33333333333348]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 116.66666666666667], [-37.38541266737456, 233.33333333333331], [-36.45018560017598, 166.66666666666663], [-30.74254485044399, 66.66666666666674], [-21.750068053366945, 149.9999999999999], [-18.983153297952903, 133.33333333333348]], "z": [[-0.0, 0.0], [32.06710636071164, 116.66666666666667], [40.97562647251089, 233.33333333333331], [38.71689657436601, 166.66666666666663], [32.11341504328433, 66.66666666666674], [73.35759772377095, 149.9999999999999], [86.04810969222216, 133.33333333333348]], "y": [[0.0, 0.0], [21.50487279989995, 116.66666666666667], [44.292741993873435, 233.33333333333331], [46.044774308440914, 166.66666666666663], [49.72028010083778, 66.66666666666674], [34.34470124134409, 149.9999999999999], [29.613753637261834, 133.33333333333348]]}}, "Pump": {"location": {"z": [[-0.0, 83.33333333333333], [-0.10627399384975433, 50.000000000000014], [-0.7439179420471191, 66.66666666666666], [-0.7439179420471191, 483.33333333333337], [-0.18597948551177979, 66.66666666666663], [-0.0, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.8807575702667236, 216.66666666666669], [0.1613924205303192, 216.66666666666669], [0.010319530963897705, 100.0], [2.558298035637563e-07, 83.33333333333337]], "z": [[-2.2731080055236816, 0.0], [-1.77922523021698, 216.66666666666669], [0.5386117100715637, 216.66666666666669], [0.9011819362640381, 100.0], [1.2500436305999756, 83.33333333333337]], "y": [[-1.4170563220977783, 0.0], [-0.7542737126350403, 216.66666666666669], [1.8265879154205322, 216.66666666666669], [1.7011022567749023, 100.0], [1.7520724534988403, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 166.66666666666666], [17.895010248068782, 216.66666666666666], [3.92045772037468, 116.66666666666669], [0.0, 116.66666666666674]], "z": [[0.0, 0.0], [-0.0, 166.66666666666666], [-7.282242678909106, 216.66666666666666], [-2.104055355191472, 116.66666666666669], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 166.66666666666666], [-21.433229238148392, 216.66666666666666], [-7.3901921111938655, 116.66666666666669], [0.0, 116.66666666666674]]}}}, "ReloadEnd": {"Gun": {"location": {"x": [[1.7611019611358643, 0.0], [-0.31797051429748535, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[0.31467199325561523, 0.0], [0.010336088016629219, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[0.8750439286231995, 0.0], [0.0250311940908432, 216.66666666666669], [0.0, 83.33333333333331]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [0.09662330444411844, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[86.04810969222216, 0.0], [-9.502314560125358, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[29.613753637261834, 0.0], [-0.24104249845162748, 216.66666666666669], [0.0, 83.33333333333331]]}}}, "ReloadStart": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[0.0, 0.0], [1.2318342924118042, 183.33333333333331], [1.642445683479309, 83.33333333333337], [1.7611019611358643, 133.33333333333331], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 66.66666666666663]], "z": [[-0.0, 0.0], [0.2732446491718292, 183.33333333333331], [0.36432620882987976, 83.33333333333337], [0.31467199325561523, 133.33333333333331], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 66.66666666666663]], "y": [[0.0, 0.0], [0.7328978776931763, 183.33333333333331], [0.9771971702575684, 83.33333333333337], [0.8750439286231995, 133.33333333333331], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 66.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 150.0], [-19.490018221164963, 83.33333333333334], [-18.983153297952903, 116.66666666666666], [-20.627756982159838, 133.33333333333331], [-20.258341078257818, 100.00000000000006], [-18.983153297952903, 100.0]], "z": [[-0.0, 0.0], [65.44332775888294, 150.0], [87.25777034517726, 83.33333333333334], [86.04810969222216, 116.66666666666666], [89.15816119870658, 133.33333333333331], [86.00693048171614, 100.00000000000006], [86.04810969222216, 100.0]], "y": [[0.0, 0.0], [21.504871092352655, 150.0], [28.673161456470208, 83.33333333333334], [29.613753637261834, 116.66666666666666], [25.730953311102372, 133.33333333333331], [27.311677651096765, 100.00000000000006], [29.613753637261834, 100.0]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}}, "offset": {"GuardInner": [3.725290298461914e-09, 0.8707519173622131, 0.8854429721832275], "GuardOuter": [0.0, 0.8707519173622131, -0.07262593507766724], "Loop": [0.2532634139060974, 1.4936577081680298, 3.4837722778320312], "Pump": [1.1568772606551647e-09, 0.0, -0.0], "Shell": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "ShellFore": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "Sight": [0.0, 2.104297161102295, 2.990000009536743]}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 56d368ce8..902c829c3 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -207,6 +207,7 @@ "weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]}, "weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]}, "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, + "weapon.glShootEmpty": {"category": "player", "sounds": [{"name": "weapon/glShootEmpty", "stream": false}]}, "weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]}, "weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/glShootEmpty.ogg b/src/main/resources/assets/hbm/sounds/weapon/glShootEmpty.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f75be2fe68ee72ee2bf32b82c08993bcb73c57cb GIT binary patch literal 18670 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 N0K*Qr%^M8(_yC~i%S-?O literal 0 HcmV?d00001 From 836e8156c6b589106219cf7634102ff4c7a6a133 Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 26 Feb 2024 14:16:42 +1100 Subject: [PATCH 224/376] whoops, used the old exporter and missed a few CONSTANT keyframes, causing the shells to clip through the barrel on firing --- .../assets/hbm/models/weapons/animations/congolake.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/assets/hbm/models/weapons/animations/congolake.json b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json index 2cd8a1a7b..947b9136f 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/congolake.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json @@ -1 +1 @@ -{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0], [0.1729116439819336, 183.33333333333337], [0.13706907629966736, 83.33333333333326], [0.13706907629966736, 200.0], [0.08123889565467834, 166.66666666666663], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0], [0.07001475989818573, 183.33333333333337], [0.3594728708267212, 83.33333333333326], [0.3594728708267212, 200.0], [0.052131712436676025, 166.66666666666663], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0], [0.1356278508901596, 183.33333333333337], [0.16076654195785522, 83.33333333333326], [0.16076654195785522, 200.0], [0.13280370831489563, 166.66666666666663], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669], [-1.6187724423744758, 216.66666666666663], [-3.0496036919995886, 100.0], [-1.5771150119048625, 216.66666666666663], [-1.3797563756722266, 133.33333333333348], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669], [6.481160527009576, 216.66666666666663], [6.3670886839075465, 100.0], [2.910396325865089, 216.66666666666663], [2.9018462096847024, 133.33333333333348], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669], [-1.7981676810899783, 216.66666666666663], [-1.8284025806680975, 100.0], [4.424185025436767, 216.66666666666663], [0.5393851613977845, 133.33333333333348], [0.0, 116.66666666666652]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334], [-0.10627399384975433, 49.999999999999886], [-0.7439179420471191, 66.66666666666674], [-0.7439179420471191, 200.0], [-0.18597948551177979, 66.66666666666674], [-0.0, 66.66666666666652]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [-2.204763704938273e-09, 683.3333333333334], [-2.204763704938273e-09, 66.66666666666663], [1.5205265935236412e-09, 116.66666666666674], [-0.01397116482257843, 66.66666666666663], [-0.01397116482257843, 49.999999999999886], [1.5205265935236412e-09, 150.0]], "z": [[1.2549771070480347, 0.0], [1.2549771070480347, 683.3333333333334], [0.4066495895385742, 66.66666666666663], [0.4066495895385742, 116.66666666666674], [0.4519183039665222, 66.66666666666663], [0.4519183039665222, 49.999999999999886], [1.2549771070480347, 150.0]], "y": [[1.7459099292755127, 0.0], [1.199751853942871, 683.3333333333334], [1.199751853942871, 66.66666666666663], [1.5027252435684204, 116.66666666666674], [1.5814520120620728, 66.66666666666663], [1.5814520120620728, 49.999999999999886], [1.7459099292755127, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [-24.580495030325643, 116.66666666666674], [-15.192167789711336, 66.66666666666663], [-15.192167789711336, 49.999999999999886], [0.0, 150.0]], "z": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [0.0, 116.66666666666674], [-9.025331207124422e-09, 66.66666666666663], [-9.025331207124422e-09, 49.999999999999886], [0.0, 150.0]], "y": [[0.0, 0.0], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [8.004127933608693e-08, 116.66666666666674], [1.31019960381489e-07, 66.66666666666663], [1.31019960381489e-07, 49.999999999999886], [0.0, 150.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "FireEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "Reload": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[1.7611019611358643, 0.0], [1.7662079334259033, 150.0], [1.7611019611358643, 250.0], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 99.99999999999989]], "z": [[0.31467199325561523, 0.0], [0.30754023790359497, 150.0], [0.31467199325561523, 250.0], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 99.99999999999989]], "y": [[0.8750439286231995, 0.0], [0.8376463055610657, 150.0], [0.8750439286231995, 250.0], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 99.99999999999989]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [-20.857867762844858, 250.0], [-18.983153297952903, 100.0], [-20.627756982159838, 116.66666666666669], [-20.258341078257818, 116.66666666666669], [-18.983153297952903, 133.33333333333326]], "z": [[86.04810969222216, 0.0], [87.57263523572567, 250.0], [86.04810969222216, 100.0], [89.15816119870658, 116.66666666666669], [86.00693048171614, 116.66666666666669], [86.04810969222216, 133.33333333333326]], "y": [[29.613753637261834, 0.0], [28.64577410544575, 250.0], [29.613753637261834, 100.0], [25.730953311102372, 116.66666666666669], [27.311677651096765, 116.66666666666669], [29.613753637261834, 133.33333333333326]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}, "ReloadEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [1.2511006593704224, 183.33333333333331], [1.6423077583312988, 216.66666666666669], [1.6554410457611084, 150.0], [1.7105761766433716, 66.66666666666674], [1.7476284503936768, 116.66666666666652], [1.7611019611358643, 133.33333333333348]], "z": [[-0.0, 0.0], [0.26347818970680237, 183.33333333333331], [0.32502928376197815, 216.66666666666669], [0.30153536796569824, 150.0], [0.3000105023384094, 66.66666666666674], [0.3107622563838959, 116.66666666666652], [0.31467199325561523, 133.33333333333348]], "y": [[0.0, 0.0], [0.42658743262290955, 183.33333333333331], [-0.009814918041229248, 216.66666666666669], [-0.1131410151720047, 150.0], [-0.20051059126853943, 66.66666666666674], [0.5882294178009033, 116.66666666666652], [0.8750439286231995, 133.33333333333348]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 116.66666666666667], [-37.38541266737456, 233.33333333333331], [-36.45018560017598, 166.66666666666663], [-30.74254485044399, 66.66666666666674], [-21.750068053366945, 149.9999999999999], [-18.983153297952903, 133.33333333333348]], "z": [[-0.0, 0.0], [32.06710636071164, 116.66666666666667], [40.97562647251089, 233.33333333333331], [38.71689657436601, 166.66666666666663], [32.11341504328433, 66.66666666666674], [73.35759772377095, 149.9999999999999], [86.04810969222216, 133.33333333333348]], "y": [[0.0, 0.0], [21.50487279989995, 116.66666666666667], [44.292741993873435, 233.33333333333331], [46.044774308440914, 166.66666666666663], [49.72028010083778, 66.66666666666674], [34.34470124134409, 149.9999999999999], [29.613753637261834, 133.33333333333348]]}}, "Pump": {"location": {"z": [[-0.0, 83.33333333333333], [-0.10627399384975433, 50.000000000000014], [-0.7439179420471191, 66.66666666666666], [-0.7439179420471191, 483.33333333333337], [-0.18597948551177979, 66.66666666666663], [-0.0, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.8807575702667236, 216.66666666666669], [0.1613924205303192, 216.66666666666669], [0.010319530963897705, 100.0], [2.558298035637563e-07, 83.33333333333337]], "z": [[-2.2731080055236816, 0.0], [-1.77922523021698, 216.66666666666669], [0.5386117100715637, 216.66666666666669], [0.9011819362640381, 100.0], [1.2500436305999756, 83.33333333333337]], "y": [[-1.4170563220977783, 0.0], [-0.7542737126350403, 216.66666666666669], [1.8265879154205322, 216.66666666666669], [1.7011022567749023, 100.0], [1.7520724534988403, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 166.66666666666666], [17.895010248068782, 216.66666666666666], [3.92045772037468, 116.66666666666669], [0.0, 116.66666666666674]], "z": [[0.0, 0.0], [-0.0, 166.66666666666666], [-7.282242678909106, 216.66666666666666], [-2.104055355191472, 116.66666666666669], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 166.66666666666666], [-21.433229238148392, 216.66666666666666], [-7.3901921111938655, 116.66666666666669], [0.0, 116.66666666666674]]}}}, "ReloadEnd": {"Gun": {"location": {"x": [[1.7611019611358643, 0.0], [-0.31797051429748535, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[0.31467199325561523, 0.0], [0.010336088016629219, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[0.8750439286231995, 0.0], [0.0250311940908432, 216.66666666666669], [0.0, 83.33333333333331]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [0.09662330444411844, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[86.04810969222216, 0.0], [-9.502314560125358, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[29.613753637261834, 0.0], [-0.24104249845162748, 216.66666666666669], [0.0, 83.33333333333331]]}}}, "ReloadStart": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[0.0, 0.0], [1.2318342924118042, 183.33333333333331], [1.642445683479309, 83.33333333333337], [1.7611019611358643, 133.33333333333331], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 66.66666666666663]], "z": [[-0.0, 0.0], [0.2732446491718292, 183.33333333333331], [0.36432620882987976, 83.33333333333337], [0.31467199325561523, 133.33333333333331], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 66.66666666666663]], "y": [[0.0, 0.0], [0.7328978776931763, 183.33333333333331], [0.9771971702575684, 83.33333333333337], [0.8750439286231995, 133.33333333333331], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 66.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 150.0], [-19.490018221164963, 83.33333333333334], [-18.983153297952903, 116.66666666666666], [-20.627756982159838, 133.33333333333331], [-20.258341078257818, 100.00000000000006], [-18.983153297952903, 100.0]], "z": [[-0.0, 0.0], [65.44332775888294, 150.0], [87.25777034517726, 83.33333333333334], [86.04810969222216, 116.66666666666666], [89.15816119870658, 133.33333333333331], [86.00693048171614, 100.00000000000006], [86.04810969222216, 100.0]], "y": [[0.0, 0.0], [21.504871092352655, 150.0], [28.673161456470208, 83.33333333333334], [29.613753637261834, 116.66666666666666], [25.730953311102372, 133.33333333333331], [27.311677651096765, 100.00000000000006], [29.613753637261834, 100.0]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}}, "offset": {"GuardInner": [3.725290298461914e-09, 0.8707519173622131, 0.8854429721832275], "GuardOuter": [0.0, 0.8707519173622131, -0.07262593507766724], "Loop": [0.2532634139060974, 1.4936577081680298, 3.4837722778320312], "Pump": [1.1568772606551647e-09, 0.0, -0.0], "Shell": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "ShellFore": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "Sight": [0.0, 2.104297161102295, 2.990000009536743]}} \ No newline at end of file +{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0], [0.1729116439819336, 183.33333333333337], [0.13706907629966736, 83.33333333333326], [0.13706907629966736, 200.0], [0.08123889565467834, 166.66666666666663], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0], [0.07001475989818573, 183.33333333333337], [0.3594728708267212, 83.33333333333326], [0.3594728708267212, 200.0], [0.052131712436676025, 166.66666666666663], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0], [0.1356278508901596, 183.33333333333337], [0.16076654195785522, 83.33333333333326], [0.16076654195785522, 200.0], [0.13280370831489563, 166.66666666666663], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669], [-1.6187724423744758, 216.66666666666663], [-3.0496036919995886, 100.0], [-1.5771150119048625, 216.66666666666663], [-1.3797563756722266, 133.33333333333348], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669], [6.481160527009576, 216.66666666666663], [6.3670886839075465, 100.0], [2.910396325865089, 216.66666666666663], [2.9018462096847024, 133.33333333333348], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669], [-1.7981676810899783, 216.66666666666663], [-1.8284025806680975, 100.0], [4.424185025436767, 216.66666666666663], [0.5393851613977845, 133.33333333333348], [0.0, 116.66666666666652]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334], [-0.10627399384975433, 49.999999999999886], [-0.7439179420471191, 66.66666666666674], [-0.7439179420471191, 200.0], [-0.18597948551177979, 66.66666666666674], [-0.0, 66.66666666666652]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0, "CONSTANT"], [-2.204763704938273e-09, 683.3333333333334], [-2.204763704938273e-09, 66.66666666666663], [1.5205265935236412e-09, 116.66666666666674], [-0.01397116482257843, 66.66666666666663], [-0.01397116482257843, 49.999999999999886], [1.5205265935236412e-09, 150.0]], "z": [[1.2549771070480347, 0.0, "CONSTANT"], [1.2549771070480347, 683.3333333333334], [0.4066495895385742, 66.66666666666663], [0.4066495895385742, 116.66666666666674], [0.4519183039665222, 66.66666666666663], [0.4519183039665222, 49.999999999999886], [1.2549771070480347, 150.0]], "y": [[1.7459099292755127, 0.0, "CONSTANT"], [1.199751853942871, 683.3333333333334], [1.199751853942871, 66.66666666666663], [1.5027252435684204, 116.66666666666674], [1.5814520120620728, 66.66666666666663], [1.5814520120620728, 49.999999999999886], [1.7459099292755127, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [-24.580495030325643, 116.66666666666674], [-15.192167789711336, 66.66666666666663], [-15.192167789711336, 49.999999999999886], [0.0, 150.0]], "z": [[0.0, 0.0, "CONSTANT"], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [0.0, 116.66666666666674], [-9.025331207124422e-09, 66.66666666666663], [-9.025331207124422e-09, 49.999999999999886], [0.0, 150.0]], "y": [[0.0, 0.0, "CONSTANT"], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [8.004127933608693e-08, 116.66666666666674], [1.31019960381489e-07, 66.66666666666663], [1.31019960381489e-07, 49.999999999999886], [0.0, 150.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "FireEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "Reload": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[1.7611019611358643, 0.0], [1.7662079334259033, 150.0], [1.7611019611358643, 250.0], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 99.99999999999989]], "z": [[0.31467199325561523, 0.0], [0.30754023790359497, 150.0], [0.31467199325561523, 250.0], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 99.99999999999989]], "y": [[0.8750439286231995, 0.0], [0.8376463055610657, 150.0], [0.8750439286231995, 250.0], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 99.99999999999989]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [-20.857867762844858, 250.0], [-18.983153297952903, 100.0], [-20.627756982159838, 116.66666666666669], [-20.258341078257818, 116.66666666666669], [-18.983153297952903, 133.33333333333326]], "z": [[86.04810969222216, 0.0], [87.57263523572567, 250.0], [86.04810969222216, 100.0], [89.15816119870658, 116.66666666666669], [86.00693048171614, 116.66666666666669], [86.04810969222216, 133.33333333333326]], "y": [[29.613753637261834, 0.0], [28.64577410544575, 250.0], [29.613753637261834, 100.0], [25.730953311102372, 116.66666666666669], [27.311677651096765, 116.66666666666669], [29.613753637261834, 133.33333333333326]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}, "ReloadEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [1.2511006593704224, 183.33333333333331], [1.6423077583312988, 216.66666666666669], [1.6554410457611084, 150.0], [1.7105761766433716, 66.66666666666674], [1.7476284503936768, 116.66666666666652], [1.7611019611358643, 133.33333333333348]], "z": [[-0.0, 0.0], [0.26347818970680237, 183.33333333333331], [0.32502928376197815, 216.66666666666669], [0.30153536796569824, 150.0], [0.3000105023384094, 66.66666666666674], [0.3107622563838959, 116.66666666666652], [0.31467199325561523, 133.33333333333348]], "y": [[0.0, 0.0], [0.42658743262290955, 183.33333333333331], [-0.009814918041229248, 216.66666666666669], [-0.1131410151720047, 150.0], [-0.20051059126853943, 66.66666666666674], [0.5882294178009033, 116.66666666666652], [0.8750439286231995, 133.33333333333348]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 116.66666666666667], [-37.38541266737456, 233.33333333333331], [-36.45018560017598, 166.66666666666663], [-30.74254485044399, 66.66666666666674], [-21.750068053366945, 149.9999999999999], [-18.983153297952903, 133.33333333333348]], "z": [[-0.0, 0.0], [32.06710636071164, 116.66666666666667], [40.97562647251089, 233.33333333333331], [38.71689657436601, 166.66666666666663], [32.11341504328433, 66.66666666666674], [73.35759772377095, 149.9999999999999], [86.04810969222216, 133.33333333333348]], "y": [[0.0, 0.0], [21.50487279989995, 116.66666666666667], [44.292741993873435, 233.33333333333331], [46.044774308440914, 166.66666666666663], [49.72028010083778, 66.66666666666674], [34.34470124134409, 149.9999999999999], [29.613753637261834, 133.33333333333348]]}}, "Pump": {"location": {"z": [[-0.0, 83.33333333333333], [-0.10627399384975433, 50.000000000000014], [-0.7439179420471191, 66.66666666666666], [-0.7439179420471191, 483.33333333333337], [-0.18597948551177979, 66.66666666666663], [-0.0, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.8807575702667236, 216.66666666666669], [0.1613924205303192, 216.66666666666669], [0.010319530963897705, 100.0], [2.558298035637563e-07, 83.33333333333337]], "z": [[-2.2731080055236816, 0.0], [-1.77922523021698, 216.66666666666669], [0.5386117100715637, 216.66666666666669], [0.9011819362640381, 100.0], [1.2500436305999756, 83.33333333333337]], "y": [[-1.4170563220977783, 0.0], [-0.7542737126350403, 216.66666666666669], [1.8265879154205322, 216.66666666666669], [1.7011022567749023, 100.0], [1.7520724534988403, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 166.66666666666666], [17.895010248068782, 216.66666666666666], [3.92045772037468, 116.66666666666669], [0.0, 116.66666666666674]], "z": [[0.0, 0.0], [-0.0, 166.66666666666666], [-7.282242678909106, 216.66666666666666], [-2.104055355191472, 116.66666666666669], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 166.66666666666666], [-21.433229238148392, 216.66666666666666], [-7.3901921111938655, 116.66666666666669], [0.0, 116.66666666666674]]}}}, "ReloadEnd": {"Gun": {"location": {"x": [[1.7611019611358643, 0.0], [-0.31797051429748535, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[0.31467199325561523, 0.0], [0.010336088016629219, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[0.8750439286231995, 0.0], [0.0250311940908432, 216.66666666666669], [0.0, 83.33333333333331]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [0.09662330444411844, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[86.04810969222216, 0.0], [-9.502314560125358, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[29.613753637261834, 0.0], [-0.24104249845162748, 216.66666666666669], [0.0, 83.33333333333331]]}}}, "ReloadStart": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[0.0, 0.0], [1.2318342924118042, 183.33333333333331], [1.642445683479309, 83.33333333333337], [1.7611019611358643, 133.33333333333331], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 66.66666666666663]], "z": [[-0.0, 0.0], [0.2732446491718292, 183.33333333333331], [0.36432620882987976, 83.33333333333337], [0.31467199325561523, 133.33333333333331], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 66.66666666666663]], "y": [[0.0, 0.0], [0.7328978776931763, 183.33333333333331], [0.9771971702575684, 83.33333333333337], [0.8750439286231995, 133.33333333333331], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 66.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 150.0], [-19.490018221164963, 83.33333333333334], [-18.983153297952903, 116.66666666666666], [-20.627756982159838, 133.33333333333331], [-20.258341078257818, 100.00000000000006], [-18.983153297952903, 100.0]], "z": [[-0.0, 0.0], [65.44332775888294, 150.0], [87.25777034517726, 83.33333333333334], [86.04810969222216, 116.66666666666666], [89.15816119870658, 133.33333333333331], [86.00693048171614, 100.00000000000006], [86.04810969222216, 100.0]], "y": [[0.0, 0.0], [21.504871092352655, 150.0], [28.673161456470208, 83.33333333333334], [29.613753637261834, 116.66666666666666], [25.730953311102372, 133.33333333333331], [27.311677651096765, 100.00000000000006], [29.613753637261834, 100.0]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}}, "offset": {"GuardInner": [3.725290298461914e-09, 0.8707519173622131, 0.8854429721832275], "GuardOuter": [0.0, 0.8707519173622131, -0.07262593507766724], "Loop": [0.2532634139060974, 1.4936577081680298, 3.4837722778320312], "Pump": [1.1568772606551647e-09, 0.0, -0.0], "Shell": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "ShellFore": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "Sight": [0.0, 2.104297161102295, 2.990000009536743]}} \ No newline at end of file From 7d6bca6d67a85388b9d1d3625e4a8f086efe2282 Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 26 Feb 2024 14:24:00 +1100 Subject: [PATCH 225/376] Trigger a fog update every 3 seconds at maximum, fixing fog colour not blending when standing still --- src/main/java/com/hbm/main/ModEventHandlerRenderer.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index fe35469e1..f70f25270 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -414,13 +414,16 @@ public class ModEventHandlerRenderer { private static int fogZ; private static Vec3 fogRGBMultiplier; private static boolean doesBiomeApply = false; + private static long fogTimer = 0; /** Same procedure as getting the blended sky color but for fog */ public static Vec3 getFogBlendColor(World world, int playerX, int playerZ, float red, float green, float blue, double partialTicks) { - if(playerX == fogX && playerZ == fogZ && fogInit) return fogRGBMultiplier; - + long millis = System.currentTimeMillis() - fogTimer; + if(playerX == fogX && playerZ == fogZ && fogInit && millis < 3000) return fogRGBMultiplier; + fogInit = true; + fogTimer = System.currentTimeMillis(); GameSettings settings = Minecraft.getMinecraft().gameSettings; int[] ranges = ForgeModContainer.blendRanges; int distance = 0; From 9a93570086a81f2796cb1c1e6e02cb156096afde Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 26 Feb 2024 15:03:33 +1100 Subject: [PATCH 226/376] Actually, it looks way better to cycle empty than to wait until the chamber is cleared by reloading (especially since the spent casing doesn't reflect the difference!) --- .../hbm/handler/guncfg/GunGrenadeFactory.java | 1 - .../models/weapons/animations/congolake.json | 2 +- src/main/resources/assets/hbm/sounds.json | 1 - .../assets/hbm/sounds/weapon/glShootEmpty.ogg | Bin 18670 -> 0 bytes 4 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 src/main/resources/assets/hbm/sounds/weapon/glShootEmpty.ogg diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index c396f27dc..1d7f84c1f 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -82,7 +82,6 @@ public class GunGrenadeFactory { config.allowsInfinity = true; config.crosshair = Crosshair.L_CIRCUMFLEX; config.firingSound = "hbm:weapon.glShoot"; - config.firingSoundEmpty = "hbm:weapon.glShootEmpty"; config.reloadSound = GunConfiguration.RSOUND_GRENADE_NEW; config.reloadSoundEnd = false; diff --git a/src/main/resources/assets/hbm/models/weapons/animations/congolake.json b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json index 947b9136f..0fd6911a6 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/congolake.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json @@ -1 +1 @@ -{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0], [0.1729116439819336, 183.33333333333337], [0.13706907629966736, 83.33333333333326], [0.13706907629966736, 200.0], [0.08123889565467834, 166.66666666666663], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0], [0.07001475989818573, 183.33333333333337], [0.3594728708267212, 83.33333333333326], [0.3594728708267212, 200.0], [0.052131712436676025, 166.66666666666663], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0], [0.1356278508901596, 183.33333333333337], [0.16076654195785522, 83.33333333333326], [0.16076654195785522, 200.0], [0.13280370831489563, 166.66666666666663], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669], [-1.6187724423744758, 216.66666666666663], [-3.0496036919995886, 100.0], [-1.5771150119048625, 216.66666666666663], [-1.3797563756722266, 133.33333333333348], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669], [6.481160527009576, 216.66666666666663], [6.3670886839075465, 100.0], [2.910396325865089, 216.66666666666663], [2.9018462096847024, 133.33333333333348], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669], [-1.7981676810899783, 216.66666666666663], [-1.8284025806680975, 100.0], [4.424185025436767, 216.66666666666663], [0.5393851613977845, 133.33333333333348], [0.0, 116.66666666666652]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334], [-0.10627399384975433, 49.999999999999886], [-0.7439179420471191, 66.66666666666674], [-0.7439179420471191, 200.0], [-0.18597948551177979, 66.66666666666674], [-0.0, 66.66666666666652]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0, "CONSTANT"], [-2.204763704938273e-09, 683.3333333333334], [-2.204763704938273e-09, 66.66666666666663], [1.5205265935236412e-09, 116.66666666666674], [-0.01397116482257843, 66.66666666666663], [-0.01397116482257843, 49.999999999999886], [1.5205265935236412e-09, 150.0]], "z": [[1.2549771070480347, 0.0, "CONSTANT"], [1.2549771070480347, 683.3333333333334], [0.4066495895385742, 66.66666666666663], [0.4066495895385742, 116.66666666666674], [0.4519183039665222, 66.66666666666663], [0.4519183039665222, 49.999999999999886], [1.2549771070480347, 150.0]], "y": [[1.7459099292755127, 0.0, "CONSTANT"], [1.199751853942871, 683.3333333333334], [1.199751853942871, 66.66666666666663], [1.5027252435684204, 116.66666666666674], [1.5814520120620728, 66.66666666666663], [1.5814520120620728, 49.999999999999886], [1.7459099292755127, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [-24.580495030325643, 116.66666666666674], [-15.192167789711336, 66.66666666666663], [-15.192167789711336, 49.999999999999886], [0.0, 150.0]], "z": [[0.0, 0.0, "CONSTANT"], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [0.0, 116.66666666666674], [-9.025331207124422e-09, 66.66666666666663], [-9.025331207124422e-09, 49.999999999999886], [0.0, 150.0]], "y": [[0.0, 0.0, "CONSTANT"], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [8.004127933608693e-08, 116.66666666666674], [1.31019960381489e-07, 66.66666666666663], [1.31019960381489e-07, 49.999999999999886], [0.0, 150.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "FireEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "Reload": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[1.7611019611358643, 0.0], [1.7662079334259033, 150.0], [1.7611019611358643, 250.0], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 99.99999999999989]], "z": [[0.31467199325561523, 0.0], [0.30754023790359497, 150.0], [0.31467199325561523, 250.0], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 99.99999999999989]], "y": [[0.8750439286231995, 0.0], [0.8376463055610657, 150.0], [0.8750439286231995, 250.0], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 99.99999999999989]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [-20.857867762844858, 250.0], [-18.983153297952903, 100.0], [-20.627756982159838, 116.66666666666669], [-20.258341078257818, 116.66666666666669], [-18.983153297952903, 133.33333333333326]], "z": [[86.04810969222216, 0.0], [87.57263523572567, 250.0], [86.04810969222216, 100.0], [89.15816119870658, 116.66666666666669], [86.00693048171614, 116.66666666666669], [86.04810969222216, 133.33333333333326]], "y": [[29.613753637261834, 0.0], [28.64577410544575, 250.0], [29.613753637261834, 100.0], [25.730953311102372, 116.66666666666669], [27.311677651096765, 116.66666666666669], [29.613753637261834, 133.33333333333326]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}, "ReloadEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [1.2511006593704224, 183.33333333333331], [1.6423077583312988, 216.66666666666669], [1.6554410457611084, 150.0], [1.7105761766433716, 66.66666666666674], [1.7476284503936768, 116.66666666666652], [1.7611019611358643, 133.33333333333348]], "z": [[-0.0, 0.0], [0.26347818970680237, 183.33333333333331], [0.32502928376197815, 216.66666666666669], [0.30153536796569824, 150.0], [0.3000105023384094, 66.66666666666674], [0.3107622563838959, 116.66666666666652], [0.31467199325561523, 133.33333333333348]], "y": [[0.0, 0.0], [0.42658743262290955, 183.33333333333331], [-0.009814918041229248, 216.66666666666669], [-0.1131410151720047, 150.0], [-0.20051059126853943, 66.66666666666674], [0.5882294178009033, 116.66666666666652], [0.8750439286231995, 133.33333333333348]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 116.66666666666667], [-37.38541266737456, 233.33333333333331], [-36.45018560017598, 166.66666666666663], [-30.74254485044399, 66.66666666666674], [-21.750068053366945, 149.9999999999999], [-18.983153297952903, 133.33333333333348]], "z": [[-0.0, 0.0], [32.06710636071164, 116.66666666666667], [40.97562647251089, 233.33333333333331], [38.71689657436601, 166.66666666666663], [32.11341504328433, 66.66666666666674], [73.35759772377095, 149.9999999999999], [86.04810969222216, 133.33333333333348]], "y": [[0.0, 0.0], [21.50487279989995, 116.66666666666667], [44.292741993873435, 233.33333333333331], [46.044774308440914, 166.66666666666663], [49.72028010083778, 66.66666666666674], [34.34470124134409, 149.9999999999999], [29.613753637261834, 133.33333333333348]]}}, "Pump": {"location": {"z": [[-0.0, 83.33333333333333], [-0.10627399384975433, 50.000000000000014], [-0.7439179420471191, 66.66666666666666], [-0.7439179420471191, 483.33333333333337], [-0.18597948551177979, 66.66666666666663], [-0.0, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.8807575702667236, 216.66666666666669], [0.1613924205303192, 216.66666666666669], [0.010319530963897705, 100.0], [2.558298035637563e-07, 83.33333333333337]], "z": [[-2.2731080055236816, 0.0], [-1.77922523021698, 216.66666666666669], [0.5386117100715637, 216.66666666666669], [0.9011819362640381, 100.0], [1.2500436305999756, 83.33333333333337]], "y": [[-1.4170563220977783, 0.0], [-0.7542737126350403, 216.66666666666669], [1.8265879154205322, 216.66666666666669], [1.7011022567749023, 100.0], [1.7520724534988403, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 166.66666666666666], [17.895010248068782, 216.66666666666666], [3.92045772037468, 116.66666666666669], [0.0, 116.66666666666674]], "z": [[0.0, 0.0], [-0.0, 166.66666666666666], [-7.282242678909106, 216.66666666666666], [-2.104055355191472, 116.66666666666669], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 166.66666666666666], [-21.433229238148392, 216.66666666666666], [-7.3901921111938655, 116.66666666666669], [0.0, 116.66666666666674]]}}}, "ReloadEnd": {"Gun": {"location": {"x": [[1.7611019611358643, 0.0], [-0.31797051429748535, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[0.31467199325561523, 0.0], [0.010336088016629219, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[0.8750439286231995, 0.0], [0.0250311940908432, 216.66666666666669], [0.0, 83.33333333333331]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [0.09662330444411844, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[86.04810969222216, 0.0], [-9.502314560125358, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[29.613753637261834, 0.0], [-0.24104249845162748, 216.66666666666669], [0.0, 83.33333333333331]]}}}, "ReloadStart": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[0.0, 0.0], [1.2318342924118042, 183.33333333333331], [1.642445683479309, 83.33333333333337], [1.7611019611358643, 133.33333333333331], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 66.66666666666663]], "z": [[-0.0, 0.0], [0.2732446491718292, 183.33333333333331], [0.36432620882987976, 83.33333333333337], [0.31467199325561523, 133.33333333333331], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 66.66666666666663]], "y": [[0.0, 0.0], [0.7328978776931763, 183.33333333333331], [0.9771971702575684, 83.33333333333337], [0.8750439286231995, 133.33333333333331], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 66.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 150.0], [-19.490018221164963, 83.33333333333334], [-18.983153297952903, 116.66666666666666], [-20.627756982159838, 133.33333333333331], [-20.258341078257818, 100.00000000000006], [-18.983153297952903, 100.0]], "z": [[-0.0, 0.0], [65.44332775888294, 150.0], [87.25777034517726, 83.33333333333334], [86.04810969222216, 116.66666666666666], [89.15816119870658, 133.33333333333331], [86.00693048171614, 100.00000000000006], [86.04810969222216, 100.0]], "y": [[0.0, 0.0], [21.504871092352655, 150.0], [28.673161456470208, 83.33333333333334], [29.613753637261834, 116.66666666666666], [25.730953311102372, 133.33333333333331], [27.311677651096765, 100.00000000000006], [29.613753637261834, 100.0]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}}, "offset": {"GuardInner": [3.725290298461914e-09, 0.8707519173622131, 0.8854429721832275], "GuardOuter": [0.0, 0.8707519173622131, -0.07262593507766724], "Loop": [0.2532634139060974, 1.4936577081680298, 3.4837722778320312], "Pump": [1.1568772606551647e-09, 0.0, -0.0], "Shell": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "ShellFore": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "Sight": [0.0, 2.104297161102295, 2.990000009536743]}} \ No newline at end of file +{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0], [0.1729116439819336, 183.33333333333337], [0.13706907629966736, 83.33333333333326], [0.13706907629966736, 200.0], [0.08123889565467834, 166.66666666666663], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0], [0.07001475989818573, 183.33333333333337], [0.3594728708267212, 83.33333333333326], [0.3594728708267212, 200.0], [0.052131712436676025, 166.66666666666663], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0], [0.1356278508901596, 183.33333333333337], [0.16076654195785522, 83.33333333333326], [0.16076654195785522, 200.0], [0.13280370831489563, 166.66666666666663], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669], [-1.6187724423744758, 216.66666666666663], [-3.0496036919995886, 100.0], [-1.5771150119048625, 216.66666666666663], [-1.3797563756722266, 133.33333333333348], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669], [6.481160527009576, 216.66666666666663], [6.3670886839075465, 100.0], [2.910396325865089, 216.66666666666663], [2.9018462096847024, 133.33333333333348], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669], [-1.7981676810899783, 216.66666666666663], [-1.8284025806680975, 100.0], [4.424185025436767, 216.66666666666663], [0.5393851613977845, 133.33333333333348], [0.0, 116.66666666666652]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334], [-0.10627399384975433, 49.999999999999886], [-0.7439179420471191, 66.66666666666674], [-0.7439179420471191, 200.0], [-0.18597948551177979, 66.66666666666674], [-0.0, 66.66666666666652]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0, "CONSTANT"], [-2.204763704938273e-09, 683.3333333333334], [-2.204763704938273e-09, 66.66666666666663], [1.5205265935236412e-09, 116.66666666666674], [-0.01397116482257843, 66.66666666666663], [-0.01397116482257843, 49.999999999999886], [1.5205265935236412e-09, 150.0]], "z": [[1.2549771070480347, 0.0, "CONSTANT"], [1.2549771070480347, 683.3333333333334], [0.4066495895385742, 66.66666666666663], [0.4066495895385742, 116.66666666666674], [0.4519183039665222, 66.66666666666663], [0.4519183039665222, 49.999999999999886], [1.2549771070480347, 150.0]], "y": [[1.7459099292755127, 0.0, "CONSTANT"], [1.199751853942871, 683.3333333333334], [1.199751853942871, 66.66666666666663], [1.5027252435684204, 116.66666666666674], [1.5814520120620728, 66.66666666666663], [1.5814520120620728, 49.999999999999886], [1.7459099292755127, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [-24.580495030325643, 116.66666666666674], [-15.192167789711336, 66.66666666666663], [-15.192167789711336, 49.999999999999886], [0.0, 150.0]], "z": [[0.0, 0.0, "CONSTANT"], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [0.0, 116.66666666666674], [-9.025331207124422e-09, 66.66666666666663], [-9.025331207124422e-09, 49.999999999999886], [0.0, 150.0]], "y": [[0.0, 0.0, "CONSTANT"], [0.0, 683.3333333333334], [0.0, 66.66666666666663], [8.004127933608693e-08, 116.66666666666674], [1.31019960381489e-07, 66.66666666666663], [1.31019960381489e-07, 49.999999999999886], [0.0, 150.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "FireEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [0.0, 50.0], [-0.015234995633363724, 133.33333333333331], [-0.0032073669135570526, 166.66666666666669], [0.0, 150.0], [0.1729116439819336, 183.33333333333337], [0.13706907629966736, 83.33333333333326], [0.13706907629966736, 200.0], [0.08123889565467834, 166.66666666666663], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.7130982875823975, 50.0], [-0.8931010961532593, 133.33333333333331], [-0.1880212426185608, 166.66666666666669], [-0.0, 150.0], [0.07001475989818573, 183.33333333333337], [0.3594728708267212, 83.33333333333326], [0.3594728708267212, 200.0], [0.052131712436676025, 166.66666666666663], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [-0.05462139472365379, 50.0], [0.33006909489631653, 133.33333333333331], [0.06948822736740112, 166.66666666666669], [0.0, 150.0], [0.1356278508901596, 183.33333333333337], [0.16076654195785522, 83.33333333333326], [0.16076654195785522, 200.0], [0.13280370831489563, 166.66666666666663], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.533829083941263, 83.33333333333333], [-6.777895961066664, 133.33333333333337], [-1.4269255553586289, 166.66666666666663], [0.0, 116.66666666666669], [-1.6187724423744758, 216.66666666666663], [-3.0496036919995886, 100.0], [-1.5771150119048625, 216.66666666666663], [-1.3797563756722266, 133.33333333333348], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [0.20789931232904474, 83.33333333333333], [-0.2137078679498249, 133.33333333333337], [-0.04499113641374835, 166.66666666666663], [-0.0, 116.66666666666669], [6.481160527009576, 216.66666666666663], [6.3670886839075465, 100.0], [2.910396325865089, 216.66666666666663], [2.9018462096847024, 133.33333333333348], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.299797573280649, 83.33333333333333], [-0.3922261210480681, 133.33333333333337], [-0.08257391881641295, 166.66666666666663], [0.0, 116.66666666666669], [-1.7981676810899783, 216.66666666666663], [-1.8284025806680975, 100.0], [4.424185025436767, 216.66666666666663], [0.5393851613977845, 133.33333333333348], [0.0, 116.66666666666652]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0], [28.83552188323058, 50.0], [-11.070683087911195, 50.0], [-2.56723823045354, 33.33333333333334], [7.0765451287518255, 49.99999999999997], [80.15762477840892, 116.66666666666669], [60.820607917294126, 50.0], [-0.0, 83.33333333333337]]}, "location": {"x": [[0.2532634139060974, 0.0]], "z": [[3.4837722778320312, 0.0]], "y": [[1.4936577081680298, 0.0]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334], [-0.10627399384975433, 49.999999999999886], [-0.7439179420471191, 66.66666666666674], [-0.7439179420471191, 200.0], [-0.18597948551177979, 66.66666666666674], [-0.0, 66.66666666666652]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0]], "z": [[1.2549771070480347, 0.0]], "y": [[-4.465472221374512, 0.0]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0], [-10.132303034637006, 50.0], [0.0, 33.33333333333333], [0.0, 99.99999999999999], [-7.955241708397972, 83.33333333333337], [-10.701222787779573, 99.99999999999994], [0.0, 116.66666666666669]]}, "location": {"x": [[0.0, 0.0]], "z": [[2.990000009536743, 0.0]], "y": [[2.104297161102295, 0.0]]}}}, "Reload": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[1.7611019611358643, 0.0], [1.7662079334259033, 150.0], [1.7611019611358643, 250.0], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 99.99999999999989]], "z": [[0.31467199325561523, 0.0], [0.30754023790359497, 150.0], [0.31467199325561523, 250.0], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 99.99999999999989]], "y": [[0.8750439286231995, 0.0], [0.8376463055610657, 150.0], [0.8750439286231995, 250.0], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 99.99999999999989]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [-20.857867762844858, 250.0], [-18.983153297952903, 100.0], [-20.627756982159838, 116.66666666666669], [-20.258341078257818, 116.66666666666669], [-18.983153297952903, 133.33333333333326]], "z": [[86.04810969222216, 0.0], [87.57263523572567, 250.0], [86.04810969222216, 100.0], [89.15816119870658, 116.66666666666669], [86.00693048171614, 116.66666666666669], [86.04810969222216, 133.33333333333326]], "y": [[29.613753637261834, 0.0], [28.64577410544575, 250.0], [29.613753637261834, 100.0], [25.730953311102372, 116.66666666666669], [27.311677651096765, 116.66666666666669], [29.613753637261834, 133.33333333333326]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}, "ReloadEmpty": {"Gun": {"location": {"x": [[0.0, 0.0], [1.2511006593704224, 183.33333333333331], [1.6423077583312988, 216.66666666666669], [1.6554410457611084, 150.0], [1.7105761766433716, 66.66666666666674], [1.7476284503936768, 116.66666666666652], [1.7611019611358643, 133.33333333333348]], "z": [[-0.0, 0.0], [0.26347818970680237, 183.33333333333331], [0.32502928376197815, 216.66666666666669], [0.30153536796569824, 150.0], [0.3000105023384094, 66.66666666666674], [0.3107622563838959, 116.66666666666652], [0.31467199325561523, 133.33333333333348]], "y": [[0.0, 0.0], [0.42658743262290955, 183.33333333333331], [-0.009814918041229248, 216.66666666666669], [-0.1131410151720047, 150.0], [-0.20051059126853943, 66.66666666666674], [0.5882294178009033, 116.66666666666652], [0.8750439286231995, 133.33333333333348]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 116.66666666666667], [-37.38541266737456, 233.33333333333331], [-36.45018560017598, 166.66666666666663], [-30.74254485044399, 66.66666666666674], [-21.750068053366945, 149.9999999999999], [-18.983153297952903, 133.33333333333348]], "z": [[-0.0, 0.0], [32.06710636071164, 116.66666666666667], [40.97562647251089, 233.33333333333331], [38.71689657436601, 166.66666666666663], [32.11341504328433, 66.66666666666674], [73.35759772377095, 149.9999999999999], [86.04810969222216, 133.33333333333348]], "y": [[0.0, 0.0], [21.50487279989995, 116.66666666666667], [44.292741993873435, 233.33333333333331], [46.044774308440914, 166.66666666666663], [49.72028010083778, 66.66666666666674], [34.34470124134409, 149.9999999999999], [29.613753637261834, 133.33333333333348]]}}, "Pump": {"location": {"z": [[-0.0, 83.33333333333333], [-0.10627399384975433, 50.000000000000014], [-0.7439179420471191, 66.66666666666666], [-0.7439179420471191, 483.33333333333337], [-0.18597948551177979, 66.66666666666663], [-0.0, 66.66666666666663]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.8807575702667236, 216.66666666666669], [0.1613924205303192, 216.66666666666669], [0.010319530963897705, 100.0], [2.558298035637563e-07, 83.33333333333337]], "z": [[-2.2731080055236816, 0.0], [-1.77922523021698, 216.66666666666669], [0.5386117100715637, 216.66666666666669], [0.9011819362640381, 100.0], [1.2500436305999756, 83.33333333333337]], "y": [[-1.4170563220977783, 0.0], [-0.7542737126350403, 216.66666666666669], [1.8265879154205322, 216.66666666666669], [1.7011022567749023, 100.0], [1.7520724534988403, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 166.66666666666666], [17.895010248068782, 216.66666666666666], [3.92045772037468, 116.66666666666669], [0.0, 116.66666666666674]], "z": [[0.0, 0.0], [-0.0, 166.66666666666666], [-7.282242678909106, 216.66666666666666], [-2.104055355191472, 116.66666666666669], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 166.66666666666666], [-21.433229238148392, 216.66666666666666], [-7.3901921111938655, 116.66666666666669], [0.0, 116.66666666666674]]}}}, "ReloadEnd": {"Gun": {"location": {"x": [[1.7611019611358643, 0.0], [-0.31797051429748535, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[0.31467199325561523, 0.0], [0.010336088016629219, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[0.8750439286231995, 0.0], [0.0250311940908432, 216.66666666666669], [0.0, 83.33333333333331]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0], [0.09662330444411844, 216.66666666666669], [0.0, 83.33333333333331]], "z": [[86.04810969222216, 0.0], [-9.502314560125358, 216.66666666666669], [-0.0, 83.33333333333331]], "y": [[29.613753637261834, 0.0], [-0.24104249845162748, 216.66666666666669], [0.0, 83.33333333333331]]}}}, "ReloadStart": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0]], "z": [[0.8854429721832275, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [16.02038116054145, 83.33333333333337], [23.71116221314476, 83.33333333333326], [23.71116221314476, 66.66666666666674], [0.0, 83.33333333333326]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0]], "z": [[-0.07262593507766724, 0.0]], "y": [[0.8707519173622131, 0.0]]}, "rotation_euler": {"x": [[0.0, 350.0], [-17.139458137176558, 83.33333333333337], [-29.355340260203572, 83.33333333333326], [-29.355340260203572, 100.00000000000011], [0.0, 99.99999999999989]]}}, "Gun": {"location": {"x": [[0.0, 0.0], [1.2318342924118042, 183.33333333333331], [1.642445683479309, 83.33333333333337], [1.7611019611358643, 133.33333333333331], [1.613909363746643, 100.0], [1.7571532726287842, 116.66666666666674], [1.7611019611358643, 66.66666666666663]], "z": [[-0.0, 0.0], [0.2732446491718292, 183.33333333333331], [0.36432620882987976, 83.33333333333337], [0.31467199325561523, 133.33333333333331], [0.4306454658508301, 100.0], [0.3806498050689697, 116.66666666666674], [0.31467199325561523, 66.66666666666663]], "y": [[0.0, 0.0], [0.7328978776931763, 183.33333333333331], [0.9771971702575684, 83.33333333333337], [0.8750439286231995, 133.33333333333331], [1.1308174133300781, 100.0], [1.108587384223938, 116.66666666666674], [0.8750439286231995, 66.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-14.617513238986898, 150.0], [-19.490018221164963, 83.33333333333334], [-18.983153297952903, 116.66666666666666], [-20.627756982159838, 133.33333333333331], [-20.258341078257818, 100.00000000000006], [-18.983153297952903, 100.0]], "z": [[-0.0, 0.0], [65.44332775888294, 150.0], [87.25777034517726, 83.33333333333334], [86.04810969222216, 116.66666666666666], [89.15816119870658, 133.33333333333331], [86.00693048171614, 100.00000000000006], [86.04810969222216, 100.0]], "y": [[0.0, 0.0], [21.504871092352655, 150.0], [28.673161456470208, 83.33333333333334], [29.613753637261834, 116.66666666666666], [25.730953311102372, 133.33333333333331], [27.311677651096765, 100.00000000000006], [29.613753637261834, 100.0]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0], [1.5205265935236412e-09, 216.66666666666669], [3.600797242597764e-07, 133.33333333333331], [1.9156854591528827e-07, 83.33333333333337], [2.418599649445241e-07, 83.33333333333326], [2.3999731979529315e-07, 100.00000000000011]], "z": [[-2.2731080055236816, 0.0], [-2.2731080055236816, 216.66666666666669], [0.2386959344148636, 133.33333333333331], [0.33605021238327026, 83.33333333333337], [0.4338737428188324, 83.33333333333326], [1.2500436305999756, 100.00000000000011]], "y": [[-1.4170563220977783, 0.0], [-1.4170563220977783, 216.66666666666669], [0.5333303213119507, 133.33333333333331], [0.8954256176948547, 83.33333333333337], [1.1207358837127686, 83.33333333333326], [1.2056175470352173, 100.00000000000011]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-23.121160227355304, 133.33333333333331], [-14.526026270149163, 83.33333333333337], [-5.042295800981765, 83.33333333333326], [0.0, 100.00000000000011]], "z": [[0.0, 0.0], [-0.0, 216.66666666666669], [-0.0, 133.33333333333331], [2.551953161995936e-07, 83.33333333333337], [7.134593799244011e-07, 83.33333333333326], [-0.0, 100.00000000000011]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [1.7075472925031877e-06, 133.33333333333331], [1.688370023551335e-06, 83.33333333333337], [1.6331417525071545e-06, 83.33333333333326], [0.0, 100.00000000000011]]}}}}, "offset": {"GuardInner": [3.725290298461914e-09, 0.8707519173622131, 0.8854429721832275], "GuardOuter": [0.0, 0.8707519173622131, -0.07262593507766724], "Loop": [0.2532634139060974, 1.4936577081680298, 3.4837722778320312], "Pump": [1.1568772606551647e-09, 0.0, -0.0], "Shell": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "ShellFore": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "Sight": [0.0, 2.104297161102295, 2.990000009536743]}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 902c829c3..56d368ce8 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -207,7 +207,6 @@ "weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]}, "weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]}, "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, - "weapon.glShootEmpty": {"category": "player", "sounds": [{"name": "weapon/glShootEmpty", "stream": false}]}, "weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]}, "weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/glShootEmpty.ogg b/src/main/resources/assets/hbm/sounds/weapon/glShootEmpty.ogg deleted file mode 100644 index f75be2fe68ee72ee2bf32b82c08993bcb73c57cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18670 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 N0K*Qr%^M8(_yC~i%S-?O From 5f02b92a31f4b3b4f560ecd3c51f856d27d1fcc3 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 26 Feb 2024 21:30:50 +0100 Subject: [PATCH 227/376] fuck it whatever --- src/main/java/com/hbm/main/ModEventHandler.java | 2 +- .../com/hbm/world/gen/NTMWorldGenerator.java | 2 +- .../textures/models/launchpad/silo_rusted.png | Bin 0 -> 5381 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/launchpad/silo_rusted.png diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index edd594447..4f472a6d3 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1079,7 +1079,7 @@ public class ModEventHandler { for(int k = 0; k < 5; k++) { vec.rotateAroundY((float) (1F * Math.PI / 180D)); - player.worldObj.spawnParticle("townaura", player.posX + vec.xCoord, player.posY + 1 + player.worldObj.rand.nextDouble() * 0.05, player.posZ + vec.zCoord, 0.0, 0.0, 0.0); + //player.worldObj.spawnParticle("townaura", player.posX + vec.xCoord, player.posY + 1 + player.worldObj.rand.nextDouble() * 0.05, player.posZ + vec.zCoord, 0.0, 0.0, 0.0); } } diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 9b7883dc9..34efa8ea1 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -49,7 +49,7 @@ public class NTMWorldGenerator implements IWorldGenerator { setRandomSeed(event.world, event.chunkX, event.chunkZ); //Set random for population down the line. hasPopulationEvent = true; - if(!StructureConfig.enableStructures) return; + if(!StructureConfig.enableStructures || !event.world.getWorldInfo().isMapFeaturesEnabled()) return; switch (event.world.provider.dimensionId) { case -1: diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/silo_rusted.png b/src/main/resources/assets/hbm/textures/models/launchpad/silo_rusted.png new file mode 100644 index 0000000000000000000000000000000000000000..9a423adaf853a05be19102fba013d44a6f4ad014 GIT binary patch literal 5381 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 literal 0 HcmV?d00001 From f43456b459d184d3abb95d05fa6dc8b762d67d3b Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 27 Feb 2024 16:54:11 +0100 Subject: [PATCH 228/376] more fluid trait crap --- changelog | 6 + .../com/hbm/config/FalloutConfigJSON.java | 4 +- .../handler/pollution/PollutionHandler.java | 2 + .../com/hbm/inventory/fluid/FluidType.java | 27 ++-- .../java/com/hbm/inventory/fluid/Fluids.java | 133 ++++++++++-------- .../inventory/fluid/trait/FT_Pheromone.java | 47 +++---- .../hbm/inventory/fluid/trait/FluidTrait.java | 56 ++++---- .../com/hbm/world/feature/BedrockOre.java | 4 +- 8 files changed, 156 insertions(+), 123 deletions(-) diff --git a/changelog b/changelog index 249f85271..98a2da525 100644 --- a/changelog +++ b/changelog @@ -12,8 +12,14 @@ * Batch sizes for water and heavy water have been doubled, effectively increasing throughout 6x * The throughput for electrolysis on chemical plants has been halved (but heavy water still has the output buff, effectively remaining unchanged) * Custom machines now have an optional localization field which allows translations to be added within the config +* The congo lake now has reload and better firing animations +* Improved shift clicking for centrifuges, acidizers, electric furnace, arc furnaces and arc welders +* Schrabidium transmutation by fallout is now limited to the inner 40% of the sellafite conversion radius +* Fluid traits are now listed in a fixed order instead of being arranged randomly +* Hidden fluid trait descriptions will now be added below the visible part of that trait instead of below the last visible trait ## Fixed * Fixed the structure toggle on the world creation screen not working correctly on most world types * Fixed antiknock having a broken sprite and localization * Fixed crash caused by fallout affecting spotlight blocks, crashing the game +* Fixed 528 mode bedrock ore replacements not working diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index 4d415a994..f50eabe76 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -84,8 +84,8 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 3), new Triplet(ModBlocks.ore_sellafield_emerald, m, 2)) .c(0.5) .max(i * 5).sol(true).mB(Blocks.coal_ore)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 1)) .c(0.2) .max(i * 5).sol(true).mB(ModBlocks.ore_lignite)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_emerald, m, 1)) .max(i * 5).sol(true).mB(ModBlocks.ore_beryllium)); - entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); - entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); + if(m <= 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); + if(m <= 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_radgem, m, 1)) .max(i * 5).sol(true).mB(Blocks.diamond_ore)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.rock)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.sand)); diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index e012c54d2..129194363 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -44,6 +44,8 @@ public class PollutionHandler { public static final float SOOT_PER_SECOND = 1F / 25F; /** Baserate of heavy metal generation, balanced around the soot values of combustion engines */ public static final float HEAVY_METAL_PER_SECOND = 1F / 50F; + /** Baserate for poison when spilled */ + public static final float POISON_PER_SECOND = 1F / 50F; public static Vec3 targetCoords; /////////////////////// diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 7b954fd49..b669899c3 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Locale; -import java.util.Map.Entry; import org.lwjgl.input.Keyboard; @@ -210,23 +209,23 @@ public class FluidType { if(temperature > 0) info.add(EnumChatFormatting.RED + "" + temperature + "°C"); } + boolean shiftHeld = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT); + List hidden = new ArrayList(); - for(Entry, FluidTrait> entry : this.traits.entrySet()) { - entry.getValue().addInfo(info); - entry.getValue().addInfoHidden(hidden); + for(Class clazz : FluidTrait.traitList) { + FluidTrait trait = this.getTrait(clazz); + if(trait != null) { + trait.addInfo(info); + if(shiftHeld) trait.addInfoHidden(info); + trait.addInfoHidden(hidden); + } } - if(!hidden.isEmpty()) { - - if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - info.addAll(hidden); - } else { - - info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); - } + if(!hidden.isEmpty() && shiftHeld) { + info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); } } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 4e224f561..8a2c09a26 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -13,6 +13,8 @@ import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.lib.ModDamageSource; @@ -192,6 +194,23 @@ public class Fluids { public static final FT_Leaded LEADED = new FT_Leaded(); public static final FT_Unsiphonable UNSIPHONABLE = new FT_Unsiphonable(); + /* Burns 4x dirtier than regular fuel */ + public static final float SOOT_UNREFINED_OIL = PollutionHandler.SOOT_PER_SECOND * 0.1F; + /* Original baseline, used for most fuels */ + public static final float SOOT_REFINED_OIL = PollutionHandler.SOOT_PER_SECOND * 0.025F; + /* Gasses burn very cleanly */ + public static final float SOOT_GAS = PollutionHandler.SOOT_PER_SECOND * 0.005F; + /* Original baseline for leaded fuels */ + public static final float LEAD_FUEL = PollutionHandler.HEAVY_METAL_PER_SECOND * 0.025F; + /* Poison stat for most petrochemicals */ + public static final float POISON_OIL = PollutionHandler.POISON_PER_SECOND * 0.025F; + + public static final FT_Polluting P_OIL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_UNREFINED_OIL).release(PollutionType.POISON, POISON_OIL); + public static final FT_Polluting P_FUEL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).release(PollutionType.POISON, POISON_OIL); + public static final FT_Polluting P_FUEL_LEADED = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).burn(PollutionType.HEAVYMETAL, LEAD_FUEL).release(PollutionType.POISON, POISON_OIL); + public static final FT_Polluting P_GAS = new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS); + public static final FT_Polluting P_LIQUID_GAS = new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS * 2F); + public static void init() { // ##### ##### ##### ##### ## # ##### # # ##### ## # ##### @@ -217,25 +236,25 @@ public class Fluids { LAVA = new FluidType("LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200).addTraits(LIQUID, VISCOUS); DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS); TRITIUM = new FluidType("TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS, new FT_VentRadiation(0.001F)); - OIL = new FluidType("OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); - HEAVYOIL = new FluidType("HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x513F39)).addTraits(new FT_Flammable(50_000), new FT_Combustible(FuelGrade.LOW, 25_000), LIQUID, VISCOUS); - BITUMEN = new FluidType("BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5A5877)).addTraits(LIQUID, VISCOUS); - SMEAR = new FluidType("SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x624F3B)).addTraits(new FT_Flammable(50_000), LIQUID, VISCOUS); - HEATINGOIL = new FluidType("HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x694235)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.LOW, 100_000), LIQUID, VISCOUS); - RECLAIMED = new FluidType("RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF65723)).addTraits(new FT_Flammable(100_000), new FT_Combustible(FuelGrade.LOW, 200_000), LIQUID, VISCOUS); - PETROIL = new FluidType("PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2369F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 300_000), LIQUID); - LUBRICANT = new FluidType("LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF1CC05)).addTraits(LIQUID); - NAPHTHA = new FluidType("NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS); - DIESEL = new FluidType("DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 500_000), LIQUID); - LIGHTOIL = new FluidType("LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID); - KEROSENE = new FluidType("KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF377D)).addTraits(new FT_Flammable(300_000), new FT_Combustible(FuelGrade.AERO, 1_250_000), LIQUID); - GAS = new FluidType("GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFF4545, 0xFFE97F)).addTraits(new FT_Flammable(10_000), GASEOUS); - PETROLEUM = new FluidType("PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x5E7CFF, 0xFFE97F)).addTraits(new FT_Flammable(25_000), GASEOUS); - LPG = new FluidType("LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID); - BIOGAS = new FluidType("BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xC8FF1F, 0x303030)).addTraits(new FT_Flammable(25_000), GASEOUS); - BIOFUEL = new FluidType("BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x9EB623)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID); - NITAN = new FluidType("NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).addContainers(new CD_Canister(0x6B238C)).addTraits(new FT_Flammable(2_000_000), new FT_Combustible(FuelGrade.HIGH, 5_000_000), LIQUID); + OIL = new FluidType("OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS, P_OIL); + HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); + HEAVYOIL = new FluidType("HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x513F39)).addTraits(new FT_Flammable(50_000), new FT_Combustible(FuelGrade.LOW, 25_000), LIQUID, VISCOUS, P_OIL); + BITUMEN = new FluidType("BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5A5877)).addTraits(LIQUID, VISCOUS, P_OIL); + SMEAR = new FluidType("SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x624F3B)).addTraits(new FT_Flammable(50_000), LIQUID, VISCOUS, P_OIL); + HEATINGOIL = new FluidType("HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x694235)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.LOW, 100_000), LIQUID, VISCOUS, P_OIL); + RECLAIMED = new FluidType("RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF65723)).addTraits(new FT_Flammable(100_000), new FT_Combustible(FuelGrade.LOW, 200_000), LIQUID, VISCOUS, P_FUEL); + PETROIL = new FluidType("PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2369F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 300_000), LIQUID, P_FUEL); + LUBRICANT = new FluidType("LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF1CC05)).addTraits(LIQUID, P_OIL); + NAPHTHA = new FluidType("NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS, P_FUEL); + DIESEL = new FluidType("DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 500_000), LIQUID, P_FUEL); + LIGHTOIL = new FluidType("LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID, P_FUEL); + KEROSENE = new FluidType("KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF377D)).addTraits(new FT_Flammable(300_000), new FT_Combustible(FuelGrade.AERO, 1_250_000), LIQUID, P_FUEL); + GAS = new FluidType("GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFF4545, 0xFFE97F)).addTraits(new FT_Flammable(10_000), GASEOUS, P_GAS); + PETROLEUM = new FluidType("PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x5E7CFF, 0xFFE97F)).addTraits(new FT_Flammable(25_000), GASEOUS, P_GAS); + LPG = new FluidType("LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID, P_LIQUID_GAS); + BIOGAS = new FluidType("BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xC8FF1F, 0x303030)).addTraits(new FT_Flammable(25_000), GASEOUS, P_GAS); + BIOFUEL = new FluidType("BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x9EB623)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID, P_FUEL); + NITAN = new FluidType("NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).addContainers(new CD_Canister(0x6B238C)).addTraits(new FT_Flammable(2_000_000), new FT_Combustible(FuelGrade.HIGH, 5_000_000), LIQUID, P_FUEL); UF6 = new FluidType("UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.2F), new FT_Corrosive(15), GASEOUS); PUF6 = new FluidType("PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.1F), new FT_Corrosive(15), GASEOUS); SAS3 = new FluidType("SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(1F), new FT_Corrosive(30), LIQUID); @@ -248,13 +267,13 @@ public class Fluids { HYDROGEN = new FluidType("HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setTemp(-260).addContainers(new CD_Gastank(0x4286f4, 0xffffff)).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), LIQUID, EVAP); OXYGEN = new FluidType("OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC).setTemp(-100).addContainers(new CD_Gastank(0x98bdf9, 0xffffff)).addTraits(LIQUID, EVAP); XENON = new FluidType("XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT).addContainers(new CD_Gastank(0x8C21FF, 0x303030)).addTraits(GASEOUS); - BALEFIRE = new FluidType("BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(new FT_Corrosive(50), new FT_Flammable(1_000_000), new FT_Combustible(FuelGrade.HIGH, 2_500_000), LIQUID, VISCOUS); + BALEFIRE = new FluidType("BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(new FT_Corrosive(50), new FT_Flammable(1_000_000), new FT_Combustible(FuelGrade.HIGH, 2_500_000), LIQUID, VISCOUS, P_FUEL); MERCURY = new FluidType("MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Poison(false, 2)); PAIN = new FluidType("PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(30), new FT_Poison(true, 2), LIQUID, VISCOUS); WASTEFLUID = new FluidType("WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, LIQUID, VISCOUS); WASTEGAS = new FluidType("WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, GASEOUS); - GASOLINE = new FluidType("GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F7747)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_000_000), LIQUID); - COALGAS = new FluidType("COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 150_000), LIQUID); + GASOLINE = new FluidType("GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F7747)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_000_000), LIQUID, P_FUEL); + COALGAS = new FluidType("COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 150_000), LIQUID, P_FUEL); SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(NOCON, GASEOUS); FRACKSOL = new FluidType("FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addContainers(new CD_Canister(0x4F887F)).addTraits(new FT_Corrosive(15), new FT_Poison(false, 0), LIQUID, VISCOUS); PLASMA_DT = new FluidType("PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(NOCON, NOID, PLASMA); @@ -266,28 +285,28 @@ public class Fluids { PLASMA_DH3 = new FluidType("PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(NOCON, NOID, PLASMA); HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); DEATH = new FluidType("DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(80), new FT_Poison(true, 4), LEADCON, LIQUID, VISCOUS); - ETHANOL = new FluidType("ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xEAFFF3)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.HIGH, 200_000), LIQUID); + ETHANOL = new FluidType("ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xEAFFF3)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.HIGH, 200_000), LIQUID, P_FUEL); HEAVYWATER = new FluidType("HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - CRACKOIL = new FluidType("CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - COALOIL = new FluidType("COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); - NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS); - LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID); - DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID); - AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), LIQUID, VISCOUS); - UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS); //acetylene burns as hot as satan's asshole + CRACKOIL = new FluidType("CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS, P_OIL); + COALOIL = new FluidType("COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS, P_OIL); + HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); + NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS, P_FUEL); + LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID, P_FUEL); + DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID, P_FUEL); + AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), LIQUID, VISCOUS, P_GAS); + UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS, P_GAS); //acetylene burns as hot as satan's asshole SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS); XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, LEADED); - GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, LEADED); - COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, LEADED); + PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, LEADED, P_FUEL_LEADED); + GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, LEADED, P_FUEL_LEADED); + COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, LEADED, P_FUEL_LEADED); SULFURIC_ACID = new FluidType("SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(new FT_Corrosive(50), LIQUID); COOLANT_HOT = new FluidType("COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); MUG = new FluidType("MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID); MUG_HOT = new FluidType("MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setTemp(500).addTraits(DELICIOUS, LIQUID); - WOODOIL = new FluidType("WOODOIL", 0x847D54, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xBF7E4F)).addTraits(LIQUID, VISCOUS); - COALCREOSOTE = new FluidType("COALCREOSOTE", 0x51694F, 3, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x285A3F)).addTraits(LIQUID, VISCOUS); + WOODOIL = new FluidType("WOODOIL", 0x847D54, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xBF7E4F)).addTraits(LIQUID, VISCOUS, P_OIL); + COALCREOSOTE = new FluidType("COALCREOSOTE", 0x51694F, 3, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x285A3F)).addTraits(LIQUID, VISCOUS, P_OIL); SEEDSLURRY = new FluidType("SEEDSLURRY", 0x7CC35E, 0, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x7CC35E)).addTraits(LIQUID, VISCOUS); NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60)); SOLVENT = new FluidType("SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xE4E3EF)).addTraits(LIQUID, new FT_Corrosive(30)); @@ -297,28 +316,28 @@ public class Fluids { OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F)); CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25)); - HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0x513F39)); - REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0xD180D6)); - LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xB46B52)); - SOURGAS = new FluidType("SOURGAS", 0xC9BE0D, 4, 4, 0, EnumSymbol.ACID).addContainers(new CD_Gastank(0xC9BE0D, 0x303030)).addTraits(GASEOUS, new FT_Corrosive(10), new FT_Poison(false, 1)); - XYLENE = new FluidType("XYLENE", 0x5C4E76, 2, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0xA380D6)); - HEATINGOIL_VACUUM = new FluidType("HEATINGOIL_VACUUM", 0x211D06, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0x694235)); - DIESEL_REFORM = new FluidType("DIESEL_REFORM", 0xCDC3C6, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFFC500)); - DIESEL_CRACK_REFORM = new FluidType("DIESEL_CRACK_REFORM",0xCDC3CC, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFFC500)); - KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFF377D)); - REFORMGAS = new FluidType("REFORMGAS", 0x6362AE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x9392FF, 0xFFB992)).addTraits(GASEOUS); + HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL).addContainers(new CD_Canister(0x513F39)); + REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_FUEL).addContainers(new CD_Canister(0xD180D6)); + LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xB46B52)); + SOURGAS = new FluidType("SOURGAS", 0xC9BE0D, 4, 4, 0, EnumSymbol.ACID).addContainers(new CD_Gastank(0xC9BE0D, 0x303030)).addTraits(GASEOUS, new FT_Corrosive(10), new FT_Poison(false, 1), P_GAS); + XYLENE = new FluidType("XYLENE", 0x5C4E76, 2, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_FUEL).addContainers(new CD_Canister(0xA380D6)); + HEATINGOIL_VACUUM = new FluidType("HEATINGOIL_VACUUM", 0x211D06, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL).addContainers(new CD_Canister(0x694235)); + DIESEL_REFORM = new FluidType("DIESEL_REFORM", 0xCDC3C6, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xFFC500)); + DIESEL_CRACK_REFORM = new FluidType("DIESEL_CRACK_REFORM",0xCDC3CC, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xFFC500)); + KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xFF377D)); + REFORMGAS = new FluidType("REFORMGAS", 0x6362AE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x9392FF, 0xFFB992)).addTraits(GASEOUS, P_GAS); COLLOID = new FluidType("COLLOID", 0x787878, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS); MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS); IONGEL = new FluidType("IONGEL", 0xB8FFFF, 1, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - OIL_COKER = new FluidType("OIL_COKER", 0x001802, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - NAPHTHA_COKER = new FluidType("NAPHTHA_COKER", 0x495944, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - GAS_COKER = new FluidType("GAS_COKER", 0xDEF4CA, 1, 4, 0, EnumSymbol.NONE).addTraits(GASEOUS); + OIL_COKER = new FluidType("OIL_COKER", 0x001802, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL); + NAPHTHA_COKER = new FluidType("NAPHTHA_COKER", 0x495944, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL); + GAS_COKER = new FluidType("GAS_COKER", 0xDEF4CA, 1, 4, 0, EnumSymbol.NONE).addTraits(GASEOUS, P_GAS); EGG = new FluidType("EGG", 0xD2C273, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); CHOLESTEROL = new FluidType("CHOLESTEROL", 0xD6D2BD, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); + FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL); + SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL); NITROGLYCERIN = new FluidType("NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); REDMUD = new FluidType("REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); CHLOROCALCITE_SOLUTION = new FluidType("CHLOROCALCITE_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); @@ -340,12 +359,12 @@ public class Fluids { FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1)); PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2)); - OIL_DS = new FluidType("OIL_DS", 0x121212, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS); - HOTOIL_DS = new FluidType("HOTOIL_DS", 0x3F180F, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); - CRACKOIL_DS = new FluidType("CRACKOIL_DS", 0x2A1C11, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS); - HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x3A1A28, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); - NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x63614E, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(LIQUID, VISCOUS); - LIGHTOIL_DS = new FluidType(138, "LIGHTOIL_DS", 0x63543E, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(LIQUID); + OIL_DS = new FluidType("OIL_DS", 0x121212, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS, P_OIL); + HOTOIL_DS = new FluidType("HOTOIL_DS", 0x3F180F, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); + CRACKOIL_DS = new FluidType("CRACKOIL_DS", 0x2A1C11, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS, P_OIL); + HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x3A1A28, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); + NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x63614E, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(LIQUID, VISCOUS, P_FUEL); + LIGHTOIL_DS = new FluidType(138, "LIGHTOIL_DS", 0x63543E, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(LIQUID, P_FUEL); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java index 4ebfc8e5c..52e467d6f 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java @@ -10,34 +10,33 @@ import java.util.List; public class FT_Pheromone extends FluidTrait{ - public int type; + public int type; - public FT_Pheromone(int type){ - this.type = type; - } + public FT_Pheromone(int type) { + this.type = type; + } - public int getType() { - return type; - } + public int getType() { + return type; + } - @Override - public void addInfo(List info) { + @Override + public void addInfo(List info) { - if (type == 1) { - info.add(EnumChatFormatting.AQUA + "[Glyphid Pheromones]"); - } else { - info.add(EnumChatFormatting.BLUE + "[Modified Pheromones]"); - } + if(type == 1) { + info.add(EnumChatFormatting.AQUA + "[Glyphid Pheromones]"); + } else { + info.add(EnumChatFormatting.BLUE + "[Modified Pheromones]"); + } + } - } - @Override - public void serializeJSON(JsonWriter writer) throws IOException { - writer.name("type").value(type); - } - - @Override - public void deserializeJSON(JsonObject obj) { - this.type = obj.get("type").getAsInt(); - } + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("type").value(type); + } + @Override + public void deserializeJSON(JsonObject obj) { + this.type = obj.get("type").getAsInt(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index 6b6d8d449..042f72378 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -1,6 +1,7 @@ package com.hbm.inventory.fluid.trait; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import com.google.common.collect.HashBiMap; @@ -13,33 +14,40 @@ import net.minecraft.world.World; public abstract class FluidTrait { + public static List> traitList = new ArrayList(); public static HashBiMap> traitNameMap = HashBiMap.create(); static { - traitNameMap.put("combustible", FT_Combustible.class); // x - traitNameMap.put("coolable", FT_Coolable.class); // x - traitNameMap.put("corrosive", FT_Corrosive.class); // x - traitNameMap.put("flammable", FT_Flammable.class); // x - traitNameMap.put("heatable", FT_Heatable.class); // x - traitNameMap.put("poison", FT_Poison.class); // x - traitNameMap.put("toxin", FT_Toxin.class); // x - traitNameMap.put("ventradiation", FT_VentRadiation.class); // x - traitNameMap.put("pwrmoderator", FT_PWRModerator.class); // x - traitNameMap.put("polluting", FT_Polluting.class); // x - - traitNameMap.put("gaseous", FT_Gaseous.class); - traitNameMap.put("gaseous_art", FT_Gaseous_ART.class); - traitNameMap.put("liquid", FT_Liquid.class); - traitNameMap.put("viscous", FT_Viscous.class); - traitNameMap.put("plasma", FT_Plasma.class); - traitNameMap.put("amat", FT_Amat.class); - traitNameMap.put("leadcontainer", FT_LeadContainer.class); - traitNameMap.put("delicious", FT_Delicious.class); - traitNameMap.put("leaded", FT_Leaded.class); - traitNameMap.put("pheromone", FT_Pheromone.class); - traitNameMap.put("noid", FT_NoID.class); - traitNameMap.put("nocontainer", FT_NoContainer.class); - traitNameMap.put("unsiphonable", FT_Unsiphonable.class); + //complex traits with values + registerTrait("corrosive", FT_Corrosive.class); + registerTrait("flammable", FT_Flammable.class); + registerTrait("combustible", FT_Combustible.class); + registerTrait("polluting", FT_Polluting.class); + registerTrait("heatable", FT_Heatable.class); + registerTrait("coolable", FT_Coolable.class); + registerTrait("pwrmoderator", FT_PWRModerator.class); + registerTrait("poison", FT_Poison.class); + registerTrait("toxin", FT_Toxin.class); + registerTrait("ventradiation", FT_VentRadiation.class); + registerTrait("pheromone", FT_Pheromone.class); + //simple traits, "tags" + registerTrait("gaseous", FT_Gaseous.class); + registerTrait("gaseous_art", FT_Gaseous_ART.class); + registerTrait("liquid", FT_Liquid.class); + registerTrait("viscous", FT_Viscous.class); + registerTrait("plasma", FT_Plasma.class); + registerTrait("amat", FT_Amat.class); + registerTrait("leadcontainer", FT_LeadContainer.class); + registerTrait("delicious", FT_Delicious.class); + registerTrait("leaded", FT_Leaded.class); + registerTrait("noid", FT_NoID.class); + registerTrait("nocontainer", FT_NoContainer.class); + registerTrait("unsiphonable", FT_Unsiphonable.class); + } + + private static void registerTrait(String name, Class clazz) { + traitNameMap.put(name, clazz); + traitList.add(clazz); } /** Important information that should always be displayed */ diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 1b7318610..953b13a85 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -51,8 +51,8 @@ public class BedrockOre { registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(ModItems.powder_fire, 4), 1, 0xD7341F), WorldConfig.bedrockPhosphorusSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.quartz, 4), 1, 0xF0EFDD), WorldConfig.bedrockQuartzSpawn); - replacements.put(EnumBedrockOre.IRON.oreName, new BedrockOreDefinition(EnumBedrockOre.HEMATITE, 1)); - replacements.put(EnumBedrockOre.COPPER.oreName, new BedrockOreDefinition(EnumBedrockOre.MALACHITE, 1)); + replacements.put("ore" + EnumBedrockOre.IRON.oreName, new BedrockOreDefinition(EnumBedrockOre.HEMATITE, 1)); + replacements.put("ore" + EnumBedrockOre.COPPER.oreName, new BedrockOreDefinition(EnumBedrockOre.MALACHITE, 1)); } public static void registerBedrockOre(List list, BedrockOreDefinition def, int weight) { From 0c8ee5aa196b90c6e095118f5a5a8bc9d666531c Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 28 Feb 2024 21:01:07 +0100 Subject: [PATCH 229/376] toasters, crappy screens --- src/main/java/com/hbm/blocks/ModBlocks.java | 10 +- .../com/hbm/blocks/generic/BlockDecoCRT.java | 76 +++++++ .../hbm/blocks/generic/BlockDecoToaster.java | 93 +++++++++ src/main/java/com/hbm/main/ClientProxy.java | 2 + .../com/hbm/main/ModEventHandlerClient.java | 5 + .../java/com/hbm/main/ResourceManager.java | 2 + .../render/block/RenderBlockDecoModel.java | 2 +- .../java/com/hbm/render/block/RenderCRT.java | 83 ++++++++ .../com/hbm/render/block/RenderToaster.java | 80 ++++++++ .../java/com/hbm/render/util/ObjUtil.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/models/blocks/crt.obj | 126 ++++++++++++ .../assets/hbm/models/blocks/toaster.obj | 186 ++++++++++++++++++ .../hbm/textures/blocks/crt_blinking.png | Bin 0 -> 397 bytes .../textures/blocks/crt_blinking.png.mcmeta | 5 + .../assets/hbm/textures/blocks/crt_broken.png | Bin 0 -> 644 bytes .../assets/hbm/textures/blocks/crt_bsod.png | Bin 0 -> 418 bytes .../assets/hbm/textures/blocks/crt_clean.png | Bin 0 -> 397 bytes 19 files changed, 673 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockDecoCRT.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockDecoToaster.java create mode 100644 src/main/java/com/hbm/render/block/RenderCRT.java create mode 100644 src/main/java/com/hbm/render/block/RenderToaster.java create mode 100644 src/main/resources/assets/hbm/models/blocks/crt.obj create mode 100644 src/main/resources/assets/hbm/models/blocks/toaster.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/crt_blinking.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/crt_blinking.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/crt_broken.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crt_bsod.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crt_clean.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8982db906..9cd303ffe 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -434,8 +434,10 @@ public class ModBlocks { public static Block brick_forgotten; public static Block brick_red; - + public static Block deco_computer; + public static Block deco_crt; + public static Block deco_toaster; public static Block filing_cabinet; @@ -1670,6 +1672,8 @@ public class ModBlocks { brick_red = new BlockRedBrick(Material.rock).setBlockName("brick_red").setResistance(10_000); deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer"); + deco_crt = new BlockDecoCRT(Material.iron).setBlockName("deco_crt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + deco_toaster = new BlockDecoToaster(Material.iron).setBlockName("deco_toaster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); filing_cabinet = new BlockDecoContainer(Material.iron, DecoCabinetEnum.class, true, false, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); tape_recorder = new DecoTapeRecorder(Material.iron).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder"); @@ -2884,7 +2888,9 @@ public class ModBlocks { GameRegistry.registerBlock(brick_jungle_circle, brick_jungle_circle.getUnlocalizedName()); GameRegistry.registerBlock(brick_forgotten, brick_forgotten.getUnlocalizedName()); GameRegistry.registerBlock(brick_red, brick_red.getUnlocalizedName()); - GameRegistry.registerBlock(deco_computer, ItemBlockBase.class, deco_computer.getUnlocalizedName()); + register(deco_computer); + register(deco_crt); + register(deco_toaster); GameRegistry.registerBlock(filing_cabinet, ItemBlockBase.class, filing_cabinet.getUnlocalizedName()); GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName()); GameRegistry.registerBlock(steel_poles, steel_poles.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoCRT.java b/src/main/java/com/hbm/blocks/generic/BlockDecoCRT.java new file mode 100644 index 000000000..724912ed3 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoCRT.java @@ -0,0 +1,76 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockMulti; +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockDecoCRT extends BlockMulti { + + protected String[] variants = new String[] {"crt_clean", "crt_broken", "crt_blinking", "crt_bsod"}; + @SideOnly(Side.CLIENT) protected IIcon[] icons; + + public BlockDecoCRT(Material mat) { + super(mat); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType(){ + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.icons = new IIcon[variants.length]; + + for(int i = 0; i < variants.length; i++) { + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + variants[i]); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return this.icons[damageDropped(meta)]; + } + + @Override + public int damageDropped(int meta) { + return (Math.abs(meta) % 16) / 4; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + int meta = stack.getItemDamage(); + world.setBlockMetadataWithNotify(x, y, z, meta * 4 + i, 2); + } + + @Override + public int getSubCount() { + return 4; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoToaster.java b/src/main/java/com/hbm/blocks/generic/BlockDecoToaster.java new file mode 100644 index 000000000..a11061fa0 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoToaster.java @@ -0,0 +1,93 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockMulti; +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockDecoToaster extends BlockMulti { + + protected String[] variants = new String[] {"toaster_iron", "toaster_steel", "toaster_wood"}; + @SideOnly(Side.CLIENT) protected IIcon[] icons; + + public BlockDecoToaster(Material mat) { + super(mat); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType(){ + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.icons = new IIcon[variants.length]; + + for(int i = 0; i < variants.length; i++) { + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + variants[i]); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return this.icons[damageDropped(meta)]; + } + + @Override + public int damageDropped(int meta) { + return (Math.abs(meta) % 12) / 4; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + int meta = stack.getItemDamage(); + world.setBlockMetadataWithNotify(x, y, z, meta * 4 + i, 2); + } + + @Override + public int getSubCount() { + return 3; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + if(meta % 2 == 0) + this.setBlockBounds(0.25F, 0.0F, 0.375F, 0.75F, 0.325F, 0.625F); + else + this.setBlockBounds(0.375F, 0.0F, 0.25F, 0.625F, 0.325F, 0.75F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a28dc0c35..6ec66cd6a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -850,6 +850,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderCapacitor()); RenderingRegistry.registerBlockHandler(new RenderPedestal()); RenderingRegistry.registerBlockHandler(new RenderLight()); + RenderingRegistry.registerBlockHandler(new RenderCRT()); + RenderingRegistry.registerBlockHandler(new RenderToaster()); RenderingRegistry.registerBlockHandler(new RenderFoundryBasin()); RenderingRegistry.registerBlockHandler(new RenderFoundryMold()); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index bdbcb5a77..cbe28fedb 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -215,6 +215,11 @@ public class ModEventHandlerClient { } else if(world.getBlock(mop.blockX, mop.blockY, mop.blockZ) instanceof ILookOverlay) { ((ILookOverlay) world.getBlock(mop.blockX, mop.blockY, mop.blockZ)).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); } + + List text = new ArrayList(); + text.add("Meta: " + world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ)); + ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text); + } else if(mop.typeOfHit == mop.typeOfHit.ENTITY) { Entity entity = mop.entityHit; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 7d8bd7d01..9b53c0e47 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1472,6 +1472,8 @@ public class ResourceManager { public static final IModelCustom pipe_quad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_quad.obj")); public static final IModelCustom pipe_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_frame.obj")); public static final IModelCustom rtty = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rtty.obj")); + public static final IModelCustom crt = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crt.obj")); + public static final IModelCustom toaster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/toaster.obj")); public static final IModelCustom deco_computer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/puter.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java b/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java index 171cba047..d0441fa3a 100644 --- a/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java +++ b/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java @@ -38,7 +38,7 @@ public class RenderBlockDecoModel implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, 0.1D, 0); GL11.glScaled(1.2D, 1.2D, 1.2D); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, modelId, false); + ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, 0, false); tessellator.draw(); diff --git a/src/main/java/com/hbm/render/block/RenderCRT.java b/src/main/java/com/hbm/render/block/RenderCRT.java new file mode 100644 index 000000000..a048efafc --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderCRT.java @@ -0,0 +1,83 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockDecoCRT; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderCRT implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, metadata * 4); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crt, iicon, tessellator, (float) Math.PI * -0.5F, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z)); + + int brightness = block.getMixedBrightnessForBlock(world, x, y, z); + tessellator.setBrightness(brightness); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + float rotation = 0; + int metaOrig = world.getBlockMetadata(x, y, z); + int meta = metaOrig % 4; + + switch(meta) { + default: rotation = 0.5F * (float) Math.PI; break; + case 1: break; + case 2: rotation = 1.5F * (float) Math.PI; break; + case 3: rotation = (float) Math.PI; break; + } + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crt, "Monitor", iicon, tessellator, rotation, true); + if(metaOrig >= 8) tessellator.setBrightness(240); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crt, "Screen", iicon, tessellator, rotation, true); + tessellator.setBrightness(brightness); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockDecoCRT.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderToaster.java b/src/main/java/com/hbm/render/block/RenderToaster.java new file mode 100644 index 000000000..a5938e20c --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderToaster.java @@ -0,0 +1,80 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockDecoToaster; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderToaster implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, metadata * 4); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.25, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.toaster, iicon, tessellator, (float) Math.PI * -0.5F, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z)); + + int brightness = block.getMixedBrightnessForBlock(world, x, y, z); + tessellator.setBrightness(brightness); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + float rotation = 0; + int metaOrig = world.getBlockMetadata(x, y, z); + int meta = metaOrig % 4; + + switch(meta) { + default: rotation = 0.5F * (float) Math.PI; break; + case 1: break; + case 2: rotation = 1.5F * (float) Math.PI; break; + case 3: rotation = (float) Math.PI; break; + } + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.toaster, iicon, tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockDecoToaster.renderID; + } +} diff --git a/src/main/java/com/hbm/render/util/ObjUtil.java b/src/main/java/com/hbm/render/util/ObjUtil.java index fd94f75bd..69bb79457 100644 --- a/src/main/java/com/hbm/render/util/ObjUtil.java +++ b/src/main/java/com/hbm/render/util/ObjUtil.java @@ -131,7 +131,7 @@ public class ObjUtil { // The shoddy way of rendering a tringulated model with a quad // tessellator - if(i % 3 == 2) + if(f.vertices.length == 3 && i % 3 == 2) tes.addVertexWithUV(x, y, z, icon.getInterpolatedU(t.u * 16D), icon.getInterpolatedV(t.v * 16D)); } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 27a5fadc8..ab40acd89 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3851,6 +3851,8 @@ tile.crystal_virus.name=Dunkler Kristall tile.deco_aluminium.name=Aluminium-Dekoblock tile.deco_asbestos.name=Asbestdach tile.deco_beryllium.name=Beryllium-Dekoblock +tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL +tile.deco_crt.name=Alter Röhrenbildschirm tile.deco_emitter.name=Deko-Lichtemitter tile.deco_lead.name=Blei-Dekoblock tile.deco_rbmk.name=RBMK-Dekoblock @@ -3882,6 +3884,7 @@ tile.deco_pipe_rim_red.name=Rotes Stahlrohr mit Rand tile.deco_pipe_rim_marked.name=Gasrohr mit Rand tile.deco_steel.name=Stahl-Dekoblock tile.deco_titanium.name=Titan-Dekoblock +tile.deco_toaster.name=Kaputter Toaster tile.deco_tungsten.name=Wolfram-Dekoblock tile.decon.name=Spieler-Dekontaminierer tile.depth_brick.name=Tiefenziegel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3038841af..a05ca79fe 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4848,6 +4848,7 @@ tile.deco_aluminium.name=Aluminium Deco Block tile.deco_asbestos.name=Asbestos Roof tile.deco_beryllium.name=Beryllium Deco Block tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL +tile.deco_crt.name=Old CRT Screen tile.deco_emitter.name=Deco Light Emitter tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block @@ -4879,6 +4880,7 @@ tile.deco_pipe_rim_red.name=Red Steel Pipe (Rimmed) tile.deco_pipe_rim_marked.name=Gas Pipe (Rimmed) tile.deco_steel.name=Steel Deco Block tile.deco_titanium.name=Titanium Deco Block +tile.deco_toaster.name=Broken Toaster tile.deco_tungsten.name=Tungsten Deco Block tile.decon.name=Player Decontaminator tile.depth_brick.name=Depth Bricks diff --git a/src/main/resources/assets/hbm/models/blocks/crt.obj b/src/main/resources/assets/hbm/models/blocks/crt.obj new file mode 100644 index 000000000..402e7d9ed --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/crt.obj @@ -0,0 +1,126 @@ +# Blender v2.79 (sub 0) OBJ File: 'crt.blend' +# www.blender.org +o Screen +v 0.437500 0.875000 -0.375000 +v 0.437500 0.875000 0.375000 +v 0.437500 0.125000 -0.375000 +v 0.437500 0.125000 0.375000 +vt 0.437500 0.437500 +vt 0.062500 0.062500 +vt 0.437500 0.062500 +vt 0.062500 0.437500 +vn 1.0000 0.0000 0.0000 +s off +f 1/1/1 4/2/1 3/3/1 +f 1/1/1 2/4/1 4/2/1 +o Monitor +v 0.000000 1.000000 -0.500000 +v 0.000000 1.000000 0.500000 +v 0.000000 0.000000 -0.500000 +v 0.000000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 0.125000 0.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.875000 0.375000 +v 0.500000 0.875000 -0.375000 +v 0.437500 0.125000 0.375000 +v 0.437500 0.125000 -0.375000 +v 0.437500 0.875000 0.375000 +v 0.437500 0.875000 -0.375000 +v -0.500000 0.250000 0.250000 +v -0.500000 0.250000 -0.250000 +v -0.500000 0.750000 0.250000 +v -0.500000 0.750000 -0.250000 +vt 1.000000 0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.000000 +vt 0.031250 0.062500 +vt 0.062500 0.437500 +vt 0.031250 0.437500 +vt 0.500000 0.500000 +vt 0.437500 0.062500 +vt 0.500000 0.000000 +vt 0.062500 0.062500 +vt 0.000000 0.000000 +vt 0.062500 0.437500 +vt 0.000000 0.500000 +vt 0.437500 0.437500 +vt 0.062500 0.468750 +vt 0.437500 0.437500 +vt 0.437500 0.468750 +vt 0.468750 0.437500 +vt 0.437500 0.062500 +vt 0.468750 0.062500 +vt 0.437500 0.031250 +vt 0.062500 0.062500 +vt 0.062500 0.031250 +vt 1.000000 0.000000 +vt 0.500000 0.250000 +vt 1.000000 0.000000 +vt 0.500000 0.250000 +vt 0.500000 -0.000000 +vt 1.000000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.000000 +vt 0.625000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 1.000000 0.250000 +vt 0.625000 0.500000 +vt 1.000000 0.250000 +vt 0.625000 0.500000 +vt 1.000000 0.250000 +vt 0.625000 0.500000 +vt 1.000000 0.250000 +vt 0.625000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.4472 0.0000 -0.8944 +vn -0.4472 -0.8944 0.0000 +vn -0.4472 0.0000 0.8944 +vn -0.4472 0.8944 0.0000 +s off +f 10/5/2 5/6/2 12/7/2 +f 13/8/2 19/9/2 15/10/2 +f 12/11/3 14/12/3 10/13/3 +f 10/13/3 13/14/3 9/15/3 +f 9/15/3 15/16/3 11/17/3 +f 11/17/3 16/18/3 12/11/3 +f 15/19/4 20/20/4 16/21/4 +f 16/22/5 18/23/5 14/24/5 +f 14/25/6 17/26/6 13/27/6 +f 9/28/4 7/29/4 10/13/4 +f 11/30/5 8/31/5 9/32/5 +f 12/33/6 6/34/6 11/35/6 +f 21/36/7 24/37/7 22/38/7 +f 7/39/8 24/40/8 5/6/8 +f 8/41/9 22/42/9 7/29/9 +f 6/43/10 21/44/10 8/31/10 +f 5/45/11 23/46/11 6/34/11 +f 10/5/2 7/39/2 5/6/2 +f 13/8/2 17/26/2 19/9/2 +f 12/11/3 16/18/3 14/12/3 +f 10/13/3 14/12/3 13/14/3 +f 9/15/3 13/14/3 15/16/3 +f 11/17/3 15/16/3 16/18/3 +f 15/19/4 19/9/4 20/20/4 +f 16/22/5 20/20/5 18/23/5 +f 14/25/6 18/23/6 17/26/6 +f 9/28/4 8/41/4 7/29/4 +f 11/30/5 6/43/5 8/31/5 +f 12/33/6 5/45/6 6/34/6 +f 21/36/7 23/46/7 24/37/7 +f 7/39/8 22/47/8 24/40/8 +f 8/41/9 21/48/9 22/42/9 +f 6/43/10 23/49/10 21/44/10 +f 5/45/11 24/37/11 23/46/11 diff --git a/src/main/resources/assets/hbm/models/blocks/toaster.obj b/src/main/resources/assets/hbm/models/blocks/toaster.obj new file mode 100644 index 000000000..f43798c79 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/toaster.obj @@ -0,0 +1,186 @@ +# Blender v2.79 (sub 0) OBJ File: 'toaster.blend' +# www.blender.org +o Plane +v 0.093750 0.312500 -0.125000 +v 0.031250 0.312500 -0.125000 +v 0.093750 0.312500 0.125000 +v 0.031250 0.312500 0.125000 +v -0.125000 0.000000 0.250000 +v 0.125000 0.000000 0.250000 +v -0.125000 0.000000 -0.250000 +v 0.125000 0.000000 -0.250000 +v -0.125000 0.250000 0.250000 +v 0.125000 0.250000 0.250000 +v -0.125000 0.250000 -0.250000 +v 0.125000 0.250000 -0.250000 +v -0.125000 0.312500 0.187500 +v 0.125000 0.312500 0.187500 +v -0.125000 0.312500 -0.187500 +v 0.125000 0.312500 -0.187500 +v -0.031250 0.312500 -0.125000 +v -0.093750 0.312500 -0.125000 +v -0.031250 0.312500 0.125000 +v -0.093750 0.312500 0.125000 +v 0.093750 0.062500 -0.125000 +v 0.031250 0.062500 -0.125000 +v 0.093750 0.062500 0.125000 +v 0.031250 0.062500 0.125000 +v -0.031250 0.062500 0.125000 +v -0.031250 0.062500 -0.125000 +v -0.093750 0.062500 -0.125000 +v -0.093750 0.062500 0.125000 +v -0.093750 0.156250 -0.250000 +v 0.093750 0.156250 -0.250000 +v -0.093750 0.218750 -0.250000 +v 0.093750 0.218750 -0.250000 +v 0.093750 0.156250 -0.312500 +v -0.093750 0.156250 -0.312500 +v 0.093750 0.218750 -0.312500 +v -0.093750 0.218750 -0.312500 +vt 0.750000 0.812500 +vt 0.812500 0.562500 +vt 0.812500 0.812500 +vt 0.500000 0.000000 +vt 0.000000 0.250000 +vt 0.000000 -0.000000 +vt 0.500000 0.812500 +vt 0.437500 0.562500 +vt 0.500000 0.562500 +vt 0.750000 0.812500 +vt 0.812500 0.562500 +vt 0.812500 0.812500 +vt 0.500000 0.250000 +vt 0.062500 0.562500 +vt 0.750000 0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.000000 +vt 1.000000 0.000000 +vt 0.750000 0.250000 +vt 0.750000 0.000000 +vt 0.375000 0.718750 +vt 0.125000 0.656250 +vt 0.375000 0.656250 +vt -0.000000 0.562500 +vt 0.062500 0.812500 +vt -0.000000 0.812500 +vt 0.125000 0.593750 +vt 0.375000 0.593750 +vt 0.125000 0.781250 +vt 0.437500 0.812500 +vt 0.500000 0.250000 +vt 0.062500 0.562500 +vt -0.000000 0.250000 +vt 0.375000 0.781250 +vt 0.500000 0.500000 +vt 0.750000 0.562500 +vt 0.500000 0.562500 +vt 0.500000 0.500000 +vt 0.750000 0.562500 +vt 0.500000 0.562500 +vt 0.750000 0.812500 +vt 0.812500 0.562500 +vt 0.812500 0.812500 +vt 0.500000 0.812500 +vt 0.750000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.750000 0.562500 +vt 0.812500 0.562500 +vt 0.812500 0.812500 +vt 0.500000 0.812500 +vt 0.750000 0.562500 +vt 0.750000 0.375000 +vt 0.562500 0.312500 +vt 0.750000 0.312500 +vt 0.812500 0.375000 +vt 0.812500 0.312500 +vt 0.750000 0.250000 +vt 0.562500 0.250000 +vt 0.500000 0.312500 +vt 0.562500 0.375000 +vt 0.500000 0.375000 +vt 0.562500 0.437500 +vt 0.750000 0.437500 +vt 0.500000 0.500000 +vt 0.000000 0.500000 +vt 0.750000 0.250000 +vt 1.000000 0.250000 +vt 0.125000 0.718750 +vt 0.500000 0.500000 +vt 0.437500 0.562500 +vt -0.000000 0.500000 +vt 0.750000 0.500000 +vt 0.750000 0.500000 +vt 0.500000 0.562500 +vt 0.500000 0.562500 +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.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 +s off +f 3/1/1 24/2/1 4/3/1 +f 7/4/2 6/5/2 5/6/2 +f 11/7/3 16/8/3 12/9/3 +f 19/10/1 28/11/1 20/12/1 +f 8/13/4 14/14/4 6/5/4 +f 7/15/1 12/16/1 8/17/1 +f 6/18/5 9/19/5 5/20/5 +f 17/21/6 4/22/6 2/23/6 +f 10/24/7 13/25/7 9/26/7 +f 3/27/6 16/8/6 1/28/6 +f 20/29/6 15/30/6 13/25/6 +f 5/31/8 15/32/8 7/33/8 +f 15/30/6 18/34/6 17/21/6 +f 13/25/6 14/14/6 4/22/6 +f 23/35/6 22/36/6 24/37/6 +f 25/38/6 27/39/6 28/40/6 +f 2/41/5 21/42/5 1/43/5 +f 20/44/4 27/39/4 18/45/4 +f 4/46/4 22/36/4 2/41/4 +f 1/47/8 23/48/8 3/1/8 +f 18/45/5 26/49/5 17/50/5 +f 17/51/8 25/52/8 19/10/8 +f 36/53/1 33/54/1 34/55/1 +f 31/56/8 34/55/8 29/57/8 +f 29/58/2 33/54/2 30/59/2 +f 30/60/4 35/61/4 32/62/4 +f 32/63/6 36/53/6 31/64/6 +f 3/1/1 23/48/1 24/2/1 +f 7/4/2 8/13/2 6/5/2 +f 11/7/3 15/30/3 16/8/3 +f 19/10/1 25/52/1 28/11/1 +f 8/13/4 12/65/4 16/8/4 +f 16/8/4 14/14/4 8/13/4 +f 14/14/4 10/66/4 6/5/4 +f 7/15/1 11/67/1 12/16/1 +f 6/18/5 10/68/5 9/19/5 +f 17/21/6 19/69/6 4/22/6 +f 10/24/7 14/14/7 13/25/7 +f 3/27/6 14/14/6 16/8/6 +f 20/29/6 18/34/6 15/30/6 +f 5/31/8 9/70/8 13/71/8 +f 13/71/8 15/32/8 5/31/8 +f 15/32/8 11/72/8 7/33/8 +f 17/21/6 2/23/6 15/30/6 +f 2/23/6 1/28/6 16/8/6 +f 15/30/6 2/23/6 16/8/6 +f 3/27/6 4/22/6 14/14/6 +f 4/22/6 19/69/6 13/25/6 +f 19/69/6 20/29/6 13/25/6 +f 23/35/6 21/73/6 22/36/6 +f 25/38/6 26/74/6 27/39/6 +f 2/41/5 22/36/5 21/42/5 +f 20/44/4 28/40/4 27/39/4 +f 4/46/4 24/37/4 22/36/4 +f 1/47/8 21/75/8 23/48/8 +f 18/45/5 27/39/5 26/49/5 +f 17/51/8 26/76/8 25/52/8 +f 36/53/1 35/61/1 33/54/1 +f 31/56/8 36/53/8 34/55/8 +f 29/58/2 34/55/2 33/54/2 +f 30/60/4 33/54/4 35/61/4 +f 32/63/6 35/61/6 36/53/6 diff --git a/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png b/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png new file mode 100644 index 0000000000000000000000000000000000000000..15cb8c1dca4a01e761354e27eee610a58fcbb99e GIT binary patch literal 397 zcmV;80doF{P)z5EYa>%i=1qI9P$~4VG?0~;Q##_0!#lp29{m{_6Gp=2Zq7^ r0Q&>%53oNF^#^7Vkh^n${Q=+$4)WQ4EeEev00000NkvXXu0mjfg^#eB literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/crt_broken.png b/src/main/resources/assets/hbm/textures/blocks/crt_broken.png new file mode 100644 index 0000000000000000000000000000000000000000..1e66e452b28419e1ce1639655774ecfcd31515bc GIT binary patch literal 644 zcmV-~0(g zc4+|sz`uUf+Ev4>*#3$D$8l=y$%Y?CKpe-lcKu1`aRgjf;GeF5qUp7X_95Qge%jl& zhscRaef{?1?NPCcJ{kbf&-%Xo6N;vTvrX+g&NfgD6FE`sxQN_>@8fUM=r|7IIEL%G zm`o-WC&zKna-ISO0msgM`|WlWl&z77AcTMr0`vJC-ELQoi{S`^AH39n9D_W%ItT2N&><#M6cIFyWIv6Ax%>>8jX^TnJWSwf~)~%h7ba) z)e6mK6P->6%#77)1psI^n;4JBU}khW_Xo;3voHEe0fWH+ilRVORitTJ`Iwo}@Ar`; z3BoW$*L}7(u%hXuir*a(-d(W%ku!Z>wVXC!ORGP z0R0y)&q}&WsSB7H%jFWLX@ZDgnx?G&*=&a8a(VGCsGI|aVZir&Se6Cf_hA?YvMhsT zS(r|z7>!1yE_f(%3vAm)6h(-l2ms_g2!hgh`~3Wp0u)Wh&8yeAxlquP1mr|_f3-b- ewnIq&Gx-g7lQRQMt!A#;R0RC8Xp*viCVco~2SAB~rUo z8T$}r$pQu29V(|bITuU_8OkSFaA$n}efD8sU|`_C<8>YI?%`3|`g|7P{dH^1$+{K* z0OBhn{iE^Z$afY2VHlGBeIfc0kftf=53XLFK3|*!M7Pg?CZOr+)we1Ozh~fT z<|Lpie9DRs7& z_$)9^eAU+RqIfQOo?*9tb5b8o7vOnDUa?J)oSR!ft(@{xf!Z`t7TsjPmfkuWgl zsJ&M9xiQMnn*n;cc|H7_PA($}G)YpiaJ0s#7o zpW88{(qPj>|FLOM?Dnuk(eEy93EtmcCkb3#-vAwf-0a)FZ55mV5kaZEEn$qwH%%bh z7iI<#K?pJW5D}RDO*SR_Fvg|K%x;1)n7Jo#3OxZK#xKZFU{3bkSWh5_*b;= zes`HH5LQ4GMOIu4OXLe!YhmqpMcaPiKyzTz^!GqAC?aqQJ%QBVIaQi1um(;ATtV;%D*$%Sp$XL05>o00000NkvXXu0mjfXLGCX literal 0 HcmV?d00001 From 047c25aa4e41219ccab3eac6c8d95567b092fa56 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 29 Feb 2024 21:24:34 +0100 Subject: [PATCH 230/376] cheap plastic models made in china --- .../assets/hbm/models/trinkets/snowglobe.obj | 3838 +++++++++++++++-- .../models/trinkets/snowglobe_features.png | Bin 0 -> 3329 bytes 2 files changed, 3448 insertions(+), 390 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_features.png diff --git a/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj b/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj index 10fc715a6..fe52cda54 100644 --- a/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj +++ b/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj @@ -1,5 +1,1972 @@ # Blender v2.79 (sub 0) OBJ File: 'snowglobe.blend' # www.blender.org +o SierraMadre +v -1.000000 1.500000 1.000000 +v 1.000000 1.500000 1.000000 +v -1.000000 1.500000 -1.000000 +v 1.000000 1.500000 -1.000000 +v -1.000000 3.000000 -1.000000 +v -1.000000 3.000000 1.000000 +v 1.000000 3.000000 1.000000 +v 1.000000 3.000000 -1.000000 +v -1.250000 1.500000 0.500000 +v 1.250000 1.500000 0.500000 +v -1.250000 1.500000 -0.500000 +v 1.250000 1.500000 -0.500000 +v -1.250000 4.000000 -0.500000 +v -1.250000 4.000000 0.500000 +v 1.250000 4.000000 0.500000 +v 1.250000 4.000000 -0.500000 +v -1.250000 4.125000 -0.250000 +v 1.500000 1.000000 2.000000 +v -1.250000 4.125000 0.250000 +v 1.250000 4.125000 0.250000 +v -1.500000 1.000000 2.000000 +v 1.250000 4.125000 -0.250000 +v -1.500000 1.000000 -2.000000 +v 1.500000 1.000000 -2.000000 +v -1.500000 1.500000 2.000000 +v 1.500000 1.500000 2.000000 +v -1.500000 1.500000 -2.000000 +v 1.500000 1.500000 -2.000000 +v 1.124000 1.500000 0.126000 +v 1.376000 1.500000 0.126000 +v 1.124000 1.500000 -0.126000 +v 1.376000 1.500000 -0.126000 +v 1.124000 4.750000 -0.126000 +v 1.124000 4.750000 0.126000 +v 1.376000 4.750000 0.126000 +v 1.376000 4.750000 -0.126000 +vt 0.400169 0.766151 +vt 0.473712 0.839693 +vt 0.400169 0.839693 +vt 0.358338 0.755432 +vt 0.267290 0.823719 +vt 0.267290 0.755432 +vt 0.358338 0.755432 +vt 0.267290 0.823719 +vt 0.267290 0.755432 +vt 0.358338 0.755432 +vt 0.267290 0.823719 +vt 0.267290 0.755432 +vt 0.358338 0.755432 +vt 0.267290 0.823719 +vt 0.267290 0.755432 +vt 0.500609 0.906794 +vt 0.624891 1.000005 +vt 0.500609 1.000005 +vt 0.446133 0.756958 +vt 0.455326 0.848886 +vt 0.446133 0.848886 +vt 0.369719 0.755432 +vt 0.255909 0.869243 +vt 0.255909 0.755432 +vt 0.369719 0.755432 +vt 0.255909 0.869243 +vt 0.255909 0.755432 +vt 0.324195 0.874933 +vt 0.301433 0.874933 +vt 0.290052 0.869243 +vt 0.324195 0.874933 +vt 0.301433 0.874933 +vt 0.290052 0.869243 +vt 0.418555 0.756958 +vt 0.427747 0.848886 +vt 0.418555 0.848886 +vt 0.624149 0.875209 +vt 0.500594 0.890653 +vt 0.500594 0.875209 +vt 0.597474 0.875209 +vt 0.504808 0.890653 +vt 0.504808 0.875209 +vt 0.427747 0.756958 +vt 0.597474 0.875209 +vt 0.504808 0.890653 +vt 0.504808 0.875209 +vt 0.624149 0.875209 +vt 0.500594 0.890653 +vt 0.500594 0.875209 +vt 0.432307 0.752325 +vt 0.441573 0.761591 +vt 0.432307 0.761591 +vt 0.395609 0.752361 +vt 0.386343 0.871868 +vt 0.386343 0.752361 +vt 0.487538 0.752361 +vt 0.478271 0.871868 +vt 0.478271 0.752361 +vt 0.441573 0.752361 +vt 0.432307 0.871868 +vt 0.432307 0.752361 +vt 0.441573 0.752361 +vt 0.432307 0.871868 +vt 0.432307 0.752361 +vt 0.473712 0.766151 +vt 0.358338 0.823719 +vt 0.358338 0.823719 +vt 0.358338 0.823719 +vt 0.358338 0.823719 +vt 0.624891 0.906794 +vt 0.455326 0.756958 +vt 0.369719 0.869243 +vt 0.369719 0.869243 +vt 0.290052 0.755432 +vt 0.335576 0.755432 +vt 0.335576 0.869243 +vt 0.290052 0.755432 +vt 0.335576 0.755432 +vt 0.335576 0.869243 +vt 0.624149 0.890653 +vt 0.597474 0.890653 +vt 0.597474 0.890653 +vt 0.624149 0.890653 +vt 0.441573 0.752325 +vt 0.395609 0.871868 +vt 0.487538 0.871868 +vt 0.441573 0.871868 +vt 0.441573 0.871868 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.8944 0.4472 +s off +f 7/1/1 5/2/1 6/3/1 +f 3/4/2 8/5/2 4/6/2 +f 2/7/3 6/8/3 1/9/3 +f 4/10/4 7/11/4 2/12/4 +f 1/13/5 5/14/5 3/15/5 +f 26/16/1 27/17/1 25/18/1 +f 22/19/6 13/20/6 17/21/6 +f 11/22/2 16/23/2 12/24/2 +f 10/25/3 14/26/3 9/27/3 +f 22/28/4 20/29/4 15/30/4 +f 19/31/5 17/32/5 13/33/5 +f 15/34/7 19/35/7 14/36/7 +f 21/37/5 27/38/5 23/39/5 +f 18/40/3 25/41/3 21/42/3 +f 20/43/1 17/21/1 19/35/1 +f 23/44/2 28/45/2 24/46/2 +f 24/47/4 26/48/4 18/49/4 +f 35/50/1 33/51/1 34/52/1 +f 31/53/2 36/54/2 32/55/2 +f 30/56/3 34/57/3 29/58/3 +f 32/59/4 35/60/4 30/61/4 +f 29/62/5 33/63/5 31/64/5 +f 7/1/1 8/65/1 5/2/1 +f 3/4/2 5/66/2 8/5/2 +f 2/7/3 7/67/3 6/8/3 +f 4/10/4 8/68/4 7/11/4 +f 1/13/5 6/69/5 5/14/5 +f 26/16/1 28/70/1 27/17/1 +f 22/19/6 16/71/6 13/20/6 +f 11/22/2 13/72/2 16/23/2 +f 10/25/3 15/73/3 14/26/3 +f 15/30/4 10/74/4 12/75/4 +f 12/75/4 16/76/4 15/30/4 +f 16/76/4 22/28/4 15/30/4 +f 13/33/5 11/77/5 9/78/5 +f 9/78/5 14/79/5 13/33/5 +f 14/79/5 19/31/5 13/33/5 +f 15/34/7 20/43/7 19/35/7 +f 21/37/5 25/80/5 27/38/5 +f 18/40/3 26/81/3 25/41/3 +f 20/43/1 22/19/1 17/21/1 +f 23/44/2 27/82/2 28/45/2 +f 24/47/4 28/83/4 26/48/4 +f 35/50/1 36/84/1 33/51/1 +f 31/53/2 33/85/2 36/54/2 +f 30/56/3 35/86/3 34/57/3 +f 32/59/4 36/87/4 35/60/4 +f 29/62/5 34/88/5 33/63/5 +o Prydwen +v 0.000000 3.000000 1.500000 +v -0.250000 2.933013 1.500000 +v -0.433013 2.750000 1.500000 +v -0.500000 2.500000 1.500000 +v -0.433013 2.250000 1.500000 +v -0.250000 2.066987 1.500000 +v -0.000000 2.000000 1.500000 +v 0.250000 2.066987 1.500000 +v 0.433013 2.250000 1.500000 +v 0.500000 2.500000 1.500000 +v 0.433013 2.750000 1.500000 +v 0.250000 2.933012 1.500000 +v 0.000000 3.000000 -1.500000 +v -0.250000 2.933013 -1.500000 +v -0.433013 2.750000 -1.500000 +v -0.500000 2.500000 -1.500000 +v -0.433013 2.250000 -1.500000 +v -0.250000 2.066987 -1.500000 +v -0.000000 2.000000 -1.500000 +v 0.250000 2.066987 -1.500000 +v 0.433013 2.250000 -1.500000 +v 0.500000 2.500000 -1.500000 +v 0.433013 2.750000 -1.500000 +v 0.250000 2.933012 -1.500000 +v 0.000000 2.625000 -2.500000 +v -0.062500 2.608253 -2.500000 +v -0.108253 2.562500 -2.500000 +v -0.125000 2.500000 -2.500000 +v -0.108253 2.437500 -2.500000 +v -0.062500 2.391747 -2.500000 +v -0.000000 2.375000 -2.500000 +v 0.062500 2.391747 -2.500000 +v 0.108253 2.437500 -2.500000 +v 0.125000 2.500000 -2.500000 +v 0.108253 2.562500 -2.500000 +v 0.062500 2.608253 -2.500000 +v 0.000000 2.750000 2.000000 +v -0.125000 2.716507 2.000000 +v -0.216506 2.625000 2.000000 +v -0.250000 2.500000 2.000000 +v -0.216506 2.375000 2.000000 +v -0.125000 2.283493 2.000000 +v -0.000000 2.250000 2.000000 +v 0.125000 2.283493 2.000000 +v 0.216506 2.375000 2.000000 +v 0.250000 2.500000 2.000000 +v 0.216506 2.625000 2.000000 +v 0.125000 2.716506 2.000000 +v -0.125000 3.000000 -2.500000 +v 0.125000 3.000000 -2.500000 +v -0.125000 1.625000 -2.500000 +v 0.125000 1.625000 -2.500000 +v -0.062500 3.000000 -2.500000 +v 0.062500 3.000000 -2.500000 +v -0.062500 2.000000 -2.500000 +v 0.062500 2.000000 -2.500000 +v -0.062500 3.000000 -1.500000 +v 0.062500 3.000000 -1.500000 +v -0.062500 2.000000 -1.500000 +v 0.062500 2.000000 -1.500000 +v -0.125000 1.625000 -2.760000 +v -0.125000 3.000000 -2.760000 +v 0.125000 3.000000 -2.760000 +v 0.125000 1.625000 -2.760000 +v -0.250000 2.125000 1.500000 +v 0.250000 2.125000 1.500000 +v -0.250000 2.125000 0.500000 +v 0.250000 2.125000 0.500000 +v -0.250000 1.750000 0.500000 +v -0.250000 1.750000 1.500000 +v 0.250000 1.750000 1.500000 +v 0.250000 1.750000 0.500000 +v -0.125000 1.750000 1.375000 +v 0.125000 1.750000 1.375000 +v -0.125000 1.750000 -0.625000 +v 0.125000 1.750000 -0.625000 +v -0.125000 1.625000 -0.625000 +v -0.125000 1.625000 1.375000 +v 0.125000 1.625000 1.375000 +v 0.125000 1.625000 -0.625000 +v -0.250000 2.125000 -0.625000 +v 0.250000 2.125000 -0.625000 +v -0.250000 2.125000 -1.125000 +v 0.250000 2.125000 -1.125000 +v -0.250000 1.500000 -1.125000 +v -0.250000 1.500000 -0.625000 +v 0.250000 1.500000 -0.625000 +v 0.250000 1.500000 -1.125000 +v -0.250000 1.625000 0.500000 +v -0.250000 1.625000 1.500000 +v 0.250000 1.625000 1.500000 +v 0.250000 1.625000 0.500000 +v -0.250000 1.500000 0.500000 +v -0.250000 1.500000 1.500000 +v 0.250000 1.500000 1.500000 +v 0.250000 1.500000 0.500000 +v -0.062500 2.437500 2.000000 +v 0.062500 2.437500 2.000000 +v -0.062500 2.562500 2.000000 +v 0.062500 2.562500 2.000000 +v -0.062500 2.562500 2.750000 +v -0.062500 2.437500 2.750000 +v 0.062500 2.437500 2.750000 +v 0.062500 2.562500 2.750000 +v -0.062500 2.437500 2.250000 +v 0.062500 2.437500 2.250000 +v -0.062500 2.437500 2.125000 +v 0.062500 2.437500 2.125000 +v -0.062500 1.562500 1.500000 +v 0.062500 1.562500 1.500000 +v -0.062500 1.562500 1.375000 +v 0.062500 1.562500 1.375000 +vt 0.682837 0.937347 +vt 0.692469 0.937347 +vt 0.687653 0.945689 +vt 0.684873 0.920665 +vt 0.690433 0.951250 +vt 0.684873 0.951250 +vt 0.684873 0.951250 +vt 0.690433 0.920665 +vt 0.690433 0.951250 +vt 0.632155 0.951250 +vt 0.626372 0.920665 +vt 0.632155 0.920665 +vt 0.743151 0.935957 +vt 0.720907 0.933177 +vt 0.743151 0.933177 +vt 0.743151 0.935957 +vt 0.720907 0.933177 +vt 0.743151 0.933177 +vt 0.743151 0.951250 +vt 0.720907 0.929006 +vt 0.743151 0.929006 +vt 0.632155 0.929006 +vt 0.654399 0.951250 +vt 0.632155 0.951250 +vt 0.743151 0.931786 +vt 0.748934 0.937347 +vt 0.743151 0.937347 +vt 0.743151 0.931786 +vt 0.748934 0.937347 +vt 0.743151 0.937347 +vt 0.743151 0.920665 +vt 0.748934 0.951250 +vt 0.743151 0.951250 +vt 0.656957 0.931786 +vt 0.701444 0.937347 +vt 0.656957 0.937347 +vt 0.676420 0.929006 +vt 0.654176 0.940128 +vt 0.654176 0.929006 +vt 0.682092 0.931786 +vt 0.693214 0.923445 +vt 0.693214 0.931786 +vt 0.682092 0.931786 +vt 0.693214 0.923445 +vt 0.693214 0.931786 +vt 0.654176 0.931786 +vt 0.676420 0.923445 +vt 0.676420 0.931786 +vt 0.698886 0.931786 +vt 0.721130 0.923445 +vt 0.721130 0.931786 +vt 0.701444 0.931786 +vt 0.656957 0.937347 +vt 0.656957 0.931786 +vt 0.656957 0.923445 +vt 0.701444 0.920665 +vt 0.701444 0.923445 +vt 0.673862 0.923445 +vt 0.718349 0.920665 +vt 0.718349 0.923445 +vt 0.684873 0.923445 +vt 0.690433 0.920665 +vt 0.690433 0.923445 +vt 0.712566 0.929006 +vt 0.701444 0.940128 +vt 0.701444 0.929006 +vt 0.682092 0.931786 +vt 0.693214 0.917884 +vt 0.693214 0.931786 +vt 0.682092 0.931786 +vt 0.693214 0.917884 +vt 0.693214 0.931786 +vt 0.701444 0.931786 +vt 0.712566 0.917884 +vt 0.712566 0.931786 +vt 0.662740 0.931786 +vt 0.673862 0.917884 +vt 0.673862 0.931786 +vt 0.654176 0.929006 +vt 0.676420 0.940128 +vt 0.654176 0.940128 +vt 0.676420 0.929006 +vt 0.654176 0.940128 +vt 0.654176 0.929006 +vt 0.654176 0.920665 +vt 0.676420 0.917884 +vt 0.676420 0.920665 +vt 0.698886 0.920665 +vt 0.721130 0.917884 +vt 0.721130 0.920665 +vt 0.682092 0.920665 +vt 0.693214 0.917884 +vt 0.693214 0.920665 +vt 0.682092 0.920665 +vt 0.693214 0.917884 +vt 0.693214 0.920665 +vt 0.689043 0.938738 +vt 0.686263 0.941518 +vt 0.686263 0.938738 +vt 0.643054 0.935957 +vt 0.626372 0.933177 +vt 0.643054 0.933177 +vt 0.643054 0.935957 +vt 0.626372 0.933177 +vt 0.643054 0.933177 +vt 0.643054 0.941518 +vt 0.626372 0.938738 +vt 0.643054 0.938738 +vt 0.732252 0.938738 +vt 0.748934 0.941518 +vt 0.732252 0.941518 +vt 0.640274 0.938738 +vt 0.654176 0.919274 +vt 0.656957 0.919274 +vt 0.637494 0.933177 +vt 0.654176 0.935957 +vt 0.637494 0.935957 +vt 0.735032 0.938738 +vt 0.721130 0.919274 +vt 0.737812 0.938738 +vt 0.640274 0.933177 +vt 0.656957 0.935957 +vt 0.640274 0.935957 +vt 0.684873 0.944944 +vt 0.682837 0.942908 +vt 0.682092 0.940128 +vt 0.684873 0.935312 +vt 0.687653 0.934567 +vt 0.690433 0.935312 +vt 0.693214 0.940128 +vt 0.692469 0.942908 +vt 0.690433 0.944944 +vt 0.690433 0.920665 +vt 0.684873 0.920665 +vt 0.626372 0.951250 +vt 0.720907 0.935957 +vt 0.720907 0.935957 +vt 0.720907 0.951250 +vt 0.654399 0.929006 +vt 0.748934 0.931786 +vt 0.748934 0.931786 +vt 0.748934 0.920665 +vt 0.701444 0.931786 +vt 0.676420 0.940128 +vt 0.682092 0.923445 +vt 0.682092 0.923445 +vt 0.654176 0.923445 +vt 0.698886 0.923445 +vt 0.701444 0.937347 +vt 0.656957 0.920665 +vt 0.673862 0.920665 +vt 0.684873 0.920665 +vt 0.712566 0.940128 +vt 0.682092 0.917884 +vt 0.682092 0.917884 +vt 0.701444 0.917884 +vt 0.662740 0.917884 +vt 0.676420 0.929006 +vt 0.676420 0.940128 +vt 0.654176 0.917884 +vt 0.698886 0.917884 +vt 0.682092 0.917884 +vt 0.682092 0.917884 +vt 0.689043 0.941518 +vt 0.626372 0.935957 +vt 0.626372 0.935957 +vt 0.626372 0.941518 +vt 0.748934 0.938738 +vt 0.637494 0.938738 +vt 0.654176 0.933177 +vt 0.718349 0.919274 +vt 0.656957 0.933177 +vt 0.720907 0.934567 +vt 0.654176 0.940128 +vt 0.654176 0.934567 +vt 0.720907 0.940128 +vt 0.654176 0.944199 +vt 0.654176 0.940128 +vt 0.720907 0.924935 +vt 0.654176 0.929006 +vt 0.654176 0.924935 +vt 0.720907 0.929006 +vt 0.654176 0.929006 +vt 0.720907 0.940128 +vt 0.654176 0.944199 +vt 0.720907 0.934567 +vt 0.654176 0.940128 +vt 0.654176 0.934567 +vt 0.720907 0.929006 +vt 0.654176 0.934567 +vt 0.654399 0.945689 +vt 0.721130 0.940128 +vt 0.721130 0.945689 +vt 0.720907 0.945689 +vt 0.654176 0.945689 +vt 0.720907 0.934567 +vt 0.654399 0.940128 +vt 0.721130 0.934567 +vt 0.720907 0.924935 +vt 0.654176 0.924935 +vt 0.743151 0.933177 +vt 0.632155 0.941518 +vt 0.743151 0.940128 +vt 0.720907 0.940128 +vt 0.743151 0.935957 +vt 0.632155 0.940128 +vt 0.654399 0.934567 +vt 0.743151 0.932159 +vt 0.743151 0.935957 +vt 0.720907 0.944199 +vt 0.743151 0.932159 +vt 0.743151 0.933177 +vt 0.720907 0.944199 +vt 0.743151 0.938738 +vt 0.643054 0.937347 +vt 0.643054 0.934567 +vt 0.643054 0.937347 +vt 0.643054 0.929751 +vt 0.643054 0.931786 +vt 0.643054 0.940128 +vt 0.643054 0.937347 +vt 0.643054 0.931786 +vt 0.732252 0.942908 +vt 0.643054 0.934567 +vt 0.732252 0.937347 +vt 0.732252 0.940128 +vt 0.643054 0.929751 +vt 0.743151 0.934567 +vt 0.743151 0.941518 +vt 0.632155 0.938738 +vt 0.743151 0.934567 +vt 0.743151 0.936975 +vt 0.743151 0.936975 +vt 0.643054 0.939383 +vt 0.643054 0.939383 +vt 0.643054 0.942908 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.6508 0.7593 +vn 0.0000 0.6508 -0.7593 +vn -0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.4682 -0.8109 -0.3511 +vn -0.0000 -0.9363 -0.3511 +vn -0.8109 0.4682 -0.3511 +vn -0.9363 -0.0000 -0.3511 +vn 0.9363 -0.0000 -0.3511 +vn 0.8109 0.4682 -0.3511 +vn 0.4682 -0.8109 -0.3511 +vn -0.8109 -0.4682 -0.3511 +vn 0.4682 0.8109 -0.3511 +vn 0.0000 0.9363 -0.3511 +vn -0.4682 0.8109 -0.3511 +vn 0.8109 -0.4682 -0.3511 +vn 0.0000 0.8944 0.4472 +vn -0.4472 0.7746 0.4472 +vn 0.7746 -0.4472 0.4472 +vn 0.4472 -0.7746 0.4472 +vn -0.4472 -0.7746 0.4472 +vn -0.7746 -0.4472 0.4472 +vn 0.4472 0.7746 0.4472 +vn -0.7746 0.4472 0.4472 +vn 0.8944 -0.0000 0.4472 +vn 0.0000 -0.8944 0.4472 +vn -0.8944 -0.0000 0.4472 +vn 0.7746 0.4472 0.4472 +s off +f 77/89/8 81/90/8 73/91/8 +f 87/92/8 86/93/8 85/94/8 +f 99/95/9 97/96/9 98/97/9 +f 85/98/10 97/99/10 87/100/10 +f 92/101/11 95/102/11 91/103/11 +f 89/104/12 94/105/12 90/106/12 +f 90/107/13 96/108/13 92/109/13 +f 91/110/10 93/111/10 89/112/10 +f 87/113/11 100/114/11 88/115/11 +f 86/116/12 98/117/12 85/118/12 +f 88/119/13 99/120/13 86/121/13 +f 110/122/12 111/123/12 109/124/12 +f 105/125/11 107/126/11 106/127/11 +f 104/128/9 105/129/9 103/130/9 +f 101/131/8 107/132/8 102/133/8 +f 102/134/13 108/135/13 104/136/13 +f 103/137/10 106/138/10 101/139/10 +f 113/140/11 115/141/11 114/142/11 +f 110/143/13 116/144/13 112/145/13 +f 111/146/10 114/147/10 109/148/10 +f 109/149/8 115/150/8 110/151/8 +f 121/152/11 123/153/11 122/154/11 +f 120/155/9 121/156/9 119/157/9 +f 117/158/8 123/159/8 118/160/8 +f 118/161/13 124/162/13 120/163/13 +f 119/164/10 122/165/10 117/166/10 +f 127/167/12 125/168/12 126/169/12 +f 129/170/11 131/171/11 130/172/11 +f 127/173/13 132/174/13 128/175/13 +f 125/176/10 130/177/10 126/178/10 +f 128/179/9 129/180/9 125/181/9 +f 126/182/8 131/183/8 127/184/8 +f 139/185/8 137/186/8 138/187/8 +f 135/188/12 140/189/12 136/190/12 +f 134/191/11 138/192/11 133/193/11 +f 136/194/13 139/195/13 134/196/13 +f 133/197/10 137/198/10 135/199/10 +f 144/200/13 146/201/13 148/202/13 +f 141/203/14 146/204/14 142/205/14 +f 143/206/10 145/207/10 141/208/10 +f 144/209/15 147/210/15 143/211/15 +f 73/91/8 74/212/8 75/213/8 +f 75/213/8 76/214/8 77/89/8 +f 77/89/8 78/215/8 79/216/8 +f 79/216/8 80/217/8 81/90/8 +f 81/90/8 82/218/8 83/219/8 +f 83/219/8 84/220/8 81/90/8 +f 84/220/8 73/91/8 81/90/8 +f 73/91/8 75/213/8 77/89/8 +f 77/89/8 79/216/8 81/90/8 +f 87/92/8 88/221/8 86/93/8 +f 99/95/9 100/222/9 97/96/9 +f 85/98/10 98/223/10 97/99/10 +f 92/101/11 96/224/11 95/102/11 +f 89/104/12 93/225/12 94/105/12 +f 90/107/13 94/226/13 96/108/13 +f 91/110/10 95/227/10 93/111/10 +f 87/113/11 97/228/11 100/114/11 +f 86/116/12 99/229/12 98/117/12 +f 88/119/13 100/230/13 99/120/13 +f 110/122/12 112/231/12 111/123/12 +f 105/125/11 108/232/11 107/126/11 +f 104/128/9 108/233/9 105/129/9 +f 101/131/8 106/234/8 107/132/8 +f 102/134/13 107/235/13 108/135/13 +f 103/137/10 105/236/10 106/138/10 +f 113/140/11 116/237/11 115/141/11 +f 110/143/13 115/238/13 116/144/13 +f 111/146/10 113/239/10 114/147/10 +f 109/149/8 114/240/8 115/150/8 +f 121/152/11 124/241/11 123/153/11 +f 120/155/9 124/242/9 121/156/9 +f 117/158/8 122/243/8 123/159/8 +f 118/161/13 123/244/13 124/162/13 +f 119/164/10 121/245/10 122/165/10 +f 127/167/12 128/246/12 125/168/12 +f 129/170/11 132/247/11 131/171/11 +f 127/173/13 131/248/13 132/174/13 +f 125/176/10 129/249/10 130/177/10 +f 128/179/9 132/250/9 129/180/9 +f 126/182/8 130/251/8 131/183/8 +f 139/185/8 140/252/8 137/186/8 +f 135/188/12 137/253/12 140/189/12 +f 134/191/11 139/254/11 138/192/11 +f 136/194/13 140/255/13 139/195/13 +f 133/197/10 138/256/10 137/198/10 +f 144/200/13 142/257/13 146/201/13 +f 141/203/14 145/258/14 146/204/14 +f 143/206/10 147/259/10 145/207/10 +f 144/209/15 148/260/15 147/210/15 +s 1 +f 49/261/12 38/262/16 37/263/12 +f 56/264/17 45/265/18 44/266/17 +f 53/267/19 42/268/20 41/269/19 +f 60/270/21 37/263/12 48/271/21 +f 50/272/16 39/273/22 38/262/16 +f 57/274/18 46/275/13 45/276/18 +f 54/277/20 43/278/11 42/268/20 +f 51/279/22 40/280/10 39/281/22 +f 46/275/13 59/282/23 47/283/23 +f 55/284/11 44/266/17 43/278/11 +f 52/285/10 41/286/19 40/280/10 +f 59/287/23 48/271/21 47/288/23 +f 66/289/24 55/284/25 54/277/24 +f 63/290/26 52/285/27 51/279/26 +f 70/291/28 59/282/29 58/292/28 +f 55/284/25 68/293/30 56/264/30 +f 64/294/27 53/295/31 52/285/27 +f 71/296/29 60/270/32 59/287/29 +f 49/261/33 62/297/34 50/272/34 +f 68/293/30 57/298/35 56/264/30 +f 65/299/31 54/277/24 53/267/31 +f 72/300/32 49/261/33 60/270/32 +f 62/297/34 51/301/26 50/272/34 +f 69/302/35 58/292/28 57/274/35 +f 37/263/36 74/303/37 73/304/36 +f 45/265/38 80/305/39 44/266/39 +f 42/268/40 77/306/41 41/269/41 +f 48/271/42 73/304/36 84/307/42 +f 39/273/43 74/303/37 38/262/37 +f 45/276/38 82/308/44 81/309/38 +f 43/278/45 78/310/40 42/268/40 +f 40/280/46 75/311/43 39/281/43 +f 47/283/47 82/308/44 46/275/44 +f 43/278/45 80/305/39 79/312/45 +f 40/280/46 77/313/41 76/314/46 +f 48/271/42 83/315/47 47/288/47 +f 49/261/12 50/272/16 38/262/16 +f 56/264/17 57/298/18 45/265/18 +f 53/267/19 54/277/20 42/268/20 +f 60/270/21 49/261/12 37/263/12 +f 50/272/16 51/301/22 39/273/22 +f 57/274/18 58/292/13 46/275/13 +f 54/277/20 55/284/11 43/278/11 +f 51/279/22 52/285/10 40/280/10 +f 46/275/13 58/292/13 59/282/23 +f 55/284/11 56/264/17 44/266/17 +f 52/285/10 53/295/19 41/286/19 +f 59/287/23 60/270/21 48/271/21 +f 66/289/24 67/316/25 55/284/25 +f 63/290/26 64/294/27 52/285/27 +f 70/291/28 71/317/29 59/282/29 +f 55/284/25 67/316/25 68/293/30 +f 64/294/27 65/318/31 53/295/31 +f 71/296/29 72/300/32 60/270/32 +f 49/261/33 61/319/33 62/297/34 +f 68/293/30 69/320/35 57/298/35 +f 65/299/31 66/289/24 54/277/24 +f 72/300/32 61/319/33 49/261/33 +f 62/297/34 63/321/26 51/301/26 +f 69/302/35 70/291/28 58/292/28 +f 37/263/36 38/262/37 74/303/37 +f 45/265/38 81/322/38 80/305/39 +f 42/268/40 78/310/40 77/306/41 +f 48/271/42 37/263/36 73/304/36 +f 39/273/43 75/323/43 74/303/37 +f 45/276/38 46/275/44 82/308/44 +f 43/278/45 79/312/45 78/310/40 +f 40/280/46 76/314/46 75/311/43 +f 47/283/47 83/324/47 82/308/44 +f 43/278/45 44/266/39 80/305/39 +f 40/280/46 41/286/41 77/313/41 +f 48/271/42 84/307/42 83/315/47 +o Lucky38_Plane +v 0.000000 1.125000 -0.750000 +v -0.375000 1.125000 -0.649519 +v -0.649519 1.125000 -0.375000 +v -0.750000 1.125000 0.000000 +v -0.649519 1.125000 0.375000 +v -0.375000 1.125000 0.649519 +v -0.000000 1.125000 0.750000 +v 0.375000 1.125000 0.649519 +v 0.649519 1.125000 0.375000 +v 0.750000 1.125000 0.000000 +v 0.649519 1.125000 -0.375000 +v 0.375000 1.125000 -0.649519 +v 0.000000 1.375000 -0.750000 +v -0.375000 1.375000 -0.649519 +v -0.649519 1.375000 -0.375000 +v -0.750000 1.375000 0.000000 +v -0.649519 1.375000 0.375000 +v -0.375000 1.375000 0.649519 +v -0.000000 1.375000 0.750000 +v 0.375000 1.375000 0.649519 +v 0.649519 1.375000 0.375000 +v 0.750000 1.375000 0.000000 +v 0.649519 1.375000 -0.375000 +v 0.375000 1.375000 -0.649519 +v 0.000000 1.625000 -0.500000 +v -0.250000 1.625000 -0.433013 +v -0.433013 1.625000 -0.250000 +v -0.500000 1.625000 0.000000 +v -0.433013 1.625000 0.250000 +v -0.250000 1.625000 0.433013 +v -0.000000 1.625000 0.500000 +v 0.250000 1.625000 0.433013 +v 0.433013 1.625000 0.250000 +v 0.500000 1.625000 0.000000 +v 0.433013 1.625000 -0.250000 +v 0.250000 1.625000 -0.433012 +v 0.000000 2.125000 -0.500000 +v -0.250000 2.125000 -0.433013 +v -0.433013 2.125000 -0.250000 +v -0.500000 2.125000 0.000000 +v -0.433013 2.125000 0.250000 +v -0.250000 2.125000 0.433013 +v -0.000000 2.125000 0.500000 +v 0.250000 2.125000 0.433013 +v 0.433013 2.125000 0.250000 +v 0.500000 2.125000 0.000000 +v 0.433013 2.125000 -0.250000 +v 0.250000 2.125000 -0.433012 +v 0.000000 2.875000 -0.250000 +v -0.125000 2.875000 -0.216506 +v -0.216506 2.875000 -0.125000 +v -0.250000 2.875000 0.000000 +v -0.216506 2.875000 0.125000 +v -0.125000 2.875000 0.216506 +v -0.000000 2.875000 0.250000 +v 0.125000 2.875000 0.216507 +v 0.216506 2.875000 0.125000 +v 0.250000 2.875000 0.000000 +v 0.216506 2.875000 -0.125000 +v 0.125000 2.875000 -0.216506 +v 0.000000 3.875000 -0.250000 +v -0.125000 3.875000 -0.216506 +v -0.216506 3.875000 -0.125000 +v -0.250000 3.875000 0.000000 +v -0.216506 3.875000 0.125000 +v -0.125000 3.875000 0.216506 +v -0.000000 3.875000 0.250000 +v 0.125000 3.875000 0.216507 +v 0.216506 3.875000 0.125000 +v 0.250000 3.875000 0.000000 +v 0.216506 3.875000 -0.125000 +v 0.125000 3.875000 -0.216506 +v 0.000000 3.875000 -0.500000 +v -0.250000 3.875000 -0.433013 +v -0.433013 3.875000 -0.250000 +v -0.500000 3.875000 0.000000 +v -0.433013 3.875000 0.250000 +v -0.250000 3.875000 0.433013 +v -0.000000 3.875000 0.500000 +v 0.250000 3.875000 0.433013 +v 0.433013 3.875000 0.250000 +v 0.500000 3.875000 0.000000 +v 0.433013 3.875000 -0.250000 +v 0.250000 3.875000 -0.433012 +v -0.312500 4.125000 -0.541266 +v -0.000000 4.125000 -0.625000 +v -0.541266 4.125000 -0.312500 +v -0.625000 4.125000 0.000000 +v -0.541266 4.125000 0.312500 +v -0.312500 4.125000 0.541266 +v -0.000000 4.125000 0.625000 +v 0.312500 4.125000 0.541266 +v 0.541266 4.125000 0.312500 +v 0.625000 4.125000 0.000000 +v 0.541266 4.125000 -0.312500 +v 0.312500 4.125000 -0.541266 +v 0.125000 2.875000 0.062500 +v 0.250000 2.875000 0.062500 +v 0.125000 2.875000 -0.062500 +v 0.250000 2.875000 -0.062500 +v 0.500000 3.875000 -0.062500 +v 0.500000 3.875000 0.062500 +v 0.625000 3.875000 0.062500 +v 0.625000 3.875000 -0.062500 +v 0.500000 3.875000 -0.062500 +v 0.500000 3.875000 0.062500 +v 0.500000 4.000000 -0.062500 +v 0.500000 4.000000 0.062500 +v 1.000000 3.875000 -0.062500 +v 1.000000 3.875000 0.062500 +v 1.000000 4.000000 -0.062500 +v 1.000000 4.000000 0.062500 +v 1.000000 3.812500 -0.125000 +v 1.000000 3.812500 0.125000 +v 1.000000 4.062500 -0.125000 +v 1.000000 4.062500 0.125000 +v 1.250000 3.812500 -0.125000 +v 1.250000 3.812500 0.125000 +v 1.250000 4.062500 -0.125000 +v 1.250000 4.062500 0.125000 +v 0.000000 4.125000 -0.500000 +v -0.250000 4.125000 -0.433013 +v -0.433013 4.125000 -0.250000 +v -0.500000 4.125000 0.000000 +v -0.433013 4.125000 0.250000 +v -0.250000 4.125000 0.433013 +v -0.000000 4.125000 0.500000 +v 0.250000 4.125000 0.433013 +v 0.433013 4.125000 0.250000 +v 0.500000 4.125000 0.000000 +v 0.433013 4.125000 -0.250000 +v 0.250000 4.125000 -0.433012 +v -0.125000 4.250000 -0.216506 +v 0.000000 4.250000 -0.250000 +v -0.216506 4.250000 -0.125000 +v -0.250000 4.250000 0.000000 +v -0.216506 4.250000 0.125000 +v -0.125000 4.250000 0.216506 +v -0.000000 4.250000 0.250000 +v 0.125000 4.250000 0.216507 +v 0.216506 4.250000 0.125000 +v 0.250000 4.250000 0.000000 +v 0.216506 4.250000 -0.125000 +v 0.125000 4.250000 -0.216506 +v -0.125000 2.875000 -0.062500 +v -0.250000 2.875000 -0.062500 +v -0.125000 2.875000 0.062500 +v -0.250000 2.875000 0.062500 +v -0.500000 3.875000 0.062500 +v -0.500000 3.875000 -0.062500 +v -0.625000 3.875000 -0.062500 +v -0.625000 3.875000 0.062500 +v -0.500000 3.875000 0.062500 +v -0.500000 3.875000 -0.062500 +v -0.500000 4.000000 0.062500 +v -0.500000 4.000000 -0.062500 +v -1.000000 3.875000 0.062500 +v -1.000000 3.875000 -0.062500 +v -1.000000 4.000000 0.062500 +v -1.000000 4.000000 -0.062500 +v -1.000000 3.812500 0.125000 +v -1.000000 3.812500 -0.125000 +v -1.000000 4.062500 0.125000 +v -1.000000 4.062500 -0.125000 +v -1.250000 3.812500 0.125000 +v -1.250000 3.812500 -0.125000 +v -1.250000 4.062500 0.125000 +v -1.250000 4.062500 -0.125000 +v 0.062500 2.875000 -0.125000 +v 0.062500 2.875000 -0.250000 +v -0.062500 2.875000 -0.125000 +v -0.062500 2.875000 -0.250000 +v -0.062500 3.875000 -0.500000 +v 0.062500 3.875000 -0.500000 +v 0.062500 3.875000 -0.625000 +v -0.062500 3.875000 -0.625000 +v -0.062500 3.875000 -0.500000 +v 0.062500 3.875000 -0.500000 +v -0.062500 4.000000 -0.500000 +v 0.062500 4.000000 -0.500000 +v -0.062500 3.875000 -1.000000 +v 0.062500 3.875000 -1.000000 +v -0.062500 4.000000 -1.000000 +v 0.062500 4.000000 -1.000000 +v -0.125000 3.812500 -1.000000 +v 0.125000 3.812500 -1.000000 +v -0.125000 4.062500 -1.000000 +v 0.125000 4.062500 -1.000000 +v -0.125000 3.812500 -1.250000 +v 0.125000 3.812500 -1.250000 +v -0.125000 4.062500 -1.250000 +v 0.125000 4.062500 -1.250000 +v -0.062500 2.875000 0.125000 +v -0.062500 2.875000 0.250000 +v 0.062500 2.875000 0.125000 +v 0.062500 2.875000 0.250000 +v 0.062500 3.875000 0.500000 +v -0.062500 3.875000 0.500000 +v -0.062500 3.875000 0.625000 +v 0.062500 3.875000 0.625000 +v 0.062500 3.875000 0.500000 +v -0.062500 3.875000 0.500000 +v 0.062500 4.000000 0.500000 +v -0.062500 4.000000 0.500000 +v 0.062500 3.875000 1.000000 +v -0.062500 3.875000 1.000000 +v 0.062500 4.000000 1.000000 +v -0.062500 4.000000 1.000000 +v 0.125000 3.812500 1.000000 +v -0.125000 3.812500 1.000000 +v 0.125000 4.062500 1.000000 +v -0.125000 4.062500 1.000000 +v 0.125000 3.812500 1.250000 +v -0.125000 3.812500 1.250000 +v 0.125000 4.062500 1.250000 +v -0.125000 4.062500 1.250000 +v 0.000000 1.125000 -2.000000 +v -1.000000 1.125000 -1.732051 +v -1.732051 1.125000 -1.000000 +v -2.000000 1.125000 0.000000 +v -1.732051 1.125000 1.000000 +v -1.000000 1.125000 1.732051 +v -0.000000 1.125000 2.000000 +v 1.000000 1.125000 1.732051 +v 1.732050 1.125000 1.000001 +v 2.000000 1.125000 0.000001 +v 1.732051 1.125000 -0.999999 +v 1.000001 1.125000 -1.732050 +v -1.000000 1.000000 -1.732051 +v 0.000000 1.000000 -2.000000 +v -1.732051 1.000000 -1.000000 +v -2.000000 1.000000 0.000000 +v -1.732051 1.000000 1.000000 +v -1.000000 1.000000 1.732051 +v -0.000000 1.000000 2.000000 +v 1.000000 1.000000 1.732051 +v 1.732050 1.000000 1.000001 +v 2.000000 1.000000 0.000001 +v 1.732051 1.000000 -0.999999 +v 1.000001 1.000000 -1.732050 +v -0.015625 4.250000 0.015625 +v 0.015625 4.250000 0.015625 +v -0.015625 4.250000 -0.015625 +v 0.015625 4.250000 -0.015625 +v -0.015625 4.500000 -0.015625 +v -0.015625 4.500000 0.015625 +v 0.015625 4.500000 0.015625 +v 0.015625 4.500000 -0.015625 +vt 0.453538 0.802124 +vt 0.438272 0.828565 +vt 0.423006 0.802124 +vt 0.451493 0.833837 +vt 0.438272 0.832091 +vt 0.448848 0.829257 +vt 0.456591 0.821514 +vt 0.461171 0.824159 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.172126 0.942461 +vt 0.163312 0.977716 +vt 0.158905 0.977716 +vt 0.189753 0.942461 +vt 0.198567 0.977716 +vt 0.185346 0.942461 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.198567 0.977716 +vt 0.216194 0.982123 +vt 0.198567 0.982123 +vt 0.198567 0.935851 +vt 0.216194 0.940257 +vt 0.198567 0.940257 +vt 0.163312 0.982123 +vt 0.145685 0.977716 +vt 0.163312 0.977716 +vt 0.202092 0.935410 +vt 0.223245 0.940698 +vt 0.202092 0.940698 +vt 0.442679 0.857210 +vt 0.433865 0.848396 +vt 0.442679 0.848396 +vt 0.442679 0.848396 +vt 0.433865 0.857210 +vt 0.433865 0.848396 +vt 0.403017 0.857210 +vt 0.394203 0.848396 +vt 0.403017 0.848396 +vt 0.480578 0.805650 +vt 0.491154 0.816226 +vt 0.480578 0.816226 +vt 0.473527 0.848396 +vt 0.482341 0.857210 +vt 0.473527 0.857210 +vt 0.473527 0.806531 +vt 0.482341 0.815345 +vt 0.473527 0.815345 +vt 0.438272 0.800362 +vt 0.447432 0.805650 +vt 0.438272 0.821514 +vt 0.438272 0.837379 +vt 0.427696 0.829257 +vt 0.415373 0.824159 +vt 0.425051 0.833837 +vt 0.411831 0.810938 +vt 0.419953 0.821514 +vt 0.415373 0.797717 +vt 0.417119 0.810938 +vt 0.425051 0.788039 +vt 0.419953 0.800362 +vt 0.438272 0.784497 +vt 0.427696 0.792619 +vt 0.451493 0.788039 +vt 0.438272 0.789785 +vt 0.461171 0.797717 +vt 0.448848 0.792619 +vt 0.464713 0.810938 +vt 0.456591 0.800362 +vt 0.459425 0.810938 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.172126 0.942461 +vt 0.163312 0.977716 +vt 0.158905 0.977716 +vt 0.189753 0.942461 +vt 0.198567 0.977716 +vt 0.185346 0.942461 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.198567 0.977716 +vt 0.216194 0.982123 +vt 0.198567 0.982123 +vt 0.163312 0.940257 +vt 0.145685 0.935851 +vt 0.163312 0.935851 +vt 0.163312 0.982123 +vt 0.145685 0.977716 +vt 0.163312 0.977716 +vt 0.159787 0.935410 +vt 0.138634 0.940698 +vt 0.138634 0.935410 +vt 0.442679 0.857210 +vt 0.433865 0.848396 +vt 0.442679 0.848396 +vt 0.442679 0.848396 +vt 0.433865 0.857210 +vt 0.433865 0.848396 +vt 0.403017 0.857210 +vt 0.394203 0.848396 +vt 0.403017 0.848396 +vt 0.395966 0.805650 +vt 0.385390 0.816226 +vt 0.385390 0.805650 +vt 0.473527 0.848396 +vt 0.482341 0.857210 +vt 0.473527 0.857210 +vt 0.403017 0.815345 +vt 0.394203 0.806531 +vt 0.403017 0.806531 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.172126 0.942461 +vt 0.163312 0.977716 +vt 0.158905 0.977716 +vt 0.189753 0.942461 +vt 0.198567 0.977716 +vt 0.185346 0.942461 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.198567 0.977716 +vt 0.216194 0.982123 +vt 0.198567 0.982123 +vt 0.178736 0.920427 +vt 0.183143 0.902799 +vt 0.183143 0.920427 +vt 0.163312 0.982123 +vt 0.145685 0.977716 +vt 0.163312 0.977716 +vt 0.183584 0.959207 +vt 0.178295 0.980360 +vt 0.178295 0.959207 +vt 0.442679 0.857210 +vt 0.433865 0.848396 +vt 0.442679 0.848396 +vt 0.442679 0.848396 +vt 0.433865 0.857210 +vt 0.433865 0.848396 +vt 0.403017 0.857210 +vt 0.394203 0.848396 +vt 0.403017 0.848396 +vt 0.443560 0.853244 +vt 0.432984 0.863820 +vt 0.432984 0.853244 +vt 0.473527 0.848396 +vt 0.482341 0.857210 +vt 0.473527 0.857210 +vt 0.433865 0.775683 +vt 0.442679 0.766869 +vt 0.442679 0.775683 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.172126 0.942461 +vt 0.163312 0.977716 +vt 0.158905 0.977716 +vt 0.189753 0.942461 +vt 0.198567 0.977716 +vt 0.185346 0.942461 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.198567 0.977716 +vt 0.216194 0.982123 +vt 0.198567 0.982123 +vt 0.183143 0.955682 +vt 0.178736 0.973309 +vt 0.178736 0.955682 +vt 0.163312 0.982123 +vt 0.145685 0.977716 +vt 0.163312 0.977716 +vt 0.183584 0.916901 +vt 0.178295 0.895748 +vt 0.183584 0.895748 +vt 0.442679 0.857210 +vt 0.433865 0.848396 +vt 0.442679 0.848396 +vt 0.442679 0.848396 +vt 0.433865 0.857210 +vt 0.433865 0.848396 +vt 0.403017 0.857210 +vt 0.394203 0.848396 +vt 0.403017 0.848396 +vt 0.432984 0.768632 +vt 0.443560 0.758056 +vt 0.443560 0.768632 +vt 0.473527 0.848396 +vt 0.482341 0.857210 +vt 0.473527 0.857210 +vt 0.442679 0.846193 +vt 0.433865 0.855007 +vt 0.433865 0.846193 +vt 0.135431 0.907687 +vt 0.240221 0.907686 +vt 0.187826 0.998437 +vt 0.436884 0.800879 +vt 0.448380 0.813502 +vt 0.436187 0.812803 +vt 0.438823 0.863820 +vt 0.437721 0.872634 +vt 0.437721 0.863820 +vt 0.438823 0.863820 +vt 0.437721 0.872634 +vt 0.437721 0.863820 +vt 0.438731 0.855007 +vt 0.437813 0.862351 +vt 0.437813 0.855007 +vt 0.438823 0.863820 +vt 0.437721 0.872634 +vt 0.437721 0.863820 +vt 0.429458 0.795672 +vt 0.438272 0.793311 +vt 0.447086 0.795672 +vt 0.455899 0.810938 +vt 0.453538 0.819752 +vt 0.447086 0.826204 +vt 0.429458 0.826204 +vt 0.423006 0.819752 +vt 0.420645 0.810938 +vt 0.183143 0.977716 +vt 0.176533 0.942461 +vt 0.202974 0.977716 +vt 0.183143 0.977716 +vt 0.216194 0.977716 +vt 0.216194 0.935851 +vt 0.145685 0.982123 +vt 0.223245 0.935410 +vt 0.433865 0.857210 +vt 0.442679 0.857210 +vt 0.394203 0.857210 +vt 0.491154 0.805650 +vt 0.482341 0.848396 +vt 0.482341 0.806531 +vt 0.432984 0.820097 +vt 0.429113 0.816226 +vt 0.427696 0.810938 +vt 0.429113 0.805650 +vt 0.432984 0.801778 +vt 0.443560 0.801778 +vt 0.448848 0.810938 +vt 0.447432 0.816226 +vt 0.443560 0.820097 +vt 0.183143 0.977716 +vt 0.176533 0.942461 +vt 0.202974 0.977716 +vt 0.183143 0.977716 +vt 0.216194 0.977716 +vt 0.145685 0.940257 +vt 0.145685 0.982123 +vt 0.159787 0.940698 +vt 0.433865 0.857210 +vt 0.442679 0.857210 +vt 0.394203 0.857210 +vt 0.395966 0.816226 +vt 0.482341 0.848396 +vt 0.394203 0.815345 +vt 0.183143 0.977716 +vt 0.176533 0.942461 +vt 0.202974 0.977716 +vt 0.183143 0.977716 +vt 0.216194 0.977716 +vt 0.178736 0.902799 +vt 0.145685 0.982123 +vt 0.183584 0.980360 +vt 0.433865 0.857210 +vt 0.442679 0.857210 +vt 0.394203 0.857210 +vt 0.443560 0.863820 +vt 0.482341 0.848396 +vt 0.433865 0.766869 +vt 0.183143 0.977716 +vt 0.176533 0.942461 +vt 0.202974 0.977716 +vt 0.183143 0.977716 +vt 0.216194 0.977716 +vt 0.183143 0.973309 +vt 0.145685 0.982123 +vt 0.178295 0.916901 +vt 0.433865 0.857210 +vt 0.442679 0.857210 +vt 0.394203 0.857210 +vt 0.432984 0.758056 +vt 0.482341 0.848396 +vt 0.442679 0.855007 +vt 0.157576 0.990331 +vt 0.135431 0.968187 +vt 0.127326 0.937937 +vt 0.157576 0.885542 +vt 0.187826 0.877436 +vt 0.218076 0.885542 +vt 0.248326 0.937937 +vt 0.240221 0.968187 +vt 0.218076 0.990331 +vt 0.449122 0.801583 +vt 0.438823 0.872634 +vt 0.438823 0.872634 +vt 0.438731 0.862351 +vt 0.438823 0.872634 +vt 0.203838 0.880765 +vt 0.194160 0.889579 +vt 0.194160 0.880765 +vt 0.203838 0.880765 +vt 0.194160 0.889579 +vt 0.194160 0.880765 +vt 0.180939 0.880765 +vt 0.167719 0.889579 +vt 0.167719 0.880765 +vt 0.203838 0.880765 +vt 0.194160 0.889579 +vt 0.194160 0.880765 +vt 0.180939 0.880765 +vt 0.167719 0.889579 +vt 0.167719 0.880765 +vt 0.180939 0.880765 +vt 0.167719 0.889579 +vt 0.167719 0.880765 +vt 0.180939 0.880765 +vt 0.167719 0.889579 +vt 0.167719 0.880765 +vt 0.194160 0.880765 +vt 0.180939 0.889579 +vt 0.180939 0.889579 +vt 0.180939 0.889579 +vt 0.203838 0.880765 +vt 0.194160 0.889579 +vt 0.180939 0.889579 +vt 0.425051 0.762463 +vt 0.438272 0.771276 +vt 0.429458 0.771276 +vt 0.438272 0.762462 +vt 0.447086 0.771276 +vt 0.451493 0.762462 +vt 0.453538 0.771276 +vt 0.425051 0.762462 +vt 0.438272 0.771276 +vt 0.429458 0.771276 +vt 0.451493 0.762462 +vt 0.438272 0.762462 +vt 0.461171 0.762462 +vt 0.447086 0.771276 +vt 0.438272 0.762462 +vt 0.429458 0.771276 +vt 0.425051 0.762462 +vt 0.451493 0.762463 +vt 0.438272 0.771276 +vt 0.461171 0.762463 +vt 0.447086 0.771276 +vt 0.438272 0.762462 +vt 0.429458 0.771276 +vt 0.425051 0.762462 +vt 0.447086 0.771276 +vt 0.438272 0.771276 +vt 0.451493 0.762462 +vt 0.453538 0.771276 +vt 0.574440 0.880554 +vt 0.565627 0.898182 +vt 0.565627 0.880554 +vt 0.574440 0.880554 +vt 0.565627 0.898182 +vt 0.565627 0.880554 +vt 0.583254 0.880554 +vt 0.574440 0.898182 +vt 0.574440 0.880554 +vt 0.583254 0.880554 +vt 0.574440 0.898182 +vt 0.583254 0.880554 +vt 0.574440 0.898182 +vt 0.589706 0.880554 +vt 0.583254 0.898182 +vt 0.583254 0.880554 +vt 0.574440 0.898182 +vt 0.574440 0.880554 +vt 0.589706 0.880554 +vt 0.583254 0.898182 +vt 0.589706 0.880554 +vt 0.583254 0.898182 +vt 0.565627 0.898182 +vt 0.565627 0.880554 +vt 0.589706 0.880554 +vt 0.583254 0.898182 +vt 0.565627 0.898182 +vt 0.565627 0.880554 +vt 0.180939 0.916020 +vt 0.176533 0.942461 +vt 0.172126 0.916020 +vt 0.180939 0.916020 +vt 0.176533 0.942461 +vt 0.172126 0.916020 +vt 0.189753 0.916020 +vt 0.180939 0.942461 +vt 0.180939 0.916020 +vt 0.189753 0.916020 +vt 0.180939 0.942461 +vt 0.189753 0.916020 +vt 0.180939 0.942461 +vt 0.196205 0.916020 +vt 0.185346 0.942461 +vt 0.189753 0.916020 +vt 0.180939 0.942461 +vt 0.180939 0.916020 +vt 0.196205 0.916020 +vt 0.185346 0.942461 +vt 0.196205 0.916020 +vt 0.185346 0.942461 +vt 0.172126 0.916020 +vt 0.176533 0.942461 +vt 0.196205 0.916020 +vt 0.185346 0.942461 +vt 0.176533 0.942461 +vt 0.172126 0.916020 +vt 0.176533 0.977716 +vt 0.176533 0.977716 +vt 0.176533 0.977716 +vt 0.180939 0.977716 +vt 0.180939 0.977716 +vt 0.180939 0.977716 +vt 0.188572 0.942461 +vt 0.185346 0.977716 +vt 0.180939 0.977716 +vt 0.188572 0.942461 +vt 0.185346 0.977716 +vt 0.188572 0.942461 +vt 0.185346 0.977716 +vt 0.176533 0.977716 +vt 0.188572 0.942461 +vt 0.185346 0.977716 +vt 0.552426 0.875649 +vt 0.522555 0.899546 +vt 0.528529 0.875649 +vt 0.593816 0.875649 +vt 0.582297 0.899546 +vt 0.576322 0.875649 +vt 0.552426 0.875649 +vt 0.522555 0.899546 +vt 0.528529 0.875649 +vt 0.528529 0.875649 +vt 0.552426 0.899546 +vt 0.522555 0.899546 +vt 0.552426 0.875649 +vt 0.522555 0.899546 +vt 0.528529 0.875649 +vt 0.576322 0.875649 +vt 0.552426 0.899546 +vt 0.576322 0.875649 +vt 0.552426 0.875649 +vt 0.576322 0.875649 +vt 0.552426 0.899546 +vt 0.593816 0.875649 +vt 0.582297 0.899546 +vt 0.552426 0.899546 +vt 0.604163 0.899546 +vt 0.582297 0.899546 +vt 0.593816 0.875649 +vt 0.582297 0.899546 +vt 0.453538 0.859413 +vt 0.442679 0.863820 +vt 0.447086 0.859413 +vt 0.453538 0.859414 +vt 0.442679 0.863820 +vt 0.447086 0.859414 +vt 0.438272 0.859413 +vt 0.433865 0.863820 +vt 0.429458 0.859413 +vt 0.453538 0.859413 +vt 0.442679 0.863820 +vt 0.447086 0.859413 +vt 0.438272 0.859413 +vt 0.433865 0.863820 +vt 0.429458 0.859414 +vt 0.438272 0.859413 +vt 0.433865 0.863820 +vt 0.429458 0.859413 +vt 0.438272 0.859413 +vt 0.433865 0.863820 +vt 0.429458 0.859413 +vt 0.447086 0.859413 +vt 0.438272 0.863820 +vt 0.438272 0.863820 +vt 0.438272 0.863820 +vt 0.453538 0.859413 +vt 0.442679 0.863820 +vt 0.438272 0.863820 +vt 0.465218 0.756009 +vt 0.491026 0.751602 +vt 0.491026 0.756009 +vt 0.394708 0.756009 +vt 0.429963 0.751602 +vt 0.429963 0.756009 +vt 0.465218 0.756009 +vt 0.491026 0.751602 +vt 0.491026 0.756009 +vt 0.394708 0.756009 +vt 0.429963 0.751602 +vt 0.429963 0.756009 +vt 0.394708 0.756009 +vt 0.429963 0.751602 +vt 0.429963 0.756009 +vt 0.394708 0.756009 +vt 0.429963 0.751602 +vt 0.429963 0.756009 +vt 0.465218 0.751602 +vt 0.465218 0.756009 +vt 0.465218 0.751602 +vt 0.465218 0.756009 +vt 0.465218 0.751602 +vt 0.491026 0.751602 +vt 0.491026 0.756009 +vt 0.465218 0.751602 +vt 0.491026 0.751602 +vt 0.491026 0.756009 +vt 0.203838 0.889579 +vt 0.203838 0.889579 +vt 0.203838 0.889579 +vt 0.203838 0.889579 +vt 0.461171 0.762462 +vt 0.453538 0.771276 +vt 0.453538 0.771276 +vt 0.461171 0.762462 +vt 0.589706 0.898182 +vt 0.589706 0.898182 +vt 0.589706 0.898182 +vt 0.589706 0.898182 +vt 0.188572 0.977716 +vt 0.188572 0.977716 +vt 0.188572 0.977716 +vt 0.188572 0.977716 +vt 0.604163 0.899546 +vt 0.604163 0.899546 +vt 0.593816 0.875649 +vt 0.604164 0.899546 +vt 0.445905 0.863820 +vt 0.445905 0.863820 +vt 0.445905 0.863820 +vt 0.445905 0.863820 +vt 0.394708 0.751602 +vt 0.394708 0.751602 +vt 0.394708 0.751602 +vt 0.394708 0.751602 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9363 0.3511 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.9363 -0.3511 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.9363 0.3511 0.0000 +vn -0.9363 -0.3511 0.0000 +vn 0.0000 0.3511 0.9363 +vn 0.0000 -0.3511 -0.9363 +vn 0.0000 0.3511 -0.9363 +vn 0.0000 -0.3511 0.9363 +vn 0.8660 0.0000 0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn 0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 -0.5000 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 -0.5000 +vn 0.6124 0.7071 0.3536 +vn 0.7071 0.7071 0.0000 +vn 0.6124 0.7071 -0.3536 +vn 0.3536 0.7071 -0.6124 +vn 0.0000 0.7071 -0.7071 +vn -0.3536 0.7071 -0.6124 +vn -0.6124 0.7071 -0.3536 +vn -0.7071 0.7071 0.0000 +vn -0.6124 0.7071 0.3536 +vn -0.3536 0.7071 0.6124 +vn -0.0000 0.7071 0.7071 +vn 0.3536 0.7071 0.6124 +vn -0.0000 0.3162 0.9487 +vn -0.4743 0.3162 0.8216 +vn -0.9487 0.3162 0.0000 +vn -0.8216 0.3162 -0.4743 +vn 0.8216 0.3162 -0.4743 +vn 0.9487 0.3162 0.0000 +vn 0.4743 0.3162 0.8216 +vn -0.8216 0.3162 0.4743 +vn 0.4743 0.3162 -0.8216 +vn -0.4743 0.3162 -0.8216 +vn 0.0000 0.3162 -0.9487 +vn 0.8216 0.3162 0.4743 +vn 0.0000 -0.4472 -0.8944 +vn 0.4472 -0.4472 -0.7746 +vn -0.7746 -0.4472 -0.4472 +vn -0.4472 -0.4472 -0.7746 +vn 0.8944 -0.4472 0.0000 +vn 0.7746 -0.4472 0.4472 +vn -0.4472 -0.4472 0.7746 +vn -0.0000 -0.4472 0.8944 +vn -0.8944 -0.4472 -0.0000 +vn 0.7746 -0.4472 -0.4472 +vn 0.4472 -0.4472 0.7746 +vn -0.7746 -0.4472 0.4472 +vn 0.3873 0.8944 0.2236 +vn 0.2236 0.8944 0.3873 +vn -0.2236 0.8944 0.3873 +vn -0.3873 0.8944 0.2236 +vn -0.0000 0.8944 -0.4472 +vn 0.2236 0.8944 -0.3873 +vn -0.3873 0.8944 -0.2236 +vn -0.2236 0.8944 -0.3873 +vn 0.4472 0.8944 -0.0000 +vn 0.0000 0.8944 0.4472 +vn -0.4472 0.8944 0.0000 +vn 0.3873 0.8944 -0.2236 +s off +f 231/325/48 227/326/48 223/327/48 +f 244/328/49 269/329/49 280/330/49 +f 244/328/49 279/331/49 243/332/49 +f 245/333/50 249/334/50 247/335/50 +f 248/336/51 249/337/51 252/338/51 +f 246/339/52 250/340/52 245/341/52 +f 248/342/53 251/343/53 246/344/53 +f 254/345/52 260/346/52 256/347/52 +f 253/348/48 258/349/48 254/350/48 +f 255/351/51 257/352/51 253/353/51 +f 256/354/49 259/355/49 255/356/49 +f 264/357/54 261/358/54 262/359/54 +f 265/360/55 268/361/55 266/362/55 +f 263/363/51 265/364/51 261/365/51 +f 264/366/49 267/367/49 263/368/49 +f 262/369/52 268/370/52 264/371/52 +f 261/372/48 266/373/48 262/374/48 +f 287/375/49 289/376/49 282/377/49 +f 234/378/49 270/379/49 269/329/49 +f 235/380/49 270/379/49 233/381/49 +f 236/382/49 271/383/49 235/380/49 +f 237/384/49 272/385/49 236/382/49 +f 238/386/49 273/387/49 237/384/49 +f 239/388/49 274/389/49 238/386/49 +f 240/390/49 275/391/49 239/388/49 +f 241/392/49 276/393/49 240/390/49 +f 242/394/49 277/395/49 241/392/49 +f 242/394/49 279/331/49 278/396/49 +f 293/397/56 297/398/56 295/399/56 +f 296/400/52 297/401/52 300/402/52 +f 294/403/51 298/404/51 293/405/51 +f 296/406/57 299/407/57 294/408/57 +f 302/409/51 308/410/51 304/411/51 +f 301/412/48 306/413/48 302/414/48 +f 303/415/52 305/416/52 301/417/52 +f 303/418/49 308/419/49 307/420/49 +f 312/421/55 309/422/55 310/423/55 +f 313/424/54 316/425/54 314/426/54 +f 311/427/52 313/428/52 309/429/52 +f 311/430/49 316/431/49 315/432/49 +f 310/433/51 316/434/51 312/435/51 +f 309/436/48 314/437/48 310/438/48 +f 317/439/58 321/440/58 319/441/58 +f 320/442/54 321/443/54 324/444/54 +f 318/445/55 322/446/55 317/447/55 +f 320/448/59 323/449/59 318/450/59 +f 326/451/55 332/452/55 328/453/55 +f 325/454/48 330/455/48 326/456/48 +f 327/457/54 329/458/54 325/459/54 +f 328/460/49 331/461/49 327/462/49 +f 336/463/52 333/464/52 334/465/52 +f 337/466/51 340/467/51 338/468/51 +f 335/469/54 337/470/54 333/471/54 +f 336/472/49 339/473/49 335/474/49 +f 334/475/55 340/476/55 336/477/55 +f 333/478/48 338/479/48 334/480/48 +f 341/481/60 345/482/60 343/483/60 +f 344/484/55 345/485/55 348/486/55 +f 342/487/54 346/488/54 341/489/54 +f 344/490/61 347/491/61 342/492/61 +f 350/493/54 356/494/54 352/495/54 +f 349/496/48 354/497/48 350/498/48 +f 351/499/55 353/500/55 349/501/55 +f 351/502/49 356/503/49 355/504/49 +f 360/505/51 357/506/51 358/507/51 +f 361/508/52 364/509/52 362/510/52 +f 359/511/55 361/512/55 357/513/55 +f 360/514/49 363/515/49 359/516/49 +f 358/517/54 364/518/54 360/519/54 +f 357/520/48 362/521/48 358/522/48 +f 369/523/49 373/524/49 365/525/49 +f 395/526/49 393/527/49 394/528/49 +f 391/529/51 396/530/51 392/531/51 +f 390/532/52 394/533/52 389/534/52 +f 392/535/55 395/536/55 390/537/55 +f 389/538/54 393/539/54 391/540/54 +f 223/327/48 222/541/48 221/542/48 +f 221/542/48 232/543/48 223/327/48 +f 232/543/48 231/325/48 223/327/48 +f 231/325/48 230/544/48 227/326/48 +f 230/544/48 229/545/48 227/326/48 +f 229/545/48 228/546/48 227/326/48 +f 227/326/48 226/547/48 225/548/48 +f 225/548/48 224/549/48 223/327/48 +f 227/326/48 225/548/48 223/327/48 +f 244/328/49 234/378/49 269/329/49 +f 244/328/49 280/330/49 279/331/49 +f 245/333/50 250/550/50 249/334/50 +f 248/336/51 247/551/51 249/337/51 +f 246/339/52 251/552/52 250/340/52 +f 248/342/53 252/553/53 251/343/53 +f 254/345/52 258/554/52 260/346/52 +f 253/348/48 257/555/48 258/349/48 +f 255/351/51 259/556/51 257/352/51 +f 256/354/49 260/557/49 259/355/49 +f 264/357/54 263/558/54 261/358/54 +f 265/360/55 267/559/55 268/361/55 +f 263/363/51 267/560/51 265/364/51 +f 264/366/49 268/561/49 267/367/49 +f 262/369/52 266/562/52 268/370/52 +f 261/372/48 265/563/48 266/373/48 +f 282/377/49 281/564/49 283/565/49 +f 283/565/49 284/566/49 282/377/49 +f 284/566/49 285/567/49 282/377/49 +f 285/567/49 286/568/49 287/375/49 +f 287/375/49 288/569/49 289/376/49 +f 289/376/49 290/570/49 291/571/49 +f 291/571/49 292/572/49 289/376/49 +f 292/572/49 282/377/49 289/376/49 +f 285/567/49 287/375/49 282/377/49 +f 234/378/49 233/381/49 270/379/49 +f 235/380/49 271/383/49 270/379/49 +f 236/382/49 272/385/49 271/383/49 +f 237/384/49 273/387/49 272/385/49 +f 238/386/49 274/389/49 273/387/49 +f 239/388/49 275/391/49 274/389/49 +f 240/390/49 276/393/49 275/391/49 +f 241/392/49 277/395/49 276/393/49 +f 242/394/49 278/396/49 277/395/49 +f 242/394/49 243/332/49 279/331/49 +f 293/397/56 298/573/56 297/398/56 +f 296/400/52 295/574/52 297/401/52 +f 294/403/51 299/575/51 298/404/51 +f 296/406/57 300/576/57 299/407/57 +f 302/409/51 306/577/51 308/410/51 +f 301/412/48 305/578/48 306/413/48 +f 303/415/52 307/579/52 305/416/52 +f 303/418/49 304/580/49 308/419/49 +f 312/421/55 311/581/55 309/422/55 +f 313/424/54 315/582/54 316/425/54 +f 311/427/52 315/583/52 313/428/52 +f 311/430/49 312/584/49 316/431/49 +f 310/433/51 314/585/51 316/434/51 +f 309/436/48 313/586/48 314/437/48 +f 317/439/58 322/587/58 321/440/58 +f 320/442/54 319/588/54 321/443/54 +f 318/445/55 323/589/55 322/446/55 +f 320/448/59 324/590/59 323/449/59 +f 326/451/55 330/591/55 332/452/55 +f 325/454/48 329/592/48 330/455/48 +f 327/457/54 331/593/54 329/458/54 +f 328/460/49 332/594/49 331/461/49 +f 336/463/52 335/595/52 333/464/52 +f 337/466/51 339/596/51 340/467/51 +f 335/469/54 339/597/54 337/470/54 +f 336/472/49 340/598/49 339/473/49 +f 334/475/55 338/599/55 340/476/55 +f 333/478/48 337/600/48 338/479/48 +f 341/481/60 346/601/60 345/482/60 +f 344/484/55 343/602/55 345/485/55 +f 342/487/54 347/603/54 346/488/54 +f 344/490/61 348/604/61 347/491/61 +f 350/493/54 354/605/54 356/494/54 +f 349/496/48 353/606/48 354/497/48 +f 351/499/55 355/607/55 353/500/55 +f 351/502/49 352/608/49 356/503/49 +f 360/505/51 359/609/51 357/506/51 +f 361/508/52 363/610/52 364/509/52 +f 359/511/55 363/611/55 361/512/55 +f 360/514/49 364/612/49 363/515/49 +f 358/517/54 362/613/54 364/518/54 +f 357/520/48 361/614/48 362/521/48 +f 365/525/49 366/615/49 367/616/49 +f 367/616/49 368/617/49 369/523/49 +f 369/523/49 370/618/49 373/524/49 +f 370/618/49 371/619/49 373/524/49 +f 371/619/49 372/620/49 373/524/49 +f 373/524/49 374/621/49 375/622/49 +f 375/622/49 376/623/49 365/525/49 +f 365/525/49 367/616/49 369/523/49 +f 373/524/49 375/622/49 365/525/49 +f 395/526/49 396/624/49 393/527/49 +f 391/529/51 393/625/51 396/530/51 +f 390/532/52 395/626/52 394/533/52 +f 392/535/55 396/627/55 395/536/55 +f 389/538/54 394/628/54 393/539/54 +s 1 +f 157/629/62 168/630/63 156/631/63 +f 154/632/64 165/633/65 153/634/65 +f 149/635/51 172/636/66 160/637/66 +f 151/638/67 162/639/68 150/640/68 +f 158/641/55 169/642/62 157/643/62 +f 155/644/52 166/645/64 154/646/64 +f 152/647/54 163/648/67 151/649/67 +f 159/650/69 170/651/55 158/641/55 +f 156/631/63 167/652/52 155/644/52 +f 153/634/65 164/653/54 152/647/54 +f 160/654/66 171/655/69 159/650/69 +f 150/640/68 161/656/51 149/635/51 +f 169/657/70 182/658/71 181/659/70 +f 170/660/71 183/661/72 182/658/71 +f 171/662/72 184/663/73 183/661/72 +f 172/664/73 173/665/74 184/666/73 +f 162/667/75 173/665/74 161/668/74 +f 163/669/76 174/670/75 162/667/75 +f 164/671/77 175/672/76 163/673/76 +f 165/674/78 176/675/77 164/671/77 +f 166/676/79 177/677/78 165/674/78 +f 167/678/80 178/679/79 166/680/79 +f 167/678/80 180/681/81 179/682/80 +f 168/683/81 181/684/70 180/681/81 +f 179/685/52 190/686/64 178/687/64 +f 176/688/54 187/689/67 175/690/67 +f 183/691/69 194/692/55 182/693/55 +f 180/694/63 191/695/52 179/685/52 +f 177/696/65 188/697/54 176/688/54 +f 184/698/66 195/699/69 183/691/69 +f 174/700/68 185/701/51 173/702/51 +f 181/703/62 192/704/63 180/694/63 +f 178/705/64 189/706/65 177/696/65 +f 173/702/51 196/707/66 184/708/66 +f 175/709/67 186/710/68 174/700/68 +f 182/693/55 193/711/62 181/712/62 +f 191/713/82 202/714/83 190/715/83 +f 188/716/84 199/717/85 187/718/85 +f 195/719/86 206/720/87 194/721/87 +f 192/722/88 203/723/82 191/713/82 +f 189/724/89 200/725/84 188/716/84 +f 196/726/90 207/727/86 195/719/86 +f 186/728/91 197/729/92 185/730/92 +f 193/731/93 204/732/88 192/722/88 +f 190/733/83 201/734/89 189/724/89 +f 196/735/90 197/729/92 208/736/90 +f 187/737/85 198/738/91 186/728/91 +f 194/721/87 205/739/93 193/740/93 +f 206/720/55 217/741/62 205/739/62 +f 203/723/52 214/742/64 202/714/64 +f 200/725/54 211/743/67 199/717/67 +f 207/727/69 218/744/55 206/720/55 +f 204/732/63 215/745/52 203/723/52 +f 201/734/65 212/746/54 200/725/54 +f 208/747/66 219/748/69 207/727/69 +f 198/738/68 209/749/51 197/729/51 +f 205/750/62 216/751/63 204/732/63 +f 202/752/64 213/753/65 201/734/65 +f 197/729/51 220/754/66 208/736/66 +f 199/755/67 210/756/68 198/738/68 +f 221/757/94 244/758/95 232/759/95 +f 223/760/96 233/761/97 222/762/97 +f 230/763/98 241/764/99 229/765/99 +f 226/766/100 239/767/101 238/768/100 +f 224/769/102 235/770/96 223/771/96 +f 231/772/103 242/773/98 230/763/98 +f 228/774/104 239/767/101 227/775/101 +f 225/776/105 236/777/102 224/769/102 +f 232/778/95 243/779/103 231/772/103 +f 222/762/97 234/780/94 221/757/94 +f 228/774/104 241/781/99 240/782/104 +f 226/783/100 237/784/105 225/776/105 +f 277/785/106 288/786/107 276/787/107 +f 274/788/108 285/789/109 273/790/109 +f 269/791/110 292/792/111 280/793/111 +f 271/794/112 281/795/113 270/796/113 +f 278/797/114 289/798/106 277/799/106 +f 275/800/115 286/801/108 274/802/108 +f 272/803/116 283/804/112 271/805/112 +f 279/806/117 290/807/114 278/797/114 +f 275/800/115 288/786/107 287/808/115 +f 273/790/109 284/809/116 272/803/116 +f 280/810/111 291/811/117 279/806/117 +f 270/796/113 282/812/110 269/791/110 +f 369/813/65 382/814/64 370/815/64 +f 376/816/66 378/817/51 365/818/51 +f 366/819/68 379/820/67 367/821/67 +f 373/822/62 386/823/55 374/824/55 +f 370/825/64 383/826/52 371/827/52 +f 367/828/67 380/829/54 368/830/54 +f 374/824/55 387/831/69 375/832/69 +f 371/827/52 384/833/63 372/834/63 +f 368/830/54 381/835/65 369/813/65 +f 375/832/69 388/836/66 376/837/66 +f 365/818/51 377/838/68 366/819/68 +f 372/834/63 385/839/62 373/840/62 +f 157/629/62 169/841/62 168/630/63 +f 154/632/64 166/842/64 165/633/65 +f 149/635/51 161/656/51 172/636/66 +f 151/638/67 163/843/67 162/639/68 +f 158/641/55 170/651/55 169/642/62 +f 155/644/52 167/652/52 166/645/64 +f 152/647/54 164/653/54 163/648/67 +f 159/650/69 171/655/69 170/651/55 +f 156/631/63 168/630/63 167/652/52 +f 153/634/65 165/633/65 164/653/54 +f 160/654/66 172/844/66 171/655/69 +f 150/640/68 162/639/68 161/656/51 +f 169/657/70 170/660/71 182/658/71 +f 170/660/71 171/662/72 183/661/72 +f 171/662/72 172/845/73 184/663/73 +f 172/664/73 161/668/74 173/665/74 +f 162/667/75 174/670/75 173/665/74 +f 163/669/76 175/846/76 174/670/75 +f 164/671/77 176/675/77 175/672/76 +f 165/674/78 177/677/78 176/675/77 +f 166/676/79 178/847/79 177/677/78 +f 167/678/80 179/682/80 178/679/79 +f 167/678/80 168/683/81 180/681/81 +f 168/683/81 169/848/70 181/684/70 +f 179/685/52 191/695/52 190/686/64 +f 176/688/54 188/697/54 187/689/67 +f 183/691/69 195/699/69 194/692/55 +f 180/694/63 192/704/63 191/695/52 +f 177/696/65 189/706/65 188/697/54 +f 184/698/66 196/849/66 195/699/69 +f 174/700/68 186/710/68 185/701/51 +f 181/703/62 193/850/62 192/704/63 +f 178/705/64 190/851/64 189/706/65 +f 173/702/51 185/701/51 196/707/66 +f 175/709/67 187/852/67 186/710/68 +f 182/693/55 194/692/55 193/711/62 +f 191/713/82 203/723/82 202/714/83 +f 188/716/84 200/725/84 199/717/85 +f 195/719/86 207/727/86 206/720/87 +f 192/722/88 204/732/88 203/723/82 +f 189/724/89 201/734/89 200/725/84 +f 196/726/90 208/747/90 207/727/86 +f 186/728/91 198/738/91 197/729/92 +f 193/731/93 205/750/93 204/732/88 +f 190/733/83 202/752/83 201/734/89 +f 196/735/90 185/730/92 197/729/92 +f 187/737/85 199/755/85 198/738/91 +f 194/721/87 206/720/87 205/739/93 +f 206/720/55 218/744/55 217/741/62 +f 203/723/52 215/745/52 214/742/64 +f 200/725/54 212/746/54 211/743/67 +f 207/727/69 219/748/69 218/744/55 +f 204/732/63 216/751/63 215/745/52 +f 201/734/65 213/753/65 212/746/54 +f 208/747/66 220/853/66 219/748/69 +f 198/738/68 210/756/68 209/749/51 +f 205/750/62 217/854/62 216/751/63 +f 202/752/64 214/855/64 213/753/65 +f 197/729/51 209/749/51 220/754/66 +f 199/755/67 211/856/67 210/756/68 +f 221/757/94 234/780/94 244/758/95 +f 223/760/96 235/857/96 233/761/97 +f 230/763/98 242/773/98 241/764/99 +f 226/766/100 227/775/101 239/767/101 +f 224/769/102 236/777/102 235/770/96 +f 231/772/103 243/779/103 242/773/98 +f 228/774/104 240/782/104 239/767/101 +f 225/776/105 237/784/105 236/777/102 +f 232/778/95 244/858/95 243/779/103 +f 222/762/97 233/761/97 234/780/94 +f 228/774/104 229/859/99 241/781/99 +f 226/783/100 238/860/100 237/784/105 +f 277/785/106 289/861/106 288/786/107 +f 274/788/108 286/862/108 285/789/109 +f 269/791/110 282/812/110 292/792/111 +f 271/794/112 283/863/112 281/795/113 +f 278/797/114 290/807/114 289/798/106 +f 275/800/115 287/808/115 286/801/108 +f 272/803/116 284/809/116 283/804/112 +f 279/806/117 291/811/117 290/807/114 +f 275/800/115 276/787/107 288/786/107 +f 273/790/109 285/789/109 284/809/116 +f 280/810/111 292/864/111 291/811/117 +f 270/796/113 281/795/113 282/812/110 +f 369/813/65 381/835/65 382/814/64 +f 376/816/66 388/865/66 378/817/51 +f 366/819/68 377/838/68 379/820/67 +f 373/822/62 385/866/62 386/823/55 +f 370/825/64 382/867/64 383/826/52 +f 367/828/67 379/868/67 380/829/54 +f 374/824/55 386/823/55 387/831/69 +f 371/827/52 383/826/52 384/833/63 +f 368/830/54 380/829/54 381/835/65 +f 375/832/69 387/831/69 388/836/66 +f 365/818/51 378/817/51 377/838/68 +f 372/834/63 384/833/63 385/839/62 o Glass v 0.000000 1.000000 -3.500000 v -1.339392 1.000000 -3.233578 @@ -81,309 +2048,1416 @@ v 2.474873 2.750000 -2.474874 v 2.092526 4.030330 -2.092527 v 1.339391 2.750000 -3.233579 v 1.132466 4.030330 -2.734019 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vn 0.5221 0.8250 -0.2163 -vn 0.5899 0.5513 -0.5899 -vn 0.3996 0.8250 -0.3996 -vn -0.3996 0.8250 0.3996 -vn -0.3193 0.5513 0.7707 -vn -0.2163 0.8250 0.5221 -vn 0.3193 0.5513 -0.7707 -vn 0.2163 0.8250 -0.5221 -vn 0.0000 0.5513 0.8343 -vn 0.0000 0.8250 0.5651 -vn 0.3193 0.5513 0.7707 -vn 0.2163 0.8250 0.5221 -vn 0.3996 0.8250 0.3996 -vn 0.5899 0.5513 0.5899 -vn -0.3996 0.8250 -0.3996 -vn -0.7707 0.5513 -0.3193 -vn -0.5221 0.8250 -0.2163 -vn 0.0000 0.5513 -0.8343 -vn 0.0000 0.8250 -0.5651 -vn 0.7707 0.5513 0.3193 -vn 0.5221 0.8250 0.2163 -vn -0.8343 0.5513 0.0000 -vn -0.5651 0.8250 0.0000 -vn 0.8343 0.5513 0.0000 -vn 0.5651 0.8250 0.0000 -vn -0.7707 0.5513 0.3193 -vn -0.5221 0.8250 0.2163 -vn 0.7707 0.5513 -0.3193 -vn -0.5899 0.5513 0.5899 -vn -0.3827 0.0000 -0.9239 -vn 0.0000 0.1938 -0.9810 -vn 0.0000 0.0000 -1.0000 -vn -0.3193 0.5513 -0.7707 -vn -0.5899 0.5513 -0.5899 -vn -0.9239 0.0000 -0.3827 -vn -0.6937 0.1938 -0.6937 +l 398 397 +l 399 398 +l 400 399 +l 401 400 +l 402 401 +l 403 402 +l 404 403 +l 405 404 +l 406 405 +l 407 406 +l 408 407 +l 409 408 +l 410 409 +l 411 410 +l 412 411 +l 397 412 +l 416 415 +l 415 413 +l 413 414 +l 414 416 +l 418 417 +l 417 415 +l 416 418 +l 420 419 +l 419 417 +l 418 420 +l 422 421 +l 421 419 +l 420 422 +l 424 423 +l 423 421 +l 422 424 +l 426 425 +l 425 423 +l 424 426 +l 428 427 +l 427 425 +l 426 428 +l 430 429 +l 429 427 +l 428 430 +l 432 431 +l 431 429 +l 430 432 +l 434 433 +l 433 431 +l 432 434 +l 436 435 +l 435 433 +l 434 436 +l 438 437 +l 437 435 +l 436 438 +l 440 439 +l 439 437 +l 438 440 +l 442 441 +l 441 439 +l 440 442 +l 444 443 +l 443 441 +l 442 444 +l 413 443 +l 444 414 +l 445 446 +l 446 447 +l 447 448 +l 448 445 +l 447 449 +l 449 450 +l 450 448 +l 449 451 +l 451 452 +l 452 450 +l 451 453 +l 453 454 +l 454 452 +l 453 455 +l 455 456 +l 456 454 +l 455 457 +l 457 458 +l 458 456 +l 457 459 +l 459 460 +l 460 458 +l 459 461 +l 461 462 +l 462 460 +l 461 463 +l 463 464 +l 464 462 +l 463 465 +l 465 466 +l 466 464 +l 465 467 +l 467 468 +l 468 466 +l 467 469 +l 469 470 +l 470 468 +l 469 471 +l 471 472 +l 472 470 +l 471 473 +l 473 474 +l 474 472 +l 473 475 +l 475 476 +l 476 474 +l 475 446 +l 445 476 +l 448 416 +l 414 445 +l 475 412 +l 397 446 +l 398 447 +l 444 476 +l 450 418 +l 399 449 +l 452 420 +l 400 451 +l 454 422 +l 401 453 +l 456 424 +l 402 455 +l 458 426 +l 403 457 +l 460 428 +l 404 459 +l 462 430 +l 405 461 +l 464 432 +l 406 463 +l 466 434 +l 407 465 +l 468 436 +l 408 467 +l 470 438 +l 409 469 +l 472 440 +l 410 471 +l 474 442 +l 411 473 +o TenpennyTower +v 0.625000 1.500000 0.375000 +v 1.375000 1.500000 0.625000 +v -2.500000 1.000000 1.500000 +v 2.500000 1.000000 1.500000 +v 0.125000 2.000000 0.375000 +v -0.125000 2.000000 0.625000 +v -2.500000 1.000000 -1.500000 +v 2.500000 1.000000 -1.500000 +v -0.125000 2.000000 -0.625000 +v 0.125000 2.000000 -0.375000 +v -1.250000 4.000000 -0.625000 +v -1.500000 4.000000 -0.375000 +v -1.500000 4.000000 0.375000 +v -1.250000 4.000000 0.625000 +v -0.125000 4.000000 0.625000 +v 0.125000 4.000000 0.375000 +v 0.125000 4.000000 -0.375000 +v -0.125000 4.000000 -0.625000 +v -1.250000 1.000000 -0.625000 +v 1.375000 1.500000 -0.375000 +v -1.500000 1.000000 -0.375000 +v 1.375000 1.000000 -0.375000 +v 2.375000 1.000000 -1.375000 +v -2.375000 1.000000 -1.375000 +v -1.500000 1.000000 0.375000 +v -1.250000 1.000000 0.625000 +v 0.125000 1.500000 0.625000 +v 0.125000 2.000000 0.625000 +v 0.375000 2.000000 0.375000 +v 0.375000 1.500000 0.375000 +v 0.375000 1.500000 -0.375000 +v 0.125000 1.500000 -0.625000 +v 0.375000 2.000000 -0.375000 +v 0.125000 2.000000 -0.625000 +v 1.375000 1.000000 0.375000 +v 2.375000 1.000000 1.375000 +v -2.375000 1.000000 1.375000 +v 1.375000 1.500000 0.375000 +v 0.625000 1.500000 -0.375000 +v 1.375000 1.500000 -0.625000 +v 1.375000 1.000000 0.625000 +v 0.625000 1.000000 0.375000 +v 0.625000 1.000000 -0.375000 +v 1.375000 1.000000 -0.625000 +v -2.500000 1.500000 -1.500000 +v -2.500000 1.500000 1.500000 +v 2.500000 1.500000 -1.500000 +v 2.375000 1.500000 -1.375000 +v -2.375000 1.500000 -1.375000 +v 2.375000 1.500000 1.375000 +v 2.500000 1.500000 1.500000 +v -2.375000 1.500000 1.375000 +v -0.187500 4.000000 0.084835 +v -0.452665 4.000000 0.350000 +v 0.077665 4.000000 0.350000 +v -0.187500 4.000000 0.615165 +v 2.500000 1.000000 -0.250000 +v 2.375000 1.000000 -0.250000 +v 2.500000 1.500000 -0.250000 +v 2.375000 1.500000 -0.250000 +v 2.500000 1.000000 0.250000 +v 2.375000 1.000000 0.250000 +v 2.500000 1.500000 0.250000 +v 2.375000 1.500000 0.250000 +v -0.187500 4.000000 -0.615165 +v -0.452665 4.000000 -0.350000 +v 0.077665 4.000000 -0.350000 +v -0.187500 4.000000 -0.084835 +v -1.187500 4.000000 0.084835 +v -1.452665 4.000000 0.350000 +v -0.922335 4.000000 0.350000 +v -1.187500 4.000000 0.615165 +v -1.187500 4.000000 -0.615165 +v -1.452665 4.000000 -0.350000 +v -0.922335 4.000000 -0.350000 +v -1.187500 4.000000 -0.084835 +v -0.187500 4.250000 0.084835 +v -0.452665 4.250000 0.350000 +v 0.077665 4.250000 0.350000 +v -0.187500 4.250000 0.615165 +v -0.187500 4.250000 -0.615165 +v -0.452665 4.250000 -0.350000 +v 0.077665 4.250000 -0.350000 +v -0.187500 4.250000 -0.084835 +v -1.187500 4.250000 0.084835 +v -1.452665 4.250000 0.350000 +v -0.922335 4.250000 0.350000 +v -1.187500 4.250000 0.615165 +v -1.187500 4.250000 -0.615165 +v -1.452665 4.250000 -0.350000 +v -0.922335 4.250000 -0.350000 +v -1.187500 4.250000 -0.084835 +v -0.187500 4.375000 0.217417 +v -0.320083 4.375000 0.350000 +v -0.054917 4.375000 0.350000 +v -0.187500 4.375000 0.482583 +v -0.187500 4.375000 -0.482583 +v -0.320083 4.375000 -0.350000 +v -0.054917 4.375000 -0.350000 +v -0.187500 4.375000 -0.217418 +v -1.187500 4.375000 0.217417 +v -1.320083 4.375000 0.350000 +v -1.054917 4.375000 0.350000 +v -1.187500 4.375000 0.482583 +v -1.187500 4.375000 -0.482583 +v -1.320083 4.375000 -0.350000 +v -1.054917 4.375000 -0.350000 +v -1.187500 4.375000 -0.217418 +v -1.250000 3.250000 -0.625000 +v -1.500000 3.250000 -0.375000 +v -1.500000 3.250000 0.375000 +v -1.250000 3.250000 0.625000 +v -0.125000 3.250000 0.625000 +v 0.125000 3.250000 0.375000 +v 0.125000 3.250000 -0.375000 +v -0.125000 3.250000 -0.625000 +v -0.125000 3.375000 -0.625000 +v 0.125000 3.375000 -0.375000 +v 0.125000 3.375000 0.375000 +v -0.125000 3.375000 0.625000 +v -1.250000 3.375000 0.625000 +v -1.500000 3.375000 0.375000 +v -1.500000 3.375000 -0.375000 +v -1.250000 3.375000 -0.625000 +v 0.187500 3.250000 0.375000 +v 0.187500 3.250000 -0.375000 +v 0.187500 3.375000 -0.375000 +v 0.187500 3.375000 0.375000 +v -1.562500 3.250000 -0.375000 +v -1.562500 3.250000 0.375000 +v -1.562500 3.375000 0.375000 +v -1.562500 3.375000 -0.375000 +v -0.125000 3.250000 -0.687500 +v -1.250000 3.250000 -0.687500 +v -1.250000 3.375000 -0.687500 +v -0.125000 3.375000 -0.687500 +v -1.250000 3.250000 0.687500 +v -0.125000 3.250000 0.687500 +v -0.125000 3.375000 0.687500 +v -1.250000 3.375000 0.687500 +vt 0.464930 0.988754 +vt 0.454188 0.999497 +vt 0.411218 0.988754 +vt 0.327609 0.916709 +vt 0.297465 0.997093 +vt 0.297465 0.916709 +vt 0.317561 0.997093 +vt 0.307513 0.916709 +vt 0.317561 0.916709 +vt 0.307513 0.916709 +vt 0.317561 0.997093 +vt 0.307513 0.997093 +vt 0.362778 0.876517 +vt 0.372826 0.997093 +vt 0.362778 0.997093 +vt 0.297465 0.876517 +vt 0.327609 0.997093 +vt 0.297465 0.997093 +vt 0.454188 0.929671 +vt 0.421961 0.929671 +vt 0.454188 0.918929 +vt 0.252249 0.876517 +vt 0.262297 0.997093 +vt 0.252249 0.997093 +vt 0.307513 0.896613 +vt 0.298769 0.916829 +vt 0.328914 0.896733 +vt 0.328914 0.916829 +vt 0.358172 0.916829 +vt 0.368220 0.896733 +vt 0.368220 0.916829 +vt 0.256289 0.916829 +vt 0.266337 0.896733 +vt 0.266337 0.916829 +vt 0.454188 0.918929 +vt 0.421961 0.918929 +vt 0.454188 0.908186 +vt 0.262297 0.876517 +vt 0.338636 0.896616 +vt 0.328588 0.876520 +vt 0.338636 0.876520 +vt 0.338636 0.876520 +vt 0.368780 0.896616 +vt 0.338636 0.896616 +vt 0.298443 0.896616 +vt 0.328588 0.876520 +vt 0.328588 0.896616 +vt 0.288395 0.896616 +vt 0.258251 0.876520 +vt 0.288395 0.876520 +vt 0.288395 0.896616 +vt 0.298443 0.876520 +vt 0.298443 0.896616 +vt 0.154072 0.897085 +vt 0.181586 0.909313 +vt 0.154072 0.909313 +vt 0.224385 0.999496 +vt 0.154072 0.996439 +vt 0.221328 0.996439 +vt 0.224385 0.877214 +vt 0.221328 0.880271 +vt 0.193814 0.909313 +vt 0.224385 0.897085 +vt 0.224385 0.909313 +vt 0.151015 0.999496 +vt 0.154072 0.880271 +vt 0.245784 0.897085 +vt 0.129616 0.909313 +vt 0.129616 0.897085 +vt 0.248841 0.897085 +vt 0.126559 0.909313 +vt 0.126559 0.897085 +vt 0.248841 0.897085 +vt 0.126559 0.909313 +vt 0.126559 0.897085 +vt 0.221328 0.897085 +vt 0.154072 0.909313 +vt 0.154072 0.897085 +vt 0.181586 0.877214 +vt 0.151015 0.877214 +vt 0.245784 0.897085 +vt 0.129616 0.909313 +vt 0.129616 0.897085 +vt 0.224385 0.897085 +vt 0.151015 0.909313 +vt 0.151015 0.897085 +vt 0.151015 0.909313 +vt 0.181586 0.897085 +vt 0.181586 0.909313 +vt 0.193814 0.897085 +vt 0.221328 0.909313 +vt 0.193814 0.909313 +vt 0.193814 0.877214 +vt 0.126559 0.897085 +vt 0.129616 0.909313 +vt 0.126559 0.909313 +vt 0.245784 0.909313 +vt 0.248841 0.897085 +vt 0.248841 0.909313 +vt 0.441719 0.943099 +vt 0.453113 0.937402 +vt 0.447416 0.943099 +vt 0.464507 0.986068 +vt 0.453113 0.980372 +vt 0.453113 0.974674 +vt 0.464507 0.943099 +vt 0.453113 0.931705 +vt 0.453113 0.991765 +vt 0.458810 0.986068 +vt 0.332035 0.989268 +vt 0.321378 0.999317 +vt 0.321378 0.989268 +vt 0.316963 0.989268 +vt 0.306305 0.999317 +vt 0.306305 0.989268 +vt 0.276771 0.989268 +vt 0.266113 0.999317 +vt 0.266113 0.989268 +vt 0.295648 0.999317 +vt 0.295648 0.989268 +vt 0.255456 0.999317 +vt 0.255456 0.989268 +vt 0.310720 0.999317 +vt 0.310720 0.989268 +vt 0.372227 0.989268 +vt 0.361570 0.999317 +vt 0.361570 0.989268 +vt 0.350912 0.999317 +vt 0.350912 0.989268 +vt 0.316963 0.989268 +vt 0.306305 0.999317 +vt 0.306305 0.989268 +vt 0.276771 0.989268 +vt 0.266113 0.999317 +vt 0.266113 0.989268 +vt 0.295648 0.999317 +vt 0.295648 0.989268 +vt 0.255456 0.999317 +vt 0.255456 0.989268 +vt 0.332035 0.989268 +vt 0.321378 0.999317 +vt 0.321378 0.989268 +vt 0.372227 0.989268 +vt 0.361570 0.999317 +vt 0.361570 0.989268 +vt 0.310720 0.999317 +vt 0.310720 0.989268 +vt 0.350912 0.999317 +vt 0.350912 0.989268 +vt 0.423035 0.937402 +vt 0.423035 0.948796 +vt 0.417338 0.943099 +vt 0.458810 0.943099 +vt 0.453113 0.948796 +vt 0.423035 0.980372 +vt 0.423035 0.991765 +vt 0.417338 0.986068 +vt 0.447416 0.986068 +vt 0.441719 0.986068 +vt 0.453113 0.954493 +vt 0.423035 0.954493 +vt 0.428732 0.943099 +vt 0.434429 0.943099 +vt 0.453113 0.997463 +vt 0.423035 0.997463 +vt 0.428732 0.986068 +vt 0.434429 0.986068 +vt 0.423035 0.931705 +vt 0.423035 0.974674 +vt 0.411641 0.943099 +vt 0.411641 0.986068 +vt 0.413651 0.967078 +vt 0.426211 0.967078 +vt 0.416163 0.967078 +vt 0.456355 0.967078 +vt 0.468915 0.967078 +vt 0.466403 0.967078 +vt 0.426211 0.967078 +vt 0.413651 0.967078 +vt 0.416163 0.967078 +vt 0.468915 0.962054 +vt 0.456355 0.967078 +vt 0.468915 0.967078 +vt 0.456355 0.962054 +vt 0.426211 0.967078 +vt 0.426211 0.962054 +vt 0.426211 0.962054 +vt 0.456355 0.962054 +vt 0.426211 0.967078 +vt 0.413651 0.962054 +vt 0.416163 0.962054 +vt 0.413651 0.962054 +vt 0.426211 0.962054 +vt 0.456355 0.962054 +vt 0.456355 0.962054 +vt 0.426211 0.962054 +vt 0.456355 0.967078 +vt 0.468915 0.962054 +vt 0.456355 0.967078 +vt 0.466403 0.962054 +vt 0.466403 0.962054 +vt 0.466403 0.967078 +vt 0.416163 0.962054 +vt 0.421960 0.999497 +vt 0.411218 0.940413 +vt 0.464930 0.940413 +vt 0.421961 0.929671 +vt 0.454188 0.929671 +vt 0.327609 0.997093 +vt 0.307513 0.997093 +vt 0.317561 0.916709 +vt 0.372826 0.876517 +vt 0.327609 0.876517 +vt 0.411218 0.940413 +vt 0.411218 0.929671 +vt 0.421961 0.918929 +vt 0.464930 0.929671 +vt 0.464930 0.940413 +vt 0.307513 0.916709 +vt 0.257273 0.896613 +vt 0.257273 0.876517 +vt 0.298769 0.896733 +vt 0.358172 0.896733 +vt 0.256289 0.896733 +vt 0.411218 0.929671 +vt 0.411218 0.875959 +vt 0.421961 0.908186 +vt 0.421961 0.875959 +vt 0.454188 0.875959 +vt 0.464930 0.875959 +vt 0.464930 0.929671 +vt 0.317561 0.896613 +vt 0.317561 0.916709 +vt 0.367802 0.876517 +vt 0.367802 0.896613 +vt 0.328588 0.896616 +vt 0.368780 0.876520 +vt 0.298443 0.876520 +vt 0.258251 0.896616 +vt 0.288395 0.876520 +vt 0.181586 0.897085 +vt 0.193814 0.897085 +vt 0.245784 0.909313 +vt 0.248841 0.909313 +vt 0.248841 0.909313 +vt 0.221328 0.909313 +vt 0.181586 0.880271 +vt 0.245784 0.909313 +vt 0.224385 0.909313 +vt 0.151015 0.897085 +vt 0.221328 0.897085 +vt 0.193814 0.880271 +vt 0.129616 0.897085 +vt 0.245784 0.897085 +vt 0.332035 0.999317 +vt 0.316963 0.999317 +vt 0.276771 0.999317 +vt 0.372227 0.999317 +vt 0.316963 0.999317 +vt 0.276771 0.999317 +vt 0.332035 0.999317 +vt 0.372227 0.999317 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +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.9063 0.1938 -0.3754 -vn -0.9239 0.0000 0.3827 -vn -0.9810 0.1938 0.0000 vn -0.7071 0.0000 0.7071 -vn -0.9063 0.1938 0.3754 -vn -0.3827 0.0000 0.9239 -vn -0.6937 0.1938 0.6937 +vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 -vn -0.3754 0.1938 0.9063 -vn 0.3827 0.0000 0.9239 -vn 0.0000 0.1938 0.9810 -vn 0.7071 0.0000 0.7071 -vn 0.3754 0.1938 0.9063 -vn 0.9239 0.0000 0.3827 -vn 0.6937 0.1938 0.6937 +vn 0.5657 0.6000 0.5657 +vn 0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 0.5657 +vn 0.0000 -1.0000 0.0000 +s off +f 487/869/118 488/870/118 490/871/118 +f 486/872/119 492/873/119 481/874/119 +f 494/875/120 486/876/120 485/877/120 +f 482/878/121 492/879/121 491/880/121 +f 495/881/122 488/882/122 487/883/122 +f 497/884/123 489/885/123 488/886/123 +f 486/887/118 481/888/118 509/889/118 +f 501/890/124 490/891/124 489/892/124 +f 495/881/125 485/877/125 508/893/125 +f 505/894/119 507/895/119 509/896/119 +f 504/897/121 506/898/121 505/899/121 +f 509/900/120 508/901/120 510/902/120 +f 507/903/118 506/904/118 515/905/118 +f 482/878/126 490/891/126 502/906/126 +f 516/907/119 498/908/119 520/909/119 +f 519/910/126 496/911/126 515/912/126 +f 477/913/119 519/914/119 515/915/119 +f 477/916/125 511/917/125 518/918/125 +f 478/919/119 511/920/119 514/921/119 +f 499/922/123 536/923/123 524/924/123 +f 521/925/118 528/926/118 525/927/118 +f 523/928/118 525/927/118 524/929/118 +f 535/930/119 484/931/119 523/932/119 +f 522/933/118 526/934/118 528/926/118 +f 513/935/125 526/936/125 512/937/125 +f 483/938/125 523/939/125 484/940/125 +f 480/941/126 522/942/126 479/943/126 +f 500/944/119 528/945/119 513/946/119 +f 539/947/118 526/934/118 527/948/118 +f 499/949/126 525/950/126 500/951/126 +f 479/952/123 521/953/123 483/954/123 +f 527/955/119 537/956/119 539/957/119 +f 538/958/123 526/959/123 540/960/123 +f 524/929/118 535/961/118 523/928/118 +f 537/962/125 540/963/125 539/964/125 +f 536/965/126 533/966/126 535/967/126 +f 560/968/127 575/969/127 576/970/127 +f 565/971/128 583/972/128 567/973/128 +f 557/974/128 575/969/128 559/975/128 +f 565/971/129 582/976/129 581/977/129 +f 530/978/122 553/979/122 529/980/122 +f 543/981/121 560/982/121 544/983/121 +f 551/984/121 568/985/121 552/986/121 +f 544/983/124 558/987/124 542/988/124 +f 552/986/124 566/989/124 550/990/124 +f 529/980/120 555/991/120 531/992/120 +f 546/993/122 561/994/122 545/995/122 +f 545/995/120 563/996/120 547/997/120 +f 531/998/121 556/999/121 532/1000/121 +f 547/1001/121 564/1002/121 548/1003/121 +f 532/1000/124 554/1004/124 530/1005/124 +f 548/1003/124 562/1006/124 546/1007/124 +f 542/1008/122 557/1009/122 541/1010/122 +f 550/1011/122 565/1012/122 549/1013/122 +f 541/1010/120 559/1014/120 543/1015/120 +f 549/1013/120 567/1016/120 551/1017/120 +f 571/1018/118 570/1019/118 572/1020/118 +f 576/970/118 573/1021/118 574/1022/118 +f 579/1023/118 578/1024/118 580/1025/118 +f 584/1026/118 581/977/118 582/976/118 +f 567/973/127 584/1026/127 568/1027/127 +f 560/968/130 574/1022/130 558/1028/130 +f 554/1029/129 569/1030/129 553/1031/129 +f 568/1027/130 582/976/130 566/1032/130 +f 562/1033/129 577/1034/129 561/1035/129 +f 553/1031/128 571/1018/128 555/1036/128 +f 563/1037/128 577/1034/128 579/1023/128 +f 555/1036/127 572/1020/127 556/1038/127 +f 563/1037/127 580/1025/127 564/1039/127 +f 556/1038/130 570/1019/130 554/1029/130 +f 564/1039/130 578/1024/130 562/1033/130 +f 557/974/129 574/1022/129 573/1021/129 +f 615/1040/118 595/1041/118 596/1042/118 +f 594/1043/118 612/1044/118 593/1045/118 +f 598/1046/118 616/1047/118 597/1048/118 +f 610/1049/122 608/1050/122 611/1051/122 +f 602/1052/119 604/1053/119 601/1054/119 +f 602/1052/131 590/1055/131 591/1056/131 +f 607/1057/124 613/1058/124 616/1047/124 +f 604/1053/118 594/1043/118 595/1041/118 +f 589/1059/131 601/1054/131 614/1060/131 +f 606/1061/123 608/1050/123 605/1062/123 +f 606/1061/131 586/1063/131 587/1064/131 +f 603/1065/120 609/1066/120 612/1044/120 +f 608/1050/118 598/1046/118 599/1067/118 +f 585/1068/131 605/1062/131 610/1049/131 +f 610/1049/125 612/1044/125 609/1066/125 +f 610/1049/131 592/1069/131 585/1068/131 +f 611/1051/118 599/1067/118 600/1070/118 +f 612/1044/118 600/1070/118 593/1045/118 +f 606/1061/131 588/1071/131 613/1058/131 +f 614/1060/126 616/1047/126 613/1058/126 +f 614/1060/131 588/1071/131 589/1059/131 +f 614/1060/121 604/1053/121 615/1040/121 +f 616/1047/118 596/1042/118 597/1048/118 +f 602/1052/131 592/1069/131 609/1066/131 +f 488/870/118 489/1072/118 490/871/118 +f 490/871/118 491/1073/118 494/1074/118 +f 491/1073/118 492/1075/118 494/1074/118 +f 492/1075/118 493/1076/118 494/1074/118 +f 494/1074/118 487/869/118 490/871/118 +f 486/872/119 493/1077/119 492/873/119 +f 494/875/120 493/1078/120 486/876/120 +f 482/878/121 481/1079/121 492/879/121 +f 495/881/122 497/1080/122 488/882/122 +f 497/884/123 501/1081/123 489/885/123 +f 481/888/118 482/1082/118 504/1083/118 +f 504/1083/118 505/1084/118 481/888/118 +f 505/1084/118 509/889/118 481/888/118 +f 509/889/118 510/1085/118 486/887/118 +f 510/1085/118 485/1086/118 486/887/118 +f 501/890/124 502/906/124 490/891/124 +f 495/881/125 487/883/125 485/877/125 +f 487/883/125 494/875/125 485/877/125 +f 485/877/125 510/1087/125 508/893/125 +f 516/1088/125 520/1089/125 508/893/125 +f 520/1089/125 495/881/125 508/893/125 +f 505/894/119 506/1090/119 507/895/119 +f 504/897/121 503/1091/121 506/898/121 +f 509/900/120 507/1092/120 508/901/120 +f 503/1093/118 478/1094/118 477/1095/118 +f 478/1094/118 514/1096/118 477/1095/118 +f 506/904/118 503/1093/118 477/1095/118 +f 515/905/118 496/1097/118 516/1098/118 +f 506/904/118 477/1095/118 515/905/118 +f 516/1098/118 508/1099/118 515/905/118 +f 508/1099/118 507/903/118 515/905/118 +f 503/1100/126 504/1101/126 482/878/126 +f 482/878/126 491/880/126 490/891/126 +f 502/906/126 517/1102/126 503/1100/126 +f 517/1102/126 478/1103/126 503/1100/126 +f 503/1100/126 482/878/126 502/906/126 +f 516/907/119 496/1104/119 498/908/119 +f 519/910/126 498/1105/126 496/911/126 +f 477/913/119 518/1106/119 519/914/119 +f 477/916/125 514/1107/125 511/917/125 +f 478/919/119 517/1108/119 511/920/119 +f 499/922/123 534/1109/123 536/923/123 +f 521/925/118 522/933/118 528/926/118 +f 523/928/118 521/925/118 525/927/118 +f 535/930/119 533/1110/119 484/931/119 +f 522/933/118 527/948/118 526/934/118 +f 513/935/125 528/1111/125 526/936/125 +f 483/938/125 521/1112/125 523/939/125 +f 480/941/126 527/1113/126 522/942/126 +f 500/944/119 525/1114/119 528/945/119 +f 539/947/118 540/1115/118 526/934/118 +f 499/949/126 524/1116/126 525/950/126 +f 479/952/123 522/1117/123 521/953/123 +f 527/955/119 480/1118/119 537/956/119 +f 538/958/123 512/1119/123 526/959/123 +f 524/929/118 536/1120/118 535/961/118 +f 537/962/125 538/1121/125 540/963/125 +f 536/965/126 534/1122/126 533/966/126 +f 560/968/127 559/975/127 575/969/127 +f 565/971/128 581/977/128 583/972/128 +f 557/974/128 573/1021/128 575/969/128 +f 565/971/129 566/1032/129 582/976/129 +f 530/978/122 554/1123/122 553/979/122 +f 543/981/121 559/1124/121 560/982/121 +f 551/984/121 567/1125/121 568/985/121 +f 544/983/124 560/982/124 558/987/124 +f 552/986/124 568/985/124 566/989/124 +f 529/980/120 553/979/120 555/991/120 +f 546/993/122 562/1126/122 561/994/122 +f 545/995/120 561/994/120 563/996/120 +f 531/998/121 555/1127/121 556/999/121 +f 547/1001/121 563/1128/121 564/1002/121 +f 532/1000/124 556/999/124 554/1004/124 +f 548/1003/124 564/1002/124 562/1006/124 +f 542/1008/122 558/1129/122 557/1009/122 +f 550/1011/122 566/1130/122 565/1012/122 +f 541/1010/120 557/1009/120 559/1014/120 +f 549/1013/120 565/1012/120 567/1016/120 +f 571/1018/118 569/1030/118 570/1019/118 +f 576/970/118 575/969/118 573/1021/118 +f 579/1023/118 577/1034/118 578/1024/118 +f 584/1026/118 583/972/118 581/977/118 +f 567/973/127 583/972/127 584/1026/127 +f 560/968/130 576/970/130 574/1022/130 +f 554/1029/129 570/1019/129 569/1030/129 +f 568/1027/130 584/1026/130 582/976/130 +f 562/1033/129 578/1024/129 577/1034/129 +f 553/1031/128 569/1030/128 571/1018/128 +f 563/1037/128 561/1035/128 577/1034/128 +f 555/1036/127 571/1018/127 572/1020/127 +f 563/1037/127 579/1023/127 580/1025/127 +f 556/1038/130 572/1020/130 570/1019/130 +f 564/1039/130 580/1025/130 578/1024/130 +f 557/974/129 558/1028/129 574/1022/129 +f 615/1040/118 604/1053/118 595/1041/118 +f 594/1043/118 603/1065/118 612/1044/118 +f 598/1046/118 607/1057/118 616/1047/118 +f 610/1049/122 605/1062/122 608/1050/122 +f 602/1052/119 603/1065/119 604/1053/119 +f 602/1052/131 601/1054/131 590/1055/131 +f 607/1057/124 606/1061/124 613/1058/124 +f 604/1053/118 603/1065/118 594/1043/118 +f 589/1059/131 590/1055/131 601/1054/131 +f 606/1061/123 607/1057/123 608/1050/123 +f 606/1061/131 605/1062/131 586/1063/131 +f 603/1065/120 602/1052/120 609/1066/120 +f 608/1050/118 607/1057/118 598/1046/118 +f 585/1068/131 586/1063/131 605/1062/131 +f 610/1049/125 611/1051/125 612/1044/125 +f 610/1049/131 609/1066/131 592/1069/131 +f 611/1051/118 608/1050/118 599/1067/118 +f 612/1044/118 611/1051/118 600/1070/118 +f 606/1061/131 587/1064/131 588/1071/131 +f 614/1060/126 615/1040/126 616/1047/126 +f 614/1060/131 613/1058/131 588/1071/131 +f 614/1060/121 601/1054/121 604/1053/121 +f 616/1047/118 615/1040/118 596/1042/118 +f 602/1052/131 591/1056/131 592/1069/131 +o RivetCity +v -0.750000 1.000000 2.750000 +v -1.000000 1.000000 2.250000 +v 0.000000 1.000000 2.250000 +v -0.250000 1.000000 2.750000 +v -1.000000 1.375000 2.250000 +v -0.750000 1.375000 2.750000 +v -0.250000 1.375000 2.750000 +v 0.000000 1.375000 2.250000 +v 0.250000 1.500000 2.250000 +v 0.000000 1.500000 2.750000 +v 0.250000 1.375000 2.250000 +v 0.000000 1.375000 2.750000 +v -1.000000 1.500000 2.750000 +v -1.250000 1.500000 2.250000 +v -1.000000 1.375000 2.750000 +v -1.250000 1.375000 2.250000 +v 0.000000 1.500000 2.500000 +v -1.000000 1.500000 2.500000 +v -1.000000 1.625000 2.500000 +v 0.000000 1.625000 2.500000 +v -0.062500 1.625000 -0.375000 +v -0.062500 1.625000 0.375000 +v -0.437500 1.625000 -0.375000 +v -0.437500 1.625000 0.375000 +v -0.062500 1.875000 -0.375000 +v -0.062500 1.875000 0.375000 +v -0.437500 1.875000 -0.375000 +v -0.437500 1.875000 0.375000 +v -0.062500 2.062500 -0.312500 +v -0.062500 2.062500 0.312500 +v -0.437500 2.062500 -0.312500 +v -0.437500 2.062500 0.312500 +v -0.375000 2.062500 0.250000 +v -0.125000 2.062500 0.250000 +v -0.375000 2.062500 -0.125000 +v -0.125000 2.062500 -0.125000 +v -0.375000 2.375000 -0.125000 +v -0.375000 2.375000 0.250000 +v -0.125000 2.375000 0.250000 +v -0.125000 2.375000 -0.125000 +v 0.750000 1.125000 0.500000 +v 2.250000 1.125000 0.500000 +v 0.750000 1.125000 -1.000000 +v 2.250000 1.125000 -1.000000 +v 2.250000 1.000000 -1.000000 +v 0.750000 1.000000 -1.000000 +v 2.250000 1.000000 0.500000 +v 0.750000 1.000000 0.500000 +v -0.125000 2.062500 -0.187500 +v -0.125000 2.062500 -0.312500 +v 0.375000 2.187500 -0.187500 +v 0.375000 2.187500 -0.312500 +v -0.250000 2.187500 -0.187500 +v -0.250000 2.187500 -0.312500 +v -0.250000 2.061500 -0.187500 +v -0.250000 2.061500 -0.312500 +v 1.000000 1.125000 -0.062500 +v 1.375000 1.125000 -0.062500 +v 1.000000 1.125000 -0.437500 +v 1.375000 1.125000 -0.437500 +v 1.000000 1.625000 -0.437500 +v 1.000000 1.625000 -0.062500 +v 1.375000 1.625000 -0.062500 +v 1.375000 1.625000 -0.437500 +v 1.000000 1.562500 -0.312500 +v 1.000000 1.562500 -0.187500 +v -0.000000 1.562500 -0.312500 +v -0.000000 1.562500 -0.187500 +v -1.250000 1.375000 -1.000000 +v -1.250000 1.500000 -1.000000 +v 0.000000 1.000000 -1.000000 +v -1.000000 1.375000 -1.000000 +v -1.000000 1.000000 -1.000000 +v -1.000000 1.625000 -1.000000 +v -1.000000 1.500000 -1.000000 +v 0.000000 1.375000 -1.000000 +v 0.250000 1.500000 -1.000000 +v 0.250000 1.375000 -1.000000 +v 0.000000 1.625000 -1.000000 +v 0.000000 1.500000 -1.000000 +v -1.000000 0.676476 -2.707407 +v 0.000000 0.676476 -2.707407 +v -1.000000 1.038698 -2.804464 +v 0.000000 1.038698 -2.804464 +v 0.250000 1.159439 -2.836817 +v 0.250000 1.038698 -2.804464 +v -1.250000 1.038698 -2.804464 +v -1.250000 1.159439 -2.836817 +v 0.000000 1.224144 -2.595335 +v -1.000000 1.224144 -2.595335 +v -1.000000 1.344885 -2.627687 +v 0.000000 1.344885 -2.627687 +v -1.250000 1.362222 -1.597057 +v -1.250000 1.482963 -1.629410 +v 0.000000 1.000000 -1.500000 +v -1.000000 1.362222 -1.597057 +v -1.000000 1.000000 -1.500000 +v -1.000000 1.603703 -1.661762 +v -1.000000 1.482963 -1.629410 +v 0.000000 1.362222 -1.597057 +v 0.250000 1.482963 -1.629410 +v 0.250000 1.362222 -1.597057 +v 0.000000 1.603703 -1.661762 +v 0.000000 1.482963 -1.629410 +v -0.673266 1.795531 1.082261 +v -0.459279 1.670993 0.800614 +v -0.650436 1.750751 1.119408 +v -0.436449 1.626214 0.837760 +v -0.599211 1.761568 1.153543 +v -0.385224 1.637031 0.871897 +v -0.570817 1.817165 1.150534 +v -0.356830 1.692627 0.868886 +v -0.593647 1.861944 1.113387 +v -0.379660 1.737407 0.831740 +v -0.644872 1.851127 1.079251 +v -0.430885 1.726590 0.797604 +v -0.301061 1.619542 0.693927 +v -0.417142 1.849616 1.252941 +v -0.826940 1.763080 0.979854 +v -0.619259 1.856536 1.096319 +v -0.619259 1.856536 1.096319 +v -0.612835 1.972439 1.049951 +v -0.547930 1.815023 1.002437 +vt 0.083449 0.926311 +vt 0.012034 0.934551 +vt 0.012034 0.926311 +vt 0.034962 0.934551 +vt 0.029468 0.926311 +vt 0.034962 0.926311 +vt 0.051442 0.934551 +vt 0.045949 0.926311 +vt 0.051442 0.926311 +vt 0.051442 0.988258 +vt 0.051442 0.999245 +vt 0.045949 0.999245 +vt 0.029468 0.988258 +vt 0.029468 0.999245 +vt 0.023975 0.988258 +vt 0.056936 0.934551 +vt 0.051442 0.937298 +vt 0.051442 0.934551 +vt 0.083449 0.934551 +vt 0.012034 0.937298 +vt 0.012034 0.934551 +vt 0.051442 0.916843 +vt 0.056936 0.988258 +vt 0.029468 0.934551 +vt 0.023975 0.937298 +vt 0.023975 0.934551 +vt 0.045949 0.934551 +vt 0.029468 0.937298 +vt 0.041829 0.943776 +vt 0.050069 0.930043 +vt 0.050069 0.943776 +vt 0.051442 0.916843 +vt 0.029468 0.993752 +vt 0.051442 0.993752 +vt 0.051442 0.940045 +vt 0.029468 0.937298 +vt 0.051442 0.937298 +vt 0.118318 0.940045 +vt 0.041409 0.937298 +vt 0.118318 0.937298 +vt 0.071623 0.945538 +vt 0.056516 0.949658 +vt 0.055143 0.945538 +vt 0.083030 0.945538 +vt 0.074789 0.940045 +vt 0.083030 0.940045 +vt 0.055143 0.940045 +vt 0.071623 0.940045 +vt 0.050069 0.945538 +vt 0.041829 0.940045 +vt 0.050069 0.940045 +vt 0.069716 0.945538 +vt 0.053235 0.940045 +vt 0.069716 0.940045 +vt 0.041829 0.949658 +vt 0.041829 0.945538 +vt 0.054609 0.949658 +vt 0.053235 0.945538 +vt 0.074789 0.949658 +vt 0.074789 0.945538 +vt 0.048696 0.931416 +vt 0.043202 0.939656 +vt 0.043202 0.931416 +vt 0.081656 0.949658 +vt 0.076163 0.956525 +vt 0.076163 0.949658 +vt 0.048696 0.949658 +vt 0.043202 0.956525 +vt 0.043202 0.949658 +vt 0.064222 0.949658 +vt 0.055982 0.956525 +vt 0.055982 0.949658 +vt 0.068877 0.949658 +vt 0.060636 0.956525 +vt 0.060636 0.949658 +vt 0.056936 0.926311 +vt 0.023975 0.929058 +vt 0.023975 0.926311 +vt 0.100883 0.926311 +vt 0.067923 0.929058 +vt 0.067923 0.926311 +vt 0.083449 0.926311 +vt 0.050488 0.929058 +vt 0.050488 0.926311 +vt 0.074370 0.926311 +vt 0.041409 0.929058 +vt 0.041409 0.926311 +vt 0.100883 0.949804 +vt 0.067923 0.916843 +vt 0.067923 0.949804 +vt 0.068342 0.952405 +vt 0.065595 0.949658 +vt 0.068342 0.949658 +vt 0.045949 0.943776 +vt 0.059682 0.941030 +vt 0.059682 0.943776 +vt 0.056516 0.949636 +vt 0.059263 0.952405 +vt 0.056516 0.952405 +vt 0.048696 0.949658 +vt 0.045949 0.952405 +vt 0.045949 0.949636 +vt 0.076163 0.949658 +vt 0.078910 0.952405 +vt 0.065176 0.952405 +vt 0.081656 0.938283 +vt 0.073416 0.946523 +vt 0.073416 0.938283 +vt 0.071089 0.929058 +vt 0.062849 0.940045 +vt 0.062849 0.929058 +vt 0.062010 0.929058 +vt 0.053770 0.940045 +vt 0.053770 0.929058 +vt 0.051442 0.929058 +vt 0.043202 0.940045 +vt 0.043202 0.929058 +vt 0.081656 0.929058 +vt 0.073416 0.940045 +vt 0.073416 0.929058 +vt 0.051442 0.931950 +vt 0.073416 0.934697 +vt 0.073416 0.931950 +vt 0.056936 0.887468 +vt 0.051442 0.958883 +vt 0.051442 0.881975 +vt 0.051442 0.993752 +vt 0.029468 0.999245 +vt 0.051442 0.999245 +vt 0.029468 0.958883 +vt 0.023975 0.958883 +vt 0.023975 0.887468 +vt 0.041409 0.926311 +vt 0.112824 0.934551 +vt 0.041409 0.934551 +vt 0.029468 0.916843 +vt 0.023975 0.916843 +vt 0.073416 0.937298 +vt 0.073416 0.934551 +vt 0.095390 0.934551 +vt 0.083449 0.940045 +vt 0.006541 0.937298 +vt 0.083449 0.937298 +vt 0.041409 0.934551 +vt 0.112824 0.937298 +vt 0.041409 0.937298 +vt 0.051442 0.903724 +vt 0.051442 0.903013 +vt 0.029468 0.903013 +vt 0.023975 0.876482 +vt 0.051442 0.881788 +vt 0.056936 0.876482 +vt 0.029468 0.879325 +vt 0.051442 0.877192 +vt 0.051442 0.879325 +vt 0.095390 0.927161 +vt 0.100883 0.927161 +vt 0.100883 0.929814 +vt 0.003891 0.919202 +vt 0.028290 0.934270 +vt 0.001758 0.927161 +vt 0.029468 0.903724 +vt 0.023975 0.877192 +vt 0.029468 0.877192 +vt 0.001758 0.927161 +vt 0.027579 0.936923 +vt 0.001047 0.929814 +vt 0.119216 0.933889 +vt 0.097280 0.936923 +vt 0.118505 0.931236 +vt 0.095390 0.933889 +vt 0.073416 0.931236 +vt 0.095390 0.931236 +vt 0.051442 0.902302 +vt 0.029468 0.881077 +vt 0.029468 0.902302 +vt 0.056936 0.877192 +vt 0.056936 0.903724 +vt 0.100883 0.936923 +vt 0.067923 0.936923 +vt 0.073416 0.936923 +vt 0.097280 0.936923 +vt 0.123100 0.927161 +vt 0.123811 0.929814 +vt 0.096569 0.934270 +vt 0.120967 0.919202 +vt 0.123100 0.927161 +vt 0.026868 0.939577 +vt 0.006354 0.931236 +vt 0.027579 0.936923 +vt 0.083508 0.941055 +vt 0.087709 0.942808 +vt 0.088210 0.943792 +vt 0.037150 0.942808 +vt 0.042977 0.940309 +vt 0.038275 0.943045 +vt 0.038899 0.944267 +vt 0.043601 0.941531 +vt 0.038398 0.945251 +vt 0.041852 0.957226 +vt 0.044827 0.954065 +vt 0.042977 0.957976 +vt 0.082884 0.942277 +vt 0.087586 0.945013 +vt 0.087024 0.945132 +vt 0.037835 0.945132 +vt 0.042276 0.944980 +vt 0.043100 0.918633 +vt 0.044827 0.921661 +vt 0.041974 0.919383 +vt 0.044827 0.939925 +vt 0.080032 0.939925 +vt 0.083007 0.940071 +vt 0.043100 0.942515 +vt 0.036648 0.943792 +vt 0.041350 0.941055 +vt 0.033271 0.943079 +vt 0.037835 0.945132 +vt 0.037976 0.947679 +vt 0.039402 0.944220 +vt 0.083449 0.934551 +vt 0.029468 0.934551 +vt 0.034962 0.999245 +vt 0.056936 0.937298 +vt 0.083449 0.937298 +vt 0.056936 0.916843 +vt 0.041829 0.930043 +vt 0.029468 0.916843 +vt 0.029468 0.940045 +vt 0.041409 0.940045 +vt 0.070250 0.949658 +vt 0.050069 0.949658 +vt 0.068342 0.949658 +vt 0.083030 0.949658 +vt 0.048696 0.939656 +vt 0.081656 0.956525 +vt 0.048696 0.956525 +vt 0.064222 0.956525 +vt 0.068877 0.956525 +vt 0.056936 0.929058 +vt 0.100883 0.929058 +vt 0.083449 0.929058 +vt 0.074370 0.929058 +vt 0.100883 0.916843 +vt 0.065595 0.952405 +vt 0.045949 0.941030 +vt 0.059263 0.949636 +vt 0.059682 0.952405 +vt 0.078910 0.949636 +vt 0.081656 0.946523 +vt 0.071089 0.940045 +vt 0.062010 0.940045 +vt 0.051442 0.940045 +vt 0.081656 0.940045 +vt 0.051442 0.934697 +vt 0.051442 0.876482 +vt 0.056936 0.958883 +vt 0.029468 0.993752 +vt 0.029468 0.876482 +vt 0.029468 0.881975 +vt 0.112824 0.926311 +vt 0.100883 0.934551 +vt 0.100883 0.937298 +vt 0.095390 0.937298 +vt 0.095390 0.940045 +vt 0.073416 0.940045 +vt 0.067923 0.937298 +vt 0.067923 0.934551 +vt 0.073416 0.926311 +vt 0.095390 0.926311 +vt 0.006541 0.940045 +vt 0.112824 0.934551 +vt 0.023975 0.903013 +vt 0.023975 0.903724 +vt 0.029468 0.905856 +vt 0.051442 0.905856 +vt 0.056936 0.903013 +vt 0.029468 0.881788 +vt 0.067923 0.929814 +vt 0.073416 0.927161 +vt 0.067923 0.927161 +vt 0.030422 0.926311 +vt 0.028290 0.934270 +vt 0.097991 0.939577 +vt 0.073416 0.933889 +vt 0.051442 0.881077 +vt 0.095390 0.936923 +vt 0.096569 0.934270 +vt 0.094436 0.926311 +vt 0.005643 0.933889 +vt 0.041852 0.940071 +vt 0.086461 0.945251 +vt 0.081759 0.942515 +vt 0.037272 0.945013 vn 1.0000 0.0000 0.0000 -vn 0.9063 0.1938 0.3754 -vn 0.9239 0.0000 -0.3827 -vn 0.9810 0.1938 0.0000 -vn 0.7071 0.0000 -0.7071 -vn 0.9063 0.1938 -0.3754 -vn 0.3827 0.0000 -0.9239 -vn 0.6937 0.1938 -0.6937 -vn -0.3754 0.1938 -0.9063 -vn 0.3754 0.1938 -0.9063 -vn 0.0000 0.9767 -0.2146 -vn -0.2163 0.8250 -0.5221 -vn -0.0821 0.9767 -0.1982 -vn -0.1517 0.9767 -0.1517 -vn -0.1982 0.9767 -0.0821 -vn -0.2146 0.9767 0.0000 -vn -0.1982 0.9767 0.0821 -vn -0.1517 0.9767 0.1517 -vn -0.0821 0.9767 0.1982 -vn 0.0000 0.9767 0.2146 -vn 0.0821 0.9767 0.1982 -vn 0.1517 0.9767 0.1517 -vn 0.1982 0.9767 0.0821 -vn 0.2146 0.9767 0.0000 -vn 0.1982 0.9767 -0.0821 -vn 0.1517 0.9767 -0.1517 -vn 0.0821 0.9767 -0.1982 -s 1 -f 44/1/1 78/2/2 46/3/3 -f 30/4/4 64/5/5 32/6/6 -f 46/3/3 80/7/7 48/8/8 -f 32/6/6 66/9/9 34/10/10 -f 34/10/10 68/11/11 36/12/12 -f 38/13/13 68/11/11 70/14/14 -f 22/15/15 56/16/16 24/17/17 -f 48/8/8 49/18/18 18/19/19 -f 38/13/13 72/20/20 40/21/21 -f 24/17/17 58/22/22 26/23/23 -f 40/21/21 74/24/24 42/25/25 -f 26/23/23 60/26/26 28/27/27 -f 44/1/1 74/24/24 76/28/28 -f 28/27/27 62/29/29 30/4/4 -f 2/30/30 50/31/31 1/32/32 -f 22/15/15 52/33/33 54/34/34 -f 4/35/35 53/36/36 3/37/37 -f 5/38/38 55/39/39 4/35/35 -f 6/40/40 57/41/41 5/38/38 -f 7/42/42 59/43/43 6/40/40 -f 8/44/44 61/45/45 7/42/42 -f 9/46/46 63/47/47 8/44/44 -f 10/48/48 65/49/49 9/46/46 -f 11/50/50 67/51/51 10/48/48 -f 12/52/52 69/53/53 11/50/50 -f 13/54/54 71/55/55 12/52/52 -f 14/56/56 73/57/57 13/54/54 -f 15/58/58 75/59/59 14/56/56 -f 16/60/60 77/61/61 15/58/58 -f 3/37/37 51/62/62 2/30/30 -f 1/32/32 79/63/63 16/60/60 -f 17/64/64 20/65/65 19/66/66 -f 21/67/67 20/65/65 22/15/15 -f 23/68/68 22/15/15 24/17/17 -f 25/69/69 24/17/17 26/23/23 -f 27/70/70 26/23/23 28/27/27 -f 27/70/70 30/4/4 29/71/71 -f 29/71/71 32/6/6 31/72/72 -f 33/73/73 32/6/6 34/10/10 -f 33/73/73 36/12/12 35/74/74 -f 37/75/75 36/12/12 38/13/13 -f 37/75/75 40/21/21 39/76/76 -f 39/76/76 42/25/25 41/77/77 -f 43/78/78 42/25/25 44/1/1 -f 45/79/79 44/1/1 46/3/3 -f 45/79/79 48/8/8 47/80/80 -f 17/64/64 48/8/8 18/19/19 -f 25/69/69 33/73/73 41/77/77 -f 51/62/62 49/18/18 50/31/31 -f 53/36/36 52/33/33 51/62/62 -f 53/36/36 56/16/16 54/34/34 -f 55/39/39 58/22/22 56/16/16 -f 57/41/41 60/26/26 58/22/22 -f 59/43/43 62/29/29 60/26/26 -f 63/47/47 62/29/29 61/45/45 -f 63/47/47 66/9/9 64/5/5 -f 67/51/51 66/9/9 65/49/49 -f 67/51/51 70/14/14 68/11/11 -f 71/55/55 70/14/14 69/53/53 -f 73/57/57 72/20/20 71/55/55 -f 75/59/59 74/24/24 73/57/57 -f 77/61/61 76/28/28 75/59/59 -f 79/63/63 78/2/2 77/61/61 -f 50/31/31 80/7/7 79/63/63 -f 18/19/19 52/33/33 20/65/65 -f 44/1/1 76/28/28 78/2/2 -f 30/4/4 62/29/29 64/5/5 -f 46/3/3 78/2/2 80/7/7 -f 32/6/6 64/5/5 66/9/9 -f 34/10/10 66/9/9 68/11/11 -f 38/13/13 36/12/12 68/11/11 -f 22/15/15 54/34/34 56/16/16 -f 48/8/8 80/7/7 49/18/18 -f 38/13/13 70/14/14 72/20/20 -f 24/17/17 56/16/16 58/22/22 -f 40/21/21 72/20/20 74/24/24 -f 26/23/23 58/22/22 60/26/26 -f 44/1/1 42/25/25 74/24/24 -f 28/27/27 60/26/26 62/29/29 -f 2/30/30 51/62/62 50/31/31 -f 22/15/15 20/65/65 52/33/33 -f 4/35/35 55/39/39 53/36/36 -f 5/38/38 57/41/41 55/39/39 -f 6/40/40 59/43/43 57/41/41 -f 7/42/42 61/45/45 59/43/43 -f 8/44/44 63/47/47 61/45/45 -f 9/46/46 65/49/49 63/47/47 -f 10/48/48 67/51/51 65/49/49 -f 11/50/50 69/53/53 67/51/51 -f 12/52/52 71/55/55 69/53/53 -f 13/54/54 73/57/57 71/55/55 -f 14/56/56 75/59/59 73/57/57 -f 15/58/58 77/61/61 75/59/59 -f 16/60/60 79/63/63 77/61/61 -f 3/37/37 53/36/36 51/62/62 -f 1/32/32 50/31/31 79/63/63 -f 17/64/64 18/19/19 20/65/65 -f 21/67/67 19/66/66 20/65/65 -f 23/68/68 21/67/67 22/15/15 -f 25/69/69 23/68/68 24/17/17 -f 27/70/70 25/69/69 26/23/23 -f 27/70/70 28/27/27 30/4/4 -f 29/71/71 30/4/4 32/6/6 -f 33/73/73 31/72/72 32/6/6 -f 33/73/73 34/10/10 36/12/12 -f 37/75/75 35/74/74 36/12/12 -f 37/75/75 38/13/13 40/21/21 -f 39/76/76 40/21/21 42/25/25 -f 43/78/78 41/77/77 42/25/25 -f 45/79/79 43/78/78 44/1/1 -f 45/79/79 46/3/3 48/8/8 -f 17/64/64 47/80/80 48/8/8 -f 17/64/64 19/66/66 25/69/69 -f 19/66/66 21/67/67 25/69/69 -f 21/67/67 23/68/68 25/69/69 -f 25/69/69 27/70/70 29/71/71 -f 29/71/71 31/72/72 25/69/69 -f 31/72/72 33/73/73 25/69/69 -f 33/73/73 35/74/74 41/77/77 -f 35/74/74 37/75/75 41/77/77 -f 37/75/75 39/76/76 41/77/77 -f 41/77/77 43/78/78 45/79/79 -f 45/79/79 47/80/80 41/77/77 -f 47/80/80 17/64/64 41/77/77 -f 17/64/64 25/69/69 41/77/77 -f 51/62/62 52/33/33 49/18/18 -f 53/36/36 54/34/34 52/33/33 -f 53/36/36 55/39/39 56/16/16 -f 55/39/39 57/41/41 58/22/22 -f 57/41/41 59/43/43 60/26/26 -f 59/43/43 61/45/45 62/29/29 -f 63/47/47 64/5/5 62/29/29 -f 63/47/47 65/49/49 66/9/9 -f 67/51/51 68/11/11 66/9/9 -f 67/51/51 69/53/53 70/14/14 -f 71/55/55 72/20/20 70/14/14 -f 73/57/57 74/24/24 72/20/20 -f 75/59/59 76/28/28 74/24/24 -f 77/61/61 78/2/2 76/28/28 -f 79/63/63 80/7/7 78/2/2 -f 50/31/31 49/18/18 80/7/7 -f 18/19/19 49/18/18 52/33/33 +vn -0.8944 0.0000 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.3162 0.9487 +vn 0.0000 0.3162 -0.9487 +vn 0.2425 -0.9701 0.0000 +vn 0.0000 0.2588 0.9659 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 -0.9659 0.2588 +vn -0.7355 -0.6135 -0.2875 +vn -0.0514 -0.9272 0.3709 +vn 0.6841 -0.3137 0.6585 +vn 0.7355 0.6135 0.2875 +vn 0.1089 -0.9830 0.1481 +vn 0.0514 0.9272 -0.3709 +vn -0.6841 0.3137 -0.6585 +vn -0.5706 0.3321 0.7511 +vn 0.2077 0.7987 -0.5647 +vn 0.8155 -0.3935 0.4243 +vn -0.4990 0.2093 -0.8409 +vn -0.5484 -0.6815 -0.4846 +vn 0.8649 0.4973 0.0679 +vn -0.8196 -0.1731 -0.5462 +vn 0.0514 0.9272 -0.3710 +s off +f 687/1131/132 624/1132/132 619/1133/132 +f 622/1134/133 618/1135/133 617/1136/133 +f 624/1137/134 620/1138/134 619/1139/134 +f 624/1140/135 628/1141/135 623/1142/135 +f 621/1143/135 631/1144/135 632/1145/135 +f 627/1146/134 626/1147/134 628/1148/134 +f 694/1149/132 625/1150/132 627/1151/132 +f 692/1152/135 627/1153/135 624/1140/135 +f 631/1154/133 630/1155/133 632/1156/133 +f 622/1134/136 620/1138/136 623/1157/136 +f 629/1158/136 622/1134/136 623/1157/136 +f 647/1159/137 646/1160/137 645/1161/137 +f 695/1162/137 635/1163/137 636/1164/137 +f 636/1165/136 634/1166/136 633/1167/136 +f 635/1168/138 691/1169/138 634/1170/138 +f 644/1171/138 647/1172/138 643/1173/138 +f 643/1174/139 637/1175/139 639/1176/139 +f 644/1171/138 639/1177/138 640/1178/138 +f 642/1179/136 640/1180/136 638/1181/136 +f 641/1182/132 638/1183/132 637/1184/132 +f 642/1179/140 648/1185/140 644/1186/140 +f 641/1182/132 646/1187/132 642/1188/132 +f 643/1174/141 645/1189/141 641/1190/141 +f 655/1191/137 653/1192/137 654/1193/137 +f 651/1194/139 656/1195/139 652/1196/139 +f 650/1197/136 654/1198/136 649/1199/136 +f 652/1200/132 655/1201/132 650/1202/132 +f 649/1203/138 653/1204/138 651/1205/138 +f 662/1206/139 660/1207/139 661/1208/139 +f 663/1209/136 657/1210/136 664/1211/136 +f 661/1212/132 658/1213/132 663/1214/132 +f 664/1215/138 659/1216/138 662/1217/138 +f 658/1218/137 659/1219/137 657/1220/137 +f 668/1221/142 665/1222/142 666/1223/142 +f 670/1224/137 667/1225/137 668/1226/137 +f 672/1227/138 669/1228/138 670/1229/138 +f 665/1230/136 669/1231/136 671/1232/136 +f 666/1233/139 670/1234/139 668/1235/139 +f 679/1236/137 677/1237/137 678/1238/137 +f 676/1239/132 679/1240/132 674/1241/132 +f 673/1242/138 677/1243/138 675/1244/138 +f 675/1245/139 680/1246/139 676/1247/139 +f 674/1248/136 678/1249/136 673/1250/136 +f 683/1251/137 682/1252/137 681/1253/137 +f 625/1254/137 696/1255/137 633/1256/137 +f 633/1257/137 629/1258/137 626/1259/137 +f 691/1260/137 686/1261/137 630/1262/137 +f 689/1263/138 621/1264/138 688/1265/138 +f 688/1266/135 632/1145/135 685/1267/135 +f 696/1268/139 692/1269/139 688/1270/139 +f 695/1271/132 633/1272/132 696/1273/132 +f 685/1274/138 630/1275/138 686/1276/138 +f 716/1277/143 720/1278/143 715/1279/143 +f 704/1280/144 705/1281/144 701/1282/144 +f 697/1283/145 700/1284/145 698/1285/145 +f 699/1286/145 703/1287/145 704/1288/145 +f 697/1289/138 712/1290/138 699/1291/138 +f 712/1292/146 703/1293/146 699/1294/146 +f 703/1295/138 710/1296/138 704/1297/138 +f 708/1298/132 720/1299/132 705/1300/132 +f 707/1301/145 705/1302/145 706/1303/145 +f 719/1304/144 707/1305/144 714/1306/144 +f 716/1277/146 702/1307/146 718/1308/146 +f 710/1309/144 706/1303/144 704/1288/144 +f 717/1310/144 705/1302/144 720/1311/144 +f 717/1312/132 702/1313/132 701/1314/132 +f 716/1315/132 698/1316/132 700/1317/132 +f 714/1318/138 706/1319/138 715/1320/138 +f 722/1321/147 723/1322/147 721/1323/147 +f 723/1324/148 726/1325/148 725/1326/148 +f 726/1325/149 727/1327/149 725/1326/149 +f 728/1328/150 729/1329/150 727/1327/150 +f 724/1330/151 733/1331/151 726/1332/151 +f 732/1333/152 731/1334/152 736/1335/152 +f 731/1334/153 722/1321/153 721/1323/153 +f 727/1327/154 729/1329/154 736/1336/154 +f 728/1328/152 727/1327/152 734/1337/152 +f 730/1338/155 733/1339/155 732/1340/155 +f 726/1325/156 733/1341/156 728/1328/156 +f 732/1333/157 733/1342/157 722/1321/157 +f 722/1321/158 733/1342/158 724/1343/158 +f 728/1328/159 733/1341/159 730/1344/159 +f 721/1345/152 722/1346/152 735/1347/152 +f 737/1348/160 738/1349/160 739/1350/160 +f 687/1131/132 692/1351/132 624/1132/132 +f 622/1134/133 621/1352/133 618/1135/133 +f 624/1137/134 623/1157/134 620/1138/134 +f 624/1140/135 627/1153/135 628/1141/135 +f 621/1143/135 622/1353/135 631/1144/135 +f 627/1146/134 625/1354/134 626/1147/134 +f 694/1149/132 693/1355/132 625/1150/132 +f 692/1152/135 694/1356/135 627/1153/135 +f 631/1154/133 629/1158/133 630/1155/133 +f 622/1134/136 617/1136/136 620/1138/136 +f 628/1148/136 626/1147/136 623/1157/136 +f 626/1147/136 629/1158/136 623/1157/136 +f 629/1158/136 631/1154/136 622/1134/136 +f 647/1159/137 648/1357/137 646/1160/137 +f 695/1162/137 690/1358/137 635/1163/137 +f 636/1165/136 635/1359/136 634/1166/136 +f 635/1168/138 690/1360/138 691/1169/138 +f 644/1171/138 648/1361/138 647/1172/138 +f 643/1174/139 641/1190/139 637/1175/139 +f 644/1171/138 643/1173/138 639/1177/138 +f 642/1179/136 644/1186/136 640/1180/136 +f 641/1182/132 642/1188/132 638/1183/132 +f 642/1179/140 646/1362/140 648/1185/140 +f 641/1182/132 645/1363/132 646/1187/132 +f 643/1174/141 647/1364/141 645/1189/141 +f 655/1191/137 656/1365/137 653/1192/137 +f 651/1194/139 653/1366/139 656/1195/139 +f 650/1197/136 655/1367/136 654/1198/136 +f 652/1200/132 656/1368/132 655/1201/132 +f 649/1203/138 654/1369/138 653/1204/138 +f 662/1206/139 659/1370/139 660/1207/139 +f 663/1209/136 658/1371/136 657/1210/136 +f 661/1212/132 660/1372/132 658/1213/132 +f 664/1215/138 657/1373/138 659/1216/138 +f 658/1218/137 660/1374/137 659/1219/137 +f 668/1221/142 667/1375/142 665/1222/142 +f 670/1224/137 669/1376/137 667/1225/137 +f 672/1227/138 671/1377/138 669/1228/138 +f 665/1230/136 667/1378/136 669/1231/136 +f 666/1233/139 672/1379/139 670/1234/139 +f 679/1236/137 680/1380/137 677/1237/137 +f 676/1239/132 680/1381/132 679/1240/132 +f 673/1242/138 678/1382/138 677/1243/138 +f 675/1245/139 677/1383/139 680/1246/139 +f 674/1248/136 679/1384/136 678/1249/136 +f 683/1251/137 684/1385/137 682/1252/137 +f 633/1256/137 626/1386/137 625/1254/137 +f 625/1254/137 693/1387/137 696/1255/137 +f 633/1257/137 634/1388/137 629/1258/137 +f 630/1262/137 629/1389/137 634/1390/137 +f 634/1390/137 691/1260/137 630/1262/137 +f 689/1263/138 618/1391/138 621/1264/138 +f 688/1266/135 621/1143/135 632/1145/135 +f 685/1392/139 686/1393/139 691/1394/139 +f 691/1394/139 690/1395/139 695/1396/139 +f 696/1268/139 693/1397/139 694/1398/139 +f 691/1394/139 695/1396/139 696/1268/139 +f 688/1270/139 685/1392/139 691/1394/139 +f 687/1399/139 689/1400/139 688/1270/139 +f 696/1268/139 694/1398/139 692/1269/139 +f 692/1269/139 687/1399/139 688/1270/139 +f 688/1270/139 691/1394/139 696/1268/139 +f 695/1271/132 636/1401/132 633/1272/132 +f 685/1274/138 632/1402/138 630/1275/138 +f 710/1403/143 709/1404/143 715/1279/143 +f 709/1404/143 712/1292/143 715/1279/143 +f 712/1292/143 713/1405/143 711/1406/143 +f 716/1277/143 718/1308/143 720/1278/143 +f 718/1308/143 717/1407/143 720/1278/143 +f 712/1292/143 711/1406/143 716/1277/143 +f 719/1304/143 714/1306/143 715/1279/143 +f 720/1278/143 719/1304/143 715/1279/143 +f 715/1279/143 712/1292/143 716/1277/143 +f 704/1280/144 706/1408/144 705/1281/144 +f 697/1283/145 699/1294/145 700/1284/145 +f 704/1288/145 701/1409/145 700/1410/145 +f 701/1409/145 702/1411/145 700/1410/145 +f 700/1410/145 699/1286/145 704/1288/145 +f 697/1289/138 713/1412/138 712/1290/138 +f 712/1292/146 709/1404/146 703/1293/146 +f 703/1295/138 709/1413/138 710/1296/138 +f 708/1298/132 719/1414/132 720/1299/132 +f 707/1301/145 708/1415/145 705/1302/145 +f 719/1304/144 708/1416/144 707/1305/144 +f 716/1277/146 700/1284/146 702/1307/146 +f 710/1309/144 715/1417/144 706/1303/144 +f 717/1310/144 701/1409/144 705/1302/144 +f 717/1312/132 718/1418/132 702/1313/132 +f 716/1315/132 711/1419/132 698/1316/132 +f 714/1318/138 707/1420/138 706/1319/138 +f 722/1321/147 724/1343/147 723/1322/147 +f 723/1324/148 724/1421/148 726/1325/148 +f 726/1325/149 728/1328/149 727/1327/149 +f 728/1328/150 730/1344/150 729/1329/150 +f 736/1335/161 729/1422/161 730/1423/161 +f 730/1423/152 732/1333/152 736/1335/152 +f 731/1334/153 732/1333/153 722/1321/153 +f 731/1424/154 721/1345/154 736/1336/154 +f 721/1345/154 723/1324/154 736/1336/154 +f 723/1324/154 725/1326/154 736/1336/154 +f 725/1326/154 727/1327/154 736/1336/154 o Socket v 0.000000 0.000000 -4.000000 v 0.000000 1.000000 -4.000000 @@ -485,97 +3559,81 @@ vt 0.812500 0.529412 vt 0.000000 0.529412 vn 0.0000 1.0000 -0.0000 vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.6657 -0.7462 -vn 0.2855 -0.6657 -0.6894 -vn 0.0000 -0.6657 -0.7462 -vn 0.2855 0.6657 -0.6894 -vn 0.5276 -0.6657 -0.5276 -vn 0.5276 0.6657 -0.5276 -vn 0.6894 -0.6657 -0.2855 -vn 0.6894 0.6657 -0.2855 -vn 0.7462 -0.6657 0.0000 -vn 0.7462 0.6657 0.0000 -vn 0.6894 -0.6657 0.2855 -vn 0.6894 0.6657 0.2855 -vn 0.5276 -0.6657 0.5276 -vn 0.5276 0.6657 0.5276 -vn 0.2855 -0.6657 0.6894 -vn 0.2855 0.6657 0.6894 -vn 0.0000 -0.6657 0.7462 -vn 0.0000 0.6657 0.7462 -vn -0.2855 -0.6657 0.6894 -vn -0.2855 0.6657 0.6894 -vn -0.5276 -0.6657 0.5276 -vn -0.5276 0.6657 0.5276 -vn -0.6894 -0.6657 0.2855 -vn -0.6894 0.6657 0.2855 -vn -0.7462 -0.6657 0.0000 -vn -0.7462 0.6657 0.0000 -vn -0.6894 -0.6657 -0.2855 -vn -0.6894 0.6657 -0.2855 -vn -0.5276 -0.6657 -0.5276 -vn -0.5276 0.6657 -0.5276 -vn -0.2855 -0.6657 -0.6894 -vn -0.2855 0.6657 -0.6894 +vn 0.0000 0.0000 -1.0000 +vn 0.3827 0.0000 -0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.9239 0.0000 -0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.9239 0.0000 0.3827 +vn 0.7071 0.0000 0.7071 +vn 0.3827 0.0000 0.9239 +vn 0.0000 0.0000 1.0000 +vn -0.3827 0.0000 0.9239 +vn -0.7071 0.0000 0.7071 +vn -0.9239 0.0000 0.3827 +vn -1.0000 0.0000 -0.0000 +vn -0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 -0.9239 s off -f 86/81/81 110/82/81 102/83/81 -f 87/84/82 95/85/82 103/86/82 -f 86/81/81 84/87/81 82/88/81 -f 82/88/81 112/89/81 110/82/81 -f 110/82/81 108/90/81 106/91/81 -f 106/91/81 104/92/81 102/83/81 -f 102/83/81 100/93/81 98/94/81 -f 98/94/81 96/95/81 94/96/81 -f 94/96/81 92/97/81 90/98/81 -f 90/98/81 88/99/81 94/96/81 -f 88/99/81 86/81/81 94/96/81 -f 86/81/81 82/88/81 110/82/81 -f 110/82/81 106/91/81 102/83/81 -f 102/83/81 98/94/81 86/81/81 -f 98/94/81 94/96/81 86/81/81 -f 111/100/82 81/101/82 83/102/82 -f 83/102/82 85/103/82 111/100/82 -f 85/103/82 87/84/82 111/100/82 -f 87/84/82 89/104/82 91/105/82 -f 91/105/82 93/106/82 87/84/82 -f 93/106/82 95/85/82 87/84/82 -f 95/85/82 97/107/82 103/86/82 -f 97/107/82 99/108/82 103/86/82 -f 99/108/82 101/109/82 103/86/82 -f 103/86/82 105/110/82 107/111/82 -f 107/111/82 109/112/82 111/100/82 -f 103/86/82 107/111/82 111/100/82 -f 111/100/82 87/84/82 103/86/82 +f 745/1425/162 769/1426/162 761/1427/162 +f 746/1428/163 754/1429/163 762/1430/163 +f 745/1425/162 743/1431/162 741/1432/162 +f 741/1432/162 771/1433/162 769/1426/162 +f 769/1426/162 767/1434/162 765/1435/162 +f 765/1435/162 763/1436/162 761/1427/162 +f 761/1427/162 759/1437/162 757/1438/162 +f 757/1438/162 755/1439/162 753/1440/162 +f 753/1440/162 751/1441/162 749/1442/162 +f 749/1442/162 747/1443/162 753/1440/162 +f 747/1443/162 745/1425/162 753/1440/162 +f 745/1425/162 741/1432/162 769/1426/162 +f 769/1426/162 765/1435/162 761/1427/162 +f 761/1427/162 757/1438/162 745/1425/162 +f 757/1438/162 753/1440/162 745/1425/162 +f 770/1444/163 740/1445/163 742/1446/163 +f 742/1446/163 744/1447/163 770/1444/163 +f 744/1447/163 746/1428/163 770/1444/163 +f 746/1428/163 748/1448/163 750/1449/163 +f 750/1449/163 752/1450/163 746/1428/163 +f 752/1450/163 754/1429/163 746/1428/163 +f 754/1429/163 756/1451/163 762/1430/163 +f 756/1451/163 758/1452/163 762/1430/163 +f 758/1452/163 760/1453/163 762/1430/163 +f 762/1430/163 764/1454/163 766/1455/163 +f 766/1455/163 768/1456/163 770/1444/163 +f 762/1430/163 766/1455/163 770/1444/163 +f 770/1444/163 746/1428/163 762/1430/163 s 1 -f 82/113/83 83/114/84 81/115/85 -f 84/116/86 85/117/87 83/114/84 -f 86/118/88 87/119/89 85/117/87 -f 88/120/90 89/121/91 87/119/89 -f 90/122/92 91/123/93 89/121/91 -f 92/124/94 93/125/95 91/123/93 -f 94/126/96 95/127/97 93/125/95 -f 96/128/98 97/129/99 95/127/97 -f 98/130/100 99/131/101 97/129/99 -f 100/132/102 101/133/103 99/131/101 -f 102/134/104 103/135/105 101/133/103 -f 104/136/106 105/137/107 103/135/105 -f 106/138/108 107/139/109 105/140/107 -f 108/141/110 109/142/111 107/139/109 -f 110/143/112 111/144/113 109/142/111 -f 112/145/114 81/115/85 111/144/113 -f 82/113/83 84/116/86 83/114/84 -f 84/116/86 86/118/88 85/117/87 -f 86/118/88 88/120/90 87/119/89 -f 88/120/90 90/122/92 89/121/91 -f 90/122/92 92/124/94 91/123/93 -f 92/124/94 94/126/96 93/125/95 -f 94/126/96 96/128/98 95/127/97 -f 96/128/98 98/130/100 97/129/99 -f 98/130/100 100/132/102 99/131/101 -f 100/132/102 102/134/104 101/133/103 -f 102/134/104 104/136/106 103/135/105 -f 104/136/106 106/146/108 105/137/107 -f 106/138/108 108/141/110 107/139/109 -f 108/141/110 110/143/112 109/142/111 -f 110/143/112 112/145/114 111/144/113 -f 112/145/114 82/113/83 81/115/85 +f 741/1457/164 742/1458/165 740/1459/164 +f 743/1460/165 744/1461/166 742/1458/165 +f 745/1462/166 746/1463/167 744/1461/166 +f 747/1464/167 748/1465/168 746/1463/167 +f 749/1466/168 750/1467/169 748/1465/168 +f 751/1468/169 752/1469/170 750/1467/169 +f 753/1470/170 754/1471/171 752/1469/170 +f 755/1472/171 756/1473/172 754/1471/171 +f 757/1474/172 758/1475/173 756/1473/172 +f 759/1476/173 760/1477/174 758/1475/173 +f 761/1478/174 762/1479/175 760/1477/174 +f 763/1480/175 764/1481/176 762/1479/175 +f 765/1482/176 766/1483/177 764/1484/176 +f 767/1485/177 768/1486/178 766/1483/177 +f 769/1487/178 770/1488/179 768/1486/178 +f 771/1489/179 740/1459/164 770/1488/179 +f 741/1457/164 743/1460/165 742/1458/165 +f 743/1460/165 745/1462/166 744/1461/166 +f 745/1462/166 747/1464/167 746/1463/167 +f 747/1464/167 749/1466/168 748/1465/168 +f 749/1466/168 751/1468/169 750/1467/169 +f 751/1468/169 753/1470/170 752/1469/170 +f 753/1470/170 755/1472/171 754/1471/171 +f 755/1472/171 757/1474/172 756/1473/172 +f 757/1474/172 759/1476/173 758/1475/173 +f 759/1476/173 761/1478/174 760/1477/174 +f 761/1478/174 763/1480/175 762/1479/175 +f 763/1480/175 765/1490/176 764/1481/176 +f 765/1482/176 767/1485/177 766/1483/177 +f 767/1485/177 769/1487/178 768/1486/178 +f 769/1487/178 771/1489/179 770/1488/179 +f 771/1489/179 741/1457/164 740/1459/164 diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_features.png b/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_features.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d9fc97d577ab6fcbf858214d2645b304b17cab GIT binary patch literal 3329 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 literal 0 HcmV?d00001 From e30e1b2edeb4412cc052957fe0ba4ab0eefad14e Mon Sep 17 00:00:00 2001 From: Vaern Date: Thu, 29 Feb 2024 20:45:20 -0800 Subject: [PATCH 231/376] beginnings --- .../com/hbm/blocks/test/TestEventTester.java | 7 + src/main/java/com/hbm/lib/HbmWorld.java | 2 + .../hbm/world/gen/component/Component.java | 4 +- .../world/gen/component/SiloComponent.java | 277 ++++++++++++++++++ 4 files changed, 288 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/world/gen/component/SiloComponent.java diff --git a/src/main/java/com/hbm/blocks/test/TestEventTester.java b/src/main/java/com/hbm/blocks/test/TestEventTester.java index 3491b2fb1..5686facee 100644 --- a/src/main/java/com/hbm/blocks/test/TestEventTester.java +++ b/src/main/java/com/hbm/blocks/test/TestEventTester.java @@ -4,7 +4,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; + import com.hbm.main.MainRegistry; +import com.hbm.world.gen.component.Component; +import com.hbm.world.gen.component.SiloComponent; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -17,6 +20,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraft.world.gen.structure.StructureBoundingBox; public class TestEventTester extends Block { @@ -35,6 +39,9 @@ public class TestEventTester extends Block { this.worldObj = p_149695_1_; if (p_149695_1_.isBlockIndirectlyGettingPowered(x1, y1, z1)) { + Component comp = new SiloComponent(this.worldObj.rand, x1, y1, z1); + comp.addComponentParts(p_149695_1_, this.worldObj.rand, new StructureBoundingBox(x1, z1, x1 + 42, z1 + 26)); + //The laser thread is too dangerous to use right now //ThreadLaser laser = new ThreadLaser(p_149695_1_, x, y, z, "north"); //laser.start(); diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index e8c745f28..3c6b89701 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -7,6 +7,7 @@ import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import com.hbm.world.gen.component.CivilianFeatures; import com.hbm.world.gen.component.OfficeFeatures; import com.hbm.world.gen.component.RuinFeatures; +import com.hbm.world.gen.component.SiloComponent; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.registry.GameRegistry; @@ -47,5 +48,6 @@ public class HbmWorld { OfficeFeatures.registerComponents(); RuinFeatures.registerComponents(); BunkerComponents.registerComponents(); + MapGenStructureIO.func_143031_a(SiloComponent.class, "NTMSiloComponent"); } } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 8607d2323..758a1ebc9 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -38,7 +38,7 @@ abstract public class Component extends StructureComponent { protected Component(Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ ) { super(0); - this.coordBaseMode = rand.nextInt(4); + this.coordBaseMode = 0;// rand.nextInt(4); switch(this.coordBaseMode) { case 0: @@ -547,7 +547,7 @@ abstract public class Component extends StructureComponent { if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) return; - for(int x = minX; x <= maxX; x++) { + for(int x = minX; x <= maxX; x++) { //TODO these could technically be optimized a bit more. probably won't do anything but worth for(int z = minZ; z <= maxZ; z++) { int posX = getXWithOffset(x, z); diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java new file mode 100644 index 000000000..2a07be028 --- /dev/null +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -0,0 +1,277 @@ +package com.hbm.world.gen.component; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.block.BlockStairs; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.gen.structure.StructureBoundingBox; +import net.minecraft.world.gen.structure.StructureComponent.BlockSelector; +import net.minecraftforge.common.util.ForgeDirection; + +public class SiloComponent extends Component { + + public SiloComponent() { + + } + + public SiloComponent(Random rand, int minX, int minY, int minZ) { + super(rand, minX, minY, minZ, 42, 29, 26); + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + //TODO add method to only count the surface portion for height offset + /*if(!this.setAverageHeight(world, box, this.boundingBox.minY)) { + return false; + }*/ + + //alright kids, we're adding the largest single-component mapgen structure in ntm, 2x3 chunks. what do? + //you break it into sections instead of doing the whole thing at once. adding it that is, the server won't die + //from checking a lot of small switches and if statements in some for loops i hope... + + /* SURFACE */ + //Floor + fillWithBlocks(world, box, 13, 25, 2, 42, 25, 4, ModBlocks.asphalt); //it's okay to cut corners (vanilla does it all the time!), but + fillWithBlocks(world, box, 13, 25, 5, 34, 25, 9, ModBlocks.asphalt); //being pretty careful trades unnecessary setBlocks for some extra lines. + fillWithBlocks(world, box, 13, 25, 10, 14, 25, 18, ModBlocks.asphalt); + fillWithBlocks(world, box, 24, 25, 10, 35, 25, 12, ModBlocks.asphalt); + fillWithBlocks(world, box, 24, 25, 13, 26, 25, 18, ModBlocks.asphalt); + fillWithBlocks(world, box, 13, 25, 19, 42, 25, 20, ModBlocks.asphalt); + fillWithBlocks(world, box, 40, 25, 5, 42, 25, 18, ModBlocks.asphalt); + fillWithBlocks(world, box, 39, 25, 10, 39, 25, 12, ModBlocks.asphalt); + fillWithMetadataBlocks(world, box, 15, 25, 10, 23, 25, 10, ModBlocks.concrete_colored_ext, 5); + fillWithMetadataBlocks(world, box, 15, 25, 11, 15, 25, 17, ModBlocks.concrete_colored_ext, 5); + fillWithMetadataBlocks(world, box, 15, 25, 18, 23, 25, 18, ModBlocks.concrete_colored_ext, 5); + fillWithMetadataBlocks(world, box, 23, 25, 11, 23, 25, 17, ModBlocks.concrete_colored_ext, 5); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 16, 25, 11, box); //it's figuring out meta that makes you shoot yourself anyway + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 22, 25, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 16, 25, 17, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 22, 25, 17, box); + + ConcreteBricks ConcreteBricks = new ConcreteBricks(); + + fillWithRandomizedBlocks(world, box, 27, 25, 13, 39, 25, 18, rand, ConcreteBricks); + fillWithBlocks(world, box, 36, 25, 4, 38, 25, 4, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 35, 25, 5, 39, 25, 9, ModBlocks.concrete_smooth); + //Fences + fillWithBlocks(world, box, 13, 26, 2, 13, 28, 2, ModBlocks.deco_steel); + fillWithBlocks(world, box, 42, 26, 2, 42, 28, 2, ModBlocks.deco_steel); + fillWithBlocks(world, box, 13, 26, 20, 13, 28, 20, ModBlocks.deco_steel); + fillWithBlocks(world, box, 42, 26, 20, 42, 28, 20, ModBlocks.deco_steel); + //N-facing + fillWithBlocks(world, box, 38, 26, 2, 41, 27, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 34, 26, 2, 36, 27, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 30, 26, 2, 31, 27, 2, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 28, 27, 2, box); + fillWithBlocks(world, box, 22, 26, 2, 28, 26, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 23, 27, 2, 26, 27, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 18, 26, 2, 20, 26, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 14, 26, 2, 16, 26, 2, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 14, 27, 2, box); + fillWithMetadataBlocks(world, box, 38, 28, 2, 41, 28, 2, ModBlocks.barbed_wire, 5); + fillWithMetadataBlocks(world, box, 35, 28, 2, 36, 28, 2, ModBlocks.barbed_wire, 5); + fillWithMetadataBlocks(world, box, 23, 28, 2, 25, 28, 2, ModBlocks.barbed_wire, 5); + placeBlockAtCurrentPosition(world, ModBlocks.barbed_wire, 5, 14, 28, 2, box); + //W-facing + fillWithBlocks(world, box, 13, 26, 3, 13, 27, 4, ModBlocks.fence_metal); + fillWithBlocks(world, box, 13, 26, 5, 13, 26, 6, ModBlocks.fence_metal); + fillWithBlocks(world, box, 13, 26, 9, 13, 27, 9, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 13, 26, 11, box); + fillWithBlocks(world, box, 13, 26, 12, 13, 27, 19, ModBlocks.fence_metal); + fillWithMetadataBlocks(world, box, 13, 28, 3, 13, 28, 4, ModBlocks.barbed_wire, 2); + fillWithMetadataBlocks(world, box, 13, 28, 15, 13, 28, 19, ModBlocks.barbed_wire, 2); + //E-facing + fillWithBlocks(world, box, 42, 26, 3, 42, 27, 4, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 42, 26, 7, box); + fillWithBlocks(world, box, 42, 26, 9, 42, 26, 12, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 42, 26, 14, box); + fillWithBlocks(world, box, 42, 26, 15, 42, 27, 19, ModBlocks.fence_metal); + fillWithMetadataBlocks(world, box, 42, 28, 3, 42, 28, 4, ModBlocks.barbed_wire, 3); + fillWithMetadataBlocks(world, box, 42, 28, 15, 42, 28, 19, ModBlocks.barbed_wire, 3); + //S-facing + fillWithBlocks(world, box, 14, 26, 20, 17, 27, 20, ModBlocks.fence_metal); + fillWithBlocks(world, box, 18, 26, 20, 22, 26, 20, ModBlocks.fence_metal); + fillWithBlocks(world, box, 20, 27, 20, 21, 27, 20, ModBlocks.fence_metal); + fillWithBlocks(world, box, 24, 26, 20, 25, 26, 20, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 27, 26, 20, box); + fillWithBlocks(world, box, 29, 26, 20, 32, 27, 20, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 33, 26, 20, box); + fillWithBlocks(world, box, 35, 26, 20, 37, 26, 20, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 36, 27, 20, box); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 39, 26, 20, box); + fillWithBlocks(world, box, 40, 26, 20, 41, 27, 20, ModBlocks.fence_metal); + fillWithMetadataBlocks(world, box, 14, 28, 20, 17, 28, 20, ModBlocks.barbed_wire, 4); + fillWithMetadataBlocks(world, box, 29, 28, 20, 32, 28, 20, ModBlocks.barbed_wire, 4); + fillWithMetadataBlocks(world, box, 40, 28, 20, 41, 28, 20, ModBlocks.barbed_wire, 4); + + //Defense Platforms + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 27, 26, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 32, 26, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 27, 26, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 32, 26, 18, box); + fillWithRandomizedBlocks(world, box, 28, 26, 14, 31, 26, 17, rand, ConcreteBricks); + + ConcreteStairs ConcreteStairs = new ConcreteStairs(); + + int stairW = this.getStairMeta(0); + int stairE = this.getStairMeta(1); + int stairN = this.getStairMeta(2); + int stairS = this.getStairMeta(3); + + ConcreteStairs.setMetadata(stairN); + fillWithRandomizedBlocks(world, box, 28, 26, 13, 31, 26, 13, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW); + fillWithRandomizedBlocks(world, box, 27, 26, 14, 27, 26, 17, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairS); + fillWithRandomizedBlocks(world, box, 28, 26, 18, 31, 26, 18, rand, ConcreteStairs); + fillWithMetadataBlocks(world, box, 27, 27, 13, 32, 27, 13, ModBlocks.concrete_slab, 1); + fillWithMetadataBlocks(world, box, 27, 27, 14, 27, 27, 17, ModBlocks.concrete_slab, 1); + fillWithMetadataBlocks(world, box, 27, 27, 18, 32, 27, 18, ModBlocks.concrete_slab, 1); + fillWithMetadataBlocks(world, box, 32, 27, 14, 32, 27, 17, ModBlocks.concrete_slab, 1); + //Methusalem + placeBlockAtCurrentPosition(world, ModBlocks.turret_howard_damaged, 12, 29, 27, 15, box); + fillSpace(world, box, 29, 27, 15, new int[] { 0, 0, 1, 0, 1, 0 }, ModBlocks.turret_howard_damaged, ForgeDirection.NORTH); + //Destroyed platform + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 34, 26, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 39, 26, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 34, 26, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 39, 26, 18, box); + fillWithRandomizedBlocks(world, box, 35, 26, 13, 38, 26, 13, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 32, 26, 15, 34, 26, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 35, 26, 18, 38, 26, 18, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairE); + fillWithRandomizedBlocks(world, box, 39, 26, 14, 39, 26, 15, rand, ConcreteStairs); + + DestroyedBricks DestroyedBricks = new DestroyedBricks(); //it's funny cause i'm probably gonna use this like once in this entire thing + + fillWithRandomizedBlocks(world, box, 35, 26, 14, 38, 26, 17, rand, DestroyedBricks); //destroyed layer + fillWithMetadataBlocks(world, box, 33, 27, 15, 33, 27, 17, ModBlocks.concrete_slab, 1); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 34, 27, 17, box); + fillWithMetadataBlocks(world, box, 34, 27, 18, 36, 27, 18, ModBlocks.concrete_slab, 1); + fillWithMetadataBlocks(world, box, 37, 27, 13, 39, 27, 13, ModBlocks.concrete_slab, 1); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 39, 27, 14, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 37, 25, 15, box); //deco + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 37, 26, 15, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 36, 25, 16, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, 0, 36, 26, 16, box); + placeBlockAtCurrentPosition(world, Blocks.chest, 2, 36, 26, 17, box); //TODO move containers to one place per section + + //Access Building (staircase not included) + fillWithRandomizedBlocks(world, box, 35, 26, 5, 39, 28, 5, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 35, 26, 6, 35, 28, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 39, 26, 6, 39, 28, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 36, 26, 10, 38, 28, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 36, 27, 11, 38, 27, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 36, 26, 12, 38, 26, 12, rand, ConcreteBricks); + ConcreteStairs.setMetadata(stairS); + fillWithRandomizedBlocks(world, box, 36, 28, 11, 38, 28, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 36, 27, 12, 38, 27, 12, rand, ConcreteStairs); + fillWithBlocks(world, box, 36, 29, 5, 38, 29, 9, ModBlocks.concrete); //Roof + fillWithBlocks(world, box, 35, 29, 5, 35, 29, 9, ModBlocks.concrete_stairs); + fillWithMetadataBlocks(world, box, 36, 29, 10, 38, 29, 10, ModBlocks.concrete_stairs, 3); + fillWithMetadataBlocks(world, box, 39, 29, 5, 39, 29, 9, ModBlocks.concrete_stairs, 1); + //Deco + placeBlockAtCurrentPosition(world, Blocks.iron_bars, 0, 35, 27, 7, box); + placeBlockAtCurrentPosition(world, Blocks.iron_bars, 0, 39, 27, 7, box); + placeDoor(world, box, ModBlocks.door_metal, 1, false, rand.nextBoolean(), 37, 26, 5); + + //Stuff not-bolted down + //Tent + for(int j = 4; j <= 8; j += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 2, 20, 26, j, box); + fillWithMetadataBlocks(world, box, 16, 26, j, 16, 27, j, ModBlocks.steel_beam, 3); + } + + fillWithBlocks(world, box, 16, 28, 4, 17, 28, 8, ModBlocks.brick_slab); + fillWithMetadataBlocks(world, box, 18, 27, 4, 19, 27, 8, ModBlocks.brick_slab, 8); + fillWithBlocks(world, box, 20, 27, 4, 20, 27, 8, ModBlocks.brick_slab); + fillWithMetadataBlocks(world, box, 16, 28, 6, 17, 28, 6, ModBlocks.brick_slab, 5); + fillWithMetadataBlocks(world, box, 18, 27, 6, 19, 27, 6, ModBlocks.brick_slab, 13); + placeBlockAtCurrentPosition(world, ModBlocks.brick_slab, 5, 20, 27, 6, box); + //Supplies + //TODO make another block selector for this so it's randomized n shit + //Wreckage + //TODO ditto + + //Large Silo Hatch + placeBlockAtCurrentPosition(world, ModBlocks.silo_hatch_large, 12, 19, 26, 14, box); + fillSpace(world, box, 19, 26, 14, new int[] { 0, 0, 3, 3, 3, 3 }, ModBlocks.silo_hatch_large, ForgeDirection.SOUTH); + + + return true; + } + + public static class ConcreteStairs extends BlockSelector { + + public void setMetadata(int meta) { + this.selectedBlockMetaData = meta; + } + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + float chance = rand.nextFloat(); + + if(chance < 0.4F) + this.field_151562_a = ModBlocks.brick_concrete_stairs; + else if (chance < 0.7F) + this.field_151562_a = ModBlocks.brick_concrete_mossy_stairs; + else if (chance < 0.9F) + this.field_151562_a = ModBlocks.brick_concrete_cracked_stairs; + else + this.field_151562_a = ModBlocks.brick_concrete_broken_stairs; + + } + } + + public static class DestroyedBricks extends BlockSelector { + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + this.selectedBlockMetaData = 0; + float chance = rand.nextFloat(); + + if(chance < 0.3F) { + this.field_151562_a = ModBlocks.concrete_brick_slab; + chance = rand.nextFloat(); + + if (chance >= 0.4F && chance < 0.7F) + this.selectedBlockMetaData |= 1; + else if (chance < 0.9F) + this.selectedBlockMetaData |= 2; + else + this.selectedBlockMetaData |= 3; + + } else if(chance < 0.6F) { + this.selectedBlockMetaData = rand.nextInt(4); + chance = rand.nextFloat(); + + if(chance < 0.4F) + this.field_151562_a = ModBlocks.brick_concrete_stairs; + else if (chance < 0.7F) + this.field_151562_a = ModBlocks.brick_concrete_mossy_stairs; + else if (chance < 0.9F) + this.field_151562_a = ModBlocks.brick_concrete_cracked_stairs; + else + this.field_151562_a = ModBlocks.brick_concrete_broken_stairs; + + } else if(chance < 0.9F) { + chance = rand.nextFloat(); + + if(chance < 0.4F) + this.field_151562_a = ModBlocks.brick_concrete; + else if (chance < 0.7F) + this.field_151562_a = ModBlocks.brick_concrete_mossy; + else if (chance < 0.9F) + this.field_151562_a = ModBlocks.brick_concrete_cracked; + else + this.field_151562_a = ModBlocks.brick_concrete_broken; + + } else + this.field_151562_a = Blocks.air; + } + } +} From b2b0c79bb9bb546830abc37311c04c16796e5189 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 1 Mar 2024 15:06:39 +0100 Subject: [PATCH 232/376] missing star control pieces, snowglobes, broken turret --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../com/hbm/blocks/generic/BlockBobble.java | 6 +- .../hbm/blocks/generic/BlockSnowglobe.java | 37 +++--- .../blocks/turret/TurretHowardDamaged.java | 8 ++ .../blocks/turret/TurretSentryDamaged.java | 43 +++++++ .../hbm/inventory/gui/GUIScreenSnowglobe.java | 113 ++++++++++++++++++ .../special/ItemCircuitStarComponent.java | 3 +- .../hbm/items/special/ItemPlasticScrap.java | 7 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 7 ++ .../com/hbm/main/ModEventHandlerClient.java | 4 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../render/tileentity/RenderSnowglobe.java | 62 ++-------- .../render/tileentity/RenderTurretSentry.java | 17 ++- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../turret/TileEntityTurretSentry.java | 8 +- .../turret/TileEntityTurretSentryDamaged.java | 106 ++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 5 + src/main/resources/assets/hbm/lang/en_US.lang | 5 + .../items/circuit_star_component.card.png | Bin 0 -> 294 bytes .../circuit_star_piece.board_converter.png | Bin 0 -> 174 bytes .../items/circuit_star_piece.card_board.png | Bin 0 -> 230 bytes .../circuit_star_piece.card_processor.png | Bin 0 -> 175 bytes .../models/turrets/sentry_damaged.png | Bin 0 -> 3989 bytes 24 files changed, 360 insertions(+), 77 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/turret/TurretSentryDamaged.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java create mode 100644 src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_component.card.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_converter.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.card_board.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.card_processor.png create mode 100644 src/main/resources/assets/hbm/textures/models/turrets/sentry_damaged.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 9cd303ffe..a24e5753e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1125,6 +1125,7 @@ public class ModBlocks { public static Block turret_arty; public static Block turret_himars; public static Block turret_sentry; + public static Block turret_sentry_damaged; public static Block rbmk_rod; public static Block rbmk_rod_mod; @@ -2199,6 +2200,7 @@ public class ModBlocks { turret_arty = new TurretArty(Material.iron).setBlockName("turret_arty").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_himars = new TurretHIMARS(Material.iron).setBlockName("turret_himars").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_sentry = new TurretSentry().setBlockName("turret_sentry").setHardness(5.0F).setResistance(5.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_sentry_damaged = new TurretSentryDamaged().setBlockName("turret_sentry_damaged").setHardness(5.0F).setResistance(5.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_rust"); rbmk_rod = new RBMKRod(false).setBlockName("rbmk_rod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element"); rbmk_rod_mod = new RBMKRod(true).setBlockName("rbmk_rod_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_mod"); @@ -3016,6 +3018,7 @@ public class ModBlocks { GameRegistry.registerBlock(turret_arty, turret_arty.getUnlocalizedName()); GameRegistry.registerBlock(turret_himars, turret_himars.getUnlocalizedName()); GameRegistry.registerBlock(turret_sentry, turret_sentry.getUnlocalizedName()); + GameRegistry.registerBlock(turret_sentry_damaged, turret_sentry_damaged.getUnlocalizedName()); //Wall-mounted Explosives GameRegistry.registerBlock(charge_dynamite, ItemBlockBase.class, charge_dynamite.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 2f40e0fd8..334ef97bf 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -191,9 +191,9 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), - MICROWAVE( "Microwave", "Microwave", "OC Compatibility", "they call me the food heater", true, ScrapType.BRIDGE_BIOS), - PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK), - MELLOW( "MELLOWARPEGGIATION", "Mellow", "Industrial lighting, animation tools", "Make something cool now, ask for permission later.", true, ScrapType.CPU_LOGIC); + MICROWAVE( "Microwave", "Microwave", "OC Compatibility", "they call me the food heater", true, ScrapType.BOARD_CONVERTER), + PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CARD_BOARD), + MELLOW( "MELLOWARPEGGIATION", "Mellow", "Industrial lighting, animation tools", "Make something cool now, ask for permission later.", true, ScrapType.CARD_PROCESSOR); public String name; //the title of the tooltip public String label; //the name engraved in the socket diff --git a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java index d0c8bdb22..d24000546 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java @@ -3,8 +3,9 @@ package com.hbm.blocks.generic; import java.util.List; import java.util.Random; +import com.hbm.inventory.gui.GUIScreenSnowglobe; import com.hbm.main.MainRegistry; -import com.hbm.wiaj.WorldInAJar; +import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -12,11 +13,12 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; +import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -28,7 +30,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -public class BlockSnowglobe extends BlockContainer { +public class BlockSnowglobe extends BlockContainer implements IGUIProvider { public BlockSnowglobe() { super(Material.glass); @@ -153,23 +155,28 @@ public class BlockSnowglobe extends BlockContainer { } public static enum SnowglobeType { - NONE("NONE", new WorldInAJar(1, 1, 1)), - TEST("Test", getTestJar()); + NONE( "NONE"), + RIVETCITY( "Rivet City"), + TENPENNYTOWER( "Tenpenny Tower"), + LUCKY38( "Lucky 38"), + SIERRAMADRE( "Sierra Madre"), + PRYDWEN( "Prydwen"); public String label; - public WorldInAJar scene; - private SnowglobeType(String label, WorldInAJar scene) { + private SnowglobeType(String label) { this.label = label; - this.scene = scene; } } - - private static WorldInAJar getTestJar() { - WorldInAJar world = new WorldInAJar(3, 3, 3); - for(int x = 0; x < 3; x++) for(int z = 0; z < 3; z++) world.setBlock(x, 0, z, Blocks.brick_block, 0); - world.setBlock(1, 1, 1, Blocks.gold_block, 0); - world.setBlock(1, 2, 1, Blocks.gold_block, 0); - return world; + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIScreenSnowglobe((TileEntitySnowglobe) world.getTileEntity(x, y, z)); } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretHowardDamaged.java b/src/main/java/com/hbm/blocks/turret/TurretHowardDamaged.java index 6a58f5da6..1028e5972 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretHowardDamaged.java +++ b/src/main/java/com/hbm/blocks/turret/TurretHowardDamaged.java @@ -1,9 +1,12 @@ package com.hbm.blocks.turret; +import java.util.Random; + import com.hbm.tileentity.turret.TileEntityTurretHowardDamaged; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -25,4 +28,9 @@ public class TurretHowardDamaged extends TurretBaseNT { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float fX, float fY, float fZ) { return false; } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretSentryDamaged.java b/src/main/java/com/hbm/blocks/turret/TurretSentryDamaged.java new file mode 100644 index 000000000..8a5463735 --- /dev/null +++ b/src/main/java/com/hbm/blocks/turret/TurretSentryDamaged.java @@ -0,0 +1,43 @@ +package com.hbm.blocks.turret; + +import java.util.Random; + +import com.hbm.tileentity.turret.TileEntityTurretSentryDamaged; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class TurretSentryDamaged extends BlockContainer { + + public TurretSentryDamaged() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityTurretSentryDamaged(); + } + + @Override + public int getRenderType() { + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java new file mode 100644 index 000000000..7fb95e184 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java @@ -0,0 +1,113 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; + +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenSnowglobe extends GuiScreen { + + TileEntitySnowglobe snowglobe; + + public GUIScreenSnowglobe(TileEntitySnowglobe bobble) { + this.snowglobe = bobble; + } + + @Override + public void initGui() { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:block.bobble"), 1.0F)); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + + this.drawDefaultBackground(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glDisable(GL11.GL_TEXTURE_2D); + + double sizeX = 300; + double sizeY = 150; + double left = (this.width - sizeX) / 2; + double top = (this.height - sizeY) / 2; + + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + tess.setColorRGBA_F(0F, 0.2F, 0F, 0.8F); + tess.addVertex(left + sizeX, top, this.zLevel); + tess.addVertex(left, top, this.zLevel); + tess.addVertex(left, top + sizeY, this.zLevel); + tess.addVertex(left + sizeX, top + sizeY, this.zLevel); + tess.draw(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_BLEND); + + int nextLevel = (int)top + 10; + + String bobbleTitle = "Nuclear Tech Commemorative Snowglobe"; + this.fontRendererObj.drawStringWithShadow(bobbleTitle, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(bobbleTitle) / 2), nextLevel, 0x00ff00); + + nextLevel += 10; + + String bobbleName = this.snowglobe.type.label; + this.fontRendererObj.drawStringWithShadow(bobbleName, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(bobbleName) / 2), nextLevel, 0x009900); + + nextLevel += 20; + + /*if(this.snowglobe.type.contribution != null) { + + String title = "Has contributed"; + this.fontRendererObj.drawStringWithShadow(title, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(title) / 2), nextLevel, 0x00ff00); + + nextLevel += 10; + + + String[] list = this.snowglobe.type.contribution.split("\\$"); + for(String text : list) { + this.fontRendererObj.drawStringWithShadow(text, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(text) / 2), nextLevel, 0x009900); + nextLevel += 10; + } + + nextLevel += 10; + } + + if(this.snowglobe.type.inscription != null) { + + String title = "On the bottom is the following inscription:"; + this.fontRendererObj.drawStringWithShadow(title, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(title) / 2), nextLevel, 0x00ff00); + + nextLevel += 10; + + String[] list = this.snowglobe.type.inscription.split("\\$"); + for(String text : list) { + this.fontRendererObj.drawStringWithShadow(text, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(text) / 2), nextLevel, 0x009900); + nextLevel += 10; + } + + nextLevel += 10; + }*/ + + GL11.glEnable(GL11.GL_LIGHTING); + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } +} diff --git a/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java b/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java index 840d79ea9..f31ae27ef 100644 --- a/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java +++ b/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java @@ -11,6 +11,7 @@ public class ItemCircuitStarComponent extends ItemEnumMulti { public static enum CircuitComponentType { CHIPSET, CPU, - RAM + RAM, + CARD } } diff --git a/src/main/java/com/hbm/items/special/ItemPlasticScrap.java b/src/main/java/com/hbm/items/special/ItemPlasticScrap.java index a262df155..e658f7981 100644 --- a/src/main/java/com/hbm/items/special/ItemPlasticScrap.java +++ b/src/main/java/com/hbm/items/special/ItemPlasticScrap.java @@ -13,6 +13,7 @@ public class ItemPlasticScrap extends ItemEnumMulti { //GENERAL BOARD BOARD_BLANK, BOARD_TRANSISTOR, + BOARD_CONVERTER, //CHIPSET BRIDGE_NORTH, @@ -36,6 +37,10 @@ public class ItemPlasticScrap extends ItemEnumMulti { MEM_16K_A, MEM_16K_B, MEM_16K_C, - MEM_16K_D + MEM_16K_D, + + //EXTENSION CARD + CARD_BOARD, + CARD_PROCESSOR } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 6ec66cd6a..0fac4f2f1 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -209,6 +209,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretArty.class, new RenderTurretArty()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretHIMARS.class, new RenderTurretHIMARS()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretSentry.class, new RenderTurretSentry()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretSentryDamaged.class, new RenderTurretSentry()); //mines ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLandmine.class, new RenderLandmine()); //machines diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4531f4a4b..8559cc901 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1153,11 +1153,18 @@ public class CraftingManager { ModItems.circuit_star_piece.stackFromEnum(ScrapType.MEM_16K_D) }); + addShapelessAuto(ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CARD), new Object[] { + ModItems.circuit_star_piece.stackFromEnum(ScrapType.CARD_BOARD), + ModItems.circuit_star_piece.stackFromEnum(ScrapType.CARD_PROCESSOR) + }); + addShapelessAuto(new ItemStack(ModItems.circuit_star), new Object[] { ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CHIPSET), ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CPU), ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.RAM), + ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CARD), ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_TRANSISTOR), + ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_CONVERTER), ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_BLANK) }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index cbe28fedb..c43e7e0e7 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -216,9 +216,9 @@ public class ModEventHandlerClient { ((ILookOverlay) world.getBlock(mop.blockX, mop.blockY, mop.blockZ)).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); } - List text = new ArrayList(); + /*List text = new ArrayList(); text.add("Meta: " + world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ)); - ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text); + ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text);*/ } else if(mop.typeOfHit == mop.typeOfHit.ENTITY) { Entity entity = mop.entityHit; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 9b53c0e47..87085aba0 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -424,6 +424,7 @@ public class ResourceManager { public static final ResourceLocation turret_arty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/arty.png"); public static final ResourceLocation turret_himars_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/himars.png"); public static final ResourceLocation turret_sentry_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/sentry.png"); + public static final ResourceLocation turret_sentry_damaged_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/sentry_damaged.png"); public static final ResourceLocation himars_standard_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/himars_standard.png"); public static final ResourceLocation himars_single_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/himars_single.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java index 44dcab19f..2292b028f 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java @@ -5,24 +5,19 @@ import org.lwjgl.opengl.GL12; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.lib.RefStrings; -import com.hbm.wiaj.WorldInAJar; +import com.hbm.render.loader.HFRWavefrontObject; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; public class RenderSnowglobe extends TileEntitySpecialRenderer { - public static final IModelCustom snowglobe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/snowglobe.obj")); + public static final IModelCustom snowglobe = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/snowglobe.obj"), false).asDisplayList(); public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe.png"); + public static final ResourceLocation features = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_features.png"); public static RenderBlocks renderer = new RenderBlocks(); @Override @@ -42,49 +37,18 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer { snowglobe.renderPart("Socket"); TileEntitySnowglobe te = (TileEntitySnowglobe) tile; + this.bindTexture(features); - if(te.type.scene != null) { - - WorldInAJar world = te.type.scene; - renderer.blockAccess = world; - - double size = Math.max(world.sizeX, world.sizeZ); - scale = 4D / size; - GL11.glScaled(scale, scale, scale); - GL11.glTranslated(0, 1, 0); - GL11.glScaled(scale, scale, scale); - - GL11.glTranslated(world.sizeX * -0.5, 0, world.sizeZ * -0.5); - - RenderHelper.disableStandardItemLighting(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - bindTexture(TextureMap.locationBlocksTexture); - Minecraft.getMinecraft().entityRenderer.disableLightmap(interp); - - Tessellator tess = Tessellator.instance; - tess.startDrawingQuads(); - tess.setColorOpaque_F(1F, 1F, 1F); - - for(int a = 0; a < world.sizeX; a++) { - for(int b = 0; b < world.sizeY; b++) { - for(int c = 0; c < world.sizeZ; c++) { - Block block = world.getBlock(a, b, c); - renderer.renderBlockByRenderType(block, a, b, c); - } - } - } - - tess.draw(); - GL11.glShadeModel(GL11.GL_FLAT); - + switch(te.type) { + case NONE: break; + case RIVETCITY: snowglobe.renderPart("RivetCity"); break; + case TENPENNYTOWER: snowglobe.renderPart("TenpennyTower"); break; + case LUCKY38: snowglobe.renderPart("Lucky38_Plane"); break; + case SIERRAMADRE: snowglobe.renderPart("SierraMadre"); break; + case PRYDWEN: snowglobe.renderPart("Prydwen"); break; + default: break; } + GL11.glPopMatrix(); - Minecraft.getMinecraft().entityRenderer.enableLightmap(interp); - RenderHelper.enableStandardItemLighting(); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretSentry.java b/src/main/java/com/hbm/render/tileentity/RenderTurretSentry.java index 480de1536..107e37973 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurretSentry.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretSentry.java @@ -6,6 +6,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; import com.hbm.tileentity.turret.TileEntityTurretSentry; +import com.hbm.tileentity.turret.TileEntityTurretSentryDamaged; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; @@ -26,8 +27,14 @@ public class RenderTurretSentry extends TileEntitySpecialRenderer implements IIt GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); + + boolean damaged = te instanceof TileEntityTurretSentryDamaged; - bindTexture(ResourceManager.turret_sentry_tex); + if(damaged) + bindTexture(ResourceManager.turret_sentry_damaged_tex); + else + bindTexture(ResourceManager.turret_sentry_tex); + ResourceManager.turret_sentry.renderPart("Base"); double yaw = -Math.toDegrees(turret.lastRotationYaw + (turret.rotationYaw - turret.lastRotationYaw) * interp); @@ -48,7 +55,13 @@ public class RenderTurretSentry extends TileEntitySpecialRenderer implements IIt GL11.glPopMatrix(); GL11.glPushMatrix(); - GL11.glTranslated(0, 0, (turret.lastBarrelRightPos + (turret.barrelRightPos - turret.lastBarrelRightPos) * interp) * -0.5); + if(damaged) { + GL11.glTranslated(0, 1.5, 0.5); + GL11.glRotated(25, 1, 0, 0); + GL11.glTranslated(0, -1.5, -0.5); + } else { + GL11.glTranslated(0, 0, (turret.lastBarrelRightPos + (turret.barrelRightPos - turret.lastBarrelRightPos) * interp) * -0.5); + } ResourceManager.turret_sentry.renderPart("BarrelR"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 1f99e3dd9..ece9edd78 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -267,6 +267,7 @@ public class TileMappings { put(TileEntityTurretArty.class, "tileentity_turret_arty"); put(TileEntityTurretHIMARS.class, "tileentity_turret_himars"); put(TileEntityTurretSentry.class, "tileentity_turret_sentry"); + put(TileEntityTurretSentryDamaged.class, "tileentity_turret_sentry_damaged"); } private static void putMachines() { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java index 5a1a1326b..09b8d22ee 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java @@ -26,12 +26,12 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IGUIProvider { - private boolean didJustShootLeft = false; - private boolean retractingLeft = false; + protected boolean didJustShootLeft = false; + protected boolean retractingLeft = false; public double barrelLeftPos = 0; public double lastBarrelLeftPos = 0; - private boolean didJustShootRight = false; - private boolean retractingRight = false; + protected boolean didJustShootRight = false; + protected boolean retractingRight = false; public double barrelRightPos = 0; public double lastBarrelRightPos = 0; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java new file mode 100644 index 000000000..acb7898cb --- /dev/null +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java @@ -0,0 +1,106 @@ +package com.hbm.tileentity.turret; + +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; + +public class TileEntityTurretSentryDamaged extends TileEntityTurretSentry { + + @Override + public boolean hasPower() { //does not need power + return true; + } + + @Override + public boolean isOn() { //is always on + return true; + } + + @Override + public double getTurretYawSpeed() { + return 3D; + } + + @Override + public double getTurretPitchSpeed() { + return 2D; + } + + @Override + public boolean hasThermalVision() { + return false; + } + + @Override + public boolean entityAcceptableTarget(Entity e) { //will fire at any living entity + + if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) + return false; + + return e instanceof EntityLivingBase; + } + + @Override + public void updateFiringTick() { + + timer++; + + if(timer % 10 == 0) { + + BulletConfiguration conf = BulletConfigSyncingUtil.pullConfig(BulletConfigSyncingUtil.R5_NORMAL); + + if(conf != null) { + + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(0, 0, 0); + Vec3 side = Vec3.createVectorHelper(0, 0, 0); + + this.cachedCasingConfig = conf.spentCasing; + + if(shotSide) { + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.sentry_fire", 2.0F, 1.0F); + this.spawnBullet(conf); + + vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + side = Vec3.createVectorHelper(0.125 * (shotSide ? 1 : -1), 0, 0); + side.rotateAroundY((float) -(this.rotationYaw)); + + } else { + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.sentry_fire", 2.0F, 0.75F); + if(usesCasings()) { + if(this.casingDelay() == 0) { + spawnCasing(); + } else { + casingDelay = this.casingDelay(); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "largeexplode"); + data.setFloat("size", 1F); + data.setByte("count", (byte) 1); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord + vec.xCoord + side.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord + side.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + if(shotSide) { + this.didJustShootLeft = true; + } else { + this.didJustShootRight = true; + } + shotSide = !shotSide; + } + } + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ab40acd89..870e4e4bc 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1499,10 +1499,12 @@ item.circuit_raw.name=Schaltkreisrohling item.circuit_red_copper.name=Fortgeschrittener Schaltkreis item.circuit_schrabidium.name=Leistungsstarker Schaltkreis item.circuit_star.name=StarControl Schalttafel +item.circuit_star_component.card.name=StarControl Erweiterungskarte item.circuit_star_component.chipset.name=StarControl Chipset item.circuit_star_component.cpu.name=StarControl CPU item.circuit_star_component.ram.name=StarControl RAM item.circuit_star_piece.board_blank.name=SC - Leiterplatte +item.circuit_star_piece.board_converter.name=SC - Spammungswandler item.circuit_star_piece.board_transistor.name=SC - Transistoren item.circuit_star_piece.bridge_bios.name=SC- BIOS-Chip item.circuit_star_piece.bridge_bus.name=SC - BUS @@ -1511,6 +1513,8 @@ item.circuit_star_piece.bridge_cmos.name=SC - CMOS-RAM item.circuit_star_piece.bridge_io.name=SC - IO-Chip item.circuit_star_piece.bridge_north.name=SC - Northbridge item.circuit_star_piece.bridge_south.name=SC - Southbridge +item.circuit_star_piece.card_board.name=SC - Erweiterungskarten-Board +item.circuit_star_piece.card_processor.name=SC - Erweiterungskarten-Prozessor item.circuit_star_piece.cpu_cache.name=SC - CPU-Cache item.circuit_star_piece.cpu_clock.name=SC - CPU-Clock item.circuit_star_piece.cpu_ext.name=SC - Arsenhalbleiter-Erweiterung @@ -4582,6 +4586,7 @@ tile.turret_rocket.name=Raketengeschütz tile.turret_richard.name=Raketenwerfergeschütz "Richard" tile.turret_spitfire.name=Geschütz für das ich noch keinen Namen habe [WIP] tile.turret_sentry.name=Selbstschussanlage "Brown" +tile.turret_sentry_damaged.name=Selbstschussanlage "Edwin" tile.turret_tau.name=Tauonengeschütz tile.turret_tauon.name=XVL1456-Prototypengeschütz "Tauon" tile.vacuum.name=Vakuum diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a05ca79fe..8856440c5 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2198,10 +2198,12 @@ item.circuit_red_copper.name=Advanced Circuit item.circuit_schrabidium.name=High Performance Circuit item.circuit_star.name=StarControl Circuit Board item.circuit_star.desc=Currently unused, for it lacks an operating system. +item.circuit_star_component.card.name=StarControl Extension Card item.circuit_star_component.chipset.name=StarControl Chipset item.circuit_star_component.cpu.name=StarControl CPU item.circuit_star_component.ram.name=StarControl RAM item.circuit_star_piece.board_blank.name=SC - Printed Circuit Board +item.circuit_star_piece.board_converter.name=SC - Voltage Converter item.circuit_star_piece.board_transistor.name=SC - Transistors item.circuit_star_piece.bridge_bios.name=SC- BIOS Chip item.circuit_star_piece.bridge_bus.name=SC - BUS @@ -2210,6 +2212,8 @@ item.circuit_star_piece.bridge_cmos.name=SC - CMOS RAM item.circuit_star_piece.bridge_io.name=SC - IO Chip item.circuit_star_piece.bridge_north.name=SC - North Bridge item.circuit_star_piece.bridge_south.name=SC - South Bridge +item.circuit_star_piece.card_board.name=SC - Extension Card Board +item.circuit_star_piece.card_processor.name=SC - Extension Card Processor item.circuit_star_piece.cpu_cache.name=SC - CPU Cache item.circuit_star_piece.cpu_clock.name=SC - CPU Clock item.circuit_star_piece.cpu_ext.name=SC - Arsenic Semi Conductor Extension @@ -5594,6 +5598,7 @@ tile.turret_rocket.name=Rocket Turret tile.turret_richard.name=Rocket Launcher Turret "Richard" tile.turret_spitfire.name=Turret I have no name for right now [WIP] tile.turret_sentry.name=Sentry Turret "Brown" +tile.turret_sentry_damaged.name=Sentry Turret "Edwin" tile.turret_tau.name=Tauon Turret tile.turret_tauon.name=XVL1456 Prototype Turret "Tauon" tile.vacuum.name=Vacuum diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_component.card.png b/src/main/resources/assets/hbm/textures/items/circuit_star_component.card.png new file mode 100644 index 0000000000000000000000000000000000000000..ed191db209363f958b86cd7eacf4bb03f794fb1d GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfS4-O$Ltz&7w5aPP6eJV$~^WD|{oOe}K`3snO|HlHsHiXL1xJ4OZyv zZd&XaU-jGWpM3tq>kk<{G}c$_!sD0{M2<}~+3-HGf`1{9wy&`Pn;X&fjy;Zq<%6v-j0?N@W*ba=ICIO)<8#aTVj|UVW|@>EwlM qN5mSg&3X`1zsF|P0ofn_cQC$L>}&j6#$N^KQ3g*}KbLh*2~7Z!Aazy% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_converter.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_converter.png new file mode 100644 index 0000000000000000000000000000000000000000..4324d84669fcdef7cbc7aae2c93235ae87dab453 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VflIxo7hTv9?pQer`iCiCI?yi~U~{`>!o zH`t{oD75h!H*^NAH#RhI@cCW!-QKxrsuD8@80LsDuV9uaana+XJOlO|7o#N%*af&G`X!bF-q#jwVqN(#rcUhnO zkT1a?*!lCIWqO^U1Ve}@L$+>u$JtJn`De`Yl!WrLZ#=d6#mb+iAwB)|N-G2Zhd0lg zE)mT-67*$uf%!q3)>Rp9pV`)y?lOO2X)gR_&cm<0@|;E+S^uZ)5ex`D_Ip$Hj#&#- bWaRm8**V;KZ0+?0=uievS3j3^P66`TM6L{8GzekLJChLsCtMD*e} RuK?P};OXk;vd$@?2>`QEHe&z) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/turrets/sentry_damaged.png b/src/main/resources/assets/hbm/textures/models/turrets/sentry_damaged.png new file mode 100644 index 0000000000000000000000000000000000000000..ba6a61a55940a7713765a800feaaa00a29b6bc87 GIT binary patch literal 3989 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 v(P)57)6d7H)>hEV)6418)6 Date: Fri, 1 Mar 2024 22:03:15 -0800 Subject: [PATCH 233/376] silo floors, railings, stairs + blue room beginnings --- .../hbm/items/tool/ItemStructurePattern.java | 4 +- .../world/gen/component/SiloComponent.java | 386 +++++++++++++++++- 2 files changed, 386 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemStructurePattern.java b/src/main/java/com/hbm/items/tool/ItemStructurePattern.java index 09c75e5cd..04cfbab21 100644 --- a/src/main/java/com/hbm/items/tool/ItemStructurePattern.java +++ b/src/main/java/com/hbm/items/tool/ItemStructurePattern.java @@ -46,7 +46,9 @@ public class ItemStructurePattern extends ItemStructureTool { for(int iy = minY; iy <= maxY; iy++) { for(int iz = minZ; iz <= maxZ; iz++) { - Block b = world.getBlock(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); + Block b = world.getBlock(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); + if(b.isAir(world, ix + pos.getX(), iy + pos.getY(), iz + pos.getZ())) continue; + int meta = world.getBlockMetadata(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); message += "placeBlockAtCurrentPosition(world, " + b.getUnlocalizedName() + ", " + meta + ", " + ix + ", " + iy + ", " + iz + ", box);\n"; diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 2a07be028..9aada8676 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -34,6 +34,8 @@ public class SiloComponent extends Component { //from checking a lot of small switches and if statements in some for loops i hope... /* SURFACE */ + fillWithAir(world, box, 36, 26, 6, 38, 28, 8); + //Floor fillWithBlocks(world, box, 13, 25, 2, 42, 25, 4, ModBlocks.asphalt); //it's okay to cut corners (vanilla does it all the time!), but fillWithBlocks(world, box, 13, 25, 5, 34, 25, 9, ModBlocks.asphalt); //being pretty careful trades unnecessary setBlocks for some extra lines. @@ -164,7 +166,7 @@ public class SiloComponent extends Component { fillWithRandomizedBlocks(world, box, 35, 26, 5, 39, 28, 5, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 35, 26, 6, 35, 28, 9, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 39, 26, 6, 39, 28, 9, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 36, 26, 10, 38, 28, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 36, 26, 9, 38, 28, 10, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 36, 27, 11, 38, 27, 11, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 36, 26, 12, 38, 26, 12, rand, ConcreteBricks); ConcreteStairs.setMetadata(stairS); @@ -193,14 +195,372 @@ public class SiloComponent extends Component { fillWithMetadataBlocks(world, box, 18, 27, 6, 19, 27, 6, ModBlocks.brick_slab, 13); placeBlockAtCurrentPosition(world, ModBlocks.brick_slab, 5, 20, 27, 6, box); //Supplies - //TODO make another block selector for this so it's randomized n shit + SiloSupplies Supplies = new SiloSupplies(); + + fillWithRandomizedBlocks(world, box, 27, 26, 7, 29, 26, 9, rand, Supplies); + fillWithRandomizedBlocks(world, box, 17, 26, 4, 19, 26, 8, rand, Supplies); //Wreckage - //TODO ditto + //not really worth the effort to make yet another selector + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 32, 26, 5, box); + fillWithRandomizedBlocks(world, box, 32, 26, 7, 32, 26, 7, rand, DestroyedBricks); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 31, 26, 9, box); + fillWithRandomizedBlocks(world, box, 31, 26, 11, 32, 26, 11, rand, DestroyedBricks); + fillWithRandomizedBlocks(world, box, 34, 26, 11, 34, 26, 11, rand, DestroyedBricks); + fillWithRandomizedBlocks(world, box, 41, 26, 17, 41, 26, 17, rand, DestroyedBricks); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 37, 26, 19, box); //Large Silo Hatch placeBlockAtCurrentPosition(world, ModBlocks.silo_hatch_large, 12, 19, 26, 14, box); fillSpace(world, box, 19, 26, 14, new int[] { 0, 0, 3, 3, 3, 3 }, ModBlocks.silo_hatch_large, ForgeDirection.SOUTH); + /* Stairway */ + fillWithAir(world, box, 37, 26, 9, 37, 27, 10); + placeBlockAtCurrentPosition(world, Blocks.air, 11, 37, 25, 10, box); + fillWithAir(world, box, 37, 24, 11, 37, 26, 11); + fillWithAir(world, box, 37, 23, 12, 37, 25, 12); + fillWithAir(world, box, 37, 21, 13, 37, 24, 14); + //bottoms + for(int i = 0; i < 5; i++) { + fillWithRandomizedBlocks(world, box, 36, 24 - i, 9 + i, 38, 24 - i, 9 + i, rand, ConcreteBricks); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, 3, 37, 25 - i, 9 + i, box); + } + + //walls + for(int i = 36; i <= 38; i += 2) { + fillWithRandomizedBlocks(world, box, i, 26, 11, i, 26, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, i, 25, 10, i, 25, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, i, 24, 10, i, 24, 15, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, i, 23, 11, i, 23, 15, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, i, 22, 12, i, 22, 15, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, i, 21, 13, i, 21, 15, rand, ConcreteBricks); + } + + fillWithBlocks(world, box, 36, 20, 14, 38, 20, 15, ModBlocks.concrete_smooth); + fillWithAir(world, box, 36, 21, 14, 36, 22, 14); + + /* Blue Control Room */ + //Floor and Ceiling + for(int i = 20; i <= 24; i += 4) { + fillWithBlocks(world, box, 15, i, 0, 23, i, 5, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, i, 1, 26, i, 6, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 25, i, 7, 26, i, 7, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 26, i, 8, box); + fillWithBlocks(world, box, 27, i, 2, 28, i, 6, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 29, i, 3, box); + fillWithBlocks(world, box, 29, i, 4, 30, i, 4, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 29, i, 5, 31, i, 6, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 27, i, 7, 32, i, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 28, i, 10, 33, i, 20, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 34, i, 12, 35, i, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 34, i, 16, 37, i, 20, ModBlocks.concrete_smooth); + } + //Walls + //Curve (N-facing) + for(int i = 21; i <= 23; i += 2) { + fillWithRandomizedBlocks(world, box, 15, i, 0, 23, i, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, i, 1, 26, i, 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, i, 2, 28, i, 2, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 29, i, 3, 29, i, 3, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 30, i, 4, 30, i, 4, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 31, i, 5, 31, i, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 32, i, 7, 32, i, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 33, i, 10, 33, i, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 34, i, 12, 35, i, 12, rand, ConcreteBricks); + } + + fillWithMetadataBlocks(world, box, 15, 22, 0, 23, 22, 0, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 24, 22, 1, 26, 22, 1, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 27, 22, 2, 28, 22, 2, ModBlocks.concrete_colored, 11); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 11, 29, 22, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 11, 30, 22, 4, box); + fillWithMetadataBlocks(world, box, 31, 22, 5, 31, 22, 6, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 32, 22, 7, 32, 22, 9, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 33, 22, 10, 33, 22, 12, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 34, 22, 12, 35, 22, 12, ModBlocks.concrete_colored, 11); + //W-facing side + fillWithRandomizedBlocks(world, box, 15, 21, 1, 15, 21, 4, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 15, 22, 1, 15, 22, 4, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, 15, 23, 1, 15, 23, 4, rand, ConcreteBricks); + //Inner Curve (S-facing) + for(int i = 20; i <= 23; i += 3) { + fillWithRandomizedBlocks(world, box, 15, i, 6, 16, i + 1, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, i, 6, 23, i + 1, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, i, 7, 24, i + 1, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 25, i, 8, 25, i + 1, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 26, i, 9, 26, i + 1, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, i, 10, 27, i + 1, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, i, 17, 27, i + 1, 18, rand, ConcreteBricks); + } + fillWithRandomizedBlocks(world, box, 15, 21, 5, 18, 21, 5, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 20, 21, 5, 21, 21, 5, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 15, 23, 5, 21, 23, 5, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 28, 21, 12, 28, 21, 13, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 28, 21, 15, 28, 21, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 28, 23, 12, 28, 23, 20, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 15, 22, 6, 16, 22, 6, ModBlocks.concrete_colored, 11); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 11, 22, 22, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 23, 22, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 24, 22, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 25, 22, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 26, 22, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 27, 22, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 11, 27, 22, 11, box); + fillWithMetadataBlocks(world, box, 27, 22, 17, 27, 22, 18, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 15, 22, 5, 18, 22, 5, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 20, 22, 5, 21, 22, 5, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 28, 22, 12, 28, 22, 13, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 28, 22, 15, 28, 22, 20, ModBlocks.concrete_colored, 11); + //S-facing side + fillWithRandomizedBlocks(world, box, 29, 21, 20, 36, 21, 20, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 29, 22, 20, 36, 22, 20, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, 29, 23, 20, 36, 23, 20, rand, ConcreteBricks); + //E-facing side + fillWithRandomizedBlocks(world, box, 37, 21, 15, 37, 21, 19, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 37, 22, 15, 37, 22, 19, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, 37, 23, 15, 37, 23, 19, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 37, 24, 15, 37, 24, 15, rand, ConcreteBricks); + //Internal walls + fillWithRandomizedBlocks(world, box, 32, 21, 16, 32, 21, 19, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 32, 22, 16, 32, 22, 19, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, 32, 23, 16, 32, 23, 19, rand, ConcreteBricks); + + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 24, 23, 2, 26, 23, 2, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 27, 23, 3, 28, 23, 3, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW | 4); + fillWithRandomizedBlocks(world, box, 30, 23, 5, 30, 23, 6, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 31, 23, 7, 31, 23, 9, rand, ConcreteStairs); + + /* Silo */ + // CENTER + //Supports + fillWithRandomizedBlocks(world, box, 22, 24, 17, 22, 24, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 17, 24, 17, 21, 25, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 16, 24, 17, 16, 24, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 16, 24, 12, 16, 25, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 16, 24, 11, 16, 24, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 17, 24, 11, 21, 25, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 24, 11, 22, 24, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 24, 12, 22, 25, 16, rand, ConcreteBricks); + + fillWithRandomizedBlocks(world, box, 19, 5, 11, 19, 23, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 5, 14, 22, 23, 14, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 19, 5, 17, 19, 23, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 16, 5, 14, 16, 23, 14, rand, ConcreteBricks); + //Grates + Railing + for(int j = 8; j <= 20; j += 4) { + for(int i = 16; i <= 22; i += 6) { + fillWithMetadataBlocks(world, box, i, j, 15, i, j, 16, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, i, j, 12, i, j, 13, ModBlocks.steel_grate, 7); + fillWithBlocks(world, box, i, j + 1, 15, i, j + 1, 16, ModBlocks.fence_metal); + fillWithBlocks(world, box, i, j + 1, 12, i, j + 1, 13, ModBlocks.fence_metal); + } + for(int k = 11; k <= 17; k += 6) { + fillWithMetadataBlocks(world, box, 16, j, k, 18, j, k, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 20, j, k, 22, j, k, ModBlocks.steel_grate, 7); + fillWithBlocks(world, box, 16, j + 1, k, 18, j + 1, k, ModBlocks.fence_metal); + fillWithBlocks(world, box, 20, j + 1, k, 22, j + 1, k, ModBlocks.fence_metal); + } + } + //Floor + for(int j = 8; j <= 16; j += 4) { + fillWithBlocks(world, box, 15, j, 11, 15, j, 17, ModBlocks.concrete); + fillWithBlocks(world, box, 16, j, 10, 22, j, 10, ModBlocks.concrete); + fillWithBlocks(world, box, 23, j, 11, 23, j, 17, ModBlocks.concrete); + fillWithBlocks(world, box, 16, j, 18, 22, j, 18, ModBlocks.concrete); + fillWithBlocks(world, box, 15, j, 9, 16, j, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, j, 10, 15, j, 10, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, j, 11, 14, j, 17, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 13, j, 12, 13, j, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, j, 18, 15, j, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, j, 19, 16, j, 19, ModBlocks.concrete_smooth); + + if((j / 4) % 2 == 0) { + fillWithBlocks(world, box, 20, j, 19, 21, j, 20, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 19, j, 19, 19, j + 1, 20, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 18, j, 19, 18, j + 2, 20, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, j, 19, 17, j + 3, 20, ModBlocks.concrete_smooth); + for(int i = 0; i < 4; i++) + fillWithMetadataBlocks(world, box, 20 - i, j + 1 + i, 19, 20 - i, j + 1 + i, 20, ModBlocks.concrete_smooth_stairs, 1); + } else { + fillWithBlocks(world, box, 17, j, 8, 18, j, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 19, j, 8, 19, j + 1, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 20, j, 8, 20, j + 2, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, j, 8, 21, j + 3, 9, ModBlocks.concrete_smooth); + for(int i = 0; i < 4; i++) + fillWithMetadataBlocks(world, box, 18 + i, j + 1 + i, 8, 18 + i, j + 1 + i, 9, ModBlocks.concrete_smooth_stairs, 0); + } + + fillWithBlocks(world, box, 22, j, 9, 23, j, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, j, 10, 24, j, 10, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, j, 11, 24, j, 17, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 25, j, 12, 25, j, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, j, 18, 24, j, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, j, 19, 23, j, 19, ModBlocks.concrete_smooth); + } + // TOP + //Floor + fillWithBlocks(world, box, 13, 20, 9, 13, 20, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 20, 8, 14, 20, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 20, 7, 16, 20, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 20, 6, 21, 20, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 20, 7, 23, 20, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 20, 8, 24, 20, 9, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 25, 20, 9, box); + fillWithBlocks(world, box, 25, 20, 10, 26, 20, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 26, 20, 12, 27, 20, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 25, 20, 17, 26, 20, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 20, 19, 25, 20, 19, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 24, 20, 20, box); + fillWithBlocks(world, box, 22, 20, 20, 23, 20, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 20, 21, 21, 20, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 20, 20, 16, 20, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 20, 19, 14, 20, 20, ModBlocks.concrete_smooth); + //grates + fillWithMetadataBlocks(world, box, 14, 20, 10, 15, 20, 18, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 13, 20, 12, 13, 20, 16, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 17, 20, 8, 21, 20, 8, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 15, 20, 9, 23, 20, 9, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 16, 20, 10, 22, 20, 10, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 23, 20, 10, 24, 20, 18, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 25, 20, 12, 25, 20, 16, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 22, 20, 19, 23, 20, 19, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 15, 20, 19, 16, 20, 19, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 16, 20, 18, 22, 20, 18, ModBlocks.steel_grate, 7); + //Ceiling + fillWithBlocks(world, box, 11, 24, 12, 11, 24, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 24, 10, 15, 24, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 13, 24, 9, 15, 24, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 24, 8, 15, 24, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 13, 24, 19, 15, 24, 19, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 24, 20, 15, 24, 20, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 17, 24, 6, 21, 24, 6, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 24, 7, 23, 24, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 16, 24, 8, 22, 24, 10, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 27, 24, 12, 27, 24, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 10, 26, 24, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 9, 25, 24, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 8, 24, 24, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 19, 25, 24, 19, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 20, 24, 24, 20, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 17, 24, 22, 21, 24, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 24, 21, 23, 24, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 16, 24, 18, 22, 24, 20, ModBlocks.concrete_smooth); + //Walls + fillWithRandomizedBlocks(world, box, 14, 20, 7, 14, 24, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 20, 8, 13, 24, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, 21, 9, 12, 24, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 21, 10, 11, 24, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 21, 12, 10, 24, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 21, 17, 11, 24, 18, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, 21, 19, 12, 24, 19, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 21, 20, 13, 24, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 20, 21, 14, 24, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 15, 20, 22, 16, 24, 22, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 17, 20, 23, 21, 24, 23, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 20, 22, 23, 24, 22, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, 20, 21, 24, 24, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 25, 20, 20, 25, 24, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 26, 20, 19, 26, 24, 19, rand, ConcreteBricks); + // T - 1 + + // T - 2 + + // T - 3 + + // T - 4 + + // EXHAUST + //dark area N/S + fillWithMetadataBlocks(world, box, 17, 0, 7, 21, 0, 21, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 18, 1, 7, 20, 1, 7, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 17, 1, 7, 17, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 21, 1, 7, 21, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 18, 1, 11, 18, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 20, 1, 11, 20, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 18, 1, 21, 20, 1, 21, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 17, 1, 16, 17, 1, 21, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 21, 1, 16, 21, 1, 21, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 18, 1, 16, 18, 1, 17, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 20, 1, 16, 20, 1, 17, ModBlocks.concrete_colored, 7); + //W/E + fillWithMetadataBlocks(world, box, 12, 0, 12, 16, 0, 16, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 22, 0, 12, 26, 0, 16, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 12, 1, 13, 12, 1, 15, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 12, 1, 16, 16, 1, 16, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 12, 1, 12, 16, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 16, 1, 15, 17, 1, 15, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 16, 1, 13, 17, 1, 13, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 26, 1, 13, 26, 1, 15, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 22, 1, 16, 26, 1, 16, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 22, 1, 12, 26, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 21, 1, 15, 22, 1, 15, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 21, 1, 13, 22, 1, 13, ModBlocks.concrete_colored, 7); + //gray area walls + fillWithBlocks(world, box, 18, 2, 21, 20, 3, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 2, 17, 21, 3, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 2, 16, 26, 3, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 26, 2, 13, 26, 3, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 2, 12, 26, 3, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 2, 7, 21, 3, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 18, 2, 7, 20, 3, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 2, 7, 17, 3, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 12, 16, 3, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 13, 12, 3, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 16, 16, 3, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 2, 17, 17, 3, 21, ModBlocks.concrete_smooth); + //Floor + fillWithBlocks(world, box, 18, 2, 21, 20, 3, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 2, 17, 21, 3, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 2, 16, 26, 3, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 26, 2, 13, 26, 3, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 2, 12, 26, 3, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 2, 7, 21, 3, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 18, 2, 7, 20, 3, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 2, 7, 17, 3, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 12, 16, 3, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 13, 12, 3, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 16, 16, 3, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 2, 17, 17, 2, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 4, 17, 21, 4, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 4, 17, 23, 4, 19, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 4, 17, 24, 4, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 4, 12, 26, 4, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 4, 10, 24, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 4, 9, 23, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 4, 7, 21, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 4, 9, 16, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 4, 10, 14, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 4, 12, 16, 4, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 4, 17, 14, 4, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 4, 17, 16, 4, 19, ModBlocks.concrete_smooth); + //Stairs + fillWithBlocks(world, box, 19, 5, 8, 19, 5, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 20, 5, 8, 20, 6, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 5, 8, 21, 7, 9, ModBlocks.concrete_smooth); + for(int i = 0; i < 4; i++) + fillWithMetadataBlocks(world, box, 18 + i, 5 + i, 8, 18 + i, 5 + i, 9, ModBlocks.concrete_smooth_stairs, 0); + //Railing and Deco + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 18, 5, 11, box); + fillWithBlocks(world, box, 20, 5, 11, 22, 5, 11, ModBlocks.fence_metal); + fillWithBlocks(world, box, 22, 5, 12, 22, 5, 13, ModBlocks.fence_metal); + fillWithBlocks(world, box, 22, 5, 15, 22, 5, 17, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 20, 5, 17, box); + fillWithBlocks(world, box, 16, 5, 17, 18, 5, 17, ModBlocks.fence_metal); + fillWithBlocks(world, box, 16, 5, 15, 16, 5, 16, ModBlocks.fence_metal); + fillWithBlocks(world, box, 16, 5, 11, 16, 5, 13, ModBlocks.fence_metal); + + fillWithMetadataBlocks(world, box, 17, 2, 12, 17, 4, 12, ModBlocks.ladder_steel, getDecoMeta(3)); + fillWithMetadataBlocks(world, box, 21, 2, 16, 21, 4, 16, ModBlocks.ladder_steel, getDecoMeta(2)); + //Launch Pad + placeBlockAtCurrentPosition(world, ModBlocks.launch_pad, 12, 19, 1, 14, box); + fillSpace(world, box, 19, 1, 14, new int[] {0, 0, 1, 1, 1, 1}, ModBlocks.launch_pad, ForgeDirection.NORTH); + for(int i = 0; i <= 2; i += 2) + for(int k = 0; k <= 2; k += 2) + makeExtra(world, box, ModBlocks.launch_pad, 18 + i, 1, 13 + k); return true; } @@ -274,4 +634,24 @@ public class SiloComponent extends Component { this.field_151562_a = Blocks.air; } } + + public static class SiloSupplies extends BlockSelector { + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + //TODO make better version of this shit that actually gives me a world instance + float chance = rand.nextFloat(); + + if(chance < 0.2F) + this.field_151562_a = ModBlocks.barrel_corroded; + else if(chance < 0.4F) + this.field_151562_a = ModBlocks.crate_can; + else if(chance < 0.45F) + this.field_151562_a = ModBlocks.red_barrel; + else if(chance < 0.5F) + this.field_151562_a = ModBlocks.pink_barrel; + else + this.field_151562_a = Blocks.air; + } + } } From 7934dba1d26b1541348e0d1b63f00e83e2e0dde2 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 2 Mar 2024 12:49:13 -0800 Subject: [PATCH 234/376] walling, floors, doors, ceilings, and arches for everything --- .../hbm/world/gen/component/Component.java | 23 ++ .../world/gen/component/SiloComponent.java | 252 +++++++++++++++++- 2 files changed, 265 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 758a1ebc9..01ad611ac 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -788,6 +788,29 @@ abstract public class Component extends StructureComponent { } } + protected void randomlyFillWithBlocks(World world, StructureBoundingBox box, Random rand, float randLimit, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, Block block, int meta) { + + if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) + return; + + for(int x = minX; x <= maxX; x++) { + + for(int z = minZ; z <= maxZ; z++) { + int posX = getXWithOffset(x, z); + int posZ = getZWithOffset(x, z); + + if(posX >= box.minX && posX <= box.maxX && posZ >= box.minZ && posZ <= box.maxZ) { + for(int y = minY; y <= maxY; y++) { + int posY = getYWithOffset(y); + + if(rand.nextFloat() <= randLimit) + world.setBlock(posX, posY, posZ, block, meta, 2); + } + } + } + } + } + protected ForgeDirection getDirection(ForgeDirection dir) { switch(coordBaseMode) { default: //South diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 9aada8676..51704a0fb 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -315,9 +315,9 @@ public class SiloComponent extends Component { fillWithMetadataBlocks(world, box, 29, 22, 20, 36, 22, 20, ModBlocks.concrete_colored, 11); fillWithRandomizedBlocks(world, box, 29, 23, 20, 36, 23, 20, rand, ConcreteBricks); //E-facing side - fillWithRandomizedBlocks(world, box, 37, 21, 15, 37, 21, 19, rand, ConcreteBricks); - fillWithMetadataBlocks(world, box, 37, 22, 15, 37, 22, 19, ModBlocks.concrete_colored, 11); - fillWithRandomizedBlocks(world, box, 37, 23, 15, 37, 23, 19, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 37, 21, 15, 37, 21, 20, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 37, 22, 15, 37, 22, 20, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, 37, 23, 15, 37, 23, 20, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 37, 24, 15, 37, 24, 15, rand, ConcreteBricks); //Internal walls fillWithRandomizedBlocks(world, box, 32, 21, 16, 32, 21, 19, rand, ConcreteBricks); @@ -398,6 +398,25 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 23, j, 18, 24, j, 18, ModBlocks.concrete_smooth); fillWithBlocks(world, box, 22, j, 19, 23, j, 19, ModBlocks.concrete_smooth); } + + //Walls + fillWithRandomizedBlocks(world, box, 17, 5, 7, 21, 19, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 15, 4, 8, 16, 19, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 4, 9, 14, 19, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 4, 10, 13, 19, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, 5, 12, 12, 19, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 4, 17, 13, 19, 18, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 4, 19, 14, 19, 19, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 15, 4, 20, 16, 19, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 17, 5, 21, 21, 19, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 4, 20, 23, 19, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, 4, 19, 24, 19, 19, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 25, 4, 17, 25, 19, 18, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 26, 5, 12, 26, 19, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 25, 4, 10, 25, 19, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, 4, 9, 24, 19, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 4, 8, 23, 19, 8, rand, ConcreteBricks); + // TOP //Floor fillWithBlocks(world, box, 13, 20, 9, 13, 20, 11, ModBlocks.concrete_smooth); @@ -465,13 +484,6 @@ public class SiloComponent extends Component { fillWithRandomizedBlocks(world, box, 24, 20, 21, 24, 24, 21, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 25, 20, 20, 25, 24, 20, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 26, 20, 19, 26, 24, 19, rand, ConcreteBricks); - // T - 1 - - // T - 2 - - // T - 3 - - // T - 4 // EXHAUST //dark area N/S @@ -562,6 +574,226 @@ public class SiloComponent extends Component { for(int k = 0; k <= 2; k += 2) makeExtra(world, box, ModBlocks.launch_pad, 18 + i, 1, 13 + k); + /* Red Sector */ + //Ceiling + fillWithBlocks(world, box, 1, 20, 8, 12, 20, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 20, 17, 13, 20, 26, ModBlocks.concrete_smooth); + //Floor + fillWithBlocks(world, box, 2, 16, 7, 11, 16, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 16, 8, 12, 16, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 16, 12, 11, 16, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 16, 17, 12, 16, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 16, 19, 13, 16, 26, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 16, 14, box); + //Walls + //N + fillWithRandomizedBlocks(world, box, 2, 17, 7, 11, 19, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 17, 8, 12, 17, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 8, 17, 8, 8, 17, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 5, 17, 8, 5, 17, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 17, 8, 2, 17, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 19, 8, 12, 19, 8, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 1, 18, 8, 2, 18, 8, ModBlocks.concrete_colored, 14); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 14, 5, 18, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 14, 8, 18, 8, box); + fillWithMetadataBlocks(world, box, 11, 18, 8, 12, 18, 8, ModBlocks.concrete_colored, 14); + //W + fillWithMetadataBlocks(world, box, 1, 18, 9, 1, 18, 25, ModBlocks.concrete_colored, 14); + //S + fillWithMetadataBlocks(world, box, 1, 18, 26, 13, 18, 26, ModBlocks.concrete_colored, 14); + //E + fillWithMetadataBlocks(world, box, 13, 18, 17, 13, 18, 25, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 12, 18, 9, 12, 18, 16, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 13, 18, 10, 13, 18, 11, ModBlocks.concrete_colored, 14); + //Internal + fillWithMetadataBlocks(world, box, 2, 18, 12, 11, 18, 12, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 2, 18, 16, 11, 18, 16, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 7, 18, 17, 7, 18, 25, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 4, 18, 22, 6, 18, 22, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 4, 18, 23, 4, 18, 25, ModBlocks.concrete_colored, 14); + for(int i = 17; i <= 19; i += 2) { + //W + fillWithRandomizedBlocks(world, box, 1, i, 9, 1, i, 25, rand, ConcreteBricks); + //S + fillWithRandomizedBlocks(world, box, 1, i, 26, 13, i, 26, rand, ConcreteBricks); + //E + fillWithRandomizedBlocks(world, box, 13, i, 19, 13, i, 25, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, i, 9, 12, i, 11, rand, ConcreteBricks); + //Internal + fillWithRandomizedBlocks(world, box, 2, i, 12, 11, i, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 2, i, 16, 11, i, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 7, i, 17, 7, i, 25, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 4, i, 22, 6, i, 22, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 4, i, 23, 4, i, 25, rand, ConcreteBricks); + } + //Arches + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 2, 19, 9, 11, 19, 9, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 2, 19, 13, 11, 19, 13, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairN | 4); + fillWithRandomizedBlocks(world, box, 2, 19, 11, 11, 19, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 2, 19, 15, 11, 19, 15, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW | 4); + fillWithRandomizedBlocks(world, box, 12, 19, 17, 12, 19, 25, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 6, 19, 17, 6, 19, 21, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairE | 4); + fillWithRandomizedBlocks(world, box, 8, 19, 17, 8, 19, 25, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 2, 19, 17, 2, 19, 25, rand, ConcreteStairs); + //Doors + placeDoor(world, box, ModBlocks.door_bunker, 2, false, rand.nextBoolean(), 12, 17, 14); + placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 10, 17, 12); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 10, 17, 16); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 17, 16); + placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 4, 17, 24); + + /* Yellow Sector */ + //Ceiling + Floor + for(int i = 12; i <= 16; i += 4) { + fillWithBlocks(world, box, 26, i, 17, 26, i, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 27, i, 8, 34, i, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 26, i, 8, 26, i, 11, ModBlocks.concrete_smooth); + } + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 26, 12, 14, box); + //Walls + //N + fillWithMetadataBlocks(world, box, 26, 14, 8, 34, 14, 8, ModBlocks.concrete_colored, 4); + //E + fillWithMetadataBlocks(world, box, 34, 14, 9, 34, 14, 21, ModBlocks.concrete_colored, 4); + //S + fillWithMetadataBlocks(world, box, 26, 14, 22, 34, 14, 22, ModBlocks.concrete_colored, 4); + //W + fillWithMetadataBlocks(world, box, 26, 14, 9, 26, 14, 21, ModBlocks.concrete_colored, 4); + fillWithMetadataBlocks(world, box, 25, 14, 17, 25, 14, 18, ModBlocks.concrete_colored, 4); + fillWithMetadataBlocks(world, box, 25, 14, 10, 25, 14, 11, ModBlocks.concrete_colored, 4); + //Internal + fillWithMetadataBlocks(world, box, 27, 14, 16, 33, 14, 16, ModBlocks.concrete_colored, 4); + fillWithMetadataBlocks(world, box, 27, 14, 12, 33, 14, 12, ModBlocks.concrete_colored, 4); + fillWithMetadataBlocks(world, box, 30, 14, 9, 30, 14, 11, ModBlocks.concrete_colored, 4); + for(int i = 13; i <= 15; i += 2) { + //N + fillWithRandomizedBlocks(world, box, 26, i, 8, 34, i, 8, rand, ConcreteBricks); + //E + fillWithRandomizedBlocks(world, box, 34, i, 9, 34, i, 21, rand, ConcreteBricks); + //S + fillWithRandomizedBlocks(world, box, 26, i, 22, 34, i, 22, rand, ConcreteBricks); + //W + fillWithRandomizedBlocks(world, box, 26, i, 15, 26, i, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 26, i, 9, 26, i, 13, rand, ConcreteBricks); + //Internal + fillWithRandomizedBlocks(world, box, 27, i, 16, 33, i, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, i, 12, 33, i, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 30, i, 9, 30, i, 11, rand, ConcreteBricks); + } + //Arches + ConcreteStairs.setMetadata(stairN | 4); + fillWithRandomizedBlocks(world, box, 27, 15, 21, 33, 15, 21, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 27, 15, 15, 33, 15, 15, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 27, 15, 17, 33, 15, 17, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 27, 15, 13, 33, 15, 13, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW | 4); + fillWithRandomizedBlocks(world, box, 33, 15, 9, 33, 15, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 29, 15, 9, 29, 15, 11, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairE | 4); + fillWithRandomizedBlocks(world, box, 31, 15, 9, 31, 15, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 27, 15, 9, 27, 15, 11, rand, ConcreteStairs); + //Doors + placeDoor(world, box, ModBlocks.door_bunker, 0, false, rand.nextBoolean(), 26, 13, 14); + placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 28, 13, 12); + placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 32, 13, 12); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 32, 13, 16); + + /* Green Sector */ + //Floor + Ceiling + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 8, 14, box); + for(int i = 8; i <= 12; i += 4) { + fillWithBlocks(world, box, 0, i, 6, 12, i, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 0, i, 12, 11, i, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 0, i, 17, 12, i, 24, ModBlocks.concrete_smooth); + } + //Walls + //N + fillWithMetadataBlocks(world, box, 0, 10, 6, 12, 10, 6, ModBlocks.concrete_colored, 13); + //W + fillWithMetadataBlocks(world, box, 0, 10, 7, 0, 10, 23, ModBlocks.concrete_colored, 13); + //S + fillWithMetadataBlocks(world, box, 0, 10, 24, 12, 10, 24, ModBlocks.concrete_colored, 13); + //E + fillWithMetadataBlocks(world, box, 12, 10, 7, 12, 10, 23, ModBlocks.concrete_colored, 13); + fillWithMetadataBlocks(world, box, 13, 10, 17, 13, 10, 18, ModBlocks.concrete_colored, 13); + fillWithMetadataBlocks(world, box, 13, 10, 10, 13, 10, 11, ModBlocks.concrete_colored, 13); + //Internal + fillWithMetadataBlocks(world, box, 1, 10, 12, 11, 10, 12, ModBlocks.concrete_colored, 13); + fillWithMetadataBlocks(world, box, 1, 10, 16, 11, 10, 16, ModBlocks.concrete_colored, 13); + fillWithMetadataBlocks(world, box, 6, 10, 17, 6, 10, 23, ModBlocks.concrete_colored, 13); + for(int i = 9; i <= 11; i += 2) { + //N + fillWithRandomizedBlocks(world, box, 0, i, 6, 12, i, 6, rand, ConcreteBricks); + //W + fillWithRandomizedBlocks(world, box, 0, i, 7, 0, i, 23, rand, ConcreteBricks); + //S + fillWithRandomizedBlocks(world, box, 0, i, 24, 12, i, 24, rand, ConcreteBricks); + //E + fillWithRandomizedBlocks(world, box, 12, i, 17, 12, i, 23, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, i, 7, 12, i, 11, rand, ConcreteBricks); + //Internal + fillWithRandomizedBlocks(world, box, 1, i, 12, 11, i, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, i, 16, 11, i, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, i, 17, 6, i, 23, rand, ConcreteBricks); + } + //Arches + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 1, 11, 7, 11, 11, 7, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 1, 11, 13, 11, 11, 13, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairN | 4); + fillWithRandomizedBlocks(world, box, 1, 11, 11, 11, 11, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 1, 11, 15, 11, 11, 15, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW | 4); + fillWithRandomizedBlocks(world, box, 11, 11, 17, 11, 11, 23, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 5, 11, 17, 5, 11, 18, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 5, 11, 22, 5, 11, 23, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairE | 4); + fillWithRandomizedBlocks(world, box, 7, 11, 17, 7, 11, 23, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 1, 11, 17, 1, 11, 18, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 1, 11, 22, 1, 11, 23, rand, ConcreteStairs); + //Doors + placeDoor(world, box, ModBlocks.door_bunker, 2, false, rand.nextBoolean(), 12, 9, 14); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 9, 9, 16); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 9, 16); + placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 3, 9, 12); + + /* Black Sector */ + //Floor + Ceiling + fillWithBlocks(world, box, 28, 0, 11, 31, 0, 15, Blocks.dirt); + randomlyFillWithBlocks(world, box, rand, 0.5F, 28, 0, 11, 31, 0, 15, Blocks.dirt, 2); + fillWithBlocks(world, box, 27, 4, 11, 31, 4, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 27, 8, 12, 32, 8, 16, ModBlocks.concrete_smooth); + //Walls + //N + fillWithRandomizedBlocks(world, box, 27, 0, 10, 32, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, 5, 12, 32, 5, 12, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 27, 6, 12, 32, 6, 12, ModBlocks.concrete_colored, 15); + fillWithRandomizedBlocks(world, box, 27, 7, 12, 32, 7, 12, rand, ConcreteBricks); + //E + fillWithRandomizedBlocks(world, box, 32, 0, 11, 32, 4, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 32, 0, 13, 32, 5, 15, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 32, 6, 13, 32, 6, 15, ModBlocks.concrete_colored, 15); + fillWithRandomizedBlocks(world, box, 32, 7, 13, 32, 7, 15, rand, ConcreteBricks); + //S + fillWithRandomizedBlocks(world, box, 27, 0, 16, 32, 5, 16, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 27, 6, 16, 32, 6, 16, ModBlocks.concrete_colored, 15); + fillWithRandomizedBlocks(world, box, 27, 7, 16, 32, 7, 16, rand, ConcreteBricks); + //W + fillWithRandomizedBlocks(world, box, 27, 0, 11, 27, 3, 15, rand, ConcreteBricks); + //Arches + ConcreteStairs.setMetadata(stairN | 4); + fillWithRandomizedBlocks(world, box, 27, 7, 15, 31, 7, 15, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 27, 7, 13, 31, 7, 13, rand, ConcreteStairs); + //Deco + fillWithBlocks(world, box, 26, 5, 14, 26, 6, 14, ModBlocks.concrete_smooth); //doorway + fillWithMetadataBlocks(world, box, 31, 2, 15, 31, 4, 15, ModBlocks.ladder_steel, getDecoMeta(4)); + return true; } From ec389b72f9e77a2c82c50c8f00b885f4778b58cd Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 2 Mar 2024 23:26:40 +0100 Subject: [PATCH 235/376] crap --- changelog | 11 +++++++++++ .../inventory/recipes/CustomMachineRecipes.java | 2 +- .../gui/weapon/gui_launch_pad_structure.png | Bin 0 -> 3896 bytes 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_structure.png diff --git a/changelog b/changelog index 98a2da525..f7e259775 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,11 @@ +##Added +* CRTs and toasters + * Decorative blocks that will spawn in upcoming dungeons +* Snow globes +* Sentry turret "Edwin" + * A broken down version of the sentry turret with infinite power and ammo + * Will be found in the new silo structure + ## Changed * Updated chinese localization * Tweaked super shotgun animations, added config for changing the animation style @@ -17,9 +25,12 @@ * Schrabidium transmutation by fallout is now limited to the inner 40% of the sellafite conversion radius * Fluid traits are now listed in a fixed order instead of being arranged randomly * Hidden fluid trait descriptions will now be added below the visible part of that trait instead of below the last visible trait +* The methusalem turret no longer drops anything when broken ## Fixed * Fixed the structure toggle on the world creation screen not working correctly on most world types * Fixed antiknock having a broken sprite and localization * Fixed crash caused by fallout affecting spotlight blocks, crashing the game * Fixed 528 mode bedrock ore replacements not working +* Fixed potential crashes with improperly configured custom machines +* Fixed misspelling in the custom machine config template diff --git a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java index bf9895e2d..a91431fa8 100644 --- a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java @@ -125,7 +125,7 @@ public class CustomMachineRecipes extends SerializableRecipe { writer.name("consumptionPerTick").value(recipeInstance.consumptionPerTick); writer.name("pollutionType").value(recipeInstance.pollutionType); writer.name("pollutionAmount").value(recipeInstance.pollutionAmount); - writer.name("radiationnAmount").value(recipeInstance.radiationAmount); + writer.name("radiationAmount").value(recipeInstance.radiationAmount); writer.name("flux").value(recipeInstance.flux); writer.name("heat").value(recipeInstance.heat); diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_structure.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_structure.png new file mode 100644 index 0000000000000000000000000000000000000000..a2dc1aad1f48a7f00eb44db63f554364849a6f31 GIT binary patch literal 3896 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 D=pYPa literal 0 HcmV?d00001 From bccb887a9d006078fa5c2070cb5caacd344dba78 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 2 Mar 2024 14:56:18 -0800 Subject: [PATCH 236/376] air filling for everything --- .../world/gen/component/SiloComponent.java | 274 +++++++++++++----- 1 file changed, 205 insertions(+), 69 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 51704a0fb..16dde3392 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -239,6 +239,22 @@ public class SiloComponent extends Component { fillWithAir(world, box, 36, 21, 14, 36, 22, 14); /* Blue Control Room */ + //Air + placeBlockAtCurrentPosition(world, Blocks.air, 0, 36, 23, 17, box); + fillWithAir(world, box, 34, 21, 13, 35, 23, 19); + fillWithAir(world, box, 33, 21, 13, 33, 23, 15); + fillWithAir(world, box, 29, 21, 16, 31, 23, 19); + fillWithAir(world, box, 29, 21, 12, 32, 23, 15); + fillWithAir(world, box, 28, 21, 10, 32, 23, 11); + fillWithAir(world, box, 27, 21, 7, 31, 23, 9); + fillWithAir(world, box, 27, 21, 5, 30, 23, 6); + fillWithAir(world, box, 27, 21, 4, 29, 23, 4); + fillWithAir(world, box, 27, 21, 3, 28, 23, 3); + fillWithAir(world, box, 26, 22, 7, 26, 23, 8); + fillWithAir(world, box, 25, 22, 7, 25, 23, 7); + fillWithAir(world, box, 24, 21, 2, 26, 23, 6); + fillWithAir(world, box, 22, 21, 5, 23, 23, 5); + fillWithAir(world, box, 16, 21, 1, 23, 23, 4); //Floor and Ceiling for(int i = 20; i <= 24; i += 4) { fillWithBlocks(world, box, 15, i, 0, 23, i, 5, ModBlocks.concrete_smooth); @@ -323,16 +339,144 @@ public class SiloComponent extends Component { fillWithRandomizedBlocks(world, box, 32, 21, 16, 32, 21, 19, rand, ConcreteBricks); fillWithMetadataBlocks(world, box, 32, 22, 16, 32, 22, 19, ModBlocks.concrete_colored, 11); fillWithRandomizedBlocks(world, box, 32, 23, 16, 32, 23, 19, rand, ConcreteBricks); - + //Arches ConcreteStairs.setMetadata(stairS | 4); fillWithRandomizedBlocks(world, box, 24, 23, 2, 26, 23, 2, rand, ConcreteStairs); fillWithRandomizedBlocks(world, box, 27, 23, 3, 28, 23, 3, rand, ConcreteStairs); ConcreteStairs.setMetadata(stairW | 4); fillWithRandomizedBlocks(world, box, 30, 23, 5, 30, 23, 6, rand, ConcreteStairs); fillWithRandomizedBlocks(world, box, 31, 23, 7, 31, 23, 9, rand, ConcreteStairs); + //Doors + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 19, 21, 5); + placeDoor(world, box, ModBlocks.door_bunker, 2, true, rand.nextBoolean(), 28, 21, 14); + //Deco /* Silo */ + // TOP + //Air + fillWithAir(world, box, 17, 21, 6, 21, 23, 6); + fillWithAir(world, box, 15, 21, 7, 23, 23, 10); + fillWithAir(world, box, 24, 21, 8, 24, 23, 10); + fillWithAir(world, box, 25, 21, 9, 25, 23, 10); + fillWithAir(world, box, 26, 21, 10, 26, 23, 10); + fillWithAir(world, box, 23, 21, 11, 26, 23, 17); + fillWithAir(world, box, 27, 21, 12, 27, 23, 16); + fillWithAir(world, box, 26, 21, 18, 26, 23, 18); + fillWithAir(world, box, 25, 21, 18, 25, 23, 19); + fillWithAir(world, box, 24, 21, 18, 24, 23, 20); + fillWithAir(world, box, 15, 21, 18, 23, 23, 21); + fillWithAir(world, box, 17, 21, 22, 21, 23, 22); + fillWithAir(world, box, 14, 21, 18, 14, 23, 20); + fillWithAir(world, box, 13, 21, 18, 13, 23, 19); + fillWithAir(world, box, 12, 21, 18, 12, 23, 18); + fillWithAir(world, box, 12, 21, 11, 15, 23, 17); + fillWithAir(world, box, 11, 21, 12, 11, 23, 16); + fillWithAir(world, box, 12, 21, 10, 12, 23, 10); + fillWithAir(world, box, 13, 21, 9, 13, 23, 10); + fillWithAir(world, box, 14, 21, 8, 14, 23, 10); + //Floor + fillWithBlocks(world, box, 13, 20, 9, 13, 20, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 20, 8, 14, 20, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 20, 7, 16, 20, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 20, 6, 21, 20, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 20, 7, 23, 20, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 20, 8, 24, 20, 9, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 25, 20, 9, box); + fillWithBlocks(world, box, 25, 20, 10, 26, 20, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 26, 20, 12, 27, 20, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 25, 20, 17, 26, 20, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 20, 19, 25, 20, 19, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 24, 20, 20, box); + fillWithBlocks(world, box, 22, 20, 20, 23, 20, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 20, 21, 21, 20, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 20, 20, 16, 20, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 20, 19, 14, 20, 20, ModBlocks.concrete_smooth); + //grates + fillWithMetadataBlocks(world, box, 14, 20, 10, 15, 20, 18, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 13, 20, 12, 13, 20, 16, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 17, 20, 8, 21, 20, 8, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 15, 20, 9, 23, 20, 9, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 16, 20, 10, 22, 20, 10, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 23, 20, 10, 24, 20, 18, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 25, 20, 12, 25, 20, 16, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 22, 20, 19, 23, 20, 19, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 15, 20, 19, 16, 20, 19, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 16, 20, 18, 22, 20, 18, ModBlocks.steel_grate, 7); + //Ceiling + fillWithBlocks(world, box, 11, 24, 12, 11, 24, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 24, 10, 15, 24, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 13, 24, 9, 15, 24, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 24, 8, 15, 24, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 13, 24, 19, 15, 24, 19, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 24, 20, 15, 24, 20, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 17, 24, 6, 21, 24, 6, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 24, 7, 23, 24, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 16, 24, 8, 22, 24, 10, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 27, 24, 12, 27, 24, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 10, 26, 24, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 9, 25, 24, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 8, 24, 24, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 19, 25, 24, 19, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 20, 24, 24, 20, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 17, 24, 22, 21, 24, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 24, 21, 23, 24, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 16, 24, 18, 22, 24, 20, ModBlocks.concrete_smooth); + //Walls + fillWithRandomizedBlocks(world, box, 14, 20, 7, 14, 24, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 20, 8, 13, 24, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, 21, 9, 12, 24, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 21, 10, 11, 24, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 21, 12, 10, 24, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 21, 17, 11, 24, 18, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, 21, 19, 12, 24, 19, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 21, 20, 13, 24, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 20, 21, 14, 24, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 15, 20, 22, 16, 24, 22, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 17, 20, 23, 21, 24, 23, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 20, 22, 23, 24, 22, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, 20, 21, 24, 24, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 25, 20, 20, 25, 24, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 26, 20, 19, 26, 24, 19, rand, ConcreteBricks); + // CENTER + //Air + fillWithAir(world, box, 17, 2, 12, 21, 25, 16); + for(int i = 5; i <= 17; i += 4) { + if(((i - 5) / 4) % 2 == 0) { //stairs facing N + fillWithAir(world, box, 17, i, 8, 20, i + 3, 9); + fillWithAir(world, box, 17, i, 10, 21, i + 2, 10); + fillWithAir(world, box, 17, i, 18, 21, i + 2, 20); + } else { //stairs facing S + fillWithAir(world, box, 18, i, 19, 21, i + 3, 20); + fillWithAir(world, box, 17, i, 18, 21, i + 2, 18); + fillWithAir(world, box, 17, i, 8, 21, i + 2, 10); + } + fillWithAir(world, box, 22, i, 10, 22, i + 2, 10); + fillWithAir(world, box, 22, i, 9, 23, i + 2, 9); + fillWithAir(world, box, 23, i, 10, 24, i + 2, 18); + fillWithAir(world, box, 25, i, 12, 25, i + 2, 16); + fillWithAir(world, box, 22, i, 19, 23, i + 2, 19); + fillWithAir(world, box, 22, i, 18, 22, i + 2, 18); + fillWithAir(world, box, 16, i, 18, 16, i + 2, 18); + fillWithAir(world, box, 15, i, 19, 16, i + 2, 19); + fillWithAir(world, box, 14, i, 10, 15, i + 2, 18); + fillWithAir(world, box, 13, i, 12, 13, i + 2, 16); + fillWithAir(world, box, 15, i, 9, 16, i + 2, 9); + fillWithAir(world, box, 16, i, 10, 16, i + 2, 10); + } + for(int i = 6; i <= 22; i += 4) { + fillWithAir(world, box, 16, i, 11, 18, i + 1, 11); + fillWithAir(world, box, 16, i, 12, 16, i + 1, 13); + fillWithAir(world, box, 16, i, 15, 16, i + 1, 16); + fillWithAir(world, box, 16, i, 17, 18, i + 1, 17); + fillWithAir(world, box, 20, i, 17, 22, i + 1, 17); + fillWithAir(world, box, 22, i, 15, 22, i + 1, 16); + fillWithAir(world, box, 22, i, 12, 22, i + 1, 13); + fillWithAir(world, box, 20, i, 11, 22, i + 1, 11); + } //Supports fillWithRandomizedBlocks(world, box, 22, 24, 17, 22, 24, 17, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 17, 24, 17, 21, 25, 17, rand, ConcreteBricks); @@ -417,74 +561,6 @@ public class SiloComponent extends Component { fillWithRandomizedBlocks(world, box, 24, 4, 9, 24, 19, 9, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 22, 4, 8, 23, 19, 8, rand, ConcreteBricks); - // TOP - //Floor - fillWithBlocks(world, box, 13, 20, 9, 13, 20, 11, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 14, 20, 8, 14, 20, 9, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 15, 20, 7, 16, 20, 8, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 17, 20, 6, 21, 20, 7, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 22, 20, 7, 23, 20, 8, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 24, 20, 8, 24, 20, 9, ModBlocks.concrete_smooth); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 25, 20, 9, box); - fillWithBlocks(world, box, 25, 20, 10, 26, 20, 11, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 26, 20, 12, 27, 20, 16, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 25, 20, 17, 26, 20, 18, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 24, 20, 19, 25, 20, 19, ModBlocks.concrete_smooth); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 24, 20, 20, box); - fillWithBlocks(world, box, 22, 20, 20, 23, 20, 21, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 17, 20, 21, 21, 20, 22, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 15, 20, 20, 16, 20, 21, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 14, 20, 19, 14, 20, 20, ModBlocks.concrete_smooth); - //grates - fillWithMetadataBlocks(world, box, 14, 20, 10, 15, 20, 18, ModBlocks.steel_grate, 7); - fillWithMetadataBlocks(world, box, 13, 20, 12, 13, 20, 16, ModBlocks.steel_grate, 7); - fillWithMetadataBlocks(world, box, 17, 20, 8, 21, 20, 8, ModBlocks.steel_grate, 7); - fillWithMetadataBlocks(world, box, 15, 20, 9, 23, 20, 9, ModBlocks.steel_grate, 7); - fillWithMetadataBlocks(world, box, 16, 20, 10, 22, 20, 10, ModBlocks.steel_grate, 7); - fillWithMetadataBlocks(world, box, 23, 20, 10, 24, 20, 18, ModBlocks.steel_grate, 7); - fillWithMetadataBlocks(world, box, 25, 20, 12, 25, 20, 16, ModBlocks.steel_grate, 7); - fillWithMetadataBlocks(world, box, 22, 20, 19, 23, 20, 19, ModBlocks.steel_grate, 7); - fillWithMetadataBlocks(world, box, 15, 20, 19, 16, 20, 19, ModBlocks.steel_grate, 7); - fillWithMetadataBlocks(world, box, 16, 20, 18, 22, 20, 18, ModBlocks.steel_grate, 7); - //Ceiling - fillWithBlocks(world, box, 11, 24, 12, 11, 24, 16, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 12, 24, 10, 15, 24, 18, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 13, 24, 9, 15, 24, 9, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 14, 24, 8, 15, 24, 8, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 13, 24, 19, 15, 24, 19, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 14, 24, 20, 15, 24, 20, ModBlocks.concrete_smooth); - - fillWithBlocks(world, box, 17, 24, 6, 21, 24, 6, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 15, 24, 7, 23, 24, 7, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 16, 24, 8, 22, 24, 10, ModBlocks.concrete_smooth); - - fillWithBlocks(world, box, 27, 24, 12, 27, 24, 16, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 23, 24, 10, 26, 24, 18, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 23, 24, 9, 25, 24, 9, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 23, 24, 8, 24, 24, 8, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 23, 24, 19, 25, 24, 19, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 23, 24, 20, 24, 24, 20, ModBlocks.concrete_smooth); - - fillWithBlocks(world, box, 17, 24, 22, 21, 24, 22, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 15, 24, 21, 23, 24, 21, ModBlocks.concrete_smooth); - fillWithBlocks(world, box, 16, 24, 18, 22, 24, 20, ModBlocks.concrete_smooth); - //Walls - fillWithRandomizedBlocks(world, box, 14, 20, 7, 14, 24, 7, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 13, 20, 8, 13, 24, 8, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 12, 21, 9, 12, 24, 9, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 11, 21, 10, 11, 24, 11, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 21, 12, 10, 24, 16, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 11, 21, 17, 11, 24, 18, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 12, 21, 19, 12, 24, 19, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 13, 21, 20, 13, 24, 20, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 14, 20, 21, 14, 24, 21, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 15, 20, 22, 16, 24, 22, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 17, 20, 23, 21, 24, 23, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 22, 20, 22, 23, 24, 22, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 24, 20, 21, 24, 24, 21, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 25, 20, 20, 25, 24, 20, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 26, 20, 19, 26, 24, 19, rand, ConcreteBricks); - // EXHAUST //dark area N/S fillWithMetadataBlocks(world, box, 17, 0, 7, 21, 0, 21, ModBlocks.concrete_colored, 7); @@ -564,6 +640,8 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 16, 5, 17, 18, 5, 17, ModBlocks.fence_metal); fillWithBlocks(world, box, 16, 5, 15, 16, 5, 16, ModBlocks.fence_metal); fillWithBlocks(world, box, 16, 5, 11, 16, 5, 13, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, Blocks.air, 0, 21, 5, 17, box); + placeBlockAtCurrentPosition(world, Blocks.air, 0, 17, 5, 11, box); fillWithMetadataBlocks(world, box, 17, 2, 12, 17, 4, 12, ModBlocks.ladder_steel, getDecoMeta(3)); fillWithMetadataBlocks(world, box, 21, 2, 16, 21, 4, 16, ModBlocks.ladder_steel, getDecoMeta(2)); @@ -573,8 +651,33 @@ public class SiloComponent extends Component { for(int i = 0; i <= 2; i += 2) for(int k = 0; k <= 2; k += 2) makeExtra(world, box, ModBlocks.launch_pad, 18 + i, 1, 13 + k); + //Air + fillWithAir(world, box, 18, 1, 8, 20, 3, 10); + fillWithAir(world, box, 18, 2, 11, 20, 3, 11); + fillWithAir(world, box, 19, 1, 11, 19, 1, 12); + fillWithAir(world, box, 19, 1, 16, 19, 1, 17); + fillWithAir(world, box, 18, 2, 17, 20, 3, 17); + fillWithAir(world, box, 18, 1, 18, 20, 3, 20); + fillWithAir(world, box, 13, 1, 13, 15, 3, 15); + fillWithAir(world, box, 16, 2, 13, 16, 3, 15); + fillWithAir(world, box, 16, 1, 14, 17, 1, 14); + fillWithAir(world, box, 21, 1, 14, 22, 1, 14); + fillWithAir(world, box, 22, 2, 13, 22, 3, 15); + fillWithAir(world, box, 23, 1, 13, 25, 3, 15); /* Red Sector */ + //Air + fillWithAir(world, box, 2, 17, 9, 11, 18, 11); + fillWithAir(world, box, 2, 19, 10, 11, 19, 10); + fillWithAir(world, box, 2, 17, 13, 11, 18, 15); + fillWithAir(world, box, 2, 19, 14, 11, 19, 14); + fillWithAir(world, box, 8, 17, 17, 12, 18, 25); + fillWithAir(world, box, 9, 19, 17, 11, 19, 25); + fillWithAir(world, box, 2, 17, 17, 6, 18, 21); + fillWithAir(world, box, 3, 19, 17, 5, 19, 21); + fillWithAir(world, box, 2, 17, 22, 3, 18, 25); + fillWithAir(world, box, 3, 19, 22, 3, 19, 25); + fillWithAir(world, box, 5, 17, 23, 6, 19, 25); //Ceiling fillWithBlocks(world, box, 1, 20, 8, 12, 20, 16, ModBlocks.concrete_smooth); fillWithBlocks(world, box, 1, 20, 17, 13, 20, 26, ModBlocks.concrete_smooth); @@ -645,8 +748,19 @@ public class SiloComponent extends Component { placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 10, 17, 16); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 17, 16); placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 4, 17, 24); + //Deco + /* Yellow Sector */ + //Air + fillWithAir(world, box, 27, 13, 13, 33, 14, 15); + fillWithAir(world, box, 27, 15, 14, 33, 15, 14); + fillWithAir(world, box, 27, 13, 17, 33, 14, 21); + fillWithAir(world, box, 27, 15, 18, 33, 15, 20); + fillWithAir(world, box, 27, 13, 9, 29, 14, 11); + fillWithAir(world, box, 28, 15, 9, 28, 15, 11); + fillWithAir(world, box, 31, 13, 9, 33, 14, 11); + fillWithAir(world, box, 32, 15, 9, 32, 15, 11); //Ceiling + Floor for(int i = 12; i <= 16; i += 4) { fillWithBlocks(world, box, 26, i, 17, 26, i, 22, ModBlocks.concrete_smooth); @@ -702,8 +816,23 @@ public class SiloComponent extends Component { placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 28, 13, 12); placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 32, 13, 12); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 32, 13, 16); + //Deco /* Green Sector */ + //Air + fillWithAir(world, box, 1, 9, 13, 11, 10, 15); + fillWithAir(world, box, 1, 11, 14, 8, 11, 14); + fillWithAir(world, box, 1, 9, 7, 6, 10, 11); + fillWithAir(world, box, 1, 11, 8, 6, 11, 10); + fillWithAir(world, box, 7, 9, 7, 11, 10, 7); + fillWithAir(world, box, 7, 9, 11, 11, 10, 11); + fillWithAir(world, box, 2, 9, 17, 4, 11, 23); + fillWithAir(world, box, 5, 9, 17, 5, 9, 18); + fillWithAir(world, box, 5, 9, 22, 5, 9, 23); + fillWithAir(world, box, 1, 9, 17, 1, 9, 18); + fillWithAir(world, box, 1, 9, 22, 1, 9, 23); + fillWithAir(world, box, 7, 9, 17, 11, 10, 23); + fillWithAir(world, box, 8, 11, 17, 10, 11, 23); //Floor + Ceiling placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 8, 14, box); for(int i = 8; i <= 12; i += 4) { @@ -761,8 +890,13 @@ public class SiloComponent extends Component { placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 9, 9, 16); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 9, 16); placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 3, 9, 12); + //Deco /* Black Sector */ + //Air + fillWithAir(world, box, 27, 5, 13, 31, 6, 15); + fillWithAir(world, box, 27, 7, 14, 31, 7, 14); + fillWithAir(world, box, 28, 2, 11, 31, 3, 15); //Floor + Ceiling fillWithBlocks(world, box, 28, 0, 11, 31, 0, 15, Blocks.dirt); randomlyFillWithBlocks(world, box, rand, 0.5F, 28, 0, 11, 31, 0, 15, Blocks.dirt, 2); @@ -790,6 +924,8 @@ public class SiloComponent extends Component { fillWithRandomizedBlocks(world, box, 27, 7, 15, 31, 7, 15, rand, ConcreteStairs); ConcreteStairs.setMetadata(stairS | 4); fillWithRandomizedBlocks(world, box, 27, 7, 13, 31, 7, 13, rand, ConcreteStairs); + //Water + fillWithBlocks(world, box, 28, 1, 11, 31, 1, 15, Blocks.water); //Deco fillWithBlocks(world, box, 26, 5, 14, 26, 6, 14, ModBlocks.concrete_smooth); //doorway fillWithMetadataBlocks(world, box, 31, 2, 15, 31, 4, 15, ModBlocks.ladder_steel, getDecoMeta(4)); From 6cbfdce876671b1a33f2a3e289cb37cada96a919 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 2 Mar 2024 18:16:04 -0800 Subject: [PATCH 237/376] Added deco, RTTY --- .../hbm/world/gen/component/Component.java | 7 +- .../world/gen/component/SiloComponent.java | 259 +++++++++++++++++- 2 files changed, 254 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 01ad611ac..0937b4591 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -132,7 +132,7 @@ abstract public class Component extends StructureComponent { /** * Gets metadata for rotatable DecoBlock * honestly i don't remember how i did this and i'm scared to optimize it because i fail to see any reasonable patterns like the pillar - * seriously, 3 fucking bits for 4 orientations when you can do it easily with 2? + * should work for hoppers, just flip dir for N/S and W/E * @param metadata (2 for facing South, 3 for facing North, 4 for facing East, 5 for facing West */ protected int getDecoMeta(int metadata) { @@ -199,6 +199,11 @@ abstract public class Component extends StructureComponent { return metadata << 2; //To accommodate for BlockDecoModel's shift in the rotation bits; otherwise, simply bit-shift right and or any non-rotation meta after } + //works for crts, toasters, and anything that follows mc's cardinal dirs. S: 0, W: 1, N: 2, E: 3 + protected int getCRTMeta(int meta) { + return (meta + this.coordBaseMode) % 4; + } + /** * Gets orientation-adjusted meta for stairs. * 0 = West, 1 = East, 2 = North, 3 = South diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 16dde3392..709b96fb0 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -3,22 +3,37 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.network.TileEntityRadioTorchBase; -import net.minecraft.block.BlockStairs; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.gen.structure.StructureBoundingBox; -import net.minecraft.world.gen.structure.StructureComponent.BlockSelector; import net.minecraftforge.common.util.ForgeDirection; public class SiloComponent extends Component { + public int freq = 0; //frequency of RTTY torches, this is the easiest way to sync them up. + public SiloComponent() { } public SiloComponent(Random rand, int minX, int minY, int minZ) { super(rand, minX, minY, minZ, 42, 29, 26); + this.freq = rand.nextInt(); //so other silos won't conflict, hopefully + } + + /** Set to NBT */ + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setInteger("freq", freq); + } + + /** Get from NBT */ + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + this.freq = nbt.getInteger("freq"); } @Override @@ -51,7 +66,6 @@ public class SiloComponent extends Component { fillWithMetadataBlocks(world, box, 23, 25, 11, 23, 25, 17, ModBlocks.concrete_colored_ext, 5); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 16, 25, 11, box); //it's figuring out meta that makes you shoot yourself anyway placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 22, 25, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 16, 25, 17, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 22, 25, 17, box); ConcreteBricks ConcreteBricks = new ConcreteBricks(); @@ -160,7 +174,7 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 37, 26, 15, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 36, 25, 16, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, 0, 36, 26, 16, box); - placeBlockAtCurrentPosition(world, Blocks.chest, 2, 36, 26, 17, box); //TODO move containers to one place per section + placeBlockAtCurrentPosition(world, Blocks.chest, 2, 36, 26, 17, box); //Access Building (staircase not included) fillWithRandomizedBlocks(world, box, 35, 26, 5, 39, 28, 5, rand, ConcreteBricks); @@ -212,6 +226,8 @@ public class SiloComponent extends Component { //Large Silo Hatch placeBlockAtCurrentPosition(world, ModBlocks.silo_hatch_large, 12, 19, 26, 14, box); fillSpace(world, box, 19, 26, 14, new int[] { 0, 0, 3, 3, 3, 3 }, ModBlocks.silo_hatch_large, ForgeDirection.SOUTH); + placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_receiver, 1, 16, 25, 17, box); + setRTTYFreq(world, box, 16, 25, 17); /* Stairway */ fillWithAir(world, box, 37, 26, 9, 37, 27, 10); @@ -347,9 +363,84 @@ public class SiloComponent extends Component { fillWithRandomizedBlocks(world, box, 30, 23, 5, 30, 23, 6, rand, ConcreteStairs); fillWithRandomizedBlocks(world, box, 31, 23, 7, 31, 23, 9, rand, ConcreteStairs); //Doors - placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 19, 21, 5); - placeDoor(world, box, ModBlocks.door_bunker, 2, true, rand.nextBoolean(), 28, 21, 14); + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 19, 21, 5); + placeDoor(world, box, ModBlocks.door_bunker, 2, false, rand.nextBoolean(), 28, 21, 14); //Deco + //Computer area + int decoS = getDecoMeta(2); + int decoN = getDecoMeta(3); + int decoE = getDecoMeta(4); + int decoW = getDecoMeta(5); + int pillarWE = getPillarMeta(4); + int pillarNS = getPillarMeta(8); + int decoModelN = getDecoModelMeta(0); + int decoModelW = getDecoModelMeta(2); + int decoModelE = getDecoModelMeta(3); + + fillWithBlocks(world, box, 33, 21, 19, 33, 23, 19, ModBlocks.deco_steel); + fillWithBlocks(world, box, 33, 21, 17, 33, 23, 17, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoW, 33, 21, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_crt, getCRTMeta(1) | 8, 33, 22, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoW, 33, 23, 18, box); + fillWithMetadataBlocks(world, box, 33, 21, 16, 33, 23, 16, ModBlocks.tape_recorder, decoW); + placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, decoE, 36, 21, 16, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 36, 21, 17, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_generator, 0, 36, 21, 19, box); + fillWithMetadataBlocks(world, box, 36, 22, 16, 36, 23, 16, ModBlocks.tape_recorder, decoE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelW, 36, 22, 17, box); + fillWithMetadataBlocks(world, box, 36, 21, 18, 36, 23, 18, ModBlocks.tape_recorder, decoE); + fillWithMetadataBlocks(world, box, 36, 22, 19, 36, 23, 19, ModBlocks.deco_crt, getCRTMeta(3) | 12); + //Cabinets + Pipe + fillWithBlocks(world, box, 32, 21, 11, 32, 22, 11, ModBlocks.deco_pipe_framed_green_rusted); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_framed_green_rusted, pillarNS, 32, 23, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 32, 23, 11, box); + fillWithMetadataBlocks(world, box, 32, 23, 12, 32, 23, 15, ModBlocks.deco_pipe_framed_green_rusted, pillarNS); + placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 21, 17, box); + placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 21, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 21, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 22, 17, box); + placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 22, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 29, 21, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelE, 29, 21, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelE, 29, 21, 17, box); + placeBlockAtCurrentPosition(world, ModBlocks.turret_sentry_damaged, 0, 30, 21, 16, box); + //Desk Area + fillWithBlocks(world, box, 27, 21, 9, 28, 21, 9, ModBlocks.deco_steel); + fillWithBlocks(world, box, 26, 21, 7, 26, 21, 8, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 25, 21, 7, box); + fillWithBlocks(world, box, 24, 21, 5, 24, 21, 6, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelN, 28, 22, 9, box); + placeBlockAtCurrentPosition(world, Blocks.lever, 6, 26, 22, 8, box); //placed on ground + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 28, 21, 7, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 27, 21, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 21, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoE, 30, 21, 5, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 27, 21, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 3, 25, 21, 2, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 25, 22, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelN, 23, 21, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.radio_telex, 15, 25, 21, 5, box); + fillSpace(world, box, 25, 21, 5, new int[] {0, 0, 0, 0, 1, 0}, ModBlocks.radio_telex, ForgeDirection.EAST); + placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_sender, 0, 26, 20, 8, box); + setRTTYFreq(world, box, 26, 20, 8); + + //Machine/Small Desk Area + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_framed_green_rusted, pillarWE, 23, 23, 1, box); + fillWithMetadataBlocks(world, box, 16, 23, 1, 19, 23, 1, ModBlocks.deco_pipe_framed_green_rusted, pillarWE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 20, 21, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, decoN, 20, 22, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone_stairs, stairS | 4, 21, 21, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_crt, getCRTMeta(2) | 4, 21, 22, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 22, 21, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, decoN, 22, 22, 1, box); + fillWithBlocks(world, box, 20, 23, 1, 22, 23, 1, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 23, 21, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 18, 21, 2, box); + fillWithBlocks(world, box, 16, 21, 1, 16, 21, 3, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.safe, decoW, 16, 21, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelE, 16, 22, 2, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 16, 22, 3, box); + placeRandomBobble(world, box, rand, 16, 22, 4); /* Silo */ // TOP @@ -643,14 +734,17 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, Blocks.air, 0, 21, 5, 17, box); placeBlockAtCurrentPosition(world, Blocks.air, 0, 17, 5, 11, box); - fillWithMetadataBlocks(world, box, 17, 2, 12, 17, 4, 12, ModBlocks.ladder_steel, getDecoMeta(3)); - fillWithMetadataBlocks(world, box, 21, 2, 16, 21, 4, 16, ModBlocks.ladder_steel, getDecoMeta(2)); + fillWithMetadataBlocks(world, box, 17, 2, 12, 17, 4, 12, ModBlocks.ladder_steel, decoN); + fillWithMetadataBlocks(world, box, 21, 2, 16, 21, 4, 16, ModBlocks.ladder_steel, decoS); //Launch Pad placeBlockAtCurrentPosition(world, ModBlocks.launch_pad, 12, 19, 1, 14, box); fillSpace(world, box, 19, 1, 14, new int[] {0, 0, 1, 1, 1, 1}, ModBlocks.launch_pad, ForgeDirection.NORTH); for(int i = 0; i <= 2; i += 2) for(int k = 0; k <= 2; k += 2) makeExtra(world, box, ModBlocks.launch_pad, 18 + i, 1, 13 + k); + placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_receiver, 3, 19, 0, 14, box); + setRTTYFreq(world, box, 19, 0, 14); + //Air fillWithAir(world, box, 18, 1, 8, 20, 3, 10); fillWithAir(world, box, 18, 2, 11, 20, 3, 11); @@ -749,7 +843,43 @@ public class SiloComponent extends Component { placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 17, 16); placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 4, 17, 24); //Deco - + //Living Room + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone_stairs, stairW | 4, 12, 17, 17, box); + placeBlockAtCurrentPosition(world, Blocks.cauldron, 0, 12, 17, 18, box); + fillWithMetadataBlocks(world, box, 12, 17, 19, 12, 17, 20, ModBlocks.reinforced_stone_stairs, stairW | 4); + placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, decoE, 12, 17, 21, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_toaster, getCRTMeta(3) | 4, 12, 18, 17, box); + placeLever(world, box, 2, true, 12, 18, 18); + placeBlockAtCurrentPosition(world, ModBlocks.machine_microwave, decoE, 12, 18, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 12, 18, 20, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 8, 17, 17, box); + fillWithMetadataBlocks(world, box, 8, 17, 19, 9, 17, 19, ModBlocks.reinforced_stone_stairs, stairS | 4); + fillWithMetadataBlocks(world, box, 8, 17, 20, 9, 17, 20, ModBlocks.reinforced_stone_stairs, stairN | 4); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN, 8, 17, 22, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE, 10, 17, 23, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 11, 17, 23, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 12, 17, 23, box); + fillWithMetadataBlocks(world, box, 10, 17, 25, 12, 17, 25, ModBlocks.reinforced_stone_stairs, stairN | 4); + placeBlockAtCurrentPosition(world, ModBlocks.deco_crt, getCRTMeta(0), 11, 18, 25, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 8, 17, 25, box); + //Bathroom + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone, 0, 6, 17, 17, box); + fillWithBlocks(world, box, 6, 17, 18, 6, 17, 20, Blocks.cauldron); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone, 0, 6, 17, 21, box); + for(int i = 0; i < 3; i++) + placeLever(world, box, 2, true, 6, 18, 18 + i); + placeBlockAtCurrentPosition(world, Blocks.hopper, decoW, 6, 17, 24, box); + placeBlockAtCurrentPosition(world, Blocks.trapdoor, decoModelW >> 2, 6, 18, 24, box); + //Bedroom + for(int i = 3; i <= 7; i += 2) + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone_stairs, stairN | 4, i, 17, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 2, 17, 11, box); //placed separately for loot table control + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 4, 17, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 6, 17, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 8, 17, 11, box); + for(int i = 4; i <= 10; i += 3) + for(int j = 17; j <= 18; j++) + placeBed(world, box, 1, i, j, 8); /* Yellow Sector */ //Air @@ -817,6 +947,27 @@ public class SiloComponent extends Component { placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 32, 13, 12); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 32, 13, 16); //Deco + //Room 1 + placeBlockAtCurrentPosition(world, ModBlocks.crate_ammo, 0, 27, 13, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 27, 13, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 27, 14, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 28, 13, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 29, 13, 9, box); + //Room 2 + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 31, 13, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelE, 31, 13, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 32, 13, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.safe, decoN, 33, 13, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 33, 13, 11, box); + //Workshop + placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer, 0, 33, 13, 17, box); + fillWithRandomizedBlocks(world, box, 33, 13, 18, 33, 13, 20, rand, Supplies); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 33, 13, 21, box); + placeBlockAtCurrentPosition(world, ModBlocks.anvil_iron, decoN, 31, 13, 21, box); + fillWithBlocks(world, box, 28, 13, 18, 29, 13, 20, Blocks.planks); + placeBlockAtCurrentPosition(world, Blocks.crafting_table, 0, 29, 13, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, decoE, 28, 14, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_toaster, getCRTMeta(1), 28, 13, 17, box); /* Green Sector */ //Air @@ -891,6 +1042,62 @@ public class SiloComponent extends Component { placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 9, 16); placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 3, 9, 12); //Deco + //Fuel Infrastructure + fillWithMetadataBlocks(world, box, 17, 11, 14, 18, 11, 14, ModBlocks.deco_pipe_quad_rusted, pillarWE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 16, 11, 14, box); + fillWithMetadataBlocks(world, box, 13, 11, 14, 15, 11, 14, ModBlocks.deco_pipe_quad_rusted, pillarWE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 12, 11, 14, box); + fillWithMetadataBlocks(world, box, 10, 11, 14, 11, 11, 14, ModBlocks.deco_pipe_quad_rusted, pillarWE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 9, 11, 14, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, pillarNS, 9, 11, 15, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 9, 11, 16, box); + fillWithMetadataBlocks(world, box, 9, 11, 17, 9, 11, 19, ModBlocks.deco_pipe_quad_rusted, pillarNS); + placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, 0, 9, 11, 20, box); + fillWithMetadataBlocks(world, box, 9, 11, 21, 9, 11, 22, ModBlocks.deco_pipe_quad_rusted, pillarNS); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 9, 11, 23, box); + fillWithBlocks(world, box, 9, 9, 23, 9, 10, 23, ModBlocks.deco_pipe_framed_rusted); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 9, 8, 23, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, pillarWE, 10, 11, 20, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 11, 11, 20, box); + fillWithBlocks(world, box, 11, 9, 20, 11, 10, 20, ModBlocks.deco_pipe_framed_rusted); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 11, 8, 20, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, pillarWE, 8, 11, 20, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 7, 11, 20, box); + fillWithBlocks(world, box, 7, 9, 20, 7, 10, 20, ModBlocks.deco_pipe_framed_rusted); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 7, 8, 20, box); + fillWithBlocks(world, box, 8, 8, 18, 10, 8, 22, ModBlocks.deco_lead); + //Barrels in tank room + placeBlockAtCurrentPosition(world, ModBlocks.lox_barrel, 0, 7, 9, 17, box); + placeBlockAtCurrentPosition(world, ModBlocks.pink_barrel, 0, 11, 9, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.pink_barrel, 0, 11, 9, 22, box); + fillWithBlocks(world, box, 11, 9, 23, 11, 10, 23, ModBlocks.pink_barrel); + placeBlockAtCurrentPosition(world, ModBlocks.pink_barrel, 0, 10, 9, 23, box); + fillWithBlocks(world, box, 7, 9, 23, 8, 9, 23, ModBlocks.lox_barrel); + fillWithBlocks(world, box, 7, 9, 21, 7, 9, 22, ModBlocks.lox_barrel); + //Capacitor Room + for(int i = 1; i <= 5; i += 4) { + fillWithMetadataBlocks(world, box, i, 10, 17, i, 10, 18, ModBlocks.deco_pipe_quad_red, pillarNS); + fillWithMetadataBlocks(world, box, i, 10, 22, i, 10, 23, ModBlocks.deco_pipe_quad_red, pillarNS); + fillWithBlocks(world, box, i, 9, 19, i, 9, 21, ModBlocks.deco_lead); + fillWithMetadataBlocks(world, box, i, 10, 19, i, 10, 21, ModBlocks.capacitor_copper, i == 1 ? decoW : decoE); + fillWithBlocks(world, box, i, 11, 19, i, 11, 21, ModBlocks.deco_lead); + } + //Generator Room + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 1, 9, 11, box); + fillWithBlocks(world, box, 1, 9, 8, 1, 9, 9, ModBlocks.barrel_corroded); + fillWithBlocks(world, box, 1, 9, 7, 1, 10, 7, ModBlocks.barrel_corroded); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 2, 9, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 4, 9, 7, box); + fillWithBlocks(world, box, 7, 9, 10, 11, 9, 10, ModBlocks.deco_lead); + fillWithBlocks(world, box, 7, 10, 10, 11, 10, 10, ModBlocks.hadron_coil_alloy); + fillWithBlocks(world, box, 7, 11, 10, 11, 11, 10, ModBlocks.deco_lead); + fillWithBlocks(world, box, 7, 9, 9, 11, 9, 9, ModBlocks.hadron_coil_alloy); + fillWithBlocks(world, box, 8, 10, 9, 11, 10, 9, ModBlocks.deco_red_copper); + placeBlockAtCurrentPosition(world, ModBlocks.red_cable_gauge, decoE, 7, 10, 9, box); + fillWithBlocks(world, box, 7, 11, 9, 11, 11, 9, ModBlocks.hadron_coil_alloy); + fillWithBlocks(world, box, 7, 9, 8, 11, 9, 8, ModBlocks.deco_lead); + fillWithBlocks(world, box, 7, 10, 8, 11, 10, 8, ModBlocks.hadron_coil_alloy); + fillWithBlocks(world, box, 7, 11, 8, 11, 11, 8, ModBlocks.deco_lead); /* Black Sector */ //Air @@ -928,11 +1135,42 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 28, 1, 11, 31, 1, 15, Blocks.water); //Deco fillWithBlocks(world, box, 26, 5, 14, 26, 6, 14, ModBlocks.concrete_smooth); //doorway - fillWithMetadataBlocks(world, box, 31, 2, 15, 31, 4, 15, ModBlocks.ladder_steel, getDecoMeta(4)); + fillWithMetadataBlocks(world, box, 31, 2, 15, 31, 4, 15, ModBlocks.ladder_steel, decoE); + //Top Room + randomlyFillWithBlocks(world, box, rand, 0.15F, 27, 5, 13, 30, 6, 15, Blocks.web); //webs + randomlyFillWithBlocks(world, box, rand, 0.15F, 31, 6, 13, 31, 6, 15, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.15F, 27, 7, 14, 31, 7, 14, Blocks.web); + placeBlockAtCurrentPosition(world, ModBlocks.safe, decoE, 31, 5, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 31, 5, 14, box); + placeBlockAtCurrentPosition(world, ModBlocks.safe, decoE, 31, 5, 15, box); + //Flooded Room + randomlyFillWithBlocks(world, box, rand, 0.15F, 28, 2, 11, 31, 2, 15, ModBlocks.reeds); + fillWithMetadataBlocks(world, box, 28, 3, 12, 28, 3, 15, ModBlocks.deco_pipe_framed_green_rusted, pillarNS); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 28, 3, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_green_rusted, 0, 28, 2, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 28, 0, 11, box); + fillWithBlocks(world, box, 31, 1, 11, 31, 1, 12, ModBlocks.deco_beryllium); + fillWithMetadataBlocks(world, box, 31, 2, 11, 31, 2, 12, ModBlocks.tape_recorder, decoE); + placeBlockAtCurrentPosition(world, ModBlocks.crate_iron, 2, 30, 1, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 30, 2, 11, box); return true; } + protected void setRTTYFreq(World world, StructureBoundingBox box, int featureX, int featureY, int featureZ) { + int posX = this.getXWithOffset(featureX, featureZ); + int posY = this.getYWithOffset(featureY); + int posZ = this.getZWithOffset(featureX, featureZ); + + if(!box.isVecInside(posX, posY, posZ)) return; + + TileEntityRadioTorchBase torch = (TileEntityRadioTorchBase) world.getTileEntity(posX, posY, posZ); + + if(torch != null) { + torch.channel = String.valueOf(this.freq); //int for convenience + } + } + public static class ConcreteStairs extends BlockSelector { public void setMetadata(int meta) { @@ -1007,7 +1245,6 @@ public class SiloComponent extends Component { @Override public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { - //TODO make better version of this shit that actually gives me a world instance float chance = rand.nextFloat(); if(chance < 0.2F) From c0e39e1467efb09cba41a7fe18e17f13027f17b1 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 2 Mar 2024 20:40:21 -0800 Subject: [PATCH 238/376] yeah that's about done --- .../com/hbm/blocks/test/TestEventTester.java | 4 +- .../com/hbm/world/gen/MapGenNTMFeatures.java | 4 + .../hbm/world/gen/component/Component.java | 26 +++- .../world/gen/component/SiloComponent.java | 129 ++++++++++++------ 4 files changed, 115 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/hbm/blocks/test/TestEventTester.java b/src/main/java/com/hbm/blocks/test/TestEventTester.java index 5686facee..bd2256b5b 100644 --- a/src/main/java/com/hbm/blocks/test/TestEventTester.java +++ b/src/main/java/com/hbm/blocks/test/TestEventTester.java @@ -39,8 +39,8 @@ public class TestEventTester extends Block { this.worldObj = p_149695_1_; if (p_149695_1_.isBlockIndirectlyGettingPowered(x1, y1, z1)) { - Component comp = new SiloComponent(this.worldObj.rand, x1, y1, z1); - comp.addComponentParts(p_149695_1_, this.worldObj.rand, new StructureBoundingBox(x1, z1, x1 + 42, z1 + 26)); + /*Component comp = new SiloComponent(this.worldObj.rand, x1, y1, z1); + comp.addComponentParts(p_149695_1_, this.worldObj.rand, comp.getBoundingBox());*/ //The laser thread is too dangerous to use right now //ThreadLaser laser = new ThreadLaser(p_149695_1_, x, y, z, "north"); diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index 018da9c7f..1ec502efa 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -20,6 +20,7 @@ import com.hbm.world.gen.component.RuinFeatures.NTMRuin1; import com.hbm.world.gen.component.RuinFeatures.NTMRuin2; import com.hbm.world.gen.component.RuinFeatures.NTMRuin3; import com.hbm.world.gen.component.RuinFeatures.NTMRuin4; +import com.hbm.world.gen.component.SiloComponent; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -143,6 +144,9 @@ public class MapGenNTMFeatures extends MapGenStructure { this.components.add(ruin4); } + } else if(biome.heightVariation <= 0.25F && rand.nextInt(15) == 0) { //for now our only restriction is kinda-flat biomes. that and chance might change idk + SiloComponent silo = new SiloComponent(rand, i, j); + this.components.add(silo); } else if(biome.temperature >= 1.0 && biome.rainfall == 0 && !(biome instanceof BiomeGenMesa)) { //Desert & Savannah if(rand.nextBoolean()) { NTMHouse1 house1 = new NTMHouse1(rand, i, j); diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 0937b4591..0a652a6eb 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -38,7 +38,7 @@ abstract public class Component extends StructureComponent { protected Component(Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ ) { super(0); - this.coordBaseMode = 0;// rand.nextInt(4); + this.coordBaseMode = rand.nextInt(4); switch(this.coordBaseMode) { case 0: @@ -829,17 +829,35 @@ abstract public class Component extends StructureComponent { } } + /** Sets the core block for a BlockDummyable multiblock. WARNING: Does not take {@link com.hbm.blocks.BlockDummyable#getDirModified(ForgeDirection)} or {@link com.hbm.blocks.BlockDummyable#getMetaForCore(World, int, int, int, EntityPlayer, int)} + * into account yet! This will be changed as it comes up!
    + * For BlockDummyables, 'dir' always faces the player, being the opposite of the player's direction. This is already taken into account. */ + protected void placeCore(World world, StructureBoundingBox box, Block block, ForgeDirection dir, int x, int y, int z) { + int posX = getXWithOffset(x, z); + int posZ = getZWithOffset(x, z); + int posY = getYWithOffset(y); + + if(!box.isVecInside(posX, posY, posZ)) return; + + if(dir == null) + dir = ForgeDirection.NORTH; + + dir = getDirection(dir.getOpposite()); + world.setBlock(posX, posY, posZ, block, dir.ordinal() + BlockDummyable.offset, 2); + } + //always set the core block first - /** StructureComponent-friendly method for {@link com.hbm.handler.MultiblockHandlerXR#fillSpace(World, int, int, int, int[], Block, ForgeDirection)}. Prevents runoff outside of the provided bounding box. */ + /** StructureComponent-friendly method for {@link com.hbm.handler.MultiblockHandlerXR#fillSpace(World, int, int, int, int[], Block, ForgeDirection)}. Prevents runoff outside of the provided bounding box.
    + * For BlockDummyables, 'dir' always faces the player, being the opposite of the player's direction. This is already taken into account. */ protected void fillSpace(World world, StructureBoundingBox box, int x, int y, int z, int[] dim, Block block, ForgeDirection dir) { if(getYWithOffset(y - dim[1]) < box.minY || getYWithOffset(y + dim[0]) > box.maxY) //the BlockDummyable will be fucked regardless if it goes beyond either limit return; if(dir == null) - dir = ForgeDirection.SOUTH; + dir = ForgeDirection.NORTH; - dir = getDirection(dir); + dir = getDirection(dir.getOpposite()); int count = 0; diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 709b96fb0..205d84ef0 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -3,6 +3,7 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.lib.HbmChestContents; import com.hbm.tileentity.network.TileEntityRadioTorchBase; import net.minecraft.init.Blocks; @@ -19,8 +20,8 @@ public class SiloComponent extends Component { } - public SiloComponent(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 42, 29, 26); + public SiloComponent(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 42, 29, 26); this.freq = rand.nextInt(); //so other silos won't conflict, hopefully } @@ -40,6 +41,11 @@ public class SiloComponent extends Component { public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { //TODO add method to only count the surface portion for height offset + if(hpos == -1) { + hpos = this.getAverageHeight(world, this.boundingBox, box, getYWithOffset(25)); + this.boundingBox.offset(0, hpos - 1 - getYWithOffset(25), 0); + } + /*if(!this.setAverageHeight(world, box, this.boundingBox.minY)) { return false; }*/ @@ -49,7 +55,9 @@ public class SiloComponent extends Component { //from checking a lot of small switches and if statements in some for loops i hope... /* SURFACE */ - fillWithAir(world, box, 36, 26, 6, 38, 28, 8); + fillWithAir(world, box, 13, 26, 2, 42, 36, 20); + + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 13, 2, 42, 20, 24, box); //Floor fillWithBlocks(world, box, 13, 25, 2, 42, 25, 4, ModBlocks.asphalt); //it's okay to cut corners (vanilla does it all the time!), but @@ -149,8 +157,8 @@ public class SiloComponent extends Component { fillWithMetadataBlocks(world, box, 27, 27, 18, 32, 27, 18, ModBlocks.concrete_slab, 1); fillWithMetadataBlocks(world, box, 32, 27, 14, 32, 27, 17, ModBlocks.concrete_slab, 1); //Methusalem - placeBlockAtCurrentPosition(world, ModBlocks.turret_howard_damaged, 12, 29, 27, 15, box); - fillSpace(world, box, 29, 27, 15, new int[] { 0, 0, 1, 0, 1, 0 }, ModBlocks.turret_howard_damaged, ForgeDirection.NORTH); + placeCore(world, box, ModBlocks.turret_howard_damaged, ForgeDirection.SOUTH, 29, 27, 15); + fillSpace(world, box, 29, 27, 15, new int[] { 0, 0, 1, 0, 1, 0 }, ModBlocks.turret_howard_damaged, ForgeDirection.SOUTH); //Destroyed platform placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 34, 26, 13, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 39, 26, 13, box); @@ -174,7 +182,6 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 37, 26, 15, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 36, 25, 16, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, 0, 36, 26, 16, box); - placeBlockAtCurrentPosition(world, Blocks.chest, 2, 36, 26, 17, box); //Access Building (staircase not included) fillWithRandomizedBlocks(world, box, 35, 26, 5, 39, 28, 5, rand, ConcreteBricks); @@ -187,9 +194,9 @@ public class SiloComponent extends Component { fillWithRandomizedBlocks(world, box, 36, 28, 11, 38, 28, 11, rand, ConcreteStairs); fillWithRandomizedBlocks(world, box, 36, 27, 12, 38, 27, 12, rand, ConcreteStairs); fillWithBlocks(world, box, 36, 29, 5, 38, 29, 9, ModBlocks.concrete); //Roof - fillWithBlocks(world, box, 35, 29, 5, 35, 29, 9, ModBlocks.concrete_stairs); - fillWithMetadataBlocks(world, box, 36, 29, 10, 38, 29, 10, ModBlocks.concrete_stairs, 3); - fillWithMetadataBlocks(world, box, 39, 29, 5, 39, 29, 9, ModBlocks.concrete_stairs, 1); + fillWithMetadataBlocks(world, box, 35, 29, 5, 35, 29, 9, ModBlocks.concrete_stairs, stairW); + fillWithMetadataBlocks(world, box, 36, 29, 10, 38, 29, 10, ModBlocks.concrete_stairs, stairS); + fillWithMetadataBlocks(world, box, 39, 29, 5, 39, 29, 9, ModBlocks.concrete_stairs, stairE); //Deco placeBlockAtCurrentPosition(world, Blocks.iron_bars, 0, 35, 27, 7, box); placeBlockAtCurrentPosition(world, Blocks.iron_bars, 0, 39, 27, 7, box); @@ -224,11 +231,14 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 37, 26, 19, box); //Large Silo Hatch - placeBlockAtCurrentPosition(world, ModBlocks.silo_hatch_large, 12, 19, 26, 14, box); + placeCore(world, box, ModBlocks.silo_hatch_large, ForgeDirection.SOUTH, 19, 26, 14); fillSpace(world, box, 19, 26, 14, new int[] { 0, 0, 3, 3, 3, 3 }, ModBlocks.silo_hatch_large, ForgeDirection.SOUTH); placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_receiver, 1, 16, 25, 17, box); setRTTYFreq(world, box, 16, 25, 17); + //Containers + generateInvContents(world, box, rand, Blocks.chest, 2, 36, 26, 17, HbmChestContents.antenna, 8); //TODO all are placeholders + /* Stairway */ fillWithAir(world, box, 37, 26, 9, 37, 27, 10); placeBlockAtCurrentPosition(world, Blocks.air, 11, 37, 25, 10, box); @@ -238,7 +248,7 @@ public class SiloComponent extends Component { //bottoms for(int i = 0; i < 5; i++) { fillWithRandomizedBlocks(world, box, 36, 24 - i, 9 + i, 38, 24 - i, 9 + i, rand, ConcreteBricks); - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, 3, 37, 25 - i, 9 + i, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairS, 37, 25 - i, 9 + i, box); } //walls @@ -383,6 +393,9 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.deco_crt, getCRTMeta(1) | 8, 33, 22, 18, box); placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoW, 33, 23, 18, box); fillWithMetadataBlocks(world, box, 33, 21, 16, 33, 23, 16, ModBlocks.tape_recorder, decoW); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone_stairs, stairE | 4, 34, 21, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.brick_slab, 8, 34, 21, 18, box); + placeBlockAtCurrentPosition(world, Blocks.heavy_weighted_pressure_plate, 0, 34, 22, 18, box); placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, decoE, 36, 21, 16, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 36, 21, 17, box); placeBlockAtCurrentPosition(world, ModBlocks.machine_generator, 0, 36, 21, 19, box); @@ -395,14 +408,7 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_framed_green_rusted, pillarNS, 32, 23, 10, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 32, 23, 11, box); fillWithMetadataBlocks(world, box, 32, 23, 12, 32, 23, 15, ModBlocks.deco_pipe_framed_green_rusted, pillarNS); - placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 21, 17, box); - placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 21, 18, box); - placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 21, 19, box); - placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 22, 17, box); - placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 22, 19, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 29, 21, 19, box); - placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelE, 29, 21, 18, box); - placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelE, 29, 21, 17, box); + placeBlockAtCurrentPosition(world, ModBlocks.turret_sentry_damaged, 0, 30, 21, 16, box); //Desk Area fillWithBlocks(world, box, 27, 21, 9, 28, 21, 9, ModBlocks.deco_steel); @@ -413,14 +419,14 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, Blocks.lever, 6, 26, 22, 8, box); //placed on ground placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 28, 21, 7, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 27, 21, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelW, 31, 21, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoE, 30, 21, 5, box); placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 27, 21, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 3, 25, 21, 2, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 25, 22, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.filing_cabinet, decoModelN, 23, 21, 5, box); - placeBlockAtCurrentPosition(world, ModBlocks.radio_telex, 15, 25, 21, 5, box); - fillSpace(world, box, 25, 21, 5, new int[] {0, 0, 0, 0, 1, 0}, ModBlocks.radio_telex, ForgeDirection.EAST); + + placeCore(world, box, ModBlocks.radio_telex, ForgeDirection.WEST, 25, 21, 5); + fillSpace(world, box, 25, 21, 5, new int[] {0, 0, 0, 0, 1, 0}, ModBlocks.radio_telex, ForgeDirection.WEST); placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_sender, 0, 26, 20, 8, box); setRTTYFreq(world, box, 26, 20, 8); @@ -437,11 +443,29 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 23, 21, 1, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 18, 21, 2, box); fillWithBlocks(world, box, 16, 21, 1, 16, 21, 3, ModBlocks.deco_steel); - placeBlockAtCurrentPosition(world, ModBlocks.safe, decoW, 16, 21, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelE, 16, 22, 2, box); placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 16, 22, 3, box); placeRandomBobble(world, box, rand, 16, 22, 4); + //Containers + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 17, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 18, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 19, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 17, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 19, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 29, 21, 19, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 18, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 17, HbmChestContents.antenna, 8); + + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 8, HbmChestContents.antenna, 8); + + generateInvContents(world, box, rand, ModBlocks.crate_steel, 3, 25, 21, 2, HbmChestContents.antenna, 8); + + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelN, 23, 21, 5, HbmChestContents.antenna, 8); + + generateInvContents(world, box, rand, ModBlocks.safe, decoW, 16, 21, 4, HbmChestContents.antenna, 8); + /* Silo */ // TOP //Air @@ -616,14 +640,14 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 18, j, 19, 18, j + 2, 20, ModBlocks.concrete_smooth); fillWithBlocks(world, box, 17, j, 19, 17, j + 3, 20, ModBlocks.concrete_smooth); for(int i = 0; i < 4; i++) - fillWithMetadataBlocks(world, box, 20 - i, j + 1 + i, 19, 20 - i, j + 1 + i, 20, ModBlocks.concrete_smooth_stairs, 1); + fillWithMetadataBlocks(world, box, 20 - i, j + 1 + i, 19, 20 - i, j + 1 + i, 20, ModBlocks.concrete_smooth_stairs, stairE); } else { fillWithBlocks(world, box, 17, j, 8, 18, j, 9, ModBlocks.concrete_smooth); fillWithBlocks(world, box, 19, j, 8, 19, j + 1, 9, ModBlocks.concrete_smooth); fillWithBlocks(world, box, 20, j, 8, 20, j + 2, 9, ModBlocks.concrete_smooth); fillWithBlocks(world, box, 21, j, 8, 21, j + 3, 9, ModBlocks.concrete_smooth); for(int i = 0; i < 4; i++) - fillWithMetadataBlocks(world, box, 18 + i, j + 1 + i, 8, 18 + i, j + 1 + i, 9, ModBlocks.concrete_smooth_stairs, 0); + fillWithMetadataBlocks(world, box, 18 + i, j + 1 + i, 8, 18 + i, j + 1 + i, 9, ModBlocks.concrete_smooth_stairs, stairW); } fillWithBlocks(world, box, 22, j, 9, 23, j, 9, ModBlocks.concrete_smooth); @@ -737,8 +761,8 @@ public class SiloComponent extends Component { fillWithMetadataBlocks(world, box, 17, 2, 12, 17, 4, 12, ModBlocks.ladder_steel, decoN); fillWithMetadataBlocks(world, box, 21, 2, 16, 21, 4, 16, ModBlocks.ladder_steel, decoS); //Launch Pad - placeBlockAtCurrentPosition(world, ModBlocks.launch_pad, 12, 19, 1, 14, box); - fillSpace(world, box, 19, 1, 14, new int[] {0, 0, 1, 1, 1, 1}, ModBlocks.launch_pad, ForgeDirection.NORTH); + placeCore(world, box, ModBlocks.launch_pad, ForgeDirection.SOUTH, 19, 1, 14); + fillSpace(world, box, 19, 1, 14, new int[] {0, 0, 1, 1, 1, 1}, ModBlocks.launch_pad, ForgeDirection.SOUTH); for(int i = 0; i <= 2; i += 2) for(int k = 0; k <= 2; k += 2) makeExtra(world, box, ModBlocks.launch_pad, 18 + i, 1, 13 + k); @@ -861,7 +885,7 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 12, 17, 23, box); fillWithMetadataBlocks(world, box, 10, 17, 25, 12, 17, 25, ModBlocks.reinforced_stone_stairs, stairN | 4); placeBlockAtCurrentPosition(world, ModBlocks.deco_crt, getCRTMeta(0), 11, 18, 25, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 8, 17, 25, box); + //Bathroom placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone, 0, 6, 17, 17, box); fillWithBlocks(world, box, 6, 17, 18, 6, 17, 20, Blocks.cauldron); @@ -873,14 +897,19 @@ public class SiloComponent extends Component { //Bedroom for(int i = 3; i <= 7; i += 2) placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone_stairs, stairN | 4, i, 17, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 2, 17, 11, box); //placed separately for loot table control - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 4, 17, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 6, 17, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 8, 17, 11, box); + for(int i = 4; i <= 10; i += 3) for(int j = 17; j <= 18; j++) placeBed(world, box, 1, i, j, 8); + //Containers + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 25, HbmChestContents.antenna, 8); + + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 2, 17, 11, HbmChestContents.antenna, 8); //placed separately for loot table control + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 17, 11, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 6, 17, 11, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 11, HbmChestContents.antenna, 8); + /* Yellow Sector */ //Air fillWithAir(world, box, 27, 13, 13, 33, 14, 15); @@ -956,19 +985,24 @@ public class SiloComponent extends Component { //Room 2 placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 31, 13, 9, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelE, 31, 13, 11, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 32, 13, 9, box); - placeBlockAtCurrentPosition(world, ModBlocks.safe, decoN, 33, 13, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 33, 13, 11, box); //Workshop placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer, 0, 33, 13, 17, box); fillWithRandomizedBlocks(world, box, 33, 13, 18, 33, 13, 20, rand, Supplies); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 33, 13, 21, box); + placeBlockAtCurrentPosition(world, ModBlocks.anvil_iron, decoN, 31, 13, 21, box); fillWithBlocks(world, box, 28, 13, 18, 29, 13, 20, Blocks.planks); placeBlockAtCurrentPosition(world, Blocks.crafting_table, 0, 29, 13, 19, box); placeBlockAtCurrentPosition(world, ModBlocks.radiorec, decoE, 28, 14, 19, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_toaster, getCRTMeta(1), 28, 13, 17, box); + //Containers + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 32, 13, 9, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.safe, decoN, 33, 13, 9, HbmChestContents.antenna, 8); + + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 33, 13, 21, HbmChestContents.antenna, 8); + /* Green Sector */ //Air fillWithAir(world, box, 1, 9, 13, 11, 10, 15); @@ -1087,7 +1121,7 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 1, 9, 8, 1, 9, 9, ModBlocks.barrel_corroded); fillWithBlocks(world, box, 1, 9, 7, 1, 10, 7, ModBlocks.barrel_corroded); placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 2, 9, 7, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 4, 9, 7, box); + fillWithBlocks(world, box, 7, 9, 10, 11, 9, 10, ModBlocks.deco_lead); fillWithBlocks(world, box, 7, 10, 10, 11, 10, 10, ModBlocks.hadron_coil_alloy); fillWithBlocks(world, box, 7, 11, 10, 11, 11, 10, ModBlocks.deco_lead); @@ -1099,6 +1133,9 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 7, 10, 8, 11, 10, 8, ModBlocks.hadron_coil_alloy); fillWithBlocks(world, box, 7, 11, 8, 11, 11, 8, ModBlocks.deco_lead); + //Containers + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 9, 7, HbmChestContents.antenna, 8); + /* Black Sector */ //Air fillWithAir(world, box, 27, 5, 13, 31, 6, 15); @@ -1140,9 +1177,7 @@ public class SiloComponent extends Component { randomlyFillWithBlocks(world, box, rand, 0.15F, 27, 5, 13, 30, 6, 15, Blocks.web); //webs randomlyFillWithBlocks(world, box, rand, 0.15F, 31, 6, 13, 31, 6, 15, Blocks.web); randomlyFillWithBlocks(world, box, rand, 0.15F, 27, 7, 14, 31, 7, 14, Blocks.web); - placeBlockAtCurrentPosition(world, ModBlocks.safe, decoE, 31, 5, 13, box); - placeBlockAtCurrentPosition(world, ModBlocks.crate_steel, 2, 31, 5, 14, box); - placeBlockAtCurrentPosition(world, ModBlocks.safe, decoE, 31, 5, 15, box); + //Flooded Room randomlyFillWithBlocks(world, box, rand, 0.15F, 28, 2, 11, 31, 2, 15, ModBlocks.reeds); fillWithMetadataBlocks(world, box, 28, 3, 12, 28, 3, 15, ModBlocks.deco_pipe_framed_green_rusted, pillarNS); @@ -1151,9 +1186,16 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 28, 0, 11, box); fillWithBlocks(world, box, 31, 1, 11, 31, 1, 12, ModBlocks.deco_beryllium); fillWithMetadataBlocks(world, box, 31, 2, 11, 31, 2, 12, ModBlocks.tape_recorder, decoE); - placeBlockAtCurrentPosition(world, ModBlocks.crate_iron, 2, 30, 1, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 30, 2, 11, box); + //Containers + generateInvContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 13, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 31, 5, 14, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 15, HbmChestContents.antenna, 8); + + generateInvContents(world, box, rand, ModBlocks.crate_iron, 2, 30, 1, 11, HbmChestContents.antenna, 8); + return true; } @@ -1167,7 +1209,10 @@ public class SiloComponent extends Component { TileEntityRadioTorchBase torch = (TileEntityRadioTorchBase) world.getTileEntity(posX, posY, posZ); if(torch != null) { + //for some reason, the silo hatch torch stays at signal 15, despite the others not doing so. + //this is only an issue with this method changing the existing TE, so it will never occur during natural generation. torch.channel = String.valueOf(this.freq); //int for convenience + torch.lastState = 0; //just in case } } From bae1ce5f1ddb5e71705f6caae6246caf39507e3f Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 3 Mar 2024 10:32:41 -0800 Subject: [PATCH 239/376] ready for pr --- .../java/com/hbm/lib/HbmChestContents.java | 2 - .../world/gen/component/SiloComponent.java | 105 ++++++++++++------ 2 files changed, 73 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index c1571f47b..5eabd2be5 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -390,8 +390,6 @@ public class HbmChestContents { public static WeightedRandomChestContent[] lockersVault = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.robes_helmet, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.robes_plate, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_45, 0, 48, 64, 2), - new WeightedRandomChestContent(ModItems.gun_uac_pistol, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.robes_legs, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.robes_boots, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.jackt, 0, 1, 1, 1), diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 205d84ef0..22d2f96f3 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.lib.HbmChestContents; +import com.hbm.tileentity.bomb.TileEntityLandmine; import com.hbm.tileentity.network.TileEntityRadioTorchBase; import net.minecraft.init.Blocks; @@ -39,11 +40,10 @@ public class SiloComponent extends Component { @Override public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { - - //TODO add method to only count the surface portion for height offset - if(hpos == -1) { - hpos = this.getAverageHeight(world, this.boundingBox, box, getYWithOffset(25)); - this.boundingBox.offset(0, hpos - 1 - getYWithOffset(25), 0); + //seems to work + if(this.hpos == -1) { + this.hpos = this.getAverageHeight(world, this.boundingBox, box, getYWithOffset(25)); + this.boundingBox.offset(0, this.hpos - 1 - getYWithOffset(25), 0); } /*if(!this.setAverageHeight(world, box, this.boundingBox.minY)) { @@ -237,7 +237,7 @@ public class SiloComponent extends Component { setRTTYFreq(world, box, 16, 25, 17); //Containers - generateInvContents(world, box, rand, Blocks.chest, 2, 36, 26, 17, HbmChestContents.antenna, 8); //TODO all are placeholders + generateInvContents(world, box, rand, Blocks.chest, 2, 36, 26, 17, HbmChestContents.vertibird, 5); /* Stairway */ fillWithAir(world, box, 37, 26, 9, 37, 27, 10); @@ -449,22 +449,22 @@ public class SiloComponent extends Component { placeRandomBobble(world, box, rand, 16, 22, 4); //Containers - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 17, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 18, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 19, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 17, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 19, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 29, 21, 19, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 18, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 17, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 17, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 18, HbmChestContents.labVault, 6); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 19, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 17, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 19, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 29, 21, 19, HbmChestContents.officeTrash, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 18, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 17, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 8, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 8, HbmChestContents.filingCabinet, 5); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 3, 25, 21, 2, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 3, 25, 21, 2, HbmChestContents.machineParts, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelN, 23, 21, 5, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelN, 23, 21, 5, HbmChestContents.filingCabinet, 5); - generateInvContents(world, box, rand, ModBlocks.safe, decoW, 16, 21, 4, HbmChestContents.antenna, 8); + generateLockableContents(world, box, rand, ModBlocks.safe, decoW, 16, 21, 4, HbmChestContents.vault1, 3, 1D); /* Silo */ // TOP @@ -745,7 +745,7 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 20, 5, 8, 20, 6, 9, ModBlocks.concrete_smooth); fillWithBlocks(world, box, 21, 5, 8, 21, 7, 9, ModBlocks.concrete_smooth); for(int i = 0; i < 4; i++) - fillWithMetadataBlocks(world, box, 18 + i, 5 + i, 8, 18 + i, 5 + i, 9, ModBlocks.concrete_smooth_stairs, 0); + fillWithMetadataBlocks(world, box, 18 + i, 5 + i, 8, 18 + i, 5 + i, 9, ModBlocks.concrete_smooth_stairs, stairW); //Railing and Deco placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 18, 5, 11, box); fillWithBlocks(world, box, 20, 5, 11, 22, 5, 11, ModBlocks.fence_metal); @@ -903,12 +903,16 @@ public class SiloComponent extends Component { placeBed(world, box, 1, i, j, 8); //Containers - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 25, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 25, HbmChestContents.lockersVault, 6); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 2, 17, 11, HbmChestContents.antenna, 8); //placed separately for loot table control - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 17, 11, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 6, 17, 11, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 11, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 2, 17, 11, HbmChestContents.lockersVault, 6); //placed separately for loot table control + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 17, 11, HbmChestContents.expensive, 2); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 6, 17, 11, HbmChestContents.lockersVault, 6); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 11, HbmChestContents.lockersVault, 6); + //Mines + fillWithMines(world, box, rand, 2, 17, 9, 11, 17, 11); + fillWithMines(world, box, rand, 9, 17, 17, 11, 17, 24); + fillWithMines(world, box, rand, 5, 17, 23, 6, 17, 25); /* Yellow Sector */ //Air @@ -998,10 +1002,12 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.deco_toaster, getCRTMeta(1), 28, 13, 17, box); //Containers - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 32, 13, 9, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.safe, decoN, 33, 13, 9, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 32, 13, 9, HbmChestContents.missile, 6); + generateInvContents(world, box, rand, ModBlocks.safe, decoN, 33, 13, 9, HbmChestContents.machineParts, 6); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 33, 13, 21, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 33, 13, 21, HbmChestContents.labVault, 8); + //Mines + fillWithMines(world, box, rand, 27, 13, 13, 33, 13, 15); /* Green Sector */ //Air @@ -1134,7 +1140,10 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 7, 11, 8, 11, 11, 8, ModBlocks.deco_lead); //Containers - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 9, 7, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 9, 7, HbmChestContents.nuclearFuel, 5); + //Mines + fillWithMines(world, box, rand, 1, 9, 7, 6, 9, 11); + fillWithMines(world, box, rand, 8, 9, 17, 10, 9, 22); /* Black Sector */ //Air @@ -1190,11 +1199,13 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 30, 2, 11, box); //Containers - generateInvContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 13, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 31, 5, 14, HbmChestContents.antenna, 8); - generateInvContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 15, HbmChestContents.antenna, 8); + generateLockableContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 13, HbmChestContents.vault2, 4, 0.1D); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 31, 5, 14, HbmChestContents.nukeTrash, 5); + generateInvContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 15, HbmChestContents.filingCabinet, 5); - generateInvContents(world, box, rand, ModBlocks.crate_iron, 2, 30, 1, 11, HbmChestContents.antenna, 8); + generateInvContents(world, box, rand, ModBlocks.crate_iron, 2, 30, 1, 11, HbmChestContents.expensive, 7); + //Mines + fillWithMines(world, box, rand, 27, 5, 13, 30, 5, 15); return true; } @@ -1304,4 +1315,34 @@ public class SiloComponent extends Component { this.field_151562_a = Blocks.air; } } + //stop-gap because there's no point in replacing all the blockselector classes yet + //this is basically just an in-line version of it anyway + protected void fillWithMines(World world, StructureBoundingBox box, Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ) { + + if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) + return; + + for(int x = minX; x <= maxX; x++) { + + for(int z = minZ; z <= maxZ; z++) { + int posX = getXWithOffset(x, z); + int posZ = getZWithOffset(x, z); + + if(posX >= box.minX && posX <= box.maxX && posZ >= box.minZ && posZ <= box.maxZ) { + for(int y = minY; y <= maxY; y++) { + int posY = getYWithOffset(y); + //shouldn't cause issues + if(rand.nextInt(15) == 0 && world.getBlock(posX, posY, posZ).isAir(world, posX, posY, posZ) && !world.getBlock(posX, posY - 1, posZ).isAir(world, posX, posY - 1, posZ)) { + world.setBlock(posX, posY, posZ, ModBlocks.mine_ap, 0, 2); + + TileEntityLandmine mine = (TileEntityLandmine)world.getTileEntity(posX, posY, posZ); + if(mine != null) + mine.waitingForPlayer = true; + } + } + } + } + } + } + } From 23e58c7e1de39566e1c2debb7beccc0739ede970 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 4 Mar 2024 16:44:34 +0100 Subject: [PATCH 240/376] 0000000000 --- changelog | 3 + src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../com/hbm/blocks/bomb/LaunchPadRusted.java | 81 +++++++++++ .../hbm/blocks/generic/BlockSnowglobe.java | 16 ++- .../container/ContainerLaunchPadRusted.java | 37 +++++ .../java/com/hbm/inventory/fluid/Fluids.java | 10 +- .../java/com/hbm/inventory/gui/GUIAnvil.java | 8 +- .../hbm/inventory/gui/GUILaunchPadRusted.java | 84 +++++++++++ .../hbm/inventory/gui/GUIScreenSnowglobe.java | 9 +- .../inventory/recipes/anvil/AnvilRecipes.java | 55 +++++++- src/main/java/com/hbm/items/ModItems.java | 12 +- .../render/tileentity/RenderSnowglobe.java | 57 ++++++-- .../tileentity/bomb/TileEntityLaunchPad.java | 2 - .../bomb/TileEntityLaunchPadRusted.java | 132 ++++++++++++++++++ .../gui/weapon/gui_launch_pad_rusted.png | Bin 0 -> 4844 bytes .../gui/weapon/gui_launch_pad_structure.png | Bin 3896 -> 0 bytes .../assets/hbm/textures/items/launch_code.png | Bin 0 -> 290 bytes .../hbm/textures/items/launch_code_piece.png | Bin 0 -> 280 bytes .../assets/hbm/textures/items/launch_key.png | Bin 0 -> 233 bytes 19 files changed, 475 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java create mode 100644 src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java create mode 100644 src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_rusted.png delete mode 100644 src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_structure.png create mode 100644 src/main/resources/assets/hbm/textures/items/launch_code.png create mode 100644 src/main/resources/assets/hbm/textures/items/launch_code_piece.png create mode 100644 src/main/resources/assets/hbm/textures/items/launch_key.png diff --git a/changelog b/changelog index f7e259775..f7108e12f 100644 --- a/changelog +++ b/changelog @@ -26,6 +26,9 @@ * Fluid traits are now listed in a fixed order instead of being arranged randomly * Hidden fluid trait descriptions will now be added below the visible part of that trait instead of below the last visible trait * The methusalem turret no longer drops anything when broken +* Gaseous fuels now have a combusion multiplier of 1.5 instead of 1.25 +* LPG now has half the base burn value, preventing an unreasonable jump in efficiency simply by liquefacting petroleum gas + * While overall slightly less efficient that petroleum gas per unit of petroleum needed, LPG is still very much desirable due to being much easier to burn at max efficiency ## Fixed * Fixed the structure toggle on the world creation screen not working correctly on most world types diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index a24e5753e..94c961f5e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1048,6 +1048,7 @@ public class ModBlocks { public static Block machine_orbus; public static Block launch_pad; + public static Block launch_pad_rusted; public static Block launch_pad_large; public static Block machine_missile_assembly; @@ -2167,6 +2168,7 @@ public class ModBlocks { tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); + launch_pad_rusted = new LaunchPadRusted(Material.iron).setBlockName("launch_pad_rusted").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad_rusted"); launch_pad_large = new LaunchPadLarge(Material.iron).setBlockName("launch_pad_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3517,6 +3519,7 @@ public class ModBlocks { //Missile Blocks GameRegistry.registerBlock(machine_missile_assembly, machine_missile_assembly.getUnlocalizedName()); GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); + GameRegistry.registerBlock(launch_pad_rusted, launch_pad_rusted.getUnlocalizedName()); GameRegistry.registerBlock(launch_pad_large, launch_pad_large.getUnlocalizedName()); GameRegistry.registerBlock(compact_launcher, compact_launcher.getUnlocalizedName()); GameRegistry.registerBlock(launch_table, launch_table.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java new file mode 100644 index 000000000..eec626d2c --- /dev/null +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java @@ -0,0 +1,81 @@ +package com.hbm.blocks.bomb; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IBomb; +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class LaunchPadRusted extends BlockDummyable implements IBomb { + + public LaunchPadRusted(Material mat) { + super(mat); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, -0.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, -1.5D, 1.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, 0.5D, -0.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, 0.5D, 1.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5D, 0.5D, -1.5D, 0.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0.5D, -0.5D, 1.5D, 1D, 0.5D)); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLaunchPadRusted(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public BombReturnCode explode(World world, int x, int y, int z) { + + if(!world.isRemote) { + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPadRusted){ + TileEntityLaunchPadRusted entity = (TileEntityLaunchPadRusted)core; + return entity.launch(); + } + } + } + + return BombReturnCode.UNDEFINED; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){ + + if(!world.isRemote){ + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPadRusted){ + TileEntityLaunchPadRusted launchpad = (TileEntityLaunchPadRusted)core; + launchpad.updateRedstonePower(x, y, z); + } + } + } + super.onNeighborBlockChange( world, x, y, z, blockIn); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java index d24000546..ff1ed304c 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java @@ -155,17 +155,19 @@ public class BlockSnowglobe extends BlockContainer implements IGUIProvider { } public static enum SnowglobeType { - NONE( "NONE"), - RIVETCITY( "Rivet City"), - TENPENNYTOWER( "Tenpenny Tower"), - LUCKY38( "Lucky 38"), - SIERRAMADRE( "Sierra Madre"), - PRYDWEN( "Prydwen"); + NONE( "NONE", null), + RIVETCITY( "Rivet City", "Welcome to Rivet City. Please wait while the bridge extends."), + TENPENNYTOWER( "Tenpenny Tower", "Tenpenny Tower is the brainchild of Allistair Tenpenny, a British refugee who came to the Capital Wasteland seeking his fortune."), + LUCKY38( "Lucky 38", "My guess? Leads to a big cashout at some casino - and if the \"38\" on it is any indication... well... Lucky 38 it is."), + SIERRAMADRE( "Sierra Madre", "It's the moment you've been waiting for, the reason we're all here - the Gala Event, the Grand Opening of the Sierra Madre Casino."), + PRYDWEN( "Prydwen", "People of the Commonwealth. Do not interfere. Our intentions are peaceful. We are the Brotherhood of Steel."); public String label; + public String inscription; - private SnowglobeType(String label) { + private SnowglobeType(String label, String inscription) { this.label = label; + this.inscription = inscription; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java new file mode 100644 index 000000000..a69c5f4c1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java @@ -0,0 +1,37 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerLaunchPadRusted extends Container { + + private TileEntityLaunchPadRusted launchpad; + + public ContainerLaunchPadRusted(InventoryPlayer invPlayer, TileEntityLaunchPadRusted tedf) { + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 154 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 212)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int par2) { + return null; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return launchpad.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 8a2c09a26..8c97be180 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -621,8 +621,8 @@ public class Fluids { registerCalculatedFuel(CRACKOIL, (baseline / 1D * flammabilityLow * demandLow * complexityCracking), 0, null); registerCalculatedFuel(CRACKOIL_DS, (baseline / 1D * flammabilityLow * demandLow * complexityCracking * complexityHydro), 0, null); registerCalculatedFuel(OIL_COKER, (baseline / 1D * flammabilityLow * demandLow * complexityCoker), 0, null); - registerCalculatedFuel(GAS, (baseline / 1D * flammabilityNormal * demandVeryLow), 1.25, FuelGrade.GAS); - registerCalculatedFuel(GAS_COKER, (baseline / 1D * flammabilityNormal * demandVeryLow * complexityCoker), 1.25, FuelGrade.GAS); + registerCalculatedFuel(GAS, (baseline / 1D * flammabilityNormal * demandVeryLow), 1.5, FuelGrade.GAS); + registerCalculatedFuel(GAS_COKER, (baseline / 1D * flammabilityNormal * demandVeryLow * complexityCoker), 1.5, FuelGrade.GAS); registerCalculatedFuel(HEAVYOIL, (baseline / 0.5 * flammabilityLow * demandLow * complexityRefinery), 1.25D, FuelGrade.LOW); registerCalculatedFuel(SMEAR, (baseline / 0.35 * flammabilityLow * demandLow * complexityRefinery * complexityFraction), 1.25D, FuelGrade.LOW); registerCalculatedFuel(RECLAIMED, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant), 1.25D, FuelGrade.LOW); @@ -641,10 +641,10 @@ public class Fluids { registerCalculatedFuel(LIGHTOIL_DS, (baseline / 0.15 * flammabilityNormal * demandHigh * complexityRefinery * complexityHydro), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(LIGHTOIL_CRACK, (baseline / 0.30 * flammabilityNormal * demandHigh * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(KEROSENE, (baseline / 0.09 * flammabilityNormal * demandHigh * complexityRefinery * complexityFraction), 1.5D, FuelGrade.AERO); - registerCalculatedFuel(PETROLEUM, (baseline / 0.10 * flammabilityNormal * demandMedium * complexityRefinery), 1.25, FuelGrade.GAS); + registerCalculatedFuel(PETROLEUM, (baseline / 0.10 * flammabilityNormal * demandMedium * complexityRefinery), 1.5, FuelGrade.GAS); registerCalculatedFuel(AROMATICS, (baseline / 0.15 * flammabilityLow * demandHigh * complexityRefinery * complexityCracking), 0, null); registerCalculatedFuel(UNSATURATEDS, (baseline / 0.15 * flammabilityHigh * demandHigh * complexityRefinery * complexityCracking), 0, null); - registerCalculatedFuel(LPG, (baseline / 0.05 * flammabilityNormal * demandMedium * complexityRefinery * complexityChemplant), 2.5, FuelGrade.HIGH); + registerCalculatedFuel(LPG, (baseline / 0.1 * flammabilityNormal * demandMedium * complexityRefinery * complexityChemplant), 2.5, FuelGrade.HIGH); registerCalculatedFuel(NITAN, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * 25L, 2.5, FuelGrade.HIGH); registerCalculatedFuel(BALEFIRE, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * 100L, 2.5, FuelGrade.HIGH); registerCalculatedFuel(HEAVYOIL_VACUUM, (baseline / 0.4 * flammabilityLow * demandLow * complexityVacuum), 1.25D, FuelGrade.LOW); @@ -656,7 +656,7 @@ public class Fluids { registerCalculatedFuel(DIESEL_REFORM, DIESEL.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 2.5D, FuelGrade.HIGH); registerCalculatedFuel(DIESEL_CRACK_REFORM, DIESEL_CRACK.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 2.5D, FuelGrade.HIGH); registerCalculatedFuel(KEROSENE_REFORM, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 1.5D, FuelGrade.AERO); - registerCalculatedFuel(REFORMGAS, (baseline / 0.06 * flammabilityHigh * demandLow * complexityVacuum * complexityFraction), 1.25D, FuelGrade.GAS); + registerCalculatedFuel(REFORMGAS, (baseline / 0.06 * flammabilityHigh * demandLow * complexityVacuum * complexityFraction), 1.5D, FuelGrade.GAS); //all hail the spreadsheet //the spreadsheet must not be questioned diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index ae7dbc1b1..092b1080f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -284,7 +284,7 @@ public class GUIAnvil extends GuiContainer { for(AStack stack : recipe.input) { if(stack instanceof ComparableStack) { - ItemStack input = ((ComparableStack) stack).toStack(); + ComparableStack input = (ComparableStack) stack; boolean hasItem = false; int amount = 0; for(int i = 0; i < inventory.mainInventory.length; i++) { @@ -292,15 +292,15 @@ public class GUIAnvil extends GuiContainer { if(stackItem == null) { continue; } - if(stackItem.getItem() == input.getItem() && input.getItemDamage() == stackItem.getItemDamage()) { + if(input.matchesRecipe(stackItem, true)) { hasItem = true; amount += stackItem.stackSize; } } if(hasItem && amount >= stack.stacksize) { - list.add(">" + input.stackSize + "x " + input.getDisplayName()); + list.add(">" + input.stacksize + "x " + input.toStack().getDisplayName()); } else { - list.add(EnumChatFormatting.RED + ">" + input.stackSize + "x " + input.getDisplayName()); + list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + input.toStack().getDisplayName()); } } else if(stack instanceof OreDictStack) { OreDictStack input = (OreDictStack) stack; diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java new file mode 100644 index 000000000..2a4d6d626 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java @@ -0,0 +1,84 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerLaunchPadRusted; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUILaunchPadRusted extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_launch_pad_rusted.png"); + private TileEntityLaunchPadRusted launchpad; + + public GUILaunchPadRusted(InventoryPlayer invPlayer, TileEntityLaunchPadRusted tedf) { + super(new ContainerLaunchPadRusted(invPlayer, tedf)); + launchpad = tedf; + + this.xSize = 176; + this.ySize = 236; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.launchpad.hasCustomInventoryName() ? this.launchpad.getInventoryName() : I18n.format(this.launchpad.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @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(launchpad.slots[0] != null) { + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(launchpad.slots[0]).makeSingular()); + if(renderer != null) { + GL11.glPushMatrix(); + + GL11.glTranslatef(guiLeft + 70, guiTop + 120, 100); + + double scale = 1D; + + if(launchpad.slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) launchpad.slots[0].getItem(); + switch(missile.formFactor) { + case ABM: scale = 1.45D; break; + case MICRO: scale = 2.5D; break; + case V2: scale = 1.75D; break; + case STRONG: scale = 1.375D; break; + case HUGE: scale = 0.925D; break; + case ATLAS: scale = 0.875D; break; + case OTHER: break; + } + if(missile == ModItems.missile_stealth) scale = 1.125D; + } + + GL11.glRotatef(90, 0, 1, 0); + GL11.glScaled(scale, scale, scale); + GL11.glScalef(-8, -8, -8); + + GL11.glPushMatrix(); + GL11.glRotatef(75, 0.0F, 1.0F, 0.0F); + RenderHelper.enableStandardItemLighting(); + GL11.glPopMatrix(); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + renderer.accept(Minecraft.getMinecraft().getTextureManager()); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + }*/ + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java index 7fb95e184..03021464e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java @@ -1,8 +1,11 @@ package com.hbm.inventory.gui; +import java.util.List; + import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; +import com.hbm.util.I18nUtil; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; @@ -78,7 +81,7 @@ public class GUIScreenSnowglobe extends GuiScreen { } nextLevel += 10; - } + }*/ if(this.snowglobe.type.inscription != null) { @@ -87,14 +90,14 @@ public class GUIScreenSnowglobe extends GuiScreen { nextLevel += 10; - String[] list = this.snowglobe.type.inscription.split("\\$"); + List list = I18nUtil.autoBreakWithParagraphs(this.fontRendererObj, this.snowglobe.type.inscription, 280); for(String text : list) { this.fontRendererObj.drawStringWithShadow(text, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(text) / 2), nextLevel, 0x009900); nextLevel += 10; } nextLevel += 10; - }*/ + } GL11.glEnable(GL11.GL_LIGHTING); } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index e510ee224..2a618ce69 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -23,6 +23,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class AnvilRecipes { @@ -753,7 +754,7 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.ingot_tcalloy, 1), 0.25F) } ).setTier(3)); - + constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.deco_computer), new AnvilOutput[] { @@ -765,6 +766,58 @@ public class AnvilRecipes { } ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.deco_crt, 1, OreDictionary.WILDCARD_VALUE), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.crt_display, 1)), + new AnvilOutput(new ItemStack(ModItems.scrap, 2)), + new AnvilOutput(new ItemStack(ModItems.wire_copper, 2)), + new AnvilOutput(new ItemStack(ModItems.wire_gold, 2), 0.25F), + new AnvilOutput(new ItemStack(ModItems.circuit_aluminium, 1), 0.25F) + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.deco_toaster, 1, 0), //iron toaster + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_iron, 3)), + new AnvilOutput(new ItemStack(ModItems.scrap, 1)), + new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 1)), + new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.battery_generic, 1), 0.25F), + new AnvilOutput(new ItemStack(ModItems.battery_advanced, 1), 0.1F), + new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.01F) + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.deco_toaster, 1, 1), // steel toaster + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 3)), + new AnvilOutput(new ItemStack(ModItems.scrap, 1)), + new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 2)), + new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.battery_lithium, 1), 0.25F), + new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F), + new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F) + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.deco_toaster, 1, 2), // wooden toaster + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.powder_sawdust, 4)), + new AnvilOutput(new ItemStack(ModItems.scrap, 1)), + new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 4)), + new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.gem_alexandrite, 1), 0.25F), + new AnvilOutput(new ItemStack(ModItems.flame_pony, 1), 0.01F) + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.filing_cabinet), new AnvilOutput[] { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 71d8d9173..badd7a22b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1303,6 +1303,10 @@ public class ModItems { public static Item bobmazon_tools; public static Item bobmazon_hidden; + public static Item launch_code_piece; + public static Item launch_code; + public static Item launch_key; + public static Item missile_assembly; public static Item missile_generic; public static Item missile_anti_ballistic; @@ -3929,6 +3933,9 @@ public class ModItems { designator_range = new ItemDesingatorRange().setUnlocalizedName("designator_range").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_range_alt"); designator_manual = new ItemDesingatorManual().setUnlocalizedName("designator_manual").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_manual"); designator_arty_range = new ItemDesignatorArtyRange().setUnlocalizedName("designator_arty_range").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_arty_range"); + launch_code_piece = new Item().setUnlocalizedName("launch_code_piece").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code_piece"); + launch_code = new Item().setUnlocalizedName("launch_code").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code"); + launch_key = new Item().setUnlocalizedName("launch_key").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_key"); missile_assembly = new Item().setUnlocalizedName("missile_assembly").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":missile_assembly"); missile_generic = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic"); missile_anti_ballistic = new ItemMissile(MissileFormFactor.ABM, MissileTier.TIER1).setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); @@ -6843,9 +6850,7 @@ public class ModItems { GameRegistry.registerItem(designator_range, designator_range.getUnlocalizedName()); GameRegistry.registerItem(designator_manual, designator_manual.getUnlocalizedName()); GameRegistry.registerItem(designator_arty_range, designator_arty_range.getUnlocalizedName()); - //GameRegistry.registerItem(turret_control, turret_control.getUnlocalizedName()); GameRegistry.registerItem(turret_chip, turret_chip.getUnlocalizedName()); - //GameRegistry.registerItem(turret_biometry, turret_biometry.getUnlocalizedName()); GameRegistry.registerItem(linker, linker.getUnlocalizedName()); GameRegistry.registerItem(reactor_sensor, reactor_sensor.getUnlocalizedName()); GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName()); @@ -6877,6 +6882,9 @@ public class ModItems { GameRegistry.registerItem(padlock, padlock.getUnlocalizedName()); GameRegistry.registerItem(padlock_reinforced, padlock_reinforced.getUnlocalizedName()); GameRegistry.registerItem(padlock_unbreakable, padlock_unbreakable.getUnlocalizedName()); + GameRegistry.registerItem(launch_code_piece, launch_code_piece.getUnlocalizedName()); + GameRegistry.registerItem(launch_code, launch_code.getUnlocalizedName()); + GameRegistry.registerItem(launch_key, launch_key.getUnlocalizedName()); //Missiles //Tier 0 diff --git a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java index 2292b028f..f8ad256b6 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java @@ -3,17 +3,25 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockSnowglobe.SnowglobeType; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.lib.RefStrings; +import com.hbm.render.item.ItemRenderBase; import com.hbm.render.loader.HFRWavefrontObject; +import com.hbm.util.EnumUtil; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.model.IModelCustom; -public class RenderSnowglobe extends TileEntitySpecialRenderer { +public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemRendererProvider { public static final IModelCustom snowglobe = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/snowglobe.obj"), false).asDisplayList(); public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe.png"); @@ -25,21 +33,29 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glRotated(22.5D * tile.getBlockMetadata() + 90, 0, -1, 0); + + TileEntitySnowglobe te = (TileEntitySnowglobe) tile; + renderSnowglobe(te.type); + + GL11.glPopMatrix(); + } + + public static void renderSnowglobe(SnowglobeType type) { + GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL12.GL_RESCALE_NORMAL); - - GL11.glRotated(22.5D * tile.getBlockMetadata() + 90, 0, -1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); double scale = 0.0625D; GL11.glScaled(scale, scale, scale); - this.bindTexture(socket); + Minecraft.getMinecraft().getTextureManager().bindTexture(socket); snowglobe.renderPart("Socket"); - - TileEntitySnowglobe te = (TileEntitySnowglobe) tile; - this.bindTexture(features); - switch(te.type) { + Minecraft.getMinecraft().getTextureManager().bindTexture(features); + + switch(type) { case NONE: break; case RIVETCITY: snowglobe.renderPart("RivetCity"); break; case TENPENNYTOWER: snowglobe.renderPart("TenpennyTower"); break; @@ -48,7 +64,28 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer { case PRYDWEN: snowglobe.renderPart("Prydwen"); break; default: break; } - - GL11.glPopMatrix(); + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.snowglobe); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(10, 10, 10); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glTranslated(0, 0.25, 0); + GL11.glScaled(3, 3, 3); + SnowglobeType type = EnumUtil.grabEnumSafely(SnowglobeType.class, item.getItemDamage()); + renderSnowglobe(type); + }}; } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 0ac00c5e2..857c3a3a1 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -88,14 +88,12 @@ public class TileEntityLaunchPad extends TileEntityLaunchPadBase implements IEne @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - this.delay = nbt.getInteger("delay"); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setInteger("delay", delay); } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java new file mode 100644 index 000000000..ae6320306 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java @@ -0,0 +1,132 @@ +package com.hbm.tileentity.bomb; + +import java.util.HashSet; +import java.util.Set; + +import com.hbm.interfaces.IBomb.BombReturnCode; +import com.hbm.inventory.container.ContainerLaunchPadRusted; +import com.hbm.inventory.gui.GUILaunchPadRusted; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements IGUIProvider { + + public int prevRedstonePower; + public int redstonePower; + public Set activatedBlocks = new HashSet<>(4); + + public boolean missileLoaded; + + public TileEntityLaunchPadRusted() { + super(3); + } + + @Override + public String getName() { + return "container.launchPadRusted"; + } + + @Override + public void updateEntity() { + + } + + public BombReturnCode launch() { + return BombReturnCode.UNDEFINED; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.redstonePower = nbt.getInteger("redstonePower"); + this.prevRedstonePower = nbt.getInteger("prevRedstonePower"); + NBTTagCompound activatedBlocks = nbt.getCompoundTag("activatedBlocks"); + this.activatedBlocks.clear(); + for(int i = 0; i < activatedBlocks.func_150296_c().size() / 3; i++) { + this.activatedBlocks.add(new BlockPos(activatedBlocks.getInteger("x" + i), activatedBlocks.getInteger("y" + i), activatedBlocks.getInteger("z" + i))); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("redstonePower", redstonePower); + nbt.setInteger("prevRedstonePower", prevRedstonePower); + NBTTagCompound activatedBlocks = new NBTTagCompound(); + int i = 0; + for(BlockPos p : this.activatedBlocks) { + activatedBlocks.setInteger("x" + i, p.getX()); + activatedBlocks.setInteger("y" + i, p.getY()); + activatedBlocks.setInteger("z" + i, p.getZ()); + i++; + } + nbt.setTag("activatedBlocks", activatedBlocks); + } + + public void updateRedstonePower(int x, int y, int z) { + BlockPos pos = new BlockPos(x, y, z); + boolean powered = worldObj.isBlockIndirectlyGettingPowered(x, y, z); + boolean contained = activatedBlocks.contains(pos); + if(!contained && powered){ + activatedBlocks.add(pos); + if(redstonePower == -1){ + redstonePower = 0; + } + redstonePower++; + } else if(contained && !powered){ + activatedBlocks.remove(pos); + redstonePower--; + if(redstonePower == 0){ + redstonePower = -1; + } + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 15, + zCoord + 3 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerLaunchPadRusted(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUILaunchPadRusted(player.inventory, this); + } +} diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_rusted.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_rusted.png new file mode 100644 index 0000000000000000000000000000000000000000..97741eba5fb2e93c56ffa1936a2d1f8ba08df978 GIT binary patch literal 4844 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 OB#iXUv1PjMzyAv&-0m&_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_structure.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_structure.png deleted file mode 100644 index a2dc1aad1f48a7f00eb44db63f554364849a6f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3896 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 D=pYPa diff --git a/src/main/resources/assets/hbm/textures/items/launch_code.png b/src/main/resources/assets/hbm/textures/items/launch_code.png new file mode 100644 index 0000000000000000000000000000000000000000..ef5db0f4723427ecdb93cc27cf20dd45cbdbc857 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf@TxaDM;* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/launch_code_piece.png b/src/main/resources/assets/hbm/textures/items/launch_code_piece.png new file mode 100644 index 0000000000000000000000000000000000000000..ee74304f56e7d500e312727bd7d9969ad7cd5d24 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyUv!>wXW#E0cHV+-0?K{J=CXpy25$b%9N9FL`^E3vcS;-fE(n`{B7`g3*(` zKRG!6Xqe_lWGBB%xL(S2Ktg!$_b;{U8O(||cNp+EZ*oa7+%YT9rA2`0+)hhTC8maJ zQqS*r%oFet^*%C>WVRcFlN|F|npPgrEx;X|@3#2&qMy;SGS zup+jy%FH3VcdOaUz4sX$I2QU8?6^Pq@6L6{Z&lBqbnfi28E+=fopt}ef;7Vg6JN8G ctUt5mE;$Cq{+7t~1$vFa)78&qol`;+06&ay00000 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/launch_key.png b/src/main/resources/assets/hbm/textures/items/launch_key.png new file mode 100644 index 0000000000000000000000000000000000000000..7bdc33ec4ce166216a6f1cdf6cd2815bacd1dad7 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf`S2$=6;`Vka*H7%{fut|kMVd)lK^`6;tJ{Mk3@r<8Y zk+yh#m2%3Nwy;t;~wMyZZD57tN2;mLnyvvRsyn9Hy5 dbvpCTN*`nMVipYYDFeEd!PC{xWt~$(69Ac>RDJ*e literal 0 HcmV?d00001 From 08812a700e304e1001234ad869a7617692fc5978 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 4 Mar 2024 21:08:31 +0100 Subject: [PATCH 241/376] the malicious gigglefish from the silly dimension --- changelog | 1 - src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../com/hbm/blocks/bomb/LaunchPadRusted.java | 9 ++ .../java/com/hbm/entity/EntityMappings.java | 1 + .../entity/missile/EntityMissileDoomsday.java | 54 ---------- .../entity/missile/EntityMissileTier4.java | 23 ++++ .../container/ContainerLaunchPadRusted.java | 48 ++++++++- .../hbm/inventory/gui/GUILaunchPadRusted.java | 71 +++++++++---- src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/weapon/ItemMissile.java | 17 ++- src/main/java/com/hbm/main/ClientProxy.java | 3 + .../java/com/hbm/main/CraftingManager.java | 8 ++ .../java/com/hbm/main/ModEventHandler.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../entity/rocket/RenderMissileNuclear.java | 6 +- .../render/item/ItemRenderMissileGeneric.java | 1 + .../tileentity/RenderLaunchPadRusted.java | 72 +++++++++++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../bomb/TileEntityLaunchPadBase.java | 4 +- .../bomb/TileEntityLaunchPadRusted.java | 98 +++++++++++++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../gui/weapon/gui_launch_pad_rusted.png | Bin 4844 -> 4836 bytes .../assets/hbm/textures/items/launch_code.png | Bin 290 -> 320 bytes 24 files changed, 344 insertions(+), 89 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderLaunchPadRusted.java diff --git a/changelog b/changelog index f7108e12f..82df3d70f 100644 --- a/changelog +++ b/changelog @@ -1,7 +1,6 @@ ##Added * CRTs and toasters * Decorative blocks that will spawn in upcoming dungeons -* Snow globes * Sentry turret "Edwin" * A broken down version of the sentry turret with infinite power and ammo * Will be found in the new silo structure diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 94c961f5e..43fa85e20 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1544,7 +1544,7 @@ public class ModBlocks { deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); - snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); + snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java index eec626d2c..2f2f29881 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java @@ -1,12 +1,16 @@ package com.hbm.blocks.bomb; +import java.util.Random; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IBomb; import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; @@ -28,6 +32,11 @@ public class LaunchPadRusted extends BlockDummyable implements IBomb { if(meta >= 12) return new TileEntityLaunchPadRusted(); return null; } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 30d51c83c..35c6b1763 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -109,6 +109,7 @@ public class EntityMappings { addEntity(EntityMinecartTest.class, "entity_minecart_test", 1000); addEntity(EntitySparkBeam.class, "entity_spark_beam", 1000); addEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 1000); + addEntity(EntityMissileDoomsdayRusted.class, "entity_missile_doomsday_rusted", 1000); addEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 1000); addEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 1000); addEntity(EntityVortex.class, "entity_vortex", 250); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java deleted file mode 100644 index 06c55969f..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityMissileDoomsday extends EntityMissileBaseNT { - - public EntityMissileDoomsday(World world) { - super(world); - } - - public EntityMissileDoomsday(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ).moreFallout(100)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); - } - - @Override - protected void spawnContrail() { - - byte rot = this.dataWatcher.getWatchableObjectByte(3); - - Vec3 thrust = Vec3.createVectorHelper(0, 0, 1); - switch(rot) { - case 2: thrust.rotateAroundY((float) -Math.PI / 2F); break; - case 4: thrust.rotateAroundY((float) -Math.PI); break; - case 3: thrust.rotateAroundY((float) -Math.PI / 2F * 3F); break; - } - thrust.rotateAroundY((this.rotationYaw + 90) * (float) Math.PI / 180F); - thrust.rotateAroundX(this.rotationPitch * (float) Math.PI / 180F); - thrust.rotateAroundY(-(this.rotationYaw + 90) * (float) Math.PI / 180F); - - this.spawnContraolWithOffset(thrust.xCoord, thrust.yCoord, thrust.zCoord); - this.spawnContraolWithOffset(0, 0, 0); - this.spawnContraolWithOffset(-thrust.xCoord, -thrust.zCoord, -thrust.zCoord); - } - - @Override public List getDebris() { return null; } - @Override public ItemStack getDebrisRareDrop() { return null; } - @Override public String getUnlocalizedName() { return "radar.target.doomsday"; } - @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday); } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java index 5e9f8472e..ea440d024 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -103,4 +103,27 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_volcano); } @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_volcano); } } + + public static class EntityMissileDoomsday extends EntityMissileTier4 { + public EntityMissileDoomsday(World world) { super(world); } + public EntityMissileDoomsday(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ).moreFallout(100)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); + } + @Override public List getDebris() { return null; } + @Override public ItemStack getDebrisRareDrop() { return null; } + @Override public String getUnlocalizedName() { return "radar.target.doomsday"; } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday); } + } + + public static class EntityMissileDoomsdayRusted extends EntityMissileDoomsday { + public EntityMissileDoomsdayRusted(World world) { super(world); } + public EntityMissileDoomsdayRusted(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ).moreFallout(100)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); + } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday_rusted); } + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java index a69c5f4c1..fb829f26e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java @@ -1,7 +1,10 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; +import api.hbm.item.IDesignatorItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -13,6 +16,12 @@ public class ContainerLaunchPadRusted extends Container { private TileEntityLaunchPadRusted launchpad; public ContainerLaunchPadRusted(InventoryPlayer invPlayer, TileEntityLaunchPadRusted tedf) { + this.launchpad = tedf; + + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 0, 26, 72)); + this.addSlotToContainer(new Slot(tedf, 1, 116, 45)); + this.addSlotToContainer(new Slot(tedf, 2, 134, 45)); + this.addSlotToContainer(new Slot(tedf, 3, 26, 99)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -27,7 +36,44 @@ public class ContainerLaunchPadRusted extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer player, int par2) { - return null; + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 3) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IDesignatorItem) { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } else if(var3.getItem() == ModItems.launch_code) { + if(!this.mergeItemStack(var5, 1, 2, false)) { + return null; + } + } else if(var3.getItem() == ModItems.launch_key) { + if(!this.mergeItemStack(var5, 2, 3, false)) { + return null; + } + } else { + return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java index 2a4d6d626..a90bd4799 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java @@ -1,14 +1,28 @@ package com.hbm.inventory.gui; -import org.lwjgl.opengl.GL11; +import java.util.Random; +import java.util.function.Consumer; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerLaunchPadRusted; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.render.item.ItemRenderMissileGeneric; import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUILaunchPadRusted extends GuiInfoContainer { @@ -27,6 +41,20 @@ public class GUILaunchPadRusted extends GuiInfoContainer { @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); + drawCustomInfoStat(mouseX, mouseY, guiLeft + 26, guiTop + 36, 16, 16, mouseX, mouseY, EnumChatFormatting.YELLOW + "Release Missile", "Missile is locked in lauch position,", "releasing may cause damage to the missile.", "Damaged missile can not be put back", "into launching position."); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 26 <= x && guiLeft + 26 + 16 > x && guiTop + 36 < y && guiTop + 36 + 16 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("release", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, launchpad.xCoord, launchpad.yCoord, launchpad.zCoord)); + } } @Override @@ -41,30 +69,33 @@ public class GUILaunchPadRusted extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + boolean hasCodes = launchpad.slots[1] != null && launchpad.slots[1].getItem() == ModItems.launch_code; + boolean hasKey = launchpad.slots[2] != null && launchpad.slots[2].getItem() == ModItems.launch_key; + + if(hasCodes) drawTexturedModalRect(guiLeft + 121, guiTop + 32, 192, 0, 6, 8); + if(hasKey) drawTexturedModalRect(guiLeft + 139, guiTop + 32, 192, 0, 6, 8); - /*if(launchpad.slots[0] != null) { - Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(launchpad.slots[0]).makeSingular()); + if(hasCodes && hasKey && launchpad.missileLoaded) { + + Random rand = new Random(launchpad.xCoord * 131_071 + launchpad.zCoord); + int launchCodes = rand.nextInt(100_000_000); + + for(int i = 0; i < 8; i++) { + int magnitude = (int) Math.pow(10, i); + int digit = (launchCodes % (magnitude * 10)) / magnitude; + drawTexturedModalRect(guiLeft + 109 + 6 * i, guiTop + 85, 192 + 6 * digit, 8, 6, 8); + } + } + + if(launchpad.missileLoaded) { + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(ModItems.missile_doomsday_rusted).makeSingular()); if(renderer != null) { GL11.glPushMatrix(); GL11.glTranslatef(guiLeft + 70, guiTop + 120, 100); - double scale = 1D; - - if(launchpad.slots[0].getItem() instanceof ItemMissile) { - ItemMissile missile = (ItemMissile) launchpad.slots[0].getItem(); - switch(missile.formFactor) { - case ABM: scale = 1.45D; break; - case MICRO: scale = 2.5D; break; - case V2: scale = 1.75D; break; - case STRONG: scale = 1.375D; break; - case HUGE: scale = 0.925D; break; - case ATLAS: scale = 0.875D; break; - case OTHER: break; - } - if(missile == ModItems.missile_stealth) scale = 1.125D; - } - + double scale = 0.875D; GL11.glRotatef(90, 0, 1, 0); GL11.glScaled(scale, scale, scale); GL11.glScalef(-8, -8, -8); @@ -79,6 +110,6 @@ public class GUILaunchPadRusted extends GuiInfoContainer { GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glPopMatrix(); } - }*/ + } } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index badd7a22b..4814e8b11 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1327,6 +1327,7 @@ public class ModItems { public static Item missile_nuclear_cluster; public static Item missile_volcano; public static Item missile_doomsday; + public static Item missile_doomsday_rusted; public static Item missile_taint; public static Item missile_micro; public static Item missile_bhole; @@ -3956,6 +3957,7 @@ public class ModItems { missile_nuclear_cluster = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear_cluster"); missile_volcano = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_volcano"); missile_doomsday = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); + missile_doomsday_rusted = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).notLaunchable().setUnlocalizedName("missile_doomsday_rusted").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); missile_taint = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_taint"); missile_micro = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_micro"); missile_bhole = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_bhole").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_bhole"); @@ -6919,6 +6921,7 @@ public class ModItems { GameRegistry.registerItem(missile_nuclear_cluster, missile_nuclear_cluster.getUnlocalizedName()); GameRegistry.registerItem(missile_volcano, missile_volcano.getUnlocalizedName()); GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName()); + GameRegistry.registerItem(missile_doomsday_rusted, missile_doomsday_rusted.getUnlocalizedName()); //Rockets GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemMissile.java b/src/main/java/com/hbm/items/weapon/ItemMissile.java index 74ac62c42..692750516 100644 --- a/src/main/java/com/hbm/items/weapon/ItemMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemMissile.java @@ -14,6 +14,7 @@ public class ItemMissile extends ItemCustomLore { public final MissileTier tier; public final MissileFuel fuel; public int fuelCap; + public boolean launchable = true; public ItemMissile(MissileFormFactor form, MissileTier tier) { this(form, tier, form.defaultFuel); @@ -26,6 +27,11 @@ public class ItemMissile extends ItemCustomLore { this.setFuelCap(this.fuel.defaultCap); } + public ItemMissile notLaunchable() { + this.launchable = false; + return this; + } + public ItemMissile setFuelCap(int fuelCap) { this.fuelCap = fuelCap; return this; @@ -34,9 +40,14 @@ public class ItemMissile extends ItemCustomLore { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { list.add(EnumChatFormatting.ITALIC + this.tier.display); - list.add("Fuel: " + this.fuel.display); - if(this.fuelCap > 0) list.add("Fuel capacity: " + this.fuelCap + "mB"); - super.addInformation(itemstack, player, list, bool); + + if(!this.launchable) { + list.add(EnumChatFormatting.RED + "Not launchable!"); + } else { + list.add("Fuel: " + this.fuel.display); + if(this.fuelCap > 0) list.add("Fuel capacity: " + this.fuelCap + "mB"); + super.addInformation(itemstack, player, list, bool); + } } public enum MissileFormFactor { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 0fac4f2f1..e04fcf3bf 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -326,6 +326,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCore.class, new RenderCore()); //missile blocks ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPad()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPadRusted.class, new RenderLaunchPadRusted()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPadLarge.class, new RenderLaunchPadLarge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMissileAssembly.class, new RenderMissileAssembly()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCompactLauncher.class, new RenderCompactLauncher()); @@ -447,6 +448,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_volcano, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday_rusted, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_carrier, new ItemRenderMissileGeneric(RenderMissileType.TYPE_CARRIER)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_shuttle, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ROBIN)); @@ -712,6 +714,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMissileVolcano.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityMIRV.class, new RenderMirv()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileNuclear()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsdayRusted.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityCarrier.class, new RenderCarrierMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityBooster.class, new RenderBoosterMissile()); RenderingRegistry.registerEntityRenderingHandler(EntitySoyuz.class, new RenderSoyuz()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 8559cc901..c021fe722 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1126,6 +1126,14 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_cooler, 1), new Object[] { "IGI", "GCG", "IGI", 'C', ModBlocks.rbmk_blank, 'I', ModItems.plate_polymer, 'G', ModBlocks.steel_grate }); } + addShapelessAuto(new ItemStack(ModItems.launch_code), new Object[] { + new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), + new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), + new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), + new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), + new ItemStack(ModItems.circuit_aluminium) + }); + addShapelessAuto(ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CHIPSET), new Object[] { ModItems.circuit_star_piece.stackFromEnum(ScrapType.BRIDGE_BIOS), ModItems.circuit_star_piece.stackFromEnum(ScrapType.BRIDGE_BUS), diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 4f472a6d3..ebbfc9671 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -325,6 +325,7 @@ public class ModEventHandler { if(event.entityLiving instanceof IMob) { if(event.entityLiving.getRNG().nextInt(1000) == 0) event.entityLiving.dropItem(ModItems.heart_piece, 1); if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.key_red_cracked, 1); + if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.launch_code_piece, 1); } if(event.entityLiving instanceof EntityCyberCrab && event.entityLiving.getRNG().nextInt(500) == 0) { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 87085aba0..f02a8f479 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1230,6 +1230,7 @@ public class ResourceManager { public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_thermo.png"); public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_tectonic.png"); public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_doomsday.png"); + public static final ResourceLocation missileDoomsdayRusted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_doomsday_weathered.png"); public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_taint.png"); public static final ResourceLocation missileShuttle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileShuttle.png"); public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro.png"); @@ -1296,6 +1297,7 @@ public class ResourceManager { //Missile Parts public static final ResourceLocation missile_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/silo.png"); + public static final ResourceLocation missile_pad_rusted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/silo_rusted.png"); public static final ResourceLocation missile_erector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/pad.png"); public static final ResourceLocation missile_erector_micro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_micro.png"); public static final ResourceLocation missile_erector_v2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_v2.png"); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java index 8a8adc589..51abf8cd7 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java @@ -3,10 +3,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; import com.hbm.entity.missile.EntityMissileBaseNT; -import com.hbm.entity.missile.EntityMissileDoomsday; -import com.hbm.entity.missile.EntityMissileTier4.EntityMissileMirv; -import com.hbm.entity.missile.EntityMissileTier4.EntityMissileNuclear; -import com.hbm.entity.missile.EntityMissileTier4.EntityMissileVolcano; +import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -36,6 +33,7 @@ public class RenderMissileNuclear extends Render { if(entity instanceof EntityMissileNuclear) bindTexture(ResourceManager.missileNuclear_tex); if(entity instanceof EntityMissileMirv) bindTexture(ResourceManager.missileMIRV_tex); if(entity instanceof EntityMissileDoomsday) bindTexture(ResourceManager.missileDoomsday_tex); + if(entity instanceof EntityMissileDoomsdayRusted) bindTexture(ResourceManager.missileDoomsdayRusted_tex); if(entity instanceof EntityMissileVolcano) bindTexture(ResourceManager.missileVolcano_tex); GL11.glShadeModel(GL11.GL_SMOOTH); diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java index d38d09a86..08bbe24d0 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -165,6 +165,7 @@ public class ItemRenderMissileGeneric implements IItemRenderer { renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateStandard(ResourceManager.missileMIRV_tex, ResourceManager.missileNuclear)); renderers.put(new ComparableStack(ModItems.missile_volcano), generateStandard(ResourceManager.missileVolcano_tex, ResourceManager.missileNuclear)); renderers.put(new ComparableStack(ModItems.missile_doomsday), generateStandard(ResourceManager.missileDoomsday_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_doomsday_rusted), generateStandard(ResourceManager.missileDoomsdayRusted_tex, ResourceManager.missileNuclear)); renderers.put(new ComparableStack(ModItems.missile_carrier), x -> { GL11.glScalef(2F, 2F, 2F); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadRusted.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadRusted.java new file mode 100644 index 000000000..3b0dec424 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadRusted.java @@ -0,0 +1,72 @@ +package com.hbm.render.tileentity; + +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.item.ItemRenderMissileGeneric; +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; + +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderLaunchPadRusted extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + bindTexture(ResourceManager.missile_pad_rusted_tex); + ResourceManager.missile_pad.renderAll(); + + if(tileEntity instanceof TileEntityLaunchPadRusted) { + TileEntityLaunchPadRusted launchpad = (TileEntityLaunchPadRusted) tileEntity; + if(launchpad.missileLoaded) { + GL11.glTranslated(0, 1, 0); + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(ModItems.missile_doomsday_rusted).makeSingular()); + if(renderer != null) renderer.accept(this.field_147501_a.field_147553_e); + } + } + + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.launch_pad_rusted); + } + + @Override + public IItemRenderer getRenderer() { + + return new ItemRenderBase() { + @Override public void renderInventory() { + GL11.glTranslated(0, -1, 0); + GL11.glScaled(3, 3, 3); + } + @Override public void renderCommon() { + bindTexture(ResourceManager.missile_pad_rusted_tex); ResourceManager.missile_pad.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index ece9edd78..6ca6430d1 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -73,6 +73,7 @@ public class TileMappings { put(TileEntityRedBarrel.class, "tileentity_barrel"); put(TileEntityYellowBarrel.class, "tileentity_nukebarrel"); put(TileEntityLaunchPad.class, "tileentity_launch1"); + put(TileEntityLaunchPadRusted.class, "tileentity_launchpad_rusted"); put(TileEntityLaunchPadLarge.class, "tileentity_launchpad_large"); put(TileEntityDecoBlock.class, "tileentity_deco"); put(TileEntityDecoBlockAltW.class, "tileentity_deco_w"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index 81b2573c8..5fc986444 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -85,8 +85,8 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class); missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class); missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class); - missiles.put(new ComparableStack(ModItems.missile_doomsday), EntityMissileDoomsday.class); + missiles.put(new ComparableStack(ModItems.missile_stealth), EntityMissileStealth.class); } @@ -307,7 +307,7 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl } public boolean isMissileValid(ItemStack stack) { - return stack.getItem() instanceof ItemMissile; + return stack.getItem() instanceof ItemMissile && ((ItemMissile) stack.getItem()).launchable; } public boolean hasFuel() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java index ae6320306..c5c5db0bd 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java @@ -1,25 +1,37 @@ package com.hbm.tileentity.bomb; import java.util.HashSet; +import java.util.List; import java.util.Set; +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileTier4.EntityMissileDoomsdayRusted; import com.hbm.interfaces.IBomb.BombReturnCode; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerLaunchPadRusted; import com.hbm.inventory.gui.GUILaunchPadRusted; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.TrackerUtil; import com.hbm.util.fauxpointtwelve.BlockPos; +import api.hbm.item.IDesignatorItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { public int prevRedstonePower; public int redstonePower; @@ -28,7 +40,7 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements public boolean missileLoaded; public TileEntityLaunchPadRusted() { - super(3); + super(4); } @Override @@ -39,15 +51,77 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements @Override public void updateEntity() { + if(!worldObj.isRemote) { + + if(this.redstonePower > 0 && this.prevRedstonePower <= 0) { + this.launch(); + } + + this.prevRedstonePower = this.redstonePower; + this.networkPackNT(250); + } else { + + List entities = worldObj.getEntitiesWithinAABB(EntityMissileBaseNT.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); + + if(!entities.isEmpty()) { + for(int i = 0; i < 15; i++) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + if(worldObj.rand.nextBoolean()) dir = dir.getOpposite(); + if(worldObj.rand.nextBoolean()) dir = dir.getRotation(ForgeDirection.UP); + float moX = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetX; + float moZ = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetZ; + + MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] {moX, 0, moZ}); + } + } + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(this.missileLoaded); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.missileLoaded = buf.readBoolean(); } public BombReturnCode launch() { - return BombReturnCode.UNDEFINED; + + if(slots[1] != null && slots[2] != null && slots[3] != null && this.missileLoaded) { + if(slots[1].getItem() == ModItems.launch_code && slots[2].getItem() == ModItems.launch_key) { + if(slots[3] != null && slots[3].getItem() instanceof IDesignatorItem) { + IDesignatorItem designator = (IDesignatorItem) slots[3].getItem(); + + if(!designator.isReady(worldObj, slots[3], xCoord, yCoord, zCoord)) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Vec3 coords = designator.getCoords(worldObj, slots[3], xCoord, yCoord, zCoord); + int targetX = (int) Math.floor(coords.xCoord); + int targetZ = (int) Math.floor(coords.zCoord); + + EntityMissileDoomsdayRusted missile = new EntityMissileDoomsdayRusted(worldObj, xCoord + 0.5F, yCoord + 1F, zCoord + 0.5F, targetX, targetZ); + worldObj.spawnEntityInWorld(missile); + TrackerUtil.setTrackingRange(worldObj, missile, 500); + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); + this.missileLoaded = false; + this.decrStackSize(1, 1); + this.markDirty(); + } + } + } + + return BombReturnCode.ERROR_MISSING_COMPONENT; } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); + + this.missileLoaded = nbt.getBoolean("missileLoaded"); this.redstonePower = nbt.getInteger("redstonePower"); this.prevRedstonePower = nbt.getInteger("prevRedstonePower"); @@ -61,6 +135,8 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); + + nbt.setBoolean("missileLoaded", missileLoaded); nbt.setInteger("redstonePower", redstonePower); nbt.setInteger("prevRedstonePower", prevRedstonePower); @@ -129,4 +205,20 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUILaunchPadRusted(player.inventory, this); } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("release")) { + if(this.missileLoaded && slots[0] == null) { + this.missileLoaded = false; + slots[0] = new ItemStack(ModItems.missile_doomsday_rusted); + this.markDirty(); + } + } + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 870e4e4bc..fafa793a2 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -347,6 +347,7 @@ container.hydrotreater=Hydrotreater container.iGenerator=Industrieller Generator container.keyForge=Schlossertisch container.launchPad=Startrampe +container.launchPadRusted=Startrampe container.launchTable=Große Startrampe container.leadBox=Sicherheitsbehälter container.machineArcWelder=Lichtbogenschweißer @@ -2245,6 +2246,9 @@ item.laser_crystal_co2.name=CO2-Desh-Laserkristall item.laser_crystal_digamma.name=Digamma-Laserkristall item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Superkristall item.laser_crystal_dnt.name=Spark-Laserkristall +item.launch_code.name=Silo-Startcode +item.launch_code_piece.name=Silo-Startcodestück +item.launch_key.name=Silo-Startschlüssel item.lead_gavel.name=Bleierner Richterhammer item.lemon.name="Zitrone" item.letter.name=Eilbrief diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 8856440c5..52fe31da3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -706,6 +706,7 @@ container.hydrotreater=Hydrotreater container.iGenerator=Industrial Generator container.keyForge=Locksmith Table container.launchPad=Launch Pad +container.launchPadRusted=Launch Pad container.launchTable=Large Launch Pad container.leadBox=Containment Box container.machineArcWelder=Arc Welder @@ -2996,6 +2997,9 @@ item.laser_crystal_co2.name=CO2-Desh Laser Crystal item.laser_crystal_digamma.name=Digamma Laser Crystal item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal item.laser_crystal_dnt.name=Spark Laser Crystal +item.launch_code.name=Silo Launch Code +item.launch_code_piece.name=Silo Launch Code Piece +item.launch_key.name=Silo Launch Key item.lead_gavel.name=Leaden Gavel item.lemon.name="Lemon" item.letter.name=Express Mail diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_rusted.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_rusted.png index 97741eba5fb2e93c56ffa1936a2d1f8ba08df978..a08cd9b975228cc97dec34e56aeea3762f043546 100644 GIT binary patch literal 4836 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 M(Okd$f@|!*0nHTHoB#j- literal 4844 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 OB#iXUv1PjMzyAv&-0m&_ diff --git a/src/main/resources/assets/hbm/textures/items/launch_code.png b/src/main/resources/assets/hbm/textures/items/launch_code.png index ef5db0f4723427ecdb93cc27cf20dd45cbdbc857..a6dad0a9ef2dc904b80d80839a0de742bcebfcfc 100644 GIT binary patch delta 277 zcmV+w0qXvu0>A>0G=KL=L_t(IjqQ=KN&`UUTRQ-h&eDid zIt#%5>oWkyqbhN0IefQwM&S&lvn{w0r4a>S+#hg#*b9-{h<^_+fs@Buyabwc{c{4X z4M+DkXf}8XD4fAdKtBxA%^3jGS=+b8V<-^u%K;I#-N5PFJGQ&1RXo-e$who?acKt; z&Rxahe&M<^N3+gL0Z-qbjQax&@RfCr;|{Bd0eHE*pzh35KQMD b7Wx5;I)9Lbf)1#@00000NkvXXu0mjf(dvP? delta 246 zcmV@7QPAG%W4u;QfYQSJpj6$HkrujcG>_8 z&wBuV*NNpCF1#JjEa<|S$jL+wz;--iHHj+2h3*EU%@V?le)nRk Date: Mon, 4 Mar 2024 22:09:23 +0100 Subject: [PATCH 242/376] some vague bullshit about hopeville --- .../java/com/hbm/lib/HbmChestContents.java | 693 +++++++++--------- src/main/java/com/hbm/lib/HbmWorldGen.java | 4 +- .../world/gen/component/SiloComponent.java | 35 +- 3 files changed, 380 insertions(+), 352 deletions(-) diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 5eabd2be5..a02652a9f 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -21,397 +21,400 @@ import net.minecraft.util.WeightedRandomChestContent; public class HbmChestContents { public static WeightedRandomChestContent[] modGeneric = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(Items.bread, 0, 1, 5, 8), - new WeightedRandomChestContent(ModItems.twinkie, 0, 1, 3, 6), - new WeightedRandomChestContent(Items.iron_ingot, 0, 2, 6, 10), - new WeightedRandomChestContent(ModItems.ingot_steel, 0, 2, 5, 7), - new WeightedRandomChestContent(ModItems.ingot_beryllium, 0, 1, 2, 4), - new WeightedRandomChestContent(ModItems.ingot_titanium, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.circuit_targeting_tier1, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.gun_revolver, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), - new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.gun_lever_action, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_20gauge, 0, 2, 6, 3), - new WeightedRandomChestContent(ModItems.casing_9, 0, 4, 10, 3), - new WeightedRandomChestContent(ModItems.casing_50, 0, 4, 10, 3), - new WeightedRandomChestContent(ModItems.cordite, 0, 4, 6, 5), - new WeightedRandomChestContent(ModItems.battery_generic, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.scrap, 0, 1, 3, 10), - new WeightedRandomChestContent(ModItems.dust, 0, 2, 4, 9), - new WeightedRandomChestContent(ModItems.bottle_opener, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.bottle_cherry, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.cap_nuka, 0, 1, 15, 7), - new WeightedRandomChestContent(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), - new WeightedRandomChestContent(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 3) }; + weighted(Items.bread, 0, 1, 5, 8), + weighted(ModItems.twinkie, 0, 1, 3, 6), + weighted(Items.iron_ingot, 0, 2, 6, 10), + weighted(ModItems.ingot_steel, 0, 2, 5, 7), + weighted(ModItems.ingot_beryllium, 0, 1, 2, 4), + weighted(ModItems.ingot_titanium, 0, 1, 1, 3), + weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 5), + weighted(ModItems.gun_revolver, 0, 1, 1, 3), + weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), + weighted(ModItems.gun_kit_1, 0, 1, 3, 4), + weighted(ModItems.gun_lever_action, 0, 1, 1, 1), + weighted(ModItems.ammo_20gauge, 0, 2, 6, 3), + weighted(ModItems.casing_9, 0, 4, 10, 3), + weighted(ModItems.casing_50, 0, 4, 10, 3), + weighted(ModItems.cordite, 0, 4, 6, 5), + weighted(ModItems.battery_generic, 0, 1, 1, 4), + weighted(ModItems.battery_advanced, 0, 1, 1, 2), + weighted(ModItems.scrap, 0, 1, 3, 10), + weighted(ModItems.dust, 0, 2, 4, 9), + weighted(ModItems.bottle_opener, 0, 1, 1, 2), + weighted(ModItems.bottle_nuka, 0, 1, 3, 4), + weighted(ModItems.bottle_cherry, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 1), + weighted(ModItems.cap_nuka, 0, 1, 15, 7), + weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), + weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 3) }; public static WeightedRandomChestContent[] machineParts = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.plate_steel, 0, 1, 5, 5), - new WeightedRandomChestContent(ModItems.hull_big_steel, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.hull_small_steel, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.plate_polymer, 0, 1, 6, 5), - new WeightedRandomChestContent(ModItems.bolt, Mats.MAT_STEEL.id, 4, 16, 3), - new WeightedRandomChestContent(ModItems.bolt, Mats.MAT_TUNGSTEN.id, 4, 16, 3), - new WeightedRandomChestContent(ModItems.board_copper, 0, 1, 2, 4), - new WeightedRandomChestContent(ModItems.coil_tungsten, 0, 1, 2, 5), - new WeightedRandomChestContent(ModItems.motor, 0, 1, 2, 4), - new WeightedRandomChestContent(ModItems.tank_steel, 0, 1, 2, 3), - new WeightedRandomChestContent(ModItems.coil_copper, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.coil_copper_torus, 0, 1, 2, 3), - new WeightedRandomChestContent(ModItems.wire_red_copper, 0, 1, 8, 5), - new WeightedRandomChestContent(ModItems.piston_selenium, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.battery_advanced_cell, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.circuit_raw, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.circuit_aluminium, 0, 1, 2, 4), - new WeightedRandomChestContent(ModItems.circuit_copper, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.blade_titanium, 0, 1, 8, 1) + weighted(ModItems.plate_steel, 0, 1, 5, 5), + weighted(ModItems.hull_big_steel, 0, 1, 2, 2), + weighted(ModItems.hull_small_steel, 0, 1, 3, 3), + weighted(ModItems.plate_polymer, 0, 1, 6, 5), + weighted(ModItems.bolt, Mats.MAT_STEEL.id, 4, 16, 3), + weighted(ModItems.bolt, Mats.MAT_TUNGSTEN.id, 4, 16, 3), + weighted(ModItems.board_copper, 0, 1, 2, 4), + weighted(ModItems.coil_tungsten, 0, 1, 2, 5), + weighted(ModItems.motor, 0, 1, 2, 4), + weighted(ModItems.tank_steel, 0, 1, 2, 3), + weighted(ModItems.coil_copper, 0, 1, 3, 4), + weighted(ModItems.coil_copper_torus, 0, 1, 2, 3), + weighted(ModItems.wire_red_copper, 0, 1, 8, 5), + weighted(ModItems.piston_selenium, 0, 1, 1, 3), + weighted(ModItems.battery_advanced_cell, 0, 1, 1, 3), + weighted(ModItems.circuit_raw, 0, 1, 3, 5), + weighted(ModItems.circuit_aluminium, 0, 1, 2, 4), + weighted(ModItems.circuit_copper, 0, 1, 1, 3), + weighted(ModItems.circuit_red_copper, 0, 1, 1, 2), + weighted(ModItems.blade_titanium, 0, 1, 8, 1) }; public static WeightedRandomChestContent[] antenna = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.twinkie, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.ingot_steel, 0, 1, 2, 7), - new WeightedRandomChestContent(ModItems.ingot_red_copper, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.ingot_titanium, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.wire_red_copper, 0, 2, 3, 7), - new WeightedRandomChestContent(ModItems.circuit_targeting_tier1, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.circuit_copper, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.battery_generic, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.powder_iodine, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_bromine, 0, 1, 1, 1), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.steel_poles), 0, 1, 4, 8), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.steel_scaffold), 0, 1, 3, 8), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.pole_top), 0, 1, 1, 4), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.pole_satellite_receiver), 0, 1, 1, 7), - new WeightedRandomChestContent(ModItems.scrap, 0, 1, 3, 10), - new WeightedRandomChestContent(ModItems.dust, 0, 2, 4, 9), - new WeightedRandomChestContent(ModItems.bottle_opener, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.bottle_cherry, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.cap_nuka, 0, 1, 15, 7), - new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 2) }; + weighted(ModItems.twinkie, 0, 1, 3, 4), + weighted(ModItems.ingot_steel, 0, 1, 2, 7), + weighted(ModItems.ingot_red_copper, 0, 1, 1, 4), + weighted(ModItems.ingot_titanium, 0, 1, 3, 5), + weighted(ModItems.wire_red_copper, 0, 2, 3, 7), + weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 4), + weighted(ModItems.circuit_copper, 0, 1, 1, 4), + weighted(ModItems.battery_generic, 0, 1, 1, 4), + weighted(ModItems.battery_advanced, 0, 1, 1, 3), + weighted(ModItems.powder_iodine, 0, 1, 1, 1), + weighted(ModItems.powder_bromine, 0, 1, 1, 1), + weighted(Item.getItemFromBlock(ModBlocks.steel_poles), 0, 1, 4, 8), + weighted(Item.getItemFromBlock(ModBlocks.steel_scaffold), 0, 1, 3, 8), + weighted(Item.getItemFromBlock(ModBlocks.pole_top), 0, 1, 1, 4), + weighted(Item.getItemFromBlock(ModBlocks.pole_satellite_receiver), 0, 1, 1, 7), + weighted(ModItems.scrap, 0, 1, 3, 10), + weighted(ModItems.dust, 0, 2, 4, 9), + weighted(ModItems.bottle_opener, 0, 1, 1, 2), + weighted(ModItems.bottle_nuka, 0, 1, 3, 4), + weighted(ModItems.bottle_cherry, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 1), + weighted(ModItems.cap_nuka, 0, 1, 15, 7), + weighted(ModItems.bomb_caller, 0, 1, 1, 1), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 2) }; public static WeightedRandomChestContent[] expensive = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.chlorine_pinwheel, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.circuit_targeting_tier3, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.circuit_gold, 0, 1, 2, 3), - new WeightedRandomChestContent(ModItems.circuit_targeting_tier4, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 1, 3, 6), - new WeightedRandomChestContent(ModItems.gun_kit_2, 0, 1, 2, 3), - new WeightedRandomChestContent(ModItems.gun_rpg, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.ammo_rocket, 0, 1, 4, 5), - new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.LOW.ordinal(), 1, 2, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 2, 1), - new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.grenade_smart, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.grenade_mirv, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.battery_advanced_cell, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.battery_schrabidium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.syringe_awesome, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.crate_caller, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.fusion_core, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 6), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 3), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_barrel), 0, 1, 1, 6), - new WeightedRandomChestContent(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), - new WeightedRandomChestContent(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 5), - new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.bomb_caller, 1, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bomb_caller, 2, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.journal_pip, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.journal_bj, 0, 1, 1, 1) }; + weighted(ModItems.chlorine_pinwheel, 0, 1, 1, 1), + weighted(ModItems.circuit_targeting_tier3, 0, 1, 1, 4), + weighted(ModItems.circuit_gold, 0, 1, 2, 3), + weighted(ModItems.circuit_targeting_tier4, 0, 1, 1, 2), + weighted(ModItems.gun_kit_1, 0, 1, 3, 6), + weighted(ModItems.gun_kit_2, 0, 1, 2, 3), + weighted(ModItems.gun_rpg, 0, 1, 1, 4), + weighted(ModItems.ammo_rocket, 0, 1, 4, 5), + weighted(ModItems.gun_fatman, 0, 1, 1, 1), + weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), + weighted(ModItems.ammo_nuke, AmmoFatman.LOW.ordinal(), 1, 2, 1), + weighted(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 2, 1), + weighted(ModItems.grenade_nuclear, 0, 1, 1, 2), + weighted(ModItems.grenade_smart, 0, 1, 3, 3), + weighted(ModItems.grenade_mirv, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 2), + weighted(ModItems.battery_advanced, 0, 1, 1, 3), + weighted(ModItems.battery_advanced_cell, 0, 1, 1, 2), + weighted(ModItems.battery_schrabidium, 0, 1, 1, 1), + weighted(ModItems.syringe_awesome, 0, 1, 1, 1), + weighted(ModItems.crate_caller, 0, 1, 1, 3), + weighted(ModItems.fusion_core, 0, 1, 1, 4), + weighted(ModItems.bottle_nuka, 0, 1, 3, 6), + weighted(ModItems.bottle_quantum, 0, 1, 1, 3), + weighted(Item.getItemFromBlock(ModBlocks.red_barrel), 0, 1, 1, 6), + weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), + weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), + weighted(ModItems.bomb_caller, 0, 1, 1, 2), + weighted(ModItems.bomb_caller, 1, 1, 1, 1), + weighted(ModItems.bomb_caller, 2, 1, 1, 1), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), + weighted(ModItems.journal_pip, 0, 1, 1, 1), + weighted(ModItems.journal_bj, 0, 1, 1, 1) }; public static WeightedRandomChestContent[] nukeTrash = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.nugget_u238, 0, 3, 12, 5), - new WeightedRandomChestContent(ModItems.nugget_pu240, 0, 3, 8, 5), - new WeightedRandomChestContent(ModItems.nugget_neptunium, 0, 1, 4, 3), - new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U238.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.U238.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.U238.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 5), - new WeightedRandomChestContent(ModItems.hazmat_kit, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.yellow_barrel), 0, 1, 1, 2) }; + weighted(ModItems.nugget_u238, 0, 3, 12, 5), + weighted(ModItems.nugget_pu240, 0, 3, 8, 5), + weighted(ModItems.nugget_neptunium, 0, 1, 4, 3), + weighted(ModItems.rod, BreedingRodType.U238.ordinal(), 1, 1, 3), + weighted(ModItems.rod_dual, BreedingRodType.U238.ordinal(), 1, 1, 3), + weighted(ModItems.rod_quad, BreedingRodType.U238.ordinal(), 1, 1, 3), + weighted(ModItems.bottle_quantum, 0, 1, 1, 1), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), + weighted(ModItems.hazmat_kit, 0, 1, 1, 1), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), + weighted(Item.getItemFromBlock(ModBlocks.yellow_barrel), 0, 1, 1, 2) }; public static WeightedRandomChestContent[] nuclearFuel = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.billet_uranium, 0, 1, 4, 4), - new WeightedRandomChestContent(ModItems.billet_th232, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.billet_uranium_fuel, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.billet_mox_fuel, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.billet_thorium_fuel, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.billet_ra226be, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.billet_beryllium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.nugget_u233, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.nugget_uranium_fuel, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.rod_zirnox_empty, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.ingot_graphite, 0, 1, 4, 3), - new WeightedRandomChestContent(ModItems.pile_rod_uranium, 0, 2, 5, 3), - new WeightedRandomChestContent(ModItems.pile_rod_source, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.reacher, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.screwdriver, 0, 1, 1, 2), + weighted(ModItems.billet_uranium, 0, 1, 4, 4), + weighted(ModItems.billet_th232, 0, 1, 3, 3), + weighted(ModItems.billet_uranium_fuel, 0, 1, 3, 5), + weighted(ModItems.billet_mox_fuel, 0, 1, 3, 5), + weighted(ModItems.billet_thorium_fuel, 0, 1, 3, 3), + weighted(ModItems.billet_ra226be, 0, 1, 2, 2), + weighted(ModItems.billet_beryllium, 0, 1, 1, 1), + weighted(ModItems.nugget_u233, 0, 1, 1, 1), + weighted(ModItems.nugget_uranium_fuel, 0, 1, 1, 1), + weighted(ModItems.rod_zirnox_empty, 0, 1, 3, 3), + weighted(ModItems.ingot_graphite, 0, 1, 4, 3), + weighted(ModItems.pile_rod_uranium, 0, 2, 5, 3), + weighted(ModItems.pile_rod_source, 0, 1, 2, 2), + weighted(ModItems.reacher, 0, 1, 1, 3), + weighted(ModItems.screwdriver, 0, 1, 1, 2), }; public static WeightedRandomChestContent[] nuclear = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.nugget_u235, 0, 3, 12, 5), - new WeightedRandomChestContent(ModItems.nugget_pu238, 0, 3, 12, 5), - new WeightedRandomChestContent(ModItems.nugget_ra226, 0, 3, 6, 5), - new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.U235.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.U235.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), 1, 1, 4), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), 1, 1, 4), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.THF.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_zirnox_tritium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.U233_FUEL.ordinal(), 1, 1, 1), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.U235_FUEL.ordinal(), 1, 1, 1), - new WeightedRandomChestContent(ModItems.pellet_rtg, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.powder_thorium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_neptunium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_strontium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_cobalt, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 5), - new WeightedRandomChestContent(ModItems.hazmat_kit, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.yellow_barrel), 0, 1, 3, 3) }; + weighted(ModItems.nugget_u235, 0, 3, 12, 5), + weighted(ModItems.nugget_pu238, 0, 3, 12, 5), + weighted(ModItems.nugget_ra226, 0, 3, 6, 5), + weighted(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 3), + weighted(ModItems.rod_dual, BreedingRodType.U235.ordinal(), 1, 1, 3), + weighted(ModItems.rod_quad, BreedingRodType.U235.ordinal(), 1, 1, 3), + weighted(ModItems.rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), 1, 1, 4), + weighted(ModItems.rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), 1, 1, 4), + weighted(ModItems.rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 1, 1, 3), + weighted(ModItems.rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), 1, 1, 3), + weighted(ModItems.rod_dual, BreedingRodType.THF.ordinal(), 1, 1, 3), + weighted(ModItems.rod_zirnox_tritium, 0, 1, 1, 1), + weighted(ModItems.rod_zirnox, EnumZirnoxType.U233_FUEL.ordinal(), 1, 1, 1), + weighted(ModItems.rod_zirnox, EnumZirnoxType.U235_FUEL.ordinal(), 1, 1, 1), + weighted(ModItems.pellet_rtg, 0, 1, 1, 3), + weighted(ModItems.powder_thorium, 0, 1, 1, 1), + weighted(ModItems.powder_neptunium, 0, 1, 1, 1), + weighted(ModItems.powder_strontium, 0, 1, 1, 1), + weighted(ModItems.powder_cobalt, 0, 1, 1, 1), + weighted(ModItems.bottle_quantum, 0, 1, 1, 1), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), + weighted(ModItems.hazmat_kit, 0, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), + weighted(Item.getItemFromBlock(ModBlocks.yellow_barrel), 0, 1, 3, 3) }; public static WeightedRandomChestContent[] vertibird = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.t45_helmet, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.t45_plate, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.t45_legs, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.t45_boots, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.t45_kit, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.fusion_core, 0, 1, 1, 10), - new WeightedRandomChestContent(ModItems.gun_revolver, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 1, 24, 4), - new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 2, 3, 4), - new WeightedRandomChestContent(ModItems.gun_rpg, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.ammo_rocket, 0, 1, 6, 3), - new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 2), - new WeightedRandomChestContent(ModItems.billet_uranium_fuel, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.ingot_uranium_fuel, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), - new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 6), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 7), - new WeightedRandomChestContent(ModItems.crate_caller, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bomb_caller, 1, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bomb_caller, 2, 1, 1, 2) }; + weighted(ModItems.t45_helmet, 0, 1, 1, 15), + weighted(ModItems.t45_plate, 0, 1, 1, 15), + weighted(ModItems.t45_legs, 0, 1, 1, 15), + weighted(ModItems.t45_boots, 0, 1, 1, 15), + weighted(ModItems.t45_kit, 0, 1, 1, 3), + weighted(ModItems.fusion_core, 0, 1, 1, 10), + weighted(ModItems.gun_revolver, 0, 1, 1, 4), + weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 1, 24, 4), + weighted(ModItems.gun_kit_1, 0, 2, 3, 4), + weighted(ModItems.gun_rpg, 0, 1, 1, 3), + weighted(ModItems.ammo_rocket, 0, 1, 6, 3), + weighted(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 2), + weighted(ModItems.billet_uranium_fuel, 0, 1, 1, 2), + weighted(ModItems.ingot_uranium_fuel, 0, 1, 1, 2), + weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), + weighted(ModItems.gun_fatman, 0, 1, 1, 1), + weighted(ModItems.bottle_nuka, 0, 1, 3, 6), + weighted(ModItems.bottle_quantum, 0, 1, 1, 3), + weighted(ModItems.stealth_boy, 0, 1, 1, 7), + weighted(ModItems.crate_caller, 0, 1, 1, 3), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), + weighted(ModItems.grenade_nuclear, 0, 1, 2, 2), + weighted(ModItems.bomb_caller, 0, 1, 1, 1), + weighted(ModItems.bomb_caller, 1, 1, 1, 1), + weighted(ModItems.bomb_caller, 2, 1, 1, 2) }; public static WeightedRandomChestContent[] missile = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.missile_generic, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.missile_incendiary, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.designator, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.crate_caller, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.thruster_small, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.thruster_medium, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.fuel_tank_small, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.fuel_tank_medium, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bomb_caller, 3, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 10) }; + weighted(ModItems.missile_generic, 0, 1, 1, 4), + weighted(ModItems.missile_incendiary, 0, 1, 1, 4), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), + weighted(ModItems.battery_advanced, 0, 1, 1, 5), + weighted(ModItems.designator, 0, 1, 1, 5), + weighted(ModItems.crate_caller, 0, 1, 1, 1), + weighted(ModItems.thruster_small, 0, 1, 1, 5), + weighted(ModItems.thruster_medium, 0, 1, 1, 4), + weighted(ModItems.fuel_tank_small, 0, 1, 1, 5), + weighted(ModItems.fuel_tank_medium, 0, 1, 1, 4), + weighted(ModItems.bomb_caller, 0, 1, 1, 1), + weighted(ModItems.bomb_caller, 3, 1, 1, 1), + weighted(ModItems.bottle_nuka, 0, 1, 3, 10) }; public static WeightedRandomChestContent[] spaceship = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.ingot_advanced_alloy, 0, 2, 16, 5), - new WeightedRandomChestContent(ModItems.wire_advanced_alloy, 0, 8, 32, 5), - new WeightedRandomChestContent(ModItems.coil_advanced_alloy, 0, 2, 16, 5), - new WeightedRandomChestContent(ModItems.cell_deuterium, 0, 1, 8, 5), - new WeightedRandomChestContent(ModItems.cell_tritium, 0, 1, 8, 5), - new WeightedRandomChestContent(ModItems.cell_antimatter, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_neodymium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_niobium, 0, 1, 1, 1), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.fusion_conductor), 0, 2, 4, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.fusion_heater), 0, 1, 3, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.pwr_fuel), 0, 1, 2, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.block_tungsten), 0, 3, 8, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_wire_coated), 0, 4, 8, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_cable), 0, 8, 16, 5) }; + weighted(ModItems.battery_advanced, 0, 1, 1, 5), + weighted(ModItems.ingot_advanced_alloy, 0, 2, 16, 5), + weighted(ModItems.wire_advanced_alloy, 0, 8, 32, 5), + weighted(ModItems.coil_advanced_alloy, 0, 2, 16, 5), + weighted(ModItems.cell_deuterium, 0, 1, 8, 5), + weighted(ModItems.cell_tritium, 0, 1, 8, 5), + weighted(ModItems.cell_antimatter, 0, 1, 1, 1), + weighted(ModItems.powder_neodymium, 0, 1, 1, 1), + weighted(ModItems.powder_niobium, 0, 1, 1, 1), + weighted(Item.getItemFromBlock(ModBlocks.fusion_conductor), 0, 2, 4, 5), + weighted(Item.getItemFromBlock(ModBlocks.fusion_heater), 0, 1, 3, 5), + weighted(Item.getItemFromBlock(ModBlocks.pwr_fuel), 0, 1, 2, 5), + weighted(Item.getItemFromBlock(ModBlocks.block_tungsten), 0, 3, 8, 5), + weighted(Item.getItemFromBlock(ModBlocks.red_wire_coated), 0, 4, 8, 5), + weighted(Item.getItemFromBlock(ModBlocks.red_cable), 0, 8, 16, 5) }; public static WeightedRandomChestContent[] powder = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.powder_neptunium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_iodine, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_thorium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_astatine, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_neodymium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_caesium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_strontium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_cobalt, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_bromine, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_niobium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_tennessine, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_cerium, 0, 1, 32, 1) }; + weighted(ModItems.powder_neptunium, 0, 1, 32, 1), + weighted(ModItems.powder_iodine, 0, 1, 32, 1), + weighted(ModItems.powder_thorium, 0, 1, 32, 1), + weighted(ModItems.powder_astatine, 0, 1, 32, 1), + weighted(ModItems.powder_neodymium, 0, 1, 32, 1), + weighted(ModItems.powder_caesium, 0, 1, 32, 1), + weighted(ModItems.powder_strontium, 0, 1, 32, 1), + weighted(ModItems.powder_cobalt, 0, 1, 32, 1), + weighted(ModItems.powder_bromine, 0, 1, 32, 1), + weighted(ModItems.powder_niobium, 0, 1, 32, 1), + weighted(ModItems.powder_tennessine, 0, 1, 32, 1), + weighted(ModItems.powder_cerium, 0, 1, 32, 1) }; public static WeightedRandomChestContent[] vault1 = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(Items.gold_ingot, 0, 3, 14, 1), - new WeightedRandomChestContent(ModItems.gun_uac_pistol, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.pin, 0, 8, 8, 1), - new WeightedRandomChestContent(ModItems.gun_calamity, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 3, 1), - new WeightedRandomChestContent(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), - new WeightedRandomChestContent(ModItems.ammo_50bmg, 0, 24, 48, 1), - new WeightedRandomChestContent(ModItems.ammo_45, 0, 48, 64, 2), - new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 6, 12, 1), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.grenade_if_he, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.grenade_if_incendiary, 0, 1, 1, 1), - new WeightedRandomChestContent(Items.diamond, 0, 1, 2, 1) }; + weighted(Items.gold_ingot, 0, 3, 14, 1), + weighted(ModItems.gun_uac_pistol, 0, 1, 1, 2), + weighted(ModItems.pin, 0, 8, 8, 1), + weighted(ModItems.gun_calamity, 0, 1, 1, 1), + weighted(ModItems.bottle_quantum, 0, 1, 3, 1), + weighted(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), + weighted(ModItems.ammo_50bmg, 0, 24, 48, 1), + weighted(ModItems.ammo_45, 0, 48, 64, 2), + weighted(ModItems.circuit_red_copper, 0, 6, 12, 1), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 1), + weighted(ModItems.grenade_if_he, 0, 1, 1, 1), + weighted(ModItems.grenade_if_incendiary, 0, 1, 1, 1), + weighted(Items.diamond, 0, 1, 2, 1) }; public static WeightedRandomChestContent[] vault2 = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.ingot_desh, 0, 2, 6, 1), - new WeightedRandomChestContent(ModItems.battery_advanced_cell_4, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_desh_mix, 0, 1, 5, 1), - new WeightedRandomChestContent(Items.diamond, 0, 3, 6, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_container, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.grenade_smart, 0, 1, 6, 1), - new WeightedRandomChestContent(ModItems.powder_yellowcake, 0, 16, 24, 1), - new WeightedRandomChestContent(ModItems.gun_uzi, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_uzi_silencer, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.clip_uzi, 0, 1, 3, 1), - new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 12, 16, 1), - new WeightedRandomChestContent(ModItems.circuit_gold, 0, 2, 6, 1) }; + weighted(ModItems.ingot_desh, 0, 2, 6, 1), + weighted(ModItems.battery_advanced_cell_4, 0, 1, 1, 1), + weighted(ModItems.powder_desh_mix, 0, 1, 5, 1), + weighted(Items.diamond, 0, 3, 6, 1), + weighted(ModItems.ammo_nuke, 0, 1, 1, 1), + weighted(ModItems.ammo_container, 0, 1, 1, 1), + weighted(ModItems.grenade_nuclear, 0, 1, 1, 1), + weighted(ModItems.grenade_smart, 0, 1, 6, 1), + weighted(ModItems.powder_yellowcake, 0, 16, 24, 1), + weighted(ModItems.gun_uzi, 0, 1, 1, 1), + weighted(ModItems.gun_uzi_silencer, 0, 1, 1, 1), + weighted(ModItems.clip_uzi, 0, 1, 3, 1), + weighted(ModItems.circuit_red_copper, 0, 12, 16, 1), + weighted(ModItems.circuit_gold, 0, 2, 6, 1) }; public static WeightedRandomChestContent[] vault3 = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.ingot_desh, 0, 6, 16, 1), - new WeightedRandomChestContent(ModItems.battery_lithium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_power, 0, 1, 5, 1), - new WeightedRandomChestContent(ModItems.sat_chip, 0, 1, 1, 1), - new WeightedRandomChestContent(Items.diamond, 0, 5, 9, 1), - new WeightedRandomChestContent(ModItems.warhead_nuclear, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, 0, 1, 3, 1), - new WeightedRandomChestContent(ModItems.ammo_container, 0, 1, 4, 1), - new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 2, 1), - new WeightedRandomChestContent(ModItems.grenade_mirv, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_yellowcake, 0, 26, 42, 1), - new WeightedRandomChestContent(ModItems.ingot_u235, 0, 3, 6, 1), - new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_revolver_pip, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.clip_revolver_pip, 0, 2, 4, 1), - new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 18, 32, 1), - new WeightedRandomChestContent(ModItems.circuit_gold, 0, 6, 12, 1) }; + weighted(ModItems.ingot_desh, 0, 6, 16, 1), + weighted(ModItems.battery_lithium, 0, 1, 1, 1), + weighted(ModItems.powder_power, 0, 1, 5, 1), + weighted(ModItems.sat_chip, 0, 1, 1, 1), + weighted(Items.diamond, 0, 5, 9, 1), + weighted(ModItems.warhead_nuclear, 0, 1, 1, 1), + weighted(ModItems.ammo_nuke, 0, 1, 3, 1), + weighted(ModItems.ammo_container, 0, 1, 4, 1), + weighted(ModItems.grenade_nuclear, 0, 1, 2, 1), + weighted(ModItems.grenade_mirv, 0, 1, 1, 1), + weighted(ModItems.powder_yellowcake, 0, 26, 42, 1), + weighted(ModItems.ingot_u235, 0, 3, 6, 1), + weighted(ModItems.gun_fatman, 0, 1, 1, 1), + weighted(ModItems.gun_revolver_pip, 0, 1, 1, 1), + weighted(ModItems.clip_revolver_pip, 0, 2, 4, 1), + weighted(ModItems.circuit_red_copper, 0, 18, 32, 1), + weighted(ModItems.circuit_gold, 0, 6, 12, 1) }; public static WeightedRandomChestContent[] vault4 = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.ammo_container, 0, 3, 6, 1), - new WeightedRandomChestContent(ModItems.clip_fatman, 0, 2, 3, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.MIRV.ordinal(), 2, 3, 1), - new WeightedRandomChestContent(ModItems.gun_mirv, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_proto, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_b92, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ingot_combine_steel, 0, 16, 28, 1), - new WeightedRandomChestContent(ModItems.man_core, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.boy_kit, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.nuke_starter_kit, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.weaponized_starblaster_cell, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.warhead_mirv, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.battery_schrabidium_cell, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_nitan_mix, 0, 16, 32, 1) }; + weighted(ModItems.ammo_container, 0, 3, 6, 1), + weighted(ModItems.clip_fatman, 0, 2, 3, 1), + weighted(ModItems.ammo_nuke, AmmoFatman.MIRV.ordinal(), 2, 3, 1), + weighted(ModItems.gun_mirv, 0, 1, 1, 1), + weighted(ModItems.gun_fatman, 0, 1, 1, 1), + weighted(ModItems.gun_proto, 0, 1, 1, 1), + weighted(ModItems.gun_b92, 0, 1, 1, 1), + weighted(ModItems.ingot_combine_steel, 0, 16, 28, 1), + weighted(ModItems.man_core, 0, 1, 1, 1), + weighted(ModItems.boy_kit, 0, 1, 1, 1), + weighted(ModItems.nuke_starter_kit, 0, 1, 1, 1), + weighted(ModItems.weaponized_starblaster_cell, 0, 1, 1, 1), + weighted(ModItems.warhead_mirv, 0, 1, 1, 1), + weighted(ModItems.battery_schrabidium_cell, 0, 1, 1, 1), + weighted(ModItems.powder_nitan_mix, 0, 16, 32, 1) }; public static WeightedRandomChestContent[] officeTrash = new WeightedRandomChestContent[] { //Meta, Min amount, Max amount, Weight - new WeightedRandomChestContent(Items.paper, 0, 1, 12, 10), - new WeightedRandomChestContent(Items.book, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.twinkie, 0, 1, 2, 6), - new WeightedRandomChestContent(ModItems.coffee, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.flame_politics, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.ring_pull, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.can_empty, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.can_creature, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.can_smart, 0, 1, 3, 2), - new WeightedRandomChestContent(ModItems.can_mrsugar, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.cap_nuka, 0, 1, 16, 2), - new WeightedRandomChestContent(ModItems.book_guide, 3, 1, 1, 1), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.deco_computer), 0, 1, 1, 1)}; + weighted(Items.paper, 0, 1, 12, 10), + weighted(Items.book, 0, 1, 3, 4), + weighted(ModItems.twinkie, 0, 1, 2, 6), + weighted(ModItems.coffee, 0, 1, 1, 4), + weighted(ModItems.flame_politics, 0, 1, 1, 2), + weighted(ModItems.ring_pull, 0, 1, 1, 4), + weighted(ModItems.can_empty, 0, 1, 1, 2), + weighted(ModItems.can_creature, 0, 1, 2, 2), + weighted(ModItems.can_smart, 0, 1, 3, 2), + weighted(ModItems.can_mrsugar, 0, 1, 2, 2), + weighted(ModItems.cap_nuka, 0, 1, 16, 2), + weighted(ModItems.book_guide, 3, 1, 1, 1), + weighted(Item.getItemFromBlock(ModBlocks.deco_computer), 0, 1, 1, 1)}; public static WeightedRandomChestContent[] filingCabinet = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(Items.paper, 0, 1, 12, 240), - new WeightedRandomChestContent(Items.book, 0, 1, 3, 90), - new WeightedRandomChestContent(Items.map, 0, 1, 1, 50), - new WeightedRandomChestContent(Items.writable_book, 0, 1, 1, 30), - new WeightedRandomChestContent(ModItems.cigarette, 0, 1, 16, 20), - new WeightedRandomChestContent(ModItems.toothpicks, 0, 1, 16, 10), - new WeightedRandomChestContent(ModItems.dust, 0, 1, 1, 40), - new WeightedRandomChestContent(ModItems.dust_tiny, 0, 1, 3, 75), - new WeightedRandomChestContent(ModItems.ink, 0, 1, 1, 1), //make that mf rare; 1:555 weight + weighted(Items.paper, 0, 1, 12, 240), + weighted(Items.book, 0, 1, 3, 90), + weighted(Items.map, 0, 1, 1, 50), + weighted(Items.writable_book, 0, 1, 1, 30), + weighted(ModItems.cigarette, 0, 1, 16, 20), + weighted(ModItems.toothpicks, 0, 1, 16, 10), + weighted(ModItems.dust, 0, 1, 1, 40), + weighted(ModItems.dust_tiny, 0, 1, 3, 75), + weighted(ModItems.ink, 0, 1, 1, 1), //make that mf rare; 1:555 weight }; public static WeightedRandomChestContent[] solidFuel = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.solid_fuel, 0, 1, 5, 1), - new WeightedRandomChestContent(ModItems.solid_fuel_presto, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.ball_dynamite, 0, 1, 4, 2), - new WeightedRandomChestContent(Items.redstone, 0, 1, 3, 1), - new WeightedRandomChestContent(ModItems.niter, 0, 1, 3, 1) + weighted(ModItems.solid_fuel, 0, 1, 5, 1), + weighted(ModItems.solid_fuel_presto, 0, 1, 2, 2), + weighted(ModItems.ball_dynamite, 0, 1, 4, 2), + weighted(Items.redstone, 0, 1, 3, 1), + weighted(ModItems.niter, 0, 1, 3, 1) }; public static WeightedRandomChestContent[] labVault = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), 1, 1, 4), - new WeightedRandomChestContent(ModItems.chemistry_set, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.screwdriver, 0, 1, 1, 10), - new WeightedRandomChestContent(ModItems.nugget_mercury, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.morning_glory, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.filter_coal, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.dust, 0, 1, 3, 25), - new WeightedRandomChestContent(Items.paper, 0, 1, 2, 15), - new WeightedRandomChestContent(ModItems.cell_empty, 0, 1, 1, 5), - new WeightedRandomChestContent(Items.glass_bottle, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.powder_iodine, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_bromine, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_cobalt, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_neodymium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_boron, 0, 1, 1, 1), + weighted(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), 1, 1, 4), + weighted(ModItems.chemistry_set, 0, 1, 1, 15), + weighted(ModItems.screwdriver, 0, 1, 1, 10), + weighted(ModItems.nugget_mercury, 0, 1, 1, 3), + weighted(ModItems.morning_glory, 0, 1, 1, 1), + weighted(ModItems.filter_coal, 0, 1, 1, 5), + weighted(ModItems.dust, 0, 1, 3, 25), + weighted(Items.paper, 0, 1, 2, 15), + weighted(ModItems.cell_empty, 0, 1, 1, 5), + weighted(Items.glass_bottle, 0, 1, 1, 5), + weighted(ModItems.powder_iodine, 0, 1, 1, 1), + weighted(ModItems.powder_bromine, 0, 1, 1, 1), + weighted(ModItems.powder_cobalt, 0, 1, 1, 1), + weighted(ModItems.powder_neodymium, 0, 1, 1, 1), + weighted(ModItems.powder_boron, 0, 1, 1, 1), }; public static WeightedRandomChestContent[] lockersVault = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.robes_helmet, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.robes_plate, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.robes_legs, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.robes_boots, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.jackt, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.jackt2, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gas_mask_mono, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.goggles, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.flame_opinion, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.flame_conspiracy, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.flame_politics, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.cigarette, 0, 1, 8, 5), - new WeightedRandomChestContent(ModItems.canteen_13, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.armor_polish, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.rag, 0, 1, 3, 5), - new WeightedRandomChestContent(Items.paper, 0, 1, 6, 7), - new WeightedRandomChestContent(Items.clock, 0, 1, 1, 3), - new WeightedRandomChestContent(Items.book, 0, 1, 5, 10), - new WeightedRandomChestContent(Items.experience_bottle, 0, 1, 3, 1), + weighted(ModItems.robes_helmet, 0, 1, 1, 1), + weighted(ModItems.robes_plate, 0, 1, 1, 1), + weighted(ModItems.robes_legs, 0, 1, 1, 1), + weighted(ModItems.robes_boots, 0, 1, 1, 1), + weighted(ModItems.jackt, 0, 1, 1, 1), + weighted(ModItems.jackt2, 0, 1, 1, 1), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 2), + weighted(ModItems.gas_mask_mono, 0, 1, 1, 2), + weighted(ModItems.goggles, 0, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), + weighted(ModItems.flame_opinion, 0, 1, 3, 5), + weighted(ModItems.flame_conspiracy, 0, 1, 3, 5), + weighted(ModItems.flame_politics, 0, 1, 3, 5), + weighted(ModItems.cigarette, 0, 1, 8, 5), + weighted(ModItems.canteen_13, 0, 1, 1, 2), + weighted(ModItems.armor_polish, 0, 1, 1, 3), + weighted(ModItems.gun_kit_1, 0, 1, 1, 3), + weighted(ModItems.rag, 0, 1, 3, 5), + weighted(Items.paper, 0, 1, 6, 7), + weighted(Items.clock, 0, 1, 1, 3), + weighted(Items.book, 0, 1, 5, 10), + weighted(Items.experience_bottle, 0, 1, 3, 1), }; + public static WeightedRandomChestContent weighted(Item item, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(item, meta, min, max, weight); } + public static WeightedRandomChestContent weighted(ItemStack item, int min, int max, int weight) { return new WeightedRandomChestContent(item, min, max, weight); } + /** ITEMBOOKLORE SHIT */ //one downside of all this huge flexibility, make a wrapper if it's too annoying public static ItemStack generateOfficeBook(Random rand) { //TODO rework this lore in general diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index bda498e9b..577632737 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -330,13 +330,13 @@ public class HbmWorldGen implements IWorldGenerator { } } - if(WorldConfig.siloStructure > 0 && rand.nextInt(WorldConfig.siloStructure) == 0) { + /*if(WorldConfig.siloStructure > 0 && rand.nextInt(WorldConfig.siloStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z); new Silo().generate(world, rand, x, y, z); - } + }*/ if(WorldConfig.factoryStructure > 0 && rand.nextInt(WorldConfig.factoryStructure) == 0) { int x = i + rand.nextInt(16); diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 22d2f96f3..8e593512a 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -2,13 +2,19 @@ package com.hbm.world.gen.component; import java.util.Random; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; import com.hbm.lib.HbmChestContents; import com.hbm.tileentity.bomb.TileEntityLandmine; +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; import com.hbm.tileentity.network.TileEntityRadioTorchBase; +import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.gen.structure.StructureBoundingBox; import net.minecraftforge.common.util.ForgeDirection; @@ -761,11 +767,11 @@ public class SiloComponent extends Component { fillWithMetadataBlocks(world, box, 17, 2, 12, 17, 4, 12, ModBlocks.ladder_steel, decoN); fillWithMetadataBlocks(world, box, 21, 2, 16, 21, 4, 16, ModBlocks.ladder_steel, decoS); //Launch Pad - placeCore(world, box, ModBlocks.launch_pad, ForgeDirection.SOUTH, 19, 1, 14); - fillSpace(world, box, 19, 1, 14, new int[] {0, 0, 1, 1, 1, 1}, ModBlocks.launch_pad, ForgeDirection.SOUTH); + placeCoreLaunchpad(world, box, ModBlocks.launch_pad_rusted, ForgeDirection.SOUTH, 19, 1, 14); + fillSpace(world, box, 19, 1, 14, new int[] {0, 0, 1, 1, 1, 1}, ModBlocks.launch_pad_rusted, ForgeDirection.SOUTH); for(int i = 0; i <= 2; i += 2) for(int k = 0; k <= 2; k += 2) - makeExtra(world, box, ModBlocks.launch_pad, 18 + i, 1, 13 + k); + makeExtra(world, box, ModBlocks.launch_pad_rusted, 18 + i, 1, 13 + k); placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_receiver, 3, 19, 0, 14, box); setRTTYFreq(world, box, 19, 0, 14); @@ -1199,7 +1205,7 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 30, 2, 11, box); //Containers - generateLockableContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 13, HbmChestContents.vault2, 4, 0.1D); + generateLockableContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 13, launchKey, 1, 0.1D); generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 31, 5, 14, HbmChestContents.nukeTrash, 5); generateInvContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 15, HbmChestContents.filingCabinet, 5); @@ -1209,6 +1215,8 @@ public class SiloComponent extends Component { return true; } + + public static WeightedRandomChestContent[] launchKey = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.launch_key, 0, 1, 1, 1) }; protected void setRTTYFreq(World world, StructureBoundingBox box, int featureX, int featureY, int featureZ) { int posX = this.getXWithOffset(featureX, featureZ); @@ -1344,5 +1352,22 @@ public class SiloComponent extends Component { } } } - + protected void placeCoreLaunchpad(World world, StructureBoundingBox box, Block block, ForgeDirection dir, int x, int y, int z) { + int posX = getXWithOffset(x, z); + int posZ = getZWithOffset(x, z); + int posY = getYWithOffset(y); + + if(!box.isVecInside(posX, posY, posZ)) return; + + if(dir == null) + dir = ForgeDirection.NORTH; + + dir = getDirection(dir.getOpposite()); + world.setBlock(posX, posY, posZ, block, dir.ordinal() + BlockDummyable.offset, 2); + + TileEntity launchpad = world.getTileEntity(posX, posY, posZ); + if(launchpad instanceof TileEntityLaunchPadRusted) { + ((TileEntityLaunchPadRusted) launchpad).missileLoaded = true; + } + } } From 3239d769896c5f2301387c9a0964cba63f98a129 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 4 Mar 2024 18:44:43 -0800 Subject: [PATCH 243/376] minor change and minor fix --- .../com/hbm/blocks/test/TestEventTester.java | 9 +++-- .../world/gen/component/SiloComponent.java | 36 ++++++++++++++----- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/hbm/blocks/test/TestEventTester.java b/src/main/java/com/hbm/blocks/test/TestEventTester.java index bd2256b5b..25691a26b 100644 --- a/src/main/java/com/hbm/blocks/test/TestEventTester.java +++ b/src/main/java/com/hbm/blocks/test/TestEventTester.java @@ -37,10 +37,15 @@ public class TestEventTester extends Block { public void onNeighborBlockChange(World p_149695_1_, int x1, int y1, int z1, Block p_149695_5_) { this.worldObj = p_149695_1_; + //Levers and buttons for some reason set meta and notify, and *then* notify again, meaning they will always fire this twice. + //Pressure plates, torches, redstone, etc. do not have this issue. if (p_149695_1_.isBlockIndirectlyGettingPowered(x1, y1, z1)) { - /*Component comp = new SiloComponent(this.worldObj.rand, x1, y1, z1); - comp.addComponentParts(p_149695_1_, this.worldObj.rand, comp.getBoundingBox());*/ + /*Component comp = new SiloComponent(this.worldObj.rand, x1, z1); + StructureBoundingBox box = comp.getBoundingBox(); + box.minY = 0; + box.maxY = 512; + comp.addComponentParts(p_149695_1_, this.worldObj.rand, box);*/ //The laser thread is too dangerous to use right now //ThreadLaser laser = new ThreadLaser(p_149695_1_, x, y, z, "north"); diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 8e593512a..24bc98675 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -22,6 +22,7 @@ import net.minecraftforge.common.util.ForgeDirection; public class SiloComponent extends Component { public int freq = 0; //frequency of RTTY torches, this is the easiest way to sync them up. + public int freqHatch = 0; public SiloComponent() { @@ -30,25 +31,29 @@ public class SiloComponent extends Component { public SiloComponent(Random rand, int minX, int minZ) { super(rand, minX, 64, minZ, 42, 29, 26); this.freq = rand.nextInt(); //so other silos won't conflict, hopefully + this.freqHatch = rand.nextInt(); } /** Set to NBT */ protected void func_143012_a(NBTTagCompound nbt) { super.func_143012_a(nbt); nbt.setInteger("freq", freq); + nbt.setInteger("freqHatch", freqHatch); } /** Get from NBT */ protected void func_143011_b(NBTTagCompound nbt) { super.func_143011_b(nbt); this.freq = nbt.getInteger("freq"); + this.freqHatch = nbt.getInteger("freqHatch"); } @Override public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { //seems to work if(this.hpos == -1) { - this.hpos = this.getAverageHeight(world, this.boundingBox, box, getYWithOffset(25)); + StructureBoundingBox area = getRotatedBoundingBox(getXWithOffset(13, 2), getYWithOffset(25), getZWithOffset(13, 2), 29, 3, 18); //anchor offset/world pos already accounted for with offset methods + this.hpos = this.getAverageHeight(world, area, box, getYWithOffset(25)); this.boundingBox.offset(0, this.hpos - 1 - getYWithOffset(25), 0); } @@ -240,7 +245,7 @@ public class SiloComponent extends Component { placeCore(world, box, ModBlocks.silo_hatch_large, ForgeDirection.SOUTH, 19, 26, 14); fillSpace(world, box, 19, 26, 14, new int[] { 0, 0, 3, 3, 3, 3 }, ModBlocks.silo_hatch_large, ForgeDirection.SOUTH); placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_receiver, 1, 16, 25, 17, box); - setRTTYFreq(world, box, 16, 25, 17); + setRTTYFreq(world, box, 16, 25, 17, freqHatch); //Containers generateInvContents(world, box, rand, Blocks.chest, 2, 36, 26, 17, HbmChestContents.vertibird, 5); @@ -418,11 +423,12 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.turret_sentry_damaged, 0, 30, 21, 16, box); //Desk Area fillWithBlocks(world, box, 27, 21, 9, 28, 21, 9, ModBlocks.deco_steel); - fillWithBlocks(world, box, 26, 21, 7, 26, 21, 8, ModBlocks.deco_steel); - placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 25, 21, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_beryllium, 0, 26, 21, 8, box); + fillWithBlocks(world, box, 25, 21, 7, 26, 21, 7, ModBlocks.deco_steel); fillWithBlocks(world, box, 24, 21, 5, 24, 21, 6, ModBlocks.deco_steel); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelN, 28, 22, 9, box); placeBlockAtCurrentPosition(world, Blocks.lever, 6, 26, 22, 8, box); //placed on ground + placeBlockAtCurrentPosition(world, Blocks.lever, 6, 25, 22, 7, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 28, 21, 7, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 27, 21, 5, box); @@ -433,8 +439,10 @@ public class SiloComponent extends Component { placeCore(world, box, ModBlocks.radio_telex, ForgeDirection.WEST, 25, 21, 5); fillSpace(world, box, 25, 21, 5, new int[] {0, 0, 0, 0, 1, 0}, ModBlocks.radio_telex, ForgeDirection.WEST); - placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_sender, 0, 26, 20, 8, box); - setRTTYFreq(world, box, 26, 20, 8); + placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_sender, 0, 26, 20, 8, box); //Launchpad lever + setRTTYFreq(world, box, 26, 20, 8, freq); + placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_sender, 0, 25, 20, 7, box); //hatch lever + setRTTYFreq(world, box, 25, 20, 7, freqHatch); //Machine/Small Desk Area placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_framed_green_rusted, pillarWE, 23, 23, 1, box); @@ -773,7 +781,7 @@ public class SiloComponent extends Component { for(int k = 0; k <= 2; k += 2) makeExtra(world, box, ModBlocks.launch_pad_rusted, 18 + i, 1, 13 + k); placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_receiver, 3, 19, 0, 14, box); - setRTTYFreq(world, box, 19, 0, 14); + setRTTYFreq(world, box, 19, 0, 14, freq); //Air fillWithAir(world, box, 18, 1, 8, 20, 3, 10); @@ -1218,7 +1226,7 @@ public class SiloComponent extends Component { public static WeightedRandomChestContent[] launchKey = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.launch_key, 0, 1, 1, 1) }; - protected void setRTTYFreq(World world, StructureBoundingBox box, int featureX, int featureY, int featureZ) { + protected void setRTTYFreq(World world, StructureBoundingBox box, int featureX, int featureY, int featureZ, int freq) { int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); int posZ = this.getZWithOffset(featureX, featureZ); @@ -1230,7 +1238,7 @@ public class SiloComponent extends Component { if(torch != null) { //for some reason, the silo hatch torch stays at signal 15, despite the others not doing so. //this is only an issue with this method changing the existing TE, so it will never occur during natural generation. - torch.channel = String.valueOf(this.freq); //int for convenience + torch.channel = String.valueOf(freq); //int for convenience torch.lastState = 0; //just in case } } @@ -1370,4 +1378,14 @@ public class SiloComponent extends Component { ((TileEntityLaunchPadRusted) launchpad).missileLoaded = true; } } + //this might be a decent method to have in general actually + protected StructureBoundingBox getRotatedBoundingBox(int minX, int minY, int minZ, int maxX, int maxY, int maxZ) { + switch(this.coordBaseMode) { + default: //0 & 2 + return new StructureBoundingBox(minX, minY, minZ, minX + maxX, minY + maxY, minZ + maxZ); + case 1: + case 3: + return new StructureBoundingBox(minX, minY, minZ, minX + maxZ, minY + maxY, minZ + maxX); + } + } } From 9f422f690aab262f9b096b7b64c86b0763ed8830 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 5 Mar 2024 16:56:40 +0100 Subject: [PATCH 244/376] recipes --- changelog | 15 +++++++++++++-- .../hbm/inventory/recipes/anvil/AnvilRecipes.java | 8 ++++++++ src/main/java/com/hbm/main/CraftingManager.java | 8 ++++---- src/main/resources/assets/hbm/lang/de_DE.lang | 3 ++- src/main/resources/assets/hbm/lang/en_US.lang | 1 + 5 files changed, 28 insertions(+), 7 deletions(-) diff --git a/changelog b/changelog index 82df3d70f..eb53a1652 100644 --- a/changelog +++ b/changelog @@ -1,9 +1,15 @@ ##Added * CRTs and toasters - * Decorative blocks that will spawn in upcoming dungeons + * Found in the new silo structure * Sentry turret "Edwin" * A broken down version of the sentry turret with infinite power and ammo - * Will be found in the new silo structure + * Also found in the new silos +* Launch code piece + * A rare drop from hostile mobs + * 8 of them can be combined into launch codes, which are required to launch the missile found in the silo + * Single-use +* Launch key + * The key is required to launch the missile found in the silo ## Changed * Updated chinese localization @@ -28,6 +34,11 @@ * Gaseous fuels now have a combusion multiplier of 1.5 instead of 1.25 * LPG now has half the base burn value, preventing an unreasonable jump in efficiency simply by liquefacting petroleum gas * While overall slightly less efficient that petroleum gas per unit of petroleum needed, LPG is still very much desirable due to being much easier to burn at max efficiency +* The ZPE is no longer craftable in 528 mode +* The silo structure has been remade. Instead of a concrete hole with a single small control room, it's now a much larger multi-level silo with a small bunker complex + * The silo will spawn with the new large silo hatch, as well as a structure-only variant of the silo launch pad + * The silo has a damaged version of the doomsday missile loaded, which can be launched using the launch code and launch key + * The missile can be released from the launch position, which renders it inoperable. Repairing it will make it usable again, as well as increase the yield considerably ## Fixed * Fixed the structure toggle on the world creation screen not working correctly on most world types diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 2a618ce69..cc4ef4573 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -544,6 +544,14 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new OreDictStack(AS.ingot()), new OreDictStack(REDSTONE.dust(), 4), new OreDictStack(ASBESTOS.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.circuit_arsenic_raw))).setTier(5)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(ModItems.missile_doomsday_rusted, 1), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 8), + new OreDictStack(AL.plateWelded(), 2), + new OreDictStack(PU239.billet(), 3) + }, new AnvilOutput(new ItemStack(ModItems.missile_doomsday))).setTier(5)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u233, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u233))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u235, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u235))).setTier(4)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index c021fe722..de99e7049 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -697,10 +697,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.sat_foeq), new Object[] { ModItems.sat_foeq }); addRecipeAuto(new ItemStack(ModItems.sat_interface), new Object[] { "ISI", "PCP", "PAP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', ModItems.circuit_gold }); addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', ModItems.circuit_red_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { "MDM", "LCL", "LWL", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', ModItems.circuit_gold, 'W', ModItems.coil_magnetized_tungsten }); - addRecipeAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { "LWL", "LCL", "MDM", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', ModItems.circuit_gold, 'W', ModItems.coil_magnetized_tungsten }); - addShapelessAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { ModBlocks.machine_spp_top }); - addShapelessAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { ModBlocks.machine_spp_bottom }); addRecipeAuto(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SDS", "MCM", "MCM", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M',ModItems.coil_advanced_alloy, 'C', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_20), new Object[] { "SDS", "MCM", "MCM", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M', ModItems.coil_copper, 'C', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fwatz_conductor, 'C', ModItems.circuit_targeting_tier6 }); @@ -1112,6 +1108,10 @@ public class CraftingManager { } if(!GeneralConfig.enable528) { + addRecipeAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { "MDM", "LCL", "LWL", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', ModItems.circuit_gold, 'W', ModItems.coil_magnetized_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { "LWL", "LCL", "MDM", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', ModItems.circuit_gold, 'W', ModItems.coil_magnetized_tungsten }); + addShapelessAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { ModBlocks.machine_spp_top }); + addShapelessAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { ModBlocks.machine_spp_bottom }); addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', ModItems.circuit_targeting_tier3, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', ModItems.circuit_red_copper, 'I', Blocks.iron_bars, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', ModItems.circuit_targeting_tier4, 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index fafa793a2..7a8e251ba 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2330,7 +2330,8 @@ item.missile_cluster.name=Streurakete item.missile_cluster_strong.name=Starke Streurakete item.missile_custom.name=Spezialgefertigte Rakete item.missile_decoy.name=Köderflugkörper -item.missile_doomsday.name=Doomsday Rakete +item.missile_doomsday.name=Doomsday-Rakete +item.missile_doomsday_rusted.name=Beschädigte Doomsday-Rakete item.missile_drill.name=Der Betonbrecher item.missile_emp.name=EMP-Rakete item.missile_emp_strong.name=Verbesserte EMP-Rakete diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 52fe31da3..44935cb1c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3082,6 +3082,7 @@ item.missile_cluster_strong.name=Strong Cluster Missile item.missile_custom.name=Custom Missile item.missile_decoy.name=Decoy Missile item.missile_doomsday.name=Doomsday Missile +item.missile_doomsday_rusted.name=Damaged Doomsday Missile item.missile_drill.name=The Concrete Cracker item.missile_emp.name=EMP Missile item.missile_emp_strong.name=Strong EMP Missile From 98115ac784ec2f447a7d586635795bbcc2b8f757 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 5 Mar 2024 21:41:56 +0100 Subject: [PATCH 245/376] i forgor --- changelog | 49 - gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../hbm/blocks/generic/BlockSnowglobe.java | 27 +- src/main/java/com/hbm/config/WorldConfig.java | 2 + .../hbm/inventory/recipes/MixerRecipes.java | 6 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../render/tileentity/RenderSnowglobe.java | 27 +- .../tileentity/bomb/TileEntityLandmine.java | 4 +- .../machine/TileEntityCustomMachine.java | 2 +- .../com/hbm/world/feature/BedrockOre.java | 36 +- .../com/hbm/world/gen/MapGenNTMFeatures.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 7 +- .../assets/hbm/models/trinkets/snowglobe.obj | 1493 +++++++---------- .../textures/models/trinkets/snowglobe.png | Bin 165 -> 155 bytes .../models/trinkets/snowglobe_glass.png | Bin 0 -> 223 bytes 17 files changed, 673 insertions(+), 992 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_glass.png diff --git a/changelog b/changelog index eb53a1652..e69de29bb 100644 --- a/changelog +++ b/changelog @@ -1,49 +0,0 @@ -##Added -* CRTs and toasters - * Found in the new silo structure -* Sentry turret "Edwin" - * A broken down version of the sentry turret with infinite power and ammo - * Also found in the new silos -* Launch code piece - * A rare drop from hostile mobs - * 8 of them can be combined into launch codes, which are required to launch the missile found in the silo - * Single-use -* Launch key - * The key is required to launch the missile found in the silo - -## Changed -* Updated chinese localization -* Tweaked super shotgun animations, added config for changing the animation style -* The benelli now has reloading animations and the drum mag as advertised -* Tom will now explode close to bedrock even when not hitting a block -* The assembler recipe config now uses the same system as all other recipe configs, the file has moved into the `hbmRecipes` folder - * Old files are still compatible if moved to the new folder, since the base structure of the recipe file is the same - * Recipes should work as expected with the `/ntmreload` command - * Recipes now have an optional list for specifying which template folder they are made in -* Electrolyzing heavy water now has the same yields as regular water, I don't remember why this incsonsistency existed and there was probably a reason for it but I don't care -* Electrolyzing fluids now only takes 20 ticks instead of 60 - * Batch sizes for water and heavy water have been doubled, effectively increasing throughout 6x - * The throughput for electrolysis on chemical plants has been halved (but heavy water still has the output buff, effectively remaining unchanged) -* Custom machines now have an optional localization field which allows translations to be added within the config -* The congo lake now has reload and better firing animations -* Improved shift clicking for centrifuges, acidizers, electric furnace, arc furnaces and arc welders -* Schrabidium transmutation by fallout is now limited to the inner 40% of the sellafite conversion radius -* Fluid traits are now listed in a fixed order instead of being arranged randomly -* Hidden fluid trait descriptions will now be added below the visible part of that trait instead of below the last visible trait -* The methusalem turret no longer drops anything when broken -* Gaseous fuels now have a combusion multiplier of 1.5 instead of 1.25 -* LPG now has half the base burn value, preventing an unreasonable jump in efficiency simply by liquefacting petroleum gas - * While overall slightly less efficient that petroleum gas per unit of petroleum needed, LPG is still very much desirable due to being much easier to burn at max efficiency -* The ZPE is no longer craftable in 528 mode -* The silo structure has been remade. Instead of a concrete hole with a single small control room, it's now a much larger multi-level silo with a small bunker complex - * The silo will spawn with the new large silo hatch, as well as a structure-only variant of the silo launch pad - * The silo has a damaged version of the doomsday missile loaded, which can be launched using the launch code and launch key - * The missile can be released from the launch position, which renders it inoperable. Repairing it will make it usable again, as well as increase the yield considerably - -## Fixed -* Fixed the structure toggle on the world creation screen not working correctly on most world types -* Fixed antiknock having a broken sprite and localization -* Fixed crash caused by fallout affecting spotlight blocks, crashing the game -* Fixed 528 mode bedrock ore replacements not working -* Fixed potential crashes with improperly configured custom machines -* Fixed misspelling in the custom machine config template diff --git a/gradle.properties b/gradle.properties index d9a886880..204129933 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4880 +mod_build_number=4895 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 43fa85e20..94c961f5e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1544,7 +1544,7 @@ public class ModBlocks { deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); - snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); + snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java index ff1ed304c..07d5179fa 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java @@ -26,8 +26,10 @@ import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockSnowglobe extends BlockContainer implements IGUIProvider { @@ -58,13 +60,8 @@ public class BlockSnowglobe extends BlockContainer implements IGUIProvider { @Override public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { - TileEntitySnowglobe entity = (TileEntitySnowglobe) world.getTileEntity(x, y, z); - - if(entity != null) { - return new ItemStack(this, 1, entity.type.ordinal()); - } - + if(entity != null) return new ItemStack(this, 1, entity.type.ordinal()); return super.getPickBlock(target, world, x, y, z, player); } @@ -100,9 +97,7 @@ public class BlockSnowglobe extends BlockContainer implements IGUIProvider { @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { - - for(int i = 1; i < SnowglobeType.values().length; i++) - list.add(new ItemStack(item, 1, i)); + for(int i = 1; i < SnowglobeType.values().length; i++) list.add(new ItemStack(item, 1, i)); } @Override @@ -114,6 +109,18 @@ public class BlockSnowglobe extends BlockContainer implements IGUIProvider { bobble.type = SnowglobeType.values()[Math.abs(stack.getItemDamage()) % SnowglobeType.values().length]; bobble.markDirty(); } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + float f = 0.0625F; + this.setBlockBounds(4F * f, 0.0F, 4F * f, 1.0F - 4F * f, 0.3125F, 1.0F - 4F * f); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } @Override public TileEntity createNewTileEntity(World world, int meta) { @@ -160,7 +167,7 @@ public class BlockSnowglobe extends BlockContainer implements IGUIProvider { TENPENNYTOWER( "Tenpenny Tower", "Tenpenny Tower is the brainchild of Allistair Tenpenny, a British refugee who came to the Capital Wasteland seeking his fortune."), LUCKY38( "Lucky 38", "My guess? Leads to a big cashout at some casino - and if the \"38\" on it is any indication... well... Lucky 38 it is."), SIERRAMADRE( "Sierra Madre", "It's the moment you've been waiting for, the reason we're all here - the Gala Event, the Grand Opening of the Sierra Madre Casino."), - PRYDWEN( "Prydwen", "People of the Commonwealth. Do not interfere. Our intentions are peaceful. We are the Brotherhood of Steel."); + PRYDWEN( "The Prydwen", "People of the Commonwealth. Do not interfere. Our intentions are peaceful. We are the Brotherhood of Steel."); public String label; public String inscription; diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 0b1fa3a55..1a7c40b0e 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -50,6 +50,7 @@ public class WorldConfig { public static int bedrockFluoriteSpawn = 50; public static int bedrockRedstoneSpawn = 50; public static int bedrockRareEarthSpawn = 50; + public static int bedrockBauxiteSpawn = 100; public static int bedrockGlowstoneSpawn = 100; public static int bedrockPhosphorusSpawn = 50; public static int bedrockQuartzSpawn = 100; @@ -170,6 +171,7 @@ public class WorldConfig { bedrockChlorocalciteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B14_bedrockChlorocalciteWeight", "Spawn weight for chlorocalcite bedrock ore", 35); bedrockNeodymiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B15_bedrockNeodymiumWeight", "Spawn weight for neodymium bedrock ore", 50); bedrockRareEarthSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B16_bedrockRareEarthWeight", "Spawn weight for rare earth bedrock ore", 50); + bedrockBauxiteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B17_bedrockBauxiteWeight", "Spawn weight for bauxite bedrock ore", 100); bedrockGlowstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN00_bedrockGlowstoneWeight", "Spawn weight for glowstone bedrock ore", 100); bedrockPhosphorusSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN01_bedrockPhosphorusWeight", "Spawn weight for phosphorus bedrock ore", 50); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index ec5890cd1..9f66d91c8 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -50,7 +50,11 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); register(Fluids.FULLERENE, new MixerRecipe(250, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.SOOT)))); - register(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); + register(Fluids.SOLVENT, + new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500)), + new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_CRACK, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500)), + new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_DS, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500)), + new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_COKER, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); register(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); register(Fluids.NITRIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); register(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250))); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 2884cce77..1002a2191 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4880)"; + public static final String VERSION = "1.0.27 BETA (4895)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java index f8ad256b6..3fe08895d 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java @@ -12,6 +12,7 @@ import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.util.EnumUtil; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; @@ -25,6 +26,7 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemR public static final IModelCustom snowglobe = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/snowglobe.obj"), false).asDisplayList(); public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe.png"); + public static final ResourceLocation glass = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_glass.png"); public static final ResourceLocation features = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_features.png"); public static RenderBlocks renderer = new RenderBlocks(); @@ -46,12 +48,15 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemR GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); double scale = 0.0625D; GL11.glScaled(scale, scale, scale); - + Minecraft.getMinecraft().getTextureManager().bindTexture(socket); snowglobe.renderPart("Socket"); + Minecraft.getMinecraft().getTextureManager().bindTexture(glass); + snowglobe.renderPart("Glass"); Minecraft.getMinecraft().getTextureManager().bindTexture(features); @@ -59,14 +64,28 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemR case NONE: break; case RIVETCITY: snowglobe.renderPart("RivetCity"); break; case TENPENNYTOWER: snowglobe.renderPart("TenpennyTower"); break; - case LUCKY38: snowglobe.renderPart("Lucky38_Plane"); break; + case LUCKY38: snowglobe.renderPart("Lucky38"); break; case SIERRAMADRE: snowglobe.renderPart("SierraMadre"); break; case PRYDWEN: snowglobe.renderPart("Prydwen"); break; default: break; } + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glDisable(GL11.GL_LIGHTING); + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + float f3 = 0.05F; + GL11.glTranslated(4.025, 0.5, 0); + GL11.glScalef(f3, -f3, f3); + GL11.glTranslated(0, -font.FONT_HEIGHT / 2F, font.getStringWidth(type.label) * 0.5D); + GL11.glRotatef(90, 0, 1, 0); + GL11.glDepthMask(false); + GL11.glTranslatef(0, 1, 0); + font.drawString(type.label, 0, 0, 0xffffff); + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_LIGHTING); } @Override @@ -78,8 +97,8 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemR public IItemRenderer getRenderer() { return new ItemRenderBase() { public void renderInventory() { - GL11.glTranslated(0, -4, 0); - GL11.glScaled(10, 10, 10); + GL11.glTranslated(0, -2, 0); + GL11.glScaled(6, 6, 6); } public void renderCommonWithStack(ItemStack item) { GL11.glTranslated(0, 0.25, 0); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java index 7e05391c1..e9320c85d 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java @@ -8,6 +8,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.passive.EntityBat; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -29,7 +30,7 @@ public class TileEntityLandmine extends TileEntity { double range = landmine.range; double height = landmine.height; - if (waitingForPlayer) { + if(waitingForPlayer) { range = 25; height = 25; } else if(!isPrimed) { @@ -42,6 +43,7 @@ public class TileEntityLandmine extends TileEntity { AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - height, zCoord - range, xCoord + range + 1, yCoord + height, zCoord + range + 1)); for(Object o : list) { + if(o instanceof EntityBat) continue; if(waitingForPlayer) { // This mine has been generated by worldgen and is ignoring mobs until a player is close enough // This is to prevent worldgen mines from detonating well before they become gameplay relevant diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 92af2a4ed..f810b8dfb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -438,7 +438,7 @@ public class TileEntityCustomMachine extends TileEntityMachinePolluting implemen if(this.config.itemInCount > 2) return new int[] { 4, 5, 6, 16, 17, 18, 19, 20, 21 }; if(this.config.itemInCount > 1) return new int[] { 4, 5, 16, 17, 18, 19, 20, 21 }; if(this.config.itemInCount > 0) return new int[] { 4, 16, 17, 18, 19, 20, 21 }; - return new int[] { }; + return new int[] { 16, 17, 18, 19, 20, 21 }; } @Override diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 953b13a85..fa162e6dd 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.config.WorldConfig; @@ -29,23 +30,24 @@ public class BedrockOre { public static HashMap replacements = new HashMap(); public static void init() { - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NEODYMIUM, 3, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNeodymiumSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.FLUORITE, 1), WorldConfig.bedrockFluoriteSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 8), 1, 0x202020), WorldConfig.bedrockCoalSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), 2, 0x8F9999, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockRedstoneSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NEODYMIUM, 3, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNeodymiumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.FLUORITE, 1), WorldConfig.bedrockFluoriteSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 8), 1, 0x202020), WorldConfig.bedrockCoalSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), 2, 0x8F9999, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockRareEarthSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE, 2),1, 0xEF7213), WorldConfig.bedrockBauxiteSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.glowstone_dust, 4), 1, 0xF9FF4D), WorldConfig.bedrockGlowstoneSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(ModItems.powder_fire, 4), 1, 0xD7341F), WorldConfig.bedrockPhosphorusSpawn); diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index 1ec502efa..a4d225c7f 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -144,7 +144,7 @@ public class MapGenNTMFeatures extends MapGenStructure { this.components.add(ruin4); } - } else if(biome.heightVariation <= 0.25F && rand.nextInt(15) == 0) { //for now our only restriction is kinda-flat biomes. that and chance might change idk + } else if(biome.heightVariation <= 0.25F && rand.nextInt(10) == 0) { //for now our only restriction is kinda-flat biomes. that and chance might change idk SiloComponent silo = new SiloComponent(rand, i, j); this.components.add(silo); } else if(biome.temperature >= 1.0 && biome.rainfall == 0 && !(biome instanceof BiomeGenMesa)) { //Desert & Savannah diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 7a8e251ba..9b1fdfaa1 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4523,6 +4523,10 @@ tile.solar_mirror.name=Heliostatspiegel tile.soyuz_capsule.name=Landekapsel tile.soyuz_launcher.name=Soyuz-Startplatform tile.spikes.name=Stacheln +tile.snowglobe.name=Schneekugel +tile.spotlight_incandescent.name=Käfiglampe +tile.spotlight_fluoro.name=Leuchtstoffröhre +tile.spotlight_halogen.name=Halogen-Flutlicht tile.stalactite.asbestos.name=Asbest-Stalaktit tile.stalactite.sulfur.name=Schwefelhaltiger Stalaktit tile.stalagmite.asbestos.name=Asbest-Stalagmit diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 44935cb1c..c4824a861 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5086,9 +5086,6 @@ tile.lamp_tritium_green_off.name=Green Tritium Lamp tile.lamp_tritium_green_on.name=Green Tritium Lamp tile.lantern.name=Lantern tile.lantern_behemoth.name=Old Lantern -tile.spotlight_incandescent.name=Cage Lamp -tile.spotlight_fluoro.name=Fluorescent Light -tile.spotlight_halogen.name=Halogen Floodlight tile.launch_pad.name=Silo Launch Pad tile.launch_pad_large.name=Launch Pad tile.launch_table.name=Large Launch Pad @@ -5535,6 +5532,10 @@ tile.solar_mirror.name=Heliostat Mirror tile.soyuz_capsule.name=Cargo Landing Capsule tile.soyuz_launcher.name=Soyuz Launch Platform tile.spikes.name=Spikes +tile.snowglobe.name=Snowglobe +tile.spotlight_incandescent.name=Cage Lamp +tile.spotlight_fluoro.name=Fluorescent Light +tile.spotlight_halogen.name=Halogen Floodlight tile.stalactite.asbestos.name=Asbestos Stalactite tile.stalactite.sulfur.name=Sulfurous Stalactite tile.stalagmite.asbestos.name=Asbestos Stalagmite diff --git a/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj b/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj index fe52cda54..a165813f1 100644 --- a/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj +++ b/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj @@ -297,54 +297,54 @@ v 0.062500 1.562500 1.375000 vt 0.682837 0.937347 vt 0.692469 0.937347 vt 0.687653 0.945689 -vt 0.684873 0.920665 -vt 0.690433 0.951250 -vt 0.684873 0.951250 -vt 0.684873 0.951250 -vt 0.690433 0.920665 -vt 0.690433 0.951250 -vt 0.632155 0.951250 -vt 0.626372 0.920665 -vt 0.632155 0.920665 -vt 0.743151 0.935957 -vt 0.720907 0.933177 -vt 0.743151 0.933177 -vt 0.743151 0.935957 -vt 0.720907 0.933177 -vt 0.743151 0.933177 -vt 0.743151 0.951250 -vt 0.720907 0.929006 -vt 0.743151 0.929006 -vt 0.632155 0.929006 -vt 0.654399 0.951250 -vt 0.632155 0.951250 -vt 0.743151 0.931786 -vt 0.748934 0.937347 -vt 0.743151 0.937347 -vt 0.743151 0.931786 -vt 0.748934 0.937347 -vt 0.743151 0.937347 -vt 0.743151 0.920665 -vt 0.748934 0.951250 -vt 0.743151 0.951250 +vt 0.059873 0.920665 +vt 0.065433 0.951250 +vt 0.059873 0.951250 +vt 0.059873 0.951250 +vt 0.065433 0.920665 +vt 0.065433 0.951250 +vt 0.007155 0.951250 +vt 0.001372 0.920665 +vt 0.007155 0.920665 +vt 0.118151 0.935957 +vt 0.095907 0.933177 +vt 0.118151 0.933177 +vt 0.118151 0.935957 +vt 0.095907 0.933177 +vt 0.118151 0.933177 +vt 0.118151 0.951250 +vt 0.095907 0.929006 +vt 0.118151 0.929006 +vt 0.007155 0.929006 +vt 0.029399 0.951250 +vt 0.007155 0.951250 +vt 0.118151 0.931786 +vt 0.123934 0.937347 +vt 0.118151 0.937347 +vt 0.118151 0.931786 +vt 0.123934 0.937347 +vt 0.118151 0.937347 +vt 0.118151 0.920665 +vt 0.123934 0.951250 +vt 0.118151 0.951250 vt 0.656957 0.931786 vt 0.701444 0.937347 vt 0.656957 0.937347 -vt 0.676420 0.929006 -vt 0.654176 0.940128 -vt 0.654176 0.929006 -vt 0.682092 0.931786 -vt 0.693214 0.923445 -vt 0.693214 0.931786 -vt 0.682092 0.931786 -vt 0.693214 0.923445 -vt 0.693214 0.931786 -vt 0.654176 0.931786 -vt 0.676420 0.923445 -vt 0.676420 0.931786 -vt 0.698886 0.931786 -vt 0.721130 0.923445 -vt 0.721130 0.931786 +vt 0.051420 0.929006 +vt 0.029176 0.940128 +vt 0.029176 0.929006 +vt 0.057092 0.931786 +vt 0.068214 0.923445 +vt 0.068214 0.931786 +vt 0.057092 0.931786 +vt 0.068214 0.923445 +vt 0.068214 0.931786 +vt 0.029176 0.931786 +vt 0.051420 0.923445 +vt 0.051420 0.931786 +vt 0.073886 0.931786 +vt 0.096130 0.923445 +vt 0.096130 0.931786 vt 0.701444 0.931786 vt 0.656957 0.937347 vt 0.656957 0.931786 @@ -357,39 +357,39 @@ vt 0.718349 0.923445 vt 0.684873 0.923445 vt 0.690433 0.920665 vt 0.690433 0.923445 -vt 0.712566 0.929006 -vt 0.701444 0.940128 -vt 0.701444 0.929006 -vt 0.682092 0.931786 -vt 0.693214 0.917884 -vt 0.693214 0.931786 -vt 0.682092 0.931786 -vt 0.693214 0.917884 -vt 0.693214 0.931786 -vt 0.701444 0.931786 -vt 0.712566 0.917884 -vt 0.712566 0.931786 -vt 0.662740 0.931786 -vt 0.673862 0.917884 -vt 0.673862 0.931786 -vt 0.654176 0.929006 -vt 0.676420 0.940128 -vt 0.654176 0.940128 -vt 0.676420 0.929006 -vt 0.654176 0.940128 -vt 0.654176 0.929006 -vt 0.654176 0.920665 -vt 0.676420 0.917884 -vt 0.676420 0.920665 -vt 0.698886 0.920665 -vt 0.721130 0.917884 -vt 0.721130 0.920665 -vt 0.682092 0.920665 -vt 0.693214 0.917884 -vt 0.693214 0.920665 -vt 0.682092 0.920665 -vt 0.693214 0.917884 -vt 0.693214 0.920665 +vt 0.087566 0.929006 +vt 0.076444 0.940128 +vt 0.076444 0.929006 +vt 0.057092 0.931786 +vt 0.068214 0.917884 +vt 0.068214 0.931786 +vt 0.057092 0.931786 +vt 0.068214 0.917884 +vt 0.068214 0.931786 +vt 0.076444 0.931786 +vt 0.087566 0.917884 +vt 0.087566 0.931786 +vt 0.037740 0.931786 +vt 0.048862 0.917884 +vt 0.048862 0.931786 +vt 0.029176 0.929006 +vt 0.051420 0.940128 +vt 0.029176 0.940128 +vt 0.051420 0.929006 +vt 0.029176 0.940128 +vt 0.029176 0.929006 +vt 0.029176 0.920665 +vt 0.051420 0.917884 +vt 0.051420 0.920665 +vt 0.073886 0.920665 +vt 0.096130 0.917884 +vt 0.096130 0.920665 +vt 0.057092 0.920665 +vt 0.068214 0.917884 +vt 0.068214 0.920665 +vt 0.057092 0.920665 +vt 0.068214 0.917884 +vt 0.068214 0.920665 vt 0.689043 0.938738 vt 0.686263 0.941518 vt 0.686263 0.938738 @@ -426,37 +426,37 @@ vt 0.690433 0.935312 vt 0.693214 0.940128 vt 0.692469 0.942908 vt 0.690433 0.944944 -vt 0.690433 0.920665 -vt 0.684873 0.920665 -vt 0.626372 0.951250 -vt 0.720907 0.935957 -vt 0.720907 0.935957 -vt 0.720907 0.951250 -vt 0.654399 0.929006 -vt 0.748934 0.931786 -vt 0.748934 0.931786 -vt 0.748934 0.920665 +vt 0.065433 0.920665 +vt 0.059873 0.920665 +vt 0.001372 0.951250 +vt 0.095907 0.935957 +vt 0.095907 0.935957 +vt 0.095907 0.951250 +vt 0.029399 0.929006 +vt 0.123934 0.931786 +vt 0.123934 0.931786 +vt 0.123934 0.920665 vt 0.701444 0.931786 -vt 0.676420 0.940128 -vt 0.682092 0.923445 -vt 0.682092 0.923445 -vt 0.654176 0.923445 -vt 0.698886 0.923445 +vt 0.051420 0.940128 +vt 0.057092 0.923445 +vt 0.057092 0.923445 +vt 0.029176 0.923445 +vt 0.073886 0.923445 vt 0.701444 0.937347 vt 0.656957 0.920665 vt 0.673862 0.920665 vt 0.684873 0.920665 -vt 0.712566 0.940128 -vt 0.682092 0.917884 -vt 0.682092 0.917884 -vt 0.701444 0.917884 -vt 0.662740 0.917884 -vt 0.676420 0.929006 -vt 0.676420 0.940128 -vt 0.654176 0.917884 -vt 0.698886 0.917884 -vt 0.682092 0.917884 -vt 0.682092 0.917884 +vt 0.087566 0.940128 +vt 0.057092 0.917884 +vt 0.057092 0.917884 +vt 0.076444 0.917884 +vt 0.037740 0.917884 +vt 0.051420 0.929006 +vt 0.051420 0.940128 +vt 0.029176 0.917884 +vt 0.073886 0.917884 +vt 0.057092 0.917884 +vt 0.057092 0.917884 vt 0.689043 0.941518 vt 0.626372 0.935957 vt 0.626372 0.935957 @@ -734,7 +734,7 @@ f 47/283/47 83/324/47 82/308/44 f 43/278/45 44/266/39 80/305/39 f 40/280/46 41/286/41 77/313/41 f 48/271/42 84/307/42 83/315/47 -o Lucky38_Plane +o Lucky38 v 0.000000 1.125000 -0.750000 v -0.375000 1.125000 -0.649519 v -0.649519 1.125000 -0.375000 @@ -1968,230 +1968,48 @@ f 375/832/69 387/831/69 388/836/66 f 365/818/51 378/817/51 377/838/68 f 372/834/63 384/833/63 385/839/62 o Glass -v 0.000000 1.000000 -3.500000 -v -1.339392 1.000000 -3.233578 -v -2.474874 1.000000 -2.474874 -v -3.233578 1.000000 -1.339392 -v -3.500000 1.000000 0.000000 -v -3.233578 1.000000 1.339393 -v -2.474874 1.000000 2.474874 -v -1.339392 1.000000 3.233578 -v -0.000000 1.000000 3.500000 -v 1.339391 1.000000 3.233579 -v 2.474873 1.000000 2.474874 -v 3.233578 1.000000 1.339393 -v 3.500000 1.000000 0.000000 -v 3.233578 1.000000 -1.339393 -v 2.474873 1.000000 -2.474874 -v 1.339391 1.000000 -3.233579 -v 0.000001 5.000000 -1.205920 -v 0.000001 4.469670 -2.511333 -v -0.461486 5.000000 -1.114124 -v -0.961046 4.469670 -2.320169 -v -0.852714 5.000000 -0.852715 -v -1.775780 4.469670 -1.775781 -v -1.114124 5.000000 -0.461486 -v -2.320169 4.469670 -0.961045 -v -1.205920 5.000000 0.000000 -v -2.511333 4.469670 0.000000 -v -1.114124 5.000000 0.461486 -v -2.320169 4.469669 0.961046 -v -0.852714 5.000000 0.852715 -v -1.775780 4.469670 1.775781 -v -0.461485 5.000000 1.114124 -v -0.961046 4.469670 2.320169 -v -0.000000 5.000000 1.205920 -v -0.000000 4.469670 2.511333 -v 0.461486 5.000000 1.114124 -v 0.961045 4.469670 2.320169 -v 0.852714 5.000000 0.852715 -v 1.775780 4.469669 1.775782 -v 1.114125 5.000000 0.461486 -v 2.320169 4.469670 0.961046 -v 1.205920 5.000000 0.000000 -v 2.511333 4.469670 0.000000 -v 1.114125 5.000000 -0.461486 -v 2.320169 4.469670 -0.961046 -v 0.852714 5.000000 -0.852715 -v 1.775780 4.469670 -1.775782 -v 0.461484 5.000000 -1.114125 -v 0.961044 4.469669 -2.320170 -v 0.000000 4.030330 -2.959280 -v 0.000000 2.750000 -3.500000 -v -1.339392 2.750000 -3.233578 -v -1.132467 4.030330 -2.734018 -v -2.474874 2.750000 -2.474874 -v -2.092527 4.030330 -2.092527 -v -3.233578 2.750000 -1.339392 -v -2.734018 4.030330 -1.132467 -v -3.500000 2.750000 0.000000 -v -2.959280 4.030330 0.000000 -v -3.233578 2.750000 1.339393 -v -2.734018 4.030330 1.132467 -v -2.474874 2.750000 2.474874 -v -2.092527 4.030330 2.092527 -v -1.339392 2.750000 3.233578 -v -1.132468 4.030330 2.734018 -v -0.000000 2.750000 3.500000 -v -0.000000 4.030330 2.959280 -v 1.339391 2.750000 3.233579 -v 1.132467 4.030330 2.734018 -v 2.474873 2.750000 2.474874 -v 2.092527 4.030330 2.092527 -v 3.233578 2.750000 1.339393 -v 2.734018 4.030330 1.132468 -v 3.500000 2.750000 0.000000 -v 2.959280 4.030330 0.000000 -v 3.233578 2.750000 -1.339393 -v 2.734018 4.030330 -1.132468 -v 2.474873 2.750000 -2.474874 -v 2.092526 4.030330 -2.092527 -v 1.339391 2.750000 -3.233579 -v 1.132466 4.030330 -2.734019 -l 398 397 -l 399 398 -l 400 399 -l 401 400 -l 402 401 -l 403 402 -l 404 403 -l 405 404 -l 406 405 -l 407 406 -l 408 407 -l 409 408 -l 410 409 -l 411 410 -l 412 411 -l 397 412 -l 416 415 -l 415 413 -l 413 414 -l 414 416 -l 418 417 -l 417 415 -l 416 418 -l 420 419 -l 419 417 -l 418 420 -l 422 421 -l 421 419 -l 420 422 -l 424 423 -l 423 421 -l 422 424 -l 426 425 -l 425 423 -l 424 426 -l 428 427 -l 427 425 -l 426 428 -l 430 429 -l 429 427 -l 428 430 -l 432 431 -l 431 429 -l 430 432 -l 434 433 -l 433 431 -l 432 434 -l 436 435 -l 435 433 -l 434 436 -l 438 437 -l 437 435 -l 436 438 -l 440 439 -l 439 437 -l 438 440 -l 442 441 -l 441 439 -l 440 442 -l 444 443 -l 443 441 -l 442 444 -l 413 443 -l 444 414 -l 445 446 -l 446 447 -l 447 448 -l 448 445 -l 447 449 -l 449 450 -l 450 448 -l 449 451 -l 451 452 -l 452 450 -l 451 453 -l 453 454 -l 454 452 -l 453 455 -l 455 456 -l 456 454 -l 455 457 -l 457 458 -l 458 456 -l 457 459 -l 459 460 -l 460 458 -l 459 461 -l 461 462 -l 462 460 -l 461 463 -l 463 464 -l 464 462 -l 463 465 -l 465 466 -l 466 464 -l 465 467 -l 467 468 -l 468 466 -l 467 469 -l 469 470 -l 470 468 -l 469 471 -l 471 472 -l 472 470 -l 471 473 -l 473 474 -l 474 472 -l 473 475 -l 475 476 -l 476 474 -l 475 446 -l 445 476 -l 448 416 -l 414 445 -l 475 412 -l 397 446 -l 398 447 -l 444 476 -l 450 418 -l 399 449 -l 452 420 -l 400 451 -l 454 422 -l 401 453 -l 456 424 -l 402 455 -l 458 426 -l 403 457 -l 460 428 -l 404 459 -l 462 430 -l 405 461 -l 464 432 -l 406 463 -l 466 434 -l 407 465 -l 468 436 -l 408 467 -l 470 438 -l 409 469 -l 472 440 -l 410 471 -l 474 442 -l 411 473 +v -3.500000 1.000000 3.500000 +v 3.500000 1.000000 3.500000 +v -3.500000 1.000000 -3.500000 +v 3.500000 1.000000 -3.500000 +v -3.500000 5.000000 -3.500000 +v -3.500000 5.000000 3.500000 +v 3.500000 5.000000 3.500000 +v 3.500000 5.000000 -3.500000 +vt -0.000000 0.363636 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 0.000000 +vt 0.000000 0.363636 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.363636 +vt 0.000000 0.000000 +vt 1.000000 -0.000000 +vt -0.000000 -0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.363636 +vt 0.000000 0.000000 +vt 1.000000 0.363636 +vt 1.000000 0.363636 +vt 1.000000 0.363636 +vt 1.000000 0.363636 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 403/869/118 401/870/118 402/871/118 +f 399/872/119 404/873/119 400/874/119 +f 398/875/120 402/876/120 397/877/120 +f 400/878/121 403/869/121 398/879/121 +f 397/880/122 401/881/122 399/882/122 +f 403/869/118 404/883/118 401/870/118 +f 399/872/119 401/884/119 404/873/119 +f 398/875/120 403/885/120 402/876/120 +f 400/878/121 404/883/121 403/869/121 +f 397/880/122 402/886/122 401/881/122 o TenpennyTower v 0.625000 1.500000 0.375000 v 1.375000 1.500000 0.625000 @@ -2610,220 +2428,220 @@ vn -0.5657 0.6000 -0.5657 vn -0.5657 0.6000 0.5657 vn 0.0000 -1.0000 0.0000 s off -f 487/869/118 488/870/118 490/871/118 -f 486/872/119 492/873/119 481/874/119 -f 494/875/120 486/876/120 485/877/120 -f 482/878/121 492/879/121 491/880/121 -f 495/881/122 488/882/122 487/883/122 -f 497/884/123 489/885/123 488/886/123 -f 486/887/118 481/888/118 509/889/118 -f 501/890/124 490/891/124 489/892/124 -f 495/881/125 485/877/125 508/893/125 -f 505/894/119 507/895/119 509/896/119 -f 504/897/121 506/898/121 505/899/121 -f 509/900/120 508/901/120 510/902/120 -f 507/903/118 506/904/118 515/905/118 -f 482/878/126 490/891/126 502/906/126 -f 516/907/119 498/908/119 520/909/119 -f 519/910/126 496/911/126 515/912/126 -f 477/913/119 519/914/119 515/915/119 -f 477/916/125 511/917/125 518/918/125 -f 478/919/119 511/920/119 514/921/119 -f 499/922/123 536/923/123 524/924/123 -f 521/925/118 528/926/118 525/927/118 -f 523/928/118 525/927/118 524/929/118 -f 535/930/119 484/931/119 523/932/119 -f 522/933/118 526/934/118 528/926/118 -f 513/935/125 526/936/125 512/937/125 -f 483/938/125 523/939/125 484/940/125 -f 480/941/126 522/942/126 479/943/126 -f 500/944/119 528/945/119 513/946/119 -f 539/947/118 526/934/118 527/948/118 -f 499/949/126 525/950/126 500/951/126 -f 479/952/123 521/953/123 483/954/123 -f 527/955/119 537/956/119 539/957/119 -f 538/958/123 526/959/123 540/960/123 -f 524/929/118 535/961/118 523/928/118 -f 537/962/125 540/963/125 539/964/125 -f 536/965/126 533/966/126 535/967/126 -f 560/968/127 575/969/127 576/970/127 -f 565/971/128 583/972/128 567/973/128 -f 557/974/128 575/969/128 559/975/128 -f 565/971/129 582/976/129 581/977/129 -f 530/978/122 553/979/122 529/980/122 -f 543/981/121 560/982/121 544/983/121 -f 551/984/121 568/985/121 552/986/121 -f 544/983/124 558/987/124 542/988/124 -f 552/986/124 566/989/124 550/990/124 -f 529/980/120 555/991/120 531/992/120 -f 546/993/122 561/994/122 545/995/122 -f 545/995/120 563/996/120 547/997/120 -f 531/998/121 556/999/121 532/1000/121 -f 547/1001/121 564/1002/121 548/1003/121 -f 532/1000/124 554/1004/124 530/1005/124 -f 548/1003/124 562/1006/124 546/1007/124 -f 542/1008/122 557/1009/122 541/1010/122 -f 550/1011/122 565/1012/122 549/1013/122 -f 541/1010/120 559/1014/120 543/1015/120 -f 549/1013/120 567/1016/120 551/1017/120 -f 571/1018/118 570/1019/118 572/1020/118 -f 576/970/118 573/1021/118 574/1022/118 -f 579/1023/118 578/1024/118 580/1025/118 -f 584/1026/118 581/977/118 582/976/118 -f 567/973/127 584/1026/127 568/1027/127 -f 560/968/130 574/1022/130 558/1028/130 -f 554/1029/129 569/1030/129 553/1031/129 -f 568/1027/130 582/976/130 566/1032/130 -f 562/1033/129 577/1034/129 561/1035/129 -f 553/1031/128 571/1018/128 555/1036/128 -f 563/1037/128 577/1034/128 579/1023/128 -f 555/1036/127 572/1020/127 556/1038/127 -f 563/1037/127 580/1025/127 564/1039/127 -f 556/1038/130 570/1019/130 554/1029/130 -f 564/1039/130 578/1024/130 562/1033/130 -f 557/974/129 574/1022/129 573/1021/129 -f 615/1040/118 595/1041/118 596/1042/118 -f 594/1043/118 612/1044/118 593/1045/118 -f 598/1046/118 616/1047/118 597/1048/118 -f 610/1049/122 608/1050/122 611/1051/122 -f 602/1052/119 604/1053/119 601/1054/119 -f 602/1052/131 590/1055/131 591/1056/131 -f 607/1057/124 613/1058/124 616/1047/124 -f 604/1053/118 594/1043/118 595/1041/118 -f 589/1059/131 601/1054/131 614/1060/131 -f 606/1061/123 608/1050/123 605/1062/123 -f 606/1061/131 586/1063/131 587/1064/131 -f 603/1065/120 609/1066/120 612/1044/120 -f 608/1050/118 598/1046/118 599/1067/118 -f 585/1068/131 605/1062/131 610/1049/131 -f 610/1049/125 612/1044/125 609/1066/125 -f 610/1049/131 592/1069/131 585/1068/131 -f 611/1051/118 599/1067/118 600/1070/118 -f 612/1044/118 600/1070/118 593/1045/118 -f 606/1061/131 588/1071/131 613/1058/131 -f 614/1060/126 616/1047/126 613/1058/126 -f 614/1060/131 588/1071/131 589/1059/131 -f 614/1060/121 604/1053/121 615/1040/121 -f 616/1047/118 596/1042/118 597/1048/118 -f 602/1052/131 592/1069/131 609/1066/131 -f 488/870/118 489/1072/118 490/871/118 -f 490/871/118 491/1073/118 494/1074/118 -f 491/1073/118 492/1075/118 494/1074/118 -f 492/1075/118 493/1076/118 494/1074/118 -f 494/1074/118 487/869/118 490/871/118 -f 486/872/119 493/1077/119 492/873/119 -f 494/875/120 493/1078/120 486/876/120 -f 482/878/121 481/1079/121 492/879/121 -f 495/881/122 497/1080/122 488/882/122 -f 497/884/123 501/1081/123 489/885/123 -f 481/888/118 482/1082/118 504/1083/118 -f 504/1083/118 505/1084/118 481/888/118 -f 505/1084/118 509/889/118 481/888/118 -f 509/889/118 510/1085/118 486/887/118 -f 510/1085/118 485/1086/118 486/887/118 -f 501/890/124 502/906/124 490/891/124 -f 495/881/125 487/883/125 485/877/125 -f 487/883/125 494/875/125 485/877/125 -f 485/877/125 510/1087/125 508/893/125 -f 516/1088/125 520/1089/125 508/893/125 -f 520/1089/125 495/881/125 508/893/125 -f 505/894/119 506/1090/119 507/895/119 -f 504/897/121 503/1091/121 506/898/121 -f 509/900/120 507/1092/120 508/901/120 -f 503/1093/118 478/1094/118 477/1095/118 -f 478/1094/118 514/1096/118 477/1095/118 -f 506/904/118 503/1093/118 477/1095/118 -f 515/905/118 496/1097/118 516/1098/118 -f 506/904/118 477/1095/118 515/905/118 -f 516/1098/118 508/1099/118 515/905/118 -f 508/1099/118 507/903/118 515/905/118 -f 503/1100/126 504/1101/126 482/878/126 -f 482/878/126 491/880/126 490/891/126 -f 502/906/126 517/1102/126 503/1100/126 -f 517/1102/126 478/1103/126 503/1100/126 -f 503/1100/126 482/878/126 502/906/126 -f 516/907/119 496/1104/119 498/908/119 -f 519/910/126 498/1105/126 496/911/126 -f 477/913/119 518/1106/119 519/914/119 -f 477/916/125 514/1107/125 511/917/125 -f 478/919/119 517/1108/119 511/920/119 -f 499/922/123 534/1109/123 536/923/123 -f 521/925/118 522/933/118 528/926/118 -f 523/928/118 521/925/118 525/927/118 -f 535/930/119 533/1110/119 484/931/119 -f 522/933/118 527/948/118 526/934/118 -f 513/935/125 528/1111/125 526/936/125 -f 483/938/125 521/1112/125 523/939/125 -f 480/941/126 527/1113/126 522/942/126 -f 500/944/119 525/1114/119 528/945/119 -f 539/947/118 540/1115/118 526/934/118 -f 499/949/126 524/1116/126 525/950/126 -f 479/952/123 522/1117/123 521/953/123 -f 527/955/119 480/1118/119 537/956/119 -f 538/958/123 512/1119/123 526/959/123 -f 524/929/118 536/1120/118 535/961/118 -f 537/962/125 538/1121/125 540/963/125 -f 536/965/126 534/1122/126 533/966/126 -f 560/968/127 559/975/127 575/969/127 -f 565/971/128 581/977/128 583/972/128 -f 557/974/128 573/1021/128 575/969/128 -f 565/971/129 566/1032/129 582/976/129 -f 530/978/122 554/1123/122 553/979/122 -f 543/981/121 559/1124/121 560/982/121 -f 551/984/121 567/1125/121 568/985/121 -f 544/983/124 560/982/124 558/987/124 -f 552/986/124 568/985/124 566/989/124 -f 529/980/120 553/979/120 555/991/120 -f 546/993/122 562/1126/122 561/994/122 -f 545/995/120 561/994/120 563/996/120 -f 531/998/121 555/1127/121 556/999/121 -f 547/1001/121 563/1128/121 564/1002/121 -f 532/1000/124 556/999/124 554/1004/124 -f 548/1003/124 564/1002/124 562/1006/124 -f 542/1008/122 558/1129/122 557/1009/122 -f 550/1011/122 566/1130/122 565/1012/122 -f 541/1010/120 557/1009/120 559/1014/120 -f 549/1013/120 565/1012/120 567/1016/120 -f 571/1018/118 569/1030/118 570/1019/118 -f 576/970/118 575/969/118 573/1021/118 -f 579/1023/118 577/1034/118 578/1024/118 -f 584/1026/118 583/972/118 581/977/118 -f 567/973/127 583/972/127 584/1026/127 -f 560/968/130 576/970/130 574/1022/130 -f 554/1029/129 570/1019/129 569/1030/129 -f 568/1027/130 584/1026/130 582/976/130 -f 562/1033/129 578/1024/129 577/1034/129 -f 553/1031/128 569/1030/128 571/1018/128 -f 563/1037/128 561/1035/128 577/1034/128 -f 555/1036/127 571/1018/127 572/1020/127 -f 563/1037/127 579/1023/127 580/1025/127 -f 556/1038/130 572/1020/130 570/1019/130 -f 564/1039/130 580/1025/130 578/1024/130 -f 557/974/129 558/1028/129 574/1022/129 -f 615/1040/118 604/1053/118 595/1041/118 -f 594/1043/118 603/1065/118 612/1044/118 -f 598/1046/118 607/1057/118 616/1047/118 -f 610/1049/122 605/1062/122 608/1050/122 -f 602/1052/119 603/1065/119 604/1053/119 -f 602/1052/131 601/1054/131 590/1055/131 -f 607/1057/124 606/1061/124 613/1058/124 -f 604/1053/118 603/1065/118 594/1043/118 -f 589/1059/131 590/1055/131 601/1054/131 -f 606/1061/123 607/1057/123 608/1050/123 -f 606/1061/131 605/1062/131 586/1063/131 -f 603/1065/120 602/1052/120 609/1066/120 -f 608/1050/118 607/1057/118 598/1046/118 -f 585/1068/131 586/1063/131 605/1062/131 -f 610/1049/125 611/1051/125 612/1044/125 -f 610/1049/131 609/1066/131 592/1069/131 -f 611/1051/118 608/1050/118 599/1067/118 -f 612/1044/118 611/1051/118 600/1070/118 -f 606/1061/131 587/1064/131 588/1071/131 -f 614/1060/126 615/1040/126 616/1047/126 -f 614/1060/131 613/1058/131 588/1071/131 -f 614/1060/121 601/1054/121 604/1053/121 -f 616/1047/118 615/1040/118 596/1042/118 -f 602/1052/131 591/1056/131 592/1069/131 +f 415/887/123 416/888/123 418/889/123 +f 414/890/124 420/891/124 409/892/124 +f 422/893/125 414/894/125 413/895/125 +f 410/896/126 420/897/126 419/898/126 +f 423/899/127 416/900/127 415/901/127 +f 425/902/128 417/903/128 416/904/128 +f 414/905/123 409/906/123 437/907/123 +f 429/908/129 418/909/129 417/910/129 +f 423/899/130 413/895/130 436/911/130 +f 433/912/124 435/913/124 437/914/124 +f 432/915/126 434/916/126 433/917/126 +f 437/918/125 436/919/125 438/920/125 +f 435/921/123 434/922/123 443/923/123 +f 410/896/131 418/909/131 430/924/131 +f 444/925/124 426/926/124 448/927/124 +f 447/928/131 424/929/131 443/930/131 +f 405/931/124 447/932/124 443/933/124 +f 405/934/130 439/935/130 446/936/130 +f 406/937/124 439/938/124 442/939/124 +f 427/940/128 464/941/128 452/942/128 +f 449/943/123 456/944/123 453/945/123 +f 451/946/123 453/945/123 452/947/123 +f 463/948/124 412/949/124 451/950/124 +f 450/951/123 454/952/123 456/944/123 +f 441/953/130 454/954/130 440/955/130 +f 411/956/130 451/957/130 412/958/130 +f 408/959/131 450/960/131 407/961/131 +f 428/962/124 456/963/124 441/964/124 +f 467/965/123 454/952/123 455/966/123 +f 427/967/131 453/968/131 428/969/131 +f 407/970/128 449/971/128 411/972/128 +f 455/973/124 465/974/124 467/975/124 +f 466/976/128 454/977/128 468/978/128 +f 452/947/123 463/979/123 451/946/123 +f 465/980/130 468/981/130 467/982/130 +f 464/983/131 461/984/131 463/985/131 +f 488/986/132 503/987/132 504/988/132 +f 493/989/133 511/990/133 495/991/133 +f 485/992/133 503/987/133 487/993/133 +f 493/989/134 510/994/134 509/995/134 +f 458/996/127 481/997/127 457/998/127 +f 471/999/126 488/1000/126 472/1001/126 +f 479/1002/126 496/1003/126 480/1004/126 +f 472/1001/129 486/1005/129 470/1006/129 +f 480/1004/129 494/1007/129 478/1008/129 +f 457/998/125 483/1009/125 459/1010/125 +f 474/1011/127 489/1012/127 473/1013/127 +f 473/1013/125 491/1014/125 475/1015/125 +f 459/1016/126 484/1017/126 460/1018/126 +f 475/1019/126 492/1020/126 476/1021/126 +f 460/1018/129 482/1022/129 458/1023/129 +f 476/1021/129 490/1024/129 474/1025/129 +f 470/1026/127 485/1027/127 469/1028/127 +f 478/1029/127 493/1030/127 477/1031/127 +f 469/1028/125 487/1032/125 471/1033/125 +f 477/1031/125 495/1034/125 479/1035/125 +f 499/1036/123 498/1037/123 500/1038/123 +f 504/988/123 501/1039/123 502/1040/123 +f 507/1041/123 506/1042/123 508/1043/123 +f 512/1044/123 509/995/123 510/994/123 +f 495/991/132 512/1044/132 496/1045/132 +f 488/986/135 502/1040/135 486/1046/135 +f 482/1047/134 497/1048/134 481/1049/134 +f 496/1045/135 510/994/135 494/1050/135 +f 490/1051/134 505/1052/134 489/1053/134 +f 481/1049/133 499/1036/133 483/1054/133 +f 491/1055/133 505/1052/133 507/1041/133 +f 483/1054/132 500/1038/132 484/1056/132 +f 491/1055/132 508/1043/132 492/1057/132 +f 484/1056/135 498/1037/135 482/1047/135 +f 492/1057/135 506/1042/135 490/1051/135 +f 485/992/134 502/1040/134 501/1039/134 +f 543/1058/123 523/1059/123 524/1060/123 +f 522/1061/123 540/1062/123 521/1063/123 +f 526/1064/123 544/1065/123 525/1066/123 +f 538/1067/127 536/1068/127 539/1069/127 +f 530/1070/124 532/1071/124 529/1072/124 +f 530/1070/136 518/1073/136 519/1074/136 +f 535/1075/129 541/1076/129 544/1065/129 +f 532/1071/123 522/1061/123 523/1059/123 +f 517/1077/136 529/1072/136 542/1078/136 +f 534/1079/128 536/1068/128 533/1080/128 +f 534/1079/136 514/1081/136 515/1082/136 +f 531/1083/125 537/1084/125 540/1062/125 +f 536/1068/123 526/1064/123 527/1085/123 +f 513/1086/136 533/1080/136 538/1067/136 +f 538/1067/130 540/1062/130 537/1084/130 +f 538/1067/136 520/1087/136 513/1086/136 +f 539/1069/123 527/1085/123 528/1088/123 +f 540/1062/123 528/1088/123 521/1063/123 +f 534/1079/136 516/1089/136 541/1076/136 +f 542/1078/131 544/1065/131 541/1076/131 +f 542/1078/136 516/1089/136 517/1077/136 +f 542/1078/126 532/1071/126 543/1058/126 +f 544/1065/123 524/1060/123 525/1066/123 +f 530/1070/136 520/1087/136 537/1084/136 +f 416/888/123 417/1090/123 418/889/123 +f 418/889/123 419/1091/123 422/1092/123 +f 419/1091/123 420/1093/123 422/1092/123 +f 420/1093/123 421/1094/123 422/1092/123 +f 422/1092/123 415/887/123 418/889/123 +f 414/890/124 421/1095/124 420/891/124 +f 422/893/125 421/1096/125 414/894/125 +f 410/896/126 409/1097/126 420/897/126 +f 423/899/127 425/1098/127 416/900/127 +f 425/902/128 429/1099/128 417/903/128 +f 409/906/123 410/1100/123 432/1101/123 +f 432/1101/123 433/1102/123 409/906/123 +f 433/1102/123 437/907/123 409/906/123 +f 437/907/123 438/1103/123 414/905/123 +f 438/1103/123 413/1104/123 414/905/123 +f 429/908/129 430/924/129 418/909/129 +f 423/899/130 415/901/130 413/895/130 +f 415/901/130 422/893/130 413/895/130 +f 413/895/130 438/1105/130 436/911/130 +f 444/1106/130 448/1107/130 436/911/130 +f 448/1107/130 423/899/130 436/911/130 +f 433/912/124 434/1108/124 435/913/124 +f 432/915/126 431/1109/126 434/916/126 +f 437/918/125 435/1110/125 436/919/125 +f 431/1111/123 406/1112/123 405/1113/123 +f 406/1112/123 442/1114/123 405/1113/123 +f 434/922/123 431/1111/123 405/1113/123 +f 443/923/123 424/1115/123 444/1116/123 +f 434/922/123 405/1113/123 443/923/123 +f 444/1116/123 436/1117/123 443/923/123 +f 436/1117/123 435/921/123 443/923/123 +f 431/1118/131 432/1119/131 410/896/131 +f 410/896/131 419/898/131 418/909/131 +f 430/924/131 445/1120/131 431/1118/131 +f 445/1120/131 406/1121/131 431/1118/131 +f 431/1118/131 410/896/131 430/924/131 +f 444/925/124 424/1122/124 426/926/124 +f 447/928/131 426/1123/131 424/929/131 +f 405/931/124 446/1124/124 447/932/124 +f 405/934/130 442/1125/130 439/935/130 +f 406/937/124 445/1126/124 439/938/124 +f 427/940/128 462/1127/128 464/941/128 +f 449/943/123 450/951/123 456/944/123 +f 451/946/123 449/943/123 453/945/123 +f 463/948/124 461/1128/124 412/949/124 +f 450/951/123 455/966/123 454/952/123 +f 441/953/130 456/1129/130 454/954/130 +f 411/956/130 449/1130/130 451/957/130 +f 408/959/131 455/1131/131 450/960/131 +f 428/962/124 453/1132/124 456/963/124 +f 467/965/123 468/1133/123 454/952/123 +f 427/967/131 452/1134/131 453/968/131 +f 407/970/128 450/1135/128 449/971/128 +f 455/973/124 408/1136/124 465/974/124 +f 466/976/128 440/1137/128 454/977/128 +f 452/947/123 464/1138/123 463/979/123 +f 465/980/130 466/1139/130 468/981/130 +f 464/983/131 462/1140/131 461/984/131 +f 488/986/132 487/993/132 503/987/132 +f 493/989/133 509/995/133 511/990/133 +f 485/992/133 501/1039/133 503/987/133 +f 493/989/134 494/1050/134 510/994/134 +f 458/996/127 482/1141/127 481/997/127 +f 471/999/126 487/1142/126 488/1000/126 +f 479/1002/126 495/1143/126 496/1003/126 +f 472/1001/129 488/1000/129 486/1005/129 +f 480/1004/129 496/1003/129 494/1007/129 +f 457/998/125 481/997/125 483/1009/125 +f 474/1011/127 490/1144/127 489/1012/127 +f 473/1013/125 489/1012/125 491/1014/125 +f 459/1016/126 483/1145/126 484/1017/126 +f 475/1019/126 491/1146/126 492/1020/126 +f 460/1018/129 484/1017/129 482/1022/129 +f 476/1021/129 492/1020/129 490/1024/129 +f 470/1026/127 486/1147/127 485/1027/127 +f 478/1029/127 494/1148/127 493/1030/127 +f 469/1028/125 485/1027/125 487/1032/125 +f 477/1031/125 493/1030/125 495/1034/125 +f 499/1036/123 497/1048/123 498/1037/123 +f 504/988/123 503/987/123 501/1039/123 +f 507/1041/123 505/1052/123 506/1042/123 +f 512/1044/123 511/990/123 509/995/123 +f 495/991/132 511/990/132 512/1044/132 +f 488/986/135 504/988/135 502/1040/135 +f 482/1047/134 498/1037/134 497/1048/134 +f 496/1045/135 512/1044/135 510/994/135 +f 490/1051/134 506/1042/134 505/1052/134 +f 481/1049/133 497/1048/133 499/1036/133 +f 491/1055/133 489/1053/133 505/1052/133 +f 483/1054/132 499/1036/132 500/1038/132 +f 491/1055/132 507/1041/132 508/1043/132 +f 484/1056/135 500/1038/135 498/1037/135 +f 492/1057/135 508/1043/135 506/1042/135 +f 485/992/134 486/1046/134 502/1040/134 +f 543/1058/123 532/1071/123 523/1059/123 +f 522/1061/123 531/1083/123 540/1062/123 +f 526/1064/123 535/1075/123 544/1065/123 +f 538/1067/127 533/1080/127 536/1068/127 +f 530/1070/124 531/1083/124 532/1071/124 +f 530/1070/136 529/1072/136 518/1073/136 +f 535/1075/129 534/1079/129 541/1076/129 +f 532/1071/123 531/1083/123 522/1061/123 +f 517/1077/136 518/1073/136 529/1072/136 +f 534/1079/128 535/1075/128 536/1068/128 +f 534/1079/136 533/1080/136 514/1081/136 +f 531/1083/125 530/1070/125 537/1084/125 +f 536/1068/123 535/1075/123 526/1064/123 +f 513/1086/136 514/1081/136 533/1080/136 +f 538/1067/130 539/1069/130 540/1062/130 +f 538/1067/136 537/1084/136 520/1087/136 +f 539/1069/123 536/1068/123 527/1085/123 +f 540/1062/123 539/1069/123 528/1088/123 +f 534/1079/136 515/1082/136 516/1089/136 +f 542/1078/131 543/1058/131 544/1065/131 +f 542/1078/136 541/1076/136 516/1089/136 +f 542/1078/126 529/1072/126 532/1071/126 +f 544/1065/123 543/1058/123 524/1060/123 +f 530/1070/136 519/1074/136 520/1087/136 o RivetCity v -0.750000 1.000000 2.750000 v -1.000000 1.000000 2.250000 @@ -3273,367 +3091,238 @@ vn 0.8649 0.4973 0.0679 vn -0.8196 -0.1731 -0.5462 vn 0.0514 0.9272 -0.3710 s off -f 687/1131/132 624/1132/132 619/1133/132 -f 622/1134/133 618/1135/133 617/1136/133 -f 624/1137/134 620/1138/134 619/1139/134 -f 624/1140/135 628/1141/135 623/1142/135 -f 621/1143/135 631/1144/135 632/1145/135 -f 627/1146/134 626/1147/134 628/1148/134 -f 694/1149/132 625/1150/132 627/1151/132 -f 692/1152/135 627/1153/135 624/1140/135 -f 631/1154/133 630/1155/133 632/1156/133 -f 622/1134/136 620/1138/136 623/1157/136 -f 629/1158/136 622/1134/136 623/1157/136 -f 647/1159/137 646/1160/137 645/1161/137 -f 695/1162/137 635/1163/137 636/1164/137 -f 636/1165/136 634/1166/136 633/1167/136 -f 635/1168/138 691/1169/138 634/1170/138 -f 644/1171/138 647/1172/138 643/1173/138 -f 643/1174/139 637/1175/139 639/1176/139 -f 644/1171/138 639/1177/138 640/1178/138 -f 642/1179/136 640/1180/136 638/1181/136 -f 641/1182/132 638/1183/132 637/1184/132 -f 642/1179/140 648/1185/140 644/1186/140 -f 641/1182/132 646/1187/132 642/1188/132 -f 643/1174/141 645/1189/141 641/1190/141 -f 655/1191/137 653/1192/137 654/1193/137 -f 651/1194/139 656/1195/139 652/1196/139 -f 650/1197/136 654/1198/136 649/1199/136 -f 652/1200/132 655/1201/132 650/1202/132 -f 649/1203/138 653/1204/138 651/1205/138 -f 662/1206/139 660/1207/139 661/1208/139 -f 663/1209/136 657/1210/136 664/1211/136 -f 661/1212/132 658/1213/132 663/1214/132 -f 664/1215/138 659/1216/138 662/1217/138 -f 658/1218/137 659/1219/137 657/1220/137 -f 668/1221/142 665/1222/142 666/1223/142 -f 670/1224/137 667/1225/137 668/1226/137 -f 672/1227/138 669/1228/138 670/1229/138 -f 665/1230/136 669/1231/136 671/1232/136 -f 666/1233/139 670/1234/139 668/1235/139 -f 679/1236/137 677/1237/137 678/1238/137 -f 676/1239/132 679/1240/132 674/1241/132 -f 673/1242/138 677/1243/138 675/1244/138 -f 675/1245/139 680/1246/139 676/1247/139 -f 674/1248/136 678/1249/136 673/1250/136 -f 683/1251/137 682/1252/137 681/1253/137 -f 625/1254/137 696/1255/137 633/1256/137 -f 633/1257/137 629/1258/137 626/1259/137 -f 691/1260/137 686/1261/137 630/1262/137 -f 689/1263/138 621/1264/138 688/1265/138 -f 688/1266/135 632/1145/135 685/1267/135 -f 696/1268/139 692/1269/139 688/1270/139 -f 695/1271/132 633/1272/132 696/1273/132 -f 685/1274/138 630/1275/138 686/1276/138 -f 716/1277/143 720/1278/143 715/1279/143 -f 704/1280/144 705/1281/144 701/1282/144 -f 697/1283/145 700/1284/145 698/1285/145 -f 699/1286/145 703/1287/145 704/1288/145 -f 697/1289/138 712/1290/138 699/1291/138 -f 712/1292/146 703/1293/146 699/1294/146 -f 703/1295/138 710/1296/138 704/1297/138 -f 708/1298/132 720/1299/132 705/1300/132 -f 707/1301/145 705/1302/145 706/1303/145 -f 719/1304/144 707/1305/144 714/1306/144 -f 716/1277/146 702/1307/146 718/1308/146 -f 710/1309/144 706/1303/144 704/1288/144 -f 717/1310/144 705/1302/144 720/1311/144 -f 717/1312/132 702/1313/132 701/1314/132 -f 716/1315/132 698/1316/132 700/1317/132 -f 714/1318/138 706/1319/138 715/1320/138 -f 722/1321/147 723/1322/147 721/1323/147 -f 723/1324/148 726/1325/148 725/1326/148 -f 726/1325/149 727/1327/149 725/1326/149 -f 728/1328/150 729/1329/150 727/1327/150 -f 724/1330/151 733/1331/151 726/1332/151 -f 732/1333/152 731/1334/152 736/1335/152 -f 731/1334/153 722/1321/153 721/1323/153 -f 727/1327/154 729/1329/154 736/1336/154 -f 728/1328/152 727/1327/152 734/1337/152 -f 730/1338/155 733/1339/155 732/1340/155 -f 726/1325/156 733/1341/156 728/1328/156 -f 732/1333/157 733/1342/157 722/1321/157 -f 722/1321/158 733/1342/158 724/1343/158 -f 728/1328/159 733/1341/159 730/1344/159 -f 721/1345/152 722/1346/152 735/1347/152 -f 737/1348/160 738/1349/160 739/1350/160 -f 687/1131/132 692/1351/132 624/1132/132 -f 622/1134/133 621/1352/133 618/1135/133 -f 624/1137/134 623/1157/134 620/1138/134 -f 624/1140/135 627/1153/135 628/1141/135 -f 621/1143/135 622/1353/135 631/1144/135 -f 627/1146/134 625/1354/134 626/1147/134 -f 694/1149/132 693/1355/132 625/1150/132 -f 692/1152/135 694/1356/135 627/1153/135 -f 631/1154/133 629/1158/133 630/1155/133 -f 622/1134/136 617/1136/136 620/1138/136 -f 628/1148/136 626/1147/136 623/1157/136 -f 626/1147/136 629/1158/136 623/1157/136 -f 629/1158/136 631/1154/136 622/1134/136 -f 647/1159/137 648/1357/137 646/1160/137 -f 695/1162/137 690/1358/137 635/1163/137 -f 636/1165/136 635/1359/136 634/1166/136 -f 635/1168/138 690/1360/138 691/1169/138 -f 644/1171/138 648/1361/138 647/1172/138 -f 643/1174/139 641/1190/139 637/1175/139 -f 644/1171/138 643/1173/138 639/1177/138 -f 642/1179/136 644/1186/136 640/1180/136 -f 641/1182/132 642/1188/132 638/1183/132 -f 642/1179/140 646/1362/140 648/1185/140 -f 641/1182/132 645/1363/132 646/1187/132 -f 643/1174/141 647/1364/141 645/1189/141 -f 655/1191/137 656/1365/137 653/1192/137 -f 651/1194/139 653/1366/139 656/1195/139 -f 650/1197/136 655/1367/136 654/1198/136 -f 652/1200/132 656/1368/132 655/1201/132 -f 649/1203/138 654/1369/138 653/1204/138 -f 662/1206/139 659/1370/139 660/1207/139 -f 663/1209/136 658/1371/136 657/1210/136 -f 661/1212/132 660/1372/132 658/1213/132 -f 664/1215/138 657/1373/138 659/1216/138 -f 658/1218/137 660/1374/137 659/1219/137 -f 668/1221/142 667/1375/142 665/1222/142 -f 670/1224/137 669/1376/137 667/1225/137 -f 672/1227/138 671/1377/138 669/1228/138 -f 665/1230/136 667/1378/136 669/1231/136 -f 666/1233/139 672/1379/139 670/1234/139 -f 679/1236/137 680/1380/137 677/1237/137 -f 676/1239/132 680/1381/132 679/1240/132 -f 673/1242/138 678/1382/138 677/1243/138 -f 675/1245/139 677/1383/139 680/1246/139 -f 674/1248/136 679/1384/136 678/1249/136 -f 683/1251/137 684/1385/137 682/1252/137 -f 633/1256/137 626/1386/137 625/1254/137 -f 625/1254/137 693/1387/137 696/1255/137 -f 633/1257/137 634/1388/137 629/1258/137 -f 630/1262/137 629/1389/137 634/1390/137 -f 634/1390/137 691/1260/137 630/1262/137 -f 689/1263/138 618/1391/138 621/1264/138 -f 688/1266/135 621/1143/135 632/1145/135 -f 685/1392/139 686/1393/139 691/1394/139 -f 691/1394/139 690/1395/139 695/1396/139 -f 696/1268/139 693/1397/139 694/1398/139 -f 691/1394/139 695/1396/139 696/1268/139 -f 688/1270/139 685/1392/139 691/1394/139 -f 687/1399/139 689/1400/139 688/1270/139 -f 696/1268/139 694/1398/139 692/1269/139 -f 692/1269/139 687/1399/139 688/1270/139 -f 688/1270/139 691/1394/139 696/1268/139 -f 695/1271/132 636/1401/132 633/1272/132 -f 685/1274/138 632/1402/138 630/1275/138 -f 710/1403/143 709/1404/143 715/1279/143 -f 709/1404/143 712/1292/143 715/1279/143 -f 712/1292/143 713/1405/143 711/1406/143 -f 716/1277/143 718/1308/143 720/1278/143 -f 718/1308/143 717/1407/143 720/1278/143 -f 712/1292/143 711/1406/143 716/1277/143 -f 719/1304/143 714/1306/143 715/1279/143 -f 720/1278/143 719/1304/143 715/1279/143 -f 715/1279/143 712/1292/143 716/1277/143 -f 704/1280/144 706/1408/144 705/1281/144 -f 697/1283/145 699/1294/145 700/1284/145 -f 704/1288/145 701/1409/145 700/1410/145 -f 701/1409/145 702/1411/145 700/1410/145 -f 700/1410/145 699/1286/145 704/1288/145 -f 697/1289/138 713/1412/138 712/1290/138 -f 712/1292/146 709/1404/146 703/1293/146 -f 703/1295/138 709/1413/138 710/1296/138 -f 708/1298/132 719/1414/132 720/1299/132 -f 707/1301/145 708/1415/145 705/1302/145 -f 719/1304/144 708/1416/144 707/1305/144 -f 716/1277/146 700/1284/146 702/1307/146 -f 710/1309/144 715/1417/144 706/1303/144 -f 717/1310/144 701/1409/144 705/1302/144 -f 717/1312/132 718/1418/132 702/1313/132 -f 716/1315/132 711/1419/132 698/1316/132 -f 714/1318/138 707/1420/138 706/1319/138 -f 722/1321/147 724/1343/147 723/1322/147 -f 723/1324/148 724/1421/148 726/1325/148 -f 726/1325/149 728/1328/149 727/1327/149 -f 728/1328/150 730/1344/150 729/1329/150 -f 736/1335/161 729/1422/161 730/1423/161 -f 730/1423/152 732/1333/152 736/1335/152 -f 731/1334/153 732/1333/153 722/1321/153 -f 731/1424/154 721/1345/154 736/1336/154 -f 721/1345/154 723/1324/154 736/1336/154 -f 723/1324/154 725/1326/154 736/1336/154 -f 725/1326/154 727/1327/154 736/1336/154 +f 615/1149/137 552/1150/137 547/1151/137 +f 550/1152/138 546/1153/138 545/1154/138 +f 552/1155/139 548/1156/139 547/1157/139 +f 552/1158/140 556/1159/140 551/1160/140 +f 549/1161/140 559/1162/140 560/1163/140 +f 555/1164/139 554/1165/139 556/1166/139 +f 622/1167/137 553/1168/137 555/1169/137 +f 620/1170/140 555/1171/140 552/1158/140 +f 559/1172/138 558/1173/138 560/1174/138 +f 550/1152/141 548/1156/141 551/1175/141 +f 557/1176/141 550/1152/141 551/1175/141 +f 575/1177/142 574/1178/142 573/1179/142 +f 623/1180/142 563/1181/142 564/1182/142 +f 564/1183/141 562/1184/141 561/1185/141 +f 563/1186/143 619/1187/143 562/1188/143 +f 572/1189/143 575/1190/143 571/1191/143 +f 571/1192/144 565/1193/144 567/1194/144 +f 572/1189/143 567/1195/143 568/1196/143 +f 570/1197/141 568/1198/141 566/1199/141 +f 569/1200/137 566/1201/137 565/1202/137 +f 570/1197/145 576/1203/145 572/1204/145 +f 569/1200/137 574/1205/137 570/1206/137 +f 571/1192/146 573/1207/146 569/1208/146 +f 583/1209/142 581/1210/142 582/1211/142 +f 579/1212/144 584/1213/144 580/1214/144 +f 578/1215/141 582/1216/141 577/1217/141 +f 580/1218/137 583/1219/137 578/1220/137 +f 577/1221/143 581/1222/143 579/1223/143 +f 590/1224/144 588/1225/144 589/1226/144 +f 591/1227/141 585/1228/141 592/1229/141 +f 589/1230/137 586/1231/137 591/1232/137 +f 592/1233/143 587/1234/143 590/1235/143 +f 586/1236/142 587/1237/142 585/1238/142 +f 596/1239/147 593/1240/147 594/1241/147 +f 598/1242/142 595/1243/142 596/1244/142 +f 600/1245/143 597/1246/143 598/1247/143 +f 593/1248/141 597/1249/141 599/1250/141 +f 594/1251/144 598/1252/144 596/1253/144 +f 607/1254/142 605/1255/142 606/1256/142 +f 604/1257/137 607/1258/137 602/1259/137 +f 601/1260/143 605/1261/143 603/1262/143 +f 603/1263/144 608/1264/144 604/1265/144 +f 602/1266/141 606/1267/141 601/1268/141 +f 611/1269/142 610/1270/142 609/1271/142 +f 553/1272/142 624/1273/142 561/1274/142 +f 561/1275/142 557/1276/142 554/1277/142 +f 619/1278/142 614/1279/142 558/1280/142 +f 617/1281/143 549/1282/143 616/1283/143 +f 616/1284/140 560/1163/140 613/1285/140 +f 624/1286/144 620/1287/144 616/1288/144 +f 623/1289/137 561/1290/137 624/1291/137 +f 613/1292/143 558/1293/143 614/1294/143 +f 644/1295/148 648/1296/148 643/1297/148 +f 632/1298/149 633/1299/149 629/1300/149 +f 625/1301/150 628/1302/150 626/1303/150 +f 627/1304/150 631/1305/150 632/1306/150 +f 625/1307/143 640/1308/143 627/1309/143 +f 640/1310/151 631/1311/151 627/1312/151 +f 631/1313/143 638/1314/143 632/1315/143 +f 636/1316/137 648/1317/137 633/1318/137 +f 635/1319/150 633/1320/150 634/1321/150 +f 647/1322/149 635/1323/149 642/1324/149 +f 644/1295/151 630/1325/151 646/1326/151 +f 638/1327/149 634/1321/149 632/1306/149 +f 645/1328/149 633/1320/149 648/1329/149 +f 645/1330/137 630/1331/137 629/1332/137 +f 644/1333/137 626/1334/137 628/1335/137 +f 642/1336/143 634/1337/143 643/1338/143 +f 650/1339/152 651/1340/152 649/1341/152 +f 651/1342/153 654/1343/153 653/1344/153 +f 654/1343/154 655/1345/154 653/1344/154 +f 656/1346/155 657/1347/155 655/1345/155 +f 652/1348/156 661/1349/156 654/1350/156 +f 660/1351/157 659/1352/157 664/1353/157 +f 659/1352/158 650/1339/158 649/1341/158 +f 655/1345/159 657/1347/159 664/1354/159 +f 656/1346/157 655/1345/157 662/1355/157 +f 658/1356/160 661/1357/160 660/1358/160 +f 654/1343/161 661/1359/161 656/1346/161 +f 660/1351/162 661/1360/162 650/1339/162 +f 650/1339/163 661/1360/163 652/1361/163 +f 656/1346/164 661/1359/164 658/1362/164 +f 649/1363/157 650/1364/157 663/1365/157 +f 665/1366/165 666/1367/165 667/1368/165 +f 615/1149/137 620/1369/137 552/1150/137 +f 550/1152/138 549/1370/138 546/1153/138 +f 552/1155/139 551/1175/139 548/1156/139 +f 552/1158/140 555/1171/140 556/1159/140 +f 549/1161/140 550/1371/140 559/1162/140 +f 555/1164/139 553/1372/139 554/1165/139 +f 622/1167/137 621/1373/137 553/1168/137 +f 620/1170/140 622/1374/140 555/1171/140 +f 559/1172/138 557/1176/138 558/1173/138 +f 550/1152/141 545/1154/141 548/1156/141 +f 556/1166/141 554/1165/141 551/1175/141 +f 554/1165/141 557/1176/141 551/1175/141 +f 557/1176/141 559/1172/141 550/1152/141 +f 575/1177/142 576/1375/142 574/1178/142 +f 623/1180/142 618/1376/142 563/1181/142 +f 564/1183/141 563/1377/141 562/1184/141 +f 563/1186/143 618/1378/143 619/1187/143 +f 572/1189/143 576/1379/143 575/1190/143 +f 571/1192/144 569/1208/144 565/1193/144 +f 572/1189/143 571/1191/143 567/1195/143 +f 570/1197/141 572/1204/141 568/1198/141 +f 569/1200/137 570/1206/137 566/1201/137 +f 570/1197/145 574/1380/145 576/1203/145 +f 569/1200/137 573/1381/137 574/1205/137 +f 571/1192/146 575/1382/146 573/1207/146 +f 583/1209/142 584/1383/142 581/1210/142 +f 579/1212/144 581/1384/144 584/1213/144 +f 578/1215/141 583/1385/141 582/1216/141 +f 580/1218/137 584/1386/137 583/1219/137 +f 577/1221/143 582/1387/143 581/1222/143 +f 590/1224/144 587/1388/144 588/1225/144 +f 591/1227/141 586/1389/141 585/1228/141 +f 589/1230/137 588/1390/137 586/1231/137 +f 592/1233/143 585/1391/143 587/1234/143 +f 586/1236/142 588/1392/142 587/1237/142 +f 596/1239/147 595/1393/147 593/1240/147 +f 598/1242/142 597/1394/142 595/1243/142 +f 600/1245/143 599/1395/143 597/1246/143 +f 593/1248/141 595/1396/141 597/1249/141 +f 594/1251/144 600/1397/144 598/1252/144 +f 607/1254/142 608/1398/142 605/1255/142 +f 604/1257/137 608/1399/137 607/1258/137 +f 601/1260/143 606/1400/143 605/1261/143 +f 603/1263/144 605/1401/144 608/1264/144 +f 602/1266/141 607/1402/141 606/1267/141 +f 611/1269/142 612/1403/142 610/1270/142 +f 561/1274/142 554/1404/142 553/1272/142 +f 553/1272/142 621/1405/142 624/1273/142 +f 561/1275/142 562/1406/142 557/1276/142 +f 558/1280/142 557/1407/142 562/1408/142 +f 562/1408/142 619/1278/142 558/1280/142 +f 617/1281/143 546/1409/143 549/1282/143 +f 616/1284/140 549/1161/140 560/1163/140 +f 613/1410/144 614/1411/144 619/1412/144 +f 619/1412/144 618/1413/144 623/1414/144 +f 624/1286/144 621/1415/144 622/1416/144 +f 619/1412/144 623/1414/144 624/1286/144 +f 616/1288/144 613/1410/144 619/1412/144 +f 615/1417/144 617/1418/144 616/1288/144 +f 624/1286/144 622/1416/144 620/1287/144 +f 620/1287/144 615/1417/144 616/1288/144 +f 616/1288/144 619/1412/144 624/1286/144 +f 623/1289/137 564/1419/137 561/1290/137 +f 613/1292/143 560/1420/143 558/1293/143 +f 638/1421/148 637/1422/148 643/1297/148 +f 637/1422/148 640/1310/148 643/1297/148 +f 640/1310/148 641/1423/148 639/1424/148 +f 644/1295/148 646/1326/148 648/1296/148 +f 646/1326/148 645/1425/148 648/1296/148 +f 640/1310/148 639/1424/148 644/1295/148 +f 647/1322/148 642/1324/148 643/1297/148 +f 648/1296/148 647/1322/148 643/1297/148 +f 643/1297/148 640/1310/148 644/1295/148 +f 632/1298/149 634/1426/149 633/1299/149 +f 625/1301/150 627/1312/150 628/1302/150 +f 632/1306/150 629/1427/150 628/1428/150 +f 629/1427/150 630/1429/150 628/1428/150 +f 628/1428/150 627/1304/150 632/1306/150 +f 625/1307/143 641/1430/143 640/1308/143 +f 640/1310/151 637/1422/151 631/1311/151 +f 631/1313/143 637/1431/143 638/1314/143 +f 636/1316/137 647/1432/137 648/1317/137 +f 635/1319/150 636/1433/150 633/1320/150 +f 647/1322/149 636/1434/149 635/1323/149 +f 644/1295/151 628/1302/151 630/1325/151 +f 638/1327/149 643/1435/149 634/1321/149 +f 645/1328/149 629/1427/149 633/1320/149 +f 645/1330/137 646/1436/137 630/1331/137 +f 644/1333/137 639/1437/137 626/1334/137 +f 642/1336/143 635/1438/143 634/1337/143 +f 650/1339/152 652/1361/152 651/1340/152 +f 651/1342/153 652/1439/153 654/1343/153 +f 654/1343/154 656/1346/154 655/1345/154 +f 656/1346/155 658/1362/155 657/1347/155 +f 664/1353/166 657/1440/166 658/1441/166 +f 658/1441/157 660/1351/157 664/1353/157 +f 659/1352/158 660/1351/158 650/1339/158 +f 659/1442/159 649/1363/159 664/1354/159 +f 649/1363/159 651/1342/159 664/1354/159 +f 651/1342/159 653/1344/159 664/1354/159 +f 653/1344/159 655/1345/159 664/1354/159 o Socket -v 0.000000 0.000000 -4.000000 -v 0.000000 1.000000 -4.000000 -v 1.530734 0.000000 -3.695518 -v 1.530734 1.000000 -3.695518 -v 2.828427 0.000000 -2.828427 -v 2.828427 1.000000 -2.828427 -v 3.695518 0.000000 -1.530734 -v 3.695518 1.000000 -1.530734 -v 4.000000 0.000000 0.000000 -v 4.000000 1.000000 0.000000 -v 3.695518 0.000000 1.530734 -v 3.695518 1.000000 1.530734 -v 2.828427 0.000000 2.828427 -v 2.828427 1.000000 2.828427 -v 1.530734 0.000000 3.695518 -v 1.530734 1.000000 3.695518 -v 0.000001 0.000000 4.000000 -v 0.000001 1.000000 4.000000 -v -1.530733 0.000000 3.695518 -v -1.530733 1.000000 3.695518 -v -2.828426 0.000000 2.828428 -v -2.828426 1.000000 2.828428 -v -3.695518 0.000000 1.530734 -v -3.695518 1.000000 1.530734 -v -4.000000 0.000000 -0.000000 -v -4.000000 1.000000 -0.000000 -v -3.695518 0.000000 -1.530734 -v -3.695518 1.000000 -1.530734 -v -2.828426 0.000000 -2.828428 -v -2.828426 1.000000 -2.828428 -v -1.530732 0.000000 -3.695519 -v -1.530732 1.000000 -3.695519 -vt 0.426601 0.598494 -vt 0.426601 0.930919 -vt 0.073399 0.930919 -vt 0.345575 0.452461 -vt 0.019260 0.325247 -vt 0.154425 0.018127 -vt 0.480740 0.674753 -vt 0.499751 0.764706 -vt 0.480740 0.854660 -vt 0.345576 0.981873 -vt 0.250000 0.999766 -vt 0.154425 0.981873 -vt 0.019260 0.854659 -vt 0.000249 0.764706 -vt 0.019260 0.674752 -vt 0.073399 0.598493 -vt 0.154425 0.547539 -vt 0.250000 0.529646 -vt 0.345576 0.547539 -vt 0.480740 0.145341 -vt 0.499751 0.235294 -vt 0.480740 0.325248 -vt 0.426601 0.401507 -vt 0.250000 0.470354 -vt 0.154424 0.452461 -vt 0.073399 0.401506 -vt 0.000249 0.235294 -vt 0.019260 0.145341 -vt 0.073399 0.069081 -vt 0.250000 0.000234 -vt 0.345576 0.018127 -vt 0.426601 0.069082 -vt 0.750000 0.529412 -vt 0.687500 0.470588 -vt 0.750000 0.470588 -vt 0.687500 0.529412 -vt 0.625000 0.470588 -vt 0.625000 0.529412 -vt 0.562500 0.470588 -vt 0.562500 0.529412 -vt 0.500000 0.470588 -vt 0.500000 0.529412 -vt 0.437500 0.470588 -vt 0.437500 0.529412 -vt 0.375000 0.470588 -vt 0.375000 0.529412 -vt 0.312500 0.470588 -vt 0.312500 0.529412 -vt 0.250000 0.470588 -vt 0.250000 0.529412 -vt 0.187500 0.470588 -vt 0.187500 0.529412 -vt 0.125000 0.470588 -vt 0.125000 0.529412 -vt 0.062500 0.470588 -vt 0.062500 0.529412 -vt 0.000000 0.470588 -vt 1.000000 0.529412 -vt 0.937500 0.470588 -vt 1.000000 0.470588 -vt 0.937500 0.529412 -vt 0.875000 0.470588 -vt 0.875000 0.529412 -vt 0.812500 0.470588 -vt 0.812500 0.529412 -vt 0.000000 0.529412 -vn 0.0000 1.0000 -0.0000 +v -4.000000 0.000000 4.000000 +v 4.000000 0.000000 4.000000 +v -4.000000 0.000000 -4.000000 +v 4.000000 0.000000 -4.000000 +v -4.000000 1.000000 -4.000000 +v -4.000000 1.000000 4.000000 +v 4.000000 1.000000 4.000000 +v 4.000000 1.000000 -4.000000 +vt 1.000000 0.111111 +vt -0.000000 1.000000 +vt -0.000000 0.111111 +vt 0.000100 0.111189 +vt 0.999900 0.999900 +vt 0.000100 0.999900 +vt 0.999900 0.000100 +vt 0.000100 0.000100 +vt 1.000000 -0.000000 +vt -0.000000 0.111111 +vt -0.000000 -0.000000 +vt 1.000000 -0.000000 +vt -0.000000 0.111111 +vt -0.000000 -0.000000 +vt 1.000000 -0.000000 +vt -0.000000 0.111111 +vt -0.000000 -0.000000 +vt 1.000000 1.000000 +vt 0.999900 0.111189 +vt 1.000000 0.111111 +vt 1.000000 0.111111 +vt 1.000000 0.111111 vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.3827 0.0000 -0.9239 -vn 0.7071 0.0000 -0.7071 -vn 0.9239 0.0000 -0.3827 +vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 -vn 0.9239 0.0000 0.3827 -vn 0.7071 0.0000 0.7071 -vn 0.3827 0.0000 0.9239 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 -vn -0.3827 0.0000 0.9239 -vn -0.7071 0.0000 0.7071 -vn -0.9239 0.0000 0.3827 -vn -1.0000 0.0000 -0.0000 -vn -0.9239 0.0000 -0.3827 -vn -0.7071 0.0000 -0.7071 -vn -0.3827 0.0000 -0.9239 s off -f 745/1425/162 769/1426/162 761/1427/162 -f 746/1428/163 754/1429/163 762/1430/163 -f 745/1425/162 743/1431/162 741/1432/162 -f 741/1432/162 771/1433/162 769/1426/162 -f 769/1426/162 767/1434/162 765/1435/162 -f 765/1435/162 763/1436/162 761/1427/162 -f 761/1427/162 759/1437/162 757/1438/162 -f 757/1438/162 755/1439/162 753/1440/162 -f 753/1440/162 751/1441/162 749/1442/162 -f 749/1442/162 747/1443/162 753/1440/162 -f 747/1443/162 745/1425/162 753/1440/162 -f 745/1425/162 741/1432/162 769/1426/162 -f 769/1426/162 765/1435/162 761/1427/162 -f 761/1427/162 757/1438/162 745/1425/162 -f 757/1438/162 753/1440/162 745/1425/162 -f 770/1444/163 740/1445/163 742/1446/163 -f 742/1446/163 744/1447/163 770/1444/163 -f 744/1447/163 746/1428/163 770/1444/163 -f 746/1428/163 748/1448/163 750/1449/163 -f 750/1449/163 752/1450/163 746/1428/163 -f 752/1450/163 754/1429/163 746/1428/163 -f 754/1429/163 756/1451/163 762/1430/163 -f 756/1451/163 758/1452/163 762/1430/163 -f 758/1452/163 760/1453/163 762/1430/163 -f 762/1430/163 764/1454/163 766/1455/163 -f 766/1455/163 768/1456/163 770/1444/163 -f 762/1430/163 766/1455/163 770/1444/163 -f 770/1444/163 746/1428/163 762/1430/163 -s 1 -f 741/1457/164 742/1458/165 740/1459/164 -f 743/1460/165 744/1461/166 742/1458/165 -f 745/1462/166 746/1463/167 744/1461/166 -f 747/1464/167 748/1465/168 746/1463/167 -f 749/1466/168 750/1467/169 748/1465/168 -f 751/1468/169 752/1469/170 750/1467/169 -f 753/1470/170 754/1471/171 752/1469/170 -f 755/1472/171 756/1473/172 754/1471/171 -f 757/1474/172 758/1475/173 756/1473/172 -f 759/1476/173 760/1477/174 758/1475/173 -f 761/1478/174 762/1479/175 760/1477/174 -f 763/1480/175 764/1481/176 762/1479/175 -f 765/1482/176 766/1483/177 764/1484/176 -f 767/1485/177 768/1486/178 766/1483/177 -f 769/1487/178 770/1488/179 768/1486/178 -f 771/1489/179 740/1459/164 770/1488/179 -f 741/1457/164 743/1460/165 742/1458/165 -f 743/1460/165 745/1462/166 744/1461/166 -f 745/1462/166 747/1464/167 746/1463/167 -f 747/1464/167 749/1466/168 748/1465/168 -f 749/1466/168 751/1468/169 750/1467/169 -f 751/1468/169 753/1470/170 752/1469/170 -f 753/1470/170 755/1472/171 754/1471/171 -f 755/1472/171 757/1474/172 756/1473/172 -f 757/1474/172 759/1476/173 758/1475/173 -f 759/1476/173 761/1478/174 760/1477/174 -f 761/1478/174 763/1480/175 762/1479/175 -f 763/1480/175 765/1490/176 764/1481/176 -f 765/1482/176 767/1485/177 766/1483/177 -f 767/1485/177 769/1487/178 768/1486/178 -f 769/1487/178 771/1489/179 770/1488/179 -f 771/1489/179 741/1457/164 740/1459/164 +f 670/1443/167 669/1444/167 668/1445/167 +f 674/1446/168 672/1447/168 673/1448/168 +f 671/1449/169 674/1446/169 669/1450/169 +f 668/1451/170 672/1452/170 670/1453/170 +f 670/1454/171 675/1455/171 671/1456/171 +f 669/1457/172 673/1458/172 668/1459/172 +f 670/1443/167 671/1460/167 669/1444/167 +f 674/1446/168 675/1461/168 672/1447/168 +f 671/1449/169 675/1461/169 674/1446/169 +f 668/1451/170 673/1462/170 672/1452/170 +f 670/1454/171 672/1463/171 675/1455/171 +f 669/1457/172 674/1464/172 673/1458/172 diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe.png b/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe.png index 6be391ef7007ad1be8cf5e07c2af2b82cc1161d9..eee84d7ca22568b60d1bd51d024ccbe9214418fd 100644 GIT binary patch delta 124 zcmV-?0E7Rf0hgZTJtB9g7DP9}5!WTs`7bOQh);*+_%0obkRmlj|F{s94^8 eD-Xa-I=}_Xc@Tq=f8@ac0000T^ delta 134 zcmV;10D1qL0i^+u7YY#w1^@s6)UPbWks%XtTuDShR5*?8Qn?YpFbES|24EC6^ooqa z2BamI7!%i~;Xn@*B2^6(WoA_2oCgtsh*bQ!K^Fco;hCUo!fQ&yz};WK*RK2^3%X(e oxOT2SD#nNaVz<)?(g_lP8v~P0Qv~w5ZU6uP07*qoM6N<$f(Z#Tx&QzG diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_glass.png b/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_glass.png new file mode 100644 index 0000000000000000000000000000000000000000..e714aa53263c071c44834831c09c5de8b9d313d9 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^GC-`u!3HGD%5PW#DVAa<&kznEsNqQI0P?4Kx;TbJ zw7$K5khj5r$2stj$Q%3EnU9K9O}?b9?x<=E=k(@d++g{bMS8<-`Jg7=j*bltycRAI zoLU=&Lel##J<#jrdhJl^Y#q>Bx2Cvz*7?JHB?+8Bw8#CY?CDDp`uWkBGU;_pvJp(Nkq^Ef Date: Wed, 6 Mar 2024 16:12:06 +0800 Subject: [PATCH 246/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index fee314d02..32b751ebb 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -94,6 +94,8 @@ achievement.RBMK.desc=他有妄想症,带他去医务室。 achievement.RBMK=3.6伦琴? achievement.redBalloons.desc=“这就是我们一直在等待的。就是这样,孩子们,这就是战争。” achievement.redBalloons=99个红气球 +achievement.redRoom.desc=? +achievement.redRoom=The Other Side achievement.sacrifice.desc=直面火海并存活 achievement.sacrifice=牺牲 achievement.schrab.desc=不管怎样,我不会看太久。 @@ -648,6 +650,7 @@ container.fluidtank=储罐 container.fileCabinet=文件柜 container.forceField=力场发生器 container.frackingTower=水力压裂塔 +container.furnaceBrick=砖砌熔炉 container.furnaceCombination=复式炼焦炉 container.furnaceIron=铁炉 container.furnaceSteel=钢炉 @@ -668,6 +671,7 @@ container.launchPad=导弹发射台 tile.launch_pad_large.name=发射台 container.launchTable=大型发射台 container.leadBox=安全盒 +container.machineArcWelder=电弧焊机 container.machineBoiler=锅炉 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 @@ -687,7 +691,7 @@ container.machineSelenium=星型发动机 container.machineShredder=粉碎机 container.machineSILEX=激光同位素分离室 container.machineSolidifier=固化机 -container.machineStrandCaster=连续铸造机 +container.machineStrandCaster=连铸机 container.machineTurbine=汽轮机 container.machineTurbofan=涡扇发动机 container.machine_schrabidium_transmutator=Sa326嬗变装置 @@ -2122,6 +2126,7 @@ item.chopper_head.name=猎人直升机驾驶舱 item.chopper_tail.name=猎人直升机尾部 item.chopper_torso.name=猎人直升机主体 item.chopper_wing.name=猎人直升机翼片 +item.chunk_ore.rare.name=稀土矿石块 item.cigarette.name=FFI牌香烟 item.cinnebar.name=朱砂 item.circuit_aluminium.name=基础电路 @@ -2136,6 +2141,7 @@ item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性能电路 item.circuit_star.name=星控制 电路板 item.circuit_star.desc=目前无效,因为它缺少操作系统。 +item.circuit_star_component.card.name=星控制 扩展卡 item.circuit_star_component.chipset.name=星控制 芯片组 item.circuit_star_component.cpu.name=星控制 CPU item.circuit_star_component.ram.name=星控制 RAM @@ -2148,6 +2154,8 @@ item.circuit_star_piece.bridge_cmos.name=SC-CMOS存储器 item.circuit_star_piece.bridge_io.name=SC-IO芯片 item.circuit_star_piece.bridge_north.name=SC-北桥 item.circuit_star_piece.bridge_south.name=SC-南桥 +item.circuit_star_piece.card_board.name=SC-扩展卡板 +item.circuit_star_piece.card_processor.name=SC-扩展卡处理器 item.circuit_star_piece.cpu_cache.name=SC-CPU缓存 item.circuit_star_piece.cpu_clock.name=SC-CPU时钟 item.circuit_star_piece.cpu_ext.name=SC-砷半导体外延片 @@ -2542,7 +2550,7 @@ item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 item.glyphid_meat.name=异虫肉 item.glyphid_meat_grilled.name=熟异虫肉 -item.glyphid_gland.name=囊腺 +item.glyphid_gland.name=异虫腺体 item.glyphid_gland_empty.name=异虫腺体 item.goggles.name=护目镜 item.grenade_aschrab.name=可抛反Sa326 @@ -3341,6 +3349,14 @@ item.padlock_unbreakable.name=牢不可破的挂锁 item.pads_rubber.name=橡胶垫 item.pads_slime.name=粘液垫 item.pads_static.name=静电垫 +item.page_of_.page1.name=第一页 +item.page_of_.page2.name=第二页 +item.page_of_.page3.name=第三页 +item.page_of_.page4.name=第四页 +item.page_of_.page5.name=第五页 +item.page_of_.page6.name=第六页 +item.page_of_.page7.name=第七页 +item.page_of_.page8.name=第八页 item.pancake.name=用废金属、螺栓和宝石粉做成的薄饼 item.part_beryllium.name=铍粉盒 item.part_carbon.name=碳粉盒 @@ -3493,6 +3509,7 @@ item.plate_saturnite.name=土星板 item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 +item.plate_welded.name=焊接%s板 item.polaroid.name=偏光片 item.pollution_detector.name=污染探测器 item.powder_actinium.name=锕粉 @@ -4051,6 +4068,14 @@ item.stamp_357.name=.357马格南锻模 item.stamp_44.name=.44马格南锻模 item.stamp_50.name=大口径弹壳锻模 item.stamp_9.name=小口径弹壳锻模 +item.stamp_book.printing1.name=印刷印章 其一 +item.stamp_book.printing2.name=印刷印章 其二 +item.stamp_book.printing3.name=印刷印章 其三 +item.stamp_book.printing4.name=印刷印章 其四 +item.stamp_book.printing5.name=印刷印章 其五 +item.stamp_book.printing6.name=印刷印章 其六 +item.stamp_book.printing7.name=印刷印章 其七 +item.stamp_book.printing8.name=印刷印章 其八 item.stamp_desh_circuit.name=Desh电路板锻模 item.stamp_desh_flat.name=Desh锻模 item.stamp_desh_plate.name=Desh板锻模 @@ -4589,6 +4614,7 @@ tile.brick_light.name=轻质砖块 tile.brick_light_stairs.name=轻质砖楼梯 tile.brick_obsidian.name=黑曜石砖块 tile.brick_obsidian_stairs.name=黑曜石砖楼梯 +tile.brick_red.name=红屋砖 tile.brick_slab.brick_asbestos.name=石棉砖板 tile.brick_slab.brick_compound.name=复合网格板 tile.brick_slab.brick_fire.name=耐火砖板 @@ -4745,6 +4771,7 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL +tile.deco_crt.name=老旧的CRT屏幕 tile.deco_emitter.name=Deco发光体 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 @@ -4776,6 +4803,7 @@ tile.deco_pipe_rim_red.name=红色钢制管道 (镶边) tile.deco_pipe_rim_marked.name=气体管道 (镶边) tile.deco_steel.name=钢装饰块 tile.deco_titanium.name=钛装饰块 +tile.deco_toaster.name=坏了的烤面包机 tile.deco_tungsten.name=钨装饰块 tile.decon.name=玩家去污器 tile.depth_brick.name=深层岩石砖 @@ -4976,6 +5004,7 @@ tile.lox_barrel.name=液氧桶 tile.machine_amgen.name=环境辐射发电机 tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 +tile.machine_arc_welder.name=电弧焊机 tile.machine_armor_table.name=装甲改装台 tile.machine_ashpit.name=储灰槽 tile.machine_ashpit.desc=收集来自燃烧室和加热炉的灰烬 @@ -5041,6 +5070,8 @@ tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 tile.machine_fracking_tower.name=水力压裂塔 +tile.machine_furnace_brick_off.name=砖砌熔炉 +tile.machine_furnace_brick_on.name=砖砌熔炉 tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 @@ -5107,7 +5138,7 @@ tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热 tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 -tile.machine_strand_caster.name=连续铸造机 +tile.machine_strand_caster.name=连铸机 tile.machine_telelinker.name=炮塔ID管理器 tile.machine_teleporter.name=传送机 tile.machine_tower_large.name=冷却塔 @@ -5239,6 +5270,7 @@ tile.ore_verticium.name=韦德赛矿石 tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 tile.part_emitter.name=Deco粒子发射器 +tile.pedestal.name=基座 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 @@ -5405,6 +5437,7 @@ tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 tile.spikes.name=地刺 +tile.snowglobe.name=雪花玻璃球 tile.spotlight_incandescent.name=罩灯 tile.spotlight_fluoro.name=荧光灯 tile.spotlight_halogen.name=卤素泛光灯 @@ -5476,6 +5509,7 @@ tile.turret_rocket.name=火箭炮塔 tile.turret_richard.name=火箭炮塔“理查德” tile.turret_spitfire.name=目前没有名字[开发中] tile.turret_sentry.name=哨兵炮塔“布朗” +tile.turret_sentry_damaged.name=哨兵炮塔“埃德温” tile.turret_tau.name=陶子炮塔 tile.turret_tauon.name=XVL1456原型陶子发射器炮塔"陶恩" tile.vacuum.name=真空 From 0128164debc141d6e9e788b74c09ca809c5dcb50 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 6 Mar 2024 10:34:45 +0100 Subject: [PATCH 247/376] wartec compatibility --- .../hbm/inventory/recipes/AssemblerRecipes.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 42c3792ad..31e5705c3 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -3,6 +3,7 @@ package com.hbm.inventory.recipes; import static com.hbm.inventory.OreDictManager.*; import java.io.IOException; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -44,6 +45,9 @@ public class AssemblerRecipes extends SerializableRecipe { public static HashMap recipes = new HashMap(); public static List recipeList = new ArrayList(); + + /** Legacy NOP, WarTec needs this */ + public static void loadRecipes() { } @Override public void registerDefaults() { @@ -1172,6 +1176,16 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.heavy_component, 1, mat.id), new AStack[] { new OreDictStack(MaterialShapes.CASTPLATE.name() + mat.names[0], 256) }, 12_000); } } + + // WarTec compatibility code + try { + Class wartecmodAssemblerRecipes = ClassLoader.getSystemClassLoader().loadClass("com.wartec.wartecmod.inventory.wartecmodAssemblerRecipes"); + MainRegistry.logger.info("WarTec assembler recipes class found!"); + Method method = wartecmodAssemblerRecipes.getDeclaredMethod("AssemblerRecipes"); + MainRegistry.logger.info("WarTec AssemblerRecipes method found!"); + method.invoke(null); + MainRegistry.logger.info("WarTec recipes loaded!"); + } catch(Exception e) { } } public static void makeRecipe(ComparableStack out, AStack[] in, int duration) { From c943eb62a35a7187b6698fac8744c2833ce38072 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 6 Mar 2024 16:06:18 +0100 Subject: [PATCH 248/376] NEEEEEAAAAR, FAAAAAAR, WHEREEEEEEEEEEEVER YOU AAAAAARE I BELIIIIEEEEEVE THAT MY HEART WILL, GO OOOOOOO-OOOOOON --- changelog | 6 ++++ .../hbm/blocks/machine/MachineIGenerator.java | 27 +++++++++++++----- .../inventory/recipes/anvil/AnvilRecipes.java | 4 +-- .../render/tileentity/RenderIGenerator.java | 8 ++++++ .../machine/TileEntityMachineIGenerator.java | 4 +-- .../hbm/textures/models/machines/igen.png | Bin 2817 -> 25399 bytes 6 files changed, 38 insertions(+), 11 deletions(-) diff --git a/changelog b/changelog index e69de29bb..027d970aa 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,6 @@ +## Changed +* After three quarters of a decade, three separate models, countless rebalances and hours of senseless yapping, the industrial generator has finally met its end. Suddenly, yet not unsurprisingly, on this here day the industrial generator has closed its eyes for the final time. It was a long and eventful journey, but as with all things in life, it too had to come to an end. + * And this is why we can't ever have anything nice + +## Fixed +* WarTec should now be compatible again \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java index 5f3de0132..2c0d59ff6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java @@ -1,6 +1,10 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineIGenerator; @@ -10,9 +14,10 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineIGenerator extends BlockDummyable { +public class MachineIGenerator extends BlockDummyable implements ILookOverlay { public MachineIGenerator(Material p_i45386_1_) { super(p_i45386_1_); @@ -59,8 +64,7 @@ public class MachineIGenerator extends BlockDummyable { TileEntityMachineIGenerator gen = (TileEntityMachineIGenerator)world.getTileEntity(pos[0], pos[1], pos[2]); - if(gen != null) - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + //if(gen != null) FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); return true; } else { @@ -71,19 +75,28 @@ public class MachineIGenerator extends BlockDummyable { @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - this.makeExtra(world, x + dir.offsetX * (o - 3), y, z + dir.offsetZ * (o - 3)); + /*this.makeExtra(world, x + dir.offsetX * (o - 3), y, z + dir.offsetZ * (o - 3)); this.makeExtra(world, x + dir.offsetX * (o - 2), y, z + dir.offsetZ * (o - 2)); this.makeExtra(world, x + dir.offsetX * (o - 1), y, z + dir.offsetZ * (o - 1)); - this.makeExtra(world, x + dir.offsetX * (o + 2), y, z + dir.offsetZ * (o + 2)); + this.makeExtra(world, x + dir.offsetX * (o + 2), y, z + dir.offsetZ * (o + 2));*/ } @Override public int[] getDimensions() { - return new int [] {2, 0, 3, 2, 1, 1}; + //return new int [] {2, 0, 3, 2, 1, 1}; + return new int [] {0, 0, 0, 0, 0, 0}; } @Override public int getOffset() { - return 2; + //return 2; + return 0; + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + List text = new ArrayList(); + text.add("In memory of all that we have lost"); + ILookOverlay.printGeneric(event, "Industrial Generator Memorial", 0xff8000, 0x804000, text); } } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index cc4ef4573..d6d50cf56 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -394,7 +394,7 @@ public class AnvilRecipes { pullFromAssembler(new ComparableStack(ModBlocks.machine_diesel), 2); - constructionRecipes.add(new AnvilConstructionRecipe( + /*constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.ingot(), 6), new OreDictStack(IRON.plate528(), 8), @@ -403,7 +403,7 @@ public class AnvilRecipes { new ComparableStack(ModItems.turbine_titanium, 1), new ComparableStack(ModItems.thermo_element, 3), new ComparableStack(ModItems.crt_display, 1) - }, new AnvilOutput(new ItemStack(ModBlocks.machine_industrial_generator))).setTier(2)); + }, new AnvilOutput(new ItemStack(ModBlocks.machine_industrial_generator))).setTier(2));*/ constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { diff --git a/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java b/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java index 5431dc93c..0801fec89 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java +++ b/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java @@ -1,6 +1,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; @@ -30,6 +31,11 @@ public class RenderIGenerator extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + GL11.glTranslated(0, 0, 1); + GL11.glScaled(1D/6D, 1D/6D, 1D/6D); + GL11.glTranslated(0, 0, -1); bindTexture(ResourceManager.igen_tex); ResourceManager.igen.renderPart("Body"); @@ -39,6 +45,8 @@ public class RenderIGenerator extends TileEntitySpecialRenderer { GL11.glRotatef(-rot, 0, 0, 1); GL11.glTranslated(0, -1.5D, 0); ResourceManager.igen.renderPart("Rotor"); + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 5ef4699b0..ab424af3f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -129,7 +129,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement @Override public void updateEntity() { - if(!worldObj.isRemote) { + /*if(!worldObj.isRemote) { boolean con = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMIGen; @@ -252,7 +252,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement this.rotation -= 360; this.prevRotation -= 360; } - } + }*/ } @Override diff --git a/src/main/resources/assets/hbm/textures/models/machines/igen.png b/src/main/resources/assets/hbm/textures/models/machines/igen.png index 8356c2e3cf8c40ab0566c08a2b40234c048eedd4..94b157a95418ec73836152c940a20613ded77149 100644 GIT binary patch literal 25399 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�R$$?^pJXXrTp8cFJC&0FCLLe?q1S#s>mw+b9X)z zm3w^&ywF1?($D9cA+2k6hR58zQsP z&5exXm-7_E$Aect&pFAekZvCdzoU{C`eYsF)6e50Qj<%GRvh=dC)t&vGAf0sV6yts5T437R{OaP) zq;8xV6t{9=uOQ8z2JQLL4@0j$>I0R8elL`=gMTMs$C8rwL2jvTxhKKkj3N4C0(T_M z@AVVE#WaG|{}_vGLg|>`CHW;^l4|~e6UqAjT=tLN zT^6tVPO;8+Xu(17vC&xBrxZ{AfB6D4UP$P2tsAOom0vN536JCy8%E)q_&O{QyuPKy z%qX5lz$vjCR5``X!M(LV=_3b<>>9oM;ywIZ6ASk@>3|HSKu82Y{0Sa6=L@Hn;-Y@| zWuMNwXsyNe)R;@)8wmG*Z!VRPUYHM_YfNkX4_i6*|EAqTa}OgBQYaKj0<2)5(&1_s zMy;e+PpJOJDqB&zaA(g}#CNzn{gmV7?QNgbr|Vrah+!VBosKb+p1%UmNDa_f6YUNT z4tDmNUJ+k~Rfe?eetaa$Ck?ynrsb2-H)6Hx7u)p)M>L-rsLspG-^yR&$&sp*BaBr~ z)T|F*zY7IF3uA+-H4xW=zlSB;8Ur6!knnfUXYU||4Ew<#&-)WG&!Iq``0Q&U6;`Nr zg7g|)R-k~ifaTxg&AKFm)viw zcAqUUx%Hp09!I|EGt_|@qV3MDgB-*#q#p|eeg1x!(?&<($%V1R)DC$abwe}^fA9ur z4T;#hV{jh{aMO^m(v)Z3VjpazJt~7j;ddrDy+{^s-{Nnq>Ii0CG%x2CZ|>}rT|r#q zyXG_=68*(XejChc&=Y*Ij!Ev@ZpkKDM^e$KjbUfb=M7jSRf_1y$I0YW+F7vy57LF7 zRn4b9!{d8rMEdhp8Y3ZQZm7QDlW|=%Le8Dd5Bi~!aNOv!H>sAn8qE8ntgP%6hvWWy z_bf!(CQ@}nrZOBE#h2pDByCnsW+R}IOHkU2t9F6A@QzK%V+NCYTbAFt0y9dAp!OME zY5BHM+}G%GB-~ahC6cNMx7AJ=!To9RqvT!C;b=I-tr6=wfuX5yFTfqGEIO(KE>x5L zA4QmUvTel{Ia){%N3dDq3upPB_|$3kU{P+NlDBE!hD4_CgtV`Bvt4>O(;8yBp0za} suRI)Ew3hU^o=H%7d|<;eQk=A=k)h#2f&~kgBsDGIaKr^uYv)h?HzAHXZ~y=R From 57fb013e9cbb90cc3be53dee56f921665e2bccab Mon Sep 17 00:00:00 2001 From: Kal_1024 <158162434+Kal19801@users.noreply.github.com> Date: Thu, 7 Mar 2024 18:51:58 +0800 Subject: [PATCH 249/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 32b751ebb..b759e8171 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1434,6 +1434,7 @@ hbmmat.magnetizedtungsten=磁化钨 hbmmat.malachite=孔雀石 hbmmat.meteoriciron=陨铁 hbmmat.mingrade=紫铜 +hbmmat.neodymium=钕 hbmmat.neptunium237=镎-237 hbmmat.niobium=铌 hbmmat.obsidian=黑曜岩 @@ -3305,10 +3306,14 @@ item.ore.chlorocalcite=氯方解石 item.ore.copper=铜 item.ore.fluorite=氟石 item.ore.gold=金 +item.ore.hematite=赤铁 item.ore.iron=铁 +item.ore.malachite=孔雀石 +item.ore.neodymium=钕 item.ore.niobium=铌 item.ore.titanium=钛 item.ore.tungsten=钨 +item.ore.thorium232=钍 item.ore.thorium=钍 item.ore.uranium=铀 item.ore_bedrock.name=基岩%s矿 @@ -4333,6 +4338,7 @@ item.wings_murk.name=暗黑之翼 item.wire_advanced_alloy.name=超导体 item.wire_aluminium.name=铝线 item.wire_copper.name=铜线 +item.wire_dense.name=致密%s线 item.wire_gold.name=金线 item.wire_magnetized_tungsten.name=4000K高温超导体 item.wire_red_copper.name=紫铜线 @@ -4415,6 +4421,8 @@ shape.plate=板材 shape.plateTriple=铸造板 shape.stamp=锻压模具 shape.wire=线材 +shape.wireDense=致密线材 +shape.wiresDense=致密线材 soundCategory.ntmMachines=NTM机器 tile.absorber.name=辐射吸收器 tile.absorber_green.name=高级辐射吸收器 From c6960f3838db1086f0b06f8b29ab0b53a84414b8 Mon Sep 17 00:00:00 2001 From: Kal_1024 <158162434+Kal19801@users.noreply.github.com> Date: Thu, 7 Mar 2024 19:41:30 +0800 Subject: [PATCH 250/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index b759e8171..4effeb14c 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -2934,6 +2934,9 @@ item.laser_crystal_co2.name=CO2-Desh激光晶体 item.laser_crystal_digamma.name=Digamma迪伽马激光晶体 item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 item.laser_crystal_dnt.name=Spark激光晶体 +item.launch_code.name=发射井启动代码 +item.launch_code_piece.name=发射井启动代码残片 +item.launch_key.name=导弹发射台解锁钥匙 item.lead_gavel.name=铅槌 item.lemon.name="柠檬" item.letter.name=快捷邮件 @@ -4139,6 +4142,7 @@ item.stick_dynamite_fishing.name=捕鱼炸药棒 item.stick_semtex.name=塞姆汀塑胶炸药棒 item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 +item.structure_custommachine.name=自定义机器结构输出魔杖 item.sulfur.name=硫粉 item.survey_scanner.name=勘测扫描仪 item.syringe_antidote.name=解毒剂 @@ -4241,6 +4245,7 @@ item.upgrade_fortune_2.name=二级紫色机器升级 item.upgrade_fortune_3.name=三级紫色机器升级 item.upgrade_gc_speed.name=气体离心机超频升级 item.upgrade_health.name=粉色力场发生器升级 +item.upgrade_muffler.name=消音器 item.upgrade_nullifier.name=采矿激光升级-自动销毁 item.upgrade_overdrive_1.name=一级超速传动机器升级 item.upgrade_overdrive_2.name=二级超速传动机器升级 @@ -4663,6 +4668,7 @@ tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 +tile.custom_machine_anchor.name=自定义机器结构定位锚 tile.cm_block.alloy.name=高级合金机器外壳 tile.cm_block.desh.name=Desh机器外壳 tile.cm_block.steel.name=钢制机器外壳 @@ -4675,6 +4681,8 @@ tile.cm_circuit.schrabidium.name=五级电路块 tile.cm_engine.bismuth.name=铋电机组 tile.cm_engine.desh.name=DESH电机组 tile.cm_engine.standard.name=电机组 +tile.cm_flux.name=中子通量接收器 +tile.cm_heat.name=热量接收器 tile.cm_port.alloy.name=高级合金端口 tile.cm_port.desh.name=Desh端口 tile.cm_port.steel.name=钢制端口 From c529f034bf1d32aed01bed0a7fd6945f2e003a74 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 8 Mar 2024 15:14:45 +0100 Subject: [PATCH 251/376] small fixes --- changelog | 5 +- .../hbm/entity/mob/glyphid/GlyphidStats.java | 68 ++++++++++++++++--- .../com/hbm/inventory/fluid/FluidType.java | 2 +- 3 files changed, 62 insertions(+), 13 deletions(-) diff --git a/changelog b/changelog index 027d970aa..4168a2f4b 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,9 @@ ## Changed * After three quarters of a decade, three separate models, countless rebalances and hours of senseless yapping, the industrial generator has finally met its end. Suddenly, yet not unsurprisingly, on this here day the industrial generator has closed its eyes for the final time. It was a long and eventful journey, but as with all things in life, it too had to come to an end. * And this is why we can't ever have anything nice +* Rebalanced glyphids + * We'll see how it goes ## Fixed -* WarTec should now be compatible again \ No newline at end of file +* WarTec should now be compatible again +* Fixed the "Hold shift for more info" line appearing on fluid info when shift is held, and disappearing otherwise \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java index f54f30487..2649ce036 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java @@ -2,6 +2,7 @@ package com.hbm.entity.mob.glyphid; import com.hbm.lib.ModDamageSource; import com.hbm.potion.HbmPotion; +import com.hbm.util.BobMathUtil; import net.minecraft.util.DamageSource; @@ -93,7 +94,7 @@ public abstract class GlyphidStats { amount *= 0.7F; } else if(source.getDamageType().equals("player")) { amount *= glyphid.getScale() < 1.25 ? 1.5 : glyphid.getScale() < 1.3 ? 0.8 : 0.5; - } else if(source == ModDamageSource.acid || ModDamageSource.s_acid.equals(source.getDamageType())){ + } else if(source == ModDamageSource.acid || ModDamageSource.s_acid.equals(source.getDamageType())) { amount = 0; } else if(source == DamageSource.inWall) { amount *= 15F; @@ -107,23 +108,68 @@ public abstract class GlyphidStats { } } + /** UNTESTED! Spreadsheet will be consulted soon */ public static class GlyphidStatsNT extends GlyphidStats { public GlyphidStatsNT() { - this.statsGrunt = new StatBundle(30D, 1D, 5D, 1, 0.5F); - this.statsBombardier = new StatBundle(20D, 1D, 5D, 1, 0.5F); - this.statsBrawler = new StatBundle(50D, 1D, 10D, 3, 1F); - this.statsDigger = new StatBundle(50D, 1D, 5D, 1, 0.5F); - this.statsBlaster = new StatBundle(50D, 1D, 10D, 2, 1F); - this.statsBehemoth = new StatBundle(130D, 0.8D, 25D, 4, 2.5F); - this.statsBrenda = new StatBundle(250D, 1.2D, 50D, 5, 10F); - this.statsNuclear = new StatBundle(100D, 0.8D, 50D, 5, 10F); - this.statsScout = new StatBundle(20D, 1.5D, 2D, 1, 0.5F); + this.statsGrunt = new StatBundle(20D, 1D, 2D, 0.25F, 0F); + this.statsBombardier = new StatBundle(15D, 1D, 2D, 0.25F, 0F); + this.statsBrawler = new StatBundle(35D, 1D, 10D, 0.5F, 0.5F); + this.statsDigger = new StatBundle(50D, 1D, 10D, 0.5F, 0.5F); + this.statsBlaster = new StatBundle(35D, 1D, 10D, 0.5F, 0.5F); + this.statsBehemoth = new StatBundle(125D, 0.8D, 25D, 1.5F, 2F); + this.statsBrenda = new StatBundle(250D, 1.2D, 50D, 2.5F, 5F); + this.statsNuclear = new StatBundle(100D, 0.8D, 50D, 2.5F, 5F); + this.statsScout = new StatBundle(20D, 1.5D, 5D, 0.5F, 0F); } @Override public boolean handleAttack(EntityGlyphid glyphid, DamageSource source, float amount) { - return true; + + // Completely immune to acid from other glyphids + if(ModDamageSource.s_acid.equals(source.getDamageType()) && source.getSourceOfDamage() instanceof EntityGlyphid) return false; + + // If damage is armor piercing or nuclear damage, don't apply any armor calculation + if(isNuclearDamage(source) || source.isDamageAbsolute() || source.isUnblockable()) { + if(source == DamageSource.inWall) amount *= 15F; + return glyphid.attackSuperclass(source, amount); + // This ensures that nukes will remain hyper-effective + } + + // If damage is fire damage, reduce damage above 5 then ignore armor + if(source.isFireDamage()) { + float dmg = Math.min(amount, 5F); + if(amount > 5) dmg += (amount - 5F) * 0.1F; + return glyphid.attackSuperclass(source, amount); + // This ensures that afterburn and flamethrowers remain effective wihin reason + } + + // If damage is explosive, reduce by 25% then ignore armor + if(source.isExplosion()) { + amount *= 0.75F; + return glyphid.attackSuperclass(source, amount); + // This ensures that explosions remain mostly effective + } + + byte armor = glyphid.getDataWatcher().getWatchableObjectByte(glyphid.DW_ARMOR); + amount -= glyphid.getDamageThreshold(); + if(amount < 0) return armor == 0; // if armor is present, knockback from 0 damage attacks is negated + + if(armor != 0) { + if(glyphid.isArmorBroken(amount)) { + glyphid.breakOffArmor(); + amount *= 0.5F; + } + + amount = glyphid.calculateDamage((float) BobMathUtil.squirt(amount * 50)); + // This ensures that higher numbers have a diminishing effect + } + + return glyphid.attackSuperclass(source, amount); + } + + public boolean isNuclearDamage(DamageSource source) { + return source == ModDamageSource.nuclearBlast || source == ModDamageSource.radiation; } } } diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index b669899c3..f08ae979a 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -222,7 +222,7 @@ public class FluidType { } } - if(!hidden.isEmpty() && shiftHeld) { + if(!hidden.isEmpty() && !shiftHeld) { info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); From ec666f1ba696d738068de8f7869be30a2b32f71b Mon Sep 17 00:00:00 2001 From: Kal_1024 <158162434+Kal19801@users.noreply.github.com> Date: Fri, 8 Mar 2024 22:17:27 +0800 Subject: [PATCH 252/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 63 ++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 4effeb14c..91d357483 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -543,6 +543,7 @@ chem.GASOLINE_LEADED=含铅汽油混合 chem.HEAVY_ELECTROLYSIS=低温电解重水 chem.HELIUM3=使用月球草皮提取氦-3 chem.KEVLAR=凯夫拉生产 +chem.LAMINATE=强化夹层玻璃生产 chem.LPG=石油天然气液化 chem.LUBRICANT=润滑剂混合 chem.MEAT_PROCESSING=异虫肉矿物提取 @@ -551,12 +552,14 @@ chem.NITAN=NITAN牌超级燃料混合 chem.NITRIC_ACID=硝酸生产 chem.OIL_SAND=沥青砂提取 chem.OSMIRIDIUM_DEATH=锇酸溶液生产 +chem.PC=硬质塑料合成 chem.PC_ELECTROLYSIS=氯化钾电解 chem.PEROXIDE=过氧化氢生产 chem.PET=PET合成 chem.PETROIL_LEADED=含铅石油混合 chem.POLYMER=聚合物合成 chem.PUF6=六氟化钚生产 +chem.PVC=PVC合成 chem.RUBBER=橡胶生产 chem.SAS3=三硫化Sa生产 chem.SATURN=土星锭生产 @@ -668,6 +671,7 @@ container.hydrotreater=加氢装置 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 +container.launchPadRusted=导弹发射台 tile.launch_pad_large.name=发射台 container.launchTable=大型发射台 container.leadBox=安全盒 @@ -682,6 +686,7 @@ container.machineDiesel=柴油发电机 container.machineElectricBoiler=电锅炉 container.machineElectrolyser=电解机 container.machineFEL=FEL +container.machineFunnel=Combinator Funnel container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 container.machineLiquefactor=液化机 @@ -1019,6 +1024,7 @@ entity.entity_glyphid_digger.name=掘地异虫 entity.entity_glyphid_nuclear.name=大个子强森 entity.entity_glyphid_scout.name=侦察异虫 entity.entity_ntm_fbi.name=FBI探员 +entity.entity_ntm_fbi_drone.name=FBI无人机 entity.entity_ntm_radiation_blaze.name=核融元素 entity.hbm.entity_ntm_ufo.name=火星入侵者飞船 entity.entity_mob_hunter_chopper.name=猎人直升机 @@ -1047,6 +1053,7 @@ flare.ignition=点火装置 flare.valve=流量阀 fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 +fluid.rad_lava_fluid=火山熔岩 fluid.mud_fluid=毒泥 fluid.schrabidic_fluid=Sa酸 fluid.toxic_fluid=绿色软泥 @@ -1200,8 +1207,9 @@ hadron.error_analysis_too_long=错误 0x06 [分析室过长] hadron.error_analysis_too_short=错误 0x06 [分析室过长] hadron.error_diode_collision=错误 0x08 [二极管方向错误] hadron.error_branching_turn=错误 0x09 [多处分支] -hadron.hopper0=§e正常模式:$将使用所有项目 +hadron.hopper0=§e正常模式:$ 将使用所有项目 hadron.hopper1=§e料斗模式:$ 将始终保留一个项目 +hadron.hopper2=§e单一模式:$ 每个插槽只允许一个物品 hadron.idle=空闲 hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 @@ -1926,6 +1934,7 @@ item.boltgun.name=气动射钉枪 item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 item.book_guide.name=HBM指导书 +item.book_lemegeton.name=所罗门之钥 item.book_of_.name=车厢书 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 @@ -2147,6 +2156,7 @@ item.circuit_star_component.chipset.name=星控制 芯片组 item.circuit_star_component.cpu.name=星控制 CPU item.circuit_star_component.ram.name=星控制 RAM item.circuit_star_piece.board_blank.name=SC-印刷电路板 +item.circuit_star_piece.board_converter.name=SC-电压转换器 item.circuit_star_piece.board_transistor.name=SC-晶体管 item.circuit_star_piece.bridge_bios.name=SC-BIOS芯片 item.circuit_star_piece.bridge_bus.name=SC-总线 @@ -2406,6 +2416,7 @@ item.dust.name=灰尘 item.dust.desc=我讨厌灰尘! item.dust.desc.P11=又一小撮灰尘! item.dust_tiny.name=一小撮灰尘 +item.dwarven_pickaxe.name=矮人镐 item.dynosphere_base.name=空白动力球 item.dynosphere_desh.name=Desh动力球 item.dynosphere_desh_charged.name=Desh动力球[带电] @@ -2506,6 +2517,8 @@ item.fragment_lanthanium.name=镧碎片 item.fragment_meteorite.name=陨石碎片 item.fragment_neodymium.name=钕碎片 item.fragment_niobium.name=铌碎片 +item.fuel_additive.antiknock.name=四乙基铅抗爆剂 +item.fuel_additive.deicer.name=除冰剂 item.fuel_tank_large.name=大型燃料罐 item.fuel_tank_medium.name=中型燃料罐 item.fuel_tank_small.name=小型燃料罐 @@ -2800,6 +2813,7 @@ item.ingot_c4.name=一块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 item.ingot_cdalloy.name=镉钢锭 +item.ingot_cft.name=富勒烯晶体 item.ingot_chainsteel.name=重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 @@ -2923,6 +2937,7 @@ item.key_red.desc=探索另一边。 item.key_red.desc.P11=§4e§r item.key_red_cracked.name=破碎的钥匙 item.key_red_cracked.desc=??? +item.key_red.key_red_cracked.P11=§4???§r item.kit_toolbox.name=工具箱 item.kit_toolbox_empty.name=空工具箱 item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 @@ -3019,6 +3034,7 @@ item.missile_cluster_strong.name=强化型集束导弹 item.missile_custom.name=定制导弹 item.missile_decoy.name=诱饵弹 item.missile_doomsday.name=末日导弹 +item.missile_doomsday_rusted.name=损坏的末日导弹 item.missile_drill.name=掩体裂解者 item.missile_emp.name=EMP导弹 item.missile_emp_strong.name=强化型EMP导弹 @@ -3208,6 +3224,8 @@ item.night_vision.name=夜视眼镜 item.night_vision.description.item=提供夜视功能(需要全套电动设备) item.night_vision.description.in_armor=%s(允许夜视) item.niter.name=硝石粉 +item.nitra.name=Nitra +item.nitra_small.name=Small Pile of Nitra item.no9.name=矿工头盔 item.nossy_hat.name=华丽的帽子 item.nothing.name=没有东西 @@ -3528,6 +3546,7 @@ item.powder_asbestos.name=石棉粉 item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=煤灰 item.powder_ash.fly.name=飞尘 +item.powder_ash.fullerene.name=富勒烯 item.powder_ash.misc.name=灰尘 item.powder_ash.soot.name=细烟灰 item.powder_ash.wood.name=木灰 @@ -3594,6 +3613,7 @@ item.powder_magic.name=粉碎的魔法 item.powder_magnetized_tungsten.name=磁化钨粉 item.powder_meteorite.name=陨石粉 item.powder_meteorite_tiny.name=小撮陨石粉 +item.powder_molysite.name=氯化铁 item.powder_neodymium.name=钕粉 item.powder_neodymium_tiny.name=小撮钕粉 item.powder_neptunium.name=镎粉 @@ -4379,10 +4399,27 @@ potion.hbm_radx=抗辐射 potion.hbm_stability=稳定 potion.hbm_taint=污染 potion.hbm_telekinesis=! ! ! +radar.clearMap=清除地图缓存 radar.detectMissiles=探测导弹 radar.detectPlayers=探测玩家 +radar.detectShells=探测炮弹 radar.redMode=红石控制模式$开启: 基于导弹距离输出红石信号$关闭: 基于导弹级别输出红石信号 radar.smartMode=智能模式$有红石信号时忽略上升段的导弹 +radar.showMap=显示地图 +radar.target.abm=反弹道导弹 +radar.target.custom10=10号定制导弹 +radar.target.custom1015=10/15号定制导弹 +radar.target.custom15=15号定制导弹 +radar.target.custom1520=15/20号定制导弹 +radar.target.custom20=20号定制导弹 +radar.target.doomsday=末日导弹 +radar.target.shuttle=万金罗宾航天飞机 +radar.target.tier0=0级导弹 +radar.target.tier1=1级导弹 +radar.target.tier2=2级导弹 +radar.target.tier3=3级导弹 +radar.target.tier4=4级导弹 +radar.toggleGui=切换界面 rbmk.heat=柱体温度: %s rbmk.boiler.water=供水速率: %s / %s rbmk.boiler.steam=蒸汽产生速率: %s / %s @@ -5088,6 +5125,8 @@ tile.machine_fraction_tower.name=分馏塔 tile.machine_fracking_tower.name=水力压裂塔 tile.machine_furnace_brick_off.name=砖砌熔炉 tile.machine_furnace_brick_on.name=砖砌熔炉 +tile.machine_funnel.name=Combinator Funnel +tile.machine_funnel.desc=Automatically compresses items in a 2x2 or 3x3 crafting grid$Top: Input$Bottom: Output$Side: Output for clearing ingredients tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 @@ -5212,6 +5251,11 @@ tile.ore_alexandrite.name=亚历山大变石矿 tile.ore_aluminium.name=铝矿石 tile.ore_asbestos.name=石棉矿 tile.ore_australium.name=奥斯矿石 +tile.ore_basalt_asbestos.name=富含石棉的玄武岩 +tile.ore_basalt_fluorite.name=富含氟石的玄武岩 +tile.ore_basalt_gem.name=富含宝石的玄武岩 +tile.ore_basalt_molysite.name=富含氯化铁的玄武岩 +tile.ore_basalt_sulfur.name=富含硫磺的玄武岩 tile.ore_bedrock.name=基岩矿石 tile.ore_bedrock_coltan.name=基岩钶钽铁矿 tile.ore_bedrock_oil.name=基岩油层 @@ -5639,6 +5683,23 @@ turret.none=无 turret.off=关 turret.on=开 turret.players=以玩家为目标:%s + +upgrade.acid=Acid required %s +upgrade.burn=Burn %smb/t for %sHE +upgrade.consumption=Consumption %s +upgrade.coolantConsumption=Coolant Consumption %s +upgrade.delay=Process time %s +upgrade.efficiency=Efficiency %s +upgrade.fortune=Fortune %s +upgrade.overheatChance=Overheat chance %s +upgrade.range=Range %s +upgrade.gui.title=§lAcceptable Upgrades:§r +upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s +upgrade.gui.effectiveness= * §aEffectiveness§r: Stacks to level %s +upgrade.gui.overdrive= * §7Overdrive§r: Stacks to level %s +upgrade.gui.power= * §9Power-Saving§r: Stacks to level %s +upgrade.gui.speed= * §4Speed§r: Stacks to level %s + wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 From bc3a3ef2a2012d9a0d0a994a7f6387c0b78f04b7 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 10 Mar 2024 22:26:48 +0100 Subject: [PATCH 253/376] these changes are like 2 days old and i forgot what i even did --- changelog | 6 + src/main/java/com/hbm/blocks/ModBlocks.java | 31 ---- .../hbm/blocks/bomb/BlockCloudResidue.java | 90 ----------- .../com/hbm/blocks/bomb/LaunchPadRusted.java | 1 - .../java/com/hbm/blocks/generic/BlockCap.java | 45 ------ .../com/hbm/blocks/test/TestEventTester.java | 3 - src/main/java/com/hbm/config/WorldConfig.java | 3 - .../com/hbm/crafting/ConsumableRecipes.java | 1 - .../java/com/hbm/crafting/WeaponRecipes.java | 1 - .../hbm/entity/mob/glyphid/EntityGlyphid.java | 9 ++ .../hbm/entity/mob/glyphid/GlyphidStats.java | 13 +- .../hbm/entity/particle/EntityCloudFX.java | 6 - .../com/hbm/handler/BobmazonOfferFactory.java | 2 - .../inventory/recipes/AssemblerRecipes.java | 9 -- .../inventory/recipes/CentrifugeRecipes.java | 6 - src/main/java/com/hbm/items/ModItems.java | 12 -- .../java/com/hbm/items/food/ItemCanteen.java | 14 -- .../java/com/hbm/items/tool/ItemWandD.java | 2 - .../java/com/hbm/items/weapon/GunLacunae.java | 149 ------------------ .../java/com/hbm/lib/HbmChestContents.java | 1 - src/main/java/com/hbm/main/ClientProxy.java | 2 - .../java/com/hbm/main/CraftingManager.java | 4 +- src/main/java/com/hbm/main/MainRegistry.java | 14 ++ .../item/weapon/ItemRenderOverkill.java | 24 +-- .../machine/TileEntityMachineIGenerator.java | 5 - src/main/resources/assets/hbm/lang/de_DE.lang | 8 +- src/main/resources/assets/hbm/lang/en_US.lang | 8 +- .../assets/hbm/textures/models/b29_2.png | Bin 69417 -> 52574 bytes .../models/weapons/detonator_laser.png | Bin 2586 -> 2626 bytes 29 files changed, 51 insertions(+), 418 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/bomb/BlockCloudResidue.java delete mode 100644 src/main/java/com/hbm/blocks/generic/BlockCap.java delete mode 100644 src/main/java/com/hbm/items/weapon/GunLacunae.java diff --git a/changelog b/changelog index 4168a2f4b..2ac463083 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,12 @@ * And this is why we can't ever have anything nice * Rebalanced glyphids * We'll see how it goes +* Did some spring cleaning + * Removed cloud residue (looked horrible, allowed for weird dupes and made no sense overall) + * Removed bottle cap blocks (took up a ton of block IDs and nobody used those anyway) + * Removed the config option for silos (the option no longer works anyway since the new silos use the structure component system) + * Removed a few other minor things that won't be mentioned because nobody's gonna even notice their absence anyway +* Retextured the laser detonator to look more like the old detonator, but keeping the 3D model ## Fixed * WarTec should now be compatible again diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 94c961f5e..aedd663eb 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -278,15 +278,6 @@ public class ModBlocks { public static Block block_daffergon; public static Block block_verticium; - public static Block block_cap_nuka; - public static Block block_cap_quantum; - public static Block block_cap_rad; - public static Block block_cap_sparkle; - public static Block block_cap_korl; - public static Block block_cap_fritz; - public static Block block_cap_sunset; - public static Block block_cap_star; - public static Block deco_titanium; public static Block deco_red_copper; public static Block deco_tungsten; @@ -1185,7 +1176,6 @@ public class ModBlocks { public static Block crystal_hardened; public static Block crystal_pulsar; public static Block taint; - public static Block residue; public static Block vent_chlorine; public static Block vent_cloud; @@ -1518,15 +1508,6 @@ public class ModBlocks { block_unobtainium = new BlockBeaconable(Material.iron).setBlockName("block_unobtainium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_unobtainium"); block_daffergon = new BlockBeaconable(Material.iron).setBlockName("block_daffergon").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_daffergon"); block_verticium = new BlockBeaconable(Material.iron).setBlockName("block_verticium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_verticium"); - - block_cap_nuka = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_nuka_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_nuka").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_nuka"); - block_cap_quantum = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_quantum_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_quantum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_quantum"); - block_cap_rad = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_rad_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_rad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_rad"); - block_cap_sparkle = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_sparkle_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_sparkle").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_sparkle"); - block_cap_korl = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_korl_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_korl").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_korl"); - block_cap_fritz = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_fritz_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_fritz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_fritz"); - block_cap_sunset = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_sunset_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_sunset").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_sunset"); - block_cap_star = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_star_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_star").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_star"); deco_titanium = new BlockOre(Material.iron).noFortune().setBlockName("deco_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_titanium"); deco_red_copper = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_red_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_red_copper"); @@ -2369,7 +2350,6 @@ public class ModBlocks { crystal_hardened = new BlockGeneric(Material.iron).setBlockName("crystal_hardened").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_hardened"); crystal_pulsar = new CrystalPulsar(Material.iron).setBlockName("crystal_pulsar").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_pulsar"); taint = new BlockTaint(Material.iron).setBlockName("taint").setHardness(15.0F).setResistance(10.0F).setCreativeTab(null); - residue = new BlockCloudResidue(Material.iron).setBlockName("residue").setHardness(0.5F).setResistance(0.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":residue"); vent_chlorine = new BlockVent(Material.iron).setBlockName("vent_chlorine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_chlorine"); vent_cloud = new BlockVent(Material.iron).setBlockName("vent_cloud").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_cloud"); @@ -2721,16 +2701,6 @@ public class ModBlocks { GameRegistry.registerBlock(block_c4, block_c4.getUnlocalizedName()); GameRegistry.registerBlock(block_smore, block_smore.getUnlocalizedName()); GameRegistry.registerBlock(block_slag, block_slag.getUnlocalizedName()); - - //Bottlecap Blocks - GameRegistry.registerBlock(block_cap_nuka, block_cap_nuka.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_quantum, block_cap_quantum.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_rad, block_cap_rad.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_sparkle, block_cap_sparkle.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_korl, block_cap_korl.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_fritz, block_cap_fritz.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_sunset, block_cap_sunset.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_star, block_cap_star.getUnlocalizedName()); //Deco Blocks GameRegistry.registerBlock(deco_titanium, deco_titanium.getUnlocalizedName()); @@ -3625,7 +3595,6 @@ public class ModBlocks { GameRegistry.registerBlock(crystal_hardened, crystal_hardened.getUnlocalizedName()); GameRegistry.registerBlock(crystal_pulsar, crystal_pulsar.getUnlocalizedName()); GameRegistry.registerBlock(taint, ItemTaintBlock.class, taint.getUnlocalizedName()); - GameRegistry.registerBlock(residue, residue.getUnlocalizedName()); GameRegistry.registerBlock(cheater_virus, cheater_virus.getUnlocalizedName()); GameRegistry.registerBlock(cheater_virus_seed, cheater_virus_seed.getUnlocalizedName()); GameRegistry.registerBlock(ntm_dirt, ntm_dirt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockCloudResidue.java b/src/main/java/com/hbm/blocks/bomb/BlockCloudResidue.java deleted file mode 100644 index 64d813881..000000000 --- a/src/main/java/com/hbm/blocks/bomb/BlockCloudResidue.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.hbm.blocks.bomb; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; - -import net.minecraft.block.Block; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.item.Item; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class BlockCloudResidue extends Block { - - public BlockCloudResidue(Material p_i45386_1_) { - super(p_i45386_1_); - } - - public static int func_150032_b(int p_150032_0_) - { - return func_150031_c(p_150032_0_); - } - - public static int func_150031_c(int p_150031_0_) - { - return p_150031_0_ & 15; - } - - public MapColor getMapColor(int p_149728_1_) - { - return MapColor.redColor; - } - - @Override - public int getRenderType(){ - return ModBlocks.taint.getRenderType(); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return p_149650_2_.nextInt(25) == 0 ? ModItems.powder_cloud : null; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - public void onNeighborBlockChange(World world, int x, int y, int z, Block b) - { - if(!hasPosNeightbour(world, x, y, z) && !world.isRemote) - world.setBlockToAir(x, y, z); - } - - public static boolean hasPosNeightbour(World world, int x, int y, int z) { - Block b0 = world.getBlock(x + 1, y, z); - Block b1 = world.getBlock(x, y + 1, z); - Block b2 = world.getBlock(x, y, z + 1); - Block b3 = world.getBlock(x - 1, y, z); - Block b4 = world.getBlock(x, y - 1, z); - Block b5 = world.getBlock(x, y, z - 1); - boolean b = (b0.renderAsNormalBlock() && b0.getMaterial().isOpaque()) || - (b1.renderAsNormalBlock() && b1.getMaterial().isOpaque()) || - (b2.renderAsNormalBlock() && b2.getMaterial().isOpaque()) || - (b3.renderAsNormalBlock() && b3.getMaterial().isOpaque()) || - (b4.renderAsNormalBlock() && b4.getMaterial().isOpaque()) || - (b5.renderAsNormalBlock() && b5.getMaterial().isOpaque()); - return b; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) - { - return null; - } - - @Override - public AxisAlignedBB getSelectedBoundingBoxFromPool(World par1World, int par2, int par3, int par4) - { - return AxisAlignedBB.getBoundingBox(par2, par3, par4, par2, par3, par4); - } -} diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java index 2f2f29881..d1bd751c2 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java @@ -3,7 +3,6 @@ package com.hbm.blocks.bomb; import java.util.Random; import com.hbm.blocks.BlockDummyable; -import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IBomb; import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; diff --git a/src/main/java/com/hbm/blocks/generic/BlockCap.java b/src/main/java/com/hbm/blocks/generic/BlockCap.java deleted file mode 100644 index 798255f0a..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockCap.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.hbm.blocks.generic; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.machine.BlockPillar; -import com.hbm.items.ModItems; - -import net.minecraft.block.material.Material; -import net.minecraft.item.Item; - -public class BlockCap extends BlockPillar { - - public BlockCap(Material mat, String tex) { - super(mat, tex); - } - - @Override - public Item getItemDropped(int i, Random rand, int j) { - - if(this == ModBlocks.block_cap_nuka) - return ModItems.cap_nuka; - if(this == ModBlocks.block_cap_quantum) - return ModItems.cap_quantum; - if(this == ModBlocks.block_cap_sparkle) - return ModItems.cap_sparkle; - if(this == ModBlocks.block_cap_rad) - return ModItems.cap_rad; - if(this == ModBlocks.block_cap_korl) - return ModItems.cap_korl; - if(this == ModBlocks.block_cap_fritz) - return ModItems.cap_fritz; - if(this == ModBlocks.block_cap_sunset) - return ModItems.cap_sunset; - if(this == ModBlocks.block_cap_star) - return ModItems.cap_star; - - return null; - } - - @Override - public int quantityDropped(Random rand) { - return 128; - } -} diff --git a/src/main/java/com/hbm/blocks/test/TestEventTester.java b/src/main/java/com/hbm/blocks/test/TestEventTester.java index 25691a26b..f81fa49ff 100644 --- a/src/main/java/com/hbm/blocks/test/TestEventTester.java +++ b/src/main/java/com/hbm/blocks/test/TestEventTester.java @@ -6,8 +6,6 @@ import java.util.Map; import java.util.Random; import com.hbm.main.MainRegistry; -import com.hbm.world.gen.component.Component; -import com.hbm.world.gen.component.SiloComponent; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -20,7 +18,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraft.world.gen.structure.StructureBoundingBox; public class TestEventTester extends Block { diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 1a7c40b0e..d8c9b2e9a 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -84,7 +84,6 @@ public class WorldConfig { public static int dungeonStructure = 64; public static int relayStructure = 500; public static int satelliteStructure = 500; - public static int siloStructure = 1000; public static int factoryStructure = 1000; public static int dudStructure = 500; public static int spaceshipStructure = 1000; @@ -206,7 +205,6 @@ public class WorldConfig { dungeonStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.04_dungeonSpawn", "Spawn library dungeon on every nTH chunk", 64); relayStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.05_relaySpawn", "Spawn relay on every nTH chunk", 500); satelliteStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.06_satelliteSpawn", "Spawn satellite dish on every nTH chunk", 500); - siloStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.08_siloSpawn", "Spawn missile silo on every nTH chunk", 1000); factoryStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.09_factorySpawn", "Spawn factory on every nTH chunk", 1000); dudStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.10_dudSpawn", "Spawn dud on every nTH chunk", 500); spaceshipStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.11_spaceshipSpawn", "Spawn spaceship on every nTH chunk", 1000); @@ -250,7 +248,6 @@ public class WorldConfig { dungeonStructure = CommonConfig.setDefZero(dungeonStructure, 1000); relayStructure = CommonConfig.setDefZero(relayStructure, 1000); satelliteStructure = CommonConfig.setDefZero(satelliteStructure, 1000); - siloStructure = CommonConfig.setDefZero(siloStructure, 1000); factoryStructure = CommonConfig.setDefZero(factoryStructure, 1000); dudStructure = CommonConfig.setDefZero(dudStructure, 1000); spaceshipStructure = CommonConfig.setDefZero(spaceshipStructure, 1000); diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 1a240f826..746e69dbb 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -75,7 +75,6 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.mucho_mango, 1), new Object[] { Items.potionitem, Items.sugar, Items.sugar, KEY_ORANGE }); //Canteens - CraftingManager.addRecipeAuto(new ItemStack(ModItems.canteen_13, 1), new Object[] { "O", "P", 'O', Items.potionitem, 'P', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.canteen_vodka, 1), new Object[] { "O", "P", 'O', Items.potato, 'P', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.canteen_fab, 1), new Object[] { "VMV", "MVM", "VMV", 'V', ModItems.canteen_vodka, 'M', ModItems.powder_magic }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index a508e4f69..9a3dc6a33 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -150,7 +150,6 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_m2, 1), new Object[] { " PI", "BBM", " PI", 'P', STEEL.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_2, 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', ANY_PLASTIC.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_avenger, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', BE.block(), 'I', DESH.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', STAR.ingot(), 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ANY_RUBBER.ingot(), 'W', ModItems.wire_aluminium }); //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', ANY_PLASTIC.ingot() }); diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java index c3cc5b847..c1171c5c8 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java @@ -335,6 +335,15 @@ public class EntityGlyphid extends EntityMob { /** Provides a direct entrypoint from outside to access the superclass' implementation because otherwise we end up wwith infinite recursion */ public boolean attackSuperclass(DamageSource source, float amount) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 2.5F); + data.setString("text", "" + (int) amount); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 2, posZ), new TargetPoint(dimension, posX, posY + 2, posZ, 50)); + + return super.attackEntityFrom(source, amount); } diff --git a/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java index 2649ce036..fa9594ec7 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java @@ -2,7 +2,6 @@ package com.hbm.entity.mob.glyphid; import com.hbm.lib.ModDamageSource; import com.hbm.potion.HbmPotion; -import com.hbm.util.BobMathUtil; import net.minecraft.util.DamageSource; @@ -12,7 +11,7 @@ public abstract class GlyphidStats { public static GlyphidStats GLYPHID_STATS_NT = new GlyphidStatsNT(); public static GlyphidStats getStats() { - return GLYPHID_STATS_70K; + return GLYPHID_STATS_NT; } protected StatBundle statsGrunt; @@ -127,7 +126,7 @@ public abstract class GlyphidStats { public boolean handleAttack(EntityGlyphid glyphid, DamageSource source, float amount) { // Completely immune to acid from other glyphids - if(ModDamageSource.s_acid.equals(source.getDamageType()) && source.getSourceOfDamage() instanceof EntityGlyphid) return false; + if((source == ModDamageSource.acid || ModDamageSource.s_acid.equals(source.getDamageType())) && source.getSourceOfDamage() instanceof EntityGlyphid) return false; // If damage is armor piercing or nuclear damage, don't apply any armor calculation if(isNuclearDamage(source) || source.isDamageAbsolute() || source.isUnblockable()) { @@ -140,13 +139,13 @@ public abstract class GlyphidStats { if(source.isFireDamage()) { float dmg = Math.min(amount, 5F); if(amount > 5) dmg += (amount - 5F) * 0.1F; - return glyphid.attackSuperclass(source, amount); + return glyphid.attackSuperclass(source, dmg); // This ensures that afterburn and flamethrowers remain effective wihin reason } // If damage is explosive, reduce by 25% then ignore armor if(source.isExplosion()) { - amount *= 0.75F; + amount *= 0.5F; return glyphid.attackSuperclass(source, amount); // This ensures that explosions remain mostly effective } @@ -161,10 +160,10 @@ public abstract class GlyphidStats { amount *= 0.5F; } - amount = glyphid.calculateDamage((float) BobMathUtil.squirt(amount * 50)); + amount = glyphid.calculateDamage((float) Math.min(amount, Math.sqrt(amount) * 50D / 7D)); // This ensures that higher numbers have a diminishing effect } - + return glyphid.attackSuperclass(source, amount); } diff --git a/src/main/java/com/hbm/entity/particle/EntityCloudFX.java b/src/main/java/com/hbm/entity/particle/EntityCloudFX.java index 95513f498..b5b3dc474 100644 --- a/src/main/java/com/hbm/entity/particle/EntityCloudFX.java +++ b/src/main/java/com/hbm/entity/particle/EntityCloudFX.java @@ -1,7 +1,5 @@ package com.hbm.entity.particle; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.bomb.BlockCloudResidue; import com.hbm.explosion.ExplosionChaos; import net.minecraft.util.MathHelper; @@ -79,10 +77,6 @@ public class EntityCloudFX extends EntityModFX { if(!worldObj.isRemote && rand.nextInt(5) != 0) { this.setDead(); - - if(BlockCloudResidue.hasPosNeightbour(worldObj, (int) (posX - motionX/subdivisions), (int) (posY - motionY/subdivisions), (int) (posZ - motionZ/subdivisions)) && worldObj.getBlock((int) (posX - motionX/subdivisions), (int) (posY - motionY/subdivisions), (int) (posZ - motionZ/subdivisions)).isReplaceable(worldObj, (int) (posX - motionX/subdivisions), (int) (posY - motionY/subdivisions), (int) (posZ - motionZ/subdivisions))) { - worldObj.setBlock((int) (posX - motionX/subdivisions), (int) (posY - motionY/subdivisions), (int) (posZ - motionZ/subdivisions), ModBlocks.residue); - } } this.posX -= this.motionX/subdivisions; diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index 80f7ca4a2..28b1d3d9a 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -285,8 +285,6 @@ public class BobmazonOfferFactory { ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR) ).setStackDisplayName("Frenchman's Reward"), Requirement.HIDDEN, 32)); - - special.add(new Offer(new ItemStack(ModItems.gun_detonator, 1), Requirement.HIDDEN, 32)); } public static List getOffers(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 31e5705c3..faeb1aef5 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -956,15 +956,6 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.powder_nitan_mix, 18), }, 600); - makeRecipe(new ComparableStack(ModBlocks.block_cap_nuka, 1), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_quantum, 1), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_sparkle, 1), new AStack[] { new ComparableStack(ModItems.cap_sparkle, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_rad, 1), new AStack[] { new ComparableStack(ModItems.cap_rad, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_korl, 1), new AStack[] { new ComparableStack(ModItems.cap_korl, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_fritz, 1), new AStack[] { new ComparableStack(ModItems.cap_fritz, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_sunset, 1), new AStack[] { new ComparableStack(ModItems.cap_sunset, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_star, 1), new AStack[] { new ComparableStack(ModItems.cap_star, 128) }, 10); - if(!GeneralConfig.enable528) { makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), }, 400, ModItems.journal_pip); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 3085c7e76..7b8e15c97 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -290,12 +290,6 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nuclear_waste, 2) }); } - recipes.put(new ComparableStack(ModItems.powder_cloud), new ItemStack[] { - new ItemStack(ModItems.powder_copper, 1), - new ItemStack(ModItems.sulfur, 1), - new ItemStack(ModItems.dust, 1), - new ItemStack(ModItems.dust, 1) }); - recipes.put(new OreDictStack(COAL.ore()), new ItemStack[] { new ItemStack(ModItems.powder_coal, 2), new ItemStack(ModItems.powder_coal, 2), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 4814e8b11..cbdff9965 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -540,7 +540,6 @@ public class ModItems { public static Item powder_spark_mix; public static Item powder_yellowcake; public static Item powder_magic; - public static Item powder_cloud; public static Item powder_balefire; public static Item powder_sawdust; public static Item powder_flux; @@ -1570,7 +1569,6 @@ public class ModItems { public static Item gun_ar15; public static Item gun_calamity; public static Item gun_minigun; - public static Item gun_avenger; public static Item gun_lacunae; public static Item gun_folly; public static Item gun_fatman; @@ -1640,7 +1638,6 @@ public class ModItems { public static Item gun_vortex; public static Item gun_waluigi; public static Item gun_darter; - public static Item gun_detonator; public static Item gun_glass_cannon; public static Item gun_m2; public static Item gun_lunatic_marksman; @@ -1741,7 +1738,6 @@ public class ModItems { public static Item med_ptsd; public static Item med_schizophrenia; - public static Item canteen_13; public static Item canteen_vodka; public static Item canteen_fab; @@ -2965,7 +2961,6 @@ public class ModItems { powder_meteorite_tiny = new Item().setUnlocalizedName("powder_meteorite_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_meteorite_tiny"); powder_yellowcake = new Item().setUnlocalizedName("powder_yellowcake").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_yellowcake"); powder_magic = new Item().setUnlocalizedName("powder_magic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_magic"); - powder_cloud = new Item().setUnlocalizedName("powder_cloud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cloud"); powder_balefire = new Item().setUnlocalizedName("powder_balefire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_balefire"); powder_sawdust = new Item().setUnlocalizedName("powder_sawdust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sawdust"); powder_flux = new Item().setUnlocalizedName("powder_flux").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_flux"); @@ -4196,7 +4191,6 @@ public class ModItems { gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config(), Gun50BMGFactory.getAR15BurstConfig()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); gun_calamity = new ItemGunBase(Gun762mmFactory.getCalamityConfig()).setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity"); gun_minigun = new ItemGunLacunae(Gun5mmFactory.get53Config()).setUnlocalizedName("gun_minigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_minigun"); - gun_avenger = new ItemGunLacunae(Gun5mmFactory.get57Config()).setUnlocalizedName("gun_avenger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_avenger"); gun_lacunae = new ItemGunLacunae(Gun5mmFactory.getLacunaeConfig()).setUnlocalizedName("gun_lacunae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae"); gun_folly = new GunFolly().setUnlocalizedName("gun_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_folly"); gun_fatman = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); @@ -4265,7 +4259,6 @@ public class ModItems { gun_super_shotgun = new ItemCustomLore().setUnlocalizedName("gun_super_shotgun").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_super_shotgun"); gun_moist_nugget = new ItemNugget(3, false).setUnlocalizedName("gun_moist_nugget").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_moist_nugget"); gun_darter = new ItemGunDart(GunDartFactory.getDarterConfig()).setFull3D().setUnlocalizedName("gun_darter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); - gun_detonator = new ItemGunDetonator(GunDetonatorFactory.getDetonatorConfig()).setFull3D().setUnlocalizedName("gun_detonator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_glass_cannon = new ItemEnergyGunBase(GunPoweredFactory.getGlassCannonConfig()).setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_m2 = new ItemGunBase(Gun50BMGFactory.getM2Config()).setFull3D().setUnlocalizedName("gun_m2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_lunatic_marksman = new ItemGunBase(Gun50BMGFactory.getLunaticMarksman()).setFull3D().setUnlocalizedName("gun_lunatic_marksman").setCreativeTab(MainRegistry.weaponTab); @@ -4350,7 +4343,6 @@ public class ModItems { twinkie = new ItemLemon(3, 0.25F, false).setUnlocalizedName("twinkie").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":twinkie"); static_sandwich = new ItemLemon(6, 1F, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich"); pudding = new ItemLemon(6, 1F, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding"); - canteen_13 = new ItemCanteen(1 * 60).setUnlocalizedName("canteen_13").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_13"); canteen_vodka = new ItemCanteen(3 * 60).setUnlocalizedName("canteen_vodka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_vodka"); canteen_fab = new ItemCanteen(2 * 60).setUnlocalizedName("canteen_fab").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_fab"); pancake = new ItemPancake(20, 20, false).setUnlocalizedName("pancake").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pancake"); @@ -5889,7 +5881,6 @@ public class ModItems { GameRegistry.registerItem(powder_boron_tiny, powder_boron_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_asbestos, powder_asbestos.getUnlocalizedName()); GameRegistry.registerItem(powder_magic, powder_magic.getUnlocalizedName()); - GameRegistry.registerItem(powder_cloud, powder_cloud.getUnlocalizedName()); GameRegistry.registerItem(powder_sawdust, powder_sawdust.getUnlocalizedName()); GameRegistry.registerItem(powder_flux, powder_flux.getUnlocalizedName()); GameRegistry.registerItem(powder_fertilizer, powder_fertilizer.getUnlocalizedName()); @@ -7103,7 +7094,6 @@ public class ModItems { GameRegistry.registerItem(gun_calamity, gun_calamity.getUnlocalizedName()); GameRegistry.registerItem(gun_m2, gun_m2.getUnlocalizedName()); GameRegistry.registerItem(gun_minigun, gun_minigun.getUnlocalizedName()); - GameRegistry.registerItem(gun_avenger, gun_avenger.getUnlocalizedName()); GameRegistry.registerItem(gun_lacunae, gun_lacunae.getUnlocalizedName()); GameRegistry.registerItem(gun_folly, gun_folly.getUnlocalizedName()); GameRegistry.registerItem(gun_b92, gun_b92.getUnlocalizedName()); @@ -7166,7 +7156,6 @@ public class ModItems { GameRegistry.registerItem(gun_super_shotgun, gun_super_shotgun.getUnlocalizedName()); GameRegistry.registerItem(gun_moist_nugget, gun_moist_nugget.getUnlocalizedName()); GameRegistry.registerItem(gun_darter, gun_darter.getUnlocalizedName()); - GameRegistry.registerItem(gun_detonator, gun_detonator.getUnlocalizedName()); GameRegistry.registerItem(crucible, crucible.getUnlocalizedName()); GameRegistry.registerItem(gun_glass_cannon, gun_glass_cannon.getUnlocalizedName()); GameRegistry.registerItem(gun_lunatic_marksman, gun_lunatic_marksman.getUnlocalizedName()); @@ -7493,7 +7482,6 @@ public class ModItems { GameRegistry.registerItem(egg_glyphid, egg_glyphid.getUnlocalizedName()); GameRegistry.registerItem(med_ipecac, med_ipecac.getUnlocalizedName()); GameRegistry.registerItem(med_ptsd, med_ptsd.getUnlocalizedName()); - GameRegistry.registerItem(canteen_13, canteen_13.getUnlocalizedName()); GameRegistry.registerItem(canteen_vodka, canteen_vodka.getUnlocalizedName()); GameRegistry.registerItem(canteen_fab, canteen_fab.getUnlocalizedName()); GameRegistry.registerItem(mucho_mango, mucho_mango.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/food/ItemCanteen.java b/src/main/java/com/hbm/items/food/ItemCanteen.java index 0808c47fb..81a3c20b0 100644 --- a/src/main/java/com/hbm/items/food/ItemCanteen.java +++ b/src/main/java/com/hbm/items/food/ItemCanteen.java @@ -35,9 +35,6 @@ public class ItemCanteen extends Item { public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { stack.setItemDamage(stack.getMaxDamage()); - if (this == ModItems.canteen_13) { - player.heal(5F); - } if (this == ModItems.canteen_vodka) { player.addPotionEffect(new PotionEffect(Potion.confusion.id, 10 * 20, 0)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 30 * 20, 2)); @@ -77,17 +74,6 @@ public class ItemCanteen extends Item { @SideOnly(Side.CLIENT) public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) { - if(this == ModItems.canteen_13) - { - list.add("Cooldown: 1 minute"); - list.add("Restores 2.5 hearts"); - list.add(""); - - if(MainRegistry.polaroidID == 11) - list.add("You sip a sip from your trusty Vault 13 SIPPP"); - else - list.add("You take a sip from your trusty Vault 13 canteen."); - } if(this == ModItems.canteen_vodka) { list.add("Cooldown: 3 minutes"); diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index ceec81bec..c57a32667 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,14 +2,12 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; import com.hbm.world.dungeon.Silo; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/items/weapon/GunLacunae.java b/src/main/java/com/hbm/items/weapon/GunLacunae.java deleted file mode 100644 index 6acdfb5e8..000000000 --- a/src/main/java/com/hbm/items/weapon/GunLacunae.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -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.event.entity.player.ArrowNockEvent; - -public class GunLacunae extends Item implements IHoldableWeapon { - - Random rand = new Random(); - - public GunLacunae() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.none; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World world, EntityPlayer player) { - new ArrowNockEvent(player, p_77659_1_); - { - player.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpinup", 1.0F, 1.0F); - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_5mm)) && count % 1 == 0 && this.getMaxItemUseDuration(stack) - count > 15) { - - world.playSoundAtEntity(player, "hbm:weapon.lacunaeShoot", 1.0F, 1.0F); - - for(int i = 0; i < 3; i++) { - - if((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_5mm))) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F); - entityarrow.setDamage(5); - - if(!flag) - player.inventory.consumeInventoryItem(ModItems.ammo_5mm); - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - } - } - - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World world, EntityPlayer player, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - if(j > 10) - world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpindown", 1.0F, 1.0F); - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(this == ModItems.gun_minigun) - list.add("The perfect gift for the man who has everything."); - if(this == ModItems.gun_avenger) - list.add("Interloper! No quarter shall be shown hither, fiend!"); - - if(this == ModItems.gun_lacunae) { - list.add("Whoa, wait, what's that sound? Do you hear that?"); - list.add("I think that's silence! That's the sound people make"); - list.add("when everyone trying to kill me is dead!"); - list.add("And I have a minigun!"); - } - - list.add(""); - list.add("Ammo: 5mm Round"); - list.add("Damage: 5"); - } - - public String getItemStackDisplayName(ItemStack stack) - { - - if(this == ModItems.gun_lacunae && MainRegistry.polaroidID == 11) - return "CZ97 Lacunae"; - - return super.getItemStackDisplayName(stack); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 6, 0)); - - if(this == ModItems.gun_minigun) - multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", -0.3, 1)); - if(this == ModItems.gun_avenger) - multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", -0.4, 1)); - if(this == ModItems.gun_lacunae) - multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", -0.2, 1)); - - return multimap; - } - - @Override - public Crosshair getCrosshair() { - return Crosshair.L_CIRCLE; - } -} diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index a02652a9f..6131bcb9a 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -402,7 +402,6 @@ public class HbmChestContents { weighted(ModItems.flame_conspiracy, 0, 1, 3, 5), weighted(ModItems.flame_politics, 0, 1, 3, 5), weighted(ModItems.cigarette, 0, 1, 8, 5), - weighted(ModItems.canteen_13, 0, 1, 1, 2), weighted(ModItems.armor_polish, 0, 1, 1, 3), weighted(ModItems.gun_kit_1, 0, 1, 1, 3), weighted(ModItems.rag, 0, 1, 3, 5), diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index e04fcf3bf..de6c383ba 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -540,7 +540,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_saturnite_silencer, new ItemRenderUZI()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_calamity, new ItemRenderWeaponFFMG42()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_avenger, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lacunae, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_folly, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_hk69, new ItemRenderWeaponObj()); @@ -558,7 +557,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter_digamma, new ItemRenderWeaponBolter()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_ar15, new ItemRenderWeaponAR15()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_detonator, new ItemRenderDetonatorLaser()); MinecraftForgeClient.registerItemRenderer(ModItems.detonator_laser, new ItemRenderDetonatorLaser()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_remington, new ItemRenderWeaponRemington()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_spas12, new ItemRenderWeaponSpas12()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index de99e7049..d12b5d0b2 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -249,7 +249,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.wrench, 1), new Object[] { " S ", " IS", "I ", 'S', STEEL.ingot(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.wrench_flipped, 1), new Object[] { "S", "D", "W", 'S', Items.iron_sword, 'D', ModItems.ducttape, 'W', ModItems.wrench }); - addRecipeAuto(new ItemStack(ModItems.memespoon, 1), new Object[] { "CGC", "PSP", "IAI", 'C', ModItems.powder_cloud, 'G', TH232.block(), 'P', ModItems.photo_panel, 'S', ModItems.steel_shovel, 'I', ModItems.plate_polymer, 'A', "ingotAustralium" }); + addRecipeAuto(new ItemStack(ModItems.memespoon, 1), new Object[] { "CGC", "PSP", "IAI", 'C', ModItems.powder_yellowcake, 'G', TH232.block(), 'P', ModItems.photo_panel, 'S', ModItems.steel_shovel, 'I', ModItems.plate_polymer, 'A', "ingotAustralium" }); addShapelessAuto(new ItemStack(ModItems.cbt_device, 1), new Object[] { STEEL.bolt(), ModItems.wrench }); addShapelessAuto(new ItemStack(ModItems.toothpicks, 3), new Object[] { KEY_STICK, KEY_STICK, KEY_STICK }); @@ -471,7 +471,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_poison, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', ModItems.powder_poison }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_acid, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.ACID.getID()) }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_wither, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', new ItemStack(Items.skull, 1, 1) }); - addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_ultradeath, 4), new Object[] { "BCB", "CIC", "BCB", 'B', ModBlocks.barbed_wire, 'C', ModItems.powder_cloud, 'I', ModItems.nuclear_waste }); + addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_ultradeath, 4), new Object[] { "BCB", "CIC", "BCB", 'B', ModBlocks.barbed_wire, 'C', ModItems.powder_yellowcake, 'I', ModItems.nuclear_waste }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.tape_recorder), 4), new Object[] { "TST", "SSS", 'T', W.ingot(), 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_poles), 16), new Object[] { "S S", "SSS", "S S", 'S', STEEL.ingot() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 890c996c6..8c975537d 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -66,6 +66,7 @@ import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; +import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; @@ -1223,6 +1224,19 @@ public class MainRegistry { ignoreMappings.add("hbm:item.warhead_thermo_endo"); ignoreMappings.add("hbm:item.warhead_thermo_exo"); ignoreMappings.add("hbm:item.gun_dampfmaschine"); + ignoreMappings.add("hbm:item.canteen_13"); + ignoreMappings.add("hbm:tile.residue"); + ignoreMappings.add("hbm:item.powder_cloud"); + ignoreMappings.add("hbm:item.gun_detonator"); + ignoreMappings.add("hbm:item.gun_avenger"); + ignoreMappings.add("hbm:tile.block_cap_nuka"); + ignoreMappings.add("hbm:tile.block_cap_quantum"); + ignoreMappings.add("hbm:tile.block_cap_rad"); + ignoreMappings.add("hbm:tile.block_cap_sparkle"); + ignoreMappings.add("hbm:tile.block_cap_korl"); + ignoreMappings.add("hbm:tile.block_cap_fritz"); + ignoreMappings.add("hbm:tile.block_cap_sunset"); + ignoreMappings.add("hbm:tile.block_cap_star"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java index 153b07ee5..e44b0444f 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java @@ -104,8 +104,6 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); if(item.getItem() == ModItems.gun_minigun) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png")); - if(item.getItem() == ModItems.gun_avenger) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png")); if(item.getItem() == ModItems.gun_lacunae) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); if(item.getItem() == ModItems.gun_folly) @@ -134,8 +132,7 @@ public class ItemRenderOverkill implements IItemRenderer { } if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) { + item.getItem() == ModItems.gun_minigun) { GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(180, 0, 1, 0); GL11.glTranslatef(0.5F, 0.3F, -0.2F); @@ -169,8 +166,7 @@ public class ItemRenderOverkill implements IItemRenderer { pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) + item.getItem() == ModItems.gun_minigun) lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ItemGunBase.readNBT(item, "rot")); if(item.getItem() == ModItems.gun_folly) { @@ -210,8 +206,6 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); if(item.getItem() == ModItems.gun_minigun) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png")); - if(item.getItem() == ModItems.gun_avenger) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png")); if(item.getItem() == ModItems.gun_lacunae) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); if(item.getItem() == ModItems.gun_folly) @@ -243,8 +237,7 @@ public class ItemRenderOverkill implements IItemRenderer { GL11.glTranslatef(0.7F, 0.3F, 0.0F); } if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) { + item.getItem() == ModItems.gun_minigun) { GL11.glRotatef(5.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(185, 0, 1, 0); GL11.glTranslatef(0.5F, 0.6F, 0.2F); @@ -275,8 +268,7 @@ public class ItemRenderOverkill implements IItemRenderer { pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) + item.getItem() == ModItems.gun_minigun) lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); if(item.getItem() == ModItems.gun_folly) { @@ -315,8 +307,6 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); if(item.getItem() == ModItems.gun_minigun) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png")); - if(item.getItem() == ModItems.gun_avenger) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png")); if(item.getItem() == ModItems.gun_lacunae) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); if(item.getItem() == ModItems.gun_folly) @@ -336,8 +326,7 @@ public class ItemRenderOverkill implements IItemRenderer { GL11.glScalef(0.75F, 0.75F, 0.75F); } if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) { + item.getItem() == ModItems.gun_minigun) { GL11.glTranslatef(0, -1, 0); GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); } @@ -364,8 +353,7 @@ public class ItemRenderOverkill implements IItemRenderer { pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) + item.getItem() == ModItems.gun_minigun) lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); if(item.getItem() == ModItems.gun_folly) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index ab424af3f..3b66c7d06 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -5,7 +5,6 @@ import java.io.IOException; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; -import com.hbm.config.GeneralConfig; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerIGenerator; import com.hbm.inventory.fluid.FluidType; @@ -13,13 +12,10 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.gui.GUIIGenerator; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; -import com.hbm.util.RTGUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; @@ -29,7 +25,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 9b1fdfaa1..3f4ec12a7 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1893,7 +1893,7 @@ item.grenade_aschrab.name=Werfbare Antischrabidiumzelle item.grenade_black_hole.name=Schwarzes-Loch-Granate item.grenade_breach.name=Durchbruchgranate item.grenade_burst.name=Gräbergranate -item.grenade_cloud.name=Gefäß voll Wolke +item.grenade_cloud.name=Gefäß voll ätzenden Dämpfen item.grenade_cluster.name=Cluster-Bombe item.grenade_electric.name=Blitzbombe item.grenade_fire.name=Brandsplittergranate @@ -2022,7 +2022,7 @@ item.gun_revolver_nightmare.name=Nightmare-Revolver (Original) item.gun_revolver_nightmare2.name=Nightmare-Revolver (Dunkel) item.gun_revolver_nightmare2_ammo.name=Laserschrot item.gun_revolver_nightmare_ammo.name=Nightmare-Kugel -item.gun_revolver_nopip.name=Novac +item.gun_revolver_nopip.name=Schwerer Revolver item.gun_revolver_nopip_ammo.name=.44 Magnumpatrone (LEGACY) item.gun_revolver_pip.name=Lil' Pipsqueak item.gun_revolver_pip_ammo.name=Verdorbene Patrone (LEGACY) @@ -2288,7 +2288,7 @@ item.mechanism_revolver_2.name=Fortgeschrittener Revolvermechanismus item.mechanism_rifle_1.name=Gewehmechanismus item.mechanism_rifle_2.name=Fortgeschrittener Gewehmechanismus item.mechanism_special.name=High-Tech Waffenmechanismus -item.med_bag.name=Ärztetasche +item.med_bag.name=Erste Hilfe Kit item.med_ipecac.name=Ipecac-Sirup item.med_ptsd.name=PTBS-Medikament item.med_schiziphrenia.name=Schizophrenie-Medikament @@ -3565,7 +3565,7 @@ tile.barbed_wire.name=Stacheldraht tile.barbed_wire_acid.name=Ätzender Stacheldraht tile.barbed_wire_fire.name=Flammender Stacheldraht tile.barbed_wire_poison.name=Vergifteter Stacheldraht -tile.barbed_wire_ultradeath.name=Wolken-Stacheldraht +tile.barbed_wire_ultradeath.name=Strahlen-Stacheldraht tile.barbed_wire_wither.name=Withernder Stacheldraht tile.barrel_antimatter.name=Magnetischer Antimaterie-Behälter tile.barrel_corroded.name=Verrostetes Fass diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c4824a861..480bf536a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2618,7 +2618,7 @@ item.grenade_black_hole.name=Black Hole Grenade item.grenade_breach.name=Breaching Grenade item.grenade_burst.name=Digger Grenade item.grenate_cats.name=Grenade of Cats -item.grenade_cloud.name=Jar of Cloud +item.grenade_cloud.name=Jar of Corrosive Fumes item.grenade_cluster.name=Cluster Bomb item.grenade_electric.name=Lightning Bomb item.grenade_fire.name=Flame Frag Grenade @@ -2752,7 +2752,7 @@ item.gun_revolver_nightmare.name=Nightmare Revolver (Original) item.gun_revolver_nightmare2.name=Nightmare Revolver (Dark) item.gun_revolver_nightmare2_ammo.name=Laser Buckshot item.gun_revolver_nightmare_ammo.name=Nightmare Bullet -item.gun_revolver_nopip.name=Novac +item.gun_revolver_nopip.name=Heavy Revolver item.gun_revolver_nopip_ammo.name=.44 Magnum Bullet (LEGACY) item.gun_revolver_pip.name=Lil' Pipsqueak item.gun_revolver_pip_ammo.name=Tainted Bullet (LEGACY) @@ -3039,7 +3039,7 @@ item.mechanism_revolver_2.name=Advanced Revolver Mechanism item.mechanism_rifle_1.name=Rifle Mechanism item.mechanism_rifle_2.name=Advanced Rifle Mechanism item.mechanism_special.name=High-Tech Weapon Mechanism -item.med_bag.name=Doctor's Bag +item.med_bag.name=First Aid Kit item.med_ipecac.name=Ipecac Syrup item.med_ptsd.name=PTSD Medication item.med_schiziphrenia.name=Schizophrenia Medication @@ -4530,7 +4530,7 @@ tile.barbed_wire.name=Barbed Wire tile.barbed_wire_acid.name=Caustic Barbed Wire tile.barbed_wire_fire.name=Flaming Barbed Wire tile.barbed_wire_poison.name=Poisoned Barbed Wire -tile.barbed_wire_ultradeath.name=Cloud Barbed Wire +tile.barbed_wire_ultradeath.name=Radioactive Barbed Wire tile.barbed_wire_wither.name=Withered Barbed Wire tile.barrel_antimatter.name=Magnetic Antimatter Container tile.barrel_corroded.name=Corroded Barrel diff --git a/src/main/resources/assets/hbm/textures/models/b29_2.png b/src/main/resources/assets/hbm/textures/models/b29_2.png index 1469099df3df9cfc8490b3d915853143844a8ced..2400b676f6f490930aaf19d104674648a6d751cc 100644 GIT binary patch literal 52574 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 H89(|TzTSoi literal 69417 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%0Ah_?&HJ=;QMheL>SiKooo&NzWm*O~F$$ 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 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png b/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png index 76a00daa8a23dc7c3dc167cd2335abae14d8d071..f11d9bebbe2cdb7f108cf589fe54b2db84fa979a 100644 GIT binary patch delta 2601 zcmV+^3fA?S6v7mcG=KR?L_t(|ob8?4YaG`d$G^LhqE!}Y*V@(!jg1;;61%umN>jVU z0>$zsrWO@ApioNR`s~Mspg%w~ehme^6!K6?LEwOjT}3M6w%sb zSK3uKT9w+3>OWaG(G`RO>ZR%ZlU; zQucR${6of9BMRxrCj9~w3MaZn3smbh-;MEQ{aR5)=g{udToOP1=F7*ew16c!A^`ypz$L-lq5UM zeLJ~ruX4+G?nd#l6h3HM%V~`>f|MVVIQ{gF!{|{{>Y%ps{yF=( z^{{&Diuf>z(<$h86Gj*v1xmZBL(+M)o#j-t56W_e$babglqn=A?H>+QU*+*y%e_vj zQ&~=jwyZw}Wx3-=SxyI(7?Y>1hmv@ldgq6ay`}Z%_Zin4P4{|^PP|L*&DSfBs9CYy z*u=f%Po$kjPJ*@_gjb{=vgKsse_<`eP~(XTFHDxxDb9*&WsY0DD&|wPSkAb6#fnx& zMn>9ZOeN3)KdQSL9!f9U!itsSDI;5$T<2ZyB+=Y{pPM0CCb*?y7%Wl{oeK- z0MmVIKD%ox$BvW(S@z{SizJaNakddRt}g)qUVlIO6W4nHF!tlaxc0?8@-9e-w z7w13BxIIU$t2}*H^Q!Ccv9~k;$mfeDktT`EF(&{N`iD>-x`KT@S!A-hAiH|tnBE+^ zf&$(ozb7D|IGHd9ivy*_)V(3hl@_759^AMj$RbR?#1(S_K;Mt9q7NAW8io$AufijJ;3{@*j+5U{;11DXaiGP$+uakzx;7Hf zMam1*I?l-p)2l8k`Fv3dcOHbOV@{s0AL$?I{sS5wf0ZGp^ImU)Bk|t4+oDuEv47c# z&j}`GuXgS&e`2_HS&%vAES|WG-G^NOfS$gm=px8;am%ULV`XI}vjXvjA8!`=u=CkP z%e_I{djL%Lt@-S(FRZU+u)bzYTlVIFmtWhnfTC$CCUK5UoYL5^P<5+L9;*zKFyc(N zy1lF?KU3sH)N$!XNshSJVBH)N<$8g?|4sjzzW9Nir#(+BM5f(puL-Uosd5hkLt2mt&ZcM#1tx*L!SR6?00uTy8#O&4<^#`5Q`i7go zEu;77WsJU|;nrXEuh%QRdw>0;P#da4#No%ShdJe0%Ih5#sxVpJBm`R9euTpHlju3I zh)hOz&PlDZKDQcx$lNGP$tIDCCBT?DG%GXfBm;{B7X5Uf}rKFr}MIWqkfY z*;Ix~V9UwIG_8+mB%dz|mx;=)%LrS4d1x3d#^(I5f8bE6wexd-?SFO#xb4|qXl|Xk z77>>uBXM?!__op{R8b4qinlO{F}-onZ<7at|o(T)Gc)UN6f zaZufQCkWCBzegMTSwkWIk6CSchJ26FZsBp7=w#u^hOjvKf!?u+QyO#QyeOF)2kGj=8c{@skT~b&=8P|Jc6L@#~SwzKG{2!DxlW@aWcJ3Fhfv{(Lx z^YakNpCtSk=L`E^O5`=TodZBA8}{pA>^yv6q`%_QQ9}|Z->I0twA6CXiCb3}GGU5R z^aw;zWH?lT7nw+Bj{1H0c}>A*gsg-(L)6YgFT6`nT9|IcIrwd5`Oab{=*euOzuf!=a zVQy!3iZ|WD1-s6Vs4!U>JB#Uc+KY1Q5)jYDb4zYjgC)gPWf3~X&{P`5vR{yc3dr|n_QZLx)QfMrUT|zfCbzCIBYkh(ZqNIdcfKHBtDT?er5n)W50O}>Sy{Ec zpDVpWu7kOHH<$l>sh3fNJMpdl6)*T#&j*mNQp+MYzW<<=#_ZW$nZ z41Z&To8OqewoUu*7hxlIr~>D%(|(#<8i-??1_gevPbj-UJz`A;S)9C^ZdO)p#i(3) zxP-k;BW>fnzTA44B6K|h(XyU1tTy;-wVqR6q>nk(dd$wnBu+cCAJnz@btU|!v^b7H zl$}moli+DNqdtm8rXvt#BW*Ea*r>U6g(9?gTFy>%Ckkic)WiP)s~fcn%^Of_00000 LNkvXXu0mjf8-+2r delta 2560 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 Wva50zV7cZ10000 Date: Mon, 11 Mar 2024 17:50:13 +0800 Subject: [PATCH 254/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 91d357483..31ff44c48 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -2813,7 +2813,7 @@ item.ingot_c4.name=一块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 item.ingot_cdalloy.name=镉钢锭 -item.ingot_cft.name=富勒烯晶体 +item.ingot_cft.name=晶化富勒烯 item.ingot_chainsteel.name=重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 From 3e716bf3fc63761b9cbb9bb7cdb00d06930e60df Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 11 Mar 2024 16:20:32 +0100 Subject: [PATCH 255/376] cap blocks with meta, customizable bedrock ores --- changelog | 4 +- .../java/api/hbm/fluid/IFillableItem.java | 4 ++ src/main/java/com/hbm/blocks/ModBlocks.java | 5 ++ .../hbm/blocks/generic/BlockBedrockOreTE.java | 51 +++++++++++++ .../java/com/hbm/blocks/generic/BlockCap.java | 71 +++++++++++++++++++ .../inventory/recipes/AssemblerRecipes.java | 10 +++ .../com/hbm/items/armor/ArmorFSBFueled.java | 6 ++ .../java/com/hbm/items/armor/JetpackBase.java | 10 +++ .../com/hbm/items/tool/ItemBlowtorch.java | 10 +++ .../java/com/hbm/items/tool/ItemPipette.java | 7 +- .../hbm/items/tool/ItemToolAbilityFueled.java | 6 ++ .../hbm/items/weapon/ItemGunChemthrower.java | 10 +++ .../com/hbm/items/weapon/ItemPlasmaSpear.java | 6 ++ src/main/java/com/hbm/main/ClientProxy.java | 14 ++++ src/main/java/com/hbm/main/ServerProxy.java | 2 + .../render/tileentity/RenderIGenerator.java | 2 +- 16 files changed, 215 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockCap.java diff --git a/changelog b/changelog index 2ac463083..5e7803599 100644 --- a/changelog +++ b/changelog @@ -5,10 +5,12 @@ * We'll see how it goes * Did some spring cleaning * Removed cloud residue (looked horrible, allowed for weird dupes and made no sense overall) - * Removed bottle cap blocks (took up a ton of block IDs and nobody used those anyway) + * Bottlecap blocks now use a single block ID and metadata instead of using one ID per type. This change however will delete all existing bottlecap blocks in the world * Removed the config option for silos (the option no longer works anyway since the new silos use the structure component system) * Removed a few other minor things that won't be mentioned because nobody's gonna even notice their absence anyway * Retextured the laser detonator to look more like the old detonator, but keeping the 3D model +* Bedrock ores can now be customized in creative mode. Using a drillbit sets the tier, a fluid container sets the borefluid requirement and any other item sets the resource. + * The texture used is random, and the color applied is based on the auto detect system. The system doesn't work with layered items, so the resulting color won't be the same as naturally generated bedrock ore. The bedrock ore item in particular will always result in a white ore, no matter the type ## Fixed * WarTec should now be compatible again diff --git a/src/main/java/api/hbm/fluid/IFillableItem.java b/src/main/java/api/hbm/fluid/IFillableItem.java index 8818946ce..338b4b7e1 100644 --- a/src/main/java/api/hbm/fluid/IFillableItem.java +++ b/src/main/java/api/hbm/fluid/IFillableItem.java @@ -14,4 +14,8 @@ public interface IFillableItem { public boolean providesFluid(FluidType type, ItemStack stack); /** Provides fluid with the maximum being the requested amount */ public int tryEmpty(FluidType type, int amount, ItemStack stack); + /** Returns the first (or only) corrently held type, may return null. Currently only used for setting bedrock ores */ + public FluidType getFirstFluidType(ItemStack stack); + /** Returns the fillstate for the specified fluid. Currently only used for setting bedrock ores */ + public int getFill(ItemStack stack); } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index aedd663eb..1c3abee0b 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -278,6 +278,8 @@ public class ModBlocks { public static Block block_daffergon; public static Block block_verticium; + public static Block block_cap; + public static Block deco_titanium; public static Block deco_red_copper; public static Block deco_tungsten; @@ -1509,6 +1511,8 @@ public class ModBlocks { block_daffergon = new BlockBeaconable(Material.iron).setBlockName("block_daffergon").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_daffergon"); block_verticium = new BlockBeaconable(Material.iron).setBlockName("block_verticium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_verticium"); + block_cap = new BlockCap().setBlockName("block_cap").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + deco_titanium = new BlockOre(Material.iron).noFortune().setBlockName("deco_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_titanium"); deco_red_copper = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_red_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_red_copper"); deco_tungsten = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_tungsten"); @@ -2693,6 +2697,7 @@ public class ModBlocks { GameRegistry.registerBlock(block_unobtainium, ItemOreBlock.class, block_unobtainium.getUnlocalizedName()); GameRegistry.registerBlock(block_daffergon, ItemOreBlock.class, block_daffergon.getUnlocalizedName()); GameRegistry.registerBlock(block_verticium, ItemOreBlock.class, block_verticium.getUnlocalizedName()); + register(block_cap); GameRegistry.registerBlock(block_lanthanium, block_lanthanium.getUnlocalizedName()); GameRegistry.registerBlock(block_ra226, block_ra226.getUnlocalizedName()); GameRegistry.registerBlock(block_actinium, block_actinium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 040c22cba..5782b6416 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -6,20 +6,26 @@ import java.util.Random; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import com.hbm.render.block.RenderBlockMultipass; +import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; +import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -57,6 +63,45 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I super.onBlockPlacedBy(world, x, y, z, entity, stack); world.markBlockForUpdate(x, y, z); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float fx, float fy, float fz) { + + ItemStack stack = player.getHeldItem(); + if(stack == null) return false; + if(!player.capabilities.isCreativeMode) return false; + if(world.isRemote) return true; + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityBedrockOre) { + TileEntityBedrockOre ore = (TileEntityBedrockOre) te; + + if(stack.getItem() == ModItems.drillbit) { + EnumDrillType type = EnumUtil.grabEnumSafely(EnumDrillType.class, stack.getItemDamage()); + ore.tier = type.ordinal(); + } else if(FluidContainerRegistry.getFluidType(stack) != Fluids.NONE) { + FluidType type = FluidContainerRegistry.getFluidType(stack); + int amount = FluidContainerRegistry.getFluidContent(stack, type); + ore.acidRequirement = new FluidStack(type, amount); + } else if(stack.getItem() instanceof IFillableItem) { + IFillableItem item = (IFillableItem) stack.getItem(); + FluidType type = item.getFirstFluidType(stack); + if(type != null) { + ore.acidRequirement = new FluidStack(type, item.getFill(stack)); + } + } else { + ore.resource = stack.copy(); + ore.shape = world.rand.nextInt(10); + } + + ore.markDirty(); + } + + world.markBlockForUpdate(x, y, z); + + return true; + } @Override public int getRenderType(){ @@ -219,6 +264,12 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); + + if(color == 0) { + this.color = MainRegistry.proxy.getStackColor(resource, true); + } + + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCap.java b/src/main/java/com/hbm/blocks/generic/BlockCap.java new file mode 100644 index 000000000..bc0e6433e --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockCap.java @@ -0,0 +1,71 @@ +package com.hbm.blocks.generic; + +import java.util.Locale; +import java.util.Random; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.items.ModItems; +import com.hbm.util.EnumUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; + +public class BlockCap extends BlockEnumMulti { + + protected IIcon[] iconsTop; + + public BlockCap() { + super(Material.iron, EnumCapBlock.class, true, true); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + this.iconsTop = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + Enum num = enums[i]; + this.icons[i] = reg.registerIcon(this.getTextureMultiName(num)); + this.iconsTop[i] = reg.registerIcon(this.getTextureMultiName(num) + "_top"); + } + } + + @Override public String getTextureMultiName(Enum num) { return this.getTextureName() + "_" + num.name().toLowerCase(Locale.US); } + @Override public String getUnlocalizedMultiName(Enum num) { return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.iconsTop[meta % this.iconsTop.length] : this.icons[meta % this.icons.length]; + } + + @Override + public Item getItemDropped(int meta, Random rand, int j) { + + EnumCapBlock cap = EnumUtil.grabEnumSafely(EnumCapBlock.class, meta); + + if(cap == EnumCapBlock.NUKA) return ModItems.cap_nuka; + if(cap == EnumCapBlock.QUANTUM) return ModItems.cap_quantum; + if(cap == EnumCapBlock.SPARKLE) return ModItems.cap_sparkle; + if(cap == EnumCapBlock.RAD) return ModItems.cap_rad; + if(cap == EnumCapBlock.KORL) return ModItems.cap_korl; + if(cap == EnumCapBlock.FRITZ) return ModItems.cap_fritz; + if(cap == EnumCapBlock.SUNSET) return ModItems.cap_sunset; + if(cap == EnumCapBlock.STAR) return ModItems.cap_star; + + return null; + } + + @Override public int quantityDropped(Random rand) { return 128; } + + public static enum EnumCapBlock { + NUKA, QUANTUM, SPARKLE, RAD, KORL, FRITZ, SUNSET, STAR; + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index faeb1aef5..38477cac9 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -17,6 +17,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockCap.EnumCapBlock; import com.hbm.config.GeneralConfig; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.*; @@ -956,6 +957,15 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.powder_nitan_mix, 18), }, 600); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.NUKA)), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.QUANTUM)), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.SPARKLE)), new AStack[] { new ComparableStack(ModItems.cap_sparkle, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.RAD)), new AStack[] { new ComparableStack(ModItems.cap_rad, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.FRITZ)), new AStack[] { new ComparableStack(ModItems.cap_fritz, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.KORL)), new AStack[] { new ComparableStack(ModItems.cap_korl, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.SUNSET)), new AStack[] { new ComparableStack(ModItems.cap_sunset, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.STAR)), new AStack[] { new ComparableStack(ModItems.cap_star, 128) }, 10); + if(!GeneralConfig.enable528) { makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), }, 400, ModItems.journal_pip); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java b/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java index deb44ba51..cfb41950a 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java @@ -30,6 +30,7 @@ public class ArmorFSBFueled extends ArmorFSB implements IFillableItem { this.maxFuel = maxFuel; } + @Override public int getFill(ItemStack stack) { if(stack.stackTagCompound == null) { stack.stackTagCompound = new NBTTagCompound(); @@ -123,4 +124,9 @@ public class ArmorFSBFueled extends ArmorFSB implements IFillableItem { public int tryEmpty(FluidType type, int amount, ItemStack stack) { return 0; } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return null; + } } diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index e5701e3d8..f7dd9b7cd 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -176,4 +176,14 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem public int tryEmpty(FluidType type, int amount, ItemStack stack) { return 0; } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return null; + } + + @Override + public int getFill(ItemStack stack) { + return 0; + } } diff --git a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java index 0776efa01..a3aafa9df 100644 --- a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java +++ b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java @@ -204,4 +204,14 @@ public class ItemBlowtorch extends Item implements IFillableItem { @Override public boolean providesFluid(FluidType type, ItemStack stack) { return false; } @Override public int tryEmpty(FluidType type, int amount, ItemStack stack) { return amount; } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return null; + } + + @Override + public int getFill(ItemStack stack) { + return 0; + } } diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index 2ac6a72bd..7f9d37a8a 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -68,7 +68,8 @@ public class ItemPipette extends Item implements IFillableItem { stack.stackTagCompound.setShort("fill", fill); } - public short getFill(ItemStack stack) { + @Override + public int getFill(ItemStack stack) { if(!stack.hasTagCompound()) { initNBT(stack); } @@ -203,4 +204,8 @@ public class ItemPipette extends Item implements IFillableItem { } } + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return this.getType(stack); + } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java index fd749bbd0..55ee9cf55 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java @@ -68,6 +68,7 @@ public class ItemToolAbilityFueled extends ItemToolAbility implements IFillableI return true; } + @Override public int getFill(ItemStack stack) { if(stack.stackTagCompound == null) { stack.stackTagCompound = new NBTTagCompound(); @@ -120,4 +121,9 @@ public class ItemToolAbilityFueled extends ItemToolAbility implements IFillableI tool.setFill(stack, 0); return stack; } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return null; + } } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java index 028ea8769..110ed0f3e 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java @@ -214,4 +214,14 @@ public class ItemGunChemthrower extends ItemGunBase implements IFillableItem { return toUnload; } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return this.getFluidType(stack); + } + + @Override + public int getFill(ItemStack stack) { + return this.getMag(stack); + } } diff --git a/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java b/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java index a9847e544..38b210a38 100644 --- a/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java +++ b/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java @@ -38,6 +38,7 @@ public class ItemPlasmaSpear extends Item implements IFillableItem, ISyncButtons return 1 - (double) getFill(stack) / (double) maxFuel; } + @Override public int getFill(ItemStack stack) { if(stack.stackTagCompound == null) { stack.stackTagCompound = new NBTTagCompound(); @@ -170,4 +171,9 @@ public class ItemPlasmaSpear extends Item implements IFillableItem, ISyncButtons @Override public boolean providesFluid(FluidType type, ItemStack stack) { return false; } @Override public int tryEmpty(FluidType type, int amount, ItemStack stack) { return 0; } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return Fluids.SCHRABIDIC; + } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index de6c383ba..6e3d0d204 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -22,6 +22,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; @@ -117,6 +118,7 @@ import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; import com.hbm.util.BobMathUtil; +import com.hbm.util.ColorUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.cannery.Jars; @@ -2115,4 +2117,16 @@ public class ClientProxy extends ServerProxy { Language lang = Minecraft.getMinecraft().getLanguageManager().getCurrentLanguage(); return lang.getLanguageCode(); } + + @Override + public int getStackColor(ItemStack stack, boolean amplify) { + if(stack == null) return 0x000000; + if(stack.getItem() instanceof ItemBlock) { + Block b = Block.getBlockFromItem(stack.getItem()); + return b.getMaterial().getMaterialMapColor().colorValue; + } + int color = ColorUtil.getAverageColorFromStack(stack); + if(amplify) color = ColorUtil.amplifyColor(color); + return color; + } } diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 5878d4d40..15b9203bd 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -88,4 +88,6 @@ public class ServerProxy { public void playSoundClient(double x, double y, double z, String sound, float volume, float pitch) { } public String getLanguageCode() { return "en_US"; } + + public int getStackColor(ItemStack stack, boolean amplify) { return 0x000000; } } \ No newline at end of file diff --git a/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java b/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java index 0801fec89..3fd621158 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java +++ b/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java @@ -35,7 +35,7 @@ public class RenderIGenerator extends TileEntitySpecialRenderer { GL11.glTranslated(0, 0, 1); GL11.glScaled(1D/6D, 1D/6D, 1D/6D); - GL11.glTranslated(0, 0, -1); + GL11.glTranslated(0, 0, -0.5); bindTexture(ResourceManager.igen_tex); ResourceManager.igen.renderPart("Body"); From 14153601eea92fcf8294e17bbce708e18f457a04 Mon Sep 17 00:00:00 2001 From: Vaern <90118520+Vaern@users.noreply.github.com> Date: Mon, 11 Mar 2024 12:47:08 -0700 Subject: [PATCH 256/376] fixed comparator output for pile fuel --- .../java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java index cc98534da..3e827f3a3 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java @@ -47,7 +47,7 @@ public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolab @Override public int getComparatorInputOverride(World world, int x, int y, int z, int side) { TileEntityPileFuel pile = (TileEntityPileFuel)world.getTileEntity(x, y, z); - return MathHelper.clamp_int((pile.progress * 16) / pile.maxProgress, 0, 15); //potentially wip + return MathHelper.clamp_int((pile.progress * 16) / (pile.maxProgress - 1000), 0, 15); //potentially wip } @Override From 7429327034e9e6b11c4b1517d19838bbc6aa76ae Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 12 Mar 2024 16:32:54 +0100 Subject: [PATCH 257/376] making use of the pollution tag --- changelog | 8 +++- src/main/java/com/hbm/blocks/ModBlocks.java | 6 --- .../java/com/hbm/blocks/generic/BlockCap.java | 4 +- .../hbm/blocks/machine/MachineDeaerator.java | 45 ------------------- .../com/hbm/crafting/ConsumableRecipes.java | 1 - .../java/com/hbm/inventory/fluid/Fluids.java | 9 ++-- .../inventory/fluid/trait/FT_Polluting.java | 13 ++++++ .../hbm/inventory/fluid/trait/FluidTrait.java | 1 - .../fluid/trait/FluidTraitSimple.java | 6 --- .../inventory/recipes/AssemblerRecipes.java | 2 - src/main/java/com/hbm/items/ModItems.java | 36 --------------- .../java/com/hbm/items/food/ItemEnergy.java | 28 +----------- src/main/java/com/hbm/main/MainRegistry.java | 5 ++- .../com/hbm/packet/ItemBobmazonPacket.java | 8 +--- .../java/com/hbm/tileentity/TileMappings.java | 1 - .../machine/TileEntityChimneyBase.java | 3 ++ .../machine/TileEntityDeaerator.java | 21 --------- .../machine/TileEntityHeaterOilburner.java | 10 ++--- .../TileEntityMachineCombustionEngine.java | 12 +++-- .../machine/TileEntityMachineDiesel.java | 10 ++--- .../oil/TileEntityMachineGasFlare.java | 14 +++--- .../machine/storage/TileEntityBarrel.java | 7 ++- .../storage/TileEntityMachineFluidTank.java | 21 ++++----- src/main/java/com/hbm/util/LootGenerator.java | 10 ++--- 24 files changed, 75 insertions(+), 206 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/machine/MachineDeaerator.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityDeaerator.java diff --git a/changelog b/changelog index 5e7803599..0b90f91cb 100644 --- a/changelog +++ b/changelog @@ -7,11 +7,17 @@ * Removed cloud residue (looked horrible, allowed for weird dupes and made no sense overall) * Bottlecap blocks now use a single block ID and metadata instead of using one ID per type. This change however will delete all existing bottlecap blocks in the world * Removed the config option for silos (the option no longer works anyway since the new silos use the structure component system) + * Finally removed the deaerator * Removed a few other minor things that won't be mentioned because nobody's gonna even notice their absence anyway * Retextured the laser detonator to look more like the old detonator, but keeping the 3D model * Bedrock ores can now be customized in creative mode. Using a drillbit sets the tier, a fluid container sets the borefluid requirement and any other item sets the resource. * The texture used is random, and the color applied is based on the auto detect system. The system doesn't work with layered items, so the resulting color won't be the same as naturally generated bedrock ore. The bedrock ore item in particular will always result in a white ore, no matter the type +* The polluting fluid trait is now recognized by machines, which means that pollution amounts now depend on the fluid used, not the machine + * This means that flare stacks are now significantly less polluting, assuming natural gas is burned + * Flare stacks and barrels now also respect the spilling tag, which means that simply venting the gas may cause poison pollution + * Hydrogen doesn't have the polluting tag, so hydrogen burning generators won't create soot anymore ## Fixed * WarTec should now be compatible again -* Fixed the "Hold shift for more info" line appearing on fluid info when shift is held, and disappearing otherwise \ No newline at end of file +* Fixed the "Hold shift for more info" line appearing on fluid info when shift is held, and disappearing otherwise +* Fixed smokestacks being able to void any fluid under certain conditions diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1c3abee0b..fcedee174 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1019,9 +1019,6 @@ public class ModBlocks { public static Block machine_electrolyser; - public static Block machine_deaerator; - public static final int guiID_machine_deaerator = 74; - public static Block machine_excavator; public static Block machine_autosaw; @@ -2331,8 +2328,6 @@ public class ModBlocks { anvil_osmiridium = new NTMAnvil(Material.iron, 8).setBlockName("anvil_osmiridium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_osmiridium"); anvil_murky = new NTMAnvil(Material.iron, 1916169).setBlockName("anvil_murky").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); - machine_deaerator = new MachineDeaerator(Material.iron).setBlockName("machine_deaerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - machine_waste_drum = new WasteDrum(Material.iron).setBlockName("machine_waste_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":waste_drum"); machine_storage_drum = new StorageDrum(Material.iron).setBlockName("machine_storage_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_storage_drum"); @@ -3359,7 +3354,6 @@ public class ModBlocks { GameRegistry.registerBlock(machine_solidifier, ItemBlockBase.class, machine_solidifier.getUnlocalizedName()); register(machine_compressor); GameRegistry.registerBlock(machine_electrolyser, machine_electrolyser.getUnlocalizedName()); - GameRegistry.registerBlock(machine_deaerator, machine_deaerator.getUnlocalizedName()); GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_shredder, machine_shredder.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCap.java b/src/main/java/com/hbm/blocks/generic/BlockCap.java index bc0e6433e..21dd3c74c 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCap.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCap.java @@ -57,8 +57,6 @@ public class BlockCap extends BlockEnumMulti { if(cap == EnumCapBlock.RAD) return ModItems.cap_rad; if(cap == EnumCapBlock.KORL) return ModItems.cap_korl; if(cap == EnumCapBlock.FRITZ) return ModItems.cap_fritz; - if(cap == EnumCapBlock.SUNSET) return ModItems.cap_sunset; - if(cap == EnumCapBlock.STAR) return ModItems.cap_star; return null; } @@ -66,6 +64,6 @@ public class BlockCap extends BlockEnumMulti { @Override public int quantityDropped(Random rand) { return 128; } public static enum EnumCapBlock { - NUKA, QUANTUM, SPARKLE, RAD, KORL, FRITZ, SUNSET, STAR; + NUKA, QUANTUM, SPARKLE, RAD, KORL, FRITZ } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineDeaerator.java b/src/main/java/com/hbm/blocks/machine/MachineDeaerator.java deleted file mode 100644 index e16e85817..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineDeaerator.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.BlockDummyable; -import com.hbm.tileentity.machine.TileEntityDeaerator; - -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class MachineDeaerator extends BlockDummyable { - - public MachineDeaerator(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDeaerator(); - } - - @Override - public int[] getDimensions() { - return new int[] {2, 0, 3, 4, 1, 1}; - } - - @Override - public int getOffset() { - return 4; - } - - @Override - public int getRenderType() { - return 0; - } - - @Override - public boolean isOpaqueCube() { - return true; - } - - @Override - public boolean renderAsNormalBlock() { - return true; - } -} diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 746e69dbb..c5f5f700f 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -90,7 +90,6 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.bottle2_fritz, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, W.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.bottle2_korl_special, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, CU.dust(), ST.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.bottle2_fritz_special, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, W.dust(), TH232.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.bottle2_sunset, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, GOLD.dust() }); //Syringes CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_empty, 6), new Object[] { "P", "C", "B", 'B', Item.getItemFromBlock(Blocks.iron_bars), 'C', ModItems.cell_empty, 'P', IRON.plate() }); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 8c97be180..cec12e07f 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -191,7 +191,6 @@ public class Fluids { public static final FT_NoContainer NOCON = new FT_NoContainer(); public static final FT_NoID NOID = new FT_NoID(); public static final FT_Delicious DELICIOUS = new FT_Delicious(); - public static final FT_Leaded LEADED = new FT_Leaded(); public static final FT_Unsiphonable UNSIPHONABLE = new FT_Unsiphonable(); /* Burns 4x dirtier than regular fuel */ @@ -207,7 +206,7 @@ public class Fluids { public static final FT_Polluting P_OIL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_UNREFINED_OIL).release(PollutionType.POISON, POISON_OIL); public static final FT_Polluting P_FUEL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).release(PollutionType.POISON, POISON_OIL); - public static final FT_Polluting P_FUEL_LEADED = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).burn(PollutionType.HEAVYMETAL, LEAD_FUEL).release(PollutionType.POISON, POISON_OIL); + public static final FT_Polluting P_FUEL_LEADED = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).burn(PollutionType.HEAVYMETAL, LEAD_FUEL).release(PollutionType.POISON, POISON_OIL).release(PollutionType.HEAVYMETAL, LEAD_FUEL); public static final FT_Polluting P_GAS = new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS); public static final FT_Polluting P_LIQUID_GAS = new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS * 2F); @@ -298,9 +297,9 @@ public class Fluids { SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS); XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, LEADED, P_FUEL_LEADED); - GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, LEADED, P_FUEL_LEADED); - COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, LEADED, P_FUEL_LEADED); + PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, P_FUEL_LEADED); + GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, P_FUEL_LEADED); + COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, P_FUEL_LEADED); SULFURIC_ACID = new FluidType("SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(new FT_Corrosive(50), LIQUID); COOLANT_HOT = new FluidType("COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); MUG = new FluidType("MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java index ba0e70485..457c5b639 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java @@ -9,6 +9,7 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.tank.FluidTank; import net.minecraft.util.EnumChatFormatting; @@ -88,4 +89,16 @@ public class FT_Polluting extends FluidTrait { } } } + + public static void pollute(World world, int x, int y, int z, FluidType type, FluidReleaseType release, float mB) { + FT_Polluting trait = type.getTrait(FT_Polluting.class); + if(trait == null) return; + if(release == FluidReleaseType.VOID) return; + + HashMap map = release == FluidReleaseType.BURN ? trait.burnMap : trait.releaseMap; + + for(Entry entry : map.entrySet()) { + PollutionHandler.incrementPollution(world, x, y, z, entry.getKey(), entry.getValue() * mB); + } + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index 042f72378..ae5809159 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -39,7 +39,6 @@ public abstract class FluidTrait { registerTrait("amat", FT_Amat.class); registerTrait("leadcontainer", FT_LeadContainer.class); registerTrait("delicious", FT_Delicious.class); - registerTrait("leaded", FT_Leaded.class); registerTrait("noid", FT_NoID.class); registerTrait("nocontainer", FT_NoContainer.class); registerTrait("unsiphonable", FT_Unsiphonable.class); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index 0c5026534..71cdc2a3e 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -55,12 +55,6 @@ public class FluidTraitSimple { info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); } } - - public static class FT_Leaded extends FluidTrait { - @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Leaded Fuel]"); - } - } public static class FT_Unsiphonable extends FluidTrait { @Override public void addInfoHidden(List info) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 38477cac9..5b0446224 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -963,8 +963,6 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.RAD)), new AStack[] { new ComparableStack(ModItems.cap_rad, 128) }, 10); makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.FRITZ)), new AStack[] { new ComparableStack(ModItems.cap_fritz, 128) }, 10); makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.KORL)), new AStack[] { new ComparableStack(ModItems.cap_korl, 128) }, 10); - makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.SUNSET)), new AStack[] { new ComparableStack(ModItems.cap_sunset, 128) }, 10); - makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.STAR)), new AStack[] { new ComparableStack(ModItems.cap_star, 128) }, 10); if(!GeneralConfig.enable528) { makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index cbdff9965..cf9ee4f9b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1011,7 +1011,6 @@ public class ModItems { public static Item bottle2_fritz; public static Item bottle2_korl_special; public static Item bottle2_fritz_special; - public static Item bottle2_sunset; public static Item flask_empty; public static Item flask_infusion; public static Item chocolate_milk; @@ -1024,8 +1023,6 @@ public class ModItems { public static Item cap_rad; public static Item cap_korl; public static Item cap_fritz; - public static Item cap_sunset; - public static Item cap_star; public static Item ring_pull; public static Item bdcl; //public static Item canned_beef; @@ -3466,8 +3463,6 @@ public class ModItems { cap_rad = new Item().setUnlocalizedName("cap_rad").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_rad"); cap_korl = new Item().setUnlocalizedName("cap_korl").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_korl"); cap_fritz = new Item().setUnlocalizedName("cap_fritz").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_fritz"); - cap_sunset = new Item().setUnlocalizedName("cap_sunset").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_sunset"); - cap_star = new Item().setUnlocalizedName("cap_star").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_star"); ring_pull = new Item().setUnlocalizedName("ring_pull").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ring_pull"); can_empty = new Item().setUnlocalizedName("can_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_empty"); @@ -3491,7 +3486,6 @@ public class ModItems { bottle2_fritz = new ItemEnergy().makeBottle(bottle2_empty, cap_fritz).setUnlocalizedName("bottle2_fritz").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_fritz"); bottle2_korl_special = new ItemEnergy().makeBottle(bottle2_empty, cap_korl).setUnlocalizedName("bottle2_korl_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_korl"); bottle2_fritz_special = new ItemEnergy().makeBottle(bottle2_empty, cap_fritz).setUnlocalizedName("bottle2_fritz_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_fritz"); - bottle2_sunset = new ItemEnergy().makeBottle(bottle2_empty, cap_sunset).setUnlocalizedName("bottle2_sunset").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_sunset"); flask_infusion = new ItemFlask().setUnlocalizedName("flask_infusion").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":flask"); chocolate_milk = new ItemEnergy().setUnlocalizedName("chocolate_milk").setTextureName(RefStrings.MODID + ":chocolate_milk"); coffee = new ItemEnergy().setUnlocalizedName("coffee").setTextureName(RefStrings.MODID + ":coffee"); @@ -7515,40 +7509,12 @@ public class ModItems { GameRegistry.registerItem(bottle2_fritz, bottle2_fritz.getUnlocalizedName()); GameRegistry.registerItem(bottle2_korl_special, bottle2_korl_special.getUnlocalizedName()); GameRegistry.registerItem(bottle2_fritz_special, bottle2_fritz_special.getUnlocalizedName()); - GameRegistry.registerItem(bottle2_sunset, bottle2_sunset.getUnlocalizedName()); GameRegistry.registerItem(bottle_opener, bottle_opener.getUnlocalizedName()); //Flasks GameRegistry.registerItem(flask_infusion, flask_infusion.getUnlocalizedName()); //Canned Food - //GameRegistry.registerItem(canned_beef, canned_beef.getUnlocalizedName()); - //GameRegistry.registerItem(canned_tuna, canned_tuna.getUnlocalizedName()); - //GameRegistry.registerItem(canned_mystery, canned_mystery.getUnlocalizedName()); - //GameRegistry.registerItem(canned_pashtet, canned_pashtet.getUnlocalizedName()); - //GameRegistry.registerItem(canned_cheese, canned_cheese.getUnlocalizedName()); - //GameRegistry.registerItem(canned_jizz, canned_jizz.getUnlocalizedName()); - //GameRegistry.registerItem(canned_milk, canned_milk.getUnlocalizedName()); - //GameRegistry.registerItem(canned_ass, canned_ass.getUnlocalizedName()); - //GameRegistry.registerItem(canned_pizza, canned_pizza.getUnlocalizedName()); - //GameRegistry.registerItem(canned_tube, canned_tube.getUnlocalizedName()); - //GameRegistry.registerItem(canned_tomato, canned_tomato.getUnlocalizedName()); - //GameRegistry.registerItem(canned_asbestos, canned_asbestos.getUnlocalizedName()); - //GameRegistry.registerItem(canned_bhole, canned_bhole.getUnlocalizedName()); - //GameRegistry.registerItem(canned_hotdogs, canned_hotdogs.getUnlocalizedName()); - //GameRegistry.registerItem(canned_leftovers, canned_leftovers.getUnlocalizedName()); - //GameRegistry.registerItem(canned_yogurt, canned_yogurt.getUnlocalizedName()); - //GameRegistry.registerItem(canned_stew, canned_stew.getUnlocalizedName()); - //GameRegistry.registerItem(canned_chinese, canned_chinese.getUnlocalizedName()); - //GameRegistry.registerItem(canned_oil, canned_oil.getUnlocalizedName()); - //GameRegistry.registerItem(canned_fist, canned_fist.getUnlocalizedName()); - //GameRegistry.registerItem(canned_spam, canned_spam.getUnlocalizedName()); - //GameRegistry.registerItem(canned_fried, canned_fried.getUnlocalizedName()); - //GameRegistry.registerItem(canned_napalm, canned_napalm.getUnlocalizedName()); - //GameRegistry.registerItem(canned_diesel, canned_diesel.getUnlocalizedName()); - //GameRegistry.registerItem(canned_kerosene, canned_kerosene.getUnlocalizedName()); - //GameRegistry.registerItem(canned_recursion, canned_recursion.getUnlocalizedName()); - //GameRegistry.registerItem(canned_bark, canned_bark.getUnlocalizedName()); GameRegistry.registerItem(canned_conserve, canned_conserve.getUnlocalizedName()); //Money @@ -7558,8 +7524,6 @@ public class ModItems { GameRegistry.registerItem(cap_rad, cap_rad.getUnlocalizedName()); GameRegistry.registerItem(cap_korl, cap_korl.getUnlocalizedName()); GameRegistry.registerItem(cap_fritz, cap_fritz.getUnlocalizedName()); - GameRegistry.registerItem(cap_sunset, cap_sunset.getUnlocalizedName()); - GameRegistry.registerItem(cap_star, cap_star.getUnlocalizedName()); GameRegistry.registerItem(ring_pull, ring_pull.getUnlocalizedName()); GameRegistry.registerItem(can_key, can_key.getUnlocalizedName()); GameRegistry.registerItem(coin_creeper, coin_creeper.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/food/ItemEnergy.java b/src/main/java/com/hbm/items/food/ItemEnergy.java index 02b6caf87..b01195ad9 100644 --- a/src/main/java/com/hbm/items/food/ItemEnergy.java +++ b/src/main/java/com/hbm/items/food/ItemEnergy.java @@ -171,13 +171,6 @@ public class ItemEnergy extends Item { player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1)); ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 15.0F); } - if(this == ModItems.bottle2_sunset) { - player.heal(6); - player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 1)); - player.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 2)); - player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60 * 20, 2)); - player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 60 * 20, 2)); - } if(this == ModItems.coffee) { player.heal(10); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 2)); @@ -192,11 +185,7 @@ public class ItemEnergy extends Item { if(!player.capabilities.isCreativeMode) { if(this.cap != null) { - - if(this == ModItems.bottle2_sunset && world.rand.nextInt(20) == 0) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.cap_star)); - else - player.inventory.addItemStackToInventory(new ItemStack(this.cap)); + player.inventory.addItemStackToInventory(new ItemStack(this.cap)); } if(this.container != null) { if(stack.stackSize <= 0) { @@ -317,20 +306,5 @@ public class ItemEnergy extends Item { list.add("Tastes like radish and radiation."); list.add("[Requires bottle opener]"); } - if(this == ModItems.bottle2_sunset) { - if(MainRegistry.polaroidID == 11) { - list.add("\"Authentic Sunset Juice\""); - list.add(""); - list.add("This smells like fish."); - list.add("*sip*"); - list.add("Yup, that's pretty disugsting."); - list.add("..."); - list.add("..."); - list.add("*sip*"); - } else { - list.add("The eternal #2. Screw you, Bradberton!"); - } - list.add("[Requires bottle opener]"); - } } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 8c975537d..8f815d14e 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -66,7 +66,6 @@ import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; -import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; @@ -1237,6 +1236,10 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.block_cap_fritz"); ignoreMappings.add("hbm:tile.block_cap_sunset"); ignoreMappings.add("hbm:tile.block_cap_star"); + ignoreMappings.add("hbm:tile.machine_deaerator"); + ignoreMappings.add("hbm:item.bottle2_sunset"); + ignoreMappings.add("hbm:item.cap_sunset"); + ignoreMappings.add("hbm:item.cap_star"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/packet/ItemBobmazonPacket.java b/src/main/java/com/hbm/packet/ItemBobmazonPacket.java index 8e9047038..c665f8891 100644 --- a/src/main/java/com/hbm/packet/ItemBobmazonPacket.java +++ b/src/main/java/com/hbm/packet/ItemBobmazonPacket.java @@ -128,9 +128,7 @@ public class ItemBobmazonPacket implements IMessage { item == ModItems.cap_nuka || item == ModItems.cap_quantum || item == ModItems.cap_rad || - item == ModItems.cap_sparkle || - item == ModItems.cap_star || - item == ModItems.cap_sunset) + item == ModItems.cap_sparkle) count += stack.stackSize; } @@ -157,9 +155,7 @@ public class ItemBobmazonPacket implements IMessage { item == ModItems.cap_nuka || item == ModItems.cap_quantum || item == ModItems.cap_rad || - item == ModItems.cap_sparkle || - item == ModItems.cap_star || - item == ModItems.cap_sunset) { + item == ModItems.cap_sparkle) { int size = stack.stackSize; for(int j = 0; j < size; j++) { diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 6ca6430d1..73980b18a 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -189,7 +189,6 @@ public class TileMappings { put(TileEntityLantern.class, "tileentity_lantern_ordinary"); put(TileEntityLanternBehemoth.class, "tileentity_lantern_behemoth"); put(TileEntityStorageDrum.class, "tileentity_waste_storage_drum"); - put(TileEntityDeaerator.class, "tileentity_deaerator"); put(TileEntityCableBaseNT.class, "tileentity_ohgod"); // what? put(TileEntityCablePaintable.class, "tileentity_cable_paintable"); put(TileEntityCableGauge.class, "tileentity_cable_gauge"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java index e01b8352f..08964ccc8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java @@ -85,6 +85,9 @@ public abstract class TileEntityChimneyBase extends TileEntityLoadedBase impleme @Override public long transferFluid(FluidType type, int pressure, long fluid) { + + if(type != Fluids.SMOKE && type != Fluids.SMOKE_LEADED && type != Fluids.SMOKE_POISON) return fluid; + onTicks = 20; if(cpaturesAsh()) ashTick += fluid; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeaerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeaerator.java deleted file mode 100644 index 9877146e6..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeaerator.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.tileentity.TileEntityMachineBase; - -public class TileEntityDeaerator extends TileEntityMachineBase { - - public TileEntityDeaerator() { - super(0); - } - - @Override - public String getName() { - return "container.deaerator"; - } - - @Override - public void updateEntity() { - - } - -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 254d8d027..6b348f78d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -1,13 +1,12 @@ package com.hbm.tileentity.machine; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerOilburner; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; +import com.hbm.inventory.fluid.trait.FT_Polluting; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.gui.GUIOilburner; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; @@ -82,9 +81,8 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem this.heatEnergy += heat * toBurn; - if(worldObj.getTotalWorldTime() % 20 == 0 && toBurn > 0) { - this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); - if(tank.getTankType().hasTrait(FT_Leaded.class)) this.pollute(PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * burnRate * 0.5F); + if(worldObj.getTotalWorldTime() % 5 == 0 && toBurn > 0) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.BURN, toBurn * 5); } shouldCool = false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 9cad71b9d..eeb04c81e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -1,15 +1,14 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCombustionEngine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; +import com.hbm.inventory.fluid.trait.FT_Polluting; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.gui.GUICombustionEngine; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPistons.EnumPistonType; @@ -86,10 +85,9 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin int toBurn = Math.min(fill, speed); this.power += toBurn * (trait.getCombustionEnergy() / 10_000D) * eff; fill -= toBurn; - - if(worldObj.getTotalWorldTime() % 20 == 0) { - this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); - if(tank.getTankType().hasTrait(FT_Leaded.class)) this.pollute(PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * setting * 0.1F); + + if(worldObj.getTotalWorldTime() % 5 == 0 && toBurn > 0) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.BURN, toBurn * 5); } if(toBurn > 0) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 6adb43898..cf2e88d8a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -6,8 +6,6 @@ import java.util.HashMap; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; @@ -16,8 +14,9 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; +import com.hbm.inventory.fluid.trait.FT_Polluting; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.gui.GUIMachineDiesel; import com.hbm.items.ModItems; import com.hbm.lib.Library; @@ -212,8 +211,9 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen if(tank.getFill() < 0) tank.setFill(0); - this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 0.5F); - if(tank.getTankType().hasTrait(FT_Leaded.class)) this.pollute(PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 0.5F); + if(worldObj.getTotalWorldTime() % 5 == 0) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.BURN, 5F); + } if(power + getHEFromFuel() <= powerCap) { power += getHEFromFuel(); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index d9f1f476c..784c7d158 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -3,8 +3,6 @@ package com.hbm.tileentity.machine.oil; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; @@ -14,9 +12,10 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.fluid.trait.FT_Polluting; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUIMachineGasFlare; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; @@ -138,6 +137,10 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(worldObj.getTotalWorldTime() % 7 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", getVolume(1.5F), 0.5F); + + if(worldObj.getTotalWorldTime() % 5 == 0 && eject > 0) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, eject * 5); + } } } else { @@ -171,9 +174,8 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(worldObj.getTotalWorldTime() % 3 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", getVolume(1.5F), 0.75F); - if(worldObj.getTotalWorldTime() % 20 == 0) { - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); - if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 5); + if(worldObj.getTotalWorldTime() % 5 == 0 && eject > 0) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.BURN, eject * 5); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 8688a8c55..bca156c87 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -10,6 +10,8 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Corrosive; +import com.hbm.inventory.fluid.trait.FT_Polluting; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.gui.GUIBarrel; import com.hbm.lib.Library; import com.hbm.saveddata.TomSaveData; @@ -247,7 +249,10 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc } if(b == ModBlocks.barrel_corroded ) { - if(worldObj.rand.nextInt(3) == 0) tank.setFill(tank.getFill() - 1); + if(worldObj.rand.nextInt(3) == 0) { + tank.setFill(tank.getFill() - 1); + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, 1F); + } if(worldObj.rand.nextInt(3 * 60 * 20) == 0) worldObj.func_147480_a(xCoord, yCoord, zCoord, false); } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 5e34651e2..73e3e47e2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -6,8 +6,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -16,13 +14,9 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.container.ContainerMachineFluidTank; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.trait.FT_Corrosive; -import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Amat; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; +import com.hbm.inventory.fluid.trait.*; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.inventory.gui.GUIMachineFluidTank; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -210,9 +204,8 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements Random rand = worldObj.rand; ParticleUtil.spawnGasFlame(worldObj, xCoord + rand.nextDouble(), yCoord + 0.5 + rand.nextDouble(), zCoord + rand.nextDouble(), rand.nextGaussian() * 0.2, 0.1, rand.nextGaussian() * 0.2); - if(worldObj.getTotalWorldTime() % 20 == 0) { - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 50); - if(type.hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 50); + if(worldObj.getTotalWorldTime() % 5 == 0) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.BURN, amount * 5); } } else if(type.hasTrait(FT_Gaseous.class) || type.hasTrait(FT_Gaseous_ART.class)) { @@ -227,6 +220,10 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements data.setInteger("color", tank.getTankType().getColor()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 1, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); } + + if(worldObj.getTotalWorldTime() % 5 == 0 ) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, amount * 5); + } } } diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index aaf90910e..48ffe68d6 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -79,16 +79,12 @@ public class LootGenerator { for(int i = -1; i <= 1; i++) { for(int j = -1; j <= 1; j++) { - int r = world.rand.nextInt(3); - Item cap = r < 2 ? ModItems.cap_nuka : ModItems.cap_sunset; + int r = world.rand.nextInt(10); + Item cap = r < 9 ? ModItems.cap_nuka : ModItems.cap_quantum; int count = world.rand.nextInt(5) + 3; for(int k = 0; k < count; k++) { - - if(cap == ModItems.cap_sunset && world.rand.nextInt(10) == 0) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_star, 1), i * 0.3125, k * 0.03125, j * 0.3125); - else - addItemWithDeviation(loot, world.rand, new ItemStack(cap, 4), i * 0.3125, k * 0.03125, j * 0.3125); + addItemWithDeviation(loot, world.rand, new ItemStack(cap, 4), i * 0.3125, k * 0.03125, j * 0.3125); } } } From b15447d6ebeed34353fba75c3f5aad2790ce35e3 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 13 Mar 2024 16:24:46 +0100 Subject: [PATCH 258/376] done shit, compressor fix, some preparation --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 +++ .../com/hbm/blocks/network/DroneDock.java | 11 ++++++++++- .../java/com/hbm/items/tool/ItemDrone.java | 18 ++++++++++++++++++ .../machine/TileEntityMachineCompressor.java | 4 ++-- src/main/resources/assets/hbm/lang/en_US.lang | 9 +++++++++ .../assets/hbm/textures/blocks/oil_spill.png | Bin 0 -> 622 bytes 6 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/oil_spill.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fcedee174..102d1b007 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -530,6 +530,7 @@ public class ModBlocks { public static Block foam_layer; public static Block sand_boron_layer; public static Block leaves_layer; + public static Block oil_spill; public static Block sellafield_slaked; public static Block sellafield; @@ -1745,6 +1746,7 @@ public class ModBlocks { foam_layer = new BlockLayering(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); leaves_layer = new BlockLayering(Material.leaves).setBlockName("leaves_layer").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); + oil_spill = new BlockLayering(Material.ground).setBlockName("oil_spill").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":oil_spill"); burning_earth = new WasteEarth(Material.ground, true).setBlockName("burning_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":burning_earth"); tektite = new BlockGeneric(Material.sand).setBlockName("tektite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":tektite"); @@ -2933,6 +2935,7 @@ public class ModBlocks { GameRegistry.registerBlock(foam_layer, foam_layer.getUnlocalizedName()); GameRegistry.registerBlock(sand_boron_layer, sand_boron_layer.getUnlocalizedName()); GameRegistry.registerBlock(leaves_layer, leaves_layer.getUnlocalizedName()); + GameRegistry.registerBlock(oil_spill, oil_spill.getUnlocalizedName()); GameRegistry.registerBlock(burning_earth, burning_earth.getUnlocalizedName()); GameRegistry.registerBlock(tektite, tektite.getUnlocalizedName()); GameRegistry.registerBlock(ore_tektite_osmiridium, ore_tektite_osmiridium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/network/DroneDock.java b/src/main/java/com/hbm/blocks/network/DroneDock.java index 592f5a194..df16956fc 100644 --- a/src/main/java/com/hbm/blocks/network/DroneDock.java +++ b/src/main/java/com/hbm/blocks/network/DroneDock.java @@ -1,5 +1,8 @@ package com.hbm.blocks.network; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityDroneDock; @@ -13,11 +16,12 @@ import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; -public class DroneDock extends BlockContainer { +public class DroneDock extends BlockContainer implements ITooltipProvider { @SideOnly(Side.CLIENT) private IIcon iconTop; @SideOnly(Side.CLIENT) private IIcon iconBottom; @@ -61,4 +65,9 @@ public class DroneDock extends BlockContainer { return false; } } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/items/tool/ItemDrone.java b/src/main/java/com/hbm/items/tool/ItemDrone.java index 5df768877..73e43ba14 100644 --- a/src/main/java/com/hbm/items/tool/ItemDrone.java +++ b/src/main/java/com/hbm/items/tool/ItemDrone.java @@ -1,12 +1,18 @@ package com.hbm.items.tool; +import java.util.List; + +import org.lwjgl.input.Keyboard; + import com.hbm.entity.item.EntityDeliveryDrone; import com.hbm.items.ItemEnumMulti; import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; public class ItemDrone extends ItemEnumMulti { @@ -49,4 +55,16 @@ public class ItemDrone extends ItemEnumMulti { return false; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + for(String s : I18nUtil.resolveKeyArray(stack.getUnlocalizedName() + ".desc")) + list.add(EnumChatFormatting.YELLOW + s); + } else { + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "Hold <" + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + EnumChatFormatting.DARK_GRAY + + "" + EnumChatFormatting.ITALIC + "> to display more info"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 0d9c557d2..318a1a4d0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -348,8 +348,8 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_compressor)); if(type == UpgradeType.SPEED) { - info.add(EnumChatFormatting.GREEN + "Recipe: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level == 3 ? 90 : level == 2 ? 80 : level == 1 ? 40 : 0) + "%")); - info.add(EnumChatFormatting.GREEN + "Generic compression: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.GREEN + "Generic compression: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level == 3 ? 90 : level == 2 ? 80 : level == 1 ? 40 : 0) + "%")); + info.add(EnumChatFormatting.GREEN + "Recipe: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); } if(type == UpgradeType.POWER) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 480bf536a..4abb224b1 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2454,10 +2454,15 @@ item.drillbit_tcalloy.name=Technetium Steel Drillbit item.drillbit_tcalloy_diamond.name=Technetium Steel Drillbit (Diamond-Tipped) item.drill_titanium.name=Titanium Drill item.drone.patrol.name=Transport Drone +item.drone.patrol.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place. item.drone.patrol_chunkloading.name=Chunkloading Transport Drone +item.drone.patrol_chunkloading.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place.$Loads chunks! item.drone.patrol_express.name=Express Transport Drone +item.drone.patrol_express.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place. item.drone.patrol_express_chunkloading.name=Chunkloading Express Transport Drone +item.drone.patrol_express_chunkloading.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place.$Loads chunks! item.drone.request.name=Logistics Drone +item.drone.request.desc=Used by logistics drone docks to spawn logistics drones$Drones will follow logistics drone waypoints$After completing a request, the drone will return to the dock. item.drone_linker.name=Transport Drone Linker item.ducttape.name=Duct Tape item.dust.name=Dust @@ -4910,9 +4915,13 @@ tile.dirt_dead.name=Dead Dirt tile.dirt_oily.name=Oily Dirt tile.drill_pipe.name=Drill Pipe tile.drone_crate.name=Transport Drone Crate +tile.drone_crate.desc=Loading and unloading point for transport drones.$Acts as a waypoint, has to be linked with the drone linker.$Drones must approach from a high angle, or they will get stuck. tile.drone_crate_provider.name=Logistics Provider Crate +tile.drone_crate_provider.desc=Offers items to the logistics network.$Logistics drones will try to move items from providers to requester crates. tile.drone_crate_requester.name=Logistics Requester Crate +tile.drone_crate_requester.desc=Requests items from the logistics network.$Items added to the filter will be requested, if not present in its inventory. tile.drone_dock.name=Logistics Drone Dock +tile.drone_dock.desc=Spawn point for logistics drones.$Can only detect providers and requesters within a 5 chunk radius.$Drones will only follow up to 10 waypoints per connection. tile.drone_waypoint.name=Transport Drone Waypoint tile.drone_waypoint.desc=Waypoint for transport drones$Use a transport drone linker to set the path$Click on each waypoint and crate in sequence to create the path,$then shift-click to clear the saved position$Right-click or shift-click the waypoint to change the waypoint's offset tile.drone_waypoint_request.name=Logistics Drone Waypoint diff --git a/src/main/resources/assets/hbm/textures/blocks/oil_spill.png b/src/main/resources/assets/hbm/textures/blocks/oil_spill.png new file mode 100644 index 0000000000000000000000000000000000000000..5fcc7123e4c5b4ab6227f5a0b542e9ca2f42f271 GIT binary patch literal 622 zcmV-!0+IcRP)F^VwZ<63x~_QdskO52J0iky9ORtIIipJ{c<<3#Gmax7!sGEkMEKm* zT8S|NP-{hN4S;hFy(|mg-{0h%S(b%qny9tny(i~P2mz%O>$*}(;W!SuuEROUvMgv3 z;XF^Y)>vy<*OeF}N-36Q!F!KViVy-KLami$Sy@-}ls7$vNY_$6AYX zj+9bk;JxQOPhyOS$UlP^BiD7|oWoj6jFElc>AH?uD-FO6>kFk6F~)!KN+}p) z&{|VUVObW&al~5NYAK~iDbe>m`@Xk2DJ67_k(3fSXQpXtbHDGKVHhZ-H19uPwbrcb z$}~-AYi&Cek@g3sX=2;9Hieusr4;skZ-#pB(c8B1e!s~%17NKsgwWg-N;p5r+1 z-g8~oKlEW3xULJO6wl|g0UgJ&>Fu0ruj{%Fr4)VN^Yin=A0NSdA%k!PqW}N^07*qo IM6N<$f>%`@hX4Qo literal 0 HcmV?d00001 From 866676f6f0796caf3a869ac3489df42dea31d07a Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 14 Mar 2024 16:28:57 +0100 Subject: [PATCH 259/376] cleanup --- changelog | 1 + ...ionOfTileEntitiesAndBooleansForFluids.java | 15 -- .../UnionOfTileEntitiesAndBooleansForGas.java | 16 --- .../UnionOfTileEntitiesAndBooleansForOil.java | 15 -- src/main/java/com/hbm/lib/Library.java | 128 +----------------- .../conductor/TileEntityFluidDuctSimple.java | 5 - .../oil/TileEntityMachineHydrotreater.java | 6 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/textures/items/wire_carbon.png | Bin 0 -> 332 bytes 10 files changed, 7 insertions(+), 181 deletions(-) delete mode 100644 src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForFluids.java delete mode 100644 src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForGas.java delete mode 100644 src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForOil.java create mode 100644 src/main/resources/assets/hbm/textures/items/wire_carbon.png diff --git a/changelog b/changelog index 0b90f91cb..aff61cb6e 100644 --- a/changelog +++ b/changelog @@ -21,3 +21,4 @@ * WarTec should now be compatible again * Fixed the "Hold shift for more info" line appearing on fluid info when shift is held, and disappearing otherwise * Fixed smokestacks being able to void any fluid under certain conditions +* Fixed the hydrotreater only using half as much crude oil per operation as it should diff --git a/src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForFluids.java b/src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForFluids.java deleted file mode 100644 index f0546b9e2..000000000 --- a/src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForFluids.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.calc; - -import com.hbm.interfaces.IFluidSource; - -public class UnionOfTileEntitiesAndBooleansForFluids { - - public UnionOfTileEntitiesAndBooleansForFluids(IFluidSource tileentity, boolean bool) - { - source = tileentity; - ticked = bool; - } - - public IFluidSource source; - public boolean ticked = false; -} diff --git a/src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForGas.java b/src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForGas.java deleted file mode 100644 index 8b17826f5..000000000 --- a/src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForGas.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.hbm.calc; - -import com.hbm.interfaces.IGasSource; - -public class UnionOfTileEntitiesAndBooleansForGas { - - public UnionOfTileEntitiesAndBooleansForGas(IGasSource tileentity, boolean bool) - { - source = tileentity; - ticked = bool; - } - - public IGasSource source; - public boolean ticked = false; - -} diff --git a/src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForOil.java b/src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForOil.java deleted file mode 100644 index 57d7ab4d5..000000000 --- a/src/main/java/com/hbm/calc/UnionOfTileEntitiesAndBooleansForOil.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.calc; - -import com.hbm.interfaces.IOilSource; - -public class UnionOfTileEntitiesAndBooleansForOil { - - public UnionOfTileEntitiesAndBooleansForOil(IOilSource tileentity, boolean bool) - { - source = tileentity; - ticked = bool; - } - - public IOilSource source; - public boolean ticked = false; -} diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index f42d5a4c3..cd0059185 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -7,7 +7,6 @@ import java.util.Set; import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; import com.hbm.interfaces.IFluidAcceptor; @@ -16,10 +15,7 @@ import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; -import com.hbm.tileentity.TileEntityProxyBase; import com.hbm.tileentity.TileEntityProxyInventory; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.tileentity.machine.TileEntityDummy; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyConnector; @@ -182,19 +178,6 @@ public class Library { return false; } - - public static boolean checkUnionListForFluids(List list, IFluidSource that) { - - for(UnionOfTileEntitiesAndBooleansForFluids union : list) - { - if(union.source == that) - { - return true; - } - } - - return false; - } public static EntityLivingBase getClosestEntityForChopper(World world, double x, double y, double z, double radius) { double d4 = -1.0D; @@ -385,116 +368,7 @@ public class Library { */ } - public static void transmitFluid(int x, int y, int z, boolean newTact, IFluidSource that, World worldObj, FluidType type) { - Block block = worldObj.getBlock(x, y, z); - TileEntity tileentity = worldObj.getTileEntity(x, y, z); - - //FWatz Reactor - if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x, y + 11, z + 9) == ModBlocks.fwatz_core) - { - tileentity = worldObj.getTileEntity(x, y + 11, z + 9); - } - if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x, y + 11, z - 9) == ModBlocks.fwatz_core) - { - tileentity = worldObj.getTileEntity(x, y + 11, z - 9); - } - if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x + 9, y + 11, z) == ModBlocks.fwatz_core) - { - tileentity = worldObj.getTileEntity(x + 9, y + 11, z); - } - if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x - 9, y + 11, z) == ModBlocks.fwatz_core) - { - tileentity = worldObj.getTileEntity(x - 9, y + 11, z); - } - //AMS Limiter - if(block == ModBlocks.dummy_port_ams_limiter) - { - tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); - } - //AMS Limiter - if(block == ModBlocks.dummy_port_ams_emitter) - { - tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); - } - //AMS Base - if(block == ModBlocks.dummy_port_ams_base) - { - tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); - } - //Launchers - if(block == ModBlocks.dummy_port_compact_launcher || block == ModBlocks.dummy_port_launch_table) - { - tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); - } - - if(tileentity == that) - tileentity = null; - - if(tileentity instanceof TileEntityProxyBase) { - TileEntityProxyBase proxy = (TileEntityProxyBase) tileentity; - - if(proxy.getTE() == that) - tileentity = null; - } - - if(tileentity instanceof IFluidDuct) - { - if(tileentity instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple)tileentity).getType().name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityFluidDuctSimple)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityFluidDuctSimple)tileentity).uoteab.size(); i++) - { - if(((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityFluidDuctSimple)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } - } - - if(tileentity instanceof IFluidAcceptor && newTact && ((IFluidAcceptor)tileentity).getMaxFluidFillForReceive(type) > 0 && - ((IFluidAcceptor)tileentity).getMaxFluidFillForReceive(type) - ((IFluidAcceptor)tileentity).getFluidFillForReceive(type) > 0) { - that.getFluidList(type).add((IFluidAcceptor)tileentity); - } - - if(!newTact) { - int size = that.getFluidList(type).size(); - - if(size > 0) { - int part = that.getFluidFillForTransfer(type) / size; - - for(IFluidAcceptor consume : that.getFluidList(type)) { - - if(consume.getFluidFillForReceive(type) < consume.getMaxFluidFillForReceive(type)) { - - if(consume.getMaxFluidFillForReceive(type) - consume.getFluidFillForReceive(type) >= part) { - that.transferFluid(part, type); - consume.receiveFluid(part, type); - - } else { - int transfer = consume.getMaxFluidFillForReceive(type) - consume.getFluidFillForReceive(type); - that.transferFluid(transfer, type); - consume.receiveFluid(transfer, type); - } - } - } - } - that.clearFluidList(type); - } - } + public static void transmitFluid(int x, int y, int z, boolean newTact, IFluidSource that, World worldObj, FluidType type) { } public static boolean isArrayEmpty(Object[] array) { if(array == null) diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java index 9027eca23..87b407eba 100644 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java +++ b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java @@ -1,10 +1,6 @@ package com.hbm.tileentity.conductor; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; import com.hbm.interfaces.IFluidDuct; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -22,7 +18,6 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct { protected FluidType type = Fluids.NONE; - public List uoteab = new ArrayList(); public ForgeDirection[] connections = new ForgeDirection[6]; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java index afdd0fa7b..3aa9141de 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java @@ -41,7 +41,7 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme this.tanks = new FluidTank[4]; this.tanks[0] = new FluidTank(Fluids.OIL, 64_000); this.tanks[1] = new FluidTank(Fluids.HYDROGEN, 64_000).withPressure(1); - this.tanks[2] = new FluidTank(Fluids.NONE, 24_000); + this.tanks[2] = new FluidTank(Fluids.OIL_DS, 24_000); this.tanks[3] = new FluidTank(Fluids.SOURGAS, 24_000); } @@ -107,14 +107,14 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme tanks[3].setTankType(out.getZ().type); if(power < 20_000) return; - if(tanks[0].getFill() < 50) return; + if(tanks[0].getFill() < 100) return; if(tanks[1].getFill() < out.getX().fill) return; if(slots[10] == null || slots[10].getItem() != ModItems.catalytic_converter) return; if(tanks[2].getFill() + out.getY().fill > tanks[2].getMaxFill()) return; if(tanks[3].getFill() + out.getZ().fill > tanks[3].getMaxFill()) return; - tanks[0].setFill(tanks[0].getFill() - 50); + tanks[0].setFill(tanks[0].getFill() - 100); tanks[1].setFill(tanks[1].getFill() - out.getX().fill); tanks[2].setFill(tanks[2].getFill() + out.getY().fill); tanks[3].setFill(tanks[3].getFill() + out.getZ().fill); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 3f4ec12a7..dec70dd9b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4277,6 +4277,7 @@ tile.nuke_tsar.name=Tsar Bombe tile.oil_duct.name=Ölrohr tile.oil_duct_solid.name=Verstärktes Ölrohr tile.oil_pipe.name=Rohölrohr +tile.oil_spill.name=Ölteppich tile.ore_alexandrite.name=Alexandriterz tile.ore_aluminium.name=Aluminiumerz tile.ore_asbestos.name=Asbesterz diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 4abb224b1..9ef768f43 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5291,6 +5291,7 @@ tile.nuke_tsar.name=Tsar Bomba tile.oil_duct.name=Oil Pipe tile.oil_duct_solid.name=Coated Oil Pipe tile.oil_pipe.name=Crude Oil Extraction Pipe +tile.oil_spill.name=Oil Spill tile.ore_alexandrite.name=Alexandrite Ore tile.ore_aluminium.name=Aluminium Ore tile.ore_asbestos.name=Asbestos Ore diff --git a/src/main/resources/assets/hbm/textures/items/wire_carbon.png b/src/main/resources/assets/hbm/textures/items/wire_carbon.png new file mode 100644 index 0000000000000000000000000000000000000000..0834e50f2b51cdbe6e31caf537cc19a7c4f08ce5 GIT binary patch literal 332 zcmV-S0ki&zP)I=s3|PGg9#1IB*bpE z*u|ito9s?w82C@-&j9>0np)CYE8Dh#nbG$>m>JHw>e*Y;S}V)4VBdGNZF_vjaRdO& z^IQc10EkGm)>7NkT8mOji0HKcSuU9Q5$?Tj0ALt~6X2smDJ-7)dFea?kbr zL}_SB>A1-&fQTe_AcSxjc@^IPS(s9K6;%O5B>8Xay52+?4&XEshl$J#?|oAf8)GDd zfEXiEO1QQXz;~aGG1VEU0dFN_$TUsJu3yJDml0z;%Di1yYc1Kp5>|GkEc4Z2rIeKK e;kS Date: Thu, 14 Mar 2024 16:59:44 -0400 Subject: [PATCH 260/376] Lemme axe you somethin sorry for being a pain in the axe Adds Super Axes (Bismuth, Molten, Chlorophyte, Mese) Basically the same as the pickaxes but they also double as a weapon, with each having damage relatively respective to the progression level equivalent meteorite sword. --- .../java/com/hbm/crafting/ToolRecipes.java | 7 +++ src/main/java/com/hbm/items/ModItems.java | 51 ++++++++++++++++-- src/main/resources/assets/hbm/lang/en_US.lang | 4 ++ .../assets/hbm/textures/items/bismuth_axe.png | Bin 0 -> 621 bytes .../hbm/textures/items/chlorophyte_axe.png | Bin 0 -> 620 bytes .../assets/hbm/textures/items/mese_axe.png | Bin 0 -> 592 bytes .../hbm/textures/items/volcanic_axe.png | Bin 0 -> 700 bytes 7 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/bismuth_axe.png create mode 100644 src/main/resources/assets/hbm/textures/items/chlorophyte_axe.png create mode 100644 src/main/resources/assets/hbm/textures/items/mese_axe.png create mode 100644 src/main/resources/assets/hbm/textures/items/volcanic_axe.png diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 27c513745..b0fac7d30 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -83,6 +83,13 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.volcanic_pickaxe, 'F', DURA.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mese_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_desh, 'D', ModItems.powder_dineutronium, 'A', ModItems.plate_paa, 'P', ModItems.chlorophyte_pickaxe, 'F', ModItems.shimmer_handle }); + //Super Axes + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_axe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.ingot_bismuth, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_axe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.volcanic_axe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.gem_volcanic, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_axe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_axe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.bismuth_axe, 'F', DURA.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_axe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.volcanic_axe, 'F', DURA.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mese_axe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_desh, 'D', ModItems.powder_dineutronium, 'A', ModItems.plate_paa, 'P', ModItems.chlorophyte_axe, 'F', ModItems.shimmer_handle }); + //Chainsaws CraftingManager.addRecipeAuto(ItemToolAbilityFueled.getEmptyTool(ModItems.chainsaw), new Object[] { "CCH", "BBP", "CCE", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModBlocks.chain, 'E', ModItems.canister_empty }); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index cf9ee4f9b..adcecafc1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2081,9 +2081,13 @@ public class ModItems { public static Item drax_mk2; public static Item drax_mk3; public static Item bismuth_pickaxe; + public static Item bismuth_axe; public static Item volcanic_pickaxe; + public static Item volcanic_axe; public static Item chlorophyte_pickaxe; + public static Item chlorophyte_axe; public static Item mese_pickaxe; + public static Item mese_axe; public static Item dnt_sword; public static Item dwarven_pickaxe; @@ -5271,6 +5275,16 @@ public class ModItems { .addHitAbility(new WeaponAbility.VampireAbility(2F)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("bismuth_pickaxe").setTextureName(RefStrings.MODID + ":bismuth_pickaxe"); + bismuth_axe = new ItemToolAbility(125F, 0, matBismuth, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(2)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addHitAbility(new WeaponAbility.StunAbility(5)) + .addHitAbility(new WeaponAbility.VampireAbility(2F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("bismuth_axe").setTextureName(RefStrings.MODID + ":bismuth_axe"); + ToolMaterial matVolcano = EnumHelper.addToolMaterial("HBM_VOLCANIC", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); volcanic_pickaxe = new ItemToolAbility(15F, 0, matVolcano, EnumToolType.MINER) @@ -5283,6 +5297,15 @@ public class ModItems { .addHitAbility(new WeaponAbility.VampireAbility(2F)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("volcanic_pickaxe").setTextureName(RefStrings.MODID + ":volcanic_pickaxe"); + volcanic_axe = new ItemToolAbility(125F, 0, matVolcano, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(3)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addHitAbility(new WeaponAbility.FireAbility(5)) + .addHitAbility(new WeaponAbility.VampireAbility(2F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("volcanic_axe").setTextureName(RefStrings.MODID + ":volcanic_axe"); ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 75F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte)); chlorophyte_pickaxe = new ItemToolAbility(20F, 0, matChlorophyte, EnumToolType.MINER) @@ -5295,9 +5318,16 @@ public class ModItems { .addHitAbility(new WeaponAbility.VampireAbility(5F)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("chlorophyte_pickaxe").setTextureName(RefStrings.MODID + ":chlorophyte_pickaxe"); - + chlorophyte_axe = new ItemToolAbility(175F, 0, matChlorophyte, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.LuckAbility(4)) + .addHitAbility(new WeaponAbility.StunAbility(10)) + .addHitAbility(new WeaponAbility.VampireAbility(5F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("chlorophyte_axe").setTextureName(RefStrings.MODID + ":chlorophyte_axe"); + ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); - mese_pickaxe = new ItemToolAbility(35F, 0, matMese, EnumToolType.MINER) + mese_pickaxe = new ItemToolAbility(15F, 0, matMese, EnumToolType.MINER) .addBreakAbility(new ToolAbility.HammerAbility(3)) .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.CrystallizerAbility()) @@ -5311,6 +5341,18 @@ public class ModItems { .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("mese_pickaxe").setTextureName(RefStrings.MODID + ":mese_pickaxe"); + mese_axe = new ItemToolAbility(250F, 0, matMese, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(3)) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(9)) + .addBreakAbility(new ToolAbility.ExplosionAbility(2.5F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(5F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(10F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(15F)) + .addHitAbility(new WeaponAbility.StunAbility(10)) + .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("mese_axe").setTextureName(RefStrings.MODID + ":mese_axe"); dnt_sword = new ItemSwordAbility(12F, 0, matMese).setUnlocalizedName("dnt_sword").setTextureName(RefStrings.MODID + ":dnt_sword"); @@ -7361,10 +7403,13 @@ public class ModItems { GameRegistry.registerItem(drax_mk2, drax_mk2.getUnlocalizedName()); GameRegistry.registerItem(drax_mk3, drax_mk3.getUnlocalizedName()); GameRegistry.registerItem(bismuth_pickaxe, bismuth_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(bismuth_axe, bismuth_axe.getUnlocalizedName()); GameRegistry.registerItem(volcanic_pickaxe, volcanic_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(volcanic_axe, volcanic_axe.getUnlocalizedName()); GameRegistry.registerItem(chlorophyte_pickaxe, chlorophyte_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(chlorophyte_axe, chlorophyte_axe.getUnlocalizedName()); GameRegistry.registerItem(mese_pickaxe, mese_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(matchstick, matchstick.getUnlocalizedName()); + GameRegistry.registerItem(mese_axe, mese_axe.getUnlocalizedName()); GameRegistry.registerItem(matchstick, matchstick.getUnlocalizedName()); GameRegistry.registerItem(balefire_and_steel, balefire_and_steel.getUnlocalizedName()); GameRegistry.registerItem(crowbar, crowbar.getUnlocalizedName()); GameRegistry.registerItem(wrench, wrench.getUnlocalizedName()); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 4abb224b1..0d62d5ffa 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1949,6 +1949,7 @@ item.biomass_compressed.name=Compressed Biomass item.bismuth_boots.name=Bismuth Sandals item.bismuth_helmet.name=Bismuth Headdress item.bismuth_legs.name=Bismuth Kneeguards +item.bismuth_axe.name=Bismuth Axe item.bismuth_pickaxe.name=Bismuth Pickaxe item.bismuth_plate.name=Bismuth Shoulderpads, Necklace & Loincloth item.bismuth_tool.name=Magnetic Extractor @@ -2173,6 +2174,7 @@ item.chemistry_set_boron.name=Laboratory Glassware (Boron Glass) item.chemistry_template.name=Chemistry Template: item.chernobylsign.name=Chernobyl Warning Sign Battle Axe item.chlorine_pinwheel.name=Chlorine Pinwheel +item.chlorophyte_axe.name=Chlorophyte Axe item.chlorophyte_pickaxe.name=Chlorophyte Pickaxe item.chocolate.name=Ithis-Brand Radium Chocolate item.chocolate.desc=Radium Chocolate? Pretty sure this is just meth. @@ -3053,6 +3055,7 @@ item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator item.memespoon.name=§eMarket Gardener item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel +item.mese_axe.name=Mese Axe item.mese_pickaxe.name=Mese Pickaxe item.meteor_charm.name=Meteor Charm item.meteor_remote.name=Meteorite Remote @@ -4318,6 +4321,7 @@ item.upgrade_stack_2.name=Stack Ejection Upgrade Mk.II item.upgrade_stack_3.name=Stack Ejection Upgrade Mk.III item.upgrade_template.name=Machine Upgrade Template item.v1.name=V1 +item.volcanic_axe.name=Molten Axe item.volcanic_pickaxe.name=Molten Pickaxe item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand diff --git a/src/main/resources/assets/hbm/textures/items/bismuth_axe.png b/src/main/resources/assets/hbm/textures/items/bismuth_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..f4009dde19f07321b95ed4c9f5bb5c850786f68d GIT binary patch literal 621 zcmV-z0+RiSP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0s=`yK~y+TosvIq z(?A%;pR=9f`e;#6NN5@)BorxP=+4F$=mAJckl0gUcdJe{6&v9HhH#`dcON`X6zrE z0#v6ern(Ack%CQPsG5q<_prJBK*qP*ZB8jguh%1rq%sMZFa?pO!GVIW!!bOXz*`w1 zym%~Q1l(%1(C_!VtG{sQvx(;0~hE#qR_&bc^&K5uH>*#se*tpd_NvxO2!zP-@uL{ zETrzy)J1)vhS+t$!US9QJN(t%j%;$CNmNj4UV_CuyxxA4@9*qA<14i#jDHM}_zeEQ zMdT!?U=D|eX1M~_aZ0dg*ryMl;o2i0R6t^a$o4Uf7~(jQF{K2)V`i)0SM~ngN8DI{ zLMCp2@fRySsiaVP#TlBr6?Jk|#cpriyU95xP?!dt8ZZYV_(4#vKTgp;E(ya}n;Wt?_1~fpgU=g48ka zJXp3ZPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T---S`9Y4}x1kaO1{}2!5c( zMiEIAtdta?xXZ#-RGj9c%}kOpopJ8T+%co=LLZoL&%Nh;&&j!0z#)vyBy4v{TtBmP zK9k9ObVHB740?rE=OzH#LMWgh`|vfkpMRnJR4Qews)}NgXP#uwg|2D9sTl2e9C`D@N0y`^?IGO zUI$FPu(${%a2!=#b54%nn4+Qu1AY5ZG%F@X$3|cd?jW5`54p169WaCWh9=yM}Ih7rDwoHM4FP^-_u2qH55pguAqS7iO zaqbi@&tAa&cXu?O!Gn8`NbH6*u<_wZyv@ExNLHL15fM^k#7+#uFm%fC49exQyXwNP zDxWWqY4+(lEV+%a8bPDoK(v2=@;n3HGF$gv6`wXk5+&4rY8VQ~k$wD%_I!VV!7CRE z1)rEY|DGr^usIv*)}tX#bR#Mg$p^tL6!dnn!*2y0pJ(gm*iw$a;GW)0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T-I3kdVt}2Xe|marGb`_9kKwe}Vr(@aRFvzwqwKdqjwOFc1|)A|&Dm znpHGnbiyQRj8&cPFhksfKIrML?tZUoUbTk*U~LU8xfCcAmL}8b^qvem=n`-fQ>iK3 z-2B7qYZC_t=U7~9-%lhGEz>lS&*!xsaZ^H(XJ-ClY-|dp(iv(shekl0Gni~y7M+zu z>=9rrEKK0;?vzM}czJn)<5XbV$B0ICk$^L2vsqNDRZ)#DSOh*yrT*aZ@(K?RHX02b z0|U<_;zzw6fUf(|+dGV8vVhUim1riDd1hY60~Qz`|A~!_N4e96WyRt5H^_%RXj+|i z%BWP@XScWM5zjB!wj<`{WoT*?i>E~7Lf>fA;Pd^UDuS4siz5_Ty7vfdZZ-s2hQhF1 zZWjCd7bMaL({x}M2F+BuHYo0N1j=Q(kWj7K+S9M5c%Rmvl$~lNQKb# z4j8IcZnsxg(Ml#QL?RjjfiSkWv*K=78&zgESs@m?rnVXgho3~u56dIqek5)(XXiN> z{Ec|r!20^3*k^bQ~@m ec<@~^0DJ(Ir_L*UCGwvD0000#m~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/volcanic_axe.png b/src/main/resources/assets/hbm/textures/items/volcanic_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..9a870d13143e3409b4ef0ba6725ef19b3990621f GIT binary patch literal 700 zcmV;t0z>_YP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TPFzUjnTUSLB zLqtMUG+KitX=>$RXQnTvojKmQeG)Y>ewobNIrn_$J1>U6fG)=f;+FWsj}P;I^!?39 z^KpV%6K8X77XF@X*kK#W&rPr!8R5UYq|uRn72~&7nMZgwL1#w^dL71e64t^rlwkuj zav1e+m`gRZT(TSg&4;x3KM(+pgZx&Q}Au9 z12Q-BYB1W5+F}w_ZwcPOF6v$%Bx3-jq=bOvdhInEdz! zERO}p=Y?v9A?r1m$4^05kAbcXQ740FkWk^{GAeCbt6}HV9L%dp_`j>LEeoEC3S@Hd zzx&eFM7#NI;=y8LR3VwCdRJ$mo3BtPad*!lNO}ph7X*5xP5`!3W-ayG=QVPCDzbYe z%-sLf$jBo@kpiG>9w-n3D{H`4o{hNd!u2_ghDH-u-AH%HE^;Rgq4o i50L*AqJ;k?1Hdm}PV_-B>~C`b0000! literal 0 HcmV?d00001 From 7ce891689a8c313d5a94745c8478642fcfb7f5ed Mon Sep 17 00:00:00 2001 From: burningwater202 Date: Thu, 14 Mar 2024 17:05:23 -0400 Subject: [PATCH 261/376] Axe yourself this fixes Mese pickaxe damage that I for some reason modified --- src/main/java/com/hbm/items/ModItems.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index adcecafc1..9c3d71bc2 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -5327,7 +5327,7 @@ public class ModItems { .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("chlorophyte_axe").setTextureName(RefStrings.MODID + ":chlorophyte_axe"); ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); - mese_pickaxe = new ItemToolAbility(15F, 0, matMese, EnumToolType.MINER) + mese_pickaxe = new ItemToolAbility(35F, 0, matMese, EnumToolType.MINER) .addBreakAbility(new ToolAbility.HammerAbility(3)) .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.CrystallizerAbility()) From f52e46e0011b01ed4acb1c84f4051a57581291bc Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 14 Mar 2024 22:24:22 +0100 Subject: [PATCH 262/376] bigass shoe lol --- changelog | 1 + .../inventory/recipes/CompressorRecipes.java | 2 +- .../assets/hbm/models/machines/icf.obj | 16720 ++++++++++++++++ src/main/resources/assets/hbm/sounds.json | 6 +- .../hbm/textures/models/machines/icf.png | Bin 0 -> 7267 bytes 5 files changed, 16725 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/machines/icf.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/icf.png diff --git a/changelog b/changelog index aff61cb6e..f3af5441b 100644 --- a/changelog +++ b/changelog @@ -16,6 +16,7 @@ * This means that flare stacks are now significantly less polluting, assuming natural gas is burned * Flare stacks and barrels now also respect the spilling tag, which means that simply venting the gas may cause poison pollution * Hydrogen doesn't have the polluting tag, so hydrogen burning generators won't create soot anymore +* Compressing blood no longer creates oil, rather it makes heavy oil (250mB) ## Fixed * WarTec should now be compatible again diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java index 9b5ef555d..a611276ae 100644 --- a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -26,7 +26,7 @@ public class CompressorRecipes extends SerializableRecipe { recipes.put(new Pair(Fluids.PETROLEUM, 0), new CompressorRecipe(2_000, new FluidStack(Fluids.PETROLEUM, 2_000, 1), 20)); recipes.put(new Pair(Fluids.PETROLEUM, 1), new CompressorRecipe(2_000, new FluidStack(Fluids.LPG, 1_000, 0), 20)); - recipes.put(new Pair(Fluids.BLOOD, 3), new CompressorRecipe(1_000, new FluidStack(Fluids.OIL, 500, 0), 100)); + recipes.put(new Pair(Fluids.BLOOD, 3), new CompressorRecipe(1_000, new FluidStack(Fluids.HEAVYOIL, 250, 0), 200)); } public static class CompressorRecipe { diff --git a/src/main/resources/assets/hbm/models/machines/icf.obj b/src/main/resources/assets/hbm/models/machines/icf.obj new file mode 100644 index 000000000..8c4daf462 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/icf.obj @@ -0,0 +1,16720 @@ +# Blender v2.79 (sub 0) OBJ File: 'icf.blend' +# www.blender.org +o Circle +v 0.000000 6.000000 1.500000 +v -0.956709 5.809699 1.500000 +v -1.767767 5.267767 1.500000 +v -2.309699 4.456708 1.500000 +v -2.500000 3.500000 1.500000 +v -2.309699 2.543291 1.500000 +v -1.767767 1.732233 1.500000 +v -0.956709 1.190301 1.500000 +v 0.000000 1.000000 1.500000 +v 0.956708 1.190301 1.500000 +v 1.767766 1.732232 1.500000 +v 2.309698 2.543291 1.500000 +v 2.500000 3.500000 1.500000 +v 2.309698 4.456709 1.500000 +v 1.767766 5.267767 1.500000 +v 0.956707 5.809699 1.500000 +v 0.000000 6.000000 -1.500000 +v -0.956709 5.809699 -1.500000 +v -1.767767 5.267767 -1.500000 +v -2.309699 4.456708 -1.500000 +v -2.500000 3.500000 -1.500000 +v -2.309699 2.543291 -1.500000 +v -1.767767 1.732233 -1.500000 +v -0.956709 1.190301 -1.500000 +v 0.000000 1.000000 -1.500000 +v 0.956708 1.190301 -1.500000 +v 1.767766 1.732232 -1.500000 +v 2.309698 2.543291 -1.500000 +v 2.500000 3.500000 -1.500000 +v 2.309698 4.456709 -1.500000 +v 1.767766 5.267767 -1.500000 +v 0.956707 5.809699 -1.500000 +v 0.000000 5.000000 -2.500000 +v -0.574025 4.885819 -2.500000 +v -1.060660 4.560660 -2.500000 +v -1.385819 4.074025 -2.500000 +v -1.500000 3.500000 -2.500000 +v -1.385819 2.925975 -2.500000 +v -1.060660 2.439340 -2.500000 +v -0.574025 2.114181 -2.500000 +v 0.000000 2.000000 -2.500000 +v 0.574024 2.114181 -2.500000 +v 1.060659 2.439340 -2.500000 +v 1.385818 2.925974 -2.500000 +v 1.500000 3.500000 -2.500000 +v 1.385818 4.074025 -2.500000 +v 1.060659 4.560660 -2.500000 +v 0.574024 4.885819 -2.500000 +v 0.000000 5.000000 2.500000 +v -0.574025 4.885819 2.500000 +v -1.060660 4.560660 2.500000 +v -1.385819 4.074025 2.500000 +v -1.500000 3.500000 2.500000 +v -1.385819 2.925975 2.500000 +v -1.060660 2.439340 2.500000 +v -0.574025 2.114181 2.500000 +v 0.000000 2.000000 2.500000 +v 0.574024 2.114181 2.500000 +v 1.060659 2.439340 2.500000 +v 1.385818 2.925974 2.500000 +v 1.500000 3.500000 2.500000 +v 1.385818 4.074025 2.500000 +v 1.060659 4.560660 2.500000 +v 0.574024 4.885819 2.500000 +v 0.000000 5.000000 -3.000000 +v -0.574025 4.885819 -3.000000 +v -1.060660 4.560660 -3.000000 +v -1.385819 4.074025 -3.000000 +v -1.500000 3.500000 -3.000000 +v -1.385819 2.925975 -3.000000 +v -1.060660 2.439340 -3.000000 +v -0.574025 2.114181 -3.000000 +v 0.000000 2.000000 -3.000000 +v 0.574024 2.114181 -3.000000 +v 1.060659 2.439340 -3.000000 +v 1.385818 2.925974 -3.000000 +v 1.500000 3.500000 -3.000000 +v 1.385818 4.074025 -3.000000 +v 1.060659 4.560660 -3.000000 +v 0.574024 4.885819 -3.000000 +v 0.000000 5.000000 3.000000 +v -0.574025 4.885819 3.000000 +v -1.060660 4.560660 3.000000 +v -1.385819 4.074025 3.000000 +v -1.500000 3.500000 3.000000 +v -1.385819 2.925975 3.000000 +v -1.060660 2.439340 3.000000 +v -0.574025 2.114181 3.000000 +v 0.000000 2.000000 3.000000 +v 0.574024 2.114181 3.000000 +v 1.060659 2.439340 3.000000 +v 1.385818 2.925974 3.000000 +v 1.500000 3.500000 3.000000 +v 1.385818 4.074025 3.000000 +v 1.060659 4.560660 3.000000 +v 0.574024 4.885819 3.000000 +v 0.000000 5.500000 -3.250000 +v -0.765368 5.347759 -3.250000 +v -1.414214 4.914213 -3.250000 +v -1.847759 4.265367 -3.250000 +v -2.000000 3.500000 -3.250000 +v -1.847759 2.734632 -3.250000 +v -1.414214 2.085786 -3.250000 +v -0.765368 1.652241 -3.250000 +v -0.000001 1.500000 -3.250000 +v 0.765366 1.652241 -3.250000 +v 1.414213 2.085786 -3.250000 +v 1.847758 2.734632 -3.250000 +v 2.000000 3.500000 -3.250000 +v 1.847758 4.265367 -3.250000 +v 1.414212 4.914214 -3.250000 +v 0.765366 5.347759 -3.250000 +v 0.000000 5.250000 -3.000000 +v -0.669697 5.116788 -3.000000 +v -1.237437 4.737436 -3.000000 +v -1.616789 4.169695 -3.000000 +v -1.750000 3.500000 -3.000000 +v -1.616789 2.830303 -3.000000 +v -1.237437 2.262563 -3.000000 +v -0.669697 1.883210 -3.000000 +v -0.000001 1.750000 -3.000000 +v 0.669695 1.883210 -3.000000 +v 1.237436 2.262562 -3.000000 +v 1.616789 2.830303 -3.000000 +v 1.750000 3.500000 -3.000000 +v 1.616789 4.169696 -3.000000 +v 1.237436 4.737437 -3.000000 +v 0.669695 5.116789 -3.000000 +v 0.000000 5.250000 -4.500000 +v -0.669697 5.116788 -4.500000 +v -1.237437 4.737436 -4.500000 +v -1.616789 4.169695 -4.500000 +v -1.750000 3.500000 -4.500000 +v -1.616789 2.830303 -4.500000 +v -1.237437 2.262563 -4.500000 +v -0.669697 1.883210 -4.500000 +v -0.000001 1.750000 -4.500000 +v 0.669695 1.883210 -4.500000 +v 1.237436 2.262562 -4.500000 +v 1.616789 2.830303 -4.500000 +v 1.750000 3.500000 -4.500000 +v 1.616789 4.169696 -4.500000 +v 1.237436 4.737437 -4.500000 +v 0.669695 5.116789 -4.500000 +v 0.000000 5.500000 -4.250000 +v -0.765368 5.347759 -4.250000 +v -1.414214 4.914213 -4.250000 +v -1.847759 4.265367 -4.250000 +v -2.000000 3.500000 -4.250000 +v -1.847759 2.734632 -4.250000 +v -1.414214 2.085786 -4.250000 +v -0.765368 1.652241 -4.250000 +v -0.000001 1.500000 -4.250000 +v 0.765366 1.652241 -4.250000 +v 1.414213 2.085786 -4.250000 +v 1.847758 2.734632 -4.250000 +v 2.000000 3.500000 -4.250000 +v 1.847758 4.265367 -4.250000 +v 1.414212 4.914214 -4.250000 +v 0.765366 5.347759 -4.250000 +v 0.000000 5.500000 4.250000 +v -0.765368 5.347759 4.250000 +v -1.414214 4.914213 4.250000 +v -1.847759 4.265367 4.250000 +v -2.000000 3.500000 4.250000 +v -1.847759 2.734632 4.250000 +v -1.414214 2.085786 4.250000 +v -0.765368 1.652241 4.250000 +v -0.000001 1.500000 4.250000 +v 0.765366 1.652241 4.250000 +v 1.414213 2.085786 4.250000 +v 1.847758 2.734632 4.250000 +v 2.000000 3.500000 4.250000 +v 1.847758 4.265367 4.250000 +v 1.414212 4.914214 4.250000 +v 0.765366 5.347759 4.250000 +v 0.000000 5.250000 4.500000 +v -0.669697 5.116788 4.500000 +v -1.237437 4.737436 4.500000 +v -1.616789 4.169695 4.500000 +v -1.750000 3.500000 4.500000 +v -1.616789 2.830303 4.500000 +v -1.237437 2.262563 4.500000 +v -0.669697 1.883210 4.500000 +v -0.000001 1.750000 4.500000 +v 0.669695 1.883210 4.500000 +v 1.237436 2.262562 4.500000 +v 1.616789 2.830303 4.500000 +v 1.750000 3.500000 4.500000 +v 1.616789 4.169696 4.500000 +v 1.237436 4.737437 4.500000 +v 0.669695 5.116789 4.500000 +v 0.000000 5.250000 3.000000 +v -0.669697 5.116788 3.000000 +v -1.237437 4.737436 3.000000 +v -1.616789 4.169695 3.000000 +v -1.750000 3.500000 3.000000 +v -1.616789 2.830303 3.000000 +v -1.237437 2.262563 3.000000 +v -0.669697 1.883210 3.000000 +v -0.000001 1.750000 3.000000 +v 0.669695 1.883210 3.000000 +v 1.237436 2.262562 3.000000 +v 1.616789 2.830303 3.000000 +v 1.750000 3.500000 3.000000 +v 1.616789 4.169696 3.000000 +v 1.237436 4.737437 3.000000 +v 0.669695 5.116789 3.000000 +v 0.000000 5.500000 3.250000 +v -0.765368 5.347759 3.250000 +v -1.414214 4.914213 3.250000 +v -1.847759 4.265367 3.250000 +v -2.000000 3.500000 3.250000 +v -1.847759 2.734632 3.250000 +v -1.414214 2.085786 3.250000 +v -0.765368 1.652241 3.250000 +v -0.000001 1.500000 3.250000 +v 0.765366 1.652241 3.250000 +v 1.414213 2.085786 3.250000 +v 1.847758 2.734632 3.250000 +v 2.000000 3.500000 3.250000 +v 1.847758 4.265367 3.250000 +v 1.414212 4.914214 3.250000 +v 0.765366 5.347759 3.250000 +v -0.000001 4.500000 -4.500000 +v -0.382684 4.423880 -4.500000 +v -0.707108 4.207107 -4.500000 +v -0.923880 3.882683 -4.500000 +v -1.000000 3.500000 -4.500000 +v -0.923880 3.117316 -4.500000 +v -0.707108 2.792893 -4.500000 +v -0.382684 2.576120 -4.500000 +v -0.000001 2.500000 -4.500000 +v 0.382683 2.576120 -4.500000 +v 0.707106 2.792892 -4.500000 +v 0.923879 3.117316 -4.500000 +v 0.999999 3.500000 -4.500000 +v 0.923879 3.882684 -4.500000 +v 0.707106 4.207107 -4.500000 +v 0.382683 4.423880 -4.500000 +v -0.000001 4.500000 -7.000000 +v -0.382684 4.423880 -7.000000 +v -0.707108 4.207107 -7.000000 +v -0.923880 3.882683 -7.000000 +v -1.000000 3.500000 -7.000000 +v -0.923880 3.117316 -7.000000 +v -0.707108 2.792893 -7.000000 +v -0.382684 2.576120 -7.000000 +v -0.000001 2.500000 -7.000000 +v 0.382683 2.576120 -7.000000 +v 0.707106 2.792892 -7.000000 +v 0.923879 3.117316 -7.000000 +v 0.999999 3.500000 -7.000000 +v 0.923879 3.882684 -7.000000 +v 0.707106 4.207107 -7.000000 +v 0.382683 4.423880 -7.000000 +v 0.000000 5.500000 -7.250000 +v -0.765368 5.347759 -7.250000 +v -1.414214 4.914213 -7.250000 +v -1.847759 4.265367 -7.250000 +v -2.000000 3.500000 -7.250000 +v -1.847759 2.734632 -7.250000 +v -1.414214 2.085786 -7.250000 +v -0.765368 1.652241 -7.250000 +v -0.000001 1.500000 -7.250000 +v 0.765366 1.652241 -7.250000 +v 1.414213 2.085786 -7.250000 +v 1.847758 2.734632 -7.250000 +v 2.000000 3.500000 -7.250000 +v 1.847758 4.265367 -7.250000 +v 1.414212 4.914214 -7.250000 +v 0.765366 5.347759 -7.250000 +v 0.000000 5.250000 -7.000000 +v -0.669697 5.116788 -7.000000 +v -1.237437 4.737436 -7.000000 +v -1.616789 4.169695 -7.000000 +v -1.750000 3.500000 -7.000000 +v -1.616789 2.830303 -7.000000 +v -1.237437 2.262563 -7.000000 +v -0.669697 1.883210 -7.000000 +v -0.000001 1.750000 -7.000000 +v 0.669695 1.883210 -7.000000 +v 1.237436 2.262562 -7.000000 +v 1.616789 2.830303 -7.000000 +v 1.750000 3.500000 -7.000000 +v 1.616789 4.169696 -7.000000 +v 1.237436 4.737437 -7.000000 +v 0.669695 5.116789 -7.000000 +v 0.000000 5.250000 -8.500000 +v -0.669697 5.116788 -8.500000 +v -1.237437 4.737436 -8.500000 +v -1.616789 4.169695 -8.500000 +v -1.750000 3.500000 -8.500000 +v -1.616789 2.830303 -8.500000 +v -1.237437 2.262563 -8.500000 +v -0.669697 1.883210 -8.500000 +v -0.000001 1.750000 -8.500000 +v 0.669695 1.883210 -8.500000 +v 1.237436 2.262562 -8.500000 +v 1.616789 2.830303 -8.500000 +v 1.750000 3.500000 -8.500000 +v 1.616789 4.169696 -8.500000 +v 1.237436 4.737437 -8.500000 +v 0.669695 5.116789 -8.500000 +v 0.000000 5.500000 -8.250000 +v -0.765368 5.347759 -8.250000 +v -1.414214 4.914213 -8.250000 +v -1.847759 4.265367 -8.250000 +v -2.000000 3.500000 -8.250000 +v -1.847759 2.734632 -8.250000 +v -1.414214 2.085786 -8.250000 +v -0.765368 1.652241 -8.250000 +v -0.000001 1.500000 -8.250000 +v 0.765366 1.652241 -8.250000 +v 1.414213 2.085786 -8.250000 +v 1.847758 2.734632 -8.250000 +v 2.000000 3.500000 -8.250000 +v 1.847758 4.265367 -8.250000 +v 1.414212 4.914214 -8.250000 +v 0.765366 5.347759 -8.250000 +v 0.000000 5.500000 8.250000 +v -0.765368 5.347759 8.250000 +v -1.414214 4.914213 8.250000 +v -1.847759 4.265367 8.250000 +v -2.000000 3.500000 8.250000 +v -1.847759 2.734632 8.250000 +v -1.414214 2.085786 8.250000 +v -0.765368 1.652241 8.250000 +v -0.000001 1.500000 8.250000 +v 0.765366 1.652241 8.250000 +v 1.414213 2.085786 8.250000 +v 1.847758 2.734632 8.250000 +v 2.000000 3.500000 8.250000 +v 1.847758 4.265367 8.250000 +v 1.414212 4.914214 8.250000 +v 0.765366 5.347759 8.250000 +v 0.000000 5.250000 8.500000 +v -0.669697 5.116788 8.500000 +v -1.237437 4.737436 8.500000 +v -1.616789 4.169695 8.500000 +v -1.750000 3.500000 8.500000 +v -1.616789 2.830303 8.500000 +v -1.237437 2.262563 8.500000 +v -0.669697 1.883210 8.500000 +v -0.000001 1.750000 8.500000 +v 0.669695 1.883210 8.500000 +v 1.237436 2.262562 8.500000 +v 1.616789 2.830303 8.500000 +v 1.750000 3.500000 8.500000 +v 1.616789 4.169696 8.500000 +v 1.237436 4.737437 8.500000 +v 0.669695 5.116789 8.500000 +v 0.000000 5.250000 7.000000 +v -0.669697 5.116788 7.000000 +v -1.237437 4.737436 7.000000 +v -1.616789 4.169695 7.000000 +v -1.750000 3.500000 7.000000 +v -1.616789 2.830303 7.000000 +v -1.237437 2.262563 7.000000 +v -0.669697 1.883210 7.000000 +v -0.000001 1.750000 7.000000 +v 0.669695 1.883210 7.000000 +v 1.237436 2.262562 7.000000 +v 1.616789 2.830303 7.000000 +v 1.750000 3.500000 7.000000 +v 1.616789 4.169696 7.000000 +v 1.237436 4.737437 7.000000 +v 0.669695 5.116789 7.000000 +v 0.000000 5.500000 7.250000 +v -0.765368 5.347759 7.250000 +v -1.414214 4.914213 7.250000 +v -1.847759 4.265367 7.250000 +v -2.000000 3.500000 7.250000 +v -1.847759 2.734632 7.250000 +v -1.414214 2.085786 7.250000 +v -0.765368 1.652241 7.250000 +v -0.000001 1.500000 7.250000 +v 0.765366 1.652241 7.250000 +v 1.414213 2.085786 7.250000 +v 1.847758 2.734632 7.250000 +v 2.000000 3.500000 7.250000 +v 1.847758 4.265367 7.250000 +v 1.414212 4.914214 7.250000 +v 0.765366 5.347759 7.250000 +v -0.000001 4.500000 4.500000 +v -0.382684 4.423880 4.500000 +v -0.707108 4.207107 4.500000 +v -0.923880 3.882683 4.500000 +v -1.000000 3.500000 4.500000 +v -0.923880 3.117316 4.500000 +v -0.707108 2.792893 4.500000 +v -0.382684 2.576120 4.500000 +v -0.000001 2.500000 4.500000 +v 0.382683 2.576120 4.500000 +v 0.707106 2.792892 4.500000 +v 0.923879 3.117316 4.500000 +v 0.999999 3.500000 4.500000 +v 0.923879 3.882684 4.500000 +v 0.707106 4.207107 4.500000 +v 0.382683 4.423880 4.500000 +v -0.000001 4.500000 7.000000 +v -0.382684 4.423880 7.000000 +v -0.707108 4.207107 7.000000 +v -0.923880 3.882683 7.000000 +v -1.000000 3.500000 7.000000 +v -0.923880 3.117316 7.000000 +v -0.707108 2.792893 7.000000 +v -0.382684 2.576120 7.000000 +v -0.000001 2.500000 7.000000 +v 0.382683 2.576120 7.000000 +v 0.707106 2.792892 7.000000 +v 0.923879 3.117316 7.000000 +v 0.999999 3.500000 7.000000 +v 0.923879 3.882684 7.000000 +v 0.707106 4.207107 7.000000 +v 0.382683 4.423880 7.000000 +v -0.000001 3.750000 -8.500000 +v -0.095672 3.730969 -8.500000 +v -0.176777 3.676777 -8.500000 +v -0.230970 3.595671 -8.500000 +v -0.250001 3.500000 -8.500000 +v -0.230970 3.404329 -8.500000 +v -0.176777 3.323223 -8.500000 +v -0.095672 3.269031 -8.500000 +v -0.000001 3.250000 -8.500000 +v 0.095671 3.269030 -8.500000 +v 0.176776 3.323223 -8.500000 +v 0.230969 3.404329 -8.500000 +v 0.249999 3.500000 -8.500000 +v 0.230969 3.595671 -8.500000 +v 0.176776 3.676777 -8.500000 +v 0.095670 3.730970 -8.500000 +v -0.095672 3.730969 -8.250000 +v -0.000001 3.750000 -8.250000 +v -0.176777 3.676777 -8.250000 +v -0.230970 3.595671 -8.250000 +v -0.250001 3.500000 -8.250000 +v -0.230970 3.404329 -8.250000 +v -0.176777 3.323223 -8.250000 +v -0.095672 3.269031 -8.250000 +v -0.000001 3.250000 -8.250000 +v 0.095671 3.269030 -8.250000 +v 0.176776 3.323223 -8.250000 +v 0.230969 3.404329 -8.250000 +v 0.249999 3.500000 -8.250000 +v 0.230969 3.595671 -8.250000 +v 0.176776 3.676777 -8.250000 +v 0.095670 3.730970 -8.250000 +v -0.000001 3.750000 8.500000 +v -0.095672 3.730969 8.500000 +v -0.176777 3.676777 8.500000 +v -0.230970 3.595671 8.500000 +v -0.250001 3.500000 8.500000 +v -0.230970 3.404329 8.500000 +v -0.176777 3.323223 8.500000 +v -0.095672 3.269031 8.500000 +v -0.000001 3.250000 8.500000 +v 0.095671 3.269030 8.500000 +v 0.176776 3.323223 8.500000 +v 0.230969 3.404329 8.500000 +v 0.249999 3.500000 8.500000 +v 0.230969 3.595671 8.500000 +v 0.176776 3.676777 8.500000 +v 0.095670 3.730970 8.500000 +v -0.095672 3.730969 8.250000 +v -0.000001 3.750000 8.250000 +v -0.176777 3.676777 8.250000 +v -0.230970 3.595671 8.250000 +v -0.250001 3.500000 8.250000 +v -0.230970 3.404329 8.250000 +v -0.176777 3.323223 8.250000 +v -0.095672 3.269031 8.250000 +v -0.000001 3.250000 8.250000 +v 0.095671 3.269030 8.250000 +v 0.176776 3.323223 8.250000 +v 0.230969 3.404329 8.250000 +v 0.249999 3.500000 8.250000 +v 0.230969 3.595671 8.250000 +v 0.176776 3.676777 8.250000 +v 0.095670 3.730970 8.250000 +v -0.000001 5.000000 -4.500000 +v -0.574026 4.885819 -4.500000 +v -1.060660 4.560660 -4.500000 +v -1.385819 4.074025 -4.500000 +v -1.500000 3.500000 -4.500000 +v -1.385819 2.925975 -4.500000 +v -1.060660 2.439340 -4.500000 +v -0.574026 2.114181 -4.500000 +v -0.000001 2.000000 -4.500000 +v 0.574024 2.114181 -4.500000 +v 1.060659 2.439340 -4.500000 +v 1.385818 2.925974 -4.500000 +v 1.499999 3.500000 -4.500000 +v 1.385818 4.074025 -4.500000 +v 1.060659 4.560660 -4.500000 +v 0.574024 4.885819 -4.500000 +v -0.000001 5.000000 -7.000000 +v -0.574026 4.885819 -7.000000 +v -1.060660 4.560660 -7.000000 +v -1.385819 4.074025 -7.000000 +v -1.500000 3.500000 -7.000000 +v -1.385819 2.925975 -7.000000 +v -1.060660 2.439340 -7.000000 +v -0.574026 2.114181 -7.000000 +v -0.000001 2.000000 -7.000000 +v 0.574024 2.114181 -7.000000 +v 1.060659 2.439340 -7.000000 +v 1.385818 2.925974 -7.000000 +v 1.499999 3.500000 -7.000000 +v 1.385818 4.074025 -7.000000 +v 1.060659 4.560660 -7.000000 +v 0.574024 4.885819 -7.000000 +v -0.000001 5.000000 7.000000 +v -0.574026 4.885819 7.000000 +v -1.060660 4.560660 7.000000 +v -1.385819 4.074025 7.000000 +v -1.500000 3.500000 7.000000 +v -1.385819 2.925975 7.000000 +v -1.060660 2.439340 7.000000 +v -0.574026 2.114181 7.000000 +v -0.000001 2.000000 7.000000 +v 0.574024 2.114181 7.000000 +v 1.060659 2.439340 7.000000 +v 1.385818 2.925974 7.000000 +v 1.499999 3.500000 7.000000 +v 1.385818 4.074025 7.000000 +v 1.060659 4.560660 7.000000 +v 0.574024 4.885819 7.000000 +v -0.000001 5.000000 4.500000 +v -0.574026 4.885819 4.500000 +v -1.060660 4.560660 4.500000 +v -1.385819 4.074025 4.500000 +v -1.500000 3.500000 4.500000 +v -1.385819 2.925975 4.500000 +v -1.060660 2.439340 4.500000 +v -0.574026 2.114181 4.500000 +v -0.000001 2.000000 4.500000 +v 0.574024 2.114181 4.500000 +v 1.060659 2.439340 4.500000 +v 1.385818 2.925974 4.500000 +v 1.499999 3.500000 4.500000 +v 1.385818 4.074025 4.500000 +v 1.060659 4.560660 4.500000 +v 0.574024 4.885819 4.500000 +v -1.500000 5.750000 -3.375000 +v 1.500000 5.750000 -3.375000 +v -1.500000 5.750000 -4.125000 +v 1.500000 5.750000 -4.125000 +v -1.500000 4.750000 -4.125000 +v -1.500000 4.750000 -3.375000 +v 1.500000 4.750000 -3.375000 +v 1.500000 4.750000 -4.125000 +v -1.500000 5.750000 -7.375000 +v 1.500000 5.750000 -7.375000 +v -1.500000 5.750000 -8.125000 +v 1.500000 5.750000 -8.125000 +v -1.500000 4.750000 -8.125000 +v -1.500000 4.750000 -7.375000 +v 1.500000 4.750000 -7.375000 +v 1.500000 4.750000 -8.125000 +v -1.500000 5.750000 8.125000 +v 1.500000 5.750000 8.125000 +v -1.500000 5.750000 7.375000 +v 1.500000 5.750000 7.375000 +v -1.500000 4.750000 7.375000 +v -1.500000 4.750000 8.125000 +v 1.500000 4.750000 8.125000 +v 1.500000 4.750000 7.375000 +v -1.500000 5.750000 4.125000 +v 1.500000 5.750000 4.125000 +v -1.500000 5.750000 3.375000 +v 1.500000 5.750000 3.375000 +v -1.500000 4.750000 3.375000 +v -1.500000 4.750000 4.125000 +v 1.500000 4.750000 4.125000 +v 1.500000 4.750000 3.375000 +v 1.000000 5.250000 -4.125000 +v 1.375000 5.250000 -4.125000 +v 1.000000 5.625000 -4.125000 +v 1.375000 5.625000 -4.125000 +v 1.000000 5.250000 -7.375000 +v 1.375000 5.250000 -7.375000 +v 1.000000 5.625000 -7.375000 +v 1.375000 5.625000 -7.375000 +v -1.375000 5.250000 -4.125000 +v -1.000000 5.250000 -4.125000 +v -1.375000 5.625000 -4.125000 +v -1.000000 5.625000 -4.125000 +v -1.375000 5.250000 -7.375000 +v -1.000000 5.250000 -7.375000 +v -1.375000 5.625000 -7.375000 +v -1.000000 5.625000 -7.375000 +v 1.000000 5.250000 7.375000 +v 1.375000 5.250000 7.375000 +v 1.000000 5.625000 7.375000 +v 1.375000 5.625000 7.375000 +v 1.000000 5.250000 4.125000 +v 1.375000 5.250000 4.125000 +v 1.000000 5.625000 4.125000 +v 1.375000 5.625000 4.125000 +v -1.375000 5.250000 7.375000 +v -1.000000 5.250000 7.375000 +v -1.375000 5.625000 7.375000 +v -1.000000 5.625000 7.375000 +v -1.375000 5.250000 4.125000 +v -1.000000 5.250000 4.125000 +v -1.375000 5.625000 4.125000 +v -1.000000 5.625000 4.125000 +v 0.750000 5.750000 4.000000 +v 1.250000 5.750000 4.000000 +v 0.750000 5.750000 -4.000000 +v 1.250000 5.750000 -4.000000 +v 0.750000 6.000000 -3.750000 +v 0.750000 6.000000 3.750000 +v 1.250000 6.000000 3.750000 +v 1.250000 6.000000 -3.750000 +v -1.250000 5.750000 4.000000 +v -0.750000 5.750000 4.000000 +v -1.250000 5.750000 -4.000000 +v -0.750000 5.750000 -4.000000 +v -1.250000 6.000000 -3.750000 +v -1.250000 6.000000 3.750000 +v -0.750000 6.000000 3.750000 +v -0.750000 6.000000 -3.750000 +v -1.500000 2.250000 -3.375000 +v 1.500000 2.250000 -3.375000 +v -1.500000 2.250000 -4.125000 +v 1.500000 2.250000 -4.125000 +v -1.500000 1.250000 -4.125000 +v -1.500000 1.250000 -3.375000 +v 1.500000 1.250000 -3.375000 +v 1.500000 1.250000 -4.125000 +v -1.500000 2.250000 -7.375000 +v 1.500000 2.250000 -7.375000 +v -1.500000 2.250000 -8.125000 +v 1.500000 2.250000 -8.125000 +v -1.500000 1.250000 -8.125000 +v -1.500000 1.250000 -7.375000 +v 1.500000 1.250000 -7.375000 +v 1.500000 1.250000 -8.125000 +v -1.500000 2.250000 8.125000 +v 1.500000 2.250000 8.125000 +v -1.500000 2.250000 7.375000 +v 1.500000 2.250000 7.375000 +v -1.500000 1.250000 7.375000 +v -1.500000 1.250000 8.125000 +v 1.500000 1.250000 8.125000 +v 1.500000 1.250000 7.375000 +v -1.500000 2.250000 4.125000 +v 1.500000 2.250000 4.125000 +v -1.500000 2.250000 3.375000 +v 1.500000 2.250000 3.375000 +v -1.500000 1.250000 3.375000 +v -1.500000 1.250000 4.125000 +v 1.500000 1.250000 4.125000 +v 1.500000 1.250000 3.375000 +v 1.000000 1.375000 -4.125000 +v 1.375000 1.375000 -4.125000 +v 1.000000 1.750000 -4.125000 +v 1.375000 1.750000 -4.125000 +v 1.000000 1.375000 -7.375000 +v 1.375000 1.375000 -7.375000 +v 1.000000 1.750000 -7.375000 +v 1.375000 1.750000 -7.375000 +v -1.375000 1.375000 -4.125000 +v -1.000000 1.375000 -4.125000 +v -1.375000 1.750000 -4.125000 +v -1.000000 1.750000 -4.125000 +v -1.375000 1.375000 -7.375000 +v -1.000000 1.375000 -7.375000 +v -1.375000 1.750000 -7.375000 +v -1.000000 1.750000 -7.375000 +v 1.000000 1.375000 7.375000 +v 1.375000 1.375000 7.375000 +v 1.000000 1.750000 7.375000 +v 1.375000 1.750000 7.375000 +v 1.000000 1.375000 4.125000 +v 1.375000 1.375000 4.125000 +v 1.000000 1.750000 4.125000 +v 1.375000 1.750000 4.125000 +v -1.375000 1.375000 7.375000 +v -1.000000 1.375000 7.375000 +v -1.375000 1.750000 7.375000 +v -1.000000 1.750000 7.375000 +v -1.375000 1.375000 4.125000 +v -1.000000 1.375000 4.125000 +v -1.375000 1.750000 4.125000 +v -1.000000 1.750000 4.125000 +v -0.750000 1.250000 4.000000 +v -1.250000 1.250000 4.000000 +v -0.750000 1.250000 -4.000000 +v -1.250000 1.250000 -4.000000 +v -0.750000 1.000000 -3.750000 +v -0.750000 1.000000 3.750000 +v -1.250000 1.000000 3.750000 +v -1.250000 1.000000 -3.750000 +v 1.250000 1.250000 4.000000 +v 0.750000 1.250000 4.000000 +v 1.250000 1.250000 -4.000000 +v 0.750000 1.250000 -4.000000 +v 1.250000 1.000000 -3.750000 +v 1.250000 1.000000 3.750000 +v 0.750000 1.000000 3.750000 +v 0.750000 1.000000 -3.750000 +v 1.250000 0.750000 -8.500000 +v 1.750000 0.750000 -8.500000 +v 1.250000 1.250000 -8.500000 +v 1.750000 1.250000 -8.500000 +v 1.250000 0.750000 8.500000 +v 1.750000 0.750000 8.500000 +v 1.250000 1.250000 8.500000 +v 1.750000 1.250000 8.500000 +v 1.250000 0.000000 8.250000 +v 1.750000 0.000000 8.250000 +v 1.250000 0.000000 7.750000 +v 1.750000 0.000000 7.750000 +v 1.250000 0.125000 7.750000 +v 1.250000 0.125000 8.250000 +v 1.750000 0.125000 8.250000 +v 1.750000 0.125000 7.750000 +v 1.312500 0.125000 7.812500 +v 1.312500 0.125000 8.187500 +v 1.687500 0.125000 8.187500 +v 1.687500 0.125000 7.812500 +v 1.312500 0.750000 7.812500 +v 1.312500 0.750000 8.187500 +v 1.687500 0.750000 8.187500 +v 1.687500 0.750000 7.812500 +v -1.750000 0.750000 -8.500000 +v -1.250000 0.750000 -8.500000 +v -1.750000 1.250000 -8.500000 +v -1.250000 1.250000 -8.500000 +v -1.750000 0.750000 8.500000 +v -1.250000 0.750000 8.500000 +v -1.750000 1.250000 8.500000 +v -1.250000 1.250000 8.500000 +v -0.375000 6.000000 0.375000 +v 0.375000 6.000000 0.375000 +v -0.375000 6.000000 -0.375000 +v 0.375000 6.000000 -0.375000 +v -0.375000 5.875000 -0.375000 +v -0.375000 5.875000 0.375000 +v 0.375000 5.875000 0.375000 +v 0.375000 5.875000 -0.375000 +v -0.375000 0.000000 0.375000 +v 0.375000 0.000000 0.375000 +v -0.375000 0.000000 -0.375000 +v 0.375000 0.000000 -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.375000 1.125000 -0.375000 +v 2.500000 3.750000 6.250000 +v 2.500000 3.250000 6.250000 +v 2.500000 3.750000 5.750000 +v 2.500000 3.250000 5.750000 +v 1.500000 3.750000 5.750000 +v 1.500000 3.750000 6.250000 +v 1.500000 3.250000 6.250000 +v 1.500000 3.250000 5.750000 +v 1.500000 3.875000 5.625000 +v 1.500000 3.875000 6.375000 +v 1.500000 3.125000 6.375000 +v 1.500000 3.125000 5.625000 +v 0.875000 3.875000 5.625000 +v 0.875000 3.875000 6.375000 +v 0.875000 3.125000 6.375000 +v 0.875000 3.125000 5.625000 +v 5.370945 3.437636 -0.031646 +v 5.482748 3.437636 0.024255 +v 5.479053 3.562364 0.031646 +v 5.367250 3.562364 -0.024256 +v 3.989082 5.816198 2.732081 +v 4.100885 5.816198 2.787983 +v 4.148417 5.881990 2.692919 +v 4.036614 5.881990 2.637018 +v 5.093926 3.397937 0.522393 +v 5.205729 3.397937 0.578294 +v 5.213573 3.521701 0.562607 +v 5.101769 3.521701 0.506706 +v 4.813114 3.624890 1.084016 +v 4.924919 3.624890 1.139917 +v 4.951885 3.734385 1.085984 +v 4.840080 3.734385 1.030083 +v 4.535995 4.104363 1.638257 +v 4.647799 4.104363 1.694158 +v 4.686504 4.194551 1.616744 +v 4.574701 4.194551 1.560842 +v 4.261469 4.832593 2.187310 +v 4.373272 4.832593 2.243212 +v 4.418531 4.905957 2.152690 +v 4.306728 4.905957 2.096789 +v 5.392796 3.466860 -0.075347 +v 5.504599 3.466860 -0.019445 +v 5.457203 3.533140 0.075347 +v 5.345400 3.533140 0.019445 +v 4.011459 1.088484 2.687328 +v 4.123262 1.088484 2.743229 +v 4.126041 1.213329 2.737673 +v 4.014238 1.213329 2.681771 +v 5.120440 2.493382 0.469364 +v 5.232244 2.493382 0.525266 +v 5.187058 2.566979 0.615636 +v 5.075255 2.566979 0.559734 +v 4.845951 1.765268 1.018342 +v 4.957754 1.765268 1.074244 +v 4.919048 1.855455 1.151658 +v 4.807245 1.855455 1.095756 +v 4.568831 1.285796 1.572583 +v 4.680634 1.285796 1.628485 +v 4.653668 1.395291 1.682417 +v 4.541865 1.395291 1.626516 +v 4.288248 1.058917 2.133752 +v 4.400051 1.058917 2.189653 +v 4.391752 1.182532 2.206249 +v 4.279949 1.182532 2.150347 +v 5.384722 3.444246 -0.055514 +v 5.493280 3.444246 0.006453 +v 5.465277 3.555754 0.055514 +v 5.356718 3.555754 -0.006453 +v 1.931818 3.444246 5.993546 +v 2.040377 3.444246 6.055514 +v 2.068381 3.555754 6.006454 +v 1.959822 3.555754 5.944486 +v 2.424219 2.941473 5.130919 +v 2.532779 2.941473 5.192886 +v 2.554522 3.058527 5.154795 +v 2.445963 3.058527 5.092828 +v 3.409801 2.437981 3.404303 +v 3.518359 2.437981 3.466271 +v 3.526027 2.562019 3.452839 +v 3.417467 2.562019 3.390872 +v 3.906738 2.437981 2.533729 +v 4.015297 2.437981 2.595696 +v 4.007631 2.562019 2.609128 +v 3.899072 2.562019 2.547160 +v 4.892321 2.941473 0.807114 +v 5.000879 2.941473 0.869081 +v 4.979136 3.058527 0.907172 +v 4.870577 3.058527 0.845204 +v 0.000000 5.875000 -1.250000 +v -0.908873 5.694214 -1.250000 +v -1.679379 5.179379 -1.250000 +v -2.194214 4.408875 -1.250000 +v -2.375000 3.500000 -1.250000 +v -2.194214 2.591125 -1.250000 +v -1.679379 1.820621 -1.250000 +v -0.908874 1.305786 -1.250000 +v 0.000000 1.125000 -1.250000 +v 0.908873 1.305786 -1.250000 +v 1.679379 1.820621 -1.250000 +v 2.194214 2.591125 -1.250000 +v 2.375000 3.500000 -1.250000 +v 2.194214 4.408875 -1.250000 +v 1.679378 5.179379 -1.250000 +v 0.908872 5.694214 -1.250000 +v 0.000000 5.875000 1.250000 +v -0.908873 5.694214 1.250000 +v -1.679379 5.179379 1.250000 +v -2.194214 4.408875 1.250000 +v -2.375000 3.500000 1.250000 +v -2.194214 2.591125 1.250000 +v -1.679379 1.820621 1.250000 +v -0.908874 1.305786 1.250000 +v 0.000000 1.125000 1.250000 +v 0.908873 1.305786 1.250000 +v 1.679379 1.820621 1.250000 +v 2.194214 2.591125 1.250000 +v 2.375000 3.500000 1.250000 +v 2.194214 4.408875 1.250000 +v 1.679378 5.179379 1.250000 +v 0.908872 5.694214 1.250000 +v 0.000000 5.000000 2.250000 +v -0.574025 4.885818 2.250000 +v -1.060660 4.560659 2.250000 +v -1.385819 4.074025 2.250000 +v -1.500000 3.500000 2.250000 +v -1.385819 2.925975 2.250000 +v -1.060660 2.439340 2.250000 +v -0.574025 2.114181 2.250000 +v 0.000000 2.000000 2.250000 +v 0.574024 2.114181 2.250000 +v 1.060659 2.439340 2.250000 +v 1.385818 2.925974 2.250000 +v 1.500000 3.500000 2.250000 +v 1.385818 4.074025 2.250000 +v 1.060659 4.560660 2.250000 +v 0.574024 4.885819 2.250000 +v 0.000000 5.000000 -2.250000 +v -0.574025 4.885818 -2.250000 +v -1.060660 4.560659 -2.250000 +v -1.385819 4.074025 -2.250000 +v -1.500000 3.500000 -2.250000 +v -1.385819 2.925975 -2.250000 +v -1.060660 2.439340 -2.250000 +v -0.574025 2.114181 -2.250000 +v 0.000000 2.000000 -2.250000 +v 0.574024 2.114181 -2.250000 +v 1.060659 2.439340 -2.250000 +v 1.385818 2.925974 -2.250000 +v 1.500000 3.500000 -2.250000 +v 1.385818 4.074025 -2.250000 +v 1.060659 4.560660 -2.250000 +v 0.574024 4.885819 -2.250000 +v -1.767767 5.267767 1.250000 +v -2.309699 4.456709 1.250000 +v -2.309699 2.543291 1.250000 +v -1.767767 1.732233 1.250000 +v 1.767766 1.732232 1.250000 +v 2.309698 2.543291 1.250000 +v 2.309698 4.456709 1.250000 +v 1.767766 5.267767 1.250000 +v -1.767767 5.267767 -1.250000 +v -2.309699 4.456709 -1.250000 +v -2.309699 2.543291 -1.250000 +v -1.767767 1.732233 -1.250000 +v 1.767766 1.732232 -1.250000 +v 2.309698 2.543291 -1.250000 +v 2.309698 4.456709 -1.250000 +v 1.767766 5.267767 -1.250000 +v 3.250000 3.500000 -0.750001 +v 3.250000 3.875000 -0.649519 +v 3.250000 4.149519 -0.375001 +v 3.250000 4.250000 -0.000001 +v 3.250000 4.149519 0.374999 +v 3.250000 3.875000 0.649518 +v 3.250000 3.500000 0.749999 +v 3.250000 3.125000 0.649519 +v 3.250000 2.850481 0.375000 +v 3.250000 2.750000 -0.000000 +v 3.250000 2.850481 -0.375000 +v 3.250000 3.125000 -0.649520 +v 3.000000 3.500000 -0.500000 +v 3.000000 3.750000 -0.433013 +v 3.000000 3.933013 -0.250000 +v 3.000000 4.000000 -0.000001 +v 3.000000 3.933013 0.249999 +v 3.000000 3.750000 0.433012 +v 3.000000 3.500000 0.499999 +v 3.000000 3.250000 0.433012 +v 3.000000 3.066987 0.250000 +v 3.000000 3.000000 -0.000000 +v 3.000000 3.066987 -0.250000 +v 3.000000 3.250000 -0.433013 +v 4.750000 3.500000 -0.750001 +v 4.750000 3.875000 -0.649520 +v 4.750000 4.149519 -0.375001 +v 4.750000 4.250000 -0.000001 +v 4.750000 4.149519 0.374999 +v 4.750000 3.875000 0.649518 +v 4.750000 3.500000 0.749999 +v 4.750000 3.125000 0.649518 +v 4.750000 2.850481 0.374999 +v 4.750000 2.750000 -0.000000 +v 4.750000 2.850481 -0.375000 +v 4.750000 3.125000 -0.649520 +v 5.000000 3.500000 -0.500001 +v 5.000000 3.750000 -0.433014 +v 5.000000 3.933013 -0.250001 +v 5.000000 4.000000 -0.000001 +v 5.000000 3.933013 0.249999 +v 5.000000 3.750000 0.433012 +v 5.000000 3.500000 0.499999 +v 5.000000 3.250000 0.433012 +v 5.000000 3.066987 0.249999 +v 5.000000 3.000000 -0.000001 +v 5.000000 3.066987 -0.250001 +v 5.000000 3.250000 -0.433013 +v 5.000000 3.500000 -0.375001 +v 5.000000 3.687500 -0.324760 +v 5.000000 3.824759 -0.187501 +v 5.000000 3.875000 -0.000001 +v 5.000000 3.824759 0.187499 +v 5.000000 3.687500 0.324759 +v 5.000000 3.500000 0.374999 +v 5.000000 3.312500 0.324759 +v 5.000000 3.175241 0.187499 +v 5.000000 3.125000 -0.000001 +v 5.000000 3.175241 -0.187501 +v 5.000000 3.312500 -0.324760 +v 5.875000 3.687500 -0.324760 +v 5.875000 3.500000 -0.375001 +v 5.875000 3.824759 -0.187501 +v 5.875000 3.875000 -0.000001 +v 5.875000 3.824759 0.187499 +v 5.875000 3.687500 0.324759 +v 5.875000 3.500000 0.374999 +v 5.875000 3.312500 0.324759 +v 5.875000 3.175241 0.187499 +v 5.875000 3.125000 -0.000001 +v 5.875000 3.175241 -0.187501 +v 5.875000 3.312500 -0.324760 +v 1.500000 3.500000 -0.500000 +v 1.500000 3.750000 -0.433013 +v 1.500000 3.933013 -0.250000 +v 1.500000 4.000000 -0.000000 +v 1.500000 3.933013 0.250000 +v 1.500000 3.750000 0.433012 +v 1.500000 3.500000 0.500000 +v 1.500000 3.250000 0.433012 +v 1.500000 3.066987 0.250000 +v 1.500000 3.000000 -0.000000 +v 1.500000 3.066987 -0.250000 +v 1.500000 3.250000 -0.433013 +v 1.500000 3.500000 -0.250000 +v 1.500000 3.625000 -0.216507 +v 1.500000 3.716506 -0.125000 +v 1.500000 3.750000 -0.000000 +v 1.500000 3.716506 0.125000 +v 1.500000 3.625000 0.216506 +v 1.500000 3.500000 0.250000 +v 1.500000 3.375000 0.216506 +v 1.500000 3.283494 0.125000 +v 1.500000 3.250000 -0.000000 +v 1.500000 3.283494 -0.125000 +v 1.500000 3.375000 -0.216507 +v 0.750000 3.500000 -0.250000 +v 0.750000 3.625000 -0.216507 +v 0.750000 3.716506 -0.125000 +v 0.750000 3.750000 -0.000000 +v 0.750000 3.716506 0.125000 +v 0.750000 3.625000 0.216506 +v 0.750000 3.500000 0.250000 +v 0.750000 3.375000 0.216506 +v 0.750000 3.283494 0.125000 +v 0.750000 3.250000 -0.000000 +v 0.750000 3.283494 -0.125000 +v 0.750000 3.375000 -0.216506 +v 0.750000 3.562500 -0.108253 +v 0.750000 3.500000 -0.125000 +v 0.750000 3.608253 -0.062500 +v 0.750000 3.625000 -0.000000 +v 0.750000 3.608253 0.062500 +v 0.750000 3.562500 0.108253 +v 0.750000 3.500000 0.125000 +v 0.750000 3.437500 0.108253 +v 0.750000 3.391747 0.062500 +v 0.750000 3.375000 -0.000000 +v 0.750000 3.391747 -0.062500 +v 0.750000 3.437500 -0.108253 +v 0.500000 3.562500 -0.108253 +v 0.500000 3.500000 -0.125000 +v 0.500000 3.608253 -0.062500 +v 0.500000 3.625000 -0.000000 +v 0.500000 3.608253 0.062500 +v 0.500000 3.562500 0.108253 +v 0.500000 3.500000 0.125000 +v 0.500000 3.437500 0.108253 +v 0.500000 3.391747 0.062500 +v 0.500000 3.375000 -0.000000 +v 0.500000 3.391747 -0.062500 +v 0.500000 3.437500 -0.108253 +v 0.500000 3.500000 2.250000 +v 0.433013 3.750000 2.250000 +v 0.250000 3.933013 2.250000 +v 0.000000 4.000000 2.250000 +v -0.250000 3.933013 2.250000 +v -0.433013 3.750000 2.250000 +v -0.500000 3.500000 2.250000 +v -0.433013 3.250000 2.250000 +v -0.250000 3.066987 2.250000 +v 0.000000 3.000000 2.250000 +v 0.250000 3.066987 2.250000 +v 0.433012 3.250000 2.250000 +v 0.500000 3.500000 1.500000 +v 0.433012 3.750000 1.500000 +v 0.250000 3.933013 1.500000 +v 0.000000 4.000000 1.500000 +v -0.250000 3.933013 1.500000 +v -0.433013 3.750000 1.500000 +v -0.500000 3.500000 1.500000 +v -0.433013 3.250000 1.500000 +v -0.250000 3.066987 1.500000 +v 0.000000 3.000000 1.500000 +v 0.250000 3.066987 1.500000 +v 0.433012 3.250000 1.500000 +v 0.250000 3.500000 1.500000 +v 0.216506 3.625000 1.500000 +v 0.125000 3.716506 1.500000 +v 0.000000 3.750000 1.500000 +v -0.125000 3.716506 1.500000 +v -0.216507 3.625000 1.500000 +v -0.250000 3.500000 1.500000 +v -0.216507 3.375000 1.500000 +v -0.125000 3.283494 1.500000 +v 0.000000 3.250000 1.500000 +v 0.125000 3.283494 1.500000 +v 0.216506 3.375000 1.500000 +v 0.250000 3.500000 0.750000 +v 0.216506 3.625000 0.750000 +v 0.125000 3.716506 0.750000 +v 0.000000 3.750000 0.750000 +v -0.125000 3.716506 0.750000 +v -0.216507 3.625000 0.750000 +v -0.250000 3.500000 0.750000 +v -0.216507 3.375000 0.750000 +v -0.125000 3.283494 0.750000 +v 0.000000 3.250000 0.750000 +v 0.125000 3.283494 0.750000 +v 0.216506 3.375000 0.750000 +v 0.108253 3.562500 0.750000 +v 0.125000 3.500000 0.750000 +v 0.062500 3.608253 0.750000 +v 0.000000 3.625000 0.750000 +v -0.062500 3.608253 0.750000 +v -0.108253 3.562500 0.750000 +v -0.125000 3.500000 0.750000 +v -0.108253 3.437500 0.750000 +v -0.062500 3.391747 0.750000 +v 0.000000 3.375000 0.750000 +v 0.062500 3.391747 0.750000 +v 0.108253 3.437500 0.750000 +v 0.108253 3.562500 0.500000 +v 0.125000 3.500000 0.500000 +v 0.062500 3.608253 0.500000 +v 0.000000 3.625000 0.500000 +v -0.062500 3.608253 0.500000 +v -0.108253 3.562500 0.500000 +v -0.125000 3.500000 0.500000 +v -0.108253 3.437500 0.500000 +v -0.062500 3.391747 0.500000 +v 0.000000 3.375000 0.500000 +v 0.062500 3.391747 0.500000 +v 0.108253 3.437500 0.500000 +v 0.000000 3.250000 0.000000 +v 0.180900 3.388196 0.131430 +v -0.069097 3.388196 0.212660 +v -0.223607 3.388196 0.000000 +v -0.069097 3.388196 -0.212660 +v 0.180900 3.388196 -0.131430 +v 0.069096 3.611804 0.212660 +v -0.180901 3.611804 0.131430 +v -0.180901 3.611804 -0.131430 +v 0.069096 3.611804 -0.212660 +v 0.223606 3.611804 0.000000 +v 0.000000 3.750000 0.000000 +v 2.030893 4.476523 3.875000 +v 2.030893 4.476523 7.625000 +v 2.126564 4.476523 3.875000 +v 2.126564 4.476523 7.625000 +v 2.194214 4.408874 3.875000 +v 2.194214 4.408874 7.625000 +v 2.194214 4.313202 3.875000 +v 2.194214 4.313202 7.625000 +v 2.126564 4.245553 3.875000 +v 2.126564 4.245553 7.625000 +v 2.030893 4.245553 3.875000 +v 2.030893 4.245553 7.625000 +v 1.963243 4.313202 3.875000 +v 1.963243 4.313202 7.625000 +v 1.963243 4.408874 3.875000 +v 1.963243 4.408874 7.625000 +v 1.997068 4.462512 3.786612 +v 2.068821 4.452605 3.724112 +v 2.126564 4.380852 3.698223 +v 2.136471 4.289285 3.724112 +v 2.092739 4.231542 3.786612 +v 2.020987 4.241449 3.849112 +v 1.953337 4.404770 3.849112 +v 1.915408 4.428688 3.750000 +v 1.929419 4.394863 3.661612 +v 1.963243 4.313202 3.625000 +v 1.997068 4.231542 3.661612 +v 2.011079 4.197718 3.750000 +v 1.997068 4.231542 3.838388 +v 1.929419 4.394863 3.838388 +v 1.997068 4.462512 7.713388 +v 2.068821 4.452605 7.775888 +v 2.126564 4.380852 7.801777 +v 2.136471 4.289285 7.775888 +v 2.092739 4.231542 7.713388 +v 2.020986 4.241449 7.650888 +v 1.953337 4.404770 7.650888 +v 1.915408 4.428688 7.750000 +v 1.929419 4.394863 7.838388 +v 1.963243 4.313202 7.875000 +v 1.997068 4.231542 7.838388 +v 2.011079 4.197718 7.750000 +v 1.997068 4.231542 7.661612 +v 1.929419 4.394863 7.661612 +v 1.732273 4.217532 7.625000 +v 1.684438 4.333016 7.750000 +v 1.698449 4.299192 7.838388 +v 1.732273 4.217532 7.875000 +v 1.766098 4.135871 7.838388 +v 1.780109 4.102046 7.750000 +v 1.766098 4.135871 7.661612 +v 1.698448 4.299192 7.661612 +v 1.732273 4.217532 3.875000 +v 1.684438 4.333016 3.750000 +v 1.698449 4.299192 3.661612 +v 1.732273 4.217532 3.625000 +v 1.766098 4.135871 3.661612 +v 1.780109 4.102046 3.750000 +v 1.766098 4.135871 3.838388 +v 1.698449 4.299192 3.838388 +v 2.126564 2.754447 3.875000 +v 2.126564 2.754447 7.625000 +v 2.194214 2.686798 3.875000 +v 2.194214 2.686798 7.625000 +v 2.194214 2.591127 3.875000 +v 2.194214 2.591127 7.625000 +v 2.126564 2.523477 3.875000 +v 2.126564 2.523477 7.625000 +v 2.030893 2.523477 3.875000 +v 2.030893 2.523477 7.625000 +v 1.963244 2.591127 3.875000 +v 1.963244 2.591127 7.625000 +v 1.963243 2.686798 3.875000 +v 1.963243 2.686798 7.625000 +v 2.030893 2.754447 3.875000 +v 2.030893 2.754447 7.625000 +v 2.092739 2.768458 3.786612 +v 2.136471 2.710716 3.724112 +v 2.126564 2.619148 3.698223 +v 2.068821 2.547395 3.724112 +v 1.997068 2.537488 3.786612 +v 1.953337 2.595230 3.849112 +v 2.020986 2.758551 3.849112 +v 2.011079 2.802283 3.750000 +v 1.997068 2.768458 3.661612 +v 1.963243 2.686798 3.625000 +v 1.929419 2.605137 3.661612 +v 1.915408 2.571313 3.750000 +v 1.929419 2.605137 3.838388 +v 1.997068 2.768458 3.838388 +v 2.092739 2.768458 7.713388 +v 2.136471 2.710716 7.775888 +v 2.126564 2.619148 7.801777 +v 2.068821 2.547395 7.775888 +v 1.997068 2.537488 7.713388 +v 1.953336 2.595231 7.650888 +v 2.020986 2.758551 7.650888 +v 2.011079 2.802283 7.750000 +v 1.997068 2.768458 7.838388 +v 1.963243 2.686798 7.875000 +v 1.929419 2.605137 7.838388 +v 1.915408 2.571313 7.750000 +v 1.929419 2.605137 7.661612 +v 1.997068 2.768458 7.661612 +v 1.732273 2.782469 7.625000 +v 1.780109 2.897954 7.750000 +v 1.766099 2.864129 7.838388 +v 1.732273 2.782469 7.875000 +v 1.698449 2.700809 7.838388 +v 1.684438 2.666983 7.750000 +v 1.698449 2.700809 7.661612 +v 1.766098 2.864129 7.661612 +v 1.732273 2.782469 3.875000 +v 1.780109 2.897954 3.750000 +v 1.766099 2.864129 3.661612 +v 1.732273 2.782469 3.625000 +v 1.698449 2.700809 3.661612 +v 1.684438 2.666983 3.750000 +v 1.698449 2.700809 3.838388 +v 1.766099 2.864129 3.838388 +v -2.030895 2.523477 3.875000 +v -2.030895 2.523477 7.625000 +v -2.126565 2.523477 3.875000 +v -2.126565 2.523477 7.625000 +v -2.194215 2.591127 3.875000 +v -2.194215 2.591127 7.625000 +v -2.194215 2.686798 3.875000 +v -2.194215 2.686798 7.625000 +v -2.126565 2.754447 3.875000 +v -2.126565 2.754447 7.625000 +v -2.030895 2.754447 3.875000 +v -2.030895 2.754447 7.625000 +v -1.963245 2.686798 3.875000 +v -1.963245 2.686798 7.625000 +v -1.963245 2.591127 3.875000 +v -1.963245 2.591127 7.625000 +v -1.997070 2.537488 3.786612 +v -2.068822 2.547395 3.724112 +v -2.126565 2.619148 3.698223 +v -2.136472 2.710716 3.724112 +v -2.092741 2.768458 3.786612 +v -2.020988 2.758551 3.849112 +v -1.953338 2.595230 3.849112 +v -1.915410 2.571313 3.750000 +v -1.929420 2.605138 3.661612 +v -1.963245 2.686798 3.625000 +v -1.997070 2.768458 3.661612 +v -2.011080 2.802283 3.750000 +v -1.997070 2.768458 3.838388 +v -1.929420 2.605138 3.838388 +v -1.997070 2.537488 7.713388 +v -2.068822 2.547395 7.775888 +v -2.126565 2.619148 7.801777 +v -2.136472 2.710716 7.775888 +v -2.092741 2.768458 7.713388 +v -2.020987 2.758551 7.650888 +v -1.953338 2.595230 7.650888 +v -1.915410 2.571313 7.750000 +v -1.929420 2.605138 7.838388 +v -1.963245 2.686798 7.875000 +v -1.997070 2.768458 7.838388 +v -2.011080 2.802283 7.750000 +v -1.997070 2.768458 7.661612 +v -1.929420 2.605138 7.661612 +v -1.732275 2.782469 7.625000 +v -1.684439 2.666984 7.750000 +v -1.698451 2.700808 7.838388 +v -1.732275 2.782469 7.875000 +v -1.766099 2.864129 7.838388 +v -1.780111 2.897954 7.750000 +v -1.766099 2.864129 7.661612 +v -1.698450 2.700808 7.661612 +v -1.732275 2.782469 3.875000 +v -1.684439 2.666984 3.750000 +v -1.698451 2.700808 3.661612 +v -1.732275 2.782469 3.625000 +v -1.766099 2.864129 3.661612 +v -1.780111 2.897954 3.750000 +v -1.766099 2.864129 3.838388 +v -1.698451 2.700808 3.838388 +v -2.126566 4.245553 3.875000 +v -2.126566 4.245553 7.625000 +v -2.194215 4.313202 3.875000 +v -2.194215 4.313202 7.625000 +v -2.194215 4.408874 3.875000 +v -2.194215 4.408874 7.625000 +v -2.126566 4.476523 3.875000 +v -2.126566 4.476523 7.625000 +v -2.030895 4.476523 3.875000 +v -2.030895 4.476523 7.625000 +v -1.963245 4.408874 3.875000 +v -1.963245 4.408874 7.625000 +v -1.963245 4.313202 3.875000 +v -1.963245 4.313202 7.625000 +v -2.030895 4.245553 3.875000 +v -2.030895 4.245553 7.625000 +v -2.092741 4.231543 3.786612 +v -2.136472 4.289284 3.724112 +v -2.126565 4.380852 3.698223 +v -2.068823 4.452605 3.724112 +v -1.997069 4.462512 3.786612 +v -1.953338 4.404770 3.849112 +v -2.020988 4.241449 3.849112 +v -2.011081 4.197718 3.750000 +v -1.997069 4.231542 3.661612 +v -1.963245 4.313202 3.625000 +v -1.929420 4.394863 3.661612 +v -1.915409 4.428687 3.750000 +v -1.929420 4.394863 3.838388 +v -1.997069 4.231542 3.838388 +v -2.092741 4.231543 7.713388 +v -2.136472 4.289284 7.775888 +v -2.126565 4.380852 7.801777 +v -2.068823 4.452605 7.775888 +v -1.997069 4.462512 7.713388 +v -1.953337 4.404769 7.650888 +v -2.020988 4.241449 7.650888 +v -2.011081 4.197718 7.750000 +v -1.997069 4.231542 7.838388 +v -1.963245 4.313202 7.875000 +v -1.929420 4.394863 7.838388 +v -1.915409 4.428687 7.750000 +v -1.929420 4.394863 7.661612 +v -1.997069 4.231542 7.661612 +v -1.732275 4.217531 7.625000 +v -1.780110 4.102046 7.750000 +v -1.766100 4.135871 7.838388 +v -1.732275 4.217531 7.875000 +v -1.698450 4.299191 7.838388 +v -1.684440 4.333017 7.750000 +v -1.698450 4.299191 7.661612 +v -1.766099 4.135871 7.661612 +v -1.732275 4.217531 3.875000 +v -1.780110 4.102046 3.750000 +v -1.766100 4.135871 3.661612 +v -1.732275 4.217531 3.625000 +v -1.698450 4.299191 3.661612 +v -1.684440 4.333017 3.750000 +v -1.698450 4.299191 3.838388 +v -1.766100 4.135871 3.838388 +v -2.030893 4.476523 -3.875000 +v -2.030894 4.476523 -7.625000 +v -2.126564 4.476523 -3.875000 +v -2.126565 4.476523 -7.625000 +v -2.194214 4.408874 -3.875000 +v -2.194215 4.408874 -7.625000 +v -2.194214 4.313202 -3.875000 +v -2.194215 4.313202 -7.625000 +v -2.126564 4.245553 -3.875000 +v -2.126565 4.245553 -7.625000 +v -2.030893 4.245553 -3.875000 +v -2.030894 4.245553 -7.625000 +v -1.963244 4.313202 -3.875000 +v -1.963244 4.313202 -7.625000 +v -1.963244 4.408874 -3.875000 +v -1.963244 4.408874 -7.625000 +v -1.997069 4.462512 -3.786612 +v -2.068821 4.452605 -3.724112 +v -2.126564 4.380852 -3.698223 +v -2.136471 4.289285 -3.724112 +v -2.092739 4.231542 -3.786612 +v -2.020987 4.241449 -3.849112 +v -1.953337 4.404770 -3.849112 +v -1.915409 4.428688 -3.750000 +v -1.929419 4.394863 -3.661612 +v -1.963244 4.313202 -3.625000 +v -1.997069 4.231542 -3.661612 +v -2.011079 4.197718 -3.750000 +v -1.997069 4.231542 -3.838388 +v -1.929419 4.394863 -3.838388 +v -1.997069 4.462512 -7.713388 +v -2.068822 4.452605 -7.775888 +v -2.126565 4.380852 -7.801777 +v -2.136472 4.289285 -7.775888 +v -2.092740 4.231542 -7.713388 +v -2.020987 4.241449 -7.650888 +v -1.953337 4.404770 -7.650888 +v -1.915409 4.428688 -7.750000 +v -1.929419 4.394863 -7.838388 +v -1.963244 4.313202 -7.875000 +v -1.997069 4.231542 -7.838388 +v -2.011080 4.197718 -7.750000 +v -1.997069 4.231542 -7.661612 +v -1.929419 4.394863 -7.661612 +v -1.732274 4.217532 -7.625000 +v -1.684438 4.333016 -7.750000 +v -1.698450 4.299192 -7.838388 +v -1.732274 4.217532 -7.875000 +v -1.766099 4.135871 -7.838388 +v -1.780110 4.102046 -7.750000 +v -1.766099 4.135871 -7.661612 +v -1.698449 4.299192 -7.661612 +v -1.732274 4.217532 -3.875000 +v -1.684438 4.333016 -3.750000 +v -1.698450 4.299192 -3.661612 +v -1.732274 4.217532 -3.625000 +v -1.766098 4.135871 -3.661612 +v -1.780110 4.102046 -3.750000 +v -1.766098 4.135871 -3.838388 +v -1.698450 4.299192 -3.838388 +v -2.126565 2.754447 -3.875000 +v -2.126565 2.754447 -7.625000 +v -2.194214 2.686798 -3.875000 +v -2.194214 2.686798 -7.625000 +v -2.194214 2.591127 -3.875000 +v -2.194215 2.591127 -7.625000 +v -2.126565 2.523477 -3.875000 +v -2.126565 2.523477 -7.625000 +v -2.030894 2.523477 -3.875000 +v -2.030894 2.523477 -7.625000 +v -1.963244 2.591127 -3.875000 +v -1.963244 2.591127 -7.625000 +v -1.963244 2.686798 -3.875000 +v -1.963244 2.686798 -7.625000 +v -2.030894 2.754447 -3.875000 +v -2.030894 2.754447 -7.625000 +v -2.092739 2.768458 -3.786612 +v -2.136471 2.710716 -3.724112 +v -2.126564 2.619148 -3.698223 +v -2.068822 2.547395 -3.724112 +v -1.997069 2.537488 -3.786612 +v -1.953337 2.595230 -3.849112 +v -2.020987 2.758551 -3.849112 +v -2.011080 2.802283 -3.750000 +v -1.997069 2.768458 -3.661612 +v -1.963244 2.686798 -3.625000 +v -1.929419 2.605137 -3.661612 +v -1.915409 2.571313 -3.750000 +v -1.929419 2.605137 -3.838388 +v -1.997069 2.768458 -3.838388 +v -2.092740 2.768458 -7.713388 +v -2.136471 2.710716 -7.775888 +v -2.126564 2.619148 -7.801777 +v -2.068822 2.547395 -7.775888 +v -1.997069 2.537488 -7.713388 +v -1.953337 2.595231 -7.650888 +v -2.020987 2.758551 -7.650888 +v -2.011080 2.802283 -7.750000 +v -1.997069 2.768458 -7.838388 +v -1.963244 2.686798 -7.875000 +v -1.929420 2.605137 -7.838388 +v -1.915409 2.571313 -7.750000 +v -1.929420 2.605137 -7.661612 +v -1.997069 2.768458 -7.661612 +v -1.732274 2.782469 -7.625000 +v -1.780109 2.897954 -7.750000 +v -1.766099 2.864129 -7.838388 +v -1.732274 2.782469 -7.875000 +v -1.698449 2.700809 -7.838388 +v -1.684439 2.666983 -7.750000 +v -1.698449 2.700809 -7.661612 +v -1.766099 2.864129 -7.661612 +v -1.732274 2.782469 -3.875000 +v -1.780109 2.897954 -3.750000 +v -1.766099 2.864129 -3.661612 +v -1.732274 2.782469 -3.625000 +v -1.698449 2.700809 -3.661612 +v -1.684439 2.666983 -3.750000 +v -1.698449 2.700809 -3.838388 +v -1.766099 2.864129 -3.838388 +v 2.030895 2.523477 -3.875000 +v 2.030894 2.523477 -7.625000 +v 2.126565 2.523477 -3.875000 +v 2.126565 2.523477 -7.625000 +v 2.194215 2.591127 -3.875000 +v 2.194214 2.591127 -7.625000 +v 2.194215 2.686798 -3.875000 +v 2.194214 2.686798 -7.625000 +v 2.126565 2.754447 -3.875000 +v 2.126565 2.754447 -7.625000 +v 2.030895 2.754447 -3.875000 +v 2.030894 2.754447 -7.625000 +v 1.963244 2.686798 -3.875000 +v 1.963244 2.686798 -7.625000 +v 1.963244 2.591127 -3.875000 +v 1.963244 2.591127 -7.625000 +v 1.997069 2.537488 -3.786612 +v 2.068822 2.547395 -3.724112 +v 2.126565 2.619148 -3.698223 +v 2.136472 2.710716 -3.724112 +v 2.092741 2.768458 -3.786612 +v 2.020988 2.758551 -3.849112 +v 1.953338 2.595230 -3.849112 +v 1.915409 2.571313 -3.750000 +v 1.929420 2.605138 -3.661612 +v 1.963244 2.686798 -3.625000 +v 1.997069 2.768458 -3.661612 +v 2.011080 2.802283 -3.750000 +v 1.997069 2.768458 -3.838388 +v 1.929420 2.605138 -3.838388 +v 1.997069 2.537488 -7.713388 +v 2.068821 2.547395 -7.775888 +v 2.126565 2.619148 -7.801777 +v 2.136471 2.710716 -7.775888 +v 2.092740 2.768458 -7.713388 +v 2.020986 2.758551 -7.650888 +v 1.953337 2.595230 -7.650888 +v 1.915409 2.571313 -7.750000 +v 1.929419 2.605138 -7.838388 +v 1.963244 2.686798 -7.875000 +v 1.997069 2.768458 -7.838388 +v 2.011079 2.802283 -7.750000 +v 1.997069 2.768458 -7.661612 +v 1.929419 2.605138 -7.661612 +v 1.732274 2.782469 -7.625000 +v 1.684438 2.666984 -7.750000 +v 1.698450 2.700808 -7.838388 +v 1.732274 2.782469 -7.875000 +v 1.766099 2.864129 -7.838388 +v 1.780110 2.897954 -7.750000 +v 1.766099 2.864129 -7.661612 +v 1.698449 2.700808 -7.661612 +v 1.732274 2.782469 -3.875000 +v 1.684439 2.666984 -3.750000 +v 1.698450 2.700808 -3.661612 +v 1.732274 2.782469 -3.625000 +v 1.766099 2.864129 -3.661612 +v 1.780110 2.897954 -3.750000 +v 1.766099 2.864129 -3.838388 +v 1.698450 2.700808 -3.838388 +v 2.126565 4.245553 -3.875000 +v 2.126565 4.245553 -7.625000 +v 2.194215 4.313202 -3.875000 +v 2.194215 4.313202 -7.625000 +v 2.194215 4.408874 -3.875000 +v 2.194214 4.408874 -7.625000 +v 2.126565 4.476523 -3.875000 +v 2.126565 4.476523 -7.625000 +v 2.030894 4.476523 -3.875000 +v 2.030894 4.476523 -7.625000 +v 1.963244 4.408874 -3.875000 +v 1.963244 4.408874 -7.625000 +v 1.963244 4.313202 -3.875000 +v 1.963244 4.313202 -7.625000 +v 2.030894 4.245553 -3.875000 +v 2.030894 4.245553 -7.625000 +v 2.092741 4.231543 -3.786612 +v 2.136472 4.289284 -3.724112 +v 2.126565 4.380852 -3.698223 +v 2.068822 4.452605 -3.724112 +v 1.997069 4.462512 -3.786612 +v 1.953338 4.404770 -3.849112 +v 2.020987 4.241449 -3.849112 +v 2.011080 4.197718 -3.750000 +v 1.997069 4.231542 -3.661612 +v 1.963244 4.313202 -3.625000 +v 1.929420 4.394863 -3.661612 +v 1.915409 4.428687 -3.750000 +v 1.929420 4.394863 -3.838388 +v 1.997069 4.231542 -3.838388 +v 2.092740 4.231543 -7.713388 +v 2.136472 4.289284 -7.775888 +v 2.126565 4.380852 -7.801777 +v 2.068822 4.452605 -7.775888 +v 1.997069 4.462512 -7.713388 +v 1.953337 4.404769 -7.650888 +v 2.020987 4.241449 -7.650888 +v 2.011080 4.197718 -7.750000 +v 1.997069 4.231542 -7.838388 +v 1.963244 4.313202 -7.875000 +v 1.929419 4.394863 -7.838388 +v 1.915409 4.428687 -7.750000 +v 1.929419 4.394863 -7.661612 +v 1.997069 4.231542 -7.661612 +v 1.732274 4.217531 -7.625000 +v 1.780109 4.102046 -7.750000 +v 1.766099 4.135871 -7.838388 +v 1.732274 4.217531 -7.875000 +v 1.698449 4.299191 -7.838388 +v 1.684439 4.333017 -7.750000 +v 1.698449 4.299191 -7.661612 +v 1.766099 4.135871 -7.661612 +v 1.732274 4.217531 -3.875000 +v 1.780110 4.102046 -3.750000 +v 1.766100 4.135871 -3.661612 +v 1.732274 4.217531 -3.625000 +v 1.698449 4.299191 -3.661612 +v 1.684439 4.333017 -3.750000 +v 1.698449 4.299191 -3.838388 +v 1.766100 4.135871 -3.838388 +v 2.500000 3.750000 -5.750000 +v 2.500000 3.250000 -5.750000 +v 2.500000 3.750000 -6.250000 +v 2.500000 3.250000 -6.250000 +v 1.500000 3.750000 -6.250000 +v 1.500000 3.750000 -5.750000 +v 1.500000 3.250000 -5.750000 +v 1.500000 3.250000 -6.250000 +v 1.500000 3.875000 -6.375000 +v 1.500000 3.875000 -5.625000 +v 1.500000 3.125000 -5.625000 +v 1.500000 3.125000 -6.375000 +v 0.875000 3.875000 -6.375000 +v 0.875000 3.875000 -5.625000 +v 0.875000 3.125000 -5.625000 +v 0.875000 3.125000 -6.375000 +v -2.500000 3.750000 -6.250000 +v -2.500000 3.250000 -6.250000 +v -2.500000 3.750000 -5.750000 +v -2.500000 3.250000 -5.750000 +v -1.500000 3.750000 -5.750000 +v -1.500000 3.750000 -6.250000 +v -1.500000 3.250000 -6.250000 +v -1.500000 3.250000 -5.750000 +v -1.500000 3.875000 -5.625000 +v -1.500000 3.875000 -6.375000 +v -1.500000 3.125000 -6.375000 +v -1.500000 3.125000 -5.625000 +v -0.875000 3.875000 -5.625000 +v -0.875000 3.875000 -6.375000 +v -0.875000 3.125000 -6.375000 +v -0.875000 3.125000 -5.625000 +v -2.500000 3.750000 5.750000 +v -2.500000 3.250000 5.750000 +v -2.500000 3.750000 6.250000 +v -2.500000 3.250000 6.250000 +v -1.500000 3.750000 6.250000 +v -1.500000 3.750000 5.750000 +v -1.500000 3.250000 5.750000 +v -1.500000 3.250000 6.250000 +v -1.500000 3.875000 6.375000 +v -1.500000 3.875000 5.625000 +v -1.500000 3.125000 5.625000 +v -1.500000 3.125000 6.375000 +v -0.875000 3.875000 6.375000 +v -0.875000 3.875000 5.625000 +v -0.875000 3.125000 5.625000 +v -0.875000 3.125000 6.375000 +v -1.750000 0.000000 8.250000 +v -1.250000 0.000000 8.250000 +v -1.750000 0.000000 7.750000 +v -1.250000 0.000000 7.750000 +v -1.750000 0.125000 7.750000 +v -1.750000 0.125000 8.250000 +v -1.250000 0.125000 8.250000 +v -1.250000 0.125000 7.750000 +v -1.687500 0.125000 7.812500 +v -1.687500 0.125000 8.187500 +v -1.312500 0.125000 8.187500 +v -1.312500 0.125000 7.812500 +v -1.687500 0.750000 7.812500 +v -1.687500 0.750000 8.187500 +v -1.312500 0.750000 8.187500 +v -1.312500 0.750000 7.812500 +v 1.250000 0.000000 6.250000 +v 1.750000 0.000000 6.250000 +v 1.250000 0.000000 5.750000 +v 1.750000 0.000000 5.750000 +v 1.250000 0.125000 5.750000 +v 1.250000 0.125000 6.250000 +v 1.750000 0.125000 6.250000 +v 1.750000 0.125000 5.750000 +v 1.312500 0.125000 5.812500 +v 1.312500 0.125000 6.187500 +v 1.687500 0.125000 6.187500 +v 1.687500 0.125000 5.812500 +v 1.312500 0.750000 5.812500 +v 1.312500 0.750000 6.187500 +v 1.687500 0.750000 6.187500 +v 1.687500 0.750000 5.812500 +v -1.750000 0.000000 6.250000 +v -1.250000 0.000000 6.250000 +v -1.750000 0.000000 5.750000 +v -1.250000 0.000000 5.750000 +v -1.750000 0.125000 5.750000 +v -1.750000 0.125000 6.250000 +v -1.250000 0.125000 6.250000 +v -1.250000 0.125000 5.750000 +v -1.687500 0.125000 5.812500 +v -1.687500 0.125000 6.187500 +v -1.312500 0.125000 6.187500 +v -1.312500 0.125000 5.812500 +v -1.687500 0.750000 5.812500 +v -1.687500 0.750000 6.187500 +v -1.312500 0.750000 6.187500 +v -1.312500 0.750000 5.812500 +v 1.250000 0.000000 4.250000 +v 1.750000 0.000000 4.250000 +v 1.250000 0.000000 3.750000 +v 1.750000 0.000000 3.750000 +v 1.250000 0.125000 3.750000 +v 1.250000 0.125000 4.250000 +v 1.750000 0.125000 4.250000 +v 1.750000 0.125000 3.750000 +v 1.312500 0.125000 3.812500 +v 1.312500 0.125000 4.187500 +v 1.687500 0.125000 4.187500 +v 1.687500 0.125000 3.812500 +v 1.312500 0.750000 3.812500 +v 1.312500 0.750000 4.187500 +v 1.687500 0.750000 4.187500 +v 1.687500 0.750000 3.812500 +v -1.750000 0.000000 4.250000 +v -1.250000 0.000000 4.250000 +v -1.750000 0.000000 3.750000 +v -1.250000 0.000000 3.750000 +v -1.750000 0.125000 3.750000 +v -1.750000 0.125000 4.250000 +v -1.250000 0.125000 4.250000 +v -1.250000 0.125000 3.750000 +v -1.687500 0.125000 3.812500 +v -1.687500 0.125000 4.187500 +v -1.312500 0.125000 4.187500 +v -1.312500 0.125000 3.812500 +v -1.687500 0.750000 3.812500 +v -1.687500 0.750000 4.187500 +v -1.312500 0.750000 4.187500 +v -1.312500 0.750000 3.812500 +v 1.250000 0.000000 2.250000 +v 1.750000 0.000000 2.250000 +v 1.250000 0.000000 1.750000 +v 1.750000 0.000000 1.750000 +v 1.250000 0.125000 1.750000 +v 1.250000 0.125000 2.250000 +v 1.750000 0.125000 2.250000 +v 1.750000 0.125000 1.750000 +v 1.312500 0.125000 1.812500 +v 1.312500 0.125000 2.187500 +v 1.687500 0.125000 2.187500 +v 1.687500 0.125000 1.812500 +v 1.312500 0.750000 1.812500 +v 1.312500 0.750000 2.187500 +v 1.687500 0.750000 2.187500 +v 1.687500 0.750000 1.812500 +v -1.750000 0.000000 2.250000 +v -1.250000 0.000000 2.250000 +v -1.750000 0.000000 1.750000 +v -1.250000 0.000000 1.750000 +v -1.750000 0.125000 1.750000 +v -1.750000 0.125000 2.250000 +v -1.250000 0.125000 2.250000 +v -1.250000 0.125000 1.750000 +v -1.687500 0.125000 1.812500 +v -1.687500 0.125000 2.187500 +v -1.312500 0.125000 2.187500 +v -1.312500 0.125000 1.812500 +v -1.687500 0.750000 1.812500 +v -1.687500 0.750000 2.187500 +v -1.312500 0.750000 2.187500 +v -1.312500 0.750000 1.812500 +v 1.250000 0.000000 0.250000 +v 1.750000 0.000000 0.250000 +v 1.250000 0.000000 -0.250000 +v 1.750000 0.000000 -0.250000 +v 1.250000 0.125000 -0.250000 +v 1.250000 0.125000 0.250000 +v 1.750000 0.125000 0.250000 +v 1.750000 0.125000 -0.250000 +v 1.312500 0.125000 -0.187500 +v 1.312500 0.125000 0.187500 +v 1.687500 0.125000 0.187500 +v 1.687500 0.125000 -0.187500 +v 1.312500 0.750000 -0.187500 +v 1.312500 0.750000 0.187500 +v 1.687500 0.750000 0.187500 +v 1.687500 0.750000 -0.187500 +v -1.750000 0.000000 0.250000 +v -1.250000 0.000000 0.250000 +v -1.750000 0.000000 -0.250000 +v -1.250000 0.000000 -0.250000 +v -1.750000 0.125000 -0.250000 +v -1.750000 0.125000 0.250000 +v -1.250000 0.125000 0.250000 +v -1.250000 0.125000 -0.250000 +v -1.687500 0.125000 -0.187500 +v -1.687500 0.125000 0.187500 +v -1.312500 0.125000 0.187500 +v -1.312500 0.125000 -0.187500 +v -1.687500 0.750000 -0.187500 +v -1.687500 0.750000 0.187500 +v -1.312500 0.750000 0.187500 +v -1.312500 0.750000 -0.187500 +v 1.250000 0.000000 -1.750000 +v 1.750000 0.000000 -1.750000 +v 1.250000 0.000000 -2.250000 +v 1.750000 0.000000 -2.250000 +v 1.250000 0.125000 -2.250000 +v 1.250000 0.125000 -1.750000 +v 1.750000 0.125000 -1.750000 +v 1.750000 0.125000 -2.250000 +v 1.312500 0.125000 -2.187500 +v 1.312500 0.125000 -1.812500 +v 1.687500 0.125000 -1.812500 +v 1.687500 0.125000 -2.187500 +v 1.312500 0.750000 -2.187500 +v 1.312500 0.750000 -1.812500 +v 1.687500 0.750000 -1.812500 +v 1.687500 0.750000 -2.187500 +v -1.750000 0.000000 -1.750000 +v -1.250000 0.000000 -1.750000 +v -1.750000 0.000000 -2.250000 +v -1.250000 0.000000 -2.250000 +v -1.750000 0.125000 -2.250000 +v -1.750000 0.125000 -1.750000 +v -1.250000 0.125000 -1.750000 +v -1.250000 0.125000 -2.250000 +v -1.687500 0.125000 -2.187500 +v -1.687500 0.125000 -1.812500 +v -1.312500 0.125000 -1.812500 +v -1.312500 0.125000 -2.187500 +v -1.687500 0.750000 -2.187500 +v -1.687500 0.750000 -1.812500 +v -1.312500 0.750000 -1.812500 +v -1.312500 0.750000 -2.187500 +v 1.250000 0.000000 -3.750000 +v 1.750000 0.000000 -3.750000 +v 1.250000 0.000000 -4.250000 +v 1.750000 0.000000 -4.250000 +v 1.250000 0.125000 -4.250000 +v 1.250000 0.125000 -3.750000 +v 1.750000 0.125000 -3.750000 +v 1.750000 0.125000 -4.250000 +v 1.312500 0.125000 -4.187500 +v 1.312500 0.125000 -3.812500 +v 1.687500 0.125000 -3.812500 +v 1.687500 0.125000 -4.187500 +v 1.312500 0.750000 -4.187500 +v 1.312500 0.750000 -3.812500 +v 1.687500 0.750000 -3.812500 +v 1.687500 0.750000 -4.187500 +v -1.750000 0.000000 -3.750000 +v -1.250000 0.000000 -3.750000 +v -1.750000 0.000000 -4.250000 +v -1.250000 0.000000 -4.250000 +v -1.750000 0.125000 -4.250000 +v -1.750000 0.125000 -3.750000 +v -1.250000 0.125000 -3.750000 +v -1.250000 0.125000 -4.250000 +v -1.687500 0.125000 -4.187500 +v -1.687500 0.125000 -3.812500 +v -1.312500 0.125000 -3.812500 +v -1.312500 0.125000 -4.187500 +v -1.687500 0.750000 -4.187500 +v -1.687500 0.750000 -3.812500 +v -1.312500 0.750000 -3.812500 +v -1.312500 0.750000 -4.187500 +v 1.250000 0.000000 -5.750000 +v 1.750000 0.000000 -5.750000 +v 1.250000 0.000000 -6.250000 +v 1.750000 0.000000 -6.250000 +v 1.250000 0.125000 -6.250000 +v 1.250000 0.125000 -5.750000 +v 1.750000 0.125000 -5.750000 +v 1.750000 0.125000 -6.250000 +v 1.312500 0.125000 -6.187500 +v 1.312500 0.125000 -5.812500 +v 1.687500 0.125000 -5.812500 +v 1.687500 0.125000 -6.187500 +v 1.312500 0.750000 -6.187500 +v 1.312500 0.750000 -5.812500 +v 1.687500 0.750000 -5.812500 +v 1.687500 0.750000 -6.187500 +v -1.750000 0.000000 -5.750000 +v -1.250000 0.000000 -5.750000 +v -1.750000 0.000000 -6.250000 +v -1.250000 0.000000 -6.250000 +v -1.750000 0.125000 -6.250000 +v -1.750000 0.125000 -5.750000 +v -1.250000 0.125000 -5.750000 +v -1.250000 0.125000 -6.250000 +v -1.687500 0.125000 -6.187500 +v -1.687500 0.125000 -5.812500 +v -1.312500 0.125000 -5.812500 +v -1.312500 0.125000 -6.187500 +v -1.687500 0.750000 -6.187500 +v -1.687500 0.750000 -5.812500 +v -1.312500 0.750000 -5.812500 +v -1.312500 0.750000 -6.187500 +v 1.250000 0.000000 -7.750000 +v 1.750000 0.000000 -7.750000 +v 1.250000 0.000000 -8.250000 +v 1.750000 0.000000 -8.250000 +v 1.250000 0.125000 -8.250000 +v 1.250000 0.125000 -7.750000 +v 1.750000 0.125000 -7.750000 +v 1.750000 0.125000 -8.250000 +v 1.312500 0.125000 -8.187500 +v 1.312500 0.125000 -7.812500 +v 1.687500 0.125000 -7.812500 +v 1.687500 0.125000 -8.187500 +v 1.312500 0.750000 -8.187500 +v 1.312500 0.750000 -7.812500 +v 1.687500 0.750000 -7.812500 +v 1.687500 0.750000 -8.187500 +v -1.750000 0.000000 -7.750000 +v -1.250000 0.000000 -7.750000 +v -1.750000 0.000000 -8.250000 +v -1.250000 0.000000 -8.250000 +v -1.750000 0.125000 -8.250000 +v -1.750000 0.125000 -7.750000 +v -1.250000 0.125000 -7.750000 +v -1.250000 0.125000 -8.250000 +v -1.687500 0.125000 -8.187500 +v -1.687500 0.125000 -7.812500 +v -1.312500 0.125000 -7.812500 +v -1.312500 0.125000 -8.187500 +v -1.687500 0.750000 -8.187500 +v -1.687500 0.750000 -7.812500 +v -1.312500 0.750000 -7.812500 +v -1.312500 0.750000 -8.187500 +v 5.370945 3.437636 0.031646 +v 5.482748 3.437636 -0.024255 +v 5.479053 3.562364 -0.031646 +v 5.367250 3.562364 0.024256 +v 3.989082 5.816198 -2.732081 +v 4.100885 5.816198 -2.787983 +v 4.148417 5.881990 -2.692919 +v 4.036614 5.881990 -2.637018 +v 5.093926 3.397937 -0.522393 +v 5.205729 3.397937 -0.578294 +v 5.213573 3.521701 -0.562607 +v 5.101769 3.521701 -0.506706 +v 4.813114 3.624890 -1.084016 +v 4.924919 3.624890 -1.139917 +v 4.951885 3.734385 -1.085984 +v 4.840080 3.734385 -1.030083 +v 4.535995 4.104363 -1.638257 +v 4.647799 4.104363 -1.694158 +v 4.686504 4.194551 -1.616744 +v 4.574701 4.194551 -1.560842 +v 4.261469 4.832593 -2.187310 +v 4.373272 4.832593 -2.243212 +v 4.418531 4.905957 -2.152690 +v 4.306728 4.905957 -2.096789 +v 5.392796 3.466860 0.075347 +v 5.504599 3.466860 0.019445 +v 5.457203 3.533140 -0.075347 +v 5.345400 3.533140 -0.019445 +v 4.011459 1.088484 -2.687328 +v 4.123262 1.088484 -2.743229 +v 4.126041 1.213329 -2.737673 +v 4.014238 1.213329 -2.681771 +v 5.120440 2.493382 -0.469364 +v 5.232244 2.493382 -0.525266 +v 5.187058 2.566979 -0.615636 +v 5.075255 2.566979 -0.559734 +v 4.845951 1.765268 -1.018342 +v 4.957754 1.765268 -1.074244 +v 4.919048 1.855455 -1.151658 +v 4.807245 1.855455 -1.095756 +v 4.568831 1.285796 -1.572583 +v 4.680634 1.285796 -1.628485 +v 4.653668 1.395291 -1.682417 +v 4.541865 1.395291 -1.626516 +v 4.288248 1.058917 -2.133752 +v 4.400051 1.058917 -2.189653 +v 4.391752 1.182532 -2.206249 +v 4.279949 1.182532 -2.150347 +v 5.384722 3.444246 0.055514 +v 5.493280 3.444246 -0.006453 +v 5.465277 3.555754 -0.055514 +v 5.356718 3.555754 0.006453 +v 1.931818 3.444246 -5.993546 +v 2.040377 3.444246 -6.055514 +v 2.068381 3.555754 -6.006454 +v 1.959822 3.555754 -5.944486 +v 2.424219 2.941473 -5.130919 +v 2.532779 2.941473 -5.192886 +v 2.554522 3.058527 -5.154795 +v 2.445963 3.058527 -5.092828 +v 3.409801 2.437981 -3.404303 +v 3.518359 2.437981 -3.466271 +v 3.526027 2.562019 -3.452839 +v 3.417467 2.562019 -3.390872 +v 3.906738 2.437981 -2.533729 +v 4.015297 2.437981 -2.595696 +v 4.007631 2.562019 -2.609128 +v 3.899072 2.562019 -2.547160 +v 4.892321 2.941473 -0.807114 +v 5.000879 2.941473 -0.869081 +v 4.979136 3.058527 -0.907172 +v 4.870577 3.058527 -0.845204 +v -5.875000 3.312500 0.324761 +v -5.875000 3.175241 0.187501 +v -5.875000 3.125000 0.000002 +v -5.875000 3.175241 -0.187498 +v -5.875000 3.312500 -0.324758 +v -5.875000 3.500000 -0.374998 +v -5.875000 3.687500 -0.324758 +v -5.875000 3.824759 -0.187498 +v -5.875000 3.875000 0.000002 +v -5.875000 3.824759 0.187502 +v -5.875000 3.500000 0.375002 +v -5.875000 3.687500 0.324761 +v -5.000000 3.312500 0.324761 +v -5.000000 3.175241 0.187501 +v -5.000000 3.125000 0.000001 +v -5.000000 3.175241 -0.187499 +v -5.000000 3.312500 -0.324758 +v -5.000000 3.500000 -0.374999 +v -5.000000 3.687500 -0.324758 +v -5.000000 3.824759 -0.187499 +v -5.000000 3.875000 0.000001 +v -5.000000 3.824759 0.187501 +v -5.000000 3.687500 0.324761 +v -5.000000 3.500000 0.375001 +v -5.000000 3.250000 0.433014 +v -5.000000 3.066987 0.250001 +v -5.000000 3.000000 0.000001 +v -5.000000 3.066987 -0.249999 +v -5.000000 3.250000 -0.433011 +v -5.000000 3.500000 -0.499998 +v -5.000000 3.750000 -0.433011 +v -5.000000 3.933013 -0.249999 +v -5.000000 4.000000 0.000002 +v -5.000000 3.933013 0.250002 +v -5.000000 3.750000 0.433014 +v -5.000000 3.500000 0.500001 +v -4.750000 3.125000 0.649520 +v -4.750000 2.850481 0.375001 +v -4.750000 2.750000 0.000001 +v -4.750000 2.850481 -0.374999 +v -4.750000 3.125000 -0.649517 +v -4.750000 3.500000 -0.749999 +v -4.750000 3.875000 -0.649517 +v -4.750000 4.149519 -0.374999 +v -4.750000 4.250000 0.000001 +v -4.750000 4.149519 0.375001 +v -4.750000 3.875000 0.649521 +v -4.750000 3.500000 0.750001 +v -3.000000 3.250000 0.433014 +v -3.000000 3.066987 0.250001 +v -3.000000 3.000000 0.000001 +v -3.000000 3.066987 -0.249999 +v -3.000000 3.250000 -0.433012 +v -3.000000 3.500000 -0.499999 +v -3.000000 3.750000 -0.433012 +v -3.000000 3.933013 -0.249999 +v -3.000000 4.000000 0.000001 +v -3.000000 3.933013 0.250001 +v -3.000000 3.750000 0.433014 +v -3.000000 3.500000 0.500001 +v -3.250000 3.125000 0.649520 +v -3.250000 2.850481 0.375001 +v -3.250000 2.750000 0.000001 +v -3.250000 2.850481 -0.374999 +v -3.250000 3.125000 -0.649518 +v -3.250000 3.500000 -0.749999 +v -3.250000 3.875000 -0.649518 +v -3.250000 4.149519 -0.374999 +v -3.250000 4.250000 0.000001 +v -3.250000 4.149519 0.375001 +v -3.250000 3.875000 0.649520 +v -3.250000 3.500000 0.750001 +v -4.870577 3.058527 -0.845204 +v -4.979136 3.058527 -0.907171 +v -5.000879 2.941473 -0.869080 +v -4.892321 2.941473 -0.807113 +v -3.899072 2.562019 -2.547160 +v -4.007631 2.562019 -2.609127 +v -4.015297 2.437981 -2.595696 +v -3.906738 2.437981 -2.533728 +v -3.417467 2.562019 -3.390871 +v -3.526027 2.562019 -3.452839 +v -3.518359 2.437981 -3.466270 +v -3.409801 2.437981 -3.404303 +v -2.445963 3.058527 -5.092828 +v -2.554522 3.058527 -5.154795 +v -2.532779 2.941473 -5.192886 +v -2.424220 2.941473 -5.130919 +v -1.959822 3.555754 -5.944486 +v -2.068382 3.555754 -6.006454 +v -2.040377 3.444246 -6.055514 +v -1.931818 3.444246 -5.993546 +v -5.356718 3.555754 0.006454 +v -5.465277 3.555754 -0.055513 +v -5.493280 3.444246 -0.006452 +v -5.384722 3.444246 0.055515 +v -4.279949 1.182532 -2.150347 +v -4.391752 1.182532 -2.206249 +v -4.400051 1.058917 -2.189653 +v -4.288248 1.058917 -2.133751 +v -4.541865 1.395291 -1.626515 +v -4.653668 1.395291 -1.682417 +v -4.680634 1.285796 -1.628484 +v -4.568831 1.285796 -1.572583 +v -4.807245 1.855455 -1.095756 +v -4.919048 1.855455 -1.151657 +v -4.957754 1.765268 -1.074243 +v -4.845951 1.765268 -1.018341 +v -5.075255 2.566979 -0.559734 +v -5.187058 2.566979 -0.615635 +v -5.232244 2.493382 -0.525265 +v -5.120440 2.493382 -0.469363 +v -4.014238 1.213329 -2.681771 +v -4.126041 1.213329 -2.737672 +v -4.123262 1.088484 -2.743229 +v -4.011459 1.088484 -2.687327 +v -5.345400 3.533140 -0.019444 +v -5.457203 3.533140 -0.075346 +v -5.504599 3.466860 0.019446 +v -5.392796 3.466860 0.075347 +v -4.306728 4.905957 -2.096788 +v -4.418531 4.905957 -2.152690 +v -4.373272 4.832593 -2.243212 +v -4.261469 4.832593 -2.187310 +v -4.574701 4.194551 -1.560841 +v -4.686504 4.194551 -1.616743 +v -4.647799 4.104363 -1.694157 +v -4.535995 4.104363 -1.638256 +v -4.840080 3.734385 -1.030082 +v -4.951885 3.734385 -1.085984 +v -4.924919 3.624890 -1.139916 +v -4.813114 3.624890 -1.084015 +v -5.101769 3.521701 -0.506705 +v -5.213573 3.521701 -0.562607 +v -5.205729 3.397937 -0.578294 +v -5.093926 3.397937 -0.522392 +v -4.036614 5.881990 -2.637017 +v -4.148417 5.881990 -2.692919 +v -4.100885 5.816198 -2.787982 +v -3.989082 5.816198 -2.732081 +v -5.367250 3.562364 0.024256 +v -5.479053 3.562364 -0.031645 +v -5.482748 3.437636 -0.024255 +v -5.370945 3.437636 0.031647 +v 2.112740 2.280209 -2.274519 +v 2.343750 2.579848 -2.187500 +v 2.599880 2.748959 -1.949760 +v 2.812500 2.742228 -1.625000 +v 2.924639 2.561459 -1.300241 +v 2.906250 2.255089 -1.062500 +v 2.762259 1.905209 -0.975482 +v 2.531250 1.605570 -1.062500 +v 2.275120 1.436459 -1.300241 +v 2.062500 1.443190 -1.625000 +v 1.950361 1.623959 -1.949760 +v 1.968750 1.930329 -2.187500 +v 2.033493 2.325962 -1.933013 +v 2.187500 2.525722 -1.875000 +v 2.358253 2.638462 -1.716507 +v 2.500000 2.633975 -1.500000 +v 2.574759 2.513462 -1.283494 +v 2.562500 2.309215 -1.125000 +v 2.466506 2.075962 -1.066988 +v 2.312500 1.876203 -1.125000 +v 2.141746 1.763462 -1.283494 +v 2.000000 1.767949 -1.500000 +v 1.925240 1.888462 -1.716507 +v 1.937500 2.092709 -1.875000 +v 3.237740 1.630690 -3.024519 +v 3.468750 1.930329 -2.937501 +v 3.724879 2.099440 -2.699760 +v 3.937500 2.092709 -2.375000 +v 4.049639 1.911940 -2.050241 +v 4.031250 1.605570 -1.812501 +v 3.887259 1.255690 -1.725482 +v 3.656250 0.956051 -1.812501 +v 3.400120 0.786940 -2.050241 +v 3.187500 0.793671 -2.375000 +v 3.075361 0.974440 -2.699760 +v 3.093750 1.280810 -2.937500 +v 3.533493 1.459937 -2.933013 +v 3.687499 1.659697 -2.875001 +v 3.858253 1.772437 -2.716507 +v 3.999999 1.767950 -2.500001 +v 4.074759 1.647437 -2.283494 +v 4.062500 1.443190 -2.125001 +v 3.966506 1.209937 -2.066988 +v 3.812500 1.010177 -2.125001 +v 3.641746 0.897437 -2.283494 +v 3.499999 0.901924 -2.500000 +v 3.425240 1.022437 -2.716507 +v 3.437499 1.226684 -2.875000 +v 3.587620 1.428687 -2.824760 +v 3.703124 1.578506 -2.781251 +v 3.831189 1.663062 -2.662380 +v 3.937499 1.659696 -2.500000 +v 3.993569 1.569312 -2.337621 +v 3.984374 1.416127 -2.218751 +v 3.912379 1.241187 -2.175241 +v 3.796874 1.091367 -2.218751 +v 3.668809 1.006812 -2.337621 +v 3.562499 1.010177 -2.500000 +v 3.506430 1.100562 -2.662380 +v 3.515624 1.253747 -2.781250 +v 4.359375 1.199620 -3.218751 +v 4.243870 1.049801 -3.262260 +v 4.487439 1.284176 -3.099881 +v 4.593750 1.280810 -2.937501 +v 4.649819 1.190426 -2.775121 +v 4.640625 1.037241 -2.656251 +v 4.568629 0.862301 -2.612741 +v 4.453125 0.712481 -2.656251 +v 4.325059 0.627926 -2.775121 +v 4.218750 0.631291 -2.937500 +v 4.162680 0.721676 -3.099880 +v 4.171875 0.874861 -3.218751 +v 0.908493 2.975481 -1.183013 +v 1.062500 3.175241 -1.125000 +v 1.233253 3.287981 -0.966507 +v 1.375000 3.283494 -0.750000 +v 1.449759 3.162981 -0.533494 +v 1.437500 2.958734 -0.375000 +v 1.341506 2.725481 -0.316988 +v 1.187500 2.525722 -0.375000 +v 1.016747 2.412981 -0.533494 +v 0.875000 2.417468 -0.750000 +v 0.800240 2.537981 -0.966506 +v 0.812500 2.742228 -1.125000 +v 1.016747 2.912981 -0.966506 +v 1.093750 3.012861 -0.937500 +v 1.179126 3.069231 -0.858253 +v 1.250000 3.066988 -0.750000 +v 1.287380 3.006731 -0.641747 +v 1.281250 2.904608 -0.562500 +v 1.233253 2.787981 -0.533494 +v 1.156250 2.688101 -0.562500 +v 1.070873 2.631731 -0.641747 +v 1.000000 2.633975 -0.750000 +v 0.962620 2.694231 -0.858253 +v 0.968750 2.796355 -0.937500 +v 0.454247 3.237741 -0.591506 +v 0.531250 3.337620 -0.562500 +v 0.616627 3.393991 -0.483253 +v 0.687500 3.391747 -0.375000 +v 0.724880 3.331491 -0.266747 +v 0.718750 3.229367 -0.187500 +v 0.670753 3.112741 -0.158494 +v 0.593750 3.012861 -0.187500 +v 0.508373 2.956491 -0.266747 +v 0.437500 2.958734 -0.375000 +v 0.400120 3.018991 -0.483253 +v 0.406250 3.121114 -0.562500 +v 0.546875 3.256430 -0.468750 +v 0.508373 3.206491 -0.483253 +v 0.589563 3.284616 -0.429127 +v 0.625000 3.283494 -0.375000 +v 0.643690 3.253366 -0.320874 +v 0.640625 3.202304 -0.281250 +v 0.616626 3.143991 -0.266747 +v 0.578125 3.094051 -0.281250 +v 0.535437 3.065866 -0.320874 +v 0.500000 3.066987 -0.375000 +v 0.481310 3.097116 -0.429127 +v 0.484375 3.148177 -0.468750 +v 0.359375 3.364684 -0.343750 +v 0.320873 3.314744 -0.358253 +v 0.402063 3.392869 -0.304127 +v 0.437500 3.391747 -0.250000 +v 0.456190 3.361619 -0.195874 +v 0.453125 3.310557 -0.156250 +v 0.429126 3.252244 -0.141747 +v 0.390625 3.202304 -0.156250 +v 0.347937 3.174119 -0.195874 +v 0.312500 3.175241 -0.250000 +v 0.293810 3.205369 -0.304127 +v 0.296875 3.256430 -0.343750 +v 2.762260 1.905209 0.975481 +v 2.906250 2.255088 1.062500 +v 2.924639 2.561459 1.300241 +v 2.812500 2.742228 1.625000 +v 2.599880 2.748959 1.949759 +v 2.343750 2.579848 2.187500 +v 2.112741 2.280209 2.274518 +v 1.968750 1.930329 2.187500 +v 1.950361 1.623959 1.949759 +v 2.062500 1.443190 1.625000 +v 2.275120 1.436459 1.300241 +v 2.531250 1.605569 1.062500 +v 2.466507 2.075962 1.066987 +v 2.562500 2.309215 1.125000 +v 2.574760 2.513462 1.283493 +v 2.500000 2.633975 1.500000 +v 2.358253 2.638462 1.716506 +v 2.187500 2.525721 1.875000 +v 2.033494 2.325962 1.933012 +v 1.937500 2.092709 1.875000 +v 1.925241 1.888462 1.716506 +v 2.000000 1.767949 1.500000 +v 2.141747 1.763462 1.283493 +v 2.312500 1.876202 1.125000 +v 3.887259 1.255690 1.725481 +v 4.031250 1.605569 1.812500 +v 4.049639 1.911940 2.050240 +v 3.937500 2.092709 2.375000 +v 3.724880 2.099440 2.699759 +v 3.468750 1.930329 2.937500 +v 3.237741 1.630690 3.024519 +v 3.093750 1.280810 2.937500 +v 3.075361 0.974440 2.699759 +v 3.187500 0.793671 2.375000 +v 3.400120 0.786940 2.050241 +v 3.656250 0.956050 1.812500 +v 3.966506 1.209936 2.066987 +v 4.062500 1.443189 2.124999 +v 4.074759 1.647437 2.283493 +v 4.000000 1.767949 2.499999 +v 3.858253 1.772437 2.716506 +v 3.687500 1.659696 2.875000 +v 3.533494 1.459936 2.933012 +v 3.437500 1.226683 2.875000 +v 3.425241 1.022436 2.716506 +v 3.500000 0.901924 2.500000 +v 3.641747 0.897436 2.283493 +v 3.812500 1.010177 2.125000 +v 3.912380 1.241187 2.175240 +v 3.984375 1.416126 2.218749 +v 3.993569 1.569312 2.337620 +v 3.937500 1.659696 2.500000 +v 3.831190 1.663062 2.662379 +v 3.703125 1.578506 2.781249 +v 3.587620 1.428687 2.824759 +v 3.515625 1.253747 2.781249 +v 3.506430 1.100562 2.662379 +v 3.562500 1.010177 2.500000 +v 3.668810 1.006812 2.337620 +v 3.796875 1.091367 2.218750 +v 4.640625 1.037240 2.656250 +v 4.568630 0.862300 2.612740 +v 4.649820 1.190425 2.775120 +v 4.593750 1.280810 2.937500 +v 4.487440 1.284175 3.099879 +v 4.359375 1.199620 3.218750 +v 4.243871 1.049800 3.262259 +v 4.171875 0.874860 3.218750 +v 4.162680 0.721675 3.099879 +v 4.218750 0.631291 2.937500 +v 4.325060 0.627925 2.775120 +v 4.453125 0.712481 2.656250 +v 1.341506 2.725481 0.316987 +v 1.437500 2.958734 0.375000 +v 1.449760 3.162981 0.533494 +v 1.375000 3.283494 0.750000 +v 1.233253 3.287981 0.966506 +v 1.062500 3.175241 1.125000 +v 0.908494 2.975481 1.183012 +v 0.812500 2.742228 1.125000 +v 0.800240 2.537981 0.966506 +v 0.875000 2.417468 0.750000 +v 1.016747 2.412981 0.533494 +v 1.187500 2.525721 0.375000 +v 1.233253 2.787981 0.533494 +v 1.281250 2.904608 0.562500 +v 1.287380 3.006731 0.641747 +v 1.250000 3.066987 0.750000 +v 1.179127 3.069231 0.858253 +v 1.093750 3.012861 0.937500 +v 1.016747 2.912981 0.966506 +v 0.968750 2.796354 0.937500 +v 0.962620 2.694231 0.858253 +v 1.000000 2.633975 0.750000 +v 1.070873 2.631731 0.641747 +v 1.156250 2.688101 0.562500 +v 0.670753 3.112741 0.158494 +v 0.718750 3.229367 0.187500 +v 0.724880 3.331491 0.266747 +v 0.687500 3.391747 0.375000 +v 0.616627 3.393991 0.483253 +v 0.531250 3.337620 0.562500 +v 0.454247 3.237741 0.591506 +v 0.406250 3.121114 0.562500 +v 0.400120 3.018990 0.483253 +v 0.437500 2.958734 0.375000 +v 0.508373 2.956490 0.266747 +v 0.593750 3.012861 0.187500 +v 0.640625 3.202304 0.281250 +v 0.616627 3.143991 0.266747 +v 0.643690 3.253366 0.320873 +v 0.625000 3.283494 0.375000 +v 0.589563 3.284616 0.429126 +v 0.546875 3.256430 0.468750 +v 0.508373 3.206491 0.483253 +v 0.484375 3.148177 0.468750 +v 0.481310 3.097115 0.429126 +v 0.500000 3.066987 0.375000 +v 0.535437 3.065865 0.320873 +v 0.578125 3.094050 0.281250 +v 0.453125 3.310557 0.156250 +v 0.429127 3.252244 0.141747 +v 0.456190 3.361619 0.195873 +v 0.437500 3.391747 0.250000 +v 0.402063 3.392869 0.304127 +v 0.359375 3.364683 0.343750 +v 0.320874 3.314744 0.358253 +v 0.296875 3.256430 0.343750 +v 0.293810 3.205369 0.304127 +v 0.312500 3.175241 0.250000 +v 0.347937 3.174119 0.195873 +v 0.390625 3.202304 0.156250 +v 2.112740 4.719791 -2.274519 +v 1.968750 5.069671 -2.187500 +v 1.950360 5.376041 -1.949760 +v 2.062500 5.556810 -1.625000 +v 2.275120 5.563541 -1.300241 +v 2.531250 5.394431 -1.062500 +v 2.762259 5.094791 -0.975482 +v 2.906250 4.744912 -1.062500 +v 2.924639 4.438541 -1.300241 +v 2.812500 4.257772 -1.625000 +v 2.599880 4.251041 -1.949760 +v 2.343750 4.420152 -2.187500 +v 2.033493 4.674038 -1.933013 +v 1.937500 4.907291 -1.875000 +v 1.925240 5.111538 -1.716507 +v 2.000000 5.232051 -1.500000 +v 2.141746 5.236538 -1.283494 +v 2.312500 5.123797 -1.125000 +v 2.466506 4.924038 -1.066988 +v 2.562500 4.690784 -1.125000 +v 2.574759 4.486538 -1.283494 +v 2.500000 4.366025 -1.500000 +v 2.358253 4.361538 -1.716507 +v 2.187500 4.474278 -1.875000 +v 3.237740 5.369310 -3.024519 +v 3.093750 5.719190 -2.937501 +v 3.075360 6.025560 -2.699760 +v 3.187500 6.206329 -2.375000 +v 3.400120 6.213060 -2.050241 +v 3.656250 6.043950 -1.812501 +v 3.887259 5.744310 -1.725482 +v 4.031250 5.394431 -1.812501 +v 4.049639 5.088060 -2.050241 +v 3.937500 4.907291 -2.375000 +v 3.724880 4.900560 -2.699760 +v 3.468750 5.069671 -2.937500 +v 3.533493 5.540064 -2.933013 +v 3.437499 5.773316 -2.875001 +v 3.425240 5.977563 -2.716507 +v 3.499999 6.098076 -2.500001 +v 3.641746 6.102564 -2.283494 +v 3.812500 5.989823 -2.125001 +v 3.966506 5.790064 -2.066988 +v 4.062500 5.556810 -2.125001 +v 4.074759 5.352563 -2.283494 +v 3.999999 5.232050 -2.500000 +v 3.858253 5.227563 -2.716507 +v 3.687499 5.340303 -2.875000 +v 3.587620 5.571314 -2.824760 +v 3.515624 5.746253 -2.781251 +v 3.506430 5.899439 -2.662380 +v 3.562499 5.989823 -2.500000 +v 3.668809 5.993189 -2.337621 +v 3.796874 5.908633 -2.218751 +v 3.912379 5.758814 -2.175241 +v 3.984374 5.583873 -2.218751 +v 3.993569 5.430689 -2.337621 +v 3.937499 5.340304 -2.500000 +v 3.831189 5.336939 -2.662380 +v 3.703124 5.421494 -2.781250 +v 4.171875 6.125140 -3.218751 +v 4.243870 5.950200 -3.262260 +v 4.162680 6.278324 -3.099881 +v 4.218750 6.368710 -2.937501 +v 4.325059 6.372075 -2.775121 +v 4.453125 6.287519 -2.656251 +v 4.568629 6.137700 -2.612741 +v 4.640624 5.962760 -2.656251 +v 4.649819 5.809574 -2.775121 +v 4.593749 5.719191 -2.937500 +v 4.487439 5.715824 -3.099880 +v 4.359375 5.800380 -3.218751 +v 0.908493 4.024519 -1.183013 +v 0.812500 4.257772 -1.125000 +v 0.800240 4.462019 -0.966507 +v 0.875000 4.582532 -0.750000 +v 1.016746 4.587019 -0.533494 +v 1.187500 4.474278 -0.375000 +v 1.341506 4.274519 -0.316988 +v 1.437500 4.041266 -0.375000 +v 1.449759 3.837019 -0.533494 +v 1.375000 3.716506 -0.750000 +v 1.233253 3.712019 -0.966506 +v 1.062500 3.824759 -1.125000 +v 1.016747 4.087019 -0.966506 +v 0.968750 4.203646 -0.937500 +v 0.962620 4.305769 -0.858253 +v 1.000000 4.366025 -0.750000 +v 1.070873 4.368269 -0.641747 +v 1.156250 4.311899 -0.562500 +v 1.233253 4.212019 -0.533494 +v 1.281250 4.095392 -0.562500 +v 1.287380 3.993269 -0.641747 +v 1.250000 3.933013 -0.750000 +v 1.179126 3.930769 -0.858253 +v 1.093750 3.987139 -0.937500 +v 0.454247 3.762259 -0.591506 +v 0.406250 3.878886 -0.562500 +v 0.400120 3.981009 -0.483253 +v 0.437500 4.041266 -0.375000 +v 0.508373 4.043509 -0.266747 +v 0.593750 3.987139 -0.187500 +v 0.670753 3.887259 -0.158494 +v 0.718750 3.770633 -0.187500 +v 0.724880 3.668509 -0.266747 +v 0.687500 3.608253 -0.375000 +v 0.616627 3.606009 -0.483253 +v 0.531250 3.662380 -0.562500 +v 0.484375 3.851823 -0.468750 +v 0.508373 3.793509 -0.483253 +v 0.481310 3.902884 -0.429127 +v 0.500000 3.933013 -0.375000 +v 0.535437 3.934134 -0.320874 +v 0.578125 3.905949 -0.281250 +v 0.616626 3.856009 -0.266747 +v 0.640625 3.797696 -0.281250 +v 0.643690 3.746634 -0.320874 +v 0.625000 3.716506 -0.375000 +v 0.589563 3.715384 -0.429127 +v 0.546875 3.743570 -0.468750 +v 0.296875 3.743570 -0.343750 +v 0.320873 3.685256 -0.358253 +v 0.293810 3.794631 -0.304127 +v 0.312500 3.824759 -0.250000 +v 0.347937 3.825881 -0.195874 +v 0.390625 3.797696 -0.156250 +v 0.429126 3.747756 -0.141747 +v 0.453125 3.689443 -0.156250 +v 0.456190 3.638381 -0.195874 +v 0.437500 3.608253 -0.250000 +v 0.402063 3.607131 -0.304127 +v 0.359375 3.635316 -0.343750 +v 2.762260 5.094791 0.975481 +v 2.531250 5.394431 1.062500 +v 2.275120 5.563541 1.300241 +v 2.062500 5.556810 1.625000 +v 1.950361 5.376041 1.949759 +v 1.968750 5.069671 2.187500 +v 2.112741 4.719791 2.274518 +v 2.343750 4.420152 2.187500 +v 2.599880 4.251041 1.949759 +v 2.812500 4.257772 1.625000 +v 2.924639 4.438541 1.300241 +v 2.906250 4.744912 1.062500 +v 2.466507 4.924038 1.066987 +v 2.312500 5.123798 1.125000 +v 2.141747 5.236538 1.283493 +v 2.000000 5.232051 1.500000 +v 1.925240 5.111539 1.716506 +v 1.937500 4.907291 1.875000 +v 2.033494 4.674038 1.933012 +v 2.187500 4.474278 1.875000 +v 2.358253 4.361538 1.716506 +v 2.500000 4.366025 1.500000 +v 2.574760 4.486538 1.283493 +v 2.562500 4.690785 1.125000 +v 3.887259 5.744310 1.725481 +v 3.656250 6.043950 1.812500 +v 3.400120 6.213060 2.050240 +v 3.187500 6.206329 2.375000 +v 3.075361 6.025560 2.699759 +v 3.093750 5.719191 2.937500 +v 3.237741 5.369310 3.024519 +v 3.468750 5.069672 2.937500 +v 3.724880 4.900561 2.699759 +v 3.937500 4.907291 2.375000 +v 4.049639 5.088060 2.050241 +v 4.031250 5.394431 1.812500 +v 3.966506 5.790064 2.066987 +v 3.812500 5.989823 2.124999 +v 3.641746 6.102564 2.283493 +v 3.500000 6.098076 2.499999 +v 3.425241 5.977564 2.716506 +v 3.437500 5.773317 2.875000 +v 3.533494 5.540064 2.933012 +v 3.687500 5.340304 2.875000 +v 3.858253 5.227564 2.716506 +v 4.000000 5.232051 2.500000 +v 4.074759 5.352563 2.283493 +v 4.062500 5.556810 2.125000 +v 3.912380 5.758814 2.175240 +v 3.796875 5.908633 2.218749 +v 3.668810 5.993189 2.337620 +v 3.562500 5.989823 2.500000 +v 3.506430 5.899439 2.662379 +v 3.515625 5.746254 2.781249 +v 3.587620 5.571314 2.824759 +v 3.703125 5.421494 2.781249 +v 3.831190 5.336939 2.662379 +v 3.937500 5.340304 2.500000 +v 3.993569 5.430689 2.337620 +v 3.984375 5.583874 2.218750 +v 4.453125 6.287520 2.656250 +v 4.568630 6.137700 2.612740 +v 4.325060 6.372075 2.775120 +v 4.218750 6.368710 2.937500 +v 4.162681 6.278325 3.099879 +v 4.171875 6.125140 3.218750 +v 4.243871 5.950200 3.262259 +v 4.359375 5.800381 3.218750 +v 4.487440 5.715825 3.099879 +v 4.593750 5.719191 2.937500 +v 4.649819 5.809575 2.775120 +v 4.640625 5.962760 2.656250 +v 1.341506 4.274519 0.316987 +v 1.187500 4.474278 0.375000 +v 1.016747 4.587019 0.533494 +v 0.875000 4.582532 0.750000 +v 0.800240 4.462019 0.966506 +v 0.812500 4.257772 1.125000 +v 0.908494 4.024519 1.183012 +v 1.062500 3.824759 1.125000 +v 1.233253 3.712019 0.966506 +v 1.375000 3.716506 0.750000 +v 1.449760 3.837019 0.533494 +v 1.437500 4.041266 0.375000 +v 1.233253 4.212019 0.533494 +v 1.156250 4.311899 0.562500 +v 1.070873 4.368269 0.641747 +v 1.000000 4.366025 0.750000 +v 0.962620 4.305769 0.858253 +v 0.968750 4.203646 0.937500 +v 1.016747 4.087019 0.966506 +v 1.093750 3.987139 0.937500 +v 1.179127 3.930769 0.858253 +v 1.250000 3.933013 0.750000 +v 1.287380 3.993269 0.641747 +v 1.281250 4.095393 0.562500 +v 0.670753 3.887260 0.158494 +v 0.593750 3.987139 0.187500 +v 0.508373 4.043509 0.266747 +v 0.437500 4.041266 0.375000 +v 0.400120 3.981010 0.483253 +v 0.406250 3.878886 0.562500 +v 0.454247 3.762260 0.591506 +v 0.531250 3.662380 0.562500 +v 0.616627 3.606009 0.483253 +v 0.687500 3.608253 0.375000 +v 0.724880 3.668509 0.266747 +v 0.718750 3.770633 0.187500 +v 0.578125 3.905949 0.281250 +v 0.616627 3.856010 0.266747 +v 0.535437 3.934135 0.320873 +v 0.500000 3.933013 0.375000 +v 0.481310 3.902885 0.429126 +v 0.484375 3.851823 0.468750 +v 0.508373 3.793510 0.483253 +v 0.546875 3.743570 0.468750 +v 0.589563 3.715384 0.429126 +v 0.625000 3.716506 0.375000 +v 0.643690 3.746634 0.320873 +v 0.640625 3.797696 0.281250 +v 0.390625 3.797696 0.156250 +v 0.429127 3.747756 0.141747 +v 0.347937 3.825881 0.195873 +v 0.312500 3.824759 0.250000 +v 0.293810 3.794631 0.304127 +v 0.296875 3.743570 0.343750 +v 0.320874 3.685256 0.358253 +v 0.359375 3.635317 0.343750 +v 0.402063 3.607131 0.304127 +v 0.437500 3.608253 0.250000 +v 0.456190 3.638381 0.195873 +v 0.453125 3.689443 0.156250 +v -1.500000 3.500000 0.500001 +v -1.500000 3.750000 0.433013 +v -1.500000 3.933013 0.250001 +v -1.500000 4.000000 0.000001 +v -1.500000 3.933013 -0.249999 +v -1.500000 3.750000 -0.433012 +v -1.500000 3.500000 -0.499999 +v -1.500000 3.250000 -0.433012 +v -1.500000 3.066987 -0.249999 +v -1.500000 3.000000 0.000000 +v -1.500000 3.066987 0.250000 +v -1.500000 3.250000 0.433013 +v -1.500000 3.500000 0.250001 +v -1.500000 3.625000 0.216507 +v -1.500000 3.716506 0.125001 +v -1.500000 3.750000 0.000001 +v -1.500000 3.716506 -0.124999 +v -1.500000 3.625000 -0.216506 +v -1.500000 3.500000 -0.249999 +v -1.500000 3.375000 -0.216506 +v -1.500000 3.283494 -0.124999 +v -1.500000 3.250000 0.000001 +v -1.500000 3.283494 0.125000 +v -1.500000 3.375000 0.216507 +v -0.750000 3.500000 0.250000 +v -0.750000 3.625000 0.216507 +v -0.750000 3.716506 0.125000 +v -0.750000 3.750000 0.000000 +v -0.750000 3.716506 -0.124999 +v -0.750000 3.625000 -0.216506 +v -0.750000 3.500000 -0.249999 +v -0.750000 3.375000 -0.216506 +v -0.750000 3.283494 -0.125000 +v -0.750000 3.250000 0.000000 +v -0.750000 3.283494 0.125000 +v -0.750000 3.375000 0.216507 +v -0.750000 3.562500 0.108254 +v -0.750000 3.500000 0.125000 +v -0.750000 3.608253 0.062500 +v -0.750000 3.625000 0.000000 +v -0.750000 3.608253 -0.062500 +v -0.750000 3.562500 -0.108253 +v -0.750000 3.500000 -0.125000 +v -0.750000 3.437500 -0.108253 +v -0.750000 3.391747 -0.062500 +v -0.750000 3.375000 0.000000 +v -0.750000 3.391747 0.062500 +v -0.750000 3.437500 0.108254 +v -0.500000 3.562500 0.108254 +v -0.500000 3.500000 0.125000 +v -0.500000 3.608253 0.062500 +v -0.500000 3.625000 0.000000 +v -0.500000 3.608253 -0.062500 +v -0.500000 3.562500 -0.108253 +v -0.500000 3.500000 -0.125000 +v -0.500000 3.437500 -0.108253 +v -0.500000 3.391747 -0.062500 +v -0.500000 3.375000 0.000000 +v -0.500000 3.391747 0.062500 +v -0.500000 3.437500 0.108254 +v -0.500000 3.500000 -2.250000 +v -0.433013 3.750000 -2.250000 +v -0.250000 3.933013 -2.250000 +v -0.000000 4.000000 -2.250000 +v 0.250000 3.933013 -2.250000 +v 0.433013 3.750000 -2.250000 +v 0.500000 3.500000 -2.250000 +v 0.433013 3.250000 -2.250000 +v 0.250000 3.066987 -2.250000 +v -0.000000 3.000000 -2.250000 +v -0.250000 3.066987 -2.250000 +v -0.433012 3.250000 -2.250000 +v -0.500000 3.500000 -1.500000 +v -0.433012 3.750000 -1.500000 +v -0.250000 3.933013 -1.500000 +v -0.000000 4.000000 -1.500000 +v 0.250000 3.933013 -1.500000 +v 0.433013 3.750000 -1.500000 +v 0.500000 3.500000 -1.500000 +v 0.433013 3.250000 -1.500000 +v 0.250000 3.066987 -1.500000 +v -0.000000 3.000000 -1.500000 +v -0.250000 3.066987 -1.500000 +v -0.433012 3.250000 -1.500000 +v -0.250000 3.500000 -1.500000 +v -0.216506 3.625000 -1.500000 +v -0.125000 3.716506 -1.500000 +v -0.000000 3.750000 -1.500000 +v 0.125000 3.716506 -1.500000 +v 0.216507 3.625000 -1.500000 +v 0.250000 3.500000 -1.500000 +v 0.216507 3.375000 -1.500000 +v 0.125000 3.283494 -1.500000 +v -0.000000 3.250000 -1.500000 +v -0.125000 3.283494 -1.500000 +v -0.216506 3.375000 -1.500000 +v -0.250000 3.500000 -0.750000 +v -0.216506 3.625000 -0.750000 +v -0.125000 3.716506 -0.750000 +v -0.000000 3.750000 -0.750000 +v 0.125000 3.716506 -0.750000 +v 0.216507 3.625000 -0.750000 +v 0.250000 3.500000 -0.750000 +v 0.216507 3.375000 -0.750000 +v 0.125000 3.283494 -0.750000 +v -0.000000 3.250000 -0.750000 +v -0.125000 3.283494 -0.750000 +v -0.216506 3.375000 -0.750000 +v -0.108253 3.562500 -0.750000 +v -0.125000 3.500000 -0.750000 +v -0.062500 3.608253 -0.750000 +v -0.000000 3.625000 -0.750000 +v 0.062500 3.608253 -0.750000 +v 0.108253 3.562500 -0.750000 +v 0.125000 3.500000 -0.750000 +v 0.108253 3.437500 -0.750000 +v 0.062500 3.391747 -0.750000 +v -0.000000 3.375000 -0.750000 +v -0.062500 3.391747 -0.750000 +v -0.108253 3.437500 -0.750000 +v -0.108254 3.562500 -0.500000 +v -0.125000 3.500000 -0.500000 +v -0.062500 3.608253 -0.500000 +v -0.000000 3.625000 -0.500000 +v 0.062500 3.608253 -0.500000 +v 0.108253 3.562500 -0.500000 +v 0.125000 3.500000 -0.500000 +v 0.108253 3.437500 -0.500000 +v 0.062500 3.391747 -0.500000 +v -0.000000 3.375000 -0.500000 +v -0.062500 3.391747 -0.500000 +v -0.108253 3.437500 -0.500000 +v -5.370945 3.437636 -0.031645 +v -5.482748 3.437636 0.024256 +v -5.479053 3.562364 0.031647 +v -5.367250 3.562364 -0.024255 +v -3.989082 5.816198 2.732082 +v -4.100885 5.816198 2.787983 +v -4.148417 5.881990 2.692920 +v -4.036614 5.881990 2.637018 +v -5.093926 3.397937 0.522393 +v -5.205729 3.397937 0.578295 +v -5.213573 3.521701 0.562608 +v -5.101769 3.521701 0.506706 +v -4.813114 3.624890 1.084016 +v -4.924919 3.624890 1.139918 +v -4.951885 3.734385 1.085985 +v -4.840080 3.734385 1.030084 +v -4.535995 4.104363 1.638257 +v -4.647799 4.104363 1.694159 +v -4.686504 4.194551 1.616744 +v -4.574701 4.194551 1.560843 +v -4.261469 4.832593 2.187311 +v -4.373272 4.832593 2.243212 +v -4.418531 4.905957 2.152691 +v -4.306728 4.905957 2.096789 +v -5.392796 3.466860 -0.075346 +v -5.504599 3.466860 -0.019445 +v -5.457203 3.533140 0.075347 +v -5.345400 3.533140 0.019446 +v -4.011459 1.088484 2.687328 +v -4.123262 1.088484 2.743230 +v -4.126041 1.213329 2.737673 +v -4.014238 1.213329 2.681772 +v -5.120440 2.493382 0.469365 +v -5.232244 2.493382 0.525266 +v -5.187058 2.566979 0.615637 +v -5.075255 2.566979 0.559735 +v -4.845951 1.765268 1.018343 +v -4.957754 1.765268 1.074244 +v -4.919048 1.855455 1.151659 +v -4.807245 1.855455 1.095757 +v -4.568831 1.285796 1.572584 +v -4.680634 1.285796 1.628485 +v -4.653668 1.395291 1.682418 +v -4.541865 1.395291 1.626516 +v -4.288248 1.058917 2.133752 +v -4.400051 1.058917 2.189654 +v -4.391752 1.182532 2.206249 +v -4.279949 1.182532 2.150348 +v -5.384722 3.444246 -0.055513 +v -5.493280 3.444246 0.006454 +v -5.465277 3.555754 0.055514 +v -5.356718 3.555754 -0.006453 +v -1.931818 3.444246 5.993546 +v -2.040376 3.444246 6.055514 +v -2.068381 3.555754 6.006454 +v -1.959821 3.555754 5.944486 +v -2.424219 2.941473 5.130919 +v -2.532778 2.941473 5.192886 +v -2.554521 3.058527 5.154795 +v -2.445962 3.058527 5.092828 +v -3.409801 2.437981 3.404304 +v -3.518359 2.437981 3.466271 +v -3.526027 2.562019 3.452840 +v -3.417467 2.562019 3.390872 +v -3.906738 2.437981 2.533729 +v -4.015297 2.437981 2.595697 +v -4.007631 2.562019 2.609128 +v -3.899072 2.562019 2.547161 +v -4.892321 2.941473 0.807114 +v -5.000879 2.941473 0.869082 +v -4.979136 3.058527 0.907172 +v -4.870577 3.058527 0.845205 +v -2.112740 2.280209 2.274520 +v -2.343749 2.579848 2.187501 +v -2.599879 2.748959 1.949760 +v -2.812499 2.742228 1.625001 +v -2.924639 2.561459 1.300241 +v -2.906250 2.255089 1.062501 +v -2.762259 1.905209 0.975482 +v -2.531250 1.605570 1.062501 +v -2.275120 1.436459 1.300241 +v -2.062499 1.443190 1.625001 +v -1.950361 1.623959 1.949760 +v -1.968750 1.930329 2.187501 +v -2.033493 2.325962 1.933014 +v -2.187500 2.525722 1.875001 +v -2.358253 2.638462 1.716507 +v -2.499999 2.633975 1.500001 +v -2.574759 2.513462 1.283494 +v -2.562500 2.309215 1.125001 +v -2.466506 2.075962 1.066988 +v -2.312500 1.876203 1.125001 +v -2.141746 1.763462 1.283494 +v -2.000000 1.767949 1.500001 +v -1.925240 1.888462 1.716507 +v -1.937500 2.092709 1.875001 +v -3.237740 1.630690 3.024520 +v -3.468749 1.930329 2.937501 +v -3.724879 2.099440 2.699760 +v -3.937500 2.092709 2.375001 +v -4.049639 1.911940 2.050241 +v -4.031250 1.605570 1.812501 +v -3.887259 1.255690 1.725482 +v -3.656250 0.956051 1.812502 +v -3.400120 0.786940 2.050241 +v -3.187500 0.793671 2.375001 +v -3.075360 0.974440 2.699760 +v -3.093749 1.280810 2.937501 +v -3.533493 1.459937 2.933014 +v -3.687499 1.659697 2.875001 +v -3.858253 1.772437 2.716507 +v -3.999999 1.767950 2.500001 +v -4.074759 1.647437 2.283495 +v -4.062500 1.443190 2.125001 +v -3.966506 1.209937 2.066988 +v -3.812500 1.010177 2.125001 +v -3.641746 0.897437 2.283495 +v -3.499999 0.901924 2.500001 +v -3.425240 1.022437 2.716507 +v -3.437499 1.226684 2.875001 +v -3.587619 1.428687 2.824760 +v -3.703124 1.578506 2.781251 +v -3.831189 1.663062 2.662381 +v -3.937499 1.659696 2.500001 +v -3.993569 1.569312 2.337621 +v -3.984374 1.416127 2.218751 +v -3.912379 1.241187 2.175241 +v -3.796874 1.091367 2.218751 +v -3.668809 1.006812 2.337621 +v -3.562499 1.010177 2.500001 +v -3.506430 1.100562 2.662381 +v -3.515624 1.253747 2.781251 +v -4.359374 1.199620 3.218751 +v -4.243870 1.049801 3.262261 +v -4.487439 1.284176 3.099881 +v -4.593749 1.280810 2.937501 +v -4.649818 1.190426 2.775122 +v -4.640625 1.037241 2.656251 +v -4.568629 0.862301 2.612742 +v -4.453125 0.712481 2.656251 +v -4.325058 0.627926 2.775121 +v -4.218749 0.631291 2.937501 +v -4.162680 0.721676 3.099881 +v -4.171874 0.874861 3.218751 +v -0.908493 2.975481 1.183013 +v -1.062500 3.175241 1.125001 +v -1.233253 3.287981 0.966507 +v -1.375000 3.283494 0.750001 +v -1.449759 3.162981 0.533494 +v -1.437500 2.958734 0.375001 +v -1.341506 2.725481 0.316988 +v -1.187500 2.525722 0.375001 +v -1.016747 2.412981 0.533494 +v -0.875000 2.417468 0.750000 +v -0.800240 2.537981 0.966507 +v -0.812500 2.742228 1.125000 +v -1.016746 2.912981 0.966507 +v -1.093750 3.012861 0.937501 +v -1.179126 3.069231 0.858254 +v -1.250000 3.066988 0.750001 +v -1.287380 3.006731 0.641747 +v -1.281250 2.904608 0.562501 +v -1.233253 2.787981 0.533494 +v -1.156250 2.688101 0.562501 +v -1.070873 2.631731 0.641747 +v -1.000000 2.633975 0.750000 +v -0.962620 2.694231 0.858253 +v -0.968750 2.796355 0.937500 +v -0.454247 3.237741 0.591507 +v -0.531250 3.337620 0.562500 +v -0.616627 3.393991 0.483254 +v -0.687500 3.391747 0.375000 +v -0.724880 3.331491 0.266747 +v -0.718750 3.229367 0.187500 +v -0.670753 3.112741 0.158494 +v -0.593750 3.012861 0.187500 +v -0.508373 2.956491 0.266747 +v -0.437500 2.958734 0.375000 +v -0.400120 3.018991 0.483254 +v -0.406250 3.121114 0.562500 +v -0.546875 3.256430 0.468750 +v -0.508373 3.206491 0.483253 +v -0.589563 3.284616 0.429127 +v -0.625000 3.283494 0.375000 +v -0.643690 3.253366 0.320874 +v -0.640625 3.202304 0.281250 +v -0.616626 3.143991 0.266747 +v -0.578125 3.094051 0.281250 +v -0.535437 3.065866 0.320874 +v -0.500000 3.066987 0.375000 +v -0.481310 3.097116 0.429127 +v -0.484375 3.148177 0.468750 +v -0.359375 3.364684 0.343750 +v -0.320873 3.314744 0.358254 +v -0.402063 3.392869 0.304127 +v -0.437500 3.391747 0.250000 +v -0.456190 3.361619 0.195874 +v -0.453125 3.310557 0.156250 +v -0.429126 3.252244 0.141747 +v -0.390625 3.202304 0.156250 +v -0.347936 3.174119 0.195874 +v -0.312500 3.175241 0.250000 +v -0.293810 3.205369 0.304127 +v -0.296875 3.256430 0.343750 +v -2.762260 1.905209 -0.975480 +v -2.906250 2.255088 -1.062500 +v -2.924639 2.561459 -1.300240 +v -2.812501 2.742228 -1.625000 +v -2.599880 2.748959 -1.949759 +v -2.343751 2.579848 -2.187500 +v -2.112741 2.280209 -2.274518 +v -1.968750 1.930329 -2.187500 +v -1.950361 1.623959 -1.949759 +v -2.062500 1.443190 -1.625000 +v -2.275120 1.436459 -1.300240 +v -2.531250 1.605569 -1.062500 +v -2.466507 2.075962 -1.066987 +v -2.562500 2.309215 -1.124999 +v -2.574760 2.513462 -1.283493 +v -2.500000 2.633975 -1.499999 +v -2.358253 2.638462 -1.716506 +v -2.187501 2.525721 -1.874999 +v -2.033494 2.325962 -1.933012 +v -1.937500 2.092709 -1.874999 +v -1.925241 1.888462 -1.716506 +v -2.000000 1.767949 -1.499999 +v -2.141747 1.763462 -1.283493 +v -2.312500 1.876202 -1.124999 +v -3.887259 1.255690 -1.725480 +v -4.031250 1.605569 -1.812499 +v -4.049639 1.911940 -2.050240 +v -3.937500 2.092709 -2.374999 +v -3.724880 2.099440 -2.699759 +v -3.468750 1.930329 -2.937499 +v -3.237741 1.630690 -3.024518 +v -3.093750 1.280810 -2.937499 +v -3.075361 0.974440 -2.699759 +v -3.187500 0.793671 -2.374999 +v -3.400120 0.786940 -2.050240 +v -3.656250 0.956050 -1.812500 +v -3.966506 1.209936 -2.066986 +v -4.062500 1.443189 -2.124999 +v -4.074759 1.647437 -2.283493 +v -4.000000 1.767949 -2.499999 +v -3.858253 1.772437 -2.716505 +v -3.687500 1.659696 -2.874999 +v -3.533494 1.459936 -2.933012 +v -3.437500 1.226683 -2.874999 +v -3.425241 1.022436 -2.716505 +v -3.500000 0.901924 -2.499999 +v -3.641747 0.897436 -2.283493 +v -3.812500 1.010177 -2.124999 +v -3.912380 1.241187 -2.175240 +v -3.984375 1.416126 -2.218749 +v -3.993569 1.569312 -2.337619 +v -3.937500 1.659696 -2.499999 +v -3.831190 1.663062 -2.662379 +v -3.703126 1.578506 -2.781249 +v -3.587620 1.428687 -2.824759 +v -3.515626 1.253747 -2.781249 +v -3.506430 1.100562 -2.662379 +v -3.562500 1.010177 -2.499999 +v -3.668810 1.006812 -2.337619 +v -3.796875 1.091367 -2.218749 +v -4.640625 1.037240 -2.656249 +v -4.568630 0.862300 -2.612739 +v -4.649821 1.190425 -2.775119 +v -4.593751 1.280810 -2.937499 +v -4.487440 1.284175 -3.099879 +v -4.359376 1.199620 -3.218749 +v -4.243871 1.049800 -3.262259 +v -4.171876 0.874860 -3.218749 +v -4.162681 0.721675 -3.099879 +v -4.218750 0.631291 -2.937500 +v -4.325060 0.627925 -2.775119 +v -4.453125 0.712481 -2.656249 +v -1.341506 2.725481 -0.316987 +v -1.437500 2.958734 -0.374999 +v -1.449760 3.162981 -0.533493 +v -1.375000 3.283494 -0.749999 +v -1.233254 3.287981 -0.966506 +v -1.062500 3.175241 -1.125000 +v -0.908494 2.975481 -1.183012 +v -0.812500 2.742228 -1.125000 +v -0.800240 2.537981 -0.966506 +v -0.875000 2.417468 -0.750000 +v -1.016747 2.412981 -0.533493 +v -1.187500 2.525721 -0.375000 +v -1.233253 2.787981 -0.533493 +v -1.281250 2.904608 -0.562500 +v -1.287380 3.006731 -0.641746 +v -1.250000 3.066987 -0.749999 +v -1.179127 3.069231 -0.858253 +v -1.093750 3.012861 -0.937500 +v -1.016747 2.912981 -0.966506 +v -0.968750 2.796354 -0.937500 +v -0.962620 2.694231 -0.858253 +v -1.000000 2.633975 -0.750000 +v -1.070873 2.631731 -0.641746 +v -1.156250 2.688101 -0.562500 +v -0.670753 3.112741 -0.158493 +v -0.718750 3.229367 -0.187500 +v -0.724880 3.331491 -0.266746 +v -0.687500 3.391747 -0.375000 +v -0.616627 3.393991 -0.483253 +v -0.531250 3.337620 -0.562500 +v -0.454247 3.237741 -0.591506 +v -0.406250 3.121114 -0.562500 +v -0.400120 3.018990 -0.483253 +v -0.437500 2.958734 -0.375000 +v -0.508373 2.956490 -0.266747 +v -0.593750 3.012861 -0.187500 +v -0.640625 3.202304 -0.281250 +v -0.616627 3.143991 -0.266746 +v -0.643690 3.253366 -0.320873 +v -0.625000 3.283494 -0.375000 +v -0.589564 3.284616 -0.429126 +v -0.546875 3.256430 -0.468750 +v -0.508373 3.206491 -0.483253 +v -0.484375 3.148177 -0.468750 +v -0.481310 3.097115 -0.429126 +v -0.500000 3.066987 -0.375000 +v -0.535437 3.065865 -0.320873 +v -0.578125 3.094050 -0.281250 +v -0.453125 3.310557 -0.156250 +v -0.429127 3.252244 -0.141746 +v -0.456190 3.361619 -0.195873 +v -0.437500 3.391747 -0.250000 +v -0.402063 3.392869 -0.304126 +v -0.359375 3.364683 -0.343750 +v -0.320874 3.314744 -0.358253 +v -0.296875 3.256430 -0.343750 +v -0.293810 3.205369 -0.304126 +v -0.312500 3.175241 -0.250000 +v -0.347937 3.174119 -0.195873 +v -0.390625 3.202304 -0.156250 +v -2.112740 4.719791 2.274520 +v -1.968750 5.069671 2.187501 +v -1.950360 5.376041 1.949760 +v -2.062499 5.556810 1.625001 +v -2.275120 5.563541 1.300241 +v -2.531250 5.394431 1.062501 +v -2.762259 5.094791 0.975482 +v -2.906250 4.744912 1.062501 +v -2.924639 4.438541 1.300241 +v -2.812500 4.257772 1.625001 +v -2.599879 4.251041 1.949760 +v -2.343749 4.420152 2.187501 +v -2.033493 4.674038 1.933014 +v -1.937500 4.907291 1.875001 +v -1.925240 5.111538 1.716507 +v -1.999999 5.232051 1.500001 +v -2.141746 5.236538 1.283494 +v -2.312500 5.123797 1.125001 +v -2.466506 4.924038 1.066988 +v -2.562500 4.690784 1.125001 +v -2.574759 4.486538 1.283494 +v -2.499999 4.366025 1.500001 +v -2.358253 4.361538 1.716507 +v -2.187500 4.474278 1.875001 +v -3.237740 5.369310 3.024520 +v -3.093749 5.719190 2.937501 +v -3.075360 6.025560 2.699760 +v -3.187500 6.206329 2.375001 +v -3.400120 6.213060 2.050241 +v -3.656250 6.043950 1.812501 +v -3.887259 5.744310 1.725482 +v -4.031250 5.394431 1.812502 +v -4.049639 5.088060 2.050241 +v -3.937500 4.907291 2.375001 +v -3.724879 4.900560 2.699760 +v -3.468750 5.069671 2.937501 +v -3.533493 5.540064 2.933014 +v -3.437499 5.773316 2.875001 +v -3.425240 5.977563 2.716507 +v -3.499999 6.098076 2.500001 +v -3.641746 6.102564 2.283495 +v -3.812500 5.989823 2.125001 +v -3.966506 5.790064 2.066988 +v -4.062500 5.556810 2.125001 +v -4.074759 5.352563 2.283495 +v -3.999999 5.232050 2.500001 +v -3.858253 5.227563 2.716507 +v -3.687499 5.340303 2.875001 +v -3.587619 5.571314 2.824760 +v -3.515624 5.746253 2.781251 +v -3.506430 5.899439 2.662381 +v -3.562499 5.989823 2.500001 +v -3.668809 5.993189 2.337621 +v -3.796874 5.908633 2.218751 +v -3.912379 5.758814 2.175241 +v -3.984374 5.583873 2.218751 +v -3.993569 5.430689 2.337621 +v -3.937499 5.340304 2.500001 +v -3.831189 5.336939 2.662381 +v -3.703124 5.421494 2.781251 +v -4.171874 6.125140 3.218751 +v -4.243870 5.950200 3.262261 +v -4.162680 6.278324 3.099881 +v -4.218749 6.368710 2.937501 +v -4.325058 6.372075 2.775122 +v -4.453125 6.287519 2.656251 +v -4.568629 6.137700 2.612742 +v -4.640624 5.962760 2.656251 +v -4.649818 5.809574 2.775121 +v -4.593749 5.719191 2.937501 +v -4.487439 5.715824 3.099881 +v -4.359374 5.800380 3.218751 +v -0.908493 4.024519 1.183013 +v -0.812500 4.257772 1.125001 +v -0.800240 4.462019 0.966507 +v -0.875000 4.582532 0.750000 +v -1.016746 4.587019 0.533494 +v -1.187500 4.474278 0.375001 +v -1.341506 4.274519 0.316988 +v -1.437500 4.041266 0.375001 +v -1.449759 3.837019 0.533494 +v -1.375000 3.716506 0.750000 +v -1.233253 3.712019 0.966507 +v -1.062500 3.824759 1.125000 +v -1.016746 4.087019 0.966507 +v -0.968750 4.203646 0.937500 +v -0.962620 4.305769 0.858254 +v -1.000000 4.366025 0.750001 +v -1.070873 4.368269 0.641747 +v -1.156250 4.311899 0.562501 +v -1.233253 4.212019 0.533494 +v -1.281250 4.095392 0.562501 +v -1.287380 3.993269 0.641747 +v -1.250000 3.933013 0.750000 +v -1.179126 3.930769 0.858254 +v -1.093750 3.987139 0.937500 +v -0.454247 3.762259 0.591507 +v -0.406250 3.878886 0.562500 +v -0.400120 3.981009 0.483254 +v -0.437500 4.041266 0.375000 +v -0.508373 4.043509 0.266747 +v -0.593750 3.987139 0.187500 +v -0.670753 3.887259 0.158494 +v -0.718750 3.770633 0.187500 +v -0.724880 3.668509 0.266747 +v -0.687500 3.608253 0.375000 +v -0.616627 3.606009 0.483254 +v -0.531250 3.662380 0.562500 +v -0.484375 3.851823 0.468750 +v -0.508373 3.793509 0.483253 +v -0.481310 3.902884 0.429127 +v -0.500000 3.933013 0.375000 +v -0.535437 3.934134 0.320874 +v -0.578125 3.905949 0.281250 +v -0.616626 3.856009 0.266747 +v -0.640625 3.797696 0.281250 +v -0.643690 3.746634 0.320874 +v -0.625000 3.716506 0.375000 +v -0.589563 3.715384 0.429127 +v -0.546875 3.743570 0.468750 +v -0.296875 3.743570 0.343750 +v -0.320873 3.685256 0.358254 +v -0.293810 3.794631 0.304127 +v -0.312500 3.824759 0.250000 +v -0.347937 3.825881 0.195874 +v -0.390625 3.797696 0.156250 +v -0.429126 3.747756 0.141747 +v -0.453125 3.689443 0.156250 +v -0.456190 3.638381 0.195874 +v -0.437500 3.608253 0.250000 +v -0.402063 3.607131 0.304127 +v -0.359375 3.635316 0.343750 +v -2.762260 5.094791 -0.975480 +v -2.531250 5.394431 -1.062500 +v -2.275120 5.563541 -1.300240 +v -2.062501 5.556810 -1.625000 +v -1.950361 5.376041 -1.949759 +v -1.968750 5.069671 -2.187500 +v -2.112741 4.719791 -2.274518 +v -2.343751 4.420152 -2.187500 +v -2.599880 4.251041 -1.949759 +v -2.812500 4.257772 -1.625000 +v -2.924639 4.438541 -1.300240 +v -2.906250 4.744912 -1.062500 +v -2.466507 4.924038 -1.066987 +v -2.312500 5.123798 -1.124999 +v -2.141747 5.236538 -1.283493 +v -2.000000 5.232051 -1.499999 +v -1.925241 5.111539 -1.716506 +v -1.937500 4.907291 -1.874999 +v -2.033494 4.674038 -1.933012 +v -2.187500 4.474278 -1.874999 +v -2.358253 4.361538 -1.716506 +v -2.500000 4.366025 -1.499999 +v -2.574760 4.486538 -1.283493 +v -2.562500 4.690785 -1.124999 +v -3.887259 5.744310 -1.725480 +v -3.656250 6.043950 -1.812499 +v -3.400120 6.213060 -2.050240 +v -3.187500 6.206329 -2.374999 +v -3.075361 6.025560 -2.699759 +v -3.093750 5.719191 -2.937499 +v -3.237741 5.369310 -3.024518 +v -3.468750 5.069672 -2.937499 +v -3.724880 4.900561 -2.699759 +v -3.937500 4.907291 -2.374999 +v -4.049639 5.088060 -2.050240 +v -4.031250 5.394431 -1.812500 +v -3.966506 5.790064 -2.066986 +v -3.812500 5.989823 -2.124999 +v -3.641747 6.102564 -2.283493 +v -3.500000 6.098076 -2.499999 +v -3.425241 5.977564 -2.716505 +v -3.437500 5.773317 -2.874999 +v -3.533494 5.540064 -2.933012 +v -3.687500 5.340304 -2.874999 +v -3.858253 5.227564 -2.716505 +v -4.000000 5.232051 -2.499999 +v -4.074759 5.352563 -2.283493 +v -4.062500 5.556810 -2.124999 +v -3.912380 5.758814 -2.175240 +v -3.796875 5.908633 -2.218749 +v -3.668810 5.993189 -2.337619 +v -3.562500 5.989823 -2.499999 +v -3.506430 5.899439 -2.662379 +v -3.515626 5.746254 -2.781249 +v -3.587620 5.571314 -2.824759 +v -3.703126 5.421494 -2.781249 +v -3.831190 5.336939 -2.662379 +v -3.937500 5.340304 -2.499999 +v -3.993569 5.430689 -2.337619 +v -3.984375 5.583874 -2.218749 +v -4.453125 6.287520 -2.656249 +v -4.568630 6.137700 -2.612739 +v -4.325061 6.372075 -2.775119 +v -4.218751 6.368710 -2.937499 +v -4.162681 6.278325 -3.099879 +v -4.171876 6.125140 -3.218749 +v -4.243871 5.950200 -3.262259 +v -4.359375 5.800381 -3.218749 +v -4.487441 5.715825 -3.099879 +v -4.593750 5.719191 -2.937500 +v -4.649819 5.809575 -2.775119 +v -4.640625 5.962760 -2.656249 +v -1.341506 4.274519 -0.316987 +v -1.187500 4.474278 -0.374999 +v -1.016747 4.587019 -0.533493 +v -0.875000 4.582532 -0.750000 +v -0.800241 4.462019 -0.966506 +v -0.812500 4.257772 -1.125000 +v -0.908494 4.024519 -1.183012 +v -1.062500 3.824759 -1.125000 +v -1.233253 3.712019 -0.966506 +v -1.375000 3.716506 -0.750000 +v -1.449760 3.837019 -0.533493 +v -1.437500 4.041266 -0.375000 +v -1.233253 4.212019 -0.533493 +v -1.156250 4.311899 -0.562500 +v -1.070873 4.368269 -0.641746 +v -1.000000 4.366025 -0.749999 +v -0.962620 4.305769 -0.858253 +v -0.968750 4.203646 -0.937500 +v -1.016747 4.087019 -0.966506 +v -1.093750 3.987139 -0.937500 +v -1.179127 3.930769 -0.858253 +v -1.250000 3.933013 -0.750000 +v -1.287380 3.993269 -0.641746 +v -1.281250 4.095393 -0.562500 +v -0.670753 3.887260 -0.158493 +v -0.593750 3.987139 -0.187500 +v -0.508373 4.043509 -0.266747 +v -0.437500 4.041266 -0.375000 +v -0.400120 3.981010 -0.483253 +v -0.406250 3.878886 -0.562500 +v -0.454247 3.762260 -0.591506 +v -0.531250 3.662380 -0.562500 +v -0.616627 3.606009 -0.483253 +v -0.687500 3.608253 -0.375000 +v -0.724880 3.668509 -0.266747 +v -0.718750 3.770633 -0.187500 +v -0.578125 3.905949 -0.281250 +v -0.616627 3.856010 -0.266746 +v -0.535437 3.934135 -0.320873 +v -0.500000 3.933013 -0.375000 +v -0.481310 3.902885 -0.429126 +v -0.484375 3.851823 -0.468750 +v -0.508373 3.793510 -0.483253 +v -0.546875 3.743570 -0.468750 +v -0.589563 3.715384 -0.429126 +v -0.625000 3.716506 -0.375000 +v -0.643690 3.746634 -0.320873 +v -0.640625 3.797696 -0.281250 +v -0.390625 3.797696 -0.156250 +v -0.429127 3.747756 -0.141746 +v -0.347937 3.825881 -0.195873 +v -0.312500 3.824759 -0.250000 +v -0.293810 3.794631 -0.304126 +v -0.296875 3.743570 -0.343750 +v -0.320874 3.685256 -0.358253 +v -0.359375 3.635317 -0.343750 +v -0.402063 3.607131 -0.304126 +v -0.437500 3.608253 -0.250000 +v -0.456190 3.638381 -0.195873 +v -0.453125 3.689443 -0.156250 +vt 0.250000 0.298077 +vt 0.260417 0.330128 +vt 0.250000 0.326923 +vt 0.250000 0.336538 +vt 0.260417 0.368590 +vt 0.250000 0.365385 +vt 0.260417 0.371795 +vt 0.250000 0.403846 +vt 0.250000 0.375000 +vt 0.260417 0.410256 +vt 0.250000 0.442308 +vt 0.250000 0.413462 +vt 0.260417 0.448718 +vt 0.250000 0.480769 +vt 0.250000 0.451923 +vt 0.260417 0.487179 +vt 0.250000 0.519231 +vt 0.250000 0.490385 +vt 0.260417 0.525641 +vt 0.250000 0.557692 +vt 0.250000 0.528846 +vt 0.260417 0.564103 +vt 0.250000 0.596154 +vt 0.250000 0.567308 +vt 0.260417 0.602564 +vt 0.250000 0.634615 +vt 0.250000 0.605769 +vt 0.250000 0.644231 +vt 0.260417 0.676282 +vt 0.250000 0.673077 +vt 0.250000 0.682692 +vt 0.260417 0.714744 +vt 0.250000 0.711538 +vt 0.250000 0.105769 +vt 0.260417 0.137821 +vt 0.250000 0.134615 +vt 0.250000 0.144231 +vt 0.260417 0.176282 +vt 0.250000 0.173077 +vt 0.250000 0.182692 +vt 0.260417 0.214744 +vt 0.250000 0.211538 +vt 0.250000 0.221154 +vt 0.260417 0.253205 +vt 0.250000 0.250000 +vt 0.250000 0.259615 +vt 0.260417 0.291667 +vt 0.250000 0.288462 +vt 0.250000 0.480769 +vt 0.260417 0.448718 +vt 0.260417 0.483974 +vt 0.250000 0.413462 +vt 0.260417 0.445513 +vt 0.250000 0.442308 +vt 0.250000 0.375000 +vt 0.260417 0.407051 +vt 0.250000 0.403846 +vt 0.250000 0.336538 +vt 0.260417 0.368590 +vt 0.250000 0.365385 +vt 0.250000 0.298077 +vt 0.260417 0.330128 +vt 0.250000 0.326923 +vt 0.250000 0.259615 +vt 0.260417 0.291667 +vt 0.250000 0.288462 +vt 0.250000 0.221154 +vt 0.260417 0.253205 +vt 0.250000 0.250000 +vt 0.250000 0.182692 +vt 0.260417 0.214744 +vt 0.250000 0.211538 +vt 0.250000 0.173077 +vt 0.260417 0.141026 +vt 0.260417 0.176282 +vt 0.250000 0.134615 +vt 0.260417 0.102564 +vt 0.260417 0.137821 +vt 0.250000 0.711538 +vt 0.260417 0.679487 +vt 0.260417 0.714744 +vt 0.250000 0.673077 +vt 0.260417 0.641026 +vt 0.260417 0.676282 +vt 0.250000 0.634615 +vt 0.260417 0.602564 +vt 0.260417 0.637821 +vt 0.250000 0.596154 +vt 0.260417 0.564103 +vt 0.260417 0.599359 +vt 0.250000 0.557692 +vt 0.260417 0.525641 +vt 0.260417 0.560897 +vt 0.250000 0.519231 +vt 0.260417 0.487179 +vt 0.260417 0.522436 +vt 0.364583 0.266026 +vt 0.333333 0.291667 +vt 0.333333 0.256410 +vt 0.364583 0.304487 +vt 0.333333 0.330128 +vt 0.333333 0.294872 +vt 0.333333 0.333333 +vt 0.364583 0.362179 +vt 0.333333 0.368590 +vt 0.364583 0.381410 +vt 0.333333 0.407051 +vt 0.333333 0.371795 +vt 0.364583 0.419872 +vt 0.333333 0.445513 +vt 0.333333 0.410256 +vt 0.333333 0.448718 +vt 0.364583 0.477564 +vt 0.333333 0.483974 +vt 0.364583 0.496795 +vt 0.333333 0.522436 +vt 0.333333 0.487179 +vt 0.364583 0.535256 +vt 0.333333 0.560897 +vt 0.333333 0.525641 +vt 0.333333 0.564103 +vt 0.364583 0.592949 +vt 0.333333 0.599359 +vt 0.333333 0.602564 +vt 0.364583 0.631410 +vt 0.333333 0.637821 +vt 0.364583 0.650641 +vt 0.333333 0.676282 +vt 0.333333 0.641026 +vt 0.364583 0.689103 +vt 0.333333 0.714744 +vt 0.333333 0.679487 +vt 0.333333 0.102564 +vt 0.364583 0.131410 +vt 0.333333 0.137821 +vt 0.333333 0.141026 +vt 0.364583 0.169872 +vt 0.333333 0.176282 +vt 0.364583 0.189103 +vt 0.333333 0.214744 +vt 0.333333 0.179487 +vt 0.364583 0.227564 +vt 0.333333 0.253205 +vt 0.333333 0.217949 +vt 0.468750 0.304487 +vt 0.500000 0.330128 +vt 0.468750 0.323718 +vt 0.500000 0.333333 +vt 0.468750 0.362179 +vt 0.468750 0.342949 +vt 0.468750 0.381410 +vt 0.500000 0.407051 +vt 0.468750 0.400641 +vt 0.468750 0.419872 +vt 0.500000 0.445513 +vt 0.468750 0.439103 +vt 0.500000 0.448718 +vt 0.468750 0.477564 +vt 0.468750 0.458333 +vt 0.468750 0.496795 +vt 0.500000 0.522436 +vt 0.468750 0.516026 +vt 0.500000 0.525641 +vt 0.468750 0.554487 +vt 0.468750 0.535256 +vt 0.500000 0.564103 +vt 0.468750 0.592949 +vt 0.468750 0.573718 +vt 0.500000 0.602564 +vt 0.468750 0.631410 +vt 0.468750 0.612179 +vt 0.468750 0.650641 +vt 0.500000 0.676282 +vt 0.468750 0.669872 +vt 0.468750 0.689103 +vt 0.500000 0.714744 +vt 0.468750 0.708333 +vt 0.500000 0.102564 +vt 0.468750 0.131410 +vt 0.468750 0.112179 +vt 0.500000 0.141026 +vt 0.468750 0.169872 +vt 0.468750 0.150641 +vt 0.500000 0.179487 +vt 0.468750 0.208333 +vt 0.468750 0.189103 +vt 0.468750 0.227564 +vt 0.500000 0.253205 +vt 0.468750 0.246795 +vt 0.468750 0.266026 +vt 0.500000 0.291667 +vt 0.468750 0.285256 +vt 0.333333 0.487179 +vt 0.364583 0.516026 +vt 0.333333 0.522436 +vt 0.333333 0.483974 +vt 0.364583 0.458333 +vt 0.364583 0.477564 +vt 0.333333 0.410256 +vt 0.364583 0.439103 +vt 0.333333 0.445513 +vt 0.333333 0.371795 +vt 0.364583 0.400641 +vt 0.333333 0.407051 +vt 0.333333 0.368590 +vt 0.364583 0.342949 +vt 0.364583 0.362179 +vt 0.333333 0.294872 +vt 0.364583 0.323718 +vt 0.333333 0.330128 +vt 0.333333 0.291667 +vt 0.364583 0.266026 +vt 0.364583 0.285256 +vt 0.333333 0.253205 +vt 0.364583 0.227564 +vt 0.364583 0.246795 +vt 0.333333 0.214744 +vt 0.364583 0.189103 +vt 0.364583 0.208333 +vt 0.333333 0.141026 +vt 0.364583 0.169872 +vt 0.333333 0.176282 +vt 0.333333 0.102564 +vt 0.364583 0.131410 +vt 0.333333 0.137821 +vt 0.333333 0.714744 +vt 0.364583 0.689103 +vt 0.364583 0.708333 +vt 0.333333 0.676282 +vt 0.364583 0.650641 +vt 0.364583 0.669872 +vt 0.333333 0.602564 +vt 0.364583 0.631410 +vt 0.333333 0.637821 +vt 0.333333 0.564103 +vt 0.364583 0.592949 +vt 0.333333 0.599359 +vt 0.333333 0.525641 +vt 0.364583 0.554487 +vt 0.333333 0.560897 +vt 0.468750 0.516026 +vt 0.500000 0.487179 +vt 0.500000 0.522436 +vt 0.500000 0.483974 +vt 0.468750 0.458333 +vt 0.500000 0.448718 +vt 0.468750 0.439103 +vt 0.500000 0.410256 +vt 0.500000 0.445513 +vt 0.468750 0.400641 +vt 0.500000 0.371795 +vt 0.500000 0.407051 +vt 0.500000 0.368590 +vt 0.468750 0.342949 +vt 0.500000 0.333333 +vt 0.468750 0.323718 +vt 0.500000 0.294872 +vt 0.500000 0.330128 +vt 0.468750 0.285256 +vt 0.500000 0.256410 +vt 0.500000 0.291667 +vt 0.500000 0.253205 +vt 0.468750 0.227564 +vt 0.500000 0.217949 +vt 0.500000 0.214744 +vt 0.468750 0.189103 +vt 0.500000 0.179487 +vt 0.468750 0.169872 +vt 0.500000 0.141026 +vt 0.500000 0.176282 +vt 0.468750 0.131410 +vt 0.500000 0.102564 +vt 0.500000 0.137821 +vt 0.500000 0.714744 +vt 0.468750 0.689103 +vt 0.500000 0.679487 +vt 0.500000 0.676282 +vt 0.468750 0.650641 +vt 0.500000 0.641026 +vt 0.468750 0.631410 +vt 0.500000 0.602564 +vt 0.500000 0.637821 +vt 0.468750 0.592949 +vt 0.500000 0.564103 +vt 0.500000 0.599359 +vt 0.468750 0.554487 +vt 0.500000 0.525641 +vt 0.500000 0.560897 +vt 0.572917 0.256410 +vt 0.635417 0.275641 +vt 0.572917 0.291667 +vt 0.635417 0.310897 +vt 0.572917 0.330128 +vt 0.572917 0.294872 +vt 0.635417 0.349359 +vt 0.572917 0.368590 +vt 0.572917 0.333333 +vt 0.635417 0.387821 +vt 0.572917 0.407051 +vt 0.572917 0.371795 +vt 0.635417 0.426282 +vt 0.572917 0.445513 +vt 0.572917 0.410256 +vt 0.572917 0.448718 +vt 0.635417 0.467949 +vt 0.572917 0.483974 +vt 0.635417 0.503205 +vt 0.572917 0.522436 +vt 0.572917 0.487179 +vt 0.572917 0.525641 +vt 0.635417 0.544872 +vt 0.572917 0.560897 +vt 0.635417 0.580128 +vt 0.572917 0.599359 +vt 0.572917 0.564103 +vt 0.572917 0.602564 +vt 0.635417 0.621795 +vt 0.572917 0.637821 +vt 0.635417 0.657051 +vt 0.572917 0.676282 +vt 0.572917 0.641026 +vt 0.572917 0.679487 +vt 0.635417 0.698718 +vt 0.572917 0.714744 +vt 0.572917 0.102564 +vt 0.635417 0.121795 +vt 0.572917 0.137821 +vt 0.635417 0.157051 +vt 0.572917 0.176282 +vt 0.572917 0.141026 +vt 0.635417 0.195513 +vt 0.572917 0.214744 +vt 0.572917 0.179487 +vt 0.635417 0.233974 +vt 0.572917 0.253205 +vt 0.572917 0.217949 +vt 0.253086 0.721747 +vt 0.267746 0.721747 +vt 0.267746 0.739791 +vt 0.572917 0.487179 +vt 0.635417 0.506410 +vt 0.572917 0.522436 +vt 0.572917 0.448718 +vt 0.635417 0.467949 +vt 0.572917 0.483974 +vt 0.572917 0.410256 +vt 0.635417 0.429487 +vt 0.572917 0.445513 +vt 0.572917 0.371795 +vt 0.635417 0.391026 +vt 0.572917 0.407051 +vt 0.572917 0.368590 +vt 0.635417 0.349359 +vt 0.635417 0.352564 +vt 0.572917 0.294872 +vt 0.635417 0.314103 +vt 0.572917 0.330128 +vt 0.572917 0.291667 +vt 0.635417 0.272436 +vt 0.635417 0.275641 +vt 0.572917 0.217949 +vt 0.635417 0.237179 +vt 0.572917 0.253205 +vt 0.572917 0.214744 +vt 0.635417 0.195513 +vt 0.635417 0.198718 +vt 0.572917 0.141026 +vt 0.635417 0.160256 +vt 0.572917 0.176282 +vt 0.572917 0.137821 +vt 0.635417 0.118590 +vt 0.635417 0.121795 +vt 0.572917 0.714744 +vt 0.635417 0.695513 +vt 0.635417 0.698718 +vt 0.572917 0.641026 +vt 0.635417 0.660256 +vt 0.572917 0.676282 +vt 0.572917 0.602564 +vt 0.635417 0.621795 +vt 0.572917 0.637821 +vt 0.572917 0.564103 +vt 0.635417 0.583333 +vt 0.572917 0.599359 +vt 0.572917 0.560897 +vt 0.635417 0.541667 +vt 0.635417 0.544872 +vt 0.260416 0.718010 +vt 0.270783 0.730769 +vt 0.260416 0.743528 +vt 0.739583 0.410256 +vt 0.770833 0.564103 +vt 0.739583 0.564103 +vt 0.739583 0.410256 +vt 0.770833 0.564103 +vt 0.739583 0.564103 +vt 0.770833 0.358974 +vt 0.770833 0.410256 +vt 0.739583 0.615385 +vt 0.812500 0.564103 +vt 0.697917 0.410256 +vt 0.770833 0.358974 +vt 0.770833 0.410256 +vt 0.739583 0.615385 +vt 0.812500 0.564103 +vt 0.697917 0.410256 +vt 0.770833 0.564103 +vt 0.739583 0.410256 +vt 0.770833 0.410256 +vt 0.770833 0.564103 +vt 0.739583 0.410256 +vt 0.770833 0.410256 +vt 0.739583 0.615385 +vt 0.739583 0.564103 +vt 0.770833 0.358974 +vt 0.697917 0.410256 +vt 0.812500 0.564103 +vt 0.739583 0.615385 +vt 0.739583 0.564103 +vt 0.770833 0.358974 +vt 0.697917 0.410256 +vt 0.812500 0.564103 +vt 0.515625 0.717949 +vt 0.500000 0.884615 +vt 0.500000 0.717949 +vt 0.484375 0.717949 +vt 0.468750 0.884615 +vt 0.468750 0.717949 +vt 0.484375 0.884615 +vt 0.531250 0.717949 +vt 0.515625 0.884615 +vt 0.515625 0.717949 +vt 0.500000 0.884615 +vt 0.500000 0.717949 +vt 0.484375 0.717949 +vt 0.468750 0.884615 +vt 0.468750 0.717949 +vt 0.484375 0.884615 +vt 0.531250 0.717949 +vt 0.515625 0.884615 +vt 0.484375 0.884615 +vt 0.500000 0.717949 +vt 0.500000 0.884615 +vt 0.515625 0.884615 +vt 0.531250 0.717949 +vt 0.531250 0.884615 +vt 0.515625 0.717949 +vt 0.468750 0.884615 +vt 0.484375 0.717949 +vt 0.484375 0.884615 +vt 0.500000 0.717949 +vt 0.500000 0.884615 +vt 0.515625 0.884615 +vt 0.531250 0.717949 +vt 0.531250 0.884615 +vt 0.515625 0.717949 +vt 0.468750 0.884615 +vt 0.484375 0.717949 +vt 0.635417 0.102564 +vt 0.656250 0.512821 +vt 0.635417 0.512821 +vt 0.666667 0.500000 +vt 0.687500 0.115385 +vt 0.687500 0.500000 +vt 0.687500 0.102564 +vt 0.666667 0.115385 +vt 0.666667 0.102564 +vt 0.666667 0.512821 +vt 0.687500 0.512821 +vt 0.656250 0.102564 +vt 0.697917 0.512821 +vt 0.697917 0.102564 +vt 0.635417 0.102564 +vt 0.656250 0.512821 +vt 0.635417 0.512821 +vt 0.666667 0.500000 +vt 0.687500 0.115385 +vt 0.687500 0.500000 +vt 0.687500 0.102564 +vt 0.666667 0.115385 +vt 0.666667 0.102564 +vt 0.666667 0.512821 +vt 0.687500 0.512821 +vt 0.656250 0.102564 +vt 0.697917 0.512821 +vt 0.697917 0.102564 +vt 0.739583 0.358974 +vt 0.770833 0.307692 +vt 0.770833 0.358974 +vt 0.770833 0.102564 +vt 0.739583 0.153846 +vt 0.739583 0.102564 +vt 0.812500 0.307692 +vt 0.770833 0.153846 +vt 0.812500 0.153846 +vt 0.697917 0.153846 +vt 0.739583 0.307692 +vt 0.697917 0.307692 +vt 0.739583 0.358974 +vt 0.770833 0.307692 +vt 0.770833 0.358974 +vt 0.770833 0.102564 +vt 0.739583 0.153846 +vt 0.739583 0.102564 +vt 0.812500 0.307692 +vt 0.770833 0.153846 +vt 0.812500 0.153846 +vt 0.697917 0.153846 +vt 0.739583 0.307692 +vt 0.697917 0.307692 +vt 0.770833 0.102564 +vt 0.739583 0.153846 +vt 0.739583 0.102564 +vt 0.739583 0.358974 +vt 0.770833 0.307692 +vt 0.770833 0.358974 +vt 0.697917 0.153846 +vt 0.739583 0.307692 +vt 0.697917 0.307692 +vt 0.812500 0.307692 +vt 0.770833 0.153846 +vt 0.812500 0.153846 +vt 0.770833 0.102564 +vt 0.739583 0.153846 +vt 0.739583 0.102564 +vt 0.739583 0.358974 +vt 0.770833 0.307692 +vt 0.770833 0.358974 +vt 0.697917 0.153846 +vt 0.739583 0.307692 +vt 0.697917 0.307692 +vt 0.812500 0.307692 +vt 0.770833 0.153846 +vt 0.812500 0.153846 +vt 0.515625 0.717949 +vt 0.500000 0.884615 +vt 0.500000 0.717949 +vt 0.484375 0.717949 +vt 0.468750 0.884615 +vt 0.468750 0.717949 +vt 0.484375 0.884615 +vt 0.531250 0.717949 +vt 0.515625 0.884615 +vt 0.515625 0.717949 +vt 0.500000 0.884615 +vt 0.500000 0.717949 +vt 0.484375 0.717949 +vt 0.468750 0.884615 +vt 0.468750 0.717949 +vt 0.484375 0.884615 +vt 0.531250 0.717949 +vt 0.515625 0.884615 +vt 0.484375 0.884615 +vt 0.500000 0.717949 +vt 0.500000 0.884615 +vt 0.515625 0.884615 +vt 0.531250 0.717949 +vt 0.531250 0.884615 +vt 0.515625 0.717949 +vt 0.468750 0.884615 +vt 0.484375 0.717949 +vt 0.484375 0.884615 +vt 0.500000 0.717949 +vt 0.500000 0.884615 +vt 0.515625 0.884615 +vt 0.531250 0.717949 +vt 0.531250 0.884615 +vt 0.515625 0.717949 +vt 0.468750 0.884615 +vt 0.484375 0.717949 +vt 0.635417 0.102564 +vt 0.656250 0.512821 +vt 0.635417 0.512821 +vt 0.666667 0.500000 +vt 0.687500 0.115385 +vt 0.687500 0.500000 +vt 0.687500 0.102564 +vt 0.666667 0.115385 +vt 0.666667 0.102564 +vt 0.666667 0.512821 +vt 0.687500 0.512821 +vt 0.656250 0.102564 +vt 0.697917 0.512821 +vt 0.697917 0.102564 +vt 0.635417 0.102564 +vt 0.656250 0.512821 +vt 0.635417 0.512821 +vt 0.666667 0.500000 +vt 0.687500 0.115385 +vt 0.687500 0.500000 +vt 0.687500 0.102564 +vt 0.666667 0.115385 +vt 0.666667 0.102564 +vt 0.666667 0.512821 +vt 0.687500 0.512821 +vt 0.656250 0.102564 +vt 0.697917 0.512821 +vt 0.697917 0.102564 +vt 0.770833 0.102564 +vt 0.791667 0.076923 +vt 0.791667 0.102564 +vt 0.041667 0.076923 +vt 0.062500 0.102564 +vt 0.041667 0.102564 +vt 0.770833 0.076923 +vt 0.062500 0.051282 +vt 0.770833 0.051282 +vt 0.770833 0.025641 +vt 0.062500 -0.000000 +vt 0.770833 -0.000000 +vt 0.062500 0.076923 +vt 0.062500 0.025641 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.770833 0.102564 +vt 0.791667 0.076923 +vt 0.791667 0.102564 +vt 0.041667 0.076923 +vt 0.062500 0.102564 +vt 0.041667 0.102564 +vt 0.770833 0.076923 +vt 0.062500 0.051282 +vt 0.770833 0.051282 +vt 0.770833 0.025641 +vt 0.062500 -0.000000 +vt 0.770833 -0.000000 +vt 0.062500 0.076923 +vt 0.062500 0.025641 +vt 0.255208 0.750000 +vt 0.286458 0.788462 +vt 0.255208 0.788462 +vt 0.250000 0.750000 +vt 0.286458 0.743590 +vt 0.286458 0.750000 +vt 0.255208 0.794872 +vt 0.291667 0.788462 +vt 0.562500 0.717949 +vt 0.531250 0.756410 +vt 0.531250 0.717949 +vt 0.255208 0.884615 +vt 0.276042 0.910256 +vt 0.255208 0.910256 +vt 0.562500 0.756410 +vt 0.531250 0.814103 +vt 0.625000 0.756410 +vt 0.593750 0.814103 +vt 0.593750 0.756410 +vt 0.562500 0.814103 +vt 0.656250 0.756410 +vt 0.625000 0.814103 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.276042 0.833333 +vt 0.255208 0.884615 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.958333 0.240385 +vt 0.854167 0.246795 +vt 0.854167 0.240385 +vt 0.854167 0.282051 +vt 0.958333 0.288462 +vt 0.854167 0.288462 +vt 0.859375 0.288462 +vt 0.953125 0.288462 +vt 0.854167 0.144231 +vt 0.859375 0.096154 +vt 0.859375 0.144231 +vt 0.958333 0.144231 +vt 0.953125 0.096154 +vt 0.958333 0.096154 +vt 0.958333 0.137821 +vt 0.958333 0.102564 +vt 0.854167 0.096154 +vt 0.953125 0.673077 +vt 0.958333 0.625000 +vt 0.958333 0.673077 +vt 0.854167 0.625000 +vt 0.859375 0.673077 +vt 0.854167 0.673077 +vt 0.854167 0.631410 +vt 0.958333 0.666667 +vt 0.854167 0.528846 +vt 0.859375 0.480769 +vt 0.859375 0.528846 +vt 0.958333 0.528846 +vt 0.953125 0.480769 +vt 0.958333 0.480769 +vt 0.958333 0.474359 +vt 0.854167 0.480769 +vt 0.958333 0.522436 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.785256 +vt 0.817708 0.772436 +vt 0.822917 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.978416 0.920329 +vt 0.988115 0.910733 +vt 0.988115 0.917130 +vt 0.978417 0.811576 +vt 0.988115 0.821172 +vt 0.978417 0.824371 +vt 0.978417 0.849960 +vt 0.988116 0.859555 +vt 0.978417 0.862754 +vt 0.978417 0.997095 +vt 0.988115 0.987499 +vt 0.988115 0.993896 +vt 0.978417 0.926726 +vt 0.988115 0.936322 +vt 0.978417 0.939520 +vt 0.978416 0.881946 +vt 0.988115 0.872350 +vt 0.988115 0.878747 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.945918 +vt 0.988115 0.955513 +vt 0.978417 0.958712 +vt 0.978417 0.888343 +vt 0.988115 0.897939 +vt 0.978417 0.901137 +vt 0.978417 0.805179 +vt 0.988115 0.795583 +vt 0.988115 0.801981 +vt 0.978417 0.830768 +vt 0.988115 0.840364 +vt 0.978417 0.843562 +vt 0.978417 0.965109 +vt 0.988115 0.974705 +vt 0.978417 0.977904 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.723980 0.967949 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.901042 0.903846 +vt 0.916667 0.919872 +vt 0.901042 0.923077 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.901042 0.846154 +vt 0.916667 0.862179 +vt 0.901042 0.865385 +vt 0.901042 1.000000 +vt 0.916667 0.983974 +vt 0.916667 0.996795 +vt 0.901042 0.942308 +vt 0.916667 0.926282 +vt 0.916667 0.939103 +vt 0.901042 0.884615 +vt 0.916667 0.868590 +vt 0.916667 0.881410 +vt 0.901042 0.769231 +vt 0.916667 0.785256 +vt 0.901042 0.788462 +vt 0.916667 0.958333 +vt 0.901042 0.961538 +vt 0.916667 0.900641 +vt 0.916667 0.791667 +vt 0.916667 0.804487 +vt 0.916667 0.830128 +vt 0.916667 0.842949 +vt 0.901042 0.980769 +vt 0.916667 0.964744 +vt 0.916667 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.993590 +vt 0.770833 0.987179 +vt 0.770833 0.990385 +vt 0.770833 0.971154 +vt 0.765625 0.974359 +vt 0.770833 0.939103 +vt 0.765625 0.942308 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.723958 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.713542 0.974359 +vt 0.723958 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.718750 0.961538 +vt 0.713542 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.713542 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.723958 0.974359 +vt 0.718750 0.961538 +vt 0.255208 0.884615 +vt 0.276042 0.910256 +vt 0.255208 0.910256 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.276042 0.833333 +vt 0.255208 0.884615 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.255208 0.884615 +vt 0.276042 0.910256 +vt 0.255208 0.910256 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.276042 0.833333 +vt 0.255208 0.884615 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.255208 0.884615 +vt 0.276042 0.910256 +vt 0.255208 0.910256 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.276042 0.833333 +vt 0.255208 0.884615 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.849359 +vt 0.817708 0.858974 +vt 0.817708 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.791667 +vt 0.817708 0.801282 +vt 0.817708 0.791667 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.710957 0.958920 +vt 0.710957 0.925696 +vt 0.734335 0.942308 +vt 0.978416 0.920329 +vt 0.988115 0.910733 +vt 0.988115 0.917130 +vt 0.978417 0.824371 +vt 0.988115 0.814775 +vt 0.988115 0.821172 +vt 0.978417 0.849960 +vt 0.988116 0.859555 +vt 0.978417 0.862754 +vt 0.978417 0.997095 +vt 0.988115 0.987499 +vt 0.988115 0.993896 +vt 0.978417 0.939520 +vt 0.988116 0.929924 +vt 0.988115 0.936322 +vt 0.978416 0.869151 +vt 0.988115 0.878747 +vt 0.978416 0.881946 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.958712 +vt 0.988115 0.949116 +vt 0.988115 0.955513 +vt 0.978417 0.888343 +vt 0.988115 0.897939 +vt 0.978417 0.901137 +vt 0.978417 0.805179 +vt 0.988115 0.795583 +vt 0.988115 0.801981 +vt 0.978417 0.830768 +vt 0.988115 0.840364 +vt 0.978417 0.843562 +vt 0.978417 0.965109 +vt 0.988115 0.974705 +vt 0.978417 0.977904 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.967949 +vt 0.770833 0.961538 +vt 0.770833 0.964744 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.765625 0.961538 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.734353 0.967949 +vt 0.731760 0.973477 +vt 0.726573 0.973477 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.791667 +vt 0.817708 0.801282 +vt 0.817708 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.978416 0.920329 +vt 0.988115 0.910733 +vt 0.988115 0.917130 +vt 0.978417 0.824371 +vt 0.988115 0.814775 +vt 0.988115 0.821172 +vt 0.978417 0.849960 +vt 0.988116 0.859555 +vt 0.978417 0.862754 +vt 0.978417 0.997095 +vt 0.988115 0.987499 +vt 0.988115 0.993896 +vt 0.978417 0.939520 +vt 0.988116 0.929924 +vt 0.988115 0.936322 +vt 0.978416 0.881946 +vt 0.988115 0.872350 +vt 0.988115 0.878747 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.945918 +vt 0.988115 0.955513 +vt 0.978417 0.958712 +vt 0.978417 0.888343 +vt 0.988115 0.897939 +vt 0.978417 0.901137 +vt 0.978417 0.805179 +vt 0.988115 0.795583 +vt 0.988115 0.801981 +vt 0.978417 0.830768 +vt 0.988115 0.840364 +vt 0.978417 0.843562 +vt 0.978417 0.965109 +vt 0.988115 0.974705 +vt 0.978417 0.977904 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.939103 +vt 0.817708 0.926282 +vt 0.822917 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.958920 +vt 0.710957 0.958920 +vt 0.710957 0.925696 +vt 0.978416 0.907534 +vt 0.988115 0.917130 +vt 0.978416 0.920329 +vt 0.978417 0.811576 +vt 0.988115 0.821172 +vt 0.978417 0.824371 +vt 0.978417 0.862754 +vt 0.988115 0.853158 +vt 0.988116 0.859555 +vt 0.978417 0.997095 +vt 0.988115 0.987499 +vt 0.988115 0.993896 +vt 0.978417 0.926726 +vt 0.988115 0.936322 +vt 0.978417 0.939520 +vt 0.978416 0.881946 +vt 0.988115 0.872350 +vt 0.988115 0.878747 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.958712 +vt 0.988115 0.949116 +vt 0.988115 0.955513 +vt 0.978417 0.901137 +vt 0.988115 0.891541 +vt 0.988115 0.897939 +vt 0.978417 0.805179 +vt 0.988115 0.795583 +vt 0.988115 0.801981 +vt 0.978417 0.843562 +vt 0.988115 0.833967 +vt 0.988115 0.840364 +vt 0.978417 0.977904 +vt 0.988115 0.968308 +vt 0.988115 0.974705 +vt 0.765625 0.929487 +vt 0.770833 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.967949 +vt 0.770833 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.765625 0.942308 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.770833 0.958333 +vt 0.765625 0.961538 +vt 0.731760 0.973477 +vt 0.726573 0.973477 +vt 0.726573 0.962420 +vt 0.822917 0.849359 +vt 0.817708 0.858974 +vt 0.817708 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.785256 +vt 0.817708 0.772436 +vt 0.822917 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.958920 +vt 0.710957 0.958920 +vt 0.710957 0.925696 +vt 0.978416 0.920329 +vt 0.988115 0.910733 +vt 0.988115 0.917130 +vt 0.978417 0.824371 +vt 0.988115 0.814775 +vt 0.988115 0.821172 +vt 0.978417 0.862754 +vt 0.988115 0.853158 +vt 0.988116 0.859555 +vt 0.978417 0.997095 +vt 0.988115 0.987499 +vt 0.988115 0.993896 +vt 0.978417 0.939520 +vt 0.988116 0.929924 +vt 0.988115 0.936322 +vt 0.978416 0.869151 +vt 0.988115 0.878747 +vt 0.978416 0.881946 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.945918 +vt 0.988115 0.955513 +vt 0.978417 0.958712 +vt 0.978417 0.888343 +vt 0.988115 0.897939 +vt 0.978417 0.901137 +vt 0.978417 0.805179 +vt 0.988115 0.795583 +vt 0.988115 0.801981 +vt 0.978417 0.830768 +vt 0.988115 0.840364 +vt 0.978417 0.843562 +vt 0.978417 0.965109 +vt 0.988115 0.974705 +vt 0.978417 0.977904 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.765625 0.942308 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.958333 +vt 0.723980 0.967949 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.978416 0.920329 +vt 0.988115 0.910733 +vt 0.988115 0.917130 +vt 0.978417 0.811576 +vt 0.988115 0.821172 +vt 0.978417 0.824371 +vt 0.978417 0.849960 +vt 0.988116 0.859555 +vt 0.978417 0.862754 +vt 0.978417 0.997095 +vt 0.988115 0.987499 +vt 0.988115 0.993896 +vt 0.978417 0.926726 +vt 0.988115 0.936322 +vt 0.978417 0.939520 +vt 0.978416 0.881946 +vt 0.988115 0.872350 +vt 0.988115 0.878747 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.958712 +vt 0.988115 0.949116 +vt 0.988115 0.955513 +vt 0.978417 0.888343 +vt 0.988115 0.897939 +vt 0.978417 0.901137 +vt 0.978417 0.805179 +vt 0.988115 0.795583 +vt 0.988115 0.801981 +vt 0.978417 0.830768 +vt 0.988115 0.840364 +vt 0.978417 0.843562 +vt 0.978417 0.965109 +vt 0.988115 0.974705 +vt 0.978417 0.977904 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.987179 +vt 0.770833 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.765625 0.980769 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.901042 0.903846 +vt 0.916667 0.919872 +vt 0.901042 0.923077 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.901042 0.846154 +vt 0.916667 0.862179 +vt 0.901042 0.865385 +vt 0.901042 1.000000 +vt 0.916667 0.983974 +vt 0.916667 0.996795 +vt 0.901042 0.942308 +vt 0.916667 0.926282 +vt 0.916667 0.939103 +vt 0.901042 0.884615 +vt 0.916667 0.868590 +vt 0.916667 0.881410 +vt 0.901042 0.769231 +vt 0.916667 0.785256 +vt 0.901042 0.788462 +vt 0.916667 0.958333 +vt 0.901042 0.961538 +vt 0.916667 0.900641 +vt 0.916667 0.791667 +vt 0.916667 0.804487 +vt 0.916667 0.830128 +vt 0.916667 0.842949 +vt 0.901042 0.980769 +vt 0.916667 0.964744 +vt 0.916667 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.993590 +vt 0.770833 0.987179 +vt 0.770833 0.990385 +vt 0.770833 0.971154 +vt 0.765625 0.974359 +vt 0.770833 0.939103 +vt 0.765625 0.942308 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.822917 0.849359 +vt 0.817708 0.858974 +vt 0.817708 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.785256 +vt 0.817708 0.772436 +vt 0.822917 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.978416 0.920329 +vt 0.988115 0.910733 +vt 0.988115 0.917130 +vt 0.978417 0.811576 +vt 0.988115 0.821172 +vt 0.978417 0.824371 +vt 0.978417 0.849960 +vt 0.988116 0.859555 +vt 0.978417 0.862754 +vt 0.978417 0.997095 +vt 0.988115 0.987499 +vt 0.988115 0.993896 +vt 0.978417 0.939520 +vt 0.988116 0.929924 +vt 0.988115 0.936322 +vt 0.978416 0.881946 +vt 0.988115 0.872350 +vt 0.988115 0.878747 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.958712 +vt 0.988115 0.949116 +vt 0.988115 0.955513 +vt 0.978417 0.888343 +vt 0.988115 0.897939 +vt 0.978417 0.901137 +vt 0.978417 0.805179 +vt 0.988115 0.795583 +vt 0.988115 0.801981 +vt 0.978417 0.830768 +vt 0.988115 0.840364 +vt 0.978417 0.843562 +vt 0.978417 0.977904 +vt 0.988115 0.968308 +vt 0.988115 0.974705 +vt 0.765625 0.929487 +vt 0.770833 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.987179 +vt 0.770833 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.967949 +vt 0.770833 0.961538 +vt 0.770833 0.964744 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.770833 0.971154 +vt 0.765625 0.974359 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.765625 0.980769 +vt 0.770833 0.958333 +vt 0.765625 0.961538 +vt 0.731760 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.842949 +vt 0.817708 0.830128 +vt 0.822917 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.978416 0.907534 +vt 0.988115 0.917130 +vt 0.978416 0.920329 +vt 0.978417 0.824371 +vt 0.988115 0.814775 +vt 0.988115 0.821172 +vt 0.978417 0.849960 +vt 0.988116 0.859555 +vt 0.978417 0.862754 +vt 0.978417 0.984301 +vt 0.988115 0.993896 +vt 0.978417 0.997095 +vt 0.978417 0.939520 +vt 0.988116 0.929924 +vt 0.988115 0.936322 +vt 0.978416 0.881946 +vt 0.988115 0.872350 +vt 0.988115 0.878747 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.945918 +vt 0.988115 0.955513 +vt 0.978417 0.958712 +vt 0.978417 0.888343 +vt 0.988115 0.897939 +vt 0.978417 0.901137 +vt 0.978417 0.805179 +vt 0.988115 0.795583 +vt 0.988115 0.801981 +vt 0.978417 0.830768 +vt 0.988115 0.840364 +vt 0.978417 0.843562 +vt 0.978417 0.965109 +vt 0.988115 0.974705 +vt 0.978417 0.977904 +vt 0.765625 0.929487 +vt 0.770833 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.770833 0.971154 +vt 0.765625 0.974359 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.977564 +vt 0.817708 0.964744 +vt 0.822917 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.958920 +vt 0.710957 0.958920 +vt 0.710957 0.925696 +vt 0.978416 0.907534 +vt 0.988115 0.917130 +vt 0.978416 0.920329 +vt 0.978417 0.811576 +vt 0.988115 0.821172 +vt 0.978417 0.824371 +vt 0.978417 0.862754 +vt 0.988115 0.853158 +vt 0.988116 0.859555 +vt 0.978417 0.997095 +vt 0.988115 0.987499 +vt 0.988115 0.993896 +vt 0.978417 0.926726 +vt 0.988115 0.936322 +vt 0.978417 0.939520 +vt 0.978416 0.869151 +vt 0.988115 0.878747 +vt 0.978416 0.881946 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.958712 +vt 0.988115 0.949116 +vt 0.988115 0.955513 +vt 0.978417 0.888343 +vt 0.988115 0.897939 +vt 0.978417 0.901137 +vt 0.978417 0.792385 +vt 0.988115 0.801981 +vt 0.978417 0.805179 +vt 0.978417 0.830768 +vt 0.988115 0.840364 +vt 0.978417 0.843562 +vt 0.978417 0.977904 +vt 0.988115 0.968308 +vt 0.988115 0.974705 +vt 0.765625 0.929487 +vt 0.770833 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.967949 +vt 0.770833 0.961538 +vt 0.770833 0.964744 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.765625 0.993590 +vt 0.770833 0.987179 +vt 0.770833 0.990385 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.770833 0.958333 +vt 0.765625 0.961538 +vt 0.731760 0.973477 +vt 0.726573 0.973477 +vt 0.726573 0.962420 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.945513 +vt 0.817708 0.955128 +vt 0.817708 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.785256 +vt 0.817708 0.772436 +vt 0.822917 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.978416 0.920329 +vt 0.988115 0.910733 +vt 0.988115 0.917130 +vt 0.978417 0.824371 +vt 0.988115 0.814775 +vt 0.988115 0.821172 +vt 0.978417 0.862754 +vt 0.988115 0.853158 +vt 0.988116 0.859555 +vt 0.978417 0.997095 +vt 0.988115 0.987499 +vt 0.988115 0.993896 +vt 0.978417 0.939520 +vt 0.988116 0.929924 +vt 0.988115 0.936322 +vt 0.978416 0.881946 +vt 0.988115 0.872350 +vt 0.988115 0.878747 +vt 0.978417 0.773193 +vt 0.988115 0.782789 +vt 0.978417 0.785988 +vt 0.978417 0.958712 +vt 0.988115 0.949116 +vt 0.988115 0.955513 +vt 0.978417 0.888343 +vt 0.988115 0.897939 +vt 0.978417 0.901137 +vt 0.978417 0.805179 +vt 0.988115 0.795583 +vt 0.988115 0.801981 +vt 0.978417 0.830768 +vt 0.988115 0.840364 +vt 0.978417 0.843562 +vt 0.978417 0.965109 +vt 0.988115 0.974705 +vt 0.978417 0.977904 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.765625 0.942308 +vt 0.770833 0.935897 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.731760 0.962420 +vt 0.734353 0.967949 +vt 0.260417 0.294872 +vt 0.260417 0.333333 +vt 0.260417 0.407051 +vt 0.260417 0.445513 +vt 0.260417 0.483974 +vt 0.260417 0.522436 +vt 0.260417 0.560897 +vt 0.260417 0.599359 +vt 0.260417 0.637821 +vt 0.260417 0.641026 +vt 0.260417 0.679487 +vt 0.260417 0.102564 +vt 0.260417 0.141026 +vt 0.260417 0.179487 +vt 0.260417 0.217949 +vt 0.260417 0.256410 +vt 0.250000 0.451923 +vt 0.260417 0.410256 +vt 0.260417 0.371795 +vt 0.260417 0.333333 +vt 0.260417 0.294872 +vt 0.260417 0.256410 +vt 0.260417 0.217949 +vt 0.260417 0.179487 +vt 0.250000 0.144231 +vt 0.250000 0.105769 +vt 0.250000 0.682692 +vt 0.250000 0.644231 +vt 0.250000 0.605769 +vt 0.250000 0.567308 +vt 0.250000 0.528846 +vt 0.250000 0.490385 +vt 0.364583 0.285256 +vt 0.364583 0.323718 +vt 0.364583 0.342949 +vt 0.364583 0.400641 +vt 0.364583 0.439103 +vt 0.364583 0.458333 +vt 0.364583 0.516026 +vt 0.364583 0.554487 +vt 0.364583 0.573718 +vt 0.364583 0.612179 +vt 0.364583 0.669872 +vt 0.364583 0.708333 +vt 0.364583 0.112179 +vt 0.364583 0.150641 +vt 0.364583 0.208333 +vt 0.364583 0.246795 +vt 0.500000 0.294872 +vt 0.500000 0.368590 +vt 0.500000 0.371795 +vt 0.500000 0.410256 +vt 0.500000 0.483974 +vt 0.500000 0.487179 +vt 0.500000 0.560897 +vt 0.500000 0.599359 +vt 0.500000 0.637821 +vt 0.500000 0.641026 +vt 0.500000 0.679487 +vt 0.500000 0.137821 +vt 0.500000 0.176282 +vt 0.500000 0.214744 +vt 0.500000 0.217949 +vt 0.500000 0.256410 +vt 0.364583 0.496795 +vt 0.333333 0.448718 +vt 0.364583 0.419872 +vt 0.364583 0.381410 +vt 0.333333 0.333333 +vt 0.364583 0.304487 +vt 0.333333 0.256410 +vt 0.333333 0.217949 +vt 0.333333 0.179487 +vt 0.364583 0.150641 +vt 0.364583 0.112179 +vt 0.333333 0.679487 +vt 0.333333 0.641026 +vt 0.364583 0.612179 +vt 0.364583 0.573718 +vt 0.364583 0.535256 +vt 0.468750 0.496795 +vt 0.468750 0.477564 +vt 0.468750 0.419872 +vt 0.468750 0.381410 +vt 0.468750 0.362179 +vt 0.468750 0.304487 +vt 0.468750 0.266026 +vt 0.468750 0.246795 +vt 0.468750 0.208333 +vt 0.468750 0.150641 +vt 0.468750 0.112179 +vt 0.468750 0.708333 +vt 0.468750 0.669872 +vt 0.468750 0.612179 +vt 0.468750 0.573718 +vt 0.468750 0.535256 +vt 0.635417 0.272436 +vt 0.635417 0.314103 +vt 0.635417 0.352564 +vt 0.635417 0.391026 +vt 0.635417 0.429487 +vt 0.635417 0.464744 +vt 0.635417 0.506410 +vt 0.635417 0.541667 +vt 0.635417 0.583333 +vt 0.635417 0.618590 +vt 0.635417 0.660256 +vt 0.635417 0.695513 +vt 0.635417 0.118590 +vt 0.635417 0.160256 +vt 0.635417 0.198718 +vt 0.635417 0.237179 +vt 0.264383 0.742557 +vt 0.253086 0.739791 +vt 0.260416 0.743528 +vt 0.256449 0.742557 +vt 0.250839 0.735652 +vt 0.250049 0.730769 +vt 0.250839 0.725887 +vt 0.256449 0.718982 +vt 0.260416 0.718010 +vt 0.264383 0.718982 +vt 0.269994 0.725887 +vt 0.270783 0.730769 +vt 0.269994 0.735652 +vt 0.635417 0.503205 +vt 0.635417 0.464744 +vt 0.635417 0.426282 +vt 0.635417 0.387821 +vt 0.572917 0.333333 +vt 0.635417 0.310897 +vt 0.572917 0.256410 +vt 0.635417 0.233974 +vt 0.572917 0.179487 +vt 0.635417 0.157051 +vt 0.572917 0.102564 +vt 0.572917 0.679487 +vt 0.635417 0.657051 +vt 0.635417 0.618590 +vt 0.635417 0.580128 +vt 0.572917 0.525641 +vt 0.256449 0.742557 +vt 0.253086 0.739791 +vt 0.250839 0.735652 +vt 0.250049 0.730769 +vt 0.250839 0.725887 +vt 0.253086 0.721747 +vt 0.256449 0.718982 +vt 0.264383 0.718982 +vt 0.267746 0.721747 +vt 0.269994 0.725887 +vt 0.269994 0.735652 +vt 0.267746 0.739791 +vt 0.264383 0.742557 +vt 0.739583 0.358974 +vt 0.770833 0.615385 +vt 0.812500 0.410256 +vt 0.697917 0.564103 +vt 0.739583 0.358974 +vt 0.770833 0.615385 +vt 0.812500 0.410256 +vt 0.697917 0.564103 +vt 0.770833 0.615385 +vt 0.739583 0.358974 +vt 0.697917 0.564103 +vt 0.812500 0.410256 +vt 0.770833 0.615385 +vt 0.739583 0.358974 +vt 0.697917 0.564103 +vt 0.812500 0.410256 +vt 0.531250 0.884615 +vt 0.531250 0.884615 +vt 0.468750 0.717949 +vt 0.468750 0.717949 +vt 0.531250 0.884615 +vt 0.531250 0.884615 +vt 0.468750 0.717949 +vt 0.468750 0.717949 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.250000 0.788462 +vt 0.255208 0.743590 +vt 0.286458 0.794872 +vt 0.291667 0.750000 +vt 0.656250 0.814103 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.958333 0.246795 +vt 0.958333 0.282051 +vt 0.859375 0.240385 +vt 0.953125 0.240385 +vt 0.953125 0.144231 +vt 0.854167 0.137821 +vt 0.854167 0.102564 +vt 0.953125 0.625000 +vt 0.859375 0.625000 +vt 0.958333 0.631410 +vt 0.854167 0.666667 +vt 0.953125 0.528846 +vt 0.854167 0.474359 +vt 0.854167 0.522436 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.817708 0.782051 +vt 0.817708 0.801282 +vt 0.822917 0.823718 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.978416 0.907534 +vt 0.988115 0.814775 +vt 0.988115 0.853158 +vt 0.978417 0.984301 +vt 0.988116 0.929924 +vt 0.978416 0.869151 +vt 0.988115 0.776392 +vt 0.988115 0.949116 +vt 0.988115 0.891541 +vt 0.978417 0.792385 +vt 0.988115 0.833967 +vt 0.988115 0.968308 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.726573 0.973477 +vt 0.724675 0.971141 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.916667 0.907051 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.772436 +vt 0.916667 0.945513 +vt 0.916667 0.887821 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.967949 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.822917 0.842949 +vt 0.817708 0.820513 +vt 0.817708 0.801282 +vt 0.822917 0.785256 +vt 0.822917 0.996795 +vt 0.822917 0.977564 +vt 0.817708 0.955128 +vt 0.822917 0.939103 +vt 0.817708 0.916667 +vt 0.817708 0.897436 +vt 0.817708 0.878205 +vt 0.817708 0.858974 +vt 0.822917 0.862179 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.822917 0.804487 +vt 0.817708 0.820513 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.726543 0.925696 +vt 0.732247 0.932717 +vt 0.978416 0.907534 +vt 0.978417 0.811576 +vt 0.988115 0.853158 +vt 0.978417 0.984301 +vt 0.978417 0.926726 +vt 0.988115 0.872350 +vt 0.988115 0.776392 +vt 0.978417 0.945918 +vt 0.988115 0.891541 +vt 0.978417 0.792385 +vt 0.988115 0.833967 +vt 0.988115 0.968308 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.726573 0.962420 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.822917 0.804487 +vt 0.822917 0.823718 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.978416 0.907534 +vt 0.978417 0.811576 +vt 0.988115 0.853158 +vt 0.978417 0.984301 +vt 0.978417 0.926726 +vt 0.978416 0.869151 +vt 0.988115 0.776392 +vt 0.988115 0.949116 +vt 0.988115 0.891541 +vt 0.978417 0.792385 +vt 0.988115 0.833967 +vt 0.988115 0.968308 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.817708 0.935897 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.817708 0.801282 +vt 0.822917 0.823718 +vt 0.822917 0.842949 +vt 0.734335 0.942308 +vt 0.732247 0.951899 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.726543 0.925696 +vt 0.732247 0.932717 +vt 0.988115 0.910733 +vt 0.988115 0.814775 +vt 0.978417 0.849960 +vt 0.978417 0.984301 +vt 0.988116 0.929924 +vt 0.978416 0.869151 +vt 0.988115 0.776392 +vt 0.978417 0.945918 +vt 0.978417 0.888343 +vt 0.978417 0.792385 +vt 0.978417 0.830768 +vt 0.978417 0.965109 +vt 0.765625 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.770833 0.955128 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.734353 0.967949 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.729167 0.974332 +vt 0.822917 0.862179 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.817708 0.782051 +vt 0.817708 0.801282 +vt 0.817708 0.820513 +vt 0.822917 0.842949 +vt 0.734335 0.942308 +vt 0.732247 0.951899 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.726543 0.925696 +vt 0.732247 0.932717 +vt 0.978416 0.907534 +vt 0.978417 0.811576 +vt 0.978417 0.849960 +vt 0.978417 0.984301 +vt 0.978417 0.926726 +vt 0.988115 0.872350 +vt 0.988115 0.776392 +vt 0.988115 0.949116 +vt 0.988115 0.891541 +vt 0.978417 0.792385 +vt 0.988115 0.833967 +vt 0.988115 0.968308 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.955128 +vt 0.726573 0.973477 +vt 0.724675 0.971141 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.978416 0.907534 +vt 0.988115 0.814775 +vt 0.988115 0.853158 +vt 0.978417 0.984301 +vt 0.988116 0.929924 +vt 0.978416 0.869151 +vt 0.988115 0.776392 +vt 0.978417 0.945918 +vt 0.988115 0.891541 +vt 0.978417 0.792385 +vt 0.988115 0.833967 +vt 0.988115 0.968308 +vt 0.770833 0.923077 +vt 0.770833 0.961538 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.916667 0.907051 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.772436 +vt 0.916667 0.945513 +vt 0.916667 0.887821 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.967949 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.822917 0.862179 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.817708 0.782051 +vt 0.817708 0.801282 +vt 0.822917 0.823718 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.978416 0.907534 +vt 0.988115 0.814775 +vt 0.988115 0.853158 +vt 0.978417 0.984301 +vt 0.978417 0.926726 +vt 0.978416 0.869151 +vt 0.988115 0.776392 +vt 0.978417 0.945918 +vt 0.988115 0.891541 +vt 0.978417 0.792385 +vt 0.988115 0.833967 +vt 0.978417 0.965109 +vt 0.765625 0.923077 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.967949 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.770833 0.955128 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.726573 0.962420 +vt 0.729167 0.961565 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.817708 0.801282 +vt 0.822917 0.823718 +vt 0.817708 0.839744 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.988115 0.910733 +vt 0.978417 0.811576 +vt 0.988115 0.853158 +vt 0.988115 0.987499 +vt 0.978417 0.926726 +vt 0.978416 0.869151 +vt 0.988115 0.776392 +vt 0.988115 0.949116 +vt 0.988115 0.891541 +vt 0.978417 0.792385 +vt 0.988115 0.833967 +vt 0.988115 0.968308 +vt 0.765625 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.967949 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.817708 0.974359 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.817708 0.801282 +vt 0.817708 0.820513 +vt 0.822917 0.842949 +vt 0.734335 0.942308 +vt 0.732247 0.951899 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.726543 0.925696 +vt 0.732247 0.932717 +vt 0.988115 0.910733 +vt 0.988115 0.814775 +vt 0.978417 0.849960 +vt 0.978417 0.984301 +vt 0.988116 0.929924 +vt 0.988115 0.872350 +vt 0.988115 0.776392 +vt 0.978417 0.945918 +vt 0.988115 0.891541 +vt 0.988115 0.795583 +vt 0.988115 0.833967 +vt 0.978417 0.965109 +vt 0.765625 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.770833 0.955128 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.734353 0.967949 +vt 0.733658 0.971141 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.822917 0.958333 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.817708 0.782051 +vt 0.817708 0.801282 +vt 0.817708 0.820513 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.710957 0.925696 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.978416 0.907534 +vt 0.978417 0.811576 +vt 0.978417 0.849960 +vt 0.978417 0.984301 +vt 0.978417 0.926726 +vt 0.978416 0.869151 +vt 0.988115 0.776392 +vt 0.978417 0.945918 +vt 0.988115 0.891541 +vt 0.978417 0.792385 +vt 0.988115 0.833967 +vt 0.988115 0.968308 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.987179 +vt 0.770833 0.948718 +vt 0.726573 0.973477 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.187500 0.102564 +vt 0.062500 0.153846 +vt 0.062500 0.102564 +vt 0.187500 0.410256 +vt 0.062500 0.461538 +vt 0.062500 0.410256 +vt 0.187500 0.564103 +vt 0.062500 0.615385 +vt 0.062500 0.564103 +vt 0.187500 0.871795 +vt 0.062500 0.923077 +vt 0.062500 0.871795 +vt 0.187500 0.512821 +vt 0.062500 0.512821 +vt 0.229167 0.320513 +vt 0.187500 0.358974 +vt 0.187500 0.307692 +vt 0.229167 0.397436 +vt 0.229167 0.423077 +vt 0.187500 0.461538 +vt 0.229167 0.500000 +vt 0.229167 0.525641 +vt 0.229167 0.576923 +vt 0.187500 0.615385 +vt 0.229167 0.628205 +vt 0.187500 0.666667 +vt 0.229167 0.705128 +vt 0.187500 0.717949 +vt 0.229167 0.756410 +vt 0.187500 0.769231 +vt 0.229167 0.807692 +vt 0.187500 0.820513 +vt 0.229167 0.833333 +vt 0.229167 0.884615 +vt 0.187500 0.923077 +vt 0.229167 0.141026 +vt 0.187500 0.153846 +vt 0.229167 0.166667 +vt 0.187500 0.205128 +vt 0.229167 0.217949 +vt 0.187500 0.256410 +vt 0.229167 0.294872 +vt 0.062500 0.358974 +vt 0.020833 0.397436 +vt 0.020833 0.371795 +vt 0.020833 0.448718 +vt 0.020833 0.423077 +vt 0.020833 0.500000 +vt 0.020833 0.474359 +vt 0.020833 0.525641 +vt 0.020833 0.576923 +vt 0.062500 0.666667 +vt 0.020833 0.628205 +vt 0.062500 0.717949 +vt 0.020833 0.679487 +vt 0.062500 0.769231 +vt 0.020833 0.730769 +vt 0.020833 0.807692 +vt 0.020833 0.782051 +vt 0.062500 0.820513 +vt 0.020833 0.858974 +vt 0.020833 0.833333 +vt 0.020833 0.884615 +vt 0.020833 0.141026 +vt 0.020833 0.115385 +vt 0.020833 0.192308 +vt 0.020833 0.166667 +vt 0.062500 0.256410 +vt 0.020833 0.217949 +vt 0.062500 0.205128 +vt 0.020833 0.294872 +vt 0.020833 0.269231 +vt 0.020833 0.320513 +vt 0.062500 0.307692 +vt 0.250000 0.346154 +vt 0.229167 0.346154 +vt 0.229167 0.782051 +vt 0.250000 0.807692 +vt 0.229167 0.371795 +vt 0.250000 0.397436 +vt 0.229167 0.858974 +vt 0.250000 0.833333 +vt 0.250000 0.858974 +vt 0.250000 0.448718 +vt 0.229167 0.448718 +vt 0.250000 0.910256 +vt 0.229167 0.910256 +vt 0.250000 0.551282 +vt 0.229167 0.551282 +vt 0.229167 0.474359 +vt 0.250000 0.500000 +vt 0.229167 0.115385 +vt 0.250000 0.141026 +vt 0.250000 0.602564 +vt 0.229167 0.602564 +vt 0.250000 0.192308 +vt 0.229167 0.192308 +vt 0.250000 0.653846 +vt 0.229167 0.653846 +vt 0.250000 0.243590 +vt 0.229167 0.243590 +vt 0.229167 0.679487 +vt 0.250000 0.705128 +vt 0.229167 0.269231 +vt 0.250000 0.294872 +vt 0.229167 0.730769 +vt 0.250000 0.756410 +vt 0.020833 0.653846 +vt -0.000000 0.628205 +vt 0.020833 0.243590 +vt 0.000000 0.217949 +vt 0.020833 0.705128 +vt 0.000000 0.679487 +vt 0.000000 0.269231 +vt 0.020833 0.756410 +vt 0.000000 0.730769 +vt 0.020833 0.346154 +vt 0.000000 0.320513 +vt 0.000000 0.782051 +vt 0.000000 0.371795 +vt -0.000000 0.858974 +vt -0.000000 0.833333 +vt 0.000000 0.423077 +vt 0.020833 0.910256 +vt -0.000000 0.884615 +vt 0.020833 0.551282 +vt 0.000000 0.525641 +vt 0.000000 0.474359 +vt -0.000000 0.115385 +vt 0.020833 0.602564 +vt 0.000000 0.576923 +vt -0.000000 0.166667 +vt 0.276042 0.410256 +vt 0.276042 0.371795 +vt 0.276042 0.448718 +vt 0.276042 0.487179 +vt 0.276042 0.525641 +vt 0.276042 0.564103 +vt 0.276042 0.602564 +vt 0.276042 0.641026 +vt 0.276042 0.679487 +vt 0.276042 0.717949 +vt 0.276042 0.102564 +vt 0.276042 0.141026 +vt 0.276042 0.217949 +vt 0.276042 0.179487 +vt 0.276042 0.256410 +vt 0.276042 0.294872 +vt 0.276042 0.333333 +vt 0.317708 0.294872 +vt 0.317708 0.333333 +vt 0.317708 0.371795 +vt 0.317708 0.410256 +vt 0.317708 0.448718 +vt 0.317708 0.487179 +vt 0.317708 0.525641 +vt 0.317708 0.564103 +vt 0.317708 0.602564 +vt 0.317708 0.641026 +vt 0.317708 0.679487 +vt 0.317708 0.102564 +vt 0.317708 0.141026 +vt 0.317708 0.179487 +vt 0.317708 0.217949 +vt 0.317708 0.256410 +vt 0.317708 0.410256 +vt 0.317708 0.448718 +vt 0.317708 0.371795 +vt 0.317708 0.333333 +vt 0.317708 0.294872 +vt 0.317708 0.256410 +vt 0.317708 0.217949 +vt 0.317708 0.179487 +vt 0.317708 0.102564 +vt 0.317708 0.141026 +vt 0.317708 0.717949 +vt 0.317708 0.679487 +vt 0.317708 0.641026 +vt 0.317708 0.602564 +vt 0.317708 0.564103 +vt 0.317708 0.525641 +vt 0.317708 0.487179 +vt 0.276042 0.525641 +vt 0.276042 0.487179 +vt 0.276042 0.448718 +vt 0.276042 0.410256 +vt 0.276042 0.371795 +vt 0.276042 0.333333 +vt 0.276042 0.294872 +vt 0.276042 0.256410 +vt 0.276042 0.217949 +vt 0.276042 0.179487 +vt 0.276042 0.141026 +vt 0.276042 0.717949 +vt 0.276042 0.679487 +vt 0.276042 0.641026 +vt 0.276042 0.602564 +vt 0.276042 0.564103 +vt 0.276042 0.102564 +vt 0.364583 0.198718 +vt 0.468750 0.217949 +vt 0.364583 0.217949 +vt 0.364583 0.371795 +vt 0.468750 0.391026 +vt 0.364583 0.391026 +vt 0.468750 0.237179 +vt 0.364583 0.237179 +vt 0.468750 0.410256 +vt 0.364583 0.410256 +vt 0.364583 0.256410 +vt 0.468750 0.275641 +vt 0.364583 0.275641 +vt 0.468750 0.256410 +vt 0.364583 0.102564 +vt 0.468750 0.121795 +vt 0.364583 0.121795 +vt 0.468750 0.294872 +vt 0.364583 0.294872 +vt 0.468750 0.141026 +vt 0.364583 0.141026 +vt 0.468750 0.314103 +vt 0.364583 0.314103 +vt 0.468750 0.160256 +vt 0.364583 0.160256 +vt 0.468750 0.333333 +vt 0.364583 0.333333 +vt 0.468750 0.179487 +vt 0.364583 0.179487 +vt 0.468750 0.352564 +vt 0.364583 0.352564 +vt 0.468750 0.198718 +vt 0.468750 0.371795 +vt 0.515625 0.371795 +vt 0.515625 0.448718 +vt 0.515625 0.410256 +vt 0.515625 0.487179 +vt 0.515625 0.525641 +vt 0.515625 0.564103 +vt 0.515625 0.602564 +vt 0.515625 0.641026 +vt 0.515625 0.679487 +vt 0.515625 0.717949 +vt 0.515625 0.102564 +vt 0.515625 0.141026 +vt 0.515625 0.179487 +vt 0.515625 0.217949 +vt 0.515625 0.256410 +vt 0.515625 0.294872 +vt 0.515625 0.333333 +vt 0.557292 0.294872 +vt 0.557292 0.333333 +vt 0.557292 0.371795 +vt 0.557292 0.410256 +vt 0.557292 0.448718 +vt 0.557292 0.487179 +vt 0.557292 0.525641 +vt 0.557292 0.564103 +vt 0.557292 0.602564 +vt 0.557292 0.641026 +vt 0.557292 0.679487 +vt 0.557292 0.102564 +vt 0.557292 0.141026 +vt 0.557292 0.179487 +vt 0.557292 0.217949 +vt 0.557292 0.256410 +vt 0.557292 0.410256 +vt 0.557292 0.448718 +vt 0.557292 0.371795 +vt 0.557292 0.333333 +vt 0.557292 0.294872 +vt 0.557292 0.256410 +vt 0.557292 0.217949 +vt 0.557292 0.179487 +vt 0.557292 0.141026 +vt 0.557292 0.102564 +vt 0.557292 0.679487 +vt 0.557292 0.717949 +vt 0.557292 0.602564 +vt 0.557292 0.641026 +vt 0.557292 0.564103 +vt 0.557292 0.525641 +vt 0.557292 0.487179 +vt 0.515625 0.525641 +vt 0.515625 0.487179 +vt 0.515625 0.448718 +vt 0.515625 0.410256 +vt 0.515625 0.371795 +vt 0.515625 0.333333 +vt 0.515625 0.294872 +vt 0.515625 0.256410 +vt 0.515625 0.217949 +vt 0.515625 0.179487 +vt 0.515625 0.141026 +vt 0.515625 0.717949 +vt 0.515625 0.679487 +vt 0.515625 0.641026 +vt 0.515625 0.602564 +vt 0.515625 0.564103 +vt 0.515625 0.102564 +vt 0.364583 0.121795 +vt 0.468750 0.141026 +vt 0.364583 0.141026 +vt 0.364583 0.275641 +vt 0.468750 0.294872 +vt 0.364583 0.294872 +vt 0.364583 0.102564 +vt 0.468750 0.121795 +vt 0.364583 0.237179 +vt 0.468750 0.256410 +vt 0.364583 0.256410 +vt 0.468750 0.275641 +vt 0.364583 0.391026 +vt 0.468750 0.410256 +vt 0.364583 0.410256 +vt 0.364583 0.217949 +vt 0.468750 0.237179 +vt 0.364583 0.371795 +vt 0.468750 0.391026 +vt 0.364583 0.198718 +vt 0.468750 0.217949 +vt 0.364583 0.352564 +vt 0.468750 0.371795 +vt 0.364583 0.179487 +vt 0.468750 0.198718 +vt 0.364583 0.333333 +vt 0.468750 0.352564 +vt 0.364583 0.160256 +vt 0.468750 0.179487 +vt 0.364583 0.314103 +vt 0.468750 0.333333 +vt 0.468750 0.160256 +vt 0.468750 0.314103 +vt 0.645833 0.538462 +vt 0.635417 0.535256 +vt 0.645833 0.535256 +vt 0.645833 0.541667 +vt 0.635417 0.538462 +vt 0.645833 0.564103 +vt 0.635417 0.560897 +vt 0.645833 0.560897 +vt 0.635417 0.532051 +vt 0.645833 0.532051 +vt 0.635417 0.557692 +vt 0.645833 0.557692 +vt 0.635417 0.528846 +vt 0.645833 0.528846 +vt 0.635417 0.554487 +vt 0.645833 0.554487 +vt 0.635417 0.525641 +vt 0.645833 0.525641 +vt 0.635417 0.551282 +vt 0.645833 0.551282 +vt 0.635417 0.522436 +vt 0.645833 0.522436 +vt 0.635417 0.548077 +vt 0.645833 0.548077 +vt 0.635417 0.519231 +vt 0.645833 0.519231 +vt 0.635417 0.544872 +vt 0.645833 0.544872 +vt 0.635417 0.516026 +vt 0.645833 0.516026 +vt 0.635417 0.541667 +vt 0.635417 0.512821 +vt 0.645833 0.512821 +vt 0.645833 0.522436 +vt 0.635417 0.519231 +vt 0.645833 0.519231 +vt 0.645833 0.551282 +vt 0.635417 0.548077 +vt 0.645833 0.548077 +vt 0.645833 0.525641 +vt 0.635417 0.522436 +vt 0.645833 0.554487 +vt 0.635417 0.551282 +vt 0.645833 0.528846 +vt 0.635417 0.525641 +vt 0.645833 0.557692 +vt 0.635417 0.554487 +vt 0.645833 0.532051 +vt 0.635417 0.528846 +vt 0.645833 0.560897 +vt 0.635417 0.557692 +vt 0.645833 0.535256 +vt 0.635417 0.532051 +vt 0.645833 0.564103 +vt 0.635417 0.560897 +vt 0.645833 0.541667 +vt 0.635417 0.538462 +vt 0.645833 0.538462 +vt 0.635417 0.535256 +vt 0.645833 0.516026 +vt 0.635417 0.512821 +vt 0.645833 0.512821 +vt 0.645833 0.544872 +vt 0.635417 0.541667 +vt 0.635417 0.516026 +vt 0.635417 0.544872 +vt 0.468750 0.554487 +vt 0.364583 0.583333 +vt 0.364583 0.554487 +vt 0.468750 0.814103 +vt 0.364583 0.842949 +vt 0.364583 0.814103 +vt 0.468750 0.583333 +vt 0.364583 0.612179 +vt 0.468750 0.842949 +vt 0.364583 0.871795 +vt 0.468750 0.641026 +vt 0.364583 0.669872 +vt 0.364583 0.641026 +vt 0.468750 0.612179 +vt 0.468750 0.410256 +vt 0.364583 0.439103 +vt 0.364583 0.410256 +vt 0.468750 0.669872 +vt 0.364583 0.698718 +vt 0.468750 0.439103 +vt 0.364583 0.467949 +vt 0.468750 0.698718 +vt 0.364583 0.727564 +vt 0.468750 0.467949 +vt 0.364583 0.496795 +vt 0.468750 0.727564 +vt 0.364583 0.756410 +vt 0.468750 0.525641 +vt 0.364583 0.525641 +vt 0.468750 0.756410 +vt 0.364583 0.785256 +vt 0.468750 0.785256 +vt 0.364583 0.727564 +vt 0.468750 0.698718 +vt 0.468750 0.727564 +vt 0.364583 0.467949 +vt 0.468750 0.439103 +vt 0.468750 0.467949 +vt 0.364583 0.698718 +vt 0.468750 0.669872 +vt 0.364583 0.439103 +vt 0.468750 0.410256 +vt 0.364583 0.641026 +vt 0.468750 0.612179 +vt 0.468750 0.641026 +vt 0.364583 0.669872 +vt 0.364583 0.871795 +vt 0.468750 0.842949 +vt 0.468750 0.871795 +vt 0.364583 0.612179 +vt 0.468750 0.583333 +vt 0.364583 0.842949 +vt 0.468750 0.814103 +vt 0.364583 0.583333 +vt 0.468750 0.554487 +vt 0.364583 0.814103 +vt 0.468750 0.785256 +vt 0.364583 0.554487 +vt 0.468750 0.525641 +vt 0.364583 0.756410 +vt 0.468750 0.756410 +vt 0.364583 0.525641 +vt 0.468750 0.496795 +vt 0.364583 0.496795 +vt 0.497396 0.948718 +vt 0.520833 0.942308 +vt 0.520833 0.948718 +vt 0.354167 0.961538 +vt 0.401042 0.955128 +vt 0.401042 0.961538 +vt 0.497396 0.955128 +vt 0.520833 0.955128 +vt 0.401042 0.948718 +vt 0.354167 0.942308 +vt 0.401042 0.942308 +vt 0.497396 0.935897 +vt 0.520833 0.935897 +vt 0.354167 0.955128 +vt 0.520833 0.961538 +vt 0.471354 0.942308 +vt 0.497396 0.942308 +vt 0.471354 0.948718 +vt 0.471354 0.961538 +vt 0.497396 0.961538 +vt 0.440104 0.942308 +vt 0.471354 0.935897 +vt 0.471354 0.955128 +vt 0.440104 0.948718 +vt 0.440104 0.961538 +vt 0.401042 0.935897 +vt 0.440104 0.935897 +vt 0.440104 0.955128 +vt 0.354167 0.916667 +vt 0.377604 0.910256 +vt 0.377604 0.916667 +vt 0.377604 0.923077 +vt 0.354167 0.929487 +vt 0.377604 0.929487 +vt 0.354167 0.935897 +vt 0.377604 0.935897 +vt 0.520833 0.916667 +vt 0.473958 0.910256 +vt 0.520833 0.910256 +vt 0.473958 0.923077 +vt 0.520833 0.923077 +vt 0.473958 0.929487 +vt 0.520833 0.929487 +vt 0.520833 0.935897 +vt 0.434896 0.916667 +vt 0.473958 0.916667 +vt 0.434896 0.923077 +vt 0.434896 0.929487 +vt 0.473958 0.935897 +vt 0.403646 0.910256 +vt 0.434896 0.910256 +vt 0.403646 0.923077 +vt 0.434896 0.935897 +vt 0.403646 0.929487 +vt 0.403646 0.916667 +vt 0.403646 0.935897 +vt 0.609375 0.884615 +vt 0.656250 0.891026 +vt 0.609375 0.891026 +vt 0.609375 0.897436 +vt 0.656250 0.897436 +vt 0.656250 0.903846 +vt 0.609375 0.903846 +vt 0.656250 0.910256 +vt 0.609375 0.910256 +vt 0.354167 0.884615 +vt 0.401042 0.891026 +vt 0.354167 0.891026 +vt 0.401042 0.897436 +vt 0.354167 0.897436 +vt 0.401042 0.903846 +vt 0.354167 0.903846 +vt 0.354167 0.910256 +vt 0.401042 0.910256 +vt 0.484375 0.884615 +vt 0.484375 0.891026 +vt 0.484375 0.897436 +vt 0.484375 0.903846 +vt 0.484375 0.910256 +vt 0.526042 0.891026 +vt 0.526042 0.897436 +vt 0.526042 0.903846 +vt 0.526042 0.910256 +vt 0.526042 0.884615 +vt 0.854167 0.769231 +vt 0.958333 0.721154 +vt 0.958333 0.769231 +vt 0.854167 0.336538 +vt 0.958333 0.336538 +vt 0.854167 0.721154 +vt 0.958333 0.192308 +vt 0.958333 0.576923 +vt 0.854167 0.192308 +vt 0.854167 0.576923 +vt 0.958333 0.048077 +vt 0.958333 0.432692 +vt 0.854167 0.048077 +vt 0.958333 -0.000000 +vt 0.854167 0.384615 +vt 0.958333 0.384615 +vt 0.854167 0.432692 +vt 0.812500 0.759615 +vt 0.812500 0.682692 +vt 0.812500 0.634615 +vt 0.812500 0.615385 +vt 0.812500 0.538462 +vt 0.812500 0.490385 +vt 0.812500 0.471154 +vt 0.812500 0.394231 +vt 0.812500 0.375000 +vt 0.812500 0.326923 +vt 0.812500 0.278846 +vt 0.812500 0.230769 +vt 0.812500 0.153846 +vt 0.812500 0.134615 +vt 0.812500 0.086538 +vt 0.812500 0.038462 +vt 0.854167 -0.000000 +vt 0.674546 0.791749 +vt 0.762954 0.791749 +vt 0.762954 0.900559 +vt 1.000000 0.038462 +vt 1.000000 0.759615 +vt 1.000000 0.682692 +vt 1.000000 0.711538 +vt 1.000000 0.634615 +vt 1.000000 0.663462 +vt 1.000000 0.586538 +vt 1.000000 0.615385 +vt 1.000000 0.538462 +vt 1.000000 0.567308 +vt 1.000000 0.490385 +vt 1.000000 0.519231 +vt 1.000000 0.471154 +vt 1.000000 0.423077 +vt 1.000000 0.375000 +vt 1.000000 0.326923 +vt 1.000000 0.278846 +vt 1.000000 0.230769 +vt 1.000000 0.153846 +vt 1.000000 0.182692 +vt 1.000000 0.134615 +vt 1.000000 0.086538 +vt 0.718750 0.769213 +vt 0.781264 0.846154 +vt 0.718750 0.923094 +vt 0.918169 0.849960 +vt 0.901042 0.865385 +vt 0.901042 0.846154 +vt 0.918169 0.881946 +vt 0.901042 0.884615 +vt 0.918169 0.888343 +vt 0.901042 0.903846 +vt 0.918169 0.920329 +vt 0.901042 0.923077 +vt 0.918169 0.926726 +vt 0.901042 0.942308 +vt 0.918169 0.958712 +vt 0.901042 0.961538 +vt 0.918169 0.965109 +vt 0.901042 0.980769 +vt 0.918169 0.984301 +vt 0.901042 1.000000 +vt 0.918169 0.773193 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.918169 0.805179 +vt 0.901042 0.807692 +vt 0.918169 0.824371 +vt 0.901042 0.826923 +vt 0.918169 0.830768 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.846154 +vt 0.838542 0.826923 +vt 0.838542 0.961538 +vt 0.838542 0.923077 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.865385 +vt 0.838542 0.980769 +vt 0.838542 0.769231 +vt 0.838542 1.000000 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.772436 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.830128 +vt 0.918169 0.811576 +vt 0.918169 0.862754 +vt 0.918169 0.997095 +vt 0.918169 0.939520 +vt 0.918169 0.869151 +vt 0.918169 0.785987 +vt 0.918169 0.945918 +vt 0.918169 0.901137 +vt 0.918169 0.792385 +vt 0.918169 0.843562 +vt 0.918169 0.977903 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.869792 0.826923 +vt 0.869792 0.865385 +vt 0.869792 0.980769 +vt 0.869792 1.000000 +vt 0.869792 0.923077 +vt 0.869792 0.942308 +vt 0.869792 0.884615 +vt 0.869792 0.769231 +vt 0.869792 0.788462 +vt 0.869792 0.961538 +vt 0.869792 0.903846 +vt 0.869792 0.807692 +vt 0.869792 0.846154 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.671875 0.535256 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.666667 0.528846 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.687500 0.740385 +vt 0.692708 0.746795 +vt 0.687500 0.746795 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.666667 0.753205 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.682292 0.756410 +vt 0.692708 0.750000 +vt 0.687500 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.743590 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.666667 0.525641 +vt 0.661458 0.512821 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.525641 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.666667 0.528846 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.692708 0.743590 +vt 0.687500 0.746795 +vt 0.687500 0.740385 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.666667 0.753205 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.692708 0.746795 +vt 0.697917 0.746795 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.666667 0.528846 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.687500 0.740385 +vt 0.692708 0.746795 +vt 0.687500 0.746795 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.666667 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.743590 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.666667 0.528846 +vt 0.671875 0.525641 +vt 0.682292 0.525641 +vt 0.677083 0.525641 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.692708 0.743590 +vt 0.687500 0.746795 +vt 0.687500 0.740385 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.692708 0.746795 +vt 0.666667 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.666667 0.525641 +vt 0.661458 0.512821 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.525641 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.671875 0.535256 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.661458 0.532051 +vt 0.666667 0.528846 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.692708 0.743590 +vt 0.687500 0.746795 +vt 0.687500 0.740385 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.666667 0.753205 +vt 0.661458 0.750000 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.692708 0.746795 +vt 0.677083 0.756410 +vt 0.697917 0.746795 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.666667 0.528846 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.687500 0.740385 +vt 0.692708 0.746795 +vt 0.687500 0.746795 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.666667 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.743590 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.769231 +vt 0.687500 0.769231 +vt 0.692708 0.756410 +vt 0.697917 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.666667 0.528846 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.687500 0.740385 +vt 0.692708 0.746795 +vt 0.687500 0.746795 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.666667 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.743590 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.666667 0.756410 +vt 0.661458 0.769231 +vt 0.661458 0.756410 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.769231 +vt 0.687500 0.769231 +vt 0.692708 0.756410 +vt 0.697917 0.769231 +vt 0.666667 0.769231 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.538462 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.666667 0.528846 +vt 0.671875 0.525641 +vt 0.682292 0.525641 +vt 0.661458 0.535256 +vt 0.677083 0.525641 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.692708 0.743590 +vt 0.687500 0.746795 +vt 0.687500 0.740385 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.666667 0.753205 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.692708 0.746795 +vt 0.697917 0.746795 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.769231 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.756410 +vt 0.697917 0.756410 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.520833 0.942308 +vt 0.497396 0.948718 +vt 0.520833 0.948718 +vt 0.401042 0.955128 +vt 0.354167 0.961538 +vt 0.401042 0.961538 +vt 0.497396 0.955128 +vt 0.520833 0.955128 +vt 0.401042 0.948718 +vt 0.354167 0.942308 +vt 0.354167 0.948718 +vt 0.520833 0.935897 +vt 0.497396 0.942308 +vt 0.354167 0.955128 +vt 0.520833 0.961538 +vt 0.497396 0.961538 +vt 0.497396 0.935897 +vt 0.471354 0.942308 +vt 0.471354 0.948718 +vt 0.471354 0.955128 +vt 0.471354 0.961538 +vt 0.471354 0.935897 +vt 0.440104 0.942308 +vt 0.440104 0.948718 +vt 0.440104 0.955128 +vt 0.440104 0.961538 +vt 0.440104 0.935897 +vt 0.401042 0.942308 +vt 0.401042 0.935897 +vt 0.377604 0.910256 +vt 0.354167 0.916667 +vt 0.377604 0.916667 +vt 0.377604 0.923077 +vt 0.354167 0.923077 +vt 0.354167 0.929487 +vt 0.377604 0.929487 +vt 0.354167 0.935897 +vt 0.377604 0.935897 +vt 0.520833 0.916667 +vt 0.473958 0.910256 +vt 0.473958 0.916667 +vt 0.473958 0.923077 +vt 0.520833 0.923077 +vt 0.473958 0.929487 +vt 0.520833 0.929487 +vt 0.520833 0.935897 +vt 0.473958 0.935897 +vt 0.434896 0.916667 +vt 0.434896 0.923077 +vt 0.434896 0.929487 +vt 0.434896 0.935897 +vt 0.403646 0.910256 +vt 0.403646 0.916667 +vt 0.403646 0.923077 +vt 0.403646 0.929487 +vt 0.403646 0.935897 +vt 0.656250 0.891026 +vt 0.609375 0.884615 +vt 0.609375 0.891026 +vt 0.609375 0.897436 +vt 0.656250 0.903846 +vt 0.609375 0.903846 +vt 0.656250 0.910256 +vt 0.609375 0.910256 +vt 0.401042 0.891026 +vt 0.354167 0.884615 +vt 0.354167 0.891026 +vt 0.401042 0.897436 +vt 0.354167 0.897436 +vt 0.401042 0.903846 +vt 0.354167 0.903846 +vt 0.354167 0.910256 +vt 0.484375 0.884615 +vt 0.401042 0.884615 +vt 0.484375 0.897436 +vt 0.484375 0.903846 +vt 0.401042 0.910256 +vt 0.526042 0.891026 +vt 0.484375 0.891026 +vt 0.526042 0.903846 +vt 0.526042 0.910256 +vt 0.484375 0.910256 +vt 0.526042 0.884615 +vt 0.526042 0.897436 +vt 0.781250 0.791667 +vt 0.781250 0.887821 +vt 0.781250 0.945513 +vt 0.781250 0.772436 +vt 0.781250 0.868590 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.849359 +vt 0.781250 0.810897 +vt 0.781250 0.907051 +vt 0.781250 0.964744 +vt 0.838542 0.826923 +vt 0.838542 0.807692 +vt 0.838542 0.788462 +vt 0.838542 0.769231 +vt 0.838542 1.000000 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.942308 +vt 0.838542 0.923077 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.901042 0.884615 +vt 0.901042 0.865385 +vt 0.901042 0.942308 +vt 0.901042 0.923077 +vt 0.901042 1.000000 +vt 0.901042 0.980769 +vt 0.901042 0.846154 +vt 0.901042 0.826923 +vt 0.901042 0.807692 +vt 0.901042 0.903846 +vt 0.901042 0.961538 +vt 0.918169 0.830768 +vt 0.918169 0.824371 +vt 0.918169 0.805179 +vt 0.918169 0.773193 +vt 0.918169 0.984301 +vt 0.918169 0.965109 +vt 0.918169 0.958712 +vt 0.918169 0.926726 +vt 0.918169 0.907534 +vt 0.918169 0.888343 +vt 0.918169 0.869151 +vt 0.918169 0.849960 +vt 0.526042 0.903846 +vt 0.609375 0.910256 +vt 0.526042 0.910256 +vt 0.609375 0.897436 +vt 0.609375 0.903846 +vt 0.526042 0.897436 +vt 0.609375 0.891026 +vt 0.526042 0.884615 +vt 0.526042 0.891026 +vt 0.484375 0.903846 +vt 0.484375 0.910256 +vt 0.484375 0.897436 +vt 0.484375 0.884615 +vt 0.484375 0.891026 +vt 0.401042 0.910256 +vt 0.401042 0.897436 +vt 0.401042 0.903846 +vt 0.401042 0.891026 +vt 0.354167 0.910256 +vt 0.354167 0.897436 +vt 0.354167 0.903846 +vt 0.354167 0.891026 +vt 0.354167 0.884615 +vt 0.656250 0.910256 +vt 0.656250 0.903846 +vt 0.656250 0.891026 +vt 0.656250 0.897436 +vt 0.609375 0.884615 +vt 0.403646 0.935897 +vt 0.377604 0.929487 +vt 0.403646 0.929487 +vt 0.377604 0.923077 +vt 0.403646 0.923077 +vt 0.403646 0.916667 +vt 0.377604 0.910256 +vt 0.403646 0.910256 +vt 0.434896 0.935897 +vt 0.434896 0.929487 +vt 0.434896 0.923077 +vt 0.434896 0.916667 +vt 0.434896 0.910256 +vt 0.473958 0.935897 +vt 0.473958 0.929487 +vt 0.473958 0.923077 +vt 0.473958 0.916667 +vt 0.473958 0.910256 +vt 0.520833 0.935897 +vt 0.520833 0.929487 +vt 0.520833 0.923077 +vt 0.520833 0.916667 +vt 0.520833 0.910256 +vt 0.354167 0.935897 +vt 0.377604 0.935897 +vt 0.354167 0.929487 +vt 0.354167 0.916667 +vt 0.377604 0.916667 +vt 0.354167 0.942308 +vt 0.401042 0.935897 +vt 0.401042 0.942308 +vt 0.401042 0.961538 +vt 0.440104 0.955128 +vt 0.440104 0.961538 +vt 0.401042 0.955128 +vt 0.440104 0.948718 +vt 0.440104 0.942308 +vt 0.440104 0.935897 +vt 0.471354 0.955128 +vt 0.471354 0.961538 +vt 0.471354 0.948718 +vt 0.471354 0.942308 +vt 0.471354 0.935897 +vt 0.497396 0.955128 +vt 0.497396 0.961538 +vt 0.497396 0.948718 +vt 0.497396 0.942308 +vt 0.497396 0.935897 +vt 0.520833 0.961538 +vt 0.520833 0.955128 +vt 0.354167 0.955128 +vt 0.401042 0.948718 +vt 0.520833 0.942308 +vt 0.520833 0.935897 +vt 0.520833 0.948718 +vt 0.354167 0.961538 +vt 0.901042 0.846154 +vt 0.918169 0.862754 +vt 0.901042 0.865385 +vt 0.918169 0.869151 +vt 0.901042 0.884615 +vt 0.918169 0.888343 +vt 0.901042 0.903846 +vt 0.918169 0.907534 +vt 0.901042 0.923077 +vt 0.918169 0.926726 +vt 0.901042 0.942308 +vt 0.918169 0.945918 +vt 0.901042 0.961538 +vt 0.918169 0.977903 +vt 0.901042 0.980769 +vt 0.918169 0.984301 +vt 0.901042 1.000000 +vt 0.901042 0.769231 +vt 0.918169 0.785987 +vt 0.901042 0.788462 +vt 0.918169 0.792385 +vt 0.901042 0.807692 +vt 0.918169 0.824371 +vt 0.901042 0.826923 +vt 0.918169 0.843562 +vt 0.838542 0.961538 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.923077 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.838542 0.980769 +vt 0.838542 0.769231 +vt 0.838542 1.000000 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.858974 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.830128 +vt 0.918169 0.811576 +vt 0.918169 0.997095 +vt 0.918169 0.939520 +vt 0.918169 0.881946 +vt 0.918169 0.958712 +vt 0.918169 0.901137 +vt 0.918169 0.805179 +vt 0.918169 0.830768 +vt 0.918169 0.965109 +vt 0.918169 0.920329 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.955128 +vt 0.781250 0.958333 +vt 0.781250 0.923077 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.929487 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.918169 0.849960 +vt 0.901042 0.865385 +vt 0.901042 0.846154 +vt 0.918169 0.869151 +vt 0.901042 0.884615 +vt 0.918169 0.901137 +vt 0.901042 0.903846 +vt 0.918169 0.920329 +vt 0.901042 0.923077 +vt 0.918169 0.926726 +vt 0.901042 0.942308 +vt 0.918169 0.958712 +vt 0.901042 0.961538 +vt 0.918169 0.965109 +vt 0.901042 0.980769 +vt 0.918169 0.984301 +vt 0.901042 1.000000 +vt 0.918169 0.773193 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.918169 0.792385 +vt 0.901042 0.807692 +vt 0.918169 0.824371 +vt 0.901042 0.826923 +vt 0.918169 0.830768 +vt 0.838542 0.942308 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.961538 +vt 0.838542 0.807692 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.838542 0.980769 +vt 0.838542 0.923077 +vt 0.838542 0.769231 +vt 0.838542 1.000000 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.897436 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.830128 +vt 0.918169 0.811576 +vt 0.918169 0.862754 +vt 0.918169 0.997095 +vt 0.918169 0.939520 +vt 0.918169 0.881946 +vt 0.918169 0.785987 +vt 0.918169 0.888343 +vt 0.918169 0.805179 +vt 0.918169 0.843562 +vt 0.918169 0.977903 +vt 0.734375 0.980769 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 0.974359 +vt 0.734375 0.942308 +vt 0.734375 0.955128 +vt 0.734375 1.000000 +vt 0.781250 0.974359 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.980769 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.901042 0.846154 +vt 0.918169 0.862754 +vt 0.901042 0.865385 +vt 0.918169 0.869151 +vt 0.901042 0.884615 +vt 0.918169 0.888343 +vt 0.901042 0.903846 +vt 0.918169 0.907534 +vt 0.901042 0.923077 +vt 0.918169 0.926726 +vt 0.901042 0.942308 +vt 0.918169 0.945918 +vt 0.901042 0.961538 +vt 0.918169 0.965109 +vt 0.901042 0.980769 +vt 0.918169 0.984301 +vt 0.901042 1.000000 +vt 0.901042 0.769231 +vt 0.918169 0.785987 +vt 0.901042 0.788462 +vt 0.918169 0.805179 +vt 0.901042 0.807692 +vt 0.918169 0.824371 +vt 0.901042 0.826923 +vt 0.918169 0.843562 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.846154 +vt 0.838542 0.923077 +vt 0.838542 0.865385 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.858974 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.801282 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.918169 0.811576 +vt 0.918169 0.849960 +vt 0.918169 0.997095 +vt 0.918169 0.939520 +vt 0.918169 0.881946 +vt 0.918169 0.773193 +vt 0.918169 0.958712 +vt 0.918169 0.901137 +vt 0.918169 0.977903 +vt 0.918169 0.920329 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 0.942308 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.993590 +vt 0.781250 0.996795 +vt 0.918169 0.849960 +vt 0.901042 0.865385 +vt 0.901042 0.846154 +vt 0.918169 0.869151 +vt 0.901042 0.884615 +vt 0.918169 0.901137 +vt 0.901042 0.903846 +vt 0.918169 0.920329 +vt 0.901042 0.923077 +vt 0.918169 0.926726 +vt 0.901042 0.942308 +vt 0.918169 0.958712 +vt 0.901042 0.961538 +vt 0.918169 0.965109 +vt 0.901042 0.980769 +vt 0.918169 0.984301 +vt 0.901042 1.000000 +vt 0.918169 0.773193 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.918169 0.792385 +vt 0.901042 0.807692 +vt 0.918169 0.824371 +vt 0.901042 0.826923 +vt 0.918169 0.830768 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.961538 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.838542 0.980769 +vt 0.838542 0.923077 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.878205 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.918169 0.862754 +vt 0.918169 0.997095 +vt 0.918169 0.939520 +vt 0.918169 0.881946 +vt 0.918169 0.785987 +vt 0.918169 0.945918 +vt 0.918169 0.888343 +vt 0.918169 0.805179 +vt 0.918169 0.843562 +vt 0.918169 0.977903 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.955128 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.942308 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.993590 +vt 0.781250 0.996795 +vt 0.781250 0.830128 +vt 0.918169 0.811576 +vt 0.918169 0.862754 +vt 0.918169 0.997095 +vt 0.918169 0.939520 +vt 0.918169 0.881946 +vt 0.918169 0.785987 +vt 0.918169 0.945918 +vt 0.918169 0.901137 +vt 0.918169 0.792385 +vt 0.918169 0.843562 +vt 0.918169 0.977903 +vt 0.918169 0.920329 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.869792 0.807692 +vt 0.869792 0.826923 +vt 0.869792 0.846154 +vt 0.869792 0.865385 +vt 0.869792 0.980769 +vt 0.869792 1.000000 +vt 0.869792 0.923077 +vt 0.869792 0.942308 +vt 0.869792 0.884615 +vt 0.869792 0.769231 +vt 0.869792 0.788462 +vt 0.869792 0.961538 +vt 0.869792 0.903846 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.520833 0.942308 +vt 0.497396 0.948718 +vt 0.520833 0.948718 +vt 0.401042 0.955128 +vt 0.354167 0.961538 +vt 0.401042 0.961538 +vt 0.497396 0.955128 +vt 0.520833 0.955128 +vt 0.401042 0.948718 +vt 0.354167 0.942308 +vt 0.354167 0.948718 +vt 0.520833 0.935897 +vt 0.497396 0.942308 +vt 0.354167 0.955128 +vt 0.520833 0.961538 +vt 0.497396 0.961538 +vt 0.497396 0.935897 +vt 0.471354 0.942308 +vt 0.471354 0.948718 +vt 0.471354 0.955128 +vt 0.471354 0.961538 +vt 0.471354 0.935897 +vt 0.440104 0.942308 +vt 0.440104 0.948718 +vt 0.440104 0.955128 +vt 0.440104 0.961538 +vt 0.440104 0.935897 +vt 0.401042 0.942308 +vt 0.401042 0.935897 +vt 0.377604 0.910256 +vt 0.354167 0.916667 +vt 0.377604 0.916667 +vt 0.377604 0.923077 +vt 0.354167 0.923077 +vt 0.354167 0.929487 +vt 0.377604 0.929487 +vt 0.354167 0.935897 +vt 0.377604 0.935897 +vt 0.520833 0.916667 +vt 0.473958 0.910256 +vt 0.473958 0.916667 +vt 0.473958 0.923077 +vt 0.520833 0.923077 +vt 0.473958 0.929487 +vt 0.520833 0.929487 +vt 0.520833 0.935897 +vt 0.473958 0.935897 +vt 0.434896 0.916667 +vt 0.434896 0.923077 +vt 0.434896 0.929487 +vt 0.434896 0.935897 +vt 0.403646 0.910256 +vt 0.403646 0.916667 +vt 0.403646 0.923077 +vt 0.403646 0.929487 +vt 0.403646 0.935897 +vt 0.656250 0.891026 +vt 0.609375 0.884615 +vt 0.609375 0.891026 +vt 0.609375 0.897436 +vt 0.656250 0.903846 +vt 0.609375 0.903846 +vt 0.656250 0.910256 +vt 0.609375 0.910256 +vt 0.401042 0.891026 +vt 0.354167 0.884615 +vt 0.354167 0.891026 +vt 0.401042 0.897436 +vt 0.354167 0.897436 +vt 0.401042 0.903846 +vt 0.354167 0.903846 +vt 0.354167 0.910256 +vt 0.484375 0.884615 +vt 0.401042 0.884615 +vt 0.484375 0.897436 +vt 0.484375 0.903846 +vt 0.401042 0.910256 +vt 0.526042 0.891026 +vt 0.484375 0.891026 +vt 0.526042 0.903846 +vt 0.526042 0.910256 +vt 0.484375 0.910256 +vt 0.526042 0.884615 +vt 0.526042 0.897436 +vt 0.918169 0.849960 +vt 0.901042 0.865385 +vt 0.901042 0.846154 +vt 0.918169 0.869151 +vt 0.901042 0.884615 +vt 0.918169 0.901137 +vt 0.901042 0.903846 +vt 0.918169 0.920329 +vt 0.901042 0.923077 +vt 0.918169 0.926726 +vt 0.901042 0.942308 +vt 0.918169 0.945918 +vt 0.901042 0.961538 +vt 0.918169 0.977903 +vt 0.901042 0.980769 +vt 0.918169 0.984301 +vt 0.901042 1.000000 +vt 0.901042 0.769231 +vt 0.918169 0.785987 +vt 0.901042 0.788462 +vt 0.918169 0.792385 +vt 0.901042 0.807692 +vt 0.918169 0.824371 +vt 0.901042 0.826923 +vt 0.918169 0.843562 +vt 0.838542 0.942308 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.807692 +vt 0.838542 0.788462 +vt 0.838542 0.846154 +vt 0.838542 0.826923 +vt 0.838542 0.961538 +vt 0.838542 0.865385 +vt 0.838542 1.000000 +vt 0.838542 0.980769 +vt 0.838542 0.923077 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.878205 +vt 0.781250 0.868590 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.801282 +vt 0.781250 0.791667 +vt 0.781250 0.830128 +vt 0.918169 0.811576 +vt 0.918169 0.862754 +vt 0.918169 0.997095 +vt 0.918169 0.939520 +vt 0.918169 0.881946 +vt 0.918169 0.958712 +vt 0.918169 0.805179 +vt 0.918169 0.830768 +vt 0.918169 0.965109 +vt 0.918169 0.907534 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.923077 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.942308 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.901042 0.846154 +vt 0.918169 0.862754 +vt 0.901042 0.865385 +vt 0.918169 0.881946 +vt 0.901042 0.884615 +vt 0.918169 0.901137 +vt 0.901042 0.903846 +vt 0.918169 0.920329 +vt 0.901042 0.923077 +vt 0.918169 0.926726 +vt 0.901042 0.942308 +vt 0.918169 0.945918 +vt 0.901042 0.961538 +vt 0.918169 0.965109 +vt 0.901042 0.980769 +vt 0.918169 0.984301 +vt 0.901042 1.000000 +vt 0.918169 0.773193 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.918169 0.792385 +vt 0.901042 0.807692 +vt 0.918169 0.824371 +vt 0.901042 0.826923 +vt 0.918169 0.830768 +vt 0.838542 0.942308 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.807692 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.838542 1.000000 +vt 0.838542 0.923077 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.993590 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.945513 +vt 0.781250 0.897436 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.918169 0.811576 +vt 0.918169 0.849960 +vt 0.918169 0.997095 +vt 0.918169 0.939520 +vt 0.918169 0.785987 +vt 0.918169 0.958712 +vt 0.918169 0.888343 +vt 0.918169 0.805179 +vt 0.918169 0.843562 +vt 0.918169 0.977903 +vt 0.918169 0.907534 +vt 0.734375 0.980769 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 0.974359 +vt 0.734375 0.955128 +vt 0.734375 1.000000 +vt 0.781250 0.974359 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.980769 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.942308 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.901042 0.846154 +vt 0.918169 0.862754 +vt 0.901042 0.865385 +vt 0.918169 0.869151 +vt 0.901042 0.884615 +vt 0.918169 0.901137 +vt 0.901042 0.903846 +vt 0.918169 0.907534 +vt 0.901042 0.923077 +vt 0.918169 0.926726 +vt 0.901042 0.942308 +vt 0.918169 0.945918 +vt 0.901042 0.961538 +vt 0.918169 0.965109 +vt 0.901042 0.980769 +vt 0.918169 0.984301 +vt 0.901042 1.000000 +vt 0.901042 0.769231 +vt 0.918169 0.785987 +vt 0.901042 0.788462 +vt 0.918169 0.805179 +vt 0.901042 0.807692 +vt 0.918169 0.824371 +vt 0.901042 0.826923 +vt 0.918169 0.843562 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.846154 +vt 0.838542 0.923077 +vt 0.838542 0.865385 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.926282 +vt 0.781250 0.878205 +vt 0.781250 0.868590 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.897436 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.918169 0.997095 +vt 0.918169 0.939520 +vt 0.918169 0.881946 +vt 0.918169 0.773193 +vt 0.918169 0.958712 +vt 0.918169 0.830768 +vt 0.918169 0.977903 +vt 0.918169 0.920329 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.901042 0.846154 +vt 0.918169 0.862754 +vt 0.901042 0.865385 +vt 0.918169 0.881946 +vt 0.901042 0.884615 +vt 0.918169 0.901137 +vt 0.901042 0.903846 +vt 0.918169 0.907534 +vt 0.901042 0.923077 +vt 0.918169 0.939520 +vt 0.901042 0.942308 +vt 0.918169 0.958712 +vt 0.901042 0.961538 +vt 0.918169 0.977903 +vt 0.901042 0.980769 +vt 0.918169 0.984301 +vt 0.901042 1.000000 +vt 0.918169 0.773193 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.918169 0.792385 +vt 0.901042 0.807692 +vt 0.918169 0.824371 +vt 0.901042 0.826923 +vt 0.918169 0.843562 +vt 0.838542 0.942308 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.807692 +vt 0.838542 0.846154 +vt 0.838542 1.000000 +vt 0.838542 0.923077 +vt 0.838542 0.865385 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.878205 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.897436 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.918169 0.811576 +vt 0.918169 0.849960 +vt 0.918169 0.997095 +vt 0.918169 0.785987 +vt 0.918169 0.888343 +vt 0.918169 0.805179 +vt 0.918169 0.965109 +vt 0.918169 0.920329 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.955128 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.942308 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.250000 0.320513 +vt 0.250000 0.782051 +vt 0.250000 0.371795 +vt 0.250000 0.423077 +vt 0.250000 0.884615 +vt 0.250000 0.525641 +vt 0.250000 0.474359 +vt 0.250000 0.115385 +vt 0.250000 0.576923 +vt 0.250000 0.166667 +vt 0.250000 0.628205 +vt 0.250000 0.217949 +vt 0.250000 0.679487 +vt 0.250000 0.269231 +vt 0.250000 0.730769 +vt -0.000000 0.653846 +vt 0.000000 0.243590 +vt 0.000000 0.705128 +vt -0.000000 0.294872 +vt -0.000000 0.756410 +vt -0.000000 0.346154 +vt -0.000000 0.807692 +vt -0.000000 0.397436 +vt -0.000000 0.448718 +vt -0.000000 0.910256 +vt -0.000000 0.551282 +vt 0.000000 0.500000 +vt -0.000000 0.141026 +vt -0.000000 0.602564 +vt 0.000000 0.192308 +vt 0.317708 0.717949 +vt 0.468750 0.102564 +vt 0.557292 0.717949 +vt 0.468750 0.102564 +vt 0.635417 0.564103 +vt 0.635417 0.564103 +vt 0.468750 0.871795 +vt 0.468750 0.496795 +vt 0.364583 0.410256 +vt 0.364583 0.785256 +vt 0.354167 0.948718 +vt 0.354167 0.935897 +vt 0.354167 0.910256 +vt 0.354167 0.923077 +vt 0.656250 0.884615 +vt 0.401042 0.884615 +vt 0.812500 0.730769 +vt 0.812500 0.711538 +vt 0.812500 0.663462 +vt 0.812500 0.586538 +vt 0.812500 0.567308 +vt 0.812500 0.519231 +vt 0.812500 0.442308 +vt 0.812500 0.423077 +vt 0.812500 0.346154 +vt 0.812500 0.298077 +vt 0.812500 0.250000 +vt 0.812500 0.201923 +vt 0.812500 0.182692 +vt 0.812500 0.105769 +vt 0.812500 0.057692 +vt 0.812500 0.009615 +vt 0.742673 0.917238 +vt 0.674546 0.900559 +vt 0.718750 0.923094 +vt 0.694827 0.917238 +vt 0.660994 0.875598 +vt 0.656236 0.846154 +vt 0.660995 0.816710 +vt 0.694827 0.775070 +vt 0.718750 0.769213 +vt 0.742673 0.775070 +vt 0.776506 0.816710 +vt 0.781264 0.846154 +vt 0.776505 0.875598 +vt 1.000000 0.009615 +vt 1.000000 0.730769 +vt 1.000000 0.442308 +vt 1.000000 0.394231 +vt 1.000000 0.346154 +vt 1.000000 0.298077 +vt 1.000000 0.250000 +vt 1.000000 0.201923 +vt 1.000000 0.105769 +vt 1.000000 0.057692 +vt 0.694827 0.917238 +vt 0.656236 0.846154 +vt 0.674546 0.900559 +vt 0.660995 0.875598 +vt 0.660995 0.816710 +vt 0.674546 0.791749 +vt 0.694827 0.775070 +vt 0.742673 0.775070 +vt 0.762954 0.791749 +vt 0.776506 0.816710 +vt 0.776506 0.875598 +vt 0.762954 0.900559 +vt 0.742673 0.917238 +vt 0.918169 0.907534 +vt 0.781250 0.974359 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.935897 +vt 0.781250 0.878205 +vt 0.781250 0.782051 +vt 0.781250 0.955128 +vt 0.781250 0.897436 +vt 0.781250 0.801282 +vt 0.781250 0.839744 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.935897 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.769231 +vt 0.656250 0.512821 +vt 0.354167 0.935897 +vt 0.354167 0.910256 +vt 0.520833 0.910256 +vt 0.434896 0.910256 +vt 0.656250 0.884615 +vt 0.656250 0.897436 +vt 0.781250 0.801282 +vt 0.781250 0.897436 +vt 0.781250 0.955128 +vt 0.781250 0.782051 +vt 0.781250 0.878205 +vt 0.781250 0.935897 +vt 0.781250 0.993590 +vt 0.781250 0.858974 +vt 0.781250 0.820513 +vt 0.781250 0.916667 +vt 0.781250 0.974359 +vt 0.401042 0.884615 +vt 0.656250 0.884615 +vt 0.354167 0.923077 +vt 0.354167 0.910256 +vt 0.354167 0.935897 +vt 0.354167 0.948718 +vt 0.918169 0.849960 +vt 0.918169 0.773193 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.993590 +vt 0.781250 0.878205 +vt 0.781250 0.897436 +vt 0.781250 0.801282 +vt 0.781250 0.839744 +vt 0.734375 0.923077 +vt 0.781250 0.974359 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.918169 0.907534 +vt 0.918169 0.945918 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.935897 +vt 0.781250 0.878205 +vt 0.781250 0.782051 +vt 0.781250 0.801282 +vt 0.781250 0.839744 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.918169 0.792385 +vt 0.918169 0.830768 +vt 0.838542 1.000000 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.993590 +vt 0.781250 0.878205 +vt 0.781250 0.897436 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.918169 0.907534 +vt 0.918169 0.811576 +vt 0.838542 1.000000 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.955128 +vt 0.781250 0.897436 +vt 0.781250 0.801282 +vt 0.781250 0.974359 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.839744 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.935897 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.354167 0.935897 +vt 0.354167 0.910256 +vt 0.520833 0.910256 +vt 0.434896 0.910256 +vt 0.656250 0.884615 +vt 0.656250 0.897436 +vt 0.918169 0.888343 +vt 0.918169 0.773193 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.782051 +vt 0.781250 0.897436 +vt 0.781250 0.839744 +vt 0.734375 0.923077 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.918169 0.869151 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.878205 +vt 0.781250 0.955128 +vt 0.781250 0.801282 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.918169 0.849960 +vt 0.918169 0.888343 +vt 0.918169 0.792385 +vt 0.918169 0.811576 +vt 0.838542 1.000000 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.935897 +vt 0.781250 0.782051 +vt 0.781250 0.801282 +vt 0.734375 0.923077 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.918169 0.869151 +vt 0.918169 0.926726 +vt 0.918169 0.945918 +vt 0.918169 0.830768 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.801282 +vt 0.781250 0.974359 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +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.3827 0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.1876 -0.7947 0.5774 +vn 0.6071 -0.7947 0.0000 +vn -0.4911 -0.7947 0.3568 +vn -0.4911 -0.7947 -0.3568 +vn 0.1876 -0.7947 -0.5774 +vn 0.9822 -0.1876 0.0000 +vn 0.3035 -0.1876 0.9342 +vn -0.7946 -0.1876 0.5774 +vn -0.7946 -0.1876 -0.5774 +vn 0.3035 -0.1876 -0.9342 +vn 0.7946 0.1876 0.5774 +vn -0.3035 0.1876 0.9342 +vn -0.9822 0.1876 0.0000 +vn -0.3035 0.1876 -0.9342 +vn 0.7946 0.1876 -0.5774 +vn 0.4911 0.7947 0.3568 +vn -0.1876 0.7947 0.5774 +vn -0.6071 0.7947 0.0000 +vn -0.1876 0.7947 -0.5774 +vn 0.4911 0.7947 -0.3568 +vn 0.7500 -0.4330 -0.5000 +vn -0.7500 0.4330 0.5000 +vn 0.7500 -0.4330 0.5000 +vn -0.7500 0.4330 -0.5000 +vn 0.7500 0.4330 -0.5000 +vn -0.7500 -0.4330 0.5000 +vn 0.7500 0.4330 0.5000 +vn -0.7500 -0.4330 -0.5000 +vn 0.0000 -0.9303 -0.3668 +vn 0.3560 -0.8595 0.3668 +vn 0.0000 -0.9303 0.3668 +vn 0.6578 0.6578 -0.3668 +vn 0.3560 0.8595 0.3668 +vn 0.6578 0.6578 0.3668 +vn -0.3560 0.8595 -0.3668 +vn -0.6578 0.6578 0.3668 +vn -0.3560 0.8595 0.3668 +vn -0.3560 -0.8595 -0.3668 +vn -0.3560 -0.8595 0.3668 +vn 0.0000 0.9303 -0.3668 +vn 0.0000 0.9303 0.3668 +vn 0.7071 0.0000 -0.7071 +vn 0.8595 0.3560 -0.3668 +vn 0.9303 -0.0000 -0.3668 +vn 0.5000 0.5000 -0.7071 +vn 0.3560 0.8595 -0.3668 +vn -0.2706 0.6533 -0.7071 +vn -0.6578 0.6578 -0.3668 +vn -0.5000 0.5000 -0.7071 +vn -0.8595 0.3560 -0.3668 +vn -0.7071 0.0000 -0.7071 +vn -0.9303 -0.0000 -0.3668 +vn -0.6533 -0.2706 -0.7071 +vn -0.8595 -0.3560 -0.3668 +vn -0.5000 -0.5000 -0.7071 +vn -0.6578 -0.6578 -0.3668 +vn -0.2706 -0.6533 -0.7071 +vn 0.2706 -0.6533 -0.7071 +vn 0.3560 -0.8595 -0.3668 +vn 0.6578 -0.6578 -0.3668 +vn 0.5000 -0.5000 -0.7071 +vn 0.8595 -0.3560 -0.3668 +vn 0.8595 0.3560 0.3668 +vn 0.5000 0.5000 0.7071 +vn 0.6533 0.2706 0.7071 +vn 0.2706 0.6533 0.7071 +vn -0.2706 0.6533 0.7071 +vn -0.8595 0.3560 0.3668 +vn -0.5000 0.5000 0.7071 +vn -0.9303 0.0000 0.3668 +vn -0.6533 0.2706 0.7071 +vn -0.8595 -0.3560 0.3668 +vn -0.7071 -0.0000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn -0.6533 -0.2706 0.7071 +vn -0.6578 -0.6578 0.3668 +vn -0.2706 -0.6533 0.7071 +vn 0.2706 -0.6533 0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.8595 -0.3560 0.3668 +vn 0.6578 -0.6578 0.3668 +vn 0.7071 0.0000 0.7071 +vn 0.6533 -0.2706 0.7071 +vn 0.9303 0.0000 0.3668 +vn 0.9239 0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.6533 0.2706 -0.7071 +vn 0.2706 0.6533 -0.7071 +vn -0.6533 0.2706 -0.7071 +vn 0.6533 -0.2706 -0.7071 +vn 0.7177 0.6472 0.2568 +vn 0.6523 -0.7061 0.2755 +vn 0.6104 0.7060 0.3593 +vn -0.9013 -0.3723 0.2215 +vn -0.3976 0.4048 -0.8234 +vn -0.8798 -0.4243 0.2143 +vn -0.6361 0.6472 -0.4201 +vn -0.6536 0.7060 -0.2727 +vn 0.8973 0.4048 -0.1760 +vn 0.3636 -0.3723 0.8540 +vn 0.3564 -0.4243 0.8324 +vn -0.6410 -0.7403 -0.2027 +vn -0.6118 -0.7061 -0.3565 +vn -0.3635 0.3721 -0.8540 +vn 0.4434 -0.6475 0.6197 +vn 0.5467 -0.7403 0.3912 +vn 0.8096 0.5854 0.0438 +vn -0.7619 -0.6475 0.0171 +vn 0.3861 -0.5265 0.7575 +vn -0.5208 0.5854 -0.6214 +vn 0.8656 0.4917 -0.0952 +vn -0.8376 -0.5265 0.1457 +vn -0.4432 0.4917 -0.7495 +vn 0.6170 -0.7068 0.3462 +vn -0.5455 -0.7380 -0.3971 +vn 0.6450 -0.7380 0.1981 +vn 0.6317 0.6489 0.4242 +vn -0.6157 0.7066 -0.3488 +vn -0.7184 0.6489 -0.2508 +vn -0.6472 -0.7067 -0.2858 +vn 0.9005 -0.3750 -0.2200 +vn -0.3575 -0.4254 -0.8314 +vn -0.3643 -0.3750 -0.8524 +vn 0.3973 0.4064 0.8228 +vn 0.3643 0.3749 0.8525 +vn -0.8966 0.4064 0.1758 +vn -0.9006 0.3749 0.2201 +vn 0.8376 -0.5265 -0.1457 +vn 0.8796 -0.4254 -0.2129 +vn 0.4432 0.4917 0.7495 +vn -0.8656 0.4917 0.0952 +vn -0.4434 -0.6475 -0.6198 +vn -0.3861 -0.5265 -0.7575 +vn 0.5208 0.5854 0.6214 +vn -0.8096 0.5854 -0.0438 +vn 0.7619 -0.6475 -0.0171 +vn -0.4663 -0.6839 -0.5611 +vn 0.7724 -0.6310 0.0731 +vn 0.7203 -0.6839 0.1163 +vn 0.5180 0.6371 0.5707 +vn 0.4555 0.6307 0.6282 +vn -0.7726 0.6307 -0.0728 +vn -0.7548 0.6371 -0.1558 +vn -0.4557 -0.6310 -0.6279 +vn -0.7724 -0.6310 -0.0731 +vn 0.4663 -0.6839 0.5611 +vn 0.4557 -0.6310 0.6279 +vn 0.7548 0.6371 0.1558 +vn 0.7726 0.6307 0.0728 +vn -0.5180 0.6371 -0.5707 +vn -0.4555 0.6307 -0.6282 +vn -0.7203 -0.6839 -0.1163 +vn -0.6358 -0.7273 -0.2585 +vn 0.5459 -0.7273 0.4160 +vn 0.6808 0.6717 0.2921 +vn -0.5977 0.6717 -0.4376 +vn 0.6358 -0.7273 0.2585 +vn 0.5977 0.6717 0.4376 +vn -0.6808 0.6717 -0.2921 +vn -0.5459 -0.7273 -0.4160 +vn -0.0000 0.9411 -0.3381 +vn -0.3601 0.8695 0.3381 +vn -0.0000 0.9411 0.3381 +vn 0.3601 -0.8695 -0.3381 +vn 0.5761 -0.6806 0.4527 +vn 0.3601 -0.8695 0.3381 +vn -0.3601 0.8695 -0.3381 +vn -0.5761 0.6806 0.4527 +vn 0.8492 -0.2718 -0.4527 +vn 0.9411 -0.0000 0.3381 +vn 0.8492 -0.2718 0.4527 +vn -0.8492 0.2718 -0.4527 +vn -0.9411 -0.0000 0.3381 +vn -0.8492 0.2718 0.4527 +vn 0.9411 0.0000 -0.3381 +vn 0.8492 0.2718 0.4527 +vn -0.9411 -0.0000 -0.3381 +vn -0.8492 -0.2718 0.4527 +vn 0.5761 0.6806 -0.4527 +vn 0.3601 0.8695 0.3381 +vn 0.5761 0.6806 0.4527 +vn -0.5761 -0.6806 -0.4527 +vn -0.3601 -0.8695 0.3381 +vn -0.5761 -0.6806 0.4527 +vn 0.3601 0.8695 -0.3381 +vn -0.0000 -0.9411 -0.3381 +vn -0.0000 -0.9411 0.3381 +vn -0.3601 -0.8695 -0.3381 +vn -0.0000 0.4542 -0.8909 +vn -0.3212 0.3212 -0.8909 +vn -0.5761 0.6806 -0.4527 +vn -0.4196 0.1738 -0.8909 +vn -0.4196 -0.1738 -0.8909 +vn -0.8492 -0.2718 -0.4527 +vn -0.3212 -0.3212 -0.8909 +vn 0.0000 -0.4542 -0.8909 +vn 0.1738 -0.4196 -0.8909 +vn 0.5761 -0.6806 -0.4527 +vn 0.3212 -0.3212 -0.8909 +vn 0.4196 -0.1738 -0.8909 +vn 0.4196 0.1738 -0.8909 +vn 0.8492 0.2718 -0.4527 +vn 0.3212 0.3212 -0.8909 +vn 0.1738 0.4196 -0.8909 +vn 0.1738 0.4196 0.8909 +vn -0.0000 0.4542 0.8909 +vn -0.3212 0.3212 0.8909 +vn -0.1738 0.4196 0.8909 +vn -0.4196 0.1738 0.8909 +vn -0.4542 -0.0000 0.8909 +vn -0.4196 -0.1738 0.8909 +vn -0.3212 -0.3212 0.8909 +vn -0.1738 -0.4196 0.8909 +vn 0.0000 -0.4542 0.8909 +vn 0.1738 -0.4196 0.8909 +vn 0.3212 -0.3212 0.8909 +vn 0.4196 -0.1738 0.8909 +vn 0.4196 0.1738 0.8909 +vn 0.4542 -0.0000 0.8909 +vn 0.3212 0.3212 0.8909 +vn -0.7071 0.3536 -0.6124 +vn -0.3620 0.8073 -0.4661 +vn -0.3620 0.4661 -0.8073 +vn -0.3620 0.9322 0.0000 +vn -0.3620 0.8073 0.4661 +vn -0.7071 0.3536 0.6124 +vn -0.3620 0.4661 0.8073 +vn -0.3620 0.0000 0.9322 +vn -0.7071 -0.3536 0.6124 +vn -0.3620 -0.4661 0.8073 +vn -0.3620 -0.8073 0.4661 +vn -0.7071 -0.6124 0.3536 +vn -0.3620 -0.9322 0.0000 +vn -0.3620 -0.8073 -0.4661 +vn -0.7071 -0.3536 -0.6124 +vn -0.3620 -0.4661 -0.8073 +vn -0.3620 0.0000 -0.9322 +vn 0.3620 0.0000 0.9322 +vn 0.3620 0.9322 0.0000 +vn 0.3620 -0.8073 -0.4661 +vn 0.3620 0.4661 -0.8073 +vn 0.3620 -0.0000 -0.9322 +vn 0.3620 -0.4661 0.8073 +vn 0.3620 0.4661 0.8073 +vn 0.3620 0.8073 0.4661 +vn 0.3620 -0.4661 -0.8073 +vn 0.3620 0.8073 -0.4661 +vn 0.3620 -0.8073 0.4661 +vn 0.3620 -0.9322 0.0000 +vn 0.7071 0.3536 -0.6124 +vn 0.7071 0.6124 -0.3536 +vn 0.7071 0.6124 0.3536 +vn 0.7071 0.3536 0.6124 +vn 0.7071 -0.6124 0.3536 +vn 0.7071 -0.3536 0.6124 +vn 0.7071 -0.6124 -0.3536 +vn 0.7071 -0.3536 -0.6124 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn -0.0000 -0.5000 -0.8660 +vn -0.0000 0.8660 -0.5000 +vn -0.0000 0.5000 -0.8660 +vn -0.0000 -0.8660 -0.5000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.3385 0.9408 0.0196 +vn 0.4046 0.9030 -0.1448 +vn -0.3385 0.9408 -0.0196 +vn 0.4046 0.9030 0.1448 +vn 0.9077 0.3760 -0.1866 +vn 0.9077 0.3760 0.1866 +vn 0.9246 -0.3524 -0.1448 +vn 0.9246 -0.3524 0.1448 +vn 0.4259 -0.9046 -0.0196 +vn 0.4259 -0.9046 0.0196 +vn -0.3445 -0.9288 0.1363 +vn -0.3445 -0.9288 -0.1363 +vn -0.9004 0.4132 0.1363 +vn -0.9004 0.4132 -0.1363 +vn 0.7428 -0.4100 -0.5293 +vn 0.2353 0.8151 -0.5294 +vn -0.1367 -0.8764 0.4617 +vn 0.4429 -0.8940 -0.0671 +vn -0.7164 0.5230 0.4617 +vn -0.3190 0.9454 -0.0671 +vn -0.3641 0.9302 -0.0473 +vn -0.4038 0.6189 0.6737 +vn 0.3937 -0.5723 -0.7194 +vn 0.1724 0.0714 -0.9824 +vn -0.1262 0.6831 -0.7194 +vn 0.4003 -0.9152 -0.0473 +vn 0.1520 -0.7232 0.6737 +vn 0.4429 -0.8940 0.0671 +vn -0.1368 -0.8764 -0.4617 +vn -0.7164 0.5230 -0.4617 +vn -0.3190 0.9454 0.0671 +vn 0.2353 0.8151 0.5294 +vn 0.7428 -0.4100 0.5293 +vn 0.4003 -0.9152 0.0473 +vn 0.1520 -0.7232 -0.6737 +vn 0.1724 0.0714 0.9824 +vn 0.3937 -0.5723 0.7194 +vn -0.1262 0.6831 0.7194 +vn -0.4038 0.6189 -0.6737 +vn -0.3641 0.9302 0.0473 +vn 0.4259 0.9046 0.0196 +vn 0.9246 0.3524 -0.1448 +vn 0.4259 0.9046 -0.0196 +vn 0.9246 0.3524 0.1448 +vn 0.9077 -0.3760 -0.1866 +vn 0.9077 -0.3760 0.1866 +vn 0.4046 -0.9030 -0.1448 +vn 0.4046 -0.9030 0.1448 +vn -0.3385 -0.9408 -0.0196 +vn -0.3385 -0.9408 0.0196 +vn -0.9004 -0.4132 0.1363 +vn -0.9004 -0.4132 -0.1363 +vn -0.3445 0.9288 0.1363 +vn -0.3445 0.9288 -0.1363 +vn 0.2353 -0.8151 -0.5294 +vn 0.7428 0.4100 -0.5294 +vn -0.7164 -0.5230 0.4617 +vn -0.3190 -0.9454 -0.0671 +vn -0.1368 0.8764 0.4617 +vn 0.4429 0.8940 -0.0671 +vn 0.4003 0.9152 -0.0473 +vn 0.1520 0.7232 0.6737 +vn -0.3641 -0.9302 -0.0473 +vn -0.1262 -0.6831 -0.7194 +vn 0.1724 -0.0714 -0.9824 +vn 0.3937 0.5723 -0.7194 +vn -0.4039 -0.6189 0.6737 +vn -0.3190 -0.9454 0.0671 +vn -0.7164 -0.5230 -0.4617 +vn 0.4429 0.8940 0.0671 +vn 0.7428 0.4100 0.5294 +vn 0.2353 -0.8151 0.5294 +vn -0.3641 -0.9302 0.0473 +vn -0.4038 -0.6189 -0.6737 +vn 0.1724 -0.0714 0.9824 +vn -0.1262 -0.6831 0.7194 +vn 0.4003 0.9152 0.0473 +vn 0.3937 0.5723 0.7194 +vn -0.1367 0.8764 -0.4617 +vn 0.1520 0.7232 -0.6737 +vn 0.3385 -0.9408 0.0196 +vn -0.4046 -0.9030 -0.1448 +vn 0.3385 -0.9408 -0.0196 +vn -0.4046 -0.9030 0.1448 +vn -0.9077 -0.3760 -0.1866 +vn -0.9077 -0.3760 0.1866 +vn -0.9246 0.3524 -0.1448 +vn -0.9246 0.3524 0.1448 +vn -0.4259 0.9046 -0.0196 +vn -0.4259 0.9046 0.0196 +vn 0.3445 0.9288 0.1363 +vn 0.3445 0.9288 -0.1363 +vn 0.9004 -0.4132 0.1363 +vn 0.9004 -0.4132 -0.1363 +vn -0.7428 0.4100 -0.5294 +vn -0.2353 -0.8151 -0.5294 +vn 0.1367 0.8764 0.4617 +vn -0.4429 0.8940 -0.0671 +vn 0.7164 -0.5230 0.4617 +vn 0.3190 -0.9454 -0.0671 +vn 0.3641 -0.9302 -0.0473 +vn 0.4038 -0.6189 0.6737 +vn -0.3937 0.5723 -0.7194 +vn -0.1724 -0.0714 -0.9824 +vn 0.1262 -0.6831 -0.7194 +vn -0.4003 0.9152 -0.0473 +vn -0.1520 0.7232 0.6737 +vn -0.4429 0.8940 0.0671 +vn 0.1368 0.8764 -0.4617 +vn 0.7164 -0.5230 -0.4617 +vn 0.3190 -0.9454 0.0671 +vn -0.2353 -0.8151 0.5294 +vn -0.7428 0.4100 0.5294 +vn -0.1520 0.7232 -0.6737 +vn -0.1724 -0.0714 0.9824 +vn -0.3937 0.5723 0.7194 +vn 0.3641 -0.9302 0.0473 +vn 0.1262 -0.6831 0.7194 +vn -0.4003 0.9152 0.0473 +vn 0.4038 -0.6189 -0.6737 +vn -0.4259 -0.9046 0.0196 +vn -0.9246 -0.3524 -0.1448 +vn -0.4259 -0.9046 -0.0196 +vn -0.9246 -0.3524 0.1448 +vn -0.9077 0.3760 -0.1866 +vn -0.9077 0.3760 0.1866 +vn -0.4046 0.9030 -0.1448 +vn -0.4046 0.9030 0.1448 +vn 0.3385 0.9408 -0.0196 +vn 0.3385 0.9408 0.0196 +vn 0.9004 0.4132 0.1363 +vn 0.9004 0.4132 -0.1363 +vn 0.3445 -0.9288 0.1363 +vn 0.3445 -0.9288 -0.1363 +vn -0.2353 0.8151 -0.5294 +vn -0.7428 -0.4100 -0.5294 +vn 0.7164 0.5230 0.4617 +vn 0.3190 0.9454 -0.0671 +vn 0.1367 -0.8764 0.4617 +vn -0.4429 -0.8940 -0.0671 +vn -0.4003 -0.9152 -0.0473 +vn -0.1520 -0.7232 0.6737 +vn 0.3641 0.9302 -0.0473 +vn 0.1262 0.6831 -0.7194 +vn -0.3937 -0.5723 -0.7194 +vn -0.1724 0.0714 -0.9824 +vn 0.4039 0.6189 0.6737 +vn 0.3190 0.9454 0.0671 +vn 0.7164 0.5230 -0.4617 +vn -0.4429 -0.8940 0.0671 +vn -0.7428 -0.4100 0.5293 +vn -0.2353 0.8151 0.5294 +vn 0.4039 0.6189 -0.6737 +vn -0.1724 0.0714 0.9824 +vn 0.1262 0.6831 0.7194 +vn -0.4003 -0.9152 0.0473 +vn -0.3937 -0.5723 0.7194 +vn 0.1368 -0.8764 -0.4617 +vn 0.3641 0.9302 0.0473 +vn -0.1520 -0.7232 -0.6737 +vn 0.1367 -0.8764 -0.4617 +vn 0.4038 0.6189 -0.6737 +vn 0.1368 -0.8764 0.4617 +vn -0.7428 -0.4100 -0.5293 +vn 0.4038 0.6189 0.6737 +vn 0.4039 -0.6189 -0.6737 +vn -0.4038 -0.6189 0.6737 +vn 0.7428 -0.4100 0.5294 +vn -0.1367 -0.8764 -0.4617 +vn -0.4039 0.6189 -0.6737 +vn 0.7428 -0.4100 -0.5294 +vn -0.4039 0.6189 0.6737 +vn -0.1368 -0.8764 0.4617 +vn 0.6523 -0.7061 -0.2755 +vn 0.7177 0.6472 -0.2568 +vn 0.6104 0.7060 -0.3593 +vn -0.3976 0.4048 0.8234 +vn -0.9013 -0.3723 -0.2215 +vn -0.8798 -0.4243 -0.2143 +vn -0.6361 0.6472 0.4201 +vn -0.6536 0.7060 0.2727 +vn 0.8973 0.4048 0.1760 +vn 0.3636 -0.3723 -0.8540 +vn 0.9013 0.3721 0.2216 +vn -0.6118 -0.7061 0.3565 +vn 0.5467 -0.7403 -0.3912 +vn -0.3635 0.3721 0.8540 +vn -0.6410 -0.7403 0.2027 +vn 0.4434 -0.6475 -0.6197 +vn 0.8096 0.5854 -0.0438 +vn -0.5208 0.5854 0.6214 +vn -0.7619 -0.6475 -0.0171 +vn 0.3861 -0.5265 -0.7575 +vn 0.8656 0.4917 0.0952 +vn -0.4432 0.4917 0.7495 +vn -0.8376 -0.5265 -0.1457 +vn 0.3564 -0.4243 -0.8324 +vn -0.5455 -0.7380 0.3971 +vn 0.6170 -0.7068 -0.3462 +vn 0.6450 -0.7380 -0.1981 +vn 0.6317 0.6489 -0.4242 +vn 0.6484 0.7066 -0.2833 +vn -0.6157 0.7066 0.3488 +vn -0.7184 0.6489 0.2508 +vn -0.6472 -0.7067 0.2858 +vn 0.9005 -0.3750 0.2200 +vn -0.3575 -0.4254 0.8314 +vn 0.8796 -0.4254 0.2129 +vn 0.3973 0.4064 -0.8228 +vn 0.3643 0.3749 -0.8525 +vn -0.8966 0.4064 -0.1758 +vn -0.9006 0.3749 -0.2201 +vn -0.3643 -0.3750 0.8524 +vn 0.8376 -0.5265 0.1457 +vn 0.4432 0.4917 -0.7495 +vn -0.8656 0.4917 -0.0952 +vn -0.3861 -0.5265 0.7575 +vn -0.4434 -0.6475 0.6198 +vn 0.7619 -0.6475 0.0171 +vn 0.5208 0.5854 -0.6214 +vn -0.8096 0.5854 0.0438 +vn 0.7724 -0.6310 -0.0731 +vn -0.4663 -0.6839 0.5611 +vn 0.7203 -0.6839 -0.1163 +vn 0.5180 0.6371 -0.5707 +vn -0.7726 0.6307 0.0728 +vn -0.7548 0.6371 0.1558 +vn -0.4557 -0.6310 0.6279 +vn 0.4663 -0.6839 -0.5611 +vn -0.7724 -0.6310 0.0731 +vn 0.4557 -0.6310 -0.6279 +vn 0.7548 0.6371 -0.1558 +vn 0.7726 0.6307 -0.0728 +vn -0.5180 0.6371 0.5707 +vn -0.4555 0.6307 0.6282 +vn -0.6358 -0.7273 0.2585 +vn -0.7203 -0.6839 0.1163 +vn 0.6808 0.6717 -0.2921 +vn -0.5977 0.6717 0.4376 +vn 0.6358 -0.7273 -0.2585 +vn 0.5459 -0.7273 -0.4160 +vn -0.6808 0.6717 0.2921 +vn -0.5459 -0.7273 0.4160 +vn 0.5977 0.6717 -0.4376 +vn -0.7071 -0.6124 -0.3536 +vn -0.7071 0.6124 -0.3536 +vn -0.7071 0.6124 0.3536 +vn 0.4434 -0.6475 0.6198 +vn 0.7184 0.6489 0.2508 +vn -0.6317 0.6489 -0.4242 +vn 0.5455 -0.7380 0.3971 +vn 0.3575 -0.4254 0.8314 +vn 0.8966 0.4064 -0.1758 +vn -0.3973 0.4064 -0.8228 +vn -0.8796 -0.4254 0.2129 +vn 0.3643 -0.3750 0.8524 +vn 0.9006 0.3749 -0.2201 +vn -0.3643 0.3749 -0.8525 +vn -0.9005 -0.3750 0.2200 +vn 0.6472 -0.7067 0.2858 +vn 0.6157 0.7066 0.3488 +vn -0.6170 -0.7068 -0.3462 +vn -0.6450 -0.7380 -0.1981 +vn -0.3636 -0.3723 -0.8540 +vn 0.8798 -0.4243 -0.2143 +vn -0.3564 -0.4243 -0.8324 +vn 0.3976 0.4048 0.8234 +vn -0.4434 -0.6475 -0.6197 +vn 0.6361 0.6472 0.4201 +vn 0.6410 -0.7403 0.2027 +vn -0.7177 0.6472 -0.2568 +vn -0.5467 -0.7403 -0.3912 +vn 0.6118 -0.7061 0.3565 +vn 0.6536 0.7060 0.2727 +vn 0.3635 0.3721 0.8540 +vn -0.8973 0.4048 0.1760 +vn -0.6523 -0.7061 -0.2755 +vn -0.6104 0.7060 -0.3593 +vn 0.9013 -0.3723 -0.2215 +vn -0.3880 0.7622 -0.5181 +vn -0.3772 0.9249 0.0474 +vn -0.0697 0.9724 -0.2226 +vn 0.1946 0.9640 0.1810 +vn -0.1768 0.9186 0.3536 +vn 0.3339 0.7394 0.5847 +vn -0.0711 0.7481 0.6597 +vn 0.3111 0.3586 0.8801 +vn -0.0884 0.4593 0.8839 +vn 0.1321 -0.0763 0.9883 +vn -0.2241 0.1294 0.9659 +vn -0.1550 -0.4487 0.8801 +vn -0.6834 -0.3125 0.6597 +vn -0.4733 -0.6589 0.5847 +vn -0.7376 -0.6505 0.1810 +vn -0.9896 -0.1358 0.0474 +vn -0.8770 -0.4258 -0.2226 +vn -0.8541 -0.0451 -0.5181 +vn -0.8365 0.4830 -0.2588 +vn -0.6752 0.3898 -0.6263 +vn -0.6187 0.7655 -0.1768 +vn 0.3880 -0.7622 0.5181 +vn 0.6752 -0.3898 0.6263 +vn 0.7376 0.6505 -0.1810 +vn -0.3339 -0.7394 -0.5847 +vn -0.1321 0.0763 -0.9883 +vn 0.8541 0.0451 0.5181 +vn 0.8770 0.4258 0.2226 +vn -0.3111 -0.3586 -0.8801 +vn 0.4733 0.6589 -0.5847 +vn 0.1550 0.4487 -0.8801 +vn 0.0697 -0.9724 0.2226 +vn -0.1946 -0.9640 -0.1810 +vn 0.6834 0.3125 -0.6597 +vn 0.4419 0.1531 -0.8839 +vn 0.8839 0.3062 -0.3536 +vn 0.9896 0.1358 -0.0474 +vn 0.8365 -0.4830 0.2588 +vn 0.9723 -0.1531 0.1768 +vn 0.3772 -0.9249 -0.0474 +vn 0.6187 -0.7655 0.1768 +vn 0.1768 -0.9186 -0.3536 +vn 0.0711 -0.7481 -0.6597 +vn 0.0884 -0.4593 -0.8839 +vn 0.2241 -0.1294 -0.9659 +vn 0.1250 -0.6495 0.7500 +vn -0.2165 -0.8750 0.4330 +vn 0.6250 0.2165 0.7500 +vn 0.6495 0.6250 0.4330 +vn -0.4330 0.2500 -0.8660 +vn -0.6250 -0.2165 -0.7500 +vn -0.1250 0.6495 -0.7500 +vn 0.2165 0.8750 -0.4330 +vn 0.4330 -0.2500 0.8660 +vn -0.6495 -0.6250 -0.4330 +vn -0.0884 0.4593 -0.8839 +vn 0.3339 0.7394 -0.5847 +vn 0.3111 0.3586 -0.8801 +vn -0.0710 0.7481 -0.6597 +vn 0.1946 0.9640 -0.1810 +vn -0.3772 0.9249 -0.0474 +vn -0.0697 0.9724 0.2226 +vn -0.6187 0.7655 0.1768 +vn -0.3880 0.7622 0.5181 +vn -0.6752 0.3898 0.6263 +vn -0.9723 0.1531 0.1768 +vn -0.8541 -0.0451 0.5181 +vn -0.8770 -0.4258 0.2226 +vn -0.9896 -0.1358 -0.0474 +vn -0.7376 -0.6505 -0.1810 +vn -0.8839 -0.3062 -0.3536 +vn -0.4733 -0.6589 -0.5847 +vn -0.6834 -0.3125 -0.6597 +vn -0.1550 -0.4487 -0.8801 +vn -0.2241 0.1294 -0.9659 +vn 0.1321 -0.0763 -0.9883 +vn -0.1321 0.0763 0.9883 +vn 0.4733 0.6589 0.5847 +vn 0.7376 0.6505 0.1810 +vn 0.0697 -0.9724 -0.2226 +vn 0.6752 -0.3898 -0.6263 +vn -0.3111 -0.3586 0.8801 +vn 0.3880 -0.7622 -0.5181 +vn 0.8770 0.4258 -0.2226 +vn 0.8541 0.0451 -0.5181 +vn -0.3339 -0.7394 0.5847 +vn 0.1550 0.4487 0.8801 +vn -0.1946 -0.9640 0.1810 +vn 0.9896 0.1358 0.0474 +vn 0.9723 -0.1531 -0.1768 +vn 0.6834 0.3125 0.6597 +vn 0.8839 0.3062 0.3536 +vn 0.2241 -0.1294 0.9659 +vn 0.4419 0.1531 0.8839 +vn 0.0884 -0.4593 0.8839 +vn 0.0711 -0.7481 0.6597 +vn 0.1768 -0.9186 0.3536 +vn 0.3772 -0.9249 0.0474 +vn 0.6187 -0.7655 -0.1768 +vn 0.8365 -0.4830 -0.2588 +vn -0.6250 -0.2165 0.7500 +vn -0.6495 -0.6250 0.4330 +vn -0.1250 0.6495 0.7500 +vn 0.2165 0.8750 0.4330 +vn 0.4330 -0.2500 -0.8660 +vn 0.1250 -0.6495 -0.7500 +vn 0.6495 0.6250 -0.4330 +vn 0.6250 0.2165 -0.7500 +vn -0.4330 0.2500 0.8660 +vn -0.2165 -0.8750 -0.4330 +vn -0.8541 0.0451 -0.5181 +vn -0.9896 0.1358 0.0474 +vn -0.8770 0.4258 -0.2226 +vn -0.7376 0.6505 0.1810 +vn -0.8839 0.3062 0.3536 +vn -0.4733 0.6589 0.5847 +vn -0.6834 0.3125 0.6597 +vn -0.1550 0.4487 0.8801 +vn -0.4419 0.1531 0.8839 +vn 0.1321 0.0763 0.9883 +vn -0.2241 -0.1294 0.9659 +vn 0.3111 -0.3586 0.8801 +vn -0.0884 -0.4593 0.8839 +vn 0.3339 -0.7394 0.5847 +vn -0.0711 -0.7481 0.6597 +vn 0.1946 -0.9640 0.1810 +vn -0.3772 -0.9249 0.0474 +vn -0.0697 -0.9724 -0.2226 +vn -0.6187 -0.7655 -0.1768 +vn -0.3880 -0.7622 -0.5181 +vn -0.8365 -0.4830 -0.2588 +vn -0.6752 -0.3898 -0.6263 +vn -0.9723 -0.1531 -0.1768 +vn 0.6752 0.3898 0.6263 +vn -0.1946 0.9640 -0.1810 +vn 0.4733 -0.6589 -0.5847 +vn -0.1321 -0.0763 -0.9883 +vn 0.8770 -0.4258 0.2226 +vn 0.8541 -0.0451 0.5181 +vn 0.0697 0.9724 0.2226 +vn 0.1550 -0.4487 -0.8801 +vn -0.3111 0.3586 -0.8801 +vn 0.3880 0.7622 0.5181 +vn -0.3339 0.7394 -0.5847 +vn 0.7376 -0.6505 -0.1810 +vn 0.0711 0.7481 -0.6597 +vn 0.0884 0.4593 -0.8839 +vn 0.3772 0.9249 -0.0474 +vn 0.1768 0.9186 -0.3536 +vn 0.8365 0.4830 0.2588 +vn 0.6187 0.7655 0.1768 +vn 0.9723 0.1531 0.1768 +vn 0.8839 -0.3062 -0.3536 +vn 0.9896 -0.1358 -0.0474 +vn 0.6834 -0.3125 -0.6597 +vn 0.4419 -0.1531 -0.8839 +vn 0.2241 0.1294 -0.9659 +vn 0.6250 -0.2165 0.7500 +vn 0.6495 -0.6250 0.4330 +vn 0.1250 0.6495 0.7500 +vn -0.2165 0.8750 0.4330 +vn -0.4330 -0.2500 -0.8660 +vn -0.1250 -0.6495 -0.7500 +vn -0.6250 0.2165 -0.7500 +vn -0.6495 0.6250 -0.4330 +vn 0.4330 0.2500 0.8660 +vn 0.2165 -0.8750 -0.4330 +vn -0.4419 0.1531 -0.8839 +vn -0.4733 0.6589 -0.5847 +vn -0.1550 0.4487 -0.8801 +vn -0.6834 0.3125 -0.6597 +vn -0.7376 0.6505 -0.1810 +vn -0.9896 0.1358 -0.0474 +vn -0.8770 0.4258 0.2226 +vn -0.9723 -0.1531 0.1768 +vn -0.8541 0.0451 0.5181 +vn -0.6752 -0.3898 0.6263 +vn -0.6187 -0.7655 0.1768 +vn -0.3880 -0.7622 0.5181 +vn -0.0697 -0.9724 0.2226 +vn -0.3772 -0.9249 -0.0474 +vn 0.1946 -0.9640 -0.1810 +vn -0.1768 -0.9186 -0.3536 +vn 0.3339 -0.7394 -0.5847 +vn -0.0710 -0.7481 -0.6597 +vn 0.3111 -0.3586 -0.8801 +vn -0.2241 -0.1294 -0.9659 +vn 0.1321 0.0763 -0.9883 +vn -0.1321 -0.0763 0.9883 +vn -0.1946 0.9640 0.1810 +vn 0.8770 -0.4258 -0.2226 +vn 0.6752 0.3898 -0.6263 +vn 0.1550 -0.4487 0.8801 +vn -0.3339 0.7394 0.5847 +vn 0.8541 -0.0451 -0.5181 +vn 0.0697 0.9724 -0.2226 +vn 0.3880 0.7622 -0.5181 +vn 0.4733 -0.6589 0.5847 +vn -0.3111 0.3586 0.8801 +vn 0.7376 -0.6505 0.1810 +vn 0.6187 0.7655 -0.1768 +vn 0.1768 0.9186 0.3536 +vn 0.3772 0.9249 0.0474 +vn 0.0711 0.7481 0.6597 +vn 0.0884 0.4593 0.8839 +vn 0.2241 0.1294 0.9659 +vn 0.4419 -0.1531 0.8839 +vn 0.8839 -0.3062 0.3536 +vn 0.6834 -0.3125 0.6597 +vn 0.9896 -0.1358 0.0474 +vn 0.9723 0.1531 -0.1768 +vn 0.8365 0.4830 -0.2588 +vn -0.1250 -0.6495 0.7500 +vn 0.2165 -0.8750 0.4330 +vn -0.6250 0.2165 0.7500 +vn -0.6495 0.6250 0.4330 +vn 0.4330 0.2500 -0.8660 +vn 0.6250 -0.2165 -0.7500 +vn -0.2165 0.8750 -0.4330 +vn 0.1250 0.6495 -0.7500 +vn -0.4330 -0.2500 0.8660 +vn 0.6495 -0.6250 -0.4330 +vn -0.6523 -0.7061 0.2755 +vn -0.7177 0.6472 0.2568 +vn -0.6104 0.7060 0.3593 +vn 0.3976 0.4048 -0.8234 +vn 0.9013 -0.3723 0.2215 +vn 0.8798 -0.4243 0.2143 +vn 0.6361 0.6472 -0.4201 +vn 0.6536 0.7060 -0.2727 +vn -0.8973 0.4048 -0.1760 +vn -0.3636 -0.3723 0.8540 +vn -0.9013 0.3721 -0.2216 +vn 0.6118 -0.7061 -0.3565 +vn -0.5467 -0.7403 0.3912 +vn 0.3635 0.3721 -0.8540 +vn 0.6410 -0.7403 -0.2027 +vn -0.4434 -0.6475 0.6197 +vn -0.3564 -0.4243 0.8324 +vn 0.5455 -0.7380 -0.3971 +vn -0.6170 -0.7068 0.3462 +vn -0.6450 -0.7380 0.1981 +vn -0.6317 0.6489 0.4242 +vn -0.6484 0.7066 0.2833 +vn 0.6157 0.7066 -0.3488 +vn 0.7184 0.6489 -0.2508 +vn 0.6472 -0.7067 -0.2858 +vn -0.9005 -0.3750 -0.2200 +vn 0.3575 -0.4254 -0.8314 +vn -0.8796 -0.4254 -0.2129 +vn -0.3973 0.4065 0.8228 +vn -0.3643 0.3749 0.8525 +vn 0.8966 0.4064 0.1758 +vn 0.9006 0.3749 0.2201 +vn 0.3643 -0.3750 -0.8524 +vn 0.4434 -0.6475 -0.6198 +vn 0.4555 0.6307 -0.6282 +vn 0.0710 0.7481 -0.6597 +vn -0.1768 -0.9186 0.3536 +vn 0.0710 0.7481 0.6597 +vn -0.8839 0.3062 -0.3536 +vn -0.0884 -0.4593 -0.8839 +vn -0.0711 -0.7481 -0.6597 +vn -0.8365 -0.4830 0.2588 +vn -0.9723 0.1531 -0.1768 +vn -0.8839 -0.3062 0.3536 +vn -0.4419 -0.1531 0.8839 +vn 0.0710 -0.7481 0.6597 +vn -0.1768 0.9186 -0.3536 +vn -0.0711 0.7481 -0.6597 +vn -0.4419 -0.1531 -0.8839 +vn -0.8365 0.4830 0.2588 +vn 0.9013 0.3721 -0.2216 +vn 0.6484 0.7066 0.2833 +vn -0.1738 0.4196 -0.8909 +vn -0.4542 -0.0000 -0.8909 +vn -0.1738 -0.4196 -0.8909 +vn 0.4542 -0.0000 -0.8909 +vn -0.6484 0.7066 -0.2833 +vn -0.9013 0.3721 0.2216 +s off +f 78/1/1 127/2/1 79/3/1 +f 79/4/1 128/5/1 80/6/1 +f 128/7/1 65/8/1 80/9/1 +f 113/10/1 66/11/1 65/12/1 +f 114/13/1 67/14/1 66/15/1 +f 115/16/1 68/17/1 67/18/1 +f 116/19/1 69/20/1 68/21/1 +f 117/22/1 70/23/1 69/24/1 +f 118/25/1 71/26/1 70/27/1 +f 71/28/1 120/29/1 72/30/1 +f 72/31/1 121/32/1 73/33/1 +f 73/34/1 122/35/1 74/36/1 +f 74/37/1 123/38/1 75/39/1 +f 75/40/1 124/41/1 76/42/1 +f 76/43/1 125/44/1 77/45/1 +f 77/46/1 126/47/1 78/48/1 +f 95/49/2 208/50/2 207/51/2 +f 81/52/2 208/53/2 96/54/2 +f 82/55/2 193/56/2 81/57/2 +f 83/58/2 194/59/2 82/60/2 +f 84/61/2 195/62/2 83/63/2 +f 85/64/2 196/65/2 84/66/2 +f 86/67/2 197/68/2 85/69/2 +f 87/70/2 198/71/2 86/72/2 +f 87/73/2 200/74/2 199/75/2 +f 88/76/2 201/77/2 200/78/2 +f 89/79/2 202/80/2 201/81/2 +f 90/82/2 203/83/2 202/84/2 +f 91/85/2 204/86/2 203/87/2 +f 92/88/2 205/89/2 204/90/2 +f 93/91/2 206/92/2 205/93/2 +f 94/94/2 207/95/2 206/96/2 +f 237/97/2 142/98/2 141/99/2 +f 238/100/2 143/101/2 142/102/2 +f 143/103/2 240/104/2 144/105/2 +f 240/106/2 129/107/2 144/108/2 +f 225/109/2 130/110/2 129/111/2 +f 130/112/2 227/113/2 131/114/2 +f 227/115/2 132/116/2 131/117/2 +f 228/118/2 133/119/2 132/120/2 +f 133/121/2 230/122/2 134/123/2 +f 134/124/2 231/125/2 135/126/2 +f 231/127/2 136/128/2 135/129/2 +f 232/130/2 137/131/2 136/132/2 +f 137/133/2 234/134/2 138/135/2 +f 138/136/2 235/137/2 139/138/2 +f 235/139/2 140/140/2 139/141/2 +f 236/142/2 141/143/2 140/144/2 +f 254/145/1 287/146/1 255/147/1 +f 287/148/1 256/149/1 255/150/1 +f 256/151/1 273/152/1 241/153/1 +f 241/154/1 274/155/1 242/156/1 +f 274/157/1 243/158/1 242/159/1 +f 243/160/1 276/161/1 244/162/1 +f 276/163/1 245/164/1 244/165/1 +f 277/166/1 246/167/1 245/168/1 +f 278/169/1 247/170/1 246/171/1 +f 247/172/1 280/173/1 248/174/1 +f 248/175/1 281/176/1 249/177/1 +f 281/178/1 250/179/1 249/180/1 +f 282/181/1 251/182/1 250/183/1 +f 283/184/1 252/185/1 251/186/1 +f 252/187/1 285/188/1 253/189/1 +f 253/190/1 286/191/1 254/192/1 +f 191/193/1 398/194/1 190/195/1 +f 191/196/1 400/197/1 399/198/1 +f 177/199/1 400/200/1 192/201/1 +f 178/202/1 385/203/1 177/204/1 +f 178/205/1 387/206/1 386/207/1 +f 180/208/1 387/209/1 179/210/1 +f 180/211/1 389/212/1 388/213/1 +f 181/214/1 390/215/1 389/216/1 +f 182/217/1 391/218/1 390/219/1 +f 184/220/1 391/221/1 183/222/1 +f 185/223/1 392/224/1 184/225/1 +f 185/226/1 394/227/1 393/228/1 +f 186/229/1 395/230/1 394/231/1 +f 188/232/1 395/233/1 187/234/1 +f 189/235/1 396/236/1 188/237/1 +f 190/238/1 397/239/1 189/240/1 +f 414/241/2 367/242/2 366/243/2 +f 367/244/2 416/245/2 368/246/2 +f 416/247/2 353/248/2 368/249/2 +f 401/250/2 354/251/2 353/252/2 +f 354/253/2 403/254/2 355/255/2 +f 403/256/2 356/257/2 355/258/2 +f 404/259/2 357/260/2 356/261/2 +f 357/262/2 406/263/2 358/264/2 +f 358/265/2 407/266/2 359/267/2 +f 407/268/2 360/269/2 359/270/2 +f 408/271/2 361/272/2 360/273/2 +f 361/274/2 410/275/2 362/276/2 +f 362/277/2 411/278/2 363/279/2 +f 411/280/2 364/281/2 363/282/2 +f 412/283/2 365/284/2 364/285/2 +f 413/286/2 366/287/2 365/288/2 +f 301/289/2 430/290/2 302/291/2 +f 430/292/2 303/293/2 302/294/2 +f 431/295/2 304/296/2 303/297/2 +f 432/298/2 289/299/2 304/300/2 +f 417/301/2 290/302/2 289/303/2 +f 290/304/2 419/305/2 291/306/2 +f 419/307/2 292/308/2 291/309/2 +f 292/310/2 421/311/2 293/312/2 +f 421/313/2 294/314/2 293/315/2 +f 294/316/2 423/317/2 295/318/2 +f 423/319/2 296/320/2 295/321/2 +f 296/322/2 425/323/2 297/324/2 +f 297/325/2 426/326/2 298/327/2 +f 426/328/2 299/329/2 298/330/2 +f 427/331/2 300/332/2 299/333/2 +f 428/334/2 301/335/2 300/336/2 +f 443/337/2 439/338/2 435/339/2 +f 351/340/1 462/341/1 350/342/1 +f 352/343/1 463/344/1 351/345/1 +f 337/346/1 464/347/1 352/348/1 +f 338/349/1 449/350/1 337/351/1 +f 338/352/1 451/353/1 450/354/1 +f 340/355/1 451/356/1 339/357/1 +f 340/358/1 453/359/1 452/360/1 +f 342/361/1 453/362/1 341/363/1 +f 342/364/1 455/365/1 454/366/1 +f 344/367/1 455/368/1 343/369/1 +f 344/370/1 457/371/1 456/372/1 +f 345/373/1 458/374/1 457/375/1 +f 347/376/1 458/377/1 346/378/1 +f 348/379/1 459/380/1 347/381/1 +f 349/382/1 460/383/1 348/384/1 +f 349/385/1 462/386/1 461/387/1 +f 473/388/1 477/389/1 466/390/1 +f 546/391/3 547/392/3 545/393/3 +f 554/394/3 555/395/3 553/396/3 +f 546/391/4 552/397/4 548/398/4 +f 547/392/5 550/399/5 545/393/5 +f 548/398/2 549/400/2 547/392/2 +f 545/393/1 551/401/1 546/391/1 +f 554/394/4 560/402/4 556/403/4 +f 555/395/5 558/404/5 553/396/5 +f 556/403/2 557/405/2 555/395/2 +f 553/396/1 559/406/1 554/394/1 +f 562/407/3 563/408/3 561/409/3 +f 570/410/3 571/411/3 569/412/3 +f 562/407/4 568/413/4 564/414/4 +f 563/408/5 566/415/5 561/409/5 +f 564/414/2 565/416/2 563/408/2 +f 561/409/1 567/417/1 562/407/1 +f 570/410/4 576/418/4 572/419/4 +f 571/411/5 574/420/5 569/412/5 +f 572/419/2 573/421/2 571/411/2 +f 569/412/1 575/422/1 570/410/1 +f 578/423/4 584/424/4 580/425/4 +f 579/426/5 581/427/5 577/428/5 +f 580/425/3 583/429/3 579/426/3 +f 577/430/6 582/431/6 578/423/6 +f 586/432/4 592/433/4 588/434/4 +f 587/435/5 589/436/5 585/437/5 +f 588/434/3 591/438/3 587/435/3 +f 585/439/6 590/440/6 586/432/6 +f 594/441/4 600/442/4 596/443/4 +f 595/444/5 597/445/5 593/446/5 +f 596/443/3 599/447/3 595/444/3 +f 593/448/6 598/449/6 594/441/6 +f 602/450/4 608/451/4 604/452/4 +f 603/453/5 605/454/5 601/455/5 +f 604/452/3 607/456/3 603/453/3 +f 601/457/6 606/458/6 602/450/6 +f 611/459/6 610/460/6 609/461/6 +f 615/462/3 613/463/3 614/464/3 +f 611/465/7 616/466/7 612/467/7 +f 610/468/8 614/464/8 609/469/8 +f 612/470/4 615/462/4 610/460/4 +f 609/471/5 613/463/5 611/472/5 +f 619/473/6 618/474/6 617/475/6 +f 623/476/3 621/477/3 622/478/3 +f 619/479/7 624/480/7 620/481/7 +f 618/482/8 622/478/8 617/483/8 +f 620/484/4 623/476/4 618/474/4 +f 617/485/5 621/477/5 619/486/5 +f 626/487/4 632/488/4 628/489/4 +f 627/490/5 630/491/5 625/492/5 +f 628/493/2 629/494/2 627/495/2 +f 625/496/1 631/497/1 626/498/1 +f 634/499/4 640/500/4 636/501/4 +f 635/502/5 638/503/5 633/504/5 +f 636/505/2 637/506/2 635/507/2 +f 633/508/1 639/509/1 634/510/1 +f 642/511/4 648/512/4 644/513/4 +f 643/514/5 646/515/5 641/516/5 +f 644/517/2 645/518/2 643/519/2 +f 641/520/1 647/521/1 642/522/1 +f 650/523/4 656/524/4 652/525/4 +f 651/526/5 654/527/5 649/528/5 +f 652/529/2 653/530/2 651/531/2 +f 649/532/1 655/533/1 650/534/1 +f 648/512/6 646/515/6 645/518/6 +f 656/524/6 654/527/6 653/530/6 +f 632/488/6 630/491/6 629/494/6 +f 640/500/6 638/503/6 637/506/6 +f 658/535/4 664/536/4 660/537/4 +f 659/538/5 661/539/5 657/540/5 +f 660/537/3 663/541/3 659/538/3 +f 657/542/6 662/543/6 658/535/6 +f 666/544/4 672/545/4 668/546/4 +f 667/547/5 669/548/5 665/549/5 +f 668/546/3 671/550/3 667/547/3 +f 665/551/6 670/552/6 666/544/6 +f 674/553/4 680/554/4 676/555/4 +f 675/556/5 677/557/5 673/558/5 +f 676/555/3 679/559/3 675/556/3 +f 673/560/6 678/561/6 674/553/6 +f 682/562/4 688/563/4 684/564/4 +f 683/565/5 685/566/5 681/567/5 +f 684/564/3 687/568/3 683/565/3 +f 681/569/6 686/570/6 682/562/6 +f 691/571/3 690/572/3 689/573/3 +f 695/574/6 693/575/6 694/576/6 +f 691/577/9 696/578/9 692/579/9 +f 690/580/10 694/576/10 689/581/10 +f 692/582/5 695/574/5 690/572/5 +f 689/583/4 693/575/4 691/584/4 +f 699/585/3 698/586/3 697/587/3 +f 703/588/6 701/589/6 702/590/6 +f 699/591/9 704/592/9 700/593/9 +f 698/594/10 702/590/10 697/595/10 +f 700/596/5 703/588/5 698/586/5 +f 697/597/4 701/589/4 699/598/4 +f 707/599/2 706/600/2 705/601/2 +f 710/602/1 711/603/1 709/604/1 +f 708/605/4 710/606/4 706/607/4 +f 705/608/5 711/609/5 707/610/5 +f 707/599/3 712/611/3 708/605/3 +f 706/607/6 709/612/6 705/608/6 +f 715/613/6 714/614/6 713/615/6 +f 717/616/3 724/617/3 720/618/3 +f 715/619/2 720/618/2 716/620/2 +f 714/621/1 718/622/1 713/623/1 +f 716/624/4 719/625/4 714/614/4 +f 713/626/5 717/627/5 715/628/5 +f 724/629/4 727/630/4 723/631/4 +f 719/632/3 722/633/3 718/622/3 +f 720/634/3 723/631/3 719/625/3 +f 718/635/3 721/636/3 717/627/3 +f 722/637/5 725/638/5 721/636/5 +f 721/639/2 728/640/2 724/617/2 +f 723/641/1 726/642/1 722/633/1 +f 731/643/2 730/644/2 729/645/2 +f 734/646/1 735/647/1 733/648/1 +f 732/649/4 734/650/4 730/651/4 +f 729/652/5 735/653/5 731/654/5 +f 731/643/3 736/655/3 732/649/3 +f 730/651/6 733/656/6 729/652/6 +f 738/657/3 739/658/3 737/659/3 +f 737/659/1 743/660/1 738/657/1 +f 738/657/4 744/661/4 740/662/4 +f 739/658/5 742/663/5 737/659/5 +f 740/662/2 741/664/2 739/658/2 +f 747/665/6 746/666/6 745/667/6 +f 754/668/4 755/669/4 753/670/4 +f 748/671/4 751/672/4 746/666/4 +f 745/673/5 749/674/5 747/675/5 +f 747/675/2 752/676/2 748/671/2 +f 746/677/1 750/678/1 745/673/1 +f 760/679/4 761/680/4 757/681/4 +f 756/682/2 757/681/2 755/683/2 +f 753/684/1 759/685/1 754/686/1 +f 754/668/6 760/687/6 756/688/6 +f 755/689/3 758/690/3 753/691/3 +f 763/692/6 768/693/6 764/694/6 +f 758/695/4 763/696/4 759/685/4 +f 759/697/4 764/694/4 760/687/4 +f 757/698/4 762/699/4 758/690/4 +f 761/700/3 766/701/3 762/699/3 +f 764/702/2 765/703/2 761/680/2 +f 762/704/1 767/705/1 763/696/1 +f 844/706/11 906/707/11 860/708/11 +f 905/709/12 843/710/12 859/711/12 +f 860/708/2 905/712/2 859/711/2 +f 913/713/1 844/706/1 843/710/1 +f 862/714/2 908/715/2 907/716/2 +f 846/717/1 916/718/1 847/719/1 +f 862/714/13 915/720/13 846/717/13 +f 916/721/14 863/722/14 847/719/14 +f 917/723/1 852/724/1 851/725/1 +f 868/726/2 909/727/2 867/728/2 +f 852/724/15 910/729/15 868/726/15 +f 867/728/16 917/730/16 851/725/16 +f 870/731/2 912/732/2 911/733/2 +f 854/734/1 920/735/1 855/736/1 +f 920/737/17 871/738/17 855/736/17 +f 870/731/18 919/739/18 854/734/18 +f 959/740/4 970/741/4 958/742/4 +f 960/743/4 971/744/4 959/745/4 +f 961/746/4 972/747/4 960/748/4 +f 962/749/4 973/750/4 961/751/4 +f 962/752/4 975/753/4 974/754/4 +f 964/755/4 975/756/4 963/757/4 +f 964/758/4 977/759/4 976/760/4 +f 965/761/4 978/762/4 977/763/4 +f 967/764/4 978/765/4 966/766/4 +f 968/767/4 979/768/4 967/769/4 +f 968/770/4 969/771/4 980/772/4 +f 957/773/4 970/774/4 969/775/4 +f 991/776/4 982/777/4 985/778/4 +f 998/779/5 1009/780/5 1010/781/5 +f 1004/782/5 1005/783/5 993/784/5 +f 994/785/5 1007/786/5 995/787/5 +f 1002/788/5 1013/789/5 1014/790/5 +f 998/791/5 1011/792/5 999/793/5 +f 996/794/5 1007/795/5 1008/796/5 +f 1002/797/5 1015/798/5 1003/799/5 +f 999/800/5 1012/801/5 1000/802/5 +f 996/803/5 1009/804/5 997/805/5 +f 1004/806/5 1015/807/5 1016/808/5 +f 993/809/5 1006/810/5 994/811/5 +f 1000/812/5 1013/813/5 1001/814/5 +f 1026/815/5 1039/816/5 1027/817/5 +f 1023/818/5 1036/819/5 1024/820/5 +f 1020/821/5 1033/822/5 1021/823/5 +f 1028/824/5 1039/825/5 1040/826/5 +f 1017/827/5 1029/828/5 1018/829/5 +f 1024/820/5 1037/830/5 1025/831/5 +f 1022/832/5 1033/833/5 1034/834/5 +f 1028/824/5 1030/835/5 1017/827/5 +f 1018/829/5 1031/836/5 1019/837/5 +f 1026/838/5 1037/839/5 1038/840/5 +f 1022/832/5 1035/841/5 1023/818/5 +f 1020/821/5 1031/842/5 1032/843/5 +f 1042/844/5 1051/845/5 1047/846/5 +f 1069/847/2 1082/848/2 1070/849/2 +f 1076/850/2 1077/851/2 1065/852/2 +f 1066/853/2 1079/854/2 1067/855/2 +f 1074/856/2 1085/857/2 1086/858/2 +f 1071/859/2 1082/860/2 1083/861/2 +f 1068/862/2 1079/863/2 1080/864/2 +f 1074/865/2 1087/866/2 1075/867/2 +f 1071/859/2 1084/868/2 1072/869/2 +f 1068/862/2 1081/870/2 1069/847/2 +f 1076/850/2 1087/871/2 1088/872/2 +f 1066/853/2 1077/873/2 1078/874/2 +f 1073/875/2 1084/876/2 1085/877/2 +f 1098/878/2 1111/879/2 1099/880/2 +f 1095/881/2 1108/882/2 1096/883/2 +f 1092/884/2 1105/885/2 1093/886/2 +f 1100/887/2 1111/888/2 1112/889/2 +f 1090/890/2 1102/891/2 1101/892/2 +f 1097/893/2 1108/894/2 1109/895/2 +f 1093/886/2 1106/896/2 1094/897/2 +f 1100/887/2 1102/898/2 1089/899/2 +f 1090/890/2 1103/900/2 1091/901/2 +f 1098/902/2 1109/903/2 1110/904/2 +f 1095/881/2 1106/905/2 1107/906/2 +f 1092/884/2 1103/907/2 1104/908/2 +f 1123/909/2 1119/910/2 1115/911/2 +f 1125/912/19 1126/913/19 1127/914/19 +f 1126/913/20 1125/915/20 1130/916/20 +f 1125/912/21 1127/917/21 1128/918/21 +f 1125/915/22 1128/919/22 1129/920/22 +f 1125/915/23 1129/921/23 1130/922/23 +f 1126/913/24 1130/923/24 1135/924/24 +f 1127/917/25 1126/925/25 1131/926/25 +f 1128/919/26 1127/917/26 1132/927/26 +f 1129/920/27 1128/918/27 1133/928/27 +f 1130/916/28 1129/920/28 1134/929/28 +f 1126/925/29 1135/924/29 1131/930/29 +f 1127/914/30 1131/926/30 1132/931/30 +f 1128/919/31 1132/931/31 1133/932/31 +f 1129/921/32 1133/933/32 1134/929/32 +f 1130/916/33 1134/934/33 1135/935/33 +f 1131/930/34 1135/935/34 1136/936/34 +f 1132/937/35 1131/930/35 1136/938/35 +f 1133/928/36 1132/931/36 1136/938/36 +f 1134/934/37 1133/932/37 1136/936/37 +f 1135/924/38 1134/934/38 1136/938/38 +f 1618/939/4 1619/940/4 1617/941/4 +f 1624/942/4 1625/943/4 1621/944/4 +f 1620/945/2 1621/944/2 1619/946/2 +f 1617/947/1 1623/948/1 1618/949/1 +f 1618/939/6 1624/950/6 1620/951/6 +f 1619/952/3 1622/953/3 1617/954/3 +f 1627/955/6 1632/956/6 1628/957/6 +f 1622/958/4 1627/959/4 1623/948/4 +f 1623/960/4 1628/957/4 1624/950/4 +f 1621/961/4 1626/962/4 1622/953/4 +f 1625/963/3 1630/964/3 1626/962/3 +f 1628/965/2 1629/966/2 1625/943/2 +f 1626/967/1 1631/968/1 1627/959/1 +f 1634/969/5 1635/970/5 1633/971/5 +f 1640/972/5 1641/973/5 1637/974/5 +f 1636/975/1 1637/974/1 1635/976/1 +f 1633/977/2 1639/978/2 1634/979/2 +f 1634/969/6 1640/980/6 1636/981/6 +f 1635/982/3 1638/983/3 1633/984/3 +f 1643/985/6 1648/986/6 1644/987/6 +f 1638/988/5 1643/989/5 1639/978/5 +f 1639/990/5 1644/987/5 1640/980/5 +f 1637/991/5 1642/992/5 1638/983/5 +f 1641/993/3 1646/994/3 1642/992/3 +f 1644/995/1 1645/996/1 1641/973/1 +f 1642/997/2 1647/998/2 1643/989/2 +f 1650/999/5 1651/1000/5 1649/1001/5 +f 1656/1002/5 1657/1003/5 1653/1004/5 +f 1652/1005/1 1653/1004/1 1651/1006/1 +f 1649/1007/2 1655/1008/2 1650/1009/2 +f 1650/999/6 1656/1010/6 1652/1011/6 +f 1651/1012/3 1654/1013/3 1649/1014/3 +f 1659/1015/6 1664/1016/6 1660/1017/6 +f 1654/1018/5 1659/1019/5 1655/1008/5 +f 1655/1020/5 1660/1017/5 1656/1010/5 +f 1653/1021/5 1658/1022/5 1654/1013/5 +f 1657/1023/3 1662/1024/3 1658/1022/3 +f 1660/1025/1 1661/1026/1 1657/1003/1 +f 1658/1027/2 1663/1028/2 1659/1019/2 +f 1667/1029/6 1666/1030/6 1665/1031/6 +f 1669/1032/3 1676/1033/3 1672/1034/3 +f 1667/1035/2 1672/1034/2 1668/1036/2 +f 1666/1037/1 1670/1038/1 1665/1039/1 +f 1668/1040/4 1671/1041/4 1666/1030/4 +f 1665/1042/5 1669/1043/5 1667/1044/5 +f 1676/1045/4 1679/1046/4 1675/1047/4 +f 1671/1048/3 1674/1049/3 1670/1038/3 +f 1672/1050/3 1675/1047/3 1671/1041/3 +f 1670/1051/3 1673/1052/3 1669/1043/3 +f 1674/1053/5 1677/1054/5 1673/1052/5 +f 1673/1055/2 1680/1056/2 1676/1033/2 +f 1675/1057/1 1678/1058/1 1674/1049/1 +f 1683/1059/6 1682/1060/6 1681/1061/6 +f 1685/1062/3 1692/1063/3 1688/1064/3 +f 1683/1065/2 1688/1064/2 1684/1066/2 +f 1682/1067/1 1686/1068/1 1681/1069/1 +f 1684/1070/4 1687/1071/4 1682/1060/4 +f 1681/1072/5 1685/1073/5 1683/1074/5 +f 1692/1075/4 1695/1076/4 1691/1077/4 +f 1687/1078/3 1690/1079/3 1686/1068/3 +f 1688/1080/3 1691/1077/3 1687/1071/3 +f 1686/1081/3 1689/1082/3 1685/1073/3 +f 1690/1083/5 1693/1084/5 1689/1082/5 +f 1689/1085/2 1696/1086/2 1692/1063/2 +f 1691/1087/1 1694/1088/1 1690/1079/1 +f 1699/1089/6 1698/1090/6 1697/1091/6 +f 1701/1092/3 1708/1093/3 1704/1094/3 +f 1699/1095/2 1704/1094/2 1700/1096/2 +f 1698/1097/1 1702/1098/1 1697/1099/1 +f 1700/1100/4 1703/1101/4 1698/1090/4 +f 1697/1102/5 1701/1103/5 1699/1104/5 +f 1708/1105/4 1711/1106/4 1707/1107/4 +f 1703/1108/3 1706/1109/3 1702/1098/3 +f 1704/1110/3 1707/1107/3 1703/1101/3 +f 1702/1111/3 1705/1112/3 1701/1103/3 +f 1706/1113/5 1709/1114/5 1705/1112/5 +f 1705/1115/2 1712/1116/2 1708/1093/2 +f 1707/1117/1 1710/1118/1 1706/1109/1 +f 1715/1119/6 1714/1120/6 1713/1121/6 +f 1717/1122/3 1724/1123/3 1720/1124/3 +f 1715/1125/2 1720/1124/2 1716/1126/2 +f 1714/1127/1 1718/1128/1 1713/1129/1 +f 1716/1130/4 1719/1131/4 1714/1120/4 +f 1713/1132/5 1717/1133/5 1715/1134/5 +f 1724/1135/4 1727/1136/4 1723/1137/4 +f 1719/1138/3 1722/1139/3 1718/1128/3 +f 1720/1140/3 1723/1137/3 1719/1131/3 +f 1718/1141/3 1721/1142/3 1717/1133/3 +f 1722/1143/5 1725/1144/5 1721/1142/5 +f 1721/1145/2 1728/1146/2 1724/1123/2 +f 1723/1147/1 1726/1148/1 1722/1139/1 +f 1731/1149/6 1730/1150/6 1729/1151/6 +f 1733/1152/3 1740/1153/3 1736/1154/3 +f 1731/1155/2 1736/1154/2 1732/1156/2 +f 1730/1157/1 1734/1158/1 1729/1159/1 +f 1732/1160/4 1735/1161/4 1730/1150/4 +f 1729/1162/5 1733/1163/5 1731/1164/5 +f 1740/1165/4 1743/1166/4 1739/1167/4 +f 1735/1168/3 1738/1169/3 1734/1158/3 +f 1736/1170/3 1739/1167/3 1735/1161/3 +f 1734/1171/3 1737/1172/3 1733/1163/3 +f 1738/1173/5 1741/1174/5 1737/1172/5 +f 1737/1175/2 1744/1176/2 1740/1153/2 +f 1739/1177/1 1742/1178/1 1738/1169/1 +f 1747/1179/6 1746/1180/6 1745/1181/6 +f 1749/1182/3 1756/1183/3 1752/1184/3 +f 1747/1185/2 1752/1184/2 1748/1186/2 +f 1746/1187/1 1750/1188/1 1745/1189/1 +f 1748/1190/4 1751/1191/4 1746/1180/4 +f 1745/1192/5 1749/1193/5 1747/1194/5 +f 1756/1195/4 1759/1196/4 1755/1197/4 +f 1751/1198/3 1754/1199/3 1750/1188/3 +f 1752/1200/3 1755/1197/3 1751/1191/3 +f 1750/1201/3 1753/1202/3 1749/1193/3 +f 1754/1203/5 1757/1204/5 1753/1202/5 +f 1753/1205/2 1760/1206/2 1756/1183/2 +f 1755/1207/1 1758/1208/1 1754/1199/1 +f 1763/1209/6 1762/1210/6 1761/1211/6 +f 1765/1212/3 1772/1213/3 1768/1214/3 +f 1763/1215/2 1768/1214/2 1764/1216/2 +f 1762/1217/1 1766/1218/1 1761/1219/1 +f 1764/1220/4 1767/1221/4 1762/1210/4 +f 1761/1222/5 1765/1223/5 1763/1224/5 +f 1772/1225/4 1775/1226/4 1771/1227/4 +f 1767/1228/3 1770/1229/3 1766/1218/3 +f 1768/1230/3 1771/1227/3 1767/1221/3 +f 1766/1231/3 1769/1232/3 1765/1223/3 +f 1770/1233/5 1773/1234/5 1769/1232/5 +f 1769/1235/2 1776/1236/2 1772/1213/2 +f 1771/1237/1 1774/1238/1 1770/1229/1 +f 1779/1239/6 1778/1240/6 1777/1241/6 +f 1781/1242/3 1788/1243/3 1784/1244/3 +f 1779/1245/2 1784/1244/2 1780/1246/2 +f 1778/1247/1 1782/1248/1 1777/1249/1 +f 1780/1250/4 1783/1251/4 1778/1240/4 +f 1777/1252/5 1781/1253/5 1779/1254/5 +f 1788/1255/4 1791/1256/4 1787/1257/4 +f 1783/1258/3 1786/1259/3 1782/1248/3 +f 1784/1260/3 1787/1257/3 1783/1251/3 +f 1782/1261/3 1785/1262/3 1781/1253/3 +f 1786/1263/5 1789/1264/5 1785/1262/5 +f 1785/1265/2 1792/1266/2 1788/1243/2 +f 1787/1267/1 1790/1268/1 1786/1259/1 +f 1795/1269/6 1794/1270/6 1793/1271/6 +f 1797/1272/3 1804/1273/3 1800/1274/3 +f 1795/1275/2 1800/1274/2 1796/1276/2 +f 1794/1277/1 1798/1278/1 1793/1279/1 +f 1796/1280/4 1799/1281/4 1794/1270/4 +f 1793/1282/5 1797/1283/5 1795/1284/5 +f 1804/1285/4 1807/1286/4 1803/1287/4 +f 1799/1288/3 1802/1289/3 1798/1278/3 +f 1800/1290/3 1803/1287/3 1799/1281/3 +f 1798/1291/3 1801/1292/3 1797/1283/3 +f 1802/1293/5 1805/1294/5 1801/1292/5 +f 1801/1295/2 1808/1296/2 1804/1273/2 +f 1803/1297/1 1806/1298/1 1802/1289/1 +f 1811/1299/6 1810/1300/6 1809/1301/6 +f 1813/1302/3 1820/1303/3 1816/1304/3 +f 1811/1305/2 1816/1304/2 1812/1306/2 +f 1810/1307/1 1814/1308/1 1809/1309/1 +f 1812/1310/4 1815/1311/4 1810/1300/4 +f 1809/1312/5 1813/1313/5 1811/1314/5 +f 1820/1315/4 1823/1316/4 1819/1317/4 +f 1815/1318/3 1818/1319/3 1814/1308/3 +f 1816/1320/3 1819/1317/3 1815/1311/3 +f 1814/1321/3 1817/1322/3 1813/1313/3 +f 1818/1323/5 1821/1324/5 1817/1322/5 +f 1817/1325/2 1824/1326/2 1820/1303/2 +f 1819/1327/1 1822/1328/1 1818/1319/1 +f 1827/1329/6 1826/1330/6 1825/1331/6 +f 1829/1332/3 1836/1333/3 1832/1334/3 +f 1827/1335/2 1832/1334/2 1828/1336/2 +f 1826/1337/1 1830/1338/1 1825/1339/1 +f 1828/1340/4 1831/1341/4 1826/1330/4 +f 1825/1342/5 1829/1343/5 1827/1344/5 +f 1836/1345/4 1839/1346/4 1835/1347/4 +f 1831/1348/3 1834/1349/3 1830/1338/3 +f 1832/1350/3 1835/1347/3 1831/1341/3 +f 1830/1351/3 1833/1352/3 1829/1343/3 +f 1834/1353/5 1837/1354/5 1833/1352/5 +f 1833/1355/2 1840/1356/2 1836/1333/2 +f 1835/1357/1 1838/1358/1 1834/1349/1 +f 1843/1359/6 1842/1360/6 1841/1361/6 +f 1845/1362/3 1852/1363/3 1848/1364/3 +f 1843/1365/2 1848/1364/2 1844/1366/2 +f 1842/1367/1 1846/1368/1 1841/1369/1 +f 1844/1370/4 1847/1371/4 1842/1360/4 +f 1841/1372/5 1845/1373/5 1843/1374/5 +f 1852/1375/4 1855/1376/4 1851/1377/4 +f 1847/1378/3 1850/1379/3 1846/1368/3 +f 1848/1380/3 1851/1377/3 1847/1371/3 +f 1846/1381/3 1849/1382/3 1845/1373/3 +f 1850/1383/5 1853/1384/5 1849/1382/5 +f 1849/1385/2 1856/1386/2 1852/1363/2 +f 1851/1387/1 1854/1388/1 1850/1379/1 +f 1859/1389/6 1858/1390/6 1857/1391/6 +f 1861/1392/3 1868/1393/3 1864/1394/3 +f 1859/1395/2 1864/1394/2 1860/1396/2 +f 1858/1397/1 1862/1398/1 1857/1399/1 +f 1860/1400/4 1863/1401/4 1858/1390/4 +f 1857/1402/5 1861/1403/5 1859/1404/5 +f 1868/1405/4 1871/1406/4 1867/1407/4 +f 1863/1408/3 1866/1409/3 1862/1398/3 +f 1864/1410/3 1867/1407/3 1863/1401/3 +f 1862/1411/3 1865/1412/3 1861/1403/3 +f 1866/1413/5 1869/1414/5 1865/1412/5 +f 1865/1415/2 1872/1416/2 1868/1393/2 +f 1867/1417/1 1870/1418/1 1866/1409/1 +f 1875/1419/6 1874/1420/6 1873/1421/6 +f 1877/1422/3 1884/1423/3 1880/1424/3 +f 1875/1425/2 1880/1424/2 1876/1426/2 +f 1874/1427/1 1878/1428/1 1873/1429/1 +f 1876/1430/4 1879/1431/4 1874/1420/4 +f 1873/1432/5 1877/1433/5 1875/1434/5 +f 1884/1435/4 1887/1436/4 1883/1437/4 +f 1879/1438/3 1882/1439/3 1878/1428/3 +f 1880/1440/3 1883/1437/3 1879/1431/3 +f 1878/1441/3 1881/1442/3 1877/1433/3 +f 1882/1443/5 1885/1444/5 1881/1442/5 +f 1881/1445/2 1888/1446/2 1884/1423/2 +f 1883/1447/1 1886/1448/1 1882/1439/1 +f 1891/1449/6 1890/1450/6 1889/1451/6 +f 1893/1452/3 1900/1453/3 1896/1454/3 +f 1891/1455/2 1896/1454/2 1892/1456/2 +f 1890/1457/1 1894/1458/1 1889/1459/1 +f 1892/1460/4 1895/1461/4 1890/1450/4 +f 1889/1462/5 1893/1463/5 1891/1464/5 +f 1900/1465/4 1903/1466/4 1899/1467/4 +f 1895/1468/3 1898/1469/3 1894/1458/3 +f 1896/1470/3 1899/1467/3 1895/1461/3 +f 1894/1471/3 1897/1472/3 1893/1463/3 +f 1898/1473/5 1901/1474/5 1897/1472/5 +f 1897/1475/2 1904/1476/2 1900/1453/2 +f 1899/1477/1 1902/1478/1 1898/1469/1 +f 1907/1479/6 1906/1480/6 1905/1481/6 +f 1909/1482/3 1916/1483/3 1912/1484/3 +f 1907/1485/2 1912/1484/2 1908/1486/2 +f 1906/1487/1 1910/1488/1 1905/1489/1 +f 1908/1490/4 1911/1491/4 1906/1480/4 +f 1905/1492/5 1909/1493/5 1907/1494/5 +f 1916/1495/4 1919/1496/4 1915/1497/4 +f 1911/1498/3 1914/1499/3 1910/1488/3 +f 1912/1500/3 1915/1497/3 1911/1491/3 +f 1910/1501/3 1913/1502/3 1909/1493/3 +f 1914/1503/5 1917/1504/5 1913/1502/5 +f 1913/1505/2 1920/1506/2 1916/1483/2 +f 1915/1507/1 1918/1508/1 1914/1499/1 +f 1923/1509/6 1922/1510/6 1921/1511/6 +f 1925/1512/3 1932/1513/3 1928/1514/3 +f 1923/1515/2 1928/1514/2 1924/1516/2 +f 1922/1517/1 1926/1518/1 1921/1519/1 +f 1924/1520/4 1927/1521/4 1922/1510/4 +f 1921/1522/5 1925/1523/5 1923/1524/5 +f 1932/1525/4 1935/1526/4 1931/1527/4 +f 1927/1528/3 1930/1529/3 1926/1518/3 +f 1928/1530/3 1931/1527/3 1927/1521/3 +f 1926/1531/3 1929/1532/3 1925/1523/3 +f 1930/1533/5 1933/1534/5 1929/1532/5 +f 1929/1535/2 1936/1536/2 1932/1513/2 +f 1931/1537/1 1934/1538/1 1930/1529/1 +f 2010/1539/5 2019/1540/5 2016/1541/5 +f 2044/1542/5 2031/1543/5 2032/1544/5 +f 2044/1545/5 2021/1546/5 2033/1547/5 +f 2033/1548/5 2022/1549/5 2034/1550/5 +f 2035/1551/5 2022/1552/5 2023/1553/5 +f 2036/1554/5 2023/1555/5 2024/1556/5 +f 2037/1557/5 2024/1558/5 2025/1559/5 +f 2037/1560/5 2026/1561/5 2038/1562/5 +f 2039/1563/5 2026/1564/5 2027/1565/5 +f 2039/1566/5 2028/1567/5 2040/1568/5 +f 2040/1569/5 2029/1570/5 2041/1571/5 +f 2041/1572/5 2030/1573/5 2042/1574/5 +f 2042/1575/5 2031/1576/5 2043/1577/5 +f 2190/1578/39 2203/1579/39 2202/1580/39 +f 2192/1581/39 2203/1582/39 2191/1583/39 +f 2193/1584/39 2204/1585/39 2192/1586/39 +f 2194/1587/39 2205/1588/39 2193/1589/39 +f 2194/1590/39 2207/1591/39 2206/1592/39 +f 2196/1593/39 2207/1594/39 2195/1595/39 +f 2196/1596/39 2209/1597/39 2208/1598/39 +f 2197/1599/39 2210/1600/39 2209/1601/39 +f 2198/1602/39 2211/1603/39 2210/1604/39 +f 2199/1605/39 2212/1606/39 2211/1607/39 +f 2189/1608/39 2212/1609/39 2200/1610/39 +f 2189/1611/39 2202/1612/39 2201/1613/39 +f 2217/1614/39 2221/1615/39 2214/1616/39 +f 2230/1617/40 2241/1618/40 2242/1619/40 +f 2225/1620/40 2248/1621/40 2237/1622/40 +f 2226/1623/40 2239/1624/40 2227/1625/40 +f 2234/1626/40 2245/1627/40 2246/1628/40 +f 2231/1629/40 2242/1630/40 2243/1631/40 +f 2227/1632/40 2240/1633/40 2228/1634/40 +f 2234/1635/40 2247/1636/40 2235/1637/40 +f 2232/1638/40 2243/1639/40 2244/1640/40 +f 2228/1641/40 2241/1642/40 2229/1643/40 +f 2236/1644/40 2247/1645/40 2248/1646/40 +f 2225/1647/40 2238/1648/40 2226/1649/40 +f 2232/1650/40 2245/1651/40 2233/1652/40 +f 2258/1653/40 2271/1654/40 2259/1655/40 +f 2255/1656/40 2268/1657/40 2256/1658/40 +f 2253/1659/40 2264/1660/40 2265/1661/40 +f 2259/1655/40 2272/1662/40 2260/1663/40 +f 2249/1664/40 2261/1665/40 2250/1666/40 +f 2256/1658/40 2269/1667/40 2257/1668/40 +f 2254/1669/40 2265/1670/40 2266/1671/40 +f 2260/1663/40 2262/1672/40 2249/1664/40 +f 2250/1666/40 2263/1673/40 2251/1674/40 +f 2258/1675/40 2269/1676/40 2270/1677/40 +f 2254/1669/40 2267/1678/40 2255/1656/40 +f 2252/1679/40 2263/1680/40 2264/1681/40 +f 2279/1682/40 2277/1683/40 2275/1684/40 +f 2323/1685/41 2334/1686/41 2322/1687/41 +f 2324/1688/41 2335/1689/41 2323/1690/41 +f 2325/1691/41 2336/1692/41 2324/1693/41 +f 2326/1694/41 2337/1695/41 2325/1696/41 +f 2326/1697/41 2339/1698/41 2338/1699/41 +f 2328/1700/41 2339/1701/41 2327/1702/41 +f 2328/1703/41 2341/1704/41 2340/1705/41 +f 2329/1706/41 2342/1707/41 2341/1708/41 +f 2330/1709/41 2343/1710/41 2342/1711/41 +f 2331/1712/41 2344/1713/41 2343/1714/41 +f 2332/1715/41 2333/1716/41 2344/1717/41 +f 2321/1718/41 2334/1719/41 2333/1720/41 +f 2355/1721/41 2346/1722/41 2349/1723/41 +f 2362/1724/42 2373/1725/42 2374/1726/42 +f 2357/1727/42 2380/1728/42 2369/1729/42 +f 2358/1730/42 2371/1731/42 2359/1732/42 +f 2366/1733/42 2377/1734/42 2378/1735/42 +f 2363/1736/42 2374/1737/42 2375/1738/42 +f 2360/1739/42 2371/1740/42 2372/1741/42 +f 2366/1742/42 2379/1743/42 2367/1744/42 +f 2363/1745/42 2376/1746/42 2364/1747/42 +f 2360/1748/42 2373/1749/42 2361/1750/42 +f 2368/1751/42 2379/1752/42 2380/1753/42 +f 2357/1754/42 2370/1755/42 2358/1756/42 +f 2364/1757/42 2377/1758/42 2365/1759/42 +f 2390/1760/42 2403/1761/42 2391/1762/42 +f 2387/1763/42 2400/1764/42 2388/1765/42 +f 2384/1766/42 2397/1767/42 2385/1768/42 +f 2391/1762/42 2404/1769/42 2392/1770/42 +f 2381/1771/42 2393/1772/42 2382/1773/42 +f 2388/1765/42 2401/1774/42 2389/1775/42 +f 2386/1776/42 2397/1777/42 2398/1778/42 +f 2392/1770/42 2394/1779/42 2381/1771/42 +f 2382/1773/42 2395/1780/42 2383/1781/42 +f 2390/1782/42 2401/1783/42 2402/1784/42 +f 2387/1763/42 2398/1785/42 2399/1786/42 +f 2384/1766/42 2395/1787/42 2396/1788/42 +f 2415/1789/42 2411/1790/42 2407/1791/42 +f 2455/1792/43 2466/1793/43 2454/1794/43 +f 2456/1795/43 2467/1796/43 2455/1797/43 +f 2457/1798/43 2468/1799/43 2456/1800/43 +f 2458/1801/43 2469/1802/43 2457/1803/43 +f 2459/1804/43 2470/1805/43 2458/1806/43 +f 2460/1807/43 2471/1808/43 2459/1809/43 +f 2460/1810/43 2473/1811/43 2472/1812/43 +f 2461/1813/43 2474/1814/43 2473/1815/43 +f 2462/1816/43 2475/1817/43 2474/1818/43 +f 2464/1819/43 2475/1820/43 2463/1821/43 +f 2464/1822/43 2465/1823/43 2476/1824/43 +f 2453/1825/43 2466/1826/43 2465/1827/43 +f 2479/1828/43 2481/1829/43 2485/1830/43 +f 2493/1831/44 2506/1832/44 2494/1833/44 +f 2500/1834/44 2501/1835/44 2489/1836/44 +f 2491/1837/44 2502/1838/44 2503/1839/44 +f 2498/1840/44 2509/1841/44 2510/1842/44 +f 2494/1843/44 2507/1844/44 2495/1845/44 +f 2492/1846/44 2503/1847/44 2504/1848/44 +f 2498/1849/44 2511/1850/44 2499/1851/44 +f 2496/1852/44 2507/1853/44 2508/1854/44 +f 2493/1855/44 2504/1856/44 2505/1857/44 +f 2500/1858/44 2511/1859/44 2512/1860/44 +f 2490/1861/44 2501/1862/44 2502/1863/44 +f 2497/1864/44 2508/1865/44 2509/1866/44 +f 2523/1867/44 2534/1868/44 2535/1869/44 +f 2519/1870/44 2532/1871/44 2520/1872/44 +f 2517/1873/44 2528/1874/44 2529/1875/44 +f 2524/1876/44 2535/1877/44 2536/1878/44 +f 2514/1879/44 2526/1880/44 2525/1881/44 +f 2520/1872/44 2533/1882/44 2521/1883/44 +f 2518/1884/44 2529/1885/44 2530/1886/44 +f 2524/1876/44 2526/1887/44 2513/1888/44 +f 2514/1879/44 2527/1889/44 2515/1890/44 +f 2522/1891/44 2533/1892/44 2534/1893/44 +f 2518/1884/44 2531/1894/44 2519/1870/44 +f 2515/1890/44 2528/1895/44 2516/1896/44 +f 2541/1897/44 2539/1898/44 2547/1899/44 +f 2586/1900/45 2599/1901/45 2598/1902/45 +f 2588/1903/45 2599/1904/45 2587/1905/45 +f 2589/1906/45 2600/1907/45 2588/1908/45 +f 2590/1909/45 2601/1910/45 2589/1911/45 +f 2590/1912/45 2603/1913/45 2602/1914/45 +f 2592/1915/45 2603/1916/45 2591/1917/45 +f 2592/1918/45 2605/1919/45 2604/1920/45 +f 2593/1921/45 2606/1922/45 2605/1923/45 +f 2595/1924/45 2606/1925/45 2594/1926/45 +f 2596/1927/45 2607/1928/45 2595/1929/45 +f 2585/1930/45 2608/1931/45 2596/1932/45 +f 2585/1933/45 2598/1934/45 2597/1935/45 +f 2611/1936/45 2613/1937/45 2617/1938/45 +f 2626/1939/46 2637/1940/46 2638/1941/46 +f 2621/1942/46 2644/1943/46 2633/1944/46 +f 2623/1945/46 2634/1946/46 2635/1947/46 +f 2630/1948/46 2641/1949/46 2642/1950/46 +f 2627/1951/46 2638/1952/46 2639/1953/46 +f 2623/1954/46 2636/1955/46 2624/1956/46 +f 2630/1957/46 2643/1958/46 2631/1959/46 +f 2627/1960/46 2640/1961/46 2628/1962/46 +f 2624/1963/46 2637/1964/46 2625/1965/46 +f 2632/1966/46 2643/1967/46 2644/1968/46 +f 2621/1969/46 2634/1970/46 2622/1971/46 +f 2628/1972/46 2641/1973/46 2629/1974/46 +f 2654/1975/46 2667/1976/46 2655/1977/46 +f 2651/1978/46 2664/1979/46 2652/1980/46 +f 2648/1981/46 2661/1982/46 2649/1983/46 +f 2656/1984/46 2667/1985/46 2668/1986/46 +f 2646/1987/46 2658/1988/46 2657/1989/46 +f 2652/1980/46 2665/1990/46 2653/1991/46 +f 2650/1992/46 2661/1993/46 2662/1994/46 +f 2656/1984/46 2658/1995/46 2645/1996/46 +f 2646/1987/46 2659/1997/46 2647/1998/46 +f 2654/1999/46 2665/2000/46 2666/2001/46 +f 2651/1978/46 2662/2002/46 2663/2003/46 +f 2647/1998/46 2660/2004/46 2648/1981/46 +f 2670/2005/46 2679/2006/46 2675/2007/46 +f 2686/2008/4 2697/2009/4 2698/2010/4 +f 2692/2011/4 2693/2012/4 2681/2013/4 +f 2682/2014/4 2695/2015/4 2683/2016/4 +f 2690/2017/4 2701/2018/4 2702/2019/4 +f 2686/2020/4 2699/2021/4 2687/2022/4 +f 2684/2023/4 2695/2024/4 2696/2025/4 +f 2690/2026/4 2703/2027/4 2691/2028/4 +f 2688/2029/4 2699/2030/4 2700/2031/4 +f 2684/2032/4 2697/2033/4 2685/2034/4 +f 2692/2035/4 2703/2036/4 2704/2037/4 +f 2681/2038/4 2694/2039/4 2682/2040/4 +f 2688/2041/4 2701/2042/4 2689/2043/4 +f 2714/2044/4 2727/2045/4 2715/2046/4 +f 2712/2047/4 2723/2048/4 2724/2049/4 +f 2708/2050/4 2721/2051/4 2709/2052/4 +f 2716/2053/4 2727/2054/4 2728/2055/4 +f 2705/2056/4 2717/2057/4 2706/2058/4 +f 2712/2047/4 2725/2059/4 2713/2060/4 +f 2710/2061/4 2721/2062/4 2722/2063/4 +f 2716/2053/4 2718/2064/4 2705/2056/4 +f 2706/2058/4 2719/2065/4 2707/2066/4 +f 2714/2067/4 2725/2068/4 2726/2069/4 +f 2710/2061/4 2723/2070/4 2711/2071/4 +f 2708/2050/4 2719/2072/4 2720/2073/4 +f 2739/2074/4 2735/2075/4 2731/2076/4 +f 2757/2077/1 2770/2078/1 2758/2079/1 +f 2764/2080/1 2765/2081/1 2753/2082/1 +f 2754/2083/1 2767/2084/1 2755/2085/1 +f 2762/2086/1 2773/2087/1 2774/2088/1 +f 2759/2089/1 2770/2090/1 2771/2091/1 +f 2756/2092/1 2767/2093/1 2768/2094/1 +f 2762/2095/1 2775/2096/1 2763/2097/1 +f 2759/2089/1 2772/2098/1 2760/2099/1 +f 2756/2092/1 2769/2100/1 2757/2077/1 +f 2764/2080/1 2775/2101/1 2776/2102/1 +f 2754/2083/1 2765/2103/1 2766/2104/1 +f 2761/2105/1 2772/2106/1 2773/2107/1 +f 2786/2108/1 2799/2109/1 2787/2110/1 +f 2783/2111/1 2796/2112/1 2784/2113/1 +f 2780/2114/1 2793/2115/1 2781/2116/1 +f 2788/2117/1 2799/2118/1 2800/2119/1 +f 2778/2120/1 2790/2121/1 2789/2122/1 +f 2785/2123/1 2796/2124/1 2797/2125/1 +f 2781/2116/1 2794/2126/1 2782/2127/1 +f 2788/2117/1 2790/2128/1 2777/2129/1 +f 2778/2120/1 2791/2130/1 2779/2131/1 +f 2786/2132/1 2797/2133/1 2798/2134/1 +f 2783/2111/1 2794/2135/1 2795/2136/1 +f 2780/2114/1 2791/2137/1 2792/2138/1 +f 2811/2139/1 2807/2140/1 2803/2141/1 +f 2922/2142/44 2935/2143/44 2934/2144/44 +f 2924/2145/44 2935/2146/44 2923/2147/44 +f 2925/2148/44 2936/2149/44 2924/2150/44 +f 2926/2151/44 2937/2152/44 2925/2153/44 +f 2926/2154/44 2939/2155/44 2938/2156/44 +f 2928/2157/44 2939/2158/44 2927/2159/44 +f 2928/2160/44 2941/2161/44 2940/2162/44 +f 2929/2163/44 2942/2164/44 2941/2165/44 +f 2931/2166/44 2942/2167/44 2930/2168/44 +f 2932/2169/44 2943/2170/44 2931/2171/44 +f 2932/2172/44 2933/2173/44 2944/2174/44 +f 2921/2175/44 2934/2176/44 2933/2177/44 +f 2955/2178/44 2946/2179/44 2949/2180/44 +f 2962/2181/43 2973/2182/43 2974/2183/43 +f 2968/2184/43 2969/2185/43 2957/2186/43 +f 2958/2187/43 2971/2188/43 2959/2189/43 +f 2966/2190/43 2977/2191/43 2978/2192/43 +f 2963/2193/43 2974/2194/43 2975/2195/43 +f 2960/2196/43 2971/2197/43 2972/2198/43 +f 2966/2199/43 2979/2200/43 2967/2201/43 +f 2964/2202/43 2975/2203/43 2976/2204/43 +f 2960/2205/43 2973/2206/43 2961/2207/43 +f 2968/2208/43 2979/2209/43 2980/2210/43 +f 2957/2211/43 2970/2212/43 2958/2213/43 +f 2965/2214/43 2976/2215/43 2977/2216/43 +f 2991/2217/43 3002/2218/43 3003/2219/43 +f 2988/2220/43 2999/2221/43 3000/2222/43 +f 2985/2223/43 2996/2224/43 2997/2225/43 +f 2991/2217/43 3004/2226/43 2992/2227/43 +f 2981/2228/43 2993/2229/43 2982/2230/43 +f 2988/2220/43 3001/2231/43 2989/2232/43 +f 2985/2223/43 2998/2233/43 2986/2234/43 +f 2992/2227/43 2994/2235/43 2981/2228/43 +f 2982/2230/43 2995/2236/43 2983/2237/43 +f 2990/2238/43 3001/2239/43 3002/2240/43 +f 2986/2234/43 2999/2241/43 2987/2242/43 +f 2983/2237/43 2996/2243/43 2984/2244/43 +f 3013/2245/43 3011/2246/43 3007/2247/43 +f 3055/2248/46 3066/2249/46 3054/2250/46 +f 3056/2251/46 3067/2252/46 3055/2253/46 +f 3057/2254/46 3068/2255/46 3056/2256/46 +f 3058/2257/46 3069/2258/46 3057/2259/46 +f 3058/2260/46 3071/2261/46 3070/2262/46 +f 3060/2263/46 3071/2264/46 3059/2265/46 +f 3060/2266/46 3073/2267/46 3072/2268/46 +f 3061/2269/46 3074/2270/46 3073/2271/46 +f 3062/2272/46 3075/2273/46 3074/2274/46 +f 3064/2275/46 3075/2276/46 3063/2277/46 +f 3064/2278/46 3065/2279/46 3076/2280/46 +f 3054/2281/46 3065/2282/46 3053/2283/46 +f 3087/2284/46 3078/2285/46 3081/2286/46 +f 3093/2287/45 3106/2288/45 3094/2289/45 +f 3089/2290/45 3112/2291/45 3101/2292/45 +f 3090/2293/45 3103/2294/45 3091/2295/45 +f 3097/2296/45 3110/2297/45 3098/2298/45 +f 3095/2299/45 3106/2300/45 3107/2301/45 +f 3092/2302/45 3103/2303/45 3104/2304/45 +f 3098/2305/45 3111/2306/45 3099/2307/45 +f 3095/2308/45 3108/2309/45 3096/2310/45 +f 3092/2311/45 3105/2312/45 3093/2313/45 +f 3100/2314/45 3111/2315/45 3112/2316/45 +f 3089/2317/45 3102/2318/45 3090/2319/45 +f 3096/2320/45 3109/2321/45 3097/2322/45 +f 3123/2323/45 3134/2324/45 3135/2325/45 +f 3119/2326/45 3132/2327/45 3120/2328/45 +f 3116/2329/45 3129/2330/45 3117/2331/45 +f 3123/2323/45 3136/2332/45 3124/2333/45 +f 3113/2334/45 3125/2335/45 3114/2336/45 +f 3120/2328/45 3133/2337/45 3121/2338/45 +f 3117/2331/45 3130/2339/45 3118/2340/45 +f 3124/2333/45 3126/2341/45 3113/2334/45 +f 3114/2336/45 3127/2342/45 3115/2343/45 +f 3122/2344/45 3133/2345/45 3134/2346/45 +f 3119/2326/45 3130/2347/45 3131/2348/45 +f 3116/2329/45 3127/2349/45 3128/2350/45 +f 3147/2351/45 3143/2352/45 3139/2353/45 +f 3187/2354/40 3198/2355/40 3186/2356/40 +f 3188/2357/40 3199/2358/40 3187/2359/40 +f 3189/2360/40 3200/2361/40 3188/2362/40 +f 3190/2363/40 3201/2364/40 3189/2365/40 +f 3190/2366/40 3203/2367/40 3202/2368/40 +f 3192/2369/40 3203/2370/40 3191/2371/40 +f 3193/2372/40 3204/2373/40 3192/2374/40 +f 3193/2375/40 3206/2376/40 3205/2377/40 +f 3194/2378/40 3207/2379/40 3206/2380/40 +f 3196/2381/40 3207/2382/40 3195/2383/40 +f 3185/2384/40 3208/2385/40 3196/2386/40 +f 3185/2387/40 3198/2388/40 3197/2389/40 +f 3211/2390/40 3213/2391/40 3217/2392/40 +f 3225/2393/39 3238/2394/39 3226/2395/39 +f 3232/2396/39 3233/2397/39 3221/2398/39 +f 3223/2399/39 3234/2400/39 3235/2401/39 +f 3230/2402/39 3241/2403/39 3242/2404/39 +f 3226/2405/39 3239/2406/39 3227/2407/39 +f 3223/2408/39 3236/2409/39 3224/2410/39 +f 3230/2411/39 3243/2412/39 3231/2413/39 +f 3228/2414/39 3239/2415/39 3240/2416/39 +f 3224/2417/39 3237/2418/39 3225/2419/39 +f 3231/2420/39 3244/2421/39 3232/2422/39 +f 3221/2423/39 3234/2424/39 3222/2425/39 +f 3229/2426/39 3240/2427/39 3241/2428/39 +f 3255/2429/39 3266/2430/39 3267/2431/39 +f 3251/2432/39 3264/2433/39 3252/2434/39 +f 3249/2435/39 3260/2436/39 3261/2437/39 +f 3255/2429/39 3268/2438/39 3256/2439/39 +f 3245/2440/39 3257/2441/39 3246/2442/39 +f 3253/2443/39 3264/2444/39 3265/2445/39 +f 3250/2446/39 3261/2447/39 3262/2448/39 +f 3256/2439/39 3258/2449/39 3245/2440/39 +f 3246/2442/39 3259/2450/39 3247/2451/39 +f 3254/2452/39 3265/2453/39 3266/2454/39 +f 3250/2446/39 3263/2455/39 3251/2432/39 +f 3247/2451/39 3260/2456/39 3248/2457/39 +f 3273/2458/39 3271/2459/39 3279/2460/39 +f 3319/2461/42 3330/2462/42 3318/2463/42 +f 3320/2464/42 3331/2465/42 3319/2466/42 +f 3321/2467/42 3332/2468/42 3320/2469/42 +f 3322/2470/42 3333/2471/42 3321/2472/42 +f 3322/2473/42 3335/2474/42 3334/2475/42 +f 3323/2476/42 3336/2477/42 3335/2478/42 +f 3324/2479/42 3337/2480/42 3336/2481/42 +f 3325/2482/42 3338/2483/42 3337/2484/42 +f 3327/2485/42 3338/2486/42 3326/2487/42 +f 3328/2488/42 3339/2489/42 3327/2490/42 +f 3317/2491/42 3340/2492/42 3328/2493/42 +f 3317/2494/42 3330/2495/42 3329/2496/42 +f 3351/2497/42 3342/2498/42 3345/2499/42 +f 3358/2500/41 3369/2501/41 3370/2502/41 +f 3353/2503/41 3376/2504/41 3365/2505/41 +f 3355/2506/41 3366/2507/41 3367/2508/41 +f 3362/2509/41 3373/2510/41 3374/2511/41 +f 3359/2512/41 3370/2513/41 3371/2514/41 +f 3356/2515/41 3367/2516/41 3368/2517/41 +f 3362/2518/41 3375/2519/41 3363/2520/41 +f 3360/2521/41 3371/2522/41 3372/2523/41 +f 3356/2524/41 3369/2525/41 3357/2526/41 +f 3364/2527/41 3375/2528/41 3376/2529/41 +f 3353/2530/41 3366/2531/41 3354/2532/41 +f 3360/2533/41 3373/2534/41 3361/2535/41 +f 3386/2536/41 3399/2537/41 3387/2538/41 +f 3383/2539/41 3396/2540/41 3384/2541/41 +f 3380/2542/41 3393/2543/41 3381/2544/41 +f 3388/2545/41 3399/2546/41 3400/2547/41 +f 3378/2548/41 3390/2549/41 3389/2550/41 +f 3384/2541/41 3397/2551/41 3385/2552/41 +f 3382/2553/41 3393/2554/41 3394/2555/41 +f 3377/2556/41 3400/2557/41 3390/2558/41 +f 3378/2548/41 3391/2559/41 3379/2560/41 +f 3386/2561/41 3397/2562/41 3398/2563/41 +f 3383/2539/41 3394/2564/41 3395/2565/41 +f 3380/2542/41 3391/2566/41 3392/2567/41 +f 3411/2568/41 3409/2569/41 3407/2570/41 +f 78/1/1 126/2571/1 127/2/1 +f 79/4/1 127/2572/1 128/5/1 +f 128/7/1 113/2573/1 65/8/1 +f 113/10/1 114/2574/1 66/11/1 +f 114/13/1 115/2575/1 67/14/1 +f 115/16/1 116/2576/1 68/17/1 +f 116/19/1 117/2577/1 69/20/1 +f 117/22/1 118/2578/1 70/23/1 +f 118/25/1 119/2579/1 71/26/1 +f 71/28/1 119/2580/1 120/29/1 +f 72/31/1 120/2581/1 121/32/1 +f 73/34/1 121/2582/1 122/35/1 +f 74/37/1 122/2583/1 123/38/1 +f 75/40/1 123/2584/1 124/41/1 +f 76/43/1 124/2585/1 125/44/1 +f 77/46/1 125/2586/1 126/47/1 +f 95/49/2 96/2587/2 208/50/2 +f 81/52/2 193/2588/2 208/53/2 +f 82/55/2 194/2589/2 193/56/2 +f 83/58/2 195/2590/2 194/59/2 +f 84/61/2 196/2591/2 195/62/2 +f 85/64/2 197/2592/2 196/65/2 +f 86/67/2 198/2593/2 197/68/2 +f 87/70/2 199/2594/2 198/71/2 +f 87/73/2 88/2595/2 200/74/2 +f 88/76/2 89/2596/2 201/77/2 +f 89/79/2 90/2597/2 202/80/2 +f 90/82/2 91/2598/2 203/83/2 +f 91/85/2 92/2599/2 204/86/2 +f 92/88/2 93/2600/2 205/89/2 +f 93/91/2 94/2601/2 206/92/2 +f 94/94/2 95/2602/2 207/95/2 +f 237/97/2 238/2603/2 142/98/2 +f 238/100/2 239/2604/2 143/101/2 +f 143/103/2 239/2605/2 240/104/2 +f 240/106/2 225/2606/2 129/107/2 +f 225/109/2 226/2607/2 130/110/2 +f 130/112/2 226/2608/2 227/113/2 +f 227/115/2 228/2609/2 132/116/2 +f 228/118/2 229/2610/2 133/119/2 +f 133/121/2 229/2611/2 230/122/2 +f 134/124/2 230/2612/2 231/125/2 +f 231/127/2 232/2613/2 136/128/2 +f 232/130/2 233/2614/2 137/131/2 +f 137/133/2 233/2615/2 234/134/2 +f 138/136/2 234/2616/2 235/137/2 +f 235/139/2 236/2617/2 140/140/2 +f 236/142/2 237/2618/2 141/143/2 +f 254/145/1 286/2619/1 287/146/1 +f 287/148/1 288/2620/1 256/149/1 +f 256/151/1 288/2621/1 273/152/1 +f 241/154/1 273/2622/1 274/155/1 +f 274/157/1 275/2623/1 243/158/1 +f 243/160/1 275/2624/1 276/161/1 +f 276/163/1 277/2625/1 245/164/1 +f 277/166/1 278/2626/1 246/167/1 +f 278/169/1 279/2627/1 247/170/1 +f 247/172/1 279/2628/1 280/173/1 +f 248/175/1 280/2629/1 281/176/1 +f 281/178/1 282/2630/1 250/179/1 +f 282/181/1 283/2631/1 251/182/1 +f 283/184/1 284/2632/1 252/185/1 +f 252/187/1 284/2633/1 285/188/1 +f 253/190/1 285/2634/1 286/191/1 +f 191/193/1 399/2635/1 398/194/1 +f 191/196/1 192/2636/1 400/197/1 +f 177/199/1 385/2637/1 400/200/1 +f 178/202/1 386/2638/1 385/203/1 +f 178/205/1 179/2639/1 387/206/1 +f 180/208/1 388/2640/1 387/209/1 +f 180/211/1 181/2641/1 389/212/1 +f 181/214/1 182/2642/1 390/215/1 +f 182/217/1 183/2643/1 391/218/1 +f 184/220/1 392/2644/1 391/221/1 +f 185/223/1 393/2645/1 392/224/1 +f 185/226/1 186/2646/1 394/227/1 +f 186/229/1 187/2647/1 395/230/1 +f 188/232/1 396/2648/1 395/233/1 +f 189/235/1 397/2649/1 396/236/1 +f 190/238/1 398/2650/1 397/239/1 +f 414/241/2 415/2651/2 367/242/2 +f 367/244/2 415/2652/2 416/245/2 +f 416/247/2 401/2653/2 353/248/2 +f 401/250/2 402/2654/2 354/251/2 +f 354/253/2 402/2655/2 403/254/2 +f 403/256/2 404/2656/2 356/257/2 +f 404/259/2 405/2657/2 357/260/2 +f 357/262/2 405/2658/2 406/263/2 +f 358/265/2 406/2659/2 407/266/2 +f 407/268/2 408/2660/2 360/269/2 +f 408/271/2 409/2661/2 361/272/2 +f 361/274/2 409/2662/2 410/275/2 +f 362/277/2 410/2663/2 411/278/2 +f 411/280/2 412/2664/2 364/281/2 +f 412/283/2 413/2665/2 365/284/2 +f 413/286/2 414/2666/2 366/287/2 +f 301/289/2 429/2667/2 430/290/2 +f 430/292/2 431/2668/2 303/293/2 +f 431/295/2 432/2669/2 304/296/2 +f 432/298/2 417/2670/2 289/299/2 +f 417/301/2 418/2671/2 290/302/2 +f 290/304/2 418/2672/2 419/305/2 +f 419/307/2 420/2673/2 292/308/2 +f 292/310/2 420/2674/2 421/311/2 +f 421/313/2 422/2675/2 294/314/2 +f 294/316/2 422/2676/2 423/317/2 +f 423/319/2 424/2677/2 296/320/2 +f 296/322/2 424/2678/2 425/323/2 +f 297/325/2 425/2679/2 426/326/2 +f 426/328/2 427/2680/2 299/329/2 +f 427/331/2 428/2681/2 300/332/2 +f 428/334/2 429/2682/2 301/335/2 +f 435/339/2 433/2683/2 447/2684/2 +f 433/2683/2 434/2685/2 447/2684/2 +f 434/2685/2 448/2686/2 447/2684/2 +f 447/2684/2 446/2687/2 445/2688/2 +f 445/2688/2 444/2689/2 443/337/2 +f 443/337/2 442/2690/2 441/2691/2 +f 441/2691/2 440/2692/2 443/337/2 +f 440/2692/2 439/338/2 443/337/2 +f 439/338/2 438/2693/2 435/339/2 +f 438/2693/2 437/2694/2 435/339/2 +f 437/2694/2 436/2695/2 435/339/2 +f 447/2684/2 445/2688/2 435/339/2 +f 445/2688/2 443/337/2 435/339/2 +f 351/340/1 463/2696/1 462/341/1 +f 352/343/1 464/2697/1 463/344/1 +f 337/346/1 449/2698/1 464/347/1 +f 338/349/1 450/2699/1 449/350/1 +f 338/352/1 339/2700/1 451/353/1 +f 340/355/1 452/2701/1 451/356/1 +f 340/358/1 341/2702/1 453/359/1 +f 342/361/1 454/2703/1 453/362/1 +f 342/364/1 343/2704/1 455/365/1 +f 344/367/1 456/2705/1 455/368/1 +f 344/370/1 345/2706/1 457/371/1 +f 345/373/1 346/2707/1 458/374/1 +f 347/376/1 459/2708/1 458/377/1 +f 348/379/1 460/2709/1 459/380/1 +f 349/382/1 461/2710/1 460/383/1 +f 349/385/1 350/2711/1 462/386/1 +f 466/390/1 465/2712/1 467/2713/1 +f 467/2713/1 468/2714/1 466/390/1 +f 468/2714/1 469/2715/1 466/390/1 +f 469/2715/1 470/2716/1 471/2717/1 +f 471/2717/1 472/2718/1 473/388/1 +f 473/388/1 474/2719/1 475/2720/1 +f 475/2720/1 476/2721/1 477/389/1 +f 477/389/1 478/2722/1 479/2723/1 +f 479/2723/1 480/2724/1 466/390/1 +f 469/2715/1 471/2717/1 466/390/1 +f 471/2717/1 473/388/1 466/390/1 +f 473/388/1 475/2720/1 477/389/1 +f 477/389/1 479/2723/1 466/390/1 +f 546/391/3 548/398/3 547/392/3 +f 554/394/3 556/403/3 555/395/3 +f 546/391/4 551/2725/4 552/397/4 +f 547/392/5 549/2726/5 550/399/5 +f 548/398/2 552/2727/2 549/400/2 +f 545/393/1 550/2728/1 551/401/1 +f 554/394/4 559/2729/4 560/402/4 +f 555/395/5 557/2730/5 558/404/5 +f 556/403/2 560/2731/2 557/405/2 +f 553/396/1 558/2732/1 559/406/1 +f 562/407/3 564/414/3 563/408/3 +f 570/410/3 572/419/3 571/411/3 +f 562/407/4 567/2733/4 568/413/4 +f 563/408/5 565/2734/5 566/415/5 +f 564/414/2 568/2735/2 565/416/2 +f 561/409/1 566/2736/1 567/417/1 +f 570/410/4 575/2737/4 576/418/4 +f 571/411/5 573/2738/5 574/420/5 +f 572/419/2 576/2739/2 573/421/2 +f 569/412/1 574/2740/1 575/422/1 +f 578/423/4 582/431/4 584/424/4 +f 579/426/5 583/429/5 581/427/5 +f 580/425/3 584/424/3 583/429/3 +f 577/430/6 581/2741/6 582/431/6 +f 586/432/4 590/440/4 592/433/4 +f 587/435/5 591/438/5 589/436/5 +f 588/434/3 592/433/3 591/438/3 +f 585/439/6 589/2742/6 590/440/6 +f 594/441/4 598/449/4 600/442/4 +f 595/444/5 599/447/5 597/445/5 +f 596/443/3 600/442/3 599/447/3 +f 593/448/6 597/2743/6 598/449/6 +f 602/450/4 606/458/4 608/451/4 +f 603/453/5 607/456/5 605/454/5 +f 604/452/3 608/451/3 607/456/3 +f 601/457/6 605/2744/6 606/458/6 +f 611/459/6 612/470/6 610/460/6 +f 615/462/3 616/466/3 613/463/3 +f 611/465/7 613/463/7 616/466/7 +f 610/468/8 615/462/8 614/464/8 +f 612/470/4 616/466/4 615/462/4 +f 609/471/5 614/464/5 613/463/5 +f 619/473/6 620/484/6 618/474/6 +f 623/476/3 624/480/3 621/477/3 +f 619/479/7 621/477/7 624/480/7 +f 618/482/8 623/476/8 622/478/8 +f 620/484/4 624/480/4 623/476/4 +f 617/485/5 622/478/5 621/477/5 +f 626/487/4 631/497/4 632/488/4 +f 627/490/5 629/494/5 630/491/5 +f 628/493/2 632/488/2 629/494/2 +f 625/496/1 630/491/1 631/497/1 +f 634/499/4 639/509/4 640/500/4 +f 635/502/5 637/506/5 638/503/5 +f 636/505/2 640/500/2 637/506/2 +f 633/508/1 638/503/1 639/509/1 +f 642/511/4 647/521/4 648/512/4 +f 643/514/5 645/518/5 646/515/5 +f 644/517/2 648/512/2 645/518/2 +f 641/520/1 646/515/1 647/521/1 +f 650/523/4 655/533/4 656/524/4 +f 651/526/5 653/530/5 654/527/5 +f 652/529/2 656/524/2 653/530/2 +f 649/532/1 654/527/1 655/533/1 +f 648/512/6 647/521/6 646/515/6 +f 656/524/6 655/533/6 654/527/6 +f 632/488/6 631/497/6 630/491/6 +f 640/500/6 639/509/6 638/503/6 +f 658/535/4 662/543/4 664/536/4 +f 659/538/5 663/541/5 661/539/5 +f 660/537/3 664/536/3 663/541/3 +f 657/542/6 661/2745/6 662/543/6 +f 666/544/4 670/552/4 672/545/4 +f 667/547/5 671/550/5 669/548/5 +f 668/546/3 672/545/3 671/550/3 +f 665/551/6 669/2746/6 670/552/6 +f 674/553/4 678/561/4 680/554/4 +f 675/556/5 679/559/5 677/557/5 +f 676/555/3 680/554/3 679/559/3 +f 673/560/6 677/2747/6 678/561/6 +f 682/562/4 686/570/4 688/563/4 +f 683/565/5 687/568/5 685/566/5 +f 684/564/3 688/563/3 687/568/3 +f 681/569/6 685/2748/6 686/570/6 +f 691/571/3 692/582/3 690/572/3 +f 695/574/6 696/578/6 693/575/6 +f 691/577/9 693/575/9 696/578/9 +f 690/580/10 695/574/10 694/576/10 +f 692/582/5 696/578/5 695/574/5 +f 689/583/4 694/576/4 693/575/4 +f 699/585/3 700/596/3 698/586/3 +f 703/588/6 704/592/6 701/589/6 +f 699/591/9 701/589/9 704/592/9 +f 698/594/10 703/588/10 702/590/10 +f 700/596/5 704/592/5 703/588/5 +f 697/597/4 702/590/4 701/589/4 +f 707/599/2 708/605/2 706/600/2 +f 710/602/1 712/611/1 711/603/1 +f 708/605/4 712/611/4 710/606/4 +f 705/608/5 709/612/5 711/609/5 +f 707/599/3 711/603/3 712/611/3 +f 706/607/6 710/606/6 709/612/6 +f 715/613/6 716/624/6 714/614/6 +f 717/616/3 721/639/3 724/617/3 +f 715/619/2 717/616/2 720/618/2 +f 714/621/1 719/632/1 718/622/1 +f 716/624/4 720/634/4 719/625/4 +f 713/626/5 718/635/5 717/627/5 +f 724/629/4 728/2749/4 727/630/4 +f 719/632/3 723/641/3 722/633/3 +f 720/634/3 724/629/3 723/631/3 +f 718/635/3 722/637/3 721/636/3 +f 722/637/5 726/2750/5 725/638/5 +f 721/639/2 725/2751/2 728/640/2 +f 723/641/1 727/2752/1 726/642/1 +f 731/643/2 732/649/2 730/644/2 +f 734/646/1 736/655/1 735/647/1 +f 732/649/4 736/655/4 734/650/4 +f 729/652/5 733/656/5 735/653/5 +f 731/643/3 735/647/3 736/655/3 +f 730/651/6 734/650/6 733/656/6 +f 738/657/3 740/662/3 739/658/3 +f 737/659/1 742/2753/1 743/660/1 +f 738/657/4 743/2754/4 744/661/4 +f 739/658/5 741/2755/5 742/663/5 +f 740/662/2 744/2756/2 741/664/2 +f 747/665/6 748/671/6 746/666/6 +f 754/668/4 756/688/4 755/669/4 +f 748/671/4 752/676/4 751/672/4 +f 745/673/5 750/678/5 749/674/5 +f 747/675/2 749/674/2 752/676/2 +f 746/677/1 751/2757/1 750/678/1 +f 760/679/4 764/702/4 761/680/4 +f 756/682/2 760/679/2 757/681/2 +f 753/684/1 758/695/1 759/685/1 +f 754/668/6 759/697/6 760/687/6 +f 755/689/3 757/698/3 758/690/3 +f 763/692/6 767/2758/6 768/693/6 +f 758/695/4 762/704/4 763/696/4 +f 759/697/4 763/692/4 764/694/4 +f 757/698/4 761/700/4 762/699/4 +f 761/700/3 765/2759/3 766/701/3 +f 764/702/2 768/2760/2 765/703/2 +f 762/704/1 766/2761/1 767/705/1 +f 844/706/11 914/2762/11 906/707/11 +f 905/709/12 913/2763/12 843/710/12 +f 860/708/2 906/2764/2 905/712/2 +f 913/713/1 914/2765/1 844/706/1 +f 862/714/2 863/722/2 908/715/2 +f 846/717/1 915/2766/1 916/718/1 +f 862/714/13 907/2767/13 915/720/13 +f 916/721/14 908/2768/14 863/722/14 +f 917/723/1 918/2769/1 852/724/1 +f 868/726/2 910/2770/2 909/727/2 +f 852/724/15 918/2771/15 910/729/15 +f 867/728/16 909/2772/16 917/730/16 +f 870/731/2 871/738/2 912/732/2 +f 854/734/1 919/2773/1 920/735/1 +f 920/737/17 912/2774/17 871/738/17 +f 870/731/18 911/2775/18 919/739/18 +f 959/740/4 971/2776/4 970/741/4 +f 960/743/4 972/2777/4 971/744/4 +f 961/746/4 973/2778/4 972/747/4 +f 962/749/4 974/2779/4 973/750/4 +f 962/752/4 963/2780/4 975/753/4 +f 964/755/4 976/2781/4 975/756/4 +f 964/758/4 965/2782/4 977/759/4 +f 965/761/4 966/2783/4 978/762/4 +f 967/764/4 979/2784/4 978/765/4 +f 968/767/4 980/2785/4 979/768/4 +f 968/770/4 957/2786/4 969/771/4 +f 957/773/4 958/2787/4 970/774/4 +f 982/777/4 981/2788/4 985/778/4 +f 981/2788/4 983/2789/4 985/778/4 +f 983/2789/4 984/2790/4 985/778/4 +f 985/778/4 986/2791/4 987/2792/4 +f 987/2792/4 988/2793/4 989/2794/4 +f 989/2794/4 990/2795/4 991/776/4 +f 991/776/4 992/2796/4 982/777/4 +f 985/778/4 987/2792/4 989/2794/4 +f 989/2794/4 991/776/4 985/778/4 +f 998/779/5 997/2797/5 1009/780/5 +f 1004/782/5 1016/2798/5 1005/783/5 +f 994/785/5 1006/2799/5 1007/786/5 +f 1002/788/5 1001/2800/5 1013/789/5 +f 998/791/5 1010/2801/5 1011/792/5 +f 996/794/5 995/2802/5 1007/795/5 +f 1002/797/5 1014/2803/5 1015/798/5 +f 999/800/5 1011/2804/5 1012/801/5 +f 996/803/5 1008/2805/5 1009/804/5 +f 1004/806/5 1003/2806/5 1015/807/5 +f 993/809/5 1005/2807/5 1006/810/5 +f 1000/812/5 1012/2808/5 1013/813/5 +f 1026/815/5 1038/2809/5 1039/816/5 +f 1023/818/5 1035/2810/5 1036/819/5 +f 1020/821/5 1032/2811/5 1033/822/5 +f 1028/824/5 1027/817/5 1039/825/5 +f 1017/827/5 1030/2812/5 1029/828/5 +f 1024/820/5 1036/2813/5 1037/830/5 +f 1022/832/5 1021/823/5 1033/833/5 +f 1028/824/5 1040/2814/5 1030/835/5 +f 1018/829/5 1029/2815/5 1031/836/5 +f 1026/838/5 1025/831/5 1037/839/5 +f 1022/832/5 1034/2816/5 1035/841/5 +f 1020/821/5 1019/837/5 1031/842/5 +f 1043/2817/5 1041/2818/5 1042/844/5 +f 1042/844/5 1052/2819/5 1051/845/5 +f 1051/845/5 1050/2820/5 1047/846/5 +f 1050/2820/5 1049/2821/5 1047/846/5 +f 1049/2821/5 1048/2822/5 1047/846/5 +f 1047/846/5 1046/2823/5 1045/2824/5 +f 1045/2824/5 1044/2825/5 1047/846/5 +f 1044/2825/5 1043/2817/5 1047/846/5 +f 1043/2817/5 1042/844/5 1047/846/5 +f 1069/847/2 1081/2826/2 1082/848/2 +f 1076/850/2 1088/2827/2 1077/851/2 +f 1066/853/2 1078/2828/2 1079/854/2 +f 1074/856/2 1073/875/2 1085/857/2 +f 1071/859/2 1070/849/2 1082/860/2 +f 1068/862/2 1067/855/2 1079/863/2 +f 1074/865/2 1086/2829/2 1087/866/2 +f 1071/859/2 1083/2830/2 1084/868/2 +f 1068/862/2 1080/2831/2 1081/870/2 +f 1076/850/2 1075/867/2 1087/871/2 +f 1066/853/2 1065/852/2 1077/873/2 +f 1073/875/2 1072/869/2 1084/876/2 +f 1098/878/2 1110/2832/2 1111/879/2 +f 1095/881/2 1107/2833/2 1108/882/2 +f 1092/884/2 1104/2834/2 1105/885/2 +f 1100/887/2 1099/880/2 1111/888/2 +f 1090/890/2 1089/899/2 1102/891/2 +f 1097/893/2 1096/883/2 1108/894/2 +f 1093/886/2 1105/2835/2 1106/896/2 +f 1100/887/2 1112/2836/2 1102/898/2 +f 1090/890/2 1101/2837/2 1103/900/2 +f 1098/902/2 1097/893/2 1109/903/2 +f 1095/881/2 1094/897/2 1106/905/2 +f 1092/884/2 1091/901/2 1103/907/2 +f 1115/911/2 1113/2838/2 1114/2839/2 +f 1114/2839/2 1124/2840/2 1115/911/2 +f 1124/2840/2 1123/909/2 1115/911/2 +f 1123/909/2 1122/2841/2 1119/910/2 +f 1122/2841/2 1121/2842/2 1119/910/2 +f 1121/2842/2 1120/2843/2 1119/910/2 +f 1119/910/2 1118/2844/2 1117/2845/2 +f 1117/2845/2 1116/2846/2 1119/910/2 +f 1116/2846/2 1115/911/2 1119/910/2 +f 1618/939/4 1620/951/4 1619/940/4 +f 1624/942/4 1628/965/4 1625/943/4 +f 1620/945/2 1624/942/2 1621/944/2 +f 1617/947/1 1622/958/1 1623/948/1 +f 1618/939/6 1623/960/6 1624/950/6 +f 1619/952/3 1621/961/3 1622/953/3 +f 1627/955/6 1631/2847/6 1632/956/6 +f 1622/958/4 1626/967/4 1627/959/4 +f 1623/960/4 1627/955/4 1628/957/4 +f 1621/961/4 1625/963/4 1626/962/4 +f 1625/963/3 1629/2848/3 1630/964/3 +f 1628/965/2 1632/2849/2 1629/966/2 +f 1626/967/1 1630/2850/1 1631/968/1 +f 1634/969/5 1636/981/5 1635/970/5 +f 1640/972/5 1644/995/5 1641/973/5 +f 1636/975/1 1640/972/1 1637/974/1 +f 1633/977/2 1638/988/2 1639/978/2 +f 1634/969/6 1639/990/6 1640/980/6 +f 1635/982/3 1637/991/3 1638/983/3 +f 1643/985/6 1647/2851/6 1648/986/6 +f 1638/988/5 1642/997/5 1643/989/5 +f 1639/990/5 1643/985/5 1644/987/5 +f 1637/991/5 1641/993/5 1642/992/5 +f 1641/993/3 1645/2852/3 1646/994/3 +f 1644/995/1 1648/2853/1 1645/996/1 +f 1642/997/2 1646/2854/2 1647/998/2 +f 1650/999/5 1652/1011/5 1651/1000/5 +f 1656/1002/5 1660/1025/5 1657/1003/5 +f 1652/1005/1 1656/1002/1 1653/1004/1 +f 1649/1007/2 1654/1018/2 1655/1008/2 +f 1650/999/6 1655/1020/6 1656/1010/6 +f 1651/1012/3 1653/1021/3 1654/1013/3 +f 1659/1015/6 1663/2855/6 1664/1016/6 +f 1654/1018/5 1658/1027/5 1659/1019/5 +f 1655/1020/5 1659/1015/5 1660/1017/5 +f 1653/1021/5 1657/1023/5 1658/1022/5 +f 1657/1023/3 1661/2856/3 1662/1024/3 +f 1660/1025/1 1664/2857/1 1661/1026/1 +f 1658/1027/2 1662/2858/2 1663/1028/2 +f 1667/1029/6 1668/1040/6 1666/1030/6 +f 1669/1032/3 1673/1055/3 1676/1033/3 +f 1667/1035/2 1669/1032/2 1672/1034/2 +f 1666/1037/1 1671/1048/1 1670/1038/1 +f 1668/1040/4 1672/1050/4 1671/1041/4 +f 1665/1042/5 1670/1051/5 1669/1043/5 +f 1676/1045/4 1680/2859/4 1679/1046/4 +f 1671/1048/3 1675/1057/3 1674/1049/3 +f 1672/1050/3 1676/1045/3 1675/1047/3 +f 1670/1051/3 1674/1053/3 1673/1052/3 +f 1674/1053/5 1678/2860/5 1677/1054/5 +f 1673/1055/2 1677/2861/2 1680/1056/2 +f 1675/1057/1 1679/2862/1 1678/1058/1 +f 1683/1059/6 1684/1070/6 1682/1060/6 +f 1685/1062/3 1689/1085/3 1692/1063/3 +f 1683/1065/2 1685/1062/2 1688/1064/2 +f 1682/1067/1 1687/1078/1 1686/1068/1 +f 1684/1070/4 1688/1080/4 1687/1071/4 +f 1681/1072/5 1686/1081/5 1685/1073/5 +f 1692/1075/4 1696/2863/4 1695/1076/4 +f 1687/1078/3 1691/1087/3 1690/1079/3 +f 1688/1080/3 1692/1075/3 1691/1077/3 +f 1686/1081/3 1690/1083/3 1689/1082/3 +f 1690/1083/5 1694/2864/5 1693/1084/5 +f 1689/1085/2 1693/2865/2 1696/1086/2 +f 1691/1087/1 1695/2866/1 1694/1088/1 +f 1699/1089/6 1700/1100/6 1698/1090/6 +f 1701/1092/3 1705/1115/3 1708/1093/3 +f 1699/1095/2 1701/1092/2 1704/1094/2 +f 1698/1097/1 1703/1108/1 1702/1098/1 +f 1700/1100/4 1704/1110/4 1703/1101/4 +f 1697/1102/5 1702/1111/5 1701/1103/5 +f 1708/1105/4 1712/2867/4 1711/1106/4 +f 1703/1108/3 1707/1117/3 1706/1109/3 +f 1704/1110/3 1708/1105/3 1707/1107/3 +f 1702/1111/3 1706/1113/3 1705/1112/3 +f 1706/1113/5 1710/2868/5 1709/1114/5 +f 1705/1115/2 1709/2869/2 1712/1116/2 +f 1707/1117/1 1711/2870/1 1710/1118/1 +f 1715/1119/6 1716/1130/6 1714/1120/6 +f 1717/1122/3 1721/1145/3 1724/1123/3 +f 1715/1125/2 1717/1122/2 1720/1124/2 +f 1714/1127/1 1719/1138/1 1718/1128/1 +f 1716/1130/4 1720/1140/4 1719/1131/4 +f 1713/1132/5 1718/1141/5 1717/1133/5 +f 1724/1135/4 1728/2871/4 1727/1136/4 +f 1719/1138/3 1723/1147/3 1722/1139/3 +f 1720/1140/3 1724/1135/3 1723/1137/3 +f 1718/1141/3 1722/1143/3 1721/1142/3 +f 1722/1143/5 1726/2872/5 1725/1144/5 +f 1721/1145/2 1725/2873/2 1728/1146/2 +f 1723/1147/1 1727/2874/1 1726/1148/1 +f 1731/1149/6 1732/1160/6 1730/1150/6 +f 1733/1152/3 1737/1175/3 1740/1153/3 +f 1731/1155/2 1733/1152/2 1736/1154/2 +f 1730/1157/1 1735/1168/1 1734/1158/1 +f 1732/1160/4 1736/1170/4 1735/1161/4 +f 1729/1162/5 1734/1171/5 1733/1163/5 +f 1740/1165/4 1744/2875/4 1743/1166/4 +f 1735/1168/3 1739/1177/3 1738/1169/3 +f 1736/1170/3 1740/1165/3 1739/1167/3 +f 1734/1171/3 1738/1173/3 1737/1172/3 +f 1738/1173/5 1742/2876/5 1741/1174/5 +f 1737/1175/2 1741/2877/2 1744/1176/2 +f 1739/1177/1 1743/2878/1 1742/1178/1 +f 1747/1179/6 1748/1190/6 1746/1180/6 +f 1749/1182/3 1753/1205/3 1756/1183/3 +f 1747/1185/2 1749/1182/2 1752/1184/2 +f 1746/1187/1 1751/1198/1 1750/1188/1 +f 1748/1190/4 1752/1200/4 1751/1191/4 +f 1745/1192/5 1750/1201/5 1749/1193/5 +f 1756/1195/4 1760/2879/4 1759/1196/4 +f 1751/1198/3 1755/1207/3 1754/1199/3 +f 1752/1200/3 1756/1195/3 1755/1197/3 +f 1750/1201/3 1754/1203/3 1753/1202/3 +f 1754/1203/5 1758/2880/5 1757/1204/5 +f 1753/1205/2 1757/2881/2 1760/1206/2 +f 1755/1207/1 1759/2882/1 1758/1208/1 +f 1763/1209/6 1764/1220/6 1762/1210/6 +f 1765/1212/3 1769/1235/3 1772/1213/3 +f 1763/1215/2 1765/1212/2 1768/1214/2 +f 1762/1217/1 1767/1228/1 1766/1218/1 +f 1764/1220/4 1768/1230/4 1767/1221/4 +f 1761/1222/5 1766/1231/5 1765/1223/5 +f 1772/1225/4 1776/2883/4 1775/1226/4 +f 1767/1228/3 1771/1237/3 1770/1229/3 +f 1768/1230/3 1772/1225/3 1771/1227/3 +f 1766/1231/3 1770/1233/3 1769/1232/3 +f 1770/1233/5 1774/2884/5 1773/1234/5 +f 1769/1235/2 1773/2885/2 1776/1236/2 +f 1771/1237/1 1775/2886/1 1774/1238/1 +f 1779/1239/6 1780/1250/6 1778/1240/6 +f 1781/1242/3 1785/1265/3 1788/1243/3 +f 1779/1245/2 1781/1242/2 1784/1244/2 +f 1778/1247/1 1783/1258/1 1782/1248/1 +f 1780/1250/4 1784/1260/4 1783/1251/4 +f 1777/1252/5 1782/1261/5 1781/1253/5 +f 1788/1255/4 1792/2887/4 1791/1256/4 +f 1783/1258/3 1787/1267/3 1786/1259/3 +f 1784/1260/3 1788/1255/3 1787/1257/3 +f 1782/1261/3 1786/1263/3 1785/1262/3 +f 1786/1263/5 1790/2888/5 1789/1264/5 +f 1785/1265/2 1789/2889/2 1792/1266/2 +f 1787/1267/1 1791/2890/1 1790/1268/1 +f 1795/1269/6 1796/1280/6 1794/1270/6 +f 1797/1272/3 1801/1295/3 1804/1273/3 +f 1795/1275/2 1797/1272/2 1800/1274/2 +f 1794/1277/1 1799/1288/1 1798/1278/1 +f 1796/1280/4 1800/1290/4 1799/1281/4 +f 1793/1282/5 1798/1291/5 1797/1283/5 +f 1804/1285/4 1808/2891/4 1807/1286/4 +f 1799/1288/3 1803/1297/3 1802/1289/3 +f 1800/1290/3 1804/1285/3 1803/1287/3 +f 1798/1291/3 1802/1293/3 1801/1292/3 +f 1802/1293/5 1806/2892/5 1805/1294/5 +f 1801/1295/2 1805/2893/2 1808/1296/2 +f 1803/1297/1 1807/2894/1 1806/1298/1 +f 1811/1299/6 1812/1310/6 1810/1300/6 +f 1813/1302/3 1817/1325/3 1820/1303/3 +f 1811/1305/2 1813/1302/2 1816/1304/2 +f 1810/1307/1 1815/1318/1 1814/1308/1 +f 1812/1310/4 1816/1320/4 1815/1311/4 +f 1809/1312/5 1814/1321/5 1813/1313/5 +f 1820/1315/4 1824/2895/4 1823/1316/4 +f 1815/1318/3 1819/1327/3 1818/1319/3 +f 1816/1320/3 1820/1315/3 1819/1317/3 +f 1814/1321/3 1818/1323/3 1817/1322/3 +f 1818/1323/5 1822/2896/5 1821/1324/5 +f 1817/1325/2 1821/2897/2 1824/1326/2 +f 1819/1327/1 1823/2898/1 1822/1328/1 +f 1827/1329/6 1828/1340/6 1826/1330/6 +f 1829/1332/3 1833/1355/3 1836/1333/3 +f 1827/1335/2 1829/1332/2 1832/1334/2 +f 1826/1337/1 1831/1348/1 1830/1338/1 +f 1828/1340/4 1832/1350/4 1831/1341/4 +f 1825/1342/5 1830/1351/5 1829/1343/5 +f 1836/1345/4 1840/2899/4 1839/1346/4 +f 1831/1348/3 1835/1357/3 1834/1349/3 +f 1832/1350/3 1836/1345/3 1835/1347/3 +f 1830/1351/3 1834/1353/3 1833/1352/3 +f 1834/1353/5 1838/2900/5 1837/1354/5 +f 1833/1355/2 1837/2901/2 1840/1356/2 +f 1835/1357/1 1839/2902/1 1838/1358/1 +f 1843/1359/6 1844/1370/6 1842/1360/6 +f 1845/1362/3 1849/1385/3 1852/1363/3 +f 1843/1365/2 1845/1362/2 1848/1364/2 +f 1842/1367/1 1847/1378/1 1846/1368/1 +f 1844/1370/4 1848/1380/4 1847/1371/4 +f 1841/1372/5 1846/1381/5 1845/1373/5 +f 1852/1375/4 1856/2903/4 1855/1376/4 +f 1847/1378/3 1851/1387/3 1850/1379/3 +f 1848/1380/3 1852/1375/3 1851/1377/3 +f 1846/1381/3 1850/1383/3 1849/1382/3 +f 1850/1383/5 1854/2904/5 1853/1384/5 +f 1849/1385/2 1853/2905/2 1856/1386/2 +f 1851/1387/1 1855/2906/1 1854/1388/1 +f 1859/1389/6 1860/1400/6 1858/1390/6 +f 1861/1392/3 1865/1415/3 1868/1393/3 +f 1859/1395/2 1861/1392/2 1864/1394/2 +f 1858/1397/1 1863/1408/1 1862/1398/1 +f 1860/1400/4 1864/1410/4 1863/1401/4 +f 1857/1402/5 1862/1411/5 1861/1403/5 +f 1868/1405/4 1872/2907/4 1871/1406/4 +f 1863/1408/3 1867/1417/3 1866/1409/3 +f 1864/1410/3 1868/1405/3 1867/1407/3 +f 1862/1411/3 1866/1413/3 1865/1412/3 +f 1866/1413/5 1870/2908/5 1869/1414/5 +f 1865/1415/2 1869/2909/2 1872/1416/2 +f 1867/1417/1 1871/2910/1 1870/1418/1 +f 1875/1419/6 1876/1430/6 1874/1420/6 +f 1877/1422/3 1881/1445/3 1884/1423/3 +f 1875/1425/2 1877/1422/2 1880/1424/2 +f 1874/1427/1 1879/1438/1 1878/1428/1 +f 1876/1430/4 1880/1440/4 1879/1431/4 +f 1873/1432/5 1878/1441/5 1877/1433/5 +f 1884/1435/4 1888/2911/4 1887/1436/4 +f 1879/1438/3 1883/1447/3 1882/1439/3 +f 1880/1440/3 1884/1435/3 1883/1437/3 +f 1878/1441/3 1882/1443/3 1881/1442/3 +f 1882/1443/5 1886/2912/5 1885/1444/5 +f 1881/1445/2 1885/2913/2 1888/1446/2 +f 1883/1447/1 1887/2914/1 1886/1448/1 +f 1891/1449/6 1892/1460/6 1890/1450/6 +f 1893/1452/3 1897/1475/3 1900/1453/3 +f 1891/1455/2 1893/1452/2 1896/1454/2 +f 1890/1457/1 1895/1468/1 1894/1458/1 +f 1892/1460/4 1896/1470/4 1895/1461/4 +f 1889/1462/5 1894/1471/5 1893/1463/5 +f 1900/1465/4 1904/2915/4 1903/1466/4 +f 1895/1468/3 1899/1477/3 1898/1469/3 +f 1896/1470/3 1900/1465/3 1899/1467/3 +f 1894/1471/3 1898/1473/3 1897/1472/3 +f 1898/1473/5 1902/2916/5 1901/1474/5 +f 1897/1475/2 1901/2917/2 1904/1476/2 +f 1899/1477/1 1903/2918/1 1902/1478/1 +f 1907/1479/6 1908/1490/6 1906/1480/6 +f 1909/1482/3 1913/1505/3 1916/1483/3 +f 1907/1485/2 1909/1482/2 1912/1484/2 +f 1906/1487/1 1911/1498/1 1910/1488/1 +f 1908/1490/4 1912/1500/4 1911/1491/4 +f 1905/1492/5 1910/1501/5 1909/1493/5 +f 1916/1495/4 1920/2919/4 1919/1496/4 +f 1911/1498/3 1915/1507/3 1914/1499/3 +f 1912/1500/3 1916/1495/3 1915/1497/3 +f 1910/1501/3 1914/1503/3 1913/1502/3 +f 1914/1503/5 1918/2920/5 1917/1504/5 +f 1913/1505/2 1917/2921/2 1920/1506/2 +f 1915/1507/1 1919/2922/1 1918/1508/1 +f 1923/1509/6 1924/1520/6 1922/1510/6 +f 1925/1512/3 1929/1535/3 1932/1513/3 +f 1923/1515/2 1925/1512/2 1928/1514/2 +f 1922/1517/1 1927/1528/1 1926/1518/1 +f 1924/1520/4 1928/1530/4 1927/1521/4 +f 1921/1522/5 1926/1531/5 1925/1523/5 +f 1932/1525/4 1936/2923/4 1935/1526/4 +f 1927/1528/3 1931/1537/3 1930/1529/3 +f 1928/1530/3 1932/1525/3 1931/1527/3 +f 1926/1531/3 1930/1533/3 1929/1532/3 +f 1930/1533/5 1934/2924/5 1933/1534/5 +f 1929/1535/2 1933/2925/2 1936/1536/2 +f 1931/1537/1 1935/2926/1 1934/1538/1 +f 2019/1540/5 2020/2927/5 2016/1541/5 +f 2020/2927/5 2018/2928/5 2016/1541/5 +f 2018/2928/5 2017/2929/5 2016/1541/5 +f 2016/1541/5 2015/2930/5 2014/2931/5 +f 2014/2931/5 2013/2932/5 2012/2933/5 +f 2012/2933/5 2011/2934/5 2010/1539/5 +f 2010/1539/5 2009/2935/5 2019/1540/5 +f 2016/1541/5 2014/2931/5 2012/2933/5 +f 2012/2933/5 2010/1539/5 2016/1541/5 +f 2044/1542/5 2043/2936/5 2031/1543/5 +f 2044/1545/5 2032/2937/5 2021/1546/5 +f 2033/1548/5 2021/2938/5 2022/1549/5 +f 2035/1551/5 2034/2939/5 2022/1552/5 +f 2036/1554/5 2035/2940/5 2023/1555/5 +f 2037/1557/5 2036/2941/5 2024/1558/5 +f 2037/1560/5 2025/2942/5 2026/1561/5 +f 2039/1563/5 2038/2943/5 2026/1564/5 +f 2039/1566/5 2027/2944/5 2028/1567/5 +f 2040/1569/5 2028/2945/5 2029/1570/5 +f 2041/1572/5 2029/2946/5 2030/1573/5 +f 2042/1575/5 2030/2947/5 2031/1576/5 +f 2190/1578/39 2191/2948/39 2203/1579/39 +f 2192/1581/39 2204/2949/39 2203/1582/39 +f 2193/1584/39 2205/2950/39 2204/1585/39 +f 2194/1587/39 2206/2951/39 2205/1588/39 +f 2194/1590/39 2195/2952/39 2207/1591/39 +f 2196/1593/39 2208/2953/39 2207/1594/39 +f 2196/1596/39 2197/2954/39 2209/1597/39 +f 2197/1599/39 2198/2955/39 2210/1600/39 +f 2198/1602/39 2199/2956/39 2211/1603/39 +f 2199/1605/39 2200/2957/39 2212/1606/39 +f 2189/1608/39 2201/2958/39 2212/1609/39 +f 2189/1611/39 2190/2959/39 2202/1612/39 +f 2214/1616/39 2213/2960/39 2215/2961/39 +f 2215/2961/39 2216/2962/39 2217/1614/39 +f 2217/1614/39 2218/2963/39 2219/2964/39 +f 2219/2964/39 2220/2965/39 2217/1614/39 +f 2220/2965/39 2221/1615/39 2217/1614/39 +f 2221/1615/39 2222/2966/39 2214/1616/39 +f 2222/2966/39 2223/2967/39 2214/1616/39 +f 2223/2967/39 2224/2968/39 2214/1616/39 +f 2214/1616/39 2215/2961/39 2217/1614/39 +f 2230/1617/40 2229/2969/40 2241/1618/40 +f 2225/1620/40 2236/2970/40 2248/1621/40 +f 2226/1623/40 2238/2971/40 2239/1624/40 +f 2234/1626/40 2233/2972/40 2245/1627/40 +f 2231/1629/40 2230/2973/40 2242/1630/40 +f 2227/1632/40 2239/2974/40 2240/1633/40 +f 2234/1635/40 2246/2975/40 2247/1636/40 +f 2232/1638/40 2231/2976/40 2243/1639/40 +f 2228/1641/40 2240/2977/40 2241/1642/40 +f 2236/1644/40 2235/2978/40 2247/1645/40 +f 2225/1647/40 2237/2979/40 2238/1648/40 +f 2232/1650/40 2244/2980/40 2245/1651/40 +f 2258/1653/40 2270/2981/40 2271/1654/40 +f 2255/1656/40 2267/2982/40 2268/1657/40 +f 2253/1659/40 2252/1679/40 2264/1660/40 +f 2259/1655/40 2271/2983/40 2272/1662/40 +f 2249/1664/40 2262/2984/40 2261/1665/40 +f 2256/1658/40 2268/2985/40 2269/1667/40 +f 2254/1669/40 2253/1659/40 2265/1670/40 +f 2260/1663/40 2272/2986/40 2262/1672/40 +f 2250/1666/40 2261/2987/40 2263/1673/40 +f 2258/1675/40 2257/1668/40 2269/1676/40 +f 2254/1669/40 2266/2988/40 2267/1678/40 +f 2252/1679/40 2251/1674/40 2263/1680/40 +f 2275/1684/40 2273/2989/40 2274/2990/40 +f 2274/2990/40 2284/2991/40 2283/2992/40 +f 2283/2992/40 2282/2993/40 2279/1682/40 +f 2282/2993/40 2281/2994/40 2279/1682/40 +f 2281/2994/40 2280/2995/40 2279/1682/40 +f 2279/1682/40 2278/2996/40 2277/1683/40 +f 2277/1683/40 2276/2997/40 2275/1684/40 +f 2275/1684/40 2274/2990/40 2279/1682/40 +f 2274/2990/40 2283/2992/40 2279/1682/40 +f 2323/1685/41 2335/2998/41 2334/1686/41 +f 2324/1688/41 2336/2999/41 2335/1689/41 +f 2325/1691/41 2337/3000/41 2336/1692/41 +f 2326/1694/41 2338/3001/41 2337/1695/41 +f 2326/1697/41 2327/3002/41 2339/1698/41 +f 2328/1700/41 2340/3003/41 2339/1701/41 +f 2328/1703/41 2329/3004/41 2341/1704/41 +f 2329/1706/41 2330/3005/41 2342/1707/41 +f 2330/1709/41 2331/3006/41 2343/1710/41 +f 2331/1712/41 2332/3007/41 2344/1713/41 +f 2332/1715/41 2321/3008/41 2333/1716/41 +f 2321/1718/41 2322/3009/41 2334/1719/41 +f 2346/1722/41 2345/3010/41 2347/3011/41 +f 2347/3011/41 2348/3012/41 2349/1723/41 +f 2349/1723/41 2350/3013/41 2351/3014/41 +f 2351/3014/41 2352/3015/41 2349/1723/41 +f 2352/3015/41 2353/3016/41 2349/1723/41 +f 2353/3016/41 2354/3017/41 2355/1721/41 +f 2355/1721/41 2356/3018/41 2346/1722/41 +f 2346/1722/41 2347/3011/41 2349/1723/41 +f 2353/3016/41 2355/1721/41 2349/1723/41 +f 2362/1724/42 2361/3019/42 2373/1725/42 +f 2357/1727/42 2368/3020/42 2380/1728/42 +f 2358/1730/42 2370/3021/42 2371/1731/42 +f 2366/1733/42 2365/3022/42 2377/1734/42 +f 2363/1736/42 2362/3023/42 2374/1737/42 +f 2360/1739/42 2359/3024/42 2371/1740/42 +f 2366/1742/42 2378/3025/42 2379/1743/42 +f 2363/1745/42 2375/3026/42 2376/1746/42 +f 2360/1748/42 2372/3027/42 2373/1749/42 +f 2368/1751/42 2367/3028/42 2379/1752/42 +f 2357/1754/42 2369/3029/42 2370/1755/42 +f 2364/1757/42 2376/3030/42 2377/1758/42 +f 2390/1760/42 2402/3031/42 2403/1761/42 +f 2387/1763/42 2399/3032/42 2400/1764/42 +f 2384/1766/42 2396/3033/42 2397/1767/42 +f 2391/1762/42 2403/3034/42 2404/1769/42 +f 2381/1771/42 2394/3035/42 2393/1772/42 +f 2388/1765/42 2400/3036/42 2401/1774/42 +f 2386/1776/42 2385/1768/42 2397/1777/42 +f 2392/1770/42 2404/3037/42 2394/1779/42 +f 2382/1773/42 2393/3038/42 2395/1780/42 +f 2390/1782/42 2389/1775/42 2401/1783/42 +f 2387/1763/42 2386/1776/42 2398/1785/42 +f 2384/1766/42 2383/1781/42 2395/1787/42 +f 2407/1791/42 2405/3039/42 2406/3040/42 +f 2406/3040/42 2416/3041/42 2407/1791/42 +f 2416/3041/42 2415/1789/42 2407/1791/42 +f 2415/1789/42 2414/3042/42 2411/1790/42 +f 2414/3042/42 2413/3043/42 2411/1790/42 +f 2413/3043/42 2412/3044/42 2411/1790/42 +f 2411/1790/42 2410/3045/42 2409/3046/42 +f 2409/3046/42 2408/3047/42 2411/1790/42 +f 2408/3047/42 2407/1791/42 2411/1790/42 +f 2455/1792/43 2467/3048/43 2466/1793/43 +f 2456/1795/43 2468/3049/43 2467/1796/43 +f 2457/1798/43 2469/3050/43 2468/1799/43 +f 2458/1801/43 2470/3051/43 2469/1802/43 +f 2459/1804/43 2471/3052/43 2470/1805/43 +f 2460/1807/43 2472/3053/43 2471/1808/43 +f 2460/1810/43 2461/3054/43 2473/1811/43 +f 2461/1813/43 2462/3055/43 2474/1814/43 +f 2462/1816/43 2463/3056/43 2475/1817/43 +f 2464/1819/43 2476/3057/43 2475/1820/43 +f 2464/1822/43 2453/3058/43 2465/1823/43 +f 2453/1825/43 2454/3059/43 2466/1826/43 +f 2478/3060/43 2477/3061/43 2479/1828/43 +f 2479/1828/43 2480/3062/43 2481/1829/43 +f 2481/1829/43 2482/3063/43 2483/3064/43 +f 2483/3064/43 2484/3065/43 2481/1829/43 +f 2484/3065/43 2485/1830/43 2481/1829/43 +f 2485/1830/43 2486/3066/43 2478/3060/43 +f 2486/3066/43 2487/3067/43 2478/3060/43 +f 2487/3067/43 2488/3068/43 2478/3060/43 +f 2478/3060/43 2479/1828/43 2485/1830/43 +f 2493/1831/44 2505/3069/44 2506/1832/44 +f 2500/1834/44 2512/3070/44 2501/1835/44 +f 2491/1837/44 2490/3071/44 2502/1838/44 +f 2498/1840/44 2497/3072/44 2509/1841/44 +f 2494/1843/44 2506/3073/44 2507/1844/44 +f 2492/1846/44 2491/3074/44 2503/1847/44 +f 2498/1849/44 2510/3075/44 2511/1850/44 +f 2496/1852/44 2495/3076/44 2507/1853/44 +f 2493/1855/44 2492/3077/44 2504/1856/44 +f 2500/1858/44 2499/3078/44 2511/1859/44 +f 2490/1861/44 2489/3079/44 2501/1862/44 +f 2497/1864/44 2496/3080/44 2508/1865/44 +f 2523/1867/44 2522/3081/44 2534/1868/44 +f 2519/1870/44 2531/3082/44 2532/1871/44 +f 2517/1873/44 2516/1896/44 2528/1874/44 +f 2524/1876/44 2523/1867/44 2535/1877/44 +f 2514/1879/44 2513/1888/44 2526/1880/44 +f 2520/1872/44 2532/3083/44 2533/1882/44 +f 2518/1884/44 2517/1873/44 2529/1885/44 +f 2524/1876/44 2536/3084/44 2526/1887/44 +f 2514/1879/44 2525/3085/44 2527/1889/44 +f 2522/1891/44 2521/1883/44 2533/1892/44 +f 2518/1884/44 2530/3086/44 2531/1894/44 +f 2515/1890/44 2527/3087/44 2528/1895/44 +f 2539/1898/44 2537/3088/44 2547/1899/44 +f 2537/3088/44 2538/3089/44 2547/1899/44 +f 2538/3089/44 2548/3090/44 2547/1899/44 +f 2547/1899/44 2546/3091/44 2543/3092/44 +f 2546/3091/44 2545/3093/44 2543/3092/44 +f 2545/3093/44 2544/3094/44 2543/3092/44 +f 2543/3092/44 2542/3095/44 2541/1897/44 +f 2541/1897/44 2540/3096/44 2539/1898/44 +f 2543/3092/44 2541/1897/44 2547/1899/44 +f 2586/1900/45 2587/3097/45 2599/1901/45 +f 2588/1903/45 2600/3098/45 2599/1904/45 +f 2589/1906/45 2601/3099/45 2600/1907/45 +f 2590/1909/45 2602/3100/45 2601/1910/45 +f 2590/1912/45 2591/3101/45 2603/1913/45 +f 2592/1915/45 2604/3102/45 2603/1916/45 +f 2592/1918/45 2593/3103/45 2605/1919/45 +f 2593/1921/45 2594/3104/45 2606/1922/45 +f 2595/1924/45 2607/3105/45 2606/1925/45 +f 2596/1927/45 2608/3106/45 2607/1928/45 +f 2585/1930/45 2597/3107/45 2608/1931/45 +f 2585/1933/45 2586/3108/45 2598/1934/45 +f 2610/3109/45 2609/3110/45 2611/1936/45 +f 2611/1936/45 2612/3111/45 2613/1937/45 +f 2613/1937/45 2614/3112/45 2615/3113/45 +f 2615/3113/45 2616/3114/45 2613/1937/45 +f 2616/3114/45 2617/1938/45 2613/1937/45 +f 2617/1938/45 2618/3115/45 2619/3116/45 +f 2619/3116/45 2620/3117/45 2617/1938/45 +f 2620/3117/45 2610/3109/45 2617/1938/45 +f 2610/3109/45 2611/1936/45 2617/1938/45 +f 2626/1939/46 2625/3118/46 2637/1940/46 +f 2621/1942/46 2632/3119/46 2644/1943/46 +f 2623/1945/46 2622/3120/46 2634/1946/46 +f 2630/1948/46 2629/3121/46 2641/1949/46 +f 2627/1951/46 2626/3122/46 2638/1952/46 +f 2623/1954/46 2635/3123/46 2636/1955/46 +f 2630/1957/46 2642/3124/46 2643/1958/46 +f 2627/1960/46 2639/3125/46 2640/1961/46 +f 2624/1963/46 2636/3126/46 2637/1964/46 +f 2632/1966/46 2631/3127/46 2643/1967/46 +f 2621/1969/46 2633/3128/46 2634/1970/46 +f 2628/1972/46 2640/3129/46 2641/1973/46 +f 2654/1975/46 2666/3130/46 2667/1976/46 +f 2651/1978/46 2663/3131/46 2664/1979/46 +f 2648/1981/46 2660/3132/46 2661/1982/46 +f 2656/1984/46 2655/1977/46 2667/1985/46 +f 2646/1987/46 2645/1996/46 2658/1988/46 +f 2652/1980/46 2664/3133/46 2665/1990/46 +f 2650/1992/46 2649/1983/46 2661/1993/46 +f 2656/1984/46 2668/3134/46 2658/1995/46 +f 2646/1987/46 2657/3135/46 2659/1997/46 +f 2654/1999/46 2653/1991/46 2665/2000/46 +f 2651/1978/46 2650/1992/46 2662/2002/46 +f 2647/1998/46 2659/3136/46 2660/2004/46 +f 2671/3137/46 2669/3138/46 2670/2005/46 +f 2670/2005/46 2680/3139/46 2679/2006/46 +f 2679/2006/46 2678/3140/46 2675/2007/46 +f 2678/3140/46 2677/3141/46 2675/2007/46 +f 2677/3141/46 2676/3142/46 2675/2007/46 +f 2675/2007/46 2674/3143/46 2673/3144/46 +f 2673/3144/46 2672/3145/46 2675/2007/46 +f 2672/3145/46 2671/3137/46 2675/2007/46 +f 2671/3137/46 2670/2005/46 2675/2007/46 +f 2686/2008/4 2685/3146/4 2697/2009/4 +f 2692/2011/4 2704/3147/4 2693/2012/4 +f 2682/2014/4 2694/3148/4 2695/2015/4 +f 2690/2017/4 2689/3149/4 2701/2018/4 +f 2686/2020/4 2698/3150/4 2699/2021/4 +f 2684/2023/4 2683/3151/4 2695/2024/4 +f 2690/2026/4 2702/3152/4 2703/2027/4 +f 2688/2029/4 2687/3153/4 2699/2030/4 +f 2684/2032/4 2696/3154/4 2697/2033/4 +f 2692/2035/4 2691/3155/4 2703/2036/4 +f 2681/2038/4 2693/3156/4 2694/2039/4 +f 2688/2041/4 2700/3157/4 2701/2042/4 +f 2714/2044/4 2726/3158/4 2727/2045/4 +f 2712/2047/4 2711/2071/4 2723/2048/4 +f 2708/2050/4 2720/3159/4 2721/2051/4 +f 2716/2053/4 2715/2046/4 2727/2054/4 +f 2705/2056/4 2718/3160/4 2717/2057/4 +f 2712/2047/4 2724/3161/4 2725/2059/4 +f 2710/2061/4 2709/2052/4 2721/2062/4 +f 2716/2053/4 2728/3162/4 2718/2064/4 +f 2706/2058/4 2717/3163/4 2719/2065/4 +f 2714/2067/4 2713/2060/4 2725/2068/4 +f 2710/2061/4 2722/3164/4 2723/2070/4 +f 2708/2050/4 2707/2066/4 2719/2072/4 +f 2731/2076/4 2729/3165/4 2730/3166/4 +f 2730/3166/4 2740/3167/4 2731/2076/4 +f 2740/3167/4 2739/2074/4 2731/2076/4 +f 2739/2074/4 2738/3168/4 2735/2075/4 +f 2738/3168/4 2737/3169/4 2735/2075/4 +f 2737/3169/4 2736/3170/4 2735/2075/4 +f 2735/2075/4 2734/3171/4 2733/3172/4 +f 2733/3172/4 2732/3173/4 2735/2075/4 +f 2732/3173/4 2731/2076/4 2735/2075/4 +f 2757/2077/1 2769/3174/1 2770/2078/1 +f 2764/2080/1 2776/3175/1 2765/2081/1 +f 2754/2083/1 2766/3176/1 2767/2084/1 +f 2762/2086/1 2761/2105/1 2773/2087/1 +f 2759/2089/1 2758/2079/1 2770/2090/1 +f 2756/2092/1 2755/2085/1 2767/2093/1 +f 2762/2095/1 2774/3177/1 2775/2096/1 +f 2759/2089/1 2771/3178/1 2772/2098/1 +f 2756/2092/1 2768/3179/1 2769/2100/1 +f 2764/2080/1 2763/2097/1 2775/2101/1 +f 2754/2083/1 2753/2082/1 2765/2103/1 +f 2761/2105/1 2760/2099/1 2772/2106/1 +f 2786/2108/1 2798/3180/1 2799/2109/1 +f 2783/2111/1 2795/3181/1 2796/2112/1 +f 2780/2114/1 2792/3182/1 2793/2115/1 +f 2788/2117/1 2787/2110/1 2799/2118/1 +f 2778/2120/1 2777/2129/1 2790/2121/1 +f 2785/2123/1 2784/2113/1 2796/2124/1 +f 2781/2116/1 2793/3183/1 2794/2126/1 +f 2788/2117/1 2800/3184/1 2790/2128/1 +f 2778/2120/1 2789/3185/1 2791/2130/1 +f 2786/2132/1 2785/2123/1 2797/2133/1 +f 2783/2111/1 2782/2127/1 2794/2135/1 +f 2780/2114/1 2779/2131/1 2791/2137/1 +f 2803/2141/1 2801/3186/1 2802/3187/1 +f 2802/3187/1 2812/3188/1 2803/2141/1 +f 2812/3188/1 2811/2139/1 2803/2141/1 +f 2811/2139/1 2810/3189/1 2807/2140/1 +f 2810/3189/1 2809/3190/1 2807/2140/1 +f 2809/3190/1 2808/3191/1 2807/2140/1 +f 2807/2140/1 2806/3192/1 2805/3193/1 +f 2805/3193/1 2804/3194/1 2807/2140/1 +f 2804/3194/1 2803/2141/1 2807/2140/1 +f 2922/2142/44 2923/3195/44 2935/2143/44 +f 2924/2145/44 2936/3196/44 2935/2146/44 +f 2925/2148/44 2937/3197/44 2936/2149/44 +f 2926/2151/44 2938/3198/44 2937/2152/44 +f 2926/2154/44 2927/3199/44 2939/2155/44 +f 2928/2157/44 2940/3200/44 2939/2158/44 +f 2928/2160/44 2929/3201/44 2941/2161/44 +f 2929/2163/44 2930/3202/44 2942/2164/44 +f 2931/2166/44 2943/3203/44 2942/2167/44 +f 2932/2169/44 2944/3204/44 2943/2170/44 +f 2932/2172/44 2921/3205/44 2933/2173/44 +f 2921/2175/44 2922/3206/44 2934/2176/44 +f 2946/2179/44 2945/3207/44 2949/2180/44 +f 2945/3207/44 2947/3208/44 2949/2180/44 +f 2947/3208/44 2948/3209/44 2949/2180/44 +f 2949/2180/44 2950/3210/44 2951/3211/44 +f 2951/3211/44 2952/3212/44 2949/2180/44 +f 2952/3212/44 2953/3213/44 2949/2180/44 +f 2953/3213/44 2954/3214/44 2955/2178/44 +f 2955/2178/44 2956/3215/44 2946/2179/44 +f 2953/3213/44 2955/2178/44 2949/2180/44 +f 2962/2181/43 2961/3216/43 2973/2182/43 +f 2968/2184/43 2980/3217/43 2969/2185/43 +f 2958/2187/43 2970/3218/43 2971/2188/43 +f 2966/2190/43 2965/3219/43 2977/2191/43 +f 2963/2193/43 2962/3220/43 2974/2194/43 +f 2960/2196/43 2959/3221/43 2971/2197/43 +f 2966/2199/43 2978/3222/43 2979/2200/43 +f 2964/2202/43 2963/3223/43 2975/2203/43 +f 2960/2205/43 2972/3224/43 2973/2206/43 +f 2968/2208/43 2967/3225/43 2979/2209/43 +f 2957/2211/43 2969/3226/43 2970/2212/43 +f 2965/2214/43 2964/3227/43 2976/2215/43 +f 2991/2217/43 2990/3228/43 3002/2218/43 +f 2988/2220/43 2987/2242/43 2999/2221/43 +f 2985/2223/43 2984/2244/43 2996/2224/43 +f 2991/2217/43 3003/3229/43 3004/2226/43 +f 2981/2228/43 2994/3230/43 2993/2229/43 +f 2988/2220/43 3000/3231/43 3001/2231/43 +f 2985/2223/43 2997/3232/43 2998/2233/43 +f 2992/2227/43 3004/3233/43 2994/2235/43 +f 2982/2230/43 2993/3234/43 2995/2236/43 +f 2990/2238/43 2989/2232/43 3001/2239/43 +f 2986/2234/43 2998/3235/43 2999/2241/43 +f 2983/2237/43 2995/3236/43 2996/2243/43 +f 3007/2247/43 3005/3237/43 3006/3238/43 +f 3006/3238/43 3016/3239/43 3007/2247/43 +f 3016/3239/43 3015/3240/43 3007/2247/43 +f 3015/3240/43 3014/3241/43 3013/2245/43 +f 3013/2245/43 3012/3242/43 3011/2246/43 +f 3011/2246/43 3010/3243/43 3007/2247/43 +f 3010/3243/43 3009/3244/43 3007/2247/43 +f 3009/3244/43 3008/3245/43 3007/2247/43 +f 3015/3240/43 3013/2245/43 3007/2247/43 +f 3055/2248/46 3067/3246/46 3066/2249/46 +f 3056/2251/46 3068/3247/46 3067/2252/46 +f 3057/2254/46 3069/3248/46 3068/2255/46 +f 3058/2257/46 3070/3249/46 3069/2258/46 +f 3058/2260/46 3059/3250/46 3071/2261/46 +f 3060/2263/46 3072/3251/46 3071/2264/46 +f 3060/2266/46 3061/3252/46 3073/2267/46 +f 3061/2269/46 3062/3253/46 3074/2270/46 +f 3062/2272/46 3063/3254/46 3075/2273/46 +f 3064/2275/46 3076/3255/46 3075/2276/46 +f 3064/2278/46 3053/3256/46 3065/2279/46 +f 3054/2281/46 3066/3257/46 3065/2282/46 +f 3078/2285/46 3077/3258/46 3081/2286/46 +f 3077/3258/46 3079/3259/46 3081/2286/46 +f 3079/3259/46 3080/3260/46 3081/2286/46 +f 3081/2286/46 3082/3261/46 3083/3262/46 +f 3083/3262/46 3084/3263/46 3081/2286/46 +f 3084/3263/46 3085/3264/46 3081/2286/46 +f 3085/3264/46 3086/3265/46 3087/2284/46 +f 3087/2284/46 3088/3266/46 3078/2285/46 +f 3085/3264/46 3087/2284/46 3081/2286/46 +f 3093/2287/45 3105/3267/45 3106/2288/45 +f 3089/2290/45 3100/3268/45 3112/2291/45 +f 3090/2293/45 3102/3269/45 3103/2294/45 +f 3097/2296/45 3109/3270/45 3110/2297/45 +f 3095/2299/45 3094/3271/45 3106/2300/45 +f 3092/2302/45 3091/3272/45 3103/2303/45 +f 3098/2305/45 3110/3273/45 3111/2306/45 +f 3095/2308/45 3107/3274/45 3108/2309/45 +f 3092/2311/45 3104/3275/45 3105/2312/45 +f 3100/2314/45 3099/3276/45 3111/2315/45 +f 3089/2317/45 3101/3277/45 3102/2318/45 +f 3096/2320/45 3108/3278/45 3109/2321/45 +f 3123/2323/45 3122/3279/45 3134/2324/45 +f 3119/2326/45 3131/3280/45 3132/2327/45 +f 3116/2329/45 3128/3281/45 3129/2330/45 +f 3123/2323/45 3135/3282/45 3136/2332/45 +f 3113/2334/45 3126/3283/45 3125/2335/45 +f 3120/2328/45 3132/3284/45 3133/2337/45 +f 3117/2331/45 3129/3285/45 3130/2339/45 +f 3124/2333/45 3136/3286/45 3126/2341/45 +f 3114/2336/45 3125/3287/45 3127/2342/45 +f 3122/2344/45 3121/2338/45 3133/2345/45 +f 3119/2326/45 3118/2340/45 3130/2347/45 +f 3116/2329/45 3115/2343/45 3127/2349/45 +f 3139/2353/45 3137/3288/45 3138/3289/45 +f 3138/3289/45 3148/3290/45 3139/2353/45 +f 3148/3290/45 3147/2351/45 3139/2353/45 +f 3147/2351/45 3146/3291/45 3143/2352/45 +f 3146/3291/45 3145/3292/45 3143/2352/45 +f 3145/3292/45 3144/3293/45 3143/2352/45 +f 3143/2352/45 3142/3294/45 3139/2353/45 +f 3142/3294/45 3141/3295/45 3139/2353/45 +f 3141/3295/45 3140/3296/45 3139/2353/45 +f 3187/2354/40 3199/3297/40 3198/2355/40 +f 3188/2357/40 3200/3298/40 3199/2358/40 +f 3189/2360/40 3201/3299/40 3200/2361/40 +f 3190/2363/40 3202/3300/40 3201/2364/40 +f 3190/2366/40 3191/3301/40 3203/2367/40 +f 3192/2369/40 3204/3302/40 3203/2370/40 +f 3193/2372/40 3205/3303/40 3204/2373/40 +f 3193/2375/40 3194/3304/40 3206/2376/40 +f 3194/2378/40 3195/3305/40 3207/2379/40 +f 3196/2381/40 3208/3306/40 3207/2382/40 +f 3185/2384/40 3197/3307/40 3208/2385/40 +f 3185/2387/40 3186/3308/40 3198/2388/40 +f 3210/3309/40 3209/3310/40 3211/2390/40 +f 3211/2390/40 3212/3311/40 3213/2391/40 +f 3213/2391/40 3214/3312/40 3217/2392/40 +f 3214/3312/40 3215/3313/40 3217/2392/40 +f 3215/3313/40 3216/3314/40 3217/2392/40 +f 3217/2392/40 3218/3315/40 3210/3309/40 +f 3218/3315/40 3219/3316/40 3210/3309/40 +f 3219/3316/40 3220/3317/40 3210/3309/40 +f 3210/3309/40 3211/2390/40 3217/2392/40 +f 3225/2393/39 3237/3318/39 3238/2394/39 +f 3232/2396/39 3244/3319/39 3233/2397/39 +f 3223/2399/39 3222/3320/39 3234/2400/39 +f 3230/2402/39 3229/3321/39 3241/2403/39 +f 3226/2405/39 3238/3322/39 3239/2406/39 +f 3223/2408/39 3235/3323/39 3236/2409/39 +f 3230/2411/39 3242/3324/39 3243/2412/39 +f 3228/2414/39 3227/3325/39 3239/2415/39 +f 3224/2417/39 3236/3326/39 3237/2418/39 +f 3231/2420/39 3243/3327/39 3244/2421/39 +f 3221/2423/39 3233/3328/39 3234/2424/39 +f 3229/2426/39 3228/3329/39 3240/2427/39 +f 3255/2429/39 3254/3330/39 3266/2430/39 +f 3251/2432/39 3263/3331/39 3264/2433/39 +f 3249/2435/39 3248/2457/39 3260/2436/39 +f 3255/2429/39 3267/3332/39 3268/2438/39 +f 3245/2440/39 3258/3333/39 3257/2441/39 +f 3253/2443/39 3252/2434/39 3264/2444/39 +f 3250/2446/39 3249/2435/39 3261/2447/39 +f 3256/2439/39 3268/3334/39 3258/2449/39 +f 3246/2442/39 3257/3335/39 3259/2450/39 +f 3254/2452/39 3253/2443/39 3265/2453/39 +f 3250/2446/39 3262/3336/39 3263/2455/39 +f 3247/2451/39 3259/3337/39 3260/2456/39 +f 3271/2459/39 3269/3338/39 3270/3339/39 +f 3270/3339/39 3280/3340/39 3271/2459/39 +f 3280/3340/39 3279/2460/39 3271/2459/39 +f 3279/2460/39 3278/3341/39 3277/3342/39 +f 3277/3342/39 3276/3343/39 3279/2460/39 +f 3276/3343/39 3275/3344/39 3279/2460/39 +f 3275/3344/39 3274/3345/39 3273/2458/39 +f 3273/2458/39 3272/3346/39 3271/2459/39 +f 3275/3344/39 3273/2458/39 3279/2460/39 +f 3319/2461/42 3331/3347/42 3330/2462/42 +f 3320/2464/42 3332/3348/42 3331/2465/42 +f 3321/2467/42 3333/3349/42 3332/2468/42 +f 3322/2470/42 3334/3350/42 3333/2471/42 +f 3322/2473/42 3323/3351/42 3335/2474/42 +f 3323/2476/42 3324/3352/42 3336/2477/42 +f 3324/2479/42 3325/3353/42 3337/2480/42 +f 3325/2482/42 3326/3354/42 3338/2483/42 +f 3327/2485/42 3339/3355/42 3338/2486/42 +f 3328/2488/42 3340/3356/42 3339/2489/42 +f 3317/2491/42 3329/3357/42 3340/2492/42 +f 3317/2494/42 3318/3358/42 3330/2495/42 +f 3342/2498/42 3341/3359/42 3343/3360/42 +f 3343/3360/42 3344/3361/42 3342/2498/42 +f 3344/3361/42 3345/2499/42 3342/2498/42 +f 3345/2499/42 3346/3362/42 3349/3363/42 +f 3346/3362/42 3347/3364/42 3349/3363/42 +f 3347/3364/42 3348/3365/42 3349/3363/42 +f 3349/3363/42 3350/3366/42 3351/2497/42 +f 3351/2497/42 3352/3367/42 3342/2498/42 +f 3349/3363/42 3351/2497/42 3345/2499/42 +f 3358/2500/41 3357/3368/41 3369/2501/41 +f 3353/2503/41 3364/3369/41 3376/2504/41 +f 3355/2506/41 3354/3370/41 3366/2507/41 +f 3362/2509/41 3361/3371/41 3373/2510/41 +f 3359/2512/41 3358/3372/41 3370/2513/41 +f 3356/2515/41 3355/3373/41 3367/2516/41 +f 3362/2518/41 3374/3374/41 3375/2519/41 +f 3360/2521/41 3359/3375/41 3371/2522/41 +f 3356/2524/41 3368/3376/41 3369/2525/41 +f 3364/2527/41 3363/3377/41 3375/2528/41 +f 3353/2530/41 3365/3378/41 3366/2531/41 +f 3360/2533/41 3372/3379/41 3373/2534/41 +f 3386/2536/41 3398/3380/41 3399/2537/41 +f 3383/2539/41 3395/3381/41 3396/2540/41 +f 3380/2542/41 3392/3382/41 3393/2543/41 +f 3388/2545/41 3387/2538/41 3399/2546/41 +f 3378/2548/41 3377/2556/41 3390/2549/41 +f 3384/2541/41 3396/3383/41 3397/2551/41 +f 3382/2553/41 3381/2544/41 3393/2554/41 +f 3377/2556/41 3388/2545/41 3400/2557/41 +f 3378/2548/41 3389/3384/41 3391/2559/41 +f 3386/2561/41 3385/2552/41 3397/2562/41 +f 3383/2539/41 3382/2553/41 3394/2564/41 +f 3380/2542/41 3379/2560/41 3391/2566/41 +f 3403/3385/41 3401/3386/41 3402/3387/41 +f 3402/3387/41 3412/3388/41 3411/2568/41 +f 3411/2568/41 3410/3389/41 3409/2569/41 +f 3409/2569/41 3408/3390/41 3407/2570/41 +f 3407/2570/41 3406/3391/41 3405/3392/41 +f 3405/3392/41 3404/3393/41 3407/2570/41 +f 3404/3393/41 3403/3385/41 3407/2570/41 +f 3403/3385/41 3402/3387/41 3407/2570/41 +f 3402/3387/41 3411/2568/41 3407/2570/41 +s 1 +f 25/3394/47 10/3395/48 9/3396/49 +f 31/3397/50 16/3398/51 15/3399/52 +f 18/3400/53 3/3401/54 2/3402/55 +f 24/3403/56 9/3404/49 8/3405/57 +f 17/3406/58 2/3402/55 1/3407/59 +f 16/3398/51 17/3406/58 1/3407/59 +f 45/3408/60 30/3409/61 29/3410/62 +f 30/3409/61 47/3411/63 31/3397/50 +f 47/3412/63 32/3413/64 31/3397/50 +f 32/3413/64 33/3414/7 17/3406/58 +f 33/3415/7 18/3400/53 17/3406/58 +f 34/3416/65 19/3417/66 18/3400/53 +f 35/3418/67 20/3419/68 19/3417/66 +f 20/3419/68 37/3420/69 21/3421/70 +f 21/3421/70 38/3422/71 22/3423/72 +f 22/3423/72 39/3424/73 23/3425/74 +f 39/3426/73 24/3403/56 23/3425/74 +f 40/3427/75 25/3428/47 24/3403/56 +f 25/3394/47 42/3429/76 26/3430/77 +f 42/3431/76 27/3432/78 26/3430/77 +f 43/3433/79 28/3434/80 27/3432/78 +f 28/3434/80 45/3435/60 29/3410/62 +f 14/3436/81 63/3437/82 62/3438/83 +f 15/3399/52 64/3439/84 63/3440/82 +f 16/3398/51 49/3441/8 64/3442/84 +f 2/3402/55 49/3443/8 1/3407/59 +f 3/3401/54 50/3444/85 2/3402/55 +f 4/3445/86 51/3446/87 3/3401/54 +f 5/3447/88 52/3448/89 4/3445/86 +f 6/3449/90 53/3450/91 5/3447/88 +f 6/3449/90 55/3451/92 54/3452/93 +f 7/3453/94 56/3454/95 55/3455/92 +f 9/3404/49 56/3456/95 8/3405/57 +f 9/3396/49 58/3457/96 57/3458/10 +f 10/3395/48 59/3459/97 58/3460/96 +f 12/3461/98 59/3462/97 11/3463/99 +f 12/3461/98 61/3464/100 60/3465/101 +f 14/3436/81 61/3466/100 13/3467/102 +f 45/3408/4 78/3468/103 46/3469/103 +f 38/3470/104 71/3471/12 39/3424/12 +f 46/3472/103 79/3473/16 47/3411/16 +f 40/3474/15 71/3475/12 72/3476/15 +f 47/3412/16 80/3477/11 48/3478/11 +f 40/3427/15 73/3479/6 41/3480/6 +f 33/3415/3 66/3481/18 34/3482/18 +f 48/3483/11 65/3484/3 33/3414/3 +f 41/3485/6 74/3486/13 42/3429/13 +f 34/3416/18 67/3487/14 35/3488/14 +f 42/3431/13 75/3489/17 43/3490/17 +f 35/3418/14 68/3491/105 36/3492/105 +f 43/3433/17 76/3493/106 44/3494/106 +f 36/3495/105 69/3496/5 37/3420/5 +f 44/3497/106 77/3498/4 45/3435/4 +f 37/3499/5 70/3500/104 38/3422/104 +f 52/3501/105 83/3502/14 51/3446/14 +f 60/3503/106 91/3504/17 59/3462/17 +f 53/3505/5 84/3506/105 52/3448/105 +f 61/3464/4 92/3507/106 60/3465/106 +f 54/3508/104 85/3509/5 53/3450/5 +f 62/3510/103 93/3511/4 61/3466/4 +f 55/3451/12 86/3512/104 54/3452/104 +f 63/3437/16 94/3513/103 62/3438/103 +f 55/3455/12 88/3514/15 87/3515/12 +f 64/3439/11 95/3516/16 63/3440/16 +f 57/3517/6 88/3518/15 56/3456/15 +f 50/3519/18 81/3520/3 49/3443/3 +f 49/3441/3 96/3521/11 64/3442/11 +f 58/3457/13 89/3522/6 57/3458/6 +f 51/3523/14 82/3524/18 50/3444/18 +f 59/3459/17 90/3525/13 58/3460/13 +f 97/3526/8 128/7/84 112/3527/84 +f 98/3528/85 113/10/8 97/3526/8 +f 99/3529/87 114/13/85 98/3528/85 +f 100/3530/89 115/16/87 99/3529/87 +f 101/3531/91 116/19/89 100/3530/89 +f 102/3532/93 117/22/91 101/3531/91 +f 103/3533/92 118/25/93 102/3532/93 +f 104/3534/95 119/2580/92 103/3533/92 +f 105/3535/10 120/2581/95 104/3534/95 +f 105/3536/10 122/35/96 121/2582/10 +f 106/3537/96 123/38/97 122/2583/96 +f 108/3538/101 123/2584/97 107/3539/97 +f 108/3538/101 125/44/100 124/2585/101 +f 109/3540/100 126/47/83 125/2586/100 +f 110/3541/83 127/2/82 126/2571/83 +f 111/3542/82 128/5/84 127/2572/82 +f 158/3543/103 111/3542/16 110/3541/103 +f 159/3544/16 112/3527/11 111/3542/16 +f 160/3545/11 97/3526/3 112/3527/11 +f 145/3546/3 98/3528/18 97/3526/3 +f 146/3547/18 99/3529/14 98/3528/18 +f 147/3548/14 100/3530/105 99/3529/14 +f 148/3549/105 101/3531/5 100/3530/105 +f 149/3550/5 102/3532/104 101/3531/5 +f 150/3551/104 103/3533/12 102/3532/104 +f 151/3552/12 104/3534/15 103/3533/12 +f 152/3553/15 105/3535/6 104/3534/15 +f 153/3554/6 106/3537/13 105/3536/6 +f 154/3555/13 107/3539/17 106/3537/13 +f 155/3556/17 108/3538/106 107/3539/17 +f 156/3557/106 109/3540/4 108/3538/106 +f 157/3558/4 110/3541/103 109/3540/4 +f 143/101/63 158/3543/107 142/102/107 +f 144/105/108 159/3544/63 143/103/63 +f 129/107/7 160/3545/108 144/108/108 +f 129/111/7 146/3547/65 145/3546/7 +f 130/112/65 147/3548/67 146/3547/65 +f 131/117/67 148/3549/109 147/3548/67 +f 132/120/109 149/3550/69 148/3549/109 +f 133/121/69 150/3551/71 149/3550/69 +f 134/124/71 151/3552/73 150/3551/71 +f 136/128/75 151/3552/73 135/129/73 +f 137/131/9 152/3553/75 136/132/75 +f 138/135/76 153/3554/9 137/133/9 +f 139/138/79 154/3555/76 138/136/76 +f 140/140/110 155/3556/79 139/141/79 +f 141/143/60 156/3557/110 140/144/110 +f 142/98/107 157/3558/60 141/99/60 +f 161/3559/8 192/201/84 176/3560/84 +f 162/3561/85 177/204/8 161/3559/8 +f 163/3562/87 178/205/85 162/3561/85 +f 164/3563/89 179/210/87 163/3562/87 +f 165/3564/91 180/211/89 164/3563/89 +f 166/3565/93 181/214/91 165/3564/91 +f 167/3566/92 182/217/93 166/3565/93 +f 167/3566/92 184/220/95 183/222/92 +f 169/3567/10 184/225/95 168/3568/95 +f 169/3569/10 186/2646/96 185/226/10 +f 170/3570/96 187/2647/97 186/229/96 +f 171/3571/97 188/232/101 187/234/97 +f 172/3572/101 189/235/100 188/237/101 +f 173/3573/100 190/238/83 189/240/100 +f 174/3574/83 191/193/82 190/195/83 +f 175/3575/82 192/2636/84 191/196/82 +f 222/3576/103 175/3575/16 174/3574/103 +f 223/3577/16 176/3560/11 175/3575/16 +f 224/3578/11 161/3559/3 176/3560/11 +f 209/3579/3 162/3561/18 161/3559/3 +f 210/3580/18 163/3562/14 162/3561/18 +f 211/3581/14 164/3563/105 163/3562/14 +f 212/3582/105 165/3564/5 164/3563/105 +f 213/3583/5 166/3565/104 165/3564/5 +f 214/3584/104 167/3566/12 166/3565/104 +f 215/3585/12 168/3568/15 167/3566/12 +f 216/3586/15 169/3567/6 168/3568/15 +f 217/3587/6 170/3570/13 169/3569/6 +f 218/3588/13 171/3571/17 170/3570/13 +f 219/3589/17 172/3572/106 171/3571/17 +f 220/3590/106 173/3573/4 172/3572/106 +f 221/3591/4 174/3574/103 173/3573/4 +f 207/95/63 222/3576/107 206/96/107 +f 208/50/108 223/3577/63 207/51/63 +f 193/2588/7 224/3578/108 208/53/108 +f 193/56/7 210/3580/65 209/3579/7 +f 194/59/65 211/3581/67 210/3580/65 +f 195/62/67 212/3582/109 211/3581/67 +f 196/65/109 213/3583/69 212/3582/109 +f 197/68/69 214/3584/71 213/3583/69 +f 198/71/71 215/3585/73 214/3584/71 +f 199/75/73 216/3586/75 215/3585/73 +f 200/78/75 217/3592/9 216/3586/75 +f 202/80/76 217/3587/9 201/81/9 +f 203/83/79 218/3588/76 202/84/76 +f 203/87/79 220/3590/110 219/3589/79 +f 205/89/60 220/3590/110 204/90/110 +f 206/92/107 221/3591/60 205/93/60 +f 238/3593/103 255/3594/16 239/3595/16 +f 231/3596/12 248/3597/15 232/3598/15 +f 239/3595/16 256/3599/11 240/3600/11 +f 232/3598/15 249/3601/6 233/3602/6 +f 225/3603/3 242/3604/18 226/3605/18 +f 240/3600/11 241/3606/3 225/3603/3 +f 233/3607/6 250/3608/13 234/3609/13 +f 226/3605/18 243/3610/14 227/3611/14 +f 234/3609/13 251/3612/17 235/3613/17 +f 227/3611/14 244/3614/105 228/3615/105 +f 235/3613/17 252/3616/106 236/3617/106 +f 228/3615/105 245/3618/5 229/3619/5 +f 236/3617/106 253/3620/4 237/3621/4 +f 229/3619/5 246/3622/104 230/3623/104 +f 237/3621/4 254/3624/103 238/3593/103 +f 230/3623/104 247/3625/12 231/3596/12 +f 272/3626/84 273/152/8 288/2621/84 +f 258/3627/85 273/2622/8 257/3628/8 +f 259/3629/87 274/157/85 258/3627/85 +f 260/3630/89 275/2624/87 259/3629/87 +f 261/3631/91 276/163/89 260/3630/89 +f 262/3632/93 277/166/91 261/3631/91 +f 263/3633/92 278/169/93 262/3632/93 +f 264/3634/95 279/2628/92 263/3633/92 +f 265/3635/10 280/2629/95 264/3634/95 +f 265/3636/10 282/2630/96 281/178/10 +f 266/3637/96 283/2631/97 282/181/96 +f 267/3638/97 284/2632/101 283/184/97 +f 268/3639/101 285/188/100 284/2633/101 +f 269/3640/100 286/191/83 285/2634/100 +f 270/3641/83 287/146/82 286/2619/83 +f 272/3626/84 287/148/82 271/3642/82 +f 318/3643/103 271/3642/16 270/3641/103 +f 319/3644/16 272/3626/11 271/3642/16 +f 320/3645/11 257/3628/3 272/3626/11 +f 305/3646/3 258/3627/18 257/3628/3 +f 306/3647/18 259/3629/14 258/3627/18 +f 307/3648/14 260/3630/105 259/3629/14 +f 308/3649/105 261/3631/5 260/3630/105 +f 309/3650/5 262/3632/104 261/3631/5 +f 310/3651/104 263/3633/12 262/3632/104 +f 311/3652/12 264/3634/15 263/3633/12 +f 312/3653/15 265/3635/6 264/3634/15 +f 313/3654/6 266/3637/13 265/3636/6 +f 314/3655/13 267/3638/17 266/3637/13 +f 315/3656/17 268/3639/106 267/3638/17 +f 316/3657/106 269/3640/4 268/3639/106 +f 317/3658/4 270/3641/103 269/3640/4 +f 303/293/63 318/3643/107 302/294/107 +f 304/296/108 319/3644/63 303/297/63 +f 289/299/7 320/3645/108 304/300/108 +f 289/303/7 306/3647/65 305/3646/7 +f 290/304/65 307/3648/67 306/3647/65 +f 291/309/67 308/3649/109 307/3648/67 +f 292/310/109 309/3650/69 308/3649/109 +f 293/315/69 310/3651/71 309/3650/69 +f 295/318/73 310/3651/71 294/316/71 +f 295/321/73 312/3653/75 311/3652/73 +f 297/324/9 312/3653/75 296/322/75 +f 298/327/76 313/3654/9 297/325/9 +f 299/329/79 314/3655/76 298/330/76 +f 299/333/79 316/3657/110 315/3656/79 +f 301/335/60 316/3657/110 300/336/110 +f 302/291/107 317/3658/60 301/289/60 +f 321/3659/8 352/348/84 336/3660/84 +f 322/3661/85 337/351/8 321/3659/8 +f 323/3662/87 338/352/85 322/3661/85 +f 324/3663/89 339/357/87 323/3662/87 +f 325/3664/91 340/358/89 324/3663/89 +f 326/3665/93 341/363/91 325/3664/91 +f 327/3666/92 342/364/93 326/3665/93 +f 328/3667/95 343/369/92 327/3666/92 +f 329/3668/10 344/370/95 328/3667/95 +f 330/3669/96 345/373/10 329/3670/10 +f 330/3669/96 347/376/97 346/378/96 +f 332/3671/101 347/381/97 331/3672/97 +f 332/3671/101 349/382/100 348/384/101 +f 333/3673/100 350/2711/83 349/385/100 +f 334/3674/83 351/340/82 350/342/83 +f 335/3675/82 352/343/84 351/345/82 +f 382/3676/103 335/3675/16 334/3674/103 +f 383/3677/16 336/3660/11 335/3675/16 +f 384/3678/11 321/3659/3 336/3660/11 +f 369/3679/3 322/3661/18 321/3659/3 +f 370/3680/18 323/3662/14 322/3661/18 +f 371/3681/14 324/3663/105 323/3662/14 +f 372/3682/105 325/3664/5 324/3663/105 +f 373/3683/5 326/3665/104 325/3664/5 +f 374/3684/104 327/3666/12 326/3665/104 +f 375/3685/12 328/3667/15 327/3666/12 +f 376/3686/15 329/3668/6 328/3667/15 +f 377/3687/6 330/3669/13 329/3670/6 +f 378/3688/13 331/3672/17 330/3669/13 +f 379/3689/17 332/3671/106 331/3672/17 +f 380/3690/106 333/3673/4 332/3671/106 +f 381/3691/4 334/3674/103 333/3673/4 +f 367/242/63 382/3676/107 366/243/107 +f 368/246/108 383/3677/63 367/244/63 +f 353/248/7 384/3678/108 368/249/108 +f 353/252/7 370/3680/65 369/3679/7 +f 355/255/67 370/3680/65 354/253/65 +f 355/258/67 372/3682/109 371/3681/67 +f 356/261/109 373/3683/69 372/3682/109 +f 357/262/69 374/3684/71 373/3683/69 +f 359/267/73 374/3684/71 358/265/71 +f 359/270/73 376/3686/75 375/3685/73 +f 360/273/75 377/3692/9 376/3686/75 +f 362/276/76 377/3687/9 361/274/9 +f 363/279/79 378/3688/76 362/277/76 +f 364/281/110 379/3689/79 363/282/79 +f 365/284/60 380/3690/110 364/285/110 +f 366/287/107 381/3691/60 365/288/60 +f 392/3693/15 407/3694/12 391/3695/12 +f 400/3696/11 415/3697/16 399/3698/16 +f 393/3699/6 408/3700/15 392/3693/15 +f 386/3701/18 401/3702/3 385/3703/3 +f 385/3703/3 416/3704/11 400/3696/11 +f 394/3705/13 409/3706/6 393/3707/6 +f 387/3708/14 402/3709/18 386/3701/18 +f 395/3710/17 410/3711/13 394/3705/13 +f 388/3712/105 403/3713/14 387/3708/14 +f 396/3714/106 411/3715/17 395/3710/17 +f 389/3716/5 404/3717/105 388/3712/105 +f 397/3718/4 412/3719/106 396/3714/106 +f 390/3720/104 405/3721/5 389/3716/5 +f 398/3722/103 413/3723/4 397/3718/4 +f 391/3695/12 406/3724/104 390/3720/104 +f 399/3698/16 414/3725/103 398/3722/103 +f 417/3726/6 433/3727/13 418/3728/13 +f 432/3729/15 434/3730/6 417/3726/6 +f 425/3731/3 442/3732/18 426/3733/18 +f 418/3728/13 435/3734/17 419/3735/17 +f 426/3733/18 443/3736/14 427/3737/14 +f 419/3735/17 436/3738/106 420/3739/106 +f 427/3737/14 444/3740/105 428/3741/105 +f 420/3739/106 437/3742/4 421/3743/4 +f 428/3741/105 445/3744/5 429/3745/5 +f 421/3743/4 438/3746/103 422/3747/103 +f 429/3745/5 446/3748/104 430/3749/104 +f 422/3747/103 439/3750/16 423/3751/16 +f 430/3749/104 447/3752/12 431/3753/12 +f 423/3751/16 440/3754/11 424/3755/11 +f 431/3753/12 448/3756/15 432/3729/15 +f 424/3755/11 441/3757/3 425/3758/3 +f 460/3759/105 475/3760/14 459/3761/14 +f 453/3762/4 468/3763/106 452/3764/106 +f 461/3765/5 476/3766/105 460/3759/105 +f 454/3767/103 469/3768/4 453/3762/4 +f 462/3769/104 477/3770/5 461/3765/5 +f 455/3771/16 470/3772/103 454/3767/103 +f 463/3773/12 478/3774/104 462/3769/104 +f 456/3775/11 471/3776/16 455/3771/16 +f 464/3777/15 479/3778/12 463/3773/12 +f 457/3779/3 472/3780/11 456/3775/11 +f 450/3781/13 466/3782/6 449/3783/6 +f 449/3783/6 480/3784/15 464/3777/15 +f 458/3785/18 473/3786/3 457/3787/3 +f 451/3788/17 465/3789/13 450/3781/13 +f 459/3761/14 474/3790/18 458/3785/18 +f 452/3764/106 467/3791/17 451/3788/17 +f 510/3792/103 495/3793/16 494/3794/103 +f 503/3795/12 488/3796/15 487/3797/12 +f 511/3798/16 496/3799/11 495/3793/16 +f 504/3800/15 489/3801/6 488/3796/15 +f 497/3802/3 482/3803/18 481/3804/3 +f 512/3805/11 481/3804/3 496/3799/11 +f 505/3806/6 490/3807/13 489/3808/6 +f 498/3809/18 483/3810/14 482/3803/18 +f 506/3811/13 491/3812/17 490/3807/13 +f 499/3813/14 484/3814/105 483/3810/14 +f 507/3815/17 492/3816/106 491/3812/17 +f 500/3817/105 485/3818/5 484/3814/105 +f 492/3816/106 509/3819/4 493/3820/4 +f 501/3821/5 486/3822/104 485/3818/5 +f 509/3819/4 494/3794/103 493/3820/4 +f 502/3823/104 487/3797/12 486/3822/104 +f 542/3824/103 527/3825/16 526/3826/103 +f 535/3827/12 520/3828/15 519/3829/12 +f 543/3830/16 528/3831/11 527/3825/16 +f 536/3832/15 521/3833/6 520/3828/15 +f 529/3834/3 514/3835/18 513/3836/3 +f 544/3837/11 513/3836/3 528/3831/11 +f 537/3838/6 522/3839/13 521/3840/6 +f 530/3841/18 515/3842/14 514/3835/18 +f 538/3843/13 523/3844/17 522/3839/13 +f 531/3845/14 516/3846/105 515/3842/14 +f 539/3847/17 524/3848/106 523/3844/17 +f 532/3849/105 517/3850/5 516/3846/105 +f 524/3848/106 541/3851/4 525/3852/4 +f 533/3853/5 518/3854/104 517/3850/5 +f 541/3851/4 526/3826/103 525/3852/4 +f 534/3855/104 519/3829/12 518/3854/104 +f 779/3856/111 770/3857/112 771/3858/113 +f 773/3859/114 792/3860/115 789/3861/116 +f 780/3862/117 771/3858/113 772/3863/118 +f 791/3864/119 774/3865/120 790/3866/121 +f 770/3857/112 777/3867/122 769/3868/123 +f 776/3869/124 791/3864/119 792/3860/115 +f 769/3870/123 780/3862/117 772/3863/118 +f 782/3871/125 777/3867/122 778/3872/126 +f 779/3856/111 782/3871/125 778/3872/126 +f 780/3862/117 783/3873/127 779/3856/111 +f 781/3874/128 780/3862/117 777/3875/122 +f 786/3876/129 781/3877/128 782/3871/125 +f 783/3873/127 786/3876/129 782/3871/125 +f 784/3878/130 787/3879/131 783/3873/127 +f 785/3880/132 784/3878/130 781/3874/128 +f 786/3876/129 789/3881/116 785/3882/132 +f 787/3879/131 790/3866/121 786/3876/129 +f 788/3883/133 791/3864/119 787/3879/131 +f 789/3861/116 788/3883/133 785/3880/132 +f 774/3865/120 789/3881/116 790/3866/121 +f 798/3884/134 813/3885/135 814/3886/136 +f 815/3887/137 798/3884/134 814/3886/136 +f 800/3888/138 815/3887/137 816/3889/139 +f 797/3890/140 816/3889/139 813/3891/135 +f 794/3892/141 801/3893/142 793/3894/143 +f 803/3895/144 794/3892/141 795/3896/145 +f 804/3897/146 795/3896/145 796/3898/147 +f 793/3899/143 804/3897/146 796/3898/147 +f 806/3900/148 801/3893/142 802/3901/149 +f 807/3902/150 802/3901/149 803/3895/144 +f 808/3903/151 803/3895/144 804/3897/146 +f 801/3904/142 808/3903/151 804/3897/146 +f 806/3900/148 809/3905/152 805/3906/153 +f 811/3907/154 806/3900/148 807/3902/150 +f 808/3903/151 811/3907/154 807/3902/150 +f 805/3908/153 812/3909/155 808/3903/151 +f 810/3910/156 813/3885/135 809/3905/152 +f 815/3887/137 810/3910/156 811/3907/154 +f 812/3909/155 815/3887/137 811/3907/154 +f 809/3911/152 816/3889/139 812/3909/155 +f 837/3912/157 818/3913/158 838/3914/159 +f 839/3915/160 818/3913/158 819/3916/161 +f 839/3915/160 820/3917/162 840/3918/163 +f 840/3918/163 817/3919/164 837/3920/157 +f 821/3921/165 826/3922/166 822/3923/167 +f 822/3923/167 827/3924/168 823/3925/169 +f 823/3925/169 828/3926/170 824/3927/171 +f 821/3928/165 828/3926/170 825/3929/172 +f 826/3922/166 829/3930/173 830/3931/174 +f 826/3922/166 831/3932/175 827/3924/168 +f 827/3924/168 832/3933/176 828/3926/170 +f 825/3929/172 832/3933/176 829/3934/173 +f 829/3930/173 834/3935/177 830/3931/174 +f 831/3932/175 834/3935/177 835/3936/178 +f 831/3932/175 836/3937/179 832/3933/176 +f 832/3933/176 833/3938/180 829/3934/173 +f 833/3939/180 838/3914/159 834/3935/177 +f 835/3936/178 838/3914/159 839/3915/160 +f 835/3936/178 840/3918/163 836/3937/179 +f 836/3937/179 837/3920/157 833/3938/180 +f 865/3940/181 850/3941/182 849/3942/183 +f 858/3943/184 843/710/185 842/3944/186 +f 866/3945/187 851/725/188 850/3941/182 +f 860/708/189 845/3946/190 844/706/191 +f 868/726/192 853/3947/193 852/724/194 +f 861/3948/195 846/717/196 845/3946/190 +f 869/3949/197 854/734/198 853/3947/193 +f 863/722/199 848/3950/200 847/719/201 +f 871/738/202 856/3951/203 855/736/204 +f 864/3952/205 849/3953/183 848/3950/200 +f 857/3954/206 842/3944/186 841/3955/207 +f 872/3956/208 841/3955/207 856/3951/203 +f 29/3410/62 14/3436/81 13/3467/102 +f 26/3430/77 11/3463/99 10/3395/48 +f 28/3434/80 13/3467/102 12/3461/98 +f 881/3957/209 866/3945/187 865/3940/181 +f 866/3945/187 883/3958/210 867/728/211 +f 867/728/211 884/3959/212 868/726/192 +f 884/3960/212 869/3949/197 868/726/192 +f 869/3949/197 886/3961/213 870/731/214 +f 870/731/214 887/3962/215 871/738/202 +f 887/3963/215 872/3956/208 871/738/202 +f 872/3956/208 873/3964/216 857/3954/206 +f 873/3965/216 858/3943/184 857/3954/206 +f 874/3966/217 859/711/218 858/3943/184 +f 875/3967/219 860/708/189 859/711/218 +f 876/3968/220 861/3948/195 860/708/189 +f 861/3948/195 878/3969/221 862/714/222 +f 878/3970/221 863/722/199 862/714/222 +f 879/3971/223 864/3952/205 863/722/199 +f 880/3972/224 865/3973/181 864/3952/205 +f 883/3974/210 879/3975/223 875/3976/219 +f 849/3953/183 896/3977/225 848/3950/200 +f 850/3941/182 897/3978/226 849/3942/183 +f 850/3941/182 899/3979/227 898/3980/228 +f 851/725/188 900/3981/229 899/3982/227 +f 852/724/194 901/3983/230 900/3984/229 +f 853/3947/193 902/3985/231 901/3986/230 +f 854/734/198 903/3987/232 902/3988/231 +f 856/3951/203 903/3989/232 855/736/204 +f 841/3955/207 904/3990/233 856/3951/203 +f 842/3944/186 889/3991/234 841/3955/207 +f 843/710/185 890/3992/235 842/3944/186 +f 844/706/191 891/3993/236 843/710/185 +f 845/3946/190 892/3994/237 844/706/191 +f 845/3946/190 894/3995/238 893/3996/239 +f 847/719/201 894/3997/238 846/717/196 +f 848/3950/200 895/3998/240 847/719/201 +f 897/3999/226 901/4000/230 889/4001/234 +f 20/3419/68 5/3447/88 4/3445/86 +f 21/3421/70 6/3449/90 5/3447/88 +f 23/3425/74 8/3405/57 7/3453/94 +f 934/4002/241 923/4003/242 922/4004/243 +f 923/4003/242 936/4005/14 924/4006/244 +f 936/4007/14 925/4008/245 924/4006/244 +f 925/4008/245 938/4009/246 926/4010/247 +f 938/4011/246 927/4012/248 926/4010/247 +f 927/4012/248 940/4013/249 928/4014/250 +f 940/4015/249 929/4016/251 928/4014/250 +f 941/4017/252 930/4018/253 929/4016/251 +f 942/4019/12 931/4020/254 930/4021/253 +f 931/4020/254 944/4022/255 932/4023/256 +f 932/4023/256 933/4024/69 921/4025/257 +f 933/4026/69 922/4004/243 921/4025/257 +f 928/4014/250 951/4027/258 927/4012/248 +f 925/4008/245 948/4028/259 924/4006/244 +f 932/4023/256 955/4029/260 931/4020/254 +f 921/4025/257 946/4030/261 945/4031/262 +f 929/4016/251 952/4032/263 928/4014/250 +f 925/4008/245 950/4033/264 949/4034/265 +f 921/4025/257 956/4035/266 932/4023/256 +f 922/4004/243 947/4036/267 946/4030/261 +f 930/4018/253 953/4037/268 929/4016/251 +f 927/4012/248 950/4033/264 926/4010/247 +f 924/4006/244 947/4036/267 923/4003/242 +f 930/4021/253 955/4029/260 954/4038/269 +f 947/4036/267 958/742/270 946/4030/261 +f 948/4028/259 959/745/271 947/4036/267 +f 949/4034/265 960/748/16 948/4028/259 +f 950/4033/264 961/751/272 949/4034/265 +f 950/4033/264 963/2780/100 962/752/273 +f 952/4032/263 963/757/100 951/4027/258 +f 952/4032/263 965/2782/274 964/758/275 +f 954/4039/269 965/761/274 953/4037/268 +f 954/4038/269 967/764/276 966/766/17 +f 956/4035/266 967/769/276 955/4029/260 +f 945/4031/262 968/770/277 956/4035/266 +f 945/4031/262 958/2787/270 957/773/60 +f 977/759/278 988/4040/279 976/760/279 +f 974/2779/280 985/4041/281 973/750/281 +f 969/771/2 992/4042/282 980/772/282 +f 971/2776/283 981/4043/284 970/741/284 +f 978/762/6 989/4044/278 977/763/278 +f 975/753/1 986/4045/280 974/754/280 +f 972/2777/3 983/4046/283 971/744/283 +f 979/2784/285 990/4047/6 978/765/6 +f 976/2781/279 987/4048/1 975/756/1 +f 973/2778/281 984/4049/3 972/747/3 +f 980/2785/282 991/4050/285 979/768/285 +f 970/774/284 982/4051/2 969/775/2 +f 944/4052/282 993/784/2 933/4024/2 +f 935/4053/283 994/785/284 995/787/283 +f 941/4017/278 1002/788/6 942/4054/6 +f 938/4011/280 999/793/1 939/4055/1 +f 935/4056/283 996/794/3 936/4005/3 +f 942/4019/6 1003/799/285 943/4057/285 +f 939/4058/1 1000/802/279 940/4013/279 +f 936/4007/3 997/805/281 937/4059/281 +f 943/4060/285 1004/806/282 944/4022/282 +f 933/4026/2 994/811/284 934/4061/284 +f 940/4015/279 1001/814/278 941/4062/278 +f 938/4009/280 997/2797/281 998/779/280 +f 1010/4063/280 1023/818/1 1011/4064/1 +f 1007/4065/283 1020/821/3 1008/4066/3 +f 1014/4067/6 1027/817/285 1015/4068/285 +f 1011/4064/1 1024/820/279 1012/4069/279 +f 1008/4066/3 1021/823/281 1009/4070/281 +f 1015/4068/285 1028/824/282 1016/4071/282 +f 1005/4072/2 1018/829/284 1006/4073/284 +f 1012/4069/279 1025/831/278 1013/4074/278 +f 1009/4070/281 1022/832/280 1010/4063/280 +f 1016/4071/282 1017/827/2 1005/4072/2 +f 1006/4073/284 1019/837/283 1007/4065/283 +f 1013/4074/278 1026/838/6 1014/4075/6 +f 1034/2816/280 1047/4076/1 1035/841/1 +f 1031/842/283 1044/4077/3 1032/843/3 +f 1038/2809/6 1051/4078/285 1039/816/285 +f 1035/2810/1 1048/4079/279 1036/819/279 +f 1032/2811/3 1045/4080/281 1033/822/281 +f 1039/825/285 1052/4081/282 1040/826/282 +f 1030/2812/2 1041/4082/284 1029/828/284 +f 1036/2813/279 1049/4083/278 1037/830/278 +f 1033/833/281 1046/4084/280 1034/834/280 +f 1030/835/2 1052/4085/282 1042/4086/2 +f 1029/2815/284 1043/4087/283 1031/836/283 +f 1037/839/278 1050/4088/6 1038/840/6 +f 1053/4089/4 1076/850/286 1065/852/4 +f 1055/4090/287 1066/853/288 1067/855/287 +f 1061/4091/289 1074/856/6 1062/4092/6 +f 1058/4093/290 1071/859/5 1059/4094/5 +f 1055/4090/287 1068/862/3 1056/4095/3 +f 1062/4096/6 1075/867/291 1063/4097/291 +f 1059/4094/5 1072/869/292 1060/4098/292 +f 1056/4095/3 1069/847/293 1057/4099/293 +f 1063/4097/291 1076/850/286 1064/4100/286 +f 1053/4089/4 1066/853/288 1054/4101/288 +f 1061/4091/289 1072/869/292 1073/875/289 +f 1058/4093/290 1069/847/293 1070/849/290 +f 1082/4102/290 1095/881/5 1083/4103/5 +f 1079/4104/287 1092/884/3 1080/4105/3 +f 1086/4106/6 1099/880/291 1087/4107/291 +f 1083/4103/5 1096/883/292 1084/4108/292 +f 1080/4105/3 1093/886/293 1081/4109/293 +f 1087/4107/291 1100/887/286 1088/4110/286 +f 1077/4111/4 1090/890/288 1078/4112/288 +f 1085/4113/289 1096/883/292 1097/893/289 +f 1081/4109/293 1094/897/290 1082/4102/290 +f 1077/4111/4 1100/887/286 1089/899/4 +f 1078/4112/288 1091/901/287 1079/4104/287 +f 1085/4113/289 1098/902/6 1086/4114/6 +f 1106/905/290 1119/4115/5 1107/906/5 +f 1103/907/287 1116/4116/3 1104/908/3 +f 1110/2832/6 1123/4117/291 1111/879/291 +f 1107/2833/5 1120/4118/292 1108/882/292 +f 1104/2834/3 1117/4119/293 1105/885/293 +f 1111/888/291 1124/4120/286 1112/889/286 +f 1102/891/4 1113/4121/288 1101/892/288 +f 1108/894/292 1121/4122/289 1109/895/289 +f 1105/2835/293 1118/4123/290 1106/896/290 +f 1112/2836/286 1114/4124/4 1102/898/4 +f 1101/2837/288 1115/4125/287 1103/900/287 +f 1109/903/289 1122/4126/6 1110/904/6 +f 19/3417/66 4/3445/86 3/3401/54 +f 22/3423/72 7/3453/94 6/3449/90 +f 27/3432/78 12/3461/98 11/3463/99 +f 30/3409/61 15/3399/52 14/3436/81 +f 1138/4127/294 1139/4128/295 1137/4129/296 +f 1140/4130/297 1141/4131/298 1139/4128/295 +f 1142/4132/299 1143/4133/300 1141/4131/298 +f 1144/4134/301 1145/4135/302 1143/4133/300 +f 1146/4136/303 1147/4137/304 1145/4135/302 +f 1148/4138/305 1149/4139/93 1147/4137/304 +f 1140/4130/297 1169/4140/83 1142/4132/299 +f 1150/4141/71 1151/4142/306 1149/4143/93 +f 1152/4144/307 1137/4129/296 1151/4142/306 +f 1141/4131/298 1156/4145/308 1155/4146/107 +f 1145/4147/302 1156/4145/308 1143/4133/300 +f 1139/4128/295 1155/4146/107 1154/4148/309 +f 1145/4147/302 1158/4149/310 1157/4150/311 +f 1137/4151/296 1159/4152/312 1151/4153/306 +f 1139/4128/295 1153/4154/313 1137/4151/296 +f 1159/4152/312 1160/4155/314 1166/4156/315 +f 1157/4150/311 1163/4157/316 1156/4145/308 +f 1154/4148/309 1162/4158/317 1161/4159/318 +f 1158/4149/310 1164/4160/319 1157/4150/311 +f 1156/4145/308 1162/4158/317 1155/4146/107 +f 1153/4154/313 1161/4159/318 1160/4155/314 +f 1151/4153/306 1159/4152/312 1149/4161/93 +f 1159/4152/312 1166/4156/315 1149/4161/93 +f 1149/4162/93 1158/4149/310 1147/4163/304 +f 1158/4149/310 1149/4162/93 1165/4164/320 +f 1148/4165/305 1171/4166/321 1172/4167/322 +f 1138/4168/294 1173/4169/323 1167/4170/324 +f 1140/4130/297 1167/4170/324 1168/4171/325 +f 1144/4134/301 1169/4140/83 1170/4172/326 +f 1146/4173/303 1170/4172/326 1171/4166/321 +f 1172/4167/322 1178/4174/327 1179/4175/328 +f 1170/4172/326 1176/4176/329 1177/4177/330 +f 1167/4170/324 1175/4178/331 1168/4171/325 +f 1167/4170/324 1180/4179/332 1174/4180/333 +f 1171/4166/321 1177/4177/330 1178/4174/327 +f 1168/4171/325 1176/4176/329 1169/4140/83 +f 1150/4181/71 1173/4169/323 1152/4182/307 +f 1173/4169/323 1150/4181/71 1180/4179/332 +f 1148/4165/305 1172/4167/322 1150/4183/71 +f 1172/4167/322 1179/4175/328 1150/4183/71 +f 1179/4184/328 1186/4185/13 1187/4186/76 +f 1176/4176/329 1185/4187/96 1177/4177/330 +f 1174/4188/333 1183/4189/85 1175/4178/331 +f 1150/4190/71 1187/4186/76 1181/4191/2 +f 1180/4192/332 1182/4193/18 1174/4188/333 +f 1180/4192/332 1181/4194/2 1188/4195/65 +f 1177/4177/330 1186/4185/13 1178/4196/327 +f 1176/4176/329 1183/4189/85 1184/4197/1 +f 1149/4198/93 1196/4199/85 1189/4200/1 +f 1163/4157/316 1194/4201/13 1193/4202/76 +f 1162/4158/317 1191/4203/65 1161/4159/318 +f 1164/4204/319 1195/4205/96 1194/4201/13 +f 1162/4158/317 1193/4202/76 1192/4206/2 +f 1160/4207/314 1191/4203/65 1190/4208/18 +f 1149/4209/93 1195/4205/96 1165/4210/320 +f 1160/4207/314 1196/4199/85 1166/4211/315 +f 1198/4212/334 1199/4213/335 1197/4214/336 +f 1200/4215/337 1201/4216/338 1199/4213/335 +f 1202/4217/339 1203/4218/340 1201/4216/338 +f 1204/4219/341 1205/4220/342 1203/4218/340 +f 1206/4221/343 1207/4222/344 1205/4220/342 +f 1208/4223/345 1209/4224/89 1207/4222/344 +f 1200/4215/337 1229/4225/101 1202/4217/339 +f 1210/4226/109 1211/4227/346 1209/4228/89 +f 1212/4229/347 1197/4214/336 1211/4227/346 +f 1203/4218/340 1215/4230/110 1201/4216/338 +f 1205/4231/342 1216/4232/348 1203/4218/340 +f 1199/4213/335 1215/4230/110 1214/4233/349 +f 1205/4231/342 1218/4234/350 1217/4235/351 +f 1197/4236/336 1219/4237/352 1211/4238/346 +f 1197/4236/336 1214/4233/349 1213/4239/353 +f 1219/4237/352 1220/4240/354 1226/4241/355 +f 1216/4232/348 1224/4242/356 1223/4243/357 +f 1214/4233/349 1222/4244/358 1221/4245/359 +f 1218/4234/350 1224/4242/356 1217/4235/351 +f 1215/4230/110 1223/4243/357 1222/4244/358 +f 1214/4233/349 1220/4240/354 1213/4239/353 +f 1211/4238/346 1219/4237/352 1209/4246/89 +f 1219/4237/352 1226/4241/355 1209/4246/89 +f 1209/4247/89 1218/4234/350 1207/4248/344 +f 1218/4234/350 1209/4247/89 1225/4249/360 +f 1208/4250/345 1231/4251/361 1232/4252/362 +f 1212/4253/347 1227/4254/363 1198/4255/334 +f 1200/4215/337 1227/4254/363 1228/4256/364 +f 1204/4219/341 1229/4225/101 1230/4257/365 +f 1206/4258/343 1230/4257/365 1231/4251/361 +f 1232/4252/362 1238/4259/366 1239/4260/367 +f 1230/4257/365 1236/4261/368 1237/4262/369 +f 1228/4256/364 1234/4263/370 1235/4264/371 +f 1233/4265/372 1234/4263/370 1227/4254/363 +f 1231/4251/361 1237/4262/369 1238/4259/366 +f 1228/4256/364 1236/4261/368 1229/4225/101 +f 1210/4266/109 1233/4265/372 1212/4253/347 +f 1233/4265/372 1210/4266/109 1240/4267/373 +f 1208/4250/345 1232/4252/362 1210/4268/109 +f 1232/4252/362 1239/4260/367 1210/4268/109 +f 1239/4269/367 1246/4270/15 1247/4271/75 +f 1236/4261/368 1245/4272/95 1237/4262/369 +f 1234/4273/370 1243/4274/84 1235/4264/371 +f 1210/4275/109 1247/4271/75 1241/4276/2 +f 1240/4277/373 1242/4278/11 1234/4273/370 +f 1240/4277/373 1241/4279/2 1248/4280/108 +f 1237/4262/369 1246/4270/15 1238/4281/366 +f 1236/4261/368 1243/4274/84 1244/4282/1 +f 1209/4283/89 1256/4284/84 1249/4285/1 +f 1223/4243/357 1254/4286/15 1253/4287/75 +f 1222/4244/358 1251/4288/108 1221/4245/359 +f 1225/4289/360 1254/4286/15 1224/4290/356 +f 1222/4244/358 1253/4287/75 1252/4291/2 +f 1220/4292/354 1251/4288/108 1250/4293/11 +f 1209/4294/89 1255/4295/95 1225/4289/360 +f 1220/4292/354 1256/4284/84 1226/4296/355 +f 1258/4297/374 1259/4298/375 1257/4299/376 +f 1260/4300/377 1261/4301/378 1259/4298/375 +f 1262/4302/379 1263/4303/380 1261/4301/378 +f 1264/4304/381 1265/4305/382 1263/4303/380 +f 1266/4306/383 1267/4307/384 1265/4305/382 +f 1268/4308/385 1269/4309/83 1267/4307/384 +f 1260/4300/377 1289/4310/93 1262/4302/379 +f 1270/4311/107 1271/4312/386 1269/4313/83 +f 1272/4314/387 1257/4299/376 1271/4312/386 +f 1263/4303/380 1275/4315/71 1261/4301/378 +f 1265/4316/382 1276/4317/388 1263/4303/380 +f 1259/4298/375 1275/4315/71 1274/4318/389 +f 1265/4316/382 1278/4319/390 1277/4320/391 +f 1257/4321/376 1279/4322/392 1271/4323/386 +f 1257/4321/376 1274/4318/389 1273/4324/393 +f 1279/4322/392 1280/4325/394 1286/4326/395 +f 1277/4320/391 1283/4327/396 1276/4317/388 +f 1274/4318/389 1282/4328/397 1281/4329/398 +f 1278/4319/390 1284/4330/399 1277/4320/391 +f 1276/4317/388 1282/4328/397 1275/4315/71 +f 1274/4318/389 1280/4325/394 1273/4324/393 +f 1271/4323/386 1279/4322/392 1269/4331/83 +f 1279/4322/392 1286/4326/395 1269/4331/83 +f 1269/4332/83 1278/4319/390 1267/4333/384 +f 1278/4319/390 1269/4332/83 1285/4334/400 +f 1268/4335/385 1291/4336/401 1292/4337/402 +f 1258/4338/374 1293/4339/403 1287/4340/404 +f 1260/4300/377 1287/4340/404 1288/4341/405 +f 1262/4302/379 1290/4342/406 1264/4304/381 +f 1266/4343/383 1290/4342/406 1291/4336/401 +f 1291/4336/401 1299/4344/407 1292/4337/402 +f 1290/4342/406 1296/4345/408 1297/4346/409 +f 1288/4341/405 1294/4347/410 1295/4348/411 +f 1293/4339/403 1294/4347/410 1287/4340/404 +f 1291/4336/401 1297/4346/409 1298/4349/412 +f 1288/4341/405 1296/4345/408 1289/4310/93 +f 1270/4350/107 1293/4339/403 1272/4351/387 +f 1293/4339/403 1270/4350/107 1300/4352/413 +f 1268/4335/385 1292/4337/402 1270/4353/107 +f 1292/4337/402 1299/4344/407 1270/4353/107 +f 1299/4354/407 1306/4355/18 1307/4356/65 +f 1296/4345/408 1305/4357/85 1297/4346/409 +f 1294/4358/410 1303/4359/96 1295/4348/411 +f 1270/4360/107 1307/4356/65 1301/4361/2 +f 1300/4362/413 1302/4363/13 1294/4358/410 +f 1300/4362/413 1301/4364/2 1308/4365/76 +f 1297/4346/409 1306/4355/18 1298/4366/412 +f 1295/4348/411 1304/4367/1 1296/4345/408 +f 1269/4368/83 1316/4369/96 1309/4370/1 +f 1283/4327/396 1314/4371/18 1313/4372/65 +f 1282/4328/397 1311/4373/76 1281/4329/398 +f 1285/4374/400 1314/4371/18 1284/4375/399 +f 1282/4328/397 1313/4372/65 1312/4376/2 +f 1280/4377/394 1311/4373/76 1310/4378/13 +f 1269/4379/83 1315/4380/85 1285/4374/400 +f 1280/4377/394 1316/4369/96 1286/4381/395 +f 1318/4382/414 1319/4383/415 1317/4384/416 +f 1320/4385/417 1321/4386/418 1319/4383/415 +f 1322/4387/419 1323/4388/420 1321/4386/418 +f 1324/4389/421 1325/4390/422 1323/4388/420 +f 1326/4391/423 1327/4392/424 1325/4390/422 +f 1328/4393/425 1329/4394/101 1327/4392/424 +f 1320/4385/417 1349/4395/89 1322/4387/419 +f 1330/4396/110 1331/4397/426 1329/4398/101 +f 1332/4399/427 1317/4384/416 1331/4397/426 +f 1323/4388/420 1335/4400/109 1321/4386/418 +f 1325/4401/422 1336/4402/428 1323/4388/420 +f 1319/4383/415 1335/4400/109 1334/4403/429 +f 1325/4401/422 1338/4404/430 1337/4405/431 +f 1317/4406/416 1339/4407/432 1331/4408/426 +f 1317/4406/416 1334/4403/429 1333/4409/433 +f 1339/4407/432 1340/4410/434 1346/4411/435 +f 1336/4402/428 1344/4412/436 1343/4413/437 +f 1335/4400/109 1341/4414/438 1334/4403/429 +f 1338/4404/430 1344/4412/436 1337/4405/431 +f 1336/4402/428 1342/4415/439 1335/4400/109 +f 1334/4403/429 1340/4410/434 1333/4409/433 +f 1331/4408/426 1339/4407/432 1329/4416/101 +f 1339/4407/432 1346/4411/435 1329/4416/101 +f 1329/4417/101 1338/4404/430 1327/4418/424 +f 1338/4404/430 1329/4417/101 1345/4419/440 +f 1328/4420/425 1351/4421/441 1352/4422/442 +f 1332/4423/427 1347/4424/443 1318/4425/414 +f 1318/4425/414 1348/4426/444 1320/4385/417 +f 1324/4389/421 1349/4395/89 1350/4427/445 +f 1326/4428/423 1350/4427/445 1351/4421/441 +f 1351/4421/441 1359/4429/446 1352/4422/442 +f 1350/4427/445 1356/4430/447 1357/4431/448 +f 1348/4426/444 1354/4432/449 1355/4433/450 +f 1353/4434/451 1354/4432/449 1347/4424/443 +f 1351/4421/441 1357/4431/448 1358/4435/452 +f 1349/4395/89 1355/4433/450 1356/4430/447 +f 1330/4436/110 1353/4434/451 1332/4423/427 +f 1353/4434/451 1330/4436/110 1360/4437/453 +f 1328/4420/425 1352/4422/442 1330/4438/110 +f 1352/4422/442 1359/4429/446 1330/4438/110 +f 1359/4439/446 1366/4440/11 1367/4441/108 +f 1356/4430/447 1365/4442/84 1357/4431/448 +f 1354/4443/449 1363/4444/95 1355/4433/450 +f 1330/4445/110 1367/4441/108 1361/4446/2 +f 1360/4447/453 1362/4448/15 1354/4443/449 +f 1360/4447/453 1361/4449/2 1368/4450/75 +f 1357/4431/448 1366/4440/11 1358/4451/452 +f 1356/4430/447 1363/4444/95 1364/4452/1 +f 1329/4453/101 1376/4454/95 1369/4455/1 +f 1343/4413/437 1374/4456/11 1373/4457/108 +f 1342/4415/439 1371/4458/75 1341/4414/438 +f 1344/4459/436 1375/4460/84 1374/4456/11 +f 1342/4415/439 1373/4457/108 1372/4461/2 +f 1340/4462/434 1371/4458/75 1370/4463/15 +f 1329/4464/101 1375/4460/84 1345/4465/440 +f 1340/4462/434 1376/4454/95 1346/4466/435 +f 1378/4467/422 1379/4468/421 1377/4469/423 +f 1380/4470/420 1381/4471/419 1379/4468/421 +f 1382/4472/418 1383/4473/417 1381/4471/419 +f 1384/4474/415 1385/4475/414 1383/4473/417 +f 1386/4476/416 1387/4477/427 1385/4475/414 +f 1388/4478/426 1389/4479/110 1387/4477/427 +f 1380/4470/420 1409/4480/109 1382/4472/418 +f 1390/4481/101 1391/4482/425 1389/4483/110 +f 1392/4484/424 1377/4469/423 1391/4482/425 +f 1381/4471/419 1396/4485/444 1395/4486/89 +f 1385/4487/414 1396/4485/444 1383/4473/417 +f 1379/4468/421 1395/4486/89 1394/4488/445 +f 1385/4487/414 1398/4489/454 1397/4490/443 +f 1377/4491/423 1399/4492/442 1391/4493/425 +f 1379/4468/421 1393/4494/441 1377/4491/423 +f 1399/4492/442 1400/4495/452 1406/4496/455 +f 1397/4490/443 1403/4497/450 1396/4485/444 +f 1394/4488/445 1402/4498/447 1401/4499/448 +f 1397/4490/443 1405/4500/453 1404/4501/449 +f 1396/4485/444 1402/4498/447 1395/4486/89 +f 1394/4488/445 1400/4495/452 1393/4494/441 +f 1391/4493/425 1399/4492/442 1389/4502/110 +f 1399/4492/442 1406/4496/455 1389/4502/110 +f 1389/4503/110 1398/4489/454 1387/4504/427 +f 1398/4489/454 1389/4503/110 1405/4500/453 +f 1388/4505/426 1411/4506/433 1412/4507/456 +f 1392/4508/424 1407/4509/431 1378/4510/422 +f 1378/4510/422 1408/4511/428 1380/4470/420 +f 1384/4474/415 1409/4480/109 1410/4512/457 +f 1386/4513/416 1410/4512/457 1411/4506/433 +f 1412/4507/456 1418/4514/434 1419/4515/435 +f 1409/4480/109 1417/4516/438 1410/4512/457 +f 1408/4511/428 1414/4517/436 1415/4518/437 +f 1413/4519/430 1414/4517/436 1407/4509/431 +f 1410/4512/457 1418/4514/434 1411/4506/433 +f 1408/4511/428 1416/4520/439 1409/4480/109 +f 1390/4521/101 1413/4519/430 1392/4508/424 +f 1413/4519/430 1390/4521/101 1420/4522/458 +f 1388/4505/426 1412/4507/456 1390/4523/101 +f 1412/4507/456 1419/4515/435 1390/4523/101 +f 1419/4524/435 1426/4525/15 1427/4526/95 +f 1416/4520/439 1425/4527/75 1417/4516/438 +f 1414/4528/436 1423/4529/108 1415/4518/437 +f 1390/4530/101 1427/4526/95 1421/4531/1 +f 1420/4532/458 1422/4533/11 1414/4528/436 +f 1420/4532/458 1421/4534/1 1428/4535/84 +f 1418/4536/434 1425/4527/75 1426/4525/15 +f 1416/4520/439 1423/4529/108 1424/4537/2 +f 1389/4538/110 1436/4539/108 1429/4540/2 +f 1403/4497/450 1434/4541/15 1433/4542/95 +f 1402/4498/447 1431/4543/84 1401/4499/448 +f 1405/4544/453 1434/4541/15 1404/4545/449 +f 1402/4498/447 1433/4542/95 1432/4546/1 +f 1400/4547/452 1431/4543/84 1430/4548/11 +f 1389/4549/110 1435/4550/75 1405/4544/453 +f 1400/4547/452 1436/4539/108 1406/4551/455 +f 1438/4552/382 1439/4553/381 1437/4554/383 +f 1440/4555/380 1441/4556/379 1439/4553/381 +f 1442/4557/378 1443/4558/377 1441/4556/379 +f 1444/4559/375 1445/4560/374 1443/4558/377 +f 1446/4561/376 1447/4562/387 1445/4560/374 +f 1448/4563/386 1449/4564/107 1447/4562/387 +f 1440/4555/380 1469/4565/71 1442/4557/378 +f 1450/4566/83 1451/4567/385 1449/4568/107 +f 1452/4569/384 1437/4554/383 1451/4567/385 +f 1443/4558/377 1455/4570/93 1441/4556/379 +f 1445/4571/374 1456/4572/405 1443/4558/377 +f 1441/4556/379 1454/4573/406 1439/4553/381 +f 1445/4571/374 1458/4574/403 1457/4575/404 +f 1437/4576/383 1459/4577/402 1451/4578/385 +f 1437/4576/383 1454/4573/406 1453/4579/401 +f 1459/4577/402 1460/4580/412 1466/4581/407 +f 1457/4575/404 1463/4582/411 1456/4572/405 +f 1454/4573/406 1462/4583/408 1461/4584/409 +f 1458/4574/403 1464/4585/410 1457/4575/404 +f 1456/4572/405 1462/4583/408 1455/4570/93 +f 1454/4573/406 1460/4580/412 1453/4579/401 +f 1451/4578/385 1459/4577/402 1449/4586/107 +f 1459/4577/402 1466/4581/407 1449/4586/107 +f 1449/4587/107 1458/4574/403 1447/4588/387 +f 1458/4574/403 1449/4587/107 1465/4589/459 +f 1448/4590/386 1471/4591/393 1472/4592/392 +f 1438/4593/382 1473/4594/390 1467/4595/391 +f 1440/4555/380 1467/4595/391 1468/4596/388 +f 1444/4559/375 1469/4565/71 1470/4597/389 +f 1444/4559/375 1471/4591/393 1446/4598/376 +f 1471/4591/393 1479/4599/395 1472/4592/392 +f 1470/4597/389 1476/4600/397 1477/4601/398 +f 1468/4596/388 1474/4602/399 1475/4603/396 +f 1473/4594/390 1474/4602/399 1467/4595/391 +f 1471/4591/393 1477/4601/398 1478/4604/394 +f 1468/4596/388 1476/4600/397 1469/4565/71 +f 1450/4605/83 1473/4594/390 1452/4606/384 +f 1473/4594/390 1450/4605/83 1480/4607/400 +f 1448/4590/386 1472/4592/392 1450/4608/83 +f 1472/4592/392 1479/4599/395 1450/4608/83 +f 1479/4609/395 1486/4610/13 1487/4611/96 +f 1476/4600/397 1485/4612/76 1477/4601/398 +f 1474/4613/399 1483/4614/65 1475/4603/396 +f 1450/4615/83 1487/4611/96 1481/4616/1 +f 1474/4613/399 1488/4617/85 1482/4618/18 +f 1480/4619/400 1481/4620/1 1488/4617/85 +f 1477/4601/398 1486/4610/13 1478/4621/394 +f 1476/4600/397 1483/4614/65 1484/4622/2 +f 1449/4623/107 1496/4624/65 1489/4625/2 +f 1463/4582/411 1494/4626/13 1493/4627/96 +f 1462/4583/408 1491/4628/85 1461/4584/409 +f 1465/4629/459 1494/4626/13 1464/4630/410 +f 1462/4583/408 1493/4627/96 1492/4631/1 +f 1460/4632/412 1491/4628/85 1490/4633/18 +f 1449/4634/107 1495/4635/76 1465/4629/459 +f 1466/4636/407 1490/4633/18 1496/4624/65 +f 1498/4637/342 1499/4638/341 1497/4639/343 +f 1500/4640/340 1501/4641/339 1499/4638/341 +f 1502/4642/338 1503/4643/337 1501/4641/339 +f 1504/4644/335 1505/4645/334 1503/4643/337 +f 1506/4646/336 1507/4647/347 1505/4645/334 +f 1508/4648/346 1509/4649/109 1507/4647/347 +f 1500/4640/340 1529/4650/110 1502/4642/338 +f 1510/4651/89 1511/4652/345 1509/4653/109 +f 1512/4654/344 1497/4639/343 1511/4652/345 +f 1503/4643/337 1515/4655/101 1501/4641/339 +f 1505/4656/334 1516/4657/364 1503/4643/337 +f 1499/4638/341 1515/4655/101 1514/4658/365 +f 1505/4656/334 1518/4659/372 1517/4660/363 +f 1497/4661/343 1519/4662/362 1511/4663/345 +f 1497/4661/343 1514/4658/365 1513/4664/361 +f 1519/4662/362 1520/4665/366 1526/4666/367 +f 1516/4657/364 1524/4667/370 1523/4668/371 +f 1514/4658/365 1522/4669/368 1521/4670/369 +f 1518/4659/372 1524/4667/370 1517/4660/363 +f 1515/4655/101 1523/4668/371 1522/4669/368 +f 1513/4664/361 1521/4670/369 1520/4665/366 +f 1511/4663/345 1519/4662/362 1509/4671/109 +f 1519/4662/362 1526/4666/367 1509/4671/109 +f 1509/4672/109 1518/4659/372 1507/4673/347 +f 1518/4659/372 1509/4672/109 1525/4674/373 +f 1508/4675/346 1531/4676/353 1532/4677/352 +f 1498/4678/342 1533/4679/350 1527/4680/351 +f 1500/4640/340 1527/4680/351 1528/4681/348 +f 1502/4642/338 1530/4682/349 1504/4644/335 +f 1506/4683/336 1530/4682/349 1531/4676/353 +f 1531/4676/353 1539/4684/355 1532/4677/352 +f 1530/4682/349 1536/4685/358 1537/4686/359 +f 1528/4681/348 1534/4687/356 1535/4688/357 +f 1533/4679/350 1534/4687/356 1527/4680/351 +f 1530/4682/349 1538/4689/354 1531/4676/353 +f 1528/4681/348 1536/4685/358 1529/4650/110 +f 1510/4690/89 1533/4679/350 1512/4691/344 +f 1533/4679/350 1510/4690/89 1540/4692/460 +f 1508/4675/346 1532/4677/352 1510/4693/89 +f 1532/4677/352 1539/4684/355 1510/4693/89 +f 1538/4694/354 1547/4695/84 1539/4696/355 +f 1536/4685/358 1545/4697/108 1537/4686/359 +f 1534/4698/356 1543/4699/75 1535/4688/357 +f 1510/4700/89 1547/4695/84 1541/4701/1 +f 1534/4698/356 1548/4702/95 1542/4703/15 +f 1540/4704/460 1541/4705/1 1548/4702/95 +f 1537/4686/359 1546/4706/11 1538/4694/354 +f 1536/4685/358 1543/4699/75 1544/4707/2 +f 1509/4708/109 1556/4709/75 1549/4710/2 +f 1523/4668/371 1554/4711/11 1553/4712/84 +f 1522/4669/368 1551/4713/95 1521/4670/369 +f 1525/4714/373 1554/4711/11 1524/4715/370 +f 1522/4669/368 1553/4712/84 1552/4716/1 +f 1520/4717/366 1551/4713/95 1550/4718/15 +f 1509/4719/109 1555/4720/108 1525/4714/373 +f 1520/4717/366 1556/4709/75 1526/4721/367 +f 1558/4722/302 1559/4723/301 1557/4724/303 +f 1560/4725/300 1561/4726/299 1559/4723/301 +f 1562/4727/298 1563/4728/297 1561/4726/299 +f 1564/4729/295 1565/4730/294 1563/4728/297 +f 1566/4731/296 1567/4732/307 1565/4730/294 +f 1568/4733/306 1569/4734/71 1567/4732/307 +f 1560/4725/300 1589/4735/107 1562/4727/298 +f 1570/4736/93 1571/4737/305 1569/4738/71 +f 1572/4739/304 1557/4724/303 1571/4737/305 +f 1563/4728/297 1575/4740/83 1561/4726/299 +f 1565/4741/294 1576/4742/325 1563/4728/297 +f 1559/4723/301 1575/4740/83 1574/4743/461 +f 1567/4744/307 1577/4745/324 1565/4741/294 +f 1557/4746/303 1579/4747/462 1571/4748/305 +f 1559/4723/301 1573/4749/321 1557/4746/303 +f 1579/4747/462 1580/4750/327 1586/4751/328 +f 1576/4742/325 1584/4752/333 1583/4753/331 +f 1575/4740/83 1581/4754/330 1574/4743/461 +f 1578/4755/323 1584/4752/333 1577/4745/324 +f 1576/4742/325 1582/4756/329 1575/4740/83 +f 1574/4743/461 1580/4750/327 1573/4749/321 +f 1571/4748/305 1579/4747/462 1569/4757/71 +f 1579/4747/462 1586/4751/328 1569/4757/71 +f 1569/4758/71 1578/4755/323 1567/4744/307 +f 1578/4755/323 1569/4758/71 1585/4759/463 +f 1568/4760/306 1591/4761/313 1592/4762/312 +f 1572/4763/304 1587/4764/311 1558/4765/302 +f 1558/4765/302 1588/4766/464 1560/4725/300 +f 1564/4729/295 1589/4735/107 1590/4767/309 +f 1566/4768/296 1590/4767/309 1591/4761/313 +f 1592/4762/312 1598/4769/314 1599/4770/465 +f 1590/4767/309 1596/4771/317 1597/4772/318 +f 1588/4766/464 1594/4773/319 1595/4774/316 +f 1593/4775/466 1594/4773/319 1587/4764/311 +f 1591/4761/313 1597/4772/318 1598/4769/314 +f 1588/4766/464 1596/4771/317 1589/4735/107 +f 1570/4776/93 1593/4775/466 1572/4763/304 +f 1593/4775/466 1570/4776/93 1600/4777/320 +f 1568/4760/306 1592/4762/312 1570/4778/93 +f 1592/4762/312 1599/4770/465 1570/4778/93 +f 1599/4779/465 1606/4780/18 1607/4781/85 +f 1596/4771/317 1605/4782/65 1597/4772/318 +f 1595/4774/316 1602/4783/13 1603/4784/76 +f 1570/4785/93 1607/4781/85 1601/4786/1 +f 1600/4787/320 1602/4783/13 1594/4788/319 +f 1570/4789/93 1608/4790/96 1600/4787/320 +f 1597/4772/318 1606/4780/18 1598/4791/314 +f 1596/4771/317 1603/4784/76 1604/4792/2 +f 1569/4793/71 1616/4794/76 1609/4795/2 +f 1583/4753/331 1614/4796/18 1613/4797/85 +f 1582/4756/329 1611/4798/96 1581/4754/330 +f 1585/4799/463 1614/4796/18 1584/4800/333 +f 1582/4756/329 1613/4797/85 1612/4801/1 +f 1580/4802/327 1611/4798/96 1610/4803/13 +f 1569/4804/71 1615/4805/65 1585/4799/463 +f 1580/4802/327 1616/4794/76 1586/4806/328 +f 1938/4807/467 1947/4808/468 1939/4809/469 +f 1960/4810/470 1941/4811/471 1957/4812/472 +f 1939/4809/469 1948/4813/473 1940/4814/474 +f 1959/4815/475 1942/4816/476 1943/4817/477 +f 1937/4818/478 1946/4819/479 1938/4807/467 +f 1959/4815/475 1944/4820/480 1960/4810/470 +f 1937/4821/478 1948/4813/473 1945/4822/481 +f 1945/4823/481 1950/4824/482 1946/4819/479 +f 1947/4808/468 1950/4824/482 1951/4825/483 +f 1948/4813/473 1951/4825/483 1952/4826/484 +f 1948/4813/473 1949/4827/485 1945/4822/481 +f 1949/4828/485 1954/4829/486 1950/4824/482 +f 1951/4825/483 1954/4829/486 1955/4830/487 +f 1952/4826/484 1955/4830/487 1956/4831/488 +f 1952/4826/484 1953/4832/489 1949/4827/485 +f 1953/4833/489 1958/4834/490 1954/4829/486 +f 1955/4830/487 1958/4834/490 1959/4815/475 +f 1955/4830/487 1960/4810/470 1956/4831/488 +f 1956/4831/488 1957/4812/472 1953/4832/489 +f 1957/4835/472 1942/4816/476 1958/4834/490 +f 1981/4836/491 1966/4837/492 1982/4838/493 +f 1983/4839/494 1966/4837/492 1967/4840/495 +f 1983/4839/494 1968/4841/496 1984/4842/497 +f 1984/4842/497 1965/4843/498 1981/4844/491 +f 1962/4845/499 1969/4846/500 1970/4847/501 +f 1962/4845/499 1971/4848/502 1963/4849/503 +f 1963/4849/503 1972/4850/504 1964/4851/505 +f 1961/4852/506 1972/4850/504 1969/4853/500 +f 1969/4846/500 1974/4854/507 1970/4847/501 +f 1970/4847/501 1975/4855/508 1971/4848/502 +f 1971/4848/502 1976/4856/509 1972/4850/504 +f 1969/4853/500 1976/4856/509 1973/4857/510 +f 1974/4854/507 1977/4858/511 1978/4859/512 +f 1974/4854/507 1979/4860/513 1975/4855/508 +f 1976/4856/509 1979/4860/513 1980/4861/514 +f 1973/4857/510 1980/4861/514 1977/4862/511 +f 1978/4859/512 1981/4836/491 1982/4838/493 +f 1978/4859/512 1983/4839/494 1979/4860/513 +f 1979/4860/513 1984/4842/497 1980/4861/514 +f 1977/4862/511 1984/4842/497 1981/4844/491 +f 1986/4863/515 2005/4864/516 2006/4865/517 +f 2007/4866/518 1986/4863/515 2006/4865/517 +f 1988/4867/519 2007/4866/518 2008/4868/520 +f 1985/4869/521 2008/4868/520 2005/4870/516 +f 1994/4871/522 1989/4872/523 1990/4873/524 +f 1995/4874/525 1990/4873/524 1991/4875/526 +f 1996/4876/527 1991/4875/526 1992/4877/528 +f 1989/4878/523 1996/4876/527 1992/4877/528 +f 1994/4871/522 1997/4879/529 1993/4880/530 +f 1999/4881/531 1994/4871/522 1995/4874/525 +f 2000/4882/532 1995/4874/525 1996/4876/527 +f 1993/4883/530 2000/4882/532 1996/4876/527 +f 2002/4884/533 1997/4879/529 1998/4885/534 +f 1999/4881/531 2002/4884/533 1998/4885/534 +f 2004/4886/535 1999/4881/531 2000/4882/532 +f 2001/4887/536 2000/4882/532 1997/4888/529 +f 2006/4865/517 2001/4889/536 2002/4884/533 +f 2003/4890/537 2006/4865/517 2002/4884/533 +f 2004/4886/535 2007/4866/518 2003/4890/537 +f 2005/4870/516 2004/4886/535 2001/4887/536 +f 2021/2938/279 2010/4891/278 2022/1549/278 +f 2028/2945/283 2017/4892/3 2029/1570/3 +f 2025/2942/282 2014/4893/2 2026/1561/2 +f 2022/1552/278 2011/4894/6 2023/1553/6 +f 2029/2946/3 2018/4895/281 2030/1573/281 +f 2026/1564/2 2015/4896/284 2027/1565/284 +f 2023/1555/6 2012/4897/285 2024/1556/285 +f 2030/2947/281 2020/4898/280 2031/1576/280 +f 2032/2937/1 2009/4899/279 2021/1546/279 +f 2027/2944/284 2016/4900/283 2028/1567/283 +f 2024/1558/285 2013/4901/282 2025/1559/282 +f 2056/4902/248 2043/2936/246 2044/1542/91 +f 2056/4902/248 2033/1547/249 2045/4903/250 +f 2045/4903/250 2034/1550/252 2046/4904/251 +f 2047/4905/253 2034/2939/252 2035/1551/12 +f 2047/4906/253 2036/1554/538 2048/4907/254 +f 2049/4908/256 2036/2941/538 2037/1557/255 +f 2049/4908/256 2038/1562/69 2050/4909/257 +f 2051/4910/243 2038/2943/69 2039/1563/241 +f 2051/4910/243 2040/1568/539 2052/4911/242 +f 2053/4912/244 2040/1569/539 2041/1571/14 +f 2054/4913/245 2041/1572/14 2042/1574/540 +f 2055/4914/247 2042/1575/540 2043/1577/246 +f 2070/4915/268 2047/4905/253 2071/4916/269 +f 2077/4917/259 2054/4913/245 2078/4918/265 +f 2074/4919/262 2051/4910/243 2075/4920/261 +f 2071/4921/269 2048/4907/254 2072/4922/260 +f 2078/4918/265 2055/4914/247 2079/4923/264 +f 2080/4924/258 2045/4903/250 2069/4925/263 +f 2075/4920/261 2052/4911/242 2076/4926/267 +f 2072/4922/260 2049/4908/256 2073/4927/266 +f 2079/4923/264 2056/4902/248 2080/4924/258 +f 2069/4925/263 2046/4904/251 2070/4915/268 +f 2076/4926/267 2053/4912/244 2077/4917/259 +f 2073/4927/266 2050/4909/257 2074/4919/262 +f 2068/4928/100 2079/4923/264 2080/4924/258 +f 2069/4925/263 2068/4929/100 2080/4924/258 +f 2070/4915/268 2057/4930/275 2069/4925/263 +f 2059/4931/17 2070/4915/268 2071/4916/269 +f 2060/4932/276 2071/4921/269 2072/4922/260 +f 2061/4933/277 2072/4922/260 2073/4927/266 +f 2074/4919/262 2061/4934/277 2073/4927/266 +f 2063/4935/270 2074/4919/262 2075/4920/261 +f 2064/4936/271 2075/4920/261 2076/4926/267 +f 2065/4937/16 2076/4926/267 2077/4917/259 +f 2066/4938/272 2077/4917/259 2078/4918/265 +f 2067/4939/273 2078/4918/265 2079/4923/264 +f 2085/4940/175 2084/4941/166 2088/4942/174 +f 2085/4940/175 2082/4943/170 2081/4944/168 +f 2086/4945/176 2083/4946/172 2082/4943/170 +f 2088/4947/174 2083/4946/172 2087/4948/173 +f 2089/4949/178 2088/4942/174 2092/4950/177 +f 2090/4951/179 2085/4940/175 2089/4949/178 +f 2090/4951/179 2087/4948/173 2086/4945/176 +f 2092/4952/177 2087/4948/173 2091/4953/180 +f 2096/4954/159 2089/4949/178 2092/4950/177 +f 2094/4955/163 2089/4949/178 2093/4956/160 +f 2095/4957/157 2090/4951/179 2094/4955/163 +f 2095/4957/157 2092/4952/177 2091/4953/180 +f 2100/4958/158 2093/4956/160 2096/4954/159 +f 2098/4959/162 2093/4956/160 2097/4960/161 +f 2099/4961/164 2094/4955/163 2098/4959/162 +f 2100/4962/158 2095/4957/157 2099/4961/164 +f 2081/4944/168 2104/4963/167 2084/4941/166 +f 2082/4943/170 2101/4964/169 2081/4944/168 +f 2082/4943/170 2103/4965/165 2102/4966/171 +f 2084/4967/166 2103/4965/165 2083/4946/172 +f 2112/4968/541 2105/4969/542 2109/4970/127 +f 2109/4970/127 2106/4971/543 2110/4972/130 +f 2106/4971/543 2111/4973/128 2110/4972/130 +f 2111/4973/128 2108/4974/544 2112/4975/541 +f 2116/4976/129 2109/4970/127 2113/4977/131 +f 2113/4977/131 2110/4972/130 2114/4978/133 +f 2110/4972/130 2115/4979/132 2114/4978/133 +f 2115/4979/132 2112/4975/541 2116/4980/129 +f 2120/4981/545 2113/4977/131 2117/4982/546 +f 2113/4977/131 2118/4983/547 2117/4982/546 +f 2114/4978/133 2119/4984/548 2118/4983/547 +f 2115/4979/132 2120/4985/545 2119/4984/548 +f 2128/4986/549 2117/4982/546 2125/4987/550 +f 2117/4982/546 2126/4988/551 2125/4987/550 +f 2118/4983/547 2127/4989/552 2126/4988/551 +f 2127/4989/552 2120/4985/545 2128/4990/549 +f 2124/4991/553 2105/4969/542 2108/4992/544 +f 2121/4993/554 2106/4971/543 2105/4969/542 +f 2106/4971/543 2123/4994/555 2107/4995/556 +f 2123/4994/555 2108/4974/544 2107/4995/556 +f 2147/4996/557 2132/4997/558 2131/4998/559 +f 2132/4999/558 2133/5000/150 2136/5001/148 +f 2129/5002/560 2134/5003/151 2133/5000/150 +f 2134/5003/151 2131/4998/559 2135/5004/153 +f 2135/5004/153 2132/4997/558 2136/5005/148 +f 2136/5001/148 2137/5006/154 2140/5007/156 +f 2137/5006/154 2134/5003/151 2138/5008/155 +f 2138/5008/155 2135/5004/153 2139/5009/561 +f 2135/5004/153 2140/5010/156 2139/5009/561 +f 2140/5007/156 2141/5011/562 2144/5012/563 +f 2141/5011/562 2138/5008/155 2142/5013/564 +f 2142/5013/564 2139/5009/561 2143/5014/565 +f 2139/5009/561 2144/5015/563 2143/5014/565 +f 2152/5016/566 2141/5011/562 2149/5017/567 +f 2145/5018/568 2130/5019/569 2129/5002/560 +f 2151/5020/570 2144/5015/563 2152/5021/566 +f 2130/5019/569 2147/4996/557 2131/4998/559 +f 2141/5011/562 2150/5022/571 2149/5017/567 +f 2148/5023/572 2129/5002/560 2132/4999/558 +f 2142/5013/564 2151/5020/570 2150/5022/571 +f 2154/5024/573 2167/5025/574 2155/5026/575 +f 2167/5027/574 2156/5028/576 2155/5026/575 +f 2168/5029/577 2157/5030/578 2156/5028/576 +f 2169/5031/579 2158/5032/580 2157/5030/578 +f 2170/5033/581 2159/5034/582 2158/5032/580 +f 2171/5035/583 2160/5036/584 2159/5034/582 +f 2160/5036/584 2173/5037/585 2161/5038/586 +f 2173/5039/585 2162/5040/587 2161/5038/586 +f 2162/5041/587 2175/5042/588 2163/5043/589 +f 2175/5044/588 2164/5045/590 2163/5043/589 +f 2164/5045/590 2165/5046/591 2153/5047/592 +f 2153/5047/592 2166/5048/593 2154/5024/573 +f 2159/5034/582 2184/5049/594 2183/5050/595 +f 2157/5030/578 2180/5051/596 2156/5028/576 +f 2164/5045/590 2187/5052/597 2163/5043/589 +f 2154/5024/573 2177/5053/598 2153/5047/592 +f 2161/5038/586 2184/5049/594 2160/5036/584 +f 2157/5030/578 2182/5054/599 2181/5055/600 +f 2164/5045/590 2177/5053/598 2188/5056/601 +f 2154/5024/573 2179/5057/602 2178/5058/603 +f 2162/5040/587 2185/5059/604 2161/5038/586 +f 2158/5032/580 2183/5050/595 2182/5054/599 +f 2156/5028/576 2179/5057/602 2155/5026/575 +f 2163/5043/589 2186/5060/605 2162/5041/587 +f 2178/5058/603 2191/2948/606 2190/1578/607 +f 2179/5057/602 2192/1581/608 2191/1583/606 +f 2180/5051/596 2193/1584/609 2192/1586/608 +f 2182/5054/599 2193/1589/609 2181/5055/600 +f 2182/5054/599 2195/2952/610 2194/1590/611 +f 2184/5049/594 2195/1595/610 2183/5050/595 +f 2184/5049/594 2197/2954/612 2196/1596/613 +f 2186/5061/605 2197/1599/612 2185/5059/604 +f 2187/5052/597 2198/1602/614 2186/5060/605 +f 2188/5056/601 2199/1605/615 2187/5052/597 +f 2177/5053/598 2200/1610/616 2188/5056/601 +f 2177/5053/598 2190/2959/607 2189/1611/617 +f 2208/1598/618 2221/5062/619 2220/5063/618 +f 2206/2951/620 2217/5064/621 2205/1588/621 +f 2201/2958/622 2224/5065/623 2212/1609/623 +f 2202/1580/624 2215/5066/625 2213/5067/624 +f 2210/1600/289 2221/5068/619 2209/1601/619 +f 2206/1592/620 2219/5069/626 2218/5070/620 +f 2204/2949/287 2215/5071/625 2203/1582/625 +f 2210/1604/289 2223/5072/627 2222/5073/289 +f 2207/1594/626 2220/5074/618 2219/5075/626 +f 2205/2950/621 2216/5076/287 2204/1585/287 +f 2212/1606/623 2223/5077/627 2211/1607/627 +f 2202/1612/624 2214/5078/622 2201/1613/622 +f 2176/5079/623 2225/1620/622 2165/5046/622 +f 2167/5025/625 2226/1623/624 2227/1625/625 +f 2173/5039/619 2234/1626/289 2174/5080/289 +f 2170/5033/620 2231/1629/626 2171/5081/626 +f 2167/5027/625 2228/1634/287 2168/5082/287 +f 2175/5042/627 2234/1635/289 2235/1637/627 +f 2172/5083/618 2231/2976/626 2232/1638/618 +f 2168/5029/287 2229/1643/621 2169/5084/621 +f 2175/5044/627 2236/1644/623 2176/5085/623 +f 2165/5086/622 2226/1649/624 2166/5048/624 +f 2172/5087/618 2233/1652/619 2173/5037/619 +f 2169/5031/621 2230/1617/620 2170/5088/620 +f 2242/5089/620 2255/1656/626 2243/5090/626 +f 2239/5091/625 2252/1679/287 2240/5092/287 +f 2247/5093/627 2258/1653/289 2259/1655/627 +f 2243/5090/626 2256/1658/618 2244/5094/618 +f 2241/5095/621 2252/1679/287 2253/1659/621 +f 2247/5093/627 2260/1663/623 2248/5096/623 +f 2237/5097/622 2250/1666/624 2238/5098/624 +f 2244/5094/618 2257/1668/619 2245/5099/619 +f 2242/5089/620 2253/1659/621 2254/1669/620 +f 2248/5096/623 2249/1664/622 2237/5097/622 +f 2239/5091/625 2250/1666/624 2251/1674/625 +f 2245/5099/619 2258/1675/289 2246/5100/289 +f 2266/2988/620 2279/5101/626 2267/1678/626 +f 2264/1681/287 2275/5102/625 2276/5103/287 +f 2271/1654/627 2282/5104/289 2283/5105/627 +f 2267/2982/626 2280/5106/618 2268/1657/618 +f 2264/1660/287 2277/5107/621 2265/1661/621 +f 2272/1662/623 2283/5108/627 2284/5109/623 +f 2262/2984/622 2273/5110/624 2261/1665/624 +f 2268/2985/618 2281/5111/619 2269/1667/619 +f 2265/1670/621 2278/5112/620 2266/1671/620 +f 2262/1672/622 2284/5113/623 2274/5114/622 +f 2261/2987/624 2275/5115/625 2263/1673/625 +f 2269/1676/619 2282/5116/289 2270/1677/289 +f 2298/5117/628 2287/5118/629 2286/5119/630 +f 2299/5120/631 2288/5121/632 2287/5118/629 +f 2288/5121/632 2301/5122/633 2289/5123/634 +f 2289/5123/634 2302/5124/635 2290/5125/636 +f 2302/5126/635 2291/5127/637 2290/5125/636 +f 2291/5127/637 2304/5128/638 2292/5129/639 +f 2304/5130/638 2293/5131/640 2292/5129/639 +f 2305/5132/641 2294/5133/642 2293/5131/640 +f 2306/5134/643 2295/5135/644 2294/5136/642 +f 2307/5137/645 2296/5138/646 2295/5135/644 +f 2296/5138/646 2297/5139/647 2285/5140/648 +f 2297/5141/647 2286/5119/630 2285/5140/648 +f 2292/5129/639 2315/5142/649 2291/5127/637 +f 2288/5121/632 2313/5143/650 2312/5144/651 +f 2296/5138/646 2319/5145/652 2295/5135/644 +f 2286/5119/630 2309/5146/653 2285/5140/648 +f 2293/5131/640 2316/5147/654 2292/5129/639 +f 2290/5125/636 2313/5143/650 2289/5123/634 +f 2285/5140/648 2320/5148/655 2296/5138/646 +f 2286/5119/630 2311/5149/656 2310/5150/657 +f 2294/5133/642 2317/5151/658 2293/5131/640 +f 2290/5125/636 2315/5142/649 2314/5152/659 +f 2288/5121/632 2311/5149/656 2287/5118/629 +f 2295/5135/644 2318/5153/660 2294/5136/642 +f 2310/5150/657 2323/1685/661 2322/1687/662 +f 2312/5144/651 2323/1690/661 2311/5149/656 +f 2312/5144/651 2325/1691/663 2324/1693/664 +f 2314/5152/659 2325/1696/663 2313/5143/650 +f 2314/5152/659 2327/3002/665 2326/1697/666 +f 2315/5142/649 2328/1700/667 2327/1702/665 +f 2316/5147/654 2329/3004/668 2328/1703/667 +f 2318/5154/660 2329/1706/668 2317/5151/658 +f 2319/5145/652 2330/1709/669 2318/5153/660 +f 2320/5148/655 2331/1712/670 2319/5145/652 +f 2309/5146/653 2332/1715/671 2320/5148/655 +f 2310/5150/657 2321/1718/672 2309/5146/653 +f 2340/1705/673 2353/5155/674 2352/5156/673 +f 2338/3001/675 2349/5157/676 2337/1695/676 +f 2333/1716/677 2356/5158/678 2344/1717/678 +f 2335/2998/679 2345/5159/680 2334/1686/680 +f 2342/1707/289 2353/5160/674 2341/1708/674 +f 2339/1698/681 2350/5161/675 2338/1699/675 +f 2336/2999/287 2347/5162/679 2335/1689/679 +f 2343/1710/682 2354/5163/289 2342/1711/289 +f 2339/1701/681 2352/5164/673 2351/5165/681 +f 2336/1692/287 2349/5166/676 2348/5167/287 +f 2344/1713/678 2355/5168/682 2343/1714/682 +f 2334/1719/680 2346/5169/677 2333/1720/677 +f 2308/5170/678 2357/1727/677 2297/5139/677 +f 2299/5171/679 2358/1730/680 2359/1732/679 +f 2305/5132/674 2366/1733/289 2306/5172/289 +f 2303/5173/681 2362/3023/675 2363/1736/681 +f 2300/5174/287 2359/3024/679 2360/1739/287 +f 2306/5134/289 2367/1744/682 2307/5175/682 +f 2304/5128/673 2363/1745/681 2364/1747/673 +f 2300/5176/287 2361/1750/676 2301/5122/676 +f 2307/5137/682 2368/1751/678 2308/5177/678 +f 2297/5141/677 2358/1756/680 2298/5178/680 +f 2304/5130/673 2365/1759/674 2305/5179/674 +f 2302/5124/675 2361/3019/676 2362/1724/675 +f 2375/5180/681 2386/1776/675 2387/1763/681 +f 2372/5181/287 2383/1781/679 2384/1766/287 +f 2378/5182/289 2391/1762/682 2379/5183/682 +f 2375/5180/681 2388/1765/673 2376/5184/673 +f 2372/5181/287 2385/1768/676 2373/5185/676 +f 2380/5186/678 2391/1762/682 2392/1770/678 +f 2370/5187/680 2381/1771/677 2382/1773/680 +f 2376/5184/673 2389/1775/674 2377/5188/674 +f 2374/5189/675 2385/1768/676 2386/1776/675 +f 2380/5186/678 2381/1771/677 2369/5190/677 +f 2371/5191/679 2382/1773/680 2383/1781/679 +f 2378/5192/289 2389/1775/674 2390/1782/289 +f 2399/1786/681 2410/5193/675 2411/5194/681 +f 2395/1787/679 2408/5195/287 2396/1788/287 +f 2402/3031/289 2415/5196/682 2403/1761/682 +f 2400/1764/673 2411/5197/681 2412/5198/673 +f 2396/3033/287 2409/5199/676 2397/1767/676 +f 2403/3034/682 2416/5200/678 2404/1769/678 +f 2394/3035/677 2405/5201/680 2393/1772/680 +f 2400/3036/673 2413/5202/674 2401/1774/674 +f 2397/1777/676 2410/5203/675 2398/1778/675 +f 2394/1779/677 2416/5204/678 2406/5205/677 +f 2393/3038/680 2407/5206/679 2395/1780/679 +f 2401/1783/674 2414/5207/289 2402/1784/289 +f 2418/5208/683 2431/5209/684 2419/5210/685 +f 2431/5211/684 2420/5212/686 2419/5210/685 +f 2432/5213/687 2421/5214/688 2420/5212/686 +f 2433/5215/689 2422/5216/690 2421/5214/688 +f 2434/5217/691 2423/5218/692 2422/5216/690 +f 2435/5219/693 2424/5220/694 2423/5218/692 +f 2436/5221/695 2425/5222/696 2424/5220/694 +f 2437/5223/697 2426/5224/698 2425/5222/696 +f 2426/5225/698 2439/5226/699 2427/5227/700 +f 2427/5227/700 2440/5228/701 2428/5229/702 +f 2428/5229/702 2429/5230/703 2417/5231/704 +f 2417/5231/704 2430/5232/705 2418/5208/683 +f 2424/5220/694 2447/5233/706 2423/5218/692 +f 2421/5214/688 2444/5234/707 2420/5212/686 +f 2428/5229/702 2451/5235/708 2427/5227/700 +f 2418/5208/683 2441/5236/709 2417/5231/704 +f 2424/5220/694 2449/5237/710 2448/5238/711 +f 2422/5216/690 2445/5239/712 2421/5214/688 +f 2428/5229/702 2441/5236/709 2452/5240/713 +f 2419/5210/685 2442/5241/714 2418/5208/683 +f 2426/5224/698 2449/5237/710 2425/5222/696 +f 2422/5216/690 2447/5233/706 2446/5242/715 +f 2419/5210/685 2444/5234/707 2443/5243/716 +f 2427/5227/700 2450/5244/717 2426/5225/698 +f 2442/5241/714 2455/1792/718 2454/1794/719 +f 2444/5234/707 2455/1797/718 2443/5243/716 +f 2444/5234/707 2457/1798/720 2456/1800/721 +f 2446/5242/715 2457/1803/720 2445/5239/712 +f 2446/5242/715 2459/1804/722 2458/1806/723 +f 2448/5238/711 2459/1809/722 2447/5233/706 +f 2449/5237/710 2460/1810/724 2448/5238/711 +f 2449/5237/710 2462/3055/725 2461/1813/726 +f 2451/5235/708 2462/1816/725 2450/5244/717 +f 2452/5240/713 2463/1821/727 2451/5235/708 +f 2441/5236/709 2464/1822/728 2452/5240/713 +f 2441/5236/709 2454/3059/719 2453/1825/729 +f 2472/1812/730 2485/5245/731 2484/5246/730 +f 2470/3051/732 2481/5247/733 2469/1802/733 +f 2465/1823/734 2488/5248/735 2476/1824/735 +f 2466/1793/736 2479/5249/737 2477/5250/736 +f 2474/1814/291 2485/5251/731 2473/1815/731 +f 2470/1805/732 2483/5252/738 2482/5253/732 +f 2468/3049/293 2479/5254/737 2467/1796/737 +f 2474/1818/291 2487/5255/739 2486/5256/291 +f 2471/1808/738 2484/5257/730 2483/5258/738 +f 2469/3050/733 2480/5259/293 2468/1799/293 +f 2475/1820/739 2488/5260/735 2487/5261/739 +f 2465/1827/734 2477/5262/736 2478/5263/734 +f 2440/5264/735 2489/1836/734 2429/5230/734 +f 2430/5265/736 2491/1837/737 2431/5209/737 +f 2438/5266/291 2497/3072/731 2498/1840/291 +f 2434/5217/732 2495/1845/738 2435/5267/738 +f 2432/5268/293 2491/3074/737 2492/1846/293 +f 2438/5269/291 2499/1851/739 2439/5226/739 +f 2436/5270/730 2495/3076/738 2496/1852/730 +f 2433/5271/733 2492/3077/293 2493/1855/733 +f 2440/5228/735 2499/3078/739 2500/1858/735 +f 2430/5232/736 2489/3079/734 2490/1861/736 +f 2436/5221/730 2497/1864/731 2437/5272/731 +f 2434/5273/732 2493/1831/733 2494/1833/732 +f 2506/5274/732 2519/1870/738 2507/5275/738 +f 2503/5276/737 2516/1896/293 2504/5277/293 +f 2510/5278/291 2523/1867/739 2511/5279/739 +f 2507/5275/738 2520/1872/730 2508/5280/730 +f 2505/5281/733 2516/1896/293 2517/1873/733 +f 2512/5282/735 2523/1867/739 2524/1876/735 +f 2502/5283/736 2513/1888/734 2514/1879/736 +f 2509/5284/731 2520/1872/730 2521/1883/731 +f 2505/5281/733 2518/1884/732 2506/5274/732 +f 2512/5282/735 2513/1888/734 2501/5285/734 +f 2503/5276/737 2514/1879/736 2515/1890/737 +f 2509/5284/731 2522/1891/291 2510/5286/291 +f 2530/3086/732 2543/5287/738 2531/1894/738 +f 2527/3087/737 2540/5288/293 2528/1895/293 +f 2534/1868/291 2547/5289/739 2535/1869/739 +f 2531/3082/738 2544/5290/730 2532/1871/730 +f 2528/1874/293 2541/5291/733 2529/1875/733 +f 2535/1877/739 2548/5292/735 2536/1878/735 +f 2526/1880/734 2537/5293/736 2525/1881/736 +f 2532/3083/730 2545/5294/731 2533/1882/731 +f 2530/1886/732 2541/5295/733 2542/5296/732 +f 2526/1887/734 2548/5297/735 2538/5298/734 +f 2525/3085/736 2539/5299/737 2527/1889/737 +f 2534/1893/291 2545/5300/731 2546/5301/291 +f 2562/5302/740 2551/5303/741 2550/5304/742 +f 2563/5305/743 2552/5306/744 2551/5303/741 +f 2552/5306/744 2565/5307/745 2553/5308/746 +f 2553/5308/746 2566/5309/747 2554/5310/748 +f 2566/5311/747 2555/5312/749 2554/5310/748 +f 2555/5312/749 2568/5313/750 2556/5314/751 +f 2568/5315/750 2557/5316/752 2556/5314/751 +f 2569/5317/753 2558/5318/754 2557/5316/752 +f 2570/5319/755 2559/5320/756 2558/5321/754 +f 2571/5322/757 2560/5323/758 2559/5320/756 +f 2560/5323/758 2561/5324/759 2549/5325/760 +f 2561/5326/759 2550/5304/742 2549/5325/760 +f 2556/5314/751 2579/5327/761 2555/5312/749 +f 2553/5308/746 2576/5328/762 2552/5306/744 +f 2560/5323/758 2583/5329/763 2559/5320/756 +f 2550/5304/742 2573/5330/764 2549/5325/760 +f 2557/5316/752 2580/5331/765 2556/5314/751 +f 2554/5310/748 2577/5332/766 2553/5308/746 +f 2560/5323/758 2573/5330/764 2584/5333/767 +f 2550/5304/742 2575/5334/768 2574/5335/769 +f 2558/5318/754 2581/5336/770 2557/5316/752 +f 2554/5310/748 2579/5327/761 2578/5337/771 +f 2552/5306/744 2575/5334/768 2551/5303/741 +f 2559/5320/756 2582/5338/772 2558/5321/754 +f 2575/5334/768 2586/1900/773 2574/5335/769 +f 2575/5334/768 2588/1903/774 2587/1905/775 +f 2576/5328/762 2589/1906/776 2588/1908/774 +f 2577/5332/766 2590/1909/777 2589/1911/776 +f 2579/5327/761 2590/1912/777 2578/5337/771 +f 2580/5331/765 2591/1917/778 2579/5327/761 +f 2581/5336/770 2592/1918/779 2580/5331/765 +f 2581/5336/770 2594/3104/780 2593/1921/781 +f 2582/5338/772 2595/1924/782 2594/1926/780 +f 2584/5333/767 2595/1929/782 2583/5329/763 +f 2573/5330/764 2596/1932/783 2584/5333/767 +f 2573/5330/764 2586/3108/773 2585/1933/784 +f 2604/1920/785 2617/5339/786 2616/5340/785 +f 2602/3100/787 2613/5341/788 2601/1910/788 +f 2597/3107/789 2620/5342/790 2608/1931/790 +f 2599/1901/791 2609/5343/792 2598/1902/792 +f 2606/1922/291 2617/5344/786 2605/1923/786 +f 2602/1914/787 2615/5345/793 2614/5346/787 +f 2599/1904/791 2612/5347/293 2611/5348/791 +f 2606/1925/291 2619/5349/794 2618/5350/291 +f 2604/3102/785 2615/5351/793 2603/1916/793 +f 2601/3099/788 2612/5352/293 2600/1907/293 +f 2608/3106/790 2619/5353/794 2607/1928/794 +f 2597/1935/789 2609/5354/792 2610/5355/789 +f 2561/5324/789 2632/3119/790 2621/1942/789 +f 2562/5302/792 2623/1945/791 2563/5356/791 +f 2569/5317/786 2630/1948/291 2570/5357/291 +f 2567/5358/793 2626/3122/787 2627/1951/793 +f 2564/5359/293 2623/1954/791 2624/1956/293 +f 2571/5360/794 2630/1957/291 2631/1959/794 +f 2567/5361/793 2628/1962/785 2568/5313/785 +f 2564/5362/293 2625/1965/788 2565/5307/788 +f 2572/5363/790 2631/3127/794 2632/1966/790 +f 2561/5326/789 2622/1971/792 2562/5364/792 +f 2568/5315/785 2629/1974/786 2569/5365/786 +f 2566/5309/787 2625/3118/788 2626/1939/787 +f 2638/5366/787 2651/1978/793 2639/5367/793 +f 2635/5368/791 2648/1981/293 2636/5369/293 +f 2642/5370/291 2655/1977/794 2643/5371/794 +f 2639/5367/793 2652/1980/785 2640/5372/785 +f 2636/5369/293 2649/1983/788 2637/5373/788 +f 2644/5374/790 2655/1977/794 2656/1984/790 +f 2633/5375/789 2646/1987/792 2634/5376/792 +f 2640/5372/785 2653/1991/786 2641/5377/786 +f 2638/5366/787 2649/1983/788 2650/1992/787 +f 2633/5375/789 2656/1984/790 2645/1996/789 +f 2634/5376/792 2647/1998/791 2635/5368/791 +f 2642/5378/291 2653/1991/786 2654/1999/291 +f 2662/2002/787 2675/5379/793 2663/2003/793 +f 2660/2004/293 2671/5380/791 2672/5381/293 +f 2666/3130/291 2679/5382/794 2667/1976/794 +f 2663/3131/793 2676/5383/785 2664/1979/785 +f 2660/3132/293 2673/5384/788 2661/1982/788 +f 2667/1985/794 2680/5385/790 2668/1986/790 +f 2657/1989/792 2670/5386/789 2669/5387/792 +f 2664/3133/785 2677/5388/786 2665/1990/786 +f 2662/1994/787 2673/5389/788 2674/5390/787 +f 2658/1995/789 2680/5391/790 2670/5392/789 +f 2657/3135/792 2671/5393/791 2659/1997/791 +f 2666/2001/291 2677/5394/786 2678/5395/291 +f 2031/1543/280 2019/5396/1 2032/1544/1 +f 2057/5397/279 2681/2013/1 2068/4929/1 +f 2066/5398/281 2682/2014/280 2683/2016/281 +f 2060/4932/285 2690/2017/6 2059/5399/6 +f 2062/5400/2 2686/2020/284 2687/2022/2 +f 2066/4938/281 2684/2023/3 2065/5401/3 +f 2059/4931/6 2691/2028/278 2058/5402/278 +f 2062/5403/2 2688/2029/282 2061/4934/282 +f 2065/4937/3 2685/2034/283 2064/5404/283 +f 2058/5405/278 2692/2035/279 2057/4930/279 +f 2068/4928/1 2682/2040/280 2067/5406/280 +f 2061/4933/282 2689/2043/285 2060/5407/285 +f 2064/4936/283 2686/2008/284 2063/5408/284 +f 2698/5409/284 2711/2071/2 2699/5410/2 +f 2695/5411/281 2708/2050/3 2696/5412/3 +f 2702/5413/6 2715/2046/278 2703/5414/278 +f 2699/5410/2 2712/2047/282 2700/5415/282 +f 2696/5412/3 2709/2052/283 2697/5416/283 +f 2703/5414/278 2716/2053/279 2704/5417/279 +f 2693/5418/1 2706/2058/280 2694/5419/280 +f 2700/5415/282 2713/2060/285 2701/5420/285 +f 2697/5416/283 2710/2061/284 2698/5409/284 +f 2704/5417/279 2705/2056/1 2693/5418/1 +f 2694/5419/280 2707/2066/281 2695/5411/281 +f 2701/5420/285 2714/2067/6 2702/5421/6 +f 2722/3164/284 2735/5422/2 2723/2070/2 +f 2719/2072/281 2732/5423/3 2720/2073/3 +f 2726/3158/6 2739/5424/278 2727/2045/278 +f 2723/2048/2 2736/5425/282 2724/2049/282 +f 2720/3159/3 2733/5426/283 2721/2051/283 +f 2727/2054/278 2740/5427/279 2728/2055/279 +f 2718/3160/1 2729/5428/280 2717/2057/280 +f 2724/3161/282 2737/5429/285 2725/2059/285 +f 2721/2062/283 2734/5430/284 2722/2063/284 +f 2718/2064/1 2740/5431/279 2730/5432/1 +f 2717/3163/280 2731/5433/281 2719/2065/281 +f 2725/2068/285 2738/5434/6 2726/2069/6 +f 2752/5435/292 2753/2082/5 2741/5436/5 +f 2742/5437/290 2755/2085/293 2743/5438/293 +f 2749/5439/291 2762/2086/6 2750/5440/6 +f 2746/5441/288 2759/2089/4 2747/5442/4 +f 2743/5438/293 2756/2092/3 2744/5443/3 +f 2750/5444/6 2763/2097/289 2751/5445/289 +f 2747/5442/4 2760/2099/286 2748/5446/286 +f 2744/5443/3 2757/2077/287 2745/5447/287 +f 2751/5445/289 2764/2080/292 2752/5435/292 +f 2742/5437/290 2753/2082/5 2754/2083/290 +f 2749/5439/291 2760/2099/286 2761/2105/291 +f 2746/5441/288 2757/2077/287 2758/2079/288 +f 2770/5448/288 2783/2111/4 2771/5449/4 +f 2767/5450/293 2780/2114/3 2768/5451/3 +f 2774/5452/6 2787/2110/289 2775/5453/289 +f 2771/5449/4 2784/2113/286 2772/5454/286 +f 2768/5451/3 2781/2116/287 2769/5455/287 +f 2775/5453/289 2788/2117/292 2776/5456/292 +f 2765/5457/5 2778/2120/290 2766/5458/290 +f 2773/5459/291 2784/2113/286 2785/2123/291 +f 2769/5455/287 2782/2127/288 2770/5448/288 +f 2765/5457/5 2788/2117/292 2777/2129/5 +f 2766/5458/290 2779/2131/293 2767/5450/293 +f 2773/5459/291 2786/2132/6 2774/5460/6 +f 2794/2135/288 2807/5461/4 2795/2136/4 +f 2791/2137/293 2804/5462/3 2792/2138/3 +f 2798/3180/6 2811/5463/289 2799/2109/289 +f 2795/3181/4 2808/5464/286 2796/2112/286 +f 2792/3182/3 2805/5465/287 2793/2115/287 +f 2799/2118/289 2812/5466/292 2800/2119/292 +f 2790/2121/5 2801/5467/290 2789/2122/290 +f 2796/2124/286 2809/5468/291 2797/2125/291 +f 2793/3183/287 2806/5469/288 2794/2126/288 +f 2800/3184/292 2802/5470/5 2790/2128/5 +f 2789/3185/290 2803/5471/293 2791/2130/293 +f 2797/2133/291 2810/5472/6 2798/2134/6 +f 2814/5473/795 2823/5474/796 2815/5475/797 +f 2836/5476/798 2817/5477/799 2833/5478/800 +f 2815/5475/797 2824/5479/801 2816/5480/802 +f 2835/5481/803 2818/5482/804 2819/5483/805 +f 2813/5484/806 2822/5485/807 2814/5473/795 +f 2835/5481/803 2820/5486/808 2836/5476/798 +f 2813/5487/806 2824/5479/801 2821/5488/809 +f 2821/5489/809 2826/5490/810 2822/5485/807 +f 2823/5474/796 2826/5490/810 2827/5491/514 +f 2824/5479/801 2827/5491/514 2828/5492/513 +f 2824/5479/801 2825/5493/512 2821/5488/809 +f 2825/5494/512 2830/5495/510 2826/5490/810 +f 2827/5491/514 2830/5495/510 2831/5496/509 +f 2828/5492/513 2831/5496/509 2832/5497/508 +f 2828/5492/513 2829/5498/507 2825/5493/512 +f 2829/5499/507 2834/5500/811 2830/5495/510 +f 2831/5496/509 2834/5500/811 2835/5481/803 +f 2831/5496/509 2836/5476/798 2832/5497/508 +f 2832/5497/508 2833/5478/800 2829/5498/507 +f 2833/5501/800 2818/5482/804 2834/5500/811 +f 2857/5502/812 2842/5503/813 2858/5504/814 +f 2859/5505/815 2842/5503/813 2843/5506/816 +f 2859/5505/815 2844/5507/817 2860/5508/818 +f 2860/5508/818 2841/5509/819 2857/5510/812 +f 2838/5511/820 2845/5512/821 2846/5513/822 +f 2838/5511/820 2847/5514/823 2839/5515/824 +f 2839/5515/824 2848/5516/825 2840/5517/826 +f 2837/5518/827 2848/5516/825 2845/5519/821 +f 2845/5512/821 2850/5520/489 2846/5513/822 +f 2846/5513/822 2851/5521/488 2847/5514/823 +f 2847/5514/823 2852/5522/487 2848/5516/825 +f 2845/5519/821 2852/5522/487 2849/5523/486 +f 2850/5520/489 2853/5524/828 2854/5525/485 +f 2850/5520/489 2855/5526/484 2851/5521/488 +f 2852/5522/487 2855/5526/484 2856/5527/483 +f 2849/5523/486 2856/5527/483 2853/5528/828 +f 2854/5525/485 2857/5502/812 2858/5504/814 +f 2854/5525/485 2859/5505/815 2855/5526/484 +f 2855/5526/484 2860/5508/818 2856/5527/483 +f 2853/5528/828 2860/5508/818 2857/5510/812 +f 2862/5529/523 2881/5530/522 2882/5531/530 +f 2883/5532/527 2862/5529/523 2882/5531/530 +f 2864/5533/526 2883/5532/527 2884/5534/525 +f 2861/5535/524 2884/5534/525 2881/5536/522 +f 2870/5537/516 2865/5538/515 2866/5539/521 +f 2871/5540/520 2866/5539/521 2867/5541/519 +f 2872/5542/518 2867/5541/519 2868/5543/829 +f 2865/5544/515 2872/5542/518 2868/5543/829 +f 2870/5537/516 2873/5545/533 2869/5546/517 +f 2875/5547/535 2870/5537/516 2871/5540/520 +f 2876/5548/537 2871/5540/520 2872/5542/518 +f 2869/5549/517 2876/5548/537 2872/5542/518 +f 2878/5550/529 2873/5545/533 2874/5551/536 +f 2875/5547/535 2878/5550/529 2874/5551/536 +f 2880/5552/531 2875/5547/535 2876/5548/537 +f 2877/5553/534 2876/5548/537 2873/5554/533 +f 2882/5531/530 2877/5555/534 2878/5550/529 +f 2879/5556/532 2882/5531/530 2878/5550/529 +f 2884/5534/525 2879/5556/532 2880/5552/531 +f 2881/5536/522 2880/5552/531 2877/5553/534 +f 2898/5557/723 2887/5558/712 2886/5559/715 +f 2899/5560/720 2888/5561/707 2887/5558/712 +f 2888/5561/707 2901/5562/830 2889/5563/716 +f 2889/5563/716 2902/5564/719 2890/5565/714 +f 2902/5566/719 2891/5567/709 2890/5565/714 +f 2903/5568/729 2892/5569/713 2891/5567/709 +f 2892/5569/713 2905/5570/727 2893/5571/708 +f 2905/5572/727 2894/5573/717 2893/5571/708 +f 2894/5574/717 2907/5575/726 2895/5576/710 +f 2907/5577/726 2896/5578/711 2895/5576/710 +f 2896/5578/711 2897/5579/722 2885/5580/706 +f 2885/5580/706 2898/5581/723 2886/5559/715 +f 2892/5569/713 2915/5582/704 2891/5567/709 +f 2888/5561/707 2913/5583/685 2912/5584/686 +f 2895/5576/710 2920/5585/694 2919/5586/696 +f 2885/5580/706 2910/5587/690 2909/5588/692 +f 2893/5571/708 2916/5589/702 2892/5569/713 +f 2890/5565/714 2913/5583/685 2889/5563/716 +f 2896/5578/711 2909/5588/692 2920/5585/694 +f 2886/5559/715 2911/5590/688 2910/5587/690 +f 2893/5571/708 2918/5591/698 2917/5592/700 +f 2890/5565/714 2915/5582/704 2914/5593/683 +f 2888/5561/707 2911/5590/688 2887/5558/712 +f 2895/5576/710 2918/5594/698 2894/5574/717 +f 2911/5590/688 2922/2142/691 2910/5587/690 +f 2911/5590/688 2924/2145/687 2923/2147/689 +f 2912/5584/686 2925/2148/684 2924/2150/687 +f 2914/5593/683 2925/2153/684 2913/5583/685 +f 2914/5593/683 2927/3199/703 2926/2154/705 +f 2916/5589/702 2927/2159/703 2915/5582/704 +f 2916/5589/702 2929/3201/699 2928/2160/701 +f 2918/5591/698 2929/2163/699 2917/5592/700 +f 2919/5586/696 2930/2168/831 2918/5594/698 +f 2920/5585/694 2931/2171/697 2919/5586/696 +f 2909/5588/692 2932/2172/695 2920/5585/694 +f 2909/5588/692 2922/3206/691 2921/2175/693 +f 2940/2162/735 2953/5595/739 2952/5596/735 +f 2938/3198/736 2949/5597/737 2937/2152/737 +f 2933/2173/738 2956/5598/730 2944/2174/730 +f 2935/2143/733 2945/5599/732 2934/2144/732 +f 2942/2164/291 2953/5600/739 2941/2165/739 +f 2938/2156/736 2951/5601/734 2950/5602/736 +f 2935/2146/733 2948/5603/293 2947/5604/733 +f 2943/3203/731 2954/5605/291 2942/2167/291 +f 2939/2158/734 2952/5606/735 2951/5607/734 +f 2937/3197/737 2948/5608/293 2936/2149/293 +f 2943/2170/731 2956/5609/730 2955/5610/731 +f 2934/2176/732 2946/5611/738 2933/2177/738 +f 2908/5612/730 2957/2186/738 2897/5579/738 +f 2899/5613/733 2958/2187/732 2959/2189/733 +f 2905/5572/739 2966/2190/291 2906/5614/291 +f 2903/5615/734 2962/3220/736 2963/2193/734 +f 2900/5616/293 2959/3221/733 2960/2196/293 +f 2907/5575/731 2966/2199/291 2967/2201/731 +f 2904/5617/735 2963/3223/734 2964/2202/735 +f 2901/5562/737 2960/2205/293 2961/2207/737 +f 2908/5618/730 2967/3225/731 2968/2208/730 +f 2897/5619/738 2958/2213/732 2898/5581/732 +f 2904/5620/735 2965/2214/739 2905/5570/739 +f 2901/5621/737 2962/2181/736 2902/5564/736 +f 2974/5622/736 2987/2242/734 2975/5623/734 +f 2971/5624/733 2984/2244/293 2972/5625/293 +f 2979/5626/731 2990/3228/291 2991/2217/731 +f 2976/5627/735 2987/2242/734 2988/2220/735 +f 2973/5628/737 2984/2244/293 2985/2223/737 +f 2980/5629/730 2991/2217/731 2992/2227/730 +f 2969/5630/738 2982/2230/732 2970/5631/732 +f 2976/5627/735 2989/2232/739 2977/5632/739 +f 2974/5622/736 2985/2223/737 2986/2234/736 +f 2980/5629/730 2981/2228/738 2969/5630/738 +f 2971/5624/733 2982/2230/732 2983/2237/733 +f 2977/5632/739 2990/2238/291 2978/5633/291 +f 2998/3235/736 3011/5634/734 2999/2241/734 +f 2995/3236/733 3008/5635/293 2996/2243/293 +f 3003/2219/731 3014/5636/291 3015/5637/731 +f 2999/2221/734 3012/5638/735 3000/2222/735 +f 2996/2224/293 3009/5639/737 2997/2225/737 +f 3003/3229/731 3016/5640/730 3004/2226/730 +f 2993/2229/732 3006/5641/738 3005/5642/732 +f 3000/3231/735 3013/5643/739 3001/2231/739 +f 2998/2233/736 3009/5644/737 3010/5645/736 +f 2994/2235/738 3016/5646/730 3006/5647/738 +f 2993/3234/732 3007/5648/733 2995/2236/733 +f 3001/2239/739 3014/5649/291 3002/2240/291 +f 3018/5650/771 3031/5651/832 3019/5652/766 +f 3019/5652/766 3032/5653/774 3020/5654/762 +f 3020/5654/762 3033/5655/775 3021/5656/768 +f 3021/5656/768 3034/5657/773 3022/5658/769 +f 3034/5659/773 3023/5660/764 3022/5658/769 +f 3035/5661/784 3024/5662/767 3023/5660/764 +f 3036/5663/783 3025/5664/763 3024/5662/767 +f 3037/5665/782 3026/5666/772 3025/5664/763 +f 3038/5667/780 3027/5668/770 3026/5669/772 +f 3039/5670/781 3028/5671/765 3027/5668/770 +f 3028/5671/765 3029/5672/778 3017/5673/761 +f 3029/5674/778 3018/5650/771 3017/5673/761 +f 3024/5662/767 3047/5675/760 3023/5660/764 +f 3020/5654/762 3045/5676/741 3044/5677/744 +f 3027/5668/770 3052/5678/751 3051/5679/752 +f 3018/5650/771 3041/5680/749 3017/5673/761 +f 3024/5662/767 3049/5681/756 3048/5682/758 +f 3022/5658/769 3045/5676/741 3021/5656/768 +f 3028/5671/765 3041/5680/749 3052/5678/751 +f 3018/5650/771 3043/5683/746 3042/5684/748 +f 3025/5664/763 3050/5685/754 3049/5681/756 +f 3022/5658/769 3047/5675/760 3046/5686/742 +f 3020/5654/762 3043/5683/746 3019/5652/766 +f 3027/5668/770 3050/5687/754 3026/5669/772 +f 3042/5684/748 3055/2248/745 3054/2250/747 +f 3043/5683/746 3056/2251/833 3055/2253/745 +f 3044/5677/744 3057/2254/743 3056/2256/833 +f 3046/5686/742 3057/2259/743 3045/5676/741 +f 3047/5675/760 3058/2260/740 3046/5686/742 +f 3047/5675/760 3060/2263/834 3059/2265/759 +f 3048/5682/758 3061/3252/835 3060/2266/834 +f 3050/5685/754 3061/2269/835 3049/5681/756 +f 3051/5679/752 3062/2272/755 3050/5687/754 +f 3052/5678/751 3063/2277/753 3051/5679/752 +f 3052/5678/751 3053/3256/836 3064/2278/750 +f 3041/5680/749 3054/2281/747 3053/2283/836 +f 3072/2268/790 3085/5688/794 3084/5689/790 +f 3070/3249/792 3081/5690/791 3069/2258/791 +f 3065/2279/793 3088/5691/785 3076/2280/785 +f 3067/3246/788 3077/5692/787 3066/2249/787 +f 3073/2271/794 3086/5693/291 3085/5694/794 +f 3070/2262/792 3083/5695/789 3082/5696/792 +f 3068/3247/293 3079/5697/788 3067/2252/788 +f 3074/2274/291 3087/5698/786 3086/5699/291 +f 3072/3251/790 3083/5700/789 3071/2264/789 +f 3068/2255/293 3081/5701/791 3080/5702/293 +f 3076/3255/785 3087/5703/786 3075/2276/786 +f 3065/2282/793 3077/5704/787 3078/5705/793 +f 3040/5706/785 3089/2290/793 3029/5672/793 +f 3030/5707/787 3091/2295/788 3031/5651/788 +f 3038/5708/291 3097/2296/794 3098/2298/291 +f 3034/5659/792 3095/2299/789 3035/5709/789 +f 3032/5653/293 3091/3272/788 3092/2302/293 +f 3038/5667/291 3099/2307/786 3039/5710/786 +f 3036/5711/790 3095/2308/789 3096/2310/790 +f 3032/5712/293 3093/2313/791 3033/5655/791 +f 3039/5670/786 3100/2314/785 3040/5713/785 +f 3029/5674/793 3090/2319/787 3030/5714/787 +f 3036/5663/790 3097/2322/794 3037/5715/794 +f 3033/5716/791 3094/2289/792 3034/5657/792 +f 3107/5717/789 3118/2340/792 3119/2326/789 +f 3104/5718/293 3115/2343/788 3116/2329/293 +f 3110/5719/291 3123/2323/786 3111/5720/786 +f 3107/5717/789 3120/2328/790 3108/5721/790 +f 3104/5718/293 3117/2331/791 3105/5722/791 +f 3111/5720/786 3124/2333/785 3112/5723/785 +f 3101/5724/793 3114/2336/787 3102/5725/787 +f 3109/5726/794 3120/2328/790 3121/2338/794 +f 3105/5722/791 3118/2340/792 3106/5727/792 +f 3112/5723/785 3113/2334/793 3101/5724/793 +f 3102/5725/787 3115/2343/788 3103/5728/788 +f 3110/5729/291 3121/2338/794 3122/2344/291 +f 3131/2348/789 3142/5730/792 3143/5731/789 +f 3127/2349/788 3140/5732/293 3128/2350/293 +f 3134/2324/291 3147/5733/786 3135/2325/786 +f 3132/2327/790 3143/5734/789 3144/5735/790 +f 3128/3281/293 3141/5736/791 3129/2330/791 +f 3135/3282/786 3148/5737/785 3136/2332/785 +f 3125/2335/787 3138/5738/793 3137/5739/787 +f 3132/3284/790 3145/5740/794 3133/2337/794 +f 3130/2339/792 3141/5741/791 3142/5742/792 +f 3126/2341/793 3148/5743/785 3138/5744/793 +f 3125/3287/787 3139/5745/788 3127/2342/788 +f 3133/2345/794 3146/5746/291 3134/2346/291 +f 3150/5747/599 3163/5748/609 3151/5749/600 +f 3163/5750/609 3152/5751/596 3151/5749/600 +f 3152/5751/596 3165/5752/606 3153/5753/602 +f 3165/5754/606 3154/5755/603 3153/5753/602 +f 3166/5756/607 3155/5757/598 3154/5755/603 +f 3167/5758/617 3156/5759/601 3155/5757/598 +f 3168/5760/616 3157/5761/597 3156/5759/601 +f 3169/5762/615 3158/5763/605 3157/5761/597 +f 3158/5764/605 3171/5765/612 3159/5766/604 +f 3159/5766/604 3172/5767/613 3160/5768/594 +f 3160/5768/594 3161/5769/610 3149/5770/595 +f 3149/5770/595 3162/5771/611 3150/5747/599 +f 3156/5759/601 3179/5772/592 3155/5757/598 +f 3153/5753/602 3176/5773/576 3152/5751/596 +f 3160/5768/594 3183/5774/586 3159/5766/604 +f 3150/5747/599 3173/5775/582 3149/5770/595 +f 3156/5759/601 3181/5776/589 3180/5777/590 +f 3154/5755/603 3177/5778/575 3153/5753/602 +f 3160/5768/594 3173/5775/582 3184/5779/584 +f 3151/5749/600 3174/5780/580 3150/5747/599 +f 3158/5763/605 3181/5776/589 3157/5761/597 +f 3154/5755/603 3179/5772/592 3178/5781/573 +f 3151/5749/600 3176/5773/576 3175/5782/578 +f 3158/5764/605 3183/5774/586 3182/5783/587 +f 3175/5782/578 3186/2356/581 3174/5780/580 +f 3175/5782/578 3188/2357/577 3187/2359/579 +f 3176/5773/576 3189/2360/574 3188/2362/577 +f 3178/5781/573 3189/2365/574 3177/5778/575 +f 3178/5781/573 3191/3301/591 3190/2366/593 +f 3180/5777/590 3191/2371/591 3179/5772/592 +f 3181/5776/589 3192/2374/837 3180/5777/590 +f 3181/5776/589 3194/3304/838 3193/2375/588 +f 3183/5774/586 3194/2378/838 3182/5783/587 +f 3184/5779/584 3195/2383/585 3183/5774/586 +f 3173/5775/582 3196/2386/839 3184/5779/584 +f 3173/5775/582 3186/3308/581 3185/2387/583 +f 3204/2373/623 3217/5784/627 3216/5785/623 +f 3202/3300/624 3213/5786/625 3201/2364/625 +f 3197/3307/626 3220/5787/618 3208/2385/618 +f 3199/3297/621 3209/5788/620 3198/2355/620 +f 3206/2376/289 3217/5789/627 3205/2377/627 +f 3203/2367/622 3214/5790/624 3202/2368/624 +f 3199/2358/621 3212/5791/287 3211/5792/621 +f 3207/2379/619 3218/5793/289 3206/2380/289 +f 3203/2370/622 3216/5794/623 3215/5795/622 +f 3200/2361/287 3213/5796/625 3212/5797/287 +f 3208/3306/618 3219/5798/619 3207/2382/619 +f 3197/2389/626 3209/5799/620 3210/5800/626 +f 3161/5769/626 3232/2396/618 3221/2398/626 +f 3163/5748/621 3222/3320/620 3223/2399/621 +f 3170/5801/289 3229/3321/627 3230/2402/289 +f 3166/5756/624 3227/2407/622 3167/5802/622 +f 3163/5750/621 3224/2410/287 3164/5803/287 +f 3170/5804/289 3231/2413/619 3171/5765/619 +f 3167/5758/622 3228/2414/623 3168/5805/623 +f 3165/5752/625 3224/2417/287 3225/2419/625 +f 3172/5767/618 3231/2420/619 3232/2422/618 +f 3161/5806/626 3222/2425/620 3162/5771/620 +f 3168/5760/623 3229/2426/627 3169/5807/627 +f 3165/5754/625 3226/2395/624 3166/5808/624 +f 3238/5809/624 3251/2432/622 3239/5810/622 +f 3235/5811/621 3248/2457/287 3236/5812/287 +f 3243/5813/619 3254/3330/289 3255/2429/619 +f 3239/5810/622 3252/2434/623 3240/5814/623 +f 3237/5815/625 3248/2457/287 3249/2435/625 +f 3243/5813/619 3256/2439/618 3244/5816/618 +f 3233/5817/626 3246/2442/620 3234/5818/620 +f 3240/5814/623 3253/2443/627 3241/5819/627 +f 3238/5809/624 3249/2435/625 3250/2446/624 +f 3233/5817/626 3256/2439/618 3245/2440/626 +f 3235/5811/621 3246/2442/620 3247/2451/621 +f 3241/5819/627 3254/2452/289 3242/5820/289 +f 3262/3336/624 3275/5821/622 3263/2455/622 +f 3259/3337/621 3272/5822/287 3260/2456/287 +f 3266/2430/289 3279/5823/619 3267/2431/619 +f 3263/3331/622 3276/5824/623 3264/2433/623 +f 3260/2436/287 3273/5825/625 3261/2437/625 +f 3267/3332/619 3280/5826/618 3268/2438/618 +f 3258/3333/626 3269/5827/620 3257/2441/620 +f 3264/2444/623 3277/5828/627 3265/2445/627 +f 3262/2448/624 3273/5829/625 3274/5830/624 +f 3258/2449/626 3280/5831/618 3270/5832/626 +f 3257/3335/620 3271/5833/621 3259/2450/621 +f 3265/2453/627 3278/5834/289 3266/2454/289 +f 3282/5835/659 3295/5836/663 3283/5837/650 +f 3283/5837/650 3296/5838/664 3284/5839/651 +f 3284/5839/651 3297/5840/661 3285/5841/656 +f 3297/5842/661 3286/5843/657 3285/5841/656 +f 3286/5843/657 3299/5844/672 3287/5845/653 +f 3287/5845/653 3300/5846/671 3288/5847/655 +f 3288/5847/655 3301/5848/670 3289/5849/652 +f 3301/5850/670 3290/5851/660 3289/5849/652 +f 3302/5852/669 3291/5853/658 3290/5854/660 +f 3303/5855/840 3292/5856/654 3291/5853/658 +f 3292/5856/654 3293/5857/665 3281/5858/649 +f 3281/5858/649 3294/5859/666 3282/5835/659 +f 3288/5847/655 3311/5860/648 3287/5845/653 +f 3284/5839/651 3309/5861/629 3308/5862/632 +f 3292/5856/654 3315/5863/640 3291/5853/658 +f 3282/5835/659 3305/5864/637 3281/5858/649 +f 3288/5847/655 3313/5865/644 3312/5866/646 +f 3286/5843/657 3309/5861/629 3285/5841/656 +f 3281/5858/649 3316/5867/639 3292/5856/654 +f 3283/5837/650 3306/5868/636 3282/5835/659 +f 3289/5849/652 3314/5869/642 3313/5865/644 +f 3286/5843/657 3311/5860/648 3310/5870/630 +f 3283/5837/650 3308/5862/632 3307/5871/634 +f 3291/5853/658 3314/5872/642 3290/5854/660 +f 3307/5871/634 3318/2463/635 3306/5868/636 +f 3307/5871/634 3320/2464/841 3319/2466/633 +f 3308/5862/632 3321/2467/842 3320/2469/841 +f 3310/5870/630 3321/2472/842 3309/5861/629 +f 3311/5860/648 3322/2473/628 3310/5870/630 +f 3311/5860/648 3324/3352/843 3323/2476/647 +f 3312/5866/646 3325/3353/645 3324/2479/843 +f 3314/5869/642 3325/2482/645 3313/5865/644 +f 3315/5863/640 3326/2487/643 3314/5872/642 +f 3316/5867/639 3327/2490/641 3315/5863/640 +f 3305/5864/637 3328/2493/638 3316/5867/639 +f 3305/5864/637 3318/3358/635 3317/2494/844 +f 3336/2481/678 3349/5873/682 3348/5874/678 +f 3334/3350/680 3345/5875/679 3333/2471/679 +f 3329/3357/681 3352/5876/673 3340/2492/673 +f 3331/3347/676 3341/5877/675 3330/2462/675 +f 3338/2483/289 3349/5878/682 3337/2484/682 +f 3334/2475/680 3347/5879/677 3346/5880/680 +f 3331/2465/676 3344/5881/287 3343/5882/676 +f 3338/2486/289 3351/5883/674 3350/5884/289 +f 3335/2478/677 3348/5885/678 3347/5886/677 +f 3332/2468/287 3345/5887/679 3344/5888/287 +f 3340/3356/673 3351/5889/674 3339/2489/674 +f 3329/2496/681 3341/5890/675 3342/5891/681 +f 3304/5892/673 3353/2503/681 3293/5857/681 +f 3294/5893/675 3355/2506/676 3295/5836/676 +f 3301/5850/682 3362/2509/289 3302/5894/289 +f 3299/5844/677 3358/3372/680 3359/2512/677 +f 3296/5838/287 3355/3373/676 3356/2515/287 +f 3302/5852/289 3363/2520/674 3303/5895/674 +f 3300/5846/678 3359/3375/677 3360/2521/678 +f 3296/5896/287 3357/2526/679 3297/5840/679 +f 3303/5855/674 3364/2527/673 3304/5897/673 +f 3294/5859/675 3353/2530/681 3354/2532/675 +f 3300/5898/678 3361/2535/682 3301/5848/682 +f 3298/5899/680 3357/3368/679 3358/2500/680 +f 3370/5900/680 3383/2539/677 3371/5901/677 +f 3367/5902/676 3380/2542/287 3368/5903/287 +f 3374/5904/289 3387/2538/674 3375/5905/674 +f 3371/5901/677 3384/2541/678 3372/5906/678 +f 3368/5903/287 3381/2544/679 3369/5907/679 +f 3375/5905/674 3388/2545/673 3376/5908/673 +f 3365/5909/681 3378/2548/675 3366/5910/675 +f 3373/5911/682 3384/2541/678 3385/2552/682 +f 3370/5900/680 3381/2544/679 3382/2553/680 +f 3365/5909/681 3388/2545/673 3377/2556/681 +f 3366/5910/675 3379/2560/676 3367/5902/676 +f 3374/5912/289 3385/2552/682 3386/2561/289 +f 3394/2564/680 3407/5913/677 3395/2565/677 +f 3392/2567/287 3403/5914/676 3404/5915/287 +f 3398/3380/289 3411/5916/674 3399/2537/674 +f 3395/3381/677 3408/5917/678 3396/2540/678 +f 3392/3382/287 3405/5918/679 3393/2543/679 +f 3399/2546/674 3412/5919/673 3400/2547/673 +f 3389/2550/675 3402/5920/681 3401/5921/675 +f 3396/3383/678 3409/5922/682 3397/2551/682 +f 3394/2555/680 3405/5923/679 3406/5924/680 +f 3390/2558/681 3412/5925/673 3402/5926/681 +f 3389/3384/675 3403/5927/676 3391/2559/676 +f 3397/2562/682 3410/5928/289 3398/2563/289 +f 25/3394/47 26/3430/77 10/3395/48 +f 31/3397/50 32/3413/64 16/3398/51 +f 18/3400/53 19/3417/66 3/3401/54 +f 24/3403/56 25/3428/47 9/3404/49 +f 17/3406/58 18/3400/53 2/3402/55 +f 16/3398/51 32/3413/64 17/3406/58 +f 45/3408/60 46/3469/107 30/3409/61 +f 30/3409/61 46/3472/107 47/3411/63 +f 47/3412/63 48/3478/108 32/3413/64 +f 32/3413/64 48/3483/108 33/3414/7 +f 33/3415/7 34/3482/65 18/3400/53 +f 34/3416/65 35/3488/67 19/3417/66 +f 35/3418/67 36/3492/109 20/3419/68 +f 20/3419/68 36/3495/109 37/3420/69 +f 21/3421/70 37/3499/69 38/3422/71 +f 22/3423/72 38/3470/71 39/3424/73 +f 39/3426/73 40/3474/75 24/3403/56 +f 40/3427/75 41/3480/9 25/3428/47 +f 25/3394/47 41/3485/9 42/3429/76 +f 42/3431/76 43/3490/79 27/3432/78 +f 43/3433/79 44/3494/110 28/3434/80 +f 28/3434/80 44/3497/110 45/3435/60 +f 14/3436/81 15/3399/52 63/3437/82 +f 15/3399/52 16/3398/51 64/3439/84 +f 16/3398/51 1/3407/59 49/3441/8 +f 2/3402/55 50/3519/85 49/3443/8 +f 3/3401/54 51/3523/87 50/3444/85 +f 4/3445/86 52/3501/89 51/3446/87 +f 5/3447/88 53/3505/91 52/3448/89 +f 6/3449/90 54/3508/93 53/3450/91 +f 6/3449/90 7/3453/94 55/3451/92 +f 7/3453/94 8/3405/57 56/3454/95 +f 9/3404/49 57/3517/10 56/3456/95 +f 9/3396/49 10/3395/48 58/3457/96 +f 10/3395/48 11/3463/99 59/3459/97 +f 12/3461/98 60/3503/101 59/3462/97 +f 12/3461/98 13/3467/102 61/3464/100 +f 14/3436/81 62/3510/83 61/3466/100 +f 45/3408/4 77/5929/4 78/3468/103 +f 38/3470/104 70/5930/104 71/3471/12 +f 46/3472/103 78/5931/103 79/3473/16 +f 40/3474/15 39/3426/12 71/3475/12 +f 47/3412/16 79/5932/16 80/3477/11 +f 40/3427/15 72/5933/15 73/3479/6 +f 33/3415/3 65/5934/3 66/3481/18 +f 48/3483/11 80/5935/11 65/3484/3 +f 41/3485/6 73/5936/6 74/3486/13 +f 34/3416/18 66/5937/18 67/3487/14 +f 42/3431/13 74/5938/13 75/3489/17 +f 35/3418/14 67/5939/14 68/3491/105 +f 43/3433/17 75/5940/17 76/3493/106 +f 36/3495/105 68/5941/105 69/3496/5 +f 44/3497/106 76/5942/106 77/3498/4 +f 37/3499/5 69/5943/5 70/3500/104 +f 52/3501/105 84/5944/105 83/3502/14 +f 60/3503/106 92/5945/106 91/3504/17 +f 53/3505/5 85/5946/5 84/3506/105 +f 61/3464/4 93/5947/4 92/3507/106 +f 54/3508/104 86/5948/104 85/3509/5 +f 62/3510/103 94/5949/103 93/3511/4 +f 55/3451/12 87/5950/12 86/3512/104 +f 63/3437/16 95/5951/16 94/3513/103 +f 55/3455/12 56/3454/15 88/3514/15 +f 64/3439/11 96/5952/11 95/3516/16 +f 57/3517/6 89/5953/6 88/3518/15 +f 50/3519/18 82/5954/18 81/3520/3 +f 49/3441/3 81/5955/3 96/3521/11 +f 58/3457/13 90/5956/13 89/3522/6 +f 51/3523/14 83/5957/14 82/3524/18 +f 59/3459/17 91/5958/17 90/3525/13 +f 97/3526/8 113/2573/8 128/7/84 +f 98/3528/85 114/2574/85 113/10/8 +f 99/3529/87 115/2575/87 114/13/85 +f 100/3530/89 116/2576/89 115/16/87 +f 101/3531/91 117/2577/91 116/19/89 +f 102/3532/93 118/2578/93 117/22/91 +f 103/3533/92 119/2579/92 118/25/93 +f 104/3534/95 120/29/95 119/2580/92 +f 105/3535/10 121/32/10 120/2581/95 +f 105/3536/10 106/3537/96 122/35/96 +f 106/3537/96 107/3539/97 123/38/97 +f 108/3538/101 124/41/101 123/2584/97 +f 108/3538/101 109/3540/100 125/44/100 +f 109/3540/100 110/3541/83 126/47/83 +f 110/3541/83 111/3542/82 127/2/82 +f 111/3542/82 112/3527/84 128/5/84 +f 158/3543/103 159/3544/16 111/3542/16 +f 159/3544/16 160/3545/11 112/3527/11 +f 160/3545/11 145/3546/3 97/3526/3 +f 145/3546/3 146/3547/18 98/3528/18 +f 146/3547/18 147/3548/14 99/3529/14 +f 147/3548/14 148/3549/105 100/3530/105 +f 148/3549/105 149/3550/5 101/3531/5 +f 149/3550/5 150/3551/104 102/3532/104 +f 150/3551/104 151/3552/12 103/3533/12 +f 151/3552/12 152/3553/15 104/3534/15 +f 152/3553/15 153/5959/6 105/3535/6 +f 153/3554/6 154/3555/13 106/3537/13 +f 154/3555/13 155/3556/17 107/3539/17 +f 155/3556/17 156/3557/106 108/3538/106 +f 156/3557/106 157/3558/4 109/3540/4 +f 157/3558/4 158/3543/103 110/3541/103 +f 143/101/63 159/3544/63 158/3543/107 +f 144/105/108 160/3545/108 159/3544/63 +f 129/107/7 145/3546/7 160/3545/108 +f 129/111/7 130/110/65 146/3547/65 +f 130/112/65 131/114/67 147/3548/67 +f 131/117/67 132/116/109 148/3549/109 +f 132/120/109 133/119/69 149/3550/69 +f 133/121/69 134/123/71 150/3551/71 +f 134/124/71 135/126/73 151/3552/73 +f 136/128/75 152/3553/75 151/3552/73 +f 137/131/9 153/5959/9 152/3553/75 +f 138/135/76 154/3555/76 153/3554/9 +f 139/138/79 155/3556/79 154/3555/76 +f 140/140/110 156/3557/110 155/3556/79 +f 141/143/60 157/3558/60 156/3557/110 +f 142/98/107 158/3543/107 157/3558/60 +f 161/3559/8 177/199/8 192/201/84 +f 162/3561/85 178/202/85 177/204/8 +f 163/3562/87 179/2639/87 178/205/85 +f 164/3563/89 180/208/89 179/210/87 +f 165/3564/91 181/2641/91 180/211/89 +f 166/3565/93 182/2642/93 181/214/91 +f 167/3566/92 183/2643/92 182/217/93 +f 167/3566/92 168/3568/95 184/220/95 +f 169/3567/10 185/223/10 184/225/95 +f 169/3569/10 170/3570/96 186/2646/96 +f 170/3570/96 171/3571/97 187/2647/97 +f 171/3571/97 172/3572/101 188/232/101 +f 172/3572/101 173/3573/100 189/235/100 +f 173/3573/100 174/3574/83 190/238/83 +f 174/3574/83 175/3575/82 191/193/82 +f 175/3575/82 176/3560/84 192/2636/84 +f 222/3576/103 223/3577/16 175/3575/16 +f 223/3577/16 224/3578/11 176/3560/11 +f 224/3578/11 209/3579/3 161/3559/3 +f 209/3579/3 210/3580/18 162/3561/18 +f 210/3580/18 211/3581/14 163/3562/14 +f 211/3581/14 212/3582/105 164/3563/105 +f 212/3582/105 213/3583/5 165/3564/5 +f 213/3583/5 214/3584/104 166/3565/104 +f 214/3584/104 215/3585/12 167/3566/12 +f 215/3585/12 216/3586/15 168/3568/15 +f 216/3586/15 217/3592/6 169/3567/6 +f 217/3587/6 218/3588/13 170/3570/13 +f 218/3588/13 219/3589/17 171/3571/17 +f 219/3589/17 220/3590/106 172/3572/106 +f 220/3590/106 221/3591/4 173/3573/4 +f 221/3591/4 222/3576/103 174/3574/103 +f 207/95/63 223/3577/63 222/3576/107 +f 208/50/108 224/3578/108 223/3577/63 +f 193/2588/7 209/3579/7 224/3578/108 +f 193/56/7 194/2589/65 210/3580/65 +f 194/59/65 195/2590/67 211/3581/67 +f 195/62/67 196/2591/109 212/3582/109 +f 196/65/109 197/2592/69 213/3583/69 +f 197/68/69 198/2593/71 214/3584/71 +f 198/71/71 199/2594/73 215/3585/73 +f 199/75/73 200/74/75 216/3586/75 +f 200/78/75 201/77/9 217/3592/9 +f 202/80/76 218/3588/76 217/3587/9 +f 203/83/79 219/3589/79 218/3588/76 +f 203/87/79 204/86/110 220/3590/110 +f 205/89/60 221/3591/60 220/3590/110 +f 206/92/107 222/3576/107 221/3591/60 +f 238/3593/103 254/3624/103 255/3594/16 +f 231/3596/12 247/3625/12 248/3597/15 +f 239/3595/16 255/3594/16 256/3599/11 +f 232/3598/15 248/3597/15 249/3601/6 +f 225/3603/3 241/3606/3 242/3604/18 +f 240/3600/11 256/3599/11 241/3606/3 +f 233/3607/6 249/5960/6 250/3608/13 +f 226/3605/18 242/3604/18 243/3610/14 +f 234/3609/13 250/3608/13 251/3612/17 +f 227/3611/14 243/3610/14 244/3614/105 +f 235/3613/17 251/3612/17 252/3616/106 +f 228/3615/105 244/3614/105 245/3618/5 +f 236/3617/106 252/3616/106 253/3620/4 +f 229/3619/5 245/3618/5 246/3622/104 +f 237/3621/4 253/3620/4 254/3624/103 +f 230/3623/104 246/3622/104 247/3625/12 +f 272/3626/84 257/3628/8 273/152/8 +f 258/3627/85 274/155/85 273/2622/8 +f 259/3629/87 275/2623/87 274/157/85 +f 260/3630/89 276/161/89 275/2624/87 +f 261/3631/91 277/2625/91 276/163/89 +f 262/3632/93 278/2626/93 277/166/91 +f 263/3633/92 279/2627/92 278/169/93 +f 264/3634/95 280/173/95 279/2628/92 +f 265/3635/10 281/176/10 280/2629/95 +f 265/3636/10 266/3637/96 282/2630/96 +f 266/3637/96 267/3638/97 283/2631/97 +f 267/3638/97 268/3639/101 284/2632/101 +f 268/3639/101 269/3640/100 285/188/100 +f 269/3640/100 270/3641/83 286/191/83 +f 270/3641/83 271/3642/82 287/146/82 +f 272/3626/84 288/2620/84 287/148/82 +f 318/3643/103 319/3644/16 271/3642/16 +f 319/3644/16 320/3645/11 272/3626/11 +f 320/3645/11 305/3646/3 257/3628/3 +f 305/3646/3 306/3647/18 258/3627/18 +f 306/3647/18 307/3648/14 259/3629/14 +f 307/3648/14 308/3649/105 260/3630/105 +f 308/3649/105 309/3650/5 261/3631/5 +f 309/3650/5 310/3651/104 262/3632/104 +f 310/3651/104 311/3652/12 263/3633/12 +f 311/3652/12 312/3653/15 264/3634/15 +f 312/3653/15 313/5961/6 265/3635/6 +f 313/3654/6 314/3655/13 266/3637/13 +f 314/3655/13 315/3656/17 267/3638/17 +f 315/3656/17 316/3657/106 268/3639/106 +f 316/3657/106 317/3658/4 269/3640/4 +f 317/3658/4 318/3643/103 270/3641/103 +f 303/293/63 319/3644/63 318/3643/107 +f 304/296/108 320/3645/108 319/3644/63 +f 289/299/7 305/3646/7 320/3645/108 +f 289/303/7 290/302/65 306/3647/65 +f 290/304/65 291/306/67 307/3648/67 +f 291/309/67 292/308/109 308/3649/109 +f 292/310/109 293/312/69 309/3650/69 +f 293/315/69 294/314/71 310/3651/71 +f 295/318/73 311/3652/73 310/3651/71 +f 295/321/73 296/320/75 312/3653/75 +f 297/324/9 313/5961/9 312/3653/75 +f 298/327/76 314/3655/76 313/3654/9 +f 299/329/79 315/3656/79 314/3655/76 +f 299/333/79 300/332/110 316/3657/110 +f 301/335/60 317/3658/60 316/3657/110 +f 302/291/107 318/3643/107 317/3658/60 +f 321/3659/8 337/346/8 352/348/84 +f 322/3661/85 338/349/85 337/351/8 +f 323/3662/87 339/2700/87 338/352/85 +f 324/3663/89 340/355/89 339/357/87 +f 325/3664/91 341/2702/91 340/358/89 +f 326/3665/93 342/361/93 341/363/91 +f 327/3666/92 343/2704/92 342/364/93 +f 328/3667/95 344/367/95 343/369/92 +f 329/3668/10 345/2706/10 344/370/95 +f 330/3669/96 346/2707/96 345/373/10 +f 330/3669/96 331/3672/97 347/376/97 +f 332/3671/101 348/379/101 347/381/97 +f 332/3671/101 333/3673/100 349/382/100 +f 333/3673/100 334/3674/83 350/2711/83 +f 334/3674/83 335/3675/82 351/340/82 +f 335/3675/82 336/3660/84 352/343/84 +f 382/3676/103 383/3677/16 335/3675/16 +f 383/3677/16 384/3678/11 336/3660/11 +f 384/3678/11 369/3679/3 321/3659/3 +f 369/3679/3 370/3680/18 322/3661/18 +f 370/3680/18 371/3681/14 323/3662/14 +f 371/3681/14 372/3682/105 324/3663/105 +f 372/3682/105 373/3683/5 325/3664/5 +f 373/3683/5 374/3684/104 326/3665/104 +f 374/3684/104 375/3685/12 327/3666/12 +f 375/3685/12 376/3686/15 328/3667/15 +f 376/3686/15 377/3692/6 329/3668/6 +f 377/3687/6 378/3688/13 330/3669/13 +f 378/3688/13 379/3689/17 331/3672/17 +f 379/3689/17 380/3690/106 332/3671/106 +f 380/3690/106 381/3691/4 333/3673/4 +f 381/3691/4 382/3676/103 334/3674/103 +f 367/242/63 383/3677/63 382/3676/107 +f 368/246/108 384/3678/108 383/3677/63 +f 353/248/7 369/3679/7 384/3678/108 +f 353/252/7 354/251/65 370/3680/65 +f 355/255/67 371/3681/67 370/3680/65 +f 355/258/67 356/257/109 372/3682/109 +f 356/261/109 357/260/69 373/3683/69 +f 357/262/69 358/264/71 374/3684/71 +f 359/267/73 375/3685/73 374/3684/71 +f 359/270/73 360/269/75 376/3686/75 +f 360/273/75 361/272/9 377/3692/9 +f 362/276/76 378/3688/76 377/3687/9 +f 363/279/79 379/3689/79 378/3688/76 +f 364/281/110 380/3690/110 379/3689/79 +f 365/284/60 381/3691/60 380/3690/110 +f 366/287/107 382/3676/107 381/3691/60 +f 392/3693/15 408/3700/15 407/3694/12 +f 400/3696/11 416/3704/11 415/3697/16 +f 393/3699/6 409/5962/6 408/3700/15 +f 386/3701/18 402/3709/18 401/3702/3 +f 385/3703/3 401/3702/3 416/3704/11 +f 394/3705/13 410/3711/13 409/3706/6 +f 387/3708/14 403/3713/14 402/3709/18 +f 395/3710/17 411/3715/17 410/3711/13 +f 388/3712/105 404/3717/105 403/3713/14 +f 396/3714/106 412/3719/106 411/3715/17 +f 389/3716/5 405/3721/5 404/3717/105 +f 397/3718/4 413/3723/4 412/3719/106 +f 390/3720/104 406/3724/104 405/3721/5 +f 398/3722/103 414/3725/103 413/3723/4 +f 391/3695/12 407/3694/12 406/3724/104 +f 399/3698/16 415/3697/16 414/3725/103 +f 417/3726/6 434/3730/6 433/3727/13 +f 432/3729/15 448/3756/15 434/3730/6 +f 425/3731/3 441/5963/3 442/3732/18 +f 418/3728/13 433/3727/13 435/3734/17 +f 426/3733/18 442/3732/18 443/3736/14 +f 419/3735/17 435/3734/17 436/3738/106 +f 427/3737/14 443/3736/14 444/3740/105 +f 420/3739/106 436/3738/106 437/3742/4 +f 428/3741/105 444/3740/105 445/3744/5 +f 421/3743/4 437/3742/4 438/3746/103 +f 429/3745/5 445/3744/5 446/3748/104 +f 422/3747/103 438/3746/103 439/3750/16 +f 430/3749/104 446/3748/104 447/3752/12 +f 423/3751/16 439/3750/16 440/3754/11 +f 431/3753/12 447/3752/12 448/3756/15 +f 424/3755/11 440/3754/11 441/3757/3 +f 460/3759/105 476/3766/105 475/3760/14 +f 453/3762/4 469/3768/4 468/3763/106 +f 461/3765/5 477/3770/5 476/3766/105 +f 454/3767/103 470/3772/103 469/3768/4 +f 462/3769/104 478/3774/104 477/3770/5 +f 455/3771/16 471/3776/16 470/3772/103 +f 463/3773/12 479/3778/12 478/3774/104 +f 456/3775/11 472/3780/11 471/3776/16 +f 464/3777/15 480/3784/15 479/3778/12 +f 457/3779/3 473/5964/3 472/3780/11 +f 450/3781/13 465/3789/13 466/3782/6 +f 449/3783/6 466/3782/6 480/3784/15 +f 458/3785/18 474/3790/18 473/3786/3 +f 451/3788/17 467/3791/17 465/3789/13 +f 459/3761/14 475/3760/14 474/3790/18 +f 452/3764/106 468/3763/106 467/3791/17 +f 510/3792/103 511/3798/16 495/3793/16 +f 503/3795/12 504/3800/15 488/3796/15 +f 511/3798/16 512/3805/11 496/3799/11 +f 504/3800/15 505/5965/6 489/3801/6 +f 497/3802/3 498/3809/18 482/3803/18 +f 512/3805/11 497/3802/3 481/3804/3 +f 505/3806/6 506/3811/13 490/3807/13 +f 498/3809/18 499/3813/14 483/3810/14 +f 506/3811/13 507/3815/17 491/3812/17 +f 499/3813/14 500/3817/105 484/3814/105 +f 507/3815/17 508/5966/106 492/3816/106 +f 500/3817/105 501/3821/5 485/3818/5 +f 492/3816/106 508/5966/106 509/3819/4 +f 501/3821/5 502/3823/104 486/3822/104 +f 509/3819/4 510/3792/103 494/3794/103 +f 502/3823/104 503/3795/12 487/3797/12 +f 542/3824/103 543/3830/16 527/3825/16 +f 535/3827/12 536/3832/15 520/3828/15 +f 543/3830/16 544/3837/11 528/3831/11 +f 536/3832/15 537/5967/6 521/3833/6 +f 529/3834/3 530/3841/18 514/3835/18 +f 544/3837/11 529/3834/3 513/3836/3 +f 537/3838/6 538/3843/13 522/3839/13 +f 530/3841/18 531/3845/14 515/3842/14 +f 538/3843/13 539/3847/17 523/3844/17 +f 531/3845/14 532/3849/105 516/3846/105 +f 539/3847/17 540/5968/106 524/3848/106 +f 532/3849/105 533/3853/5 517/3850/5 +f 524/3848/106 540/5968/106 541/3851/4 +f 533/3853/5 534/3855/104 518/3854/104 +f 541/3851/4 542/3824/103 526/3826/103 +f 534/3855/104 535/3827/12 519/3829/12 +f 779/3856/111 778/3872/126 770/3857/112 +f 773/3859/114 776/3869/124 792/3860/115 +f 780/3862/117 779/3856/111 771/3858/113 +f 791/3864/119 775/5969/845 774/3865/120 +f 770/3857/112 778/3872/126 777/3867/122 +f 776/3869/124 775/5969/845 791/3864/119 +f 769/3870/123 777/3875/122 780/3862/117 +f 782/3871/125 781/3877/128 777/3867/122 +f 779/3856/111 783/3873/127 782/3871/125 +f 780/3862/117 784/3878/130 783/3873/127 +f 781/3874/128 784/3878/130 780/3862/117 +f 786/3876/129 785/3882/132 781/3877/128 +f 783/3873/127 787/3879/131 786/3876/129 +f 784/3878/130 788/3883/133 787/3879/131 +f 785/3880/132 788/3883/133 784/3878/130 +f 786/3876/129 790/3866/121 789/3881/116 +f 787/3879/131 791/3864/119 790/3866/121 +f 788/3883/133 792/3860/115 791/3864/119 +f 789/3861/116 792/3860/115 788/3883/133 +f 774/3865/120 773/5970/114 789/3881/116 +f 798/3884/134 797/5971/140 813/3885/135 +f 815/3887/137 799/5972/846 798/3884/134 +f 800/3888/138 799/5972/846 815/3887/137 +f 797/3890/140 800/3888/138 816/3889/139 +f 794/3892/141 802/3901/149 801/3893/142 +f 803/3895/144 802/3901/149 794/3892/141 +f 804/3897/146 803/3895/144 795/3896/145 +f 793/3899/143 801/3904/142 804/3897/146 +f 806/3900/148 805/3906/153 801/3893/142 +f 807/3902/150 806/3900/148 802/3901/149 +f 808/3903/151 807/3902/150 803/3895/144 +f 801/3904/142 805/3908/153 808/3903/151 +f 806/3900/148 810/3910/156 809/3905/152 +f 811/3907/154 810/3910/156 806/3900/148 +f 808/3903/151 812/3909/155 811/3907/154 +f 805/3908/153 809/3911/152 812/3909/155 +f 810/3910/156 814/3886/136 813/3885/135 +f 815/3887/137 814/3886/136 810/3910/156 +f 812/3909/155 816/3889/139 815/3887/137 +f 809/3911/152 813/3891/135 816/3889/139 +f 837/3912/157 817/5973/164 818/3913/158 +f 839/3915/160 838/3914/159 818/3913/158 +f 839/3915/160 819/3916/161 820/3917/162 +f 840/3918/163 820/3917/162 817/3919/164 +f 821/3921/165 825/5974/172 826/3922/166 +f 822/3923/167 826/3922/166 827/3924/168 +f 823/3925/169 827/3924/168 828/3926/170 +f 821/3928/165 824/3927/171 828/3926/170 +f 826/3922/166 825/5974/172 829/3930/173 +f 826/3922/166 830/3931/174 831/3932/175 +f 827/3924/168 831/3932/175 832/3933/176 +f 825/3929/172 828/3926/170 832/3933/176 +f 829/3930/173 833/3939/180 834/3935/177 +f 831/3932/175 830/3931/174 834/3935/177 +f 831/3932/175 835/3936/178 836/3937/179 +f 832/3933/176 836/3937/179 833/3938/180 +f 833/3939/180 837/3912/157 838/3914/159 +f 835/3936/178 834/3935/177 838/3914/159 +f 835/3936/178 839/3915/160 840/3918/163 +f 836/3937/179 840/3918/163 837/3920/157 +f 865/3940/181 866/3945/187 850/3941/182 +f 858/3943/184 859/711/218 843/710/185 +f 866/3945/187 867/728/211 851/725/188 +f 860/708/189 861/3948/195 845/3946/190 +f 868/726/192 869/3949/197 853/3947/193 +f 861/3948/195 862/714/222 846/717/196 +f 869/3949/197 870/731/214 854/734/198 +f 863/722/199 864/3952/205 848/3950/200 +f 871/738/202 872/3956/208 856/3951/203 +f 864/3952/205 865/3973/181 849/3953/183 +f 857/3954/206 858/3943/184 842/3944/186 +f 872/3956/208 857/3954/206 841/3955/207 +f 29/3410/62 30/3409/61 14/3436/81 +f 26/3430/77 27/3432/78 11/3463/99 +f 28/3434/80 29/3410/62 13/3467/102 +f 881/3957/209 882/5975/847 866/3945/187 +f 866/3945/187 882/5976/847 883/3958/210 +f 867/728/211 883/5977/210 884/3959/212 +f 884/3960/212 885/5978/848 869/3949/197 +f 869/3949/197 885/5979/848 886/3961/213 +f 870/731/214 886/5980/213 887/3962/215 +f 887/3963/215 888/5981/849 872/3956/208 +f 872/3956/208 888/5982/849 873/3964/216 +f 873/3965/216 874/5983/217 858/3943/184 +f 874/3966/217 875/5984/219 859/711/218 +f 875/3967/219 876/5985/220 860/708/189 +f 876/3968/220 877/5986/850 861/3948/195 +f 861/3948/195 877/5987/850 878/3969/221 +f 878/3970/221 879/5988/223 863/722/199 +f 879/3971/223 880/5989/224 864/3952/205 +f 880/3972/224 881/5990/209 865/3973/181 +f 875/3976/219 874/5991/217 887/5992/215 +f 874/5991/217 873/5993/216 887/5992/215 +f 873/5993/216 888/5994/849 887/5992/215 +f 887/5992/215 886/5995/213 883/3974/210 +f 886/5995/213 885/5996/848 883/3974/210 +f 885/5996/848 884/5997/212 883/3974/210 +f 883/3974/210 882/5998/847 881/5999/209 +f 881/5999/209 880/6000/224 883/3974/210 +f 880/6000/224 879/3975/223 883/3974/210 +f 879/3975/223 878/6001/221 877/6002/850 +f 877/6002/850 876/6003/220 875/3976/219 +f 879/3975/223 877/6002/850 875/3976/219 +f 875/3976/219 887/5992/215 883/3974/210 +f 849/3953/183 897/6004/226 896/3977/225 +f 850/3941/182 898/6005/228 897/3978/226 +f 850/3941/182 851/725/188 899/3979/227 +f 851/725/188 852/724/194 900/3981/229 +f 852/724/194 853/3947/193 901/3983/230 +f 853/3947/193 854/734/198 902/3985/231 +f 854/734/198 855/736/204 903/3987/232 +f 856/3951/203 904/6006/233 903/3989/232 +f 841/3955/207 889/6007/234 904/3990/233 +f 842/3944/186 890/6008/235 889/3991/234 +f 843/710/185 891/6009/236 890/3992/235 +f 844/706/191 892/6010/237 891/3993/236 +f 845/3946/190 893/6011/239 892/3994/237 +f 845/3946/190 846/717/196 894/3995/238 +f 847/719/201 895/6012/240 894/3997/238 +f 848/3950/200 896/6013/225 895/3998/240 +f 889/4001/234 890/6014/235 893/6015/239 +f 890/6014/235 891/6016/236 893/6015/239 +f 891/6016/236 892/6017/237 893/6015/239 +f 893/6015/239 894/6018/238 895/6019/240 +f 895/6019/240 896/6020/225 893/6015/239 +f 896/6020/225 897/3999/226 893/6015/239 +f 897/3999/226 898/6021/228 899/6022/227 +f 899/6022/227 900/6023/229 897/3999/226 +f 900/6023/229 901/4000/230 897/3999/226 +f 901/4000/230 902/6024/231 889/4001/234 +f 902/6024/231 903/6025/232 889/4001/234 +f 903/6025/232 904/6026/233 889/4001/234 +f 889/4001/234 893/6015/239 897/3999/226 +f 20/3419/68 21/3421/70 5/3447/88 +f 21/3421/70 22/3423/72 6/3449/90 +f 23/3425/74 24/3403/56 8/3405/57 +f 934/4002/241 935/4053/539 923/4003/242 +f 923/4003/242 935/4056/539 936/4005/14 +f 936/4007/14 937/4059/540 925/4008/245 +f 925/4008/245 937/6027/540 938/4009/246 +f 938/4011/246 939/4055/91 927/4012/248 +f 927/4012/248 939/4058/91 940/4013/249 +f 940/4015/249 941/4062/252 929/4016/251 +f 941/4017/252 942/4054/12 930/4018/253 +f 942/4019/12 943/4057/538 931/4020/254 +f 931/4020/254 943/4060/538 944/4022/255 +f 932/4023/256 944/4052/255 933/4024/69 +f 933/4026/69 934/4061/241 922/4004/243 +f 928/4014/250 952/4032/263 951/4027/258 +f 925/4008/245 949/4034/265 948/4028/259 +f 932/4023/256 956/4035/266 955/4029/260 +f 921/4025/257 922/4004/243 946/4030/261 +f 929/4016/251 953/4037/268 952/4032/263 +f 925/4008/245 926/4010/247 950/4033/264 +f 921/4025/257 945/4031/262 956/4035/266 +f 922/4004/243 923/4003/242 947/4036/267 +f 930/4018/253 954/4039/269 953/4037/268 +f 927/4012/248 951/4027/258 950/4033/264 +f 924/4006/244 948/4028/259 947/4036/267 +f 930/4021/253 931/4020/254 955/4029/260 +f 947/4036/267 959/740/271 958/742/270 +f 948/4028/259 960/743/16 959/745/271 +f 949/4034/265 961/746/272 960/748/16 +f 950/4033/264 962/749/273 961/751/272 +f 950/4033/264 951/4027/258 963/2780/100 +f 952/4032/263 964/755/275 963/757/100 +f 952/4032/263 953/4037/268 965/2782/274 +f 954/4039/269 966/2783/17 965/761/274 +f 954/4038/269 955/4029/260 967/764/276 +f 956/4035/266 968/767/277 967/769/276 +f 945/4031/262 957/2786/60 968/770/277 +f 945/4031/262 946/4030/261 958/2787/270 +f 977/759/278 989/6028/278 988/4040/279 +f 974/2779/280 986/6029/280 985/4041/281 +f 969/771/2 982/6030/2 992/4042/282 +f 971/2776/283 983/6031/283 981/4043/284 +f 978/762/6 990/6032/6 989/4044/278 +f 975/753/1 987/6033/1 986/4045/280 +f 972/2777/3 984/6034/3 983/4046/283 +f 979/2784/285 991/6035/285 990/4047/6 +f 976/2781/279 988/6036/279 987/4048/1 +f 973/2778/281 985/6037/281 984/4049/3 +f 980/2785/282 992/6038/282 991/4050/285 +f 970/774/284 981/6039/284 982/4051/2 +f 944/4052/282 1004/782/282 993/784/2 +f 935/4053/283 934/4002/284 994/785/284 +f 941/4017/278 1001/2800/278 1002/788/6 +f 938/4011/280 998/791/280 999/793/1 +f 935/4056/283 995/2802/283 996/794/3 +f 942/4019/6 1002/797/6 1003/799/285 +f 939/4058/1 999/800/1 1000/802/279 +f 936/4007/3 996/803/3 997/805/281 +f 943/4060/285 1003/2806/285 1004/806/282 +f 933/4026/2 993/809/2 994/811/284 +f 940/4015/279 1000/812/279 1001/814/278 +f 938/4009/280 937/6027/281 997/2797/281 +f 1010/4063/280 1022/832/280 1023/818/1 +f 1007/4065/283 1019/837/283 1020/821/3 +f 1014/4067/6 1026/815/6 1027/817/285 +f 1011/4064/1 1023/818/1 1024/820/279 +f 1008/4066/3 1020/821/3 1021/823/281 +f 1015/4068/285 1027/817/285 1028/824/282 +f 1005/4072/2 1017/827/2 1018/829/284 +f 1012/4069/279 1024/820/279 1025/831/278 +f 1009/4070/281 1021/823/281 1022/832/280 +f 1016/4071/282 1028/824/282 1017/827/2 +f 1006/4073/284 1018/829/284 1019/837/283 +f 1013/4074/278 1025/831/278 1026/838/6 +f 1034/2816/280 1046/6040/280 1047/4076/1 +f 1031/842/283 1043/6041/283 1044/4077/3 +f 1038/2809/6 1050/6042/6 1051/4078/285 +f 1035/2810/1 1047/6043/1 1048/4079/279 +f 1032/2811/3 1044/6044/3 1045/4080/281 +f 1039/825/285 1051/6045/285 1052/4081/282 +f 1030/2812/2 1042/6046/2 1041/4082/284 +f 1036/2813/279 1048/6047/279 1049/4083/278 +f 1033/833/281 1045/6048/281 1046/4084/280 +f 1030/835/2 1040/2814/282 1052/4085/282 +f 1029/2815/284 1041/6049/284 1043/4087/283 +f 1037/839/278 1049/6050/278 1050/4088/6 +f 1053/4089/4 1064/4100/286 1076/850/286 +f 1055/4090/287 1054/4101/288 1066/853/288 +f 1061/4091/289 1073/875/289 1074/856/6 +f 1058/4093/290 1070/849/290 1071/859/5 +f 1055/4090/287 1067/855/287 1068/862/3 +f 1062/4096/6 1074/865/6 1075/867/291 +f 1059/4094/5 1071/859/5 1072/869/292 +f 1056/4095/3 1068/862/3 1069/847/293 +f 1063/4097/291 1075/867/291 1076/850/286 +f 1053/4089/4 1065/852/4 1066/853/288 +f 1061/4091/289 1060/4098/292 1072/869/292 +f 1058/4093/290 1057/4099/293 1069/847/293 +f 1082/4102/290 1094/897/290 1095/881/5 +f 1079/4104/287 1091/901/287 1092/884/3 +f 1086/4106/6 1098/878/6 1099/880/291 +f 1083/4103/5 1095/881/5 1096/883/292 +f 1080/4105/3 1092/884/3 1093/886/293 +f 1087/4107/291 1099/880/291 1100/887/286 +f 1077/4111/4 1089/899/4 1090/890/288 +f 1085/4113/289 1084/4108/292 1096/883/292 +f 1081/4109/293 1093/886/293 1094/897/290 +f 1077/4111/4 1088/4110/286 1100/887/286 +f 1078/4112/288 1090/890/288 1091/901/287 +f 1085/4113/289 1097/893/289 1098/902/6 +f 1106/905/290 1118/6051/290 1119/4115/5 +f 1103/907/287 1115/6052/287 1116/4116/3 +f 1110/2832/6 1122/6053/6 1123/4117/291 +f 1107/2833/5 1119/6054/5 1120/4118/292 +f 1104/2834/3 1116/6055/3 1117/4119/293 +f 1111/888/291 1123/6056/291 1124/4120/286 +f 1102/891/4 1114/6057/4 1113/4121/288 +f 1108/894/292 1120/6058/292 1121/4122/289 +f 1105/2835/293 1117/6059/293 1118/4123/290 +f 1112/2836/286 1124/6060/286 1114/4124/4 +f 1101/2837/288 1113/6061/288 1115/4125/287 +f 1109/903/289 1121/6062/289 1122/4126/6 +f 19/3417/66 20/3419/68 4/3445/86 +f 22/3423/72 23/3425/74 7/3453/94 +f 27/3432/78 28/3434/80 12/3461/98 +f 30/3409/61 31/3397/50 15/3399/52 +f 1138/4127/294 1140/4130/297 1139/4128/295 +f 1140/4130/297 1142/4132/299 1141/4131/298 +f 1142/4132/299 1144/4134/301 1143/4133/300 +f 1144/4134/301 1146/4136/303 1145/4135/302 +f 1146/4136/303 1148/4138/305 1147/4137/304 +f 1148/4138/305 1150/6063/71 1149/4139/93 +f 1140/4130/297 1168/4171/325 1169/4140/83 +f 1150/4141/71 1152/4144/307 1151/4142/306 +f 1152/4144/307 1138/4127/294 1137/4129/296 +f 1141/4131/298 1143/4133/300 1156/4145/308 +f 1145/4147/302 1157/4150/311 1156/4145/308 +f 1139/4128/295 1141/4131/298 1155/4146/107 +f 1145/4147/302 1147/4163/304 1158/4149/310 +f 1137/4151/296 1153/4154/313 1159/4152/312 +f 1139/4128/295 1154/4148/309 1153/4154/313 +f 1159/4152/312 1153/4154/313 1160/4155/314 +f 1157/4150/311 1164/4160/319 1163/4157/316 +f 1154/4148/309 1155/4146/107 1162/4158/317 +f 1158/4149/310 1165/4164/320 1164/4160/319 +f 1156/4145/308 1163/4157/316 1162/4158/317 +f 1153/4154/313 1154/4148/309 1161/4159/318 +f 1148/4165/305 1146/4173/303 1171/4166/321 +f 1138/4168/294 1152/4182/307 1173/4169/323 +f 1140/4130/297 1138/4168/294 1167/4170/324 +f 1144/4134/301 1142/4132/299 1169/4140/83 +f 1146/4173/303 1144/4134/301 1170/4172/326 +f 1172/4167/322 1171/4166/321 1178/4174/327 +f 1170/4172/326 1169/4140/83 1176/4176/329 +f 1167/4170/324 1174/4180/333 1175/4178/331 +f 1167/4170/324 1173/4169/323 1180/4179/332 +f 1171/4166/321 1170/4172/326 1177/4177/330 +f 1168/4171/325 1175/4178/331 1176/4176/329 +f 1179/4184/328 1178/4196/327 1186/4185/13 +f 1176/4176/329 1184/4197/1 1185/4187/96 +f 1174/4188/333 1182/4193/18 1183/4189/85 +f 1150/4190/71 1179/4184/328 1187/4186/76 +f 1180/4192/332 1188/4195/65 1182/4193/18 +f 1180/4192/332 1150/6064/71 1181/4194/2 +f 1177/4177/330 1185/4187/96 1186/4185/13 +f 1176/4176/329 1175/4178/331 1183/4189/85 +f 1149/4198/93 1166/4211/315 1196/4199/85 +f 1163/4157/316 1164/4204/319 1194/4201/13 +f 1162/4158/317 1192/4206/2 1191/4203/65 +f 1164/4204/319 1165/4210/320 1195/4205/96 +f 1162/4158/317 1163/4157/316 1193/4202/76 +f 1160/4207/314 1161/4159/318 1191/4203/65 +f 1149/4209/93 1189/6065/1 1195/4205/96 +f 1160/4207/314 1190/4208/18 1196/4199/85 +f 1198/4212/334 1200/4215/337 1199/4213/335 +f 1200/4215/337 1202/4217/339 1201/4216/338 +f 1202/4217/339 1204/4219/341 1203/4218/340 +f 1204/4219/341 1206/4221/343 1205/4220/342 +f 1206/4221/343 1208/4223/345 1207/4222/344 +f 1208/4223/345 1210/6066/109 1209/4224/89 +f 1200/4215/337 1228/4256/364 1229/4225/101 +f 1210/4226/109 1212/4229/347 1211/4227/346 +f 1212/4229/347 1198/4212/334 1197/4214/336 +f 1203/4218/340 1216/4232/348 1215/4230/110 +f 1205/4231/342 1217/4235/351 1216/4232/348 +f 1199/4213/335 1201/4216/338 1215/4230/110 +f 1205/4231/342 1207/4248/344 1218/4234/350 +f 1197/4236/336 1213/4239/353 1219/4237/352 +f 1197/4236/336 1199/4213/335 1214/4233/349 +f 1219/4237/352 1213/4239/353 1220/4240/354 +f 1216/4232/348 1217/4235/351 1224/4242/356 +f 1214/4233/349 1215/4230/110 1222/4244/358 +f 1218/4234/350 1225/4249/360 1224/4242/356 +f 1215/4230/110 1216/4232/348 1223/4243/357 +f 1214/4233/349 1221/4245/359 1220/4240/354 +f 1208/4250/345 1206/4258/343 1231/4251/361 +f 1212/4253/347 1233/4265/372 1227/4254/363 +f 1200/4215/337 1198/4255/334 1227/4254/363 +f 1204/4219/341 1202/4217/339 1229/4225/101 +f 1206/4258/343 1204/4219/341 1230/4257/365 +f 1232/4252/362 1231/4251/361 1238/4259/366 +f 1230/4257/365 1229/4225/101 1236/4261/368 +f 1228/4256/364 1227/4254/363 1234/4263/370 +f 1233/4265/372 1240/4267/373 1234/4263/370 +f 1231/4251/361 1230/4257/365 1237/4262/369 +f 1228/4256/364 1235/4264/371 1236/4261/368 +f 1239/4269/367 1238/4281/366 1246/4270/15 +f 1236/4261/368 1244/4282/1 1245/4272/95 +f 1234/4273/370 1242/4278/11 1243/4274/84 +f 1210/4275/109 1239/4269/367 1247/4271/75 +f 1240/4277/373 1248/4280/108 1242/4278/11 +f 1240/4277/373 1210/6067/109 1241/4279/2 +f 1237/4262/369 1245/4272/95 1246/4270/15 +f 1236/4261/368 1235/4264/371 1243/4274/84 +f 1209/4283/89 1226/4296/355 1256/4284/84 +f 1223/4243/357 1224/4290/356 1254/4286/15 +f 1222/4244/358 1252/4291/2 1251/4288/108 +f 1225/4289/360 1255/4295/95 1254/4286/15 +f 1222/4244/358 1223/4243/357 1253/4287/75 +f 1220/4292/354 1221/4245/359 1251/4288/108 +f 1209/4294/89 1249/6068/1 1255/4295/95 +f 1220/4292/354 1250/4293/11 1256/4284/84 +f 1258/4297/374 1260/4300/377 1259/4298/375 +f 1260/4300/377 1262/4302/379 1261/4301/378 +f 1262/4302/379 1264/4304/381 1263/4303/380 +f 1264/4304/381 1266/4306/383 1265/4305/382 +f 1266/4306/383 1268/4308/385 1267/4307/384 +f 1268/4308/385 1270/6069/107 1269/4309/83 +f 1260/4300/377 1288/4341/405 1289/4310/93 +f 1270/4311/107 1272/4314/387 1271/4312/386 +f 1272/4314/387 1258/4297/374 1257/4299/376 +f 1263/4303/380 1276/4317/388 1275/4315/71 +f 1265/4316/382 1277/4320/391 1276/4317/388 +f 1259/4298/375 1261/4301/378 1275/4315/71 +f 1265/4316/382 1267/4333/384 1278/4319/390 +f 1257/4321/376 1273/4324/393 1279/4322/392 +f 1257/4321/376 1259/4298/375 1274/4318/389 +f 1279/4322/392 1273/4324/393 1280/4325/394 +f 1277/4320/391 1284/4330/399 1283/4327/396 +f 1274/4318/389 1275/4315/71 1282/4328/397 +f 1278/4319/390 1285/4334/400 1284/4330/399 +f 1276/4317/388 1283/4327/396 1282/4328/397 +f 1274/4318/389 1281/4329/398 1280/4325/394 +f 1268/4335/385 1266/4343/383 1291/4336/401 +f 1258/4338/374 1272/4351/387 1293/4339/403 +f 1260/4300/377 1258/4338/374 1287/4340/404 +f 1262/4302/379 1289/4310/93 1290/4342/406 +f 1266/4343/383 1264/4304/381 1290/4342/406 +f 1291/4336/401 1298/4349/412 1299/4344/407 +f 1290/4342/406 1289/4310/93 1296/4345/408 +f 1288/4341/405 1287/4340/404 1294/4347/410 +f 1293/4339/403 1300/4352/413 1294/4347/410 +f 1291/4336/401 1290/4342/406 1297/4346/409 +f 1288/4341/405 1295/4348/411 1296/4345/408 +f 1299/4354/407 1298/4366/412 1306/4355/18 +f 1296/4345/408 1304/4367/1 1305/4357/85 +f 1294/4358/410 1302/4363/13 1303/4359/96 +f 1270/4360/107 1299/4354/407 1307/4356/65 +f 1300/4362/413 1308/4365/76 1302/4363/13 +f 1300/4362/413 1270/6070/107 1301/4364/2 +f 1297/4346/409 1305/4357/85 1306/4355/18 +f 1295/4348/411 1303/4359/96 1304/4367/1 +f 1269/4368/83 1286/4381/395 1316/4369/96 +f 1283/4327/396 1284/4375/399 1314/4371/18 +f 1282/4328/397 1312/4376/2 1311/4373/76 +f 1285/4374/400 1315/4380/85 1314/4371/18 +f 1282/4328/397 1283/4327/396 1313/4372/65 +f 1280/4377/394 1281/4329/398 1311/4373/76 +f 1269/4379/83 1309/6071/1 1315/4380/85 +f 1280/4377/394 1310/4378/13 1316/4369/96 +f 1318/4382/414 1320/4385/417 1319/4383/415 +f 1320/4385/417 1322/4387/419 1321/4386/418 +f 1322/4387/419 1324/4389/421 1323/4388/420 +f 1324/4389/421 1326/4391/423 1325/4390/422 +f 1326/4391/423 1328/4393/425 1327/4392/424 +f 1328/4393/425 1330/6072/110 1329/4394/101 +f 1320/4385/417 1348/4426/444 1349/4395/89 +f 1330/4396/110 1332/4399/427 1331/4397/426 +f 1332/4399/427 1318/4382/414 1317/4384/416 +f 1323/4388/420 1336/4402/428 1335/4400/109 +f 1325/4401/422 1337/4405/431 1336/4402/428 +f 1319/4383/415 1321/4386/418 1335/4400/109 +f 1325/4401/422 1327/4418/424 1338/4404/430 +f 1317/4406/416 1333/4409/433 1339/4407/432 +f 1317/4406/416 1319/4383/415 1334/4403/429 +f 1339/4407/432 1333/4409/433 1340/4410/434 +f 1336/4402/428 1337/4405/431 1344/4412/436 +f 1335/4400/109 1342/4415/439 1341/4414/438 +f 1338/4404/430 1345/4419/440 1344/4412/436 +f 1336/4402/428 1343/4413/437 1342/4415/439 +f 1334/4403/429 1341/4414/438 1340/4410/434 +f 1328/4420/425 1326/4428/423 1351/4421/441 +f 1332/4423/427 1353/4434/451 1347/4424/443 +f 1318/4425/414 1347/4424/443 1348/4426/444 +f 1324/4389/421 1322/4387/419 1349/4395/89 +f 1326/4428/423 1324/4389/421 1350/4427/445 +f 1351/4421/441 1358/4435/452 1359/4429/446 +f 1350/4427/445 1349/4395/89 1356/4430/447 +f 1348/4426/444 1347/4424/443 1354/4432/449 +f 1353/4434/451 1360/4437/453 1354/4432/449 +f 1351/4421/441 1350/4427/445 1357/4431/448 +f 1349/4395/89 1348/4426/444 1355/4433/450 +f 1359/4439/446 1358/4451/452 1366/4440/11 +f 1356/4430/447 1364/4452/1 1365/4442/84 +f 1354/4443/449 1362/4448/15 1363/4444/95 +f 1330/4445/110 1359/4439/446 1367/4441/108 +f 1360/4447/453 1368/4450/75 1362/4448/15 +f 1360/4447/453 1330/6073/110 1361/4449/2 +f 1357/4431/448 1365/4442/84 1366/4440/11 +f 1356/4430/447 1355/4433/450 1363/4444/95 +f 1329/4453/101 1346/4466/435 1376/4454/95 +f 1343/4413/437 1344/4459/436 1374/4456/11 +f 1342/4415/439 1372/4461/2 1371/4458/75 +f 1344/4459/436 1345/4465/440 1375/4460/84 +f 1342/4415/439 1343/4413/437 1373/4457/108 +f 1340/4462/434 1341/4414/438 1371/4458/75 +f 1329/4464/101 1369/6074/1 1375/4460/84 +f 1340/4462/434 1370/4463/15 1376/4454/95 +f 1378/4467/422 1380/4470/420 1379/4468/421 +f 1380/4470/420 1382/4472/418 1381/4471/419 +f 1382/4472/418 1384/4474/415 1383/4473/417 +f 1384/4474/415 1386/4476/416 1385/4475/414 +f 1386/4476/416 1388/4478/426 1387/4477/427 +f 1388/4478/426 1390/6075/101 1389/4479/110 +f 1380/4470/420 1408/4511/428 1409/4480/109 +f 1390/4481/101 1392/4484/424 1391/4482/425 +f 1392/4484/424 1378/4467/422 1377/4469/423 +f 1381/4471/419 1383/4473/417 1396/4485/444 +f 1385/4487/414 1397/4490/443 1396/4485/444 +f 1379/4468/421 1381/4471/419 1395/4486/89 +f 1385/4487/414 1387/4504/427 1398/4489/454 +f 1377/4491/423 1393/4494/441 1399/4492/442 +f 1379/4468/421 1394/4488/445 1393/4494/441 +f 1399/4492/442 1393/4494/441 1400/4495/452 +f 1397/4490/443 1404/4501/449 1403/4497/450 +f 1394/4488/445 1395/4486/89 1402/4498/447 +f 1397/4490/443 1398/4489/454 1405/4500/453 +f 1396/4485/444 1403/4497/450 1402/4498/447 +f 1394/4488/445 1401/4499/448 1400/4495/452 +f 1388/4505/426 1386/4513/416 1411/4506/433 +f 1392/4508/424 1413/4519/430 1407/4509/431 +f 1378/4510/422 1407/4509/431 1408/4511/428 +f 1384/4474/415 1382/4472/418 1409/4480/109 +f 1386/4513/416 1384/4474/415 1410/4512/457 +f 1412/4507/456 1411/4506/433 1418/4514/434 +f 1409/4480/109 1416/4520/439 1417/4516/438 +f 1408/4511/428 1407/4509/431 1414/4517/436 +f 1413/4519/430 1420/4522/458 1414/4517/436 +f 1410/4512/457 1417/4516/438 1418/4514/434 +f 1408/4511/428 1415/4518/437 1416/4520/439 +f 1419/4524/435 1418/4536/434 1426/4525/15 +f 1416/4520/439 1424/4537/2 1425/4527/75 +f 1414/4528/436 1422/4533/11 1423/4529/108 +f 1390/4530/101 1419/4524/435 1427/4526/95 +f 1420/4532/458 1428/4535/84 1422/4533/11 +f 1420/4532/458 1390/6076/101 1421/4534/1 +f 1418/4536/434 1417/4516/438 1425/4527/75 +f 1416/4520/439 1415/4518/437 1423/4529/108 +f 1389/4538/110 1406/4551/455 1436/4539/108 +f 1403/4497/450 1404/4545/449 1434/4541/15 +f 1402/4498/447 1432/4546/1 1431/4543/84 +f 1405/4544/453 1435/4550/75 1434/4541/15 +f 1402/4498/447 1403/4497/450 1433/4542/95 +f 1400/4547/452 1401/4499/448 1431/4543/84 +f 1389/4549/110 1429/6077/2 1435/4550/75 +f 1400/4547/452 1430/4548/11 1436/4539/108 +f 1438/4552/382 1440/4555/380 1439/4553/381 +f 1440/4555/380 1442/4557/378 1441/4556/379 +f 1442/4557/378 1444/4559/375 1443/4558/377 +f 1444/4559/375 1446/4561/376 1445/4560/374 +f 1446/4561/376 1448/4563/386 1447/4562/387 +f 1448/4563/386 1450/6078/83 1449/4564/107 +f 1440/4555/380 1468/4596/388 1469/4565/71 +f 1450/4566/83 1452/4569/384 1451/4567/385 +f 1452/4569/384 1438/4552/382 1437/4554/383 +f 1443/4558/377 1456/4572/405 1455/4570/93 +f 1445/4571/374 1457/4575/404 1456/4572/405 +f 1441/4556/379 1455/4570/93 1454/4573/406 +f 1445/4571/374 1447/4588/387 1458/4574/403 +f 1437/4576/383 1453/4579/401 1459/4577/402 +f 1437/4576/383 1439/4553/381 1454/4573/406 +f 1459/4577/402 1453/4579/401 1460/4580/412 +f 1457/4575/404 1464/4585/410 1463/4582/411 +f 1454/4573/406 1455/4570/93 1462/4583/408 +f 1458/4574/403 1465/4589/459 1464/4585/410 +f 1456/4572/405 1463/4582/411 1462/4583/408 +f 1454/4573/406 1461/4584/409 1460/4580/412 +f 1448/4590/386 1446/4598/376 1471/4591/393 +f 1438/4593/382 1452/4606/384 1473/4594/390 +f 1440/4555/380 1438/4593/382 1467/4595/391 +f 1444/4559/375 1442/4557/378 1469/4565/71 +f 1444/4559/375 1470/4597/389 1471/4591/393 +f 1471/4591/393 1478/4604/394 1479/4599/395 +f 1470/4597/389 1469/4565/71 1476/4600/397 +f 1468/4596/388 1467/4595/391 1474/4602/399 +f 1473/4594/390 1480/4607/400 1474/4602/399 +f 1471/4591/393 1470/4597/389 1477/4601/398 +f 1468/4596/388 1475/4603/396 1476/4600/397 +f 1479/4609/395 1478/4621/394 1486/4610/13 +f 1476/4600/397 1484/4622/2 1485/4612/76 +f 1474/4613/399 1482/4618/18 1483/4614/65 +f 1450/4615/83 1479/4609/395 1487/4611/96 +f 1474/4613/399 1480/4619/400 1488/4617/85 +f 1480/4619/400 1450/6079/83 1481/4620/1 +f 1477/4601/398 1485/4612/76 1486/4610/13 +f 1476/4600/397 1475/4603/396 1483/4614/65 +f 1449/4623/107 1466/4636/407 1496/4624/65 +f 1463/4582/411 1464/4630/410 1494/4626/13 +f 1462/4583/408 1492/4631/1 1491/4628/85 +f 1465/4629/459 1495/4635/76 1494/4626/13 +f 1462/4583/408 1463/4582/411 1493/4627/96 +f 1460/4632/412 1461/4584/409 1491/4628/85 +f 1449/4634/107 1489/6080/2 1495/4635/76 +f 1466/4636/407 1460/4632/412 1490/4633/18 +f 1498/4637/342 1500/4640/340 1499/4638/341 +f 1500/4640/340 1502/4642/338 1501/4641/339 +f 1502/4642/338 1504/4644/335 1503/4643/337 +f 1504/4644/335 1506/4646/336 1505/4645/334 +f 1506/4646/336 1508/4648/346 1507/4647/347 +f 1508/4648/346 1510/6081/89 1509/4649/109 +f 1500/4640/340 1528/4681/348 1529/4650/110 +f 1510/4651/89 1512/4654/344 1511/4652/345 +f 1512/4654/344 1498/4637/342 1497/4639/343 +f 1503/4643/337 1516/4657/364 1515/4655/101 +f 1505/4656/334 1517/4660/363 1516/4657/364 +f 1499/4638/341 1501/4641/339 1515/4655/101 +f 1505/4656/334 1507/4673/347 1518/4659/372 +f 1497/4661/343 1513/4664/361 1519/4662/362 +f 1497/4661/343 1499/4638/341 1514/4658/365 +f 1519/4662/362 1513/4664/361 1520/4665/366 +f 1516/4657/364 1517/4660/363 1524/4667/370 +f 1514/4658/365 1515/4655/101 1522/4669/368 +f 1518/4659/372 1525/4674/373 1524/4667/370 +f 1515/4655/101 1516/4657/364 1523/4668/371 +f 1513/4664/361 1514/4658/365 1521/4670/369 +f 1508/4675/346 1506/4683/336 1531/4676/353 +f 1498/4678/342 1512/4691/344 1533/4679/350 +f 1500/4640/340 1498/4678/342 1527/4680/351 +f 1502/4642/338 1529/4650/110 1530/4682/349 +f 1506/4683/336 1504/4644/335 1530/4682/349 +f 1531/4676/353 1538/4689/354 1539/4684/355 +f 1530/4682/349 1529/4650/110 1536/4685/358 +f 1528/4681/348 1527/4680/351 1534/4687/356 +f 1533/4679/350 1540/4692/460 1534/4687/356 +f 1530/4682/349 1537/4686/359 1538/4689/354 +f 1528/4681/348 1535/4688/357 1536/4685/358 +f 1538/4694/354 1546/4706/11 1547/4695/84 +f 1536/4685/358 1544/4707/2 1545/4697/108 +f 1534/4698/356 1542/4703/15 1543/4699/75 +f 1510/4700/89 1539/4696/355 1547/4695/84 +f 1534/4698/356 1540/4704/460 1548/4702/95 +f 1540/4704/460 1510/6082/89 1541/4705/1 +f 1537/4686/359 1545/4697/108 1546/4706/11 +f 1536/4685/358 1535/4688/357 1543/4699/75 +f 1509/4708/109 1526/4721/367 1556/4709/75 +f 1523/4668/371 1524/4715/370 1554/4711/11 +f 1522/4669/368 1552/4716/1 1551/4713/95 +f 1525/4714/373 1555/4720/108 1554/4711/11 +f 1522/4669/368 1523/4668/371 1553/4712/84 +f 1520/4717/366 1521/4670/369 1551/4713/95 +f 1509/4719/109 1549/6083/2 1555/4720/108 +f 1520/4717/366 1550/4718/15 1556/4709/75 +f 1558/4722/302 1560/4725/300 1559/4723/301 +f 1560/4725/300 1562/4727/298 1561/4726/299 +f 1562/4727/298 1564/4729/295 1563/4728/297 +f 1564/4729/295 1566/4731/296 1565/4730/294 +f 1566/4731/296 1568/4733/306 1567/4732/307 +f 1568/4733/306 1570/6084/93 1569/4734/71 +f 1560/4725/300 1588/4766/464 1589/4735/107 +f 1570/4736/93 1572/4739/304 1571/4737/305 +f 1572/4739/304 1558/4722/302 1557/4724/303 +f 1563/4728/297 1576/4742/325 1575/4740/83 +f 1565/4741/294 1577/4745/324 1576/4742/325 +f 1559/4723/301 1561/4726/299 1575/4740/83 +f 1567/4744/307 1578/4755/323 1577/4745/324 +f 1557/4746/303 1573/4749/321 1579/4747/462 +f 1559/4723/301 1574/4743/461 1573/4749/321 +f 1579/4747/462 1573/4749/321 1580/4750/327 +f 1576/4742/325 1577/4745/324 1584/4752/333 +f 1575/4740/83 1582/4756/329 1581/4754/330 +f 1578/4755/323 1585/4759/463 1584/4752/333 +f 1576/4742/325 1583/4753/331 1582/4756/329 +f 1574/4743/461 1581/4754/330 1580/4750/327 +f 1568/4760/306 1566/4768/296 1591/4761/313 +f 1572/4763/304 1593/4775/466 1587/4764/311 +f 1558/4765/302 1587/4764/311 1588/4766/464 +f 1564/4729/295 1562/4727/298 1589/4735/107 +f 1566/4768/296 1564/4729/295 1590/4767/309 +f 1592/4762/312 1591/4761/313 1598/4769/314 +f 1590/4767/309 1589/4735/107 1596/4771/317 +f 1588/4766/464 1587/4764/311 1594/4773/319 +f 1593/4775/466 1600/4777/320 1594/4773/319 +f 1591/4761/313 1590/4767/309 1597/4772/318 +f 1588/4766/464 1595/4774/316 1596/4771/317 +f 1599/4779/465 1598/4791/314 1606/4780/18 +f 1596/4771/317 1604/4792/2 1605/4782/65 +f 1595/4774/316 1594/4788/319 1602/4783/13 +f 1570/4785/93 1599/4779/465 1607/4781/85 +f 1600/4787/320 1608/4790/96 1602/4783/13 +f 1570/4789/93 1601/6085/1 1608/4790/96 +f 1597/4772/318 1605/4782/65 1606/4780/18 +f 1596/4771/317 1595/4774/316 1603/4784/76 +f 1569/4793/71 1586/4806/328 1616/4794/76 +f 1583/4753/331 1584/4800/333 1614/4796/18 +f 1582/4756/329 1612/4801/1 1611/4798/96 +f 1585/4799/463 1615/4805/65 1614/4796/18 +f 1582/4756/329 1583/4753/331 1613/4797/85 +f 1580/4802/327 1581/4754/330 1611/4798/96 +f 1569/4804/71 1609/6086/2 1615/4805/65 +f 1580/4802/327 1610/4803/13 1616/4794/76 +f 1938/4807/467 1946/4819/479 1947/4808/468 +f 1960/4810/470 1944/4820/480 1941/4811/471 +f 1939/4809/469 1947/4808/468 1948/4813/473 +f 1959/4815/475 1958/4834/490 1942/4816/476 +f 1937/4818/478 1945/4823/481 1946/4819/479 +f 1959/4815/475 1943/4817/477 1944/4820/480 +f 1937/4821/478 1940/4814/474 1948/4813/473 +f 1945/4823/481 1949/4828/485 1950/4824/482 +f 1947/4808/468 1946/4819/479 1950/4824/482 +f 1948/4813/473 1947/4808/468 1951/4825/483 +f 1948/4813/473 1952/4826/484 1949/4827/485 +f 1949/4828/485 1953/4833/489 1954/4829/486 +f 1951/4825/483 1950/4824/482 1954/4829/486 +f 1952/4826/484 1951/4825/483 1955/4830/487 +f 1952/4826/484 1956/4831/488 1953/4832/489 +f 1953/4833/489 1957/4835/472 1958/4834/490 +f 1955/4830/487 1954/4829/486 1958/4834/490 +f 1955/4830/487 1959/4815/475 1960/4810/470 +f 1956/4831/488 1960/4810/470 1957/4812/472 +f 1957/4835/472 1941/6087/471 1942/4816/476 +f 1981/4836/491 1965/6088/498 1966/4837/492 +f 1983/4839/494 1982/4838/493 1966/4837/492 +f 1983/4839/494 1967/4840/495 1968/4841/496 +f 1984/4842/497 1968/4841/496 1965/4843/498 +f 1962/4845/499 1961/6089/506 1969/4846/500 +f 1962/4845/499 1970/4847/501 1971/4848/502 +f 1963/4849/503 1971/4848/502 1972/4850/504 +f 1961/4852/506 1964/4851/505 1972/4850/504 +f 1969/4846/500 1973/6090/510 1974/4854/507 +f 1970/4847/501 1974/4854/507 1975/4855/508 +f 1971/4848/502 1975/4855/508 1976/4856/509 +f 1969/4853/500 1972/4850/504 1976/4856/509 +f 1974/4854/507 1973/6090/510 1977/4858/511 +f 1974/4854/507 1978/4859/512 1979/4860/513 +f 1976/4856/509 1975/4855/508 1979/4860/513 +f 1973/4857/510 1976/4856/509 1980/4861/514 +f 1978/4859/512 1977/4858/511 1981/4836/491 +f 1978/4859/512 1982/4838/493 1983/4839/494 +f 1979/4860/513 1983/4839/494 1984/4842/497 +f 1977/4862/511 1980/4861/514 1984/4842/497 +f 1986/4863/515 1985/6091/521 2005/4864/516 +f 2007/4866/518 1987/6092/829 1986/4863/515 +f 1988/4867/519 1987/6092/829 2007/4866/518 +f 1985/4869/521 1988/4867/519 2008/4868/520 +f 1994/4871/522 1993/4880/530 1989/4872/523 +f 1995/4874/525 1994/4871/522 1990/4873/524 +f 1996/4876/527 1995/4874/525 1991/4875/526 +f 1989/4878/523 1993/4883/530 1996/4876/527 +f 1994/4871/522 1998/4885/534 1997/4879/529 +f 1999/4881/531 1998/4885/534 1994/4871/522 +f 2000/4882/532 1999/4881/531 1995/4874/525 +f 1993/4883/530 1997/4888/529 2000/4882/532 +f 2002/4884/533 2001/4889/536 1997/4879/529 +f 1999/4881/531 2003/4890/537 2002/4884/533 +f 2004/4886/535 2003/4890/537 1999/4881/531 +f 2001/4887/536 2004/4886/535 2000/4882/532 +f 2006/4865/517 2005/4864/516 2001/4889/536 +f 2003/4890/537 2007/4866/518 2006/4865/517 +f 2004/4886/535 2008/4868/520 2007/4866/518 +f 2005/4870/516 2008/4868/520 2004/4886/535 +f 2021/2938/279 2009/6093/279 2010/4891/278 +f 2028/2945/283 2016/6094/283 2017/4892/3 +f 2025/2942/282 2013/6095/282 2014/4893/2 +f 2022/1552/278 2010/6096/278 2011/4894/6 +f 2029/2946/3 2017/6097/3 2018/4895/281 +f 2026/1564/2 2014/6098/2 2015/4896/284 +f 2023/1555/6 2011/6099/6 2012/4897/285 +f 2030/2947/281 2018/6100/281 2020/4898/280 +f 2032/2937/1 2019/6101/1 2009/4899/279 +f 2027/2944/284 2015/6102/284 2016/4900/283 +f 2024/1558/285 2012/6103/285 2013/4901/282 +f 2056/4902/248 2055/4914/247 2043/2936/246 +f 2056/4902/248 2044/1545/91 2033/1547/249 +f 2045/4903/250 2033/1548/249 2034/1550/252 +f 2047/4905/253 2046/4904/251 2034/2939/252 +f 2047/4906/253 2035/2940/12 2036/1554/538 +f 2049/4908/256 2048/4907/254 2036/2941/538 +f 2049/4908/256 2037/1560/255 2038/1562/69 +f 2051/4910/243 2050/4909/257 2038/2943/69 +f 2051/4910/243 2039/1566/241 2040/1568/539 +f 2053/4912/244 2052/4911/242 2040/1569/539 +f 2054/4913/245 2053/4912/244 2041/1572/14 +f 2055/4914/247 2054/4913/245 2042/1575/540 +f 2070/4915/268 2046/4904/251 2047/4905/253 +f 2077/4917/259 2053/4912/244 2054/4913/245 +f 2074/4919/262 2050/4909/257 2051/4910/243 +f 2071/4921/269 2047/4906/253 2048/4907/254 +f 2078/4918/265 2054/4913/245 2055/4914/247 +f 2080/4924/258 2056/4902/248 2045/4903/250 +f 2075/4920/261 2051/4910/243 2052/4911/242 +f 2072/4922/260 2048/4907/254 2049/4908/256 +f 2079/4923/264 2055/4914/247 2056/4902/248 +f 2069/4925/263 2045/4903/250 2046/4904/251 +f 2076/4926/267 2052/4911/242 2053/4912/244 +f 2073/4927/266 2049/4908/256 2050/4909/257 +f 2068/4928/100 2067/5406/273 2079/4923/264 +f 2069/4925/263 2057/5397/275 2068/4929/100 +f 2070/4915/268 2058/5405/274 2057/4930/275 +f 2059/4931/17 2058/5402/274 2070/4915/268 +f 2060/4932/276 2059/5399/17 2071/4921/269 +f 2061/4933/277 2060/5407/276 2072/4922/260 +f 2074/4919/262 2062/5403/60 2061/4934/277 +f 2063/4935/270 2062/5400/60 2074/4919/262 +f 2064/4936/271 2063/5408/270 2075/4920/261 +f 2065/4937/16 2064/5404/271 2076/4926/267 +f 2066/4938/272 2065/5401/16 2077/4917/259 +f 2067/4939/273 2066/5398/272 2078/4918/265 +f 2085/4940/175 2081/4944/168 2084/4941/166 +f 2085/4940/175 2086/4945/176 2082/4943/170 +f 2086/4945/176 2087/4948/173 2083/4946/172 +f 2088/4947/174 2084/4967/166 2083/4946/172 +f 2089/4949/178 2085/4940/175 2088/4942/174 +f 2090/4951/179 2086/4945/176 2085/4940/175 +f 2090/4951/179 2091/4953/180 2087/4948/173 +f 2092/4952/177 2088/4947/174 2087/4948/173 +f 2096/4954/159 2093/4956/160 2089/4949/178 +f 2094/4955/163 2090/4951/179 2089/4949/178 +f 2095/4957/157 2091/4953/180 2090/4951/179 +f 2095/4957/157 2096/6104/159 2092/4952/177 +f 2100/4958/158 2097/4960/161 2093/4956/160 +f 2098/4959/162 2094/4955/163 2093/4956/160 +f 2099/4961/164 2095/4957/157 2094/4955/163 +f 2100/4962/158 2096/6104/159 2095/4957/157 +f 2081/4944/168 2101/4964/169 2104/4963/167 +f 2082/4943/170 2102/4966/171 2101/4964/169 +f 2082/4943/170 2083/4946/172 2103/4965/165 +f 2084/4967/166 2104/6105/167 2103/4965/165 +f 2112/4968/541 2108/4992/544 2105/4969/542 +f 2109/4970/127 2105/4969/542 2106/4971/543 +f 2106/4971/543 2107/4995/556 2111/4973/128 +f 2111/4973/128 2107/4995/556 2108/4974/544 +f 2116/4976/129 2112/4968/541 2109/4970/127 +f 2113/4977/131 2109/4970/127 2110/4972/130 +f 2110/4972/130 2111/4973/128 2115/4979/132 +f 2115/4979/132 2111/4973/128 2112/4975/541 +f 2120/4981/545 2116/4976/129 2113/4977/131 +f 2113/4977/131 2114/4978/133 2118/4983/547 +f 2114/4978/133 2115/4979/132 2119/4984/548 +f 2115/4979/132 2116/4980/129 2120/4985/545 +f 2128/4986/549 2120/4981/545 2117/4982/546 +f 2117/4982/546 2118/4983/547 2126/4988/551 +f 2118/4983/547 2119/4984/548 2127/4989/552 +f 2127/4989/552 2119/4984/548 2120/4985/545 +f 2124/4991/553 2121/4993/554 2105/4969/542 +f 2121/4993/554 2122/6106/851 2106/4971/543 +f 2106/4971/543 2122/6106/851 2123/4994/555 +f 2123/4994/555 2124/6107/553 2108/4974/544 +f 2147/4996/557 2148/6108/572 2132/4997/558 +f 2132/4999/558 2129/5002/560 2133/5000/150 +f 2129/5002/560 2130/5019/569 2134/5003/151 +f 2134/5003/151 2130/5019/569 2131/4998/559 +f 2135/5004/153 2131/4998/559 2132/4997/558 +f 2136/5001/148 2133/5000/150 2137/5006/154 +f 2137/5006/154 2133/5000/150 2134/5003/151 +f 2138/5008/155 2134/5003/151 2135/5004/153 +f 2135/5004/153 2136/5005/148 2140/5010/156 +f 2140/5007/156 2137/5006/154 2141/5011/562 +f 2141/5011/562 2137/5006/154 2138/5008/155 +f 2142/5013/564 2138/5008/155 2139/5009/561 +f 2139/5009/561 2140/5010/156 2144/5015/563 +f 2152/5016/566 2144/5012/563 2141/5011/562 +f 2145/5018/568 2146/6109/852 2130/5019/569 +f 2151/5020/570 2143/5014/565 2144/5015/563 +f 2130/5019/569 2146/6109/852 2147/4996/557 +f 2141/5011/562 2142/5013/564 2150/5022/571 +f 2148/5023/572 2145/5018/568 2129/5002/560 +f 2142/5013/564 2143/5014/565 2151/5020/570 +f 2154/5024/573 2166/6110/593 2167/5025/574 +f 2167/5027/574 2168/5082/577 2156/5028/576 +f 2168/5029/577 2169/5084/579 2157/5030/578 +f 2169/5031/579 2170/5088/581 2158/5032/580 +f 2170/5033/581 2171/5081/583 2159/5034/582 +f 2171/5035/583 2172/5083/839 2160/5036/584 +f 2160/5036/584 2172/5087/839 2173/5037/585 +f 2173/5039/585 2174/5080/838 2162/5040/587 +f 2162/5041/587 2174/6111/838 2175/5042/588 +f 2175/5044/588 2176/5085/837 2164/5045/590 +f 2164/5045/590 2176/5079/837 2165/5046/591 +f 2153/5047/592 2165/5086/591 2166/5048/593 +f 2159/5034/582 2160/5036/584 2184/5049/594 +f 2157/5030/578 2181/5055/600 2180/5051/596 +f 2164/5045/590 2188/5056/601 2187/5052/597 +f 2154/5024/573 2178/5058/603 2177/5053/598 +f 2161/5038/586 2185/5059/604 2184/5049/594 +f 2157/5030/578 2158/5032/580 2182/5054/599 +f 2164/5045/590 2153/5047/592 2177/5053/598 +f 2154/5024/573 2155/5026/575 2179/5057/602 +f 2162/5040/587 2186/5061/605 2185/5059/604 +f 2158/5032/580 2159/5034/582 2183/5050/595 +f 2156/5028/576 2180/5051/596 2179/5057/602 +f 2163/5043/589 2187/5052/597 2186/5060/605 +f 2178/5058/603 2179/5057/602 2191/2948/606 +f 2179/5057/602 2180/5051/596 2192/1581/608 +f 2180/5051/596 2181/5055/600 2193/1584/609 +f 2182/5054/599 2194/1587/611 2193/1589/609 +f 2182/5054/599 2183/5050/595 2195/2952/610 +f 2184/5049/594 2196/1593/613 2195/1595/610 +f 2184/5049/594 2185/5059/604 2197/2954/612 +f 2186/5061/605 2198/2955/614 2197/1599/612 +f 2187/5052/597 2199/2956/615 2198/1602/614 +f 2188/5056/601 2200/2957/616 2199/1605/615 +f 2177/5053/598 2189/1608/617 2200/1610/616 +f 2177/5053/598 2178/5058/603 2190/2959/607 +f 2208/1598/618 2209/1597/619 2221/5062/619 +f 2206/2951/620 2218/6112/620 2217/5064/621 +f 2201/2958/622 2214/6113/622 2224/5065/623 +f 2202/1580/624 2203/1579/625 2215/5066/625 +f 2210/1600/289 2222/6114/289 2221/5068/619 +f 2206/1592/620 2207/1591/626 2219/5069/626 +f 2204/2949/287 2216/6115/287 2215/5071/625 +f 2210/1604/289 2211/1603/627 2223/5072/627 +f 2207/1594/626 2208/2953/618 2220/5074/618 +f 2205/2950/621 2217/6116/621 2216/5076/287 +f 2212/1606/623 2224/6117/623 2223/5077/627 +f 2202/1612/624 2213/6118/624 2214/5078/622 +f 2176/5079/623 2236/2970/623 2225/1620/622 +f 2167/5025/625 2166/6110/624 2226/1623/624 +f 2173/5039/619 2233/2972/619 2234/1626/289 +f 2170/5033/620 2230/2973/620 2231/1629/626 +f 2167/5027/625 2227/1632/625 2228/1634/287 +f 2175/5042/627 2174/6111/289 2234/1635/289 +f 2172/5083/618 2171/5035/626 2231/2976/626 +f 2168/5029/287 2228/1641/287 2229/1643/621 +f 2175/5044/627 2235/2978/627 2236/1644/623 +f 2165/5086/622 2225/1647/622 2226/1649/624 +f 2172/5087/618 2232/1650/618 2233/1652/619 +f 2169/5031/621 2229/2969/621 2230/1617/620 +f 2242/5089/620 2254/1669/620 2255/1656/626 +f 2239/5091/625 2251/1674/625 2252/1679/287 +f 2247/5093/627 2246/6119/289 2258/1653/289 +f 2243/5090/626 2255/1656/626 2256/1658/618 +f 2241/5095/621 2240/5092/287 2252/1679/287 +f 2247/5093/627 2259/1655/627 2260/1663/623 +f 2237/5097/622 2249/1664/622 2250/1666/624 +f 2244/5094/618 2256/1658/618 2257/1668/619 +f 2242/5089/620 2241/5095/621 2253/1659/621 +f 2248/5096/623 2260/1663/623 2249/1664/622 +f 2239/5091/625 2238/5098/624 2250/1666/624 +f 2245/5099/619 2257/1668/619 2258/1675/289 +f 2266/2988/620 2278/6120/620 2279/5101/626 +f 2264/1681/287 2263/1680/625 2275/5102/625 +f 2271/1654/627 2270/2981/289 2282/5104/289 +f 2267/2982/626 2279/6121/626 2280/5106/618 +f 2264/1660/287 2276/6122/287 2277/5107/621 +f 2272/1662/623 2271/2983/627 2283/5108/627 +f 2262/2984/622 2274/6123/622 2273/5110/624 +f 2268/2985/618 2280/6124/618 2281/5111/619 +f 2265/1670/621 2277/6125/621 2278/5112/620 +f 2262/1672/622 2272/2986/623 2284/5113/623 +f 2261/2987/624 2273/6126/624 2275/5115/625 +f 2269/1676/619 2281/6127/619 2282/5116/289 +f 2298/5117/628 2299/5171/631 2287/5118/629 +f 2299/5120/631 2300/5174/841 2288/5121/632 +f 2288/5121/632 2300/5176/841 2301/5122/633 +f 2289/5123/634 2301/6128/633 2302/5124/635 +f 2302/5126/635 2303/5173/844 2291/5127/637 +f 2291/5127/637 2303/6129/844 2304/5128/638 +f 2304/5130/638 2305/5179/641 2293/5131/640 +f 2305/5132/641 2306/5172/643 2294/5133/642 +f 2306/5134/643 2307/5175/645 2295/5135/644 +f 2307/5137/645 2308/5177/843 2296/5138/646 +f 2296/5138/646 2308/5170/843 2297/5139/647 +f 2297/5141/647 2298/5178/628 2286/5119/630 +f 2292/5129/639 2316/5147/654 2315/5142/649 +f 2288/5121/632 2289/5123/634 2313/5143/650 +f 2296/5138/646 2320/5148/655 2319/5145/652 +f 2286/5119/630 2310/5150/657 2309/5146/653 +f 2293/5131/640 2317/5151/658 2316/5147/654 +f 2290/5125/636 2314/5152/659 2313/5143/650 +f 2285/5140/648 2309/5146/653 2320/5148/655 +f 2286/5119/630 2287/5118/629 2311/5149/656 +f 2294/5133/642 2318/5154/660 2317/5151/658 +f 2290/5125/636 2291/5127/637 2315/5142/649 +f 2288/5121/632 2312/5144/651 2311/5149/656 +f 2295/5135/644 2319/5145/652 2318/5153/660 +f 2310/5150/657 2311/5149/656 2323/1685/661 +f 2312/5144/651 2324/1688/664 2323/1690/661 +f 2312/5144/651 2313/5143/650 2325/1691/663 +f 2314/5152/659 2326/1694/666 2325/1696/663 +f 2314/5152/659 2315/5142/649 2327/3002/665 +f 2315/5142/649 2316/5147/654 2328/1700/667 +f 2316/5147/654 2317/5151/658 2329/3004/668 +f 2318/5154/660 2330/3005/669 2329/1706/668 +f 2319/5145/652 2331/3006/670 2330/1709/669 +f 2320/5148/655 2332/3007/671 2331/1712/670 +f 2309/5146/653 2321/3008/672 2332/1715/671 +f 2310/5150/657 2322/3009/662 2321/1718/672 +f 2340/1705/673 2341/1704/674 2353/5155/674 +f 2338/3001/675 2350/6130/675 2349/5157/676 +f 2333/1716/677 2346/6131/677 2356/5158/678 +f 2335/2998/679 2347/6132/679 2345/5159/680 +f 2342/1707/289 2354/6133/289 2353/5160/674 +f 2339/1698/681 2351/6134/681 2350/5161/675 +f 2336/2999/287 2348/6135/287 2347/5162/679 +f 2343/1710/682 2355/6136/682 2354/5163/289 +f 2339/1701/681 2340/3003/673 2352/5164/673 +f 2336/1692/287 2337/3000/676 2349/5166/676 +f 2344/1713/678 2356/6137/678 2355/5168/682 +f 2334/1719/680 2345/6138/680 2346/5169/677 +f 2308/5170/678 2368/3020/678 2357/1727/677 +f 2299/5171/679 2298/5117/680 2358/1730/680 +f 2305/5132/674 2365/3022/674 2366/1733/289 +f 2303/5173/681 2302/5126/675 2362/3023/675 +f 2300/5174/287 2299/5120/679 2359/3024/679 +f 2306/5134/289 2366/1742/289 2367/1744/682 +f 2304/5128/673 2303/6129/681 2363/1745/681 +f 2300/5176/287 2360/1748/287 2361/1750/676 +f 2307/5137/682 2367/3028/682 2368/1751/678 +f 2297/5141/677 2357/1754/677 2358/1756/680 +f 2304/5130/673 2364/1757/673 2365/1759/674 +f 2302/5124/675 2301/6128/676 2361/3019/676 +f 2375/5180/681 2374/5189/675 2386/1776/675 +f 2372/5181/287 2371/5191/679 2383/1781/679 +f 2378/5182/289 2390/1760/289 2391/1762/682 +f 2375/5180/681 2387/1763/681 2388/1765/673 +f 2372/5181/287 2384/1766/287 2385/1768/676 +f 2380/5186/678 2379/5183/682 2391/1762/682 +f 2370/5187/680 2369/5190/677 2381/1771/677 +f 2376/5184/673 2388/1765/673 2389/1775/674 +f 2374/5189/675 2373/5185/676 2385/1768/676 +f 2380/5186/678 2392/1770/678 2381/1771/677 +f 2371/5191/679 2370/5187/680 2382/1773/680 +f 2378/5192/289 2377/5188/674 2389/1775/674 +f 2399/1786/681 2398/1785/675 2410/5193/675 +f 2395/1787/679 2407/6139/679 2408/5195/287 +f 2402/3031/289 2414/6140/289 2415/5196/682 +f 2400/1764/673 2399/3032/681 2411/5197/681 +f 2396/3033/287 2408/6141/287 2409/5199/676 +f 2403/3034/682 2415/6142/682 2416/5200/678 +f 2394/3035/677 2406/6143/677 2405/5201/680 +f 2400/3036/673 2412/6144/673 2413/5202/674 +f 2397/1777/676 2409/6145/676 2410/5203/675 +f 2394/1779/677 2404/3037/678 2416/5204/678 +f 2393/3038/680 2405/6146/680 2407/5206/679 +f 2401/1783/674 2413/6147/674 2414/5207/289 +f 2418/5208/683 2430/5265/705 2431/5209/684 +f 2431/5211/684 2432/5268/687 2420/5212/686 +f 2432/5213/687 2433/5271/689 2421/5214/688 +f 2433/5215/689 2434/5273/691 2422/5216/690 +f 2434/5217/691 2435/5267/693 2423/5218/692 +f 2435/5219/693 2436/5270/695 2424/5220/694 +f 2436/5221/695 2437/5272/697 2425/5222/696 +f 2437/5223/697 2438/5266/831 2426/5224/698 +f 2426/5225/698 2438/5269/831 2439/5226/699 +f 2427/5227/700 2439/6148/699 2440/5228/701 +f 2428/5229/702 2440/5264/701 2429/5230/703 +f 2417/5231/704 2429/6149/703 2430/5232/705 +f 2424/5220/694 2448/5238/711 2447/5233/706 +f 2421/5214/688 2445/5239/712 2444/5234/707 +f 2428/5229/702 2452/5240/713 2451/5235/708 +f 2418/5208/683 2442/5241/714 2441/5236/709 +f 2424/5220/694 2425/5222/696 2449/5237/710 +f 2422/5216/690 2446/5242/715 2445/5239/712 +f 2428/5229/702 2417/5231/704 2441/5236/709 +f 2419/5210/685 2443/5243/716 2442/5241/714 +f 2426/5224/698 2450/6150/717 2449/5237/710 +f 2422/5216/690 2423/5218/692 2447/5233/706 +f 2419/5210/685 2420/5212/686 2444/5234/707 +f 2427/5227/700 2451/5235/708 2450/5244/717 +f 2442/5241/714 2443/5243/716 2455/1792/718 +f 2444/5234/707 2456/1795/721 2455/1797/718 +f 2444/5234/707 2445/5239/712 2457/1798/720 +f 2446/5242/715 2458/1801/723 2457/1803/720 +f 2446/5242/715 2447/5233/706 2459/1804/722 +f 2448/5238/711 2460/1807/724 2459/1809/722 +f 2449/5237/710 2461/3054/726 2460/1810/724 +f 2449/5237/710 2450/6150/717 2462/3055/725 +f 2451/5235/708 2463/3056/727 2462/1816/725 +f 2452/5240/713 2464/1819/728 2463/1821/727 +f 2441/5236/709 2453/3058/729 2464/1822/728 +f 2441/5236/709 2442/5241/714 2454/3059/719 +f 2472/1812/730 2473/1811/731 2485/5245/731 +f 2470/3051/732 2482/6151/732 2481/5247/733 +f 2465/1823/734 2478/6152/734 2488/5248/735 +f 2466/1793/736 2467/3048/737 2479/5249/737 +f 2474/1814/291 2486/6153/291 2485/5251/731 +f 2470/1805/732 2471/3052/738 2483/5252/738 +f 2468/3049/293 2480/6154/293 2479/5254/737 +f 2474/1818/291 2475/1817/739 2487/5255/739 +f 2471/1808/738 2472/3053/730 2484/5257/730 +f 2469/3050/733 2481/6155/733 2480/5259/293 +f 2475/1820/739 2476/3057/735 2488/5260/735 +f 2465/1827/734 2466/1826/736 2477/5262/736 +f 2440/5264/735 2500/1834/735 2489/1836/734 +f 2430/5265/736 2490/3071/736 2491/1837/737 +f 2438/5266/291 2437/5223/731 2497/3072/731 +f 2434/5217/732 2494/1843/732 2495/1845/738 +f 2432/5268/293 2431/5211/737 2491/3074/737 +f 2438/5269/291 2498/1849/291 2499/1851/739 +f 2436/5270/730 2435/5219/738 2495/3076/738 +f 2433/5271/733 2432/5213/293 2492/3077/293 +f 2440/5228/735 2439/6148/739 2499/3078/739 +f 2430/5232/736 2429/6149/734 2489/3079/734 +f 2436/5221/730 2496/3080/730 2497/1864/731 +f 2434/5273/732 2433/5215/733 2493/1831/733 +f 2506/5274/732 2518/1884/732 2519/1870/738 +f 2503/5276/737 2515/1890/737 2516/1896/293 +f 2510/5278/291 2522/3081/291 2523/1867/739 +f 2507/5275/738 2519/1870/738 2520/1872/730 +f 2505/5281/733 2504/5277/293 2516/1896/293 +f 2512/5282/735 2511/5279/739 2523/1867/739 +f 2502/5283/736 2501/5285/734 2513/1888/734 +f 2509/5284/731 2508/5280/730 2520/1872/730 +f 2505/5281/733 2517/1873/733 2518/1884/732 +f 2512/5282/735 2524/1876/735 2513/1888/734 +f 2503/5276/737 2502/5283/736 2514/1879/736 +f 2509/5284/731 2521/1883/731 2522/1891/291 +f 2530/3086/732 2542/6156/732 2543/5287/738 +f 2527/3087/737 2539/6157/737 2540/5288/293 +f 2534/1868/291 2546/6158/291 2547/5289/739 +f 2531/3082/738 2543/6159/738 2544/5290/730 +f 2528/1874/293 2540/6160/293 2541/5291/733 +f 2535/1877/739 2547/6161/739 2548/5292/735 +f 2526/1880/734 2538/6162/734 2537/5293/736 +f 2532/3083/730 2544/6163/730 2545/5294/731 +f 2530/1886/732 2529/1885/733 2541/5295/733 +f 2526/1887/734 2536/3084/735 2548/5297/735 +f 2525/3085/736 2537/6164/736 2539/5299/737 +f 2534/1893/291 2533/1892/731 2545/5300/731 +f 2562/5302/740 2563/5356/743 2551/5303/741 +f 2563/5305/743 2564/5359/833 2552/5306/744 +f 2552/5306/744 2564/5362/833 2565/5307/745 +f 2553/5308/746 2565/6165/745 2566/5309/747 +f 2566/5311/747 2567/5358/836 2555/5312/749 +f 2555/5312/749 2567/5361/836 2568/5313/750 +f 2568/5315/750 2569/5365/753 2557/5316/752 +f 2569/5317/753 2570/5357/755 2558/5318/754 +f 2570/5319/755 2571/5360/757 2559/5320/756 +f 2571/5322/757 2572/5363/834 2560/5323/758 +f 2560/5323/758 2572/6166/834 2561/5324/759 +f 2561/5326/759 2562/5364/740 2550/5304/742 +f 2556/5314/751 2580/5331/765 2579/5327/761 +f 2553/5308/746 2577/5332/766 2576/5328/762 +f 2560/5323/758 2584/5333/767 2583/5329/763 +f 2550/5304/742 2574/5335/769 2573/5330/764 +f 2557/5316/752 2581/5336/770 2580/5331/765 +f 2554/5310/748 2578/5337/771 2577/5332/766 +f 2560/5323/758 2549/5325/760 2573/5330/764 +f 2550/5304/742 2551/5303/741 2575/5334/768 +f 2558/5318/754 2582/6167/772 2581/5336/770 +f 2554/5310/748 2555/5312/749 2579/5327/761 +f 2552/5306/744 2576/5328/762 2575/5334/768 +f 2559/5320/756 2583/5329/763 2582/5338/772 +f 2575/5334/768 2587/3097/775 2586/1900/773 +f 2575/5334/768 2576/5328/762 2588/1903/774 +f 2576/5328/762 2577/5332/766 2589/1906/776 +f 2577/5332/766 2578/5337/771 2590/1909/777 +f 2579/5327/761 2591/3101/778 2590/1912/777 +f 2580/5331/765 2592/1915/779 2591/1917/778 +f 2581/5336/770 2593/3103/781 2592/1918/779 +f 2581/5336/770 2582/6167/772 2594/3104/780 +f 2582/5338/772 2583/5329/763 2595/1924/782 +f 2584/5333/767 2596/1927/783 2595/1929/782 +f 2573/5330/764 2585/1930/784 2596/1932/783 +f 2573/5330/764 2574/5335/769 2586/3108/773 +f 2604/1920/785 2605/1919/786 2617/5339/786 +f 2602/3100/787 2614/6168/787 2613/5341/788 +f 2597/3107/789 2610/6169/789 2620/5342/790 +f 2599/1901/791 2611/6170/791 2609/5343/792 +f 2606/1922/291 2618/6171/291 2617/5344/786 +f 2602/1914/787 2603/1913/793 2615/5345/793 +f 2599/1904/791 2600/3098/293 2612/5347/293 +f 2606/1925/291 2607/3105/794 2619/5349/794 +f 2604/3102/785 2616/6172/785 2615/5351/793 +f 2601/3099/788 2613/6173/788 2612/5352/293 +f 2608/3106/790 2620/6174/790 2619/5353/794 +f 2597/1935/789 2598/1934/792 2609/5354/792 +f 2561/5324/789 2572/6166/790 2632/3119/790 +f 2562/5302/792 2622/3120/792 2623/1945/791 +f 2569/5317/786 2629/3121/786 2630/1948/291 +f 2567/5358/793 2566/5311/787 2626/3122/787 +f 2564/5359/293 2563/5305/791 2623/1954/791 +f 2571/5360/794 2570/5319/291 2630/1957/291 +f 2567/5361/793 2627/1960/793 2628/1962/785 +f 2564/5362/293 2624/1963/293 2625/1965/788 +f 2572/5363/790 2571/5322/794 2631/3127/794 +f 2561/5326/789 2621/1969/789 2622/1971/792 +f 2568/5315/785 2628/1972/785 2629/1974/786 +f 2566/5309/787 2565/6165/788 2625/3118/788 +f 2638/5366/787 2650/1992/787 2651/1978/793 +f 2635/5368/791 2647/1998/791 2648/1981/293 +f 2642/5370/291 2654/1975/291 2655/1977/794 +f 2639/5367/793 2651/1978/793 2652/1980/785 +f 2636/5369/293 2648/1981/293 2649/1983/788 +f 2644/5374/790 2643/5371/794 2655/1977/794 +f 2633/5375/789 2645/1996/789 2646/1987/792 +f 2640/5372/785 2652/1980/785 2653/1991/786 +f 2638/5366/787 2637/5373/788 2649/1983/788 +f 2633/5375/789 2644/5374/790 2656/1984/790 +f 2634/5376/792 2646/1987/792 2647/1998/791 +f 2642/5378/291 2641/5377/786 2653/1991/786 +f 2662/2002/787 2674/6175/787 2675/5379/793 +f 2660/2004/293 2659/3136/791 2671/5380/791 +f 2666/3130/291 2678/6176/291 2679/5382/794 +f 2663/3131/793 2675/6177/793 2676/5383/785 +f 2660/3132/293 2672/6178/293 2673/5384/788 +f 2667/1985/794 2679/6179/794 2680/5385/790 +f 2657/1989/792 2658/1988/789 2670/5386/789 +f 2664/3133/785 2676/6180/785 2677/5388/786 +f 2662/1994/787 2661/1993/788 2673/5389/788 +f 2658/1995/789 2668/3134/790 2680/5391/790 +f 2657/3135/792 2669/6181/792 2671/5393/791 +f 2666/2001/291 2665/2000/786 2677/5394/786 +f 2031/1543/280 2020/6182/280 2019/5396/1 +f 2057/5397/279 2692/2011/279 2681/2013/1 +f 2066/5398/281 2067/4939/280 2682/2014/280 +f 2060/4932/285 2689/3149/285 2690/2017/6 +f 2062/5400/2 2063/4935/284 2686/2020/284 +f 2066/4938/281 2683/3151/281 2684/2023/3 +f 2059/4931/6 2690/2026/6 2691/2028/278 +f 2062/5403/2 2687/3153/2 2688/2029/282 +f 2065/4937/3 2684/2032/3 2685/2034/283 +f 2058/5405/278 2691/3155/278 2692/2035/279 +f 2068/4928/1 2681/2038/1 2682/2040/280 +f 2061/4933/282 2688/2041/282 2689/2043/285 +f 2064/4936/283 2685/3146/283 2686/2008/284 +f 2698/5409/284 2710/2061/284 2711/2071/2 +f 2695/5411/281 2707/2066/281 2708/2050/3 +f 2702/5413/6 2714/2044/6 2715/2046/278 +f 2699/5410/2 2711/2071/2 2712/2047/282 +f 2696/5412/3 2708/2050/3 2709/2052/283 +f 2703/5414/278 2715/2046/278 2716/2053/279 +f 2693/5418/1 2705/2056/1 2706/2058/280 +f 2700/5415/282 2712/2047/282 2713/2060/285 +f 2697/5416/283 2709/2052/283 2710/2061/284 +f 2704/5417/279 2716/2053/279 2705/2056/1 +f 2694/5419/280 2706/2058/280 2707/2066/281 +f 2701/5420/285 2713/2060/285 2714/2067/6 +f 2722/3164/284 2734/6183/284 2735/5422/2 +f 2719/2072/281 2731/6184/281 2732/5423/3 +f 2726/3158/6 2738/6185/6 2739/5424/278 +f 2723/2048/2 2735/6186/2 2736/5425/282 +f 2720/3159/3 2732/6187/3 2733/5426/283 +f 2727/2054/278 2739/6188/278 2740/5427/279 +f 2718/3160/1 2730/6189/1 2729/5428/280 +f 2724/3161/282 2736/6190/282 2737/5429/285 +f 2721/2062/283 2733/6191/283 2734/5430/284 +f 2718/2064/1 2728/3162/279 2740/5431/279 +f 2717/3163/280 2729/6192/280 2731/5433/281 +f 2725/2068/285 2737/6193/285 2738/5434/6 +f 2752/5435/292 2764/2080/292 2753/2082/5 +f 2742/5437/290 2754/2083/290 2755/2085/293 +f 2749/5439/291 2761/2105/291 2762/2086/6 +f 2746/5441/288 2758/2079/288 2759/2089/4 +f 2743/5438/293 2755/2085/293 2756/2092/3 +f 2750/5444/6 2762/2095/6 2763/2097/289 +f 2747/5442/4 2759/2089/4 2760/2099/286 +f 2744/5443/3 2756/2092/3 2757/2077/287 +f 2751/5445/289 2763/2097/289 2764/2080/292 +f 2742/5437/290 2741/5436/5 2753/2082/5 +f 2749/5439/291 2748/5446/286 2760/2099/286 +f 2746/5441/288 2745/5447/287 2757/2077/287 +f 2770/5448/288 2782/2127/288 2783/2111/4 +f 2767/5450/293 2779/2131/293 2780/2114/3 +f 2774/5452/6 2786/2108/6 2787/2110/289 +f 2771/5449/4 2783/2111/4 2784/2113/286 +f 2768/5451/3 2780/2114/3 2781/2116/287 +f 2775/5453/289 2787/2110/289 2788/2117/292 +f 2765/5457/5 2777/2129/5 2778/2120/290 +f 2773/5459/291 2772/5454/286 2784/2113/286 +f 2769/5455/287 2781/2116/287 2782/2127/288 +f 2765/5457/5 2776/5456/292 2788/2117/292 +f 2766/5458/290 2778/2120/290 2779/2131/293 +f 2773/5459/291 2785/2123/291 2786/2132/6 +f 2794/2135/288 2806/6194/288 2807/5461/4 +f 2791/2137/293 2803/6195/293 2804/5462/3 +f 2798/3180/6 2810/6196/6 2811/5463/289 +f 2795/3181/4 2807/6197/4 2808/5464/286 +f 2792/3182/3 2804/6198/3 2805/5465/287 +f 2799/2118/289 2811/6199/289 2812/5466/292 +f 2790/2121/5 2802/6200/5 2801/5467/290 +f 2796/2124/286 2808/6201/286 2809/5468/291 +f 2793/3183/287 2805/6202/287 2806/5469/288 +f 2800/3184/292 2812/6203/292 2802/5470/5 +f 2789/3185/290 2801/6204/290 2803/5471/293 +f 2797/2133/291 2809/6205/291 2810/5472/6 +f 2814/5473/795 2822/5485/807 2823/5474/796 +f 2836/5476/798 2820/5486/808 2817/5477/799 +f 2815/5475/797 2823/5474/796 2824/5479/801 +f 2835/5481/803 2834/5500/811 2818/5482/804 +f 2813/5484/806 2821/5489/809 2822/5485/807 +f 2835/5481/803 2819/5483/805 2820/5486/808 +f 2813/5487/806 2816/5480/802 2824/5479/801 +f 2821/5489/809 2825/5494/512 2826/5490/810 +f 2823/5474/796 2822/5485/807 2826/5490/810 +f 2824/5479/801 2823/5474/796 2827/5491/514 +f 2824/5479/801 2828/5492/513 2825/5493/512 +f 2825/5494/512 2829/5499/507 2830/5495/510 +f 2827/5491/514 2826/5490/810 2830/5495/510 +f 2828/5492/513 2827/5491/514 2831/5496/509 +f 2828/5492/513 2832/5497/508 2829/5498/507 +f 2829/5499/507 2833/5501/800 2834/5500/811 +f 2831/5496/509 2830/5495/510 2834/5500/811 +f 2831/5496/509 2835/5481/803 2836/5476/798 +f 2832/5497/508 2836/5476/798 2833/5478/800 +f 2833/5501/800 2817/6206/799 2818/5482/804 +f 2857/5502/812 2841/6207/819 2842/5503/813 +f 2859/5505/815 2858/5504/814 2842/5503/813 +f 2859/5505/815 2843/5506/816 2844/5507/817 +f 2860/5508/818 2844/5507/817 2841/5509/819 +f 2838/5511/820 2837/6208/827 2845/5512/821 +f 2838/5511/820 2846/5513/822 2847/5514/823 +f 2839/5515/824 2847/5514/823 2848/5516/825 +f 2837/5518/827 2840/5517/826 2848/5516/825 +f 2845/5512/821 2849/6209/486 2850/5520/489 +f 2846/5513/822 2850/5520/489 2851/5521/488 +f 2847/5514/823 2851/5521/488 2852/5522/487 +f 2845/5519/821 2848/5516/825 2852/5522/487 +f 2850/5520/489 2849/6209/486 2853/5524/828 +f 2850/5520/489 2854/5525/485 2855/5526/484 +f 2852/5522/487 2851/5521/488 2855/5526/484 +f 2849/5523/486 2852/5522/487 2856/5527/483 +f 2854/5525/485 2853/5524/828 2857/5502/812 +f 2854/5525/485 2858/5504/814 2859/5505/815 +f 2855/5526/484 2859/5505/815 2860/5508/818 +f 2853/5528/828 2856/5527/483 2860/5508/818 +f 2862/5529/523 2861/6210/524 2881/5530/522 +f 2883/5532/527 2863/6211/528 2862/5529/523 +f 2864/5533/526 2863/6211/528 2883/5532/527 +f 2861/5535/524 2864/5533/526 2884/5534/525 +f 2870/5537/516 2869/5546/517 2865/5538/515 +f 2871/5540/520 2870/5537/516 2866/5539/521 +f 2872/5542/518 2871/5540/520 2867/5541/519 +f 2865/5544/515 2869/5549/517 2872/5542/518 +f 2870/5537/516 2874/5551/536 2873/5545/533 +f 2875/5547/535 2874/5551/536 2870/5537/516 +f 2876/5548/537 2875/5547/535 2871/5540/520 +f 2869/5549/517 2873/5554/533 2876/5548/537 +f 2878/5550/529 2877/5555/534 2873/5545/533 +f 2875/5547/535 2879/5556/532 2878/5550/529 +f 2880/5552/531 2879/5556/532 2875/5547/535 +f 2877/5553/534 2880/5552/531 2876/5548/537 +f 2882/5531/530 2881/5530/522 2877/5555/534 +f 2879/5556/532 2883/5532/527 2882/5531/530 +f 2884/5534/525 2883/5532/527 2879/5556/532 +f 2881/5536/522 2884/5534/525 2880/5552/531 +f 2898/5557/723 2899/5613/720 2887/5558/712 +f 2899/5560/720 2900/5616/721 2888/5561/707 +f 2888/5561/707 2900/6212/721 2901/5562/830 +f 2889/5563/716 2901/5621/830 2902/5564/719 +f 2902/5566/719 2903/5615/729 2891/5567/709 +f 2903/5568/729 2904/5617/728 2892/5569/713 +f 2892/5569/713 2904/5620/728 2905/5570/727 +f 2905/5572/727 2906/5614/725 2894/5573/717 +f 2894/5574/717 2906/6213/725 2907/5575/726 +f 2907/5577/726 2908/5618/724 2896/5578/711 +f 2896/5578/711 2908/5612/724 2897/5579/722 +f 2885/5580/706 2897/5619/722 2898/5581/723 +f 2892/5569/713 2916/5589/702 2915/5582/704 +f 2888/5561/707 2889/5563/716 2913/5583/685 +f 2895/5576/710 2896/5578/711 2920/5585/694 +f 2885/5580/706 2886/5559/715 2910/5587/690 +f 2893/5571/708 2917/5592/700 2916/5589/702 +f 2890/5565/714 2914/5593/683 2913/5583/685 +f 2896/5578/711 2885/5580/706 2909/5588/692 +f 2886/5559/715 2887/5558/712 2911/5590/688 +f 2893/5571/708 2894/5573/717 2918/5591/698 +f 2890/5565/714 2891/5567/709 2915/5582/704 +f 2888/5561/707 2912/5584/686 2911/5590/688 +f 2895/5576/710 2919/5586/696 2918/5594/698 +f 2911/5590/688 2923/3195/689 2922/2142/691 +f 2911/5590/688 2912/5584/686 2924/2145/687 +f 2912/5584/686 2913/5583/685 2925/2148/684 +f 2914/5593/683 2926/2151/705 2925/2153/684 +f 2914/5593/683 2915/5582/704 2927/3199/703 +f 2916/5589/702 2928/2157/701 2927/2159/703 +f 2916/5589/702 2917/5592/700 2929/3201/699 +f 2918/5591/698 2930/3202/831 2929/2163/699 +f 2919/5586/696 2931/2166/697 2930/2168/831 +f 2920/5585/694 2932/2169/695 2931/2171/697 +f 2909/5588/692 2921/3205/693 2932/2172/695 +f 2909/5588/692 2910/5587/690 2922/3206/691 +f 2940/2162/735 2941/2161/739 2953/5595/739 +f 2938/3198/736 2950/6214/736 2949/5597/737 +f 2933/2173/738 2946/6215/738 2956/5598/730 +f 2935/2143/733 2947/6216/733 2945/5599/732 +f 2942/2164/291 2954/6217/291 2953/5600/739 +f 2938/2156/736 2939/2155/734 2951/5601/734 +f 2935/2146/733 2936/3196/293 2948/5603/293 +f 2943/3203/731 2955/6218/731 2954/5605/291 +f 2939/2158/734 2940/3200/735 2952/5606/735 +f 2937/3197/737 2949/6219/737 2948/5608/293 +f 2943/2170/731 2944/3204/730 2956/5609/730 +f 2934/2176/732 2945/6220/732 2946/5611/738 +f 2908/5612/730 2968/2184/730 2957/2186/738 +f 2899/5613/733 2898/5557/732 2958/2187/732 +f 2905/5572/739 2965/3219/739 2966/2190/291 +f 2903/5615/734 2902/5566/736 2962/3220/736 +f 2900/5616/293 2899/5560/733 2959/3221/733 +f 2907/5575/731 2906/6213/291 2966/2199/291 +f 2904/5617/735 2903/5568/734 2963/3223/734 +f 2901/5562/737 2900/6212/293 2960/2205/293 +f 2908/5618/730 2907/5577/731 2967/3225/731 +f 2897/5619/738 2957/2211/738 2958/2213/732 +f 2904/5620/735 2964/3227/735 2965/2214/739 +f 2901/5621/737 2961/3216/737 2962/2181/736 +f 2974/5622/736 2986/2234/736 2987/2242/734 +f 2971/5624/733 2983/2237/733 2984/2244/293 +f 2979/5626/731 2978/6221/291 2990/3228/291 +f 2976/5627/735 2975/5623/734 2987/2242/734 +f 2973/5628/737 2972/5625/293 2984/2244/293 +f 2980/5629/730 2979/5626/731 2991/2217/731 +f 2969/5630/738 2981/2228/738 2982/2230/732 +f 2976/5627/735 2988/2220/735 2989/2232/739 +f 2974/5622/736 2973/5628/737 2985/2223/737 +f 2980/5629/730 2992/2227/730 2981/2228/738 +f 2971/5624/733 2970/5631/732 2982/2230/732 +f 2977/5632/739 2989/2232/739 2990/2238/291 +f 2998/3235/736 3010/6222/736 3011/5634/734 +f 2995/3236/733 3007/6223/733 3008/5635/293 +f 3003/2219/731 3002/2218/291 3014/5636/291 +f 2999/2221/734 3011/6224/734 3012/5638/735 +f 2996/2224/293 3008/6225/293 3009/5639/737 +f 3003/3229/731 3015/6226/731 3016/5640/730 +f 2993/2229/732 2994/3230/738 3006/5641/738 +f 3000/3231/735 3012/6227/735 3013/5643/739 +f 2998/2233/736 2997/3232/737 3009/5644/737 +f 2994/2235/738 3004/3233/730 3016/5646/730 +f 2993/3234/732 3005/6228/732 3007/5648/733 +f 3001/2239/739 3013/6229/739 3014/5649/291 +f 3018/5650/771 3030/5707/777 3031/5651/832 +f 3019/5652/766 3031/6230/832 3032/5653/774 +f 3020/5654/762 3032/5712/774 3033/5655/775 +f 3021/5656/768 3033/5716/775 3034/5657/773 +f 3034/5659/773 3035/5709/784 3023/5660/764 +f 3035/5661/784 3036/5711/783 3024/5662/767 +f 3036/5663/783 3037/5715/782 3025/5664/763 +f 3037/5665/782 3038/5708/780 3026/5666/772 +f 3038/5667/780 3039/5710/781 3027/5668/770 +f 3039/5670/781 3040/5713/779 3028/5671/765 +f 3028/5671/765 3040/5706/779 3029/5672/778 +f 3029/5674/778 3030/5714/777 3018/5650/771 +f 3024/5662/767 3048/5682/758 3047/5675/760 +f 3020/5654/762 3021/5656/768 3045/5676/741 +f 3027/5668/770 3028/5671/765 3052/5678/751 +f 3018/5650/771 3042/5684/748 3041/5680/749 +f 3024/5662/767 3025/5664/763 3049/5681/756 +f 3022/5658/769 3046/5686/742 3045/5676/741 +f 3028/5671/765 3017/5673/761 3041/5680/749 +f 3018/5650/771 3019/5652/766 3043/5683/746 +f 3025/5664/763 3026/5666/772 3050/5685/754 +f 3022/5658/769 3023/5660/764 3047/5675/760 +f 3020/5654/762 3044/5677/744 3043/5683/746 +f 3027/5668/770 3051/5679/752 3050/5687/754 +f 3042/5684/748 3043/5683/746 3055/2248/745 +f 3043/5683/746 3044/5677/744 3056/2251/833 +f 3044/5677/744 3045/5676/741 3057/2254/743 +f 3046/5686/742 3058/2257/740 3057/2259/743 +f 3047/5675/760 3059/3250/759 3058/2260/740 +f 3047/5675/760 3048/5682/758 3060/2263/834 +f 3048/5682/758 3049/5681/756 3061/3252/835 +f 3050/5685/754 3062/3253/755 3061/2269/835 +f 3051/5679/752 3063/3254/753 3062/2272/755 +f 3052/5678/751 3064/2275/750 3063/2277/753 +f 3052/5678/751 3041/5680/749 3053/3256/836 +f 3041/5680/749 3042/5684/748 3054/2281/747 +f 3072/2268/790 3073/2267/794 3085/5688/794 +f 3070/3249/792 3082/6231/792 3081/5690/791 +f 3065/2279/793 3078/6232/793 3088/5691/785 +f 3067/3246/788 3079/6233/788 3077/5692/787 +f 3073/2271/794 3074/2270/291 3086/5693/291 +f 3070/2262/792 3071/2261/789 3083/5695/789 +f 3068/3247/293 3080/6234/293 3079/5697/788 +f 3074/2274/291 3075/2273/786 3087/5698/786 +f 3072/3251/790 3084/6235/790 3083/5700/789 +f 3068/2255/293 3069/3248/791 3081/5701/791 +f 3076/3255/785 3088/6236/785 3087/5703/786 +f 3065/2282/793 3066/3257/787 3077/5704/787 +f 3040/5706/785 3100/3268/785 3089/2290/793 +f 3030/5707/787 3090/2293/787 3091/2295/788 +f 3038/5708/291 3037/5665/794 3097/2296/794 +f 3034/5659/792 3094/3271/792 3095/2299/789 +f 3032/5653/293 3031/6230/788 3091/3272/788 +f 3038/5667/291 3098/2305/291 3099/2307/786 +f 3036/5711/790 3035/5661/789 3095/2308/789 +f 3032/5712/293 3092/2311/293 3093/2313/791 +f 3039/5670/786 3099/3276/786 3100/2314/785 +f 3029/5674/793 3089/2317/793 3090/2319/787 +f 3036/5663/790 3096/2320/790 3097/2322/794 +f 3033/5716/791 3093/2287/791 3094/2289/792 +f 3107/5717/789 3106/5727/792 3118/2340/792 +f 3104/5718/293 3103/5728/788 3115/2343/788 +f 3110/5719/291 3122/3279/291 3123/2323/786 +f 3107/5717/789 3119/2326/789 3120/2328/790 +f 3104/5718/293 3116/2329/293 3117/2331/791 +f 3111/5720/786 3123/2323/786 3124/2333/785 +f 3101/5724/793 3113/2334/793 3114/2336/787 +f 3109/5726/794 3108/5721/790 3120/2328/790 +f 3105/5722/791 3117/2331/791 3118/2340/792 +f 3112/5723/785 3124/2333/785 3113/2334/793 +f 3102/5725/787 3114/2336/787 3115/2343/788 +f 3110/5729/291 3109/5726/794 3121/2338/794 +f 3131/2348/789 3130/2347/792 3142/5730/792 +f 3127/2349/788 3139/6237/788 3140/5732/293 +f 3134/2324/291 3146/6238/291 3147/5733/786 +f 3132/2327/790 3131/3280/789 3143/5734/789 +f 3128/3281/293 3140/6239/293 3141/5736/791 +f 3135/3282/786 3147/6240/786 3148/5737/785 +f 3125/2335/787 3126/3283/793 3138/5738/793 +f 3132/3284/790 3144/6241/790 3145/5740/794 +f 3130/2339/792 3129/3285/791 3141/5741/791 +f 3126/2341/793 3136/3286/785 3148/5743/785 +f 3125/3287/787 3137/6242/787 3139/5745/788 +f 3133/2345/794 3145/6243/794 3146/5746/291 +f 3150/5747/599 3162/6244/611 3163/5748/609 +f 3163/5750/609 3164/5803/608 3152/5751/596 +f 3152/5751/596 3164/6245/608 3165/5752/606 +f 3165/5754/606 3166/5808/607 3154/5755/603 +f 3166/5756/607 3167/5802/617 3155/5757/598 +f 3167/5758/617 3168/5805/616 3156/5759/601 +f 3168/5760/616 3169/5807/615 3157/5761/597 +f 3169/5762/615 3170/5801/614 3158/5763/605 +f 3158/5764/605 3170/5804/614 3171/5765/612 +f 3159/5766/604 3171/6246/612 3172/5767/613 +f 3160/5768/594 3172/6247/613 3161/5769/610 +f 3149/5770/595 3161/5806/610 3162/5771/611 +f 3156/5759/601 3180/5777/590 3179/5772/592 +f 3153/5753/602 3177/5778/575 3176/5773/576 +f 3160/5768/594 3184/5779/584 3183/5774/586 +f 3150/5747/599 3174/5780/580 3173/5775/582 +f 3156/5759/601 3157/5761/597 3181/5776/589 +f 3154/5755/603 3178/5781/573 3177/5778/575 +f 3160/5768/594 3149/5770/595 3173/5775/582 +f 3151/5749/600 3175/5782/578 3174/5780/580 +f 3158/5763/605 3182/6248/587 3181/5776/589 +f 3154/5755/603 3155/5757/598 3179/5772/592 +f 3151/5749/600 3152/5751/596 3176/5773/576 +f 3158/5764/605 3159/5766/604 3183/5774/586 +f 3175/5782/578 3187/2354/579 3186/2356/581 +f 3175/5782/578 3176/5773/576 3188/2357/577 +f 3176/5773/576 3177/5778/575 3189/2360/574 +f 3178/5781/573 3190/2363/593 3189/2365/574 +f 3178/5781/573 3179/5772/592 3191/3301/591 +f 3180/5777/590 3192/2369/837 3191/2371/591 +f 3181/5776/589 3193/2372/588 3192/2374/837 +f 3181/5776/589 3182/6248/587 3194/3304/838 +f 3183/5774/586 3195/3305/585 3194/2378/838 +f 3184/5779/584 3196/2381/839 3195/2383/585 +f 3173/5775/582 3185/2384/583 3196/2386/839 +f 3173/5775/582 3174/5780/580 3186/3308/581 +f 3204/2373/623 3205/3303/627 3217/5784/627 +f 3202/3300/624 3214/6249/624 3213/5786/625 +f 3197/3307/626 3210/6250/626 3220/5787/618 +f 3199/3297/621 3211/6251/621 3209/5788/620 +f 3206/2376/289 3218/6252/289 3217/5789/627 +f 3203/2367/622 3215/6253/622 3214/5790/624 +f 3199/2358/621 3200/3298/287 3212/5791/287 +f 3207/2379/619 3219/6254/619 3218/5793/289 +f 3203/2370/622 3204/3302/623 3216/5794/623 +f 3200/2361/287 3201/3299/625 3213/5796/625 +f 3208/3306/618 3220/6255/618 3219/5798/619 +f 3197/2389/626 3198/2388/620 3209/5799/620 +f 3161/5769/626 3172/6247/618 3232/2396/618 +f 3163/5748/621 3162/6244/620 3222/3320/620 +f 3170/5801/289 3169/5762/627 3229/3321/627 +f 3166/5756/624 3226/2405/624 3227/2407/622 +f 3163/5750/621 3223/2408/621 3224/2410/287 +f 3170/5804/289 3230/2411/289 3231/2413/619 +f 3167/5758/622 3227/3325/622 3228/2414/623 +f 3165/5752/625 3164/6245/287 3224/2417/287 +f 3172/5767/618 3171/6246/619 3231/2420/619 +f 3161/5806/626 3221/2423/626 3222/2425/620 +f 3168/5760/623 3228/3329/623 3229/2426/627 +f 3165/5754/625 3225/2393/625 3226/2395/624 +f 3238/5809/624 3250/2446/624 3251/2432/622 +f 3235/5811/621 3247/2451/621 3248/2457/287 +f 3243/5813/619 3242/6256/289 3254/3330/289 +f 3239/5810/622 3251/2432/622 3252/2434/623 +f 3237/5815/625 3236/5812/287 3248/2457/287 +f 3243/5813/619 3255/2429/619 3256/2439/618 +f 3233/5817/626 3245/2440/626 3246/2442/620 +f 3240/5814/623 3252/2434/623 3253/2443/627 +f 3238/5809/624 3237/5815/625 3249/2435/625 +f 3233/5817/626 3244/5816/618 3256/2439/618 +f 3235/5811/621 3234/5818/620 3246/2442/620 +f 3241/5819/627 3253/2443/627 3254/2452/289 +f 3262/3336/624 3274/6257/624 3275/5821/622 +f 3259/3337/621 3271/6258/621 3272/5822/287 +f 3266/2430/289 3278/6259/289 3279/5823/619 +f 3263/3331/622 3275/6260/622 3276/5824/623 +f 3260/2436/287 3272/6261/287 3273/5825/625 +f 3267/3332/619 3279/6262/619 3280/5826/618 +f 3258/3333/626 3270/6263/626 3269/5827/620 +f 3264/2444/623 3276/6264/623 3277/5828/627 +f 3262/2448/624 3261/2447/625 3273/5829/625 +f 3258/2449/626 3268/3334/618 3280/5831/618 +f 3257/3335/620 3269/6265/620 3271/5833/621 +f 3265/2453/627 3277/6266/627 3278/5834/289 +f 3282/5835/659 3294/5893/666 3295/5836/663 +f 3283/5837/650 3295/6267/663 3296/5838/664 +f 3284/5839/651 3296/5896/664 3297/5840/661 +f 3297/5842/661 3298/5899/662 3286/5843/657 +f 3286/5843/657 3298/6268/662 3299/5844/672 +f 3287/5845/653 3299/6269/672 3300/5846/671 +f 3288/5847/655 3300/5898/671 3301/5848/670 +f 3301/5850/670 3302/5894/669 3290/5851/660 +f 3302/5852/669 3303/5895/840 3291/5853/658 +f 3303/5855/840 3304/5897/667 3292/5856/654 +f 3292/5856/654 3304/5892/667 3293/5857/665 +f 3281/5858/649 3293/6270/665 3294/5859/666 +f 3288/5847/655 3312/5866/646 3311/5860/648 +f 3284/5839/651 3285/5841/656 3309/5861/629 +f 3292/5856/654 3316/5867/639 3315/5863/640 +f 3282/5835/659 3306/5868/636 3305/5864/637 +f 3288/5847/655 3289/5849/652 3313/5865/644 +f 3286/5843/657 3310/5870/630 3309/5861/629 +f 3281/5858/649 3305/5864/637 3316/5867/639 +f 3283/5837/650 3307/5871/634 3306/5868/636 +f 3289/5849/652 3290/5851/660 3314/5869/642 +f 3286/5843/657 3287/5845/653 3311/5860/648 +f 3283/5837/650 3284/5839/651 3308/5862/632 +f 3291/5853/658 3315/5863/640 3314/5872/642 +f 3307/5871/634 3319/2461/633 3318/2463/635 +f 3307/5871/634 3308/5862/632 3320/2464/841 +f 3308/5862/632 3309/5861/629 3321/2467/842 +f 3310/5870/630 3322/2470/628 3321/2472/842 +f 3311/5860/648 3323/3351/647 3322/2473/628 +f 3311/5860/648 3312/5866/646 3324/3352/843 +f 3312/5866/646 3313/5865/644 3325/3353/645 +f 3314/5869/642 3326/3354/643 3325/2482/645 +f 3315/5863/640 3327/2485/641 3326/2487/643 +f 3316/5867/639 3328/2488/638 3327/2490/641 +f 3305/5864/637 3317/2491/844 3328/2493/638 +f 3305/5864/637 3306/5868/636 3318/3358/635 +f 3336/2481/678 3337/2480/682 3349/5873/682 +f 3334/3350/680 3346/6271/680 3345/5875/679 +f 3329/3357/681 3342/6272/681 3352/5876/673 +f 3331/3347/676 3343/6273/676 3341/5877/675 +f 3338/2483/289 3350/6274/289 3349/5878/682 +f 3334/2475/680 3335/2474/677 3347/5879/677 +f 3331/2465/676 3332/3348/287 3344/5881/287 +f 3338/2486/289 3339/3355/674 3351/5883/674 +f 3335/2478/677 3336/2477/678 3348/5885/678 +f 3332/2468/287 3333/3349/679 3345/5887/679 +f 3340/3356/673 3352/6275/673 3351/5889/674 +f 3329/2496/681 3330/2495/675 3341/5890/675 +f 3304/5892/673 3364/3369/673 3353/2503/681 +f 3294/5893/675 3354/3370/675 3355/2506/676 +f 3301/5850/682 3361/3371/682 3362/2509/289 +f 3299/5844/677 3298/6268/680 3358/3372/680 +f 3296/5838/287 3295/6267/676 3355/3373/676 +f 3302/5852/289 3362/2518/289 3363/2520/674 +f 3300/5846/678 3299/6269/677 3359/3375/677 +f 3296/5896/287 3356/2524/287 3357/2526/679 +f 3303/5855/674 3363/3377/674 3364/2527/673 +f 3294/5859/675 3293/6270/681 3353/2530/681 +f 3300/5898/678 3360/2533/678 3361/2535/682 +f 3298/5899/680 3297/5842/679 3357/3368/679 +f 3370/5900/680 3382/2553/680 3383/2539/677 +f 3367/5902/676 3379/2560/676 3380/2542/287 +f 3374/5904/289 3386/2536/289 3387/2538/674 +f 3371/5901/677 3383/2539/677 3384/2541/678 +f 3368/5903/287 3380/2542/287 3381/2544/679 +f 3375/5905/674 3387/2538/674 3388/2545/673 +f 3365/5909/681 3377/2556/681 3378/2548/675 +f 3373/5911/682 3372/5906/678 3384/2541/678 +f 3370/5900/680 3369/5907/679 3381/2544/679 +f 3365/5909/681 3376/5908/673 3388/2545/673 +f 3366/5910/675 3378/2548/675 3379/2560/676 +f 3374/5912/289 3373/5911/682 3385/2552/682 +f 3394/2564/680 3406/6276/680 3407/5913/677 +f 3392/2567/287 3391/2566/676 3403/5914/676 +f 3398/3380/289 3410/6277/289 3411/5916/674 +f 3395/3381/677 3407/6278/677 3408/5917/678 +f 3392/3382/287 3404/6279/287 3405/5918/679 +f 3399/2546/674 3411/6280/674 3412/5919/673 +f 3389/2550/675 3390/2549/681 3402/5920/681 +f 3396/3383/678 3408/6281/678 3409/5922/682 +f 3394/2555/680 3393/2554/679 3405/5923/679 +f 3390/2558/681 3400/2557/673 3412/5925/673 +f 3389/3384/675 3401/6282/675 3403/5927/676 +f 3397/2562/682 3409/6283/682 3410/5928/289 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 56d368ce8..220cd1fdf 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -9,8 +9,8 @@ "block.minerOperate": {"category": "block", "sounds": [{"name": "block/minerOperate", "stream": true}]}, "block.assemblerOperate": {"category": "block", "sounds": [{"name": "block/assemblerOperate", "stream": true}]}, "block.chemplantOperate": {"category": "block", "sounds": [{"name": "block/chemplantOperate", "stream": true}]}, - "block.dieselOperate": {"category": "block", "sounds": [{"name": "block/dieselOperate", "stream": true}]}, - "block.igeneratorOperate": {"category": "block", "sounds": [{"name": "block/igeneratorOperate", "stream": true}]}, + "block.dieselOperate": {"category": "block", "sounds": [{"name": "block/dieselOperate", "stream": false}]}, + "block.igeneratorOperate": {"category": "block", "sounds": [{"name": "block/igeneratorOperate", "stream": false}]}, "block.turbofanOperate": {"category": "block", "sounds": [{"name": "block/turbofanOperate", "stream": true}]}, "block.pressOperate": {"category": "block", "sounds": [{"name": "block/pressOperate", "stream": false}]}, "block.broadcast1": {"category": "block", "sounds": [{"name": "block/broadcast1", "stream": true}]}, @@ -48,7 +48,7 @@ "block.warnOverspeed": {"category": "block", "sounds": [{"name": "block/warnOverspeed", "stream": false}]}, "block.boilerGroan": {"category": "block", "sounds": ["block/boilerGroan0", "block/boilerGroan1", "block/boilerGroan2"]}, "block.steamEngineOperate": {"category": "block", "sounds": [{"name": "block/steamEngineOperate", "stream": false}]}, - "block.turbinegasStartup": {"category": "block", "sounds": [{"name": "block/turbinegasStartup", "stream": true}]}, + "block.turbinegasStartup": {"category": "block", "sounds": [{"name": "block/turbinegasStartup", "stream": false}]}, "block.turbinegasRunning": {"category": "block", "sounds": [{"name": "block/turbinegasRunning", "stream": false}]}, "block.turbinegasShutdown": {"category": "block", "sounds": [{"name": "block/turbinegasShutdown", "stream": true}]}, "block.chungusTurbineRunning": {"category": "block", "sounds": [{"name": "block/chungusTurbine", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/textures/models/machines/icf.png b/src/main/resources/assets/hbm/textures/models/machines/icf.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf85a914ea1cbbfbb73d7101c4c87894fae4e30 GIT binary patch literal 7267 zcmai(2{e@b`^LXBW-z8QAyn3~goHK~8BMaakjj>2q9SWiWEnFiBFUD}VhiE5?_0)r zTa=WPEqkvud$z$~{*M`{_dUOJ{?2h2W;~DUzV6R`-QT&Ve@1H~*ETKyz(yTy4FdpR zB#PddU2}{2UBpU+6mEr5 z^xMu82D>W7CTYQTbr)-|TEgy+3_O0)W|ApN7@?yT!njPJ*Y%yG@oV9DLi@O6RtOG+D0XDFGe;4&3nR5%DQ+FAjL+MkH2st}M*X zO8eLgQyCV-Jum$cK;4mM)hw1VB^S zSM-GL^79w``WGaCS@J^vN=K$O(B|DZzxs?@06aP5VCg`k(b`Aas~)MO?_awAS zZ{BkwJm9UMAmZ(3LAG}l#aB{27+t9_JJ`m12#^riQbLrYjWhgA)lZy7bDB`-gY!yL zK1(sg&f?RQ4;6FW_4I(36DbxW6;%VV0$gi%GY#GG>TN_$ji}8=6Kcz{4?Ewp_ZOll zxQa}tAsdk+0My+#Rll&MYTj$2vgGDnpV{F@>1~ScRreSi4;Ss}!%8GM+c=Rp74IrT z`Gf%Lcwk)n@eGZ@Z3l}zhlOQ|Oqx3pvm_CC%|^KA^K9g0`JS50IE*0ME?1GrWAX{A z!%6_|6W7EGC*2yghOKnEcV95?8H^_y5~`FP8P+sfq*zG2g^zLty}Z7{R_E}pewpt< z(xb`tsc|E<*LqSbopP=bby|u=i}N-C>fY?w1IOjXusmRo?CggUnu4(-_Np`EJu&+5 z$HL5P&P|YCOWRKO(MDd0?F@u&2`4XhS!VWw`<(kwK?$R8Ij8p7VDc?eD!+bQs~}ZH zemffw(#Gm#%dy22L&T`9rlxqyv$%$Z?auJOm%Cc7_J3HcU!sr0a^x`dxA!aG6O4%VNp z#*UX4$4tU9pU;cs7Q1bF3mF=FlU!9)3susg_99Xu)h=GeZxygYYb&nd(F zj;Z>UZ~*vjtae&gmlJpVjFXP>SOj-j2h=IyAgn(%-eHR3FNMax<#^GzJXT8g9N&uoZ9!RVffTq4Tgk%82}9ZEHSFW3FZ4n-2okRu;&yhCl~fv0RIE$E|% z-d`*t=~}8^RN(-)G-RaKQFcth;wJo_lB!V*JKpdcifT#?&5OeLEPSw>bNc&A&Pd#f zLc7vPHzWG#m7~M0tM|(JF)(asksm13kWa{;%L6&F99Vh`shIH-v8a2? z2mDAw-V8CofG91fnvHO{qC8Yc$Q*!rUz+r3Q#baJoA&Y*SK3uf2CZi^>E{JY4gj+B z(P_JR)NS%4hXp1jz~%h%9f$l7q}`*OcekEp-M$t2QKkaoYqoV@XLo2ZQHenG6>5an zCW)|JXKM4R))ExF^H~)_i^`!WdrLk+&>rPW;+}zQl^?_nx3?bzX@dh9%0DNLbuAs6 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 Date: Fri, 15 Mar 2024 15:22:19 +0100 Subject: [PATCH 263/376] axe tweaks --- changelog | 6 ++++++ src/main/java/com/hbm/items/ModItems.java | 16 ++++++++-------- src/main/java/com/hbm/main/ClientProxy.java | 10 ++++++++++ 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/changelog b/changelog index f3af5441b..139f571f9 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +## Added +* More axes + * Bismuth, volcanic, chlorophyte and mese tool materials now have axes + * Axes also double as offensive weapons, being a lot more powerful than their pickaxe counterparts + ## Changed * After three quarters of a decade, three separate models, countless rebalances and hours of senseless yapping, the industrial generator has finally met its end. Suddenly, yet not unsurprisingly, on this here day the industrial generator has closed its eyes for the final time. It was a long and eventful journey, but as with all things in life, it too had to come to an end. * And this is why we can't ever have anything nice @@ -17,6 +22,7 @@ * Flare stacks and barrels now also respect the spilling tag, which means that simply venting the gas may cause poison pollution * Hydrogen doesn't have the polluting tag, so hydrogen burning generators won't create soot anymore * Compressing blood no longer creates oil, rather it makes heavy oil (250mB) +* Tier 2 pickaxes (bismuth and up) now use the large item renderer ## Fixed * WarTec should now be compatible again diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 9c3d71bc2..5aa27ac1d 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -5281,8 +5281,8 @@ public class ModItems { .addBreakAbility(new ToolAbility.ShredderAbility()) .addBreakAbility(new ToolAbility.LuckAbility(2)) .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.StunAbility(5)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)) + .addHitAbility(new WeaponAbility.StunAbility(10)) + .addHitAbility(new WeaponAbility.VampireAbility(3F)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("bismuth_axe").setTextureName(RefStrings.MODID + ":bismuth_axe"); @@ -5303,8 +5303,8 @@ public class ModItems { .addBreakAbility(new ToolAbility.SmelterAbility()) .addBreakAbility(new ToolAbility.LuckAbility(3)) .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.FireAbility(5)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)) + .addHitAbility(new WeaponAbility.FireAbility(10)) + .addHitAbility(new WeaponAbility.VampireAbility(3F)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("volcanic_axe").setTextureName(RefStrings.MODID + ":volcanic_axe"); ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 75F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte)); @@ -5322,8 +5322,8 @@ public class ModItems { .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(4)) .addBreakAbility(new ToolAbility.LuckAbility(4)) - .addHitAbility(new WeaponAbility.StunAbility(10)) - .addHitAbility(new WeaponAbility.VampireAbility(5F)) + .addHitAbility(new WeaponAbility.StunAbility(15)) + .addHitAbility(new WeaponAbility.VampireAbility(10F)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("chlorophyte_axe").setTextureName(RefStrings.MODID + ":chlorophyte_axe"); ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); @@ -5350,8 +5350,8 @@ public class ModItems { .addBreakAbility(new ToolAbility.ExplosionAbility(5F)) .addBreakAbility(new ToolAbility.ExplosionAbility(10F)) .addBreakAbility(new ToolAbility.ExplosionAbility(15F)) - .addHitAbility(new WeaponAbility.StunAbility(10)) - .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) + .addHitAbility(new WeaponAbility.StunAbility(15)) + .addHitAbility(new WeaponAbility.PhosphorusAbility(90)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("mese_axe").setTextureName(RefStrings.MODID + ":mese_axe"); dnt_sword = new ItemSwordAbility(12F, 0, matMese).setUnlocalizedName("dnt_sword").setTextureName(RefStrings.MODID + ":dnt_sword"); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 6e3d0d204..7e026da72 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -412,6 +412,7 @@ public class ClientProxy extends ServerProxy { double[] rir = new double[] {0, 0, 0}; double[] tir = new double[] {0, 0, 0}; double[] sir = new double[] {1.1, 1.1, 1.1}; + double[] sir_default = new double[] {1, 1, 1}; MinecraftForgeClient.registerItemRenderer(ModItems.titanium_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); MinecraftForgeClient.registerItemRenderer(ModItems.alloy_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); @@ -422,6 +423,15 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.schrabidium_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); MinecraftForgeClient.registerItemRenderer(ModItems.cmb_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); MinecraftForgeClient.registerItemRenderer(ModItems.dnt_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); + + MinecraftForgeClient.registerItemRenderer(ModItems.bismuth_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.bismuth_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.volcanic_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.volcanic_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.chlorophyte_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.chlorophyte_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.mese_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.mese_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); ItemRenderMissileGeneric.init(); MinecraftForgeClient.registerItemRenderer(ModItems.missile_test, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); From e249cb5fe8276cea5089a6a25ec9d223aeedaf32 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sat, 16 Mar 2024 16:41:59 +1100 Subject: [PATCH 264/376] fix fog distance to work with longer render distances fix fog being cached when unnecessary --- src/main/java/com/hbm/main/ModEventHandlerRenderer.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index f70f25270..fd5bf7d78 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -428,8 +428,8 @@ public class ModEventHandlerRenderer { int[] ranges = ForgeModContainer.blendRanges; int distance = 0; - if(settings.fancyGraphics && settings.renderDistanceChunks >= 0 && settings.renderDistanceChunks < ranges.length) { - distance = ranges[settings.renderDistanceChunks]; + if(settings.fancyGraphics && settings.renderDistanceChunks >= 0) { + distance = ranges[Math.min(settings.renderDistanceChunks, ranges.length - 1)]; } float r = 0F; @@ -456,7 +456,7 @@ public class ModEventHandlerRenderer { if(doesBiomeApply) { fogRGBMultiplier = Vec3.createVectorHelper(r / divider, g / divider, b / divider); } else { - fogRGBMultiplier = Vec3.createVectorHelper(red, green, blue); + fogRGBMultiplier = null; } return fogRGBMultiplier; From 5ea0cae74c7c63278d5e81ce5ab3ebdb4883257a Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 17 Mar 2024 14:52:25 +1100 Subject: [PATCH 265/376] Create virtual particles at each schottky for each valid exit, collapse the cheapest valid particle after analysis --- .../tileentity/machine/TileEntityHadron.java | 124 ++++++++++++------ 1 file changed, 86 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 173feb6de..04d496cd5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -106,6 +106,9 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs power = Library.chargeTEFromItems(slots, 4, power, maxPower); drawPower(); + + particles.addAll(particlesToAdd); + particlesToAdd.clear(); if(delay <= 0 && this.isOn && particles.size() < maxParticles && slots[0] != null && slots[1] != null && power >= maxPower * 0.75) { @@ -133,6 +136,29 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs } particlesToRemove.clear(); + + // Sort the virtual particles by momentum, and run through them until we have enough momentum to complete the recipe + // If we succeed, "collapse" the cheapest particle that had enough momentum + // If we fail to make anything, "collapse" the most expensive particle + if (particles.isEmpty() && !particlesCompleted.isEmpty()) { + MainRegistry.logger.info("number of COMPLETED: " + particlesCompleted.size()); + + ItemStack[] result = null; + Particle particle = null; + + particlesCompleted.sort((p1, p2) -> { return p1.momentum - p2.momentum; }); + for(Particle p : particlesCompleted) { + MainRegistry.logger.info(p.momentum); + + particle = p; + result = HadronRecipes.getOutput(p.item1, p.item2, p.momentum, analysisOnly); + if(result != null) break; + } + + process(particle, result); + + particlesCompleted.clear(); + } NBTTagCompound data = new NBTTagCompound(); data.setBoolean("isOn", isOn); @@ -151,9 +177,9 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs } } - private void process(Particle p) { - - ItemStack[] result = HadronRecipes.getOutput(p.item1, p.item2, p.momentum, analysisOnly); + private void process(Particle p, ItemStack[] result) { + // Collapse this particle to real by consuming power + p.consumePower(); if(result == null) { this.state = HadronRecipes.returnCode; @@ -166,9 +192,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if((slots[2] == null || (slots[2].getItem() == result[0].getItem() && slots[2].stackSize < slots[2].getMaxStackSize())) && (slots[3] == null || (slots[3].getItem() == result[1].getItem() && slots[3].stackSize < slots[3].getMaxStackSize()))) { - for(int i = 2; i <= 3; i++ ) { - - //System.out.println("yes"); + for(int i = 2; i <= 3; i++) { if(slots[i] == null) slots[i] = result[i - 2].copy(); else @@ -252,17 +276,18 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs particlesToRemove.add(p); if(!p.isExpired()) - process(p); + particlesCompleted.add(p); p.expired = true; } static final int maxParticles = 1; - List particles = new ArrayList(); - List particlesToRemove = new ArrayList(); + List particles = new ArrayList(); + List particlesToRemove = new ArrayList(); + List particlesToAdd = new ArrayList(); + List particlesCompleted = new ArrayList(); private void updateParticles() { - for(Particle particle : particles) { particle.update(); } @@ -347,6 +372,12 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs int cl1 = 0; boolean expired = false; + boolean cloned = false; + + //Quantum mechanical ass particle + //Virtual particles traverse the accelerator without consuming electrical power + //The cheapest valid route to the analysis chamber is then turned into a real particle, consuming power + List plugs = new ArrayList(); public Particle(ItemStack item1, ItemStack item2, ForgeDirection dir, int posX, int posY, int posZ) { this.item1 = item1.copy(); @@ -361,6 +392,21 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.charge = 750; this.momentum = 0; } + + //Clones the particle and gives it a new direction + public Particle clone(ForgeDirection dir) { + Particle p = new Particle(item1, item2, dir, posX, posY, posZ); + p.momentum = momentum; + p.charge = charge; + p.analysis = analysis; + p.isCheckExempt = isCheckExempt; + p.cl0 = cl0; + p.cl1 = cl1; + p.expired = expired; + p.plugs = new ArrayList(plugs); + p.cloned = true; + return p; + } public void expire(EnumHadronState reason) { @@ -370,9 +416,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.expired = true; particlesToRemove.add(this); worldObj.newExplosion(null, posX + 0.5, posY + 0.5, posZ + 0.5, 10, false, false); - //System.out.println("Last dir: " + dir.name()); - //System.out.println("Last pos: " + posX + " " + posY + " " + posZ); - //Thread.currentThread().dumpStack(); TileEntityHadron.this.state = reason; TileEntityHadron.this.delay = delayError; @@ -388,7 +431,13 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(expired) //just in case return; - changeDirection(this); + // Recently cloned particles have already set direction, disabling this causes infinite recursion + if (cloned) { + cloned = false; + } else { + changeDirection(this); + } + makeSteppy(this); if(!this.isExpired()) //only important for when the current segment is the core @@ -427,6 +476,14 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.momentum += coilVal; } + + public void consumePower() { + for(TileEntityHadronPower plug : plugs) { + long bit = 10000; + int times = (int) (plug.getPower() / bit); + plug.setPower(plug.getPower() - times * bit); + } + } } /** @@ -566,7 +623,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs int times = (int) (plug.getPower() / bit); //how many charges the plug has to offer p.charge += times; - plug.setPower(plug.getPower() - times * bit); + p.plugs.add(plug); continue; } @@ -575,9 +632,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(p.isCheckExempt && ix + iy + iz == 2) { continue; } - - //System.out.println("Was exempt: " + p.isCheckExempt); - //worldObj.setBlock(a, b, c, Blocks.dirt); p.expire(EnumHadronState.ERROR_MALFORMED_SEGMENT); } @@ -594,8 +648,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs p.expire(EnumHadronState.ERROR_ANALYSIS_TOO_LONG); if(p.analysis == 2) { - this.worldObj.playSoundEffect(p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, "fireworks.blast", 2.0F, 2F); this.state = EnumHadronState.ANALYSIS; + this.worldObj.playSoundEffect(p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, "fireworks.blast", 2.0F, 2F); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "hadron"); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5), new TargetPoint(worldObj.provider.dimensionId, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, 25)); @@ -663,29 +717,23 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs p.isCheckExempt = true; TileEntityHadronDiode diode = (TileEntityHadronDiode)te; - - //the direction in which we were going anyway is an output, so we will keep going - if(diode.getConfig(dir.ordinal()) == DiodeConfig.OUT) { - return; - - //well then, iterate through some random directions and hope a valid output shows up - } else { - - List dirs = getRandomDirs(); - - for(ForgeDirection d : dirs) { - - if(d == dir || d == dir.getOpposite()) - continue; - - //looks like we can leave! - if(diode.getConfig(d.ordinal()) == DiodeConfig.OUT) { - //set the direction and leave this hellhole + + boolean hasTurnedCurrent = false; + + //Instance a new particle for each required fork + for(ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) { + if(diode.getConfig(d.ordinal()) == DiodeConfig.OUT) { + if(!hasTurnedCurrent) { p.dir = d; - return; + hasTurnedCurrent = true; + } else { + particlesToAdd.add(p.clone(d)); } } } + + //If we managed to exit, keep going + if (hasTurnedCurrent) return; } //next step is air or the core, proceed From 942a05fea76bde513ea8a3a36c16cc3d5d31d0a9 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 17 Mar 2024 15:20:08 +1100 Subject: [PATCH 266/376] Only pop the first analysis particle --- .../hbm/tileentity/machine/TileEntityHadron.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 04d496cd5..1aef7f45f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -141,15 +141,11 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs // If we succeed, "collapse" the cheapest particle that had enough momentum // If we fail to make anything, "collapse" the most expensive particle if (particles.isEmpty() && !particlesCompleted.isEmpty()) { - MainRegistry.logger.info("number of COMPLETED: " + particlesCompleted.size()); - ItemStack[] result = null; Particle particle = null; particlesCompleted.sort((p1, p2) -> { return p1.momentum - p2.momentum; }); for(Particle p : particlesCompleted) { - MainRegistry.logger.info(p.momentum); - particle = p; result = HadronRecipes.getOutput(p.item1, p.item2, p.momentum, analysisOnly); if(result != null) break; @@ -648,11 +644,14 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs p.expire(EnumHadronState.ERROR_ANALYSIS_TOO_LONG); if(p.analysis == 2) { + // Only pop for the first particle + if(this.state != EnumHadronState.ANALYSIS) { + this.worldObj.playSoundEffect(p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, "fireworks.blast", 2.0F, 2F); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "hadron"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5), new TargetPoint(worldObj.provider.dimensionId, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, 25)); + } this.state = EnumHadronState.ANALYSIS; - this.worldObj.playSoundEffect(p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, "fireworks.blast", 2.0F, 2F); - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "hadron"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5), new TargetPoint(worldObj.provider.dimensionId, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, 25)); } //if operating in line accelerator mode, halt after 2 blocks and staart the reading From 4859904e6cac313dac94dcaa8239e96aa8738828 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 17 Mar 2024 15:33:04 +1100 Subject: [PATCH 267/376] If ANY coils fail, it'll now throw an error and not process the particle, even if there is a valid route. This should make it easier to diagnose errors --- .../tileentity/machine/TileEntityHadron.java | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 1aef7f45f..098bffdc8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -348,6 +348,22 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.stat_z = z; this.stat_success = false; } + + public void expire(Particle particle, EnumHadronState reason) { + if(particle.expired) + return; + + particle.consumePower(); + for(Particle p : particles) { + p.expired = true; + particlesToRemove.add(p); + } + worldObj.newExplosion(null, particle.posX + 0.5, particle.posY + 0.5, particle.posZ + 0.5, 10, false, false); + + TileEntityHadron.this.state = reason; + TileEntityHadron.this.delay = delayError; + TileEntityHadron.this.setExpireStats(reason, particle.momentum, particle.posX, particle.posY, particle.posZ); + } public class Particle { @@ -404,20 +420,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs return p; } - public void expire(EnumHadronState reason) { - - if(expired) - return; - - this.expired = true; - particlesToRemove.add(this); - worldObj.newExplosion(null, posX + 0.5, posY + 0.5, posZ + 0.5, 10, false, false); - - TileEntityHadron.this.state = reason; - TileEntityHadron.this.delay = delayError; - TileEntityHadron.this.setExpireStats(reason, this.momentum, posX, posY, posZ); - } - public boolean isExpired() { return this.expired; } @@ -442,7 +444,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs isCheckExempt = false; //clearing up the exemption we might have held from the previous turn, AFTER stepping if(charge < 0) - this.expire(EnumHadronState.ERROR_NO_CHARGE); + expire(this, EnumHadronState.ERROR_NO_CHARGE); if(cl0 > 0) cl0--; if(cl1 > 0) cl1--; @@ -505,7 +507,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(te instanceof TileEntityHadron) { if(p.analysis != 3) - p.expire(EnumHadronState.ERROR_NO_ANALYSIS); + expire(p, EnumHadronState.ERROR_NO_ANALYSIS); else this.finishParticle(p); @@ -513,7 +515,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs } if(block.getMaterial() != Material.air && block != ModBlocks.hadron_diode) - p.expire(EnumHadronState.ERROR_OBSTRUCTED_CHANNEL); + expire(p, EnumHadronState.ERROR_OBSTRUCTED_CHANNEL); if(block == ModBlocks.hadron_diode) p.isCheckExempt = true; @@ -585,7 +587,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //not a valid coil: kablam! if(!isValidCoil(block)) { - p.expire(EnumHadronState.ERROR_EXPECTED_COIL); + expire(p, EnumHadronState.ERROR_EXPECTED_COIL); } else { p.charge -= coilVal; p.incrementCharge(block, meta, coilVal); @@ -629,7 +631,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs continue; } - p.expire(EnumHadronState.ERROR_MALFORMED_SEGMENT); + expire(p, EnumHadronState.ERROR_MALFORMED_SEGMENT); } } } @@ -641,7 +643,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //if the analysis chamber is too big, destroy if(p.analysis > 3) - p.expire(EnumHadronState.ERROR_ANALYSIS_TOO_LONG); + expire(p, EnumHadronState.ERROR_ANALYSIS_TOO_LONG); if(p.analysis == 2) { // Only pop for the first particle @@ -663,7 +665,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //if the analysis stops despite being short of 3 steps in the analysis chamber, destroy if(p.analysis > 0 && p.analysis < 3) - p.expire(EnumHadronState.ERROR_ANALYSIS_TOO_SHORT); + expire(p, EnumHadronState.ERROR_ANALYSIS_TOO_SHORT); } } @@ -694,7 +696,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(diode.getConfig(p.dir.getOpposite().ordinal()) != DiodeConfig.IN) { //it appears as if we have slammed into the side of a diode, ouch - p.expire(EnumHadronState.ERROR_DIODE_COLLISION); + expire(p, EnumHadronState.ERROR_DIODE_COLLISION); } //there's a diode ahead, turn off checks so we can make the curve @@ -761,7 +763,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //it seems like there are two or more possible ways, which is not allowed without a diode //sorry kid, nothing personal } else { - p.expire(EnumHadronState.ERROR_BRANCHING_TURN); + expire(p, EnumHadronState.ERROR_BRANCHING_TURN); return; } } @@ -773,7 +775,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs return; } - p.expire(EnumHadronState.ERROR_OBSTRUCTED_CHANNEL); + expire(p, EnumHadronState.ERROR_OBSTRUCTED_CHANNEL); } /** From 3a611feff1c29f5cbcc1c620306b605a16f8944b Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 17 Mar 2024 16:47:31 +1100 Subject: [PATCH 268/376] Ensure particles only travel through a given schottky direction ONCE. Also code cleanup --- .../tileentity/machine/TileEntityHadron.java | 41 ++++++++++++++----- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 098bffdc8..213fc6d59 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; import com.hbm.blocks.ModBlocks; @@ -137,10 +138,10 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs particlesToRemove.clear(); - // Sort the virtual particles by momentum, and run through them until we have enough momentum to complete the recipe - // If we succeed, "collapse" the cheapest particle that had enough momentum - // If we fail to make anything, "collapse" the most expensive particle - if (particles.isEmpty() && !particlesCompleted.isEmpty()) { + //Sort the virtual particles by momentum, and run through them until we have enough momentum to complete the recipe + //If we succeed, "collapse" the cheapest particle that had enough momentum + //If we fail to make anything, "collapse" the most expensive particle + if(particles.isEmpty() && !particlesCompleted.isEmpty()) { ItemStack[] result = null; Particle particle = null; @@ -174,7 +175,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs } private void process(Particle p, ItemStack[] result) { - // Collapse this particle to real by consuming power + //Collapse this particle to real by consuming power p.consumePower(); if(result == null) { @@ -360,6 +361,9 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs } worldObj.newExplosion(null, particle.posX + 0.5, particle.posY + 0.5, particle.posZ + 0.5, 10, false, false); + //If any particles expire, cancel any succeeding particles, since they'll confuse the player + particlesCompleted.clear(); + TileEntityHadron.this.state = reason; TileEntityHadron.this.delay = delayError; TileEntityHadron.this.setExpireStats(reason, particle.momentum, particle.posX, particle.posY, particle.posZ); @@ -390,6 +394,10 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //Virtual particles traverse the accelerator without consuming electrical power //The cheapest valid route to the analysis chamber is then turned into a real particle, consuming power List plugs = new ArrayList(); + + //Quantum particles should only traverse a schottky direction ONCE + //Keep a list of traversed diodes and directions + HashMap> history = new HashMap>(); public Particle(ItemStack item1, ItemStack item2, ForgeDirection dir, int posX, int posY, int posZ) { this.item1 = item1.copy(); @@ -416,6 +424,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs p.cl1 = cl1; p.expired = expired; p.plugs = new ArrayList(plugs); + p.history = new HashMap>(history); p.cloned = true; return p; } @@ -429,8 +438,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(expired) //just in case return; - // Recently cloned particles have already set direction, disabling this causes infinite recursion - if (cloned) { + //Recently cloned particles have already a set direction, this prevents infinite recursion + if(cloned) { cloned = false; } else { changeDirection(this); @@ -646,7 +655,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs expire(p, EnumHadronState.ERROR_ANALYSIS_TOO_LONG); if(p.analysis == 2) { - // Only pop for the first particle + //Only pop for the first particle if(this.state != EnumHadronState.ANALYSIS) { this.worldObj.playSoundEffect(p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, "fireworks.blast", 2.0F, 2F); NBTTagCompound data = new NBTTagCompound(); @@ -721,20 +730,30 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs boolean hasTurnedCurrent = false; + if(!p.history.containsKey(diode)) + p.history.put(diode, new ArrayList()); + + List usedDirections = p.history.get(diode); + //Instance a new particle for each required fork for(ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) { - if(diode.getConfig(d.ordinal()) == DiodeConfig.OUT) { + if(!usedDirections.contains(d) && diode.getConfig(d.ordinal()) == DiodeConfig.OUT) { if(!hasTurnedCurrent) { p.dir = d; hasTurnedCurrent = true; } else { - particlesToAdd.add(p.clone(d)); + Particle clone = p.clone(d); + clone.history.get(diode).add(d); + particlesToAdd.add(clone); } } } + //Add the used direction to the main particle AFTER cloning, so the clones don't get incorrect travel history + usedDirections.add(p.dir); + //If we managed to exit, keep going - if (hasTurnedCurrent) return; + if(hasTurnedCurrent) return; } //next step is air or the core, proceed From 9cf673206a5d55d21c42e9988f3fabc250d10561 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 17 Mar 2024 17:31:50 +0100 Subject: [PATCH 269/376] flash! bam! alakazam! --- changelog | 6 + src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../com/hbm/blocks/generic/BlockLayering.java | 2 + .../com/hbm/blocks/machine/MachineDrain.java | 86 ++++++++ .../com/hbm/blocks/network/BlockRFCable.java | 81 -------- .../hbm/entity/projectile/EntityOilSpill.java | 75 +++---- .../java/com/hbm/inventory/fluid/Fluids.java | 20 +- src/main/java/com/hbm/main/ClientProxy.java | 16 +- .../java/com/hbm/main/CraftingManager.java | 2 + .../com/hbm/main/ModEventHandlerClient.java | 2 + .../java/com/hbm/main/ResourceManager.java | 6 + .../java/com/hbm/particle/ParticleSplash.java | 68 +++++++ .../hbm/render/tileentity/RenderDrain.java | 58 ++++++ .../hbm/render/tileentity/RenderRFCable.java | 159 --------------- .../java/com/hbm/tileentity/TileMappings.java | 2 +- .../bomb/TileEntityLaunchPadRusted.java | 2 + .../conductor/TileEntityRFDuct.java | 144 ------------- .../machine/TileEntityMachineDrain.java | 155 ++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/models/machines/drain.obj | 190 ++++++++++++++++++ .../blocks/particle/particle_splash.png | Bin 0 -> 151 bytes .../hbm/textures/models/machines/drain.png | Bin 0 -> 1452 bytes 23 files changed, 651 insertions(+), 429 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineDrain.java delete mode 100644 src/main/java/com/hbm/blocks/network/BlockRFCable.java create mode 100644 src/main/java/com/hbm/particle/ParticleSplash.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderDrain.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderRFCable.java delete mode 100644 src/main/java/com/hbm/tileentity/conductor/TileEntityRFDuct.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java create mode 100644 src/main/resources/assets/hbm/models/machines/drain.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/particle/particle_splash.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/drain.png diff --git a/changelog b/changelog index 139f571f9..70889c8e7 100644 --- a/changelog +++ b/changelog @@ -2,6 +2,10 @@ * More axes * Bismuth, volcanic, chlorophyte and mese tool materials now have axes * Axes also double as offensive weapons, being a lot more powerful than their pickaxe counterparts +* Drainage pipe + * Spills fluid, allowing to void up to 1.000mB per tick + * Might slightly alter the landscape, depending on whether the fluid was poisonous + * Viscous, flammable liquids cause oil spill blocks to appear ## Changed * After three quarters of a decade, three separate models, countless rebalances and hours of senseless yapping, the industrial generator has finally met its end. Suddenly, yet not unsurprisingly, on this here day the industrial generator has closed its eyes for the final time. It was a long and eventful journey, but as with all things in life, it too had to come to an end. @@ -29,3 +33,5 @@ * Fixed the "Hold shift for more info" line appearing on fluid info when shift is held, and disappearing otherwise * Fixed smokestacks being able to void any fluid under certain conditions * Fixed the hydrotreater only using half as much crude oil per operation as it should +* Fixed the old launchpad printing the wrong message when successfully launched via detonator +* Oil spills should no longer save, fixing an issue where chunkloaded derricks would constantly spill oil entities into unloaded chunks, causing them to get stuck diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 102d1b007..2df3a276c 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -806,6 +806,7 @@ public class ModBlocks { public static Block fluid_duct_exhaust; public static Block fluid_valve; public static Block fluid_switch; + public static Block machine_drain; public static Block radio_torch_sender; public static Block radio_torch_receiver; public static Block radio_torch_counter; @@ -952,7 +953,6 @@ public class ModBlocks { public static Block dfc_core; 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 Block machine_schrabidium_transmutator; @@ -1972,6 +1972,7 @@ public class ModBlocks { fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_valve = new FluidValve(Material.iron).setBlockName("fluid_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_switch = new FluidSwitch(Material.iron).setBlockName("fluid_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_drain = new MachineDrain(Material.iron).setBlockName("machine_drain").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_counter = new RadioTorchCounter().setBlockName("radio_torch_counter").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_counter"); @@ -3262,6 +3263,7 @@ public class ModBlocks { GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); register(fluid_valve); register(fluid_switch); + register(machine_drain); register(radio_torch_sender); register(radio_torch_receiver); register(radio_torch_counter); diff --git a/src/main/java/com/hbm/blocks/generic/BlockLayering.java b/src/main/java/com/hbm/blocks/generic/BlockLayering.java index d4f516436..4a131cdc6 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLayering.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLayering.java @@ -101,6 +101,8 @@ public class BlockLayering extends Block { public boolean isReplaceable(IBlockAccess world, int x, int y, int z) { if(this == ModBlocks.leaves_layer) return true; + if(this == ModBlocks.oil_spill) return true; + if(this == ModBlocks.foam_layer) return true; int meta = world.getBlockMetadata(x, y, z); return meta >= 7 ? false : blockMaterial.isReplaceable(); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineDrain.java b/src/main/java/com/hbm/blocks/machine/MachineDrain.java new file mode 100644 index 000000000..46aaf943e --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineDrain.java @@ -0,0 +1,86 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityMachineDrain; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class MachineDrain extends BlockDummyable implements ILookOverlay { + + public MachineDrain(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineDrain(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 2, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @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 && !player.isSneaking()) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(te instanceof TileEntityMachineDrain)) return false; + + TileEntityMachineDrain drain = (TileEntityMachineDrain) te; + + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + drain.tank.setTankType(type); + drain.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + + return true; + } + return false; + + } else { + return true; + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(te instanceof TileEntityMachineDrain)) return; + + TileEntityMachineDrain drain = (TileEntityMachineDrain) te; + List text = new ArrayList(); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + drain.tank.getTankType().getLocalizedName() + ": " + drain.tank.getFill() + "/" + drain.tank.getMaxFill() + "mB"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockRFCable.java b/src/main/java/com/hbm/blocks/network/BlockRFCable.java deleted file mode 100644 index d087a33c4..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockRFCable.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.blocks.network; - -import com.hbm.tileentity.conductor.TileEntityRFDuct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockRFCable extends BlockContainer { - - public BlockRFCable(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityRFDuct) { - TileEntityRFDuct cable = (TileEntityRFDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityRFDuct) { - TileEntityRFDuct cable = (TileEntityRFDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityRFDuct(10000); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java b/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java index 5e3a1c55c..aba68c0a9 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java +++ b/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java @@ -3,47 +3,54 @@ package com.hbm.entity.projectile; import com.hbm.entity.particle.EntityOilSpillFX; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class EntityOilSpill extends EntityThrowable { - public EntityOilSpill(World p_i1773_1_) - { - super(p_i1773_1_); - } + public EntityOilSpill(World p_i1773_1_) { + super(p_i1773_1_); + } - public EntityOilSpill(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); - } + public EntityOilSpill(World p_i1774_1_, EntityLivingBase p_i1774_2_) { + super(p_i1774_1_, p_i1774_2_); + } - @Override - public void entityInit() { - } + @Override + public void entityInit() { } - public EntityOilSpill(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } - - @Override - public void onUpdate() { - super.onUpdate(); - if(!worldObj.isRemote) { - worldObj.spawnEntityInWorld(new EntityOilSpillFX(worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - if(this.isBurning()) { - this.setDead(); - worldObj.createExplosion(null, posX, posY, posZ, 1.5F, true); - } - } - } + public EntityOilSpill(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { + super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + } - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) - { - if(this.ticksExisted > 5) { - this.setDead(); - } - } + @Override + public void onUpdate() { + super.onUpdate(); + if(!worldObj.isRemote) { + worldObj.spawnEntityInWorld(new EntityOilSpillFX(worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); + if(this.isBurning()) { + this.setDead(); + worldObj.createExplosion(null, posX, posY, posZ, 1.5F, true); + } + } + } + + @Override + protected void onImpact(MovingObjectPosition p_70184_1_) { + if(this.ticksExisted > 5) { + this.setDead(); + } + } + + @Override + public boolean writeToNBTOptional(NBTTagCompound nbt) { + return false; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.setDead(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index cec12e07f..027833121 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -202,7 +202,11 @@ public class Fluids { /* Original baseline for leaded fuels */ public static final float LEAD_FUEL = PollutionHandler.HEAVY_METAL_PER_SECOND * 0.025F; /* Poison stat for most petrochemicals */ - public static final float POISON_OIL = PollutionHandler.POISON_PER_SECOND * 0.025F; + public static final float POISON_OIL = PollutionHandler.POISON_PER_SECOND * 0.0025F; + /* Poison stat for horrible chemicals like red mud or phosgene */ + public static final float POISON_EXTREME = PollutionHandler.POISON_PER_SECOND * 0.025F; + /* Poison stat for mostly inert things like carbon dioxide */ + public static final float POISON_MINOR = PollutionHandler.POISON_PER_SECOND * 0.001F; public static final FT_Polluting P_OIL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_UNREFINED_OIL).release(PollutionType.POISON, POISON_OIL); public static final FT_Polluting P_FUEL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).release(PollutionType.POISON, POISON_OIL); @@ -261,7 +265,7 @@ public class Fluids { AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); ACID = new FluidType("ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(new FT_Corrosive(40), LIQUID); - WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID, VISCOUS); + WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID, VISCOUS, new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); CRYOGEL = new FluidType("CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170).addTraits(LIQUID, VISCOUS); HYDROGEN = new FluidType("HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setTemp(-260).addContainers(new CD_Gastank(0x4286f4, 0xffffff)).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), LIQUID, EVAP); OXYGEN = new FluidType("OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC).setTemp(-100).addContainers(new CD_Gastank(0x98bdf9, 0xffffff)).addTraits(LIQUID, EVAP); @@ -280,7 +284,7 @@ public class Fluids { PLASMA_HT = new FluidType("PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(NOCON, NOID, PLASMA); PLASMA_XM = new FluidType("PLASMA_XM", 0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION).setTemp(4250).addTraits(NOCON, NOID, PLASMA); PLASMA_BF = new FluidType("PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(NOCON, NOID, PLASMA); - CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); + CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_MINOR)); PLASMA_DH3 = new FluidType("PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(NOCON, NOID, PLASMA); HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); DEATH = new FluidType("DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(80), new FT_Poison(true, 4), LEADCON, LIQUID, VISCOUS); @@ -307,7 +311,7 @@ public class Fluids { WOODOIL = new FluidType("WOODOIL", 0x847D54, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xBF7E4F)).addTraits(LIQUID, VISCOUS, P_OIL); COALCREOSOTE = new FluidType("COALCREOSOTE", 0x51694F, 3, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x285A3F)).addTraits(LIQUID, VISCOUS, P_OIL); SEEDSLURRY = new FluidType("SEEDSLURRY", 0x7CC35E, 0, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x7CC35E)).addTraits(LIQUID, VISCOUS); - NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60)); + NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60), new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); SOLVENT = new FluidType("SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xE4E3EF)).addTraits(LIQUID, new FT_Corrosive(30)); BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, DELICIOUS); BLOOD_HOT = new FluidType("BLOOD_HOT", 0xF22419, 3, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).setTemp(666); //it's funny because it's the satan number @@ -326,8 +330,8 @@ public class Fluids { KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xFF377D)); REFORMGAS = new FluidType("REFORMGAS", 0x6362AE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x9392FF, 0xFFB992)).addTraits(GASEOUS, P_GAS); COLLOID = new FluidType("COLLOID", 0x787878, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS); - MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS); + PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); + MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); IONGEL = new FluidType("IONGEL", 0xB8FFFF, 1, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); OIL_COKER = new FluidType("OIL_COKER", 0x001802, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL); NAPHTHA_COKER = new FluidType("NAPHTHA_COKER", 0x495944, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL); @@ -338,7 +342,7 @@ public class Fluids { FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL); SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL); NITROGLYCERIN = new FluidType("NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); - REDMUD = new FluidType("REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); + REDMUD = new FluidType("REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000), new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); CHLOROCALCITE_SOLUTION = new FluidType("CHLOROCALCITE_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); CHLOROCALCITE_MIX = new FluidType("CHLOROCALCITE_MIX", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); CHLOROCALCITE_CLEANED = new FluidType("CHLOROCALCITE_CLEANED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); @@ -355,7 +359,7 @@ public class Fluids { THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); - FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); + FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65), new FT_Polluting().release(PollutionType.POISON, POISON_MINOR)); PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1)); PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2)); OIL_DS = new FluidType("OIL_DS", 0x121212, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS, P_OIL); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 7e026da72..6c18ce192 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -274,6 +274,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolidifier.class, new RenderSolidifier()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCompressor.class, new RenderCompressor()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineDrain.class, new RenderDrain()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityElectrolyser.class, new RenderElectrolyser()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceIron.class, new RenderFurnaceIron()); @@ -337,7 +338,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzCapsule.class, new RenderCapsule()); //network ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRFDuct.class, new RenderRFCable()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnector.class, new RenderConnector()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonLarge.class, new RenderPylonLarge()); @@ -1764,6 +1764,20 @@ public class ClientProxy extends ServerProxy { } } + if("splash".equals(type)) { + if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean())) { + ParticleSplash fx = new ParticleSplash(man, world, x, y, z); + + if(data.hasKey("color")) { + Color color = new Color(data.getInteger("color")); + float f = 1F - rand.nextFloat() * 0.2F; + fx.setRBGColorF(color.getRed() / 255F * f, color.getGreen() / 255F * f, color.getBlue() / 255F * f); + } + + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + } + if("deadleaf".equals(type)) { if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean())) Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleDeadLeaf(man, world, x, y, z)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d12b5d0b2..43d45ebf4 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1056,6 +1056,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mold_base), new Object[] { " B ", "BIB", " B ", 'B', ModItems.ingot_firebrick, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.brick_fire), new Object[] { "BB", "BB", 'B', ModItems.ingot_firebrick }); addShapelessAuto(new ItemStack(ModItems.ingot_firebrick, 4), new Object[] { ModBlocks.brick_fire }); + + addRecipeAuto(new ItemStack(ModBlocks.machine_drain), new Object[] { "PPP", "T ", "PPP", 'P', STEEL.plateCast(), 'T', ModItems.tank_steel }); addRecipeAuto(new ItemStack(ModBlocks.filing_cabinet, 1, DecoCabinetEnum.STEEL.ordinal()), new Object[] { " P ", "PIP", " P ", 'P', STEEL.plate(), 'I', ModItems.plate_polymer }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index c43e7e0e7..4a3ad255e 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1251,6 +1251,7 @@ public class ModEventHandlerClient { public static IIcon particleBase; public static IIcon particleLeaf; + public static IIcon particleSplash; @SubscribeEvent public void onTextureStitch(TextureStitchEvent.Pre event) { @@ -1258,6 +1259,7 @@ public class ModEventHandlerClient { if(event.map.getTextureType() == 0) { particleBase = event.map.registerIcon(RefStrings.MODID + ":particle/particle_base"); particleLeaf = event.map.registerIcon(RefStrings.MODID + ":particle/dead_leaf"); + particleSplash = event.map.registerIcon(RefStrings.MODID + ":particle/particle_splash"); } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index f02a8f479..8b1759c0e 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -301,6 +301,9 @@ public class ResourceManager { public static final IModelCustom solar_boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solar_boiler.obj")); public static final IModelCustom solar_mirror = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/solar_mirror.obj")); + //Drain + public static final IModelCustom drain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/drain.obj")); + //Vault Door public static final IModelCustom vault_cog = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_cog.obj")); public static final IModelCustom vault_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_frame.obj")); @@ -738,6 +741,9 @@ public class ResourceManager { public static final ResourceLocation solar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solar_boiler.png"); public static final ResourceLocation solar_mirror_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solar_mirror.png"); + //Drain + public static final ResourceLocation drain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drain.png"); + //Blast Door public static final ResourceLocation blast_door_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_base.png"); public static final ResourceLocation blast_door_tooth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_tooth.png"); diff --git a/src/main/java/com/hbm/particle/ParticleSplash.java b/src/main/java/com/hbm/particle/ParticleSplash.java new file mode 100644 index 000000000..0411a3f62 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleSplash.java @@ -0,0 +1,68 @@ +package com.hbm.particle; + +import com.hbm.main.ModEventHandlerClient; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleSplash extends EntityFX { + + public ParticleSplash(TextureManager texman, World world, double x, double y, double z) { + super(world, x, y, z); + particleIcon = ModEventHandlerClient.particleSplash; + this.particleRed = this.particleGreen = this.particleBlue = 1F - world.rand.nextFloat() * 0.2F; + this.particleAlpha = 0.5F; + this.particleScale = 0.4F; + this.particleMaxAge = 200 + world.rand.nextInt(50); + this.particleGravity = 0.4F; + } + + public int getFXLayer() { + return 1; + } + + public void onUpdate() { + super.onUpdate(); + + if(!this.onGround) { + this.motionX += rand.nextGaussian() * 0.002D; + this.motionZ += rand.nextGaussian() * 0.002D; + + if(this.motionY < -0.5D) + this.motionY = -0.5D; + } else { + this.setDead(); + } + } + + @Override + public void renderParticle(Tessellator tess, float interp, float fX, float fY, float fZ, float sX, float sZ) { + + tess.setNormal(0.0F, 1.0F, 0.0F); + + tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); + + float scale = this.particleScale; + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + + boolean flipU = this.getEntityId() % 2 == 0; + boolean flipV = this.getEntityId() % 4 < 2; + + double minU = flipU ? particleIcon.getMaxU() : particleIcon.getMinU(); + double maxU = flipU ? particleIcon.getMinU() : particleIcon.getMaxU(); + double minV = flipV ? particleIcon.getMaxV() : particleIcon.getMinV(); + double maxV = flipV ? particleIcon.getMinV() : particleIcon.getMaxV(); + + tess.addVertexWithUV((double) (pX - fX * scale - sX * scale), (double) (pY - fY * scale), (double) (pZ - fZ * scale - sZ * scale), maxU, maxV); + tess.addVertexWithUV((double) (pX - fX * scale + sX * scale), (double) (pY + fY * scale), (double) (pZ - fZ * scale + sZ * scale), maxU, minV); + tess.addVertexWithUV((double) (pX + fX * scale + sX * scale), (double) (pY + fY * scale), (double) (pZ + fZ * scale + sZ * scale), minU, minV); + tess.addVertexWithUV((double) (pX + fX * scale - sX * scale), (double) (pY - fY * scale), (double) (pZ + fZ * scale - sZ * scale), minU, maxV); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/tileentity/RenderDrain.java b/src/main/java/com/hbm/render/tileentity/RenderDrain.java new file mode 100644 index 000000000..e2fdcfce0 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderDrain.java @@ -0,0 +1,58 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderDrain extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(te.getBlockMetadata() - BlockDummyable.offset) { + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + bindTexture(ResourceManager.drain_tex); + ResourceManager.drain.renderAll(); + + GL11.glPopMatrix(); + + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_drain); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(-1, -1, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glRotatef(180, 0F, 1F, 0F); + GL11.glTranslated(0.75, 0, 0); + bindTexture(ResourceManager.drain_tex); ResourceManager.drain.renderAll(); + } + }; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRFCable.java b/src/main/java/com/hbm/render/tileentity/RenderRFCable.java deleted file mode 100644 index 918d88d6a..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderRFCable.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityRFDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderRFCable extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/rf_cable.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityRFDuct cable = (TileEntityRFDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i]); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - - // Muehsam muss ich hier im BSH meine genialen Mods schreiben, obwohl ich die Zeit eigentlich doch besser nutzen koennte. - // Da mir das aber Spass macht, wird auch in Zukunft gutes Zeug von mir geben (und damit meine ich NICHT Drogen, etc.) - // Danke. - - //I didn't write this, but I'm gonna leave it there. - } - - public void drawConnection(ForgeDirection direction) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 73980b18a..33081cb50 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -97,6 +97,7 @@ public class TileMappings { put(TileEntityMachineExcavator.class, "tileentity_ntm_excavator"); put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple"); put(TileEntityFluidDuct.class, "tileentity_universal_duct"); + put(TileEntityMachineDrain.class, "tileentity_fluid_drain"); put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank"); put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan"); put(TileEntityMachineTurbineGas.class, "tileentity_machine_gasturbine"); @@ -136,7 +137,6 @@ public class TileMappings { put(TileEntityFF.class, "tileentity_forcefield"); put(TileEntityForceField.class, "tileentity_machine_field"); put(TileEntityMachineShredderLarge.class, "tileentity_machine_big_shredder"); - put(TileEntityRFDuct.class, "tileentity_hbm_rfduct"); put(TileEntityReactorControl.class, "tileentity_reactor_remote_control"); put(TileEntityWasteDrum.class, "tileentity_waste_drum"); put(TileEntityDecon.class, "tileentity_decon"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java index c5c5db0bd..cdfa9eca8 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java @@ -110,6 +110,8 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements this.missileLoaded = false; this.decrStackSize(1, 1); this.markDirty(); + + return BombReturnCode.LAUNCHED; } } } diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityRFDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityRFDuct.java deleted file mode 100644 index 1054a5b41..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityRFDuct.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.hbm.tileentity.conductor; - -import cofh.api.energy.EnergyStorage; -import cofh.api.energy.IEnergyConnection; -import cofh.api.energy.IEnergyHandler; -import cofh.api.energy.IEnergyReceiver; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityRFDuct extends TileEntity implements IEnergyHandler { - - public ForgeDirection[] connections = new ForgeDirection[6]; - protected EnergyStorage storage; - public int output; - - public TileEntityRFDuct(int output) { - this.output = output; - this.storage = new EnergyStorage(200); - - storage.setMaxReceive(output); - storage.setMaxExtract(output); - storage.setMaxTransfer(output); - } - - public void updateEntity() { - this.updateConnections(); - - if (storage.getEnergyStored() > 0) { - for (int i = 0; i < 6; i++) { - - int targetX = xCoord + ForgeDirection.getOrientation(i).offsetX; - int targetY = yCoord + ForgeDirection.getOrientation(i).offsetY; - int targetZ = zCoord + ForgeDirection.getOrientation(i).offsetZ; - - TileEntity tile = worldObj.getTileEntity(targetX, targetY, targetZ); - if (tile instanceof IEnergyReceiver) { - int maxExtract = storage.getMaxExtract(); - int maxAvailable = storage.extractEnergy(maxExtract, true); - int energyTransferred = ((IEnergyReceiver) tile) - .receiveEnergy(ForgeDirection.getOrientation(i).getOpposite(), maxAvailable, false); - - storage.extractEnergy(energyTransferred, false); - } - } - } - - } - - public void updateConnections() { - if (this.worldObj.getTileEntity(xCoord, yCoord + 1, zCoord) instanceof IEnergyConnection) - connections[0] = ForgeDirection.UP; - else - connections[0] = null; - - if (this.worldObj.getTileEntity(xCoord, yCoord - 1, zCoord) instanceof IEnergyConnection) - connections[1] = ForgeDirection.DOWN; - else - connections[1] = null; - - if (this.worldObj.getTileEntity(xCoord, yCoord, zCoord - 1) instanceof IEnergyConnection) - connections[2] = ForgeDirection.NORTH; - else - connections[2] = null; - - if (this.worldObj.getTileEntity(xCoord, yCoord, zCoord + 1) instanceof IEnergyConnection) - connections[3] = ForgeDirection.SOUTH; - else - connections[3] = null; - - if (this.worldObj.getTileEntity(xCoord + 1, yCoord, zCoord) instanceof IEnergyConnection) - connections[4] = ForgeDirection.EAST; - else - connections[4] = null; - - if (this.worldObj.getTileEntity(xCoord - 1, yCoord, zCoord) instanceof IEnergyConnection) - connections[5] = ForgeDirection.WEST; - else - connections[5] = null; - } - - public boolean onlyOneOpposite(ForgeDirection[] directions) { - ForgeDirection mainDirection = null; - boolean isOpposite = false; - - for (int i = 0; i < directions.length; i++) { - - if (mainDirection == null && directions[i] != null) - mainDirection = directions[i]; - - if (directions[i] != null && mainDirection != directions[i]) { - if (!isOpposite(mainDirection, directions[i])) - return false; - else - isOpposite = true; - } - } - - return isOpposite; - } - - public boolean isOpposite(ForgeDirection firstDirection, ForgeDirection secondDirection) { - - if ((firstDirection.equals(ForgeDirection.NORTH) && secondDirection.equals(ForgeDirection.SOUTH)) - || firstDirection.equals(ForgeDirection.SOUTH) && secondDirection.equals(ForgeDirection.NORTH)) - return true; - - if ((firstDirection.equals(ForgeDirection.EAST) && secondDirection.equals(ForgeDirection.WEST)) - || firstDirection.equals(ForgeDirection.WEST) && secondDirection.equals(ForgeDirection.EAST)) - return true; - - if ((firstDirection.equals(ForgeDirection.UP) && secondDirection.equals(ForgeDirection.DOWN)) - || firstDirection.equals(ForgeDirection.DOWN) && secondDirection.equals(ForgeDirection.UP)) - return true; - - return false; - } - - @Override - public boolean canConnectEnergy(ForgeDirection from) { - return true; - } - - @Override - public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { - return this.storage.receiveEnergy(Math.min(output, maxReceive), simulate); - } - - @Override - public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { - - return storage.extractEnergy(storage.getMaxExtract(), simulate); - } - - @Override - public int getEnergyStored(ForgeDirection from) { - return storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(ForgeDirection from) { - return storage.getMaxEnergyStored(); - } - -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java new file mode 100644 index 000000000..3535fb9af --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java @@ -0,0 +1,155 @@ +package com.hbm.tileentity.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.fluid.trait.FT_Polluting; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous; +import com.hbm.main.MainRegistry; +import com.hbm.packet.BufPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFluidStandardReceiver, IBufPacketReceiver { + + public FluidTank tank; + + public TileEntityMachineDrain() { + this.tank = new FluidTank(Fluids.NONE, 2_000); + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + if(tank.getFill() > 0) { + int toSpill = Math.max(tank.getFill() / 2, 1); + tank.setFill(tank.getFill() - toSpill); + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, toSpill); + + if(toSpill >= 100 && worldObj.rand.nextInt(20) == 0 && tank.getTankType().hasTrait(FT_Liquid.class) && tank.getTankType().hasTrait(FT_Viscous.class) && tank.getTankType().hasTrait(FT_Flammable.class)) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + Vec3 start = Vec3.createVectorHelper(xCoord + 0.5 - dir.offsetX * 3, yCoord + 0.5, zCoord + 0.5 - dir.offsetZ * 3); + Vec3 end = start.addVector(worldObj.rand.nextGaussian() * 5, -25, worldObj.rand.nextGaussian() * 5); + MovingObjectPosition mop = worldObj.func_147447_a(start, end, false, true, false); + + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK && mop.sideHit == 1) { + Block block = worldObj.getBlock(mop.blockX, mop.blockY + 1, mop.blockZ); + if(!block.getMaterial().isLiquid() && block.isReplaceable(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ) && ModBlocks.oil_spill.canPlaceBlockAt(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ)) { + worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.oil_spill); + } + } + } + } + + } else { + + if(tank.getFill() > 0 && MainRegistry.proxy.me().getDistance(xCoord, yCoord, zCoord) < 100) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + + NBTTagCompound data = new NBTTagCompound(); + if(tank.getTankType().hasTrait(FT_Gaseous.class)) { + data.setString("type", "tower"); + data.setFloat("lift", 0.5F); + data.setFloat("base", 0.375F); + data.setFloat("max", 3F); + data.setInteger("life", 100 + worldObj.rand.nextInt(50)); + } else { + data.setString("type", "splash"); + } + + data.setInteger("color", tank.getTankType().getColor()); + data.setDouble("posX", xCoord + 0.5 - dir.offsetX * 2.5); + data.setDouble("posZ", zCoord + 0.5 - dir.offsetZ * 2.5); + data.setDouble("posY", yCoord + 0.5); + + MainRegistry.proxy.effectNT(data); + } + } + } + + public DirPos[] getConPos() { + ForgeDirection dir0 = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection dir1 = dir0.getRotation(ForgeDirection.UP); + ForgeDirection dir2 = dir0.getRotation(ForgeDirection.DOWN); + return new DirPos[] { + new DirPos(xCoord + dir0.offsetX, yCoord, zCoord + dir0.offsetZ, dir0), + new DirPos(xCoord + dir1.offsetX, yCoord, zCoord + dir1.offsetZ, dir1), + new DirPos(xCoord + dir2.offsetX, yCoord, zCoord + dir2.offsetZ, dir2) + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + this.tank.writeToNBT(nbt, "t"); + } + + @Override public void serialize(ByteBuf buf) { tank.serialize(buf); } + @Override public void deserialize(ByteBuf buf) { tank.deserialize(buf); } + + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return dir != ForgeDirection.UP && dir != ForgeDirection.DOWN; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 1, + zCoord + 3 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index dec70dd9b..8c01c9c42 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4145,6 +4145,7 @@ tile.machine_difurnace_on.name=Hochofen tile.machine_difurnace_rtg_off.name=Atomarer Hochofen tile.machine_difurnace_rtg_on.name=Atomarer Hochofen tile.machine_dineutronium_battery.name=Spark Energiespeicherblock +tile.machine_drain.name=Ausgussrohr tile.machine_drill.name=Automatischer Minenbohrer tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_on.name=Elektrischer Ofen diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b7473cda6..918395027 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5159,6 +5159,7 @@ tile.machine_difurnace_on.name=Blast Furnace tile.machine_difurnace_rtg_off.name=Nuclear Blast Furnace tile.machine_difurnace_rtg_on.name=Nuclear Blast Furnace tile.machine_dineutronium_battery.name=Spark Energy Storage Block +tile.machine_drain.name=Drainage Pipe tile.machine_drill.name=Automatic Mining Drill tile.machine_electric_furnace_off.name=Electric Furnace tile.machine_electric_furnace_on.name=Electric Furnace diff --git a/src/main/resources/assets/hbm/models/machines/drain.obj b/src/main/resources/assets/hbm/models/machines/drain.obj new file mode 100644 index 000000000..0ad9f9eb5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/drain.obj @@ -0,0 +1,190 @@ +# Blender v2.79 (sub 0) OBJ File: 'drain.blend' +# www.blender.org +o Cube_Cube.001 +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.500000 -0.500000 +v -0.500000 0.853553 -0.353553 +v -0.500000 1.000000 0.000000 +v -0.500000 0.853553 0.353553 +v -0.500000 0.500000 0.500000 +v -0.500000 0.146447 0.353553 +v -0.500000 0.000000 -0.000000 +v -0.500000 0.146447 -0.353553 +v -2.500000 0.500000 -0.500000 +v -2.500000 0.853553 -0.353553 +v -2.500000 1.000000 0.000000 +v -2.500000 0.853553 0.353553 +v -2.500000 0.500000 0.500000 +v -2.500000 0.146447 0.353553 +v -2.500000 0.000000 -0.000000 +v -2.500000 0.146447 -0.353553 +v -2.500000 0.500000 -0.437500 +v -2.500000 0.809359 -0.309359 +v -2.500000 0.937500 0.000000 +v -2.500000 0.809359 0.309359 +v -2.500000 0.500000 0.437500 +v -2.500000 0.190641 0.309359 +v -2.500000 0.062500 -0.000000 +v -2.500000 0.190641 -0.309359 +v -1.500000 0.500000 -0.437500 +v -1.500000 0.809359 -0.309359 +v -1.500000 0.937500 0.000000 +v -1.500000 0.809359 0.309359 +v -1.500000 0.500000 0.437500 +v -1.500000 0.190641 0.309359 +v -1.500000 0.062500 -0.000000 +v -1.500000 0.190641 -0.309359 +vt 0.250000 0.326531 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.326531 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.326531 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.326531 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.653061 +vt 0.000000 0.326531 +vt 0.250000 0.326531 +vt 0.250000 0.653061 +vt 0.000000 0.326531 +vt 0.437500 0.653061 +vt 0.343750 0.000000 +vt 0.437500 0.000000 +vt 0.625000 0.653061 +vt 0.531250 -0.000000 +vt 0.625000 0.000000 +vt 0.812500 0.653061 +vt 0.718750 0.000000 +vt 0.812500 0.000000 +vt 0.906250 0.653061 +vt 0.906250 -0.000000 +vt 0.343750 0.653061 +vt 0.250000 0.000000 +vt 0.531250 0.653061 +vt 0.718750 0.653061 +vt 1.000000 0.653061 +vt 1.000000 -0.000000 +vt 0.812500 0.673469 +vt 0.250000 0.653061 +vt 0.343750 0.673469 +vt 0.250000 0.673469 +vt 0.437500 0.673469 +vt 0.625000 0.673469 +vt 0.906250 0.673469 +vt 0.531250 0.673469 +vt 0.718750 0.673469 +vt 0.531250 1.000000 +vt 0.718750 1.000000 +vt 0.812500 1.000000 +vt 0.250000 1.000000 +vt 0.437500 1.000000 +vt 0.625000 1.000000 +vt 1.000000 0.673469 +vt 0.906250 1.000000 +vt 0.343750 1.000000 +vt 0.249819 0.795918 +vt 0.217837 0.896766 +vt 0.140625 0.938539 +vt 0.000000 0.326531 +vt 0.000000 0.326531 +vt 0.000000 0.326531 +vt 0.000000 0.653061 +vt 0.000000 0.653061 +vt 1.000000 1.000000 +vt 0.063413 0.896766 +vt 0.031431 0.795918 +vt 0.063413 0.695070 +vt 0.140625 0.653298 +vt 0.217837 0.695070 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 -0.3827 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/6/2 +f 8/7/3 5/8/3 7/9/3 +f 6/10/4 1/11/4 5/12/4 +f 7/13/5 1/14/5 3/15/5 +f 4/16/6 6/17/6 8/7/6 +f 21/18/7 14/19/7 13/20/7 +f 19/21/8 12/22/8 11/23/8 +f 17/24/9 10/25/9 9/26/9 +f 24/27/10 9/26/10 16/28/10 +f 22/29/11 15/30/11 14/19/11 +f 20/31/12 13/20/12 12/22/12 +f 18/32/13 11/23/13 10/25/13 +f 23/33/14 16/28/14 15/34/14 +f 24/27/1 25/35/1 17/24/1 +f 23/36/1 30/37/1 31/38/1 +f 20/31/1 29/39/1 21/18/1 +f 18/32/1 27/40/1 19/21/1 +f 23/33/1 32/41/1 24/27/1 +f 21/18/1 30/37/1 22/29/1 +f 19/21/1 28/42/1 20/31/1 +f 17/24/1 26/43/1 18/32/1 +f 27/40/14 36/44/14 28/42/14 +f 25/35/7 34/45/7 26/43/7 +f 32/41/12 33/46/12 25/35/12 +f 30/37/13 39/47/13 31/38/13 +f 28/42/10 37/48/10 29/39/10 +f 26/43/11 35/49/11 27/40/11 +f 31/50/8 40/51/8 32/41/8 +f 29/39/9 38/52/9 30/37/9 +f 37/53/1 36/54/1 35/55/1 +f 2/1/1 4/56/1 3/2/1 +f 4/4/2 8/57/2 7/5/2 +f 8/7/3 6/17/3 5/8/3 +f 6/10/4 2/58/4 1/11/4 +f 7/13/5 5/59/5 1/14/5 +f 4/16/6 2/60/6 6/17/6 +f 21/18/7 22/29/7 14/19/7 +f 19/21/8 20/31/8 12/22/8 +f 17/24/9 18/32/9 10/25/9 +f 24/27/10 17/24/10 9/26/10 +f 22/29/11 23/36/11 15/30/11 +f 20/31/12 21/18/12 13/20/12 +f 18/32/13 19/21/13 11/23/13 +f 23/33/14 24/27/14 16/28/14 +f 24/27/1 32/41/1 25/35/1 +f 23/36/1 22/29/1 30/37/1 +f 20/31/1 28/42/1 29/39/1 +f 18/32/1 26/43/1 27/40/1 +f 23/33/1 31/50/1 32/41/1 +f 21/18/1 29/39/1 30/37/1 +f 19/21/1 27/40/1 28/42/1 +f 17/24/1 25/35/1 26/43/1 +f 27/40/14 35/49/14 36/44/14 +f 25/35/7 33/46/7 34/45/7 +f 32/41/12 40/51/12 33/46/12 +f 30/37/13 38/52/13 39/47/13 +f 28/42/10 36/44/10 37/48/10 +f 26/43/11 34/45/11 35/49/11 +f 31/50/8 39/61/8 40/51/8 +f 29/39/9 37/48/9 38/52/9 +f 35/55/1 34/62/1 33/63/1 +f 33/63/1 40/64/1 35/55/1 +f 40/64/1 39/65/1 35/55/1 +f 39/65/1 38/66/1 35/55/1 +f 38/66/1 37/53/1 35/55/1 diff --git a/src/main/resources/assets/hbm/textures/blocks/particle/particle_splash.png b/src/main/resources/assets/hbm/textures/blocks/particle/particle_splash.png new file mode 100644 index 0000000000000000000000000000000000000000..c5045b8e66f74bb76c17f1e995fbd10bc4945cbf GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEX7WqAsj$Z!;#Vfvr5puigIOIA|R9E^OQv0yIq%M$3JaaTLrk)-hi0 zJ7Jx4WddS_GNsgIaJMbWT*vsJCOg<|>uUrI4GnpWSFt$Hwr#tN?)6#5`bNOe(2y`b ztdFB38*JOQYaG-^)#(cXj?t;$FM z^BmMW1cd23PRPA8Rvq`#msee_L3$>jUaz}CR!wA4l3#+zZl}ZC20aSJ-s?5#J#Uku8iYo_1bu6FHi>PTfn}fdvWa$(M zDoImQQ=pWBF$Tt1q_O-QMc*_{n5GHKvO>o)7DeAQO)mip3k#tH#LX9zSm1_Xyt7X!Mn^{l{_^sIN~HqE7{nRMybYBgAvC87p+uT2__hNw-P!pAgCG@H%$<1gr6pxZ6r5b*Hu0M0p< zmX-wm_V$MJ^K)>{vAVj7Y&I(lKR7r5=NvmbI~W-m0RS`_4Qy;|fOC#wu_y?r*XvkW zSpnx9hlhuln3w?Yo`1Htx4}8b=H{mOj$s%$IXMC69ECywsZ>hXb9HqE&N&tr7vE1A z)tR_kfOC$!ySstIwY|N)wyx_al}cTo0;N(3)oNAXlv1SAX=E}PFvdRa-TvDG*=!b! zF>xL{TVP~lL?k=IFkD-JF@|cj>e&L8WuaE9dA5LQnrJi{o-JTm7MjhbYYX`P3&hz1 zYW8*{kx2OBsZ>hj1Q}1K(;_Fxcs83wB9U-qZ%5xLl$`7i0Lf%h{1D0dj4@;~nV+YC zEIpqB`FviKuySeZSJL{mD09_PRxWeZ(l)3C%@qX9&CMa7&v(t>&CSi%sRZMM_rO#9IudlB-J3GV7%nZJL`zG!Vn$0Hm_xCY9J&o(@YYYz$gAjsRt%mjWbxcl9;{N^~ zqoboBgy8Y<5zEWVn4Fx%?d>hn=`?KHMx|20*47rLr>Ajoae-tq3EQ?&tJQFHbcC6i z8JwM+fl>+e8v22}#D#n;x>P%f7N0J&Tag+jqs@5@wzvgo>w za=DDBrzaQYCts=(j3WbI2?m9AE|(L}xm+&Rf5IS0U<4Ej1y2$Tl0mKnJp`1?m9De> zm%0=5JLjXwXQ}ME#YH6ubPjb{zGNjB_quDKE5RTAKHy(b$bmZI&idp40000 Date: Mon, 18 Mar 2024 11:07:46 +0100 Subject: [PATCH 270/376] fixes --- changelog | 4 ++++ src/main/java/com/hbm/config/FalloutConfigJSON.java | 5 +++-- .../hbm/tileentity/machine/TileEntityMachineWoodBurner.java | 6 ++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/changelog b/changelog index 70889c8e7..254aff747 100644 --- a/changelog +++ b/changelog @@ -27,6 +27,7 @@ * Hydrogen doesn't have the polluting tag, so hydrogen burning generators won't create soot anymore * Compressing blood no longer creates oil, rather it makes heavy oil (250mB) * Tier 2 pickaxes (bismuth and up) now use the large item renderer +* Added the metal block material to the sellafite conversion list of nuclear explosions ## Fixed * WarTec should now be compatible again @@ -35,3 +36,6 @@ * Fixed the hydrotreater only using half as much crude oil per operation as it should * Fixed the old launchpad printing the wrong message when successfully launched via detonator * Oil spills should no longer save, fixing an issue where chunkloaded derricks would constantly spill oil entities into unloaded chunks, causing them to get stuck +* Fixed schrabidium conversion happening outside the main crater instead of inside +* Fixed wood burning generator creating smoke even if no power is being generated +* Fixed one of the woodburner's ports being offset in certain orientations diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index f50eabe76..583865950 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -84,9 +84,10 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 3), new Triplet(ModBlocks.ore_sellafield_emerald, m, 2)) .c(0.5) .max(i * 5).sol(true).mB(Blocks.coal_ore)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 1)) .c(0.2) .max(i * 5).sol(true).mB(ModBlocks.ore_lignite)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_emerald, m, 1)) .max(i * 5).sol(true).mB(ModBlocks.ore_beryllium)); - if(m <= 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); - if(m <= 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); + if(m > 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); + if(m > 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_radgem, m, 1)) .max(i * 5).sol(true).mB(Blocks.diamond_ore)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.iron)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.rock)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.sand)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.ground)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index 7d08f55dc..6f4bb62dc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -129,6 +129,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("burnTime", burnTime); + data.setInteger("powerGen", powerGen); data.setInteger("maxBurnTime", maxBurnTime); data.setBoolean("isOn", isOn); data.setBoolean("liquidBurn", liquidBurn); @@ -136,7 +137,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement this.networkPack(data, 25); } else { - if(this.isOn && ((!this.liquidBurn && this.burnTime > 0) || (this.liquidBurn && this.tank.getTankType().hasTrait(FT_Flammable.class) && tank.getFill() > 0))) { + if(powerGen > 0) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); worldObj.spawnParticle("smoke", xCoord + 0.5 - dir.offsetX + rot.offsetX, yCoord + 4, zCoord + 0.5 - dir.offsetZ + rot.offsetZ, 0, 0.05, 0); @@ -149,7 +150,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement ForgeDirection rot = dir.getRotation(ForgeDirection.UP); return new DirPos[] { new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), - new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetX, dir.getOpposite()) + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()) }; } @@ -158,6 +159,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement super.networkUnpack(nbt); this.power = nbt.getLong("power"); + this.powerGen = nbt.getInteger("powerGen"); this.burnTime = nbt.getInteger("burnTime"); this.maxBurnTime = nbt.getInteger("maxBurnTime"); this.isOn = nbt.getBoolean("isOn"); From 7f2411c216fcbc5cc6d5b5d6d62cb520c2ef2dd4 Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 18 Mar 2024 23:44:17 +1100 Subject: [PATCH 271/376] Add how2hadron presentation scenes 1-3 --- .../tileentity/machine/TileEntityHadron.java | 6 +- .../com/hbm/wiaj/cannery/CanneryHadron.java | 201 ++++++++++++++++++ src/main/java/com/hbm/wiaj/cannery/Jars.java | 3 +- src/main/resources/assets/hbm/lang/en_US.lang | 10 + 4 files changed, 216 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 213fc6d59..a0c634cd9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -364,9 +364,9 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //If any particles expire, cancel any succeeding particles, since they'll confuse the player particlesCompleted.clear(); - TileEntityHadron.this.state = reason; - TileEntityHadron.this.delay = delayError; - TileEntityHadron.this.setExpireStats(reason, particle.momentum, particle.posX, particle.posY, particle.posZ); + state = reason; + delay = delayError; + setExpireStats(reason, particle.momentum, particle.posX, particle.posY, particle.posZ); } public class Particle { diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java new file mode 100644 index 000000000..832ab1d2d --- /dev/null +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java @@ -0,0 +1,201 @@ +package com.hbm.wiaj.cannery; + +import com.hbm.blocks.ModBlocks; +import com.hbm.util.I18nUtil; +import com.hbm.wiaj.JarScene; +import com.hbm.wiaj.JarScript; +import com.hbm.wiaj.WorldInAJar; +import com.hbm.wiaj.actions.ActionCreateActor; +import com.hbm.wiaj.actions.ActionRemoveActor; +import com.hbm.wiaj.actions.ActionRotateBy; +import com.hbm.wiaj.actions.ActionSetBlock; +import com.hbm.wiaj.actions.ActionSetZoom; +import com.hbm.wiaj.actions.ActionWait; +import com.hbm.wiaj.actors.ActorFancyPanel; +import com.hbm.wiaj.actors.ActorFancyPanel.Orientation; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraftforge.common.util.ForgeDirection; + +public class CanneryHadron extends CanneryBase { + + @Override + public ItemStack getIcon() { + return new ItemStack(ModBlocks.hadron_core); + } + + @Override + public String getName() { + return "cannery.hadron"; + } + + @Override + public JarScript createScript() { + WorldInAJar world = new WorldInAJar(25, 5, 25); + JarScript script = new JarScript(world); + + + // FIRST SCENE: Show and explain the core component + JarScene scene0 = new JarScene(script); + + scene0.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); + + scene0.add(new ActionSetZoom(4, 0)); + + scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.0")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(100)); + scene0.add(new ActionRemoveActor(1)); + scene0.add(new ActionWait(5)); + + scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.1")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(100)); + scene0.add(new ActionRemoveActor(2)); + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.2")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(80)); + scene0.add(new ActionRemoveActor(3)); + scene0.add(new ActionWait(5)); + + scene0.add(new ActionRotateBy(-90, 0, 10)); + + scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.3")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(80)); + scene0.add(new ActionRemoveActor(4)); + scene0.add(new ActionWait(5)); + + scene0.add(new ActionRotateBy(90, 0, 10)); + + + // SECOND SCENE: Begin building a coil around the core component + JarScene scene1 = new JarScene(script); + + scene1.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); + + scene1.add(new ActionSetZoom(4, 0)); + scene1.add(new ActionSetZoom(-2, 10)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_alloy)); + scene1.add(new ActionWait(2)); + } + + scene1.add(new ActionWait(5)); + + scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -25, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.4")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(40)); + + for(Block block : new Block[] { + ModBlocks.hadron_coil_gold, + ModBlocks.hadron_coil_neodymium, + ModBlocks.hadron_coil_magtung, + ModBlocks.hadron_coil_schrabidium, + ModBlocks.hadron_coil_schrabidate, + ModBlocks.hadron_coil_starmetal, + ModBlocks.hadron_coil_chlorophyte, + ModBlocks.hadron_coil_mese + }) { + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, block)); + scene1.add(new ActionWait(1)); + } + + scene1.add(new ActionWait(4)); + } + + scene1.add(new ActionWait(20)); + scene1.add(new ActionRemoveActor(5)); + scene1.add(new ActionWait(5)); + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating)); + scene1.add(new ActionWait(2)); + } + + scene1.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.5")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(60)); + scene1.add(new ActionRemoveActor(6)); + scene1.add(new ActionWait(5)); + + + // THIRD SCENE: Add the Access Terminal and Power Plug + JarScene scene2 = new JarScene(script); + + scene2.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); + scene2.add(new ActionSetZoom(2, 0)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_mese)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating)); + } + + scene2.add(new ActionWait(5)); + + for(int i = 7; i >= 0; i--) { + double r = i * Math.PI / 4; + scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_neodymium)); + scene2.add(new ActionWait(1)); + } + + scene2.add(new ActionWait(20)); + + scene2.add(new ActionSetBlock(12 - 2, 2, 12, Blocks.air)); + + scene2.add(new ActionWait(15)); + + scene2.add(new ActionSetBlock(12 - 2, 2, 12, ModBlocks.hadron_access, ForgeDirection.EAST.ordinal())); + + scene2.add(new ActionWait(10)); + + scene2.add(new ActionCreateActor(7, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 36, 18, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.6")}}, 100) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene2.add(new ActionWait(80)); + scene2.add(new ActionRemoveActor(7)); + scene2.add(new ActionWait(20)); + + scene2.add(new ActionSetBlock(12, 2 + 2, 12, Blocks.air)); + + scene2.add(new ActionWait(15)); + + scene2.add(new ActionSetBlock(12, 2 + 2, 12, ModBlocks.hadron_power)); + + scene2.add(new ActionWait(10)); + + scene2.add(new ActionCreateActor(8, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.7")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene2.add(new ActionWait(80)); + scene2.add(new ActionRemoveActor(8)); + scene2.add(new ActionWait(20)); + + + script.addScene(scene0).addScene(scene1).addScene(scene2); + + return script; + } + +} diff --git a/src/main/java/com/hbm/wiaj/cannery/Jars.java b/src/main/java/com/hbm/wiaj/cannery/Jars.java index 47723ba8a..5605b1a5f 100644 --- a/src/main/java/com/hbm/wiaj/cannery/Jars.java +++ b/src/main/java/com/hbm/wiaj/cannery/Jars.java @@ -11,7 +11,7 @@ import com.hbm.items.ItemEnums.EnumPlantType; public class Jars { - public static HashMap canneries = new HashMap(); + public static HashMap canneries = new HashMap(); public static void initJars() { canneries.put(new ComparableStack(ModBlocks.heater_firebox), new CanneryFirebox()); @@ -23,6 +23,7 @@ public class Jars { canneries.put(new ComparableStack(ModBlocks.machine_silex), new CannerySILEX()); canneries.put(new ComparableStack(ModBlocks.foundry_channel), new CanneryFoundryChannel()); canneries.put(new ComparableStack(ModBlocks.machine_crucible), new CanneryCrucible()); + canneries.put(new ComparableStack(ModBlocks.hadron_core), new CanneryHadron()); canneries.put(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CanneryWillow()); canneries.put(new ComparableStack(DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.CD0)), new CanneryWillow()); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b7473cda6..0185b8ab2 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -523,6 +523,16 @@ cannery.willow.7=Now the willow's leaves can be harvested. Breaking the top bloc cannery.willow.8=Soon the plant will start growing again, yielding more leaves if the dirt is replaced with oily dirt. The leaves can be processed into cadmium powder using an ore acidizer. cannery.willow.9=Harvesting willow leaves can be automated using the automatic buzzsaw, it will only break plants that are ready for harvest. +cannery.hadron=Particle Accelerator +cannery.hadron.0=A Particle Accelerator consists of three main parts: A Core, an Analysis Chamber, and a set of Superconducting Coils +cannery.hadron.1=This is the Particle Accelerator Core Component, which fires particles at relativistic speeds down the coils towards the Analysis Chamber +cannery.hadron.2=Particles are ejected from here +cannery.hadron.3=And in circular accelerators, return to here +cannery.hadron.4=A coil segment is constructed by using 8 Dense Coils with nothing (or the core) in the middle +cannery.hadron.5=This coil segment must itself also be enclosed within Particle Accelerator Plating +cannery.hadron.6=To access the Core Component, you'll need to add one or more Access Terminals +cannery.hadron.7=The Core Component will also require power to operate, add a power plug on an edge + chem.ARSENIC=Arsenic Extraction chem.ASPHALT=Asphalt Production chem.BAKELITE=Bakelite Production From 67fbcfd3c222064238a1605d72eebaeddc47f5c6 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 19 Mar 2024 00:44:41 +1100 Subject: [PATCH 272/376] Add fourth scene and convert indentation to tabs --- .../com/hbm/wiaj/cannery/CanneryHadron.java | 330 +++++++++++------- src/main/resources/assets/hbm/lang/en_US.lang | 2 + 2 files changed, 202 insertions(+), 130 deletions(-) diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java index 832ab1d2d..d12e20b73 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java @@ -22,180 +22,250 @@ import net.minecraftforge.common.util.ForgeDirection; public class CanneryHadron extends CanneryBase { - @Override - public ItemStack getIcon() { - return new ItemStack(ModBlocks.hadron_core); - } + @Override + public ItemStack getIcon() { + return new ItemStack(ModBlocks.hadron_core); + } - @Override - public String getName() { - return "cannery.hadron"; - } + @Override + public String getName() { + return "cannery.hadron"; + } - @Override - public JarScript createScript() { + @Override + public JarScript createScript() { WorldInAJar world = new WorldInAJar(25, 5, 25); JarScript script = new JarScript(world); - - // FIRST SCENE: Show and explain the core component - JarScene scene0 = new JarScene(script); - scene0.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); - - scene0.add(new ActionSetZoom(4, 0)); - scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.0")}}, 200) - .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + // FIRST SCENE: Show and explain the core component + JarScene scene0 = new JarScene(script); + scene0.add(new ActionSetZoom(4, 0)); + + scene0.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); + + scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.0")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); scene0.add(new ActionWait(100)); scene0.add(new ActionRemoveActor(1)); - scene0.add(new ActionWait(5)); + scene0.add(new ActionWait(5)); - scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.1")}}, 200) - .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.1")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); - scene0.add(new ActionWait(100)); - scene0.add(new ActionRemoveActor(2)); - scene0.add(new ActionWait(10)); + scene0.add(new ActionWait(100)); + scene0.add(new ActionRemoveActor(2)); + scene0.add(new ActionWait(10)); - scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.2")}}, 200) - .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.2")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); - scene0.add(new ActionWait(80)); - scene0.add(new ActionRemoveActor(3)); - scene0.add(new ActionWait(5)); + scene0.add(new ActionWait(80)); + scene0.add(new ActionRemoveActor(3)); + scene0.add(new ActionWait(5)); - scene0.add(new ActionRotateBy(-90, 0, 10)); + scene0.add(new ActionRotateBy(-90, 0, 10)); - scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.3")}}, 200) - .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.3")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); - scene0.add(new ActionWait(80)); - scene0.add(new ActionRemoveActor(4)); - scene0.add(new ActionWait(5)); + scene0.add(new ActionWait(80)); + scene0.add(new ActionRemoveActor(4)); + scene0.add(new ActionWait(5)); - scene0.add(new ActionRotateBy(90, 0, 10)); + scene0.add(new ActionRotateBy(90, 0, 10)); - // SECOND SCENE: Begin building a coil around the core component - JarScene scene1 = new JarScene(script); - scene1.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); + // SECOND SCENE: Begin building a coil around the core component + JarScene scene1 = new JarScene(script); - scene1.add(new ActionSetZoom(4, 0)); - scene1.add(new ActionSetZoom(-2, 10)); + scene1.add(new ActionSetZoom(4, 0)); + scene1.add(new ActionSetZoom(-2, 10)); - for(int i = 0; i < 8; i++) { - double r = i * Math.PI / 4; - scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_alloy)); - scene1.add(new ActionWait(2)); - } + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_alloy)); + scene1.add(new ActionWait(2)); + } - scene1.add(new ActionWait(5)); + scene1.add(new ActionWait(5)); - scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -25, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.4")}}, 200) - .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -25, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.4")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); - scene1.add(new ActionWait(40)); + scene1.add(new ActionWait(40)); - for(Block block : new Block[] { - ModBlocks.hadron_coil_gold, - ModBlocks.hadron_coil_neodymium, - ModBlocks.hadron_coil_magtung, - ModBlocks.hadron_coil_schrabidium, - ModBlocks.hadron_coil_schrabidate, - ModBlocks.hadron_coil_starmetal, - ModBlocks.hadron_coil_chlorophyte, - ModBlocks.hadron_coil_mese - }) { - for(int i = 0; i < 8; i++) { - double r = i * Math.PI / 4; - scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, block)); - scene1.add(new ActionWait(1)); - } + for(Block block : new Block[] { + ModBlocks.hadron_coil_gold, + ModBlocks.hadron_coil_neodymium, + ModBlocks.hadron_coil_magtung, + ModBlocks.hadron_coil_schrabidium, + ModBlocks.hadron_coil_schrabidate, + ModBlocks.hadron_coil_starmetal, + ModBlocks.hadron_coil_chlorophyte, + ModBlocks.hadron_coil_mese + }) { + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, block)); + scene1.add(new ActionWait(1)); + } - scene1.add(new ActionWait(4)); - } - - scene1.add(new ActionWait(20)); - scene1.add(new ActionRemoveActor(5)); - scene1.add(new ActionWait(5)); - - for(int i = 0; i < 12; i++) { - double r = i * Math.PI / 6; - scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating)); - scene1.add(new ActionWait(2)); - } - - scene1.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.5")}}, 200) - .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); - - scene1.add(new ActionWait(60)); - scene1.add(new ActionRemoveActor(6)); - scene1.add(new ActionWait(5)); - - - // THIRD SCENE: Add the Access Terminal and Power Plug - JarScene scene2 = new JarScene(script); + scene1.add(new ActionWait(4)); + } - scene2.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); + scene1.add(new ActionWait(20)); + scene1.add(new ActionRemoveActor(5)); + scene1.add(new ActionWait(5)); + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating)); + scene1.add(new ActionWait(2)); + } + + scene1.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.5")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(60)); + scene1.add(new ActionRemoveActor(6)); + scene1.add(new ActionWait(5)); + + + + // THIRD SCENE: Add the Access Terminal and Power Plug + JarScene scene2 = new JarScene(script); scene2.add(new ActionSetZoom(2, 0)); - for(int i = 0; i < 8; i++) { - double r = i * Math.PI / 4; - scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_mese)); - } + scene2.add(new ActionWait(5)); - for(int i = 0; i < 12; i++) { - double r = i * Math.PI / 6; - scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating)); - } + for(int i = 7; i >= 0; i--) { + double r = i * Math.PI / 4; + scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_neodymium)); + scene2.add(new ActionWait(1)); + } - scene2.add(new ActionWait(5)); + scene2.add(new ActionWait(20)); - for(int i = 7; i >= 0; i--) { - double r = i * Math.PI / 4; - scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_neodymium)); - scene2.add(new ActionWait(1)); - } + scene2.add(new ActionSetBlock(12 - 2, 2, 12, Blocks.air)); - scene2.add(new ActionWait(20)); + scene2.add(new ActionWait(15)); - scene2.add(new ActionSetBlock(12 - 2, 2, 12, Blocks.air)); + scene2.add(new ActionSetBlock(12 - 2, 2, 12, ModBlocks.hadron_access, ForgeDirection.EAST.ordinal())); - scene2.add(new ActionWait(15)); + scene2.add(new ActionWait(10)); - scene2.add(new ActionSetBlock(12 - 2, 2, 12, ModBlocks.hadron_access, ForgeDirection.EAST.ordinal())); + scene2.add(new ActionCreateActor(7, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 36, 18, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.6")}}, 100) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene2.add(new ActionWait(80)); + scene2.add(new ActionRemoveActor(7)); + scene2.add(new ActionWait(20)); - scene2.add(new ActionWait(10)); + scene2.add(new ActionSetBlock(12, 2 + 2, 12, Blocks.air)); - scene2.add(new ActionCreateActor(7, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 36, 18, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.6")}}, 100) - .setColors(colorCopper).setOrientation(Orientation.LEFT))); - - scene2.add(new ActionWait(80)); - scene2.add(new ActionRemoveActor(7)); - scene2.add(new ActionWait(20)); + scene2.add(new ActionWait(15)); - scene2.add(new ActionSetBlock(12, 2 + 2, 12, Blocks.air)); + scene2.add(new ActionSetBlock(12, 2 + 2, 12, ModBlocks.hadron_power)); - scene2.add(new ActionWait(15)); + scene2.add(new ActionWait(10)); - scene2.add(new ActionSetBlock(12, 2 + 2, 12, ModBlocks.hadron_power)); - - scene2.add(new ActionWait(10)); - - scene2.add(new ActionCreateActor(8, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.7")}}, 200) - .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); - - scene2.add(new ActionWait(80)); - scene2.add(new ActionRemoveActor(8)); - scene2.add(new ActionWait(20)); + scene2.add(new ActionCreateActor(8, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.7")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene2.add(new ActionWait(80)); + scene2.add(new ActionRemoveActor(8)); + scene2.add(new ActionWait(20)); - script.addScene(scene0).addScene(scene1).addScene(scene2); - return script; - } - + // FOURTH SCENE: Add some coil segments and power them + JarScene scene3 = new JarScene(script); + scene3.add(new ActionSetZoom(2, 0)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 11, ModBlocks.hadron_coil_neodymium)); + scene3.add(new ActionWait(2)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 11, ModBlocks.hadron_plating)); + scene3.add(new ActionWait(2)); + } + + scene3.add(new ActionWait(5)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_neodymium)); + scene3.add(new ActionWait(2)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 10, ModBlocks.hadron_plating)); + scene3.add(new ActionWait(2)); + } + + scene3.add(new ActionWait(20)); + + scene3.add(new ActionSetBlock(12, 2 + 2, 10, Blocks.air)); + + scene3.add(new ActionWait(15)); + + scene3.add(new ActionSetBlock(12, 2 + 2, 10, ModBlocks.hadron_power)); + + scene3.add(new ActionWait(10)); + + scene3.add(new ActionCreateActor(9, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -28, -28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.8")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene3.add(new ActionWait(20)); + + scene3.add(new ActionCreateActor(10, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("50 x 8 = 400 = 4MHE")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene3.add(new ActionWait(20)); + + scene3.add(new ActionWait(80)); + scene3.add(new ActionRemoveActor(9)); + scene3.add(new ActionWait(10)); + + scene3.add(new ActionCreateActor(11, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.9")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene3.add(new ActionWait(80)); + scene3.add(new ActionRemoveActor(11)); + scene3.add(new ActionWait(10)); + + scene3.add(new ActionRemoveActor(10)); + + + + + // FIFTH SCENE: Add a bend to the coil + + + + // SIXTH SCENE: Reach the Analysis Chamber + + + + // ADDENDUM SCENE: Linear accelerators + + + + // ADDENDUM SCENE: Schottky diodes + + + script.addScene(scene0).addScene(scene1).addScene(scene2).addScene(scene3); + + return script; + } + } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0185b8ab2..85ad59751 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -532,6 +532,8 @@ cannery.hadron.4=A coil segment is constructed by using 8 Dense Coils with nothi cannery.hadron.5=This coil segment must itself also be enclosed within Particle Accelerator Plating cannery.hadron.6=To access the Core Component, you'll need to add one or more Access Terminals cannery.hadron.7=The Core Component will also require power to operate, add a power plug on an edge +cannery.hadron.8=The Accelerator will require enough Power Plugs to supply at least 10KHE of electricity per unit of Coil Strength +cannery.hadron.9=Note that the coil segment that wraps around the Core Component is not factored into the Coil Strength calculation chem.ARSENIC=Arsenic Extraction chem.ASPHALT=Asphalt Production From b733dfc25e36fb9b1fb8f8b67cfdb6216f33380c Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 18 Mar 2024 15:29:18 +0100 Subject: [PATCH 273/376] fixed F1 in NEI --- changelog | 6 ++++++ gradle.properties | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 21 ++++++++++++------- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/changelog b/changelog index 254aff747..f05221f27 100644 --- a/changelog +++ b/changelog @@ -28,6 +28,10 @@ * Compressing blood no longer creates oil, rather it makes heavy oil (250mB) * Tier 2 pickaxes (bismuth and up) now use the large item renderer * Added the metal block material to the sellafite conversion list of nuclear explosions +* Changed the mechanics for schottky particle diodes + * Instead of randomizing directions, schottky diodes will now split particles into "virtual particles" which take mutliple paths at once + * The particles will collapse as soon as the first virtual particle with a valid outcome reaches the end + * This change allows branching accelerators to be made, where the particle will always take the shortest path necessary to complete the operation. In essence, it allows a single accelerator to do any recipe, without requiring to power the entire accelerator, as only the path of the finishing particle will use up energy. ## Fixed * WarTec should now be compatible again @@ -39,3 +43,5 @@ * Fixed schrabidium conversion happening outside the main crater instead of inside * Fixed wood burning generator creating smoke even if no power is being generated * Fixed one of the woodburner's ports being offset in certain orientations +* Fixed fog caching causing weird behavior with the sky color change in response to crater biomes (or lack thereof) +* Fixed "F1 for help" keybind not working on non-standard inventories such as the NEI item list diff --git a/gradle.properties b/gradle.properties index 204129933..6cf1c03a5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,4 +18,4 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\ \ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks),\ \ 245tt (anvil GUI improvements), MellowArpeggiation (new animation system, turbine sounds, sound fixes,\ - \ industrial lights), FOlkvangrField (custom machine parts) + \ industrial lights, better particle diodes), FOlkvangrField (custom machine parts) diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 4a3ad255e..38f1102ee 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1,7 +1,6 @@ package com.hbm.main; import java.lang.reflect.Method; -import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Random; @@ -13,10 +12,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.MoveContext; -import com.hbm.blocks.rail.IRailNTM.RailCheckType; -import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; @@ -822,6 +817,8 @@ public class ModEventHandlerClient { CanneryBase cannery = Jars.canneries.get(comp); if(cannery != null) { list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("cannery.f1")); + lastCannery = comp; + canneryTimestamp = System.currentTimeMillis(); } } catch(Exception ex) { list.add(EnumChatFormatting.RED + "Error loading cannery: " + ex.getLocalizedMessage()); @@ -837,6 +834,9 @@ public class ModEventHandlerClient { }*/ } + private static long canneryTimestamp; + private static ComparableStack lastCannery = null; + private ResourceLocation ashes = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_ash.png"); @SideOnly(Side.CLIENT) @@ -948,9 +948,14 @@ public class ModEventHandlerClient { if(Keyboard.isKeyDown(Keyboard.KEY_F1)) { - ItemStack stack = getMouseOverStack(); - if(stack != null) { - ComparableStack comp = new ComparableStack(stack).makeSingular(); + ComparableStack comp = canneryTimestamp > System.currentTimeMillis() - 100 ? lastCannery : null; + + if(comp == null) { + ItemStack stack = getMouseOverStack(); + if(stack != null) comp = new ComparableStack(stack).makeSingular(); + } + + if(comp != null) { CanneryBase cannery = Jars.canneries.get(comp); if(cannery != null) { FMLCommonHandler.instance().showGuiScreen(new GuiWorldInAJar(cannery.createScript(), cannery.getName(), cannery.getIcon(), cannery.seeAlso())); From ffcce93fba15090517c9e687db804c5c75423f3d Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 18 Mar 2024 16:54:18 -0700 Subject: [PATCH 274/376] Fixed coolers --- .../tileentity/machine/TileEntityHadron.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 213fc6d59..bed65556f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -459,13 +459,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(cl1 > 0) cl1--; } - public void incrementCharge(Block block, int meta, int coilVal) { - - if(block == ModBlocks.hadron_cooler) { - if(meta == 0) cl0 += 10; - if(meta == 1) cl1 += 5; - } - + public void incrementCharge(int coilVal) { //not the best code ever made but it works, dammit if(cl1 > 0) { @@ -554,6 +548,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //-> all coils have to be air //-> all platings have to be analysis chamber walls boolean analysis = true; + //ensures coolers are useful throughout their initial segment + int totalValue = 0; for(int a = x - dX * 2; a <= x + dX * 2; a++) { for(int b = y - dY * 2; b <= y + dY * 2; b++) { @@ -599,7 +595,12 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs expire(p, EnumHadronState.ERROR_EXPECTED_COIL); } else { p.charge -= coilVal; - p.incrementCharge(block, meta, coilVal); + totalValue += coilVal; + + if(block == ModBlocks.hadron_cooler) { + if(meta == 0) p.cl0 += 10; + if(meta == 1) p.cl1 += 5; + } } continue; @@ -645,6 +646,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs } } } + //all errors prior to this point come from bad construction, where exact momentum is irrelevant + p.incrementCharge(totalValue); if(analysis) { From cac7aa6705e9197068e56a3e98dd6d99c1e3d920 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 19 Mar 2024 11:51:40 +1100 Subject: [PATCH 275/376] Fix diode reentry behaviour being wonky due to shallow history copy Fix diode error handling, will always fail if a particle can't leave a diode --- .../hbm/tileentity/machine/TileEntityHadron.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index a0c634cd9..55bbf917f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -424,8 +424,14 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs p.cl1 = cl1; p.expired = expired; p.plugs = new ArrayList(plugs); - p.history = new HashMap>(history); p.cloned = true; + + //Deep clone the history + p.history = new HashMap>(history); + for(TileEntityHadronDiode diode : p.history.keySet()) { + p.history.put(diode, new ArrayList(p.history.get(diode))); + } + return p; } @@ -752,8 +758,11 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //Add the used direction to the main particle AFTER cloning, so the clones don't get incorrect travel history usedDirections.add(p.dir); - //If we managed to exit, keep going - if(hasTurnedCurrent) return; + //If we failed to exit, raise DIODE_COLLISION + if(!hasTurnedCurrent) + expire(p, EnumHadronState.ERROR_DIODE_COLLISION); + + return; } //next step is air or the core, proceed From d65469e1c0c97873184c23399b022c2e6f18ac70 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 19 Mar 2024 15:03:49 +1100 Subject: [PATCH 276/376] Finish building the whole accelerator in the presentation! (fucking hell) --- .../com/hbm/wiaj/cannery/CanneryHadron.java | 425 +++++++++++++++++- src/main/resources/assets/hbm/lang/en_US.lang | 10 + 2 files changed, 423 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java index d12e20b73..ec57b7a13 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java @@ -6,6 +6,7 @@ import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; import com.hbm.wiaj.actions.ActionCreateActor; +import com.hbm.wiaj.actions.ActionOffsetBy; import com.hbm.wiaj.actions.ActionRemoveActor; import com.hbm.wiaj.actions.ActionRotateBy; import com.hbm.wiaj.actions.ActionSetBlock; @@ -151,11 +152,9 @@ public class CanneryHadron extends CanneryBase { scene2.add(new ActionWait(20)); scene2.add(new ActionSetBlock(12 - 2, 2, 12, Blocks.air)); - scene2.add(new ActionWait(15)); scene2.add(new ActionSetBlock(12 - 2, 2, 12, ModBlocks.hadron_access, ForgeDirection.EAST.ordinal())); - scene2.add(new ActionWait(10)); scene2.add(new ActionCreateActor(7, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 36, 18, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.6")}}, 100) @@ -166,11 +165,9 @@ public class CanneryHadron extends CanneryBase { scene2.add(new ActionWait(20)); scene2.add(new ActionSetBlock(12, 2 + 2, 12, Blocks.air)); - scene2.add(new ActionWait(15)); scene2.add(new ActionSetBlock(12, 2 + 2, 12, ModBlocks.hadron_power)); - scene2.add(new ActionWait(10)); scene2.add(new ActionCreateActor(8, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.7")}}, 200) @@ -215,22 +212,32 @@ public class CanneryHadron extends CanneryBase { scene3.add(new ActionWait(20)); scene3.add(new ActionSetBlock(12, 2 + 2, 10, Blocks.air)); - scene3.add(new ActionWait(15)); scene3.add(new ActionSetBlock(12, 2 + 2, 10, ModBlocks.hadron_power)); - scene3.add(new ActionWait(10)); scene3.add(new ActionCreateActor(9, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -28, -28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.8")}}, 200) .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); - scene3.add(new ActionWait(20)); + scene3.add(new ActionWait(40)); - scene3.add(new ActionCreateActor(10, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("50 x 8 = 400 = 4MHE")}}, 200) + scene3.add(new ActionCreateActor(10, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.math.0")}, {I18nUtil.resolveKey("cannery.hadron.math.1")}}, 0) .setColors(colorCopper).setOrientation(Orientation.LEFT))); - scene3.add(new ActionWait(20)); + scene3.add(new ActionWait(40)); + scene3.add(new ActionRemoveActor(10)); + scene3.add(new ActionWait(5)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_starmetal)); + scene3.add(new ActionWait(1)); + } + + scene3.add(new ActionCreateActor(13, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.math.2")}, {I18nUtil.resolveKey("cannery.hadron.math.3")}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + scene3.add(new ActionWait(80)); scene3.add(new ActionRemoveActor(9)); @@ -241,29 +248,423 @@ public class CanneryHadron extends CanneryBase { scene3.add(new ActionWait(80)); scene3.add(new ActionRemoveActor(11)); + scene3.add(new ActionWait(5)); + + scene3.add(new ActionCreateActor(12, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.10")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene3.add(new ActionWait(80)); + scene3.add(new ActionRemoveActor(12)); scene3.add(new ActionWait(10)); - scene3.add(new ActionRemoveActor(10)); + scene3.add(new ActionRemoveActor(13)); + for(int i = 7; i >= 0; i--) { + double r = i * Math.PI / 4; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_neodymium)); + scene3.add(new ActionWait(1)); + } // FIFTH SCENE: Add a bend to the coil + JarScene scene4 = new JarScene(script); + scene4.add(new ActionSetZoom(2, 0)); + + scene4.add(new ActionOffsetBy(0, 0, 4, 10)); + scene4.add(new ActionRotateBy(90, 0, 10)); + + + // BEGIN CORNER SEGMENT + for(int z = 9; z >= 7; z--) { + for(int x = 11; x <= 14; x++) { + if(z == 7 && x == 11) continue; + scene4.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene4.add(new ActionWait(2)); + } + } + + for(int z = 9; z >= 6; z--) { + for(int x = 10; x <= 14; x++) { + if(z == 6 && x <= 11) continue; + if(z <= 7 && x == 10) continue; + scene4.add(new ActionSetBlock(x, 1, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene4.add(new ActionWait(2)); + } + } + + for(int z = 9; z >= 6; z--) { + for(int x = 10; x <= 14; x++) { + if(z == 6 && x <= 11) continue; + if(z <= 7 && x == 10) continue; + if(z == 9 && x == 12) continue; + if(z == 8 && x == 12) continue; + if(z == 8 && x == 13) continue; + if(z == 8 && x == 14) continue; + scene4.add(new ActionSetBlock(x, 2, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene4.add(new ActionWait(2)); + } + } + // END CORNER SEGMENT + + + scene4.add(new ActionWait(5)); + + scene4.add(new ActionCreateActor(14, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -8, -35, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.11")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene4.add(new ActionWait(80)); + scene4.add(new ActionRemoveActor(14)); + scene4.add(new ActionWait(5)); + + scene4.add(new ActionCreateActor(15, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 24, -16, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.12")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene4.add(new ActionWait(80)); + scene4.add(new ActionRemoveActor(15)); + scene4.add(new ActionWait(10)); + + for(int z = 9; z >= 6; z--) { + for(int x = 10; x <= 14; x++) { + if(z == 6 && x <= 11) continue; + if(z <= 7 && x == 10) continue; + scene4.add(new ActionSetBlock(x, 3, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene4.add(new ActionWait(2)); + } + } + + for(int z = 9; z >= 7; z--) { + for(int x = 11; x <= 14; x++) { + if(z == 7 && x == 11) continue; + scene4.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene4.add(new ActionWait(2)); + } + } + + scene4.add(new ActionWait(10)); + + scene4.add(new ActionSetBlock(14, 2 + 2, 8, Blocks.air)); + scene4.add(new ActionWait(10)); + + scene4.add(new ActionSetBlock(14, 2 + 2, 8, ModBlocks.hadron_power)); + scene4.add(new ActionWait(10)); + // SIXTH SCENE: Reach the Analysis Chamber + JarScene scene5 = new JarScene(script); + scene5.add(new ActionSetZoom(2, 0)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene5.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 1.5F), 8 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene5.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 2.75F), 8 + (int)(Math.cos(r) * 2.75F), ModBlocks.hadron_plating)); + scene5.add(new ActionWait(1)); + } + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene5.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 1.5F), 8 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene5.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 2.75F), 8 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + scene5.add(new ActionWait(1)); + } + // BEGIN CORNER SEGMENT + for(int x = 17; x <= 19; x++) { + for(int z = 10; z >= 7; z--) { + if(z == 7 && x == 19) continue; + scene5.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene5.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 10; z >= 6; z--) { + if(z == 6 && x >= 19) continue; + if(z <= 7 && x == 20) continue; + scene5.add(new ActionSetBlock(x, 1, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 10; z >= 6; z--) { + if(z == 6 && x >= 19) continue; + if(z <= 7 && x == 20) continue; + if(z == 9 && x == 18) continue; + if(z == 8 && x == 18) continue; + if(z == 8 && x == 17) continue; + if(z == 10 && x == 18) continue; + scene5.add(new ActionSetBlock(x, 2, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 10; z >= 6; z--) { + if(z == 6 && x >= 19) continue; + if(z <= 7 && x == 20) continue; + scene5.add(new ActionSetBlock(x, 3, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 19; x++) { + for(int z = 10; z >= 7; z--) { + if(z == 7 && x == 19) continue; + scene5.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene5.add(new ActionWait(1)); + } + } + // END CORNER SEGMENT + + + scene5.add(new ActionRotateBy(-90, 0, 5)); + scene5.add(new ActionOffsetBy(0, 0, -8, 10)); + scene5.add(new ActionRotateBy(-90, 0, 10)); + scene5.add(new ActionSetZoom(-1, 10)); + + for(int z = 11; z <= 20; z++) { + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene5.add(new ActionSetBlock(18 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), z, ModBlocks.hadron_coil_neodymium)); + if(z == 11 || z == 20) scene5.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene5.add(new ActionSetBlock(18 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 3 && z % 3 == 0 ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + if(z == 11 || z == 20) scene5.add(new ActionWait(1)); + } + + scene5.add(new ActionWait(z < 13 || z > 18 ? 2 : 1)); + } + + // SEVENTH SCENE: Actually build the Analysis Chamber + JarScene scene6 = new JarScene(script); + scene6.add(new ActionSetZoom(1, 0)); + + scene6.add(new ActionSetZoom(1, 10)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 13, ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 13, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + + for(int z = 14; z <= 16; z++) { + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 6 ? ModBlocks.hadron_analysis_glass : ModBlocks.hadron_analysis)); + scene6.add(new ActionWait(2)); + } + } + + scene6.add(new ActionWait(10)); + + scene6.add(new ActionCreateActor(16, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, 0, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.13")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene6.add(new ActionWait(100)); + scene6.add(new ActionRemoveActor(16)); + scene6.add(new ActionWait(10)); + + for(int z = 17; z <= 20; z++) { + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), z, ModBlocks.hadron_coil_neodymium)); + if(z == 17 || z == 20) scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 3 && (z == 18 || z == 20) ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + if(z == 17 || z == 20) scene6.add(new ActionWait(1)); + } + + scene6.add(new ActionWait(1)); + } + + scene6.add(new ActionSetZoom(-1, 10)); + + // BEGIN CORNER SEGMENT + for(int x = 17; x <= 19; x++) { + for(int z = 23; z >= 21; z--) { + if(z == 23 && x == 19) continue; + scene6.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x >= 19) continue; + if(z >= 23 && x == 20) continue; + scene6.add(new ActionSetBlock(x, 1, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x >= 19) continue; + if(z >= 23 && x == 20) continue; + if(z == 21 && x == 18) continue; + if(z == 22 && x == 18) continue; + if(z == 22 && x == 17) continue; + if(z == 20 && x == 18) continue; + scene6.add(new ActionSetBlock(x, 2, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x >= 19) continue; + if(z >= 23 && x == 20) continue; + scene6.add(new ActionSetBlock(x, 3, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 19; x++) { + for(int z = 23; z >= 21; z--) { + if(z == 23 && x == 19) continue; + scene6.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + } + // END CORNER SEGMENT + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(14, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(14, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + + // BEGIN CORNER SEGMENT + for(int x = 11; x <= 13; x++) { + for(int z = 23; z >= 21; z--) { + if(z == 23 && x == 11) continue; + scene6.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 10; x <= 13; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x <= 11) continue; + if(z >= 23 && x == 10) continue; + scene6.add(new ActionSetBlock(x, 1, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 10; x <= 13; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x <= 11) continue; + if(z >= 23 && x == 10) continue; + if(z == 21 && x == 12) continue; + if(z == 22 && x == 12) continue; + if(z == 22 && x == 13) continue; + scene6.add(new ActionSetBlock(x, 2, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 10; x <= 13; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x <= 11) continue; + if(z >= 23 && x == 10) continue; + scene6.add(new ActionSetBlock(x, 3, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 11; x <= 13; x++) { + for(int z = 23; z >= 21; z--) { + if(z == 23 && x == 11) continue; + scene6.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + } + // END CORNER SEGMENT + + scene6.add(new ActionWait(10)); + + scene6.add(new ActionCreateActor(17, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -50, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.14")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene6.add(new ActionWait(100)); + scene6.add(new ActionRemoveActor(17)); + scene6.add(new ActionWait(10)); - // ADDENDUM SCENE: Linear accelerators // ADDENDUM SCENE: Schottky diodes - script.addScene(scene0).addScene(scene1).addScene(scene2).addScene(scene3); + + // ADDENDUM SCENE: Cooling + + + script + .addScene(scene0) + .addScene(scene1) + .addScene(scene2) + .addScene(scene3) + .addScene(scene4) + .addScene(scene5) + .addScene(scene6); return script; } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 85ad59751..58acaa682 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -534,6 +534,16 @@ cannery.hadron.6=To access the Core Component, you'll need to add one or more Ac cannery.hadron.7=The Core Component will also require power to operate, add a power plug on an edge cannery.hadron.8=The Accelerator will require enough Power Plugs to supply at least 10KHE of electricity per unit of Coil Strength cannery.hadron.9=Note that the coil segment that wraps around the Core Component is not factored into the Coil Strength calculation +cannery.hadron.10=Nor is this coil segment required for purely linear accelerators +cannery.hadron.11=For circular accelerators, you will need to add corners to change the direction of the particle +cannery.hadron.12=The outside corner coils can be omitted entirely +cannery.hadron.13=The final part of our Accelerator is the Analysis Chamber, which is a 3x3x3 empty chamber surrounded by Analysis Chamber blocks +cannery.hadron.14=Your completed Particle Accelerator should look something like this! + +cannery.hadron.math.0=Neodymium Coil Strength: 50 +cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE +cannery.hadron.math.2=Starmetal Coil Strength: 1,000 +cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE chem.ARSENIC=Arsenic Extraction chem.ASPHALT=Asphalt Production From e95adcac3f1fd77da23ce2e8bd7340dab74d2fb4 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 18 Mar 2024 21:51:37 -0700 Subject: [PATCH 277/376] added coolers to valid plating blocks --- src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index bed65556f..22dbb36f7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -837,7 +837,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs b instanceof BlockHadronCoil || b == ModBlocks.hadron_plating_glass || b == ModBlocks.hadron_analysis_glass || - b == ModBlocks.hadron_access; + b == ModBlocks.hadron_access || + b == ModBlocks.hadron_cooler; } public boolean isAnalysis(Block b) { From df7808b48ea1c3e8d8cb51da78d2b06974075e4c Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 19 Mar 2024 18:14:53 +1100 Subject: [PATCH 278/376] Add presentation for the Schottky Particle Diode --- .../com/hbm/wiaj/cannery/CanneryHadron.java | 7 + .../com/hbm/wiaj/cannery/CannerySchottky.java | 250 ++++++++++++++++++ src/main/java/com/hbm/wiaj/cannery/Jars.java | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 12 + 4 files changed, 270 insertions(+) create mode 100644 src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java index ec57b7a13..90089afc6 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java @@ -32,6 +32,13 @@ public class CanneryHadron extends CanneryBase { public String getName() { return "cannery.hadron"; } + + @Override + public CanneryBase[] seeAlso() { + return new CanneryBase[] { + new CannerySchottky() + }; + } @Override public JarScript createScript() { diff --git a/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java b/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java new file mode 100644 index 000000000..e7d956e53 --- /dev/null +++ b/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java @@ -0,0 +1,250 @@ +package com.hbm.wiaj.cannery; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.tileentity.machine.TileEntityHadronDiode; +import com.hbm.util.I18nUtil; +import com.hbm.wiaj.JarScene; +import com.hbm.wiaj.JarScript; +import com.hbm.wiaj.WorldInAJar; +import com.hbm.wiaj.actions.ActionCreateActor; +import com.hbm.wiaj.actions.ActionRemoveActor; +import com.hbm.wiaj.actions.ActionRotateBy; +import com.hbm.wiaj.actions.ActionSetBlock; +import com.hbm.wiaj.actions.ActionSetTile; +import com.hbm.wiaj.actions.ActionSetZoom; +import com.hbm.wiaj.actions.ActionWait; +import com.hbm.wiaj.actors.ActorFancyPanel; +import com.hbm.wiaj.actors.ActorFancyPanel.Orientation; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class CannerySchottky extends CanneryBase { + + @Override + public ItemStack getIcon() { + return new ItemStack(ModBlocks.hadron_diode); + } + + @Override + public String getName() { + return "cannery.schottky"; + } + + @Override + public CanneryBase[] seeAlso() { + return new CanneryBase[] { + new CanneryHadron() + }; + } + + @Override + public JarScript createScript() { + WorldInAJar world = new WorldInAJar(5, 5, 5); + JarScript script = new JarScript(world); + + + // FIRST SCENE: Show and explain the diode + JarScene scene0 = new JarScene(script); + scene0.add(new ActionSetZoom(4, 0)); + + scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode())); + scene0.add(new ActionSetBlock(2, 2, 2, ModBlocks.hadron_diode)); + + scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.0")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(100)); + scene0.add(new ActionRemoveActor(1)); + scene0.add(new ActionWait(5)); + + scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.1")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(80)); + scene0.add(new ActionRemoveActor(1)); + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.RIGHT))); + + scene0.add(new ActionWait(20)); + scene0.add(new ActionRemoveActor(2)); + + scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; }})); + + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.2")}}, 100) + .setColors(colorCopper).setOrientation(Orientation.RIGHT))); + + scene0.add(new ActionWait(60)); + scene0.add(new ActionRemoveActor(3)); + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene0.add(new ActionWait(10)); + scene0.add(new ActionRemoveActor(4)); + + scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.IN; }})); + + scene0.add(new ActionWait(5)); + + scene0.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene0.add(new ActionWait(10)); + scene0.add(new ActionRemoveActor(5)); + + scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; }})); + + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.3")}}, 100) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene0.add(new ActionWait(60)); + scene0.add(new ActionRemoveActor(6)); + scene0.add(new ActionWait(10)); + + + // SECOND SCENE: Add another entrance and exit + JarScene scene1 = new JarScene(script); + scene1.add(new ActionSetZoom(4, 0)); + + scene1.add(new ActionRotateBy(180, 0, 10)); + + scene1.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.RIGHT))); + + scene1.add(new ActionWait(10)); + scene1.add(new ActionRemoveActor(2)); + + scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; }})); + + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene1.add(new ActionWait(10)); + scene1.add(new ActionRemoveActor(4)); + + scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; sides[5] = DiodeConfig.IN; }})); + + scene1.add(new ActionWait(5)); + + scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene1.add(new ActionWait(10)); + scene1.add(new ActionRemoveActor(5)); + + scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; sides[5] = DiodeConfig.OUT; }})); + + scene1.add(new ActionWait(10)); + + scene1.add(new ActionRotateBy(-180, 0, 10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.4")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.5")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.6")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.7")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.8")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + + + // THIRD SCENE: Correctly enclose the diode + JarScene scene2 = new JarScene(script); + scene2.add(new ActionSetZoom(4, 0)); + + scene2.add(new ActionSetZoom(-2, 10)); + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + if((x == 0 || x == 4) && (z == 0 || z == 4)) continue; + scene2.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene2.add(new ActionWait(1)); + } + } + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + scene2.add(new ActionSetBlock(x, 1, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy)); + scene2.add(new ActionWait(1)); + } + } + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + if(x == 2 || z == 2) continue; + scene2.add(new ActionSetBlock(x, 2, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy)); + scene2.add(new ActionWait(1)); + } + } + + scene2.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.9")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + + scene2.add(new ActionRotateBy(360, 0, 100)); + scene2.add(new ActionRemoveActor(1)); + scene2.add(new ActionWait(10)); + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + scene2.add(new ActionSetBlock(x, 3, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy)); + scene2.add(new ActionWait(1)); + } + } + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + if((x == 0 || x == 4) && (z == 0 || z == 4)) continue; + scene2.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene2.add(new ActionWait(1)); + } + } + + + script + .addScene(scene0) + .addScene(scene1) + .addScene(scene2); + + return script; + } + +} diff --git a/src/main/java/com/hbm/wiaj/cannery/Jars.java b/src/main/java/com/hbm/wiaj/cannery/Jars.java index 5605b1a5f..7355cdd5c 100644 --- a/src/main/java/com/hbm/wiaj/cannery/Jars.java +++ b/src/main/java/com/hbm/wiaj/cannery/Jars.java @@ -24,6 +24,7 @@ public class Jars { canneries.put(new ComparableStack(ModBlocks.foundry_channel), new CanneryFoundryChannel()); canneries.put(new ComparableStack(ModBlocks.machine_crucible), new CanneryCrucible()); canneries.put(new ComparableStack(ModBlocks.hadron_core), new CanneryHadron()); + canneries.put(new ComparableStack(ModBlocks.hadron_diode), new CannerySchottky()); canneries.put(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CanneryWillow()); canneries.put(new ComparableStack(DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.CD0)), new CanneryWillow()); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 58acaa682..77db3a726 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -545,6 +545,18 @@ cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE cannery.hadron.math.2=Starmetal Coil Strength: 1,000 cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE +cannery.schottky=Schottky Particle Diode +cannery.schottky.0=This is a Schottky Particle Diode. It can allow for more complex particle accelerator designs and save on electricity +cannery.schottky.1=By default it blocks all particles and must be configured with a Screwdriver +cannery.schottky.2=This face will now accept entering particles +cannery.schottky.3=And this face will eject particles that enter +cannery.schottky.4=The diode now has two exits, and will now behave in a quantum manner, creating virtual particles for each exit +cannery.schottky.5=Once all the virtual particles have reached an Analysis Chamber, the particle with the lowest momentum required for the current recipe is chosen +cannery.schottky.6=The chosen particle undergoes a wavefunction collapse and is made real, consuming only the power that the collapsing particle requires +cannery.schottky.7=If any virtual particles encounter any malformed segments, all virtual particles will be discarded and the erroring particle will be collapsed instead +cannery.schottky.8=Note that virtual particles will never use the same Diode exit twice. Infinite loops will fail, but re-entering a Diode is otherwise fine +cannery.schottky.9=Your Schottky Particle Diode should be properly enclosed, with free paths for each intersection exit + chem.ARSENIC=Arsenic Extraction chem.ASPHALT=Asphalt Production chem.BAKELITE=Bakelite Production From d0e90250c5d02249e60667aab2906a8b8e6c6ba3 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 19 Mar 2024 21:20:53 +0100 Subject: [PATCH 279/376] loot pool config system --- changelog | 1 + .../hbm/commands/CommandReloadRecipes.java | 2 + .../com/hbm/config/ItemPoolConfigJSON.java | 151 ++++++++++++++++++ src/main/java/com/hbm/itempool/ItemPool.java | 53 ++++++ .../com/hbm/itempool/ItemPoolsLegacy.java | 52 ++++++ .../java/com/hbm/lib/HbmChestContents.java | 30 ++-- src/main/java/com/hbm/main/MainRegistry.java | 3 + 7 files changed, 278 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/hbm/config/ItemPoolConfigJSON.java create mode 100644 src/main/java/com/hbm/itempool/ItemPool.java create mode 100644 src/main/java/com/hbm/itempool/ItemPoolsLegacy.java diff --git a/changelog b/changelog index f05221f27..5e7ab9b3a 100644 --- a/changelog +++ b/changelog @@ -32,6 +32,7 @@ * Instead of randomizing directions, schottky diodes will now split particles into "virtual particles" which take mutliple paths at once * The particles will collapse as soon as the first virtual particle with a valid outcome reaches the end * This change allows branching accelerators to be made, where the particle will always take the shortest path necessary to complete the operation. In essence, it allows a single accelerator to do any recipe, without requiring to power the entire accelerator, as only the path of the finishing particle will use up energy. +* The particle accelerator as well as the schottky particle diodes now have presentations explaining how they work ## Fixed * WarTec should now be compatible again diff --git a/src/main/java/com/hbm/commands/CommandReloadRecipes.java b/src/main/java/com/hbm/commands/CommandReloadRecipes.java index ea28801d5..8b2a939eb 100644 --- a/src/main/java/com/hbm/commands/CommandReloadRecipes.java +++ b/src/main/java/com/hbm/commands/CommandReloadRecipes.java @@ -1,5 +1,6 @@ package com.hbm.commands; +import com.hbm.config.ItemPoolConfigJSON; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.util.ChatBuilder; @@ -24,6 +25,7 @@ public class CommandReloadRecipes extends CommandBase { public void processCommand(ICommandSender sender, String[] args) { try { SerializableRecipe.initialize(); + ItemPoolConfigJSON.initialize(); sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Reload complete :)")); } catch(Exception ex) { sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush()); diff --git a/src/main/java/com/hbm/config/ItemPoolConfigJSON.java b/src/main/java/com/hbm/config/ItemPoolConfigJSON.java new file mode 100644 index 000000000..849968062 --- /dev/null +++ b/src/main/java/com/hbm/config/ItemPoolConfigJSON.java @@ -0,0 +1,151 @@ +package com.hbm.config; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map.Entry; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.JsonToNBT; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolConfigJSON { + + public static final Gson gson = new Gson(); + public static HashMap pools = new HashMap(); + + public static void initialize() { + File folder = MainRegistry.configHbmDir; + + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmItemPools.json"); + File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmItemPools.json"); + + if(!config.exists()) { + writeDefault(template); + } else { + readConfig(config); + } + + for(Entry entry : pools.entrySet()) { + System.out.println(entry.getKey()); + + for(WeightedRandomChestContent item : entry.getValue().pool) { + System.out.println(item.theItemId + " " + item.theItemId.stackTagCompound + " " + item.theMinimumChanceToGenerateItem + " " + item.theMaximumChanceToGenerateItem + " " + item.itemWeight); + } + } + } + + private static void writeDefault(File file) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(file)); + writer.setIndent(" "); + writer.beginObject(); + writer.name("pools").beginObject(); + + for(Entry entry : pools.entrySet()) { + writer.name(entry.getKey()).beginArray(); + + for(WeightedRandomChestContent content : entry.getValue().pool) { + writer.setIndent(" "); + writer.beginArray(); + writer.setIndent(""); + writeItemStack(content.theItemId, writer); + writer.setIndent(""); + writer.value(content.theMinimumChanceToGenerateItem); + writer.value(content.theMaximumChanceToGenerateItem); + writer.value(content.itemWeight); + writer.endArray(); + } + + writer.setIndent(" "); + writer.endArray(); + } + + writer.endObject(); + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + private static void readConfig(File file) { + HashMap newPools = new HashMap(); + try { + JsonObject json = gson.fromJson(new FileReader(file), JsonObject.class); + JsonObject pools = json.get("pools").getAsJsonObject(); + + for(Entry entry : pools.entrySet()) { + + String poolName = entry.getKey(); + ItemPool pool = new ItemPool(); + pool.name = poolName; + + for(JsonElement poolEntry : entry.getValue().getAsJsonArray()) { + JsonArray array = poolEntry.getAsJsonArray(); + ItemStack stack = readItemStack(array.get(0).getAsJsonArray()); + int min = array.get(1).getAsInt(); + int max = array.get(2).getAsInt(); + int weight = array.get(3).getAsInt(); + pool.add(stack, min, max, weight); + } + + pool.build(); + newPools.put(poolName, pool); + } + + ItemPoolConfigJSON.pools = newPools; + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + + public static void writeItemStack(ItemStack stack, JsonWriter writer) throws IOException { + writer.beginArray(); + writer.setIndent(""); + writer.value(Item.itemRegistry.getNameForObject(stack.getItem())); + if(stack.stackSize != 1 || stack.getItemDamage() != 0 || stack.hasTagCompound()) writer.value(stack.stackSize); + if(stack.getItemDamage() != 0 || stack.hasTagCompound()) writer.value(stack.getItemDamage()); + if(stack.hasTagCompound()) writer.value(stack.stackTagCompound.toString()); + writer.endArray(); + writer.setIndent(" "); + } + + public static ItemStack readItemStack(JsonArray array) { + try { + Item item = (Item) Item.itemRegistry.getObject(array.get(0).getAsString()); + int stacksize = array.size() > 1 ? array.get(1).getAsInt() : 1; + int meta = array.size() > 2 ? array.get(2).getAsInt() : 0; + if(item != null) { + ItemStack stack = new ItemStack(item, stacksize, meta); + if(array.size() > 3) { + String tag = array.get(3).getAsString(); + NBTBase nbt = JsonToNBT.func_150315_a(tag); + if(nbt instanceof NBTTagCompound) { + stack.stackTagCompound = (NBTTagCompound) nbt; + } + } + return stack; + } + } catch(Exception ex) { } + MainRegistry.logger.error("Error reading stack array " + array.toString() + " - defaulting to NOTHING item!"); + return new ItemStack(ModItems.nothing); + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPool.java b/src/main/java/com/hbm/itempool/ItemPool.java new file mode 100644 index 000000000..7d21ad6dd --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPool.java @@ -0,0 +1,53 @@ +package com.hbm.itempool; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.config.ItemPoolConfigJSON; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPool { + + public String name; + public WeightedRandomChestContent[] pool = new WeightedRandomChestContent[0]; + + private List buildingList = new ArrayList(); + + public ItemPool() { } + + public ItemPool(String name) { + this.name = name; + ItemPoolConfigJSON.pools.put(name, this); + } + + public ItemPool add(Item item, int meta, int min, int max, int weight) { buildingList.add(new WeightedRandomChestContent(item, meta, min, max, weight)); return this; } + public ItemPool add(Block block, int meta, int min, int max, int weight) { buildingList.add(new WeightedRandomChestContent(Item.getItemFromBlock(block), meta, min, max, weight)); return this; } + public ItemPool add(ItemStack item, int min, int max, int weight) { buildingList.add(new WeightedRandomChestContent(item, min, max, weight)); return this; } + + public ItemPool build() { + + this.pool = new WeightedRandomChestContent[buildingList.size()]; + + for(int i = 0; i < pool.length; i++) { + this.pool[i] = this.buildingList.get(i); + } + + this.buildingList.clear(); + + return this; + } + + public static void initialize() { + //here we abuse java's lazy loading behavior, referencing the item pools with what is effectively a NOP in order to cause instantiation + //this of course has to happen after the items and blocks are registered but before the item pool config + //will this cause horrific issues if something manages to load the item pools prematurely? absolutely + //however, the advantage here is that i don't need to separate the fields from the instantiation, i can simply slap them together into the class and it works + //is this shitty coding practice? yes! but it's slightly more convenient than the alternative so i will roll with it anyway because go fuck yourself + //who are you to tell me what i can and cannot do + ItemPoolsLegacy.poolGeneric.hashCode(); + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java new file mode 100644 index 000000000..f27b31bd5 --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -0,0 +1,52 @@ +package com.hbm.itempool; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; + +import static com.hbm.lib.HbmChestContents.*; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +/** + * Item pools for "legacy" structures, i.e. schematic2java ones + * @author hbm + * + */ +public class ItemPoolsLegacy { + + //"generic" set, found commonly in chests in many structures + public static ItemPool poolGeneric = new ItemPool("POOL_GENERIC") {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.bread, 0, 1, 5, 8), + weighted(ModItems.twinkie, 0, 1, 3, 6), + weighted(Items.iron_ingot, 0, 2, 6, 10), + weighted(ModItems.ingot_steel, 0, 2, 5, 7), + weighted(ModItems.ingot_beryllium, 0, 1, 2, 4), + weighted(ModItems.ingot_titanium, 0, 1, 1, 3), + weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 5), + weighted(ModItems.gun_revolver, 0, 1, 1, 3), + weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), + weighted(ModItems.gun_kit_1, 0, 1, 3, 4), + weighted(ModItems.gun_lever_action, 0, 1, 1, 1), + weighted(ModItems.ammo_20gauge, 0, 2, 6, 3), + weighted(ModItems.casing_9, 0, 4, 10, 3), + weighted(ModItems.casing_50, 0, 4, 10, 3), + weighted(ModItems.cordite, 0, 4, 6, 5), + weighted(ModItems.battery_generic, 0, 1, 1, 4), + weighted(ModItems.battery_advanced, 0, 1, 1, 2), + weighted(ModItems.scrap, 0, 1, 3, 10), + weighted(ModItems.dust, 0, 2, 4, 9), + weighted(ModItems.bottle_opener, 0, 1, 1, 2), + weighted(ModItems.bottle_nuka, 0, 1, 3, 4), + weighted(ModItems.bottle_cherry, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 1), + weighted(ModItems.cap_nuka, 0, 1, 15, 7), + weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), + weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 3) + }; + }}; +} diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 6131bcb9a..d77fb7647 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -13,6 +13,7 @@ import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.ItemBookLore; import com.hbm.items.tool.ItemBlowtorch; +import net.minecraft.block.Block; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -85,10 +86,10 @@ public class HbmChestContents { weighted(ModItems.battery_advanced, 0, 1, 1, 3), weighted(ModItems.powder_iodine, 0, 1, 1, 1), weighted(ModItems.powder_bromine, 0, 1, 1, 1), - weighted(Item.getItemFromBlock(ModBlocks.steel_poles), 0, 1, 4, 8), - weighted(Item.getItemFromBlock(ModBlocks.steel_scaffold), 0, 1, 3, 8), - weighted(Item.getItemFromBlock(ModBlocks.pole_top), 0, 1, 1, 4), - weighted(Item.getItemFromBlock(ModBlocks.pole_satellite_receiver), 0, 1, 1, 7), + weighted(ModBlocks.steel_poles, 0, 1, 4, 8), + weighted(ModBlocks.steel_scaffold, 0, 1, 3, 8), + weighted(ModBlocks.pole_top, 0, 1, 1, 4), + weighted(ModBlocks.pole_satellite_receiver, 0, 1, 1, 7), weighted(ModItems.scrap, 0, 1, 3, 10), weighted(ModItems.dust, 0, 2, 4, 9), weighted(ModItems.bottle_opener, 0, 1, 1, 2), @@ -124,7 +125,7 @@ public class HbmChestContents { weighted(ModItems.fusion_core, 0, 1, 1, 4), weighted(ModItems.bottle_nuka, 0, 1, 3, 6), weighted(ModItems.bottle_quantum, 0, 1, 1, 3), - weighted(Item.getItemFromBlock(ModBlocks.red_barrel), 0, 1, 1, 6), + weighted(ModBlocks.red_barrel, 0, 1, 1, 6), weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), @@ -146,7 +147,7 @@ public class HbmChestContents { weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), weighted(ModItems.hazmat_kit, 0, 1, 1, 1), weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), - weighted(Item.getItemFromBlock(ModBlocks.yellow_barrel), 0, 1, 1, 2) }; + weighted(ModBlocks.yellow_barrel, 0, 1, 1, 2) }; public static WeightedRandomChestContent[] nuclearFuel = new WeightedRandomChestContent[] { weighted(ModItems.billet_uranium, 0, 1, 4, 4), @@ -190,7 +191,7 @@ public class HbmChestContents { weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), weighted(ModItems.hazmat_kit, 0, 1, 1, 2), weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), - weighted(Item.getItemFromBlock(ModBlocks.yellow_barrel), 0, 1, 3, 3) }; + weighted(ModBlocks.yellow_barrel, 0, 1, 3, 3) }; public static WeightedRandomChestContent[] vertibird = new WeightedRandomChestContent[] { weighted(ModItems.t45_helmet, 0, 1, 1, 15), @@ -245,12 +246,12 @@ public class HbmChestContents { weighted(ModItems.cell_antimatter, 0, 1, 1, 1), weighted(ModItems.powder_neodymium, 0, 1, 1, 1), weighted(ModItems.powder_niobium, 0, 1, 1, 1), - weighted(Item.getItemFromBlock(ModBlocks.fusion_conductor), 0, 2, 4, 5), - weighted(Item.getItemFromBlock(ModBlocks.fusion_heater), 0, 1, 3, 5), - weighted(Item.getItemFromBlock(ModBlocks.pwr_fuel), 0, 1, 2, 5), - weighted(Item.getItemFromBlock(ModBlocks.block_tungsten), 0, 3, 8, 5), - weighted(Item.getItemFromBlock(ModBlocks.red_wire_coated), 0, 4, 8, 5), - weighted(Item.getItemFromBlock(ModBlocks.red_cable), 0, 8, 16, 5) }; + weighted(ModBlocks.fusion_conductor, 0, 2, 4, 5), + weighted(ModBlocks.fusion_heater, 0, 1, 3, 5), + weighted(ModBlocks.pwr_fuel, 0, 1, 2, 5), + weighted(ModBlocks.block_tungsten, 0, 3, 8, 5), + weighted(ModBlocks.red_wire_coated, 0, 4, 8, 5), + weighted(ModBlocks.red_cable, 0, 8, 16, 5) }; public static WeightedRandomChestContent[] powder = new WeightedRandomChestContent[] { weighted(ModItems.powder_neptunium, 0, 1, 32, 1), @@ -410,8 +411,9 @@ public class HbmChestContents { weighted(Items.book, 0, 1, 5, 10), weighted(Items.experience_bottle, 0, 1, 3, 1), }; - + public static WeightedRandomChestContent weighted(Item item, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(item, meta, min, max, weight); } + public static WeightedRandomChestContent weighted(Block block, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(Item.getItemFromBlock(block), meta, min, max, weight); } public static WeightedRandomChestContent weighted(ItemStack item, int min, int max, int weight) { return new WeightedRandomChestContent(item, min, max, weight); } /** ITEMBOOKLORE SHIT */ diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 8f815d14e..27763384c 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -29,6 +29,7 @@ import com.hbm.inventory.material.Mats; import com.hbm.inventory.recipes.*; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.itempool.ItemPool; import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; import com.hbm.items.ItemEnums.EnumAchievementType; import com.hbm.items.ModItems; @@ -861,6 +862,8 @@ public class MainRegistry { RadiolysisRecipes.registerRadiolysis(); FalloutConfigJSON.initialize(); + ItemPool.initialize(); + ItemPoolConfigJSON.initialize(); TileEntityNukeCustom.registerBombItems(); ArmorUtil.register(); From 33e6237377e95e3e81a03b1c5da39384a8bd2583 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 20 Mar 2024 16:46:05 +0100 Subject: [PATCH 280/376] finished item pool config implementation --- changelog | 2 + .../com/hbm/blocks/generic/BlockKeyhole.java | 37 +- .../hbm/blocks/machine/MachineIGenerator.java | 2 - .../com/hbm/config/ItemPoolConfigJSON.java | 18 +- .../entity/train/EntityRailCarRidable.java | 1 - .../container/ContainerMachineArcFurnace.java | 1 - src/main/java/com/hbm/itempool/ItemPool.java | 36 +- .../com/hbm/itempool/ItemPoolsComponent.java | 188 ++++++++ .../com/hbm/itempool/ItemPoolsLegacy.java | 252 ++++++++-- .../com/hbm/itempool/ItemPoolsRedRoom.java | 43 ++ .../com/hbm/itempool/ItemPoolsSingle.java | 118 +++++ .../java/com/hbm/lib/HbmChestContents.java | 437 +----------------- src/main/java/com/hbm/lib/HbmWorldGen.java | 66 +-- src/main/java/com/hbm/main/MainRegistry.java | 2 - .../com/hbm/main/ModEventHandlerClient.java | 1 - .../render/item/weapon/ItemRenderBenelli.java | 1 - .../java/com/hbm/world/dungeon/Antenna.java | 5 +- .../java/com/hbm/world/dungeon/Barrel.java | 5 +- .../hbm/world/dungeon/CrashedVertibird.java | 7 +- .../com/hbm/world/dungeon/DesertAtom001.java | 5 +- .../com/hbm/world/dungeon/DesertAtom002.java | 11 +- .../com/hbm/world/dungeon/DesertAtom003.java | 5 +- .../java/com/hbm/world/dungeon/Factory.java | 11 +- .../java/com/hbm/world/dungeon/Radio01.java | 13 +- .../java/com/hbm/world/dungeon/Relay.java | 9 +- .../java/com/hbm/world/dungeon/Satellite.java | 11 +- src/main/java/com/hbm/world/dungeon/Silo.java | 10 +- .../java/com/hbm/world/dungeon/Spaceship.java | 13 +- .../java/com/hbm/world/dungeon/Vertibird.java | 7 +- .../world/gen/component/BunkerComponents.java | 32 +- .../world/gen/component/CivilianFeatures.java | 21 +- .../world/gen/component/OfficeFeatures.java | 29 +- .../world/gen/component/SiloComponent.java | 55 +-- 33 files changed, 782 insertions(+), 672 deletions(-) create mode 100644 src/main/java/com/hbm/itempool/ItemPoolsComponent.java create mode 100644 src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java create mode 100644 src/main/java/com/hbm/itempool/ItemPoolsSingle.java diff --git a/changelog b/changelog index 5e7ab9b3a..a69023615 100644 --- a/changelog +++ b/changelog @@ -33,6 +33,8 @@ * The particles will collapse as soon as the first virtual particle with a valid outcome reaches the end * This change allows branching accelerators to be made, where the particle will always take the shortest path necessary to complete the operation. In essence, it allows a single accelerator to do any recipe, without requiring to power the entire accelerator, as only the path of the finishing particle will use up energy. * The particle accelerator as well as the schottky particle diodes now have presentations explaining how they work +* Loot pools are now configurable. Loot is divided into different categories, and structures may generate things from certain categories. + * The config currently includes all items spawned in dungeon chests/crates/safes/lockers, excluding black book spawns, but also including the loot pool for red room pedestals ## Fixed * WarTec should now be compatible again diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java index 74b2ffdfd..d3b5a1bd7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -1,15 +1,15 @@ package com.hbm.blocks.generic; -import java.util.ArrayList; import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsRedRoom; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemModDoor; import com.hbm.main.MainRegistry; -import com.hbm.util.WeightedRandomObject; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -23,6 +23,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.WeightedRandom; +import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -209,38 +210,10 @@ public class BlockKeyhole extends BlockStone { for(EntityItem item : items) item.setDead(); } - public static List pedestalItems; - public static void spawnPedestalItem(World world, int x, int y, int z) { world.setBlock(x, y, z, ModBlocks.pedestal); TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); - if(pedestalItems == null) initPedestal(); - pedestal.item = ((WeightedRandomObject) WeightedRandom.getRandomItem(world.rand, pedestalItems)).asStack().copy(); - } - - public static void initPedestal() { - pedestalItems = new ArrayList(); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ballistic_gauntlet), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.armor_polish), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.bandaid), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.serum), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.quartz_plutonium), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.morning_glory), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.spider_milk), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ink), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.heart_container), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.black_diamond), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.scrumpy), 10)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wild_p), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_aos), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_qos), 5)); - - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.starmetal_sword), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.gem_alexandrite), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.crackpipe), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.flask_infusion), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModBlocks.boxcar), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.book_of_), 5)); - pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.gun_revolver_pip), 5)); + WeightedRandomChestContent content = (WeightedRandomChestContent) WeightedRandom.getRandomItem(world.rand, ItemPool.getPool(ItemPoolsRedRoom.POOL_RED_PEDESTAL)); + pedestal.item = content.theItemId.copy(); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java index 2c0d59ff6..6760737a9 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java @@ -5,11 +5,9 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineIGenerator; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/config/ItemPoolConfigJSON.java b/src/main/java/com/hbm/config/ItemPoolConfigJSON.java index 849968062..306da20b7 100644 --- a/src/main/java/com/hbm/config/ItemPoolConfigJSON.java +++ b/src/main/java/com/hbm/config/ItemPoolConfigJSON.java @@ -13,7 +13,6 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.itempool.ItemPool; -import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -27,9 +26,12 @@ import net.minecraft.util.WeightedRandomChestContent; public class ItemPoolConfigJSON { public static final Gson gson = new Gson(); - public static HashMap pools = new HashMap(); public static void initialize() { + + //writes the defaults + ItemPool.initialize(); + File folder = MainRegistry.configHbmDir; File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmItemPools.json"); @@ -40,14 +42,6 @@ public class ItemPoolConfigJSON { } else { readConfig(config); } - - for(Entry entry : pools.entrySet()) { - System.out.println(entry.getKey()); - - for(WeightedRandomChestContent item : entry.getValue().pool) { - System.out.println(item.theItemId + " " + item.theItemId.stackTagCompound + " " + item.theMinimumChanceToGenerateItem + " " + item.theMaximumChanceToGenerateItem + " " + item.itemWeight); - } - } } private static void writeDefault(File file) { @@ -58,7 +52,7 @@ public class ItemPoolConfigJSON { writer.beginObject(); writer.name("pools").beginObject(); - for(Entry entry : pools.entrySet()) { + for(Entry entry : ItemPool.pools.entrySet()) { writer.name(entry.getKey()).beginArray(); for(WeightedRandomChestContent content : entry.getValue().pool) { @@ -110,7 +104,7 @@ public class ItemPoolConfigJSON { newPools.put(poolName, pool); } - ItemPoolConfigJSON.pools = newPools; + ItemPool.pools = newPools; } catch(Exception ex) { ex.printStackTrace(); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 8ac621cf2..5ba0a98b4 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -3,7 +3,6 @@ package com.hbm.entity.train; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.ILookOverlay; import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java index 15fbae2e9..792fc0419 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java @@ -2,7 +2,6 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotSmelting; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; import api.hbm.energy.IBatteryItem; diff --git a/src/main/java/com/hbm/itempool/ItemPool.java b/src/main/java/com/hbm/itempool/ItemPool.java index 7d21ad6dd..eb85f2f9f 100644 --- a/src/main/java/com/hbm/itempool/ItemPool.java +++ b/src/main/java/com/hbm/itempool/ItemPool.java @@ -1,16 +1,22 @@ package com.hbm.itempool; +import static com.hbm.lib.HbmChestContents.weighted; + import java.util.ArrayList; +import java.util.HashMap; import java.util.List; -import com.hbm.config.ItemPoolConfigJSON; +import com.hbm.items.ModItems; import net.minecraft.block.Block; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; public class ItemPool { + + public static HashMap pools = new HashMap(); public String name; public WeightedRandomChestContent[] pool = new WeightedRandomChestContent[0]; @@ -21,7 +27,7 @@ public class ItemPool { public ItemPool(String name) { this.name = name; - ItemPoolConfigJSON.pools.put(name, this); + pools.put(name, this); } public ItemPool add(Item item, int meta, int min, int max, int weight) { buildingList.add(new WeightedRandomChestContent(item, meta, min, max, weight)); return this; } @@ -42,12 +48,24 @@ public class ItemPool { } public static void initialize() { - //here we abuse java's lazy loading behavior, referencing the item pools with what is effectively a NOP in order to cause instantiation - //this of course has to happen after the items and blocks are registered but before the item pool config - //will this cause horrific issues if something manages to load the item pools prematurely? absolutely - //however, the advantage here is that i don't need to separate the fields from the instantiation, i can simply slap them together into the class and it works - //is this shitty coding practice? yes! but it's slightly more convenient than the alternative so i will roll with it anyway because go fuck yourself - //who are you to tell me what i can and cannot do - ItemPoolsLegacy.poolGeneric.hashCode(); + ItemPoolsLegacy.init(); + ItemPoolsComponent.init(); + ItemPoolsSingle.init(); + ItemPoolsRedRoom.init(); } + + /** Grabs the specified item pool out of the pool map, will return the backup pool if the given pool is not present */ + public static WeightedRandomChestContent[] getPool(String name) { + ItemPool pool = pools.get(name); + if(pool == null) return backupPool; + return pool.pool; + } + + /** Should a pool be lost due to misconfiguration or otherwise, this pool will be returned in its place */ + private static WeightedRandomChestContent[] backupPool = new WeightedRandomChestContent[] { + weighted(Items.bread, 0, 1, 3, 10), + weighted(Items.stick, 0, 2, 5, 10), + weighted(ModItems.scrap, 0, 1, 3, 10), + weighted(ModItems.dust, 0, 2, 5, 5) + }; } diff --git a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java new file mode 100644 index 000000000..5b4d48bd5 --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java @@ -0,0 +1,188 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ItemEnums.EnumCokeType; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemBlowtorch; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsComponent { + + public static final String POOL_MACHINE_PARTS = "POOL_MACHINE_PARTS"; + public static final String POOL_NUKE_FUEL = "POOL_NUKE_FUEL"; + public static final String POOL_SILO = "POOL_SILO"; + public static final String POOL_OFFICE_TRASH = "POOL_OFFICE_TRASH"; + public static final String POOL_FILING_CABINET = "POOL_FILING_CABINET"; + public static final String POOL_SOLID_FUEL = "POOL_SOLID_FUEL"; + public static final String POOL_VAULT_LAB = "POOL_VAULT_LAB"; + public static final String POOL_VAULT_LOCKERS = "POOL_VAULT_LOCKERS"; + + public static void init() { + + //machine parts + new ItemPool(POOL_MACHINE_PARTS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.plate_steel, 0, 1, 5, 5), + weighted(ModItems.hull_big_steel, 0, 1, 2, 2), + weighted(ModItems.hull_small_steel, 0, 1, 3, 3), + weighted(ModItems.plate_polymer, 0, 1, 6, 5), + weighted(ModItems.bolt, Mats.MAT_STEEL.id, 4, 16, 3), + weighted(ModItems.bolt, Mats.MAT_TUNGSTEN.id, 4, 16, 3), + weighted(ModItems.board_copper, 0, 1, 2, 4), + weighted(ModItems.coil_tungsten, 0, 1, 2, 5), + weighted(ModItems.motor, 0, 1, 2, 4), + weighted(ModItems.tank_steel, 0, 1, 2, 3), + weighted(ModItems.coil_copper, 0, 1, 3, 4), + weighted(ModItems.coil_copper_torus, 0, 1, 2, 3), + weighted(ModItems.wire_red_copper, 0, 1, 8, 5), + weighted(ModItems.piston_selenium, 0, 1, 1, 3), + weighted(ModItems.battery_advanced_cell, 0, 1, 1, 3), + weighted(ModItems.circuit_raw, 0, 1, 3, 5), + weighted(ModItems.circuit_aluminium, 0, 1, 2, 4), + weighted(ModItems.circuit_copper, 0, 1, 1, 3), + weighted(ModItems.circuit_red_copper, 0, 1, 1, 2), + weighted(ModItems.blade_titanium, 0, 1, 8, 1) + }; + }}; + + //fuel isotopes found in bunkers and labs + new ItemPool(POOL_NUKE_FUEL) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.billet_uranium, 0, 1, 4, 4), + weighted(ModItems.billet_th232, 0, 1, 3, 3), + weighted(ModItems.billet_uranium_fuel, 0, 1, 3, 5), + weighted(ModItems.billet_mox_fuel, 0, 1, 3, 5), + weighted(ModItems.billet_thorium_fuel, 0, 1, 3, 3), + weighted(ModItems.billet_ra226be, 0, 1, 2, 2), + weighted(ModItems.billet_beryllium, 0, 1, 1, 1), + weighted(ModItems.nugget_u233, 0, 1, 1, 1), + weighted(ModItems.nugget_uranium_fuel, 0, 1, 1, 1), + weighted(ModItems.rod_zirnox_empty, 0, 1, 3, 3), + weighted(ModItems.ingot_graphite, 0, 1, 4, 3), + weighted(ModItems.pile_rod_uranium, 0, 2, 5, 3), + weighted(ModItems.pile_rod_source, 0, 1, 2, 2), + weighted(ModItems.reacher, 0, 1, 1, 3), + weighted(ModItems.screwdriver, 0, 1, 1, 2) + }; + }}; + + //missile parts found in silos + new ItemPool(POOL_SILO) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.missile_generic, 0, 1, 1, 4), + weighted(ModItems.missile_incendiary, 0, 1, 1, 4), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), + weighted(ModItems.battery_advanced, 0, 1, 1, 5), + weighted(ModItems.designator, 0, 1, 1, 5), + weighted(ModItems.crate_caller, 0, 1, 1, 1), + weighted(ModItems.thruster_small, 0, 1, 1, 5), + weighted(ModItems.thruster_medium, 0, 1, 1, 4), + weighted(ModItems.fuel_tank_small, 0, 1, 1, 5), + weighted(ModItems.fuel_tank_medium, 0, 1, 1, 4), + weighted(ModItems.bomb_caller, 0, 1, 1, 1), + weighted(ModItems.bomb_caller, 3, 1, 1, 1), + weighted(ModItems.bottle_nuka, 0, 1, 3, 10) + }; + }}; + + //low quality items from offices in chests + new ItemPool(POOL_OFFICE_TRASH) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.paper, 0, 1, 12, 10), + weighted(Items.book, 0, 1, 3, 4), + weighted(ModItems.twinkie, 0, 1, 2, 6), + weighted(ModItems.coffee, 0, 1, 1, 4), + weighted(ModItems.flame_politics, 0, 1, 1, 2), + weighted(ModItems.ring_pull, 0, 1, 1, 4), + weighted(ModItems.can_empty, 0, 1, 1, 2), + weighted(ModItems.can_creature, 0, 1, 2, 2), + weighted(ModItems.can_smart, 0, 1, 3, 2), + weighted(ModItems.can_mrsugar, 0, 1, 2, 2), + weighted(ModItems.cap_nuka, 0, 1, 16, 2), + weighted(ModItems.book_guide, 3, 1, 1, 1), + weighted(ModBlocks.deco_computer, 0, 1, 1, 1) + }; + }}; + + //things found in various filing cabinets, paper, books, etc + new ItemPool(POOL_FILING_CABINET) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.paper, 0, 1, 12, 240), + weighted(Items.book, 0, 1, 3, 90), + weighted(Items.map, 0, 1, 1, 50), + weighted(Items.writable_book, 0, 1, 1, 30), + weighted(ModItems.cigarette, 0, 1, 16, 20), + weighted(ModItems.toothpicks, 0, 1, 16, 10), + weighted(ModItems.dust, 0, 1, 1, 40), + weighted(ModItems.dust_tiny, 0, 1, 3, 75), + weighted(ModItems.ink, 0, 1, 1, 1) + }; + }}; + + //solid fuels from bunker power rooms + new ItemPool(POOL_SOLID_FUEL) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.solid_fuel, 0, 1, 5, 1), + weighted(ModItems.solid_fuel_presto, 0, 1, 2, 2), + weighted(ModItems.ball_dynamite, 0, 1, 4, 2), + weighted(ModItems.coke, EnumCokeType.PETROLEUM.ordinal(), 1, 3, 1), + weighted(Items.redstone, 0, 1, 3, 1), + weighted(ModItems.niter, 0, 1, 3, 1) + }; + }}; + + //various lab related items from bunkers + new ItemPool(POOL_VAULT_LAB) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), 1, 1, 4), + weighted(ModItems.chemistry_set, 0, 1, 1, 15), + weighted(ModItems.screwdriver, 0, 1, 1, 10), + weighted(ModItems.nugget_mercury, 0, 1, 1, 3), + weighted(ModItems.morning_glory, 0, 1, 1, 1), + weighted(ModItems.filter_coal, 0, 1, 1, 5), + weighted(ModItems.dust, 0, 1, 3, 25), + weighted(Items.paper, 0, 1, 2, 15), + weighted(ModItems.cell_empty, 0, 1, 1, 5), + weighted(Items.glass_bottle, 0, 1, 1, 5), + weighted(ModItems.powder_iodine, 0, 1, 1, 1), + weighted(ModItems.powder_bromine, 0, 1, 1, 1), + weighted(ModItems.powder_cobalt, 0, 1, 1, 1), + weighted(ModItems.powder_neodymium, 0, 1, 1, 1), + weighted(ModItems.powder_boron, 0, 1, 1, 1) + }; + }}; + + //personal items and gear from vaults + new ItemPool(POOL_VAULT_LOCKERS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.robes_helmet, 0, 1, 1, 1), + weighted(ModItems.robes_plate, 0, 1, 1, 1), + weighted(ModItems.robes_legs, 0, 1, 1, 1), + weighted(ModItems.robes_boots, 0, 1, 1, 1), + weighted(ModItems.jackt, 0, 1, 1, 1), + weighted(ModItems.jackt2, 0, 1, 1, 1), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 2), + weighted(ModItems.gas_mask_mono, 0, 1, 1, 2), + weighted(ModItems.goggles, 0, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), + weighted(ModItems.flame_opinion, 0, 1, 3, 5), + weighted(ModItems.flame_conspiracy, 0, 1, 3, 5), + weighted(ModItems.flame_politics, 0, 1, 3, 5), + weighted(ModItems.definitelyfood, 0, 2, 7, 5), + weighted(ModItems.cigarette, 0, 1, 8, 5), + weighted(ModItems.armor_polish, 0, 1, 1, 3), + weighted(ModItems.gun_kit_1, 0, 1, 1, 3), + weighted(ModItems.rag, 0, 1, 3, 5), + weighted(Items.paper, 0, 1, 6, 7), + weighted(Items.clock, 0, 1, 1, 3), + weighted(Items.book, 0, 1, 5, 10), + weighted(Items.experience_bottle, 0, 1, 3, 1) + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java index f27b31bd5..54025813f 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -3,9 +3,14 @@ package com.hbm.itempool; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; +import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import static com.hbm.lib.HbmChestContents.*; +import com.hbm.blocks.ModBlocks; + import net.minecraft.init.Items; import net.minecraft.util.WeightedRandomChestContent; @@ -16,37 +21,218 @@ import net.minecraft.util.WeightedRandomChestContent; */ public class ItemPoolsLegacy { - //"generic" set, found commonly in chests in many structures - public static ItemPool poolGeneric = new ItemPool("POOL_GENERIC") {{ - this.pool = new WeightedRandomChestContent[] { - weighted(Items.bread, 0, 1, 5, 8), - weighted(ModItems.twinkie, 0, 1, 3, 6), - weighted(Items.iron_ingot, 0, 2, 6, 10), - weighted(ModItems.ingot_steel, 0, 2, 5, 7), - weighted(ModItems.ingot_beryllium, 0, 1, 2, 4), - weighted(ModItems.ingot_titanium, 0, 1, 1, 3), - weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 5), - weighted(ModItems.gun_revolver, 0, 1, 1, 3), - weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), - weighted(ModItems.gun_kit_1, 0, 1, 3, 4), - weighted(ModItems.gun_lever_action, 0, 1, 1, 1), - weighted(ModItems.ammo_20gauge, 0, 2, 6, 3), - weighted(ModItems.casing_9, 0, 4, 10, 3), - weighted(ModItems.casing_50, 0, 4, 10, 3), - weighted(ModItems.cordite, 0, 4, 6, 5), - weighted(ModItems.battery_generic, 0, 1, 1, 4), - weighted(ModItems.battery_advanced, 0, 1, 1, 2), - weighted(ModItems.scrap, 0, 1, 3, 10), - weighted(ModItems.dust, 0, 2, 4, 9), - weighted(ModItems.bottle_opener, 0, 1, 1, 2), - weighted(ModItems.bottle_nuka, 0, 1, 3, 4), - weighted(ModItems.bottle_cherry, 0, 1, 1, 2), - weighted(ModItems.stealth_boy, 0, 1, 1, 1), - weighted(ModItems.cap_nuka, 0, 1, 15, 7), - weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), - weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), - weighted(ModItems.gas_mask_m65, 60, 1, 1, 2), - weighted(ModItems.gas_mask_filter, 0, 1, 1, 3) - }; - }}; + public static final String POOL_GENERIC = "POOL_GENERIC"; + public static final String POOL_ANTENNA = "POOL_ANTENNA"; + public static final String POOL_EXPENSIVE = "POOL_EXPENSIVE"; + public static final String POOL_NUKE_TRASH = "POOL_NUKE_TRASH"; + public static final String POOL_NUKE_MISC = "POOL_NUKE_MISC"; + public static final String POOL_VERTIBIRD = "POOL_VERTIBIRD"; + public static final String POOL_SPACESHIP = "POOL_SPACESHIP"; + + public static void init() { + + //"generic" set, found commonly in chests in many structures + new ItemPool(POOL_GENERIC) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.bread, 0, 1, 5, 8), + weighted(ModItems.twinkie, 0, 1, 3, 6), + weighted(Items.iron_ingot, 0, 2, 6, 10), + weighted(ModItems.ingot_steel, 0, 2, 5, 7), + weighted(ModItems.ingot_beryllium, 0, 1, 2, 4), + weighted(ModItems.ingot_titanium, 0, 1, 1, 3), + weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 5), + weighted(ModItems.gun_revolver, 0, 1, 1, 3), + weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), + weighted(ModItems.gun_kit_1, 0, 1, 3, 4), + weighted(ModItems.gun_lever_action, 0, 1, 1, 1), + weighted(ModItems.ammo_20gauge, 0, 2, 6, 3), + weighted(ModItems.casing_9, 0, 4, 10, 3), + weighted(ModItems.casing_50, 0, 4, 10, 3), + weighted(ModItems.cordite, 0, 4, 6, 5), + weighted(ModItems.battery_generic, 0, 1, 1, 4), + weighted(ModItems.battery_advanced, 0, 1, 1, 2), + weighted(ModItems.scrap, 0, 1, 3, 10), + weighted(ModItems.dust, 0, 2, 4, 9), + weighted(ModItems.bottle_opener, 0, 1, 1, 2), + weighted(ModItems.bottle_nuka, 0, 1, 3, 4), + weighted(ModItems.bottle_cherry, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 1), + weighted(ModItems.cap_nuka, 0, 1, 15, 7), + weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), + weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 3) + }; + }}; + + //"antenna" pool, found by antennas and in radio stations + new ItemPool(POOL_ANTENNA) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.twinkie, 0, 1, 3, 4), + weighted(ModItems.ingot_steel, 0, 1, 2, 7), + weighted(ModItems.ingot_red_copper, 0, 1, 1, 4), + weighted(ModItems.ingot_titanium, 0, 1, 3, 5), + weighted(ModItems.wire_red_copper, 0, 2, 3, 7), + weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 4), + weighted(ModItems.circuit_copper, 0, 1, 1, 4), + weighted(ModItems.battery_generic, 0, 1, 1, 4), + weighted(ModItems.battery_advanced, 0, 1, 1, 3), + weighted(ModItems.powder_iodine, 0, 1, 1, 1), + weighted(ModItems.powder_bromine, 0, 1, 1, 1), + weighted(ModBlocks.steel_poles, 0, 1, 4, 8), + weighted(ModBlocks.steel_scaffold, 0, 1, 3, 8), + weighted(ModBlocks.pole_top, 0, 1, 1, 4), + weighted(ModBlocks.pole_satellite_receiver, 0, 1, 1, 7), + weighted(ModItems.scrap, 0, 1, 3, 10), + weighted(ModItems.dust, 0, 2, 4, 9), + weighted(ModItems.bottle_opener, 0, 1, 1, 2), + weighted(ModItems.bottle_nuka, 0, 1, 3, 4), + weighted(ModItems.bottle_cherry, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 1), + weighted(ModItems.cap_nuka, 0, 1, 15, 7), + weighted(ModItems.bomb_caller, 0, 1, 1, 1), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 2) + }; + }}; + + //"hidden" loot + new ItemPool(POOL_EXPENSIVE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.chlorine_pinwheel, 0, 1, 1, 1), + weighted(ModItems.circuit_targeting_tier3, 0, 1, 1, 4), + weighted(ModItems.circuit_gold, 0, 1, 2, 3), + weighted(ModItems.circuit_targeting_tier4, 0, 1, 1, 2), + weighted(ModItems.gun_kit_1, 0, 1, 3, 6), + weighted(ModItems.gun_kit_2, 0, 1, 2, 3), + weighted(ModItems.gun_rpg, 0, 1, 1, 4), + weighted(ModItems.ammo_rocket, 0, 1, 4, 5), + weighted(ModItems.gun_fatman, 0, 1, 1, 1), + weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), + weighted(ModItems.ammo_nuke, AmmoFatman.LOW.ordinal(), 1, 2, 1), + weighted(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 2, 1), + weighted(ModItems.grenade_nuclear, 0, 1, 1, 2), + weighted(ModItems.grenade_smart, 0, 1, 3, 3), + weighted(ModItems.grenade_mirv, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 2), + weighted(ModItems.battery_advanced, 0, 1, 1, 3), + weighted(ModItems.battery_advanced_cell, 0, 1, 1, 2), + weighted(ModItems.battery_schrabidium, 0, 1, 1, 1), + weighted(ModItems.syringe_awesome, 0, 1, 1, 1), + weighted(ModItems.crate_caller, 0, 1, 1, 3), + weighted(ModItems.fusion_core, 0, 1, 1, 4), + weighted(ModItems.bottle_nuka, 0, 1, 3, 6), + weighted(ModItems.bottle_quantum, 0, 1, 1, 3), + weighted(ModBlocks.red_barrel, 0, 1, 1, 6), + weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), + weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), + weighted(ModItems.bomb_caller, 0, 1, 1, 2), + weighted(ModItems.bomb_caller, 1, 1, 1, 1), + weighted(ModItems.bomb_caller, 2, 1, 1, 1), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), + weighted(ModItems.journal_pip, 0, 1, 1, 1), + weighted(ModItems.journal_bj, 0, 1, 1, 1) + }; + }}; + + //nuclear waste products found in powerplants + new ItemPool(POOL_NUKE_TRASH) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.nugget_u238, 0, 3, 12, 5), + weighted(ModItems.nugget_pu240, 0, 3, 8, 5), + weighted(ModItems.nugget_neptunium, 0, 1, 4, 3), + weighted(ModItems.rod, BreedingRodType.U238.ordinal(), 1, 1, 3), + weighted(ModItems.rod_dual, BreedingRodType.U238.ordinal(), 1, 1, 3), + weighted(ModItems.rod_quad, BreedingRodType.U238.ordinal(), 1, 1, 3), + weighted(ModItems.bottle_quantum, 0, 1, 1, 1), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), + weighted(ModItems.hazmat_kit, 0, 1, 1, 1), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), + weighted(ModBlocks.yellow_barrel, 0, 1, 1, 2) + }; + }}; + + //all sorts of nuclear related items, mostly fissile isotopes found in nuclear powerplants + new ItemPool(POOL_NUKE_MISC) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.nugget_u235, 0, 3, 12, 5), + weighted(ModItems.nugget_pu238, 0, 3, 12, 5), + weighted(ModItems.nugget_ra226, 0, 3, 6, 5), + weighted(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 3), + weighted(ModItems.rod_dual, BreedingRodType.U235.ordinal(), 1, 1, 3), + weighted(ModItems.rod_quad, BreedingRodType.U235.ordinal(), 1, 1, 3), + weighted(ModItems.rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), 1, 1, 4), + weighted(ModItems.rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), 1, 1, 4), + weighted(ModItems.rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 1, 1, 3), + weighted(ModItems.rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), 1, 1, 3), + weighted(ModItems.rod_dual, BreedingRodType.THF.ordinal(), 1, 1, 3), + weighted(ModItems.rod_zirnox_tritium, 0, 1, 1, 1), + weighted(ModItems.rod_zirnox, EnumZirnoxType.U233_FUEL.ordinal(), 1, 1, 1), + weighted(ModItems.rod_zirnox, EnumZirnoxType.U235_FUEL.ordinal(), 1, 1, 1), + weighted(ModItems.pellet_rtg, 0, 1, 1, 3), + weighted(ModItems.powder_thorium, 0, 1, 1, 1), + weighted(ModItems.powder_neptunium, 0, 1, 1, 1), + weighted(ModItems.powder_strontium, 0, 1, 1, 1), + weighted(ModItems.powder_cobalt, 0, 1, 1, 1), + weighted(ModItems.bottle_quantum, 0, 1, 1, 1), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), + weighted(ModItems.hazmat_kit, 0, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), + weighted(ModBlocks.yellow_barrel, 0, 1, 3, 3) + }; + }}; + + //loot found in vertibirds + new ItemPool(POOL_VERTIBIRD) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.t45_helmet, 0, 1, 1, 15), + weighted(ModItems.t45_plate, 0, 1, 1, 15), + weighted(ModItems.t45_legs, 0, 1, 1, 15), + weighted(ModItems.t45_boots, 0, 1, 1, 15), + weighted(ModItems.t45_kit, 0, 1, 1, 3), + weighted(ModItems.fusion_core, 0, 1, 1, 10), + weighted(ModItems.gun_revolver, 0, 1, 1, 4), + weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 1, 24, 4), + weighted(ModItems.gun_kit_1, 0, 2, 3, 4), + weighted(ModItems.gun_rpg, 0, 1, 1, 3), + weighted(ModItems.ammo_rocket, 0, 1, 6, 3), + weighted(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 2), + weighted(ModItems.billet_uranium_fuel, 0, 1, 1, 2), + weighted(ModItems.ingot_uranium_fuel, 0, 1, 1, 2), + weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), + weighted(ModItems.gun_fatman, 0, 1, 1, 1), + weighted(ModItems.bottle_nuka, 0, 1, 3, 6), + weighted(ModItems.bottle_quantum, 0, 1, 1, 3), + weighted(ModItems.stealth_boy, 0, 1, 1, 7), + weighted(ModItems.crate_caller, 0, 1, 1, 3), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), + weighted(ModItems.grenade_nuclear, 0, 1, 2, 2), + weighted(ModItems.bomb_caller, 0, 1, 1, 1), + weighted(ModItems.bomb_caller, 1, 1, 1, 1), + weighted(ModItems.bomb_caller, 2, 1, 1, 2) + }; + }}; + + //spaceship double chests + new ItemPool(POOL_SPACESHIP) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.battery_advanced, 0, 1, 1, 5), + weighted(ModItems.ingot_advanced_alloy, 0, 2, 16, 5), + weighted(ModItems.wire_advanced_alloy, 0, 8, 32, 5), + weighted(ModItems.coil_advanced_alloy, 0, 2, 16, 5), + weighted(ModItems.cell_deuterium, 0, 1, 8, 5), + weighted(ModItems.cell_tritium, 0, 1, 8, 5), + weighted(ModItems.cell_antimatter, 0, 1, 1, 1), + weighted(ModItems.powder_neodymium, 0, 1, 1, 1), + weighted(ModItems.powder_niobium, 0, 1, 1, 1), + weighted(ModBlocks.fusion_conductor, 0, 2, 4, 5), + weighted(ModBlocks.fusion_heater, 0, 1, 3, 5), + weighted(ModBlocks.pwr_fuel, 0, 1, 2, 5), + weighted(ModBlocks.block_tungsten, 0, 3, 8, 5), + weighted(ModBlocks.red_wire_coated, 0, 4, 8, 5), + weighted(ModBlocks.red_cable, 0, 8, 16, 5) + }; + }}; + } } diff --git a/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java b/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java new file mode 100644 index 000000000..f2de185bb --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java @@ -0,0 +1,43 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; + +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsRedRoom { + + public static final String POOL_RED_PEDESTAL = "POOL_RED_PEDESTAL"; + + public static void init() { + + //pedestal items + new ItemPool(POOL_RED_PEDESTAL) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ballistic_gauntlet, 0, 1, 1, 10), + weighted(ModItems.armor_polish, 0, 1, 1, 10), + weighted(ModItems.bandaid, 0, 1, 1, 10), + weighted(ModItems.serum, 0, 1, 1, 10), + weighted(ModItems.quartz_plutonium, 0, 1, 1, 10), + weighted(ModItems.morning_glory, 0, 1, 1, 10), + weighted(ModItems.spider_milk, 0, 1, 1, 10), + weighted(ModItems.ink, 0, 1, 1, 10), + weighted(ModItems.heart_container, 0, 1, 1, 10), + weighted(ModItems.black_diamond, 0, 1, 1, 10), + weighted(ModItems.scrumpy, 0, 1, 1, 10), + weighted(ModItems.wild_p, 0, 1, 1, 5), + weighted(ModItems.card_aos, 0, 1, 1, 5), + weighted(ModItems.card_qos, 0, 1, 1, 5), + weighted(ModItems.starmetal_sword, 0, 1, 1, 5), + weighted(ModItems.gem_alexandrite, 0, 1, 1, 5), + weighted(ModItems.crackpipe, 0, 1, 1, 5), + weighted(ModItems.flask_infusion, 0, 1, 1, 5), + weighted(ModBlocks.boxcar, 0, 1, 1, 5), + weighted(ModItems.book_of_, 0, 1, 1, 5), + weighted(ModItems.gun_revolver_pip, 0, 1, 1, 5) + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java new file mode 100644 index 000000000..dfa8f5e3b --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java @@ -0,0 +1,118 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsSingle { + + public static final String POOL_POWDER = "POOL_POWDER"; + public static final String POOL_VAULT_RUSTY = "POOL_VAULT_RUSTY"; + public static final String POOL_VAULT_STANDARD = "POOL_VAULT_STANDARD"; + public static final String POOL_VAULT_REINFORCED = "POOL_VAULT_REINFORCED"; + public static final String POOL_VAULT_UNBREAKABLE = "POOL_VAULT_UNBREAKABLE"; + + public static void init() { + + //powder boxes + new ItemPool(POOL_POWDER) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.powder_neptunium, 0, 1, 32, 1), + weighted(ModItems.powder_iodine, 0, 1, 32, 1), + weighted(ModItems.powder_thorium, 0, 1, 32, 1), + weighted(ModItems.powder_astatine, 0, 1, 32, 1), + weighted(ModItems.powder_neodymium, 0, 1, 32, 1), + weighted(ModItems.powder_caesium, 0, 1, 32, 1), + weighted(ModItems.powder_strontium, 0, 1, 32, 1), + weighted(ModItems.powder_cobalt, 0, 1, 32, 1), + weighted(ModItems.powder_bromine, 0, 1, 32, 1), + weighted(ModItems.powder_niobium, 0, 1, 32, 1), + weighted(ModItems.powder_tennessine, 0, 1, 32, 1), + weighted(ModItems.powder_cerium, 0, 1, 32, 1) + }; + }}; + + new ItemPool(POOL_VAULT_RUSTY) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.gold_ingot, 0, 3, 14, 1), + weighted(ModItems.gun_uac_pistol, 0, 1, 1, 2), + weighted(ModItems.pin, 0, 8, 8, 1), + weighted(ModItems.gun_calamity, 0, 1, 1, 1), + weighted(ModItems.bottle_quantum, 0, 1, 3, 1), + weighted(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), + weighted(ModItems.ammo_50bmg, 0, 24, 48, 1), + weighted(ModItems.ammo_45, 0, 48, 64, 2), + weighted(ModItems.circuit_red_copper, 0, 6, 12, 1), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 1), + weighted(ModItems.grenade_if_he, 0, 1, 1, 1), + weighted(ModItems.grenade_if_incendiary, 0, 1, 1, 1), + weighted(Items.diamond, 0, 1, 2, 1) + }; + }}; + + new ItemPool(POOL_VAULT_STANDARD) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ingot_desh, 0, 2, 6, 1), + weighted(ModItems.battery_advanced_cell_4, 0, 1, 1, 1), + weighted(ModItems.powder_desh_mix, 0, 1, 5, 1), + weighted(Items.diamond, 0, 3, 6, 1), + weighted(ModItems.ammo_nuke, 0, 1, 1, 1), + weighted(ModItems.ammo_container, 0, 1, 1, 1), + weighted(ModItems.grenade_nuclear, 0, 1, 1, 1), + weighted(ModItems.grenade_smart, 0, 1, 6, 1), + weighted(ModItems.powder_yellowcake, 0, 16, 24, 1), + weighted(ModItems.gun_uzi, 0, 1, 1, 1), + weighted(ModItems.gun_uzi_silencer, 0, 1, 1, 1), + weighted(ModItems.clip_uzi, 0, 1, 3, 1), + weighted(ModItems.circuit_red_copper, 0, 12, 16, 1), + weighted(ModItems.circuit_gold, 0, 2, 6, 1) + }; + }}; + + new ItemPool(POOL_VAULT_REINFORCED) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ingot_desh, 0, 6, 16, 1), + weighted(ModItems.battery_lithium, 0, 1, 1, 1), + weighted(ModItems.powder_power, 0, 1, 5, 1), + weighted(ModItems.sat_chip, 0, 1, 1, 1), + weighted(Items.diamond, 0, 5, 9, 1), + weighted(ModItems.warhead_nuclear, 0, 1, 1, 1), + weighted(ModItems.ammo_nuke, 0, 1, 3, 1), + weighted(ModItems.ammo_container, 0, 1, 4, 1), + weighted(ModItems.grenade_nuclear, 0, 1, 2, 1), + weighted(ModItems.grenade_mirv, 0, 1, 1, 1), + weighted(ModItems.powder_yellowcake, 0, 26, 42, 1), + weighted(ModItems.ingot_u235, 0, 3, 6, 1), + weighted(ModItems.gun_fatman, 0, 1, 1, 1), + weighted(ModItems.gun_revolver_pip, 0, 1, 1, 1), + weighted(ModItems.clip_revolver_pip, 0, 2, 4, 1), + weighted(ModItems.circuit_red_copper, 0, 18, 32, 1), + weighted(ModItems.circuit_gold, 0, 6, 12, 1) + }; + }}; + + new ItemPool(POOL_VAULT_UNBREAKABLE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ammo_container, 0, 3, 6, 1), + weighted(ModItems.clip_fatman, 0, 2, 3, 1), + weighted(ModItems.ammo_nuke, AmmoFatman.MIRV.ordinal(), 2, 3, 1), + weighted(ModItems.gun_mirv, 0, 1, 1, 1), + weighted(ModItems.gun_fatman, 0, 1, 1, 1), + weighted(ModItems.gun_proto, 0, 1, 1, 1), + weighted(ModItems.gun_b92, 0, 1, 1, 1), + weighted(ModItems.ingot_combine_steel, 0, 16, 28, 1), + weighted(ModItems.man_core, 0, 1, 1, 1), + weighted(ModItems.boy_kit, 0, 1, 1, 1), + weighted(ModItems.nuke_starter_kit, 0, 1, 1, 1), + weighted(ModItems.weaponized_starblaster_cell, 0, 1, 1, 1), + weighted(ModItems.warhead_mirv, 0, 1, 1, 1), + weighted(ModItems.battery_schrabidium_cell, 0, 1, 1, 1), + weighted(ModItems.powder_nitan_mix, 0, 16, 32, 1) + }; + }}; + } +} diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index d77fb7647..c78e6f3a0 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -2,416 +2,15 @@ package com.hbm.lib; import java.util.Random; -import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.material.Mats; -import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; -import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.ItemBookLore; -import com.hbm.items.tool.ItemBlowtorch; import net.minecraft.block.Block; -import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; public class HbmChestContents { - public static WeightedRandomChestContent[] modGeneric = new WeightedRandomChestContent[] { - weighted(Items.bread, 0, 1, 5, 8), - weighted(ModItems.twinkie, 0, 1, 3, 6), - weighted(Items.iron_ingot, 0, 2, 6, 10), - weighted(ModItems.ingot_steel, 0, 2, 5, 7), - weighted(ModItems.ingot_beryllium, 0, 1, 2, 4), - weighted(ModItems.ingot_titanium, 0, 1, 1, 3), - weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 5), - weighted(ModItems.gun_revolver, 0, 1, 1, 3), - weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), - weighted(ModItems.gun_kit_1, 0, 1, 3, 4), - weighted(ModItems.gun_lever_action, 0, 1, 1, 1), - weighted(ModItems.ammo_20gauge, 0, 2, 6, 3), - weighted(ModItems.casing_9, 0, 4, 10, 3), - weighted(ModItems.casing_50, 0, 4, 10, 3), - weighted(ModItems.cordite, 0, 4, 6, 5), - weighted(ModItems.battery_generic, 0, 1, 1, 4), - weighted(ModItems.battery_advanced, 0, 1, 1, 2), - weighted(ModItems.scrap, 0, 1, 3, 10), - weighted(ModItems.dust, 0, 2, 4, 9), - weighted(ModItems.bottle_opener, 0, 1, 1, 2), - weighted(ModItems.bottle_nuka, 0, 1, 3, 4), - weighted(ModItems.bottle_cherry, 0, 1, 1, 2), - weighted(ModItems.stealth_boy, 0, 1, 1, 1), - weighted(ModItems.cap_nuka, 0, 1, 15, 7), - weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), - weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), - weighted(ModItems.gas_mask_m65, 60, 1, 1, 2), - weighted(ModItems.gas_mask_filter, 0, 1, 1, 3) }; - - public static WeightedRandomChestContent[] machineParts = new WeightedRandomChestContent[] { - weighted(ModItems.plate_steel, 0, 1, 5, 5), - weighted(ModItems.hull_big_steel, 0, 1, 2, 2), - weighted(ModItems.hull_small_steel, 0, 1, 3, 3), - weighted(ModItems.plate_polymer, 0, 1, 6, 5), - weighted(ModItems.bolt, Mats.MAT_STEEL.id, 4, 16, 3), - weighted(ModItems.bolt, Mats.MAT_TUNGSTEN.id, 4, 16, 3), - weighted(ModItems.board_copper, 0, 1, 2, 4), - weighted(ModItems.coil_tungsten, 0, 1, 2, 5), - weighted(ModItems.motor, 0, 1, 2, 4), - weighted(ModItems.tank_steel, 0, 1, 2, 3), - weighted(ModItems.coil_copper, 0, 1, 3, 4), - weighted(ModItems.coil_copper_torus, 0, 1, 2, 3), - weighted(ModItems.wire_red_copper, 0, 1, 8, 5), - weighted(ModItems.piston_selenium, 0, 1, 1, 3), - weighted(ModItems.battery_advanced_cell, 0, 1, 1, 3), - weighted(ModItems.circuit_raw, 0, 1, 3, 5), - weighted(ModItems.circuit_aluminium, 0, 1, 2, 4), - weighted(ModItems.circuit_copper, 0, 1, 1, 3), - weighted(ModItems.circuit_red_copper, 0, 1, 1, 2), - weighted(ModItems.blade_titanium, 0, 1, 8, 1) - }; - - public static WeightedRandomChestContent[] antenna = new WeightedRandomChestContent[] { - weighted(ModItems.twinkie, 0, 1, 3, 4), - weighted(ModItems.ingot_steel, 0, 1, 2, 7), - weighted(ModItems.ingot_red_copper, 0, 1, 1, 4), - weighted(ModItems.ingot_titanium, 0, 1, 3, 5), - weighted(ModItems.wire_red_copper, 0, 2, 3, 7), - weighted(ModItems.circuit_targeting_tier1, 0, 1, 1, 4), - weighted(ModItems.circuit_copper, 0, 1, 1, 4), - weighted(ModItems.battery_generic, 0, 1, 1, 4), - weighted(ModItems.battery_advanced, 0, 1, 1, 3), - weighted(ModItems.powder_iodine, 0, 1, 1, 1), - weighted(ModItems.powder_bromine, 0, 1, 1, 1), - weighted(ModBlocks.steel_poles, 0, 1, 4, 8), - weighted(ModBlocks.steel_scaffold, 0, 1, 3, 8), - weighted(ModBlocks.pole_top, 0, 1, 1, 4), - weighted(ModBlocks.pole_satellite_receiver, 0, 1, 1, 7), - weighted(ModItems.scrap, 0, 1, 3, 10), - weighted(ModItems.dust, 0, 2, 4, 9), - weighted(ModItems.bottle_opener, 0, 1, 1, 2), - weighted(ModItems.bottle_nuka, 0, 1, 3, 4), - weighted(ModItems.bottle_cherry, 0, 1, 1, 2), - weighted(ModItems.stealth_boy, 0, 1, 1, 1), - weighted(ModItems.cap_nuka, 0, 1, 15, 7), - weighted(ModItems.bomb_caller, 0, 1, 1, 1), - weighted(ModItems.gas_mask_filter, 0, 1, 1, 2) }; - - public static WeightedRandomChestContent[] expensive = new WeightedRandomChestContent[] { - weighted(ModItems.chlorine_pinwheel, 0, 1, 1, 1), - weighted(ModItems.circuit_targeting_tier3, 0, 1, 1, 4), - weighted(ModItems.circuit_gold, 0, 1, 2, 3), - weighted(ModItems.circuit_targeting_tier4, 0, 1, 1, 2), - weighted(ModItems.gun_kit_1, 0, 1, 3, 6), - weighted(ModItems.gun_kit_2, 0, 1, 2, 3), - weighted(ModItems.gun_rpg, 0, 1, 1, 4), - weighted(ModItems.ammo_rocket, 0, 1, 4, 5), - weighted(ModItems.gun_fatman, 0, 1, 1, 1), - weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), - weighted(ModItems.ammo_nuke, AmmoFatman.LOW.ordinal(), 1, 2, 1), - weighted(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 2, 1), - weighted(ModItems.grenade_nuclear, 0, 1, 1, 2), - weighted(ModItems.grenade_smart, 0, 1, 3, 3), - weighted(ModItems.grenade_mirv, 0, 1, 1, 2), - weighted(ModItems.stealth_boy, 0, 1, 1, 2), - weighted(ModItems.battery_advanced, 0, 1, 1, 3), - weighted(ModItems.battery_advanced_cell, 0, 1, 1, 2), - weighted(ModItems.battery_schrabidium, 0, 1, 1, 1), - weighted(ModItems.syringe_awesome, 0, 1, 1, 1), - weighted(ModItems.crate_caller, 0, 1, 1, 3), - weighted(ModItems.fusion_core, 0, 1, 1, 4), - weighted(ModItems.bottle_nuka, 0, 1, 3, 6), - weighted(ModItems.bottle_quantum, 0, 1, 1, 3), - weighted(ModBlocks.red_barrel, 0, 1, 1, 6), - weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), - weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), - weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), - weighted(ModItems.bomb_caller, 0, 1, 1, 2), - weighted(ModItems.bomb_caller, 1, 1, 1, 1), - weighted(ModItems.bomb_caller, 2, 1, 1, 1), - weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), - weighted(ModItems.journal_pip, 0, 1, 1, 1), - weighted(ModItems.journal_bj, 0, 1, 1, 1) }; - - public static WeightedRandomChestContent[] nukeTrash = new WeightedRandomChestContent[] { - weighted(ModItems.nugget_u238, 0, 3, 12, 5), - weighted(ModItems.nugget_pu240, 0, 3, 8, 5), - weighted(ModItems.nugget_neptunium, 0, 1, 4, 3), - weighted(ModItems.rod, BreedingRodType.U238.ordinal(), 1, 1, 3), - weighted(ModItems.rod_dual, BreedingRodType.U238.ordinal(), 1, 1, 3), - weighted(ModItems.rod_quad, BreedingRodType.U238.ordinal(), 1, 1, 3), - weighted(ModItems.bottle_quantum, 0, 1, 1, 1), - weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), - weighted(ModItems.hazmat_kit, 0, 1, 1, 1), - weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), - weighted(ModBlocks.yellow_barrel, 0, 1, 1, 2) }; - - public static WeightedRandomChestContent[] nuclearFuel = new WeightedRandomChestContent[] { - weighted(ModItems.billet_uranium, 0, 1, 4, 4), - weighted(ModItems.billet_th232, 0, 1, 3, 3), - weighted(ModItems.billet_uranium_fuel, 0, 1, 3, 5), - weighted(ModItems.billet_mox_fuel, 0, 1, 3, 5), - weighted(ModItems.billet_thorium_fuel, 0, 1, 3, 3), - weighted(ModItems.billet_ra226be, 0, 1, 2, 2), - weighted(ModItems.billet_beryllium, 0, 1, 1, 1), - weighted(ModItems.nugget_u233, 0, 1, 1, 1), - weighted(ModItems.nugget_uranium_fuel, 0, 1, 1, 1), - weighted(ModItems.rod_zirnox_empty, 0, 1, 3, 3), - weighted(ModItems.ingot_graphite, 0, 1, 4, 3), - weighted(ModItems.pile_rod_uranium, 0, 2, 5, 3), - weighted(ModItems.pile_rod_source, 0, 1, 2, 2), - weighted(ModItems.reacher, 0, 1, 1, 3), - weighted(ModItems.screwdriver, 0, 1, 1, 2), - }; - - public static WeightedRandomChestContent[] nuclear = new WeightedRandomChestContent[] { - weighted(ModItems.nugget_u235, 0, 3, 12, 5), - weighted(ModItems.nugget_pu238, 0, 3, 12, 5), - weighted(ModItems.nugget_ra226, 0, 3, 6, 5), - weighted(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 3), - weighted(ModItems.rod_dual, BreedingRodType.U235.ordinal(), 1, 1, 3), - weighted(ModItems.rod_quad, BreedingRodType.U235.ordinal(), 1, 1, 3), - weighted(ModItems.rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), 1, 1, 4), - weighted(ModItems.rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), 1, 1, 4), - weighted(ModItems.rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 1, 1, 3), - weighted(ModItems.rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), 1, 1, 3), - weighted(ModItems.rod_dual, BreedingRodType.THF.ordinal(), 1, 1, 3), - weighted(ModItems.rod_zirnox_tritium, 0, 1, 1, 1), - weighted(ModItems.rod_zirnox, EnumZirnoxType.U233_FUEL.ordinal(), 1, 1, 1), - weighted(ModItems.rod_zirnox, EnumZirnoxType.U235_FUEL.ordinal(), 1, 1, 1), - weighted(ModItems.pellet_rtg, 0, 1, 1, 3), - weighted(ModItems.powder_thorium, 0, 1, 1, 1), - weighted(ModItems.powder_neptunium, 0, 1, 1, 1), - weighted(ModItems.powder_strontium, 0, 1, 1, 1), - weighted(ModItems.powder_cobalt, 0, 1, 1, 1), - weighted(ModItems.bottle_quantum, 0, 1, 1, 1), - weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), - weighted(ModItems.hazmat_kit, 0, 1, 1, 2), - weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), - weighted(ModBlocks.yellow_barrel, 0, 1, 3, 3) }; - - public static WeightedRandomChestContent[] vertibird = new WeightedRandomChestContent[] { - weighted(ModItems.t45_helmet, 0, 1, 1, 15), - weighted(ModItems.t45_plate, 0, 1, 1, 15), - weighted(ModItems.t45_legs, 0, 1, 1, 15), - weighted(ModItems.t45_boots, 0, 1, 1, 15), - weighted(ModItems.t45_kit, 0, 1, 1, 3), - weighted(ModItems.fusion_core, 0, 1, 1, 10), - weighted(ModItems.gun_revolver, 0, 1, 1, 4), - weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 1, 24, 4), - weighted(ModItems.gun_kit_1, 0, 2, 3, 4), - weighted(ModItems.gun_rpg, 0, 1, 1, 3), - weighted(ModItems.ammo_rocket, 0, 1, 6, 3), - weighted(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 2), - weighted(ModItems.billet_uranium_fuel, 0, 1, 1, 2), - weighted(ModItems.ingot_uranium_fuel, 0, 1, 1, 2), - weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), - weighted(ModItems.gun_fatman, 0, 1, 1, 1), - weighted(ModItems.bottle_nuka, 0, 1, 3, 6), - weighted(ModItems.bottle_quantum, 0, 1, 1, 3), - weighted(ModItems.stealth_boy, 0, 1, 1, 7), - weighted(ModItems.crate_caller, 0, 1, 1, 3), - weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), - weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), - weighted(ModItems.grenade_nuclear, 0, 1, 2, 2), - weighted(ModItems.bomb_caller, 0, 1, 1, 1), - weighted(ModItems.bomb_caller, 1, 1, 1, 1), - weighted(ModItems.bomb_caller, 2, 1, 1, 2) }; - - public static WeightedRandomChestContent[] missile = new WeightedRandomChestContent[] { - weighted(ModItems.missile_generic, 0, 1, 1, 4), - weighted(ModItems.missile_incendiary, 0, 1, 1, 4), - weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), - weighted(ModItems.battery_advanced, 0, 1, 1, 5), - weighted(ModItems.designator, 0, 1, 1, 5), - weighted(ModItems.crate_caller, 0, 1, 1, 1), - weighted(ModItems.thruster_small, 0, 1, 1, 5), - weighted(ModItems.thruster_medium, 0, 1, 1, 4), - weighted(ModItems.fuel_tank_small, 0, 1, 1, 5), - weighted(ModItems.fuel_tank_medium, 0, 1, 1, 4), - weighted(ModItems.bomb_caller, 0, 1, 1, 1), - weighted(ModItems.bomb_caller, 3, 1, 1, 1), - weighted(ModItems.bottle_nuka, 0, 1, 3, 10) }; - - public static WeightedRandomChestContent[] spaceship = new WeightedRandomChestContent[] { - weighted(ModItems.battery_advanced, 0, 1, 1, 5), - weighted(ModItems.ingot_advanced_alloy, 0, 2, 16, 5), - weighted(ModItems.wire_advanced_alloy, 0, 8, 32, 5), - weighted(ModItems.coil_advanced_alloy, 0, 2, 16, 5), - weighted(ModItems.cell_deuterium, 0, 1, 8, 5), - weighted(ModItems.cell_tritium, 0, 1, 8, 5), - weighted(ModItems.cell_antimatter, 0, 1, 1, 1), - weighted(ModItems.powder_neodymium, 0, 1, 1, 1), - weighted(ModItems.powder_niobium, 0, 1, 1, 1), - weighted(ModBlocks.fusion_conductor, 0, 2, 4, 5), - weighted(ModBlocks.fusion_heater, 0, 1, 3, 5), - weighted(ModBlocks.pwr_fuel, 0, 1, 2, 5), - weighted(ModBlocks.block_tungsten, 0, 3, 8, 5), - weighted(ModBlocks.red_wire_coated, 0, 4, 8, 5), - weighted(ModBlocks.red_cable, 0, 8, 16, 5) }; - - public static WeightedRandomChestContent[] powder = new WeightedRandomChestContent[] { - weighted(ModItems.powder_neptunium, 0, 1, 32, 1), - weighted(ModItems.powder_iodine, 0, 1, 32, 1), - weighted(ModItems.powder_thorium, 0, 1, 32, 1), - weighted(ModItems.powder_astatine, 0, 1, 32, 1), - weighted(ModItems.powder_neodymium, 0, 1, 32, 1), - weighted(ModItems.powder_caesium, 0, 1, 32, 1), - weighted(ModItems.powder_strontium, 0, 1, 32, 1), - weighted(ModItems.powder_cobalt, 0, 1, 32, 1), - weighted(ModItems.powder_bromine, 0, 1, 32, 1), - weighted(ModItems.powder_niobium, 0, 1, 32, 1), - weighted(ModItems.powder_tennessine, 0, 1, 32, 1), - weighted(ModItems.powder_cerium, 0, 1, 32, 1) }; - - public static WeightedRandomChestContent[] vault1 = new WeightedRandomChestContent[] { - weighted(Items.gold_ingot, 0, 3, 14, 1), - weighted(ModItems.gun_uac_pistol, 0, 1, 1, 2), - weighted(ModItems.pin, 0, 8, 8, 1), - weighted(ModItems.gun_calamity, 0, 1, 1, 1), - weighted(ModItems.bottle_quantum, 0, 1, 3, 1), - weighted(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), - weighted(ModItems.ammo_50bmg, 0, 24, 48, 1), - weighted(ModItems.ammo_45, 0, 48, 64, 2), - weighted(ModItems.circuit_red_copper, 0, 6, 12, 1), - weighted(ModItems.gas_mask_m65, 0, 1, 1, 1), - weighted(ModItems.grenade_if_he, 0, 1, 1, 1), - weighted(ModItems.grenade_if_incendiary, 0, 1, 1, 1), - weighted(Items.diamond, 0, 1, 2, 1) }; - - public static WeightedRandomChestContent[] vault2 = new WeightedRandomChestContent[] { - weighted(ModItems.ingot_desh, 0, 2, 6, 1), - weighted(ModItems.battery_advanced_cell_4, 0, 1, 1, 1), - weighted(ModItems.powder_desh_mix, 0, 1, 5, 1), - weighted(Items.diamond, 0, 3, 6, 1), - weighted(ModItems.ammo_nuke, 0, 1, 1, 1), - weighted(ModItems.ammo_container, 0, 1, 1, 1), - weighted(ModItems.grenade_nuclear, 0, 1, 1, 1), - weighted(ModItems.grenade_smart, 0, 1, 6, 1), - weighted(ModItems.powder_yellowcake, 0, 16, 24, 1), - weighted(ModItems.gun_uzi, 0, 1, 1, 1), - weighted(ModItems.gun_uzi_silencer, 0, 1, 1, 1), - weighted(ModItems.clip_uzi, 0, 1, 3, 1), - weighted(ModItems.circuit_red_copper, 0, 12, 16, 1), - weighted(ModItems.circuit_gold, 0, 2, 6, 1) }; - - public static WeightedRandomChestContent[] vault3 = new WeightedRandomChestContent[] { - weighted(ModItems.ingot_desh, 0, 6, 16, 1), - weighted(ModItems.battery_lithium, 0, 1, 1, 1), - weighted(ModItems.powder_power, 0, 1, 5, 1), - weighted(ModItems.sat_chip, 0, 1, 1, 1), - weighted(Items.diamond, 0, 5, 9, 1), - weighted(ModItems.warhead_nuclear, 0, 1, 1, 1), - weighted(ModItems.ammo_nuke, 0, 1, 3, 1), - weighted(ModItems.ammo_container, 0, 1, 4, 1), - weighted(ModItems.grenade_nuclear, 0, 1, 2, 1), - weighted(ModItems.grenade_mirv, 0, 1, 1, 1), - weighted(ModItems.powder_yellowcake, 0, 26, 42, 1), - weighted(ModItems.ingot_u235, 0, 3, 6, 1), - weighted(ModItems.gun_fatman, 0, 1, 1, 1), - weighted(ModItems.gun_revolver_pip, 0, 1, 1, 1), - weighted(ModItems.clip_revolver_pip, 0, 2, 4, 1), - weighted(ModItems.circuit_red_copper, 0, 18, 32, 1), - weighted(ModItems.circuit_gold, 0, 6, 12, 1) }; - - public static WeightedRandomChestContent[] vault4 = new WeightedRandomChestContent[] { - weighted(ModItems.ammo_container, 0, 3, 6, 1), - weighted(ModItems.clip_fatman, 0, 2, 3, 1), - weighted(ModItems.ammo_nuke, AmmoFatman.MIRV.ordinal(), 2, 3, 1), - weighted(ModItems.gun_mirv, 0, 1, 1, 1), - weighted(ModItems.gun_fatman, 0, 1, 1, 1), - weighted(ModItems.gun_proto, 0, 1, 1, 1), - weighted(ModItems.gun_b92, 0, 1, 1, 1), - weighted(ModItems.ingot_combine_steel, 0, 16, 28, 1), - weighted(ModItems.man_core, 0, 1, 1, 1), - weighted(ModItems.boy_kit, 0, 1, 1, 1), - weighted(ModItems.nuke_starter_kit, 0, 1, 1, 1), - weighted(ModItems.weaponized_starblaster_cell, 0, 1, 1, 1), - weighted(ModItems.warhead_mirv, 0, 1, 1, 1), - weighted(ModItems.battery_schrabidium_cell, 0, 1, 1, 1), - weighted(ModItems.powder_nitan_mix, 0, 16, 32, 1) }; - - public static WeightedRandomChestContent[] officeTrash = new WeightedRandomChestContent[] { - //Meta, Min amount, Max amount, Weight - weighted(Items.paper, 0, 1, 12, 10), - weighted(Items.book, 0, 1, 3, 4), - weighted(ModItems.twinkie, 0, 1, 2, 6), - weighted(ModItems.coffee, 0, 1, 1, 4), - weighted(ModItems.flame_politics, 0, 1, 1, 2), - weighted(ModItems.ring_pull, 0, 1, 1, 4), - weighted(ModItems.can_empty, 0, 1, 1, 2), - weighted(ModItems.can_creature, 0, 1, 2, 2), - weighted(ModItems.can_smart, 0, 1, 3, 2), - weighted(ModItems.can_mrsugar, 0, 1, 2, 2), - weighted(ModItems.cap_nuka, 0, 1, 16, 2), - weighted(ModItems.book_guide, 3, 1, 1, 1), - weighted(Item.getItemFromBlock(ModBlocks.deco_computer), 0, 1, 1, 1)}; - - public static WeightedRandomChestContent[] filingCabinet = new WeightedRandomChestContent[] { - weighted(Items.paper, 0, 1, 12, 240), - weighted(Items.book, 0, 1, 3, 90), - weighted(Items.map, 0, 1, 1, 50), - weighted(Items.writable_book, 0, 1, 1, 30), - weighted(ModItems.cigarette, 0, 1, 16, 20), - weighted(ModItems.toothpicks, 0, 1, 16, 10), - weighted(ModItems.dust, 0, 1, 1, 40), - weighted(ModItems.dust_tiny, 0, 1, 3, 75), - weighted(ModItems.ink, 0, 1, 1, 1), //make that mf rare; 1:555 weight - }; - - public static WeightedRandomChestContent[] solidFuel = new WeightedRandomChestContent[] { - weighted(ModItems.solid_fuel, 0, 1, 5, 1), - weighted(ModItems.solid_fuel_presto, 0, 1, 2, 2), - weighted(ModItems.ball_dynamite, 0, 1, 4, 2), - weighted(Items.redstone, 0, 1, 3, 1), - weighted(ModItems.niter, 0, 1, 3, 1) - }; - - public static WeightedRandomChestContent[] labVault = new WeightedRandomChestContent[] { - weighted(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), 1, 1, 4), - weighted(ModItems.chemistry_set, 0, 1, 1, 15), - weighted(ModItems.screwdriver, 0, 1, 1, 10), - weighted(ModItems.nugget_mercury, 0, 1, 1, 3), - weighted(ModItems.morning_glory, 0, 1, 1, 1), - weighted(ModItems.filter_coal, 0, 1, 1, 5), - weighted(ModItems.dust, 0, 1, 3, 25), - weighted(Items.paper, 0, 1, 2, 15), - weighted(ModItems.cell_empty, 0, 1, 1, 5), - weighted(Items.glass_bottle, 0, 1, 1, 5), - weighted(ModItems.powder_iodine, 0, 1, 1, 1), - weighted(ModItems.powder_bromine, 0, 1, 1, 1), - weighted(ModItems.powder_cobalt, 0, 1, 1, 1), - weighted(ModItems.powder_neodymium, 0, 1, 1, 1), - weighted(ModItems.powder_boron, 0, 1, 1, 1), - }; - - public static WeightedRandomChestContent[] lockersVault = new WeightedRandomChestContent[] { - weighted(ModItems.robes_helmet, 0, 1, 1, 1), - weighted(ModItems.robes_plate, 0, 1, 1, 1), - weighted(ModItems.robes_legs, 0, 1, 1, 1), - weighted(ModItems.robes_boots, 0, 1, 1, 1), - weighted(ModItems.jackt, 0, 1, 1, 1), - weighted(ModItems.jackt2, 0, 1, 1, 1), - weighted(ModItems.gas_mask_m65, 0, 1, 1, 2), - weighted(ModItems.gas_mask_mono, 0, 1, 1, 2), - weighted(ModItems.goggles, 0, 1, 1, 2), - weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), - weighted(ModItems.flame_opinion, 0, 1, 3, 5), - weighted(ModItems.flame_conspiracy, 0, 1, 3, 5), - weighted(ModItems.flame_politics, 0, 1, 3, 5), - weighted(ModItems.cigarette, 0, 1, 8, 5), - weighted(ModItems.armor_polish, 0, 1, 1, 3), - weighted(ModItems.gun_kit_1, 0, 1, 1, 3), - weighted(ModItems.rag, 0, 1, 3, 5), - weighted(Items.paper, 0, 1, 6, 7), - weighted(Items.clock, 0, 1, 1, 3), - weighted(Items.book, 0, 1, 5, 10), - weighted(Items.experience_bottle, 0, 1, 3, 1), - }; - public static WeightedRandomChestContent weighted(Item item, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(item, meta, min, max, weight); } public static WeightedRandomChestContent weighted(Block block, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(Item.getItemFromBlock(block), meta, min, max, weight); } public static WeightedRandomChestContent weighted(ItemStack item, int min, int max, int weight) { return new WeightedRandomChestContent(item, min, max, weight); } @@ -422,18 +21,12 @@ public class HbmChestContents { String key; int pages; switch(rand.nextInt(5)) { - case 0: - key = "resignation_note"; pages = 3; break; - case 1: - key = "memo_stocks"; pages = 1; break; - case 2: - key = "memo_schrab_gsa"; pages = 2; break; - case 3: - key = "memo_schrab_rd"; pages = 4; break; - case 4: - key = "memo_schrab_nuke"; pages = 3; break; - default: - return null; + case 0: key = "resignation_note"; pages = 3; break; + case 1: key = "memo_stocks"; pages = 1; break; + case 2: key = "memo_schrab_gsa"; pages = 2; break; + case 3: key = "memo_schrab_rd"; pages = 4; break; + case 4: key = "memo_schrab_nuke"; pages = 3; break; + default: return null; } return ItemBookLore.createBook(key, pages, 0x6BC8FF, 0x0A0A0A); @@ -444,18 +37,12 @@ public class HbmChestContents { int pages; switch(rand.nextInt(5)) { - case 0: - key = "bf_bomb_1"; pages = 4; break; - case 1: - key = "bf_bomb_2"; pages = 6; break; - case 2: - key = "bf_bomb_3"; pages = 6; break; - case 3: - key = "bf_bomb_4"; pages = 5; break; - case 4: - key = "bf_bomb_5"; pages = 9; break; - default: - return null; + case 0: key = "bf_bomb_1"; pages = 4; break; + case 1: key = "bf_bomb_2"; pages = 6; break; + case 2: key = "bf_bomb_3"; pages = 6; break; + case 3: key = "bf_bomb_4"; pages = 5; break; + case 4: key = "bf_bomb_5"; pages = 9; break; + default: return null; } return ItemBookLore.createBook(key, pages, 0x1E1E1E, 0x46EA44); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 577632737..e6029be87 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -10,6 +10,8 @@ import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; import com.hbm.config.WorldConfig; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsSingle; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; @@ -523,39 +525,29 @@ public class HbmWorldGen implements IWorldGenerator { if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { world.setBlock(x, y, z, ModBlocks.safe, rand.nextInt(4) + 2, 2); + TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(x, y, z); switch(rand.nextInt(10)) { - case 0: - case 1: - case 2: - case 3: - ((TileEntitySafe)world.getTileEntity(x, y, z)).setPins(rand.nextInt(999) + 1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).setMod(1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).lock(); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vault1, (TileEntitySafe)world.getTileEntity(x, y, z), rand.nextInt(4) + 3); + case 0: case 1: case 2: case 3: + safe.setMod(1); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_RUSTY), safe, rand.nextInt(4) + 3); break; - case 4: - case 5: - case 6: - ((TileEntitySafe)world.getTileEntity(x, y, z)).setPins(rand.nextInt(999) + 1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).setMod(0.1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).lock(); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vault2, (TileEntitySafe)world.getTileEntity(x, y, z), rand.nextInt(3) + 2); + case 4: case 5: case 6: + safe.setMod(0.1); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_STANDARD), safe, rand.nextInt(3) + 2); break; - case 7: - case 8: - ((TileEntitySafe)world.getTileEntity(x, y, z)).setPins(rand.nextInt(999) + 1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).setMod(0.02); - ((TileEntitySafe)world.getTileEntity(x, y, z)).lock(); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vault3, (TileEntitySafe)world.getTileEntity(x, y, z), rand.nextInt(3) + 1); + case 7: case 8: + safe.setMod(0.02); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_REINFORCED), safe, rand.nextInt(3) + 1); break; case 9: - ((TileEntitySafe)world.getTileEntity(x, y, z)).setPins(rand.nextInt(999) + 1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).setMod(0.0); - ((TileEntitySafe)world.getTileEntity(x, y, z)).lock(); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vault4, (TileEntitySafe)world.getTileEntity(x, y, z), rand.nextInt(2) + 1); + safe.setMod(0.0); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_UNBREAKABLE), safe, rand.nextInt(2) + 1); break; } + + safe.setPins(rand.nextInt(999) + 1); + safe.lock(); if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned safe at " + x + " " + (y + 1) +" " + z); @@ -672,8 +664,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(10000, 250, 10000) == Blocks.air) { world.setBlock(10000, 250, 10000, Blocks.chest); if (world.getBlock(10000, 250, 10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(10000, 250, 10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(10000, 250, 10000), 29); } } } @@ -681,8 +672,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(0, 250, 10000) == Blocks.air) { world.setBlock(0, 250, 10000, Blocks.chest); if (world.getBlock(0, 250, 10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(0, 250, 10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(0, 250, 10000), 29); } } } @@ -690,8 +680,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(-10000, 250, 10000) == Blocks.air) { world.setBlock(-10000, 250, 10000, Blocks.chest); if (world.getBlock(-10000, 250, 10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(-10000, 250, 10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(-10000, 250, 10000), 29); } } } @@ -699,8 +688,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(10000, 250, 0) == Blocks.air) { world.setBlock(10000, 250, 0, Blocks.chest); if (world.getBlock(10000, 250, 0) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(10000, 250, 0), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(10000, 250, 0), 29); } } } @@ -708,8 +696,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(-10000, 250, 0) == Blocks.air) { world.setBlock(-10000, 250, 0, Blocks.chest); if (world.getBlock(-10000, 250, 0) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(-10000, 250, 0), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(-10000, 250, 0), 29); } } } @@ -717,8 +704,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(10000, 250, -10000) == Blocks.air) { world.setBlock(10000, 250, -10000, Blocks.chest); if (world.getBlock(10000, 250, -10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(10000, 250, -10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(10000, 250, -10000), 29); } } } @@ -726,8 +712,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(0, 250, -10000) == Blocks.air) { world.setBlock(0, 250, -10000, Blocks.chest); if (world.getBlock(0, 250, -10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(0, 250, -10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(0, 250, -10000), 29); } } } @@ -735,8 +720,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(-10000, 250, -10000) == Blocks.air) { world.setBlock(-10000, 250, -10000, Blocks.chest); if (world.getBlock(-10000, 250, -10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(-10000, 250, -10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(-10000, 250, -10000), 29); } } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 27763384c..9afbe951f 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -29,7 +29,6 @@ import com.hbm.inventory.material.Mats; import com.hbm.inventory.recipes.*; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.loader.SerializableRecipe; -import com.hbm.itempool.ItemPool; import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; import com.hbm.items.ItemEnums.EnumAchievementType; import com.hbm.items.ModItems; @@ -862,7 +861,6 @@ public class MainRegistry { RadiolysisRecipes.registerRadiolysis(); FalloutConfigJSON.initialize(); - ItemPool.initialize(); ItemPoolConfigJSON.initialize(); TileEntityNukeCustom.registerBombItems(); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 38f1102ee..790dd7152 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -65,7 +65,6 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java index 435d71105..c7c3a19d0 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java @@ -2,7 +2,6 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; -import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.ResourceManager; import com.hbm.render.anim.HbmAnimations; diff --git a/src/main/java/com/hbm/world/dungeon/Antenna.java b/src/main/java/com/hbm/world/dungeon/Antenna.java index b3832a1ab..b0bb8e6a1 100644 --- a/src/main/java/com/hbm/world/dungeon/Antenna.java +++ b/src/main/java/com/hbm/world/dungeon/Antenna.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; @@ -88,7 +89,7 @@ public class Antenna extends WorldGenerator world.setBlock(x + 1, y + 0, z + 2, ModBlocks.steel_poles, 3, 3); world.setBlock(x + 2, y + 0, z + 2, Blocks.chest, 0, 3); world.setBlockMetadataWithNotify(x + 2, y + 0, z + 2, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(x + 2, y, z + 2), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest)world.getTileEntity(x + 2, y, z + 2), 8); world.setBlock(x + 0, y + 1, z + 0, Blocks.air, 0, 3); world.setBlock(x + 1, y + 1, z + 0, ModBlocks.steel_poles, 2, 3); world.setBlock(x + 2, y + 1, z + 0, Blocks.air, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Barrel.java b/src/main/java/com/hbm/world/dungeon/Barrel.java index 40f80cd9f..14f2a7400 100644 --- a/src/main/java/com/hbm/world/dungeon/Barrel.java +++ b/src/main/java/com/hbm/world/dungeon/Barrel.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.tileentity.bomb.TileEntitySellafield; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; @@ -153,7 +154,7 @@ public class Barrel extends WorldGenerator { if(world.getBlock(x + 2, y + 1, z + 2) == ModBlocks.crate_steel) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityCrateSteel)world.getTileEntity(x + 2, y + 1, z + 2), 16); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityCrateSteel)world.getTileEntity(x + 2, y + 1, z + 2), 16); } world.setBlock(x + 3, y + 1, z + 2, sellafield, 3, 3); diff --git a/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java b/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java index d171f253b..f9ce89fe1 100644 --- a/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java +++ b/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; @@ -158,7 +159,7 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 6, y + 4 - yOffset, z + 7, Blocks.chest, 2, 3); if(world.getBlock(x + 6, y + 4 - yOffset, z + 7) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vertibird, (TileEntityChest)world.getTileEntity(x + 6, y + 4 - yOffset, z + 7), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_VERTIBIRD), (TileEntityChest)world.getTileEntity(x + 6, y + 4 - yOffset, z + 7), 8); } world.setBlock(x + 7, y + 4 - yOffset, z + 7, Block1, 0, 3); world.setBlock(x + 4, y + 4 - yOffset, z + 8, Block1, 0, 3); @@ -287,7 +288,7 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 5, y + 8 - yOffset, z + 6, Blocks.chest, 2, 3); if(world.getBlock(x + 5, y + 8 - yOffset, z + 6) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 5, y + 8 - yOffset, z + 6), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 5, y + 8 - yOffset, z + 6), 8); } world.setBlock(x + 6, y + 8 - yOffset, z + 6, Block1, 0, 3); world.setBlock(x + 7, y + 8 - yOffset, z + 6, Block1, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom001.java b/src/main/java/com/hbm/world/dungeon/DesertAtom001.java index 598f30699..cb2c27ede 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom001.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom001.java @@ -5,7 +5,8 @@ package com.hbm.world.dungeon; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import net.minecraft.block.Block; @@ -214,7 +215,7 @@ public class DesertAtom001 extends WorldGenerator world.setBlock(x + 9, y + -4, z + 14, Blocks.chest, 2, 3); if(world.getBlock(x + 9, y + -4, z + 14) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.nuclear, (TileEntityChest)world.getTileEntity(x + 9, y + -4, z + 14), 10); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_MISC), (TileEntityChest)world.getTileEntity(x + 9, y + -4, z + 14), 10); } world.setBlock(x + 10, y + -4, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 11, y + -4, z + 14, Library.getRandomConcrete(), 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java index 5f1415e99..c272079dd 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java @@ -5,7 +5,8 @@ package com.hbm.world.dungeon; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; @@ -1162,7 +1163,7 @@ public class DesertAtom002 world.setBlock(x + 36, y + 0, z + 12, Blocks.chest, 3, 3); if(world.getBlock(x + 36, y + 0, z + 12) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 36, y + 0, z + 12), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 36, y + 0, z + 12), 8); } world.setBlock(x + 37, y + 0, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 40, y + 0, z + 12, ModBlocks.fence_metal, 0, 3); @@ -1183,7 +1184,7 @@ public class DesertAtom002 world.setBlock(x + 22, y + 0, z + 13, Blocks.chest, 4, 3); if(world.getBlock(x + 22, y + 0, z + 13) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 22, y + 0, z + 13), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 22, y + 0, z + 13), 8); } world.setBlock(x + 23, y + 0, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 24, y + 0, z + 13, Block9, 5, 3); @@ -1375,7 +1376,7 @@ public class DesertAtom002 world.setBlock(x + 24, y + 0, z + 26, Blocks.chest, 2, 3); if(world.getBlock(x + 24, y + 0, z + 26) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.nukeTrash, (TileEntityChest)world.getTileEntity(x + 24, y + 0, z + 26), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_TRASH), (TileEntityChest)world.getTileEntity(x + 24, y + 0, z + 26), 8); } world.setBlock(x + 25, y + 0, z + 26, Block2, 0, 3); world.setBlock(x + 30, y + 0, z + 26, Block2, 0, 3); @@ -1754,7 +1755,7 @@ public class DesertAtom002 world.setBlock(x + 18, y + 1, z + 16, ModBlocks.crate_steel, 0, 3); if(world.getBlock(x + 18, y + 1, z + 16) == ModBlocks.crate_steel) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityCrateSteel)world.getTileEntity(x + 18, y + 1, z + 16), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityCrateSteel)world.getTileEntity(x + 18, y + 1, z + 16), 12); } world.setBlock(x + 19, y + 1, z + 16, Library.getRandomConcrete(), 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java index 23104ddd3..6aca90eec 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; @@ -439,7 +440,7 @@ public class DesertAtom003 world.setBlock(x + 36, y + 4, z + 9, Blocks.chest, 2, 3); if(world.getBlock(x + 36, y + 4, z + 9) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.nuclear, (TileEntityChest)world.getTileEntity(x + 36, y + 4, z + 9), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_MISC), (TileEntityChest)world.getTileEntity(x + 36, y + 4, z + 9), 12); } world.setBlock(x + 37, y + 4, z + 9, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 40, y + 4, z + 9, Block5, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Factory.java b/src/main/java/com/hbm/world/dungeon/Factory.java index d5e060fc3..2d3ce64a9 100644 --- a/src/main/java/com/hbm/world/dungeon/Factory.java +++ b/src/main/java/com/hbm/world/dungeon/Factory.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -601,7 +602,7 @@ public class Factory extends WorldGenerator world.setBlockMetadataWithNotify(x + 9, y + 0, z + 4, 5, 3); if(world.getBlock(x + 9, y + 0, z + 4) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 4), rand.nextInt(2)+ 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 4), rand.nextInt(2)+ 8); } world.setBlock(x + 13, y + 0, z + 4, Blocks.hopper, 3, 3); world.setBlock(x + 14, y + 0, z + 4, Blocks.stonebrick, 0, 3); @@ -637,7 +638,7 @@ public class Factory extends WorldGenerator world.setBlockMetadataWithNotify(x + 9, y + 0, z + 10, 5, 3); if(world.getBlock(x + 9, y + 0, z + 10) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 10), rand.nextInt(2)+ 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 10), rand.nextInt(2)+ 8); } world.setBlock(x + 13, y + 0, z + 10, Blocks.hopper, 3, 3); world.setBlock(x + 14, y + 0, z + 10, Blocks.stonebrick, 0, 3); @@ -673,7 +674,7 @@ public class Factory extends WorldGenerator world.setBlockMetadataWithNotify(x + 9, y + 0, z + 16, 5, 3); if(world.getBlock(x + 9, y + 0, z + 16) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 16), rand.nextInt(2)+ 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 16), rand.nextInt(2)+ 8); } world.setBlock(x + 13, y + 0, z + 16, Blocks.hopper, 3, 3); world.setBlock(x + 14, y + 0, z + 16, Blocks.stonebrick, 0, 3); @@ -736,7 +737,7 @@ public class Factory extends WorldGenerator world.setBlockMetadataWithNotify(x + 4, y + 0, z + 25, 3, 3); if(world.getBlock(x + 4, y + 0, z + 25) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 4, y + 0, z + 25), rand.nextInt(2)+ 6); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 4, y + 0, z + 25), rand.nextInt(2)+ 6); } world.setBlock(x + 5, y + 0, z + 25, Blocks.lava, 0, 3); world.setBlock(x + 6, y + 0, z + 25, Blocks.stonebrick, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Radio01.java b/src/main/java/com/hbm/world/dungeon/Radio01.java index 4257fd171..57111ce3c 100644 --- a/src/main/java/com/hbm/world/dungeon/Radio01.java +++ b/src/main/java/com/hbm/world/dungeon/Radio01.java @@ -5,7 +5,8 @@ package com.hbm.world.dungeon; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; @@ -499,7 +500,7 @@ public class Radio01 extends WorldGenerator world.setBlock(x + 5, y + 0, z + 11, Blocks.flower_pot, 0, 3); world.setBlock(x + 6, y + 0, z + 11, Blocks.chest, 3, 3); world.setBlockMetadataWithNotify(x + 6, y + 0, z + 11, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 6, y + 0, z + 11), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 6, y + 0, z + 11), 8); world.setBlock(x + 7, y + 0, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 8, y + 0, z + 11, Blocks.air, 0, 3); world.setBlock(x + 9, y + 0, z + 11, Blocks.air, 0, 3); @@ -651,7 +652,7 @@ public class Radio01 extends WorldGenerator world.setBlock(x + 6, y + 0, z + 24, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 7, y + 0, z + 24, Blocks.chest, 2, 3); world.setBlockMetadataWithNotify(x + 7, y + 0, z + 24, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(x + 7, y + 0, z + 24), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest)world.getTileEntity(x + 7, y + 0, z + 24), 8); world.setBlock(x + 8, y + 0, z + 24, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 9, y + 0, z + 24, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 10, y + 0, z + 24, Library.getRandomConcrete(), 0, 3); @@ -1607,7 +1608,7 @@ public class Radio01 extends WorldGenerator world.setBlock(x + 6, y + 4, z + 6, Blocks.air, 0, 3); world.setBlock(x + 7, y + 4, z + 6, Blocks.chest, 4, 3); world.setBlockMetadataWithNotify(x + 7, y + 4, z + 6, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 7, y + 4, z + 6), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 7, y + 4, z + 6), 8); world.setBlock(x + 8, y + 4, z + 6, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 9, y + 4, z + 6, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 10, y + 4, z + 6, Library.getRandomConcrete(), 0, 3); @@ -1697,7 +1698,7 @@ public class Radio01 extends WorldGenerator world.setBlock(x + 3, y + 4, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 4, y + 4, z + 14, Blocks.chest, 2, 3); world.setBlockMetadataWithNotify(x + 4, y + 4, z + 14, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 4, y + 4, z + 14), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 4, y + 4, z + 14), 8); world.setBlock(x + 5, y + 4, z + 14, Blocks.air, 0, 3); world.setBlock(x + 6, y + 4, z + 14, ModBlocks.tape_recorder, 4, 3); world.setBlock(x + 7, y + 4, z + 14, Blocks.oak_stairs, 5, 3); @@ -2817,7 +2818,7 @@ public class Radio01 extends WorldGenerator WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityChest)world.getTileEntity(x + 5, y + 8, z + 11), 16);*/ world.setBlock(x + 5, y + 8, z + 11, ModBlocks.crate_steel, 0, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityCrateSteel)world.getTileEntity(x + 5, y + 8, z + 11), 16); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityCrateSteel)world.getTileEntity(x + 5, y + 8, z + 11), 16); world.setBlock(x + 6, y + 8, z + 11, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 7, y + 8, z + 11, Blocks.air, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Relay.java b/src/main/java/com/hbm/world/dungeon/Relay.java index 93fb53610..de4920fc9 100644 --- a/src/main/java/com/hbm/world/dungeon/Relay.java +++ b/src/main/java/com/hbm/world/dungeon/Relay.java @@ -8,8 +8,9 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.config.GeneralConfig; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.items.ModItems; -import com.hbm.lib.HbmChestContents; import com.hbm.lib.Library; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import com.hbm.util.LootGenerator; @@ -658,7 +659,7 @@ public class Relay extends WorldGenerator world.setBlock(x + 4, y + 0, z + 10, Blocks.brick_block, 0, 3); world.setBlock(x + 6, y + 0, z + 10, ModBlocks.crate_iron, 0, 3); world.setBlockMetadataWithNotify(x + 6, y + 0, z + 10, 3, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityCrateIron)world.getTileEntity(x + 6, y + 0, z + 10), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityCrateIron)world.getTileEntity(x + 6, y + 0, z + 10), 8); if(world.rand.nextInt(5) == 0) { ((TileEntityCrateIron)world.getTileEntity(x + 6, y + 0, z + 10)).setInventorySlotContents(11, new ItemStack(ModItems.morning_glory)); @@ -1295,7 +1296,7 @@ public class Relay extends WorldGenerator world.setBlock(x + 7, y + 14, z + 6, Block4, s2, 3); world.setBlock(x + 8, y + 14, z + 6, ModBlocks.crate_iron, 0, 3); world.setBlockMetadataWithNotify(x + 8, y + 14, z + 6, 3, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityCrateIron)world.getTileEntity(x + 8, y + 14, z + 6), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityCrateIron)world.getTileEntity(x + 8, y + 14, z + 6), 8); world.setBlock(x + 9, y + 14, z + 6, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 10, y + 14, z + 6, Block6, 0, 3); world.setBlock(x + 9, y + 14, z + 7, ModBlocks.fence_metal, 0, 3); @@ -1515,7 +1516,7 @@ public class Relay extends WorldGenerator world.setBlock(x + 5, y + 32, z + 2, Block6, 0, 3); world.setBlock(x + 6, y + 32, z + 2, ModBlocks.crate_iron, 0, 3); world.setBlockMetadataWithNotify(x + 6, y + 32, z + 2, 2, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityCrateIron)world.getTileEntity(x + 6, y + 32, z + 2), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityCrateIron)world.getTileEntity(x + 6, y + 32, z + 2), 8); world.setBlock(x + 7, y + 32, z + 2, Block6, 0, 3); world.setBlock(x + 5, y + 32, z + 3, Block4, s3, 3); world.setBlock(x + 6, y + 32, z + 3, Block2, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Satellite.java b/src/main/java/com/hbm/world/dungeon/Satellite.java index 33c4b9273..9de904cde 100644 --- a/src/main/java/com/hbm/world/dungeon/Satellite.java +++ b/src/main/java/com/hbm/world/dungeon/Satellite.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.util.LootGenerator; @@ -976,7 +977,7 @@ public class Satellite extends WorldGenerator world.setBlock(x + 7, y + 14, z + 19, dSteel, 0, 3); world.setBlock(x + 10, y + 14, z + 19, Blocks.chest, 3, 3); world.setBlockMetadataWithNotify(x + 10, y + 14, z + 19, 3, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 10, y + 14, z + 19), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 10, y + 14, z + 19), 8); world.setBlock(x + 19, y + 14, z + 19, dSteel, 0, 3); world.setBlock(x + 20, y + 14, z + 19, dSteel, 0, 3); world.setBlock(x + 21, y + 14, z + 19, dSteel, 0, 3); @@ -1005,7 +1006,7 @@ public class Satellite extends WorldGenerator world.setBlock(x + 7, y + 14, z + 27, dSteel, 0, 3); world.setBlock(x + 16, y + 14, z + 27, Blocks.chest, 2, 3); world.setBlockMetadataWithNotify(x + 16, y + 14, z + 27, 3, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(x + 16, y + 14, z + 27), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest)world.getTileEntity(x + 16, y + 14, z + 27), 8); world.setBlock(x + 19, y + 14, z + 27, dSteel, 0, 3); world.setBlock(x + 5, y + 14, z + 28, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 6, y + 14, z + 28, ModBlocks.fence_metal, 0, 3); @@ -1423,7 +1424,7 @@ public class Satellite extends WorldGenerator world.setBlock(x + 18, y + 19, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 19, z + 12, Blocks.chest, 4, 3); world.setBlockMetadataWithNotify(x + 19, y + 19, z + 12, 4, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 19, y + 19, z + 12), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 19, y + 19, z + 12), 12); world.setBlock(x + 20, y + 19, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 21, y + 19, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 17, y + 19, z + 13, Library.getRandomConcrete(), 0, 3); @@ -2440,7 +2441,7 @@ public class Satellite extends WorldGenerator //world.setBlock(x + 5, y + 39, z + 12, Block7, 0, 3); world.setBlock(x + 5, y + 39, z + 12, Blocks.chest, 4, 3); world.setBlockMetadataWithNotify(x + 5, y + 39, z + 12, 4, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 5, y + 39, z + 12), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 5, y + 39, z + 12), 12); world.setBlock(x + 6, y + 39, z + 12, Block7, 0, 3); world.setBlock(x + 7, y + 39, z + 12, Block4, 0, 3); world.setBlock(x + 8, y + 39, z + 12, Block4, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Silo.java b/src/main/java/com/hbm/world/dungeon/Silo.java index 92597fe3d..076a7ff63 100644 --- a/src/main/java/com/hbm/world/dungeon/Silo.java +++ b/src/main/java/com/hbm/world/dungeon/Silo.java @@ -8,7 +8,9 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.LaunchPad; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -389,7 +391,7 @@ public class Silo extends WorldGenerator world.setBlockMetadataWithNotify(x + 19, y + -20, z + 10, 5, 3); if(world.getBlock(x + 19, y + -20, z + 10) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 19, y + -20, z + 10), rand.nextInt(2)+ 6); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 19, y + -20, z + 10), rand.nextInt(2)+ 6); } world.setBlock(x + 20, y + -20, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 0, y + -20, z + 11, Library.getRandomConcrete(), 0, 3); @@ -857,7 +859,7 @@ public class Silo extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -17, z + 2, 3, 3); if(world.getBlock(x + 8, y + -17, z + 2) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.missile, (TileEntityChest)world.getTileEntity(x + 8, y + -17, z + 2), rand.nextInt(2)+ 6); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsComponent.POOL_SILO), (TileEntityChest)world.getTileEntity(x + 8, y + -17, z + 2), rand.nextInt(2)+ 6); } world.setBlock(x + 10, y + -17, z + 2, Blocks.air, 0, 3); world.setBlock(x + 11, y + -17, z + 2, Library.getRandomConcrete(), 0, 3); @@ -1641,7 +1643,7 @@ public class Silo extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -9, z + 5, 3, 3); if(world.getBlock(x + 8, y + -9, z + 5) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 8, y + -9, z + 5), rand.nextInt(2)+ 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 8, y + -9, z + 5), rand.nextInt(2)+ 8); } world.setBlock(x + 8, y + -10, z + 5, Blocks.stone_slab, 8, 3); world.setBlock(x + 9, y + -9, z + 5, Blocks.planks, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship.java b/src/main/java/com/hbm/world/dungeon/Spaceship.java index ff8ca297b..b3deb1a02 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship.java @@ -5,7 +5,8 @@ package com.hbm.world.dungeon; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -455,7 +456,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 5, y + -2, z + 25, 5, 3); if(world.getBlock(x + 5, y + -2, z + 25) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.spaceship, (TileEntityChest)world.getTileEntity(x + 5, y + -2, z + 25), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_SPACESHIP), (TileEntityChest)world.getTileEntity(x + 5, y + -2, z + 25), 12); } world.setBlock(x + 6, y + -2, z + 25, Blocks.air, 0, 3); world.setBlock(x + 7, y + -2, z + 25, Blocks.air, 0, 3); @@ -463,7 +464,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -2, z + 25, 4, 3); if(world.getBlock(x + 8, y + -2, z + 25) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.spaceship, (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 25), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_SPACESHIP), (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 25), 12); } world.setBlock(x + 9, y + -2, z + 25, Block3, 0, 3); world.setBlock(x + 10, y + -2, z + 25, Block2, 0, 3); @@ -477,7 +478,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 5, y + -2, z + 26, 5, 3); if(world.getBlock(x + 5, y + -2, z + 26) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.spaceship, (TileEntityChest)world.getTileEntity(x + 5, y + -2, z + 26), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_SPACESHIP), (TileEntityChest)world.getTileEntity(x + 5, y + -2, z + 26), 12); } world.setBlock(x + 6, y + -2, z + 26, Blocks.air, 0, 3); world.setBlock(x + 7, y + -2, z + 26, Blocks.air, 0, 3); @@ -485,7 +486,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -2, z + 26, 4, 3); if(world.getBlock(x + 8, y + -2, z + 26) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.spaceship, (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 26), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_SPACESHIP), (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 26), 12); } world.setBlock(x + 9, y + -2, z + 26, Block3, 0, 3); world.setBlock(x + 10, y + -2, z + 26, Block3, 0, 3); @@ -623,7 +624,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -2, z + 38, 2, 3); if(world.getBlock(x + 8, y + -2, z + 38) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 38), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 38), 12); } world.setBlock(x + 9, y + -2, z + 38, Block3, 0, 3); world.setBlock(x + 4, y + -2, z + 39, Block3, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Vertibird.java b/src/main/java/com/hbm/world/dungeon/Vertibird.java index a8b09f4b0..9890ae66f 100644 --- a/src/main/java/com/hbm/world/dungeon/Vertibird.java +++ b/src/main/java/com/hbm/world/dungeon/Vertibird.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; @@ -141,7 +142,7 @@ public class Vertibird extends WorldGenerator world.setBlock(x + 14, y + 2 - yOffset, z + 7, Blocks.chest, 2, 3); if(world.getBlock(x + 14, y + 2 - yOffset, z + 7) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vertibird, (TileEntityChest)world.getTileEntity(x + 14, y + 2 - yOffset, z + 7), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_VERTIBIRD), (TileEntityChest)world.getTileEntity(x + 14, y + 2 - yOffset, z + 7), 8); } world.setBlock(x + 15, y + 2 - yOffset, z + 7, Block2, 0, 3); world.setBlock(x + 12, y + 2 - yOffset, z + 8, Block2, 0, 3); @@ -391,7 +392,7 @@ public class Vertibird extends WorldGenerator world.setBlock(x + 13, y + 6 - yOffset, z + 6, Blocks.chest, 2, 3); if(world.getBlock(x + 13, y + 6 - yOffset, z + 6) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vertibird, (TileEntityChest)world.getTileEntity(x + 13, y + 6 - yOffset, z + 6), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_VERTIBIRD), (TileEntityChest)world.getTileEntity(x + 13, y + 6 - yOffset, z + 6), 8); } world.setBlock(x + 14, y + 6 - yOffset, z + 6, Block2, 0, 3); world.setBlock(x + 15, y + 6 - yOffset, z + 6, Block2, 0, 3); diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index 286687203..ee12ac748 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -4,7 +4,9 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.world.gen.ProceduralStructureStart; import com.hbm.world.gen.ProceduralStructureStart.ProceduralComponent; import com.hbm.world.gen.component.Component.ConcreteBricks; @@ -147,7 +149,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 5, box); //machine placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 3, 1, 6, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(3), 4, 1, 6, HbmChestContents.antenna/*TODO change */, 5); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(3), 4, 1, 6, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA)/*TODO change */, 5); placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 5, 1, 6, box); fillWithMetadataBlocks(world, box, 3, 2, 6, 5, 2, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(2) | 4); fillWithMetadataBlocks(world, box, 3, 3, 6, 5, 3, 6, ModBlocks.tape_recorder, getDecoMeta(2)); @@ -375,13 +377,13 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 9, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 5, 1, 8, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 5, 2, 9, box); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, HbmChestContents.filingCabinet, 5); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 5); //lockers - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, HbmChestContents.lockersVault, 3); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, HbmChestContents.lockersVault, 5); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 5); fillWithBlocks(world, box, 8, 1, 8, 8, 2, 8, ModBlocks.deco_tungsten); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, HbmChestContents.lockersVault, 4); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, HbmChestContents.lockersVault, 5); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 4); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 5); fillWithMetadataBlocks(world, box, 8, 3, 7, 8, 3, 9, Blocks.trapdoor, getDecoModelMeta(2) >> 2); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 7, 1, 0); @@ -474,7 +476,7 @@ public class BunkerComponents { //table & chest placeBlockAtCurrentPosition(world, Blocks.fence, 0, 6, 1, 2, box); placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 6, 2, 2, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, HbmChestContents.lockersVault, 8); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 8); //desk w/ computer + bobblehead placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 1, 1, 8, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 1, 1, 9, box); @@ -679,7 +681,7 @@ public class BunkerComponents { fillWithMetadataBlocks(world, box, 1, 3, 9, 1, 3, 10, ModBlocks.tape_recorder, decoMetaW); fillWithBlocks(world, box, 1, 1, 11, 1, 3, 11, ModBlocks.deco_tungsten); //desks w/ computers - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, HbmChestContents.machineParts, 6); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 6); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 5, box); fillWithMetadataBlocks(world, box, 4, 1, 5, 4, 1, 7, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 7, box); @@ -704,7 +706,7 @@ public class BunkerComponents { //table w/ chest placeBlockAtCurrentPosition(world, Blocks.fence, 0, 7, 1, 9, box); placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 7, 2, 9, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, HbmChestContents.labVault, 8); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LAB), 8); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 5, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 6, 1, 0); @@ -819,8 +821,8 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaW, 10, 2, 5, box); placeBlockAtCurrentPosition(world, ModBlocks.barrel_plastic, 0, 6, 1, 5, box); //chests - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, HbmChestContents.solidFuel, 5); - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, HbmChestContents.solidFuel, 6); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, ItemPool.getPool(ItemPoolsComponent.POOL_SOLID_FUEL), 5); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, ItemPool.getPool(ItemPoolsComponent.POOL_SOLID_FUEL), 6); break; case 1: placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 6, 1, 1, box); @@ -873,7 +875,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(4), 7, 3, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaN, 6, 3, 1, box); //chest - generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, HbmChestContents.nuclearFuel, 8); + generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, ItemPool.getPool(ItemPoolsComponent.POOL_NUKE_FUEL), 8); break; } //transformer @@ -905,8 +907,8 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 10, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 9, 2, 10, box); //loot - generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, HbmChestContents.machineParts, 6); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 6); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 3, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 1, 0); diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index c6f3c67f4..fd8e0b123 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -5,6 +5,9 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.HbmChestContents; import com.hbm.util.LootGenerator; @@ -118,7 +121,7 @@ public class CivilianFeatures { //Loot/Sand this.placeBlockAtCurrentPosition(world, ModBlocks.crate_weapon, 0, 1, 0, 1, box); if(!this.hasPlacedChest) - this.hasPlacedChest = this.generateStructureChestContents(world, box, rand, 3, 0, 1, HbmChestContents.modGeneric, rand.nextInt(2) + 8); + this.hasPlacedChest = this.generateStructureChestContents(world, box, rand, 3, 0, 1, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), rand.nextInt(2) + 8); this.fillWithBlocks(world, box, 5, 0, 1, 6, 0, 1, ModBlocks.crate, Blocks.air, false); this.placeBlockAtCurrentPosition(world, Blocks.sand, 0, 7, 0, 1, box); if(rand.nextFloat() <= 0.25) @@ -244,7 +247,7 @@ public class CivilianFeatures { this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 1, 1, 9 - 4, box); if(!hasPlacedLoot[0]) { this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 1, 1, 9 - 2, box); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.machineParts, (TileEntityChest)world.getTileEntity(this.getXWithOffset(1, 9 - 2), + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), (TileEntityChest)world.getTileEntity(this.getXWithOffset(1, 9 - 2), this.getYWithOffset(1), this.getZWithOffset(1, 9 - 2)), 10); this.hasPlacedLoot[0] = true; } @@ -257,7 +260,7 @@ public class CivilianFeatures { //House 2 if(!hasPlacedLoot[1]) { this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 15 - 5, 1, 1, box); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(this.getXWithOffset(15 - 5, 1), + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest)world.getTileEntity(this.getXWithOffset(15 - 5, 1), this.getYWithOffset(1), this.getZWithOffset(15 - 5, 1)), 10); this.hasPlacedLoot[1] = true; } @@ -395,7 +398,7 @@ public class CivilianFeatures { this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 9 - 1, 1, 7 - 2, box); if(!hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 9 - 1, 1, 7 - 1, HbmChestContents.modGeneric, 8); + this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 9 - 1, 1, 7 - 1, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), 8); } return true; @@ -559,7 +562,7 @@ public class CivilianFeatures { this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 4, 1, 8 - 2, box); this.placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 4, 2, 8 - 2, box); if(!hasPlacedLoot[0]) { - this.hasPlacedLoot[0] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 5, 1, 8 - 2, HbmChestContents.nuclearFuel, 10); + this.hasPlacedLoot[0] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 5, 1, 8 - 2, ItemPool.getPool(ItemPoolsComponent.POOL_NUKE_FUEL), 10); } this.fillWithBlocks(world, box, 4, 1, 8 - 3, 5, 1, 8 - 3, ModBlocks.crate_lead, Blocks.air, false); @@ -569,7 +572,7 @@ public class CivilianFeatures { this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 12 - 2, 2, 8 - 2, box); this.fillWithBlocks(world, box, 12 - 4, 3, 8 - 2, 12 - 2, 3, 8 - 2, ModBlocks.steel_roof, Blocks.air, false); if(!hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 12 - 2, 1, 3, HbmChestContents.nukeTrash, 9); + this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 12 - 2, 1, 3, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_TRASH), 9); if(rand.nextInt(2) == 0) generateLoreBook(world, box, 12 - 2, 1, 3, 1, HbmChestContents.generateOfficeBook(rand)); } @@ -703,7 +706,7 @@ public class CivilianFeatures { this.placeBlockAtCurrentPosition(world, ModBlocks.radiorec, eastMeta, 6, 2, 8 - 1, box); this.fillWithMetadataBlocks(world, box, 2, 1, 8 - 1, 3, 1, 8 - 1, ModBlocks.machine_electric_furnace_off, southMeta, Blocks.air, 0, false); if(!hasPlacedLoot) { - this.hasPlacedLoot = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 4, 1, 8 - 1, HbmChestContents.machineParts, 11); + this.hasPlacedLoot = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 4, 1, 8 - 1, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 11); } this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 5, 3, 1, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 2, 1, 2, box); @@ -1103,8 +1106,8 @@ public class CivilianFeatures { placeBlockAtCurrentPosition(world, rand.nextBoolean() ? ModBlocks.crate_weapon : ModBlocks.crate, 0, 6, 5, 12, box); //inventories - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(2), 7, 1, 10, HbmChestContents.officeTrash, 4); - generateInvContents(world, box, rand, Blocks.chest, metaE, 7, 5, 5, HbmChestContents.modGeneric, 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(2), 7, 1, 10, ItemPool.getPool(ItemPoolsComponent.POOL_OFFICE_TRASH), 4); + generateInvContents(world, box, rand, Blocks.chest, metaE, 7, 5, 5, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), 8); //loot placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 3, 2, 12, box); LootGenerator.lootBookLore(world, getXWithOffset(3, 12), getYWithOffset(2), getZWithOffset(3, 12), HbmChestContents.generateLabBook(rand)); //TODO write more lore diff --git a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index 724323390..353b2a06e 100644 --- a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -3,6 +3,9 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.HbmChestContents; import com.hbm.util.LootGenerator; @@ -207,9 +210,9 @@ public class OfficeFeatures { //Woot if(!this.hasPlacedLoot[0]) - this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 14 - 4, 1, 12 - 1, HbmChestContents.officeTrash, 8); + this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 14 - 4, 1, 12 - 1, ItemPool.getPool(ItemPoolsComponent.POOL_OFFICE_TRASH), 8); if(!this.hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(3), 6, 1, 1, HbmChestContents.machineParts, 10, 0.5D); + this.hasPlacedLoot[1] = generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(3), 6, 1, 1, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 10, 0.5D); if(rand.nextInt(2) == 0) generateLoreBook(world, box, 6, 1, 1, 7, HbmChestContents.generateOfficeBook(rand)); } @@ -526,21 +529,21 @@ public class OfficeFeatures { placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 5, 13, 9, box); placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 7, 13, 11, box); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(3), 9, 1, 7, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(1), 7, 5, 4, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(1), 7, 6, 4, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(2), 10, 5, 7, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 10, 5, 12, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 10, 6, 12, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 5, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(3), 9, 1, 7, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(1), 7, 5, 4, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(1), 7, 6, 4, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(2), 10, 5, 7, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 10, 5, 12, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 10, 6, 12, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 5, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); - generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(2), 1, 9, 13, HbmChestContents.officeTrash, 10, 1.0D); + generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(2), 1, 9, 13, ItemPool.getPool(ItemPoolsComponent.POOL_OFFICE_TRASH), 10, 1.0D); if(rand.nextInt(2) == 0) generateLoreBook(world, box, 1, 9, 13, 7, HbmChestContents.generateOfficeBook(rand)); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 13, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 9, 13, HbmChestContents.filingCabinet, 4); - generateLockableContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 10, 13, HbmChestContents.expensive, 8, 0.1D); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 13, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 9, 13, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateLockableContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 10, 13, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), 8, 0.1D); placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 6, 13, 11, box); LootGenerator.lootCapStash(world, this.getXWithOffset(6, 11), this.getYWithOffset(13), this.getZWithOffset(6, 11)); diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 24bc98675..96415db46 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -4,8 +4,11 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; +import com.hbm.itempool.ItemPoolsSingle; import com.hbm.items.ModItems; -import com.hbm.lib.HbmChestContents; import com.hbm.tileentity.bomb.TileEntityLandmine; import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; import com.hbm.tileentity.network.TileEntityRadioTorchBase; @@ -248,7 +251,7 @@ public class SiloComponent extends Component { setRTTYFreq(world, box, 16, 25, 17, freqHatch); //Containers - generateInvContents(world, box, rand, Blocks.chest, 2, 36, 26, 17, HbmChestContents.vertibird, 5); + generateInvContents(world, box, rand, Blocks.chest, 2, 36, 26, 17, ItemPool.getPool(ItemPoolsLegacy.POOL_VERTIBIRD), 5); /* Stairway */ fillWithAir(world, box, 37, 26, 9, 37, 27, 10); @@ -463,22 +466,22 @@ public class SiloComponent extends Component { placeRandomBobble(world, box, rand, 16, 22, 4); //Containers - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 17, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 18, HbmChestContents.labVault, 6); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 19, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 17, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 19, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 29, 21, 19, HbmChestContents.officeTrash, 8); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 18, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 17, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 17, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 18, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LAB), 6); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 19, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 17, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 19, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 29, 21, 19, ItemPool.getPool(ItemPoolsComponent.POOL_OFFICE_TRASH), 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 18, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 17, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 8, HbmChestContents.filingCabinet, 5); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 8, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 5); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 3, 25, 21, 2, HbmChestContents.machineParts, 4); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 3, 25, 21, 2, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelN, 23, 21, 5, HbmChestContents.filingCabinet, 5); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelN, 23, 21, 5, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 5); - generateLockableContents(world, box, rand, ModBlocks.safe, decoW, 16, 21, 4, HbmChestContents.vault1, 3, 1D); + generateLockableContents(world, box, rand, ModBlocks.safe, decoW, 16, 21, 4, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_RUSTY), 3, 1D); /* Silo */ // TOP @@ -917,12 +920,12 @@ public class SiloComponent extends Component { placeBed(world, box, 1, i, j, 8); //Containers - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 25, HbmChestContents.lockersVault, 6); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 25, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 6); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 2, 17, 11, HbmChestContents.lockersVault, 6); //placed separately for loot table control - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 17, 11, HbmChestContents.expensive, 2); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 6, 17, 11, HbmChestContents.lockersVault, 6); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 11, HbmChestContents.lockersVault, 6); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 2, 17, 11, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 6); //placed separately for loot table control + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 17, 11, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), 2); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 6, 17, 11, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 6); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 11, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 6); //Mines fillWithMines(world, box, rand, 2, 17, 9, 11, 17, 11); fillWithMines(world, box, rand, 9, 17, 17, 11, 17, 24); @@ -1016,10 +1019,10 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, ModBlocks.deco_toaster, getCRTMeta(1), 28, 13, 17, box); //Containers - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 32, 13, 9, HbmChestContents.missile, 6); - generateInvContents(world, box, rand, ModBlocks.safe, decoN, 33, 13, 9, HbmChestContents.machineParts, 6); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 32, 13, 9, ItemPool.getPool(ItemPoolsComponent.POOL_SILO), 6); + generateInvContents(world, box, rand, ModBlocks.safe, decoN, 33, 13, 9, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 6); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 33, 13, 21, HbmChestContents.labVault, 8); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 33, 13, 21, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LAB), 8); //Mines fillWithMines(world, box, rand, 27, 13, 13, 33, 13, 15); @@ -1154,7 +1157,7 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 7, 11, 8, 11, 11, 8, ModBlocks.deco_lead); //Containers - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 9, 7, HbmChestContents.nuclearFuel, 5); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 9, 7, ItemPool.getPool(ItemPoolsComponent.POOL_NUKE_FUEL), 5); //Mines fillWithMines(world, box, rand, 1, 9, 7, 6, 9, 11); fillWithMines(world, box, rand, 8, 9, 17, 10, 9, 22); @@ -1214,10 +1217,10 @@ public class SiloComponent extends Component { //Containers generateLockableContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 13, launchKey, 1, 0.1D); - generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 31, 5, 14, HbmChestContents.nukeTrash, 5); - generateInvContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 15, HbmChestContents.filingCabinet, 5); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 31, 5, 14, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_TRASH), 5); + generateInvContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 15, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 5); - generateInvContents(world, box, rand, ModBlocks.crate_iron, 2, 30, 1, 11, HbmChestContents.expensive, 7); + generateInvContents(world, box, rand, ModBlocks.crate_iron, 2, 30, 1, 11, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), 7); //Mines fillWithMines(world, box, rand, 27, 5, 13, 30, 5, 15); From b65abb526fc201b1509473343aeb9341f35f544f Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 20 Mar 2024 21:07:13 +0100 Subject: [PATCH 281/376] i can taste colors --- .../hbm/energymk2/IEnergyConductorMK2.java | 8 ++ .../hbm/energymk2/IEnergyConnectorMK2.java | 27 +++++++ .../api/hbm/energymk2/IEnergyReceiverMK2.java | 79 +++++++++++++++++++ .../java/api/hbm/energymk2/Nodespace.java | 6 ++ .../java/api/hbm/energymk2/PowerNetMK2.java | 21 +++++ .../java/api/hbm/energymk2/package-info.java | 33 ++++++++ 6 files changed, 174 insertions(+) create mode 100644 src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java create mode 100644 src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java create mode 100644 src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java create mode 100644 src/main/java/api/hbm/energymk2/Nodespace.java create mode 100644 src/main/java/api/hbm/energymk2/PowerNetMK2.java create mode 100644 src/main/java/api/hbm/energymk2/package-info.java diff --git a/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java new file mode 100644 index 000000000..8307d4339 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java @@ -0,0 +1,8 @@ +package api.hbm.energymk2; + +public interface IEnergyConductorMK2 extends IEnergyConnectorMK2 { + + public PowerNetMK2 getPowerNet(); + + public void setPowerNet(PowerNetMK2 network); +} diff --git a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java new file mode 100644 index 000000000..77e84b007 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java @@ -0,0 +1,27 @@ +package api.hbm.energymk2; + +import com.hbm.util.CompatEnergyControl; + +import api.hbm.energy.ILoadedTile; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IEnergyConnectorMK2 extends ILoadedTile { + + /** + * Whether the given side can be connected to + * dir refers to the side of this block, not the connecting block doing the check + * @param dir + * @return + */ + public default boolean canConnect(ForgeDirection dir) { + return dir != ForgeDirection.UNKNOWN; + } + public long getPower(); + public long getMaxPower(); + + public default void provideInfoForEC(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_ENERGY_HE, this.getPower()); + data.setLong(CompatEnergyControl.L_CAPACITY_HE, this.getMaxPower()); + } +} diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java new file mode 100644 index 000000000..79992c916 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -0,0 +1,79 @@ +package api.hbm.energymk2; + +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +import api.hbm.energy.IEnergyConductor; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { + + public long transferPower(long power); + + public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) { + + TileEntity te = world.getTileEntity(x, y, z); + boolean red = false; + + /*if(te instanceof IEnergyConductor) { + IEnergyConductor con = (IEnergyConductor) te; + + if(!con.canConnect(dir.getOpposite())) + return; + + if(con.getPowerNet() != null && !con.getPowerNet().isSubscribed(this)) + con.getPowerNet().subscribe(this); + + if(con.getPowerNet() != null) + red = true; + }*/ + + if(particleDebug) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "network"); + data.setString("mode", "power"); + double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); + } + } + + public default void tryUnsubscribe(World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof IEnergyConductor) { + IEnergyConductor con = (IEnergyConductor) te; + + /*if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) + con.getPowerNet().unsubscribe(this);*/ + } + } + + public static final boolean particleDebug = false; + + public default Vec3 getDebugParticlePos() { + TileEntity te = (TileEntity) this; + Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); + return vec; + } + + public default ConnectionPriority getPriority() { + return ConnectionPriority.NORMAL; + } + + public enum ConnectionPriority { + LOW, + NORMAL, + HIGH + } +} diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java new file mode 100644 index 000000000..568f2b423 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -0,0 +1,6 @@ +package api.hbm.energymk2; + +public class Nodespace { + + //we're gonna figure this shit out as we go along +} diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java new file mode 100644 index 000000000..603284af6 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -0,0 +1,21 @@ +package api.hbm.energymk2; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class PowerNetMK2 { + + private boolean valid = true; + private HashMap links = new HashMap(); + private HashMap proxies = new HashMap(); + private List subscribers = new ArrayList(); + + public boolean isSubscribed(IEnergyReceiverMK2 receiver) { + return false; //TBI + } + + public void subscribe(IEnergyReceiverMK2 receiver) { + //TBI + } +} diff --git a/src/main/java/api/hbm/energymk2/package-info.java b/src/main/java/api/hbm/energymk2/package-info.java new file mode 100644 index 000000000..8bb153735 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/package-info.java @@ -0,0 +1,33 @@ +/** + * + */ +/** + * @author hbm + * + */ +package api.hbm.energymk2; + +// i have snorted two lines of pure caffeine and taken one large paracetamol laced with even more caffine, let's fucking go + +//most of the new classes are just copy pasted mashed up shit from yesteryear, what a productive segment that was + +/* + +before my caffine high ends entirely and i black out, here's the gist: +* diodes are handled like energy receiver and simply chain-load the power net they output into in a recursive function, this might be a bit laggy compared to the rest of the system, but it's still way less laggy than the old one +* instead of power nets being bound to tile entities directly, tiles spawn ethereal "nodes" similar to the drone waypoints which can be saved using world data, meaning that breaking cables will delete nodes, but unloading them will keep them alive in "node space" which is what's actually used to check for connections +* power nets may cache some positional info in order to limit the amount of nodes, this should prevent horrific freezes in the unlikely event that some retard makes a superflat world out of cables +* general energy transmission will work in a similar fashion as martin explained his, but somewhat simplified; the system will determine supply and demand and then split those evenly if possible, retrying within one operation is only necessary for minor restrictions like priority, any leftovers from rounding don't have to be re-tried because the next tick will already take care of that +* invest funds in more coal mare nudes +* battery "fair share" transfer will most likely no longer work, but that's not really as relevant these days considering there's capacitors and because batteries have transfer speed limits anyway +* most of the machine's functions will be repurposed, the "sendPower" method will no longer send power directly but register the machine to the network as a power source +* if all else fails and martin still hasn't surrendered his code, i will beg greg for his wisdom (but without loss or tiering because fuck that) +* +* | | || +* ____|____ +* | +* || | |_ +* +* ...i said WITHOUT loss + +*/ \ No newline at end of file From 3f3d7551d5f8e0f329c41323c22116cb3e5e7783 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 21 Mar 2024 16:52:15 +0100 Subject: [PATCH 282/376] better wire rendering, sat miner loot pool configs --- changelog | 5 ++ .../com/hbm/config/ItemPoolConfigJSON.java | 1 + .../com/hbm/itempool/ItemPoolSatellite.java | 61 +++++++++++++++ src/main/java/com/hbm/main/ClientProxy.java | 21 ++--- .../java/com/hbm/main/ResourceManager.java | 1 + .../render/tileentity/RenderConnector.java | 2 +- .../hbm/render/tileentity/RenderPylon.java | 2 +- .../render/tileentity/RenderPylonBase.java | 72 +++++++++++------- .../satellites/SatelliteLunarMiner.java | 20 ++--- .../saveddata/satellites/SatelliteMiner.java | 41 ++-------- .../machine/TileEntityMachineSatDock.java | 21 ++--- .../hbm/textures/models/network/wire.png | Bin 0 -> 138 bytes 12 files changed, 147 insertions(+), 100 deletions(-) create mode 100644 src/main/java/com/hbm/itempool/ItemPoolSatellite.java create mode 100644 src/main/resources/assets/hbm/textures/models/network/wire.png diff --git a/changelog b/changelog index a69023615..4a939b783 100644 --- a/changelog +++ b/changelog @@ -35,6 +35,10 @@ * The particle accelerator as well as the schottky particle diodes now have presentations explaining how they work * Loot pools are now configurable. Loot is divided into different categories, and structures may generate things from certain categories. * The config currently includes all items spawned in dungeon chests/crates/safes/lockers, excluding black book spawns, but also including the loot pool for red room pedestals + * Also added satellites as configurable loot pools. Yay! +* Pylons and wire connectors now use a texture instead of a solid colored wire + * The cable model has been simplified, being only a single face instead of three faces stuck inside each other at weird angles + * Cables now sag slightly more at long ranges ## Fixed * WarTec should now be compatible again @@ -48,3 +52,4 @@ * Fixed one of the woodburner's ports being offset in certain orientations * Fixed fog caching causing weird behavior with the sky color change in response to crater biomes (or lack thereof) * Fixed "F1 for help" keybind not working on non-standard inventories such as the NEI item list +* Fixed pylon wire rendering having incorrect corrdinates for brightness checks diff --git a/src/main/java/com/hbm/config/ItemPoolConfigJSON.java b/src/main/java/com/hbm/config/ItemPoolConfigJSON.java index 306da20b7..986444511 100644 --- a/src/main/java/com/hbm/config/ItemPoolConfigJSON.java +++ b/src/main/java/com/hbm/config/ItemPoolConfigJSON.java @@ -50,6 +50,7 @@ public class ItemPoolConfigJSON { JsonWriter writer = new JsonWriter(new FileWriter(file)); writer.setIndent(" "); writer.beginObject(); + writer.name("description").value("Format is as follows: First object is an array representing the itemstack in question, same rules apply here as they do for recipe configs but with one difference: Stacks accept NBT. NBT is contained in {curly brackets}, the format is the same as it is for the /give command. After the stack comes the minimum amount of items, then the maximum (the stack's own stacksize value is ignored). The final number is the weight, an item with a weight of 3 is 3x as likely to appear than an item with a weight of 1."); writer.name("pools").beginObject(); for(Entry entry : ItemPool.pools.entrySet()) { diff --git a/src/main/java/com/hbm/itempool/ItemPoolSatellite.java b/src/main/java/com/hbm/itempool/ItemPoolSatellite.java new file mode 100644 index 000000000..c70a7def7 --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolSatellite.java @@ -0,0 +1,61 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolSatellite { + + public static final String POOL_SAT_MINER = "POOL_SAT_MINER"; + public static final String POOL_SAT_LUNAR = "POOL_SAT_LUNAR"; //woona + + public static void init() { + + new ItemPool(POOL_SAT_MINER) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.powder_aluminium, 0, 3, 3, 10), + weighted(ModItems.powder_iron, 0, 3, 3, 10), + weighted(ModItems.powder_titanium, 0, 2, 2, 8), + weighted(ModItems.crystal_tungsten, 0, 2, 2, 7), + weighted(ModItems.powder_coal, 0, 4, 4, 15), + weighted(ModItems.powder_uranium, 0, 2, 2, 5), + weighted(ModItems.powder_plutonium, 0, 1, 1, 5), + weighted(ModItems.powder_thorium, 0, 2, 2, 7), + weighted(ModItems.powder_desh_mix, 0, 3, 3, 5), + weighted(ModItems.powder_diamond, 0, 2, 2, 7), + weighted(Items.redstone, 0, 5, 5, 15), + weighted(ModItems.powder_nitan_mix, 0, 2, 2, 5), + weighted(ModItems.powder_power, 0, 2, 2, 5), + weighted(ModItems.powder_copper, 0, 5, 5, 15), + weighted(ModItems.powder_lead, 0, 3, 3, 10), + weighted(ModItems.fluorite, 0, 4, 4, 15), + weighted(ModItems.powder_lapis, 0, 4, 4, 10), + weighted(ModItems.crystal_aluminium, 0, 1, 1, 5), + weighted(ModItems.crystal_gold, 0, 1, 1, 5), + weighted(ModItems.crystal_phosphorus, 0, 1, 1, 10), + weighted(ModBlocks.gravel_diamond, 0, 1, 1, 3), + weighted(ModItems.crystal_uranium, 0, 1, 1, 3), + weighted(ModItems.crystal_plutonium, 0, 1, 1, 3), + weighted(ModItems.crystal_trixite, 0, 1, 1, 1), + weighted(ModItems.crystal_starmetal, 0, 1, 1, 1), + weighted(ModItems.crystal_lithium, 0, 2,1, 4) + }; + }}; + + new ItemPool(POOL_SAT_LUNAR) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModBlocks.moon_turf, 0, 48, 48, 5), + weighted(ModBlocks.moon_turf, 0, 32, 32, 7), + weighted(ModBlocks.moon_turf, 0, 16, 16, 5), + weighted(ModItems.powder_lithium, 0, 3, 3, 5), + weighted(ModItems.powder_iron, 0, 3, 3, 5), + weighted(ModItems.crystal_iron, 0, 1, 1, 1), + weighted(ModItems.crystal_lithium, 0, 1, 1, 1) + }; + }}; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 6c18ce192..96181641a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -412,7 +412,6 @@ public class ClientProxy extends ServerProxy { double[] rir = new double[] {0, 0, 0}; double[] tir = new double[] {0, 0, 0}; double[] sir = new double[] {1.1, 1.1, 1.1}; - double[] sir_default = new double[] {1, 1, 1}; MinecraftForgeClient.registerItemRenderer(ModItems.titanium_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); MinecraftForgeClient.registerItemRenderer(ModItems.alloy_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); @@ -424,14 +423,18 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.cmb_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); MinecraftForgeClient.registerItemRenderer(ModItems.dnt_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); - MinecraftForgeClient.registerItemRenderer(ModItems.bismuth_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); - MinecraftForgeClient.registerItemRenderer(ModItems.bismuth_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); - MinecraftForgeClient.registerItemRenderer(ModItems.volcanic_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); - MinecraftForgeClient.registerItemRenderer(ModItems.volcanic_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); - MinecraftForgeClient.registerItemRenderer(ModItems.chlorophyte_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); - MinecraftForgeClient.registerItemRenderer(ModItems.chlorophyte_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); - MinecraftForgeClient.registerItemRenderer(ModItems.mese_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); - MinecraftForgeClient.registerItemRenderer(ModItems.mese_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir_default)); + double[] sfp_default = new double[] {1, 1, 1}; + double[] tfp_default = new double[] {0, 0, 0}; + double[] sir_default = new double[] {1, 1, 1}; + + MinecraftForgeClient.registerItemRenderer(ModItems.bismuth_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.bismuth_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.volcanic_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.volcanic_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.chlorophyte_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.chlorophyte_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.mese_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.mese_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); ItemRenderMissileGeneric.init(); MinecraftForgeClient.registerItemRenderer(ModItems.missile_test, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 8b1759c0e..677b69c92 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -784,6 +784,7 @@ public class ResourceManager { public static final ResourceLocation connector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/connector.png"); public static final ResourceLocation pylon_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_large.png"); public static final ResourceLocation substation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/substation.png"); + public static final ResourceLocation wire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire.png"); //Radiolysis public static final ResourceLocation radiolysis_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radiolysis.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderConnector.java b/src/main/java/com/hbm/render/tileentity/RenderConnector.java index 0c829b8ea..64a3eb44e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderConnector.java +++ b/src/main/java/com/hbm/render/tileentity/RenderConnector.java @@ -34,7 +34,7 @@ public class RenderConnector extends RenderPylonBase { GL11.glPopMatrix(); GL11.glPushMatrix(); - this.renderSingleLine(con, x, y, z); + this.renderLinesGeneric(con, x, y, z); GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylon.java b/src/main/java/com/hbm/render/tileentity/RenderPylon.java index 1256b9d6a..ef270f2f3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylon.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylon.java @@ -33,7 +33,7 @@ public class RenderPylon extends RenderPylonBase { GL11.glPopMatrix(); GL11.glPushMatrix(); - this.renderSingleLine(pyl, x, y, z); + this.renderLinesGeneric(pyl, x, y, z); GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java index 2dda796c5..5a5e64388 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java @@ -2,10 +2,10 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.main.ResourceManager; import com.hbm.tileentity.network.TileEntityPylonBase; import com.hbm.tileentity.network.TileEntityPylonBase.ConnectionType; -import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -16,7 +16,7 @@ import net.minecraft.world.World; public abstract class RenderPylonBase extends TileEntitySpecialRenderer { //TODO: adapt this into a more generic form for multi wire pylons - @Deprecated + /*@Deprecated public void renderSingleLine(TileEntityPylonBase pyl, double x, double y, double z) { for(int i = 0; i < pyl.connected.size(); i++) { @@ -70,7 +70,7 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { } } } - } + }*/ /** * The closest we have to a does-all solution. It will figure out if it needs to draw multiple lines, @@ -82,6 +82,8 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { */ public void renderLinesGeneric(TileEntityPylonBase pyl, double x, double y, double z) { + this.bindTexture(ResourceManager.wire_tex); + for(int i = 0; i < pyl.connected.size(); i++) { int[] wire = pyl.connected.get(i); @@ -155,33 +157,46 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); float count = 10; + Tessellator tess = Tessellator.instance; + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + tess.startDrawingQuads(); + Vec3 delta = Vec3.createVectorHelper(x0 - x1, y0 - y1, z0 - z1); + double hang = Math.min(delta.lengthVector() / 15D, 2.5D); for(float j = 0; j < count; j++) { float k = j + 1; + + double sagJ = Math.sin(j / count * Math.PI * 0.5) * hang; + double sagK = Math.sin(k / count * Math.PI * 0.5) * hang; + double sagMean = (sagJ + sagK) / 2D; double deltaX = x1 - x0; double deltaY = y1 - y0; double deltaZ = z1 - z0; double ja = j + 0.5D; - double ix = pyl.xCoord + x0 + deltaX / (double)(count * 2) * ja; - double iy = pyl.yCoord + y0 + deltaY / (double)(count * 2) * ja - Math.sin(j / count * Math.PI * 0.5); - double iz = pyl.zCoord + z0 + deltaZ / (double)(count * 2) * ja; + double ix = pyl.xCoord + x0 + deltaX / (double)(count) * ja; + double iy = pyl.yCoord + y0 + deltaY / (double)(count) * ja - sagMean; + double iz = pyl.zCoord + z0 + deltaZ / (double)(count) * ja; int brightness = world.getLightBrightnessForSkyBlocks(MathHelper.floor_double(ix), MathHelper.floor_double(iy), MathHelper.floor_double(iz), 0); - int lX = brightness % 65536; - int lY = brightness / 65536; - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); + tess.setBrightness(brightness); - drawLineSegment( + drawLineSegment(tess, x0 + (deltaX * j / count), - y0 + (deltaY * j / count) - Math.sin(j / count * Math.PI * 0.5), + y0 + (deltaY * j / count) - sagJ, z0 + (deltaZ * j / count), x0 + (deltaX * k / count), - y0 + (deltaY * k / count) - Math.sin(k / count * Math.PI * 0.5), + y0 + (deltaY * k / count) - sagK, z0 + (deltaZ * k / count)); } + tess.draw(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); } @@ -196,32 +211,31 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { * @param b * @param c */ - public void drawLineSegment(double x, double y, double z, double a, double b, double c) { + public void drawLineSegment(Tessellator tessellator, double x, double y, double z, double a, double b, double c) { double girth = 0.03125D; + + double dX = x - a; + double dY = y - b; + double dZ = z - c; + double length = Math.sqrt(dX * dX + dY * dY + dZ * dZ); + int wrap = (int) Math.ceil(length * 8); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawing(5); - tessellator.setColorOpaque_I(LINE_COLOR); - tessellator.addVertex(x, y + girth, z); - tessellator.addVertex(x, y - girth, z); - tessellator.addVertex(a, b + girth, c); - tessellator.addVertex(a, b - girth, c); - tessellator.addVertex(x + girth, y, z); + if(dX + dZ < 0) wrap *= -1; + + tessellator.setColorOpaque_I(0xffffff); + tessellator.addVertexWithUV(x, y + girth, z, 0, 0); + tessellator.addVertexWithUV(x, y - girth, z, 0, 1); + tessellator.addVertexWithUV(a, b - girth, c, wrap, 1); + tessellator.addVertexWithUV(a, b + girth, c, wrap, 0); + /*tessellator.addVertex(x + girth, y, z); tessellator.addVertex(x - girth, y, z); tessellator.addVertex(a + girth, b, c); tessellator.addVertex(a - girth, b, c); tessellator.addVertex(x, y, z + girth); tessellator.addVertex(x, y, z - girth); tessellator.addVertex(a, b, c + girth); - tessellator.addVertex(a, b, c - girth); - tessellator.draw(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_CULL_FACE); + tessellator.addVertex(a, b, c - girth);*/ } public static final int LINE_COLOR = 0xBB3311; diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java index 59b2d3f3d..ca4ad67af 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java @@ -1,20 +1,10 @@ package com.hbm.saveddata.satellites; -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; -import com.hbm.util.WeightedRandomObject; -import net.minecraft.item.ItemStack; +import com.hbm.itempool.ItemPoolSatellite; public class SatelliteLunarMiner extends SatelliteMiner { - static { - registerCargo(SatelliteLunarMiner.class, new WeightedRandomObject[] { - new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 48), 5), - new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 32), 7), - new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 16), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_lithium, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_iron, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 1), 1) - }); - } + + static { + registerCargo(SatelliteLunarMiner.class, ItemPoolSatellite.POOL_SAT_LUNAR); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java index c1ee0f836..4b398e281 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java @@ -1,10 +1,7 @@ package com.hbm.saveddata.satellites; -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; +import com.hbm.itempool.ItemPoolSatellite; import com.hbm.util.WeightedRandomObject; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import java.util.HashMap; @@ -13,7 +10,7 @@ public class SatelliteMiner extends Satellite { /** * {@link WeightedRandomObject} array with loot the satellite will deliver. */ - private static final HashMap, WeightedRandomObject[]> CARGO = new HashMap<>(); + private static final HashMap, String> CARGO = new HashMap<>(); public long lastOp; @@ -33,7 +30,7 @@ public class SatelliteMiner extends Satellite { * Replaces cargo of the satellite. * @param cargo - Array of {@link WeightedRandomObject} representing the loot that will be delivered. */ - public static void registerCargo(Class minerSatelliteClass, WeightedRandomObject[] cargo) { + public static void registerCargo(Class minerSatelliteClass, String cargo) { CARGO.put(minerSatelliteClass, cargo); } @@ -41,39 +38,11 @@ public class SatelliteMiner extends Satellite { * Gets items the satellite can deliver. * @return - Array of {@link WeightedRandomObject} of satellite loot. */ - public WeightedRandomObject[] getCargo() { + public String getCargo() { return CARGO.get(getClass()); } static { - registerCargo(SatelliteMiner.class, new WeightedRandomObject[] { - new WeightedRandomObject(new ItemStack(ModItems.powder_aluminium, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_titanium, 2), 8), - new WeightedRandomObject(new ItemStack(ModItems.crystal_tungsten, 2), 7), - new WeightedRandomObject(new ItemStack(ModItems.powder_coal, 4), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_uranium, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_thorium, 2), 7), - new WeightedRandomObject(new ItemStack(ModItems.powder_desh_mix, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_diamond, 2), 7), - new WeightedRandomObject(new ItemStack(Items.redstone, 5), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_nitan_mix, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_power, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_copper, 5), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_lead, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.fluorite, 4), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_lapis, 4), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_combine_steel, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_aluminium, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_gold, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_phosphorus, 1), 10), - new WeightedRandomObject(new ItemStack(ModBlocks.gravel_diamond, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_uranium, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_plutonium, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_trixite, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_starmetal, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 2), 4) - }); + registerCargo(SatelliteMiner.class, ItemPoolSatellite.POOL_SAT_MINER); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index 0fd248320..08bab11cb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -4,12 +4,12 @@ import com.hbm.entity.missile.EntityMinerRocket; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.inventory.container.ContainerSatDock; import com.hbm.inventory.gui.GUISatDock; +import com.hbm.itempool.ItemPool; import com.hbm.items.ISatChip; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteMiner; import com.hbm.tileentity.IGUIProvider; -import com.hbm.util.WeightedRandomObject; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -23,6 +23,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.WeightedRandom; +import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import java.util.List; @@ -233,16 +234,18 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent } } - private void unloadCargo(SatelliteMiner satellite) { - int itemAmount = worldObj.rand.nextInt(6) + 10; + private void unloadCargo(SatelliteMiner satellite) { + int itemAmount = worldObj.rand.nextInt(6) + 10; - WeightedRandomObject[] cargo = satellite.getCargo(); + WeightedRandomChestContent[] cargo = ItemPool.getPool(satellite.getCargo()); - for (int i = 0; i < itemAmount; i++) { - ItemStack stack = ((WeightedRandomObject) WeightedRandom.getRandomItem(worldObj.rand, cargo)).asStack(); - addToInv(stack.copy()); - } - } + for(int i = 0; i < itemAmount; i++) { + WeightedRandomChestContent weighted = (WeightedRandomChestContent) WeightedRandom.getRandomItem(worldObj.rand, cargo); + ItemStack stack = weighted.theItemId.copy(); + stack.stackSize = weighted.theMinimumChanceToGenerateItem + worldObj.rand.nextInt(weighted.theMaximumChanceToGenerateItem - weighted.theMinimumChanceToGenerateItem + 1); + addToInv(stack); + } + } private void addToInv(ItemStack stack) { for (int i = 0; i < 15; i++) { diff --git a/src/main/resources/assets/hbm/textures/models/network/wire.png b/src/main/resources/assets/hbm/textures/models/network/wire.png new file mode 100644 index 0000000000000000000000000000000000000000..f6aae8f3ffa925bb7c27ba721d950d1ccf49595e GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^96-#%!3HEZpRM}<;uJf1hHwBu4M$1`kniZ};uyj) zGkH(S(SP$9x$6G>IDX*Z!6OZ4(glScHE`Gb|2DmGa<^pb`A_fe@{7pcuU|0p!@s}& jEeG`3*!te{Xw)#s@hH>>YrK5{G>pO1)z4*}Q$iB}GU71X literal 0 HcmV?d00001 From 4869dbb1c86239c0d3dbaff2c4fbddb69e923642 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 21 Mar 2024 21:58:49 +0100 Subject: [PATCH 283/376] my eyes are burning --- .../hbm/energymk2/IEnergyConductorMK2.java | 1 + .../api/hbm/energymk2/IEnergyProviderMK2.java | 7 +++ .../api/hbm/energymk2/IEnergyReceiverMK2.java | 15 +++-- .../java/api/hbm/energymk2/Nodespace.java | 59 ++++++++++++++++++- .../java/api/hbm/energymk2/PowerNetMK2.java | 49 ++++++++++++--- 5 files changed, 114 insertions(+), 17 deletions(-) create mode 100644 src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java diff --git a/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java index 8307d4339..4f13f7ff7 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java @@ -2,6 +2,7 @@ package api.hbm.energymk2; public interface IEnergyConductorMK2 extends IEnergyConnectorMK2 { + // ??? could be redundant because of nodespace, we'll see how that works out public PowerNetMK2 getPowerNet(); public void setPowerNet(PowerNetMK2 network); diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java new file mode 100644 index 000000000..bedc06ca4 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -0,0 +1,7 @@ +package api.hbm.energymk2; + +import api.hbm.energy.IEnergyConnector; + +public interface IEnergyProviderMK2 extends IEnergyConnector { + +} diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index 79992c916..12a387b2a 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -3,7 +3,6 @@ package api.hbm.energymk2; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import api.hbm.energy.IEnergyConductor; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -20,8 +19,8 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { TileEntity te = world.getTileEntity(x, y, z); boolean red = false; - /*if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; + if(te instanceof IEnergyConductorMK2) { + IEnergyConductorMK2 con = (IEnergyConductorMK2) te; if(!con.canConnect(dir.getOpposite())) return; @@ -31,7 +30,7 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { if(con.getPowerNet() != null) red = true; - }*/ + } if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); @@ -51,11 +50,11 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; + if(te instanceof IEnergyConductorMK2) { + IEnergyConductorMK2 con = (IEnergyConductorMK2) te; - /*if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this);*/ + if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) + con.getPowerNet().unsubscribe(this); } } diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index 568f2b423..a39c591af 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -1,6 +1,61 @@ package api.hbm.energymk2; -public class Nodespace { +import java.util.HashMap; - //we're gonna figure this shit out as we go along +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import net.minecraft.world.World; + +/** + * The "Nodespace" is an intermediate, "ethereal" layer of abstraction that tracks nodes (i.e. cables) even when they are no longer loaded, allowing continued operation even when unloaded + * @author hbm + * + */ +public class Nodespace { + + /** Contains all "NodeWorld" instances, i.e. lists of nodes existing per world */ + public static HashMap worlds = new HashMap(); + + public static class NodeWorld { + + /** Contains a map showing where each node is, a node is every spot that a cable exists at. + * Instead of the old proxy system, things like substation now create multiple nodes at their connection points */ + public static HashMap nodes = new HashMap(); + + /** Adds a node at all its positions to the nodespace */ + public void pushNode(PowerNode node) { + for(BlockPos pos : node.positions) { + nodes.put(pos, node); + } + } + + /** Removes the specified node from all positions from nodespace */ + public void popNode(PowerNode node) { + for(BlockPos pos : node.positions) { + nodes.remove(pos); + } + } + + /** Grabs the node at one position, then removes it from all positions it occupies */ + public void popNode(BlockPos pos) { + PowerNode node = nodes.get(pos); + if(node != null) popNode(node); + } + } + + public static class PowerNode { + + public BlockPos[] positions; + public DirPos[] connections; + + public PowerNode(BlockPos... positions) { + this.positions = positions; + } + + public PowerNode setConnections(DirPos... connections) { + this.connections = connections; + return this; + } + } } diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index 603284af6..c9c56f72e 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -1,21 +1,56 @@ package api.hbm.energymk2; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; +import java.util.HashSet; +import java.util.Set; + +import api.hbm.energymk2.Nodespace.PowerNode; public class PowerNetMK2 { private boolean valid = true; - private HashMap links = new HashMap(); - private HashMap proxies = new HashMap(); - private List subscribers = new ArrayList(); + private Set links = new HashSet(); + /** Maps all active subscribers to a timestamp, handy for handling timeouts. In a good system this shouldn't be necessary, but the previous system taught me to be cautious anyway */ + private HashMap subscriberEntries = new HashMap(); + /** A simple set containing all subscribers, might be redundant because of the hashmap, we'll see if we keep this around */ + private Set subscriberSet = new HashSet(); + + private HashMap providerEntries = new HashMap(); + private Set providerSet = new HashSet(); + + /// SUBSCRIBER HANDLING /// public boolean isSubscribed(IEnergyReceiverMK2 receiver) { - return false; //TBI + return this.subscriberSet.contains(receiver); } public void subscribe(IEnergyReceiverMK2 receiver) { - //TBI + this.subscriberSet.add(receiver); + this.subscriberEntries.put(receiver, System.currentTimeMillis()); + } + + public void unsubscribe(IEnergyReceiverMK2 receiver) { + this.subscriberSet.remove(receiver); + this.subscriberEntries.remove(receiver); + } + + /// PROVIDER HANDLING /// + public boolean isProvider(IEnergyProviderMK2 provider) { + return this.providerSet.contains(provider); + } + + public void addProvider(IEnergyProviderMK2 provider) { + this.providerSet.add(provider); + this.providerEntries.put(provider, System.currentTimeMillis()); + } + + public void removeProvider(IEnergyProviderMK2 provider) { + this.providerSet.remove(provider); + this.providerEntries.remove(provider); + } + + /// GENERAL POWER NET CONTROL /// + public void invalidate() { + this.valid = false; } } From 2c1c56a037b0abc9c899fd009d52245741f4386d Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 22 Mar 2024 15:09:21 +0100 Subject: [PATCH 284/376] more cleanup, configs --- changelog | 2 + src/main/java/com/hbm/blocks/ModBlocks.java | 24 -- .../hbm/blocks/network/FluidDuctStandard.java | 23 +- .../java/com/hbm/blocks/test/TestBomb.java | 83 ------ .../com/hbm/blocks/test/TestBombAdvanced.java | 138 --------- src/main/java/com/hbm/blocks/test/TestCT.java | 54 ---- .../java/com/hbm/blocks/test/TestNuke.java | 263 ------------------ .../java/com/hbm/blocks/test/TestPipe.java | 58 ---- .../java/com/hbm/blocks/test/TestRail.java | 60 ---- .../java/com/hbm/blocks/test/TestRender.java | 68 ----- .../java/com/hbm/config/GeneralConfig.java | 4 + .../java/com/hbm/creativetabs/TestTab.java | 26 -- .../container/ContainerTestNuke.java | 50 ---- .../com/hbm/inventory/gui/GUITestNuke.java | 70 ----- src/main/java/com/hbm/items/ModItems.java | 1 - .../java/com/hbm/items/armor/ArmorModel.java | 14 - src/main/java/com/hbm/main/ClientProxy.java | 4 - src/main/java/com/hbm/main/MainRegistry.java | 7 + .../java/com/hbm/main/ModEventHandler.java | 47 ++-- .../com/hbm/render/block/RenderTestPipe.java | 4 +- .../weapon/ItemRenderTestBombAdvanced.java | 64 ----- .../com/hbm/render/model/ModelOxygenMask.java | 114 -------- .../render/model/ModelTestBombAdvanced.java | 125 --------- .../com/hbm/render/model/ModelTestRender.java | 61 ---- .../render/tileentity/RenderRedBarrel.java | 36 --- .../tileentity/RenderTestBombAdvanced.java | 36 --- .../render/tileentity/RenderTestMissile.java | 42 --- .../render/tileentity/RenderTestRender.java | 36 --- .../java/com/hbm/tileentity/TileMappings.java | 3 - .../bomb/TileEntityTestBombAdvanced.java | 7 - .../tileentity/bomb/TileEntityTestNuke.java | 222 --------------- .../tileentity/deco/TileEntityTestRender.java | 7 - 32 files changed, 54 insertions(+), 1699 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/test/TestBomb.java delete mode 100644 src/main/java/com/hbm/blocks/test/TestBombAdvanced.java delete mode 100644 src/main/java/com/hbm/blocks/test/TestCT.java delete mode 100644 src/main/java/com/hbm/blocks/test/TestNuke.java delete mode 100644 src/main/java/com/hbm/blocks/test/TestPipe.java delete mode 100644 src/main/java/com/hbm/blocks/test/TestRail.java delete mode 100644 src/main/java/com/hbm/blocks/test/TestRender.java delete mode 100644 src/main/java/com/hbm/creativetabs/TestTab.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerTestNuke.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUITestNuke.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderTestBombAdvanced.java delete mode 100644 src/main/java/com/hbm/render/model/ModelOxygenMask.java delete mode 100644 src/main/java/com/hbm/render/model/ModelTestBombAdvanced.java delete mode 100644 src/main/java/com/hbm/render/model/ModelTestRender.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderRedBarrel.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderTestBombAdvanced.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderTestMissile.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderTestRender.java delete mode 100644 src/main/java/com/hbm/tileentity/bomb/TileEntityTestBombAdvanced.java delete mode 100644 src/main/java/com/hbm/tileentity/bomb/TileEntityTestNuke.java delete mode 100644 src/main/java/com/hbm/tileentity/deco/TileEntityTestRender.java diff --git a/changelog b/changelog index 4a939b783..a05f15dee 100644 --- a/changelog +++ b/changelog @@ -17,6 +17,7 @@ * Bottlecap blocks now use a single block ID and metadata instead of using one ID per type. This change however will delete all existing bottlecap blocks in the world * Removed the config option for silos (the option no longer works anyway since the new silos use the structure component system) * Finally removed the deaerator + * Removed some of the ancient test blocks that haven't been needed in about 8 years * Removed a few other minor things that won't be mentioned because nobody's gonna even notice their absence anyway * Retextured the laser detonator to look more like the old detonator, but keeping the 3D model * Bedrock ores can now be customized in creative mode. Using a drillbit sets the tier, a fluid container sets the borefluid requirement and any other item sets the resource. @@ -39,6 +40,7 @@ * Pylons and wire connectors now use a texture instead of a solid colored wire * The cable model has been simplified, being only a single face instead of three faces stuck inside each other at weird angles * Cables now sag slightly more at long ranges +* There are now configs for toggling the startup message as well as the guidebook ## Fixed * WarTec should now be compatible again diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 2df3a276c..f1cbc04ca 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -45,17 +45,10 @@ public class ModBlocks { registerBlock(); } - public static Block test_render; - public static Block test_bomb; - public static Block test_bomb_advanced; - public static Block test_nuke; public static Block event_tester; public static Block obj_tester; public static Block test_core; public static Block test_charge; - public static Block test_pipe; - public static Block test_ct; - public static Block test_rail; public static Block structure_anchor; public static Block ore_uranium; @@ -1274,17 +1267,10 @@ public class ModBlocks { private static void initializeBlock() { - test_render = new TestRender(Material.rock).setBlockName("test_render").setCreativeTab(null); - test_bomb = new TestBomb(Material.tnt).setBlockName("test_bomb").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":test_bomb"); - test_bomb_advanced = new TestBombAdvanced(Material.tnt).setBlockName("test_bomb_advanced").setCreativeTab(null); - test_nuke = new TestNuke(Material.iron).setBlockName("test_nuke").setCreativeTab(null).setHardness(2.5F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":test_nuke"); event_tester = new TestEventTester(Material.iron).setBlockName("event_tester").setCreativeTab(null).setHardness(2.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":event_tester"); obj_tester = new TestObjTester(Material.iron).setBlockName("obj_tester").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F); test_core = new TestCore(Material.iron).setBlockName("test_core").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_core"); test_charge = new TestCharge(Material.iron).setBlockName("test_charge").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F); - test_pipe = new TestPipe(Material.iron).setBlockName("test_pipe").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); - test_ct = new TestCT(Material.iron).setBlockName("test_ct").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_ct"); - test_rail = new TestRail(Material.iron).setBlockName("test_rail").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_rail"); structure_anchor = new BlockGeneric(Material.iron).setBlockName("structure_anchor").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":structure_anchor"); ore_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium"); @@ -2447,20 +2433,10 @@ public class ModBlocks { private static void registerBlock() { //Test - GameRegistry.registerBlock(test_render, test_render.getUnlocalizedName()); - //GameRegistry.registerBlock(test_container, test_container.getUnlocalizedName()); - GameRegistry.registerBlock(test_bomb, test_bomb.getUnlocalizedName()); - GameRegistry.registerBlock(test_bomb_advanced, test_bomb_advanced.getUnlocalizedName()); - - GameRegistry.registerBlock(test_nuke, test_nuke.getUnlocalizedName()); - GameRegistry.registerBlock(event_tester, event_tester.getUnlocalizedName()); GameRegistry.registerBlock(obj_tester, obj_tester.getUnlocalizedName()); GameRegistry.registerBlock(test_core, test_core.getUnlocalizedName()); GameRegistry.registerBlock(test_charge, test_charge.getUnlocalizedName()); - GameRegistry.registerBlock(test_pipe, test_pipe.getUnlocalizedName()); - GameRegistry.registerBlock(test_ct, test_ct.getUnlocalizedName()); - GameRegistry.registerBlock(test_rail, test_rail.getUnlocalizedName()); GameRegistry.registerBlock(structure_anchor, structure_anchor.getUnlocalizedName()); //Ores diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index e58d7ab02..8bf891a05 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; -import com.hbm.blocks.test.TestPipe; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; import com.hbm.lib.Library; @@ -13,6 +12,7 @@ import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.util.I18nUtil; +import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; @@ -99,19 +99,22 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo @Override @SideOnly(Side.CLIENT) public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { - TileEntity tileEntity = world.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityPipeBaseNT) { - TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; - FluidType fluidType = pipe.getType(); - int retadata = fluidType.getID(); //florf + TileEntity tileEntity = world.getTileEntity(x, y, z); + if(tileEntity instanceof TileEntityPipeBaseNT) { + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; + FluidType fluidType = pipe.getType(); + int retadata = fluidType.getID(); // florf - return new ItemStack(ModItems.fluid_duct, 1, retadata); - } - return super.getPickBlock(target, world, x, y, z, player); + return new ItemStack(ModItems.fluid_duct, 1, retadata); + } + return super.getPickBlock(target, world, x, y, z, player); } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override public int getRenderType() { - return TestPipe.renderID; + return renderID; } @Override diff --git a/src/main/java/com/hbm/blocks/test/TestBomb.java b/src/main/java/com/hbm/blocks/test/TestBomb.java deleted file mode 100644 index 377eda42d..000000000 --- a/src/main/java/com/hbm/blocks/test/TestBomb.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.hbm.blocks.test; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; - -public class TestBomb extends Block { - - int bombStartStrength = 40; - int bombStrengthA = 10; - protected int timer1 = 20; - int timer2 = timer1; - - public TestBomb(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) - { - super.onBlockAdded(world, x, y, z); - - if (world.isBlockIndirectlyGettingPowered(x, y, z)) - { - this.onBlockDestroyedByPlayer(world, x, y, z, 1); - world.setBlockToAir(x, y, z); - soos(world, x, y, z, bombStartStrength, bombStrengthA); - } - } - - /** - * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are - * their own) Args: x, y, z, neighbor Block - */ - @Override - public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) - { - if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) - { - this.onBlockDestroyedByPlayer(p_149695_1_, x, y, z, 1); - p_149695_1_.setBlockToAir(x, y, z); - soos(p_149695_1_, x, y, z, bombStartStrength, bombStrengthA); - } - } - - public boolean soos(World world, int x, int y, int z, int bombStartStrength, int bombStrengthA) - { - if (!world.isRemote) - explode(world,x,y,z, bombStartStrength, bombStrengthA); - world.spawnParticle("hugeexplosion", x, y, z, 0, 0, 0); //spawns a huge explosion particle - world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); //x,y,z,sound,volume,pitch - return false; - } - - public void explode(World world, int x, int y, int z, int bombStartStrength, int bombStrengthA) - { - int r = bombStartStrength; //radius of explosion (change this to bigger numbers for more epicness) - int r2 = r*r; //radius^2, for faster distance checks. (No sqrt needed for pythagoras) - int r22 = r2/2; //half of r^2, calculations outside the loop only get called once. Always pull out as many things from the loop as possible. - for (int xx = -r; xx < r; xx++) - { - int X = xx+x; //x coordinate we are working on - int XX = xx*xx; //more stuff for a faster distance check - for (int yy = -r; yy < r; yy++) - { - int Y = yy+y; //y coord - //int YY = XX+yy*yy*3; - int YY = XX+yy*yy*3; - for (int zz = -r; zz < r; zz++) - { - int Z = zz+z; //z coord - int ZZ = YY+zz*zz; //final= x*x+y*y+z*z. remind you of anything? - if (ZZ 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @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()) - { - TileEntityTestNuke entity = (TileEntityTestNuke) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) - { - TileEntityTestNuke entity = (TileEntityTestNuke) p_149695_1_.getTileEntity(x, y, z); - if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) - { - if(entity.getNukeTier() > 0) - { - this.onBlockDestroyedByPlayer(p_149695_1_, x, y, z, 1); - int pootis = entity.getNukeTier(); - entity.clearSlots(); - p_149695_1_.setBlockToAir(x, y, z); - switch(pootis) - { - case 1: - igniteTestBomb(p_149695_1_, x, y, z, 20); break; - case 2: - igniteTestBomb(p_149695_1_, x, y, z, 40); break; - case 999: - igniteTestBomb(p_149695_1_, x, y, z, 200); break; - } - } - } - } - - public boolean igniteTestBomb(World world, int x, int y, int z, int bombStartStrength) - { - if (!world.isRemote) - detonateTestBomb(world,x,y,z, bombStartStrength); - world.spawnParticle("hugeexplosion", x, y, z, 0, 0, 0); //spawns a huge explosion particle - world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); //x,y,z,sound,volume,pitch - return false; - } - - public void detonateTestBomb(World world, int x, int y, int z, int bombStartStrength) - { - //Rodol's awesome destruction code - int r = bombStartStrength; //radius of explosion (change this to bigger numbers for more epicness) - int r2 = r*r; //radius^2, for faster distance checks. (No sqrt needed for pythagoras) - int r22 = r2/2; //half of r^2, calculations outside the loop only get called once. Always pull out as many things from the loop as possible. - for (int xx = -r; xx < r; xx++) - { - int X = xx+x; //x coordinate we are working on - int XX = xx*xx; //more stuff for a faster distance check - for (int yy = -r; yy < r; yy++) - { - int Y = yy+y; //y coord - int YY = XX+yy*yy*3; - for (int zz = -r; zz < r; zz++) - { - int Z = zz+z; //z coord - int ZZ = YY+zz*zz; //final= x*x+y*y+z*z. remind you of anything? - if (ZZ> configurables = new ArrayList>(); public static void writeMappings() { - put(TileEntityTestBombAdvanced.class, "tilentity_testbombadvanced"); put(TileEntityDiFurnace.class, "tilentity_diFurnace"); - put(TileEntityTestNuke.class, "tilentity_testnuke"); - put(TileEntityTestRender.class, "tilentity_testrenderer"); put(TileEntityObjTester.class, "tilentity_objtester"); put(TileEntityMachineCentrifuge.class, "tileentity_centrifuge"); put(TileEntityNukeMan.class, "tileentity_nukeman"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityTestBombAdvanced.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityTestBombAdvanced.java deleted file mode 100644 index f47eb33f5..000000000 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityTestBombAdvanced.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.hbm.tileentity.bomb; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityTestBombAdvanced extends TileEntity { - -} diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityTestNuke.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityTestNuke.java deleted file mode 100644 index d18dbcc55..000000000 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityTestNuke.java +++ /dev/null @@ -1,222 +0,0 @@ -package com.hbm.tileentity.bomb; - -import com.hbm.inventory.container.ContainerTestNuke; -import com.hbm.inventory.gui.GUITestNuke; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class TileEntityTestNuke extends TileEntity implements ISidedInventory, IGUIProvider { - - private ItemStack slots[]; - private String customName; - - public TileEntityTestNuke() { - slots = new ItemStack[5]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.testNuke"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() { - - } - - @Override - public void closeInventory() { - - } - - @Override - public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { - return false; - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return new int[0]; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return j != 0 || i != 1 || itemStack.getItem() == Items.bucket; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - public int getNukeTier() { - if(this.slots[0] != null && this.slots[1] != null && this.slots[2] != null && this.slots[3] != null && this.slots[4] != null) - { - if(this.slots[0].getItem() == ModItems.test_nuke_tier1_shielding && this.slots[1].getItem() == ModItems.test_nuke_tier1_target && this.slots[2].getItem() == ModItems.test_nuke_tier1_bullet && this.slots[3].getItem() == ModItems.test_nuke_propellant && this.slots[4].getItem() == ModItems.test_nuke_igniter) - { - return 1; - } - if(this.slots[0].getItem() == ModItems.test_nuke_tier2_shielding && this.slots[1].getItem() == ModItems.test_nuke_tier2_target && this.slots[2].getItem() == ModItems.test_nuke_tier2_bullet && this.slots[3].getItem() == ModItems.test_nuke_propellant && this.slots[4].getItem() == ModItems.test_nuke_igniter) - { - return 2; - } - if(this.slots[0].getItem() == Item.getItemFromBlock(Blocks.obsidian) && this.slots[1].getItem() == Items.nether_star && this.slots[2].getItem() == Items.diamond && this.slots[3].getItem() == Item.getItemFromBlock(Blocks.tnt) && this.slots[4].getItem() == Items.repeater) - { - return 999; - } - else - { - return 0; - } - } - else - { - return 0; - } - } - - public void clearSlots() { - for(int i = 0; i < slots.length; i++) - { - slots[i] = null; - } - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerTestNuke(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUITestNuke(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityTestRender.java b/src/main/java/com/hbm/tileentity/deco/TileEntityTestRender.java deleted file mode 100644 index 251dbc96a..000000000 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityTestRender.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.hbm.tileentity.deco; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityTestRender extends TileEntity { - -} From 1b24a1d860f098fb22dac4a0e58426175119e857 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 23 Mar 2024 23:04:30 +0100 Subject: [PATCH 285/376] power net crap --- .../hbm/energymk2/IEnergyConductorMK2.java | 11 ++-- .../hbm/energymk2/IEnergyConnectorMK2.java | 11 ++++ .../api/hbm/energymk2/IEnergyProviderMK2.java | 39 ++++++++++++ .../api/hbm/energymk2/IEnergyReceiverMK2.java | 27 +++----- .../java/api/hbm/energymk2/Nodespace.java | 16 +++++ .../java/api/hbm/energymk2/PowerNetMK2.java | 62 ++++++++++++++----- 6 files changed, 130 insertions(+), 36 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java index 4f13f7ff7..2ba97fce6 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java @@ -1,9 +1,12 @@ package api.hbm.energymk2; -public interface IEnergyConductorMK2 extends IEnergyConnectorMK2 { +import api.hbm.energymk2.Nodespace.PowerNode; +import net.minecraft.tileentity.TileEntity; - // ??? could be redundant because of nodespace, we'll see how that works out - public PowerNetMK2 getPowerNet(); +public interface IEnergyConductorMK2 extends IEnergyConnectorMK2 { - public void setPowerNet(PowerNetMK2 network); + public default PowerNode getNode() { + TileEntity tile = (TileEntity) this; + return Nodespace.getNode(tile.getWorldObj(), tile.xCoord, tile.yCoord, tile.zCoord); + } } diff --git a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java index 77e84b007..c021d6805 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java @@ -4,6 +4,8 @@ import com.hbm.util.CompatEnergyControl; import api.hbm.energy.ILoadedTile; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; public interface IEnergyConnectorMK2 extends ILoadedTile { @@ -17,9 +19,18 @@ public interface IEnergyConnectorMK2 extends ILoadedTile { public default boolean canConnect(ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN; } + public long getPower(); public long getMaxPower(); + public static final boolean particleDebug = false; + + public default Vec3 getDebugParticlePos() { + TileEntity te = (TileEntity) this; + Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); + return vec; + } + public default void provideInfoForEC(NBTTagCompound data) { data.setLong(CompatEnergyControl.L_ENERGY_HE, this.getPower()); data.setLong(CompatEnergyControl.L_CAPACITY_HE, this.getMaxPower()); diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index bedc06ca4..b693b959c 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -1,7 +1,46 @@ package api.hbm.energymk2; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + import api.hbm.energy.IEnergyConnector; +import api.hbm.energymk2.Nodespace.PowerNode; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public interface IEnergyProviderMK2 extends IEnergyConnector { + + public default void tryProvide(World world, int x, int y, int z, ForgeDirection dir) { + TileEntity te = world.getTileEntity(x, y, z); + boolean red = false; + + if(te instanceof IEnergyConductorMK2) { + IEnergyConductorMK2 con = (IEnergyConductorMK2) te; + if(!con.canConnect(dir.getOpposite())) return; + + PowerNode node = con.getNode(); + + if(node != null && node.net != null) { + node.net.addProvider(this); + red = true; + } + } + + if(particleDebug) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "network"); + data.setString("mode", "power"); + double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); + } + } } diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index 12a387b2a..9673baf1c 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -3,10 +3,10 @@ package api.hbm.energymk2; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import api.hbm.energymk2.Nodespace.PowerNode; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -21,15 +21,14 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { if(te instanceof IEnergyConductorMK2) { IEnergyConductorMK2 con = (IEnergyConductorMK2) te; + if(!con.canConnect(dir.getOpposite())) return; - if(!con.canConnect(dir.getOpposite())) - return; + PowerNode node = con.getNode(); - if(con.getPowerNet() != null && !con.getPowerNet().isSubscribed(this)) - con.getPowerNet().subscribe(this); - - if(con.getPowerNet() != null) + if(node != null && node.net != null) { + node.net.addReceiver(this); red = true; + } } if(particleDebug) { @@ -52,20 +51,14 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { if(te instanceof IEnergyConductorMK2) { IEnergyConductorMK2 con = (IEnergyConductorMK2) te; + PowerNode node = con.getNode(); - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); + if(node != null && node.net != null) { + node.net.removeReceiver(this); + } } } - public static final boolean particleDebug = false; - - public default Vec3 getDebugParticlePos() { - TileEntity te = (TileEntity) this; - Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); - return vec; - } - public default ConnectionPriority getPriority() { return ConnectionPriority.NORMAL; } diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index a39c591af..a950c2b24 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -1,10 +1,12 @@ package api.hbm.energymk2; import java.util.HashMap; +import java.util.Map.Entry; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; +import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; /** @@ -17,6 +19,19 @@ public class Nodespace { /** Contains all "NodeWorld" instances, i.e. lists of nodes existing per world */ public static HashMap worlds = new HashMap(); + public static PowerNode getNode(World world, int x, int y, int z) { + NodeWorld nodeWorld = worlds.get(world); + if(nodeWorld != null) return nodeWorld.nodes.get(new BlockPos(x, y, z)); + return null; + } + + public static void updateNodespace() { + + for(World world : MinecraftServer.getServer().worldServers) { + NodeWorld nodes = worlds.get(world); + } + } + public static class NodeWorld { /** Contains a map showing where each node is, a node is every spot that a cable exists at. @@ -48,6 +63,7 @@ public class Nodespace { public BlockPos[] positions; public DirPos[] connections; + public PowerNetMK2 net; public PowerNode(BlockPos... positions) { this.positions = positions; diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index c9c56f72e..d84dfc3a5 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -12,45 +12,77 @@ public class PowerNetMK2 { private Set links = new HashSet(); /** Maps all active subscribers to a timestamp, handy for handling timeouts. In a good system this shouldn't be necessary, but the previous system taught me to be cautious anyway */ - private HashMap subscriberEntries = new HashMap(); - /** A simple set containing all subscribers, might be redundant because of the hashmap, we'll see if we keep this around */ - private Set subscriberSet = new HashSet(); - + private HashMap receiverEntries = new HashMap(); private HashMap providerEntries = new HashMap(); - private Set providerSet = new HashSet(); /// SUBSCRIBER HANDLING /// public boolean isSubscribed(IEnergyReceiverMK2 receiver) { - return this.subscriberSet.contains(receiver); + return this.receiverEntries.containsKey(receiver); } - public void subscribe(IEnergyReceiverMK2 receiver) { - this.subscriberSet.add(receiver); - this.subscriberEntries.put(receiver, System.currentTimeMillis()); + public void addReceiver(IEnergyReceiverMK2 receiver) { + this.receiverEntries.put(receiver, System.currentTimeMillis()); } - public void unsubscribe(IEnergyReceiverMK2 receiver) { - this.subscriberSet.remove(receiver); - this.subscriberEntries.remove(receiver); + public void removeReceiver(IEnergyReceiverMK2 receiver) { + this.receiverEntries.remove(receiver); } /// PROVIDER HANDLING /// public boolean isProvider(IEnergyProviderMK2 provider) { - return this.providerSet.contains(provider); + return this.providerEntries.containsKey(provider); } public void addProvider(IEnergyProviderMK2 provider) { - this.providerSet.add(provider); this.providerEntries.put(provider, System.currentTimeMillis()); } public void removeProvider(IEnergyProviderMK2 provider) { - this.providerSet.remove(provider); this.providerEntries.remove(provider); } + /// LINK JOINING /// + + /** Combines two networks into one */ + public void joinNetworks(PowerNetMK2 network) { + + if(network == this) return; //wtf?! + + for(PowerNode conductor : network.links) joinLink(conductor); + network.links.clear(); + + for(IEnergyReceiverMK2 connector : network.receiverEntries.keySet()) this.addReceiver(connector); + for(IEnergyProviderMK2 connector : network.providerEntries.keySet()) this.addProvider(connector); + network.destroy(); + } + + /** Adds the power node as part of this network's links */ + public PowerNetMK2 joinLink(PowerNode node) { + if(node.net != null) node.net.leaveLink(node); + node.net = this; + return this; + } + + /** Removes the specified power node */ + public void leaveLink(PowerNode node) { + node.net = null; + this.links.remove(node); + } + /// GENERAL POWER NET CONTROL /// public void invalidate() { this.valid = false; } + + public boolean isValid() { + return this.valid; + } + + public void destroy() { + this.invalidate(); + for(PowerNode link : this.links) if(link.net == this) link.net = null; + this.links.clear(); + this.receiverEntries.clear(); + this.providerEntries.clear(); + } } From d71fa93ab74347a95ac993e7bcf914811bc1998d Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 23 Mar 2024 16:04:56 -0700 Subject: [PATCH 286/376] argh --- .../hbm/inventory/container/ContainerFEL.java | 34 +++++++----- .../container/ContainerMachineAssembler.java | 55 +++++++++++-------- .../container/ContainerMachineChemplant.java | 49 +++++++++++------ .../container/ContainerMachineExcavator.java | 50 ++++++++--------- .../container/ContainerMachineGasCent.java | 22 ++++++-- .../container/ContainerMachineShredder.java | 38 ++++++++----- .../container/ContainerMachineTurbofan.java | 42 +++++++++----- 7 files changed, 176 insertions(+), 114 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerFEL.java b/src/main/java/com/hbm/inventory/container/ContainerFEL.java index 4320feb46..db7cd4949 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerFEL.java +++ b/src/main/java/com/hbm/inventory/container/ContainerFEL.java @@ -1,7 +1,9 @@ package com.hbm.inventory.container; +import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityFEL; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -33,31 +35,35 @@ public class ContainerFEL extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 == 0) { - if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), false)) { + if(index == 0) { + if(!this.mergeItemStack(stack, 1, this.inventorySlots.size(), false)) { return null; } } else { - if(!this.mergeItemStack(var5, 0, 1, false)) - return null; + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } else { + if(!this.mergeItemStack(stack, 1, 2, false)) return null; + } } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java index 4fe7aa668..ed084a881 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java @@ -1,8 +1,12 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemAssemblyTemplate; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineAssembler; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -55,41 +59,46 @@ private TileEntityMachineAssembler assembler; } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - SlotCraftingOutput.checkAchievements(p_82846_1_, var5); + if (slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + SlotCraftingOutput.checkAchievements(player, stack); - if (par2 <= 17) { - if (!this.mergeItemStack(var5, 18, this.inventorySlots.size(), true)) - { + if (index <= 17) { + if (!this.mergeItemStack(stack, 18, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(var5, 6, 18, false)) - if (!this.mergeItemStack(var5, 0, 4, false)) - return null; - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 1, 4, false)) return null; + } else if(rStack.getItem() instanceof ItemAssemblyTemplate) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else { + if(!this.mergeItemStack(stack, 6, 18, false)) return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); } - if(var5.stackSize == var3.stackSize) { + if(stack.stackSize == rStack.stackSize) { return null; } - var4.onPickupFromSlot(p_82846_1_, var3); + slot.onPickupFromSlot(player, rStack); } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java index 60c428c8a..6bbf3510a 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java @@ -2,8 +2,12 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemChemistryTemplate; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineChemplant; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -60,31 +64,42 @@ public class ContainerMachineChemplant extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - SlotCraftingOutput.checkAchievements(p_82846_1_, var5); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + SlotCraftingOutput.checkAchievements(player, stack); - if(par2 <= 20) { - if(!this.mergeItemStack(var5, 21, this.inventorySlots.size(), true)) { + if(index <= 20) { + if(!this.mergeItemStack(stack, 21, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 4, 5, false)) - if(!this.mergeItemStack(var5, 13, 19, false)) - return null; - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 1, 4, false)) return null; + } else if(rStack.getItem() instanceof ItemChemistryTemplate) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else { //proper shift-clicking filled/empty fluid tanks is an exercise in futility + if(!this.mergeItemStack(stack, 13, 19, false)) + if(!this.mergeItemStack(stack, 9, 11, false)) + return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java index c55fd5400..9a780d917 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java @@ -1,7 +1,10 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemDrillbit; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineExcavator; import api.hbm.energy.IBatteryItem; @@ -46,43 +49,40 @@ public class ContainerMachineExcavator extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 13) { - if(!this.mergeItemStack(var5, 14, this.inventorySlots.size(), true)) { + if(index <= 13) { + if(!this.mergeItemStack(stack, 14, this.inventorySlots.size(), true)) { return null; } } else { - if(var3.getItem() instanceof IBatteryItem) { - if(!this.mergeItemStack(var5, 0, 1, false)) { - return null; - } - } else if(var3.getItem() instanceof IItemFluidIdentifier) { - if(!this.mergeItemStack(var5, 1, 2, false)) { - return null; - } - } else { - if(!this.mergeItemStack(var5, 2, 5, false)) { - return null; - } - } + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 1, 2, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 2, 4, false)) return null; + } else if(rStack.getItem() instanceof ItemDrillbit) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else + return null; } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java index 4f5745ed7..feb3de896 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java @@ -1,8 +1,12 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineGasCent; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -51,19 +55,27 @@ public class ContainerMachineGasCent extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { - ItemStack returnStack = null; + ItemStack rStack = null; Slot slot = (Slot) this.inventorySlots.get(index); if(slot != null && slot.getHasStack()) { ItemStack stack = slot.getStack(); - returnStack = stack.copy(); + rStack = stack.copy(); if(index <= 6) { if (!this.mergeItemStack(stack, 7, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(stack, 4, 7, false)) { - return null; + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 5, 6, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 6, 7, false)) return null; + } else + return null; } if (stack.stackSize == 0) { @@ -73,7 +85,7 @@ public class ContainerMachineGasCent extends Container { } } - return returnStack; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java index f903f1ddd..3e751f88e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java @@ -1,8 +1,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBlades; import com.hbm.tileentity.machine.TileEntityMachineShredder; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -68,32 +71,37 @@ public class ContainerMachineShredder extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 29) { - if(!this.mergeItemStack(var5, 30, this.inventorySlots.size(), true)) { + if(index <= 29) { + if(!this.mergeItemStack(stack, 30, this.inventorySlots.size(), true)) { return null; } } else { - if(!this.mergeItemStack(var5, 0, 9, false)) - if(!this.mergeItemStack(var5, 27, 30, false)) - return null; + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 29, 30, false)) return null; + } else if(rStack.getItem() instanceof ItemBlades) { + if(!this.mergeItemStack(stack, 27, 29, false)) return null; + } else { + if(!this.mergeItemStack(stack, 0, 9, false)) return null; + } } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java index e4e53720d..329f6a718 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java @@ -1,8 +1,12 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -44,31 +48,39 @@ public class ContainerMachineTurbofan extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 4) { - if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { + if(index <= 4) { + if(!this.mergeItemStack(stack, 5, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 0, 1, false)) { - if(!this.mergeItemStack(var5, 2, 3, false)) - return null; + } else { + + if(rStack.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(stack, 3, 4, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 2, 3, false)) return null; + } else { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override From bc65f80501934803d3722aac6f6aa89158db6dac Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 24 Mar 2024 18:26:21 +0100 Subject: [PATCH 287/376] removed more useless crap --- changelog | 11 +- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 33 +- .../blocks/machine/MachineShredderLarge.java | 36 --- .../java/com/hbm/blocks/siege/SiegeBase.java | 71 ----- .../com/hbm/blocks/siege/SiegeCircuit.java | 23 -- .../java/com/hbm/blocks/siege/SiegeHole.java | 47 --- .../com/hbm/blocks/siege/SiegeInternal.java | 42 --- .../com/hbm/blocks/siege/SiegeShield.java | 57 ---- .../java/com/hbm/entity/EntityMappings.java | 1 - .../entity/missile/EntitySiegeDropship.java | 129 -------- .../entity/mob/siege/EntitySiegeCraft.java | 4 - .../entity/mob/siege/EntitySiegeSkeleton.java | 4 - .../entity/mob/siege/EntitySiegeTunneler.java | 4 - .../hbm/entity/mob/siege/EntitySiegeUFO.java | 4 - .../entity/mob/siege/EntitySiegeZombie.java | 4 - .../com/hbm/entity/mob/siege/SiegeTier.java | 40 --- .../com/hbm/handler/SiegeOrchestrator.java | 293 ------------------ .../radiation/ChunkRadiationHandler3D.java | 1 - .../inventory/container/ContainerITER.java | 22 +- .../container/ContainerMachineTurbofan.java | 1 - .../hbm/inventory/gui/GUIMachineGasCent.java | 3 - .../inventory/gui/GUIMachineTurbineGas.java | 2 - .../com/hbm/items/tool/ItemTurretControl.java | 6 - src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 2 - .../java/com/hbm/main/CraftingManager.java | 1 - src/main/java/com/hbm/main/MainRegistry.java | 8 +- .../java/com/hbm/main/ModEventHandler.java | 7 - .../entity/rocket/RenderMinerRocket.java | 8 +- .../tileentity/RenderMachineShredder.java | 43 --- .../render/tileentity/RenderSnowglobe.java | 1 + .../hbm/render/util/RenderScreenOverlay.java | 3 +- .../java/com/hbm/tileentity/TileMappings.java | 1 - .../machine/TileEntityCyberCrab.java | 2 +- .../TileEntityMachineShredderLarge.java | 220 ------------- .../turret/TileEntityTurretBaseNT.java | 2 - src/main/resources/assets/hbm/lang/zh_CN.lang | 179 +++-------- 38 files changed, 82 insertions(+), 1237 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java delete mode 100644 src/main/java/com/hbm/blocks/siege/SiegeBase.java delete mode 100644 src/main/java/com/hbm/blocks/siege/SiegeCircuit.java delete mode 100644 src/main/java/com/hbm/blocks/siege/SiegeHole.java delete mode 100644 src/main/java/com/hbm/blocks/siege/SiegeInternal.java delete mode 100644 src/main/java/com/hbm/blocks/siege/SiegeShield.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java delete mode 100644 src/main/java/com/hbm/handler/SiegeOrchestrator.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java diff --git a/changelog b/changelog index a05f15dee..ad05a57f2 100644 --- a/changelog +++ b/changelog @@ -6,18 +6,22 @@ * Spills fluid, allowing to void up to 1.000mB per tick * Might slightly alter the landscape, depending on whether the fluid was poisonous * Viscous, flammable liquids cause oil spill blocks to appear + * Not all liquids have the appropriate pollution stats yet, the system is still subject to change ## Changed * After three quarters of a decade, three separate models, countless rebalances and hours of senseless yapping, the industrial generator has finally met its end. Suddenly, yet not unsurprisingly, on this here day the industrial generator has closed its eyes for the final time. It was a long and eventful journey, but as with all things in life, it too had to come to an end. * And this is why we can't ever have anything nice * Rebalanced glyphids * We'll see how it goes + * Still prone to changes, there's still a few inconsistencies and some behavior has barely been tested it all, but I have consulted the almighty spreadsheet and it said "yeah it ok" * Did some spring cleaning * Removed cloud residue (looked horrible, allowed for weird dupes and made no sense overall) * Bottlecap blocks now use a single block ID and metadata instead of using one ID per type. This change however will delete all existing bottlecap blocks in the world * Removed the config option for silos (the option no longer works anyway since the new silos use the structure component system) - * Finally removed the deaerator + * Finally removed the deaerator and the large shredder * Removed some of the ancient test blocks that haven't been needed in about 8 years + * Removed all the siege blocks, since siege mode will never be finished anyway + * Removed reinforced niter * Removed a few other minor things that won't be mentioned because nobody's gonna even notice their absence anyway * Retextured the laser detonator to look more like the old detonator, but keeping the 3D model * Bedrock ores can now be customized in creative mode. Using a drillbit sets the tier, a fluid container sets the borefluid requirement and any other item sets the resource. @@ -41,6 +45,9 @@ * The cable model has been simplified, being only a single face instead of three faces stuck inside each other at weird angles * Cables now sag slightly more at long ranges * There are now configs for toggling the startup message as well as the guidebook +* Cybercrab spawners will only start spawning as soon as a player is within 25 blocks of the spawner +* Improved inventory shift-clicking for the FEL, assembler, chemplant, large mining drill, gas centrifuge, shredder and turbofan +* Updated chinese localization ## Fixed * WarTec should now be compatible again @@ -55,3 +62,5 @@ * Fixed fog caching causing weird behavior with the sky color change in response to crater biomes (or lack thereof) * Fixed "F1 for help" keybind not working on non-standard inventories such as the NEI item list * Fixed pylon wire rendering having incorrect corrdinates for brightness checks +* Fixed dupe caused by shift clicking certain slots in the fusion reactor +* Fixed snowglobe rendering lighting setup leak causing blocks rendered after them in inventory to not have correct lighting diff --git a/gradle.properties b/gradle.properties index 6cf1c03a5..fc5237b73 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4895 +mod_build_number=4914 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f1cbc04ca..ff2393147 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -12,10 +12,6 @@ import com.hbm.blocks.machine.pile.*; import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; import com.hbm.blocks.rail.*; -import com.hbm.blocks.siege.SiegeCircuit; -import com.hbm.blocks.siege.SiegeHole; -import com.hbm.blocks.siege.SiegeInternal; -import com.hbm.blocks.siege.SiegeShield; import com.hbm.blocks.test.*; import com.hbm.blocks.turret.*; import com.hbm.items.block.*; @@ -190,7 +186,6 @@ public class ModBlocks { public static Block block_titanium; public static Block block_sulfur; public static Block block_niter; - public static Block block_niter_reinforced; public static Block block_copper; public static Block block_red_copper; public static Block block_tungsten; @@ -386,12 +381,6 @@ public class ModBlocks { public static Block tile_lab_cracked; public static Block tile_lab_broken; - public static Block siege_shield; - public static Block siege_internal; - public static Block siege_circuit; - public static Block siege_emergency; - public static Block siege_hole; - public static Block block_meteor; public static Block block_meteor_cobble; public static Block block_meteor_broken; @@ -955,9 +944,6 @@ public class ModBlocks { public static Block machine_shredder; - public static Block machine_shredder_large; - public static final int guiID_machine_shredder_large = 76; - public static Block machine_teleporter; public static Block teleanchor; public static Block field_disturber; @@ -1414,7 +1400,6 @@ public class ModBlocks { block_titanium = new BlockBeaconable(Material.iron).setBlockName("block_titanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_titanium"); block_sulfur = new BlockBeaconable(Material.iron).setBlockName("block_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_sulfur"); block_niter = new BlockBeaconable(Material.iron).setBlockName("block_niter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_niter"); - block_niter_reinforced = new BlockBeaconable(Material.iron).setBlockName("block_niter_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":block_niter_reinforced"); block_copper = new BlockBeaconable(Material.iron).setBlockName("block_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); block_red_copper = new BlockBeaconable(Material.iron).setBlockName("block_red_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(25.0F).setBlockTextureName(RefStrings.MODID + ":block_red_copper"); block_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_tungsten"); @@ -1608,12 +1593,6 @@ public class ModBlocks { tile_lab_cracked = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked"); tile_lab_broken = new BlockOutgas(Material.rock, true, 5, true).setBlockName("tile_lab_broken").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_broken"); - siege_shield = new SiegeShield(Material.iron).setBlockName("siege_shield").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F); - siege_internal = new SiegeInternal(Material.iron).setBlockName("siege_internal").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(60.0F); - siege_circuit = new SiegeCircuit(Material.iron).setBlockName("siege_circuit").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F); - siege_emergency = new BlockBase(Material.iron).setBlockName("siege_emergency").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(20000.0F).setBlockTextureName(RefStrings.MODID + ":siege_emergency"); - siege_hole = new SiegeHole(Material.iron).setBlockName("siege_hole").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":siege_hole"); - block_meteor = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); block_meteor_cobble = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); block_meteor_broken = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); @@ -1922,7 +1901,6 @@ public class ModBlocks { machine_combustion_engine = new MachineCombustionEngine().setBlockName("machine_combustion_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_shredder = new MachineShredder(Material.iron).setBlockName("machine_shredder").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_shredder_large = new MachineShredderLarge(Material.iron).setBlockName("machine_shredder_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":code"); machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); teleanchor = new MachineTeleanchor().setBlockName("teleanchor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -2276,7 +2254,7 @@ public class ModBlocks { machine_selenium = new MachineSeleniumEngine(Material.iron).setBlockName("machine_selenium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_selenium"); reactor_research = new ReactorResearch(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small"); reactor_zirnox = new ReactorZirnox(Material.iron).setBlockName("machine_zirnox").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); machine_boiler_off = new MachineBoiler(false).setBlockName("machine_boiler_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_boiler_off"); @@ -2600,7 +2578,6 @@ public class ModBlocks { GameRegistry.registerBlock(block_titanium, block_titanium.getUnlocalizedName()); GameRegistry.registerBlock(block_sulfur, block_sulfur.getUnlocalizedName()); GameRegistry.registerBlock(block_niter, block_niter.getUnlocalizedName()); - GameRegistry.registerBlock(block_niter_reinforced, block_niter_reinforced.getUnlocalizedName()); GameRegistry.registerBlock(block_copper, block_copper.getUnlocalizedName()); GameRegistry.registerBlock(block_red_copper, block_red_copper.getUnlocalizedName()); GameRegistry.registerBlock(block_advanced_alloy, block_advanced_alloy.getUnlocalizedName()); @@ -2809,13 +2786,6 @@ public class ModBlocks { //Charger GameRegistry.registerBlock(charger, charger.getUnlocalizedName()); - //Siege blocks - GameRegistry.registerBlock(siege_shield, ItemBlockLore.class, siege_shield.getUnlocalizedName()); - GameRegistry.registerBlock(siege_internal, ItemBlockLore.class, siege_internal.getUnlocalizedName()); - GameRegistry.registerBlock(siege_circuit, ItemBlockLore.class, siege_circuit.getUnlocalizedName()); - GameRegistry.registerBlock(siege_emergency, siege_emergency.getUnlocalizedName()); - GameRegistry.registerBlock(siege_hole, siege_hole.getUnlocalizedName()); - //Decoration Blocks GameRegistry.registerBlock(block_meteor, block_meteor.getUnlocalizedName()); GameRegistry.registerBlock(block_meteor_cobble, block_meteor_cobble.getUnlocalizedName()); @@ -3338,7 +3308,6 @@ public class ModBlocks { GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_shredder, machine_shredder.getUnlocalizedName()); - GameRegistry.registerBlock(machine_shredder_large, machine_shredder_large.getUnlocalizedName()); register(machine_well); register(machine_pumpjack); register(machine_fracking_tower); diff --git a/src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java b/src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java deleted file mode 100644 index d66055dd3..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.machine.TileEntityMachineShredderLarge; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class MachineShredderLarge extends BlockContainer { - - public MachineShredderLarge(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineShredderLarge(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeBase.java b/src/main/java/com/hbm/blocks/siege/SiegeBase.java deleted file mode 100644 index 6a4d4fa23..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeBase.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.blocks.siege; - -import com.hbm.blocks.BlockBase; -import com.hbm.blocks.ModBlocks; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public abstract class SiegeBase extends BlockBase { - - private IIcon[] icons; - - public SiegeBase(Material material, int icons) { - super(material); - this.setTickRandomly(true); - this.icons = new IIcon[icons]; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { - - int h = x; - h *= 433 + y; - h *= 1709 + z; - h = Math.abs(h); - - h = (h >> 6); - - return this.getIcon(h % this.icons.length, 0); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - return icons[side % this.icons.length]; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister reg) { - - for(int i = 0; i < icons.length; i++) { - icons[i] = reg.registerIcon(this.getTextureName() + "_" + i); - } - } - - protected boolean solidNeighbors(World world, int x, int y, int z) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - if(b.getMaterial() == Material.air || !b.isNormalCube()) - return false; - } - - return true; - } - - protected boolean shouldReplace(Block b) { - return b != ModBlocks.siege_circuit && b != ModBlocks.siege_internal && b != ModBlocks.siege_shield; - } -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java b/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java deleted file mode 100644 index 5b6db18d0..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class SiegeCircuit extends SiegeBase { - - public SiegeCircuit(Material material) { - super(material, 2); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - if(!this.solidNeighbors(world, x, y, z)) { - world.setBlock(x, y, z, ModBlocks.siege_emergency); - } - } -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeHole.java b/src/main/java/com/hbm/blocks/siege/SiegeHole.java deleted file mode 100644 index e4edcbe7a..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeHole.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.List; -import java.util.Random; - -import com.hbm.blocks.BlockBase; -import com.hbm.entity.mob.siege.EntitySiegeZombie; -import com.hbm.handler.SiegeOrchestrator; - -import net.minecraft.block.material.Material; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class SiegeHole extends BlockBase { - - public SiegeHole(Material material) { - super(material); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - } - - @Override - public int tickRate(World world) { - return 90 + world.rand.nextInt(20); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - - if(SiegeOrchestrator.spawnThresholdEnabled(world) && SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getSpawnThreshold(world)) - return; - - List list = world.getEntitiesWithinAABB(EntitySiegeZombie.class, AxisAlignedBB.getBoundingBox(x - 5, y - 2, z - 5, x + 6, y + 3, z + 6)); - - if(list.size() < 2) { - EntitySiegeZombie zomb = new EntitySiegeZombie(world); - zomb.setPositionAndRotation(x + 0.5, y + 1, z + 0.5, 0.0F, 0.0F); - zomb.onSpawnWithEgg(null); - world.spawnEntityInWorld(zomb); - } - } -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeInternal.java b/src/main/java/com/hbm/blocks/siege/SiegeInternal.java deleted file mode 100644 index 669d42497..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeInternal.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class SiegeInternal extends SiegeBase { - - public SiegeInternal(Material material) { - super(material, 2); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - //if exposed to air, harden - if(!this.solidNeighbors(world, x, y, z)) { - world.setBlock(x, y, z, ModBlocks.siege_emergency); - return; - } - - int succ = 0; - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - //if the bordering block is either an internal or a circuit, increment - if(b == this || b == ModBlocks.siege_circuit) { - succ++; - } - } - - //all neighbors are internals or circuits? turn into a circuit - if(succ == 6) - world.setBlock(x, y, z, ModBlocks.siege_circuit); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/siege/SiegeShield.java b/src/main/java/com/hbm/blocks/siege/SiegeShield.java deleted file mode 100644 index 3080671bb..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeShield.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.SiegeOrchestrator; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class SiegeShield extends SiegeBase { - - public SiegeShield(Material material) { - super(material, 4); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - if(SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getExpansionThreshold(world) || !SiegeOrchestrator.enableBaseSpawning(world) || !SiegeOrchestrator.siegeEnabled(world)) - return; - - int succ = 0; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - //if the block is already a siege block, do nothing and increment the success counter - if(!this.shouldReplace(b)) { - succ++; - - //...if not, check if a new shield can be placed, and try to do so - } else if(this.solidNeighbors(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) { - succ++; - world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, this); - } - } - - //if all the blocks are siege blocks now, replace with an internal - if(succ == 6) { - world.setBlock(x, y, z, ModBlocks.siege_internal); - - if(rand.nextInt(10) == 0) { - Block above = world.getBlock(x, y + 2, z); - Block surface = world.getBlock(x, y + 3, z); - - //if the block above the upper shield is solid and *above that* is air, place a hole - if(above.getMaterial() != Material.air && above.isNormalCube() && (surface.getMaterial() == Material.air || !surface.isNormalCube())) { - world.setBlock(x, y + 2, z, ModBlocks.siege_hole); - } - } - } - } -} diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 35c6b1763..e16688bde 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -197,7 +197,6 @@ public class EntityMappings { addEntity(EntityGhost.class, "entity_ntm_ghost", 1000); addEntity(EntityGrenadeDynamite.class, "entity_grenade_dynamite", 250); addEntity(EntitySiegeLaser.class, "entity_ntm_siege_laser", 1000); - addEntity(EntitySiegeDropship.class, "entity_ntm_siege_dropship", 1000); addEntity(EntityTNTPrimedBase.class, "entity_ntm_tnt_primed", 1000); addEntity(EntityGrenadeBouncyGeneric.class, "entity_grenade_bouncy_generic", 250); addEntity(EntityGrenadeImpactGeneric.class, "entity_grenade_impact_generic", 250); diff --git a/src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java b/src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java deleted file mode 100644 index 567d5c04f..000000000 --- a/src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.blocks.ModBlocks; -import com.hbm.entity.mob.siege.SiegeTier; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.handler.SiegeOrchestrator; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.MovingObjectPosition.MovingObjectType; -import net.minecraft.world.World; - -public class EntitySiegeDropship extends EntityThrowable { - - public int health = 20; - - public EntitySiegeDropship(World world) { - super(world); - this.health *= Math.pow((SiegeOrchestrator.level + 1), 2); - this.setSize(0.5F, 1F); - } - - public EntitySiegeDropship(World world, double x, double y, double z) { - super(world, x, y, z); - this.health *= Math.pow((SiegeOrchestrator.level + 1), 2); - this.setSize(0.5F, 1F); - } - - @Override - public boolean canBeCollidedWith() { - return true; - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(this.isEntityInvulnerable()) { - return false; - - } else { - - if(!this.isDead && !this.worldObj.isRemote) { - health -= amount; - - if(this.health <= 0) { - this.setDead(); - SiegeOrchestrator.levelCounter += SiegeOrchestrator.getTierAddDrop(worldObj); - - SiegeTier tier = SiegeTier.tiers[SiegeOrchestrator.level]; - if(tier == null) - tier = SiegeTier.DNT; - - for(ItemStack drop : tier.dropItem) { - this.entityDropItem(drop.copy(), 0F); - } - - ExplosionLarge.spawnParticles(worldObj, posX, posY + 1, posZ, 10); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 1F); - data.setFloat("g", 0F); - data.setFloat("b", 0F); - data.setFloat("scale", 20F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), - new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 100)); - } - } - - return true; - } - } - - @Override - public void onUpdate() { - - this.motionX = 0; - this.motionY = -0.5; - this.motionZ = 0; - - if(!worldObj.isRemote && this.ticksExisted % 2 == 0) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 0.1F); - data.setFloat("g", 0.75F); - data.setFloat("b", 1.0F); - data.setFloat("scale", 3F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), - new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 100)); - } - - super.onUpdate(); - } - - @Override - protected void onImpact(MovingObjectPosition mop) { - - if(mop.typeOfHit == MovingObjectType.BLOCK) { - this.setDead(); - - if(SiegeOrchestrator.enableBaseSpawning(worldObj)) { - worldObj.setBlock(mop.blockX, mop.blockY, mop.blockZ, ModBlocks.siege_shield); - } else if(SiegeOrchestrator.enableMobSpawning(worldObj)) { - SiegeOrchestrator.spawnRandomMob(worldObj, mop.blockX + 0.5, mop.blockY + 1, mop.blockZ + 0.5, null); - } - - ExplosionLarge.spawnParticles(worldObj, posX, posY + 1, posZ, 10); - } - } - - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setInteger("health", this.health); - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - - this.health = nbt.getInteger("health"); - } -} diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java index aba873b3b..72c0e29de 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.handler.SiegeOrchestrator; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -45,9 +44,6 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java index c81c0ef47..46e685a52 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java @@ -1,7 +1,6 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.handler.SiegeOrchestrator; import com.hbm.items.ModItems; import api.hbm.entity.IRadiationImmune; @@ -45,9 +44,6 @@ public class EntitySiegeSkeleton extends EntityMob implements IRangedAttackMob, if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java index da940e4b8..ff64a8476 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java @@ -1,7 +1,6 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.mob.EntityBurrowingSwingingBase; -import com.hbm.handler.SiegeOrchestrator; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -37,9 +36,6 @@ public class EntitySiegeTunneler extends EntityBurrowingSwingingBase { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java index 30670edc8..12551252a 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java @@ -2,7 +2,6 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.handler.SiegeOrchestrator; import api.hbm.entity.IRadiationImmune; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -48,9 +47,6 @@ public class EntitySiegeUFO extends EntityUFOBase implements IRadiationImmune { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java index 49dac097b..82ac62ce8 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java @@ -1,6 +1,5 @@ package com.hbm.entity.mob.siege; -import com.hbm.handler.SiegeOrchestrator; import api.hbm.entity.IRadiationImmune; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -43,9 +42,6 @@ public class EntitySiegeZombie extends EntityMob implements IRadiationImmune { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java b/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java index ff3ac94c6..8949121c9 100644 --- a/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java +++ b/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java @@ -7,10 +7,7 @@ import java.util.function.Consumer; import com.hbm.items.ModItems; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; public class SiegeTier { @@ -113,49 +110,12 @@ public class SiegeTier { return this; } - private SiegeTier addDrop(Item drop) { - return addDrop(new ItemStack(drop)); - } - private SiegeTier addDrop(ItemStack drop) { this.dropItem.add(drop); return this; } - private SiegeTier setAura(int range, PotionEffect... effects) { - this.daisyChain(x -> SiegeTier.doAura(x, range, effects)); //HOLY SHIT THAT ACTUALLY WORKS!! - return this; - } - - private SiegeTier daisyChain(Consumer link) { - - if(this.delegate == null) - this.delegate = link; - else - this.delegate.andThen(link); //HOLY FUCK! - - return this; - } - public void runDelegate(EntityLivingBase entity) { if(this.delegate != null) this.delegate.accept(entity); } - - /* - * DELEGATIONS - */ - private static void doAura(EntityLivingBase entity, int range, PotionEffect... effects) { - - List players = entity.worldObj.getEntitiesWithinAABB(EntityPlayer.class, entity.boundingBox.expand(range, range, range)); - - for(EntityPlayer player : players) { - - if(player.getDistanceSqToEntity(entity) < range * range) { - - for(PotionEffect e : effects) { - player.addPotionEffect(new PotionEffect(e)); - } - } - } - } } diff --git a/src/main/java/com/hbm/handler/SiegeOrchestrator.java b/src/main/java/com/hbm/handler/SiegeOrchestrator.java deleted file mode 100644 index d1c7fd725..000000000 --- a/src/main/java/com/hbm/handler/SiegeOrchestrator.java +++ /dev/null @@ -1,293 +0,0 @@ -package com.hbm.handler; - -import com.hbm.entity.missile.EntitySiegeDropship; -import com.hbm.entity.mob.siege.EntitySiegeCraft; -import com.hbm.entity.mob.siege.EntitySiegeSkeleton; -import com.hbm.entity.mob.siege.EntitySiegeTunneler; -import com.hbm.entity.mob.siege.EntitySiegeUFO; -import com.hbm.entity.mob.siege.EntitySiegeZombie; -import com.hbm.entity.mob.siege.SiegeTier; -import com.hbm.util.ChatBuilder; -import com.hbm.util.GameRuleHelper; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.GameRules; -import net.minecraft.world.World; - -public class SiegeOrchestrator { - - public static boolean lastWave = false; - - public static int level = 0; - public static int levelCounter = 0; - - public static int siegeMobCount = 0; - - public static void update(World world) { - - //abort loop if sieges are disabled - if(world.isRemote || !siegeEnabled(world)) - return; - - int waveTime = getWaveDuration(world); - int pauseTime = getPauseDuration(world); - int interval = waveTime + pauseTime; - //whether we're in a wave or pause, pauses apply first in an interval - boolean wave = (int)(world.getTotalWorldTime() % interval) >= pauseTime; - - //send a server-wide message when the wave starts and ends - if(!lastWave && wave) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(ChatBuilder.start("[SIEGE MODE] A new wave is starting!").color(EnumChatFormatting.RED).flush()); - } else if(lastWave && !wave) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(ChatBuilder.start("[SIEGE MODE] The wave has ended!").color(EnumChatFormatting.RED).flush()); - } - - lastWave = wave; - - //if we're on pause, do nothing - if(!wave) - return; - - int spawnDelay = getSpawnDelay(world); - boolean threshold = spawnThresholdEnabled(world); - int thresholdSize = getSpawnThreshold(world); - - //if threshold is enabled, don't go into the spawn loop if the entity count exceeds the threshold - if(!(threshold && siegeMobCount > thresholdSize)) { - for(Object o : world.playerEntities) { - EntityPlayer player = (EntityPlayer) o; - - if((world.getTotalWorldTime() + player.getEntityId()) % spawnDelay == 0) { - perPlayerSpawn(player); - } - } - } - - int countCap = getTierDelay(world); - int prevLevel = level; - levelCounter++; - - //if the counter has reached the cap, tick up the tier and reset the counter - while(levelCounter >= countCap) { - levelCounter -= countCap; - level++; - } - - //if the counter is below 0, bring up the counter and deduct a tier - while(levelCounter < 0) { - levelCounter += countCap; - level--; - } - - //if the tier has changed, send a broadcast - if(prevLevel != level) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(ChatBuilder.start("[SIEGE MODE] The siege tier is now " + (level + 1) + "!").color(EnumChatFormatting.RED).flush()); - } - - //every 10s we recount the loaded siege mobs - if(world.getTotalWorldTime() % 200 == 0) { - refreshMobCount(world); - } - } - - public static void perPlayerSpawn(EntityPlayer player) { - - Vec3 vec = Vec3.createVectorHelper(getSpawnDist(player.worldObj), 0, 0); - vec.rotateAroundY((float)(player.getRNG().nextFloat() * Math.PI)); - - double x = player.posX + vec.xCoord; - double z = player.posZ + vec.zCoord; - - if(enableMissileSpawn(player.worldObj)) { - EntitySiegeDropship ship = new EntitySiegeDropship(player.worldObj, x, 300, z); - player.worldObj.spawnEntityInWorld(ship); - } - } - - public static void playerDeathHook(EntityPlayer player, DamageSource source) { - - if(!player.worldObj.isRemote) { - if(isSiegeMob(source.getEntity())) { - levelCounter -= getTierSubDeath(player.worldObj); - } - } - } - - public static void mobDeathHook(EntityLivingBase entity, DamageSource source) { - - if(!entity.worldObj.isRemote) { - if(isSiegeMob(entity)) { - levelCounter += getTierAddKill(entity.worldObj); - } - } - } - - public static void spawnRandomMob(World world, double x, double y, double z, EntityPlayer target) { - - if(world.isRemote) - return; - - SiegeTier tier = SiegeTier.tiers[level]; - if(tier == null) - tier = SiegeTier.DNT; - - EntityLiving entity; - - float f = world.rand.nextFloat(); - - if(target != null && f < 0.25F && target.posY + 15 < y) { - entity = new EntitySiegeTunneler(world); - ((EntitySiegeTunneler)entity).setTier(tier); - } else if(f < 0.1F) { - entity = new EntitySiegeUFO(world); - ((EntitySiegeUFO)entity).setTier(tier); - } else if(f < 0.4F) { - entity = new EntitySiegeSkeleton(world); - ((EntitySiegeSkeleton)entity).setTier(tier); - } else { - entity = new EntitySiegeZombie(world); - ((EntitySiegeZombie)entity).setTier(tier); - } - - entity.setPositionAndRotation(x, y, z, (float)Math.PI * 2F, 0F); - - if(target != null) { - entity.setAttackTarget(target); - } - - world.spawnEntityInWorld(entity); - } - - private static void refreshMobCount(World world) { - - siegeMobCount = 0; - - for(Object o : world.loadedEntityList) { - Entity entity = (Entity) o; - - if(isSiegeMob(entity)) { - siegeMobCount++; - } - } - } - - public static boolean isSiegeMob(Entity entity) { - - if(entity instanceof EntitySiegeZombie) return true; - if(entity instanceof EntitySiegeSkeleton) return true; - if(entity instanceof EntitySiegeUFO) return true; - if(entity instanceof EntitySiegeTunneler) return true; - if(entity instanceof EntitySiegeCraft) return true; - - return false; - } - - public static final String KEY_SAVE_RULES = "siegeSaveRules"; - public static final String KEY_ENABLE_SIEGES = "siegeEnable"; - public static final String KEY_WAVE_DURATION = "siegeWaveDuration"; - public static final String KEY_PAUSE_DURATION = "siegePauseDuration"; - public static final String KEY_ENABLE_DROPS = "siegeEnableDropships"; - public static final String KEY_ENABLE_SPAWNS = "siegeEnableMobSpawning"; - public static final String KEY_ENABLE_BASES = "siegeEnableBases"; - public static final String KEY_ENABLE_MISSILES = "siegeEnableMissiles"; - public static final String KEY_SPAWN_DIST = "siegeSpawnDist"; - public static final String KEY_SPAWN_DELAY = "siegeSpawnDelay"; - public static final String KEY_TIER_DELAY = "siegeTierDuration"; - public static final String KEY_TIER_ADD_KILL = "siegeTierAddKill"; - public static final String KEY_TIER_ADD_DROP = "siegeTierAddDrop"; - public static final String KEY_TIER_SUB_DEATH = "siegeTierSubDeath"; - public static final String KEY_SPAWN_THRESHOLD = "siegeEnableSpawnThreshold"; - public static final String KEY_SPAWN_THRESHOLD_COUNT = "siegeSpawnThreshold"; - public static final String KEY_EXPANSION_THRESHOLD_COUNT = "siegeExpansionThreshold"; - - public static void createGameRules(World world) { - - GameRules rules = world.getGameRules(); - - if(!rules.getGameRuleBooleanValue(KEY_SAVE_RULES)) { - rules.setOrCreateGameRule(KEY_SAVE_RULES, "true"); - rules.setOrCreateGameRule(KEY_ENABLE_SIEGES, "false"); - rules.setOrCreateGameRule(KEY_WAVE_DURATION, "" + (20 * 60 * 20)); - rules.setOrCreateGameRule(KEY_PAUSE_DURATION, "" + (10 * 60 * 20)); - rules.setOrCreateGameRule(KEY_ENABLE_DROPS, "true"); - rules.setOrCreateGameRule(KEY_ENABLE_SPAWNS, "false"); - rules.setOrCreateGameRule(KEY_ENABLE_BASES, "true"); - rules.setOrCreateGameRule(KEY_ENABLE_MISSILES, "true"); - rules.setOrCreateGameRule(KEY_SPAWN_DIST, "64"); - rules.setOrCreateGameRule(KEY_SPAWN_DELAY, "" + (10 * 20)); - rules.setOrCreateGameRule(KEY_TIER_DELAY, "" + (15 * 60 * 20)); - rules.setOrCreateGameRule(KEY_TIER_ADD_KILL, "" + (1 * 20)); - rules.setOrCreateGameRule(KEY_TIER_SUB_DEATH, "" + (15 * 20)); - rules.setOrCreateGameRule(KEY_SPAWN_THRESHOLD, "true"); - rules.setOrCreateGameRule(KEY_SPAWN_THRESHOLD_COUNT, "50"); - rules.setOrCreateGameRule(KEY_EXPANSION_THRESHOLD_COUNT, "20"); - } - } - - public static boolean siegeEnabled(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_SIEGES); - } - - public static int getWaveDuration(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_WAVE_DURATION, 20 * 60 * 10, 1); - } - - public static int getPauseDuration(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_PAUSE_DURATION, 10 * 60 * 10, 0); - } - - public static double getSpawnDist(World world) { - return GameRuleHelper.getDoubleMinimum(world, KEY_SPAWN_DIST, 64, 0); - } - - public static int getSpawnDelay(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_SPAWN_DELAY, 10 * 20, 1); - } - - public static int getTierDelay(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_DELAY, 15 * 60 * 20, 1); - } - - public static int getTierAddKill(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_ADD_KILL, 1 * 20, 0); - } - - public static int getTierAddDrop(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_ADD_DROP, 5 * 20, 0); - } - - public static int getTierSubDeath(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_SUB_DEATH, 15 * 20, 0); - } - - public static boolean spawnThresholdEnabled(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_SPAWN_THRESHOLD); - } - - public static int getSpawnThreshold(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_SPAWN_THRESHOLD_COUNT, 50, 1); - } - - public static int getExpansionThreshold(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_EXPANSION_THRESHOLD_COUNT, 20, 1); - } - - public static boolean enableBaseSpawning(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_BASES); - } - - public static boolean enableMobSpawning(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_SPAWNS); - } - - public static boolean enableMissileSpawn(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_MISSILES); - } -} diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java index 30066a91e..a1b85d242 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java @@ -97,7 +97,6 @@ public class ChunkRadiationHandler3D extends ChunkRadiationHandler { if(buff.containsKey(newCoord)) { int newY = MathHelper.clamp_int(y + j, 0, 15); Float[] vals = radiation.get(newCoord); - float rad = vals[newY]; float newRad = vals[newY] + chunk.getValue()[newY] * percent; vals[newY] = Math.max(0F, newRad * 0.999F - 0.05F); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerITER.java b/src/main/java/com/hbm/inventory/container/ContainerITER.java index 1bf4e1bdd..e4285bc51 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerITER.java +++ b/src/main/java/com/hbm/inventory/container/ContainerITER.java @@ -43,37 +43,31 @@ private TileEntityITER iter; } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - if (var4 != null && var4.getHasStack()) - { + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) - { + if(par2 <= 4) { + if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { return null; } } else { return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java index 329f6a718..5fb979fe9 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java @@ -1,7 +1,6 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotTakeOnly; -import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java index 987b5caa6..0b81a0bd8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java @@ -56,9 +56,6 @@ public class GUIMachineGasCent extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.gasCent.hasCustomInventoryName() ? this.gasCent.getInventoryName() : I18n.format(this.gasCent.getInventoryName()); - - //this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java index 4646f4e88..e691bffc9 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java @@ -202,8 +202,6 @@ public class GUIMachineTurbineGas extends GuiInfoContainer { public void displayStartup() { - boolean displayOn = true; - if(numberToDisplay < 888888 && turbinegas.counter < 60) { //48 frames needed to complete digitNumber++; diff --git a/src/main/java/com/hbm/items/tool/ItemTurretControl.java b/src/main/java/com/hbm/items/tool/ItemTurretControl.java index 44fcfafef..bf976410d 100644 --- a/src/main/java/com/hbm/items/tool/ItemTurretControl.java +++ b/src/main/java/com/hbm/items/tool/ItemTurretControl.java @@ -168,10 +168,6 @@ public class ItemTurretControl extends Item { j = event.charge; if(stack.hasTagCompound()) { - int x = stack.getTagCompound().getInteger("xCoord"); - int y = stack.getTagCompound().getInteger("yCoord"); - int z = stack.getTagCompound().getInteger("zCoord"); - /// /// } } @@ -204,8 +200,6 @@ public class ItemTurretControl extends Item { if(world.getBlock(x, y, z) instanceof TurretBase) { - TileEntity te = world.getTileEntity(x, y, z); - /// /// } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 1002a2191..088c4391d 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4895)"; + public static final String VERSION = "1.0.27 BETA (4914)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index f3a2bece4..d0beabbc7 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -249,7 +249,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarScreen.class, new RenderRadarScreen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSeleniumEngine.class, new RenderSelenium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorResearch.class, new RenderSmallReactor()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineShredderLarge.class, new RenderMachineShredder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTesla.class, new RenderTesla()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBarrel.class, new RenderFluidBarrel()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCrystallizer.class, new RenderCrystallizer()); @@ -631,7 +630,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityFallingNuke.class, new RenderFallingNuke()); RenderingRegistry.registerEntityRenderingHandler(EntityMinerRocket.class, new RenderMinerRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityBobmazon.class, new RenderMinerRocket()); - RenderingRegistry.registerEntityRenderingHandler(EntitySiegeDropship.class, new RenderMinerRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityTom.class, new RenderTom()); RenderingRegistry.registerEntityRenderingHandler(EntityAAShell.class, new RenderMirv()); RenderingRegistry.registerEntityRenderingHandler(EntityRocketHoming.class, new RenderSRocket()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 43d45ebf4..2d04a92fe 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -420,7 +420,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.tile_lab_broken, 6), new Object[] { " C " , "C C", " C ", 'C', ModBlocks.tile_lab_cracked }); addShapelessAuto(new ItemStack(ModBlocks.asphalt_light, 1), new Object[] { ModBlocks.asphalt, Items.glowstone_dust }); addShapelessAuto(new ItemStack(ModBlocks.asphalt, 1), new Object[] { ModBlocks.asphalt_light }); - addRecipeAuto(new ItemStack(ModBlocks.block_niter_reinforced, 1), new Object[] { "TCT", "CNC", "TCT", 'T', ANY_RESISTANTALLOY.ingot(), 'C', ModBlocks.concrete, 'N', KNO.block() }); String[] dyes = { "Black", "Red", "Green", "Brown", "Blue", "Purple", "Cyan", "LightGray", "Gray", "Pink", "Lime", "Yellow", "LightBlue", "Magenta", "Orange", "White" }; diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 001c12aa4..33710f98f 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -932,7 +932,6 @@ public class MainRegistry { public void serverStart(FMLServerStartingEvent event) { World world = event.getServer().getEntityWorld(); RBMKDials.createDials(world); - SiegeOrchestrator.createGameRules(world); event.registerServerCommand(new CommandReloadRecipes()); event.registerServerCommand(new CommandDebugChunkLoad()); event.registerServerCommand(new CommandSatellites()); @@ -1248,6 +1247,13 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.test_pipe"); ignoreMappings.add("hbm:tile.test_ct"); ignoreMappings.add("hbm:tile.test_rail"); + ignoreMappings.add("hbm:tile.block_niter_reinforced"); + ignoreMappings.add("hbm:tile.siege_shield"); + ignoreMappings.add("hbm:tile.siege_internal"); + ignoreMappings.add("hbm:tile.siege_circuit"); + ignoreMappings.add("hbm:tile.siege_emergency"); + ignoreMappings.add("hbm:tile.siege_hole"); + ignoreMappings.add("hbm:tile.machine_shredder_large"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 7edafe480..69b79f7b5 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -44,7 +44,6 @@ import com.hbm.handler.HTTPHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.handler.SiegeOrchestrator; import com.hbm.items.IEquipReceiver; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; @@ -389,11 +388,6 @@ public class ModEventHandler { } } } - - SiegeOrchestrator.playerDeathHook(player, event.source); - - } else { - SiegeOrchestrator.mobDeathHook(entity, event.source); } } @@ -716,7 +710,6 @@ public class ModEventHandler { if(event.phase == Phase.START) { BossSpawnHandler.rollTheDice(event.world); TimedGenerator.automaton(event.world, 100); - SiegeOrchestrator.update(event.world); } } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java b/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java index 1031f515d..b3c89b5f3 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java @@ -3,7 +3,6 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; import com.hbm.entity.missile.EntityMinerRocket; -import com.hbm.entity.missile.EntitySiegeDropship; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -22,12 +21,7 @@ public class RenderMinerRocket extends Render { if(entity instanceof EntityMinerRocket) { bindTexture(ResourceManager.minerRocket_tex); } else { - - if(entity instanceof EntitySiegeDropship) { - bindTexture(ResourceManager.siege_dropship_tex); - } else { - bindTexture(ResourceManager.bobmazon_tex); - } + bindTexture(ResourceManager.bobmazon_tex); GL11.glRotatef(180, 1, 0, 0); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java b/src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java deleted file mode 100644 index fbcc4b08c..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderMachineShredder extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glRotatef(180, 0F, 1F, 0F); - - bindTexture(ResourceManager.shredder_tex); - ResourceManager.shredder.renderPart("Base"); - - double side = 0.3D; - double height = 2.75D; - float rot = (System.currentTimeMillis() / 5) % 360; - - GL11.glPushMatrix(); - GL11.glTranslated(side, height, 0); - GL11.glRotatef(rot, 0F, 0F, 1F); - ResourceManager.shredder.renderPart("Blades1"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(-side, height, 0); - GL11.glRotatef(rot, 0F, 0F, -1F); - ResourceManager.shredder.renderPart("Blades2"); - GL11.glPopMatrix(); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java index 3fe08895d..76f23bc5a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java @@ -105,6 +105,7 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemR GL11.glScaled(3, 3, 3); SnowglobeType type = EnumUtil.grabEnumSafely(SnowglobeType.class, item.getItemDamage()); renderSnowglobe(type); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); }}; } } diff --git a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java index 0fd88f3c7..512eb41af 100644 --- a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java +++ b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java @@ -230,11 +230,10 @@ public class RenderScreenOverlay { int bar = barID; if(stamina % 30 >= 25) bar++; - int yPos = y; if(bar / 3 != y) y++; bar = bar % 3; - gui.drawTexturedModalRect(posX + (width+2)*bar, posY - 12*y, 76, 58, width, 10); + gui.drawTexturedModalRect(posX + (width + 2) * bar, posY - 12 * y, 76, 58, width, 10); fadeOut -= 0.04F; GL11.glColor4f(1F, 1F, 1F, 1F); } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index a950f5f87..89db6f2f3 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -133,7 +133,6 @@ public class TileMappings { put(TileEntityGeiger.class, "tileentity_geiger"); put(TileEntityFF.class, "tileentity_forcefield"); put(TileEntityForceField.class, "tileentity_machine_field"); - put(TileEntityMachineShredderLarge.class, "tileentity_machine_big_shredder"); put(TileEntityReactorControl.class, "tileentity_reactor_remote_control"); put(TileEntityWasteDrum.class, "tileentity_waste_drum"); put(TileEntityDecon.class, "tileentity_decon"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java index df1c3f774..9cdfd6e3d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java @@ -20,7 +20,7 @@ public class TileEntityCyberCrab extends TileEntity { if (!this.worldObj.isRemote) { age++; - if(age > 200 && worldObj.getBlock(xCoord, yCoord + 1, zCoord) == Blocks.air) { + if(age > 200 && worldObj.getBlock(xCoord, yCoord + 1, zCoord) == Blocks.air && worldObj.getClosestPlayer(xCoord + 0.5, yCoord + 1, zCoord + 0.5, 25) != null) { List entities = this.worldObj.getEntitiesWithinAABB(EntityCyberCrab.class, AxisAlignedBB.getBoundingBox(this.xCoord - 5, this.yCoord - 2, this.zCoord - 5, this.xCoord + 6, this.yCoord + 4, this.zCoord + 6)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java deleted file mode 100644 index 66454362c..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java +++ /dev/null @@ -1,220 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; - -import api.hbm.energy.IBatteryItem; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; - -public class TileEntityMachineShredderLarge extends TileEntity implements ISidedInventory { - - private ItemStack slots[]; - - public long power; - public static final long maxPower = 100000; - public int progress; - public int maxProgress = 100; - - Random rand = new Random(); - - private String customName; - - public TileEntityMachineShredderLarge() { - slots = new ItemStack[31]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.assembler"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - this.power = nbt.getLong("powerTime"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return new int[] { 0 }; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (progress * i) / maxProgress; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - } - - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - -} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 48b8ea59f..452b33eb9 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -9,7 +9,6 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.entity.logic.EntityBomber; import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileCustom; -import com.hbm.entity.missile.EntitySiegeDropship; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.handler.BulletConfigSyncingUtil; @@ -650,7 +649,6 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(e instanceof EntityMinecart) return true; if(e instanceof EntityRailCarBase) return true; if(e instanceof EntityBomber) return true; - if(e instanceof EntitySiegeDropship) return true; for(Class c : CompatExternal.turretTargetMachine) if(c.isAssignableFrom(e.getClass())) return true; } diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 31ff44c48..555afa11d 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -94,8 +94,6 @@ achievement.RBMK.desc=他有妄想症,带他去医务室。 achievement.RBMK=3.6伦琴? achievement.redBalloons.desc=“这就是我们一直在等待的。就是这样,孩子们,这就是战争。” achievement.redBalloons=99个红气球 -achievement.redRoom.desc=? -achievement.redRoom=The Other Side achievement.sacrifice.desc=直面火海并存活 achievement.sacrifice=牺牲 achievement.schrab.desc=不管怎样,我不会看太久。 @@ -383,16 +381,12 @@ book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The exist book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. - - book_lore.bf_bomb_3.name=私人笔记 book_lore.bf_bomb_3.author=M. 波特 book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. - - book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... book_lore.bf_bomb_4.name=私人笔记 @@ -543,7 +537,6 @@ chem.GASOLINE_LEADED=含铅汽油混合 chem.HEAVY_ELECTROLYSIS=低温电解重水 chem.HELIUM3=使用月球草皮提取氦-3 chem.KEVLAR=凯夫拉生产 -chem.LAMINATE=强化夹层玻璃生产 chem.LPG=石油天然气液化 chem.LUBRICANT=润滑剂混合 chem.MEAT_PROCESSING=异虫肉矿物提取 @@ -552,14 +545,12 @@ chem.NITAN=NITAN牌超级燃料混合 chem.NITRIC_ACID=硝酸生产 chem.OIL_SAND=沥青砂提取 chem.OSMIRIDIUM_DEATH=锇酸溶液生产 -chem.PC=硬质塑料合成 chem.PC_ELECTROLYSIS=氯化钾电解 chem.PEROXIDE=过氧化氢生产 chem.PET=PET合成 chem.PETROIL_LEADED=含铅石油混合 chem.POLYMER=聚合物合成 chem.PUF6=六氟化钚生产 -chem.PVC=PVC合成 chem.RUBBER=橡胶生产 chem.SAS3=三硫化Sa生产 chem.SATURN=土星锭生产 @@ -653,7 +644,6 @@ container.fluidtank=储罐 container.fileCabinet=文件柜 container.forceField=力场发生器 container.frackingTower=水力压裂塔 -container.furnaceBrick=砖砌熔炉 container.furnaceCombination=复式炼焦炉 container.furnaceIron=铁炉 container.furnaceSteel=钢炉 @@ -671,11 +661,9 @@ container.hydrotreater=加氢装置 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 -container.launchPadRusted=导弹发射台 tile.launch_pad_large.name=发射台 container.launchTable=大型发射台 container.leadBox=安全盒 -container.machineArcWelder=电弧焊机 container.machineBoiler=锅炉 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 @@ -686,7 +674,6 @@ container.machineDiesel=柴油发电机 container.machineElectricBoiler=电锅炉 container.machineElectrolyser=电解机 container.machineFEL=FEL -container.machineFunnel=Combinator Funnel container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 container.machineLiquefactor=液化机 @@ -696,7 +683,7 @@ container.machineSelenium=星型发动机 container.machineShredder=粉碎机 container.machineSILEX=激光同位素分离室 container.machineSolidifier=固化机 -container.machineStrandCaster=连铸机 +container.machineStrandCaster=连续铸造机 container.machineTurbine=汽轮机 container.machineTurbofan=涡扇发动机 container.machine_schrabidium_transmutator=Sa326嬗变装置 @@ -1024,7 +1011,6 @@ entity.entity_glyphid_digger.name=掘地异虫 entity.entity_glyphid_nuclear.name=大个子强森 entity.entity_glyphid_scout.name=侦察异虫 entity.entity_ntm_fbi.name=FBI探员 -entity.entity_ntm_fbi_drone.name=FBI无人机 entity.entity_ntm_radiation_blaze.name=核融元素 entity.hbm.entity_ntm_ufo.name=火星入侵者飞船 entity.entity_mob_hunter_chopper.name=猎人直升机 @@ -1053,7 +1039,6 @@ flare.ignition=点火装置 flare.valve=流量阀 fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 -fluid.rad_lava_fluid=火山熔岩 fluid.mud_fluid=毒泥 fluid.schrabidic_fluid=Sa酸 fluid.toxic_fluid=绿色软泥 @@ -1207,9 +1192,8 @@ hadron.error_analysis_too_long=错误 0x06 [分析室过长] hadron.error_analysis_too_short=错误 0x06 [分析室过长] hadron.error_diode_collision=错误 0x08 [二极管方向错误] hadron.error_branching_turn=错误 0x09 [多处分支] -hadron.hopper0=§e正常模式:$ 将使用所有项目 +hadron.hopper0=§e正常模式:$将使用所有项目 hadron.hopper1=§e料斗模式:$ 将始终保留一个项目 -hadron.hopper2=§e单一模式:$ 每个插槽只允许一个物品 hadron.idle=空闲 hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 @@ -1442,7 +1426,6 @@ hbmmat.magnetizedtungsten=磁化钨 hbmmat.malachite=孔雀石 hbmmat.meteoriciron=陨铁 hbmmat.mingrade=紫铜 -hbmmat.neodymium=钕 hbmmat.neptunium237=镎-237 hbmmat.niobium=铌 hbmmat.obsidian=黑曜岩 @@ -1934,7 +1917,6 @@ item.boltgun.name=气动射钉枪 item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 item.book_guide.name=HBM指导书 -item.book_lemegeton.name=所罗门之钥 item.book_of_.name=车厢书 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 @@ -2136,7 +2118,6 @@ item.chopper_head.name=猎人直升机驾驶舱 item.chopper_tail.name=猎人直升机尾部 item.chopper_torso.name=猎人直升机主体 item.chopper_wing.name=猎人直升机翼片 -item.chunk_ore.rare.name=稀土矿石块 item.cigarette.name=FFI牌香烟 item.cinnebar.name=朱砂 item.circuit_aluminium.name=基础电路 @@ -2151,12 +2132,10 @@ item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性能电路 item.circuit_star.name=星控制 电路板 item.circuit_star.desc=目前无效,因为它缺少操作系统。 -item.circuit_star_component.card.name=星控制 扩展卡 item.circuit_star_component.chipset.name=星控制 芯片组 item.circuit_star_component.cpu.name=星控制 CPU item.circuit_star_component.ram.name=星控制 RAM item.circuit_star_piece.board_blank.name=SC-印刷电路板 -item.circuit_star_piece.board_converter.name=SC-电压转换器 item.circuit_star_piece.board_transistor.name=SC-晶体管 item.circuit_star_piece.bridge_bios.name=SC-BIOS芯片 item.circuit_star_piece.bridge_bus.name=SC-总线 @@ -2165,8 +2144,6 @@ item.circuit_star_piece.bridge_cmos.name=SC-CMOS存储器 item.circuit_star_piece.bridge_io.name=SC-IO芯片 item.circuit_star_piece.bridge_north.name=SC-北桥 item.circuit_star_piece.bridge_south.name=SC-南桥 -item.circuit_star_piece.card_board.name=SC-扩展卡板 -item.circuit_star_piece.card_processor.name=SC-扩展卡处理器 item.circuit_star_piece.cpu_cache.name=SC-CPU缓存 item.circuit_star_piece.cpu_clock.name=SC-CPU时钟 item.circuit_star_piece.cpu_ext.name=SC-砷半导体外延片 @@ -2416,7 +2393,6 @@ item.dust.name=灰尘 item.dust.desc=我讨厌灰尘! item.dust.desc.P11=又一小撮灰尘! item.dust_tiny.name=一小撮灰尘 -item.dwarven_pickaxe.name=矮人镐 item.dynosphere_base.name=空白动力球 item.dynosphere_desh.name=Desh动力球 item.dynosphere_desh_charged.name=Desh动力球[带电] @@ -2517,8 +2493,6 @@ item.fragment_lanthanium.name=镧碎片 item.fragment_meteorite.name=陨石碎片 item.fragment_neodymium.name=钕碎片 item.fragment_niobium.name=铌碎片 -item.fuel_additive.antiknock.name=四乙基铅抗爆剂 -item.fuel_additive.deicer.name=除冰剂 item.fuel_tank_large.name=大型燃料罐 item.fuel_tank_medium.name=中型燃料罐 item.fuel_tank_small.name=小型燃料罐 @@ -2564,7 +2538,7 @@ item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 item.glyphid_meat.name=异虫肉 item.glyphid_meat_grilled.name=熟异虫肉 -item.glyphid_gland.name=异虫腺体 +item.glyphid_gland.name=囊腺 item.glyphid_gland_empty.name=异虫腺体 item.goggles.name=护目镜 item.grenade_aschrab.name=可抛反Sa326 @@ -2813,7 +2787,6 @@ item.ingot_c4.name=一块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 item.ingot_cdalloy.name=镉钢锭 -item.ingot_cft.name=晶化富勒烯 item.ingot_chainsteel.name=重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 @@ -2937,7 +2910,6 @@ item.key_red.desc=探索另一边。 item.key_red.desc.P11=§4e§r item.key_red_cracked.name=破碎的钥匙 item.key_red_cracked.desc=??? -item.key_red.key_red_cracked.P11=§4???§r item.kit_toolbox.name=工具箱 item.kit_toolbox_empty.name=空工具箱 item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 @@ -2949,9 +2921,6 @@ item.laser_crystal_co2.name=CO2-Desh激光晶体 item.laser_crystal_digamma.name=Digamma迪伽马激光晶体 item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 item.laser_crystal_dnt.name=Spark激光晶体 -item.launch_code.name=发射井启动代码 -item.launch_code_piece.name=发射井启动代码残片 -item.launch_key.name=导弹发射台解锁钥匙 item.lead_gavel.name=铅槌 item.lemon.name="柠檬" item.letter.name=快捷邮件 @@ -3034,7 +3003,6 @@ item.missile_cluster_strong.name=强化型集束导弹 item.missile_custom.name=定制导弹 item.missile_decoy.name=诱饵弹 item.missile_doomsday.name=末日导弹 -item.missile_doomsday_rusted.name=损坏的末日导弹 item.missile_drill.name=掩体裂解者 item.missile_emp.name=EMP导弹 item.missile_emp_strong.name=强化型EMP导弹 @@ -3224,8 +3192,6 @@ item.night_vision.name=夜视眼镜 item.night_vision.description.item=提供夜视功能(需要全套电动设备) item.night_vision.description.in_armor=%s(允许夜视) item.niter.name=硝石粉 -item.nitra.name=Nitra -item.nitra_small.name=Small Pile of Nitra item.no9.name=矿工头盔 item.nossy_hat.name=华丽的帽子 item.nothing.name=没有东西 @@ -3327,14 +3293,10 @@ item.ore.chlorocalcite=氯方解石 item.ore.copper=铜 item.ore.fluorite=氟石 item.ore.gold=金 -item.ore.hematite=赤铁 item.ore.iron=铁 -item.ore.malachite=孔雀石 -item.ore.neodymium=钕 item.ore.niobium=铌 item.ore.titanium=钛 item.ore.tungsten=钨 -item.ore.thorium232=钍 item.ore.thorium=钍 item.ore.uranium=铀 item.ore_bedrock.name=基岩%s矿 @@ -3375,14 +3337,6 @@ item.padlock_unbreakable.name=牢不可破的挂锁 item.pads_rubber.name=橡胶垫 item.pads_slime.name=粘液垫 item.pads_static.name=静电垫 -item.page_of_.page1.name=第一页 -item.page_of_.page2.name=第二页 -item.page_of_.page3.name=第三页 -item.page_of_.page4.name=第四页 -item.page_of_.page5.name=第五页 -item.page_of_.page6.name=第六页 -item.page_of_.page7.name=第七页 -item.page_of_.page8.name=第八页 item.pancake.name=用废金属、螺栓和宝石粉做成的薄饼 item.part_beryllium.name=铍粉盒 item.part_carbon.name=碳粉盒 @@ -3535,7 +3489,6 @@ item.plate_saturnite.name=土星板 item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 -item.plate_welded.name=焊接%s板 item.polaroid.name=偏光片 item.pollution_detector.name=污染探测器 item.powder_actinium.name=锕粉 @@ -3546,7 +3499,6 @@ item.powder_asbestos.name=石棉粉 item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=煤灰 item.powder_ash.fly.name=飞尘 -item.powder_ash.fullerene.name=富勒烯 item.powder_ash.misc.name=灰尘 item.powder_ash.soot.name=细烟灰 item.powder_ash.wood.name=木灰 @@ -3613,7 +3565,6 @@ item.powder_magic.name=粉碎的魔法 item.powder_magnetized_tungsten.name=磁化钨粉 item.powder_meteorite.name=陨石粉 item.powder_meteorite_tiny.name=小撮陨石粉 -item.powder_molysite.name=氯化铁 item.powder_neodymium.name=钕粉 item.powder_neodymium_tiny.name=小撮钕粉 item.powder_neptunium.name=镎粉 @@ -4096,14 +4047,6 @@ item.stamp_357.name=.357马格南锻模 item.stamp_44.name=.44马格南锻模 item.stamp_50.name=大口径弹壳锻模 item.stamp_9.name=小口径弹壳锻模 -item.stamp_book.printing1.name=印刷印章 其一 -item.stamp_book.printing2.name=印刷印章 其二 -item.stamp_book.printing3.name=印刷印章 其三 -item.stamp_book.printing4.name=印刷印章 其四 -item.stamp_book.printing5.name=印刷印章 其五 -item.stamp_book.printing6.name=印刷印章 其六 -item.stamp_book.printing7.name=印刷印章 其七 -item.stamp_book.printing8.name=印刷印章 其八 item.stamp_desh_circuit.name=Desh电路板锻模 item.stamp_desh_flat.name=Desh锻模 item.stamp_desh_plate.name=Desh板锻模 @@ -4162,7 +4105,6 @@ item.stick_dynamite_fishing.name=捕鱼炸药棒 item.stick_semtex.name=塞姆汀塑胶炸药棒 item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 -item.structure_custommachine.name=自定义机器结构输出魔杖 item.sulfur.name=硫粉 item.survey_scanner.name=勘测扫描仪 item.syringe_antidote.name=解毒剂 @@ -4265,7 +4207,6 @@ item.upgrade_fortune_2.name=二级紫色机器升级 item.upgrade_fortune_3.name=三级紫色机器升级 item.upgrade_gc_speed.name=气体离心机超频升级 item.upgrade_health.name=粉色力场发生器升级 -item.upgrade_muffler.name=消音器 item.upgrade_nullifier.name=采矿激光升级-自动销毁 item.upgrade_overdrive_1.name=一级超速传动机器升级 item.upgrade_overdrive_2.name=二级超速传动机器升级 @@ -4363,7 +4304,6 @@ item.wings_murk.name=暗黑之翼 item.wire_advanced_alloy.name=超导体 item.wire_aluminium.name=铝线 item.wire_copper.name=铜线 -item.wire_dense.name=致密%s线 item.wire_gold.name=金线 item.wire_magnetized_tungsten.name=4000K高温超导体 item.wire_red_copper.name=紫铜线 @@ -4385,7 +4325,7 @@ itemGroup.tabMissile=HBM 导弹和卫星 itemGroup.tabNuke=HBM 炸弹 itemGroup.tabParts=HBM 资源和零件 itemGroup.tabTemplate=HBM 模板 -itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] +itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、Nukesteve、牛牛联合汉化] itemGroup.tabWeapon=HBM 武器和炮塔 potion.hbm_bang=! ! ! potion.hbm_death=重度突变 @@ -4399,27 +4339,10 @@ potion.hbm_radx=抗辐射 potion.hbm_stability=稳定 potion.hbm_taint=污染 potion.hbm_telekinesis=! ! ! -radar.clearMap=清除地图缓存 radar.detectMissiles=探测导弹 radar.detectPlayers=探测玩家 -radar.detectShells=探测炮弹 radar.redMode=红石控制模式$开启: 基于导弹距离输出红石信号$关闭: 基于导弹级别输出红石信号 radar.smartMode=智能模式$有红石信号时忽略上升段的导弹 -radar.showMap=显示地图 -radar.target.abm=反弹道导弹 -radar.target.custom10=10号定制导弹 -radar.target.custom1015=10/15号定制导弹 -radar.target.custom15=15号定制导弹 -radar.target.custom1520=15/20号定制导弹 -radar.target.custom20=20号定制导弹 -radar.target.doomsday=末日导弹 -radar.target.shuttle=万金罗宾航天飞机 -radar.target.tier0=0级导弹 -radar.target.tier1=1级导弹 -radar.target.tier2=2级导弹 -radar.target.tier3=3级导弹 -radar.target.tier4=4级导弹 -radar.toggleGui=切换界面 rbmk.heat=柱体温度: %s rbmk.boiler.water=供水速率: %s / %s rbmk.boiler.steam=蒸汽产生速率: %s / %s @@ -4463,8 +4386,6 @@ shape.plate=板材 shape.plateTriple=铸造板 shape.stamp=锻压模具 shape.wire=线材 -shape.wireDense=致密线材 -shape.wiresDense=致密线材 soundCategory.ntmMachines=NTM机器 tile.absorber.name=辐射吸收器 tile.absorber_green.name=高级辐射吸收器 @@ -4503,13 +4424,13 @@ tile.barrel_steel.name=钢桶 tile.barrel_tcalloy.name=锝-钢合金桶 tile.barricade.name=沙袋 tile.basalt.name=玄武岩 -tile.basalt_asbestos.name=富含石棉的玄武岩 +tile.ore_basalt_asbestos.name=富含石棉的玄武岩 tile.basalt_brick.name=玄武岩砖 -tile.basalt_fluorite.name=富含氟石的玄武岩 -tile.basalt_gem.name=富含宝石的玄武岩 +tile.ore_basalt_fluorite.name=富含氟石的玄武岩 +tile.ore_basalt_gem.name=富含宝石的玄武岩 tile.basalt_polished.name=抛光玄武岩 tile.basalt_smooth.name=平滑玄武岩 -tile.basalt_sulfur.name=富含硫的玄武岩 +tile.ore_basalt_sulfur.name=富含硫的玄武岩 tile.basalt_tiles.name=玄武岩砖 tile.blast_door.name=防爆闸门 tile.block_actinium.name=锕块 @@ -4664,7 +4585,6 @@ tile.brick_light.name=轻质砖块 tile.brick_light_stairs.name=轻质砖楼梯 tile.brick_obsidian.name=黑曜石砖块 tile.brick_obsidian_stairs.name=黑曜石砖楼梯 -tile.brick_red.name=红屋砖 tile.brick_slab.brick_asbestos.name=石棉砖板 tile.brick_slab.brick_compound.name=复合网格板 tile.brick_slab.brick_fire.name=耐火砖板 @@ -4683,7 +4603,7 @@ tile.capacitor_bus.desc=电容器的输出方块$可以连成一条直线 tile.capacitor_copper.name=铜电容 tile.capacitor_gold.name=金电容 tile.capacitor_niobium.name=铌电容 -tile.capacitor_schrabidate.name=Sa酸铁电容器 +tile.capacitor_schrabidate.name=Sa酸铁电容 tile.capacitor_tantalium.name=钽电容 tile.capacitor.desc=输入:顶部$输出:底部,通过电容总线 tile.charge_c4.name=炸药包 @@ -4705,7 +4625,6 @@ tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 -tile.custom_machine_anchor.name=自定义机器结构定位锚 tile.cm_block.alloy.name=高级合金机器外壳 tile.cm_block.desh.name=Desh机器外壳 tile.cm_block.steel.name=钢制机器外壳 @@ -4718,8 +4637,6 @@ tile.cm_circuit.schrabidium.name=五级电路块 tile.cm_engine.bismuth.name=铋电机组 tile.cm_engine.desh.name=DESH电机组 tile.cm_engine.standard.name=电机组 -tile.cm_flux.name=中子通量接收器 -tile.cm_heat.name=热量接收器 tile.cm_port.alloy.name=高级合金端口 tile.cm_port.desh.name=Desh端口 tile.cm_port.steel.name=钢制端口 @@ -4824,7 +4741,6 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL -tile.deco_crt.name=老旧的CRT屏幕 tile.deco_emitter.name=Deco发光体 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 @@ -4856,7 +4772,6 @@ tile.deco_pipe_rim_red.name=红色钢制管道 (镶边) tile.deco_pipe_rim_marked.name=气体管道 (镶边) tile.deco_steel.name=钢装饰块 tile.deco_titanium.name=钛装饰块 -tile.deco_toaster.name=坏了的烤面包机 tile.deco_tungsten.name=钨装饰块 tile.decon.name=玩家去污器 tile.depth_brick.name=深层岩石砖 @@ -5048,8 +4963,8 @@ tile.lamp_tritium_blue_off.name=蓝色氚灯 tile.lamp_tritium_blue_on.name=蓝色氚灯 tile.lamp_tritium_green_off.name=绿色氚灯 tile.lamp_tritium_green_on.name=绿色氚灯 -tile.lantern.name=灯笼 -tile.lantern_behemoth.name=旧灯笼 +tile.lantern.name=路灯 +tile.lantern_behemoth.name=旧路灯 tile.launch_pad.name=导弹发射台 tile.launch_table.name=大型发射台 tile.leaves_layer.name=落叶 @@ -5057,7 +4972,6 @@ tile.lox_barrel.name=液氧桶 tile.machine_amgen.name=环境辐射发电机 tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 -tile.machine_arc_welder.name=电弧焊机 tile.machine_armor_table.name=装甲改装台 tile.machine_ashpit.name=储灰槽 tile.machine_ashpit.desc=收集来自燃烧室和加热炉的灰烬 @@ -5123,10 +5037,6 @@ tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 tile.machine_fracking_tower.name=水力压裂塔 -tile.machine_furnace_brick_off.name=砖砌熔炉 -tile.machine_furnace_brick_on.name=砖砌熔炉 -tile.machine_funnel.name=Combinator Funnel -tile.machine_funnel.desc=Automatically compresses items in a 2x2 or 3x3 crafting grid$Top: Input$Bottom: Output$Side: Output for clearing ingredients tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 @@ -5193,7 +5103,7 @@ tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热 tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 -tile.machine_strand_caster.name=连铸机 +tile.machine_strand_caster.name=连续铸造机 tile.machine_telelinker.name=炮塔ID管理器 tile.machine_teleporter.name=传送机 tile.machine_tower_large.name=冷却塔 @@ -5251,11 +5161,6 @@ tile.ore_alexandrite.name=亚历山大变石矿 tile.ore_aluminium.name=铝矿石 tile.ore_asbestos.name=石棉矿 tile.ore_australium.name=奥斯矿石 -tile.ore_basalt_asbestos.name=富含石棉的玄武岩 -tile.ore_basalt_fluorite.name=富含氟石的玄武岩 -tile.ore_basalt_gem.name=富含宝石的玄武岩 -tile.ore_basalt_molysite.name=富含氯化铁的玄武岩 -tile.ore_basalt_sulfur.name=富含硫磺的玄武岩 tile.ore_bedrock.name=基岩矿石 tile.ore_bedrock_coltan.name=基岩钶钽铁矿 tile.ore_bedrock_oil.name=基岩油层 @@ -5330,7 +5235,6 @@ tile.ore_verticium.name=韦德赛矿石 tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 tile.part_emitter.name=Deco粒子发射器 -tile.pedestal.name=基座 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 @@ -5497,7 +5401,6 @@ tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 tile.spikes.name=地刺 -tile.snowglobe.name=雪花玻璃球 tile.spotlight_incandescent.name=罩灯 tile.spotlight_fluoro.name=荧光灯 tile.spotlight_halogen.name=卤素泛光灯 @@ -5569,7 +5472,6 @@ tile.turret_rocket.name=火箭炮塔 tile.turret_richard.name=火箭炮塔“理查德” tile.turret_spitfire.name=目前没有名字[开发中] tile.turret_sentry.name=哨兵炮塔“布朗” -tile.turret_sentry_damaged.name=哨兵炮塔“埃德温” tile.turret_tau.name=陶子炮塔 tile.turret_tauon.name=XVL1456原型陶子发射器炮塔"陶恩" tile.vacuum.name=真空 @@ -5603,7 +5505,6 @@ tile.watz_hatch.name=Watz反应堆端口 tile.watz_pump.name=Watz压力泵 tile.yellow_barrel.name=核废料桶 tile.zirnox_destroyed.name=损毁的ZINROX - tile.large_vehicle_door.name=大型机械门 tile.water_door.name=水闸门 tile.qe_containment.name=QE安全门 @@ -5611,7 +5512,6 @@ tile.qe_sliding_door.name=QE滑动门 tile.round_airlock_door.name=圆形气闸门 tile.secure_access_door.name=安全检修门 tile.sliding_seal_door.name=滑动密封门 - trait.asbestos=石棉 trait.blinding=致盲 trait.coal=煤尘 @@ -5683,23 +5583,6 @@ turret.none=无 turret.off=关 turret.on=开 turret.players=以玩家为目标:%s - -upgrade.acid=Acid required %s -upgrade.burn=Burn %smb/t for %sHE -upgrade.consumption=Consumption %s -upgrade.coolantConsumption=Coolant Consumption %s -upgrade.delay=Process time %s -upgrade.efficiency=Efficiency %s -upgrade.fortune=Fortune %s -upgrade.overheatChance=Overheat chance %s -upgrade.range=Range %s -upgrade.gui.title=§lAcceptable Upgrades:§r -upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s -upgrade.gui.effectiveness= * §aEffectiveness§r: Stacks to level %s -upgrade.gui.overdrive= * §7Overdrive§r: Stacks to level %s -upgrade.gui.power= * §9Power-Saving§r: Stacks to level %s -upgrade.gui.speed= * §4Speed§r: Stacks to level %s - wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 @@ -5729,3 +5612,41 @@ weapon.elecGun.glass_cannon.gamma=伽马射线 hadron.error=错误! container.reactor=增殖反应堆 death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 +item.launch_code.name=发射井发射代码 +item.nitra.name=Nitra +item.nitra_small.name=小撮Nitra +item.launch_key.name=发射井发射钥匙 +item.powder_molysite.name=钼铁矿 +tile.ore_basalt_molysite.name=富含钼铁矿的玄武岩 +item.upgrade_muffler.name=消音器 +item.chunk_ore.rare.name=稀土矿石块 +item.wire_dense.name=致密%s线 +item.launch_code_piece.name=发射井发射代码碎片 +tile.deco_crt.name=老CRT显示屏 +tile.deco_toaster.name=坏掉的烤面包机 +tile.crystal_power.name=能量水晶 +tile.crystal_energy.name=能量水晶 +tile.crystal_robust.name=坚固的水晶 +tile.crystal_trixite.name=赛瑞克水晶 +tile.machine_furnace_brick_off.name=砖砌炉 +tile.machine_furnace_brick_on.name=砖砌炉 +tile.cm_flux.name=中子接收器 +tile.cm_heat.name=热量接收器 +container.machineFunnel=组合漏斗 +tile.machine_funnel.name=组合漏斗 +container.machineArcWelder=电弧焊机 +tile.machine_arc_welder.name=电弧焊机 +tile.launch_pad_rusted.name=锈迹斑斑的发射台 +tile.turret_sentry_damaged.name=哨兵炮塔"埃德温" +item.powder_sodium.name=钠 +item.plate_welded.name=焊接%s板 +item.ingot_cft.name=晶化富勒烯 +item.powder_ash.fullerene.name=富勒烯 +item.fuel_additive.antiknock.name=四乙基铅抗爆剂 +item.fuel_additive.deicer.name=除冰剂 +radar.detectShells=探测炮弹 +radar.showMap=显示地图 +radar.toggleGui=切换视图 +radar.clearMap=清空地图 +item.missile_doomsday_rusted.name=损坏的末日导弹 +item.gun_vortex.name=涡流 \ No newline at end of file From 7be71dfb9907b6fcab855d8828a1b1f8b1822406 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 25 Mar 2024 14:38:29 +0100 Subject: [PATCH 288/376] fixes, foxes, flixes --- changelog | 70 ++---------------- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 6 +- .../hbm/blocks/generic/BlockBedrockOreTE.java | 2 +- .../hbm/entity/mob/glyphid/EntityGlyphid.java | 5 +- src/main/java/com/hbm/itempool/ItemPool.java | 25 +++++-- .../com/hbm/itempool/ItemPoolsLegacy.java | 3 +- .../java/com/hbm/itempool/ItemPoolsPile.java | 73 +++++++++++++++++++ ...Satellite.java => ItemPoolsSatellite.java} | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../satellites/SatelliteLunarMiner.java | 4 +- .../saveddata/satellites/SatelliteMiner.java | 4 +- .../machine/TileEntityMachineSatDock.java | 6 +- src/main/java/com/hbm/util/LootGenerator.java | 27 ++----- 15 files changed, 120 insertions(+), 112 deletions(-) create mode 100644 src/main/java/com/hbm/itempool/ItemPoolsPile.java rename src/main/java/com/hbm/itempool/{ItemPoolSatellite.java => ItemPoolsSatellite.java} (98%) diff --git a/changelog b/changelog index ad05a57f2..f20ee23ba 100644 --- a/changelog +++ b/changelog @@ -1,66 +1,10 @@ -## Added -* More axes - * Bismuth, volcanic, chlorophyte and mese tool materials now have axes - * Axes also double as offensive weapons, being a lot more powerful than their pickaxe counterparts -* Drainage pipe - * Spills fluid, allowing to void up to 1.000mB per tick - * Might slightly alter the landscape, depending on whether the fluid was poisonous - * Viscous, flammable liquids cause oil spill blocks to appear - * Not all liquids have the appropriate pollution stats yet, the system is still subject to change - ## Changed -* After three quarters of a decade, three separate models, countless rebalances and hours of senseless yapping, the industrial generator has finally met its end. Suddenly, yet not unsurprisingly, on this here day the industrial generator has closed its eyes for the final time. It was a long and eventful journey, but as with all things in life, it too had to come to an end. - * And this is why we can't ever have anything nice -* Rebalanced glyphids - * We'll see how it goes - * Still prone to changes, there's still a few inconsistencies and some behavior has barely been tested it all, but I have consulted the almighty spreadsheet and it said "yeah it ok" -* Did some spring cleaning - * Removed cloud residue (looked horrible, allowed for weird dupes and made no sense overall) - * Bottlecap blocks now use a single block ID and metadata instead of using one ID per type. This change however will delete all existing bottlecap blocks in the world - * Removed the config option for silos (the option no longer works anyway since the new silos use the structure component system) - * Finally removed the deaerator and the large shredder - * Removed some of the ancient test blocks that haven't been needed in about 8 years - * Removed all the siege blocks, since siege mode will never be finished anyway - * Removed reinforced niter - * Removed a few other minor things that won't be mentioned because nobody's gonna even notice their absence anyway -* Retextured the laser detonator to look more like the old detonator, but keeping the 3D model -* Bedrock ores can now be customized in creative mode. Using a drillbit sets the tier, a fluid container sets the borefluid requirement and any other item sets the resource. - * The texture used is random, and the color applied is based on the auto detect system. The system doesn't work with layered items, so the resulting color won't be the same as naturally generated bedrock ore. The bedrock ore item in particular will always result in a white ore, no matter the type -* The polluting fluid trait is now recognized by machines, which means that pollution amounts now depend on the fluid used, not the machine - * This means that flare stacks are now significantly less polluting, assuming natural gas is burned - * Flare stacks and barrels now also respect the spilling tag, which means that simply venting the gas may cause poison pollution - * Hydrogen doesn't have the polluting tag, so hydrogen burning generators won't create soot anymore -* Compressing blood no longer creates oil, rather it makes heavy oil (250mB) -* Tier 2 pickaxes (bismuth and up) now use the large item renderer -* Added the metal block material to the sellafite conversion list of nuclear explosions -* Changed the mechanics for schottky particle diodes - * Instead of randomizing directions, schottky diodes will now split particles into "virtual particles" which take mutliple paths at once - * The particles will collapse as soon as the first virtual particle with a valid outcome reaches the end - * This change allows branching accelerators to be made, where the particle will always take the shortest path necessary to complete the operation. In essence, it allows a single accelerator to do any recipe, without requiring to power the entire accelerator, as only the path of the finishing particle will use up energy. -* The particle accelerator as well as the schottky particle diodes now have presentations explaining how they work -* Loot pools are now configurable. Loot is divided into different categories, and structures may generate things from certain categories. - * The config currently includes all items spawned in dungeon chests/crates/safes/lockers, excluding black book spawns, but also including the loot pool for red room pedestals - * Also added satellites as configurable loot pools. Yay! -* Pylons and wire connectors now use a texture instead of a solid colored wire - * The cable model has been simplified, being only a single face instead of three faces stuck inside each other at weird angles - * Cables now sag slightly more at long ranges -* There are now configs for toggling the startup message as well as the guidebook -* Cybercrab spawners will only start spawning as soon as a player is within 25 blocks of the spawner -* Improved inventory shift-clicking for the FEL, assembler, chemplant, large mining drill, gas centrifuge, shredder and turbofan -* Updated chinese localization +* Glyphid hive treasures, hive bone piles and bottlecap stashes now have configurable item pools +* Adjusted glyphid hive treasures, there's now more variety +* Launch code pieces can now be found in the "expensive" loot pool with low chance +* Removed Brandon ## Fixed -* WarTec should now be compatible again -* Fixed the "Hold shift for more info" line appearing on fluid info when shift is held, and disappearing otherwise -* Fixed smokestacks being able to void any fluid under certain conditions -* Fixed the hydrotreater only using half as much crude oil per operation as it should -* Fixed the old launchpad printing the wrong message when successfully launched via detonator -* Oil spills should no longer save, fixing an issue where chunkloaded derricks would constantly spill oil entities into unloaded chunks, causing them to get stuck -* Fixed schrabidium conversion happening outside the main crater instead of inside -* Fixed wood burning generator creating smoke even if no power is being generated -* Fixed one of the woodburner's ports being offset in certain orientations -* Fixed fog caching causing weird behavior with the sky color change in response to crater biomes (or lack thereof) -* Fixed "F1 for help" keybind not working on non-standard inventories such as the NEI item list -* Fixed pylon wire rendering having incorrect corrdinates for brightness checks -* Fixed dupe caused by shift clicking certain slots in the fusion reactor -* Fixed snowglobe rendering lighting setup leak causing blocks rendered after them in inventory to not have correct lighting +* Fixed satellite item pool not being registered, resulting in satellites only delivering things from the backup pool +* Fixed drill bits not correctly setting the tier when customizing a bedrock ore +* Fixed debugging display showing glyphid damage still being in the game diff --git a/gradle.properties b/gradle.properties index fc5237b73..1c7eda94d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4914 +mod_build_number=4915 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ff2393147..2f0eb4c1d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1092,7 +1092,7 @@ public class ModBlocks { public static Block turret_howard_damaged; public static Block turret_maxwell; public static Block turret_fritz; - public static Block turret_brandon; + //public static Block turret_brandon; public static Block turret_arty; public static Block turret_himars; public static Block turret_sentry; @@ -2147,7 +2147,7 @@ public class ModBlocks { turret_howard_damaged = new TurretHowardDamaged(Material.iron).setBlockName("turret_howard_damaged").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_rust"); turret_maxwell = new TurretMaxwell(Material.iron).setBlockName("turret_maxwell").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_fritz = new TurretFritz(Material.iron).setBlockName("turret_fritz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_brandon = new TurretBrandon(Material.iron).setBlockName("turret_brandon").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + //turret_brandon = new TurretBrandon(Material.iron).setBlockName("turret_brandon").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_arty = new TurretArty(Material.iron).setBlockName("turret_arty").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_himars = new TurretHIMARS(Material.iron).setBlockName("turret_himars").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_sentry = new TurretSentry().setBlockName("turret_sentry").setHardness(5.0F).setResistance(5.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2936,7 +2936,7 @@ public class ModBlocks { GameRegistry.registerBlock(turret_howard_damaged, turret_howard_damaged.getUnlocalizedName()); GameRegistry.registerBlock(turret_maxwell, turret_maxwell.getUnlocalizedName()); GameRegistry.registerBlock(turret_fritz, turret_fritz.getUnlocalizedName()); - GameRegistry.registerBlock(turret_brandon, turret_brandon.getUnlocalizedName()); + //GameRegistry.registerBlock(turret_brandon, turret_brandon.getUnlocalizedName()); GameRegistry.registerBlock(turret_arty, turret_arty.getUnlocalizedName()); GameRegistry.registerBlock(turret_himars, turret_himars.getUnlocalizedName()); GameRegistry.registerBlock(turret_sentry, turret_sentry.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 5782b6416..04341d2a2 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -79,7 +79,7 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I if(stack.getItem() == ModItems.drillbit) { EnumDrillType type = EnumUtil.grabEnumSafely(EnumDrillType.class, stack.getItemDamage()); - ore.tier = type.ordinal(); + ore.tier = type.tier; } else if(FluidContainerRegistry.getFluidType(stack) != Fluids.NONE) { FluidType type = FluidContainerRegistry.getFluidType(stack); int amount = FluidContainerRegistry.getFluidContent(stack, type); diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java index c1171c5c8..a3ac74fbf 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java @@ -336,13 +336,12 @@ public class EntityGlyphid extends EntityMob { /** Provides a direct entrypoint from outside to access the superclass' implementation because otherwise we end up wwith infinite recursion */ public boolean attackSuperclass(DamageSource source, float amount) { - NBTTagCompound data = new NBTTagCompound(); + /*NBTTagCompound data = new NBTTagCompound(); data.setString("type", "debug"); data.setInteger("color", 0x0000ff); data.setFloat("scale", 2.5F); data.setString("text", "" + (int) amount); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 2, posZ), new TargetPoint(dimension, posX, posY + 2, posZ, 50)); - + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 2, posZ), new TargetPoint(dimension, posX, posY + 2, posZ, 50));*/ return super.attackEntityFrom(source, amount); } diff --git a/src/main/java/com/hbm/itempool/ItemPool.java b/src/main/java/com/hbm/itempool/ItemPool.java index eb85f2f9f..0d4fd2d11 100644 --- a/src/main/java/com/hbm/itempool/ItemPool.java +++ b/src/main/java/com/hbm/itempool/ItemPool.java @@ -5,6 +5,7 @@ import static com.hbm.lib.HbmChestContents.weighted; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Random; import com.hbm.items.ModItems; @@ -12,10 +13,20 @@ import net.minecraft.block.Block; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandom; import net.minecraft.util.WeightedRandomChestContent; public class ItemPool { + public static void initialize() { + ItemPoolsLegacy.init(); + ItemPoolsComponent.init(); + ItemPoolsSingle.init(); + ItemPoolsRedRoom.init(); + ItemPoolsSatellite.init(); + ItemPoolsPile.init(); + } + public static HashMap pools = new HashMap(); public String name; @@ -47,13 +58,6 @@ public class ItemPool { return this; } - public static void initialize() { - ItemPoolsLegacy.init(); - ItemPoolsComponent.init(); - ItemPoolsSingle.init(); - ItemPoolsRedRoom.init(); - } - /** Grabs the specified item pool out of the pool map, will return the backup pool if the given pool is not present */ public static WeightedRandomChestContent[] getPool(String name) { ItemPool pool = pools.get(name); @@ -61,6 +65,13 @@ public class ItemPool { return pool.pool; } + public static ItemStack getStack(WeightedRandomChestContent[] pool, Random rand) { + WeightedRandomChestContent weighted = (WeightedRandomChestContent) WeightedRandom.getRandomItem(rand, pool); + ItemStack stack = weighted.theItemId.copy(); + stack.stackSize = weighted.theMinimumChanceToGenerateItem + rand.nextInt(weighted.theMaximumChanceToGenerateItem - weighted.theMinimumChanceToGenerateItem + 1); + return stack; + } + /** Should a pool be lost due to misconfiguration or otherwise, this pool will be returned in its place */ private static WeightedRandomChestContent[] backupPool = new WeightedRandomChestContent[] { weighted(Items.bread, 0, 1, 3, 10), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java index 54025813f..865c39464 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -131,7 +131,8 @@ public class ItemPoolsLegacy { weighted(ModItems.bomb_caller, 2, 1, 1, 1), weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), weighted(ModItems.journal_pip, 0, 1, 1, 1), - weighted(ModItems.journal_bj, 0, 1, 1, 1) + weighted(ModItems.journal_bj, 0, 1, 1, 1), + weighted(ModItems.launch_code_piece, 0, 1, 1, 1) }; }}; diff --git a/src/main/java/com/hbm/itempool/ItemPoolsPile.java b/src/main/java/com/hbm/itempool/ItemPoolsPile.java new file mode 100644 index 000000000..46bf7adca --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsPile.java @@ -0,0 +1,73 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import com.hbm.items.ModItems; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsPile { + + public static final String POOL_PILE_HIVE = "POOL_PILE_HIVE"; + public static final String POOL_PILE_BONES = "POOL_PILE_BONES"; + public static final String POOL_PILE_CAPS = "POOL_PILE_CAPS"; + + public static void init() { + + //items found in glyphid hives + new ItemPool(POOL_PILE_HIVE) {{ + this.pool = new WeightedRandomChestContent[] { + //Materials + weighted(Items.iron_ingot, 0, 1, 3, 10), + weighted(ModItems.ingot_steel, 0, 1, 2, 10), + weighted(ModItems.ingot_aluminium, 0, 1, 2, 10), + weighted(ModItems.scrap, 0, 3, 6, 10), + //Armor + weighted(ModItems.gas_mask_m65, 0, 1, 1, 10), + weighted(ModItems.steel_plate, 0, 1, 1, 5), + weighted(ModItems.steel_legs, 0, 1, 1, 5), + //Gear + weighted(ModItems.steel_pickaxe, 0, 1, 1, 5), + weighted(ModItems.steel_shovel, 0, 1, 1, 5), + //Weapons + weighted(ModItems.gun_lever_action, 0, 1, 1, 5), + weighted(ModItems.gun_bio_revolver, 0, 1, 1, 1), + weighted(ModItems.grenade_if_generic, 0, 1, 2, 5), + weighted(ModItems.ammo_20gauge, 0, 8, 8, 10), + weighted(ModItems.ammo_12gauge, 0, 4, 4, 10), + weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 6, 12, 10), + weighted(ModItems.ammo_grenade, 0, 1, 1, 2), + weighted(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 1, 1), + //Consumables + weighted(ModItems.bottle_nuka, 0, 1, 2, 20), + weighted(ModItems.bottle_quantum, 0, 1, 2, 1), + weighted(ModItems.definitelyfood, 0, 5, 12, 20), + weighted(ModItems.egg_glyphid, 0, 1, 3, 30), + weighted(ModItems.syringe_metal_stimpak, 0, 1, 1, 5), + weighted(ModItems.iv_blood, 0, 1, 1, 10), + weighted(Items.experience_bottle, 0, 1, 3, 5), + }; + }}; + + //items found in glyphid bone piles + new ItemPool(POOL_PILE_BONES) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.bone, 0, 1, 1, 10), + weighted(Items.rotten_flesh, 0, 1, 1, 5), + weighted(ModItems.biomass, 0, 1, 1, 2) + }; + }}; + + //bottlecap stashess + new ItemPool(POOL_PILE_CAPS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.cap_nuka, 0, 4, 4, 20), + weighted(ModItems.cap_quantum, 0, 4, 4, 3), + weighted(ModItems.cap_sparkle, 0, 4, 4, 1), + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolSatellite.java b/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java similarity index 98% rename from src/main/java/com/hbm/itempool/ItemPoolSatellite.java rename to src/main/java/com/hbm/itempool/ItemPoolsSatellite.java index c70a7def7..4c5eefd03 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolSatellite.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java @@ -8,7 +8,7 @@ import com.hbm.items.ModItems; import net.minecraft.init.Items; import net.minecraft.util.WeightedRandomChestContent; -public class ItemPoolSatellite { +public class ItemPoolsSatellite { public static final String POOL_SAT_MINER = "POOL_SAT_MINER"; public static final String POOL_SAT_LUNAR = "POOL_SAT_LUNAR"; //woona diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 088c4391d..40677cd5e 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4914)"; + public static final String VERSION = "1.0.27 BETA (4915)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 33710f98f..4f7856367 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1254,6 +1254,7 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.siege_emergency"); ignoreMappings.add("hbm:tile.siege_hole"); ignoreMappings.add("hbm:tile.machine_shredder_large"); + ignoreMappings.add("hbm:tile.turret_brandon"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java index ca4ad67af..4249dd8db 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java @@ -1,10 +1,10 @@ package com.hbm.saveddata.satellites; -import com.hbm.itempool.ItemPoolSatellite; +import com.hbm.itempool.ItemPoolsSatellite; public class SatelliteLunarMiner extends SatelliteMiner { static { - registerCargo(SatelliteLunarMiner.class, ItemPoolSatellite.POOL_SAT_LUNAR); + registerCargo(SatelliteLunarMiner.class, ItemPoolsSatellite.POOL_SAT_LUNAR); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java index 4b398e281..8481a54e9 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java @@ -1,6 +1,6 @@ package com.hbm.saveddata.satellites; -import com.hbm.itempool.ItemPoolSatellite; +import com.hbm.itempool.ItemPoolsSatellite; import com.hbm.util.WeightedRandomObject; import net.minecraft.nbt.NBTTagCompound; @@ -43,6 +43,6 @@ public class SatelliteMiner extends Satellite { } static { - registerCargo(SatelliteMiner.class, ItemPoolSatellite.POOL_SAT_MINER); + registerCargo(SatelliteMiner.class, ItemPoolsSatellite.POOL_SAT_MINER); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index 08bab11cb..f195414d3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -22,7 +22,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.WeightedRandom; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; @@ -240,10 +239,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent WeightedRandomChestContent[] cargo = ItemPool.getPool(satellite.getCargo()); for(int i = 0; i < itemAmount; i++) { - WeightedRandomChestContent weighted = (WeightedRandomChestContent) WeightedRandom.getRandomItem(worldObj.rand, cargo); - ItemStack stack = weighted.theItemId.copy(); - stack.stackSize = weighted.theMinimumChanceToGenerateItem + worldObj.rand.nextInt(weighted.theMaximumChanceToGenerateItem - weighted.theMinimumChanceToGenerateItem + 1); - addToInv(stack); + addToInv(ItemPool.getStack(cargo, worldObj.rand)); } } diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index 48ffe68d6..404375df6 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -4,6 +4,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsPile; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBookLore; import com.hbm.items.ItemAmmoEnums.AmmoFatman; @@ -79,12 +81,9 @@ public class LootGenerator { for(int i = -1; i <= 1; i++) { for(int j = -1; j <= 1; j++) { - int r = world.rand.nextInt(10); - Item cap = r < 9 ? ModItems.cap_nuka : ModItems.cap_quantum; - int count = world.rand.nextInt(5) + 3; for(int k = 0; k < count; k++) { - addItemWithDeviation(loot, world.rand, new ItemStack(cap, 4), i * 0.3125, k * 0.03125, j * 0.3125); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_CAPS), world.rand), i * 0.3125, k * 0.03125, j * 0.3125); } } } @@ -144,7 +143,7 @@ public class LootGenerator { int limit = world.rand.nextInt(3) + 3; for(int i = 0; i < limit; i++) { - addItemWithDeviation(loot, world.rand, new ItemStack(Items.bone), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_BONES), world.rand), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); } } } @@ -157,23 +156,7 @@ public class LootGenerator { int limit = world.rand.nextInt(3) + 3; for(int i = 0; i < limit; i++) { - - ItemStack stack = new ItemStack(ModItems.ammo_12gauge, 4); - - switch(world.rand.nextInt(11)) { - case 0: stack = new ItemStack(ModItems.steel_plate); break; - case 1: stack = new ItemStack(ModItems.gun_lever_action); break; - case 2: stack = new ItemStack(ModItems.grenade_if_generic); break; - case 3: - case 4: stack = new ItemStack(ModItems.bottle_nuka, 1 + world.rand.nextInt(2)); break; - case 5: - case 6: stack = new ItemStack(ModItems.ingot_steel, 3 + world.rand.nextInt(10)); break; - case 7: stack = new ItemStack(ModItems.steel_pickaxe); break; - case 8: stack = new ItemStack(ModItems.gas_mask_m65); break; - case 9: stack = new ItemStack(ModItems.ammo_20gauge, 8); break; - } - - addItemWithDeviation(loot, world.rand, stack, world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_HIVE), world.rand), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); } } } From 71cdc4c788e54dd01132d068f9ef224e794ac4cb Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 25 Mar 2024 21:10:20 +0100 Subject: [PATCH 289/376] FUCK --- src/main/java/com/hbm/itempool/ItemPoolsSatellite.java | 2 +- src/main/java/com/hbm/lib/HbmChestContents.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java b/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java index 4c5eefd03..92a464329 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java @@ -42,7 +42,7 @@ public class ItemPoolsSatellite { weighted(ModItems.crystal_plutonium, 0, 1, 1, 3), weighted(ModItems.crystal_trixite, 0, 1, 1, 1), weighted(ModItems.crystal_starmetal, 0, 1, 1, 1), - weighted(ModItems.crystal_lithium, 0, 2,1, 4) + weighted(ModItems.crystal_lithium, 0, 2 ,2, 4) }; }}; diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index c78e6f3a0..7c3c1f9f6 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -11,9 +11,9 @@ import net.minecraft.util.WeightedRandomChestContent; public class HbmChestContents { - public static WeightedRandomChestContent weighted(Item item, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(item, meta, min, max, weight); } - public static WeightedRandomChestContent weighted(Block block, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(Item.getItemFromBlock(block), meta, min, max, weight); } - public static WeightedRandomChestContent weighted(ItemStack item, int min, int max, int weight) { return new WeightedRandomChestContent(item, min, max, weight); } + public static WeightedRandomChestContent weighted(Item item, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(item, meta, Math.min(min, max), Math.max(min, max), weight); } + public static WeightedRandomChestContent weighted(Block block, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(Item.getItemFromBlock(block), meta, Math.min(min, max), Math.max(min, max), weight); } + public static WeightedRandomChestContent weighted(ItemStack item, int min, int max, int weight) { return new WeightedRandomChestContent(item, Math.min(min, max), Math.max(min, max), weight); } /** ITEMBOOKLORE SHIT */ //one downside of all this huge flexibility, make a wrapper if it's too annoying From e6bfea837aef72ae1d0054fee28a65030c8b5d0f Mon Sep 17 00:00:00 2001 From: CM436 Date: Wed, 27 Mar 2024 16:16:47 -0600 Subject: [PATCH 290/376] config option for cooling tower particles added a config option to disable the particles emitted by cooling towers when on "all" or "decreased" particle settings --- src/main/java/com/hbm/config/GeneralConfig.java | 4 +++- src/main/java/com/hbm/main/ClientProxy.java | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 282666a59..99eb1fed8 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -34,6 +34,7 @@ public class GeneralConfig { public static boolean enableFluidContainerCompat = true; public static boolean enableMOTD = true; public static boolean enableGuideBook = true; + public static boolean enableSteamParticles = true; public static int hintPos = 0; public static boolean enableExpensiveMode = false; @@ -98,7 +99,8 @@ public class GeneralConfig { enableFluidContainerCompat = config.get(CATEGORY_GENERAL, "1.35_enableFluidContainerCompat", true, "If enabled, fluid containers will be oredicted and interchangable in recipes with other mods' containers, as well as TrainCraft's diesel being considered a valid diesel canister.").getBoolean(true); enableMOTD = config.get(CATEGORY_GENERAL, "1.36_enableMOTD", true, "If enabled, shows the 'Loaded mod!' chat message as well as update notifications when joining a world").getBoolean(true); enableGuideBook = config.get(CATEGORY_GENERAL, "1.37_enableGuideBook", true, "If enabled, gives players the guide book when joining the world for the first time").getBoolean(true); - + enableSteamParticles = config.get(CATEGORY_GENERAL, "1.38_enableSteamParticles",true, "If disabled, auxiliary cooling towers and large cooling towers will not emit steam particles when in use.").getBoolean(true); + enableExpensiveMode = config.get(CATEGORY_GENERAL, "1.99_enableExpensiveMode", false, "It does what the name implies.").getBoolean(false); final String CATEGORY_528 = CommonConfig.CATEGORY_528; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index d0beabbc7..f0c090322 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -55,6 +55,7 @@ import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; +import com.hbm.config.GeneralConfig; import com.hbm.entity.cart.*; import com.hbm.entity.effect.*; import com.hbm.entity.grenade.*; @@ -126,11 +127,12 @@ import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.ReflectionHelper; +import scala.tools.nsc.backend.icode.analysis.TypeFlowAnalysis; -public class ClientProxy extends ServerProxy { + public class ClientProxy extends ServerProxy { public RenderInfoSystem theInfoSystem = new RenderInfoSystem(); - + @Override public void registerRenderInfo() { @@ -1742,7 +1744,7 @@ public class ClientProxy extends ServerProxy { } if("tower".equals(type)) { - if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean())) { + if(GeneralConfig.enableSteamParticles && (particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean()))) { ParticleCoolingTower fx = new ParticleCoolingTower(man, world, x, y, z); fx.setLift(data.getFloat("lift")); fx.setBaseScale(data.getFloat("base")); From f4c0ed3f4c89e93fce36301bd5ee482ce2a72639 Mon Sep 17 00:00:00 2001 From: CM436 Date: Thu, 28 Mar 2024 10:58:18 -0600 Subject: [PATCH 291/376] removed one line of code intellij added this thing and i have no clue what it does, removing it doesn't break anything --- src/main/java/com/hbm/main/ClientProxy.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index f0c090322..19efe888a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -127,7 +127,6 @@ import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.ReflectionHelper; -import scala.tools.nsc.backend.icode.analysis.TypeFlowAnalysis; public class ClientProxy extends ServerProxy { From 628a9474acf831ec7f1148b1fc6b49637a5cb700 Mon Sep 17 00:00:00 2001 From: CM436 Date: Thu, 28 Mar 2024 11:03:47 -0600 Subject: [PATCH 292/376] added whitespace why not --- src/main/java/com/hbm/config/GeneralConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 99eb1fed8..df431a227 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -35,6 +35,7 @@ public class GeneralConfig { public static boolean enableMOTD = true; public static boolean enableGuideBook = true; public static boolean enableSteamParticles = true; + public static int hintPos = 0; public static boolean enableExpensiveMode = false; From f1b444bac99e7fc0914c857bcd7ebed2e6a11ec3 Mon Sep 17 00:00:00 2001 From: CM436 Date: Thu, 28 Mar 2024 11:12:13 -0600 Subject: [PATCH 293/376] Revert "added whitespace" This reverts commit 628a9474acf831ec7f1148b1fc6b49637a5cb700. --- src/main/java/com/hbm/config/GeneralConfig.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index df431a227..99eb1fed8 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -35,7 +35,6 @@ public class GeneralConfig { public static boolean enableMOTD = true; public static boolean enableGuideBook = true; public static boolean enableSteamParticles = true; - public static int hintPos = 0; public static boolean enableExpensiveMode = false; From 20499eb80eedb5792c2cf672cbe53f726f2d3b35 Mon Sep 17 00:00:00 2001 From: CM436 Date: Thu, 28 Mar 2024 11:17:52 -0600 Subject: [PATCH 294/376] remove a single character most useless change ever but i'm new to this stuff and overly cautious of fucking things up --- src/main/java/com/hbm/main/ClientProxy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 19efe888a..bc4f5994a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -128,7 +128,7 @@ import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.ReflectionHelper; - public class ClientProxy extends ServerProxy { +public class ClientProxy extends ServerProxy { public RenderInfoSystem theInfoSystem = new RenderInfoSystem(); From b28d34d5542249bed320bf105fea2be6e96aea30 Mon Sep 17 00:00:00 2001 From: CM436 Date: Fri, 29 Mar 2024 11:19:45 -0600 Subject: [PATCH 295/376] fix indentation once again some random minor thing got changed by accident --- src/main/java/com/hbm/main/ClientProxy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index bc4f5994a..914978f35 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -131,7 +131,7 @@ import cpw.mods.fml.relauncher.ReflectionHelper; public class ClientProxy extends ServerProxy { public RenderInfoSystem theInfoSystem = new RenderInfoSystem(); - + @Override public void registerRenderInfo() { From 5fd71bdca403dc8ca73c4560c25ea7e87ad29786 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 29 Mar 2024 20:07:09 -0400 Subject: [PATCH 296/376] yeag --- src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java | 5 +---- .../com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java | 5 ++++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java index b001d1157..da54714cf 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java +++ b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java @@ -28,8 +28,5 @@ public class FoundrySlagtap extends FoundryOutlet { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityFoundrySlagtap(); } - - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return false; } - @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { return false; } - @Override public void printHook(Pre event, World world, int x, int y, int z) { } + } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java index ef09f7257..5d8fa4656 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java @@ -17,10 +17,13 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFoundrySlagtap extends TileEntity implements ICrucibleAcceptor { +public class TileEntityFoundrySlagtap extends TileEntityFoundryOutlet implements ICrucibleAcceptor { @Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { + if(filter != null && (filter != stack.material ^ invertFilter)) return false; + if(isClosed()) return false; + if(side != ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite()) return false; Vec3 start = Vec3.createVectorHelper(x + 0.5, y - 0.125, z + 0.5); Vec3 end = Vec3.createVectorHelper(x + 0.5, y + 0.125 - 15, z + 0.5); From 21495449e0d3aa45195ad049984e656ac1e905f0 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sat, 30 Mar 2024 14:11:53 -0400 Subject: [PATCH 297/376] Channel and caster tweaks --- .../hbm/blocks/machine/FoundryChannel.java | 4 ++-- .../blocks/machine/MachineStrandCaster.java | 3 +-- .../machine/TileEntityFoundryChannel.java | 2 +- .../TileEntityMachineStrandCaster.java | 24 ++++++++++++++----- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java index e692c3bf9..ae43ea2d9 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java @@ -128,10 +128,10 @@ public class FoundryChannel extends BlockContainer implements ICrucibleAcceptor Block b = world.getBlock(x + dir.offsetX, y, z + dir.offsetZ); int meta = world.getBlockMetadata(x + dir.offsetX, y, z + dir.offsetZ); - if(b == ModBlocks.foundry_outlet && meta == dir.ordinal()) + if((b == ModBlocks.foundry_outlet || b == ModBlocks.foundry_slagtap) && meta == dir.ordinal()) return true; - return b == ModBlocks.foundry_channel || b == ModBlocks.foundry_mold || b == ModBlocks.foundry_slagtap; + return b == ModBlocks.foundry_channel || b == ModBlocks.foundry_mold; } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java index 4a33bff5f..84adc2375 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -186,8 +186,7 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce if(cast.slots[0] == null) { text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast")); } else if(cast.slots[0].getItem() == ModItems.mold) { - ItemMold.Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]); - text.add(EnumChatFormatting.BLUE + mold.getTitle()); + text.add(EnumChatFormatting.BLUE + cast.getInstalledMold().getTitle()); } } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryChannel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryChannel.java index dd09a8a59..3156aada3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryChannel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryChannel.java @@ -110,7 +110,7 @@ public class TileEntityFoundryChannel extends TileEntityFoundryBase { @Override public int getCapacity() { - return MaterialShapes.INGOT.q(1); + return MaterialShapes.INGOT.q(2); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 23e86b847..71caf6423 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -192,7 +192,8 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase @Override public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { if(this.type != null && this.type != stack.material) return false; - return !(this.amount >= this.getCapacity() || getInstalledMold() == null); + int limit = this.getInstalledMold() != null ? this.getInstalledMold().getCost() * 9 : this.getCapacity(); + return !(this.amount >= limit || getInstalledMold() == null); } @Override @@ -211,7 +212,22 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } + @Override + public Mats.MaterialStack standardAdd(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + this.type = stack.material; + int limit = this.getInstalledMold() != null ? this.getInstalledMold().getCost() * 9 : this.getCapacity(); + if(stack.amount + this.amount <= limit) { + this.amount += stack.amount; + return null; + } + int required = limit - this.amount; + this.amount = limit; + + stack.amount -= required; + + return stack; + } @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { steam }; @@ -266,11 +282,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - - if(i == 0) { - return stack.getItem() == ModItems.mold; - } - + if(i == 0) return stack.getItem() == ModItems.mold; return false; } From 62d64085587e6a51b1f507d2a23276588bdab2e6 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 30 Mar 2024 22:05:46 +0100 Subject: [PATCH 298/376] the shell re-shellening --- changelog | 24 ++- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../com/hbm/blocks/bomb/LaunchPadLarge.java | 2 +- .../blocks/machine/MachinePWRController.java | 8 +- .../hbm/blocks/machine/ZirnoxDestroyed.java | 3 +- .../machine/pile/BlockGraphiteDrilled.java | 8 +- .../pile/BlockGraphiteDrilledBase.java | 3 +- .../java/com/hbm/crafting/ArmorRecipes.java | 4 +- .../com/hbm/crafting/SmeltingRecipes.java | 3 - .../java/com/hbm/crafting/ToolRecipes.java | 8 +- .../java/com/hbm/crafting/WeaponRecipes.java | 74 ++++---- .../entity/missile/EntityMissileTier0.java | 3 +- .../java/com/hbm/hazard/HazardRegistry.java | 9 - .../com/hbm/inventory/OreDictManager.java | 6 + src/main/java/com/hbm/inventory/OreNames.java | 2 + .../java/com/hbm/inventory/gui/GUIPWR.java | 6 +- .../inventory/material/MatDistribution.java | 5 - .../inventory/material/MaterialShapes.java | 2 + .../java/com/hbm/inventory/material/Mats.java | 14 +- .../inventory/recipes/AssemblerRecipes.java | 167 ++++++++---------- .../inventory/recipes/anvil/AnvilRecipes.java | 61 +++---- .../com/hbm/itempool/ItemPoolsComponent.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 85 +-------- .../java/com/hbm/items/machine/ItemMold.java | 10 +- .../java/com/hbm/items/special/WatzFuel.java | 59 ------- .../hbm/items/tool/ItemTitaniumFilter.java | 51 ------ .../java/com/hbm/main/CraftingManager.java | 57 +++--- src/main/java/com/hbm/main/MainRegistry.java | 35 +++- .../render/item/ItemRenderTransformer.java | 89 ++++++++++ .../machine/TileEntityPWRController.java | 25 ++- src/main/resources/assets/hbm/lang/de_DE.lang | 9 +- src/main/resources/assets/hbm/lang/en_US.lang | 6 + .../hbm/textures/blocks/pwr_heatsink.png | Bin 0 -> 288 bytes .../assets/hbm/textures/items/mold_pipe.png | Bin 0 -> 364 bytes .../assets/hbm/textures/items/mold_shell.png | Bin 0 -> 419 bytes .../assets/hbm/textures/items/pipe.png | Bin 0 -> 181 bytes .../assets/hbm/textures/items/shell.png | Bin 0 -> 262 bytes .../assets/hbm/textures/items/shell_base.png | Bin 0 -> 240 bytes 38 files changed, 400 insertions(+), 445 deletions(-) delete mode 100644 src/main/java/com/hbm/items/special/WatzFuel.java delete mode 100644 src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_heatsink.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_pipe.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_shell.png create mode 100644 src/main/resources/assets/hbm/textures/items/pipe.png create mode 100644 src/main/resources/assets/hbm/textures/items/shell.png create mode 100644 src/main/resources/assets/hbm/textures/items/shell_base.png diff --git a/changelog b/changelog index f20ee23ba..00bf6aad3 100644 --- a/changelog +++ b/changelog @@ -1,10 +1,20 @@ +## Added +* PWR Heatsink + * Increases the core heat capacity by 5% per block + * Makes cooling channels and heat exchangers slightly less effective (each heatsink counts as one quarter of a fuel rod in the heat calculation) + ## Changed -* Glyphid hive treasures, hive bone piles and bottlecap stashes now have configurable item pools -* Adjusted glyphid hive treasures, there's now more variety -* Launch code pieces can now be found in the "expensive" loot pool with low chance -* Removed Brandon +* All launch pad blocks can now accept items, not just ports +* Removed the old watz pellets and titanium filter +* Removed copper panels, cast copper plates now take its place in most use-cases +* Removed the steam batteries (why did we even have those?) +* Large and small shells have been merged into a single item which uses material autogen + * A copper variant for shells has been added which is used for artillery shells + * Shells are now only directly craftable via anvil, however they can be cast using the crucible as well +* Most instances of the expensive steel pipes as well as the decorative pipes which need tons of microcrafting have been replaced with a new pipe item + * The new pipes also use autogen, being available in different materials + * Some of the recipes that used the small shells now use pipes instead ## Fixed -* Fixed satellite item pool not being registered, resulting in satellites only delivering things from the backup pool -* Fixed drill bits not correctly setting the tier when customizing a bedrock ore -* Fixed debugging display showing glyphid damage still being in the game +* Fixed crash caused by invalid default loot pool configuration +* Fixeed enchantment glint not rendering on upscaled items like certain swords or tier 2 pickaxes diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 2f0eb4c1d..40edfda99 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -884,6 +884,7 @@ public class ModBlocks { public static Block pwr_control; public static Block pwr_channel; public static Block pwr_heatex; + public static Block pwr_heatsink; public static Block pwr_neutron_source; public static Block pwr_reflector; public static Block pwr_casing; @@ -2029,6 +2030,7 @@ public class ModBlocks { pwr_control = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); pwr_channel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_channel_top").setBlockName("pwr_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_channel_side"); pwr_heatex = new BlockGenericPWR(Material.iron).setBlockName("pwr_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatex"); + pwr_heatsink = new BlockGenericPWR(Material.iron).setBlockName("pwr_heatsink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatsink"); pwr_neutron_source = new BlockGenericPWR(Material.iron).setBlockName("pwr_neutron_source").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_neutron_source"); pwr_reflector = new BlockGenericPWR(Material.iron).setBlockName("pwr_reflector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_reflector"); pwr_casing = new BlockGenericPWR(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); @@ -3382,6 +3384,7 @@ public class ModBlocks { register(pwr_control); register(pwr_channel); register(pwr_heatex); + register(pwr_heatsink); register(pwr_neutron_source); register(pwr_reflector); register(pwr_casing); diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java index 72e8100a3..14ccd1574 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java @@ -26,7 +26,7 @@ public class LaunchPadLarge extends BlockDummyable implements IBomb { public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityLaunchPadLarge(); if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); - return null; + return new TileEntityProxyCombo().inventory(); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index e40163c91..4c9654659 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -200,7 +200,13 @@ public class MachinePWRController extends BlockContainer implements ITooltipProv } private boolean isValidCore(Block block) { - if(block == ModBlocks.pwr_fuel || block == ModBlocks.pwr_control || block == ModBlocks.pwr_channel || block == ModBlocks.pwr_heatex || block == ModBlocks.pwr_neutron_source) return true; + if(block == ModBlocks.pwr_fuel || + block == ModBlocks.pwr_control || + block == ModBlocks.pwr_channel || + block == ModBlocks.pwr_heatex || + block == ModBlocks.pwr_heatsink || + block == ModBlocks.pwr_neutron_source) + return true; return false; } diff --git a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java index 62f397474..73526c494 100644 --- a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java +++ b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; @@ -106,7 +107,7 @@ public class ZirnoxDestroyed extends BlockDummyable { public ArrayList getDrops(World world, int x, int y, int z, int meta, int fortune) { ArrayList drops = new ArrayList(); drops.add(new ItemStack(ModBlocks.concrete_smooth, 6)); - drops.add(new ItemStack(ModBlocks.deco_pipe_quad, 4)); + drops.add(new ItemStack(ModItems.pipe, 4, Mats.MAT_STEEL.id)); drops.add(new ItemStack(ModBlocks.steel_grate, 2)); drops.add(new ItemStack(ModItems.debris_metal, 6)); drops.add(new ItemStack(ModItems.debris_graphite, 2)); diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java index 46d724787..309f8b2d5 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine.pile; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import api.hbm.block.IToolable; @@ -31,7 +32,7 @@ public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase implements IT if(checkInteraction(world, x, y, z, meta, player, ModItems.cell_tritium, ModBlocks.block_graphite_tritium)) return true; //if you want to i guess? if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_detector, ModBlocks.block_graphite_detector)) return true; if(meta >> 2 != 1) { - if(checkInteraction(world, x, y, z, meta | 4, player, ModItems.hull_small_aluminium, ModBlocks.block_graphite_drilled)) return true; + if(checkInteraction(world, x, y, z, meta | 4, player, ModItems.shell, ModBlocks.block_graphite_drilled)) return true; if(checkInteraction(world, x, y, z, 0, player, ModItems.ingot_graphite, ModBlocks.block_graphite)) return true; } } @@ -43,6 +44,9 @@ public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase implements IT private boolean checkInteraction(World world, int x, int y, int z, int meta, EntityPlayer player, Item item, Block block) { if(player.getHeldItem().getItem() == item) { + + if(item == ModItems.shell && player.getHeldItem().getItemDamage() != Mats.MAT_ALUMINIUM.id) return false; //shitty workaround + player.getHeldItem().stackSize--; world.setBlock(x, y, z, block, meta, 3); @@ -67,7 +71,7 @@ public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase implements IT world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, cfg, 3); world.playSoundEffect(x + 0.5, y + 1.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 0.85F); - BlockGraphiteRod.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.hull_small_aluminium)); + BlockGraphiteRod.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.shell, 1, Mats.MAT_ALUMINIUM.id)); } return true; diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 58ec7bce2..efe9764b6 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockFlammable; import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; @@ -114,7 +115,7 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements ArrayList drops = new ArrayList(); drops.add(new ItemStack(ModItems.ingot_graphite, 8)); if((meta & 4) == 4) - drops.add(new ItemStack(ModItems.hull_small_aluminium, 1)); + drops.add(new ItemStack(ModItems.shell, 1, Mats.MAT_ALUMINIUM.id)); if(getInsertedItem() != null) drops.add(new ItemStack(getInsertedItem(meta), 1)); return drops; diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 0ffd281b3..eb356565b 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -84,7 +84,7 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_plate, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_legs, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_helmet, 1), new Object[] { "PWP", "PBP", "FSF", 'P', ModItems.plate_armor_fau, 'W', new ItemStack(Blocks.wool, 1, 14), 'B', ModItems.starmetal_helmet, 'F', ModItems.gas_mask_filter, 'S', ModItems.pipes_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_helmet, 1), new Object[] { "PWP", "PBP", "FSF", 'P', ModItems.plate_armor_fau, 'W', new ItemStack(Blocks.wool, 1, 14), 'B', ModItems.starmetal_helmet, 'F', ModItems.gas_mask_filter, 'S', STEEL.pipe() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_plate, 1), new Object[] { "MCM", "PBP", "PSP", 'M', ModItems.motor_desh, 'C', ModItems.demon_core_closed, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_plate, 'S', ModBlocks.ancient_scrap }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_legs, 1), new Object[] { "MPM", "PBP", "PDP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_legs, 'D', ModItems.billet_polonium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_boots, 1), new Object[] { "PDP", "PBP", 'P', ModItems.plate_armor_fau, 'D', ModItems.billet_polonium, 'B', ModItems.starmetal_boots }); @@ -125,7 +125,7 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_fly, 1), new Object[] { "ACA", "TLT", "D D", 'A', AL.plate(), 'C', ModItems.circuit_targeting_tier1, 'T', ModItems.tank_steel, 'L', Items.leather, 'D', ModItems.thruster_small }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_break, 1), new Object[] { "ICI", "TJT", "I I", 'C', ModItems.circuit_targeting_tier2, 'T', ModItems.ingot_dura_steel, 'J', ModItems.jetpack_fly, 'I', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_vector, 1), new Object[] { "TCT", "MJM", "B B", 'C', ModItems.circuit_targeting_tier3, 'T', ModItems.tank_steel, 'J', ModItems.jetpack_break, 'M', ModItems.motor, 'B', DURA.bolt() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_boost, 1), new Object[] { "PCP", "DJD", "PAP", 'C', ModItems.circuit_targeting_tier4, 'P', BIGMT.plate(), 'D', DESH.ingot(), 'J', ModItems.jetpack_vector, 'A', ModItems.board_copper }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_boost, 1), new Object[] { "PCP", "DJD", "PAP", 'C', ModItems.circuit_targeting_tier4, 'P', BIGMT.plate(), 'D', DESH.ingot(), 'J', ModItems.jetpack_vector, 'A', CU.plateCast() }); //Hazmat CraftingManager.addRecipeAuto(new ItemStack(ModItems.hazmat_helmet, 1), new Object[] { "EEE", "EIE", " P ", 'E', ModItems.hazmat_cloth, 'I', KEY_ANYPANE, 'P', IRON.plate() }); diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index e3da94819..1be935833 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -7,7 +7,6 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumPlantType; -import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemHot; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; @@ -177,8 +176,6 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 1.0F); GameRegistry.addSmelting(ModItems.blade_meteorite, ItemHot.heatUp(new ItemStack(ModItems.blade_meteorite)), 1.0F); GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 1.0F); - - GameRegistry.addSmelting(ModItems.battery_steam, ItemBattery.getFullBattery(ModItems.battery_steam), 1.0F); GameRegistry.addSmelting(new ItemStack(ModItems.scrap_plastic, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.ingot_polymer), 0.1F); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index b0fac7d30..10e8ebba5 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -91,7 +91,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mese_axe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_desh, 'D', ModItems.powder_dineutronium, 'A', ModItems.plate_paa, 'P', ModItems.chlorophyte_axe, 'F', ModItems.shimmer_handle }); //Chainsaws - CraftingManager.addRecipeAuto(ItemToolAbilityFueled.getEmptyTool(ModItems.chainsaw), new Object[] { "CCH", "BBP", "CCE", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModBlocks.chain, 'E', ModItems.canister_empty }); + CraftingManager.addRecipeAuto(ItemToolAbilityFueled.getEmptyTool(ModItems.chainsaw), new Object[] { "CCH", "BBP", "CCE", 'H', STEEL.shell(), 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModBlocks.chain, 'E', ModItems.canister_empty }); //Misc CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_stopper, 1), new Object[] { "I", "S", "S", 'I', EUPH.ingot(), 'S', KEY_STICK }); @@ -112,8 +112,8 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.bat, 1), new Object[] { "P", "P", "S", 'S', STEEL.plate(), 'P', KEY_PLANKS }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.bat_nail, 1), new Object[] { ModItems.bat, STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.golf_club, 1), new Object[] { "IP", " P", " P", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipe_rusty, 1), new Object[] { "II", " I", " I", 'I', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipe_lead, 1), new Object[] { "II", " I", " I", 'I', PB.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipe_rusty, 1), new Object[] { "II", " I", " I", 'I', IRON.pipe() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipe_lead, 1), new Object[] { "II", " I", " I", 'I', PB.pipe() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ullapool_caber, 1), new Object[] { "ITI", " S ", " S ", 'I', IRON.plate(), 'T', Blocks.tnt, 'S', KEY_STICK }); //Utility @@ -158,7 +158,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.chemistry_set_boron), new Object[] { "GIG", "GCG", 'G', ModBlocks.glass_boron, 'I', STEEL.ingot(), 'C', CO.ingot() }); CraftingManager.addRecipeAuto(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), new Object[] { "CC ", " I ", "CCC", 'C', CU.plate528(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(ItemBlowtorch.getEmptyTool(ModItems.acetylene_torch), new Object[] { "SS ", " PS", " T ", 'S', STEEL.plate528(), 'P', ANY_PLASTIC.ingot(), 'T', ModItems.tank_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.boltgun), new Object[] { "DPS", " RD", " D ", 'D', DURA.ingot(), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'R', RUBBER.ingot(), 'S', ModItems.hull_small_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.boltgun), new Object[] { "DPS", " RD", " D ", 'D', DURA.ingot(), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'R', RUBBER.ingot(), 'S', STEEL.shell() }); //Bobmazon CraftingManager.addShapelessAuto(new ItemStack(ModItems.bobmazon_materials), new Object[] { Items.book, Items.gold_nugget, Items.string }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 9a3dc6a33..96222fc06 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -41,7 +41,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_stability_15_thin, 1), new Object[] { "A A", "PSP", "PSP", 'A', AL.plate(), 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold }); //Missile thrusters - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_thruster_15_balefire_large_rad, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.board_copper, 'T', ModItems.mp_thruster_15_balefire_large }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_thruster_15_balefire_large_rad, 1), new Object[] { "CCC", "CTC", "CCC", 'C', CU.plateCast(), 'T', ModItems.mp_thruster_15_balefire_large }); //Missile fuselages CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_kerosene }); @@ -69,12 +69,12 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', ModItems.mechanism_rifle_1, 'S', ModBlocks.steel_scaffold, 'C', ModItems.circuit_red_copper, 'D', ModItems.crt_display }); //Guns - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_rpg, 1), new Object[] { "SSW", " MW", 'S', ModItems.hull_small_steel, 'W', IRON.plate(), 'M', ModItems.mechanism_launcher_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "SSS", " MW", 'S', ModItems.hull_small_steel, 'W', CU.plate(), 'M', ModItems.mechanism_launcher_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_karl, 1), new Object[] { "SSW", " MW", 'S', ModItems.hull_small_steel, 'W', ALLOY.plate(), 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "SSS", "SSS", "CM ", 'S', ModItems.hull_small_steel, 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', STEEL.bolt() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "HHR", "WLW", 'H', ModItems.hull_small_aluminium, 'R', ModItems.mechanism_rifle_1, 'W', KEY_LOG, 'L', ModItems.mechanism_launcher_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_rpg, 1), new Object[] { "SSW", " MW", 'S', STEEL.shell(), 'W', IRON.plate(), 'M', ModItems.mechanism_launcher_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "SSS", " MW", 'S', STEEL.shell(), 'W', CU.plate(), 'M', ModItems.mechanism_launcher_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_karl, 1), new Object[] { "SSW", " MW", 'S', STEEL.shell(), 'W', ALLOY.plate(), 'M', ModItems.mechanism_launcher_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "SSS", "SSS", "CM ", 'S', STEEL.pipe(), 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.mechanism_launcher_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', STEEL.shell(), 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', STEEL.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "HHR", "WLW", 'H', AL.shell(), 'R', ModItems.mechanism_rifle_1, 'W', KEY_LOG, 'L', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "SSW", "CMW", 'S', STEEL.plate(), 'W', TI.plate(), 'C', ModItems.circuit_red_copper, 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 4), new Object[] { "SS ", "STI", " IR", 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt), 'I', AL.plate(), 'R', REDSTONE.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver, 1), new Object[] { "SSM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'M', ModItems.mechanism_revolver_1 }); @@ -92,16 +92,16 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare, 1), new Object[] { "SEM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'E', ModItems.powder_power, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare2, 1), new Object[] { "SSM", "RRW", 'S', OreDictManager.getReflector(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_special }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bio_revolver, 1), new Object[] { "SSM", "BTW", 'S', STEEL.plate(), 'M', ModItems.mechanism_revolver_2, 'B', B.ingot(), 'T', W.bolt(), 'W', KEY_LOG }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "RWC", "HHT", "RLC", 'R', RUBBER.ingot(), 'W', ModItems.wrench, 'C', CU.plate(), 'H', ModItems.hull_small_steel, 'T', ModItems.tank_steel, 'L', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "SSI", "IIM", "WPH", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', ModItems.wire_aluminium, 'H', ModItems.hull_small_steel, 'P', Item.getItemFromBlock(Blocks.piston), 'M', ModItems.mechanism_launcher_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "RWC", "HHT", "RLC", 'R', RUBBER.ingot(), 'W', ModItems.wrench, 'C', CU.plate(), 'H', STEEL.shell(), 'T', ModItems.tank_steel, 'L', ModItems.mechanism_launcher_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "SSI", "IIM", "WPH", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', ModItems.wire_aluminium, 'H', STEEL.shell(), 'P', Item.getItemFromBlock(Blocks.piston), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mirv, 1), new Object[] { "LLL", "WFW", "SSS", 'S', STEEL.plate(), 'L', PB.plate(), 'W', ModItems.wire_gold, 'F', ModItems.gun_fatman }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ANY_RUBBER.ingot(), 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1, AmmoFatman.BALEFIRE.ordinal()), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1, AmmoFatman.BALEFIRE.ordinal()), new Object[] { " S ", "EBE", " S ", 'S', STEEL.shell(), 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', IRON.plate(), 'I', STEEL.plate(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', STEEL.ingot(), 'S', ANY_PLASTIC.ingot(), 'G', ModItems.mechanism_launcher_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', STEEL.shell(), 'I', STEEL.ingot(), 'S', ANY_PLASTIC.ingot(), 'G', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uboinik, 1), new Object[] { "IIM", "SPW", 'P', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'S', KEY_STICK, 'M', ModItems.mechanism_revolver_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_supershotgun, 1), new Object[] { "BBM", "BBM", "AWL", 'B', ModItems.hull_small_steel, 'M', ModItems.mechanism_rifle_2, 'A', ModItems.plate_dalekanium, 'W', ModItems.wire_gold, 'L', KEY_LOG }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_supershotgun, 1), new Object[] { "BBM", "BBM", "AWL", 'B', STEEL.pipe(), 'M', ModItems.mechanism_rifle_2, 'A', ModItems.plate_dalekanium, 'W', ModItems.wire_gold, 'L', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_ks23, 1), new Object[] { "PPM", "SWL", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'W', ModItems.wire_tungsten, 'L', KEY_LOG }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_sauer, 1), new Object[] { ModItems.ducttape, ModItems.gun_ks23, Blocks.lever, ModItems.gun_ks23 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456, 1), new Object[] { "PBB", "ACC", "PRY", 'P', STEEL.plate(), 'R', ModItems.redcoil_capacitor, 'A', ModItems.coil_advanced_alloy, 'B', ModItems.battery_generic, 'C', ModItems.coil_advanced_torus, 'Y', ModItems.mechanism_special }); @@ -116,7 +116,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', COAL.dust(), 'P', P_RED.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', Fluids.DIESEL.getDict(1000) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 24), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.canister_napalm }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { "WPP", "SCT", "WMI", 'W', ModItems.wire_gold, 'P', ModItems.pipes_steel, 'S', ModItems.hull_small_steel, 'C', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'M', ModItems.mechanism_launcher_1, 'I', STEEL.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { "WSS", "SCT", "WMI", 'W', ModItems.wire_gold, 'S', STEEL.pipe(), 'C', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'M', ModItems.mechanism_launcher_1, 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator, 1), new Object[] { "SSS", "IWL", "LMI", 'S', STEEL.plate(), 'I', IRON.plate(), 'L', Items.leather, 'M', ModItems.mechanism_launcher_1, 'W', ModItems.wire_aluminium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', KNO.dust(), 'P', Items.snowball }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.powder_ice }); @@ -147,17 +147,17 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', W.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi_saturnite }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_m2, 1), new Object[] { " PI", "BBM", " PI", 'P', STEEL.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_2, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', ANY_PLASTIC.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', STEEL.pipe(), 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_m2, 1), new Object[] { " PI", "BBM", " PI", 'P', STEEL.plate(), 'B', STEEL.pipe(), 'M', ModItems.mechanism_rifle_2, 'I', STEEL.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', STEEL.pipe(), 'B', STEEL.block(), 'I', ANY_PLASTIC.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', STAR.ingot(), 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ANY_RUBBER.ingot(), 'W', ModItems.wire_aluminium }); //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', STEEL.bolt(), 'T', ModItems.tank_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', STEEL.bolt(), 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', STEEL.pipe(), 'B', STEEL.bolt(), 'T', ModItems.tank_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', STEEL.bolt(), 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', STEEL.pipe(), 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', STEEL.pipe(), 'A', AL.pipe(), 'P', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lunatic_marksman), new Object[] { " GN", "SSM", " A", 'G', KEY_ANYPANE, 'N', ModItems.powder_nitan_mix, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'A', ANY_RESISTANTALLOY.plateCast() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun), new Object[] { "CCC", "SSM", " P", 'C', ModBlocks.capacitor_copper, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 0), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() }); @@ -213,7 +213,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2), new Object[] { "I", "C", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 1), new Object[] { " I ", "GCG", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', ModItems.hull_small_steel, 'E', ANY_HIGHEXPLOSIVE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', STEEL.shell(), 'E', ANY_HIGHEXPLOSIVE.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ANY_RUBBER.ingot(), 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) }); CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44); @@ -230,8 +230,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly_du, 1), new Object[] { " B ", "EEE", " S ", 'B', ModItems.folly_bullet_du, 'E', ModBlocks.det_charge, 'S', ModItems.folly_shell }); //Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 1), new Object[] { "T", "C", "G", 'T', ModItems.ball_dynamite, 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium, });// I got tired of changing *all* of them, the stock one is always the first one anyway - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 2), new Object[] { "T", "C", "G", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 1), new Object[] { "T", "C", "G", 'T', ModItems.ball_dynamite, 'G', ModItems.rocket_fuel, 'C', STEEL.shell() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 2), new Object[] { "T", "C", "G", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.rocket_fuel, 'C', STEEL.shell() }); CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.HE), new Object[] { "G", "R", 'G', ANY_PLASTICEXPLOSIVE.ingot(), 'R', ModItems.ammo_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.INCENDIARY), new Object[] { "G", "R", 'G', P_RED.dust(), 'R', ModItems.ammo_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.PHOSPHORUS), new Object[] { "G", "R", 'G', P_WHITE.ingot(), 'R', ModItems.ammo_rocket }); @@ -243,10 +243,10 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR), new Object[] { " P ", "NRN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'R', ModItems.ammo_rocket }); FluidType[] chainsawTypes = new FluidType[] {Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.BIOFUEL}; - for(FluidType type : chainsawTypes) CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', type.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + for(FluidType type : chainsawTypes) CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', type.getDict(1000), 'H', STEEL.shell(), 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); //Stinger Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", " S ", " F ", 'C', ModItems.circuit_aluminium, 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', ModItems.hull_small_aluminium); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", " S ", " F ", 'C', ModItems.circuit_aluminium, 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', STEEL.shell()); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE), new Object[] { "S", "R", 'S', ANY_PLASTICEXPLOSIVE.ingot(), 'R', ModItems.ammo_stinger_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.INCENDIARY), new Object[] { "S", "R", 'S', P_RED.dust(), 'R', ModItems.ammo_stinger_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.NUCLEAR), new Object[] { "RPR", "PSP", "RPR", 'R', ModItems.neutron_reflector, 'P', PU239.nugget(), 'S', ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE) }); @@ -263,15 +263,15 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.NUCLEAR), new Object[] { " P ", "GIG", " P ", 'G', ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.HE), 'I', ModItems.neutron_reflector, 'P', PU239.nugget() }); CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.FINNED), new Object[] { "G", "R", 'G', Items.feather, 'R', ModItems.ammo_grenade }); CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.KAMPF), new Object[] { "G", "R", 'G', ModItems.ammo_rocket, 'R', ModItems.ammo_grenade }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.LEADBURSTER), new Object[] { "LCL", "CHC", "LML", 'L', ModItems.pellet_buckshot, 'C', ANY_SMOKELESS.dust(), 'H', ModItems.hull_small_aluminium, 'M', ModItems.motor }); + CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.LEADBURSTER), new Object[] { "LCL", "CHC", "LML", 'L', ModItems.pellet_buckshot, 'C', ANY_SMOKELESS.dust(), 'H', AL.shell(), 'M', ModItems.motor }); //240mm Shells - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.ballistite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 6), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.cordite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.ballistite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(6, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', Items.gunpowder, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.ballistite, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 6), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.cordite, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', Items.gunpowder, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.ballistite, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(6, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'H', STEEL.shell(), 'C', CU.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.APFSDS_T), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', Items.gunpowder, 'C', CU.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.APFSDS_T), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', ModItems.ballistite, 'C', CU.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(6, Ammo240Shell.APFSDS_T), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', CU.ingot() }); @@ -281,7 +281,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9), new Object[] { " P ", "NSN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'S', ModItems.ammo_shell.stackFromEnum(Ammo240Shell.EXPLOSIVE) }); //Artillery Shells - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 0), new Object[] { "CIC", "CSC", "CCC", 'C', ModItems.cordite, 'I', IRON.block(), 'S', ModItems.hull_small_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 0), new Object[] { "CIC", "CSC", "CCC", 'C', ModItems.cordite, 'I', IRON.block(), 'S', CU.shell() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.ball_dynamite, 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 2), new Object[] { "TTT", "TST", "TTT", 'T', ModItems.ball_tnt, 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 5), new Object[] { "D", "S", "D", 'D', P_WHITE.ingot(), 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); @@ -289,7 +289,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 3), new Object[] { " P ", "NSN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 6), new Object[] { "DSD", "SCS", "DSD", 'D', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 3), 'C', ModBlocks.det_cord }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_arty, 1, 4), new Object[] { new ItemStack(ModItems.ammo_arty, 1, 2), ModItems.boy_bullet, ModItems.boy_target, ModItems.boy_shielding, ModItems.circuit_red_copper, ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 8), new Object[] { " I ", " S ", "CCC", 'C', ModItems.cordite, 'I', ModItems.sphere_steel, 'S', ModItems.hull_small_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 8), new Object[] { " I ", " S ", "CCC", 'C', ModItems.cordite, 'I', ModItems.sphere_steel, 'S', CU.shell() }); //DGK Belts CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_dgk, 1), new Object[] { "LLL", "GGG", "CCC", 'L', PB.plate(), 'G', ModItems.ballistite, 'C', CU.ingot() }); @@ -310,10 +310,10 @@ public class WeaponRecipes { CraftingManager.addShapelessAuto(ModItems.ammo_nuke.stackFromEnum(6, AmmoFatman.SAFE), new Object[] { ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE) }); //MIRV - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke, 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_LOW), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); + CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke, 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', STEEL.shell() }); + CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_LOW), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', STEEL.shell() }); + CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', STEEL.shell() }); + CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', STEEL.shell() }); //since the milk part of the recipe isn't really present in the MIRV's effect, it might as well be replaced with something more sensible, i.e. duct tape CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SPECIAL), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ), 'B', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE), 'M', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java index 7ea0f7b6f..655e6cdf1 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -12,6 +12,7 @@ import com.hbm.entity.effect.EntityEMPBlast; import com.hbm.entity.logic.EntityNukeExplosionMK3; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoFatman; @@ -32,7 +33,7 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { List list = new ArrayList(); list.add(new ItemStack(ModItems.wire_aluminium, 4)); list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); + list.add(new ItemStack(ModItems.shell, 2, Mats.MAT_ALUMINIUM.id)); list.add(new ItemStack(ModItems.ducttape, 1)); list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); return list; diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 4a3516112..5e60b802b 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -260,15 +260,6 @@ public class HazardRegistry { registerOtherWaste(waste_schrabidium, wst * billet * 15F); registerOtherWaste(waste_zfb_mox, wst * billet * 5F); - registerOtherFuel(pellet_schrabidium, sa326 * ingot * 5, wst * ingot * 100, true); - registerOtherFuel(pellet_hes, saf * ingot * 5, wst * ingot * 75, true); - registerOtherFuel(pellet_mes, saf * ingot * 5, wst * ingot * 50, true); - registerOtherFuel(pellet_les, saf * ingot * 5, wst * ingot * 20, false); - registerOtherFuel(pellet_beryllium, 0F, 10F, false); - registerOtherFuel(pellet_neptunium, np237 * ingot * 5, wst * ingot * 10, false); - registerOtherFuel(pellet_lead, 0F, 15F, false); - registerOtherFuel(pellet_advanced, 0F, 20F, false); - registerOtherFuel(plate_fuel_u233, u233 * ingot, wst * ingot * 13F, false); registerOtherFuel(plate_fuel_u235, u235 * ingot, wst * ingot * 10F, false); registerOtherFuel(plate_fuel_mox, mox * ingot, wst * ingot * 16F, false); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 81875b605..195ca3537 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -524,6 +524,8 @@ public class OreDictManager { if(mat.shapes.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.SHELL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.SHELL.name() + name, new ItemStack(ModItems.shell, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.PIPE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.PIPE.name() + name, new ItemStack(ModItems.pipe, 1, mat.id)); } } @@ -676,6 +678,8 @@ public class OreDictManager { public String plateWelded() { return PLATEWELDED + mats[0]; } public String heavyComp() { return HEAVY_COMPONENT + mats[0]; } public String wireDense() { return WIREDENSE + mats[0]; } + public String shell() { return SHELL + mats[0]; } + public String pipe() { return PIPE + mats[0]; } public String billet() { return BILLET + mats[0]; } public String block() { return BLOCK + mats[0]; } public String ore() { return ORE + mats[0]; } @@ -690,6 +694,8 @@ public class OreDictManager { public String[] crystals() { return appendToAll(CRYSTAL); } public String[] plates() { return appendToAll(PLATE); } public String[] plateCasts() { return appendToAll(PLATECAST); } + public String[] shells() { return appendToAll(SHELL); } + public String[] pipes() { return appendToAll(PIPE); } public String[] billets() { return appendToAll(BILLET); } public String[] blocks() { return appendToAll(BLOCK); } public String[] ores() { return appendToAll(ORE); } diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java index 8c487a0e6..3ca3a98a7 100644 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ b/src/main/java/com/hbm/inventory/OreNames.java @@ -17,6 +17,8 @@ public class OreNames { public static final String PLATE = "plate"; public static final String PLATECAST = "plateTriple"; //cast plates are solid plates made from 3 ingots, turns out that's literally just a GT triple plate public static final String PLATEWELDED = "plateSextuple"; + public static final String SHELL = "shell"; + public static final String PIPE = "ntmpipe"; public static final String WIREDENSE = "wireDense"; public static final String BILLET = "billet"; public static final String BLOCK = "block"; diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index 338f4be99..d60c3bece 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -62,7 +62,7 @@ public class GUIPWR extends GuiInfoContainer { super.drawScreen(x, y, interp); this.drawCustomInfoStat(x, y, guiLeft + 115, guiTop + 31, 18, 18, x, y, new String[] { "Core: " + String.format(Locale.US, "%,d", controller.coreHeat) + " / " + String.format(Locale.US, "%,d", controller.coreHeatCapacity) + " TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format(Locale.US, "%,d", controller.hullHeat) + " / " + String.format(Locale.US, "%,d", controller.hullHeatCapacity) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format(Locale.US, "%,d", controller.hullHeat) + " / " + String.format(Locale.US, "%,d", controller.hullHeatCapacityBase) + " TU" }); this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { ((int) (controller.progress * 100 / controller.processTime)) + "%" }); this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 53, 54, 4, x, y, "Control rod level: " + (100 - controller.rodLevel) + "%"); @@ -110,7 +110,7 @@ public class GUIPWR extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(controller.hullHeat > controller.hullHeatCapacity * 0.8 || controller.coreHeat > controller.coreHeatCapacity * 0.8) + if(controller.hullHeat > controller.hullHeatCapacityBase * 0.8 || controller.coreHeat > controller.coreHeatCapacity * 0.8) drawTexturedModalRect(guiLeft + 147, guiTop, 176, 14, 26, 26); int p = (int) (controller.progress * 33 / controller.processTime); @@ -123,7 +123,7 @@ public class GUIPWR extends GuiInfoContainer { //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); GaugeUtil.drawSmoothGauge(guiLeft + 124, guiTop + 40, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity, 5, 2, 1, 0x7F0000); - GaugeUtil.drawSmoothGauge(guiLeft + 160, guiTop + 40, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity, 5, 2, 1, 0x7F0000); + GaugeUtil.drawSmoothGauge(guiLeft + 160, guiTop + 40, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacityBase, 5, 2, 1, 0x7F0000); if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index dd55dc119..f05dbc927 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -55,11 +55,6 @@ public class MatDistribution extends SerializableRecipe { registerEntry(ModItems.stamp_steel_flat, MAT_STEEL, INGOT.q(3)); registerEntry(ModItems.stamp_titanium_flat, MAT_TITANIUM, INGOT.q(3)); registerEntry(ModItems.stamp_obsidian_flat, MAT_OBSIDIAN, INGOT.q(3)); - registerEntry(ModItems.hull_small_steel, MAT_STEEL, INGOT.q(2)); - registerEntry(ModItems.hull_small_aluminium, MAT_ALUMINIUM, INGOT.q(2)); - registerEntry(ModItems.hull_big_steel, MAT_STEEL, INGOT.q(6)); - registerEntry(ModItems.hull_big_aluminium, MAT_ALUMINIUM, INGOT.q(6)); - registerEntry(ModItems.hull_big_titanium, MAT_TITANIUM, INGOT.q(6)); registerEntry(ModItems.pipes_steel, MAT_STEEL, BLOCK.q(3)); registerEntry(ModItems.wire_aluminium, MAT_ALUMINIUM, WIRE.q(1)); registerEntry(ModItems.wire_copper, MAT_COPPER, WIRE.q(1)); diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index ebb34cfcb..14429207c 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -23,6 +23,8 @@ public class MaterialShapes { public static final MaterialShapes PLATE = new MaterialShapes(INGOT.quantity, "plate"); public static final MaterialShapes CASTPLATE = new MaterialShapes(INGOT.quantity * 3, "plateTriple"); public static final MaterialShapes WELDEDPLATE = new MaterialShapes(INGOT.quantity * 6, "plateSextuple"); + public static final MaterialShapes SHELL = new MaterialShapes(INGOT.quantity * 4, "shell"); + public static final MaterialShapes PIPE = new MaterialShapes(INGOT.quantity * 3, "ntmpipe"); public static final MaterialShapes QUART = new MaterialShapes(162); public static final MaterialShapes BLOCK = new MaterialShapes(INGOT.quantity * 9, "block"); public static final MaterialShapes HEAVY_COMPONENT = new MaterialShapes(CASTPLATE.quantity * 256, "componentHeavy"); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 170821e43..8bddda851 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -54,7 +54,7 @@ public class Mats { public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1); - public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(CASTPLATE, WELDEDPLATE); + public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(PIPE, CASTPLATE, WELDEDPLATE); public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(DENSEWIRE, CASTPLATE); public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000); public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D); @@ -94,11 +94,11 @@ public class Mats { public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT); public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK); @@ -113,11 +113,11 @@ public class Mats { public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE); //Alloys - public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(BOLT, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK); public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 5b0446224..ae0982584 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -81,12 +81,12 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 4), new OreDictStack(TI.plate528(), 4), new ComparableStack(ModItems.motor, 1), }, 100); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); - makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); + makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new OreDictStack(CU.plateCast(), 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); makeRecipe(new ComparableStack(ModItems.levitation_unit, 1), new AStack[] {new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.coil_tungsten, 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.nugget_schrabidium, 2), },100); makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack(TI.plate(), 6), },100); makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); - makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 2), new OreDictStack(TI.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.rocket_fuel, 8), new ComparableStack(ModItems.circuit_targeting_tier1, 1), }, 200); + makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new OreDictStack(AL.shell(), 2), new OreDictStack(TI.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.rocket_fuel, 8), new ComparableStack(ModItems.circuit_targeting_tier1, 1), }, 200); makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit_targeting_tier2) },100); makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3) },150); makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4) },200); @@ -104,13 +104,13 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); makeRecipe(new ComparableStack(ModItems.missile_stealth, 1), new AStack[] { new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(CU.plate(), 10), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_gold), new OreDictStack(STEEL.bolt(), 32) },1200); makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel), new ComparableStack(ModItems.circuit_gold, 1) },600); - makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.board_copper, 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); - makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_small_steel, 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); + makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new OreDictStack(CU.plateCast(), 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); + makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.magnetron, 6), new ComparableStack(ModItems.coil_advanced_torus, 2), new ComparableStack(ModItems.circuit_gold, 6), new OreDictStack(RUBBER.ingot(), 6), new ComparableStack(Items.diamond, 1), },400); makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.magnetron, 12), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModItems.wire_red_copper, 16), new ComparableStack(ModItems.coil_gold, 3), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(Items.diamond, 1), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModItems.board_copper, 24), new ComparableStack(ModItems.circuit_targeting_tier5, 2), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); + makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(CU.plateCast(), 24), new ComparableStack(ModItems.circuit_targeting_tier5, 2), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 48), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.circuit_targeting_tier6, 2), },1000); - makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); + makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); makeRecipe(new ComparableStack(ModItems.chopper_head, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_glass, 2), new ComparableStack(ModBlocks.fwatz_computer, 1), new OreDictStack(CMB.ingot(), 22), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), },300); @@ -122,19 +122,11 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.circuit_aluminium, 1), new AStack[] {new ComparableStack(ModItems.circuit_raw, 1), },50); makeRecipe(new ComparableStack(ModItems.circuit_copper, 1), new AStack[] {new ComparableStack(ModItems.circuit_aluminium, 1), new ComparableStack(ModItems.wire_copper, 4), new OreDictStack(NETHERQUARTZ.dust(), 1), new OreDictStack(CU.plate(), 1), },100); makeRecipe(new ComparableStack(ModItems.circuit_red_copper, 1), new AStack[] {new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(GOLD.dust(), 1), new ComparableStack(ModItems.plate_polymer, 1), },150); - makeRecipe(new ComparableStack(ModItems.crt_display, 8), new AStack[] {new OreDictStack(AL.dust(), 2), new ComparableStack(Blocks.glass_pane, 2), new ComparableStack(ModItems.wire_tungsten, 4), new ComparableStack(ModItems.hull_small_steel, 1) }, 100); + makeRecipe(new ComparableStack(ModItems.crt_display, 8), new AStack[] {new OreDictStack(AL.dust(), 2), new ComparableStack(Blocks.glass_pane, 2), new ComparableStack(ModItems.wire_tungsten, 4), new OreDictStack(STEEL.shell(), 1) }, 100); makeRecipe(new ComparableStack(ModItems.tritium_deuterium_cake, 1), new AStack[] {new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.cell_tritium, 2), new OreDictStack(LI.ingot(), 4), },150); makeRecipe(new ComparableStack(ModItems.pellet_cluster, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new ComparableStack(Blocks.tnt, 1), }, 50); makeRecipe(new ComparableStack(ModItems.pellet_buckshot, 1), new AStack[] {new OreDictStack(PB.nugget(), 6), }, 50); makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 3), new ComparableStack(ModItems.wire_tungsten, 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); - makeRecipe(new ComparableStack(ModItems.pellet_schrabidium, 1), new AStack[] {new OreDictStack(SA326.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_hes, 1), new AStack[] {new ComparableStack(ModItems.ingot_hes, 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_mes, 1), new AStack[] {new ComparableStack(ModItems.ingot_schrabidium_fuel, 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_les, 1), new AStack[] {new ComparableStack(ModItems.ingot_les, 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_beryllium, 1), new AStack[] {new OreDictStack(BE.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_neptunium, 1), new AStack[] {new OreDictStack(NP237.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_lead, 1), new AStack[] {new OreDictStack(PB.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_advanced, 1), new AStack[] {new OreDictStack(DESH.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); makeRecipe(new ComparableStack(ModItems.upgrade_template, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 1), new OreDictStack(IRON.plate528(), 4), new OreDictStack(CU.plate528(), 2), new ComparableStack(ModItems.wire_copper, 6), },100); makeRecipe(new ComparableStack(ModItems.upgrade_speed_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(MINGRADE.dust(), 4), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModItems.upgrade_speed_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_1, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); @@ -157,12 +149,11 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_1, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 8), new ComparableStack(ModItems.circuit_tantalium, 16), }, 300); makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 16), new OreDictStack(KEY_CIRCUIT_BISMUTH), }, 500); makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200); - makeRecipe(new ComparableStack(ModItems.titanium_filter, 1), new AStack[] {new OreDictStack(PB.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_tungsten, 4), new OreDictStack(TI.plate(), 6), new OreDictStack(U238.ingot(), 2), },200); makeRecipe(new ComparableStack(ModItems.part_lithium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_beryllium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_carbon, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(COAL.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_copper, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(CU.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_plutonium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); + makeRecipe(new ComparableStack(ModItems.part_plutonium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(PU.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), }, 60); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); @@ -173,7 +164,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit_copper, 1), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate528(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60); + makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new OreDictStack(STEEL.shell(), 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); @@ -182,18 +173,18 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200); makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400); - makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.shell(), 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); + makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); + makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.shell(), 4), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 1) : new OreDictStack(STEEL.heavyComp(), 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); - makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp(), 2), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); + makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); @@ -208,16 +199,16 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300); makeRecipe(new ComparableStack(ModBlocks.fwatz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new OreDictStack(DIAMOND.dust(), 8), new OreDictStack(MAGTUNG.dust(), 12), new OreDictStack(DESH.dust(), 8), new ComparableStack(ModItems.upgrade_power_3, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new OreDictStack(KEY_CIRCUIT_BISMUTH, 8)},450); makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier3, 1), new ComparableStack(ModItems.wire_gold, 6), new OreDictStack("dyeGray", 6), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 1), new ComparableStack(ModItems.wire_aluminium, 6), new OreDictStack("dyeBlue", 4), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 2), new ComparableStack(ModItems.wire_copper, 6), new OreDictStack("dyeYellow", 6), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_mike, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_aluminium, 4), new OreDictStack(AL.plate(), 3), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new ComparableStack(ModItems.wire_gold, 18), new OreDictStack("dyeLightGray", 12), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_tsar, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_tri_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 5), new ComparableStack(ModItems.wire_gold, 24), new ComparableStack(ModItems.wire_tungsten, 12), new OreDictStack("dyeBlack", 6), },600); - makeRecipe(new ComparableStack(ModBlocks.nuke_prototype, 1), new AStack[] {new ComparableStack(ModItems.dysfunctional_reactor, 1), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.ingot_euphemium, 3), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModItems.wire_gold, 16), },500); - makeRecipe(new ComparableStack(ModBlocks.nuke_fleija, 1), new AStack[] {new ComparableStack(ModItems.hull_small_aluminium, 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.wire_gold, 8), new OreDictStack("dyeWhite", 4), },400); - makeRecipe(new ComparableStack(ModBlocks.nuke_solinium, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new ComparableStack(ModItems.wire_gold, 10), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack("dyeGray", 4), },400); - makeRecipe(new ComparableStack(ModBlocks.nuke_n2, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 12), new ComparableStack(ModItems.pipes_steel, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new OreDictStack("dyeBlack", 12), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.wire_gold, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new OreDictStack("dyeGray", 6), },600, ModItems.journal_pip, ModItems.journal_bj); - makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.wire_gold, 12), new OreDictStack("dyeGray", 4), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 1), new ComparableStack(ModItems.wire_aluminium, 6), new OreDictStack("dyeBlue", 4), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 2), new ComparableStack(ModItems.wire_copper, 6), new OreDictStack("dyeYellow", 6), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_mike, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(AL.shell(), 4), new OreDictStack(AL.plate(), 3), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new ComparableStack(ModItems.wire_gold, 18), new OreDictStack("dyeLightGray", 12), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_tsar, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_tri_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 5), new ComparableStack(ModItems.wire_gold, 24), new ComparableStack(ModItems.wire_tungsten, 12), new OreDictStack("dyeBlack", 6), },600); + makeRecipe(new ComparableStack(ModBlocks.nuke_prototype, 1), new AStack[] {new ComparableStack(ModItems.dysfunctional_reactor, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.ingot_euphemium, 3), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModItems.wire_gold, 16), },500); + makeRecipe(new ComparableStack(ModBlocks.nuke_fleija, 1), new AStack[] {new OreDictStack(AL.shell(), 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.wire_gold, 8), new OreDictStack("dyeWhite", 4), },400); + makeRecipe(new ComparableStack(ModBlocks.nuke_solinium, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new ComparableStack(ModItems.wire_gold, 10), new OreDictStack(STEEL.pipe(), 16), new OreDictStack("dyeGray", 4), },400); + makeRecipe(new ComparableStack(ModBlocks.nuke_n2, 1), new AStack[] {new OreDictStack(STEEL.shell(), 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 12), new OreDictStack(STEEL.pipe(), 16), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new OreDictStack("dyeBlack", 12), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.wire_gold, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new OreDictStack("dyeGray", 6), },600, ModItems.journal_pip, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.wire_gold, 12), new OreDictStack("dyeGray", 4), },300); makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.wire_gold, 6), },250); makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); @@ -258,36 +249,32 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.solinium_core, 1), new AStack[] {new OreDictStack(SA327.nugget(), 9), new OreDictStack(EUPH.nugget(), 1), },400); makeRecipe(new ComparableStack(ModItems.solinium_propellant, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.plate_polymer, 6), new ComparableStack(ModItems.wire_tungsten, 6), new ComparableStack(ModItems.biomass_compressed, 4), },350); makeRecipe(new ComparableStack(ModItems.schrabidium_hammer, 1), new AStack[] {new OreDictStack(SA326.block(), 35), new ComparableStack(ModItems.billet_yharonite, 128), new ComparableStack(Items.nether_star, 3), new ComparableStack(ModItems.fragment_meteorite, 512), },1000); - makeRecipe(new ComparableStack(ModItems.component_limiter, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(TI.plate(), 18), new ComparableStack(ModItems.plate_desh, 12), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.circuit_gold, 8), new ComparableStack(ModItems.circuit_schrabidium, 4), new OreDictStack(STAR.ingot(), 14), new ComparableStack(ModItems.plate_dalekanium, 5), new ComparableStack(ModItems.powder_magic, 16), new ComparableStack(ModBlocks.fwatz_computer, 3), },2500); - makeRecipe(new ComparableStack(ModItems.component_emitter, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 3), new ComparableStack(ModItems.hull_big_titanium, 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(PB.plate(), 24), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.pipes_steel, 8), new ComparableStack(ModItems.circuit_gold, 12), new ComparableStack(ModItems.circuit_schrabidium, 8), new OreDictStack(STAR.ingot(), 26), new ComparableStack(ModItems.powder_magic, 48), new ComparableStack(ModBlocks.fwatz_computer, 2), new ComparableStack(ModItems.crystal_xen, 1), },2500); - makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600); - makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600); - makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600); + makeRecipe(new ComparableStack(ModItems.component_emitter, 1), new AStack[] {new OreDictStack(STEEL.shell(), 3), new OreDictStack(AL.shell(), 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(PB.plate(), 24), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.pipes_steel, 8), new ComparableStack(ModItems.circuit_gold, 12), new ComparableStack(ModItems.circuit_schrabidium, 8), new OreDictStack(STAR.ingot(), 26), new ComparableStack(ModItems.powder_magic, 48), new ComparableStack(ModBlocks.fwatz_computer, 2), new ComparableStack(ModItems.crystal_xen, 1), },2500); makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_radar_large, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 6), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.coil_copper, 32), new ComparableStack(ModItems.crt_display, 4), },600); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); - makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); + makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); - makeRecipe(new ComparableStack(ModItems.mp_thruster_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.arc_electrode, 4), },100); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 6), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 4), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.arc_electrode, 4), },100); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 1), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 6), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 2), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.coil_tungsten, 3), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid_hexdecuple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.coil_tungsten, 6), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.pwr_fuel, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.board_copper, 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 16), new OreDictStack(STEEL.plate(), 12), new OreDictStack(DESH.ingot(), 8), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 12), new OreDictStack(STEEL.plate(), 8), new OreDictStack(DESH.ingot(), 6), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 4), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 1), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.pwr_fuel, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new OreDictStack(CU.plateCast(), 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 16), new OreDictStack(STEEL.plate(), 12), new OreDictStack(DESH.ingot(), 8), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 12), new OreDictStack(STEEL.plate(), 8), new OreDictStack(DESH.ingot(), 6), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 8), new OreDictStack(DURA.ingot(), 16), new OreDictStack(STEEL.plate(), 12), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multi, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 12), new OreDictStack(DURA.ingot(), 18), new OreDictStack(STEEL.plate(), 12), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multier, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 16), new OreDictStack(DURA.ingot(), 20), new OreDictStack(STEEL.plate(), 12), },500); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 3), },100); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(AL.plate(), 3), },100); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.board_copper, 3), },100); + makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(CU.plateCast(), 3), },100); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_long_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 6), },200); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_long_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(TI.plate(), 24), new OreDictStack(AL.plate(), 6), },200); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(STEEL.plate(), 9), },300); @@ -302,7 +289,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(TI.plate(), 64), new OreDictStack(AL.plate(), 16), },600); makeRecipe(new ComparableStack(ModItems.mp_warhead_10_he, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },100); makeRecipe(new ComparableStack(ModItems.mp_warhead_10_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new OreDictStack(P_RED.dust(), 3), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_buster, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new ComparableStack(ModBlocks.det_charge, 1), new ComparableStack(ModBlocks.det_cord, 4), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },100); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_buster, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new ComparableStack(ModBlocks.det_charge, 1), new ComparableStack(ModBlocks.det_cord, 4), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },100); makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(PU239.ingot(), 1), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear_large, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(AL.plate(), 4), new OreDictStack(PU239.ingot(), 2), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },300); makeRecipe(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.powder_magic, 12), new ComparableStack(ModItems.bucket_mud, 1), },100, ModItems.journal_pip); @@ -312,8 +299,8 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },400); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60, ModItems.journal_bj); - makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new ComparableStack(ModItems.hull_big_titanium, 32), new ComparableStack(ModItems.hull_big_steel, 18), new OreDictStack(FIBER.ingot(), 64), },600, ModItems.journal_bj); - makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new OreDictStack(ANY_RUBBER.ingot(), 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new OreDictStack(TI.shell(), 32), new OreDictStack(STEEL.shell(), 18), new OreDictStack(FIBER.ingot(), 64), },600, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new OreDictStack(ANY_RUBBER.ingot(), 32), new OreDictStack(AL.shell(), 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600, ModItems.journal_bj); makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600); @@ -449,11 +436,11 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.turbine_titanium, 3), new ComparableStack(ModItems.generator_steel, 1), new ComparableStack(ModItems.bolt_compound, 3), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.circuit_aluminium, 1), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_chungus, 1), new AStack[] { - new ComparableStack(ModItems.hull_big_steel, 6), + new OreDictStack(STEEL.shell(), 6), !exp ? new OreDictStack(STEEL.plateWelded(), 16) : new OreDictStack(STEEL.heavyComp(), 3), !exp ? new OreDictStack(TI.plate528(), 12) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), @@ -462,7 +449,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.flywheel_beryllium, 1), new ComparableStack(ModItems.generator_steel, 10), new ComparableStack(ModItems.bolt_compound, 16), - new ComparableStack(ModItems.pipes_steel, 3) + new OreDictStack(STEEL.pipe(), 16) }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_condenser_powered, 1), new AStack[] { @@ -470,7 +457,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 4), !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 3), new ComparableStack(ModItems.motor_desh, 3), - new ComparableStack(ModItems.pipes_steel, 4), + new OreDictStack(STEEL.pipe(), 24), new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4) }, 600); @@ -493,25 +480,25 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] { new ComparableStack(ModBlocks.machine_lithium_battery, 3), new ComparableStack(ModBlocks.hadron_coil_neodymium, 8), - new ComparableStack(ModItems.wire_advanced_alloy, 96), + new OreDictStack(ALLOY.wireDense(), 16), !exp ? new OreDictStack(STEEL.ingot(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new OreDictStack(STEEL.plate528(), 32), new OreDictStack(AL.plate528(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), - new ComparableStack(ModItems.board_copper, 8), + new OreDictStack(CU.plateCast(), 8), new ComparableStack(ModItems.circuit_red_copper, 8), new ComparableStack(ModItems.circuit_gold, 3), }, 600); makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] { - !exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp(), 1), - new ComparableStack(ModBlocks.steel_scaffold, 4), - new OreDictStack(ANY_CONCRETE.any(), 16), - new ComparableStack(ModBlocks.deco_pipe_quad, 8), - new ComparableStack(ModItems.motor, 4), + !exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1), + new OreDictStack(STEEL.pipe(), 8), new OreDictStack(B.ingot(), 8), new OreDictStack(GRAPHITE.ingot(), 16), + new OreDictStack(RUBBER.ingot(), 16), + new OreDictStack(ANY_CONCRETE.any(), 16), + new ComparableStack(ModBlocks.steel_scaffold, 4), new ComparableStack(ModItems.circuit_red_copper, 3) }, 600); @@ -615,7 +602,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_targeting_tier3, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 3), new ComparableStack(ModItems.mechanism_rifle_2, 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1) @@ -626,7 +613,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_targeting_tier2, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 3), new ComparableStack(ModItems.mechanism_rifle_1, 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1) @@ -638,7 +625,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 1), new ComparableStack(ModItems.motor_desh, 1), - new ComparableStack(ModItems.hull_small_steel, 3), + new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.mechanism_launcher_2, 1), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1) @@ -662,7 +649,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), - new ComparableStack(ModItems.hull_small_steel, 8), + new OreDictStack(STEEL.shell(), 8), new ComparableStack(ModItems.mechanism_launcher_2, 1), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1) @@ -674,7 +661,7 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 2), - new ComparableStack(ModItems.pipes_steel, 2), + new OreDictStack(STEEL.pipe(), 10), new ComparableStack(ModItems.mechanism_rifle_2, 2), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1) @@ -685,7 +672,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), @@ -697,7 +684,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_targeting_tier3, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.mechanism_launcher_1, 1), new ComparableStack(ModBlocks.barrel_steel, 1), new ComparableStack(ModItems.crt_display, 1) @@ -708,7 +695,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(DURA.ingot(), 32), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit_targeting_tier4, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.mechanism_launcher_2, 3), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1) @@ -798,7 +785,7 @@ public class AssemblerRecipes extends SerializableRecipe { !exp ? new OreDictStack(STEEL.plate528(), 8) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.tank_steel, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.crystal_diamond, 1) }, 400); makeRecipe(new ComparableStack(Item.getItemFromBlock(ModBlocks.machine_fel), 1), new AStack[] { @@ -836,7 +823,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(KEY_ANYPANE, 64), new ComparableStack(ModItems.motor, 18), new OreDictStack(W.bolt(), 16), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.circuit_gold, 3) }, 400); @@ -845,11 +832,11 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), - new ComparableStack(ModItems.hull_big_steel, 12), + new OreDictStack(STEEL.shell(), 12), new ComparableStack(ModItems.tank_steel, 8), new ComparableStack(ModItems.motor_desh, 4), new ComparableStack(ModItems.coil_tungsten, 24), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.circuit_gold, 3) }, 400); @@ -879,7 +866,7 @@ public class AssemblerRecipes extends SerializableRecipe { !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.sphere_steel, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) }, 200); @@ -888,8 +875,8 @@ public class AssemblerRecipes extends SerializableRecipe { !exp ? new OreDictStack(CU.plate528(), 8) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), - new ComparableStack(ModItems.hull_big_steel, 3), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.shell(), 3), + new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_red_copper, 3) }, 200); @@ -898,8 +885,8 @@ public class AssemblerRecipes extends SerializableRecipe { !exp ? new OreDictStack(CU.plateCast(), 4) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), - new ComparableStack(ModItems.hull_big_steel, 2), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.shell(), 2), + new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit_red_copper, 3) }, 200); @@ -907,7 +894,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_compressor, 1), new AStack[] { new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(CU.plate528(), 4), - new ComparableStack(ModItems.hull_big_steel, 2), + new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_red_copper, 1) }, 200); @@ -965,7 +952,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.KORL)), new AStack[] { new ComparableStack(ModItems.cap_korl, 128) }, 10); if(!GeneralConfig.enable528) { - makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); + makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new OreDictStack(STEEL.pipe(), 12), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), }, 400, ModItems.journal_pip); makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150); makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300); @@ -1002,7 +989,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(AL.plate528(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), - new ComparableStack(ModItems.board_copper, 8), + new OreDictStack(CU.plateCast(), 8), new ComparableStack(ModItems.circuit_red_copper, 8), new ComparableStack(ModItems.circuit_gold, 3), new ComparableStack(ModItems.circuit_tantalium, 50), @@ -1078,7 +1065,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_cracker), new AStack[] { new ComparableStack(ModBlocks.steel_scaffold, 16), - !exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp()), + !exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp()), new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(NB.ingot(), 2), @@ -1100,7 +1087,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(NB.ingot(), 2), new OreDictStack(AL.plate528(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 4), - new ComparableStack(ModItems.hull_big_steel, 3), + new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.catalyst_clay, 4), new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.tank_steel, 2) @@ -1112,7 +1099,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(DURA.ingot(), 10), new OreDictStack(RUBBER.ingot(), 4), new OreDictStack(PB.plate528(), 12), - new ComparableStack(ModItems.board_copper, 4), + new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.thermo_element, 10), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.tank_steel, 3) diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index d6d50cf56..e4cc0a9a5 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -6,11 +6,16 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.OreNames; + import static com.hbm.inventory.OreDictManager.*; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; import com.hbm.items.ItemAmmoEnums.*; @@ -111,18 +116,11 @@ public class AnvilRecipes { new ItemStack(ModItems.stamp_titanium_flat), new ItemStack(ModItems.stamp_obsidian_flat) })); - smithingRecipes.add(new AnvilSmithingMold(8, new ComparableStack(ModItems.hull_small_steel), new ItemStack[] { - new ItemStack(ModItems.hull_small_aluminium), - new ItemStack(ModItems.hull_small_steel) - })); - smithingRecipes.add(new AnvilSmithingMold(9, new ComparableStack(ModItems.hull_big_steel), new ItemStack[] { - new ItemStack(ModItems.hull_big_steel), - new ItemStack(ModItems.hull_big_aluminium), - new ItemStack(ModItems.hull_big_titanium) - })); - smithingRecipes.add(new AnvilSmithingMold(10, new OreDictStack(IRON.ingot(), 9), new OreDictStack("ingot", 9))); - smithingRecipes.add(new AnvilSmithingMold(11, new OreDictStack(IRON.plate(), 9), new OreDictStack("plate", 9))); - smithingRecipes.add(new AnvilSmithingMold(12, new OreDictStack(IRON.block()), new OreDictStack("block"))); + smithingRecipes.add(new AnvilSmithingMold(8, new OreDictStack(STEEL.shell()), new OreDictStack(OreNames.SHELL))); + smithingRecipes.add(new AnvilSmithingMold(9, new OreDictStack(STEEL.pipe()), new OreDictStack(OreNames.PIPE))); + smithingRecipes.add(new AnvilSmithingMold(10, new OreDictStack(IRON.ingot(), 9), new OreDictStack("ingot", 9))); + smithingRecipes.add(new AnvilSmithingMold(11, new OreDictStack(IRON.plate(), 9), new OreDictStack("plate", 9))); + smithingRecipes.add(new AnvilSmithingMold(12, new OreDictStack(IRON.block()), new OreDictStack("block"))); smithingRecipes.add(new AnvilSmithingMold(13, new ComparableStack(ModItems.pipes_steel), new ItemStack[] {new ItemStack(ModItems.pipes_steel)})); smithingRecipes.add(new AnvilSmithingMold(14, new ComparableStack(ModItems.casing_357), new ItemStack[] {new ItemStack(ModItems.casing_357)})); smithingRecipes.add(new AnvilSmithingMold(15, new ComparableStack(ModItems.casing_44), new ItemStack[] {new ItemStack(ModItems.casing_44)})); @@ -192,15 +190,13 @@ public class AnvilRecipes { new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModBlocks.depth_brick)}, new AnvilOutput(new ItemStack(ModBlocks.depth_dnt))).setTier(1916169)); - constructionRecipes.add(new AnvilConstructionRecipe( - new OreDictStack(CU.plate(), 4), - new AnvilOutput(new ItemStack(ModItems.board_copper))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new OreDictStack(STEEL.plate(), 2), - new AnvilOutput(new ItemStack(ModItems.hull_small_steel))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new OreDictStack(AL.plate(), 2), - new AnvilOutput(new ItemStack(ModItems.hull_small_aluminium))).setTier(1)); + for(NTMMaterial mat : Mats.orderedList) if(mat.shapes.contains(MaterialShapes.SHELL)) constructionRecipes.add(new AnvilConstructionRecipe( + new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 4), + new AnvilOutput(new ItemStack(ModItems.shell, 1, mat.id))).setTier(1)); + for(NTMMaterial mat : Mats.orderedList) if(mat.shapes.contains(MaterialShapes.PIPE)) constructionRecipes.add(new AnvilConstructionRecipe( + new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 3), + new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.coil_copper, 2), new AnvilOutput(new ItemStack(ModItems.coil_copper_torus))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); @@ -225,7 +221,7 @@ public class AnvilRecipes { new AStack[] { new ComparableStack(Blocks.stonebrick, 4), new ComparableStack(ModItems.ingot_firebrick, 4), - new ComparableStack(ModItems.board_copper, 2) + new OreDictStack(CU.plate(), 4) }, new AnvilOutput(new ItemStack(ModBlocks.machine_difurnace_off))).setTier(1)); @@ -243,14 +239,15 @@ public class AnvilRecipes { new AStack[] { new OreDictStack(KEY_COBBLESTONE, 8), new OreDictStack(KEY_PLANKS, 16), - new OreDictStack(IRON.ingot(), 4), - new OreDictStack(CU.plate(), 8) + new OreDictStack(CU.plate(), 8), + new OreDictStack(PB.pipe(), 2) }, new AnvilOutput(new ItemStack(ModBlocks.pump_steam))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(Blocks.stonebrick, 8), new OreDictStack(STEEL.plate(), 16), + new OreDictStack(PB.pipe(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_copper, 1) }, new AnvilOutput(new ItemStack(ModBlocks.pump_electric))).setTier(3)); @@ -340,7 +337,7 @@ public class AnvilRecipes { new AStack[] { new ComparableStack(ModBlocks.reinforced_stone, 16), new OreDictStack(STEEL.plate(), 12), - new ComparableStack(ModItems.hull_small_steel, 2), + new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.gear_large, 1) }, new AnvilOutput(new ItemStack(ModBlocks.machine_steam_engine))).setTier(2)); @@ -431,8 +428,8 @@ public class AnvilRecipes { new ComparableStack(ModItems.sulfur, 8), new OreDictStack(STEEL.plate528(), 4), new OreDictStack(AL.plate528(), 2), - new ComparableStack(ModItems.hull_small_steel, 4), - new ComparableStack(ModItems.board_copper, 1), + new OreDictStack(STEEL.shell(), 4), + new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.turbine_titanium, 1), new ComparableStack(ModItems.circuit_aluminium, 1) }, @@ -441,11 +438,11 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.deuterium_filter, 2), - new ComparableStack(ModItems.hull_big_steel, 5), + new OreDictStack(STEEL.shell(), 5), new ComparableStack(ModBlocks.concrete_smooth, 8), new ComparableStack(ModBlocks.concrete_asbestos, 4), new ComparableStack(ModBlocks.steel_scaffold, 16), - new ComparableStack(ModBlocks.deco_pipe_quad, 12), + new OreDictStack(STEEL.pipe(), 12), new OreDictStack(Fluids.SOURGAS.getDict(1_000), 8), }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_tower))).setTier(4)); @@ -1002,7 +999,7 @@ public class AnvilRecipes { new ComparableStack(ModBlocks.rbmk_rod_reasim), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), new AnvilOutput(new ItemStack(ModItems.ingot_zirconium, 4)), - new AnvilOutput(new ItemStack(ModItems.hull_small_steel, 2)) + new AnvilOutput(new ItemStack(ModItems.shell, 2, Mats.MAT_STEEL.id)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_rod_reasim_mod), new AnvilOutput[] { @@ -1028,7 +1025,7 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_rod), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), - new AnvilOutput(new ItemStack(ModItems.hull_small_steel, 2)) + new AnvilOutput(new ItemStack(ModItems.shell, 2, Mats.MAT_STEEL.id)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_rod_mod), new AnvilOutput[] { @@ -1039,7 +1036,7 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_boiler), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), - new AnvilOutput(new ItemStack(ModItems.board_copper, 6)), + new AnvilOutput(new ItemStack(ModItems.plate_cast, 6, Mats.MAT_COPPER.id)), new AnvilOutput(new ItemStack(ModItems.pipes_steel, 2)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( diff --git a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java index 5b4d48bd5..e5c42e576 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java @@ -28,12 +28,10 @@ public class ItemPoolsComponent { new ItemPool(POOL_MACHINE_PARTS) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.plate_steel, 0, 1, 5, 5), - weighted(ModItems.hull_big_steel, 0, 1, 2, 2), - weighted(ModItems.hull_small_steel, 0, 1, 3, 3), + weighted(ModItems.shell, Mats.MAT_STEEL.id, 1, 3, 3), weighted(ModItems.plate_polymer, 0, 1, 6, 5), weighted(ModItems.bolt, Mats.MAT_STEEL.id, 4, 16, 3), weighted(ModItems.bolt, Mats.MAT_TUNGSTEN.id, 4, 16, 3), - weighted(ModItems.board_copper, 0, 1, 2, 4), weighted(ModItems.coil_tungsten, 0, 1, 2, 5), weighted(ModItems.motor, 0, 1, 2, 4), weighted(ModItems.tank_steel, 0, 1, 2, 3), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index bc3121ffa..cc639c629 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -27,7 +27,6 @@ import com.hbm.items.machine.ItemRBMKRod.EnumBurnFunc; import com.hbm.items.machine.ItemRBMKRod.EnumDepleteFunc; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemStamp.StampType; -import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.*; import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.items.tool.*; @@ -327,7 +326,6 @@ public class ModItems { public static Item plate_combine_steel; public static Item plate_mixed; public static Item plate_paa; - public static Item board_copper; public static Item pipes_steel; public static Item drill_titanium; public static Item plate_dalekanium; @@ -660,12 +658,8 @@ public class ModItems { public static Item circuit_targeting_tier6; public static Item wiring_red_copper; - - public static Item hull_small_steel; - public static Item hull_small_aluminium; - public static Item hull_big_steel; - public static Item hull_big_aluminium; - public static Item hull_big_titanium; + public static Item shell; + public static Item pipe; public static Item fins_flat; public static Item fins_small_steel; public static Item fins_big_steel; @@ -824,15 +818,6 @@ public class ModItems { public static Item tritium_deuterium_cake; - public static Item pellet_schrabidium; - public static Item pellet_hes; - public static Item pellet_mes; - public static Item pellet_les; - public static Item pellet_beryllium; - public static Item pellet_neptunium; - public static Item pellet_lead; - public static Item pellet_advanced; - public static Item piston_selenium; public static Item piston_set; public static Item drillbit; @@ -1824,8 +1809,6 @@ public class ModItems { public static Item battery_su_l; public static Item battery_potato; public static Item battery_potatos; - public static Item battery_steam; - public static Item battery_steam_large; public static Item hev_battery; public static Item fusion_core; public static Item fusion_core_infinite; @@ -1833,7 +1816,6 @@ public class ModItems { public static Item fuse; public static Item redcoil_capacitor; public static Item euphemium_capacitor; - public static Item titanium_filter; //by using these in crafting table recipes, i'm running the risk of making my recipes too greg-ian (which i don't like) //in the event that i forget about the meaning of the word "sparingly", please throw a brick at my head public static Item screwdriver; @@ -2605,7 +2587,6 @@ public class ModItems { ingot_combine_steel = new ItemCustomLore().setUnlocalizedName("ingot_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_combine_steel"); plate_mixed = new Item().setUnlocalizedName("plate_mixed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_mixed"); plate_paa = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_paa"); - board_copper = new Item().setUnlocalizedName("board_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":board_copper"); pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel"); drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium"); plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium"); @@ -3030,11 +3011,8 @@ public class ModItems { gear_large = new ItemGear().setUnlocalizedName("gear_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gear_large"); sawblade = new Item().setUnlocalizedName("sawblade").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sawblade"); - hull_small_steel = new Item().setUnlocalizedName("hull_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_small_steel"); - hull_small_aluminium = new ItemCustomLore().setUnlocalizedName("hull_small_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_small_aluminium"); - hull_big_steel = new Item().setUnlocalizedName("hull_big_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_big_steel"); - hull_big_aluminium = new Item().setUnlocalizedName("hull_big_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_big_aluminium"); - hull_big_titanium = new Item().setUnlocalizedName("hull_big_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_big_titanium"); + shell = new ItemAutogen(MaterialShapes.SHELL).setUnlocalizedName("shell").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shell"); + pipe = new ItemAutogen(MaterialShapes.PIPE).setUnlocalizedName("pipe").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipe"); fins_flat = new Item().setUnlocalizedName("fins_flat").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_flat"); fins_small_steel = new Item().setUnlocalizedName("fins_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_small_steel"); fins_big_steel = new Item().setUnlocalizedName("fins_big_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_big_steel"); @@ -3913,15 +3891,6 @@ public class ModItems { pellet_claws = new Item().setUnlocalizedName("pellet_claws").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_claws"); pellet_charged = new Item().setUnlocalizedName("pellet_charged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_charged"); - pellet_schrabidium = new WatzFuel(50000, 140000, 0.975F, 200, 1.05F, 1.05F).setUnlocalizedName("pellet_schrabidium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_schrabidium").setMaxStackSize(1); - pellet_hes = new WatzFuel(108000, 65000, 1F, 85, 1, 1.025F).setUnlocalizedName("pellet_hes").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_hes").setMaxStackSize(1); - pellet_mes = new WatzFuel(216000, 23000, 1.025F, 50, 1, 1F).setUnlocalizedName("pellet_mes").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_mes").setMaxStackSize(1); - pellet_les = new WatzFuel(432000, 7000, 1.05F, 15, 1, 0.975F).setUnlocalizedName("pellet_les").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_les").setMaxStackSize(1); - pellet_beryllium = new WatzFuel(864000, 50, 1.05F, 0, 0.95F, 1.025F).setUnlocalizedName("pellet_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_beryllium").setMaxStackSize(1); - pellet_neptunium = new WatzFuel(216000, 3000, 1.1F, 25, 1.1F, 1.005F).setUnlocalizedName("pellet_neptunium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_neptunium").setMaxStackSize(1); - pellet_lead = new WatzFuel(1728000, 0, 0.95F, 0, 0.95F, 0.95F).setUnlocalizedName("pellet_lead").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_lead").setMaxStackSize(1); - pellet_advanced = new WatzFuel(216000, 1000, 1.1F, 0, 0.995F, 0.99F).setUnlocalizedName("pellet_advanced").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_advanced").setMaxStackSize(1); - designator = new ItemDesingator().setUnlocalizedName("designator").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator"); designator_range = new ItemDesingatorRange().setUnlocalizedName("designator_range").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_range_alt"); designator_manual = new ItemDesingatorManual().setUnlocalizedName("designator_manual").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_manual"); @@ -4447,8 +4416,6 @@ public class ModItems { battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); battery_su = new ItemBattery(50000, 0, 1000).setUnlocalizedName("battery_su").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su"); battery_su_l = new ItemBattery(150000, 0, 1000).setUnlocalizedName("battery_su_l").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su_l"); - battery_steam = new ItemBattery(60000, 300, 6000).setUnlocalizedName("battery_steam").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_steam"); - battery_steam_large = new ItemBattery(100000, 500, 10000).setUnlocalizedName("battery_steam_large").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_steam_large"); hev_battery = new ItemFusionCore(150000).setUnlocalizedName("hev_battery").setMaxStackSize(4).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hev_battery"); fusion_core = new ItemFusionCore(2500000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core"); fusion_core_infinite = new Item().setUnlocalizedName("fusion_core_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core_infinite"); @@ -4456,7 +4423,6 @@ public class ModItems { fuse = new ItemCustomLore().setUnlocalizedName("fuse").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); euphemium_capacitor = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("euphemium_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor_euphemium"); - titanium_filter = new ItemTitaniumFilter(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver"); screwdriver_desh = new ItemTooling(ToolType.SCREWDRIVER, 0).setUnlocalizedName("screwdriver_desh"); hand_drill = new ItemTooling(ToolType.HAND_DRILL, 100).setUnlocalizedName("hand_drill"); @@ -6109,9 +6075,6 @@ public class ModItems { GameRegistry.registerItem(plate_welded, plate_welded.getUnlocalizedName()); GameRegistry.registerItem(heavy_component, heavy_component.getUnlocalizedName()); - //Boards - GameRegistry.registerItem(board_copper, board_copper.getUnlocalizedName()); - //Bolts GameRegistry.registerItem(bolt, bolt.getUnlocalizedName()); GameRegistry.registerItem(bolt_spike, bolt_spike.getUnlocalizedName()); @@ -6188,11 +6151,8 @@ public class ModItems { GameRegistry.registerItem(component_emitter, component_emitter.getUnlocalizedName()); //Bomb Parts - GameRegistry.registerItem(hull_small_steel, hull_small_steel.getUnlocalizedName()); - GameRegistry.registerItem(hull_small_aluminium, hull_small_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(hull_big_steel, hull_big_steel.getUnlocalizedName()); - GameRegistry.registerItem(hull_big_aluminium, hull_big_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(hull_big_titanium, hull_big_titanium.getUnlocalizedName()); + GameRegistry.registerItem(shell, shell.getUnlocalizedName()); + GameRegistry.registerItem(pipe, pipe.getUnlocalizedName()); GameRegistry.registerItem(fins_flat, fins_flat.getUnlocalizedName()); GameRegistry.registerItem(fins_small_steel, fins_small_steel.getUnlocalizedName()); GameRegistry.registerItem(fins_big_steel, fins_big_steel.getUnlocalizedName()); @@ -6362,21 +6322,9 @@ public class ModItems { GameRegistry.registerItem(pellet_claws, pellet_claws.getUnlocalizedName()); GameRegistry.registerItem(pellet_charged, pellet_charged.getUnlocalizedName()); GameRegistry.registerItem(pellet_gas, pellet_gas.getUnlocalizedName()); - GameRegistry.registerItem(magnetron, magnetron.getUnlocalizedName()); - GameRegistry.registerItem(pellet_coal, pellet_coal.getUnlocalizedName()); - //Watz Pellets - GameRegistry.registerItem(pellet_schrabidium, pellet_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_hes, pellet_hes.getUnlocalizedName()); - GameRegistry.registerItem(pellet_mes, pellet_mes.getUnlocalizedName()); - GameRegistry.registerItem(pellet_les, pellet_les.getUnlocalizedName()); - GameRegistry.registerItem(pellet_beryllium, pellet_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_neptunium, pellet_neptunium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_lead, pellet_lead.getUnlocalizedName()); - GameRegistry.registerItem(pellet_advanced, pellet_advanced.getUnlocalizedName()); - //Engine Pieces GameRegistry.registerItem(piston_selenium, piston_selenium.getUnlocalizedName()); GameRegistry.registerItem(piston_set, piston_set.getUnlocalizedName()); @@ -6495,8 +6443,6 @@ public class ModItems { GameRegistry.registerItem(battery_su_l, battery_su_l.getUnlocalizedName()); GameRegistry.registerItem(battery_potato, battery_potato.getUnlocalizedName()); GameRegistry.registerItem(battery_potatos, battery_potatos.getUnlocalizedName()); - GameRegistry.registerItem(battery_steam, battery_steam.getUnlocalizedName()); - GameRegistry.registerItem(battery_steam_large, battery_steam_large.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_uranium, battery_sc_uranium.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_technetium, battery_sc_technetium.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_plutonium, battery_sc_plutonium.getUnlocalizedName()); @@ -6610,7 +6556,6 @@ public class ModItems { GameRegistry.registerItem(fuse, fuse.getUnlocalizedName()); GameRegistry.registerItem(redcoil_capacitor, redcoil_capacitor.getUnlocalizedName()); GameRegistry.registerItem(euphemium_capacitor, euphemium_capacitor.getUnlocalizedName()); - GameRegistry.registerItem(titanium_filter, titanium_filter.getUnlocalizedName()); GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName()); GameRegistry.registerItem(screwdriver_desh, screwdriver_desh.getUnlocalizedName()); GameRegistry.registerItem(hand_drill, hand_drill.getUnlocalizedName()); @@ -8071,24 +8016,6 @@ public class ModItems { GameRegistry.registerItem(bob_nuclear, bob_nuclear.getUnlocalizedName()); GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); GameRegistry.registerItem(memory, memory.getUnlocalizedName()); - - addRemap("rod_zirnox_natural_uranium_fuel", rod_zirnox, EnumZirnoxType.NATURAL_URANIUM_FUEL); - addRemap("rod_zirnox_uranium_fuel", rod_zirnox, EnumZirnoxType.URANIUM_FUEL); - addRemap("rod_zirnox_th232", rod_zirnox, EnumZirnoxType.TH232); - addRemap("rod_zirnox_thorium_fuel", rod_zirnox, EnumZirnoxType.THORIUM_FUEL); - addRemap("rod_zirnox_mox_fuel", rod_zirnox, EnumZirnoxType.MOX_FUEL); - addRemap("rod_zirnox_plutonium_fuel", rod_zirnox, EnumZirnoxType.PLUTONIUM_FUEL); - addRemap("rod_zirnox_u233_fuel", rod_zirnox, EnumZirnoxType.U233_FUEL); - addRemap("rod_zirnox_u235_fuel", rod_zirnox, EnumZirnoxType.U235_FUEL); - addRemap("rod_zirnox_les_fuel", rod_zirnox, EnumZirnoxType.LES_FUEL); - addRemap("rod_zirnox_lithium", rod_zirnox, EnumZirnoxType.LITHIUM); - addRemap("rod_zirnox_zfb_mox", rod_zirnox, EnumZirnoxType.ZFB_MOX); - - addRemap("gas_petroleum", gas_full, Fluids.PETROLEUM.getID()); - addRemap("gas_biogas", gas_full, Fluids.BIOGAS.getID()); - addRemap("gas_lpg", gas_full, Fluids.LPG.getID()); - - addRemap("gun_coilgun_ammo", ammo_coilgun, AmmoCoilgun.STOCK); } public static void addRemap(String unloc, Item item, Enum sub) { diff --git a/src/main/java/com/hbm/items/machine/ItemMold.java b/src/main/java/com/hbm/items/machine/ItemMold.java index 78e5a8ff1..864f975b9 100644 --- a/src/main/java/com/hbm/items/machine/ItemMold.java +++ b/src/main/java/com/hbm/items/machine/ItemMold.java @@ -66,14 +66,8 @@ public class ItemMold extends Item { Mats.MAT_TITANIUM, new ItemStack(ModItems.stamp_titanium_flat), Mats.MAT_OBSIDIAN, new ItemStack(ModItems.stamp_obsidian_flat))); - registerMold(new MoldMulti( 8, S, "hull_small", MaterialShapes.INGOT.q(2), - Mats.MAT_STEEL, new ItemStack(ModItems.hull_small_steel), - Mats.MAT_ALUMINIUM, new ItemStack(ModItems.hull_small_aluminium))); - - registerMold(new MoldMulti( 9, L, "hull_big", MaterialShapes.INGOT.q(6), - Mats.MAT_STEEL, new ItemStack(ModItems.hull_big_steel), - Mats.MAT_ALUMINIUM, new ItemStack(ModItems.hull_big_aluminium), - Mats.MAT_TITANIUM, new ItemStack(ModItems.hull_big_titanium))); + registerMold(new MoldShape( 8, S, "shell", MaterialShapes.SHELL)); + registerMold(new MoldShape( 9, S, "pipe", MaterialShapes.PIPE)); registerMold(new MoldShape( 10, L, "ingots", MaterialShapes.INGOT, 9)); registerMold(new MoldShape( 11, L, "plates", MaterialShapes.PLATE, 9)); diff --git a/src/main/java/com/hbm/items/special/WatzFuel.java b/src/main/java/com/hbm/items/special/WatzFuel.java deleted file mode 100644 index e9a7e32a1..000000000 --- a/src/main/java/com/hbm/items/special/WatzFuel.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.items.special; - -import java.util.List; - -import com.hbm.items.machine.ItemFuelRod; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -public class WatzFuel extends ItemFuelRod { - - public int power; - public float powerMultiplier; - public int heat; - public float heatMultiplier; - public float decayMultiplier; - - /** - * Constructor for a new Watz fuel pellet - * @param lifeTime - * @param power - * @param powerMultiplier - * @param heat - * @param heatMultiplier - * @param decayMultiplier - */ - - public WatzFuel(int lifeTime, int power, float powerMultiplier, int heat, float heatMultiplier, float decayMultiplier) { - super(lifeTime * 100); - this.power = power/10; - this.powerMultiplier = powerMultiplier; - this.heat = heat; - this.heatMultiplier = heatMultiplier; - this.decayMultiplier = decayMultiplier; - this.setMaxDamage(100); - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Max age: " + this.lifeTime/100 + " ticks"); - list.add("Power per tick: " + (power) + "HE"); - list.add("Power multiplier: " + (powerMultiplier >= 1 ? "+" : "") + (Math.round(powerMultiplier * 1000) * .10 - 100) + "%"); - list.add("Heat provided: " + heat + " heat"); - list.add("Heat multiplier: " + (heatMultiplier >= 1 ? "+" : "") + (Math.round(heatMultiplier * 1000) * .10 - 100) + "%"); - list.add("Decay multiplier: " + (decayMultiplier >= 1 ? "+" : "") + (Math.round(decayMultiplier * 1000) * .10 - 100) + "%"); - - super.addInformation(itemstack, player, list, bool); - } - - public static void updateDamage(ItemStack stack) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.setItemDamage((int)((double)getLifeTime(stack) / (double)((WatzFuel)stack.getItem()).lifeTime * 100D)); - } -} diff --git a/src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java b/src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java deleted file mode 100644 index 322d5f574..000000000 --- a/src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.items.tool; - -import java.util.List; - -import com.hbm.items.ModItems; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -public class ItemTitaniumFilter extends Item { - - private int dura; - - public ItemTitaniumFilter(int dura) { - this.dura = dura; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - if(this == ModItems.titanium_filter) { - list.add("[Needed for Watz Reaction]"); - list.add((getDura(itemstack) / 20) + "/" + (dura / 20)); - } - } - - public boolean showDurabilityBar(ItemStack stack) { - return getDurabilityForDisplay(stack) > 0; - } - - public static int getDura(ItemStack stack) { - - if(stack.stackTagCompound == null) - return ((ItemTitaniumFilter) stack.getItem()).dura; - - return stack.stackTagCompound.getInteger("dura"); - } - - public static void setDura(ItemStack stack, int dura) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setInteger("dura", dura); - } - - public double getDurabilityForDisplay(ItemStack stack) { - return 1D - (double) getDura(stack) / (double) dura; - } -} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 2d04a92fe..df97f94fc 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -88,7 +88,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.redstone_sword, 1), new Object[] { "R", "R", "S", 'R', REDSTONE.block(), 'S', KEY_STICK }); addRecipeAuto(new ItemStack(ModItems.big_sword, 1), new Object[] { "QIQ", "QIQ", "GSG", 'G', Items.gold_ingot, 'S', KEY_STICK, 'I', Items.iron_ingot, 'Q', Items.quartz}); - addRecipeAuto(new ItemStack(ModItems.board_copper, 1), new Object[] { "TTT", "TTT", 'T', CU.plate() }); addRecipeAuto(Mats.MAT_IRON.make(ModItems.plate_cast), new Object[] { "BPB", "BPB", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_red, 1), new Object[] { "C", "R", "C", 'C', ModItems.hazmat_cloth, 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ANY_RUBBER.ingot() }); @@ -201,11 +200,6 @@ public class CraftingManager { //addRecipeAuto(new ItemStack(ModItems.levitation_unit, 1), new Object[] { "CSC", "TAT", "PSP", 'C', ModItems.coil_copper, 'S', ModItems.nugget_schrabidium, 'T', ModItems.coil_tungsten, 'P', TI.plate(), 'A', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.deuterium_filter, 1), new Object[] { "TST", "SCS", "TST", 'T', ANY_RESISTANTALLOY.ingot(), 'S', S.dust(), 'C', ModItems.catalyst_clay }); - addRecipeAuto(new ItemStack(ModItems.hull_small_steel, 3), new Object[] { "PPP", " ", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hull_small_aluminium, 3), new Object[] { "PPP", " ", "PPP", 'P', AL.plate(), 'I', AL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hull_big_steel, 1), new Object[] { "III", " ", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hull_big_aluminium, 1), new Object[] { "III", " ", "III", 'P', AL.plate(), 'I', AL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hull_big_titanium, 1), new Object[] { "III", " ", "III", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(ModItems.fins_flat, 1), new Object[] { "IP", "PP", "IP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.fins_small_steel, 1), new Object[] { " PP", "PII", " PP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.fins_big_steel, 1), new Object[] { " PI", "III", " PI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); @@ -273,9 +267,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_difurnace_extension, 1), new Object[] { " C ", "BGB", "BGB", 'C', CU.plate(), 'B', ModItems.ingot_firebrick, 'G', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', IRON.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_puf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', STEEL.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 1), new Object[] { "SSS", "LFL", "CCC", 'S', STEEL.plate(), 'C', ModItems.board_copper, 'L', PB.plate(), 'F', Item.getItemFromBlock(Blocks.furnace) }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 1), new Object[] { "BBB", "WFW", "RRR", 'B', BE.ingot(), 'R', ModItems.coil_tungsten, 'W', ModItems.board_copper, 'F', Item.getItemFromBlock(Blocks.furnace) }); - addRecipeAuto(new ItemStack(ModBlocks.machine_arc_furnace_off, 1), new Object[] { "ITI", "PFP", "ITI", 'I', W.ingot(), 'T', ModBlocks.machine_transformer, 'P', ModItems.board_copper, 'F', Blocks.furnace }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 1), new Object[] { "SSS", "LFL", "CCC", 'S', STEEL.plate(), 'C', CU.plateCast(), 'L', PB.plate(), 'F', Item.getItemFromBlock(Blocks.furnace) }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 1), new Object[] { "BBB", "WFW", "RRR", 'B', BE.ingot(), 'R', ModItems.coil_tungsten, 'W', CU.plateCast(), 'F', Item.getItemFromBlock(Blocks.furnace) }); + addRecipeAuto(new ItemStack(ModBlocks.machine_arc_furnace_off, 1), new Object[] { "ITI", "PFP", "ITI", 'I', W.ingot(), 'T', ModBlocks.machine_transformer, 'P', CU.plateWelded(), 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.red_wire_coated, 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', MINGRADE.ingot(), 'R', ModItems.wire_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.red_cable_paintable, 16), new Object[] { "WRW", "RIR", "WRW", 'W', STEEL.plate(), 'I', MINGRADE.ingot(), 'R', ModItems.wire_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.cable_switch, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.red_wire_coated }); @@ -297,8 +291,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.capacitor_schrabidate, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', SBD.block(), 'W', STEEL.ingot() }); //addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate528(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace}); - addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace }); - addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); + addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', CU.plateCast(), 'T', ModItems.tank_steel, 'F', Blocks.furnace }); + addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', CU.plateCast(), 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "SSS", "CRB", "SSS", 'S', STEEL.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); @@ -306,7 +300,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }); - addRecipeAuto(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', ModItems.board_copper, 'C', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', CU.plateCast(), 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', ModItems.circuit_red_copper, 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) }); @@ -318,13 +312,13 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_microwave, 1), new Object[] { "III", "SGM", "IDI", 'I', ModItems.plate_polymer, 'S', STEEL.plate(), 'G', KEY_ANYPANE, 'M', ModItems.magnetron, 'D', ModItems.motor }); - addRecipeAuto(new ItemStack(ModBlocks.machine_solar_boiler), new Object[] { "SHS", "DHD", "SHS", 'S', STEEL.ingot(), 'H', ModItems.hull_big_steel, 'D', KEY_BLACK }); + addRecipeAuto(new ItemStack(ModBlocks.machine_solar_boiler), new Object[] { "SHS", "DHD", "SHS", 'S', STEEL.ingot(), 'H', STEEL.shell(), 'D', KEY_BLACK }); addRecipeAuto(new ItemStack(ModBlocks.solar_mirror, 3), new Object[] { "AAA", " B ", "SSS", 'A', AL.plate(), 'B', ModBlocks.steel_beam, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_iron, 1), new Object[] { "III", " B ", "III", 'I', IRON.ingot(), 'B', IRON.block() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_lead, 1), new Object[] { "III", " B ", "III", 'I', PB.ingot(), 'B', PB.block() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel }); addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "H", "G", "H", 'H', STEEL.plateWelded(), 'G', ModBlocks.steel_grate }); - addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); + addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', STEEL.shell(), 'B', Blocks.iron_bars }); addRecipeAuto(new ItemStack(ModBlocks.machine_furnace_brick_off), new Object[] { "III", "I I", "BBB", 'I', Items.brick, 'B', Blocks.stone }); addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', ModItems.circuit_copper, 'M', ModItems.motor }); @@ -352,8 +346,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.crystal_xen, 1), new Object[] { "EEE", "EIE", "EEE", 'E', ModItems.powder_power, 'I', EUPH.ingot() }); addShapelessAuto(new ItemStack(ModItems.fuse, 1), new Object[] { STEEL.plate(), ModItems.plate_polymer, ModItems.wire_tungsten }); - addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), ModItems.board_copper, ModItems.black_hole, CS.dust() }); - addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), ModItems.board_copper, ModItems.black_hole, CE.dust() }); + addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), CU.plateCast(), ModItems.black_hole, CS.dust() }); + addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), CU.plateCast(), ModItems.black_hole, CE.dust() }); addRecipeAuto(new ItemStack(ModItems.blades_steel, 1), new Object[] { " P ", "PIP", " P ", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.blades_titanium, 1), new Object[] { " P ", "PIP", " P ", 'P', TI.plate(), 'I', TI.ingot() }); @@ -528,7 +522,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch), new Object[] { ModBlocks.rail_large_switch_flipped }); addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch_flipped), new Object[] { ModBlocks.rail_large_switch }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', ModItems.wire_aluminium, 'C', ModItems.circuit_aluminium, 'H', ModItems.hull_small_aluminium, 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', ModItems.wire_aluminium, 'C', ModItems.circuit_aluminium, 'H', AL.shell(), 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); addShapelessAuto(new ItemStack(ModItems.powder_ice, 4), new Object[] { Items.snowball, KNO.dust(), REDSTONE.dust() }); addShapelessAuto(new ItemStack(ModItems.powder_poison, 4), new Object[] { Items.spider_eye, REDSTONE.dust(), NETHERQUARTZ.gem() }); addShapelessAuto(new ItemStack(ModItems.pellet_gas, 2), new Object[] { Items.water_bucket, "dustGlowstone", STEEL.plate() }); @@ -602,8 +596,6 @@ public class CraftingManager { addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', ModItems.wire_copper, 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, ModItems.wire_aluminium, ModItems.wire_copper }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam), new Object[] { "PMP", "ISI", "PCP", 'P', CU.plate(), 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()), 'I', ModItems.plate_polymer }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam_large), new Object[] { "MPM", "ISI", "CPC", 'P', ModItems.board_copper, 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.WATER.getID()), 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.battery_sc_uranium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', U238.billet(), 'P', PB.plate(), 'C', ModItems.thermo_element }); addRecipeAuto(new ItemStack(ModItems.battery_sc_technetium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', TC99.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_uranium }); @@ -709,7 +701,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.vent_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_cloud, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.vent_pink_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_pink_cloud, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "BBB", "BBB", "TTT", 'B', STEEL.bolt(), 'T', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', STEEL.shell(), 'W', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'C', ModBlocks.crate_steel }); @@ -719,7 +711,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.absorber_pink, 1), new Object[] { "ICI", "CPC", "ICI", 'I', BIGMT.ingot(), 'C', ModItems.powder_nitan_mix, 'P', ModBlocks.absorber_green }); addRecipeAuto(new ItemStack(ModBlocks.decon, 1), new Object[] { "BGB", "SAS", "BSB", 'B', BE.ingot(), 'G', Blocks.iron_bars, 'S', STEEL.ingot(), 'A', ModBlocks.absorber }); addRecipeAuto(new ItemStack(ModBlocks.machine_amgen, 1), new Object[] { "ITI", "TAT", "ITI", 'I', ALLOY.ingot(), 'T', ModItems.thermo_element, 'A', ModBlocks.absorber }); - addRecipeAuto(new ItemStack(ModBlocks.machine_geo, 1), new Object[] { "ITI", "PCP", "ITI", 'I', DURA.ingot(), 'T', ModItems.thermo_element, 'P', ModItems.board_copper, 'C', ModBlocks.red_wire_coated }); + addRecipeAuto(new ItemStack(ModBlocks.machine_geo, 1), new Object[] { "ITI", "PCP", "ITI", 'I', DURA.ingot(), 'T', ModItems.thermo_element, 'P', CU.plateCast(), 'C', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.machine_minirtg, 1), new Object[] { "LLL", "PPP", "TRT", 'L', PB.plate(), 'P', PU238.billet(), 'T', ModItems.thermo_element, 'R', ModItems.rtg_unit }); addRecipeAuto(new ItemStack(ModBlocks.machine_powerrtg, 1), new Object[] { "SRS", "PTP", "SRS", 'S', STAR.ingot(), 'R', ModItems.rtg_unit, 'P', PO210.billet(), 'T', TS.dust() }); @@ -760,7 +752,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ANY_COKE.gem(), 'S', KEY_STICK }); addRecipeAuto(new ItemStack(ModBlocks.machine_missile_assembly, 1), new Object[] { "PWP", "SSS", "CCC", 'P', ModItems.pedestal_steel, 'W', ModItems.wrench, 'S', STEEL.plate(), 'C', ModBlocks.steel_scaffold }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 8), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ANY_CONCRETE.any() }); + addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 8), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', STEEL.pipe(), 'C', ANY_CONCRETE.any() }); addRecipeAuto(new ItemStack(ModBlocks.struct_scaffold, 8), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', new ItemStack(ModBlocks.fluid_duct_neo, 1, OreDictionary.WILDCARD_VALUE), 'C', ModBlocks.red_cable }); addRecipeAuto(new ItemStack(ModItems.seg_10, 1), new Object[] { "P", "S", "B", 'P', AL.plate(), 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam }); @@ -806,7 +798,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', KEY_CIRCUIT_BISMUTH }); addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.block_dineutronium, 'L', ModItems.hull_small_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.block_dineutronium, 'L', STEEL.shell() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); @@ -892,7 +884,7 @@ public class CraftingManager { } addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_control, 'B', ModItems.nugget_bismuth }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_auto, 1), new Object[] { "C", "R", "D", 'C', ModItems.circuit_targeting_tier1, 'R', ModBlocks.rbmk_control, 'D', ModItems.crt_display }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim, 1), new Object[] { "ZCZ", "ZRZ", "ZCZ", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank, 'Z', ZR.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim, 1), new Object[] { "ZCZ", "ZRZ", "ZCZ", 'C', STEEL.shell(), 'R', ModBlocks.rbmk_blank, 'Z', ZR.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_rod_reasim, 'B', ANY_RESISTANTALLOY.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_outgasser, 1), new Object[] { "GHG", "GRG", "GTG", 'G', ModBlocks.steel_grate, 'H', Blocks.hopper, 'T', ModItems.tank_steel, 'R', ModBlocks.rbmk_blank }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_storage, 1), new Object[] { "C", "R", "C", 'C', ModBlocks.crate_steel, 'R', ModBlocks.rbmk_blank }); @@ -903,8 +895,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.pwr_fuel, 4), new Object[] { "LZL", "L L", "LZL", 'L', PB.plate528(), 'Z', ZR.plateWelded() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_control, 4), new Object[] { "SBS", "MBM", "SBS", 'S', STEEL.plate528(), 'B', B.ingot(), 'M', ModItems.motor }); - addRecipeAuto(new ItemStack(ModBlocks.pwr_channel, 4), new Object[] { "CPC", "BPB", "CPC", 'C', CU.ingot(), 'P', ModBlocks.deco_pipe_quad, 'B', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_channel, 4), new Object[] { "CPC", "BPB", "CPC", 'C', CU.ingot(), 'P', STEEL.pipe(), 'B', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_heatex, 4), new Object[] { "CSC", "SMS", "CSC", 'C', CU.plateCast(), 'S', STEEL.plate528(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_heatsink, 4), new Object[] { "SCS", "CRC", "SCS", 'S', BIGMT.plateCast(), 'C', CU.plate(), 'R', RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_reflector, 4), new Object[] { "RLR", "LSL", "RLR", 'R', OreDictManager.getReflector(), 'L', PB.plate528(), 'S', STEEL.plateCast() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_casing, 4), new Object[] { "LCL", "CSC", "LCL", 'L', PB.plate528(), 'C', ANY_CONCRETE.any(), 'S', STEEL.plateCast() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', !GeneralConfig.enableExpensiveMode ? ModItems.circuit_gold : STEEL.heavyComp() }); @@ -929,7 +922,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_storage_drum), new Object[] { "LLL", "L#L", "LLL", 'L', PB.plate(), '#', ModItems.tank_steel }); - addRecipeAuto(new ItemStack(ModBlocks.deco_pipe, 6), new Object[] { "PPP", 'P', ModItems.hull_small_steel }); + addRecipeAuto(new ItemStack(ModBlocks.deco_pipe, 6), new Object[] { "PP", 'P', STEEL.pipe() }); addShapelessAuto(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_rim }); addShapelessAuto(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_framed }); addShapelessAuto(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_quad }); @@ -970,7 +963,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.solid_fuel, 3), new Object[] { Fluids.HEATINGOIL.getDict(16000), KEY_TOOL_CHEMISTRYSET }); addShapelessAuto(new ItemStack(ModItems.canister_full, 2, Fluids.LUBRICANT.getID()), new Object[] { Fluids.HEATINGOIL.getDict(1000), Fluids.UNSATURATEDS.getDict(1000), ModItems.canister_empty, ModItems.canister_empty, KEY_TOOL_CHEMISTRYSET }); - addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', ModItems.board_copper }); + addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', CU.plateWelded() }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ) }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato }); @@ -979,7 +972,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.charger), new Object[] { "G", "S", "C", 'G', Items.glowstone_dust, 'S', STEEL.ingot(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.charger, 16), new Object[] { "G", "S", "C", 'G', Blocks.glowstone, 'S', STEEL.block(), 'C', ModItems.coil_copper_torus }); - addRecipeAuto(new ItemStack(ModBlocks.press_preheater), new Object[] { "CCC", "SLS", "TST", 'C', ModItems.board_copper, 'S', Blocks.stone, 'L', Fluids.LAVA.getDict(1000), 'T', W.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.press_preheater), new Object[] { "CCC", "SLS", "TST", 'C', CU.plate(), 'S', Blocks.stone, 'L', Fluids.LAVA.getDict(1000), 'T', W.ingot() }); addRecipeAuto(new ItemStack(ModItems.fluid_identifier_multi), new Object[] { "D", "C", "P", 'D', "dye", 'C', ModItems.circuit_aluminium, 'P', ANY_PLASTIC.ingot() }); addShapelessAuto(ItemBattery.getEmptyBattery(ModItems.anchor_remote), new Object[] { DIAMOND.gem(), ModItems.ducttape, ModItems.circuit_red_copper }); @@ -1016,7 +1009,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.radar_screen), new Object[] { "PCP", "SRS", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_aluminium, 'S', STEEL.plate(), 'R', ModItems.crt_display }); addRecipeAuto(new ItemStack(ModItems.radar_linker), new Object[] { "S", "C", "P", 'S', ModItems.crt_display, 'C', ModItems.circuit_copper, 'P', STEEL.plate() }); - addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', ANY_PLASTIC.ingot(), 'H', ModItems.hull_small_steel, 'C', ModItems.circuit_copper, 'B', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', ANY_PLASTIC.ingot(), 'H', STEEL.shell(), 'C', ModItems.circuit_copper, 'B', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', TI.plateWelded(), 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); @@ -1120,10 +1113,10 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.hadron_core, 1), new Object[] { "CCC", "DSD", "CCC", 'C', ModBlocks.hadron_coil_alloy, 'D', ModBlocks.hadron_diode, 'S', ModItems.circuit_schrabidium }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', STEEL.shell(), 'R', ModBlocks.rbmk_blank }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_rod, 'B', ModItems.nugget_bismuth }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', ModItems.board_copper, 'P', ModItems.pipes_steel, 'R', ModBlocks.rbmk_blank }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_heater, 1), new Object[] { "CIC", "PRP", "CIC", 'C', ModItems.board_copper, 'P', ModItems.pipes_steel, 'R', ModBlocks.rbmk_blank, 'I', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', CU.pipe(), 'P', CU.shell(), 'R', ModBlocks.rbmk_blank }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_heater, 1), new Object[] { "CIC", "PRP", "CIC", 'C', CU.pipe(), 'P', STEEL.shell(), 'R', ModBlocks.rbmk_blank, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_cooler, 1), new Object[] { "IGI", "GCG", "IGI", 'C', ModBlocks.rbmk_blank, 'I', ModItems.plate_polymer, 'G', ModBlocks.steel_grate }); } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 4f7856367..c58de94de 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -733,7 +733,7 @@ public class MainRegistry { achZIRNOXBoom = new Achievement("achievement.ZIRNOXBoom", "ZIRNOXBoom", 14, -1, ModItems.debris_element, achCentrifuge).initIndependentStat().setSpecial().registerStat(); achChicagoPile = new Achievement("achievement.chicagoPile", "chicagoPile", 13, 0, ModItems.pile_rod_plutonium, achCentrifuge).initIndependentStat().registerStat(); achSILEX = new Achievement("achievement.SILEX", "SILEX", 12, 7, new ItemStack(ModBlocks.machine_silex), achAcidizer).initIndependentStat().registerStat(); - achWatz = new Achievement("achievement.watz", "watz", 14, 3, ModItems.pellet_schrabidium, achSchrab).initIndependentStat().registerStat(); + achWatz = new Achievement("achievement.watz", "watz", 14, 3, ModItems.watz_pellet, achSchrab).initIndependentStat().registerStat(); achWatzBoom = new Achievement("achievement.watzBoom", "watzBoom", 14, 5, ModItems.bucket_mud, achWatz).initIndependentStat().setSpecial().registerStat(); achRBMK = new Achievement("achievement.RBMK", "RBMK", 9, -5, ModItems.rbmk_fuel_ueu, achConcrete).initIndependentStat().registerStat(); achRBMKBoom = new Achievement("achievement.RBMKBoom", "RBMKBoom", 9, -7, ModItems.debris_fuel, achRBMK).initIndependentStat().setSpecial().registerStat(); @@ -1255,6 +1255,39 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.siege_hole"); ignoreMappings.add("hbm:tile.machine_shredder_large"); ignoreMappings.add("hbm:tile.turret_brandon"); + ignoreMappings.add("hbm:item.bottle2_sunset"); + ignoreMappings.add("hbm:item.pellet_schrabidium"); + ignoreMappings.add("hbm:item.pellet_hes"); + ignoreMappings.add("hbm:item.pellet_mes"); + ignoreMappings.add("hbm:item.pellet_les"); + ignoreMappings.add("hbm:item.pellet_beryllium"); + ignoreMappings.add("hbm:item.pellet_neptunium"); + ignoreMappings.add("hbm:item.pellet_lead"); + ignoreMappings.add("hbm:item.pellet_advanced"); + ignoreMappings.add("hbm:item.board_copper"); + ignoreMappings.add("hbm:item.titanium_filter"); + ignoreMappings.add("hbm:item.battery_steam"); + ignoreMappings.add("hbm:item.battery_steam_large"); + ignoreMappings.add("hbm:item.hull_small_steel"); + ignoreMappings.add("hbm:item.hull_small_aluminium"); + ignoreMappings.add("hbm:item.hull_big_steel"); + ignoreMappings.add("hbm:item.hull_big_aluminium"); + ignoreMappings.add("hbm:item.hull_big_titanium"); + ignoreMappings.add("hbm:item.rod_zirnox_natural_uranium_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_uranium_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_th232"); + ignoreMappings.add("hbm:item.rod_zirnox_thorium_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_mox_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_plutonium_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_u233_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_u235_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_les_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_lithium"); + ignoreMappings.add("hbm:item.rod_zirnox_zfb_mox"); + ignoreMappings.add("hbm:item.gas_petroleum"); + ignoreMappings.add("hbm:item.gas_biogas"); + ignoreMappings.add("hbm:item.gas_lpg"); + ignoreMappings.add("hbm:item.gun_coilgun_ammo"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/item/ItemRenderTransformer.java b/src/main/java/com/hbm/render/item/ItemRenderTransformer.java index d8370c5c3..c461f2803 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderTransformer.java +++ b/src/main/java/com/hbm/render/item/ItemRenderTransformer.java @@ -3,9 +3,11 @@ package com.hbm.render.item; import org.lwjgl.opengl.GL11; import com.hbm.render.util.RenderItemStack; +import com.hbm.render.util.RenderMiscEffects; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.entity.EntityLivingBase; @@ -99,9 +101,96 @@ public class ItemRenderTransformer implements IItemRenderer { TextureUtil.func_152777_a(false, false, 1.0F); Tessellator tessellator = Tessellator.instance; ItemRenderer.renderItemIn2D(tessellator, iicon.getMaxU(), iicon.getMinV(), iicon.getMinU(), iicon.getMaxV(), iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); + if(item.hasEffect()) renderGlint3D(tessellator, 0.0625F); } else { RenderItemStack.renderItemStackNoEffect(0, 0, 0, item); + if(item.hasEffect()) renderGlintFlat(); } } + + public void renderGlintFlat() { + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(RenderMiscEffects.glint); + + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDepthMask(false); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + + for(int j1 = 0; j1 < 2; ++j1) { + OpenGlHelper.glBlendFunc(772, 1, 0, 0); + float scaleU = 0.00390625F; + float scaleV = 0.00390625F; + float anim = (float) (Minecraft.getSystemTime() % (long) (3000 + j1 * 1873)) / (3000.0F + (float) (j1 * 1873)) * 256.0F; + float offsetV = 0.0F; + Tessellator tessellator = Tessellator.instance; + float sizeMultU = 4.0F; + + if(j1 == 1) { + sizeMultU = -1.0F; + } + + float in = 0.76F; + GL11.glColor4f(0.5F * in, 0.25F * in, 0.8F * in, 1.0F); + + int x = 0; + int sizeX = 16; + int y = 0; + int sizeY = 16; + int zLevel = 0; + + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(x + 0, y + sizeY, zLevel, (anim + sizeY * sizeMultU) * scaleU, (offsetV + sizeY) * scaleV); + tessellator.addVertexWithUV(x + sizeX, y + sizeY, zLevel, (anim + sizeX + sizeY * sizeMultU) * scaleU, (offsetV + sizeY) * scaleV); + tessellator.addVertexWithUV(x + sizeX, y + 0, zLevel, (anim + sizeX) * scaleU, (offsetV + 0.0F) * scaleV); + tessellator.addVertexWithUV(x + 0, y + 0, zLevel, (anim + 0.0F) * scaleU, (offsetV + 0.0F) * scaleV); + tessellator.draw(); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDepthMask(true); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthFunc(GL11.GL_LEQUAL); + } + + public void renderGlint3D(Tessellator tessellator, float depth) { + + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(RenderMiscEffects.glint); + + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + + float in = 0.76F; + GL11.glColor4f(0.5F * in, 0.25F * in, 0.8F * in, 1.0F); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + + GL11.glPushMatrix(); + float scale = 0.125F; + GL11.glScalef(scale, scale, scale); + float offset = (float) (Minecraft.getSystemTime() % 3000L) / 3000.0F * 8.0F; + GL11.glTranslatef(offset, 0.0F, 0.0F); + GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, depth); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glScalef(scale, scale, scale); + offset = (float) (Minecraft.getSystemTime() % 4873L) / 4873.0F * 8.0F; + GL11.glTranslatef(-offset, 0.0F, 0.0F); + GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, depth); + GL11.glPopMatrix(); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthFunc(GL11.GL_LEQUAL); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index d5eae7f2e..ffebeb03c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -47,9 +47,10 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public FluidTank[] tanks; public int coreHeat; - public static final int coreHeatCapacity = 10_000_000; + public static final int coreHeatCapacityBase = 10_000_000; + public int coreHeatCapacity = 10_000_000; public int hullHeat; - public static final int hullHeatCapacity = 10_000_000; + public static final int hullHeatCapacityBase = 10_000_000; public double flux; public int rodLevel = 100; @@ -64,6 +65,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public int connections; public int connectionsControlled; public int heatexCount; + public int heatsinkCount; public int channelCount; public int sourceCount; @@ -91,6 +93,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG connectionsControlled = 0; heatexCount = 0; channelCount = 0; + heatsinkCount = 0; sourceCount = 0; ports.clear(); rods.clear(); @@ -104,6 +107,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG if(block == ModBlocks.pwr_fuel) rodCount++; if(block == ModBlocks.pwr_heatex) heatexCount++; if(block == ModBlocks.pwr_channel) channelCount++; + if(block == ModBlocks.pwr_heatsink) heatsinkCount++; if(block == ModBlocks.pwr_neutron_source) sourceCount++; if(block == ModBlocks.pwr_port) ports.add(entry.getKey()); } @@ -144,6 +148,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG connections = connectionsDouble / 2; connectionsControlled = connectionsControlledDouble / 2; + + this.coreHeatCapacity = this.coreHeatCapacityBase + this.heatsinkCount * this.coreHeatCapacityBase / 20; } @Override @@ -238,7 +244,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG if(amountLoaded > rodCount) amountLoaded = rodCount; /* CORE COOLING */ - double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; + double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) getRodCountForCoolant(), 2) / 2D; int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; @@ -276,6 +282,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG data.setInteger("amountLoaded", amountLoaded); data.setInteger("rodLevel", rodLevel); data.setInteger("rodTarget", rodTarget); + data.setInteger("coreHeatCapacity", coreHeatCapacity); this.networkPack(data, 150); } else { @@ -356,7 +363,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); if(trait == null || trait.getEfficiency(HeatingType.PWR) <= 0) return; - double coolingEff = (double) this.channelCount / (double) this.rodCount * 0.1D; //10% cooling if numbers match + double coolingEff = (double) this.channelCount / (double) getRodCountForCoolant() * 0.1D; //10% cooling if numbers match if(coolingEff > 1D) coolingEff = 1D; int heatToUse = Math.min(this.hullHeat, (int) (this.hullHeat * coolingEff * trait.getEfficiency(HeatingType.PWR))); @@ -371,6 +378,10 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.tanks[1].setFill(tanks[1].getFill() + step.amountProduced * cycles); } + protected int getRodCountForCoolant() { + return this.rodCount + (int) Math.ceil(this.heatsinkCount / 4D); + } + public void networkUnpack(NBTTagCompound nbt) { super.networkUnpack(nbt); @@ -386,6 +397,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG amountLoaded = nbt.getInteger("amountLoaded"); rodLevel = nbt.getInteger("rodLevel"); rodTarget = nbt.getInteger("rodTarget"); + coreHeatCapacity = nbt.getInteger("coreHeatCapacity"); } protected void setupTanks() { @@ -448,6 +460,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.amountLoaded = nbt.getInteger("amountLoaded"); this.progress = nbt.getDouble("progress"); this.processTime = nbt.getDouble("processTime"); + this.coreHeatCapacity = nbt.getInteger("coreHeatCapacity"); + if(this.coreHeatCapacity < this.coreHeatCapacityBase) this.coreHeatCapacity = this.coreHeatCapacityBase; this.rodCount = nbt.getInteger("rodCount"); this.connections = nbt.getInteger("connections"); @@ -455,6 +469,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.heatexCount = nbt.getInteger("heatexCount"); this.channelCount = nbt.getInteger("channelCount"); this.sourceCount = nbt.getInteger("sourceCount"); + this.heatsinkCount = nbt.getInteger("heatsinkCount"); ports.clear(); int portCount = nbt.getInteger("portCount"); @@ -490,6 +505,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG nbt.setInteger("amountLoaded", amountLoaded); nbt.setDouble("progress", progress); nbt.setDouble("processTime", processTime); + nbt.setInteger("coreHeatCapacity", coreHeatCapacity); nbt.setInteger("rodCount", rodCount); nbt.setInteger("connections", connections); @@ -497,6 +513,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG nbt.setInteger("heatexCount", heatexCount); nbt.setInteger("channelCount", channelCount); nbt.setInteger("sourceCount", sourceCount); + nbt.setInteger("heatsinkCount", heatsinkCount); nbt.setInteger("portCount", ports.size()); for(int i = 0; i < ports.size(); i++) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 8c01c9c42..62a7c4f9b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2713,8 +2713,8 @@ item.pill_iodine.name=Iodpille item.pill_herbal.name=Kräuterpaste item.pill_red.name=Rote Pille item.pin.name=Haarklammer +item.pipe.name=%srohr item.pipes_steel.name=Stahlrohre -item.pirfenidone.name=Pirfenidon item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet. item.piston_selenium.name=Motorkolben item.piston_set_desh.name=Ottomotorenkolben (Desh) @@ -3164,6 +3164,7 @@ item.serum.name=Serum item.servo_set.name=Servo-Set item.servo_set_desh.name=Deshservo-Set item.shackles.name=Fußschellen +item.shell.name=%smantel item.shimmer_axe.name=Shimmer Axe item.shimmer_axe_head.name=Schwerer Axtkopf item.shimmer_handle.name=Verstärketer Polymergriff @@ -3529,8 +3530,10 @@ shape.ingot=Barren shape.nugget=Nugget shape.quantum=Quantum shape.quart=Viertel Block +shape.pipe=Rohr shape.plate=Platte shape.plateTriple=Gussplatte +shape.shell=Mantel shape.stamp=Stempel shape.wire=Draht shape.wireDense=Dichter Draht @@ -4405,8 +4408,10 @@ tile.pwr_controller.name=PWR Controller tile.pwr_controller.desc=Zugangsterminal zum PWR$Platzierung: Hülle, nur eines pro Reaktor$Rechtsclick um Reaktor zusammenzubauen tile.pwr_fuel.name=PWR Brennstäbe tile.pwr_fuel.desc=Erhöht die Kapazität für Brennelemente$Platzierung: Gitter, für höhere Reaktivität -tile.pwr_heatex.name=PWR Waärmetauscher +tile.pwr_heatex.name=PWR Wärmetauscher tile.pwr_heatex.desc=Gleicht Kerntemparatur mit Hülltemparatur aus$Platzierung: Egal +tile.pwr_heatsink.name=PWR Kühlkörper +tile.pwr_heatsink.desc=Erhöht die Wärmekapazität der Kerns um 5%%$Kühlkanäle und Wärmetauscher werden etwas weniger effektiv$Platzierung: Egal tile.pwr_neutron_source.name=PWR Neutronenquelle tile.pwr_neutron_source.desc=Fügt dem Kern 20 Flux hinzu$Platzierung: Egal$Flux erreicht den Kern nur, wenn Steuerstäbe offen sind tile.pwr_port.name=PWR Zugangsport diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index da4d9c429..69ef7d8fd 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3555,6 +3555,7 @@ item.pill_herbal.desc=Effective treatment against lung disease and mild radiatio item.pill_red.name=Red Pill item.pin.name=Bobby Pin item.pin.desc=Standard success rate of picking a regular lock is ~10%%. +item.pipe.name=%s Pipe item.pipes_steel.name=Steel Pipes item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. item.piston_selenium.name=Combustion Engine Piston @@ -4128,6 +4129,7 @@ item.serum.name=Serum item.servo_set.name=Servo Set item.servo_set_desh.name=Desh Servo Set item.shackles.name=Shackles +item.shell.name=%s Shell item.shimmer_axe.name=Shimmer Axe item.shimmer_axe_head.name=Heavy Axe Head item.shimmer_handle.name=Reinforced Polymer Handle @@ -4537,8 +4539,10 @@ shape.ingot=Ingot shape.nugget=Nugget shape.quantum=Quantum shape.quart=Quarter Block +shape.pipe=Pipe shape.plate=Plate shape.plateTriple=Cast Plate +shape.shell=Shell shape.stamp=Press Stamp shape.wire=Wire shape.wireDense=Dense Wire @@ -5460,6 +5464,8 @@ tile.pwr_fuel.name=PWR Fuel Rod tile.pwr_fuel.desc=Increases PWR fuel capacity$Placement: Grid, for increased reactivity tile.pwr_heatex.name=PWR Heat Exchanger tile.pwr_heatex.desc=Moves core heat to the hull$Placement: Any +tile.pwr_heatsink.name=PWR Heatsink +tile.pwr_heatsink.desc=Increases core heat capacity by 5%%$Makes coolant channels and heat exchangers slightly less effective$Placement: Any tile.pwr_neutron_source.name=PWR Neutron Source tile.pwr_neutron_source.desc=Adds 20 flux to the core$Placement: Any$Flux only reaches fuel rods if connections are open tile.pwr_port.name=PWR Access Port diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_heatsink.png b/src/main/resources/assets/hbm/textures/blocks/pwr_heatsink.png new file mode 100644 index 0000000000000000000000000000000000000000..e825b4bfd0e9411db1fd7d0c14787e97f4320394 GIT binary patch literal 288 zcmV+*0pI?KP)*zb0o!*P;O%A-h0000;sLtwG!;`N zB4xD%Vt_P?BH2lU8B&|tI8}PfS^wSt`C?rr&ky&SQG%2+lu`kJb2ec#zeX7)5JiP= zCQ+*v35y|$$~Gh{My*;1^qN3rwY6*znMPwa+1GcYR;@ipp+X2U6j91qurOqj-Npr! zQvDloUvNSl2u(SIC@L(L89J>;gC1|DJ)o2di)Dt()8kRbx6cBzvlG0$=9ph!^pDtS zjUz%v-wpsj+i58PJl)Q4KD`=coNx18o?$JU9+0pY?|HV@D7%e)Ku)ODBOtsieuT^x za45t9>@Jd79=|E{85UsvEF=13`nq4ItBZ)7-C&=#r0000< KMNUMnLSTaWP?a+P literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/mold_shell.png b/src/main/resources/assets/hbm/textures/items/mold_shell.png new file mode 100644 index 0000000000000000000000000000000000000000..72a389ba59fc1fefa29e5e84ce851a98a6b6c348 GIT binary patch literal 419 zcmV;U0bKrxP)S6otRcBu$}H$e!^p4uGPAo6|$= zk-JvVYFOAKmncc-UYzHz0JFi6nzqq)lBO6!6!>hAu8#NE*+1YXoUUxr1;QlGPKUWc z0(g5K0^r9}s#0HQp!oT`P(RC$r%T0UzMR*GAD?+~6c*wtUPVJ_`~o(tuRLq8nNk1% N002ovPDHLkV1n)Hyc_@k literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pipe.png b/src/main/resources/assets/hbm/textures/items/pipe.png new file mode 100644 index 0000000000000000000000000000000000000000..72a840b012454c1537a99abce6fa5b9782779c8c GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfpuG&9u6{1-oD!MkpqbzKK7NsS-XS!Ks)MYiIF1=z8h)L(4J^js;vdJ-z9P+SQpQ?S(Ro0bYX1XTE05 z)>E2UVtTjQ|MoV9HGaVy3s3NExyEz2;B~@d2KG2k1K-PwKX5+1eoC~G``WD~Q=DA% zI-|1peE(A0Z}_Z=Tj`L^`RTmd%IDkv5>Uy0n?2#1w~=&Ss2<9SDf2zQ!C@{@}%gOi7!J3 z$LUQBC8~`b8`fnTJAPxBy1xCBLH`wdwR)>-JGwcJ%?M83xBa`^^O(fdVm*dOB=psv lnVl12xKp=;?R#1+ Date: Sun, 31 Mar 2024 21:55:59 +0200 Subject: [PATCH 299/376] we're in a rush now --- changelog | 8 +++- .../com/hbm/blocks/generic/BlockCrate.java | 1 - .../handler/pollution/PollutionHandler.java | 43 ++++++++++++++++++ .../com/hbm/inventory/OreDictManager.java | 2 +- .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../java/com/hbm/inventory/material/Mats.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 24 +++++----- .../hbm/inventory/recipes/PressRecipes.java | 1 + .../java/com/hbm/items/ItemCustomLore.java | 19 ++++---- src/main/java/com/hbm/items/ModItems.java | 33 +++++--------- .../com/hbm/items/machine/ItemPWRFuel.java | 2 +- .../com/hbm/items/machine/ItemWatzPellet.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 5 +- src/main/java/com/hbm/main/MainRegistry.java | 3 ++ .../render/tileentity/RenderPylonBase.java | 43 ++++++++++-------- .../machine/TileEntityCondenserPowered.java | 4 +- src/main/java/com/hbm/util/ArmorUtil.java | 4 +- src/main/resources/assets/hbm/lang/de_DE.lang | 4 +- src/main/resources/assets/hbm/lang/en_US.lang | 4 +- .../hbm/textures/items/plate_dura_steel.png | Bin 0 -> 299 bytes .../hbm/textures/models/explosion/Ring2.png | Bin 94 -> 0 bytes .../textures/models/explosion/balefire.png | Bin 717498 -> 0 bytes .../textures/models/explosion/fireball.png | Bin 679704 -> 0 bytes 23 files changed, 127 insertions(+), 79 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/plate_dura_steel.png delete mode 100644 src/main/resources/assets/hbm/textures/models/explosion/Ring2.png delete mode 100644 src/main/resources/assets/hbm/textures/models/explosion/balefire.png delete mode 100644 src/main/resources/assets/hbm/textures/models/explosion/fireball.png diff --git a/changelog b/changelog index 00bf6aad3..12a0a3ec7 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,8 @@ * All launch pad blocks can now accept items, not just ports * Removed the old watz pellets and titanium filter * Removed copper panels, cast copper plates now take its place in most use-cases +* Removed generator bodies and rotors, recipes use 6 dense gold wires per generator instead +* Removed reinforced turbine shafts, most turbines now use HSS pipes instead * Removed the steam batteries (why did we even have those?) * Large and small shells have been merged into a single item which uses material autogen * A copper variant for shells has been added which is used for artillery shells @@ -14,7 +16,11 @@ * Most instances of the expensive steel pipes as well as the decorative pipes which need tons of microcrafting have been replaced with a new pipe item * The new pipes also use autogen, being available in different materials * Some of the recipes that used the small shells now use pipes instead +* Tenfolded the throughout of powered condensers +* Regular and combo filters now work for blistering agents (like mustard gas or air pollution) +* Wires now render two faces instead of one, making them appear equally thick from any viewed angle ## Fixed * Fixed crash caused by invalid default loot pool configuration -* Fixeed enchantment glint not rendering on upscaled items like certain swords or tier 2 pickaxes +* Fixed enchantment glint not rendering on upscaled items like certain swords or tier 2 pickaxes +* Fixed wire connections becoming invisible when pointing straight down, wires should now rotate correctly diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index 219d3d70a..c372460cf 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -141,7 +141,6 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(metalList, ModItems.coil_copper, 10); BlockCrate.addToListWithWeight(metalList, ModItems.tank_steel, 9); BlockCrate.addToListWithWeight(metalList, ModItems.blade_titanium, 3); - BlockCrate.addToListWithWeight(metalList, ModItems.bolt_compound, 2); BlockCrate.addToListWithWeight(metalList, ModItems.piston_selenium, 6); // Red Crate diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 129194363..075cf73e0 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -18,11 +18,14 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.relauncher.Side; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.monster.IMob; +import net.minecraft.init.Blocks; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -31,6 +34,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; +import net.minecraft.world.gen.ChunkProviderServer; import net.minecraftforge.event.entity.living.LivingSpawnEvent; import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; import net.minecraftforge.event.world.WorldEvent; @@ -183,6 +187,8 @@ public class PollutionHandler { public void updateSystem(TickEvent.ServerTickEvent event) { if(event.side == Side.SERVER && event.phase == Phase.END) { + + handleWorldDestruction(); eggTimer++; if(eggTimer < 60) return; @@ -252,6 +258,43 @@ public class PollutionHandler { } } + protected static final float DESTRUCTION_THRESHOLD = 15F; + protected static final int DESTRUCTION_COUNT = 5; + + protected static void handleWorldDestruction() { + + for(Entry entry : perWorld.entrySet()) { + + World world = entry.getKey(); + WorldServer serv = (WorldServer) world; + ChunkProviderServer provider = (ChunkProviderServer) serv.getChunkProvider(); + + for(Entry pollution : entry.getValue().pollution.entrySet()) { + + float poison = pollution.getValue().pollution[PollutionType.POISON.ordinal()]; + if(poison < DESTRUCTION_THRESHOLD) continue; + + ChunkCoordIntPair entryPos = pollution.getKey(); + + for(int i = 0; i < DESTRUCTION_COUNT; i++) { + int x = (entryPos.chunkXPos << 6) + world.rand.nextInt(64); + int z = (entryPos.chunkZPos << 6) + world.rand.nextInt(64); + + if(provider.chunkExists(x >> 4, z >> 4)) { + int y = world.getHeightValue(x, z) - world.rand.nextInt(3) + 1; + Block b = world.getBlock(x, y, z); + + if(b == Blocks.grass || (b == Blocks.dirt && world.getBlockMetadata(x, y, z) == 0)) { + world.setBlock(x, y, z, Blocks.dirt, 1, 3); + } else if(b == Blocks.tallgrass || b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { + world.setBlock(x, y, z, Blocks.air); + } + } + } + } + } + } + ////////////////////// /// DATA STRUCTURE /// ////////////////////// diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 195ca3537..9bdb12bcd 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -375,7 +375,7 @@ public class OreDictManager { CO .nugget(fragment_cobalt) .nugget(nugget_cobalt) .billet(billet_cobalt) .ingot(ingot_cobalt) .dust(powder_cobalt) .dustSmall(powder_cobalt_tiny) .block(block_cobalt) .ore(ore_cobalt, ore_nether_cobalt); B .nugget(fragment_boron) .ingot(ingot_boron) .dustSmall(powder_boron_tiny) .dust(powder_boron) .block(block_boron); GRAPHITE .ingot(ingot_graphite) .block(block_graphite); - DURA .ingot(ingot_dura_steel) .dust(powder_dura_steel) .block(block_dura_steel); + DURA .ingot(ingot_dura_steel) .dust(powder_dura_steel) .plate(plate_dura_steel) .block(block_dura_steel); POLYMER .ingot(ingot_polymer) .dust(powder_polymer) .block(block_polymer); BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite) .block(block_bakelite); LATEX .gem(ball_resin) .ingot(ingot_biorubber); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 027833121..0e6c14627 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -210,7 +210,7 @@ public class Fluids { public static final FT_Polluting P_OIL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_UNREFINED_OIL).release(PollutionType.POISON, POISON_OIL); public static final FT_Polluting P_FUEL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).release(PollutionType.POISON, POISON_OIL); - public static final FT_Polluting P_FUEL_LEADED = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).burn(PollutionType.HEAVYMETAL, LEAD_FUEL).release(PollutionType.POISON, POISON_OIL).release(PollutionType.HEAVYMETAL, LEAD_FUEL); + public static final FT_Polluting P_FUEL_LEADED = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).burn(PollutionType.HEAVYMETAL, LEAD_FUEL).release(PollutionType.POISON, POISON_OIL).release(PollutionType.HEAVYMETAL, LEAD_FUEL * 0.1F); public static final FT_Polluting P_GAS = new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS); public static final FT_Polluting P_LIQUID_GAS = new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS * 2F); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 8bddda851..e346213d3 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -116,7 +116,7 @@ public class Mats { public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(BOLT, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(BOLT, INGOT, DUST, PIPE, BLOCK); public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK); public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index ae0982584..41ed8702a 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -183,8 +183,8 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); - makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); + makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new OreDictStack(DURA.pipe(), 4), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); @@ -330,7 +330,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(STEEL.plate528(), 12), new OreDictStack(IRON.plate(), 8), new OreDictStack(CU.ingot(), 8), - new ComparableStack(ModItems.generator_steel, 1), + new OreDictStack(GOLD.wireDense(), 6), new ComparableStack(ModItems.tank_steel, 2), new OreDictStack(W.bolt(), 16), new ComparableStack(ModItems.wire_red_copper, 24), @@ -362,14 +362,14 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(ANY_PLASTIC.ingot(), 12), new OreDictStack(CU.plate(), 24), new OreDictStack(W.ingot(), 16), - new ComparableStack(ModItems.bolt_compound, 16) + new OreDictStack(DURA.pipe(), 4) }, 200); makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.STARMETAL.ordinal()), new AStack[] { new OreDictStack(STAR.ingot(), 24), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new OreDictStack(NB.ingot(), 16), - new ComparableStack(ModItems.bolt_compound, 16) + new OreDictStack(DURA.pipe(), 4) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_excavator, 1), new AStack[] { @@ -434,8 +434,8 @@ public class AssemblerRecipes extends SerializableRecipe { !exp ? new OreDictStack(STEEL.plate528(), 12) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), - new ComparableStack(ModItems.generator_steel, 1), - new ComparableStack(ModItems.bolt_compound, 3), + new OreDictStack(GOLD.wireDense(), 6), + new OreDictStack(DURA.pipe(), 3), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.circuit_aluminium, 1), }, 200); @@ -447,8 +447,8 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.turbine_tungsten, 5), new ComparableStack(ModItems.turbine_titanium, 3), new ComparableStack(ModItems.flywheel_beryllium, 1), - new ComparableStack(ModItems.generator_steel, 10), - new ComparableStack(ModItems.bolt_compound, 16), + new OreDictStack(GOLD.wireDense(), 48), + new OreDictStack(DURA.pipe(), 16), new OreDictStack(STEEL.pipe(), 16) }, 600); @@ -789,13 +789,11 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.crystal_diamond, 1) }, 400); makeRecipe(new ComparableStack(Item.getItemFromBlock(ModBlocks.machine_fel), 1), new AStack[] { - new ComparableStack(ModBlocks.fusion_conductor, 16), new ComparableStack(ModBlocks.machine_lithium_battery, 2), - new OreDictStack(STEEL.ingot(), 16), + new OreDictStack(ALLOY.wireDense(), 64), !exp ? new OreDictStack(STEEL.plate528(), 24) : new OreDictStack(STEEL.heavyComp(), 1), - new OreDictStack(ANY_PLASTIC.ingot(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit_red_copper, 4), - new ComparableStack(ModItems.wire_red_copper, 64), new ComparableStack(ModItems.coil_advanced_torus, 16), new ComparableStack(ModItems.circuit_gold, 1) }, 400); diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index aa3449238..84ef79b00 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -80,6 +80,7 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.PLATE, new OreDictStack(SA326.ingot()), ModItems.plate_schrabidium); makeRecipe(StampType.PLATE, new OreDictStack(CMB.ingot()), ModItems.plate_combine_steel); makeRecipe(StampType.PLATE, new OreDictStack(BIGMT.ingot()), ModItems.plate_saturnite); + makeRecipe(StampType.PLATE, new OreDictStack(DURA.ingot()), ModItems.plate_dura_steel); makeRecipe(StampType.WIRE, new OreDictStack(AL.ingot()), new ItemStack(ModItems.wire_aluminium, 8)); makeRecipe(StampType.WIRE, new OreDictStack(CU.ingot()), new ItemStack(ModItems.wire_copper, 8)); diff --git a/src/main/java/com/hbm/items/ItemCustomLore.java b/src/main/java/com/hbm/items/ItemCustomLore.java index 8ca98815c..b8598c288 100644 --- a/src/main/java/com/hbm/items/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/ItemCustomLore.java @@ -17,7 +17,8 @@ import net.minecraft.util.EnumChatFormatting; public class ItemCustomLore extends Item { - EnumRarity rarity; + protected EnumRarity rarity; + protected boolean hasEffect = false; @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { @@ -80,21 +81,19 @@ public class ItemCustomLore extends Item { @Override @SideOnly(Side.CLIENT) - public boolean hasEffect(ItemStack p_77636_1_) { - if(this == ModItems.rune_isa || this == ModItems.rune_dagaz || - this == ModItems.rune_hagalaz || this == ModItems.rune_jera || - this == ModItems.rune_thurisaz || this == ModItems.egg_balefire_shard || - this == ModItems.egg_balefire) { - return true; - } - - return false; + public boolean hasEffect(ItemStack stack) { + return hasEffect; } public ItemCustomLore setRarity(EnumRarity rarity) { this.rarity = rarity; return this; } + + public ItemCustomLore setEffect() { + this.hasEffect = true; + return this; + } @Override public Item setUnlocalizedName(String uloc) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index cc639c629..655721323 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -309,6 +309,7 @@ public class ModItems { public static Item ingot_osmiridium; public static Item nugget_osmiridium; public static Item plate_lead; + public static Item plate_dura_steel; public static Item nugget_schrabidium; public static Item plate_schrabidium; public static Item plate_copper; @@ -332,7 +333,6 @@ public class ModItems { public static Item plate_euphemium; public static Item bolt; public static Item bolt_spike; - public static Item bolt_compound; public static Item plate_polymer; public static Item plate_kevlar; public static Item plate_dineutronium; @@ -668,8 +668,6 @@ public class ModItems { public static Item sphere_steel; public static Item pedestal_steel; public static Item dysfunctional_reactor; - public static Item rotor_steel; - public static Item generator_steel; public static Item blade_titanium; public static Item turbine_titanium; public static Item generator_front; @@ -2568,6 +2566,7 @@ public class ModItems { plate_iron = new Item().setUnlocalizedName("plate_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_iron"); ingot_lead = new Item().setUnlocalizedName("ingot_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lead"); plate_lead = new Item().setUnlocalizedName("plate_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_lead"); + plate_dura_steel = new Item().setUnlocalizedName("plate_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dura_steel"); ingot_schraranium = new ItemSchraranium().setUnlocalizedName("ingot_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schraranium"); ingot_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidium"); ingot_schrabidate = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidate"); @@ -2593,7 +2592,6 @@ public class ModItems { plate_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium"); bolt = new ItemAutogen(MaterialShapes.BOLT).setUnlocalizedName("bolt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt"); bolt_spike = new ItemCustomLore().setUnlocalizedName("bolt_spike").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_spike"); - bolt_compound = new Item().setUnlocalizedName("bolt_compound").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_compound"); plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_polymer"); plate_kevlar = new Item().setUnlocalizedName("plate_kevlar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_kevlar"); plate_dineutronium = new Item().setUnlocalizedName("plate_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dineutronium"); @@ -3021,8 +3019,6 @@ public class ModItems { sphere_steel = new Item().setUnlocalizedName("sphere_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sphere_steel"); pedestal_steel = new Item().setUnlocalizedName("pedestal_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pedestal_steel"); dysfunctional_reactor = new Item().setUnlocalizedName("dysfunctional_reactor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dysfunctional_reactor"); - rotor_steel = new Item().setUnlocalizedName("rotor_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rotor_steel"); - generator_steel = new Item().setUnlocalizedName("generator_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":generator_steel"); blade_titanium = new Item().setUnlocalizedName("blade_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_titanium"); turbine_titanium = new Item().setUnlocalizedName("turbine_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":turbine_titanium"); generator_front = new Item().setUnlocalizedName("generator_front").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":generator_front"); @@ -3159,19 +3155,16 @@ public class ModItems { tritium_deuterium_cake = new ItemCustomLore().setUnlocalizedName("tritium_deuterium_cake").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":tritium_deuterium_cake"); - piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":piston_selenium"); + piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":piston_selenium"); piston_set = new ItemPistons().setUnlocalizedName("piston_set").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); drillbit = new ItemDrillbit().setUnlocalizedName("drillbit").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); - - //crystal_energy = new ItemCustomLore().setUnlocalizedName("crystal_energy").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":crystal_energy"); - //pellet_coolant = new ItemCustomLore().setUnlocalizedName("pellet_coolant").setMaxDamage(41400).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_coolant"); - rune_blank = new ItemCustomLore().setUnlocalizedName("rune_blank").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_blank"); - rune_isa = new ItemCustomLore().setUnlocalizedName("rune_isa").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_isa"); - rune_dagaz = new ItemCustomLore().setUnlocalizedName("rune_dagaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_dagaz"); - rune_hagalaz = new ItemCustomLore().setUnlocalizedName("rune_hagalaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_hagalaz"); - rune_jera = new ItemCustomLore().setUnlocalizedName("rune_jera").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_jera"); - rune_thurisaz = new ItemCustomLore().setUnlocalizedName("rune_thurisaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_thurisaz"); + rune_blank = new ItemCustomLore().setEffect().setUnlocalizedName("rune_blank").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_blank"); + rune_isa = new ItemCustomLore().setEffect().setUnlocalizedName("rune_isa").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_isa"); + rune_dagaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_dagaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_dagaz"); + rune_hagalaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_hagalaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_hagalaz"); + rune_jera = new ItemCustomLore().setEffect().setUnlocalizedName("rune_jera").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_jera"); + rune_thurisaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_thurisaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_thurisaz"); ams_catalyst_blank = new Item().setUnlocalizedName("ams_catalyst_blank").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_blank"); ams_catalyst_aluminium = new ItemCatalyst(0xCCCCCC, 1000000, 1.15F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_aluminium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_aluminium"); @@ -6048,6 +6041,7 @@ public class ModItems { GameRegistry.registerItem(plate_lead, plate_lead.getUnlocalizedName()); GameRegistry.registerItem(plate_copper, plate_copper.getUnlocalizedName()); GameRegistry.registerItem(plate_advanced_alloy, plate_advanced_alloy.getUnlocalizedName()); + GameRegistry.registerItem(plate_dura_steel, plate_dura_steel.getUnlocalizedName()); GameRegistry.registerItem(neutron_reflector, neutron_reflector.getUnlocalizedName()); GameRegistry.registerItem(plate_schrabidium, plate_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(plate_combine_steel, plate_combine_steel.getUnlocalizedName()); @@ -6073,12 +6067,13 @@ public class ModItems { //Heavy/Cast Plate GameRegistry.registerItem(plate_cast, plate_cast.getUnlocalizedName()); GameRegistry.registerItem(plate_welded, plate_welded.getUnlocalizedName()); + GameRegistry.registerItem(shell, shell.getUnlocalizedName()); + GameRegistry.registerItem(pipe, pipe.getUnlocalizedName()); GameRegistry.registerItem(heavy_component, heavy_component.getUnlocalizedName()); //Bolts GameRegistry.registerItem(bolt, bolt.getUnlocalizedName()); GameRegistry.registerItem(bolt_spike, bolt_spike.getUnlocalizedName()); - GameRegistry.registerItem(bolt_compound, bolt_compound.getUnlocalizedName()); //Cloth GameRegistry.registerItem(hazmat_cloth, hazmat_cloth.getUnlocalizedName()); @@ -6151,8 +6146,6 @@ public class ModItems { GameRegistry.registerItem(component_emitter, component_emitter.getUnlocalizedName()); //Bomb Parts - GameRegistry.registerItem(shell, shell.getUnlocalizedName()); - GameRegistry.registerItem(pipe, pipe.getUnlocalizedName()); GameRegistry.registerItem(fins_flat, fins_flat.getUnlocalizedName()); GameRegistry.registerItem(fins_small_steel, fins_small_steel.getUnlocalizedName()); GameRegistry.registerItem(fins_big_steel, fins_big_steel.getUnlocalizedName()); @@ -6161,8 +6154,6 @@ public class ModItems { GameRegistry.registerItem(sphere_steel, sphere_steel.getUnlocalizedName()); GameRegistry.registerItem(pedestal_steel, pedestal_steel.getUnlocalizedName()); GameRegistry.registerItem(dysfunctional_reactor, dysfunctional_reactor.getUnlocalizedName()); - GameRegistry.registerItem(rotor_steel, rotor_steel.getUnlocalizedName()); - GameRegistry.registerItem(generator_steel, generator_steel.getUnlocalizedName()); GameRegistry.registerItem(blade_titanium, blade_titanium.getUnlocalizedName()); GameRegistry.registerItem(blade_tungsten, blade_tungsten.getUnlocalizedName()); GameRegistry.registerItem(turbine_titanium, turbine_titanium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java index db802776a..b5cc90139 100644 --- a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -58,7 +58,7 @@ public class ItemPWRFuel extends ItemEnumMulti { String reset = EnumChatFormatting.RESET + ""; list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); - list.add(color + "Reacton function: " + reset + num.function.getLabelForFuel()); + list.add(color + "Reaction function: " + reset + num.function.getLabelForFuel()); list.add(color + "Fuel type: " + reset + num.function.getDangerFromFuel()); } } diff --git a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java index f4dfbeae7..8ed05aa4b 100644 --- a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java @@ -139,7 +139,7 @@ public class ItemWatzPellet extends ItemEnumMulti { } if(num.heatEmission > 0) list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); if(num.burnFunc != null) { - list.add(color + "Reacton function: " + reset + num.burnFunc.getLabelForFuel()); + list.add(color + "Reaction function: " + reset + num.burnFunc.getLabelForFuel()); list.add(color + "Fuel type: " + reset + num.burnFunc.getDangerFromFuel()); } if(num.heatDiv != null) list.add(color + "Thermal multiplier: " + reset + num.heatDiv.getLabelForFuel() + " TU⁻¹"); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index df97f94fc..04b67bc0d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -97,7 +97,6 @@ public class CraftingManager { addRecipeAuto(Mats.MAT_DURA.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', DURA.ingot()}); addRecipeAuto(new ItemStack(ModItems.bolt_spike, 2), new Object[] { "BB", "B ", "B ", 'B', STEEL.bolt()}); addRecipeAuto(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', STEEL.block() }); - addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', DURA.bolt(), 'T', W.bolt(), 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_RUBBER.ingot() }); @@ -210,8 +209,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.lemon, 1), new Object[] { " D ", "DSD", " D ", 'D', KEY_YELLOW, 'S', "stone" }); addRecipeAuto(new ItemStack(ModItems.blade_titanium, 2), new Object[] { "TP", "TP", "TT", 'P', TI.plate(), 'T', TI.ingot() }); addRecipeAuto(new ItemStack(ModItems.turbine_titanium, 1), new Object[] { "BBB", "BSB", "BBB", 'B', ModItems.blade_titanium, 'S', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.rotor_steel, 3), new Object[] { "CCC", "SSS", "CCC", 'C', ModItems.coil_gold, 'S', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.generator_steel, 1), new Object[] { "RRR", "CCC", "SSS", 'C', ModItems.coil_gold_torus, 'S', STEEL.ingot(), 'R', ModItems.rotor_steel }); addRecipeAuto(new ItemStack(ModItems.shimmer_head, 1), new Object[] { "SSS", "DTD", "SSS", 'S', STEEL.ingot(), 'D', DESH.block(), 'T', W.block() }); addRecipeAuto(new ItemStack(ModItems.shimmer_axe_head, 1), new Object[] { "PII", "PBB", "PII", 'P', STEEL.plate(), 'B', DESH.block(), 'I', W.ingot() }); addRecipeAuto(new ItemStack(ModItems.shimmer_handle, 1), new Object[] { "GP", "GP", "GP", 'G', GOLD.plate(), 'P', ANY_PLASTIC.ingot() }); @@ -221,7 +218,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.definitelyfood, 4), new Object[] { ANY_RUBBER.ingot(), Items.wheat, Items.rotten_flesh, Items.wheat_seeds, Items.wheat_seeds, Items.wheat_seeds }); addRecipeAuto(new ItemStack(ModItems.turbine_tungsten, 1), new Object[] { "BBB", "BSB", "BBB", 'B', ModItems.blade_tungsten, 'S', DURA.ingot() }); addRecipeAuto(new ItemStack(ModItems.ring_starmetal, 1), new Object[] { " S ", "S S", " S ", 'S', STAR.ingot() }); - addRecipeAuto(new ItemStack(ModItems.flywheel_beryllium, 1), new Object[] { "IBI", "BTB", "IBI", 'B', BE.block(), 'I', IRON.plateCast(), 'T', ModItems.bolt_compound }); + addRecipeAuto(new ItemStack(ModItems.flywheel_beryllium, 1), new Object[] { "IBI", "BTB", "IBI", 'B', BE.block(), 'I', IRON.plateCast(), 'T', DURA.pipe() }); addShapelessAuto(new ItemStack(ModItems.powder_poison), new Object[] { DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.NIGHTSHADE) }); addShapelessAuto(new ItemStack(ModItems.syringe_metal_stimpak), new Object[] { ModItems.syringe_metal_empty, Items.carrot, DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.FOXGLOVE) }); //xander root and broc flower diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index c58de94de..cc6778d93 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1288,6 +1288,9 @@ public class MainRegistry { ignoreMappings.add("hbm:item.gas_biogas"); ignoreMappings.add("hbm:item.gas_lpg"); ignoreMappings.add("hbm:item.gun_coilgun_ammo"); + ignoreMappings.add("hbm:item.rotor_steel"); + ignoreMappings.add("hbm:item.generator_steel"); + ignoreMappings.add("hbm:item.bolt_compound"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java index 5a5e64388..f7ffccd91 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java @@ -214,28 +214,35 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { public void drawLineSegment(Tessellator tessellator, double x, double y, double z, double a, double b, double c) { double girth = 0.03125D; - - double dX = x - a; - double dY = y - b; - double dZ = z - c; - double length = Math.sqrt(dX * dX + dY * dY + dZ * dZ); + + double deltaX = a - x; + double deltaY = b - y; + double deltaZ = c - z; + double hyp = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ); + double yaw = Math.atan2(deltaX, deltaZ); + double pitch = Math.atan2(deltaY, hyp); + double rotator = Math.PI * 0.5D; + double newPitch = pitch + rotator; + double newYaw = yaw + rotator; + double iZ = Math.cos(yaw) * Math.cos(newPitch) * girth; + double iX = Math.sin(yaw) * Math.cos(newPitch) * girth; + double iY = Math.sin(newPitch) * girth; + double jZ = Math.cos(newYaw) * Math.cos(newPitch) * girth; + double jX = Math.sin(newYaw) * Math.cos(newPitch) * girth; + double length = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); int wrap = (int) Math.ceil(length * 8); - if(dX + dZ < 0) wrap *= -1; + if(deltaX + deltaZ < 0) wrap *= -1; tessellator.setColorOpaque_I(0xffffff); - tessellator.addVertexWithUV(x, y + girth, z, 0, 0); - tessellator.addVertexWithUV(x, y - girth, z, 0, 1); - tessellator.addVertexWithUV(a, b - girth, c, wrap, 1); - tessellator.addVertexWithUV(a, b + girth, c, wrap, 0); - /*tessellator.addVertex(x + girth, y, z); - tessellator.addVertex(x - girth, y, z); - tessellator.addVertex(a + girth, b, c); - tessellator.addVertex(a - girth, b, c); - tessellator.addVertex(x, y, z + girth); - tessellator.addVertex(x, y, z - girth); - tessellator.addVertex(a, b, c + girth); - tessellator.addVertex(a, b, c - girth);*/ + tessellator.addVertexWithUV(x + iX, y + iY, z + iZ, 0, 0); + tessellator.addVertexWithUV(x - iX, y - iY, z - iZ, 0, 1); + tessellator.addVertexWithUV(a - iX, b - iY, c - iZ, wrap, 1); + tessellator.addVertexWithUV(a + iX, b + iY, c + iZ, wrap, 0); + tessellator.addVertexWithUV(x + jX, y, z + jZ, 0, 0); + tessellator.addVertexWithUV(x - jX, y, z - jZ, 0, 1); + tessellator.addVertexWithUV(a - jX, b, c - jZ, wrap, 1); + tessellator.addVertexWithUV(a + jX, b, c + jZ, wrap, 0); } public static final int LINE_COLOR = 0xBB3311; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java index 8051f40ff..2e9e58b18 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java @@ -22,8 +22,8 @@ public class TileEntityCondenserPowered extends TileEntityCondenser implements I public TileEntityCondenserPowered() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 100_000); - tanks[1] = new FluidTank(Fluids.WATER, 100_000); + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 1_000_000); + tanks[1] = new FluidTank(Fluids.WATER, 1_000_000); } @Override diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index 5d84f1d3d..ece9306a9 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -30,9 +30,9 @@ public class ArmorUtil { */ public static void register() { - ArmorRegistry.registerHazard(ModItems.gas_mask_filter, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA); ArmorRegistry.registerHazard(ModItems.gas_mask_filter_mono, HazardClass.PARTICLE_COARSE, HazardClass.GAS_MONOXIDE); - ArmorRegistry.registerHazard(ModItems.gas_mask_filter_combo, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter_combo, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE); ArmorRegistry.registerHazard(ModItems.gas_mask_filter_rag, HazardClass.PARTICLE_COARSE); ArmorRegistry.registerHazard(ModItems.gas_mask_filter_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_LUNG); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 62a7c4f9b..2a1bfc4be 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2740,6 +2740,7 @@ item.plate_copper.name=Kupferplatte item.plate_dalekanium.name=Wütendes Metall item.plate_desh.name=Desh-Verbundplatte item.plate_dineutronium.name=Dineutronium-Verbundplatte +item.plate_dura_steel.name=Schnellarbeitsstahlplatte item.plate_euphemium.name=Euphemium-Verbundplatte item.plate_gold.name=Goldplatte item.plate_iron.name=Eisenplatte @@ -3530,7 +3531,7 @@ shape.ingot=Barren shape.nugget=Nugget shape.quantum=Quantum shape.quart=Viertel Block -shape.pipe=Rohr +shape.ntmpipe=Rohr shape.plate=Platte shape.plateTriple=Gussplatte shape.shell=Mantel @@ -4090,6 +4091,7 @@ tile.lantern.name=Laterne tile.lantern_behemoth.name=Alte Laterne tile.launch_pad.name=Silo-Startrampe tile.launch_pad_large.name=Startrampe +tile.launch_pad_rusted.name=Alte Startrampe tile.launch_table.name=Große Startrampe tile.leaves_layer.name=Totes Laub tile.lox_barrel.name=LOX-Fass diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 69ef7d8fd..6e1b02c44 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3585,6 +3585,7 @@ item.plate_copper.name=Copper Plate item.plate_dalekanium.name=Angry Metal item.plate_desh.name=Desh Compound Plate item.plate_dineutronium.name=Dineutronium Compound Plate +item.plate_dura_steel.name=High-Speed Steel Plate item.plate_euphemium.name=Euphemium Compound Plate item.plate_fuel_mox.name=MOX Plate Fuel item.plate_fuel_pu238be.name=Pu238Be Plate Fuel @@ -4539,7 +4540,7 @@ shape.ingot=Ingot shape.nugget=Nugget shape.quantum=Quantum shape.quart=Quarter Block -shape.pipe=Pipe +shape.ntmpipe=Pipe shape.plate=Plate shape.plateTriple=Cast Plate shape.shell=Shell @@ -5139,6 +5140,7 @@ tile.lantern.name=Lantern tile.lantern_behemoth.name=Old Lantern tile.launch_pad.name=Silo Launch Pad tile.launch_pad_large.name=Launch Pad +tile.launch_pad_rusted.name=Old Launch Pad tile.launch_table.name=Large Launch Pad tile.leaves_layer.name=Fallen Leaves tile.lox_barrel.name=LOX Barrel diff --git a/src/main/resources/assets/hbm/textures/items/plate_dura_steel.png b/src/main/resources/assets/hbm/textures/items/plate_dura_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..4b2dba2c67f0a26638aebd96bb11991966e49867 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfSN$@O!qY42b)zik^E9NZ!Bx=JxHJ3+BY%vnB~VT;7BWoeu5 zevX~1-Wg>rIO9R!h2zr{j~y)qnzDQQ;gCgQ#s?o)*y-P8Z1{X#{njlNhS=cGUw-*< zEO$Lwd{V~8a8ldD?d->XFX?JZ|L+JC{b{*je@xxCmIcey?s=`L-N~I6pQu;KlE%7t ui9wr)^2SwR2X`CZQ_s!)_WIx67{*0kXT0&4vfdKtTLw>8KbLh*2~7Y9HGFCS literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/explosion/Ring2.png b/src/main/resources/assets/hbm/textures/models/explosion/Ring2.png deleted file mode 100644 index 89bc8bca55e5465fba55ee34b526f2742aaac244..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94 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Ú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

    y;RQfAN|d2J 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

    71Pj7iM5X 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%0D!GQ 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 z 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ⅅ&anZ~j3KzlTxaW&k|&cJkEyJM$WrlmSI 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%0D*Dks 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%0AKo;Sw$BtVaF<@kWKzr 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�oW(Xn9C1}B^hvA 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®(mhU&KvxvFbw?Qy1hJAUZN>x@6DHz-) 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éyAH z!r}_%?$|4#rsM^n&&-NFKwcyRfbB^anorj^Fll@g%1|J#KM$nFDlO10dxtzd z&t#Q9GoX6=1Cwj2q^Cmc_y~i%hQg*$y_*d8Y5KKK*+S$8b%%Fuc%GiLjy4WXb(uO0 z$V+PwO-81`GK_u0CI2DKySLXpEkDMCc0>0(J~J_2L;~F)WaC$KPIj&)O<|)BA4-?{ zwzs2S5$J2g?s>aG_)17iHO4y}M*Q_0hhm z(R45wzti_7{`(gI>!c)22z@{THm0Z{MeI5nQ|6qqn+yOos~(hA2Sd0$LDScU8`^Q< zSR1}K?m`7?aVA2g$ej{ri>A~2seRv}*QI3F1SU~8w?H|~eq*bzU~JL^CWlZ7N2>g8 z9CFP9U4skF7p^5W1k^8@R?cc8PDCtwk3*aEPQZ{z3P{i!zycls?5rtJ#X2dP#Erh2 z~Cen%mV~b{Z6*(d5zDvs(;)e&hok4><5VEg%M?i5?dlXDaiZmeS zn&F&xgxY4+0Py5aIv6?8)zKPXy>{aOUigBv001BWNkl8b$dm-~LUjdy zRj;@<+SVd=&xNJ=m#u3<6E(g}V^$Z87E?cbxFw@;gsN`Z!yV$iXHP@lQPEuj->JIk zQTT>Ui_pXRg)#9=!^vqA%SuZA=cQMcJ?|GC?v;WbW%0HSCkFG-4OD$RAD2F8a!hB;Ol?O6$x z11)z!V`8KEi7KHCPaxCMw7dZOVZnB=Q~L=|XoZ47otc z-!Vx49ex+Hp4;cS?YtM^TK+?Z6r(AerT7IkUqeGVPiTS&<;RK^r4w{ z{zs#R!!%r(K>(E3MeE?HHtiSJXlAmz7IzvSFva72*8UQA@a=S6l zx^rq16JMRJjh}NWGej^|=a-&)2r|jPhag08et^xjy^TP@m5NMOcl7*=GOOqxLSu>Z zWYfZ9OxeD2)#&9B(e0w&Pdw_!UazLiD-pKKz9GrpNS2pi37ooS5fDf z0Cng56T5D>DEssaWq?`{QHXibHtvLc|Gygmgj}I|Q&@chq2@!3dt8(C<(SrpxMM=> zd}(=1b0S<`?-eh*hO<1tx!6(98+7Xtx@nwIc~0>$Jn=BA4u*s2pxJ8{4#NuG@sV&b zN_uOLq+9?4^vl1BZ_iP2ii@yGwE@fKPf_ZPRgb5v#(hy^XE#edccO>qgCN=S_;b%F zR)&(mvGne41XB|xLIc1d*j8a@O8Z-d)Iub*>F?jaL_Q5Mi3h9UzON^qUB79Z9k}Ww z!w&SqfRd5co&KD8J!Iqt3C}bq_n%>FO~g7!fHA<)l6C?SROBY^?@Jw5nO_LSvjLvY zIr>$IMMPba-`$%E=t2vYO(t`!ankq-Am1yp`&;tZBS&Fpg(p#1!}K+>I~Pc>53-Qy&c=(#a2)##I{ z-oKxPNLLpq&zMrPmN4yQV${wq)|EZBILI1ITX_U!2~PH#A>cRE^ZSBu8fR$u@Cij= zcV4*#*P;V9zlna9j`6`g1@~*>Zki`>A8neW_~BSWL<^07yV zb$AZk9-yvF^CD zV?Egq3bcIA3Sh~1n2(%1&j4&JDWnEFY?MB#()`L_D#jvl{j=CS7VP(lx~)02!l&xt zv$+bRO-^#gw{8GX_Q{@~L+6%$LwDuvtG%GWi6{;>yGR%~m*K_|qfxUFR)akL^mmZ7 z*7(gc0>PlO4O^WLMm^gYt%_U!1N>U~O)=gowAFIam#R*f!a-%-8x;e{x~>ehUu6@~ z51ko>Tm$!euaQ12p~bRTCO1Nd^K#*AW)Qxf>^b%n4ehG_ROX1J6oo-k?QZ)LT(Oe}cKH z18nJJ{9<)4){u>Yv?Z=u2l52e7b3_eE#K$v$wkCp2wp5R_%7((Zr1p{r?`MYS@bVOR9Og2+eFzH6eF5QDD<6oiX(qQ66u2+#Iu z8-Rzbu&!rI}zY@YX7j_m1^;$pRBZG1(aO z?G-49R6^CONLYoaT%~vpjUKfc39%ajs+_lRzkkjoHIl{_7hAi3U~8xj=iftYlbg)| zprMJ1Tq&;_zH2MLh0xwt|28{1Tmah{ZX4E(y_oc1C9f3H}0i#FG7s{02n`o~9IGrwS>@+XQ zym`cAZmqNxA&v7=$4XxfoHw>0nDp|k>un;>MkbWyiB73$Ykw{f(lModzM~hwEquT| zTz^zxc(WSRyg%X8s=w>9(Sv?J$~8)ww_}9P>C2q?8|ClTP<*z0U~7%FS9L~Aamb$K z$%oGltBbyU5KMj#95N5)X&o%5v&AYCR6P&#z)}9GJeVoGNM3*A_67t35c$Q_l!L>( z?cH=r0^=`(p$`Ug)+<5EQOEn8{chh8cj5}Q735jVkVf@h(@Lc-c9x082#?#6AJq52 z(Bjns;`P*=2WwvtgA0l4tRM29?sjfqVmQE5a*UM0Bo!tBl8ccJ%vB@RT z=$-(DU$FluZDHh?bYXm(FzpI_rXWmGsKZH6I=qd9_{U0GL|>Y}gp0bJRTcFUqD8cQ zB7F+*6=jd8wXU2LnjycRD?_>UCQ?h~ zXF$czzSr-@aGO1h^V+lma@iPF8o;(Y8!r~ zT`+PLFKuWhW-hHZBE0_(L4<@=9-y2yTvY&vtr9OH+5&3a6fO_-#vDv`%&e4Sw>Bv} z43V*qjbqFZV%g+jsd}*cXB;TGtAD5d6C`j`HJStywNhiufMPV$abRoPD#Ti|e zPAH#NXLYumkzcGmv(7oTAZWMLfSYK+`B*|{b=QW(^}Mk>socUJ-FS-aL5lx;3xIhJ zGpRm7Ld|=?NYHkZI+79JoQ%_m!tRl1tAWT=ZG=w#Q!M&fL>tBEGNZ;)@3`G?d=JQ9 zPv<3-0Qwar^n19(YzvQ_lAba(ZX2r^?VH!tOp@Ra&o|4BKmDMnH-UV2O^i%XFaafH zHf2@~%QX|6bN~6#3EAGX{t7XD5i!$Re=o(0PF{%OqVbdI7NWHV5aEJBjTyyam{(|P z!f4oKnrW3N6~UR&gbfOoGH`%8UjT=;AyYZQ1cF*tMW^!1j~Hr)_y+r#8%zMqky*Vh z1Q@hP0NJ{VCeX&|v!5_rzj+hdwIU*L0&!N1RpI&pB}$)&Sxez<8l+s>xjlON5V#Re zR)sm_i2CnuqD5cy^>q}TQSoeqDC33BIQahlrb}-eTFt$&Mk&%Hf97cc;3TT|4i&-g z9F3rKPztTQa^-{d!Dt|8^*EDJJ13yZ4$lq9i9>$Q8v~TJM9hm7R0NqhCes%!K9jg? z*pytjKY$>v`(YUR(5s0m8HBe`S@pfFx-Zx?>k?@|FqMA<~N{KEPm(*E@^f@38Y zrnzuftWg{aT)8tDsb25TtM$phQM=$+&*MJgFJe8eM2NnN<$Wq1ohX>#fJF_U>oDvD zSm*GUi0I3BX%TVUt&F|!d3c9J%XR%4o0f@aRZDPlYBTWWtsKv59lgX9ZU5w{!A8`_ zaPA(adnctmd=Qj@Cpn9HF~zUxEl!!Z)|Ko*Po%^6gmm&}NlF7k`i1X7;G|V~=ifrV zi?1TTgb!HX@h&wBLKYk7ZwEtgpiTQt#C~Udc$p|ISfJmW;Qs(k=P+I0TdTS<=@3nl zY~gIOmm^Q$8z16>=Vg^?{ic=_8y>q++phAIsz0oF`*)L{-4)-c@F%7fg^OVbu=5sh zyI~}sF&p7q$#2@|5+XA^9Iwkb{yVG&))_>yx5D|Q?aV}fgJ0WF(asIZrS%QbhMS8J z*XXzsm~>9!L81hwlL)qxK>q{3_*qp%Dl3KDZ#ICh<_X9;K@i30Zh+mCyoe#x?WdYN zO&#XNnbW?>+ie0&_O}m>G+jyf23l^5BpKvJ7{BKrD@Sc1H)LWP9HEQM+j@YR+*39hXZD6vrtg93yS zOqLka>dWTd#Kjb{7yg%e>KzGf+JoDK&t0i5dXvIPlx;V89EVY}=l$+68yH*{O}{lOWHU z@~?F1;}313ZzAUZ(P-MA6=7;sKBEX(`#G0Bp!#pdi~Oh8TCNp$TmsG za=1-oABt<~D-A>hh5>{_WVStR$Gm^_IFm&CG)Vu6vMr&| z7fti(sbK9T^V&Out=MtS5i`~{3acT?hp_Y zSzC{3rTS#+SuVdVoLE6Agj(VF;q%Y*mZ`h7myHW=PB zpFRl`UJ)HdXLutin%Ycy4<&@}P3jS?+uvB}ik%tRP#T5+UvWxEZ6?H}TEsNBPo( z?v{0=T0b293)3u;Lo#OQku(Waj%ihI<7LWI zznDNp{E(QcSU{(c1d(9~nBeYnBv1vpk_6W!l*zx*>*qQ!l{=0n@=)8vgR>>@CmO5f zF;x0ULc&gNr+BLhzD?Cj@}iV%Lqp0cAuZ@LC;*nHE6Wj)P5=Won?I5%qXRT@J=ixu zw=Qg)IAWcvvb8m*LoEOOI$L!({B(pAD*`x(IeVegb6wrQJn}G5U%ecPuHCe0@k&uP z4&c_uFMM5#;c5UNB0VFBL2nv0;uM4hb8$#Da(#S$yU}yS*fB%FDI6yLL=*=F!1b!m zfWI*S+%(bj_bJW3e9qvpXEp1NE||;AvsQ6m-WLg;-)p#F|9GC|`uGmh?fRbc0{Fsh zZ#n@je4beT>J`8`SFzQ9HoylNg&>Q4!UJ}bBVWu5pl_hbZCR$aK~L0*NH}>M3PmEj z3UoSZ<=n9K+~x_T>Fh`}zhEH-8&2T`*@p$cp?=JH&1n(I2JBGzEC4Rh6qqJ>A6jc< z%V>m?3=g-n#j|>~H|7I1v~ssg5F+}TC4+4BVSx0o-4_pJtNP?P5y)vDsaKps8xRrk zD&BCqkhiPsP+XIAztIrbdtnj}$dR$Nmnrk1G68hOJ^wr(DcCAy7l~ahQHO^NljmfJSkVtfbytGP^<#a1 z6Gaz%*b_w?;<*WjKJxjEW|Yq6`D1a2%A&Ci5-#gs+`$&&BB$Lf)Ib>5_?HkTNVCt= z!`Q;!iNboq{9mTO4m>Iog7EAmHLeV!ZCO1K%*pBofdy7Q50!2_X?t@Td70*FnI9Eo z5qTAe!1amd84#NQW*P#RRdI6|iVM>rPp0YnT4_?B1b5-vybYv>P2>mN*zfH5cTuF^ zJ@OVjmRT9S9zCX@o=e^Xc14_h6knuSTh0I!B9X6ZOX>7fNg_lfKl$JzWJ4d_1-49+ z1c9g+VD-G$+S2me+%4cqx&;0pXZ5*dc;>$Xp+ybSm*|wLT4kMTKE^$Q0)! zB^*(s;N{9a~b1KuTOS|RjN*5D<3Cwra*%fsE8vC?&Vy&nWF?@kjasypZ9|G zjjtz{wa&^ApFZ1+tXj{D2}Q;^8?0F3=iArAeCkr!>jz#HS>!yfMaVf3NCaKv$9Q$EAr@l|ByoM?mB2OAzlY_Te zXZc5N*?ulDy`Af#)0@48SiXtrZ{yWmuR@DUwjAX&eMS-IT9{rR_Hh8;YTJ)1PDtaE z@EKA_X4?@Un!E`1@ivPwn+0Mr)|kF0qGWLUfCBNFAtvz_gN-#dQ zyR1s~m89Z=z3SDRzbPS~gTIv!+=; zv_nsUXMa1%35}ep5(WUy+W-a7q3wv{&HcA+!$^AR+Td_~R!$Qf zcDeoyejq?u@t8w(8N~N_w$eQaMgsuFeBLK=@$H&dDegVI$)=lJnEI+N-9E*ADE^al zwYa*1ea-wOTp+?2xc(>t?a^2PQ%RpB7e> zPE>QQGe#T{wBJrY%5=0+BBW(f(ZhaGe+>P&@C!rpXPq#I+D|~&bhoom+@j=yW8ZoA z3}Pk8%#gkmGsQsqVv_dJQV$zPw2^Gb&s%K|nx@bvaU$;J=9@|kZz;_7WEz}8W z#9G9>&z7G;M_`*smwyA+vvSD`=0x(|DI5&Pz*m&y08UdZ8Fs|JtsGe^VYYI z^5K7mE8&+OR$pt`x5AyTUth6oGA>r31q141rSv2M<-(i@V-{V2ZTM$)w-rZ42~_w# zaGWqEI>NoX7K^hGJ4FyeudC}rc8xHTpYO*r$3;X7JR5ewKH3Puu zLUTzi;@ILs=DM!!-~0~fc=K|QUYN4du&_t#6KajbA1WFsaE_(Yf`SRujH(#~=9ly@NtN#=D~qhWMt znUg>aTg8`T2++I)$~ObR#>z&@n2^5KFvuXtOLTb|7sV`^U^=CneU&=*R3x1AeB@hXuK3*sV=7q<0DGVv>(55vB{0MIpT`Qq&C`4U{2-3kTjNc~ze)Qy zc+5mnhG7RJ`P|jo)F=9Mp`63Z39cA6TcJBWNJMwkKH$mcaFH>^!0g+eHTs_%TblzL z)-l2-DDmVWGO&yct5e#jlkho_xE+?^fK_xg+lSXlyomH5yIiL;ht?BF#VQu7{&8qb zZ*Hc{SVS@LOU$IiGF*YeY6!UMVJ96}&?A}=0X0?{OiF58%c#W~^q)?S~ z=jo<8WY3FL;8Xlw?XwvGGM2S=?b$4Wpyn9xxf5gPzS0 zVDE5AV#6L>CMMxctlnBj1T0|duDCuMDS7g5&*5!AvnrRiwW+8=>MJGLEyO*p&? zN4}f|MoS-jL|m`fHjDyG3!B=_Re=jj@o2)ffB*m>07*naR9K~Ch^mJgk4?{%wxqb@M>d7PXBhOFYxbwBOGEj3H@o= zA|l`pfG~rE;}av#T;KXbBu&_@X!lOi0f2^pM2AlnY*p>BNUU;KlEn=HK~N0r*k@x6 zo_DAUe)F>uga|s<_QW!LBG?)*g>cEYhBB=NGYvQAl}2^9ePKih~u1u8tue6vqloYeFxX#avC#0Fd#b%roV-C`6wLd2>yHU+m|CmIi5 z??uOuP$4BkX!~>?yRhz*XP#T|@TISNr%KE}PtZo0>Nl@Wj3rSTv`H+;EH1qNC4t^a z1Y)+fwIs`jPRc)p9py`9AUv?biiJ3=V8Y*}IflxR1@AtP^3zzURrA%I=_6vNEwB4l zr^$Nv;t3cjxsq487jAz$%~z6W(h3y&77feW6udS!qVL(WRch)J;DWca{!`hOi$1cq z%Aj5c%#SL2_xT!|b~!#%zHi!^mV26M61FDd+*QBVADVC)w4bQXRs>8unvwi1`~w7hw3`^pCrT?VNgxA( z$pBj`kIaq=9{EJ{zugt_(j_W7*R>(m@*IVt%|(d#FA)ug$r0&x#Df{?f%BDGge$*N zZ6$4wl6klve)zywR|0h6=?i9-rh?;|4NP|oPNp${;FNQ`10>tO@8p*E z<+PL<&s6F*JRjdPBCoR&AzL_GCZAI0i1SpM_ggd}vLnSHnBsHIVmk>Qco=laE2SorvW7j__~V1y4s7kTK7Ikd3yhrn|x(%V1i zIg@zwwv4juidfO#E*o%xrWq(tnzg_XbQr^RaX0L-%U0g3-b~THhLck7?Al*N1{z(} z`cE{-WQaTI8O{37@X5=c3;;Gx(#eB4&qn;UfSf3A=Vdx~&MrdAn+5O8co>xPHnnRqVTv$-vkdt>M(f`$BE< zj%1v24s#v4&t775BXSlLiakf2+*FGo69^yt93y``bjR3JoF!~>pfJCc_j+M^3eZ^+ zh)4u;Gl z$kVoe6}}5)@!Bc?LJSg43l?^pf?tnhA8i6a@7p6z#NIk*KCY;zG9X4@_S*~qal(J{ zYT-q3a(jHAISqyQmlDJAEsdA|h+FA}`5;UNfJ@ps@G!iQ>izd*p!iL|_A&5M6ra5t zJu8$b1*?$^c|tm^_3B|*+UkdX31nk=<$jHWgyHOzi|8$3Es~u}h{Y~5db|J#>mzuXywji_T_W~(*v$4Ub&nS!= zhh=XHo)yT>pR*TLY_s4e_me_fj>QDsJYY$u%P8QojYOYg%qq~Wvckr0qhX-Ayc(-E zbfI}03HDrrXehdLe@eHGd>{bI+R-&hYm(3}5V!V-f zbT!k8Jr7_AFe*|7v|2ahA&);(mcyu=_$o2$P^=$la#5>s@Yz<^sY=^T9k6)T&umN3dgKcug!s2Vz~aOX zyz+}$?!xcN17HBKtrQk%Uik-N8U@Bz#Q^Xa-VhpwGKo!phq&$2MF+`C9HFd_@5BDz zLjzfo%e>LP2Yx1^aVfIt(y05v0K<2e?+_R3Z{w`N@A+rd4agscuX5^@Sg1BVuGBSE zE0;t=a9vA7R}?xYo~{QByYZbQy9&82gM((35h+&%WsfMZv}=>JsXYP1au@=_85GBB z>#$jdP57nat%#x4JbR7(%R;3AD+D`JnI6<7d)PCJfa3OygAn zcPGqGrv-)T>w4A}i^jADS>UF z3S-01_*+*qaaZ7Rzryn9R5w128CRQTT3u!!#S7%L;y^m!Z58 zglSlFiO=+0rG5{ylxH@b=KLJfypw~+E}}?wExl^-8>G0^AjivGGAK5_%x{>^UC9h_ zQ~ovqDr1i?W5B9a-Aeha+NX187RB)^8gA3rWxoCz$y>gFP*xd>%~V$cArs!g+)%E3yR1Pj@o{);Icc-PV@ z)LoRF;0A|)I0$=|q&OEVC0c1is))zwRN9IMa(bJ5F_Etbv*~+VZS*!s8vXpedfF5i zIk9d_2CmZ+4&spcc*|T?xdTQbqA(iAzifcL7FlFlED9>pNU$Q`FX5Efgq*uh-RU6; zpRlBDffzj(_T~8>Lc*v>Mpe&GL2~=%{>>OIcmv;_H&Q1mFL)!rz$?}<A9rk&~G8s-m3Lk1#R~=rdH{<}|>_9V=kj7S%7XS=Q<7WhF z(9jlK3t8o9(eOT@(D5t95I{nH4r>b!06txpHbg7z8~mMU1X-Yc*qX`PNdKl2%$$<* z%&Z;=(Vk1+YXo3~Y&wF21SqfkL!5{9_0DPQDj`xTVZ{zEeaW}x-amao+h9#ey zWBI+^F>|G@@nmhM{62&Gh_fZm3p%S>)KPj#a|NsL!<(wO$OXi@LE(Cv%Rs};89`Tc z4=Y-oUgRztjblxQLhz@g$FxAZL$7qY_>K3Kmm=RRy3t^|KHXJ(m`h_`j)@ z8V>_@lJw8JOw4V*vd0RXepy(F($4W*W?D%t_ZztqtxVSiyIa7rj0BWMGxDg;0-Jx)v0uuK;(R;fJ!s0m(B-ADKHty zZ~DHx{xd~FAQZF@-CaSPboC2jYLG}bfyvR)b?=fhJd?K~N7>6$8bCY3Bhit1Vzvo) zEES-t>KOkrw1*3NRTigDB@~Aa#%2i6*ZDx+^kbOQ|AR>~4IpStT~$8g&|HW>`4cC; zJD1nB<-t-|z8BN>=`K^Yauu(IR>?eB1x4y!?37ctPYeN^|9SLK$h?Jlp!lHFe`ia8 z&=(0U`b)HkHtlnO2oWKdp={v#?yV9w4A^l+BdO(O-%2??7hiAFWR7g=>ebLUwJ%Uq z+n7!VeD4w$XQQ^5x@zB;@-PK@lqp-q#Dq7eL@bkgo$`e8$63(K?~KmWhE+2?H{uwc zdG{&9dj3I;j`B!>gqFx&aJih$h97sC_~x}x%ddUa$a~3Sm3N2cIE?hVNQz_J|H%{P zJ-PE;vI6xDcp_>yfdp*RLj#yj*n5s#Q`Nedo&o($M8s*Y|0bIqrR2*jkSkX8y%gl&Z<4+Ky!Ag;q#EL7Air2< zZ)N&xnV&U{$+9>8{2U#q1`73h30xLJK)>0)m82wIK@g^GY;ee{dDUoJ;(R-8;S=L| zQMsENT{Ql|3UiIJzO!FSiIq>l!(>SHvw&x$gcQKOg`)h0#iJY-X-K*!+QQNt9pCxm z!O!9zto=CJ*r_uxVfA~uUU_S4;x;m;pN9E|K2*Tc_)E3?)xyFmom6LPTOehq=K_3N>21jEUS8`s|&Jmm<~KI#hWg57x!t5 ze;7pRuv%B!+_dmzbA$$E2LNH|d>yjzYs*`|se^CocPz`_;kE$BkB|}7WzS5n_x8|! z?h%l5$S(oo&?dbF&6uU4 zFgzJ#0&=G$&@4)4S-51gXhwIT>iqu3~vKL4;_znp}#M* zW?&gbGQ>v%091se&#|7ER%!%XyAe-c`}3nw~np9Ft5bVnHXX|&IevvV2f8%VRO zASc!TuSex%vgXk_VYt)W6Wu(%GhTHg?J{Z0R41;vE}OQP@d^*L%U6G8O0vPNO#-IX zN5CU3L&9sPA<5XM66~0$Xi?%zQVZ-}aI?3A${vQvig-)L%}rR3B$_yX!*ccI@dgOo zdbUq!56T9|ja&a`8q)1FqH(a>O{_Hb1HA!zNqmuzwbo^rN55RbVq*NWCRfbam}gd_ z4WkfI@!$Ynsyb;Hr_<3KwyJ%z`GFcp`tNM%P<_9YH}pz#pceinklE{H|Jr_aBA6@G z{0fa)cgIBNl!wqV#h>eWis@s0@CWPZE;EHq^8r6+C&@A2Pl$$otp`$d^Zc^($#fWcI{do_B4mSV>rM)YRNMo zH3j4|Dj=xSq(EGQ=Ds62h5FuBBspctUS)U2Vj{Z^2G3xKz3z#CT$kkbGF7@TyhJ>y z#HBd(TjXPa<|6av;$32#mp;LC=9M`!Av(7se3cIm$oSUxH`*Xs?QYxGOMH0Jp*(#CPbG+fkt9y_GJXZ3j z#jAL_^@;z`2uS64vhgQv{SXJOn#0oM({X9(A*zxuD zg|2z8cBdi70w7ultGkEV{3e*kr5Mq7;tNa@GVTdQus3L(MkN= zZG%%m;+}`e_UO8i^5Tce9q+e^Hw0VyR7AI_rF8}eUz9<^==%x{-puzhMoU2r0rMyjG8a+NNUREZ zfoWZgT%n60U{q04f#*E}NEJL?wPb;W)eh%a=}j_J@t*>B-bBSB0?O=`#Z&gTm%eG9 zqHH1}HFohftG!&i+*9zmKbYx^N0O zPMJPBt1}YkMI2$gh*`J4ylr#AOh**{SyBv*mp{nvX_JTPmaFZK2R<%rPgIo@fJva! z<{1X)azPVqN0#EjhevttCb9+o^;7ms-!@TtwGQ%V9e+P8vPvP`79Ct)}dF*jq*Emt0f&PA3_1Cz4l8SZy<(TvU5+@tOtTdt*Z+xpoQ!RN{ z?lr3w3|i&;MS7D)3D%UhNFrs0(~91-D0y}kMTS4kKGWHv^K05IbX|mb>emE1+t(y| zcBa5|PxD5w$xCzF<`}{wc}!zhB{~DsnU|1V8EDvp7v9)Zg(rf4NfTG1IzQ+J>8-D= zk5Js4_87>nxTQ67-M|);i6;8Tu8fz1JsRlKzXhT>ZZ7#v`}SL@I8>mPLNJ!qW5qQ9 zlMfu*(|&#|y4_nmwVfFf&a)&tS@^|CO6Egl=iiv?c`pUmbNZ9X$vURy=}5xKc^i|( z(B%0{nB+G)Y{tm9>7(^8ocmoshSlR%ABp-7r3m&Skz$JOlfxP<%bE zek>)pONOV6GW(*L~OP4S`W2e7vmsl|uLonA^gr(cdS0iwk-WkUcK zQP8FsTrjXrcyEFNJxFrTSzGX0;r1rEX(}E+ zf3=1J`-nkX)Ny@NSblDUcCl~C0fib@#X*)h<|V&s0{s>eQN~jpOia=VWBD9TE#+~} zk2HaMImNM)CUC0rR_~T(2nbp*JQ|xy=<4QqP<)!Vki2h?vc4uF5{2HwxNtGfVG$>+ zJMc{Clv{zOuUN;jj5OwUi3pp77A|cx*$Gcu(sg@T9c4g>V?2#i7o9pzOwM2CjIhW) zesk%{=gk4weEzBq5}9TE7&ISZI{Da3h6u~{`rCM~a!zHx@A0?qi;}@02+!{>b&Qvv z0H+#mvQ*{l?I6In>^c&9CS&|Ofy1Y`xBAbB|9aL&d40K9g@_8~AZiRN3(Ye{YZkdy zsSk`Dr5rZmM1;!*lEjW_rY979I|$XF`eg;i#wW@7*Csjb&^OYni$NA)Wg+yF)D?|f z7C5L)@@6Xg(O+8Lkf&`8a9R-72(I#SA~XA|c0h3!G?(&QaLruj-z|6C{FKr&}d-fweyZvTDH&8PiZEBxJMuYhRU;oPbE}F*`K9KY$SNV94B4* zh}PgXuRCQWmFi`?k-~e2(NM}cfu%!&tjYJ`T@I_m8Eujc0h#XGSefu*kTiEO+(0Eg za&Rg8V%C)pCSrcW1lO#a;A+`-L-~mzhBFos1J*PH{Z`|b$gNIh1d29UMD(Xttl#6^ zGn?AN+Oq=RVCWJT7-~EOMCrtN`yvCSmutz&yEvC*6S*tQbA5a@X=+1ri@z{U%pX*I z?2Dh9^?1of2J`y_UTadfuvZ{Hm09vSD-{Ec>-M9p770aq)=6TzLsOY_YZ{yoOwD7; z!{T`vxz?^M7fb^;sS!w0l1aw&>(XduYzSQr44rsIMBY7Fh>7$)eyDxc0(bpho`EAC z6BF6hWz^ae+ET}@*RRz<)u#|`YhNT~FaX@3GqTI6U(N#~nhfd{F8P(;Rc-MtHugnE zp{Y1=#=eymu3dHrlQ*?3RZPU!@Trn{2(KP355emrM4PwmaG|Ke9l$zomv^Dbt8A-n zQrwfNif*5& zk8@(uzVdv9TLbRSyOh0tT%QcIB8DIV&!d%CvR;0cc~*R(25AwkH;Mg5nGaf|b!QPO z`{5hnlOY$T(#{{~gxKfJ-ljeoGrg|$Urt6ge%wr+2s!F7KSddHh)EKP@mvm)O?j8` z+=QhwMWmF7?A?h9&-9k8z<&hQVAtlF*PWw%nBSs|B2R&ow^>0Sp!dcjNt{s1pvgc8kZb#iQ*bN|Jp_%Tn2`>p9$NmH;E5ND6kh!fZo%L`i004&~fed2?)5?rIiDhK^VHpyQ+!w$zQ zGjK@@iHpDx5b-yupehrKexfZ%03RRuv~rXgM69kWao4)n;R9uoh}i^EAEZf@4z^yWerM0V62PG7LFm}_0GkwRIeFDA3W@z?&M*{O^VUB713yI( zTz%pGP0ore6VqD9)v=YrOpBR>!~0~KG(;$b%^x~cheVo zgFso4H}IHRJN_9+II@a4p7Bsx*0E22zld0`$@;4$?E~7rQs2xCob;iWV|=(M209md zalml-OH_`YzK6Gk+UsQYF;PyltFU=Qhw%RL0cn1k{CA-|X9c>;)3MgBoanw`u+*ZR z<2DiA2$W^l4m{)De)qs@`T0nhXmZ2RiKzdGWbc8s{3^3x7f!!zvXQ;)j&e6cl-H$9 zHtOoQ=UiCQ@)*EpNi&#whVOFL>bhc`#F|vgu|E-X~ zEhd)9bnnRCRo}&(6X6H&Vt6#bMDyM3?6i_Q7i`w(9409x zxpsfaO;XO@iqmlE6)xiy1AYJ?j6dsWQ*d18Pf6PupTfAaHpKX8RPGy%QHk77P!s`P zvpys8MM7V)@bOVg#~h=SKSZEAB{Libly_B7QhA2}zvi^O^IP*2Vzn`Z+)8X?-G-&8 z8?Gg<2V7LSa9m(Ha!+@7p#oUMDstAKJ8e3Prv;>PU}BK{KbI@cof`59U6Z$i|8jmg zZY`|)4!irGb#!HL_~y!KpaJicOF*InnR6kwbwb$^K%(yC=3=-*fYa%Q#Z1{P4F-}> z7)$_=Ru2dfCSIV3ty-7rc{Qnc1-xkA$WF2%py17%NiW>r>>Yckp6Fx(R~T#AAr3q@ z><(i@RCu+k0||97l;IfgNcW_u#>2ht;bsI+^{5}QGXJ{N4VfA1*dG(F$LT>58;$}m zJ>M9nRKoMB{P7kLsC^bM(KQr>`*RuiV-^+9@+lR4QP}T?FT(HY8S@Z&)$E`$d5l%} z`KA4tU2%ARwoS=SAc(|)276UipD@wdeD25|Ph(o?x=Azs(PE;nzsC?jFz*wg3~Ju zPKqu7#&Q((1u3QV#bo9@=3{e_UrPw$nMmg;nc6I_-9rEvq+W@9Uo|hbsFfkF>3N(x zX$_zN@(G5J9LMQp=X!C*2e}&I>9~m4jMO+UiUCcc$an+qJcTC9ko^XppO9HkTIUh9 zuRDH7!>SJ*!mSutGu{Dx#=upd!giQcP{(uA0=l2?;I}sPQt;Owx6-%)AQM@W`uk%GcB+dwFHE4EVZ{~GRc1LB?4^0l9Nnv@ zQl{=_YUY*9K%pxcbc9MU7D&&%Eh_LxxjxN2TSh@zBJ<=C`+it0&Bo4$S;JW%v;tDF zb_K>nVRE*8JlKaCpMgh&h|CahM?|R-znxR2Y{$efSQ`yk{;B=e?lA$%1(dOlw4-D< z)m4#>z;sGc!22drSAN|hK)PQK=rosLPkCt^tXkdaSa2$&XfNZd(kg0^@N1Wn+~ePM z))hU^2`dco9A#F)KZQC#E24hV zHMj8QMgU#_t&GV4Aam4I7JS@OU2i&-h(u^JoZCTufQ=NdWjDiS|5>9$GTU2lNs+g$pMqC zY-2&UIOgFElM*3ao$ND5I}3nJqg65dp>3)!a>Y+6KN5GN{;h)50+*Lh0v)P-+`Vy{ zs>v50!z=4@b|M>o+{*EVz2SxxrepA2+Md%`@+1?^e4CC(9tR$*z=K(21OJBj=%Q0TEq;=mSnP zlV@ig3$kfntoLWwN$g;As&aisQ4L+tM(m|AZbN5$$@#-{NH@d(qf}dtBGr2jQXVik z6I#wmNd&1taE%Ofx~wFV&$0C?79r7q6S5-CLpv${2z);lr@3|d+qfF0o(k?MkoPYF zWIBX0ulQ4dC!k$rGXN?+Ra1qB1|U7J1;>X7GT2LSYw z@tr(B#u)f3Q*>~{sqaTJTV!nO7$_OaWIlSR%ws)+?6$7O<+qR<;$n*nfMxP7C+z1Y z0;D}$wrtrSt+&g7nf}Yq$B?#LJTe6IFZ^Nn?T^5^7&gSRD`hLt$y+{3stWjs4u5-G zCOdcF08hx=g~B5KI@`Lw{vHNevO+A3#!ZHba{tc5j|8wQw7RsjN5k*GHKAg-DWBhX z0hCGm>o%p^`~C295O6YlPthdt6Uvj=6OJ(k(k?5^&U-~jHTHWLXr^ub%3%h+7*;O* z1pfs`d<_dYp6*h1y526)8Iyl+yG``8xRNv{hj?}ln1s00_nSnH*FZW9a7yY%7%kKP zndjq|SqGVXOxMzQIT?UK2oP0qYPU7hnW34MYhe?~ay>kW!y9xOgY!rM45CwPoDoh<{7GRt(OjBfGh7#h zGb$JZd$9hVqR<$yLm{^g%JeRm&O5$2xL{gr`z)U;V_(O^DifVE9X@F7bbhrq*XeXT z=X!Pbe2v3Ut$mCO)8xuWm>$yPyn1mJt%{k8l1mb$3bfa8h*_NS=PO};#nCBO970Xl zL)T2>XhWLgerkq?6?~Y6$R~Bq^{^u{MhAeF)df*9HNY^YVRKLi?u3GGa3z%m{rbr+ z08D3i0SzC;DfZ))v>u-MBaZOH_^6|B5F1DKJf96u;o8Y+xFsT}lQ^*VxpMV-@P$;< z>_C^mFyo(8i@(g|8!0C?eCt*yGT!YuUX7bx;DG6@M&40W;th*AxfL^GZ^#F85Lf! zGyZoSll{zWthJja_XGDcRt$+6ff*%@;?O?-ueqb$)zm1UF2gJBH^k?d@w!TEf#J*KlK zuKl0GS_}BpXq)|qXV?vR%C@KgUEXHP&Tk2<@BCum#yqN>=Fp9a4(vFX6nnoy_xQXF z+AV9jqGZ1Xy$ z-nN7wCdTbne;T6=tsRUh)MiJK<)HAgb>$QBSi8~FnGO@n?E`gyBd z(C!ghr;u|U3K8+j!r%7oO`DR`?6$qI%Aya}&Ct0X^A_h8U^-3dQR|)e!e0Q0Nv3N# zP$$jTyx9$A7|-|>cR-8TL*i%xy}m~oY6LhFBWe3vi`M-(#}E+Fr+lBP$kf?{L0{oR zT1ZE;vsW4fOLFtI!un*cmAjYfj?fCz@ip0pC>LX%6il|lpX(9NAQ7LmaVn&MvkLw! z_^^3l=7&&IRiV8e`>9H%qIAqs@KW!mJ?t6$2DO}BGREO&Zl!PQAgEv>e{QtNbfRr) zdU=@qn@gwutnJz}`+#5WWm!Hq&Tu7+A})bf7!f9}F+R`7jm>CC(x-d?*!c%v**vl> zoZE1qXAmxak+(j!atERQjU7VjKAuMxGAp=bCONL z6b^UT{q<gQ6oOey5`)L5#_ESmFA=?2uF%nJ%; z^_OK_e;+7>$gYXMYCptLmv5|BceX8IPzhW1?$r^9d#SE%skQ8wh-m@Qn|Pn|Q8x+w zc@rtFVqssKq*ly~UMH={dpADptUOg8`~gx%c#TsJSxLtaUgV=acLJpz7NX>V-w!}R zgl~q1aI50I(j>sf9(i6V-L>k$+>GNsXHsY&A{HGBJ}5kFBEJa) z%V+T^B;*zn__VDmnoWKdgV*o|ek-6hB8alcdH|oF1>BC3wMV*o@kT7NbNSrdg9TYJ zRQ@SGm@pj~I~2LoSV&cQ2&nB0brIz)PAUVxze)Jq9ztJVP1e3n{-@B?D|i`HQ2HN- z0R<lsT%UwJ^!E6!-+)GpLexQAUy|P+CBAd2+)Mv z>qAA6WPdz$KzIh!Q;@RmL?8+)t9!hj`!tzoIt2^;6_NBjer>{j!3JkoNz6+!l>;qz zL1EBDs2mL4BH9W&V1ws9oj@`kwyL_q>OYLhMtZ@5sa^0Hh>r1j5gN&7eI)uhxFz}b zLb&?4oMBw@fuG2WC$2Oj&_u3mbwRfUCAA!!u_a_H&PZ2p5+*aqTbugxQ`Mn;Z%7+p zu^$E;Q#ZJo=LyHg$@xy)X)oAH%6b-nwF~65;hlMS*jaqBmA-%$T!nPIZQzx$?*JvU%%@3K)M2RR#d0#krzb@tYw4$-f8o%DdH25oQvemU(Kl z8gN1>dd&%fP0q7s0JnFiB2Xx8qZ?j@w~rx!h-kf7k*-e5t1OsW_jc;isiHI}{ZB)g z3@6gwz@ab4>kQOZBvr7u1#DY3DggRyGt)4ZS+y9naB^vf)wW6T5ur3l$)`!FyFuN^ z)4opuEf1{4>E?Y-*HBnyw>n#X@xZoqLcv+Ori3X0#YtS=ia`&%YUs1v+$L~q*oOr< z!8mPVKzX45#sILq6`&d8_o8XCD$1^)H7=73n>bG8dy1t0>RN?y{ag>RCz$+qDKkh6 zP2yR%HoeUls_QrnqkI{5GyZ zpx(N@^y4mn>$i~8MkMvgB;ZjCpBMmsGr9pPHgF=u`9ysn_5AKYvaXmW8!%S2R2yq` z`fllWw}gl8ZkS9f&0siyIH!L$EwU>LjYs3Z0=rePMyDpUQ&oWvjOt0&0|2Jw1T3jt|3TNDkI>q}|GUa3C{` z7HR~>8pJUynD7|te18$+a53g_!2GBULDZlBg}!YZ?_u&!Q1^nr2A0(L@dewfT?F&q7E|<-85}Hzs5%WCZedu6Ix9pI)L5*Dm&BKQt1(-L7L1}jCBI*mS zKv2N6+zY@2uP2bT zz{3@+w4R6??Nswh)i|6NgI@)PUE{$+Ql8vz5b?0DU^Ug!$b06&#}>zoP~)Z9_>gWb zkG_sfdM+oGnfvl-=vb&Eq@%8+{1>VHt{;m;B0@huqO|5K4ZY~}0x^PCN$X%|30Q;; z3H`zxqe;m)!$}YKvy@G@Uzk_ukrxn0)qI~qvUkCZIN@Qo30LooMDC`TC=_q78x*K@ z;Pen*gb236^K)j}<|nVDy>w4DhZn@s-jfw+2KZ9x3KRV8#2EXC~MsZW|j!ePYh(SrSj=t46Wj<`DxY^{*0N!lY$7 zJ`4b-?%$T1dme=>Y^tWST;j&YHHKH&2`CMD&PJOW^iNV&9|7;krRlk$0JPKoiXGD` zz@UvQFa$7{1fOe)iO3ix7n*u zHR1Jf7#QkPMONC+4L?vM5y>QnroHSym*>2U>H`HBV(I5>0GQ<>0FJDV=GBEM2W^>Y zHNAL7xO}k}oWG4)Vkl42FO`J8bp4!xr{16UX3GJ*tHdYwx!;;s&8t$t4tlA>$AnjS z#GanH8vyJtUPCISz&1DM0>Jg1%L8;+B0SB*MinRJDI&xowD+dhtM@M9F&e=CpfMMNUXhISPilOKR4LR-Gm%^3NKY zo|L8S2Na&Osfc(-ovtld^^5dYa55gqx4ahU;VHvsH7G!j!| zO;B|#j&I`_Oy7c_$RG9OVQO|OSL71g0gM9N)N})c|ER}1qe0yH;2?K#z1@`}2hA)xy!9B31tL%t@;oVo567Nn_tcA}`%fbDJ= zXkH>L932FuDA$m(jJyD{oIVKKpGGt5ttxCCJk}IK1cRM5uV?9$s-1Y$`lt>*NA#Yv zO;nB-#a*2;k=s8Oyfp(w?E>uL^C#+FV&!10^#ffyH32JU+?FNT(w~2MuncB!r7n2a z6Na#DUIc;??lFhq;Qdi1{15tDpC82hgzP zH^Qe9WPE%rzl?L^NiOsFDchpB6qMtkRl!Kj4SOC(Lu5LY~4gE3tbvPV{- zSBBY~&uaB1;Z+yiqeQ;rVo4G0d6lM2z9NZUfusmc{m+h+iN#O0fu){8aR)f%8P24$ z@~UFi4#oBzhL`S0h(Yz_DA}B?vkAG?$;&ErDF$q!(nl4nzMaibx)IAqp2a>93WLgj zVs9JIO1aPyZ^&_`t_3-s_j|nj{=@ z0Yh@rQ+|+FlRv|Ik^5pXk%AYr@=3UIVY#MDY{k<3e{#_%Eo&Rj*M9&h`VTY3p^Ru+ zM4ZcY>@h95txB=yTRYXpj}YnMk>PQXyj5&zzSVO;i>-ubVLaZ9S-k-?^XHs$srX#G z%V}j(Lg60}O@ALm?4Ux%{guP3hY6|ppITr0bC;{Rq$k5+N`kb4;Az{S0P{bF7e(0J z`7OXIqR~)ev~(yFE~tsHy%l_cM}ixW-4HObG_IWK1Oxr?q(rxJqyx+`NY2i@0diZd zh)juPA%7d2^4|AEk-2DE4`Benm6%m4Ga3LU(fk7QDRc1WY$7kUJsP$6Vn9Zbc zYZ;fK3Ce!Vwy#FtqC+nOxkvDd&5n`pgxpcAWnDar{8fopu}Et^U14uMEaVFxrV{s- zFch?!)XCb3zc$=Lv#If=tps9y>UzfY5YF_@?hX(VTTV+j@^_&YWi+KljusL)$?qH1 z(=P?wHi=ga=^lNk6-H`;mY_{yET((PO~IJ#LKsqIkIJJ{ExmQhwtxm`HfQc#vS9?2@{1e})k-}sb#KZIFZq&V_%BL`cl`L=Lo#Dr1 zPxF)fBcaLenmb~$tr%J*dNu&)V0luNT|`7nylCL^#9$Sja0AnyLCVemwG=llHs1iE z_&?+$h>dl+BYqu&Ran$&Oa)e87+lPH{mG(wZX3qNJs$3f10&4TOs+Hb?0MKr*Sa}Q zY7e8!hL}W4%-Vjb7Uw=p!uXT9I$>+vI_ncPIi#Je#3-2zjPHB^2u3p?!9?`UF&Ouz z9H~|YepkIG=^xI*%y_U}rEua`WngJM*1sT%F-)NN26iroOZu?Ve~Zxp1-1y_dt8-G zLK*~)1dRiYzUYDzc< zpvl|;U}KScpt-$5R{4|xQ`-#ZAlwW9*bLLS`>^oRK)$XT3n|NyHHhC@E^34|oB6zfb z@WN2ZWdFcsn!?6r6?K$HOOr3-W?BWPV9HapvBxA99deM;#9iWf&*9K)Sgsao`PP01 zss@oTb4efgZhV1Q%RhwkY}%rTO`AwkM_H|BefQ-3hk2fSIpk}x z3|$XqEwtq_-sFY4RVqE$c38%ub8D8LQ$R|fPy9LcVQRxltnl%qlBlashTUs->zG+V zS7|Ba2lHEvksyKNrLd`uTfpI=0pv*N6geMLX# zm&aI8$VFF1s>&_jO%Km>-NS|dgwA!B5Am5g&X4gFrDhe^sp&j@#_8VJ*xcD`CVTiS zQO+ek%8f00ceellAOJ~3K~&U-)8YyVZQcI!#|6R8AhgnF2fY0zEYIjJYTLWzP-vDd zr5(@jc#|#gF{)f3Xyxrkuc;>R_L=VB}J+pY0b7f#u9bDnWwgE5+G2zXEDDdX0fnrp$#xox5dL#YLrcl$N zf13V+HyB>@tLEk=cnYUwj87A)bc?#VUDkBCaNyejxGVB1ig+B8^v3hWYOsT@=ZmyJnVI(jF{sJWl}q(POQ4?+`ain8w|6 zV+&DSWm7|P9V?*uE$c+e69_%$rQn`oKBy0(Vdud6;=Pr~(tpPGzEc#Ty3G+0>oR@p zD}L!ax-}8%o&f89?b1YGy=A6>TWx{;?PJ|5@+!FJ@25oWUI6}FYS)&S`LY`Dp9F~s zX`68(vc8p5-&cf=;YC?q)7e{8OsdsdnhKOB6b>ilH{qAdnySB{;GxuB1((hS|2aG)LK`TdDR7*hcM|cCcS=@sIB5_e3NqZ zLwci0rxjb2@DcF3!@&UXVRgpe=qLogTR>tzDwK0Nzz|pn8d|G?opV%wS+T#=ehBW2 z1j^i@du$BCb<%zw0$=b8JI%PIC53%pq?A54Lv_`uxR#9ZC+T*3uH}2cwi{&4#7D^0 zb{1K=f%q5#wAIf%M$FYW7ncrQe*uJp2>t{@S}^!NCi3~fWgO_?^XzaEGWv}gWQQDX5&Bb)8kwPQe)@#`BlYbvK;T~)4nfYN1=`}Sv*y+O{d3ytUK<92DAI3FFu|&kor?$Fp~xnEOMrZp zv^?`w$@x7vp2fpX;wAz-XbH8VpDW{@&K;%1MErO8O@!NdQ<5UeW8mC;u zVtq0nymh_u5SqvU41PNK>EC2b8QQg$;UE~>EDX`vzqE`GA>w5)*D|uHm_Z9x@=jhK z+i-#W6%Us>C92BDf9LDp1+A}4CJz*91N|SN=3mxBj+C~UY7+^Ath*KEfV!aJFnrGA zx4OprSS}bV#Mz9H7yOifMTJ6>KgYdW>|R)B!H9!GC3K#}>DJyOFFxtF3j)1hkh)j+ z(6Ms#!F$7X^rC*O#(#y~vrL|;N8{#v#c65!{*_C-$jvlilW!guY&AmU#?i!IrQA-U zc{*(<>nwEDV~~#OIa@fgGws#|vPBDxsF8G_f>UjKk-dPA7q4?Q~)THtD&IxKIHockQ4Z9x z9N`-JXGa4g*m4a6T*Bp>MTWA#4(xr9$4UG$Lu$=-UE3 zO$K$Xy+39E2w)Yr>pIxn6mL;pM1&YcjLwK3qUjP4b$E@^_c?|UEdJr+P z);hOc+MJa!B6tW8Qb!0_F=NRAiT<(7h++bvifj>_F`#|5C0x{nQr_53YjN7+Iak0E z_I_)jMd-16Gro-bA(7Ls|8RLvL}2A5T@mNG4~w|4kQO9g6itidhnn`9y|&>sXvtM5 zzlKSgcg64v3NBwhASfAEdh{@So}TkQFn~pLHvmw4=cOm|ZW`(rT3|fyVH*3p)P41D zsUA^O+`Y_pm=mj9=ne0bZ7xi`iR7!rzk1}?FbXriDecbq_m2M`hk}~Di3(h9vJ!Pp z{cb<1TiML`pE=Y`6ST`fdUPpaqIMg=R2n?gp_|f%P9AyVHcTt%V=61UbOsYPe;FrI z`c8(YM$UHspx$SQY(EX9s7-Qoe+#J;^wFb(E29IA?Mj?G}hSIQ0)+Na0U>M)Sopli1jw~5CC?1;!cD;ZA! zT10EB9rhzLbk&sFywFge`-3(N;Eg8- zF(BVz>56^|m@mFBKJZF-%7u)`m{~~Fd;HFmAV$VmRudFepDYxO;@Ek{Yd}Qoi)f|> znb;ljF5L$C#zJbIlTIml?#KT@$OZvPDo_~D(F@|S{67Zhd6DkdR@Q_=)MzES?Tv!1e*b8HaaC_G( z^+A~F$g9lJV>V#2fa^bEz+9A(SvFO$;Z}|@T?KfXH7WXwRiRfT%rryGQ!%3T7k+;e z+ioDgIwOuSsYWPc%kdgU!yHP((*kKb3!w-Hq+GBHcG|DGLvh5?(;*-+CoqbJk2J|h zl!OMDu&J$-Y?d@RVf%kAH2`p=#e}NxU@jkv#fr+9cvG zco0marzr}&O7+iT#ogP{OA*_|6Eh4!){IojTRrBjHBtC3`QanJJK$IHH_$+hFPU7y zx+|L4wU|$>%s|(JBe=C$i=gUM2hEdWMdMgVS~zORg=Y>P$CEE&-fH{;z!}2#WS9D4 z5uPKK@J?S)Y$KSNlI!$EqEl*vpO$TkX)?z1`oIt|dk+)=hcXt1@M*0@VM1R$t%g-) zG6s|lR>-5%S zcBZp)JQ%J}9i#uI6kxxYd9&B)@xWX=P?wAyOm`K2K_fQensMU7%08DuhxS=sPs9|P zY;U)pF8%=NLicpp$)H!6wr@+E{MORR>AMsdsxg;M_xe`ZQEHjvY;mlS0?I)R)&&k- z>+(9vS&F^SNp{Pm0mPtfVJS`%aQDh=<)ub}Dp6VLxD7 z$ox+TC``=$XoKdA2R9L9XqbRZDaTel5HsrEwS>MX8aaCwL}o|WX{p$|uK_51z$g>b zw%`JE-uy7D{Z9oDi!PaAk+Y2`OENPGc4T zt1NG}Bjdk`Aj0hm%(iuk?u&Tk`gb*l%A3 zMK-BMJ-4}*O^mH(hDEe~Tt(;dS`{UbV%5p$z0n#eCToYzsS$IJje1G0Ut_MbGWWH> zlpru}9XLWfvs?uyDIYs4K_gABhoGv+b}q8A@TAX@c3=O z@;A^SEy{biS!yKxNh!3vY}}pWrq@N>qYS+@<@`EigMYtt)g;To$EC$b+1D`%Dkglt z)DBa>yli?Q5`JD*r?|!m>15DR*AXW%_G1oQ5wlQT;h=4 zM_b?|PcOrxsOxw+l;KW92C-i8D<}CR@b9S-@XXapfzP&jzRQP`=N7r2+HX)u2n@mT zCs&sJ-6rz$qI}Ad>L2|}D{qfFlkwvbkSt%9HcP`z%r!iQ^!6E@wV`?lyo_`FyNL#m zHg0jJ@l?siQx~o>1^Sy(yffL}b!9=~Cmt?MKE7hDpVjyh%S6!0$OlCbPPFn6qup}g z18-i)Kvie^{zu&CwB-e^+Rkwu{6HyA3r)bH_sURTgvb@?<(MA^P(&^YEQ=LCV$t&a z{*&aAyXR0^sf#ghgAw;PSKWwAmb=p68ZYua7}hBmbq#3`eGj$1hPipCSop0j;?Dql z6UoY3+b2P+5^6LA@DsRylIkrRYSt7;zY;nvNVQs4J^i5YN0gJyy#sL^Qd=VbGlo}5 znd{6p`T9~&EXR1X|7Hqg)7c{}Kn)6>+X-KVg`|Ar6tUEah+;;lC%>Be%`&>6fWt0M z7W1)E0tucOt$}x$l6$Y$s#SvSNs9O9LYr@ z9QoZ<)-|MwQzXdTB)Jc-E~TcdW?I}hX?p>Qbag71e@d*UtUwv~AIzLJC-)rrTH*9+Q4J_3> z_i8gLF1QBUB6RgmxpT4^^=*=tJa`EX2~Ie(^s(zvkj2ivQK?#kP5V*Ow2LCaXnV$$ zq_#Q}Yayb`Ia`t?R1fu0ZG3Ew(m{fh0s~4A_)M`c}K6`2W#0%0IrqB4DT7 zns3$-*saE!ngmvzOPpKPFVFUd&65ynV$9>l2@W-s&;|V`$qHUcn&5 zYucbpNs~uFd|s6Iw+^*E-Vz`=fXtWh(VRn)c~H{LKmZA^w`Os1(elZHRj_(d zITDeXrccRxCnc66M#^*bEtmc)Ya4Ai>G&00J1|Xr zV_kbxSE>9CPv@A<8kn5HtiA!%a25GHBeOB_!u^4_AY(Nwj4M7MAHBS480ksUuZb!! zauYpJUFFmVBFoD)wwU)U=6;%W|3%J%;UVjfE>N;eo(%w^UM({9k6@p~n0AmEf{#>M zN8C$a<2&|4{LYtm_4~WvAb#*UJbzZ>525)2wwx=(;PT1Qz~td&-|=sKz9iwt7rzJz zLVp07rm*{?$*Er%Ij}XWA@!a-w)v^vYr+snOA`Szlz~dJLa*h{Q-~u5RkyURh%|Y! zR>$-jbo&!6kbBwEbls+@dc?f3Zj*TX!>IHV-IUT!#}yqfLiMyNI_{kQF9i>LVDc0% zIkowOW^&+2C)5{{ei6c;sM`f`d+oIH*Wm03jduX4v17Q-JS zVAsJS=Xyz+F-sInrs7?uqHopwm)tdpw3TKCU4r1uajP@ zq0OFeW19IR4S#xI37`uNkRkRYs>j|tSFSX9=cDlqIwu}XC7OSfU1?ABG0_r+xG=_M z2iQp57B*3Sou~}IsnjoV`7&~1-c=kyPw}M^#|UzmE*aW@H1TpId1SzJ(98ThaIef` z27r4XV%XCkU!1j-LaKLti@Vuaxo4g^oGz*pusDIc7i!yY&Vd}@no+1NqAA`#pr7O> z_HxhZ($q8%E+Eh+M?(e3 zD{z?=JQVo4@Kh(2#&q`ei(L5^fEN4M$oIAT-K_ed9w@VJRlqRl=PAj0w75hZcOUiW zPs1IgF}{`D&vifX;&r~mAaJl{s|hwSuRsM=5ezs)A0<*V`r#$rMicNGM{Vj@4O zx7trWwH=`{LIv_BxcqxE0H`dP5;MfJF^L2aLqbr=KKVQU+F?NL8d5-S2R|~|83$DA zmeMJ40%8$Wg_`i@*zL%^%ttqHAQnq{Objq?M|L1za*>{k@r zUL>5e9BG;gEfq*J+Cifsa=nHpz4V&~tJ$iIMo>4QLlk_MDww2)l;}hMo6l-nki~rauPyUH-aotnd!k>te9y>77j= zg7moh&jb$#04L*%v3okvPm@h9j|Rp`;F}3LFPNy*GP}+D%M?al;q*ujV2r`ek}GXl zdbQVyC6)UIdFL;Z(!5JQtnRpiEqO)Or-RM}6I%a-Wvz6Woq3)Mnp)!9T4zP-?~kXR zOG1@fj^Hs~5+X4R0G8FlP)DCYW1jQi##}5kxQ(cB;9D-m`=q4HN+{XD69Zr}g?S{? zkx?;*vn$(%gVLfsnU;IzpR+&U)ZP*j7)`@V%NxE!EvJf6mo=s4gFR~$1t3!@>1-%~ zh^j$qT;Xpe>B=;$ZXp~Bgo(&xsL|LapMg9K&lA9$>r{fIfAUvsi?rwTks^kFtq^T1 zV?al#Sy(d>xZ7jWI4~5!AxeT&AN-*inIT{_0N?@-tW;HOnd*MQJT;7;Q|7rv5x~2F zd@c7BvSk0nEkk*^#R{KRBiCmIw8zVfhxbMKp^T&YZVLPI^HbeL3fY^ z0t|ut`cso>4zqN5uV+q|`ELv*%kl8LVemb66WLg??x>A)-c&Z=eyWIyyKeNCp9fj$&SPj1D-H@4PL? z5RfTIbDi1-_3z0SVjZ_2LThOuJ=IuA@O0;q^VDYG*%=1g?FqHOS-aoo1tnvSBZL#= zrQ9A&ZwJ^iSVmA(DE}Bl70{FBHpt1#%l%!Rzb$* zV66la&-nCpg?lLWCWLD=?9~58mMko8Y27GuOm>mTv{LDFcl&8O=7xIJi4ym3u1$sV zXu+}$P+xr9ubOFAC_3lN^odtKwKavsdiKjjV&3|P(LQ(C0x)^mZYu7UGRD^;^z4mA z>zm(4_9l|GH7gqjXV=+ICz)rZHf97GrH>k+y-%Nqd)2dR<``ylY7{(%Iz<_{sc{+} z_L4tXCMFc4Khq@lfu6MfZvchBmGELw4V7O<&Y)bI zyCI;`RcW&p9Z2uBw*3bxitK)0`;>x^9lU7<06$s2ptIUcsYIjyy3gO#pZIeIusuXG z+g{1|;@KlYc^P*TV7-Og=g#9r&{dFoVM!)B*DDSJbCf;w5kvG)|Ok z@_nthA%S)Hq^#$_Iqz9m4IhTEhyMzdl11Y3Tt56432-6%d5Srua!*+c*Kv7VEKoGEbo zLIw`-OXMnI^x3yKN}bYKBs1>B*X9+W&zp(X7PTiZbz3ldl7LKAiPtdKrP9iEugxT{ zBwmUBY!mxZp1tq!elL-0&){#Hl%IF%>c811vsaeB*P)>Zt3J!*VYyiN4>5?3TIu=s$NiCp|@z#1t5WWa0i!#7nZgeOGljR27bDZ;v9oVlcFn*}#+gp02MC-h16a7FP zwNX=-N^XVO?LIf-xPrGidlLn=&1<>VF=F@joeY~#@U*6cT z4c!N3>{tZ1Ts>-xUxnBMno(vmb|`AAZn^0o*o8glM`FUeS~lIAc6u+QZmgi$CE90B z#Qj$xrH;5c{S%=XnA+bn?ay1~%t9V^`K~v5Rc<=uEmQ@63(qZ(1o|haHPyj{_%8Hd zzQt`3$+)im4+d?ck)*6w62*%0%>a<|&t#Ue<$_H&wiI^IYUDE!$%2#EEzgR}EHb@x zxwA;YUYhb5EcdZ^vzaMY zux5!e85D05e`BlJI}~t*K7=QMc;X$zX^(&>Sjw%^nF$eRDz^Xbm24oo*J)EZPsRE) z>GZ26EFKdzp3D=|mHmwEyrsH!a$p%_aU>!ne+kYgD0F2<2FF-9*%vx}Bhq=GhL6PL z1&&x9>NjK~9%FVtF(Ha0%}O3M7@EYGy{t^M@2MyCWU*<$QVEi+Ju}tqz%M9u)CCwX zh_@|w&qwD;nK%!e>S|6pv2xdvn|r_2adv?djawO zMZyj1jH7aTG&H;$0NPzQ4^*P$#Leu>|Dinbx9_OT2QF+N)=y9Jwkim1 zRzbh1++aa*2d&--yMC$s8LH-!8UmrwbXH8VEdp>h5fgne9|OP_lL2}Z?%@SW=5+u7 zAOJ~3K~yG=MVva0XH|IE>Cd5-i1y%x5|^u5BqGV@sN?l_HL%Xc;dYkP1foWnw?pl& zVe}?4S!1A2%Zp0ESCfn}p7%NxEa)E)adSi+esPmkTfO z!>?4de$EGiRg?$mf#jGFaWTyHB4!%dpFB656g?{Qo?9-nPL%5uVxV*7ceP4wFDwnX z(_~I9z+O1wLZm;0;n2^}=Oz)R0`9NoFu}ZA&y`MawD_diJ|?6fTwET%(6!5Rk{PuQ z6)@Ta>Pep7=zRG-gpXvP)3Ms?IMyipc3mU(Og|{xWZu0^F8I9XqhY#A?=}Yc68|YB zZY!!2t*5-EyJnJ_SHatw)cYY`EztIM&0*AO!kssOn{~(SOhP9`akFXnw24X&F(t@{ z>+r?#GHuJyPGRGVVNTGo+eGjUV|Kh!>4>bckD@T=$K)DJj;pGnkBIWYgZ9nv0mV1F zrND^WOy0tgSt|XgvN-;I5v^ue$#h^YHDAED z4qD0iXqFn8SoS>NEp9I)CN6UzYm+};U*9CM$**icWl(iW*QZTyxB$et;SiGXH|>jf zQ_c@P)g}i>X#VNfK3%e_ceUeMf!oS8ZB@?cw1Z9Oia-cU4{)18BIgB1<+z*v0vYJm zQ_bSl01&I%9-)+Ej8xwFV{LdYD}6+63J&R=dhuf_E z764^Hn!h12r8fwdWy1-)3TkNRr*?`?pWtNYde{>)6R$;!!vNs90?kI4t3B(MdWs;O zal*V#Ut)0$2j*Tg{gm{SW^m|P*%+tKHXh6ZxeU?_Zk*oI2Am9M+F1>`D%DvgTs4~O zSGa4p5~p#Z3V!xp1AtT5FRC6wZXSjPF7AVLnj{m&VXUrBwZV90L%>+6;Y~=;91qp? zbkHMF?T^TR^0FIG$giuVm6V#sGoI9yS9pnWY z4~*=^AVZ9RSn(aNzPhpo9$&${RT1nGlQnWHCr= zXz^>@Qf})v_yn@z*^rQfjlGd`l`g+wMQqFx5n_qd;087ZZE>ML<_FoAB5S?gjt-fh zu0y6H?@tb)ADPGvXGuf&;eV7?z+u5LXzPTgI$@Z*B+raolo;mrPo@a%H|nMrhTc(` z%&LaYCarhQ7ZBOHs()k)p04lZGgCSQtp?-^Ee>Z8H+_v6R2(&y@i0GV(JsSm5944) zb@4tVzYs>>O>uba*w!dS|3R-``As{}M6(_$uB6>@zOE zNVU{99el%7BOCA~^1pL7UadEbh?l|8hMUCx=SpWa02JRn3LET{@rj=e0Xk$fU$ed? zr9V~UGO@`*Ii$<=fRi+A>zAec!bK}sRA^S7=Cn8?-&0isSY{fiP(}pQb{cPc6Ly;l9R?Nt3MHLsIUix9Tp6SggrJpG z_PZgV0xhB5GQV8Ly@ngTQ=*#zKysAVygwwNlJhXJ`AxvAVlHF)f3kK$rDT$d@L6%l zQJr~b_P@~C^QSXC5!~N8HOMC=LQ7mRiG6+^({J^ZUHMsKzd5T6A)!7TDuq0g*UdY* zu1qIFgEafQ=wbtj3`aU$tPsdlq@BX?$TB?D;1CHY|I)S9L4cJb<=gfA6e+`WB!A~R z8m1kWbEhfJrrzI)g!X`AF}h*Xrj_;7mTmw@h6Fo%K;YWeTX?$$t}?=u_C+9l2)*hE z=}G#1V>7DBeZPV3n$}^hG7lOE($K6o8N5t_STjk+xrt6(2t`!Uf%3JiDI^cyq&NWg z>5Al;dPGlFquOJ+p1nQyEH=POgQh{28Ujy1@PiPI{ zx{Lx*n!v+DBwT1w?X+Ji`&ll*lhHn}5RL|bOK~_E>A?&E-RCJys5!fg7ixx|xzT0- z9t8S#AE->UmQOru-!?aHYo|JLHXVT4CYmyg@>&VW7WEX$YFJ6jyokOJUdm$YJnt>B z@@!-0D%mVO)YzDG^(0UIjg&AiPrtrcC;#lO^lG})$080ErM5TP))v~24Y?8qPhEiXOK$?3uH?QN0DvXhsy_^o1#QG6J~pO4dNlx; z(ucnn>OKt8#!LRCazS6Ft4xJrTSW``mXtVH^1qw8B>PwmC2QM18lm6(YC0H z_!h#8tj3L-0o--)0%zX9j8|mCWLsmRz4j=}u-+HkTFFD0L3QOlWJ8X;z)qn-Wv7yW#xYgUd}(vwrZKLEPQi!8o~$TVN>i+J$mr@vc5@EjYYQy z3!wW;ZaFG=SJ(&e7{F7v&D!lS6f*Kt-fb|H3RKMrs)c+!3y$4f%d1FjGr$W(FQ9ac z1C{Djyz#MZGeVhJw)8!bNqT=2Z*6b(J>`C;izdPq{ZB)`8S7IHi!ioq!PFiT7hGld3FKTG2JdtA8dyy$5*k*v6%!*8v!Ev_b` zxTe-8*k>a{No~t*kz4iGd;s%+A1@VZSd@W9T~77!*~tS=O@G*|Nki&K(ntvCV^}n| z{6UV!-*bkR&pSAmR!jcFUqtj{2~??6LjcrtYVX?`b8V#giU*7VU}<#mLT`Y3R@GYr zyU!;PR9>WT8HqeRK7nVxT*grugolqW1qImna7CaI(hUGpn4w*3#au@6d6_aE5XtnO zsEr#}o^A{dMimuEdy6+KDg`1COi%h24FI=g>s++2@Q2Za^5p+kZnB{uP>gC8gr;SG z)7Q5U$zS@rmKsI23suh(>t5tghSlf9TjwRKTfyG4iS}Rxu+Grt zVR8(alAyYf;}vU<1v{Msu}zk6S8g}}#{r*}!(l09EMrg*xmK40Vj&xFA7V6uRE#oK zSLJ)5)v@6%)FD}rW>SDko{h$9#%&>JK3J@VhLMU(Rk~sAHMhtx;7CyHM(M5lj%k_< zUBVO*6pr(nH%H3UpD-h_q>@%95a z{y@M?#q&fla>55_e9~KzK2$3cT|1%GK_$PUKEse*?+?0RDyM!od55ni!J#XjUPIss zF+1jT_iCb}@DESl2D-hDLz~^IjX5#UIk0BJvQ_wcIro{FPZmt3Ct@yu{{uK=sd;#Q zOVemP8-qvlgRp;?Ou%cRgZc$P&h1h~c{&4ic+%*F8N%O}Vc730$ ze)Poea|at=0A&u15lr|#C2~-YDpwk!<@F-zYP*@TY~VddMu+{gLVE^(U4iqP4bl=E z#&`e=1D_=aCx*vT@5~kx=%!GTW|{SDLF(zq@a(}QF}vgpwc*NY5Rw&zQ(FIY#f1_k zEg}k6mru|f`%Z+&Ee6sVD2Hbpf1wW6Hj8bIg;^#NaH7t|2nC~UF%y4%5%UTh!3gnX zbbhEHWem45+n(xKBJXj-W5lVPCh^0U4}mhsFuano&jC)Q=5c2S0z&QJSztD9_%Vq09)y99ZEryIV%-FosA5bH+&<5m!KE`JyC?1p$pdIbwac|~pzW!a&8PNX;;_(KG|^cG^N zjK{MI7OUosabrats4DCk*u1QO`y4;bQR~s8e9mgK?3cJ9;C%1niV9Z5MIxs*@pkl> z8vxolVp*#AM<)6cE)xmSRA|nJYdD&w3LF+KU3FSZ(TpozAr#H67zLaj3NAm(hmD$dI)v2FV71 zDLhqP(YUv|5b-kZ!ZpP>PdQH{vS{}61B|+|_oi0wOfU;gdgvd2ebLwVqQzgip>cka zvbVOdD~+-lMIu#dR5Jh&5%FUBvOQN6Lf!U{rmzpKCrfL=13XX(FDTYpQDlcJDkwy> zV`6xMY10s}^4s_<@?lb|u7}|RW2BPrf{a&mfeX2lwiq!v^1RmV6`L9%(3#5Xc%GOY zAY&PF&4X(qg1od2juY-~tQavh6&NBc#G!Px_bzBX0e~1_t&62ZPrr+T9LhO*Dvgv( z_weo}V6Y|pMv7Ixq{v?G>naLEzqq$h_oSMxpC0oB@RaM#M0?X(g`z8Aa(Vv$Wq2s} zU)*Ca!StL@)PyK++xW0hnft}YY;?^phzFKLV`>-xa9|uIbn~Cdw{JWLlrw&Zdye76 zRU>a3McybkuAPDMNY}4Fyakl)@&8B%SmkkEI3X?T4i;|MAuFLb@6*zr=H>JW3k~^6 zix5))vwdxhEf|kW->xM!O<|=L2v+C(7>%8mP4PL$r zm^duGDdkIYZ}dKp#$j3n#(j)SI$+fd0Js-FxHM;<%hCR>g6dIGUm}falqqfJZo~gD z$2Unf1bj|JBp9M1e5m*s)8jaH&A@cVG4nYS;JjoaKBrUv{kuti&XgkY0n&ZJeqNZP z&=b$Ss*y?^n8}heT>sE>&!82b`X+>0-U+y;xaU3vbsK`o0Fenk8#*}g%3O13-n3L?vzqHjt0|3MK!I!LVo@x>dnEX+} z7ii3+*E|VrF?eULi_vP!XU^Mad#E_72gX$oxd(u@5V##PGkyKv7xDLZ=PSY0cJ(%C zYQR94j>QEgGmz|O++us5-$IKv{gC`nSh;VS;%|JIR(I1HqTMsPC6rQ_cr)0fQF6_0P#{I`k9#c zftNx_CJdvWe6KD$_fWc71$kA!f3kpPRmd{wRu=^i^r2fISH&&x@8yklkWJjId9zdM zh21y7%`CZ37UY>ZqEf`^ZPSBP4W9YC84;L{oLGEbRvB`=RGn*an~1)=b0Ssr{muF6 zc`(**p8%8^CK&n>|BWY;jlFZqThj48tIx%F3y#o}3pkeCaflfJstnE&?CRKHRH$dm z2A1`$T1ln`4zQmy8t*8gvV*hV&?US+*sRkUWdPAFlY6cwdQdAN=spjIFPEt*4$$sH z)%|nxs;ci_Pmyy#Hqkte*A!NE0{dCY#rC<-J2*E@ZqhxQ_<0jyo-2GB+w#!5_`dD7 zZ@G)SO>d!*ortpR9!W&k=u43B5;$G~M4W|#-=HE}eM1dGq;X-UGcdv*fk2;~2W0v= zZ+JuA*$#e49hv;@HUIxqghNzFv=H`BGFU#%ZGc`pJ8H3x9^rn4t*79et?8~86<}MH zmg=~P(^LFP_AVM@<$|q0{=({+FvV(`8R!i!Y5Dou<6NiM78i?zH6Tx49l*WDMI7S` z6InY*wfyV(8`XcnbH1pdymlRPo|w;r)=^w}66!~r&oI#+k7ymq+82||Nz1Pv!UO== zZZTv3l=Z}l3J?uUV>J?JZEVa$P|-RF+7dwfAb62BB>S;0UgE7$CT~vrtE1kp$e1$m zD_m@VWB`!%2wVKpegm8>U+U;bPFgv>E7i!Sc@$W9Tlq&a#%N0?@fxAJ1+!UqLloI$ zQTVvM>9mW&<+js#yaMJGmSZ`Cem6i*XJX0U-?YAT;5g$-te&gHJAw_>pH)3HRy_wJ z8b>VwpbNIdJ~okk&O^}dT{KMeK?|i%Tm;d|=CrK_fO@8n(<9KLe9HClAlS8Ussc!u z7{Ub_(t69m;&F~tX9 zMDJCa`7;87NiJWfe<-e@v>P?`Wpl3`aN6${i$&Ae;3cFuX-u?Q}uClF4N)_ zqBG44112AlW)kYsH^l&;Vk@+gS7bqqRvXN)H|lgv$dJslEC4dX#Xm!kdix8&zz5>< zg#3RNI2K+{$y2##NGt6lH}M+O-wiuNqV`fXvS;W74)jwj9D$ zsuT48t~cf!8NmHfg4<%IDu`n5+_(7wuokkihEuHvS~Z)HZHD_Y z{bHHbygucb8a_y8e6rH`e@b{!NVLF^+!G4`V)N!{n0IuTI%fl~$LG6rd;W+b&#}Z0* zskHg@`93C-87oDzU!x49W2`sh5e_#y<;uM<1p0jwE!~O`o+vMi5;u08-rc+a>x)S& zj`?7Fl^!j;!=zo9nIze+97}jsu`raqjxvG##q|AsZu?rq^ylp5721D)jth%Qv||Y1 zv_clcw@;J!;g{j|gRM_`uFeN1q@szrETorF)I*SB2-tqqcAAbH^69HzE1v)iUpO%_oW5p;J&%uAOLJyim>`yTO z3~gZ6+UlO_WN)p1x|u^r{tEs5`62oF8wLPPSZyz6Y#NPgUeK|x+X|-Gl{xyqYuN=f zW6*vvhr8Uwrp5F4D(Wl8t>FP%o$ts?19Ctdu6Ou>8kKJAj@i~6d3vUcddG*yS<=XcqRgM8ac+gx&r4nYHke31S_e7)& z--yaGS_wsf)hz1G1}&S(0PsM|JRkobgqxlsO3PI3YtSo0JNAhoxTF+ydT^DlN%=|i zcXE@b8i2n_8N;tWfziL!LVW9Pnnzp0fJ3^+%?j2IgQrLGibNg$NX@4Kyjz8U$ECDA zOhyskd=i-Y0e2-d1Hhb(wMZ`embc7NxV)^%tK|3Sf~@tAZLV#xnf*Mbkq8PrG2J?V zv4|87$@b?K#o(cxB>=cfd|Sc6@h1O;_L&P2=q7(gq7_}brGCel5{+h12Y%ZBTZKDb zR@kq}l#A9*By@~Zzmv5Usez^QhDotFs{-`jqHw`TaxX&;hTqu%J;L^X2L2po?wiDp zpo;vsjzTbOfX+n2$|~{kk?}8v#XX6~%X%Y^5o%j0ZGS$?p;oZpjBiSD7RBey)gyuH zGbgygkSEF!wmHk!na7-i0j(-On|^!}aZ;~hDLd9PrU3siD0mPP`om7T_IsBpNf&HB z3U+!EIMCxS+G{~Cw|ykm7fj@afLWtK?^s(bpC4`__0gDYz$@>mE!9hm^-z^d^_&3f zXcSoR${%uHXl1;C{c!NGn)*#JPDt>I7tF`lkbScQigKoH-HY?8l6A(>J_ zr7vCv0r<=HuI+JL>c~B1wrta0!Ja0}liMPz1)hev@o*co3x1Sn!{<-J#CGs5+q6Rc z-fk>$-np=|vtiS!Fq%0}hU0YR_i(aRX?q*OZRuf{{>yPj6rr@IH&`@yS0JC;IL3+l z$VU2or@8|u7%KC&&U@7a!-<8DQV;oen3F}T=QkrrfRE`L_dbc@H!YJwh=_pl5dWn_ zSmtP_Y=dXOeVbbiD2JyOE(-54pNH=1|9=-A2)^vGsa0i@W*g(I#IK&ybwC() zkoq>t5_tYJ$a63L;$Do`fMc%_LA7d6ZEJ|}xu!^Y8ZQnl0*?tsAT89)7#OPi~I=O=FS4;inci{K4z-2%-U%p zWd}Y(3MV9MdDnC>W3&a6Ez}Q^vvjKLhofAgyqVhJtrT4d#_=(oasoo7-ww;MO)2`2 zl@E%8L|%<9{Ren>$~J{P*UgGQ#){MbTk%R}6;APuB=mPlD)etvVbR#`pWpdEAC+S3(80gaYzn%w3oMlG@hkT)?W z-SkcCfPI&E!}2E9t>i~Ew9BB8?>a>$EZJh!z6wt~AN}WVJ1CLM-x?ZZzLbxDv$Wi@ z2D~cxo{;(MH~a zfhu(Y55(Z=W9`N{9~lA|DLC%*%wJ==6VE7n24cCk^AS78P=5L%ePe1oy>iE7d8gDa z^`F>g#Tq>g?sRX@!)jQKf~UY)Z-0&|CLmk;bk`3b?l+5++@m>4) zcU6B61*&;JRZpH4`1&#WmJ#rMLH?01^^4YRpwIC9Occ>pNJtcbVP5Xg?PIWC|}q^g>%eh3ZTG zvK!0-YyA27`xgj@dN!yuyhjXsp*rCRbuDqi9z4zaAzL&=eo%E)2jHhtcrF2y|CsUR zyiI3>U|JMe&y2>GpFBp1l7Q(io!~CL=+5qc+1+=Es2Bi>l(2XH`erPsL2^G95PZtl zHL`-q{1A#{2$+Bx7jnuPOEU&w)Uc8fQFi5lfr7ouOZU?-!w5FnMae3dl@ z(RhQPbC<<}Jr^Ni%1IcOpC4t7^6_@s;Ro&(2SoVGp3M6I03ZNKL_t(j z*l(x3bt&NlMj_KgBRQxg!Yvk&-VI&V<&Wmy*^S%A+$ABzi{)JlecRDl2C(U|smxS^lgu00Ow z1kV4Y!09=DO%kQbr)0FY^PXy=$>&*a^@1osa+8bp>rf&55Jd@&He4P z&*HR*=EL0A41XOIf7g5r6TgcBpo`ky+9urq5OqI%E<-B#e!~PQR>pUs^K~9=lXJ7^ z(qZMk5PAa4>7yR{k6p}o)}jMNX1sCeX8xk@?{E5EOzeBsM6U=`nzwlN(GXXLjt(l# zoY{*>_wV;zrwCjF*A_ueG`Pc-Jl=qb(Yg7!`&&;C(bY!fS(f!o5OjU#t0v@uqEU!F zkc~Ct@;jFC$!9CM_$Wour7_}4qd=!0K9Vbu96!9^O5+D@Zx!v!(5h%J#s?Cr?carB zUa=t)D4UOvVxc8`ti3lbD8nS^C8B)hK^bQ!{sSFyi(22j`#S_yt?uWiLgP`TIEG&h0Z)TNEQ^22 z0r|44lbq@Uk=TQtvh0-JnzA|%m6BiGo-6T<-PzmusV(>-WRl2LV^vpu8KkhUjxGl< zXDfyY0H}0ZYB<28w^xB3)`1@x0{|2}=hItnL#Yj?e{Yg%~6Uu!kV!(v5wl^v}}X*}ES>n4%peEWO0&h@Z~{&b~ZPIWu@ZNh^f z-=L$o^}`8iq1IzWBl$T+m8Q0WKQ9(^UN7ZaB-D|M9J}Kjhuwz`X?oKOC-V$#Q5X=Z z14P5F<5;al1z7nYOgRoM1YT}7sSPgx7)J|usAR>o$iGB3|@OMEi@uyOv^|vw@>i(1M=~U+^Y9Ht%kfKOEzg zm}q@7eSIvbQTZ)^ci*t610uN)@7*oa4=Yvl(kK`8wt9wAwMKdB(6W0Ll9L; z#bK_eWU2sL3VvQfO!C2k>2!CNy)8K01f&c8`VQ3tmWf5K6w8BP1d0LQSMyC-e_x2V zbPp^3k1H%yy-z0p2sbO(J;_bf6yV{G0s~rWWg>&;cxJR){FPV#eVN8#tq}$xY7OyyUiK{A0>55yiP($1Dn<(v?Zy zdeRO}p)pJbfbKni%4+bBwTlo))nVXb3f2bpCb0>WwNarD&lkxRnd^ZS@=Z9tk^q2> zHZ`N-5rJ@8JXDZ|HcCxf1^|&?J@&gWP26r_XatFeDW_?Z*bK>Se8p8q(S|Wocm*K8 zT)7AgBxBOaFYJvK(!xb!|$nKwW_ zDN;0V%N}t*@Yo%rbQHU^$(0;scOa?Ll>Bwm+L{o&xrPVF3^X;m-z;qZ{xpu za^wdzZkxV%CaTxxaR8Q3&yWf|3kY{8u|KZz?ri5JHvlY+wb_7KRmha41|DOj7(R%` z9b;|`I_F~$GaZ*(OA7UE8J4n5K;nB;;a{B7lMsJ1ef{4zeSd$2=fjWC-hb(jb-XCZ z+2d*7G8ml?v*U@A)mfY;KPwd?QszyltflxY1$0159^L(7w+Ib_>H z&@{>)fC#o}6o1jI=_d{b(58qu*V1=PxkFl|D#4fE!=Q9Uy2sDCv|CwEXv@CG$v zC+t{%CmESbhVoAQ_4U>Bv$(Fe z#k3&EHJ(P5M0lE0c=A+T*mqWa2f+{!*Ik?!;9{5|7N#Y;Bl(SP4vn zLp$U|_SVusT=e;bb`iyzWB3TuXzXZp*pt3@V zYdJXJd}07si{d0+C+qvT3jvRa=dZ|((!~A-$VZWtB*cdS$GwGjue@7U|AlfXdC8R$ zX%C-=wpcdhQ3ZjCA0d*(w03UiBl8R&5!q>NcD6|elE9eF1A3x?;OwNI ze9^-wjm+xxX%i@tac3Zb^1@%pOw-JetF>| zyG`pMml8tW$*OJs5dRvdfQ$*qmle0_;V4QEmep=0DvKa#*AZnNxP=!kc?esbq{Js- zz_=7X&@twqCges8&C2UhIx9g8-L`h3N#GIlaG<>U-J$o$@w7hR5TA#X-;tl`kz8)T zhmb+O4;^&+flA6NAcHK%IE{dM(qf7QX(GR6is)>4^FpEyxGq|;V3NDow>sVN1UEL} z(({<_s&VMlaPN@an2!x59}n6_?t`F^Q=-M3^j8Nt_5VxtTY3h7fgYysZ&m|<<$oqh zB0_(J>`FVGMA5mwG8PX|>XCE$X!R)|CFI9Bu{)^=1=vtJRMeVZi1s@7dD1-bWg>b! zox(jDHP5>lc0_kpHc~01AaY5;rZ5<-ik#P&aC1Yd4bxCNq$}IIrg?eh1R|T@uT|e! zVK7r_%dbG?yaWkx1pbtFHEPPAp+kybMK6MyAEKnBi3dXfDx!+!B$PiM=9gXFje+1W zz~VL)c|`iCF5Hi6?U49&>GjaFh&=etnV3v+iH&3LrUK&X6`ra2kp3B!oaRfKF$2Wm zT@9I&Oug-d%gQP~Up047{;9~z9+F!?g$ z$tEJ|*N0YJmGi!oJ5BaAMB6G?8t9gq3<}Vp_Y5~pV+!O>H2W#yIF2+13?CLvF6C-4 z9lJ19F5mT4EyO#d=5O(Zu7{UB1;opkHmz(>L4!}3%@Ob{fp})BL)0Sp_!XMBAc@4O z*o=m|iO?zs>cn88`{^ChbK&Jj@B_e1@7sR$(5Q{{cEH6Hp2j4E7cbdcDsmI4sWc`x z1myOB<%~^4yfprXd)7lQCh$r2TT18E+wEL7bOjl2N&{0Z8t-ZnYCI0C<*?+X?452XEz$JXaGlUR(8XHklN(Z@hZl~Rp5jr29%f=HYNQ^-YiVS*gj|!hfJTBrnIe>RY&FSWT0mO zLx6fUU3%G;bEct{yEf`$b%-I%K_2J!==vE;smmFaX@Th({*>Y1xMVYJEEkg`V zRhj`38iLo$$|6gw+u6{YC%z`X>JV(woeL_K(nyc|9}HpFFUaPB>2F zG^cgN1dLYNI?cy?z_Uj_lcCwZ=X_LG98~$>@1PYM#Jbl;Qb(Kf{hmQQ*Rt)iW3BrN zZc?6B-@}nfG~wRg2_DUoLZ@S8Ak=~3FMZ{Dsg(%(VG;Jp9kK8LoF~%qjRZ;mcB{%vkZy(g;{eg+TzlV8*M6NX-A~M&q33rB&&*J`dbxiC! z!nC$cc*1c#P2&@*vc35T$EKuRSWbYF=(r(IC-T>JZQE`NlB?|R(bTrJ5GX>tT;q9# z-d>p~xrHM!dyereXAJZsRLe47<0L z+|oRhnB~&P+MK0nNzM%FzlP>`8hMgo= zCSy>LbD3VIfGk$otxShXcNL$R1jD4oGBptB<3^Rh|C+-v-!Nly9CI0qp6J=|gm&I0BZ~Fev7m;me79rW2M1DNkpV-fo%|X7m7YM9OQ0InQPyO`&;=_*{i=glhETr;o`I& zTojS-0h-SgPqXMw*_gbcBP?6&XT6->djJ)tw{M~-d5#s z-j|gI+9@<%Bk+@CXZ#xhyO&koUONv$eKW>}bu1^uG_0ii9 zetdk@XWDllZYMl%Xn&`4c-`Gh1J-WpujZtMOt$g0=>HKmHi%jj<2IW(n=Dbb@ZKn( zjnxqFCT~C|dPx^v#+wbI`1sY^LoOez4j{Pdw53j&?3GQefM`6^g@}A*o*B=fTDd%3 z++DnzckFd546Y7M*l|e|!JR-X14_--mo-OE<0(E_muZp% z@!S?;WJ49g8{jgVc7TcQNfCU!r?Vewj4WhLT(_|_vgcEK3dtT58a2;s`QKOv+^+R_Z^2& zRMeaE@JG7tX8;sknL~OgFs&ZWa@K!z+p%dZyt1l?Pz3rHn-;d-tj6-n1B;IR5GT>F zWZJ}!#<=(jxE6HQCo1mAVBq^rC`DW_XL`|Dp@Ikegn;*E04T2@JM<(aiB)Vb7dKl% zq9X;^2Ua`k^}%WAI!YYt0Y84^d~{m&32*lJedTJ7b)j(txxeHM&(J{Qa^TrrHUV-K zOJLoea0SQAK(9xJhCuLG61#!G^4=fx%MfnH$)TTbr}IDe+v$|i8=xhUYzVkT#{l1^ z>Mzxy*DN@*OW4J?=4m=8(^GL!tqOLjy@{&)QZJQ8trP$EV;BaRfjM(7Ax~m^TkLF5IKKt!KhQJzTLQ{)$M)gI#xCd$mE zzqQ>Pq?e%6WXE$KXRMY6qzNz1J$IFiqE`kQ9Xipp8+DeuN9bZe`u?;@FdP%b zmK;ELb9L*NC*dGzeHdfb?VL4Tm#z7;Eup>hioaLGa^E^fTofxR z=)t2_E%T<2;-Ru2qtgL}Hs@d>{{E)_{NERS*&-#3F^zUAFSu)u>P2(TzM5-;}~ia@o@Y&GMeo_o37O}W4p~;M*{#D5wAk% z>aIe-T-G*9Z+?q9C;-zJ|WS*ih23S0%UPdK;P*oLNO@h0H-v~bqx7n(%;O``$ z+CA5pHt`gf_lUoxC9QE!kpWn@BY5S*A5bDg`h%SXUqMKBR}>l^LXA`N{s(Za;)DAB zEep_x;HrMcjf_AC-6rc~oL3!Z26_N|)z0NUM5|zAjN2lgKJrT$>|m`8JW*M-@c$=s z%9Djz8LZ&E;@^kSC=}YzxyqrE+SoRJ@szt}8h|g?@1?Y1SXXa>r?y%|wDG15{LqQ{ zhoA($<+BFqh;3e2bu8xn)i9=}7?E0t=!-hMnP?XZ^Dc26W2)PcS8dG{m$ zC|E9Zm3PBaM1X?;bfb&_;pqoT6M^wym?lXcAN@OW{X|z(;4NkgYZw~^D*CZl02AmHzzv=;T%}j3Gyb@&`dc$z2lwAd-b9I$1Nw`nrFa4g6c793(tBjyWfJqMD$my%;)Yq!-`3Es4#PU zmFCjN58>e6b+!O}|K}V6hyz=WOm6j)oCx_pE3@qeg&M4%#i?vkd~;4)pO5K|G9N5?$?i zs8;qQfDbkgU2(pEx0Q18!u!zD%73lMhv8}!ocbfI>CQw%!vMOeL}yD1RHO0DdN#Q9 zhZKfv#$XI>D#1COl2kHnf)n|)a#p8rLi9sw^kIqHg@vxsQ3%^Tojlwt}VS9sk*DxU)!#O=Wc|{iSkDhJbDd;~<`w&|O_uhFhsz2BscRAK4Xa})L4jAn3&3bN+O!IP0y+Sv zZNzT9U2>ct+Eu1h`3&_(OYj^c$*&ai0{dKTAdX67mIoe@tbjn5Ek1**94QfDAIxW4 z?rz&HZX@h!+j17Lc1Om^n&&o(({*yvy_u?ebua&Os(`dqYGfIaxgK@z6Lded>;ZCyzQo|LVS(4%z0yi4t z`#5g=ysa8TQ_Jbwc2-PqNEUz4eYRHWw@owoqL2VES^iOCvA|swG*3HgkD)bHP6X!h z+*(6?=|udmNZ-(GdOFaPo?+Ypz`JKNur)MQmY&*bl4c#EMxHRN- zRf4kWB{stL!4F>sd!qxrVZet<=Ovvh5+XXmw)}|fV>#Ct;boyW5n!?^v=eZsWj>jZ z&-;@Sd#BTx^R(W=IAyj!Ssvikwu!#c$aFZ-C;k~M+ygdpspF$t5VlvPcadMuN0cSy zs{z0yw=KH^%5ZY?yC^+GWWpV-@0rpu%OHO1g4vM;J1G=$41B!;|(II=Jp09 zo-Gdu(4_HwdrRSHwszXU@*wHUC9!A6#{D9(u?j$SdKn1gn)bFba)9TPjEIt#^aBFx zz1B7??kag?wM@p)}=5NQ-$FcZ=z|)El{@TF99v!k#3c87h25fJ_E- zz%jk5fnUDAhe>Fiu!zDCT&8r6E56jd6cD(82zn`nn{PV_dR!Qhh?)osX% z8e>=$EP&6S>mZp5BxR*o1xWOw4$x;aNORc_UJ)MV-?DsAtI{4iiz9E2wS#U)deE+t zA656_%A*pR^uk?ym6y_8VoJa1y(KNR86R@nDa{px24=(lp-3ap0i46M|`g-ZW$*QVsM zI|XHszCY0*zO=ZvAVlYyF-=bdXDAeF3%9Wl!p4TiF^)$0Za{OTYmO=h%+VAF*M^i z$$VS#ItC|>xR7Z&cSGMTvI#8mN|5oplg7hb{iM@Z>9H19mG>M*NNs~8zWHNmUdtA%_VL+b0KLDbDip&N>a2JRgmUBqZgDM>mCdO*e=*cl4bYWwBY?2pw@@yb@ zWpql7QFJwi#q8S`LhxWVMz|S`-}DslZ^I`9eIgjW=W=;JuNHH2x-)eZ(~JY`=2i{7 zHQOBH<+(5Zq5c2WJ14DVR%Us}2U(?O9V7Xl=Y#PW{y?VV1PMqKnsEXX`CfW^;X`ZD zxh;VyJkTEKG8cBK7z6aH>tB$UPJfZfSqDwpRc7X6i(XQA| zRzT&?#P@bah7J8oy!8Yy(?<4EBV*n^})mD>>ammh)i?R|)?j_(8`K4_&EuexudD;H+GER=_ z{wCwP37dF}@{vn!Eb)1_0#lLR8Dz$kU9iEa!5`0A;7}Y>AgL9iVNQRX*~ZwHi5qH_ zP>DSm04#3im}Erc++=9DN2Tqm(guB*dnXE+(nqEp5k>>RLl}jXzN~p18!_QBuR%JRVxJwrK0B@i_t+>rnvj&_XxDxb^ z9;rKf`~wN5Nq1`;KDS?du@F%{aCl)NrxR9LRV=1Ff!g4ENxELMA5lUTEjCAEqh#gy zXTHK-PHLkf%yDa_6_h+#W{YK^vCjgXb~i?&as!4S+ zf=WMn6*wTv`~ysDfUoD{s}VZe@oSb+DCX^k!ZT&>27rGI>sIE!WK;%K0@OpF+l+Rb z@_R48mP6bHeVkw#JpI5k~~miB9|x z1Rs6^ZxUaXZv{RQd8?l5>;cH(PX{MVWZrK0>Rwo0&4e}acM5gbFp)R%UBdE>d4hrl zR`j*0m8~G{gF$LH1|8SMlYzkg^%QVsfd>vkJilJ>V?#hw3|>^C6D#RSLxw!oamX*i z2aTjUVmAKvS8e-MihCKf@HuW28S1s6j7mbuwo}*hnPf|W?n?fR_v?wwnjpz5oBn12SnL`2Yjz9O$_>{zsfXvPJb63i2# z;T{!KW#4x8i@1k2{sBAqEBvetUsUoLgFCLqtP4{I7x+4To)4#fgekVtvUIha*9x6@ zQ8!1XReh)Y{>Zx9c{NU}wlw>3T!jaK6A@AW{w4YTCKAPsU*Ad2*tLcst4_th6X3jD zZ1)~+;CZx;0DZv4DDS$u(?KN^27o5XYMM8es$rApes3wXMc~_q^QQ2p0dWr|V2dPd zvSx1wPR7XlY6t*Yq!6L>Zi2)A*4Ie;2mY9sG*JFEymS_ZEBcxwn@}C%X^v%T90IK#f0SjTO`}XHkJUzcp-V0Hj+aW`$3ZMvG!k}#C*an~yTO4dXo2?tL zVIp)FehhCzjomR%YjHF(o0bM;?eWZ*;3Qob0K$#R%G>GfG@ONDe)k*jRSI%_b~?ew z6&=?~TB8akYx939`66==oP=8+!&?iz)OJwR)Zd?o&1;-oCUQ$llEqe=Ed5qj9{aa= zpOe^~;VKP=m3LX2Sk{^20}*ahCtK0^B{f%pNTkv~d&HOyO;`Ke#%#?`-+jnrGCb7? z0uLJpHKWt;OMx$+k#2!EV-_i|-Ve$3eCJrN^`#HzeV1@_;qf}LRjvll%8%Cx3#J(6 zEdB?+EqJI~0Mg75Cl`nf1z*fE%de@o!i8W$=v)&ezk2W?jru&<1$UPB*(q3c%Q8S> zV;1C2J+q2S22h?5j7^*OUh8nL<0kU0^LX*s6Q6O^=p`m)BSfM;zZMXzshxfG`m`If zj&)IE0Psj$uvr>T+a?ZqeUOqm$FerT@tI}^Y_w|ToKL2=tNfZ&bVC5}FvtRLCAhMb zlM94o&y?yVsbOAV0B&1E*{INUvu$ayD!Ps$0ve)*>Gr8KFV!vY1FjDYYFE@V5p6XD zOj9-;&lN~bZ1`l2_C=}^VUXcx8-P7zo=8UBy-66oD^5Gd)rW;CMCebO7mIn-tqy!( zQbUHhtuPmQC<$OEeSgjB)(7Lsy=`nU%J?|d#C$~S+gYFlz%CSYwvYs5SD zvU^FGPN~}%214N33;;Iy{|(%m!iTHRDH<1E$PTs<$|z`l>s3pHVn~J|B1#*mvLDS5 zBmvc=UeBp;^NNltbFu6P4C&vlC7(pBns7s%K;J6}u;=7tb^au2&Di}EGb_D?V5=8E z+M|CD^I4DYeB>(D$Pv4GN#R?|xbN{xrSWsAPxdj~6Gq_n&x`}v3;;rQy7n!wEh=DRC<6#v#v+VzK3#F^}b0v=Ac-#|z4nItI(TlI#E)TbwbY%)^+Tf~8p? z+tC1^AU~TZ~P_^Xio)9p1tkEYqY(?*7NjP`$pFd zM@^P47baNA@+osp1G>-8*8u>`$q-Zu+w99sn>Y*s-YHBYVtO(N%h0>{N{vytrS+68 z=XWwj<`&w{=u)!YN#rIU+Cp&TKJ-@tfxi#8+cBerL-$c%`BeHO@9#}e_F{()lu~#- z{lCDT220w(gT3hYFzSLb33xOBblp=QCk$zGAC6y8fjzPzO7WxSh0w$GT6tTQ-Z8%H zF7Q-~4v8Jw<2X0#i>9Q;T)NKIF+3=%vvS3Cu z5uvTy;-Wo7<=!Iq^w97JON*-kStqIlOoc^x_1v;$U}^8b11I?og}J-(yNWlqQdmpv z@roD5T^lhG%ThxCjOwylm-Fh@890jrD5%2*0OEAIS=CI_$rCt?V)Mt~o^#WZA5Qdd zp(g*x0Pql+e~c*;ohG1ricWGZT?{@eZ|Gnfy=Dj?Jy9l8fz8T%RNbpLgO%&n^(X@;+QAwG5a8J>id|H=`oZ{q1E*s)JG1BErYmG?zbml00i9_9e~Rbl!;Y2V^e4%8 zcx9`DSPz%%zje^^An@<-#fAo;G=D$g3Tt;=3BoIw7EzpRtaokq3@q<_3&eS^-fo)z zTb(T0$MZaA$%fb>LcsvxqK^oyjGTSIo)a>}dn2ud{}F4uZ1*52*XYhfn zt<-t3ez4N{pBHKvE_LAm_fH0Z@dkiib`JmL{m|N9M>#AhQPNXl%h&8hm&-tzxixA&w~LVk%oqI_^w zi@I{V1}kpYi6T=46$TDmfR5qt_pi>91i53Sji-!M07t4MbQ=J!cy07nqMnX&F0dFR zgz}+m*(^D%`huo|QeEn|F2U6UYXazREBM zX90d^8DetiVu3g-LE^>5!NssOfQK||Q@=K_67vbsS}ujl@|DL*x^3=`4Y`YBie>U# zbwS^=FYx!%L*fJ`HWQD0KJ^d#>CSvxvPJv(sSmi(1W8A4fn0ES1@wM?>qZ}sZJW^R zOl}VMWH2)S!DyCP5emtRj5=l^{{Zh#V{MXIG%JZQh)!1Qr1{`o_XrEt}OnJj5~I<5*Xc*fda@ervucO<-w%kc-+6u-fN)W9cpUQQU| zjA-Op0WUSY@ED4NS8LVxk)~eJt2I7t+vdp%Pb91{7> z05Bc^_@o_+gnv37xt8}B?;kYsx|DAro!DllWYT3N0VMT>-1HinA)PN!^4_K~)EPl% z*N&Ydo>s}_69NoLuBxFJ-hy+e3mG#6+y%0|+(U#4#Pg@60%sFZy~jAxYejJ3nI>#n zPncCD$zZV@39(GYEd^@>EY309F0{2!ogVl*3eU4lBCF|%ni10~3s!r=p)W7BT5i}kR0YV}H z9({`^7My-`x=*%H50hC2fPMkGdc@CL@;Ly{TK%frEY%bB$Z9Z0@xXXkV9LwD-f39( z26zo03Cid624@gx;eE=aV!f3W0N#LDnW|jME6?)~jCb`S_Y}Fj-<$RdGlChWTj}YZ zG4U=KhxD-j|MQS5B}By|AY%P*xL5n^Ukm^a!abYd!O}OLKk65q0AP2fI*k)(n6?;R zwh6>TgYY_6$)y!p>Gc*miwmh(SmAHnxMTWd?^;_v9B|7-j>F82oW$5z^Sye>bop+t z>y9D&fZm4l(g%*>Xl?A{UcZ5?R4%o#^31y`ME$%W@`f>bWDCiUy*o1S+^E1r-?r#e z3A0rrAO)Cd*I6W0xSW<)7CiluHV1Y;j#-s6yqO$E*57oL;5xu+RD| z8n3i&+$Cvmm#K+be2T4b&SS7OE+e{SFUh`GQ&dj`D(?gh zg^0PbYWL}G>Z@EaBe)0<(m)8n_QY>t_ulrp!g%ET?piq^6?9l`_69g7 z+yc$2kIyy$$X$vk4*iu{}B4X=*Tmym&P ztSaRz7m09{6$za4Y;t)BlekCkFE;>nnSXcOs0;G*Awv{(Oe|1<$BT2Y;fqnvUCKo-B_SfViKx~I&j<8p zcYUg}7Rd}ibg67gYYNLl5{24*=HotcL2y~OExvBcR+=9RUI zHVd#vgph8r@PV#czB+}+o{JOa~82%$WrTNf^8oh+M`RPzyzRi2*RXno1g z18eqnFz)(b93G-d=a!xxI=)XOd;g-0yN$m~(r0pqcTZVW#rT&06dcsjQEv|X{27$7 zY5n#`AyH{>A<<(<`~;Fa0kyX$`EjX5ZwRVorV8Ps~s=Nv9*E7ArQY;gdj zt~DsMDbWJsrn&1QKR)#2jX1Age5|8{%5T3kfK2b6j8fa^kLb=mK<#X#&Zp8F+Cr04 z?}Nk+XFMu>!wO5HEcWuJgOs1iAtG{j?#txgN%x8AtZ{vyTtnA8*J$N%wV>~Vyt(Af z*$|q%bufGiYrNm3r8%DtUyrvNV7&T{7J z!Ze(V;Uw-Fcy|80nl2gtloiP!l5SQlyER%t3ZFeH7*QPOZoHUQ}Rm2Sd z&Dqt?dng5VUSQWb=B1e=tb3QK3_wtd`kn_vz)gl%{%^H3O_F7vm+0B{c=m!aG| zw}8S2K*$7V0(B)wS|V3*GMSu?mWFMQ;Tt`D6n?&I9$My*pIJ8v_kQu{U@7KRrxvbaCi6T#ex}H%OXAh`w3J z*n&3JG(MhCqyo`u+29>6TQ>VoE8Ufy7*@?)#+JCLp*{$p0G`7=!_Y4VLMxlUkNKN1 z)fzrzTvsHoRV~9Iu97V8KTx=zo-g*EQ?OLyX&qXJCTWxWsddwqXe|8|C6nH3JR#W~ znd=pbbNv+%u@YVp%`}e6^H{Z#&J6*klkBBUc`QC!4A*(ki>Zi&W8c2#{nDvVpDisT z$i9beMuUzWjidu0&_0nm7N`n16uNxnAIP+nZbaN0zzhI*kmJYrbAGDyx%WV~ zJLzw6ESf$Nm6g_^1t$6?%<8PigluT94vA$4)kg z8+rVxyDOi5Hoy%xT&-6W{G*lc@6rs^TywzLd7swd*dbP0>R2V-s z$y}GcJ$6ChZt>E*S@RqR*w#KOdP&dK$md>^U=3=2)4I>{ohN1huv;XikPabcdXRBd zkO~oOJ^m{r)TQ6IqhMr$Nw0WKQ>01Rdd@M*F&lsI3G5!?RPiG?*rXKw?{2;C~gHWQ;eeW%V0pNas z)4h;!@8l#~fYpU!1<%CDcrw)m%WaquEE~*F#taOg*JT0YcUx_^|LC-P?<4y}2rm{v z#ZilWf<9ifS*0Oi_cIA?z6Mr{5+pRs)%RJ`)Nd{`Bz-%F>sTS^k`p13RoksB+eI(7@O#FUF=Luzhwp`Kw0e{D|36_$bF1cZ^Pi4&bB)E{n%oN zxf4%x77=7=JWb~{ni?lbu*c!UN>Be#w^aogMHl5GlJX<~0q|I^>aXri6cZ0OAf#2G zr@=fk$|Cg!Ane`fpXTp*DA~n`j zNQuE<*bYp>>V?a^K(E?7XIObp{m%J4mq;iVTR#1|zB&Xg%UgXg{$TSS!!V>sz{LQ| z>qdzY=n}EeuT8WT)0Yy>gu0+g;U12IF6xKq1Jzz+QzSR!yDU5(okS4RmRt2)5Lg)K z?9AQ(GQ1vFrE~7-*P=z+mg83Nad-hx+`PAb-PcpS^I*%<6?dD)%JT8AaA}%ZD-ClY z0P8_l^HLT__oo2R@W!n(h$umeq24HLTt`mT{E_m~OoYhgotg3rSP9bBSZ4FEkWKV0LMy)h^9q%s1RheOD$n67l?;vsw@Zqr02Y(DsRO zk3-D)WYtoka7Dyz7@g8O#Bvi1$sR=JH)i z?D#$z0<2x)Y=DDUY_&Y^IXQn15ZQOViMB&}THj2h53itXSGJbdvEJ-OaOOc&&cV}@ z^3`m8G*-_5qUOrl$b=;jfw7qR?&4blOvwv;m%xk0(!YjFobZg`#yKw;Uf#pOfcDCe zGZZj^P(R}W8~uhU9%$&^Dj$Xi+&Lc(N3Xae*bA@~z!kq)0$s@6xu#Auq>b4VBw^aB zQ!70_TzOtINOWJ`*2#xWfcN0xwZK`Z=NLH|R(2cwmSV)=^aqr08rhK>d;qMAh5*|d zK?Fz~L3b%`3a8H?K9`RI4=W-u#@ER|^HTY!{jF`c39!foTv;D5xEY$}!~Op)_-h0{ zrGA9`c+pUJ&XYgbd_j(v7$4q2ojBq<{kGDFQl@v;p)0(YqfdDOrxrbq89CBo)r*F` znTXT_&gOAliX$CFrW&nHOh#`=vynf^rbxg;a_C6px*i_z2foG1_@7v?7E-vkV9XKe zR&uDFm!)G2J%BjhMFmo~ld$Fe@_BL6Alci`$_y z`xXG>7n{XFoIyIG()S8)f_;V0VO2DE`ROe0g8@%QU&P$mnQuS9Iv6%65wb zVDV1XKxJKxf^hQ)$WAe5um_kP%GWZEdtsr)CjI5(g3083?J*@g;f~8?zus0VuhV=e^dd94tYD&k;N%B9aMG$bKx(L7wAZWN$&7&Fh zwjdG(q8^`WZFDYTU+J*EMXep!r2v?h?&d^9TvCUlIrXp9zRptLsCKilV`H0NK%YUq zM?5Hph>MA-m22 z2li5q3nmZ}I#+omnlFvpz^MM{LJpTI_5ZSxXp=DC|IdYSKJuCnx^59@>91O8Nc)g) zE&o#>cg-SbV#0|6?$kk069c8K9NX{8dg$qDEQY5>rM7~Z3NfYSsfJ#r-`K|2qlr>z zLd*#Z-WGVj1?mIoUwapUZcS0!@ube}5xvHW{(Mp{0BW^Egou2roq7diBcuYjrx`Hk)lvh} zxO$s&gMhlz#!{+6mS~Le)+uEY)#BqU%eOjTY(WafLr~Cg+^LZp7idv+u9#%pxXkJ*|6+eNEF#*!KW<< zgzuSQ8)PG49W2x7NXC!A?8qm0CKoT_Z^PV}Q_go06Mcm|I(>Cx`aU5!oYDDv^u@vs zG}4IE4wXq>6e1`$tfZKj;$+{=fE6!gSj1UQ?0&U-motr=l&2Z6&Pul)bSWxZ_u-)A zwR3I%fTj}$anv|slA)31TwQAidj2>xy)0c=5oHSsVpQ&Yg7|k6xv?J?r4|-!%8Mka zVb61s>T4!nfMy_oNgFJdvP~cVH7arFeXDaA0J6LCtRyBeb_tqU*Lgt~D$q1pGW5s~ zD98pxJAo{_{EWdBMloCapHi4LI#bh0%>Yog2z(q0SdH*OTmNqlpCAY#mZgS(vSe6= z0RY*vr-o?M(C9uV*vHG8t^>s5n_$I<(7(@p)7-8i#K(>%2Bi=SmrJDv znk|gyC=6RkM&o9CspV^D-4ur(IJ6+vR`9gc5CC-Z+NwlO?|3y0Trp`HiSg*5<=v+R z<=E(6H`UP_VH$y_Z_ZYM>W%;vvmgG>xb7~C5?zQSe-cd5+&?*nM63HVF_0b}($NqU z?r#?SDn{z-@e_SgKBPD>7AA7TsWDP{Z<PWlhk}|lwbwalX_3e!I{wJcwR?p

    )dUTDlC%c~YB5PG|VQ*O)H$y$wm|U0-juJ^r3;6=Db8G*A-5vUK_|Nbu11lX?twlHfuI@kIQjSjrO7*6 zgy2|E?A2Vf^)PdhGEOF3>UF&-rdk;jsu6dIssA>pQ(hr!sqxI|apN^9F=x_vc$dL( zG^iA|pGJ_C=7s>2S=#?xN@d8e1+go{Dd@r4b0MzlUSq`nk^G`Pb;PzRkYml=V{9r(wisbu{!yQI;Mp}aW z)*nY|r-SQnay47eS5YFcS{nWv`XbbI40IhX#!!>IO4O`Wg|vDBOnEA`qVe6mfAzX~ zI*pI*Q;K~LpH2d<6@3U(k04<`KzS+s9^Q25f~6$D$wh-Xxs%q~_r4X#by^|Qdz)&G zbr0ay{ybhdOy>~0iVRJVmG%;#M~xGiT=iXXx3{Q|)IPN(^j6;{Y1-SU%!NOShsXpK z=UfMcUYiCcU}rTJr(Hs_+4bfO{jGgMLAW!TVE<_*2`Nf^Dm30lN}jZ0s~F9uXndl8 zWeEAYE-xOq`I;{%k{L*9}hFI2>_VaC96H{(GqbbyZQ+Mec!?D>T0J!gCona*>3SOea z$YVOjfVIXkc?|RNEuLc0g+Z$T!N98W{!{o&G-8Kz`&}m%`w*1L2Ix z`y45^Y2>B`GIU!2Ke&em3Mxut*l;}L&FrF|y(CC9Q@!DE@u=yrKemW~5e>OJ-1T;bEyE69-p zZOqz&iVXLm>Ij4}7Xk_gUt-JBQ)qAyq_4v46)CQPi9|vwGDv)1ttc#vmhNMD!p0=a zD3uY)3+NjR0IBxO+Sy;>yY70kSqaf<-- zyU;Y3F-vIJfh0h{Cfdt8M1`jT1@Y^Ph}-c?o$%IxJd%8evgZv>8b!|S2BTrx_+vP1 zuZ|v7Tl%YSF*%AQz}4+~FH88$XRfs_JbRyDV^P&AzKQ(cRKyW3F;+1K?3BDw*a~$J z{4R6G`cDG{wueuhA1ZDay8_8-S}+ffs?ZnF_Cr92fcoHwu9bG#|w|Vvd{-JiA)d#UEei4)EWd< zfso`KXttcLJ3+G`5S`C)~;7Tz$U>Lg(E0DBO#rsI+|Lalm!4^y0x;p3-jDGPN8 z7h+tuJRVAno{DPfvsW_d^7yw#wzB~89`uw&2BX-&i{MNMIecxCzSXfn*J3YR(!69V zO4cS2~QYr zuul+5f8@k9VI`leX9BNYLJ)A5p>ZoyktfM3E;37pbI#<=T=D}uDylax7xGPObt2_! zrvUMx6h0HA4X!q0UkwslB_LUh|;D7wx?^*s?@i_~T^h0>r58esssCSX4s2cL&7 z{wE|?TQRO1{d*yn_9h-VKs@*qL1ju$RN7{yEw!_F)%52%Hzy`2U0ocb-KNdUL0tzb zHB^2Pt?w{Mi@H2OeG#wYTA9yApX+zmW?^83=fTdhwhY@rsgWQ zim&T9*}t&cv-^IX24q^5RI+iM#zJdIsQ)}f?xF6JztED_FPuQCp3+6emW~5vOQlXU z6Z_VR$KhPYXXe7(Sxdp1uo

    (bWx+gq?)Og!1D<3d19xlLS_*qGHLyL0}&akz%_(jKpt zdk)e4A+Ase3Vic_hprumf{wE^Hns7M(%c@EPeBM5fp1n;A=Z9|T9j@RaT|XRh zQ#(6gN3Je2l1sDXJ?ady(K?wUXKWkuK{k0Qp#m0ByEvn53#gNSl*z;Pu~fUufQddy zj7_Z(q)CoTcpL3d#^#5P826Q|RDHg!-zRd4&Z7*f{{* zqn{zI{!Q)_q0GS(z$DF~o<)x&&|W#8c<4E26J~9AQq5esjhFV=gDHo@`(Bd_OreNhqyf-xE<$C9UP;91ai*3s8Lo~Nw9%%N} z24aA=xN1z5U-F7srt6#C>v*{@8YzRiri#JwD^(U7d&=DOt$oTE%@5suD-=!w^i~FFRQmLM(=!-LsnjaKg6)1QghAnOA4e{y72F z5!5>EY7PH1Oy%5qEB0g7gM$QE#jeY;Z6`mV;R!2(J`;6&SURYqEqc&laPrV)LZmxk zIT^S)RODxN-2wb0hEg3ZiMgP|*5TpJ>Pb}$z|H9D=JTC}}6=qMgDb@FXIcW%M~X@G?rx|jZm44MhNOAn-n(Y*v0hZ7p5`5osJqqwW` zwa^wRFS4eFO^4?nLbSnvQ!bH14#X`1eyfGbFDI2AT4rj5#xD|E*=UjQCNuoq6dxe7L*^LtM|PlhHEMFp3{*2F;H*pScAPnyxbEGv3be zVBI}7WZ_&p$JX5oe?AkuLe6P@Yenl#%p?L)t{_}qh5Eb zx3!}$hMxU~-u^MTC&@7I6i2^y+#zF{N8bB`kn@`PKE7c>)$dXJVS8NMfDrnObhsTs zeU57^D4El*TzcV!!_&k25LQIQZcwgg1Eke*B3kZ_q8aPNx?d4!h?B%8VW&fPA0#q> zv!=c1xb7J}N~3I603Tr+ffG&T=czYNp7$8nzL_iGvV*D+gP0&@b{C6fo4l(Lz)dbM z<~Z-D>LF0O{{zt9q(m~Lc@?NRa@)0JR&@%3Epb#w!ZpY0C{YAt8qQV6;J5-brpXcmXh6EL->I~nkfaUmXaLJR zdhHhv&+8^&qtJM9z>MwbI$~5^S%pH@))k{yTITRHR6+v7Xcz(1iLzAiHWx;h$KhK4 z6DOt`YF($gGZ~=HVD8pyhaYWU-TO%dO?O)u8#G)21s=@yKTRm2kYWJ1oKf(xAJ;HA zAIIq?y~(5M#DZ9D;wEe0`YM#GQMu>%NPJp(?V*|7Z(egy;F+Wy8h1PHzYB^DBeu%I zTn0EHKUHv1xP&W9+{W1y>NflK9sd1kfHiHJwuJEYM-78fu?!@C`hjC&qz*%BMojvP z;ZbrsRRh3C{e%3N;~yn=Fzqn}IB3@uXV!%f*MCL!OePNSjdZ$(qti}R(OP)h4tf=4 zwXO^;jA?%m(t@Bp2^c&nu#@-GsoMgqaqoqKl?C#<9p;0%RnK76y|vAc_pep5M(oNYo12K6;GxslVibXz=$Km^rTXDDM9=XNjRm)v zOs1=oF|t|G@1-t<-c4r;V;&~nE9<2Uq{T3+rWXRuuEqkd--G zQGD}j8&tkXy#I?XfRUKgBxQonPEEapn-V1+d^5~#N14_4Cy-+WjD64R#E3B&$21Iy z1BXxuUn25@#7@h67X!dtX3Eq;ZTxl!;1dhg2DCZ|U0weFR`@UES-ln-v*0%q1v`E3 zI#dCaz=}7mZh&wUY}T$y*F-CXVqHH)#b8UlV*rfV&$3`%w5kFvb~8I$W2@^K%=?4n z3G_~Gjg27csD+AWSCV@#{V#(sX81rhmP#xHQFO-8&rUCgtUTL`sbv%GW#ie(1hwOd zzT8^6h-iPASOePAN*(v+aa>{>LJVA)m=E`q*5ukRwYyBaoITE%pa~NAHy^^bgjGC< zgGG;EWO2^tJjIHw<=f*tPb#1mL{tx6?W)|f;_y&uBZuSPL49?eroe% zUDffjnYw?2wZ(QLyfXp}EeDTffFTwVVAz|4JD^?LQKO$CUNBB&>FR1htCz;SCyIx3@ebdt&iHQQR)!avcIMCJ36hl&Soy zjv~r#??@)|<$NR^uo~0xx>CTLCbbXkFq;KGz*$0CR!w0*gHnI`wYXklq)7JcGRgSl z0M%DQZ31y0T&KuU4gsD0)%lqg4ARLu4*fcxO3;=xM+gs}2i5A3Kuh+$^bpad(}ksh(9|WkEwy4P4rtlG zb?=!+)HJVs%k4SX(d^*Bpnrp1a{GaL5K=d(5}5@+two+D7#{|gb=)u8NadCnCR~Y* zmysx-PJ%;w*IgP)yVijpdX0zz6cQa{4jO_y8Wtz<(DW6lea{a&(`3GvUgK(H1fp?O zASL;0K*b2*%gT;yY6mRlg?* z{ONLdv(`I8Xw$`-%x*F$a7X+?b<-aarHhA>qZKQj#Mv_R21!jWm!UCf!?K z`uI`rrdBs7mgCtAiA_V%OHl0Es#j!~W%?p!p2sg>W<9x| zHzim3T+C;K(La7hcI_;V3P$`dG*4NSrrnaGX zC@9r&%QXS^4c-XZhkL?f;5**1epy5dy_UMIq|{X$o_B=v(yx+bkT1SYRV#)7E5%Ci zVK6S-Q4!6mr0~-L001BWNkl-`czz8hWdU_CK<=E{$I%_C1?rV%*kOZE$GWaB7?WIh zf(d4FApYCdh(m|(o1%+Q^%clcne?33trrp8a-l{c3b%aI)NYlR&T6I?jv+whS~uzaSVtJMUCp{Y5IqGy zu!KMysD{kV$F+Pd^zaTEDlM~2Oy2Q1g?ue%Rr{Foo(qhq-3>G+|KU7xlaYgwk4VSG zF6SzhK`}woQg9_RKYD)FqUT-KUzj(5Osm7?ngU#tpJ>NWz0D%3$=in^_9tN_N$%7d z#&zRMYUd;KS#afg=z->zN9JrpW(cT7OI+P$EW9Ew(GBW5c7HB5#J4^^NpHRd2jgw!>C$Qs+~ zg8e5E$LI(b0*Kp2L<)a70bl?)%4+8hvV6)S01{JbeTd-$W?SMCJA{ieex3Zk1&q%W zZh@Se)`fPj1pt0Pfxo#Rqea=xc^86e-0< z@RS}E@YVJs=}&%EX#=~{JWk_~C)DM_0@X%MP&&Gd^)tly$PJZj>=uHpaTX@kxlCNE zq*INf;B3FL4M{ZrPOb)5g_<-`fFM#ut)C9KL8YtpA8$no&xB1xoX#4^&6O?b!@f(Q zZU{&<(S8wvb6h6HCm8)2pk^ug8=HH!kiP?OU9HSbB{|(Q^ho7cdIwK0dd0xLe=i0A zuCWtq_gsH6K}jmTHR7#RohsrR;X z5bK;Wcz6X{qw2YDsrl=BE=c83e(*@cuqJTIqr;EJr6=o%{Zn>C=sktCsv$tju}T#_ zG@}wb_AK-REI0{(VjJ?{=2$&n2&ic5TrxgFP4n9g53e}Lgt7k)26eQ+f!o8#M{P12 zT^@C3tJp16gRTC9S!cIw7(lLexi2n4Y#H@31Q0#k>}Me+TDo5|ZDx zmCIVC0=UR0(PwE;zr!8#DK+3a2N9V6X735)xeavosr~UnA2I+Qt*1YCL%f=GEWxANO!6a%X@^5pYhH~)nlzw?l=9#FK7Z~?_^nt0{>$k2A8)K(jTyB@=%hNQb>Ebm`V$W@M`-cUb>r!Cz45skDKDcAWN z4oJrpnmD{n8(EOU7ChWi`4TX5TP{)<+EyhtxP5`Dv-@$!>~)(#ZEgiQxBIID+h`qNDLtxG`V~RX z%PIHIq73)`J|NS9Nu2xJFes<;*3Tb=hRJXh>65f&Ch~deAup^tcxt76oZP#esIMH4 z4RLAq+AF;`j3)^i*-&$&Vam}yYlgg+7vCd22cK>--%azXxlIIfmVmw!aR}BxZWq~r z+1!e0yjSB6d$=xKA7!%E_l2uJ=6OE1Rm5|A+F1w`+=K6-EjjB+?2F7(lgvbcdofBt z)I`e<26^YIw-*+ozf4bY`^Iia#f3+_nI#T2u9fJmD=^_|`iTU*zxnFQgSm$PLwq$p zm(;)Vut39@S$+rk)DT`7IX;uAHh5Q8VTS>2=Yn+|69Y7@*#^{}1Cw9GWjfRPZQ}c= zJ}@j%Za2kr=|y@j#4K$Grep*`2bu3LCgyLF?_)&x^-JPBkcRODoexi50K5)d>J5^3 z0r_0W&m`#Pvx5!rCIyGBQ2q}!e)?|jp9}#=SIcKb{AYvV{kOlDxETH|n8(gNw;tXO z4R@Af)Ac9*s&U8Xo@c-d7zioHsh*qu0@!+@X>W-Bm?{zqo{et?*Q21DRjPL34F&=s z5(a~Szk`(#V`e+7=+-6i-YlL0=?+g+T3ToJ#5LZKCV5fr^x|8hpb03hsl&1Dq)HjtL{7 zeU3TUay$b3%!5+aM-}T7T0I>!An{ZVFEV`m18~)oR{>Nqt4+Mz+rfutD&6p{h;ywX?Mwp-H+8qV5J+8v$giKj&-<178abc(9yuhL&3- z(_&_;>L_^5)l2?e>>P}(hS+R2wsv5;uxVQAseREK2KU_~ecS&T+U_a>J~(}0QbUSq zc-tbzkc(}{gfNYtI2VL-L@lQwgHP2B&fp{}PZL*p&g`3a_Tk(xCGd}WR!vd3j zrtfd9r(JQpShrAo>A3(x@=Ldix=sP3kx!G@^Tc|t;whY6_$$4Gj7+zj#FzeDEK^G+0Fqn(Oigj(uaCu(acaeKFyI*}qI;Q7l5qK%@Y%W6gotI|4FR4gOD4N) z38SP02B>L+C8~G;EKb5n;9p;9z+5MV2|@!KZKEJ#qP2NwR8nSn@&Kq4`{#3%dzkXA z?K~m++fb|_3z6w@F0+1;VDglQs1^i){FbG4e|dcXn+ZA;a|}=MEcQtty#_m&%;P4s zX%+#@8Vyp%S|B3yi-<^sev7Ce?*I{tLeT=}%(o_JVQ3Hg5R>8C;ZJk>oTxq5a~Mjc zwuex-8di2+%cuRGvTmd?ovjtift+VLmhCr0R6{2dZHa?fPCHAua+3NJq-KD6HeLB6 zl$z;Y`xr(T)-=knbb#vPrxvMzATci$MKUPET19G~{o!6i1`rZ3E2T%*JU0YziJhBu zDsSURfNnSdlH1t;w}1d5!!)WDc?g%5YZ*Qz=lnB4lcJ$vUSoJP9fCUPZ?B6G@zlx_ zSw%MD55s~~3;`bY7{3S9#{kTYR{LgH!N50T_k=r_%kWAx6Y<_LiLYYfMq@Pqbksmy zC)Uj0ENCW&hl!355pP{+2pUmdUCS!%kZwuV=g@f!uS5CtE5=^%fgbu6zcUR-M3^2h z>zgj=!IgKP1(f{3*O9}Z7YeqtmESxP^2ET;^dX|$ztJJ#s*4)73h%6MeFEmV=ULP| z4xF8@e>W1n%vSEF68JN%oHc_bsj<#_qj(Qry}(% z9q+%%+tdb3$$PF;&euJN(H03j_WjND^{;RGUgl*CIGE47FJdD8I@sv9knByreoLdl zww^BR+*S{G*y8I@ZdbH)Zv3g88IAC#s0Rru(jRi=M1L7o^ei=`{JK#pv^N)n0;d!v zUFw#LtWA$H=9~f!{_|K7;}IJuL3>j+G(aM!=LX_zxxng&^WqCgxu~pT1i(XjAOuUq{QRXy= z@Le|mgaSYcZYe6}KS<&sbL?^3?`g@rlWd^u1h9m9syUuMzDLk=+-c6R5Dj zsOlksMI`f;*gKG^lLgGo<|X8D_Gth)y`N1{C~xm4?M5S^A)sMxqL8bfQ+fU_O1qy% z$$2vX+_BDU`Jcu}I1pQH^|*e<4^tNVi|DwEm!$%r`Ol^L&r_bZpC`LG)+XJR7T!sc z0e;&GGhm3bcOGZ5rLaO(mWjpKZ*O3NJf1#}9sp^dKDBu#_6M(2wM%{455aXH`2 zw{-YI>SUuvA}|1i{Qp}MsiuR5PUzy{uDU4mfvp=}FVC|6ec~50cHESGqGJATa>S>M zY_pDGve)KHA)%~3iyHn801PUm_KP|%CgQI}|Nj0WR{jhpA8{{+Z(T$b z*|hnb6+r73?O){E1enfhad=NN;VPLx@yE%^3;=QHd5%bW?uCYF!B2>!G~?TBWe#`W z-0NZ}SV(Vuk>vXi2&$?d?dP%XRrNRE!V!-m{v*2byw973@=DHy&_o!O`j(Ti3{*Uo zKZNWFAY^{cr%FwT0WmIZ>V+G0?+itUGk~lD)*3ww0V%r1J05{dRXU{MzKQ$*Fu{h3 zeArxvb+w;U9gmP(j(R5g?Jpv`yI_pkym9VN)W~H;|MB}RO_cjOw%S0zXYoHMv5rjM z{v!@0xiGJ%A;^z0%V*N&Ed5^wX}7h{{SNM31icAIA=p<0^ccWRv|i|3M7ZPSR-q>@ z2*b#I_Zn^PS1M_rRPHsp>>V+YRM%%8An^kC;KuC=C$8ZlW^231kM;dB!@*zxVB5ec zy`GMpv7ej`wX^)7z6d9(SrER6=sN_d)Hf(pVQ1=ktkS+wfrYlQKF>JVGh@PF>h^J4F=t~#q)=8F2B+{ z?>3;Vt@eD*8YRqFpayeeWg=T4xy7Wj9cz#+fait+GEMNap7Il)48U!NZ@4WAbxfZ_ zC>QQ&A{gW33{Ti1C^!-#`ee)X7Hjp6wsb7;4q%-2?Ue-?mno0uhcS%{1&;;*D5HrX z(+W~v4P9J|Ncola!!jl;b)dJl0Y_gRkfkZyQ_XUzxaLH!q~8d3mvX~I1|ifdlD`JG z48y$mf@7NUwHJMTsqRR!3DOn=CN7X+T%y=ofX?qpOf0>rVDk8ZAMeYQSkZiSsNh$o z&XX8c(CTd~ElQd~r-g@?z~%4rhX7%Y4(oTfsLk2cth(pk3eQ#xlaX>1ub3B;6RfjW-V*z(jDzYQJ*s!XINmsaZKVari+@QQ7dsBFz z1OxTfg^nk71~7L~FUDyVJ#>U4S&d@v(KQvph3kso(kl$oG2qr~p#yN0zIG%HC~ALU zJWg-dR$(TWI#C8$$YlwLPO_eh2!#`ZtQLNtSter$Vi~pqnFu@pls-mqhG1_M;fn5; zMY%FH&(3526S`jrTcr*YtuM;sV-wMDio#6Yf&d2mj5l&@{d>yMm9v32Ru4%l!(Ze`r0dgkDbReHegozx})VufU_*wmS5? z%A`hIv_L*JI(KYnkr%)+HIK^=kc-AJQyZn~$lU2E^M@>SY<0u&j7y=^$Bk0fq(-TaGN-b#P*yruI7(|k?FYg zKK61*qNMEYC~x8=a(K z?f-G1Fy&7|NfSTyuskA{ST3}P(ut%N1^F=!;t96k z)m0kO`uMd)MI9!E>>>>{=k~VWL}#nPBx0uO*(_#Y|MYt}+eK6!W48U~)bI?zVxBw; zI?)3>C}LgwAKS|C(wEkp{1)?4e#;Da*I!H1?~y_RC+dm<+NO^zD~&WAJUBHO8Z&Qk zEI{@0=sjSNgee_;lbYfPHMyyEjVtxt7oI$%7`1x=1f>H7 z`Wofq6b19|IW@`G-V%{tf9tABpgk+=H@ST<)~y*P(%B}FLz>nS*x6%sp5?CN1&%k^ z1B+Cys;OSD4{~;iB`*S=PiV_pPa929A;YIOke;0H}Mw}(WbqFUnP>0oePkt z;gp+0i{QK2BguL@pSu)D>urJQNxb}75TF34xpZ@SwTb3i%{~ux?Kfma@X=H5 zOb}|HskiFkxWOcms)Gs`M*b4YgEewl92@hNG-4iVQUk6MZuA6r2-u2Z2NLAjUS^=& z0MlF&aYZEzr&B4~j3hn%rgf|%+R1pZQZ(!NZo_4}J22^%023A$)o^pMctS=0@X-1{ zHWX{KiM_O2Zxe|sP^co&yG=r(YC=BX1S>WA z3#94XMF@jrs0%1X8PFl+Bam&OiIa<5J+I+|_EFv5?xJ8kh-~PcDqjlVFhF>vo}m>H zVA6T+iJxRdsk~3x?A<1!uQ_jjWD4QJ&>>c?=sQU({>>2JUh_c81S zVDNZ!I|34rEb`h@7b7n!z6PBUtaFZESNKu9wrW71$BN&faG_h8F2(@$^EHX=f)F#g!VH8E`Wlr>K~&#<};t)_0rgG08l;2 zXPm`WI3faUZ-?^YmO9qCn5%ZMj`7q7x^0=w0Pyuq-(PwbfNWykke+~f!(bsrIaw|2 zt0PRIW2CPWL8G;|NZNww63j(j)Q3wJPpp0CQhE7)qI@=Q%`zU2Y4fWNCyD&%ggCHN z^?Z56rA#FQhS$3KZ~s5gaPV!_b=LWH+;PxZXpIW3Qsz@DM6douG`ke{_%TfoMy83Q zqO!~g0vc1@4*$UvViSO;crsWo8df-zV8$!^ z_r6Iy`k^R1XQus z$Jsmu0D;lAFdkNkjPct67MaHXS`dQUDyHv8zQyR1kY^^+Uk6q0$29G3b9}t=D^nF9 z95b+o&u&(cC56{IcO5)!27xdJ#3V!~T6*_*4tR`T1iz~8*3howu$8cJ;Qd1t)0qI7 z0Em=<^J4&G^imv^yFfv&%DZ-6j8`SUuXdJHm}ACj21GZ44S#0_%zMV?^?gju{tu*6 z(SD$(9w*6=_$7QUPC|)Fdylzgy(q(#e$K0!-0NWaCaGm;U1#t7C1WBe2JKQdE=KbQb9pLTY8a2u?};c}DTkS!=OQ#>wXv=-C)v0-6@*Vy(_fh(C+xx4xPF z^{;RG{`VJseZ?#zDj4O~>**NFP37J7gv(`z5rFS%bXF|AvJ8J?>B`SHafT>xqP5nQ z$jpd83yfu$XU~4~=$S)3PL7eVS||pQu-C9AWTN#=#9vHb-(U=A6<{c!2}B@h!aGB- zL1|k^#;pMNUiO0lAHhEUu+>o_BCxdK;7OR+QrdwfY@PT4G`}rL@z5M=p3a|eIDUh& z+zjzifLhTM%+Kjfv#9;@V2LCk0&CdhS&|IHNd#9ksM*-{ zVMgmxVDgDEAdxwJP-R;0sx`N)aF^6^v4=x4KPp|Hn8%6u6U{e&oL(oKpkY4w%#REL zPMVWf9MiIOD0ESS;862nPWf1(vs36~f@eawA)vH<7z3g3p-s9w#Te;_LAC4@(1dJg zD{pMp&e;AfR#?A?_&3?1KCF41GbV^|X~J^*B746`klwDd*EV}Nzyoz5vR5Iqez zqSR$B>m=VvkT6kuxF213>j}AHB!t7cd`YXCnh#FG5LpwE6z>6#<9$5?{w!HEve`I% zZhv%oP_$ZQGhzTkz;$0ruA9flx-|h{^3enrlU)nuYNrKg)uNF5h^&MT8ICipLFV0H zqw%?}O51^mH^b`U(8>8aV8FZ^C`glG)b&~C-XP4itAMby4c7~nVXWw9lQjqlk_#R5 z05AV^u6WZrETV4`+QMm^j5@-~;r!C%`PaX`>EHkU*EtN3C{Ex9!zF)HS`W(#yi1B@ zE&wj4PnLJei*+k5~W0|~Ze4pam2TExus#ow2+08(M4ai8=(q?u92J&zBAB(m5S0D@ z9;Ab$PeV;-15TJWpUM8Q8LD|7ttF(Vlvug>AF;L( zAFhOxYybct07*naR0`)xZpk3bc@-4BGn1rokzDPDnr6~D6J~ULFup>U0Z7?4;j&)7 zWh4*3#*#k%`UrT+%jnGjJ_Mk0O5gBg8V{#0ZHRjF46Ce}&OcE69Z&sX;Px*OQMw^R zANG1!rD@>pHqQPuqyeAG$#kMb0TUWi7zjr4#>)pa-UU~cgT3B5;p0Bysg-TA+$EmX zhY>+@#1Z|5hV~P*UQ)4@(wlw)MMc-J=d~PGPA=&zskbz}8f#MITT6uj0na_aG5EaZ{8;yZ)ErF6qN?+=6;^b0R~B2gPyJkD}}+%;z^(8ElAq*@`J?= zApZLyt+(k<*Kt@U&wwZ0dbdf)<Z08a{o4t|MsyNh{iD1I@FNDO~V? zP0J5NVt;#<5=`Eh976xAqk|aUpT7CP7eerzWSO5<%Qfm{wQB;q7}z30B=kZNSIpUn z(DvY3-F!Wz5Of>E!(=kYD?+4Gm0NV0C$*ILc{&~+|;vYM}d@^D@ zJ4Ow-7x@yLX=oi&+AWtCBs_$mbxLRNa5~#&RI7Z0ao}9c>8%j=i4+IYp1&Dj0wt|UUSt*!q>Adt;djkm3uE=PYDI@4H>!Z!= z2!+8rgqXt84p~do5P%=6!sjM!DlifzT7rieZrZYRFAxk=V=Co5A$9Ry#k&6ENk$Em zO89iB{b{;S^7`ca4|>#4i!$F975W10UW4|71CLAfoZT+{fX1T*MNPu918Z*IpIZ5I zR^X`9tr<-&P$=-9_HfM})PKQ&&pF@f?R(E`<#QMhc5-UkLr1Y%oa8KJP+f_*ADM>t zi&xNO;XYXNoa9YaJn;Q^GFGMGAt1P!o)O3~5q*Etx5Qxj^~)MjnjygRqDu{}4<*ia zA(GlSo#1+e{DUhV(**V;>eJNAe4ytoybY&P;@=9*_VG}j`Knf(y%acnf1ekp|5jeX z17a`h%q=v~eXH!y5OdUfnOQ2~bXU_{c;{s#Jf;~IhxGkTN&H!v$Ecvf#8%;6M1X~E zw!!z5g|Pwi+t_$CioxIp5%ie4@1T)P2-?4>N2e?U@B6Jk5lyr13;vG3j+V% z!$Mi)p?H3p988C@=?BDuq{wyCeY*t}eDX(fY7o$pzvnCJrnH!QeV^BGe{%Gw3=;<1 zGLZG`ZhX@D1}6rlDb;=*wf~^P7t*k0ahkLryVxoeAJ! zZvNtA0NCyVV4ivAEhccL!$aNiOf2Slv5&LrhCDcQlkAdV5!r3 zHn#VApfbhR@$y7cD}(D>A|eUHQ`+VN{lsUbABp!Uy8qvd0e3)Jo=qs(IADHn-zE&; zck-?*2CX#Kf{*uVMgW+B5D|$P0y-@=o|iD~g*~x#k_SQulvGkcmQktK-hyYWL6puu z))9C(&1Yb5hj%oSUio!Wibzs~>?sB}kiQ*%3QPYkjQxj0(PQ!M2tq#$O^rf_DsVk-^ExN+)ksyESRD1XNWawuNSI<}2xJhhwpdr2BJ|`0G>+qHQei(C1E2W3 zl}<>d)fRkceH8w$!72}B;xbf4muba-iN3$+o1#DD*Dq2*m<<6M77=YwAlQ!0>Ex%1 zz8nB%yoV+EtcN%s012ms*{FXq0Nlpm)KislxhD8KVIUyted-x)3~ggzfe&C6+Q%hT zL{}rG^GtHvW|(h2MnoTVTmzF2O)&^U*MACt^NxlW0eEw1cwjut5@l2I4IGn?bL$Uh zYiE({To*gH&y$rb0N825VgPV*Bn`aWe3Rtvw41Ra&QjSV_hQDFOaI9jHvL*Bjt0i-vME8C$~R1uPb6oec02@k9qyG$xP0cr-qW9< z*_7WP|LbfCU80Q-Z8dbd9yXW5M93{ZVSSmAc@96HN#0t(cwkXCmTc(9TH@)_Umz0h zOq@Iz`Q%5moQKvr@_cY;e0E z4XpG6fu>IkOufoGtU6Qfg(*(TmnhDlyWwV<+ZbmWNB+flsPlIB%3LKcrtk##vL6GX zU|jH$(}W$y_^o{_cp2HXl;H*d!(I{?(^x>38UdIoR%~yX55h>wyCe`LXdpRv)Dpo7 z<-u%Ia07ttovU#X!Bpi52YlGOt(iK-pD3+QwY@M6ztbXvHe53*Sl1eW|qoAyMXYj7`S~(!DOu| zxMQtV8u_+vr(py`H>!U+I0g-uEJJy!7aeNp7SXpJ6v!v(@BjR&8Tv}dVy1jl7=cn= z6nCj#F?SBDK9_!S{5-)g_5+{}_w3WwrmGs5pNE45t76X6a|?^; z7%fTVmb(?QL$Nr7ZT64p+)-yD9|RB(KNMwj?m))M%16TW-MeGZ0gw3{%BRE9ku?1A zQ4{Gn*nGUm#6iDAvB~#gtBirkKjL)&s)?>mzLnwR2K9$Ov(!G(w-U6NV&8Z*1aKWe zUJ3eiFw8de@Rm$r07`u*R@dtsH$Plxf;`XVJSyva0cnNjXe%Fn?HA6Nlr=-YiGA%2KL+DN^@l%apXPqU3f{EKt41I=s%^tzmJS14y{+eJt^ z&&+tQ8ni-Sv!K%>1F_0)E1Hzox*P~N)f_Tfl(FWUGXBT_prLvfwlqS2EoNP%9hyg5 zIJ-tbW;zL&LQE{mcXO|^v6HghbWYQ?^n<;B9~TC@;=+or2XJ(HvcqCn=l9&EL`ix2 zbr0*(F;Ksr;WTmhhmq)iJGh2>_>Mg8I94bAW&j`+yqHz9jDwWf6jwY|_eksemiD4; z$3bxWb*bC%eq5EZ4CVUs;WtWI4dGqp?YEP_%C+b!m(qLtX5G3=d?`wph-j&S;JE*b zqgx?@t8~svCR1$busB2%w}dpB`ug6%Ud07(SXHay$$_5(s@g{AaE6mE3kD2w$yxA~ z_$ewEx%gme@Xe3Acg_^7QTe2`F7o#MWfPFoKXFR{rG1v?=FZ?T+cM+DK3Yer8o%iP zsV_8{%7JZ@WL93RL_C+?x?$>;m%M%wCOu)`?eb-Kt*b_405qb9N$LW^5!}$q zI(&f#?Ka8<{_40<B*F;-)wwNu`_DvsB6N9lKw_K^VdsWgAZgzO3n-47b=#P zmeIw8&q5b%Z1TDa0Ohqci-``!yyq;2L)U@0cwMf>Hv_=e;WuU;t_1A0x$3}C(G79k z)9{0UR(H98A!hn3w1jD-+N(Co*`u9?f%{G_V+XW}@|PqJJ?He}B`j|MegG{rfka+XIi>{#KCs4gdqu;Vlz2 zj_nO)VAeEIu<=^v4YlZVP-b5(zYfv2p?#^&Q<@(vu07;ac?I-`wG$mf^4ItG0S<{c z1L>T+c*GD+>vo%I1UWaE@ks^h7^-1GBwKN-Ea@YGJ;f*$O_Dn#*|qH+h#BP}LGw?L zR^L}S2*f?Il5ct1#9OV4?J8Kv0n6DGhPPCH@!PHS@-_v!S^S0qteWGeDzeh`d7N>k zWt;X$??^{P$(v!PPW~)Zqsgl6T#dWGNm^o3tO<0}Cl~7LyFi_)wY_^-AN(-XyFOMG5Tl$#u_D6l@nJ z6Zc0?;vs(X5!y9}DNGoHQk(lI**S%6AHaa?B`$_j5m{GN3Ya=}vhQ#DIS%Qpxt8>! zelWgah^%tK^quDe*J;|7xDGW{xZ)yl0)-Y)8P!klFV@75!3gwkDhD$F9h0h!bJO$j zFLQ|vLDdCr>~1`#NPm2gbOVtL|3*kUob$VCczfP3p-`(+;32-vL2r!z_>@PXw!$P%LcyVPOt zd}U(_F(vN`cOt&3Nz5f)#a92$1L5eP1Kecti$_s?KjSz|_rcQ76y+2C1p3#%iPri) z@BbIkZ_8JR+#dkjKOCWgVrw^n{lT?S?N`y}oOnqR|J_28@t>Td@F$}6AeLW`R|lG%svImGeOR;9(7y9~b!tvJno59-zWFX36J!svvU zcn$Kg75<`o@wpvT`B9j)!?pjB2ixrT$IIp=@2))jh#}W;nUBUvncgpda7oIJ(AR1* z2IM1+vQll6?70%tpZM{TMcx+h22XDv3vO?#ol;`g+h(2$)o%++83ttqI;Q*dY?X|` zPH0mPA9Gu=WN*AM5vU>Hf=7Bg3en!QC!-(sd7bDCA)@E;bODNSqU%&WBr0xq6}ww-mc@&RnIa$aT9Gk%Jd z)4gb`g-Y?}t8c;-_T$ev2wi(i1=?SvhpMF$VRw#46oY~Hd}T#sT3!IK_BI;41Rr#9 z{!zJ5J~=nJPX&+F?xZvqICDl}COG90_R=Dk{XaR`*UtKgxdsj7?ogj9Z?nC|ssjTZ zrvxoW5X8)aFToFVRVPcs4HrzpI(O|2$V^-Zni>@#qIJpf5}?D!2?Umt^iUAh0p!C& z_u@}IB1CC50&%v$zjer=w#+D_s$$X?^?HtpRLVT`j!}oanP_R5e>w#i9T_F%aOd!$XyINPfJy~=v6m4 zxepf{J(gu4(w&~`dW;^xEYQ%+3qYHO*Cvrgf!0iJY93ggC9D_|$V6|D=P-PK#kiSw zygjQc(f|?zFPyM-Io1~SDCck%yyzVKd|j!vrYJbrc)=uk^>#q-TlfQXX8PrN1`L(9 zPMlAvqsK7y(IhOQTpqW%^7xn+yCOeaw_(cj1h39WbM096{Nn2{f;kpoP38tH!A@MH zsNigG5rKs%_9~I`g^}}-D$ux_k|;=3^?LZYBYNmOPw!8NB@1)8-qrd@>EA_kJu`(3 zmpxKqZO=)rVf}DDyAaLt0J8WvH%j69{It&sDsQWQ=WmY50BIyQq8Kj~@F;k~q~QAp601TmM9^Vy)&fMjC9T)Ux1x{=>9jI~`PxWx=+S61 z0uwc=5Poe;t#KET9{@;j{R|tx45)$Be9Y|*o&}pY{dM^<06SuGH$G;~EY%Bt7PnGf zYFbK;pPH@Z10r)RBL32t+&*X5lK~wPQMDw+77JW`ms0mko8gh0_&?n&XS>5!O%37e zo4yeg|Nc$%%i8Ir$>SnQ#8qYkayY@cjyL-_x#?U(Y%epR?lsbf1};7b3;s^&KA-## zAh&+U{u(?cygtx)TMtHEbihM^kwO5U7RtSBc?_f`(L4>Rh}>k^5X>#sB$uBHWS!=W zIj=we*Fqj@hXll3RnU;hv=R(@3=?fXjazkyI6v;(UKS4sLC9j=ASN^97y!`VjpHiZ z@8?nE0NfAo;Fy@|-_7c^Ktyq|1AJsALQk_6xXOv+$8+w*gK zbA2d;9^;bAf1Af+8e1>Y7t6K*jFn=|VD${J4w)O$hi9MFK1Z#rbU|; zpX=O2j&ig3TeX|mL2p8!Fvu6Z{KQS-j+H4GE2>L3y|%qei>x5f92H-bE_WZ6vzxEvrGhp-4d1zy57%1br&jtL9_ zwwIO;V8Wc+$_AjLW-AU*EzcH|$fB;qao7b%*Tjoz3&@+GAfC zG;fYN?W~04a+b;@6Cp*!hR!qo_`r~M&KlrcHIvsuZ3`OFKIglvNOHoL9{ckYIoDU_ole47pE1OePp^L4ERLLd(3_o-Jrw9x9p*B5+*Jq8E^TNxe9tYB7x_spB z%8kIg+n*9la1!;+G{kRzm;a;vto09-+9|;j?e#)p1_u7HOFcA+bjcu()l$3EKwJmT zA5aI@IDtQ6WPRwR$!j6UK zUguEMFntCgqZ5HFT9xHvUNRN-zcGNs{BMNUX8W0N^X4*rX1>YIMuYG2AY2k_8(#Y- zIonQKr4Mmv&9nl-uzBLfg*hkS(}Y~@YAc;64hDc4(n{@6AOE|Jx&malP^m!i$08Gb zEh{)gJvs`#gI2wt&Bc{jCopHy9xGbfy378tkoV@Y_K#T2tDR1$AMnXUi@#_$1ArAF z+95Xa`c3rf7j5}X^81%wd1-YDv6tOUcUf`cvtNIyirI10&-OzSZ^|bQT3Bp`fJL;_ z8f^#8EuwRCz;_zPLci%3F$td60NBdLl0nbwl8}9u@zW1NKiVjbBoJ|L;wagjJ|zan zQUCc_@)ppgI};-*hVebQ@oU+Yk2dwu0+t#E>K5&VeAi0Rkv&b`{6_}8!F{ZT`BfTa z5}q+8xnwE$ed?2^4wWg&P0o&y%U5idhb@g3b5p;;NL;!^yS8jV*fNkL6lGq<5l-6b zA-VNOI&{!pOCH0!twz3uq^YUjxkbQlr!X6LOzKv->qyNgZak$&h=_Ij0(@LxTsspK zyE!VmN(gQ{87vR!++1@OkZim2$$uriJWGp2k@?VPGYZZVzLio$O-@N?VmEmTox|er z_ossIM%5?jrap|?iv2{rQp!YKgINTo14L7{zFE61Ci-#%z*D_rke~tJEOy?~aH4n^ z1s*KUv%&c@#Ch6)z0lJ}u)w2=#Sf4zE=8juAhmlO;ESWw>KG=xv{|gx(UsPs7742QzcY_7+TGIp`U%F2_G5 zQ#lr~g+mCwTRjK&(0?ve*o@)N;Q0Tp5PTT`<-U~!H80c?POZyI=Aq1|dvA$+_4?>r zY4(HDwZ{c+!^WsZG%E3@a9Blpy{^O&*|L1P`*y2_;0b-SyuP|M^)sQXC#d+}}eF{1!xqr#*M3H9+V(+nLUW$g?-?SIABN{z|p_ z`u--;m1bGL>DR9#&kuN{BZIeB`}$rS88sO zlU2UMcEQQwh@q^vFrbi;HqV%3kjW<5vKfxvF}2wE117pWUu+}NVCsMn1Nqc2)juS@|giqlD`Qp^#A}M07*na zRLSueoNp?lkBtoWjmdrrwNAn!See2Az?=<@NUYYu?%&;pmRU^{?KH0q9`u~tTynTc zg17J~y!w-tdP;-eevmg4EpQ+5@WJE(&6Mp_Y|?d{MpmZnr}y#Ru5+?M6Y4CK*KxfZ zz!c)G{we+<5-g8Il*SJV#AFDlNv|J13_oBqQ_5-XRoqm6azA(8ox%K3%=FeF@a;?cj#NeGO}t9`ia29 z=*XEi+7RR`Lb1Eak6|-9V*UPg3|$n@3sX)-_MJ?)Jc^C_$} z^3;%AXjm+GU=ZsLoG@5)`#YSz|JH0E9yE{hmlw1-Oagq8Ekt=n8YnAy(dhG%@VShY z|3ZWQ+8Y0L``82cwf40|plkXc>h&l<|6cURsZ;T(0c9Psy7n242n;$wFeY;b;DE?X z=g=_^%Wsc3y7YYe0`hGW<)*xq>hKyKGI_4}yWyZKUa0Z5gdt$;-!gy@A~DF|yqw+g z;FNh+9>(vub!zF!fLjGxoy^DO3&nt>eB{Re$>Sx}j~>3~&rW%(=AaO-+10IFM4L9* z)dS2-UmU*I2!H)Hh)^lHEXgq2-V45e8E2aSEAP;>aL-x`_RiRy@jd5v`F$9cYK9qq z4Fy)&UI~tq(SQcVqf1+Xr$DOP>U-Q$Ib4Vn+IV82$UO0*oaT8bd=h>V_bKg98ObC7 z&$G?PfU_}eM`3k+7T~AbMvgl*{)`f@1qIcA3KT9uh}1n)k_+DH<--q^<{J@LB_Y!f zHdQ|-tj#bLnS|jpU-Y|wbDYZ6LdB4mCgRj3^a#{D9S#T$>>3-YDLD$zcOKmI4z8> z54v3cU;Jeb4KAZaw^I1(j?hQEH%b}oCb`7H3|!Dh z1LZxAHV=9YZnqdpXZyuNxqrB)!=56`)!AF z@o|l1wDwmfLmJWxSkjq%n(+1=q02;Xr{@uvnfxi^$19w2;S{Iu|DTG#-I@*KGOFQ! z6ORnwj^UvhhpETMyz(9K_T6Me-8S;G;0wV@pltKvkZ3xP8F5f<(09+g{E*=_O(pE7M z;>3Cq@>wrizC<{K%kYSC=OSgVnA%Hqwlv^__Qv>It`WIB`Ej%_y2G$Yay*1d8FNJXqFcG98T5yPyd26DH)BP9%eF4cQ61*p8H*lD z=5`jy0bx>8=h^Vks9xz${O~I%4UcqAsgwWPvm3dgx!ZzYtkz_4^}u;`<;l9H(QKQ5XQs9%&mEK;MoU@SetMF# zB>ww1?f?8D`Tali`!6U5hcG@c%3FbCSSBZd1X&m2ZmuB z2cw~ZDxXE5BFf#^n3?!%={XFWScrc8q7-C{%~Acn;lzGF5nWcjng`~UAM_{OB5+Of z9`0n`2s+_S^@bXdmocHGfqrw|N95y^IEk%EO!Q4m^!-gt;SI1jGkIKl)(4T9UAy@@ zgVy=>>`PrfjOUSuAu#Twz{A;4Hsas||Lb`N?B`@fPL(=x4|O}lv85dw;q-~n5Me*1 z8wi_%@|*4dJ?|u)1n=7f*gt32``fZT%CCAz-a|0+e~-sO54=jPEI?p|EBcsSm`5M> z(w8@72t}5Jqk(CZ)%CZ)JLyJhR>Sq(fx(t3vh8eBLM`2xl z7S={B=YQ=VD4dxSzwu@`C&DRCc~!=J)B|txaK3*!`EJ^}ZHWUB4;d;yx>vxI+YiFf zAFqq)Q<-T#GHwT;)R06+c73w#QN?{y%D8{~%IH)@knskCC^zYLxU&J$N(Xl(aDecp zO^X)nhiwOj-7DvAnX}s@$M@DdPi6cBw){!>B!3iG;0^FGquzapPA)J?nQ4hSwm~zZ zOOj1mM%SkDoT+4RO|F6i-Uqhq=XQvqkM zC3>o}$!DfNe7@FlQy)R`hR_!R{)c&Mf_WDg|KBY^9td4uF+Qi(K80$KPpwo z$K&lW-WU@2n9yl?Y?HI<o}J z;>agU*D^o{!GAlPFD)QF(bxjWp_1`*8$gOO6q2&h?J?N+sJm+N(=3S1W?b^uh-;v? zBh8Dvs5mnTd7Ejkklj@v3f;8!VNW^+J4pQaS!#W}>ykr71E;Ov9dh_f`IOn(=ZgqC9^G9+(%xzzf=Q(&xqW!v@uGne_a1 z=uH2sePe766Ci(Ac!eD^Jt&C=6n9f@4A>M%j==_0G?P|b*|R1SClQG*0gUzmmvYD< z6ddz2SAhRN3ZQUrkEI3fXsUgL*$)0vMLtjO^`j5RyGD1uzc*70>F~KE7wfZf@U0V(Zk}Je@|gzfN1Dy}z~hQ&3J-RalU12q zm&mP(H`@IDOn6$oRT0fKKYh-2l_V{G7+@g!YM!l_VaVPlF(ESkIefdf9QWt8UBt@B zgq|{{#Tg9qRfPXV$c9@46+Pngh10{tXth^B+jyT2Im1LVx_+81Wg72+3AL6DdYw1< zq^jm2u3KhYh3{Dn0BLarG?{xg>9)6YzSkfGM2LQ1#XDi_r;w@cvAmY+QL8xb-B#D@ zBIn_IGfif<@=WjY1mO+A^oN+f!%7pTfme^h%yp^F?DS%9v@p-RdnHS z$hHY~7C!wB?IZ-3LIExm#rXE=!MGE=Sok%H&h(k=y5{pVI9M~a3&7tG zE?Di?oZcYmxuUBHUt^#f?RuY4+Y4)-q0?uxVJL>(HV*+cMX@0e6j+w@+_eKMPoWYz z6Em$t+T{hS{6P#5(hwQeg!+*9e=FP&#Z&yhM)}7w%BL+)QK5WRTY1@Mj~NSqrAwQA z5LO*9_E-ssn35coR4=;bQ^9Y`q3Q2XXgNO<;Zu3%TfHtU9X@5k4JJ30`(}>JaVteN z?0r^~1!shqvFDm6SZ4g;B)sZa8VV$kH(8cP@`W^n#`J%gV#Pp+&J6(nH+}z~|8urG zeeYrbAYTzTuL=}t4RZ*TrGL`2DK#trVWtA!1m}Y3eXK0lwi}Rf!1R;o#s2;_lZNsM zo@DMO6P0(df_gkZY@fbYd+5e`P@ubZ;6-_EB-ByQ?lJM5tL|q zPlG;_-OC={<@=0h8i>T*&~vN!C!()S-@Nq}f#|Cf1#`8%B|uS<7c~61*XUEUn=Blg zNrDj6-RDnkoTtlUPWYf(^I-GWIL;F7qY#wX13KZrUE99URO(qz;LmZf@&JB2Q4gWy z;e4luPnIZuA5=!do4d#DPO_=`8#orzboVwo!sH#Ix~wMOofk_`y{nH`C&Mc>xegDI zdrmz8Z8g}=Wno(UGIus^0*LczN*wc8VkV{qi)Wks#2v@e75BJBwbIe*Ub z`PS5n_>V^0ShAHwi3RgHI~rfk58q`ab9enj%p$@wngAN*2Q_-L8*{Ynh{+E=fPBwu z@NF?~l{`I6d8a}(lh=m=LPb8V@z!!io56n}c;89C1jYv4mbU`{(ph{tiTghaey=PM zO{)rQ2e`Ph7*?2-Sq#&2Lkb;Ak2VK9fy~&doQk?q27lw$@n43|!vF8{#TnHPm!&bC zjZ_yX%Uf3_PF%_pR1TIZhfI$3EC}+A2f!_4V?YfTI+VmTHF_w%>h$#U((KNiDifz@ zI2UtvUKHmD)x0kBrFwu0ao#eVbHsowqXO(6;LphgrH8MUCZ%Dg*KZadC z4YT+VFW>b2^+jLbaO%J0tjOv~7cf@hUJ0!GYgOrv9n%6Hh$XZ(AL}?%Ik_KPKZtw= zJXDEj6MYfUGMKFg5gb_>t1A9m(-7fm10}FfjRE7T=_oo&zvBAZNJP}PwdIw2BQ^RiQ9K9u)L1;l z37)r!9HzgrxC9@?t7y!o(x1e7>7XBJ0PmAa84~>}M6mTKnBGUI>yRu5l3J?;|CsR4 z;H>WDPK(n*U>CsNu}RSTrv6F5_Dy@WSBxdZe8>zuUNmXn{i7fii+%R%7g@tb7Io~zZj84vQj9X% zAZ_IuNXvNVc(P?Lfn1*GL{~o63(}>tS$fuWb=|KT*K>9n@!PI`jT~?QOyakwP=6Ec zeFlh#1a5)$WP<>_XxYXDgrx}_0)Eg}xIkJBFK?K3ijurTAR?y-XTH#`aTi5WaT%!C>^_AQ1wyh! zDHdbmfoTBM)F9~iz6NJ~JLTFz9DmfgJ^@J+jIuZSN5iKB?FzTfwL0nrw1wzf=4Ar&_s?Z=K}6v?SQzAtk@_zDlk7?@m!GJ)OL+(sD=Bt9-C5+= z=kO^4@L@n_3GvqQbhc;mH$*4SH2mdUvhT|}aqL}+TdVTq-amw&dV$`UuVMgco~`f9mD0de$WSyPVKtHV5ddh&#)Q@oFg9{FD^~|AJ<&tC zDJKKK+?54jdb~@=!|OXHn0lLtVEY$sBGwsLRaO3+P<`-ohHOs^dSfCXo5knxSLA9j z1kA*7E=FereL_;G`5>cD3AXi!=qHN`r%tv3t9W$2QcOMcan>U?U5L0@Wt8#ddb(O} z#N>ey1x%`>HW5p0!}$c5=SS&N8xLEBJn3O*xqO|vb_ z(b>52AZa-ekBI!X5{^N)C|^&R+K?4jLbEUtWtJTFvo~4}6WI1orll9~F!Ar-$1_2Q zwtSO(oz;K$B9v4aFSzO@Ujetd%BJIi@teukyhVh*zJ%mk&jM%x0pn7Gvu>}UGagBC znsLjx0ahR8r_5oC(G_eSPjd-ww=%7ts^ib3+Hk=eBZAQ& zpifL5W1Wh}e6iqnTLFGDDC_vP{AW{Hir?;Vj_@nxg<%mK><-$uxLZuhFLlmMza4+# z2lclGIh`BeU{IS%W>-bdzLYt%d;{o~H_zS3kY>~=*-H1QpMe{k3WW1Fry{#ujGdCmr|CUQ+F30}B2;KPdt2P7mwY9h_&S85?s=k0KHo0xpq8_RtV2^Z^ zFifKGv}Dl}(A&Hm-04`DnrMZJ`R$Fr zt5%3?a>o}u-OFf#P~-Z_+u>=PL^bn?%g$T)kG$T-{-FNS;uSI*YnS=g*wiwQom?YG z1$)oe@HwKzz2=S1^2{=Qc?c=my^9{^Gd2;~*HyrDGkwnv*F*orBxHT21b)#YcSc_@zv!L*QzW;BMFQ9j*E|qM9Vn7K@^qc4xBz9?tw z6SqaAODki!<9nm~TF_MJCvfmK9>#wgcMAWKcFHO=0|HQ25Oq~=9Ue+k+M7k4IR0gd z)%bPdykAM0!p!MG&t-Z6D=$@fyKXCnw49r!dgPze$CokPVghN9T6!F$d&hInX{Nl5 zVSHdK-}cO*bKNJYl8a?{u)GQ-8iW1N9_Hoz_O-w0`&*9Hes7X*@%XjIH{BiE9xw*y zNdAbxB_s5FsAJ)&i!!U`2)9*yU~apfslGksO5_3AZ#o_)!UX559@!U0uDA|1ZCpTo zg8T$tAeo$^jB?U@Xans&B+4A)AHz*Ho4ljZ5U@&IYy)l)@xZGrCGf|&Qc#pHSr66X zSn;R_(oNN<87uAi^Udurr};E-5sYl_E_hiAP1(4no-)iO-f%@R;DAq|xx#92@%G_V z??m8;ZqG_l#YVMQo?arIo)`6gw5|u86j2^}r!7&=nRgY{2{hyIR2nZ^RUg_2=_egW zs$4to8<~g$>vG^jm_f#4U?^hJ6W3cTY)rqRZ9|mR-ebPjjFMlEbl=_y@$vM!#26R! zZOrm^>?34X&*GAS=(f5t$T?cW5T9fE%Mi0V`Zi#l8rT-8Mmx*gN!W=gBxO}Zh@FYR z#QfXKGXuc)cX$GPR6AemUtiG zV}1O?oDcU(9i0golriVJad%GQ@|SdMV|D9o1x_M>@Ks-a2-#e4g!)ZXIE}1c02K1_ z7y!O$i*5t>me_i2<6Ma1V4j?}O>8B8Af$^loDy7s>+K#2{e{LN5HGfMV5by<#X*kI zZtWA%ya=2sp(kC4npF)T_}L114EsdR>W#B0nQ3VCeo!_47MO0{B5#s<_{rq2v~Sbz zGRIBD$ppZoZ!%3nUtdJ)57BR8zkxuQ)j$vxcd-4R1)mXo9@d-S1nhEk8P4V2itjS! zY(+7Wb33OX(fpKOCc7nT6Y!SJ`8UCRACO&F4^ZYpt>i6OAjke1aTIxF(j!kn`5CAF zAeeXHr)-=aKj6xj<9i&+?@#y#kCqFIw0T8KQkf)k!BeI4Czy~(Mob8Au0sV`3~hLp zZJP9T*Xt+vi+b>2Jw8(_1oCi=j+B*|%vq`+%;mq;h@&!`Qk_>E+cL8_WuJj?ZT>R+ z@(if715+&adI9UyNrb*d6jwx5FylM2TgNk+_@u{AUqW9bMBk?0H`TL?5U0dJcV$~9 zj_U&G5VILicsF@-av5M#-@p?H2yRiH<|hVlHkr%e(O-*}>~qNY2rx0rlYeYwycG2x zP05z=rF#JUpnz$9;sE)r6rWLKe3Qpl`Cz~jYY`FiqD|kA-DXJ;pdSTXtP%z&f$%Mo z+U!iAE(7K6KRv(a^4JUkRw%h^(>ZaH-s=ooI6;Gf7zs|_ETCXrLoJe(bLaZlucQ*H(wN4k(cyd5bS$C5zo8L4 z=w@k=s;zA`bZ;WsUnHuizrViJTCZ2+6}nR!1KIf3)LT`o`FC!cDL?;JyjoKZh^q<< zNy>kk7?u|sTd`Z#V{8eOk-7K0JRc7x(UqGt`OoR&p^goZp%pn@#%sL(Jb{QbLuTn} zjlYqX9}9gc%1=ZgitEzM4TI=;GK_%O>hVQHf4+!y44inJGCFUI3AXkDsI;FpkqjpH zIo>7Tmt`f)M5Ch?o!*bW{zwl|HyYH_A@!qo)1=FIdM+zk2#!T@$V;w1{1SA1YVj~A z1;Mz2+M12SuwY@l`m!cwdbglM!G|Y28>K>y>@F^5GKTQMKu|M�`c^a~`~Q>%&G% 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 TQvEk800000NkvXXu0mjfswVE< From 2bb43e5136e345617b52bad37c628d8bdf81c247 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 31 Mar 2024 22:49:18 +0200 Subject: [PATCH 300/376] god i love huffing gasoline --- changelog | 6 ++++++ gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 6 +++--- .../java/com/hbm/blocks/machine/rbmk/RBMKInlet.java | 12 +++++++++++- .../java/com/hbm/blocks/machine/rbmk/RBMKLoader.java | 12 +++++++++++- .../java/com/hbm/blocks/machine/rbmk/RBMKOutlet.java | 12 +++++++++++- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 3 +++ 8 files changed, 47 insertions(+), 8 deletions(-) diff --git a/changelog b/changelog index 12a0a3ec7..db178b44d 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,7 @@ * Removed generator bodies and rotors, recipes use 6 dense gold wires per generator instead * Removed reinforced turbine shafts, most turbines now use HSS pipes instead * Removed the steam batteries (why did we even have those?) +* Removed some old remap items (from back when the ZIRNOX rods got remapped) * Large and small shells have been merged into a single item which uses material autogen * A copper variant for shells has been added which is used for artillery shells * Shells are now only directly craftable via anvil, however they can be cast using the crucible as well @@ -19,8 +20,13 @@ * Tenfolded the throughout of powered condensers * Regular and combo filters now work for blistering agents (like mustard gas or air pollution) * Wires now render two faces instead of one, making them appear equally thick from any viewed angle +* Slag taps can now be toggled and filtered +* Foundry channels now have twice the throughput (2 ingots) +* RBMK ReaSim and steam connectors now have tooltips explaining how they work, as there is no other ingame documentation on them ## Fixed * Fixed crash caused by invalid default loot pool configuration * Fixed enchantment glint not rendering on upscaled items like certain swords or tier 2 pickaxes * Fixed wire connections becoming invisible when pointing straight down, wires should now rotate correctly +* Fixed connection issue allowing channels to output into slag taps sideways +* Fixed the strand caster sometimes voiding small amounts of material diff --git a/gradle.properties b/gradle.properties index 1c7eda94d..305737cdc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4915 +mod_build_number=4921 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 40edfda99..bbd2bff36 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -3180,9 +3180,9 @@ public class ModBlocks { GameRegistry.registerBlock(rbmk_heater, rbmk_heater.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_crane_console, rbmk_crane_console.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_loader, rbmk_loader.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_steam_inlet, rbmk_steam_inlet.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_steam_outlet, rbmk_steam_outlet.getUnlocalizedName()); + register(rbmk_loader); + register(rbmk_steam_inlet); + register(rbmk_steam_outlet); GameRegistry.registerBlock(rbmk_heatex, rbmk_heatex.getUnlocalizedName()); GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName()); GameRegistry.registerBlock(pribris_burning, pribris_burning.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKInlet.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKInlet.java index 7fbc50e7d..87127a718 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKInlet.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKInlet.java @@ -1,13 +1,18 @@ package com.hbm.blocks.machine.rbmk; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKInlet; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class RBMKInlet extends BlockContainer { +public class RBMKInlet extends BlockContainer implements ITooltipProvider { public RBMKInlet(Material mat) { super(mat); @@ -17,4 +22,9 @@ public class RBMKInlet extends BlockContainer { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityRBMKInlet(); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java index 52955a187..da2c58002 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java @@ -1,5 +1,8 @@ package com.hbm.blocks.machine.rbmk; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.generic.BlockGeneric; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.trait.FT_Coolable; @@ -7,10 +10,12 @@ import com.hbm.inventory.fluid.trait.FT_Heatable; import api.hbm.fluid.IFluidConnectorBlock; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; -public class RBMKLoader extends BlockGeneric implements IFluidConnectorBlock { +public class RBMKLoader extends BlockGeneric implements IFluidConnectorBlock, ITooltipProvider { public RBMKLoader(Material material) { super(material); @@ -22,4 +27,9 @@ public class RBMKLoader extends BlockGeneric implements IFluidConnectorBlock { return type.hasTrait(FT_Coolable.class); } + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutlet.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutlet.java index 9a30ea035..6772322f2 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutlet.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutlet.java @@ -1,13 +1,18 @@ package com.hbm.blocks.machine.rbmk; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKOutlet; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class RBMKOutlet extends BlockContainer { +public class RBMKOutlet extends BlockContainer implements ITooltipProvider { public RBMKOutlet(Material mat) { super(mat); @@ -17,4 +22,9 @@ public class RBMKOutlet extends BlockContainer { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityRBMKOutlet(); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 40677cd5e..d4ba6dc9a 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4915)"; + public static final String VERSION = "1.0.27 BETA (4921)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6e1b02c44..7d74c5a94 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5510,6 +5510,7 @@ tile.rbmk_crane_console.name=RBMK Crane Console tile.rbmk_heater.name=RBMK Fluid Heater tile.rbmk_heatex.name=RBMK Heat Exchanger tile.rbmk_loader.name=RBMK Steam Connector +tile.rbmk_loader.desc=Allows RBMKs to have both water and steam connections at the bottom$Place one water pipe below the RBMK column, then the connector,$then connect the steam duct to the connector. tile.rbmk_moderator.name=RBMK Graphite Moderator tile.rbmk_outgasser.name=RBMK Irradiation Channel tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector @@ -5518,7 +5519,9 @@ tile.rbmk_rod_mod.name=RBMK Moderated Fuel Rod tile.rbmk_rod_reasim.name=RBMK Fuel Rod (ReaSim) tile.rbmk_rod_reasim_mod.name=RBMK Moderated Fuel Rod (ReaSim) tile.rbmk_steam_inlet.name=RBMK ReaSim Water Inlet +tile.rbmk_steam_inlet.desc=Inserts water into RBMK columns if ReaSim boilers are enabled$Connects to RBMK columns sideways tile.rbmk_steam_outlet.name=RBMK ReaSim Steam Outlet +tile.rbmk_steam_outlet.desc=Extracts super dense steam from RBMK columns if ReaSim boilers are enabled$Connects to RBMK columns sideways tile.rbmk_storage.name=RBMK Storage Column tile.reactor_computer.name=Reactor Control tile.reactor_conductor.name=Reactor Boiler From 6c8677f2c748e42dae3e61800a2659e8d283d0d9 Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 1 Apr 2024 15:23:51 +1100 Subject: [PATCH 301/376] Press CTRL+0+1 to fart and sneeze simultaneously --- .../hbm/inventory/gui/GUIScreenPreview.java | 6 +- .../inventory/gui/GUIScreenWikiRender.java | 168 ++++++++++++++++++ .../com/hbm/main/ModEventHandlerClient.java | 22 +++ 3 files changed, 194 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java b/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java index 56e50ee60..0165aa62d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java @@ -54,8 +54,10 @@ public class GUIScreenPreview extends GuiScreen { this.drawTexturedModalRect(res.getScaledWidth_double() / 2D / zoom - 9D, res.getScaledHeight_double() / 2D / zoom - 9D, 5, 87, 18, 18); GL11.glPopMatrix(); - this.fontRendererObj.drawString("Zoom: " + zoom, 2, this.height - 20, 0xff0000); - this.fontRendererObj.drawString("Windows Scale: " + res.getScaleFactor(), 2, this.height - 10, 0xff0000); + String zoomString = "Zoom: " + zoom; + String scaleString = "Windows Scale: " + res.getScaleFactor(); + this.fontRendererObj.drawString(zoomString, this.width - this.fontRendererObj.getStringWidth(zoomString) - 2, this.height - 20, 0xff0000); + this.fontRendererObj.drawString(scaleString, this.width - this.fontRendererObj.getStringWidth(scaleString) - 2, this.height - 10, 0xff0000); } public void drawTexturedModalRect(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java b/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java new file mode 100644 index 000000000..1e9cd440a --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java @@ -0,0 +1,168 @@ +package com.hbm.inventory.gui; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.nio.IntBuffer; + +import javax.imageio.ImageIO; + +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureUtil; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenWikiRender extends GuiScreen { + + // Basically the same thing as GUIScreenPreview, but will iterate through all provided preview stacks + // taking a screenshot of each, as fast as the game can render them + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/nei/gui_nei.png"); + protected ItemStack[] preview; + protected int index = 0; + + public GUIScreenWikiRender(ItemStack[] stacks) { + this.preview = stacks; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + if(this.mc.theWorld != null) { + GuiScreen.drawRect(0, 0, this.width, this.height, 0xFFC6C6C6); + } else { + this.drawBackground(0); + } + + // Once we've reached the end of the array, immedaitely close this GUI + if(index >= preview.length) { + this.mc.thePlayer.closeScreen(); + return; + } + + this.drawGuiContainerBackgroundLayer(); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(preview[index]); + GL11.glEnable(GL11.GL_LIGHTING); + + try { + String slotName = preview[index].getDisplayName().replaceAll("[^\\w ().-]+", ""); + saveScreenshot(Minecraft.getMinecraft().mcDataDir, "Slot " + slotName + ".png", 2, 2, 32, 32, 0xFF8B8B8B); + } catch (Exception ex) { + // Just skip any failures caused by display name or rendering + } + + index++; + } + + protected void drawGuiContainerBackgroundLayer() { + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(texture); + ScaledResolution res = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); + this.drawTexturedModalRect(0, res.getScaledHeight_double() - 18D, 5, 87, 18, 18); + GL11.glPopMatrix(); + } + + public void drawTexturedModalRect(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { + double f = 0.00390625D; + double f1 = 0.00390625D; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV((double) (x + 0), (double) (y + sizeY), (double) this.zLevel, (double) ((float) (sourceX + 0) * f), (double) ((float) (sourceY + sizeY) * f1)); + tessellator.addVertexWithUV((double) (x + sizeX), (double) (y + sizeY), (double) this.zLevel, (double) ((float) (sourceX + sizeX) * f), (double) ((float) (sourceY + sizeY) * f1)); + tessellator.addVertexWithUV((double) (x + sizeX), (double) (y + 0), (double) this.zLevel, (double) ((float) (sourceX + sizeX) * f), (double) ((float) (sourceY + 0) * f1)); + tessellator.addVertexWithUV((double) (x + 0), (double) (y + 0), (double) this.zLevel, (double) ((float) (sourceX + 0) * f), (double) ((float) (sourceY + 0) * f1)); + tessellator.draw(); + } + + protected void drawGuiContainerForegroundLayer(ItemStack preview) { + if(preview == null) return; + + GL11.glPushMatrix(); + RenderHelper.enableGUIStandardItemLighting(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_DEPTH_TEST); + + ScaledResolution res = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); + GL11.glTranslated(9D, res.getScaledHeight_double() - 9D, -200); + + this.zLevel = 200.0F; + itemRender.zLevel = 200.0F; + + GL11.glEnable(GL11.GL_DEPTH_TEST); + itemRender.renderItemAndEffectIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), preview, -8, -8); + itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), preview, -8, -8, null); + + itemRender.zLevel = 0.0F; + this.zLevel = 0.0F; + + GL11.glPopMatrix(); + } + + + private static IntBuffer pixelBuffer; + private static int[] pixelValues; + + // This implementation is based directly on ScreenShotHelper.saveScreenshot() + // But allows for defining a rect where you want to sample pixels from + private static void saveScreenshot(File dataDir, String fileName, int x, int y, int width, int height, int transparentColor) { + try { + File screenshotDirectory = new File(dataDir, "wiki-screenshots"); + screenshotDirectory.mkdir(); + + int bufferSize = width * height; + if(pixelBuffer == null || pixelBuffer.capacity() < bufferSize) { + pixelBuffer = BufferUtils.createIntBuffer(bufferSize); + pixelValues = new int[bufferSize]; + } + + GL11.glPixelStorei(GL11.GL_PACK_ALIGNMENT, 1); + GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1); + pixelBuffer.clear(); + GL11.glReadPixels(x, y, width, height, GL12.GL_BGRA, GL12.GL_UNSIGNED_INT_8_8_8_8_REV, pixelBuffer); + + pixelBuffer.get(pixelValues); + TextureUtil.func_147953_a(pixelValues, width, height); + BufferedImage imageBuffer = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); + imageBuffer.setRGB(0, 0, width, height, pixelValues, 0, width); + + // This is the only proper custom part, setting the background of an inventory slot to be transparent + if(transparentColor != 0) { + for(int iy = 0; iy < imageBuffer.getHeight(); ++iy) { + for(int ix = 0; ix < imageBuffer.getWidth(); ++ix) { + if(imageBuffer.getRGB(ix, iy) == transparentColor) { + imageBuffer.setRGB(ix, iy, 0); + } + } + } + } + + File imageFile; + if(fileName == null) { + throw new IllegalArgumentException("fileName must not be null"); + } else { + imageFile = new File(screenshotDirectory, fileName); + } + + ImageIO.write(imageBuffer, "png", imageFile); + } catch (Exception ex) { + MainRegistry.logger.warn("Failed to save NTM screenshot", ex); + } + } + +} \ No newline at end of file diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 790dd7152..59dec7202 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1,6 +1,7 @@ package com.hbm.main; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Random; @@ -30,6 +31,7 @@ import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIArmorTable; import com.hbm.inventory.gui.GUIScreenPreview; +import com.hbm.inventory.gui.GUIScreenWikiRender; import com.hbm.items.ISyncButtons; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; @@ -908,6 +910,8 @@ public class ModEventHandlerClient { public static int currentBrightness = 0; public static int lastBrightness = 0; + + static boolean isRenderingItems = false; @SubscribeEvent public void clentTick(ClientTickEvent event) { @@ -971,6 +975,24 @@ public class ModEventHandlerClient { FMLCommonHandler.instance().showGuiScreen(new GUIScreenPreview(stack)); } } + + if(Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) && Keyboard.isKeyDown(Keyboard.KEY_0) && Keyboard.isKeyDown(Keyboard.KEY_1)) { + if (!isRenderingItems) { + isRenderingItems = true; + + MainRegistry.logger.info("Taking a screenshot of ALL items, if you did this by mistake: fucking lmao get rekt nerd"); + + List stacks = new ArrayList(); + for (Object reg : Item.itemRegistry) { + Item item = (Item) reg; + stacks.add(new ItemStack(item)); + } + + FMLCommonHandler.instance().showGuiScreen(new GUIScreenWikiRender(stacks.toArray(new ItemStack[0]))); + } + } else { + isRenderingItems = false; + } if(event.phase == Phase.START) { EntityPlayer player = mc.thePlayer; From a259ba716fb8c9a541f346063b34471ddd80b7ee Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 1 Apr 2024 20:36:30 +1100 Subject: [PATCH 302/376] Include subitems too, with rules for items like RBMK pellets Ignore unlocalized items --- .../inventory/gui/GUIScreenWikiRender.java | 4 ++- .../com/hbm/main/ModEventHandlerClient.java | 29 ++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java b/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java index 1e9cd440a..368a9371d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java @@ -57,7 +57,9 @@ public class GUIScreenWikiRender extends GuiScreen { try { String slotName = preview[index].getDisplayName().replaceAll("[^\\w ().-]+", ""); - saveScreenshot(Minecraft.getMinecraft().mcDataDir, "Slot " + slotName + ".png", 2, 2, 32, 32, 0xFF8B8B8B); + if(!slotName.endsWith(".name")) { + saveScreenshot(Minecraft.getMinecraft().mcDataDir, "Slot " + slotName + ".png", 2, 2, 32, 32, 0xFF8B8B8B); + } } catch (Exception ex) { // Just skip any failures caused by display name or rendering } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 59dec7202..281a1d9d0 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -2,6 +2,7 @@ package com.hbm.main; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.Random; @@ -39,6 +40,9 @@ import com.hbm.items.armor.ArmorFSBPowered; import com.hbm.items.armor.ArmorNo9; import com.hbm.items.armor.ItemArmorMod; import com.hbm.items.armor.JetpackBase; +import com.hbm.items.machine.ItemDepletedFuel; +import com.hbm.items.machine.ItemFluidDuct; +import com.hbm.items.machine.ItemRBMKPellet; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; @@ -108,6 +112,7 @@ import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; +import net.minecraft.init.Blocks; import net.minecraft.inventory.Slot; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; @@ -982,10 +987,32 @@ public class ModEventHandlerClient { MainRegistry.logger.info("Taking a screenshot of ALL items, if you did this by mistake: fucking lmao get rekt nerd"); + List ignoredItems = Arrays.asList( + ModItems.assembly_template, + ModItems.crucible_template, + ModItems.chemistry_template, + ModItems.chemistry_icon, + ModItems.fluid_icon, + ModItems.achievement_icon, + Items.spawn_egg, + Item.getItemFromBlock(Blocks.mob_spawner) + ); + + List> collapsedClasses = Arrays.asList( + ItemRBMKPellet.class, + ItemDepletedFuel.class, + ItemFluidDuct.class + ); + List stacks = new ArrayList(); for (Object reg : Item.itemRegistry) { Item item = (Item) reg; - stacks.add(new ItemStack(item)); + if(ignoredItems.contains(item)) continue; + if(collapsedClasses.contains(item.getClass())) { + stacks.add(new ItemStack(item)); + } else { + item.getSubItems(item, null, stacks); + } } FMLCommonHandler.instance().showGuiScreen(new GUIScreenWikiRender(stacks.toArray(new ItemStack[0]))); From 43d3d03df586e3d21759edc5cfe03e8be3670196 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 1 Apr 2024 20:56:19 +0200 Subject: [PATCH 303/376] nodespace bullshit --- .../java/api/hbm/energymk2/Nodespace.java | 26 +++++++++++++++++++ .../loader/WavefrontObjDisplayList.java | 16 +++++++++--- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index a950c2b24..82b431742 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -25,13 +25,38 @@ public class Nodespace { return null; } + public static void createNode(World world, PowerNode node) { + NodeWorld nodeWorld = worlds.get(world); + if(nodeWorld == null) { + nodeWorld = new NodeWorld(); + worlds.put(world, nodeWorld); + } + nodeWorld.pushNode(node); + } + + public static void destroyNode(World world, int x, int y, int z) { + PowerNode node = getNode(world, x, y, z); + if(node != null) worlds.get(world).popNode(node); + } + public static void updateNodespace() { for(World world : MinecraftServer.getServer().worldServers) { NodeWorld nodes = worlds.get(world); + + for(Entry entry : nodes.nodes.entrySet()) { + PowerNode node = entry.getValue(); + if(node.net == null || !node.net.isValid()) { + tryConnectNode(world, node); + } + } } } + private static void tryConnectNode(World world, PowerNode node) { + + } + public static class NodeWorld { /** Contains a map showing where each node is, a node is every spot that a cable exists at. @@ -47,6 +72,7 @@ public class Nodespace { /** Removes the specified node from all positions from nodespace */ public void popNode(PowerNode node) { + if(node.net != null) node.net.destroy(); for(BlockPos pos : node.positions) { nodes.remove(pos); } diff --git a/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java b/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java index 99eef4360..79f33e16f 100644 --- a/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java +++ b/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java @@ -56,7 +56,7 @@ public class WavefrontObjDisplayList implements IModelCustom { @Override public void renderAll() { for(Pair p : nameToCallList) - GL11.glCallList(p.getRight()); + callList(p.getRight()); } @Override @@ -64,7 +64,7 @@ public class WavefrontObjDisplayList implements IModelCustom { for(Pair p : nameToCallList){ for(String name : groupNames){ if(p.getLeft().equalsIgnoreCase(name)){ - GL11.glCallList(p.getRight()); + callList(p.getRight()); break; } } @@ -75,7 +75,7 @@ public class WavefrontObjDisplayList implements IModelCustom { public void renderPart(String partName) { for(Pair p : nameToCallList){ if(p.getLeft().equalsIgnoreCase(partName)){ - GL11.glCallList(p.getRight()); + callList(p.getRight()); } } } @@ -91,8 +91,16 @@ public class WavefrontObjDisplayList implements IModelCustom { } } if(!skip){ - GL11.glCallList(p.getRight()); + callList(p.getRight()); } } } + + protected static void callList(int i) { + boolean prevBlend = GL11.glIsEnabled(GL11.GL_BLEND); + GL11.glCallList(i); + boolean newBlend = GL11.glIsEnabled(GL11.GL_BLEND); + if(prevBlend && !newBlend) GL11.glEnable(GL11.GL_BLEND); + if(!prevBlend && newBlend) GL11.glDisable(GL11.GL_BLEND); + } } \ No newline at end of file From d844e7ff2ad35f8a655235067e3acd02a9d30bec Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Mon, 1 Apr 2024 18:44:22 -0400 Subject: [PATCH 304/376] bob i swear to god --- src/main/java/com/hbm/handler/pollution/PollutionHandler.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 075cf73e0..82ddfeb53 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -406,6 +406,7 @@ public class PollutionHandler { if (soot >= MobConfig.rampantScoutSpawnThresh) { EntityGlyphidScout scout = new EntityGlyphidScout(event.world); + scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); if(scout.isValidLightLevel()) { //escort for the scout, which can also deal with obstacles EntityGlyphidDigger digger = new EntityGlyphidDigger(event.world); From 4e416f18b6dbe00e6ddd7971468130b3e50c4d78 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 2 Apr 2024 09:56:19 +1100 Subject: [PATCH 305/376] Correctly remove escape sequences from parsed names --- src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java b/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java index 368a9371d..85e9b2ee6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java @@ -56,7 +56,7 @@ public class GUIScreenWikiRender extends GuiScreen { GL11.glEnable(GL11.GL_LIGHTING); try { - String slotName = preview[index].getDisplayName().replaceAll("[^\\w ().-]+", ""); + String slotName = preview[index].getDisplayName().replaceAll("§.", "").replaceAll("[^\\w ().-]+", ""); if(!slotName.endsWith(".name")) { saveScreenshot(Minecraft.getMinecraft().mcDataDir, "Slot " + slotName + ".png", 2, 2, 32, 32, 0xFF8B8B8B); } From f4ba0ce7e4a531226c568440b77eb849e01a3fbf Mon Sep 17 00:00:00 2001 From: CM436 Date: Mon, 1 Apr 2024 20:16:23 -0600 Subject: [PATCH 306/376] fixed cooling tower config option --- src/main/java/com/hbm/main/ClientProxy.java | 3 +-- .../java/com/hbm/tileentity/machine/TileEntityTowerLarge.java | 3 ++- .../java/com/hbm/tileentity/machine/TileEntityTowerSmall.java | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 914978f35..d0beabbc7 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -55,7 +55,6 @@ import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; -import com.hbm.config.GeneralConfig; import com.hbm.entity.cart.*; import com.hbm.entity.effect.*; import com.hbm.entity.grenade.*; @@ -1743,7 +1742,7 @@ public class ClientProxy extends ServerProxy { } if("tower".equals(type)) { - if(GeneralConfig.enableSteamParticles && (particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean()))) { + if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean())) { ParticleCoolingTower fx = new ParticleCoolingTower(man, world, x, y, z); fx.setLift(data.getFloat("lift")); fx.setBaseScale(data.getFloat("base")); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java index a68c62ae0..741988067 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -26,7 +27,7 @@ public class TileEntityTowerLarge extends TileEntityCondenser { if(worldObj.isRemote) { - if(this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 4 == 0) { + if(GeneralConfig.enableSteamParticles && (this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 4 == 0)) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "tower"); data.setFloat("lift", 0.5F); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java index 248edec3a..d11366f33 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -26,7 +27,7 @@ public class TileEntityTowerSmall extends TileEntityCondenser { if(worldObj.isRemote) { - if(this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 2 == 0) { + if(GeneralConfig.enableSteamParticles && (this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 2 == 0)) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "tower"); data.setFloat("lift", 1F); From 7b6467fb3758bd84c1250d3935ecaa528bf7c076 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 2 Apr 2024 14:41:26 +0200 Subject: [PATCH 307/376] my head hurts --- .../java/api/hbm/energymk2/Nodespace.java | 44 +++++++++++++++++-- .../loader/WavefrontObjDisplayList.java | 16 ++----- 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index 82b431742..891076ecf 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -39,6 +39,7 @@ public class Nodespace { if(node != null) worlds.get(world).popNode(node); } + /** Goes over each node and manages connections */ public static void updateNodespace() { for(World world : MinecraftServer.getServer().worldServers) { @@ -46,15 +47,46 @@ public class Nodespace { for(Entry entry : nodes.nodes.entrySet()) { PowerNode node = entry.getValue(); - if(node.net == null || !node.net.isValid()) { - tryConnectNode(world, node); - } + checkNodeConnection(world, node); } } } - private static void tryConnectNode(World world, PowerNode node) { + /** Goes over each connection point of the given node, tries to find neighbor nodes and to join networks with them */ + private static void checkNodeConnection(World world, PowerNode node) { + for(DirPos con : node.connections) { + + PowerNode conNode = getNode(world, con.getX() + con.getDir().offsetX, con.getY() + con.getDir().offsetY, con.getZ() + con.getDir().offsetZ); // get whatever neighbor node intersects with that connection + + if(conNode != null) { // if there is a node at that place + + if(conNode.hasValidNet() && conNode.net == node.net) continue; // if the net is valid and both nodes have the same net, skip + + for(DirPos revCon : conNode.connections) { // check if neighbor node also has a valid reverse connection + + // god i hope i didn't fuck this up my brain is hurting already + if(revCon.getX() - revCon.getDir().offsetX == con.getX() && revCon.getY() - revCon.getDir().offsetY == con.getY() && revCon.getZ() - revCon.getDir().offsetZ == con.getZ() && revCon.getDir() == con.getDir().getOpposite()) { + connectToNode(node, conNode); + break; + } + } + } + } + + if(node.net == null || !node.net.isValid()) new PowerNetMK2().joinLink(node); + } + + /** Links two nodes with different or potentially no networks */ + private static void connectToNode(PowerNode origin, PowerNode connection) { + + if(origin.hasValidNet() && connection.hasValidNet()) { // both nodes have nets, but the nets are different (previous assumption), join networks + origin.net.joinNetworks(connection.net); + } else if(!origin.hasValidNet() && connection.hasValidNet()) { // origin has no net, connection does, have origin join connection's net + connection.net.joinLink(origin); + } else if(origin.hasValidNet() && !connection.hasValidNet()) { // ...and vice versa + origin.net.joinLink(connection); + } } public static class NodeWorld { @@ -99,5 +131,9 @@ public class Nodespace { this.connections = connections; return this; } + + public boolean hasValidNet() { + return this.net != null && this.net.isValid(); + } } } diff --git a/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java b/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java index 79f33e16f..99eef4360 100644 --- a/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java +++ b/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java @@ -56,7 +56,7 @@ public class WavefrontObjDisplayList implements IModelCustom { @Override public void renderAll() { for(Pair p : nameToCallList) - callList(p.getRight()); + GL11.glCallList(p.getRight()); } @Override @@ -64,7 +64,7 @@ public class WavefrontObjDisplayList implements IModelCustom { for(Pair p : nameToCallList){ for(String name : groupNames){ if(p.getLeft().equalsIgnoreCase(name)){ - callList(p.getRight()); + GL11.glCallList(p.getRight()); break; } } @@ -75,7 +75,7 @@ public class WavefrontObjDisplayList implements IModelCustom { public void renderPart(String partName) { for(Pair p : nameToCallList){ if(p.getLeft().equalsIgnoreCase(partName)){ - callList(p.getRight()); + GL11.glCallList(p.getRight()); } } } @@ -91,16 +91,8 @@ public class WavefrontObjDisplayList implements IModelCustom { } } if(!skip){ - callList(p.getRight()); + GL11.glCallList(p.getRight()); } } } - - protected static void callList(int i) { - boolean prevBlend = GL11.glIsEnabled(GL11.GL_BLEND); - GL11.glCallList(i); - boolean newBlend = GL11.glIsEnabled(GL11.GL_BLEND); - if(prevBlend && !newBlend) GL11.glEnable(GL11.GL_BLEND); - if(!prevBlend && newBlend) GL11.glDisable(GL11.GL_BLEND); - } } \ No newline at end of file From 7ab30aa1362ab55d51906dde20e787c0dec274d2 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 3 Apr 2024 14:48:50 +0200 Subject: [PATCH 308/376] Do you know what this means? It means that this damn thing doesn't work at all! --- .../hbm/energymk2/IEnergyConductorMK2.java | 15 ++++++- .../hbm/energymk2/IEnergyConnectorMK2.java | 4 +- .../api/hbm/energymk2/IEnergyProviderMK2.java | 2 +- .../api/hbm/energymk2/IEnergyReceiverMK2.java | 4 +- .../java/api/hbm/energymk2/Nodespace.java | 42 +++++++++++++++++-- .../java/api/hbm/energymk2/PowerNetMK2.java | 5 +++ .../java/com/hbm/main/ModEventHandler.java | 2 + .../network/TileEntityCableBaseNT.java | 26 +++++++++++- 8 files changed, 89 insertions(+), 11 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java index 2ba97fce6..96a90bcfd 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java @@ -1,12 +1,23 @@ package api.hbm.energymk2; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + import api.hbm.energymk2.Nodespace.PowerNode; import net.minecraft.tileentity.TileEntity; public interface IEnergyConductorMK2 extends IEnergyConnectorMK2 { - public default PowerNode getNode() { + public default PowerNode createNode() { TileEntity tile = (TileEntity) this; - return Nodespace.getNode(tile.getWorldObj(), tile.xCoord, tile.yCoord, tile.zCoord); + return new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(tile.xCoord + 1, tile.yCoord, tile.zCoord, Library.POS_X), + new DirPos(tile.xCoord - 1, tile.yCoord, tile.zCoord, Library.NEG_X), + new DirPos(tile.xCoord, tile.yCoord + 1, tile.zCoord, Library.POS_Y), + new DirPos(tile.xCoord, tile.yCoord - 1, tile.zCoord, Library.NEG_Y), + new DirPos(tile.xCoord, tile.yCoord, tile.zCoord + 1, Library.POS_Z), + new DirPos(tile.xCoord, tile.yCoord, tile.zCoord - 1, Library.NEG_Z) + ); } } diff --git a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java index c021d6805..79f678246 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java @@ -25,13 +25,13 @@ public interface IEnergyConnectorMK2 extends ILoadedTile { public static final boolean particleDebug = false; - public default Vec3 getDebugParticlePos() { + public default Vec3 getDebugParticlePosMK2() { TileEntity te = (TileEntity) this; Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); return vec; } - public default void provideInfoForEC(NBTTagCompound data) { + public default void provideInfoForECMK2(NBTTagCompound data) { data.setLong(CompatEnergyControl.L_ENERGY_HE, this.getPower()); data.setLong(CompatEnergyControl.L_CAPACITY_HE, this.getMaxPower()); } diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index b693b959c..99d029f62 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -22,7 +22,7 @@ public interface IEnergyProviderMK2 extends IEnergyConnector { IEnergyConductorMK2 con = (IEnergyConductorMK2) te; if(!con.canConnect(dir.getOpposite())) return; - PowerNode node = con.getNode(); + PowerNode node = con.createNode(); if(node != null && node.net != null) { node.net.addProvider(this); diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index 9673baf1c..677aa596f 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -23,7 +23,7 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { IEnergyConductorMK2 con = (IEnergyConductorMK2) te; if(!con.canConnect(dir.getOpposite())) return; - PowerNode node = con.getNode(); + PowerNode node = con.createNode(); if(node != null && node.net != null) { node.net.addReceiver(this); @@ -51,7 +51,7 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { if(te instanceof IEnergyConductorMK2) { IEnergyConductorMK2 con = (IEnergyConductorMK2) te; - PowerNode node = con.getNode(); + PowerNode node = con.createNode(); if(node != null && node.net != null) { node.net.removeReceiver(this); diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index 891076ecf..6b175db87 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -1,11 +1,17 @@ package api.hbm.energymk2; import java.util.HashMap; +import java.util.HashSet; import java.util.Map.Entry; +import java.util.Set; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; @@ -18,6 +24,7 @@ public class Nodespace { /** Contains all "NodeWorld" instances, i.e. lists of nodes existing per world */ public static HashMap worlds = new HashMap(); + public static Set activePowerNets = new HashSet(); public static PowerNode getNode(World world, int x, int y, int z) { NodeWorld nodeWorld = worlds.get(world); @@ -36,7 +43,19 @@ public class Nodespace { public static void destroyNode(World world, int x, int y, int z) { PowerNode node = getNode(world, x, y, z); - if(node != null) worlds.get(world).popNode(node); + if(node != null) { + worlds.get(world).popNode(node); + markNeigbors(world, node); + } + } + + /** Grabs all neighbor nodes from the given node's connection points and removes them from the network entirely, forcing a hard reconnect */ + private static void markNeigbors(World world, PowerNode node) { + + for(DirPos con : node.connections) { + PowerNode conNode = getNode(world, con.getX(), con.getY(), con.getZ()); + if(conNode != null && conNode.hasValidNet()) conNode.net.leaveLink(conNode); + } } /** Goes over each node and manages connections */ @@ -47,7 +66,22 @@ public class Nodespace { for(Entry entry : nodes.nodes.entrySet()) { PowerNode node = entry.getValue(); - checkNodeConnection(world, node); + if(!node.hasValidNet()) { + checkNodeConnection(world, node); + } + + if(node.hasValidNet()) { + + for(BlockPos pos : node.positions) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "marker"); + data.setInteger("color", 0x00ff00); + data.setInteger("expires", 250); + data.setDouble("dist", 15D); + data.setString("label", "" + node.net.hashCode()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX(), pos.getY(), pos.getZ()), new TargetPoint(world.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), 50)); + } + } } } } @@ -57,7 +91,7 @@ public class Nodespace { for(DirPos con : node.connections) { - PowerNode conNode = getNode(world, con.getX() + con.getDir().offsetX, con.getY() + con.getDir().offsetY, con.getZ() + con.getDir().offsetZ); // get whatever neighbor node intersects with that connection + PowerNode conNode = getNode(world, con.getX(), con.getY(), con.getZ()); // get whatever neighbor node intersects with that connection if(conNode != null) { // if there is a node at that place @@ -107,6 +141,7 @@ public class Nodespace { if(node.net != null) node.net.destroy(); for(BlockPos pos : node.positions) { nodes.remove(pos); + node.expired = true; } } @@ -122,6 +157,7 @@ public class Nodespace { public BlockPos[] positions; public DirPos[] connections; public PowerNetMK2 net; + public boolean expired = false; public PowerNode(BlockPos... positions) { this.positions = positions; diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index d84dfc3a5..aee4e2a1e 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -14,6 +14,10 @@ public class PowerNetMK2 { /** Maps all active subscribers to a timestamp, handy for handling timeouts. In a good system this shouldn't be necessary, but the previous system taught me to be cautious anyway */ private HashMap receiverEntries = new HashMap(); private HashMap providerEntries = new HashMap(); + + public PowerNetMK2() { + Nodespace.activePowerNets.add(this); + } /// SUBSCRIBER HANDLING /// public boolean isSubscribed(IEnergyReceiverMK2 receiver) { @@ -72,6 +76,7 @@ public class PowerNetMK2 { /// GENERAL POWER NET CONTROL /// public void invalidate() { this.valid = false; + Nodespace.activePowerNets.remove(this); } public boolean isValid() { diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index ebbfc9671..caa150524 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -80,6 +80,7 @@ import com.hbm.util.InventoryUtil; import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.world.generator.TimedGenerator; +import api.hbm.energymk2.Nodespace; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; @@ -1103,6 +1104,7 @@ public class ModEventHandler { RTTYSystem.updateBroadcastQueue(); RequestNetwork.updateEntries(); TileEntityMachineRadarNT.updateSystem(); + Nodespace.updateNodespace(); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java index 71b37ab3c..60848881b 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java @@ -3,12 +3,16 @@ package com.hbm.tileentity.network; import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IPowerNet; import api.hbm.energy.PowerNet; +import api.hbm.energymk2.IEnergyConductorMK2; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCableBaseNT extends TileEntity implements IEnergyConductor { +public class TileEntityCableBaseNT extends TileEntity implements IEnergyConductor, IEnergyConductorMK2 { protected IPowerNet network; + protected PowerNode node; @Override public void updateEntity() { @@ -24,6 +28,22 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto this.setPowerNet(new PowerNet().joinLink(this)); } } + + if(!worldObj.isRemote) { + + if(this.node == null || this.node.expired) { + this.node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); + + if(this.node == null || this.node.expired) { + this.node = this.createNode(); + Nodespace.createNode(worldObj, this.node); + } + } + } + } + + public void onNodeDestroyedCallback() { + this.node = null; } protected void connect() { @@ -59,6 +79,10 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto this.network.reevaluate(); this.network = null; } + + if(this.node != null) { + Nodespace.destroyNode(worldObj, xCoord, yCoord, zCoord); + } } } From fb765174dd342373e0d8d80bdbe205a33206e1de Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Wed, 3 Apr 2024 17:42:10 -0400 Subject: [PATCH 309/376] moremore light logic --- .../hbm/entity/mob/glyphid/EntityGlyphidScout.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java index 251bd23d9..318447e46 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java @@ -336,15 +336,13 @@ public class EntityGlyphidScout extends EntityGlyphid { int y = MathHelper.floor_double(this.boundingBox.minY); int z = MathHelper.floor_double(this.posZ); - int light = this.worldObj.getBlockLightValue(x, y, z); + int skylightSubtracted = this.worldObj.skylightSubtracted; - if(this.worldObj.isThundering()) { - int skylightSubtracted = this.worldObj.skylightSubtracted; - this.worldObj.skylightSubtracted = 10; - light = this.worldObj.getBlockLightValue(x, y, z); - this.worldObj.skylightSubtracted = skylightSubtracted; - } - + if(this.worldObj.isThundering()) this.worldObj.skylightSubtracted = 10; + int light = worldObj.getChunkFromChunkCoords(x >> 4, z >> 4).getBlockLightValue(x & 15, y, z & 15, worldObj.skylightSubtracted); + + this.worldObj.skylightSubtracted = skylightSubtracted; return light <= 7; + } } From 3cb6e855a8100cd39d4368ecdada2f08c27e73ae Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 4 Apr 2024 19:35:03 +0200 Subject: [PATCH 310/376] # WE ARE SO FUCKING BACK --- .../java/api/hbm/energymk2/Nodespace.java | 39 +++++++++++++++---- .../java/api/hbm/energymk2/PowerNetMK2.java | 27 +++++++++---- 2 files changed, 50 insertions(+), 16 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index 6b175db87..ae6afd5bc 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -45,10 +45,11 @@ public class Nodespace { PowerNode node = getNode(world, x, y, z); if(node != null) { worlds.get(world).popNode(node); - markNeigbors(world, node); + //markNeigbors(world, node); } } + // UNUSED DO NOT TOUCH /** Grabs all neighbor nodes from the given node's connection points and removes them from the network entirely, forcing a hard reconnect */ private static void markNeigbors(World world, PowerNode node) { @@ -66,21 +67,22 @@ public class Nodespace { for(Entry entry : nodes.nodes.entrySet()) { PowerNode node = entry.getValue(); - if(!node.hasValidNet()) { + if(!node.hasValidNet() || node.recentlyChanged) { checkNodeConnection(world, node); + node.recentlyChanged = false; } if(node.hasValidNet()) { - for(BlockPos pos : node.positions) { + /*for(BlockPos pos : node.positions) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "marker"); - data.setInteger("color", 0x00ff00); + data.setInteger("color", node.net.hashCode() % 0xffffff); data.setInteger("expires", 250); - data.setDouble("dist", 15D); - data.setString("label", "" + node.net.hashCode()); + data.setDouble("dist", 50D); + data.setString("label", "" + node.net.links.size()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX(), pos.getY(), pos.getZ()), new TargetPoint(world.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), 50)); - } + }*/ } } } @@ -115,7 +117,11 @@ public class Nodespace { private static void connectToNode(PowerNode origin, PowerNode connection) { if(origin.hasValidNet() && connection.hasValidNet()) { // both nodes have nets, but the nets are different (previous assumption), join networks - origin.net.joinNetworks(connection.net); + if(origin.net.links.size() > connection.net.links.size()) { + origin.net.joinNetworks(connection.net); + } else { + connection.net.joinNetworks(origin.net); + } } else if(!origin.hasValidNet() && connection.hasValidNet()) { // origin has no net, connection does, have origin join connection's net connection.net.joinLink(origin); } else if(origin.hasValidNet() && !connection.hasValidNet()) { // ...and vice versa @@ -158,6 +164,18 @@ public class Nodespace { public DirPos[] connections; public PowerNetMK2 net; public boolean expired = false; + /** + * Okay so here's the deal: The code has shit idiot brain fungus. I don't know why. I re-tested every part involved several times. + * I don't know why. But for some reason, during neighbor checks, on certain arbitrary fucking places, the joining operation just fails. + * Disallowing nodes to create new networks fixed the problem completely, which is hardly surprising since they wouldn't be able to make + * a new net anyway and they will re-check neighbors until a net is found, so the solution is tautological in nature. So I tried limiting + * creation of new networks. Didn't work. So what's there left to do? Hand out a mark to any node that has changed networks, and let those + * recently modified nodes do another re-check. This creates a second layer of redundant operations, and in theory doubles (in practice, + * it might be an extra 20% due to break-off section sizes) the amount of CPU time needed for re-building the networks after joining or + * breaking, but it seems to allow those parts to connect back to their neighbor nets as they are supposed to. I am not proud of this solution, + * this issue shouldn't exist to begin with and I am going fucking insane but it is what it is. + */ + public boolean recentlyChanged = true; public PowerNode(BlockPos... positions) { this.positions = positions; @@ -171,5 +189,10 @@ public class Nodespace { public boolean hasValidNet() { return this.net != null && this.net.isValid(); } + + public void setNet(PowerNetMK2 net) { + this.net = net; + this.recentlyChanged = true; + } } } diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index aee4e2a1e..2f88d8f05 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -1,19 +1,21 @@ package api.hbm.energymk2; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Set; import api.hbm.energymk2.Nodespace.PowerNode; public class PowerNetMK2 { - private boolean valid = true; - private Set links = new HashSet(); + public boolean valid = true; + public Set links = new HashSet(); /** Maps all active subscribers to a timestamp, handy for handling timeouts. In a good system this shouldn't be necessary, but the previous system taught me to be cautious anyway */ - private HashMap receiverEntries = new HashMap(); - private HashMap providerEntries = new HashMap(); + public HashMap receiverEntries = new HashMap(); + public HashMap providerEntries = new HashMap(); public PowerNetMK2() { Nodespace.activePowerNets.add(this); @@ -52,7 +54,10 @@ public class PowerNetMK2 { if(network == this) return; //wtf?! - for(PowerNode conductor : network.links) joinLink(conductor); + List oldNodes = new ArrayList(network.links.size()); + oldNodes.addAll(network.links); // might prevent oddities related to joining - nvm it does nothing + + for(PowerNode conductor : oldNodes) forceJoinLink(conductor); network.links.clear(); for(IEnergyReceiverMK2 connector : network.receiverEntries.keySet()) this.addReceiver(connector); @@ -63,13 +68,19 @@ public class PowerNetMK2 { /** Adds the power node as part of this network's links */ public PowerNetMK2 joinLink(PowerNode node) { if(node.net != null) node.net.leaveLink(node); - node.net = this; + return forceJoinLink(node); + } + + /** Adds the power node as part of this network's links, skips the part about removing it from existing networks */ + public PowerNetMK2 forceJoinLink(PowerNode node) { + this.links.add(node); + node.setNet(this); return this; } /** Removes the specified power node */ public void leaveLink(PowerNode node) { - node.net = null; + node.setNet(null); this.links.remove(node); } @@ -85,7 +96,7 @@ public class PowerNetMK2 { public void destroy() { this.invalidate(); - for(PowerNode link : this.links) if(link.net == this) link.net = null; + for(PowerNode link : this.links) if(link.net == this) link.setNet(null); this.links.clear(); this.receiverEntries.clear(); this.providerEntries.clear(); From 319ab19e014408ea73b60fbd475e125cc433dd99 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 4 Apr 2024 19:32:03 -0400 Subject: [PATCH 311/376] the ferocious leapers --- .../mob/glyphid/EntityGlyphidBrawler.java | 99 ++++++++++++++++++- 1 file changed, 98 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java index 134f66ca7..cf6747fc0 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java @@ -1,18 +1,104 @@ package com.hbm.entity.mob.glyphid; + import com.hbm.main.ResourceManager; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; import net.minecraft.world.World; + public class EntityGlyphidBrawler extends EntityGlyphid { public EntityGlyphidBrawler(World world) { super(world); this.setSize(2F, 1.125F); } - + + public int timer = 0; + protected Entity lastTarget; + protected double lastX; + protected double lastY; + protected double lastZ; + + @Override + public void onUpdate(){ + super.onUpdate(); + Entity e = this.getEntityToAttack(); + if (e != null && this.isEntityAlive()) { + + this.lastX = e.posX; + this.lastY = e.posY; + this.lastZ = e.posZ; + + if (--timer <= 0) { + leap(); + timer = 80 + worldObj.rand.nextInt(30); + } + } + } + + /** Mainly composed of crusty old power fist code, with some touch ups **/ + public void leap() { + if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < 20) { + Entity e = this.getEntityToAttack(); + + double velX = e.posX - lastX; + double velY = e.posY - lastY; + double velZ = e.posZ - lastZ; + + if (this.lastTarget != e) { + velX = velY = velZ = 0; + } + + int prediction = 60; + Vec3 delta = Vec3.createVectorHelper(e.posX - posX + velX * prediction, (e.posY + e.height / 2) - (posY + 1) + velY * prediction, e.posZ - posZ + velZ * prediction); + double len = delta.lengthVector(); + if (len < 3) return; + double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + + double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double y = delta.yCoord; + double v0 = 1.5; + double v02 = v0 * v0; + double g = 0.01; + double targetPitch = Math.atan((v02 + Math.sqrt(v02 * v02 - g * (g * x * x + 2 * y * v02)) * 1) / (g * x)); + Vec3 fireVec = null; + if (!Double.isNaN(targetPitch)) { + + fireVec = Vec3.createVectorHelper(v0, 0, 0); + fireVec.rotateAroundZ((float) (-targetPitch / 3.5)); + fireVec.rotateAroundY((float) -(targetYaw + Math.PI * 0.5)); + } + if (fireVec != null) + this.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, rand.nextFloat()); + } + } + //yeag this is now a motherfucking projectile + public void setThrowableHeading(double motionX, double motionY, double motionZ, float velocity, float inaccuracy) { + float throwLen = MathHelper.sqrt_double(motionX * motionX + motionY * motionY + motionZ * motionZ); + motionX /= (double) throwLen; + motionY /= (double) throwLen; + motionZ /= (double) throwLen; + motionX += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionY += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionZ += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionX *= (double) velocity; + motionY *= (double) velocity; + motionZ *= (double) velocity; + this.motionX = motionX; + this.motionY = motionY; + this.motionZ = motionZ; + float hyp = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); + this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(motionX, motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(motionY, (double) hyp) * 180.0D / Math.PI); + } @Override public ResourceLocation getSkin() { return ResourceManager.glyphid_brawler_tex; @@ -33,7 +119,18 @@ public class EntityGlyphidBrawler extends EntityGlyphid { @Override public float getDivisorPerArmorPoint() { return GlyphidStats.getStats().getBrawler().divisor; } @Override public float getDamageThreshold() { return GlyphidStats.getStats().getBrawler().damageThreshold; } + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + /*NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 2.5F); + data.setString("text", "" + (int) amount); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 2, posZ), new TargetPoint(dimension, posX, posY + 2, posZ, 50));*/ + if(source != DamageSource.fall) super.attackEntityFrom(source, amount); + return false; + } @Override public boolean isArmorBroken(float amount) { return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); From 1618d9be12451cc980b05478d67556af622fa887 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 5 Apr 2024 14:51:36 +0200 Subject: [PATCH 312/376] enough for today, my head hurts --- .../api/hbm/energymk2/IEnergyProviderMK2.java | 9 +++-- .../api/hbm/energymk2/IEnergyReceiverMK2.java | 15 ++++++- .../java/api/hbm/energymk2/Nodespace.java | 39 ++++++++++++++++--- .../machine/TileEntityMachineDetector.java | 7 ++-- .../machine/TileEntityMachineMiniRTG.java | 9 +++-- 5 files changed, 60 insertions(+), 19 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index 99d029f62..b8a05e0ae 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -3,7 +3,6 @@ package api.hbm.energymk2; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import api.hbm.energy.IEnergyConnector; import api.hbm.energymk2.Nodespace.PowerNode; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; @@ -11,7 +10,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public interface IEnergyProviderMK2 extends IEnergyConnector { +public interface IEnergyProviderMK2 extends IEnergyConnectorMK2 { + + public void setPower(long power); public default void tryProvide(World world, int x, int y, int z, ForgeDirection dir) { @@ -22,7 +23,7 @@ public interface IEnergyProviderMK2 extends IEnergyConnector { IEnergyConductorMK2 con = (IEnergyConductorMK2) te; if(!con.canConnect(dir.getOpposite())) return; - PowerNode node = con.createNode(); + PowerNode node = Nodespace.getNode(world, x, y, z); if(node != null && node.net != null) { node.net.addProvider(this); @@ -30,6 +31,8 @@ public interface IEnergyProviderMK2 extends IEnergyConnector { } } + //TODO: direct transfer + if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "network"); diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index 677aa596f..d68837692 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -12,7 +12,18 @@ import net.minecraftforge.common.util.ForgeDirection; public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { - public long transferPower(long power); + public default long transferPower(long power) { + if(power + this.getPower() <= this.getMaxPower()) { + this.setPower(power + this.getPower()); + return 0; + } + long capacity = this.getMaxPower() - this.getPower(); + long overshoot = power - capacity; + this.setPower(this.getMaxPower()); + return overshoot; + } + + public void setPower(long power); public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) { @@ -23,7 +34,7 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { IEnergyConductorMK2 con = (IEnergyConductorMK2) te; if(!con.canConnect(dir.getOpposite())) return; - PowerNode node = con.createNode(); + PowerNode node = Nodespace.getNode(world, x, y, z); if(node != null && node.net != null) { node.net.addReceiver(this); diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index ae6afd5bc..2a9f4c23a 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -1,5 +1,6 @@ package api.hbm.energymk2; +import java.math.BigInteger; import java.util.HashMap; import java.util.HashSet; import java.util.Map.Entry; @@ -49,9 +50,8 @@ public class Nodespace { } } - // UNUSED DO NOT TOUCH /** Grabs all neighbor nodes from the given node's connection points and removes them from the network entirely, forcing a hard reconnect */ - private static void markNeigbors(World world, PowerNode node) { + @Deprecated private static void markNeigbors(World world, PowerNode node) { for(DirPos con : node.connections) { PowerNode conNode = getNode(world, con.getX(), con.getY(), con.getZ()); @@ -72,9 +72,9 @@ public class Nodespace { node.recentlyChanged = false; } - if(node.hasValidNet()) { + /*if(node.hasValidNet()) { - /*for(BlockPos pos : node.positions) { + for(BlockPos pos : node.positions) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "marker"); data.setInteger("color", node.net.hashCode() % 0xffffff); @@ -82,8 +82,35 @@ public class Nodespace { data.setDouble("dist", 50D); data.setString("label", "" + node.net.links.size()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX(), pos.getY(), pos.getZ()), new TargetPoint(world.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), 50)); - }*/ - } + } + }*/ + } + } + + updatePowerNets(); + } + + private static void updatePowerNets() { + + int timeout = 3_000; + + for(PowerNetMK2 net : activePowerNets) { + + long timestamp = System.currentTimeMillis(); + + //TODO: start over, impose a per-tick transfer limit in order to avoid bigints + + BigInteger supply = BigInteger.valueOf(0); + BigInteger demand = BigInteger.valueOf(0); + + for(Entry entry : net.providerEntries.entrySet()) { + IEnergyProviderMK2 provider = entry.getKey(); + if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply = supply.add(BigInteger.valueOf(provider.getPower())); + } + + for(Entry entry : net.receiverEntries.entrySet()) { + IEnergyReceiverMK2 receiver = entry.getKey(); + if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand = demand.add(BigInteger.valueOf(receiver.getMaxPower() - receiver.getPower())); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java index 8f62d9f47..b4d1a8d39 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java @@ -2,15 +2,15 @@ package com.hbm.tileentity.machine; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDetector extends TileEntityLoadedBase implements IEnergyUser { +public class TileEntityMachineDetector extends TileEntityLoadedBase implements IEnergyReceiverMK2 { long power; @Override - public void updateEntity() { + public void updateEntity() { if(!worldObj.isRemote) { @@ -56,5 +56,4 @@ public class TileEntityMachineDetector extends TileEntityLoadedBase implements I public ConnectionPriority getPriority() { return ConnectionPriority.HIGH; } - } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java index cf6c1372d..ba194d48d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java @@ -4,12 +4,12 @@ import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.tile.IInfoProviderEC; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IEnergyGenerator, IInfoProviderEC { +public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC { public long power; boolean tact = false; @@ -24,8 +24,9 @@ public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IE if(power > getMaxPower()) power = getMaxPower(); - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } } } From ebeb276e947cc0da7f48df6bfb70e86c3b0b3802 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 5 Apr 2024 18:13:28 -0400 Subject: [PATCH 313/376] some more stuffs --- .../com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java | 7 ++++--- .../com/hbm/entity/mob/glyphid/EntityGlyphidScout.java | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java index cf6747fc0..7799040e2 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java @@ -44,7 +44,7 @@ public class EntityGlyphidBrawler extends EntityGlyphid { } } - /** Mainly composed of crusty old power fist code, with some touch ups **/ + /** Mainly composed of repurposed bombardier code**/ public void leap() { if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < 20) { Entity e = this.getEntityToAttack(); @@ -128,8 +128,9 @@ public class EntityGlyphidBrawler extends EntityGlyphid { data.setFloat("scale", 2.5F); data.setString("text", "" + (int) amount); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 2, posZ), new TargetPoint(dimension, posX, posY + 2, posZ, 50));*/ - if(source != DamageSource.fall) super.attackEntityFrom(source, amount); - return false; + //allows brawlers to get no damage on short leaps, but still affected by fall damage on big drops + if(source == DamageSource.fall && amount <= 10) return false; + return super.attackEntityFrom(source, amount); } @Override public boolean isArmorBroken(float amount) { diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java index 318447e46..ece0ee982 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java @@ -73,7 +73,10 @@ public class EntityGlyphidScout extends EntityGlyphid { @Override public void onUpdate() { super.onUpdate(); - + //Updates to check whether the player still exists, important to make sure it wont stop doing work + if(entityToAttack != null && ticksExisted % 60 == 0){ + entityToAttack = findPlayerToAttack(); + } if((getCurrentTask() != TASK_BUILD_HIVE || getCurrentTask() != TASK_TERRAFORM) && taskWaypoint == null) { if(MobConfig.rampantGlyphidGuidance && PollutionHandler.targetCoords != null){ From acd2e96c64e18864f50fc88138b3f5a17855e6a3 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sat, 6 Apr 2024 13:34:44 -0400 Subject: [PATCH 314/376] minor behemoth buff --- .../com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java index 28bc49068..22a53e3d2 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java @@ -74,7 +74,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { super.onDeath(source); if (!worldObj.isRemote) { EntityMist mist = new EntityMist(worldObj); - mist.setType(Fluids.ACID); + mist.setType(Fluids.SULFURIC_ACID); mist.setPosition(posX, posY, posZ); mist.setArea(10, 4); mist.setDuration(120); @@ -88,7 +88,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 20, 6)); EntityChemical chem = new EntityChemical(worldObj, this); - chem.setFluid(Fluids.ACID); + chem.setFluid(Fluids.SULFURIC_ACID); worldObj.spawnEntityInWorld(chem); } } From 30969b281fc77f42d75da55a219699fa309c7b30 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 7 Apr 2024 11:40:13 +1000 Subject: [PATCH 315/376] Automatically focus search box in Multi Fluid Identifier --- src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java index 8d0105f14..e72526ced 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java @@ -67,6 +67,7 @@ public class GUIScreenFluid extends GuiScreen { this.search.setTextColor(-1); this.search.setDisabledTextColour(-1); this.search.setEnableBackgroundDrawing(false); + this.search.setFocused(true); if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.fluid_identifier_multi) { this.primary = ItemFluidIDMulti.getType(player.getHeldItem(), true); From 0146e82866cb1d38194e40e870e8fbf97d9cf2e7 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 7 Apr 2024 13:41:48 +1000 Subject: [PATCH 316/376] Change structure/dungeon configs to be trinary (true|false|flag) --- src/main/java/com/hbm/config/CommonConfig.java | 17 +++++++++++++++++ src/main/java/com/hbm/config/GeneralConfig.java | 7 +++++-- .../java/com/hbm/config/StructureConfig.java | 7 +++++-- src/main/java/com/hbm/lib/HbmWorldGen.java | 4 +++- .../com/hbm/world/gen/NTMWorldGenerator.java | 10 ++++++++-- 5 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index 46acd791a..7fce253e8 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -87,4 +87,21 @@ public class CommonConfig { return prop.getStringList(); } + public static int parseStructureFlag(String flag) { + if(flag == null) flag = ""; + + switch(flag.toLowerCase(Locale.US)) { + case "true": + case "on": + case "yes": + return 1; + case "false": + case "off": + case "no": + return 0; + default: + return 2; + } + } + } diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 99eb1fed8..13f5e37dd 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -9,7 +9,7 @@ public class GeneralConfig { public static boolean enableDebugMode = true; public static boolean enableMycelium = false; public static boolean enablePlutoniumOre = false; - public static boolean enableDungeons = true; + public static int enableDungeons = 2; public static boolean enableMDOres = true; public static boolean enableMines = true; public static boolean enableRad = true; @@ -73,7 +73,10 @@ public class GeneralConfig { enableDebugMode = config.get(CATEGORY_GENERAL, "1.00_enableDebugMode", false, "Enable debugging mode").getBoolean(false); enableMycelium = config.get(CATEGORY_GENERAL, "1.01_enableMyceliumSpread", false, "Allows glowing mycelium to spread").getBoolean(false); enablePlutoniumOre = config.get(CATEGORY_GENERAL, "1.02_enablePlutoniumNetherOre", false, "Enables plutonium ore generation in the nether").getBoolean(false); - enableDungeons = config.get(CATEGORY_GENERAL, "1.03_enableDungeonSpawn", true, "Allows structures and dungeons to spawn").getBoolean(true); + + String unparsedDungeonFlag = config.get(CATEGORY_GENERAL, "1.03_enableDungeonSpawn", "flag", "Allows structures and dungeons to spawn. Valid values are true|false|flag - flag will respect the \"Generate Structures\" world flag.").getString(); + enableDungeons = CommonConfig.parseStructureFlag(unparsedDungeonFlag); + enableMDOres = config.get(CATEGORY_GENERAL, "1.04_enableOresInModdedDimensions", true, "Allows NTM ores to generate in modded dimensions").getBoolean(true); enableMines = config.get(CATEGORY_GENERAL, "1.05_enableLandmineSpawn", true, "Allows landmines to generate").getBoolean(true); enableRad = config.get(CATEGORY_GENERAL, "1.06_enableRadHotspotSpawn", true, "Allows radiation hotspots to generate").getBoolean(true); diff --git a/src/main/java/com/hbm/config/StructureConfig.java b/src/main/java/com/hbm/config/StructureConfig.java index 9d6ad3cc0..944a7cbb0 100644 --- a/src/main/java/com/hbm/config/StructureConfig.java +++ b/src/main/java/com/hbm/config/StructureConfig.java @@ -8,7 +8,7 @@ import net.minecraftforge.common.config.Configuration; public class StructureConfig { - public static boolean enableStructures = true; + public static int enableStructures = 2; public static int structureMinChunks = 8; public static int structureMaxChunks = 24; @@ -18,7 +18,10 @@ public class StructureConfig { public static void loadFromConfig(Configuration config) { final String CATEGORY_STRUCTURES = CommonConfig.CATEGORY_STRUCTURES; - enableStructures = CommonConfig.createConfigBool(config, CATEGORY_STRUCTURES, "5.00_enableStructures", "Switch for whether structures using the MapGenStructure system spawn.", true); + + String unparsedStructureFlag = CommonConfig.createConfigString(config, CATEGORY_STRUCTURES, "5.00_enableStructures", "Flag for whether modern NTM structures will spawn. Valid values are true|false|flag - flag will respect the \"Generate Structures\" world flag.", "flag"); + + enableStructures = CommonConfig.parseStructureFlag(unparsedStructureFlag); structureMinChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.01_structureMinChunks", "Minimum non-zero distance between structures in chunks (Settings lower than 8 may be problematic).", 8); structureMaxChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.02_structureMaxChunks", "Maximum non-zero distance between structures in chunks.", 24); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index e6029be87..f8ee016ff 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -220,8 +220,10 @@ public class HbmWorldGen implements IWorldGenerator { } boolean enableDungeons = world.getWorldInfo().isMapFeaturesEnabled(); + if(GeneralConfig.enableDungeons == 1) enableDungeons = true; + if(GeneralConfig.enableDungeons == 0) enableDungeons = false; - if(GeneralConfig.enableDungeons && world.provider.dimensionId == 0 && enableDungeons) { + if(enableDungeons && world.provider.dimensionId == 0) { if(MobConfig.enableHives && rand.nextInt(MobConfig.hiveSpawn) == 0) { int x = i + rand.nextInt(16) + 8; diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 34efa8ea1..6fb9e7fd1 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -49,7 +49,8 @@ public class NTMWorldGenerator implements IWorldGenerator { setRandomSeed(event.world, event.chunkX, event.chunkZ); //Set random for population down the line. hasPopulationEvent = true; - if(!StructureConfig.enableStructures || !event.world.getWorldInfo().isMapFeaturesEnabled()) return; + if(StructureConfig.enableStructures == 0) return; + if(StructureConfig.enableStructures == 2 && !event.world.getWorldInfo().isMapFeaturesEnabled()) return; switch (event.world.provider.dimensionId) { case -1: @@ -94,7 +95,12 @@ public class NTMWorldGenerator implements IWorldGenerator { private void generateSurface(World world, Random rand, IChunkProvider chunkGenerator, IChunkProvider chunkProvider, int chunkX, int chunkZ) { if(!hasPopulationEvent) { //If we've failed to generate any structures (flatlands) setRandomSeed(world, chunkX, chunkZ); //Reset the random seed to compensate - if(StructureConfig.enableStructures) generateOverworldStructures(world, chunkGenerator, chunkX, chunkZ); //Do it through the post-population generation directly + + boolean enableStructures = world.getWorldInfo().isMapFeaturesEnabled(); + if(StructureConfig.enableStructures == 1) enableStructures = true; + if(StructureConfig.enableStructures == 0) enableStructures = false; + + if(enableStructures) generateOverworldStructures(world, chunkGenerator, chunkX, chunkZ); //Do it through the post-population generation directly } /* biome dictionary my beloved <3 From 180234e245b6933d0f71eb48d4190c47ca819b8c Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 7 Apr 2024 16:39:33 +1000 Subject: [PATCH 317/376] Integrated geiger counters now generate audio based on dosage AFTER protection --- .../java/com/hbm/items/armor/ArmorFSB.java | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index d6eb33079..912a11dcc 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -12,6 +12,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.util.ContaminationUtil; import com.hbm.util.I18nUtil; import cpw.mods.fml.common.gameevent.TickEvent; @@ -48,8 +49,8 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { private String texture = ""; private ResourceLocation overlay = null; - public List effects = new ArrayList(); - public HashMap resistance = new HashMap(); + public List effects = new ArrayList(); + public HashMap resistance = new HashMap(); public float blastProtection = -1; public float projectileProtection = -1; public float damageCap = -1; @@ -572,34 +573,31 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { if(this.armorType != 1) return; - if(!this.hasFSBArmor(entity) || !this.geigerSound) + if(!hasFSBArmor(entity) || !this.geigerSound) return; if(world.getTotalWorldTime() % 5 == 0) { - - float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity); + + // Armor piece dosimeters indicate radiation dosage inside the armor, so reduce the counts by the effective protection + float mod = ContaminationUtil.calculateRadiationMod(entity); + float x = HbmLivingProps.getRadBuf(entity) * mod; if(x > 1E-5) { - - if(x > 0) { - List list = new ArrayList(); - - if(x < 1) list.add(0); - if(x < 5) list.add(0); - if(x < 10) list.add(1); - if(x > 5 && x < 15) list.add(2); - if(x > 10 && x < 20) list.add(3); - if(x > 15 && x < 25) list.add(4); - if(x > 20 && x < 30) list.add(5); - if(x > 25) list.add(6); - - int r = list.get(world.rand.nextInt(list.size())); - - if(r > 0) - world.playSoundAtEntity(entity, "hbm:item.geiger" + r, 1.0F, 1.0F); - } else if(world.rand.nextInt(50) == 0) { - world.playSoundAtEntity(entity, "hbm:item.geiger" + (1 + world.rand.nextInt(1)), 1.0F, 1.0F); - } + List list = new ArrayList(); + + if(x < 1) list.add(0); + if(x < 5) list.add(0); + if(x < 10) list.add(1); + if(x > 5 && x < 15) list.add(2); + if(x > 10 && x < 20) list.add(3); + if(x > 15 && x < 25) list.add(4); + if(x > 20 && x < 30) list.add(5); + if(x > 25) list.add(6); + + int r = list.get(world.rand.nextInt(list.size())); + + if(r > 0) + world.playSoundAtEntity(entity, "hbm:item.geiger" + r, 1.0F, 1.0F); } } } @@ -645,7 +643,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } - private HashSet hidden = new HashSet(); + private HashSet hidden = new HashSet(); private boolean needsFullSet = false; public ArmorFSB hides(EnumPlayerPart... parts) { From 0b8332d525c95ec54ce1312217e3eb95af950192 Mon Sep 17 00:00:00 2001 From: George Paton Date: Sun, 7 Apr 2024 17:23:59 +1000 Subject: [PATCH 318/376] Play full counts if the player also has a regular counter --- src/main/java/com/hbm/items/armor/ArmorFSB.java | 4 ++++ src/main/java/com/hbm/items/tool/ItemDosimeter.java | 7 ------- src/main/java/com/hbm/items/tool/ItemGeigerCounter.java | 7 ------- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 912a11dcc..de7a67afa 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -12,6 +12,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.items.ModItems; import com.hbm.util.ContaminationUtil; import com.hbm.util.I18nUtil; @@ -576,6 +577,9 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { if(!hasFSBArmor(entity) || !this.geigerSound) return; + if(entity.inventory.hasItem(ModItems.geiger_counter) || entity.inventory.hasItem(ModItems.dosimeter)) + return; + if(world.getTotalWorldTime() % 5 == 0) { // Armor piece dosimeters indicate radiation dosage inside the armor, so reduce the counts by the effective protection diff --git a/src/main/java/com/hbm/items/tool/ItemDosimeter.java b/src/main/java/com/hbm/items/tool/ItemDosimeter.java index 3a6a1f4bf..c8eeb585d 100644 --- a/src/main/java/com/hbm/items/tool/ItemDosimeter.java +++ b/src/main/java/com/hbm/items/tool/ItemDosimeter.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Random; import com.hbm.extprop.HbmLivingProps; -import com.hbm.items.armor.ArmorFSB; import com.hbm.util.ContaminationUtil; import net.minecraft.entity.Entity; @@ -25,12 +24,6 @@ public class ItemDosimeter extends Item { if(!(entity instanceof EntityLivingBase) || world.isRemote) return; - if(entity instanceof EntityPlayer) { - - if(ArmorFSB.hasFSBArmor((EntityPlayer)entity) && ((ArmorFSB)((EntityPlayer)entity).inventory.armorInventory[2].getItem()).geigerSound) - return; - } - float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity); if(world.getTotalWorldTime() % 5 == 0) { diff --git a/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java b/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java index 72be9d361..cc86cc758 100644 --- a/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java +++ b/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java @@ -6,7 +6,6 @@ import java.util.Random; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.items.armor.ArmorFSB; import com.hbm.util.ContaminationUtil; import net.minecraft.entity.Entity; @@ -27,12 +26,6 @@ public class ItemGeigerCounter extends Item { if(!(entity instanceof EntityLivingBase) || world.isRemote) return; - if(entity instanceof EntityPlayer) { - - if(ArmorFSB.hasFSBArmor((EntityPlayer)entity) && ((ArmorFSB)((EntityPlayer)entity).inventory.armorInventory[2].getItem()).geigerSound) - return; - } - float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity); if(world.getTotalWorldTime() % 5 == 0) { From a9c6405f41f22e9faaaf7eb47aff4dc159f72d10 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 8 Apr 2024 16:44:48 +0200 Subject: [PATCH 319/376] project mkultra --- .../hbm/energymk2/IEnergyConnectorMK2.java | 4 + .../api/hbm/energymk2/IEnergyProviderMK2.java | 5 ++ .../api/hbm/energymk2/IEnergyReceiverMK2.java | 25 +++++- .../java/api/hbm/energymk2/Nodespace.java | 82 ++++++++++++++----- 4 files changed, 94 insertions(+), 22 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java index 79f678246..2245f57ff 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java @@ -23,6 +23,10 @@ public interface IEnergyConnectorMK2 extends ILoadedTile { public long getPower(); public long getMaxPower(); + public default long getConnectionSpeed() { + return this.getMaxPower(); + } + public static final boolean particleDebug = false; public default Vec3 getDebugParticlePosMK2() { diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index b8a05e0ae..d45feb6f9 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -11,6 +11,11 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public interface IEnergyProviderMK2 extends IEnergyConnectorMK2 { + + /** Uses up available power, default implementation has no sanity checking, make sure that the requested power is lequal to the current power */ + public default void usePower(long power) { + this.setPower(this.getPower() - power); + } public void setPower(long power); diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index d68837692..dfb32f097 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -70,13 +70,36 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { } } + /** + * Project MKUltra was an illegal human experiments program designed and undertaken by the U.S. Central Intelligence Agency (CIA) + * to develop procedures and identify drugs that could be used during interrogations to weaken people and force confessions through + * brainwashing and psychological torture. It began in 1953 and was halted in 1973. MKUltra used numerous methods to manipulate + * its subjects' mental states and brain functions, such as the covert administration of high doses of psychoactive drugs (especially LSD) + * and other chemicals without the subjects' consent, electroshocks, hypnosis, sensory deprivation, isolation, verbal and sexual + * abuse, and other forms of torture. + * MKUltra was preceded by Project Artichoke. It was organized through the CIA's Office of Scientific Intelligence and coordinated + * with the United States Army Biological Warfare Laboratories. The program engaged in illegal activities, including the + * use of U.S. and Canadian citizens as unwitting test subjects. MKUltra's scope was broad, with activities carried + * out under the guise of research at more than 80 institutions aside from the military, including colleges and universities, + * hospitals, prisons, and pharmaceutical companies. The CIA operated using front organizations, although some top officials at these + * institutions were aware of the CIA's involvement. + * MKUltra was revealed to the public in 1975 by the Church Committee of the United States Congress and Gerald Ford's United States + * President's Commission on CIA activities within the United States (the Rockefeller Commission). Investigative efforts were hampered + * by CIA Director Richard Helms's order that all MKUltra files be destroyed in 1973; the Church Committee and Rockefeller Commission + * investigations relied on the sworn testimony of direct participants and on the small number of documents that survived Helms's order. + * In 1977, a Freedom of Information Act request uncovered a cache of 20,000 documents relating to MKUltra, which led to Senate hearings. + * Some surviving information about MKUltra was declassified in 2001. + * */ public default ConnectionPriority getPriority() { return ConnectionPriority.NORMAL; } + /** More is better-er */ public enum ConnectionPriority { + LOWEST, LOW, NORMAL, - HIGH + HIGH, + HIGHEST } } diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index 2a9f4c23a..bdf7ce105 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -1,18 +1,16 @@ package api.hbm.energymk2; -import java.math.BigInteger; +import java.util.ArrayList; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Map.Entry; import java.util.Set; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; @@ -46,16 +44,6 @@ public class Nodespace { PowerNode node = getNode(world, x, y, z); if(node != null) { worlds.get(world).popNode(node); - //markNeigbors(world, node); - } - } - - /** Grabs all neighbor nodes from the given node's connection points and removes them from the network entirely, forcing a hard reconnect */ - @Deprecated private static void markNeigbors(World world, PowerNode node) { - - for(DirPos con : node.connections) { - PowerNode conNode = getNode(world, con.getX(), con.getY(), con.getZ()); - if(conNode != null && conNode.hasValidNet()) conNode.net.leaveLink(conNode); } } @@ -95,22 +83,64 @@ public class Nodespace { int timeout = 3_000; for(PowerNetMK2 net : activePowerNets) { + + if(net.providerEntries.isEmpty()) continue; + if(net.receiverEntries.isEmpty()) continue; long timestamp = System.currentTimeMillis(); - - //TODO: start over, impose a per-tick transfer limit in order to avoid bigints + long transferCap = 100_000_000_000_000_00L; // that ought to be enough - BigInteger supply = BigInteger.valueOf(0); - BigInteger demand = BigInteger.valueOf(0); + long supply = 0; + long demand = 0; for(Entry entry : net.providerEntries.entrySet()) { IEnergyProviderMK2 provider = entry.getKey(); - if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply = supply.add(BigInteger.valueOf(provider.getPower())); + if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply += Math.min(provider.getPower(), provider.getConnectionSpeed()); } for(Entry entry : net.receiverEntries.entrySet()) { IEnergyReceiverMK2 receiver = entry.getKey(); - if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand = demand.add(BigInteger.valueOf(receiver.getMaxPower() - receiver.getPower())); + if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand += Math.min(receiver.getMaxPower() - receiver.getPower(), receiver.getConnectionSpeed()); + } + + double drainScale = 1D; + + if(supply > demand) { + drainScale = (double) demand / (double) supply; + } + + long toTransfer = Math.min(supply, demand); + if(toTransfer > transferCap) toTransfer = transferCap; + if(toTransfer <= 0) continue; + + //TODO: add caching for the ordered lists + List providers = new ArrayList() {{ addAll(net.providerEntries.keySet()); }}; + List receivers = new ArrayList() {{ addAll(net.receiverEntries.keySet()); }}; + receivers.sort(COMP); + + int maxIteration = 1000; + //TODO: ok this implementation is shit but we can clutch this. add a var for the current receiver index and shift that after each transfer so that transfers are spaced out instead of shit getting priority treatment + while(!receivers.isEmpty() && maxIteration > 0) { + maxIteration--; + + IEnergyProviderMK2 src = providers.get(0); + IEnergyReceiverMK2 dest = receivers.get(0); + long toDrain = Math.min((long) (src.getPower() * drainScale), src.getConnectionSpeed()); + long toFill = Math.min(dest.getMaxPower() - dest.getPower(), dest.getConnectionSpeed()); + long finalTransfer = Math.min(toDrain, toFill); + if(finalTransfer <= 0) { + receivers.remove(0); + continue; + } + + finalTransfer -= dest.transferPower(finalTransfer); + src.usePower(finalTransfer); + + toTransfer -= finalTransfer; + if(finalTransfer <= 0) { + receivers.remove(0); + continue; + } } } } @@ -222,4 +252,14 @@ public class Nodespace { this.recentlyChanged = true; } } + + public static final ReceiverComparator COMP = new ReceiverComparator(); + + public static class ReceiverComparator implements Comparator { + + @Override + public int compare(IEnergyReceiverMK2 o1, IEnergyReceiverMK2 o2) { + return o2.getPriority().ordinal() - o1.getPriority().ordinal(); + } + } } From b1e2fbbbbc18e216b64902e499a6671cfca55c31 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 8 Apr 2024 20:44:48 +0200 Subject: [PATCH 320/376] congress should pass a bill barring me from using a PC ever again --- .../java/api/hbm/energymk2/Nodespace.java | 72 +---------------- .../java/api/hbm/energymk2/PowerNetMK2.java | 78 +++++++++++++++++++ 2 files changed, 79 insertions(+), 71 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index bdf7ce105..ae0caae29 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -80,68 +80,8 @@ public class Nodespace { private static void updatePowerNets() { - int timeout = 3_000; - for(PowerNetMK2 net : activePowerNets) { - - if(net.providerEntries.isEmpty()) continue; - if(net.receiverEntries.isEmpty()) continue; - - long timestamp = System.currentTimeMillis(); - long transferCap = 100_000_000_000_000_00L; // that ought to be enough - - long supply = 0; - long demand = 0; - - for(Entry entry : net.providerEntries.entrySet()) { - IEnergyProviderMK2 provider = entry.getKey(); - if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply += Math.min(provider.getPower(), provider.getConnectionSpeed()); - } - - for(Entry entry : net.receiverEntries.entrySet()) { - IEnergyReceiverMK2 receiver = entry.getKey(); - if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand += Math.min(receiver.getMaxPower() - receiver.getPower(), receiver.getConnectionSpeed()); - } - - double drainScale = 1D; - - if(supply > demand) { - drainScale = (double) demand / (double) supply; - } - - long toTransfer = Math.min(supply, demand); - if(toTransfer > transferCap) toTransfer = transferCap; - if(toTransfer <= 0) continue; - - //TODO: add caching for the ordered lists - List providers = new ArrayList() {{ addAll(net.providerEntries.keySet()); }}; - List receivers = new ArrayList() {{ addAll(net.receiverEntries.keySet()); }}; - receivers.sort(COMP); - - int maxIteration = 1000; - //TODO: ok this implementation is shit but we can clutch this. add a var for the current receiver index and shift that after each transfer so that transfers are spaced out instead of shit getting priority treatment - while(!receivers.isEmpty() && maxIteration > 0) { - maxIteration--; - - IEnergyProviderMK2 src = providers.get(0); - IEnergyReceiverMK2 dest = receivers.get(0); - long toDrain = Math.min((long) (src.getPower() * drainScale), src.getConnectionSpeed()); - long toFill = Math.min(dest.getMaxPower() - dest.getPower(), dest.getConnectionSpeed()); - long finalTransfer = Math.min(toDrain, toFill); - if(finalTransfer <= 0) { - receivers.remove(0); - continue; - } - - finalTransfer -= dest.transferPower(finalTransfer); - src.usePower(finalTransfer); - - toTransfer -= finalTransfer; - if(finalTransfer <= 0) { - receivers.remove(0); - continue; - } - } + net.transferPower(); } } @@ -252,14 +192,4 @@ public class Nodespace { this.recentlyChanged = true; } } - - public static final ReceiverComparator COMP = new ReceiverComparator(); - - public static class ReceiverComparator implements Comparator { - - @Override - public int compare(IEnergyReceiverMK2 o1, IEnergyReceiverMK2 o2) { - return o2.getPriority().ordinal() - o1.getPriority().ordinal(); - } - } } diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index 2f88d8f05..233bf14b0 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -1,10 +1,12 @@ package api.hbm.energymk2; import java.util.ArrayList; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.Map.Entry; import api.hbm.energymk2.Nodespace.PowerNode; @@ -101,4 +103,80 @@ public class PowerNetMK2 { this.receiverEntries.clear(); this.providerEntries.clear(); } + + public void transferPower() { + + int timeout = 3_000; + + if(providerEntries.isEmpty()) return; + if(receiverEntries.isEmpty()) return; + + long timestamp = System.currentTimeMillis(); + long transferCap = 100_000_000_000_000_00L; // that ought to be enough + + long supply = 0; + long demand = 0; + + for(Entry entry : providerEntries.entrySet()) { + IEnergyProviderMK2 provider = entry.getKey(); + if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply += Math.min(provider.getPower(), provider.getConnectionSpeed()); + } + + for(Entry entry : receiverEntries.entrySet()) { + IEnergyReceiverMK2 receiver = entry.getKey(); + if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand += Math.min(receiver.getMaxPower() - receiver.getPower(), receiver.getConnectionSpeed()); + } + + double drainScale = 1D; + + if(supply > demand) { + drainScale = (double) demand / (double) supply; + } + + long toTransfer = Math.min(supply, demand); + if(toTransfer > transferCap) toTransfer = transferCap; + if(toTransfer <= 0) return; + + List providers = new ArrayList() {{ addAll(providerEntries.keySet()); }}; + List receivers = new ArrayList() {{ addAll(receiverEntries.keySet()); }}; + receivers.sort(COMP); + + int maxIteration = 1000; + + //how much the current sender/receiver have already sent/received + long prevSrc = 0; + long prevDest = 0; + + while(!receivers.isEmpty() && !providers.isEmpty() && maxIteration > 0) { + maxIteration--; + + IEnergyProviderMK2 src = providers.get(0); + IEnergyReceiverMK2 dest = receivers.get(0); + + long toDrain = Math.min((long) (src.getPower() * drainScale) + prevSrc, src.getConnectionSpeed()) - prevSrc; + long toFill = Math.min(dest.getMaxPower() - dest.getPower() + prevDest, dest.getConnectionSpeed()) - prevDest; + long finalTransfer = Math.min(toDrain, toFill); + + if(toDrain <= 0) { providers.remove(0); prevSrc = 0; continue; } + if(toFill <= 0) { receivers.remove(0); prevDest = 0; continue; } + + finalTransfer -= dest.transferPower(finalTransfer); + src.usePower(finalTransfer); + + prevSrc += finalTransfer; + prevDest += finalTransfer; + + toTransfer -= finalTransfer; + } + } + + public static final ReceiverComparator COMP = new ReceiverComparator(); + + public static class ReceiverComparator implements Comparator { + + @Override + public int compare(IEnergyReceiverMK2 o1, IEnergyReceiverMK2 o2) { + return o2.getPriority().ordinal() - o1.getPriority().ordinal(); + } + } } From c9c6549340ba38049fadfb29a01e7f39a276ec34 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 9 Apr 2024 16:55:53 +0200 Subject: [PATCH 321/376] everything is falling the fuck apart --- .../java/api/hbm/energy/IEnergyConductor.java | 160 ----------- .../java/api/hbm/energy/IEnergyConnector.java | 128 --------- .../java/api/hbm/energy/IEnergyGenerator.java | 19 -- src/main/java/api/hbm/energy/IEnergyUser.java | 114 -------- src/main/java/api/hbm/energy/IPowerNet.java | 37 --- src/main/java/api/hbm/energy/PowerNet.java | 257 ------------------ .../{energy => energymk2}/IBatteryItem.java | 2 +- .../IEnergyConnectorBlock.java | 2 +- .../hbm/energymk2/IEnergyConnectorMK2.java | 28 +- .../api/hbm/energymk2/IEnergyHandlerMK2.java | 33 +++ .../api/hbm/energymk2/IEnergyProviderMK2.java | 5 +- .../api/hbm/energymk2/IEnergyReceiverMK2.java | 5 +- .../java/api/hbm/energymk2/Nodespace.java | 3 - .../java/api/hbm/fluid/IFluidConnector.java | 2 +- .../api/hbm/{energy => tile}/ILoadedTile.java | 2 +- .../hbm/blocks/generic/BlockCableConnect.java | 2 +- .../com/hbm/blocks/generic/HEVBattery.java | 2 +- .../com/hbm/blocks/machine/DummyOldBase.java | 2 +- .../com/hbm/blocks/machine/FWatzHatch.java | 2 +- .../hbm/blocks/machine/MachineCapacitor.java | 7 +- .../blocks/machine/MachineCapacitorBus.java | 2 +- .../com/hbm/blocks/network/CableDiode.java | 4 +- .../entity/train/EntityRailCarElectric.java | 2 +- .../com/hbm/entity/train/TrainCargoTram.java | 2 +- .../hbm/explosion/ExplosionNukeGeneric.java | 11 +- .../container/ContainerCentrifuge.java | 2 +- .../container/ContainerCombustionEngine.java | 2 +- .../container/ContainerCompressor.java | 2 +- .../container/ContainerCrystallizer.java | 2 +- .../container/ContainerElectricFurnace.java | 2 +- .../container/ContainerElectrolyserFluid.java | 2 +- .../container/ContainerElectrolyserMetal.java | 2 +- .../container/ContainerLaunchPadLarge.java | 2 +- .../container/ContainerMachineArcFurnace.java | 2 +- .../container/ContainerMachineArcWelder.java | 2 +- .../ContainerMachineCatalyticReformer.java | 2 +- .../container/ContainerMachineCyclotron.java | 2 +- .../container/ContainerMachineEPress.java | 2 +- .../container/ContainerMachineExcavator.java | 2 +- .../ContainerMachineExposureChamber.java | 2 +- .../container/ContainerMachineGasFlare.java | 2 +- .../ContainerMachineHydrotreater.java | 2 +- .../container/ContainerMachineRadarNT.java | 2 +- .../container/ContainerMachineTurbineGas.java | 2 +- .../container/ContainerMachineWoodBurner.java | 2 +- .../inventory/container/ContainerMixer.java | 2 +- .../com/hbm/items/armor/ArmorFSBPowered.java | 2 +- .../java/com/hbm/items/food/ItemPancake.java | 2 +- .../com/hbm/items/machine/ItemBattery.java | 2 +- .../hbm/items/machine/ItemSelfcharger.java | 2 +- .../com/hbm/items/special/ItemGlitch.java | 2 +- .../com/hbm/items/tool/ItemFusionCore.java | 2 +- .../hbm/items/tool/ItemSwordAbilityPower.java | 2 +- .../hbm/items/tool/ItemToolAbilityPower.java | 2 +- .../weapon/gununified/ItemEnergyGunBase.java | 2 +- src/main/java/com/hbm/lib/Library.java | 10 +- .../java/com/hbm/packet/AuxButtonPacket.java | 1 - .../hbm/tileentity/TileEntityLoadedBase.java | 2 +- .../tileentity/TileEntityProxyConductor.java | 80 +----- .../bomb/TileEntityNukeBalefire.java | 2 +- .../tileentity/machine/TileEntityCharger.java | 2 +- .../machine/TileEntityForceField.java | 2 +- .../machine/TileEntityMachineAssembler.java | 2 +- .../TileEntityMachineBoilerElectric.java | 2 +- .../TileEntityMachineCrystallizer.java | 2 +- .../machine/TileEntityMachineDiesel.java | 2 +- .../TileEntityMachineElectricFurnace.java | 2 +- ...eEntityMachineSchrabidiumTransmutator.java | 2 +- .../TileEntityMachineSeleniumEngine.java | 2 +- .../machine/TileEntityMachineShredder.java | 2 +- .../TileEntityMachineShredderLarge.java | 2 +- .../machine/TileEntityMachineTurbine.java | 2 +- .../machine/oil/TileEntityOilDrillBase.java | 4 +- .../storage/TileEntityMachineBattery.java | 1 + .../network/TileEntityCableBaseNT.java | 84 +----- .../com/hbm/util/CompatEnergyControl.java | 8 +- .../java/com/hbm/util/CompatExternal.java | 15 +- 77 files changed, 125 insertions(+), 999 deletions(-) delete mode 100644 src/main/java/api/hbm/energy/IEnergyConductor.java delete mode 100644 src/main/java/api/hbm/energy/IEnergyConnector.java delete mode 100644 src/main/java/api/hbm/energy/IEnergyGenerator.java delete mode 100644 src/main/java/api/hbm/energy/IEnergyUser.java delete mode 100644 src/main/java/api/hbm/energy/IPowerNet.java delete mode 100644 src/main/java/api/hbm/energy/PowerNet.java rename src/main/java/api/hbm/{energy => energymk2}/IBatteryItem.java (98%) rename src/main/java/api/hbm/{energy => energymk2}/IEnergyConnectorBlock.java (95%) create mode 100644 src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java rename src/main/java/api/hbm/{energy => tile}/ILoadedTile.java (72%) diff --git a/src/main/java/api/hbm/energy/IEnergyConductor.java b/src/main/java/api/hbm/energy/IEnergyConductor.java deleted file mode 100644 index e6195acb8..000000000 --- a/src/main/java/api/hbm/energy/IEnergyConductor.java +++ /dev/null @@ -1,160 +0,0 @@ -package api.hbm.energy; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -/** - * For compatible cables with no buffer, using the IPowertNet. You can make your own cables with IEnergyConnector as well, but they won't join their power network. - * @author hbm - */ -public interface IEnergyConductor extends IEnergyConnector { - - public IPowerNet getPowerNet(); - - public void setPowerNet(IPowerNet network); - - /** - * A unique identifier for every conductor tile. Used to prevent duplicates when loading previously persistent unloaded tiles. - * @return - */ - public default int getIdentity() { - return getIdentityFromTile((TileEntity) this); - } - - public static int getIdentityFromTile(TileEntity te) { - return getIdentityFromPos(te.xCoord, te.yCoord, te.zCoord); - } - - public static int getIdentityFromPos(int x, int y, int z) { - final int prime = 27644437; // must be this large to minimize localized collisions - int result = 1; - result = prime * result + x; - result = prime * result + y; - result = prime * result + z; - return result; - } - - /** - * Whether the link should be part of reeval when the network is changed. - * I.e. if this link should join any of the new networks (FALSE for switches that are turned off for example) - * @return - */ - public default boolean canReevaluate() { - return !((TileEntity) this).isInvalid(); - } - - /** - * When a link leaves the network, the net has to manually calculate the resulting networks. - * Each link has to decide what other links will join the same net. - * @param copy - */ - public default void reevaluate(HashMap copy, HashMap proxies) { - - for(int[] pos : getConnectionPoints()) { - int newX = pos[0]; - int newY = pos[1]; - int newZ = pos[2]; - int id = IEnergyConductor.getIdentityFromPos(newX, newY, newZ); - - IEnergyConductor neighbor = copy.get(id); - - if(neighbor == null) { - Integer newId = proxies.get(id); - - if(newId != null) { - neighbor = copy.get(newId); - } - } - - if(neighbor != null && this.canReevaluate() && neighbor.canReevaluate()) { - - if(neighbor.getPowerNet() != null) { - - //neighbor net and no self net - if(this.getPowerNet() == null) { - neighbor.getPowerNet().joinLink(this); - //neighbor net and self net - } else { - this.getPowerNet().joinNetworks(neighbor.getPowerNet()); - } - - //bidirectional re-eval, experimental and technically optional, only useful as a fallback - } /*else { - - //no neighbor net and no self net - if(this.getPowerNet() == null) { - this.setPowerNet(new PowerNet().joinLink(this)); - neighbor.setPowerNet(this.getPowerNet().joinLink(neighbor)); - //no neighbor net and self net - } else { - neighbor.setPowerNet(this.getPowerNet().joinLink(neighbor)); - } - }*/ - - //extensive debugging has shown that bidirectional re-eval is complete shit - } - } - } - - /** - * Creates a list of positions for the re-eval process. In short - what positions should be considered as connected. - * Also used by pylons to quickly figure out what positions to connect to. - * DEFAULT: Connects to all six neighboring blocks. - * @return - */ - public default List getConnectionPoints() { - - List pos = new ArrayList(); - TileEntity tile = (TileEntity) this; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - int newX = tile.xCoord + dir.offsetX; - int newY = tile.yCoord + dir.offsetY; - int newZ = tile.zCoord + dir.offsetZ; - - pos.add(new int[] {newX, newY, newZ}); - } - - return pos; - } - - /** - * Since isLoaded is only currently used for weeding out unwanted subscribers, and cables shouldn't (although technically can) be - * subscribers, we just default to true because I don't feel like wasting time implementing things that we don't actually need. - * Perhaps this indicates a minor flaw in the new API, but I physically lack the ability to worry about it. - */ - @Override - public default boolean isLoaded() { - return true; - } - - //TODO: check if this standard implementation doesn't break anything (it shouldn't but right now it's a bit redundant) also: remove duplicate implementations - @Override - public default long transferPower(long power) { - - if(this.getPowerNet() == null) - return power; - - return this.getPowerNet().transferPower(power); - } - - /** - * Returns whether the conductor has mutliblock proxies which need to be taken into consideration for re-eval. - * @return - */ - public default boolean hasProxies() { - return false; - } - - /** - * Returns the identities (position-based) of proxies which resolve into the conductor's own identity. - * @return - */ - public default List getProxies() { - return new ArrayList(); - } -} diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java deleted file mode 100644 index 311a09ff8..000000000 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ /dev/null @@ -1,128 +0,0 @@ -package api.hbm.energy; - -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.util.CompatEnergyControl; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -/** - * For anything that connects to power and can be transferred power to, the bottom-level interface. - * This is mean for TILE ENTITIES - * @author hbm - */ -public interface IEnergyConnector extends ILoadedTile { - - /** - * Returns the amount of power that remains in the source after transfer - * @param power - * @return - */ - public long transferPower(long power); - - /** - * Whether the given side can be connected to - * dir refers to the side of this block, not the connecting block doing the check - * @param dir - * @return - */ - public default boolean canConnect(ForgeDirection dir) { - return dir != ForgeDirection.UNKNOWN; - } - - /** - * The current power of either the machine or an entire network - * @return - */ - public long getPower(); - - /** - * The capacity of either the machine or an entire network - * @return - */ - public long getMaxPower(); - - public default long getTransferWeight() { - return Math.max(getMaxPower() - getPower(), 0); - } - - /** - * Basic implementation of subscribing to a nearby power grid - * @param world - * @param x - * @param y - * @param z - */ - public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) { - - TileEntity te = world.getTileEntity(x, y, z); - boolean red = false; - - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(!con.canConnect(dir.getOpposite())) - return; - - if(con.getPowerNet() != null && !con.getPowerNet().isSubscribed(this)) - con.getPowerNet().subscribe(this); - - if(con.getPowerNet() != null) - red = true; - } - - if(particleDebug) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "network"); - data.setString("mode", "power"); - double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1)); - data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1)); - data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1)); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); - } - } - - public default void tryUnsubscribe(World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); - } - } - - public static final boolean particleDebug = false; - - public default Vec3 getDebugParticlePos() { - TileEntity te = (TileEntity) this; - Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); - return vec; - } - - /** Shortcut for adding energy data to tiles that implement IInfoProviderEC, should NOT be used externally for compat! Use IInfoProviderEC.provideInfo() instead! */ - public default void provideInfoForEC(NBTTagCompound data) { - data.setLong(CompatEnergyControl.L_ENERGY_HE, this.getPower()); - data.setLong(CompatEnergyControl.L_CAPACITY_HE, this.getMaxPower()); - } - - public default ConnectionPriority getPriority() { - return ConnectionPriority.NORMAL; - } - - public enum ConnectionPriority { - LOW, - NORMAL, - HIGH - } -} diff --git a/src/main/java/api/hbm/energy/IEnergyGenerator.java b/src/main/java/api/hbm/energy/IEnergyGenerator.java deleted file mode 100644 index 37db6370d..000000000 --- a/src/main/java/api/hbm/energy/IEnergyGenerator.java +++ /dev/null @@ -1,19 +0,0 @@ -package api.hbm.energy; - -public interface IEnergyGenerator extends IEnergyUser { - - /** - * Standard implementation for machines that can only send energy but never receive it. - * @param power - */ - @Override - public default long transferPower(long power) { - return power; - } - - /* should stop making non-receivers from interfering by applying their weight which doesn't even matter */ - @Override - public default long getTransferWeight() { - return 0; - } -} diff --git a/src/main/java/api/hbm/energy/IEnergyUser.java b/src/main/java/api/hbm/energy/IEnergyUser.java deleted file mode 100644 index 4ca8e369a..000000000 --- a/src/main/java/api/hbm/energy/IEnergyUser.java +++ /dev/null @@ -1,114 +0,0 @@ -package api.hbm.energy; - -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -/** - * For machines and things that have an energy buffer and are affected by EMPs - * @author hbm - */ -public interface IEnergyUser extends IEnergyConnector { - - /** - * Not to be used for actual energy transfer, rather special external things like EMPs and sync packets - */ - public void setPower(long power); - - /** - * Standard implementation for power transfer. - * Turns out you can override interfaces to provide a default implementation. Neat. - * @param long power - */ - @Override - public default long transferPower(long power) { - - if(this.getPower() + power > this.getMaxPower()) { - - long overshoot = this.getPower() + power - this.getMaxPower(); - this.setPower(this.getMaxPower()); - return overshoot; - } - - if(this.getPower() + power < 0) return 0; //safeguard for negative energy or overflows - - this.setPower(this.getPower() + power); - - return 0; - } - - /** - * Standard implementation of sending power - * @param world - * @param x - * @param y - * @param z - * @param dir - */ - public default void sendPower(World world, int x, int y, int z, ForgeDirection dir) { - - TileEntity te = world.getTileEntity(x, y, z); - boolean wasSubscribed = false; - boolean red = false; - - // first we make sure we're not subscribed to the network that we'll be supplying - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.canConnect(dir.getOpposite()) && con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().unsubscribe(this); - wasSubscribed = true; - } - } - - //then we add energy - if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - - if(con.canConnect(dir.getOpposite())) { - long oldPower = this.getPower(); - long transfer = oldPower - con.transferPower(oldPower); - this.setPower(oldPower - transfer); - red = true; - } - } - - //then we subscribe if possible - if(wasSubscribed && te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && !con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().subscribe(this); - } - } - - if(particleDebug) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "network"); - data.setString("mode", "power"); - double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1)); - data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1)); - data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1)); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); - } - } - - public default void updateStandardConnections(World world, TileEntity te) { - updateStandardConnections(world, te.xCoord, te.yCoord, te.zCoord); - } - - public default void updateStandardConnections(World world, int x, int y, int z) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - this.trySubscribe(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir); - } - } -} diff --git a/src/main/java/api/hbm/energy/IPowerNet.java b/src/main/java/api/hbm/energy/IPowerNet.java deleted file mode 100644 index eb9848226..000000000 --- a/src/main/java/api/hbm/energy/IPowerNet.java +++ /dev/null @@ -1,37 +0,0 @@ -package api.hbm.energy; - -import java.math.BigInteger; -import java.util.List; - -/** - * Not mandatory to use, but making your cables IPowerNet-compliant will allow them to connect to NTM cables. - * Cables will still work without it as long as they implement IEnergyConductor (or even IEnergyConnector) + self-built network code - * @author hbm - */ -public interface IPowerNet { - - public void joinNetworks(IPowerNet network); - - public IPowerNet joinLink(IEnergyConductor conductor); - public void leaveLink(IEnergyConductor conductor); - - public void subscribe(IEnergyConnector connector); - public void unsubscribe(IEnergyConnector connector); - public boolean isSubscribed(IEnergyConnector connector); - - public void destroy(); - - /** - * When a link is removed, instead of destroying the network, causing it to be recreated from currently loaded conductors, - * we re-evaluate it, creating new nets based on the previous links. - */ - public void reevaluate(); - - public boolean isValid(); - - public List getLinks(); - public List getSubscribers(); - - public long transferPower(long power); - public BigInteger getTotalTransfer(); -} diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java deleted file mode 100644 index 6d55c2f0c..000000000 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ /dev/null @@ -1,257 +0,0 @@ -package api.hbm.energy; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import com.hbm.config.GeneralConfig; - -import api.hbm.energy.IEnergyConnector.ConnectionPriority; -import net.minecraft.tileentity.TileEntity; - -/** - * Basic IPowerNet implementation. The behavior of this demo might change inbetween releases, but the API remains the same. - * For more consistency please implement your own IPowerNet. - * @author hbm - */ -public class PowerNet implements IPowerNet { - - private boolean valid = true; - private HashMap links = new HashMap(); - private HashMap proxies = new HashMap(); - private List subscribers = new ArrayList(); - - public static List trackingInstances = null; - protected BigInteger totalTransfer = BigInteger.ZERO; - - @Override - public void joinNetworks(IPowerNet network) { - - if(network == this) - return; //wtf?! - - for(IEnergyConductor conductor : network.getLinks()) { - joinLink(conductor); - } - network.getLinks().clear(); - - for(IEnergyConnector connector : network.getSubscribers()) { - this.subscribe(connector); - } - - network.destroy(); - } - - @Override - public IPowerNet joinLink(IEnergyConductor conductor) { - - if(conductor.getPowerNet() != null) - conductor.getPowerNet().leaveLink(conductor); - - conductor.setPowerNet(this); - int identity = conductor.getIdentity(); - this.links.put(identity, conductor); - - if(conductor.hasProxies()) { - for(Integer i : conductor.getProxies()) { - this.proxies.put(i, identity); - } - } - - return this; - } - - @Override - public void leaveLink(IEnergyConductor conductor) { - conductor.setPowerNet(null); - int identity = conductor.getIdentity(); - this.links.remove(identity); - - if(conductor.hasProxies()) { - for(Integer i : conductor.getProxies()) { - this.proxies.remove(i); - } - } - } - - @Override - public void subscribe(IEnergyConnector connector) { - this.subscribers.add(connector); - } - - @Override - public void unsubscribe(IEnergyConnector connector) { - this.subscribers.remove(connector); - } - - @Override - public boolean isSubscribed(IEnergyConnector connector) { - return this.subscribers.contains(connector); - } - - @Override - public List getLinks() { - List linkList = new ArrayList(); - linkList.addAll(this.links.values()); - return linkList; - } - - public HashMap getProxies() { - HashMap proxyCopy = new HashMap(proxies); - return proxyCopy; - } - - @Override - public List getSubscribers() { - return this.subscribers; - } - - @Override - public void destroy() { - this.valid = false; - this.subscribers.clear(); - - for(IEnergyConductor link : this.links.values()) { - link.setPowerNet(null); - } - - this.links.clear(); - } - - @Override - public boolean isValid() { - return this.valid; - } - - @Override - public BigInteger getTotalTransfer() { - return this.totalTransfer; - } - - public long lastCleanup = System.currentTimeMillis(); - - @Override - public long transferPower(long power) { - - /*if(lastCleanup + 45 < System.currentTimeMillis()) { - cleanup(this.subscribers); - lastCleanup = System.currentTimeMillis(); - }*/ - - List cache = new ArrayList(); - if(trackingInstances != null && !trackingInstances.isEmpty()) { - cache.addAll(trackingInstances); - } - - trackingInstances = new ArrayList(); - trackingInstances.add(this); - long result = fairTransfer(this.subscribers, power); - trackingInstances.addAll(cache); - return result; - } - - public static void cleanup(List subscribers) { - - subscribers.removeIf(x -> - x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() || !x.isLoaded() - ); - } - - public static long fairTransfer(List subscribers, long power) { - - if(power <= 0) return 0; - - if(subscribers.isEmpty()) - return power; - - cleanup(subscribers); - - ConnectionPriority[] priorities = new ConnectionPriority[] {ConnectionPriority.HIGH, ConnectionPriority.NORMAL, ConnectionPriority.LOW}; - - long totalTransfer = 0; - - for(ConnectionPriority p : priorities) { - - List subList = new ArrayList(); - subscribers.forEach(x -> { - if(x.getPriority() == p) { - subList.add(x); - } - }); - - if(subList.isEmpty()) - continue; - - List weight = new ArrayList(); - long totalReq = 0; - - for(IEnergyConnector con : subList) { - long req = con.getTransferWeight(); - weight.add(req); - totalReq += req; - } - - if(totalReq == 0) - continue; - - long totalGiven = 0; - - for(int i = 0; i < subList.size(); i++) { - IEnergyConnector con = subList.get(i); - long req = weight.get(i); - double fraction = (double)req / (double)totalReq; - - long given = (long) Math.floor(fraction * power); - - totalGiven += (given - con.transferPower(given)); - - if(con instanceof TileEntity) { - TileEntity tile = (TileEntity) con; - tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); - } - } - - power -= totalGiven; - totalTransfer += totalGiven; - } - - if(trackingInstances != null) { - - for(int i = 0; i < trackingInstances.size(); i++) { - PowerNet net = trackingInstances.get(i); - net.totalTransfer = net.totalTransfer.add(BigInteger.valueOf(totalTransfer)); - } - - trackingInstances.clear(); - } - - return power; - } - - @Override - public void reevaluate() { - - if(!GeneralConfig.enableReEval) { - this.destroy(); - return; - } - - HashMap copy = new HashMap(links); - HashMap proxyCopy = new HashMap(proxies); - - for(IEnergyConductor link : copy.values()) { - this.leaveLink(link); - } - - for(IEnergyConductor link : copy.values()) { - - link.setPowerNet(null); - link.reevaluate(copy, proxyCopy); - - if(link.getPowerNet() == null) { - link.setPowerNet(new PowerNet().joinLink(link)); - } - } - } -} diff --git a/src/main/java/api/hbm/energy/IBatteryItem.java b/src/main/java/api/hbm/energymk2/IBatteryItem.java similarity index 98% rename from src/main/java/api/hbm/energy/IBatteryItem.java rename to src/main/java/api/hbm/energymk2/IBatteryItem.java index 827f88a8e..19202cfa1 100644 --- a/src/main/java/api/hbm/energy/IBatteryItem.java +++ b/src/main/java/api/hbm/energymk2/IBatteryItem.java @@ -1,4 +1,4 @@ -package api.hbm.energy; +package api.hbm.energymk2; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/api/hbm/energy/IEnergyConnectorBlock.java b/src/main/java/api/hbm/energymk2/IEnergyConnectorBlock.java similarity index 95% rename from src/main/java/api/hbm/energy/IEnergyConnectorBlock.java rename to src/main/java/api/hbm/energymk2/IEnergyConnectorBlock.java index 8583dcc52..d8de0c379 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnectorBlock.java +++ b/src/main/java/api/hbm/energymk2/IEnergyConnectorBlock.java @@ -1,4 +1,4 @@ -package api.hbm.energy; +package api.hbm.energymk2; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java index 2245f57ff..4c2246ee5 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java @@ -1,14 +1,8 @@ package api.hbm.energymk2; -import com.hbm.util.CompatEnergyControl; - -import api.hbm.energy.ILoadedTile; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; -public interface IEnergyConnectorMK2 extends ILoadedTile { +public interface IEnergyConnectorMK2 { /** * Whether the given side can be connected to @@ -19,24 +13,4 @@ public interface IEnergyConnectorMK2 extends ILoadedTile { public default boolean canConnect(ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN; } - - public long getPower(); - public long getMaxPower(); - - public default long getConnectionSpeed() { - return this.getMaxPower(); - } - - public static final boolean particleDebug = false; - - public default Vec3 getDebugParticlePosMK2() { - TileEntity te = (TileEntity) this; - Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); - return vec; - } - - public default void provideInfoForECMK2(NBTTagCompound data) { - data.setLong(CompatEnergyControl.L_ENERGY_HE, this.getPower()); - data.setLong(CompatEnergyControl.L_CAPACITY_HE, this.getMaxPower()); - } } diff --git a/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java b/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java new file mode 100644 index 000000000..86b915b2c --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java @@ -0,0 +1,33 @@ +package api.hbm.energymk2; + +import com.hbm.util.CompatEnergyControl; + +import api.hbm.tile.ILoadedTile; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; + +/** DO NOT USE DIRECTLY! This is simply the common ancestor to providers and receivers, because all this behavior has to be excluded from conductors! */ +public interface IEnergyHandlerMK2 extends IEnergyConnectorMK2, ILoadedTile { + + public long getPower(); + public void setPower(long power); + public long getMaxPower(); + + public default long getConnectionSpeed() { + return this.getMaxPower(); + } + + public static final boolean particleDebug = false; + + public default Vec3 getDebugParticlePosMK2() { + TileEntity te = (TileEntity) this; + Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); + return vec; + } + + public default void provideInfoForECMK2(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_ENERGY_HE, this.getPower()); + data.setLong(CompatEnergyControl.L_CAPACITY_HE, this.getMaxPower()); + } +} diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index d45feb6f9..a678cf969 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -10,15 +10,14 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public interface IEnergyProviderMK2 extends IEnergyConnectorMK2 { +/** If it sends energy, use this */ +public interface IEnergyProviderMK2 extends IEnergyHandlerMK2 { /** Uses up available power, default implementation has no sanity checking, make sure that the requested power is lequal to the current power */ public default void usePower(long power) { this.setPower(this.getPower() - power); } - public void setPower(long power); - public default void tryProvide(World world, int x, int y, int z, ForgeDirection dir) { TileEntity te = world.getTileEntity(x, y, z); diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index dfb32f097..a7271294d 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -10,7 +10,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { +/** If it receives energy, use this */ +public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2 { public default long transferPower(long power) { if(power + this.getPower() <= this.getMaxPower()) { @@ -23,8 +24,6 @@ public interface IEnergyReceiverMK2 extends IEnergyConnectorMK2 { return overshoot; } - public void setPower(long power); - public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) { TileEntity te = world.getTileEntity(x, y, z); diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index ae0caae29..48afb9b56 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -1,10 +1,7 @@ package api.hbm.energymk2; -import java.util.ArrayList; -import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; -import java.util.List; import java.util.Map.Entry; import java.util.Set; diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index a51bcdeb2..a9c900635 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -4,7 +4,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import api.hbm.energy.ILoadedTile; +import api.hbm.tile.ILoadedTile; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/api/hbm/energy/ILoadedTile.java b/src/main/java/api/hbm/tile/ILoadedTile.java similarity index 72% rename from src/main/java/api/hbm/energy/ILoadedTile.java rename to src/main/java/api/hbm/tile/ILoadedTile.java index 1f6d0f88b..65ad9d14c 100644 --- a/src/main/java/api/hbm/energy/ILoadedTile.java +++ b/src/main/java/api/hbm/tile/ILoadedTile.java @@ -1,4 +1,4 @@ -package api.hbm.energy; +package api.hbm.tile; public interface ILoadedTile { diff --git a/src/main/java/com/hbm/blocks/generic/BlockCableConnect.java b/src/main/java/com/hbm/blocks/generic/BlockCableConnect.java index c4215befa..c7999fda1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCableConnect.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCableConnect.java @@ -2,7 +2,7 @@ package com.hbm.blocks.generic; import com.hbm.blocks.BlockBase; -import api.hbm.energy.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorBlock; import net.minecraft.block.material.Material; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/com/hbm/blocks/generic/HEVBattery.java b/src/main/java/com/hbm/blocks/generic/HEVBattery.java index dbaa4f89d..e65f03038 100644 --- a/src/main/java/com/hbm/blocks/generic/HEVBattery.java +++ b/src/main/java/com/hbm/blocks/generic/HEVBattery.java @@ -3,7 +3,7 @@ package com.hbm.blocks.generic; import com.hbm.items.armor.ArmorFSB; import com.hbm.items.armor.ArmorFSBPowered; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/DummyOldBase.java b/src/main/java/com/hbm/blocks/machine/DummyOldBase.java index 4d5c183fd..da688e90f 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyOldBase.java +++ b/src/main/java/com/hbm/blocks/machine/DummyOldBase.java @@ -7,7 +7,7 @@ import com.hbm.interfaces.IMultiblock; import com.hbm.inventory.fluid.FluidType; import com.hbm.tileentity.machine.TileEntityDummy; -import api.hbm.energy.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorBlock; import api.hbm.fluid.IFluidConnectorBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; diff --git a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java b/src/main/java/com/hbm/blocks/machine/FWatzHatch.java index 69a7e5871..d93735c53 100644 --- a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java +++ b/src/main/java/com/hbm/blocks/machine/FWatzHatch.java @@ -8,7 +8,7 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityFWatzCore; -import api.hbm.energy.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorBlock; import api.hbm.fluid.IFluidConnectorBlock; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index be083f6e3..ae94aa6d1 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -17,7 +17,8 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -145,7 +146,7 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP player.addExhaustion(0.025F); } - public static class TileEntityCapacitor extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver, IPersistentNBT { + public static class TileEntityCapacitor extends TileEntityLoadedBase implements IEnergyProviderMK2, IEnergyReceiverMK2, INBTPacketReceiver, IPersistentNBT { public long power; protected long maxPower; @@ -190,7 +191,7 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP long preSend = power; if(pos != null && last != null) { this.tryUnsubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ()); - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), last); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), last); } long sent = preSend - power; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java index fa7aa8dbe..dade916fa 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; -import api.hbm.energy.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorBlock; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/network/CableDiode.java b/src/main/java/com/hbm/blocks/network/CableDiode.java index 6771ccf2d..3cdbb238e 100644 --- a/src/main/java/com/hbm/blocks/network/CableDiode.java +++ b/src/main/java/com/hbm/blocks/network/CableDiode.java @@ -10,9 +10,7 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; -import api.hbm.energy.IEnergyUser; -import api.hbm.energy.IEnergyConnector.ConnectionPriority; -import api.hbm.energy.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorBlock; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java index 46643b029..bf794147c 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java @@ -2,7 +2,7 @@ package com.hbm.entity.train; import com.hbm.items.ModItems; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.item.ItemStack; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 3b64d7679..99f2c5c05 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -7,7 +7,7 @@ import com.hbm.inventory.gui.GuiInfoContainer; import com.hbm.lib.RefStrings; import com.hbm.tileentity.IGUIProvider; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java index 1a62d8865..7d1f82a35 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java @@ -31,7 +31,7 @@ import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.util.ArmorUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyHandlerMK2; import cofh.api.energy.IEnergyProvider; public class ExplosionNukeGeneric { @@ -425,12 +425,9 @@ public class ExplosionNukeGeneric { Block b = world.getBlock(x,y,z); TileEntity te = world.getTileEntity(x, y, z); - if (te != null && te instanceof IEnergyUser) { - - ((IEnergyUser)te).setPower(0); - - if(random.nextInt(5) < 1) - world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); + if (te != null && te instanceof IEnergyHandlerMK2) { + ((IEnergyHandlerMK2)te).setPower(0); + if(random.nextInt(5) < 1) world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } if (te != null && te instanceof IEnergyProvider) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java index 999bce6f6..58535bd9b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java @@ -6,7 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java b/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java index 3ba9022e5..492bcb866 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java @@ -5,7 +5,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineCombustionEngine; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java index 3f81b4f68..6e569938d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java @@ -3,7 +3,7 @@ package com.hbm.inventory.container; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineCompressor; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java index 55f73ebd7..337bbea28 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java @@ -7,7 +7,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java index 19ee67510..593b1feb5 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java @@ -6,7 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java index f9fcff491..05a7ae646 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java +++ b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java @@ -6,7 +6,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityElectrolyser; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java index 15c8b9565..a376d01f5 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java +++ b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java @@ -5,7 +5,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityElectrolyser; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java index b319759f1..f45fd6d79 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java @@ -5,7 +5,7 @@ import com.hbm.inventory.SlotTakeOnly; import com.hbm.items.ModItems; import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import api.hbm.item.IDesignatorItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java index 792fc0419..7cf2e32e5 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java @@ -4,7 +4,7 @@ import com.hbm.inventory.SlotSmelting; import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java index 701d718bf..19ff1155c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java @@ -7,7 +7,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineArcWelder; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java index 41b30d98e..6994b80cc 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java @@ -5,7 +5,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticReformer; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java index 632769cdf..7251c9623 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java @@ -9,7 +9,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCyclotron; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineEPress.java b/src/main/java/com/hbm/inventory/container/ContainerMachineEPress.java index c2cfea587..020eb7ac4 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineEPress.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineEPress.java @@ -7,7 +7,7 @@ import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemStamp; import com.hbm.tileentity.machine.TileEntityMachineEPress; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java index c55fd5400..01f424cce 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java @@ -4,7 +4,7 @@ import com.hbm.inventory.SlotTakeOnly; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineExcavator; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java index c4dd07df6..913dc36a2 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java @@ -6,7 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java index 5165f4e37..37f444835 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java @@ -5,7 +5,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java b/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java index 375e0d753..d48ca954b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java @@ -5,7 +5,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.oil.TileEntityMachineHydrotreater; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java index 0bd1f475b..ea8efe275 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java @@ -3,7 +3,7 @@ package com.hbm.inventory.container; import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java index b1aa96ca1..5507df3c5 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java @@ -5,7 +5,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.items.machine.ItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java index 73684e642..f893fb23f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java @@ -4,7 +4,7 @@ import com.hbm.inventory.SlotTakeOnly; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMixer.java b/src/main/java/com/hbm/inventory/container/ContainerMixer.java index dcbcdd17b..0242b916b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMixer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMixer.java @@ -4,7 +4,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineMixer; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index 139df77fe..0daddf0fb 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/items/food/ItemPancake.java b/src/main/java/com/hbm/items/food/ItemPancake.java index f3bbc368d..784ee8995 100644 --- a/src/main/java/com/hbm/items/food/ItemPancake.java +++ b/src/main/java/com/hbm/items/food/ItemPancake.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index 4f0fda9a7..cefa97fce 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.items.ModItems; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; diff --git a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java index d8b54f7fe..67c05fb7b 100644 --- a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java +++ b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index 9942c4754..715eacd17 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -12,7 +12,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; diff --git a/src/main/java/com/hbm/items/tool/ItemFusionCore.java b/src/main/java/com/hbm/items/tool/ItemFusionCore.java index afa388fa5..473f6f62b 100644 --- a/src/main/java/com/hbm/items/tool/ItemFusionCore.java +++ b/src/main/java/com/hbm/items/tool/ItemFusionCore.java @@ -6,7 +6,7 @@ import com.hbm.items.armor.ArmorFSB; import com.hbm.items.armor.ArmorFSBPowered; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java index 3d6313596..674fb7572 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java index 80fb5fa87..52b8686b4 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java index b5e040bb3..d93a73f4a 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java +++ b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java @@ -19,7 +19,7 @@ import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.util.BobMathUtil; import com.hbm.util.ChatBuilder; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index cd0059185..bccf0f075 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -17,9 +17,9 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyInventory; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IEnergyConnectorBlock; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorMK2; import api.hbm.fluid.IFluidConnector; import api.hbm.fluid.IFluidConnectorBlock; import net.minecraft.block.Block; @@ -118,8 +118,8 @@ public class Library { TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; + if(te instanceof IEnergyConnectorMK2) { + IEnergyConnectorMK2 con = (IEnergyConnectorMK2) te; if(con.canConnect(dir.getOpposite() /* machine's connecting side */)) return true; diff --git a/src/main/java/com/hbm/packet/AuxButtonPacket.java b/src/main/java/com/hbm/packet/AuxButtonPacket.java index 1241363c1..e2965706e 100644 --- a/src/main/java/com/hbm/packet/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/AuxButtonPacket.java @@ -15,7 +15,6 @@ import com.hbm.tileentity.machine.TileEntitySoyuzLauncher; import com.hbm.tileentity.machine.storage.TileEntityBarrel; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; -import api.hbm.energy.IEnergyConnector.ConnectionPriority; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; diff --git a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java index cb529b2d9..11ec8ddd1 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java @@ -2,7 +2,7 @@ package com.hbm.tileentity; import com.hbm.sound.AudioWrapper; -import api.hbm.energy.ILoadedTile; +import api.hbm.tile.ILoadedTile; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java b/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java index 1bcbaa6cb..f7b16aec9 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java @@ -1,87 +1,11 @@ package com.hbm.tileentity; -import java.util.ArrayList; -import java.util.List; +import api.hbm.energymk2.IEnergyConnectorMK2; -import api.hbm.energy.IEnergyConductor; -import api.hbm.energy.IPowerNet; -import net.minecraft.tileentity.TileEntity; - -public class TileEntityProxyConductor extends TileEntityProxyBase implements IEnergyConductor { +public class TileEntityProxyConductor extends TileEntityProxyBase implements IEnergyConnectorMK2 { @Override public boolean canUpdate() { return false; } - - @Override - public long transferPower(long power) { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).transferPower(power); - } - - return 0; - } - - @Override - public long getPower() { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).getPower(); - } - - return 0; - } - - @Override - public long getMaxPower() { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).getMaxPower(); - } - - return 0; - } - - @Override - public IPowerNet getPowerNet() { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).getPowerNet(); - } - - return null; - } - - @Override - public void setPowerNet(IPowerNet network) { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - ((IEnergyConductor)te).setPowerNet(network); - } - } - - @Override - public List getConnectionPoints() { - - /*TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).getConnectionPoints(); - }*/ - - /* Proxy TE doesn't need to implement proxying here because the conductor main TE already has a network-specific proxying system */ - return new ArrayList(); - } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java index 829898ae3..51bef052f 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java @@ -8,7 +8,7 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java index 9e47668de..943cec0d2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java @@ -7,8 +7,8 @@ import java.util.Random; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java index 6259e1eb1..c9c22c014 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java @@ -12,8 +12,8 @@ import com.hbm.packet.TEFFPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index d0bd26ea0..89a674740 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -20,7 +20,7 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index e29757724..7830b63bb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -21,8 +21,8 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 5e6d51bbe..c231fe7ce 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -22,8 +22,8 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index cf2e88d8a..aec3af948 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -25,8 +25,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IBatteryItem; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index a790d6265..e824f00c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -14,8 +14,8 @@ import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.I18nUtil; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index 83b516c43..638971d73 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -12,8 +12,8 @@ import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index d366b287f..f31be1e46 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -25,8 +25,8 @@ import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IBatteryItem; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index ab6c81d37..82bb816ea 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -10,8 +10,8 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java index 66454362c..b843ea365 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java @@ -5,7 +5,7 @@ import java.util.Random; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 543f471eb..867a09d8b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -16,8 +16,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IBatteryItem; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 940cb14d5..b61115d65 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -24,7 +24,7 @@ import com.hbm.util.Tuple; import com.hbm.util.Tuple.Triplet; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -35,7 +35,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { +public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { public int indicator = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 21b8f7825..261de2700 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.storage; import api.hbm.energy.*; +import api.hbm.energymk2.IBatteryItem; import api.hbm.tile.IInfoProviderEC; import com.hbm.blocks.machine.MachineBattery; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java index 60848881b..1953880ba 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java @@ -1,34 +1,18 @@ package com.hbm.tileentity.network; -import api.hbm.energy.IEnergyConductor; -import api.hbm.energy.IPowerNet; -import api.hbm.energy.PowerNet; import api.hbm.energymk2.IEnergyConductorMK2; import api.hbm.energymk2.Nodespace; import api.hbm.energymk2.Nodespace.PowerNode; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCableBaseNT extends TileEntity implements IEnergyConductor, IEnergyConductorMK2 { +public class TileEntityCableBaseNT extends TileEntity implements IEnergyConductorMK2 { - protected IPowerNet network; protected PowerNode node; @Override public void updateEntity() { - if(!worldObj.isRemote && canUpdate()) { - - //we got here either because the net doesn't exist or because it's not valid, so that's safe to assume - this.setPowerNet(null); - - this.connect(); - - if(this.getPowerNet() == null) { - this.setPowerNet(new PowerNet().joinLink(this)); - } - } - if(!worldObj.isRemote) { if(this.node == null || this.node.expired) { @@ -45,86 +29,20 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto public void onNodeDestroyedCallback() { this.node = null; } - - protected void connect() { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - if(te instanceof IEnergyConductor) { - - IEnergyConductor conductor = (IEnergyConductor) te; - - if(!conductor.canConnect(dir.getOpposite())) - continue; - - if(this.getPowerNet() == null && conductor.getPowerNet() != null) { - conductor.getPowerNet().joinLink(this); - } - - if(this.getPowerNet() != null && conductor.getPowerNet() != null && this.getPowerNet() != conductor.getPowerNet()) { - conductor.getPowerNet().joinNetworks(this.getPowerNet()); - } - } - } - } @Override public void invalidate() { super.invalidate(); if(!worldObj.isRemote) { - if(this.network != null) { - this.network.reevaluate(); - this.network = null; - } - if(this.node != null) { Nodespace.destroyNode(worldObj, xCoord, yCoord, zCoord); } } } - /** - * Only update until a power net is formed, in >99% of the cases it should be the first tick. Everything else is handled by neighbors and the net itself. - */ - @Override - public boolean canUpdate() { - return (this.network == null || !this.network.isValid()) && !this.isInvalid(); - } - @Override public boolean canConnect(ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN; } - - @Override - public long getPower() { - return 0; - } - - @Override - public long getMaxPower() { - return 0; - } - - @Override - public void setPowerNet(IPowerNet network) { - this.network = network; - } - - @Override - public long transferPower(long power) { - - if(this.network == null) - return power; - - return this.network.transferPower(power); - } - - @Override - public IPowerNet getPowerNet() { - return this.network; - } } diff --git a/src/main/java/com/hbm/util/CompatEnergyControl.java b/src/main/java/com/hbm/util/CompatEnergyControl.java index ea3ec0683..0de988733 100644 --- a/src/main/java/com/hbm/util/CompatEnergyControl.java +++ b/src/main/java/com/hbm/util/CompatEnergyControl.java @@ -11,8 +11,8 @@ import com.hbm.tileentity.machine.TileEntityMachineGasCent; import com.hbm.tileentity.machine.TileEntityMachineGasCent.PseudoFluidTank; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyHandlerMK2; import api.hbm.fluid.IFluidUser; import api.hbm.tile.IInfoProviderEC; import net.minecraft.item.ItemStack; @@ -47,8 +47,8 @@ public class CompatEnergyControl { data.setString(KEY_EUTYPE, "HE"); - if(tile instanceof IEnergyUser) { - IEnergyUser user = (IEnergyUser) tile; + if(tile instanceof IEnergyHandlerMK2) { + IEnergyHandlerMK2 user = (IEnergyHandlerMK2) tile; data.setDouble(L_ENERGY_HE, user.getPower()); data.setDouble(L_CAPACITY_HE, user.getMaxPower()); } diff --git a/src/main/java/com/hbm/util/CompatExternal.java b/src/main/java/com/hbm/util/CompatExternal.java index d1c2f1a02..9881ef7fa 100644 --- a/src/main/java/com/hbm/util/CompatExternal.java +++ b/src/main/java/com/hbm/util/CompatExternal.java @@ -12,7 +12,8 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.turret.TileEntityTurretSentry; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyHandlerMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidUser; import net.minecraft.block.Block; import net.minecraft.entity.Entity; @@ -67,8 +68,8 @@ public class CompatExternal { */ public static long getBufferedPowerFromTile(TileEntity tile) { - if(tile instanceof IEnergyUser) { - return ((IEnergyUser) tile).getPower(); + if(tile instanceof IEnergyHandlerMK2) { + return ((IEnergyHandlerMK2) tile).getPower(); } return 0L; @@ -81,8 +82,8 @@ public class CompatExternal { */ public static long getMaxPowerFromTile(TileEntity tile) { - if(tile instanceof IEnergyUser) { - return ((IEnergyUser) tile).getMaxPower(); + if(tile instanceof IEnergyHandlerMK2) { + return ((IEnergyHandlerMK2) tile).getMaxPower(); } return 0L; @@ -95,8 +96,8 @@ public class CompatExternal { */ public static int getEnergyPriorityFromTile(TileEntity tile) { - if(tile instanceof IEnergyUser) { - return ((IEnergyUser) tile).getPriority().ordinal(); + if(tile instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2) tile).getPriority().ordinal(); } return -1; From b661b89334da22bf285c77c7093cd215c6c94d2d Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 9 Apr 2024 20:57:33 +0200 Subject: [PATCH 322/376] SISTOR! DID YOU USE ALL MY DIAMONDS TO MAKE JUKEBOXES? yeag --- .../api/hbm/energymk2/IEnergyHandlerMK2.java | 4 -- .../api/hbm/energymk2/IEnergyProviderMK2.java | 4 ++ .../api/hbm/energymk2/IEnergyReceiverMK2.java | 4 ++ src/main/java/com/hbm/test/ReEvalTest.java | 44 ------------------- .../hbm/tileentity/TileEntityProxyCombo.java | 25 +++++------ .../hbm/tileentity/TileEntityProxyEnergy.java | 31 +++++++------ .../bomb/TileEntityCompactLauncher.java | 4 +- .../tileentity/bomb/TileEntityLaunchPad.java | 4 +- .../bomb/TileEntityLaunchPadBase.java | 4 +- .../bomb/TileEntityLaunchPadLarge.java | 5 +-- .../bomb/TileEntityLaunchTable.java | 4 +- .../tileentity/machine/TileEntityCharger.java | 4 +- .../tileentity/machine/TileEntityChungus.java | 6 +-- .../machine/TileEntityCondenserPowered.java | 4 +- .../machine/TileEntityConveyorPress.java | 4 +- .../machine/TileEntityCoreEmitter.java | 4 +- .../machine/TileEntityCoreReceiver.java | 6 +-- .../machine/TileEntityCoreStabilizer.java | 4 +- .../machine/TileEntityCustomMachine.java | 22 ++++++---- .../machine/TileEntityDeuteriumExtractor.java | 4 +- .../machine/TileEntityElectrolyser.java | 4 +- .../hbm/tileentity/machine/TileEntityFEL.java | 4 +- .../machine/TileEntityForceField.java | 4 +- .../tileentity/machine/TileEntityITER.java | 4 +- .../machine/TileEntityMicrowave.java | 4 +- .../machine/TileEntityRadiobox.java | 4 +- .../machine/TileEntitySoyuzLauncher.java | 4 +- .../tileentity/machine/TileEntityTesla.java | 4 +- .../TileEntityMachineCatalyticReformer.java | 4 +- .../oil/TileEntityMachineGasFlare.java | 6 +-- .../oil/TileEntityMachineHydrotreater.java | 4 +- .../oil/TileEntityMachineLiquefactor.java | 4 +- .../oil/TileEntityMachineRefinery.java | 4 +- .../oil/TileEntityMachineSolidifier.java | 4 +- .../oil/TileEntityMachineVacuumDistill.java | 4 +- .../turret/TileEntityTurretBaseNT.java | 4 +- .../java/com/hbm/wiaj/cannery/Dummies.java | 7 +-- 37 files changed, 110 insertions(+), 154 deletions(-) delete mode 100644 src/main/java/com/hbm/test/ReEvalTest.java diff --git a/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java b/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java index 86b915b2c..c79bf3405 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java @@ -14,10 +14,6 @@ public interface IEnergyHandlerMK2 extends IEnergyConnectorMK2, ILoadedTile { public void setPower(long power); public long getMaxPower(); - public default long getConnectionSpeed() { - return this.getMaxPower(); - } - public static final boolean particleDebug = false; public default Vec3 getDebugParticlePosMK2() { diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index a678cf969..1b7f5fe45 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -18,6 +18,10 @@ public interface IEnergyProviderMK2 extends IEnergyHandlerMK2 { this.setPower(this.getPower() - power); } + public default long getProviderSpeed() { + return this.getMaxPower(); + } + public default void tryProvide(World world, int x, int y, int z, ForgeDirection dir) { TileEntity te = world.getTileEntity(x, y, z); diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index a7271294d..11e55bedc 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -24,6 +24,10 @@ public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2 { return overshoot; } + public default long getReceiverSpeed() { + return this.getMaxPower(); + } + public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) { TileEntity te = world.getTileEntity(x, y, z); diff --git a/src/main/java/com/hbm/test/ReEvalTest.java b/src/main/java/com/hbm/test/ReEvalTest.java deleted file mode 100644 index 9c137c481..000000000 --- a/src/main/java/com/hbm/test/ReEvalTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.hbm.test; - -import java.util.HashMap; - -import com.hbm.main.MainRegistry; - -import api.hbm.energy.IEnergyConductor; - -public class ReEvalTest { - - /** - * Runs a collision test on a relatively large scale. So large in fact that it will most certainly OOM. - * Not an issue, since by that point we will already have our results. - * @throws OutOfMemoryError - */ - public static void runTest() throws OutOfMemoryError { - - HashMap collisions = new HashMap(); - - int minX = -130; - int maxX = 140; - int minZ = 300; - int maxZ = 520; - - MainRegistry.logger.info("Starting collision test..."); - - for(int x = minX; x <= maxX; x++) { - for(int y = 1; y <= 255; y++) { - for(int z = minZ; z <= maxZ; z++) { - int identity = IEnergyConductor.getIdentityFromPos(x, y, z); - - if(collisions.containsKey(identity)) { - int[] collision = collisions.get(identity); - MainRegistry.logger.info("Position " + x + "/" + y + "/" + z + " collides with " + collision[0] + "/" + collision[1] + "/" + collision[2] + "!"); - } else { - collisions.put(identity, new int[] {x, y, z}); - } - } - } - } - - MainRegistry.logger.info("Collision test complete!"); - } -} diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index c0957eb69..7fe9db0f3 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -6,8 +6,7 @@ import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.fluid.FluidType; -import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidConnector; import api.hbm.tile.IHeatSource; import com.hbm.inventory.material.Mats; @@ -19,7 +18,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyUser, IFluidAcceptor, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor { +public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, IFluidAcceptor, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor { TileEntity tile; boolean inventory; @@ -170,8 +169,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return; - if(getTile() instanceof IEnergyUser) { - ((IEnergyUser)getTile()).setPower(i); + if(getTile() instanceof IEnergyReceiverMK2) { + ((IEnergyReceiverMK2)getTile()).setPower(i); } } @@ -181,8 +180,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return 0; - if(getTile() instanceof IEnergyConnector) { - return ((IEnergyConnector)getTile()).getPower(); + if(getTile() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTile()).getPower(); } return 0; @@ -194,8 +193,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return 0; - if(getTile() instanceof IEnergyConnector) { - return ((IEnergyConnector)getTile()).getMaxPower(); + if(getTile() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTile()).getMaxPower(); } return 0; @@ -207,8 +206,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!this.power) return power; - if(getTile() instanceof IEnergyConnector) { - return ((IEnergyConnector)getTile()).transferPower(power); + if(getTile() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTile()).transferPower(power); } return power; @@ -220,8 +219,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return false; - if(getTile() instanceof IEnergyConnector) { - return ((IEnergyConnector)getTile()).canConnect(dir); + if(getTile() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTile()).canConnect(dir); } return true; diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyEnergy.java b/src/main/java/com/hbm/tileentity/TileEntityProxyEnergy.java index f4ae0e810..65c983e23 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyEnergy.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyEnergy.java @@ -1,24 +1,23 @@ package com.hbm.tileentity; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; //can be used as a soruce too since the core TE handles that anyway -public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnergyUser { +public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnergyReceiverMK2 { - public boolean canUpdate() - { - return false; - } + public boolean canUpdate() { + return false; + } @Override public void setPower(long i) { TileEntity te = getTE(); - if(te instanceof IEnergyUser) { - ((IEnergyUser)te).setPower(i); + if(te instanceof IEnergyReceiverMK2) { + ((IEnergyReceiverMK2)te).setPower(i); } } @@ -27,8 +26,8 @@ public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnerg TileEntity te = getTE(); - if(te instanceof IEnergyUser) { - return ((IEnergyUser)te).getPower(); + if(te instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)te).getPower(); } return 0; @@ -39,8 +38,8 @@ public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnerg TileEntity te = getTE(); - if(te instanceof IEnergyUser) { - return ((IEnergyUser)te).getMaxPower(); + if(te instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)te).getMaxPower(); } return 0; @@ -49,8 +48,8 @@ public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnerg @Override public long transferPower(long power) { - if(getTE() instanceof IEnergyUser) { - return ((IEnergyUser)getTE()).transferPower(power); + if(getTE() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTE()).transferPower(power); } return 0; @@ -60,8 +59,8 @@ public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnerg public boolean canConnect(ForgeDirection dir) { TileEntity te = getTE(); - if(te instanceof IEnergyUser) { - return ((IEnergyUser)te).canConnect(dir); //for some reason two consecutive getTE calls return different things? + if(te instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)te).canConnect(dir); //for some reason two consecutive getTE calls return different things? } return false; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 55068c5fa..8e60ce228 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -27,7 +27,7 @@ import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.item.IDesignatorItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -48,7 +48,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { +public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { private ItemStack slots[]; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 857c3a3a1..0adf91ab8 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -7,8 +7,6 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; -import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; @@ -16,7 +14,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityLaunchPad extends TileEntityLaunchPadBase implements IEnergyUser, IFluidStandardReceiver { +public class TileEntityLaunchPad extends TileEntityLaunchPadBase { @Override public boolean isReadyForLaunch() { return delay <= 0; } @Override public double getLaunchOffset() { return 1D; } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index 5fc986444..d73ed90bf 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -31,7 +31,7 @@ import com.hbm.util.TrackerUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.item.IDesignatorItem; import cpw.mods.fml.relauncher.Side; @@ -49,7 +49,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { +public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { /** Automatic instantiation of generic missiles, i.e. everything that both extends EntityMissileBaseNT and needs a designator */ public static final HashMap> missiles = new HashMap(); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index a60e17084..55a9dac77 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -8,11 +8,8 @@ import com.hbm.items.weapon.ItemMissile.MissileFormFactor; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; -import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; -import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; @@ -21,7 +18,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements IEnergyUser, IFluidStandardReceiver, IRadarCommandReceiver { +public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase { public int formFactor = -1; /** Whether the missile has already been placed on the launchpad. Missile will render statically on the pad if true */ diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index ed300621f..5c2846be8 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -26,7 +26,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.item.IDesignatorItem; import cpw.mods.fml.common.Optional; @@ -53,7 +53,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver { +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver { private ItemStack slots[]; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java index 943cec0d2..e747c3a5d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java @@ -7,15 +7,15 @@ import java.util.Random; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver { +public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyReceiverMK2, INBTPacketReceiver { private List players = new ArrayList(); private long charge = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 3ef6a42d2..5ae5bc423 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -24,7 +24,7 @@ import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; @@ -41,7 +41,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC { +public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC { public long power; public static final long maxPower = 100000000000L; @@ -100,7 +100,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc if(power > maxPower) power = maxPower; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.sendPower(worldObj, xCoord - dir.offsetX * 11, yCoord, zCoord - dir.offsetZ * 11, dir.getOpposite()); + this.tryProvide(worldObj, xCoord - dir.offsetX * 11, yCoord, zCoord - dir.offsetZ * 11, dir.getOpposite()); for(DirPos pos : this.getConPos()) { this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java index 8051f40ff..f8983cd8e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java @@ -5,7 +5,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -13,7 +13,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCondenserPowered extends TileEntityCondenser implements IEnergyUser { +public class TileEntityCondenserPowered extends TileEntityCondenser implements IEnergyReceiverMK2 { public long power; public static final long maxPower = 10_000_000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java index 982b55616..418c9932c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java @@ -9,7 +9,7 @@ import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; @@ -17,7 +17,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityConveyorPress extends TileEntityMachineBase implements IEnergyUser { +public class TileEntityConveyorPress extends TileEntityMachineBase implements IEnergyReceiverMK2 { public int usage = 100; public long power = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 442668e49..7b2351785 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine; import api.hbm.block.ILaserable; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.tile.IInfoProviderEC; @@ -37,7 +37,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC { +public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyReceiverMK2, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC { public long power; public static final long maxPower = 1000000000L; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 2805004db..be45e1ab5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -11,7 +11,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; import api.hbm.block.ILaserable; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; @@ -32,7 +32,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC { +public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC { public long power; public long joules; @@ -59,7 +59,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn power = joules * 5000; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); if(joules > 0) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 344b02ea0..50564fb48 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -8,7 +8,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; @@ -28,7 +28,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyUser, SimpleComponent, IGUIProvider, IInfoProviderEC { +public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyReceiverMK2, SimpleComponent, IGUIProvider, IInfoProviderEC { public long power; public static final long maxPower = 2500000000L; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index f810b8dfb..afc3b4d8e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -26,7 +26,8 @@ import com.hbm.util.Compat; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -40,7 +41,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCustomMachine extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IEnergyUser, IGUIProvider { +public class TileEntityCustomMachine extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IEnergyProviderMK2, IEnergyReceiverMK2, IGUIProvider { public String machineType; public MachineConfiguration config; @@ -155,7 +156,7 @@ public class TileEntityCustomMachine extends TileEntityMachinePolluting implemen for (DirPos pos : this.connectionPos) { if (config.generatorMode && power > 0) - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); for (FluidTank tank : this.outputTanks) if (tank.getFill() > 0) this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -592,11 +593,16 @@ public class TileEntityCustomMachine extends TileEntityMachinePolluting implemen return 0; } - + @Override - public long getTransferWeight() { - if(this.config != null && this.config.generatorMode) return 0; - - return Math.max(getMaxPower() - getPower(), 0); + public long getReceiverSpeed() { + if(this.config != null && !this.config.generatorMode) return this.getMaxPower(); + return 0; + } + + @Override + public long getProviderSpeed() { + if(this.config != null && this.config.generatorMode) return this.getMaxPower(); + return 0; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index 268ca8277..12cc135b4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -4,12 +4,12 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver { +public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver { public long power = 0; public FluidTank[] tanks; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index b41f54a7d..633c18cb7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -32,7 +32,7 @@ import com.hbm.util.CrucibleUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -49,7 +49,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 20000000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index 5619478c3..d34054398 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -20,7 +20,7 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -41,7 +41,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityFEL extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { public long power; public static final long maxPower = 20000000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java index c9c22c014..417c24894 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java @@ -12,8 +12,8 @@ import com.hbm.packet.TEFFPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -31,7 +31,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityForceField extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider { +public class TileEntityForceField extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider { private ItemStack slots[]; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 367fd3b2a..22fb2665d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -30,7 +30,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -46,7 +46,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { +public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { public long power; public static final long maxPower = 10000000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java index baf799651..a04e4d5f9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java @@ -6,7 +6,7 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -25,7 +25,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, SimpleComponent { +public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 50000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java index 8a513a99b..7b4751c96 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java @@ -9,7 +9,7 @@ import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -22,7 +22,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityRadiobox extends TileEntityLoadedBase implements IEnergyUser, IGUIProvider { +public class TileEntityRadiobox extends TileEntityLoadedBase implements IEnergyReceiverMK2, IGUIProvider { long power; public static long maxPower = 500000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index 01a399e72..d13fea7ff 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -20,7 +20,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.item.IDesignatorItem; import cpw.mods.fml.relauncher.Side; @@ -38,7 +38,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 1000000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java index 664327e1f..ecdb619a0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java @@ -12,7 +12,7 @@ import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ArmorUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; @@ -28,7 +28,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityTesla extends TileEntityMachineBase implements IEnergyUser { +public class TileEntityTesla extends TileEntityMachineBase implements IEnergyReceiverMK2 { public long power; public static final long maxPower = 100000; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java index 66f4b6eab..3ef9daf56 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java @@ -16,7 +16,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Triplet; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -28,7 +28,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { +public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { public long power; public static final long maxPower = 1_000_000; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 784c7d158..e8f5928f0 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -28,7 +28,7 @@ import com.hbm.util.I18nUtil; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; @@ -44,7 +44,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -107,7 +107,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements this.output = 0; for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java index 3aa9141de..9bffbf38b 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java @@ -15,7 +15,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Triplet; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -28,7 +28,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineHydrotreater extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { +public class TileEntityMachineHydrotreater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { public long power; public static final long maxPower = 1_000_000; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index f02c1f4b4..531bebb18 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -23,7 +23,7 @@ import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardSender; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; @@ -37,7 +37,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 95ec386e1..65bf61681 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -33,7 +33,7 @@ import com.hbm.util.ParticleUtil; import com.hbm.util.Tuple.Quintet; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -49,7 +49,7 @@ import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyReceiverMK2, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider { public long power = 0; public int sulfur = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index cf7cb6319..ae595e10d 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -21,7 +21,7 @@ import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; @@ -35,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index ea3ec152e..037982ffd 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -16,7 +16,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Quartet; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -28,7 +28,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { +public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { public long power; public static final long maxPower = 1_000_000; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 48b8ea59f..c3d8ef3db 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -28,7 +28,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatExternal; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -59,7 +59,7 @@ import net.minecraftforge.common.util.ForgeDirection; * @author hbm * */ -public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase implements IEnergyUser, IControlReceiver, IGUIProvider { +public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase implements IEnergyReceiverMK2, IControlReceiver, IGUIProvider { @Override public boolean hasPermission(EntityPlayer player) { diff --git a/src/main/java/com/hbm/wiaj/cannery/Dummies.java b/src/main/java/com/hbm/wiaj/cannery/Dummies.java index 879a3fd3a..cf9e23347 100644 --- a/src/main/java/com/hbm/wiaj/cannery/Dummies.java +++ b/src/main/java/com/hbm/wiaj/cannery/Dummies.java @@ -2,19 +2,16 @@ package com.hbm.wiaj.cannery; import com.hbm.inventory.fluid.FluidType; -import api.hbm.energy.IEnergyConnector; +import api.hbm.energymk2.IEnergyConnectorMK2; import api.hbm.fluid.IFluidConnector; import net.minecraft.tileentity.TileEntity; public class Dummies { - public static class JarDummyConnector extends TileEntity implements IEnergyConnector, IFluidConnector { + public static class JarDummyConnector extends TileEntity implements IEnergyConnectorMK2, IFluidConnector { @Override public boolean isLoaded() { return false; } @Override public long transferFluid(FluidType type, int pressure, long fluid) { return 0; } @Override public long getDemand(FluidType type, int pressure) { return 0; } - @Override public long transferPower(long power) { return 0; } - @Override public long getPower() { return 0; } - @Override public long getMaxPower() { return 0; } } } From 76ca5c0a930b6b48c5a5cc5f23b44e2d36fc622b Mon Sep 17 00:00:00 2001 From: George Paton Date: Wed, 10 Apr 2024 09:29:29 +1000 Subject: [PATCH 323/376] Prevent players skipping fluid pressurization by just chucking fluid container into machines --- src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 40172b6bd..09e6448e4 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -126,6 +126,9 @@ public class FluidTank { if(slots[in] == null) return false; + + if(pressure != 0) + return false; int prev = this.getFill(); From 93f03208faf964d03a6a9e4e106cab75f47f3cb7 Mon Sep 17 00:00:00 2001 From: George Paton Date: Wed, 10 Apr 2024 10:21:33 +1000 Subject: [PATCH 324/376] Modify GUIs for existing machines that require compressors --- .../com/hbm/inventory/SlotDeprecated.java | 28 ++++++++++++++++++ .../ContainerMachineHydrotreater.java | 9 +++--- .../ContainerMachineVacuumDistill.java | 9 +++--- .../gui/processing/gui_hydrotreater.png | Bin 5260 -> 9002 bytes .../gui/processing/gui_vacuum_distill.png | Bin 3016 -> 6666 bytes 5 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/SlotDeprecated.java diff --git a/src/main/java/com/hbm/inventory/SlotDeprecated.java b/src/main/java/com/hbm/inventory/SlotDeprecated.java new file mode 100644 index 000000000..1fa16a9d6 --- /dev/null +++ b/src/main/java/com/hbm/inventory/SlotDeprecated.java @@ -0,0 +1,28 @@ +package com.hbm.inventory; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +/** + * Deprecated slots can hold items from previous versions, but are otherwise entirely uninteractable + */ +public class SlotDeprecated extends Slot { + + public SlotDeprecated(IInventory inventory, int id, int x, int y) { + super(inventory, id, x, y); + } + + @Override + public boolean isItemValid(ItemStack stack) { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean func_111238_b() { + return false; + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java b/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java index 375e0d753..85ed0cfc9 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotDeprecated; import com.hbm.inventory.SlotTakeOnly; import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; @@ -26,10 +27,10 @@ public class ContainerMachineHydrotreater extends Container { this.addSlotToContainer(new Slot(tedf, 1, 35, 90)); //Canister Output this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 35, 108)); - //Hydrogen Input - this.addSlotToContainer(new Slot(tedf, 3, 53, 90)); - //Hydrogen Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 53, 108)); + //Hydrogen Input (removed, requires pressurization) + this.addSlotToContainer(new SlotDeprecated(tedf, 3, 53, 90)); + //Hydrogen Output (samesies) + this.addSlotToContainer(new SlotDeprecated(tedf, 4, 53, 108)); //Desulfated Oil Input this.addSlotToContainer(new Slot(tedf, 5, 125, 90)); //Desulfated Oil Output diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java b/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java index 260bfe17d..c2fd3971b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotDeprecated; import com.hbm.inventory.SlotTakeOnly; import com.hbm.tileentity.machine.oil.TileEntityMachineVacuumDistill; @@ -20,10 +21,10 @@ public class ContainerMachineVacuumDistill extends Container { //Battery this.addSlotToContainer(new Slot(tedf, 0, 26, 90)); - //Canister Input - this.addSlotToContainer(new Slot(tedf, 1, 44, 90)); - //Canister Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 44, 108)); + //Canister Input (removed, requires pressurization) + this.addSlotToContainer(new SlotDeprecated(tedf, 1, 44, 90)); + //Canister Output (same as above) + this.addSlotToContainer(new SlotDeprecated(tedf, 2, 44, 108)); //Heavy Oil Input this.addSlotToContainer(new Slot(tedf, 3, 80, 90)); //Heavy Oil Output diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png index 451e335558b66a73ea3cbafbbe914e7c3b61218a..9a96ab43f9d62e95ad8ebae847306fd0bf17f3a9 100644 GIT binary patch literal 9002 zcmeHNcT`hZx4)qaC?FzbV8{R#R3M=yp@kkmq)0D9AOS-QgwTZq0fCV!qDT=?M2f)B z1VltdL8U4kX$lAq(wp>mgHBuTd++;Zt@r+$yGZUm=j`)4`}f=X9PVB#F-GTf4zdcc z0swGO7o%wc01)sI0+J z=1?P)eXB#E0c?^BVC8XP3`XKCk{uIm1@7ucehs))C$tE6Bf;ng?@lt zWa#E&^C_D}JsMAm)$P6NXgYBovn!1CRKMIVB5)9+%4%Yl?^7MZBwo@}d`j2( z#FIoya2i#ir^<@$s@DM}kXZylL&Hc{L*q9xAcc&OBxOt^TJWWPm!8=vp))5xa^|20 zw6p~Ed9FI-RPtE+!fIF8(qzRXB;zl;J$sh$vM~H=MaiL(%h0cok6*@er$vtKN{LrS zFOJm+&(A5(jX=~Zo||^@GMW}U=YE94(`|TmN*8iCH25@(9P@5tq@2f4Pv$;+n6Zm+ zsm~o*omCfdo;%7?*Ce_l=ET8A&_&TceAFm{*W+k_^Q%|6 zpJFs#IF?aZTBbSf5RGGNU1~2h4Ee-0W&B*F-H6K2VQICj4 zy~)qM!cr_Ce%z!|*k>`Je^;y)M@o72s*HNd6!TDcnn|I~Q8NU&l0|-<=>A&&{K+HK zb(zgPL0ACWN-46wYTbJiz~vWB{xCMinR?P>?NLiza9!}$`q{b$;e<+3`2}N{B{1py z2w-wq8k|Kr5j`ZaIHDt7GQh(N%sK#2QVsCJI=SJ=P)EEA!BbgezOF$8O28?LSjZW` z47@b(7YUdk68?P9Ia8+~Hzy=cL{)`VDF6imc;LxcXn=>irw=MXS!5p<1wPZdr9`0n zCS*5d5laIjs0NXQhssLIO2Q#B|r-apFmGCHbBDDN0bKf4MP*}<3u8OkqJakC=C^Z(BJ&?@G>y?9p2ODy9%HlQUO>mDYzs|%ELqI&og|;T7DqNcZdGv3?EZ)k4l-~ zeTcp!C%l#)-jgi)X9%3r@AJKUN$&e}a86Qqcf1E^>I1F{|I3m(x&}tS&!9=*Lh$g~ zp9PBj7fUk1`46%F;u~#bpU$5h0jK|t`xooqxbGW-Rt5$rO`?-8%{^UBWf9u?C>+s= zfJ5y+I!VJ6aL&^55(?7JNC{cI6JEkmS{f#Sh09AjB9Jn2Fj=`jLFsz>kg=Xlcp4N4 zE=d4!kn%{ZoD57x0*iHoOUNqV=g|P z2SOp_<)z_rcxMSDLJsss77IG!h;@{3lEFK|q_OhO2nEM|D4Y{Yn@IA&g5e~1U|sN1 zUY;)d12n-=YDT)sBGQtuKYEPZv1Dg(0=NeVo;aev&mTjk1P}aqGM1(%Tmdev0F#F+ z$jZZIVDi#`7@6ZqK431=P~k918QJ|2T3}Eh9Z*^bsq2it@W+xPT1c}Q0V@)Kw+J}QSia~;c@$Zf>_^%oGxNL zUGU)f@jYRG>nHq+WRS%vU}YU;q$S`mJeUl$q(UlSkrH^Aj0{3fMjkJZMEn)qhv-c9 z$CB`BE})K}R$zkeYXv>|Jyhar^Nx3OadkgF7vx&B2wSUO3_Y?-`FZi{Wm?7 z_6`1Y#DMd@^?^qhcoIteeiVM!i+1SzKVIMC@c+012>s6@e@owgcwwx3 z0Dz5~_JIIt8GK+TGg;R_i+P&i0PiVz=4E*`065&QtEpxhFgTmpK@^+{Y;Kru{c^3& zcK3*QOZf+pr1Xav?(U04=DCofsH62q9(PvXiTWhPSq{1Ms*D+e{e_}NdR2T}O1)Fx z@Th}vOsBcTDMiV{FJsQU-^A~TXp#I~KFwmQR$O1&*U3~URxED-47DHUTHeYmUmBeX z{1lP}*W)lxjapSzKl!mIf;>yqozC6W3{#NNxRyxv8z3nRhv1KrWod2e-*v9ayW z(=9D6pJV#B)%6)RcitciDxUTfSuFl?-DkY%U?$Q>TY)$t7%JBJB1T6W@Ct=8z6xXj zI(=9H7Jw51&;fzr0^oNpKm`DC01Dm&HT&K%hHr2JP&zaKa8i{HA7c^NXjAOC`8b~8 zrlg%f+swinRqMdE-MuCIozv-Io8F;rI+W$xaAz^iv3K|M^_DlJn^qcfQ{PjQyu5b9 z2m1RlTdlVOr-<)s=cC`PTZ?qg^U6^##x8B{SQqE{kA_&dxw(lZAIe?4j-{{`b z&8R1(OLv9q7lLM(RRg>;?6*Z8dTS%g`Nb8vn>g%&k9W2%e_r45j*}^jy`HHH(bfSr z@kHkW^Yifb{A+rO$#hV_yX{QiRR-sWG8&(#48gefK68E@S7@uOpT61vb8I07kvuoJH6ZQMz_q)9i# zl*tGZX!<{ z>+5UQS7P@=G>}`zgl0t_glfsW%lO+DsT2ss;ni-_GShuToROLn(H0m zigLh>Jrnw9LIxYJz#_5bksNA3!4u|Cz*PXYEUbL)XgcLZ zU~54Mgkhwmy>)5So%N}{%nP_w_FRT^i8qtl7MD%<0}e381(4WyU`0`bOpz?{9uzCf z&zs%$XrA9j9y+A>sd6xIK^&xtaLmX(+C%29UTzL-{mwe^qm8Lg#zm;)N0f6f=-EIt zgLE(VFU#=v!|lSpJPw{;&K?9Hua7%Xb`J$fq)q(tW;dS-wZXL^LK#nTr(}nO^RGVDY-Oe=a1ym%sdgKCaf2kiBx=TlwxXfRWr6o5zSKmn9Mex$Wmqqtwu9qmZvbNTH zsk~joE49e3%|IPm;T%kuxx<7OqXMx;2ch%rhM>0&+9>UQ)mJB0rI+c&fm(4tCI%`$ zt0KJ|b!aM2S2=}GQ50y!xDK1kG+lIZ5`C*fm051g_R>D4pj@bGXFGmIO3KaK8{V^K zX=Bs1v_#6AW!D4>;u%mDgZJXZGO{oLB%28aoM>#P0x(gm3mOQzZB?Thml-C2zTup| zW>^yJgx(xRdwq0bkp=Dk0nZi@xX6jyKVe%V-_T5VUHpI(}530j(n zY0pv}UAOEjwHMA0Ve)Xn6aaz`SF7s!cCa?M@j-RP*y5Vey{YQ0%^}LJ`J+o4nTm7ExX`$`HY2>Z(%9Q)sB-CZh*bSlbRSU5No^FY zF7Y zRBy@FLRveN^CY_lvgss?eaRu~(~M!IWsYiX&e_StOT6P?QZZhJnsQz#o>$Ax9Jbp~ zgN}0WSf3VM-c}Bag_rlvg;Wb!JH$?GnnDP2ED53-4B!*BxidA^~0R%%YXGE8sWDeZP4rYZk3b75aP_~$B{wzPvj*iZmv z!3o}lvg2dlzD};Vmdnf`JTteW<9hrEL~tV8*uw7PHVfL*$}+X<`F8BlPcER($4|7R z-OlKYxm933H(6_)nw2zFd+I1FDNa6s>+44XZBJLl?F z^S~u5H{305yOB407>DcDjpAostvB}aF&bhomdWJm1B1%5@s8kO4*o0K+V!Mufzj3H zZ{Fy+N(ptuMC>)*7fk5n^xW3;#LkVzvuX@Ylk`E znC`0f>CtL)lC4hU<#iLOFtLt4W4|A(mLma8r6l7Ki(+$oSK;1}Frg`;X;BaTdsCsx zS%m_&P7d|R9J5->M6r;S*Y_W-*$Wdq{q!hnnX27Gt=EqqZ!#-YFg+PS61rRZqjJxu z3J;pu;7CD{tV*8hPBJmyGULYlR+$#y-Cw(PX|)kM#fE{bN&a%OqRn_~CwcHkCG!6A!hX3%6ryHx$X7?Lh!yI3`G1`+hIqNuIdB`x*j=QiS#lKbf$m99w5 z;gAI*!|L0gOZPs$-+aGJDOfDKvpYMguriaLRe&%z3cO^iSmzs;z`LqLe3H|!m0rQB zpbiKAxqZ%xZA`-|Av)howImV&BLbY6*f*H6)HO%~Q)$kx}_4~`!W z2`-e`PNHC_BlqKKa^&5$J7!GuIqzg z3TnI=n^a}eNZheqP~y4zdfHdePi1<$+4wYd0^=@(o?<*=5kK(bRQ{-I4B4clf`yH4;hgn`MO89EtpiW@&%yJciQ5}4g=_^^8= zME6~Hcf>h~jLz+$O4~l;yB|0z*WMXcHN5{Y{>Ta7*N3brE_&OtXBxjSuF#+QLP=d4dl`+J7{q%6{ddl1|CAUMR;dC=!O3N_=bG@ZTw4p*4AvoCL<>eC{ zK9i41ShWnnM7dU3XLEC$uVYG7)5ZVWM6i+|E@_-kF73&2y>alsG*C?xj#vseipwi4E4%!>^Ubm#W9UgI zv5w^<3 zg5n=Q>GZ6s(HiSHzYLyPW@F5>@A|jylS`g%$NjT9mU291m#cHk92(70oYsuJZ#*J_ z@`pXDPksCA7?H8SorxWtwuRsxPhB<6G-*KX#L2xpu4BIOfj9;Kz7 zaa*>sS`9jn<@_SYbf7rpV6kBH$x7|`Dw3_gArK2E35tS|43zb{489#O56{i4`p@InRY&-u0VWZ;@DiAR$6Qp~%Hk-iyYCtya#8!5G2wCkYdu{XoA-mm z#YG=BSv_jjbD`W1oj2<{_(ZKv_j#Kw*xrim25RD>0ZqTJ<7Wg=?O%syc9Q+Kj|z`2 ztu7YZY^4tcYTc`~Fx7j;$aym}>evzt2eGuWGOn^VJ3RgZ?)fhMi7;XAz3|Pz2#zo@TE4c2Q4K}o64|15_&kQ6LoAA z=YXR72`EDa+n!JwbLbQ>TKK;ba&? zn_F1;&JEQ*aZWyS!E&d4sIlfAMhD6OT^o`vxtd*f-r&ZsbXH!w58m@%fdW<59#CH0 z!p6NHGdB>7Pt@)KcX2M$ahmTh3-kQA#(l$iU?ZVI#i74~V(XW;X~>$05rVb|nlpUK zSd4+{PmpW3ue1hNtQxfb%x!W%J=k3aWwhA=qTM|Et?l`2K-XmTKVs5@zzD>Dn; z{)POwi&@8}St5WJ+Sflpb^RIiexB(ob!q?bnT0{42qN~=kGe)hJ=#kV&G@OBCVn%; zgmQq-DR#KOe{2Fzot(t;JH6PryfeKnpKWDp+Zq|x+uK|D_;E%c7iMe2+Que%Ev@ib zcC_n462%tZo7s@8e^WAUsfvYP?ooZf;vF$hF6YP}6g)B4JVzeKjDM141ONuGkOp4a zedXu|9E<6}H)$VlJi9CS>h?gy>r*R#J4-vr01#)c=Bf1qzzeF375t!(7&_6N*lWEl zEKPbV5YF-KF&73s3_r6F3O>>x*v*MJ#Fp2vx9*2a9^JhNso?|8oP) zgjo5I%`0gez0DlIydBtt&1h@_D~RXkqkaNrxj7?Us|r_FeZlT0&Dfi##Q#0w_qFJ# z2SApCcnR;ayzO-tS=N{B^Rei;wGqTDsXcCTfCp zJj6JA{NT8zP*gm+8+0D>T`~auzco04voxycLph?Hw8`?P=;Nuu(s!U~&4w?ny{%#H(72QU literal 5260 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 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_vacuum_distill.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_vacuum_distill.png index 2685f3e4e17d631d1a217a2391d6f5906349f431..bdbd368183dc20e9887d8654b709cfd14a214e47 100644 GIT binary patch literal 6666 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 literal 3016 zcmbVOcU03^7Jdm4qA1+~K?ubHGcGWL1jv9y2q=pnN>Kp;2Mh!VGD0XqAj}|T6|f`K zV5K9{kv1TNB1I6Qp@k-x5F;hDfb1{o&YrWov$JR4KkwaF?)$#)zIV@!x3NC5W1IXo z0Kg85qqvg*z@Q-vAcdjM`C>L6>JR}Y7IsLeg(E%U01%C|z#X;=N#_h(CJwgmY?(8q zwaxgc&X^&F8CZO3Pb&uT5$<9lQ~@hgyR**`XGvc$$0zuzmar+iUdVWyxqmvJo`cy$ zxiJq_A5U(dJSBdjKVjzkNk4%1xv0nVSjihD^{qQ~`?N9LKM05G85$c;`w8LK)>jvl z9Zi^n_bygYy-*kRu$8M*d3nV2?Hi$wCfqFF1F#wi zpq|zz#TwRV~ zY#ywYh}(6qNjtlC^ARD{Oy%h)*KC2^`+i<>)P>kwnOUY)?lGdy?b@v4PW3%G{%qJ!R!ihyohGqs&7kWT#RzD<3gdA$)bdIcH=pe=V$aZCF~gz-d(x} zlEiJFjYG!U5QQGW7QuXaG2-J%GWYxWWP92!C?5SH4PM^F)QMAMf&hVzf)3EaU*a;5 zw@^G15F?;AjVjoxR5Bei7&mUPrt5uXdl)aFQP(BiR- zfguJ2IEIPHc z(9eRoMvfJu#PM)S3dH)FIS*cx?<(Q*Q$AFhYR%t>F zw3@&Y!VWU*22-7!6d&4?p@r-Jb}WpOC3X@DCEYxG_kOrlSuEyg!5X+*g0>1(z4par z-WupZs}d9lW&MX8p%@+g-RHS|pftgTVeUeNSls|#gAUaSYK(*+KCsH$O3P;WWs{pb^=&WzlfrrArc9Yxm2t;3XSF0QUqJf3c_jlrNF8I#M^?P92%gKbAnwnO>isx&ajPlymP3Kag!Yo{D&eFsL z$~h$Dwv8K|pet#^ah`ORz7ZJyX6iC#+B5L1>|$k}1ZOL+`ltRgs)5F8iQ~(FQO>J7 zZMv;riAd_=KzXSIF_}yjcWYDE1fH_<1lIiyt=8tVSuN*ud z5|_3Fzr}-!ffRS-fwwwxS|8HYY_pfV@&a7k*Xtz0wzPi7-;SN6U4IcAEzgc-bS^>f zT%Hx3S*%i@57TzRPDh#$!xPF5I#aV44+_NElgZNBEn;Q+80dvkp7?yb5>O#HCB+CZ zWFML9hF$GCf;KmB%k;*BY4#a&%;ympvX=%Eh3Fp#8^YhhnF9&civ6 zBhr6?)iRr_`Bo1`_FFON+qe}am21Rc9awd|rD6d}iQk>2o8?H~|8O#kVQZrJTEhb5 zJLDW$cL^=dmE}c)XEFb;?j|~>bj)Tk#;fpFn>;rvEH=mHl9YK zjY(wg3CoNCLx1}u4`=~&O2}TjqY(L!WBOw{GFrpJ6BKL75M@0C66y5zcAvIxR-$xY zZi~kfSm|^oj(RCOLS|)Z%1jA`%BYK#jvDVD!%^2f#3^#9iTkgX1qH2cA zYu~WhFGI-twR%qmY>{jn+7xgOPRI!nqqZm*zvfQ~Hhl|cp4@>l+o4eT!{Md_ z>$vO603S;O8T+MEhIXw|npwrMQ(3N?_;b4-1Fo#7%o z`?uBI*oDPKnc^Db#C;9}DxMk+O!w(O9#!Ack%VnYG$daV?Eg|8Dxu8&b-N zkJuP4%0!WcePWJ_5yU0}6A~pImHi;AYbqW~9=#IR8uWbU>Zb11%leXW7#7=K)y8lZ z_GcXafbf3!i6dmi7ftcl*C$*BFL(^6%*rl;?762R|BE*N!EZVer^q8obWg@(Ddy=& z88OR$rq;9}#H5`Y%PTt|^jq!5F=z-~_Ac=M*6gZnRL+Asv2np;#+ Date: Wed, 10 Apr 2024 10:59:15 +1000 Subject: [PATCH 325/376] Allow infinite fluid barrels to fill pressurized tanks --- src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 09e6448e4..4fa6180d8 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -10,6 +10,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GuiInfoContainer; +import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEFluidPacket; @@ -127,7 +128,9 @@ public class FluidTank { if(slots[in] == null) return false; - if(pressure != 0) + boolean isInfiniteBarrel = slots[in].getItem() == ModItems.fluid_barrel_infinite; + + if(!isInfiniteBarrel && pressure != 0) return false; int prev = this.getFill(); From ba58f42ef2a6f63bccbe78254e942cbadfabe477 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 10 Apr 2024 16:10:55 +0200 Subject: [PATCH 326/376] I will kill Horse Ronald Reagan when I become 23 years old --- .../java/api/hbm/energymk2/PowerNetMK2.java | 8 +- .../java/com/hbm/entity/logic/EntityEMP.java | 12 +- .../java/com/hbm/items/tool/ItemAnalyzer.java | 111 -------- .../com/hbm/packet/AuxElectricityPacket.java | 6 +- .../java/com/hbm/tileentity/TileMappings.java | 1 - .../machine/TileEntityCoreEmitter.java | 3 +- .../machine/TileEntityFWatzCore.java | 19 +- .../tileentity/machine/TileEntityHadron.java | 4 +- .../machine/TileEntityHadronPower.java | 4 +- .../machine/TileEntityHeaterElectric.java | 4 +- .../machine/TileEntityMachineAmgen.java | 6 +- .../machine/TileEntityMachineArcFurnace.java | 10 +- .../machine/TileEntityMachineArcWelder.java | 4 +- .../TileEntityMachineAssemblerBase.java | 4 +- .../machine/TileEntityMachineAutocrafter.java | 7 +- .../TileEntityMachineBoilerElectric.java | 4 +- .../machine/TileEntityMachineCentrifuge.java | 9 +- .../machine/TileEntityMachineChemplant.java | 114 +------- .../TileEntityMachineChemplantBase.java | 4 +- .../machine/TileEntityMachineCoal.java | 33 --- .../TileEntityMachineCombustionEngine.java | 8 +- .../machine/TileEntityMachineCompressor.java | 4 +- .../TileEntityMachineCrystallizer.java | 4 +- .../machine/TileEntityMachineCyclotron.java | 4 +- .../machine/TileEntityMachineDiesel.java | 6 +- .../machine/TileEntityMachineEPress.java | 4 +- .../TileEntityMachineElectricFurnace.java | 4 +- .../machine/TileEntityMachineExcavator.java | 4 +- .../TileEntityMachineExposureChamber.java | 4 +- .../machine/TileEntityMachineGasCent.java | 4 +- .../machine/TileEntityMachineIGenerator.java | 99 +------ .../TileEntityMachineLargeTurbine.java | 6 +- .../machine/TileEntityMachineMiningLaser.java | 4 +- .../machine/TileEntityMachineMixer.java | 4 +- .../TileEntityMachinePlasmaHeater.java | 4 +- .../TileEntityMachinePumpElectric.java | 4 +- .../machine/TileEntityMachineRTG.java | 6 +- .../machine/TileEntityMachineRadGen.java | 6 +- .../machine/TileEntityMachineRadarNT.java | 4 +- .../machine/TileEntityMachineRadiolysis.java | 6 +- .../machine/TileEntityMachineSPP.java | 14 +- ...eEntityMachineSchrabidiumTransmutator.java | 4 +- .../TileEntityMachineSeleniumEngine.java | 265 +----------------- .../machine/TileEntityMachineShredder.java | 4 +- .../machine/TileEntityMachineTeleporter.java | 7 +- .../machine/TileEntityMachineTurbine.java | 6 +- .../machine/TileEntityMachineTurbineGas.java | 6 +- .../machine/TileEntityMachineTurbofan.java | 6 +- .../machine/TileEntityMachineWoodBurner.java | 6 +- .../machine/TileEntityMicrowave.java | 5 +- .../machine/TileEntitySteamEngine.java | 82 +----- .../machine/TileEntityStirling.java | 6 +- .../storage/TileEntityMachineBattery.java | 2 +- 53 files changed, 139 insertions(+), 830 deletions(-) delete mode 100644 src/main/java/com/hbm/items/tool/ItemAnalyzer.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index 233bf14b0..c509d1cef 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -119,12 +119,12 @@ public class PowerNetMK2 { for(Entry entry : providerEntries.entrySet()) { IEnergyProviderMK2 provider = entry.getKey(); - if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply += Math.min(provider.getPower(), provider.getConnectionSpeed()); + if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply += Math.min(provider.getPower(), provider.getProviderSpeed()); } for(Entry entry : receiverEntries.entrySet()) { IEnergyReceiverMK2 receiver = entry.getKey(); - if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand += Math.min(receiver.getMaxPower() - receiver.getPower(), receiver.getConnectionSpeed()); + if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand += Math.min(receiver.getMaxPower() - receiver.getPower(), receiver.getReceiverSpeed()); } double drainScale = 1D; @@ -153,8 +153,8 @@ public class PowerNetMK2 { IEnergyProviderMK2 src = providers.get(0); IEnergyReceiverMK2 dest = receivers.get(0); - long toDrain = Math.min((long) (src.getPower() * drainScale) + prevSrc, src.getConnectionSpeed()) - prevSrc; - long toFill = Math.min(dest.getMaxPower() - dest.getPower() + prevDest, dest.getConnectionSpeed()) - prevDest; + long toDrain = Math.min((long) (src.getPower() * drainScale) + prevSrc, src.getProviderSpeed()) - prevSrc; + long toFill = Math.min(dest.getMaxPower() - dest.getPower() + prevDest, dest.getReceiverSpeed()) - prevDest; long finalTransfer = Math.min(toDrain, toFill); if(toDrain <= 0) { providers.remove(0); prevSrc = 0; continue; } diff --git a/src/main/java/com/hbm/entity/logic/EntityEMP.java b/src/main/java/com/hbm/entity/logic/EntityEMP.java index 94a9b7d07..3ba75fc54 100644 --- a/src/main/java/com/hbm/entity/logic/EntityEMP.java +++ b/src/main/java/com/hbm/entity/logic/EntityEMP.java @@ -6,7 +6,7 @@ import java.util.List; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.ParticleBurstPacket; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyHandlerMK2; import cofh.api.energy.IEnergyProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; @@ -44,19 +44,15 @@ public class EntityEMP extends Entity { private void allocate() { machines = new ArrayList(); - int radius = 100; for(int x = -radius; x <= radius; x++) { - int x2 = (int) Math.pow(x, 2); for(int y = -radius; y <= radius; y++) { - int y2 = (int) Math.pow(y, 2); for(int z = -radius; z <= radius; z++) { - int z2 = (int) Math.pow(z, 2); if(Math.sqrt(x2 + y2 + z2) <= radius) { @@ -81,7 +77,7 @@ public class EntityEMP extends Entity { private void add(int x, int y, int z) { TileEntity te = worldObj.getTileEntity(x, y, z); - if (te != null && te instanceof IEnergyUser) { + if (te != null && te instanceof IEnergyHandlerMK2) { machines.add(new int[] { x, y, z }); } else if (te != null && te instanceof IEnergyProvider) { machines.add(new int[] { x, y, z }); @@ -94,9 +90,9 @@ public class EntityEMP extends Entity { boolean flag = false; - if (te != null && te instanceof IEnergyUser) { + if (te != null && te instanceof IEnergyHandlerMK2) { - ((IEnergyUser)te).setPower(0); + ((IEnergyHandlerMK2)te).setPower(0); flag = true; } if (te != null && te instanceof IEnergyProvider) { diff --git a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java b/src/main/java/com/hbm/items/tool/ItemAnalyzer.java deleted file mode 100644 index 1076552b1..000000000 --- a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.hbm.items.tool; - -import com.hbm.interfaces.IFluidDuct; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityLockableBase; -import com.hbm.tileentity.network.TileEntityPylon; - -import api.hbm.energy.IEnergyConnector; -import net.minecraft.block.Block; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; - -public class ItemAnalyzer extends Item { - - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int b, float f0, float f1, float f2) - { - Block block = world.getBlock(x, y, z); - TileEntity te = world.getTileEntity(x, y, z); - - if(world.isRemote) { - player.addChatMessage(new ChatComponentText( - "Block: " + I18n.format(block.getUnlocalizedName() + ".name") + " (" + block.getUnlocalizedName() + ")" - )); - - player.addChatMessage(new ChatComponentText( - "Meta: " + world.getBlockMetadata(x, y, z) - )); - } - - if(!world.isRemote) { - - if(te == null) { - player.addChatMessage(new ChatComponentText( - "Tile Entity: none")); - } else { - - if(te instanceof TileEntityDummy) { - - player.addChatMessage(new ChatComponentText( - "Dummy Block, references TE at " + ((TileEntityDummy)te).targetX + " / " + ((TileEntityDummy)te).targetY + " / " + ((TileEntityDummy)te).targetZ)); - - te = world.getTileEntity(((TileEntityDummy)te).targetX, ((TileEntityDummy)te).targetY, ((TileEntityDummy)te).targetZ); - } - - String[] parts = te.toString().split("\\."); - - if(parts.length == 0) - parts = new String[]{"error"}; - - String post = parts[parts.length - 1]; - String name = post.split("@")[0]; - - player.addChatMessage(new ChatComponentText( - "Tile Entity: " + name)); - - if(te instanceof IInventory) { - - player.addChatMessage(new ChatComponentText( - "Slots: " + ((IInventory)te).getSizeInventory())); - } - - if(te instanceof IEnergyConnector) { - - player.addChatMessage(new ChatComponentText( - "Electricity: " + ((IEnergyConnector)te).getPower() + " HE")); - } - - if(te instanceof IFluidDuct) { - - player.addChatMessage(new ChatComponentText( - "Duct Type: " + ((IFluidDuct)te).getType().getLocalizedName())); - } - - if(te instanceof TileEntityPylon) { - - /** - * this is a smoldering crater - */ - } - - if(te instanceof TileEntityLockableBase) { - - player.addChatMessage(new ChatComponentText( - "Locked: " + ((TileEntityLockableBase)te).isLocked())); - - if(((TileEntityLockableBase)te).isLocked()) { - - //player.addChatMessage(new ChatComponentText( - // "Pins: " + ((TileEntityLockableBase)te).getPins())); - player.addChatMessage(new ChatComponentText( - "Pick Chance: " + (((TileEntityLockableBase)te).getMod() * 100D) + "%")); - } - } - } - - player.addChatMessage(new ChatComponentText( - "----------------------------" - )); - } - - return true; - } - -} diff --git a/src/main/java/com/hbm/packet/AuxElectricityPacket.java b/src/main/java/com/hbm/packet/AuxElectricityPacket.java index bebb4e9c1..39c27e7e1 100644 --- a/src/main/java/com/hbm/packet/AuxElectricityPacket.java +++ b/src/main/java/com/hbm/packet/AuxElectricityPacket.java @@ -1,6 +1,6 @@ package com.hbm.packet; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyHandlerMK2; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; @@ -55,9 +55,9 @@ public class AuxElectricityPacket implements IMessage { try { TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - if (te instanceof IEnergyUser) { + if (te instanceof IEnergyHandlerMK2) { - IEnergyUser gen = (IEnergyUser) te; + IEnergyHandlerMK2 gen = (IEnergyHandlerMK2) te; gen.setPower(m.charge); } } catch (Exception x) { } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 33081cb50..394e66808 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -68,7 +68,6 @@ public class TileMappings { put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer"); put(TileEntityMachineBattery.class, "tileentity_battery"); put(TileEntityCapacitor.class, "tileentity_capacitor"); - put(TileEntityMachineCoal.class, "tileentity_coal"); put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner"); put(TileEntityRedBarrel.class, "tileentity_barrel"); put(TileEntityYellowBarrel.class, "tileentity_nukebarrel"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 7b2351785..ff1278e52 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -64,8 +64,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public void updateEntity() { if (!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); this.subscribeToAllAround(tank.getTankType(), this); watts = MathHelper.clamp_int(watts, 1, 100); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java index ff3e3a1ee..dadc37ec1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java @@ -19,7 +19,6 @@ import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.world.machine.FWatz; -import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -34,7 +33,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; -public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedInventory, IReactor, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedInventory, IReactor, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { public long power; public final static long maxPower = 10000000000L; @@ -281,7 +280,6 @@ public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedI if(!worldObj.isRemote && this.isStructureValid(this.worldObj)) { for(DirPos pos : this.getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -387,21 +385,6 @@ public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedI public boolean isRunning() { return FWatz.getPlasma(worldObj, this.xCoord, this.yCoord, this.zCoord) && this.isStructureValid(worldObj); } - - @Override - public long getMaxPower() { - return this.maxPower; - } - - @Override - public long getPower() { - return power; - } - - @Override - public void setPower(long i) { - this.power = i; - } @Override public void setFillForSync(int fill, int index) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index bdafebdbe..167f550c8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -21,7 +21,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.TileEntityHadronDiode.DiodeConfig; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -37,7 +37,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityHadron extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { public long power; public static final long maxPower = 10000000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java index 4e8bcf815..814711f6d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java @@ -4,12 +4,12 @@ import com.hbm.blocks.machine.BlockHadronPower; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHadronPower extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver { +public class TileEntityHadronPower extends TileEntityLoadedBase implements IEnergyReceiverMK2, INBTPacketReceiver { public long power; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java index 93f49a593..7c8a19797 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java @@ -7,7 +7,7 @@ import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.tile.IHeatSource; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; @@ -17,7 +17,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyUser, INBTPacketReceiver, IInfoProviderEC { +public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyReceiverMK2, INBTPacketReceiver, IInfoProviderEC { public long power; public int heatEnergy; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java index ec2e10421..a01b3b6f6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java @@ -5,14 +5,14 @@ import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.tile.IInfoProviderEC; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEnergyGenerator, IInfoProviderEC { +public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC { public long power; public long maxPower = 500; @@ -42,7 +42,7 @@ public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEne power = maxPower; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 085eb355e..f907bf852 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -13,7 +13,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -27,8 +27,9 @@ import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider, IInfoProviderEC { private ItemStack slots[]; @@ -315,8 +316,9 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements boolean flag1 = false; if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) + this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); if(hasPower() && canProcess()) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index f42fd7b9d..fc2837579 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -23,7 +23,7 @@ import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -39,7 +39,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider { public long power; public long maxPower = 2_000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index 836b03f1d..525df1eda 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -13,14 +13,14 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { public long power; public int[] progress; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index f3abfb2ba..9f1834c63 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -10,7 +10,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ItemStackUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -23,8 +23,9 @@ import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAutocrafter extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineAutocrafter extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { public static final String MODE_EXACT = "exact"; public static final String MODE_WILDCARD = "wildcard"; @@ -146,7 +147,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 20, power, maxPower); - this.updateStandardConnections(worldObj, this); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); if(!this.recipes.isEmpty() && this.power >= this.consumption) { IRecipe recipe = this.recipes.get(recipeIndex); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index 7830b63bb..dd61cdfae 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -21,8 +21,8 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -38,7 +38,7 @@ import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyUser, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider { private ItemStack slots[]; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index 247214a14..71694f632 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -18,7 +18,7 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -31,8 +31,9 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public int progress; public long power; @@ -155,8 +156,8 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement public void updateEntity() { if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); power = Library.chargeTEFromItems(slots, 1, power, maxPower); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 00318242c..0e1efc401 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -1,16 +1,12 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineChemplant; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineChemplant; @@ -29,7 +25,7 @@ import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -46,7 +42,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; @@ -78,7 +74,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements tanks = new FluidTank[4]; for(int i = 0; i < 4; i++) { - tanks[i] = new FluidTank(Fluids.NONE, 24_000, i); + tanks[i] = new FluidTank(Fluids.NONE, 24_000); } } @@ -123,10 +119,6 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements loadItems(); unloadItems(); - if(worldObj.getTotalWorldTime() % 10 == 0) { - this.fillFluidInit(tanks[2].getTankType()); - this.fillFluidInit(tanks[3].getTankType()); - } if(worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); } @@ -511,106 +503,6 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements public long getMaxPower() { return this.maxPower; } - - @Override - public void setFillForSync(int fill, int index) { - if(index >= 0 && index < tanks.length) tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - return; - } - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index >= 0 && index < tanks.length) tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - for(int i = 0; i < 2; i++) { - if(tanks[i].getTankType() == type) { - return tanks[i].getMaxFill(); - } - } - - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - - /* - * #### - * X####X - * X##O#X - * #### - */ - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - fillFluid(xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, this.getTact(), type); - fillFluid(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, this.getTact(), type); - fillFluid(xCoord + rot.offsetX * 3 + dir.offsetX, yCoord, zCoord + rot.offsetZ * 3 + dir.offsetZ, this.getTact(), type); - fillFluid(xCoord - rot.offsetX * 2 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 2 + dir.offsetZ, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - List[] lists = new List[] { - new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList() - }; - - @Override - public List getFluidList(FluidType type) { - - for(int i = 0; i < tanks.length; i++) { - if(tanks[i].getTankType() == type) { - return lists[i]; - } - } - - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - - for(int i = 0; i < tanks.length; i++) { - if(tanks[i].getTankType() == type) { - lists[i].clear(); - } - } - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 162a456f2..1ca2d230e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -16,7 +16,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidUser; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; @@ -32,7 +32,7 @@ import net.minecraft.tileentity.TileEntity; * Tanks follow the order R1(I1, I2, O1, O2), R2(I1, I2, O1, O2) ... * @author hbm */ -public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBase implements IEnergyUser, IFluidUser, IGUIProvider { +public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidUser, IGUIProvider { public long power; public int[] progress; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java deleted file mode 100644 index c616c9afc..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.tileentity.TileEntityMachineBase; - -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; - -@Deprecated -public class TileEntityMachineCoal extends TileEntityMachineBase implements ISidedInventory { - - public TileEntityMachineCoal() { - super(4); - } - - @Override - public String getName() { - return "container.machineCoal"; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - worldObj.setBlockToAir(xCoord, yCoord, zCoord); - EntityItem drop = new EntityItem(worldObj); - drop.setEntityItemStack(new ItemStack(ModBlocks.machine_wood_burner)); - drop.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); - worldObj.spawnEntityInWorld(drop); - } - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index eeb04c81e..8e4687ac3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -20,7 +20,7 @@ import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -33,7 +33,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCombustionEngine extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidStandardTransceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineCombustionEngine extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider { public boolean isOn = false; public static long maxPower = 2_500_000; @@ -52,7 +52,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin public TileEntityMachineCombustionEngine() { super(5, 50); - this.tank = new FluidTank(Fluids.DIESEL, 24_000, 0); + this.tank = new FluidTank(Fluids.DIESEL, 24_000); } @Override @@ -105,7 +105,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin this.power = Library.chargeItemsFromTE(slots, 3, power, power); for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 318a1a4d0..c3e94a705 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -23,7 +23,7 @@ import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -37,7 +37,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyUser, IFluidStandardTransceiver, IUpgradeInfoProvider { +public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider { public FluidTank[] tanks; public long power; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index c231fe7ce..3ead60a33 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -22,8 +22,8 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -38,7 +38,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 1000000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index f538dff8a..2b5d15c08 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -35,7 +35,7 @@ import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -52,7 +52,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index aec3af948..af951569c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -25,8 +25,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; @@ -39,7 +39,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { public long power; public int soundCycle = 0; @@ -132,7 +132,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen if(!worldObj.isRemote) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index b7bd4ec24..081aab10a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -16,7 +16,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -30,7 +30,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power = 0; public final static long maxPower = 50000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index e824f00c2..4636da4e2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -14,8 +14,8 @@ import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.I18nUtil; -import api.hbm.energy.IEnergyUser; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -29,7 +29,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider { // HOLY FUCKING SHIT I SPENT 5 DAYS ON THIS SHITFUCK CLASS FILE // thanks Martin, vaer and Bob for the help diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index ac6265b3a..2dbbcb63b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -35,7 +35,7 @@ import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.conveyor.IConveyorBelt; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; @@ -58,7 +58,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { public static final long maxPower = 1_000_000; public long power; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java index 160a35b0b..d733720ba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -17,7 +17,7 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; @@ -31,7 +31,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider, IEnergyUser, IUpgradeInfoProvider { +public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider, IEnergyReceiverMK2, IUpgradeInfoProvider { public long power; public static final long maxPower = 1_000_000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index bc51868ab..cf0ad2b1c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -19,7 +19,7 @@ import com.hbm.util.CompatEnergyControl; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -36,7 +36,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; //epic! -public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { public long power; public int progress; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 3b66c7d06..325b68a64 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -1,24 +1,17 @@ package com.hbm.tileentity.machine; -import java.io.IOException; - -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerIGenerator; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.gui.GUIIGenerator; -import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; @@ -34,7 +27,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineIGenerator extends TileEntityMachineBase implements IFluidAcceptor, IEnergyGenerator, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineIGenerator extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { public long power; public int spin; @@ -66,37 +59,6 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement protected long output; - @Override - public String getConfigName() { - return "igen"; - } - - @Override - public void readIfPresent(JsonObject obj) { - maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); - waterCap = IConfigurableMachine.grab(obj, "I:waterCap", waterCap); - oilCap = IConfigurableMachine.grab(obj, "I:oilCap", oilCap); - lubeCap = IConfigurableMachine.grab(obj, "I:lubeCap", lubeCap); - coalGenRate = IConfigurableMachine.grab(obj, "I:solidFuelRate2", coalGenRate); - rtgHeatMult = IConfigurableMachine.grab(obj, "D:rtgHeatMult", rtgHeatMult); - waterRate = IConfigurableMachine.grab(obj, "I:waterRate", waterRate); - lubeRate = IConfigurableMachine.grab(obj, "I:lubeRate", lubeRate); - fluidHeatDiv = IConfigurableMachine.grab(obj, "D:fluidHeatDiv", fluidHeatDiv); - } - - @Override - public void writeConfig(JsonWriter writer) throws IOException { - writer.name("L:powerCap").value(maxPower); - writer.name("I:waterCap").value(waterCap); - writer.name("I:oilCap").value(oilCap); - writer.name("I:lubeCap").value(lubeCap); - writer.name("I:solidFuelRate2").value(coalGenRate); - writer.name("D:rtgHeatMult").value(rtgHeatMult); - writer.name("I:waterRate").value(waterRate); - writer.name("I:lubeRate").value(lubeRate); - writer.name("D:fluidHeatDiv").value(fluidHeatDiv); - } - public TileEntityMachineIGenerator() { super(21); tanks = new FluidTank[3]; @@ -274,47 +236,6 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement FluidType type = tanks[1].getTankType(); return type.hasTrait(FT_Flammable.class) ? (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() / (con ? 5000L : fluidHeatDiv)) : 0; } - - @Override - public void setFillForSync(int fill, int index) { - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(type == Fluids.WATER) - tanks[0].setFill(fill); - else if(type == Fluids.LUBRICANT) - tanks[2].setFill(fill); - else if(tanks[1].getTankType() == type) - tanks[1].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - - for(int i = 0; i < 3; i++) - if(tanks[i].getTankType() == type) - return tanks[i].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - for(int i = 0; i < 3; i++) - if(tanks[i].getTankType() == type) - return tanks[i].getMaxFill(); - - return 0; - } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -345,26 +266,10 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } - @Override - public void setPower(long power) { - this.power = power; - } - - @Override - public long getPower() { - return this.power; - } - - @Override - public long getMaxPower() { - return this.maxPower; - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0], tanks[1], tanks[2] }; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 3041a8a9b..508e4d3a0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -24,7 +24,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; @@ -44,7 +44,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC { +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC { public long power; public static final long maxPower = 100000000; @@ -92,7 +92,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme fillFluidInit(tanks[1].getTankType()); ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.sendPower(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); + this.tryProvide(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); for(DirPos pos : getConPos()) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index fd4e39243..018855a6b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -31,7 +31,7 @@ import com.hbm.util.InventoryUtil; import api.hbm.block.IDrillInteraction; import api.hbm.block.IMiningDrill; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -54,7 +54,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public int age = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index d4d8c40cc..34e2b1498 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -21,7 +21,7 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -34,7 +34,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver, IUpgradeInfoProvider { +public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider { public long power; public static final long maxPower = 10_000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 583aa45ee..175e11a68 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -16,7 +16,7 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -29,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyUser, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 100000000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java index 25b22372d..288193818 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java @@ -4,10 +4,10 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import net.minecraft.nbt.NBTTagCompound; -public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase implements IEnergyUser { +public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase implements IEnergyReceiverMK2 { public long power; public static final long maxPower = 10_000; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index 255966614..56ab3442f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -11,7 +11,7 @@ import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; import com.hbm.util.RTGUtil; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -26,7 +26,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISidedInventory, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC { private ItemStack slots[]; @@ -211,7 +211,7 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided if(!worldObj.isRemote) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); heat = RTGUtil.updateRTGs(slots, slot_io); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java index c3977ba78..825937515 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java @@ -14,7 +14,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; import com.hbm.util.Tuple.Triplet; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -30,7 +30,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadGen extends TileEntityMachineBase implements IEnergyGenerator, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineRadGen extends TileEntityMachineBase implements IEnergyProviderMK2, IGUIProvider, IInfoProviderEC { public int[] progress = new int[12]; public int[] maxProgress = new int[12]; @@ -60,7 +60,7 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE this.output = 0; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.sendPower(worldObj, this.xCoord - dir.offsetX * 4, this.yCoord, this.zCoord - dir.offsetZ * 4, dir.getOpposite()); + this.tryProvide(worldObj, this.xCoord - dir.offsetX * 4, this.yCoord, this.zCoord - dir.offsetZ * 4, dir.getOpposite()); //check if reload necessary for any queues for(int i = 0; i < 12; i++) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index b53f86839..e4f255b8a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -32,7 +32,7 @@ import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.world.WorldUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.IRadarDetectableNT.RadarScanParams; @@ -60,7 +60,7 @@ import net.minecraft.world.WorldServer; * Now with SmЯt™ lag-free entity detection! (patent pending) * @author hbm */ -public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IConfigurableMachine, IControlReceiver { +public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IConfigurableMachine, IControlReceiver { public boolean scanMissiles = true; public boolean scanShells = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index cc5210787..612cdabfd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -24,7 +24,7 @@ import com.hbm.util.RTGUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; @@ -39,7 +39,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { public long power; public static final int maxPower = 1000000; @@ -144,7 +144,7 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement } for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java index 9e1a58aa7..f659905d0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java @@ -5,12 +5,12 @@ import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.tile.IInfoProviderEC; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; -public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnergyGenerator, IInfoProviderEC { +public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -22,11 +22,11 @@ public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnerg if(!worldObj.isRemote) { - this.sendPower(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X); - this.sendPower(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X); - this.sendPower(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z); - this.sendPower(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z); - this.sendPower(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); + this.tryProvide(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X); + this.tryProvide(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X); + this.tryProvide(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z); + this.tryProvide(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z); + this.tryProvide(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); if(worldObj.getTotalWorldTime() % 20 == 0) gen = checkStructure() * 15; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index 638971d73..8693ef3c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -12,8 +12,8 @@ import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IEnergyUser; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -24,7 +24,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { public long power = 0; public int process = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index f31be1e46..6a30be6fe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -1,47 +1,17 @@ package com.hbm.tileentity.machine; -import java.io.IOException; -import java.util.HashMap; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; -import com.hbm.inventory.container.ContainerMachineSelenium; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.fluid.trait.FT_Combustible; -import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; -import com.hbm.inventory.gui.GUIMachineSelenium; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyGenerator; import api.hbm.energymk2.IBatteryItem; -import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider { +public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implements ISidedInventory { private ItemStack slots[]; @@ -51,27 +21,11 @@ public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implem public FluidTank tank; public int pistonCount = 0; - public static long maxPower = 250000; - public static int fluidCap = 16000; - public static double pistonExp = 1.0D; - public static boolean shutUp = false; - public static HashMap fuelEfficiency = new HashMap(); - static { - fuelEfficiency.put(FuelGrade.LOW, 0.75D); - fuelEfficiency.put(FuelGrade.MEDIUM, 0.5D); - fuelEfficiency.put(FuelGrade.HIGH, 0.25D); - fuelEfficiency.put(FuelGrade.AERO, 0.00D); - } - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 1, 2 }; - private static final int[] slots_side = new int[] { 2 }; private String customName; public TileEntityMachineSeleniumEngine() { slots = new ItemStack[14]; - tank = new FluidTank(Fluids.DIESEL, fluidCap, 0); } @Override @@ -211,225 +165,16 @@ public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implem @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); + return new int[0]; } @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if (i == 1) - if (itemStack.getItem() == ModItems.canister_empty || itemStack.getItem() == ModItems.tank_steel) - return true; - if (i == 2) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) - return true; - + public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { return false; } - public long getPowerScaled(long i) { - return (power * i) / powerCap; - } - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - this.subscribeToAllAround(tank.getTankType(), this); - this.sendPower(worldObj, xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN); - - pistonCount = countPistons(); - - //Tank Management - tank.setType(11, 12, slots); - tank.loadTank(9, 10, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - FluidType type = tank.getTankType(); - if(type == Fluids.NITAN) - powerCap = maxPower * 10; - else - powerCap = maxPower; - - // Battery Item - power = Library.chargeItemsFromTE(slots, 13, power, powerCap); - - if(this.pistonCount > 2) - generate(); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, pistonCount, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, (int)powerCap, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - - public int countPistons() { - int count = 0; - - for(int i = 0; i < 9; i++) { - if(slots[i] != null && slots[i].getItem() == ModItems.piston_selenium) - count++; - } - - return count; - } - - public boolean hasAcceptableFuel() { - return getHEFromFuel() > 0; - } - - public long getHEFromFuel() { - return getHEFromFuel(tank.getTankType()); - } - - public static long getHEFromFuel(FluidType type) { - - if(type.hasTrait(FT_Combustible.class)) { - FT_Combustible fuel = type.getTrait(FT_Combustible.class); - FuelGrade grade = fuel.getGrade(); - double efficiency = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0; - return (long) (fuel.getCombustionEnergy() / 1000L * efficiency); - } - - return 0; - } - - public void generate() { - if (hasAcceptableFuel()) { - if (tank.getFill() > 0) { - - if(!shutUp) { - if (soundCycle == 0) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", this.getVolume(1.0F), 0.5F); - } - soundCycle++; - - if (soundCycle >= 3) - soundCycle = 0; - } - - tank.setFill(tank.getFill() - this.pistonCount); - if(tank.getFill() < 0) - tank.setFill(0); - - power += getHEFromFuel() * Math.pow(this.pistonCount, pistonExp); - - if(power > powerCap) - power = powerCap; - } - } - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void setPower(long i) { - this.power = i; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } - - @Override - public boolean canConnect(ForgeDirection dir) { - return dir == ForgeDirection.DOWN; - } - - @Override - public String getConfigName() { - return "radialengine"; - } - - @Override - public void readIfPresent(JsonObject obj) { - maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); - fluidCap = IConfigurableMachine.grab(obj, "I:fuelCap", fluidCap); - pistonExp = IConfigurableMachine.grab(obj, "D:pistonGenExponent", pistonExp); - - if(obj.has("D[:efficiency")) { - JsonArray array = obj.get("D[:efficiency").getAsJsonArray(); - for(FuelGrade grade : FuelGrade.values()) { - fuelEfficiency.put(grade, array.get(grade.ordinal()).getAsDouble()); - } - } - - shutUp = IConfigurableMachine.grab(obj, "B:shutUp", shutUp); - } - - @Override - public void writeConfig(JsonWriter writer) throws IOException { - writer.name("L:powerCap").value(maxPower); - writer.name("I:fuelCap").value(fluidCap); - writer.name("D:pistonGenExponent").value(pistonExp); - - String info = "Fuel grades in order: "; - for(FuelGrade grade : FuelGrade.values()) info += grade.name() + " "; - info = info.trim(); - writer.name("INFO").value(info); - - writer.name("D[:efficiency").beginArray().setIndent(""); - for(FuelGrade grade : FuelGrade.values()) { - double d = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0.0D; - writer.value(d); - } - writer.endArray().setIndent(" "); - writer.name("B:shutUp").value(shutUp); - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] {tank}; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tank}; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineSelenium(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineSelenium(player.inventory, this); + public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { + return false; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index 82bb816ea..9ac85cf5c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -10,8 +10,8 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -25,7 +25,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineShredder extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider { +public class TileEntityMachineShredder extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider { private ItemStack slots[]; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleporter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleporter.java index 9baaffd5f..0784cd130 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleporter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleporter.java @@ -6,7 +6,7 @@ import java.util.List; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.entity.Entity; @@ -27,8 +27,9 @@ import net.minecraft.util.IntHashMap; import net.minecraft.util.MathHelper; import net.minecraft.world.WorldServer; import net.minecraft.world.chunk.IChunkProvider; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver { +public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements IEnergyReceiverMK2, INBTPacketReceiver { public long power = 0; public int targetX = -1; @@ -42,7 +43,7 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements public void updateEntity() { if(!this.worldObj.isRemote) { - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); if(this.targetY != -1) { List entities = this.worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(this.xCoord + 0.25, this.yCoord, this.zCoord + 0.25, this.xCoord + 0.75, this.yCoord + 2, this.zCoord + 0.75)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 867a09d8b..9221bcb5d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -16,8 +16,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; @@ -39,7 +39,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC { +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC { private ItemStack slots[]; @@ -239,7 +239,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS this.subscribeToAllAround(tanks[0].getTankType(), this); for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); tanks[0].setType(0, 1, slots); tanks[0].loadTank(2, 3, slots); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 6e784e6e7..28895add2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -21,7 +21,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; @@ -41,7 +41,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC { +public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyProviderMK2, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC { public long power; public static final long maxPower = 1000000L; @@ -136,7 +136,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement //do net/battery deductions first... power = Library.chargeItemsFromTE(slots, 0, power, maxPower); - this.sendPower(worldObj, xCoord - dir.offsetZ * 5, yCoord + 1, zCoord + dir.offsetX * 5, rot); //sends out power + this.tryProvide(worldObj, xCoord - dir.offsetZ * 5, yCoord + 1, zCoord + dir.offsetX * 5, rot); //sends out power //...and then cap it. Prevents potential future cases where power would be limited due to the fuel being too strong and the buffer too small. if(this.power > this.maxPower) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index a1b83fb45..d5155190d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -32,7 +32,7 @@ import com.hbm.util.CompatEnergyControl; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -51,7 +51,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 1_000_000; @@ -182,7 +182,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem power = Library.chargeItemsFromTE(slots, 3, power, power); for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(this.blood.getFill() > 0) this.sendFluid(blood, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index 6f4bb62dc..72306abf9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -19,7 +19,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; @@ -33,7 +33,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyGenerator, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC { public long power; public static final long maxPower = 100_000; @@ -73,7 +73,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement this.power = Library.chargeItemsFromTE(slots, 5, power, maxPower); for(DirPos pos : getConPos()) { - if(power > 0) this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(power > 0) this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java index a04e4d5f9..781adaa14 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java @@ -23,6 +23,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, SimpleComponent { @@ -48,8 +49,8 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg public void updateEntity() { if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); this.power = Library.chargeTEFromItems(slots, 2, power, maxPower); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java index 3c0f29220..a09c5747e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java @@ -1,26 +1,20 @@ package com.hbm.tileentity.machine; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; -import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -30,14 +24,13 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine { +public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine { public long powerBuffer; public float rotor; public float lastRotor; private float syncRotor; - public List list2 = new ArrayList(); public FluidTank[] tanks; private int turnProgress; @@ -51,8 +44,8 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui public TileEntitySteamEngine() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, steamCap, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, ldsCap, 1); + tanks[0] = new FluidTank(Fluids.STEAM, steamCap); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, ldsCap); } @Override @@ -117,12 +110,10 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui tanks[1].writeToNBT(data, "w"); for(DirPos pos : getConPos()) { - if(this.powerBuffer > 0) - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(this.powerBuffer > 0) this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - if(tanks[1].getFill() > 0) fillFluidInit(tanks[1].getTankType()); INBTPacketReceiver.networkPack(this, data, 150); } else { @@ -168,69 +159,6 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui tanks[0].writeToNBT(nbt, "s"); tanks[1].writeToNBT(nbt, "w"); } - - @Override - public void fillFluidInit(FluidType type) { - for(DirPos pos : getConPos()) fillFluid(pos.getX(), pos.getY(), pos.getZ(), getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java index fc2560845..610ba487d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java @@ -13,7 +13,7 @@ import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -22,7 +22,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityStirling extends TileEntityLoadedBase implements INBTPacketReceiver, IEnergyGenerator, IConfigurableMachine { +public class TileEntityStirling extends TileEntityLoadedBase implements INBTPacketReceiver, IEnergyProviderMK2, IConfigurableMachine { public long powerBuffer; public int heat; @@ -95,7 +95,7 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack if(hasCog) { for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } this.powerBuffer = 0; } else { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 261de2700..ac39e371a 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine.storage; -import api.hbm.energy.*; import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; import api.hbm.tile.IInfoProviderEC; import com.hbm.blocks.machine.MachineBattery; From c16818c15db3eb75467bb9b1f5e9cc4d92e1f691 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 11 Apr 2024 16:08:04 +0200 Subject: [PATCH 327/376] i can hear satan's voice, he's telling me to invest in apple. what does this mean? why does he want me to buy apples?? --- .../java/api/hbm/energymk2/Nodespace.java | 20 ++------- .../java/api/hbm/energymk2/PowerNetMK2.java | 7 ++++ .../blocks/machine/MachineSeleniumEngine.java | 20 +-------- .../hbm/blocks/network/BlockCableGauge.java | 25 +++++------ .../java/com/hbm/packet/AuxButtonPacket.java | 2 + .../network/TileEntityCableBaseNT.java | 15 +++++-- .../network/TileEntityCableSwitch.java | 21 ++++------ .../network/TileEntityConverterHeRf.java | 42 +++++-------------- .../network/TileEntityConverterRfHe.java | 6 +-- 9 files changed, 54 insertions(+), 104 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index 48afb9b56..ea5b6543f 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -56,19 +56,6 @@ public class Nodespace { checkNodeConnection(world, node); node.recentlyChanged = false; } - - /*if(node.hasValidNet()) { - - for(BlockPos pos : node.positions) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "marker"); - data.setInteger("color", node.net.hashCode() % 0xffffff); - data.setInteger("expires", 250); - data.setDouble("dist", 50D); - data.setString("label", "" + node.net.links.size()); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX(), pos.getY(), pos.getZ()), new TargetPoint(world.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), 50)); - } - }*/ } } @@ -76,10 +63,9 @@ public class Nodespace { } private static void updatePowerNets() { - - for(PowerNetMK2 net : activePowerNets) { - net.transferPower(); - } + + for(PowerNetMK2 net : activePowerNets) net.resetEnergyTracker(); //reset has to be done before everything else + for(PowerNetMK2 net : activePowerNets) net.transferPower(); } /** Goes over each connection point of the given node, tries to find neighbor nodes and to join networks with them */ diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index c509d1cef..2b2a5e24b 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -19,6 +19,8 @@ public class PowerNetMK2 { public HashMap receiverEntries = new HashMap(); public HashMap providerEntries = new HashMap(); + public long energyTracker = 0L; + public PowerNetMK2() { Nodespace.activePowerNets.add(this); } @@ -104,6 +106,10 @@ public class PowerNetMK2 { this.providerEntries.clear(); } + public void resetEnergyTracker() { + this.energyTracker = 0; + } + public void transferPower() { int timeout = 3_000; @@ -167,6 +173,7 @@ public class PowerNetMK2 { prevDest += finalTransfer; toTransfer -= finalTransfer; + this.energyTracker += finalTransfer; } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java index d1d598932..933514087 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java @@ -1,10 +1,7 @@ package com.hbm.blocks.machine; -import java.util.List; import java.util.Random; -import com.hbm.blocks.ITooltipProvider; -import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; @@ -18,11 +15,10 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class MachineSeleniumEngine extends BlockContainer implements ITooltipProvider { +public class MachineSeleniumEngine extends BlockContainer { private final Random field_149933_a = new Random(); private static boolean keepInventory; @@ -127,18 +123,4 @@ public class MachineSeleniumEngine extends BlockContainer implements ITooltipPro return false; } } - - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); - for(FuelGrade grade : FuelGrade.values()) { - Double efficiency = TileEntityMachineSeleniumEngine.fuelEfficiency.get(grade); - - if(efficiency != null) { - int eff = (int) (efficiency * 100); - list.add(EnumChatFormatting.YELLOW + "-" + grade.getGrade() + ": " + EnumChatFormatting.RED + "" + eff + "%"); - } - } - } } diff --git a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java index 54921d0c7..980bdfb32 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java +++ b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java @@ -1,6 +1,5 @@ package com.hbm.blocks.network; -import java.math.BigInteger; import java.util.ArrayList; import java.util.List; @@ -14,6 +13,7 @@ import com.hbm.tileentity.network.TileEntityCableBaseNT; import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; +import api.hbm.energymk2.PowerNetMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; @@ -100,7 +100,6 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, public static class TileEntityCableGauge extends TileEntityCableBaseNT implements INBTPacketReceiver { - private BigInteger lastMeasurement = BigInteger.valueOf(10); private long deltaTick = 0; private long deltaSecond = 0; private long deltaLastSecond = 0; @@ -111,20 +110,16 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, if(!worldObj.isRemote) { - if(network != null) { - BigInteger total = network.getTotalTransfer(); - BigInteger delta = total.subtract(this.lastMeasurement); - this.lastMeasurement = total; + if(this.node != null && this.node.net != null) { - try { - this.deltaTick = delta.longValueExact(); - if(worldObj.getTotalWorldTime() % 20 == 0) { - this.deltaLastSecond = this.deltaSecond; - this.deltaSecond = 0; - } - this.deltaSecond += deltaTick; - - } catch(Exception ex) { } + PowerNetMK2 net = this.node.net; + + this.deltaTick = net.energyTracker; + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.deltaLastSecond = this.deltaSecond; + this.deltaSecond = 0; + } + this.deltaSecond += deltaTick; } NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/packet/AuxButtonPacket.java b/src/main/java/com/hbm/packet/AuxButtonPacket.java index e2965706e..c80dfd5ef 100644 --- a/src/main/java/com/hbm/packet/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/AuxButtonPacket.java @@ -15,6 +15,7 @@ import com.hbm.tileentity.machine.TileEntitySoyuzLauncher; import com.hbm.tileentity.machine.storage.TileEntityBarrel; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; +import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; @@ -67,6 +68,7 @@ public class AuxButtonPacket implements IMessage { public static class Handler implements IMessageHandler { + @SuppressWarnings("incomplete-switch") @Override public IMessage onMessage(AuxButtonPacket m, MessageContext ctx) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java index 1953880ba..8afaeb73c 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java @@ -16,16 +16,23 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto if(!worldObj.isRemote) { if(this.node == null || this.node.expired) { - this.node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); - if(this.node == null || this.node.expired) { - this.node = this.createNode(); - Nodespace.createNode(worldObj, this.node); + if(this.shouldCreateNode()) { + this.node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); + + if(this.node == null || this.node.expired) { + this.node = this.createNode(); + Nodespace.createNode(worldObj, this.node); + } } } } } + public boolean shouldCreateNode() { + return true; + } + public void onNodeDestroyedCallback() { this.node = null; } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java b/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java index e8a80f871..0f7adcda1 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java @@ -1,6 +1,6 @@ package com.hbm.tileentity.network; -import api.hbm.energy.PowerNet; +import api.hbm.energymk2.Nodespace; public class TileEntityCableSwitch extends TileEntityCableBaseNT { @@ -13,21 +13,14 @@ public class TileEntityCableSwitch extends TileEntityCableBaseNT { //if the meta is 0 (OFF) and there is a net present, destroy and de-reference it. //that should be all, since the state being 0 also prevents the TE from updating and joining the new net. - if(this.getBlockMetadata() == 0 && this.network != null) { - this.network.reevaluate(); - this.network = null; - } - - if(this.getBlockMetadata() == 1) { - this.connect(); - - if(this.getPowerNet() == null) { - new PowerNet().joinLink(this); - } + if(this.getBlockMetadata() == 0 && this.node != null) { + Nodespace.destroyNode(worldObj, xCoord, yCoord, zCoord); + this.node = null; } } - public boolean canReevaluate() { - return super.canReevaluate() && this.getBlockMetadata() == 1; + @Override + public boolean shouldCreateNode() { + return this.getBlockMetadata() == 1; } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java index 941f83c1c..325e31ee1 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java @@ -3,13 +3,13 @@ package com.hbm.tileentity.network; import com.hbm.calc.Location; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyConnector; +import api.hbm.energymk2.IEnergyReceiverMK2; import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyReceiver; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEnergyConnector, IEnergyHandler { +public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEnergyReceiverMK2, IEnergyHandler { //Thanks to the great people of Fusion Warfare for helping me with the original implementation of the RF energy API @@ -22,30 +22,13 @@ public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEn } } - @Override - public boolean canConnectEnergy(ForgeDirection from) { - return true; - } - - @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 0; - } - - @Override - public long getPower() { - return 0; - } + @Override public boolean canConnectEnergy(ForgeDirection from) { return true; } + @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { return 0; } + @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 0; } + @Override public long getPower() { return 0; } + @Override public void setPower(long power) { } @Override public long getMaxPower() { @@ -55,7 +38,7 @@ public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEn private long lastTransfer = 0; @Override - public long getTransferWeight() { + public long getReceiverSpeed() { if(lastTransfer > 0) { return lastTransfer * 2; @@ -63,11 +46,6 @@ public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEn return getMaxPower(); } } - - @Override - public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { - return 0; - } private boolean recursionBrake = false; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java index 7346c5066..a41c62ce2 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java @@ -3,11 +3,11 @@ package com.hbm.tileentity.network; import com.hbm.interfaces.Untested; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import cofh.api.energy.IEnergyHandler; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEnergyGenerator, IEnergyHandler { +public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEnergyProviderMK2, IEnergyHandler { @Override public void setPower(long power) { @@ -48,7 +48,7 @@ public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEn subBuffer = capacity; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } recursionBrake = false; From e5dffd3d2a570a4f1fec7fe701faa79fa29f4d51 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 11 Apr 2024 21:58:47 +0200 Subject: [PATCH 328/376] NEITHER SNOW NOR RAIN NOR THE GLOOM OF NIGHT --- .../java/api/hbm/energymk2/Nodespace.java | 29 ++++++-- .../java/api/hbm/energymk2/PowerNetMK2.java | 4 + .../com/hbm/blocks/network/CableDiode.java | 39 +++++----- .../hbm/inventory/gui/GUIMachineSelenium.java | 45 ----------- .../com/hbm/items/tool/ItemPowerNetTool.java | 74 +++++++------------ .../hbm/render/tileentity/RenderSelenium.java | 3 - .../network/TileEntityConnector.java | 37 +++------- .../tileentity/network/TileEntityPylon.java | 28 ++++--- .../network/TileEntityPylonBase.java | 49 +++++------- .../network/TileEntitySubstation.java | 50 +++++-------- 10 files changed, 138 insertions(+), 220 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index ea5b6543f..3f0888859 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -79,13 +79,8 @@ public class Nodespace { if(conNode.hasValidNet() && conNode.net == node.net) continue; // if the net is valid and both nodes have the same net, skip - for(DirPos revCon : conNode.connections) { // check if neighbor node also has a valid reverse connection - - // god i hope i didn't fuck this up my brain is hurting already - if(revCon.getX() - revCon.getDir().offsetX == con.getX() && revCon.getY() - revCon.getDir().offsetY == con.getY() && revCon.getZ() - revCon.getDir().offsetZ == con.getZ() && revCon.getDir() == con.getDir().getOpposite()) { - connectToNode(node, conNode); - break; - } + if(checkConnection(conNode, con, false)) { + connectToNode(node, conNode); } } } @@ -93,6 +88,18 @@ public class Nodespace { if(node.net == null || !node.net.isValid()) new PowerNetMK2().joinLink(node); } + public static boolean checkConnection(PowerNode connectsTo, DirPos connectFrom, boolean skipSideCheck) { + + for(DirPos revCon : connectsTo.connections) { + + if(revCon.getX() - revCon.getDir().offsetX == connectFrom.getX() && revCon.getY() - revCon.getDir().offsetY == connectFrom.getY() && revCon.getZ() - revCon.getDir().offsetZ == connectFrom.getZ() && (revCon.getDir() == connectFrom.getDir().getOpposite() || skipSideCheck)) { + return true; + } + } + + return false; + } + /** Links two nodes with different or potentially no networks */ private static void connectToNode(PowerNode origin, PowerNode connection) { @@ -166,6 +173,14 @@ public class Nodespace { return this; } + public PowerNode addConnection(DirPos connection) { + DirPos[] newCons = new DirPos[this.connections.length + 1]; + for(int i = 0; i < this.connections.length; i++) newCons[i] = this.connections[i]; + newCons[newCons.length - 1] = connection; + this.connections = newCons; + return this; + } + public boolean hasValidNet() { return this.net != null && this.net.isValid(); } diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index 2b2a5e24b..5f9f509be 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -177,6 +177,10 @@ public class PowerNetMK2 { } } + public long sendPowerDiode(long power) { + return power; + } + public static final ReceiverComparator COMP = new ReceiverComparator(); public static class ReceiverComparator implements Comparator { diff --git a/src/main/java/com/hbm/blocks/network/CableDiode.java b/src/main/java/com/hbm/blocks/network/CableDiode.java index 3cdbb238e..ad16ef673 100644 --- a/src/main/java/com/hbm/blocks/network/CableDiode.java +++ b/src/main/java/com/hbm/blocks/network/CableDiode.java @@ -8,9 +8,14 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.block.IToolable; import api.hbm.energymk2.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; +import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -136,7 +141,7 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, return new TileEntityDiode(); } - public static class TileEntityDiode extends TileEntityLoadedBase implements IEnergyUser { + public static class TileEntityDiode extends TileEntityLoadedBase implements IEnergyReceiverMK2 { @Override public void readFromNBT(NBTTagCompound nbt) { @@ -189,9 +194,9 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, return dir != getDir(); } + /** Used as an intra-tick tracker for how much energy has been transmitted, resets to 0 each tick and maxes out based on transfer */ + private long power; private boolean recursionBrake = false; - private long subBuffer; - private long contingent = 0; private long lastTransfer = 0; private int pulses = 0; public ConnectionPriority priority = ConnectionPriority.NORMAL; @@ -206,31 +211,25 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, if(lastTransfer != worldObj.getTotalWorldTime()) { lastTransfer = worldObj.getTotalWorldTime(); - contingent = getMaxPower(); pulses = 0; + this.setPower(0); //tick is over, reset our allowed transfe } - if(contingent <= 0 || pulses > 10) - return power; - - //this part turns "maxPower" from a glorified transfer weight into an actual transfer cap - long overShoot = Math.max(0, power - contingent); - power = Math.min(power, contingent); + if(this.getPower() >= this.getMaxPower() || pulses > 10) return power; //if we have already maxed out transfer or max pulses, abort recursionBrake = true; - this.subBuffer = power; ForgeDirection dir = getDir(); - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - long ret = this.subBuffer; + PowerNode node = Nodespace.getNode(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - long sent = power - ret; - contingent -= sent; + if(node.hasValidNet() && Nodespace.checkConnection(node, new DirPos(xCoord, yCoord, zCoord, dir), false)) { + long prevPower = power; + power = node.net.sendPowerDiode(power); + this.power += (prevPower - power); + } - this.subBuffer = 0; recursionBrake = false; - - return ret + overShoot; + return power; } @@ -241,12 +240,12 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, @Override public long getPower() { - return subBuffer; + return Math.min(power, this.getMaxPower()); } @Override public void setPower(long power) { - this.subBuffer = power; + this.power = power; } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java index 9c34f199d..5c436c06e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java @@ -1,20 +1,14 @@ package com.hbm.inventory.gui; -import java.util.ArrayList; -import java.util.List; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineSelenium; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; -import com.hbm.util.BobMathUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIMachineSelenium extends GuiInfoContainer { @@ -36,22 +30,6 @@ public class GUIMachineSelenium extends GuiInfoContainer { selenium.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 108, 160, 16, selenium.power, selenium.powerCap); - - List text = new ArrayList(); - text.add(EnumChatFormatting.YELLOW + "Accepted Fuels:"); - - for(FluidType type : Fluids.getInNiceOrder()) { - long energy = selenium.getHEFromFuel(type); - - if(energy > 0) - text.add(" " + type.getLocalizedName() + " (" + BobMathUtil.getShortNumber(energy) + "HE/t)"); - } - - text.add(EnumChatFormatting.ITALIC + "(These numbers are base values,"); - text.add(EnumChatFormatting.ITALIC + "actual output is based"); - text.add(EnumChatFormatting.ITALIC + "on piston count)"); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text.toArray(new String[0])); String[] text1 = new String[] { "Fuel consumption rate:", " 1 mB/t", @@ -65,13 +43,6 @@ public class GUIMachineSelenium extends GuiInfoContainer { "required to operate this radial engine!" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); } - - if(!selenium.hasAcceptableFuel()) { - - String[] text2 = new String[] { "Error: The currently set fuel type", - "is not supported by this engine!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 48, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); - } } @Override @@ -88,19 +59,6 @@ public class GUIMachineSelenium extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(selenium.power > 0) { - int i = (int)selenium.getPowerScaled(160); - - i = (int) Math.min(i, 160); - - drawTexturedModalRect(guiLeft + 8, guiTop + 108, 0, 222, i, 16); - } - - if(selenium.tank.getFill() > 0 && selenium.hasAcceptableFuel() && selenium.pistonCount > 2) - { - drawTexturedModalRect(guiLeft + 115, guiTop + 71, 192, 0, 18, 18); - } - if(selenium.pistonCount > 0) { int k = selenium.pistonCount; @@ -110,9 +68,6 @@ public class GUIMachineSelenium extends GuiInfoContainer { if(selenium.pistonCount < 3) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - if(!selenium.hasAcceptableFuel()) - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 48, 16, 16, 7); - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); diff --git a/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java index 10b0d2d20..a5907f3f5 100644 --- a/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java +++ b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java @@ -6,11 +6,12 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.util.ChatBuilder; +import com.hbm.util.fauxpointtwelve.BlockPos; -import api.hbm.energy.IEnergyConductor; -import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IPowerNet; -import api.hbm.energy.PowerNet; +import api.hbm.energymk2.IEnergyConductorMK2; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; +import api.hbm.energymk2.PowerNetMK2; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; @@ -19,7 +20,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ItemPowerNetTool extends Item { @@ -44,51 +44,33 @@ public class ItemPowerNetTool extends Item { if(world.isRemote) return true; - if((te instanceof IEnergyConductor)) { + if((te instanceof IEnergyConductorMK2)) { + PowerNode node = Nodespace.getNode(world, x, y, z); - IEnergyConductor con = (IEnergyConductor) te; - IPowerNet net = con.getPowerNet(); - - if(net == null) { - player.addChatComponentMessage(ChatBuilder.start("Error: No network found! This should be impossible!").color(EnumChatFormatting.RED).flush()); - return true; - } - - if(!(net instanceof PowerNet)) { - player.addChatComponentMessage(ChatBuilder.start("Error: Cannot print diagnostic for non-standard power net implementation!").color(EnumChatFormatting.RED).flush()); - } - - PowerNet network = (PowerNet) net; - String id = Integer.toHexString(net.hashCode()); - - player.addChatComponentMessage(ChatBuilder.start("Start of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); - player.addChatComponentMessage(ChatBuilder.start("Links: " + network.getLinks().size()).color(EnumChatFormatting.YELLOW).flush()); - player.addChatComponentMessage(ChatBuilder.start("Proxies: " + network.getProxies().size()).color(EnumChatFormatting.YELLOW).flush()); - player.addChatComponentMessage(ChatBuilder.start("Subscribers: " + network.getSubscribers().size()).color(EnumChatFormatting.YELLOW).flush()); - player.addChatComponentMessage(ChatBuilder.start("End of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); - - for(IEnergyConductor link : network.getLinks()) { - Vec3 pos = link.getDebugParticlePos(); + if(node != null && node.hasValidNet()) { - boolean errored = link.getPowerNet() != net; + PowerNetMK2 net = node.net; + String id = Integer.toHexString(net.hashCode()); + player.addChatComponentMessage(ChatBuilder.start("Start of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); + player.addChatComponentMessage(ChatBuilder.start("Links: " + net.links.size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("Providers: " + net.providerEntries.size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("Receivers: " + net.receiverEntries.size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("End of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "debug"); - data.setInteger("color", errored ? 0xff0000 : 0xffff00); - data.setFloat("scale", 0.5F); - data.setString("text", id); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); - } - - for(IEnergyConnector subscriber : network.getSubscribers()) { - Vec3 pos = subscriber.getDebugParticlePos(); + for(PowerNode link : net.links) { + + for(BlockPos pos : link.positions) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0xffff00); + data.setFloat("scale", 0.5F); + data.setString("text", id); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5), new TargetPoint(world.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), radius)); + } + } - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "debug"); - data.setInteger("color", 0x0000ff); - data.setFloat("scale", 1.5F); - data.setString("text", id); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); + } else { + player.addChatComponentMessage(ChatBuilder.start("Error: No network found!").color(EnumChatFormatting.RED).flush()); } return true; diff --git a/src/main/java/com/hbm/render/tileentity/RenderSelenium.java b/src/main/java/com/hbm/render/tileentity/RenderSelenium.java index 8ee84a595..53362572b 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSelenium.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSelenium.java @@ -46,9 +46,6 @@ public class RenderSelenium extends TileEntitySpecialRenderer { ResourceManager.selenium_piston.renderAll(); GL11.glRotatef(rot, 0, 0, 1); } - - if(count > 2 && ((TileEntityMachineSeleniumEngine)tileEntity).hasAcceptableFuel() && ((TileEntityMachineSeleniumEngine)tileEntity).tank.getFill() > 0) - GL11.glRotatef((System.currentTimeMillis() / 2) % 360, 0F, 0F, -1F); bindTexture(ResourceManager.selenium_rotor_tex); ResourceManager.selenium_rotor.renderAll(); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java index dc20b8f8d..5c84cb609 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java @@ -1,9 +1,9 @@ package com.hbm.tileentity.network; -import java.util.ArrayList; -import java.util.List; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyConductor; +import api.hbm.energymk2.Nodespace.PowerNode; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; @@ -24,33 +24,14 @@ public class TileEntityConnector extends TileEntityPylonBase { public double getMaxWireLength() { return 10; } - + @Override - public List getConnectionPoints() { - List pos = new ArrayList(connected); - + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); - //pos.add(new int[] {xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ}); - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - if(te instanceof IEnergyConductor) { - - IEnergyConductor conductor = (IEnergyConductor) te; - - if(conductor.canConnect(dir.getOpposite())) { - - if(this.getPowerNet() == null && conductor.getPowerNet() != null) { - conductor.getPowerNet().joinLink(this); - } - - if(this.getPowerNet() != null && conductor.getPowerNet() != null && this.getPowerNet() != conductor.getPowerNet()) { - conductor.getPowerNet().joinNetworks(this.getPowerNet()); - } - } - } - - return pos; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections(new DirPos(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir)); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + return node; } @Override diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java index 3dde2245e..655800077 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java @@ -1,8 +1,11 @@ package com.hbm.tileentity.network; -import java.util.ArrayList; -import java.util.List; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.energymk2.Nodespace.PowerNode; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; @@ -22,14 +25,19 @@ public class TileEntityPylon extends TileEntityPylonBase { public double getMaxWireLength() { return 25D; } - + @Override - public List getConnectionPoints() { - List pos = new ArrayList(connected); - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - pos.add(new int[] {xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ}); - } - return pos; + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord + 1, zCoord, Library.POS_Y), + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z) + ); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + return node; } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java index 09e335094..76e560e33 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java @@ -3,7 +3,11 @@ package com.hbm.tileentity.network; import java.util.ArrayList; import java.util.List; -import api.hbm.energy.IEnergyConductor; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -14,6 +18,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.ForgeDirection; public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { @@ -40,15 +45,22 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { return len >= delta.lengthVector() ? 0 : 3; } + + @Override + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + return node; + } public void addConnection(int x, int y, int z) { connected.add(new int[] {x, y, z}); - if(this.getPowerNet() != null) { - this.getPowerNet().reevaluate(); - this.network = null; - } + PowerNode node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); + node.recentlyChanged = true; + node.addConnection(new DirPos(x, y, z, ForgeDirection.UNKNOWN)); this.markDirty(); @@ -87,33 +99,8 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { } } } - } - - @Override - protected void connect() { - for(int[] pos : getConnectionPoints()) { - - TileEntity te = worldObj.getTileEntity(pos[0], pos[1], pos[2]); - - if(te instanceof IEnergyConductor) { - - IEnergyConductor conductor = (IEnergyConductor) te; - - if(this.getPowerNet() == null && conductor.getPowerNet() != null) { - conductor.getPowerNet().joinLink(this); - } - - if(this.getPowerNet() != null && conductor.getPowerNet() != null && this.getPowerNet() != conductor.getPowerNet()) { - conductor.getPowerNet().joinNetworks(this.getPowerNet()); - } - } - } - } - - @Override - public List getConnectionPoints() { - return new ArrayList(connected); + Nodespace.destroyNode(worldObj, xCoord, yCoord, zCoord); } public abstract ConnectionType getConnectionType(); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java index 6f4235e38..a0b414a43 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java @@ -1,12 +1,14 @@ package com.hbm.tileentity.network; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyConductor; +import api.hbm.energymk2.Nodespace.PowerNode; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntitySubstation extends TileEntityPylonBase { @@ -45,33 +47,21 @@ public class TileEntitySubstation extends TileEntityPylonBase { public double getMaxWireLength() { return 20; } - - @Override - public List getConnectionPoints() { - List pos = new ArrayList(connected); - pos.add(new int[] {xCoord + 2, yCoord, zCoord - 1}); - pos.add(new int[] {xCoord + 2, yCoord, zCoord + 1}); - pos.add(new int[] {xCoord - 2, yCoord, zCoord - 1}); - pos.add(new int[] {xCoord - 2, yCoord, zCoord + 1}); - pos.add(new int[] {xCoord - 1, yCoord, zCoord + 2}); - pos.add(new int[] {xCoord + 1, yCoord, zCoord + 2}); - pos.add(new int[] {xCoord - 1, yCoord, zCoord - 2}); - pos.add(new int[] {xCoord + 1, yCoord, zCoord - 2}); - return pos; - } @Override - public boolean hasProxies() { - return true; - } - - @Override - public List getProxies() { - List proxies = new ArrayList(); - proxies.add(IEnergyConductor.getIdentityFromPos(xCoord + 1, yCoord, zCoord + 1)); - proxies.add(IEnergyConductor.getIdentityFromPos(xCoord + 1, yCoord, zCoord - 1)); - proxies.add(IEnergyConductor.getIdentityFromPos(xCoord - 1, yCoord, zCoord + 1)); - proxies.add(IEnergyConductor.getIdentityFromPos(xCoord - 1, yCoord, zCoord - 1)); - return proxies; + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z) + ); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + return node; } } From c66bd21fcc0760f5877469030ce0f6918b94ea46 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 11 Apr 2024 18:17:25 -0400 Subject: [PATCH 329/376] my brain hurts --- .../com/hbm/handler/imc/ICompatNHNEI.java | 14 ++ .../com/hbm/handler/imc/IMCHandlerNHNEI.java | 120 ++++++++++++++++++ .../nei/AlloyFurnaceRecipeHandler.java | 16 ++- .../hbm/handler/nei/AnvilRecipeHandler.java | 25 +++- .../handler/nei/AssemblerRecipeHandler.java | 16 ++- .../hbm/handler/nei/BookRecipeHandler.java | 16 ++- .../hbm/handler/nei/BreederRecipeHandler.java | 14 +- .../handler/nei/ChemplantRecipeHandler.java | 16 ++- .../hbm/handler/nei/ConstructionHandler.java | 8 ++ .../handler/nei/CrucibleAlloyingHandler.java | 12 +- .../handler/nei/CrucibleCastingHandler.java | 16 ++- .../handler/nei/CrucibleSmeltingHandler.java | 14 +- .../handler/nei/CyclotronRecipeHandler.java | 15 ++- .../hbm/handler/nei/FluidRecipeHandler.java | 21 ++- .../hbm/handler/nei/FusionRecipeHandler.java | 15 ++- .../nei/GasCentrifugeRecipeHandler.java | 14 +- .../hbm/handler/nei/HadronRecipeHandler.java | 13 +- .../hbm/handler/nei/NEIUniversalHandler.java | 17 ++- .../hbm/handler/nei/PressRecipeHandler.java | 15 ++- .../handler/nei/RadiolysisRecipeHandler.java | 15 ++- .../handler/nei/RefineryRecipeHandler.java | 13 +- .../hbm/handler/nei/SILEXRecipeHandler.java | 13 +- .../handler/nei/ShredderRecipeHandler.java | 13 +- .../handler/nei/SmithingRecipeHandler.java | 23 +++- .../com/hbm/handler/nei/ToolingHandler.java | 10 +- src/main/java/com/hbm/main/MainRegistry.java | 36 +++--- src/main/java/com/hbm/main/NEIConfig.java | 8 +- 27 files changed, 475 insertions(+), 53 deletions(-) create mode 100644 src/main/java/com/hbm/handler/imc/ICompatNHNEI.java create mode 100644 src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java diff --git a/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java b/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java new file mode 100644 index 000000000..37952c867 --- /dev/null +++ b/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java @@ -0,0 +1,14 @@ +package com.hbm.handler.imc; + +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; + +public interface ICompatNHNEI { + /**First item on the list is the icon for the recipe in the NEI GUI, the rest are displayed on the sidebar + * as other items that can be used for the same purpose**/ + ItemStack[] getMachinesForRecipe(); + + String getRecipeID(); + +} diff --git a/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java b/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java new file mode 100644 index 000000000..e21d027f8 --- /dev/null +++ b/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java @@ -0,0 +1,120 @@ +package com.hbm.handler.imc; + +import codechicken.nei.recipe.TemplateRecipeHandler; +import com.hbm.config.VersatileConfig; +import com.hbm.handler.nei.*; +import com.hbm.lib.RefStrings; +import com.hbm.main.NEIConfig; +import cpw.mods.fml.common.event.FMLInterModComms; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +import java.util.ArrayList; + +public class IMCHandlerNHNEI { + + public static ArrayList handlerList() { + ArrayList handlers = new ArrayList<>(); + + handlers.add(new AlloyFurnaceRecipeHandler()); + handlers.add(new ShredderRecipeHandler()); + handlers.add(new PressRecipeHandler()); + handlers.add(new CentrifugeRecipeHandler()); + handlers.add(new GasCentrifugeRecipeHandler()); + handlers.add(new BreederRecipeHandler()); + handlers.add(new CyclotronRecipeHandler()); + handlers.add(new AssemblerRecipeHandler()); + handlers.add(new RefineryRecipeHandler()); + handlers.add(new VacuumRecipeHandler()); + handlers.add(new CrackingHandler()); + handlers.add(new ReformingHandler()); + handlers.add(new HydrotreatingHandler()); + handlers.add(new BoilerRecipeHandler()); + handlers.add(new ChemplantRecipeHandler()); + handlers.add(new CrystallizerRecipeHandler()); + handlers.add(new BookRecipeHandler()); + handlers.add(new FusionRecipeHandler()); + handlers.add(new HadronRecipeHandler()); + handlers.add(new SILEXRecipeHandler()); + handlers.add(new SmithingRecipeHandler()); + handlers.add(new AnvilRecipeHandler()); + handlers.add(new FuelPoolHandler()); + handlers.add(new FluidRecipeHandler()); + handlers.add(new RadiolysisRecipeHandler()); + handlers.add(new CrucibleSmeltingHandler()); + handlers.add(new CrucibleAlloyingHandler()); + handlers.add(new CrucibleCastingHandler()); + handlers.add(new ToolingHandler()); + handlers.add(new ConstructionHandler()); + + //universal boyes + handlers.add(new ZirnoxRecipeHandler()); + if(VersatileConfig.rtgDecay()) { + handlers.add(new RTGRecipeHandler()); + } + handlers.add(new LiquefactionHandler()); + handlers.add(new SolidificationHandler()); + handlers.add(new CokingHandler()); + handlers.add(new FractioningHandler()); + handlers.add(new BoilingHandler()); + handlers.add(new CombinationHandler()); + handlers.add(new SawmillHandler()); + handlers.add(new MixerHandler()); + handlers.add(new OutgasserHandler()); + handlers.add(new ElectrolyserFluidHandler()); + handlers.add(new ElectrolyserMetalHandler()); + handlers.add(new AshpitHandler()); + handlers.add(new ArcWelderHandler()); + handlers.add(new ExposureChamberHandler()); + + return handlers; + } + public static void IMCSender() { + + for (TemplateRecipeHandler handler: handlerList()) { + + Class handlerClass = handler.getClass(); + + if(handler instanceof ICompatNHNEI && ((ICompatNHNEI) handler).getMachinesForRecipe() != null) { + String blockName = "hbm:" + ((ICompatNHNEI) handler).getMachinesForRecipe()[0].getUnlocalizedName(); + String hClass = handlerClass.getName(); + sendHandler(hClass, ((ICompatNHNEI) handler).getRecipeID(), blockName); + for (ItemStack stack: ((ICompatNHNEI) handler).getMachinesForRecipe()) { + sendCatalyst(hClass, "hbm:" + stack.getUnlocalizedName()); + } + } + } + + } + private static void sendHandler(String aName, String handlerID, String aBlock) { + sendHandler(aName, handlerID, aBlock, 3); + } + + private static void sendHandler(String aName, String handlerID, String aBlock, int maxRecipesPerPage) { + NBTTagCompound aNBT = new NBTTagCompound(); + aNBT.setString("handler", aName); + aNBT.setString("handlerID", handlerID); + aNBT.setString("modName", RefStrings.NAME); + aNBT.setString("modId", RefStrings.MODID); + aNBT.setBoolean("modRequired", true); + aNBT.setString("itemName", aBlock); + aNBT.setInteger("handlerHeight", 65); + aNBT.setInteger("handlerWidth", 166); + aNBT.setInteger("maxRecipesPerPage", maxRecipesPerPage); + aNBT.setInteger("yShift", 6); + FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", aNBT); + } + + private static void sendCatalyst(String aName, String aStack, int aPriority) { + NBTTagCompound aNBT = new NBTTagCompound(); + aNBT.setString("handlerID", aName); + aNBT.setString("catalystHandlerID", aName); + aNBT.setString("itemName", aStack); + aNBT.setInteger("priority", aPriority); + FMLInterModComms.sendMessage("NotEnoughItems", "registerCatalystInfo", aNBT); + } + + private static void sendCatalyst(String aName, String aStack) { + sendCatalyst(aName, aStack, 0); + } +} diff --git a/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java index 8b76d904b..ee1d09a5b 100644 --- a/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIDiFurnace; import com.hbm.inventory.recipes.BlastFurnaceRecipes; import com.hbm.inventory.recipes.MachineRecipes; @@ -17,10 +19,22 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class AlloyFurnaceRecipeHandler extends TemplateRecipeHandler { +public class AlloyFurnaceRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public static ArrayList fuels; + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_difurnace_off), + new ItemStack(ModBlocks.machine_difurnace_rtg_off)}; + } + + @Override + public String getRecipeID() { + return "alloysmelting"; + } + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input1; PositionedStack input2; diff --git a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java index 4df799a33..3c01db05a 100644 --- a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java @@ -7,7 +7,9 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.NTMAnvil; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; @@ -24,7 +26,28 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class AnvilRecipeHandler extends TemplateRecipeHandler { +public class AnvilRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.anvil_iron), + new ItemStack(ModBlocks.anvil_lead), + new ItemStack(ModBlocks.anvil_steel), + new ItemStack(ModBlocks.anvil_starmetal), + new ItemStack(ModBlocks.anvil_meteorite), + new ItemStack(ModBlocks.anvil_ferrouranium), + new ItemStack(ModBlocks.anvil_bismuth), + new ItemStack(ModBlocks.anvil_schrabidate), + new ItemStack(ModBlocks.anvil_dnt), + new ItemStack(ModBlocks.anvil_osmiridium), + new ItemStack(ModBlocks.anvil_murky)}; + } + + @Override + public String getRecipeID() { + return "ntmAnvil"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java index f533fc02c..d3ddb9df0 100644 --- a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineAssembler; import com.hbm.inventory.recipes.AssemblerRecipes; @@ -19,13 +21,25 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class AssemblerRecipeHandler extends TemplateRecipeHandler { +public class AssemblerRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); public LinkedList> guiGui = new LinkedList>(); + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_assembler), + new ItemStack(ModBlocks.machine_assemfac)}; + } + + @Override + public String getRecipeID() { + return "assembly"; + } + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { List input; diff --git a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java index 44e6c7ded..3b18cd6f6 100644 --- a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java @@ -4,6 +4,8 @@ import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -14,12 +16,22 @@ import com.hbm.inventory.recipes.MagicRecipes.MagicRecipe; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; +import com.hbm.items.ModItems; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class BookRecipeHandler extends TemplateRecipeHandler { +public class BookRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.book_of_)}; + } - public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + @Override + public String getRecipeID() { + return "book_of_boxcars"; + } + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { List input; PositionedStack result; diff --git a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java index 8f91f8d75..0fc3f70d2 100644 --- a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java @@ -5,6 +5,8 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineReactorBreeding; import com.hbm.inventory.recipes.BreederRecipes; import com.hbm.inventory.recipes.BreederRecipes.BreederRecipe; @@ -16,8 +18,18 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class BreederRecipeHandler extends TemplateRecipeHandler { +public class BreederRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_reactor_breeding)}; + } + + @Override + public String getRecipeID() { + return "breeding"; + } public class BreedingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input; diff --git a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java index 9ef27b9a9..b0b5e19a4 100644 --- a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -5,6 +5,8 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIMachineChemplant; @@ -20,14 +22,26 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class ChemplantRecipeHandler extends TemplateRecipeHandler { +public class ChemplantRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); public LinkedList> guiGui = new LinkedList>(); + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_chemplant), + new ItemStack(ModBlocks.machine_chemfac)}; + } + + @Override + public String getRecipeID() { + return "chemistry"; + } public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack[] itemIn = new PositionedStack[4]; PositionedStack[] fluidIn = new PositionedStack[2]; PositionedStack[] itemOut = new PositionedStack[4]; diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index 91f46bd1d..baf61bfc1 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -16,6 +16,14 @@ public class ConstructionHandler extends NEIUniversalHandler { super("Construction", getRecipes(true), getRecipes(false)); } + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.acetylene_torch), + new ItemStack(ModItems.blowtorch), + new ItemStack(ModItems.boltgun)}; + } + @Override public String getKey() { return "ntmConstruction"; diff --git a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java index 80ccd314b..4cdca10fe 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java @@ -6,6 +6,7 @@ import java.util.LinkedList; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.material.NTMMaterial; @@ -20,7 +21,16 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleAlloyingHandler extends TemplateRecipeHandler { +public class CrucibleAlloyingHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_crucible)}; + } + @Override + public String getRecipeID() { + return "ntmCrucibleAlloying"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java index 1befff001..eff865fb4 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java @@ -6,6 +6,8 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.material.Mats; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.items.machine.ItemMold; @@ -17,7 +19,19 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleCastingHandler extends TemplateRecipeHandler { +public class CrucibleCastingHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.foundry_basin), + new ItemStack(ModBlocks.foundry_mold), + new ItemStack(ModBlocks.machine_strand_caster)}; + } + @Override + public String getRecipeID() { + return "ntmCrucibleFoundry"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java index b6af31dc1..63bbc26e7 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.lib.RefStrings; @@ -19,8 +20,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleSmeltingHandler extends TemplateRecipeHandler { - +public class CrucibleSmeltingHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_crucible)}; + } + @Override + public String getRecipeID() { + return "ntmCrucibleSmelting"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java index b4f9221f2..51b0a6b6f 100644 --- a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineCyclotron; import com.hbm.inventory.recipes.CyclotronRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +18,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CyclotronRecipeHandler extends TemplateRecipeHandler { - +public class CyclotronRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_cyclotron)}; + } + + @Override + public String getRecipeID() { + return "cyclotronProcessing"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java index 792f4465f..a575f867f 100644 --- a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java @@ -5,7 +5,10 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.recipes.MachineRecipes; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; @@ -14,7 +17,23 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class FluidRecipeHandler extends TemplateRecipeHandler { +public class FluidRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.fluid_barrel_empty), + new ItemStack(ModItems.fluid_tank_empty), + new ItemStack(ModItems.fluid_tank_lead_empty), + new ItemStack(ModItems.canister_empty), + new ItemStack(ModItems.gas_empty), + new ItemStack(ModItems.cell_empty), + new ItemStack(ModItems.disperser_canister_empty), + new ItemStack(ModItems.glyphid_gland_empty)}; + } + @Override + public String getRecipeID() { + return "fluidcons"; + } public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { diff --git a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java index ff6624e23..f5a69a4ec 100644 --- a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIITER; import com.hbm.inventory.recipes.FusionRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +18,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class FusionRecipeHandler extends TemplateRecipeHandler { - +public class FusionRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.iter)}; + } + @Override + public String getRecipeID() { + return "fusion"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java index add9dcf95..085ec8b7a 100644 --- a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java @@ -9,6 +9,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineGasCent; import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.MachineRecipes; @@ -22,8 +24,16 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { - +public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_gascent)}; + } + @Override + public String getRecipeID() { + return "gascentprocessing"; + } public static ArrayList fuels; public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { diff --git a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java index cbd520858..b9325cd9c 100644 --- a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java @@ -8,6 +8,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIHadron; import com.hbm.inventory.recipes.HadronRecipes; import com.hbm.inventory.recipes.HadronRecipes.HadronRecipe; @@ -21,8 +23,17 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class HadronRecipeHandler extends TemplateRecipeHandler { +public class HadronRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.hadron_core)}; + } + @Override + public String getRecipeID() { + return "hadron"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 0bb53100a..06ad8caaf 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -10,6 +10,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.lib.RefStrings; import com.hbm.util.InventoryUtil; @@ -21,8 +23,13 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -public abstract class NEIUniversalHandler extends TemplateRecipeHandler { - +public abstract class NEIUniversalHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return machine; + } + public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); @@ -34,7 +41,6 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { public final HashMap recipes; public HashMap machineOverrides; /// SETUP /// - public NEIUniversalHandler(String display, ItemStack machine[], HashMap recipes) { this.display = display; this.machine = machine; @@ -305,4 +311,9 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { } public abstract String getKey(); + + @Override + public String getRecipeID() { + return getKey(); + } } diff --git a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java index fbc14c5cd..f0b2adefb 100644 --- a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.interfaces.Untested; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -25,8 +27,19 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; @Untested -public class PressRecipeHandler extends TemplateRecipeHandler { +public class PressRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_press), + new ItemStack(ModBlocks.machine_epress), + new ItemStack(ModBlocks.machine_conveyor_press)}; + } + @Override + public String getRecipeID() { + return "pressing"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java index 9d5d619d4..84cd78979 100644 --- a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java @@ -8,6 +8,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIRadiolysis; import com.hbm.inventory.recipes.RadiolysisRecipes; import com.hbm.lib.RefStrings; @@ -18,8 +20,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class RadiolysisRecipeHandler extends TemplateRecipeHandler { - +public class RadiolysisRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_radiolysis)}; + } + @Override + public String getRecipeID() { + return "ntmRadiolysis"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java index f3068bf17..f085e4ebe 100644 --- a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineRefinery; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +18,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class RefineryRecipeHandler extends TemplateRecipeHandler { +public class RefineryRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_refinery)}; + } + @Override + public String getRecipeID() { + return "refinery"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java index 444489abc..bc1363383 100644 --- a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUISILEX; import com.hbm.inventory.recipes.SILEXRecipes; import com.hbm.inventory.recipes.SILEXRecipes.SILEXRecipe; @@ -24,8 +26,17 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class SILEXRecipeHandler extends TemplateRecipeHandler { +public class SILEXRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_silex)}; + } + @Override + public String getRecipeID() { + return "silex"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java index 396109047..7524f5091 100644 --- a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineShredder; import com.hbm.inventory.recipes.MachineRecipes; @@ -19,8 +21,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class ShredderRecipeHandler extends TemplateRecipeHandler { +public class ShredderRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_shredder)}; + } + @Override + public String getRecipeID() { + return "ntmRadiolysis"; + } public static ArrayList fuels; public LinkedList transferRectsRec = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java index 35e698422..fc03dd060 100644 --- a/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java @@ -5,6 +5,8 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilSmithingRecipe; @@ -18,8 +20,27 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class SmithingRecipeHandler extends TemplateRecipeHandler { +public class SmithingRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.anvil_lead), + new ItemStack(ModBlocks.anvil_iron), + new ItemStack(ModBlocks.anvil_steel), + new ItemStack(ModBlocks.anvil_starmetal), + new ItemStack(ModBlocks.anvil_meteorite), + new ItemStack(ModBlocks.anvil_ferrouranium), + new ItemStack(ModBlocks.anvil_bismuth), + new ItemStack(ModBlocks.anvil_schrabidate), + new ItemStack(ModBlocks.anvil_dnt), + new ItemStack(ModBlocks.anvil_osmiridium), + new ItemStack(ModBlocks.anvil_murky)}; + } + @Override + public String getRecipeID() { + return "ntmSmithing"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/ToolingHandler.java b/src/main/java/com/hbm/handler/nei/ToolingHandler.java index c50074f1e..9c0420b18 100644 --- a/src/main/java/com/hbm/handler/nei/ToolingHandler.java +++ b/src/main/java/com/hbm/handler/nei/ToolingHandler.java @@ -1,9 +1,17 @@ package com.hbm.handler.nei; import com.hbm.blocks.generic.BlockToolConversion; +import com.hbm.items.ModItems; +import net.minecraft.item.ItemStack; public class ToolingHandler extends NEIUniversalHandler { - + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.boltgun), + new ItemStack(ModItems.blowtorch), + new ItemStack(ModItems.acetylene_torch)}; + } public ToolingHandler() { super("Tooling", BlockToolConversion.getRecipes(true), BlockToolConversion.getRecipes(false)); } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index cc6778d93..2cbe13204 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -14,10 +14,7 @@ import com.hbm.entity.grenade.*; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.mob.siege.SiegeTier; import com.hbm.handler.*; -import com.hbm.handler.imc.IMCBlastFurnace; -import com.hbm.handler.imc.IMCCentrifuge; -import com.hbm.handler.imc.IMCCrystallizer; -import com.hbm.handler.imc.IMCHandler; +import com.hbm.handler.imc.*; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.hazard.HazardRegistry; @@ -52,13 +49,10 @@ import com.hbm.world.feature.OreCave; import com.hbm.world.feature.OreLayer3D; import com.hbm.world.feature.SchistStratum; import com.hbm.world.generator.CellularDungeonFactory; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.*; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.Mod.Metadata; -import cpw.mods.fml.common.ModMetadata; -import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; @@ -665,7 +659,7 @@ public class MainRegistry { @EventHandler public static void load(FMLInitializationEvent event) { - + RodRecipes.registerInit(); achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", -3, 1, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); @@ -687,7 +681,7 @@ public class MainRegistry { achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.BALLS), achSlimeball).initIndependentStat().setSpecial().registerStat(); achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat(); achRedRoom = new Achievement("achievement.redRoom", "redRoom", -10, 10, ModItems.key_red, null).initIndependentStat().setSpecial().registerStat(); - + bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.QUESTIONMARK), null).initIndependentStat().registerStat(); horizonsStart = new Achievement("achievement.horizonsStart", "horizonsStart", -5, 4, ModItems.sat_gerald, null).initIndependentStat().registerStat(); @@ -704,20 +698,20 @@ public class MainRegistry { achRadDeath = new Achievement("achievement.radDeath", "radDeath", 0, 6, Items.skull, achRadPoison).initIndependentStat().registerStat().setSpecial(); achSomeWounds = new Achievement("achievement.someWounds", "someWounds", -2, 10, ModItems.injector_knife, null).initIndependentStat().registerStat(); - + digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMASEE), null).initIndependentStat().registerStat(); digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAFEEL), digammaSee).initIndependentStat().registerStat(); digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKNOW), digammaFeel).initIndependentStat().registerStat().setSpecial(); digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKAUAIMOHO), digammaKnow).initIndependentStat().registerStat().setSpecial(); digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAUPONTOP), digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); - + //progression achieves achBurnerPress = new Achievement("achievement.burnerPress", "burnerPress", 0, 0, new ItemStack(ModBlocks.machine_press), null).initIndependentStat().registerStat(); achBlastFurnace = new Achievement("achievement.blastFurnace", "blastFurnace", 1, 3, new ItemStack(ModBlocks.machine_difurnace_off), achBurnerPress).initIndependentStat().registerStat(); achAssembly = new Achievement("achievement.assembly", "assembly", 3, -1, new ItemStack(ModBlocks.machine_assembler), achBurnerPress).initIndependentStat().registerStat(); achSelenium = new Achievement("achievement.selenium", "selenium", 3, 2, ModItems.ingot_starmetal, achBurnerPress).initIndependentStat().setSpecial().registerStat(); achChemplant = new Achievement("achievement.chemplant", "chemplant", 6, -1, new ItemStack(ModBlocks.machine_chemplant), achAssembly).initIndependentStat().registerStat(); - achConcrete = new Achievement("achievement.concrete", "concrete", 6, -4, new ItemStack(ModBlocks.concrete), achChemplant).initIndependentStat().registerStat(); + achConcrete = new Achievement("achievement.concrete", "concrete", 6, -4, new ItemStack(ModBlocks.concrete), achChemplant).initIndependentStat().registerStat(); achPolymer = new Achievement("achievement.polymer", "polymer", 9, -1, ModItems.ingot_polymer, achChemplant).initIndependentStat().registerStat(); achDesh = new Achievement("achievement.desh", "desh", 9, 2, ModItems.ingot_desh, achChemplant).initIndependentStat().registerStat(); achTantalum = new Achievement("achievement.tantalum", "tantalum", 7, 3, ModItems.gem_tantalium, achChemplant).initIndependentStat().setSpecial().registerStat(); @@ -743,8 +737,8 @@ public class MainRegistry { achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.powder_balefire, achFusion).initIndependentStat().setSpecial().registerStat(); achRedBalloons = new Achievement("achievement.redBalloons", "redBalloons", 11, 0, ModItems.missile_nuclear, achPolymer).initIndependentStat().setSpecial().registerStat(); achManhattan = new Achievement("achievement.manhattan", "manhattan", 11, -4, new ItemStack(ModBlocks.nuke_boy), achPolymer).initIndependentStat().setSpecial().registerStat(); - - AchievementPage.registerAchievementPage(new AchievementPage("Nuclear Tech", new Achievement[] { + + AchievementPage.registerAchievementPage(new AchievementPage("Nuclear Tech", new Achievement[]{ achSacrifice, achImpossible, achTOB, @@ -780,7 +774,7 @@ public class MainRegistry { digammaKnow, digammaKauaiMoho, digammaUpOnTop, - + achBurnerPress, achBlastFurnace, achAssembly, @@ -820,6 +814,12 @@ public class MainRegistry { IMCHandler.registerHandler("blastfurnace", new IMCBlastFurnace()); IMCHandler.registerHandler("crystallizer", new IMCCrystallizer()); IMCHandler.registerHandler("centrifuge", new IMCCentrifuge()); + if (Loader.isModLoaded("NotEnoughItems")){ + if (Loader.instance().getIndexedModList().get("NotEnoughItems").getVersion().contains("GTNH")) { + IMCHandlerNHNEI.IMCSender(); + } + } + } @EventHandler @@ -837,6 +837,7 @@ public class MainRegistry { MainRegistry.logger.error("Could not process unknown IMC type \"" + message.key + "\""); } } + } @EventHandler @@ -890,7 +891,6 @@ public class MainRegistry { Compat.handleRailcraftNonsense(); SuicideThreadDump.register(); - //ExplosionTests.runTest(); } @@ -926,7 +926,7 @@ public class MainRegistry { FMLCommonHandler.instance().bus().register(keyHandler); } } - + //yes kids, this is where we would usually register commands @EventHandler public void serverStart(FMLServerStartingEvent event) { diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index d97c3e50f..0fdff6386 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -1,12 +1,15 @@ package com.hbm.main; +import java.util.ArrayList; import java.util.List; +import codechicken.nei.recipe.*; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; import com.hbm.config.VersatileConfig; +import com.hbm.handler.imc.IMCHandlerNHNEI; import com.hbm.handler.nei.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; @@ -16,10 +19,6 @@ import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; import codechicken.nei.api.IHighlightHandler; import codechicken.nei.api.ItemInfo.Layout; -import codechicken.nei.recipe.GuiCraftingRecipe; -import codechicken.nei.recipe.GuiUsageRecipe; -import codechicken.nei.recipe.ICraftingHandler; -import codechicken.nei.recipe.IUsageHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -27,7 +26,6 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class NEIConfig implements IConfigureNEI { - @Override public void loadConfig() { registerHandler(new AlloyFurnaceRecipeHandler()); From 9c7a96d86743f3d8174edd030baf6e2baa67d11b Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 12 Apr 2024 09:42:23 +0200 Subject: [PATCH 330/376] CRUSHIN' CRUSHIN' (the second) --- .../api/hbm/energymk2/IEnergyProviderMK2.java | 26 +- .../storage/TileEntityMachineBattery.java | 243 ++++-------------- .../storage/TileEntityMachineFENSU.java | 104 +++----- 3 files changed, 99 insertions(+), 274 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index 1b7f5fe45..6464995a0 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -29,17 +29,27 @@ public interface IEnergyProviderMK2 extends IEnergyHandlerMK2 { if(te instanceof IEnergyConductorMK2) { IEnergyConductorMK2 con = (IEnergyConductorMK2) te; - if(!con.canConnect(dir.getOpposite())) return; - - PowerNode node = Nodespace.getNode(world, x, y, z); - - if(node != null && node.net != null) { - node.net.addProvider(this); - red = true; + if(con.canConnect(dir.getOpposite())) { + + PowerNode node = Nodespace.getNode(world, x, y, z); + + if(node != null && node.net != null) { + node.net.addProvider(this); + red = true; + } } } - //TODO: direct transfer + if(te instanceof IEnergyReceiverMK2 && te != this) { + IEnergyReceiverMK2 rec = (IEnergyReceiverMK2) te; + if(rec.canConnect(dir.getOpposite())) { + long provides = Math.min(this.getPower(), this.getProviderSpeed()); + long receives = Math.min(rec.getMaxPower() - rec.getPower(), rec.getReceiverSpeed()); + long toTransfer = Math.min(provides, receives); + toTransfer -= rec.transferPower(toTransfer); + this.usePower(toTransfer); + } + } if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index ac39e371a..d1fb7d597 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -1,11 +1,14 @@ package com.hbm.tileentity.machine.storage; import api.hbm.energymk2.IBatteryItem; -import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; +import api.hbm.energymk2.IEnergyConductorMK2; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; import api.hbm.tile.IInfoProviderEC; import com.hbm.blocks.machine.MachineBattery; -import com.hbm.config.GeneralConfig; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.inventory.gui.GUIMachineBattery; import com.hbm.lib.Library; @@ -26,24 +29,19 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyUser, IPersistentNBT, SimpleComponent, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT, SimpleComponent, IGUIProvider, IInfoProviderEC { public long[] log = new long[20]; public long delta = 0; public long power = 0; public long prevPowerState = 0; - public int pingPongTicks = 0; + + protected PowerNode node; //0: input only //1: buffer @@ -96,8 +94,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I switch(i) { case 0: case 1: - if(stack.getItem() instanceof IBatteryItem) - return true; + if(stack.getItem() instanceof IBatteryItem) return true; break; } @@ -166,19 +163,39 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(!worldObj.isRemote && worldObj.getBlock(xCoord, yCoord, zCoord) instanceof MachineBattery) { + int mode = this.getRelevantMode(); + + if(this.node == null || this.node.expired) { + + this.node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); + + if(this.node == null || this.node.expired) { + this.node = this.createNode(); + Nodespace.createNode(worldObj, this.node); + } + } + long prevPower = this.power; power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); - ////////////////////////////////////////////////////////////////////// - this.transmitPowerFairly(); - ////////////////////////////////////////////////////////////////////// + if(mode == mode_output || mode == mode_buffer) { + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } else { + if(node != null && node.hasValidNet()) node.net.removeProvider(this); + } byte comp = this.getComparatorPower(); if(comp != this.lastRedstone) this.markDirty(); this.lastRedstone = comp; + if(mode == mode_input || mode == mode_buffer) { + if(node != null && node.hasValidNet()) node.net.addReceiver(this); + } else { + if(node != null && node.hasValidNet()) node.net.removeReceiver(this); + } + power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); long avg = (power + prevPower) / 2; @@ -188,19 +205,6 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I this.log[i - 1] = this.log[i]; } - if(GeneralConfig.enable528) { - long threshold = this.getMaxPower() / 3; - if(Math.abs(prevPower - power) > threshold && Math.abs(prevPower - prevPowerState) > threshold) { - this.pingPongTicks++; - if(this.pingPongTicks > 10) { - worldObj.func_147480_a(xCoord, yCoord, zCoord, false); - worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10F, false, false); - } - } else { - if(this.pingPongTicks > 0) this.pingPongTicks--; - } - } - this.log[19] = avg; prevPowerState = power; @@ -215,116 +219,23 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } } - protected void transmitPowerFairly() { - - short mode = (short) this.getRelevantMode(); - - //HasSets to we don'T have any duplicates - Set nets = new HashSet(); - Set consumers = new HashSet(); - - //iterate over all sides - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - //if it's a cable, buffer both the network and all subscribers of the net - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - if(con.canConnect(dir.getOpposite()) && con.getPowerNet() != null) { - nets.add(con.getPowerNet()); - con.getPowerNet().unsubscribe(this); - consumers.addAll(con.getPowerNet().getSubscribers()); - } - - //if it's just a consumer, buffer it as a subscriber - } else if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - if(con.canConnect(dir.getOpposite())) { - consumers.add((IEnergyConnector) te); - } - } - } + public void onNodeDestroyedCallback() { + this.node = null; + } - //send power to buffered consumers, independent of nets - if(this.power > 0 && (mode == mode_buffer || mode == mode_output)) { - List con = new ArrayList(); - con.addAll(consumers); - - if(PowerNet.trackingInstances == null) { - PowerNet.trackingInstances = new ArrayList(); - } - PowerNet.trackingInstances.clear(); - - nets.forEach(x -> { - if(x instanceof PowerNet) PowerNet.trackingInstances.add((PowerNet) x); - }); - - long toSend = Math.min(this.power, this.getMaxTransfer()); - long powerRemaining = this.power - toSend; - this.power = PowerNet.fairTransfer(con, toSend) + powerRemaining; - } + @Override + public void invalidate() { + super.invalidate(); - //resubscribe to buffered nets, if necessary - if(mode == mode_buffer || mode == mode_input) { - nets.forEach(x -> x.subscribe(this)); - } - } - - @Deprecated protected void transmitPower() { - - short mode = (short) this.getRelevantMode(); - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - // first we make sure we're not subscribed to the network that we'll be supplying - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); - } - - //then we add energy - if(mode == mode_buffer || mode == mode_output) { - if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - - long max = getMaxTransfer(); - long toTransfer = Math.min(max, this.power); - long remainder = this.power - toTransfer; - this.power = toTransfer; - - long oldPower = this.power; - long transfer = this.power - con.transferPower(this.power); - this.power = oldPower - transfer; - - power += remainder; - } - } - - //then we subscribe if possible - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null) { - if(mode == mode_output || mode == mode_none) { - if(con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().unsubscribe(this); - } - } else if(!con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().subscribe(this); - } - } + if(!worldObj.isRemote) { + if(this.node != null) { + Nodespace.destroyNode(worldObj, xCoord, yCoord, zCoord); } } } - - public long getMaxTransfer() { - return this.getMaxPower() / 20; - } + + @Override public long getProviderSpeed() { return this.getMaxPower() / 20; } + @Override public long getReceiverSpeed() { return this.getMaxPower() / 20; } @Override public void networkUnpack(NBTTagCompound nbt) { @@ -343,12 +254,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } public short getRelevantMode() { - - if(worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord)) { - return this.redHigh; - } else { - return this.redLow; - } + return worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord) ? this.redHigh : this.redLow; } private long bufferedMax; @@ -362,63 +268,10 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return bufferedMax; } - - /* - * SATAN - TECH - */ - @Override - public long transferPower(long power) { - - long overshoot = 0; - - // if power exceeds our transfer limit, truncate - if(power > getMaxTransfer()) { - overshoot += power - getMaxTransfer(); - power = getMaxTransfer(); - } - - // this check is in essence the same as the default implementation, but re-arranged to never overflow the int64 range - // if the remaining power exceeds the power cap, truncate again - long freespace = this.getMaxPower() - this.getPower(); - - if(freespace < power) { - overshoot += power - freespace; - power = freespace; - } - - // what remains is sure to not exceed the transfer limit and the power cap (and therefore the int64 range) - this.setPower(this.getPower() + power); - this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); - - return overshoot; - } - - @Override - public long getTransferWeight() { - int mode = this.getRelevantMode(); - - if(mode == mode_output || mode == mode_none) { - return 0; - } - - return Math.min(Math.max(getMaxPower() - getPower(), 0), this.getMaxTransfer()); - } - - @Override - public boolean canConnect(ForgeDirection dir) { - return true; - } - - @Override - public void setPower(long power) { - this.power = power; - } - - @Override - public ConnectionPriority getPriority() { - return this.priority; - } + @Override public boolean canConnect(ForgeDirection dir) { return true; } + @Override public void setPower(long power) { this.power = power; } + @Override public ConnectionPriority getPriority() { return this.priority; } // do some opencomputer stuff @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index 3ece44aca..138b12693 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -1,16 +1,11 @@ package com.hbm.tileentity.machine.storage; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyConductor; -import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IPowerNet; -import api.hbm.energy.PowerNet; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -24,25 +19,48 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { public float rotation = 0F; public static final long maxTransfer = 10_000_000_000_000_000L; + + @Override public long getProviderSpeed() { return maxTransfer; } + @Override public long getReceiverSpeed() { return maxTransfer; } @Override public void updateEntity() { if(!worldObj.isRemote) { + + int mode = this.getRelevantMode(); + + if(this.node == null || this.node.expired) { + + this.node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); + + if(this.node == null || this.node.expired) { + this.node = this.createNode(); + Nodespace.createNode(worldObj, this.node); + } + } long prevPower = this.power; power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); - ////////////////////////////////////////////////////////////////////// - this.transmitPowerFairly(); - ////////////////////////////////////////////////////////////////////// + if(mode == mode_output || mode == mode_buffer) { + this.tryProvide(worldObj, xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN); + } else { + if(node != null && node.hasValidNet()) node.net.removeProvider(this); + } byte comp = this.getComparatorPower(); if(comp != this.lastRedstone) this.markDirty(); this.lastRedstone = comp; + if(mode == mode_input || mode == mode_buffer) { + if(node != null && node.hasValidNet()) node.net.addReceiver(this); + } else { + if(node != null && node.hasValidNet()) node.net.removeReceiver(this); + } + power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); long avg = (power / 2 + prevPower / 2); @@ -73,61 +91,10 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { } } } - - @Deprecated protected void transmitPower() { - - short mode = (short) this.getRelevantMode(); - - //HasSets to we don'T have any duplicates - Set nets = new HashSet(); - Set consumers = new HashSet(); - - //iterate over all sides - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - //if it's a cable, buffer both the network and all subscribers of the net - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - if(con.canConnect(dir.getOpposite()) && con.getPowerNet() != null) { - nets.add(con.getPowerNet()); - con.getPowerNet().unsubscribe(this); - consumers.addAll(con.getPowerNet().getSubscribers()); - } - - //if it's just a consumer, buffer it as a subscriber - } else if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - if(con.canConnect(dir.getOpposite())) { - consumers.add((IEnergyConnector) te); - } - } - } - //send power to buffered consumers, independent of nets - if(this.power > 0 && (mode == mode_buffer || mode == mode_output)) { - List con = new ArrayList(); - con.addAll(consumers); - - if(PowerNet.trackingInstances == null) { - PowerNet.trackingInstances = new ArrayList(); - } - PowerNet.trackingInstances.clear(); - - nets.forEach(x -> { - if(x instanceof PowerNet) PowerNet.trackingInstances.add((PowerNet) x); - }); - - long toSend = Math.min(this.power, maxTransfer); - long powerRemaining = this.power - toSend; - this.power = PowerNet.fairTransfer(con, toSend) + powerRemaining; - } - - //resubscribe to buffered nets, if necessary - if(mode == mode_buffer || mode == mode_input) { - nets.forEach(x -> x.subscribe(this)); - } + @Override + public PowerNode createNode() { + return new PowerNode(new BlockPos(xCoord, yCoord, zCoord)).setConnections(new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y)); } @Override @@ -140,11 +107,6 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { public long getMaxPower() { return Long.MAX_VALUE; } - - @Override - public long getMaxTransfer() { - return maxTransfer; - } public float getSpeed() { return (float) Math.pow(Math.log(power * 0.75 + 1) * 0.05F, 5); From be3147c80db342388c5f5ee0e759b762ada3c672 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 12 Apr 2024 13:45:42 +0200 Subject: [PATCH 331/376] We must construct additional pylons!! --- .../java/api/hbm/energymk2/PowerNetMK2.java | 27 +++++++++++----- .../hbm/blocks/machine/MachineCapacitor.java | 32 ++++++++++++++----- .../network/TileEntityConnector.java | 4 ++- .../tileentity/network/TileEntityPylon.java | 1 + .../network/TileEntityPylonBase.java | 3 +- .../network/TileEntitySubstation.java | 1 + 6 files changed, 50 insertions(+), 18 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index 5f9f509be..eedacae92 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.Map.Entry; @@ -123,14 +124,20 @@ public class PowerNetMK2 { long supply = 0; long demand = 0; - for(Entry entry : providerEntries.entrySet()) { - IEnergyProviderMK2 provider = entry.getKey(); - if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply += Math.min(provider.getPower(), provider.getProviderSpeed()); + Iterator> provIt = providerEntries.entrySet().iterator(); + while(provIt.hasNext()) { + Entry entry = provIt.next(); + if(timestamp - entry.getValue() > timeout) provIt.remove(); + supply += Math.min(entry.getKey().getPower(), entry.getKey().getProviderSpeed()); } - for(Entry entry : receiverEntries.entrySet()) { - IEnergyReceiverMK2 receiver = entry.getKey(); - if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand += Math.min(receiver.getMaxPower() - receiver.getPower(), receiver.getReceiverSpeed()); + if(supply <= 0) return; + + Iterator> recIt = receiverEntries.entrySet().iterator(); + while(recIt.hasNext()) { + Entry entry = recIt.next(); + if(timestamp - entry.getValue() > timeout) recIt.remove(); + demand += Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed()); } double drainScale = 1D; @@ -158,9 +165,13 @@ public class PowerNetMK2 { IEnergyProviderMK2 src = providers.get(0); IEnergyReceiverMK2 dest = receivers.get(0); + + long receiverShare = Math.min((long) ((double) (dest.getMaxPower() - dest.getPower()) * (double) supply / (double) demand), dest.getReceiverSpeed()) - prevDest; + long providerShare = Math.min((long) ((double) src.getPower() * (double) demand / (double) supply), src.getProviderSpeed()) - prevSrc; + + long toDrain = Math.min((long) (src.getPower() * drainScale), providerShare); + long toFill = Math.min(dest.getMaxPower() - dest.getPower(), receiverShare); - long toDrain = Math.min((long) (src.getPower() * drainScale) + prevSrc, src.getProviderSpeed()) - prevSrc; - long toFill = Math.min(dest.getMaxPower() - dest.getPower() + prevDest, dest.getReceiverSpeed()) - prevDest; long finalTransfer = Math.min(toDrain, toFill); if(toDrain <= 0) { providers.remove(0); prevSrc = 0; continue; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index ae94aa6d1..5abb1e502 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -150,7 +150,6 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP public long power; protected long maxPower; - public long prevPower; public long powerReceived; public long powerSent; @@ -165,8 +164,6 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP if(!worldObj.isRemote) { - long gain = power - prevPower; - ForgeDirection opp = ForgeDirection.getOrientation(this.getBlockMetadata()); ForgeDirection dir = opp.getOpposite(); @@ -188,26 +185,45 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP pos = pos.offset(current); } - long preSend = power; if(pos != null && last != null) { this.tryUnsubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ()); this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), last); } - long sent = preSend - power; this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord+ opp.offsetY, zCoord + opp.offsetZ, opp); NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setLong("maxPower", maxPower); - data.setLong("rec", gain); - data.setLong("sent", sent); + data.setLong("rec", powerReceived); + data.setLong("sent", powerSent); INBTPacketReceiver.networkPack(this, data, 15); - this.prevPower = power; + this.powerSent = 0; + this.powerReceived = 0; } } + @Override + public long transferPower(long power) { + if(power + this.getPower() <= this.getMaxPower()) { + this.setPower(power + this.getPower()); + this.powerReceived += power; + return 0; + } + long capacity = this.getMaxPower() - this.getPower(); + long overshoot = power - capacity; + this.powerReceived += (this.getMaxPower() - this.getPower()); + this.setPower(this.getMaxPower()); + return overshoot; + } + + @Override + public void usePower(long power) { + this.powerSent += Math.min(this.getPower(), power); + this.setPower(this.getPower() - power); + } + @Override public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java index 5c84cb609..baa262982 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java @@ -29,7 +29,9 @@ public class TileEntityConnector extends TileEntityPylonBase { public PowerNode createNode() { TileEntity tile = (TileEntity) this; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); - PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections(new DirPos(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir)); + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN), + new DirPos(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir)); for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); return node; } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java index 655800077..03646593c 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java @@ -30,6 +30,7 @@ public class TileEntityPylon extends TileEntityPylonBase { public PowerNode createNode() { TileEntity tile = (TileEntity) this; PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN), new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), new DirPos(xCoord, yCoord + 1, zCoord, Library.POS_Y), diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java index 76e560e33..49da2622f 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java @@ -49,7 +49,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { @Override public PowerNode createNode() { TileEntity tile = (TileEntity) this; - PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)); + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections(new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN)); for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); return node; } @@ -81,6 +81,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { if(te instanceof TileEntityPylonBase) { TileEntityPylonBase pylon = (TileEntityPylonBase) te; + Nodespace.destroyNode(worldObj, pos[0], pos[1], pos[2]); for(int i = 0; i < pylon.connected.size(); i++) { int[] conPos = pylon.connected.get(i); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java index a0b414a43..33d6291c8 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java @@ -52,6 +52,7 @@ public class TileEntitySubstation extends TileEntityPylonBase { public PowerNode createNode() { TileEntity tile = (TileEntity) this; PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN), new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), From 8442ee4940fff4e740a1f6f653ef691eea0ce11d Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 13 Apr 2024 19:51:59 +0200 Subject: [PATCH 332/376] i hope i step on a landmine --- .../java/api/hbm/energymk2/PowerNetMK2.java | 66 ++++++++++++++----- .../com/hbm/blocks/network/CableDiode.java | 41 ++++++++---- .../network/TileEntityCableSwitch.java | 2 +- 3 files changed, 78 insertions(+), 31 deletions(-) diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index eedacae92..467d3bbb5 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Set; import java.util.Map.Entry; +import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; import api.hbm.energymk2.Nodespace.PowerNode; public class PowerNetMK2 { @@ -111,10 +112,10 @@ public class PowerNetMK2 { this.energyTracker = 0; } + protected static int timeout = 3_000; + public void transferPower() { - int timeout = 3_000; - if(providerEntries.isEmpty()) return; if(receiverEntries.isEmpty()) return; @@ -123,11 +124,12 @@ public class PowerNetMK2 { long supply = 0; long demand = 0; + long[] priorityDemand = new long[ConnectionPriority.values().length]; Iterator> provIt = providerEntries.entrySet().iterator(); while(provIt.hasNext()) { Entry entry = provIt.next(); - if(timestamp - entry.getValue() > timeout) provIt.remove(); + if(timestamp - entry.getValue() > timeout) { provIt.remove(); continue; } supply += Math.min(entry.getKey().getPower(), entry.getKey().getProviderSpeed()); } @@ -136,15 +138,13 @@ public class PowerNetMK2 { Iterator> recIt = receiverEntries.entrySet().iterator(); while(recIt.hasNext()) { Entry entry = recIt.next(); - if(timestamp - entry.getValue() > timeout) recIt.remove(); - demand += Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed()); + if(timestamp - entry.getValue() > timeout) { recIt.remove(); continue; } + long rec = Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed()); + demand += rec; + for(int i = 0; i <= entry.getKey().getPriority().ordinal(); i++) priorityDemand[i] += rec; } - double drainScale = 1D; - - if(supply > demand) { - drainScale = (double) demand / (double) supply; - } + if(demand <= 0) return; long toTransfer = Math.min(supply, demand); if(toTransfer > transferCap) toTransfer = transferCap; @@ -165,16 +165,18 @@ public class PowerNetMK2 { IEnergyProviderMK2 src = providers.get(0); IEnergyReceiverMK2 dest = receivers.get(0); - - long receiverShare = Math.min((long) ((double) (dest.getMaxPower() - dest.getPower()) * (double) supply / (double) demand), dest.getReceiverSpeed()) - prevDest; - long providerShare = Math.min((long) ((double) src.getPower() * (double) demand / (double) supply), src.getProviderSpeed()) - prevSrc; - long toDrain = Math.min((long) (src.getPower() * drainScale), providerShare); + long pd = priorityDemand[dest.getPriority().ordinal()]; + + long receiverShare = Math.min((long) Math.ceil((double) Math.min(dest.getMaxPower() - dest.getPower(), dest.getReceiverSpeed()) * (double) supply / (double) pd), dest.getReceiverSpeed()) - prevDest; + long providerShare = Math.min((long) Math.ceil((double) Math.min(src.getPower(), src.getProviderSpeed()) * (double) demand / (double) supply), src.getProviderSpeed()) - prevSrc; + + long toDrain = Math.min((long) (src.getPower()), providerShare); long toFill = Math.min(dest.getMaxPower() - dest.getPower(), receiverShare); long finalTransfer = Math.min(toDrain, toFill); - if(toDrain <= 0) { providers.remove(0); prevSrc = 0; continue; } + if(src.getPower() <= 0) { providers.remove(0); prevSrc = 0; continue; } if(toFill <= 0) { receivers.remove(0); prevDest = 0; continue; } finalTransfer -= dest.transferPower(finalTransfer); @@ -182,6 +184,9 @@ public class PowerNetMK2 { prevSrc += finalTransfer; prevDest += finalTransfer; + + if(prevSrc >= src.getProviderSpeed()) { providers.remove(0); prevSrc = 0; continue; } + if(prevDest >= dest.getReceiverSpeed()) { receivers.remove(0); prevDest = 0; continue; } toTransfer -= finalTransfer; this.energyTracker += finalTransfer; @@ -189,7 +194,36 @@ public class PowerNetMK2 { } public long sendPowerDiode(long power) { - return power; + + long timestamp = System.currentTimeMillis(); + long demand = 0; + long[] priorityDemand = new long[ConnectionPriority.values().length]; + + Iterator> recIt = receiverEntries.entrySet().iterator(); + while(recIt.hasNext()) { + Entry entry = recIt.next(); + if(timestamp - entry.getValue() > timeout) { recIt.remove(); continue; } + long rec = Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed()); + demand += rec; + for(int i = 0; i <= entry.getKey().getPriority().ordinal(); i++) priorityDemand[i] += rec; + } + + if(demand <= 0) return power; + + long finalRemainder = power; + + for(IEnergyReceiverMK2 dest : receiverEntries.keySet()) { + long pd = priorityDemand[dest.getPriority().ordinal()]; + long toFill = Math.min((long) ((double) (Math.min(dest.getMaxPower() - dest.getPower(), dest.getReceiverSpeed())) * (double) power / (double) pd), dest.getReceiverSpeed()); + toFill = Math.min(toFill, power); + long remainder = dest.transferPower(toFill); + long transferred = toFill - remainder; + finalRemainder -= transferred; + this.energyTracker += transferred; + if(finalRemainder <= 0) break; + } + + return finalRemainder; } public static final ReceiverComparator COMP = new ReceiverComparator(); diff --git a/src/main/java/com/hbm/blocks/network/CableDiode.java b/src/main/java/com/hbm/blocks/network/CableDiode.java index ad16ef673..246094666 100644 --- a/src/main/java/com/hbm/blocks/network/CableDiode.java +++ b/src/main/java/com/hbm/blocks/network/CableDiode.java @@ -7,11 +7,12 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BobMathUtil; +import com.hbm.util.Compat; import com.hbm.util.I18nUtil; -import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.block.IToolable; import api.hbm.energymk2.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorMK2; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.energymk2.Nodespace; import api.hbm.energymk2.Nodespace.PowerNode; @@ -101,7 +102,7 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, if(tool == ToolType.DEFUSER) { int p = te.priority.ordinal() + 1; - if(p > 2) p = 0; + if(p > 4) p = 0; te.priority = ConnectionPriority.values()[p]; te.markDirty(); world.markBlockForUpdate(x, y, z); @@ -186,6 +187,9 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } + + pulses = 0; + this.setPower(0); //tick is over, reset our allowed transfe } } @@ -197,7 +201,6 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, /** Used as an intra-tick tracker for how much energy has been transmitted, resets to 0 each tick and maxes out based on transfer */ private long power; private boolean recursionBrake = false; - private long lastTransfer = 0; private int pulses = 0; public ConnectionPriority priority = ConnectionPriority.NORMAL; @@ -208,30 +211,40 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, return power; pulses++; - - if(lastTransfer != worldObj.getTotalWorldTime()) { - lastTransfer = worldObj.getTotalWorldTime(); - pulses = 0; - this.setPower(0); //tick is over, reset our allowed transfe - } - if(this.getPower() >= this.getMaxPower() || pulses > 10) return power; //if we have already maxed out transfer or max pulses, abort recursionBrake = true; ForgeDirection dir = getDir(); PowerNode node = Nodespace.getNode(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + TileEntity te = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - if(node.hasValidNet() && Nodespace.checkConnection(node, new DirPos(xCoord, yCoord, zCoord, dir), false)) { - long prevPower = power; - power = node.net.sendPowerDiode(power); - this.power += (prevPower - power); + if(node != null && !node.expired && node.hasValidNet() && te instanceof IEnergyConnectorMK2 && ((IEnergyConnectorMK2) te).canConnect(dir.getOpposite())) { + long toTransfer = Math.min(power, this.getReceiverSpeed()); + long remainder = node.net.sendPowerDiode(toTransfer); + long transferred = (toTransfer - remainder); + this.power += transferred; + power -= transferred; + + } else if(te instanceof IEnergyReceiverMK2 && te != this) { + IEnergyReceiverMK2 rec = (IEnergyReceiverMK2) te; + if(rec.canConnect(dir.getOpposite())) { + long toTransfer = Math.min(power, rec.getReceiverSpeed()); + long remainder = rec.transferPower(toTransfer); + power -= (toTransfer - remainder); + recursionBrake = false; + return power; + } } recursionBrake = false; return power; } + @Override + public long getReceiverSpeed() { + return this.getMaxPower() - this.getPower(); + } @Override public long getMaxPower() { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java b/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java index 0f7adcda1..acdffcd99 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java @@ -6,7 +6,7 @@ public class TileEntityCableSwitch extends TileEntityCableBaseNT { @Override public boolean canUpdate() { - return this.worldObj != null && this.getBlockMetadata() == 1 && super.canUpdate(); + return super.canUpdate(); } public void updateState() { From e87984cc3940561d7483869fa6dae53c24ee886d Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 14 Apr 2024 14:20:20 +0200 Subject: [PATCH 333/376] can we get this over with --- .../hbm/textures/models/network/pylon_medium.png | Bin 0 -> 957 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/network/pylon_medium.png diff --git a/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png b/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..415008e7018e26364f177dfe30ac26a4624b31c6 GIT binary patch literal 957 zcmV;u148_XP)Oz-}xh@HfFOKabKJ#q7Z$amC&iQzL&v$kbgF_Gm zcD%j5z8>noy}c!_e}8}9xMSwY(qkUn2Pz~T6_Sn$Nk@gGqe9ZD`Wm=bU$!eNHJ)Dl z$!BiYXj6FY6+LNLso&?&b!+;$!;K7PGkwN3xvTCIjL25T+VY87iOl}aV+!%QXff1fdiN~IF|YfOIkO)`(r<>jU6 zbUJo(Smk=X9>>SWxfx|HG%5;%!Qdf(ycPwA>d&vQ`1tJ!0QdLzyxduQ(D9-$E|v%0 ziUJTS40++LD7b|oFSIBm(Y9F27CnIHaJ)rs^EmK0+xE`qh{QZJrkFyFrgi6Vv|9#> zcuyhXG#kl4#3^TkAk=>6^aoDc?SK2rIhGACPuv;(p3`oan4C+Hfg(jHg$xu$D5VS( zL1+dUkS;W%3`iE5Lk6S@%_##Cg%*$ji9#+j$bfXA8D&7S&>S)#RcKBbkh*+u3&RY8 z@`TzgGqKib1eU{e>v(xW0Efm*M5)oV#l5gX^l27#jdGAH1anEr7J`|jct)5`sjj;t4^lR568Ms?^etwQah)S9Eu;__4PA2=8nG3VRzXj>6t(jAKly z976CQC3CjzGVPhB`)IJ;GUbWT5EYV6<~j7@ces6h5N@BJg`fYNx3WFHyrK|Q0Gx+# zar^2i=bfleX{0UNlrTanB%RU;WnL754~e_P-dBr!egA*%2d87(-%pNJx(KO|bW}(> zDkL2hl8y>VM}?%LLej~8J#-r1-#Ux`E=22WvEyrmvc^WNIsr^VB&Sij2&s^Ca?c?* zXM*c=`=!k(jZhNbza;E%kkG#%rHhaXNhkLz=T|_bP-Y^>8Ox&R7g51Bpnr!jtWUfg`|`DdMIhVauN5tJt??J_?&m?BBVmn fQ6cH5kaYe5YGV`60J!QC00000NkvXXu0mjf2kg4R literal 0 HcmV?d00001 From 0c111b159a072fbc3637756aa0b97b072a748448 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 14 Apr 2024 14:22:40 +0200 Subject: [PATCH 334/376] DIE --- .../TileEntityMachineShredderLarge.java | 220 ------------------ 1 file changed, 220 deletions(-) delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java deleted file mode 100644 index b843ea365..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java +++ /dev/null @@ -1,220 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; - -import api.hbm.energymk2.IBatteryItem; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; - -public class TileEntityMachineShredderLarge extends TileEntity implements ISidedInventory { - - private ItemStack slots[]; - - public long power; - public static final long maxPower = 100000; - public int progress; - public int maxProgress = 100; - - Random rand = new Random(); - - private String customName; - - public TileEntityMachineShredderLarge() { - slots = new ItemStack[31]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.assembler"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - this.power = nbt.getLong("powerTime"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return new int[] { 0 }; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (progress * i) / maxProgress; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - } - - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - -} From bed04f43115f1f7ae0ed8daec9bdbfb5826d0846 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 14 Apr 2024 17:18:57 +0200 Subject: [PATCH 335/376] plylons bylons plons --- changelog | 34 +- src/main/java/com/hbm/blocks/ModBlocks.java | 12 + .../com/hbm/blocks/network/PylonMedium.java | 53 + .../hbm/inventory/container/ContainerFEL.java | 3 +- .../container/ContainerMachineAssembler.java | 2 +- .../container/ContainerMachineChemplant.java | 2 +- .../container/ContainerMachineGasCent.java | 2 +- .../container/ContainerMachineShredder.java | 2 +- .../container/ContainerMachineTurbofan.java | 2 +- .../inventory/recipes/anvil/AnvilRecipes.java | 12 +- src/main/java/com/hbm/main/ClientProxy.java | 3 +- .../java/com/hbm/main/CraftingManager.java | 6 +- .../java/com/hbm/main/ResourceManager.java | 3 + .../render/tileentity/RenderPylonBase.java | 70 +- .../render/tileentity/RenderPylonLarge.java | 1 - .../render/tileentity/RenderPylonMedium.java | 87 ++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../network/TileEntityPylonBase.java | 1 + .../network/TileEntityPylonLarge.java | 1 - .../network/TileEntityPylonMedium.java | 59 + src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 6 +- .../hbm/models/network/pylon_medium.obj | 1023 +++++++++++++++++ .../textures/models/network/pylon_medium.png | Bin 957 -> 2996 bytes .../models/network/pylon_medium_steel.png | Bin 0 -> 2320 bytes 25 files changed, 1279 insertions(+), 110 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/PylonMedium.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java create mode 100644 src/main/resources/assets/hbm/models/network/pylon_medium.obj create mode 100644 src/main/resources/assets/hbm/textures/models/network/pylon_medium_steel.png diff --git a/changelog b/changelog index db178b44d..31bdeeb83 100644 --- a/changelog +++ b/changelog @@ -1,32 +1,10 @@ ## Added -* PWR Heatsink - * Increases the core heat capacity by 5% per block - * Makes cooling channels and heat exchangers slightly less effective (each heatsink counts as one quarter of a fuel rod in the heat calculation) +* New medium sized electricity pylons + * Come in wood and steel flavor + * The regular ones don't connect to cable blocks, the variants with transformers do (i.e. they act like substations for huge pylons) ## Changed -* All launch pad blocks can now accept items, not just ports -* Removed the old watz pellets and titanium filter -* Removed copper panels, cast copper plates now take its place in most use-cases -* Removed generator bodies and rotors, recipes use 6 dense gold wires per generator instead -* Removed reinforced turbine shafts, most turbines now use HSS pipes instead -* Removed the steam batteries (why did we even have those?) -* Removed some old remap items (from back when the ZIRNOX rods got remapped) -* Large and small shells have been merged into a single item which uses material autogen - * A copper variant for shells has been added which is used for artillery shells - * Shells are now only directly craftable via anvil, however they can be cast using the crucible as well -* Most instances of the expensive steel pipes as well as the decorative pipes which need tons of microcrafting have been replaced with a new pipe item - * The new pipes also use autogen, being available in different materials - * Some of the recipes that used the small shells now use pipes instead -* Tenfolded the throughout of powered condensers -* Regular and combo filters now work for blistering agents (like mustard gas or air pollution) -* Wires now render two faces instead of one, making them appear equally thick from any viewed angle -* Slag taps can now be toggled and filtered -* Foundry channels now have twice the throughput (2 ingots) -* RBMK ReaSim and steam connectors now have tooltips explaining how they work, as there is no other ingame documentation on them +* Condensers now need cast plates instead of welded plates +* Tweaked the substation recipe, it now yields two substations -## Fixed -* Fixed crash caused by invalid default loot pool configuration -* Fixed enchantment glint not rendering on upscaled items like certain swords or tier 2 pickaxes -* Fixed wire connections becoming invisible when pointing straight down, wires should now rotate correctly -* Fixed connection issue allowing channels to output into slag taps sideways -* Fixed the strand caster sometimes voiding small amounts of material +## Fixed \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index bbd2bff36..17ca86aa7 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -773,6 +773,10 @@ public class ModBlocks { public static Block red_cable_gauge; public static Block red_connector; public static Block red_pylon; + public static Block red_pylon_medium_wood; + public static Block red_pylon_medium_wood_transformer; + public static Block red_pylon_medium_steel; + public static Block red_pylon_medium_steel_transformer; public static Block red_pylon_large; public static Block substation; public static Block cable_switch; @@ -1922,6 +1926,10 @@ public class ModBlocks { red_cable_gauge = new BlockCableGauge().setBlockName("red_cable_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); red_connector = new ConnectorRedWire(Material.iron).setBlockName("red_connector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector"); red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_wood = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_wood_transformer = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_steel = new PylonMedium(Material.iron).setBlockName("red_pylon_medium_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_steel_transformer = new PylonMedium(Material.iron).setBlockName("red_pylon_medium_steel_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); red_pylon_large = new PylonLarge(Material.iron).setBlockName("red_pylon_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon_large"); substation = new Substation(Material.iron).setBlockName("substation").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":substation"); cable_switch = new CableSwitch(Material.iron).setBlockName("cable_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -3196,6 +3204,10 @@ public class ModBlocks { GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); GameRegistry.registerBlock(red_connector, ItemBlockBase.class, red_connector.getUnlocalizedName()); GameRegistry.registerBlock(red_pylon, ItemBlockBase.class, red_pylon.getUnlocalizedName()); + register(red_pylon_medium_wood); + register(red_pylon_medium_wood_transformer); + register(red_pylon_medium_steel); + register(red_pylon_medium_steel_transformer); GameRegistry.registerBlock(red_pylon_large, ItemBlockBase.class, red_pylon_large.getUnlocalizedName()); GameRegistry.registerBlock(substation, ItemBlockBase.class, substation.getUnlocalizedName()); GameRegistry.registerBlock(cable_switch, cable_switch.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/network/PylonMedium.java b/src/main/java/com/hbm/blocks/network/PylonMedium.java new file mode 100644 index 000000000..d36921a67 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/PylonMedium.java @@ -0,0 +1,53 @@ +package com.hbm.blocks.network; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.network.TileEntityPylonBase; +import com.hbm.tileentity.network.TileEntityPylonMedium; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class PylonMedium extends BlockDummyable implements ITooltipProvider { + + public PylonMedium(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityPylonMedium(); + return null; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Triple"); + list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "45m"); + } + + @Override + public int[] getDimensions() { + return new int[] {6, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block b, int m) { + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TileEntityPylonBase) ((TileEntityPylonBase)te).disconnectAll(); + super.breakBlock(world, x, y, z, b, m); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerFEL.java b/src/main/java/com/hbm/inventory/container/ContainerFEL.java index db7cd4949..c80e69e44 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerFEL.java +++ b/src/main/java/com/hbm/inventory/container/ContainerFEL.java @@ -3,7 +3,6 @@ package com.hbm.inventory.container; import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityFEL; -import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -49,7 +48,7 @@ public class ContainerFEL extends Container { } } else { - if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(rStack.getItem() instanceof api.hbm.energymk2.IBatteryItem || rStack.getItem() == ModItems.battery_creative) { if(!this.mergeItemStack(stack, 0, 1, false)) return null; } else { if(!this.mergeItemStack(stack, 1, 2, false)) return null; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java index ed084a881..c8380834b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java @@ -6,7 +6,7 @@ import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java index 6bbf3510a..950a00d7d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java @@ -7,7 +7,7 @@ import com.hbm.items.machine.ItemChemistryTemplate; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineChemplant; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java index feb3de896..51513c094 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java @@ -6,7 +6,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineGasCent; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java index 3e751f88e..c10e47ae7 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java @@ -5,7 +5,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBlades; import com.hbm.tileentity.machine.TileEntityMachineShredder; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java index 5fb979fe9..d2e12fa98 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java @@ -5,7 +5,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index e4cc0a9a5..8a295eea5 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -458,14 +458,12 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { - new OreDictStack(ANY_CONCRETE.any(), 6), - new OreDictStack(STEEL.ingot(), 4), - new ComparableStack(ModBlocks.steel_scaffold, 2), - new ComparableStack(ModItems.plate_polymer, 8), - new ComparableStack(ModItems.coil_copper, 2), - new ComparableStack(ModItems.coil_copper_torus, 2) + new OreDictStack(ANY_CONCRETE.any(), 8), + new OreDictStack(STEEL.ingot(), 8), + new ComparableStack(ModItems.plate_polymer, 12), + new ComparableStack(ModItems.coil_copper, 8) }, - new AnvilOutput(new ItemStack(ModBlocks.substation))).setTier(2)); + new AnvilOutput(new ItemStack(ModBlocks.substation, 2))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index d0beabbc7..6b984dd85 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -147,8 +147,6 @@ public class ClientProxy extends ServerProxy { registerBlockRenderer(); Jars.initJars(); - - //SoundUtil.addSoundCategory("ntmMachines"); } private void registerClientEventHandler(Object handler) { @@ -337,6 +335,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnector.class, new RenderConnector()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonMedium.class, new RenderPylonMedium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonLarge.class, new RenderPylonLarge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySubstation.class, new RenderSubstation()); //chargers diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 04b67bc0d..a3896a2fe 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -279,6 +279,10 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_wire_coated, STEEL.ingot(), ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated }); + addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_wood, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE }); + addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_wood_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_wood, ModItems.plate_polymer, ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_steel, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', STEEL.pipe(), 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE }); + addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_steel_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_steel, ModItems.plate_polymer, ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', CU.ingot(), 'R', REDSTONE.block(), 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_bus, 1), new Object[] { "PIP", "PIP", "PIP", 'P', ModItems.plate_polymer, 'I', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_copper, 1), new Object[] { "PPP", "PCP", "WWW", 'P', STEEL.plate(), 'C', CU.block(), 'W', KEY_PLANKS }); @@ -960,7 +964,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.solid_fuel, 3), new Object[] { Fluids.HEATINGOIL.getDict(16000), KEY_TOOL_CHEMISTRYSET }); addShapelessAuto(new ItemStack(ModItems.canister_full, 2, Fluids.LUBRICANT.getID()), new Object[] { Fluids.HEATINGOIL.getDict(1000), Fluids.UNSATURATEDS.getDict(1000), ModItems.canister_empty, ModItems.canister_empty, KEY_TOOL_CHEMISTRYSET }); - addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', CU.plateWelded() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', CU.plateCast() }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ) }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 677b69c92..08ba66b2d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -385,6 +385,7 @@ public class ResourceManager { //Network public static final IModelCustom connector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/connector.obj")); + public static final IModelCustom pylon_medium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_medium.obj")); public static final IModelCustom pylon_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_large.obj")); public static final IModelCustom substation = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/substation.obj")); @@ -782,6 +783,8 @@ public class ResourceManager { //Electricity public static final ResourceLocation connector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/connector.png"); + public static final ResourceLocation pylon_medium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium.png"); + public static final ResourceLocation pylon_medium_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium_steel.png"); public static final ResourceLocation pylon_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_large.png"); public static final ResourceLocation substation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/substation.png"); public static final ResourceLocation wire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java index f7ffccd91..dca78271c 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java @@ -4,7 +4,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; import com.hbm.tileentity.network.TileEntityPylonBase; -import com.hbm.tileentity.network.TileEntityPylonBase.ConnectionType; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -15,63 +14,6 @@ import net.minecraft.world.World; public abstract class RenderPylonBase extends TileEntitySpecialRenderer { - //TODO: adapt this into a more generic form for multi wire pylons - /*@Deprecated - public void renderSingleLine(TileEntityPylonBase pyl, double x, double y, double z) { - - for(int i = 0; i < pyl.connected.size(); i++) { - - int[] wire = pyl.connected.get(i); - TileEntity tile = pyl.getWorldObj().getTileEntity(wire[0], wire[1], wire[2]); - - if(tile instanceof TileEntityPylonBase) { - TileEntityPylonBase pylon = (TileEntityPylonBase) tile; - Vec3 myOffset = pyl.getMountPos()[0]; - Vec3 theirOffset = pylon.getMountPos()[0]; - - double conX0 = pyl.xCoord + myOffset.xCoord; - double conY0 = pyl.yCoord + myOffset.yCoord; - double conZ0 = pyl.zCoord + myOffset.zCoord; - double conX1 = pylon.xCoord + theirOffset.xCoord; - double conY1 = pylon.yCoord + theirOffset.yCoord; - double conZ1 = pylon.zCoord + theirOffset.zCoord; - - double wX = (conX1 - conX0) / 2D; - double wY = (conY1 - conY0) / 2D; - double wZ = (conZ1 - conZ0) / 2D; - - float count = 10; - Vec3 delta = Vec3.createVectorHelper(conX1 - conX0, conY1 - conY0, conZ1 - conZ0); - double hang = delta.lengthVector() / 15D; - - for(float j = 0; j < count; j++) { - - float k = j + 1; - - double ja = j + 0.5D; - double ix = conX0 + delta.xCoord / (double)(count * 2) * ja; - double iy = conY0 + delta.yCoord / (double)(count * 2) * ja - Math.sin(j / count * Math.PI * 0.5) * hang; - double iz = conZ0 + delta.zCoord / (double)(count * 2) * ja; - - //pylon.getWorldObj().spawnParticle("reddust", ix, iy, iz, 0.01 + j * 0.1, 0, 0); - - int brightness = pyl.getWorldObj().getLightBrightnessForSkyBlocks(MathHelper.floor_double(ix), MathHelper.floor_double(iy), MathHelper.floor_double(iz), 0); - int lX = brightness % 65536; - int lY = brightness / 65536; - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); - - drawLineSegment( - x + myOffset.xCoord + (wX * j / count), - y + myOffset.yCoord + (wY * j / count) - Math.sin(j / count * Math.PI * 0.5) * hang, - z + myOffset.zCoord + (wZ * j / count), - x + myOffset.xCoord + (wX * k / count), - y + myOffset.yCoord + (wY * k / count) - Math.sin(k / count * Math.PI * 0.5) * hang, - z + myOffset.zCoord + (wZ * k / count)); - } - } - } - }*/ - /** * The closest we have to a does-all solution. It will figure out if it needs to draw multiple lines, * iterate through all the mounting points, try to find the matching mounting points and then draw the lines. @@ -95,7 +37,7 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { Vec3[] m1 = pyl.getMountPos(); Vec3[] m2 = pylon.getMountPos(); - int lineCount = Math.max(pyl.getConnectionType() == ConnectionType.QUAD ? 4 : 1, pylon.getConnectionType() == ConnectionType.QUAD ? 4 : 1); + int lineCount = Math.min(m1.length, m2.length); for(int line = 0; line < lineCount; line++) { @@ -227,12 +169,16 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { double iZ = Math.cos(yaw) * Math.cos(newPitch) * girth; double iX = Math.sin(yaw) * Math.cos(newPitch) * girth; double iY = Math.sin(newPitch) * girth; - double jZ = Math.cos(newYaw) * Math.cos(newPitch) * girth; - double jX = Math.sin(newYaw) * Math.cos(newPitch) * girth; + double jZ = Math.cos(newYaw) * girth; + double jX = Math.sin(newYaw) * girth; double length = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); int wrap = (int) Math.ceil(length * 8); - if(deltaX + deltaZ < 0) wrap *= -1; + if(deltaX + deltaZ < 0) { + wrap *= -1; + jZ *= -1; + jX *= -1; + } tessellator.setColorOpaque_I(0xffffff); tessellator.addVertexWithUV(x + iX, y + iY, z + iZ, 0, 0); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java b/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java index 8df4d64fb..a70616ce7 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java @@ -35,5 +35,4 @@ public class RenderPylonLarge extends RenderPylonBase { this.renderLinesGeneric(pyl, x, y, z); GL11.glPopMatrix(); } - } diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java b/src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java new file mode 100644 index 000000000..c37cd2881 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java @@ -0,0 +1,87 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.network.TileEntityPylonMedium; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPylonMedium extends RenderPylonBase implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + TileEntityPylonMedium pyl = (TileEntityPylonMedium)tile; + + + if(tile.getBlockType() == ModBlocks.red_pylon_medium_steel || tile.getBlockType() == ModBlocks.red_pylon_medium_steel_transformer) + bindTexture(ResourceManager.pylon_medium_steel_tex); + else + bindTexture(ResourceManager.pylon_medium_tex); + + ResourceManager.pylon_medium.renderPart("Pylon"); + if(pyl.hasTransformer()) ResourceManager.pylon_medium.renderPart("Transformer"); + + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + this.renderLinesGeneric(pyl, x, y, z); + GL11.glPopMatrix(); + } + + @Override + public Item[] getItemsForRenderer() { + return new Item[] { + Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood), + Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood_transformer), + Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel), + Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel_transformer) + }; + } + + @Override + public Item getItemForRenderer() { return Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood); } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(1, -5, 0); + GL11.glScaled(4.5, 4.5, 4.5); + } + public void renderCommonWithStack(ItemStack stack) { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glTranslated(0.75, 0, 0); + + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel) || stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel_transformer)) + bindTexture(ResourceManager.pylon_medium_steel_tex); + else + bindTexture(ResourceManager.pylon_medium_tex); + + ResourceManager.pylon_medium.renderPart("Pylon"); + + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood_transformer) || stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel_transformer)) + ResourceManager.pylon_medium.renderPart("Transformer"); + } + }; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index b5fe97b8e..ca90591b5 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -382,6 +382,7 @@ public class TileMappings { put(TileEntityConnector.class, "tileentity_connector_redwire"); put(TileEntityPylon.class, "tileentity_pylon_redwire"); + put(TileEntityPylonMedium.class, "tileentity_pylon_medium"); put(TileEntityPylonLarge.class, "tileentity_pylon_large"); put(TileEntitySubstation.class, "tileentity_substation"); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java index 49da2622f..080001df1 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java @@ -156,6 +156,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { public static enum ConnectionType { SINGLE, + TRIPLE, QUAD //more to follow } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java index f0ef0c3d5..03b588ed0 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java @@ -37,5 +37,4 @@ public class TileEntityPylonLarge extends TileEntityPylonBase { public double getMaxWireLength() { return 100; } - } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java new file mode 100644 index 000000000..fd7cb146f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java @@ -0,0 +1,59 @@ +package com.hbm.tileentity.network; + +import com.hbm.blocks.ModBlocks; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.Nodespace.PowerNode; +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityPylonMedium extends TileEntityPylonBase { + + @Override + public ConnectionType getConnectionType() { + return ConnectionType.TRIPLE; + } + + @Override + public Vec3[] getMountPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + double height = 7.5D; + + return new Vec3[] { + Vec3.createVectorHelper(0.5, height, 0.5), + Vec3.createVectorHelper(0.5 + dir.offsetX, height, 0.5 + dir.offsetZ), + Vec3.createVectorHelper(0.5 + dir.offsetX * 2, height, 0.5 + dir.offsetZ * 2), + }; + } + + @Override + public double getMaxWireLength() { + return 45; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + return this.hasTransformer() ? ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getOpposite() == dir : false; + } + + @Override + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections(new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN)); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + if(this.hasTransformer()) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getOpposite(); + node.addConnection(new DirPos(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir)); + } + return node; + } + + public boolean hasTransformer() { + Block block = this.getBlockType(); + return block == ModBlocks.red_pylon_medium_wood_transformer || block == ModBlocks.red_pylon_medium_steel_transformer; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 2a1bfc4be..2c3be2817 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4482,6 +4482,10 @@ tile.red_cable_paintable.name=Geschirmtes rotes Kupferkabel (Färbbar) tile.red_connector.name=Stromverbindungsstück tile.red_pylon.name=Strommasten tile.red_pylon_large.name=Hochspannungsmasten +tile.red_pylon_medium_steel.name=Stählerner mittelgroßer Strommasten +tile.red_pylon_medium_steel_transformer.name=Stählerner mittelgroßer Strommasten mit Transformator +tile.red_pylon_medium_wood.name=Hölzerner mittelgroßer Strommasten +tile.red_pylon_medium_wood_transformer.name=Hölzerner mittelgroßer Strommasten mit Transformator tile.red_wire_coated.name=Geschirmtes rotes Kupferkabel tile.reinforced_brick.name=Verstärkter Stein tile.reinforced_brick_stairs.name=Verstärkte Steintreppe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 7d74c5a94..32a776667 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5537,8 +5537,12 @@ tile.red_cable_gauge.name=Power Gauge tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per tick.$Split networks connected by energy$storage blocks are considered as one shared network. tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector -tile.red_pylon.name=Electricity Pole +tile.red_pylon.name=Electricity Pylon tile.red_pylon_large.name=Large Electricity Pylon +tile.red_pylon_medium_steel.name=Medium Steel Electicity Pylon +tile.red_pylon_medium_steel_transformer.name=Medium Steel Electicity Pylon with Transformer +tile.red_pylon_medium_wood.name=Medium Wooden Electicity Pylon +tile.red_pylon_medium_wood_transformer.name=Medium Wooden Electicity Pylon with Transformer tile.red_wire_coated.name=Coated Red Copper Cable tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs diff --git a/src/main/resources/assets/hbm/models/network/pylon_medium.obj b/src/main/resources/assets/hbm/models/network/pylon_medium.obj new file mode 100644 index 000000000..750e781b9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/network/pylon_medium.obj @@ -0,0 +1,1023 @@ +# Blender v2.79 (sub 0) OBJ File: 'pylon_medium.blend' +# www.blender.org +o Transformer +v -0.187500 0.312500 -0.250000 +v 0.187500 0.312500 -0.250000 +v -0.187500 0.687500 -0.250000 +v 0.187500 0.687500 -0.250000 +v -0.187500 0.687500 -0.500000 +v -0.187500 0.312500 -0.500000 +v 0.187500 0.312500 -0.500000 +v 0.187500 0.687500 -0.500000 +v -0.250000 5.500000 -0.125000 +v 0.250000 5.500000 -0.125000 +v -0.250000 6.500000 -0.125000 +v 0.250000 6.500000 -0.125000 +v -0.250000 6.500000 -0.625000 +v -0.250000 5.500000 -0.625000 +v 0.250000 5.500000 -0.625000 +v 0.250000 6.500000 -0.625000 +v -0.062500 1.000000 -0.125000 +v 0.062500 1.000000 -0.125000 +v -0.062500 1.000000 -0.187500 +v 0.062500 1.000000 -0.187500 +v -0.062500 5.500000 -0.125000 +v 0.062500 5.500000 -0.125000 +v -0.062500 5.500000 -0.187500 +v 0.062500 5.500000 -0.187500 +v -0.062500 6.500000 -0.125000 +v 0.062500 6.500000 -0.125000 +v -0.062500 6.500000 -0.187500 +v 0.062500 6.500000 -0.187500 +v -0.062500 6.937500 -0.125000 +v 0.062500 6.937500 -0.125000 +v -0.062500 6.875000 -0.187500 +v 0.062500 6.875000 -0.187500 +v -0.187500 5.562500 0.187500 +v 0.187500 5.562500 0.187500 +v -0.187500 5.562500 -0.125000 +v 0.187500 5.562500 -0.125000 +v -0.187500 5.687500 -0.125000 +v -0.187500 5.687500 0.187500 +v 0.187500 5.687500 0.187500 +v 0.187500 5.687500 -0.125000 +v -0.187500 6.312500 0.187500 +v 0.187500 6.312500 0.187500 +v -0.187500 6.312500 -0.125000 +v 0.187500 6.312500 -0.125000 +v -0.187500 6.437500 -0.125000 +v -0.187500 6.437500 0.187500 +v 0.187500 6.437500 0.187500 +v 0.187500 6.437500 -0.125000 +vt 0.846154 0.312500 +vt 0.692308 0.437500 +vt 0.692308 0.312500 +vt 0.730769 0.265625 +vt 0.615385 0.218750 +vt 0.730769 0.218750 +vt 0.538462 0.218750 +vt 0.615385 0.265625 +vt 0.538462 0.265625 +vt 0.807692 0.265625 +vt 0.807692 0.218750 +vt 0.615385 0.296875 +vt 0.730769 0.296875 +vt 0.730769 0.187500 +vt 0.615385 0.187500 +vt 0.538462 0.437500 +vt 0.384615 0.312500 +vt 0.538462 0.312500 +vt 0.384615 0.500000 +vt 0.538462 0.500000 +vt 0.538462 0.250000 +vt 0.384615 0.250000 +vt 1.000000 0.437500 +vt 0.846154 0.437500 +vt 0.057692 0.562500 +vt 0.019231 0.000000 +vt 0.057692 0.000000 +vt 0.019231 0.562500 +vt -0.000000 0.000000 +vt 0.076923 0.562500 +vt 0.076923 0.000000 +vt 0.057692 0.859375 +vt 0.019231 0.812500 +vt 0.057692 0.812500 +vt 0.019231 0.859375 +vt 0.000000 0.812500 +vt 0.076923 0.812500 +vt 0.057692 0.867188 +vt 0.788462 0.437500 +vt 0.903846 0.476562 +vt 0.788462 0.476562 +vt 0.903846 0.492188 +vt 0.788462 0.531250 +vt 0.788462 0.492188 +vt 0.788462 0.437500 +vt 0.903846 0.476562 +vt 0.788462 0.476562 +vt 1.000000 0.476562 +vt 0.692308 0.492188 +vt 0.692308 0.476562 +vt 0.903846 0.492188 +vt 0.788462 0.531250 +vt 0.788462 0.492188 +vt 1.000000 0.476562 +vt 0.692308 0.492188 +vt 0.692308 0.476562 +vt 0.384615 0.437500 +vt 1.000000 0.312500 +vt -0.000000 0.562500 +vt 0.000000 0.867188 +vt 0.076923 0.867188 +vt 0.019231 0.867188 +vt 0.903846 0.437500 +vt 0.903846 0.531250 +vt 0.903846 0.437500 +vt 1.000000 0.492188 +vt 0.903846 0.531250 +vt 1.000000 0.492188 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +s off +f 10/1/1 11/2/1 9/3/1 +f 5/4/2 7/5/2 6/6/2 +f 2/7/3 8/8/3 4/9/3 +f 3/10/4 6/6/4 1/11/4 +f 4/12/5 5/4/5 3/13/5 +f 1/14/6 7/5/6 2/15/6 +f 13/16/2 15/17/2 14/18/2 +f 12/19/5 13/16/5 11/20/5 +f 9/21/6 15/17/6 10/22/6 +f 10/1/3 16/23/3 12/24/3 +f 11/2/4 14/18/4 9/3/4 +f 23/25/2 20/26/2 19/27/2 +f 24/28/3 18/29/3 20/26/3 +f 21/30/4 19/27/4 17/31/4 +f 31/32/2 28/33/2 27/34/2 +f 32/35/3 26/36/3 28/33/3 +f 25/37/4 31/32/4 27/34/4 +f 29/38/7 32/35/7 31/32/7 +f 35/39/6 34/40/6 33/41/6 +f 39/42/5 37/43/5 38/44/5 +f 43/45/6 42/46/6 41/47/6 +f 34/40/1 38/44/1 33/41/1 +f 36/48/3 39/42/3 34/40/3 +f 33/41/4 37/49/4 35/50/4 +f 47/51/5 45/52/5 46/53/5 +f 42/46/1 46/53/1 41/47/1 +f 44/54/3 47/51/3 42/46/3 +f 41/47/4 45/55/4 43/56/4 +f 10/1/1 12/24/1 11/2/1 +f 5/4/2 8/8/2 7/5/2 +f 2/7/3 7/5/3 8/8/3 +f 3/10/4 5/4/4 6/6/4 +f 4/12/5 8/8/5 5/4/5 +f 1/14/6 6/6/6 7/5/6 +f 13/16/2 16/57/2 15/17/2 +f 12/19/5 16/57/5 13/16/5 +f 9/21/6 14/18/6 15/17/6 +f 10/1/3 15/58/3 16/23/3 +f 11/2/4 13/16/4 14/18/4 +f 23/25/2 24/28/2 20/26/2 +f 24/28/3 22/59/3 18/29/3 +f 21/30/4 23/25/4 19/27/4 +f 31/32/2 32/35/2 28/33/2 +f 32/35/3 30/60/3 26/36/3 +f 25/37/4 29/61/4 31/32/4 +f 29/38/7 30/62/7 32/35/7 +f 35/39/6 36/63/6 34/40/6 +f 39/42/5 40/64/5 37/43/5 +f 43/45/6 44/65/6 42/46/6 +f 34/40/1 39/42/1 38/44/1 +f 36/48/3 40/66/3 39/42/3 +f 33/41/4 38/44/4 37/49/4 +f 47/51/5 48/67/5 45/52/5 +f 42/46/1 47/51/1 46/53/1 +f 44/54/3 48/68/3 47/51/3 +f 41/47/4 46/53/4 45/55/4 +o Pylon +v -0.250000 0.000000 0.250000 +v 0.250000 0.000000 0.250000 +v -0.250000 0.000000 -0.250000 +v 0.250000 0.000000 -0.250000 +v -0.250000 1.000000 0.250000 +v 0.250000 1.000000 0.250000 +v -0.250000 1.000000 -0.250000 +v 0.250000 1.000000 -0.250000 +v -0.125000 1.000000 0.125000 +v 0.125000 1.000000 0.125000 +v -0.125000 1.000000 -0.125000 +v 0.125000 1.000000 -0.125000 +v -0.125000 7.000000 0.125000 +v 0.125000 7.000000 0.125000 +v -0.125000 7.000000 -0.125000 +v 0.125000 7.000000 -0.125000 +v -0.125000 7.000000 0.125000 +v 0.125000 7.000000 0.125000 +v -0.125000 7.000000 -0.125000 +v 0.125000 7.000000 -0.125000 +v -0.125000 7.062500 -0.125000 +v -0.125000 7.062500 0.125000 +v 0.125000 7.062500 0.125000 +v 0.125000 7.062500 -0.125000 +v -0.187500 7.062500 -0.187500 +v -0.187500 7.062500 0.187500 +v 0.187500 7.062500 0.187500 +v 0.187500 7.062500 -0.187500 +v -0.187500 7.187500 -0.187500 +v -0.187500 7.187500 0.187500 +v 0.187500 7.187500 0.187500 +v 0.187500 7.187500 -0.187500 +v -0.125000 7.187500 0.125000 +v 0.125000 7.187500 0.125000 +v -0.125000 7.187500 -0.125000 +v 0.125000 7.187500 -0.125000 +v -0.125000 7.250000 -0.125000 +v -0.125000 7.250000 0.125000 +v 0.125000 7.250000 0.125000 +v 0.125000 7.250000 -0.125000 +v -0.187500 7.250000 -0.187500 +v -0.187500 7.250000 0.187500 +v 0.187500 7.250000 0.187500 +v 0.187500 7.250000 -0.187500 +v -0.187500 7.375000 -0.187500 +v -0.187500 7.375000 0.187500 +v 0.187500 7.375000 0.187500 +v 0.187500 7.375000 -0.187500 +v -0.125000 7.375000 0.125000 +v 0.125000 7.375000 0.125000 +v -0.125000 7.375000 -0.125000 +v 0.125000 7.375000 -0.125000 +v -0.125000 7.437500 -0.125000 +v -0.125000 7.437500 0.125000 +v 0.125000 7.437500 0.125000 +v 0.125000 7.437500 -0.125000 +v -0.062500 7.437500 -0.062500 +v -0.062500 7.437500 0.062500 +v 0.062500 7.437500 0.062500 +v 0.062500 7.437500 -0.062500 +v -0.062500 7.562500 -0.062500 +v -0.062500 7.562500 0.062500 +v 0.062500 7.562500 0.062500 +v 0.062500 7.562500 -0.062500 +v -0.125000 7.000000 2.125000 +v 0.125000 7.000000 2.125000 +v -0.125000 6.750000 2.125000 +v 0.125000 6.750000 2.125000 +v -0.125000 7.000000 0.125000 +v 0.125000 7.000000 0.125000 +v -0.125000 6.750000 0.125000 +v 0.125000 6.750000 0.125000 +v -0.062500 5.750000 0.125000 +v 0.062500 5.750000 0.125000 +v -0.062500 6.000000 0.125000 +v 0.062500 6.000000 0.125000 +v -0.062500 6.750000 1.125000 +v 0.062500 6.750000 1.125000 +v -0.062500 6.750000 0.875000 +v 0.062500 6.750000 0.875000 +v -0.125000 7.000000 1.125000 +v 0.125000 7.000000 1.125000 +v -0.125000 7.000000 0.875000 +v 0.125000 7.000000 0.875000 +v -0.125000 7.062500 0.875000 +v -0.125000 7.062500 1.125000 +v 0.125000 7.062500 1.125000 +v 0.125000 7.062500 0.875000 +v -0.187500 7.062500 0.812500 +v -0.187500 7.062500 1.187500 +v 0.187500 7.062500 1.187500 +v 0.187500 7.062500 0.812500 +v -0.187500 7.187500 0.812500 +v -0.187500 7.187500 1.187500 +v 0.187500 7.187500 1.187500 +v 0.187500 7.187500 0.812500 +v -0.125000 7.187500 1.125000 +v 0.125000 7.187500 1.125000 +v -0.125000 7.187500 0.875000 +v 0.125000 7.187500 0.875000 +v -0.125000 7.250000 0.875000 +v -0.125000 7.250000 1.125000 +v 0.125000 7.250000 1.125000 +v 0.125000 7.250000 0.875000 +v -0.187500 7.250000 0.812500 +v -0.187500 7.250000 1.187500 +v 0.187500 7.250000 1.187500 +v 0.187500 7.250000 0.812500 +v -0.187500 7.375000 0.812500 +v -0.187500 7.375000 1.187500 +v 0.187500 7.375000 1.187500 +v 0.187500 7.375000 0.812500 +v -0.125000 7.375000 1.125000 +v 0.125000 7.375000 1.125000 +v -0.125000 7.375000 0.875000 +v 0.125000 7.375000 0.875000 +v -0.125000 7.437500 0.875000 +v -0.125000 7.437500 1.125000 +v 0.125000 7.437500 1.125000 +v 0.125000 7.437500 0.875000 +v -0.062500 7.437500 0.937500 +v -0.062500 7.437500 1.062500 +v 0.062500 7.437500 1.062500 +v 0.062500 7.437500 0.937500 +v -0.062500 7.562500 0.937500 +v -0.062500 7.562500 1.062500 +v 0.062500 7.562500 1.062500 +v 0.062500 7.562500 0.937500 +v -0.125000 7.000000 2.125000 +v 0.125000 7.000000 2.125000 +v -0.125000 7.000000 1.875000 +v 0.125000 7.000000 1.875000 +v -0.125000 7.062500 1.875000 +v -0.125000 7.062500 2.125000 +v 0.125000 7.062500 2.125000 +v 0.125000 7.062500 1.875000 +v -0.187500 7.062500 1.812500 +v -0.187500 7.062500 2.187500 +v 0.187500 7.062500 2.187500 +v 0.187500 7.062500 1.812500 +v -0.187500 7.187500 1.812500 +v -0.187500 7.187500 2.187500 +v 0.187500 7.187500 2.187500 +v 0.187500 7.187500 1.812500 +v -0.125000 7.187500 2.125000 +v 0.125000 7.187500 2.125000 +v -0.125000 7.187500 1.875000 +v 0.125000 7.187500 1.875000 +v -0.125000 7.250000 1.875000 +v -0.125000 7.250000 2.125000 +v 0.125000 7.250000 2.125000 +v 0.125000 7.250000 1.875000 +v -0.187500 7.250000 1.812500 +v -0.187500 7.250000 2.187500 +v 0.187500 7.250000 2.187500 +v 0.187500 7.250000 1.812500 +v -0.187500 7.375000 1.812500 +v -0.187500 7.375000 2.187500 +v 0.187500 7.375000 2.187500 +v 0.187500 7.375000 1.812500 +v -0.125000 7.375000 2.125000 +v 0.125000 7.375000 2.125000 +v -0.125000 7.375000 1.875000 +v 0.125000 7.375000 1.875000 +v -0.125000 7.437500 1.875000 +v -0.125000 7.437500 2.125000 +v 0.125000 7.437500 2.125000 +v 0.125000 7.437500 1.875000 +v -0.062500 7.437500 1.937500 +v -0.062500 7.437500 2.062500 +v 0.062500 7.437500 2.062500 +v 0.062500 7.437500 1.937500 +v -0.062500 7.562500 1.937500 +v -0.062500 7.562500 2.062500 +v 0.062500 7.562500 2.062500 +v 0.062500 7.562500 1.937500 +vt 0.538462 -0.000000 +vt 0.384615 0.062500 +vt 0.384615 -0.000000 +vt 0.538462 0.062500 +vt 0.384615 0.187500 +vt 0.846154 0.062500 +vt 0.692308 0.187500 +vt 0.692308 0.062500 +vt 0.538462 0.187500 +vt 1.000000 0.062500 +vt 0.846154 0.187500 +vt 0.230769 0.000000 +vt 0.153846 0.750000 +vt 0.153846 0.000000 +vt 0.384615 0.250000 +vt 0.538462 0.250000 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.384615 0.000000 +vt 0.307692 0.750000 +vt 0.307692 0.000000 +vt 0.076923 0.750000 +vt 0.076923 0.000000 +vt 0.230769 0.750000 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.403846 0.789062 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.403846 0.828125 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.480769 0.820312 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.906250 +vt 0.461538 0.890625 +vt 0.461538 0.906250 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.750000 +vt 0.384615 0.781250 +vt 0.384615 0.750000 +vt 0.615385 0.750000 +vt 0.692308 0.500000 +vt 0.692308 0.750000 +vt 0.461538 0.500000 +vt 0.538462 0.500000 +vt 0.538462 0.750000 +vt 0.615385 0.500000 +vt 0.961538 0.875000 +vt 0.923077 0.781250 +vt 0.961538 0.781250 +vt 0.769231 0.656250 +vt 1.000000 0.531250 +vt 1.000000 0.562500 +vt 1.000000 0.906250 +vt 0.961538 0.781250 +vt 1.000000 0.781250 +vt 1.000000 0.781250 +vt 0.692308 0.687500 +vt 0.692308 0.656250 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.403846 0.789062 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.403846 0.828125 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.480769 0.820312 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.906250 +vt 0.461538 0.890625 +vt 0.461538 0.906250 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.403846 0.789062 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.403846 0.828125 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.480769 0.820312 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.906250 +vt 0.461538 0.890625 +vt 0.461538 0.906250 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 1.000000 0.187500 +vt 0.384615 0.750000 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.781250 +vt 0.384615 0.500000 +vt 0.923077 0.875000 +vt 0.692308 0.656250 +vt 0.961538 0.906250 +vt 0.923077 0.781250 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +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 0.0000 -0.7071 0.7071 +s off +f 51/69/8 50/70/8 49/71/8 +f 52/72/9 54/73/9 50/70/9 +f 49/74/10 55/75/10 51/76/10 +f 51/76/11 56/77/11 52/72/11 +f 50/78/12 53/79/12 49/74/12 +f 59/80/11 64/81/11 60/82/11 +f 53/83/13 56/77/13 55/84/13 +f 84/85/9 87/86/9 82/87/9 +f 58/88/12 61/89/12 57/90/12 +f 60/82/9 62/91/9 58/92/9 +f 57/90/10 63/93/10 59/80/10 +f 81/94/10 85/95/10 83/96/10 +f 69/97/8 76/98/8 72/99/8 +f 68/100/9 71/101/9 66/102/9 +f 65/103/10 69/104/10 67/105/10 +f 67/106/11 72/99/11 68/107/11 +f 66/108/12 70/109/12 65/110/12 +f 76/111/9 79/112/9 75/113/9 +f 71/114/8 74/115/8 70/109/8 +f 72/116/8 75/113/8 71/101/8 +f 70/117/8 73/118/8 69/104/8 +f 85/119/8 92/120/8 88/121/8 +f 74/122/10 77/123/10 73/118/10 +f 73/124/11 80/125/11 76/98/11 +f 75/126/12 78/127/12 74/115/12 +f 83/128/11 88/121/11 84/129/11 +f 82/130/12 86/131/12 81/132/12 +f 92/133/9 95/134/9 91/135/9 +f 87/136/8 90/137/8 86/131/8 +f 88/138/8 91/135/8 87/86/8 +f 86/139/8 89/140/8 85/95/8 +f 90/141/10 93/142/10 89/140/10 +f 89/143/11 96/144/11 92/120/11 +f 91/145/12 94/146/12 90/137/12 +f 82/130/13 78/127/13 79/147/13 +f 84/85/13 79/112/13 80/148/13 +f 83/128/13 80/125/13 77/149/13 +f 81/94/13 77/123/13 78/150/13 +f 100/151/9 103/152/9 98/153/9 +f 97/154/10 101/155/10 99/156/10 +f 99/157/11 104/158/11 100/159/11 +f 98/160/12 102/161/12 97/162/12 +f 98/160/13 94/146/13 95/163/13 +f 100/151/13 95/134/13 96/164/13 +f 99/157/13 96/144/13 93/165/13 +f 97/154/13 93/142/13 94/166/13 +f 102/167/13 105/168/13 101/155/13 +f 108/169/9 111/170/9 107/171/9 +f 101/172/13 108/173/13 104/158/13 +f 103/174/13 106/175/13 102/161/13 +f 104/176/13 107/171/13 103/152/13 +f 110/177/13 112/178/13 109/179/13 +f 106/180/10 109/181/10 105/168/10 +f 105/182/11 112/183/11 108/173/11 +f 107/184/12 110/185/12 106/175/12 +f 113/186/12 116/187/12 114/188/12 +f 116/189/9 118/190/9 114/191/9 +f 114/188/13 117/192/13 113/186/13 +f 113/186/10 119/193/10 115/194/10 +f 115/194/8 120/195/8 116/189/8 +f 127/196/14 124/197/14 123/198/14 +f 128/199/9 122/200/9 124/201/9 +f 126/202/15 121/203/15 122/204/15 +f 125/205/10 123/206/10 121/207/10 +f 148/208/9 151/209/9 146/210/9 +f 145/211/10 149/212/10 147/213/10 +f 133/214/8 140/215/8 136/216/8 +f 132/217/9 135/218/9 130/219/9 +f 129/220/10 133/221/10 131/222/10 +f 131/223/11 136/216/11 132/224/11 +f 130/225/12 134/226/12 129/227/12 +f 140/228/9 143/229/9 139/230/9 +f 135/231/8 138/232/8 134/226/8 +f 136/233/8 139/230/8 135/218/8 +f 134/234/8 137/235/8 133/221/8 +f 149/236/8 156/237/8 152/238/8 +f 138/239/10 141/240/10 137/235/10 +f 137/241/11 144/242/11 140/215/11 +f 139/243/12 142/244/12 138/232/12 +f 147/245/11 152/238/11 148/246/11 +f 146/247/12 150/248/12 145/249/12 +f 156/250/9 159/251/9 155/252/9 +f 151/253/8 154/254/8 150/248/8 +f 152/255/8 155/252/8 151/209/8 +f 150/256/8 153/257/8 149/212/8 +f 154/258/10 157/259/10 153/257/10 +f 153/260/11 160/261/11 156/237/11 +f 155/262/12 158/263/12 154/254/12 +f 146/247/13 142/244/13 143/264/13 +f 148/208/13 143/229/13 144/265/13 +f 147/245/13 144/242/13 141/266/13 +f 145/211/13 141/240/13 142/267/13 +f 164/268/9 167/269/9 162/270/9 +f 161/271/10 165/272/10 163/273/10 +f 163/274/11 168/275/11 164/276/11 +f 162/277/12 166/278/12 161/279/12 +f 162/277/13 158/263/13 159/280/13 +f 164/268/13 159/251/13 160/281/13 +f 163/274/13 160/261/13 157/282/13 +f 161/271/13 157/259/13 158/283/13 +f 166/284/13 169/285/13 165/272/13 +f 172/286/9 175/287/9 171/288/9 +f 165/289/13 172/290/13 168/275/13 +f 167/291/13 170/292/13 166/278/13 +f 168/293/13 171/288/13 167/269/13 +f 174/294/13 176/295/13 173/296/13 +f 170/297/10 173/298/10 169/285/10 +f 169/299/11 176/300/11 172/290/11 +f 171/301/12 174/302/12 170/292/12 +f 196/303/9 199/304/9 194/305/9 +f 193/306/10 197/307/10 195/308/10 +f 181/309/8 188/310/8 184/311/8 +f 180/312/9 183/313/9 178/314/9 +f 177/315/10 181/316/10 179/317/10 +f 179/318/11 184/311/11 180/319/11 +f 178/320/12 182/321/12 177/322/12 +f 188/323/9 191/324/9 187/325/9 +f 183/326/8 186/327/8 182/321/8 +f 184/328/8 187/325/8 183/313/8 +f 182/329/8 185/330/8 181/316/8 +f 197/331/8 204/332/8 200/333/8 +f 186/334/10 189/335/10 185/330/10 +f 185/336/11 192/337/11 188/310/11 +f 187/338/12 190/339/12 186/327/12 +f 195/340/11 200/333/11 196/341/11 +f 194/342/12 198/343/12 193/344/12 +f 204/345/9 207/346/9 203/347/9 +f 199/348/8 202/349/8 198/343/8 +f 200/350/8 203/347/8 199/304/8 +f 198/351/8 201/352/8 197/307/8 +f 202/353/10 205/354/10 201/352/10 +f 201/355/11 208/356/11 204/332/11 +f 203/357/12 206/358/12 202/349/12 +f 194/342/13 190/339/13 191/359/13 +f 196/303/13 191/324/13 192/360/13 +f 195/340/13 192/337/13 189/361/13 +f 193/306/13 189/335/13 190/362/13 +f 212/363/9 215/364/9 210/365/9 +f 209/366/10 213/367/10 211/368/10 +f 211/369/11 216/370/11 212/371/11 +f 210/372/12 214/373/12 209/374/12 +f 210/372/13 206/358/13 207/375/13 +f 212/363/13 207/346/13 208/376/13 +f 211/369/13 208/356/13 205/377/13 +f 209/366/13 205/354/13 206/378/13 +f 214/379/13 217/380/13 213/367/13 +f 220/381/9 223/382/9 219/383/9 +f 213/384/13 220/385/13 216/370/13 +f 215/386/13 218/387/13 214/373/13 +f 216/388/13 219/383/13 215/364/13 +f 222/389/13 224/390/13 221/391/13 +f 218/392/10 221/393/10 217/380/10 +f 217/394/11 224/395/11 220/385/11 +f 219/396/12 222/397/12 218/387/12 +f 51/69/8 52/72/8 50/70/8 +f 52/72/9 56/77/9 54/73/9 +f 49/74/10 53/79/10 55/75/10 +f 51/76/11 55/75/11 56/77/11 +f 50/78/12 54/398/12 53/79/12 +f 59/80/11 63/93/11 64/81/11 +f 53/83/13 54/73/13 56/77/13 +f 84/85/9 88/138/9 87/86/9 +f 58/88/12 62/399/12 61/89/12 +f 60/82/9 64/81/9 62/91/9 +f 57/90/10 61/89/10 63/93/10 +f 81/94/10 86/139/10 85/95/10 +f 69/97/8 73/124/8 76/98/8 +f 68/100/9 72/116/9 71/101/9 +f 65/103/10 70/117/10 69/104/10 +f 67/106/11 69/97/11 72/99/11 +f 66/108/12 71/114/12 70/109/12 +f 76/111/9 80/148/9 79/112/9 +f 71/114/8 75/126/8 74/115/8 +f 72/116/8 76/111/8 75/113/8 +f 70/117/8 74/122/8 73/118/8 +f 85/119/8 89/143/8 92/120/8 +f 74/122/10 78/150/10 77/123/10 +f 73/124/11 77/149/11 80/125/11 +f 75/126/12 79/147/12 78/127/12 +f 83/128/11 85/119/11 88/121/11 +f 82/130/12 87/136/12 86/131/12 +f 92/133/9 96/164/9 95/134/9 +f 87/136/8 91/145/8 90/137/8 +f 88/138/8 92/133/8 91/135/8 +f 86/139/8 90/141/8 89/140/8 +f 90/141/10 94/166/10 93/142/10 +f 89/143/11 93/165/11 96/144/11 +f 91/145/12 95/163/12 94/146/12 +f 82/130/13 81/132/13 78/127/13 +f 84/85/13 82/87/13 79/112/13 +f 83/128/13 84/129/13 80/125/13 +f 81/94/13 83/96/13 77/123/13 +f 100/151/9 104/176/9 103/152/9 +f 97/154/10 102/167/10 101/155/10 +f 99/157/11 101/172/11 104/158/11 +f 98/160/12 103/174/12 102/161/12 +f 98/160/13 97/162/13 94/146/13 +f 100/151/13 98/153/13 95/134/13 +f 99/157/13 100/159/13 96/144/13 +f 97/154/13 99/156/13 93/142/13 +f 102/167/13 106/180/13 105/168/13 +f 108/169/9 112/178/9 111/170/9 +f 101/172/13 105/182/13 108/173/13 +f 103/174/13 107/184/13 106/175/13 +f 104/176/13 108/169/13 107/171/13 +f 110/177/13 111/170/13 112/178/13 +f 106/180/10 110/400/10 109/181/10 +f 105/182/11 109/401/11 112/183/11 +f 107/184/12 111/402/12 110/185/12 +f 113/186/12 115/403/12 116/187/12 +f 116/189/9 120/195/9 118/190/9 +f 114/188/13 118/404/13 117/192/13 +f 113/186/10 117/192/10 119/193/10 +f 115/194/8 119/193/8 120/195/8 +f 127/196/14 128/405/14 124/197/14 +f 128/199/9 126/406/9 122/200/9 +f 126/202/15 125/407/15 121/203/15 +f 125/205/10 127/408/10 123/206/10 +f 148/208/9 152/255/9 151/209/9 +f 145/211/10 150/256/10 149/212/10 +f 133/214/8 137/241/8 140/215/8 +f 132/217/9 136/233/9 135/218/9 +f 129/220/10 134/234/10 133/221/10 +f 131/223/11 133/214/11 136/216/11 +f 130/225/12 135/231/12 134/226/12 +f 140/228/9 144/265/9 143/229/9 +f 135/231/8 139/243/8 138/232/8 +f 136/233/8 140/228/8 139/230/8 +f 134/234/8 138/239/8 137/235/8 +f 149/236/8 153/260/8 156/237/8 +f 138/239/10 142/267/10 141/240/10 +f 137/241/11 141/266/11 144/242/11 +f 139/243/12 143/264/12 142/244/12 +f 147/245/11 149/236/11 152/238/11 +f 146/247/12 151/253/12 150/248/12 +f 156/250/9 160/281/9 159/251/9 +f 151/253/8 155/262/8 154/254/8 +f 152/255/8 156/250/8 155/252/8 +f 150/256/8 154/258/8 153/257/8 +f 154/258/10 158/283/10 157/259/10 +f 153/260/11 157/282/11 160/261/11 +f 155/262/12 159/280/12 158/263/12 +f 146/247/13 145/249/13 142/244/13 +f 148/208/13 146/210/13 143/229/13 +f 147/245/13 148/246/13 144/242/13 +f 145/211/13 147/213/13 141/240/13 +f 164/268/9 168/293/9 167/269/9 +f 161/271/10 166/284/10 165/272/10 +f 163/274/11 165/289/11 168/275/11 +f 162/277/12 167/291/12 166/278/12 +f 162/277/13 161/279/13 158/263/13 +f 164/268/13 162/270/13 159/251/13 +f 163/274/13 164/276/13 160/261/13 +f 161/271/13 163/273/13 157/259/13 +f 166/284/13 170/297/13 169/285/13 +f 172/286/9 176/295/9 175/287/9 +f 165/289/13 169/299/13 172/290/13 +f 167/291/13 171/301/13 170/292/13 +f 168/293/13 172/286/13 171/288/13 +f 174/294/13 175/287/13 176/295/13 +f 170/297/10 174/409/10 173/298/10 +f 169/299/11 173/410/11 176/300/11 +f 171/301/12 175/411/12 174/302/12 +f 196/303/9 200/350/9 199/304/9 +f 193/306/10 198/351/10 197/307/10 +f 181/309/8 185/336/8 188/310/8 +f 180/312/9 184/328/9 183/313/9 +f 177/315/10 182/329/10 181/316/10 +f 179/318/11 181/309/11 184/311/11 +f 178/320/12 183/326/12 182/321/12 +f 188/323/9 192/360/9 191/324/9 +f 183/326/8 187/338/8 186/327/8 +f 184/328/8 188/323/8 187/325/8 +f 182/329/8 186/334/8 185/330/8 +f 197/331/8 201/355/8 204/332/8 +f 186/334/10 190/362/10 189/335/10 +f 185/336/11 189/361/11 192/337/11 +f 187/338/12 191/359/12 190/339/12 +f 195/340/11 197/331/11 200/333/11 +f 194/342/12 199/348/12 198/343/12 +f 204/345/9 208/376/9 207/346/9 +f 199/348/8 203/357/8 202/349/8 +f 200/350/8 204/345/8 203/347/8 +f 198/351/8 202/353/8 201/352/8 +f 202/353/10 206/378/10 205/354/10 +f 201/355/11 205/377/11 208/356/11 +f 203/357/12 207/375/12 206/358/12 +f 194/342/13 193/344/13 190/339/13 +f 196/303/13 194/305/13 191/324/13 +f 195/340/13 196/341/13 192/337/13 +f 193/306/13 195/308/13 189/335/13 +f 212/363/9 216/388/9 215/364/9 +f 209/366/10 214/379/10 213/367/10 +f 211/369/11 213/384/11 216/370/11 +f 210/372/12 215/386/12 214/373/12 +f 210/372/13 209/374/13 206/358/13 +f 212/363/13 210/365/13 207/346/13 +f 211/369/13 212/371/13 208/356/13 +f 209/366/13 211/368/13 205/354/13 +f 214/379/13 218/392/13 217/380/13 +f 220/381/9 224/390/9 223/382/9 +f 213/384/13 217/394/13 220/385/13 +f 215/386/13 219/396/13 218/387/13 +f 216/388/13 220/381/13 219/383/13 +f 222/389/13 223/382/13 224/390/13 +f 218/392/10 222/412/10 221/393/10 +f 217/394/11 221/413/11 224/395/11 +f 219/396/12 223/414/12 222/397/12 diff --git a/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png b/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png index 415008e7018e26364f177dfe30ac26a4624b31c6..84abea9647e6901e8e14295c41962fe4b282aa64 100644 GIT binary patch delta 2975 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 VUys~4pmhKM002ovPDHLkV1mEZvCjYi delta 920 zcmV;J184lS7rh6NGk*hgNklOz-}xh@HfFOKabKJ#q7Z$amC&iQzL z&v$kbgF_GmcD%j5z8>noy}c!_e}8}9xMSwY(qkUn2Pz~T6@QYB3Q0$Wq@zO8srnkY zS6{X(D>a^8{K;o-*JxVsD0FxC7g+W+{3MM4@F=vpy3EQ-&DZdgv;&|_5gOt}sMG1# zXPcY!`+Yv`^zG5nk-t0|=FW)fUK2ZQ-$F3VozN+_H{5m}EIxj{UbiPFCjblvgNJS1 zZr4wgh9V=pTz`i~A^=NE`CjTW&!JkahA{?fE!AojYb}*ZCF{dXCG&ruF@{Q|68dXQ ze)ml>kI?1irRj7!c5_(edc7XU$H%!DWiB)-3WLGmA%DCU1&8X-udn#{?Fj()_xHTq zS$xp(qA)I&2i}ST5Go9L;jJjRg&{ArC?wIgSj!eYfPd$3yhU#FIPf^z_Ri;s#5^>n zm_m)Fb?0!jTLy}FPa)zo8_7V#DQANq)PCpm2Tt4VfBVZhmJKgY+!_6z({7lUoJ){_ zB1I^L3=~Bur3@57Xa*UOE;OSINEVty2BZqjDFYIP7LWmnLM}7NfOMf5Wk9mf95NtP zXigcBx_^9d3&RY8@`TzgGqKib1eU{e>v(xW0Efm*M5)oV#l5gX^l27#jdGAH1anEr z7J`|jct)5`sjj;t4^lR568Ms?^etwQah)S9Eu;__4PA2=8nG z3VRzXj>6t(jAKly976CQC3CjzGVPhB`)IJ;GJoZX&=3`pPUboE;&-@xeGqP+pM{_Q zoVT()zPzFkRRElaaB=(UDd(N2Pidqr+mtXuDkPoK31wasf)9zi#NJnne0~3a?gyu1 z+uu))Rk{eNkaSc?Iw~X`6_Sn$Nk@gGqe9Zjem!&=-`_fm|1L!9Y_a2OgtEp)tU3Wq zLVqNuQMw4JkaTj-Avb4&>va32%_)sg65qch>~N6KzaXWHkP1mB_bTUBE1fAMphD8g zJcn+A`2N?<_gddfdHu$epXb>~7{7E8QX%Q6kaSc?Iw~X`6_Sn$Nk@gGllgimX}xk0 u_q#nQxJme&cj+ReLefzo>8Ox&{sC%Z6A{kUYw*tUcs^OO+*_8X~r!DO4h*ZNb z#qZ8SNeG>up1MCid4kWMKjZI5pWXB4&y)Gl@$s>{xVQ+f`QF~11Aw9^QhjEt;Df;c z0KgcFGT_0%fqVJ#B>=!$8?Ft9!&agl_vVUeA!{utt>O)(G!Sb8(Jdr|03igCdxNgd@refoqKFJ83P35sqZ9~5T&sMVkV z0E58*gTVl^@w^FUgTO4YHV{3r`k(+{E-E6BLlWJGE-o&Dbz()$MJyu& zB$#sEGWS6SSVCy_&5N)1_V!ki`|FE0;7R+xv$M0g*C!_@OMUJxGQb9PeO4g@YzU!M z$p9Nb=zGWj9Vhg?WPlD6T89kKQ9|pI0Xj&i2^pY+gqn~6I!bqt-ECJB%vn# zhh)wACOA4ea;w&Ni|Cw%hQlFQ3=E40s%}H)2m#GVb&?RUKB>+U0@fqdX+psFlj=Mn z;QL5z1R-E`QX4}ESdG+15d!WewQ+=i+evLCAz(Qv>UZ!)qfx7Sp)qh1sU*ALZDKea zl7oYT;6u^(SnmU~q^LL5Xf(oTG`jD5TN{4*QNQNc-QC6R?(Tix*Nu4g?Af&hdegPx za7Z@ZhZga>@S$03goUJ(D_sK;Sm?ut58=5n2Jhd$4`b(fjyG@KtknQHJUn!Ho z21sO~JkKG7m^*M`tzGH7!cES8)A-BYo6LuV5a67H5CUTilv237yu4HIwr_tGB(o6b zeD2KLs$bZ8LN~E&$ZUAocW1vAxbHvl!1&tYSz}-)1*G+pEJf_ ztwo;ab8~-I4ph@C>lfQNQ&(B&AF$k8UAKDJGN2wK0pLK%VE} zCWH`k^6_{)clvQ%d2|a|YcU#)P!t8SEDP7mvc&fGc9=3ssks|sj0OK|B2QK+Jbd^N z&N*aR24f6HqfxLNP<_K%>mc9W-p03Y-x|x4_>d3+gTWxocWW)q&(DL!@;pbDWsp*W z5CTdm%CZdlP2|y6tUfY*{rYvTQqWpM2odD|MiwiHrt)OJeehG+Id`p6n612H%ac_K z&bg3G2_fP5vp@E{DDU-pD9f_3JbKs1ht>1*a{yH|^1h>#3UdFg#+E0m6dpZ#1mLRl z@sD1vlmh4c+V!UL=suL^If|k{Q54{uV>+EeN*O}9pLVlfKv|Zs)<%&hv5?j}^vZoW zRZ0aPD9aN4em|VRH^x9p8Al%5LRxD)c<=yuo`;_alw}#l_u<<)2V+bqNVV2c{RZ-O<|+-9n5QP-%VdWf>@=V3a~>4Pz}bAuukMnFoz6;}P9Lj8^?IR{vg+ zQHpG93#C?|j6sga*L1wkEMlGL7r#;RTCqr2L}gdt4FO({mXs|#yQ+} zj-UT};0U?W7lK2G%EGtlx1NWbsn$h#KZi9HaUlezQwd`oXhZ$h^AP6@S(d?BhrDhO zmP(=5%Q2N@WBvB?P^qfjgF37eO3=%5jO)*Ds^5AZa`na(r4$Yh##pd=iD8WaIBTSz zEDx3S4x6Z#;XV)Lc?N3?v@zg}ff533OxPZ2s-GkeIp?s|@52}aLJ26TTTGlmDGknf z9mdOW!+sIiR6k7~;;fni&H={3xGEAAlPMUbpsboAoG}<{LF;cfhJO6@5UoluZ44+O zu+BjU0i_grc?M%Fj5g5Jgw~d*Lo{a^4z7`Yd>>L8LKrYXL)9>yN)TEnO;=S5#+Yi( z*G)(Ou+Bnj(?~zbIfb$;(aUpat>FOVS%#^UFj~X9tN;B&34yg1A`@`hMbS^tQy|E* z4A!|2i5y(z+>}D8@+!MaiLHJ=RN<6RfZ9g-@uQprNbR70OoGa1Y?l0M4r_?;v9Ot9!8gAxVmO*q91<;&ss1_V2p*7O7Me33eZD&l9N;-$He1vMf)e qM*ROodq literal 0 HcmV?d00001 From 9206755363ed55ba23a2356ed579c4937757b05e Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 14 Apr 2024 21:23:28 +0200 Subject: [PATCH 336/376] kaboom --- changelog | 20 +++++++++++++++++- gradle.properties | 4 ++-- .../com/hbm/blocks/bomb/BlockCrashedBomb.java | 2 +- .../hbm/entity/effect/EntityFalloutRain.java | 2 +- .../hbm/entity/effect/EntityNukeTorex.java | 11 ++++++++++ .../com/hbm/entity/logic/EntityBalefire.java | 15 ------------- .../hbm/entity/logic/EntityDeathBlast.java | 2 +- .../entity/logic/EntityNukeExplosionMK5.java | 13 ------------ .../hbm/entity/mob/EntityCreeperNuclear.java | 2 +- .../entity/projectile/EntityBombletZeta.java | 2 +- .../entity/projectile/EntityBulletBaseNT.java | 2 +- .../com/hbm/explosion/ExplosionNukeSmall.java | 2 +- .../hbm/inventory/gui/GUIMachineBattery.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 6 +++--- .../com/hbm/items/special/ItemAutogen.java | 10 +++++++++ .../java/com/hbm/items/tool/ItemDrone.java | 2 ++ src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 2 ++ .../com/hbm/main/ModEventHandlerRenderer.java | 8 +++---- .../hbm/render/entity/effect/RenderTorex.java | 8 +++++++ .../machine/TileEntityMachineCyclotron.java | 4 ++-- src/main/resources/assets/hbm/lang/de_DE.lang | 6 +++--- src/main/resources/assets/hbm/lang/en_US.lang | 6 +++--- src/main/resources/assets/hbm/lang/ru_RU.lang | 6 +++--- src/main/resources/assets/hbm/lang/zh_CN.lang | 2 +- src/main/resources/assets/hbm/sounds.json | 1 + .../hbm/sounds/weapon/nuclearExplosion.ogg | Bin 0 -> 725958 bytes 27 files changed, 83 insertions(+), 59 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/weapon/nuclearExplosion.ogg diff --git a/changelog b/changelog index 31bdeeb83..9bd0efd23 100644 --- a/changelog +++ b/changelog @@ -1,10 +1,28 @@ +## The new power network +The entire energy transfer system has been rewritten which should hopefully fix a few things +* Energy should no longer be voided (at least voiding is minimized due to timeouts for unloaded receivers) +* Transfers should be way less resource intensive, as the expected iteration count is now `max(providers, receivers)` instead of `providers * receivers` +The new system should respect priorities and diodes just like the old system did. Batteries still have their original three priority settings, diodes got two additional modes: LOWEST and HIGHEST. +A bunch of tests have been done using the most important machines, however not all machines that had to be changed for the new system have been fully tested. Expect some things to not work, in which case please file a bug report on the issues board. +Just like with the old system, grids going though unloaded chunks should still work so long as the endpoints are loaded. Grids should be less janky when changing while having unloaded parts, wwhich is likely the main cause for energy voiding. +The system can potentially support saving to the world, i.e. keeping unloaded grids functional even after the entire world is unloaded, although the functionality hasn't been implemented yet. + ## Added * New medium sized electricity pylons * Come in wood and steel flavor * The regular ones don't connect to cable blocks, the variants with transformers do (i.e. they act like substations for huge pylons) ## Changed +* Updated russian localization * Condensers now need cast plates instead of welded plates * Tweaked the substation recipe, it now yields two substations +* There is now a config option for steam clouds from cooling towers +* Nuclear explosions no longer play thunder and explosion sounds in a loop, instead they play one singular sound once the shockwave passes the player + * The HUD shake is now also synced up with the shockwave + * In addition to the hud shake, there is one brief screen shake, the same used for mini nukes (although it ends up being more subtle because your screen is most likely covered in shockwave dust) + * The HUD shake is now 3x more intense, but also only 1.5s long (instead of 5) making it snappier -## Fixed \ No newline at end of file +## Fixed +* Changed the translation keys for bolts, pipes and shells to avoid naming conflicts +* Fixed glpyhid scout rampant mode spawning not working correctly +* Fixed nuclear explosions petrifying fallout layers, turning them into full sellafite blocks \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 305737cdc..f9a8ca1d9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4921 +mod_build_number=4935 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ @@ -18,4 +18,4 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\ \ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks),\ \ 245tt (anvil GUI improvements), MellowArpeggiation (new animation system, turbine sounds, sound fixes,\ - \ industrial lights, better particle diodes), FOlkvangrField (custom machine parts) + \ industrial lights, better particle diodes), FOlkvangrField (custom machine parts), KoblizekXD (doors) diff --git a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java index 730cac10b..93683f0d2 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java @@ -98,7 +98,7 @@ public class BlockCrashedBomb extends BlockContainer implements IBomb { if(!world.isRemote) { world.setBlockToAir(x, y, z); - EntityBalefire bf = new EntityBalefire(world).mute(); + EntityBalefire bf = new EntityBalefire(world); bf.posX = x; bf.posY = y; bf.posZ = z; diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index df36d3276..0647627b4 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -169,7 +169,7 @@ public class EntityFalloutRain extends Entity { Block b = worldObj.getBlock(x, y, z); - if(b.getMaterial() == Material.air) continue; + if(b.getMaterial() == Material.air || b == ModBlocks.fallout) continue; if(b == Blocks.bedrock) return; if(b == ModBlocks.volcano_core) { diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 2995732e3..bc6eafaec 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -3,6 +3,7 @@ package com.hbm.entity.effect; import java.awt.Color; import java.util.ArrayList; +import com.hbm.main.MainRegistry; import com.hbm.util.BobMathUtil; import com.hbm.util.TrackerUtil; @@ -29,6 +30,9 @@ public class EntityNukeTorex extends Entity { public ArrayList cloudlets = new ArrayList(); //public static int cloudletLife = 200; + public boolean didPlaySound = false; + public boolean didShake = false; + public EntityNukeTorex(World world) { super(world); this.ignoreFrustumCheck = true; @@ -104,6 +108,13 @@ public class EntityNukeTorex extends Entity { .setScale(7F, 2F) .setMotion(ticksExisted > 15 ? 0.75 : 0)); } + + if(!didPlaySound) { + if(MainRegistry.proxy.me() != null && MainRegistry.proxy.me().getDistanceToEntity(this) < (ticksExisted * 1.5 + 1) * 1.5) { + MainRegistry.proxy.playSoundClient(posX, posY, posZ, "hbm:weapon.nuclearExplosion", 10_000F, 1F); + didPlaySound = true; + } + } } // spawn ring clouds diff --git a/src/main/java/com/hbm/entity/logic/EntityBalefire.java b/src/main/java/com/hbm/entity/logic/EntityBalefire.java index 73c8e51b2..b368e171d 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBalefire.java +++ b/src/main/java/com/hbm/entity/logic/EntityBalefire.java @@ -17,7 +17,6 @@ public class EntityBalefire extends EntityExplosionChunkloading { public ExplosionBalefire exp; public int speed = 1; public boolean did = false; - public boolean mute = false; @Override protected void readEntityFromNBT(NBTTagCompound nbt) { @@ -25,7 +24,6 @@ public class EntityBalefire extends EntityExplosionChunkloading { destructionRange = nbt.getInteger("destructionRange"); speed = nbt.getInteger("speed"); did = nbt.getBoolean("did"); - mute = nbt.getBoolean("mute"); exp = new ExplosionBalefire((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange); @@ -41,7 +39,6 @@ public class EntityBalefire extends EntityExplosionChunkloading { nbt.setInteger("destructionRange", destructionRange); nbt.setInteger("speed", speed); nbt.setBoolean("did", did); - nbt.setBoolean("mute", mute); if(exp != null) exp.saveToNbt(nbt, "exp_"); @@ -79,22 +76,10 @@ public class EntityBalefire extends EntityExplosionChunkloading { } } - if(!mute && rand.nextInt(5) == 0) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - if(!flag) { - - if(!mute) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.destructionRange * 2); } age++; } - - public EntityBalefire mute() { - this.mute = true; - return this; - } } diff --git a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java index c4ffd67f3..75fea35f7 100644 --- a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java @@ -37,7 +37,7 @@ public class EntityDeathBlast extends Entity { if(this.ticksExisted >= maxAge && !worldObj.isRemote) { this.setDead(); - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, 40, posX, posY, posZ).mute()); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, 40, posX, posY, posZ)); int count = 100; for(int i = 0; i < count; i++) { diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index 90596a9af..918594e0c 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -29,8 +29,6 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { public int speed; public int length; - public boolean mute = false; - public boolean fallout = true; private int falloutAdd = 0; @@ -66,12 +64,6 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { radiate(2_500_000F / (this.ticksExisted * 5 + 1), this.length * 2); } - if(!mute) { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - if(rand.nextInt(5) == 0) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - } - ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.length * 2); if(explosion == null) { @@ -177,9 +169,4 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { falloutAdd = fallout; return this; } - - public EntityNukeExplosionMK5 mute() { - this.mute = true; - return this; - } } diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java b/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java index 3be14d073..1051c9222 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java @@ -120,7 +120,7 @@ public class EntityCreeperNuclear extends EntityCreeper { worldObj.playSoundEffect(posX, posY + 0.5, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); if(flag) { - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, 50, posX, posY, posZ).mute()); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, 50, posX, posY, posZ)); } else { ExplosionNukeGeneric.dealDamage(worldObj, posX, posY + 0.5, posZ, 100); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java index 1571ff841..1a21d96c2 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java @@ -63,7 +63,7 @@ public class EntityBombletZeta extends EntityThrowable { ExplosionChaos.spawnChlorine(worldObj, this.posX + 0.5F - motionX, this.posY + 0.5F - motionY, this.posZ + 0.5F - motionZ, 75, 2, 0); } if(type == 4) { - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int) (BombConfig.fatmanRadius * 1.5), posX, posY, posZ).mute()); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int) (BombConfig.fatmanRadius * 1.5), posX, posY, posZ)); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "muke"); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index f7a9f5758..20bff21ba 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -465,7 +465,7 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet } if(config.nuke > 0 && !worldObj.isRemote) { - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, config.nuke, posX, posY, posZ).mute()); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, config.nuke, posX, posY, posZ)); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "muke"); if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) data.setBoolean("balefire", true); diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java b/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java index f9cbfec62..0734db2e5 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java @@ -32,7 +32,7 @@ public class ExplosionNukeSmall { if(params.shrapnelCount > 0) ExplosionLarge.spawnShrapnels(world, posX, posY, posZ, params.shrapnelCount); if(params.miniNuke && !params.safe) new ExplosionNT(world, null, posX, posY, posZ, params.blastRadius).addAllAttrib(params.explosionAttribs).overrideResolution(params.resolution).explode(); if(params.killRadius > 0) ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, params.killRadius); - if(!params.miniNuke) world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int) params.blastRadius, posX, posY, posZ).mute()); + if(!params.miniNuke) world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int) params.blastRadius, posX, posY, posZ)); if(params.miniNuke) { float radMod = params.radiationLevel / 3F; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java index 5b2e00658..f350f477d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java @@ -110,6 +110,6 @@ public class GUIMachineBattery extends GuiInfoContainer { int j = battery.redHigh; drawTexturedModalRect(guiLeft + 133, guiTop + 52, 176, 52 + j * 18, 18, 18); - drawTexturedModalRect(guiLeft + 152, guiTop + 35, 194, 52 + battery.priority.ordinal() * 16, 16, 16); + drawTexturedModalRect(guiLeft + 152, guiTop + 35, 194, 52 + battery.priority.ordinal() * 16 - 16, 16, 16); } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 655721323..fbae0fe16 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2590,7 +2590,7 @@ public class ModItems { drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium"); plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium"); plate_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium"); - bolt = new ItemAutogen(MaterialShapes.BOLT).setUnlocalizedName("bolt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt"); + bolt = new ItemAutogen(MaterialShapes.BOLT).oun("boltntm").setUnlocalizedName("bolt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt"); bolt_spike = new ItemCustomLore().setUnlocalizedName("bolt_spike").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_spike"); plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_polymer"); plate_kevlar = new Item().setUnlocalizedName("plate_kevlar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_kevlar"); @@ -3009,8 +3009,8 @@ public class ModItems { gear_large = new ItemGear().setUnlocalizedName("gear_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gear_large"); sawblade = new Item().setUnlocalizedName("sawblade").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sawblade"); - shell = new ItemAutogen(MaterialShapes.SHELL).setUnlocalizedName("shell").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shell"); - pipe = new ItemAutogen(MaterialShapes.PIPE).setUnlocalizedName("pipe").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipe"); + shell = new ItemAutogen(MaterialShapes.SHELL).oun("shellntm").setUnlocalizedName("shell").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shell"); + pipe = new ItemAutogen(MaterialShapes.PIPE).oun("pipentm").setUnlocalizedName("pipe").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipe"); fins_flat = new Item().setUnlocalizedName("fins_flat").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_flat"); fins_small_steel = new Item().setUnlocalizedName("fins_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_small_steel"); fins_big_steel = new Item().setUnlocalizedName("fins_big_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_big_steel"); diff --git a/src/main/java/com/hbm/items/special/ItemAutogen.java b/src/main/java/com/hbm/items/special/ItemAutogen.java index 7e91dd37f..ea2be4db1 100644 --- a/src/main/java/com/hbm/items/special/ItemAutogen.java +++ b/src/main/java/com/hbm/items/special/ItemAutogen.java @@ -27,6 +27,7 @@ public class ItemAutogen extends Item { private HashMap textureOverrides = new HashMap(); private HashMap iconMap = new HashMap(); + private String overrideUnlocalizedName = null; public ItemAutogen(MaterialShapes shape) { this.setHasSubtypes(true); @@ -38,6 +39,10 @@ public class ItemAutogen extends Item { textureOverrides.put(mat, tex); return this; } + public ItemAutogen oun(String overrideUnlocalizedName) { + this.overrideUnlocalizedName = overrideUnlocalizedName; + return this; + } @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { @@ -117,4 +122,9 @@ public class ItemAutogen extends Item { String matName = StatCollector.translateToLocal(mat.getUnlocalizedName()); return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", matName); } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return overrideUnlocalizedName != null ? "item." + overrideUnlocalizedName : super.getUnlocalizedName(stack); + } } diff --git a/src/main/java/com/hbm/items/tool/ItemDrone.java b/src/main/java/com/hbm/items/tool/ItemDrone.java index 73e43ba14..f63f44fd6 100644 --- a/src/main/java/com/hbm/items/tool/ItemDrone.java +++ b/src/main/java/com/hbm/items/tool/ItemDrone.java @@ -53,6 +53,8 @@ public class ItemDrone extends ItemEnumMulti { world.spawnEntityInWorld(toSpawn); } + stack.stackSize--; + return false; } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index d4ba6dc9a..3b02435f2 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4921)"; + public static final String VERSION = "1.0.27 BETA (4935)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 281a1d9d0..899a3b118 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -150,6 +150,8 @@ public class ModEventHandlerClient { public static final int flashDuration = 5_000; public static long flashTimestamp; + public static final int shakeDuration = 1_500; + public static long shakeTimestamp; @SubscribeEvent public void onOverlayRender(RenderGameOverlayEvent.Pre event) { diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index fd5bf7d78..7fb0fc35b 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -401,10 +401,10 @@ public class ModEventHandlerRenderer { @SubscribeEvent public void onRenderHUD(RenderGameOverlayEvent.Pre event) { - if(event.type == ElementType.HOTBAR && (ModEventHandlerClient.flashTimestamp + ModEventHandlerClient.flashDuration - System.currentTimeMillis()) > 0) { - double mult = (ModEventHandlerClient.flashTimestamp + ModEventHandlerClient.flashDuration - System.currentTimeMillis()) / (double) ModEventHandlerClient.flashDuration * 2; - double horizontal = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.02), -0.7, 0.7) * 5; - double vertical = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.01 + 2), -0.7, 0.7) * 1; + if(event.type == ElementType.HOTBAR && (ModEventHandlerClient.shakeTimestamp + ModEventHandlerClient.shakeDuration - System.currentTimeMillis()) > 0) { + double mult = (ModEventHandlerClient.shakeTimestamp + ModEventHandlerClient.shakeDuration - System.currentTimeMillis()) / (double) ModEventHandlerClient.shakeDuration * 2; + double horizontal = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.02), -0.7, 0.7) * 15; + double vertical = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.01 + 2), -0.7, 0.7) * 3; GL11.glTranslated(horizontal * mult, vertical * mult, 0); } } diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index 809f403f4..674eb8818 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -38,6 +38,14 @@ public class RenderTorex extends Render { cloudletWrapper(cloud, interp); if(cloud.ticksExisted < 101) flashWrapper(cloud, interp); if(cloud.ticksExisted < 10 && System.currentTimeMillis() - ModEventHandlerClient.flashTimestamp > 1_000) ModEventHandlerClient.flashTimestamp = System.currentTimeMillis(); + if(cloud.didPlaySound && !cloud.didShake && System.currentTimeMillis() - ModEventHandlerClient.shakeTimestamp > 1_000) { + ModEventHandlerClient.shakeTimestamp = System.currentTimeMillis(); + cloud.didShake = true; + EntityPlayer player = MainRegistry.proxy.me(); + player.hurtTime = 15; + player.maxHurtTime = 15; + player.attackedAtYaw = 0F; + } if(fog) GL11.glEnable(GL11.GL_FOG); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 2b5d15c08..87660cb63 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -224,7 +224,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements if(rand < 2) { - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)(BombConfig.fatmanRadius * 1.5), xCoord + 0.5, yCoord + 1.5, zCoord + 0.5).mute()); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)(BombConfig.fatmanRadius * 1.5), xCoord + 0.5, yCoord + 1.5, zCoord + 0.5)); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "muke"); @@ -233,7 +233,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } else if(rand < 4) { - EntityBalefire bf = new EntityBalefire(worldObj).mute(); + EntityBalefire bf = new EntityBalefire(worldObj); bf.posX = xCoord + 0.5; bf.posY = yCoord + 1.5; bf.posZ = zCoord + 0.5; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 2c3be2817..fe3f47e99 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1306,7 +1306,7 @@ item.bobmazon_machines.name=Bobmazon: Blöcke und Maschinen item.bobmazon_materials.name=Bobmazon: Ressourcen item.bobmazon_tools.name=Bobmazon: Werkzeuge item.bobmazon_weapons.name=Bobmazon: Waffen und Sprengstoffe -item.bolt.name=%sbolzen +item.boltntm.name=%sbolzen item.bolt_compound.name=Verstärkte Turbinenwelle item.bolt_spike.name=Gleisnagel item.boltgun.name=Pneumatische Nietenpistole @@ -2713,7 +2713,7 @@ item.pill_iodine.name=Iodpille item.pill_herbal.name=Kräuterpaste item.pill_red.name=Rote Pille item.pin.name=Haarklammer -item.pipe.name=%srohr +item.pipentm.name=%srohr item.pipes_steel.name=Stahlrohre item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet. item.piston_selenium.name=Motorkolben @@ -3165,7 +3165,7 @@ item.serum.name=Serum item.servo_set.name=Servo-Set item.servo_set_desh.name=Deshservo-Set item.shackles.name=Fußschellen -item.shell.name=%smantel +item.shellntm.name=%smantel item.shimmer_axe.name=Shimmer Axe item.shimmer_axe_head.name=Schwerer Axtkopf item.shimmer_handle.name=Verstärketer Polymergriff diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 32a776667..d742e6715 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2009,7 +2009,7 @@ item.bobmazon_machines.name=Bobmazon: Blocks and Machines item.bobmazon_materials.name=Bobmazon: Materials item.bobmazon_tools.name=Bobmazon: Tools item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives -item.bolt.name=%s Bolt +item.boltntm.name=%s Bolt item.bolt_compound.name=Reinforced Turbine Shaft item.bolt_spike.name=Railroad Spike item.bolt_spike.desc=Radiates a threatening aura, somehow @@ -3555,7 +3555,7 @@ item.pill_herbal.desc=Effective treatment against lung disease and mild radiatio item.pill_red.name=Red Pill item.pin.name=Bobby Pin item.pin.desc=Standard success rate of picking a regular lock is ~10%%. -item.pipe.name=%s Pipe +item.pipentm.name=%s Pipe item.pipes_steel.name=Steel Pipes item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. item.piston_selenium.name=Combustion Engine Piston @@ -4130,7 +4130,7 @@ item.serum.name=Serum item.servo_set.name=Servo Set item.servo_set_desh.name=Desh Servo Set item.shackles.name=Shackles -item.shell.name=%s Shell +item.shellntm.name=%s Shell item.shimmer_axe.name=Shimmer Axe item.shimmer_axe_head.name=Heavy Axe Head item.shimmer_handle.name=Reinforced Polymer Handle diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 581d87635..effe333e3 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -2845,11 +2845,11 @@ item.ingot_polymer.name=Полимер item.ingot_rubber.name=Резина item.ingot_biorubber.name=Брусок латекса item.ingot_polonium.name=Слиток полония-210 -item.pipe.name=%s трубы +item.pipentm.name=%s трубы item.pipes_steel.name=Стальные трубы item.pipes_steel.desc=Раскрафт был исключен из-за уклонения от уплаты налогов item.drill_titanium.name=Титановый бур -item.bolt.name=Стержень из %s +item.boltntm.name=Стержень из %s item.bolt_spike.name=Железнодорожный гвоздь item.bolt_spike.desc=Излучает угрожающую ауру, как-то item.bolt_compound.name=Укрепленный вал турбины @@ -4966,7 +4966,7 @@ eye.speakTo=Вы говорите Оку: §o%s item.plastic_bag.name=Пластиковый пакетик item.cap_aluminium.name=Алюминиевый колпачок -item.shell.name=%s оболочка +item.shellntm.name=%s оболочка item.hull_small_steel.name=Небольшая стальная оболочка item.hull_small_aluminium.name=Небольшая алюминиевая оболочка item.hull_small_aluminium.desc=Может быть вставлен в просверленный графит diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 555afa11d..1dae36e7c 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1907,7 +1907,7 @@ item.bobmazon_machines.name=Bobmazon: 方块和机器 item.bobmazon_materials.name=Bobmazon: 材料 item.bobmazon_tools.name=Bobmazon: 工具 item.bobmazon_weapons.name=Bobmazon: 武器和爆炸物 -item.bolt.name=%s螺栓 +item.boltntm.name=%s螺栓 item.bolt_compound.name=加强涡轮机轴 item.bolt_dura_steel.name=高速钢螺栓 item.bolt_tungsten.name=钨螺栓 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 220cd1fdf..d2eb9f458 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -209,6 +209,7 @@ "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, "weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]}, "weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]}, + "weapon.nuclearExplosion": {"category": "player", "sounds": [{"name": "weapon/nuclearExplosion", "stream": true}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/nuclearExplosion.ogg b/src/main/resources/assets/hbm/sounds/weapon/nuclearExplosion.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6dddc621bfe2fad990a571e15d3e81ff72ef48a4 GIT binary patch literal 725958 zcmeFYWmH^Ew?EhfO(0kZPLLph;O-;K74?li&pD;L<<`ZJ?3h zG|=>P^1SbT@0~CIHS5l&SyQX}^scI1yQ+S>&aPeO)KRy!)dD;K{43-*E@S*5-`o2q zqCG?Nc6GO~_xO|XK(^-3A1e5u{rzi4Q~y)*zrvrIe@gI*#xMw#kpClWp#LL?9aXMx z|K5&M-QAYX$=*WuuXs8oI$mxb0d5{{0lF6(x#9m6S^vm;i27;k>+4IndD79LVg4hC zNm@o14e$y8VDunolP~ii4JV|OeoL`QEj{UYKq0L{^pToZ#b}Jl;}d=9XX$987ax9p z(gFOb5cS%ZBs}&t4t+S2gnmjGiv)^_7D46N|H&hi{`W;r#12*Z8iyu)lUo=sY+Lx6 zI$TafpAeO|OBYTc-JTOxBZ6XP6i|E{h9$B~9p1 z(K%sC0@sw`wy%9j|7nBqwc@8Rtk)yt;qtFhJ-`xaCkY>W{e?1|O$3KFoQ~h>Dc}LYaReX0RWWZ z3HfET#1+zHLE1VCt87L78jDgIVRVMsV_Z&QgC&5cfh^;Zw5ZiEuWau0<58{|-O zW&GlYwIYzb&Cdq-Im!(pG28|JEdK!h0PqTjK7vG3@!uDVX!=NU_aCekpFb+IRemXs=N)5j z8vlC{J*a8I7sKNjAe4DoJD{oMEHJO{cq9VN32W9hbgXUBRAwzp(|q(7KROil(pVH$ zpEUkRwuok}$a8Heq&08l@ro+6_8PduRp5iw~Hqaw!)ufU9!oQ{|ELWY+? zTaeLWgvnLVDk@%knd@g*8~l&>&(Kl#I~{7W|1%KQA##s#kzK|#!ha7FrBJ|o5{19> zO{tOb%{1f0G`sp4zxopi4HCH-ex0eOCK^J{8iLj{0w!95COW##dKu0}tzO_vYw%SN zJZCo(F%vKwIoyu$i(N5*cvNZb@oVN^$1^0A<-mzmkkiQL7R& z&1rJzXmQMG%FSu%{GWpA48Q6V6tE8gpU?oG360*=4z4_OpthKHA7}JbvmmT$z+q5m zY5T!bMm<Jh)@mvzth(Ly0ibkfd8)}K!{rEexZKv z=t(FW8355w0Nld({Eu_6K+fg3{0Qa#g9Se*tV&vEy$UdK_O9x! z&KJ)A6lFkP>l9VJHwoSLFs4f8jiJSVQC?6|>DHZ^DXOQy(W$6ER;eR$r42XUJ;C_K> z5anUKGswW?pJ)VRVEq&ig`%M>0*d*?pWc0at!3dBiZc8U02%-QmRtk7>Jzz~a{CXkZi-)LPRBk6B@5*&*;iHVpNgXznn5j5DE}p*Jf_$_ z=TA1Q?@V@zUlnDm=e*YaitTbx5>U$qp_~Rv4vN#ugf14jgQ}(ETp5-&VWBDCol?i zd}@@>9RE2ro-OX{R5&idt0MZB4?VNwj`&Gt-w6QVubO6H7BQrKc%Z(Uody zvOW#h)?{NUNzrs*)gjbmWleu1%~qDK4FD{DKu7%|-r9{Q1Lz0

    *=7McWdOx17Xs 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 z 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

    #NhGzjg+C50q638tD=Y`yHO)(jvLN7E0 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

    #H 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�ROZEePju0z9Mt1FoLtRBMd(aRxW(4F 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 literal 0 HcmV?d00001 From 673628bc0206b11fdc2c70ac9f0876dfeb645fb3 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 15 Apr 2024 13:30:23 +0200 Subject: [PATCH 337/376] just keep whacking it until it behaves --- changelog | 30 ++----------------- gradle.properties | 2 +- .../java/api/hbm/energymk2/PowerNetMK2.java | 26 ++++++++++++++-- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../storage/TileEntityMachineBattery.java | 4 +++ 5 files changed, 33 insertions(+), 31 deletions(-) diff --git a/changelog b/changelog index 9bd0efd23..d23e7d596 100644 --- a/changelog +++ b/changelog @@ -1,28 +1,4 @@ -## The new power network -The entire energy transfer system has been rewritten which should hopefully fix a few things -* Energy should no longer be voided (at least voiding is minimized due to timeouts for unloaded receivers) -* Transfers should be way less resource intensive, as the expected iteration count is now `max(providers, receivers)` instead of `providers * receivers` -The new system should respect priorities and diodes just like the old system did. Batteries still have their original three priority settings, diodes got two additional modes: LOWEST and HIGHEST. -A bunch of tests have been done using the most important machines, however not all machines that had to be changed for the new system have been fully tested. Expect some things to not work, in which case please file a bug report on the issues board. -Just like with the old system, grids going though unloaded chunks should still work so long as the endpoints are loaded. Grids should be less janky when changing while having unloaded parts, wwhich is likely the main cause for energy voiding. -The system can potentially support saving to the world, i.e. keeping unloaded grids functional even after the entire world is unloaded, although the functionality hasn't been implemented yet. - -## Added -* New medium sized electricity pylons - * Come in wood and steel flavor - * The regular ones don't connect to cable blocks, the variants with transformers do (i.e. they act like substations for huge pylons) - -## Changed -* Updated russian localization -* Condensers now need cast plates instead of welded plates -* Tweaked the substation recipe, it now yields two substations -* There is now a config option for steam clouds from cooling towers -* Nuclear explosions no longer play thunder and explosion sounds in a loop, instead they play one singular sound once the shockwave passes the player - * The HUD shake is now also synced up with the shockwave - * In addition to the hud shake, there is one brief screen shake, the same used for mini nukes (although it ends up being more subtle because your screen is most likely covered in shockwave dust) - * The HUD shake is now 3x more intense, but also only 1.5s long (instead of 5) making it snappier - ## Fixed -* Changed the translation keys for bolts, pipes and shells to avoid naming conflicts -* Fixed glpyhid scout rampant mode spawning not working correctly -* Fixed nuclear explosions petrifying fallout layers, turning them into full sellafite blocks \ No newline at end of file +* Fixed battery connection priority being broken, all battery blocks present during the previous updates will now have their priority default to LOW +* Fixed batteries sometimes ending up transferring themselves, wasting their entire receiving and sending speed on doing effectively nothing + * Energy tracking is still a bit flakey so there could be issues that remain with buffer mode batteries, however the transfer caps should mitigate most potential issues \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index f9a8ca1d9..b4ec7f1af 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4935 +mod_build_number=4936 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index 467d3bbb5..c41ff9e9b 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -165,6 +165,30 @@ public class PowerNetMK2 { IEnergyProviderMK2 src = providers.get(0); IEnergyReceiverMK2 dest = receivers.get(0); + + if(src.getPower() <= 0) { providers.remove(0); prevSrc = 0; continue; } + + if(src == dest) { // STALEMATE DETECTED + //if this happens, a buffer will waste both its share of transfer and receiving potential and do effectively nothing, essentially breaking + + //try if placing the conflicting provider at the end of the list does anything + //we do this first because providers have no priority, so we may shuffle those around as much as we want + if(providers.size() > 1) { + providers.add(providers.get(0)); + providers.remove(0); + prevSrc = 0; //this might cause slight issues due to the tracking being effectively lost while there still might be pending operations + continue; + } + //if that didn't work, try shifting the receiver by one place (to minimize priority breakage) + if(receivers.size() > 1) { + receivers.add(2, receivers.get(0)); + receivers.remove(0); + prevDest = 0; //ditto + continue; + } + + //if neither option could be performed, the only conclusion is that this buffer mode battery is alone in the power net, in which case: not my provlem + } long pd = priorityDemand[dest.getPriority().ordinal()]; @@ -175,8 +199,6 @@ public class PowerNetMK2 { long toFill = Math.min(dest.getMaxPower() - dest.getPower(), receiverShare); long finalTransfer = Math.min(toDrain, toFill); - - if(src.getPower() <= 0) { providers.remove(0); prevSrc = 0; continue; } if(toFill <= 0) { receivers.remove(0); prevDest = 0; continue; } finalTransfer -= dest.transferPower(finalTransfer); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 3b02435f2..0d5894efa 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4935)"; + public static final String VERSION = "1.0.27 BETA (4936)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index d1fb7d597..b021eca59 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -163,6 +163,10 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(!worldObj.isRemote && worldObj.getBlock(xCoord, yCoord, zCoord) instanceof MachineBattery) { + if(priority == null || priority.ordinal() == 0 || priority.ordinal() == 4) { + priority = ConnectionPriority.LOW; + } + int mode = this.getRelevantMode(); if(this.node == null || this.node.expired) { From 5b41c3d83ac9dbcee128072717ccf254d3bf4d88 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 16 Apr 2024 14:54:06 +0200 Subject: [PATCH 338/376] paintable pylon wires --- changelog | 7 ++-- .../com/hbm/blocks/network/PylonBase.java | 13 +++++++ .../com/hbm/blocks/network/PylonLarge.java | 13 +++++++ .../com/hbm/blocks/network/PylonMedium.java | 13 +++++++ .../com/hbm/blocks/network/Substation.java | 13 +++++++ .../java/com/hbm/main/ResourceManager.java | 1 + .../render/tileentity/RenderPylonBase.java | 5 +-- .../network/TileEntityPylonBase.java | 23 +++++++++++- src/main/java/com/hbm/util/ColorUtil.java | 33 ++++++++++++++++++ .../assets/hbm/textures/items/card_hbm.png | Bin 0 -> 1176 bytes .../assets/hbm/textures/items/kit_hbm.png | Bin 0 -> 1088 bytes .../models/network/wire_greyscale.png | Bin 0 -> 137 bytes 12 files changed, 114 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/card_hbm.png create mode 100644 src/main/resources/assets/hbm/textures/items/kit_hbm.png create mode 100644 src/main/resources/assets/hbm/textures/models/network/wire_greyscale.png diff --git a/changelog b/changelog index d23e7d596..2ae8aa9c2 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,3 @@ -## Fixed -* Fixed battery connection priority being broken, all battery blocks present during the previous updates will now have their priority default to LOW -* Fixed batteries sometimes ending up transferring themselves, wasting their entire receiving and sending speed on doing effectively nothing - * Energy tracking is still a bit flakey so there could be issues that remain with buffer mode batteries, however the transfer caps should mitigate most potential issues \ No newline at end of file +## Changed +* All pylons and electrical connectors are now dyeable, using any dye (even modded ones, based on ore dict) to change the color of the cable + * Colors are based on the connecting pylon, not the cables themselves, meaning that using one dye will change all wires connected to that pylon right up to the half way point \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/network/PylonBase.java b/src/main/java/com/hbm/blocks/network/PylonBase.java index f2bf0c675..bf35c9fbe 100644 --- a/src/main/java/com/hbm/blocks/network/PylonBase.java +++ b/src/main/java/com/hbm/blocks/network/PylonBase.java @@ -6,6 +6,7 @@ import com.hbm.tileentity.network.TileEntityPylonBase; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -41,4 +42,16 @@ public abstract class PylonBase extends BlockContainer implements ITooltipProvid public boolean renderAsNormalBlock() { return false; } + + @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()) { + TileEntityPylonBase te = (TileEntityPylonBase) world.getTileEntity(x, y, z); + return te.setColor(player.getHeldItem()); + } else { + return false; + } + } } diff --git a/src/main/java/com/hbm/blocks/network/PylonLarge.java b/src/main/java/com/hbm/blocks/network/PylonLarge.java index 395b27dd1..6333a6e28 100644 --- a/src/main/java/com/hbm/blocks/network/PylonLarge.java +++ b/src/main/java/com/hbm/blocks/network/PylonLarge.java @@ -82,4 +82,17 @@ public class PylonLarge extends BlockDummyable implements ITooltipProvider { return dir.ordinal() + offset; } + + @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()) { + int[] pos = this.findCore(world, x, y, z); + TileEntityPylonBase te = (TileEntityPylonBase) world.getTileEntity(pos[0], pos[1], pos[2]); + return te.setColor(player.getHeldItem()); + } else { + return false; + } + } } diff --git a/src/main/java/com/hbm/blocks/network/PylonMedium.java b/src/main/java/com/hbm/blocks/network/PylonMedium.java index d36921a67..7a29f4614 100644 --- a/src/main/java/com/hbm/blocks/network/PylonMedium.java +++ b/src/main/java/com/hbm/blocks/network/PylonMedium.java @@ -50,4 +50,17 @@ public class PylonMedium extends BlockDummyable implements ITooltipProvider { if(te instanceof TileEntityPylonBase) ((TileEntityPylonBase)te).disconnectAll(); super.breakBlock(world, x, y, z, b, m); } + + @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()) { + int[] pos = this.findCore(world, x, y, z); + TileEntityPylonBase te = (TileEntityPylonBase) world.getTileEntity(pos[0], pos[1], pos[2]); + return te.setColor(player.getHeldItem()); + } else { + return false; + } + } } diff --git a/src/main/java/com/hbm/blocks/network/Substation.java b/src/main/java/com/hbm/blocks/network/Substation.java index 7499992fd..6c8e3cb34 100644 --- a/src/main/java/com/hbm/blocks/network/Substation.java +++ b/src/main/java/com/hbm/blocks/network/Substation.java @@ -72,4 +72,17 @@ public class Substation extends BlockDummyable implements ITooltipProvider { this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o + 1); this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o - 1); } + + @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()) { + int[] pos = this.findCore(world, x, y, z); + TileEntityPylonBase te = (TileEntityPylonBase) world.getTileEntity(pos[0], pos[1], pos[2]); + return te.setColor(player.getHeldItem()); + } else { + return false; + } + } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 08ba66b2d..2e4d78e50 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -788,6 +788,7 @@ public class ResourceManager { public static final ResourceLocation pylon_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_large.png"); public static final ResourceLocation substation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/substation.png"); public static final ResourceLocation wire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire.png"); + public static final ResourceLocation wire_greyscale_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire_greyscale.png"); //Radiolysis public static final ResourceLocation radiolysis_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radiolysis.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java index dca78271c..1d69ca2ba 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java @@ -24,7 +24,7 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { */ public void renderLinesGeneric(TileEntityPylonBase pyl, double x, double y, double z) { - this.bindTexture(ResourceManager.wire_tex); + this.bindTexture(pyl.color == 0 ? ResourceManager.wire_tex : ResourceManager.wire_greyscale_tex); for(int i = 0; i < pyl.connected.size(); i++) { @@ -127,6 +127,8 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { int brightness = world.getLightBrightnessForSkyBlocks(MathHelper.floor_double(ix), MathHelper.floor_double(iy), MathHelper.floor_double(iz), 0); tess.setBrightness(brightness); + tess.setColorOpaque_I(pyl.color == 0 ? 0xffffff : pyl.color); + drawLineSegment(tess, x0 + (deltaX * j / count), y0 + (deltaY * j / count) - sagJ, @@ -180,7 +182,6 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { jX *= -1; } - tessellator.setColorOpaque_I(0xffffff); tessellator.addVertexWithUV(x + iX, y + iY, z + iZ, 0, 0); tessellator.addVertexWithUV(x - iX, y - iY, z - iZ, 0, 1); tessellator.addVertexWithUV(a - iX, b - iY, c - iZ, wrap, 1); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java index 080001df1..7581ddaed 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.network; import java.util.ArrayList; import java.util.List; +import com.hbm.util.ColorUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; @@ -10,6 +11,7 @@ import api.hbm.energymk2.Nodespace; import api.hbm.energymk2.Nodespace.PowerNode; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -23,6 +25,7 @@ import net.minecraftforge.common.util.ForgeDirection; public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { public List connected = new ArrayList(); + public int color; public static int canConnect(TileEntityPylonBase first, TileEntityPylonBase second) { @@ -45,6 +48,22 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { return len >= delta.lengthVector() ? 0 : 3; } + + public boolean setColor(ItemStack stack) { + if(stack == null) return false; + int color = ColorUtil.getColorFromDye(stack); + if(color == 0 || color == this.color) return false; + stack.stackSize--; + this.color = color; + + this.markDirty(); + if(worldObj instanceof WorldServer) { + WorldServer world = (WorldServer) worldObj; + world.getPlayerManager().markBlockForUpdate(xCoord, yCoord, zCoord); + } + + return true; + } @Override public PowerNode createNode() { @@ -120,8 +139,9 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setInteger("conCount", connected.size()); + nbt.setInteger("color", color); for(int i = 0; i < connected.size(); i++) { nbt.setIntArray("con" + i, connected.get(i)); @@ -133,6 +153,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { super.readFromNBT(nbt); int count = nbt.getInteger("conCount"); + this.color = nbt.getInteger("color"); this.connected.clear(); diff --git a/src/main/java/com/hbm/util/ColorUtil.java b/src/main/java/com/hbm/util/ColorUtil.java index aec239b53..2d0ad9378 100644 --- a/src/main/java/com/hbm/util/ColorUtil.java +++ b/src/main/java/com/hbm/util/ColorUtil.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Locale; import javax.imageio.ImageIO; @@ -182,4 +183,36 @@ public class ColorUtil { float[] hsb = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), new float[3]); return hsb[2]; } + + public static HashMap nameToColor = new HashMap() {{ + put("black", 1973019); + put("red", 11743532); + put("green", 3887386); + put("brown", 5320730); + put("blue", 2437522); + put("purple", 8073150); + put("cyan", 2651799); + put("silver", 11250603); + put("gray", 4408131); + put("pink", 14188952); + put("lime", 4312372); + put("yellow", 14602026); + put("lightBlue", 6719955); + put("magenta", 12801229); + put("orange", 15435844); + put("white", 15790320); + }}; + + public static int getColorFromDye(ItemStack stack) { + List oreNames = ItemStackUtil.getOreDictNames(stack); + + for(String dict : oreNames) { + if(dict.length() > 3 && dict.startsWith("dye")) { + String color = dict.substring(3).toLowerCase(Locale.US); + if(nameToColor.containsKey(color)) return nameToColor.get(color); + } + } + + return 0; + } } diff --git a/src/main/resources/assets/hbm/textures/items/card_hbm.png b/src/main/resources/assets/hbm/textures/items/card_hbm.png new file mode 100644 index 0000000000000000000000000000000000000000..c273750fda538fbe4cc656efa261999f1635aa90 GIT binary patch literal 1176 zcmV;J1ZVq+P)J(W?#}>xI9*Qt3dssUA zu=mZE4m!4njanTWd+CEvgu$RN=!+Q)oCWDiZk{a7XtILWPUaRc(rMO3L$Aj4n!AVe zUT@-!nR9=?FS&nz-_JR}bIuL?-!wCY_OF_2KcMLlo#$Hrd6=0gw2g%_ME6@KwBtfF z9M$~7C2Z1Nm|SWHpwTBBYg_69=!?%xp@q+ue=px^rI1r``2;?D`4N%fzo|B=_k3mw z?fG}wjntd($6_&Ue0==K5Vph2Bg2sWt$Z%sh0C{EY4i!Wd;(W`*9o63Uw3!S;qiFN z&q)#!6B9Mpt(N5$SeZ{QwbSSm*v+XG=5)*epePCe;c%FvWWo~Q!X<3c`F(Tqo?m-? z%P?13Zm_tx$oBU3pN6QJ0duumMZRIb4uB|%$AT~b>Q%cr@(ufSWLY-Mjss!SO(Vk) zoiC?m#4flT0Qpjo%D45optx z{w7LMtq)<>4?54aYVlv2Q46I5kt;1Xa5|l|wY4G3GAk=9mgWvSd=&9;rl*My-*C}D ziJNoxQTH^0!62e2B8uYGcsxF#zhe~P>g_GtZmx`crFWgk@P41C(`f)a9*?oFR`R&O z-e6;8b%*GkU0&)Dc<;OmfJ`O>94yR=He9{EWz%PSbiO>{+-^7h{rv_+b?RR^?WVWM z#>F0i`S+U`?1UEwTR7zt`0i(ojV*{qqs-3ET6V{QIiL@rlY=p1yjDZ#`t)rtUw!Q5 ziw{onW7f$hH=R7lsKmeDrcls$#%p6wRgLEpiG%@RnE^9|BuVA8Rzc``wnbp%jGHGV zJI$vYTs(h*hnq#dy`!?2F4E#uDHK%p)IH;!{{H?05JneN>uI%W;cys_$Ah9MxZQ5! zeo%Dq?&ptr;WWJZnu}b%$ivM7t-lD|UsLf24w_vh((9FTC>RWqNF?e5)Pm5}{ahov zJCE71+qw5ZA)D7|YJ&Lk6G|Ffn=8^_gObG@?C$PnVPOFkdbzP&CN|x zsZ>SuaL9kcdKw=e*Pec0P!xqkB2h6XbV-tAL|$!vEPz@N!C=t1pUdTpcC#`+Hb5;1 qbD!5T{>uP#2=jS1o2_g7pV9AROLWvG`l}cK0000|X}&d&qjfC!p6H3PX^PQ>GJJkP^*UDnsvHGu1hgqVp$=-#~xKy-dSWFm4} z@ZioR{3tr{8OUa{B9%%3;5ZKDa#^jpyu2(H7Z-W<$`xLT?FW0S+vVccmYQ>-2pj~L zavX-#gs$r<=ayxK;BxnsN(I}tS=ruJ_k(46ECYsNgmT^s zFBA$2zOu3sx+g2eb=~6|@H~%rJg%;L;f7&QDwSAUTMNO1hgIrSszAy#O<@=YmSr6X z5B7*-M?lwgbsdD4%jLe-o6Tki!jEmBSHYbRg3C%7)FYy!!sh1YL@JfS^E}$^Hi<-n zdcBUOX?<|RFvRTaEC9`Bb6|rSsSyR?rfE_v76H(89mjFhwfs*elj`1}9swhyU~XC=&zoVw$GNX0vJ>%&Szj zT0Im#7KN+tpW~V7F=o$o`J&|U)wPH0bsn?(A|Oi&z_KiYQIPdtsZ`YbVQ>KbEJPz3 zfBdz}k2m1;3o*`)Ykc}`OU(&&!dxyFg6H#j^7%ZLWvPbac^;WehMk=qJkRTczxhI( zixV1`FU0s^d4fyN!)uqONF`$YyeV+*si`7lpclThv_!R91?V#&)o3(ADg5}|Nv?i4 z$?6A5es{C2j z?QWE(Qe#|xYlhp+J-++Nr)uvpHSW`D`E>kFzX2%;uhnWKlSu`UkqFM~eb^Z3G2Z*+ z0iS<;kIh>xw(mE&-E8saKOKtKTl{AGAUfE0LT~Jk51|ZutyW`UVL?rhktmf)s_qBr zrI*j}aQ6Yb(I~&%^l;uyj) zGxW4K7lR=O^97NvM}OaE-u-#gV)nu-Z{j?rtup(UqBcWveR%o(#@)^?AFAdTA5&Ip i+dlK|qE!wqhvlb#QGaRoa@zr*Sqz@8elF{r5}E*aBruWy literal 0 HcmV?d00001 From 664dbd66577322572a1179451a3c08acf635ae10 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Mon, 15 Apr 2024 14:07:53 +0200 Subject: [PATCH 339/376] Revert "Merge pull request #1429 from 70000hp/NHNEI-compat" This reverts commit ef169ac06e51b73b0bb03f25044c07f424080257. --- .../com/hbm/handler/imc/ICompatNHNEI.java | 14 -- .../com/hbm/handler/imc/IMCHandlerNHNEI.java | 120 ------------------ .../nei/AlloyFurnaceRecipeHandler.java | 16 +-- .../hbm/handler/nei/AnvilRecipeHandler.java | 25 +--- .../handler/nei/AssemblerRecipeHandler.java | 16 +-- .../hbm/handler/nei/BookRecipeHandler.java | 16 +-- .../hbm/handler/nei/BreederRecipeHandler.java | 14 +- .../handler/nei/ChemplantRecipeHandler.java | 16 +-- .../hbm/handler/nei/ConstructionHandler.java | 8 -- .../handler/nei/CrucibleAlloyingHandler.java | 12 +- .../handler/nei/CrucibleCastingHandler.java | 16 +-- .../handler/nei/CrucibleSmeltingHandler.java | 14 +- .../handler/nei/CyclotronRecipeHandler.java | 15 +-- .../hbm/handler/nei/FluidRecipeHandler.java | 21 +-- .../hbm/handler/nei/FusionRecipeHandler.java | 15 +-- .../nei/GasCentrifugeRecipeHandler.java | 14 +- .../hbm/handler/nei/HadronRecipeHandler.java | 13 +- .../hbm/handler/nei/NEIUniversalHandler.java | 17 +-- .../hbm/handler/nei/PressRecipeHandler.java | 15 +-- .../handler/nei/RadiolysisRecipeHandler.java | 15 +-- .../handler/nei/RefineryRecipeHandler.java | 13 +- .../hbm/handler/nei/SILEXRecipeHandler.java | 13 +- .../handler/nei/ShredderRecipeHandler.java | 13 +- .../handler/nei/SmithingRecipeHandler.java | 23 +--- .../com/hbm/handler/nei/ToolingHandler.java | 10 +- src/main/java/com/hbm/main/MainRegistry.java | 36 +++--- src/main/java/com/hbm/main/NEIConfig.java | 8 +- 27 files changed, 53 insertions(+), 475 deletions(-) delete mode 100644 src/main/java/com/hbm/handler/imc/ICompatNHNEI.java delete mode 100644 src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java diff --git a/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java b/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java deleted file mode 100644 index 37952c867..000000000 --- a/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.hbm.handler.imc; - -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; - -public interface ICompatNHNEI { - /**First item on the list is the icon for the recipe in the NEI GUI, the rest are displayed on the sidebar - * as other items that can be used for the same purpose**/ - ItemStack[] getMachinesForRecipe(); - - String getRecipeID(); - -} diff --git a/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java b/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java deleted file mode 100644 index e21d027f8..000000000 --- a/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.hbm.handler.imc; - -import codechicken.nei.recipe.TemplateRecipeHandler; -import com.hbm.config.VersatileConfig; -import com.hbm.handler.nei.*; -import com.hbm.lib.RefStrings; -import com.hbm.main.NEIConfig; -import cpw.mods.fml.common.event.FMLInterModComms; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.ArrayList; - -public class IMCHandlerNHNEI { - - public static ArrayList handlerList() { - ArrayList handlers = new ArrayList<>(); - - handlers.add(new AlloyFurnaceRecipeHandler()); - handlers.add(new ShredderRecipeHandler()); - handlers.add(new PressRecipeHandler()); - handlers.add(new CentrifugeRecipeHandler()); - handlers.add(new GasCentrifugeRecipeHandler()); - handlers.add(new BreederRecipeHandler()); - handlers.add(new CyclotronRecipeHandler()); - handlers.add(new AssemblerRecipeHandler()); - handlers.add(new RefineryRecipeHandler()); - handlers.add(new VacuumRecipeHandler()); - handlers.add(new CrackingHandler()); - handlers.add(new ReformingHandler()); - handlers.add(new HydrotreatingHandler()); - handlers.add(new BoilerRecipeHandler()); - handlers.add(new ChemplantRecipeHandler()); - handlers.add(new CrystallizerRecipeHandler()); - handlers.add(new BookRecipeHandler()); - handlers.add(new FusionRecipeHandler()); - handlers.add(new HadronRecipeHandler()); - handlers.add(new SILEXRecipeHandler()); - handlers.add(new SmithingRecipeHandler()); - handlers.add(new AnvilRecipeHandler()); - handlers.add(new FuelPoolHandler()); - handlers.add(new FluidRecipeHandler()); - handlers.add(new RadiolysisRecipeHandler()); - handlers.add(new CrucibleSmeltingHandler()); - handlers.add(new CrucibleAlloyingHandler()); - handlers.add(new CrucibleCastingHandler()); - handlers.add(new ToolingHandler()); - handlers.add(new ConstructionHandler()); - - //universal boyes - handlers.add(new ZirnoxRecipeHandler()); - if(VersatileConfig.rtgDecay()) { - handlers.add(new RTGRecipeHandler()); - } - handlers.add(new LiquefactionHandler()); - handlers.add(new SolidificationHandler()); - handlers.add(new CokingHandler()); - handlers.add(new FractioningHandler()); - handlers.add(new BoilingHandler()); - handlers.add(new CombinationHandler()); - handlers.add(new SawmillHandler()); - handlers.add(new MixerHandler()); - handlers.add(new OutgasserHandler()); - handlers.add(new ElectrolyserFluidHandler()); - handlers.add(new ElectrolyserMetalHandler()); - handlers.add(new AshpitHandler()); - handlers.add(new ArcWelderHandler()); - handlers.add(new ExposureChamberHandler()); - - return handlers; - } - public static void IMCSender() { - - for (TemplateRecipeHandler handler: handlerList()) { - - Class handlerClass = handler.getClass(); - - if(handler instanceof ICompatNHNEI && ((ICompatNHNEI) handler).getMachinesForRecipe() != null) { - String blockName = "hbm:" + ((ICompatNHNEI) handler).getMachinesForRecipe()[0].getUnlocalizedName(); - String hClass = handlerClass.getName(); - sendHandler(hClass, ((ICompatNHNEI) handler).getRecipeID(), blockName); - for (ItemStack stack: ((ICompatNHNEI) handler).getMachinesForRecipe()) { - sendCatalyst(hClass, "hbm:" + stack.getUnlocalizedName()); - } - } - } - - } - private static void sendHandler(String aName, String handlerID, String aBlock) { - sendHandler(aName, handlerID, aBlock, 3); - } - - private static void sendHandler(String aName, String handlerID, String aBlock, int maxRecipesPerPage) { - NBTTagCompound aNBT = new NBTTagCompound(); - aNBT.setString("handler", aName); - aNBT.setString("handlerID", handlerID); - aNBT.setString("modName", RefStrings.NAME); - aNBT.setString("modId", RefStrings.MODID); - aNBT.setBoolean("modRequired", true); - aNBT.setString("itemName", aBlock); - aNBT.setInteger("handlerHeight", 65); - aNBT.setInteger("handlerWidth", 166); - aNBT.setInteger("maxRecipesPerPage", maxRecipesPerPage); - aNBT.setInteger("yShift", 6); - FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", aNBT); - } - - private static void sendCatalyst(String aName, String aStack, int aPriority) { - NBTTagCompound aNBT = new NBTTagCompound(); - aNBT.setString("handlerID", aName); - aNBT.setString("catalystHandlerID", aName); - aNBT.setString("itemName", aStack); - aNBT.setInteger("priority", aPriority); - FMLInterModComms.sendMessage("NotEnoughItems", "registerCatalystInfo", aNBT); - } - - private static void sendCatalyst(String aName, String aStack) { - sendCatalyst(aName, aStack, 0); - } -} diff --git a/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java index ee1d09a5b..8b76d904b 100644 --- a/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java @@ -7,8 +7,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIDiFurnace; import com.hbm.inventory.recipes.BlastFurnaceRecipes; import com.hbm.inventory.recipes.MachineRecipes; @@ -19,22 +17,10 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class AlloyFurnaceRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class AlloyFurnaceRecipeHandler extends TemplateRecipeHandler { public static ArrayList fuels; - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_difurnace_off), - new ItemStack(ModBlocks.machine_difurnace_rtg_off)}; - } - - @Override - public String getRecipeID() { - return "alloysmelting"; - } - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input1; PositionedStack input2; diff --git a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java index 3c01db05a..4df799a33 100644 --- a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java @@ -7,9 +7,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.NTMAnvil; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; @@ -26,28 +24,7 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class AnvilRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { - - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.anvil_iron), - new ItemStack(ModBlocks.anvil_lead), - new ItemStack(ModBlocks.anvil_steel), - new ItemStack(ModBlocks.anvil_starmetal), - new ItemStack(ModBlocks.anvil_meteorite), - new ItemStack(ModBlocks.anvil_ferrouranium), - new ItemStack(ModBlocks.anvil_bismuth), - new ItemStack(ModBlocks.anvil_schrabidate), - new ItemStack(ModBlocks.anvil_dnt), - new ItemStack(ModBlocks.anvil_osmiridium), - new ItemStack(ModBlocks.anvil_murky)}; - } - - @Override - public String getRecipeID() { - return "ntmAnvil"; - } +public class AnvilRecipeHandler extends TemplateRecipeHandler { public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java index d3ddb9df0..f533fc02c 100644 --- a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java @@ -6,8 +6,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineAssembler; import com.hbm.inventory.recipes.AssemblerRecipes; @@ -21,25 +19,13 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class AssemblerRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class AssemblerRecipeHandler extends TemplateRecipeHandler { public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); public LinkedList> guiGui = new LinkedList>(); - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_assembler), - new ItemStack(ModBlocks.machine_assemfac)}; - } - - @Override - public String getRecipeID() { - return "assembly"; - } - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { List input; diff --git a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java index 3b18cd6f6..44e6c7ded 100644 --- a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java @@ -4,8 +4,6 @@ import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -16,22 +14,12 @@ import com.hbm.inventory.recipes.MagicRecipes.MagicRecipe; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; -import com.hbm.items.ModItems; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class BookRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModItems.book_of_)}; - } +public class BookRecipeHandler extends TemplateRecipeHandler { - @Override - public String getRecipeID() { - return "book_of_boxcars"; - } - public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { List input; PositionedStack result; diff --git a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java index 0fc3f70d2..8f91f8d75 100644 --- a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java @@ -5,8 +5,6 @@ import java.util.Arrays; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineReactorBreeding; import com.hbm.inventory.recipes.BreederRecipes; import com.hbm.inventory.recipes.BreederRecipes.BreederRecipe; @@ -18,18 +16,8 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class BreederRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class BreederRecipeHandler extends TemplateRecipeHandler { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_reactor_breeding)}; - } - - @Override - public String getRecipeID() { - return "breeding"; - } public class BreedingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input; diff --git a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java index b0b5e19a4..9ef27b9a9 100644 --- a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -5,8 +5,6 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIMachineChemplant; @@ -22,26 +20,14 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class ChemplantRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class ChemplantRecipeHandler extends TemplateRecipeHandler { public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); public LinkedList> guiGui = new LinkedList>(); - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_chemplant), - new ItemStack(ModBlocks.machine_chemfac)}; - } - - @Override - public String getRecipeID() { - return "chemistry"; - } public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { - PositionedStack[] itemIn = new PositionedStack[4]; PositionedStack[] fluidIn = new PositionedStack[2]; PositionedStack[] itemOut = new PositionedStack[4]; diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index baf61bfc1..91f46bd1d 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -16,14 +16,6 @@ public class ConstructionHandler extends NEIUniversalHandler { super("Construction", getRecipes(true), getRecipes(false)); } - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModItems.acetylene_torch), - new ItemStack(ModItems.blowtorch), - new ItemStack(ModItems.boltgun)}; - } - @Override public String getKey() { return "ntmConstruction"; diff --git a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java index 4cdca10fe..80ccd314b 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java @@ -6,7 +6,6 @@ import java.util.LinkedList; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.material.NTMMaterial; @@ -21,16 +20,7 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleAlloyingHandler extends TemplateRecipeHandler implements ICompatNHNEI { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_crucible)}; - } - @Override - public String getRecipeID() { - return "ntmCrucibleAlloying"; - } +public class CrucibleAlloyingHandler extends TemplateRecipeHandler { public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java index eff865fb4..1befff001 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java @@ -6,8 +6,6 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.material.Mats; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.items.machine.ItemMold; @@ -19,19 +17,7 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleCastingHandler extends TemplateRecipeHandler implements ICompatNHNEI { - - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.foundry_basin), - new ItemStack(ModBlocks.foundry_mold), - new ItemStack(ModBlocks.machine_strand_caster)}; - } - @Override - public String getRecipeID() { - return "ntmCrucibleFoundry"; - } +public class CrucibleCastingHandler extends TemplateRecipeHandler { public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java index 63bbc26e7..b6af31dc1 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java @@ -9,7 +9,6 @@ import java.util.List; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.lib.RefStrings; @@ -20,17 +19,8 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleSmeltingHandler extends TemplateRecipeHandler implements ICompatNHNEI { - - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_crucible)}; - } - @Override - public String getRecipeID() { - return "ntmCrucibleSmelting"; - } +public class CrucibleSmeltingHandler extends TemplateRecipeHandler { + public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java index 51b0a6b6f..b4f9221f2 100644 --- a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java @@ -6,8 +6,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineCyclotron; import com.hbm.inventory.recipes.CyclotronRecipes; import com.hbm.lib.RefStrings; @@ -18,17 +16,8 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CyclotronRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_cyclotron)}; - } - - @Override - public String getRecipeID() { - return "cyclotronProcessing"; - } +public class CyclotronRecipeHandler extends TemplateRecipeHandler { + public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java index a575f867f..792f4465f 100644 --- a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java @@ -5,10 +5,7 @@ import java.util.Arrays; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.recipes.MachineRecipes; -import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; @@ -17,23 +14,7 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class FluidRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModItems.fluid_barrel_empty), - new ItemStack(ModItems.fluid_tank_empty), - new ItemStack(ModItems.fluid_tank_lead_empty), - new ItemStack(ModItems.canister_empty), - new ItemStack(ModItems.gas_empty), - new ItemStack(ModItems.cell_empty), - new ItemStack(ModItems.disperser_canister_empty), - new ItemStack(ModItems.glyphid_gland_empty)}; - } - @Override - public String getRecipeID() { - return "fluidcons"; - } +public class FluidRecipeHandler extends TemplateRecipeHandler { public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { diff --git a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java index f5a69a4ec..ff6624e23 100644 --- a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java @@ -6,8 +6,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIITER; import com.hbm.inventory.recipes.FusionRecipes; import com.hbm.lib.RefStrings; @@ -18,17 +16,8 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class FusionRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { - - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.iter)}; - } - @Override - public String getRecipeID() { - return "fusion"; - } +public class FusionRecipeHandler extends TemplateRecipeHandler { + public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java index 085ec8b7a..add9dcf95 100644 --- a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java @@ -9,8 +9,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineGasCent; import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.MachineRecipes; @@ -24,16 +22,8 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_gascent)}; - } - @Override - public String getRecipeID() { - return "gascentprocessing"; - } +public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { + public static ArrayList fuels; public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { diff --git a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java index b9325cd9c..cbd520858 100644 --- a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java @@ -8,8 +8,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIHadron; import com.hbm.inventory.recipes.HadronRecipes; import com.hbm.inventory.recipes.HadronRecipes.HadronRecipe; @@ -23,17 +21,8 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class HadronRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class HadronRecipeHandler extends TemplateRecipeHandler { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.hadron_core)}; - } - @Override - public String getRecipeID() { - return "hadron"; - } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 06ad8caaf..0bb53100a 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -10,8 +10,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.lib.RefStrings; import com.hbm.util.InventoryUtil; @@ -23,13 +21,8 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -public abstract class NEIUniversalHandler extends TemplateRecipeHandler implements ICompatNHNEI { - - @Override - public ItemStack[] getMachinesForRecipe() { - return machine; - } - +public abstract class NEIUniversalHandler extends TemplateRecipeHandler { + public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); @@ -41,6 +34,7 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler implemen public final HashMap recipes; public HashMap machineOverrides; /// SETUP /// + public NEIUniversalHandler(String display, ItemStack machine[], HashMap recipes) { this.display = display; this.machine = machine; @@ -311,9 +305,4 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler implemen } public abstract String getKey(); - - @Override - public String getRecipeID() { - return getKey(); - } } diff --git a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java index f0b2adefb..fbc14c5cd 100644 --- a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java @@ -7,8 +7,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.interfaces.Untested; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -27,19 +25,8 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; @Untested -public class PressRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class PressRecipeHandler extends TemplateRecipeHandler { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_press), - new ItemStack(ModBlocks.machine_epress), - new ItemStack(ModBlocks.machine_conveyor_press)}; - } - @Override - public String getRecipeID() { - return "pressing"; - } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java index 84cd78979..9d5d619d4 100644 --- a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java @@ -8,8 +8,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIRadiolysis; import com.hbm.inventory.recipes.RadiolysisRecipes; import com.hbm.lib.RefStrings; @@ -20,17 +18,8 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class RadiolysisRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { - - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_radiolysis)}; - } - @Override - public String getRecipeID() { - return "ntmRadiolysis"; - } +public class RadiolysisRecipeHandler extends TemplateRecipeHandler { + public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java index f085e4ebe..f3068bf17 100644 --- a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java @@ -7,8 +7,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineRefinery; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.RefStrings; @@ -18,17 +16,8 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class RefineryRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class RefineryRecipeHandler extends TemplateRecipeHandler { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_refinery)}; - } - @Override - public String getRecipeID() { - return "refinery"; - } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java index bc1363383..444489abc 100644 --- a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -7,8 +7,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUISILEX; import com.hbm.inventory.recipes.SILEXRecipes; import com.hbm.inventory.recipes.SILEXRecipes.SILEXRecipe; @@ -26,17 +24,8 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class SILEXRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class SILEXRecipeHandler extends TemplateRecipeHandler { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_silex)}; - } - @Override - public String getRecipeID() { - return "silex"; - } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java index 7524f5091..396109047 100644 --- a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java @@ -7,8 +7,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineShredder; import com.hbm.inventory.recipes.MachineRecipes; @@ -21,17 +19,8 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class ShredderRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class ShredderRecipeHandler extends TemplateRecipeHandler { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.machine_shredder)}; - } - @Override - public String getRecipeID() { - return "ntmRadiolysis"; - } public static ArrayList fuels; public LinkedList transferRectsRec = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java index fc03dd060..35e698422 100644 --- a/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java @@ -5,8 +5,6 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilSmithingRecipe; @@ -20,27 +18,8 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class SmithingRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { +public class SmithingRecipeHandler extends TemplateRecipeHandler { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModBlocks.anvil_lead), - new ItemStack(ModBlocks.anvil_iron), - new ItemStack(ModBlocks.anvil_steel), - new ItemStack(ModBlocks.anvil_starmetal), - new ItemStack(ModBlocks.anvil_meteorite), - new ItemStack(ModBlocks.anvil_ferrouranium), - new ItemStack(ModBlocks.anvil_bismuth), - new ItemStack(ModBlocks.anvil_schrabidate), - new ItemStack(ModBlocks.anvil_dnt), - new ItemStack(ModBlocks.anvil_osmiridium), - new ItemStack(ModBlocks.anvil_murky)}; - } - @Override - public String getRecipeID() { - return "ntmSmithing"; - } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/ToolingHandler.java b/src/main/java/com/hbm/handler/nei/ToolingHandler.java index 9c0420b18..c50074f1e 100644 --- a/src/main/java/com/hbm/handler/nei/ToolingHandler.java +++ b/src/main/java/com/hbm/handler/nei/ToolingHandler.java @@ -1,17 +1,9 @@ package com.hbm.handler.nei; import com.hbm.blocks.generic.BlockToolConversion; -import com.hbm.items.ModItems; -import net.minecraft.item.ItemStack; public class ToolingHandler extends NEIUniversalHandler { - @Override - public ItemStack[] getMachinesForRecipe() { - return new ItemStack[]{ - new ItemStack(ModItems.boltgun), - new ItemStack(ModItems.blowtorch), - new ItemStack(ModItems.acetylene_torch)}; - } + public ToolingHandler() { super("Tooling", BlockToolConversion.getRecipes(true), BlockToolConversion.getRecipes(false)); } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 2cbe13204..cc6778d93 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -14,7 +14,10 @@ import com.hbm.entity.grenade.*; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.mob.siege.SiegeTier; import com.hbm.handler.*; -import com.hbm.handler.imc.*; +import com.hbm.handler.imc.IMCBlastFurnace; +import com.hbm.handler.imc.IMCCentrifuge; +import com.hbm.handler.imc.IMCCrystallizer; +import com.hbm.handler.imc.IMCHandler; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.hazard.HazardRegistry; @@ -49,10 +52,13 @@ import com.hbm.world.feature.OreCave; import com.hbm.world.feature.OreLayer3D; import com.hbm.world.feature.SchistStratum; import com.hbm.world.generator.CellularDungeonFactory; -import cpw.mods.fml.common.*; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.Mod.Metadata; +import cpw.mods.fml.common.ModMetadata; +import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; @@ -659,7 +665,7 @@ public class MainRegistry { @EventHandler public static void load(FMLInitializationEvent event) { - + RodRecipes.registerInit(); achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", -3, 1, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); @@ -681,7 +687,7 @@ public class MainRegistry { achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.BALLS), achSlimeball).initIndependentStat().setSpecial().registerStat(); achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat(); achRedRoom = new Achievement("achievement.redRoom", "redRoom", -10, 10, ModItems.key_red, null).initIndependentStat().setSpecial().registerStat(); - + bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.QUESTIONMARK), null).initIndependentStat().registerStat(); horizonsStart = new Achievement("achievement.horizonsStart", "horizonsStart", -5, 4, ModItems.sat_gerald, null).initIndependentStat().registerStat(); @@ -698,20 +704,20 @@ public class MainRegistry { achRadDeath = new Achievement("achievement.radDeath", "radDeath", 0, 6, Items.skull, achRadPoison).initIndependentStat().registerStat().setSpecial(); achSomeWounds = new Achievement("achievement.someWounds", "someWounds", -2, 10, ModItems.injector_knife, null).initIndependentStat().registerStat(); - + digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMASEE), null).initIndependentStat().registerStat(); digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAFEEL), digammaSee).initIndependentStat().registerStat(); digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKNOW), digammaFeel).initIndependentStat().registerStat().setSpecial(); digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKAUAIMOHO), digammaKnow).initIndependentStat().registerStat().setSpecial(); digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAUPONTOP), digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); - + //progression achieves achBurnerPress = new Achievement("achievement.burnerPress", "burnerPress", 0, 0, new ItemStack(ModBlocks.machine_press), null).initIndependentStat().registerStat(); achBlastFurnace = new Achievement("achievement.blastFurnace", "blastFurnace", 1, 3, new ItemStack(ModBlocks.machine_difurnace_off), achBurnerPress).initIndependentStat().registerStat(); achAssembly = new Achievement("achievement.assembly", "assembly", 3, -1, new ItemStack(ModBlocks.machine_assembler), achBurnerPress).initIndependentStat().registerStat(); achSelenium = new Achievement("achievement.selenium", "selenium", 3, 2, ModItems.ingot_starmetal, achBurnerPress).initIndependentStat().setSpecial().registerStat(); achChemplant = new Achievement("achievement.chemplant", "chemplant", 6, -1, new ItemStack(ModBlocks.machine_chemplant), achAssembly).initIndependentStat().registerStat(); - achConcrete = new Achievement("achievement.concrete", "concrete", 6, -4, new ItemStack(ModBlocks.concrete), achChemplant).initIndependentStat().registerStat(); + achConcrete = new Achievement("achievement.concrete", "concrete", 6, -4, new ItemStack(ModBlocks.concrete), achChemplant).initIndependentStat().registerStat(); achPolymer = new Achievement("achievement.polymer", "polymer", 9, -1, ModItems.ingot_polymer, achChemplant).initIndependentStat().registerStat(); achDesh = new Achievement("achievement.desh", "desh", 9, 2, ModItems.ingot_desh, achChemplant).initIndependentStat().registerStat(); achTantalum = new Achievement("achievement.tantalum", "tantalum", 7, 3, ModItems.gem_tantalium, achChemplant).initIndependentStat().setSpecial().registerStat(); @@ -737,8 +743,8 @@ public class MainRegistry { achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.powder_balefire, achFusion).initIndependentStat().setSpecial().registerStat(); achRedBalloons = new Achievement("achievement.redBalloons", "redBalloons", 11, 0, ModItems.missile_nuclear, achPolymer).initIndependentStat().setSpecial().registerStat(); achManhattan = new Achievement("achievement.manhattan", "manhattan", 11, -4, new ItemStack(ModBlocks.nuke_boy), achPolymer).initIndependentStat().setSpecial().registerStat(); - - AchievementPage.registerAchievementPage(new AchievementPage("Nuclear Tech", new Achievement[]{ + + AchievementPage.registerAchievementPage(new AchievementPage("Nuclear Tech", new Achievement[] { achSacrifice, achImpossible, achTOB, @@ -774,7 +780,7 @@ public class MainRegistry { digammaKnow, digammaKauaiMoho, digammaUpOnTop, - + achBurnerPress, achBlastFurnace, achAssembly, @@ -814,12 +820,6 @@ public class MainRegistry { IMCHandler.registerHandler("blastfurnace", new IMCBlastFurnace()); IMCHandler.registerHandler("crystallizer", new IMCCrystallizer()); IMCHandler.registerHandler("centrifuge", new IMCCentrifuge()); - if (Loader.isModLoaded("NotEnoughItems")){ - if (Loader.instance().getIndexedModList().get("NotEnoughItems").getVersion().contains("GTNH")) { - IMCHandlerNHNEI.IMCSender(); - } - } - } @EventHandler @@ -837,7 +837,6 @@ public class MainRegistry { MainRegistry.logger.error("Could not process unknown IMC type \"" + message.key + "\""); } } - } @EventHandler @@ -891,6 +890,7 @@ public class MainRegistry { Compat.handleRailcraftNonsense(); SuicideThreadDump.register(); + //ExplosionTests.runTest(); } @@ -926,7 +926,7 @@ public class MainRegistry { FMLCommonHandler.instance().bus().register(keyHandler); } } - + //yes kids, this is where we would usually register commands @EventHandler public void serverStart(FMLServerStartingEvent event) { diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 0fdff6386..d97c3e50f 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -1,15 +1,12 @@ package com.hbm.main; -import java.util.ArrayList; import java.util.List; -import codechicken.nei.recipe.*; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; import com.hbm.config.VersatileConfig; -import com.hbm.handler.imc.IMCHandlerNHNEI; import com.hbm.handler.nei.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; @@ -19,6 +16,10 @@ import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; import codechicken.nei.api.IHighlightHandler; import codechicken.nei.api.ItemInfo.Layout; +import codechicken.nei.recipe.GuiCraftingRecipe; +import codechicken.nei.recipe.GuiUsageRecipe; +import codechicken.nei.recipe.ICraftingHandler; +import codechicken.nei.recipe.IUsageHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -26,6 +27,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class NEIConfig implements IConfigureNEI { + @Override public void loadConfig() { registerHandler(new AlloyFurnaceRecipeHandler()); From 17a9d824aa9d0604d3a4e154a745de1988722174 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 17 Apr 2024 11:32:41 +0200 Subject: [PATCH 340/376] some fixes, smeltable diamonds and emeralds --- README.md | 21 +++ changelog | 16 +- .../hbm/blocks/machine/FoundrySlagtap.java | 2 - .../blocks/machine/MachineStrandCaster.java | 1 - .../java/com/hbm/config/GeneralConfig.java | 2 - src/main/java/com/hbm/config/WorldConfig.java | 2 + .../com/hbm/handler/nei/ChunkyHandler.java | 79 --------- .../hbm/inventory/gui/GUIMachineBattery.java | 1 + .../java/com/hbm/inventory/material/Mats.java | 2 + .../hbm/render/entity/mob/RenderRADBeast.java | 153 +++++++++--------- .../bomb/TileEntityCompactLauncher.java | 15 +- .../bomb/TileEntityLaunchTable.java | 15 +- .../machine/TileEntityFoundrySlagtap.java | 1 - .../turret/TileEntityTurretHIMARS.java | 4 + .../com/hbm/world/feature/BedrockOre.java | 1 + 15 files changed, 140 insertions(+), 175 deletions(-) delete mode 100644 src/main/java/com/hbm/handler/nei/ChunkyHandler.java diff --git a/README.md b/README.md index 2506c1a64..087a2c6e4 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,21 @@ If you want to make some changes to the mod, follow this guide: ## Compatibility notice NTM has certain behaviors intended to fix vanilla code or to increase compatibility in certain cases where it otherwise would not be possible. These behaviors have the potential of not playing well with other mods, and while no such cases are currently known, here's a list of them. +### Thermos +Thermos servers (along with its forks such as Crucible) have a "performance" feature that causes all tile entity ticking to slow down if there's no player present in the same chunk. For obvious reasons, this will heavily impact machines and cause phantom issues that, not having knowledge of this "performance" feature, are near impossible to diagnose. By default, NTM will crash on servers running the Thermos base code and print a lengthy message informing server owners about this "performance" feature as well as how to fix the issues it causes. The error message is printed in plain English on the top of the crash log, failure to read (as well as understand) it will leave the server inoperable. + +### Optifine +One of the most common "performance" mods on 1.7.10, Optifine, achieves an increase in performance by breaking small things in spots that are usually hard to notice, although this can cause severe issues with NTM. A short list of problems, along with some solutions, follows: +* Get rid of Optifine and use one of the many [other, less intrusive performance mods](https://gist.github.com/makamys/7cb74cd71d93a4332d2891db2624e17c). +* Blocks with connected textures may become invisible. This can be fixed by toggling triangulation (I do not know what or where this setting is, I just have been told that it exists and that it can fix the problem) or multicore chunk rendering (same here). +* Entity "optimization" has a tendency to break chunkloading, this is especially noticeable with missiles which rely heavily on chunkloading to work, causing them to freeze mid-air. It's unclear what setting might fix this, and analysis of Optifine's source code (or rather, lack thereof) has not proven useful either. + +### Angelica +Like most performance mods, Angelica also does deep-rooted changes to the game's rendering to improve performance, changes which have unintended side effects with mods that otherwise rely on the vanilla functionality that was changed. Unlike with Optifine, Angelica's source code is accessible and the mod is still in active development, so the list of issues might be outdated: +* 3D models in inventories might render with no texture, this issue apparently also breaks font rendering for item tooltips +* 3D models for tile entities have a tendency to render with blend enabled (i.e. semi-transparent), especially models that are separated into multiple parts which use display lists (i.e. an older system for rendering larger models more efficiently) +* Blocks with connected textures once again become invisible (exact fix for Angelica is unknown) + ### Skybox chainloader NTM adds a few small things to the skybox using a custom skybox renderer. Minecraft can only have a single skybox renderer loaded, so setting the skybox to the NTM custom one would break compatibility with other mods' skyboxes. To mend this, NTM employs a **chainloader**. This chainloader will detect if a different skybox is loaded, save a reference to that skybox and then use NTM's skybox, which when used will also make sure to run the previous modded skybox renderer. In the event that NTM's skybox were to cause trouble, it can be disabled with the config option `1.31_enableSkyboxes`. @@ -106,5 +121,11 @@ An often overlooked aspect of Minecraft is its stats, the game keeps track of ho ### Keybind overlap An often annoying aspect of modded Minecraft is its keybinds. Even though multiple binds can be assigned the same key, all but one will show up as "conflicting" and only the non-conflicting one will work. Which one this is is usually arbitrary, and there is no reason to have such limitation. Often times keybinds are only applicable in certain scenarios, and a commonly found degree of overlap is within reason. Therefore, NTM will run its own key handling code which allows conflicting keybinds to work. If there should be any issues with this behavior, it can be disabled with the config option `1.34_enableKeybindOverlap`. +### Render distance capping +There is a common crash caused by Minecraft's render distance slider going out of bounds, this usually happens when uninstalling a mod that extends the render distance (like Optifine) or when downgrading the Minecraft version (newer versions have higher render distance caps). To prevent crashes, the mod will attempt to decrease the render distance if it's above 16 unless Optifine is installed. If this behavior is not desired (for example, because another mod that allows higher render distance is being used), it can be disabled with the config option `1.25_enableRenderDistCheck`. + +### Log spam caused by ComparableStack +In some modpacks (exact mods needed to replicate this are unknown), it's possible that invalid registered items may cause problems for NEI handlers. To prevent crashes, the ComparableStack class used to represent stacks will default to a safe registered item, and print a log message. In certain situations, this may cause dozens of errors to be printed at once, potentially even lagging the game. If that happens, the log message (but not the error handling) can be disabled with the config option `1.28_enableSilentCompStackErrors`. + # License This software is licensed under the GNU Lesser General Public License version 3. In short: This software is free, you may run the software freely, create modified versions, distribute this software and distribute modified versions, as long as the modified software too has a free software license (with an exception for linking to this software, as stated by the "Lesser" part of the LGPL, where this may not be required). You win this round, Stallman. The full license can be found in the `LICENSE` and `LICENSE.LESSER` files. diff --git a/changelog b/changelog index 2ae8aa9c2..dba353fb3 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,17 @@ ## Changed * All pylons and electrical connectors are now dyeable, using any dye (even modded ones, based on ore dict) to change the color of the cable - * Colors are based on the connecting pylon, not the cables themselves, meaning that using one dye will change all wires connected to that pylon right up to the half way point \ No newline at end of file + * Colors are based on the connecting pylon, not the cables themselves, meaning that using one dye will change all wires connected to that pylon right up to the half way point +* Glyphid behemoths now spew sulfuric acid instead of hydrogen peroxide +* Glyphid brawlers can now leap at nearby players +* The structure config has changed + * Instead of a central toggle for enabling/disabling structures, there's now three possible settings, enabling structures, disabling structures or making structure spawn respect the setting from the world creation menu +* Pressurized gauges like for the vacuum refinery and hydrotreater no longer have slots for item barrels (as those would logically not work), instead they show a pressure symbol +* Auditory geiger counters in armors will now click based on the radiation level *inside* the suit, i.e. the effective exposure for the player +* Diamonds are now a valid crucible material, turning into carbon at a 1:1 ratio (like graphite) +* Emerald is also a valid crucible material now, turning into beryllium at a 4:3 ratio +* Emeralds can now be mined as bedrock ores with a weight of 50 (half as common as iron, as common as redstone) + +## Fixed +* Fixed rocket artillery turret not saving loaded ammo type/count +* Fixed crash caused by custom missile launchers operating without designator +* Fixed meltdown elementals rendering their beam in the NEI spawner screen, causing extreme lag or the game to freeze \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java index da54714cf..e2543deaf 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java +++ b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java @@ -6,10 +6,8 @@ import com.hbm.tileentity.machine.TileEntityFoundrySlagtap; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; public class FoundrySlagtap extends FoundryOutlet { diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java index 84adc2375..89435b761 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -7,7 +7,6 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemMold; import com.hbm.items.machine.ItemScraps; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 13f5e37dd..3aedd78bc 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -26,7 +26,6 @@ public class GeneralConfig { public static boolean enableRenderDistCheck = true; public static boolean enableReEval = true; public static boolean enableSilentCompStackErrors = true; - public static boolean enableChunkyNEIHandler = true; public static boolean enableSkyboxes = true; public static boolean enableImpactWorldProvider = true; public static boolean enableStatReRegistering = true; @@ -94,7 +93,6 @@ public class GeneralConfig { enableReEval = config.get(CATEGORY_GENERAL, "1.27_enableReEval", true, "Allows re-evaluating power networks on link remove instead of destroying and recreating").getBoolean(true); enableSilentCompStackErrors = config.get(CATEGORY_GENERAL, "1.28_enableSilentCompStackErrors", false, "Enabling this will disable log spam created by unregistered items in ComparableStack instances.").getBoolean(false); hintPos = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.29_hudOverlayPosition", "0: Top left\n1: Top right\n2: Center right\n3: Center Left", 0); - enableChunkyNEIHandler = config.get(CATEGORY_GENERAL, "1.30_enableChunkyNEIHandler", true, "If enabled, registers a NEI handler that will show the chosen item in a larger view.").getBoolean(true); enableSkyboxes = config.get(CATEGORY_GENERAL, "1.31_enableSkyboxes", true, "If enabled, will try to use NTM's custom skyboxes.").getBoolean(true); enableImpactWorldProvider = config.get(CATEGORY_GENERAL, "1.32_enableImpactWorldProvider", true, "If enabled, registers custom world provider which modifies lighting and sky colors for post impact effects.").getBoolean(true); enableStatReRegistering = config.get(CATEGORY_GENERAL, "1.33_enableStatReRegistering", true, "If enabled, will re-register item crafting/breaking/usage stats in order to fix a forge bug where modded items just won't show up.").getBoolean(true); diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index d8c9b2e9a..f3f3e51c9 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -51,6 +51,7 @@ public class WorldConfig { public static int bedrockRedstoneSpawn = 50; public static int bedrockRareEarthSpawn = 50; public static int bedrockBauxiteSpawn = 100; + public static int bedrockEmeraldSpawn = 50; public static int bedrockGlowstoneSpawn = 100; public static int bedrockPhosphorusSpawn = 50; public static int bedrockQuartzSpawn = 100; @@ -171,6 +172,7 @@ public class WorldConfig { bedrockNeodymiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B15_bedrockNeodymiumWeight", "Spawn weight for neodymium bedrock ore", 50); bedrockRareEarthSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B16_bedrockRareEarthWeight", "Spawn weight for rare earth bedrock ore", 50); bedrockBauxiteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B17_bedrockBauxiteWeight", "Spawn weight for bauxite bedrock ore", 100); + bedrockEmeraldSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B18_bedrockEmeraldWeight", "Spawn weight for emerald bedrock ore", 50); bedrockGlowstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN00_bedrockGlowstoneWeight", "Spawn weight for glowstone bedrock ore", 100); bedrockPhosphorusSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN01_bedrockPhosphorusWeight", "Spawn weight for phosphorus bedrock ore", 50); diff --git a/src/main/java/com/hbm/handler/nei/ChunkyHandler.java b/src/main/java/com/hbm/handler/nei/ChunkyHandler.java deleted file mode 100644 index 02ff171c1..000000000 --- a/src/main/java/com/hbm/handler/nei/ChunkyHandler.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.handler.nei; - -import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect; - -import org.lwjgl.opengl.GL11; - -import com.hbm.config.GeneralConfig; -import com.hbm.lib.RefStrings; - -import codechicken.nei.PositionedStack; -import codechicken.nei.guihook.GuiContainerManager; -import codechicken.nei.recipe.TemplateRecipeHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; - -public class ChunkyHandler extends TemplateRecipeHandler { - - public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { - - ItemStack stack; - - public RecipeSet(ItemStack stack) { - this.stack = stack.copy(); - this.stack.stackSize = 1; - } - - @Override - public PositionedStack getResult() { - return null; - } - } - - @Override - public String getRecipeName() { - return ""; - } - - @Override - public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/nei/gui_nei.png"; - } - - @Override - public void loadCraftingRecipes(ItemStack result) { - if(GeneralConfig.enableChunkyNEIHandler) - this.arecipes.add(new RecipeSet(result)); - } - - @Override - public void loadUsageRecipes(ItemStack ingredient) { - if(GeneralConfig.enableChunkyNEIHandler) - this.arecipes.add(new RecipeSet(ingredient)); - } - - @Override - public void drawExtras(int recipe) { - RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); - drawTexturedModalRect(145, 0, 20, 20, 20, 20); - GL11.glPushMatrix(); - GL11.glTranslated(83, 50, 0); - double scale = 5D; - GL11.glScaled(scale, scale, scale); - RenderHelper.enableGUIStandardItemLighting(); - GL11.glTranslated(-8, -8, 0); - GuiContainerManager.drawItem(0, 0, rec.stack); - GL11.glPopMatrix(); - RenderHelper.enableGUIStandardItemLighting(); - - FontRenderer font = Minecraft.getMinecraft().fontRenderer; - - int w = 83; - String top = "The same thing but in big"; - String bottom = "so you can really stare at it"; - font.drawString(top, w - font.getStringWidth(top) / 2, 100, 0x404040); - font.drawString(bottom, w - font.getStringWidth(bottom) / 2, 110, 0x404040); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java index f350f477d..11480d37d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java @@ -33,6 +33,7 @@ public class GUIMachineBattery extends GuiInfoContainer { this.ySize = 166; } + @SuppressWarnings("incomplete-switch") @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index e346213d3..c2ba22236 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -54,6 +54,7 @@ public class Mats { public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1); + public static final NTMMaterial MAT_DIAMOND = make( 1430, DIAMOND) .setConversion(MAT_CARBON, 1, 1); public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(PIPE, CASTPLATE, WELDEDPLATE); public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(DENSEWIRE, CASTPLATE); public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000); @@ -105,6 +106,7 @@ public class Mats { public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_EMERALD = make( 401, EMERALD) .setConversion(MAT_BERYLLIUM, 4, 3); public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java b/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java index 068ce2365..8e37a801f 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java @@ -20,95 +20,86 @@ import net.minecraft.util.Vec3; public class RenderRADBeast extends RenderLiving { - private static final ResourceLocation blazeTextures = new ResourceLocation(RefStrings.MODID, "textures/entity/radbeast.png"); - private static final ResourceLocation mask = new ResourceLocation(RefStrings.MODID, "textures/models/ModelM65Blaze.png"); - private int field_77068_a; + private static final ResourceLocation blazeTextures = new ResourceLocation(RefStrings.MODID, "textures/entity/radbeast.png"); + private static final ResourceLocation mask = new ResourceLocation(RefStrings.MODID, "textures/models/ModelM65Blaze.png"); + private int blazeModel; - public RenderRADBeast() - { - super(new ModelBlaze(), 0.5F); - this.field_77068_a = ((ModelBlaze)this.mainModel).func_78104_a(); - } - - public void doRender(EntityRADBeast entity, double x, double y, double z, float r0, float r1) - { - int i = ((ModelBlaze)this.mainModel).func_78104_a(); + public RenderRADBeast() { + super(new ModelBlaze(), 0.5F); + this.blazeModel = ((ModelBlaze) this.mainModel).func_78104_a(); + } - if (i != this.field_77068_a) - { - this.field_77068_a = i; - this.mainModel = new ModelBlaze(); - } - - Entity victim = entity.getUnfortunateSoul(); - - if(victim != null) { + public void doRender(EntityRADBeast entity, double x, double y, double z, float r0, float r1) { + int i = ((ModelBlaze) this.mainModel).func_78104_a(); - GL11.glPushMatrix(); - - GL11.glTranslated(x, y + 1.25, z); - - double sx = entity.posX; - double sy = entity.posY + 1.25; - double sz = entity.posZ; - - double tX = victim.posX; - double tY = victim.posY + victim.height / 2; - double tZ = victim.posZ; - - if(victim == Minecraft.getMinecraft().thePlayer) - tY -= 1.5; - - double length = Math.sqrt(Math.pow(tX - sx, 2) + Math.pow(tY - sy, 2) + Math.pow(tZ - sz, 2)); - BeamPronter.prontBeam(Vec3.createVectorHelper(tX - sx, tY - sy, tZ - sz), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x004000, 0x004000, (int) (entity.worldObj.getTotalWorldTime() % 1000 + 1), (int) (length * 5), 0.125F, 2, 0.03125F); - - GL11.glPopMatrix(); + if(i != this.blazeModel) { + this.blazeModel = i; + this.mainModel = new ModelBlaze(); } - super.doRender((EntityLiving)entity, x, y, z, r0, r1); - } - - protected ResourceLocation getEntityTexture(EntityRADBeast p_110775_1_) - { - return blazeTextures; - } - - public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) - { - this.doRender((EntityRADBeast)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - public void doRender(EntityLivingBase p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) - { - this.doRender((EntityRADBeast)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - protected ResourceLocation getEntityTexture(Entity p_110775_1_) - { - return this.getEntityTexture((EntityRADBeast)p_110775_1_); - } - - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) - { - this.doRender((EntityRADBeast)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } + Entity victim = entity.getUnfortunateSoul(); + + if(victim != null && entity.posY > 0.1) { + + GL11.glPushMatrix(); + + GL11.glTranslated(x, y + 1.25, z); + + double sx = entity.posX; + double sy = entity.posY + 1.25; + double sz = entity.posZ; + + double tX = victim.posX; + double tY = victim.posY + victim.height / 2; + double tZ = victim.posZ; + + if(victim == Minecraft.getMinecraft().thePlayer) + tY -= 1.5; + + double length = Math.sqrt(Math.pow(tX - sx, 2) + Math.pow(tY - sy, 2) + Math.pow(tZ - sz, 2)); + if(length < 200) BeamPronter.prontBeam(Vec3.createVectorHelper(tX - sx, tY - sy, tZ - sz), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x004000, 0x004000, (int) (entity.worldObj.getTotalWorldTime() % 1000 + 1), (int) (length * 5), 0.125F, 2, 0.03125F); + + GL11.glPopMatrix(); + } + + super.doRender((EntityLiving) entity, x, y, z, r0, r1); + } + + protected ResourceLocation getEntityTexture(EntityRADBeast p_110775_1_) { + return blazeTextures; + } + + public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + } + + public void doRender(EntityLivingBase p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + } + + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return this.getEntityTexture((EntityRADBeast) p_110775_1_); + } + + public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + } private ModelM65Blaze modelM65; - protected int shouldRenderPass(EntityLivingBase p_77032_1_, int p_77032_2_, float p_77032_3_) - { - - if(p_77032_2_ == 0) { - this.bindTexture(mask); - - if (this.modelM65 == null) { + protected int shouldRenderPass(EntityLivingBase p_77032_1_, int p_77032_2_, float p_77032_3_) { + + if(p_77032_2_ == 0) { + this.bindTexture(mask); + + if(this.modelM65 == null) { this.modelM65 = new ModelM65Blaze(); } - - this.setRenderPassModel(modelM65); - return 1; - } - - return super.shouldRenderPass(p_77032_1_, p_77032_2_, p_77032_3_); - } + + this.setRenderPassModel(modelM65); + return 1; + } + + return super.shouldRenderPass(p_77032_1_, p_77032_2_, p_77032_3_); + } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 8e60ce228..3266a973f 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -284,10 +284,17 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I public void launchFromDesignator() { - int tX = slots[1].stackTagCompound.getInteger("xCoord"); - int tZ = slots[1].stackTagCompound.getInteger("zCoord"); - - this.launchTo(tX, tZ); + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); + + if(designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) { + Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); + int tX = (int) Math.floor(coords.xCoord); + int tZ = (int) Math.floor(coords.zCoord); + + this.launchTo(tX, tZ); + } + } } public void launchTo(int tX, int tZ) { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 5c2846be8..3259452ce 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -279,10 +279,17 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public void launchFromDesignator() { - int tX = slots[1].stackTagCompound.getInteger("xCoord"); - int tZ = slots[1].stackTagCompound.getInteger("zCoord"); - - this.launchTo(tX, tZ); + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); + + if(designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) { + Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); + int tX = (int) Math.floor(coords.xCoord); + int tZ = (int) Math.floor(coords.zCoord); + + this.launchTo(tX, tZ); + } + } } public void launchTo(int tX, int tZ) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java index 5d8fa4656..ba297333f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java @@ -11,7 +11,6 @@ import api.hbm.block.ICrucibleAcceptor; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index fcfc1d074..4cd07246e 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -350,6 +350,8 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem super.readFromNBT(nbt); this.mode = nbt.getShort("mode"); + this.typeLoaded = nbt.getShort("type"); + this.ammo = nbt.getInteger("ammo"); } @Override @@ -357,6 +359,8 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem super.writeToNBT(nbt); nbt.setShort("mode", this.mode); + nbt.setInteger("type", this.typeLoaded); + nbt.setInteger("ammo", this.ammo); } @Override diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index fa162e6dd..2f4258234 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -46,6 +46,7 @@ public class BedrockOre { registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 8), 1, 0x202020), WorldConfig.bedrockCoalSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.emerald, 4), 1, 0x3FDD85), WorldConfig.bedrockEmeraldSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), 2, 0x8F9999, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockRareEarthSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE, 2),1, 0xEF7213), WorldConfig.bedrockBauxiteSpawn); From efa001ad28db1b5363c7a6e70e727a11a14fd6ce Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 17 Apr 2024 16:13:36 +0200 Subject: [PATCH 341/376] sound engine bullshittery --- README.md | 3 +++ changelog | 2 ++ src/main/java/com/hbm/config/GeneralConfig.java | 2 ++ src/main/java/com/hbm/main/ClientProxy.java | 7 +++++++ src/main/java/com/hbm/main/CraftingManager.java | 4 ++-- 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 087a2c6e4..f5aff7230 100644 --- a/README.md +++ b/README.md @@ -127,5 +127,8 @@ There is a common crash caused by Minecraft's render distance slider going out o ### Log spam caused by ComparableStack In some modpacks (exact mods needed to replicate this are unknown), it's possible that invalid registered items may cause problems for NEI handlers. To prevent crashes, the ComparableStack class used to represent stacks will default to a safe registered item, and print a log message. In certain situations, this may cause dozens of errors to be printed at once, potentially even lagging the game. If that happens, the log message (but not the error handling) can be disabled with the config option `1.28_enableSilentCompStackErrors`. +### Sound system limit +By default, the sound system only allows a limited amount of sounds to run at once (28 regular sounds and 4 streaming sounds), this causes issues when there's many machines running at once, since their looped sounds will constantly interrupt each other, causing them to immediately restart, which in some isolated cases has proven to cause massive lagspikes. To prevent this, NTM will increase the sound limit to 1000 regular sounds and 50 streaming sounds, this can be disabled with the config option `1.39_enableSoundExtension`. + # License This software is licensed under the GNU Lesser General Public License version 3. In short: This software is free, you may run the software freely, create modified versions, distribute this software and distribute modified versions, as long as the modified software too has a free software license (with an exception for linking to this software, as stated by the "Lesser" part of the LGPL, where this may not be required). You win this round, Stallman. The full license can be found in the `LICENSE` and `LICENSE.LESSER` files. diff --git a/changelog b/changelog index dba353fb3..3665cedcf 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,8 @@ * Diamonds are now a valid crucible material, turning into carbon at a 1:1 ratio (like graphite) * Emerald is also a valid crucible material now, turning into beryllium at a 4:3 ratio * Emeralds can now be mined as bedrock ores with a weight of 50 (half as common as iron, as common as redstone) +* Tritium lamps are now substantially cheaper +* Glyphid scouts can now spawn during the day when rampant glyphid spawning is enabled (artificial light however will still prevent them from spawning, keeping them out of bases) ## Fixed * Fixed rocket artillery turret not saving loaded ammo type/count diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 3aedd78bc..75c61aed1 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -34,6 +34,7 @@ public class GeneralConfig { public static boolean enableMOTD = true; public static boolean enableGuideBook = true; public static boolean enableSteamParticles = true; + public static boolean enableSoundExtension = true; public static int hintPos = 0; public static boolean enableExpensiveMode = false; @@ -101,6 +102,7 @@ public class GeneralConfig { enableMOTD = config.get(CATEGORY_GENERAL, "1.36_enableMOTD", true, "If enabled, shows the 'Loaded mod!' chat message as well as update notifications when joining a world").getBoolean(true); enableGuideBook = config.get(CATEGORY_GENERAL, "1.37_enableGuideBook", true, "If enabled, gives players the guide book when joining the world for the first time").getBoolean(true); enableSteamParticles = config.get(CATEGORY_GENERAL, "1.38_enableSteamParticles",true, "If disabled, auxiliary cooling towers and large cooling towers will not emit steam particles when in use.").getBoolean(true); + enableSoundExtension = config.get(CATEGORY_GENERAL, "1.39_enableSoundExtension",true, "If enabled, will change the limit for how many sounds can play at once.").getBoolean(true); enableExpensiveMode = config.get(CATEGORY_GENERAL, "1.99_enableExpensiveMode", false, "It does what the name implies.").getBoolean(false); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 6b984dd85..ad0831044 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -33,6 +33,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.common.MinecraftForge; +import paulscode.sound.SoundSystemConfig; import java.awt.Color; import java.awt.Desktop; @@ -55,6 +56,7 @@ import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; +import com.hbm.config.GeneralConfig; import com.hbm.entity.cart.*; import com.hbm.entity.effect.*; import com.hbm.entity.grenade.*; @@ -147,6 +149,11 @@ public class ClientProxy extends ServerProxy { registerBlockRenderer(); Jars.initJars(); + + if(GeneralConfig.enableSoundExtension) { + SoundSystemConfig.setNumberNormalChannels(1000); + SoundSystemConfig.setNumberStreamingChannels(50); + } } private void registerClientEventHandler(Object handler) { diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index a3896a2fe..cb9013f34 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -453,8 +453,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_lamp_off), 1), new Object[] { "FFF", "FBF", "FFF", 'F', Blocks.iron_bars, 'B', Blocks.redstone_lamp }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_sand), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.sandstone }); - addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_green_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P', P_RED.dust(), 'T', ModItems.cell_tritium, '1', "dustSulfur", '2', CU.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_blue_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P',P_RED.dust(), 'T', ModItems.cell_tritium, '1', AL.dust(), '2', ST.dust() }); + addShapelessAuto(new ItemStack(ModBlocks.lamp_tritium_green_off, 1), new Object[] { KEY_ANYGLASS, P_RED.dust(), Fluids.TRITIUM.getDict(1_000), S.dust() }); + addShapelessAuto(new ItemStack(ModBlocks.lamp_tritium_blue_off, 1), new Object[] { KEY_ANYGLASS, P_RED.dust(), Fluids.TRITIUM.getDict(1_000), AL.dust() }); addRecipeAuto(new ItemStack(ModBlocks.lantern, 1), new Object[] { "PGP", " S ", " S ", 'P', KEY_ANYPANE, 'G', Items.glowstone_dust, 'S', ModBlocks.steel_beam }); addRecipeAuto(new ItemStack(ModBlocks.spotlight_incandescent, 8), new Object[] { " G ", " T ", " I ", 'G', KEY_ANYPANE, 'T', ModItems.wire_tungsten, 'I', Items.iron_ingot }); addRecipeAuto(new ItemStack(ModBlocks.spotlight_fluoro, 8), new Object[] { " G ", " M ", " A ", 'G', KEY_ANYPANE, 'M', ModItems.ingot_mercury, 'A', ModItems.plate_aluminium }); From 24001a0ae8ca8235e273e5052373c0bf4397b6fe Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 18 Apr 2024 14:26:20 +1000 Subject: [PATCH 342/376] Replace DisplayLists with VBOs! Gotta fix the door rendering though, elided for now --- .../java/com/hbm/main/ResourceManager.java | 162 +++++++++--------- .../hbm/render/loader/HFRWavefrontObject.java | 4 + .../hbm/render/loader/WavefrontObjVBO.java | 150 ++++++++++++++++ .../render/tileentity/RenderDoorGeneric.java | 44 ++--- .../render/tileentity/RenderSnowglobe.java | 2 +- .../com/hbm/render/util/HorsePronter.java | 2 +- .../java/com/hbm/tileentity/DoorDecl.java | 6 +- 7 files changed, 264 insertions(+), 106 deletions(-) create mode 100644 src/main/java/com/hbm/render/loader/WavefrontObjVBO.java diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 2e4d78e50..b97cbd31d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -25,35 +25,35 @@ public class ResourceManager { ////Obj TEs //Turrets - public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj")).asDisplayList(); - public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj")).asDisplayList(); - public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj")).asDisplayList(); - public static final IModelCustom turret_richard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_richard.obj")).asDisplayList(); - public static final IModelCustom turret_howard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard.obj")).asDisplayList(); - public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj")).asDisplayList(); - public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj")).asDisplayList(); - public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj")).asDisplayList(); - public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")).asDisplayList(); - public static final IModelCustom turret_himars = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_himars.obj")).asDisplayList(); - public static final IModelCustom turret_sentry = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_sentry.obj")).asDisplayList(); + public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj")).asVBO(); + public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj")).asVBO(); + public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj")).asVBO(); + public static final IModelCustom turret_richard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_richard.obj")).asVBO(); + public static final IModelCustom turret_howard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard.obj")).asVBO(); + public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj")).asVBO(); + public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj")).asVBO(); + public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj")).asVBO(); + public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")).asVBO(); + public static final IModelCustom turret_himars = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_himars.obj")).asVBO(); + public static final IModelCustom turret_sentry = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_sentry.obj")).asVBO(); - public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")).asDisplayList(); + public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")).asVBO(); //Heaters - public static final IModelCustom heater_firebox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj"), false).asDisplayList(); - public static final IModelCustom heater_oven = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj"), false).asDisplayList(); - public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj")).asDisplayList(); - public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false).asDisplayList(); - public static final IModelCustom heater_heatex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heatex.obj")).asDisplayList(); + public static final IModelCustom heater_firebox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj"), false).asVBO(); + public static final IModelCustom heater_oven = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj"), false).asVBO(); + public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj")).asVBO(); + public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false).asVBO(); + public static final IModelCustom heater_heatex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heatex.obj")).asVBO(); //Heat Engines public static final IModelCustom stirling = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/stirling.obj")); public static final IModelCustom sawmill = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/sawmill.obj")); public static final IModelCustom crucible_heat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/crucible.obj")); - public static final IModelCustom boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler.obj")).asDisplayList(); - public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj")).asDisplayList(); - public static final IModelCustom boiler_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/industrial_boiler.obj")).asDisplayList(); - public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")).asDisplayList(); + public static final IModelCustom boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler.obj")).asVBO(); + public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj")).asVBO(); + public static final IModelCustom boiler_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/industrial_boiler.obj")).asVBO(); + public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")).asVBO(); //Caster o' Strands public static final IModelCustom strand_caster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/strand_caster.obj")); @@ -70,53 +70,53 @@ public class ResourceManager { public static final IModelCustom mine_fat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_fat.obj")); //Oil Pumps - public static final IModelCustom derrick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/derrick.obj")).asDisplayList(); - public static final IModelCustom pumpjack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pumpjack.obj")).asDisplayList(); - public static final IModelCustom fracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fracking_tower.obj")).asDisplayList(); + public static final IModelCustom derrick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/derrick.obj")).asVBO(); + public static final IModelCustom pumpjack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pumpjack.obj")).asVBO(); + public static final IModelCustom fracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fracking_tower.obj")).asVBO(); //Refinery - public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj")).asDisplayList(); - public static final IModelCustom vacuum_distill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/vacuum_distill.obj")).asDisplayList(); - public static final IModelCustom refinery_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery_exploded.obj")).asDisplayList(); + public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj")).asVBO(); + public static final IModelCustom vacuum_distill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/vacuum_distill.obj")).asVBO(); + public static final IModelCustom refinery_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery_exploded.obj")).asVBO(); public static final IModelCustom fraction_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_tower.obj")); public static final IModelCustom fraction_spacer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_spacer.obj")); - public static final IModelCustom cracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cracking_tower.obj")).asDisplayList(); - public static final IModelCustom catalytic_reformer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/catalytic_reformer.obj")).asDisplayList(); - public static final IModelCustom hydrotreater = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hydrotreater.obj")).asDisplayList(); - public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj")).asDisplayList(); - public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")).asDisplayList(); - public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj")).asDisplayList(); - public static final IModelCustom coker = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/coker.obj")).asDisplayList(); + public static final IModelCustom cracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cracking_tower.obj")).asVBO(); + public static final IModelCustom catalytic_reformer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/catalytic_reformer.obj")).asVBO(); + public static final IModelCustom hydrotreater = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hydrotreater.obj")).asVBO(); + public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj")).asVBO(); + public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")).asVBO(); + public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj")).asVBO(); + public static final IModelCustom coker = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/coker.obj")).asVBO(); //Flare Stack - public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")).asDisplayList(); - public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj")).asDisplayList(); - public static final IModelCustom chimney_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_industrial.obj")).asDisplayList(); + public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")).asVBO(); + public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj")).asVBO(); + public static final IModelCustom chimney_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_industrial.obj")).asVBO(); //Tank - public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")).asDisplayList(); - public static final IModelCustom fluidtank_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank_exploded.obj")).asDisplayList(); - public static final IModelCustom bat9000 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/bat9000.obj")).asDisplayList(); - public static final IModelCustom orbus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/orbus.obj")).asDisplayList(); + public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")).asVBO(); + public static final IModelCustom fluidtank_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank_exploded.obj")).asVBO(); + public static final IModelCustom bat9000 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/bat9000.obj")).asVBO(); + public static final IModelCustom orbus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/orbus.obj")).asVBO(); //Turbofan - public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj")).asDisplayList(); + public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj")).asVBO(); //Gas Turbine - public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj")).asDisplayList(); + public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj")).asVBO(); //Pumps - public static final IModelCustom pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pump.obj")).asDisplayList(); + public static final IModelCustom pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pump.obj")).asVBO(); //Large Turbine - public static final IModelCustom steam_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/steam_engine.obj")).asDisplayList(); + public static final IModelCustom steam_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/steam_engine.obj")).asVBO(); public static final IModelCustom turbine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbine.obj")); - public static final IModelCustom chungus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chungus.obj")).asDisplayList(); + public static final IModelCustom chungus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chungus.obj")).asVBO(); //Cooling Tower - public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")).asDisplayList(); - public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")).asDisplayList(); - public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")).asDisplayList(); + public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")).asVBO(); + public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")).asVBO(); + public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")).asVBO(); //Wood burner public static final IModelCustom wood_burner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/wood_burner.obj")); @@ -131,7 +131,7 @@ public class ResourceManager { //Combustion Engine public static final IModelCustom dieselgen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/dieselgen.obj")); - public static final IModelCustom combustion_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/combustion_engine.obj")).asDisplayList(); + public static final IModelCustom combustion_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/combustion_engine.obj")).asVBO(); //Press public static final IModelCustom press_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/press_body.obj")); @@ -179,7 +179,7 @@ public class ResourceManager { //Mining Drill public static final IModelCustom drill_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_main.obj")); public static final IModelCustom drill_bolt = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_bolt.obj")); - public static final IModelCustom mining_drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_drill.obj")).asDisplayList(); + public static final IModelCustom mining_drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_drill.obj")).asVBO(); //Laser Miner public static final IModelCustom mining_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_laser.obj")); @@ -263,11 +263,11 @@ public class ResourceManager { public static final IModelCustom shredder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/shredder.obj")); //Bombs - public static final IModelCustom bomb_gadget = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/gadget.obj")).asDisplayList(); + public static final IModelCustom bomb_gadget = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/gadget.obj")).asVBO(); public static final IModelCustom bomb_boy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/LilBoy1.obj")); - public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/FatMan.obj")).asDisplayList(); + public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/FatMan.obj")).asVBO(); public static final IModelCustom bomb_mike = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ivymike.obj")); - public static final IModelCustom bomb_tsar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/tsar.obj")).asDisplayList(); + public static final IModelCustom bomb_tsar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/tsar.obj")).asVBO(); public static final IModelCustom bomb_prototype = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Prototype.obj")); public static final IModelCustom bomb_fleija = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Fleija.obj")); public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")); @@ -327,7 +327,7 @@ public class ResourceManager { //Doors public static AnimatedModel transition_seal = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"), true); public static Animation transition_seal_anim = ColladaLoader.loadAnim(24040, new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae")); - public static final WavefrontObjDisplayList fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asDisplayList(); + public static final IModelCustom fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asVBO(); //Secure Access Door public static final ResourceLocation secure_access_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/secure_access_door.png"); @@ -846,17 +846,17 @@ public class ResourceManager { public static final IModelCustom nightmare_dark = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/nightmare_dark.obj")); public static final IModelCustom glass_cannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/glass_cannon.obj")); public static final IModelCustom bio_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/bio_revolver.obj")); - public static final IModelCustom chemthrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chemthrower.obj")).asDisplayList(); + public static final IModelCustom chemthrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chemthrower.obj")).asVBO(); public static final IModelCustom novac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/novac.obj")); - public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asDisplayList(); //large fella should be a display list - public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_sniper.obj")).asDisplayList(); + public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asVBO(); //large fella should be a display list + public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_sniper.obj")).asVBO(); public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")); - public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")).asDisplayList(); - public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asDisplayList(); - public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon.obj")).asDisplayList(); - public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); - public static final IModelCustom congolake = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/congolake.obj")).asDisplayList(); - public static final IModelCustom lilmac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lilmac.obj")).asDisplayList(); + public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")).asVBO(); + public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asVBO(); + public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon.obj")).asVBO(); + public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asVBO(); + public static final IModelCustom congolake = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/congolake.obj")).asVBO(); + public static final IModelCustom lilmac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lilmac.obj")).asVBO(); public static final HashMap python_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/python.json")); public static final HashMap cursed_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/cursed.json")); @@ -1082,30 +1082,30 @@ public class ResourceManager { public static final IModelCustom b29 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/b29.obj")); //Missiles - public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asDisplayList(); - public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asDisplayList(); - public static final IModelCustom missileStealth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_stealth.obj"), false).asDisplayList(); - public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")).asDisplayList(); - public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")).asDisplayList(); - public static final IModelCustom missileNuclear = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_atlas.obj")).asDisplayList(); - public static final IModelCustom missileMicro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_micro.obj")).asDisplayList(); + public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asVBO(); + public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asVBO(); + public static final IModelCustom missileStealth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_stealth.obj"), false).asVBO(); + public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")).asVBO(); + public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")).asVBO(); + public static final IModelCustom missileNuclear = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_atlas.obj")).asVBO(); + public static final IModelCustom missileMicro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_micro.obj")).asVBO(); public static final IModelCustom missileShuttle = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileShuttle.obj")); public static final IModelCustom missileCarrier = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileCarrier.obj")); public static final IModelCustom missileBooster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileBooster.obj")); public static final IModelCustom minerRocket = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/minerRocket.obj")); - public static final IModelCustom soyuz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz.obj")).asDisplayList(); - public static final IModelCustom soyuz_lander = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_lander.obj")).asDisplayList(); - public static final IModelCustom soyuz_module = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_module.obj")).asDisplayList(); - public static final IModelCustom soyuz_launcher_legs = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_legs.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_table = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_table.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_tower_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower_base.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_support_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support_base.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_support = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support.obj"), false).asDisplayList(); + public static final IModelCustom soyuz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz.obj")).asVBO(); + public static final IModelCustom soyuz_lander = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_lander.obj")).asVBO(); + public static final IModelCustom soyuz_module = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_module.obj")).asVBO(); + public static final IModelCustom soyuz_launcher_legs = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_legs.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_table = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_table.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_tower_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower_base.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_support_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support_base.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_support = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support.obj"), false).asVBO(); //Missile Parts public static final IModelCustom missile_pad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/launch_pad_silo.obj")); - public static final IModelCustom missile_erector = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/launch_pad_erector.obj")).asDisplayList(); + public static final IModelCustom missile_erector = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/launch_pad_erector.obj")).asVBO(); public static final IModelCustom missile_assembly = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_assembly.obj")); public static final IModelCustom strut = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/strut.obj")); public static final IModelCustom compact_launcher = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/compact_launcher.obj")); diff --git a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java index 3b27a781c..ddaae7ff7 100644 --- a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java +++ b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java @@ -482,6 +482,10 @@ public class HFRWavefrontObject implements IModelCustom { public String getType() { return "obj"; } + + public WavefrontObjVBO asVBO() { + return new WavefrontObjVBO(this); + } public WavefrontObjDisplayList asDisplayList() { return new WavefrontObjDisplayList(this); diff --git a/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java b/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java new file mode 100644 index 000000000..b0d4302d3 --- /dev/null +++ b/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java @@ -0,0 +1,150 @@ +package com.hbm.render.loader; + +import java.nio.FloatBuffer; +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.*; + +import net.minecraftforge.client.model.IModelCustom; +import net.minecraftforge.client.model.obj.TextureCoordinate; +import net.minecraftforge.client.model.obj.Vertex; + +public class WavefrontObjVBO implements IModelCustom { + + class VBOBufferData { + + String name; + int vertices = 0; + int vertexHandle; + int uvHandle; + int normalHandle; + + } + + List groups = new ArrayList(); + + static int VERTEX_SIZE = 3; + static int UV_SIZE = 3; + + public WavefrontObjVBO(HFRWavefrontObject obj) { + for(S_GroupObject g : obj.groupObjects) { + VBOBufferData data = new VBOBufferData(); + data.name = g.name; + + FloatBuffer vertexData = BufferUtils.createFloatBuffer(g.faces.size() * 3 * VERTEX_SIZE); + FloatBuffer uvData = BufferUtils.createFloatBuffer(g.faces.size() * 3 * UV_SIZE); + FloatBuffer normalData = BufferUtils.createFloatBuffer(g.faces.size() * 3 * VERTEX_SIZE); + + for(S_Face face : g.faces) { + for(int i = 0; i < face.vertices.length; i++) { + Vertex vert = face.vertices[i]; + TextureCoordinate tex = new TextureCoordinate(0, 0); + Vertex normal = face.vertexNormals[i]; + + if(face.textureCoordinates != null && face.textureCoordinates.length > 0) { + tex = face.textureCoordinates[i]; + } + + data.vertices++; + vertexData.put(new float[] { vert.x, vert.y, vert.z }); + uvData.put(new float[] { tex.u, tex.v, tex.w }); + normalData.put(new float[] { normal.x, normal.y, normal.z }); + } + } + vertexData.flip(); + uvData.flip(); + normalData.flip(); + + data.vertexHandle = GL15.glGenBuffers(); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.vertexHandle); + GL15.glBufferData(GL15.GL_ARRAY_BUFFER, vertexData, GL15.GL_STATIC_DRAW); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); + + data.uvHandle = GL15.glGenBuffers(); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.uvHandle); + GL15.glBufferData(GL15.GL_ARRAY_BUFFER, uvData, GL15.GL_STATIC_DRAW); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); + + data.normalHandle = GL15.glGenBuffers(); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.normalHandle); + GL15.glBufferData(GL15.GL_ARRAY_BUFFER, normalData, GL15.GL_STATIC_DRAW); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); + + groups.add(data); + } + } + + @Override + public String getType() { + return "obj_vbo"; + } + + private void renderVBO(VBOBufferData data) { + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.vertexHandle); + GL11.glVertexPointer(VERTEX_SIZE, GL11.GL_FLOAT, 0, 0l); + + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.uvHandle); + GL11.glTexCoordPointer(UV_SIZE, GL11.GL_FLOAT, 0, 0l); + + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.normalHandle); + GL11.glNormalPointer(GL11.GL_FLOAT, 0, 0l); + + GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY); + GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY); + GL11.glEnableClientState(GL11.GL_NORMAL_ARRAY); + + GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, data.vertices); + + GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY); + GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY); + GL11.glDisableClientState(GL11.GL_NORMAL_ARRAY); + + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); + } + + @Override + public void renderAll() { + for(VBOBufferData data : groups) { + renderVBO(data); + } + } + + @Override + public void renderOnly(String... groupNames) { + for(VBOBufferData data : groups) { + for(String name : groupNames) { + if(data.name.equalsIgnoreCase(name)) { + renderVBO(data); + } + } + } + } + + @Override + public void renderPart(String partName) { + for(VBOBufferData data : groups) { + if(data.name.equalsIgnoreCase(partName)) { + renderVBO(data); + } + } + } + + @Override + public void renderAllExcept(String... excludedGroupNames) { + for(VBOBufferData data : groups) { + boolean skip = false; + for(String name : excludedGroupNames) { + if(data.name.equalsIgnoreCase(name)) { + skip = true; + break; + } + } + if(!skip) { + renderVBO(data); + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java b/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java index 080be2114..c72b78c24 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java @@ -19,6 +19,7 @@ import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; +import net.minecraftforge.client.model.IModelCustom; public class RenderDoorGeneric extends TileEntitySpecialRenderer { @@ -75,28 +76,29 @@ public class RenderDoorGeneric extends TileEntitySpecialRenderer { animModel.controller.setAnim(w); animModel.renderAnimated(System.currentTimeMillis()); } else { - WavefrontObjDisplayList model = door.getModel(); + // IModelCustom model = door.getModel(); - long ms = System.currentTimeMillis()-te.animStartTime; - float openTicks = MathHelper.clamp_float(te.state == 2 || te.state == 0 ? door.timeToOpen()*50-ms : ms, 0, door.timeToOpen()*50)*0.02F; - for(Pair p : model.nameToCallList){ - if(!door.doesRender(p.getLeft(), false)) - continue; - GL11.glPushMatrix(); - bindTexture(door.getTextureForPart(te.getSkinIndex(), p.getLeft())); - doPartTransform(door, p.getLeft(), openTicks, false); - GL11.glCallList(p.getRight()); - for(String name : door.getChildren(p.getLeft())){ - if(!door.doesRender(name, true)) - continue; - GL11.glPushMatrix(); - bindTexture(door.getTextureForPart(te.getSkinIndex(), name)); - doPartTransform(door, name, openTicks, true); - model.renderPart(name); - GL11.glPopMatrix(); - } - GL11.glPopMatrix(); - } + // long ms = System.currentTimeMillis()-te.animStartTime; + // float openTicks = MathHelper.clamp_float(te.state == 2 || te.state == 0 ? door.timeToOpen()*50-ms : ms, 0, door.timeToOpen()*50)*0.02F; + + // for(Pair p : model.nameToCallList){ + // if(!door.doesRender(p.getLeft(), false)) + // continue; + // GL11.glPushMatrix(); + // bindTexture(door.getTextureForPart(te.getSkinIndex(), p.getLeft())); + // doPartTransform(door, p.getLeft(), openTicks, false); + // GL11.glCallList(p.getRight()); + // for(String name : door.getChildren(p.getLeft())){ + // if(!door.doesRender(name, true)) + // continue; + // GL11.glPushMatrix(); + // bindTexture(door.getTextureForPart(te.getSkinIndex(), name)); + // doPartTransform(door, name, openTicks, true); + // model.renderPart(name); + // GL11.glPopMatrix(); + // } + // GL11.glPopMatrix(); + // } } for(int i = 0; i < clip.length; i ++){ diff --git a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java index 76f23bc5a..5a87ce681 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java @@ -24,7 +24,7 @@ import net.minecraftforge.client.model.IModelCustom; public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemRendererProvider { - public static final IModelCustom snowglobe = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/snowglobe.obj"), false).asDisplayList(); + public static final IModelCustom snowglobe = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/snowglobe.obj"), false).asVBO(); public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe.png"); public static final ResourceLocation glass = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_glass.png"); public static final ResourceLocation features = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_features.png"); diff --git a/src/main/java/com/hbm/render/util/HorsePronter.java b/src/main/java/com/hbm/render/util/HorsePronter.java index 6cba0146c..bec1e9ef6 100644 --- a/src/main/java/com/hbm/render/util/HorsePronter.java +++ b/src/main/java/com/hbm/render/util/HorsePronter.java @@ -11,7 +11,7 @@ import net.minecraftforge.client.model.IModelCustom; public class HorsePronter { - public static final IModelCustom horse = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/horse.obj"), false).asDisplayList(); + public static final IModelCustom horse = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/horse.obj"), false).asVBO(); public static final ResourceLocation tex_demohorse = new ResourceLocation(RefStrings.MODID, "textures/models/horse/horse_demo.png"); diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index 5844fcded..c8471327c 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -10,6 +10,8 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.IModelCustom; + import org.lwjgl.opengl.GL11; public abstract class DoorDecl { @@ -179,7 +181,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { + public IModelCustom getModel() { return ResourceManager.fire_door; } }; @@ -1110,7 +1112,7 @@ public abstract class DoorDecl { public abstract ResourceLocation getTextureForPart(int skinIndex, String partName); @SideOnly(Side.CLIENT) - public abstract WavefrontObjDisplayList getModel(); + public abstract IModelCustom getModel(); @SideOnly(Side.CLIENT) public AnimatedModel getAnimatedModel() { From b9fa9464406a6f4c8a7daffdf5566e3f47cee303 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 18 Apr 2024 16:05:22 +1000 Subject: [PATCH 343/376] Fix connected texture blocks not rendering --- .../hbm/render/block/ct/RenderBlocksCT.java | 53 +++++++++---------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java b/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java index bbd2655ee..498e81e3a 100644 --- a/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java +++ b/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java @@ -26,11 +26,8 @@ public class RenderBlocksCT extends RenderBlocks { VertInfo bc; VertInfo br; - Tessellator tess; - public RenderBlocksCT() { super(); - this.tess = Tessellator.instance; } public void prepWorld(IBlockAccess acc) { @@ -240,13 +237,13 @@ public class RenderBlocksCT extends RenderBlocks { boolean debugColor = false; /// ORDER: ROTATIONAL /// - if(debugColor) tess.setColorOpaque_F(1F, 1F, 0F); + if(debugColor) Tessellator.instance.setColorOpaque_F(1F, 1F, 0F); drawVert(ftr, icon.getMaxU(), icon.getMinV(), ntr); - if(debugColor) tess.setColorOpaque_F(1F, 0F, 0F); + if(debugColor) Tessellator.instance.setColorOpaque_F(1F, 0F, 0F); drawVert(ftl, icon.getMinU(), icon.getMinV(), ntl); - if(debugColor) tess.setColorOpaque_F(0F, 0F, 1F); + if(debugColor) Tessellator.instance.setColorOpaque_F(0F, 0F, 1F); drawVert(fbl, icon.getMinU(), icon.getMaxV(), nbl); - if(debugColor) tess.setColorOpaque_F(0F, 1F, 0F); + if(debugColor) Tessellator.instance.setColorOpaque_F(0F, 1F, 0F); drawVert(fbr, icon.getMaxU(), icon.getMaxV(), nbr); } @@ -257,11 +254,11 @@ public class RenderBlocksCT extends RenderBlocks { private void drawVert(double x, double y, double z, double u, double v, VertInfo info) { if(this.enableAO) { - tess.setColorOpaque_F(info.red, info.green, info.blue); - tess.setBrightness(info.brightness); + Tessellator.instance.setColorOpaque_F(info.red, info.green, info.blue); + Tessellator.instance.setBrightness(info.brightness); } - tess.addVertexWithUV(x, y, z, u, v); + Tessellator.instance.addVertexWithUV(x, y, z, u, v); } private double[] avgCoords(double[] first, double[] second) { @@ -315,32 +312,32 @@ public class RenderBlocksCT extends RenderBlocks { GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tess.startDrawingQuads(); - tess.setNormal(0.0F, -1.0F, 0.0F); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F); super.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 0, meta)); - tess.draw(); - tess.startDrawingQuads(); - tess.setNormal(0.0F, 1.0F, 0.0F); + Tessellator.instance.draw(); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F); super.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 1, meta)); - tess.draw(); + Tessellator.instance.draw(); - tess.startDrawingQuads(); - tess.setNormal(0.0F, 0.0F, -1.0F); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F); super.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 2, meta)); - tess.draw(); - tess.startDrawingQuads(); - tess.setNormal(0.0F, 0.0F, 1.0F); + Tessellator.instance.draw(); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F); super.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 3, meta)); - tess.draw(); + Tessellator.instance.draw(); - tess.startDrawingQuads(); - tess.setNormal(-1.0F, 0.0F, 0.0F); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F); super.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 4, meta)); - tess.draw(); - tess.startDrawingQuads(); - tess.setNormal(1.0F, 0.0F, 0.0F); + Tessellator.instance.draw(); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F); super.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 5, meta)); - tess.draw(); + Tessellator.instance.draw(); GL11.glTranslatef(0.5F, 0.5F, 0.5F); } From 3c760ba95d9ed28de5d53ef6ffbeec6158ad354f Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 18 Apr 2024 17:14:04 +1000 Subject: [PATCH 344/376] Fix up door rendering, moving it to a more generic interface --- .../java/com/hbm/main/ResourceManager.java | 3 +- .../hbm/render/loader/HFRWavefrontObject.java | 13 ++++- .../hbm/render/loader/IModelCustomNamed.java | 13 +++++ .../loader/WavefrontObjDisplayList.java | 12 ++++- .../hbm/render/loader/WavefrontObjVBO.java | 16 ++++-- .../render/tileentity/RenderDoorGeneric.java | 53 ++++++++++--------- .../java/com/hbm/tileentity/DoorDecl.java | 29 +++++----- 7 files changed, 91 insertions(+), 48 deletions(-) create mode 100644 src/main/java/com/hbm/render/loader/IModelCustomNamed.java diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index b97cbd31d..027f33180 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -9,6 +9,7 @@ import com.hbm.lib.RefStrings; import com.hbm.render.anim.AnimationLoader; import com.hbm.render.anim.BusAnimation; import com.hbm.render.loader.HFRWavefrontObject; +import com.hbm.render.loader.IModelCustomNamed; import com.hbm.render.loader.WavefrontObjDisplayList; import net.minecraft.util.ResourceLocation; @@ -327,7 +328,7 @@ public class ResourceManager { //Doors public static AnimatedModel transition_seal = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"), true); public static Animation transition_seal_anim = ColladaLoader.loadAnim(24040, new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae")); - public static final IModelCustom fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asVBO(); + public static final IModelCustomNamed fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asVBO(); //Secure Access Door public static final ResourceLocation secure_access_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/secure_access_door.png"); diff --git a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java index ddaae7ff7..a3e443e99 100644 --- a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java +++ b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -16,12 +17,11 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.IResource; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.IModelCustom; import net.minecraftforge.client.model.ModelFormatException; import net.minecraftforge.client.model.obj.TextureCoordinate; import net.minecraftforge.client.model.obj.Vertex; -public class HFRWavefrontObject implements IModelCustom { +public class HFRWavefrontObject implements IModelCustomNamed { private static Pattern vertexPattern = Pattern.compile("(v( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *\\n)|(v( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *$)"); private static Pattern vertexNormalPattern = Pattern.compile("(vn( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *\\n)|(vn( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *$)"); private static Pattern textureCoordinatePattern = Pattern.compile("(vt( (\\-){0,1}\\d+\\.\\d+){2,3} *\\n)|(vt( (\\-){0,1}\\d+(\\.\\d+)?){2,3} *$)"); @@ -483,6 +483,15 @@ public class HFRWavefrontObject implements IModelCustom { return "obj"; } + @Override + public List getPartNames() { + List names = new ArrayList(); + for(S_GroupObject data : groupObjects) { + names.add(data.name); + } + return names; + } + public WavefrontObjVBO asVBO() { return new WavefrontObjVBO(this); } diff --git a/src/main/java/com/hbm/render/loader/IModelCustomNamed.java b/src/main/java/com/hbm/render/loader/IModelCustomNamed.java new file mode 100644 index 000000000..a12e1bdb4 --- /dev/null +++ b/src/main/java/com/hbm/render/loader/IModelCustomNamed.java @@ -0,0 +1,13 @@ +package com.hbm.render.loader; + +import java.util.List; + +import net.minecraftforge.client.model.IModelCustom; + +public interface IModelCustomNamed extends IModelCustom { + + // A little messy, but this is the cleanest refactor, and can be useful in the future + + public List getPartNames(); + +} diff --git a/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java b/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java index 99eef4360..b797be151 100644 --- a/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java +++ b/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java @@ -7,11 +7,10 @@ import org.apache.commons.lang3.tuple.Pair; import org.lwjgl.opengl.GL11; import net.minecraft.client.renderer.Tessellator; -import net.minecraftforge.client.model.IModelCustom; import net.minecraftforge.client.model.obj.GroupObject; import net.minecraftforge.client.model.obj.WavefrontObject; -public class WavefrontObjDisplayList implements IModelCustom { +public class WavefrontObjDisplayList implements IModelCustomNamed { public List> nameToCallList = new ArrayList<>(); @@ -95,4 +94,13 @@ public class WavefrontObjDisplayList implements IModelCustom { } } } + + @Override + public List getPartNames() { + List names = new ArrayList(); + for(Pair data : nameToCallList) { + names.add(data.getLeft()); + } + return names; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java b/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java index b0d4302d3..f852ba4ee 100644 --- a/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java +++ b/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java @@ -7,13 +7,12 @@ import java.util.List; import org.lwjgl.BufferUtils; import org.lwjgl.opengl.*; -import net.minecraftforge.client.model.IModelCustom; import net.minecraftforge.client.model.obj.TextureCoordinate; import net.minecraftforge.client.model.obj.Vertex; -public class WavefrontObjVBO implements IModelCustom { +public class WavefrontObjVBO implements IModelCustomNamed { - class VBOBufferData { + public class VBOBufferData { String name; int vertices = 0; @@ -23,7 +22,7 @@ public class WavefrontObjVBO implements IModelCustom { } - List groups = new ArrayList(); + public List groups = new ArrayList(); static int VERTEX_SIZE = 3; static int UV_SIZE = 3; @@ -147,4 +146,13 @@ public class WavefrontObjVBO implements IModelCustom { } } + @Override + public List getPartNames() { + List names = new ArrayList(); + for(VBOBufferData data : groups) { + names.add(data.name); + } + return names; + } + } \ No newline at end of file diff --git a/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java b/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java index c72b78c24..33bdb32d9 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java @@ -2,7 +2,6 @@ package com.hbm.render.tileentity; import java.nio.DoubleBuffer; -import org.apache.commons.lang3.tuple.Pair; import org.lwjgl.opengl.GL11; import com.hbm.animloader.AnimatedModel; @@ -11,7 +10,7 @@ import com.hbm.animloader.AnimationWrapper; import com.hbm.animloader.AnimationWrapper.EndResult; import com.hbm.animloader.AnimationWrapper.EndType; import com.hbm.blocks.BlockDummyable; -import com.hbm.render.loader.WavefrontObjDisplayList; +import com.hbm.render.loader.IModelCustomNamed; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.TileEntityDoorGeneric; @@ -19,7 +18,6 @@ import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; -import net.minecraftforge.client.model.IModelCustom; public class RenderDoorGeneric extends TileEntitySpecialRenderer { @@ -76,29 +74,36 @@ public class RenderDoorGeneric extends TileEntitySpecialRenderer { animModel.controller.setAnim(w); animModel.renderAnimated(System.currentTimeMillis()); } else { - // IModelCustom model = door.getModel(); + IModelCustomNamed model = door.getModel(); - // long ms = System.currentTimeMillis()-te.animStartTime; - // float openTicks = MathHelper.clamp_float(te.state == 2 || te.state == 0 ? door.timeToOpen()*50-ms : ms, 0, door.timeToOpen()*50)*0.02F; + long ms = System.currentTimeMillis()-te.animStartTime; + float openTicks = MathHelper.clamp_float(te.state == 2 || te.state == 0 ? door.timeToOpen()*50-ms : ms, 0, door.timeToOpen()*50)*0.02F; - // for(Pair p : model.nameToCallList){ - // if(!door.doesRender(p.getLeft(), false)) - // continue; - // GL11.glPushMatrix(); - // bindTexture(door.getTextureForPart(te.getSkinIndex(), p.getLeft())); - // doPartTransform(door, p.getLeft(), openTicks, false); - // GL11.glCallList(p.getRight()); - // for(String name : door.getChildren(p.getLeft())){ - // if(!door.doesRender(name, true)) - // continue; - // GL11.glPushMatrix(); - // bindTexture(door.getTextureForPart(te.getSkinIndex(), name)); - // doPartTransform(door, name, openTicks, true); - // model.renderPart(name); - // GL11.glPopMatrix(); - // } - // GL11.glPopMatrix(); - // } + for(String partName : model.getPartNames()) { + if(!door.doesRender(partName, false)) + continue; + + GL11.glPushMatrix(); + { + bindTexture(door.getTextureForPart(te.getSkinIndex(), partName)); + doPartTransform(door, partName, openTicks, false); + model.renderPart(partName); + + for(String innerPartName : door.getChildren(partName)) { + if(!door.doesRender(innerPartName, true)) + continue; + + GL11.glPushMatrix(); + { + bindTexture(door.getTextureForPart(te.getSkinIndex(), innerPartName)); + doPartTransform(door, innerPartName, openTicks, true); + model.renderPart(innerPartName); + } + GL11.glPopMatrix(); + } + } + GL11.glPopMatrix(); + } } for(int i = 0; i < clip.length; i ++){ diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index c8471327c..d28ae1e22 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -4,13 +4,12 @@ import com.hbm.animloader.AnimatedModel; import com.hbm.animloader.Animation; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; -import com.hbm.render.loader.WavefrontObjDisplayList; +import com.hbm.render.loader.IModelCustomNamed; import com.hbm.util.BobMathUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; @@ -92,7 +91,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { + public IModelCustomNamed getModel() { return null; } }; @@ -181,7 +180,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public IModelCustom getModel() { + public IModelCustomNamed getModel() { return ResourceManager.fire_door; } }; @@ -269,7 +268,7 @@ public abstract class DoorDecl { } @Override - public WavefrontObjDisplayList getModel() { + public IModelCustomNamed getModel() { return null; } @@ -360,7 +359,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { + public IModelCustomNamed getModel() { return ResourceManager.sliding_seal_door; } }; @@ -459,7 +458,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { + public IModelCustomNamed getModel() { return ResourceManager.secure_access_door; } }; @@ -548,7 +547,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { + public IModelCustomNamed getModel() { return ResourceManager.round_airlock_door; } }; @@ -631,7 +630,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { + public IModelCustomNamed getModel() { return ResourceManager.qe_sliding_door; } @@ -717,7 +716,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { + public IModelCustomNamed getModel() { return ResourceManager.qe_containment; } @@ -858,7 +857,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { + public IModelCustomNamed getModel() { return ResourceManager.water_door; } @@ -920,7 +919,7 @@ public abstract class DoorDecl { @Override public int[] getDimensions() { return new int[] { 0, 0, 2, 2, 2, 2 }; } @Override @SideOnly(Side.CLIENT) public ResourceLocation getTextureForPart(String partName) { return ResourceManager.silo_hatch_tex; } @Override public ResourceLocation getTextureForPart(int skinIndex, String partName) { return ResourceManager.silo_hatch_tex; } - @Override @SideOnly(Side.CLIENT) public WavefrontObjDisplayList getModel() { return ResourceManager.silo_hatch; } + @Override @SideOnly(Side.CLIENT) public IModelCustomNamed getModel() { return ResourceManager.silo_hatch; } }; @@ -980,7 +979,7 @@ public abstract class DoorDecl { @Override public int[] getDimensions() { return new int[] { 0, 0, 3, 3, 3, 3 }; } @Override @SideOnly(Side.CLIENT) public ResourceLocation getTextureForPart(String partName) { return ResourceManager.silo_hatch_large_tex; } @Override public ResourceLocation getTextureForPart(int skinIndex, String partName) { return ResourceManager.silo_hatch_large_tex; } - @Override @SideOnly(Side.CLIENT) public WavefrontObjDisplayList getModel() { return ResourceManager.silo_hatch_large; } + @Override @SideOnly(Side.CLIENT) public IModelCustomNamed getModel() { return ResourceManager.silo_hatch_large; } }; @@ -1058,7 +1057,7 @@ public abstract class DoorDecl { @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { + public IModelCustomNamed getModel() { return ResourceManager.large_vehicle_door; } @@ -1112,7 +1111,7 @@ public abstract class DoorDecl { public abstract ResourceLocation getTextureForPart(int skinIndex, String partName); @SideOnly(Side.CLIENT) - public abstract IModelCustom getModel(); + public abstract IModelCustomNamed getModel(); @SideOnly(Side.CLIENT) public AnimatedModel getAnimatedModel() { From dc8ec31ccddecb5fcdd89634f1609879dffcabb9 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 18 Apr 2024 17:17:29 +1000 Subject: [PATCH 345/376] Allow render distances greater than 16 with Angelica installed --- src/main/java/com/hbm/main/ModEventHandlerClient.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 899a3b118..d8bf978c2 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -86,6 +86,7 @@ import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent; @@ -925,14 +926,16 @@ public class ModEventHandlerClient { Minecraft mc = Minecraft.getMinecraft(); ArmorNo9.updateWorldHook(mc.theWorld); + + boolean supportsHighRenderDistance = FMLClientHandler.instance().hasOptifine() || Loader.isModLoaded("angelica"); - if(mc.gameSettings.renderDistanceChunks > 16 && GeneralConfig.enableRenderDistCheck && ! FMLClientHandler.instance().hasOptifine()) { + if(mc.gameSettings.renderDistanceChunks > 16 && GeneralConfig.enableRenderDistCheck && !supportsHighRenderDistance) { mc.gameSettings.renderDistanceChunks = 16; LoggingUtil.errorWithHighlight("========================== WARNING =========================="); - LoggingUtil.errorWithHighlight("Dangerous render distance detected: Values over 16 only work on 1.8+ or with Optifine installed!!"); + LoggingUtil.errorWithHighlight("Dangerous render distance detected: Values over 16 only work on 1.8+ or with Optifine/Angelica 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 removing Optifine/Angelica: 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 =========================="); } From 8d244baf12c27ef9b48ceb6994821fd24bc72925 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 18 Apr 2024 17:26:15 +1000 Subject: [PATCH 346/376] Reduce visibility of VBOBufferData --- src/main/java/com/hbm/render/loader/WavefrontObjVBO.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java b/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java index f852ba4ee..fe7eb985f 100644 --- a/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java +++ b/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java @@ -12,7 +12,7 @@ import net.minecraftforge.client.model.obj.Vertex; public class WavefrontObjVBO implements IModelCustomNamed { - public class VBOBufferData { + class VBOBufferData { String name; int vertices = 0; @@ -22,7 +22,7 @@ public class WavefrontObjVBO implements IModelCustomNamed { } - public List groups = new ArrayList(); + List groups = new ArrayList(); static int VERTEX_SIZE = 3; static int UV_SIZE = 3; From 3460e8dceff2fcd429af23053254bd695ad3b13c Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 18 Apr 2024 14:56:08 +0200 Subject: [PATCH 347/376] and some more fixes --- changelog | 13 +++- gradle.properties | 63 +++++++++++++------ .../java/api/hbm/energymk2/PowerNetMK2.java | 17 ++++- .../java/com/hbm/blocks/bomb/Balefire.java | 62 ++++++++++-------- .../machine/pile/BlockGraphiteFuel.java | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../machine/TileEntityStirling.java | 2 +- 7 files changed, 111 insertions(+), 50 deletions(-) diff --git a/changelog b/changelog index 3665cedcf..35fc33e98 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,7 @@ ## Changed +* Large models no longer use display lists, instead their rendering makes use of the more modern VBO system + * Models using VBOs should now render slightly faster + * This also fixes an issue with Angelica where certain parts of the model would render transparently * All pylons and electrical connectors are now dyeable, using any dye (even modded ones, based on ore dict) to change the color of the cable * Colors are based on the connecting pylon, not the cables themselves, meaning that using one dye will change all wires connected to that pylon right up to the half way point * Glyphid behemoths now spew sulfuric acid instead of hydrogen peroxide @@ -12,8 +15,16 @@ * Emeralds can now be mined as bedrock ores with a weight of 50 (half as common as iron, as common as redstone) * Tritium lamps are now substantially cheaper * Glyphid scouts can now spawn during the day when rampant glyphid spawning is enabled (artificial light however will still prevent them from spawning, keeping them out of bases) +* Balefire now has a much higher ignition radius +* Balefire becomes darker the more it spreads, making it possible to gauge how much further or if at all the balefire will spread +* The comparator output range of the pile fuel rods has been adjusted, allowing rods to be ejected exactly when they turn into bred uranium rods ## Fixed * Fixed rocket artillery turret not saving loaded ammo type/count * Fixed crash caused by custom missile launchers operating without designator -* Fixed meltdown elementals rendering their beam in the NEI spawner screen, causing extreme lag or the game to freeze \ No newline at end of file +* Fixed meltdown elementals rendering their beam in the NEI spawner screen, causing extreme lag or the game to freeze +* Fixed certain incompatibilities with Angelica, like machine models being transparent and connected texture blocks not rendering at all +* (Hopefully) fixed the issue of balefire spreading forever for good +* Fixed stirling engines not outputting into cables +* Power buffers (i.e. things that act as both providers and receivers in the same network) now have the lowest sending priority (sending priority didn't exist until now), preventing them from wasting transfer capacity by ping-ponging before all other relevant parts of the network are done transferring +* Fixed potential issue causing diodes to consume negative energy \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index b4ec7f1af..8892f2442 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,21 +1,48 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4936 +mod_build_number=4939 -credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ - \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ - \ porting), UFFR (RTGs, guns, casings, euphemium capacitor), Pu-238 (Tom impact effects), Bismarck\ - \ (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures,\ - \ various machines, models, weapons), Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ - \ Adam29 (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ - \ (calculator, chunk-based fallout, bendable cranes, pipe improvements), haru315 (spiral point algorithm),\ - \ Sten89 (models), Pixelguru26 (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002\ - \ (project settings), Nos (models), Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie\ - \ (reacher radiation function), Toshayo (satellite loot system, project settings, gradle curse task), Silly541\ - \ (config for safe ME drives), Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1\ - \ (OpenComputers integration), martemen (project settings), Pvndols (thorium fuel recipe, gas turbine),\ - \ JamesH2 (blood mechanics, nitric acid, particle emitter), sdddddf80 (recipe configs, chinese localization,\ - \ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\ - \ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks),\ - \ 245tt (anvil GUI improvements), MellowArpeggiation (new animation system, turbine sounds, sound fixes,\ - \ industrial lights, better particle diodes), FOlkvangrField (custom machine parts), KoblizekXD (doors) +credits=HbMinecraft,\ + \ rodolphito (explosion algorithms),\ + \ grangerave (explosion algorithms),\ + \ Hoboy (textures, models),\ + \ Drillgon200 (effects, models, porting),\ + \ MartinTheDragon (calculator, chunk-based fallout, bendable cranes, pipe improvements, PWR sounds),\ + \ Alcater (GUI textures, porting),\ + \ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, better particle diodes),\ + \ Pheo (textures, various machines, models, weapons),\ + \ Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ + \ LePeep (coilgun model, BDCL QC),\ + \ Adam29 (liquid petroleum, ethanol, electric furnace),\ + \ Pvndols (thorium fuel recipe, gas turbine),\ + \ JamesH2 (blood mechanics, nitric acid, particle emitter),\ + \ Doctor17 (russian localization)),\ + \ Pashtet (russian localization),\ + \ Bismarck (chinese localization),\ + \ Maksymisio (polish localization)\ + \ Pu-238 (Tom impact effects),\ + \ UFFR (RTGs, guns, casings, euphemium capacitor),\ + \ Frooz (models),\ + \ VT-6/24 (models, textures),\ + \ Nos (models),\ + \ Minecreep (models),\ + \ 70k (textures, glyphid AI, strand caster),\ + \ haru315 (spiral point algorithm),\ + \ Sten89 (models),\ + \ Pixelguru26 (textures),\ + \ TheBlueHat (textures),\ + \ Burningwater202 (laminate glass),\ + \ TehTemmie (reacher radiation function),\ + \ Silly541 (config for safe ME drives),\ + \ Voxelstice (OpenComputers integration, turbine spinup),\ + \ BallOfEnergy1 (OpenComputers integration),\ + \ martemen (project settings),\ + \ sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ + \ SuperCraftAlex (tooltips)\ + \ Ice-Arrow (research reactor tweaks),\ + \ 245tt (anvil GUI improvements),\ + \ KoblizekXD (doors),\ + \ FOlkvangrField (custom machine parts),\ + \ Toshayo (satellite loot system, project settings, gradle curse task),\ + \ OvermindDL1 (project settings),\ + \ impbk2002 (project settings),\ diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index c41ff9e9b..51cfaf810 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -150,8 +150,19 @@ public class PowerNetMK2 { if(toTransfer > transferCap) toTransfer = transferCap; if(toTransfer <= 0) return; - List providers = new ArrayList() {{ addAll(providerEntries.keySet()); }}; - List receivers = new ArrayList() {{ addAll(receiverEntries.keySet()); }}; + List buffers = new ArrayList(); + List providers = new ArrayList(); + Set receiverSet = receiverEntries.keySet(); + for(IEnergyProviderMK2 provider : providerEntries.keySet()) { + if(receiverSet.contains(provider)) { + buffers.add(provider); + } else { + providers.add(provider); + } + } + providers.addAll(buffers); //makes buffers go last + List receivers = new ArrayList() {{ addAll(receiverSet); }}; + receivers.sort(COMP); int maxIteration = 1000; @@ -237,7 +248,7 @@ public class PowerNetMK2 { for(IEnergyReceiverMK2 dest : receiverEntries.keySet()) { long pd = priorityDemand[dest.getPriority().ordinal()]; long toFill = Math.min((long) ((double) (Math.min(dest.getMaxPower() - dest.getPower(), dest.getReceiverSpeed())) * (double) power / (double) pd), dest.getReceiverSpeed()); - toFill = Math.min(toFill, power); + toFill = Math.min(toFill, finalRemainder); long remainder = dest.transferPower(toFill); long transferred = toFill - remainder; finalRemainder -= transferred; diff --git a/src/main/java/com/hbm/blocks/bomb/Balefire.java b/src/main/java/com/hbm/blocks/bomb/Balefire.java index ecf7f579f..4a282e861 100644 --- a/src/main/java/com/hbm/blocks/bomb/Balefire.java +++ b/src/main/java/com/hbm/blocks/bomb/Balefire.java @@ -7,8 +7,10 @@ import static net.minecraftforge.common.util.ForgeDirection.SOUTH; import static net.minecraftforge.common.util.ForgeDirection.UP; import static net.minecraftforge.common.util.ForgeDirection.WEST; +import java.awt.Color; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.potion.HbmPotion; import cpw.mods.fml.relauncher.Side; @@ -47,9 +49,9 @@ public class Balefire extends BlockFire { return icon; } + @Override public void updateTick(World world, int x, int y, int z, Random rand) { if(world.getGameRules().getGameRuleBooleanValue("doFireTick")) { - boolean onNetherrack = world.getBlock(x, y - 1, z).isFireSource(world, x, y - 1, z, UP); if(!this.canPlaceBlockAt(world, x, y, z)) { world.setBlockToAir(x, y, z); @@ -57,12 +59,10 @@ public class Balefire extends BlockFire { int meta = world.getBlockMetadata(x, y, z); - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world) + rand.nextInt(10)); + if(meta < 15) world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world) + rand.nextInt(10)); - if(!onNetherrack && !this.canNeighborBurn(world, x, y, z)) { - if(!World.doesBlockHaveSolidTopSurface(world, x, y - 1, z)) { - world.setBlockToAir(x, y, z); - } + if(!this.canNeighborBurn(world, x, y, z) && !World.doesBlockHaveSolidTopSurface(world, x, y - 1, z)) { + world.setBlockToAir(x, y, z); } else { if(meta < 15) { this.tryCatchFire(world, x + 1, y, z, 500, rand, meta, WEST); @@ -71,31 +71,33 @@ public class Balefire extends BlockFire { this.tryCatchFire(world, x, y + 1, z, 300, rand, meta, DOWN); this.tryCatchFire(world, x, y, z - 1, 500, rand, meta, SOUTH); this.tryCatchFire(world, x, y, z + 1, 500, rand, meta, NORTH); - } + + int h = 3; - for(int i1 = x - 1; i1 <= x + 1; ++i1) { - for(int j1 = z - 1; j1 <= z + 1; ++j1) { - for(int k1 = y - 1; k1 <= y + 4; ++k1) { - if(i1 != x || k1 != y || j1 != z) { - int l1 = 100; + for(int ix = x - h; ix <= x + h; ++ix) { + for(int iz = z - h; iz <= z + h; ++iz) { + for(int iy = y - 1; iy <= y + 4; ++iy) { + + if(ix != x || iy != y || iz != z) { + int fireLimit = 100; - if(k1 > y + 1) { - l1 += (k1 - (y + 1)) * 100; - } + if(iy > y + 1) { + fireLimit += (iy - (y + 1)) * 100; + } + + if(world.getBlock(ix, iy, iz) == ModBlocks.balefire && world.getBlockMetadata(ix, iy, iz) > meta + 1) { + world.setBlock(ix, iy, iz, this, meta + 1, 3); + continue; + } - int i2 = this.getChanceOfNeighborsEncouragingFire(world, i1, k1, j1); + int neighborFireChance = this.getChanceOfNeighborsEncouragingFire(world, ix, iy, iz); - if(i2 > 0) { - int j2 = (i2 + 40 + world.difficultySetting.getDifficultyId() * 7) / (meta + 30); + if(neighborFireChance > 0) { + int adjustedFireChance = (neighborFireChance + 40 + world.difficultySetting.getDifficultyId() * 7) / (meta + 30); - if(j2 > 0 && rand.nextInt(l1) <= j2) { - int k2 = meta + rand.nextInt(5) / 4; - - if(k2 > 15) { - k2 = 15; + if(adjustedFireChance > 0 && rand.nextInt(fireLimit) <= adjustedFireChance) { + world.setBlock(ix, iy, iz, this, meta + 1, 3); } - - world.setBlock(i1, k1, j1, this, k2, 3); } } } @@ -156,5 +158,15 @@ public class Balefire extends BlockFire { if(entity instanceof EntityLivingBase) ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 5 * 20, 9)); } + + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + return Color.HSBtoRGB(0F, 0F, 1F - meta / 30F); + } + @Override + public int getRenderType() { + return 1; + } } diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java index 3e827f3a3..7b3b892ca 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java @@ -47,7 +47,7 @@ public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolab @Override public int getComparatorInputOverride(World world, int x, int y, int z, int side) { TileEntityPileFuel pile = (TileEntityPileFuel)world.getTileEntity(x, y, z); - return MathHelper.clamp_int((pile.progress * 16) / (pile.maxProgress - 1000), 0, 15); //potentially wip + return MathHelper.clamp_int((pile.progress * 15) / (pile.maxProgress - 1000), 0, 15); } @Override diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 0d5894efa..477c52bb5 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4936)"; + public static final String VERSION = "1.0.27 BETA (4939)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java index 610ba487d..d59a5e933 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java @@ -46,6 +46,7 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack if(!worldObj.isRemote) { if(hasCog) { + this.powerBuffer = 0; tryPullHeat(); this.powerBuffer = (long) (this.heat * (this.isCreative() ? 1 : this.efficiency)); @@ -97,7 +98,6 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack for(DirPos pos : getConPos()) { this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - this.powerBuffer = 0; } else { if(this.powerBuffer > 0) From d7664c79dadebc00c76ca9923232f14d08b42e75 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 19 Apr 2024 15:21:43 +0200 Subject: [PATCH 348/376] power net: compromise edition --- README.md | 5 +- changelog | 30 +------- .../java/api/hbm/energymk2/PowerNetMK2.java | 66 ++++++++++++++++++ .../TileEntityMachineAssemblerBase.java | 4 ++ .../hbm/textures/items/item_secret.canister | Bin 0 -> 299 bytes 5 files changed, 72 insertions(+), 33 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/item_secret.canister diff --git a/README.md b/README.md index f5aff7230..54734a685 100644 --- a/README.md +++ b/README.md @@ -104,10 +104,7 @@ One of the most common "performance" mods on 1.7.10, Optifine, achieves an incre * Entity "optimization" has a tendency to break chunkloading, this is especially noticeable with missiles which rely heavily on chunkloading to work, causing them to freeze mid-air. It's unclear what setting might fix this, and analysis of Optifine's source code (or rather, lack thereof) has not proven useful either. ### Angelica -Like most performance mods, Angelica also does deep-rooted changes to the game's rendering to improve performance, changes which have unintended side effects with mods that otherwise rely on the vanilla functionality that was changed. Unlike with Optifine, Angelica's source code is accessible and the mod is still in active development, so the list of issues might be outdated: -* 3D models in inventories might render with no texture, this issue apparently also breaks font rendering for item tooltips -* 3D models for tile entities have a tendency to render with blend enabled (i.e. semi-transparent), especially models that are separated into multiple parts which use display lists (i.e. an older system for rendering larger models more efficiently) -* Blocks with connected textures once again become invisible (exact fix for Angelica is unknown) +In older versions, Angelica caused issues regarding model rendering, often times making 3D models transparent. Ever since the switch to VBOs, models work fine. Another issue was blocks with connected textures not rendering at all, but this too was fixed, meaning as of time of writing there are no major incompatibilities known with Angelica. ### Skybox chainloader NTM adds a few small things to the skybox using a custom skybox renderer. Minecraft can only have a single skybox renderer loaded, so setting the skybox to the NTM custom one would break compatibility with other mods' skyboxes. To mend this, NTM employs a **chainloader**. This chainloader will detect if a different skybox is loaded, save a reference to that skybox and then use NTM's skybox, which when used will also make sure to run the previous modded skybox renderer. In the event that NTM's skybox were to cause trouble, it can be disabled with the config option `1.31_enableSkyboxes`. diff --git a/changelog b/changelog index 35fc33e98..0369d2ac3 100644 --- a/changelog +++ b/changelog @@ -1,30 +1,2 @@ -## Changed -* Large models no longer use display lists, instead their rendering makes use of the more modern VBO system - * Models using VBOs should now render slightly faster - * This also fixes an issue with Angelica where certain parts of the model would render transparently -* All pylons and electrical connectors are now dyeable, using any dye (even modded ones, based on ore dict) to change the color of the cable - * Colors are based on the connecting pylon, not the cables themselves, meaning that using one dye will change all wires connected to that pylon right up to the half way point -* Glyphid behemoths now spew sulfuric acid instead of hydrogen peroxide -* Glyphid brawlers can now leap at nearby players -* The structure config has changed - * Instead of a central toggle for enabling/disabling structures, there's now three possible settings, enabling structures, disabling structures or making structure spawn respect the setting from the world creation menu -* Pressurized gauges like for the vacuum refinery and hydrotreater no longer have slots for item barrels (as those would logically not work), instead they show a pressure symbol -* Auditory geiger counters in armors will now click based on the radiation level *inside* the suit, i.e. the effective exposure for the player -* Diamonds are now a valid crucible material, turning into carbon at a 1:1 ratio (like graphite) -* Emerald is also a valid crucible material now, turning into beryllium at a 4:3 ratio -* Emeralds can now be mined as bedrock ores with a weight of 50 (half as common as iron, as common as redstone) -* Tritium lamps are now substantially cheaper -* Glyphid scouts can now spawn during the day when rampant glyphid spawning is enabled (artificial light however will still prevent them from spawning, keeping them out of bases) -* Balefire now has a much higher ignition radius -* Balefire becomes darker the more it spreads, making it possible to gauge how much further or if at all the balefire will spread -* The comparator output range of the pile fuel rods has been adjusted, allowing rods to be ejected exactly when they turn into bred uranium rods - ## Fixed -* Fixed rocket artillery turret not saving loaded ammo type/count -* Fixed crash caused by custom missile launchers operating without designator -* Fixed meltdown elementals rendering their beam in the NEI spawner screen, causing extreme lag or the game to freeze -* Fixed certain incompatibilities with Angelica, like machine models being transparent and connected texture blocks not rendering at all -* (Hopefully) fixed the issue of balefire spreading forever for good -* Fixed stirling engines not outputting into cables -* Power buffers (i.e. things that act as both providers and receivers in the same network) now have the lowest sending priority (sending priority didn't exist until now), preventing them from wasting transfer capacity by ping-ponging before all other relevant parts of the network are done transferring -* Fixed potential issue causing diodes to consume negative energy \ No newline at end of file +* Limited assembler input to up to 10 attempts per ingredient, fixing a rare issue where the assembler freezes the server when pulling items \ No newline at end of file diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index 51cfaf810..beb91ecf8 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -7,6 +7,9 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; + +import com.hbm.util.Tuple.Pair; + import java.util.Map.Entry; import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; @@ -119,6 +122,68 @@ public class PowerNetMK2 { if(providerEntries.isEmpty()) return; if(receiverEntries.isEmpty()) return; + long timestamp = System.currentTimeMillis(); + long transferCap = 100_000_000_000_000_00L; + + List> providers = new ArrayList(); + long powerAvailable = 0; + + Iterator> provIt = providerEntries.entrySet().iterator(); + while(provIt.hasNext()) { + Entry entry = provIt.next(); + if(timestamp - entry.getValue() > timeout) { provIt.remove(); continue; } + long src = Math.min(entry.getKey().getPower(), entry.getKey().getProviderSpeed()); + providers.add(new Pair(entry.getKey(), src)); + if(powerAvailable < transferCap) powerAvailable += src; + } + + powerAvailable = Math.min(powerAvailable, transferCap); + + List>[] receivers = new ArrayList[ConnectionPriority.values().length]; + for(int i = 0; i < receivers.length; i++) receivers[i] = new ArrayList(); + long[] demand = new long[ConnectionPriority.values().length]; + long totalDemand = 0; + + Iterator> recIt = receiverEntries.entrySet().iterator(); + + while(recIt.hasNext()) { + Entry entry = recIt.next(); + if(timestamp - entry.getValue() > timeout) { recIt.remove(); continue; } + long rec = Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed()); + int p = entry.getKey().getPriority().ordinal(); + receivers[p].add(new Pair(entry.getKey(), rec)); + demand[p] += rec; + totalDemand += rec; + } + + long receiveAmount = Math.min(powerAvailable, totalDemand); + long sendAmount = receiveAmount; + + double receiveScale = (Math.min(1D, (double) receiveAmount / (double) totalDemand)); //if receiveAmount and totalDemand are not equal, scale the effective demand down (i.e. due to insufficient supply) + + for(int i = ConnectionPriority.values().length - 1; i <= 0; i--) { + List> list = receivers[i]; + double priorityDemand = demand[i]; + + for(Pair entry : list) { + double weight = (double) entry.getValue() / (double) (priorityDemand * receiveScale); + long toSend = (long) (receiveAmount * weight); + sendAmount -= entry.getKey().transferPower(toSend); //leftovers are subtracted from the intended amount to use up + } + } + + for(Pair entry : providers) { + double weight = (double) entry.getValue() / (double) powerAvailable; + long toUse = (long) (sendAmount * weight); + entry.getKey().usePower(toUse); + } + } + + @Deprecated public void transferPowerOld() { + + if(providerEntries.isEmpty()) return; + if(receiverEntries.isEmpty()) return; + long timestamp = System.currentTimeMillis(); long transferCap = 100_000_000_000_000_00L; // that ought to be enough @@ -226,6 +291,7 @@ public class PowerNetMK2 { } } + //TODO: revise, use new code and hit it with a hammer until it yields public long sendPowerDiode(long power) { long timestamp = System.currentTimeMillis(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index 525df1eda..be6f29afa 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -184,8 +184,12 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa if(recipe != null) { for(AStack ingredient : recipe) { + + int tracker = 0; outer: while(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { + + if(tracker++ > 10) break; boolean found = false; diff --git a/src/main/resources/assets/hbm/textures/items/item_secret.canister b/src/main/resources/assets/hbm/textures/items/item_secret.canister new file mode 100644 index 0000000000000000000000000000000000000000..5f648f819464e73cad50b9e72464afeedeadabc7 GIT binary patch literal 299 zcmV+`0o4A9P)oFwH$B-6sZ xb`l)c2UK;Q9ZAyg-Y@Bi*M*mV;S`3!(IRY002ovPDHLkV1gdzdxHP~ literal 0 HcmV?d00001 From 9eaeddca322ebdeec066d9ad21e6792bc97d3b6c Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 20 Apr 2024 17:30:33 +0200 Subject: [PATCH 349/376] that oughta do it --- changelog | 3 +- .../java/api/hbm/energymk2/PowerNetMK2.java | 66 +++++++++++-------- .../hbm/entity/effect/EntityFalloutRain.java | 9 ++- .../entity/logic/EntityNukeExplosionMK5.java | 3 - .../storage/TileEntityMachineBattery.java | 20 ++++-- .../storage/TileEntityMachineFENSU.java | 13 +++- 6 files changed, 70 insertions(+), 44 deletions(-) diff --git a/changelog b/changelog index 0369d2ac3..0e92e2213 100644 --- a/changelog +++ b/changelog @@ -1,2 +1,3 @@ ## Fixed -* Limited assembler input to up to 10 attempts per ingredient, fixing a rare issue where the assembler freezes the server when pulling items \ No newline at end of file +* Limited assembler input to up to 10 attempts per ingredient, fixing a rare issue where the assembler freezes the server when pulling items +* Fixed fallout effects not loading chunks \ No newline at end of file diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index beb91ecf8..b10c928d6 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -156,25 +156,25 @@ public class PowerNetMK2 { totalDemand += rec; } - long receiveAmount = Math.min(powerAvailable, totalDemand); - long sendAmount = receiveAmount; + long toTransfer = Math.min(powerAvailable, totalDemand); + long energyUsed = 0; - double receiveScale = (Math.min(1D, (double) receiveAmount / (double) totalDemand)); //if receiveAmount and totalDemand are not equal, scale the effective demand down (i.e. due to insufficient supply) - - for(int i = ConnectionPriority.values().length - 1; i <= 0; i--) { + for(int i = ConnectionPriority.values().length - 1; i >= 0; i--) { List> list = receivers[i]; - double priorityDemand = demand[i]; + long priorityDemand = demand[i]; for(Pair entry : list) { - double weight = (double) entry.getValue() / (double) (priorityDemand * receiveScale); - long toSend = (long) (receiveAmount * weight); - sendAmount -= entry.getKey().transferPower(toSend); //leftovers are subtracted from the intended amount to use up + double weight = (double) entry.getValue() / (double) (priorityDemand); + long toSend = (long) Math.max(toTransfer * weight, 0D); + energyUsed += (toSend - entry.getKey().transferPower(toSend)); //leftovers are subtracted from the intended amount to use up } + + toTransfer -= energyUsed; } for(Pair entry : providers) { double weight = (double) entry.getValue() / (double) powerAvailable; - long toUse = (long) (sendAmount * weight); + long toUse = (long) Math.max(energyUsed * weight, 0D); entry.getKey().usePower(toUse); } } @@ -291,38 +291,46 @@ public class PowerNetMK2 { } } - //TODO: revise, use new code and hit it with a hammer until it yields public long sendPowerDiode(long power) { + if(receiverEntries.isEmpty()) return power; + long timestamp = System.currentTimeMillis(); - long demand = 0; - long[] priorityDemand = new long[ConnectionPriority.values().length]; + + List>[] receivers = new ArrayList[ConnectionPriority.values().length]; + for(int i = 0; i < receivers.length; i++) receivers[i] = new ArrayList(); + long[] demand = new long[ConnectionPriority.values().length]; + long totalDemand = 0; Iterator> recIt = receiverEntries.entrySet().iterator(); + while(recIt.hasNext()) { Entry entry = recIt.next(); if(timestamp - entry.getValue() > timeout) { recIt.remove(); continue; } long rec = Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed()); - demand += rec; - for(int i = 0; i <= entry.getKey().getPriority().ordinal(); i++) priorityDemand[i] += rec; + int p = entry.getKey().getPriority().ordinal(); + receivers[p].add(new Pair(entry.getKey(), rec)); + demand[p] += rec; + totalDemand += rec; } - - if(demand <= 0) return power; - - long finalRemainder = power; - for(IEnergyReceiverMK2 dest : receiverEntries.keySet()) { - long pd = priorityDemand[dest.getPriority().ordinal()]; - long toFill = Math.min((long) ((double) (Math.min(dest.getMaxPower() - dest.getPower(), dest.getReceiverSpeed())) * (double) power / (double) pd), dest.getReceiverSpeed()); - toFill = Math.min(toFill, finalRemainder); - long remainder = dest.transferPower(toFill); - long transferred = toFill - remainder; - finalRemainder -= transferred; - this.energyTracker += transferred; - if(finalRemainder <= 0) break; + long toTransfer = Math.min(power, totalDemand); + long energyUsed = 0; + + for(int i = ConnectionPriority.values().length - 1; i >= 0; i--) { + List> list = receivers[i]; + long priorityDemand = demand[i]; + + for(Pair entry : list) { + double weight = (double) entry.getValue() / (double) (priorityDemand); + long toSend = (long) Math.max(toTransfer * weight, 0D); + energyUsed += (toSend - entry.getKey().transferPower(toSend)); //leftovers are subtracted from the intended amount to use up + } + + toTransfer -= energyUsed; } - return finalRemainder; + return power - energyUsed; } public static final ReceiverComparator COMP = new ReceiverComparator(); diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 0647627b4..519e21fa1 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -6,13 +6,13 @@ import com.hbm.config.FalloutConfigJSON; import com.hbm.config.FalloutConfigJSON.FalloutEntry; import com.hbm.config.WorldConfig; import com.hbm.entity.item.EntityFallingBlockNT; +import com.hbm.entity.logic.EntityExplosionChunkloading; import com.hbm.saveddata.AuxSavedData; import com.hbm.world.WorldUtil; import com.hbm.world.biome.BiomeGenCraterBase; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; @@ -24,7 +24,8 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.*; -public class EntityFalloutRain extends Entity { +public class EntityFalloutRain extends EntityExplosionChunkloading { + private boolean firstTick = true; // Of course Vanilla has it private in Entity... public EntityFalloutRain(World p_i1582_1_) { @@ -98,7 +99,8 @@ public class EntityFalloutRain extends Entity { if(biomeModified) WorldUtil.syncBiomeChange(worldObj, chunkPosX << 4, chunkPosZ << 4); } else { - setDead(); + this.clearChunkLoader(); + this.setDead(); break; } } @@ -240,6 +242,7 @@ public class EntityFalloutRain extends Entity { @Override protected void entityInit() { + super.entityInit(); this.dataWatcher.addObject(16, 0); } diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index 918594e0c..dee4a3d91 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -127,9 +127,6 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { } } - @Override - protected void entityInit() { } - @Override protected void readEntityFromNBT(NBTTagCompound nbt) { this.ticksExisted = nbt.getInteger("ticksExisted"); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index b021eca59..84e40e47b 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -167,7 +167,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I priority = ConnectionPriority.LOW; } - int mode = this.getRelevantMode(); + int mode = this.getRelevantMode(false); if(this.node == null || this.node.expired) { @@ -238,8 +238,15 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } } - @Override public long getProviderSpeed() { return this.getMaxPower() / 20; } - @Override public long getReceiverSpeed() { return this.getMaxPower() / 20; } + @Override public long getProviderSpeed() { + int mode = this.getRelevantMode(true); + return mode == mode_output || mode == mode_buffer ? this.getMaxPower() / 20 : 0; + } + + @Override public long getReceiverSpeed() { + int mode = this.getRelevantMode(true); + return mode == mode_input || mode == mode_buffer ? this.getMaxPower() / 20 : 0; + } @Override public void networkUnpack(NBTTagCompound nbt) { @@ -257,8 +264,11 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return power; } - public short getRelevantMode() { - return worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord) ? this.redHigh : this.redLow; + private short modeCache = 0; + public short getRelevantMode(boolean useCache) { + if(useCache) return this.modeCache; + this.modeCache = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord) ? this.redHigh : this.redLow; + return this.modeCache; } private long bufferedMax; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index 138b12693..bef292604 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -20,15 +20,22 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { public static final long maxTransfer = 10_000_000_000_000_000L; - @Override public long getProviderSpeed() { return maxTransfer; } - @Override public long getReceiverSpeed() { return maxTransfer; } + @Override public long getProviderSpeed() { + int mode = this.getRelevantMode(true); + return mode == mode_output || mode == mode_buffer ? maxTransfer : 0; + } + + @Override public long getReceiverSpeed() { + int mode = this.getRelevantMode(true); + return mode == mode_input || mode == mode_buffer ? maxTransfer : 0; + } @Override public void updateEntity() { if(!worldObj.isRemote) { - int mode = this.getRelevantMode(); + int mode = this.getRelevantMode(false); if(this.node == null || this.node.expired) { From 13aaa627b243ad1b3aa7dc13c07882396fbdbfbb Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 20 Apr 2024 23:41:49 +0200 Subject: [PATCH 350/376] bronze --- changelog | 12 +++- src/main/java/com/hbm/blocks/ModBlocks.java | 53 +++++++++--------- .../java/com/hbm/blocks/machine/NTMAnvil.java | 9 +++ .../com/hbm/inventory/OreDictManager.java | 9 +++ .../java/com/hbm/inventory/material/Mats.java | 2 + .../inventory/recipes/ChemplantRecipes.java | 7 --- .../inventory/recipes/CrucibleRecipes.java | 8 +++ .../recipes/CrystallizerRecipes.java | 1 + .../inventory/recipes/anvil/AnvilRecipes.java | 17 +++--- src/main/java/com/hbm/items/ModItems.java | 7 ++- src/main/java/com/hbm/main/MainRegistry.java | 6 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 14 ++++- src/main/resources/assets/hbm/lang/en_US.lang | 10 ++++ .../textures/blocks/anvil_arsenic_bronze.png | Bin 0 -> 516 bytes .../textures/blocks/anvil_bismuth_bronze.png | Bin 0 -> 516 bytes .../assets/hbm/textures/blocks/anvil_desh.png | Bin 0 -> 534 bytes .../hbm/textures/blocks/anvil_saturnite.png | Bin 0 -> 513 bytes .../textures/items/ingot_arsenic_bronze.png | Bin 0 -> 512 bytes .../textures/items/ingot_bismuth_bronze.png | Bin 0 -> 529 bytes 19 files changed, 111 insertions(+), 44 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/anvil_arsenic_bronze.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/anvil_bismuth_bronze.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/anvil_desh.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/anvil_saturnite.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_arsenic_bronze.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_bismuth_bronze.png diff --git a/changelog b/changelog index 0e92e2213..324262095 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,13 @@ +## Added +* Bismuth bronze and arsenic bronze + * Kind of self-explanatory + * Can be made into anvils, allows for an alternative that doesn't involve 10 entire ingots of bismuth for a single anvil + +## Changed +* Arsenic is now made from only 16 oils scrap (instead of 256) in an ore acidizer using high-performance solvent (instead of chemical plant using sulfuric acid) +* Meteorite and starmetal anvils have been replaced with desh and saturnite ones + ## Fixed * Limited assembler input to up to 10 attempts per ingredient, fixing a rare issue where the assembler freezes the server when pulling items -* Fixed fallout effects not loading chunks \ No newline at end of file +* Fixed fallout effects not loading chunks +* Fixed RBMK steam channel recycling recipe \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 17ca86aa7..899843fef 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1079,10 +1079,11 @@ public class ModBlocks { public static Block anvil_iron; public static Block anvil_lead; public static Block anvil_steel; - public static Block anvil_meteorite; - public static Block anvil_starmetal; + public static Block anvil_desh; + public static Block anvil_saturnite; public static Block anvil_ferrouranium; - public static Block anvil_bismuth; + public static Block anvil_bismuth_bronze; + public static Block anvil_arsenic_bronze; public static Block anvil_schrabidate; public static Block anvil_dnt; public static Block anvil_osmiridium; @@ -2127,7 +2128,7 @@ public class ModBlocks { tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_rusted = new LaunchPadRusted(Material.iron).setBlockName("launch_pad_rusted").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad_rusted"); + launch_pad_rusted = new LaunchPadRusted(Material.iron).setBlockName("launch_pad_rusted").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_rust"); launch_pad_large = new LaunchPadLarge(Material.iron).setBlockName("launch_pad_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2293,16 +2294,17 @@ public class ModBlocks { machine_autocrafter = new MachineAutocrafter().setBlockName("machine_autocrafter").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); machine_funnel = new MachineFunnel().setBlockName("machine_funnel").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); - anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); - anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); - anvil_steel = new NTMAnvil(Material.iron, 2).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); - anvil_meteorite = new NTMAnvil(Material.iron, 3).setBlockName("anvil_meteorite").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_meteorite"); - anvil_starmetal = new NTMAnvil(Material.iron, 3).setBlockName("anvil_starmetal").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_starmetal"); - anvil_ferrouranium = new NTMAnvil(Material.iron, 4).setBlockName("anvil_ferrouranium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_ferrouranium"); - anvil_bismuth = new NTMAnvil(Material.iron, 5).setBlockName("anvil_bismuth").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_bismuth"); - anvil_schrabidate = new NTMAnvil(Material.iron, 6).setBlockName("anvil_schrabidate").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_schrabidate"); - anvil_dnt = new NTMAnvil(Material.iron, 7).setBlockName("anvil_dnt").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_dnt"); - anvil_osmiridium = new NTMAnvil(Material.iron, 8).setBlockName("anvil_osmiridium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_osmiridium"); + anvil_iron = new NTMAnvil(Material.iron, NTMAnvil.TIER_IRON).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); + anvil_lead = new NTMAnvil(Material.iron, NTMAnvil.TIER_IRON).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); + anvil_steel = new NTMAnvil(Material.iron, NTMAnvil.TIER_STEEL).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); + anvil_desh = new NTMAnvil(Material.iron, NTMAnvil.TIER_OIL).setBlockName("anvil_desh").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_desh"); + anvil_saturnite = new NTMAnvil(Material.iron, NTMAnvil.TIER_OIL).setBlockName("anvil_saturnite").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_saturnite"); + anvil_ferrouranium = new NTMAnvil(Material.iron, NTMAnvil.TIER_NUCLEAR).setBlockName("anvil_ferrouranium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_ferrouranium"); + anvil_bismuth_bronze = new NTMAnvil(Material.iron, NTMAnvil.TIER_RBMK).setBlockName("anvil_bismuth_bronze").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_bismuth_bronze"); + anvil_arsenic_bronze = new NTMAnvil(Material.iron, NTMAnvil.TIER_RBMK).setBlockName("anvil_arsenic_bronze").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_arsenic_bronze"); + anvil_schrabidate = new NTMAnvil(Material.iron, NTMAnvil.TIER_FUSION).setBlockName("anvil_schrabidate").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_schrabidate"); + anvil_dnt = new NTMAnvil(Material.iron, NTMAnvil.TIER_PARTICLE).setBlockName("anvil_dnt").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_dnt"); + anvil_osmiridium = new NTMAnvil(Material.iron, NTMAnvil.TIER_GERALD).setBlockName("anvil_osmiridium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_osmiridium"); anvil_murky = new NTMAnvil(Material.iron, 1916169).setBlockName("anvil_murky").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); machine_waste_drum = new WasteDrum(Material.iron).setBlockName("machine_waste_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":waste_drum"); @@ -3058,17 +3060,18 @@ public class ModBlocks { register(machine_autocrafter); register(machine_funnel); - GameRegistry.registerBlock(anvil_iron, ItemBlockBase.class, anvil_iron.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_lead, ItemBlockBase.class, anvil_lead.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_steel, ItemBlockBase.class, anvil_steel.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_meteorite, ItemBlockBase.class, anvil_meteorite.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_starmetal, ItemBlockBase.class, anvil_starmetal.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_ferrouranium, ItemBlockBase.class, anvil_ferrouranium.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_bismuth, ItemBlockBase.class, anvil_bismuth.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_schrabidate, ItemBlockBase.class, anvil_schrabidate.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_dnt, ItemBlockBase.class, anvil_dnt.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_osmiridium, ItemBlockBase.class, anvil_osmiridium.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_murky, ItemBlockBase.class, anvil_murky.getUnlocalizedName()); + register(anvil_iron); + register(anvil_lead); + register(anvil_steel); + register(anvil_desh); + register(anvil_saturnite); + register(anvil_ferrouranium); + register(anvil_bismuth_bronze); + register(anvil_arsenic_bronze); + register(anvil_schrabidate); + register(anvil_dnt); + register(anvil_osmiridium); + register(anvil_murky); GameRegistry.registerBlock(press_preheater, press_preheater.getUnlocalizedName()); GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java index c71865430..16623e7b1 100644 --- a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java +++ b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java @@ -39,6 +39,15 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.obj.WavefrontObject; public class NTMAnvil extends BlockFallingNT implements ITooltipProvider, IGUIProvider { + + public static final int TIER_IRON = 1; + public static final int TIER_STEEL = 2; + public static final int TIER_OIL = 3; + public static final int TIER_NUCLEAR = 4; + public static final int TIER_RBMK = 5; + public static final int TIER_FUSION = 6; + public static final int TIER_PARTICLE = 7; + public static final int TIER_GERALD = 8; public final int tier; diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 9bdb12bcd..c5bd346ff 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -164,6 +164,10 @@ public class OreDictManager { public static final DictFrame TCALLOY = new DictFrame("TcAlloy"); /** CADMIUM STEEL */ public static final DictFrame CDALLOY = new DictFrame("CdAlloy"); + /** BISMUTH BRONZE */ + public static final DictFrame BBRONZE = new DictFrame("BismuthBronze"); + /** ARSENIC BRONZE */ + public static final DictFrame ABRONZE = new DictFrame("ArsenicBronze"); /** LEAD */ public static final DictFrame PB = new DictFrame("Lead"); public static final DictFrame BI = new DictFrame("Bismuth"); @@ -290,6 +294,8 @@ public class OreDictManager { public static final DictGroup ANY_HARDPLASTIC = new DictGroup("AnyHardPlastic", PC, PVC); /** Any post nuclear steel like TCA or CDA */ public static final DictGroup ANY_RESISTANTALLOY = new DictGroup("AnyResistantAlloy", TCALLOY, CDALLOY); + /** Any post nuclear steel like TCA or CDA */ + public static final DictGroup ANY_BISMOIDBRONZE = new DictGroup("AnyBismoidBronze", BBRONZE, ABRONZE); /** Any "powder" propellant like gunpowder, ballistite and cordite */ public static final DictFrame ANY_GUNPOWDER = new DictFrame("AnyPropellant"); /** Any smokeless powder like ballistite and cordite */ @@ -363,6 +369,8 @@ public class OreDictManager { STEEL .ingot(ingot_steel) .dustSmall(powder_steel_tiny) .dust(powder_steel) .plate(plate_steel) .block(block_steel); TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy) .block(block_tcalloy); CDALLOY .ingot(ingot_cdalloy) .block(block_cdalloy); + BBRONZE .ingot(ingot_bismuth_bronze); + ABRONZE .ingot(ingot_arsenic_bronze); PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead); BI .nugget(nugget_bismuth) .billet(billet_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth) .block(block_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); @@ -627,6 +635,7 @@ public class OreDictManager { ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); ANY_HARDPLASTIC.addPrefix(INGOT, true); ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(PLATEWELDED, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true); + ANY_BISMOIDBRONZE.addPrefix(INGOT, true).addPrefix(PLATECAST, true); ANY_TAR.addPrefix(ANY, false); } diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index c2ba22236..f2abc4a72 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -125,6 +125,8 @@ public class Mats { public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT); public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); + public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setShapes(INGOT, CASTPLATE); + public static final NTMMaterial MAT_ABRONZE = makeSmeltable(_AS + 17, ABRONZE, 0xDB9462, 0x203331, 0x77644D).setShapes(INGOT, CASTPLATE); public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK); public static final NTMMaterial MAT_DNT = makeSmeltable(_AS + 15, DNT, 0x7582B9, 0x16000E, 0x455289).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 319d12250..75af426bc 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -286,13 +286,6 @@ public class ChemplantRecipes extends SerializableRecipe { new ItemStack(ModItems.gem_tantalium), new ItemStack(ModItems.dust, 3)) .outputFluids(new FluidStack(Fluids.WATER, 250))); - recipes.add(new ChemRecipe(91, "ARSENIC", 1200) - .inputItems(new ComparableStack(ModItems.scrap_oil, 256)) - .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 1000)) - .outputItems( - new ItemStack(ModItems.nugget_arsenic), - new ItemStack(ModItems.sulfur, 2)) - .outputFluids(new FluidStack(Fluids.HEAVYOIL, 1500))); recipes.add(new ChemRecipe(68, "VIT_LIQUID", 100) .inputItems(new ComparableStack(ModBlocks.sand_lead)) .inputFluids(new FluidStack(Fluids.WASTEFLUID, 1000)) diff --git a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java index fecbd9e20..903d07e1f 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java @@ -96,6 +96,14 @@ public class CrucibleRecipes extends SerializableRecipe { .inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_CADMIUM, n)) .outputs(new MaterialStack(Mats.MAT_CDALLOY, i))); + recipes.add(new CrucibleRecipe(14, "crucible.bbronze", 9, new ItemStack(ModItems.ingot_bismuth_bronze)) + .inputs(new MaterialStack(Mats.MAT_COPPER, n * 8), new MaterialStack(Mats.MAT_BISMUTH, n), new MaterialStack(Mats.MAT_FLUX, n * 3)) + .outputs(new MaterialStack(Mats.MAT_BBRONZE, i), new MaterialStack(Mats.MAT_SLAG, n * 3))); + + recipes.add(new CrucibleRecipe(15, "crucible.abronze", 9, new ItemStack(ModItems.ingot_arsenic_bronze)) + .inputs(new MaterialStack(Mats.MAT_COPPER, n * 8), new MaterialStack(Mats.MAT_ARSENIC, n), new MaterialStack(Mats.MAT_FLUX, n * 3)) + .outputs(new MaterialStack(Mats.MAT_ABRONZE, i), new MaterialStack(Mats.MAT_SLAG, n * 3))); + recipes.add(new CrucibleRecipe(13, "crucible.cmb", 3, new ItemStack(ModItems.ingot_combine_steel)) .inputs(new MaterialStack(Mats.MAT_MAGTUNG, n * 6), new MaterialStack(Mats.MAT_MUD, n * 3)) .outputs(new MaterialStack(Mats.MAT_CMB, i))); diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 05282e9bd..e73b9d47e 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -97,6 +97,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(Items.dye, 1, 15), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 4), mixingTime), new FluidStack(Fluids.SULFURIC_ACID, 250)); registerRecipe(new ComparableStack(Items.bone), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 16), mixingTime), new FluidStack(Fluids.SULFURIC_ACID, 1_000)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CrystallizerRecipe(new ItemStack(ModItems.powder_cadmium), 100).setReq(10), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(ModItems.scrap_oil), new CrystallizerRecipe(new ItemStack(ModItems.nugget_arsenic), 100).setReq(16), new FluidStack(Fluids.RADIOSOLVENT, 100)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE)), new CrystallizerRecipe(new ItemStack(ModItems.ingot_cft), baseTime).setReq(4), new FluidStack(Fluids.XYLENE, 1_000)); registerRecipe(DIAMOND.dust(), new CrystallizerRecipe(Items.diamond, utilityTime)); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 8a295eea5..79bd5571e 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -53,13 +53,14 @@ public class AnvilRecipes { Block[] anvils = new Block[]{ModBlocks.anvil_iron, ModBlocks.anvil_lead}; for(Block anvil : anvils) { - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_bismuth, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_bismuth, 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_dnt, 1), new ComparableStack(anvil), new OreDictStack(DNT.ingot(), 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_ferrouranium, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_ferrouranium, 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_meteorite, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_meteorite, 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_schrabidate, 1), new ComparableStack(anvil), new OreDictStack(SBD.ingot(), 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_starmetal, 1), new ComparableStack(anvil), new OreDictStack(STAR.ingot(), 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_steel, 1), new ComparableStack(anvil), new OreDictStack(STEEL.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_desh, 1), new ComparableStack(anvil), new OreDictStack(DESH.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_saturnite, 1), new ComparableStack(anvil), new OreDictStack(BIGMT.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_ferrouranium, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_ferrouranium, 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_bismuth_bronze, 1), new ComparableStack(anvil), new OreDictStack(BBRONZE.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_arsenic_bronze, 1), new ComparableStack(anvil), new OreDictStack(ABRONZE.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_schrabidate, 1), new ComparableStack(anvil), new OreDictStack(SBD.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_dnt, 1), new ComparableStack(anvil), new OreDictStack(DNT.ingot(), 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_osmiridium, 1), new ComparableStack(anvil), new OreDictStack(OSMIRIDIUM.ingot(), 10))); } @@ -1034,8 +1035,8 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_boiler), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), - new AnvilOutput(new ItemStack(ModItems.plate_cast, 6, Mats.MAT_COPPER.id)), - new AnvilOutput(new ItemStack(ModItems.pipes_steel, 2)) + new AnvilOutput(new ItemStack(ModItems.pipe, 6, Mats.MAT_COPPER.id)), + new AnvilOutput(new ItemStack(ModItems.shell, 2, Mats.MAT_COPPER.id)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_cooler), new AnvilOutput[] { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index fbae0fe16..e9a83ed93 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -144,6 +144,8 @@ public class ModItems { public static Item ingot_advanced_alloy; public static Item ingot_tcalloy; public static Item ingot_cdalloy; + public static Item ingot_bismuth_bronze; + public static Item ingot_arsenic_bronze; public static Item lithium; public static Item ingot_zirconium; public static Item ingot_hes; @@ -2553,6 +2555,8 @@ public class ModItems { ingot_advanced_alloy = new Item().setUnlocalizedName("ingot_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_advanced_alloy"); ingot_tcalloy = new Item().setUnlocalizedName("ingot_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tcalloy"); ingot_cdalloy = new Item().setUnlocalizedName("ingot_cdalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cdalloy"); + ingot_bismuth_bronze = new Item().setUnlocalizedName("ingot_bismuth_bronze").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth_bronze"); + ingot_arsenic_bronze = new Item().setUnlocalizedName("ingot_arsenic_bronze").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_arsenic_bronze"); niter = new Item().setUnlocalizedName("niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":salpeter"); ingot_copper = new Item().setUnlocalizedName("ingot_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_copper"); @@ -5636,6 +5640,8 @@ public class ModItems { GameRegistry.registerItem(ingot_steel, ingot_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_tcalloy, ingot_tcalloy.getUnlocalizedName()); GameRegistry.registerItem(ingot_cdalloy, ingot_cdalloy.getUnlocalizedName()); + GameRegistry.registerItem(ingot_bismuth_bronze, ingot_bismuth_bronze.getUnlocalizedName()); + GameRegistry.registerItem(ingot_arsenic_bronze, ingot_arsenic_bronze.getUnlocalizedName()); GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName()); GameRegistry.registerItem(ingot_bismuth, ingot_bismuth.getUnlocalizedName()); GameRegistry.registerItem(ingot_arsenic, ingot_arsenic.getUnlocalizedName()); @@ -5653,7 +5659,6 @@ public class ModItems { GameRegistry.registerItem(ingot_bakelite, ingot_bakelite.getUnlocalizedName()); GameRegistry.registerItem(ingot_biorubber, ingot_biorubber.getUnlocalizedName()); GameRegistry.registerItem(ingot_rubber, ingot_rubber.getUnlocalizedName()); - //GameRegistry.registerItem(ingot_pet, ingot_pet.getUnlocalizedName()); GameRegistry.registerItem(ingot_pc, ingot_pc.getUnlocalizedName()); GameRegistry.registerItem(ingot_pvc, ingot_pvc.getUnlocalizedName()); GameRegistry.registerItem(ingot_mud, ingot_mud.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index cc6778d93..1f45289b3 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1291,12 +1291,18 @@ public class MainRegistry { ignoreMappings.add("hbm:item.rotor_steel"); ignoreMappings.add("hbm:item.generator_steel"); ignoreMappings.add("hbm:item.bolt_compound"); + ignoreMappings.add("hbm:tile.anvil_meteorite"); + ignoreMappings.add("hbm:tile.anvil_starmetal"); + ignoreMappings.add("hbm:tile.anvil_bismuth"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); remapItems.put("hbm:item.man_explosive8", ModItems.explosive_lenses); remapItems.put("hbm:item.briquette_lignite", ModItems.briquette); remapItems.put("hbm:item.antiknock", ModItems.fuel_additive); + remapItems.put("hbm:tile.anvil_meteorite", Item.getItemFromBlock(ModBlocks.anvil_desh)); + remapItems.put("hbm:tile.anvil_starmetal", Item.getItemFromBlock(ModBlocks.anvil_saturnite)); + remapItems.put("hbm:tile.anvil_bismuth", Item.getItemFromBlock(ModBlocks.anvil_bismuth_bronze)); for(MissingMapping mapping : event.get()) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index fe3f47e99..0c131ddb2 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -450,8 +450,10 @@ container.watzPowerplant=Watzkraftwerk container.zirnox=ZIRNOX Atomreaktor crucible.aa=Herstellung - Fortgeschrittene Legierung -crucible.cdalloy=Herstellung Cadmiumstahl -crucible.cmb=Herstellung CMB-Stahl +crucible.abronze=Herstellung - Arsennronze +crucible.bbronze=Herstellung - Bismutbronze +crucible.cdalloy=Herstellung - Cadmiumstahl +crucible.cmb=Herstellung - CMB-Stahl crucible.ferro=Herstellung - Ferrouran crucible.hematite=Herstellung - Eisen aus Hämatit crucible.hss=Herstellung - Schnellarbeitsstahl @@ -791,10 +793,12 @@ hbmmat.americiumrg=Reaktorfähiges Armericium hbmmat.americium241=Americium-241 hbmmat.americium242=Americium-242 hbmmat.arsenic=Arsen +hbmmat.arsenicbronze=Arsenbronze hbmmat.asbestos=Asbest hbmmat.bakelite=Bakelit hbmmat.beryllium=Beryllium hbmmat.bismuth=Bismut +hbmmat.bismuthbronze=Bismutbronze hbmmat.borax=Borax hbmmat.boron=Bor hbmmat.cadmium=Cadmium @@ -2114,6 +2118,7 @@ item.ingot_am241.name=Americium-241-Barren item.ingot_am242.name=Americium-242-Barren item.ingot_americium_fuel.name=Americiumkernbrennstoffbarren item.ingot_arsenic.name=Arsenbarren +item.ingot_arsenic_bronze.name=Arsenbronzebarren item.ingot_asbestos.name=Asbestplatte item.ingot_au198.name=Gold-198-Barren item.ingot_australium.name=Australiumbarren @@ -2121,6 +2126,7 @@ item.ingot_bakelite.name=Bakelittafel item.ingot_beryllium.name=Berylliumbarren item.ingot_biorubber.name=Latextafel item.ingot_bismuth.name=Bismutbarren +item.ingot_bismuth_bronze.name=Bismutbronzebarren item.ingot_boron.name=Borbarren item.ingot_c4.name=C4-Tafel item.ingot_cadmium.name=Cadmiumbarren @@ -3551,7 +3557,10 @@ tile.ams_base.name=AMS-Basis (Deko) tile.ams_emitter.name=AMS-Emitter (Deko) tile.ams_limiter.name=AMS-Stabilisator (Deko) tile.ancient_scrap.name=Antikes Altmetall +tile.anvil_arsenic_bronze.name=Arsenbronzeamboss tile.anvil_bismuth.name=Bismutamboss +tile.anvil_bismuth_bronze.name=Bismuthbronzeamboss +tile.anvil_desh.name=Deshamboss tile.anvil_dnt.name=Dineutroniumamboss tile.anvil_ferrouranium.name=Ferrouranamboss tile.anvil_iron.name=Eisenamboss @@ -3559,6 +3568,7 @@ tile.anvil_lead.name=Bleiamboss tile.anvil_meteorite.name=Meteoritenamboss tile.anvil_murky.name=Düsteramboss tile.anvil_osmiridium.name=Osmiridiumamboss +tile.anvil_saturnite.name=Saturnitamboss tile.anvil_schrabidate.name=Eisenschrabidatamboss tile.anvil_starmetal.name=Sternenmetallamboss tile.anvil_steel.name=Stahlamboss diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d742e6715..872fd2161 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -845,6 +845,8 @@ container.watzPowerplant=Watz Power Plant container.zirnox=ZIRNOX Nuclear Reactor crucible.aa=Advanced Alloy Production +crucible.abronze=Arsenic Bronze Production +crucible.bbronze=Bismuth Bronze Production crucible.cdalloy=Cadmium Steel Production crucible.cmb=CMB Steel Production crucible.ferro=Ferrouranium Production @@ -1482,10 +1484,12 @@ hbmmat.americiumrg=Reactor-Grade Americium hbmmat.americium241=Americium-241 hbmmat.americium242=Americium-242 hbmmat.arsenic=Arsenic +hbmmat.arsenicbronze=Arsenic Bronze hbmmat.asbestos=Asbestos hbmmat.bakelite=Bakelite hbmmat.beryllium=Beryllium hbmmat.bismuth=Bismuth +hbmmat.bismuthbronze=Bismuth Bronze hbmmat.borax=Borax hbmmat.boron=Boron hbmmat.cadmium=Cadmium @@ -2889,6 +2893,7 @@ item.ingot_am241.name=Americium-241 Ingot item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel item.ingot_arsenic.name=Arsenic Ingot +item.ingot_arsenic_bronze.name=Arsenic Bronze Ingot item.ingot_asbestos.name=Asbestos Sheet item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r item.ingot_au198.name=Gold-198 Ingot @@ -2897,6 +2902,7 @@ item.ingot_bakelite.name=Bakelite Bar item.ingot_beryllium.name=Beryllium Ingot item.ingot_biorubber.name=Latex Bar item.ingot_bismuth.name=Bismuth Ingot +item.ingot_bismuth_bronze.name=Bismuth Bronze Ingot item.ingot_boron.name=Boron Ingot item.ingot_c4.name=Bar of Composition C-4 item.ingot_cadmium.name=Cadmium Ingot @@ -4560,7 +4566,10 @@ tile.ams_base.name=AMS Base (Deco) tile.ams_emitter.name=AMS Emitter (Deco) tile.ams_limiter.name=AMS Stabilizer (Deco) tile.ancient_scrap.name=Ancient Scrap Metal +tile.anvil_arsenic_bronze.name=Arsenic Bronze Anvil tile.anvil_bismuth.name=Bismuth Anvil +tile.anvil_bismuth_bronze.name=Bismuth Bronze Anvil +tile.anvil_desh.name=Desh Anvil tile.anvil_dnt.name=Dineutronium Anvil tile.anvil_ferrouranium.name=Ferrouranium Anvil tile.anvil_iron.name=Iron Anvil @@ -4568,6 +4577,7 @@ tile.anvil_lead.name=Lead Anvil tile.anvil_meteorite.name=Meteorite Anvil tile.anvil_murky.name=Murky Anvil tile.anvil_osmiridium.name=Osmiridium Anvil +tile.anvil_saturnite.name=Saturnite Anvil tile.anvil_schrabidate.name=Ferric Schrabidate Anvil tile.anvil_starmetal.name=Starmetal Anvil tile.anvil_steel.name=Steel Anvil diff --git a/src/main/resources/assets/hbm/textures/blocks/anvil_arsenic_bronze.png b/src/main/resources/assets/hbm/textures/blocks/anvil_arsenic_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..8f27fa83f22af2b2750fb5b3bbe7feb31257d1f3 GIT binary patch literal 516 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 TM`lkJ00000NkvXXu0mjfM(y9r literal 0 HcmV?d00001 From c6eba58fa63382abae2baec0e24258c6e8d35174 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sun, 21 Apr 2024 11:02:54 -0400 Subject: [PATCH 351/376] hopefully a serverside crash fix --- .../com/hbm/handler/imc/IMCHandlerNHNEI.java | 58 +-------------- src/main/java/com/hbm/main/ClientProxy.java | 70 ++++++++++++++++++- src/main/java/com/hbm/main/MainRegistry.java | 3 +- src/main/java/com/hbm/main/NEIConfig.java | 58 ++------------- src/main/java/com/hbm/main/ServerProxy.java | 1 + 5 files changed, 77 insertions(+), 113 deletions(-) diff --git a/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java b/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java index e21d027f8..4df432805 100644 --- a/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java +++ b/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java @@ -11,64 +11,10 @@ import net.minecraft.nbt.NBTTagCompound; import java.util.ArrayList; +import static com.hbm.main.ClientProxy.handlerList; + public class IMCHandlerNHNEI { - - public static ArrayList handlerList() { - ArrayList handlers = new ArrayList<>(); - - handlers.add(new AlloyFurnaceRecipeHandler()); - handlers.add(new ShredderRecipeHandler()); - handlers.add(new PressRecipeHandler()); - handlers.add(new CentrifugeRecipeHandler()); - handlers.add(new GasCentrifugeRecipeHandler()); - handlers.add(new BreederRecipeHandler()); - handlers.add(new CyclotronRecipeHandler()); - handlers.add(new AssemblerRecipeHandler()); - handlers.add(new RefineryRecipeHandler()); - handlers.add(new VacuumRecipeHandler()); - handlers.add(new CrackingHandler()); - handlers.add(new ReformingHandler()); - handlers.add(new HydrotreatingHandler()); - handlers.add(new BoilerRecipeHandler()); - handlers.add(new ChemplantRecipeHandler()); - handlers.add(new CrystallizerRecipeHandler()); - handlers.add(new BookRecipeHandler()); - handlers.add(new FusionRecipeHandler()); - handlers.add(new HadronRecipeHandler()); - handlers.add(new SILEXRecipeHandler()); - handlers.add(new SmithingRecipeHandler()); - handlers.add(new AnvilRecipeHandler()); - handlers.add(new FuelPoolHandler()); - handlers.add(new FluidRecipeHandler()); - handlers.add(new RadiolysisRecipeHandler()); - handlers.add(new CrucibleSmeltingHandler()); - handlers.add(new CrucibleAlloyingHandler()); - handlers.add(new CrucibleCastingHandler()); - handlers.add(new ToolingHandler()); - handlers.add(new ConstructionHandler()); - //universal boyes - handlers.add(new ZirnoxRecipeHandler()); - if(VersatileConfig.rtgDecay()) { - handlers.add(new RTGRecipeHandler()); - } - handlers.add(new LiquefactionHandler()); - handlers.add(new SolidificationHandler()); - handlers.add(new CokingHandler()); - handlers.add(new FractioningHandler()); - handlers.add(new BoilingHandler()); - handlers.add(new CombinationHandler()); - handlers.add(new SawmillHandler()); - handlers.add(new MixerHandler()); - handlers.add(new OutgasserHandler()); - handlers.add(new ElectrolyserFluidHandler()); - handlers.add(new ElectrolyserMetalHandler()); - handlers.add(new AshpitHandler()); - handlers.add(new ArcWelderHandler()); - handlers.add(new ExposureChamberHandler()); - - return handlers; - } public static void IMCSender() { for (TemplateRecipeHandler handler: handlerList()) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index d0beabbc7..7e54077a5 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1,5 +1,10 @@ package com.hbm.main; +import codechicken.nei.recipe.TemplateRecipeHandler; +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.VersatileConfig; +import com.hbm.handler.imc.IMCHandlerNHNEI; +import com.hbm.handler.nei.*; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -155,7 +160,12 @@ public class ClientProxy extends ServerProxy { MinecraftForge.EVENT_BUS.register(handler); FMLCommonHandler.instance().bus().register(handler); } - + + @Override + public void handleNHNEICompat(){ + IMCHandlerNHNEI.IMCSender(); + } + @Override public void registerTileEntitySpecialRenderer() { //test crap @@ -2150,4 +2160,62 @@ public class ClientProxy extends ServerProxy { if(amplify) color = ColorUtil.amplifyColor(color); return color; } + + public static ArrayList handlerList() { + ArrayList handlers = new ArrayList<>(); + + handlers.add(new AlloyFurnaceRecipeHandler()); + handlers.add(new ShredderRecipeHandler()); + handlers.add(new PressRecipeHandler()); + handlers.add(new CentrifugeRecipeHandler()); + handlers.add(new GasCentrifugeRecipeHandler()); + handlers.add(new BreederRecipeHandler()); + handlers.add(new CyclotronRecipeHandler()); + handlers.add(new AssemblerRecipeHandler()); + handlers.add(new RefineryRecipeHandler()); + handlers.add(new VacuumRecipeHandler()); + handlers.add(new CrackingHandler()); + handlers.add(new ReformingHandler()); + handlers.add(new HydrotreatingHandler()); + handlers.add(new BoilerRecipeHandler()); + handlers.add(new ChemplantRecipeHandler()); + handlers.add(new CrystallizerRecipeHandler()); + handlers.add(new BookRecipeHandler()); + handlers.add(new FusionRecipeHandler()); + handlers.add(new HadronRecipeHandler()); + handlers.add(new SILEXRecipeHandler()); + handlers.add(new SmithingRecipeHandler()); + handlers.add(new AnvilRecipeHandler()); + handlers.add(new FuelPoolHandler()); + handlers.add(new FluidRecipeHandler()); + handlers.add(new RadiolysisRecipeHandler()); + handlers.add(new CrucibleSmeltingHandler()); + handlers.add(new CrucibleAlloyingHandler()); + handlers.add(new CrucibleCastingHandler()); + handlers.add(new ToolingHandler()); + handlers.add(new ConstructionHandler()); + + //universal boyes + handlers.add(new ZirnoxRecipeHandler()); + if(VersatileConfig.rtgDecay()) { + handlers.add(new RTGRecipeHandler()); + } + handlers.add(new LiquefactionHandler()); + handlers.add(new SolidificationHandler()); + handlers.add(new CokingHandler()); + handlers.add(new FractioningHandler()); + handlers.add(new BoilingHandler()); + handlers.add(new CombinationHandler()); + handlers.add(new SawmillHandler()); + handlers.add(new MixerHandler()); + handlers.add(new OutgasserHandler()); + handlers.add(new ElectrolyserFluidHandler()); + handlers.add(new ElectrolyserMetalHandler()); + handlers.add(new AshpitHandler()); + handlers.add(new ArcWelderHandler()); + handlers.add(new ExposureChamberHandler()); + + for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) handlers.add(new CustomMachineHandler(conf)); + return handlers; + } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 2cbe13204..974b2a722 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -816,10 +816,9 @@ public class MainRegistry { IMCHandler.registerHandler("centrifuge", new IMCCentrifuge()); if (Loader.isModLoaded("NotEnoughItems")){ if (Loader.instance().getIndexedModList().get("NotEnoughItems").getVersion().contains("GTNH")) { - IMCHandlerNHNEI.IMCSender(); + proxy.handleNHNEICompat(); } } - } @EventHandler diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 0fdff6386..d161a3645 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -25,64 +25,14 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import static com.hbm.main.ClientProxy.handlerList; + public class NEIConfig implements IConfigureNEI { @Override public void loadConfig() { - registerHandler(new AlloyFurnaceRecipeHandler()); - registerHandler(new ShredderRecipeHandler()); - registerHandler(new PressRecipeHandler()); - registerHandler(new CentrifugeRecipeHandler()); - registerHandler(new GasCentrifugeRecipeHandler()); - registerHandler(new BreederRecipeHandler()); - registerHandler(new CyclotronRecipeHandler()); - registerHandler(new AssemblerRecipeHandler()); - registerHandler(new RefineryRecipeHandler()); - registerHandler(new VacuumRecipeHandler()); - registerHandler(new CrackingHandler()); - registerHandler(new ReformingHandler()); - registerHandler(new HydrotreatingHandler()); - registerHandler(new BoilerRecipeHandler()); - registerHandler(new ChemplantRecipeHandler()); - registerHandler(new CrystallizerRecipeHandler()); - registerHandler(new BookRecipeHandler()); - registerHandler(new FusionRecipeHandler()); - registerHandler(new HadronRecipeHandler()); - registerHandler(new SILEXRecipeHandler()); - registerHandler(new SmithingRecipeHandler()); - registerHandler(new AnvilRecipeHandler()); - registerHandler(new FuelPoolHandler()); - registerHandler(new RadiolysisRecipeHandler()); - registerHandler(new CrucibleSmeltingHandler()); - registerHandler(new CrucibleAlloyingHandler()); - registerHandler(new CrucibleCastingHandler()); - registerHandler(new ToolingHandler()); - registerHandler(new ConstructionHandler()); - - //universal boyes - registerHandler(new ZirnoxRecipeHandler()); - if(VersatileConfig.rtgDecay()) { - registerHandler(new RTGRecipeHandler()); + for (TemplateRecipeHandler handler: handlerList()) { + registerHandler(handler); } - registerHandler(new LiquefactionHandler()); - registerHandler(new SolidificationHandler()); - registerHandler(new CokingHandler()); - registerHandler(new FractioningHandler()); - registerHandler(new BoilingHandler()); - registerHandler(new CombinationHandler()); - registerHandler(new SawmillHandler()); - registerHandler(new MixerHandler()); - registerHandler(new OutgasserHandler()); - registerHandler(new ElectrolyserFluidHandler()); - registerHandler(new ElectrolyserMetalHandler()); - registerHandler(new AshpitHandler()); - registerHandler(new ArcWelderHandler()); - registerHandler(new ExposureChamberHandler()); - - for(MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandlerBypass(new CustomMachineHandler(conf)); - - //fluids - registerHandler(new FluidRecipeHandler()); - //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); API.hideItem(ItemBattery.getFullBattery(ModItems.memory)); diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 15b9203bd..3e48b8e15 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -34,6 +34,7 @@ public class ServerProxy { public void registerItemRenderer() { } public void registerEntityRenderer() { } public void registerBlockRenderer() { } + public void handleNHNEICompat() { } public void particleControl(double x, double y, double z, int type) { } From f6ff864d21ca18449ab345e6ac88a166e58fcdae Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sun, 21 Apr 2024 11:39:06 -0400 Subject: [PATCH 352/376] Merge branch 'aaargh' of https://github.com/70000hp/Hbm-s-Nuclear-Tech-GIT into aaargh --- .../com/hbm/handler/imc/ICompatNHNEI.java | 14 ++++++++++ .../nei/AlloyFurnaceRecipeHandler.java | 16 +++++++++++- .../hbm/handler/nei/AnvilRecipeHandler.java | 26 ++++++++++++++++++- .../handler/nei/AssemblerRecipeHandler.java | 16 +++++++++++- .../hbm/handler/nei/BookRecipeHandler.java | 16 ++++++++++-- .../hbm/handler/nei/BreederRecipeHandler.java | 14 +++++++++- .../handler/nei/ChemplantRecipeHandler.java | 16 +++++++++++- .../hbm/handler/nei/ConstructionHandler.java | 8 ++++++ .../handler/nei/CrucibleAlloyingHandler.java | 12 ++++++++- .../handler/nei/CrucibleCastingHandler.java | 16 +++++++++++- .../handler/nei/CrucibleSmeltingHandler.java | 14 ++++++++-- .../handler/nei/CyclotronRecipeHandler.java | 15 +++++++++-- .../hbm/handler/nei/FluidRecipeHandler.java | 21 ++++++++++++++- .../hbm/handler/nei/FusionRecipeHandler.java | 15 +++++++++-- .../nei/GasCentrifugeRecipeHandler.java | 14 ++++++++-- .../hbm/handler/nei/HadronRecipeHandler.java | 13 +++++++++- .../hbm/handler/nei/NEIUniversalHandler.java | 17 +++++++++--- .../hbm/handler/nei/PressRecipeHandler.java | 15 ++++++++++- .../handler/nei/RadiolysisRecipeHandler.java | 15 +++++++++-- .../handler/nei/RefineryRecipeHandler.java | 13 +++++++++- .../hbm/handler/nei/SILEXRecipeHandler.java | 13 +++++++++- .../handler/nei/ShredderRecipeHandler.java | 13 +++++++++- .../handler/nei/SmithingRecipeHandler.java | 24 ++++++++++++++++- .../com/hbm/handler/nei/ToolingHandler.java | 10 ++++++- src/main/java/com/hbm/main/MainRegistry.java | 9 ++----- src/main/java/com/hbm/main/NEIConfig.java | 8 +++--- 26 files changed, 341 insertions(+), 42 deletions(-) create mode 100644 src/main/java/com/hbm/handler/imc/ICompatNHNEI.java diff --git a/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java b/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java new file mode 100644 index 000000000..37952c867 --- /dev/null +++ b/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java @@ -0,0 +1,14 @@ +package com.hbm.handler.imc; + +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; + +public interface ICompatNHNEI { + /**First item on the list is the icon for the recipe in the NEI GUI, the rest are displayed on the sidebar + * as other items that can be used for the same purpose**/ + ItemStack[] getMachinesForRecipe(); + + String getRecipeID(); + +} diff --git a/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java index 8b76d904b..ee1d09a5b 100644 --- a/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIDiFurnace; import com.hbm.inventory.recipes.BlastFurnaceRecipes; import com.hbm.inventory.recipes.MachineRecipes; @@ -17,10 +19,22 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class AlloyFurnaceRecipeHandler extends TemplateRecipeHandler { +public class AlloyFurnaceRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public static ArrayList fuels; + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_difurnace_off), + new ItemStack(ModBlocks.machine_difurnace_rtg_off)}; + } + + @Override + public String getRecipeID() { + return "alloysmelting"; + } + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input1; PositionedStack input2; diff --git a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java index 4df799a33..2621af6f1 100644 --- a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java @@ -7,7 +7,9 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.NTMAnvil; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; @@ -24,7 +26,29 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class AnvilRecipeHandler extends TemplateRecipeHandler { +public class AnvilRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.anvil_iron), + new ItemStack(ModBlocks.anvil_lead), + new ItemStack(ModBlocks.anvil_steel), + new ItemStack(ModBlocks.anvil_desh), + new ItemStack(ModBlocks.anvil_saturnite), + new ItemStack(ModBlocks.anvil_ferrouranium), + new ItemStack(ModBlocks.anvil_bismuth_bronze), + new ItemStack(ModBlocks.anvil_arsenic_bronze), + new ItemStack(ModBlocks.anvil_schrabidate), + new ItemStack(ModBlocks.anvil_dnt), + new ItemStack(ModBlocks.anvil_osmiridium), + new ItemStack(ModBlocks.anvil_murky)}; + } + + @Override + public String getRecipeID() { + return "ntmAnvil"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java index f533fc02c..d3ddb9df0 100644 --- a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineAssembler; import com.hbm.inventory.recipes.AssemblerRecipes; @@ -19,13 +21,25 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class AssemblerRecipeHandler extends TemplateRecipeHandler { +public class AssemblerRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); public LinkedList> guiGui = new LinkedList>(); + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_assembler), + new ItemStack(ModBlocks.machine_assemfac)}; + } + + @Override + public String getRecipeID() { + return "assembly"; + } + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { List input; diff --git a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java index 44e6c7ded..3b18cd6f6 100644 --- a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java @@ -4,6 +4,8 @@ import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -14,12 +16,22 @@ import com.hbm.inventory.recipes.MagicRecipes.MagicRecipe; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; +import com.hbm.items.ModItems; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class BookRecipeHandler extends TemplateRecipeHandler { +public class BookRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.book_of_)}; + } - public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + @Override + public String getRecipeID() { + return "book_of_boxcars"; + } + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { List input; PositionedStack result; diff --git a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java index 8f91f8d75..0fc3f70d2 100644 --- a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java @@ -5,6 +5,8 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineReactorBreeding; import com.hbm.inventory.recipes.BreederRecipes; import com.hbm.inventory.recipes.BreederRecipes.BreederRecipe; @@ -16,8 +18,18 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class BreederRecipeHandler extends TemplateRecipeHandler { +public class BreederRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_reactor_breeding)}; + } + + @Override + public String getRecipeID() { + return "breeding"; + } public class BreedingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input; diff --git a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java index 9ef27b9a9..b0b5e19a4 100644 --- a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -5,6 +5,8 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIMachineChemplant; @@ -20,14 +22,26 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class ChemplantRecipeHandler extends TemplateRecipeHandler { +public class ChemplantRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); public LinkedList> guiGui = new LinkedList>(); + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_chemplant), + new ItemStack(ModBlocks.machine_chemfac)}; + } + + @Override + public String getRecipeID() { + return "chemistry"; + } public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack[] itemIn = new PositionedStack[4]; PositionedStack[] fluidIn = new PositionedStack[2]; PositionedStack[] itemOut = new PositionedStack[4]; diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index 91f46bd1d..baf61bfc1 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -16,6 +16,14 @@ public class ConstructionHandler extends NEIUniversalHandler { super("Construction", getRecipes(true), getRecipes(false)); } + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.acetylene_torch), + new ItemStack(ModItems.blowtorch), + new ItemStack(ModItems.boltgun)}; + } + @Override public String getKey() { return "ntmConstruction"; diff --git a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java index 80ccd314b..4cdca10fe 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java @@ -6,6 +6,7 @@ import java.util.LinkedList; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.material.NTMMaterial; @@ -20,7 +21,16 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleAlloyingHandler extends TemplateRecipeHandler { +public class CrucibleAlloyingHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_crucible)}; + } + @Override + public String getRecipeID() { + return "ntmCrucibleAlloying"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java index 1befff001..eff865fb4 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java @@ -6,6 +6,8 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.material.Mats; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.items.machine.ItemMold; @@ -17,7 +19,19 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleCastingHandler extends TemplateRecipeHandler { +public class CrucibleCastingHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.foundry_basin), + new ItemStack(ModBlocks.foundry_mold), + new ItemStack(ModBlocks.machine_strand_caster)}; + } + @Override + public String getRecipeID() { + return "ntmCrucibleFoundry"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java index b6af31dc1..63bbc26e7 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.lib.RefStrings; @@ -19,8 +20,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleSmeltingHandler extends TemplateRecipeHandler { - +public class CrucibleSmeltingHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_crucible)}; + } + @Override + public String getRecipeID() { + return "ntmCrucibleSmelting"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java index b4f9221f2..51b0a6b6f 100644 --- a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineCyclotron; import com.hbm.inventory.recipes.CyclotronRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +18,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CyclotronRecipeHandler extends TemplateRecipeHandler { - +public class CyclotronRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_cyclotron)}; + } + + @Override + public String getRecipeID() { + return "cyclotronProcessing"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java index 792f4465f..a575f867f 100644 --- a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java @@ -5,7 +5,10 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.recipes.MachineRecipes; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; @@ -14,7 +17,23 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class FluidRecipeHandler extends TemplateRecipeHandler { +public class FluidRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.fluid_barrel_empty), + new ItemStack(ModItems.fluid_tank_empty), + new ItemStack(ModItems.fluid_tank_lead_empty), + new ItemStack(ModItems.canister_empty), + new ItemStack(ModItems.gas_empty), + new ItemStack(ModItems.cell_empty), + new ItemStack(ModItems.disperser_canister_empty), + new ItemStack(ModItems.glyphid_gland_empty)}; + } + @Override + public String getRecipeID() { + return "fluidcons"; + } public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { diff --git a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java index ff6624e23..f5a69a4ec 100644 --- a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIITER; import com.hbm.inventory.recipes.FusionRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +18,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class FusionRecipeHandler extends TemplateRecipeHandler { - +public class FusionRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.iter)}; + } + @Override + public String getRecipeID() { + return "fusion"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java index add9dcf95..085ec8b7a 100644 --- a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java @@ -9,6 +9,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineGasCent; import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.MachineRecipes; @@ -22,8 +24,16 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { - +public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_gascent)}; + } + @Override + public String getRecipeID() { + return "gascentprocessing"; + } public static ArrayList fuels; public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { diff --git a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java index cbd520858..b9325cd9c 100644 --- a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java @@ -8,6 +8,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIHadron; import com.hbm.inventory.recipes.HadronRecipes; import com.hbm.inventory.recipes.HadronRecipes.HadronRecipe; @@ -21,8 +23,17 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class HadronRecipeHandler extends TemplateRecipeHandler { +public class HadronRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.hadron_core)}; + } + @Override + public String getRecipeID() { + return "hadron"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 0bb53100a..06ad8caaf 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -10,6 +10,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.lib.RefStrings; import com.hbm.util.InventoryUtil; @@ -21,8 +23,13 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -public abstract class NEIUniversalHandler extends TemplateRecipeHandler { - +public abstract class NEIUniversalHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return machine; + } + public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); @@ -34,7 +41,6 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { public final HashMap recipes; public HashMap machineOverrides; /// SETUP /// - public NEIUniversalHandler(String display, ItemStack machine[], HashMap recipes) { this.display = display; this.machine = machine; @@ -305,4 +311,9 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { } public abstract String getKey(); + + @Override + public String getRecipeID() { + return getKey(); + } } diff --git a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java index fbc14c5cd..f0b2adefb 100644 --- a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.interfaces.Untested; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -25,8 +27,19 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; @Untested -public class PressRecipeHandler extends TemplateRecipeHandler { +public class PressRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_press), + new ItemStack(ModBlocks.machine_epress), + new ItemStack(ModBlocks.machine_conveyor_press)}; + } + @Override + public String getRecipeID() { + return "pressing"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java index 9d5d619d4..84cd78979 100644 --- a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java @@ -8,6 +8,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIRadiolysis; import com.hbm.inventory.recipes.RadiolysisRecipes; import com.hbm.lib.RefStrings; @@ -18,8 +20,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class RadiolysisRecipeHandler extends TemplateRecipeHandler { - +public class RadiolysisRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_radiolysis)}; + } + @Override + public String getRecipeID() { + return "ntmRadiolysis"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java index f3068bf17..f085e4ebe 100644 --- a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineRefinery; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +18,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class RefineryRecipeHandler extends TemplateRecipeHandler { +public class RefineryRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_refinery)}; + } + @Override + public String getRecipeID() { + return "refinery"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java index 444489abc..bc1363383 100644 --- a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUISILEX; import com.hbm.inventory.recipes.SILEXRecipes; import com.hbm.inventory.recipes.SILEXRecipes.SILEXRecipe; @@ -24,8 +26,17 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class SILEXRecipeHandler extends TemplateRecipeHandler { +public class SILEXRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_silex)}; + } + @Override + public String getRecipeID() { + return "silex"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java index 396109047..7524f5091 100644 --- a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineShredder; import com.hbm.inventory.recipes.MachineRecipes; @@ -19,8 +21,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class ShredderRecipeHandler extends TemplateRecipeHandler { +public class ShredderRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_shredder)}; + } + @Override + public String getRecipeID() { + return "ntmRadiolysis"; + } public static ArrayList fuels; public LinkedList transferRectsRec = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java index 35e698422..07e502064 100644 --- a/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java @@ -5,6 +5,8 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilSmithingRecipe; @@ -18,8 +20,28 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class SmithingRecipeHandler extends TemplateRecipeHandler { +public class SmithingRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.anvil_iron), + new ItemStack(ModBlocks.anvil_lead), + new ItemStack(ModBlocks.anvil_steel), + new ItemStack(ModBlocks.anvil_desh), + new ItemStack(ModBlocks.anvil_saturnite), + new ItemStack(ModBlocks.anvil_ferrouranium), + new ItemStack(ModBlocks.anvil_bismuth_bronze), + new ItemStack(ModBlocks.anvil_arsenic_bronze), + new ItemStack(ModBlocks.anvil_schrabidate), + new ItemStack(ModBlocks.anvil_dnt), + new ItemStack(ModBlocks.anvil_osmiridium), + new ItemStack(ModBlocks.anvil_murky)}; + } + @Override + public String getRecipeID() { + return "ntmSmithing"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/ToolingHandler.java b/src/main/java/com/hbm/handler/nei/ToolingHandler.java index c50074f1e..9c0420b18 100644 --- a/src/main/java/com/hbm/handler/nei/ToolingHandler.java +++ b/src/main/java/com/hbm/handler/nei/ToolingHandler.java @@ -1,9 +1,17 @@ package com.hbm.handler.nei; import com.hbm.blocks.generic.BlockToolConversion; +import com.hbm.items.ModItems; +import net.minecraft.item.ItemStack; public class ToolingHandler extends NEIUniversalHandler { - + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.boltgun), + new ItemStack(ModItems.blowtorch), + new ItemStack(ModItems.acetylene_torch)}; + } public ToolingHandler() { super("Tooling", BlockToolConversion.getRecipes(true), BlockToolConversion.getRecipes(false)); } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 59b5d6031..19578d3e4 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -52,13 +52,10 @@ import com.hbm.world.feature.OreCave; import com.hbm.world.feature.OreLayer3D; import com.hbm.world.feature.SchistStratum; import com.hbm.world.generator.CellularDungeonFactory; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.*; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.Mod.Metadata; -import cpw.mods.fml.common.ModMetadata; -import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; @@ -820,14 +817,12 @@ public class MainRegistry { IMCHandler.registerHandler("blastfurnace", new IMCBlastFurnace()); IMCHandler.registerHandler("crystallizer", new IMCCrystallizer()); IMCHandler.registerHandler("centrifuge", new IMCCentrifuge()); -<<<<<<< HEAD + if (Loader.isModLoaded("NotEnoughItems")){ if (Loader.instance().getIndexedModList().get("NotEnoughItems").getVersion().contains("GTNH")) { proxy.handleNHNEICompat(); } } -======= ->>>>>>> 13aaa627b243ad1b3aa7dc13c07882396fbdbfbb } @EventHandler diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 12e4d8b4f..d161a3645 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -1,12 +1,15 @@ package com.hbm.main; +import java.util.ArrayList; import java.util.List; +import codechicken.nei.recipe.*; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; import com.hbm.config.VersatileConfig; +import com.hbm.handler.imc.IMCHandlerNHNEI; import com.hbm.handler.nei.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; @@ -16,10 +19,6 @@ import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; import codechicken.nei.api.IHighlightHandler; import codechicken.nei.api.ItemInfo.Layout; -import codechicken.nei.recipe.GuiCraftingRecipe; -import codechicken.nei.recipe.GuiUsageRecipe; -import codechicken.nei.recipe.ICraftingHandler; -import codechicken.nei.recipe.IUsageHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -29,7 +28,6 @@ import net.minecraft.world.World; import static com.hbm.main.ClientProxy.handlerList; public class NEIConfig implements IConfigureNEI { - @Override public void loadConfig() { for (TemplateRecipeHandler handler: handlerList()) { From 5934a17d9012f899d01c86eaba9d1c5ba5b49d83 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 21 Apr 2024 18:13:25 +0200 Subject: [PATCH 353/376] [frantic autism music starts playing] --- README.md | 4 +++- changelog | 6 +++++- src/main/java/api/hbm/energymk2/PowerNetMK2.java | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 54734a685..fd29c9084 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,14 @@ [NTM on CurseForge](https://minecraft.curseforge.com/projects/hbms-nuclear-tech-mod?gameCategorySlug=mc-mods&projectID=235439) +[Official NTM Wiki](https://nucleartech.wiki/wiki/Main_Page) + **This is for 1.7.10!** For 1.12, check out these projects: * NTM Reloaded: https://github.com/TheOriginalGolem/Hbm-s-Nuclear-Tech-GIT/releases * NTM Extended Edition (Alcater): https://github.com/Alcatergit/Hbm-s-Nuclear-Tech-GIT/releases -For 1.18, try Martin's remake: https://github.com/MartinTheDragon/Nuclear-Tech-Mod-Remake/releases +For 1.18, try Martin's remake: https://codeberg.org/MartinTheDragon/Nuclear-Tech-Mod-Remake/releases ## Downloading pre-compiled versions from GitHub diff --git a/changelog b/changelog index 324262095..b1b577c15 100644 --- a/changelog +++ b/changelog @@ -10,4 +10,8 @@ ## Fixed * Limited assembler input to up to 10 attempts per ingredient, fixing a rare issue where the assembler freezes the server when pulling items * Fixed fallout effects not loading chunks -* Fixed RBMK steam channel recycling recipe \ No newline at end of file +* Fixed RBMK steam channel recycling recipe +* Rewrote the transfer part of the power system *again* + * The current system is a hybrid of the previous transfer code and the old system + * While a little bit slower than the previous transfer code, it is still much faster than the old system + * This should fix issues caused by order (as order is now entirely irrelevant, just like with the old system) as well as issues caused by buffers wasting transfer capacity doing nothing \ No newline at end of file diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index b10c928d6..ffb1ee64c 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -171,6 +171,8 @@ public class PowerNetMK2 { toTransfer -= energyUsed; } + + this.energyTracker += energyUsed; for(Pair entry : providers) { double weight = (double) entry.getValue() / (double) powerAvailable; @@ -330,6 +332,8 @@ public class PowerNetMK2 { toTransfer -= energyUsed; } + this.energyTracker += energyUsed; + return power - energyUsed; } From 0edf9a42fa6399353798fd69e028fead528a70a3 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 21 Apr 2024 21:11:36 +0200 Subject: [PATCH 354/376] and that's that --- changelog | 2 + gradle.properties | 2 +- .../com/hbm/handler/imc/IMCHandlerNHNEI.java | 91 +++++++------- .../com/hbm/handler/nei/RTGRecipeHandler.java | 1 - src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 62 --------- .../com/hbm/main/ModEventHandlerClient.java | 2 +- src/main/java/com/hbm/main/NEIConfig.java | 11 +- src/main/java/com/hbm/main/NEIRegistry.java | 119 ++++++++++++++++++ 9 files changed, 169 insertions(+), 123 deletions(-) create mode 100644 src/main/java/com/hbm/main/NEIRegistry.java diff --git a/changelog b/changelog index b1b577c15..453b77c79 100644 --- a/changelog +++ b/changelog @@ -6,6 +6,8 @@ ## Changed * Arsenic is now made from only 16 oils scrap (instead of 256) in an ore acidizer using high-performance solvent (instead of chemical plant using sulfuric acid) * Meteorite and starmetal anvils have been replaced with desh and saturnite ones +* Increased the nuke flash' intensity, having 100% occupancy at the peak instead of 80% +* NTM now has integration for GTNH's fork of NEI, listing all valid crafting machines on the side of the recipe page ## Fixed * Limited assembler input to up to 10 attempts per ingredient, fixing a rare issue where the assembler freezes the server when pulling items diff --git a/gradle.properties b/gradle.properties index 8892f2442..3de92c873 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4939 +mod_build_number=4942 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java b/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java index 4df432805..78defc553 100644 --- a/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java +++ b/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java @@ -1,66 +1,61 @@ package com.hbm.handler.imc; import codechicken.nei.recipe.TemplateRecipeHandler; -import com.hbm.config.VersatileConfig; -import com.hbm.handler.nei.*; import com.hbm.lib.RefStrings; -import com.hbm.main.NEIConfig; +import com.hbm.main.NEIRegistry; + import cpw.mods.fml.common.event.FMLInterModComms; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import java.util.ArrayList; - -import static com.hbm.main.ClientProxy.handlerList; - public class IMCHandlerNHNEI { - public static void IMCSender() { + public static void IMCSender() { - for (TemplateRecipeHandler handler: handlerList()) { + for(TemplateRecipeHandler handler : NEIRegistry.listAllHandlers()) { - Class handlerClass = handler.getClass(); + Class handlerClass = handler.getClass(); - if(handler instanceof ICompatNHNEI && ((ICompatNHNEI) handler).getMachinesForRecipe() != null) { - String blockName = "hbm:" + ((ICompatNHNEI) handler).getMachinesForRecipe()[0].getUnlocalizedName(); - String hClass = handlerClass.getName(); - sendHandler(hClass, ((ICompatNHNEI) handler).getRecipeID(), blockName); - for (ItemStack stack: ((ICompatNHNEI) handler).getMachinesForRecipe()) { - sendCatalyst(hClass, "hbm:" + stack.getUnlocalizedName()); - } - } - } + if(handler instanceof ICompatNHNEI && ((ICompatNHNEI) handler).getMachinesForRecipe() != null) { + String blockName = "hbm:" + ((ICompatNHNEI) handler).getMachinesForRecipe()[0].getUnlocalizedName(); + String hClass = handlerClass.getName(); + sendHandler(hClass, ((ICompatNHNEI) handler).getRecipeID(), blockName); + for(ItemStack stack : ((ICompatNHNEI) handler).getMachinesForRecipe()) { + sendCatalyst(hClass, "hbm:" + stack.getUnlocalizedName()); + } + } + } + } - } - private static void sendHandler(String aName, String handlerID, String aBlock) { - sendHandler(aName, handlerID, aBlock, 3); - } + private static void sendHandler(String aName, String handlerID, String aBlock) { + sendHandler(aName, handlerID, aBlock, 3); + } - private static void sendHandler(String aName, String handlerID, String aBlock, int maxRecipesPerPage) { - NBTTagCompound aNBT = new NBTTagCompound(); - aNBT.setString("handler", aName); - aNBT.setString("handlerID", handlerID); - aNBT.setString("modName", RefStrings.NAME); - aNBT.setString("modId", RefStrings.MODID); - aNBT.setBoolean("modRequired", true); - aNBT.setString("itemName", aBlock); - aNBT.setInteger("handlerHeight", 65); - aNBT.setInteger("handlerWidth", 166); - aNBT.setInteger("maxRecipesPerPage", maxRecipesPerPage); - aNBT.setInteger("yShift", 6); - FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", aNBT); - } + private static void sendHandler(String aName, String handlerID, String aBlock, int maxRecipesPerPage) { + NBTTagCompound aNBT = new NBTTagCompound(); + aNBT.setString("handler", aName); + aNBT.setString("handlerID", handlerID); + aNBT.setString("modName", RefStrings.NAME); + aNBT.setString("modId", RefStrings.MODID); + aNBT.setBoolean("modRequired", true); + aNBT.setString("itemName", aBlock); + aNBT.setInteger("handlerHeight", 65); + aNBT.setInteger("handlerWidth", 166); + aNBT.setInteger("maxRecipesPerPage", maxRecipesPerPage); + aNBT.setInteger("yShift", 6); + FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", aNBT); + } - private static void sendCatalyst(String aName, String aStack, int aPriority) { - NBTTagCompound aNBT = new NBTTagCompound(); - aNBT.setString("handlerID", aName); - aNBT.setString("catalystHandlerID", aName); - aNBT.setString("itemName", aStack); - aNBT.setInteger("priority", aPriority); - FMLInterModComms.sendMessage("NotEnoughItems", "registerCatalystInfo", aNBT); - } + private static void sendCatalyst(String aName, String aStack, int aPriority) { + NBTTagCompound aNBT = new NBTTagCompound(); + aNBT.setString("handlerID", aName); + aNBT.setString("catalystHandlerID", aName); + aNBT.setString("itemName", aStack); + aNBT.setInteger("priority", aPriority); + FMLInterModComms.sendMessage("NotEnoughItems", "registerCatalystInfo", aNBT); + } - private static void sendCatalyst(String aName, String aStack) { - sendCatalyst(aName, aStack, 0); - } + private static void sendCatalyst(String aName, String aStack) { + sendCatalyst(aName, aStack, 0); + } } diff --git a/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java index 77ea8225c..9a92cde64 100644 --- a/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java @@ -11,7 +11,6 @@ public class RTGRecipeHandler extends NEIUniversalHandler { super("RTG", new ItemStack[] { new ItemStack(ModBlocks.machine_rtg_grey), new ItemStack(ModBlocks.machine_difurnace_rtg_off), - new ItemStack(ModBlocks.machine_industrial_generator), new ItemStack(ModBlocks.machine_rtg_furnace_off) }, ItemRTGPellet.getRecipeMap()); } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 477c52bb5..84e65898f 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4939)"; + public static final String VERSION = "1.0.27 BETA (4942)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ed8282110..62e68fcc1 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1,10 +1,6 @@ package com.hbm.main; -import codechicken.nei.recipe.TemplateRecipeHandler; -import com.hbm.config.CustomMachineConfigJSON; -import com.hbm.config.VersatileConfig; import com.hbm.handler.imc.IMCHandlerNHNEI; -import com.hbm.handler.nei.*; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -2166,62 +2162,4 @@ public class ClientProxy extends ServerProxy { if(amplify) color = ColorUtil.amplifyColor(color); return color; } - - public static ArrayList handlerList() { - ArrayList handlers = new ArrayList<>(); - - handlers.add(new AlloyFurnaceRecipeHandler()); - handlers.add(new ShredderRecipeHandler()); - handlers.add(new PressRecipeHandler()); - handlers.add(new CentrifugeRecipeHandler()); - handlers.add(new GasCentrifugeRecipeHandler()); - handlers.add(new BreederRecipeHandler()); - handlers.add(new CyclotronRecipeHandler()); - handlers.add(new AssemblerRecipeHandler()); - handlers.add(new RefineryRecipeHandler()); - handlers.add(new VacuumRecipeHandler()); - handlers.add(new CrackingHandler()); - handlers.add(new ReformingHandler()); - handlers.add(new HydrotreatingHandler()); - handlers.add(new BoilerRecipeHandler()); - handlers.add(new ChemplantRecipeHandler()); - handlers.add(new CrystallizerRecipeHandler()); - handlers.add(new BookRecipeHandler()); - handlers.add(new FusionRecipeHandler()); - handlers.add(new HadronRecipeHandler()); - handlers.add(new SILEXRecipeHandler()); - handlers.add(new SmithingRecipeHandler()); - handlers.add(new AnvilRecipeHandler()); - handlers.add(new FuelPoolHandler()); - handlers.add(new FluidRecipeHandler()); - handlers.add(new RadiolysisRecipeHandler()); - handlers.add(new CrucibleSmeltingHandler()); - handlers.add(new CrucibleAlloyingHandler()); - handlers.add(new CrucibleCastingHandler()); - handlers.add(new ToolingHandler()); - handlers.add(new ConstructionHandler()); - - //universal boyes - handlers.add(new ZirnoxRecipeHandler()); - if(VersatileConfig.rtgDecay()) { - handlers.add(new RTGRecipeHandler()); - } - handlers.add(new LiquefactionHandler()); - handlers.add(new SolidificationHandler()); - handlers.add(new CokingHandler()); - handlers.add(new FractioningHandler()); - handlers.add(new BoilingHandler()); - handlers.add(new CombinationHandler()); - handlers.add(new SawmillHandler()); - handlers.add(new MixerHandler()); - handlers.add(new OutgasserHandler()); - handlers.add(new ElectrolyserFluidHandler()); - handlers.add(new ElectrolyserMetalHandler()); - handlers.add(new AshpitHandler()); - handlers.add(new ArcWelderHandler()); - handlers.add(new ExposureChamberHandler()); - - for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) handlers.add(new CustomMachineHandler(conf)); - return handlers; - } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index d8bf978c2..ebc4c3d4b 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -171,7 +171,7 @@ public class ModEventHandlerClient { GL11.glDepthMask(false); tess.startDrawingQuads(); float brightness = (flashTimestamp + flashDuration - System.currentTimeMillis()) / (float) flashDuration; - tess.setColorRGBA_F(1F, 1F, 1F, brightness * 0.8F); + tess.setColorRGBA_F(1F, 1F, 1F, brightness * 1F); tess.addVertex(width, 0, 0); tess.addVertex(0, 0, 0); tess.addVertex(0, height, 0); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index d161a3645..3671b9a2f 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -1,16 +1,10 @@ package com.hbm.main; -import java.util.ArrayList; import java.util.List; import codechicken.nei.recipe.*; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; -import com.hbm.config.CustomMachineConfigJSON; -import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; -import com.hbm.config.VersatileConfig; -import com.hbm.handler.imc.IMCHandlerNHNEI; -import com.hbm.handler.nei.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.lib.RefStrings; @@ -25,12 +19,11 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import static com.hbm.main.ClientProxy.handlerList; - public class NEIConfig implements IConfigureNEI { + @Override public void loadConfig() { - for (TemplateRecipeHandler handler: handlerList()) { + for (TemplateRecipeHandler handler: NEIRegistry.listAllHandlers()) { registerHandler(handler); } //Some things are even beyond my control...or are they? diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java new file mode 100644 index 000000000..d8bcfd593 --- /dev/null +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -0,0 +1,119 @@ +package com.hbm.main; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.VersatileConfig; +import com.hbm.handler.nei.AlloyFurnaceRecipeHandler; +import com.hbm.handler.nei.AnvilRecipeHandler; +import com.hbm.handler.nei.ArcWelderHandler; +import com.hbm.handler.nei.AshpitHandler; +import com.hbm.handler.nei.AssemblerRecipeHandler; +import com.hbm.handler.nei.BoilerRecipeHandler; +import com.hbm.handler.nei.BoilingHandler; +import com.hbm.handler.nei.BookRecipeHandler; +import com.hbm.handler.nei.BreederRecipeHandler; +import com.hbm.handler.nei.CentrifugeRecipeHandler; +import com.hbm.handler.nei.ChemplantRecipeHandler; +import com.hbm.handler.nei.CokingHandler; +import com.hbm.handler.nei.CombinationHandler; +import com.hbm.handler.nei.ConstructionHandler; +import com.hbm.handler.nei.CrackingHandler; +import com.hbm.handler.nei.CrucibleAlloyingHandler; +import com.hbm.handler.nei.CrucibleCastingHandler; +import com.hbm.handler.nei.CrucibleSmeltingHandler; +import com.hbm.handler.nei.CrystallizerRecipeHandler; +import com.hbm.handler.nei.CustomMachineHandler; +import com.hbm.handler.nei.CyclotronRecipeHandler; +import com.hbm.handler.nei.ElectrolyserFluidHandler; +import com.hbm.handler.nei.ElectrolyserMetalHandler; +import com.hbm.handler.nei.ExposureChamberHandler; +import com.hbm.handler.nei.FluidRecipeHandler; +import com.hbm.handler.nei.FractioningHandler; +import com.hbm.handler.nei.FuelPoolHandler; +import com.hbm.handler.nei.FusionRecipeHandler; +import com.hbm.handler.nei.GasCentrifugeRecipeHandler; +import com.hbm.handler.nei.HadronRecipeHandler; +import com.hbm.handler.nei.HydrotreatingHandler; +import com.hbm.handler.nei.LiquefactionHandler; +import com.hbm.handler.nei.MixerHandler; +import com.hbm.handler.nei.OutgasserHandler; +import com.hbm.handler.nei.PressRecipeHandler; +import com.hbm.handler.nei.RTGRecipeHandler; +import com.hbm.handler.nei.RadiolysisRecipeHandler; +import com.hbm.handler.nei.RefineryRecipeHandler; +import com.hbm.handler.nei.ReformingHandler; +import com.hbm.handler.nei.SILEXRecipeHandler; +import com.hbm.handler.nei.SawmillHandler; +import com.hbm.handler.nei.ShredderRecipeHandler; +import com.hbm.handler.nei.SmithingRecipeHandler; +import com.hbm.handler.nei.SolidificationHandler; +import com.hbm.handler.nei.ToolingHandler; +import com.hbm.handler.nei.VacuumRecipeHandler; +import com.hbm.handler.nei.ZirnoxRecipeHandler; + +import codechicken.nei.recipe.TemplateRecipeHandler; + +public class NEIRegistry { + + public static List handlers = new ArrayList(); + + public static List listAllHandlers() { + + if(!handlers.isEmpty()) return handlers; + + handlers.add(new AlloyFurnaceRecipeHandler()); + handlers.add(new ShredderRecipeHandler()); + handlers.add(new PressRecipeHandler()); + handlers.add(new CentrifugeRecipeHandler()); + handlers.add(new GasCentrifugeRecipeHandler()); + handlers.add(new BreederRecipeHandler()); + handlers.add(new CyclotronRecipeHandler()); + handlers.add(new AssemblerRecipeHandler()); + handlers.add(new RefineryRecipeHandler()); + handlers.add(new VacuumRecipeHandler()); + handlers.add(new CrackingHandler()); + handlers.add(new ReformingHandler()); + handlers.add(new HydrotreatingHandler()); + handlers.add(new BoilerRecipeHandler()); + handlers.add(new ChemplantRecipeHandler()); + handlers.add(new CrystallizerRecipeHandler()); + handlers.add(new BookRecipeHandler()); + handlers.add(new FusionRecipeHandler()); + handlers.add(new HadronRecipeHandler()); + handlers.add(new SILEXRecipeHandler()); + handlers.add(new SmithingRecipeHandler()); + handlers.add(new AnvilRecipeHandler()); + handlers.add(new FuelPoolHandler()); + handlers.add(new FluidRecipeHandler()); + handlers.add(new RadiolysisRecipeHandler()); + handlers.add(new CrucibleSmeltingHandler()); + handlers.add(new CrucibleAlloyingHandler()); + handlers.add(new CrucibleCastingHandler()); + handlers.add(new ToolingHandler()); + handlers.add(new ConstructionHandler()); + + //universal boyes + handlers.add(new ZirnoxRecipeHandler()); + if(VersatileConfig.rtgDecay()) handlers.add(new RTGRecipeHandler()); + handlers.add(new LiquefactionHandler()); + handlers.add(new SolidificationHandler()); + handlers.add(new CokingHandler()); + handlers.add(new FractioningHandler()); + handlers.add(new BoilingHandler()); + handlers.add(new CombinationHandler()); + handlers.add(new SawmillHandler()); + handlers.add(new MixerHandler()); + handlers.add(new OutgasserHandler()); + handlers.add(new ElectrolyserFluidHandler()); + handlers.add(new ElectrolyserMetalHandler()); + handlers.add(new AshpitHandler()); + handlers.add(new ArcWelderHandler()); + handlers.add(new ExposureChamberHandler()); + + for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) handlers.add(new CustomMachineHandler(conf)); + + return handlers; + } +} From 3ab501682d5b4d13a22aca0a2af05e3b108b3378 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 22 Apr 2024 16:15:49 +0200 Subject: [PATCH 355/376] even more spring cleaning --- changelog | 31 +- src/main/java/com/hbm/blocks/BlockEnums.java | 8 + src/main/java/com/hbm/blocks/ModBlocks.java | 119 +- .../com/hbm/blocks/generic/BlockCrate.java | 1 - .../hbm/blocks/generic/BlockMeteorOre.java | 13 + .../generic/BlockMeteoriteTreasure.java | 33 + .../java/com/hbm/blocks/generic/BlockOre.java | 78 +- .../com/hbm/blocks/machine/BlockAMSBase.java | 108 - .../hbm/blocks/machine/BlockAMSEmitter.java | 116 - .../hbm/blocks/machine/BlockAMSLimiter.java | 186 -- .../blocks/machine/BlockHadronPlating.java | 1 - .../com/hbm/blocks/machine/BlockObserver.java | 83 - .../hbm/blocks/machine/DummyBlockAMSBase.java | 105 - .../blocks/machine/DummyBlockAMSEmitter.java | 105 - .../blocks/machine/DummyBlockAMSLimiter.java | 105 - .../com/hbm/blocks/machine/FWatzCore.java | 21 - .../com/hbm/blocks/machine/FWatzHatch.java | 167 -- .../com/hbm/blocks/machine/MachineICF.java | 31 + .../blocks/machine/MachineSeleniumEngine.java | 126 - .../java/com/hbm/blocks/machine/UVLamp.java | 37 - .../com/hbm/crafting/SmeltingRecipes.java | 17 +- .../java/com/hbm/entity/EntityMappings.java | 1 - .../java/com/hbm/entity/mob/EntityFBI.java | 1 - .../entity/projectile/EntityDischarge.java | 595 ----- .../hbm/explosion/ExplosionNukeGeneric.java | 2 +- .../com/hbm/handler/imc/ICompatNHNEI.java | 14 +- .../hbm/handler/nei/BookRecipeHandler.java | 1 - .../hbm/handler/nei/FluidRecipeHandler.java | 1 - .../hbm/handler/nei/NEIUniversalHandler.java | 1 - .../java/com/hbm/hazard/HazardRegistry.java | 1 + .../com/hbm/inventory/OreDictManager.java | 20 +- .../inventory/container/ContainerAMSBase.java | 154 -- .../container/ContainerAMSEmitter.java | 116 - .../container/ContainerAMSLimiter.java | 127 - .../container/ContainerFWatzCore.java | 119 - .../container/ContainerMachineSelenium.java | 93 - .../com/hbm/inventory/gui/GUIAMSBase.java | 99 - .../com/hbm/inventory/gui/GUIAMSEmitter.java | 65 - .../com/hbm/inventory/gui/GUIAMSLimiter.java | 70 - .../com/hbm/inventory/gui/GUIFWatzCore.java | 64 - .../hbm/inventory/gui/GUIMachineSelenium.java | 76 - .../inventory/recipes/AssemblerRecipes.java | 12 +- .../inventory/recipes/CentrifugeRecipes.java | 6 - .../com/hbm/itempool/ItemPoolsSingle.java | 25 + src/main/java/com/hbm/items/ModItems.java | 2 - .../com/hbm/items/block/ItemBlockLore.java | 3 +- .../com/hbm/items/special/ItemStarterKit.java | 1 - .../java/com/hbm/items/tool/ItemWandS.java | 104 - .../java/com/hbm/items/weapon/GunEMPRay.java | 152 -- .../hbm/items/weapon/gununified/GunFrame.java | 4 +- src/main/java/com/hbm/lib/Library.java | 4 - .../java/com/hbm/lib/ModDamageSource.java | 12 +- src/main/java/com/hbm/main/ClientProxy.java | 7 +- .../java/com/hbm/main/CraftingManager.java | 8 +- src/main/java/com/hbm/main/MainRegistry.java | 33 +- src/main/java/com/hbm/main/NEIConfig.java | 6 - .../java/com/hbm/main/ResourceManager.java | 58 +- .../java/com/hbm/packet/AuxGaugePacket.java | 39 - .../entity/effect/ElectricityRenderer.java | 79 - .../hbm/render/item/ItemRenderLibrary.java | 18 - .../hbm/render/tileentity/RenderAMSBase.java | 134 - .../render/tileentity/RenderAMSEmitter.java | 145 -- .../render/tileentity/RenderAMSLimiter.java | 297 --- .../com/hbm/render/tileentity/RenderICF.java | 37 + .../render/tileentity/RenderPlasmaHeater.java | 23 +- .../hbm/render/tileentity/RenderSelenium.java | 55 - .../java/com/hbm/tileentity/TileMappings.java | 7 +- .../tileentity/machine/TileEntityAMSBase.java | 548 ---- .../machine/TileEntityAMSEmitter.java | 425 --- .../machine/TileEntityAMSLimiter.java | 435 ---- .../machine/TileEntityCoreReceiver.java | 2 +- .../machine/TileEntityFWatzCore.java | 447 ---- .../hbm/tileentity/machine/TileEntityICF.java | 49 + .../TileEntityMachineSeleniumEngine.java | 180 -- .../tileentity/machine/TileEntityUVLamp.java | 7 - .../java/com/hbm/world/feature/Meteorite.java | 37 +- .../java/com/hbm/world/machine/FWatz.java | 562 ---- .../assets/hbm/models/BombGenericLarge.obj | 685 ----- .../resources/assets/hbm/models/ams_base.obj | 344 --- .../assets/hbm/models/ams_emitter.obj | 1490 ----------- .../hbm/models/ams_emitter_destroyed.obj | 2295 ----------------- .../assets/hbm/models/ams_limiter.obj | 1301 ---------- .../hbm/models/ams_limiter_destroyed.obj | 1975 -------------- .../assets/hbm/models/cel_prime_battery.obj | 127 - .../assets/hbm/models/cel_prime_port.obj | 75 - .../assets/hbm/models/cel_prime_tanks.obj | 151 -- .../assets/hbm/models/cel_prime_terminal.obj | 77 - .../assets/hbm/models/cel_prime_tower.obj | 281 -- .../assets/hbm/models/chemplant_main.obj | 1870 -------------- .../assets/hbm/models/chemplant_main_new.obj | 1733 ------------- .../assets/hbm/models/chemplant_piston.obj | 150 -- .../assets/hbm/models/drill_bolt.obj | 1595 ------------ .../assets/hbm/models/drill_main.obj | 1810 ------------- .../resources/assets/hbm/models/generator.obj | 1625 ------------ .../assets/hbm/models/generator_body.obj | 1844 ------------- .../assets/hbm/models/generator_rotor.obj | 818 ------ .../assets/hbm/models/missileNuclear.obj | 794 ------ .../assets/hbm/models/missilePad.obj | 172 -- .../hbm/models/{machines => reactors}/icf.obj | 0 .../hbm/models/selenium_engine_body.obj | 586 ----- .../hbm/models/selenium_engine_piston.obj | 531 ---- .../hbm/models/selenium_engine_rotor.obj | 176 -- .../resources/assets/hbm/models/untitled.obj | 887 ------- .../assets/hbm/models/vault_frame_old.obj | 1576 ----------- ...aluminium.png => ore_meteor.aluminium.png} | Bin .../hbm/textures/blocks/ore_meteor.cobalt.png | Bin 0 -> 734 bytes ...eteor_copper.png => ore_meteor.copper.png} | Bin .../hbm/textures/blocks/ore_meteor.iron.png | Bin 0 -> 701 bytes .../textures/blocks/ore_meteor.rareearth.png | Bin 0 -> 737 bytes .../hbm/textures/blocks/ore_meteor_lead.png | Bin 683 -> 0 bytes .../textures/blocks/ore_meteor_lithium.png | Bin 687 -> 0 bytes .../textures/blocks/ore_meteor_starmetal.png | Bin 805 -> 0 bytes .../hbm/textures/blocks/ore_meteor_sulfur.png | Bin 748 -> 0 bytes .../textures/blocks/ore_meteor_thorium.png | Bin 672 -> 0 bytes .../textures/blocks/ore_meteor_titanium.png | Bin 774 -> 0 bytes .../textures/blocks/ore_meteor_tungsten.png | Bin 647 -> 0 bytes .../textures/blocks/ore_meteor_uranium.png | Bin 746 -> 0 bytes .../assets/hbm/textures/models/ams_base.png | Bin 6602 -> 0 bytes .../hbm/textures/models/ams_destroyed.png | Bin 19291 -> 0 bytes .../hbm/textures/models/ams_emitter.png | Bin 24687 -> 0 bytes .../hbm/textures/models/ams_limiter.png | Bin 10493 -> 0 bytes .../textures/models/selenium_engine_body.png | Bin 5320 -> 0 bytes .../models/selenium_engine_piston.png | Bin 6343 -> 0 bytes .../textures/models/selenium_engine_rotor.png | Bin 2229 -> 0 bytes 124 files changed, 326 insertions(+), 31716 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockMeteorOre.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockMeteoriteTreasure.java delete mode 100644 src/main/java/com/hbm/blocks/machine/BlockAMSBase.java delete mode 100644 src/main/java/com/hbm/blocks/machine/BlockAMSEmitter.java delete mode 100644 src/main/java/com/hbm/blocks/machine/BlockAMSLimiter.java delete mode 100644 src/main/java/com/hbm/blocks/machine/BlockObserver.java delete mode 100644 src/main/java/com/hbm/blocks/machine/DummyBlockAMSBase.java delete mode 100644 src/main/java/com/hbm/blocks/machine/DummyBlockAMSEmitter.java delete mode 100644 src/main/java/com/hbm/blocks/machine/DummyBlockAMSLimiter.java delete mode 100644 src/main/java/com/hbm/blocks/machine/FWatzCore.java delete mode 100644 src/main/java/com/hbm/blocks/machine/FWatzHatch.java create mode 100644 src/main/java/com/hbm/blocks/machine/MachineICF.java delete mode 100644 src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java delete mode 100644 src/main/java/com/hbm/blocks/machine/UVLamp.java delete mode 100644 src/main/java/com/hbm/entity/projectile/EntityDischarge.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerAMSBase.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerAMSEmitter.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerAMSLimiter.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerFWatzCore.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineSelenium.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIAMSBase.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIAMSEmitter.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIAMSLimiter.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIFWatzCore.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java delete mode 100644 src/main/java/com/hbm/items/weapon/GunEMPRay.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/ElectricityRenderer.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderAMSBase.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderAMSEmitter.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderAMSLimiter.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderICF.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderSelenium.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityICF.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityUVLamp.java delete mode 100644 src/main/java/com/hbm/world/machine/FWatz.java delete mode 100644 src/main/resources/assets/hbm/models/BombGenericLarge.obj delete mode 100644 src/main/resources/assets/hbm/models/ams_base.obj delete mode 100644 src/main/resources/assets/hbm/models/ams_emitter.obj delete mode 100644 src/main/resources/assets/hbm/models/ams_emitter_destroyed.obj delete mode 100644 src/main/resources/assets/hbm/models/ams_limiter.obj delete mode 100644 src/main/resources/assets/hbm/models/ams_limiter_destroyed.obj delete mode 100644 src/main/resources/assets/hbm/models/cel_prime_battery.obj delete mode 100644 src/main/resources/assets/hbm/models/cel_prime_port.obj delete mode 100644 src/main/resources/assets/hbm/models/cel_prime_tanks.obj delete mode 100644 src/main/resources/assets/hbm/models/cel_prime_terminal.obj delete mode 100644 src/main/resources/assets/hbm/models/cel_prime_tower.obj delete mode 100644 src/main/resources/assets/hbm/models/chemplant_main.obj delete mode 100644 src/main/resources/assets/hbm/models/chemplant_main_new.obj delete mode 100644 src/main/resources/assets/hbm/models/chemplant_piston.obj delete mode 100644 src/main/resources/assets/hbm/models/drill_bolt.obj delete mode 100644 src/main/resources/assets/hbm/models/drill_main.obj delete mode 100644 src/main/resources/assets/hbm/models/generator.obj delete mode 100644 src/main/resources/assets/hbm/models/generator_body.obj delete mode 100644 src/main/resources/assets/hbm/models/generator_rotor.obj delete mode 100644 src/main/resources/assets/hbm/models/missileNuclear.obj delete mode 100644 src/main/resources/assets/hbm/models/missilePad.obj rename src/main/resources/assets/hbm/models/{machines => reactors}/icf.obj (100%) delete mode 100644 src/main/resources/assets/hbm/models/selenium_engine_body.obj delete mode 100644 src/main/resources/assets/hbm/models/selenium_engine_piston.obj delete mode 100644 src/main/resources/assets/hbm/models/selenium_engine_rotor.obj delete mode 100644 src/main/resources/assets/hbm/models/untitled.obj delete mode 100644 src/main/resources/assets/hbm/models/vault_frame_old.obj rename src/main/resources/assets/hbm/textures/blocks/{ore_meteor_aluminium.png => ore_meteor.aluminium.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor.cobalt.png rename src/main/resources/assets/hbm/textures/blocks/{ore_meteor_copper.png => ore_meteor.copper.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor.iron.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor.rareearth.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor_lead.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor_lithium.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor_starmetal.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor_sulfur.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor_thorium.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor_titanium.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor_tungsten.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_meteor_uranium.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ams_base.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ams_destroyed.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ams_emitter.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ams_limiter.png delete mode 100644 src/main/resources/assets/hbm/textures/models/selenium_engine_body.png delete mode 100644 src/main/resources/assets/hbm/textures/models/selenium_engine_piston.png delete mode 100644 src/main/resources/assets/hbm/textures/models/selenium_engine_rotor.png diff --git a/changelog b/changelog index 453b77c79..73897882e 100644 --- a/changelog +++ b/changelog @@ -1,19 +1,22 @@ ## Added -* Bismuth bronze and arsenic bronze - * Kind of self-explanatory - * Can be made into anvils, allows for an alternative that doesn't involve 10 entire ingots of bismuth for a single anvil +* New meteorite ores + * All previous meteorite ores have been removed (each took up an entire block ID...) which have been replaced with a single block that uses metadata + * There's now only five variants with the contents chosen to be especially useful in earlygame: iron, copper, aluminium, rare earth and cobalt + * Each ore smelts into 16 items, except for cobalt which yields only 4 ingots + * All meteorite ores are now equally likely to spawn + * The new ores can only be smelted, shredding or other processing is not possible ## Changed -* Arsenic is now made from only 16 oils scrap (instead of 256) in an ore acidizer using high-performance solvent (instead of chemical plant using sulfuric acid) -* Meteorite and starmetal anvils have been replaced with desh and saturnite ones -* Increased the nuke flash' intensity, having 100% occupancy at the peak instead of 80% -* NTM now has integration for GTNH's fork of NEI, listing all valid crafting machines on the side of the recipe page +* The Souyz' recipe is now available in the standard template folder +* Removed some unused crap + * UV lamps (2 IDs) + * AMS (9 IDs) + * Rotary engine (1 ID) + * FWatz (8 IDs) + * Meteorite ores (10 IDs) +* The loot pool for meteorite treasure blocks has been updated + * Treasures are no longer senselessly progression breaking, radioactive or plain stupid (whole-ass machines inside meteorites) + * The treasure now consists of mainly some rarer earlygame ingots, circuits, some gear, a small selection of armor mods and alexandrite (rare) ## Fixed -* Limited assembler input to up to 10 attempts per ingredient, fixing a rare issue where the assembler freezes the server when pulling items -* Fixed fallout effects not loading chunks -* Fixed RBMK steam channel recycling recipe -* Rewrote the transfer part of the power system *again* - * The current system is a hybrid of the previous transfer code and the old system - * While a little bit slower than the previous transfer code, it is still much faster than the old system - * This should fix issues caused by order (as order is now entirely irrelevant, just like with the old system) as well as issues caused by buffers wasting transfer capacity doing nothing \ No newline at end of file +* Fixed DFC receivers not outputting power \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index d78b45671..bf35a4e17 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -11,6 +11,14 @@ public class BlockEnums { BAUXITE } + public static enum EnumMeteorType { + IRON, + COPPER, + ALUMINIUM, + RAREEARTH, + COBALT + } + public static enum EnumBiomeType { DESERT, WOODLAND diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 899843fef..47fe280ed 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -87,16 +87,7 @@ public class ModBlocks { public static Block ore_nether_cobalt; public static Block ore_nether_schrabidium; - public static Block ore_meteor_uranium; - public static Block ore_meteor_thorium; - public static Block ore_meteor_titanium; - public static Block ore_meteor_sulfur; - public static Block ore_meteor_copper; - public static Block ore_meteor_tungsten; - public static Block ore_meteor_aluminium; - public static Block ore_meteor_lead; - public static Block ore_meteor_lithium; - public static Block ore_meteor_starmetal; + public static Block ore_meteor; public static Block stone_gneiss; public static Block ore_gneiss_iron; @@ -309,8 +300,6 @@ public class ModBlocks { public static Block lamp_tritium_blue_off; public static Block lamp_tritium_blue_on; - public static Block lamp_uv_off; - public static Block lamp_uv_on; public static Block lamp_demon; public static Block lantern; @@ -527,9 +516,6 @@ public class ModBlocks { public static Block geysir_vapor; public static Block geysir_nether; - public static Block observer_off; - public static Block observer_on; - public static Block flame_war; public static Block float_bomb; public static Block therm_endo; @@ -907,6 +893,8 @@ public class ModBlocks { public static Block iter; public static Block plasma_heater; + public static Block icf; + public static Block watz; public static Block watz_pump; @@ -915,23 +903,10 @@ public class ModBlocks { public static Block watz_cooler; public static Block watz_end; public static Block watz_conductor; - - public static Block fwatz_conductor; - public static Block fwatz_cooler; - public static Block fwatz_tank; - public static Block fwatz_scaffold; - public static Block fwatz_hatch; - public static Block fwatz_computer; - public static Block fwatz_core; - public static Block fwatz_plasma; public static Block balefire; public static Block fire_digamma; public static Block digamma_matter; - - public static Block ams_base; - public static Block ams_emitter; - public static Block ams_limiter; public static Block dfc_emitter; public static Block dfc_injector; @@ -1040,8 +1015,6 @@ public class ModBlocks { public static Block machine_turbofan; public static Block machine_turbinegas; - public static Block machine_selenium; - public static Block press_preheater; public static Block machine_press; public static Block machine_epress; @@ -1098,7 +1071,6 @@ public class ModBlocks { public static Block turret_howard_damaged; public static Block turret_maxwell; public static Block turret_fritz; - //public static Block turret_brandon; public static Block turret_arty; public static Block turret_himars; public static Block turret_sentry; @@ -1212,7 +1184,7 @@ public class ModBlocks { } @Override - public Material setImmovableMobility() { + public Material setImmovableMobility() { //override access modifier return super.setImmovableMobility(); } @@ -1231,12 +1203,6 @@ public class ModBlocks { public static Block volcano_core; public static Block volcano_rad_core; - public static Block dummy_block_ams_limiter; - public static Block dummy_port_ams_limiter; - public static Block dummy_block_ams_emitter; - public static Block dummy_port_ams_emitter; - public static Block dummy_block_ams_base; - public static Block dummy_port_ams_base; public static Block dummy_block_vault; public static Block dummy_block_blast; public static Block dummy_block_uf6; @@ -1300,16 +1266,7 @@ public class ModBlocks { ore_nether_cobalt = new BlockOre(Material.rock).setBlockName("ore_nether_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_cobalt"); ore_nether_schrabidium = new BlockGeneric(Material.rock).setBlockName("ore_nether_schrabidium").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_schrabidium"); - ore_meteor_uranium = new BlockOre(Material.rock).setBlockName("ore_meteor_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_uranium"); - ore_meteor_thorium = new BlockOre(Material.rock).setBlockName("ore_meteor_thorium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_thorium"); - ore_meteor_titanium = new BlockOre(Material.rock).setBlockName("ore_meteor_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_titanium"); - ore_meteor_sulfur = new BlockOre(Material.rock).setBlockName("ore_meteor_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_sulfur"); - ore_meteor_copper = new BlockOre(Material.rock).setBlockName("ore_meteor_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_copper"); - ore_meteor_tungsten = new BlockOre(Material.rock).setBlockName("ore_meteor_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_tungsten"); - ore_meteor_aluminium = new BlockOre(Material.rock).setBlockName("ore_meteor_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_aluminium"); - ore_meteor_lead = new BlockOre(Material.rock).setBlockName("ore_meteor_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_lead"); - ore_meteor_lithium = new BlockOre(Material.rock).setBlockName("ore_meteor_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_lithium"); - ore_meteor_starmetal = new BlockOre(Material.rock).setBlockName("ore_meteor_starmetal").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_starmetal"); + ore_meteor = new BlockMeteorOre().setBlockName("ore_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); stone_gneiss = new BlockGeneric(Material.rock).setBlockName("stone_gneiss").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":stone_gneiss_var"); ore_gneiss_iron = new BlockOre(Material.rock).setBlockName("ore_gneiss_iron").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_iron"); @@ -1527,8 +1484,6 @@ public class ModBlocks { lamp_tritium_blue_off = new TritiumLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_blue_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_off"); lamp_tritium_blue_on = new TritiumLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_blue_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_on"); - lamp_uv_off = new UVLamp(false).setBlockName("lamp_uv_off").setCreativeTab(MainRegistry.blockTab); - lamp_uv_on = new UVLamp(true).setBlockName("lamp_uv_on").setCreativeTab(null); lamp_demon = new DemonLamp().setBlockName("lamp_demon").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_demon"); lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(null).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); @@ -1603,7 +1558,7 @@ public class ModBlocks { block_meteor_cobble = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); block_meteor_broken = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); block_meteor_molten = new BlockOre(Material.rock, true).noFortune().setBlockName("block_meteor_molten").setLightLevel(0.75F).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble_molten"); - block_meteor_treasure = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_treasure").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_treasure"); + block_meteor_treasure = new BlockMeteoriteTreasure(Material.rock).setBlockName("block_meteor_treasure").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_treasure"); meteor_polished = new BlockGeneric(Material.rock).setBlockName("meteor_polished").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_polished"); meteor_brick = new BlockGeneric(Material.rock).setBlockName("meteor_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick"); meteor_brick_mossy = new BlockGeneric(Material.rock).setBlockName("meteor_brick_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_mossy"); @@ -1742,9 +1697,6 @@ public class ModBlocks { geysir_vapor = new BlockGeysir(Material.rock).setBlockName("geysir_vapor").setStepSound(Block.soundTypeStone).setHardness(5.0F); geysir_nether = new BlockGeysir(Material.rock).setBlockName("geysir_nether").setLightLevel(1.0F).setStepSound(Block.soundTypeStone).setHardness(2.0F); - observer_off = new BlockObserver(Material.iron, false).setBlockName("observer_off").setStepSound(Block.soundTypeStone).setHardness(2.0F); - observer_on = new BlockObserver(Material.iron, true).setBlockName("observer_on").setStepSound(Block.soundTypeStone).setHardness(2.0F); - nuke_gadget = new NukeGadget(Material.iron).setBlockName("nuke_gadget").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":theGadget"); nuke_boy = new NukeBoy(Material.iron).setBlockName("nuke_boy").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":lilBoy"); nuke_man = new NukeMan(Material.iron).setBlockName("nuke_man").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":fatMan"); @@ -1758,7 +1710,6 @@ public class ModBlocks { nuke_fstbmb = new NukeBalefire(Material.iron).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); - //bomb_multi_large = new BombMultiLarge(Material.iron).setBlockName("bomb_multi_large").setCreativeTab(MainRegistry.tabNuke).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi_large"); flame_war = new BombFlameWar(Material.iron).setBlockName("flame_war").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":flame_war"); float_bomb = new BombFloat(Material.iron).setBlockName("float_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); @@ -2055,6 +2006,8 @@ public class ModBlocks { plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma"); iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":iter"); plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); + + icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); watz_element = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_element_top").setBlockName("watz_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_element_side"); watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side"); @@ -2063,24 +2016,11 @@ public class ModBlocks { watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top"); watz = new Watz().setBlockName("watz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); watz_pump = new WatzPump().setBlockName("watz_pump").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - fwatz_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":block_combine_steel").setBlockName("fwatz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_conductor_side"); - fwatz_cooler = new BlockPillar(Material.iron, RefStrings.MODID + ":fwatz_cooler_top").setBlockName("fwatz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_cooler"); - fwatz_tank = new BlockNTMGlass(0, RefStrings.MODID + ":fwatz_tank", Material.iron).setBlockName("fwatz_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - fwatz_scaffold = new BlockGeneric(Material.iron).setBlockName("fwatz_scaffold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_scaffold"); - fwatz_hatch = new FWatzHatch(Material.iron).setBlockName("fwatz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_computer"); - fwatz_computer = new BlockGeneric(Material.iron).setBlockName("fwatz_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_computer"); - fwatz_core = new FWatzCore(Material.iron).setBlockName("fwatz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_core"); - fwatz_plasma = new BlockPlasma(Material.iron).setBlockName("fwatz_plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_plasma"); balefire = new Balefire().setBlockName("balefire").setHardness(0.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":balefire"); fire_digamma = new DigammaFlame().setBlockName("fire_digamma").setHardness(0.0F).setResistance(150F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fire_digamma"); digamma_matter = new DigammaMatter().setBlockName("digamma_matter").setBlockUnbreakable().setResistance(18000000).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":digamma_matter"); - ams_base = new BlockAMSBase(Material.iron).setBlockName("ams_base").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":ams_base"); - ams_emitter = new BlockAMSEmitter(Material.iron).setBlockName("ams_emitter").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":ams_emitter"); - ams_limiter = new BlockAMSLimiter(Material.iron).setBlockName("ams_limiter").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":ams_limiter"); - machine_converter_he_rf = new BlockConverterHeRf(Material.iron).setBlockName("machine_converter_he_rf").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_converter_he_rf"); machine_converter_rf_he = new BlockConverterRfHe(Material.iron).setBlockName("machine_converter_rf_he").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_converter_rf_he"); @@ -2262,7 +2202,6 @@ public class ModBlocks { machine_press = new MachinePress(Material.iron).setBlockName("machine_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_press"); machine_epress = new MachineEPress(Material.iron).setBlockName("machine_epress").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_epress"); machine_conveyor_press = new MachineConveyorPress(Material.iron).setBlockName("machine_conveyor_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_selenium = new MachineSeleniumEngine(Material.iron).setBlockName("machine_selenium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_selenium"); reactor_research = new ReactorResearch(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small"); reactor_zirnox = new ReactorZirnox(Material.iron).setBlockName("machine_zirnox").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2396,12 +2335,6 @@ public class ModBlocks { Fluid liquidConcrete = new GenericFluid("concrete_liquid").setViscosity(2000); concrete_liquid = new GenericFiniteFluid(liquidConcrete, Material.rock, "concrete_liquid", "concrete_liquid_flowing").setQuantaPerBlock(4).setBlockName("concrete_liquid").setResistance(500F); - dummy_block_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_block_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_port_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_port_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_block_ams_emitter = new DummyBlockAMSEmitter(Material.iron).setBlockName("dummy_block_ams_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_port_ams_emitter = new DummyBlockAMSEmitter(Material.iron).setBlockName("dummy_port_ams_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_block_ams_base = new DummyBlockAMSBase(Material.iron).setBlockName("dummy_block_ams_base").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_port_ams_base = new DummyBlockAMSBase(Material.iron).setBlockName("dummy_port_ams_base").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); dummy_block_vault = new DummyBlockVault(Material.iron).setBlockName("dummy_block_vault").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_blast = new DummyBlockBlast(Material.iron).setBlockName("dummy_block_blast").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_uf6 = new DummyBlockMachine(Material.iron, machine_uf6_tank, false).setBlockName("dummy_block_uf6").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); @@ -2487,16 +2420,7 @@ public class ModBlocks { GameRegistry.registerBlock(ore_nether_schrabidium, ItemBlockLore.class, ore_nether_schrabidium.getUnlocalizedName()); //Meteor Ores - GameRegistry.registerBlock(ore_meteor_uranium, ore_meteor_uranium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_thorium, ore_meteor_thorium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_titanium, ore_meteor_titanium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_sulfur, ore_meteor_sulfur.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_copper, ore_meteor_copper.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_tungsten, ore_meteor_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_aluminium, ore_meteor_aluminium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_lead, ore_meteor_lead.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_lithium, ore_meteor_lithium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_starmetal, ore_meteor_starmetal.getUnlocalizedName()); + register(ore_meteor); //Gneiss Ores GameRegistry.registerBlock(ore_gneiss_iron, ore_gneiss_iron.getUnlocalizedName()); @@ -2698,8 +2622,6 @@ public class ModBlocks { GameRegistry.registerBlock(lamp_tritium_green_on, lamp_tritium_green_on.getUnlocalizedName()); GameRegistry.registerBlock(lamp_tritium_blue_off, lamp_tritium_blue_off.getUnlocalizedName()); GameRegistry.registerBlock(lamp_tritium_blue_on, lamp_tritium_blue_on.getUnlocalizedName()); - GameRegistry.registerBlock(lamp_uv_off, lamp_uv_off.getUnlocalizedName()); - GameRegistry.registerBlock(lamp_uv_on, lamp_uv_on.getUnlocalizedName()); GameRegistry.registerBlock(lamp_demon, lamp_demon.getUnlocalizedName()); GameRegistry.registerBlock(lantern, lantern.getUnlocalizedName()); GameRegistry.registerBlock(lantern_behemoth, lantern_behemoth.getUnlocalizedName()); @@ -3124,7 +3046,6 @@ public class ModBlocks { GameRegistry.registerBlock(machine_rtg_furnace_on, machine_rtg_furnace_on.getUnlocalizedName()); register(machine_wood_burner); register(machine_diesel); - register(machine_selenium); register(machine_combustion_engine); GameRegistry.registerBlock(machine_generator, machine_generator.getUnlocalizedName()); GameRegistry.registerBlock(machine_controller, machine_controller.getUnlocalizedName()); @@ -3416,6 +3337,8 @@ public class ModBlocks { GameRegistry.registerBlock(plasma, ItemBlockLore.class, plasma.getUnlocalizedName()); GameRegistry.registerBlock(iter, iter.getUnlocalizedName()); GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); + + GameRegistry.registerBlock(icf, icf.getUnlocalizedName()); GameRegistry.registerBlock(watz_element, watz_element.getUnlocalizedName()); GameRegistry.registerBlock(watz_control, watz_control.getUnlocalizedName()); @@ -3424,15 +3347,6 @@ public class ModBlocks { GameRegistry.registerBlock(watz_conductor, watz_conductor.getUnlocalizedName()); GameRegistry.registerBlock(watz, watz.getUnlocalizedName()); GameRegistry.registerBlock(watz_pump, watz_pump.getUnlocalizedName()); - - GameRegistry.registerBlock(fwatz_conductor, fwatz_conductor.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_scaffold, fwatz_scaffold.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_hatch, fwatz_hatch.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_computer, fwatz_computer.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_core, fwatz_core.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_cooler, fwatz_cooler.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_tank, fwatz_tank.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_plasma, fwatz_plasma.getUnlocalizedName()); //E GameRegistry.registerBlock(balefire, balefire.getUnlocalizedName()); @@ -3441,11 +3355,6 @@ public class ModBlocks { register(volcano_core); register(volcano_rad_core); - //AMS - GameRegistry.registerBlock(ams_base, ams_base.getUnlocalizedName()); - GameRegistry.registerBlock(ams_emitter, ams_emitter.getUnlocalizedName()); - GameRegistry.registerBlock(ams_limiter, ams_limiter.getUnlocalizedName()); - //Dark Fusion Core GameRegistry.registerBlock(dfc_emitter, dfc_emitter.getUnlocalizedName()); GameRegistry.registerBlock(dfc_injector, dfc_injector.getUnlocalizedName()); @@ -3523,12 +3432,6 @@ public class ModBlocks { //GameRegistry.registerBlock(concrete_liquid, concrete_liquid.getUnlocalizedName()); //Multiblock Dummy Blocks - GameRegistry.registerBlock(dummy_block_ams_limiter, dummy_block_ams_limiter.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_ams_limiter, dummy_port_ams_limiter.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_ams_emitter, dummy_block_ams_emitter.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_ams_emitter, dummy_port_ams_emitter.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_ams_base, dummy_block_ams_base.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_ams_base, dummy_port_ams_base.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_vault, dummy_block_vault.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_blast, dummy_block_blast.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_uf6, dummy_block_uf6.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index c372460cf..2fa11286c 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -126,7 +126,6 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 7); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_wood_burner), 10); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_selenium), 7); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.red_pylon), 9); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_battery), 8); diff --git a/src/main/java/com/hbm/blocks/generic/BlockMeteorOre.java b/src/main/java/com/hbm/blocks/generic/BlockMeteorOre.java new file mode 100644 index 000000000..b749d830f --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockMeteorOre.java @@ -0,0 +1,13 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.blocks.BlockEnums; + +import net.minecraft.block.material.Material; + +public class BlockMeteorOre extends BlockEnumMulti { + + public BlockMeteorOre() { + super(Material.rock, BlockEnums.EnumMeteorType.class, true, true); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockMeteoriteTreasure.java b/src/main/java/com/hbm/blocks/generic/BlockMeteoriteTreasure.java new file mode 100644 index 000000000..26eac3878 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockMeteoriteTreasure.java @@ -0,0 +1,33 @@ +package com.hbm.blocks.generic; + +import java.util.ArrayList; + +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsSingle; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraft.world.World; + +public class BlockMeteoriteTreasure extends Block { + + public BlockMeteoriteTreasure(Material mat) { + super(mat); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + + int count = 1 + world.rand.nextInt(3); + WeightedRandomChestContent[] pool = ItemPool.getPool(ItemPoolsSingle.POOL_METEORITE_TREASURE); + + for(int i = 0; i < count; i++) { + ret.add(ItemPool.getStack(pool, world.rand)); + } + + return ret; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index e22d2e1f1..36cd4e00c 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -50,7 +50,7 @@ public class BlockOre extends Block { if(this == ModBlocks.ore_niter) { return ModItems.niter; } - if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur) { + if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur) { return ModItems.sulfur; } if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) { @@ -77,80 +77,6 @@ public class BlockOre extends Block { if(this == ModBlocks.block_meteor_broken) { return ModItems.fragment_meteorite; } - if(this == ModBlocks.block_meteor_treasure) { - switch(rand.nextInt(36)) { - case 0: - return ModItems.coil_advanced_alloy; - case 1: - return ModItems.plate_advanced_alloy; - case 2: - return ModItems.powder_desh_mix; - case 3: - return ModItems.ingot_desh; - case 4: - return ModItems.battery_advanced; - case 5: - return ModItems.battery_lithium_cell; - case 6: - return ModItems.battery_advanced_cell; - case 7: - return ModItems.nugget_schrabidium; - case 8: - return ModItems.ingot_plutonium; - case 9: - return ModItems.ingot_thorium_fuel; - case 10: - return ModItems.ingot_u233; - case 11: - return ModItems.turbine_tungsten; - case 12: - return ModItems.ingot_dura_steel; - case 13: - return ModItems.ingot_polymer; - case 14: - return ModItems.ingot_tungsten; - case 15: - return ModItems.ingot_combine_steel; - case 16: - return ModItems.ingot_lanthanium; - case 17: - return ModItems.ingot_actinium; - case 18: - return Item.getItemFromBlock(ModBlocks.block_meteor); - case 19: - return Item.getItemFromBlock(ModBlocks.fusion_heater); - case 20: - return ModItems.circuit_red_copper; - case 21: - return Item.getItemFromBlock(ModBlocks.watz_element); - case 22: - return Item.getItemFromBlock(ModBlocks.ore_rare); - case 23: - return Item.getItemFromBlock(ModBlocks.fusion_conductor); - case 24: - return Item.getItemFromBlock(ModBlocks.pwr_fuel); - case 25: - return Item.getItemFromBlock(ModBlocks.machine_diesel); - case 26: - return Item.getItemFromBlock(ModBlocks.machine_rtg_grey); - case 27: - return ModItems.pellet_rtg; - case 28: - return ModItems.pellet_rtg_weak; - case 29: - return ModItems.rtg_unit; - case 30: - return ModItems.gun_spark_ammo; - case 31: case 32: - return ModItems.ammo_nuke; - case 33: - return ModItems.gun_defabricator_ammo; - case 34: - return ModItems.gun_osipr_ammo2; - case 35: - return ModItems.glitch; - } - } if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) { return ModItems.chunk_ore; } @@ -184,7 +110,7 @@ public class BlockOre extends Block { if(this == ModBlocks.ore_niter) { return 2 + rand.nextInt(3); } - if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur) { + if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur) { return 2 + rand.nextInt(3); } if(this == ModBlocks.block_meteor_broken) { diff --git a/src/main/java/com/hbm/blocks/machine/BlockAMSBase.java b/src/main/java/com/hbm/blocks/machine/BlockAMSBase.java deleted file mode 100644 index 082d0f962..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockAMSBase.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class BlockAMSBase extends BlockContainer implements IMultiblock { - - public BlockAMSBase(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityAMSBase(); - } - - @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()) - { - TileEntityAMSBase entity = (TileEntityAMSBase) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSBaseDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSBaseDimension, ModBlocks.dummy_block_ams_base); - - DummyBlockAMSBase.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_ams_base); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_ams_base); - TileEntity te2 = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_ams_base); - TileEntity te3 = world.getTileEntity(x - 1, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_ams_base); - TileEntity te4 = world.getTileEntity(x, y , z + 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSBase.safeBreak = false; - - } else - world.func_147480_a(x, y, z, true); - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/BlockAMSEmitter.java b/src/main/java/com/hbm/blocks/machine/BlockAMSEmitter.java deleted file mode 100644 index ae627fa60..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockAMSEmitter.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class BlockAMSEmitter extends BlockContainer implements IMultiblock { - - public BlockAMSEmitter(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityAMSEmitter(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @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()) - { - TileEntityAMSEmitter entity = (TileEntityAMSEmitter) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSEmitterDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSEmitterDimension, ModBlocks.dummy_block_ams_emitter); - - DummyBlockAMSEmitter.safeBreak = true; - world.setBlock(x, y + 5, z, ModBlocks.dummy_port_ams_emitter); - TileEntity te = world.getTileEntity(x, y + 5, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y + 5, z - 1, ModBlocks.dummy_port_ams_emitter); - TileEntity te2 = world.getTileEntity(x, y + 5, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y + 5, z, ModBlocks.dummy_port_ams_emitter); - TileEntity te3 = world.getTileEntity(x + 1, y + 5, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y + 5, z, ModBlocks.dummy_port_ams_emitter); - TileEntity te4 = world.getTileEntity(x - 1, y + 5, z); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y + 5, z + 1, ModBlocks.dummy_port_ams_emitter); - TileEntity te5 = world.getTileEntity(x, y + 5, z + 1); - if(te5 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te5; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSEmitter.safeBreak = false; - - } else - world.func_147480_a(x, y, z, true); - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/BlockAMSLimiter.java b/src/main/java/com/hbm/blocks/machine/BlockAMSLimiter.java deleted file mode 100644 index 234fc9cfa..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockAMSLimiter.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class BlockAMSLimiter extends BlockContainer implements IMultiblock { - - public BlockAMSLimiter(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityAMSLimiter(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @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()) - { - TileEntityAMSLimiter entity = (TileEntityAMSLimiter) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if (i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSLimiterDimensionEast)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSLimiterDimensionEast, ModBlocks.dummy_block_ams_limiter); - - // - DummyBlockAMSLimiter.safeBreak = true; - world.setBlock(x + 2, y, z, ModBlocks.dummy_port_ams_limiter); - TileEntity te = world.getTileEntity(x + 2, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z, ModBlocks.dummy_port_ams_limiter); - TileEntity te2 = world.getTileEntity(x - 2, y, z); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSLimiter.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSLimiterDimensionSouth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSLimiterDimensionSouth, ModBlocks.dummy_block_ams_limiter); - - // - DummyBlockAMSLimiter.safeBreak = true; - world.setBlock(x, y, z + 2, ModBlocks.dummy_port_ams_limiter); - TileEntity te = world.getTileEntity(x, y, z + 2); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 2, ModBlocks.dummy_port_ams_limiter); - TileEntity te2 = world.getTileEntity(x, y, z - 2); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSLimiter.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSLimiterDimensionWest)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSLimiterDimensionWest, ModBlocks.dummy_block_ams_limiter); - - // - DummyBlockAMSLimiter.safeBreak = true; - world.setBlock(x + 2, y, z, ModBlocks.dummy_port_ams_limiter); - TileEntity te = world.getTileEntity(x + 2, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z, ModBlocks.dummy_port_ams_limiter); - TileEntity te2 = world.getTileEntity(x - 2, y, z); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSLimiter.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSLimiterDimensionNorth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSLimiterDimensionNorth, ModBlocks.dummy_block_ams_limiter); - - // - DummyBlockAMSLimiter.safeBreak = true; - world.setBlock(x, y, z + 2, ModBlocks.dummy_port_ams_limiter); - TileEntity te = world.getTileEntity(x, y, z + 2); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 2, ModBlocks.dummy_port_ams_limiter); - TileEntity te2 = world.getTileEntity(x, y, z - 2); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSLimiter.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java b/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java index 11298909e..87aa47822 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java @@ -8,5 +8,4 @@ public class BlockHadronPlating extends Block { public BlockHadronPlating(Material mat) { super(mat); } - } diff --git a/src/main/java/com/hbm/blocks/machine/BlockObserver.java b/src/main/java/com/hbm/blocks/machine/BlockObserver.java deleted file mode 100644 index e1dfa027f..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockObserver.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockPistonBase; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class BlockObserver extends Block { - - private boolean isActive; - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - @SideOnly(Side.CLIENT) - private IIcon iconBack; - - public BlockObserver(Material mat, boolean isActive) { - super(mat); - this.isActive = isActive; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconBack = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":observer_back_on" : ":observer_back_off")); - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":observer_front"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":observer_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - ForgeDirection dir = ForgeDirection.getOrientation(metadata); - ForgeDirection opp = dir.getOpposite(); - return side == dir.ordinal() ? iconFront : side == opp.ordinal() ? iconBack : blockIcon; - } - - @Override - public Item getItemDropped(int meta, Random rand, int luck) { - return Item.getItemFromBlock(ModBlocks.observer_off); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { - int l = BlockPistonBase.determineOrientation(world, x, y, z, player); - world.setBlockMetadataWithNotify(x, y, z, l, 2); - - if(this.isActive) - world.scheduleBlockUpdate(x, y, z, this, 2); - } - - @Override - public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { - - if(!this.isActive) { - - } - } - - @Override - public boolean canProvidePower() { - return this.isActive; - } - - @Override - public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int side) { - return this.isActive ? 15 : 0; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSBase.java b/src/main/java/com/hbm/blocks/machine/DummyBlockAMSBase.java deleted file mode 100644 index 92e1ffdc3..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSBase.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockAMSBase extends BlockContainer implements IDummy { - - public static boolean safeBreak = false; - - public DummyBlockAMSBase(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) - { - if(!safeBreak) { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - //world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i); - if(!world.isRemote) - world.func_147480_a(a, b, c, true); - } - } - world.removeTileEntity(x, y, z); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.ams_base); - } - - @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()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityAMSBase entity = (TileEntityAMSBase) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c); - } - } - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSEmitter.java b/src/main/java/com/hbm/blocks/machine/DummyBlockAMSEmitter.java deleted file mode 100644 index a6d6f40d6..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSEmitter.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockAMSEmitter extends BlockContainer implements IDummy { - - public static boolean safeBreak = false; - - public DummyBlockAMSEmitter(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) - { - if(!safeBreak) { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - //world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i); - if(!world.isRemote) - world.func_147480_a(a, b, c, true); - } - } - world.removeTileEntity(x, y, z); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.ams_emitter); - } - - @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()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityAMSEmitter entity = (TileEntityAMSEmitter) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c); - } - } - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSLimiter.java b/src/main/java/com/hbm/blocks/machine/DummyBlockAMSLimiter.java deleted file mode 100644 index 330756b58..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSLimiter.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockAMSLimiter extends BlockContainer implements IDummy { - - public static boolean safeBreak = false; - - public DummyBlockAMSLimiter(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) - { - if(!safeBreak) { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - //world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i); - if(!world.isRemote) - world.func_147480_a(a, b, c, true); - } - } - world.removeTileEntity(x, y, z); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.ams_limiter); - } - - @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()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityAMSLimiter entity = (TileEntityAMSLimiter) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c); - } - } - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/FWatzCore.java b/src/main/java/com/hbm/blocks/machine/FWatzCore.java deleted file mode 100644 index 252cbab01..000000000 --- a/src/main/java/com/hbm/blocks/machine/FWatzCore.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.machine.TileEntityFWatzCore; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class FWatzCore extends BlockContainer { - - public FWatzCore(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityFWatzCore(); - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java b/src/main/java/com/hbm/blocks/machine/FWatzHatch.java deleted file mode 100644 index d93735c53..000000000 --- a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java +++ /dev/null @@ -1,167 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityFWatzCore; - -import api.hbm.energymk2.IEnergyConnectorBlock; -import api.hbm.fluid.IFluidConnectorBlock; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class FWatzHatch extends Block implements IEnergyConnectorBlock, IFluidConnectorBlock { - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - private IIcon iconTop; - - public FWatzHatch(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_hatch"); - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_scaffold"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_scaffold"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : (metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon))); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(this); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - //this.setDefaultDirection(world, x, y, z); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - - //this is fucking atrocious - @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()) - { - if(world.getBlockMetadata(x, y, z) == 2) - { - if(world.getTileEntity(x, y + 11, z + 9) instanceof TileEntityFWatzCore) - { - if(((TileEntityFWatzCore)world.getTileEntity(x, y + 11, z + 9)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y + 11, z + 9); - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 3) - { - if(world.getTileEntity(x, y + 11, z - 9) instanceof TileEntityFWatzCore) - { - if(((TileEntityFWatzCore)world.getTileEntity(x, y + 11, z - 9)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y + 11, z - 9); - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 4) - { - if(world.getTileEntity(x + 9, y + 11, z) instanceof TileEntityFWatzCore) - { - if(((TileEntityFWatzCore)world.getTileEntity(x + 9, y + 11, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x + 9, y + 11, z); - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 5) - { - if(world.getTileEntity(x - 9, y + 11, z) instanceof TileEntityFWatzCore) - { - if(((TileEntityFWatzCore)world.getTileEntity(x - 9, y + 11, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x - 9, y + 11, z); - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Core not found!")); - } - } - return true; - } else { - return false; - } - } - - @Override - public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { - return type == Fluids.AMAT || type == Fluids.ASCHRAB; - } - - @Override - public boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { - return true; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineICF.java b/src/main/java/com/hbm/blocks/machine/MachineICF.java new file mode 100644 index 000000000..2ea957f46 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineICF.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.machine.TileEntityICF; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineICF extends BlockDummyable { + + public MachineICF() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityICF(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {5, 0, 1, 1, 8, 8}; + } + + @Override + public int getOffset() { + return 1; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java deleted file mode 100644 index 933514087..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class MachineSeleniumEngine extends BlockContainer { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - - public MachineSeleniumEngine(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineSeleniumEngine(); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - if(!keepInventory) { - TileEntityMachineSeleniumEngine tileentityfurnace = (TileEntityMachineSeleniumEngine) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if(tileentityfurnace != null) { - for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if(itemstack != null) { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while(itemstack.stackSize > 0) { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if(j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if(itemstack.hasTagCompound()) { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @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()) { - TileEntityMachineSeleniumEngine entity = (TileEntityMachineSeleniumEngine) world.getTileEntity(x, y, z); - if(entity != null) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/UVLamp.java b/src/main/java/com/hbm/blocks/machine/UVLamp.java deleted file mode 100644 index 482448dad..000000000 --- a/src/main/java/com/hbm/blocks/machine/UVLamp.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.BlockDummyable; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityUVLamp; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class UVLamp extends BlockDummyable { - - public UVLamp(boolean isOn) { - super(Material.iron); - this.setStepSound(Block.soundTypeMetal); - this.setHardness(3.0F); - this.setBlockTextureName(RefStrings.MODID + ":block_steel"); - - if(isOn) this.setLightLevel(5F/15F); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityUVLamp(); - } - - @Override - public int[] getDimensions() { - return new int[] {1, 0, 0, 0, 0, 0}; - } - - @Override - public int getOffset() { - return 0; - } -} diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 1be935833..8353cdcef 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -1,10 +1,12 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.BlockEnums.EnumMeteorType; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumBriquetteType; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.special.ItemHot; @@ -38,18 +40,15 @@ public class SmeltingRecipes { GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_beryllium), new ItemStack(ModItems.ingot_beryllium), 2.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_schrabidium), new ItemStack(ModItems.ingot_schrabidium), 128.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_nether_schrabidium), new ItemStack(ModItems.ingot_schrabidium), 256.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_uranium), new ItemStack(ModItems.ingot_uranium, 2), 12.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_thorium), new ItemStack(ModItems.ingot_th232, 2), 6.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_titanium), new ItemStack(ModItems.ingot_titanium, 3), 6.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_copper), new ItemStack(ModItems.ingot_copper, 3), 5.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_tungsten), new ItemStack(ModItems.ingot_tungsten, 3), 12.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_aluminium), new ItemStack(ModItems.ingot_aluminium, 3), 5.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_lead), new ItemStack(ModItems.ingot_lead, 3), 6.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_lithium), new ItemStack(ModItems.lithium), 20.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_starmetal), new ItemStack(ModItems.ingot_starmetal), 50.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_cobalt), new ItemStack(ModItems.ingot_cobalt), 2.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_nether_cobalt), new ItemStack(ModItems.ingot_cobalt), 2.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.IRON), new ItemStack(Items.iron_ingot, 16), 10.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.COPPER), new ItemStack(ModItems.ingot_copper, 16), 10.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.ALUMINIUM), new ItemStack(ModItems.ingot_aluminium, 16), 10.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.RAREEARTH), DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE, 16), 10.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.COBALT), new ItemStack(ModItems.ingot_cobalt, 4), 10.0F); + GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_gneiss_iron), new ItemStack(Items.iron_ingot), 5.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_gneiss_gold), new ItemStack(Items.gold_ingot), 5.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_gneiss_uranium), new ItemStack(ModItems.ingot_uranium), 12.0F); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index e16688bde..28832b449 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -87,7 +87,6 @@ public class EntityMappings { addEntity(EntityGrenadeZOMG.class, "entity_grenade_zomg", 500); addEntity(EntityGrenadeASchrab.class, "entity_grenade_aschrab", 500); addEntity(EntityFalloutRain.class, "entity_fallout", 1000); - addEntity(EntityDischarge.class, "entity_emp_discharge", 500); addEntity(EntityEMPBlast.class, "entity_emp_blast", 1000); addEntity(EntityFire.class, "entity_fire", 1000); addEntity(EntityPlasmaBeam.class, "entity_immolator_beam", 1000); diff --git a/src/main/java/com/hbm/entity/mob/EntityFBI.java b/src/main/java/com/hbm/entity/mob/EntityFBI.java index c6426a6b3..ae95a2df2 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBI.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBI.java @@ -176,7 +176,6 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { canDestroy.add(ModBlocks.crate_iron); canDestroy.add(ModBlocks.crate_steel); canDestroy.add(ModBlocks.machine_diesel); - canDestroy.add(ModBlocks.machine_selenium); canDestroy.add(ModBlocks.machine_rtg_grey); canDestroy.add(ModBlocks.machine_minirtg); canDestroy.add(ModBlocks.machine_powerrtg); diff --git a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java b/src/main/java/com/hbm/entity/projectile/EntityDischarge.java deleted file mode 100644 index 59b11bc82..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java +++ /dev/null @@ -1,595 +0,0 @@ -package com.hbm.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import java.util.List; - -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.lib.ModDamageSource; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -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.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityDischarge extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityDischarge(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(1.5F, 1.5F); - } - - public EntityDischarge(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(1.5F, 1.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityDischarge(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityDischarge(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(1.5F, 1.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - 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); - } - - public EntityDischarge(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - this.setDead(); - - EntityEMPBlast cloud = new EntityEMPBlast(this.worldObj, 10); - cloud.posX = this.posX; - cloud.posY = this.posY + 0.5F; - cloud.posZ = this.posZ; - if (!this.worldObj.isRemote) { - this.worldObj.spawnEntityInWorld(cloud); - } - - ExplosionNukeGeneric.empBlast(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - 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; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = ModDamageSource.causeDischargeDamage(this, this); - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, 24 + rand.nextInt(11)); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - float f3 = 0.99F; - f1 = 0.05F; - - if (this.isInWater()) - { - for (int l = 0; l < 4; ++l) - { - f4 = 0.25F; - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ); - } - - f3 = 0.8F; - } - - if (this.isWet()) - { - this.extinguish(); - } - - this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3; - this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if (this.ticksExisted > 250) { - - EntityEMPBlast cloud = new EntityEMPBlast(this.worldObj, 10); - cloud.posX = this.posX; - cloud.posY = this.posY + 0.5F; - cloud.posZ = this.posZ; - if (!this.worldObj.isRemote) { - this.worldObj.spawnEntityInWorld(cloud); - } - - ExplosionNukeGeneric.empBlast(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); - - this.setDead(); - } - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - 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); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java index 7d1f82a35..30498fe20 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java @@ -441,7 +441,7 @@ public class ExplosionNukeGeneric { if(random.nextInt(5) <= 1) world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } - if((b == ModBlocks.fusion_conductor || b == ModBlocks.fwatz_conductor || b == ModBlocks.fusion_motor || b == ModBlocks.fusion_heater || b == ModBlocks.fwatz_computer) && random.nextInt(10) == 0) + if((b == ModBlocks.fusion_conductor || b == ModBlocks.fusion_motor || b == ModBlocks.fusion_heater) && random.nextInt(10) == 0) world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } } diff --git a/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java b/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java index 37952c867..c1d630223 100644 --- a/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java +++ b/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java @@ -2,13 +2,13 @@ package com.hbm.handler.imc; import net.minecraft.item.ItemStack; -import java.util.ArrayList; - public interface ICompatNHNEI { - /**First item on the list is the icon for the recipe in the NEI GUI, the rest are displayed on the sidebar - * as other items that can be used for the same purpose**/ - ItemStack[] getMachinesForRecipe(); - - String getRecipeID(); + /** + * First item on the list is the icon for the recipe in the NEI GUI, the + * rest are displayed on the sidebar as other items that can be used for the + * same purpose + **/ + public ItemStack[] getMachinesForRecipe(); + public String getRecipeID(); } diff --git a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java index 3b18cd6f6..d77b5ac74 100644 --- a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java @@ -4,7 +4,6 @@ import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.ModBlocks; import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; diff --git a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java index a575f867f..3ab732811 100644 --- a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java @@ -5,7 +5,6 @@ import java.util.Arrays; import java.util.List; import java.util.Map; -import com.hbm.blocks.ModBlocks; import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.recipes.MachineRecipes; import com.hbm.items.ModItems; diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 06ad8caaf..776755b75 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -10,7 +10,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; -import com.hbm.blocks.ModBlocks; import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.lib.RefStrings; import com.hbm.util.InventoryUtil; diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 5e60b802b..61a8dbab4 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -26,6 +26,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +@SuppressWarnings("unused") //shut the fuck up public class HazardRegistry { //CO60 5a β− 030.00Rad/s Spicy diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index c5bd346ff..bddf26473 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -328,11 +328,11 @@ public class OreDictManager { /* * RADIOACTIVE */ - U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium, ore_sellafield_uranium_scorched) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); + U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_sellafield_uranium_scorched) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); U233 .rad(HazardRegistry.u233) .nugget(nugget_u233) .billet(billet_u233) .ingot(ingot_u233) .block(block_u233); U235 .rad(HazardRegistry.u235) .nugget(nugget_u235) .billet(billet_u235) .ingot(ingot_u235) .block(block_u235); U238 .rad(HazardRegistry.u238) .nugget(nugget_u238) .billet(billet_u238) .ingot(ingot_u238) .block(block_u238); - TH232 .rad(HazardRegistry.th232) .nugget(nugget_th232) .billet(billet_th232) .ingot(ingot_th232) .dust(powder_thorium) .block(block_thorium) .ore(ore_thorium, ore_meteor_thorium); + TH232 .rad(HazardRegistry.th232) .nugget(nugget_th232) .billet(billet_th232) .ingot(ingot_th232) .dust(powder_thorium) .block(block_thorium) .ore(ore_thorium); PU .rad(HazardRegistry.pu) .nugget(nugget_plutonium) .billet(billet_plutonium) .ingot(ingot_plutonium) .dust(powder_plutonium) .block(block_plutonium) .ore(ore_nether_plutonium) .oreNether(ore_nether_plutonium); PURG .rad(HazardRegistry.purg) .nugget(nugget_pu_mix) .billet(billet_pu_mix) .ingot(ingot_pu_mix) .block(block_pu_mix); PU238 .rad(HazardRegistry.pu238) .hot(3F) .nugget(nugget_pu238) .billet(billet_pu238) .ingot(ingot_pu238) .block(block_pu238); @@ -360,18 +360,18 @@ public class OreDictManager { /* * STABLE */ - TI .ingot(ingot_titanium) .dust(powder_titanium) .plate(plate_titanium) .block(block_titanium) .ore(ore_titanium, ore_meteor_titanium); - CU .ingot(ingot_copper) .dust(powder_copper) .plate(plate_copper) .block(block_copper) .ore(ore_copper, ore_gneiss_copper, ore_meteor_copper); + TI .ingot(ingot_titanium) .dust(powder_titanium) .plate(plate_titanium) .block(block_titanium) .ore(ore_titanium); + CU .ingot(ingot_copper) .dust(powder_copper) .plate(plate_copper) .block(block_copper) .ore(ore_copper, ore_gneiss_copper); MINGRADE .ingot(ingot_red_copper) .dust(powder_red_copper) .block(block_red_copper); ALLOY .ingot(ingot_advanced_alloy) .dust(powder_advanced_alloy) .plate(plate_advanced_alloy) .block(block_advanced_alloy); - W .ingot(ingot_tungsten) .dust(powder_tungsten) .block(block_tungsten) .ore(ore_tungsten, ore_nether_tungsten, ore_meteor_tungsten) .oreNether(ore_nether_tungsten); - AL .ingot(ingot_aluminium) .dust(powder_aluminium) .plate(plate_aluminium) .block(block_aluminium) .ore(ore_aluminium, ore_meteor_aluminium); + W .ingot(ingot_tungsten) .dust(powder_tungsten) .block(block_tungsten) .ore(ore_tungsten, ore_nether_tungsten) .oreNether(ore_nether_tungsten); + AL .ingot(ingot_aluminium) .dust(powder_aluminium) .plate(plate_aluminium) .block(block_aluminium) .ore(ore_aluminium); STEEL .ingot(ingot_steel) .dustSmall(powder_steel_tiny) .dust(powder_steel) .plate(plate_steel) .block(block_steel); TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy) .block(block_tcalloy); CDALLOY .ingot(ingot_cdalloy) .block(block_cdalloy); BBRONZE .ingot(ingot_bismuth_bronze); ABRONZE .ingot(ingot_arsenic_bronze); - PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead); + PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead); BI .nugget(nugget_bismuth) .billet(billet_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth) .block(block_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); CA .ingot(ingot_calcium) .dust(powder_calcium); @@ -394,7 +394,7 @@ public class OreDictManager { MAGTUNG .ingot(ingot_magnetized_tungsten) .dust(powder_magnetized_tungsten) .block(block_magnetized_tungsten); CMB .ingot(ingot_combine_steel) .dust(powder_combine_steel) .plate(plate_combine_steel) .block(block_combine_steel); DESH .nugget(nugget_desh) .ingot(ingot_desh) .dust(powder_desh) .block(block_desh); - STAR .ingot(ingot_starmetal) .block(block_starmetal) .ore(ore_meteor_starmetal); + STAR .ingot(ingot_starmetal) .block(block_starmetal); BIGMT .ingot(ingot_saturnite) .plate(plate_saturnite); FERRO .ingot(ingot_ferrouranium); EUPH .nugget(nugget_euphemium) .ingot(ingot_euphemium) .dust(powder_euphemium) .block(block_euphemium); @@ -406,7 +406,7 @@ public class OreDictManager { /* * DUST AND GEM ORES */ - S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.SULFUR), ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); + S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.SULFUR), DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); KNO .dust(niter) .block(block_niter) .ore(ore_niter); F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.FLUORITE)); LIGNITE .gem(lignite) .dust(powder_lignite) .ore(ore_lignite); @@ -426,7 +426,7 @@ public class OreDictManager { /* * HAZARDS, MISC */ - LI .hydro(1F) .ingot(lithium) .dustSmall(powder_lithium_tiny) .dust(powder_lithium) .block(block_lithium) .ore(ore_gneiss_lithium, ore_meteor_lithium); + LI .hydro(1F) .ingot(lithium) .dustSmall(powder_lithium_tiny) .dust(powder_lithium) .block(block_lithium) .ore(ore_gneiss_lithium); NA .hydro(1F) .dust(powder_sodium); /* diff --git a/src/main/java/com/hbm/inventory/container/ContainerAMSBase.java b/src/main/java/com/hbm/inventory/container/ContainerAMSBase.java deleted file mode 100644 index fd293f63f..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerAMSBase.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityAMSBase; -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.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerAMSBase extends Container { - -private TileEntityAMSBase amsBase; - - private int heat; - private int warning; - private int mode; - - public ContainerAMSBase(InventoryPlayer invPlayer, TileEntityAMSBase tedf) { - amsBase = tedf; - - //Cool 1 In - this.addSlotToContainer(new Slot(tedf, 0, 8, 18)); - //Cool 1 Out - this.addSlotToContainer(new Slot(tedf, 1, 8, 54)); - //Cool 2 In - this.addSlotToContainer(new Slot(tedf, 2, 152, 18)); - //Cool 2 Out - this.addSlotToContainer(new Slot(tedf, 3, 152, 54)); - //Fuel 1 In - this.addSlotToContainer(new Slot(tedf, 4, 8, 72)); - //Fuel 1 Out - this.addSlotToContainer(new Slot(tedf, 5, 8, 108)); - //Fuel 2 In - this.addSlotToContainer(new Slot(tedf, 6, 152, 72)); - //Fuel 2 Out - this.addSlotToContainer(new Slot(tedf, 7, 152, 108)); - //Moderator - this.addSlotToContainer(new Slot(tedf, 8, 80, 45)); - this.addSlotToContainer(new Slot(tedf, 9, 62, 63)); - this.addSlotToContainer(new Slot(tedf, 10, 98, 63)); - this.addSlotToContainer(new Slot(tedf, 11, 80, 81)); - //Core - this.addSlotToContainer(new Slot(tedf, 12, 80, 63)); - //Sat Chips - this.addSlotToContainer(new Slot(tedf, 13, 62, 108)); - this.addSlotToContainer(new Slot(tedf, 14, 62 + 18, 108)); - this.addSlotToContainer(new Slot(tedf, 15, 62 + 36, 108)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else - return null; - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return amsBase.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.heat != this.amsBase.heat) - { - par1.sendProgressBarUpdate(this, 0, this.amsBase.heat); - } - - if(this.warning != this.amsBase.warning) - { - par1.sendProgressBarUpdate(this, 2, this.amsBase.warning); - } - - if(this.mode != this.amsBase.mode) - { - par1.sendProgressBarUpdate(this, 4, this.amsBase.mode); - } - } - - this.heat = this.amsBase.heat; - this.warning = this.amsBase.warning; - this.mode = this.amsBase.mode; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 0) - { - amsBase.heat = j; - } - if(i == 1) - { - amsBase.efficiency = j; - } - if(i == 2) - { - amsBase.warning = j; - } - if(i == 3) - { - amsBase.field = j; - } - if(i == 4) - { - amsBase.mode = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerAMSEmitter.java b/src/main/java/com/hbm/inventory/container/ContainerAMSEmitter.java deleted file mode 100644 index 6a4841a30..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerAMSEmitter.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -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.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerAMSEmitter extends Container { - -private TileEntityAMSEmitter amsEmitter; - - private int heat; - private int warning; - - public ContainerAMSEmitter(InventoryPlayer invPlayer, TileEntityAMSEmitter tedf) { - amsEmitter = tedf; - - //Fluid In - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - //Fluid Out - this.addSlotToContainer(new Slot(tedf, 1, 44, 53)); - //Focus - this.addSlotToContainer(new Slot(tedf, 2, 80, 53)); - //Battery - this.addSlotToContainer(new Slot(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else - return null; - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return amsEmitter.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.heat != this.amsEmitter.heat) - { - par1.sendProgressBarUpdate(this, 0, this.amsEmitter.heat); - } - - if(this.warning != this.amsEmitter.warning) - { - par1.sendProgressBarUpdate(this, 2, this.amsEmitter.warning); - } - } - - this.heat = this.amsEmitter.heat; - this.warning = this.amsEmitter.warning; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 0) - { - amsEmitter.heat = j; - } - if(i == 2) - { - amsEmitter.warning = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerAMSLimiter.java b/src/main/java/com/hbm/inventory/container/ContainerAMSLimiter.java deleted file mode 100644 index 83efdc5b6..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerAMSLimiter.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityAMSLimiter; -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.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerAMSLimiter extends Container { - -private TileEntityAMSLimiter amsLmiter; - - private int heat; - private int warning; - private int mode; - - public ContainerAMSLimiter(InventoryPlayer invPlayer, TileEntityAMSLimiter tedf) { - amsLmiter = tedf; - - //Fluid In - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - //Fluid Out - this.addSlotToContainer(new Slot(tedf, 1, 44, 53)); - //Focus - this.addSlotToContainer(new Slot(tedf, 2, 80, 53)); - //Battery - this.addSlotToContainer(new Slot(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else - return null; - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return amsLmiter.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.heat != this.amsLmiter.heat) - { - par1.sendProgressBarUpdate(this, 0, this.amsLmiter.heat); - } - - if(this.warning != this.amsLmiter.warning) - { - par1.sendProgressBarUpdate(this, 2, this.amsLmiter.warning); - } - - if(this.mode != this.amsLmiter.mode) - { - par1.sendProgressBarUpdate(this, 3, this.amsLmiter.mode); - } - } - - this.heat = this.amsLmiter.heat; - this.warning = this.amsLmiter.warning; - this.mode = this.amsLmiter.mode; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 0) - { - amsLmiter.heat = j; - } - if(i == 2) - { - amsLmiter.warning = j; - } - if(i == 3) - { - amsLmiter.mode = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerFWatzCore.java b/src/main/java/com/hbm/inventory/container/ContainerFWatzCore.java deleted file mode 100644 index 9b33d7ce0..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerFWatzCore.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityFWatzCore; - -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.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerFWatzCore extends Container { - - private TileEntityFWatzCore diFurnace; - - private boolean isRunning; - - public ContainerFWatzCore(InventoryPlayer invPlayer, TileEntityFWatzCore tedf) { - - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 26, 108)); - this.addSlotToContainer(new Slot(tedf, 1, 62, 90)); - this.addSlotToContainer(new Slot(tedf, 2, 98, 90)); - //Inputs - this.addSlotToContainer(new Slot(tedf, 3, 134, 108 - 18)); - this.addSlotToContainer(new Slot(tedf, 4, 152, 108 - 18)); - //Outputs - this.addSlotToContainer(new Slot(tedf, 5, 134, 108)); - this.addSlotToContainer(new Slot(tedf, 6, 152, 108)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 1, isRunning ? 1 : 0); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 6) { - if (!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) - { - return null; - } - } else { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.isRunning != this.diFurnace.isRunning()) - { - par1.sendProgressBarUpdate(this, 1, this.diFurnace.isRunning() ? 1 : 0); - } - } - - this.isRunning = this.diFurnace.isRunning(); - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) - { - if(j == 0) - { - diFurnace.emptyPlasma(); - } else { - diFurnace.fillPlasma(); - } - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineSelenium.java b/src/main/java/com/hbm/inventory/container/ContainerMachineSelenium.java deleted file mode 100644 index e84240f2f..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineSelenium.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineSelenium extends Container { - -private TileEntityMachineSeleniumEngine seleniumEngine; - - public ContainerMachineSelenium(InventoryPlayer invPlayer, TileEntityMachineSeleniumEngine tedf) { - - seleniumEngine = tedf; - - //Pistons - this.addSlotToContainer(new Slot(tedf, 0, 8, 18)); - this.addSlotToContainer(new Slot(tedf, 1, 26, 18)); - this.addSlotToContainer(new Slot(tedf, 2, 44, 18)); - this.addSlotToContainer(new Slot(tedf, 3, 8, 36)); - this.addSlotToContainer(new Slot(tedf, 4, 26, 36)); - this.addSlotToContainer(new Slot(tedf, 5, 44, 36)); - this.addSlotToContainer(new Slot(tedf, 6, 8, 54)); - this.addSlotToContainer(new Slot(tedf, 7, 26, 54)); - this.addSlotToContainer(new Slot(tedf, 8, 44, 54)); - - //Fluid IO - this.addSlotToContainer(new Slot(tedf, 9, 80, 18)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 80, 54)); - - //Fluid IDs - this.addSlotToContainer(new Slot(tedf, 11, 152, 18)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 12, 152, 54)); - - //Battery - this.addSlotToContainer(new Slot(tedf, 13, 116, 90)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 13) { - if (!this.mergeItemStack(var5, 14, this.inventorySlots.size(), true)) - { - return null; - } - } else { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return seleniumEngine.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAMSBase.java b/src/main/java/com/hbm/inventory/gui/GUIAMSBase.java deleted file mode 100644 index 08d91b392..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIAMSBase.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerAMSBase; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIAMSBase extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_ams_base.png"); - private TileEntityAMSBase base; - - public GUIAMSBase(InventoryPlayer invPlayer, TileEntityAMSBase tedf) { - super(new ContainerAMSBase(invPlayer, tedf)); - base = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - base.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 70 - 52, 16, 52); - base.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 70 - 52, 16, 52); - base.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 124 - 52, 16, 52); - base.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 124 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 124 - 104, 7, 104, base.power, TileEntityAMSBase.maxPower); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 44, guiTop + 124 - 106, 7, 106, new String[] { "Restriction Field:", base.field + "%" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 124 - 106, 7, 106, new String[] { "Efficiency:", base.efficiency + "%" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 124 - 106, 7, 106, new String[] { "Heat:", base.heat + "/" + TileEntityAMSBase.maxHeat }); - - if(!base.hasResonators()) { - String[] text = new String[] { "Error: Three satellite ID-chips linked", - "to xenium resonators are required", - "for this machine to work!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - } - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.base.hasCustomInventoryName() ? this.base.getInventoryName() : I18n.format(this.base.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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); - - int i = (int)base.getPowerScaled(106); - drawTexturedModalRect(guiLeft + 116, guiTop + 124 - i, 206, 106 - i, 7, i); - - int j = base.getFieldScaled(106); - drawTexturedModalRect(guiLeft + 44, guiTop + 124 - j, 192, 106 - j, 7, j); - - int k = base.getEfficiencyScaled(106); - drawTexturedModalRect(guiLeft + 53, guiTop + 124 - k, 199, 106 - k, 7, k); - - int l = base.getHeatScaled(106); - drawTexturedModalRect(guiLeft + 125, guiTop + 124 - l, 213, 106 - l, 7, l); - - int m = base.mode; - if(m > 0) - drawTexturedModalRect(guiLeft + 80, guiTop + 108, 176, 32 + 16 * m, 16, 16); - - int n = base.warning; - if(n > 0) - drawTexturedModalRect(guiLeft + 80, guiTop + 18, 176, 32 + 16 * n, 16, 16); - - if(base.color > -1) { - GL11.glColor3ub((byte)((base.color & 0xFF0000) >> 16), (byte)((base.color & 0x00FF00) >> 8), (byte)((base.color & 0x0000FF) >> 0)); - drawTexturedModalRect(guiLeft + 61, guiTop + 44, 176, 160, 54, 54); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - drawTexturedModalRect(guiLeft + 61, guiTop + 44, 176, 106, 54, 54); - } - - if(!base.hasResonators()) - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 6); - - base.tanks[0].renderTank(guiLeft + 26, guiTop + 70, this.zLevel, 16, 52); - - base.tanks[1].renderTank(guiLeft + 134, guiTop + 70, this.zLevel, 16, 52); - - base.tanks[2].renderTank(guiLeft + 26, guiTop + 124, this.zLevel, 16, 52); - - base.tanks[3].renderTank(guiLeft + 134, guiTop + 124, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAMSEmitter.java b/src/main/java/com/hbm/inventory/gui/GUIAMSEmitter.java deleted file mode 100644 index a4bf1c205..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIAMSEmitter.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerAMSEmitter; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIAMSEmitter extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_ams_emitter.png"); - private TileEntityAMSEmitter emitter; - - public GUIAMSEmitter(InventoryPlayer invPlayer, TileEntityAMSEmitter tedf) { - super(new ContainerAMSEmitter(invPlayer, tedf)); - emitter = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - emitter.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 69 - 52, 16, 52, emitter.power, emitter.maxPower); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, new String[] { "Power:", emitter.efficiency + "%" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, new String[] { "Heat:", emitter.heat + "/" + emitter.maxHeat }); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.emitter.hasCustomInventoryName() ? this.emitter.getInventoryName() : I18n.format(this.emitter.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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); - - int i = (int) emitter.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 134, guiTop + 69 - i, 192, 52 - i, 16, i); - - int j = emitter.getEfficiencyScaled(52); - drawTexturedModalRect(guiLeft + 152, guiTop + 69 - j, 208, 52 - j, 16, j); - - int k = emitter.getHeatScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - k, 176, 52 - k, 16, k); - - int m = emitter.warning; - if(m > 0) - drawTexturedModalRect(guiLeft + 80, guiTop + 17, 176, 36 + 16 * m, 16, 16); - - emitter.tank.renderTank(guiLeft + 26, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAMSLimiter.java b/src/main/java/com/hbm/inventory/gui/GUIAMSLimiter.java deleted file mode 100644 index e54a957d8..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIAMSLimiter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerAMSLimiter; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIAMSLimiter extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_ams_limiter.png"); - private TileEntityAMSLimiter limiter; - - public GUIAMSLimiter(InventoryPlayer invPlayer, TileEntityAMSLimiter tedf) { - super(new ContainerAMSLimiter(invPlayer, tedf)); - limiter = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - limiter.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 69 - 52, 16, 52, limiter.power, limiter.maxPower); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, new String[] { "Efficiency:", limiter.efficiency + "%" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, new String[] { "Heat:", limiter.heat + "/" + limiter.maxHeat }); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.limiter.hasCustomInventoryName() ? this.limiter.getInventoryName() : I18n.format(this.limiter.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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); - - int i = (int) limiter.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 134, guiTop + 69 - i, 192, 52 - i, 16, i); - - int j = limiter.getEfficiencyScaled(52); - drawTexturedModalRect(guiLeft + 152, guiTop + 69 - j, 208, 52 - j, 16, j); - - int k = limiter.getHeatScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - k, 176, 52 - k, 16, k); - - int l = limiter.mode; - if(l > 0) - drawTexturedModalRect(guiLeft + 98, guiTop + 17, 176, 84 + 16 * l, 16, 16); - - int m = limiter.warning; - if(m > 0) - drawTexturedModalRect(guiLeft + 80, guiTop + 17, 176, 36 + 16 * m, 16, 16); - - limiter.tank.renderTank(guiLeft + 26, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFWatzCore.java b/src/main/java/com/hbm/inventory/gui/GUIFWatzCore.java deleted file mode 100644 index 5f9fd0bd4..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIFWatzCore.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerFWatzCore; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityFWatzCore; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIFWatzCore extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_fwatz_multiblock.png"); - private TileEntityFWatzCore diFurnace; - - public GUIFWatzCore(InventoryPlayer invPlayer, TileEntityFWatzCore tedf) { - super(new ContainerFWatzCore(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 88 - 70, 16, 70); - diFurnace.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 88 - 70, 16, 70); - diFurnace.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 88 - 70, 16, 70); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 106 - 88, 16, 88, diFurnace.power, diFurnace.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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); - - int k = (int)diFurnace.getPowerScaled(88); - drawTexturedModalRect(guiLeft + 26, guiTop + 106 - k, 192, 88 - k, 16, k); - - if(diFurnace.isRunning()) - drawTexturedModalRect(guiLeft + 64, guiTop + 29, 176, 88, 48, 48); - - int m = diFurnace.getSingularityType(); - drawTexturedModalRect(guiLeft + 98, guiTop + 109, 240, 4 * m, 16, 4); - - diFurnace.tanks[0].renderTank(guiLeft + 8, guiTop + 88, this.zLevel, 16, 70); - diFurnace.tanks[1].renderTank(guiLeft + 134, guiTop + 88, this.zLevel, 16, 70); - diFurnace.tanks[2].renderTank(guiLeft + 152, guiTop + 88, this.zLevel, 16, 70); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java deleted file mode 100644 index 5c436c06e..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineSelenium; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineSelenium extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_selenium.png"); - private TileEntityMachineSeleniumEngine selenium; - - public GUIMachineSelenium(InventoryPlayer invPlayer, TileEntityMachineSeleniumEngine tedf) { - super(new ContainerMachineSelenium(invPlayer, tedf)); - selenium = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - selenium.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 108, 160, 16, selenium.power, selenium.powerCap); - - String[] text1 = new String[] { "Fuel consumption rate:", - " 1 mB/t", - " 20 mB/s", - "(Consumption rate per piston)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(selenium.pistonCount < 3) { - - String[] text2 = new String[] { "Error: At least three pistons are", - "required to operate this radial engine!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.selenium.hasCustomInventoryName() ? this.selenium.getInventoryName() : I18n.format(this.selenium.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @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(selenium.pistonCount > 0) - { - int k = selenium.pistonCount; - drawTexturedModalRect(guiLeft + 26, guiTop + 81, 176, 52 + 16 * k - 16, 16, 16); - } - - if(selenium.pistonCount < 3) - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - - selenium.tank.renderTank(guiLeft + 80 + 36, guiTop + 70, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 41ed8702a..e1d7eae46 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -113,9 +113,9 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); - makeRecipe(new ComparableStack(ModItems.chopper_head, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_glass, 2), new ComparableStack(ModBlocks.fwatz_computer, 1), new OreDictStack(CMB.ingot(), 22), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), },300); + makeRecipe(new ComparableStack(ModItems.chopper_head, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_glass, 2), new ComparableStack(ModItems.circuit_gold, 3), new OreDictStack(CMB.ingot(), 22), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), },300); makeRecipe(new ComparableStack(ModItems.chopper_gun, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(CMB.ingot(), 2), new ComparableStack(ModItems.wire_tungsten, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 1), new ComparableStack(ModItems.motor, 1), },150); - makeRecipe(new ComparableStack(ModItems.chopper_torso, 1), new AStack[] {new OreDictStack(CMB.ingot(), 26), new ComparableStack(ModBlocks.fwatz_computer, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.chopper_blades, 2), },350); + makeRecipe(new ComparableStack(ModItems.chopper_torso, 1), new AStack[] {new OreDictStack(CMB.ingot(), 26), new ComparableStack(ModItems.circuit_gold, 3), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.chopper_blades, 2), },350); makeRecipe(new ComparableStack(ModItems.chopper_tail, 1), new AStack[] {new OreDictStack(CMB.plate(), 8), new OreDictStack(CMB.ingot(), 5), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.chopper_blades, 2), },200); makeRecipe(new ComparableStack(ModItems.chopper_wing, 1), new AStack[] {new OreDictStack(CMB.plate(), 6), new OreDictStack(CMB.ingot(), 3), new ComparableStack(ModItems.wire_magnetized_tungsten, 2), },150); makeRecipe(new ComparableStack(ModItems.chopper_blades, 1), new AStack[] {new OreDictStack(CMB.plate(), 8), new OreDictStack(STEEL.plate(), 2), new OreDictStack(CMB.ingot(), 2), },200); @@ -194,10 +194,6 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); - makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250); - makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); - makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300); - makeRecipe(new ComparableStack(ModBlocks.fwatz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new OreDictStack(DIAMOND.dust(), 8), new OreDictStack(MAGTUNG.dust(), 12), new OreDictStack(DESH.dust(), 8), new ComparableStack(ModItems.upgrade_power_3, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new OreDictStack(KEY_CIRCUIT_BISMUTH, 8)},450); makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier3, 1), new ComparableStack(ModItems.wire_gold, 6), new OreDictStack("dyeGray", 6), },300); makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 1), new ComparableStack(ModItems.wire_aluminium, 6), new OreDictStack("dyeBlue", 4), },300); makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 2), new ComparableStack(ModItems.wire_copper, 6), new OreDictStack("dyeYellow", 6), },300); @@ -249,7 +245,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.solinium_core, 1), new AStack[] {new OreDictStack(SA327.nugget(), 9), new OreDictStack(EUPH.nugget(), 1), },400); makeRecipe(new ComparableStack(ModItems.solinium_propellant, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.plate_polymer, 6), new ComparableStack(ModItems.wire_tungsten, 6), new ComparableStack(ModItems.biomass_compressed, 4), },350); makeRecipe(new ComparableStack(ModItems.schrabidium_hammer, 1), new AStack[] {new OreDictStack(SA326.block(), 35), new ComparableStack(ModItems.billet_yharonite, 128), new ComparableStack(Items.nether_star, 3), new ComparableStack(ModItems.fragment_meteorite, 512), },1000); - makeRecipe(new ComparableStack(ModItems.component_emitter, 1), new AStack[] {new OreDictStack(STEEL.shell(), 3), new OreDictStack(AL.shell(), 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(PB.plate(), 24), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.pipes_steel, 8), new ComparableStack(ModItems.circuit_gold, 12), new ComparableStack(ModItems.circuit_schrabidium, 8), new OreDictStack(STAR.ingot(), 26), new ComparableStack(ModItems.powder_magic, 48), new ComparableStack(ModBlocks.fwatz_computer, 2), new ComparableStack(ModItems.crystal_xen, 1), },2500); + makeRecipe(new ComparableStack(ModItems.component_emitter, 1), new AStack[] {new OreDictStack(STEEL.shell(), 3), new OreDictStack(AL.shell(), 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(PB.plate(), 24), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.pipes_steel, 8), new ComparableStack(ModItems.circuit_gold, 12), new ComparableStack(ModItems.circuit_schrabidium, 8), new OreDictStack(STAR.ingot(), 26), new ComparableStack(ModItems.powder_magic, 48), new ComparableStack(ModItems.crystal_xen, 1), },2500); makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_radar_large, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 6), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.coil_copper, 32), new ComparableStack(ModItems.crt_display, 4), },600); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); @@ -299,7 +295,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },400); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60, ModItems.journal_bj); - makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new OreDictStack(TI.shell(), 32), new OreDictStack(STEEL.shell(), 18), new OreDictStack(FIBER.ingot(), 64), },600, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new OreDictStack(TI.shell(), 32), new OreDictStack(STEEL.shell(), 18), new OreDictStack(FIBER.ingot(), 64), },600); makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new OreDictStack(ANY_RUBBER.ingot(), 32), new OreDictStack(AL.shell(), 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600, ModItems.journal_bj); makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 7b8e15c97..75c0cd403 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -422,12 +422,6 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.gem_sodalite, 1), new ItemStack(Blocks.gravel, 1) }); - recipes.put(new ComparableStack(ModBlocks.ore_meteor_starmetal), new ItemStack[] { - new ItemStack(ModItems.powder_dura_steel, 3), - new ItemStack(ModItems.powder_astatine, 1), - new ItemStack(ModItems.powder_cobalt, 2), - new ItemStack(Blocks.gravel, 1) }); - recipes.put(new ComparableStack(ModBlocks.block_euphemium_cluster), new ItemStack[] { new ItemStack(ModItems.nugget_euphemium, 7), new ItemStack(ModItems.powder_schrabidium, 4), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java index dfa8f5e3b..347f6eeba 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java @@ -2,6 +2,7 @@ package com.hbm.itempool; import static com.hbm.lib.HbmChestContents.weighted; +import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoFatman; @@ -15,6 +16,7 @@ public class ItemPoolsSingle { public static final String POOL_VAULT_STANDARD = "POOL_VAULT_STANDARD"; public static final String POOL_VAULT_REINFORCED = "POOL_VAULT_REINFORCED"; public static final String POOL_VAULT_UNBREAKABLE = "POOL_VAULT_UNBREAKABLE"; + public static final String POOL_METEORITE_TREASURE = "POOL_METEORITE_TREASURE"; public static void init() { @@ -114,5 +116,28 @@ public class ItemPoolsSingle { weighted(ModItems.powder_nitan_mix, 0, 16, 32, 1) }; }}; + + new ItemPool(POOL_METEORITE_TREASURE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.cobalt_pickaxe, 0, 1, 1, 10), + weighted(ModItems.ingot_zirconium, 0, 1, 16, 10), + weighted(ModItems.ingot_niobium, 0, 1, 16, 10), + weighted(ModItems.ingot_cobalt, 0, 1, 16, 10), + weighted(ModItems.ingot_boron, 0, 1, 16, 10), + weighted(ModItems.ingot_starmetal, 0, 1, 1, 5), + weighted(ModItems.crystal_gold, 0, 1, 4, 10), + weighted(ModItems.circuit_copper, 0, 4, 8, 10), + weighted(ModItems.circuit_red_copper, 0, 2, 4, 10), + weighted(ModItems.definitelyfood, 0, 16, 32, 25), + weighted(ModBlocks.crate_can, 0, 1, 3, 10), + weighted(ModItems.pill_herbal, 0, 1, 2, 10), + weighted(ModItems.serum, 0, 1, 1, 5), + weighted(ModItems.heart_piece, 0, 1, 1, 5), + weighted(ModItems.scrumpy, 0, 1, 1, 5), + weighted(ModItems.launch_code_piece, 0, 1, 1, 5), + weighted(ModItems.egg_glyphid, 0, 1, 1, 5), + weighted(ModItems.gem_alexandrite, 0, 1, 1, 1), + }; + }}; } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e9a83ed93..89a8cfb28 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3080,7 +3080,6 @@ public class ModItems { shimmer_axe_head = new Item().setUnlocalizedName("shimmer_axe_head").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_axe_head"); shimmer_handle = new Item().setUnlocalizedName("shimmer_handle").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_handle"); - //telepad = new Item().setUnlocalizedName("telepad").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":telepad"); entanglement_kit = new ItemCustomLore().setUnlocalizedName("entanglement_kit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":entanglement_kit"); circuit_raw = new Item().setUnlocalizedName("circuit_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_raw"); @@ -3124,7 +3123,6 @@ public class ModItems { assembly_schrabidium = new Item().setUnlocalizedName("assembly_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_schrabidium"); assembly_nightmare = new Item().setUnlocalizedName("assembly_nightmare").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nightmare"); assembly_desh = new Item().setUnlocalizedName("assembly_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_desh"); - //assembly_pip = new Item().setUnlocalizedName("assembly_pip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_pip"); assembly_nopip = new Item().setUnlocalizedName("assembly_nopip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nopip"); assembly_smg = new Item().setUnlocalizedName("assembly_smg").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_smg"); assembly_556 = new Item().setUnlocalizedName("assembly_556").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_556"); diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 6d26836e0..13bd6b2e4 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -59,8 +59,7 @@ public class ItemBlockLore extends ItemBlockBase { if(this.field_150939_a == ModBlocks.gravel_diamond) return EnumRarity.rare; - if(this.field_150939_a == ModBlocks.block_euphemium || this.field_150939_a == ModBlocks.block_euphemium_cluster || - this.field_150939_a == ModBlocks.plasma || this.field_150939_a == ModBlocks.fwatz_plasma) + if(this.field_150939_a == ModBlocks.block_euphemium || this.field_150939_a == ModBlocks.block_euphemium_cluster || this.field_150939_a == ModBlocks.plasma) return EnumRarity.epic; return EnumRarity.common; diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 71393ce05..36aa11c9d 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -217,7 +217,6 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.screwdriver, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_excavator, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_diesel, 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_selenium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_wire_coated, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_pylon, 8)); diff --git a/src/main/java/com/hbm/items/tool/ItemWandS.java b/src/main/java/com/hbm/items/tool/ItemWandS.java index f2b7143b7..303a3114f 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandS.java +++ b/src/main/java/com/hbm/items/tool/ItemWandS.java @@ -1,111 +1,7 @@ package com.hbm.items.tool; -import java.util.List; -import java.util.Random; - -import com.hbm.world.machine.FWatz; - -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; public class ItemWandS extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("DEPRECATED"); - - if(itemstack.stackTagCompound != null) - { - switch(itemstack.stackTagCompound.getInteger("building")) - { - case 0: - list.add("Structure: Nuclear Reactor"); - break; - case 1: - list.add("Structure: Watz Power Plant"); - break; - case 2: - list.add("Structure: Fusionary Watz Plant"); - break; - } - } - } - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) - { - if(stack.stackTagCompound == null) - { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setInteger("building", 0); - } - - boolean up = player.rotationPitch <= 0.5F; - - if(!world.isRemote) - { - Random rand = new Random(); - - switch(stack.stackTagCompound.getInteger("building")) - { - case 0: - break; - case 1: - break; - case 2: - new FWatz().generateHull(world, rand, x, up ? y : y - 18, z); - break; - } - - } - - return true; - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if(player.isSneaking()) - { - if(stack.stackTagCompound == null) - { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setInteger("building", 0); - if(world.isRemote) - player.addChatMessage(new ChatComponentText("Set Structure: Nuclear Reactor")); - } else { - int i = stack.stackTagCompound.getInteger("building"); - i++; - stack.stackTagCompound.setInteger("building", i); - if(i >= 3) { - stack.stackTagCompound.setInteger("building", 0); - } - - if(world.isRemote) - { - switch(i) - { - case 0: - player.addChatMessage(new ChatComponentText("Set Structure: Nuclear Reactor")); - break; - case 1: - player.addChatMessage(new ChatComponentText("Set Structure: Watz Power Plant")); - break; - case 2: - player.addChatMessage(new ChatComponentText("Set Structure: Fusionary Watz Plant")); - break; - default: - player.addChatMessage(new ChatComponentText("Set Structure: Nuclear Reactor")); - break; - } - } - } - } - - return stack; - } } diff --git a/src/main/java/com/hbm/items/weapon/GunEMPRay.java b/src/main/java/com/hbm/items/weapon/GunEMPRay.java deleted file mode 100644 index 7edf7a31a..000000000 --- a/src/main/java/com/hbm/items/weapon/GunEMPRay.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.entity.projectile.EntityDischarge; -import com.hbm.explosion.ExplosionNukeGeneric; -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 GunEMPRay extends Item { - - Random rand = new Random(); - - public GunEMPRay() { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @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 (!p_77615_3_.isSneaking()) { - if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_emp_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; - } - - EntityDischarge entityarrow = new EntityDischarge(p_77615_2_, p_77615_3_, 1.0F); - - entityarrow.setIsCritical(true); - - p_77615_1_.damageItem(1, p_77615_3_); - // p_77615_2_.playSoundAtEntity(p_77615_3_, "tile.piston.out", - // 1.0F, 0.5F); - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.fatmanShoot", 1.0F, 1F); - - if (!flag) { - p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_emp_ammo); - } - - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(entityarrow); - } - } - } else { - if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_emp_ammo)) { - - if (j < 25.0D) { - return; - } - - if (!flag) { - p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_emp_ammo); - } - - EntityEMPBlast cloud = new EntityEMPBlast(p_77615_3_.worldObj, 25); - cloud.posX = p_77615_3_.posX; - cloud.posY = p_77615_3_.posY + 1.0F; - cloud.posZ = p_77615_3_.posZ; - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(cloud); - } - - ExplosionNukeGeneric.empBlast(p_77615_3_.worldObj, (int)p_77615_3_.posX, (int)p_77615_3_.posY, (int)p_77615_3_.posZ, 25); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Hold right mouse button"); - list.add("to shoot ball lightning,"); - list.add("sneak to create EMP wave!"); - list.add(""); - list.add("Ammo: Energy Cell"); - list.add("Damage: 25 - 35"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java b/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java index fd6139836..ad2ab4f0d 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java +++ b/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java @@ -17,10 +17,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; +@Deprecated public abstract class GunFrame extends Item implements IGunHUDProvider, IClickReceiver { - private List statusBars = new ArrayList(); - @Override public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) { @@ -36,7 +35,6 @@ public abstract class GunFrame extends Item implements IGunHUDProvider, IClickRe } public void updatePlayerClient(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { } - public void updatePlayerServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { } @Override diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index bccf0f075..c90495ca0 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -163,10 +163,6 @@ public class Library { if((tileentity != null && (tileentity instanceof IFluidAcceptor || tileentity instanceof IFluidSource)) || world.getBlock(x, y, z) == ModBlocks.fusion_hatch || - world.getBlock(x, y, z) == ModBlocks.fwatz_hatch || - world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_limiter || - world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_emitter || - world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_base || world.getBlock(x, y, z) == ModBlocks.dummy_port_compact_launcher || world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table || world.getBlock(x, y, z) == ModBlocks.rbmk_loader) { diff --git a/src/main/java/com/hbm/lib/ModDamageSource.java b/src/main/java/com/hbm/lib/ModDamageSource.java index 1fe20cf1c..142c57380 100644 --- a/src/main/java/com/hbm/lib/ModDamageSource.java +++ b/src/main/java/com/hbm/lib/ModDamageSource.java @@ -1,12 +1,6 @@ package com.hbm.lib; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.entity.projectile.EntityDischarge; -import com.hbm.entity.projectile.EntityFire; -import com.hbm.entity.projectile.EntityLN2; -import com.hbm.entity.projectile.EntityLaserBeam; -import com.hbm.entity.projectile.EntityMinerBeam; -import com.hbm.entity.projectile.EntityPlasmaBeam; +import com.hbm.entity.projectile.*; import net.minecraft.entity.Entity; import net.minecraft.util.DamageSource; @@ -101,10 +95,6 @@ public class ModDamageSource extends DamageSource { return (new EntityDamageSourceIndirect(s_euthanized, ent, hit)).setDamageBypassesArmor(); } - public static DamageSource causeDischargeDamage(EntityDischarge ent, Entity hit) { - return (new EntityDamageSourceIndirect(s_emp, ent, hit)).setDamageBypassesArmor(); - } - public static DamageSource causeFireDamage(EntityFire ent, Entity hit) { return (new EntityDamageSourceIndirect(s_flamethrower, ent, hit)).setFireDamage().setDamageBypassesArmor(); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 62e68fcc1..82fba3eb0 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -258,7 +258,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarNT.class, new RenderRadar()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarLarge.class, new RenderRadarLarge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarScreen.class, new RenderRadarScreen()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSeleniumEngine.class, new RenderSelenium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorResearch.class, new RenderSmallReactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTesla.class, new RenderTesla()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBarrel.class, new RenderFluidBarrel()); @@ -322,10 +321,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineStrandCaster.class, new RenderStrandCaster()); - //AMS - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSLimiter.class, new RenderAMSLimiter()); //ZIRNOX ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorZirnox.class, new RenderZirnox()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityZirnoxDestroyed.class, new RenderZirnoxDestroyed()); @@ -381,6 +376,7 @@ public class ClientProxy extends ServerProxy { //ITER ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITER.class, new RenderITER()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePlasmaHeater.class, new RenderPlasmaHeater()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityICF.class, new RenderICF()); //Watz ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump()); @@ -827,7 +823,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityOilSpillFX.class, new SpillRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityGasFX.class, new GasRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityCombineBall.class, new RenderSnowball(ModItems.energy_ball)); - RenderingRegistry.registerEntityRenderingHandler(EntityDischarge.class, new ElectricityRenderer(ModItems.discharge)); RenderingRegistry.registerEntityRenderingHandler(EntityEMPBlast.class, new RenderEMPBlast()); RenderingRegistry.registerEntityRenderingHandler(EntityTSmokeFX.class, new TSmokeRenderer(ModItems.nuclear_waste)); } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index cb9013f34..ad89ea05d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -385,9 +385,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateCast(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_cooler), 1), new Object[] { "IPI", "IPI", "IPI", 'I', TI.ingot(), 'P', TI.plate() }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_tank), 1), new Object[] { "CGC", "GGG", "CGC", 'C', CMB.plate(), 'G', KEY_ANYPANE }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_scaffold), 1), new Object[] { "IPI", "P P", "IPI", 'I', W.ingot(), 'P', getReflector() }); addRecipeAuto(new ItemStack(ModBlocks.reinforced_stone, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.cobblestone, 'B', Blocks.stone }); addRecipeAuto(new ItemStack(ModBlocks.brick_light, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.fence, 'B', Blocks.brick_block }); @@ -691,8 +688,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', ModItems.circuit_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SDS", "MCM", "MCM", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M',ModItems.coil_advanced_alloy, 'C', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_20), new Object[] { "SDS", "MCM", "MCM", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M', ModItems.coil_copper, 'C', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fwatz_conductor, 'C', ModItems.circuit_targeting_tier6 }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fusion_conductor, 'C', ModItems.circuit_targeting_tier6 }); + addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', MAGTUNG.wireDense(), 'C', ModItems.circuit_targeting_tier6 }); + addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ALLOY.wireDense(), 'C', ModItems.circuit_targeting_tier6 }); addRecipeAuto(new ItemStack(ModBlocks.radiobox), new Object[] { "PLP", "PSP", "PLP", 'P', STEEL.plate(), 'S', ModItems.ring_starmetal, 'C', ModItems.fusion_core, 'L', getReflector() }); addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ANY_RUBBER.ingot() }); @@ -839,7 +836,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "WG", "GW", 'W', ALLOY.wireDense(), 'G', GOLD.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "G", "C", "G", 'G', ND.dust(), 'C', ModBlocks.hadron_coil_gold }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "WG", "GW", 'W', ND.wireDense(), 'G', GOLD.wireDense() }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_magnetized_tungsten, 'C', ModBlocks.fwatz_conductor }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WW", "WW", 'W', MAGTUNG.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_schrabidium, 'C', ModBlocks.hadron_coil_magtung }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WS", "SW", 'W', MAGTUNG.wireDense(), 'S', SA326.wireDense() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 19578d3e4..1a776c804 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1297,15 +1297,42 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.anvil_meteorite"); ignoreMappings.add("hbm:tile.anvil_starmetal"); ignoreMappings.add("hbm:tile.anvil_bismuth"); + ignoreMappings.add("hbm:tile.lamp_uv_off"); + ignoreMappings.add("hbm:tile.lamp_uv_on"); + ignoreMappings.add("hbm:tile.ams_base"); + ignoreMappings.add("hbm:tile.ams_emitter"); + ignoreMappings.add("hbm:tile.ams_limiter"); + ignoreMappings.add("hbm:tile.dummy_block_ams_limiter"); + ignoreMappings.add("hbm:tile.dummy_port_ams_limiter"); + ignoreMappings.add("hbm:tile.dummy_block_ams_emitter"); + ignoreMappings.add("hbm:tile.dummy_port_ams_emitter"); + ignoreMappings.add("hbm:tile.dummy_block_ams_base"); + ignoreMappings.add("hbm:tile.dummy_port_ams_base"); + ignoreMappings.add("hbm:tile.machine_selenium"); + ignoreMappings.add("hbm:tile.fwatz_conductor"); + ignoreMappings.add("hbm:tile.fwatz_cooler"); + ignoreMappings.add("hbm:tile.fwatz_tank"); + ignoreMappings.add("hbm:tile.fwatz_scaffold"); + ignoreMappings.add("hbm:tile.fwatz_hatch"); + ignoreMappings.add("hbm:tile.fwatz_computer"); + ignoreMappings.add("hbm:tile.fwatz_core"); + ignoreMappings.add("hbm:tile.fwatz_plasma"); + ignoreMappings.add("hbm:tile.ore_meteor_uranium"); + ignoreMappings.add("hbm:tile.ore_meteor_thorium"); + ignoreMappings.add("hbm:tile.ore_meteor_titanium"); + ignoreMappings.add("hbm:tile.ore_meteor_sulfur"); + ignoreMappings.add("hbm:tile.ore_meteor_copper"); + ignoreMappings.add("hbm:tile.ore_meteor_tungsten"); + ignoreMappings.add("hbm:tile.ore_meteor_aluminium"); + ignoreMappings.add("hbm:tile.ore_meteor_lead"); + ignoreMappings.add("hbm:tile.ore_meteor_lithium"); + ignoreMappings.add("hbm:tile.ore_meteor_starmetal"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); remapItems.put("hbm:item.man_explosive8", ModItems.explosive_lenses); remapItems.put("hbm:item.briquette_lignite", ModItems.briquette); remapItems.put("hbm:item.antiknock", ModItems.fuel_additive); - remapItems.put("hbm:tile.anvil_meteorite", Item.getItemFromBlock(ModBlocks.anvil_desh)); - remapItems.put("hbm:tile.anvil_starmetal", Item.getItemFromBlock(ModBlocks.anvil_saturnite)); - remapItems.put("hbm:tile.anvil_bismuth", Item.getItemFromBlock(ModBlocks.anvil_bismuth_bronze)); for(MissingMapping mapping : event.get()) { diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 3671b9a2f..b0337b647 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -51,16 +51,10 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModItems.burnt_bark)); API.hideItem(new ItemStack(ModItems.ams_core_thingy)); } - API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_base)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_emitter)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_limiter)); API.hideItem(new ItemStack(ModBlocks.dummy_block_vault)); API.hideItem(new ItemStack(ModBlocks.dummy_block_blast)); API.hideItem(new ItemStack(ModBlocks.dummy_block_uf6)); API.hideItem(new ItemStack(ModBlocks.dummy_block_puf6)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_base)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_emitter)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_limiter)); API.hideItem(new ItemStack(ModBlocks.dummy_port_compact_launcher)); API.hideItem(new ItemStack(ModBlocks.dummy_port_launch_table)); API.hideItem(new ItemStack(ModBlocks.dummy_plate_compact_launcher)); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 027f33180..f4300da86 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -125,11 +125,6 @@ public class ResourceManager { //IGen public static final IModelCustom igen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/igen.obj")); - //Selenium Engine - public static final IModelCustom selenium_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/selenium_engine_body.obj")); - public static final IModelCustom selenium_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/selenium_engine_rotor.obj")); - public static final IModelCustom selenium_piston = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/selenium_engine_piston.obj")); - //Combustion Engine public static final IModelCustom dieselgen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/dieselgen.obj")); public static final IModelCustom combustion_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/combustion_engine.obj")).asVBO(); @@ -178,8 +173,6 @@ public class ResourceManager { public static final IModelCustom autosaw = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/autosaw.obj")); //Mining Drill - public static final IModelCustom drill_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_main.obj")); - public static final IModelCustom drill_bolt = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_bolt.obj")); public static final IModelCustom mining_drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_drill.obj")).asVBO(); //Laser Miner @@ -203,13 +196,6 @@ public class ResourceManager { //Deuterium Tower public static final IModelCustom deuterium_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/machine_deuterium_tower.obj")); - //Anti Mass Spectrometer - public static final IModelCustom ams_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_base.obj")); - public static final IModelCustom ams_emitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_emitter.obj")); - public static final IModelCustom ams_emitter_destroyed = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_emitter_destroyed.obj")); - public static final IModelCustom ams_limiter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_limiter.obj")); - public static final IModelCustom ams_limiter_destroyed = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_limiter_destroyed.obj")); - //Dark Matter Core public static final IModelCustom dfc_emitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/core_emitter.obj")); public static final IModelCustom dfc_receiver = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/core_receiver.obj")); @@ -241,21 +227,24 @@ public class ResourceManager { public static final IModelCustom breeder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/breeder.obj")); //ITER - public static final IModelCustom iter = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/iter.obj")); + public static final IModelCustom iter = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/iter.obj")).asVBO(); + + //ICF + public static final IModelCustom icf = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/icf.obj")).asVBO(); //Watz - public static final IModelCustom watz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/watz.obj")); - public static final IModelCustom watz_pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/watz_pump.obj")); + public static final IModelCustom watz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/watz.obj")).asVBO(); + public static final IModelCustom watz_pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/watz_pump.obj")).asVBO(); //FENSU - public static final IModelCustom fensu = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu.obj")); + public static final IModelCustom fensu = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu.obj")).asVBO(); //Radar - public static final IModelCustom radar_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj")); - public static final IModelCustom radar_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj")); - public static final IModelCustom radar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj")); - public static final IModelCustom radar_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar_large.obj")); - public static final IModelCustom radar_screen = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj")); + public static final IModelCustom radar_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj"), false).asVBO(); + public static final IModelCustom radar_head = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj"), false).asVBO(); + public static final IModelCustom radar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj"), false).asVBO(); + public static final IModelCustom radar_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_large.obj"), false).asVBO(); + public static final IModelCustom radar_screen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj"), false).asVBO(); //Forcefield public static final IModelCustom forcefield_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/forcefield_top.obj")); @@ -276,13 +265,6 @@ public class ResourceManager { public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj")); public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")); public static final IModelCustom dud = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/BalefireCrashed.obj")); - - //Cel-Prime - public static final IModelCustom cp_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_tower.obj")); - public static final IModelCustom cp_terminal = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_terminal.obj")); - public static final IModelCustom cp_battery = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_battery.obj")); - public static final IModelCustom cp_tanks = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_tanks.obj")); - public static final IModelCustom cp_port = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_port.obj")); //Satellites public static final IModelCustom sat_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_base.obj")); @@ -396,7 +378,7 @@ public class ResourceManager { //Electrolyser public static final IModelCustom electrolyser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electrolyser.obj")); - //Belt + //Charging Station public static final IModelCustom charger = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/charger.obj")); //DecoContainer (File Cabinet for now) @@ -539,11 +521,6 @@ public class ResourceManager { public static final ResourceLocation igen_arm = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen_arm.png"); public static final ResourceLocation igen_pistons = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen_pistons.png"); - //Selenium Engine - public static final ResourceLocation selenium_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_body.png"); - public static final ResourceLocation selenium_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_piston.png"); - public static final ResourceLocation selenium_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_rotor.png"); - //Combustion Engine public static final ResourceLocation dieselgen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/dieselgen.png"); public static final ResourceLocation combustion_engine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/combustion_engine.png"); @@ -629,12 +606,6 @@ public class ResourceManager { //Waste Drum public static final ResourceLocation waste_drum_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drum_gray.png"); - //Anti Mass Spectrometer - public static final ResourceLocation ams_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_base.png"); - public static final ResourceLocation ams_emitter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_emitter.png"); - public static final ResourceLocation ams_limiter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_limiter.png"); - public static final ResourceLocation ams_destroyed_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_destroyed.png"); - //Dark Matter Core public static final ResourceLocation dfc_emitter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_emitter.png"); public static final ResourceLocation dfc_receiver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_receiver.png"); @@ -671,6 +642,9 @@ public class ResourceManager { public static final ResourceLocation iter_torus_chlorophyte = new ResourceLocation(RefStrings.MODID, "textures/models/iter/torus_chlorophyte.png"); public static final ResourceLocation iter_torus_vaporwave = new ResourceLocation(RefStrings.MODID, "textures/models/iter/torus_vaporwave.png"); + //ICF + public static final ResourceLocation icf_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/icf.png"); + //Watz public static final ResourceLocation watz_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/watz.png"); public static final ResourceLocation watz_pump_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/watz_pump.png"); diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java index 9d2e5a2b5..c0555e549 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/AuxGaugePacket.java @@ -5,13 +5,9 @@ import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.bomb.TileEntityCompactLauncher; import com.hbm.tileentity.bomb.TileEntityLaunchTable; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; import com.hbm.tileentity.machine.TileEntityMachineBoiler; import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; @@ -71,41 +67,6 @@ public class AuxGaugePacket implements IMessage { public IMessage onMessage(AuxGaugePacket m, MessageContext ctx) { try { TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter limiter = (TileEntityAMSLimiter)te; - if(m.id == 0) - limiter.locked = m.value == 1; - else if(m.id == 1) - limiter.efficiency = m.value; - } - if (te instanceof TileEntityAMSEmitter) { - TileEntityAMSEmitter emitter = (TileEntityAMSEmitter)te; - if(m.id == 0) - emitter.locked = m.value == 1; - else if(m.id == 1) - emitter.efficiency = m.value; - } - if (te instanceof TileEntityAMSBase) { - TileEntityAMSBase base = (TileEntityAMSBase)te; - - if(m.id == 0) - base.locked = m.value == 1; - else if(m.id == 1) - base.color = m.value; - else if(m.id == 2) - base.efficiency = m.value; - else if(m.id == 3) - base.field = m.value; - } - if (te instanceof TileEntityMachineSeleniumEngine) { - TileEntityMachineSeleniumEngine selenium = (TileEntityMachineSeleniumEngine)te; - - if(m.id == 0) - selenium.pistonCount = m.value; - if(m.id == 1) - selenium.powerCap = m.value; - } if (te instanceof TileEntityMachineBoiler) { TileEntityMachineBoiler boiler = (TileEntityMachineBoiler)te; diff --git a/src/main/java/com/hbm/render/entity/effect/ElectricityRenderer.java b/src/main/java/com/hbm/render/entity/effect/ElectricityRenderer.java deleted file mode 100644 index 6fe82111c..000000000 --- a/src/main/java/com/hbm/render/entity/effect/ElectricityRenderer.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class ElectricityRenderer extends Render { - private Item field_94151_a; - public ElectricityRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public ElectricityRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render -1) - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y + 5.5, z + 0.5D); - //GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - - int rot = (int) ((System.nanoTime()/100000000)%360) * 3; - - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity; - - double maxSize = 5; - double minSize = 0.5; - double scale = minSize; - scale += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - GL11.glScaled(scale, scale, scale); - - //bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/EMPBlast.png")); - GL11.glDisable(GL11.GL_TEXTURE_2D); - - GL11.glRotatef(rot, 0F, 1F, 0F); - GL11.glScalef(1.1F, 1.1F, 1.1F); - GL11.glColor3ub((byte)(0x20), (byte)(0x20), (byte)(0x40)); - ResourceManager.sphere_iuv.renderAll(); - GL11.glScalef(1/1.1F, 1/1.1F, 1/1.1F); - - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - - renderTileEntityAt3(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt3(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y + 5.5, z + 0.5D); - //GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity; - - double maxSize = 5; - double minSize = 0.5; - double scale = minSize; - scale += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - GL11.glScaled(scale, scale, scale); - - GL11.glColor3ub((byte)((base.color & 0xFF0000) >> 16), (byte)((base.color & 0x00FF00) >> 8), (byte)((base.color & 0x0000FF) >> 0)); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - - int rot = (int) ((System.nanoTime()/100000000)%360) * 3; - - GL11.glRotatef(rot, 0F, 1F, 0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.5F, 1/0.5F, 1/0.5F); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - - GL11.glRotatef(-rot * 2, 0F, 1F, 0F); - GL11.glScalef(0.6F, 0.6F, 0.6F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.6F, 1/0.6F, 1/0.6F); - - GL11.glRotatef(rot * 2, 0F, 1F, 0F); - GL11.glScalef(0.7F, 0.7F, 0.7F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.7F, 1/0.7F, 1/0.7F); - - GL11.glRotatef(-rot * 2, 0F, 1F, 0F); - GL11.glScalef(0.8F, 0.8F, 0.8F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.8F, 1/0.8F, 1/0.8F); - - GL11.glRotatef(rot * 2, 0F, 1F, 0F); - GL11.glScalef(0.9F, 0.9F, 0.9F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.9F, 1/0.9F, 1/0.9F); - - GL11.glRotatef(-rot * 2, 0F, 1F, 0F); - ResourceManager.sphere_ruv.renderAll(); - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAMSEmitter.java b/src/main/java/com/hbm/render/tileentity/RenderAMSEmitter.java deleted file mode 100644 index 0454f808d..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderAMSEmitter.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.hbm.render.tileentity; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderAMSEmitter extends TileEntitySpecialRenderer { - - public RenderAMSEmitter() { } - Random rand = new Random(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - - - if(((TileEntityAMSEmitter)tileEntity).locked) - bindTexture(ResourceManager.ams_destroyed_tex); - else - bindTexture(ResourceManager.ams_emitter_tex); - - if(((TileEntityAMSEmitter)tileEntity).locked) - ResourceManager.ams_emitter_destroyed.renderAll(); - else - ResourceManager.ams_emitter.renderAll(); - - GL11.glPopMatrix(); - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - float radius = 0.04F; - int distance = 1; - int layers = 3; - Tessellator tessellator = Tessellator.instance; - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glTranslatef((float) x + 0.5F, (float) y - 7, (float) z + 0.5F); - - TileEntityAMSEmitter emitter = (TileEntityAMSEmitter)tileEntity; - - if(emitter.getWorldObj().getTileEntity(emitter.xCoord, emitter.yCoord - 9, emitter.zCoord) instanceof TileEntityAMSBase && !emitter.locked || true) { - - if(emitter.efficiency > 0 || true) { - - double lastPosX = 0; - double lastPosZ = 0; - - for(int i = 7; i > 0; i -= distance) { - - double posX = rand.nextDouble() - 0.5; - double posZ = rand.nextDouble() - 0.5; - - for(int j = 1; j <= layers; j++) { - - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 0.5F, 0, 1f); - tessellator.addVertex(lastPosX + (radius * j), i, lastPosZ + (radius * j)); - tessellator.addVertex(lastPosX + (radius * j), i, lastPosZ - (radius * j)); - tessellator.addVertex(posX + (radius * j), i - distance, posZ - (radius * j)); - tessellator.addVertex(posX + (radius * j), i - distance, posZ + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 0.5F, 0, 1f); - tessellator.addVertex(lastPosX - (radius * j), i, lastPosZ + (radius * j)); - tessellator.addVertex(lastPosX - (radius * j), i, lastPosZ - (radius * j)); - tessellator.addVertex(posX - (radius * j), i - distance, posZ - (radius * j)); - tessellator.addVertex(posX - (radius * j), i - distance, posZ + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 0.5F, 0, 1f); - tessellator.addVertex(lastPosX + (radius * j), i, lastPosZ + (radius * j)); - tessellator.addVertex(lastPosX - (radius * j), i, lastPosZ + (radius * j)); - tessellator.addVertex(posX - (radius * j), i - distance, posZ + (radius * j)); - tessellator.addVertex(posX + (radius * j), i - distance, posZ + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 0.5F, 0, 1f); - tessellator.addVertex(lastPosX + (radius * j), i, lastPosZ - (radius * j)); - tessellator.addVertex(lastPosX - (radius * j), i, lastPosZ - (radius * j)); - tessellator.addVertex(posX - (radius * j), i - distance, posZ - (radius * j)); - tessellator.addVertex(posX + (radius * j), i - distance, posZ - (radius * j)); - tessellator.draw(); - } - - lastPosX = posX; - lastPosZ = posZ; - } - } - - for(int j = 1; j <= 2; j++) { - - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 1, 0, 1f); - tessellator.addVertex(0 + (radius * j), 7, 0 + (radius * j)); - tessellator.addVertex(0 + (radius * j), 7, 0 - (radius * j)); - tessellator.addVertex(0 + (radius * j), 0, 0 - (radius * j)); - tessellator.addVertex(0 + (radius * j), 0, 0 + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 1, 0, 1f); - tessellator.addVertex(0 - (radius * j), 7, 0 + (radius * j)); - tessellator.addVertex(0 - (radius * j), 7, 0 - (radius * j)); - tessellator.addVertex(0 - (radius * j), 0, 0 - (radius * j)); - tessellator.addVertex(0 - (radius * j), 0, 0 + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 1, 0, 1f); - tessellator.addVertex(0 + (radius * j), 7, 0 + (radius * j)); - tessellator.addVertex(0 - (radius * j), 7, 0 + (radius * j)); - tessellator.addVertex(0 - (radius * j), 0, 0 + (radius * j)); - tessellator.addVertex(0 + (radius * j), 0, 0 + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 1, 0, 1f); - tessellator.addVertex(0 + (radius * j), 7, 0 - (radius * j)); - tessellator.addVertex(0 - (radius * j), 7, 0 - (radius * j)); - tessellator.addVertex(0 - (radius * j), 0, 0 - (radius * j)); - tessellator.addVertex(0 + (radius * j), 0, 0 - (radius * j)); - tessellator.draw(); - } - } - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAMSLimiter.java b/src/main/java/com/hbm/render/tileentity/RenderAMSLimiter.java deleted file mode 100644 index 8d3abdd52..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderAMSLimiter.java +++ /dev/null @@ -1,297 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderAMSLimiter extends TileEntitySpecialRenderer { - - public RenderAMSLimiter() { } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(-90, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - if(((TileEntityAMSLimiter)tileEntity).locked) - bindTexture(ResourceManager.ams_destroyed_tex); - else - bindTexture(ResourceManager.ams_limiter_tex); - - if(((TileEntityAMSLimiter)tileEntity).locked) - ResourceManager.ams_limiter_destroyed.renderAll(); - else - ResourceManager.ams_limiter.renderAll(); - - GL11.glPopMatrix(); - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(-90, 0F, 1F, 0F); - - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - // bindTexture(ResourceManager.universal); - - TileEntityAMSLimiter limiter = (TileEntityAMSLimiter)tileEntity; - - int meta = tileEntity.getBlockMetadata(); - boolean flag = false; - double maxSize = 5; - double minSize = 0.5; - if(meta == 2 && tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord - 6) instanceof TileEntityAMSBase && !limiter.locked) { - flag = true; - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord - 6); - maxSize += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - } - if(meta == 3 && tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord + 6) instanceof TileEntityAMSBase && !limiter.locked) { - flag = true; - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord + 6); - maxSize += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - } - if(meta == 4 && tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord - 6, tileEntity.yCoord, tileEntity.zCoord) instanceof TileEntityAMSBase && !limiter.locked) { - flag = true; - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord - 6, tileEntity.yCoord, tileEntity.zCoord); - maxSize += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - } - if(meta == 5 && tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord + 6, tileEntity.yCoord, tileEntity.zCoord) instanceof TileEntityAMSBase && !limiter.locked) { - flag = true; - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord + 6, tileEntity.yCoord, tileEntity.zCoord); - maxSize += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - } - - if(flag) { - - GL11.glRotatef(-90, 0F, 1F, 0F); - - double posX = 0; - double posY = 0; - double posZ = 0; - double length = 4; - double radius = 0.12; - GL11.glTranslated(2.5, 5.5, 0); - - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ - radius); - tessellator.addVertex(posX + length, posY - radius, posZ + radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY - radius, posZ + radius); - tessellator.addVertex(posX, posY - radius, posZ - radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY + radius, posZ + radius); - tessellator.addVertex(posX + length, posY + radius, posZ - radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ - radius); - tessellator.addVertex(posX, posY + radius, posZ + radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ - radius); - tessellator.addVertex(posX + length, posY + radius, posZ - radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ - radius); - tessellator.addVertex(posX, posY - radius, posZ - radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ + radius); - tessellator.addVertex(posX + length, posY + radius, posZ + radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ + radius); - tessellator.addVertex(posX, posY - radius, posZ + radius); - tessellator.draw(); - - if(limiter.efficiency > 0) { - - radius *= 2; - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - tessellator.startDrawingQuads(); - //tessellator.setColorRGBA_F(0.494F, 0.8F, 0.796F, 0f); - //tessellator.setColorRGBA_F(0, 0.627F, 0.627F, 0f); - //tessellator.setColorRGBA_F(0, 0.765F, 0.765F, 0f); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ - radius); - tessellator.addVertex(posX + length, posY - radius, posZ + radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY - radius, posZ + radius); - tessellator.addVertex(posX, posY - radius, posZ - radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY + radius, posZ + radius); - tessellator.addVertex(posX + length, posY + radius, posZ - radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ - radius); - tessellator.addVertex(posX, posY + radius, posZ + radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ - radius); - tessellator.addVertex(posX + length, posY + radius, posZ - radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ - radius); - tessellator.addVertex(posX, posY - radius, posZ - radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ + radius); - tessellator.addVertex(posX + length, posY + radius, posZ + radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ + radius); - tessellator.addVertex(posX, posY - radius, posZ + radius); - tessellator.draw(); - - /*double iRadiusB = 0.3; - double oRadiusB = 2; - double iRadiusS = iRadiusB * 0.75; - double oRadiusS = oRadiusB * 0.60; - double bLength = rad; - - int rot = (int) ((System.nanoTime()/100000000)%360) * 3; - - GL11.glRotatef(rot, 1F, 0F, 0F); - - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0, 0, 1F, 0f); - tessellator.addVertex(posX + bLength, posY - oRadiusB, posZ - oRadiusS); - tessellator.addVertex(posX + bLength, posY - oRadiusB, posZ + oRadiusS); - tessellator.setColorRGBA_F(0, 0, 1F, 1f); - tessellator.addVertex(posX, posY - iRadiusB, posZ + iRadiusS); - tessellator.addVertex(posX, posY - iRadiusB, posZ - iRadiusS); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0, 0, 1F, 0f); - tessellator.addVertex(posX + bLength, posY + oRadiusB, posZ - oRadiusS); - tessellator.addVertex(posX + bLength, posY + oRadiusB, posZ + oRadiusS); - tessellator.setColorRGBA_F(0, 0, 1F, 1f); - tessellator.addVertex(posX, posY + iRadiusB, posZ + iRadiusS); - tessellator.addVertex(posX, posY + iRadiusB, posZ - iRadiusS); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0, 0, 1F, 0f); - tessellator.addVertex(posX + bLength, posY - oRadiusS, posZ - oRadiusB); - tessellator.addVertex(posX + bLength, posY + oRadiusS, posZ - oRadiusB); - tessellator.setColorRGBA_F(0, 0, 1F, 1f); - tessellator.addVertex(posX, posY + iRadiusS, posZ - iRadiusB); - tessellator.addVertex(posX, posY - iRadiusS, posZ - iRadiusB); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0, 0, 1F, 0f); - tessellator.addVertex(posX + bLength, posY - oRadiusS, posZ + oRadiusB); - tessellator.addVertex(posX + bLength, posY + oRadiusS, posZ + oRadiusB); - tessellator.setColorRGBA_F(0, 0, 1F, 1f); - tessellator.addVertex(posX, posY + iRadiusS, posZ + iRadiusB); - tessellator.addVertex(posX, posY - iRadiusS, posZ + iRadiusB); - tessellator.draw(); - - iRadiusB *= 0.60; - oRadiusB *= 0.60; - iRadiusS = iRadiusB * 0.75; - oRadiusS = oRadiusB * 0.60; - bLength = 2.5; - - GL11.glRotatef(-2 * rot, 1F, 0F, 0F); - - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.25F, 0.25F, 1F, 1f); - tessellator.addVertex(posX + bLength, posY - oRadiusB, posZ - oRadiusS); - tessellator.addVertex(posX + bLength, posY - oRadiusB, posZ + oRadiusS); - tessellator.addVertex(posX, posY - iRadiusB, posZ + iRadiusS); - tessellator.addVertex(posX, posY - iRadiusB, posZ - iRadiusS); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.25F, 0.25F, 1F, 1f); - tessellator.addVertex(posX + bLength, posY + oRadiusB, posZ - oRadiusS); - tessellator.addVertex(posX + bLength, posY + oRadiusB, posZ + oRadiusS); - tessellator.addVertex(posX, posY + iRadiusB, posZ + iRadiusS); - tessellator.addVertex(posX, posY + iRadiusB, posZ - iRadiusS); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.25F, 0.25F, 1F, 1f); - tessellator.addVertex(posX + bLength, posY - oRadiusS, posZ - oRadiusB); - tessellator.addVertex(posX + bLength, posY + oRadiusS, posZ - oRadiusB); - tessellator.addVertex(posX, posY + iRadiusS, posZ - iRadiusB); - tessellator.addVertex(posX, posY - iRadiusS, posZ - iRadiusB); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.25F, 0.25F, 1F, 1f); - tessellator.addVertex(posX + bLength, posY - oRadiusS, posZ + oRadiusB); - tessellator.addVertex(posX + bLength, posY + oRadiusS, posZ + oRadiusB); - tessellator.addVertex(posX, posY + iRadiusS, posZ + iRadiusB); - tessellator.addVertex(posX, posY - iRadiusS, posZ + iRadiusB); - tessellator.draw();*/ - } - - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glShadeModel(GL11.GL_FLAT); - RenderHelper.enableStandardItemLighting(); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - } - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderICF.java b/src/main/java/com/hbm/render/tileentity/RenderICF.java new file mode 100644 index 000000000..650f57fda --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderICF.java @@ -0,0 +1,37 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderICF extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslatef((float) x + 0.5F, (float) y, (float) z + 0.5F); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + switch(te.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + bindTexture(ResourceManager.icf_tex); + ResourceManager.icf.renderAll(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPlasmaHeater.java b/src/main/java/com/hbm/render/tileentity/RenderPlasmaHeater.java index f16e7205a..0a268b920 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPlasmaHeater.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPlasmaHeater.java @@ -14,27 +14,26 @@ public class RenderPlasmaHeater extends TileEntitySpecialRenderer { public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { GL11.glPushMatrix(); - GL11.glTranslatef((float)x + 0.5F, (float)y, (float)z + 0.5F); - + GL11.glTranslatef((float) x + 0.5F, (float) y, (float) z + 0.5F); + GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glShadeModel(GL11.GL_SMOOTH); - + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + switch(te.getBlockMetadata() - BlockDummyable.offset) { case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; } - - GL11.glTranslatef(0, 0, 18); - - bindTexture(ResourceManager.iter_microwave); - ResourceManager.iter.renderPart("Microwave"); - GL11.glShadeModel(GL11.GL_FLAT); + GL11.glTranslatef(0, 0, 18); + + bindTexture(ResourceManager.iter_microwave); + ResourceManager.iter.renderPart("Microwave"); + + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } - } diff --git a/src/main/java/com/hbm/render/tileentity/RenderSelenium.java b/src/main/java/com/hbm/render/tileentity/RenderSelenium.java deleted file mode 100644 index 53362572b..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderSelenium.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderSelenium extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(-90, 0F, 1F, 0F); - - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - bindTexture(ResourceManager.selenium_body_tex); - ResourceManager.selenium_body.renderAll(); - - GL11.glTranslated(0.0D, 1.0D, 0.0D); - - int count = ((TileEntityMachineSeleniumEngine)tileEntity).pistonCount; - - float rot = 360F / count; - - bindTexture(ResourceManager.selenium_piston_tex); - for(int i = 0; i < count; i++) { - ResourceManager.selenium_piston.renderAll(); - GL11.glRotatef(rot, 0, 0, 1); - } - - bindTexture(ResourceManager.selenium_rotor_tex); - ResourceManager.selenium_rotor.renderAll(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index ca90591b5..cb9811365 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -81,7 +81,6 @@ public class TileMappings { put(TileEntityMachineSchrabidiumTransmutator.class, "tileentity_schrabidium_transmutator"); put(TileEntityMachineDiesel.class, "tileentity_diesel_generator"); put(TileEntityMachineShredder.class, "tileentity_machine_shredder"); - put(TileEntityFWatzCore.class, "tileentity_fwatz_multiblock"); put(TileEntityMachineTeleporter.class, "tileentity_teleblock"); put(TileEntityHatch.class, "tileentity_seal_lid"); put(TileEntityMachineIGenerator.class, "tileentity_igenerator"); @@ -103,9 +102,6 @@ public class TileMappings { put(TileEntityCrateDesh.class, "tileentity_crate_desh"); put(TileEntityMassStorage.class, "tileentity_mass_storage"); put(TileEntityMachinePress.class, "tileentity_press"); - put(TileEntityAMSBase.class, "tileentity_ams_base"); - put(TileEntityAMSEmitter.class, "tileentity_ams_emitter"); - put(TileEntityAMSLimiter.class, "tileentity_ams_limiter"); put(TileEntityMachineSiren.class, "tileentity_siren"); put(TileEntityMachineSPP.class, "tileentity_spp"); put(TileEntityMachineRadGen.class, "tileentity_radgen"); @@ -114,7 +110,6 @@ public class TileMappings { put(TileEntityMachineRadarLarge.class, "tileentity_radar_large"); put(TileEntityMachineRadarScreen.class, "tileentity_radar_screen"); put(TileEntityBroadcaster.class, "tileentity_pink_cloud_broadcaster"); - put(TileEntityMachineSeleniumEngine.class, "tileentity_selenium_engine"); put(TileEntityMachineSatLinker.class, "tileentity_satlinker"); put(TileEntityReactorResearch.class, "tileentity_small_reactor"); put(TileEntityVaultDoor.class, "tileentity_vault_door"); @@ -165,6 +160,7 @@ public class TileMappings { put(TileEntityMicrowave.class, "tileentity_microwave"); put(TileEntityMachineMiniRTG.class, "tileentity_mini_rtg"); put(TileEntityITER.class, "tileentity_iter"); + put(TileEntityICF.class, "tileentity_icf"); put(TileEntityMachinePlasmaHeater.class, "tileentity_plasma_heater"); put(TileEntityMachineFENSU.class, "tileentity_fensu"); put(TileEntityTrappedBrick.class, "tileentity_trapped_brick"); @@ -298,7 +294,6 @@ public class TileMappings { put(TileEntityMachineFunnel.class, "tileentity_funnel"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); - put(TileEntityUVLamp.class, "tileentity_uv_lamp"); put(TileEntityMachineAutosaw.class, "tileentity_autosaw"); put(TileEntityCondenser.class, "tileentity_condenser"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java deleted file mode 100644 index 9be891eba..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java +++ /dev/null @@ -1,548 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerAMSBase; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIAMSBase; -import com.hbm.items.ISatChip; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCatalyst; -import com.hbm.items.special.ItemAMSCore; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.SatelliteResonator; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IFluidContainer, IFluidAcceptor, IGUIProvider { - - private ItemStack slots[]; - - public long power = 0; - public static final long maxPower = 1000000000000000L; - public int field = 0; - public static final int maxField = 100; - public int efficiency = 0; - public static final int maxEfficiency = 100; - public int heat = 0; - public static final int maxHeat = 5000; - public int age = 0; - public int warning = 0; - public int mode = 0; - public boolean locked = false; - public FluidTank[] tanks; - public int color = -1; - - Random rand = new Random(); - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0 }; - private static final int[] slots_side = new int[] { 0 }; - - private String customName; - - public TileEntityAMSBase() { - slots = new ItemStack[16]; - tanks = new FluidTank[4]; - tanks[0] = new FluidTank(Fluids.COOLANT, 8000, 0); - tanks[1] = new FluidTank(Fluids.CRYOGEL, 8000, 1); - tanks[2] = new FluidTank(Fluids.DEUTERIUM, 8000, 2); - tanks[3] = new FluidTank(Fluids.TRITIUM, 8000, 3); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.amsBase"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tanks[0].readFromNBT(nbt, "coolant1"); - tanks[1].readFromNBT(nbt, "coolant2"); - tanks[2].readFromNBT(nbt, "fuel1"); - tanks[3].readFromNBT(nbt, "fuel2"); - field = nbt.getInteger("field"); - efficiency = nbt.getInteger("efficiency"); - heat = nbt.getInteger("heat"); - locked = nbt.getBoolean("locked"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - tanks[0].writeToNBT(nbt, "coolant1"); - tanks[1].writeToNBT(nbt, "coolant2"); - tanks[2].writeToNBT(nbt, "fuel1"); - tanks[3].writeToNBT(nbt, "fuel2"); - nbt.setInteger("field", field); - nbt.setInteger("efficiency", efficiency); - nbt.setInteger("heat", heat); - nbt.setBoolean("locked", locked); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - for(int i = 0; i < tanks.length; i++) - tanks[i].setFill(tanks[i].getMaxFill()); - - if(!locked) { - - age++; - if(age >= 20) - { - age = 0; - } - - tanks[0].setType(0, 1, slots); - tanks[1].setType(2, 3, slots); - tanks[2].setType(4, 5, slots); - tanks[3].setType(6, 7, slots); - - for(int i = 0; i < 4; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - int f1 = 0, f2 = 0, f3 = 0, f4 = 0; - int booster = 0; - - if(worldObj.getTileEntity(xCoord + 6, yCoord, zCoord) instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter te = (TileEntityAMSLimiter)worldObj.getTileEntity(xCoord + 6, yCoord, zCoord); - if(!te.locked && worldObj.getBlockMetadata(xCoord + 6, yCoord, zCoord) == 4) { - f1 = te.efficiency; - if(te.mode == 2) - booster++; - } - } - if(worldObj.getTileEntity(xCoord - 6, yCoord, zCoord) instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter te = (TileEntityAMSLimiter)worldObj.getTileEntity(xCoord - 6, yCoord, zCoord); - if(!te.locked && worldObj.getBlockMetadata(xCoord - 6, yCoord, zCoord) == 5) { - f2 = te.efficiency; - if(te.mode == 2) - booster++; - } - } - if(worldObj.getTileEntity(xCoord, yCoord, zCoord + 6) instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter te = (TileEntityAMSLimiter)worldObj.getTileEntity(xCoord, yCoord, zCoord + 6); - if(!te.locked && worldObj.getBlockMetadata(xCoord, yCoord, zCoord + 6) == 2) { - f3 = te.efficiency; - if(te.mode == 2) - booster++; - } - } - if(worldObj.getTileEntity(xCoord, yCoord, zCoord - 6) instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter te = (TileEntityAMSLimiter)worldObj.getTileEntity(xCoord, yCoord, zCoord - 6); - if(!te.locked && worldObj.getBlockMetadata(xCoord, yCoord, zCoord - 6) == 3) { - f4 = te.efficiency; - if(te.mode == 2) - booster++; - } - } - - this.field = Math.round(calcField(f1, f2, f3, f4)); - - mode = 0; - if(field > 0) - mode = 1; - if(booster > 0) - mode = 2; - - if(worldObj.getTileEntity(xCoord, yCoord + 9, zCoord) instanceof TileEntityAMSEmitter) { - TileEntityAMSEmitter te = (TileEntityAMSEmitter)worldObj.getTileEntity(xCoord, yCoord + 9, zCoord); - this.efficiency = te.efficiency; - } - - this.color = -1; - - float heatMod = 1; - float fuelMod = 1; - int heatBase = 0; - int fuelBase = 0; - - if(slots[8] != null && slots[9] != null && slots[10] != null && slots[11] != null && slots[12] != null && - slots[8].getItem() instanceof ItemCatalyst && slots[9].getItem() instanceof ItemCatalyst && - slots[10].getItem() instanceof ItemCatalyst && slots[11].getItem() instanceof ItemCatalyst && - slots[12].getItem() instanceof ItemAMSCore && hasResonators() && efficiency > 0) { - int a = ((ItemCatalyst)slots[8].getItem()).getColor(); - int b = ((ItemCatalyst)slots[9].getItem()).getColor(); - int c = ((ItemCatalyst)slots[10].getItem()).getColor(); - int d = ((ItemCatalyst)slots[11].getItem()).getColor(); - - int e = this.calcAvgHex(a, b); - int f = this.calcAvgHex(c, d); - - int g = this.calcAvgHex(e, f); - - this.color = g; - - - for(int i = 8; i < 12; i++) { - heatMod *= ItemCatalyst.getHeatMod(slots[i]); - fuelMod *= ItemCatalyst.getFuelMod(slots[i]); - } - - heatBase = ItemAMSCore.getHeatBase(slots[12]); - fuelBase = ItemAMSCore.getFuelBase(slots[12]); - - heatBase *= Math.pow(1.25F, booster); - heatBase *= (100 - field); - - if(this.getFuelPower(tanks[2].getTankType()) > 0 && this.getFuelPower(tanks[3].getTankType()) > 0 && - tanks[2].getFill() > 0 && tanks[3].getFill() > 0) { - - //power += (powerBase * powerMod * gauss(1, (heat - (maxHeat / 2)) / maxHeat)) / 1000 * getFuelPower(tanks[2].getTankType()) * getFuelPower(tanks[3].getTankType()); - heat += (heatBase * heatMod) / (float)(this.field / 100F); - tanks[2].setFill((int)(tanks[2].getFill() - fuelBase * fuelMod)); - tanks[3].setFill((int)(tanks[3].getFill() - fuelBase * fuelMod)); - if(tanks[2].getFill() <= 0) - tanks[2].setFill(0); - if(tanks[3].getFill() <= 0) - tanks[3].setFill(0); - - if(heat > maxHeat) { - heat = maxHeat; - } - } - } - - if(power > maxPower) - power = maxPower; - - - if(heat > 0 && tanks[0].getFill() > 0 && tanks[1].getFill() > 0) { - heat -= (this.getCoolingStrength(tanks[0].getTankType()) * this.getCoolingStrength(tanks[1].getTankType())); - - tanks[0].setFill(tanks[0].getFill() - 10); - tanks[1].setFill(tanks[1].getFill() - 10); - - if(tanks[0].getFill() < 0) - tanks[0].setFill(0); - if(tanks[1].getFill() < 0) - tanks[1].setFill(0); - - if(heat < 0) - heat = 0; - } - - } else { - field = 0; - efficiency = 0; - power = 0; - warning = 3; - } - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, locked ? 1 : 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, color, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, efficiency, 2), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, field, 3), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - } - } - - private int getCoolingStrength(FluidType type) { - - if(type == Fluids.WATER) return 5; - if(type == Fluids.OIL) return 15; - if(type == Fluids.COOLANT) return this.heat / 250; - if(type == Fluids.CRYOGEL) return this.heat > heat/2 ? 25 : 5; - return 0; - } - - private int getFuelPower(FluidType type) { - if(type == Fluids.DEUTERIUM) return 50; - if(type == Fluids.TRITIUM) return 75; - return 0; - } - - private float calcField(int a, int b, int c, int d) { - return (float)(a + b + c + d) * (a * 25 + b * 25 + c * 25 + d * 25) / 40000; - } - - private int calcAvgHex(int h1, int h2) { - - int r1 = ((h1 & 0xFF0000) >> 16); - int g1 = ((h1 & 0x00FF00) >> 8); - int b1 = ((h1 & 0x0000FF) >> 0); - - int r2 = ((h2 & 0xFF0000) >> 16); - int g2 = ((h2 & 0x00FF00) >> 8); - int b2 = ((h2 & 0x0000FF) >> 0); - - int r = (((r1 + r2) / 2) << 16); - int g = (((g1 + g2) / 2) << 8); - int b = (((b1 + b2) / 2) << 0); - - return r | g | b; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getEfficiencyScaled(int i) { - return (efficiency * i) / maxEfficiency; - } - - public int getFieldScaled(int i) { - return (field * i) / maxField; - } - - public int getHeatScaled(int i) { - return (heat * i) / maxHeat; - } - - public boolean hasResonators() { - - if(slots[13] != null && slots[14] != null && slots[15] != null && - slots[13].getItem() == ModItems.sat_chip && slots[14].getItem() == ModItems.sat_chip && slots[15].getItem() == ModItems.sat_chip) { - - SatelliteSavedData data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - if(data == null) { - worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData()); - data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - } - data.markDirty(); - - int i1 = ISatChip.getFreqS(slots[13]); - int i2 = ISatChip.getFreqS(slots[14]); - int i3 = ISatChip.getFreqS(slots[15]); - - if(data.getSatFromFreq(i1) != null && data.getSatFromFreq(i2) != null && data.getSatFromFreq(i3) != null && - data.getSatFromFreq(i1) instanceof SatelliteResonator && data.getSatFromFreq(i2) instanceof SatelliteResonator && data.getSatFromFreq(i3) instanceof SatelliteResonator && - i1 != i2 && i1 != i3 && i2 != i3) - return true; - - } - - return true; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getMaxFill(); - else if(type.name().equals(tanks[3].getTankType().name())) - return tanks[3].getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - else if(type.name().equals(tanks[3].getTankType().name())) - tanks[3].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else if(type.name().equals(tanks[3].getTankType().name())) - return tanks[3].getFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 4 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 4 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerAMSBase(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIAMSBase(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java deleted file mode 100644 index 3595c47ea..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java +++ /dev/null @@ -1,425 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerAMSEmitter; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIAMSEmitter; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityAMSEmitter extends TileEntity implements ISidedInventory, IFluidContainer, IFluidAcceptor, IGUIProvider { - - private ItemStack slots[]; - - public long power = 0; - public static final long maxPower = 100000000; - public int efficiency = 0; - public static final int maxEfficiency = 100; - public int heat = 0; - public static final int maxHeat = 2500; - public int age = 0; - public int warning = 0; - public boolean locked = false; - public FluidTank tank; - - Random rand = new Random(); - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0 }; - private static final int[] slots_side = new int[] { 0 }; - - private String customName; - - public TileEntityAMSEmitter() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.COOLANT, 16000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.amsEmitter"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tank.readFromNBT(nbt, "coolant"); - efficiency = nbt.getInteger("efficiency"); - heat = nbt.getInteger("heat"); - locked = nbt.getBoolean("locked"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - tank.writeToNBT(nbt, "coolant"); - nbt.setInteger("efficiency", efficiency); - nbt.setInteger("heat", heat); - nbt.setBoolean("locked", locked); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - if(!locked) { - - tank.setType(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if(power > 0) { - //" - (maxHeat / 2)" offsets center to 50% instead of 0% - efficiency = Math.round(calcEffect(power, heat - (maxHeat / 2)) * 100); - power -= Math.ceil(power * 0.025); - warning = 0; - } else { - efficiency = 0; - warning = 1; - } - - if(tank.getTankType() == Fluids.CRYOGEL) { - - if(tank.getFill() >= 15) { - if(heat > 0) - tank.setFill(tank.getFill() - 15); - - if(heat <= maxHeat / 2) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 10; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 10; i++) - if(heat > maxHeat / 2) - heat--; - } else { - heat += efficiency; - } - } else if(tank.getTankType() == Fluids.COOLANT) { - - if(tank.getFill() >= 15) { - if(heat > 0) - tank.setFill(tank.getFill() - 15); - - if(heat <= maxHeat / 4) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 5; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 5; i++) - if(heat > maxHeat / 4) - heat--; - } else { - heat += efficiency; - } - } else if(tank.getTankType() == Fluids.WATER) { - - if(tank.getFill() >= 45) { - if(heat > 0) - tank.setFill(tank.getFill() - 45); - - if(heat <= maxHeat * 0.85) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 2; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 2; i++) - if(heat > maxHeat * 0.85) - heat--; - } else { - heat += efficiency; - } - } else { - heat += efficiency; - warning = 2; - } - - if(slots[2] != null) { - if(slots[2].getItem() != ModItems.ams_muzzle) { - this.efficiency = 0; - this.warning = 2; - } - } else { - this.efficiency = 0; - this.warning = 2; - } - - if(tank.getFill() <= 5 || heat > maxHeat * 0.9) - warning = 2; - - if(heat > maxHeat) { - heat = maxHeat; - locked = true; - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 3); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 2.5); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 2); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 1.5); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 1); - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:entity.oldExplosion", 10.0F, 1); - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.shutdown", 10.0F, 1.0F); - } - - power = Library.chargeTEFromItems(slots, 3, power, maxPower); - - } else { - //fire particles n stuff - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord - 0.5, zCoord + 0.5, rand.nextInt(10), 1); - - efficiency = 0; - power = 0; - warning = 3; - } - - tank.setTankType(Fluids.CRYOGEL); - tank.setFill(tank.getMaxFill()); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, locked ? 1 : 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, efficiency, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - } - } - - private float gauss(float a, float x) { - - //Greater values -> less difference of temperate impact - double amplifier = 0.10; - - return (float) ( (1/Math.sqrt(a * Math.PI)) * Math.pow(Math.E, -1 * Math.pow(x, 2)/amplifier) ); - } - - private float calcEffect(float a, float x) { - return (float) (gauss( 1 / a, x / maxHeat) * Math.sqrt(Math.PI * 2) / (Math.sqrt(2) * Math.sqrt(maxPower))); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getEfficiencyScaled(int i) { - return (efficiency * i) / maxEfficiency; - } - - public int getHeatScaled(int i) { - return (heat * i) / maxHeat; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerAMSEmitter(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIAMSEmitter(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java deleted file mode 100644 index 2d8163463..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java +++ /dev/null @@ -1,435 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerAMSLimiter; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIAMSLimiter; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.util.ParticleUtil; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, IFluidContainer, IFluidAcceptor, IGUIProvider { - - private ItemStack slots[]; - - public long power = 0; - public static final long maxPower = 10000000; - public int efficiency = 0; - public static final int maxEfficiency = 100; - public int heat = 0; - public static final int maxHeat = 2500; - public int age = 0; - public int warning = 0; - public int mode = 0; - public boolean locked = false; - public FluidTank tank; - - Random rand = new Random(); - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0 }; - private static final int[] slots_side = new int[] { 0 }; - - private String customName; - - public TileEntityAMSLimiter() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.COOLANT, 8000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.amsLimiter"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tank.readFromNBT(nbt, "coolant"); - efficiency = nbt.getInteger("efficiency"); - heat = nbt.getInteger("heat"); - locked = nbt.getBoolean("locked"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - tank.writeToNBT(nbt, "coolant"); - nbt.setInteger("efficiency", efficiency); - nbt.setInteger("heat", heat); - nbt.setBoolean("locked", locked); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - if(!locked) { - - tank.setType(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if(power > 0) { - //" - (maxHeat / 2)" offsets center to 50% instead of 0% - efficiency = Math.round(calcEffect(power, heat - (maxHeat / 2)) * 100); - power -= Math.ceil(power * 0.025); - warning = 0; - } else { - efficiency = 0; - warning = 1; - } - - if(tank.getTankType() == Fluids.CRYOGEL) { - - if(tank.getFill() >= 5) { - if(heat > 0) - tank.setFill(tank.getFill() - 5); - - if(heat <= maxHeat / 2) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 10; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 10; i++) - if(heat > maxHeat / 2) - heat--; - } else { - heat += efficiency; - } - } else if(tank.getTankType() == Fluids.COOLANT) { - - if(tank.getFill() >= 5) { - if(heat > 0) - tank.setFill(tank.getFill() - 5); - - if(heat <= maxHeat / 4) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 5; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 5; i++) - if(heat > maxHeat / 4) - heat--; - } else { - heat += efficiency; - } - } else if(tank.getTankType() == Fluids.WATER) { - - if(tank.getFill() >= 15) { - if(heat > 0) - tank.setFill(tank.getFill() - 15); - - if(heat <= maxHeat * 0.85) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 2; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 2; i++) - if(heat > maxHeat * 0.85) - heat--; - } else { - heat += efficiency; - } - } else { - heat += efficiency; - warning = 2; - } - - mode = 0; - if(slots[2] != null) { - if(slots[2].getItem() == ModItems.ams_focus_limiter) - mode = 1; - else if(slots[2].getItem() == ModItems.ams_focus_booster) - mode = 2; - else { - this.efficiency = 0; - this.warning = 2; - } - } else { - this.efficiency = 0; - this.warning = 2; - } - - if(tank.getFill() <= 5 || heat > maxHeat * 0.9) - warning = 2; - - if(heat > maxHeat) { - heat = maxHeat; - locked = true; - ExplosionLarge.spawnShock(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 24, 3); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 24, 3); - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:entity.oldExplosion", 10.0F, 1); - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.shutdown", 10.0F, 1.0F); - } - - power = Library.chargeTEFromItems(slots, 3, power, maxPower); - - } else { - //fire particles n stuff - int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); - double pos = rand.nextDouble() * 2.5; - double off = 0.25; - if(meta == 2) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 + off, yCoord + 5.5, zCoord + 0.5 - pos, 0.0, 0.0, 0.0); - if(meta == 3) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 - off, yCoord + 5.5, zCoord + 0.5 + pos, 0.0, 0.0, 0.0); - if(meta == 4) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 - pos, yCoord + 5.5, zCoord + 0.5 - off, 0.0, 0.0, 0.0); - if(meta == 5) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 + pos, yCoord + 5.5, zCoord + 0.5 + off, 0.0, 0.0, 0.0); - - efficiency = 0; - power = 0; - warning = 3; - } - - tank.setTankType(Fluids.CRYOGEL); - tank.setFill(tank.getMaxFill()); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, locked ? 1 : 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, efficiency, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - } - } - - private float gauss(float a, float x) { - - //Greater values -> less difference of temperate impact - double amplifier = 0.10; - - return (float) ( (1/Math.sqrt(a * Math.PI)) * Math.pow(Math.E, -1 * Math.pow(x, 2)/amplifier) ); - } - - private float calcEffect(float a, float x) { - return (float) (gauss( 1 / a, x / maxHeat) * Math.sqrt(Math.PI * 2) / (Math.sqrt(2) * Math.sqrt(maxPower))); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getEfficiencyScaled(int i) { - return (efficiency * i) / maxEfficiency; - } - - public int getHeatScaled(int i) { - return (heat * i) / maxHeat; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerAMSLimiter(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIAMSLimiter(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index be45e1ab5..54ca9de4c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -101,7 +101,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn @Override public long getMaxPower() { - return 0; + return this.power; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java deleted file mode 100644 index dadc37ec1..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java +++ /dev/null @@ -1,447 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IReactor; -import com.hbm.inventory.container.ContainerFWatzCore; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIFWatzCore; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; -import com.hbm.util.fauxpointtwelve.DirPos; -import com.hbm.world.machine.FWatz; - -import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.world.World; - -public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedInventory, IReactor, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { - - public long power; - public final static long maxPower = 10000000000L; - public boolean cooldown = false; - - public FluidTank tanks[]; - - Random rand = new Random(); - - private ItemStack slots[]; - - private String customName; - - public TileEntityFWatzCore() { - slots = new ItemStack[7]; - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.COOLANT, 128000, 0); - tanks[1] = new FluidTank(Fluids.AMAT, 64000, 1); - tanks[2] = new FluidTank(Fluids.ASCHRAB, 64000, 2); - } - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.fusionaryWatzPlant"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return true; - } - } - - @Override - public void openInventory() {} - - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return null; - } - - @Override - public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { - return false; - } - - @Override - public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tanks[0].readFromNBT(nbt, "cool"); - tanks[1].readFromNBT(nbt, "amat"); - tanks[2].readFromNBT(nbt, "aschrab"); - - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - nbt.setLong("power", power); - tanks[0].writeToNBT(nbt, "cool"); - tanks[1].writeToNBT(nbt, "amat"); - tanks[2].writeToNBT(nbt, "aschrab"); - - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public boolean isStructureValid(World world) { - return FWatz.checkHull(world, this.xCoord, this.yCoord, this.zCoord); - } - - @Override - public boolean isCoatingValid(World world) { - { - return true; - } - } - - @Override - public boolean hasFuse() { - return slots[1] != null && (slots[1].getItem() == ModItems.fuse || slots[1].getItem() == ModItems.screwdriver); - } - - @Override - public int getCoolantScaled(int i) { - return 0; - } - - @Override - public long getPowerScaled(long i) { - return (power/100 * i) / (maxPower/100); - } - - @Override - public int getWaterScaled(int i) { - return 0; - } - - @Override - public int getHeatScaled(int i) { - return 0; - } - - public int getSingularityType() { - - if(slots[2] != null) { - Item item = slots[2].getItem(); - - if(item == ModItems.singularity) - return 1; - if(item == ModItems.singularity_counter_resonant) - return 2; - if(item == ModItems.singularity_super_heated) - return 3; - if(item == ModItems.black_hole) - return 4; - if(item == ModItems.overfuse) - return 5; - } - - return 0; - } - - public DirPos[] getConPos() { - return new DirPos[] { - new DirPos(xCoord + 10, yCoord - 11, zCoord, Library.POS_X), - new DirPos(xCoord - 10, yCoord - 11, zCoord, Library.NEG_X), - new DirPos(xCoord, yCoord - 11, zCoord + 10, Library.POS_Z), - new DirPos(xCoord, yCoord - 11, zCoord - 10, Library.NEG_Z) - }; - } - - @Override - public void updateEntity() { - if(!worldObj.isRemote && this.isStructureValid(this.worldObj)) { - - for(DirPos pos : this.getConPos()) { - - this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - this.trySubscribe(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } - - if (hasFuse() && getSingularityType() > 0) { - if(cooldown) { - - int i = getSingularityType(); - - if(i == 1) - tanks[0].setFill(tanks[0].getFill() + 1500); - if(i == 2) - tanks[0].setFill(tanks[0].getFill() + 3000); - if(i == 3) - tanks[0].setFill(tanks[0].getFill() + 750); - if(i == 4) - tanks[0].setFill(tanks[0].getFill() + 7500); - if(i == 5) - tanks[0].setFill(tanks[0].getFill() + 15000); - - if(tanks[0].getFill() >= tanks[0].getMaxFill()) { - cooldown = false; - tanks[0].setFill(tanks[0].getMaxFill()); - } - - } else { - int i = getSingularityType(); - - if(i == 1 && tanks[1].getFill() - 75 >= 0 && tanks[2].getFill() - 75 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 150); - tanks[1].setFill(tanks[1].getFill() - 75); - tanks[2].setFill(tanks[2].getFill() - 75); - power += 5000000; - } - if(i == 2 && tanks[1].getFill() - 75 >= 0 && tanks[2].getFill() - 35 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 75); - tanks[1].setFill(tanks[1].getFill() - 35); - tanks[2].setFill(tanks[2].getFill() - 30); - power += 2500000; - } - if(i == 3 && tanks[1].getFill() - 75 >= 0 && tanks[2].getFill() - 140 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 300); - tanks[1].setFill(tanks[1].getFill() - 75); - tanks[2].setFill(tanks[2].getFill() - 140); - power += 10000000; - } - if(i == 4 && tanks[1].getFill() - 100 >= 0 && tanks[2].getFill() - 100 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 100); - tanks[1].setFill(tanks[1].getFill() - 100); - tanks[2].setFill(tanks[2].getFill() - 100); - power += 10000000; - } - if(i == 5 && tanks[1].getFill() - 15 >= 0 && tanks[2].getFill() - 15 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 150); - tanks[1].setFill(tanks[1].getFill() - 15); - tanks[2].setFill(tanks[2].getFill() - 15); - power += 100000000; - } - - if(power > maxPower) - power = maxPower; - - if(tanks[0].getFill() <= 0) { - cooldown = true; - tanks[0].setFill(0); - } - } - } - - if(power > maxPower) - power = maxPower; - - power = Library.chargeItemsFromTE(slots, 0, power, maxPower); - - tanks[1].loadTank(3, 5, slots); - tanks[2].loadTank(4, 6, slots); - - for(int i = 0; i < 3; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - - if(this.isRunning() && (tanks[1].getFill() <= 0 || tanks[2].getFill() <= 0 || !hasFuse() || getSingularityType() == 0) || cooldown || !this.isStructureValid(worldObj)) - this.emptyPlasma(); - - if(!this.isRunning() && tanks[1].getFill() >= 100 && tanks[2].getFill() >= 100 && hasFuse() && getSingularityType() > 0 && !cooldown && this.isStructureValid(worldObj)) - this.fillPlasma(); - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - - public void fillPlasma() { - if(!this.worldObj.isRemote) - FWatz.fillPlasma(worldObj, this.xCoord, this.yCoord, this.zCoord); - } - - public void emptyPlasma() { - if(!this.worldObj.isRemote) - FWatz.emptyPlasma(worldObj, this.xCoord, this.yCoord, this.zCoord); - } - - public boolean isRunning() { - return FWatz.getPlasma(worldObj, this.xCoord, this.yCoord, this.zCoord) && this.isStructureValid(worldObj); - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getMaxFill(); - else - return 0; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] { tanks[1], tanks[2] }; - } - - @Override - public FluidTank[] getAllTanks() { - return tanks; - } - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerFWatzCore(player.inventory, this); - } - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIFWatzCore(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java new file mode 100644 index 000000000..3b2b476ec --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -0,0 +1,49 @@ +package com.hbm.tileentity.machine; + +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityICF extends TileEntityMachineBase { + + public TileEntityICF() { + super(0); + } + + @Override + public String getName() { + return "container.machineICF"; + } + + @Override + public void updateEntity() { + + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord + 0.5 - 8, + yCoord, + zCoord + 0.5 - 8, + xCoord + 0.5 + 9, + yCoord + 0.5 + 5, + zCoord + 0.5 + 9 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java deleted file mode 100644 index 6a30be6fe..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.inventory.FluidContainerRegistry; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.energymk2.IBatteryItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; - -public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implements ISidedInventory { - - private ItemStack slots[]; - - public long power; - public int soundCycle = 0; - public long powerCap = 250000; - public FluidTank tank; - public int pistonCount = 0; - - - private String customName; - - public TileEntityMachineSeleniumEngine() { - slots = new ItemStack[14]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineSelenium"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if (i == 9) - if (FluidContainerRegistry.getFluidContent(stack, tank.getTankType()) > 0) - return true; - if (i == 13) - if (stack.getItem() instanceof IBatteryItem) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - this.power = nbt.getLong("powerTime"); - this.powerCap = nbt.getLong("powerCap"); - tank.readFromNBT(nbt, "fuel"); - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - nbt.setLong("powerCap", powerCap); - tank.writeToNBT(nbt, "fuel"); - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return new int[0]; - } - - @Override - public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { - return false; - } - - @Override - public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { - return false; - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityUVLamp.java b/src/main/java/com/hbm/tileentity/machine/TileEntityUVLamp.java deleted file mode 100644 index da9fe44ea..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityUVLamp.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.hbm.tileentity.machine; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityUVLamp extends TileEntity { - -} diff --git a/src/main/java/com/hbm/world/feature/Meteorite.java b/src/main/java/com/hbm/world/feature/Meteorite.java index b561d4451..ff80fe266 100644 --- a/src/main/java/com/hbm/world/feature/Meteorite.java +++ b/src/main/java/com/hbm/world/feature/Meteorite.java @@ -5,10 +5,12 @@ import java.util.HashSet; import java.util.List; import java.util.Random; +import com.hbm.blocks.BlockEnums.EnumMeteorType; import com.hbm.blocks.ModBlocks; import com.hbm.config.WorldConfig; import com.hbm.explosion.ExplosionLarge; import com.hbm.interfaces.Spaghetti; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; @@ -687,30 +689,8 @@ public class Meteorite { } public List getRandomOre(Random rand) { - List ores = new ArrayList(); - - for(int i = 0; i < 3; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_uranium)); - for(int i = 0; i < 5; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_thorium)); - for(int i = 0; i < 6; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_titanium)); - for(int i = 0; i < 7; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_sulfur)); - for(int i = 0; i < 8; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_copper)); - for(int i = 0; i < 5; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_tungsten)); - for(int i = 0; i < 7; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_aluminium)); - for(int i = 0; i < 6; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_lead)); - for(int i = 0; i < 4; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_lithium)); - for(int i = 0; i < 1; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_starmetal)); - + for(EnumMeteorType num : EnumMeteorType.values()) ores.add(DictFrame.fromOne(ModBlocks.ore_meteor, num)); return ores; } @@ -734,15 +714,6 @@ public class Meteorite { replacables.add(ModBlocks.block_meteor_cobble); replacables.add(ModBlocks.block_meteor_molten); replacables.add(ModBlocks.block_meteor_treasure); - replacables.add(ModBlocks.ore_meteor_uranium); - replacables.add(ModBlocks.ore_meteor_thorium); - replacables.add(ModBlocks.ore_meteor_titanium); - replacables.add(ModBlocks.ore_meteor_sulfur); - replacables.add(ModBlocks.ore_meteor_copper); - replacables.add(ModBlocks.ore_meteor_tungsten); - replacables.add(ModBlocks.ore_meteor_aluminium); - replacables.add(ModBlocks.ore_meteor_lead); - replacables.add(ModBlocks.ore_meteor_lithium); - replacables.add(ModBlocks.ore_meteor_starmetal); + replacables.add(ModBlocks.ore_meteor); } } diff --git a/src/main/java/com/hbm/world/machine/FWatz.java b/src/main/java/com/hbm/world/machine/FWatz.java deleted file mode 100644 index 4b500c311..000000000 --- a/src/main/java/com/hbm/world/machine/FWatz.java +++ /dev/null @@ -1,562 +0,0 @@ -package com.hbm.world.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; - -public class FWatz { - - public static String[][] fwatz = new String[][] { - { - " XXX ", - " XXX ", - " ", - " ", - " ", - " ", - " ", - " SSSSS ", - "XX SSSSS XX", - "XX SSSSS XX", - "XX SSSSS XX", - " SSSSS ", - " ", - " ", - " ", - " ", - " ", - " XXX ", - " XXX " - }, - { - " XHX ", - " XXX ", - " ", - " ", - " ", - " ", - " ", - " SSSSS ", - "XX STTTS XX", - "HX STTTS XH", - "XX STTTS XX", - " SSSSS ", - " ", - " ", - " ", - " ", - " ", - " XXX ", - " XHX " - }, - { - " XXX ", - " XXX ", - " ", - " ", - " ", - " ", - " ", - " SSSSS ", - "XX STTTS XX", - "XX STTTS XX", - "XX STTTS XX", - " SSSSS ", - " ", - " ", - " ", - " ", - " ", - " XXX ", - " XXX " - }, - { - " ", - " XXX ", - " XXX ", - " X ", - " X ", - " X ", - " X ", - " SSXSS ", - " XX STTTS XX ", - " XXXXXXXTTTXXXXXXX ", - " XX STTTS XX ", - " SSXSS ", - " X ", - " X ", - " X ", - " X ", - " XXX ", - " XXX ", - " " - }, - { - " ", - " XXX ", - " XXX ", - " ", - " ", - " ", - " ", - " SSSSS ", - " XX STTTS XX ", - " XX STTTS XX ", - " XX STTTS XX ", - " SSSSS ", - " ", - " ", - " ", - " ", - " XXX ", - " XXX ", - " " - }, - { - " ", - " XXX ", - " XXX ", - " ", - " ", - " ", - " ", - " SSSSS ", - " XX STTTS XX ", - " XX STTTS XX ", - " XX STTTS XX ", - " SSSSS ", - " ", - " ", - " ", - " ", - " XXX ", - " XXX ", - " " - }, - { - " ", - " ", - " XXX ", - " XXX ", - " ", - " ", - " ", - " MMMMM ", - " XX MMMMM XX ", - " XX MMMMM XX ", - " XX MMMMM XX ", - " MMMMM ", - " ", - " ", - " ", - " XXX ", - " XXX ", - " ", - " " - }, - { - " ", - " ", - " XXX ", - " XXX ", - " XXX ", - " MMMMM ", - " MMMMMMM ", - " MMMMMMMMM ", - " XXXMMMMMMMMMXXX ", - " XXXMMMMMMMMMXXX ", - " XXXMMMMMMMMMXXX ", - " MMMMMMMMM ", - " MMMMMMM ", - " MMMMM ", - " XXX ", - " XXX ", - " XXX ", - " ", - " " - }, - { - " ", - " ", - " XXX ", - " XXX ", - " MMMMM ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " XXMMMPPPPPMMMXX ", - " XXMMMPPPPPMMMXX ", - " XXMMMPPPPPMMMXX ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " MMMMM ", - " XXX ", - " XXX ", - " ", - " " - }, - { - " ", - " ", - " ", - " XXX ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " XMMPPPPPPPMMX ", - " XMMPPPPPPPMMX ", - " XMMPPPPPPPMMX ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " XXX ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " MMMPPPPPPPMMM ", - " MMPPPMMMPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPMMMPPPMM ", - " MMMPPPPPPPMMM ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMPPPPPMMM ", - " MMPPPPPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPMMMMMPPMM ", - " MMPPMMCMMPPMM ", - " MMPPMMMMMPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPPPPPMM ", - " MMMPPPPPMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMPPPPPMMM ", - " MMPPPPPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPMMCMMPPMM ", - " MMPPMC#CMPPMM ", - " MMPPMMCMMPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPPPPPMM ", - " MMMPPPPPMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMPPPPPMMM ", - " MMPPPPPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPMMMMMPPMM ", - " MMPPMMCMMPPMM ", - " MMPPMMMMMPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPPPPPMM ", - " MMMPPPPPMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " MMMPPPPPPPMMM ", - " MMPPPMMMPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPMMMPPPMM ", - " MMMPPPPPPPMMM ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " MMPPPPPPPMM ", - " MMPPPPPPPMM ", - " MMPPPPPPPMM ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " ", - " MMMMM ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " MMMPPPPPMMM ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " MMMMM ", - " ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " ", - " ", - " MMMMM ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " MMMMM ", - " ", - " ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " MMMMM ", - " MMMMM ", - " MMMMM ", - " MMMMM ", - " MMMMM ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - } - }; - - public void generateHull(World world, Random rand, int x, int y, int z) { - - x -= 9; - z -= 9; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - Block b = Blocks.air; - - if(c.equals("X")) - b = ModBlocks.fwatz_scaffold; - if(c.equals("H")) - b = ModBlocks.fwatz_hatch; - if(c.equals("S")) - b = ModBlocks.fwatz_cooler; - if(c.equals("T")) - b = ModBlocks.fwatz_tank; - if(c.equals("M")) - b = ModBlocks.fwatz_conductor; - if(c.equals("C")) - b = ModBlocks.fwatz_computer; - if(c.equals("#")) - b = ModBlocks.fwatz_core; - - world.setBlock(x + i, y + j, z + k, b); - } - } - } - - world.setBlock(x + 0, y + 1, z + 9, ModBlocks.fwatz_hatch, 4, 3); - world.setBlock(x + 18, y + 1, z + 9, ModBlocks.fwatz_hatch, 5, 3); - world.setBlock(x + 9, y + 1, z + 18, ModBlocks.fwatz_hatch, 3, 3); - world.setBlock(x + 9, y + 1, z + 0, ModBlocks.fwatz_hatch, 2, 3); - - } - - public static boolean checkHull(World world, int x, int y, int z) { - x -= 9; - y -= 12; - z -= 9; - - boolean flag = true; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - Block b = Blocks.air; - boolean flag2 = false; - - if(c.equals("X")) { - b = ModBlocks.fwatz_scaffold; - flag2 = true; - } - if(c.equals("H")) { - b = ModBlocks.fwatz_hatch; - flag2 = true; - } - if(c.equals("S")) { - b = ModBlocks.fwatz_cooler; - flag2 = true; - } - if(c.equals("T")) { - b = ModBlocks.fwatz_tank; - flag2 = true; - } - if(c.equals("M")) { - b = ModBlocks.fwatz_conductor; - flag2 = true; - } - if(c.equals("C")) { - b = ModBlocks.fwatz_computer; - flag2 = true; - } - if(c.equals("#")) { - b = ModBlocks.fwatz_core; - flag2 = true; - } - - if(flag2) - if(world.getBlock(x + i, y + j, z + k) != b) - flag = false; - } - } - } - - return flag; - } - - public static void fillPlasma(World world, int x, int y, int z) { - x -= 9; - y -= 12; - z -= 9; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - - if(c.equals("P")) - world.setBlock(x + i, y + j, z + k, ModBlocks.fwatz_plasma); - } - } - } - } - - public static void emptyPlasma(World world, int x, int y, int z) { - x -= 9; - y -= 12; - z -= 9; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - - if(c.equals("P")) - if(world.getBlock(x + i, y + j, z + k) == ModBlocks.fwatz_plasma) - world.setBlock(x + i, y + j, z + k, Blocks.air); - } - } - } - } - - public static boolean getPlasma(World world, int x, int y, int z) { - x -= 9; - y -= 12; - z -= 9; - - boolean flag = false; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - - if(c.equals("P") && world.getBlock(x + i, y + j, z + k) == ModBlocks.fwatz_plasma) - flag = true; - } - } - } - - return flag; - } - -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/BombGenericLarge.obj b/src/main/resources/assets/hbm/models/BombGenericLarge.obj deleted file mode 100644 index 81d5f5930..000000000 --- a/src/main/resources/assets/hbm/models/BombGenericLarge.obj +++ /dev/null @@ -1,685 +0,0 @@ -# Blender v2.70 (sub 0) OBJ File: 'BombGenericLarge.blend' -# www.blender.org -o Cylinder -v 0.265165 0.640165 -0.914583 -v 0.265165 0.640165 0.960417 -v 0.346455 0.518507 -0.914583 -v 0.346455 0.518506 0.960417 -v 0.375000 0.375000 -0.914583 -v 0.375000 0.375000 0.960417 -v 0.346455 0.231494 -0.914583 -v 0.346454 0.231493 0.960417 -v 0.265165 0.109835 -0.914583 -v 0.265165 0.109835 0.960417 -v 0.143506 0.028545 -0.914583 -v 0.143506 0.028545 0.960416 -v 0.000000 0.000000 -0.914584 -v -0.000000 -0.000000 0.960416 -v -0.143506 0.028546 -0.914584 -v -0.143507 0.028545 0.960416 -v -0.265165 0.109835 -0.914584 -v -0.265165 0.109835 0.960416 -v -0.346454 0.231494 -0.914584 -v -0.346455 0.231493 0.960416 -v -0.375000 0.375000 -0.914584 -v -0.375000 0.375000 0.960416 -v -0.346454 0.518507 -0.914584 -v -0.346455 0.518506 0.960416 -v -0.265165 0.640165 -0.914583 -v -0.265165 0.640165 0.960417 -v -0.143506 0.721455 -0.914583 -v -0.143506 0.721455 0.960417 -v 0.000001 0.750000 -0.914583 -v -0.000000 0.750000 0.960417 -v 0.143507 0.721455 -0.914583 -v 0.143506 0.721454 0.960417 -v 0.132583 0.507582 1.185417 -v 0.071753 0.548227 1.185417 -v 0.000000 0.562500 1.185417 -v -0.071753 0.548227 1.185417 -v -0.132582 0.507583 1.185417 -v -0.173227 0.446753 1.185417 -v -0.187500 0.375000 1.185417 -v -0.173227 0.303247 1.185417 -v -0.132583 0.242418 1.185417 -v -0.071753 0.201773 1.185417 -v -0.000000 0.187500 1.185417 -v 0.071753 0.201773 1.185417 -v 0.132582 0.242417 1.185417 -v 0.173227 0.303247 1.185417 -v 0.187500 0.375000 1.185417 -v 0.173227 0.446753 1.185417 -v 0.132583 0.507582 -1.364583 -v 0.071753 0.548227 -1.364583 -v 0.000000 0.562500 -1.364583 -v -0.071753 0.548227 -1.364583 -v -0.132582 0.507583 -1.364583 -v -0.173227 0.446753 -1.364583 -v -0.187500 0.375000 -1.364583 -v -0.173227 0.303247 -1.364583 -v -0.132583 0.242417 -1.364583 -v -0.071753 0.201773 -1.364583 -v -0.000000 0.187500 -1.364583 -v 0.071753 0.201773 -1.364583 -v 0.132582 0.242417 -1.364583 -v 0.173227 0.303247 -1.364583 -v 0.187500 0.375000 -1.364583 -v 0.173227 0.446753 -1.364583 -v 0.132583 0.507582 -1.664583 -v 0.071753 0.548227 -1.664583 -v 0.000000 0.562500 -1.664583 -v -0.071753 0.548227 -1.664583 -v -0.132582 0.507583 -1.664583 -v -0.173227 0.446753 -1.664583 -v -0.187500 0.375000 -1.664583 -v -0.173227 0.303247 -1.664583 -v -0.132583 0.242417 -1.664583 -v -0.071753 0.201773 -1.664583 -v -0.000000 0.187500 -1.664583 -v 0.071753 0.201773 -1.664583 -v 0.132582 0.242417 -1.664583 -v 0.173227 0.303247 -1.664583 -v 0.187500 0.375000 -1.664583 -v 0.173227 0.446753 -1.664583 -v -0.371231 0.746231 -1.213083 -v 0.371231 0.003769 -1.213083 -v -0.371231 0.746231 -1.591083 -v 0.371231 0.003769 -1.591083 -v -0.371231 0.746231 -1.213083 -v 0.371231 0.003769 -1.213083 -v -0.371231 0.746231 -1.591083 -v 0.371231 0.003769 -1.591083 -v 0.371232 0.746231 -1.213083 -v -0.371231 0.003769 -1.213083 -v 0.371232 0.746231 -1.591083 -v -0.371231 0.003769 -1.591083 -v 0.371232 0.746231 -1.213083 -v -0.371231 0.003769 -1.213083 -v 0.371232 0.746231 -1.591083 -v -0.371231 0.003769 -1.591083 -vt 0.484392 0.017784 -vt 0.484392 0.388294 -vt 0.455678 0.388294 -vt 0.548430 0.388294 -vt 0.519716 0.388294 -vt 0.519716 0.017784 -vt 0.110414 0.631349 -vt 0.081700 0.631349 -vt 0.081700 0.260839 -vt 0.455678 0.794374 -vt 0.455678 0.423863 -vt 0.484392 0.423863 -vt 0.676506 0.388294 -vt 0.647792 0.388294 -vt 0.647792 0.017784 -vt 0.740544 0.017785 -vt 0.740544 0.388295 -vt 0.711830 0.388295 -vt 0.612468 0.794374 -vt 0.583754 0.794374 -vt 0.583754 0.423864 -vt 0.519716 0.794374 -vt 0.519716 0.423863 -vt 0.548430 0.423863 -vt 0.804581 0.423864 -vt 0.804581 0.794374 -vt 0.775868 0.794374 -vt 0.740544 0.794374 -vt 0.711830 0.794374 -vt 0.711830 0.423864 -vt 0.172632 0.260839 -vt 0.201346 0.260839 -vt 0.201346 0.631349 -vt 0.647792 0.794373 -vt 0.647792 0.423863 -vt 0.676506 0.423863 -vt 0.265384 0.260839 -vt 0.265384 0.631349 -vt 0.236670 0.631349 -vt 0.612468 0.017784 -vt 0.612468 0.388295 -vt 0.583754 0.388295 -vt 0.374888 0.631349 -vt 0.346174 0.631349 -vt 0.346174 0.260839 -vt 0.046376 0.260839 -vt 0.046376 0.631349 -vt 0.017662 0.631349 -vt 0.932657 0.651554 -vt 0.903943 0.651554 -vt 0.911122 0.594132 -vt 0.932657 0.481286 -vt 0.903943 0.481286 -vt 0.911122 0.423864 -vt 0.932657 0.388295 -vt 0.903943 0.388295 -vt 0.911122 0.330872 -vt 0.305356 0.682673 -vt 0.244167 0.723842 -vt 0.254319 0.672450 -vt 0.932657 0.744546 -vt 0.903943 0.744546 -vt 0.911122 0.687123 -vt 0.484392 0.887365 -vt 0.455678 0.887365 -vt 0.462856 0.829943 -vt 0.676506 0.887365 -vt 0.647792 0.887365 -vt 0.654970 0.829942 -vt 0.548430 0.887365 -vt 0.519716 0.887365 -vt 0.526894 0.829942 -vt 0.201346 0.855971 -vt 0.172632 0.855971 -vt 0.179811 0.798548 -vt 0.711830 0.887365 -vt 0.719008 0.829943 -vt 0.733365 0.829943 -vt 0.775868 0.887365 -vt 0.783046 0.829942 -vt 0.797403 0.829942 -vt 0.839905 0.876176 -vt 0.847084 0.818753 -vt 0.861441 0.818753 -vt 0.583754 0.887365 -vt 0.590933 0.829943 -vt 0.605290 0.829943 -vt 0.903943 0.206837 -vt 0.911122 0.149415 -vt 0.925479 0.149415 -vt 0.903943 0.113846 -vt 0.911122 0.056423 -vt 0.925479 0.056423 -vt 0.903943 0.876176 -vt 0.911122 0.818753 -vt 0.925479 0.818753 -vt 0.172632 0.948962 -vt 0.179811 0.891540 -vt 0.194168 0.891540 -vt 0.346174 0.696029 -vt 0.412857 0.682673 -vt 0.346174 0.710485 -vt 0.982338 0.242406 -vt 0.982338 0.301688 -vt 0.967981 0.301688 -vt 0.662149 0.922934 -vt 0.676506 0.922934 -vt 0.676506 0.982215 -vt 0.953624 0.911745 -vt 0.967981 0.911745 -vt 0.967981 0.971026 -vt 0.534073 0.922934 -vt 0.534073 0.982215 -vt 0.519716 0.982215 -vt 0.740544 0.982216 -vt 0.726187 0.982216 -vt 0.726187 0.922934 -vt 0.903943 0.911745 -vt 0.918300 0.911745 -vt 0.918300 0.971026 -vt 0.790224 0.982215 -vt 0.775868 0.982215 -vt 0.775868 0.922934 -vt 0.246812 0.966077 -vt 0.246812 0.906795 -vt 0.261169 0.906795 -vt 0.346174 0.906795 -vt 0.360531 0.906795 -vt 0.360531 0.966077 -vt 0.967981 0.653414 -vt 0.967981 0.594132 -vt 0.982338 0.594132 -vt 0.612468 0.922934 -vt 0.612468 0.982216 -vt 0.598111 0.982216 -vt 0.967981 0.206837 -vt 0.967981 0.147555 -vt 0.982338 0.147555 -vt 0.470035 0.922934 -vt 0.484392 0.922934 -vt 0.484392 0.982216 -vt 0.403994 0.966077 -vt 0.403994 0.906795 -vt 0.418351 0.906795 -vt 0.296493 0.966077 -vt 0.296493 0.906795 -vt 0.310850 0.906795 -vt 0.854262 0.971026 -vt 0.854262 0.911745 -vt 0.868619 0.911745 -vt 0.172632 0.762979 -vt 0.179811 0.666918 -vt 0.194168 0.666918 -vt 0.396816 0.775165 -vt 0.411173 0.775165 -vt 0.418351 0.871226 -vt 0.282136 0.871226 -vt 0.289315 0.775165 -vt 0.303672 0.775165 -vt 0.839905 0.388295 -vt 0.847084 0.292233 -vt 0.861441 0.292233 -vt 0.017662 0.762979 -vt 0.024841 0.666918 -vt 0.039198 0.666918 -vt 0.839905 0.113846 -vt 0.847084 0.017785 -vt 0.861441 0.017785 -vt 0.775868 0.388295 -vt 0.783046 0.292234 -vt 0.797403 0.292234 -vt 0.839905 0.651554 -vt 0.847084 0.555493 -vt 0.861441 0.555493 -vt 0.847084 0.687123 -vt 0.861441 0.687123 -vt 0.868619 0.783184 -vt 0.024840 0.798548 -vt 0.039197 0.798548 -vt 0.046376 0.894609 -vt 0.103235 0.894609 -vt 0.088878 0.894609 -vt 0.081700 0.798548 -vt 0.861441 0.245476 -vt 0.847084 0.245476 -vt 0.839905 0.149415 -vt 0.847084 0.423864 -vt 0.861441 0.423864 -vt 0.868619 0.519925 -vt 0.783046 0.149415 -vt 0.797403 0.149415 -vt 0.804581 0.245476 -vt 0.783046 0.017785 -vt 0.797403 0.017784 -vt 0.804581 0.113846 -vt 0.088878 0.666918 -vt 0.103235 0.666918 -vt 0.110414 0.762979 -vt 0.201346 0.225270 -vt 0.127166 0.225270 -vt 0.127166 0.017785 -vt 0.420354 0.017784 -vt 0.420354 0.225270 -vt 0.346174 0.225270 -vt 0.236670 0.225270 -vt 0.236670 0.017784 -vt 0.310850 0.017784 -vt 0.091842 0.017785 -vt 0.091842 0.225270 -vt 0.017662 0.225270 -vt 0.455678 0.017784 -vt 0.548430 0.017784 -vt 0.110414 0.260839 -vt 0.484392 0.794374 -vt 0.676506 0.017785 -vt 0.711830 0.017784 -vt 0.612468 0.423864 -vt 0.548430 0.794374 -vt 0.775868 0.423864 -vt 0.740544 0.423864 -vt 0.172632 0.631349 -vt 0.676506 0.794373 -vt 0.236670 0.260839 -vt 0.583754 0.017784 -vt 0.374888 0.260839 -vt 0.017662 0.260839 -vt 0.925479 0.594132 -vt 0.925479 0.423864 -vt 0.925479 0.330872 -vt 0.254319 0.734064 -vt 0.267583 0.739596 -vt 0.925479 0.687123 -vt 0.244167 0.682673 -vt 0.238673 0.696029 -vt 0.281940 0.739596 -vt 0.477213 0.829943 -vt 0.310850 0.696029 -vt 0.310850 0.710485 -vt 0.305356 0.723842 -vt 0.295204 0.734064 -vt 0.281940 0.666918 -vt 0.295204 0.672450 -vt 0.238673 0.710485 -vt 0.267583 0.666918 -vt 0.669327 0.829942 -vt 0.541251 0.829942 -vt 0.194168 0.798548 -vt 0.740544 0.887365 -vt 0.804581 0.887365 -vt 0.868619 0.876176 -vt 0.612468 0.887365 -vt 0.932657 0.206837 -vt 0.932657 0.113846 -vt 0.932657 0.876176 -vt 0.201346 0.948962 -vt 0.361820 0.734064 -vt 0.402705 0.734064 -vt 0.389441 0.739596 -vt 0.375084 0.666918 -vt 0.402705 0.672450 -vt 0.418351 0.696029 -vt 0.418351 0.710485 -vt 0.412857 0.723842 -vt 0.375084 0.739596 -vt 0.967981 0.242406 -vt 0.351668 0.682673 -vt 0.361820 0.672450 -vt 0.662149 0.982215 -vt 0.351668 0.723842 -vt 0.389441 0.666918 -vt 0.953624 0.971026 -vt 0.519716 0.922934 -vt 0.740544 0.922934 -vt 0.903943 0.971026 -vt 0.790224 0.922934 -vt 0.261169 0.966077 -vt 0.346174 0.966077 -vt 0.982338 0.653414 -vt 0.598111 0.922934 -vt 0.982338 0.206837 -vt 0.470035 0.982216 -vt 0.418351 0.966077 -vt 0.310850 0.966077 -vt 0.868619 0.971026 -vt 0.201346 0.762979 -vt 0.389638 0.871226 -vt 0.310850 0.871226 -vt 0.868619 0.388295 -vt 0.046376 0.762979 -vt 0.868619 0.113846 -vt 0.804582 0.388295 -vt 0.868619 0.651554 -vt 0.839905 0.783184 -vt 0.017662 0.894609 -vt 0.110414 0.798548 -vt 0.868619 0.149415 -vt 0.839905 0.519925 -vt 0.775868 0.245476 -vt 0.775868 0.113846 -vt 0.081700 0.762979 -vt 0.201346 0.017784 -vt 0.346174 0.017784 -vt 0.310850 0.225270 -vt 0.017662 0.017784 -vn 0.831470 0.555569 0.000001 -vn 0.980785 0.195090 0.000000 -vn 0.980785 -0.195091 0.000000 -vn 0.831470 -0.555570 0.000000 -vn 0.555570 -0.831470 -0.000000 -vn 0.195090 -0.980785 -0.000000 -vn -0.195091 -0.980785 -0.000000 -vn -0.555571 -0.831469 -0.000001 -vn -0.831470 -0.555570 -0.000001 -vn -0.980785 -0.195090 -0.000000 -vn -0.980785 0.195090 -0.000000 -vn -0.831469 0.555571 -0.000000 -vn -0.555570 0.831470 0.000000 -vn -0.195090 0.980785 0.000000 -vn 0.555571 0.831469 0.000000 -vn 0.195091 0.980785 0.000000 -vn 0.643794 0.430169 0.632838 -vn 0.759407 0.151055 0.632837 -vn 0.759406 -0.151056 0.632838 -vn 0.000001 -0.000001 1.000000 -vn 0.643793 -0.430170 0.632838 -vn 0.430169 -0.643794 0.632838 -vn 0.151054 -0.759406 0.632839 -vn -0.151055 -0.759406 0.632839 -vn -0.430170 -0.643793 0.632839 -vn -0.643793 -0.430168 0.632839 -vn -0.759406 -0.151056 0.632838 -vn -0.759407 0.151054 0.632838 -vn -0.643794 0.430170 0.632838 -vn -0.430168 0.643795 0.632838 -vn -0.151056 0.759406 0.632839 -vn 0.151056 0.759407 0.632838 -vn 0.430169 0.643794 0.632838 -vn 0.000000 -0.000000 -1.000000 -vn 0.831470 0.555570 0.000000 -vn 0.980785 0.195091 0.000000 -vn 0.980785 -0.195090 -0.000000 -vn 0.831469 -0.555570 0.000000 -vn -0.555571 -0.831469 0.000000 -vn -0.831470 -0.555569 0.000000 -vn -0.980785 0.195091 0.000000 -vn -0.831470 0.555570 0.000000 -vn 0.555570 0.831470 0.000000 -vn 0.769680 0.514283 -0.378292 -vn 0.514284 0.769680 -0.378292 -vn 0.180592 0.907899 -0.378293 -vn -0.180593 0.907899 -0.378292 -vn -0.514282 0.769681 -0.378292 -vn -0.769680 0.514284 -0.378291 -vn -0.907900 0.180593 -0.378291 -vn -0.907900 -0.180592 -0.378291 -vn -0.769681 -0.514284 -0.378290 -vn -0.514284 -0.769680 -0.378291 -vn -0.180593 -0.907900 -0.378291 -vn 0.180592 -0.907900 -0.378291 -vn 0.514284 -0.769680 -0.378292 -vn 0.769680 -0.514284 -0.378292 -vn 0.907899 -0.180592 -0.378292 -vn 0.907899 0.180593 -0.378292 -vn 0.707107 0.707107 0.000000 -vn -0.707107 -0.707107 0.000000 -vn -0.707106 0.707108 0.000000 -vn 0.707106 -0.707108 0.000000 -vn 0.831470 0.555570 0.000001 -vn -0.980785 -0.195091 -0.000000 -vn 0.643794 0.430170 0.632837 -vn 0.759407 -0.151056 0.632837 -vn 0.000000 0.000000 1.000000 -vn 0.643794 -0.430169 0.632838 -vn 0.000000 -0.000002 1.000000 -vn -0.000001 -0.000001 1.000000 -vn 0.430168 -0.643794 0.632839 -vn -0.000004 -0.000001 1.000000 -vn 0.000007 -0.000002 1.000000 -vn 0.000002 0.000004 1.000000 -vn 0.000005 -0.000002 1.000000 -vn 0.000000 0.000003 1.000000 -vn 0.000000 -0.000001 1.000000 -vn -0.000002 -0.000001 1.000000 -vn -0.000003 -0.000001 1.000000 -vn 0.151054 -0.759406 0.632838 -vn -0.151056 -0.759405 0.632839 -vn -0.430169 -0.643793 0.632839 -vn -0.643793 -0.430169 0.632839 -vn -0.759406 -0.151055 0.632839 -vn -0.759406 0.151055 0.632838 -vn -0.643794 0.430168 0.632838 -vn -0.430170 0.643793 0.632839 -vn -0.151055 0.759407 0.632838 -vn 0.430170 0.643794 0.632838 -vn 0.000003 0.000004 -1.000000 -vn 0.000005 0.000003 -1.000000 -vn -0.000007 0.000002 -1.000000 -vn -0.000004 0.000000 -1.000000 -vn 0.000000 0.000001 -1.000000 -vn -0.000002 0.000000 -1.000000 -vn 0.000001 -0.000001 -1.000000 -vn 0.000000 0.000002 -1.000000 -vn 0.000002 -0.000001 -1.000000 -vn 0.000007 0.000005 -1.000000 -vn 0.000001 0.000002 -1.000000 -vn -0.555570 -0.831470 0.000000 -vn -0.831470 -0.555570 0.000000 -vn -0.195091 0.980785 0.000000 -vn 0.514284 0.769679 -0.378292 -vn 0.180593 0.907899 -0.378292 -vn -0.180592 0.907900 -0.378292 -vn -0.514284 0.769680 -0.378291 -vn -0.769680 0.514285 -0.378291 -vn -0.907900 -0.180593 -0.378291 -vn -0.769680 -0.514284 -0.378291 -vn -0.514284 -0.769681 -0.378291 -vn 0.180593 -0.907900 -0.378291 -vn 0.514284 -0.769680 -0.378291 -vn 0.907899 -0.180593 -0.378292 -vn 0.907899 0.180592 -0.378292 -vn -0.707106 0.707107 0.000000 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/4/2 6/5/2 5/6/2 -f 6/7/3 8/8/3 7/9/3 -f 7/10/4 8/11/4 10/12/4 -f 10/13/5 12/14/5 11/15/5 -f 11/16/6 12/17/6 14/18/6 -f 14/19/7 16/20/7 15/21/7 -f 15/22/8 16/23/8 18/24/8 -f 17/25/9 18/26/9 20/27/9 -f 20/28/10 22/29/10 21/30/10 -f 22/31/11 24/32/11 23/33/11 -f 23/34/12 24/35/12 26/36/12 -f 25/37/13 26/38/13 28/39/13 -f 27/40/14 28/41/14 30/42/14 -f 32/43/15 2/44/15 1/45/15 -f 29/46/16 30/47/16 32/48/16 -f 4/49/17 2/50/17 33/51/17 -f 6/52/18 4/53/18 48/54/18 -f 8/55/19 6/56/19 47/57/19 -f 44/58/20 36/59/20 40/60/20 -f 10/61/21 8/62/21 46/63/21 -f 12/64/22 10/65/22 45/66/22 -f 14/67/23 12/68/23 44/69/23 -f 16/70/24 14/71/24 43/72/24 -f 18/73/25 16/74/25 42/75/25 -f 18/76/26 41/77/26 40/78/26 -f 20/79/27 40/80/27 39/81/27 -f 22/82/28 39/83/28 38/84/28 -f 24/85/29 38/86/29 37/87/29 -f 26/88/30 37/89/30 36/90/30 -f 28/91/31 36/92/31 35/93/31 -f 30/94/32 35/95/32 34/96/32 -f 32/97/33 34/98/33 33/99/33 -f 69/100/34 79/101/34 70/102/34 -f 64/103/35 80/104/35 65/105/35 -f 79/106/36 80/107/36 64/108/36 -f 78/109/37 79/110/37 63/111/37 -f 61/112/38 77/113/38 78/114/38 -f 76/115/5 77/116/5 61/117/5 -f 75/118/6 76/119/6 60/120/6 -f 74/121/7 75/122/7 59/123/7 -f 57/124/39 73/125/39 74/126/39 -f 72/127/40 73/128/40 57/129/40 -f 55/130/10 71/131/10 72/132/10 -f 54/133/41 70/134/41 71/135/41 -f 53/136/42 69/137/42 70/138/42 -f 68/139/13 69/140/13 53/141/13 -f 49/142/43 65/143/43 66/144/43 -f 50/145/16 66/146/16 67/147/16 -f 51/148/14 67/149/14 68/150/14 -f 3/151/44 64/152/44 49/153/44 -f 49/154/45 50/155/45 31/156/45 -f 31/157/46 50/158/46 51/159/46 -f 29/160/47 51/161/47 52/162/47 -f 27/163/48 52/164/48 53/165/48 -f 25/166/49 53/167/49 54/168/49 -f 23/169/50 54/170/50 55/171/50 -f 21/172/51 55/173/51 56/174/51 -f 56/175/52 57/176/52 17/177/52 -f 57/178/53 58/179/53 15/180/53 -f 58/181/54 59/182/54 13/183/54 -f 59/184/55 60/185/55 11/186/55 -f 60/187/56 61/188/56 9/189/56 -f 61/190/57 62/191/57 7/192/57 -f 62/193/58 63/194/58 5/195/58 -f 63/196/59 64/197/59 3/198/59 -f 82/199/60 84/200/60 83/201/60 -f 87/202/61 88/203/61 86/204/61 -f 91/205/62 92/206/62 90/207/62 -f 93/208/63 94/209/63 96/210/63 -f 3/211/64 1/1/64 4/3/64 -f 3/212/2 4/4/2 5/6/2 -f 5/213/3 6/7/3 7/9/3 -f 9/214/4 7/10/4 10/12/4 -f 9/215/5 10/13/5 11/15/5 -f 13/216/6 11/16/6 14/18/6 -f 13/217/7 14/19/7 15/21/7 -f 17/218/8 15/22/8 18/24/8 -f 19/219/9 17/25/9 20/27/9 -f 19/220/65 20/28/65 21/30/65 -f 21/221/41 22/31/41 23/33/41 -f 25/222/12 23/34/12 26/36/12 -f 27/223/13 25/37/13 28/39/13 -f 29/224/14 27/40/14 30/42/14 -f 31/225/15 32/43/15 1/45/15 -f 31/226/16 29/46/16 32/48/16 -f 48/227/66 4/49/66 33/51/66 -f 47/228/18 6/52/18 48/54/18 -f 46/229/67 8/55/67 47/57/67 -f 35/230/68 36/59/68 34/231/68 -f 45/232/69 10/61/69 46/63/69 -f 39/233/70 40/60/70 38/234/70 -f 44/58/71 33/235/71 36/59/71 -f 44/236/72 12/64/72 45/66/72 -f 45/237/73 33/235/73 44/58/73 -f 45/237/74 46/238/74 47/239/74 -f 47/239/70 48/240/70 33/235/70 -f 42/241/75 43/242/75 44/58/75 -f 40/60/76 37/243/76 38/234/76 -f 36/59/77 33/235/77 34/231/77 -f 45/237/78 47/239/78 33/235/78 -f 40/60/79 42/241/79 44/58/79 -f 40/60/68 41/244/68 42/241/68 -f 36/59/80 37/243/80 40/60/80 -f 43/245/81 14/67/81 44/69/81 -f 42/246/82 16/70/82 43/72/82 -f 41/247/83 18/73/83 42/75/83 -f 20/248/84 18/76/84 40/78/84 -f 22/249/85 20/79/85 39/81/85 -f 24/250/86 22/82/86 38/84/86 -f 26/251/87 24/85/87 37/87/87 -f 28/252/88 26/88/88 36/90/88 -f 30/253/89 28/91/89 35/93/89 -f 32/254/32 30/94/32 34/96/32 -f 2/255/90 32/97/90 33/99/90 -f 72/256/91 75/257/91 74/258/91 -f 79/101/92 66/259/92 80/260/92 -f 79/101/93 78/261/93 77/262/93 -f 77/262/94 76/263/94 75/257/94 -f 73/264/34 72/256/34 74/258/34 -f 72/256/95 79/101/95 77/262/95 -f 49/265/35 64/103/35 65/105/35 -f 69/100/96 68/266/96 67/267/96 -f 63/268/2 79/106/2 64/108/2 -f 75/257/97 72/256/97 77/262/97 -f 72/256/98 71/269/98 70/102/98 -f 79/101/99 67/267/99 66/259/99 -f 66/259/100 65/270/100 80/260/100 -f 70/102/101 79/101/101 72/256/101 -f 69/100/34 67/267/34 79/101/34 -f 62/271/3 78/109/3 63/111/3 -f 62/272/38 61/112/38 78/114/38 -f 60/273/5 76/115/5 61/117/5 -f 59/274/6 75/118/6 60/120/6 -f 58/275/7 74/121/7 59/123/7 -f 58/276/102 57/124/102 74/126/102 -f 56/277/103 72/127/103 57/129/103 -f 56/278/10 55/130/10 72/132/10 -f 55/279/11 54/133/11 71/135/11 -f 54/280/12 53/136/12 70/138/12 -f 52/281/13 68/139/13 53/141/13 -f 50/282/15 49/142/15 66/144/15 -f 51/283/16 50/145/16 67/147/16 -f 52/284/104 51/148/104 68/150/104 -f 1/285/44 3/151/44 49/153/44 -f 1/286/105 49/154/105 31/156/105 -f 29/287/106 31/157/106 51/159/106 -f 27/288/107 29/160/107 52/162/107 -f 25/289/108 27/163/108 53/165/108 -f 23/290/109 25/166/109 54/168/109 -f 21/291/50 23/169/50 55/171/50 -f 19/292/110 21/172/110 56/174/110 -f 19/293/111 56/175/111 17/177/111 -f 17/294/112 57/178/112 15/180/112 -f 15/295/54 58/181/54 13/183/54 -f 13/296/113 59/184/113 11/186/113 -f 11/297/114 60/187/114 9/189/114 -f 9/298/57 61/190/57 7/192/57 -f 7/299/115 62/193/115 5/195/115 -f 5/300/116 63/196/116 3/198/116 -f 81/301/60 82/199/60 83/201/60 -f 85/302/61 87/202/61 86/204/61 -f 89/303/117 91/205/117 90/207/117 -f 95/304/63 93/208/63 96/210/63 diff --git a/src/main/resources/assets/hbm/models/ams_base.obj b/src/main/resources/assets/hbm/models/ams_base.obj deleted file mode 100644 index e8d049802..000000000 --- a/src/main/resources/assets/hbm/models/ams_base.obj +++ /dev/null @@ -1,344 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_base.blend' -# www.blender.org -o Plane -v -1.500000 0.000000 1.500000 -v 1.500000 0.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v -1.000000 1.500000 1.000000 -v 1.000000 1.500000 1.000000 -v -1.000000 1.500000 -1.000000 -v 1.000000 1.500000 -1.000000 -v -1.500000 0.343750 0.156250 -v -1.500000 0.656250 0.156250 -v -1.500000 0.343750 -0.156250 -v -1.500000 0.656250 -0.156250 -v 1.500000 0.343750 0.156250 -v 1.500000 0.656250 0.156250 -v 1.500000 0.343750 -0.156250 -v 1.500000 0.656250 -0.156250 -v 0.156250 0.343750 1.500000 -v 0.156250 0.656250 1.500000 -v -0.156250 0.343750 1.500000 -v -0.156250 0.656250 1.500000 -v 0.156250 0.343750 -1.500000 -v 0.156250 0.656250 -1.500000 -v -0.156250 0.343750 -1.500000 -v -0.156250 0.656250 -1.500000 -v -1.000000 2.000000 -1.000000 -v -1.000000 2.000000 1.000000 -v 1.000000 2.000000 1.000000 -v 1.000000 2.000000 -1.000000 -v -0.750000 2.000000 -0.750000 -v -0.750000 2.000000 0.750000 -v 0.750000 2.000000 0.750000 -v 0.750000 2.000000 -0.750000 -v -0.750000 1.750000 -0.750000 -v -0.750000 1.750000 0.750000 -v 0.750000 1.750000 0.750000 -v 0.750000 1.750000 -0.750000 -v -0.750000 3.000000 0.750000 -v -0.750000 3.000000 -0.750000 -v 0.000000 1.750000 -0.600000 -v 0.000000 2.000000 -0.600000 -v 0.229610 1.750000 -0.554328 -v 0.229610 2.000000 -0.554328 -v 0.424264 1.750000 -0.424264 -v 0.424264 2.000000 -0.424264 -v 0.554328 1.750000 -0.229610 -v 0.554328 2.000000 -0.229610 -v 0.600000 1.750000 0.000000 -v 0.600000 2.000000 0.000000 -v 0.554328 1.750000 0.229610 -v 0.554328 2.000000 0.229610 -v 0.424264 1.750000 0.424264 -v 0.424264 2.000000 0.424264 -v 0.229610 1.750000 0.554328 -v 0.229610 2.000000 0.554328 -v 0.000000 1.750000 0.600000 -v 0.000000 2.000000 0.600000 -v -0.229610 1.750000 0.554328 -v -0.229610 2.000000 0.554328 -v -0.424264 1.750000 0.424264 -v -0.424264 2.000000 0.424264 -v -0.554328 1.750000 0.229610 -v -0.554328 2.000000 0.229610 -v -0.600000 1.750000 -0.000000 -v -0.600000 2.000000 -0.000000 -v -0.554328 1.750000 -0.229610 -v -0.554328 2.000000 -0.229610 -v -0.424264 1.750000 -0.424264 -v -0.424264 2.000000 -0.424264 -v -0.229610 1.750000 -0.554328 -v -0.229610 2.000000 -0.554328 -v 0.750000 3.000000 0.750000 -v 0.750000 3.000000 -0.750000 -vt 0.259127 0.259128 -vt 0.544865 0.259127 -vt 0.544865 0.544865 -vt 0.695462 0.306750 -vt 0.743085 0.306750 -vt 0.743085 0.497242 -vt 0.306750 0.108530 -vt 0.497242 0.108530 -vt 0.108530 0.497242 -vt 0.108530 0.306751 -vt 0.497242 0.695462 -vt 0.306751 0.695462 -vt 0.259127 0.544865 -vt 0.695462 0.497242 -vt 0.043049 0.876806 -vt 0.013285 0.876806 -vt 0.013285 0.847042 -vt 0.328787 0.876806 -vt 0.328787 0.906570 -vt 0.043049 0.906570 -vt 0.328787 0.847042 -vt 0.358551 0.847042 -vt 0.358551 0.876806 -vt 0.043049 0.847042 -vt 0.043049 0.817277 -vt 0.328787 0.817277 -vt 0.328787 0.936335 -vt 0.414884 0.876806 -vt 0.385120 0.876806 -vt 0.385120 0.847042 -vt 0.700622 0.876806 -vt 0.700622 0.906570 -vt 0.414884 0.906570 -vt 0.700622 0.847042 -vt 0.730386 0.847042 -vt 0.730386 0.876806 -vt 0.414884 0.847042 -vt 0.414884 0.817277 -vt 0.700622 0.817277 -vt 0.700622 0.936335 -vt 0.060908 0.497242 -vt 0.037096 0.473431 -vt 0.037096 0.330562 -vt 0.060907 0.306751 -vt 0.306750 0.060908 -vt 0.497242 0.060907 -vt 0.497242 0.743085 -vt 0.306751 0.743085 -vt 0.330562 0.037096 -vt 0.330562 0.013285 -vt 0.473431 0.013285 -vt 0.473431 0.037096 -vt 0.473431 0.766897 -vt 0.330562 0.766897 -vt 0.766897 0.330562 -vt 0.766897 0.473431 -vt 0.960146 0.013285 -vt 0.960146 0.156153 -vt 0.817277 0.156153 -vt 0.473431 0.790708 -vt 0.330562 0.790708 -vt 0.790708 0.330562 -vt 0.790708 0.473431 -vt 0.013285 0.473431 -vt 0.013285 0.330562 -vt 0.370051 0.986715 -vt 0.347753 0.986715 -vt 0.347753 0.962904 -vt 0.325455 0.986715 -vt 0.325455 0.962904 -vt 0.303157 0.986715 -vt 0.303157 0.962904 -vt 0.280859 0.986715 -vt 0.280859 0.962904 -vt 0.258561 0.986715 -vt 0.258561 0.962904 -vt 0.236263 0.986715 -vt 0.236263 0.962904 -vt 0.213965 0.986715 -vt 0.213965 0.962904 -vt 0.191668 0.986715 -vt 0.191668 0.962904 -vt 0.169370 0.986715 -vt 0.169370 0.962904 -vt 0.147072 0.986715 -vt 0.147072 0.962904 -vt 0.817277 0.448983 -vt 0.849026 0.460208 -vt 0.817277 0.550007 -vt 0.124774 0.986715 -vt 0.124774 0.962904 -vt 0.817277 0.698391 -vt 0.850952 0.698391 -vt 0.817277 0.793637 -vt 0.102476 0.986715 -vt 0.102476 0.962904 -vt 0.817277 0.576576 -vt 0.850952 0.576576 -vt 0.817277 0.671822 -vt 0.080178 0.986715 -vt 0.080178 0.962904 -vt 0.817277 0.321391 -vt 0.849026 0.332615 -vt 0.817277 0.422414 -vt 0.057880 0.986715 -vt 0.057880 0.962904 -vt 0.817277 0.227623 -vt 0.884476 0.182722 -vt 0.929376 0.249921 -vt 0.035582 0.986715 -vt 0.013285 0.986715 -vt 0.013285 0.962904 -vt 0.035582 0.962904 -vt 0.043049 0.936335 -vt 0.414884 0.936335 -vt 0.817277 0.013285 -vt 0.370050 0.962904 -vt 0.920843 0.270521 -vt 0.862178 0.294821 -vt 0.905076 0.286288 -vt 0.884476 0.294821 -vt 0.841577 0.286288 -vt 0.825810 0.270521 -vt 0.817277 0.249921 -vt 0.825810 0.207022 -vt 0.841577 0.191256 -vt 0.862178 0.182722 -vt 0.905076 0.191256 -vt 0.920843 0.207023 -vt 0.929376 0.227623 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.316200 -0.948700 -vn -0.948700 0.316200 0.000000 -vn 0.000000 0.316200 0.948700 -vn 0.948700 0.316200 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 1.000000 0.000000 -vn 0.195100 0.000000 -0.980800 -vn 0.555600 0.000000 -0.831500 -vn 0.831500 0.000000 -0.555600 -vn 0.980800 0.000000 -0.195100 -vn 0.980800 0.000000 0.195100 -vn 0.831500 0.000000 0.555600 -vn 0.555600 0.000000 0.831500 -vn 0.195100 0.000000 0.980800 -vn -0.195100 0.000000 0.980800 -vn -0.555600 0.000000 0.831500 -vn 0.707100 0.000000 -0.707100 -vn -0.831500 0.000000 0.555600 -vn 0.707100 0.000000 0.707100 -vn -0.980800 0.000000 0.195100 -vn -0.980800 0.000000 -0.195100 -vn -0.831500 0.000000 -0.555600 -vn -0.195100 0.000000 -0.980800 -vn -0.555600 0.000000 -0.831500 -s off -f 3/1/1 4/2/1 2/3/1 -f 8/4/2 28/5/2 27/6/2 -f 7/7/3 8/8/3 4/2/3 -f 5/9/4 7/10/4 3/1/4 -f 6/11/5 5/12/5 1/13/5 -f 8/4/6 6/14/6 2/3/6 -f 12/15/7 11/16/7 9/17/7 -f 16/18/8 15/19/8 11/20/8 -f 14/21/2 13/22/2 15/23/2 -f 10/24/9 9/25/9 13/26/9 -f 11/20/1 15/19/1 13/27/1 -f 16/18/10 12/15/10 10/24/10 -f 20/28/9 19/29/9 17/30/9 -f 24/31/7 23/32/7 19/33/7 -f 22/34/8 21/35/8 23/36/8 -f 18/37/2 17/38/2 21/39/2 -f 19/33/1 23/32/1 21/40/1 -f 24/31/10 20/28/10 18/37/10 -f 26/41/10 30/42/10 29/43/10 -f 5/9/7 26/41/7 25/44/7 -f 7/7/8 25/45/8 28/46/8 -f 6/11/9 27/47/9 26/48/9 -f 29/49/9 33/50/9 36/51/9 -f 25/45/10 29/49/10 32/52/10 -f 27/47/10 31/53/10 30/54/10 -f 28/5/10 32/55/10 31/56/10 -f 35/57/10 36/58/10 33/59/10 -f 31/53/8 35/60/8 34/61/8 -f 32/55/7 36/62/7 35/63/7 -f 30/42/2 34/64/2 33/65/2 -f 40/66/11 42/67/11 41/68/11 -f 42/67/12 44/69/12 43/70/12 -f 44/69/13 46/71/13 45/72/13 -f 46/71/14 48/73/14 47/74/14 -f 48/73/15 50/75/15 49/76/15 -f 50/75/16 52/77/16 51/78/16 -f 52/77/17 54/79/17 53/80/17 -f 54/79/18 56/81/18 55/82/18 -f 56/81/19 58/83/19 57/84/19 -f 58/83/20 60/85/20 59/86/20 -f 27/87/21 31/88/21 71/89/21 -f 60/85/22 62/90/22 61/91/22 -f 32/92/23 28/93/23 72/94/23 -f 62/90/24 64/95/24 63/96/24 -f 29/97/21 25/98/21 38/99/21 -f 64/95/25 66/100/25 65/101/25 -f 26/102/23 30/103/23 37/104/23 -f 66/100/26 68/105/26 67/106/26 -f 60/107/10 52/108/10 44/109/10 -f 70/110/27 40/111/27 39/112/27 -f 68/105/28 70/110/28 69/113/28 -f 1/13/1 3/1/1 2/3/1 -f 6/14/2 8/4/2 27/6/2 -f 3/1/3 7/7/3 4/2/3 -f 1/13/4 5/9/4 3/1/4 -f 2/3/5 6/11/5 1/13/5 -f 4/2/6 8/4/6 2/3/6 -f 10/24/7 12/15/7 9/17/7 -f 12/15/8 16/18/8 11/20/8 -f 16/18/2 14/21/2 15/23/2 -f 14/21/9 10/24/9 13/26/9 -f 9/114/1 11/20/1 13/27/1 -f 14/21/10 16/18/10 10/24/10 -f 18/37/9 20/28/9 17/30/9 -f 20/28/7 24/31/7 19/33/7 -f 24/31/8 22/34/8 23/36/8 -f 22/34/2 18/37/2 21/39/2 -f 17/115/1 19/33/1 21/40/1 -f 22/34/10 24/31/10 18/37/10 -f 25/44/10 26/41/10 29/43/10 -f 7/10/7 5/9/7 25/44/7 -f 8/8/8 7/7/8 28/46/8 -f 5/12/9 6/11/9 26/48/9 -f 32/52/9 29/49/9 36/51/9 -f 28/46/10 25/45/10 32/52/10 -f 26/48/10 27/47/10 30/54/10 -f 27/6/10 28/5/10 31/56/10 -f 34/116/10 35/57/10 33/59/10 -f 30/54/8 31/53/8 34/61/8 -f 31/56/7 32/55/7 35/63/7 -f 29/43/2 30/42/2 33/65/2 -f 39/117/11 40/66/11 41/68/11 -f 41/68/12 42/67/12 43/70/12 -f 43/70/13 44/69/13 45/72/13 -f 45/72/14 46/71/14 47/74/14 -f 47/74/15 48/73/15 49/76/15 -f 49/76/16 50/75/16 51/78/16 -f 51/78/17 52/77/17 53/80/17 -f 53/80/18 54/79/18 55/82/18 -f 55/82/19 56/81/19 57/84/19 -f 57/84/20 58/83/20 59/86/20 -f 59/86/22 60/85/22 61/91/22 -f 61/91/24 62/90/24 63/96/24 -f 63/96/25 64/95/25 65/101/25 -f 65/101/26 66/100/26 67/106/26 -f 44/109/10 42/118/10 68/119/10 -f 40/120/10 70/121/10 68/119/10 -f 68/119/10 66/122/10 64/123/10 -f 64/123/10 62/124/10 60/107/10 -f 60/107/10 58/125/10 52/108/10 -f 56/126/10 54/127/10 52/108/10 -f 52/108/10 50/128/10 48/129/10 -f 48/129/10 46/130/10 44/109/10 -f 42/118/10 40/120/10 68/119/10 -f 68/119/10 64/123/10 44/109/10 -f 58/125/10 56/126/10 52/108/10 -f 52/108/10 48/129/10 44/109/10 -f 44/109/10 64/123/10 60/107/10 -f 69/113/27 70/110/27 39/112/27 -f 67/106/28 68/105/28 69/113/28 diff --git a/src/main/resources/assets/hbm/models/ams_emitter.obj b/src/main/resources/assets/hbm/models/ams_emitter.obj deleted file mode 100644 index 0d4aa9ea5..000000000 --- a/src/main/resources/assets/hbm/models/ams_emitter.obj +++ /dev/null @@ -1,1490 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_emitter.blend' -# www.blender.org -o Circle -v 0.000000 5.750000 -2.500000 -v -0.956709 5.750000 -2.309699 -v -1.767767 5.750000 -1.767767 -v -2.309699 5.750000 -0.956709 -v -2.500000 5.750000 0.000000 -v -2.309699 5.750000 0.956709 -v -1.767767 5.750000 1.767767 -v -0.956709 5.750000 2.309699 -v -0.000000 5.750000 2.500000 -v 0.956708 5.750000 2.309699 -v 1.767766 5.750000 1.767768 -v 2.309699 5.750000 0.956709 -v 2.500000 5.750000 -0.000000 -v 2.309699 5.750000 -0.956709 -v 1.767766 5.750000 -1.767768 -v 0.956707 5.750000 -2.309699 -v -0.956709 4.500000 -2.309699 -v 0.000000 4.500000 -2.500000 -v -1.767767 4.500000 -1.767767 -v -2.309699 4.500000 -0.956709 -v -2.500000 4.500000 0.000000 -v -2.309699 4.500000 0.956709 -v -1.767767 4.500000 1.767767 -v -0.956709 4.500000 2.309699 -v -0.000000 4.500000 2.500000 -v 0.956708 4.500000 2.309699 -v 1.767766 4.500000 1.767768 -v 2.309699 4.500000 0.956709 -v 2.500000 4.500000 -0.000000 -v 2.309699 4.500000 -0.956709 -v 1.767766 4.500000 -1.767768 -v 0.956707 4.500000 -2.309699 -v -0.765367 3.500000 -1.847759 -v -0.000000 3.500000 -2.000000 -v -1.414214 3.500000 -1.414213 -v -1.847759 3.500000 -0.765367 -v -2.000000 3.500000 0.000000 -v -1.847759 3.500000 0.765367 -v -1.414214 3.500000 1.414214 -v -0.765367 3.500000 1.847759 -v -0.000000 3.500000 2.000000 -v 0.765366 3.500000 1.847759 -v 1.414213 3.500000 1.414214 -v 1.847759 3.500000 0.765367 -v 2.000000 3.500000 -0.000000 -v 1.847759 3.500000 -0.765367 -v 1.414213 3.500000 -1.414214 -v 0.765366 3.500000 -1.847759 -v -0.765367 1.500000 -1.847759 -v -0.000000 1.500000 -2.000000 -v -1.414214 1.500000 -1.414213 -v -1.847759 1.500000 -0.765367 -v -2.000000 1.500000 0.000000 -v -1.847759 1.500000 0.765367 -v -1.414214 1.500000 1.414214 -v -0.765367 1.500000 1.847759 -v -0.000000 1.500000 2.000000 -v 0.765366 1.500000 1.847759 -v 1.414213 1.500000 1.414214 -v 1.847759 1.500000 0.765367 -v 2.000000 1.500000 -0.000000 -v 1.847759 1.500000 -0.765367 -v 1.414213 1.500000 -1.414214 -v 0.765366 1.500000 -1.847759 -v -0.153073 0.500000 -0.369552 -v 0.000000 0.500000 -0.400000 -v -0.282843 0.500000 -0.282843 -v -0.369552 0.500000 -0.153073 -v -0.400000 0.500000 0.000000 -v -0.369552 0.500000 0.153073 -v -0.282843 0.500000 0.282843 -v -0.153073 0.500000 0.369552 -v -0.000000 0.500000 0.400000 -v 0.153073 0.500000 0.369552 -v 0.282843 0.500000 0.282843 -v 0.369552 0.500000 0.153073 -v 0.400000 0.500000 -0.000000 -v 0.369552 0.500000 -0.153073 -v 0.282843 0.500000 -0.282843 -v 0.153073 0.500000 -0.369552 -v -0.390181 2.000000 -1.961571 -v -1.961570 2.000000 -0.390181 -v -1.961571 2.000000 0.390181 -v -0.390181 2.000000 1.961571 -v 0.390180 2.000000 1.961571 -v 1.961571 2.000000 0.390181 -v 1.961571 2.000000 -0.390181 -v 0.390180 2.000000 -1.961571 -v -0.078036 1.000000 -0.392314 -v -0.392314 1.000000 -0.078036 -v -0.392314 1.000000 0.078036 -v -0.078036 1.000000 0.392314 -v 0.078036 1.000000 0.392314 -v 0.392314 1.000000 0.078036 -v 0.392314 1.000000 -0.078036 -v 0.078036 1.000000 -0.392314 -v -1.961571 1.000000 0.390181 -v -1.961570 1.000000 -0.390181 -v 0.390180 1.000000 1.961571 -v -0.390181 1.000000 1.961571 -v 1.961571 1.000000 -0.390181 -v 1.961571 1.000000 0.390181 -v -0.390181 1.000000 -1.961571 -v 0.390180 1.000000 -1.961571 -v -0.392314 0.000000 0.078036 -v -0.392314 0.000000 -0.078036 -v 0.078036 0.000000 0.392314 -v -0.078036 0.000000 0.392314 -v 0.392314 0.000000 -0.078036 -v 0.392314 0.000000 0.078036 -v -0.078036 0.000000 -0.392314 -v 0.078036 0.000000 -0.392314 -v -2.078674 2.000000 1.388925 -v -1.388925 2.000000 2.078674 -v -0.000000 1.500000 -2.250000 -v -0.000000 2.250000 -2.250000 -v 0.861038 1.500000 -2.078729 -v 0.861038 2.250000 -2.078729 -v 1.590990 1.500000 -1.590990 -v 1.590990 2.250000 -1.590990 -v 2.078729 1.500000 -0.861038 -v 2.078729 2.250000 -0.861038 -v 2.250000 1.500000 0.000000 -v 2.250000 2.250000 0.000000 -v 2.078729 1.500000 0.861038 -v 2.078729 2.250000 0.861038 -v 1.590990 1.500000 1.590990 -v 1.590990 2.250000 1.590990 -v 0.861038 1.500000 2.078729 -v 0.861038 2.250000 2.078729 -v 0.000000 1.500000 2.250000 -v 0.000000 2.250000 2.250000 -v -0.861037 1.500000 2.078729 -v -0.861037 2.250000 2.078729 -v -1.590990 1.500000 1.590991 -v -1.590990 2.250000 1.590991 -v -2.078729 1.500000 0.861038 -v -2.078729 2.250000 0.861038 -v -2.250000 1.500000 -0.000000 -v -2.250000 2.250000 -0.000000 -v -2.078729 1.500000 -0.861038 -v -2.078729 2.250000 -0.861038 -v -1.590990 1.500000 -1.590991 -v -1.590990 2.250000 -1.590991 -v -0.861037 1.500000 -2.078729 -v -0.861037 2.250000 -2.078729 -v 2.078674 2.000000 1.388926 -v 1.388926 2.000000 2.078674 -v 1.388925 2.000000 -2.078675 -v 2.078674 2.000000 -1.388926 -v -2.078675 2.000000 -1.388925 -v -1.388927 2.000000 -2.078673 -v -1.654410 3.500000 0.964661 -v -0.964661 3.500000 1.654410 -v 1.654410 3.500000 0.964662 -v 0.964662 3.500000 1.654410 -v 0.964661 3.500000 -1.654411 -v 1.654410 3.500000 -0.964662 -v -1.654411 3.500000 -0.964661 -v -0.964663 3.500000 -1.654409 -v -1.662939 0.500000 1.111140 -v -1.111140 0.500000 1.662939 -v 1.662939 0.500000 1.111141 -v 1.111140 0.500000 1.662939 -v 1.111140 0.500000 -1.662940 -v 1.662939 0.500000 -1.111141 -v -1.662940 0.500000 -1.111140 -v -1.111142 0.500000 -1.662938 -v -0.076537 0.500000 -0.184776 -v 0.000000 0.500000 -0.200000 -v -0.141421 0.500000 -0.141421 -v -0.184776 0.500000 -0.076537 -v -0.200000 0.500000 0.000000 -v -0.184776 0.500000 0.076537 -v -0.141421 0.500000 0.141421 -v -0.076537 0.500000 0.184776 -v -0.000000 0.500000 0.200000 -v 0.076537 0.500000 0.184776 -v 0.141421 0.500000 0.141421 -v 0.184776 0.500000 0.076537 -v 0.200000 0.500000 0.000000 -v 0.184776 0.500000 -0.076537 -v 0.141421 0.500000 -0.141421 -v 0.076537 0.500000 -0.184776 -v -0.076536 0.000000 -0.184776 -v 0.000000 0.000000 -0.200000 -v -0.141421 0.000000 -0.141421 -v -0.184776 0.000000 -0.076537 -v -0.200000 0.000000 0.000000 -v -0.184776 0.000000 0.076537 -v -0.141421 0.000000 0.141421 -v -0.076536 0.000000 0.184776 -v 0.000000 0.000000 0.200000 -v 0.076537 0.000000 0.184776 -v 0.141422 0.000000 0.141421 -v 0.184776 0.000000 0.076537 -v 0.200000 0.000000 0.000000 -v 0.184776 0.000000 -0.076537 -v 0.141422 0.000000 -0.141421 -v 0.076537 0.000000 -0.184776 -v -0.861038 5.750000 -2.078729 -v -0.000000 5.750000 -2.250000 -v -1.590990 5.750000 -1.590990 -v -2.078729 5.750000 -0.861038 -v -2.250000 5.750000 0.000000 -v -2.078729 5.750000 0.861038 -v -1.590990 5.750000 1.590990 -v -0.861038 5.750000 2.078729 -v -0.000000 5.750000 2.250000 -v 0.861037 5.750000 2.078729 -v 1.590990 5.750000 1.590991 -v 2.078729 5.750000 0.861038 -v 2.250000 5.750000 -0.000000 -v 2.078728 5.750000 -0.861038 -v 1.590990 5.750000 -1.590991 -v 0.861037 5.750000 -2.078729 -v -0.861038 6.000000 -2.078729 -v -0.000000 6.000000 -2.250000 -v -1.590990 6.000000 -1.590990 -v -2.078729 6.000000 -0.861038 -v -2.250000 6.000000 0.000000 -v -2.078729 6.000000 0.861038 -v -1.590990 6.000000 1.590990 -v -0.861038 6.000000 2.078729 -v -0.000000 6.000000 2.250000 -v 0.861037 6.000000 2.078729 -v 1.590990 6.000000 1.590991 -v 2.078729 6.000000 0.861038 -v 2.250000 6.000000 -0.000000 -v 2.078728 6.000000 -0.861038 -v 1.590990 6.000000 -1.590991 -v 0.861037 6.000000 -2.078729 -v -0.000000 6.000000 -1.750000 -v -0.669696 6.000000 -1.616789 -v -1.237437 6.000000 -1.237437 -v -1.616789 6.000000 -0.669696 -v -1.750000 6.000000 0.000000 -v -1.616789 6.000000 0.669696 -v -1.237437 6.000000 1.237437 -v -0.669696 6.000000 1.616789 -v -0.000000 6.000000 1.750000 -v 0.669696 6.000000 1.616789 -v 1.237437 6.000000 1.237437 -v 1.616789 6.000000 0.669696 -v 1.750000 6.000000 -0.000000 -v 1.616789 6.000000 -0.669696 -v 1.237437 6.000000 -1.237437 -v 0.669695 6.000000 -1.616789 -v -0.669696 5.750000 -1.616789 -v -0.000000 5.750000 -1.750000 -v -1.237437 5.750000 -1.237437 -v -1.616789 5.750000 -0.669696 -v -1.750000 5.750000 0.000000 -v -1.616789 5.750000 0.669696 -v -1.237437 5.750000 1.237437 -v -0.669696 5.750000 1.616789 -v -0.000000 5.750000 1.750000 -v 0.669696 5.750000 1.616789 -v 1.237437 5.750000 1.237437 -v 1.616789 5.750000 0.669696 -v 1.750000 5.750000 -0.000000 -v 1.616789 5.750000 -0.669696 -v 1.237437 5.750000 -1.237437 -v 0.669695 5.750000 -1.616789 -v -0.156250 5.750000 0.156250 -v -0.156250 6.000000 0.156250 -v -0.156250 5.750000 -0.156250 -v -0.156250 6.000000 -0.156250 -v 0.156250 5.750000 0.156250 -v 0.156250 6.000000 0.156250 -v 0.156250 5.750000 -0.156250 -v 0.156250 6.000000 -0.156250 -v -0.156250 5.750000 -0.843750 -v -0.156250 6.000000 -0.843750 -v -0.156250 5.750000 -1.156250 -v -0.156250 6.000000 -1.156250 -v 0.156250 5.750000 -0.843750 -v 0.156250 6.000000 -0.843750 -v 0.156250 5.750000 -1.156250 -v 0.156250 6.000000 -1.156250 -v -0.156250 5.750000 1.156250 -v -0.156250 6.000000 1.156250 -v -0.156250 5.750000 0.843750 -v -0.156250 6.000000 0.843750 -v 0.156250 5.750000 1.156250 -v 0.156250 6.000000 1.156250 -v 0.156250 5.750000 0.843750 -v 0.156250 6.000000 0.843750 -v 0.843750 5.750000 0.156250 -v 0.843750 6.000000 0.156250 -v 0.843750 5.750000 -0.156250 -v 0.843750 6.000000 -0.156250 -v 1.156250 5.750000 0.156250 -v 1.156250 6.000000 0.156250 -v 1.156250 5.750000 -0.156250 -v 1.156250 6.000000 -0.156250 -v -1.156250 5.750000 0.156250 -v -1.156250 6.000000 0.156250 -v -1.156250 5.750000 -0.156250 -v -1.156250 6.000000 -0.156250 -v -0.843750 5.750000 0.156250 -v -0.843750 6.000000 0.156250 -v -0.843750 5.750000 -0.156250 -v -0.843750 6.000000 -0.156250 -vt 0.575431 0.309735 -vt 0.573431 0.319789 -vt 0.537435 0.319789 -vt 0.495439 0.258482 -vt 0.455444 0.258482 -vt 0.459443 0.212815 -vt 0.495439 0.309735 -vt 0.535435 0.258482 -vt 0.215469 0.309735 -vt 0.215469 0.258482 -vt 0.255465 0.258482 -vt 0.535435 0.309735 -vt 0.575431 0.258482 -vt 0.255465 0.309735 -vt 0.295461 0.258482 -vt 0.615427 0.258482 -vt 0.295461 0.309735 -vt 0.335456 0.258482 -vt 0.015490 0.309735 -vt 0.015490 0.258482 -vt 0.055486 0.258482 -vt 0.615427 0.309735 -vt 0.655423 0.258482 -vt 0.335456 0.309735 -vt 0.375452 0.258482 -vt 0.055486 0.309735 -vt 0.095482 0.258482 -vt 0.375452 0.309735 -vt 0.415448 0.258482 -vt 0.095482 0.309735 -vt 0.135477 0.258482 -vt 0.415448 0.309735 -vt 0.135477 0.309735 -vt 0.175473 0.258482 -vt 0.455444 0.309735 -vt 0.175473 0.309735 -vt 0.047487 0.181835 -vt 0.047487 0.099830 -vt 0.079483 0.099830 -vt 0.179473 0.212815 -vt 0.499439 0.212815 -vt 0.219469 0.212815 -vt 0.251465 0.212815 -vt 0.539435 0.212815 -vt 0.571431 0.212815 -vt 0.259464 0.212815 -vt 0.291461 0.212815 -vt 0.579431 0.212815 -vt 0.611427 0.212815 -vt 0.299460 0.212815 -vt 0.331457 0.212815 -vt 0.019490 0.212815 -vt 0.051486 0.212815 -vt 0.619426 0.212815 -vt 0.339456 0.212815 -vt 0.371453 0.212815 -vt 0.059485 0.212815 -vt 0.091482 0.212815 -vt 0.379452 0.212815 -vt 0.411448 0.212815 -vt 0.099481 0.212815 -vt 0.131478 0.212815 -vt 0.419448 0.212815 -vt 0.451444 0.212815 -vt 0.139477 0.212815 -vt 0.171474 0.212815 -vt 0.207470 0.099830 -vt 0.220269 0.023533 -vt 0.226668 0.023533 -vt 0.303460 0.181835 -vt 0.303460 0.099830 -vt 0.335456 0.099830 -vt 0.079483 0.181835 -vt 0.111480 0.099830 -vt 0.335456 0.181835 -vt 0.367453 0.099830 -vt 0.111480 0.181835 -vt 0.143477 0.099830 -vt 0.367453 0.181835 -vt 0.399450 0.099830 -vt 0.143477 0.181835 -vt 0.175473 0.099830 -vt 0.431446 0.181835 -vt 0.399450 0.181835 -vt 0.175473 0.181835 -vt 0.431446 0.099830 -vt 0.463443 0.099830 -vt 0.207470 0.181835 -vt 0.239466 0.099830 -vt 0.463443 0.181835 -vt 0.495440 0.099830 -vt 0.239466 0.181835 -vt 0.271463 0.099830 -vt 0.015490 0.181835 -vt 0.015490 0.099830 -vt 0.495440 0.181835 -vt 0.527436 0.099830 -vt 0.271463 0.181835 -vt 0.284262 0.023533 -vt 0.285862 0.015490 -vt 0.289061 0.015490 -vt 0.476242 0.023533 -vt 0.252265 0.023533 -vt 0.258664 0.023533 -vt 0.028289 0.023533 -vt 0.034688 0.023533 -vt 0.508238 0.023533 -vt 0.514638 0.023533 -vt 0.060285 0.023533 -vt 0.066685 0.023533 -vt 0.316258 0.023533 -vt 0.092282 0.023533 -vt 0.098681 0.023533 -vt 0.348255 0.023533 -vt 0.124278 0.023533 -vt 0.130678 0.023533 -vt 0.380252 0.023533 -vt 0.386651 0.023533 -vt 0.156275 0.023533 -vt 0.162675 0.023533 -vt 0.412248 0.023533 -vt 0.188272 0.023533 -vt 0.194671 0.023533 -vt 0.444245 0.023533 -vt 0.450644 0.023533 -vt 0.867211 0.388654 -vt 0.943508 0.401453 -vt 0.943508 0.407852 -vt 0.878671 0.183050 -vt 0.891469 0.106753 -vt 0.897869 0.106753 -vt 0.053376 0.889796 -vt 0.066175 0.813499 -vt 0.072574 0.813499 -vt 0.053376 0.700514 -vt 0.066174 0.624218 -vt 0.072574 0.624218 -vt 0.853583 0.122432 -vt 0.053376 0.741517 -vt 0.085372 0.700514 -vt 0.927828 0.445738 -vt 0.851531 0.458537 -vt 0.867211 0.420651 -vt 0.878671 0.224052 -vt 0.910667 0.183050 -vt 0.935755 0.122432 -vt 0.948553 0.198729 -vt 0.072574 0.772497 -vt 0.028289 0.829178 -vt 0.984510 0.407852 -vt 0.028289 0.639897 -vt 0.066174 0.583215 -vt 0.072574 0.583215 -vt 0.110460 0.829178 -vt 0.123258 0.905475 -vt 0.085373 0.889796 -vt 0.897869 0.065751 -vt 0.053376 0.930798 -vt 0.110460 0.639897 -vt 0.123258 0.716194 -vt 0.927828 0.363567 -vt 0.826209 0.388654 -vt 0.823876 0.878483 -vt 0.787879 0.878483 -vt 0.787879 0.847731 -vt 0.751883 0.878483 -vt 0.751883 0.847731 -vt 0.715887 0.878483 -vt 0.715887 0.847731 -vt 0.679891 0.878483 -vt 0.679891 0.847731 -vt 0.643894 0.878483 -vt 0.643894 0.847731 -vt 0.607898 0.878483 -vt 0.607898 0.847731 -vt 0.571902 0.878483 -vt 0.571902 0.847731 -vt 0.535906 0.878483 -vt 0.535906 0.847731 -vt 0.499910 0.878483 -vt 0.499910 0.847731 -vt 0.463913 0.878483 -vt 0.463913 0.847731 -vt 0.427917 0.878483 -vt 0.427917 0.847731 -vt 0.391921 0.878483 -vt 0.391921 0.847731 -vt 0.355925 0.878483 -vt 0.355925 0.847731 -vt 0.319929 0.878483 -vt 0.319929 0.847731 -vt 0.459881 0.423253 -vt 0.568362 0.350769 -vt 0.640846 0.459249 -vt 0.283932 0.878483 -vt 0.247936 0.878483 -vt 0.247936 0.847731 -vt 0.283932 0.847731 -vt 0.415126 0.492505 -vt 0.287165 0.517959 -vt 0.389673 0.364544 -vt 0.713530 0.415475 -vt 0.753525 0.415475 -vt 0.753525 0.481717 -vt 0.861157 0.677489 -vt 0.861157 0.717485 -vt 0.794915 0.717485 -vt 0.728106 0.196700 -vt 0.728106 0.130458 -vt 0.768102 0.130458 -vt 0.289639 0.627421 -vt 0.329635 0.627421 -vt 0.329635 0.693662 -vt 0.925864 0.681488 -vt 0.925864 0.713485 -vt 0.732105 0.065751 -vt 0.764102 0.065751 -vt 0.293639 0.562714 -vt 0.325636 0.562714 -vt 0.717529 0.350769 -vt 0.749526 0.350769 -vt 0.749526 0.604806 -vt 0.717529 0.604806 -vt 0.671826 0.713485 -vt 0.671826 0.681488 -vt 0.768102 0.196700 -vt 0.764102 0.319789 -vt 0.325636 0.816751 -vt 0.293639 0.816751 -vt 0.910794 0.759188 -vt 0.686403 0.080821 -vt 0.809805 0.080821 -vt 0.289639 0.693662 -vt 0.247936 0.577784 -vt 0.371338 0.577784 -vt 0.713530 0.481717 -vt 0.671826 0.365839 -vt 0.795229 0.365839 -vt 0.794915 0.677489 -vt 0.910794 0.635786 -vt 0.596447 0.665448 -vt 0.596447 0.644947 -vt 0.599646 0.644947 -vt 0.061885 0.015490 -vt 0.065085 0.015490 -vt 0.317858 0.015490 -vt 0.321058 0.015490 -vt 0.093882 0.015490 -vt 0.097081 0.015490 -vt 0.349855 0.015490 -vt 0.353054 0.015490 -vt 0.125878 0.015490 -vt 0.129078 0.015490 -vt 0.381851 0.015490 -vt 0.385051 0.015490 -vt 0.157875 0.015490 -vt 0.161075 0.015490 -vt 0.418648 0.023533 -vt 0.413848 0.015490 -vt 0.189872 0.015490 -vt 0.193071 0.015490 -vt 0.445845 0.015490 -vt 0.221868 0.015490 -vt 0.482641 0.023533 -vt 0.477841 0.015490 -vt 0.253865 0.015490 -vt 0.257065 0.015490 -vt 0.029888 0.015490 -vt 0.509838 0.015490 -vt 0.513038 0.015490 -vt 0.622103 0.113809 -vt 0.613684 0.101210 -vt 0.618903 0.097723 -vt 0.574049 0.665448 -vt 0.574049 0.644947 -vt 0.577249 0.644947 -vt 0.622044 0.665448 -vt 0.622044 0.644947 -vt 0.625244 0.644947 -vt 0.599646 0.665448 -vt 0.602846 0.644947 -vt 0.577249 0.665448 -vt 0.580448 0.644947 -vt 0.602846 0.665448 -vt 0.606045 0.644947 -vt 0.580448 0.665448 -vt 0.583648 0.644947 -vt 0.609245 0.665448 -vt 0.606045 0.665448 -vt 0.583648 0.665448 -vt 0.586848 0.644947 -vt 0.609245 0.644947 -vt 0.612445 0.644947 -vt 0.590047 0.665448 -vt 0.586848 0.665448 -vt 0.612445 0.665448 -vt 0.615645 0.644947 -vt 0.590047 0.644947 -vt 0.593247 0.644947 -vt 0.615645 0.665448 -vt 0.618844 0.644947 -vt 0.593247 0.665448 -vt 0.618844 0.665448 -vt 0.216956 0.469500 -vt 0.206706 0.469500 -vt 0.206706 0.433504 -vt 0.293461 0.319789 -vt 0.613427 0.319789 -vt 0.333457 0.319789 -vt 0.297460 0.319789 -vt 0.053486 0.319788 -vt 0.655423 0.309735 -vt 0.653423 0.319788 -vt 0.617427 0.319789 -vt 0.373452 0.319789 -vt 0.093482 0.319789 -vt 0.057486 0.319788 -vt 0.413448 0.319789 -vt 0.377452 0.319789 -vt 0.133478 0.319789 -vt 0.097481 0.319789 -vt 0.453444 0.319789 -vt 0.417448 0.319789 -vt 0.173473 0.319789 -vt 0.493440 0.319789 -vt 0.457444 0.319789 -vt 0.213469 0.319789 -vt 0.177473 0.319789 -vt 0.533436 0.319789 -vt 0.497439 0.319789 -vt 0.253465 0.319789 -vt 0.217469 0.319789 -vt 0.030045 0.396325 -vt 0.039516 0.400247 -vt 0.025741 0.433504 -vt 0.202401 0.506679 -vt 0.192931 0.502756 -vt 0.057721 0.367546 -vt 0.064969 0.374794 -vt 0.138144 0.551455 -vt 0.134221 0.541984 -vt 0.167477 0.528209 -vt 0.174726 0.535457 -vt 0.094302 0.351549 -vt 0.098225 0.361019 -vt 0.098225 0.552235 -vt 0.098225 0.541984 -vt 0.134221 0.350769 -vt 0.134221 0.361019 -vt 0.061046 0.537679 -vt 0.064969 0.528209 -vt 0.171400 0.365324 -vt 0.167477 0.374794 -vt 0.032267 0.510004 -vt 0.039516 0.502756 -vt 0.200179 0.392999 -vt 0.192931 0.400247 -vt 0.016270 0.473423 -vt 0.025741 0.469500 -vt 0.216176 0.429581 -vt 0.015490 0.433504 -vt 0.175884 0.491366 -vt 0.156088 0.511163 -vt 0.130222 0.521877 -vt 0.102225 0.521877 -vt 0.076359 0.511163 -vt 0.056562 0.491366 -vt 0.045848 0.465500 -vt 0.045848 0.437503 -vt 0.056562 0.411637 -vt 0.076359 0.391840 -vt 0.102225 0.381126 -vt 0.130222 0.381126 -vt 0.156088 0.391840 -vt 0.175885 0.411637 -vt 0.186598 0.437503 -vt 0.186598 0.465500 -vt 0.654291 0.806500 -vt 0.654291 0.816751 -vt 0.626294 0.816751 -vt 0.432829 0.573428 -vt 0.543069 0.647088 -vt 0.512558 0.692750 -vt 0.458312 0.806500 -vt 0.458312 0.816751 -vt 0.430315 0.816751 -vt 0.682288 0.806500 -vt 0.682288 0.816751 -vt 0.486309 0.806500 -vt 0.486309 0.816751 -vt 0.710286 0.806500 -vt 0.710286 0.816751 -vt 0.514306 0.806500 -vt 0.514306 0.816751 -vt 0.738283 0.806500 -vt 0.738283 0.816751 -vt 0.542303 0.806500 -vt 0.542303 0.816751 -vt 0.766280 0.806500 -vt 0.766280 0.816751 -vt 0.570300 0.806500 -vt 0.570300 0.816751 -vt 0.794277 0.806500 -vt 0.794277 0.816751 -vt 0.598297 0.806500 -vt 0.598297 0.816751 -vt 0.822274 0.806500 -vt 0.822274 0.816751 -vt 0.626294 0.806500 -vt 0.430315 0.806500 -vt 0.402318 0.816751 -vt 0.850271 0.806500 -vt 0.850271 0.816751 -vt 0.622711 0.041116 -vt 0.612460 0.041116 -vt 0.612460 0.028303 -vt 0.622711 0.053930 -vt 0.612460 0.053930 -vt 0.622711 0.066743 -vt 0.612460 0.066743 -vt 0.622711 0.028303 -vt 0.612460 0.015490 -vt 0.164489 0.608841 -vt 0.154238 0.608841 -vt 0.154238 0.596028 -vt 0.635524 0.041116 -vt 0.164489 0.621655 -vt 0.154238 0.621655 -vt 0.164489 0.634468 -vt 0.154238 0.634468 -vt 0.164489 0.596028 -vt 0.154238 0.583215 -vt 0.177302 0.608841 -vt 0.584299 0.588340 -vt 0.574049 0.588340 -vt 0.574049 0.575527 -vt 0.584299 0.601153 -vt 0.574049 0.601153 -vt 0.584299 0.613967 -vt 0.574049 0.613967 -vt 0.584299 0.575527 -vt 0.574049 0.562714 -vt 0.597113 0.588340 -vt 0.568667 0.123349 -vt 0.558416 0.123349 -vt 0.558416 0.110536 -vt 0.568667 0.136162 -vt 0.558416 0.136162 -vt 0.568667 0.148976 -vt 0.558416 0.148976 -vt 0.568667 0.110536 -vt 0.558416 0.097723 -vt 0.581480 0.123349 -vt 0.568667 0.041116 -vt 0.558416 0.041116 -vt 0.558416 0.028303 -vt 0.568667 0.053930 -vt 0.558416 0.053930 -vt 0.568667 0.066743 -vt 0.558416 0.066743 -vt 0.568667 0.028303 -vt 0.558416 0.015490 -vt 0.581480 0.041116 -vt 0.491440 0.212815 -vt 0.211469 0.212815 -vt 0.531436 0.212815 -vt 0.651423 0.212815 -vt 0.527436 0.181835 -vt 0.290661 0.023533 -vt 0.322658 0.023533 -vt 0.354654 0.023533 -vt 0.840785 0.198729 -vt 0.085372 0.741517 -vt 0.910667 0.224052 -vt 0.066175 0.772497 -vt 0.015490 0.905475 -vt 0.984510 0.401453 -vt 0.015490 0.716194 -vt 0.891470 0.065751 -vt 0.085373 0.930798 -vt 0.851531 0.350769 -vt 0.826209 0.420651 -vt 0.823876 0.847731 -vt 0.627071 0.492505 -vt 0.601618 0.517959 -vt 0.568362 0.531734 -vt 0.532366 0.531734 -vt 0.499110 0.517959 -vt 0.473657 0.492505 -vt 0.459881 0.459249 -vt 0.473657 0.389997 -vt 0.499110 0.364544 -vt 0.532366 0.350769 -vt 0.601618 0.364544 -vt 0.627071 0.389997 -vt 0.640846 0.423253 -vt 0.261711 0.389997 -vt 0.287165 0.364544 -vt 0.320421 0.350769 -vt 0.356417 0.350769 -vt 0.415126 0.389997 -vt 0.428901 0.423253 -vt 0.428901 0.459249 -vt 0.389673 0.517959 -vt 0.356417 0.531734 -vt 0.320421 0.531734 -vt 0.261711 0.492505 -vt 0.247936 0.459249 -vt 0.247936 0.423253 -vt 0.732105 0.319789 -vt 0.417048 0.015490 -vt 0.449044 0.015490 -vt 0.225068 0.015490 -vt 0.481041 0.015490 -vt 0.033088 0.015490 -vt 0.622103 0.097723 -vt 0.625059 0.098947 -vt 0.627321 0.101210 -vt 0.628546 0.104166 -vt 0.628546 0.107366 -vt 0.627321 0.110322 -vt 0.625059 0.112584 -vt 0.618903 0.113809 -vt 0.615947 0.112584 -vt 0.613684 0.110322 -vt 0.612460 0.107366 -vt 0.612460 0.104166 -vt 0.615947 0.098947 -vt 0.625244 0.665448 -vt 0.216956 0.433504 -vt 0.257465 0.319789 -vt 0.577431 0.319789 -vt 0.017490 0.319788 -vt 0.337456 0.319789 -vt 0.137477 0.319789 -vt 0.016270 0.429581 -vt 0.216176 0.473423 -vt 0.032267 0.392999 -vt 0.171400 0.537679 -vt 0.200179 0.510004 -vt 0.061046 0.365324 -vt 0.134221 0.552235 -vt 0.098225 0.350769 -vt 0.094302 0.551455 -vt 0.138144 0.351549 -vt 0.057721 0.535457 -vt 0.174726 0.367546 -vt 0.030045 0.506679 -vt 0.202401 0.396325 -vt 0.015490 0.469500 -vt 0.486692 0.703464 -vt 0.458695 0.703464 -vt 0.432829 0.692750 -vt 0.413032 0.672953 -vt 0.402318 0.647088 -vt 0.402318 0.619091 -vt 0.413032 0.593225 -vt 0.458695 0.562714 -vt 0.486692 0.562714 -vt 0.512558 0.573428 -vt 0.532355 0.593225 -vt 0.543069 0.619090 -vt 0.532355 0.672953 -vt 0.402318 0.806500 -vt 0.622711 0.015490 -vt 0.635524 0.028303 -vt 0.164489 0.583215 -vt 0.177302 0.596028 -vt 0.584299 0.562714 -vt 0.597113 0.575527 -vt 0.568667 0.097723 -vt 0.581480 0.110536 -vt 0.568667 0.015490 -vt 0.581480 0.028303 -vn 0.000000 1.000000 0.000000 -vn 0.880600 -0.440300 0.175200 -vn 0.980800 0.000000 -0.195100 -vn -0.831500 0.000000 0.555600 -vn 0.831500 0.000000 -0.555600 -vn -0.555600 0.000000 0.831500 -vn 0.555600 0.000000 -0.831500 -vn -0.195100 0.000000 0.980800 -vn -0.195100 0.000000 -0.980800 -vn 0.195100 0.000000 -0.980800 -vn 0.195100 0.000000 0.980800 -vn -0.555600 0.000000 -0.831500 -vn 0.555600 0.000000 0.831500 -vn -0.831500 0.000000 -0.555600 -vn 0.831500 0.000000 0.555600 -vn -0.980800 0.000000 -0.195100 -vn 0.980800 0.000000 0.195100 -vn -0.980800 0.000000 0.195100 -vn -0.880600 -0.440300 0.175200 -vn 0.880600 -0.440300 -0.175200 -vn -0.746500 -0.440300 0.498800 -vn 0.746500 -0.440300 -0.498800 -vn -0.498800 -0.440300 0.746500 -vn 0.498800 -0.440300 -0.746500 -vn -0.175200 -0.440300 0.880600 -vn -0.175200 -0.440300 -0.880600 -vn 0.175200 -0.440300 -0.880600 -vn 0.175200 -0.440300 0.880600 -vn -0.498800 -0.440300 -0.746500 -vn 0.498800 -0.440300 0.746500 -vn -0.746500 -0.440300 -0.498800 -vn 0.746500 -0.440300 0.498800 -vn -0.880600 -0.440300 -0.175200 -vn -0.298600 -0.843300 0.446800 -vn 0.000000 -1.000000 0.000000 -vn 0.298600 -0.843300 -0.446800 -vn -0.104800 -0.843300 0.527100 -vn -0.104800 -0.843300 -0.527100 -vn 0.104800 -0.843300 -0.527100 -vn 0.104800 -0.843300 0.527100 -vn -0.298600 -0.843300 -0.446800 -vn 0.298600 -0.843300 0.446800 -vn -0.446800 -0.843300 -0.298600 -vn 0.446800 -0.843300 0.298600 -vn -0.527100 -0.843300 -0.104800 -vn 0.527100 -0.843300 0.104800 -vn -0.527100 -0.843300 0.104800 -vn 0.527100 -0.843300 -0.104800 -vn -0.446800 -0.843300 0.298600 -vn 0.446800 -0.843300 -0.298600 -vn -0.000000 -0.843300 0.537400 -vn 0.000000 -0.843300 -0.537400 -vn -0.537400 -0.843300 0.000000 -vn 0.537400 -0.843300 0.000000 -vn 1.000000 0.000000 0.000000 -vn -0.000000 0.000000 -1.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.656500 0.371400 -0.656500 -vn -0.656500 0.371400 -0.656500 -vn -0.656500 0.371400 0.656500 -vn 0.656500 0.371400 0.656500 -vn -0.672100 -0.310700 -0.672100 -vn -0.672100 -0.310700 0.672100 -vn 0.672100 -0.310700 0.672100 -vn 0.672100 -0.310700 -0.672100 -vn -0.706600 -0.036500 0.706600 -vn 0.706600 -0.036500 0.706600 -vn 0.706600 -0.036500 -0.706600 -vn -0.706600 -0.036500 -0.706600 -vn -0.640900 -0.035600 0.766800 -vn -0.640900 -0.035600 -0.766800 -vn 0.766800 -0.035600 0.640900 -vn -0.766800 -0.035600 0.640900 -vn 0.640900 -0.035600 -0.766800 -vn 0.640900 -0.035600 0.766800 -vn -0.766800 -0.035600 -0.640900 -vn 0.766800 -0.035600 -0.640900 -s off -f 15/1/1 215/2/1 214/3/1 -f 29/4/2 28/5/2 44/6/2 -f 13/7/3 29/4/3 30/8/3 -f 6/9/4 22/10/4 23/11/4 -f 14/12/5 30/8/5 31/13/5 -f 7/14/6 23/11/6 24/15/6 -f 15/1/7 31/13/7 32/16/7 -f 8/17/8 24/15/8 25/18/8 -f 1/19/9 18/20/9 17/21/9 -f 16/22/10 32/16/10 18/23/10 -f 9/24/11 25/18/11 26/25/11 -f 2/26/12 17/21/12 19/27/12 -f 10/28/13 26/25/13 27/29/13 -f 3/30/14 19/27/14 20/31/14 -f 11/32/15 27/29/15 28/5/15 -f 4/33/16 20/31/16 21/34/16 -f 12/35/17 28/5/17 29/4/17 -f 5/36/18 21/34/18 22/10/18 -f 33/37/12 49/38/12 51/39/12 -f 22/10/19 21/34/19 37/40/19 -f 30/8/20 29/4/20 45/41/20 -f 22/10/21 38/42/21 39/43/21 -f 30/8/22 46/44/22 47/45/22 -f 23/11/23 39/46/23 40/47/23 -f 31/13/24 47/48/24 48/49/24 -f 24/15/25 40/50/25 41/51/25 -f 18/20/26 34/52/26 33/53/26 -f 18/23/27 32/16/27 48/54/27 -f 25/18/28 41/55/28 42/56/28 -f 17/21/29 33/57/29 35/58/29 -f 26/25/30 42/59/30 43/60/30 -f 19/27/31 35/61/31 36/62/31 -f 27/29/32 43/63/32 44/64/32 -f 20/31/33 36/65/33 37/66/33 -f 55/67/34 71/68/34 72/69/34 -f 42/70/13 58/71/13 59/72/13 -f 35/73/14 51/39/14 52/74/14 -f 43/75/15 59/72/15 60/76/15 -f 36/77/16 52/74/16 53/78/16 -f 44/79/17 60/76/17 61/80/17 -f 37/81/18 53/78/18 54/82/18 -f 46/83/3 45/84/3 61/80/3 -f 38/85/4 54/82/4 55/67/4 -f 46/83/5 62/86/5 63/87/5 -f 39/88/6 55/67/6 56/89/6 -f 47/90/7 63/87/7 64/91/7 -f 40/92/8 56/89/8 57/93/8 -f 34/94/9 50/95/9 49/38/9 -f 48/96/10 64/91/10 50/97/10 -f 41/98/11 57/93/11 58/71/11 -f 73/99/35 177/100/35 178/101/35 -f 64/91/36 63/87/36 79/102/36 -f 56/89/37 72/103/37 73/104/37 -f 50/95/38 66/105/38 65/106/38 -f 64/91/39 80/107/39 66/108/39 -f 58/71/40 57/93/40 73/99/40 -f 49/38/41 65/109/41 67/110/41 -f 59/72/42 58/71/42 74/111/42 -f 51/39/43 67/112/43 68/113/43 -f 60/76/44 59/72/44 75/114/44 -f 52/74/45 68/115/45 69/116/45 -f 60/76/46 76/117/46 77/118/46 -f 53/78/47 69/119/47 70/120/47 -f 62/86/48 61/80/48 77/121/48 -f 54/82/49 70/122/49 71/123/49 -f 62/86/50 78/124/50 79/125/50 -f 100/126/51 108/127/51 107/128/51 -f 104/129/52 112/130/52 111/131/52 -f 98/132/53 106/133/53 105/134/53 -f 102/135/54 110/136/54 109/137/54 -f 96/138/17 112/130/17 104/129/17 -f 86/139/55 102/135/55 101/140/55 -f 93/141/3 85/142/3 99/143/3 -f 88/144/56 104/129/56 103/145/56 -f 89/146/18 81/147/18 103/145/18 -f 91/148/55 105/134/55 106/133/55 -f 90/149/10 106/133/10 98/132/10 -f 93/150/56 107/128/56 108/127/56 -f 94/151/8 110/136/8 102/135/8 -f 94/152/57 95/153/57 109/137/57 -f 91/154/11 83/155/11 97/156/11 -f 89/157/58 111/131/58 112/130/58 -f 82/158/57 98/132/57 97/156/57 -f 95/159/9 87/160/9 101/140/9 -f 92/161/16 108/127/16 100/126/16 -f 84/162/58 100/126/58 99/143/58 -f 116/163/10 118/164/10 117/165/10 -f 118/164/7 120/166/7 119/167/7 -f 120/166/5 122/168/5 121/169/5 -f 122/168/3 124/170/3 123/171/3 -f 124/170/17 126/172/17 125/173/17 -f 126/172/15 128/174/15 127/175/15 -f 128/174/13 130/176/13 129/177/13 -f 130/176/11 132/178/11 131/179/11 -f 132/178/8 134/180/8 133/181/8 -f 134/180/6 136/182/6 135/183/6 -f 136/182/4 138/184/4 137/185/4 -f 138/184/18 140/186/18 139/187/18 -f 140/186/16 142/188/16 141/189/16 -f 142/188/14 144/190/14 143/191/14 -f 136/192/1 128/193/1 120/194/1 -f 146/195/9 116/196/9 115/197/9 -f 144/190/12 146/195/12 145/198/12 -f 129/199/35 137/200/35 121/201/35 -f 150/202/59 149/203/59 157/204/59 -f 152/205/60 151/206/60 159/207/60 -f 153/208/61 113/209/61 114/210/61 -f 148/211/62 147/212/62 155/213/62 -f 168/214/63 167/215/63 151/206/63 -f 161/216/64 162/217/64 114/210/64 -f 164/218/65 163/219/65 147/212/65 -f 166/220/66 165/221/66 149/203/66 -f 157/204/67 165/222/67 166/223/67 -f 159/207/68 167/224/68 168/225/68 -f 153/208/69 154/226/69 162/227/69 -f 155/213/70 163/228/70 164/229/70 -f 151/206/71 167/230/71 159/207/71 -f 113/209/72 153/208/72 161/231/72 -f 114/210/73 162/232/73 154/226/73 -f 148/211/74 156/233/74 164/234/74 -f 147/212/75 163/235/75 155/213/75 -f 150/202/76 158/236/76 166/237/76 -f 149/203/77 165/238/77 157/204/77 -f 152/205/78 160/239/78 168/240/78 -f 176/241/8 192/242/8 193/243/8 -f 65/109/35 169/244/35 171/245/35 -f 74/111/35 178/246/35 179/247/35 -f 67/112/35 171/248/35 172/249/35 -f 75/114/35 179/250/35 180/251/35 -f 68/115/35 172/252/35 173/253/35 -f 76/117/35 180/254/35 181/255/35 -f 69/119/35 173/256/35 174/257/35 -f 78/258/35 77/121/35 181/259/35 -f 70/122/35 174/260/35 175/261/35 -f 79/125/35 78/124/35 182/262/35 -f 72/69/35 71/68/35 175/263/35 -f 80/264/35 79/102/35 183/265/35 -f 72/103/35 176/266/35 177/267/35 -f 65/106/35 66/105/35 170/268/35 -f 80/107/35 184/269/35 170/270/35 -f 195/271/35 189/272/35 187/273/35 -f 170/274/9 186/275/9 185/276/9 -f 184/277/10 200/278/10 186/279/10 -f 177/280/11 193/243/11 194/281/11 -f 169/282/12 185/276/12 187/283/12 -f 178/284/13 194/281/13 195/285/13 -f 171/286/14 187/283/14 188/287/14 -f 180/288/15 179/289/15 195/285/15 -f 172/290/16 188/287/16 189/291/16 -f 180/288/17 196/292/17 197/293/17 -f 174/294/18 173/295/18 189/291/18 -f 181/296/3 197/293/3 198/297/3 -f 174/294/4 190/298/4 191/299/4 -f 182/300/5 198/297/5 199/301/5 -f 175/302/6 191/299/6 192/242/6 -f 183/303/7 199/301/7 200/278/7 -f 215/304/5 231/305/5 230/306/5 -f 7/14/1 8/17/1 208/307/1 -f 15/1/1 16/22/1 216/308/1 -f 9/24/1 209/309/1 208/310/1 -f 1/19/1 2/26/1 201/311/1 -f 1/312/1 202/313/1 216/314/1 -f 9/24/1 10/28/1 210/315/1 -f 3/30/1 203/316/1 201/317/1 -f 11/32/1 211/318/1 210/319/1 -f 4/33/1 204/320/1 203/321/1 -f 12/35/1 212/322/1 211/323/1 -f 4/33/1 5/36/1 205/324/1 -f 13/7/1 213/325/1 212/326/1 -f 6/9/1 206/327/1 205/328/1 -f 14/12/1 214/329/1 213/330/1 -f 7/14/1 207/331/1 206/332/1 -f 208/333/6 224/334/6 223/335/6 -f 216/336/7 232/337/7 231/305/7 -f 209/338/8 225/339/8 224/334/8 -f 201/340/9 217/341/9 218/342/9 -f 202/343/10 218/342/10 232/337/10 -f 210/344/11 226/345/11 225/339/11 -f 203/346/12 219/347/12 217/341/12 -f 211/348/13 227/349/13 226/345/13 -f 204/350/14 220/351/14 219/347/14 -f 212/352/15 228/353/15 227/349/15 -f 205/354/16 221/355/16 220/351/16 -f 213/356/17 229/357/17 228/353/17 -f 206/358/18 222/359/18 221/355/18 -f 214/360/3 230/306/3 229/357/3 -f 207/361/4 223/335/4 222/359/4 -f 231/305/1 232/337/1 248/362/1 -f 218/342/1 233/363/1 248/362/1 -f 218/342/1 217/341/1 234/364/1 -f 219/347/1 235/365/1 234/364/1 -f 220/351/1 236/366/1 235/365/1 -f 220/351/1 221/355/1 237/367/1 -f 222/359/1 238/368/1 237/367/1 -f 222/359/1 223/335/1 239/369/1 -f 224/334/1 240/370/1 239/369/1 -f 225/339/1 241/371/1 240/370/1 -f 225/339/1 226/345/1 242/372/1 -f 226/345/1 227/349/1 243/373/1 -f 227/349/1 228/353/1 244/374/1 -f 228/353/1 229/357/1 245/375/1 -f 230/306/1 246/376/1 245/375/1 -f 231/305/1 247/377/1 246/376/1 -f 242/378/9 258/379/9 257/380/9 -f 257/381/1 263/382/1 250/383/1 -f 235/384/13 251/385/13 249/386/13 -f 243/387/12 259/388/12 258/379/12 -f 236/389/15 252/390/15 251/385/15 -f 244/391/14 260/392/14 259/388/14 -f 237/393/17 253/394/17 252/390/17 -f 245/395/16 261/396/16 260/392/16 -f 238/397/3 254/398/3 253/394/3 -f 246/399/18 262/400/18 261/396/18 -f 239/401/5 255/402/5 254/398/5 -f 247/403/4 263/404/4 262/400/4 -f 240/405/7 256/406/7 255/402/7 -f 248/407/6 264/408/6 263/404/6 -f 241/409/10 257/380/10 256/406/10 -f 234/410/11 249/386/11 250/411/11 -f 233/412/8 250/413/8 264/408/8 -f 268/414/57 267/415/57 265/416/57 -f 272/417/56 271/418/56 267/415/56 -f 270/419/55 269/420/55 271/418/55 -f 266/421/58 265/416/58 269/422/58 -f 276/423/57 275/424/57 273/425/57 -f 272/426/1 268/414/1 266/421/1 -f 280/427/56 279/428/56 275/424/56 -f 278/429/55 277/430/55 279/428/55 -f 274/431/58 273/425/58 277/432/58 -f 280/433/1 276/423/1 274/431/1 -f 284/434/57 283/435/57 281/436/57 -f 288/437/56 287/438/56 283/435/56 -f 286/439/55 285/440/55 287/438/55 -f 282/441/58 281/436/58 285/442/58 -f 288/443/1 284/434/1 282/441/1 -f 292/444/57 291/445/57 289/446/57 -f 296/447/56 295/448/56 291/445/56 -f 294/449/55 293/450/55 295/448/55 -f 290/451/58 289/446/58 293/452/58 -f 296/453/1 292/444/1 290/451/1 -f 300/454/57 299/455/57 297/456/57 -f 304/457/56 303/458/56 299/455/56 -f 302/459/55 301/460/55 303/458/55 -f 298/461/58 297/456/58 301/462/58 -f 304/463/1 300/454/1 298/461/1 -f 14/12/1 15/1/1 214/3/1 -f 45/464/2 29/4/2 44/6/2 -f 14/12/3 13/7/3 30/8/3 -f 7/14/4 6/9/4 23/11/4 -f 15/1/5 14/12/5 31/13/5 -f 8/17/6 7/14/6 24/15/6 -f 16/22/7 15/1/7 32/16/7 -f 9/24/8 8/17/8 25/18/8 -f 2/26/9 1/19/9 17/21/9 -f 1/312/10 16/22/10 18/23/10 -f 10/28/11 9/24/11 26/25/11 -f 3/30/12 2/26/12 19/27/12 -f 11/32/13 10/28/13 27/29/13 -f 4/33/14 3/30/14 20/31/14 -f 12/35/15 11/32/15 28/5/15 -f 5/36/16 4/33/16 21/34/16 -f 13/7/17 12/35/17 29/4/17 -f 6/9/18 5/36/18 22/10/18 -f 35/73/12 33/37/12 51/39/12 -f 38/465/19 22/10/19 37/40/19 -f 46/466/20 30/8/20 45/41/20 -f 23/11/21 22/10/21 39/43/21 -f 31/13/22 30/8/22 47/45/22 -f 24/15/23 23/11/23 40/47/23 -f 32/16/24 31/13/24 48/49/24 -f 25/18/25 24/15/25 41/51/25 -f 17/21/26 18/20/26 33/53/26 -f 34/467/27 18/23/27 48/54/27 -f 26/25/28 25/18/28 42/56/28 -f 19/27/29 17/21/29 35/58/29 -f 27/29/30 26/25/30 43/60/30 -f 20/31/31 19/27/31 36/62/31 -f 28/5/32 27/29/32 44/64/32 -f 21/34/33 20/31/33 37/66/33 -f 56/89/34 55/67/34 72/69/34 -f 43/75/13 42/70/13 59/72/13 -f 36/77/14 35/73/14 52/74/14 -f 44/79/15 43/75/15 60/76/15 -f 37/81/16 36/77/16 53/78/16 -f 45/84/17 44/79/17 61/80/17 -f 38/85/18 37/81/18 54/82/18 -f 62/86/3 46/83/3 61/80/3 -f 39/88/4 38/85/4 55/67/4 -f 47/90/5 46/83/5 63/87/5 -f 40/92/6 39/88/6 56/89/6 -f 48/96/7 47/90/7 64/91/7 -f 41/98/8 40/92/8 57/93/8 -f 33/37/9 34/94/9 49/38/9 -f 34/468/10 48/96/10 50/97/10 -f 42/70/11 41/98/11 58/71/11 -f 74/469/35 73/99/35 178/101/35 -f 80/264/36 64/91/36 79/102/36 -f 57/93/37 56/89/37 73/104/37 -f 49/38/38 50/95/38 65/106/38 -f 50/97/39 64/91/39 66/108/39 -f 74/469/40 58/71/40 73/99/40 -f 51/39/41 49/38/41 67/110/41 -f 75/470/42 59/72/42 74/111/42 -f 52/74/43 51/39/43 68/113/43 -f 76/471/44 60/76/44 75/114/44 -f 53/78/45 52/74/45 69/116/45 -f 61/80/46 60/76/46 77/118/46 -f 54/82/47 53/78/47 70/120/47 -f 78/258/48 62/86/48 77/121/48 -f 55/67/49 54/82/49 71/123/49 -f 63/87/50 62/86/50 79/125/50 -f 99/143/51 100/126/51 107/128/51 -f 103/145/52 104/129/52 111/131/52 -f 97/156/53 98/132/53 105/134/53 -f 101/140/54 102/135/54 109/137/54 -f 88/472/17 96/138/17 104/129/17 -f 87/473/55 86/139/55 101/140/55 -f 107/128/3 93/141/3 99/143/3 -f 81/474/56 88/144/56 103/145/56 -f 111/131/18 89/146/18 103/145/18 -f 90/475/55 91/148/55 106/133/55 -f 82/476/10 90/149/10 98/132/10 -f 92/477/56 93/150/56 108/127/56 -f 86/478/8 94/151/8 102/135/8 -f 110/136/57 94/152/57 109/137/57 -f 105/134/11 91/154/11 97/156/11 -f 96/479/58 89/157/58 112/130/58 -f 83/480/57 82/158/57 97/156/57 -f 109/137/9 95/159/9 101/140/9 -f 84/481/16 92/161/16 100/126/16 -f 85/482/58 84/162/58 99/143/58 -f 115/483/10 116/163/10 117/165/10 -f 117/165/7 118/164/7 119/167/7 -f 119/167/5 120/166/5 121/169/5 -f 121/169/3 122/168/3 123/171/3 -f 123/171/17 124/170/17 125/173/17 -f 125/173/15 126/172/15 127/175/15 -f 127/175/13 128/174/13 129/177/13 -f 129/177/11 130/176/11 131/179/11 -f 131/179/8 132/178/8 133/181/8 -f 133/181/6 134/180/6 135/183/6 -f 135/183/4 136/182/4 137/185/4 -f 137/185/18 138/184/18 139/187/18 -f 139/187/16 140/186/16 141/189/16 -f 141/189/14 142/188/14 143/191/14 -f 120/194/1 118/484/1 116/485/1 -f 116/485/1 146/486/1 120/194/1 -f 144/487/1 142/488/1 140/489/1 -f 140/489/1 138/490/1 136/192/1 -f 136/192/1 134/491/1 128/193/1 -f 132/492/1 130/493/1 128/193/1 -f 128/193/1 126/494/1 124/495/1 -f 124/495/1 122/496/1 120/194/1 -f 120/194/1 146/486/1 144/487/1 -f 144/487/1 140/489/1 120/194/1 -f 134/491/1 132/492/1 128/193/1 -f 128/193/1 124/495/1 120/194/1 -f 120/194/1 140/489/1 136/192/1 -f 145/198/9 146/195/9 115/197/9 -f 143/191/12 144/190/12 145/198/12 -f 145/497/35 115/498/35 117/499/35 -f 117/499/35 119/500/35 121/201/35 -f 121/201/35 123/501/35 125/502/35 -f 125/502/35 127/503/35 121/201/35 -f 129/199/35 131/504/35 133/505/35 -f 133/505/35 135/506/35 137/200/35 -f 137/200/35 139/507/35 141/508/35 -f 141/508/35 143/509/35 145/497/35 -f 145/497/35 117/499/35 121/201/35 -f 121/201/35 127/503/35 129/199/35 -f 129/199/35 133/505/35 137/200/35 -f 137/200/35 141/508/35 145/497/35 -f 145/497/35 121/201/35 137/200/35 -f 158/236/59 150/202/59 157/204/59 -f 160/239/60 152/205/60 159/207/60 -f 154/226/61 153/208/61 114/210/61 -f 156/233/62 148/211/62 155/213/62 -f 152/205/63 168/214/63 151/206/63 -f 113/209/64 161/216/64 114/210/64 -f 148/211/65 164/218/65 147/212/65 -f 150/202/66 166/220/66 149/203/66 -f 158/236/67 157/204/67 166/223/67 -f 160/239/68 159/207/68 168/225/68 -f 161/510/69 153/208/69 162/227/69 -f 156/233/70 155/213/70 164/229/70 -f 177/280/8 176/241/8 193/243/8 -f 67/110/35 65/109/35 171/245/35 -f 75/470/35 74/111/35 179/247/35 -f 68/113/35 67/112/35 172/249/35 -f 76/471/35 75/114/35 180/251/35 -f 69/116/35 68/115/35 173/253/35 -f 77/118/35 76/117/35 181/255/35 -f 70/120/35 69/119/35 174/257/35 -f 182/511/35 78/258/35 181/259/35 -f 71/123/35 70/122/35 175/261/35 -f 183/512/35 79/125/35 182/262/35 -f 176/513/35 72/69/35 175/263/35 -f 184/514/35 80/264/35 183/265/35 -f 73/104/35 72/103/35 177/267/35 -f 169/515/35 65/106/35 170/268/35 -f 66/108/35 80/107/35 170/270/35 -f 187/273/35 185/516/35 186/517/35 -f 186/517/35 200/518/35 199/519/35 -f 199/519/35 198/520/35 195/271/35 -f 197/521/35 196/522/35 195/271/35 -f 195/271/35 194/523/35 193/524/35 -f 193/524/35 192/525/35 195/271/35 -f 191/526/35 190/527/35 189/272/35 -f 189/272/35 188/528/35 187/273/35 -f 187/273/35 186/517/35 195/271/35 -f 198/520/35 197/521/35 195/271/35 -f 195/271/35 192/525/35 191/526/35 -f 191/526/35 189/272/35 195/271/35 -f 186/517/35 199/519/35 195/271/35 -f 169/282/9 170/274/9 185/276/9 -f 170/529/10 184/277/10 186/279/10 -f 178/284/11 177/280/11 194/281/11 -f 171/286/12 169/282/12 187/283/12 -f 179/289/13 178/284/13 195/285/13 -f 172/290/14 171/286/14 188/287/14 -f 196/292/15 180/288/15 195/285/15 -f 173/295/16 172/290/16 189/291/16 -f 181/296/17 180/288/17 197/293/17 -f 190/298/18 174/294/18 189/291/18 -f 182/300/3 181/296/3 198/297/3 -f 175/302/4 174/294/4 191/299/4 -f 183/303/5 182/300/5 199/301/5 -f 176/241/6 175/302/6 192/242/6 -f 184/277/7 183/303/7 200/278/7 -f 214/530/5 215/304/5 230/306/5 -f 207/531/1 7/14/1 208/307/1 -f 215/532/1 15/1/1 216/308/1 -f 8/17/1 9/24/1 208/310/1 -f 202/533/1 1/19/1 201/311/1 -f 16/22/1 1/312/1 216/314/1 -f 209/534/1 9/24/1 210/315/1 -f 2/26/1 3/30/1 201/317/1 -f 10/28/1 11/32/1 210/319/1 -f 3/30/1 4/33/1 203/321/1 -f 11/32/1 12/35/1 211/323/1 -f 204/535/1 4/33/1 205/324/1 -f 12/35/1 13/7/1 212/326/1 -f 5/36/1 6/9/1 205/328/1 -f 13/7/1 14/12/1 213/330/1 -f 6/9/1 7/14/1 206/332/1 -f 207/536/6 208/333/6 223/335/6 -f 215/537/7 216/336/7 231/305/7 -f 208/538/8 209/338/8 224/334/8 -f 202/539/9 201/340/9 218/342/9 -f 216/540/10 202/343/10 232/337/10 -f 209/541/11 210/344/11 225/339/11 -f 201/542/12 203/346/12 217/341/12 -f 210/543/13 211/348/13 226/345/13 -f 203/544/14 204/350/14 219/347/14 -f 211/545/15 212/352/15 227/349/15 -f 204/546/16 205/354/16 220/351/16 -f 212/547/17 213/356/17 228/353/17 -f 205/548/18 206/358/18 221/355/18 -f 213/549/3 214/360/3 229/357/3 -f 206/550/4 207/361/4 222/359/4 -f 247/377/1 231/305/1 248/362/1 -f 232/337/1 218/342/1 248/362/1 -f 233/363/1 218/342/1 234/364/1 -f 217/341/1 219/347/1 234/364/1 -f 219/347/1 220/351/1 235/365/1 -f 236/366/1 220/351/1 237/367/1 -f 221/355/1 222/359/1 237/367/1 -f 238/368/1 222/359/1 239/369/1 -f 223/335/1 224/334/1 239/369/1 -f 224/334/1 225/339/1 240/370/1 -f 241/371/1 225/339/1 242/372/1 -f 242/372/1 226/345/1 243/373/1 -f 243/373/1 227/349/1 244/374/1 -f 244/374/1 228/353/1 245/375/1 -f 229/357/1 230/306/1 245/375/1 -f 230/306/1 231/305/1 246/376/1 -f 241/409/9 242/378/9 257/380/9 -f 250/383/1 249/551/1 251/552/1 -f 251/552/1 252/553/1 253/554/1 -f 253/554/1 254/555/1 257/381/1 -f 255/556/1 256/557/1 257/381/1 -f 257/381/1 258/558/1 259/559/1 -f 259/559/1 260/560/1 257/381/1 -f 261/561/1 262/562/1 263/382/1 -f 263/382/1 264/563/1 250/383/1 -f 250/383/1 251/552/1 257/381/1 -f 254/555/1 255/556/1 257/381/1 -f 257/381/1 260/560/1 261/561/1 -f 261/561/1 263/382/1 257/381/1 -f 251/552/1 253/554/1 257/381/1 -f 234/410/13 235/384/13 249/386/13 -f 242/378/12 243/387/12 258/379/12 -f 235/384/15 236/389/15 251/385/15 -f 243/387/14 244/391/14 259/388/14 -f 236/389/17 237/393/17 252/390/17 -f 244/391/16 245/395/16 260/392/16 -f 237/393/3 238/397/3 253/394/3 -f 245/395/18 246/399/18 261/396/18 -f 238/397/5 239/401/5 254/398/5 -f 246/399/4 247/403/4 262/400/4 -f 239/401/7 240/405/7 255/402/7 -f 247/403/6 248/407/6 263/404/6 -f 240/405/10 241/409/10 256/406/10 -f 233/564/11 234/410/11 250/411/11 -f 248/407/8 233/412/8 264/408/8 -f 266/421/57 268/414/57 265/416/57 -f 268/414/56 272/417/56 267/415/56 -f 272/417/55 270/419/55 271/418/55 -f 270/565/58 266/421/58 269/422/58 -f 274/431/57 276/423/57 273/425/57 -f 270/566/1 272/426/1 266/421/1 -f 276/423/56 280/427/56 275/424/56 -f 280/427/55 278/429/55 279/428/55 -f 278/567/58 274/431/58 277/432/58 -f 278/568/1 280/433/1 274/431/1 -f 282/441/57 284/434/57 281/436/57 -f 284/434/56 288/437/56 283/435/56 -f 288/437/55 286/439/55 287/438/55 -f 286/569/58 282/441/58 285/442/58 -f 286/570/1 288/443/1 282/441/1 -f 290/451/57 292/444/57 289/446/57 -f 292/444/56 296/447/56 291/445/56 -f 296/447/55 294/449/55 295/448/55 -f 294/571/58 290/451/58 293/452/58 -f 294/572/1 296/453/1 290/451/1 -f 298/461/57 300/454/57 297/456/57 -f 300/454/56 304/457/56 299/455/56 -f 304/457/55 302/459/55 303/458/55 -f 302/573/58 298/461/58 301/462/58 -f 302/574/1 304/463/1 298/461/1 diff --git a/src/main/resources/assets/hbm/models/ams_emitter_destroyed.obj b/src/main/resources/assets/hbm/models/ams_emitter_destroyed.obj deleted file mode 100644 index dbef58503..000000000 --- a/src/main/resources/assets/hbm/models/ams_emitter_destroyed.obj +++ /dev/null @@ -1,2295 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_emitter_destroyed.blend' -# www.blender.org -o Circle -v 0.000000 5.750000 -2.500000 -v -0.956709 5.750000 -2.309699 -v -1.767767 5.750000 -1.767767 -v -2.309699 5.750000 -0.956709 -v -2.500000 5.750000 0.000000 -v -2.309699 5.750000 0.956709 -v -1.767767 5.750000 1.767767 -v -0.956709 5.750000 2.309699 -v -0.000000 5.750000 2.500000 -v 0.956708 5.750000 2.309699 -v 1.767766 5.750000 1.767768 -v 2.309699 5.750000 0.956709 -v 2.500000 5.750000 -0.000000 -v 2.309699 5.750000 -0.956709 -v 1.767766 5.750000 -1.767768 -v 0.956707 5.750000 -2.309699 -v -0.956709 4.500000 -2.309699 -v 0.000000 4.500000 -2.500000 -v -1.767767 4.500000 -1.767767 -v -2.309699 4.500000 -0.956709 -v -1.817264 2.924223 1.127516 -v -2.309699 4.500000 0.956709 -v -1.767767 4.500000 1.767767 -v -0.956709 4.500000 2.309699 -v -0.000000 4.500000 2.500000 -v 0.956708 4.500000 2.309699 -v 1.767766 4.500000 1.767768 -v 2.309699 4.500000 0.956709 -v 2.500000 4.500000 -0.000000 -v 2.309699 4.500000 -0.956709 -v 1.767766 4.500000 -1.767768 -v 0.956707 4.500000 -2.309699 -v -0.765367 3.500000 -1.847759 -v -0.000000 3.500000 -2.000000 -v -1.414214 3.500000 -1.414213 -v -1.847759 3.500000 -0.765367 -v -2.000000 3.500000 0.000000 -v -1.847759 3.500000 0.765367 -v -1.414214 3.500000 1.414214 -v -0.765367 3.500000 1.847759 -v -0.000000 3.500000 2.000000 -v 0.765366 3.500000 1.847759 -v 1.414213 3.500000 1.414214 -v 1.847759 3.500000 0.765367 -v 2.000000 3.500000 -0.000000 -v 1.847759 3.500000 -0.765367 -v 1.414213 3.500000 -1.414214 -v 0.765366 3.500000 -1.847759 -v -0.765367 1.500000 -1.847759 -v -0.000000 1.500000 -2.000000 -v -1.414214 1.500000 -1.414213 -v -1.847759 1.500000 -0.765367 -v -2.000000 1.500000 0.000000 -v -1.847759 1.500000 0.765367 -v -1.414214 1.500000 1.414214 -v -0.765367 1.500000 1.847759 -v -0.000000 1.500000 2.000000 -v 0.765366 1.500000 1.847759 -v 1.414213 1.500000 1.414214 -v 1.847759 1.500000 0.765367 -v 2.000000 1.500000 -0.000000 -v 1.847759 1.500000 -0.765367 -v 1.414213 1.500000 -1.414214 -v 0.765366 1.500000 -1.847759 -v -0.153073 0.500000 -0.369552 -v 0.000000 0.500000 -0.400000 -v -0.282843 0.500000 -0.282843 -v -0.369552 0.500000 -0.153073 -v -0.400000 0.500000 0.000000 -v -0.369552 0.500000 0.153073 -v -0.282843 0.500000 0.282843 -v -0.153073 0.500000 0.369552 -v -0.000000 0.500000 0.400000 -v 0.153073 0.500000 0.369552 -v 0.282843 0.500000 0.282843 -v 0.369552 0.500000 0.153073 -v 0.400000 0.500000 -0.000000 -v 0.369552 0.500000 -0.153073 -v 0.282843 0.500000 -0.282843 -v 0.153073 0.500000 -0.369552 -v -1.961570 2.000000 -0.390181 -v -1.961571 2.000000 0.390181 -v -0.390181 2.000000 1.961571 -v 0.390180 2.000000 1.961571 -v 1.961571 2.000000 0.390181 -v 1.961571 2.000000 -0.390181 -v -0.392314 1.000000 -0.078036 -v -0.392314 1.000000 0.078036 -v -0.078036 1.000000 0.392314 -v 0.078036 1.000000 0.392314 -v 0.392314 1.000000 0.078036 -v 0.392314 1.000000 -0.078036 -v -1.961571 1.000000 0.390181 -v -1.961570 1.000000 -0.390181 -v 0.390180 1.000000 1.961571 -v -0.390181 1.000000 1.961571 -v 1.961571 1.000000 -0.390181 -v 1.961571 1.000000 0.390181 -v -0.392314 0.000000 0.078036 -v -0.392314 0.000000 -0.078036 -v 0.078036 0.000000 0.392314 -v -0.078036 0.000000 0.392314 -v 0.392314 0.000000 -0.078036 -v 0.392314 0.000000 0.078036 -v -1.239507 -0.356666 -0.078036 -v -1.239507 -0.356666 0.078036 -v -2.078674 2.000000 1.388925 -v -1.388925 2.000000 2.078674 -v -0.000000 1.500000 -2.250000 -v -0.000000 2.250000 -2.250000 -v -0.502465 1.500000 -2.150054 -v 0.861038 2.250000 -2.078729 -v 1.590990 1.500000 -1.590990 -v 1.590990 2.250000 -1.590990 -v 2.078729 1.500000 -0.861038 -v 2.078729 2.250000 -0.861038 -v 2.250000 1.500000 0.000000 -v 2.250000 2.250000 0.000000 -v 2.078729 1.500000 0.861038 -v 2.078729 2.250000 0.861038 -v 1.590990 1.500000 1.590990 -v 1.590990 2.250000 1.590990 -v 0.861038 1.500000 2.078729 -v 0.861038 2.250000 2.078729 -v 0.000000 1.500000 2.250000 -v 0.000000 2.250000 2.250000 -v -0.861037 1.500000 2.078729 -v -0.861037 2.250000 2.078729 -v -1.590990 1.500000 1.590991 -v -1.590990 2.250000 1.590991 -v -2.078729 1.500000 0.861038 -v -2.078729 2.250000 0.861038 -v -2.250000 1.500000 -0.000000 -v -2.250000 2.250000 -0.000000 -v -2.078729 1.500000 -0.861038 -v -2.078729 2.250000 -0.861038 -v -1.590990 1.500000 -1.590991 -v -1.590990 2.250000 -1.590991 -v -0.861037 1.500000 -2.078729 -v -0.861037 2.250000 -2.078729 -v 2.078674 2.000000 1.388926 -v 1.388926 2.000000 2.078674 -v -1.568488 0.500000 1.205591 -v -1.517359 2.000000 -1.985573 -v -1.654410 3.500000 0.964661 -v -0.964661 3.500000 1.654410 -v 1.654410 3.500000 0.964662 -v 0.964662 3.500000 1.654410 -v -1.661362 1.054948 -1.084044 -v -1.068258 1.378297 -1.660441 -v -1.654411 3.500000 -0.964661 -v -0.964663 3.500000 -1.654409 -v -1.662939 0.500000 1.111140 -v -0.076536 -0.057784 -0.127896 -v 1.662939 0.500000 1.111141 -v 1.111140 0.500000 1.662939 -v -1.258276 1.294501 -1.883140 -v -1.799671 0.993336 -1.202501 -v -0.076537 0.500000 -0.184776 -v 0.000000 0.500000 -0.200000 -v -0.141421 0.500000 -0.141421 -v -0.184776 0.500000 -0.076537 -v -0.200000 0.500000 0.000000 -v -0.184776 0.500000 0.076537 -v -0.141421 0.500000 0.141421 -v -0.076537 0.500000 0.184776 -v -0.000000 0.500000 0.200000 -v 0.076537 0.500000 0.184776 -v 0.141421 0.500000 0.141421 -v 0.184776 0.500000 0.076537 -v 0.200000 0.500000 0.000000 -v 0.184776 0.500000 -0.076537 -v 0.141421 0.500000 -0.141421 -v 0.076537 0.500000 -0.184776 -v -0.076536 0.175704 -0.217247 -v 0.000000 0.170263 -0.231465 -v -0.141421 0.191199 -0.176756 -v -0.184776 0.214389 -0.116157 -v -0.200000 0.241744 -0.044676 -v -0.184776 0.269098 0.026806 -v -0.141421 0.292288 0.087405 -v -0.076536 0.307784 0.127896 -v 0.000000 0.313225 0.142114 -v 0.076537 0.307784 0.127896 -v 0.141422 0.292288 0.087405 -v 0.184776 0.269098 0.026806 -v 0.200000 0.241744 -0.044676 -v 0.184776 0.214389 -0.116157 -v 0.141422 0.191199 -0.176756 -v 0.076537 0.175704 -0.217247 -v -0.861038 5.750000 -2.078729 -v -0.000000 5.750000 -2.250000 -v -1.590990 5.750000 -1.590990 -v -2.078729 5.750000 -0.861038 -v -2.250000 5.750000 0.000000 -v -2.078729 5.750000 0.861038 -v -1.590990 5.750000 1.590990 -v -0.861038 5.750000 2.078729 -v -0.000000 5.750000 2.250000 -v 0.861037 5.750000 2.078729 -v 1.590990 5.750000 1.590991 -v 2.078729 5.750000 0.861038 -v 2.250000 5.750000 -0.000000 -v 2.078728 5.750000 -0.861038 -v 1.590990 5.750000 -1.590991 -v 0.861037 5.750000 -2.078729 -v -0.861038 5.782505 -2.078729 -v -0.000000 5.782505 -2.250000 -v -1.590990 6.000000 -1.590990 -v -2.078729 6.000000 -0.861038 -v -2.250000 6.000000 0.000000 -v -2.078729 6.000000 0.861038 -v -1.590990 6.000000 1.590990 -v -0.861038 6.000000 2.078729 -v -0.000000 6.000000 2.250000 -v 0.861037 6.000000 2.078729 -v 1.590990 6.000000 1.590991 -v 2.078729 6.000000 0.861038 -v 2.250000 6.000000 -0.000000 -v 2.078728 6.000000 -0.861038 -v 1.590990 6.000000 -1.590991 -v 0.861037 6.000000 -2.078729 -v -0.000000 6.000000 -1.750000 -v -0.669696 6.000000 -1.616789 -v -1.237437 6.000000 -1.237437 -v -1.616789 6.000000 -0.669696 -v -1.750000 6.000000 0.000000 -v -1.616789 6.000000 0.669696 -v -1.237437 6.000000 1.237437 -v -0.669696 5.780204 1.616789 -v -0.000000 5.780204 1.750000 -v 0.669696 5.842573 1.616789 -v 1.237437 5.842573 1.237437 -v 1.616789 6.000000 0.669696 -v 1.750000 6.000000 -0.000000 -v 1.616789 6.000000 -0.669696 -v 1.237437 6.000000 -1.237437 -v 0.669695 6.000000 -1.616789 -v -0.669696 5.750000 -1.616789 -v -0.000000 5.750000 -1.750000 -v -1.237437 5.750000 -1.237437 -v -1.616789 5.750000 -0.669696 -v -1.750000 5.750000 0.000000 -v -1.616789 5.750000 0.669696 -v -1.237437 5.750000 1.237437 -v -0.669696 5.750000 1.616789 -v -0.000000 5.750000 1.750000 -v 0.669696 5.750000 1.616789 -v 1.237437 5.750000 1.237437 -v 1.616789 5.750000 0.669696 -v 1.750000 5.750000 -0.000000 -v 1.616789 5.750000 -0.669696 -v 1.237437 5.750000 -1.237437 -v 0.669695 5.750000 -1.616789 -v -0.156250 5.750000 0.156250 -v -0.156250 6.000000 0.156250 -v -0.156250 5.750000 -0.156250 -v 2.214165 6.000000 0.180157 -v 0.156250 5.750000 0.156250 -v 0.156250 6.000000 0.156250 -v 0.156250 5.750000 -0.156250 -v 0.156250 6.000000 -0.156250 -v -1.845955 6.000000 0.204724 -v -2.201638 5.874164 0.243131 -v -0.129925 4.500000 -2.474156 -v -0.482343 4.500000 -2.404056 -v 2.166949 5.883944 0.417527 -v 1.792237 6.000000 0.344685 -v 0.735577 4.500000 -2.353685 -v 0.502231 4.500000 -2.400100 -v -0.156250 5.750000 1.156250 -v -0.156250 6.034361 1.152425 -v -0.156250 5.750000 0.843750 -v -0.156250 5.965639 0.847575 -v 0.156250 5.750000 1.156250 -v 0.156250 6.034361 1.152425 -v 0.156250 5.750000 0.843750 -v 0.156250 5.965639 0.847575 -v 0.843750 5.750000 0.156250 -v 0.814998 6.000000 0.120840 -v 0.843750 5.750000 -0.156250 -v 0.879160 6.000000 -0.185002 -v 1.156250 5.750000 0.156250 -v 1.120840 6.000000 0.185002 -v 1.156250 5.750000 -0.156250 -v 1.185002 6.000000 -0.120840 -v -2.152734 6.000000 0.488988 -v -2.096983 6.000000 0.769267 -v -2.220878 6.000000 0.146404 -v -2.184364 6.000000 0.329975 -v 2.129964 6.000000 0.603464 -v 0.068268 6.000000 -0.156250 -v -0.156250 6.000000 0.061606 -v -0.156250 5.893532 -0.156250 -v -1.467758 0.372828 -0.245880 -v -1.462047 0.365576 0.244211 -v -1.268867 -0.030391 -0.153106 -v -1.268174 -0.031271 0.152904 -v 0.288197 0.673280 1.448864 -v 0.345045 0.855403 1.734661 -v 0.189719 0.357792 0.953782 -v 0.242046 0.525429 1.216847 -v 1.193695 0.510675 -0.237441 -v 1.243743 0.542568 0.247396 -v 1.613379 0.778117 0.320921 -v -0.213437 0.793968 1.638253 -v 0.284380 1.007983 1.429678 -v 1.495057 0.702716 -0.297385 -v 0.193952 0.540102 0.975061 -v -0.112011 0.438574 1.080548 -v 1.251703 0.897963 0.248979 -v 1.236348 0.789783 -0.245925 -v -1.785023 2.000000 -1.717909 -v -1.990089 2.313197 -1.300340 -v -2.009995 1.752200 -1.343035 -v -1.081001 1.117261 1.661184 -v -1.222950 1.103756 1.830274 -v 0.000000 -0.063225 -0.142114 -v -0.141421 -0.042288 -0.087405 -v -0.184776 -0.019098 -0.026806 -v -0.200000 0.008256 0.044676 -v -0.184776 0.035611 0.116157 -v -0.141421 0.058801 0.176756 -v -0.076536 0.074296 0.217247 -v 0.000000 0.079737 0.231466 -v 0.076537 0.074296 0.217247 -v 0.141422 0.058801 0.176756 -v 0.184776 0.035611 0.116157 -v 0.200000 0.008256 0.044676 -v 0.184776 -0.019098 -0.026806 -v 0.141422 -0.042288 -0.087405 -v 0.076537 -0.057784 -0.127896 -v 1.203775 1.500000 -1.849719 -v 0.445675 1.500000 -2.161350 -v 0.861038 1.957726 -2.078729 -v 1.983538 2.250000 -1.003500 -v -0.598266 4.500000 -2.380997 -v -0.756367 4.500000 -2.349549 -v -0.420056 2.108799 -2.166446 -v -2.126658 5.819528 0.620081 -v 0.615602 4.163866 -2.209482 -v -0.098868 4.500000 2.480334 -v 0.191898 4.500000 2.461829 -v -0.252335 3.901679 -2.150647 -v -0.325942 5.067666 -2.435166 -v 0.771172 4.500000 2.346604 -v 1.728361 1.679400 -1.385401 -v 0.441352 4.229276 2.276848 -v -0.725799 5.020985 -2.355630 -v -0.636809 4.264381 -2.255522 -v -0.232973 1.500000 -2.203659 -v 0.778100 1.500000 -1.917303 -v 1.844631 2.250000 -1.211390 -v 0.560166 5.376772 -2.388576 -v -1.831483 6.000000 0.594018 -v -0.356622 1.500000 -2.012033 -v -0.223915 5.402997 2.455461 -v -0.230325 4.216693 2.312532 -v 1.928793 1.605317 -1.085433 -v 1.792458 2.250000 -1.289472 -v 1.670841 2.250000 -1.471485 -v -0.505658 5.531159 2.399418 -v 1.748136 2.250000 -0.989340 -v -0.353334 4.500000 2.429718 -v -0.496164 4.500000 2.401307 -v -0.675478 4.500000 2.365639 -v 0.526255 4.961836 2.395321 -v 1.613860 2.250000 -1.304303 -v -0.631390 3.849639 2.049228 -v -2.426288 4.500000 0.370577 -v -2.500000 4.827446 0.000000 -v -2.449744 4.500000 -0.252656 -v -2.415688 4.331376 0.000000 -v -2.500000 5.225605 0.000000 -v -2.500000 5.478378 0.000000 -v -1.888066 2.673901 1.198317 -v -1.757647 2.750777 1.085746 -v 1.334667 0.500000 1.439413 -v 1.184635 0.500000 1.589444 -v 0.715712 1.500000 2.107636 -v 0.529961 1.500000 2.144584 -v -2.383601 5.304533 0.585175 -v -2.438384 5.315814 -0.309762 -v -1.381086 2.803025 1.632254 -v 1.387527 1.082829 1.656022 -v 1.257675 0.781978 1.501835 -v 0.670986 2.086581 2.116533 -v 0.905353 1.130488 -1.056834 -v -0.377930 1.107692 -1.297132 -v -0.000000 1.007803 -1.212485 -v -0.000000 1.129078 -1.406524 -v 0.543040 1.136896 -1.311016 -v 0.472354 1.021451 -1.140365 -v 0.610923 1.500000 1.911089 -vt 0.906292 0.208428 -vt 0.922955 0.211757 -vt 0.922955 0.271837 -vt 0.299773 0.414340 -vt 0.300143 0.351562 -vt 0.368975 0.369037 -vt 0.740025 0.722902 -vt 0.824942 0.722529 -vt 0.825313 0.789279 -vt 0.141199 0.652187 -vt 0.226081 0.652452 -vt 0.224887 0.714379 -vt 0.740396 0.789652 -vt 0.826367 0.849839 -vt 0.140004 0.714114 -vt 0.224703 0.781190 -vt 0.741450 0.850213 -vt 0.827944 0.894990 -vt 0.225114 0.810807 -vt 0.225242 0.819992 -vt 0.164039 0.828123 -vt 0.739069 0.878743 -vt 0.739069 0.930977 -vt 0.733929 0.914097 -vt 0.139739 0.979704 -vt 0.129352 0.954982 -vt 0.139739 0.895746 -vt 0.139821 0.889584 -vt 0.165995 0.899128 -vt 0.165995 0.933396 -vt 0.714344 0.395071 -vt 0.799012 0.393268 -vt 0.799260 0.458537 -vt 0.743027 0.582656 -vt 0.827944 0.582283 -vt 0.826366 0.610503 -vt 0.714592 0.460340 -vt 0.801557 0.524276 -vt 0.741450 0.610877 -vt 0.825312 0.659751 -vt 0.804499 0.565637 -vt 0.749001 0.563459 -vt 0.740396 0.660125 -vt 0.172235 0.633790 -vt 0.669875 0.103442 -vt 0.805354 0.101079 -vt 0.805354 0.153294 -vt 0.509131 0.315980 -vt 0.578532 0.325879 -vt 0.577018 0.363976 -vt 0.300143 0.481090 -vt 0.368679 0.419259 -vt 0.507972 0.345155 -vt 0.576199 0.413520 -vt 0.368975 0.472660 -vt 0.369818 0.521108 -vt 0.506947 0.407085 -vt 0.576199 0.466969 -vt 0.301197 0.541650 -vt 0.371080 0.557229 -vt 0.527286 0.515158 -vt 0.552201 0.482309 -vt 0.577018 0.516186 -vt 0.164533 0.985784 -vt 0.156795 0.949913 -vt 0.164533 0.933396 -vt 0.224243 0.889584 -vt 0.224243 0.973520 -vt 0.213253 0.913494 -vt 0.140026 0.910152 -vt 0.599445 0.090941 -vt 0.669875 0.155658 -vt 0.426392 0.927513 -vt 0.391250 0.924118 -vt 0.391250 0.870731 -vt 0.599445 0.156210 -vt 0.671513 0.208256 -vt 0.301197 0.302314 -vt 0.369818 0.329639 -vt 0.674540 0.253231 -vt 0.616956 0.273970 -vt 0.339523 0.820630 -vt 0.412539 0.743475 -vt 0.421345 0.749417 -vt 0.371080 0.307063 -vt 0.506947 0.306465 -vt 0.505685 0.329042 -vt 0.806992 0.205893 -vt 0.504842 0.368440 -vt 0.810019 0.250867 -vt 0.504546 0.418662 -vt 0.714344 0.325924 -vt 0.712830 0.364020 -vt 0.712011 0.413564 -vt 0.504842 0.472062 -vt 0.505686 0.520510 -vt 0.712011 0.467013 -vt 0.506947 0.556631 -vt 0.712830 0.516230 -vt 0.671513 0.059559 -vt 0.806992 0.057196 -vt 0.674540 0.030690 -vt 0.810019 0.028326 -vt 0.714344 0.553722 -vt 0.321099 0.914524 -vt 0.323747 0.901087 -vt 0.329042 0.901085 -vt 0.383552 0.850337 -vt 0.431732 0.751505 -vt 0.961826 0.499406 -vt 0.961341 0.480515 -vt 0.968646 0.466050 -vt 0.506947 0.906798 -vt 0.494899 0.882695 -vt 0.494488 0.844957 -vt 0.487424 0.850364 -vt 0.435488 0.860778 -vt 0.383552 0.597215 -vt 0.421345 0.698793 -vt 0.412539 0.704729 -vt 0.008753 0.649842 -vt 0.036832 0.604572 -vt 0.119223 0.677913 -vt 0.339523 0.626899 -vt 0.406655 0.713616 -vt 0.000000 0.702528 -vt 0.113607 0.686967 -vt 0.310104 0.671334 -vt 0.404589 0.724100 -vt 0.111856 0.697504 -vt 0.114238 0.707920 -vt 0.299773 0.723754 -vt 0.406655 0.734585 -vt 0.042659 0.798153 -vt 0.011906 0.754608 -vt 0.310104 0.776180 -vt 0.120388 0.716629 -vt 0.129372 0.722305 -vt 0.692526 0.284316 -vt 0.713073 0.273970 -vt 0.713073 0.296859 -vt 0.105669 0.835433 -vt 0.112704 0.838509 -vt 0.106942 0.860374 -vt 0.459520 0.919506 -vt 0.426392 0.919506 -vt 0.444030 0.860778 -vt 0.810019 0.276895 -vt 0.810019 0.208428 -vt 0.862433 0.208658 -vt 0.185872 0.965269 -vt 0.165995 0.933341 -vt 0.185872 0.926280 -vt 0.869673 0.983025 -vt 0.869673 0.914557 -vt 0.880156 0.914604 -vt 0.827944 0.886632 -vt 0.869673 0.832840 -vt 0.869673 0.928753 -vt 0.980399 0.995377 -vt 0.980399 0.927096 -vt 0.987749 0.927703 -vt 0.227321 0.850461 -vt 0.264122 0.892187 -vt 0.227321 0.971430 -vt 0.193519 0.994561 -vt 0.185872 0.995146 -vt 0.185872 0.926864 -vt 0.667807 0.864060 -vt 0.667807 0.969105 -vt 0.618115 0.922461 -vt 0.391250 0.860778 -vt 0.391250 0.929060 -vt 0.353016 0.931980 -vt 0.562730 0.929525 -vt 0.506947 0.968276 -vt 0.506947 0.856167 -vt 0.862433 0.278080 -vt 0.862433 0.209641 -vt 0.503499 0.989049 -vt 0.494488 0.944909 -vt 0.503499 0.906798 -vt 0.097373 0.976898 -vt 0.077528 0.976898 -vt 0.088278 0.945081 -vt 0.969896 0.957480 -vt 0.969896 0.996990 -vt 0.959425 0.995089 -vt 0.804984 0.487149 -vt 0.804499 0.427075 -vt 0.855448 0.426719 -vt 0.804688 0.370574 -vt 0.855638 0.370219 -vt 0.805524 0.326249 -vt 0.856474 0.325894 -vt 0.806879 0.300847 -vt 0.857829 0.300492 -vt 0.110768 0.985375 -vt 0.097373 0.945529 -vt 0.110768 0.945081 -vt 0.858751 0.514586 -vt 0.857829 0.459217 -vt 0.908758 0.459234 -vt 0.857829 0.399087 -vt 0.908758 0.399104 -vt 0.858751 0.343350 -vt 0.909680 0.343367 -vt 0.860454 0.300492 -vt 0.911383 0.300508 -vt 0.832424 0.832840 -vt 0.829373 0.782221 -vt 0.880182 0.781696 -vt 0.827944 0.723036 -vt 0.878754 0.722511 -vt 0.890529 0.957600 -vt 0.890529 0.997827 -vt 0.883234 0.995280 -vt 0.828355 0.664295 -vt 0.830544 0.614941 -vt 0.839042 0.638919 -vt 0.879165 0.663770 -vt 0.407578 0.990763 -vt 0.391250 0.961226 -vt 0.407578 0.957054 -vt 0.892886 0.652932 -vt 0.948756 0.673506 -vt 0.883234 0.751978 -vt 0.273171 0.764492 -vt 0.292342 0.711435 -vt 0.295146 0.812717 -vt 0.810019 0.101478 -vt 0.849078 0.104921 -vt 0.877009 0.208428 -vt 0.245018 0.604572 -vt 0.295146 0.649335 -vt 0.227321 0.707774 -vt 0.978092 0.957480 -vt 0.978092 0.998296 -vt 0.969896 0.979921 -vt 0.707013 0.817416 -vt 0.707013 0.984999 -vt 0.673353 0.963179 -vt 0.980399 0.584305 -vt 0.980399 0.751978 -vt 0.951127 0.669594 -vt 0.887342 0.794286 -vt 0.923873 0.751978 -vt 0.931197 0.751978 -vt 0.139654 0.877298 -vt 0.132529 0.853733 -vt 0.139654 0.835433 -vt 0.964789 0.803557 -vt 0.973688 0.751978 -vt 0.973688 0.957480 -vt 0.052953 0.896475 -vt 0.067637 0.835433 -vt 0.077528 0.836633 -vt 0.943289 0.103951 -vt 0.979052 0.000000 -vt 0.979052 0.205706 -vt 0.877009 0.002755 -vt 0.885626 0.603379 -vt 0.947543 0.635439 -vt 0.918607 0.652932 -vt 0.707013 0.921361 -vt 0.733929 0.817416 -vt 0.733929 0.962888 -vt 0.857944 0.282865 -vt 0.844728 0.284828 -vt 0.845094 0.279950 -vt 0.321099 0.860782 -vt 0.323747 0.874216 -vt 0.318855 0.876263 -vt 0.331690 0.914520 -vt 0.333935 0.899038 -vt 0.311315 0.864876 -vt 0.315110 0.880044 -vt 0.341475 0.910426 -vt 0.337679 0.895257 -vt 0.303826 0.872437 -vt 0.313084 0.884983 -vt 0.348964 0.902864 -vt 0.339706 0.890319 -vt 0.299773 0.882315 -vt 0.313084 0.890328 -vt 0.353016 0.882297 -vt 0.353016 0.892986 -vt 0.299773 0.893005 -vt 0.315110 0.895265 -vt 0.348964 0.872422 -vt 0.339706 0.884974 -vt 0.311315 0.910436 -vt 0.303826 0.902880 -vt 0.341475 0.864865 -vt 0.337679 0.880036 -vt 0.318855 0.899043 -vt 0.331690 0.860778 -vt 0.329042 0.874214 -vt 0.333935 0.876258 -vt 0.776659 0.276227 -vt 0.776524 0.273970 -vt 0.793508 0.273970 -vt 0.689700 0.275407 -vt 0.689624 0.297858 -vt 0.685379 0.296928 -vt 0.692526 0.275970 -vt 0.692526 0.298050 -vt 0.504354 0.682976 -vt 0.500651 0.682590 -vt 0.500302 0.669489 -vt 0.685379 0.274848 -vt 0.680436 0.295403 -vt 0.506352 0.683066 -vt 0.504096 0.669514 -vt 0.680219 0.274379 -vt 0.675548 0.293515 -vt 0.651965 0.298257 -vt 0.648065 0.298543 -vt 0.650287 0.284047 -vt 0.675006 0.274070 -vt 0.671459 0.291551 -vt 0.656929 0.297813 -vt 0.653745 0.282207 -vt 0.857476 0.296968 -vt 0.839811 0.298384 -vt 0.841869 0.294804 -vt 0.662201 0.297281 -vt 0.658187 0.279932 -vt 0.857691 0.293161 -vt 0.843595 0.290044 -vt 0.666979 0.296740 -vt 0.662938 0.277568 -vt 0.857855 0.288209 -vt 0.670535 0.296273 -vt 0.667274 0.275474 -vt 0.997317 0.240801 -vt 0.980333 0.240875 -vt 0.979385 0.186371 -vt 0.789996 0.962138 -vt 0.789996 0.895364 -vt 0.806654 0.898687 -vt 0.740025 0.962138 -vt 0.740025 0.895364 -vt 0.756683 0.898687 -vt 0.939619 0.208428 -vt 0.956271 0.211754 -vt 0.956271 0.271872 -vt 0.956271 0.275240 -vt 0.956271 0.208428 -vt 0.972919 0.211764 -vt 0.789996 0.962162 -vt 0.773344 0.958835 -vt 0.773344 0.898717 -vt 0.129352 0.895746 -vt 0.129352 0.962559 -vt 0.112704 0.959222 -vt 0.944687 0.532859 -vt 0.928037 0.529511 -vt 0.928037 0.469382 -vt 0.459520 0.913240 -vt 0.476169 0.916588 -vt 0.476169 0.976716 -vt 0.928037 0.532840 -vt 0.911383 0.529485 -vt 0.911383 0.469374 -vt 0.944687 0.466050 -vt 0.961341 0.469405 -vt 0.961341 0.529516 -vt 0.773343 0.895364 -vt 0.773343 0.962130 -vt 0.756683 0.958778 -vt 0.492829 0.980006 -vt 0.823317 0.962115 -vt 0.806654 0.958774 -vt 0.939619 0.275179 -vt 0.196590 0.889584 -vt 0.213253 0.892914 -vt 0.213253 0.952993 -vt 0.997375 0.738396 -vt 0.980399 0.738391 -vt 0.980399 0.678261 -vt 0.998736 0.281437 -vt 0.981753 0.281511 -vt 0.998297 0.793765 -vt 0.981320 0.793760 -vt 0.985886 0.382338 -vt 0.983684 0.382377 -vt 0.985527 0.333008 -vt 0.991134 0.300492 -vt 0.987729 0.332970 -vt 1.000000 0.835944 -vt 0.983023 0.835939 -vt 0.985886 0.441081 -vt 0.968951 0.441376 -vt 0.997317 0.025398 -vt 0.980333 0.025473 -vt 0.981753 0.000075 -vt 0.987729 0.500254 -vt 0.970794 0.500550 -vt 0.996368 0.069721 -vt 0.979385 0.069796 -vt 0.991134 0.550850 -vt 0.974199 0.551146 -vt 0.417017 0.940788 -vt 0.417187 0.957054 -vt 0.391250 0.940354 -vt 0.309711 0.957673 -vt 0.312755 0.976426 -vt 0.299773 0.976426 -vt 0.996368 0.186296 -vt 0.979052 0.126296 -vt 0.997375 0.678266 -vt 0.981320 0.622524 -vt 0.120072 0.000000 -vt 0.179701 0.000055 -vt 0.173075 0.033626 -vt 0.235298 0.022713 -vt 0.215923 0.051557 -vt 0.277462 0.065257 -vt 0.248717 0.084647 -vt 0.299773 0.121209 -vt 0.266465 0.127857 -vt 0.299773 0.181320 -vt 0.266465 0.174610 -vt 0.276954 0.236834 -vt 0.248717 0.217788 -vt 0.902451 0.957600 -vt 0.902451 0.979843 -vt 0.890529 0.973178 -vt 0.234791 0.279300 -vt 0.179701 0.302253 -vt 0.173075 0.268669 -vt 0.120072 0.302198 -vt 0.127210 0.268227 -vt 0.064983 0.279144 -vt 0.084363 0.250296 -vt 0.022819 0.236600 -vt 0.051423 0.217320 -vt 0.000000 0.181044 -vt 0.033675 0.174109 -vt 0.000000 0.120933 -vt 0.033308 0.127643 -vt 0.417187 0.927513 -vt 0.064983 0.022953 -vt 0.083850 0.051436 -vt 0.051056 0.084465 -vt 0.126698 0.033584 -vt 0.975821 0.790345 -vt 0.979960 0.751978 -vt 0.740025 0.676437 -vt 0.557472 0.799529 -vt 0.506947 0.723261 -vt 0.874812 0.557819 -vt 0.891765 0.556782 -vt 0.891765 0.576567 -vt 0.487424 0.807226 -vt 0.493695 0.807116 -vt 0.493695 0.852805 -vt 0.033898 0.943043 -vt 0.050876 0.942599 -vt 0.050876 0.977081 -vt 0.955678 0.579057 -vt 0.945014 0.532859 -vt 0.961949 0.533099 -vt 0.353016 0.932157 -vt 0.369999 0.931980 -vt 0.369999 0.975926 -vt 0.016982 0.942599 -vt 0.033898 0.943459 -vt 0.033898 0.982902 -vt 0.443376 0.966253 -vt 0.426392 0.966232 -vt 0.322449 0.950361 -vt 0.339412 0.949682 -vt 0.339412 0.983043 -vt 0.016982 0.985223 -vt 0.000000 0.984998 -vt 0.000000 0.942599 -vt 0.386973 0.975338 -vt 0.369999 0.975617 -vt 0.369999 0.932260 -vt 0.421542 0.957054 -vt 0.423594 0.957054 -vt 0.424562 0.988664 -vt 0.945014 0.579633 -vt 0.928037 0.579627 -vt 0.928037 0.532859 -vt 0.506947 0.612203 -vt 0.504916 0.612455 -vt 0.504916 0.587053 -vt 0.196290 0.956339 -vt 0.213253 0.957040 -vt 0.213253 0.989873 -vt 0.156795 0.976760 -vt 0.139821 0.976467 -vt 0.139821 0.933396 -vt 0.035664 0.102468 -vt 0.857829 0.556856 -vt 0.874812 0.556782 -vt 0.874812 0.577936 -vt 0.914212 0.278080 -vt 0.931183 0.278549 -vt 0.931183 0.296257 -vt 0.627464 0.020756 -vt 0.734317 0.289180 -vt 0.719052 0.274270 -vt 0.734408 0.273970 -vt 0.716184 0.340210 -vt 0.719830 0.304108 -vt 0.743599 0.318533 -vt 0.982056 0.604005 -vt 0.982371 0.596090 -vt 0.991088 0.591770 -vt 0.246411 0.233091 -vt 0.230903 0.254689 -vt 0.215923 0.250817 -vt 0.425186 0.949777 -vt 0.417187 0.931291 -vt 0.425186 0.927513 -vt 0.931512 0.294107 -vt 0.931183 0.279400 -vt 0.946482 0.278080 -vt 0.821185 0.976999 -vt 0.806654 0.978390 -vt 0.806654 0.963506 -vt 0.492092 0.806922 -vt 0.487424 0.786306 -vt 0.506742 0.785962 -vt 0.879512 0.298153 -vt 0.879512 0.278700 -vt 0.897072 0.278080 -vt 0.776524 0.295426 -vt 0.755632 0.295373 -vt 0.914212 0.279316 -vt 0.914212 0.297486 -vt 0.897477 0.293550 -vt 0.918853 0.957600 -vt 0.930192 0.958099 -vt 0.931937 0.974837 -vt 0.839811 0.280457 -vt 0.839811 0.300492 -vt 0.822888 0.299097 -vt 0.879512 0.279264 -vt 0.879512 0.299062 -vt 0.862624 0.295787 -vt 0.755632 0.273970 -vt 0.734408 0.295387 -vt 0.802057 0.273970 -vt 0.802057 0.297458 -vt 0.793794 0.292483 -vt 0.996035 0.126221 -vt 0.987097 0.098864 -vt 0.946481 0.289050 -vt 0.946481 0.279250 -vt 0.961792 0.278080 -vt 0.713085 0.295657 -vt 0.917169 0.975013 -vt 0.902451 0.973796 -vt 0.902451 0.963996 -vt 0.084159 0.882028 -vt 0.106251 0.891104 -vt 0.112704 0.945081 -vt 0.093149 0.854413 -vt 0.327532 0.948583 -vt 0.322449 0.914524 -vt 0.346546 0.916270 -vt 0.961950 0.561796 -vt 0.976179 0.552895 -vt 0.976179 0.579146 -vt 0.767480 0.962130 -vt 0.767480 0.976789 -vt 0.756683 0.968410 -vt 0.948979 0.368026 -vt 0.959236 0.411935 -vt 0.911383 0.429697 -vt 0.016752 0.882433 -vt 0.011214 0.920519 -vt 0.322449 0.957673 -vt 0.299773 0.948081 -vt 0.469673 0.860778 -vt 0.492792 0.870090 -vt 0.562730 0.817416 -vt 0.604162 0.897660 -vt 0.562730 0.927391 -vt 0.132529 0.838587 -vt 0.125882 0.895746 -vt 0.112704 0.835433 -vt 0.113351 0.895746 -vt 0.806023 0.290680 -vt 0.822756 0.290680 -vt 0.822606 0.295953 -vt 0.628624 0.298763 -vt 0.625133 0.279742 -vt 0.642685 0.276076 -vt 0.165995 0.911939 -vt 0.196590 0.926280 -vt 0.457622 0.919506 -vt 0.457622 0.969372 -vt 0.443376 0.924330 -vt 0.776760 0.280166 -vt 0.793643 0.276227 -vt 0.805387 0.300492 -vt 0.805873 0.295953 -vt 0.793743 0.280166 -vt 0.793794 0.285188 -vt 0.892359 0.560742 -vt 0.893546 0.556782 -vt 0.909566 0.556782 -vt 0.776811 0.285188 -vt 0.793788 0.290528 -vt 0.891765 0.565775 -vt 0.908380 0.560742 -vt 0.776804 0.290528 -vt 0.793725 0.295373 -vt 0.907785 0.565775 -vt 0.907872 0.571114 -vt 0.776632 0.298986 -vt 0.776742 0.295373 -vt 0.892607 0.575945 -vt 0.891851 0.571114 -vt 0.805279 0.281129 -vt 0.822012 0.281129 -vt 0.822547 0.285474 -vt 0.804499 0.278305 -vt 0.821232 0.278305 -vt 0.298708 0.620718 -vt 0.295146 0.622037 -vt 0.295146 0.605891 -vt 0.805814 0.285474 -vt 0.806072 0.541651 -vt 0.857021 0.541295 -vt 0.857829 0.562849 -vt 0.134387 0.316872 -vt 0.299494 0.483426 -vt 0.146845 0.593342 -vt 0.853977 0.582283 -vt 0.883234 0.597618 -vt 0.959425 0.999327 -vt 0.948642 0.957654 -vt 0.959425 0.957480 -vt 0.916607 0.532840 -vt 0.926597 0.575159 -vt 0.911383 0.575159 -vt 0.503524 0.704309 -vt 0.503524 0.785962 -vt 0.487424 0.748365 -vt 0.799924 0.366066 -vt 0.799701 0.372713 -vt 0.764168 0.380778 -vt 0.616628 0.078130 -vt 0.642847 0.064599 -vt 0.849114 0.503598 -vt 0.805506 0.513308 -vt 0.805658 0.499283 -vt 0.991435 0.880775 -vt 0.991435 0.927096 -vt 0.980399 0.922854 -vt 0.322584 0.236807 -vt 0.492337 0.020491 -vt 0.844528 0.526030 -vt 0.140675 0.842449 -vt 0.195166 0.868398 -vt 0.142439 0.889319 -vt 0.527537 0.551831 -vt 0.578532 0.553678 -vt 0.882043 0.832840 -vt 0.882043 0.914557 -vt 0.869673 0.894041 -vt 0.504590 0.668577 -vt 0.500302 0.606584 -vt 0.504590 0.586801 -vt 0.500302 0.586801 -vt 0.500302 0.704309 -vt 0.487424 0.656182 -vt 0.294955 0.930668 -vt 0.283967 0.860504 -vt 0.294955 0.812717 -vt 0.351035 0.995061 -vt 0.339412 0.995061 -vt 0.346923 0.949682 -vt 0.435488 0.586801 -vt 0.487424 0.597242 -vt 0.470974 0.634117 -vt 0.948642 0.999297 -vt 0.936722 0.974548 -vt 0.948642 0.957480 -vt 0.739461 0.817416 -vt 0.739461 0.878743 -vt 0.733929 0.858098 -vt 0.980399 0.876931 -vt 0.991874 0.835944 -vt 0.991874 0.880775 -vt 0.623244 0.273970 -vt 0.623244 0.302194 -vt 0.602068 0.275171 -vt 0.599445 0.291588 -vt 0.841413 0.040271 -vt 0.877009 0.205437 -vt 0.921726 0.019310 -vt 0.943289 0.205437 -vt 0.860454 0.556765 -vt 0.871175 0.547459 -vt 0.298807 0.930668 -vt 0.298807 0.971110 -vt 0.283967 0.970729 -vt 0.408369 0.635062 -vt 0.433639 0.640898 -vt 0.465743 0.645842 -vt 0.442119 0.698798 -vt 0.139821 0.782147 -vt 0.110332 0.789266 -vt 0.906292 0.275183 -vt 0.139821 0.780925 -vt 0.743027 0.895364 -vt 0.155084 0.809978 -vt 0.225469 0.836356 -vt 0.225557 0.842714 -vt 0.224954 0.799276 -vt 0.716889 0.526080 -vt 0.739284 0.581891 -vt 0.720886 0.582283 -vt 0.783375 0.580952 -vt 0.756406 0.581526 -vt 0.143222 0.604572 -vt 0.227321 0.623281 -vt 0.178832 0.604683 -vt 0.205869 0.604768 -vt 0.161667 0.604630 -vt 0.521443 0.302314 -vt 0.506947 0.473897 -vt 0.302775 0.586801 -vt 0.507972 0.535418 -vt 0.507593 0.512697 -vt 0.507440 0.503512 -vt 0.507866 0.529060 -vt 0.507249 0.491981 -vt 0.426392 0.860778 -vt 0.601493 0.221959 -vt 0.604277 0.263330 -vt 0.968646 0.515290 -vt 0.506947 0.817416 -vt 0.442119 0.749422 -vt 0.087577 0.826535 -vt 0.454577 0.861912 -vt 0.862433 0.277126 -vt 0.880156 0.983071 -vt 0.827944 0.982545 -vt 0.987749 0.995985 -vt 0.283967 0.933687 -vt 0.283967 0.812717 -vt 0.283967 0.878351 -vt 0.283967 0.906846 -vt 0.193519 0.926280 -vt 0.618115 0.817416 -vt 0.353016 0.863699 -vt 0.906292 0.276867 -vt 0.855934 0.486793 -vt 0.909680 0.514603 -vt 0.883234 0.832315 -vt 0.880076 0.643217 -vt 0.881353 0.614416 -vt 0.880761 0.627770 -vt 0.949514 0.751978 -vt 0.230125 0.809056 -vt 0.228581 0.753277 -vt 0.229049 0.770179 -vt 0.837950 0.204984 -vt 0.253922 0.605074 -vt 0.667807 0.817815 -vt 0.949514 0.631068 -vt 0.968231 0.579665 -vt 0.936722 0.957600 -vt 0.883234 0.957600 -vt 0.936722 0.855793 -vt 0.959498 0.791828 -vt 0.953330 0.809153 -vt 0.077528 1.000000 -vt 0.944440 0.582283 -vt 0.717064 0.969098 -vt 0.857944 0.277942 -vt 0.506352 0.668577 -vt 0.670535 0.273970 -vt 0.972919 0.271896 -vt 0.112704 0.899091 -vt 0.459520 0.980049 -vt 0.928037 0.466050 -vt 0.944687 0.532840 -vt 0.492829 0.913240 -vt 0.823317 0.895364 -vt 0.196590 0.956339 -vt 0.974199 0.300787 -vt 0.998736 0.000000 -vt 0.998297 0.622529 -vt 0.022819 0.065419 -vt 0.977867 0.790345 -vt 0.506947 0.676493 -vt 0.524689 0.633280 -vt 0.557472 0.600202 -vt 0.600305 0.582294 -vt 0.646668 0.582283 -vt 0.689501 0.600170 -vt 0.722283 0.633233 -vt 0.740025 0.723206 -vt 0.722283 0.766419 -vt 0.689500 0.799497 -vt 0.646667 0.817405 -vt 0.600305 0.817416 -vt 0.524689 0.766466 -vt 0.874812 0.577605 -vt 0.487424 0.852914 -vt 0.033898 0.977524 -vt 0.961950 0.579146 -vt 0.353016 0.976102 -vt 0.016982 0.982042 -vt 0.443376 0.919527 -vt 0.322449 0.983722 -vt 0.016982 0.942825 -vt 0.386973 0.931980 -vt 0.407578 0.988664 -vt 0.506947 0.586801 -vt 0.196290 0.989172 -vt 0.156795 0.933689 -vt 0.006826 0.104326 -vt 0.018044 0.077034 -vt 0.857829 0.578011 -vt 0.914212 0.295788 -vt 0.601493 0.036087 -vt 0.604402 0.008341 -vt 0.605276 0.000000 -vt 0.603479 0.017143 -vt 0.804499 0.302305 -vt 0.802766 0.319455 -vt 0.800852 0.338406 -vt 0.803656 0.310649 -vt 0.981502 0.617956 -vt 0.982734 0.586953 -vt 0.983023 0.579665 -vt 1.000000 0.579671 -vt 0.994052 0.610534 -vt 0.260796 0.253108 -vt 0.253009 0.260951 -vt 0.269785 0.244055 -vt 0.239284 0.274774 -vt 0.946482 0.297512 -vt 0.821185 0.962115 -vt 0.506742 0.807116 -vt 0.897072 0.297533 -vt 0.917169 0.974837 -vt 0.822756 0.277942 -vt 0.979285 0.086698 -vt 0.979121 0.114474 -vt 0.961792 0.295150 -vt 0.957155 0.295505 -vt 0.734321 0.295657 -vt 0.713073 0.274270 -vt 0.913025 0.957600 -vt 0.917169 0.957943 -vt 0.077528 0.929698 -vt 0.346546 0.949682 -vt 0.968951 0.466050 -vt 0.968951 0.419821 -vt 0.968951 0.336844 -vt 0.968951 0.379058 -vt 0.968951 0.398162 -vt 0.968951 0.355527 -vt 0.049344 0.927103 -vt 0.052953 0.942599 -vt 0.017398 0.835433 -vt 0.027989 0.835433 -vt 0.036921 0.873776 -vt 0.041106 0.891741 -vt 0.044797 0.907586 -vt 0.304876 0.914578 -vt 0.492911 0.913240 -vt 0.618115 0.966717 -vt 0.618115 0.910556 -vt 0.618115 0.856743 -vt 0.618115 0.889436 -vt 0.646176 0.279878 -vt 0.648065 0.284827 -vt 0.648065 0.290172 -vt 0.646176 0.295097 -vt 0.642685 0.298854 -vt 0.638123 0.300870 -vt 0.633186 0.300838 -vt 0.625133 0.294962 -vt 0.623244 0.290012 -vt 0.623244 0.284668 -vt 0.628624 0.275986 -vt 0.633186 0.273970 -vt 0.638123 0.274002 -vt 0.822121 0.300492 -vt 0.793615 0.298986 -vt 0.908627 0.575945 -vt 0.298708 0.604572 -vt 0.827449 0.582144 -vt 0.807594 0.582283 -vt 0.136079 0.604567 -vt 0.119960 0.604572 -vt 0.072579 0.571842 -vt 0.045143 0.561623 -vt 0.022798 0.539076 -vt 0.091472 0.592671 -vt 0.179533 0.604552 -vt 0.154725 0.604560 -vt 0.000000 0.483530 -vt 0.000000 0.423399 -vt 0.022798 0.367837 -vt 0.064922 0.325304 -vt 0.119960 0.302273 -vt 0.130015 0.302270 -vt 0.142867 0.302265 -vt 0.179533 0.302253 -vt 0.234572 0.325245 -vt 0.276696 0.367749 -vt 0.299494 0.423295 -vt 0.276696 0.538988 -vt 0.234572 0.581521 -vt 0.834176 0.582487 -vt 0.761774 0.357916 -vt 0.799397 0.381779 -vt 0.800602 0.345857 -vt 0.600212 0.070389 -vt 0.600460 0.063743 -vt 0.599874 0.079454 -vt 0.601215 0.043537 -vt 0.534484 0.022998 -vt 0.576634 0.065507 -vt 0.515090 0.025297 -vt 0.599445 0.121056 -vt 0.599445 0.181187 -vt 0.576634 0.236747 -vt 0.534484 0.279276 -vt 0.479413 0.302300 -vt 0.419805 0.302314 -vt 0.364734 0.279316 -vt 0.299773 0.121127 -vt 0.322584 0.065568 -vt 0.364734 0.023038 -vt 0.419805 0.000014 -vt 0.479413 0.000000 -vt 0.505845 0.011038 -vt 0.490161 0.004488 -vt 0.525468 0.019233 -vt 0.511736 0.013498 -vt 0.805197 0.497786 -vt 0.805894 0.532728 -vt 0.805622 0.519138 -vt 0.227321 0.889584 -vt 0.226979 0.880495 -vt 0.225911 0.852115 -vt 0.509864 0.582283 -vt 0.508351 0.544818 -vt 0.509497 0.573194 -vt 0.434095 0.627569 -vt 0.845762 0.000000 -vt 0.858420 0.001116 -vt 0.849924 0.000367 -vt 0.936491 0.000000 -vt 0.883467 0.000000 -vt 0.929429 0.000000 -vt 0.915012 0.000000 -vt 0.911096 0.549663 -vt 0.911383 0.556782 -vt 0.910728 0.540564 -vt 0.431732 0.696710 -vt 0.139821 0.795002 -vt 0.139821 0.835433 -vt 0.139821 0.724085 -vn 0.000000 1.000000 0.000000 -vn 0.880600 -0.440300 0.175200 -vn 0.980800 0.000000 -0.195100 -vn -0.831500 0.000000 0.555600 -vn 0.831500 0.000000 -0.555600 -vn -0.555600 0.000000 0.831500 -vn 0.555600 0.000000 -0.831500 -vn -0.195100 -0.000000 0.980800 -vn 0.564200 -0.042700 -0.824500 -vn 0.820200 -0.046700 -0.570200 -vn -0.085700 -0.149400 0.985100 -vn -0.555600 0.000000 -0.831500 -vn 0.555600 0.000000 0.831500 -vn -0.831500 0.000000 -0.555600 -vn 0.831500 0.000000 0.555600 -vn -0.980800 -0.000000 -0.195100 -vn 0.980800 0.000000 0.195100 -vn -0.980800 0.000000 0.195100 -vn -0.880600 -0.440300 0.175200 -vn 0.880600 -0.440300 -0.175200 -vn -0.746500 -0.440300 0.498800 -vn 0.746500 -0.440300 -0.498800 -vn -0.498800 -0.440300 0.746500 -vn 0.498800 -0.440300 -0.746500 -vn -0.175200 -0.440300 0.880600 -vn -0.806300 -0.169800 -0.566500 -vn -0.566700 -0.145600 -0.811000 -vn 0.440800 -0.192900 0.876700 -vn -0.498800 -0.440300 -0.746500 -vn 0.498800 -0.440300 0.746500 -vn -0.746500 -0.440300 -0.498800 -vn 0.746500 -0.440300 0.498800 -vn -0.880600 -0.440300 -0.175200 -vn -0.298600 -0.843300 0.446800 -vn -0.195100 0.000000 -0.980800 -vn 0.195100 -0.000000 -0.980800 -vn 0.195100 -0.000000 0.980800 -vn 0.000000 -1.000000 0.000000 -vn -0.104800 -0.843300 0.527100 -vn 0.153300 -0.233500 -0.960200 -vn 0.030200 -0.995500 -0.090300 -vn 0.104800 -0.843300 0.527100 -vn -0.298600 -0.843300 -0.446800 -vn 0.298600 -0.843300 0.446800 -vn -0.446800 -0.843300 -0.298600 -vn 0.446800 -0.843300 0.298600 -vn -0.527100 -0.843300 -0.104800 -vn 0.527100 -0.843300 0.104800 -vn -0.527100 -0.843300 0.104800 -vn 0.527100 -0.843300 -0.104800 -vn -0.446800 -0.843300 0.298600 -vn 0.446800 -0.843300 -0.298600 -vn 0.364700 0.057400 0.929400 -vn -0.996100 -0.087800 0.000000 -vn 0.537400 -0.843300 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.176100 -0.865900 -0.468200 -vn 0.000000 -0.000000 -1.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.479900 -0.179300 -0.858800 -vn 0.551100 -0.364600 -0.750600 -vn 0.936900 0.142600 0.319300 -vn -0.880000 -0.074200 0.469200 -vn 0.081700 0.156300 -0.984300 -vn 0.146700 -0.352500 -0.924200 -vn -0.667100 0.386400 -0.636900 -vn -0.656500 0.371400 0.656500 -vn 0.656500 0.371400 0.656500 -vn -0.672100 -0.310700 0.672100 -vn 0.932900 -0.302400 -0.195600 -vn 0.706600 -0.036500 0.706600 -vn -0.640900 -0.035600 0.766800 -vn 0.706600 -0.036500 -0.706600 -vn -0.364800 -0.295100 0.883100 -vn -0.640900 -0.035600 -0.766800 -vn 0.766800 -0.035600 0.640900 -vn -0.766800 -0.035600 0.640900 -vn 0.640900 -0.035600 -0.766800 -vn -0.678500 -0.356100 -0.642600 -vn 0.563200 -0.025100 -0.826000 -vn -0.156000 -0.280300 0.947200 -vn 0.555600 0.297200 0.776600 -vn -0.175400 0.093500 -0.980000 -vn 0.194200 0.097700 -0.976100 -vn 0.186700 -0.290800 0.938400 -vn -0.512700 0.085500 -0.854300 -vn 0.539500 -0.238900 0.807400 -vn -0.798800 0.068400 -0.597700 -vn 0.822900 -0.143000 0.549900 -vn -0.975200 0.030400 -0.219300 -vn 0.979900 -0.042000 0.194900 -vn -0.974200 -0.038400 0.222200 -vn 0.980200 0.033700 -0.195000 -vn -0.781800 -0.131300 0.609600 -vn 0.829000 0.076800 -0.553900 -vn -0.477800 -0.221100 0.850200 -vn 0.553100 0.094700 -0.827700 -vn 0.179600 0.869200 0.460700 -vn -0.434300 0.615300 -0.657900 -vn -0.150600 0.906500 -0.394300 -vn -0.079100 0.914100 -0.397600 -vn -0.261100 0.542300 0.798600 -vn 0.472500 0.855600 -0.211400 -vn 0.079800 0.912500 -0.401100 -vn -0.059600 0.952100 -0.299800 -vn -0.169800 0.952100 -0.254100 -vn 0.342800 0.826000 -0.447400 -vn 0.175200 -0.440300 -0.880600 -vn -0.392000 0.826600 -0.403900 -vn -0.285000 0.570600 -0.770100 -vn 0.000000 0.017700 -0.999800 -vn 0.000000 0.013500 0.999900 -vn 0.000000 0.975500 -0.219900 -vn -0.972300 0.114300 -0.204000 -vn 0.204000 0.114300 -0.972300 -vn 0.972300 0.114300 0.204000 -vn -0.204000 0.114300 0.972300 -vn -0.123800 0.592800 0.795800 -vn -0.785700 -0.618600 -0.000000 -vn -0.898400 -0.439100 0.000800 -vn 0.999400 -0.022300 -0.026100 -vn 0.277600 -0.954000 -0.113100 -vn 0.358000 -0.116400 0.926400 -vn 0.000000 -0.843300 0.537400 -vn -0.341200 -0.923000 0.177900 -vn 0.445300 -0.894300 -0.043500 -vn 0.439800 -0.896900 -0.047000 -vn -0.831500 -0.198600 -0.518900 -vn 0.000000 -0.934000 0.357400 -vn -0.874600 0.067600 -0.480200 -vn 0.549700 -0.731700 0.403100 -vn 0.831500 0.198600 0.518900 -vn -0.980800 -0.069700 -0.182200 -vn 0.980800 0.069700 0.182200 -vn -0.980800 0.069700 0.182200 -vn 0.980800 -0.069700 -0.182200 -vn -0.831500 0.198600 0.518900 -vn 0.831500 -0.198600 -0.518900 -vn -0.555600 0.297200 0.776600 -vn 0.555600 -0.297200 -0.776600 -vn -0.195100 0.350500 0.916000 -vn -0.195100 -0.350500 -0.916000 -vn 0.195100 -0.350500 -0.916000 -vn 0.195100 0.350500 0.916000 -vn -0.555600 -0.297200 -0.776600 -vn 0.683000 -0.111900 -0.721800 -vn -0.819800 -0.219600 -0.529000 -vn -0.726500 -0.205800 -0.655600 -vn -0.175200 -0.440300 -0.880600 -vn 0.899700 0.193900 0.391000 -vn -0.059500 0.130800 -0.989600 -vn 0.175200 -0.440300 0.880600 -vn -0.714800 -0.079800 0.694800 -vn 0.551900 -0.102700 0.827600 -vn -0.928500 -0.007900 0.371200 -vn 0.878600 -0.159400 0.450100 -vn -0.382200 0.907000 0.176600 -vn 0.104800 -0.843300 -0.527100 -vn -0.899000 -0.435200 0.049500 -vn -0.729900 0.681500 0.053300 -vn -0.741600 -0.386900 0.548000 -vn -0.984700 -0.167400 0.048000 -vn -0.985600 -0.167500 0.021100 -vn 0.672100 -0.310700 0.672100 -vn -0.706600 -0.036500 -0.706600 -vn 0.924400 -0.206900 0.320500 -vn -0.104800 -0.843300 -0.527100 -vn 0.298600 -0.843300 -0.446800 -vn 0.183600 0.023800 -0.982700 -vn 0.030600 -0.997200 -0.068700 -vn -0.996000 -0.089200 0.002000 -vn -0.656500 0.371400 -0.656500 -vn -0.637500 0.432600 -0.637500 -vn -0.664800 -0.340700 -0.664800 -vn -0.672100 -0.310700 -0.672100 -vn 0.718500 0.165800 -0.675500 -vn -0.186700 -0.290800 0.938400 -vn -0.194200 0.097700 -0.976100 -vn 0.175400 0.093500 -0.980000 -vn 0.156000 -0.280300 0.947200 -vn -0.553100 0.094700 -0.827700 -vn 0.477800 -0.221100 0.850200 -vn -0.829000 0.076800 -0.553900 -vn 0.781800 -0.131300 0.609600 -vn -0.980200 0.033700 -0.195000 -vn 0.974200 -0.038400 0.222200 -vn -0.979900 -0.042000 0.194900 -vn 0.975200 0.030400 -0.219300 -vn -0.822900 -0.143000 0.549900 -vn 0.798800 0.068400 -0.597700 -vn -0.539500 -0.238900 0.807400 -vn 0.512700 0.085500 -0.854300 -vn -0.011800 0.906500 -0.421900 -vn -0.163100 0.903200 -0.397000 -vn -0.397400 0.917600 -0.011100 -vn -0.993500 -0.114300 0.000000 -vn 0.000000 -0.114300 -0.993500 -vn 0.993500 -0.114300 0.000000 -vn 0.000000 -0.114300 0.993500 -vn -0.897200 -0.441600 0.003900 -vn 0.984000 -0.153200 -0.091500 -vn -0.273200 -0.938000 0.213500 -vn 0.000000 -0.933900 0.357400 -s off -f 15/1/1 205/2/1 204/3/1 -f 29/4/2 28/5/2 44/6/2 -f 13/7/3 29/8/3 30/9/3 -f 6/10/4 22/11/4 23/12/4 -f 14/13/5 30/9/5 31/14/5 -f 7/15/6 23/12/6 24/16/6 -f 15/17/7 31/14/7 32/18/7 -f 365/19/8 364/20/8 357/21/8 -f 349/22/9 350/23/9 338/24/9 -f 341/25/10 270/26/10 354/27/10 -f 348/28/11 346/29/11 367/30/11 -f 2/31/12 17/32/12 19/33/12 -f 10/34/13 26/35/13 27/36/13 -f 3/37/14 19/33/14 20/38/14 -f 11/39/15 27/36/15 28/40/15 -f 20/38/16 372/41/16 383/42/16 -f 12/43/17 28/40/17 29/8/17 -f 6/10/18 382/44/18 22/11/18 -f 33/45/12 49/46/12 51/47/12 -f 370/48/19 37/49/19 38/50/19 -f 30/51/20 29/4/20 45/52/20 -f 22/53/21 38/50/21 39/54/21 -f 30/51/22 46/55/22 47/56/22 -f 23/57/23 39/54/23 40/58/23 -f 31/59/24 47/56/24 48/60/24 -f 358/61/25 369/62/25 41/63/25 -f 349/64/26 337/65/26 350/66/26 -f 341/67/27 354/68/27 269/69/27 -f 348/28/28 367/30/28 343/70/28 -f 17/71/29 33/45/29 35/72/29 -f 26/73/30 42/74/30 43/75/30 -f 19/76/31 35/72/31 36/77/31 -f 27/78/32 43/79/32 44/6/32 -f 36/77/33 37/80/33 373/81/33 -f 55/82/34 71/83/34 72/84/34 -f 42/85/13 58/86/13 59/87/13 -f 35/72/14 51/47/14 52/88/14 -f 43/79/15 59/87/15 60/89/15 -f 36/77/16 52/88/16 53/90/16 -f 44/6/17 60/89/17 61/91/17 -f 37/49/18 53/92/18 54/93/18 -f 46/55/3 45/52/3 61/91/3 -f 38/50/4 54/93/4 55/94/4 -f 46/55/5 62/95/5 63/96/5 -f 39/54/6 55/94/6 56/97/6 -f 47/56/7 63/96/7 64/98/7 -f 40/58/8 56/97/8 57/99/8 -f 34/100/35 50/101/35 49/46/35 -f 48/102/36 64/103/36 50/101/36 -f 41/63/37 57/99/37 58/104/37 -f 73/105/38 167/106/38 168/107/38 -f 56/108/39 72/84/39 73/109/39 -f 393/110/40 390/111/40 389/112/40 -f 389/113/41 391/114/41 392/115/41 -f 58/116/42 57/117/42 73/109/42 -f 49/118/43 65/119/43 67/120/43 -f 59/121/44 58/122/44 74/123/44 -f 51/124/45 67/120/45 68/125/45 -f 60/126/46 59/121/46 75/127/46 -f 52/128/47 68/125/47 69/129/47 -f 60/126/48 76/130/48 77/131/48 -f 53/132/49 69/129/49 70/133/49 -f 62/134/50 61/135/50 77/131/50 -f 54/136/51 70/133/51 71/83/51 -f 62/134/52 78/137/52 79/138/52 -f 306/139/53 299/140/53 307/141/53 -f 105/142/54 106/143/54 298/144/54 -f 303/145/55 304/146/55 104/147/55 -f 85/148/56 98/149/56 97/150/56 -f 306/151/57 307/152/57 300/153/57 -f 88/154/56 99/155/56 100/156/56 -f 87/157/36 100/158/36 94/159/36 -f 90/160/58 101/161/58 102/162/58 -f 91/163/8 311/164/8 85/165/8 -f 91/166/59 92/167/59 103/168/59 -f 88/169/37 82/170/37 93/171/37 -f 81/172/59 94/173/59 93/174/59 -f 89/175/16 102/176/16 96/177/16 -f 83/178/60 96/179/60 95/1/60 -f 344/180/61 266/181/61 345/182/61 -f 352/183/62 334/184/62 335/185/62 -f 347/186/63 361/187/63 368/188/63 -f 116/189/3 118/190/3 117/191/3 -f 118/190/17 120/192/17 119/193/17 -f 120/192/15 122/194/15 121/195/15 -f 122/194/13 124/196/13 123/197/13 -f 387/198/64 394/199/64 380/200/64 -f 126/201/8 128/202/8 127/203/8 -f 128/202/6 130/204/6 129/205/6 -f 130/204/4 132/206/4 131/207/4 -f 132/206/18 134/208/18 133/209/18 -f 134/210/16 136/211/16 135/212/16 -f 136/211/14 138/213/14 137/214/14 -f 347/215/65 368/216/65 360/217/65 -f 140/218/35 110/219/35 339/220/35 -f 138/213/12 140/218/12 139/221/12 -f 335/222/66 333/223/66 352/224/66 -f 144/225/67 314/226/67 152/227/67 -f 384/228/68 108/229/68 146/230/68 -f 142/231/69 141/232/69 147/233/69 -f 153/234/70 317/235/70 107/236/70 -f 385/237/71 379/238/71 386/239/71 -f 151/240/72 149/241/72 150/242/72 -f 149/243/73 151/244/73 314/245/73 -f 316/246/74 143/247/74 153/248/74 -f 385/249/75 386/250/75 378/251/75 -f 377/252/76 145/253/76 153/254/76 -f 108/255/77 317/256/77 316/257/77 -f 142/258/78 148/259/78 156/260/78 -f 141/232/79 155/261/79 147/233/79 -f 157/262/80 315/263/80 313/264/80 -f 144/265/81 152/266/81 150/267/81 -f 166/268/82 182/269/82 183/270/82 -f 65/271/38 159/272/38 161/273/38 -f 74/274/38 168/107/38 169/275/38 -f 67/276/38 161/273/38 162/277/38 -f 75/278/38 169/275/38 170/279/38 -f 68/280/38 162/277/38 163/281/38 -f 76/282/38 170/279/38 171/283/38 -f 69/284/38 163/281/38 164/285/38 -f 78/286/38 77/287/38 171/283/38 -f 70/288/38 164/285/38 165/289/38 -f 79/290/38 78/286/38 172/291/38 -f 72/292/38 71/293/38 165/289/38 -f 80/294/38 79/290/38 173/295/38 -f 72/292/38 166/296/38 167/106/38 -f 65/271/38 66/297/38 160/298/38 -f 80/294/38 174/299/38 160/298/38 -f 185/300/83 184/301/83 326/302/83 -f 160/303/84 176/304/84 175/305/84 -f 160/303/85 174/306/85 190/307/85 -f 168/308/86 167/309/86 183/310/86 -f 159/311/87 175/305/87 177/312/87 -f 169/313/88 168/308/88 184/314/88 -f 161/315/89 177/312/89 178/316/89 -f 170/317/90 169/318/90 185/319/90 -f 162/320/91 178/316/91 179/321/91 -f 171/322/92 170/317/92 186/323/92 -f 163/324/93 179/325/93 180/326/93 -f 172/327/94 171/322/94 187/328/94 -f 164/329/95 180/326/95 181/330/95 -f 173/331/96 172/327/96 188/332/96 -f 165/333/97 181/330/97 182/269/97 -f 174/334/98 173/331/98 189/335/98 -f 205/336/5 221/337/5 220/338/5 -f 7/339/1 8/340/1 198/341/1 -f 15/342/1 16/343/1 206/344/1 -f 9/345/1 199/346/1 198/347/1 -f 1/348/1 2/349/1 191/350/1 -f 1/351/1 192/352/1 206/353/1 -f 9/354/1 10/355/1 200/356/1 -f 3/357/1 193/358/1 191/359/1 -f 11/360/1 201/361/1 200/362/1 -f 4/363/1 194/364/1 193/365/1 -f 12/366/1 202/367/1 201/368/1 -f 4/369/1 5/370/1 195/371/1 -f 13/372/1 203/362/1 202/361/1 -f 6/373/1 196/374/1 195/341/1 -f 14/375/1 204/3/1 203/2/1 -f 7/376/1 197/377/1 196/378/1 -f 198/379/6 214/380/6 213/381/6 -f 206/382/7 222/383/7 221/337/7 -f 199/384/8 215/385/8 214/380/8 -f 191/386/35 207/387/35 208/388/35 -f 206/389/36 192/390/36 208/388/36 -f 200/391/37 216/392/37 215/385/37 -f 193/393/12 209/394/12 207/387/12 -f 201/395/13 217/396/13 216/397/13 -f 194/398/14 210/399/14 209/394/14 -f 202/400/15 218/401/15 217/396/15 -f 195/402/16 211/403/16 210/399/16 -f 267/404/99 258/405/99 268/406/99 -f 355/407/100 340/408/100 288/409/100 -f 204/410/3 220/338/3 219/411/3 -f 197/412/4 213/381/4 212/413/4 -f 221/414/1 222/415/1 238/416/1 -f 222/415/101 208/417/101 223/418/101 -f 208/417/102 207/419/102 224/420/102 -f 209/421/1 225/422/1 224/420/1 -f 210/423/1 226/424/1 225/422/1 -f 210/423/1 211/425/1 227/426/1 -f 355/427/103 287/428/103 340/429/103 -f 212/430/1 213/431/1 229/432/1 -f 214/433/104 230/434/104 229/432/104 -f 215/435/105 231/436/105 230/434/105 -f 215/435/106 216/437/106 232/438/106 -f 216/437/107 217/439/107 233/440/107 -f 217/439/1 218/441/1 234/442/1 -f 267/404/108 268/406/108 291/443/108 -f 220/444/1 236/445/1 235/446/1 -f 221/414/1 237/447/1 236/445/1 -f 231/448/35 232/253/35 248/449/35 -f 247/450/1 253/451/1 240/452/1 -f 225/453/13 241/454/13 239/455/13 -f 233/456/12 249/457/12 248/458/12 -f 226/459/15 242/460/15 241/461/15 -f 233/462/14 234/463/14 250/464/14 -f 227/465/17 243/466/17 242/467/17 -f 235/468/16 251/469/16 250/470/16 -f 228/471/3 244/472/3 243/146/3 -f 236/473/18 252/474/18 251/475/18 -f 229/476/5 245/477/5 244/478/5 -f 237/479/4 253/480/4 252/481/4 -f 230/482/7 246/483/7 245/484/7 -f 238/485/6 254/486/6 253/487/6 -f 231/488/36 247/489/36 246/490/36 -f 224/491/37 239/492/37 240/493/37 -f 223/494/8 240/495/8 254/496/8 -f 268/497/1 235/446/1 234/442/1 -f 260/498/56 259/499/56 261/500/56 -f 256/501/60 255/502/60 259/503/60 -f 341/504/109 48/102/109 34/100/109 -f 293/505/110 292/506/110 294/507/110 -f 1/508/36 16/509/36 354/510/36 -f 287/511/18 290/512/18 264/513/18 -f 263/514/1 355/515/1 228/516/1 -f 263/517/111 264/518/111 290/519/111 -f 274/520/59 273/521/59 271/522/59 -f 278/523/112 277/524/112 273/525/112 -f 278/526/56 276/527/56 275/528/56 -f 272/529/113 271/530/113 275/531/113 -f 278/301/114 274/532/114 272/533/114 -f 280/534/115 282/535/115 281/536/115 -f 282/537/116 286/538/116 285/539/116 -f 286/540/117 284/541/117 283/542/117 -f 284/543/118 280/544/118 279/545/118 -f 286/546/1 282/533/1 280/547/1 -f 263/548/119 289/549/119 264/550/119 -f 203/551/17 267/552/17 202/400/17 -f 294/553/59 257/554/59 255/555/59 -f 292/506/1 293/505/1 260/556/1 -f 261/557/58 257/558/58 294/559/58 -f 295/560/120 296/561/120 93/562/120 -f 297/563/121 298/144/121 296/561/121 -f 312/564/122 311/565/122 304/566/122 -f 309/567/123 302/568/123 310/569/123 -f 309/570/124 310/571/124 301/572/124 -f 307/573/3 309/574/3 90/575/3 -f 96/478/125 310/576/125 306/577/125 -f 308/565/126 305/578/126 311/579/126 -f 97/360/55 98/580/55 305/581/55 -f 86/582/35 312/583/35 92/584/35 -f 150/585/127 149/586/127 157/587/127 -f 158/588/128 157/587/128 149/586/128 -f 177/589/129 319/590/129 320/591/129 -f 327/592/130 323/593/130 319/594/130 -f 315/595/131 314/376/131 313/596/131 -f 317/597/132 143/598/132 316/599/132 -f 186/600/133 185/300/133 327/601/133 -f 179/602/134 178/603/134 320/591/134 -f 186/600/135 328/604/135 329/605/135 -f 180/606/136 179/607/136 321/608/136 -f 187/609/137 329/605/137 330/610/137 -f 181/611/138 180/606/138 322/612/138 -f 188/613/139 330/610/139 331/614/139 -f 181/611/140 323/615/140 324/616/140 -f 190/617/141 189/618/141 331/614/141 -f 183/619/142 182/620/142 324/616/142 -f 176/621/143 318/622/143 154/623/143 -f 190/624/144 332/625/144 318/622/144 -f 184/626/145 183/627/145 325/628/145 -f 175/629/146 154/623/146 319/590/146 -f 114/630/7 113/631/7 333/632/7 -f 394/633/38 133/634/38 356/635/38 -f 110/219/36 335/636/36 334/637/36 -f 339/638/147 356/639/147 111/640/147 -f 339/641/148 351/642/148 356/643/148 -f 344/644/149 345/645/149 265/646/149 -f 266/647/35 337/648/35 349/649/35 -f 350/650/150 344/651/150 33/45/150 -f 359/652/151 353/653/151 363/654/151 -f 359/655/152 363/656/152 336/657/152 -f 128/658/1 126/423/1 363/659/1 -f 347/660/5 353/653/5 359/652/5 -f 9/661/37 367/662/37 10/663/37 -f 348/664/153 41/63/153 42/665/153 -f 357/666/154 358/667/154 342/668/154 -f 357/669/155 364/670/155 358/671/155 -f 362/672/156 369/673/156 365/674/156 -f 362/675/157 366/676/157 369/677/157 -f 377/678/158 376/679/158 384/680/158 -f 50/681/159 64/682/159 392/683/159 -f 382/684/160 375/685/160 383/686/160 -f 382/687/161 383/688/161 374/689/161 -f 377/690/162 384/691/162 21/692/162 -f 370/693/163 371/694/163 373/695/163 -f 372/696/164 373/695/164 371/694/164 -f 142/231/165 385/697/165 141/232/165 -f 147/698/166 386/699/166 148/700/166 -f 124/701/37 126/201/37 387/702/37 -f 387/703/167 381/704/167 394/705/167 -f 49/118/168 389/706/168 65/119/168 -f 390/707/159 393/708/159 80/709/159 -f 79/138/169 393/710/169 388/711/169 -f 14/712/1 15/1/1 204/3/1 -f 45/52/2 29/4/2 44/6/2 -f 14/13/3 13/7/3 30/9/3 -f 7/15/4 6/10/4 23/12/4 -f 15/17/5 14/13/5 31/14/5 -f 8/713/6 7/15/6 24/16/6 -f 16/714/7 15/17/7 32/18/7 -f 8/713/8 24/16/8 362/715/8 -f 342/716/8 25/717/8 357/21/8 -f 24/16/8 366/718/8 362/715/8 -f 357/21/8 25/717/8 9/661/8 -f 9/661/8 8/713/8 362/715/8 -f 362/715/8 365/19/8 357/21/8 -f 357/21/8 9/661/8 362/715/8 -f 3/37/12 2/31/12 19/33/12 -f 11/39/13 10/34/13 27/36/13 -f 4/719/14 3/37/14 20/38/14 -f 12/43/15 11/39/15 28/40/15 -f 375/720/16 5/721/16 383/42/16 -f 4/719/16 20/38/16 383/42/16 -f 372/41/16 371/722/16 383/42/16 -f 383/42/16 5/721/16 4/719/16 -f 371/722/16 374/723/16 383/42/16 -f 13/7/17 12/43/17 29/8/17 -f 6/10/18 5/724/18 382/44/18 -f 370/725/18 22/11/18 382/44/18 -f 374/726/18 371/727/18 382/44/18 -f 5/724/18 375/728/18 382/44/18 -f 382/44/18 371/727/18 370/725/18 -f 35/72/12 33/45/12 51/47/12 -f 38/50/19 22/53/19 370/48/19 -f 370/48/19 373/729/19 37/49/19 -f 46/55/20 30/51/20 45/52/20 -f 23/57/21 22/53/21 39/54/21 -f 31/59/22 30/51/22 47/56/22 -f 24/730/23 23/57/23 40/58/23 -f 32/731/24 31/59/24 48/60/24 -f 41/63/25 25/732/25 358/61/25 -f 358/61/25 364/733/25 365/734/25 -f 25/732/25 342/735/25 358/61/25 -f 366/736/25 24/730/25 369/62/25 -f 40/58/25 41/63/25 369/62/25 -f 358/61/25 365/734/25 369/62/25 -f 369/62/25 24/730/25 40/58/25 -f 19/76/29 17/71/29 35/72/29 -f 27/737/30 26/73/30 43/75/30 -f 20/738/31 19/76/31 36/77/31 -f 28/5/32 27/78/32 44/6/32 -f 373/81/33 372/739/33 36/77/33 -f 20/738/33 36/77/33 372/739/33 -f 56/108/34 55/82/34 72/84/34 -f 43/79/13 42/85/13 59/87/13 -f 36/77/14 35/72/14 52/88/14 -f 44/6/15 43/79/15 60/89/15 -f 37/80/16 36/77/16 53/90/16 -f 45/52/17 44/6/17 61/91/17 -f 38/50/18 37/49/18 54/93/18 -f 62/95/3 46/55/3 61/91/3 -f 39/54/4 38/50/4 55/94/4 -f 47/56/5 46/55/5 63/96/5 -f 40/58/6 39/54/6 56/97/6 -f 48/60/7 47/56/7 64/98/7 -f 41/63/8 40/58/8 57/99/8 -f 33/45/35 34/100/35 49/46/35 -f 34/100/36 48/102/36 50/101/36 -f 42/665/37 41/63/37 58/104/37 -f 74/274/38 73/105/38 168/107/38 -f 57/117/39 56/108/39 73/109/39 -f 388/740/170 393/110/170 389/112/170 -f 388/741/171 389/113/171 392/115/171 -f 74/742/42 58/116/42 73/109/42 -f 51/124/43 49/118/43 67/120/43 -f 75/127/44 59/121/44 74/123/44 -f 52/128/45 51/124/45 68/125/45 -f 76/130/46 60/126/46 75/127/46 -f 53/132/47 52/128/47 69/129/47 -f 61/135/48 60/126/48 77/131/48 -f 54/136/49 53/132/49 70/133/49 -f 78/137/50 62/134/50 77/131/50 -f 55/82/51 54/136/51 71/83/51 -f 63/743/52 62/134/52 79/138/52 -f 297/563/172 105/142/172 298/144/172 -f 103/744/55 303/145/55 104/147/55 -f 86/745/56 85/148/56 97/150/56 -f 87/746/56 88/154/56 100/156/56 -f 81/747/36 87/157/36 94/159/36 -f 89/748/58 90/160/58 102/162/58 -f 98/749/8 85/165/8 311/164/8 -f 91/163/8 104/750/8 304/751/8 -f 311/164/8 305/752/8 98/749/8 -f 91/163/8 304/751/8 311/164/8 -f 104/753/59 91/166/59 103/168/59 -f 99/754/37 88/169/37 93/171/37 -f 82/755/59 81/172/59 93/174/59 -f 83/582/16 89/175/16 96/177/16 -f 84/756/60 83/178/60 95/1/60 -f 115/757/3 116/189/3 117/191/3 -f 117/191/17 118/190/17 119/193/17 -f 119/193/15 120/192/15 121/195/15 -f 121/195/13 122/194/13 123/197/13 -f 125/758/8 126/201/8 127/203/8 -f 127/203/6 128/202/6 129/205/6 -f 129/205/4 130/204/4 131/207/4 -f 131/207/18 132/206/18 133/209/18 -f 133/759/16 134/210/16 135/212/16 -f 135/212/14 136/211/14 137/214/14 -f 111/760/35 139/221/35 339/220/35 -f 110/219/35 109/761/35 339/220/35 -f 339/220/35 139/221/35 140/218/35 -f 109/761/35 351/762/35 339/220/35 -f 137/214/12 138/213/12 139/221/12 -f 151/763/173 152/227/173 314/226/173 -f 144/225/174 313/264/174 314/226/174 -f 146/230/68 145/764/68 384/228/68 -f 384/228/68 376/765/68 107/236/68 -f 145/764/68 21/766/68 384/228/68 -f 384/228/68 107/236/68 108/229/68 -f 148/767/69 142/231/69 147/233/69 -f 108/229/70 107/236/70 317/235/70 -f 153/234/70 143/768/70 317/235/70 -f 152/769/72 151/240/72 150/242/72 -f 314/245/73 315/770/73 149/243/73 -f 158/771/73 149/243/73 315/770/73 -f 153/248/74 145/772/74 316/246/74 -f 146/773/74 316/246/74 145/772/74 -f 153/254/76 107/774/76 377/252/76 -f 377/252/76 21/775/76 145/253/76 -f 107/774/76 376/776/76 377/252/76 -f 146/777/77 108/255/77 316/257/77 -f 313/264/175 144/225/175 157/262/175 -f 157/262/176 158/778/176 315/263/176 -f 157/779/177 144/265/177 150/267/177 -f 167/780/178 166/268/178 183/270/178 -f 67/276/38 65/271/38 161/273/38 -f 75/278/38 74/274/38 169/275/38 -f 68/280/38 67/276/38 162/277/38 -f 76/282/38 75/278/38 170/279/38 -f 69/284/38 68/280/38 163/281/38 -f 77/287/38 76/282/38 171/283/38 -f 70/288/38 69/284/38 164/285/38 -f 172/291/38 78/286/38 171/283/38 -f 71/293/38 70/288/38 165/289/38 -f 173/295/38 79/290/38 172/291/38 -f 166/296/38 72/292/38 165/289/38 -f 174/299/38 80/294/38 173/295/38 -f 73/105/38 72/292/38 167/106/38 -f 159/272/38 65/271/38 160/298/38 -f 66/297/38 80/294/38 160/298/38 -f 327/601/83 185/300/83 326/302/83 -f 159/311/179 160/303/179 175/305/179 -f 176/304/180 160/303/180 190/307/180 -f 184/314/181 168/308/181 183/310/181 -f 161/315/182 159/311/182 177/312/182 -f 185/781/183 169/313/183 184/314/183 -f 162/320/184 161/315/184 178/316/184 -f 186/323/185 170/317/185 185/319/185 -f 163/782/186 162/320/186 179/321/186 -f 187/328/187 171/322/187 186/323/187 -f 164/329/188 163/324/188 180/326/188 -f 188/332/189 172/327/189 187/328/189 -f 165/333/190 164/329/190 181/330/190 -f 189/335/191 173/331/191 188/332/191 -f 166/268/192 165/333/192 182/269/192 -f 190/782/193 174/334/193 189/335/193 -f 204/410/5 205/336/5 220/338/5 -f 197/374/1 7/339/1 198/341/1 -f 205/371/1 15/342/1 206/344/1 -f 8/375/1 9/345/1 198/347/1 -f 192/783/1 1/348/1 191/350/1 -f 16/340/1 1/351/1 206/353/1 -f 199/784/1 9/354/1 200/356/1 -f 2/366/1 3/357/1 191/359/1 -f 10/785/1 11/360/1 200/362/1 -f 3/786/1 4/363/1 193/365/1 -f 11/787/1 12/366/1 201/368/1 -f 194/344/1 4/369/1 195/371/1 -f 12/788/1 13/372/1 202/361/1 -f 5/789/1 6/373/1 195/341/1 -f 13/345/1 14/375/1 203/2/1 -f 6/790/1 7/376/1 196/378/1 -f 197/412/6 198/379/6 213/381/6 -f 205/336/7 206/382/7 221/337/7 -f 198/379/8 199/384/8 214/380/8 -f 192/390/35 191/386/35 208/388/35 -f 222/791/36 206/389/36 208/388/36 -f 199/384/37 200/391/37 215/385/37 -f 191/386/12 193/393/12 207/387/12 -f 200/792/13 201/395/13 216/397/13 -f 193/393/14 194/398/14 209/394/14 -f 201/395/15 202/400/15 217/396/15 -f 194/398/16 195/402/16 210/399/16 -f 203/551/3 204/410/3 219/411/3 -f 196/793/4 197/412/4 212/413/4 -f 237/447/1 221/414/1 238/416/1 -f 238/416/1 222/415/1 223/418/1 -f 223/418/102 208/417/102 224/420/102 -f 207/419/194 209/421/194 224/420/194 -f 209/421/1 210/423/1 225/422/1 -f 226/424/1 210/423/1 227/426/1 -f 228/516/1 212/430/1 229/432/1 -f 213/431/1 214/433/1 229/432/1 -f 214/433/105 215/435/105 230/434/105 -f 231/436/195 215/435/195 232/438/195 -f 232/438/107 216/437/107 233/440/107 -f 233/440/196 217/439/196 234/442/196 -f 219/794/1 220/444/1 235/446/1 -f 220/444/1 221/414/1 236/445/1 -f 247/795/35 231/448/35 248/449/35 -f 240/452/1 239/796/1 241/797/1 -f 241/797/1 242/798/1 243/799/1 -f 243/799/1 244/800/1 247/450/1 -f 245/801/1 246/802/1 247/450/1 -f 247/450/1 248/803/1 249/804/1 -f 249/804/1 250/805/1 247/450/1 -f 251/806/1 252/807/1 253/451/1 -f 253/451/1 254/808/1 240/452/1 -f 240/452/1 241/797/1 247/450/1 -f 244/800/1 245/801/1 247/450/1 -f 247/450/1 250/805/1 251/806/1 -f 251/806/1 253/451/1 247/450/1 -f 241/797/1 243/799/1 247/450/1 -f 224/809/13 225/453/13 239/455/13 -f 232/810/12 233/456/12 248/458/12 -f 225/811/15 226/459/15 241/461/15 -f 249/812/14 233/462/14 250/464/14 -f 226/813/17 227/465/17 242/467/17 -f 234/814/16 235/468/16 250/470/16 -f 227/815/3 228/471/3 243/146/3 -f 235/816/18 236/473/18 251/475/18 -f 228/817/5 229/476/5 244/478/5 -f 236/818/4 237/479/4 252/481/4 -f 229/819/7 230/482/7 245/484/7 -f 237/463/6 238/485/6 253/487/6 -f 230/820/36 231/488/36 246/490/36 -f 223/821/37 224/491/37 240/493/37 -f 238/822/8 223/494/8 254/496/8 -f 234/442/1 218/441/1 291/823/1 -f 268/497/1 258/824/1 235/446/1 -f 234/442/1 291/823/1 268/497/1 -f 258/824/1 219/794/1 235/446/1 -f 262/825/56 260/498/56 261/500/56 -f 260/826/60 256/501/60 259/503/60 -f 34/100/109 18/827/109 341/504/109 -f 341/504/109 269/828/109 32/829/109 -f 18/827/109 270/830/109 341/504/109 -f 32/829/109 48/102/109 341/504/109 -f 16/509/36 32/831/36 354/510/36 -f 270/832/36 18/833/36 354/510/36 -f 32/831/36 269/834/36 354/510/36 -f 354/510/36 18/833/36 1/508/36 -f 196/793/18 212/413/18 288/835/18 -f 289/836/18 211/837/18 195/838/18 -f 196/793/18 288/835/18 340/839/18 -f 264/513/18 289/836/18 195/838/18 -f 195/838/18 196/793/18 340/839/18 -f 340/839/18 287/511/18 264/513/18 -f 264/513/18 195/838/18 340/839/18 -f 227/426/1 211/425/1 263/514/1 -f 263/514/1 290/840/1 287/841/1 -f 211/425/1 289/842/1 263/514/1 -f 288/843/1 212/430/1 355/515/1 -f 228/516/1 227/426/1 263/514/1 -f 263/514/1 287/841/1 355/515/1 -f 355/515/1 212/430/1 228/516/1 -f 272/844/59 274/520/59 271/522/59 -f 274/845/112 278/523/112 273/525/112 -f 277/846/56 278/526/56 275/528/56 -f 276/847/113 272/529/113 275/531/113 -f 276/546/114 278/301/114 272/533/114 -f 279/531/197 280/534/197 281/536/197 -f 281/848/198 282/537/198 285/539/198 -f 285/849/199 286/540/199 283/542/199 -f 283/178/200 284/543/200 279/545/200 -f 284/507/1 286/546/1 280/547/1 -f 218/401/17 202/400/17 291/850/17 -f 203/551/17 219/411/17 258/851/17 -f 267/552/17 291/850/17 202/400/17 -f 203/551/17 258/851/17 267/552/17 -f 255/555/59 256/852/59 293/853/59 -f 293/853/59 294/553/59 255/555/59 -f 256/854/1 260/556/1 293/505/1 -f 262/855/1 292/506/1 260/556/1 -f 294/559/58 292/856/58 261/557/58 -f 262/857/58 261/557/58 292/856/58 -f 94/858/120 295/560/120 93/562/120 -f 295/560/201 297/563/201 296/561/201 -f 303/859/202 312/564/202 304/566/202 -f 101/860/3 90/575/3 301/861/3 -f 84/209/3 95/862/3 307/573/3 -f 307/573/3 299/863/3 302/864/3 -f 95/862/3 300/865/3 307/573/3 -f 309/574/3 301/861/3 90/575/3 -f 90/575/3 84/209/3 307/573/3 -f 307/573/3 302/864/3 309/574/3 -f 300/866/125 95/867/125 306/577/125 -f 96/478/125 102/868/125 310/576/125 -f 101/869/125 301/870/125 102/868/125 -f 310/576/125 302/871/125 306/577/125 -f 306/577/125 95/867/125 96/478/125 -f 302/871/125 299/872/125 306/577/125 -f 102/868/125 301/870/125 310/576/125 -f 312/873/203 308/565/203 311/579/203 -f 308/874/55 97/360/55 305/581/55 -f 103/875/35 92/584/35 303/876/35 -f 86/582/35 97/877/35 312/583/35 -f 312/583/35 303/876/35 92/584/35 -f 97/877/35 308/878/35 312/583/35 -f 178/603/129 177/589/129 320/591/129 -f 319/594/204 154/879/204 318/880/204 -f 318/880/204 332/881/204 319/594/204 -f 331/882/130 330/883/130 327/592/130 -f 329/884/130 328/885/130 327/592/130 -f 327/592/204 326/886/204 325/887/204 -f 325/887/204 324/888/204 327/592/204 -f 323/593/204 322/889/204 319/594/204 -f 321/890/204 320/891/204 319/594/204 -f 319/594/204 332/881/204 331/882/204 -f 330/883/204 329/884/204 327/592/204 -f 327/592/204 324/888/204 323/593/204 -f 322/889/130 321/890/130 319/594/130 -f 319/594/130 331/882/130 327/592/130 -f 328/604/133 186/600/133 327/601/133 -f 321/892/134 179/602/134 320/591/134 -f 187/609/135 186/600/135 329/605/135 -f 322/612/136 180/606/136 321/608/136 -f 188/613/137 187/609/137 330/610/137 -f 323/615/138 181/611/138 322/612/138 -f 189/618/139 188/613/139 331/614/139 -f 182/620/140 181/611/140 324/616/140 -f 332/893/141 190/617/141 331/614/141 -f 325/894/142 183/619/142 324/616/142 -f 175/629/143 176/621/143 154/623/143 -f 176/621/144 190/624/144 318/622/144 -f 326/895/145 184/626/145 325/628/145 -f 177/589/146 175/629/146 319/590/146 -f 333/632/7 335/896/7 114/630/7 -f 112/897/7 114/630/7 335/896/7 -f 351/898/38 109/899/38 356/635/38 -f 352/900/38 333/901/38 113/902/38 -f 109/899/38 334/903/38 356/635/38 -f 139/904/38 111/905/38 356/635/38 -f 356/635/38 334/903/38 352/900/38 -f 352/900/38 113/902/38 115/906/38 -f 115/906/38 117/907/38 352/900/38 -f 119/908/38 121/909/38 394/633/38 -f 123/910/38 380/911/38 394/633/38 -f 394/633/38 381/912/38 125/913/38 -f 125/913/38 127/914/38 394/633/38 -f 129/915/38 131/916/38 394/633/38 -f 133/634/38 135/917/38 356/635/38 -f 137/918/38 139/904/38 356/635/38 -f 356/635/38 352/900/38 394/633/38 -f 117/907/38 119/908/38 394/633/38 -f 394/633/38 127/914/38 129/915/38 -f 121/909/38 123/910/38 394/633/38 -f 137/918/38 356/635/38 135/917/38 -f 131/916/38 133/634/38 394/633/38 -f 117/907/38 394/633/38 352/900/38 -f 334/637/36 109/761/36 110/219/36 -f 110/219/36 112/919/36 335/636/36 -f 1/508/35 18/833/35 345/920/35 -f 338/921/35 17/32/35 349/649/35 -f 18/833/35 265/922/35 345/920/35 -f 349/649/35 17/32/35 2/31/35 -f 2/31/35 1/508/35 345/920/35 -f 345/920/35 266/647/35 349/649/35 -f 349/649/35 2/31/35 345/920/35 -f 33/45/150 17/71/150 350/650/150 -f 350/650/150 337/923/150 266/924/150 -f 17/71/150 338/925/150 350/650/150 -f 265/926/150 18/827/150 344/651/150 -f 34/100/150 33/45/150 344/651/150 -f 350/650/150 266/924/150 344/651/150 -f 344/651/150 18/827/150 34/100/150 -f 114/927/1 112/928/1 368/929/1 -f 110/930/1 140/931/1 363/659/1 -f 138/932/1 136/933/1 363/659/1 -f 134/934/1 132/935/1 363/659/1 -f 130/936/1 128/658/1 363/659/1 -f 126/423/1 124/937/1 363/659/1 -f 122/938/1 120/939/1 363/659/1 -f 118/940/1 116/941/1 363/659/1 -f 363/659/1 353/942/1 368/929/1 -f 116/941/1 336/943/1 363/659/1 -f 124/937/1 122/938/1 363/659/1 -f 132/935/1 130/936/1 363/659/1 -f 140/931/1 138/932/1 363/659/1 -f 361/944/1 114/927/1 368/929/1 -f 353/942/1 360/945/1 368/929/1 -f 368/929/1 112/928/1 110/930/1 -f 136/933/1 134/934/1 363/659/1 -f 120/939/1 118/940/1 363/659/1 -f 363/659/1 368/929/1 110/930/1 -f 113/631/5 114/630/5 347/660/5 -f 336/946/5 116/189/5 359/652/5 -f 114/630/5 361/947/5 347/660/5 -f 359/652/5 116/189/5 115/757/5 -f 115/757/5 113/631/5 359/652/5 -f 347/660/5 360/948/5 353/653/5 -f 359/652/5 113/631/5 347/660/5 -f 26/949/37 10/663/37 367/662/37 -f 9/661/37 25/717/37 367/662/37 -f 367/662/37 346/950/37 26/949/37 -f 25/717/37 343/951/37 367/662/37 -f 42/665/153 26/952/153 348/664/153 -f 348/664/153 343/953/153 25/732/153 -f 26/952/153 346/954/153 348/664/153 -f 25/732/153 41/63/153 348/664/153 -f 391/955/159 50/681/159 392/683/159 -f 142/231/165 156/956/165 385/697/165 -f 155/261/165 141/232/165 385/697/165 -f 385/697/165 378/957/165 155/261/165 -f 156/956/165 379/958/165 385/697/165 -f 156/959/166 148/700/166 386/699/166 -f 147/698/166 155/960/166 386/699/166 -f 386/699/166 379/961/166 156/959/166 -f 155/960/166 378/962/166 386/699/166 -f 380/963/37 123/964/37 387/702/37 -f 126/201/37 125/758/37 381/965/37 -f 387/702/37 123/964/37 124/701/37 -f 126/201/37 381/965/37 387/702/37 -f 49/118/168 50/681/168 389/706/168 -f 66/966/168 65/119/168 390/707/168 -f 389/706/168 390/707/168 65/119/168 -f 50/681/168 391/955/168 389/706/168 -f 66/966/159 390/707/159 80/709/159 -f 392/967/169 64/968/169 388/711/169 -f 63/743/169 79/138/169 388/711/169 -f 80/969/169 393/710/169 79/138/169 -f 388/711/169 64/968/169 63/743/169 diff --git a/src/main/resources/assets/hbm/models/ams_limiter.obj b/src/main/resources/assets/hbm/models/ams_limiter.obj deleted file mode 100644 index e328f0724..000000000 --- a/src/main/resources/assets/hbm/models/ams_limiter.obj +++ /dev/null @@ -1,1301 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_limiter.blend' -# www.blender.org -o Cube.001_Cube.002 -v 0.500001 0.000000 -2.500000 -v 0.250001 1.000000 -2.000000 -v 0.500000 0.000000 2.500000 -v 0.250000 1.000000 2.500000 -v -0.499999 0.000000 -2.500000 -v -0.249999 1.000000 -2.000000 -v -0.500000 0.000000 2.500000 -v -0.250000 1.000000 2.500000 -v 0.156251 0.343750 -2.500000 -v 0.156251 0.656250 -2.500000 -v 0.156251 0.343750 -2.150000 -v 0.156251 0.656250 -2.150000 -v -0.156249 0.343750 -2.500000 -v -0.156249 0.656250 -2.500000 -v -0.156249 0.343750 -2.150000 -v -0.156249 0.656250 -2.150000 -v -0.500000 0.343750 -0.156250 -v -0.500000 0.656250 -0.156250 -v 0.500000 0.343750 -0.156250 -v 0.500000 0.656250 -0.156250 -v -0.500000 0.343750 0.156250 -v -0.500000 0.656250 0.156250 -v 0.500000 0.343750 0.156250 -v 0.500000 0.656250 0.156250 -v -0.000000 6.000000 2.250000 -v 0.000000 6.000000 -0.750000 -v -0.353553 5.853553 2.250000 -v -0.353553 5.853553 -0.750000 -v -0.500000 5.500000 2.250000 -v -0.500000 5.500000 -0.750000 -v -0.353553 5.146447 2.250000 -v -0.353553 5.146447 -0.750000 -v 0.000000 5.000000 2.250000 -v 0.000000 5.000000 -0.750000 -v 0.353553 5.146447 2.250000 -v 0.353554 5.146447 -0.750000 -v 0.500000 5.500000 2.250000 -v 0.500000 5.500000 -0.750000 -v 0.353553 5.853553 2.250000 -v 0.353554 5.853553 -0.750000 -v -0.000000 5.875000 2.250000 -v -0.265165 5.765165 2.250000 -v -0.375000 5.500000 2.250000 -v -0.265165 5.234835 2.250000 -v -0.000000 5.125000 2.250000 -v 0.265165 5.234835 2.250000 -v 0.375000 5.500000 2.250000 -v 0.265165 5.765165 2.250000 -v -0.000000 5.875000 2.500000 -v -0.265165 5.765165 2.500000 -v -0.375000 5.500000 2.500000 -v -0.265165 5.234835 2.500000 -v -0.000000 5.125000 2.500000 -v 0.265165 5.234835 2.500000 -v 0.375000 5.500000 2.500000 -v 0.265165 5.765165 2.500000 -v -0.176776 5.676777 -1.000000 -v 0.000000 5.750000 -1.000000 -v -0.250000 5.500000 -1.000000 -v -0.176776 5.323223 -1.000000 -v 0.000000 5.250000 -1.000000 -v 0.176777 5.323223 -1.000000 -v 0.250000 5.500000 -1.000000 -v 0.176777 5.676777 -1.000000 -v 0.250000 3.000000 0.000000 -v -0.250000 3.000000 0.000000 -v 0.250000 3.000000 -1.000000 -v -0.250000 3.000000 -1.000000 -v 0.250000 5.500000 1.000000 -v -0.250000 5.500000 1.000000 -v 0.250000 5.500000 0.000000 -v -0.250000 5.500000 0.000000 -v 0.250000 1.000000 2.000000 -v -0.250000 1.000000 2.000000 -v 0.250000 1.000000 1.000000 -v -0.250000 1.000000 1.000000 -v 0.500000 2.668544 -0.168544 -v 0.500000 3.000000 -0.031250 -v 0.500000 3.000000 0.125000 -v -0.500000 3.000000 0.125000 -v 0.500000 2.558058 -0.058058 -v -0.500000 2.558058 -0.058058 -v 0.500000 2.375000 -0.500000 -v -0.500000 2.375000 -0.500000 -v 0.500000 2.558058 -0.941942 -v -0.500000 2.558058 -0.941942 -v 0.500000 3.000000 -1.125000 -v -0.499999 3.000000 -1.125000 -v 0.500001 3.441942 -0.941942 -v -0.500000 3.441942 -0.941942 -v 0.500000 3.625000 -0.500000 -v -0.500000 3.625000 -0.500000 -v 0.500000 3.441942 -0.058058 -v -0.500000 3.441942 -0.058058 -v 0.500000 2.531250 -0.500000 -v 0.500000 2.668544 -0.831456 -v 0.500000 3.000000 -0.968750 -v 0.500001 3.331456 -0.831456 -v 0.500000 3.468750 -0.500000 -v 0.500000 3.331456 -0.168544 -v 0.375000 3.331456 -0.168544 -v 0.375000 3.000000 -0.031250 -v 0.375001 3.468750 -0.500000 -v 0.375001 3.331456 -0.831456 -v 0.375000 3.000000 -0.968750 -v 0.375000 2.668544 -0.831456 -v 0.375000 2.531250 -0.500000 -v 0.375000 2.668544 -0.168544 -v -0.500000 2.668544 -0.168544 -v -0.500000 3.000000 -0.031250 -v -0.500000 2.531250 -0.500000 -v -0.500000 2.668544 -0.831456 -v -0.500000 3.000000 -0.968750 -v -0.500000 3.331456 -0.831456 -v -0.500000 3.468750 -0.500000 -v -0.500000 3.331456 -0.168544 -v -0.375000 2.668544 -0.168544 -v -0.375000 3.000000 -0.031250 -v -0.375000 2.531250 -0.500000 -v -0.375000 2.668544 -0.831456 -v -0.375000 3.000000 -0.968750 -v -0.375000 3.331456 -0.831456 -v -0.375000 3.468750 -0.500000 -v -0.375000 3.331456 -0.168544 -v 0.500000 0.668544 1.831456 -v 0.500000 1.000000 1.968750 -v 0.500000 1.000000 2.125000 -v -0.500000 1.000000 2.125000 -v 0.500000 0.558058 1.941942 -v -0.500000 0.558058 1.941942 -v 0.500000 0.375000 1.500000 -v -0.500000 0.375000 1.500000 -v 0.500000 0.558058 1.058058 -v -0.500000 0.558058 1.058058 -v 0.500000 1.000000 0.875000 -v -0.500000 1.000000 0.875000 -v 0.500000 1.441942 1.058058 -v -0.500000 1.441942 1.058058 -v 0.500000 1.625000 1.500000 -v -0.500000 1.625000 1.500000 -v 0.500000 1.441942 1.941942 -v -0.500000 1.441942 1.941942 -v 0.500000 0.531250 1.500000 -v 0.500000 0.668544 1.168544 -v 0.500000 1.000000 1.031250 -v 0.500000 1.331456 1.168544 -v 0.500000 1.468750 1.500000 -v 0.500000 1.331456 1.831456 -v 0.375000 1.331456 1.831456 -v 0.375000 1.000000 1.968750 -v 0.375000 1.468750 1.500000 -v 0.375000 1.331456 1.168544 -v 0.375000 1.000000 1.031250 -v 0.375000 0.668544 1.168544 -v 0.375000 0.531250 1.500000 -v 0.375000 0.668544 1.831456 -v -0.500000 0.668544 1.831456 -v -0.500000 1.000000 1.968750 -v -0.500000 0.531250 1.500000 -v -0.500000 0.668544 1.168544 -v -0.500000 1.000000 1.031250 -v -0.500000 1.331456 1.168544 -v -0.500000 1.468750 1.500000 -v -0.500000 1.331456 1.831456 -v -0.375000 0.668544 1.831456 -v -0.375000 1.000000 1.968750 -v -0.375000 0.531250 1.500000 -v -0.375000 0.668544 1.168544 -v -0.375000 1.000000 1.031250 -v -0.375000 1.331456 1.168544 -v -0.375000 1.468750 1.500000 -v -0.375000 1.331456 1.831456 -v 0.125000 5.550000 -1.000000 -v 0.125001 5.550000 -1.500000 -v 0.081699 5.525000 -1.000000 -v 0.081699 5.525000 -1.500000 -v 0.081699 5.475000 -1.000000 -v 0.081699 5.475000 -1.500000 -v 0.125000 5.450000 -1.000000 -v 0.125001 5.450000 -1.500000 -v 0.168302 5.475000 -1.000000 -v 0.168302 5.475000 -1.500000 -v 0.168302 5.525000 -1.000000 -v 0.168302 5.525000 -1.500000 -v -0.125000 5.550000 -1.000000 -v -0.124999 5.550000 -1.500000 -v -0.168301 5.525000 -1.000000 -v -0.168301 5.525000 -1.500000 -v -0.168301 5.475000 -1.000000 -v -0.168301 5.475000 -1.500000 -v -0.125000 5.450000 -1.000000 -v -0.124999 5.450000 -1.500000 -v -0.081698 5.475000 -1.000000 -v -0.081698 5.475000 -1.500000 -v -0.081698 5.525000 -1.000000 -v -0.081698 5.525000 -1.500000 -v 0.081699 5.493492 -1.608551 -v 0.125001 5.516984 -1.617101 -v 0.081699 5.446507 -1.591449 -v 0.125001 5.423015 -1.582899 -v 0.168302 5.446507 -1.591449 -v 0.168302 5.493492 -1.608551 -v -0.168301 5.493492 -1.608551 -v -0.124999 5.516984 -1.617101 -v -0.168301 5.446507 -1.591449 -v -0.124999 5.423015 -1.582899 -v -0.081698 5.446507 -1.591449 -v -0.081698 5.493492 -1.608551 -v 0.081699 5.404948 -1.710039 -v 0.125001 5.424099 -1.726108 -v 0.081699 5.366646 -1.677899 -v 0.125001 5.347495 -1.661829 -v 0.168302 5.366646 -1.677899 -v 0.168302 5.404948 -1.710039 -v -0.168301 5.404948 -1.710039 -v -0.124999 5.424099 -1.726108 -v -0.168301 5.366646 -1.677899 -v -0.124999 5.347495 -1.661829 -v -0.081698 5.366646 -1.677899 -v -0.081698 5.404948 -1.710039 -v 0.081699 5.291929 -1.776042 -v 0.125001 5.296270 -1.800662 -v 0.081699 5.283247 -1.726802 -v 0.125001 5.278905 -1.702182 -v 0.168302 5.283247 -1.726802 -v 0.168302 5.291929 -1.776042 -v -0.168301 5.291929 -1.776042 -v -0.124999 5.296270 -1.800662 -v -0.168301 5.283247 -1.726802 -v -0.124999 5.278905 -1.702182 -v -0.081698 5.283247 -1.726802 -v -0.081698 5.291929 -1.776042 -v 0.081699 5.139866 -1.802469 -v 0.125001 5.139866 -1.827469 -v 0.081699 5.139866 -1.752469 -v 0.125001 5.139866 -1.727469 -v 0.168302 5.139866 -1.752469 -v 0.168302 5.139866 -1.802469 -v -0.168301 5.139866 -1.802469 -v -0.124999 5.139866 -1.827469 -v -0.168301 5.139866 -1.752469 -v -0.124999 5.139866 -1.727469 -v -0.081698 5.139866 -1.752469 -v -0.081698 5.139866 -1.802469 -v 0.081690 0.999866 -1.802482 -v 0.124992 0.999866 -1.827482 -v 0.081690 0.999866 -1.752481 -v 0.124992 0.999866 -1.727482 -v 0.168293 0.999866 -1.752481 -v 0.168293 0.999866 -1.802482 -v -0.168310 0.999866 -1.802482 -v -0.125008 0.999866 -1.827482 -v -0.168310 0.999866 -1.752481 -v -0.125008 0.999866 -1.727482 -v -0.081707 0.999866 -1.752481 -v -0.081707 0.999866 -1.802482 -v -0.250000 6.875000 -0.437500 -v -0.250000 6.875000 -0.312500 -v -0.250000 5.875000 -0.437500 -v -0.250000 5.875000 -0.312500 -v 0.250000 6.375000 -0.437500 -v 0.250000 6.375000 -0.312500 -v 0.250000 5.875000 -0.437500 -v 0.250000 5.875000 -0.312500 -vt 0.516018 0.105402 -vt 0.605530 0.083024 -vt 0.605530 0.172537 -vt 0.113213 0.150158 -vt 0.013135 0.172537 -vt 0.013135 0.083024 -vt 0.709461 0.897353 -vt 0.709461 0.986865 -vt 0.261900 0.986865 -vt 0.516018 0.013135 -vt 0.113213 0.105402 -vt 0.516018 0.150158 -vt 0.516018 0.242426 -vt 0.691103 0.097053 -vt 0.691103 0.125026 -vt 0.659773 0.125026 -vt 0.659773 0.069080 -vt 0.659773 0.041108 -vt 0.691103 0.041108 -vt 0.659773 0.097053 -vt 0.631801 0.097053 -vt 0.631801 0.069080 -vt 0.691103 0.013135 -vt 0.691103 0.069080 -vt 0.041108 0.624951 -vt 0.041108 0.596979 -vt 0.130620 0.596979 -vt 0.041108 0.652924 -vt 0.013135 0.652924 -vt 0.013135 0.624951 -vt 0.130620 0.652924 -vt 0.130620 0.680896 -vt 0.041108 0.680896 -vt 0.130620 0.624951 -vt 0.158593 0.624951 -vt 0.158593 0.652924 -vt 0.041108 0.569006 -vt 0.130620 0.569006 -vt 0.043602 0.405716 -vt 0.043602 0.371461 -vt 0.312139 0.371461 -vt 0.043602 0.337206 -vt 0.312139 0.337207 -vt 0.043603 0.302951 -vt 0.312139 0.302952 -vt 0.043603 0.268696 -vt 0.312139 0.268697 -vt 0.043602 0.542735 -vt 0.043602 0.508480 -vt 0.312139 0.508481 -vt 0.043602 0.474225 -vt 0.312139 0.474226 -vt 0.013135 0.465662 -vt 0.013135 0.448534 -vt 0.312139 0.439971 -vt 0.043602 0.439971 -vt 0.322476 0.307234 -vt 0.717291 0.621272 -vt 0.708727 0.641946 -vt 0.684992 0.632115 -vt 0.322476 0.478508 -vt 0.322476 0.504199 -vt 0.322477 0.272979 -vt 0.322476 0.444253 -vt 0.322476 0.341489 -vt 0.322476 0.367180 -vt 0.322476 0.512762 -vt 0.322476 0.538453 -vt 0.312139 0.405716 -vt 0.322476 0.409998 -vt 0.322476 0.375743 -vt 0.322476 0.401434 -vt 0.684992 0.699249 -vt 0.651425 0.665682 -vt 0.640582 0.633383 -vt 0.661256 0.641946 -vt 0.652692 0.710092 -vt 0.661256 0.689417 -vt 0.729402 0.697981 -vt 0.708727 0.689417 -vt 0.718559 0.665682 -vt 0.676428 0.611440 -vt 0.630750 0.674246 -vt 0.693555 0.719924 -vt 0.739233 0.657118 -vt 0.116936 0.719278 -vt 0.146174 0.707167 -vt 0.129047 0.748516 -vt 0.013136 0.362897 -vt 0.013136 0.345770 -vt 0.013135 0.534171 -vt 0.013135 0.517044 -vt 0.013136 0.431407 -vt 0.013136 0.397152 -vt 0.013136 0.380024 -vt 0.013136 0.328642 -vt 0.013136 0.311515 -vt 0.013135 0.499917 -vt 0.013136 0.294387 -vt 0.521369 0.509715 -vt 0.476613 0.509715 -vt 0.476613 0.268696 -vt 0.393503 0.301940 -vt 0.393503 0.542959 -vt 0.348747 0.542959 -vt 0.521369 0.268696 -vt 0.604479 0.301940 -vt 0.846852 0.521875 -vt 0.783557 0.585170 -vt 0.783557 0.331991 -vt 0.738801 0.585170 -vt 0.738801 0.331991 -vt 0.630750 0.268696 -vt 0.675506 0.268696 -vt 0.675506 0.521875 -vt 0.470636 0.695844 -vt 0.470632 0.707033 -vt 0.438518 0.707022 -vt 0.561630 0.682954 -vt 0.556273 0.695874 -vt 0.524159 0.695863 -vt 0.518842 0.593427 -vt 0.561661 0.593442 -vt 0.384999 0.695815 -vt 0.384995 0.707004 -vt 0.352881 0.706993 -vt 0.347537 0.682880 -vt 0.390356 0.682895 -vt 0.604479 0.593457 -vt 0.427818 0.695830 -vt 0.427814 0.707019 -vt 0.395700 0.707008 -vt 0.342181 0.695800 -vt 0.310067 0.695789 -vt 0.261900 0.682851 -vt 0.261931 0.593339 -vt 0.304750 0.593353 -vt 0.513455 0.695859 -vt 0.513451 0.707048 -vt 0.481337 0.707037 -vt 0.433174 0.682910 -vt 0.475993 0.682925 -vt 0.347568 0.593368 -vt 0.654509 0.228826 -vt 0.631801 0.174004 -vt 0.686623 0.151296 -vt 0.304719 0.682866 -vt 0.299362 0.695785 -vt 0.390387 0.593383 -vt 0.267248 0.695774 -vt 0.299358 0.706974 -vt 0.433205 0.593398 -vt 0.524199 0.580507 -vt 0.476024 0.593412 -vt 0.566978 0.695878 -vt 0.599092 0.695889 -vt 0.599088 0.707078 -vt 0.604448 0.682969 -vt 0.518811 0.682939 -vt 0.556269 0.707063 -vt 0.342177 0.706989 -vt 0.310063 0.706978 -vt 0.352925 0.580448 -vt 0.352929 0.569259 -vt 0.385043 0.569270 -vt 0.267288 0.580419 -vt 0.299402 0.580430 -vt 0.438562 0.580478 -vt 0.470676 0.580489 -vt 0.310106 0.580434 -vt 0.481381 0.580493 -vt 0.513494 0.580504 -vt 0.385039 0.580459 -vt 0.567018 0.580522 -vt 0.395743 0.580463 -vt 0.427857 0.580474 -vt 0.067957 0.784697 -vt 0.013135 0.729875 -vt 0.035843 0.707167 -vt 0.267292 0.569230 -vt 0.299406 0.569241 -vt 0.524203 0.569318 -vt 0.556317 0.569329 -vt 0.481384 0.569304 -vt 0.513498 0.569315 -vt 0.395747 0.569274 -vt 0.427861 0.569285 -vt 0.310110 0.569245 -vt 0.342224 0.569256 -vt 0.567021 0.569333 -vt 0.599135 0.569344 -vt 0.438566 0.569289 -vt 0.470680 0.569300 -vt 0.438527 0.859893 -vt 0.470641 0.859893 -vt 0.470641 0.871082 -vt 0.561630 0.846971 -vt 0.556278 0.859893 -vt 0.524164 0.859893 -vt 0.518811 0.757459 -vt 0.561630 0.757459 -vt 0.352890 0.859893 -vt 0.385003 0.859893 -vt 0.385003 0.871082 -vt 0.347537 0.846971 -vt 0.390356 0.846971 -vt 0.604448 0.757459 -vt 0.604448 0.846971 -vt 0.395708 0.859893 -vt 0.427822 0.859893 -vt 0.427822 0.871082 -vt 0.304719 0.846971 -vt 0.342185 0.859893 -vt 0.261900 0.846971 -vt 0.261900 0.757459 -vt 0.304719 0.757459 -vt 0.481345 0.859893 -vt 0.513459 0.859893 -vt 0.513459 0.871082 -vt 0.433174 0.846971 -vt 0.475993 0.846971 -vt 0.347537 0.757459 -vt 0.758309 0.228826 -vt 0.735601 0.174004 -vt 0.790423 0.151296 -vt 0.299366 0.859893 -vt 0.267253 0.859893 -vt 0.390356 0.757459 -vt 0.299366 0.871082 -vt 0.267253 0.871082 -vt 0.433174 0.757459 -vt 0.524164 0.744537 -vt 0.556278 0.744537 -vt 0.475993 0.757459 -vt 0.518811 0.846971 -vt 0.599096 0.859893 -vt 0.599096 0.871082 -vt 0.566982 0.871082 -vt 0.566982 0.859893 -vt 0.556278 0.871082 -vt 0.524164 0.871082 -vt 0.342185 0.871082 -vt 0.310071 0.871082 -vt 0.352890 0.744537 -vt 0.352890 0.733348 -vt 0.385003 0.733348 -vt 0.267253 0.744537 -vt 0.299366 0.744537 -vt 0.438527 0.744537 -vt 0.470641 0.744537 -vt 0.310071 0.744537 -vt 0.342185 0.744537 -vt 0.481345 0.744537 -vt 0.566982 0.744537 -vt 0.599096 0.744537 -vt 0.395708 0.744537 -vt 0.772195 0.090665 -vt 0.717373 0.035843 -vt 0.740081 0.013135 -vt 0.267253 0.733348 -vt 0.299366 0.733348 -vt 0.524164 0.733348 -vt 0.556278 0.733348 -vt 0.513459 0.744537 -vt 0.481345 0.733348 -vt 0.395708 0.733348 -vt 0.427822 0.733348 -vt 0.310071 0.733348 -vt 0.342185 0.733348 -vt 0.566982 0.733348 -vt 0.599096 0.733348 -vt 0.438527 0.733348 -vt 0.683393 0.776958 -vt 0.683397 0.772483 -vt 0.728153 0.772514 -vt 0.683400 0.768007 -vt 0.728156 0.768038 -vt 0.683403 0.763532 -vt 0.728159 0.763562 -vt 0.683384 0.790385 -vt 0.683387 0.785910 -vt 0.728143 0.785941 -vt 0.067126 0.838324 -vt 0.057306 0.839516 -vt 0.056666 0.834944 -vt 0.683390 0.781434 -vt 0.728149 0.776989 -vt 0.728146 0.781465 -vt 0.067317 0.834080 -vt 0.066793 0.829709 -vt 0.111004 0.829580 -vt 0.066780 0.825287 -vt 0.110991 0.825159 -vt 0.066768 0.820866 -vt 0.110979 0.820738 -vt 0.066750 0.847211 -vt 0.066794 0.842732 -vt 0.110975 0.842887 -vt 0.679218 0.789685 -vt 0.671459 0.788850 -vt 0.671862 0.784393 -vt 0.067202 0.838328 -vt 0.111004 0.834165 -vt 0.110989 0.838576 -vt 0.051678 0.847609 -vt 0.041772 0.846616 -vt 0.042374 0.842100 -vt 0.674160 0.762194 -vt 0.673319 0.766590 -vt 0.663549 0.762649 -vt 0.672605 0.775473 -vt 0.682812 0.763577 -vt 0.682763 0.768052 -vt 0.674299 0.766685 -vt 0.058174 0.843923 -vt 0.673379 0.771065 -vt 0.058930 0.848395 -vt 0.064349 0.820957 -vt 0.065236 0.825426 -vt 0.056517 0.825834 -vt 0.056515 0.830390 -vt 0.682187 0.781268 -vt 0.672159 0.779927 -vt 0.680381 0.785363 -vt 0.038883 0.840757 -vt 0.036783 0.844800 -vt 0.029879 0.842581 -vt 0.662835 0.762464 -vt 0.655296 0.758216 -vt 0.658138 0.754759 -vt 0.043747 0.833091 -vt 0.665255 0.786642 -vt 0.655933 0.783690 -vt 0.657422 0.779469 -vt 0.053036 0.843260 -vt 0.043082 0.837599 -vt 0.660559 0.771086 -vt 0.055520 0.825944 -vt 0.044376 0.828578 -vt 0.667438 0.782735 -vt 0.659011 0.775285 -vt 0.055241 0.839272 -vt 0.662075 0.766875 -vt 0.055439 0.821388 -vt 0.044962 0.824060 -vt 0.670362 0.779347 -vt 0.654719 0.757648 -vt 0.644624 0.749397 -vt 0.647751 0.746194 -vt 0.649032 0.764560 -vt 0.646170 0.768001 -vt 0.635538 0.759179 -vt 0.030897 0.828999 -vt 0.033010 0.824962 -vt 0.654338 0.777474 -vt 0.651504 0.780938 -vt 0.645314 0.777412 -vt 0.041651 0.837137 -vt 0.030494 0.838066 -vt 0.651878 0.761106 -vt 0.035812 0.821368 -vt 0.657728 0.774552 -vt 0.646816 0.773195 -vt 0.030287 0.833514 -vt 0.044212 0.824025 -vt 0.037921 0.817330 -vt 0.647535 0.768778 -vt 0.900024 0.577110 -vt 0.900024 0.268841 -vt 0.905404 0.268870 -vt 0.883884 0.577024 -vt 0.883883 0.268754 -vt 0.889263 0.268783 -vt 0.026627 0.837050 -vt 0.024485 0.841071 -vt 0.013135 0.834985 -vt 0.018102 0.822262 -vt 0.020558 0.818424 -vt 0.643304 0.771438 -vt 0.640433 0.774872 -vt 0.630750 0.766732 -vt 0.028765 0.833026 -vt 0.014921 0.830793 -vt 0.638090 0.755503 -vt 0.641225 0.752309 -vt 0.023335 0.814812 -vt 0.633312 0.763062 -vt 0.016327 0.826458 -vt 0.035119 0.820923 -vt 0.025781 0.810967 -vt 0.765504 0.700952 -vt 0.765504 0.611440 -vt 0.776693 0.611440 -vt 0.184864 0.877276 -vt 0.184863 0.569006 -vt 0.190244 0.569035 -vt 0.201005 0.877362 -vt 0.201004 0.569093 -vt 0.206384 0.569122 -vt 0.873123 0.576966 -vt 0.873122 0.268696 -vt 0.878502 0.268725 -vt 0.190244 0.877304 -vt 0.195624 0.569064 -vt 0.889264 0.577052 -vt 0.894643 0.268812 -vt 0.206385 0.877391 -vt 0.211765 0.569151 -vt 0.878503 0.576995 -vt 0.195625 0.877333 -vt 0.894644 0.577081 -vt 0.211766 0.877420 -vt 0.217145 0.569180 -vt 0.765504 0.771979 -vt 0.765504 0.727223 -vt 0.776693 0.727223 -vt 0.261900 0.897353 -vt 0.068457 0.013135 -vt 0.068457 0.242426 -vt 0.659773 0.013135 -vt 0.312139 0.542735 -vt 0.322476 0.332925 -vt 0.693555 0.611440 -vt 0.322476 0.298670 -vt 0.322476 0.469944 -vt 0.322476 0.435689 -vt 0.630750 0.657118 -vt 0.676428 0.719924 -vt 0.739233 0.674246 -vt 0.652692 0.621272 -vt 0.640582 0.697981 -vt 0.717291 0.710092 -vt 0.729402 0.633383 -vt 0.158285 0.736405 -vt 0.146174 0.748516 -vt 0.116936 0.736405 -vt 0.129047 0.707167 -vt 0.158285 0.719278 -vt 0.013136 0.414279 -vt 0.013135 0.482789 -vt 0.013136 0.277260 -vt 0.348747 0.301940 -vt 0.604479 0.542959 -vt 0.846852 0.268696 -vt 0.630750 0.521875 -vt 0.438522 0.695833 -vt 0.352885 0.695804 -vt 0.395704 0.695819 -vt 0.481341 0.695848 -vt 0.709330 0.174004 -vt 0.709330 0.206118 -vt 0.686623 0.228826 -vt 0.631801 0.206118 -vt 0.654509 0.151296 -vt 0.267244 0.706963 -vt 0.556313 0.580518 -vt 0.566974 0.707067 -vt 0.524155 0.707052 -vt 0.342220 0.580445 -vt 0.599131 0.580533 -vt 0.067957 0.707167 -vt 0.090665 0.729875 -vt 0.090665 0.761989 -vt 0.035843 0.784697 -vt 0.013135 0.761989 -vt 0.438527 0.871082 -vt 0.352890 0.871082 -vt 0.395708 0.871082 -vt 0.310071 0.859893 -vt 0.481345 0.871082 -vt 0.813131 0.174004 -vt 0.813131 0.206118 -vt 0.790423 0.228826 -vt 0.735601 0.206118 -vt 0.758309 0.151296 -vt 0.385003 0.744537 -vt 0.427822 0.744537 -vt 0.772195 0.013135 -vt 0.794903 0.035843 -vt 0.794903 0.067957 -vt 0.740081 0.090665 -vt 0.717373 0.067957 -vt 0.513459 0.733348 -vt 0.470641 0.733348 -vt 0.728140 0.790416 -vt 0.110965 0.847308 -vt 0.665123 0.758459 -vt 0.675116 0.762285 -vt 0.056411 0.821279 -vt 0.664346 0.758251 -vt 0.045654 0.819556 -vt 0.657556 0.754186 -vt 0.044837 0.819511 -vt 0.905405 0.577139 -vt 0.037222 0.816881 -vt 0.776693 0.700952 -vt 0.217146 0.877449 -vt 0.776693 0.771979 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.447200 -0.894400 -vn 0.000000 -1.000000 0.000000 -vn -0.970100 0.242500 -0.000000 -vn 0.970100 0.242500 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 1.000000 -0.000000 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 -0.000000 -vn -0.923900 -0.382700 -0.000000 -vn -0.382700 -0.923900 -0.000000 -vn 0.382700 -0.923900 0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.678600 0.281100 -0.678600 -vn 0.382700 0.923900 0.000000 -vn 0.923900 0.382700 0.000000 -vn -0.678600 0.281100 -0.678600 -vn 0.281100 -0.678600 -0.678600 -vn 0.281100 0.678600 -0.678600 -vn -0.281100 0.678600 -0.678600 -vn -0.678600 -0.281100 -0.678600 -vn 0.678600 -0.281100 -0.678600 -vn -0.281100 -0.678600 -0.678600 -vn 0.000000 0.371400 -0.928500 -vn 0.000000 -0.371400 0.928500 -vn 0.000000 -0.707100 -0.707100 -vn 0.000000 0.707100 0.707100 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 0.382700 0.923900 -vn -0.500000 0.866000 0.000000 -vn -0.500000 -0.866000 0.000000 -vn 0.500000 -0.866000 -0.000000 -vn 0.499200 0.832200 -0.241500 -vn 0.500000 0.866000 -0.000000 -vn 0.499800 -0.823600 0.268100 -vn 0.499200 -0.626100 0.599000 -vn -0.470000 -0.648400 0.598900 -vn -0.485700 0.841300 -0.237200 -vn -0.482700 -0.836100 0.260500 -vn 0.478000 -0.445400 0.757100 -vn -0.476000 -0.444900 0.758700 -vn -0.475800 0.669500 -0.570400 -vn 0.499900 0.652600 -0.569400 -vn -0.494100 -0.153200 0.855800 -vn 0.500000 0.148300 -0.853200 -vn -0.476300 0.443000 -0.759600 -vn 0.477500 0.443100 -0.758700 -vn -0.500000 -0.000000 0.866000 -vn 0.500000 0.000000 -0.866000 -vn 0.500000 -0.155000 0.852000 -vn -0.494600 0.146800 -0.856600 -vn 0.500000 -0.000000 0.866000 -vn -0.500000 0.000000 -0.866000 -vn 0.485700 0.841300 -0.237200 -vn 0.482700 -0.836100 0.260500 -vn 0.470000 -0.648400 0.598900 -vn -0.499200 -0.626100 0.599000 -vn -0.499200 0.832200 -0.241500 -vn -0.499800 -0.823600 0.268100 -vn 0.476000 -0.444900 0.758700 -vn -0.478000 -0.445400 0.757100 -vn -0.499900 0.652600 -0.569400 -vn 0.475800 0.669500 -0.570400 -vn -0.500000 -0.155000 0.852100 -vn 0.494600 0.146800 -0.856600 -vn -0.477500 0.443100 -0.758700 -vn 0.476300 0.443000 -0.759600 -vn 0.494100 -0.153200 0.855800 -vn -0.500000 0.148300 -0.853200 -s off -f 8/1/1 7/2/1 3/3/1 -f 2/4/2 1/5/2 5/6/2 -f 3/7/3 7/8/3 5/9/3 -f 7/10/4 8/1/4 6/11/4 -f 2/4/5 4/12/5 3/13/5 -f 12/14/6 11/15/6 9/16/6 -f 14/17/7 13/18/7 15/19/7 -f 10/20/8 9/21/8 13/22/8 -f 11/23/3 15/19/3 13/18/3 -f 14/17/9 16/24/9 12/14/9 -f 20/25/8 19/26/8 17/27/8 -f 24/28/6 23/29/6 19/30/6 -f 22/31/1 21/32/1 23/33/1 -f 18/34/7 17/35/7 21/36/7 -f 19/26/3 23/37/3 21/38/3 -f 24/28/9 20/25/9 18/34/9 -f 26/39/10 28/40/10 27/41/10 -f 28/40/11 30/42/11 29/43/11 -f 30/42/12 32/44/12 31/45/12 -f 32/44/13 34/46/13 33/47/13 -f 34/48/14 36/49/14 35/50/14 -f 36/49/15 38/51/15 37/52/15 -f 38/51/16 63/53/16 64/54/16 -f 39/55/17 40/56/17 26/39/17 -f 38/51/18 40/56/18 39/55/18 -f 29/43/1 31/45/1 44/57/1 -f 41/58/17 49/59/17 56/60/17 -f 37/52/1 47/61/1 46/62/1 -f 31/45/1 33/47/1 45/63/1 -f 37/52/1 39/55/1 48/64/1 -f 29/43/1 43/65/1 42/66/1 -f 35/50/1 46/67/1 45/68/1 -f 39/55/1 25/69/1 41/70/1 -f 27/41/1 42/71/1 41/72/1 -f 52/73/1 54/74/1 56/60/1 -f 47/75/15 55/76/15 54/74/15 -f 45/77/13 53/78/13 52/73/13 -f 43/79/11 51/80/11 50/81/11 -f 48/82/18 56/60/18 55/76/18 -f 46/83/14 54/74/14 53/78/14 -f 44/84/12 52/73/12 51/80/12 -f 42/85/10 50/81/10 49/59/10 -f 63/86/8 61/87/8 58/88/8 -f 28/40/19 57/89/19 59/90/19 -f 34/48/20 61/91/20 62/92/20 -f 26/39/21 40/56/21 64/93/21 -f 26/39/22 58/94/22 57/95/22 -f 30/42/23 59/96/23 60/97/23 -f 38/51/24 36/49/24 62/98/24 -f 34/46/25 32/44/25 60/99/25 -f 72/100/26 71/101/26 67/102/26 -f 65/103/27 69/104/27 70/105/27 -f 71/101/6 69/104/6 65/103/6 -f 72/100/7 68/106/7 66/107/7 -f 66/108/7 68/109/7 76/110/7 -f 67/111/28 75/112/28 76/110/28 -f 74/113/29 73/114/29 65/115/29 -f 65/115/6 73/114/6 75/112/6 -f 100/116/30 101/117/30 103/118/30 -f 81/119/6 77/120/6 78/121/6 -f 80/122/31 82/123/31 81/119/31 -f 98/124/31 104/125/31 105/126/31 -f 87/127/6 89/128/6 98/124/6 -f 81/119/32 82/123/32 84/129/32 -f 99/130/32 103/131/32 104/132/32 -f 87/127/6 97/133/6 96/134/6 -f 83/135/30 84/136/30 86/137/30 -f 78/138/33 102/139/33 101/140/33 -f 91/141/6 93/142/6 100/116/6 -f 86/137/33 88/143/33 87/127/33 -f 106/144/6 104/145/6 101/146/6 -f 83/135/6 85/147/6 96/148/6 -f 88/143/34 90/149/34 89/128/34 -f 89/128/6 91/141/6 99/130/6 -f 95/150/35 96/148/35 106/151/35 -f 90/149/36 92/152/36 91/141/36 -f 82/123/7 80/122/7 110/153/7 -f 93/142/37 94/154/37 80/122/37 -f 92/152/35 94/154/35 93/142/35 -f 77/155/36 95/156/36 107/157/36 -f 83/158/6 95/156/6 77/155/6 -f 93/142/6 79/159/6 78/138/6 -f 78/121/34 77/120/34 108/160/34 -f 97/133/37 105/161/37 106/162/37 -f 113/163/31 121/164/31 122/165/31 -f 84/136/7 111/166/7 112/167/7 -f 92/152/7 115/168/7 116/169/7 -f 88/143/7 86/137/7 112/170/7 -f 94/154/7 116/171/7 110/172/7 -f 88/143/7 113/163/7 114/173/7 -f 84/129/7 82/123/7 109/174/7 -f 90/149/7 114/175/7 115/176/7 -f 123/177/7 120/178/7 119/179/7 -f 111/166/35 119/180/35 120/181/35 -f 110/153/34 118/182/34 117/183/34 -f 116/171/33 124/184/33 118/185/33 -f 114/175/32 122/186/32 123/187/32 -f 112/170/37 120/188/37 121/189/37 -f 109/174/36 117/190/36 119/191/36 -f 115/168/30 123/192/30 124/193/30 -f 147/194/30 148/195/30 149/196/30 -f 129/197/6 125/198/6 126/199/6 -f 128/200/31 130/201/31 129/197/31 -f 145/202/31 146/203/31 152/204/31 -f 135/205/6 137/206/6 146/203/6 -f 130/201/32 132/207/32 131/208/32 -f 146/209/32 147/210/32 151/211/32 -f 133/212/6 135/205/6 145/213/6 -f 131/214/30 132/215/30 134/216/30 -f 148/217/33 126/218/33 150/219/33 -f 139/220/6 141/221/6 148/195/6 -f 133/212/33 134/216/33 136/222/33 -f 154/223/6 152/224/6 149/225/6 -f 133/212/6 144/226/6 143/227/6 -f 136/222/34 138/228/34 137/206/34 -f 139/220/6 147/210/6 146/209/6 -f 144/226/35 154/229/35 155/230/35 -f 138/228/36 140/231/36 139/220/36 -f 128/200/7 158/232/7 157/233/7 -f 142/234/37 128/200/37 127/235/37 -f 140/231/35 142/234/35 141/221/35 -f 143/236/36 155/237/36 156/238/36 -f 131/208/6 143/236/6 125/239/6 -f 127/235/6 126/218/6 148/217/6 -f 125/198/34 156/240/34 150/241/34 -f 145/213/37 153/242/37 154/243/37 -f 161/244/31 169/245/31 170/246/31 -f 132/215/7 159/247/7 160/248/7 -f 140/231/7 163/249/7 164/250/7 -f 134/216/7 160/251/7 161/252/7 -f 128/200/7 142/234/7 164/253/7 -f 138/228/7 136/222/7 161/244/7 -f 130/201/7 157/254/7 159/255/7 -f 140/231/7 138/228/7 162/256/7 -f 171/257/7 168/258/7 167/259/7 -f 159/247/35 167/260/35 168/261/35 -f 158/232/34 166/262/34 165/263/34 -f 158/264/33 164/253/33 172/265/33 -f 162/256/32 170/266/32 171/267/32 -f 160/251/37 168/268/37 169/269/37 -f 157/254/36 165/270/36 167/271/36 -f 164/250/30 163/249/30 171/272/30 -f 2/4/9 6/11/9 8/1/9 -f 174/273/38 176/274/38 175/275/38 -f 176/274/7 178/276/7 177/277/7 -f 178/276/39 180/278/39 179/279/39 -f 180/280/40 182/281/40 181/282/40 -f 196/283/41 208/284/41 204/285/41 -f 184/286/42 174/273/42 173/287/42 -f 182/281/6 184/286/6 183/288/6 -f 186/289/38 188/290/38 187/291/38 -f 188/290/7 190/292/7 189/293/7 -f 190/292/39 192/294/39 191/295/39 -f 192/296/40 194/297/40 193/298/40 -f 180/299/43 200/300/43 201/301/43 -f 196/302/42 186/289/42 185/303/42 -f 194/297/6 196/302/6 195/304/6 -f 206/305/44 218/306/44 219/307/44 -f 200/308/45 199/309/45 211/310/45 -f 176/274/46 174/273/46 198/311/46 -f 180/312/47 178/313/47 199/314/47 -f 194/297/6 207/315/6 208/284/6 -f 178/313/7 176/274/7 197/316/7 -f 192/296/43 206/317/43 207/315/43 -f 188/290/46 186/289/46 204/285/46 -f 192/318/47 190/319/47 205/320/47 -f 190/319/7 188/290/7 203/321/7 -f 184/322/41 202/323/41 198/311/41 -f 182/324/6 201/301/6 202/323/6 -f 219/325/48 218/326/48 230/327/48 -f 211/328/49 223/329/49 224/330/49 -f 203/321/50 204/285/50 216/331/50 -f 200/332/44 212/333/44 213/334/44 -f 207/335/6 219/307/6 220/336/6 -f 197/316/50 198/311/50 210/337/50 -f 205/338/7 203/321/7 215/339/7 -f 201/340/6 213/334/6 214/341/6 -f 208/342/51 220/336/51 216/331/51 -f 199/309/7 197/316/7 209/343/7 -f 206/344/45 205/338/45 217/345/45 -f 202/346/51 214/341/51 210/337/51 -f 223/347/52 235/348/52 236/349/52 -f 222/350/53 226/351/53 238/352/53 -f 216/331/54 228/353/54 227/354/54 -f 213/355/48 212/356/48 224/357/48 -f 220/358/6 219/325/6 231/359/6 -f 210/337/54 222/350/54 221/360/54 -f 215/339/7 227/354/7 229/361/7 -f 214/362/6 213/355/6 225/363/6 -f 216/331/55 220/358/55 232/364/55 -f 209/343/7 221/360/7 223/329/7 -f 217/365/49 229/361/49 230/366/49 -f 210/337/55 214/362/55 226/367/55 -f 235/368/56 247/369/56 248/370/56 -f 238/371/57 250/372/57 246/373/57 -f 231/374/58 230/375/58 242/376/58 -f 228/353/59 240/377/59 239/378/59 -f 225/379/58 224/380/58 236/381/58 -f 232/382/6 231/374/6 243/383/6 -f 222/350/59 234/384/59 233/385/59 -f 227/354/7 239/378/7 241/386/7 -f 226/351/6 225/379/6 237/387/6 -f 228/353/53 232/382/53 244/388/53 -f 221/360/7 233/385/7 235/348/7 -f 229/389/52 241/386/52 242/390/52 -f 257/391/7 259/392/7 260/393/7 -f 242/394/60 254/395/60 255/396/60 -f 240/397/61 252/398/61 251/399/61 -f 236/400/60 248/401/60 249/402/60 -f 243/403/6 255/396/6 256/404/6 -f 234/405/61 246/373/61 245/406/61 -f 239/407/7 251/399/7 253/408/7 -f 237/409/6 249/402/6 250/372/6 -f 240/397/57 244/410/57 256/404/57 -f 233/411/7 245/406/7 247/369/7 -f 241/412/56 253/408/56 254/413/56 -f 261/414/7 263/415/7 264/416/7 -f 4/12/1 8/1/1 3/3/1 -f 6/11/2 2/4/2 5/6/2 -f 1/417/3 3/7/3 5/9/3 -f 5/418/4 7/10/4 6/11/4 -f 1/419/5 2/4/5 3/13/5 -f 10/20/6 12/14/6 9/16/6 -f 16/24/7 14/17/7 15/19/7 -f 14/17/8 10/20/8 13/22/8 -f 9/420/3 11/23/3 13/18/3 -f 10/20/9 14/17/9 12/14/9 -f 18/34/8 20/25/8 17/27/8 -f 20/25/6 24/28/6 19/30/6 -f 24/28/1 22/31/1 23/33/1 -f 22/31/7 18/34/7 21/36/7 -f 17/27/3 19/26/3 21/38/3 -f 22/31/9 24/28/9 18/34/9 -f 25/69/10 26/39/10 27/41/10 -f 27/41/11 28/40/11 29/43/11 -f 29/43/12 30/42/12 31/45/12 -f 31/45/13 32/44/13 33/47/13 -f 33/421/14 34/48/14 35/50/14 -f 35/50/15 36/49/15 37/52/15 -f 40/56/16 38/51/16 64/54/16 -f 25/69/17 39/55/17 26/39/17 -f 37/52/18 38/51/18 39/55/18 -f 43/422/1 29/43/1 44/57/1 -f 48/423/17 41/58/17 56/60/17 -f 35/50/1 37/52/1 46/62/1 -f 44/424/1 31/45/1 45/63/1 -f 47/425/1 37/52/1 48/64/1 -f 27/41/1 29/43/1 42/66/1 -f 33/421/1 35/50/1 45/68/1 -f 48/426/1 39/55/1 41/70/1 -f 25/69/1 27/41/1 41/72/1 -f 56/60/1 49/59/1 50/81/1 -f 50/81/1 51/80/1 52/73/1 -f 52/73/1 53/78/1 54/74/1 -f 54/74/1 55/76/1 56/60/1 -f 56/60/1 50/81/1 52/73/1 -f 46/427/15 47/75/15 54/74/15 -f 44/428/13 45/77/13 52/73/13 -f 42/429/11 43/79/11 50/81/11 -f 47/430/18 48/82/18 55/76/18 -f 45/431/14 46/83/14 53/78/14 -f 43/432/12 44/84/12 51/80/12 -f 41/433/10 42/85/10 49/59/10 -f 59/434/8 57/435/8 58/88/8 -f 58/88/8 64/436/8 63/86/8 -f 63/86/8 62/437/8 61/87/8 -f 61/87/8 60/438/8 59/434/8 -f 59/434/8 58/88/8 61/87/8 -f 30/42/19 28/40/19 59/90/19 -f 36/49/20 34/48/20 62/92/20 -f 58/439/21 26/39/21 64/93/21 -f 28/40/22 26/39/22 57/95/22 -f 32/44/23 30/42/23 60/97/23 -f 63/440/24 38/51/24 62/98/24 -f 61/441/25 34/46/25 60/99/25 -f 68/106/26 72/100/26 67/102/26 -f 66/442/27 65/103/27 70/105/27 -f 67/102/6 71/101/6 65/103/6 -f 70/443/7 72/100/7 66/107/7 -f 74/444/7 66/108/7 76/110/7 -f 68/109/28 67/111/28 76/110/28 -f 66/445/29 74/113/29 65/115/29 -f 67/111/6 65/115/6 75/112/6 -f 99/446/30 100/116/30 103/118/30 -f 79/159/6 81/119/6 78/121/6 -f 79/159/31 80/122/31 81/119/31 -f 97/447/31 98/124/31 105/126/31 -f 97/447/6 87/127/6 98/124/6 -f 83/158/32 81/119/32 84/129/32 -f 98/448/32 99/130/32 104/132/32 -f 85/147/6 87/127/6 96/134/6 -f 85/147/30 83/135/30 86/137/30 -f 100/449/33 78/138/33 101/140/33 -f 99/446/6 91/141/6 100/116/6 -f 85/147/33 86/137/33 87/127/33 -f 101/146/6 102/450/6 108/451/6 -f 108/451/6 107/452/6 106/144/6 -f 106/144/6 105/453/6 104/145/6 -f 104/145/6 103/454/6 101/146/6 -f 101/146/6 108/451/6 106/144/6 -f 95/150/6 83/135/6 96/148/6 -f 87/127/34 88/143/34 89/128/34 -f 98/448/6 89/128/6 99/130/6 -f 107/455/35 95/150/35 106/151/35 -f 89/128/36 90/149/36 91/141/36 -f 109/456/7 82/123/7 110/153/7 -f 79/159/37 93/142/37 80/122/37 -f 91/141/35 92/152/35 93/142/35 -f 108/457/36 77/155/36 107/157/36 -f 81/119/6 83/158/6 77/155/6 -f 100/449/6 93/142/6 78/138/6 -f 102/458/34 78/121/34 108/160/34 -f 96/134/37 97/133/37 106/162/37 -f 114/173/31 113/163/31 122/165/31 -f 86/137/7 84/136/7 112/167/7 -f 94/154/7 92/152/7 116/169/7 -f 113/459/7 88/143/7 112/170/7 -f 80/122/7 94/154/7 110/172/7 -f 90/149/7 88/143/7 114/173/7 -f 111/460/7 84/129/7 109/174/7 -f 92/152/7 90/149/7 115/176/7 -f 119/179/7 117/461/7 118/462/7 -f 118/462/7 124/463/7 119/179/7 -f 123/177/7 122/464/7 121/465/7 -f 121/465/7 120/178/7 123/177/7 -f 119/179/7 124/463/7 123/177/7 -f 112/167/35 111/166/35 120/181/35 -f 109/456/34 110/153/34 117/183/34 -f 110/172/33 116/171/33 118/185/33 -f 115/176/32 114/175/32 123/187/32 -f 113/459/37 112/170/37 121/189/37 -f 111/460/36 109/174/36 119/191/36 -f 116/169/30 115/168/30 124/193/30 -f 151/466/30 147/194/30 149/196/30 -f 127/235/6 129/197/6 126/199/6 -f 127/235/31 128/200/31 129/197/31 -f 153/467/31 145/202/31 152/204/31 -f 145/202/6 135/205/6 146/203/6 -f 129/197/32 130/201/32 131/208/32 -f 152/468/32 146/209/32 151/211/32 -f 144/469/6 133/212/6 145/213/6 -f 133/212/30 131/214/30 134/216/30 -f 149/470/33 148/217/33 150/219/33 -f 147/194/6 139/220/6 148/195/6 -f 135/205/33 133/212/33 136/222/33 -f 149/225/6 150/471/6 156/472/6 -f 156/472/6 155/473/6 154/223/6 -f 154/223/6 153/474/6 152/224/6 -f 152/224/6 151/475/6 149/225/6 -f 149/225/6 156/472/6 154/223/6 -f 131/214/6 133/212/6 143/227/6 -f 135/205/34 136/222/34 137/206/34 -f 137/206/6 139/220/6 146/209/6 -f 143/227/35 144/226/35 155/230/35 -f 137/206/36 138/228/36 139/220/36 -f 130/201/7 128/200/7 157/233/7 -f 141/221/37 142/234/37 127/235/37 -f 139/220/35 140/231/35 141/221/35 -f 125/239/36 143/236/36 156/238/36 -f 129/197/6 131/208/6 125/239/6 -f 141/221/6 127/235/6 148/217/6 -f 126/199/34 125/198/34 150/241/34 -f 144/469/37 145/213/37 154/243/37 -f 162/476/31 161/244/31 170/246/31 -f 134/216/7 132/215/7 160/248/7 -f 142/234/7 140/231/7 164/250/7 -f 136/222/7 134/216/7 161/252/7 -f 158/264/7 128/200/7 164/253/7 -f 162/476/7 138/228/7 161/244/7 -f 132/207/7 130/201/7 159/255/7 -f 163/477/7 140/231/7 162/256/7 -f 167/259/7 165/478/7 166/479/7 -f 166/479/7 172/480/7 167/259/7 -f 171/257/7 170/481/7 169/482/7 -f 169/482/7 168/258/7 171/257/7 -f 167/259/7 172/480/7 171/257/7 -f 160/248/35 159/247/35 168/261/35 -f 157/233/34 158/232/34 165/263/34 -f 166/483/33 158/264/33 172/265/33 -f 163/477/32 162/256/32 171/267/32 -f 161/252/37 160/251/37 169/269/37 -f 159/255/36 157/254/36 167/271/36 -f 172/484/30 164/250/30 171/272/30 -f 4/12/9 2/4/9 8/1/9 -f 173/287/38 174/273/38 175/275/38 -f 175/275/7 176/274/7 177/277/7 -f 177/277/39 178/276/39 179/279/39 -f 179/485/40 180/280/40 181/282/40 -f 186/289/62 196/283/62 204/285/62 -f 183/288/42 184/286/42 173/287/42 -f 181/282/6 182/281/6 183/288/6 -f 185/303/38 186/289/38 187/291/38 -f 187/291/7 188/290/7 189/293/7 -f 189/293/39 190/292/39 191/295/39 -f 191/486/40 192/296/40 193/298/40 -f 182/324/63 180/299/63 201/301/63 -f 195/304/42 196/302/42 185/303/42 -f 193/298/6 194/297/6 195/304/6 -f 207/335/64 206/305/64 219/307/64 -f 212/487/65 200/308/65 211/310/65 -f 197/316/66 176/274/66 198/311/66 -f 200/488/67 180/312/67 199/314/67 -f 196/283/6 194/297/6 208/284/6 -f 199/314/7 178/313/7 197/316/7 -f 194/297/63 192/296/63 207/315/63 -f 203/321/66 188/290/66 204/285/66 -f 206/489/67 192/318/67 205/320/67 -f 205/320/7 190/319/7 203/321/7 -f 174/273/62 184/322/62 198/311/62 -f 184/322/6 182/324/6 202/323/6 -f 231/359/68 219/325/68 230/327/68 -f 212/490/69 211/328/69 224/330/69 -f 215/339/70 203/321/70 216/331/70 -f 201/340/64 200/332/64 213/334/64 -f 208/342/6 207/335/6 220/336/6 -f 209/343/70 197/316/70 210/337/70 -f 217/345/7 205/338/7 215/339/7 -f 202/346/6 201/340/6 214/341/6 -f 204/285/71 208/342/71 216/331/71 -f 211/310/7 199/309/7 209/343/7 -f 218/491/65 206/344/65 217/345/65 -f 198/311/71 202/346/71 210/337/71 -f 224/492/72 223/347/72 236/349/72 -f 234/384/73 222/350/73 238/352/73 -f 215/339/74 216/331/74 227/354/74 -f 225/363/68 213/355/68 224/357/68 -f 232/364/6 220/358/6 231/359/6 -f 209/343/74 210/337/74 221/360/74 -f 217/365/7 215/339/7 229/361/7 -f 226/367/6 214/362/6 225/363/6 -f 228/353/75 216/331/75 232/364/75 -f 211/328/7 209/343/7 223/329/7 -f 218/493/69 217/365/69 230/366/69 -f 222/350/75 210/337/75 226/367/75 -f 236/494/56 235/368/56 248/370/56 -f 234/405/57 238/371/57 246/373/57 -f 243/383/76 231/374/76 242/376/76 -f 227/354/77 228/353/77 239/378/77 -f 237/387/76 225/379/76 236/381/76 -f 244/388/6 232/382/6 243/383/6 -f 221/360/77 222/350/77 233/385/77 -f 229/389/7 227/354/7 241/386/7 -f 238/352/6 226/351/6 237/387/6 -f 240/377/73 228/353/73 244/388/73 -f 223/347/7 221/360/7 235/348/7 -f 230/495/72 229/389/72 242/390/72 -f 258/496/7 257/391/7 260/393/7 -f 243/403/60 242/394/60 255/396/60 -f 239/407/61 240/397/61 251/399/61 -f 237/409/60 236/400/60 249/402/60 -f 244/410/6 243/403/6 256/404/6 -f 233/411/61 234/405/61 245/406/61 -f 241/412/7 239/407/7 253/408/7 -f 238/371/6 237/409/6 250/372/6 -f 252/398/57 240/397/57 256/404/57 -f 235/368/7 233/411/7 247/369/7 -f 242/497/56 241/412/56 254/413/56 -f 262/498/7 261/414/7 264/416/7 diff --git a/src/main/resources/assets/hbm/models/ams_limiter_destroyed.obj b/src/main/resources/assets/hbm/models/ams_limiter_destroyed.obj deleted file mode 100644 index 91b48848e..000000000 --- a/src/main/resources/assets/hbm/models/ams_limiter_destroyed.obj +++ /dev/null @@ -1,1975 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_limiter_destroyed.blend' -# www.blender.org -o Cube.001_Cube.002 -v 0.500001 0.000000 -2.500000 -v 0.250001 1.000000 -2.000000 -v 0.500000 0.000000 2.500000 -v 0.250000 1.000000 2.500000 -v -0.499999 0.000000 -2.500000 -v -0.249999 1.000000 -2.000000 -v -0.500000 0.000000 2.500000 -v -0.250000 1.000000 2.500000 -v 0.156251 0.343750 -2.500000 -v 0.156251 0.656250 -2.500000 -v 0.156251 0.343750 -2.150000 -v 0.156251 0.656250 -2.150000 -v -0.156249 0.343750 -2.500000 -v -0.156249 0.656250 -2.500000 -v -0.156249 0.343750 -2.150000 -v -0.156249 0.656250 -2.150000 -v -0.500000 0.343750 -0.156250 -v -0.500000 0.656250 -0.156250 -v 0.500000 0.343750 -0.156250 -v 0.500000 0.656250 -0.156250 -v -0.500000 0.343750 0.156250 -v -0.500000 0.656250 0.156250 -v 0.500000 0.343750 0.156250 -v 0.500000 0.656250 0.156250 -v -0.000000 6.000000 2.250000 -v 0.000000 6.000000 -0.750000 -v -0.353553 5.853553 2.250000 -v -0.284015 5.814950 -0.671109 -v -0.500000 5.500000 2.250000 -v -0.500000 5.500000 -0.750000 -v -0.353553 5.146447 2.250000 -v -0.353553 5.146447 -0.750000 -v 0.000000 5.000000 2.250000 -v 0.000000 5.000000 -0.750000 -v 0.353553 5.146447 2.250000 -v 0.353554 5.146447 -0.750000 -v 0.500000 5.500000 2.250000 -v 0.500000 5.500000 -0.750000 -v 0.353553 5.853553 2.250000 -v 0.353554 5.853553 -0.750000 -v -0.000000 5.875000 2.250000 -v -0.265165 5.765165 2.250000 -v -0.375000 5.500000 2.250000 -v -0.265165 5.234835 2.250000 -v -0.000000 5.125000 2.250000 -v 0.265165 5.234835 2.250000 -v 0.375000 5.500000 2.250000 -v 0.265165 5.765165 2.250000 -v -0.000000 5.875000 2.400000 -v -0.265165 5.765165 2.400000 -v -0.375000 5.500000 2.400000 -v -0.265165 5.234835 2.400000 -v -0.000000 5.125000 2.400000 -v 0.265165 5.234835 2.400000 -v 0.375000 5.500000 2.400000 -v 0.265165 5.765165 2.400000 -v -0.176776 5.676777 -1.000000 -v 0.000000 5.750000 -1.000000 -v -0.250000 5.500000 -1.000000 -v -0.176776 5.323223 -1.000000 -v 0.000000 5.250000 -1.000000 -v 0.176777 5.323223 -1.000000 -v 0.250000 5.500000 -1.000000 -v 0.117861 5.676777 -1.000000 -v 0.250000 3.000000 0.000000 -v -0.250000 3.000000 0.000000 -v 0.250000 3.000000 -1.000000 -v -0.250000 3.000000 -1.000000 -v 0.250000 5.500000 1.000000 -v -0.250000 5.500000 1.000000 -v 0.250000 5.500000 0.000000 -v -0.250000 5.500000 0.000000 -v 0.250000 1.000000 2.000000 -v -0.250000 1.000000 2.000000 -v 0.250000 1.000000 1.000000 -v -0.250000 1.000000 1.000000 -v 0.500000 2.668544 -0.168544 -v 0.500000 3.000000 -0.031250 -v -0.423231 5.685335 -0.750000 -v -0.500000 3.000000 0.125000 -v 0.500000 2.558058 -0.058058 -v -0.384796 2.558058 -0.058058 -v 0.500000 2.375000 -0.500000 -v -0.384796 2.375000 -0.500000 -v 0.500000 2.558058 -0.941942 -v -0.500000 2.558058 -0.941942 -v 0.500000 3.000000 -1.125000 -v -0.419908 3.000000 -1.125000 -v 0.500001 3.441942 -0.941942 -v -0.419908 3.441942 -0.941942 -v 0.500000 3.625000 -0.500000 -v -0.500000 3.625000 -0.500000 -v 0.500000 3.441942 -0.058058 -v -0.500000 3.441942 -0.058058 -v 0.500000 2.531250 -0.500000 -v 0.500000 2.668544 -0.831456 -v 0.500000 3.000000 -0.968750 -v 0.500001 3.331456 -0.831456 -v 0.500000 3.468750 -0.500000 -v 0.500000 3.331456 -0.168544 -v 0.375000 3.331456 -0.168544 -v 0.375000 3.000000 -0.031250 -v 0.375001 3.468750 -0.500000 -v 0.375001 3.331456 -0.831456 -v 0.375000 3.000000 -0.968750 -v 0.375000 2.668544 -0.831456 -v 0.375000 2.531250 -0.500000 -v 0.375000 2.668544 -0.168544 -v -0.384796 2.668544 -0.168544 -v -0.500000 3.000000 -0.031250 -v -0.384796 2.531250 -0.500000 -v -0.500000 2.668544 -0.831456 -v -0.419908 3.000000 -0.968750 -v -0.419908 3.331456 -0.831456 -v -0.500000 3.468750 -0.500000 -v -0.500000 3.331456 -0.168544 -v -0.375000 2.668544 -0.168544 -v -0.375000 3.000000 -0.031250 -v -0.375000 2.531250 -0.500000 -v -0.375000 2.668544 -0.831456 -v -0.375000 3.000000 -0.968750 -v -0.375000 3.331456 -0.831456 -v -0.375000 3.468750 -0.500000 -v -0.375000 3.331456 -0.168544 -v 0.500000 0.668544 1.831456 -v 0.442675 1.000000 1.968750 -v 0.500000 1.000000 2.125000 -v -0.500000 1.000000 2.125000 -v 0.500000 0.558058 1.941942 -v -0.500000 0.558058 1.941942 -v 0.473514 0.375000 1.500000 -v -0.500000 0.375000 1.500000 -v 0.500000 0.558058 1.058058 -v -0.409995 0.558058 1.058058 -v 0.500000 1.000000 0.875000 -v -0.500000 1.000000 0.875000 -v 0.500000 1.441942 1.058058 -v -0.389769 1.441942 1.058058 -v 0.500000 1.625000 1.500000 -v -0.500000 1.625000 1.500000 -v 0.454203 1.441942 1.941942 -v -0.500000 1.441942 1.941942 -v 0.500000 0.531250 1.500000 -v 0.500000 0.668544 1.168544 -v 0.468772 1.000000 1.031250 -v 0.500000 1.331456 1.168544 -v 0.500000 1.468750 1.500000 -v 0.500000 1.331456 1.831456 -v 0.375000 1.331456 1.831456 -v 0.375000 1.000000 1.968750 -v 0.375000 1.468750 1.500000 -v 0.375000 1.331456 1.168544 -v 0.375000 1.000000 1.031250 -v 0.375000 0.668544 1.168544 -v 0.375000 0.531250 1.500000 -v 0.375000 0.668544 1.831456 -v -0.500000 0.668544 1.831456 -v -0.500000 1.000000 1.968750 -v -0.500000 0.531250 1.500000 -v -0.437944 0.668544 1.168544 -v -0.500000 1.000000 1.031250 -v -0.500000 1.331456 1.168544 -v -0.500000 1.468750 1.500000 -v -0.500000 1.331456 1.831456 -v -0.375000 0.668544 1.831456 -v -0.375000 1.000000 1.968750 -v -0.375000 0.531250 1.500000 -v -0.375000 0.668544 1.168544 -v -0.375000 1.000000 1.031250 -v -0.375000 1.331456 1.168544 -v -0.375000 1.468750 1.500000 -v -0.375000 1.331456 1.831456 -v 0.125000 5.550000 -1.000000 -v 0.125001 5.550000 -1.529299 -v 0.081699 5.525000 -1.000000 -v 0.081699 5.525000 -1.500000 -v 0.081699 5.475000 -1.000000 -v 0.081699 5.475000 -1.500000 -v 0.125000 5.450000 -1.000000 -v 0.125001 5.465403 -1.500000 -v 0.168302 5.475000 -1.000000 -v 0.168302 5.490403 -1.500000 -v 0.168302 5.525000 -1.000000 -v 0.168302 5.525000 -1.529299 -v -0.125000 5.550000 -1.000000 -v -0.124999 5.550000 -1.415755 -v -0.168301 5.525000 -1.000000 -v -0.168301 5.525000 -1.415755 -v -0.168301 5.475000 -1.000000 -v -0.168301 5.475000 -1.444207 -v -0.125000 5.450000 -1.000000 -v -0.124999 5.450000 -1.444207 -v -0.081698 5.475000 -1.000000 -v -0.081698 5.475000 -1.401928 -v -0.081698 5.525000 -1.000000 -v -0.081698 5.525000 -1.401928 -v 0.081699 5.493492 -1.608551 -v 0.125001 5.516984 -1.617101 -v 0.081699 5.446507 -1.591449 -v 0.125001 5.423015 -1.582899 -v 0.158606 5.461866 -1.572706 -v 0.158606 5.508851 -1.589807 -v 0.060597 5.404948 -1.710039 -v 0.107675 5.424099 -1.726108 -v 0.060597 5.366646 -1.677899 -v 0.125001 5.378422 -1.661829 -v 0.149664 5.397573 -1.677899 -v 0.132338 5.404948 -1.710039 -v 0.088062 5.291929 -1.776042 -v 0.125001 5.296270 -1.779593 -v 0.088062 5.283247 -1.726802 -v 0.125001 5.278905 -1.702182 -v 0.168302 5.283247 -1.726802 -v 0.168302 5.291929 -1.754973 -v 0.081699 5.139866 -1.802469 -v 0.125001 5.139866 -1.827469 -v 0.081699 5.139866 -1.752469 -v 0.125001 5.139866 -1.727469 -v 0.168302 5.139866 -1.752469 -v 0.168302 5.139866 -1.802469 -v -0.168301 2.329531 -1.802469 -v -0.124999 2.329531 -1.827469 -v -0.168301 2.374010 -1.752469 -v -0.124999 2.374009 -1.727469 -v -0.081698 2.349475 -1.752469 -v -0.081698 2.349475 -1.802469 -v 0.081690 0.999866 -1.802482 -v 0.124992 0.999866 -1.827482 -v 0.081690 0.999866 -1.752481 -v 0.124992 0.999866 -1.727482 -v 0.168293 0.999866 -1.752481 -v 0.168293 0.999866 -1.802482 -v -0.168310 0.999866 -1.802482 -v -0.125008 0.999866 -1.827482 -v -0.168310 0.999866 -1.752481 -v -0.125008 0.999866 -1.727482 -v -0.081707 0.999866 -1.752481 -v -0.081707 0.999866 -1.802482 -v -0.353553 5.853553 2.109199 -v -0.000000 6.000000 2.100358 -v 0.000000 6.000000 0.153545 -v -0.353553 5.853553 -0.082499 -v 0.250000 6.112938 -0.437500 -v 0.288408 6.184640 -0.349866 -v 0.250000 5.875000 -0.437500 -v 0.250000 5.875000 -0.312500 -v -0.250000 2.597353 0.402647 -v -0.250000 2.463976 0.536024 -v -0.250000 2.398072 0.601928 -v -0.250000 2.289816 0.710184 -v -0.250000 2.256785 0.241390 -v -0.095115 2.543376 0.456624 -v -0.250000 2.042544 0.412356 -v -0.117151 2.340268 0.659732 -v 0.000000 6.000000 0.627565 -v -0.179890 5.925487 2.136442 -v -0.500000 5.500000 -0.016080 -v -0.429121 5.671118 2.161449 -v -0.480274 5.547625 2.114357 -v -0.500000 5.500000 2.124016 -v -0.423915 5.683683 -0.152559 -v 0.019273 5.946055 2.527040 -v -0.287760 5.818878 2.527040 -v -0.414938 5.511845 2.527040 -v -0.287760 5.204813 2.527040 -v 0.019273 5.077635 2.527040 -v -0.250000 4.101781 0.440713 -v 0.453483 5.511845 2.527040 -v 0.326306 5.818878 2.527040 -v -0.305937 5.774995 2.527040 -v -0.350030 5.355145 2.527040 -v -0.320766 5.284495 2.527040 -v -0.307236 5.336403 2.400000 -v -0.295632 5.308388 2.400000 -v 0.291434 5.833322 2.527040 -v 0.283332 5.187013 2.527040 -v 0.338103 5.233295 2.527040 -v 0.309289 5.341361 2.400000 -v 0.368675 5.307101 2.527040 -v 0.352046 5.266954 2.527040 -v -0.303246 5.326770 2.299464 -v -0.047650 5.105355 2.527040 -v -0.250000 4.905931 0.762372 -v -0.250000 4.914361 0.377399 -v -0.250000 4.788579 0.002054 -v -0.250000 4.696013 0.417826 -v -0.250000 4.609168 0.350851 -v -0.250000 4.568822 -0.067782 -v -0.298062 4.464652 0.269784 -v -0.250000 4.394123 0.045963 -v -0.104880 4.837244 0.734897 -v -0.046049 4.696583 0.678633 -v -0.006951 4.433455 0.535678 -v -0.437121 2.905017 -1.085657 -v -0.447927 2.845390 -1.060958 -v -0.438181 2.903665 -0.997329 -v -0.460508 2.775968 -1.032203 -v -0.454160 2.810996 -1.046712 -v -0.141359 2.854985 -1.064933 -v 0.250000 1.000000 -0.512755 -v -0.500000 0.000000 -0.719755 -v -0.250000 1.000000 -0.353168 -v 0.250000 1.000000 -0.912394 -v -0.500000 0.000000 -1.023838 -v -0.237882 2.780495 -1.034078 -v -0.250000 1.000000 -1.034424 -v -0.453965 2.814699 -0.997020 -v -0.206808 0.943261 -0.495975 -v -0.206808 0.943261 -0.891617 -v 0.308540 3.000000 0.125000 -v 0.500000 2.879200 0.074963 -v 0.500000 3.152224 0.061947 -v -0.353553 5.853553 -0.487427 -v -0.112383 5.953449 -0.750000 -v -0.239789 5.739789 -0.910887 -v 0.375000 5.500000 2.240000 -v 0.265165 5.234835 2.240000 -v -0.000000 5.125000 2.240000 -v -0.265165 5.234835 2.240000 -v -0.375000 5.500000 2.240000 -v -0.265165 5.765165 2.240000 -v -0.000000 5.875000 2.240000 -v -0.434729 5.657577 -0.552405 -v 0.265165 5.765165 2.240000 -v 0.375000 5.500000 -0.260000 -v 0.265165 5.765165 -0.260000 -v 0.000000 5.125000 -0.260000 -v 0.265165 5.234835 -0.260000 -v -0.265165 5.234835 -0.260000 -v -0.375000 5.500000 -0.260000 -v -0.265165 5.765165 -0.260000 -v 0.000000 5.875000 -0.260000 -v 0.250000 4.286113 -0.485555 -v 0.250000 4.531216 -0.387513 -v -0.500000 5.500000 0.327085 -v -0.500000 5.500000 0.748971 -v 0.244522 5.898715 0.595689 -v 0.000000 6.000000 1.520329 -v 0.250000 4.220100 0.030607 -v 0.101789 4.412081 -0.435168 -v 0.000000 6.000000 1.384084 -v -0.500000 5.500000 1.135705 -v -0.500000 5.500000 0.991573 -v -0.444947 5.367091 0.454149 -v -0.479794 5.451220 0.533265 -v -0.404518 5.269486 0.654633 -v 0.291628 5.879205 1.518940 -v -0.500000 5.500000 1.684756 -v -0.500000 5.500000 1.532431 -v -0.403552 5.267155 1.084509 -v 0.000000 6.000000 0.540157 -v -0.390852 5.236492 1.604031 -v -0.500000 1.479257 1.851856 -v -0.500000 1.519205 1.755411 -v -0.500000 1.569501 1.633987 -v 0.000000 5.875000 0.744922 -v -0.265165 5.765165 0.805178 -v -0.265165 5.765165 0.633837 -v -0.375000 5.500000 0.684706 -v 0.250000 2.117095 -0.117095 -v 0.250000 2.322012 -0.322012 -v -0.500000 1.433133 1.723705 -v -0.064632 1.568936 1.635352 -v -0.265165 5.765165 0.977100 -v -0.287144 1.509039 1.779956 -v -0.265165 5.765165 1.102731 -v 0.250000 2.418591 -0.005401 -v -0.046211 2.207144 -0.207144 -v 0.000000 5.875000 1.045270 -v -0.350791 5.558444 0.958491 -v -0.375000 5.500000 1.655340 -v -0.265165 5.765165 1.554705 -v -0.265165 5.765165 1.755584 -v -0.000000 5.875000 2.021457 -v -0.375000 5.500000 0.306500 -v -0.078299 5.842568 1.666237 -v -0.375000 5.500000 1.994211 -v 0.353554 5.146447 1.421638 -v 0.353554 5.146447 1.661390 -v 0.147143 5.060948 1.550736 -v 0.455659 5.392951 1.494021 -vt 0.400957 0.088468 -vt 0.469079 0.071437 -vt 0.469079 0.139559 -vt 0.094411 0.122528 -vt 0.018249 0.139558 -vt 0.018249 0.071438 -vt 0.658668 0.642378 -vt 0.439333 0.710500 -vt 0.318060 0.642378 -vt 0.160908 0.018251 -vt 0.160186 0.088468 -vt 0.094411 0.088468 -vt 0.168499 0.122529 -vt 0.195722 0.122529 -vt 0.060350 0.192746 -vt 0.828219 0.664014 -vt 0.828219 0.685302 -vt 0.804376 0.685302 -vt 0.804376 0.642726 -vt 0.804376 0.621438 -vt 0.828219 0.621438 -vt 0.783088 0.685302 -vt 0.804376 0.706590 -vt 0.828219 0.706590 -vt 0.828219 0.642726 -vt 0.702025 0.333235 -vt 0.723313 0.333235 -vt 0.723313 0.401356 -vt 0.744601 0.311947 -vt 0.744601 0.333235 -vt 0.680737 0.401356 -vt 0.659449 0.401356 -vt 0.659449 0.333235 -vt 0.723313 0.422644 -vt 0.744601 0.401356 -vt 0.680737 0.333235 -vt 0.702025 0.401356 -vt 0.502511 0.909263 -vt 0.504938 0.895447 -vt 0.517319 0.901112 -vt 0.497553 0.785962 -vt 0.490522 0.782412 -vt 0.344447 0.746998 -vt 0.341246 0.858949 -vt 0.341246 0.832880 -vt 0.545611 0.832880 -vt 0.946940 0.092025 -vt 0.946940 0.109603 -vt 0.930217 0.118264 -vt 0.930645 0.096813 -vt 0.044137 0.750250 -vt 0.044137 0.776319 -vt 0.020951 0.769802 -vt 0.248501 0.750250 -vt 0.577027 0.776666 -vt 0.577027 0.746998 -vt 0.585980 0.750706 -vt 0.958150 0.747616 -vt 0.957827 0.757829 -vt 0.938285 0.757211 -vt 0.248501 0.776319 -vt 0.256368 0.779578 -vt 0.256368 0.799129 -vt 0.545611 0.858949 -vt 0.553478 0.836139 -vt 0.256368 0.753509 -vt 0.273664 0.650502 -vt 0.281531 0.653761 -vt 0.281531 0.673313 -vt 0.850036 0.831736 -vt 0.857902 0.834998 -vt 0.857895 0.854549 -vt 0.771947 0.051768 -vt 0.771947 0.021394 -vt 0.781113 0.025191 -vt 0.273664 0.676571 -vt 0.281531 0.679830 -vt 0.281531 0.699382 -vt 0.365262 0.928824 -vt 0.331885 0.942649 -vt 0.318060 0.909272 -vt 0.933009 0.174796 -vt 0.944706 0.164578 -vt 0.952560 0.174796 -vt 0.553817 0.952382 -vt 0.564035 0.952382 -vt 0.564035 0.971934 -vt 0.401760 0.973945 -vt 0.401760 0.954393 -vt 0.411978 0.954393 -vt 0.944068 0.426203 -vt 0.944068 0.436421 -vt 0.924516 0.436421 -vt 0.508824 0.974249 -vt 0.498605 0.974249 -vt 0.498605 0.954698 -vt 0.637022 0.605543 -vt 0.617515 0.604219 -vt 0.625435 0.587650 -vt 0.162101 0.934387 -vt 0.162101 0.944605 -vt 0.142550 0.944605 -vt 0.234985 0.848103 -vt 0.244202 0.838886 -vt 0.247910 0.868819 -vt 0.506154 0.895717 -vt 0.489277 0.897996 -vt 0.645662 0.857734 -vt 0.622478 0.851209 -vt 0.622483 0.838175 -vt 0.533836 0.021394 -vt 0.533836 0.051767 -vt 0.505577 0.039854 -vt 0.489277 0.918177 -vt 0.344447 0.776666 -vt 0.318060 0.769249 -vt 0.318060 0.754415 -vt 0.044137 0.802388 -vt 0.020951 0.795871 -vt 0.318060 0.852432 -vt 0.617225 0.460597 -vt 0.581777 0.460597 -vt 0.584093 0.447107 -vt 0.487197 0.300176 -vt 0.453736 0.299806 -vt 0.462289 0.272359 -vt 0.226972 0.713752 -vt 0.043549 0.713752 -vt 0.729483 0.630321 -vt 0.501015 0.303450 -vt 0.529630 0.302031 -vt 0.507894 0.317571 -vt 0.839737 0.896739 -vt 0.863566 0.910359 -vt 0.837653 0.915294 -vt 0.815623 0.422644 -vt 0.958271 0.815391 -vt 0.815623 0.230485 -vt 0.919494 0.894303 -vt 0.939620 0.908339 -vt 0.931126 0.918223 -vt 0.858361 0.497771 -vt 0.810192 0.545940 -vt 0.102345 0.949425 -vt 0.476163 0.596964 -vt 0.476168 0.605696 -vt 0.451106 0.605710 -vt 0.523041 0.586973 -vt 0.547440 0.586971 -vt 0.543244 0.597104 -vt 0.547436 0.524865 -vt 0.513862 0.573534 -vt 0.409614 0.596780 -vt 0.409609 0.605359 -vt 0.384985 0.605343 -vt 0.380893 0.586854 -vt 0.413724 0.586875 -vt 0.581012 0.524862 -vt 0.442763 0.596911 -vt 0.442757 0.605585 -vt 0.417862 0.605569 -vt 0.321839 0.526230 -vt 0.353193 0.520840 -vt 0.348922 0.585358 -vt 0.509655 0.597021 -vt 0.509647 0.605780 -vt 0.484506 0.605756 -vt 0.446918 0.586896 -vt 0.480334 0.586877 -vt 0.365339 0.539037 -vt 0.374487 0.522087 -vt 0.156766 0.897889 -vt 0.139484 0.856168 -vt 0.181205 0.838886 -vt 0.318060 0.583315 -vt 0.344448 0.594416 -vt 0.380047 0.524194 -vt 0.413095 0.523389 -vt 0.321301 0.592884 -vt 0.343914 0.602481 -vt 0.446445 0.517279 -vt 0.513858 0.516781 -vt 0.520144 0.507793 -vt 0.480066 0.516928 -vt 0.551638 0.597103 -vt 0.576821 0.597101 -vt 0.576821 0.605875 -vt 0.581017 0.586968 -vt 0.502309 0.586898 -vt 0.484515 0.596997 -vt 0.518061 0.597106 -vt 0.543244 0.605878 -vt 0.352322 0.598308 -vt 0.344678 0.594912 -vt 0.383935 0.514120 -vt 0.383860 0.511018 -vt 0.408645 0.510414 -vt 0.323884 0.516336 -vt 0.450542 0.507089 -vt 0.475757 0.506826 -vt 0.813480 0.968780 -vt 0.828649 0.968780 -vt 0.828170 0.972340 -vt 0.484246 0.506711 -vt 0.509590 0.506602 -vt 0.408721 0.513517 -vt 0.551632 0.514732 -vt 0.415288 0.512689 -vt 0.759700 0.953306 -vt 0.717979 0.911585 -vt 0.735261 0.894303 -vt 0.323591 0.515774 -vt 0.344169 0.505065 -vt 0.545851 0.514012 -vt 0.524715 0.500304 -vt 0.484207 0.497881 -vt 0.509552 0.497771 -vt 0.414064 0.509798 -vt 0.437162 0.500025 -vt 0.378974 0.517449 -vt 0.358061 0.514220 -vt 0.360682 0.507519 -vt 0.551632 0.514044 -vt 0.576814 0.514042 -vt 0.450450 0.498303 -vt 0.475665 0.498040 -vt 0.162250 0.602225 -vt 0.184293 0.600530 -vt 0.184884 0.608210 -vt 0.218732 0.594048 -vt 0.250083 0.594109 -vt 0.246145 0.603563 -vt 0.218860 0.528510 -vt 0.250211 0.528571 -vt 0.094344 0.604751 -vt 0.120918 0.604233 -vt 0.120297 0.613438 -vt 0.089934 0.593849 -vt 0.125238 0.593540 -vt 0.281562 0.528632 -vt 0.281437 0.592435 -vt 0.129290 0.603407 -vt 0.153782 0.603481 -vt 0.153757 0.612014 -vt 0.085554 0.604955 -vt 0.058572 0.604665 -vt 0.018249 0.591864 -vt 0.018249 0.518920 -vt 0.054092 0.525664 -vt 0.214243 0.603989 -vt 0.214417 0.608421 -vt 0.190923 0.609348 -vt 0.187387 0.590985 -vt 0.089934 0.518920 -vt 0.639760 0.953306 -vt 0.622478 0.911585 -vt 0.664200 0.894303 -vt 0.054091 0.593849 -vt 0.049067 0.604423 -vt 0.129624 0.529633 -vt 0.157894 0.593638 -vt 0.048590 0.613777 -vt 0.021743 0.612409 -vt 0.167431 0.529225 -vt 0.222798 0.519056 -vt 0.246311 0.519102 -vt 0.182837 0.530371 -vt 0.980000 0.613642 -vt 0.973681 0.620436 -vt 0.965419 0.607394 -vt 0.277945 0.602217 -vt 0.278346 0.610399 -vt 0.254861 0.611550 -vt 0.254460 0.603367 -vt 0.190600 0.601162 -vt 0.222347 0.604340 -vt 0.245117 0.611690 -vt 0.086088 0.611961 -vt 0.059284 0.614004 -vt 0.097201 0.508039 -vt 0.099241 0.497771 -vt 0.128710 0.503626 -vt 0.024580 0.509072 -vt 0.051397 0.514080 -vt 0.047876 0.938643 -vt 0.044508 0.943906 -vt 0.018249 0.927523 -vt 0.056786 0.514080 -vt 0.186778 0.519268 -vt 0.254148 0.519118 -vt 0.277661 0.519164 -vt 0.135875 0.516297 -vt 0.163464 0.517863 -vt 0.876437 0.151028 -vt 0.834716 0.109307 -vt 0.851998 0.092025 -vt 0.027843 0.500293 -vt 0.222814 0.510864 -vt 0.246327 0.510910 -vt 0.213796 0.517871 -vt 0.186292 0.509854 -vt 0.136421 0.506684 -vt 0.164010 0.508251 -vt 0.055143 0.509659 -vt 0.080340 0.500293 -vt 0.254164 0.510925 -vt 0.277677 0.510971 -vt 0.180160 0.525735 -vt 0.171603 0.523815 -vt 0.172272 0.520834 -vt 0.613535 0.392672 -vt 0.589096 0.359843 -vt 0.593583 0.359448 -vt 0.596585 0.357012 -vt 0.619847 0.387949 -vt 0.599330 0.354949 -vt 0.582066 0.367826 -vt 0.585202 0.365566 -vt 0.607332 0.397289 -vt 0.610433 0.394980 -vt 0.585995 0.362151 -vt 0.555755 0.905665 -vt 0.555755 0.902259 -vt 0.584077 0.902259 -vt 0.553817 0.898853 -vt 0.584077 0.898853 -vt 0.553817 0.895447 -vt 0.584077 0.895447 -vt 0.584077 0.915884 -vt 0.553817 0.915884 -vt 0.556697 0.912478 -vt 0.578440 0.362946 -vt 0.576435 0.355877 -vt 0.580429 0.356940 -vt 0.556697 0.909072 -vt 0.584077 0.905665 -vt 0.584077 0.909072 -vt 0.593483 0.349786 -vt 0.592996 0.340362 -vt 0.597846 0.342550 -vt 0.586276 0.352998 -vt 0.589917 0.351476 -vt 0.599696 0.355426 -vt 0.593600 0.350089 -vt 0.585240 0.360681 -vt 0.584203 0.355788 -vt 0.582384 0.362835 -vt 0.592364 0.338579 -vt 0.590371 0.330901 -vt 0.593742 0.329886 -vt 0.576355 0.351266 -vt 0.577270 0.344170 -vt 0.580041 0.344164 -vt 0.584969 0.341689 -vt 0.583357 0.354886 -vt 0.579535 0.353906 -vt 0.589070 0.340750 -vt 0.582250 0.342223 -vt 0.590383 0.330750 -vt 0.591000 0.319261 -vt 0.594882 0.319966 -vt 0.583504 0.330766 -vt 0.579571 0.331086 -vt 0.579353 0.318516 -vt 0.576734 0.341757 -vt 0.573855 0.333787 -vt 0.577406 0.332066 -vt 0.586443 0.330528 -vt 0.582313 0.340895 -vt 0.579505 0.341764 -vt 0.971987 0.662547 -vt 0.968435 0.663880 -vt 0.972350 0.659161 -vt 0.579590 0.331264 -vt 0.591072 0.318857 -vt 0.619036 0.094519 -vt 0.622950 0.095018 -vt 0.579330 0.317361 -vt 0.607293 0.093023 -vt 0.611208 0.093522 -vt 0.968372 0.656934 -vt 0.577245 0.331136 -vt 0.573340 0.331703 -vt 0.571766 0.320662 -vt 0.583244 0.317860 -vt 0.965419 0.658631 -vt 0.575607 0.319758 -vt 0.587158 0.318359 -vt 0.965419 0.662298 -vt 0.514399 0.915940 -vt 0.508984 0.180204 -vt 0.505578 0.181875 -vt 0.505577 0.088266 -vt 0.515796 0.178845 -vt 0.515795 0.088266 -vt 0.519201 0.088266 -vt 0.571501 0.316364 -vt 0.599465 0.092025 -vt 0.603379 0.092524 -vt 0.512390 0.180204 -vt 0.508983 0.088266 -vt 0.615122 0.094020 -vt 0.519202 0.178845 -vt 0.522607 0.088266 -vt 0.575415 0.316863 -vt 0.512389 0.088266 -vt 0.526014 0.181875 -vt 0.522608 0.181875 -vt 0.967051 0.566473 -vt 0.965419 0.550346 -vt 0.973890 0.549489 -vt 0.919494 0.919973 -vt 0.923216 0.230485 -vt 0.941443 0.249540 -vt 0.933717 0.256310 -vt 0.923215 0.257932 -vt 0.870748 0.926350 -vt 0.873626 0.906938 -vt 0.886717 0.422408 -vt 0.968476 0.700378 -vt 0.971646 0.702682 -vt 0.965475 0.701990 -vt 0.971646 0.706088 -vt 0.968550 0.707791 -vt 0.965419 0.706450 -vt 0.263470 0.702640 -vt 0.265928 0.689376 -vt 0.273664 0.702640 -vt 0.264424 0.654014 -vt 0.265082 0.650503 -vt 0.421081 0.954098 -vt 0.421081 0.973501 -vt 0.945854 0.446542 -vt 0.923215 0.446542 -vt 0.452685 0.906504 -vt 0.429564 0.895447 -vt 0.452118 0.895447 -vt 0.637714 0.595349 -vt 0.631735 0.584872 -vt 0.640629 0.582439 -vt 0.162123 0.954127 -vt 0.401760 0.903747 -vt 0.426848 0.913635 -vt 0.618208 0.594024 -vt 0.617515 0.585026 -vt 0.623377 0.585424 -vt 0.713579 0.275449 -vt 0.664709 0.216727 -vt 0.662790 0.196243 -vt 0.933009 0.164578 -vt 0.930217 0.154763 -vt 0.945314 0.154763 -vt 0.452778 0.917599 -vt 0.486649 0.283867 -vt 0.489277 0.974146 -vt 0.952560 0.164578 -vt 0.948274 0.154763 -vt 0.958150 0.767827 -vt 0.938092 0.767192 -vt 0.573037 0.954869 -vt 0.831221 0.018249 -vt 0.858163 0.018249 -vt 0.817612 0.038365 -vt 0.846253 0.039083 -vt 0.852444 0.043265 -vt 0.400957 0.018249 -vt 0.206593 0.088468 -vt 0.826808 0.975449 -vt 0.255150 0.971853 -vt 0.234985 0.965983 -vt 0.255881 0.965983 -vt 0.252192 0.977094 -vt 0.374945 0.520030 -vt 0.366466 0.524366 -vt 0.400957 0.122529 -vt 0.760663 0.159314 -vt 0.787615 0.159314 -vt 0.786472 0.190672 -vt 0.772371 0.092025 -vt 0.798166 0.161946 -vt 0.798218 0.156903 -vt 0.759248 0.190672 -vt 0.750077 0.156832 -vt 0.751656 0.092026 -vt 0.750189 0.162232 -vt 0.384227 0.596762 -vt 0.376300 0.599429 -vt 0.018249 0.884507 -vt 0.018249 0.871473 -vt 0.026514 0.869150 -vt 0.041435 0.891024 -vt 0.059322 0.864955 -vt 0.102986 0.891024 -vt 0.974986 0.028862 -vt 0.961918 0.018249 -vt 0.977712 0.018249 -vt 0.964634 0.035241 -vt 0.026514 0.860761 -vt 0.018249 0.858438 -vt 0.018249 0.845404 -vt 0.271518 0.365278 -vt 0.305339 0.351269 -vt 0.319348 0.385090 -vt 0.044237 0.865876 -vt 0.091431 0.838886 -vt 0.082134 0.852430 -vt 0.066031 0.324961 -vt 0.032191 0.338827 -vt 0.018325 0.304986 -vt 0.149494 0.243254 -vt 0.163503 0.229245 -vt 0.201517 0.433390 -vt 0.080080 0.311019 -vt 0.094129 0.297078 -vt 0.215566 0.419448 -vt 0.168789 0.345253 -vt 0.219262 0.395438 -vt 0.939730 0.361803 -vt 0.939730 0.382513 -vt 0.926494 0.389704 -vt 0.180276 0.301444 -vt 0.162414 0.283408 -vt 0.173420 0.461273 -vt 0.051983 0.338902 -vt 0.187468 0.447331 -vt 0.923215 0.374315 -vt 0.591578 0.436048 -vt 0.928920 0.681194 -vt 0.900693 0.746998 -vt 0.928920 0.497771 -vt 0.714085 0.021408 -vt 0.714043 0.021428 -vt 0.980031 0.607394 -vt 0.047907 0.927523 -vt 0.176013 0.527988 -vt 0.176814 0.526857 -vt 0.257511 0.907882 -vt 0.239158 0.929485 -vt 0.234985 0.906853 -vt 0.261122 0.929485 -vt 0.934067 0.294430 -vt 0.938155 0.312098 -vt 0.923215 0.325305 -vt 0.923215 0.305209 -vt 0.925420 0.039451 -vt 0.909017 0.050857 -vt 0.925103 0.018249 -vt 0.909017 0.029891 -vt 0.228512 0.350623 -vt 0.182176 0.336604 -vt 0.164000 0.312494 -vt 0.121967 0.269880 -vt 0.108010 0.283416 -vt 0.154990 0.331355 -vt 0.172126 0.320826 -vt 0.180732 0.329522 -vt 0.219147 0.368685 -vt 0.244365 0.366470 -vt 0.242891 0.392891 -vt 0.215951 0.361585 -vt 0.545252 0.436048 -vt 0.974213 0.497771 -vt 0.919494 0.975304 -vt 0.318060 0.710500 -vt 0.418618 0.710500 -vt 0.658668 0.710500 -vt 0.060350 0.018251 -vt 0.400957 0.192747 -vt 0.804376 0.664014 -vt 0.783088 0.706590 -vt 0.723313 0.311947 -vt 0.744601 0.422644 -vt 0.567260 0.776666 -vt 0.533204 0.776666 -vt 0.530571 0.786628 -vt 0.527515 0.796382 -vt 0.512476 0.786737 -vt 0.508746 0.795297 -vt 0.500327 0.794810 -vt 0.513747 0.795586 -vt 0.438825 0.777489 -vt 0.486018 0.777489 -vt 0.489536 0.786488 -vt 0.018249 0.755012 -vt 0.585980 0.772957 -vt 0.938608 0.746998 -vt 0.248501 0.802388 -vt 0.553478 0.855690 -vt 0.256368 0.773061 -vt 0.850027 0.857805 -vt 0.781113 0.047971 -vt 0.331885 0.895447 -vt 0.351437 0.895447 -vt 0.365262 0.909272 -vt 0.351437 0.942649 -vt 0.318060 0.928824 -vt 0.553817 0.971934 -vt 0.411978 0.973945 -vt 0.924516 0.426203 -vt 0.508824 0.954698 -vt 0.623619 0.594391 -vt 0.142550 0.934387 -vt 0.266453 0.848103 -vt 0.266453 0.861138 -vt 0.257236 0.870354 -vt 0.234985 0.861138 -vt 0.257236 0.838886 -vt 0.645671 0.831665 -vt 0.506800 0.028909 -vt 0.020951 0.782836 -vt 0.318060 0.839397 -vt 0.746590 0.661431 -vt 0.695166 0.710499 -vt 0.018249 0.650502 -vt 0.695166 0.621438 -vt 0.355846 0.229245 -vt 0.423968 0.229245 -vt 0.475902 0.359080 -vt 0.492089 0.399549 -vt 0.495288 0.341410 -vt 0.453990 0.304301 -vt 0.423968 0.399549 -vt 0.535003 0.307223 -vt 0.709438 0.795167 -vt 0.670648 0.795167 -vt 0.815155 0.746998 -vt 0.863324 0.795167 -vt 0.739066 0.795167 -vt 0.622478 0.746998 -vt 0.862157 0.916550 -vt 0.781653 0.422644 -vt 0.938092 0.804325 -vt 0.781653 0.230485 -vt 0.938092 0.824066 -vt 0.665684 0.497771 -vt 0.084406 0.935763 -vt 0.617515 0.545940 -vt 0.102345 0.927523 -vt 0.451101 0.596978 -vt 0.384991 0.596764 -vt 0.417867 0.596895 -vt 0.367717 0.523953 -vt 0.367435 0.525110 -vt 0.371401 0.524095 -vt 0.376007 0.523935 -vt 0.198487 0.856168 -vt 0.198487 0.880607 -vt 0.181205 0.897889 -vt 0.139484 0.880607 -vt 0.156766 0.838886 -vt 0.320767 0.600949 -vt 0.551639 0.605877 -vt 0.518062 0.605880 -vt 0.347900 0.512235 -vt 0.576815 0.514730 -vt 0.440567 0.508072 -vt 0.759700 0.894303 -vt 0.776982 0.911585 -vt 0.776982 0.936025 -vt 0.735261 0.953306 -vt 0.717979 0.936025 -vt 0.546210 0.513425 -vt 0.379916 0.515041 -vt 0.162840 0.609905 -vt 0.093878 0.611656 -vt 0.129265 0.611941 -vt 0.681481 0.911585 -vt 0.681481 0.936025 -vt 0.664200 0.953306 -vt 0.622478 0.936025 -vt 0.639760 0.894303 -vt 0.022220 0.603055 -vt 0.221790 0.608740 -vt 0.126670 0.513893 -vt 0.083604 0.509072 -vt 0.876437 0.092025 -vt 0.893719 0.109307 -vt 0.893719 0.133747 -vt 0.851998 0.151028 -vt 0.834716 0.133747 -vt 0.053040 0.509659 -vt 0.213309 0.508458 -vt 0.180829 0.522754 -vt 0.616694 0.390314 -vt 0.622950 0.385635 -vt 0.604196 0.399549 -vt 0.584077 0.912478 -vt 0.597427 0.349692 -vt 0.597214 0.348530 -vt 0.597563 0.337451 -vt 0.593888 0.331075 -vt 0.594987 0.319356 -vt 0.526013 0.088266 -vt 0.973890 0.570896 -vt 0.852790 0.422408 -vt 0.880906 0.932281 -vt 0.852790 0.230485 -vt 0.886717 0.230485 -vt 0.882996 0.902728 -vt 0.264072 0.676571 -vt 0.267632 0.663120 -vt 0.646356 0.592473 -vt 0.139484 0.954127 -vt 0.679518 0.172862 -vt 0.679518 0.092025 -vt 0.713579 0.092025 -vt 0.679518 0.275449 -vt 0.659449 0.236759 -vt 0.665904 0.227734 -vt 0.489277 0.954676 -vt 0.950756 0.154763 -vt 0.573037 0.972573 -vt 0.872519 0.032985 -vt 0.181621 0.018249 -vt 0.041435 0.882738 -vt 0.086906 0.864955 -vt 0.041435 0.838886 -vt 0.041435 0.852552 -vt 0.305339 0.399099 -vt 0.285527 0.399099 -vt 0.271518 0.385090 -vt 0.285527 0.351269 -vt 0.319348 0.365278 -vt 0.032374 0.291044 -vt 0.052166 0.291120 -vt 0.066107 0.305169 -vt 0.018249 0.324778 -vt 0.229349 0.405947 -vt 0.257509 0.379287 -vt 0.135837 0.256477 -vt 0.894860 0.497771 -vt 0.901594 0.748001 -vt 0.899823 0.849485 -vt 0.899823 0.747984 -vt 0.714008 0.018249 -vt 0.760070 0.021394 -vt 0.176314 0.528147 -vt 0.177471 0.528996 -vt 0.176490 0.528240 -vt 0.175398 0.528773 -vt 0.209003 0.357628 -vt 0.189764 0.338777 -vt 0.809938 0.831722 -vt 0.935257 0.960747 -vt 0.919494 0.956471 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.447200 -0.894400 -vn 0.000000 -1.000000 0.000000 -vn -0.970100 0.242500 -0.000000 -vn 0.970100 0.242500 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 1.000000 -0.000000 -vn -0.698100 0.713500 0.059600 -vn -0.923900 -0.382700 0.000000 -vn -0.382700 -0.923900 -0.000000 -vn 0.600100 -0.444000 0.665400 -vn 0.555300 -0.612200 -0.562900 -vn 0.678600 0.281100 -0.678600 -vn 0.923900 0.382700 0.000000 -vn 0.382700 0.923900 0.000000 -vn 0.923900 -0.382700 0.000000 -vn -0.923900 0.382700 -0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 0.923900 0.000000 -vn -0.529700 0.776600 -0.341100 -vn 0.281100 -0.678600 -0.678600 -vn 0.268700 0.648700 -0.712000 -vn -0.680000 0.654400 -0.330600 -vn -0.678600 -0.281100 -0.678600 -vn 0.678600 -0.281100 -0.678600 -vn -0.281100 -0.678600 -0.678600 -vn 0.663200 0.742400 0.094900 -vn -0.799100 0.483100 0.357800 -vn 0.000000 -0.707100 -0.707100 -vn -0.581200 0.665600 -0.468100 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.923900 -0.382700 -vn -0.967700 -0.252200 -0.000000 -vn 0.000000 0.382700 0.923900 -vn 0.000000 0.707100 -0.707100 -vn -0.967700 0.000000 0.252200 -vn -0.019900 0.674100 -0.738400 -vn -0.984000 -0.126100 -0.126100 -vn 0.966200 0.171000 0.193100 -vn 0.953200 0.279400 0.115700 -vn 0.998200 -0.042300 0.042300 -vn -0.238900 0.913700 -0.328800 -vn 0.983600 -0.166700 0.069100 -vn 0.898000 -0.291800 -0.329400 -vn -0.982900 0.000000 -0.184000 -vn -0.285800 0.331200 -0.899200 -vn -0.976500 -0.213000 -0.034000 -vn -0.970300 0.242000 0.000000 -vn -0.794800 0.560700 -0.232200 -vn -0.500000 0.866000 0.000000 -vn -0.216400 -0.976300 0.000000 -vn 0.499800 -0.865700 -0.026700 -vn 0.500000 0.866000 0.000000 -vn -0.500000 -0.866000 0.000000 -vn 0.500000 -0.866000 0.000000 -vn 0.665300 -0.664700 0.339900 -vn -0.037000 -0.729500 0.683000 -vn -0.500000 0.810600 -0.304800 -vn -0.207000 -0.934000 0.291000 -vn 0.477400 0.826900 -0.297200 -vn 0.991500 -0.084000 -0.099200 -vn -0.505800 -0.554200 0.661100 -vn 0.705900 -0.616700 0.348400 -vn -0.484100 0.702500 -0.521600 -vn 0.997300 -0.025200 -0.069400 -vn -0.986200 0.056600 0.155600 -vn 0.608200 0.530000 -0.590900 -vn -0.495600 -0.131700 0.858500 -vn 0.496900 0.258700 -0.828300 -vn 0.491600 -0.327200 0.807000 -vn -0.131700 0.367400 -0.920700 -vn 0.864800 0.310000 -0.395100 -vn -0.975900 -0.215000 -0.037900 -vn 0.246500 0.870000 -0.426900 -vn 0.474800 0.451500 -0.755500 -vn -0.500000 -0.000000 0.866000 -vn 0.500000 0.000000 -0.866000 -vn 0.207100 0.731000 -0.650200 -vn 0.500000 -0.155000 0.852000 -vn -0.125300 0.290400 -0.948700 -vn -0.112200 0.974500 -0.194300 -vn -0.999100 0.041800 0.000000 -vn -0.418300 0.908300 0.000000 -vn -0.680200 0.621800 -0.388200 -vn 0.500000 -0.000000 0.866000 -vn -0.500000 0.000000 -0.866000 -vn -0.421000 -0.388200 0.819800 -vn -0.471600 0.678500 -0.563300 -vn -0.507300 -0.405500 0.760400 -vn 0.000000 0.707100 0.707100 -vn 0.274600 0.475600 -0.835700 -vn 0.152100 -0.263400 -0.952600 -vn 0.698600 0.000000 -0.715500 -vn 0.142900 0.422100 -0.895200 -vn -0.878300 0.363800 -0.310100 -vn 0.790000 0.327200 -0.518500 -vn -0.682100 -0.499100 0.534500 -vn -0.895300 -0.370800 -0.246900 -vn -0.347800 0.839800 -0.416900 -vn -0.818500 0.560800 0.124800 -vn -0.789600 -0.581900 0.195000 -vn 0.240400 -0.435600 0.867500 -vn 0.814600 -0.337400 -0.471800 -vn -0.430800 -0.902200 -0.019800 -vn -0.305500 -0.925000 0.225900 -vn 0.355000 -0.857100 -0.373400 -vn 0.331800 0.801000 -0.498300 -vn -0.367900 -0.888200 -0.275300 -vn -0.147000 0.950900 0.272500 -vn -0.621100 -0.780100 0.075200 -vn -0.722100 -0.422500 0.547800 -vn -0.143500 -0.986900 0.074100 -vn -0.031900 0.739500 -0.672400 -vn -0.165600 -0.986000 -0.017100 -vn -0.977700 0.173000 -0.119100 -vn -0.123300 0.992400 -0.000000 -vn -0.954900 0.296800 -0.000000 -vn -0.845300 0.357000 -0.397500 -vn -0.127400 0.907900 -0.399300 -vn -0.095800 0.914800 0.392400 -vn -0.902600 0.229500 0.364200 -vn 0.756000 0.250500 0.604800 -vn -0.281100 0.678600 -0.678600 -vn 0.522500 0.563000 0.640300 -vn 0.571300 -0.428600 0.700000 -vn -0.678600 0.281100 -0.678600 -vn -0.532500 0.483300 -0.694900 -vn -0.587400 0.488300 0.645400 -vn 0.641800 -0.615300 -0.457800 -vn -0.000000 0.371400 -0.928500 -vn -0.123800 -0.343000 0.931100 -vn -0.001900 0.549600 0.835400 -vn 0.435700 -0.860900 0.262600 -vn 0.363900 0.323600 -0.873400 -vn -0.404600 0.630100 -0.662800 -vn -0.256400 0.019200 0.966400 -vn -0.385800 0.509300 -0.769300 -vn -0.482200 0.353500 0.801600 -vn -0.793800 0.460500 -0.397300 -vn 0.518200 0.387400 -0.762500 -vn 0.402200 0.647400 -0.647400 -vn -0.978100 -0.113500 -0.174300 -vn -0.944600 -0.232100 -0.232100 -vn -0.944600 -0.232100 0.232100 -vn -0.972000 0.000000 -0.234900 -vn 0.898000 0.291800 -0.329400 -vn 0.966200 -0.171000 0.193100 -vn 0.994700 0.000000 0.103100 -vn 0.983600 -0.166700 -0.069100 -vn 0.998200 -0.042300 -0.042300 -vn 0.959500 0.186800 0.210900 -vn -0.976500 -0.034000 -0.213000 -vn -0.982900 -0.184000 -0.000000 -vn -0.794800 0.232200 -0.560700 -vn -0.970300 0.000000 -0.242000 -vn -0.499800 -0.865700 -0.026700 -vn 0.482300 -0.835400 0.263600 -vn -0.494900 -0.756600 0.427400 -vn -0.596400 0.770800 -0.223700 -vn -0.497100 -0.772500 0.395000 -vn 0.456000 0.833000 -0.313200 -vn 0.988100 -0.052500 -0.144300 -vn -0.160400 -0.370900 0.914700 -vn 0.661300 -0.663700 0.349400 -vn -0.468300 0.711700 -0.523600 -vn 0.874200 0.256300 -0.412500 -vn -0.984300 0.113600 0.135300 -vn 0.708900 0.477200 -0.519300 -vn -0.560500 -0.148200 0.814800 -vn 0.483300 0.256200 -0.837100 -vn 0.643000 -0.210200 0.736400 -vn -0.432200 0.374100 -0.820500 -vn 0.958700 0.271800 0.083800 -vn -0.957400 -0.185600 -0.221200 -vn 0.688600 0.357300 -0.631000 -vn 0.494100 -0.153200 0.855800 -vn -0.492800 0.169000 -0.853600 -vn -0.999000 0.043000 0.007600 -vn -0.945000 0.152200 0.289600 -vn 0.000000 -0.371400 0.928500 -vn 0.089900 -0.334500 0.938100 -vn -0.135000 -0.368000 0.920000 -vn -0.717400 -0.411900 0.561900 -vn -0.984000 0.178300 -0.000000 -vn -0.984600 0.174600 -0.009100 -vn -0.982000 0.188900 -0.008900 -vn -0.984000 0.126100 -0.126100 -vn -0.971400 0.227200 -0.069500 -vn -0.975900 0.206300 -0.071300 -s off -f 8/1/1 7/2/1 3/3/1 -f 2/4/2 1/5/2 5/6/2 -f 3/7/3 301/8/3 1/9/3 -f 304/10/4 306/11/4 6/12/4 -f 303/13/5 300/14/5 1/15/5 -f 12/16/6 11/17/6 9/18/6 -f 14/19/7 13/20/7 15/21/7 -f 10/22/8 9/18/8 13/23/8 -f 11/17/3 15/24/3 13/23/3 -f 14/19/9 16/25/9 12/16/9 -f 20/26/8 19/27/8 17/28/8 -f 24/29/6 23/30/6 19/27/6 -f 22/31/1 21/32/1 23/33/1 -f 18/34/7 17/28/7 21/35/7 -f 19/27/3 23/30/3 21/35/3 -f 24/36/9 20/26/9 18/37/9 -f 28/38/10 79/39/10 323/40/10 -f 346/41/11 344/42/11 32/43/11 -f 32/44/12 34/45/12 33/46/12 -f 380/47/13 378/48/13 381/49/13 -f 380/47/14 381/49/14 379/50/14 -f 40/51/15 38/52/15 63/53/15 -f 38/52/16 40/51/16 39/54/16 -f 29/55/1 31/56/1 44/57/1 -f 41/58/17 49/59/17 56/60/17 -f 37/61/1 47/62/1 46/63/1 -f 31/64/1 33/46/1 45/65/1 -f 37/61/1 39/54/1 48/66/1 -f 29/67/1 43/68/1 42/69/1 -f 35/70/1 46/71/1 45/72/1 -f 39/73/1 25/74/1 41/75/1 -f 27/76/1 42/77/1 41/78/1 -f 44/79/1 46/80/1 48/81/1 -f 47/82/18 278/83/18 46/84/18 -f 45/85/12 53/86/12 52/87/12 -f 42/88/19 43/89/19 51/90/19 -f 48/91/16 56/92/16 55/93/16 -f 46/94/20 54/95/20 53/96/20 -f 43/97/11 44/98/11 281/99/11 -f 42/100/21 50/101/21 49/102/21 -f 62/103/8 61/104/8 64/105/8 -f 79/106/22 28/38/22 315/107/22 -f 34/108/23 61/109/23 62/110/23 -f 26/111/24 40/112/24 64/113/24 -f 28/38/25 314/114/25 315/107/25 -f 30/115/26 59/116/26 60/117/26 -f 38/52/27 36/118/27 62/119/27 -f 34/45/28 32/44/28 60/120/28 -f 339/121/29 333/122/29 340/123/29 -f 290/124/30 267/125/30 293/126/30 -f 69/127/6 65/128/6 339/129/6 -f 288/130/7 287/131/7 285/132/7 -f 253/133/7 249/134/7 251/135/7 -f 68/136/31 368/137/31 76/138/31 -f 251/139/32 248/140/32 252/141/32 -f 73/142/6 75/143/6 367/144/6 -f 100/145/33 101/146/33 103/147/33 -f 311/148/6 81/149/6 77/150/6 -f 82/151/34 81/149/34 310/152/34 -f 98/153/34 104/154/34 105/155/34 -f 87/156/6 89/157/6 98/153/6 -f 81/149/35 82/151/35 84/158/35 -f 99/159/35 103/160/35 104/161/35 -f 84/162/33 86/163/33 85/164/33 -f 78/165/36 102/166/36 101/167/36 -f 91/168/6 93/169/6 100/145/6 -f 305/170/36 299/171/36 85/164/36 -f 106/172/6 104/173/6 101/174/6 -f 83/175/6 85/164/6 96/176/6 -f 88/177/37 90/178/37 89/157/37 -f 89/157/6 91/168/6 99/159/6 -f 95/179/38 96/176/38 106/180/38 -f 90/178/39 92/181/39 91/168/39 -f 82/151/40 80/182/40 110/183/40 -f 94/184/41 310/152/41 93/169/41 -f 92/181/38 94/184/38 93/169/38 -f 77/185/39 95/186/39 107/187/39 -f 83/188/6 95/186/6 77/185/6 -f 312/189/6 78/165/6 100/190/6 -f 78/191/37 77/150/37 108/192/37 -f 106/193/42 96/194/42 85/164/42 -f 113/195/34 121/196/34 122/197/34 -f 86/163/43 84/162/43 111/198/43 -f 92/181/7 115/199/7 116/200/7 -f 305/201/44 297/202/44 307/203/44 -f 94/184/7 116/204/7 110/205/7 -f 88/177/7 113/195/7 114/206/7 -f 84/158/7 82/151/7 109/207/7 -f 92/181/45 90/178/45 114/208/45 -f 123/209/7 120/210/7 119/211/7 -f 111/198/38 119/212/38 120/213/38 -f 109/214/37 110/183/37 118/215/37 -f 116/204/36 124/216/36 118/217/36 -f 114/208/35 122/218/35 123/219/35 -f 113/220/41 112/221/41 120/222/41 -f 109/207/39 117/223/39 119/224/39 -f 115/199/33 123/225/33 124/226/33 -f 147/227/33 148/228/33 149/229/33 -f 127/230/6 129/231/6 125/232/6 -f 128/233/34 130/234/34 129/231/34 -f 145/235/34 146/236/34 152/237/34 -f 135/238/6 137/239/6 146/236/6 -f 130/234/35 132/240/35 131/241/35 -f 146/242/35 147/243/35 151/244/35 -f 135/238/46 145/245/46 144/246/46 -f 131/247/33 132/248/33 134/249/33 -f 126/250/36 150/251/36 149/252/36 -f 141/253/47 148/228/47 147/227/47 -f 134/249/36 136/254/36 135/238/36 -f 154/255/6 152/256/6 149/257/6 -f 131/247/48 133/258/48 144/259/48 -f 135/238/37 136/254/37 138/260/37 -f 139/261/6 147/243/6 146/242/6 -f 144/259/38 154/262/38 155/263/38 -f 138/260/39 140/264/39 139/261/39 -f 128/233/7 158/265/7 157/266/7 -f 141/253/41 142/267/41 128/233/41 -f 362/268/49 353/269/49 365/270/49 -f 143/271/39 155/272/39 156/273/39 -f 131/241/50 143/271/50 125/274/50 -f 127/230/51 126/250/51 148/275/51 -f 126/276/37 125/232/37 156/277/37 -f 145/245/41 153/278/41 154/279/41 -f 161/280/34 169/281/34 170/282/34 -f 132/248/52 159/283/52 160/284/52 -f 362/285/53 354/286/53 363/287/53 -f 136/254/54 134/249/54 160/288/54 -f 128/233/7 142/267/7 164/289/7 -f 138/260/55 136/254/55 161/280/55 -f 130/234/7 157/290/7 159/291/7 -f 138/260/56 162/292/56 163/293/56 -f 171/294/7 168/295/7 167/296/7 -f 160/284/38 159/283/38 167/297/38 -f 158/265/37 166/298/37 165/299/37 -f 158/300/36 164/289/36 172/301/36 -f 162/292/35 170/302/35 171/303/35 -f 160/288/41 168/304/41 169/305/41 -f 157/290/39 165/306/39 167/307/39 -f 164/308/33 163/309/33 171/310/33 -f 2/4/9 6/12/9 306/11/9 -f 173/311/57 174/312/57 176/313/57 -f 176/313/7 178/314/7 177/315/7 -f 177/315/58 178/314/58 180/316/58 -f 180/317/59 182/318/59 181/319/59 -f 183/320/60 184/321/60 174/312/60 -f 182/318/6 184/321/6 183/320/6 -f 186/322/57 188/323/57 187/324/57 -f 188/323/7 190/325/7 189/326/7 -f 190/325/61 192/327/61 191/328/61 -f 191/329/62 192/330/62 194/331/62 -f 180/332/63 200/333/63 201/334/63 -f 196/335/60 186/322/60 185/336/60 -f 194/331/6 196/335/6 195/337/6 -f 199/338/64 205/339/64 206/340/64 -f 174/312/65 198/341/65 197/342/65 -f 180/343/66 178/314/66 199/344/66 -f 178/314/7 176/313/7 197/342/7 -f 174/312/67 184/345/67 202/346/67 -f 184/345/68 182/347/68 201/334/68 -f 205/348/69 211/349/69 212/350/69 -f 200/351/70 206/352/70 207/353/70 -f 197/342/71 198/341/71 204/354/71 -f 202/355/72 201/356/72 207/353/72 -f 199/338/73 197/342/73 203/357/73 -f 198/341/74 202/355/74 208/358/74 -f 211/359/75 217/360/75 218/361/75 -f 210/362/76 214/363/76 220/364/76 -f 206/365/77 212/366/77 213/367/77 -f 204/354/78 210/362/78 209/368/78 -f 208/369/79 207/370/79 213/367/79 -f 203/357/80 209/368/80 211/349/80 -f 224/371/81 225/372/81 223/373/81 -f 208/369/82 214/374/82 210/362/82 -f 217/375/83 229/376/83 230/377/83 -f 220/378/84 232/379/84 228/380/84 -f 221/381/85 223/373/85 225/372/85 -f 213/382/86 212/383/86 218/384/86 -f 209/368/87 210/362/87 216/385/87 -f 222/386/88 221/381/88 225/372/88 -f 214/363/6 213/382/6 219/387/6 -f 209/368/89 215/388/89 217/360/89 -f 226/389/90 222/386/90 225/372/90 -f 313/390/91 314/114/91 28/38/91 -f 225/391/92 224/392/92 236/393/92 -f 222/394/93 234/395/93 233/396/93 -f 218/397/92 230/398/92 231/399/92 -f 226/400/6 225/391/6 237/401/6 -f 216/385/93 228/380/93 227/402/93 -f 221/403/7 233/396/7 235/404/7 -f 219/405/6 231/399/6 232/379/6 -f 222/394/84 226/400/84 238/406/84 -f 215/388/7 227/402/7 229/376/7 -f 224/407/83 223/408/83 235/404/83 -f 243/409/7 245/410/7 246/411/7 -f 251/139/94 252/141/94 247/412/94 -f 253/413/95 250/414/95 254/415/95 -f 253/413/96 254/415/96 249/416/96 -f 252/417/97 254/418/97 65/419/97 -f 190/420/98 188/421/98 192/422/98 -f 186/423/99 196/424/99 188/421/99 -f 194/425/100 192/422/100 196/424/100 -f 192/422/101 188/421/101 196/424/101 -f 240/426/21 256/427/21 25/428/21 -f 259/429/19 260/430/19 29/67/19 -f 51/90/102 264/431/102 270/432/102 -f 56/92/103 269/433/103 268/434/103 -f 291/435/104 286/436/104 292/437/104 -f 51/438/105 273/439/105 271/440/105 -f 49/102/106 50/101/106 263/441/106 -f 286/436/107 291/435/107 285/442/107 -f 291/435/108 284/443/108 285/442/108 -f 52/444/105 265/445/105 272/446/105 -f 69/447/109 292/448/109 293/449/109 -f 55/450/110 268/451/110 279/452/110 -f 284/443/111 291/435/111 283/453/111 -f 293/126/112 289/454/112 290/124/112 -f 53/96/113 54/95/113 276/455/113 -f 54/456/110 278/83/110 280/457/110 -f 49/59/114 262/458/114 275/459/114 -f 52/87/115 53/86/115 282/460/115 -f 289/461/116 293/462/116 288/463/116 -f 288/463/117 293/462/117 287/464/117 -f 286/465/118 287/464/118 293/462/118 -f 7/466/4 8/1/4 302/467/4 -f 305/201/119 307/203/119 298/468/119 -f 296/469/120 299/470/120 295/471/120 -f 296/469/121 294/472/121 299/470/121 -f 296/473/122 307/474/122 112/221/122 -f 4/475/9 300/14/9 302/467/9 -f 309/476/123 308/477/123 300/478/123 -f 301/479/124 308/477/124 309/476/124 -f 302/480/125 308/477/125 301/479/125 -f 300/478/126 308/477/126 302/481/126 -f 303/482/127 306/483/127 309/476/127 -f 304/484/128 309/476/128 306/485/128 -f 97/486/3 105/487/3 87/156/3 -f 105/487/129 106/193/129 85/164/129 -f 58/488/130 57/489/130 315/490/130 -f 26/491/21 313/492/21 241/493/21 -f 78/494/131 310/495/131 311/496/131 -f 310/495/132 78/494/132 312/497/132 -f 315/498/133 57/499/133 59/500/133 -f 319/501/1 317/502/1 324/503/1 -f 323/504/19 257/505/19 261/506/19 -f 328/507/8 329/508/8 331/509/8 -f 319/501/12 329/510/12 327/511/12 -f 316/512/16 325/513/16 326/514/16 -f 324/515/17 369/516/17 374/517/17 -f 371/518/134 373/519/134 376/520/134 -f 359/521/11 375/522/11 329/510/11 -f 318/523/20 327/524/20 328/507/20 -f 317/525/18 328/507/18 325/513/18 -f 376/520/135 372/526/135 371/518/135 -f 339/121/136 340/123/136 334/527/136 -f 72/528/137 340/529/137 68/530/137 -f 337/531/17 341/532/17 347/532/17 -f 354/533/138 362/268/138 365/270/138 -f 363/287/139 355/534/139 362/285/139 -f 139/261/38 363/535/38 141/253/38 -f 362/536/7 163/309/7 164/308/7 -f 367/537/140 368/538/140 361/539/140 -f 367/537/141 360/540/141 368/538/141 -f 370/541/142 366/542/142 369/543/142 -f 369/543/143 364/544/143 370/541/143 -f 357/545/144 356/546/144 359/547/144 -f 358/548/145 359/547/145 356/546/145 -f 359/521/19 371/549/19 370/550/19 -f 375/522/19 358/551/19 331/552/19 -f 332/553/21 331/552/21 358/551/21 -f 356/554/21 357/555/21 364/556/21 -f 373/557/19 377/558/19 321/559/19 -f 374/517/21 369/516/21 376/560/21 -f 34/108/20 378/561/20 380/562/20 -f 381/563/18 38/52/18 37/61/18 -f 4/475/1 8/1/1 3/3/1 -f 6/12/2 2/4/2 5/6/2 -f 5/564/3 1/9/3 304/565/3 -f 3/7/3 7/566/3 301/8/3 -f 301/8/3 304/565/3 1/9/3 -f 5/567/4 304/10/4 6/12/4 -f 3/568/5 1/15/5 300/14/5 -f 2/4/5 303/13/5 1/15/5 -f 300/14/5 4/475/5 3/568/5 -f 10/569/6 12/16/6 9/18/6 -f 16/25/7 14/19/7 15/21/7 -f 14/570/8 10/22/8 13/23/8 -f 9/18/3 11/17/3 13/23/3 -f 10/569/9 14/19/9 12/16/9 -f 18/37/8 20/26/8 17/28/8 -f 20/571/6 24/29/6 19/27/6 -f 24/36/1 22/31/1 23/33/1 -f 22/572/7 18/34/7 21/35/7 -f 17/28/3 19/27/3 21/35/3 -f 22/31/9 24/36/9 18/37/9 -f 313/390/146 28/38/146 323/40/146 -f 31/56/11 29/55/11 260/573/11 -f 260/573/11 348/574/11 352/575/11 -f 352/575/11 349/576/11 350/577/11 -f 350/577/11 343/578/11 336/579/11 -f 349/576/11 342/580/11 350/577/11 -f 31/56/11 260/573/11 352/575/11 -f 257/581/11 30/115/11 32/43/11 -f 32/43/11 31/56/11 346/41/11 -f 350/577/11 336/579/11 346/41/11 -f 31/56/11 352/575/11 350/577/11 -f 335/582/11 257/581/11 344/42/11 -f 346/41/11 345/583/11 344/42/11 -f 344/42/11 257/581/11 32/43/11 -f 31/56/11 350/577/11 346/41/11 -f 31/64/12 32/44/12 33/46/12 -f 64/584/147 40/51/147 63/53/147 -f 37/61/16 38/52/16 39/54/16 -f 43/585/1 29/55/1 44/57/1 -f 48/586/17 41/58/17 56/60/17 -f 35/587/1 37/61/1 46/63/1 -f 44/588/1 31/64/1 45/65/1 -f 47/589/1 37/61/1 48/66/1 -f 27/76/1 29/67/1 42/69/1 -f 33/590/1 35/70/1 45/72/1 -f 48/591/1 39/73/1 41/75/1 -f 25/428/1 27/76/1 41/78/1 -f 48/81/1 41/592/1 42/593/1 -f 42/593/1 43/594/1 44/79/1 -f 44/79/1 45/595/1 46/80/1 -f 46/80/1 47/596/1 48/81/1 -f 48/81/1 42/593/1 44/79/1 -f 54/456/18 46/84/18 278/83/18 -f 47/82/18 55/450/18 278/83/18 -f 44/597/12 45/85/12 52/87/12 -f 50/598/19 42/88/19 51/90/19 -f 47/599/16 48/91/16 55/93/16 -f 45/600/20 46/94/20 53/96/20 -f 44/98/11 52/444/11 281/99/11 -f 273/439/11 51/438/11 281/99/11 -f 52/444/11 274/601/11 281/99/11 -f 281/99/11 51/438/11 43/97/11 -f 41/602/21 42/100/21 49/102/21 -f 59/603/8 57/604/8 64/105/8 -f 58/605/8 64/105/8 57/604/8 -f 63/606/8 62/103/8 64/105/8 -f 61/104/8 60/607/8 64/105/8 -f 59/603/8 64/105/8 60/607/8 -f 36/608/23 34/108/23 62/110/23 -f 58/609/148 26/111/148 64/113/148 -f 32/43/26 30/115/26 60/117/26 -f 63/610/27 38/52/27 62/119/27 -f 61/611/28 34/45/28 60/120/28 -f 334/612/6 71/613/6 339/129/6 -f 65/128/6 67/614/6 333/615/6 -f 339/129/6 71/613/6 69/127/6 -f 65/128/6 333/615/6 339/129/6 -f 68/616/7 66/617/7 290/124/7 -f 283/618/7 70/619/7 284/620/7 -f 66/617/7 267/621/7 290/124/7 -f 284/620/7 70/619/7 72/622/7 -f 290/124/149 289/454/149 288/130/149 -f 285/132/7 284/620/7 72/622/7 -f 68/616/7 290/124/7 288/130/7 -f 285/132/7 72/622/7 288/130/7 -f 287/131/7 286/623/7 285/132/7 -f 72/622/7 68/616/7 288/130/7 -f 247/624/7 66/625/7 251/135/7 -f 76/626/7 74/627/7 250/628/7 -f 251/135/7 66/625/7 68/629/7 -f 76/626/7 250/628/7 253/133/7 -f 251/135/7 68/629/7 253/133/7 -f 249/134/7 248/630/7 251/135/7 -f 68/629/7 76/626/7 253/133/7 -f 68/136/31 67/631/31 361/632/31 -f 75/633/31 76/138/31 360/634/31 -f 368/137/31 360/634/31 76/138/31 -f 68/136/31 361/632/31 368/137/31 -f 65/635/6 73/142/6 367/144/6 -f 361/636/6 67/637/6 65/635/6 -f 75/143/6 360/638/6 367/144/6 -f 367/144/6 361/636/6 65/635/6 -f 99/639/33 100/145/33 103/147/33 -f 78/191/6 311/148/6 77/150/6 -f 311/148/34 310/152/34 81/149/34 -f 80/182/34 82/151/34 310/152/34 -f 97/640/34 98/153/34 105/155/34 -f 97/640/6 87/156/6 98/153/6 -f 83/188/35 81/149/35 84/158/35 -f 98/641/35 99/159/35 104/161/35 -f 83/175/33 84/162/33 85/164/33 -f 100/190/36 78/165/36 101/167/36 -f 99/639/6 91/168/6 100/145/6 -f 87/156/36 85/164/36 299/171/36 -f 86/163/36 297/642/36 305/170/36 -f 305/170/36 298/643/36 295/644/36 -f 299/171/36 294/645/36 88/177/36 -f 305/170/36 295/644/36 299/171/36 -f 85/164/36 86/163/36 305/170/36 -f 299/171/36 88/177/36 87/156/36 -f 101/174/6 102/646/6 108/647/6 -f 108/647/6 107/648/6 106/172/6 -f 106/172/6 105/649/6 104/173/6 -f 104/173/6 103/650/6 101/174/6 -f 101/174/6 108/647/6 106/172/6 -f 95/179/6 83/175/6 96/176/6 -f 87/156/37 88/177/37 89/157/37 -f 98/641/6 89/157/6 99/159/6 -f 107/651/38 95/179/38 106/180/38 -f 89/157/39 90/178/39 91/168/39 -f 109/214/150 82/151/150 110/183/150 -f 312/189/41 93/169/41 310/152/41 -f 94/184/41 80/182/41 310/152/41 -f 91/168/38 92/181/38 93/169/38 -f 108/652/39 77/185/39 107/187/39 -f 81/149/6 83/188/6 77/185/6 -f 93/169/6 312/189/6 100/190/6 -f 102/653/37 78/191/37 108/192/37 -f 114/206/34 113/195/34 122/197/34 -f 112/654/151 86/163/151 111/198/151 -f 94/184/7 92/181/7 116/200/7 -f 80/182/7 94/184/7 110/205/7 -f 90/178/7 88/177/7 114/206/7 -f 111/655/7 84/158/7 109/207/7 -f 115/656/152 92/181/152 114/208/152 -f 119/211/7 117/657/7 118/658/7 -f 118/658/7 124/659/7 119/211/7 -f 123/209/7 122/660/7 121/661/7 -f 121/661/7 120/210/7 123/209/7 -f 119/211/7 124/659/7 123/209/7 -f 112/654/38 111/198/38 120/213/38 -f 117/662/37 109/214/37 118/215/37 -f 110/205/36 116/204/36 118/217/36 -f 115/656/35 114/208/35 123/219/35 -f 121/663/41 113/220/41 120/222/41 -f 111/655/39 109/207/39 119/224/39 -f 116/200/33 115/199/33 124/226/33 -f 151/664/33 147/227/33 149/229/33 -f 126/276/153 127/230/153 125/232/153 -f 127/230/34 128/233/34 129/231/34 -f 153/665/34 145/235/34 152/237/34 -f 145/235/154 135/238/154 146/236/154 -f 129/231/35 130/234/35 131/241/35 -f 152/666/35 146/242/35 151/244/35 -f 133/258/6 135/238/6 144/246/6 -f 133/258/33 131/247/33 134/249/33 -f 148/275/36 126/250/36 149/252/36 -f 139/261/155 141/253/155 147/227/155 -f 133/258/36 134/249/36 135/238/36 -f 149/257/6 150/667/6 156/668/6 -f 156/668/6 155/669/6 154/255/6 -f 154/255/6 153/670/6 152/256/6 -f 152/256/6 151/671/6 149/257/6 -f 149/257/6 156/668/6 154/255/6 -f 143/672/156 131/247/156 144/259/156 -f 137/239/37 135/238/37 138/260/37 -f 137/239/6 139/261/6 146/242/6 -f 143/672/38 144/259/38 155/263/38 -f 137/239/39 138/260/39 139/261/39 -f 130/234/7 128/233/7 157/266/7 -f 127/230/41 141/253/41 128/233/41 -f 125/274/39 143/271/39 156/273/39 -f 129/231/157 131/241/157 125/274/157 -f 141/253/158 127/230/158 148/275/158 -f 150/673/37 126/276/37 156/277/37 -f 144/246/41 145/245/41 154/279/41 -f 162/674/34 161/280/34 170/282/34 -f 134/249/159 132/248/159 160/284/159 -f 161/675/160 136/254/160 160/288/160 -f 158/300/7 128/233/7 164/289/7 -f 162/674/161 138/260/161 161/280/161 -f 132/240/7 130/234/7 159/291/7 -f 140/264/162 138/260/162 163/293/162 -f 167/296/7 165/676/7 166/677/7 -f 166/677/7 172/678/7 167/296/7 -f 171/294/7 170/679/7 169/680/7 -f 169/680/7 168/295/7 171/294/7 -f 167/296/7 172/678/7 171/294/7 -f 168/681/38 160/284/38 167/297/38 -f 157/266/37 158/265/37 165/299/37 -f 166/682/36 158/300/36 172/301/36 -f 163/293/35 162/292/35 171/303/35 -f 161/675/41 160/288/41 169/305/41 -f 159/291/39 157/290/39 167/307/39 -f 172/683/33 164/308/33 171/310/33 -f 303/13/9 2/4/9 306/11/9 -f 175/684/57 173/311/57 176/313/57 -f 175/684/7 176/313/7 177/315/7 -f 179/685/163 177/315/163 180/316/163 -f 179/686/59 180/317/59 181/319/59 -f 173/311/60 183/320/60 174/312/60 -f 181/319/6 182/318/6 183/320/6 -f 185/336/57 186/322/57 187/324/57 -f 187/324/7 188/323/7 189/326/7 -f 189/326/61 190/325/61 191/328/61 -f 193/687/62 191/329/62 194/331/62 -f 182/347/164 180/332/164 201/334/164 -f 195/337/60 196/335/60 185/336/60 -f 193/687/6 194/331/6 195/337/6 -f 200/688/165 199/338/165 206/340/165 -f 176/313/166 174/312/166 197/342/166 -f 200/689/167 180/343/167 199/344/167 -f 199/344/7 178/314/7 197/342/7 -f 198/341/168 174/312/168 202/346/168 -f 202/346/169 184/345/169 201/334/169 -f 206/690/170 205/348/170 212/350/170 -f 201/356/171 200/351/171 207/353/171 -f 203/357/172 197/342/172 204/354/172 -f 208/358/173 202/355/173 207/353/173 -f 205/339/174 199/338/174 203/357/174 -f 204/354/175 198/341/175 208/358/175 -f 212/691/176 211/359/176 218/361/176 -f 216/385/177 210/362/177 220/364/177 -f 207/370/178 206/365/178 213/367/178 -f 203/357/179 204/354/179 209/368/179 -f 214/374/180 208/369/180 213/367/180 -f 205/348/181 203/357/181 211/349/181 -f 204/354/182 208/369/182 210/362/182 -f 218/692/83 217/375/83 230/377/83 -f 216/385/84 220/378/84 228/380/84 -f 219/387/183 213/382/183 218/384/183 -f 215/388/184 209/368/184 216/385/184 -f 220/364/6 214/363/6 219/387/6 -f 211/359/185 209/368/185 217/360/185 -f 237/401/92 225/391/92 236/393/92 -f 221/403/93 222/394/93 233/396/93 -f 219/405/92 218/397/92 231/399/92 -f 238/406/6 226/400/6 237/401/6 -f 215/388/93 216/385/93 227/402/93 -f 223/408/7 221/403/7 235/404/7 -f 220/378/6 219/405/6 232/379/6 -f 234/395/84 222/394/84 238/406/84 -f 217/375/7 215/388/7 229/376/7 -f 236/693/83 224/407/83 235/404/83 -f 244/694/186 243/409/186 246/411/186 -f 65/419/97 66/695/97 252/417/97 -f 252/417/97 248/630/97 254/418/97 -f 66/695/97 247/696/97 252/417/97 -f 74/697/97 73/698/97 250/699/97 -f 254/418/97 250/699/97 73/698/97 -f 248/630/97 249/134/97 254/418/97 -f 73/698/97 65/419/97 254/418/97 -f 27/76/21 25/428/21 256/427/21 -f 256/427/21 239/700/21 27/76/21 -f 29/67/19 27/76/19 258/701/19 -f 258/701/19 259/429/19 29/67/19 -f 27/76/19 239/700/19 258/701/19 -f 50/598/102 51/90/102 270/432/102 -f 55/93/103 56/92/103 268/434/103 -f 264/702/105 51/438/105 271/440/105 -f 262/703/106 49/102/106 263/441/106 -f 274/601/105 52/444/105 272/446/105 -f 267/704/187 66/705/187 65/706/187 -f 69/447/187 70/707/187 283/708/187 -f 293/449/188 267/704/188 65/706/188 -f 69/447/187 283/708/187 291/709/187 -f 293/449/189 65/706/189 69/447/189 -f 69/447/187 291/709/187 292/448/187 -f 278/83/110 55/450/110 279/452/110 -f 266/710/113 53/96/113 276/455/113 -f 277/711/110 54/456/110 280/457/110 -f 56/60/114 49/59/114 275/459/114 -f 265/712/115 52/87/115 282/460/115 -f 292/713/190 286/465/190 293/462/190 -f 301/714/4 7/466/4 302/467/4 -f 113/220/191 88/177/191 294/645/191 -f 296/473/192 295/644/192 307/474/192 -f 113/220/193 294/645/193 296/473/193 -f 86/163/194 112/221/194 297/642/194 -f 307/474/195 297/642/195 112/221/195 -f 295/644/192 298/643/192 307/474/192 -f 112/221/196 113/220/196 296/473/196 -f 8/1/9 4/475/9 302/467/9 -f 303/482/123 309/476/123 300/478/123 -f 304/484/124 301/479/124 309/476/124 -f 87/156/129 105/487/129 85/164/129 -f 315/490/130 314/715/130 58/488/130 -f 26/491/130 58/488/130 314/715/130 -f 242/716/21 241/493/21 313/492/21 -f 26/491/21 314/715/21 313/492/21 -f 59/500/133 30/717/133 79/718/133 -f 79/718/133 315/498/133 59/500/133 -f 324/503/1 322/719/1 321/720/1 -f 321/720/1 320/721/1 319/501/1 -f 319/501/1 318/722/1 317/502/1 -f 317/502/1 316/723/1 324/503/1 -f 324/503/1 321/720/1 319/501/1 -f 261/506/19 242/716/19 313/492/19 -f 323/504/19 79/718/19 30/717/19 -f 261/506/19 313/492/19 323/504/19 -f 30/717/19 257/505/19 323/504/19 -f 331/509/8 332/724/8 326/725/8 -f 326/725/8 325/726/8 328/507/8 -f 328/507/8 327/524/8 329/508/8 -f 329/508/8 330/727/8 331/509/8 -f 331/509/8 326/725/8 328/507/8 -f 318/722/12 319/501/12 327/511/12 -f 324/515/16 316/512/16 326/514/16 -f 374/517/17 322/728/17 324/515/17 -f 324/515/17 326/514/17 369/516/17 -f 356/554/17 369/516/17 326/514/17 -f 326/514/17 332/553/17 356/554/17 -f 329/510/11 319/501/11 359/521/11 -f 377/558/11 371/549/11 319/501/11 -f 319/501/11 320/729/11 377/558/11 -f 375/522/11 330/730/11 329/510/11 -f 319/501/11 371/549/11 359/521/11 -f 317/525/20 318/523/20 328/507/20 -f 316/512/18 317/525/18 325/513/18 -f 67/731/137 68/530/137 333/732/137 -f 72/528/137 71/733/137 334/734/137 -f 340/529/137 333/732/137 68/530/137 -f 72/528/137 334/734/137 340/529/137 -f 40/112/17 26/111/17 241/735/17 -f 240/736/17 25/74/17 39/73/17 -f 40/112/17 241/735/17 337/531/17 -f 338/532/17 240/736/17 347/532/17 -f 241/735/17 351/531/17 337/531/17 -f 347/532/17 240/736/17 39/73/17 -f 39/73/17 40/112/17 347/532/17 -f 337/531/17 255/531/17 341/532/17 -f 347/532/17 40/112/17 337/531/17 -f 139/261/38 140/264/38 363/535/38 -f 142/267/38 141/253/38 365/737/38 -f 365/737/38 353/738/38 142/267/38 -f 363/535/38 354/739/38 365/737/38 -f 140/264/38 355/740/38 363/535/38 -f 365/737/38 141/253/38 363/535/38 -f 164/308/7 142/267/7 353/738/7 -f 362/536/7 355/740/7 163/309/7 -f 164/308/7 353/738/7 362/536/7 -f 140/264/7 163/309/7 355/740/7 -f 371/549/19 372/741/19 366/742/19 -f 364/556/19 357/555/19 370/550/19 -f 371/549/19 366/742/19 370/550/19 -f 370/550/19 357/555/19 359/521/19 -f 331/552/19 330/730/19 375/522/19 -f 375/522/19 359/521/19 358/551/19 -f 356/554/21 332/553/21 358/551/21 -f 369/516/21 356/554/21 364/556/21 -f 320/729/19 321/559/19 377/558/19 -f 373/557/19 371/549/19 377/558/19 -f 373/557/21 321/559/21 374/517/21 -f 369/516/21 366/742/21 372/741/21 -f 321/559/21 322/728/21 374/517/21 -f 369/516/21 372/741/21 376/560/21 -f 376/560/21 373/557/21 374/517/21 -f 33/590/20 34/108/20 380/562/20 -f 379/743/20 35/70/20 33/590/20 -f 36/608/20 378/561/20 34/108/20 -f 380/562/20 379/743/20 33/590/20 -f 37/61/18 35/587/18 379/744/18 -f 381/563/18 378/745/18 38/52/18 -f 37/61/18 379/744/18 381/563/18 -f 36/118/18 38/52/18 378/745/18 diff --git a/src/main/resources/assets/hbm/models/cel_prime_battery.obj b/src/main/resources/assets/hbm/models/cel_prime_battery.obj deleted file mode 100644 index 504947834..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_battery.obj +++ /dev/null @@ -1,127 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_battery.blend' -# www.blender.org -o Cube.004_Cube.005 -v -0.500000 0.000000 -1.500000 -v -0.500000 5.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 4.000000 -1.500000 -v -0.500000 0.000000 1.500000 -v -0.500000 5.000000 1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 4.000000 1.500000 -v 1.500000 3.800000 -1.350000 -v 1.500000 0.200000 -1.350000 -v 1.500000 3.800000 1.350000 -v 1.500000 0.200000 1.350000 -v 0.500000 3.800000 -1.350000 -v 0.500000 0.200000 -1.350000 -v 0.500000 3.800000 1.350000 -v 0.500000 0.200000 1.350000 -v 1.500000 0.200000 1.099999 -v 1.500000 1.600000 1.099999 -v 0.500000 0.200000 1.100000 -v 0.500000 1.600000 1.100000 -v 1.500000 0.200000 0.100000 -v 1.500000 1.600000 0.100000 -v 0.500000 0.200000 0.100000 -v 0.500000 1.600000 0.100000 -v 1.500000 0.200000 -0.100001 -v 1.500000 1.600000 -0.100001 -v 0.500000 0.200000 -0.100000 -v 0.500000 1.600000 -0.100000 -v 1.500000 0.200000 -1.100001 -v 1.500000 1.600000 -1.100001 -v 0.500000 0.200000 -1.100000 -v 0.500000 1.600000 -1.100000 -v 1.500000 1.700000 -0.100001 -v 1.500000 3.100000 -0.100001 -v 0.500000 1.700000 -0.100000 -v 0.500000 3.100000 -0.100000 -v 1.500000 1.700000 -1.100001 -v 1.500000 3.100000 -1.100001 -v 0.500000 1.700000 -1.100000 -v 0.500000 3.100000 -1.100000 -v 1.500000 1.700000 1.099999 -v 1.500000 3.100000 1.099999 -v 0.500000 1.700000 1.100000 -v 0.500000 3.100000 1.100000 -v 1.500000 1.700000 0.100000 -v 1.500000 3.100000 0.100000 -v 0.500000 1.700000 0.100000 -v 0.500000 3.100000 0.100000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 -0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -s off -f 4//1 3//1 1//1 -f 3//2 10//2 12//2 -f 8//3 6//3 5//3 -f 2//4 1//4 5//4 -f 3//5 7//5 5//5 -f 8//6 4//6 2//6 -f 10//7 14//7 16//7 -f 8//2 11//2 9//2 -f 4//2 9//2 10//2 -f 7//2 12//2 11//2 -f 15//2 16//2 14//2 -f 11//5 15//5 13//5 -f 12//1 16//1 15//1 -f 9//3 13//3 14//3 -f 20//3 19//3 17//3 -f 24//4 23//4 19//4 -f 22//1 21//1 23//1 -f 18//2 17//2 21//2 -f 19//5 23//5 21//5 -f 22//7 24//7 20//7 -f 28//3 27//3 25//3 -f 30//1 29//1 31//1 -f 26//2 25//2 29//2 -f 32//7 28//7 26//7 -f 36//3 35//3 33//3 -f 38//1 37//1 39//1 -f 34//2 33//2 37//2 -f 40//7 36//7 34//7 -f 44//3 43//3 41//3 -f 46//1 45//1 47//1 -f 42//2 41//2 45//2 -f 46//7 48//7 44//7 -f 43//5 47//5 45//5 -f 39//5 37//5 33//5 -f 2//1 4//1 1//1 -f 7//2 3//2 12//2 -f 7//3 8//3 5//3 -f 6//4 2//4 5//4 -f 1//5 3//5 5//5 -f 6//6 8//6 2//6 -f 12//7 10//7 16//7 -f 4//2 8//2 9//2 -f 3//2 4//2 10//2 -f 8//2 7//2 11//2 -f 13//2 15//2 14//2 -f 9//5 11//5 13//5 -f 11//1 12//1 15//1 -f 10//3 9//3 14//3 -f 18//3 20//3 17//3 -f 20//4 24//4 19//4 -f 24//1 22//1 23//1 -f 22//2 18//2 21//2 -f 17//5 19//5 21//5 -f 18//7 22//7 20//7 -f 26//3 28//3 25//3 -f 32//1 30//1 31//1 -f 30//2 26//2 29//2 -f 30//7 32//7 26//7 -f 34//3 36//3 33//3 -f 40//1 38//1 39//1 -f 38//2 34//2 37//2 -f 38//7 40//7 34//7 -f 42//3 44//3 41//3 -f 48//1 46//1 47//1 -f 46//2 42//2 45//2 -f 42//7 46//7 44//7 -f 41//5 43//5 45//5 -f 35//5 39//5 33//5 diff --git a/src/main/resources/assets/hbm/models/cel_prime_port.obj b/src/main/resources/assets/hbm/models/cel_prime_port.obj deleted file mode 100644 index 300372f6b..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_port.obj +++ /dev/null @@ -1,75 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_port.blend' -# www.blender.org -o Cube.002_Cube.003 -v -0.500000 0.000000 -1.500000 -v -0.500000 5.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 4.000000 -1.500000 -v -0.500000 0.000000 1.500000 -v -0.500000 5.000000 1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 4.000000 1.500000 -v 1.400000 0.343750 -0.156250 -v 1.400000 0.656250 -0.156250 -v 1.400000 0.343750 0.156250 -v 1.400000 0.656250 0.156250 -v 1.500000 0.050000 -0.450000 -v 1.500000 0.950000 -0.450000 -v 1.500000 0.050000 0.450000 -v 1.500000 0.950000 0.450000 -v 1.400000 0.050000 0.450000 -v 1.400000 0.050000 -0.450000 -v 1.400000 0.950000 -0.450000 -v 1.400000 0.950000 0.450000 -v 1.500000 0.343750 0.156250 -v 1.500000 0.343750 -0.156250 -v 1.500000 0.656250 -0.156250 -v 1.500000 0.656250 0.156250 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 1.000000 0.000000 -s off -f 4//1 3//1 1//1 -f 8//2 6//2 5//2 -f 2//3 1//3 5//3 -f 3//4 7//4 5//4 -f 8//5 4//5 2//5 -f 11//3 12//3 10//3 -f 16//4 20//4 19//4 -f 3//6 13//6 15//6 -f 7//6 15//6 16//6 -f 14//6 13//6 3//6 -f 16//6 14//6 4//6 -f 19//6 20//6 17//6 -f 13//7 18//7 17//7 -f 15//1 17//1 20//1 -f 14//2 19//2 18//2 -f 23//6 24//6 21//6 -f 12//7 24//7 23//7 -f 9//4 22//4 21//4 -f 11//2 21//2 24//2 -f 10//1 23//1 22//1 -f 2//1 4//1 1//1 -f 7//2 8//2 5//2 -f 6//3 2//3 5//3 -f 1//4 3//4 5//4 -f 6//5 8//5 2//5 -f 9//3 11//3 10//3 -f 14//4 16//4 19//4 -f 7//6 3//6 15//6 -f 8//6 7//6 16//6 -f 4//6 14//6 3//6 -f 8//6 16//6 4//6 -f 18//6 19//6 17//6 -f 15//7 13//7 17//7 -f 16//1 15//1 20//1 -f 13//2 14//2 18//2 -f 22//6 23//6 21//6 -f 10//7 12//7 23//7 -f 11//4 9//4 21//4 -f 12//2 11//2 24//2 -f 9//1 10//1 22//1 diff --git a/src/main/resources/assets/hbm/models/cel_prime_tanks.obj b/src/main/resources/assets/hbm/models/cel_prime_tanks.obj deleted file mode 100644 index 2b060d409..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_tanks.obj +++ /dev/null @@ -1,151 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_tanks.blend' -# www.blender.org -o Cube.003_Cube.004 -v -0.500000 0.000000 -1.500000 -v -0.500000 5.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 4.000000 -1.500000 -v -0.500000 0.000000 1.500000 -v -0.500000 5.000000 1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 4.000000 1.500000 -v 1.500000 3.800000 -1.350000 -v 1.500000 0.200000 -1.350000 -v 1.500000 3.800000 1.350000 -v 1.500000 0.200000 1.350000 -v 0.000000 3.800000 -1.350000 -v 0.000000 0.200000 -1.350000 -v 0.000000 3.800000 1.350000 -v 0.000000 0.200000 1.350000 -v 0.750000 3.800000 -1.100000 -v 0.750000 0.200000 -1.100000 -v 0.750000 0.200000 0.100000 -v 0.750000 3.800000 0.100000 -v 1.103553 0.200000 0.246447 -v 1.103553 3.800000 0.246447 -v 1.250000 0.200000 0.600000 -v 1.250000 3.800000 0.600000 -v 1.103553 0.200000 0.953553 -v 1.103553 3.800000 0.953553 -v 0.750000 0.200000 1.100000 -v 0.750000 3.800000 1.100000 -v 0.396446 0.200000 0.953553 -v 0.396446 3.800000 0.953553 -v 0.250000 0.200000 0.600000 -v 0.250000 3.800000 0.600000 -v 0.396446 0.200000 0.246447 -v 0.396446 3.800000 0.246447 -v 1.103553 0.200000 -0.953553 -v 1.103553 3.800000 -0.953553 -v 1.250000 0.200000 -0.600000 -v 1.250000 3.800000 -0.600000 -v 1.103553 0.200000 -0.246447 -v 1.103553 3.800000 -0.246447 -v 0.750000 0.200000 -0.100000 -v 0.750000 3.800000 -0.100000 -v 0.396446 0.200000 -0.246447 -v 0.396446 3.800000 -0.246447 -v 0.250000 0.200000 -0.600000 -v 0.250000 3.800000 -0.600000 -v 0.396446 0.200000 -0.953553 -v 0.396446 3.800000 -0.953553 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.923900 0.000000 0.382700 -vn 0.382700 0.000000 -0.923900 -vn -0.382700 0.000000 0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 0.923900 -vn 0.923900 0.000000 0.382700 -vn -0.923900 0.000000 -0.382700 -vn -0.382700 0.000000 -0.923900 -s off -f 4//1 3//1 1//1 -f 7//2 12//2 11//2 -f 8//3 6//3 5//3 -f 2//4 1//4 5//4 -f 3//5 7//5 5//5 -f 8//6 4//6 2//6 -f 12//1 16//1 15//1 -f 3//2 10//2 12//2 -f 8//2 11//2 9//2 -f 4//2 9//2 10//2 -f 15//2 16//2 14//2 -f 9//3 13//3 14//3 -f 10//7 14//7 16//7 -f 11//5 15//5 13//5 -f 44//8 46//8 45//8 -f 20//9 22//9 21//9 -f 42//10 44//10 43//10 -f 22//11 24//11 23//11 -f 40//12 42//12 41//12 -f 24//13 26//13 25//13 -f 39//5 45//5 47//5 -f 38//13 40//13 39//13 -f 26//12 28//12 27//12 -f 46//14 48//14 47//14 -f 36//11 38//11 37//11 -f 28//10 30//10 29//10 -f 48//15 17//15 18//15 -f 17//9 36//9 35//9 -f 30//8 32//8 31//8 -f 32//7 28//7 24//7 -f 34//15 20//15 19//15 -f 32//14 34//14 33//14 -f 46//7 42//7 17//7 -f 25//5 31//5 33//5 -f 2//1 4//1 1//1 -f 8//2 7//2 11//2 -f 7//3 8//3 5//3 -f 6//4 2//4 5//4 -f 1//5 3//5 5//5 -f 6//6 8//6 2//6 -f 11//1 12//1 15//1 -f 7//2 3//2 12//2 -f 4//2 8//2 9//2 -f 3//2 4//2 10//2 -f 13//2 15//2 14//2 -f 10//3 9//3 14//3 -f 12//7 10//7 16//7 -f 9//5 11//5 13//5 -f 43//8 44//8 45//8 -f 19//9 20//9 21//9 -f 41//10 42//10 43//10 -f 21//11 22//11 23//11 -f 39//12 40//12 41//12 -f 23//13 24//13 25//13 -f 47//5 18//5 39//5 -f 35//5 37//5 39//5 -f 39//5 41//5 43//5 -f 43//5 45//5 39//5 -f 18//5 35//5 39//5 -f 37//13 38//13 39//13 -f 25//12 26//12 27//12 -f 45//14 46//14 47//14 -f 35//11 36//11 37//11 -f 27//10 28//10 29//10 -f 47//15 48//15 18//15 -f 18//9 17//9 35//9 -f 29//8 30//8 31//8 -f 24//7 22//7 32//7 -f 20//7 34//7 32//7 -f 32//7 30//7 28//7 -f 28//7 26//7 24//7 -f 22//7 20//7 32//7 -f 33//15 34//15 19//15 -f 31//14 32//14 33//14 -f 38//7 36//7 17//7 -f 17//7 48//7 46//7 -f 46//7 44//7 42//7 -f 42//7 40//7 38//7 -f 38//7 17//7 42//7 -f 33//5 19//5 21//5 -f 21//5 23//5 25//5 -f 25//5 27//5 29//5 -f 29//5 31//5 25//5 -f 33//5 21//5 25//5 diff --git a/src/main/resources/assets/hbm/models/cel_prime_terminal.obj b/src/main/resources/assets/hbm/models/cel_prime_terminal.obj deleted file mode 100644 index e17e2e075..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_terminal.obj +++ /dev/null @@ -1,77 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_terminal.blend' -# www.blender.org -o Cube.001_Cube.002 -v -0.500000 0.000000 -1.500000 -v -0.500000 5.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 4.000000 -1.500000 -v -0.500000 0.000000 1.500000 -v -0.500000 5.000000 1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 4.000000 1.500000 -v 1.500000 1.500000 -0.500000 -v 1.500000 2.500000 -0.500000 -v 1.750000 1.500000 -0.500000 -v 1.750000 2.500000 -0.500000 -v 1.500000 1.500000 0.500000 -v 1.500000 2.500000 0.500000 -v 1.750000 1.500000 0.500000 -v 1.750000 2.500000 0.500000 -v 1.750000 1.250000 -0.500000 -v 1.500000 1.250000 -0.500000 -v 1.750000 1.250000 0.500000 -v 1.500000 1.250000 0.500000 -v 2.250000 1.300000 0.500000 -v 2.250000 1.300000 -0.500000 -v 2.250000 1.050000 0.500000 -v 2.250000 1.050000 -0.500000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.371400 0.928500 0.000000 -vn -0.371400 -0.928500 0.000000 -s off -f 4//1 3//1 1//1 -f 8//2 7//2 3//2 -f 8//3 6//3 5//3 -f 2//4 1//4 5//4 -f 3//5 7//5 5//5 -f 8//6 4//6 2//6 -f 12//1 11//1 9//1 -f 16//2 15//2 11//2 -f 14//3 13//3 15//3 -f 10//4 9//4 13//4 -f 11//1 17//1 18//1 -f 16//7 12//7 10//7 -f 17//5 19//5 20//5 -f 19//3 23//3 21//3 -f 9//4 18//4 20//4 -f 13//3 20//3 19//3 -f 21//2 23//2 24//2 -f 17//1 11//1 22//1 -f 15//8 21//8 22//8 -f 17//9 24//9 23//9 -f 2//1 4//1 1//1 -f 4//2 8//2 3//2 -f 7//3 8//3 5//3 -f 6//4 2//4 5//4 -f 1//5 3//5 5//5 -f 6//6 8//6 2//6 -f 10//1 12//1 9//1 -f 12//2 16//2 11//2 -f 16//3 14//3 15//3 -f 14//4 10//4 13//4 -f 9//1 11//1 18//1 -f 14//7 16//7 10//7 -f 18//5 17//5 20//5 -f 15//3 19//3 21//3 -f 13//4 9//4 20//4 -f 15//3 13//3 19//3 -f 22//2 21//2 24//2 -f 24//1 17//1 22//1 -f 11//8 15//8 22//8 -f 19//9 17//9 23//9 diff --git a/src/main/resources/assets/hbm/models/cel_prime_tower.obj b/src/main/resources/assets/hbm/models/cel_prime_tower.obj deleted file mode 100644 index e05e1bcad..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_tower.obj +++ /dev/null @@ -1,281 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_tower.blend' -# www.blender.org -o Cube_Cube.001 -v 1.500000 0.000000 1.500000 -v 1.500000 5.000000 1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 5.000000 -1.500000 -v -1.500000 0.000000 1.500000 -v -1.500000 5.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v -1.500000 5.000000 -1.500000 -v 1.500000 4.750000 1.350000 -v 1.500000 0.250000 1.350000 -v 1.500000 0.250000 -1.350000 -v 1.500000 4.750000 -1.350000 -v 1.350000 4.750000 -1.500000 -v 1.350000 0.250000 -1.500000 -v -1.350000 0.250000 -1.500000 -v -1.350000 4.750000 -1.500000 -v -1.500000 4.750000 -1.350000 -v -1.500000 0.250000 -1.350000 -v -1.500000 0.250000 1.350000 -v -1.500000 4.750000 1.350000 -v -1.350000 4.750000 1.500000 -v -1.350000 0.250000 1.500000 -v 1.350000 0.250000 1.500000 -v 1.350000 4.750000 1.500000 -v 1.350000 4.750000 1.350000 -v 1.350000 0.250000 1.350000 -v 1.350000 0.250000 -1.350000 -v 1.350000 4.750000 -1.350000 -v 1.350000 4.750000 -1.350000 -v 1.350000 0.250000 -1.350000 -v -1.350000 0.250000 -1.350000 -v -1.350000 4.750000 -1.350000 -v -1.350000 4.750000 -1.350000 -v -1.350000 0.250000 -1.350000 -v -1.350000 0.250000 1.350000 -v -1.350000 4.750000 1.350000 -v -1.350000 4.750000 1.350000 -v -1.350000 0.250000 1.350000 -v 1.350000 0.250000 1.350000 -v 1.350000 4.750000 1.350000 -v -1.000000 7.000000 1.000000 -v 1.000000 7.000000 1.000000 -v -1.000000 7.000000 -1.000000 -v 1.000000 7.000000 -1.000000 -v 0.265165 8.000000 -0.265165 -v -0.000000 8.000000 -0.375000 -v 0.000000 8.000000 -0.500000 -v 0.000000 12.000000 -0.500000 -v 0.353553 8.000000 -0.353553 -v 0.353553 12.000000 -0.353553 -v 0.500000 8.000000 0.000000 -v 0.500000 12.000000 0.000000 -v 0.353553 8.000000 0.353553 -v 0.353553 12.000000 0.353553 -v -0.000000 8.000000 0.500000 -v -0.000000 12.000000 0.500000 -v -0.353553 8.000000 0.353553 -v -0.353553 12.000000 0.353553 -v -0.500000 8.000000 -0.000000 -v -0.500000 12.000000 -0.000000 -v -0.353553 8.000000 -0.353553 -v -0.353553 12.000000 -0.353553 -v 0.265165 12.000000 -0.265165 -v -0.000000 12.000000 -0.375000 -v 0.375000 8.000000 0.000000 -v 0.375000 12.000000 0.000000 -v 0.265165 8.000000 0.265165 -v 0.265165 12.000000 0.265165 -v -0.000000 8.000000 0.375000 -v -0.000000 12.000000 0.375000 -v -0.265165 8.000000 0.265165 -v -0.265165 12.000000 0.265165 -v -0.375000 8.000000 -0.000000 -v -0.375000 12.000000 -0.000000 -v -0.265165 8.000000 -0.265165 -v -0.265165 12.000000 -0.265165 -v -0.500000 7.000000 -0.500000 -v -0.500000 10.000000 -0.500000 -v -0.500000 7.000000 -1.000000 -v -0.500000 10.500000 -1.000000 -v 0.500000 7.000000 -0.500000 -v 0.500000 10.000000 -0.500000 -v 0.500000 7.000000 -1.000000 -v 0.500000 10.500000 -1.000000 -v -0.500000 10.353554 -0.146447 -v -0.500000 10.853554 -0.646447 -v 0.500000 10.853554 -0.646447 -v 0.500000 10.353554 -0.146447 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 1.000000 0.000000 -vn 0.970100 0.242500 0.000000 -vn 0.000000 0.242500 -0.970100 -vn -0.970100 0.242500 0.000000 -vn 0.000000 0.242500 0.970100 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn 0.000000 0.707100 -0.707100 -vn 0.000000 0.707100 0.707100 -vn 0.000000 -0.707100 0.707100 -s off -f 5//1 7//1 3//1 -f 10//2 9//2 2//2 -f 11//2 10//2 1//2 -f 12//2 11//2 3//2 -f 9//2 12//2 4//2 -f 14//3 13//3 4//3 -f 15//3 14//3 3//3 -f 16//3 15//3 7//3 -f 13//3 16//3 8//3 -f 18//4 17//4 8//4 -f 19//4 18//4 7//4 -f 20//4 19//4 5//4 -f 17//4 20//4 6//4 -f 22//5 21//5 6//5 -f 23//5 22//5 5//5 -f 24//5 23//5 1//5 -f 21//5 24//5 2//5 -f 26//2 27//2 28//2 -f 26//3 25//3 9//3 -f 27//6 26//6 10//6 -f 28//5 27//5 11//5 -f 25//1 28//1 12//1 -f 30//3 31//3 32//3 -f 30//4 29//4 13//4 -f 31//6 30//6 14//6 -f 32//2 31//2 15//2 -f 29//1 32//1 16//1 -f 34//4 35//4 36//4 -f 34//5 33//5 17//5 -f 35//6 34//6 18//6 -f 36//3 35//3 19//3 -f 33//1 36//1 20//1 -f 38//5 39//5 40//5 -f 38//2 37//2 21//2 -f 39//6 38//6 22//6 -f 40//4 39//4 23//4 -f 37//1 40//1 24//1 -f 42//6 44//6 43//6 -f 44//7 42//7 2//7 -f 43//8 44//8 4//8 -f 41//9 43//9 8//9 -f 42//10 41//10 6//10 -f 56//6 70//6 72//6 -f 52//6 66//6 68//6 -f 48//11 50//11 49//11 -f 55//1 69//1 67//1 -f 47//1 46//1 75//1 -f 50//12 52//12 51//12 -f 49//1 45//1 46//1 -f 59//1 73//1 71//1 -f 52//13 54//13 53//13 -f 62//6 76//6 64//6 -f 51//1 53//1 67//1 -f 54//14 56//14 55//14 -f 57//1 71//1 69//1 -f 76//14 75//14 46//14 -f 56//15 58//15 57//15 -f 51//1 65//1 45//1 -f 74//13 73//13 75//13 -f 58//16 60//16 59//16 -f 60//6 74//6 76//6 -f 62//17 48//17 47//17 -f 60//18 62//18 61//18 -f 50//6 63//6 66//6 -f 60//6 58//6 72//6 -f 54//6 68//6 70//6 -f 59//1 61//1 75//1 -f 48//6 64//6 63//6 -f 64//15 46//15 45//15 -f 63//16 45//16 65//16 -f 66//18 65//18 67//18 -f 68//17 67//17 69//17 -f 70//11 69//11 71//11 -f 72//12 71//12 73//12 -f 78//4 80//4 79//4 -f 84//3 83//3 79//3 -f 82//2 81//2 83//2 -f 78//5 77//5 81//5 -f 79//1 83//1 81//1 -f 80//19 86//19 87//19 -f 87//20 86//20 85//20 -f 84//2 87//2 88//2 -f 80//4 78//4 85//4 -f 82//21 88//21 85//21 -f 1//1 5//1 3//1 -f 1//2 10//2 2//2 -f 3//2 11//2 1//2 -f 4//2 12//2 3//2 -f 2//2 9//2 4//2 -f 3//3 14//3 4//3 -f 7//3 15//3 3//3 -f 8//3 16//3 7//3 -f 4//3 13//3 8//3 -f 7//4 18//4 8//4 -f 5//4 19//4 7//4 -f 6//4 20//4 5//4 -f 8//4 17//4 6//4 -f 5//5 22//5 6//5 -f 1//5 23//5 5//5 -f 2//5 24//5 1//5 -f 6//5 21//5 2//5 -f 25//2 26//2 28//2 -f 10//3 26//3 9//3 -f 11//6 27//6 10//6 -f 12//5 28//5 11//5 -f 9//1 25//1 12//1 -f 29//3 30//3 32//3 -f 14//4 30//4 13//4 -f 15//6 31//6 14//6 -f 16//2 32//2 15//2 -f 13//1 29//1 16//1 -f 33//4 34//4 36//4 -f 18//5 34//5 17//5 -f 19//6 35//6 18//6 -f 20//3 36//3 19//3 -f 17//1 33//1 20//1 -f 37//5 38//5 40//5 -f 22//2 38//2 21//2 -f 23//6 39//6 22//6 -f 24//4 40//4 23//4 -f 21//1 37//1 24//1 -f 41//6 42//6 43//6 -f 4//7 44//7 2//7 -f 8//8 43//8 4//8 -f 6//9 41//9 8//9 -f 2//10 42//10 6//10 -f 58//6 56//6 72//6 -f 54//6 52//6 68//6 -f 47//11 48//11 49//11 -f 53//1 55//1 67//1 -f 61//1 47//1 75//1 -f 49//12 50//12 51//12 -f 47//1 49//1 46//1 -f 57//1 59//1 71//1 -f 51//13 52//13 53//13 -f 48//6 62//6 64//6 -f 65//1 51//1 67//1 -f 53//14 54//14 55//14 -f 55//1 57//1 69//1 -f 64//14 76//14 46//14 -f 55//15 56//15 57//15 -f 49//1 51//1 45//1 -f 76//13 74//13 75//13 -f 57//16 58//16 59//16 -f 62//6 60//6 76//6 -f 61//17 62//17 47//17 -f 59//18 60//18 61//18 -f 52//6 50//6 66//6 -f 74//6 60//6 72//6 -f 56//6 54//6 70//6 -f 73//1 59//1 75//1 -f 50//6 48//6 63//6 -f 63//15 64//15 45//15 -f 66//16 63//16 65//16 -f 68//18 66//18 67//18 -f 70//17 68//17 69//17 -f 72//11 70//11 71//11 -f 74//12 72//12 73//12 -f 77//4 78//4 79//4 -f 80//3 84//3 79//3 -f 84//2 82//2 83//2 -f 82//5 78//5 81//5 -f 77//1 79//1 81//1 -f 84//19 80//19 87//19 -f 88//20 87//20 85//20 -f 82//2 84//2 88//2 -f 86//4 80//4 85//4 -f 78//21 82//21 85//21 diff --git a/src/main/resources/assets/hbm/models/chemplant_main.obj b/src/main/resources/assets/hbm/models/chemplant_main.obj deleted file mode 100644 index 90d39843a..000000000 --- a/src/main/resources/assets/hbm/models/chemplant_main.obj +++ /dev/null @@ -1,1870 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'chemplant_main.blend' -# www.blender.org -o Cube_Cube.001 -v -1.500000 0.000000 1.500000 -v -1.500000 0.250000 1.500000 -v -1.500000 0.000000 -1.500000 -v -1.500000 0.250000 -1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 0.250000 1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 0.250000 -1.500000 -v -1.250000 0.500000 1.250000 -v -1.250000 0.500000 -1.250000 -v 1.250000 0.500000 -1.250000 -v 1.250000 0.500000 1.250000 -v -1.250000 0.500000 0.000000 -v 0.000000 0.500000 -1.250000 -v 1.250000 0.500000 0.000000 -v 0.000000 0.500000 1.250000 -v 0.000000 0.500000 0.000000 -v 1.250000 0.750000 0.000000 -v 1.250000 0.750000 1.250000 -v 0.000000 0.750000 1.250000 -v 0.000000 0.750000 0.000000 -v 0.625000 0.750000 0.025000 -v 0.625000 2.750000 0.025000 -v 0.925000 0.750000 0.105385 -v 0.925000 2.750000 0.105385 -v 1.144615 0.750000 0.325000 -v 1.144615 2.750000 0.325000 -v 1.225000 0.750000 0.625000 -v 1.225000 2.750000 0.625000 -v 1.144615 0.750000 0.925000 -v 1.144615 2.750000 0.925000 -v 0.925000 0.750000 1.144615 -v 0.925000 2.750000 1.144615 -v 0.625000 0.750000 1.225000 -v 0.625000 2.750000 1.225000 -v 0.325000 0.750000 1.144615 -v 0.325000 2.750000 1.144615 -v 0.105385 0.750000 0.925000 -v 0.105385 2.750000 0.925000 -v 0.025000 0.750000 0.625000 -v 0.025000 2.750000 0.625000 -v 0.105385 0.750000 0.325000 -v 0.105385 2.750000 0.325000 -v 0.325000 0.750000 0.105385 -v 0.325000 2.750000 0.105385 -v 1.250000 0.750000 0.625000 -v 0.625000 0.750000 0.000000 -v 0.000000 0.750000 0.625000 -v 0.625000 0.750000 1.250000 -v 0.125000 0.500000 -1.125000 -v 1.125000 0.500000 -1.125000 -v 1.125000 0.500000 -0.125000 -v 0.125000 0.500000 -0.125000 -v -1.125000 0.500000 -0.125000 -v -1.125000 0.500000 -1.125000 -v -0.125000 0.500000 -1.125000 -v -0.125000 0.500000 -0.125000 -v 0.125000 0.650000 -1.125000 -v 1.125000 0.650000 -1.125000 -v 1.125000 0.650000 -0.125000 -v 0.125000 0.650000 -0.125000 -v 0.225000 0.650000 -1.025000 -v 1.025000 0.650000 -1.025000 -v 1.025000 0.650000 -0.225000 -v 0.225000 0.650000 -0.225000 -v -0.125000 0.650000 -0.125000 -v -0.125000 0.650000 -1.125000 -v -1.125000 0.650000 -1.125000 -v -1.125000 0.650000 -0.125000 -v 0.425000 2.000000 -0.425000 -v 0.825000 2.000000 -0.425000 -v 0.825000 2.000000 -0.825000 -v 0.425000 2.000000 -0.825000 -v 0.225000 1.850000 -1.025000 -v 1.025000 1.850000 -1.025000 -v 1.025000 1.850000 -0.225000 -v 0.225000 1.850000 -0.225000 -v 1.000000 2.750000 -0.024519 -v 0.625000 2.750000 -0.125000 -v 1.274519 2.750000 0.250000 -v 1.375000 2.750000 0.625000 -v 1.274519 2.750000 1.000000 -v 1.000000 2.750000 1.274519 -v 0.625000 2.750000 1.375000 -v 0.250000 2.750000 1.274519 -v -0.024519 2.750000 1.000000 -v -0.125000 2.750000 0.625000 -v -0.024519 2.750000 0.250000 -v 0.250000 2.750000 -0.024519 -v 1.000000 3.000000 -0.024519 -v 0.625000 3.000000 -0.125000 -v 1.274519 3.000000 0.250000 -v 1.375000 3.000000 0.625000 -v 1.274519 3.000000 1.000000 -v 1.000000 3.000000 1.274519 -v 0.625000 3.000000 1.375000 -v 0.250000 3.000000 1.274519 -v -0.024519 3.000000 1.000000 -v -0.125000 3.000000 0.625000 -v -0.024519 3.000000 0.250000 -v 0.250000 3.000000 -0.024519 -v -0.225000 0.650000 -1.025000 -v -0.225000 0.650000 -0.225000 -v -1.025000 0.650000 -0.225000 -v -1.025000 0.650000 -1.025000 -v -0.225000 1.850000 -1.025000 -v -0.225000 1.850000 -0.225000 -v -1.025000 1.850000 -0.225000 -v -1.025000 1.850000 -1.025000 -v -0.425000 2.000000 -0.825000 -v -0.425000 2.000000 -0.425000 -v -0.825000 2.000000 -0.425000 -v -0.825000 2.000000 -0.825000 -v -0.125000 0.500000 0.975000 -v -0.475000 0.500000 0.975000 -v -0.475000 0.500000 0.275000 -v -0.125000 0.500000 0.275000 -v -0.125000 1.250000 0.975000 -v -0.475000 1.250000 0.975000 -v -0.475000 1.250000 0.275000 -v -0.125000 1.250000 0.275000 -v -0.125000 1.500000 0.975000 -v -0.300000 1.500000 0.975000 -v -0.300000 1.500000 0.275000 -v -0.125000 1.500000 0.275000 -v -0.125000 1.500000 0.338636 -v -0.125000 1.500000 0.402273 -v -0.125000 1.500000 0.465909 -v -0.125000 1.500000 0.529545 -v -0.125000 1.500000 0.593182 -v -0.125000 1.500000 0.656818 -v -0.125000 1.500000 0.720455 -v -0.125000 1.500000 0.784091 -v -0.125000 1.500000 0.847727 -v -0.125000 1.500000 0.911364 -v -0.125000 1.650000 0.338636 -v -0.125000 1.650000 0.402273 -v -0.125000 1.650000 0.465909 -v -0.125000 1.650000 0.529545 -v -0.125000 1.650000 0.593182 -v -0.125000 1.650000 0.656818 -v -0.125000 1.650000 0.720455 -v -0.125000 1.650000 0.784091 -v -0.125000 1.650000 0.847727 -v -0.125000 1.650000 0.911364 -v -0.025000 1.750000 0.338636 -v -0.025000 1.750000 0.402273 -v -0.025000 1.750000 0.465909 -v -0.025000 1.750000 0.529545 -v -0.025000 1.750000 0.593182 -v -0.025000 1.750000 0.656818 -v -0.025000 1.750000 0.720455 -v -0.025000 1.750000 0.784091 -v -0.025000 1.750000 0.847727 -v -0.025000 1.750000 0.911364 -v 0.125000 1.750000 0.338636 -v 0.125000 1.750000 0.402273 -v 0.125000 1.750000 0.465909 -v 0.125000 1.750000 0.529545 -v 0.125000 1.750000 0.593182 -v 0.125000 1.750000 0.656818 -v 0.125000 1.750000 0.720455 -v 0.125000 1.750000 0.784091 -v 0.125000 1.750000 0.847727 -v 0.125000 1.750000 0.911364 -v 0.482143 2.771048 -0.425000 -v 0.539286 2.771048 -0.425000 -v 0.596429 2.771048 -0.425000 -v 0.653571 2.771048 -0.425000 -v 0.710714 2.771048 -0.425000 -v 0.767857 2.771048 -0.425000 -v 0.482143 2.000000 -0.425000 -v 0.539286 2.000000 -0.425000 -v 0.596429 2.000000 -0.425000 -v 0.653571 2.000000 -0.425000 -v 0.710714 2.000000 -0.425000 -v 0.767857 2.000000 -0.425000 -v 0.482143 2.871047 -0.075000 -v 0.539286 2.871047 -0.075000 -v 0.596429 2.871047 -0.075000 -v 0.653571 2.871047 -0.075000 -v 0.710714 2.871047 -0.075000 -v 0.767857 2.871047 -0.075000 -v 0.482143 2.871047 -0.325000 -v 0.539286 2.871047 -0.325000 -v 0.596429 2.871047 -0.325000 -v 0.653571 2.871047 -0.325000 -v 0.710714 2.871047 -0.325000 -v 0.767857 2.871047 -0.325000 -v -0.850000 1.200000 -0.250000 -v -0.850000 1.200000 0.350000 -v -0.814645 1.185355 -0.250000 -v -0.814645 1.185355 0.350000 -v -0.800000 1.150000 -0.250000 -v -0.800000 1.150000 0.350000 -v -0.814645 1.114645 -0.250000 -v -0.814645 1.114645 0.350000 -v -0.850000 1.100000 -0.250000 -v -0.850000 1.100000 0.350000 -v -0.885355 1.114645 -0.250000 -v -0.885355 1.114645 0.350000 -v -0.900000 1.150000 -0.250000 -v -0.900000 1.150000 0.350000 -v -0.885355 1.185355 -0.250000 -v -0.885355 1.185355 0.350000 -v -0.750000 1.150000 0.400000 -v -0.450000 1.150000 0.400000 -v -0.750000 1.114645 0.414645 -v -0.450000 1.114645 0.414645 -v -0.750000 1.100000 0.450000 -v -0.450000 1.100000 0.450000 -v -0.750000 1.114645 0.485355 -v -0.450000 1.114645 0.485355 -v -0.750000 1.150000 0.500000 -v -0.450000 1.150000 0.500000 -v -0.750000 1.185355 0.485355 -v -0.450000 1.185355 0.485355 -v -0.750000 1.200000 0.450000 -v -0.450000 1.200000 0.450000 -v -0.750000 1.185355 0.414645 -v -0.450000 1.185355 0.414645 -v -0.850000 1.000000 -0.250000 -v -0.850000 1.000000 0.350000 -v -0.814645 0.985355 -0.250000 -v -0.814645 0.985355 0.350000 -v -0.800000 0.950000 -0.250000 -v -0.800000 0.950000 0.350000 -v -0.814645 0.914645 -0.250000 -v -0.814645 0.914645 0.350000 -v -0.850000 0.900000 -0.250000 -v -0.850000 0.900000 0.350000 -v -0.885355 0.914645 -0.250000 -v -0.885355 0.914645 0.350000 -v -0.900000 0.950000 -0.250000 -v -0.900000 0.950000 0.350000 -v -0.885355 0.985355 -0.250000 -v -0.885355 0.985355 0.350000 -v -0.750000 0.950000 0.400000 -v -0.450000 0.950000 0.400000 -v -0.750000 0.914645 0.414645 -v -0.450000 0.914645 0.414645 -v -0.750000 0.900000 0.450000 -v -0.450000 0.900000 0.450000 -v -0.750000 0.914645 0.485355 -v -0.450000 0.914645 0.485355 -v -0.750000 0.950000 0.500000 -v -0.450000 0.950000 0.500000 -v -0.750000 0.985355 0.485355 -v -0.450000 0.985355 0.485355 -v -0.750000 1.000000 0.450000 -v -0.450000 1.000000 0.450000 -v -0.750000 0.985355 0.414645 -v -0.450000 0.985355 0.414645 -v -0.850000 0.800000 -0.250000 -v -0.850000 0.800000 0.350000 -v -0.814645 0.785355 -0.250000 -v -0.814645 0.785355 0.350000 -v -0.800000 0.750000 -0.250000 -v -0.800000 0.750000 0.350000 -v -0.814645 0.714645 -0.250000 -v -0.814645 0.714645 0.350000 -v -0.850000 0.700000 -0.250000 -v -0.850000 0.700000 0.350000 -v -0.885355 0.714645 -0.250000 -v -0.885355 0.714645 0.350000 -v -0.900000 0.750000 -0.250000 -v -0.900000 0.750000 0.350000 -v -0.885355 0.785355 -0.250000 -v -0.885355 0.785355 0.350000 -v -0.750000 0.750000 0.400000 -v -0.450000 0.750000 0.400000 -v -0.750000 0.714645 0.414645 -v -0.450000 0.714645 0.414645 -v -0.750000 0.700000 0.450000 -v -0.450000 0.700000 0.450000 -v -0.750000 0.714645 0.485355 -v -0.450000 0.714645 0.485355 -v -0.750000 0.750000 0.500000 -v -0.450000 0.750000 0.500000 -v -0.750000 0.785355 0.485355 -v -0.450000 0.785355 0.485355 -v -0.750000 0.800000 0.450000 -v -0.450000 0.800000 0.450000 -v -0.750000 0.785355 0.414645 -v -0.450000 0.785355 0.414645 -v 1.000000 0.250000 -0.250000 -v 1.000000 0.750000 -0.250000 -v 1.000000 0.250000 -0.750000 -v 1.000000 0.750000 -0.750000 -v 2.000000 0.000000 0.000000 -v 2.000000 1.000000 0.000000 -v 2.000000 0.000000 -1.000000 -v 2.000000 1.000000 -1.000000 -v 1.500000 1.000000 -1.000000 -v 1.500000 0.000000 -1.000000 -v 1.500000 1.000000 0.000000 -v 1.500000 0.000000 0.000000 -v 2.000000 0.875000 -0.875000 -v 2.000000 0.125000 -0.875000 -v 2.000000 0.875000 -0.125000 -v 2.000000 0.125000 -0.125000 -v 1.500000 0.687500 -0.687500 -v 1.500000 0.312500 -0.687500 -v 1.500000 0.687500 -0.312500 -v 1.500000 0.312500 -0.312500 -v -1.000000 0.250000 0.750000 -v -1.000000 0.750000 0.750000 -v -1.000000 0.250000 0.250000 -v -1.000000 0.750000 0.250000 -v -2.000000 0.000000 1.000000 -v -2.000000 1.000000 1.000000 -v -2.000000 0.000000 0.000000 -v -2.000000 1.000000 0.000000 -v -1.500000 1.000000 0.000000 -v -1.500000 0.000000 0.000000 -v -1.500000 1.000000 1.000000 -v -1.500000 0.000000 1.000000 -v -2.000000 0.875000 0.125000 -v -2.000000 0.125000 0.125000 -v -2.000000 0.875000 0.875000 -v -2.000000 0.125000 0.875000 -v -1.500000 0.687500 0.312500 -v -1.500000 0.312500 0.312500 -v -1.500000 0.687500 0.687500 -v -1.500000 0.312500 0.687500 -v 0.656250 0.343750 -2.000000 -v 0.656250 0.656250 -2.000000 -v 0.343750 0.343750 -1.150000 -v 0.343750 0.656250 -1.150000 -v 0.343750 0.343750 -2.000000 -v 0.343750 0.656250 -2.000000 -v 0.656250 0.343750 -1.150000 -v 0.656250 0.656250 -1.150000 -v 0.328125 0.671875 -1.150000 -v 0.328125 0.328125 -1.150000 -v 0.671875 0.671875 -1.150000 -v 0.671875 0.328125 -1.150000 -v 0.328125 0.671875 -1.000000 -v 0.328125 0.328125 -1.000000 -v 0.671875 0.671875 -1.000000 -v 0.671875 0.328125 -1.000000 -v -0.343750 0.343750 -2.000000 -v -0.343750 0.656250 -2.000000 -v -0.656250 0.343750 -1.150000 -v -0.656250 0.656250 -1.150000 -v -0.656250 0.343750 -2.000000 -v -0.656250 0.656250 -2.000000 -v -0.343750 0.343750 -1.150000 -v -0.343750 0.656250 -1.150000 -v -0.671875 0.671875 -1.150000 -v -0.671875 0.328125 -1.150000 -v -0.328125 0.671875 -1.150000 -v -0.328125 0.328125 -1.150000 -v -0.671875 0.671875 -1.000000 -v -0.671875 0.328125 -1.000000 -v -0.328125 0.671875 -1.000000 -v -0.328125 0.328125 -1.000000 -v -0.343750 0.343750 2.000000 -v -0.343750 0.656250 2.000000 -v -0.656250 0.343750 1.150000 -v -0.656250 0.656250 1.150000 -v -0.656250 0.343750 2.000000 -v -0.656250 0.656250 2.000000 -v -0.343750 0.343750 1.150000 -v -0.343750 0.656250 1.150000 -v -0.671875 0.671875 1.150000 -v -0.671875 0.328125 1.150000 -v -0.328125 0.671875 1.150000 -v -0.328125 0.328125 1.150000 -v -0.671875 0.671875 1.000000 -v -0.671875 0.328125 1.000000 -v -0.328125 0.671875 1.000000 -v -0.328125 0.328125 1.000000 -v 0.656250 0.343750 2.000000 -v 0.656250 0.656250 2.000000 -v 0.343750 0.343750 1.150000 -v 0.343750 0.656250 1.150000 -v 0.343750 0.343750 2.000000 -v 0.343750 0.656250 2.000000 -v 0.656250 0.343750 1.150000 -v 0.656250 0.656250 1.150000 -v 0.328125 0.671875 1.150000 -v 0.328125 0.328125 1.150000 -v 0.671875 0.671875 1.150000 -v 0.671875 0.328125 1.150000 -v 0.328125 0.671875 1.000000 -v 0.328125 0.328125 1.000000 -v 0.671875 0.671875 1.000000 -v 0.671875 0.328125 1.000000 -v 1.916667 0.250000 -1.100000 -v 1.916667 0.750000 -1.100000 -v 1.666667 0.500000 -1.100000 -v 1.916667 0.250000 0.100000 -v 1.916667 0.750000 0.100000 -v 1.666667 0.500000 0.100000 -v -1.583333 0.250000 -0.100000 -v -1.583333 0.750000 -0.100000 -v -1.833333 0.500000 -0.100000 -v -1.583333 0.250000 1.100000 -v -1.583333 0.750000 1.100000 -v -1.833333 0.500000 1.100000 -v 0.425000 2.000000 -0.767857 -v 0.425000 2.000000 -0.710714 -v 0.425000 2.000000 -0.653571 -v 0.425000 2.000000 -0.596429 -v 0.425000 2.000000 -0.539286 -v 0.425000 2.000000 -0.482143 -v -0.425000 2.000000 -0.767857 -v -0.425000 2.000000 -0.710714 -v -0.425000 2.000000 -0.653571 -v -0.425000 2.000000 -0.596429 -v -0.425000 2.000000 -0.539286 -v -0.425000 2.000000 -0.482143 -v 0.325000 2.121195 -0.749805 -v 0.325000 2.121195 -0.692662 -v 0.325000 2.121195 -0.635520 -v 0.325000 2.121195 -0.578377 -v 0.325000 2.121195 -0.521234 -v 0.325000 2.121195 -0.464091 -v -0.325000 2.100000 -0.767857 -v -0.325000 2.100000 -0.710714 -v -0.325000 2.100000 -0.653571 -v -0.325000 2.100000 -0.596429 -v -0.325000 2.100000 -0.539286 -v -0.325000 2.100000 -0.482143 -vt 0.490762 0.926709 -vt 0.490762 0.946350 -vt 0.255070 0.946350 -vt 0.985607 0.945886 -vt 0.985607 0.965527 -vt 0.749916 0.965527 -vt 0.757849 0.713691 -vt 0.757849 0.694050 -vt 0.993541 0.694050 -vt 0.597494 0.251404 -vt 0.597495 0.231763 -vt 0.833186 0.231763 -vt 0.006459 0.317921 -vt 0.242151 0.317921 -vt 0.242151 0.553613 -vt 0.833186 0.251404 -vt 0.715341 0.279181 -vt 0.006459 0.762941 -vt 0.016280 0.753121 -vt 0.094844 0.753121 -vt 0.749916 0.945886 -vt 0.867761 0.918110 -vt 0.993541 0.713691 -vt 0.875695 0.741468 -vt 0.255070 0.926709 -vt 0.372916 0.898933 -vt 0.104664 0.566532 -vt 0.094844 0.588137 -vt 0.067346 0.588137 -vt 0.895627 0.431077 -vt 0.875987 0.381974 -vt 0.895627 0.332872 -vt 0.104664 0.762941 -vt 0.114485 0.753121 -vt 0.193049 0.753121 -vt 0.758141 0.332872 -vt 0.777782 0.381974 -vt 0.758141 0.431077 -vt 0.875987 0.313231 -vt 0.826884 0.332872 -vt 0.777782 0.313231 -vt 0.777782 0.450718 -vt 0.826884 0.431077 -vt 0.875987 0.450718 -vt 0.547877 0.688960 -vt 0.523477 0.688960 -vt 0.523476 0.531833 -vt 0.499076 0.688960 -vt 0.499076 0.531833 -vt 0.474675 0.688961 -vt 0.474675 0.531833 -vt 0.450275 0.688961 -vt 0.450275 0.531833 -vt 0.425874 0.688961 -vt 0.425874 0.531833 -vt 0.401474 0.688961 -vt 0.401473 0.531833 -vt 0.377073 0.688961 -vt 0.377073 0.531833 -vt 0.352672 0.688961 -vt 0.352672 0.531833 -vt 0.328272 0.688961 -vt 0.328272 0.531833 -vt 0.303871 0.688961 -vt 0.303871 0.531833 -vt 0.578087 0.897548 -vt 0.583979 0.887342 -vt 0.605547 0.908909 -vt 0.279471 0.688961 -vt 0.255070 0.688961 -vt 0.255070 0.531833 -vt 0.279471 0.531833 -vt 0.777782 0.431077 -vt 0.803315 0.422797 -vt 0.826884 0.429113 -vt 0.850453 0.422797 -vt 0.867707 0.405544 -vt 0.875987 0.431077 -vt 0.867707 0.358405 -vt 0.875987 0.332872 -vt 0.850453 0.341151 -vt 0.803315 0.341151 -vt 0.777782 0.332872 -vt 0.786061 0.405544 -vt 0.779746 0.381974 -vt 0.786061 0.358405 -vt 0.116449 0.305002 -vt 0.116449 0.293218 -vt 0.195013 0.293218 -vt 0.202869 0.762941 -vt 0.193049 0.674557 -vt 0.104664 0.664736 -vt 0.114485 0.674557 -vt 0.202869 0.664736 -vt 0.373474 0.006460 -vt 0.381807 0.014793 -vt 0.326254 0.070346 -vt 0.094844 0.674557 -vt 0.016280 0.674557 -vt 0.006459 0.664736 -vt 0.293218 0.195013 -vt 0.285361 0.187156 -vt 0.285361 0.124305 -vt 0.195013 0.006459 -vt 0.195013 0.018244 -vt 0.116449 0.018244 -vt 0.305002 0.195013 -vt 0.293218 0.116449 -vt 0.006459 0.116449 -vt 0.018244 0.116449 -vt 0.018244 0.195013 -vt 0.124305 0.285361 -vt 0.124305 0.191085 -vt 0.187156 0.191085 -vt 0.026100 0.124305 -vt 0.026100 0.187156 -vt 0.187156 0.285361 -vt 0.187156 0.026100 -vt 0.124305 0.026100 -vt 0.529023 0.273114 -vt 0.520690 0.264781 -vt 0.576243 0.209228 -vt 0.584576 0.062012 -vt 0.576243 0.070345 -vt 0.520690 0.014792 -vt 0.317921 0.217561 -vt 0.326254 0.209228 -vt 0.381807 0.264781 -vt 0.337365 0.209228 -vt 0.381807 0.253671 -vt 0.120377 0.124305 -vt 0.140018 0.140018 -vt 0.140018 0.171444 -vt 0.191084 0.187156 -vt 0.171444 0.171444 -vt 0.171444 0.140018 -vt 0.187156 0.120377 -vt 0.124305 0.120377 -vt 0.191084 0.124305 -vt 0.120377 0.187156 -vt 0.473470 0.139787 -vt 0.451248 0.117566 -vt 0.454026 0.092567 -vt 0.683441 0.773992 -vt 0.678358 0.792964 -vt 0.648896 0.785069 -vt 0.560796 0.854968 -vt 0.571002 0.849076 -vt 0.578896 0.878537 -vt 0.567111 0.809447 -vt 0.578896 0.809447 -vt 0.571002 0.838909 -vt 0.595341 0.773183 -vt 0.605547 0.779075 -vt 0.583979 0.800643 -vt 0.637921 0.755892 -vt 0.643813 0.766098 -vt 0.614351 0.773992 -vt 0.683441 0.762207 -vt 0.653980 0.766098 -vt 0.702452 0.914802 -vt 0.692246 0.908909 -vt 0.713813 0.887342 -vt 0.730681 0.878537 -vt 0.718897 0.878537 -vt 0.726791 0.849076 -vt 0.719706 0.790437 -vt 0.713813 0.800643 -vt 0.692246 0.779075 -vt 0.683441 0.925777 -vt 0.659872 0.932093 -vt 0.653980 0.921887 -vt 0.736997 0.833017 -vt 0.726791 0.838909 -vt 0.718897 0.809448 -vt 0.614351 0.925777 -vt 0.614351 0.913993 -vt 0.643813 0.921887 -vt 0.597868 0.873454 -vt 0.597868 0.814531 -vt 0.699925 0.814531 -vt 0.648896 0.902915 -vt 0.678358 0.895021 -vt 0.699925 0.873454 -vt 0.707819 0.843992 -vt 0.589973 0.843992 -vt 0.619435 0.792964 -vt 0.619435 0.895021 -vt 0.404028 0.142564 -vt 0.448471 0.187007 -vt 0.381807 0.025903 -vt 0.337365 0.070346 -vt 0.520690 0.253670 -vt 0.565132 0.209228 -vt 0.565132 0.070345 -vt 0.520690 0.025903 -vt 0.454026 0.187007 -vt 0.451248 0.162008 -vt 0.448471 0.092567 -vt 0.404028 0.137009 -vt 0.498468 0.142564 -vt 0.498468 0.137009 -vt 0.429027 0.139787 -vt 0.772654 0.139975 -vt 0.713797 0.139968 -vt 0.713803 0.085034 -vt 0.094844 0.643131 -vt 0.067346 0.643131 -vt 0.006459 0.566532 -vt 0.694377 0.159597 -vt 0.666844 0.159844 -vt 0.680434 0.140054 -vt 0.597494 0.085032 -vt 0.656447 0.085032 -vt 0.656447 0.140054 -vt 0.667374 0.218844 -vt 0.694185 0.006460 -vt 0.694184 0.065389 -vt 0.666684 0.065389 -vt 0.694193 0.115020 -vt 0.694197 0.120017 -vt 0.694184 0.085032 -vt 0.680434 0.085032 -vt 0.597494 0.297099 -vt 0.597494 0.292100 -vt 0.609279 0.292100 -vt 0.620390 0.292100 -vt 0.620390 0.297099 -vt 0.609279 0.297099 -vt 0.645093 0.297099 -vt 0.645093 0.292100 -vt 0.656878 0.292100 -vt 0.233196 0.730162 -vt 0.233196 0.718377 -vt 0.238196 0.718377 -vt 0.188875 0.787645 -vt 0.188875 0.775860 -vt 0.193875 0.775860 -vt 0.233196 0.682563 -vt 0.233196 0.670778 -vt 0.238196 0.670778 -vt 0.238196 0.693674 -vt 0.233196 0.693673 -vt 0.193875 0.798755 -vt 0.188875 0.798755 -vt 0.238196 0.741272 -vt 0.233196 0.741272 -vt 0.667988 0.292100 -vt 0.667988 0.297099 -vt 0.656878 0.297099 -vt 0.632174 0.292100 -vt 0.632174 0.297099 -vt 0.679773 0.292100 -vt 0.679773 0.297099 -vt 0.238196 0.753057 -vt 0.233196 0.753057 -vt 0.193875 0.810540 -vt 0.188875 0.810540 -vt 0.238196 0.705458 -vt 0.233196 0.705458 -vt 0.220277 0.762106 -vt 0.215788 0.762106 -vt 0.215788 0.742465 -vt 0.237686 0.657860 -vt 0.233196 0.657860 -vt 0.233196 0.638219 -vt 0.220277 0.657860 -vt 0.215788 0.657860 -vt 0.215788 0.638219 -vt 0.215788 0.627108 -vt 0.215788 0.566532 -vt 0.220277 0.566532 -vt 0.233196 0.627108 -vt 0.233196 0.566532 -vt 0.237686 0.566532 -vt 0.215788 0.731355 -vt 0.215788 0.670778 -vt 0.220277 0.670778 -vt 0.220277 0.742465 -vt 0.237686 0.638219 -vt 0.220277 0.638219 -vt 0.814270 0.481676 -vt 0.814270 0.484682 -vt 0.790701 0.484682 -vt 0.452123 0.725932 -vt 0.452123 0.722925 -vt 0.499261 0.722925 -vt 0.231300 0.817551 -vt 0.234194 0.816738 -vt 0.234194 0.823920 -vt 0.218064 0.827849 -vt 0.218064 0.812810 -vt 0.220959 0.811996 -vt 0.452123 0.719919 -vt 0.499261 0.719919 -vt 0.236470 0.814774 -vt 0.236470 0.825884 -vt 0.814270 0.472656 -vt 0.814270 0.475663 -vt 0.790701 0.475663 -vt 0.452123 0.716912 -vt 0.499261 0.716912 -vt 0.814270 0.478669 -vt 0.790701 0.481676 -vt 0.452123 0.713906 -vt 0.499261 0.713906 -vt 0.452123 0.710899 -vt 0.499261 0.710899 -vt 0.215788 0.825884 -vt 0.215788 0.814774 -vt 0.814270 0.469650 -vt 0.790701 0.472656 -vt 0.452123 0.707893 -vt 0.499261 0.707893 -vt 0.223853 0.812810 -vt 0.223853 0.827849 -vt 0.220959 0.828662 -vt 0.452123 0.704886 -vt 0.452123 0.701880 -vt 0.499261 0.701880 -vt 0.499261 0.704886 -vt 0.790701 0.478669 -vt 0.814270 0.487689 -vt 0.790701 0.487689 -vt 0.814270 0.466643 -vt 0.790701 0.469650 -vt 0.231300 0.823107 -vt 0.228405 0.823920 -vt 0.814270 0.463637 -vt 0.790701 0.466643 -vt 0.226129 0.814774 -vt 0.228405 0.816738 -vt 0.226129 0.825884 -vt 0.175956 0.793899 -vt 0.175956 0.796906 -vt 0.152387 0.796906 -vt 0.452123 0.762903 -vt 0.452123 0.759896 -vt 0.499261 0.759896 -vt 0.523291 0.821793 -vt 0.524104 0.824687 -vt 0.516922 0.824687 -vt 0.512994 0.808558 -vt 0.528032 0.808558 -vt 0.528846 0.811452 -vt 0.452123 0.756890 -vt 0.499261 0.756890 -vt 0.526068 0.826964 -vt 0.514958 0.826964 -vt 0.175956 0.784880 -vt 0.175956 0.787886 -vt 0.152387 0.787886 -vt 0.452123 0.753883 -vt 0.499261 0.753883 -vt 0.175956 0.790893 -vt 0.152387 0.793899 -vt 0.452123 0.750877 -vt 0.499261 0.750877 -vt 0.452123 0.747870 -vt 0.499261 0.747870 -vt 0.514958 0.806281 -vt 0.526068 0.806281 -vt 0.175956 0.781873 -vt 0.152387 0.784880 -vt 0.452123 0.744864 -vt 0.499261 0.744864 -vt 0.528032 0.814346 -vt 0.512994 0.814346 -vt 0.512180 0.811452 -vt 0.452123 0.741857 -vt 0.452123 0.738851 -vt 0.499261 0.738851 -vt 0.499261 0.741857 -vt 0.152387 0.790893 -vt 0.175956 0.799912 -vt 0.152387 0.799912 -vt 0.175956 0.778867 -vt 0.152387 0.781873 -vt 0.517735 0.821793 -vt 0.516922 0.818899 -vt 0.175956 0.775860 -vt 0.152387 0.778867 -vt 0.514958 0.816622 -vt 0.524104 0.818899 -vt 0.239357 0.793064 -vt 0.239357 0.796071 -vt 0.215788 0.796071 -vt 0.452123 0.799874 -vt 0.452123 0.796867 -vt 0.499261 0.796867 -vt 0.806212 0.506163 -vt 0.809107 0.505349 -vt 0.809107 0.512532 -vt 0.792977 0.516460 -vt 0.792977 0.501421 -vt 0.795871 0.500608 -vt 0.452123 0.793861 -vt 0.499261 0.793861 -vt 0.811383 0.503385 -vt 0.811383 0.514496 -vt 0.239357 0.784045 -vt 0.239357 0.787051 -vt 0.215788 0.787051 -vt 0.452123 0.790854 -vt 0.499261 0.790854 -vt 0.239357 0.790058 -vt 0.215788 0.793064 -vt 0.452123 0.787848 -vt 0.499261 0.787848 -vt 0.452123 0.784841 -vt 0.499261 0.784841 -vt 0.790701 0.514496 -vt 0.790701 0.503385 -vt 0.239357 0.781038 -vt 0.215788 0.784045 -vt 0.452123 0.781835 -vt 0.499261 0.781835 -vt 0.798766 0.501421 -vt 0.798766 0.516460 -vt 0.452123 0.778828 -vt 0.452123 0.775822 -vt 0.499261 0.775822 -vt 0.499261 0.778828 -vt 0.215788 0.790058 -vt 0.239357 0.799077 -vt 0.215788 0.799077 -vt 0.239357 0.778032 -vt 0.215788 0.781038 -vt 0.806212 0.511718 -vt 0.803318 0.512532 -vt 0.215788 0.775025 -vt 0.239357 0.775025 -vt 0.801042 0.514496 -vt 0.801042 0.503385 -vt 0.803318 0.505349 -vt 0.438896 0.418417 -vt 0.411119 0.446194 -vt 0.383343 0.418417 -vt 0.511616 0.463361 -vt 0.456063 0.518914 -vt 0.428286 0.491137 -vt 0.891366 0.006459 -vt 0.881546 0.016280 -vt 0.822623 0.016280 -vt 0.411119 0.390641 -vt 0.338399 0.401251 -vt 0.282846 0.456804 -vt 0.255070 0.429027 -vt 0.310623 0.373474 -vt 0.483839 0.401251 -vt 0.511616 0.373474 -vt 0.428286 0.345698 -vt 0.393952 0.345698 -vt 0.483839 0.435584 -vt 0.795400 0.043502 -vt 0.837353 0.058233 -vt 0.837353 0.087694 -vt 0.812802 0.139468 -vt 0.822623 0.129648 -vt 0.881545 0.129648 -vt 0.918588 0.112246 -vt 0.908768 0.102425 -vt 0.908768 0.043502 -vt 0.785580 0.033682 -vt 0.795400 0.102425 -vt 0.866815 0.058233 -vt 0.866815 0.087695 -vt 0.647017 0.396432 -vt 0.647017 0.435713 -vt 0.607735 0.435713 -vt 0.666658 0.479632 -vt 0.666658 0.518914 -vt 0.588094 0.518914 -vt 0.043502 0.899048 -vt 0.102425 0.899048 -vt 0.112246 0.908869 -vt 0.666658 0.352513 -vt 0.607735 0.396432 -vt 0.745222 0.518914 -vt 0.563817 0.455354 -vt 0.563817 0.376790 -vt 0.524535 0.455354 -vt 0.666658 0.313231 -vt 0.588094 0.352513 -vt 0.588094 0.479632 -vt 0.058233 0.827634 -vt 0.058233 0.857095 -vt 0.016280 0.871826 -vt 0.102425 0.785681 -vt 0.043502 0.785681 -vt 0.033682 0.775860 -vt 0.129648 0.871826 -vt 0.129648 0.812903 -vt 0.139468 0.803083 -vt 0.016280 0.812903 -vt 0.006459 0.881646 -vt 0.087695 0.857095 -vt 0.087695 0.827634 -vt 0.785278 0.541902 -vt 0.832498 0.589122 -vt 0.815138 0.606482 -vt 0.879718 0.541902 -vt 0.879718 0.540166 -vt 0.898815 0.559262 -vt 0.879718 0.671063 -vt 0.832498 0.623843 -vt 0.849859 0.606482 -vt 0.767918 0.653702 -vt 0.897079 0.559262 -vt 0.888051 0.531833 -vt 0.907148 0.550929 -vt 0.785278 0.671063 -vt 0.785278 0.672799 -vt 0.766182 0.653702 -vt 0.897079 0.653702 -vt 0.898815 0.653702 -vt 0.879718 0.672799 -vt 0.767918 0.559262 -vt 0.766182 0.559262 -vt 0.785278 0.540166 -vt 0.416499 0.290522 -vt 0.416499 0.286033 -vt 0.405388 0.286033 -vt 0.776945 0.681132 -vt 0.757849 0.662035 -vt 0.757849 0.550929 -vt 0.776945 0.531833 -vt 0.907148 0.662035 -vt 0.888051 0.681132 -vt 0.759985 0.877761 -vt 0.807205 0.830541 -vt 0.824565 0.847902 -vt 0.759985 0.783321 -vt 0.758249 0.783321 -vt 0.777345 0.764225 -vt 0.889145 0.783321 -vt 0.841925 0.830541 -vt 0.824565 0.813181 -vt 0.871785 0.895122 -vt 0.777345 0.765961 -vt 0.749916 0.774988 -vt 0.769012 0.755892 -vt 0.889145 0.877761 -vt 0.890881 0.877761 -vt 0.871785 0.896858 -vt 0.871785 0.765961 -vt 0.871785 0.764225 -vt 0.890881 0.783321 -vt 0.777345 0.895122 -vt 0.777345 0.896858 -vt 0.758249 0.877761 -vt 0.503967 0.290522 -vt 0.503967 0.286033 -vt 0.492856 0.286033 -vt 0.899214 0.886094 -vt 0.880118 0.905191 -vt 0.769012 0.905191 -vt 0.749916 0.886094 -vt 0.880118 0.755892 -vt 0.899214 0.774988 -vt 0.640587 0.638631 -vt 0.640587 0.663182 -vt 0.573808 0.663182 -vt 0.666366 0.731188 -vt 0.639360 0.731188 -vt 0.640587 0.729961 -vt 0.665139 0.663182 -vt 0.665139 0.638630 -vt 0.731918 0.638630 -vt 0.640587 0.571851 -vt 0.665139 0.729961 -vt 0.666366 0.742973 -vt 0.639360 0.742973 -vt 0.639360 0.570624 -vt 0.666366 0.570624 -vt 0.665138 0.571851 -vt 0.733145 0.637403 -vt 0.733145 0.664409 -vt 0.731918 0.663182 -vt 0.572580 0.664409 -vt 0.572580 0.637403 -vt 0.573808 0.638631 -vt 0.639360 0.558839 -vt 0.639360 0.531833 -vt 0.666366 0.531833 -vt 0.666366 0.558839 -vt 0.560796 0.664409 -vt 0.560796 0.637403 -vt 0.744930 0.637403 -vt 0.744930 0.664409 -vt 0.334861 0.781671 -vt 0.334861 0.806222 -vt 0.268082 0.806222 -vt 0.360640 0.874229 -vt 0.333634 0.874229 -vt 0.334861 0.873001 -vt 0.359413 0.806222 -vt 0.359413 0.781671 -vt 0.426192 0.781671 -vt 0.334861 0.714892 -vt 0.359413 0.873001 -vt 0.360640 0.886014 -vt 0.333634 0.886014 -vt 0.333634 0.713664 -vt 0.360640 0.713664 -vt 0.359413 0.714892 -vt 0.427419 0.780443 -vt 0.427419 0.807450 -vt 0.426192 0.806222 -vt 0.266854 0.807450 -vt 0.266854 0.780443 -vt 0.268082 0.781671 -vt 0.329032 0.290522 -vt 0.329032 0.286033 -vt 0.317921 0.286033 -vt 0.333634 0.701880 -vt 0.360640 0.701880 -vt 0.255070 0.807450 -vt 0.255070 0.780443 -vt 0.439204 0.780443 -vt 0.439204 0.807450 -vt 0.785580 0.191669 -vt 0.785580 0.152387 -vt 0.805221 0.172028 -vt 0.777782 0.502919 -vt 0.758141 0.483278 -vt 0.777782 0.463637 -vt 0.512180 0.741161 -vt 0.512180 0.701880 -vt 0.531821 0.721520 -vt 0.531821 0.793362 -vt 0.512180 0.773721 -vt 0.531821 0.754080 -vt 0.467593 0.287451 -vt 0.555060 0.287451 -vt 0.380125 0.287451 -vt 0.392470 0.286033 -vt 0.392470 0.290522 -vt 0.567405 0.286033 -vt 0.567405 0.290522 -vt 0.479937 0.286033 -vt 0.479937 0.290522 -vt 0.006459 0.553613 -vt 0.617135 0.279181 -vt 0.813545 0.279181 -vt 0.965966 0.918110 -vt 0.769557 0.918110 -vt 0.777490 0.741468 -vt 0.973900 0.741468 -vt 0.471121 0.898933 -vt 0.274711 0.898933 -vt 0.547877 0.531833 -vt 0.595341 0.914802 -vt 0.874022 0.381975 -vt 0.826884 0.334836 -vt 0.195013 0.305002 -vt 0.317921 0.062013 -vt 0.116449 0.006459 -vt 0.305002 0.116449 -vt 0.006459 0.195013 -vt 0.584576 0.217561 -vt 0.529022 0.006459 -vt 0.373474 0.273114 -vt 0.567111 0.878537 -vt 0.560796 0.833017 -vt 0.578087 0.790437 -vt 0.614351 0.762207 -vt 0.659872 0.755892 -vt 0.719706 0.897548 -vt 0.736997 0.854968 -vt 0.702452 0.773183 -vt 0.683441 0.913993 -vt 0.730681 0.809448 -vt 0.637920 0.932093 -vt 0.772661 0.085041 -vt 0.694200 0.139930 -vt 0.597494 0.140054 -vt 0.694907 0.218597 -vt 0.666684 0.006459 -vt 0.694184 0.090030 -vt 0.694185 0.095029 -vt 0.694186 0.100027 -vt 0.694188 0.105025 -vt 0.694190 0.110023 -vt 0.694202 0.125013 -vt 0.694078 0.130204 -vt 0.694150 0.133627 -vt 0.238196 0.730162 -vt 0.193875 0.787645 -vt 0.238196 0.682563 -vt 0.220277 0.627108 -vt 0.237686 0.627108 -vt 0.220277 0.731355 -vt 0.499261 0.725932 -vt 0.790701 0.463637 -vt 0.499261 0.762903 -vt 0.152387 0.775860 -vt 0.526068 0.816622 -vt 0.499261 0.799874 -vt 0.795871 0.517274 -vt 0.215788 0.778032 -vt 0.812802 0.006459 -vt 0.456063 0.317921 -vt 0.366176 0.317921 -vt 0.891366 0.139468 -vt 0.918588 0.033682 -vt 0.785580 0.112246 -vt 0.033682 0.908869 -vt 0.745222 0.479632 -vt 0.524535 0.376790 -vt 0.588094 0.313231 -vt 0.112246 0.775860 -vt 0.139468 0.881646 -vt 0.006459 0.803082 -vt 0.405388 0.290522 -vt 0.492856 0.290522 -vt 0.317921 0.290522 -vt 0.467593 0.291941 -vt 0.555060 0.291941 -vt 0.380125 0.291941 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.707100 0.707100 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.707100 -0.707100 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.600000 0.800000 0.000000 -vn -0.600000 0.800000 0.000000 -vn 0.000000 0.800000 -0.600000 -vn 0.000000 0.800000 0.600000 -vn -0.819200 0.573500 0.000000 -vn 0.000000 0.382700 0.923900 -vn 0.382700 0.923900 0.000000 -vn 0.678600 0.281100 -0.678600 -vn -0.678600 0.281100 0.678600 -vn 0.923900 0.382700 0.000000 -vn 0.357400 0.862900 -0.357400 -vn 0.000000 -0.923900 -0.382700 -vn 0.923900 -0.382700 0.000000 -vn 0.000000 -0.382700 0.923900 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.357400 0.862900 0.357400 -vn 0.000000 -0.382700 -0.923900 -vn -0.923900 -0.382700 0.000000 -vn -0.678600 -0.281100 0.678600 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 0.000000 -vn 0.000000 -0.923900 0.382700 -vn -0.000000 0.923900 0.382700 -vn 0.000000 0.382700 -0.923900 -vn 0.678600 -0.281100 -0.678600 -vn 0.000000 0.923900 -0.382700 -vn -0.357400 -0.862900 0.357400 -vn 0.357400 -0.862900 -0.357400 -vn -0.447200 0.000000 0.894400 -vn -0.447200 0.894400 0.000000 -vn -0.447200 0.000000 -0.894400 -vn 0.351100 0.000000 -0.936300 -vn 0.351100 0.000000 0.936300 -vn 0.351100 0.936300 0.000000 -vn 0.351100 -0.936300 0.000000 -vn 0.447200 0.000000 0.894400 -vn 0.447200 0.894400 0.000000 -vn 0.447200 0.000000 -0.894400 -vn -0.351100 0.000000 -0.936300 -vn -0.351100 0.000000 0.936300 -vn -0.351100 0.936300 0.000000 -vn -0.351100 -0.936300 0.000000 -vn -0.032600 0.999500 0.000000 -vn -0.771300 -0.636400 0.000000 -s off -f 4/1/1 3/2/1 1/3/1 -f 8/4/2 7/5/2 3/6/2 -f 6/7/3 5/8/3 7/9/3 -f 2/10/4 1/11/4 5/12/4 -f 3/13/5 7/14/5 5/15/5 -f 6/16/6 16/17/6 2/10/6 -f 10/18/7 55/19/7 56/20/7 -f 4/21/8 14/22/8 8/4/8 -f 8/23/9 15/24/9 6/7/9 -f 2/25/10 13/26/10 4/1/10 -f 16/27/7 114/28/7 115/29/7 -f 16/30/1 48/31/1 17/32/1 -f 14/33/7 50/34/7 51/35/7 -f 15/36/3 46/37/3 12/38/3 -f 17/39/2 47/40/2 15/41/2 -f 12/42/4 49/43/4 16/44/4 -f 23/45/11 25/46/11 24/47/11 -f 25/46/12 27/48/12 26/49/12 -f 27/48/13 29/50/13 28/51/13 -f 29/50/14 31/52/14 30/53/14 -f 31/52/15 33/54/15 32/55/15 -f 33/54/16 35/56/16 34/57/16 -f 35/56/17 37/58/17 36/59/17 -f 37/58/18 39/60/18 38/61/18 -f 39/60/19 41/62/19 40/63/19 -f 41/62/20 43/64/20 42/65/20 -f 39/66/5 86/67/5 87/68/5 -f 45/69/21 23/70/21 22/71/21 -f 43/64/22 45/69/22 44/72/22 -f 49/43/7 19/73/7 32/74/7 -f 49/43/7 34/75/7 36/76/7 -f 36/76/7 38/77/7 20/78/7 -f 48/31/7 20/78/7 38/77/7 -f 42/79/7 21/80/7 48/31/7 -f 44/81/7 21/80/7 42/79/7 -f 47/40/7 21/80/7 44/81/7 -f 24/82/7 18/83/7 47/40/7 -f 32/74/7 19/73/7 30/84/7 -f 46/37/7 28/85/7 30/84/7 -f 46/37/7 18/83/7 26/86/7 -f 26/86/7 18/83/7 24/82/7 -f 52/87/4 60/88/4 61/89/4 -f 11/90/7 51/35/7 52/91/7 -f 17/92/7 53/93/7 50/34/7 -f 15/94/7 52/91/7 53/93/7 -f 57/95/4 66/96/4 69/97/4 -f 17/92/7 57/98/7 54/99/7 -f 14/33/7 56/20/7 57/98/7 -f 13/100/7 54/99/7 55/19/7 -f 61/101/7 65/102/7 62/103/7 -f 50/104/2 58/105/2 59/106/2 -f 53/107/1 61/101/1 58/108/1 -f 51/109/3 59/110/3 60/111/3 -f 64/112/4 76/113/4 77/114/4 -f 59/110/7 63/115/7 64/116/7 -f 60/88/7 64/112/7 65/117/7 -f 58/105/7 62/118/7 63/119/7 -f 55/120/2 68/121/2 67/122/2 -f 56/123/3 67/124/3 66/125/3 -f 54/126/1 69/127/1 68/128/1 -f 69/127/7 104/129/7 105/130/7 -f 75/131/23 72/132/23 71/133/23 -f 77/134/24 70/135/24 73/136/24 -f 62/118/2 74/137/2 75/138/2 -f 65/102/1 77/134/1 74/139/1 -f 63/115/3 75/131/3 76/140/3 -f 74/137/25 73/136/25 72/132/25 -f 110/141/23 111/142/23 107/143/23 -f 77/114/26 76/113/26 71/133/26 -f 81/144/14 93/145/14 94/146/14 -f 37/147/5 85/148/5 86/149/5 -f 35/150/5 84/151/5 85/152/5 -f 33/153/5 83/154/5 84/155/5 -f 31/156/5 82/157/5 83/158/5 -f 29/159/5 81/144/5 82/160/5 -f 45/161/5 89/162/5 79/163/5 -f 23/164/5 79/165/5 78/166/5 -f 27/167/5 80/168/5 81/169/5 -f 45/170/5 43/171/5 88/172/5 -f 25/173/5 78/174/5 80/175/5 -f 41/176/5 87/177/5 88/178/5 -f 98/179/7 96/180/7 92/181/7 -f 88/172/22 100/182/22 101/183/22 -f 79/165/11 91/184/11 90/185/11 -f 85/148/18 97/186/18 98/179/18 -f 82/157/15 94/146/15 95/187/15 -f 89/162/21 101/183/21 91/184/21 -f 78/174/12 90/185/12 92/181/12 -f 86/67/19 98/179/19 99/188/19 -f 83/154/16 95/187/16 96/180/16 -f 80/168/13 92/181/13 93/145/13 -f 87/177/20 99/188/20 100/182/20 -f 84/151/17 96/180/17 97/186/17 -f 104/129/1 108/189/1 109/190/1 -f 66/96/7 103/191/7 104/192/7 -f 68/121/7 105/193/7 102/194/7 -f 67/124/7 102/195/7 103/196/7 -f 109/197/25 113/198/25 110/141/25 -f 103/191/4 107/199/4 108/200/4 -f 105/193/2 109/197/2 106/201/2 -f 102/195/3 106/202/3 107/143/3 -f 110/141/7 113/198/7 112/203/7 -f 73/136/7 70/135/7 71/133/7 -f 108/189/24 112/203/24 113/198/24 -f 107/199/26 111/142/26 112/203/26 -f 117/204/3 121/205/3 118/206/3 -f 17/92/7 117/207/7 114/28/7 -f 17/92/7 13/100/7 116/208/7 -f 9/209/7 115/29/7 116/208/7 -f 121/210/2 120/211/2 124/212/2 -f 115/213/1 119/214/1 120/215/1 -f 116/216/2 120/211/2 121/210/2 -f 114/217/4 118/218/4 119/219/4 -f 130/220/7 129/221/7 124/212/7 -f 118/218/4 122/222/4 123/223/4 -f 121/205/3 130/220/3 118/206/3 -f 119/214/27 123/223/27 124/212/27 -f 126/224/1 127/225/1 137/226/1 -f 147/227/10 146/228/10 136/229/10 -f 128/230/1 129/231/1 139/232/1 -f 140/233/1 130/234/1 131/235/1 -f 142/236/1 132/237/1 133/238/1 -f 144/239/1 134/240/1 135/241/1 -f 155/242/10 154/243/10 144/239/10 -f 153/244/10 152/245/10 142/236/10 -f 151/246/10 150/247/10 140/233/10 -f 149/248/10 148/249/10 138/250/10 -f 157/251/7 156/252/7 146/228/7 -f 159/253/7 158/254/7 148/249/7 -f 161/255/7 160/256/7 150/247/7 -f 163/257/7 162/258/7 152/245/7 -f 165/259/7 164/260/7 154/243/7 -f 182/261/7 183/262/7 189/263/7 -f 180/264/7 181/265/7 187/266/7 -f 178/267/7 179/268/7 185/269/7 -f 167/270/2 173/271/2 172/272/2 -f 169/273/2 175/274/2 174/275/2 -f 171/276/2 177/277/2 176/278/2 -f 188/279/8 189/263/8 171/276/8 -f 186/280/8 187/266/8 169/273/8 -f 184/281/8 185/269/8 167/270/8 -f 215/282/28 217/283/28 216/284/28 -f 191/285/29 193/286/29 192/287/29 -f 195/288/30 193/289/30 220/290/30 -f 216/291/31 205/292/31 203/293/31 -f 193/286/32 195/294/32 194/295/32 -f 191/296/33 218/297/33 220/290/33 -f 209/298/34 211/299/34 210/300/34 -f 195/294/35 197/301/35 196/302/35 -f 213/303/36 215/282/36 214/304/36 -f 197/301/37 199/305/37 198/306/37 -f 199/305/38 201/307/38 200/308/38 -f 218/309/39 191/310/39 205/292/39 -f 207/311/40 209/298/40 208/312/40 -f 201/307/41 203/313/41 202/314/41 -f 201/315/42 212/316/42 214/317/42 -f 205/318/43 191/319/43 190/320/43 -f 203/313/44 205/318/44 204/321/44 -f 211/299/45 213/303/45 212/322/45 -f 217/283/46 219/323/46 218/324/46 -f 221/325/47 207/311/47 206/326/47 -f 195/288/48 206/327/48 208/328/48 -f 219/329/49 221/325/49 220/330/49 -f 212/316/50 201/315/50 199/331/50 -f 197/332/51 208/328/51 210/333/51 -f 247/334/28 249/335/28 248/336/28 -f 223/337/29 225/338/29 224/339/29 -f 227/340/30 225/341/30 252/342/30 -f 248/343/31 237/344/31 235/345/31 -f 225/338/32 227/346/32 226/347/32 -f 223/348/33 250/349/33 252/342/33 -f 241/350/34 243/351/34 242/352/34 -f 227/346/35 229/353/35 228/354/35 -f 245/355/36 247/334/36 246/356/36 -f 229/353/37 231/357/37 230/358/37 -f 231/357/38 233/359/38 232/360/38 -f 250/361/39 223/362/39 237/344/39 -f 239/363/40 241/350/40 240/364/40 -f 233/359/41 235/365/41 234/366/41 -f 233/367/42 244/368/42 246/369/42 -f 237/370/43 223/371/43 222/372/43 -f 235/365/44 237/370/44 236/373/44 -f 243/351/45 245/355/45 244/374/45 -f 249/335/46 251/375/46 250/376/46 -f 253/377/47 239/363/47 238/378/47 -f 227/340/48 238/379/48 240/380/48 -f 251/381/49 253/377/49 252/382/49 -f 242/383/50 244/368/50 233/367/50 -f 229/384/51 240/380/51 242/383/51 -f 279/385/28 281/386/28 280/387/28 -f 255/388/29 257/389/29 256/390/29 -f 259/391/30 257/392/30 284/393/30 -f 280/394/31 269/395/31 267/396/31 -f 257/389/32 259/397/32 258/398/32 -f 255/399/33 282/400/33 284/393/33 -f 273/401/34 275/402/34 274/403/34 -f 259/397/35 261/404/35 260/405/35 -f 277/406/36 279/385/36 278/407/36 -f 261/404/37 263/408/37 262/409/37 -f 263/408/38 265/410/38 264/411/38 -f 282/412/39 255/413/39 269/395/39 -f 271/414/40 273/401/40 272/415/40 -f 265/410/41 267/416/41 266/417/41 -f 267/396/42 265/418/42 276/419/42 -f 269/420/43 255/421/43 254/422/43 -f 267/416/44 269/420/44 268/423/44 -f 275/402/45 277/406/45 276/424/45 -f 281/386/46 283/425/46 282/426/46 -f 285/427/47 271/414/47 270/428/47 -f 259/391/48 270/429/48 272/430/48 -f 282/431/49 283/432/49 285/427/49 -f 274/433/50 276/419/50 265/418/50 -f 263/434/51 261/435/51 272/430/51 -f 289/436/1 288/437/1 286/438/1 -f 293/439/2 292/440/2 295/441/2 -f 292/442/3 299/443/3 301/444/3 -f 287/445/52 286/438/52 297/446/52 -f 295/447/5 292/448/5 290/449/5 -f 294/450/53 289/436/53 287/445/53 -f 293/451/7 294/450/7 296/452/7 -f 296/453/4 297/446/4 290/449/4 -f 294/454/54 295/441/54 288/437/54 -f 301/455/55 305/456/55 304/457/55 -f 291/458/3 300/459/3 298/460/3 -f 293/461/3 298/462/3 299/463/3 -f 290/464/3 301/455/3 300/465/3 -f 304/457/3 305/456/3 303/466/3 -f 298/462/56 302/467/56 303/466/56 -f 299/443/57 303/466/57 305/456/57 -f 300/459/58 304/457/58 302/467/58 -f 306/468/3 308/469/3 309/470/3 -f 315/471/2 312/472/2 313/473/2 -f 321/474/1 319/475/1 312/476/1 -f 317/477/59 306/468/59 307/478/59 -f 310/479/5 312/472/5 315/471/5 -f 307/478/60 309/470/60 314/480/60 -f 316/481/7 314/480/7 313/482/7 -f 310/483/4 317/477/4 316/484/4 -f 308/469/61 315/471/61 314/485/61 -f 324/486/62 325/487/62 321/488/62 -f 318/489/1 320/490/1 311/491/1 -f 319/492/1 318/493/1 313/494/1 -f 320/495/1 321/488/1 310/496/1 -f 323/497/1 325/487/1 324/486/1 -f 323/497/63 322/498/63 318/493/63 -f 325/487/64 323/497/64 319/475/64 -f 322/498/65 324/486/65 320/490/65 -f 332/499/3 326/500/3 327/501/3 -f 332/502/2 337/503/2 335/504/2 -f 329/505/1 331/506/1 330/507/1 -f 333/508/7 327/501/7 331/506/7 -f 328/509/5 330/507/5 326/500/5 -f 327/501/2 326/500/2 330/507/2 -f 337/503/5 341/510/5 339/511/5 -f 329/512/2 334/513/2 336/514/2 -f 328/515/2 335/516/2 334/517/2 -f 333/518/2 336/519/2 337/520/2 -f 421/521/10 420/522/10 408/523/10 -f 334/513/7 338/524/7 340/525/7 -f 336/519/3 340/526/3 341/527/3 -f 335/516/1 339/528/1 338/529/1 -f 348/530/3 342/531/3 343/532/3 -f 348/533/2 353/534/2 351/535/2 -f 345/536/1 347/537/1 346/538/1 -f 349/539/7 343/532/7 347/537/7 -f 344/540/5 346/538/5 342/531/5 -f 343/532/2 342/531/2 346/538/2 -f 353/534/5 357/541/5 355/542/5 -f 345/543/2 350/544/2 352/545/2 -f 344/546/2 351/547/2 350/548/2 -f 349/549/2 352/550/2 353/551/2 -f 423/552/10 422/553/10 410/554/10 -f 350/544/7 354/555/7 356/556/7 -f 352/550/3 356/557/3 357/558/3 -f 351/547/1 355/559/1 354/560/1 -f 359/561/3 358/562/3 364/563/3 -f 367/564/4 369/565/4 364/566/4 -f 362/567/1 363/568/1 361/569/1 -f 363/568/7 359/561/7 365/570/7 -f 358/562/5 362/567/5 360/571/5 -f 362/567/4 358/562/4 359/561/4 -f 371/572/5 373/573/5 369/565/5 -f 368/574/4 366/575/4 361/576/4 -f 366/577/4 367/578/4 360/579/4 -f 369/580/4 368/581/4 365/582/4 -f 372/583/2 373/584/2 371/585/2 -f 372/583/7 370/586/7 366/575/7 -f 373/587/3 372/588/3 368/581/3 -f 370/589/1 371/590/1 367/578/1 -f 375/591/3 374/592/3 380/593/3 -f 383/594/4 385/595/4 380/596/4 -f 378/597/1 379/598/1 377/599/1 -f 379/598/7 375/591/7 381/600/7 -f 374/592/5 378/597/5 376/601/5 -f 378/597/4 374/592/4 375/591/4 -f 387/602/5 389/603/5 385/595/5 -f 384/604/4 382/605/4 377/606/4 -f 382/607/4 383/608/4 376/609/4 -f 385/610/4 384/611/4 381/612/4 -f 425/613/10 424/614/10 412/615/10 -f 388/616/7 386/617/7 382/605/7 -f 389/618/3 388/619/3 384/611/3 -f 386/620/1 387/621/1 383/608/1 -f 391/622/2 390/623/2 392/624/2 -f 394/625/4 395/626/4 393/627/4 -f 397/628/2 396/629/2 398/630/2 -f 400/631/4 401/632/4 399/633/4 -f 414/634/66 420/522/66 421/521/66 -f 416/635/66 422/553/66 423/552/66 -f 418/636/66 424/614/66 425/613/66 -f 418/636/67 406/637/67 407/638/67 -f 416/635/67 404/639/67 405/640/67 -f 414/634/67 402/641/67 403/642/67 -f 2/25/1 4/1/1 1/3/1 -f 4/21/2 8/4/2 3/6/2 -f 8/23/3 6/7/3 7/9/3 -f 6/16/4 2/10/4 5/12/4 -f 1/643/5 3/13/5 5/15/5 -f 9/644/6 2/10/6 16/17/6 -f 6/16/6 12/645/6 16/17/6 -f 14/33/7 10/18/7 56/20/7 -f 11/646/8 8/4/8 14/22/8 -f 4/21/8 10/647/8 14/22/8 -f 12/648/9 6/7/9 15/24/9 -f 8/23/9 11/649/9 15/24/9 -f 10/650/10 4/1/10 13/26/10 -f 2/25/10 9/651/10 13/26/10 -f 9/209/7 16/27/7 115/29/7 -f 21/80/1 17/32/1 48/31/1 -f 16/30/1 20/78/1 48/31/1 -f 11/90/7 14/33/7 51/35/7 -f 19/73/3 12/38/3 46/37/3 -f 15/36/3 18/83/3 46/37/3 -f 18/83/2 15/41/2 47/40/2 -f 17/39/2 21/80/2 47/40/2 -f 20/78/4 16/44/4 49/43/4 -f 12/42/4 19/73/4 49/43/4 -f 22/652/11 23/45/11 24/47/11 -f 24/47/12 25/46/12 26/49/12 -f 26/49/13 27/48/13 28/51/13 -f 28/51/14 29/50/14 30/53/14 -f 30/53/15 31/52/15 32/55/15 -f 32/55/16 33/54/16 34/57/16 -f 34/57/17 35/56/17 36/59/17 -f 36/59/18 37/58/18 38/61/18 -f 38/61/19 39/60/19 40/63/19 -f 40/63/20 41/62/20 42/65/20 -f 41/653/5 39/66/5 87/68/5 -f 44/72/21 45/69/21 22/71/21 -f 42/65/22 43/64/22 44/72/22 -f 34/75/7 49/43/7 32/74/7 -f 20/78/7 49/43/7 36/76/7 -f 40/654/7 48/31/7 38/77/7 -f 40/654/7 42/79/7 48/31/7 -f 22/655/7 47/40/7 44/81/7 -f 22/655/7 24/82/7 47/40/7 -f 19/73/7 46/37/7 30/84/7 -f 28/85/7 46/37/7 26/86/7 -f 53/656/4 52/87/4 61/89/4 -f 15/94/7 11/90/7 52/91/7 -f 14/33/7 17/92/7 50/34/7 -f 17/92/7 15/94/7 53/93/7 -f 54/657/4 57/95/4 69/97/4 -f 13/100/7 17/92/7 54/99/7 -f 17/92/7 14/33/7 57/98/7 -f 10/18/7 13/100/7 55/19/7 -f 58/108/7 61/101/7 62/103/7 -f 51/658/2 50/104/2 59/106/2 -f 50/659/1 53/107/1 58/108/1 -f 52/660/3 51/109/3 60/111/3 -f 65/117/4 64/112/4 77/114/4 -f 60/111/7 59/110/7 64/116/7 -f 61/89/7 60/88/7 65/117/7 -f 59/106/7 58/105/7 63/119/7 -f 56/661/2 55/120/2 67/122/2 -f 57/662/3 56/123/3 66/125/3 -f 55/663/1 54/126/1 68/128/1 -f 68/128/7 69/127/7 105/130/7 -f 76/140/23 75/131/23 71/133/23 -f 74/139/24 77/134/24 73/136/24 -f 63/119/2 62/118/2 75/138/2 -f 62/103/1 65/102/1 74/139/1 -f 64/116/3 63/115/3 76/140/3 -f 75/138/25 74/137/25 72/132/25 -f 106/202/23 110/141/23 107/143/23 -f 70/135/26 77/114/26 71/133/26 -f 82/160/14 81/144/14 94/146/14 -f 39/664/5 37/147/5 86/149/5 -f 37/665/5 35/150/5 85/152/5 -f 35/666/5 33/153/5 84/155/5 -f 33/667/5 31/156/5 83/158/5 -f 31/668/5 29/159/5 82/160/5 -f 23/669/5 45/161/5 79/163/5 -f 25/670/5 23/164/5 78/166/5 -f 29/671/5 27/167/5 81/169/5 -f 89/672/5 45/170/5 88/172/5 -f 27/673/5 25/173/5 80/175/5 -f 43/674/5 41/176/5 88/178/5 -f 92/181/7 90/185/7 100/182/7 -f 91/184/7 101/183/7 100/182/7 -f 100/182/7 99/188/7 98/179/7 -f 98/179/7 97/186/7 96/180/7 -f 96/180/7 95/187/7 94/146/7 -f 94/146/7 93/145/7 92/181/7 -f 90/185/7 91/184/7 100/182/7 -f 100/182/7 98/179/7 92/181/7 -f 96/180/7 94/146/7 92/181/7 -f 89/672/22 88/172/22 101/183/22 -f 78/166/11 79/165/11 90/185/11 -f 86/149/18 85/148/18 98/179/18 -f 83/158/15 82/157/15 95/187/15 -f 79/163/21 89/162/21 91/184/21 -f 80/175/12 78/174/12 92/181/12 -f 87/68/19 86/67/19 99/188/19 -f 84/155/16 83/154/16 96/180/16 -f 81/169/13 80/168/13 93/145/13 -f 88/178/20 87/177/20 100/182/20 -f 85/152/17 84/151/17 97/186/17 -f 105/130/1 104/129/1 109/190/1 -f 69/97/7 66/96/7 104/192/7 -f 67/122/7 68/121/7 102/194/7 -f 66/125/7 67/124/7 103/196/7 -f 106/201/25 109/197/25 110/141/25 -f 104/192/4 103/191/4 108/200/4 -f 102/194/2 105/193/2 106/201/2 -f 103/196/3 102/195/3 107/143/3 -f 111/142/7 110/141/7 112/203/7 -f 72/132/7 73/136/7 71/133/7 -f 109/190/24 108/189/24 113/198/24 -f 108/200/26 107/199/26 112/203/26 -f 114/675/3 117/204/3 118/206/3 -f 16/27/7 17/92/7 114/28/7 -f 117/207/7 17/92/7 116/208/7 -f 13/100/7 9/209/7 116/208/7 -f 125/676/2 121/210/2 124/212/2 -f 116/677/1 115/213/1 120/215/1 -f 117/678/2 116/216/2 121/210/2 -f 115/679/4 114/217/4 119/219/4 -f 123/223/7 122/222/7 135/680/7 -f 135/680/7 134/681/7 123/223/7 -f 133/682/7 132/683/7 123/223/7 -f 131/684/7 130/220/7 124/212/7 -f 129/221/7 128/685/7 124/212/7 -f 127/686/7 126/687/7 124/212/7 -f 125/676/7 124/212/7 126/687/7 -f 123/223/7 134/681/7 133/682/7 -f 132/683/7 131/684/7 123/223/7 -f 128/685/7 127/686/7 124/212/7 -f 124/212/7 123/223/7 131/684/7 -f 119/219/4 118/218/4 123/223/4 -f 122/222/3 118/206/3 135/680/3 -f 121/205/3 125/676/3 126/687/3 -f 126/687/3 127/686/3 121/205/3 -f 128/685/3 129/221/3 121/205/3 -f 130/220/3 131/684/3 118/206/3 -f 132/683/3 133/682/3 118/206/3 -f 134/681/3 135/680/3 118/206/3 -f 121/205/3 127/686/3 128/685/3 -f 134/681/3 118/206/3 133/682/3 -f 131/684/3 132/683/3 118/206/3 -f 121/205/3 129/221/3 130/220/3 -f 120/215/27 119/214/27 124/212/27 -f 136/229/1 126/224/1 137/226/1 -f 137/226/10 147/227/10 136/229/10 -f 138/250/1 128/230/1 139/232/1 -f 141/688/1 140/233/1 131/235/1 -f 143/689/1 142/236/1 133/238/1 -f 145/690/1 144/239/1 135/241/1 -f 145/690/10 155/242/10 144/239/10 -f 143/689/10 153/244/10 142/236/10 -f 141/688/10 151/246/10 140/233/10 -f 139/232/10 149/248/10 138/250/10 -f 147/227/7 157/251/7 146/228/7 -f 149/248/7 159/253/7 148/249/7 -f 151/246/7 161/255/7 150/247/7 -f 153/244/7 163/257/7 152/245/7 -f 155/242/7 165/259/7 154/243/7 -f 188/279/7 182/261/7 189/263/7 -f 186/280/7 180/264/7 187/266/7 -f 184/281/7 178/267/7 185/269/7 -f 166/691/2 167/270/2 172/272/2 -f 168/692/2 169/273/2 174/275/2 -f 170/693/2 171/276/2 176/278/2 -f 170/693/8 188/279/8 171/276/8 -f 168/692/8 186/280/8 169/273/8 -f 166/691/8 184/281/8 167/270/8 -f 214/304/28 215/282/28 216/284/28 -f 190/694/29 191/285/29 192/287/29 -f 206/327/30 195/288/30 220/290/30 -f 214/317/31 216/291/31 203/293/31 -f 192/287/32 193/286/32 194/295/32 -f 193/289/33 191/296/33 220/290/33 -f 208/312/34 209/298/34 210/300/34 -f 194/295/35 195/294/35 196/302/35 -f 212/322/36 213/303/36 214/304/36 -f 196/302/37 197/301/37 198/306/37 -f 198/306/38 199/305/38 200/308/38 -f 216/291/39 218/309/39 205/292/39 -f 206/326/40 207/311/40 208/312/40 -f 200/308/41 201/307/41 202/314/41 -f 203/293/42 201/315/42 214/317/42 -f 204/321/43 205/318/43 190/320/43 -f 202/314/44 203/313/44 204/321/44 -f 210/300/45 211/299/45 212/322/45 -f 216/284/46 217/283/46 218/324/46 -f 220/330/47 221/325/47 206/326/47 -f 197/332/48 195/288/48 208/328/48 -f 218/695/49 219/329/49 220/330/49 -f 210/333/50 212/316/50 199/331/50 -f 199/331/51 197/332/51 210/333/51 -f 246/356/28 247/334/28 248/336/28 -f 222/696/29 223/337/29 224/339/29 -f 238/379/30 227/340/30 252/342/30 -f 246/369/31 248/343/31 235/345/31 -f 224/339/32 225/338/32 226/347/32 -f 225/341/33 223/348/33 252/342/33 -f 240/364/34 241/350/34 242/352/34 -f 226/347/35 227/346/35 228/354/35 -f 244/374/36 245/355/36 246/356/36 -f 228/354/37 229/353/37 230/358/37 -f 230/358/38 231/357/38 232/360/38 -f 248/343/39 250/361/39 237/344/39 -f 238/378/40 239/363/40 240/364/40 -f 232/360/41 233/359/41 234/366/41 -f 235/345/42 233/367/42 246/369/42 -f 236/373/43 237/370/43 222/372/43 -f 234/366/44 235/365/44 236/373/44 -f 242/352/45 243/351/45 244/374/45 -f 248/336/46 249/335/46 250/376/46 -f 252/382/47 253/377/47 238/378/47 -f 229/384/48 227/340/48 240/380/48 -f 250/697/49 251/381/49 252/382/49 -f 231/698/50 242/383/50 233/367/50 -f 231/698/51 229/384/51 242/383/51 -f 278/407/28 279/385/28 280/387/28 -f 254/699/29 255/388/29 256/390/29 -f 270/429/30 259/391/30 284/393/30 -f 278/700/31 280/394/31 267/396/31 -f 256/390/32 257/389/32 258/398/32 -f 257/392/33 255/399/33 284/393/33 -f 272/415/34 273/401/34 274/403/34 -f 258/398/35 259/397/35 260/405/35 -f 276/424/36 277/406/36 278/407/36 -f 260/405/37 261/404/37 262/409/37 -f 262/409/38 263/408/38 264/411/38 -f 280/394/39 282/412/39 269/395/39 -f 270/428/40 271/414/40 272/415/40 -f 264/411/41 265/410/41 266/417/41 -f 278/700/42 267/396/42 276/419/42 -f 268/423/43 269/420/43 254/422/43 -f 266/417/44 267/416/44 268/423/44 -f 274/403/45 275/402/45 276/424/45 -f 280/387/46 281/386/46 282/426/46 -f 284/701/47 285/427/47 270/428/47 -f 261/435/48 259/391/48 272/430/48 -f 284/701/49 282/431/49 285/427/49 -f 263/434/50 274/433/50 265/418/50 -f 274/433/51 263/434/51 272/430/51 -f 287/445/1 289/436/1 286/438/1 -f 294/454/2 293/439/2 295/441/2 -f 290/702/3 292/442/3 301/444/3 -f 296/453/52 287/445/52 297/446/52 -f 297/446/5 295/447/5 290/449/5 -f 296/452/53 294/450/53 287/445/53 -f 291/703/7 293/451/7 296/452/7 -f 291/704/4 296/453/4 290/449/4 -f 289/436/54 294/454/54 288/437/54 -f 300/465/55 301/455/55 304/457/55 -f 293/705/3 291/458/3 298/460/3 -f 292/706/3 293/461/3 299/463/3 -f 291/707/3 290/464/3 300/465/3 -f 302/467/3 304/457/3 303/466/3 -f 299/463/56 298/462/56 303/466/56 -f 301/444/57 299/443/57 305/456/57 -f 298/460/58 300/459/58 302/467/58 -f 307/478/3 306/468/3 309/470/3 -f 314/485/2 315/471/2 313/473/2 -f 310/708/1 321/474/1 312/476/1 -f 316/484/59 317/477/59 307/478/59 -f 317/709/5 310/479/5 315/471/5 -f 316/481/60 307/478/60 314/480/60 -f 311/710/7 316/481/7 313/482/7 -f 311/711/4 310/483/4 316/484/4 -f 309/470/61 308/469/61 314/485/61 -f 320/495/62 324/486/62 321/488/62 -f 313/712/1 318/489/1 311/491/1 -f 312/713/1 319/492/1 313/494/1 -f 311/714/1 320/495/1 310/496/1 -f 322/498/1 323/497/1 324/486/1 -f 319/492/63 323/497/63 318/493/63 -f 321/474/64 325/487/64 319/475/64 -f 318/489/65 322/498/65 320/490/65 -f 333/518/3 332/499/3 327/501/3 -f 328/509/2 332/502/2 335/504/2 -f 328/515/1 329/505/1 330/507/1 -f 329/512/7 333/508/7 331/506/7 -f 332/502/5 328/509/5 326/500/5 -f 331/506/2 327/501/2 330/507/2 -f 335/504/5 337/503/5 339/511/5 -f 333/508/2 329/512/2 336/514/2 -f 329/505/2 328/515/2 334/517/2 -f 332/499/2 333/518/2 337/520/2 -f 409/715/10 421/521/10 408/523/10 -f 336/514/7 334/513/7 340/525/7 -f 337/520/3 336/519/3 341/527/3 -f 334/517/1 335/516/1 338/529/1 -f 349/549/3 348/530/3 343/532/3 -f 344/540/2 348/533/2 351/535/2 -f 344/546/1 345/536/1 346/538/1 -f 345/543/7 349/539/7 347/537/7 -f 348/533/5 344/540/5 342/531/5 -f 347/537/2 343/532/2 346/538/2 -f 351/535/5 353/534/5 355/542/5 -f 349/539/2 345/543/2 352/545/2 -f 345/536/2 344/546/2 350/548/2 -f 348/530/2 349/549/2 353/551/2 -f 411/716/10 423/552/10 410/554/10 -f 352/545/7 350/544/7 356/556/7 -f 353/551/3 352/550/3 357/558/3 -f 350/548/1 351/547/1 354/560/1 -f 365/582/3 359/561/3 364/563/3 -f 360/571/4 367/564/4 364/566/4 -f 360/579/1 362/567/1 361/569/1 -f 361/576/7 363/568/7 365/570/7 -f 364/566/5 358/562/5 360/571/5 -f 363/568/4 362/567/4 359/561/4 -f 367/564/5 371/572/5 369/565/5 -f 365/570/4 368/574/4 361/576/4 -f 361/569/4 366/577/4 360/579/4 -f 364/563/4 369/580/4 365/582/4 -f 370/586/2 372/583/2 371/585/2 -f 368/574/7 372/583/7 366/575/7 -f 369/580/3 373/587/3 368/581/3 -f 366/577/1 370/589/1 367/578/1 -f 381/612/3 375/591/3 380/593/3 -f 376/601/4 383/594/4 380/596/4 -f 376/609/1 378/597/1 377/599/1 -f 377/606/7 379/598/7 381/600/7 -f 380/596/5 374/592/5 376/601/5 -f 379/598/4 378/597/4 375/591/4 -f 383/594/5 387/602/5 385/595/5 -f 381/600/4 384/604/4 377/606/4 -f 377/599/4 382/607/4 376/609/4 -f 380/593/4 385/610/4 381/612/4 -f 413/717/10 425/613/10 412/615/10 -f 384/604/7 388/616/7 382/605/7 -f 385/610/3 389/618/3 384/611/3 -f 382/607/1 386/620/1 383/608/1 -f 415/718/66 414/634/66 421/521/66 -f 417/719/66 416/635/66 423/552/66 -f 419/720/66 418/636/66 425/613/66 -f 419/720/67 418/636/67 407/638/67 -f 417/719/67 416/635/67 405/640/67 -f 415/718/67 414/634/67 403/642/67 diff --git a/src/main/resources/assets/hbm/models/chemplant_main_new.obj b/src/main/resources/assets/hbm/models/chemplant_main_new.obj deleted file mode 100644 index 285894abe..000000000 --- a/src/main/resources/assets/hbm/models/chemplant_main_new.obj +++ /dev/null @@ -1,1733 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'chemplant_main_new.blend' -# www.blender.org -o Cube_Cube.001 -v -1.500000 0.000000 1.500000 -v -1.500000 0.250000 1.500000 -v -1.500000 0.000000 -1.500000 -v -1.500000 0.250000 -1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 0.250000 1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 0.250000 -1.500000 -v -1.250000 0.500000 1.250000 -v -1.250000 0.500000 -1.250000 -v 1.250000 0.500000 -1.250000 -v 1.250000 0.500000 1.250000 -v -1.250000 0.500000 0.000000 -v 0.000000 0.500000 -1.250000 -v 1.250000 0.500000 0.000000 -v 0.000000 0.500000 1.250000 -v 0.000000 0.500000 0.000000 -v 1.250000 0.750000 0.000000 -v 1.250000 0.750000 1.250000 -v 0.000000 0.750000 1.250000 -v 0.000000 0.750000 0.000000 -v 0.625000 0.750000 0.025000 -v 0.625000 2.750000 0.025000 -v 0.925000 0.750000 0.105385 -v 0.925000 2.750000 0.105385 -v 1.144615 0.750000 0.325000 -v 1.144615 2.750000 0.325000 -v 1.225000 0.750000 0.625000 -v 1.225000 2.750000 0.625000 -v 1.144615 0.750000 0.925000 -v 1.144615 2.750000 0.925000 -v 0.925000 0.750000 1.144615 -v 0.925000 2.750000 1.144615 -v 0.625000 0.750000 1.225000 -v 0.625000 2.750000 1.225000 -v 0.325000 0.750000 1.144615 -v 0.325000 2.750000 1.144615 -v 0.105385 0.750000 0.925000 -v 0.105385 2.750000 0.925000 -v 0.025000 0.750000 0.625000 -v 0.025000 2.750000 0.625000 -v 0.105385 0.750000 0.325000 -v 0.105385 2.750000 0.325000 -v 0.325000 0.750000 0.105385 -v 0.325000 2.750000 0.105385 -v 1.250000 0.750000 0.625000 -v 0.625000 0.750000 0.000000 -v 0.000000 0.750000 0.625000 -v 0.625000 0.750000 1.250000 -v 0.125000 0.500000 -1.125000 -v 1.125000 0.500000 -1.125000 -v 1.125000 0.500000 -0.125000 -v 0.125000 0.500000 -0.125000 -v -1.125000 0.500000 -0.125000 -v -1.125000 0.500000 -1.125000 -v -0.125000 0.500000 -1.125000 -v -0.125000 0.500000 -0.125000 -v 0.125000 0.650000 -1.125000 -v 1.125000 0.650000 -1.125000 -v 1.125000 0.650000 -0.125000 -v 0.125000 0.650000 -0.125000 -v 0.225000 0.650000 -1.025000 -v 1.025000 0.650000 -1.025000 -v 1.025000 0.650000 -0.225000 -v 0.225000 0.650000 -0.225000 -v -0.125000 0.650000 -0.125000 -v -0.125000 0.650000 -1.125000 -v -1.125000 0.650000 -1.125000 -v -1.125000 0.650000 -0.125000 -v 0.425000 2.000000 -0.425000 -v 0.825000 2.000000 -0.425000 -v 0.825000 2.000000 -0.825000 -v 0.425000 2.000000 -0.825000 -v 0.225000 1.850000 -1.025000 -v 1.025000 1.850000 -1.025000 -v 1.025000 1.850000 -0.225000 -v 0.225000 1.850000 -0.225000 -v 1.000000 2.750000 -0.024519 -v 0.625000 2.750000 -0.125000 -v 1.274519 2.750000 0.250000 -v 1.375000 2.750000 0.625000 -v 1.274519 2.750000 1.000000 -v 1.000000 2.750000 1.274519 -v 0.625000 2.750000 1.375000 -v 0.250000 2.750000 1.274519 -v -0.024519 2.750000 1.000000 -v -0.125000 2.750000 0.625000 -v -0.024519 2.750000 0.250000 -v 0.250000 2.750000 -0.024519 -v 1.000000 3.000000 -0.024519 -v 0.625000 3.000000 -0.125000 -v 1.274519 3.000000 0.250000 -v 1.375000 3.000000 0.625000 -v 1.274519 3.000000 1.000000 -v 1.000000 3.000000 1.274519 -v 0.625000 3.000000 1.375000 -v 0.250000 3.000000 1.274519 -v -0.024519 3.000000 1.000000 -v -0.125000 3.000000 0.625000 -v -0.024519 3.000000 0.250000 -v 0.250000 3.000000 -0.024519 -v -0.225000 0.650000 -1.025000 -v -0.225000 0.650000 -0.225000 -v -1.025000 0.650000 -0.225000 -v -1.025000 0.650000 -1.025000 -v -0.225000 1.850000 -1.025000 -v -0.225000 1.850000 -0.225000 -v -1.025000 1.850000 -0.225000 -v -1.025000 1.850000 -1.025000 -v -0.425000 2.000000 -0.825000 -v -0.425000 2.000000 -0.425000 -v -0.825000 2.000000 -0.425000 -v -0.825000 2.000000 -0.825000 -v -0.125000 0.500000 0.975000 -v -0.475000 0.500000 0.975000 -v -0.475000 0.500000 0.275000 -v -0.125000 0.500000 0.275000 -v -0.125000 1.250000 0.975000 -v -0.475000 1.250000 0.975000 -v -0.475000 1.250000 0.275000 -v -0.125000 1.250000 0.275000 -v -0.125000 1.500000 0.975000 -v -0.300000 1.500000 0.975000 -v -0.300000 1.500000 0.275000 -v -0.125000 1.500000 0.275000 -v -0.125000 1.500000 0.338636 -v -0.125000 1.500000 0.402273 -v -0.125000 1.500000 0.465909 -v -0.125000 1.500000 0.529545 -v -0.125000 1.500000 0.593182 -v -0.125000 1.500000 0.656818 -v -0.125000 1.500000 0.720455 -v -0.125000 1.500000 0.784091 -v -0.125000 1.500000 0.847727 -v -0.125000 1.500000 0.911364 -v -0.125000 1.650000 0.338636 -v -0.125000 1.650000 0.402273 -v -0.125000 1.650000 0.465909 -v -0.125000 1.650000 0.529545 -v -0.125000 1.650000 0.593182 -v -0.125000 1.650000 0.656818 -v -0.125000 1.650000 0.720455 -v -0.125000 1.650000 0.784091 -v -0.125000 1.650000 0.847727 -v -0.125000 1.650000 0.911364 -v -0.025000 1.750000 0.338636 -v -0.025000 1.750000 0.402273 -v -0.025000 1.750000 0.465909 -v -0.025000 1.750000 0.529545 -v -0.025000 1.750000 0.593182 -v -0.025000 1.750000 0.656818 -v -0.025000 1.750000 0.720455 -v -0.025000 1.750000 0.784091 -v -0.025000 1.750000 0.847727 -v -0.025000 1.750000 0.911364 -v 0.125000 1.750000 0.338636 -v 0.125000 1.750000 0.402273 -v 0.125000 1.750000 0.465909 -v 0.125000 1.750000 0.529545 -v 0.125000 1.750000 0.593182 -v 0.125000 1.750000 0.656818 -v 0.125000 1.750000 0.720455 -v 0.125000 1.750000 0.784091 -v 0.125000 1.750000 0.847727 -v 0.125000 1.750000 0.911364 -v 0.482143 2.771048 -0.425000 -v 0.539286 2.771048 -0.425000 -v 0.596429 2.771048 -0.425000 -v 0.653571 2.771048 -0.425000 -v 0.710714 2.771048 -0.425000 -v 0.767857 2.771048 -0.425000 -v 0.482143 2.000000 -0.425000 -v 0.539286 2.000000 -0.425000 -v 0.596429 2.000000 -0.425000 -v 0.653571 2.000000 -0.425000 -v 0.710714 2.000000 -0.425000 -v 0.767857 2.000000 -0.425000 -v 0.482143 2.871047 -0.075000 -v 0.539286 2.871047 -0.075000 -v 0.596429 2.871047 -0.075000 -v 0.653571 2.871047 -0.075000 -v 0.710714 2.871047 -0.075000 -v 0.767857 2.871047 -0.075000 -v 0.482143 2.871047 -0.325000 -v 0.539286 2.871047 -0.325000 -v 0.596429 2.871047 -0.325000 -v 0.653571 2.871047 -0.325000 -v 0.710714 2.871047 -0.325000 -v 0.767857 2.871047 -0.325000 -v -0.850000 1.200000 -0.250000 -v -0.850000 1.200000 0.350000 -v -0.814645 1.185355 -0.250000 -v -0.814645 1.185355 0.350000 -v -0.800000 1.150000 -0.250000 -v -0.800000 1.150000 0.350000 -v -0.814645 1.114645 -0.250000 -v -0.814645 1.114645 0.350000 -v -0.850000 1.100000 -0.250000 -v -0.850000 1.100000 0.350000 -v -0.885355 1.114645 -0.250000 -v -0.885355 1.114645 0.350000 -v -0.900000 1.150000 -0.250000 -v -0.900000 1.150000 0.350000 -v -0.885355 1.185355 -0.250000 -v -0.885355 1.185355 0.350000 -v -0.750000 1.150000 0.400000 -v -0.450000 1.150000 0.400000 -v -0.750000 1.114645 0.414645 -v -0.450000 1.114645 0.414645 -v -0.750000 1.100000 0.450000 -v -0.450000 1.100000 0.450000 -v -0.750000 1.114645 0.485355 -v -0.450000 1.114645 0.485355 -v -0.750000 1.150000 0.500000 -v -0.450000 1.150000 0.500000 -v -0.750000 1.185355 0.485355 -v -0.450000 1.185355 0.485355 -v -0.750000 1.200000 0.450000 -v -0.450000 1.200000 0.450000 -v -0.750000 1.185355 0.414645 -v -0.450000 1.185355 0.414645 -v -0.850000 1.000000 -0.250000 -v -0.850000 1.000000 0.350000 -v -0.814645 0.985355 -0.250000 -v -0.814645 0.985355 0.350000 -v -0.800000 0.950000 -0.250000 -v -0.800000 0.950000 0.350000 -v -0.814645 0.914645 -0.250000 -v -0.814645 0.914645 0.350000 -v -0.850000 0.900000 -0.250000 -v -0.850000 0.900000 0.350000 -v -0.885355 0.914645 -0.250000 -v -0.885355 0.914645 0.350000 -v -0.900000 0.950000 -0.250000 -v -0.900000 0.950000 0.350000 -v -0.885355 0.985355 -0.250000 -v -0.885355 0.985355 0.350000 -v -0.750000 0.950000 0.400000 -v -0.450000 0.950000 0.400000 -v -0.750000 0.914645 0.414645 -v -0.450000 0.914645 0.414645 -v -0.750000 0.900000 0.450000 -v -0.450000 0.900000 0.450000 -v -0.750000 0.914645 0.485355 -v -0.450000 0.914645 0.485355 -v -0.750000 0.950000 0.500000 -v -0.450000 0.950000 0.500000 -v -0.750000 0.985355 0.485355 -v -0.450000 0.985355 0.485355 -v -0.750000 1.000000 0.450000 -v -0.450000 1.000000 0.450000 -v -0.750000 0.985355 0.414645 -v -0.450000 0.985355 0.414645 -v -0.850000 0.800000 -0.250000 -v -0.850000 0.800000 0.350000 -v -0.814645 0.785355 -0.250000 -v -0.814645 0.785355 0.350000 -v -0.800000 0.750000 -0.250000 -v -0.800000 0.750000 0.350000 -v -0.814645 0.714645 -0.250000 -v -0.814645 0.714645 0.350000 -v -0.850000 0.700000 -0.250000 -v -0.850000 0.700000 0.350000 -v -0.885355 0.714645 -0.250000 -v -0.885355 0.714645 0.350000 -v -0.900000 0.750000 -0.250000 -v -0.900000 0.750000 0.350000 -v -0.885355 0.785355 -0.250000 -v -0.885355 0.785355 0.350000 -v -0.750000 0.750000 0.400000 -v -0.450000 0.750000 0.400000 -v -0.750000 0.714645 0.414645 -v -0.450000 0.714645 0.414645 -v -0.750000 0.700000 0.450000 -v -0.450000 0.700000 0.450000 -v -0.750000 0.714645 0.485355 -v -0.450000 0.714645 0.485355 -v -0.750000 0.750000 0.500000 -v -0.450000 0.750000 0.500000 -v -0.750000 0.785355 0.485355 -v -0.450000 0.785355 0.485355 -v -0.750000 0.800000 0.450000 -v -0.450000 0.800000 0.450000 -v -0.750000 0.785355 0.414645 -v -0.450000 0.785355 0.414645 -v 1.000000 0.250000 -0.250000 -v 1.000000 0.750000 -0.250000 -v 1.000000 0.250000 -0.750000 -v 1.000000 0.750000 -0.750000 -v 2.000000 0.000000 0.000000 -v 2.000000 1.000000 0.000000 -v 2.000000 0.000000 -1.000000 -v 2.000000 1.000000 -1.000000 -v 1.500000 1.000000 -1.000000 -v 1.500000 0.000000 -1.000000 -v 1.500000 1.000000 0.000000 -v 1.500000 0.000000 0.000000 -v 2.000000 0.875000 -0.875000 -v 2.000000 0.125000 -0.875000 -v 2.000000 0.875000 -0.125000 -v 2.000000 0.125000 -0.125000 -v 1.500000 0.687500 -0.687500 -v 1.500000 0.312500 -0.687500 -v 1.500000 0.687500 -0.312500 -v 1.500000 0.312500 -0.312500 -v -1.000000 0.250000 0.750000 -v -1.000000 0.750000 0.750000 -v -1.000000 0.250000 0.250000 -v -1.000000 0.750000 0.250000 -v -2.000000 0.000000 1.000000 -v -2.000000 1.000000 1.000000 -v -2.000000 0.000000 0.000000 -v -2.000000 1.000000 0.000000 -v -1.500000 1.000000 0.000000 -v -1.500000 0.000000 0.000000 -v -1.500000 1.000000 1.000000 -v -1.500000 0.000000 1.000000 -v -2.000000 0.875000 0.125000 -v -2.000000 0.125000 0.125000 -v -2.000000 0.875000 0.875000 -v -2.000000 0.125000 0.875000 -v -1.500000 0.687500 0.312500 -v -1.500000 0.312500 0.312500 -v -1.500000 0.687500 0.687500 -v -1.500000 0.312500 0.687500 -v 0.656250 0.343750 -2.000000 -v 0.656250 0.656250 -2.000000 -v 0.343750 0.343750 -1.150000 -v 0.343750 0.656250 -1.150000 -v 0.343750 0.343750 -2.000000 -v 0.343750 0.656250 -2.000000 -v 0.656250 0.343750 -1.150000 -v 0.656250 0.656250 -1.150000 -v 0.328125 0.671875 -1.150000 -v 0.328125 0.328125 -1.150000 -v 0.671875 0.671875 -1.150000 -v 0.671875 0.328125 -1.150000 -v 0.328125 0.671875 -1.000000 -v 0.328125 0.328125 -1.000000 -v 0.671875 0.671875 -1.000000 -v 0.671875 0.328125 -1.000000 -v -0.343750 0.343750 -2.000000 -v -0.343750 0.656250 -2.000000 -v -0.656250 0.343750 -1.150000 -v -0.656250 0.656250 -1.150000 -v -0.656250 0.343750 -2.000000 -v -0.656250 0.656250 -2.000000 -v -0.343750 0.343750 -1.150000 -v -0.343750 0.656250 -1.150000 -v -0.671875 0.671875 -1.150000 -v -0.671875 0.328125 -1.150000 -v -0.328125 0.671875 -1.150000 -v -0.328125 0.328125 -1.150000 -v -0.671875 0.671875 -1.000000 -v -0.671875 0.328125 -1.000000 -v -0.328125 0.671875 -1.000000 -v -0.328125 0.328125 -1.000000 -v -0.343750 0.343750 2.000000 -v -0.343750 0.656250 2.000000 -v -0.656250 0.343750 1.150000 -v -0.656250 0.656250 1.150000 -v -0.656250 0.343750 2.000000 -v -0.656250 0.656250 2.000000 -v -0.343750 0.343750 1.150000 -v -0.343750 0.656250 1.150000 -v -0.671875 0.671875 1.150000 -v -0.671875 0.328125 1.150000 -v -0.328125 0.671875 1.150000 -v -0.328125 0.328125 1.150000 -v -0.671875 0.671875 1.000000 -v -0.671875 0.328125 1.000000 -v -0.328125 0.671875 1.000000 -v -0.328125 0.328125 1.000000 -v 0.656250 0.343750 2.000000 -v 0.656250 0.656250 2.000000 -v 0.343750 0.343750 1.150000 -v 0.343750 0.656250 1.150000 -v 0.343750 0.343750 2.000000 -v 0.343750 0.656250 2.000000 -v 0.656250 0.343750 1.150000 -v 0.656250 0.656250 1.150000 -v 0.328125 0.671875 1.150000 -v 0.328125 0.328125 1.150000 -v 0.671875 0.671875 1.150000 -v 0.671875 0.328125 1.150000 -v 0.328125 0.671875 1.000000 -v 0.328125 0.328125 1.000000 -v 0.671875 0.671875 1.000000 -v 0.671875 0.328125 1.000000 -v 1.916667 0.250000 -1.100000 -v 1.916667 0.750000 -1.100000 -v 1.666667 0.500000 -1.100000 -v 1.916667 0.250000 0.100000 -v 1.916667 0.750000 0.100000 -v 1.666667 0.500000 0.100000 -v -1.583333 0.250000 -0.100000 -v -1.583333 0.750000 -0.100000 -v -1.833333 0.500000 -0.100000 -v -1.583333 0.250000 1.100000 -v -1.583333 0.750000 1.100000 -v -1.833333 0.500000 1.100000 -v 0.425000 2.000000 -0.767857 -v 0.425000 2.000000 -0.710714 -v 0.425000 2.000000 -0.653571 -v 0.425000 2.000000 -0.596429 -v 0.425000 2.000000 -0.539286 -v 0.425000 2.000000 -0.482143 -v -0.425000 2.000000 -0.767857 -v -0.425000 2.000000 -0.710714 -v -0.425000 2.000000 -0.653571 -v -0.425000 2.000000 -0.596429 -v -0.425000 2.000000 -0.539286 -v -0.425000 2.000000 -0.482143 -v 0.325000 2.121195 -0.749805 -v 0.325000 2.121195 -0.692662 -v 0.325000 2.121195 -0.635520 -v 0.325000 2.121195 -0.578377 -v 0.325000 2.121195 -0.521234 -v 0.325000 2.121195 -0.464091 -v -0.325000 2.100000 -0.767857 -v -0.325000 2.100000 -0.710714 -v -0.325000 2.100000 -0.653571 -v -0.325000 2.100000 -0.596429 -v -0.325000 2.100000 -0.539286 -v -0.325000 2.100000 -0.482143 -vt 0.758477 0.603324 -vt 0.758477 0.583793 -vt 0.996758 0.583793 -vt 0.760430 0.603324 -vt 0.760430 0.583793 -vt 0.994805 0.583793 -vt 0.759772 0.603163 -vt 0.759772 0.583522 -vt 0.995463 0.583522 -vt 0.006459 0.317921 -vt 0.242151 0.317921 -vt 0.242151 0.553613 -vt 0.994805 0.603324 -vt 0.877617 0.630668 -vt 0.006459 0.762941 -vt 0.016280 0.753121 -vt 0.094844 0.753121 -vt 0.995463 0.603163 -vt 0.877618 0.630939 -vt 0.996758 0.603324 -vt 0.875664 0.630668 -vt 0.104664 0.566532 -vt 0.094844 0.588137 -vt 0.067346 0.588137 -vt 0.960569 0.162535 -vt 0.940928 0.113433 -vt 0.960569 0.064331 -vt 0.104664 0.762941 -vt 0.114485 0.753121 -vt 0.193049 0.753121 -vt 0.823082 0.064331 -vt 0.842723 0.113433 -vt 0.823082 0.162535 -vt 0.940928 0.044690 -vt 0.891826 0.064331 -vt 0.842723 0.044690 -vt 0.842723 0.182176 -vt 0.891826 0.162535 -vt 0.940928 0.182176 -vt 0.946278 0.936992 -vt 0.921877 0.936992 -vt 0.921877 0.779864 -vt 0.897476 0.936992 -vt 0.897476 0.779864 -vt 0.873076 0.936992 -vt 0.873076 0.779864 -vt 0.848675 0.936992 -vt 0.848675 0.779864 -vt 0.824275 0.936992 -vt 0.824274 0.779864 -vt 0.799874 0.936992 -vt 0.799874 0.779864 -vt 0.775473 0.936992 -vt 0.775473 0.779864 -vt 0.751073 0.936992 -vt 0.751073 0.779864 -vt 0.726672 0.936992 -vt 0.726672 0.779864 -vt 0.702272 0.936992 -vt 0.702272 0.779864 -vt 0.331580 0.524720 -vt 0.337472 0.514514 -vt 0.359040 0.536081 -vt 0.677871 0.936992 -vt 0.653470 0.936992 -vt 0.653470 0.779864 -vt 0.677871 0.779864 -vt 0.842723 0.162535 -vt 0.868256 0.154256 -vt 0.891826 0.160571 -vt 0.915395 0.154256 -vt 0.932649 0.137002 -vt 0.940928 0.162535 -vt 0.932648 0.089864 -vt 0.940928 0.064331 -vt 0.915395 0.072610 -vt 0.868256 0.072610 -vt 0.842723 0.064331 -vt 0.851003 0.137002 -vt 0.844687 0.113433 -vt 0.851003 0.089864 -vt 0.117682 0.307042 -vt 0.117682 0.295258 -vt 0.196246 0.295258 -vt 0.202869 0.762941 -vt 0.193049 0.674557 -vt 0.104664 0.664736 -vt 0.114485 0.674557 -vt 0.202869 0.664736 -vt 0.094844 0.674557 -vt 0.016280 0.674557 -vt 0.006459 0.664736 -vt 0.294451 0.197053 -vt 0.286595 0.189197 -vt 0.286595 0.126345 -vt 0.196246 0.008500 -vt 0.196246 0.020284 -vt 0.117682 0.020284 -vt 0.306236 0.197053 -vt 0.294451 0.118489 -vt 0.007693 0.118489 -vt 0.019478 0.118489 -vt 0.019478 0.197053 -vt 0.125539 0.287401 -vt 0.125539 0.193125 -vt 0.188390 0.193125 -vt 0.027334 0.126345 -vt 0.027334 0.189196 -vt 0.188390 0.287401 -vt 0.188390 0.028141 -vt 0.125539 0.028141 -vt 0.121611 0.126345 -vt 0.141252 0.142058 -vt 0.141252 0.173484 -vt 0.192318 0.189196 -vt 0.172677 0.173484 -vt 0.172677 0.142058 -vt 0.188390 0.122417 -vt 0.125539 0.122417 -vt 0.192318 0.126345 -vt 0.121611 0.189197 -vt 0.436934 0.401164 -vt 0.431851 0.420136 -vt 0.402389 0.412242 -vt 0.314289 0.482140 -vt 0.324495 0.476248 -vt 0.332389 0.505709 -vt 0.320604 0.436619 -vt 0.332389 0.436620 -vt 0.324495 0.466081 -vt 0.348834 0.400355 -vt 0.359040 0.406247 -vt 0.337472 0.427815 -vt 0.391414 0.383064 -vt 0.397306 0.393270 -vt 0.367844 0.401164 -vt 0.436934 0.389380 -vt 0.407473 0.393270 -vt 0.455945 0.541974 -vt 0.445739 0.536081 -vt 0.467306 0.514514 -vt 0.484174 0.505710 -vt 0.472390 0.505709 -vt 0.480284 0.476248 -vt 0.473199 0.417609 -vt 0.467306 0.427815 -vt 0.445739 0.406247 -vt 0.436934 0.552950 -vt 0.413365 0.559265 -vt 0.407473 0.549059 -vt 0.490490 0.460189 -vt 0.480284 0.466081 -vt 0.472390 0.436620 -vt 0.367844 0.552950 -vt 0.367844 0.541165 -vt 0.397306 0.549059 -vt 0.351361 0.500626 -vt 0.351361 0.441703 -vt 0.453418 0.441703 -vt 0.402389 0.530087 -vt 0.431851 0.522193 -vt 0.453418 0.500626 -vt 0.461312 0.471164 -vt 0.343466 0.471164 -vt 0.372928 0.420136 -vt 0.372928 0.522193 -vt 0.772654 0.139975 -vt 0.713797 0.139968 -vt 0.713803 0.085034 -vt 0.094844 0.643131 -vt 0.067346 0.643131 -vt 0.006459 0.566532 -vt 0.694377 0.159597 -vt 0.666844 0.159844 -vt 0.680434 0.140054 -vt 0.597494 0.085032 -vt 0.656447 0.085032 -vt 0.656447 0.140054 -vt 0.667374 0.218844 -vt 0.694185 0.006460 -vt 0.694184 0.065389 -vt 0.666684 0.065389 -vt 0.694193 0.115020 -vt 0.694197 0.120017 -vt 0.694184 0.085032 -vt 0.680434 0.085032 -vt 0.597494 0.297099 -vt 0.597494 0.292100 -vt 0.609279 0.292100 -vt 0.620390 0.292100 -vt 0.620390 0.297099 -vt 0.609279 0.297099 -vt 0.645093 0.297099 -vt 0.645093 0.292100 -vt 0.656878 0.292100 -vt 0.233196 0.730162 -vt 0.233196 0.718377 -vt 0.238196 0.718377 -vt 0.188875 0.787645 -vt 0.188875 0.775860 -vt 0.193875 0.775860 -vt 0.233196 0.682563 -vt 0.233196 0.670778 -vt 0.238196 0.670778 -vt 0.238196 0.693674 -vt 0.233196 0.693673 -vt 0.193875 0.798755 -vt 0.188875 0.798755 -vt 0.238196 0.741272 -vt 0.233196 0.741272 -vt 0.667988 0.292100 -vt 0.667988 0.297099 -vt 0.656878 0.297099 -vt 0.632174 0.292100 -vt 0.632174 0.297099 -vt 0.679773 0.292100 -vt 0.679773 0.297099 -vt 0.238196 0.753057 -vt 0.233196 0.753057 -vt 0.193875 0.810540 -vt 0.188875 0.810540 -vt 0.238196 0.705458 -vt 0.233196 0.705458 -vt 0.220277 0.762106 -vt 0.215788 0.762106 -vt 0.215788 0.742465 -vt 0.237686 0.657860 -vt 0.233196 0.657860 -vt 0.233196 0.638219 -vt 0.220277 0.657860 -vt 0.215788 0.657860 -vt 0.215788 0.638219 -vt 0.215788 0.627108 -vt 0.215788 0.566532 -vt 0.220277 0.566532 -vt 0.233196 0.627108 -vt 0.233196 0.566532 -vt 0.237686 0.566532 -vt 0.215788 0.731355 -vt 0.215788 0.670778 -vt 0.220277 0.670778 -vt 0.220277 0.742465 -vt 0.237686 0.638219 -vt 0.220277 0.638219 -vt 0.814270 0.481676 -vt 0.814270 0.484682 -vt 0.790701 0.484682 -vt 0.364364 0.643439 -vt 0.364364 0.640432 -vt 0.411502 0.640432 -vt 0.231300 0.817551 -vt 0.234194 0.816738 -vt 0.234194 0.823920 -vt 0.218064 0.827849 -vt 0.218064 0.812810 -vt 0.220959 0.811996 -vt 0.364364 0.637425 -vt 0.411502 0.637426 -vt 0.236470 0.814774 -vt 0.236470 0.825884 -vt 0.814270 0.472656 -vt 0.814270 0.475663 -vt 0.790701 0.475663 -vt 0.364364 0.634419 -vt 0.411502 0.634419 -vt 0.814270 0.478669 -vt 0.790701 0.481676 -vt 0.364364 0.631412 -vt 0.411502 0.631412 -vt 0.364364 0.628406 -vt 0.411502 0.628406 -vt 0.215788 0.825884 -vt 0.215788 0.814774 -vt 0.814270 0.469650 -vt 0.790701 0.472656 -vt 0.364364 0.625399 -vt 0.411502 0.625399 -vt 0.223853 0.812810 -vt 0.223853 0.827849 -vt 0.220959 0.828662 -vt 0.364364 0.622393 -vt 0.364364 0.619386 -vt 0.411502 0.619386 -vt 0.411502 0.622393 -vt 0.790701 0.478669 -vt 0.814270 0.487689 -vt 0.790701 0.487689 -vt 0.814270 0.466643 -vt 0.790701 0.469650 -vt 0.231300 0.823107 -vt 0.228405 0.823920 -vt 0.814270 0.463637 -vt 0.790701 0.466643 -vt 0.226129 0.814774 -vt 0.228405 0.816738 -vt 0.226129 0.825884 -vt 0.175956 0.793899 -vt 0.175956 0.796906 -vt 0.152387 0.796906 -vt 0.364364 0.680409 -vt 0.364364 0.677403 -vt 0.411502 0.677403 -vt 0.435532 0.739300 -vt 0.436346 0.742194 -vt 0.429163 0.742194 -vt 0.425235 0.726064 -vt 0.440274 0.726064 -vt 0.441087 0.728959 -vt 0.364364 0.674396 -vt 0.411502 0.674396 -vt 0.438310 0.744470 -vt 0.427199 0.744470 -vt 0.175956 0.784880 -vt 0.175956 0.787886 -vt 0.152387 0.787886 -vt 0.364364 0.671390 -vt 0.411502 0.671390 -vt 0.175956 0.790893 -vt 0.152387 0.793899 -vt 0.364364 0.668383 -vt 0.411502 0.668383 -vt 0.364364 0.665377 -vt 0.411502 0.665377 -vt 0.427199 0.723788 -vt 0.438310 0.723788 -vt 0.175956 0.781873 -vt 0.152387 0.784880 -vt 0.364364 0.662370 -vt 0.411502 0.662370 -vt 0.440274 0.731853 -vt 0.425235 0.731853 -vt 0.424421 0.728959 -vt 0.364364 0.659364 -vt 0.364364 0.656357 -vt 0.411502 0.656357 -vt 0.411502 0.659364 -vt 0.152387 0.790893 -vt 0.175956 0.799912 -vt 0.152387 0.799912 -vt 0.175956 0.778867 -vt 0.152387 0.781873 -vt 0.429977 0.739300 -vt 0.429163 0.736406 -vt 0.175956 0.775860 -vt 0.152387 0.778867 -vt 0.427199 0.734129 -vt 0.436346 0.736406 -vt 0.239357 0.793064 -vt 0.239357 0.796071 -vt 0.215788 0.796071 -vt 0.364364 0.717381 -vt 0.364364 0.714374 -vt 0.411502 0.714374 -vt 0.806212 0.506163 -vt 0.809107 0.505349 -vt 0.809107 0.512532 -vt 0.792977 0.516460 -vt 0.792977 0.501421 -vt 0.795871 0.500608 -vt 0.364364 0.711367 -vt 0.411502 0.711367 -vt 0.811383 0.503385 -vt 0.811383 0.514496 -vt 0.239357 0.784045 -vt 0.239357 0.787051 -vt 0.215788 0.787051 -vt 0.364364 0.708361 -vt 0.411502 0.708361 -vt 0.239357 0.790058 -vt 0.215788 0.793064 -vt 0.364364 0.705355 -vt 0.411502 0.705355 -vt 0.364364 0.702348 -vt 0.411502 0.702348 -vt 0.790701 0.514496 -vt 0.790701 0.503385 -vt 0.239357 0.781038 -vt 0.215788 0.784045 -vt 0.364364 0.699341 -vt 0.411502 0.699341 -vt 0.798766 0.501421 -vt 0.798766 0.516460 -vt 0.364364 0.696335 -vt 0.364364 0.693328 -vt 0.411502 0.693328 -vt 0.411502 0.696335 -vt 0.215788 0.790058 -vt 0.239357 0.799077 -vt 0.215788 0.799077 -vt 0.239357 0.778032 -vt 0.215788 0.781038 -vt 0.806212 0.511718 -vt 0.803318 0.512532 -vt 0.215788 0.775025 -vt 0.239357 0.775025 -vt 0.801042 0.514496 -vt 0.801042 0.503385 -vt 0.803318 0.505349 -vt 0.479643 0.114270 -vt 0.479643 0.153552 -vt 0.440361 0.153552 -vt 0.562843 0.094629 -vt 0.562843 0.173193 -vt 0.523561 0.173193 -vt 0.141735 0.828410 -vt 0.131915 0.838230 -vt 0.072992 0.838230 -vt 0.440361 0.114270 -vt 0.396442 0.173193 -vt 0.396442 0.251756 -vt 0.357160 0.251756 -vt 0.357160 0.173193 -vt 0.499284 0.070351 -vt 0.499284 0.031069 -vt 0.420720 0.070351 -vt 0.396442 0.094629 -vt 0.523561 0.094629 -vt 0.045769 0.865453 -vt 0.087722 0.880183 -vt 0.087722 0.909645 -vt 0.063171 0.961418 -vt 0.072992 0.951598 -vt 0.131915 0.951598 -vt 0.168958 0.934196 -vt 0.159137 0.924375 -vt 0.159137 0.865453 -vt 0.035949 0.855632 -vt 0.045769 0.924375 -vt 0.117184 0.880183 -vt 0.117184 0.909645 -vt 0.357160 0.094629 -vt 0.141735 0.961418 -vt 0.420720 0.031069 -vt 0.063171 0.828410 -vt 0.168958 0.855632 -vt 0.035949 0.934196 -vt 0.713342 0.434861 -vt 0.646563 0.434861 -vt 0.646563 0.410310 -vt 0.646563 0.501640 -vt 0.647790 0.502868 -vt 0.620784 0.502868 -vt 0.555232 0.410310 -vt 0.622011 0.410310 -vt 0.622011 0.434861 -vt 0.646563 0.343531 -vt 0.622011 0.501640 -vt 0.647790 0.514653 -vt 0.620784 0.514653 -vt 0.622011 0.343531 -vt 0.620784 0.342303 -vt 0.647790 0.342303 -vt 0.555232 0.434861 -vt 0.554004 0.436089 -vt 0.554004 0.409082 -vt 0.713342 0.410310 -vt 0.714569 0.409082 -vt 0.714569 0.436089 -vt 0.416499 0.290522 -vt 0.416499 0.286033 -vt 0.405388 0.286033 -vt 0.620784 0.330518 -vt 0.647790 0.330519 -vt 0.726354 0.409082 -vt 0.726354 0.436089 -vt 0.542220 0.436089 -vt 0.542220 0.409082 -vt 0.503967 0.290522 -vt 0.503967 0.286033 -vt 0.492856 0.286033 -vt 0.631811 0.650917 -vt 0.631811 0.675468 -vt 0.565032 0.675468 -vt 0.657590 0.743475 -vt 0.630584 0.743475 -vt 0.631811 0.742247 -vt 0.656363 0.675468 -vt 0.656363 0.650917 -vt 0.723142 0.650917 -vt 0.631811 0.584137 -vt 0.656363 0.742247 -vt 0.657590 0.755259 -vt 0.630584 0.755259 -vt 0.630584 0.582910 -vt 0.657590 0.582910 -vt 0.656363 0.584137 -vt 0.724369 0.649689 -vt 0.724369 0.676695 -vt 0.723142 0.675468 -vt 0.563805 0.676696 -vt 0.563805 0.649689 -vt 0.565032 0.650917 -vt 0.630584 0.571125 -vt 0.630584 0.544119 -vt 0.657590 0.544119 -vt 0.657590 0.571125 -vt 0.552020 0.676696 -vt 0.552020 0.649689 -vt 0.736154 0.649689 -vt 0.736154 0.676695 -vt 0.329032 0.290522 -vt 0.329032 0.286033 -vt 0.317921 0.286033 -vt 0.776804 0.281183 -vt 0.776804 0.241901 -vt 0.796445 0.261542 -vt 0.777782 0.502919 -vt 0.758141 0.483278 -vt 0.777782 0.463637 -vt 0.424421 0.658668 -vt 0.424421 0.619386 -vt 0.444062 0.639027 -vt 0.444062 0.710869 -vt 0.424421 0.691228 -vt 0.444062 0.671587 -vt 0.467593 0.287451 -vt 0.555060 0.287451 -vt 0.380125 0.287451 -vt 0.392470 0.286033 -vt 0.392470 0.290522 -vt 0.567405 0.286033 -vt 0.567405 0.290522 -vt 0.479937 0.286033 -vt 0.479937 0.290522 -vt 0.006459 0.553613 -vt 0.779961 0.630668 -vt 0.975274 0.630668 -vt 0.779412 0.630939 -vt 0.975822 0.630939 -vt 0.778008 0.630668 -vt 0.977227 0.630668 -vt 0.946277 0.779864 -vt 0.348834 0.541974 -vt 0.938964 0.113433 -vt 0.891826 0.066295 -vt 0.196246 0.307042 -vt 0.117682 0.008500 -vt 0.306236 0.118489 -vt 0.007693 0.197053 -vt 0.320604 0.505709 -vt 0.314289 0.460189 -vt 0.331580 0.417609 -vt 0.367844 0.389379 -vt 0.413365 0.383064 -vt 0.473199 0.524720 -vt 0.490490 0.482140 -vt 0.455945 0.400355 -vt 0.436934 0.541165 -vt 0.484174 0.436620 -vt 0.391414 0.559265 -vt 0.772661 0.085041 -vt 0.694200 0.139930 -vt 0.597494 0.140054 -vt 0.694907 0.218597 -vt 0.666684 0.006459 -vt 0.694184 0.090030 -vt 0.694185 0.095029 -vt 0.694186 0.100027 -vt 0.694188 0.105025 -vt 0.694190 0.110023 -vt 0.694202 0.125013 -vt 0.694078 0.130204 -vt 0.694150 0.133627 -vt 0.238196 0.730162 -vt 0.193875 0.787645 -vt 0.238196 0.682563 -vt 0.220277 0.627108 -vt 0.237686 0.627108 -vt 0.220277 0.731355 -vt 0.411502 0.643439 -vt 0.790701 0.463637 -vt 0.411502 0.680409 -vt 0.152387 0.775860 -vt 0.438310 0.734129 -vt 0.411502 0.717381 -vt 0.795871 0.517274 -vt 0.215788 0.778032 -vt 0.405388 0.290522 -vt 0.492856 0.290522 -vt 0.317921 0.290522 -vt 0.467593 0.291941 -vt 0.555060 0.291941 -vt 0.380125 0.291941 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.707100 0.707100 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.707100 -0.707100 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.600000 0.800000 0.000000 -vn -0.600000 0.800000 0.000000 -vn 0.000000 0.800000 -0.600000 -vn 0.000000 0.800000 0.600000 -vn -0.819200 0.573500 0.000000 -vn 0.000000 0.382700 0.923900 -vn 0.382700 0.923900 0.000000 -vn 0.678600 0.281100 -0.678600 -vn -0.678600 0.281100 0.678600 -vn 0.923900 0.382700 0.000000 -vn 0.357400 0.862900 -0.357400 -vn 0.000000 -0.923900 -0.382700 -vn 0.923900 -0.382700 0.000000 -vn 0.000000 -0.382700 0.923900 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.357400 0.862900 0.357400 -vn 0.000000 -0.382700 -0.923900 -vn -0.923900 -0.382700 0.000000 -vn -0.678600 -0.281100 0.678600 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 0.000000 -vn 0.000000 -0.923900 0.382700 -vn -0.000000 0.923900 0.382700 -vn 0.000000 0.382700 -0.923900 -vn 0.678600 -0.281100 -0.678600 -vn 0.000000 0.923900 -0.382700 -vn -0.357400 -0.862900 0.357400 -vn 0.357400 -0.862900 -0.357400 -vn -0.447200 0.000000 0.894400 -vn -0.447200 0.894400 0.000000 -vn -0.447200 0.000000 -0.894400 -vn 0.351100 0.000000 -0.936300 -vn 0.351100 0.000000 0.936300 -vn 0.351100 0.936300 0.000000 -vn 0.351100 -0.936300 0.000000 -vn 0.447200 0.000000 0.894400 -vn 0.447200 0.894400 0.000000 -vn 0.447200 0.000000 -0.894400 -vn -0.351100 0.000000 -0.936300 -vn -0.351100 0.000000 0.936300 -vn -0.351100 0.936300 0.000000 -vn -0.351100 -0.936300 0.000000 -vn -0.032600 0.999500 0.000000 -vn -0.771300 -0.636400 0.000000 -s off -f 4/1/1 3/2/1 1/3/1 -f 8/4/2 7/5/2 3/6/2 -f 6/7/3 5/8/3 7/9/3 -f 2/4/4 1/5/4 5/6/4 -f 3/10/5 7/11/5 5/12/5 -f 6/13/6 16/14/6 2/4/6 -f 10/15/7 55/16/7 56/17/7 -f 4/13/8 14/14/8 8/4/8 -f 8/18/9 15/19/9 6/7/9 -f 2/20/10 13/21/10 4/1/10 -f 16/22/7 114/23/7 115/24/7 -f 16/25/1 48/26/1 17/27/1 -f 14/28/7 50/29/7 51/30/7 -f 15/31/3 46/32/3 12/33/3 -f 17/34/2 47/35/2 15/36/2 -f 12/37/4 49/38/4 16/39/4 -f 23/40/11 25/41/11 24/42/11 -f 25/41/12 27/43/12 26/44/12 -f 27/43/13 29/45/13 28/46/13 -f 29/45/14 31/47/14 30/48/14 -f 31/47/15 33/49/15 32/50/15 -f 33/49/16 35/51/16 34/52/16 -f 35/51/17 37/53/17 36/54/17 -f 37/53/18 39/55/18 38/56/18 -f 39/55/19 41/57/19 40/58/19 -f 41/57/20 43/59/20 42/60/20 -f 39/61/5 86/62/5 87/63/5 -f 45/64/21 23/65/21 22/66/21 -f 43/59/22 45/64/22 44/67/22 -f 49/38/7 19/68/7 32/69/7 -f 49/38/7 34/70/7 36/71/7 -f 36/71/7 38/72/7 20/73/7 -f 48/26/7 20/73/7 38/72/7 -f 42/74/7 21/75/7 48/26/7 -f 44/76/7 21/75/7 42/74/7 -f 47/35/7 21/75/7 44/76/7 -f 24/77/7 18/78/7 47/35/7 -f 32/69/7 19/68/7 30/79/7 -f 46/32/7 28/80/7 30/79/7 -f 46/32/7 18/78/7 26/81/7 -f 26/81/7 18/78/7 24/77/7 -f 52/82/4 60/83/4 61/84/4 -f 11/85/7 51/30/7 52/86/7 -f 17/87/7 53/88/7 50/29/7 -f 15/89/7 52/86/7 53/88/7 -f 57/82/4 66/83/4 69/84/4 -f 17/87/7 57/90/7 54/91/7 -f 14/28/7 56/17/7 57/90/7 -f 13/92/7 54/91/7 55/16/7 -f 61/93/7 65/94/7 62/95/7 -f 50/96/2 58/97/2 59/98/2 -f 53/99/1 61/93/1 58/100/1 -f 51/101/3 59/102/3 60/103/3 -f 64/104/4 76/105/4 77/106/4 -f 59/102/7 63/107/7 64/108/7 -f 60/83/7 64/104/7 65/109/7 -f 58/97/7 62/110/7 63/111/7 -f 55/96/2 68/97/2 67/98/2 -f 56/101/3 67/102/3 66/103/3 -f 54/99/1 69/93/1 68/100/1 -f 69/93/7 104/94/7 105/95/7 -f 75/112/23 72/113/23 71/114/23 -f 77/115/24 70/116/24 73/117/24 -f 62/110/2 74/118/2 75/119/2 -f 65/94/1 77/115/1 74/120/1 -f 63/107/3 75/112/3 76/121/3 -f 74/118/25 73/117/25 72/113/25 -f 110/113/23 111/114/23 107/121/23 -f 77/106/26 76/105/26 71/114/26 -f 81/122/14 93/123/14 94/124/14 -f 37/125/5 85/126/5 86/127/5 -f 35/128/5 84/129/5 85/130/5 -f 33/131/5 83/132/5 84/133/5 -f 31/134/5 82/135/5 83/136/5 -f 29/137/5 81/122/5 82/138/5 -f 45/139/5 89/140/5 79/141/5 -f 23/142/5 79/143/5 78/144/5 -f 27/145/5 80/146/5 81/147/5 -f 45/148/5 43/149/5 88/150/5 -f 25/151/5 78/152/5 80/153/5 -f 41/154/5 87/155/5 88/156/5 -f 98/157/7 96/158/7 92/159/7 -f 88/150/22 100/160/22 101/161/22 -f 79/143/11 91/162/11 90/163/11 -f 85/126/18 97/164/18 98/157/18 -f 82/135/15 94/124/15 95/165/15 -f 89/140/21 101/161/21 91/162/21 -f 78/152/12 90/163/12 92/159/12 -f 86/62/19 98/157/19 99/166/19 -f 83/132/16 95/165/16 96/158/16 -f 80/146/13 92/159/13 93/123/13 -f 87/155/20 99/166/20 100/160/20 -f 84/129/17 96/158/17 97/164/17 -f 104/94/1 108/115/1 109/120/1 -f 66/83/7 103/104/7 104/109/7 -f 68/97/7 105/110/7 102/111/7 -f 67/102/7 102/107/7 103/108/7 -f 109/118/25 113/117/25 110/113/25 -f 103/104/4 107/105/4 108/106/4 -f 105/110/2 109/118/2 106/119/2 -f 102/107/3 106/112/3 107/121/3 -f 110/113/7 113/117/7 112/116/7 -f 73/117/7 70/116/7 71/114/7 -f 108/115/24 112/116/24 113/117/24 -f 107/105/26 111/114/26 112/116/26 -f 117/167/3 121/168/3 118/169/3 -f 17/87/7 117/170/7 114/23/7 -f 17/87/7 13/92/7 116/171/7 -f 9/172/7 115/24/7 116/171/7 -f 121/173/2 120/174/2 124/175/2 -f 115/176/1 119/177/1 120/178/1 -f 116/179/2 120/174/2 121/173/2 -f 114/180/4 118/181/4 119/182/4 -f 130/183/7 129/184/7 124/175/7 -f 118/181/4 122/185/4 123/186/4 -f 121/168/3 130/183/3 118/169/3 -f 119/177/27 123/186/27 124/175/27 -f 126/187/1 127/188/1 137/189/1 -f 147/190/10 146/191/10 136/192/10 -f 128/193/1 129/194/1 139/195/1 -f 140/196/1 130/197/1 131/198/1 -f 142/199/1 132/200/1 133/201/1 -f 144/202/1 134/203/1 135/204/1 -f 155/205/10 154/206/10 144/202/10 -f 153/207/10 152/208/10 142/199/10 -f 151/209/10 150/210/10 140/196/10 -f 149/211/10 148/212/10 138/213/10 -f 157/214/7 156/215/7 146/191/7 -f 159/216/7 158/217/7 148/212/7 -f 161/218/7 160/219/7 150/210/7 -f 163/220/7 162/221/7 152/208/7 -f 165/222/7 164/223/7 154/206/7 -f 182/224/7 183/225/7 189/226/7 -f 180/227/7 181/228/7 187/229/7 -f 178/230/7 179/231/7 185/232/7 -f 167/233/2 173/234/2 172/235/2 -f 169/236/2 175/237/2 174/238/2 -f 171/239/2 177/240/2 176/241/2 -f 188/242/8 189/226/8 171/239/8 -f 186/243/8 187/229/8 169/236/8 -f 184/244/8 185/232/8 167/233/8 -f 215/245/28 217/246/28 216/247/28 -f 191/248/29 193/249/29 192/250/29 -f 195/251/30 193/252/30 220/253/30 -f 216/254/31 205/255/31 203/256/31 -f 193/249/32 195/257/32 194/258/32 -f 191/259/33 218/260/33 220/253/33 -f 209/261/34 211/262/34 210/263/34 -f 195/257/35 197/264/35 196/265/35 -f 213/266/36 215/245/36 214/267/36 -f 197/264/37 199/268/37 198/269/37 -f 199/268/38 201/270/38 200/271/38 -f 218/272/39 191/273/39 205/255/39 -f 207/274/40 209/261/40 208/275/40 -f 201/270/41 203/276/41 202/277/41 -f 201/278/42 212/279/42 214/280/42 -f 205/281/43 191/282/43 190/283/43 -f 203/276/44 205/281/44 204/284/44 -f 211/262/45 213/266/45 212/285/45 -f 217/246/46 219/286/46 218/287/46 -f 221/288/47 207/274/47 206/289/47 -f 195/251/48 206/290/48 208/291/48 -f 219/292/49 221/288/49 220/293/49 -f 212/279/50 201/278/50 199/294/50 -f 197/295/51 208/291/51 210/296/51 -f 247/297/28 249/298/28 248/299/28 -f 223/300/29 225/301/29 224/302/29 -f 227/303/30 225/304/30 252/305/30 -f 248/306/31 237/307/31 235/308/31 -f 225/301/32 227/309/32 226/310/32 -f 223/311/33 250/312/33 252/305/33 -f 241/313/34 243/314/34 242/315/34 -f 227/309/35 229/316/35 228/317/35 -f 245/318/36 247/297/36 246/319/36 -f 229/316/37 231/320/37 230/321/37 -f 231/320/38 233/322/38 232/323/38 -f 250/324/39 223/325/39 237/307/39 -f 239/326/40 241/313/40 240/327/40 -f 233/322/41 235/328/41 234/329/41 -f 233/330/42 244/331/42 246/332/42 -f 237/333/43 223/334/43 222/335/43 -f 235/328/44 237/333/44 236/336/44 -f 243/314/45 245/318/45 244/337/45 -f 249/298/46 251/338/46 250/339/46 -f 253/340/47 239/326/47 238/341/47 -f 227/303/48 238/342/48 240/343/48 -f 251/344/49 253/340/49 252/345/49 -f 242/346/50 244/331/50 233/330/50 -f 229/347/51 240/343/51 242/346/51 -f 279/348/28 281/349/28 280/350/28 -f 255/351/29 257/352/29 256/353/29 -f 259/354/30 257/355/30 284/356/30 -f 280/357/31 269/358/31 267/359/31 -f 257/352/32 259/360/32 258/361/32 -f 255/362/33 282/363/33 284/356/33 -f 273/364/34 275/365/34 274/366/34 -f 259/360/35 261/367/35 260/368/35 -f 277/369/36 279/348/36 278/370/36 -f 261/367/37 263/371/37 262/372/37 -f 263/371/38 265/373/38 264/374/38 -f 282/375/39 255/376/39 269/358/39 -f 271/377/40 273/364/40 272/378/40 -f 265/373/41 267/379/41 266/380/41 -f 267/359/42 265/381/42 276/382/42 -f 269/383/43 255/384/43 254/385/43 -f 267/379/44 269/383/44 268/386/44 -f 275/365/45 277/369/45 276/387/45 -f 281/349/46 283/388/46 282/389/46 -f 285/390/47 271/377/47 270/391/47 -f 259/354/48 270/392/48 272/393/48 -f 282/394/49 283/395/49 285/390/49 -f 274/396/50 276/382/50 265/381/50 -f 263/397/51 261/398/51 272/393/51 -f 289/399/1 288/400/1 286/401/1 -f 293/402/2 292/403/2 295/404/2 -f 292/405/3 299/406/3 301/407/3 -f 287/408/52 286/401/52 297/409/52 -f 295/410/5 292/411/5 290/412/5 -f 294/413/53 289/399/53 287/408/53 -f 293/414/7 294/413/7 296/415/7 -f 296/416/4 297/409/4 290/412/4 -f 294/417/54 295/404/54 288/400/54 -f 301/418/55 305/419/55 304/420/55 -f 291/421/3 300/422/3 298/423/3 -f 293/424/3 298/425/3 299/426/3 -f 290/427/3 301/418/3 300/428/3 -f 304/420/3 305/419/3 303/429/3 -f 298/425/56 302/430/56 303/429/56 -f 299/406/57 303/429/57 305/419/57 -f 300/422/58 304/420/58 302/430/58 -f 306/400/3 308/401/3 309/408/3 -f 315/409/2 312/412/2 313/431/2 -f 321/422/1 319/423/1 312/432/1 -f 317/404/59 306/400/59 307/399/59 -f 310/411/5 312/412/5 315/409/5 -f 307/399/60 309/408/60 314/415/60 -f 316/413/7 314/415/7 313/433/7 -f 310/403/4 317/404/4 316/417/4 -f 308/401/61 315/409/61 314/416/61 -f 324/419/62 325/420/62 321/428/62 -f 318/406/1 320/407/1 311/434/1 -f 319/425/1 318/426/1 313/435/1 -f 320/418/1 321/428/1 310/436/1 -f 323/430/1 325/420/1 324/419/1 -f 323/430/63 322/429/63 318/426/63 -f 325/420/64 323/430/64 319/423/64 -f 322/429/65 324/419/65 320/407/65 -f 332/437/3 326/438/3 327/439/3 -f 332/440/2 337/441/2 335/442/2 -f 329/443/1 331/444/1 330/445/1 -f 333/446/7 327/439/7 331/444/7 -f 328/447/5 330/445/5 326/438/5 -f 327/439/2 326/438/2 330/445/2 -f 337/441/5 341/448/5 339/449/5 -f 329/450/2 334/451/2 336/452/2 -f 328/453/2 335/454/2 334/455/2 -f 333/456/2 336/457/2 337/458/2 -f 421/459/10 420/460/10 408/461/10 -f 334/451/7 338/462/7 340/463/7 -f 336/457/3 340/464/3 341/465/3 -f 335/454/1 339/466/1 338/467/1 -f 348/437/3 342/438/3 343/439/3 -f 348/440/2 353/441/2 351/442/2 -f 345/443/1 347/444/1 346/445/1 -f 349/446/7 343/439/7 347/444/7 -f 344/447/5 346/445/5 342/438/5 -f 343/439/2 342/438/2 346/445/2 -f 353/441/5 357/448/5 355/449/5 -f 345/450/2 350/451/2 352/452/2 -f 344/453/2 351/454/2 350/455/2 -f 349/456/2 352/457/2 353/458/2 -f 423/468/10 422/469/10 410/470/10 -f 350/451/7 354/462/7 356/463/7 -f 352/457/3 356/464/3 357/465/3 -f 351/454/1 355/466/1 354/467/1 -f 359/471/3 358/472/3 364/473/3 -f 367/474/4 369/475/4 364/476/4 -f 362/477/1 363/478/1 361/479/1 -f 363/478/7 359/471/7 365/480/7 -f 358/472/5 362/477/5 360/481/5 -f 362/477/4 358/472/4 359/471/4 -f 371/482/5 373/483/5 369/475/5 -f 368/484/4 366/485/4 361/486/4 -f 366/487/4 367/488/4 360/489/4 -f 369/490/4 368/491/4 365/492/4 -f 372/493/2 373/494/2 371/495/2 -f 372/493/7 370/496/7 366/485/7 -f 373/497/3 372/498/3 368/491/3 -f 370/499/1 371/500/1 367/488/1 -f 375/444/3 374/445/3 380/453/3 -f 383/441/4 385/442/4 380/447/4 -f 378/438/1 379/439/1 377/456/1 -f 379/439/7 375/444/7 381/450/7 -f 374/445/5 378/438/5 376/440/5 -f 378/438/4 374/445/4 375/444/4 -f 387/448/5 389/449/5 385/442/5 -f 384/451/4 382/452/4 377/446/4 -f 382/457/4 383/458/4 376/437/4 -f 385/454/4 384/455/4 381/443/4 -f 425/501/10 424/502/10 412/503/10 -f 388/462/7 386/463/7 382/452/7 -f 389/466/3 388/467/3 384/455/3 -f 386/464/1 387/465/1 383/458/1 -f 391/504/2 390/505/2 392/506/2 -f 394/507/4 395/508/4 393/509/4 -f 397/510/2 396/511/2 398/512/2 -f 400/513/4 401/514/4 399/515/4 -f 414/516/66 420/460/66 421/459/66 -f 416/517/66 422/469/66 423/468/66 -f 418/518/66 424/502/66 425/501/66 -f 418/518/67 406/519/67 407/520/67 -f 416/517/67 404/521/67 405/522/67 -f 414/516/67 402/523/67 403/524/67 -f 2/20/1 4/1/1 1/3/1 -f 4/13/2 8/4/2 3/6/2 -f 8/18/3 6/7/3 7/9/3 -f 6/13/4 2/4/4 5/6/4 -f 1/525/5 3/10/5 5/12/5 -f 9/526/6 2/4/6 16/14/6 -f 6/13/6 12/527/6 16/14/6 -f 14/28/7 10/15/7 56/17/7 -f 11/526/8 8/4/8 14/14/8 -f 4/13/8 10/527/8 14/14/8 -f 12/528/9 6/7/9 15/19/9 -f 8/18/9 11/529/9 15/19/9 -f 10/530/10 4/1/10 13/21/10 -f 2/20/10 9/531/10 13/21/10 -f 9/172/7 16/22/7 115/24/7 -f 21/75/1 17/27/1 48/26/1 -f 16/25/1 20/73/1 48/26/1 -f 11/85/7 14/28/7 51/30/7 -f 19/68/3 12/33/3 46/32/3 -f 15/31/3 18/78/3 46/32/3 -f 18/78/2 15/36/2 47/35/2 -f 17/34/2 21/75/2 47/35/2 -f 20/73/4 16/39/4 49/38/4 -f 12/37/4 19/68/4 49/38/4 -f 22/532/11 23/40/11 24/42/11 -f 24/42/12 25/41/12 26/44/12 -f 26/44/13 27/43/13 28/46/13 -f 28/46/14 29/45/14 30/48/14 -f 30/48/15 31/47/15 32/50/15 -f 32/50/16 33/49/16 34/52/16 -f 34/52/17 35/51/17 36/54/17 -f 36/54/18 37/53/18 38/56/18 -f 38/56/19 39/55/19 40/58/19 -f 40/58/20 41/57/20 42/60/20 -f 41/533/5 39/61/5 87/63/5 -f 44/67/21 45/64/21 22/66/21 -f 42/60/22 43/59/22 44/67/22 -f 34/70/7 49/38/7 32/69/7 -f 20/73/7 49/38/7 36/71/7 -f 40/534/7 48/26/7 38/72/7 -f 40/534/7 42/74/7 48/26/7 -f 22/535/7 47/35/7 44/76/7 -f 22/535/7 24/77/7 47/35/7 -f 19/68/7 46/32/7 30/79/7 -f 28/80/7 46/32/7 26/81/7 -f 53/536/4 52/82/4 61/84/4 -f 15/89/7 11/85/7 52/86/7 -f 14/28/7 17/87/7 50/29/7 -f 17/87/7 15/89/7 53/88/7 -f 54/536/4 57/82/4 69/84/4 -f 13/92/7 17/87/7 54/91/7 -f 17/87/7 14/28/7 57/90/7 -f 10/15/7 13/92/7 55/16/7 -f 58/100/7 61/93/7 62/95/7 -f 51/537/2 50/96/2 59/98/2 -f 50/538/1 53/99/1 58/100/1 -f 52/539/3 51/101/3 60/103/3 -f 65/109/4 64/104/4 77/106/4 -f 60/103/7 59/102/7 64/108/7 -f 61/84/7 60/83/7 65/109/7 -f 59/98/7 58/97/7 63/111/7 -f 56/537/2 55/96/2 67/98/2 -f 57/539/3 56/101/3 66/103/3 -f 55/538/1 54/99/1 68/100/1 -f 68/100/7 69/93/7 105/95/7 -f 76/121/23 75/112/23 71/114/23 -f 74/120/24 77/115/24 73/117/24 -f 63/111/2 62/110/2 75/119/2 -f 62/95/1 65/94/1 74/120/1 -f 64/108/3 63/107/3 76/121/3 -f 75/119/25 74/118/25 72/113/25 -f 106/112/23 110/113/23 107/121/23 -f 70/116/26 77/106/26 71/114/26 -f 82/138/14 81/122/14 94/124/14 -f 39/540/5 37/125/5 86/127/5 -f 37/541/5 35/128/5 85/130/5 -f 35/542/5 33/131/5 84/133/5 -f 33/543/5 31/134/5 83/136/5 -f 31/544/5 29/137/5 82/138/5 -f 23/545/5 45/139/5 79/141/5 -f 25/546/5 23/142/5 78/144/5 -f 29/547/5 27/145/5 81/147/5 -f 89/548/5 45/148/5 88/150/5 -f 27/549/5 25/151/5 80/153/5 -f 43/550/5 41/154/5 88/156/5 -f 92/159/7 90/163/7 100/160/7 -f 91/162/7 101/161/7 100/160/7 -f 100/160/7 99/166/7 98/157/7 -f 98/157/7 97/164/7 96/158/7 -f 96/158/7 95/165/7 94/124/7 -f 94/124/7 93/123/7 92/159/7 -f 90/163/7 91/162/7 100/160/7 -f 100/160/7 98/157/7 92/159/7 -f 96/158/7 94/124/7 92/159/7 -f 89/548/22 88/150/22 101/161/22 -f 78/144/11 79/143/11 90/163/11 -f 86/127/18 85/126/18 98/157/18 -f 83/136/15 82/135/15 95/165/15 -f 79/141/21 89/140/21 91/162/21 -f 80/153/12 78/152/12 92/159/12 -f 87/63/19 86/62/19 99/166/19 -f 84/133/16 83/132/16 96/158/16 -f 81/147/13 80/146/13 93/123/13 -f 88/156/20 87/155/20 100/160/20 -f 85/130/17 84/129/17 97/164/17 -f 105/95/1 104/94/1 109/120/1 -f 69/84/7 66/83/7 104/109/7 -f 67/98/7 68/97/7 102/111/7 -f 66/103/7 67/102/7 103/108/7 -f 106/119/25 109/118/25 110/113/25 -f 104/109/4 103/104/4 108/106/4 -f 102/111/2 105/110/2 106/119/2 -f 103/108/3 102/107/3 107/121/3 -f 111/114/7 110/113/7 112/116/7 -f 72/113/7 73/117/7 71/114/7 -f 109/120/24 108/115/24 113/117/24 -f 108/106/26 107/105/26 112/116/26 -f 114/551/3 117/167/3 118/169/3 -f 16/22/7 17/87/7 114/23/7 -f 117/170/7 17/87/7 116/171/7 -f 13/92/7 9/172/7 116/171/7 -f 125/552/2 121/173/2 124/175/2 -f 116/553/1 115/176/1 120/178/1 -f 117/554/2 116/179/2 121/173/2 -f 115/555/4 114/180/4 119/182/4 -f 123/186/7 122/185/7 135/556/7 -f 135/556/7 134/557/7 123/186/7 -f 133/558/7 132/559/7 123/186/7 -f 131/560/7 130/183/7 124/175/7 -f 129/184/7 128/561/7 124/175/7 -f 127/562/7 126/563/7 124/175/7 -f 125/552/7 124/175/7 126/563/7 -f 123/186/7 134/557/7 133/558/7 -f 132/559/7 131/560/7 123/186/7 -f 128/561/7 127/562/7 124/175/7 -f 124/175/7 123/186/7 131/560/7 -f 119/182/4 118/181/4 123/186/4 -f 122/185/3 118/169/3 135/556/3 -f 121/168/3 125/552/3 126/563/3 -f 126/563/3 127/562/3 121/168/3 -f 128/561/3 129/184/3 121/168/3 -f 130/183/3 131/560/3 118/169/3 -f 132/559/3 133/558/3 118/169/3 -f 134/557/3 135/556/3 118/169/3 -f 121/168/3 127/562/3 128/561/3 -f 134/557/3 118/169/3 133/558/3 -f 131/560/3 132/559/3 118/169/3 -f 121/168/3 129/184/3 130/183/3 -f 120/178/27 119/177/27 124/175/27 -f 136/192/1 126/187/1 137/189/1 -f 137/189/10 147/190/10 136/192/10 -f 138/213/1 128/193/1 139/195/1 -f 141/564/1 140/196/1 131/198/1 -f 143/565/1 142/199/1 133/201/1 -f 145/566/1 144/202/1 135/204/1 -f 145/566/10 155/205/10 144/202/10 -f 143/565/10 153/207/10 142/199/10 -f 141/564/10 151/209/10 140/196/10 -f 139/195/10 149/211/10 138/213/10 -f 147/190/7 157/214/7 146/191/7 -f 149/211/7 159/216/7 148/212/7 -f 151/209/7 161/218/7 150/210/7 -f 153/207/7 163/220/7 152/208/7 -f 155/205/7 165/222/7 154/206/7 -f 188/242/7 182/224/7 189/226/7 -f 186/243/7 180/227/7 187/229/7 -f 184/244/7 178/230/7 185/232/7 -f 166/567/2 167/233/2 172/235/2 -f 168/568/2 169/236/2 174/238/2 -f 170/569/2 171/239/2 176/241/2 -f 170/569/8 188/242/8 171/239/8 -f 168/568/8 186/243/8 169/236/8 -f 166/567/8 184/244/8 167/233/8 -f 214/267/28 215/245/28 216/247/28 -f 190/570/29 191/248/29 192/250/29 -f 206/290/30 195/251/30 220/253/30 -f 214/280/31 216/254/31 203/256/31 -f 192/250/32 193/249/32 194/258/32 -f 193/252/33 191/259/33 220/253/33 -f 208/275/34 209/261/34 210/263/34 -f 194/258/35 195/257/35 196/265/35 -f 212/285/36 213/266/36 214/267/36 -f 196/265/37 197/264/37 198/269/37 -f 198/269/38 199/268/38 200/271/38 -f 216/254/39 218/272/39 205/255/39 -f 206/289/40 207/274/40 208/275/40 -f 200/271/41 201/270/41 202/277/41 -f 203/256/42 201/278/42 214/280/42 -f 204/284/43 205/281/43 190/283/43 -f 202/277/44 203/276/44 204/284/44 -f 210/263/45 211/262/45 212/285/45 -f 216/247/46 217/246/46 218/287/46 -f 220/293/47 221/288/47 206/289/47 -f 197/295/48 195/251/48 208/291/48 -f 218/571/49 219/292/49 220/293/49 -f 210/296/50 212/279/50 199/294/50 -f 199/294/51 197/295/51 210/296/51 -f 246/319/28 247/297/28 248/299/28 -f 222/572/29 223/300/29 224/302/29 -f 238/342/30 227/303/30 252/305/30 -f 246/332/31 248/306/31 235/308/31 -f 224/302/32 225/301/32 226/310/32 -f 225/304/33 223/311/33 252/305/33 -f 240/327/34 241/313/34 242/315/34 -f 226/310/35 227/309/35 228/317/35 -f 244/337/36 245/318/36 246/319/36 -f 228/317/37 229/316/37 230/321/37 -f 230/321/38 231/320/38 232/323/38 -f 248/306/39 250/324/39 237/307/39 -f 238/341/40 239/326/40 240/327/40 -f 232/323/41 233/322/41 234/329/41 -f 235/308/42 233/330/42 246/332/42 -f 236/336/43 237/333/43 222/335/43 -f 234/329/44 235/328/44 236/336/44 -f 242/315/45 243/314/45 244/337/45 -f 248/299/46 249/298/46 250/339/46 -f 252/345/47 253/340/47 238/341/47 -f 229/347/48 227/303/48 240/343/48 -f 250/573/49 251/344/49 252/345/49 -f 231/574/50 242/346/50 233/330/50 -f 231/574/51 229/347/51 242/346/51 -f 278/370/28 279/348/28 280/350/28 -f 254/575/29 255/351/29 256/353/29 -f 270/392/30 259/354/30 284/356/30 -f 278/576/31 280/357/31 267/359/31 -f 256/353/32 257/352/32 258/361/32 -f 257/355/33 255/362/33 284/356/33 -f 272/378/34 273/364/34 274/366/34 -f 258/361/35 259/360/35 260/368/35 -f 276/387/36 277/369/36 278/370/36 -f 260/368/37 261/367/37 262/372/37 -f 262/372/38 263/371/38 264/374/38 -f 280/357/39 282/375/39 269/358/39 -f 270/391/40 271/377/40 272/378/40 -f 264/374/41 265/373/41 266/380/41 -f 278/576/42 267/359/42 276/382/42 -f 268/386/43 269/383/43 254/385/43 -f 266/380/44 267/379/44 268/386/44 -f 274/366/45 275/365/45 276/387/45 -f 280/350/46 281/349/46 282/389/46 -f 284/577/47 285/390/47 270/391/47 -f 261/398/48 259/354/48 272/393/48 -f 284/577/49 282/394/49 285/390/49 -f 263/397/50 274/396/50 265/381/50 -f 274/396/51 263/397/51 272/393/51 -f 287/408/1 289/399/1 286/401/1 -f 294/417/2 293/402/2 295/404/2 -f 290/434/3 292/405/3 301/407/3 -f 296/416/52 287/408/52 297/409/52 -f 297/409/5 295/410/5 290/412/5 -f 296/415/53 294/413/53 287/408/53 -f 291/433/7 293/414/7 296/415/7 -f 291/431/4 296/416/4 290/412/4 -f 289/399/54 294/417/54 288/400/54 -f 300/428/55 301/418/55 304/420/55 -f 293/432/3 291/421/3 298/423/3 -f 292/435/3 293/424/3 299/426/3 -f 291/436/3 290/427/3 300/428/3 -f 302/430/3 304/420/3 303/429/3 -f 299/426/56 298/425/56 303/429/56 -f 301/407/57 299/406/57 305/419/57 -f 298/423/58 300/422/58 302/430/58 -f 307/399/3 306/400/3 309/408/3 -f 314/416/2 315/409/2 313/431/2 -f 310/421/1 321/422/1 312/432/1 -f 316/417/59 317/404/59 307/399/59 -f 317/410/5 310/411/5 315/409/5 -f 316/413/60 307/399/60 314/415/60 -f 311/414/7 316/413/7 313/433/7 -f 311/402/4 310/403/4 316/417/4 -f 309/408/61 308/401/61 314/416/61 -f 320/418/62 324/419/62 321/428/62 -f 313/405/1 318/406/1 311/434/1 -f 312/424/1 319/425/1 313/435/1 -f 311/427/1 320/418/1 310/436/1 -f 322/429/1 323/430/1 324/419/1 -f 319/425/63 323/430/63 318/426/63 -f 321/422/64 325/420/64 319/423/64 -f 318/406/65 322/429/65 320/407/65 -f 333/456/3 332/437/3 327/439/3 -f 328/447/2 332/440/2 335/442/2 -f 328/453/1 329/443/1 330/445/1 -f 329/450/7 333/446/7 331/444/7 -f 332/440/5 328/447/5 326/438/5 -f 331/444/2 327/439/2 330/445/2 -f 335/442/5 337/441/5 339/449/5 -f 333/446/2 329/450/2 336/452/2 -f 329/443/2 328/453/2 334/455/2 -f 332/437/2 333/456/2 337/458/2 -f 409/578/10 421/459/10 408/461/10 -f 336/452/7 334/451/7 340/463/7 -f 337/458/3 336/457/3 341/465/3 -f 334/455/1 335/454/1 338/467/1 -f 349/456/3 348/437/3 343/439/3 -f 344/447/2 348/440/2 351/442/2 -f 344/453/1 345/443/1 346/445/1 -f 345/450/7 349/446/7 347/444/7 -f 348/440/5 344/447/5 342/438/5 -f 347/444/2 343/439/2 346/445/2 -f 351/442/5 353/441/5 355/449/5 -f 349/446/2 345/450/2 352/452/2 -f 345/443/2 344/453/2 350/455/2 -f 348/437/2 349/456/2 353/458/2 -f 411/579/10 423/468/10 410/470/10 -f 352/452/7 350/451/7 356/463/7 -f 353/458/3 352/457/3 357/465/3 -f 350/455/1 351/454/1 354/467/1 -f 365/492/3 359/471/3 364/473/3 -f 360/481/4 367/474/4 364/476/4 -f 360/489/1 362/477/1 361/479/1 -f 361/486/7 363/478/7 365/480/7 -f 364/476/5 358/472/5 360/481/5 -f 363/478/4 362/477/4 359/471/4 -f 367/474/5 371/482/5 369/475/5 -f 365/480/4 368/484/4 361/486/4 -f 361/479/4 366/487/4 360/489/4 -f 364/473/4 369/490/4 365/492/4 -f 370/496/2 372/493/2 371/495/2 -f 368/484/7 372/493/7 366/485/7 -f 369/490/3 373/497/3 368/491/3 -f 366/487/1 370/499/1 367/488/1 -f 381/443/3 375/444/3 380/453/3 -f 376/440/4 383/441/4 380/447/4 -f 376/437/1 378/438/1 377/456/1 -f 377/446/7 379/439/7 381/450/7 -f 380/447/5 374/445/5 376/440/5 -f 379/439/4 378/438/4 375/444/4 -f 383/441/5 387/448/5 385/442/5 -f 381/450/4 384/451/4 377/446/4 -f 377/456/4 382/457/4 376/437/4 -f 380/453/4 385/454/4 381/443/4 -f 413/580/10 425/501/10 412/503/10 -f 384/451/7 388/462/7 382/452/7 -f 385/454/3 389/466/3 384/455/3 -f 382/457/1 386/464/1 383/458/1 -f 415/581/66 414/516/66 421/459/66 -f 417/582/66 416/517/66 423/468/66 -f 419/583/66 418/518/66 425/501/66 -f 419/583/67 418/518/67 407/520/67 -f 417/582/67 416/517/67 405/522/67 -f 415/581/67 414/516/67 403/524/67 diff --git a/src/main/resources/assets/hbm/models/chemplant_piston.obj b/src/main/resources/assets/hbm/models/chemplant_piston.obj deleted file mode 100644 index 16c48a3e6..000000000 --- a/src/main/resources/assets/hbm/models/chemplant_piston.obj +++ /dev/null @@ -1,150 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'chemplant_piston.blend' -# www.blender.org -o Cube.001_Cube.002 -v 0.427500 2.000000 -0.427500 -v 0.427500 2.000000 -0.822500 -v 0.822500 2.000000 -0.427500 -v 0.822500 2.000000 -0.822500 -v 0.427500 2.150000 -0.427500 -v 0.427500 2.150000 -0.822500 -v 0.822500 2.150000 -0.822500 -v 0.822500 2.150000 -0.427500 -v 0.476875 2.000000 -0.476875 -v 0.476875 2.000000 -0.773125 -v 0.773125 2.000000 -0.773125 -v 0.773125 2.000000 -0.476875 -v 0.476875 1.500000 -0.476875 -v 0.476875 1.500000 -0.773125 -v 0.773125 1.500000 -0.773125 -v 0.773125 1.500000 -0.476875 -v -0.822500 2.000000 -0.427500 -v -0.822500 2.000000 -0.822500 -v -0.427500 2.000000 -0.427500 -v -0.427500 2.000000 -0.822500 -v -0.822500 2.150000 -0.427500 -v -0.822500 2.150000 -0.822500 -v -0.427500 2.150000 -0.822500 -v -0.427500 2.150000 -0.427500 -v -0.773125 2.000000 -0.476875 -v -0.773125 2.000000 -0.773125 -v -0.476875 2.000000 -0.773125 -v -0.476875 2.000000 -0.476875 -v -0.773125 1.500000 -0.476875 -v -0.773125 1.500000 -0.773125 -v -0.476875 1.500000 -0.773125 -v -0.476875 1.500000 -0.476875 -vt 0.263926 0.442748 -vt 0.248840 0.427662 -vt 0.248840 0.337146 -vt 0.309756 0.322060 -vt 0.430444 0.322060 -vt 0.430444 0.442748 -vt 0.263926 0.322060 -vt 0.309756 0.442748 -vt 0.476275 0.442748 -vt 0.309756 0.488579 -vt 0.430444 0.276229 -vt 0.415358 0.503665 -vt 0.415358 0.656434 -vt 0.324842 0.656434 -vt 0.476275 0.322060 -vt 0.491361 0.337146 -vt 0.491361 0.427662 -vt 0.430444 0.488579 -vt 0.324842 0.503664 -vt 0.309756 0.276230 -vt 0.324842 0.261143 -vt 0.415358 0.261144 -vt 0.324842 0.108374 -vt 0.415358 0.108374 -vt 0.096070 0.427662 -vt 0.096071 0.337146 -vt 0.644130 0.337146 -vt 0.644130 0.427662 -vt 0.847582 0.752895 -vt 0.847582 0.774230 -vt 0.783577 0.838234 -vt 0.729835 0.805827 -vt 0.644497 0.720488 -vt 0.729836 0.635149 -vt 0.762243 0.838234 -vt 0.815175 0.720488 -vt 0.697428 0.602742 -vt 0.847582 0.688081 -vt 0.612089 0.752895 -vt 0.783578 0.602742 -vt 0.891602 0.494718 -vt 0.955606 0.558722 -vt 0.612089 0.688081 -vt 0.612089 0.666746 -vt 0.676094 0.602742 -vt 0.762243 0.602742 -vt 0.847582 0.666746 -vt 0.697428 0.838234 -vt 0.676093 0.838234 -vt 0.612089 0.774230 -vt 0.568069 0.946258 -vt 0.504065 0.882254 -vt 0.955606 0.882254 -vt 0.891601 0.946258 -vt 0.504065 0.558721 -vt 0.568070 0.494717 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -s off -f 3/1/1 12/2/1 11/3/1 -f 7/4/2 6/5/2 5/6/2 -f 4/7/3 7/4/3 8/8/3 -f 1/9/4 5/6/4 6/5/4 -f 3/10/5 8/8/5 5/6/5 -f 2/11/6 6/5/6 7/4/6 -f 9/12/5 13/13/5 16/14/5 -f 2/15/1 10/16/1 9/17/1 -f 1/18/1 9/12/1 12/19/1 -f 4/20/1 11/21/1 10/22/1 -f 11/21/6 15/23/6 14/24/6 -f 12/2/3 16/25/3 15/26/3 -f 10/16/4 14/27/4 13/28/4 -f 19/29/1 28/30/1 27/31/1 -f 23/32/2 22/33/2 21/34/2 -f 20/35/3 23/32/3 24/36/3 -f 17/37/4 21/34/4 22/33/4 -f 19/38/5 24/36/5 21/34/5 -f 18/39/6 22/33/6 23/32/6 -f 25/40/5 29/41/5 32/42/5 -f 18/43/1 26/44/1 25/45/1 -f 17/46/1 25/40/1 28/47/1 -f 20/48/1 27/49/1 26/50/1 -f 27/49/6 31/51/6 30/52/6 -f 28/30/3 32/53/3 31/54/3 -f 26/44/4 30/55/4 29/56/4 -f 4/7/1 3/1/1 11/3/1 -f 8/8/2 7/4/2 5/6/2 -f 3/1/3 4/7/3 8/8/3 -f 2/15/4 1/9/4 6/5/4 -f 1/18/5 3/10/5 5/6/5 -f 4/20/6 2/11/6 7/4/6 -f 12/19/5 9/12/5 16/14/5 -f 1/9/1 2/15/1 9/17/1 -f 3/10/1 1/18/1 12/19/1 -f 2/11/1 4/20/1 10/22/1 -f 10/22/6 11/21/6 14/24/6 -f 11/3/3 12/2/3 15/26/3 -f 9/17/4 10/16/4 13/28/4 -f 20/35/1 19/29/1 27/31/1 -f 24/36/2 23/32/2 21/34/2 -f 19/29/3 20/35/3 24/36/3 -f 18/43/4 17/37/4 22/33/4 -f 17/46/5 19/38/5 21/34/5 -f 20/48/6 18/39/6 23/32/6 -f 28/47/5 25/40/5 32/42/5 -f 17/37/1 18/43/1 25/45/1 -f 19/38/1 17/46/1 28/47/1 -f 18/39/1 20/48/1 26/50/1 -f 26/50/6 27/49/6 30/52/6 -f 27/31/3 28/30/3 31/54/3 -f 25/45/4 26/44/4 29/56/4 diff --git a/src/main/resources/assets/hbm/models/drill_bolt.obj b/src/main/resources/assets/hbm/models/drill_bolt.obj deleted file mode 100644 index dcf0a5d40..000000000 --- a/src/main/resources/assets/hbm/models/drill_bolt.obj +++ /dev/null @@ -1,1595 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'drill_bolt.blend' -# www.blender.org -o Cylinder_Cylinder.001 -v 0.125000 3.000000 -0.216506 -v 0.000000 3.000000 -0.250000 -v 0.216506 3.000000 -0.125000 -v 0.250000 3.000000 0.000000 -v 0.216506 3.000000 0.125000 -v 0.125000 3.000000 0.216506 -v 0.000000 3.000000 0.250000 -v -0.125000 3.000000 0.216506 -v -0.216506 3.000000 0.125000 -v -0.250000 3.000000 0.000000 -v -0.216506 3.000000 -0.125000 -v -0.125000 3.000000 -0.216506 -v -0.125000 2.750000 -0.216506 -v -0.000000 2.750000 -0.250000 -v -0.051764 3.000000 -0.443185 -v -0.176764 3.000000 -0.409691 -v 0.125000 2.750000 -0.216506 -v 0.216506 2.750000 -0.125000 -v 0.250000 2.750000 -0.000000 -v 0.216506 2.750000 0.125000 -v 0.125000 2.750000 0.216506 -v 0.000000 2.750000 0.250000 -v -0.125000 2.750000 0.216506 -v -0.216506 2.750000 0.125000 -v -0.250000 2.750000 0.000000 -v -0.216506 2.750000 -0.125000 -v -0.266421 2.750000 -0.357928 -v -0.357928 2.750000 -0.266421 -v 0.443185 3.000000 0.051764 -v 0.409692 3.000000 0.176764 -v 0.443185 2.750000 -0.051764 -v 0.409692 2.750000 -0.176764 -v -0.266421 3.000000 0.357928 -v -0.357928 3.000000 0.266421 -v -0.176764 2.750000 0.409692 -v -0.051764 2.750000 0.443185 -v 0.125000 2.500000 -0.216506 -v -0.000000 2.500000 -0.250000 -v -0.125000 2.500000 -0.216506 -v -0.216506 2.500000 -0.125000 -v 0.216506 2.500000 -0.125000 -v 0.250000 2.500000 -0.000000 -v 0.216506 2.500000 0.125000 -v 0.125000 2.500000 0.216506 -v 0.000000 2.500000 0.250000 -v -0.125000 2.500000 0.216506 -v -0.216506 2.500000 0.125000 -v -0.250000 2.500000 0.000000 -v -0.409692 2.500000 -0.176764 -v -0.443185 2.500000 -0.051763 -v 0.266421 2.500000 -0.357928 -v 0.357928 2.500000 -0.266421 -v 0.176764 2.500000 0.409691 -v 0.051764 2.500000 0.443185 -v -0.000000 2.250000 -0.250000 -v -0.125000 2.250000 -0.216506 -v -0.216506 2.250000 -0.125000 -v -0.250000 2.250000 0.000000 -v 0.125000 2.250000 -0.216506 -v 0.216506 2.250000 -0.125000 -v 0.250000 2.250000 -0.000000 -v 0.216506 2.250000 0.125000 -v 0.125000 2.250000 0.216506 -v 0.000000 2.250000 0.250000 -v -0.125000 2.250000 0.216506 -v -0.216506 2.250000 0.125000 -v -0.443185 2.250000 0.051764 -v -0.409691 2.250000 0.176764 -v 0.051764 2.250000 -0.443185 -v 0.176764 2.250000 -0.409692 -v 0.357928 2.250000 0.266421 -v 0.266422 2.250000 0.357928 -v -0.125000 2.000000 -0.216506 -v -0.216506 2.000000 -0.125000 -v -0.250000 2.000000 0.000000 -v -0.216506 2.000000 0.125000 -v -0.000000 2.000000 -0.250000 -v 0.125000 2.000000 -0.216506 -v 0.216506 2.000000 -0.125000 -v 0.250000 2.000000 -0.000000 -v 0.216506 2.000000 0.125000 -v 0.125000 2.000000 0.216506 -v 0.000000 2.000000 0.250000 -v -0.125000 2.000000 0.216507 -v -0.357928 2.000000 0.266422 -v -0.266421 2.000000 0.357928 -v -0.176764 2.000000 -0.409691 -v -0.051764 2.000000 -0.443185 -v 0.443185 2.000000 0.051763 -v 0.409692 2.000000 0.176763 -v -0.216506 1.750000 -0.125000 -v -0.250000 1.750000 0.000000 -v -0.216506 1.750000 0.125000 -v -0.125000 1.750000 0.216506 -v -0.125000 1.750000 -0.216506 -v -0.000000 1.750000 -0.250000 -v 0.125000 1.750000 -0.216506 -v 0.216506 1.750000 -0.125000 -v 0.250000 1.750000 -0.000000 -v 0.216506 1.750000 0.125000 -v 0.125000 1.750000 0.216506 -v 0.000000 1.750000 0.250000 -v -0.176764 1.750000 0.409692 -v -0.051763 1.750000 0.443185 -v -0.357928 1.750000 -0.266421 -v -0.266422 1.750000 -0.357927 -v 0.409691 1.750000 -0.176764 -v 0.443185 1.750000 -0.051764 -v -0.250000 1.500000 0.000000 -v -0.216506 1.500000 0.125000 -v -0.125000 1.500000 0.216506 -v 0.000000 1.500000 0.250000 -v -0.216506 1.500000 -0.125000 -v -0.125000 1.500000 -0.216506 -v -0.000000 1.500000 -0.250000 -v 0.125000 1.500000 -0.216506 -v 0.216506 1.500000 -0.125000 -v 0.250000 1.500000 -0.000000 -v 0.216506 1.500000 0.125000 -v 0.125000 1.500000 0.216506 -v 0.051764 1.500000 0.443185 -v 0.176764 1.500000 0.409691 -v -0.443185 1.500000 -0.051763 -v -0.409692 1.500000 -0.176763 -v 0.266421 1.500000 -0.357928 -v 0.357927 1.500000 -0.266422 -v -0.216506 1.250000 0.125000 -v -0.125000 1.250000 0.216506 -v 0.000000 1.250000 0.250000 -v 0.125000 1.250000 0.216506 -v -0.250000 1.250000 0.000000 -v -0.216506 1.250000 -0.125000 -v -0.125000 1.250000 -0.216506 -v -0.000000 1.250000 -0.250000 -v 0.125000 1.250000 -0.216506 -v 0.216506 1.250000 -0.125000 -v 0.250000 1.250000 -0.000000 -v 0.216507 1.250000 0.125000 -v 0.266422 1.250000 0.357928 -v 0.357928 1.250000 0.266421 -v -0.409691 1.250000 0.176764 -v -0.443185 1.250000 0.051764 -v 0.051763 1.250000 -0.443185 -v 0.176763 1.250000 -0.409692 -v -0.125000 1.000000 0.216506 -v 0.000000 1.000000 0.250000 -v 0.125000 1.000000 0.216506 -v 0.216506 1.000000 0.125000 -v -0.216506 1.000000 0.125000 -v -0.250000 1.000000 0.000000 -v -0.216506 1.000000 -0.125000 -v -0.125000 1.000000 -0.216506 -v -0.000000 1.000000 -0.250000 -v 0.125000 1.000000 -0.216506 -v 0.216506 1.000000 -0.125000 -v 0.250000 1.000000 -0.000000 -v 0.409692 1.000000 0.176763 -v 0.443185 1.000000 0.051763 -v -0.266421 1.000000 0.357928 -v -0.357927 1.000000 0.266422 -v -0.176764 1.000000 -0.409691 -v -0.051764 1.000000 -0.443185 -v 0.000000 0.750000 0.250000 -v 0.125000 0.750000 0.216506 -v 0.216506 0.750000 0.125000 -v 0.250000 0.750000 -0.000000 -v -0.125000 0.750000 0.216506 -v -0.216506 0.750000 0.125000 -v -0.250000 0.750000 0.000000 -v -0.216506 0.750000 -0.125000 -v -0.125000 0.750000 -0.216506 -v -0.000000 0.750000 -0.250000 -v 0.125000 0.750000 -0.216506 -v 0.216506 0.750000 -0.125000 -v 0.443185 0.750000 -0.051764 -v 0.409691 0.750000 -0.176764 -v -0.051763 0.750000 0.443185 -v -0.176763 0.750000 0.409692 -v -0.357928 0.750000 -0.266421 -v -0.266422 0.750000 -0.357927 -v 0.125000 0.500000 0.216506 -v 0.216506 0.500000 0.125000 -v 0.250000 0.500000 -0.000000 -v 0.216506 0.500000 -0.125000 -v 0.000000 0.500000 0.250000 -v -0.125000 0.500000 0.216506 -v -0.216506 0.500000 0.125000 -v -0.250000 0.500000 0.000000 -v -0.216507 0.500000 -0.125000 -v -0.125000 0.500000 -0.216506 -v -0.000000 0.500000 -0.250000 -v 0.125000 0.500000 -0.216507 -v 0.357927 0.500000 -0.266422 -v 0.266421 0.500000 -0.357928 -v 0.176764 0.500000 0.409691 -v 0.051764 0.500000 0.443185 -v -0.443185 0.500000 -0.051763 -v -0.409692 0.500000 -0.176763 -v 0.216506 0.250000 0.125000 -v 0.250000 0.250000 -0.000000 -v 0.216506 0.250000 -0.125000 -v 0.125000 0.250000 -0.216506 -v 0.125000 0.250000 0.216506 -v 0.000000 0.250000 0.250000 -v -0.125000 0.250000 0.216507 -v -0.216506 0.250000 0.125000 -v -0.250000 0.250000 0.000000 -v -0.216507 0.250000 -0.125000 -v -0.125000 0.250000 -0.216506 -v -0.000001 0.250000 -0.250000 -v 0.176763 0.250000 -0.409692 -v 0.051763 0.250000 -0.443185 -v 0.357928 0.250000 0.266421 -v 0.266422 0.250000 0.357927 -v -0.409691 0.250000 0.176765 -v -0.443185 0.250000 0.051765 -v 0.250000 0.000000 -0.000000 -v 0.216506 0.000000 -0.125000 -v 0.125000 0.000000 -0.216506 -v -0.000000 0.000000 -0.250000 -v 0.216506 0.000000 0.125000 -v 0.125000 0.000000 0.216506 -v 0.000000 0.000000 0.250000 -v -0.125000 0.000000 0.216507 -v -0.216506 0.000000 0.125000 -v -0.250000 0.000000 0.000001 -v -0.216507 0.000000 -0.125000 -v -0.125000 0.000000 -0.216506 -v -0.051765 0.000000 -0.443185 -v -0.176765 0.000000 -0.409691 -v 0.443185 0.000000 0.051763 -v 0.409692 0.000000 0.176763 -v -0.266421 0.000000 0.357928 -v -0.357927 0.000000 0.266422 -vt 0.734654 0.961016 -vt 0.705579 0.975604 -vt 0.705579 0.902663 -vt 0.255629 0.062086 -vt 0.364401 0.091333 -vt 0.284775 0.171236 -vt 0.186790 0.125104 -vt 0.186790 0.091333 -vt 0.238802 0.091333 -vt 0.647427 0.624623 -vt 0.671421 0.602614 -vt 0.671421 0.691005 -vt 0.885455 0.327893 -vt 0.856379 0.342481 -vt 0.856379 0.269539 -vt 0.734654 0.902663 -vt 0.763730 0.888074 -vt 0.763730 0.961016 -vt 0.840715 0.160472 -vt 0.811640 0.175060 -vt 0.811640 0.102118 -vt 0.796471 0.727603 -vt 0.825547 0.713014 -vt 0.825547 0.785956 -vt 0.758571 0.132409 -vt 0.782564 0.110400 -vt 0.782564 0.198791 -vt 0.146287 0.925935 -vt 0.117211 0.940524 -vt 0.117211 0.867582 -vt 0.439954 0.627453 -vt 0.463948 0.605444 -vt 0.463948 0.693835 -vt 0.087681 0.836936 -vt 0.058606 0.851525 -vt 0.058606 0.778583 -vt 0.640691 0.962303 -vt 0.611615 0.976891 -vt 0.611615 0.903950 -vt 0.490791 0.410204 -vt 0.443651 0.429303 -vt 0.432186 0.341922 -vt 0.811640 0.072942 -vt 0.782564 0.087530 -vt 0.782564 0.014588 -vt 0.796471 0.785956 -vt 0.767395 0.800544 -vt 0.767395 0.727603 -vt 0.617057 0.254951 -vt 0.667297 0.262750 -vt 0.658587 0.334853 -vt 0.029076 0.865793 -vt 0.058151 0.851205 -vt 0.058151 0.924147 -vt 0.782564 0.088391 -vt 0.758571 0.110400 -vt 0.758571 0.022009 -vt 0.373580 0.199551 -vt 0.344435 0.216436 -vt 0.318429 0.171236 -vt 0.599637 0.334853 -vt 0.549397 0.342652 -vt 0.558107 0.254951 -vt 0.811640 0.014588 -vt 0.840715 0.000000 -vt 0.840715 0.072942 -vt 0.304001 0.371690 -vt 0.256861 0.390788 -vt 0.245396 0.303408 -vt 0.647427 0.779823 -vt 0.623434 0.801832 -vt 0.623434 0.713440 -vt 0.318429 0.045200 -vt 0.344435 0.000000 -vt 0.373580 0.016886 -vt 0.725867 0.079902 -vt 0.675627 0.087700 -vt 0.684337 0.000000 -vt 0.854622 0.785956 -vt 0.825547 0.800544 -vt 0.825547 0.727603 -vt 0.175817 0.371690 -vt 0.128677 0.390788 -vt 0.117211 0.303408 -vt 0.029076 0.836617 -vt 0.000000 0.851205 -vt 0.000000 0.778263 -vt 0.058606 0.546041 -vt 0.011466 0.565140 -vt 0.000000 0.477760 -vt 0.608347 0.406956 -vt 0.798572 0.443891 -vt 0.827648 0.429303 -vt 0.827648 0.502245 -vt 0.482873 0.338010 -vt 0.450138 0.254951 -vt 0.734577 0.152004 -vt 0.245396 0.751999 -vt 0.274471 0.737410 -vt 0.274471 0.810352 -vt 0.296083 0.299495 -vt 0.263348 0.216436 -vt 0.146287 0.838405 -vt 0.117211 0.852994 -vt 0.117211 0.780052 -vt 0.608347 0.342651 -vt 0.667297 0.406956 -vt 0.167899 0.299495 -vt 0.135164 0.216436 -vt 0.647427 0.727603 -vt 0.676503 0.713014 -vt 0.676503 0.785956 -vt 0.587621 0.713440 -vt 0.611615 0.691432 -vt 0.611615 0.779823 -vt 0.233968 0.836617 -vt 0.204893 0.851205 -vt 0.204893 0.778263 -vt 0.199811 0.675284 -vt 0.223804 0.653275 -vt 0.223804 0.741666 -vt 0.854622 0.961016 -vt 0.825547 0.975604 -vt 0.825547 0.902663 -vt 0.695415 0.691005 -vt 0.671421 0.713014 -vt 0.671421 0.624623 -vt 0.667297 0.342652 -vt 0.717537 0.334853 -vt 0.726247 0.406956 -vt 0.914530 0.269539 -vt 0.943606 0.254951 -vt 0.943606 0.327893 -vt 0.023994 0.741666 -vt 0.000000 0.763675 -vt 0.000000 0.675284 -vt 0.676007 0.254951 -vt 0.726247 0.262750 -vt 0.487941 0.693835 -vt 0.463948 0.715844 -vt 0.463948 0.627453 -vt 0.058151 0.836617 -vt 0.029076 0.851205 -vt 0.029076 0.778263 -vt 0.234423 0.546041 -vt 0.187283 0.565140 -vt 0.175817 0.477759 -vt 0.557727 0.155253 -vt 0.510587 0.174352 -vt 0.499121 0.086971 -vt 0.469030 0.963845 -vt 0.439954 0.978434 -vt 0.439954 0.905492 -vt 0.254106 0.564099 -vt 0.304346 0.571898 -vt 0.295635 0.644001 -vt 0.714326 0.727603 -vt 0.743402 0.713014 -vt 0.743402 0.785956 -vt 0.750585 0.517694 -vt 0.726592 0.539703 -vt 0.726592 0.451312 -vt 0.303547 0.810352 -vt 0.274471 0.824940 -vt 0.274471 0.751999 -vt 0.676503 0.727603 -vt 0.705579 0.713014 -vt 0.705579 0.785956 -vt 0.313056 0.390788 -vt 0.363296 0.398587 -vt 0.354585 0.470690 -vt 0.791389 0.617203 -vt 0.820465 0.602614 -vt 0.820464 0.675556 -vt 0.469030 0.788786 -vt 0.439954 0.803374 -vt 0.439954 0.730432 -vt 0.305887 0.576859 -vt 0.355109 0.564099 -vt 0.355109 0.652234 -vt 1.000000 0.961016 -vt 0.970924 0.975604 -vt 0.970924 0.902663 -vt 0.328339 0.674243 -vt 0.352333 0.652234 -vt 0.352333 0.740625 -vt 0.423998 0.690749 -vt 0.373236 0.687988 -vt 0.374777 0.615374 -vt 0.957018 0.014588 -vt 0.986093 0.000000 -vt 0.986093 0.072942 -vt 0.226504 0.473847 -vt 0.193769 0.390788 -vt 0.549809 0.083058 -vt 0.517074 0.000000 -vt 0.519867 0.874773 -vt 0.490791 0.889362 -vt 0.490791 0.816420 -vt 0.245396 0.651800 -vt 0.304346 0.716104 -vt 0.676503 0.873486 -vt 0.647427 0.888074 -vt 0.647427 0.815133 -vt 0.743402 0.624623 -vt 0.767395 0.602614 -vt 0.767395 0.691005 -vt 0.869791 0.072942 -vt 0.840715 0.087530 -vt 0.840715 0.014588 -vt 0.883698 0.873486 -vt 0.854622 0.888074 -vt 0.854622 0.815133 -vt 0.304346 0.478489 -vt 0.363296 0.542793 -vt 0.058606 0.866113 -vt 0.087681 0.851525 -vt 0.087681 0.924466 -vt 0.640691 0.874773 -vt 0.611615 0.889362 -vt 0.611615 0.816420 -vt 0.050687 0.473847 -vt 0.017952 0.390788 -vt 0.548943 0.816420 -vt 0.578018 0.801832 -vt 0.578018 0.874773 -vt 0.401586 0.000000 -vt 0.440516 0.017026 -vt 0.424375 0.086341 -vt 0.245396 0.927058 -vt 0.274471 0.912470 -vt 0.274471 0.985412 -vt 0.109293 0.299495 -vt 0.058606 0.303408 -vt 0.076558 0.216436 -vt 0.616677 0.152004 -vt 0.579899 0.173311 -vt 0.557727 0.087700 -vt 0.117211 0.371690 -vt 0.070071 0.390788 -vt 0.994918 0.675556 -vt 0.965842 0.690144 -vt 0.965842 0.617202 -vt 0.167974 0.655064 -vt 0.117211 0.652303 -vt 0.118753 0.579689 -vt 0.912773 0.961016 -vt 0.883698 0.975604 -vt 0.883698 0.902663 -vt 0.047987 0.741666 -vt 0.023994 0.763675 -vt 0.023994 0.675284 -vt 1.000000 0.873486 -vt 0.970924 0.888074 -vt 0.970924 0.815133 -vt 0.856723 0.502245 -vt 0.827648 0.516833 -vt 0.827648 0.443891 -vt 0.381946 0.429303 -vt 0.432186 0.437102 -vt 0.423475 0.509205 -vt 0.578018 0.962303 -vt 0.548943 0.976892 -vt 0.548943 0.903950 -vt 0.782564 0.102118 -vt 0.811640 0.087530 -vt 0.811640 0.160472 -vt 0.362607 0.371690 -vt 0.315467 0.390788 -vt 0.304001 0.303408 -vt 0.116757 0.836936 -vt 0.087681 0.778583 -vt 0.421223 0.779140 -vt 0.397229 0.801149 -vt 0.397229 0.712758 -vt 0.303547 0.897882 -vt 0.274471 0.839528 -vt 0.402311 0.961621 -vt 0.373236 0.976209 -vt 0.373236 0.903267 -vt 0.106593 0.741986 -vt 0.082599 0.763995 -vt 0.082599 0.675604 -vt 0.849540 0.617202 -vt 0.878616 0.602614 -vt 0.878616 0.675556 -vt 0.373580 0.084254 -vt 0.423790 0.158969 -vt 0.714326 0.815133 -vt 0.743402 0.800544 -vt 0.743402 0.873486 -vt 0.117211 0.677073 -vt 0.141205 0.655064 -vt 0.141205 0.743455 -vt 0.175362 0.838405 -vt 0.146287 0.852994 -vt 0.146287 0.780052 -vt 0.869791 0.102118 -vt 0.898867 0.087530 -vt 0.898867 0.160472 -vt 0.373236 0.517003 -vt 0.432186 0.581307 -vt 0.898867 0.072942 -vt 0.869791 0.087530 -vt 0.869791 0.014588 -vt 0.912773 0.815133 -vt 0.941849 0.800544 -vt 0.941849 0.873486 -vt 0.354689 0.299495 -vt 0.321954 0.216436 -vt 0.943950 0.502245 -vt 0.914875 0.516833 -vt 0.914875 0.443891 -vt 0.397229 0.779140 -vt 0.373236 0.801149 -vt 0.373236 0.712758 -vt 0.820465 0.617203 -vt 0.849540 0.602614 -vt 0.849540 0.675556 -vt 0.458468 0.000000 -vt 0.499121 0.012321 -vt 0.491203 0.083058 -vt 0.719408 0.691005 -vt 0.695415 0.713014 -vt 0.695415 0.624623 -vt 0.798228 0.269539 -vt 0.827303 0.254951 -vt 0.827303 0.327893 -vt 0.970924 0.785956 -vt 0.941849 0.727603 -vt 0.970924 0.727603 -vt 1.000000 0.713014 -vt 1.000000 0.785956 -vt 0.587621 0.779823 -vt 0.563628 0.801832 -vt 0.563628 0.713441 -vt 0.323257 0.777223 -vt 0.352333 0.762634 -vt 0.352333 0.835576 -vt 0.827303 0.269539 -vt 0.856379 0.254951 -vt 0.856379 0.327893 -vt 0.167974 0.566929 -vt 0.117211 0.564168 -vt 0.118753 0.491554 -vt 0.146287 0.867582 -vt 0.175362 0.852994 -vt 0.175362 0.925935 -vt 0.274471 0.897882 -vt 0.245396 0.912470 -vt 0.245396 0.839528 -vt 0.001541 0.577900 -vt 0.050763 0.565140 -vt 0.050763 0.653275 -vt 0.854622 0.873486 -vt 0.825547 0.888074 -vt 0.825547 0.815133 -vt 0.774579 0.451312 -vt 0.798572 0.429303 -vt 0.798572 0.517694 -vt 0.927942 0.014588 -vt 0.957018 0.000000 -vt 0.957018 0.072942 -vt 0.440516 0.086971 -vt 0.499121 0.155253 -vt 0.743402 0.691005 -vt 0.719408 0.713014 -vt 0.719408 0.624623 -vt 0.883698 0.727603 -vt 0.912773 0.713014 -vt 0.912773 0.785956 -vt 0.607967 0.079902 -vt 0.566437 0.000000 -vt 0.177358 0.577900 -vt 0.226580 0.565140 -vt 0.226580 0.653275 -vt 0.402311 0.815737 -vt 0.431387 0.801149 -vt 0.431387 0.874091 -vt 0.796471 0.961016 -vt 0.767395 0.975604 -vt 0.767395 0.902663 -vt 0.854622 0.902663 -vt 0.883698 0.888074 -vt 0.883698 0.961016 -vt 0.373580 0.341922 -vt 0.424268 0.338010 -vt 0.432186 0.410204 -vt 0.204893 0.836617 -vt 0.175817 0.851205 -vt 0.175817 0.778263 -vt 0.391533 0.254951 -vt 0.432186 0.267273 -vt 0.986093 0.160472 -vt 0.957018 0.175060 -vt 0.957018 0.102118 -vt 0.578018 0.903950 -vt 0.607094 0.889362 -vt 0.607094 0.962303 -vt 0.304346 0.542793 -vt 0.267568 0.564099 -vt 0.245396 0.478489 -vt 0.705579 0.873486 -vt 0.676503 0.888074 -vt 0.676503 0.815133 -vt 0.750585 0.451312 -vt 0.774579 0.429303 -vt 0.774579 0.517694 -vt 0.274471 0.927058 -vt 0.303547 0.912470 -vt 0.303547 0.985412 -vt 0.508744 0.254951 -vt 0.549397 0.267273 -vt 0.541479 0.338010 -vt 0.304346 0.674243 -vt 0.328339 0.652234 -vt 0.328339 0.740625 -vt 0.825547 0.873486 -vt 0.796471 0.888074 -vt 0.796471 0.815133 -vt 0.667641 0.581308 -vt 0.630863 0.602614 -vt 0.608691 0.517003 -vt 0.675627 0.152004 -vt 0.638849 0.173311 -vt 0.616677 0.087700 -vt 0.973026 0.502245 -vt 0.943950 0.516833 -vt 0.943950 0.443891 -vt 0.374741 0.172381 -vt 0.440516 0.229634 -vt 0.767395 0.624623 -vt 0.791389 0.602614 -vt 0.791389 0.691005 -vt 0.519867 0.962303 -vt 0.490791 0.976892 -vt 0.490791 0.903950 -vt 0.726592 0.581308 -vt 0.689813 0.602614 -vt 0.667641 0.517003 -vt 0.941849 0.785956 -vt 0.912773 0.800544 -vt 0.912773 0.727603 -vt 0.295635 0.470690 -vt 0.254106 0.390788 -vt 0.431387 0.961621 -vt 0.402311 0.976209 -vt 0.402311 0.903267 -vt 0.750241 0.276960 -vt 0.774234 0.254951 -vt 0.774234 0.343342 -vt 0.883698 0.785956 -vt 0.854622 0.800544 -vt 0.854622 0.727603 -vt 0.490791 0.341922 -vt 0.549397 0.410204 -vt 0.750241 0.343342 -vt 0.726247 0.365351 -vt 0.726247 0.276960 -vt 0.883698 0.815133 -vt 0.912773 0.873486 -vt 0.658931 0.509205 -vt 0.617402 0.429303 -vt 0.666917 0.079902 -vt 0.625387 0.000000 -vt 0.941849 0.902663 -vt 0.970924 0.961016 -vt 0.490717 0.605444 -vt 0.439954 0.602683 -vt 0.441496 0.530069 -vt 0.907691 0.675556 -vt 0.878616 0.690144 -vt 0.878616 0.617202 -vt 0.514785 0.713441 -vt 0.538778 0.691432 -vt 0.538778 0.779823 -vt 0.373236 0.815737 -vt 0.402311 0.801149 -vt 0.402311 0.874091 -vt 0.175817 0.675284 -vt 0.199811 0.653275 -vt 0.199811 0.741666 -vt 0.058606 0.477759 -vt 0.109293 0.473847 -vt 0.117211 0.546041 -vt 0.936767 0.675556 -vt 0.907691 0.690144 -vt 0.907691 0.617202 -vt 0.539634 0.713441 -vt 0.563628 0.691432 -vt 0.563628 0.779823 -vt 0.352333 0.923106 -vt 0.323257 0.937694 -vt 0.323257 0.864753 -vt 0.076558 0.390788 -vt 0.117211 0.403110 -vt 0.734577 0.022009 -vt 0.758571 0.000000 -vt 0.758571 0.088391 -vt 0.204893 0.924147 -vt 0.175817 0.938735 -vt 0.175817 0.865793 -vt 0.608691 0.581308 -vt 0.571913 0.602614 -vt 0.549741 0.517003 -vt 0.549741 0.581308 -vt 0.512963 0.602614 -vt 0.490791 0.517003 -vt 0.000000 0.865793 -vt 0.029076 0.924147 -vt 0.017952 0.216436 -vt 0.058606 0.228758 -vt 0.050688 0.299495 -vt 0.914530 0.327893 -vt 0.885455 0.342481 -vt 0.885455 0.269540 -vt 0.082599 0.741986 -vt 0.058606 0.763995 -vt 0.058606 0.675604 -vt 0.970924 0.873486 -vt 0.941849 0.888074 -vt 0.941849 0.815133 -vt 0.957018 0.160472 -vt 0.927942 0.175060 -vt 0.927942 0.102118 -vt 0.204742 0.216436 -vt 0.245396 0.228758 -vt 0.237478 0.299495 -vt 0.914875 0.502245 -vt 0.885799 0.516833 -vt 0.885799 0.443891 -vt 0.116757 0.924466 -vt 0.087681 0.939055 -vt 0.087681 0.866113 -vt 0.758571 0.198791 -vt 0.734577 0.220801 -vt 0.734577 0.132409 -vt 0.647427 0.691432 -vt 0.605129 0.687641 -vt 0.598584 0.616762 -vt 0.607094 0.874773 -vt 0.578018 0.889362 -vt 0.578018 0.816420 -vt 0.840716 0.102118 -vt 0.869791 0.160472 -vt 0.599981 0.509205 -vt 0.558452 0.429303 -vt 0.541031 0.509205 -vt 0.499502 0.429303 -vt 0.204893 0.865793 -vt 0.233968 0.851205 -vt 0.233968 0.924147 -vt 0.000000 0.303408 -vt 0.058606 0.371690 -vt 0.972681 0.327893 -vt 0.943606 0.342481 -vt 0.943606 0.269539 -vt 0.165198 0.743455 -vt 0.141205 0.765464 -vt 0.141205 0.677073 -vt 0.705579 0.961016 -vt 0.676503 0.975604 -vt 0.676503 0.902663 -vt 0.856723 0.443891 -vt 0.885799 0.429303 -vt 0.885799 0.502245 -vt 0.186790 0.303408 -vt 0.245396 0.371689 -vt 0.796471 0.873486 -vt 0.767395 0.888074 -vt 0.767395 0.815133 -vt 0.825547 0.961016 -vt 0.796471 0.975604 -vt 0.796471 0.902662 -vt 0.717881 0.509205 -vt 0.676352 0.429303 -vt 0.676503 0.961016 -vt 0.647427 0.975604 -vt 0.647427 0.902663 -vt 0.052012 0.091333 -vt 0.052012 0.125104 -vt 0.000000 0.125104 -vt 0.160784 0.062086 -vt 0.131639 0.171236 -vt 0.157645 0.000000 -vt 0.186790 0.016886 -vt 0.160784 0.154351 -vt 0.186790 0.199551 -vt 0.157645 0.216436 -vt 0.119588 0.406202 -vt 0.159179 0.390788 -vt 0.168049 0.478794 -vt 0.068249 0.576479 -vt 0.109185 0.565140 -vt 0.109185 0.653595 -vt 0.519867 0.816420 -vt 0.548943 0.801832 -vt 0.548943 0.874773 -vt 0.598584 0.691432 -vt 0.556286 0.687641 -vt 0.549741 0.616762 -vt 0.927942 0.160472 -vt 0.898867 0.175060 -vt 0.898867 0.102118 -vt 0.774234 0.276960 -vt 0.798228 0.254951 -vt 0.798228 0.343342 -vt 0.912773 0.902663 -vt 0.941849 0.961016 -vt 0.965842 0.675556 -vt 0.936767 0.690144 -vt 0.936767 0.617202 -vt 0.539634 0.691432 -vt 0.497336 0.687641 -vt 0.490791 0.616762 -vt 0.469030 0.876316 -vt 0.439954 0.890904 -vt 0.439954 0.817962 -vt 0.519867 0.903950 -vt 0.548943 0.889362 -vt 0.548942 0.962303 -vt 0.442331 0.444717 -vt 0.481922 0.429303 -vt 0.490791 0.517309 -vt 0.898867 0.014588 -vt 0.927942 0.000000 -vt 0.927942 0.072942 -vt 0.514785 0.779823 -vt 0.490791 0.801832 -vt 0.490791 0.713441 -vt 0.734654 0.888074 -vt 0.255629 0.154351 -vt 0.238802 0.125104 -vt 0.284775 0.045200 -vt 0.347574 0.062086 -vt 0.364401 0.125104 -vt 0.347574 0.154350 -vt 0.647427 0.713014 -vt 0.885455 0.254951 -vt 0.734654 0.975604 -vt 0.796471 0.800544 -vt 0.758571 0.220800 -vt 0.439954 0.715844 -vt 0.087681 0.763995 -vt 0.640691 0.889362 -vt 0.811640 0.000000 -vt 0.796471 0.713014 -vt 0.029076 0.938735 -vt 0.782564 0.000000 -vt 0.608347 0.262750 -vt 0.734577 0.007799 -vt 0.854622 0.713014 -vt 0.029076 0.763675 -vt 0.571569 0.428262 -vt 0.798572 0.516833 -vt 0.490791 0.267273 -vt 0.697799 0.173311 -vt 0.245396 0.824940 -vt 0.304001 0.228758 -vt 0.146287 0.765464 -vt 0.630519 0.428262 -vt 0.175817 0.228758 -vt 0.647427 0.800544 -vt 0.587621 0.801832 -vt 0.233968 0.763675 -vt 0.199811 0.763675 -vt 0.695415 0.602614 -vt 0.689469 0.428262 -vt 0.914530 0.342481 -vt 0.023994 0.653275 -vt 0.487941 0.605444 -vt 0.058151 0.763675 -vt 0.469030 0.890904 -vt 0.714326 0.800544 -vt 0.750585 0.429303 -vt 0.303547 0.737410 -vt 0.676503 0.800544 -vt 0.791389 0.690144 -vt 0.469030 0.715844 -vt 0.304346 0.649474 -vt 1.000000 0.888074 -vt 0.328339 0.762634 -vt 0.423998 0.602614 -vt 0.957018 0.087530 -vt 0.234423 0.403110 -vt 0.557727 0.012321 -vt 0.519867 0.801832 -vt 0.267568 0.737410 -vt 0.869791 0.000000 -vt 0.883698 0.800544 -vt 0.326518 0.564099 -vt 0.058606 0.939055 -vt 0.640691 0.801832 -vt 0.058606 0.403110 -vt 0.245396 1.000000 -vt 0.117211 0.228758 -vt 0.994918 0.602614 -vt 0.912773 0.888074 -vt 0.047987 0.653275 -vt 1.000000 0.800544 -vt 0.856723 0.429303 -vt 0.782564 0.175060 -vt 0.116757 0.763995 -vt 0.421223 0.690749 -vt 0.303547 0.824940 -vt 0.402311 0.888679 -vt 0.106593 0.653595 -vt 0.849540 0.690144 -vt 0.714326 0.888074 -vt 0.117211 0.765464 -vt 0.175362 0.765464 -vt 0.869791 0.175060 -vt 0.395408 0.602614 -vt 0.898867 0.000000 -vt 0.362607 0.228758 -vt 0.943950 0.429303 -vt 0.397229 0.690749 -vt 0.820465 0.690144 -vt 0.719408 0.602614 -vt 0.798228 0.342481 -vt 0.970924 0.713014 -vt 0.970924 0.800544 -vt 0.587621 0.691432 -vt 0.323257 0.850164 -vt 0.827303 0.342481 -vt 0.146287 0.940524 -vt 0.000000 0.650514 -vt 0.774579 0.539703 -vt 0.927942 0.087530 -vt 0.451981 0.174352 -vt 0.743402 0.602614 -vt 0.616677 0.007799 -vt 0.175817 0.650514 -vt 0.854622 0.975604 -vt 0.385046 0.429303 -vt 0.204893 0.763675 -vt 0.986093 0.087530 -vt 0.578018 0.976892 -vt 0.705579 0.800544 -vt 0.750585 0.539703 -vt 0.274471 1.000000 -vt 0.304346 0.762634 -vt 0.973026 0.429303 -vt 0.406355 0.254951 -vt 0.767395 0.713014 -vt 0.519867 0.889362 -vt 0.941849 0.713014 -vt 0.304346 0.398587 -vt 0.431387 0.888679 -vt 0.750241 0.365351 -vt 0.883698 0.713014 -vt 0.502257 0.429303 -vt 0.750241 0.254951 -vt 0.667641 0.437102 -vt 0.675627 0.007799 -vt 0.941849 0.975604 -vt 0.490717 0.517309 -vt 0.907691 0.602614 -vt 0.514785 0.801832 -vt 0.373236 0.888679 -vt 0.175817 0.763675 -vt 0.070071 0.565140 -vt 0.936767 0.602614 -vt 0.539634 0.801832 -vt 0.352333 0.850164 -vt 0.734577 0.110400 -vt 0.000000 0.938735 -vt 0.914530 0.254951 -vt 0.082599 0.653595 -vt 0.914875 0.429303 -vt 0.116757 0.851525 -vt 0.647427 0.602614 -vt 0.607094 0.801832 -vt 0.840715 0.175060 -vt 0.608691 0.437102 -vt 0.549741 0.437102 -vt 0.204893 0.938735 -vt 0.011466 0.390788 -vt 0.972681 0.254951 -vt 0.165198 0.655064 -vt 0.705579 0.888074 -vt 0.856723 0.516833 -vt 0.198256 0.390788 -vt 0.726592 0.437102 -vt 0.000000 0.091333 -vt 0.068839 0.062086 -vt 0.097984 0.045200 -vt 0.131639 0.045200 -vt 0.177611 0.091333 -vt 0.177611 0.125104 -vt 0.097985 0.171236 -vt 0.068839 0.154351 -vt 0.117211 0.478794 -vt 0.058606 0.648462 -vt 0.598584 0.602614 -vt 0.774234 0.365351 -vt 0.912773 0.975604 -vt 0.965842 0.602614 -vt 0.539634 0.602614 -vt 0.469030 0.803374 -vt 0.519867 0.976892 -vt 0.439954 0.517309 -vt 0.514785 0.691432 -vn 0.707100 0.000000 0.707100 -vn 0.000000 1.000000 0.000000 -vn -0.703100 -0.106600 -0.703100 -vn 0.965900 -0.000000 -0.258800 -vn 0.258800 -0.000000 0.965900 -vn -0.258800 -0.000000 0.965900 -vn 0.257300 -0.106600 0.960400 -vn 0.258800 0.000000 -0.965900 -vn -0.257300 -0.106600 -0.960400 -vn -0.965900 0.000000 0.258800 -vn 0.707100 0.000000 -0.707100 -vn -0.736600 0.646900 0.197400 -vn -0.965900 0.000000 -0.258800 -vn 0.857800 -0.459700 -0.229900 -vn -0.707100 0.000000 -0.707100 -vn 0.960400 -0.106600 0.257300 -vn 0.197400 -0.646900 0.736600 -vn 0.197400 0.646900 -0.736600 -vn -0.703100 -0.106600 0.703100 -vn -0.736600 -0.646900 -0.197400 -vn 0.965900 -0.000000 0.258800 -vn 0.539200 0.646900 0.539200 -vn -0.539200 0.646900 -0.539200 -vn 0.229900 -0.459700 0.857800 -vn -0.539200 0.646900 0.539200 -vn -0.857800 -0.459700 -0.229900 -vn -0.197400 0.646900 -0.736600 -vn -0.258800 -0.000000 -0.965900 -vn 0.628000 -0.459700 -0.628000 -vn 0.736600 0.646900 0.197400 -vn -0.707100 0.000000 0.707100 -vn 0.960400 -0.106600 -0.257300 -vn -0.257300 -0.106600 0.960400 -vn -0.960400 -0.106600 0.257300 -vn -0.628000 -0.459700 0.628000 -vn 0.703100 -0.106600 0.703100 -vn -0.857800 -0.459700 0.229900 -vn -0.960400 -0.106600 -0.257300 -vn 0.736600 0.646900 -0.197400 -vn -0.197400 0.646900 0.736600 -vn 0.229800 -0.459700 -0.857800 -vn 0.703100 -0.106600 -0.703100 -vn 0.628000 -0.459700 0.628000 -vn -0.229800 -0.459700 0.857800 -vn 0.539200 0.646900 -0.539200 -vn 0.197400 0.646900 0.736600 -vn -0.229900 -0.459700 -0.857800 -vn 0.257300 -0.106600 -0.960400 -vn 0.857800 -0.459700 0.229900 -vn -0.736600 0.646900 -0.197400 -vn -0.857800 -0.459700 -0.229800 -vn -0.628000 -0.459700 -0.628000 -vn 0.857800 -0.459700 0.229800 -vn 0.000000 -1.000000 0.000000 -vn -0.960400 0.106600 -0.257300 -vn 0.703100 0.106600 0.703100 -vn -0.703100 0.106600 -0.703100 -vn -0.628000 0.459700 0.628000 -vn 0.539200 -0.646900 -0.539200 -vn 0.960400 0.106600 -0.257300 -vn -0.229900 -0.459700 0.857800 -vn -0.229900 0.459700 -0.857800 -vn -0.257300 0.106600 0.960400 -vn 0.857800 0.459700 0.229800 -vn -0.857800 0.459700 -0.229800 -vn 0.539200 -0.646900 0.539200 -vn -0.229900 0.459700 0.857800 -vn -0.736600 -0.646900 0.197400 -vn -0.628000 0.459700 -0.628000 -vn 0.197400 -0.646900 -0.736600 -vn 0.857800 0.459700 -0.229900 -vn 0.703100 0.106600 -0.703100 -vn 0.257300 0.106600 0.960400 -vn -0.703100 0.106600 0.703100 -vn -0.197400 -0.646900 0.736600 -vn 0.960400 0.106600 0.257300 -vn -0.539200 -0.646900 0.539200 -vn -0.960400 0.106600 0.257300 -vn 0.628000 0.459700 -0.628000 -vn 0.229900 0.459700 0.857800 -vn -0.197400 -0.646900 -0.736600 -vn 0.257300 0.106600 -0.960400 -vn 0.736600 -0.646900 0.197400 -vn 0.229800 0.459700 -0.857800 -vn 0.628000 0.459700 0.628000 -vn -0.539200 -0.646900 -0.539200 -vn -0.257300 0.106600 -0.960400 -vn 0.736600 -0.646900 -0.197400 -vn -0.857800 0.459700 0.229900 -vn -0.229800 0.459700 0.857800 -s off -f 20/1/1 21/2/1 43/3/1 -f 11/4/2 7/5/2 3/6/2 -f 15/7/2 16/8/2 12/9/2 -f 28/10/3 27/11/3 49/12/3 -f 41/13/4 42/14/4 60/15/4 -f 5/16/1 6/17/1 20/18/1 -f 6/19/5 7/20/5 21/21/5 -f 7/22/6 8/23/6 22/24/6 -f 53/25/7 54/26/7 72/27/7 -f 2/28/8 1/29/8 14/30/8 -f 16/31/9 15/32/9 27/33/9 -f 9/34/10 10/35/10 24/36/10 -f 1/37/11 3/38/11 17/39/11 -f 12/40/12 16/41/12 28/42/12 -f 10/43/13 11/44/13 25/45/13 -f 3/46/4 4/47/4 18/48/4 -f 15/49/14 2/50/14 13/51/14 -f 11/52/15 12/53/15 26/54/15 -f 29/55/16 30/56/16 31/57/16 -f 30/58/2 29/59/2 4/60/2 -f 19/61/17 31/62/17 30/63/17 -f 17/64/11 18/65/11 37/66/11 -f 4/67/18 29/68/18 32/69/18 -f 33/70/19 34/71/19 35/72/19 -f 9/73/2 34/74/2 33/75/2 -f 23/76/20 35/77/20 34/78/20 -f 19/79/21 20/80/21 42/81/21 -f 8/82/22 33/83/22 36/84/22 -f 47/85/10 48/86/10 66/87/10 -f 37/88/23 51/89/23 69/90/23 -f 31/62/24 19/61/24 41/91/24 -f 14/92/8 17/93/8 38/94/8 -f 26/95/25 28/42/25 50/96/25 -f 35/77/26 23/76/26 45/97/26 -f 21/98/5 22/99/5 44/100/5 -f 18/101/27 32/69/27 51/102/27 -f 13/103/28 14/104/28 39/105/28 -f 27/106/29 13/51/29 40/107/29 -f 22/108/30 36/84/30 53/109/30 -f 23/110/31 24/111/31 46/112/31 -f 32/113/32 31/114/32 52/115/32 -f 24/116/10 25/117/10 47/118/10 -f 36/119/33 35/120/33 54/121/33 -f 25/122/13 26/123/13 48/124/13 -f 68/125/34 67/126/34 85/127/34 -f 72/128/35 63/129/35 81/130/35 -f 59/131/11 60/132/11 78/133/11 -f 71/134/36 72/135/36 90/136/36 -f 54/137/37 45/138/37 63/129/37 -f 50/139/38 49/140/38 67/141/38 -f 42/142/21 43/143/21 61/144/21 -f 44/145/39 53/146/39 71/147/39 -f 48/148/40 50/149/40 68/150/40 -f 43/151/1 44/152/1 62/153/1 -f 49/154/41 40/155/41 58/156/41 -f 38/157/8 37/158/8 55/159/8 -f 51/160/42 52/161/42 70/162/42 -f 45/163/6 46/164/6 64/165/6 -f 39/166/28 38/167/28 56/168/28 -f 52/169/43 41/170/43 59/171/43 -f 46/172/31 47/173/31 65/174/31 -f 40/175/15 39/176/15 57/177/15 -f 80/178/18 89/179/18 107/180/18 -f 78/181/11 79/182/11 97/183/11 -f 86/184/19 85/185/19 103/186/19 -f 90/187/44 81/188/44 99/189/44 -f 60/190/4 61/191/4 79/192/4 -f 62/193/45 71/147/45 89/194/45 -f 66/195/46 68/150/46 86/196/46 -f 61/197/21 62/198/21 80/199/21 -f 67/200/47 58/156/47 76/201/47 -f 56/202/28 55/203/28 73/204/28 -f 69/205/48 70/206/48 88/207/48 -f 63/208/5 64/209/5 82/210/5 -f 57/211/15 56/212/15 74/213/15 -f 70/214/49 59/171/49 77/215/49 -f 64/216/6 65/217/6 83/218/6 -f 58/219/13 57/220/13 75/221/13 -f 55/222/50 69/90/50 87/223/50 -f 65/224/31 66/225/31 84/226/31 -f 103/227/51 94/228/51 112/229/51 -f 97/230/11 98/231/11 116/232/11 -f 102/233/30 104/234/30 122/235/30 -f 98/236/27 107/237/27 125/238/27 -f 84/239/22 86/240/22 104/234/22 -f 79/241/4 80/242/4 98/243/4 -f 85/244/52 76/245/52 94/246/52 -f 74/247/15 73/248/15 91/249/15 -f 87/250/9 88/251/9 106/252/9 -f 81/253/1 82/254/1 100/255/1 -f 75/256/13 74/257/13 92/258/13 -f 88/259/14 77/260/14 95/261/14 -f 82/262/5 83/263/5 101/264/5 -f 76/265/10 75/266/10 93/267/10 -f 73/268/12 87/269/12 105/270/12 -f 83/271/6 84/217/6 102/272/6 -f 89/273/16 90/274/16 108/275/16 -f 77/276/8 78/231/8 96/277/8 -f 117/278/4 118/279/4 136/280/4 -f 123/281/38 124/282/38 142/283/38 -f 110/284/10 109/285/10 127/286/10 -f 121/287/37 112/229/37 130/288/37 -f 92/289/13 91/290/13 109/291/13 -f 105/292/3 106/293/3 124/294/3 -f 99/295/21 100/296/21 118/297/21 -f 93/298/10 92/299/10 110/300/10 -f 106/301/29 95/261/29 113/302/29 -f 100/303/1 101/304/1 119/305/1 -f 94/306/31 93/307/31 111/308/31 -f 91/309/25 105/270/25 123/310/25 -f 101/311/5 102/312/5 120/313/5 -f 107/314/32 108/315/32 126/316/32 -f 95/317/28 96/318/28 114/319/28 -f 108/320/24 99/321/24 117/322/24 -f 104/323/33 103/324/33 121/325/33 -f 96/326/8 97/327/8 115/328/8 -f 129/329/6 128/307/6 146/330/6 -f 135/331/11 136/332/11 154/333/11 -f 141/334/34 142/335/34 160/336/34 -f 128/337/31 127/338/31 145/339/31 -f 111/340/31 110/341/31 128/342/31 -f 124/343/41 113/344/41 131/345/41 -f 118/346/21 119/347/21 137/348/21 -f 112/349/6 111/350/6 129/351/6 -f 109/352/40 123/353/40 141/354/40 -f 119/355/1 120/356/1 138/357/1 -f 125/358/42 126/359/42 144/360/42 -f 113/361/15 114/362/15 132/363/15 -f 126/364/43 117/322/43 135/365/43 -f 122/366/7 121/367/7 139/368/7 -f 114/369/28 115/370/28 133/371/28 -f 116/372/23 125/238/23 143/373/23 -f 120/374/39 122/375/39 140/376/39 -f 115/377/8 116/378/8 134/379/8 -f 148/380/1 147/381/1 165/382/1 -f 154/383/11 155/384/11 173/385/11 -f 160/386/52 149/387/52 167/388/52 -f 147/389/5 146/390/5 164/391/5 -f 142/392/47 131/393/47 149/387/47 -f 136/394/4 137/395/4 155/396/4 -f 130/397/5 129/398/5 147/399/5 -f 127/400/46 141/401/46 159/402/46 -f 137/403/21 138/404/21 156/405/21 -f 143/406/48 144/407/48 162/408/48 -f 131/409/13 132/410/13 150/411/13 -f 144/412/53 135/413/53 153/414/53 -f 140/415/36 139/416/36 157/417/36 -f 132/418/15 133/419/15 151/420/15 -f 134/421/50 143/422/50 161/423/50 -f 138/424/45 140/425/45 158/426/45 -f 133/427/28 134/428/28 152/429/28 -f 139/430/35 130/288/35 148/431/35 -f 179/432/3 180/433/3 198/434/3 -f 173/435/11 174/436/11 192/437/11 -f 163/438/30 177/439/30 195/440/30 -f 166/441/21 165/442/21 183/443/21 -f 145/444/22 159/402/22 177/445/22 -f 155/446/4 156/447/4 174/448/4 -f 161/449/9 162/450/9 180/451/9 -f 149/452/10 150/453/10 168/454/10 -f 162/455/14 153/414/14 171/456/14 -f 158/457/16 157/458/16 175/459/16 -f 150/460/13 151/442/13 169/461/13 -f 152/462/12 161/423/12 179/463/12 -f 156/464/18 158/426/18 176/465/18 -f 151/466/15 152/254/15 170/467/15 -f 157/468/44 148/469/44 166/470/44 -f 146/471/6 145/472/6 163/473/6 -f 159/474/19 160/475/19 178/476/19 -f 153/477/8 154/478/8 172/479/8 -f 194/480/42 193/481/42 211/482/42 -f 198/483/41 189/484/41 207/485/41 -f 185/486/6 186/487/6 204/488/6 -f 197/489/38 198/490/38 216/491/38 -f 167/492/31 168/493/31 186/494/31 -f 180/495/29 171/496/29 189/484/29 -f 176/497/32 175/498/32 193/499/32 -f 168/500/10 169/501/10 187/502/10 -f 170/503/25 179/504/25 197/505/25 -f 174/506/27 176/507/27 194/508/27 -f 169/509/13 170/143/13 188/510/13 -f 175/511/24 166/512/24 184/513/24 -f 164/514/5 163/515/5 181/516/5 -f 177/517/33 178/518/33 196/519/33 -f 171/520/28 172/521/28 190/522/28 -f 165/523/1 164/524/1 182/525/1 -f 178/526/51 167/527/51 185/528/51 -f 172/529/8 173/530/8 191/531/8 -f 204/532/6 205/533/6 223/534/6 -f 212/535/48 211/536/48 229/537/48 -f 216/538/47 207/539/47 225/540/47 -f 203/541/5 204/542/5 222/543/5 -f 186/544/31 187/304/31 205/545/31 -f 188/546/40 197/505/40 215/547/40 -f 192/548/23 194/508/23 212/549/23 -f 187/550/10 188/551/10 206/552/10 -f 193/553/43 184/513/43 202/554/43 -f 182/555/1 181/556/1 199/557/1 -f 195/558/7 196/559/7 214/560/7 -f 189/561/15 190/562/15 208/563/15 -f 183/564/21 182/565/21 200/566/21 -f 196/567/37 185/528/37 203/568/37 -f 190/569/28 191/570/28 209/571/28 -f 184/572/4 183/573/4 201/574/4 -f 181/575/39 195/440/39 213/576/39 -f 191/577/8 192/578/8 210/579/8 -f 220/580/54 228/581/54 230/582/54 -f 221/583/54 225/584/54 220/580/54 -f 231/585/54 232/586/54 221/583/54 -f 224/587/54 233/588/54 234/589/54 -f 206/590/46 215/591/46 233/592/46 -f 210/593/50 212/594/50 230/595/50 -f 205/596/31 206/597/31 224/598/31 -f 211/599/53 202/600/53 220/601/53 -f 200/602/21 199/603/21 217/604/21 -f 213/605/36 214/606/36 232/607/36 -f 207/608/13 208/521/13 226/609/13 -f 201/610/4 200/611/4 218/612/4 -f 214/613/35 203/614/35 221/615/35 -f 208/616/15 209/617/15 227/618/15 -f 202/619/11 201/620/11 219/621/11 -f 199/622/45 213/623/45 231/624/45 -f 209/625/28 210/626/28 228/627/28 -f 215/628/34 216/629/34 234/630/34 -f 42/631/21 20/1/21 43/3/21 -f 3/6/2 1/632/2 2/633/2 -f 2/633/2 12/9/2 3/6/2 -f 11/4/2 10/634/2 9/73/2 -f 9/73/2 8/635/2 7/5/2 -f 7/5/2 6/636/2 5/637/2 -f 5/637/2 4/60/2 7/5/2 -f 3/6/2 12/9/2 11/4/2 -f 11/4/2 9/73/2 7/5/2 -f 7/5/2 4/60/2 3/6/2 -f 2/633/2 15/7/2 12/9/2 -f 50/638/55 28/10/55 49/12/55 -f 59/639/11 41/13/11 60/15/11 -f 19/640/21 5/16/21 20/18/21 -f 20/209/1 6/19/1 21/21/1 -f 21/641/5 7/22/5 22/24/5 -f 71/642/56 53/25/56 72/27/56 -f 13/296/28 2/28/28 14/30/28 -f 28/643/57 16/31/57 27/33/57 -f 23/644/31 9/34/31 24/36/31 -f 14/645/8 1/37/8 17/39/8 -f 26/95/58 12/40/58 28/42/58 -f 24/646/10 10/43/10 25/45/10 -f 17/647/11 3/46/11 18/48/11 -f 27/106/59 15/49/59 13/51/59 -f 25/648/13 11/52/13 26/54/13 -f 32/649/60 29/55/60 31/57/60 -f 5/637/2 30/58/2 4/60/2 -f 5/650/61 19/61/61 30/63/61 -f 38/266/8 17/64/8 37/66/8 -f 18/101/62 4/67/62 32/69/62 -f 36/538/63 33/70/63 35/72/63 -f 8/635/2 9/73/2 33/75/2 -f 9/651/52 23/76/52 34/78/52 -f 41/652/4 19/79/4 42/81/4 -f 22/108/64 8/82/64 36/84/64 -f 65/653/31 47/85/31 66/87/31 -f 55/222/65 37/88/65 69/90/65 -f 52/654/66 31/62/66 41/91/66 -f 39/655/28 14/92/28 38/94/28 -f 48/656/67 26/95/67 50/96/67 -f 54/657/68 35/77/68 45/97/68 -f 43/658/1 21/98/1 44/100/1 -f 37/659/69 18/101/69 51/102/69 -f 40/660/15 13/103/15 39/105/15 -f 49/661/70 27/106/70 40/107/70 -f 44/662/71 22/108/71 53/109/71 -f 45/663/6 23/110/6 46/112/6 -f 51/664/72 32/113/72 52/115/72 -f 46/665/31 24/116/31 47/118/31 -f 53/666/73 36/119/73 54/121/73 -f 47/212/10 25/122/10 48/124/10 -f 86/667/74 68/125/74 85/127/74 -f 90/668/75 72/128/75 81/130/75 -f 77/669/8 59/131/8 78/133/8 -f 89/670/76 71/134/76 90/136/76 -f 72/128/77 54/137/77 63/129/77 -f 68/671/78 50/139/78 67/141/78 -f 60/672/4 42/142/4 61/144/4 -f 62/193/79 44/145/79 71/147/79 -f 66/195/80 48/148/80 68/150/80 -f 61/673/21 43/151/21 62/153/21 -f 67/200/81 49/154/81 58/156/81 -f 56/674/28 38/157/28 55/159/28 -f 69/675/82 51/160/82 70/162/82 -f 63/676/5 45/163/5 64/165/5 -f 57/677/15 39/166/15 56/168/15 -f 70/214/83 52/169/83 59/171/83 -f 64/678/6 46/172/6 65/174/6 -f 58/679/13 40/175/13 57/177/13 -f 98/680/62 80/178/62 107/180/62 -f 96/681/8 78/181/8 97/183/8 -f 104/682/63 86/184/63 103/186/63 -f 108/683/17 90/187/17 99/189/17 -f 78/684/11 60/190/11 79/192/11 -f 80/685/84 62/193/84 89/194/84 -f 84/686/85 66/195/85 86/196/85 -f 79/687/4 61/197/4 80/199/4 -f 85/688/86 67/200/86 76/201/86 -f 74/677/15 56/202/15 73/204/15 -f 87/158/87 69/205/87 88/207/87 -f 81/689/1 63/208/1 82/210/1 -f 75/690/13 57/211/13 74/213/13 -f 88/691/88 70/214/88 77/215/88 -f 82/692/5 64/216/5 83/218/5 -f 76/693/10 58/219/10 75/221/10 -f 73/694/89 55/222/89 87/223/89 -f 83/620/6 65/224/6 84/226/6 -f 121/287/68 103/227/68 112/229/68 -f 115/695/8 97/230/8 116/232/8 -f 120/696/71 102/233/71 122/235/71 -f 116/372/69 98/236/69 125/238/69 -f 102/233/64 84/239/64 104/234/64 -f 97/697/11 79/241/11 98/243/11 -f 103/343/20 85/244/20 94/246/20 -f 92/698/13 74/247/13 91/249/13 -f 105/699/57 87/250/57 106/252/57 -f 99/700/21 81/253/21 100/255/21 -f 93/701/10 75/256/10 92/258/10 -f 106/301/59 88/259/59 95/261/59 -f 100/542/1 82/262/1 101/264/1 -f 94/702/31 76/265/31 93/267/31 -f 91/309/58 73/268/58 105/270/58 -f 101/703/5 83/271/5 102/272/5 -f 107/704/60 89/273/60 108/275/60 -f 95/705/28 77/276/28 96/277/28 -f 135/706/11 117/278/11 136/280/11 -f 141/707/78 123/281/78 142/283/78 -f 128/708/31 110/284/31 127/286/31 -f 139/430/77 121/287/77 130/288/77 -f 110/709/10 92/289/10 109/291/10 -f 123/710/55 105/292/55 124/294/55 -f 117/711/4 99/295/4 118/297/4 -f 111/712/31 93/298/31 110/300/31 -f 124/713/70 106/301/70 113/302/70 -f 118/714/21 100/303/21 119/305/21 -f 112/698/6 94/306/6 111/308/6 -f 109/715/90 91/309/90 123/310/90 -f 119/716/1 101/311/1 120/313/1 -f 125/717/72 107/314/72 126/316/72 -f 113/718/15 95/317/15 114/319/15 -f 126/364/66 108/320/66 117/322/66 -f 122/719/73 104/323/73 121/325/73 -f 114/720/28 96/326/28 115/328/28 -f 147/721/5 129/329/5 146/330/5 -f 153/722/8 135/331/8 154/333/8 -f 159/723/74 141/334/74 160/336/74 -f 146/724/6 128/337/6 145/339/6 -f 129/725/6 111/340/6 128/342/6 -f 142/592/81 124/343/81 131/345/81 -f 136/726/4 118/346/4 137/348/4 -f 130/164/5 112/349/5 129/351/5 -f 127/727/80 109/352/80 141/354/80 -f 137/453/21 119/355/21 138/357/21 -f 143/728/82 125/358/82 144/360/82 -f 131/729/13 113/361/13 132/363/13 -f 144/730/83 126/364/83 135/365/83 -f 140/731/56 122/366/56 139/368/56 -f 132/690/15 114/369/15 133/371/15 -f 134/732/65 116/372/65 143/373/65 -f 138/733/79 120/374/79 140/376/79 -f 133/706/28 115/377/28 134/379/28 -f 166/419/21 148/380/21 165/382/21 -f 172/734/8 154/383/8 173/385/8 -f 178/735/20 160/386/20 167/388/20 -f 165/736/1 147/389/1 164/391/1 -f 160/386/86 142/392/86 149/387/86 -f 154/737/11 136/394/11 155/396/11 -f 148/738/1 130/397/1 147/399/1 -f 145/444/85 127/400/85 159/402/85 -f 155/739/4 137/403/4 156/405/4 -f 161/740/87 143/406/87 162/408/87 -f 149/741/10 131/409/10 150/411/10 -f 162/455/88 144/412/88 153/414/88 -f 158/742/76 140/415/76 157/417/76 -f 150/80/13 132/418/13 151/420/13 -f 152/462/89 134/421/89 161/423/89 -f 156/464/84 138/424/84 158/426/84 -f 151/743/15 133/427/15 152/429/15 -f 157/744/75 139/430/75 148/431/75 -f 197/745/55 179/432/55 198/434/55 -f 191/746/8 173/435/8 192/437/8 -f 181/575/71 163/438/71 195/440/71 -f 184/747/4 166/441/4 183/443/4 -f 163/748/64 145/444/64 177/445/64 -f 173/749/11 155/446/11 174/448/11 -f 179/750/57 161/449/57 180/451/57 -f 167/751/31 149/452/31 168/454/31 -f 180/752/59 162/455/59 171/456/59 -f 176/753/60 158/457/60 175/459/60 -f 168/384/10 150/460/10 169/461/10 -f 170/754/58 152/462/58 179/463/58 -f 174/755/62 156/464/62 176/465/62 -f 169/756/13 151/466/13 170/467/13 -f 175/757/17 157/468/17 166/470/17 -f 164/758/5 146/471/5 163/473/5 -f 177/759/63 159/474/63 178/476/63 -f 171/760/28 153/477/28 172/479/28 -f 212/761/82 194/480/82 211/482/82 -f 216/762/81 198/483/81 207/485/81 -f 203/763/5 185/486/5 204/488/5 -f 215/764/78 197/489/78 216/491/78 -f 185/765/6 167/492/6 186/494/6 -f 198/483/70 180/495/70 189/484/70 -f 194/766/72 176/497/72 193/499/72 -f 186/117/31 168/500/31 187/502/31 -f 188/546/90 170/503/90 197/505/90 -f 192/548/69 174/506/69 194/508/69 -f 187/767/10 169/509/10 188/510/10 -f 193/553/66 175/511/66 184/513/66 -f 182/768/1 164/514/1 181/516/1 -f 195/769/73 177/517/73 196/519/73 -f 189/722/15 171/520/15 190/522/15 -f 183/684/21 165/523/21 182/525/21 -f 196/567/68 178/526/68 185/528/68 -f 190/770/28 172/529/28 191/531/28 -f 222/771/5 204/532/5 223/534/5 -f 230/56/87 212/535/87 229/537/87 -f 234/772/86 216/538/86 225/540/86 -f 221/773/1 203/541/1 222/543/1 -f 204/774/6 186/544/6 205/545/6 -f 206/775/80 188/546/80 215/547/80 -f 210/776/65 192/548/65 212/549/65 -f 205/777/31 187/550/31 206/552/31 -f 211/778/83 193/553/83 202/554/83 -f 200/779/21 182/555/21 199/557/21 -f 213/780/56 195/558/56 214/560/56 -f 207/781/13 189/561/13 208/563/13 -f 201/782/4 183/564/4 200/566/4 -f 214/783/77 196/567/77 203/568/77 -f 208/641/15 190/569/15 209/571/15 -f 202/356/11 184/572/11 201/574/11 -f 199/784/79 181/575/79 213/576/79 -f 209/404/28 191/577/28 210/579/28 -f 229/785/54 220/580/54 230/582/54 -f 220/580/54 219/786/54 218/787/54 -f 218/787/54 217/788/54 221/583/54 -f 221/583/54 222/789/54 223/790/54 -f 223/790/54 224/587/54 221/583/54 -f 225/584/54 226/791/54 227/792/54 -f 227/792/54 228/581/54 220/580/54 -f 220/580/54 218/787/54 221/583/54 -f 221/583/54 224/587/54 225/584/54 -f 225/584/54 227/792/54 220/580/54 -f 217/788/54 231/585/54 221/583/54 -f 225/584/54 224/587/54 234/589/54 -f 224/793/85 206/590/85 233/592/85 -f 228/794/89 210/593/89 230/595/89 -f 223/746/6 205/596/6 224/598/6 -f 229/795/88 211/599/88 220/601/88 -f 218/729/4 200/602/4 217/604/4 -f 231/796/76 213/605/76 232/607/76 -f 225/797/10 207/608/10 226/609/10 -f 219/798/11 201/610/11 218/612/11 -f 232/799/75 214/613/75 221/615/75 -f 226/800/13 208/616/13 227/618/13 -f 220/801/8 202/619/8 219/621/8 -f 217/802/84 199/622/84 231/624/84 -f 227/299/15 209/625/15 228/627/15 -f 233/803/74 215/628/74 234/630/74 diff --git a/src/main/resources/assets/hbm/models/drill_main.obj b/src/main/resources/assets/hbm/models/drill_main.obj deleted file mode 100644 index 5d0baf4e8..000000000 --- a/src/main/resources/assets/hbm/models/drill_main.obj +++ /dev/null @@ -1,1810 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'drill_main.blend' -# www.blender.org -o Plane.001 -v -0.500000 0.250000 0.250000 -v -0.500000 0.750000 0.250000 -v -0.500000 0.250000 -0.250000 -v -0.500000 0.750000 -0.250000 -v -1.500000 0.000000 0.500000 -v -1.500000 1.000000 0.500000 -v -1.500000 0.000000 -0.500000 -v -1.500000 1.000000 -0.500000 -v -1.000000 1.000000 -0.500000 -v -1.000000 0.000000 -0.500000 -v -1.000000 1.000000 0.500000 -v -1.000000 0.000000 0.500000 -v -1.500000 0.875000 -0.375000 -v -1.500000 0.125000 -0.375000 -v -1.500000 0.875000 0.375000 -v -1.500000 0.125000 0.375000 -v -1.000000 0.687500 -0.187500 -v -1.000000 0.312500 -0.187500 -v -1.000000 0.687500 0.187500 -v -1.000000 0.312500 0.187500 -v -1.083333 0.250000 -0.600000 -v -1.083333 0.750000 -0.600000 -v -1.333333 0.500000 -0.600000 -v -1.083333 0.250000 0.600000 -v -1.083333 0.750000 0.600000 -v -1.333333 0.500000 0.600000 -v -1.500000 0.000000 1.500000 -v 1.500000 0.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v -1.500000 0.000000 1.250000 -v 1.250000 0.000000 1.500000 -v 1.500000 0.000000 -1.250000 -v -1.250000 0.000000 -1.500000 -v -1.500000 0.000000 -1.250000 -v -1.250000 0.000000 1.500000 -v 1.500000 0.000000 1.250000 -v 1.250000 0.000000 -1.500000 -v 1.250000 0.000000 1.250000 -v -1.250000 0.000000 1.250000 -v -1.250000 0.000000 -1.250000 -v 1.250000 0.000000 -1.250000 -v -0.000000 3.500000 -0.250000 -v 0.125000 3.500000 -0.216506 -v 0.000000 3.000000 -0.500000 -v 0.000000 3.250000 -0.500000 -v 0.250000 3.000000 -0.433013 -v 0.250000 3.250000 -0.433013 -v 0.433013 3.000000 -0.250000 -v 0.433013 3.250000 -0.250000 -v 0.500000 3.000000 0.000000 -v 0.500000 3.250000 0.000000 -v 0.433013 3.000000 0.250000 -v 0.433013 3.250000 0.250000 -v 0.250000 3.000000 0.433013 -v 0.250000 3.250000 0.433013 -v 0.000000 3.000000 0.500000 -v 0.000000 3.250000 0.500000 -v -0.250000 3.000000 0.433013 -v -0.250000 3.250000 0.433013 -v -0.433013 3.000000 0.250000 -v -0.433013 3.250000 0.250000 -v -0.500000 3.000000 0.000000 -v -0.500000 3.250000 0.000000 -v -0.433013 3.000000 -0.250000 -v -0.433013 3.250000 -0.250000 -v -0.250000 3.000000 -0.433013 -v -0.250000 3.250000 -0.433013 -v 0.216506 3.500000 -0.125000 -v 0.250000 3.500000 0.000000 -v 0.216506 3.500000 0.125000 -v 0.125000 3.500000 0.216506 -v 0.000000 3.500000 0.250000 -v -0.125000 3.500000 0.216506 -v -0.216506 3.500000 0.125000 -v -0.250000 3.500000 0.000000 -v -0.216506 3.500000 -0.125000 -v -0.125000 3.500000 -0.216506 -v -0.000000 3.500000 -0.087500 -v -0.043750 3.500000 -0.075777 -v -0.075777 3.500000 -0.043750 -v -0.087500 3.500000 0.000000 -v -0.075777 3.500000 0.043750 -v -0.043750 3.500000 0.075777 -v 0.000000 3.500000 0.087500 -v 0.043750 3.500000 0.075777 -v 0.075777 3.500000 0.043750 -v 0.087500 3.500000 0.000000 -v 0.075777 3.500000 -0.043750 -v 0.043750 3.500000 -0.075777 -v 0.000001 4.000000 -0.087500 -v -0.043749 4.000000 -0.075777 -v -0.075777 4.000000 -0.043750 -v -0.087499 4.000000 0.000000 -v -0.075777 4.000000 0.043750 -v -0.043749 4.000000 0.075777 -v 0.000001 4.000000 0.087500 -v 0.043751 4.000000 0.075777 -v 0.075778 4.000000 0.043750 -v 0.087501 4.000000 0.000000 -v 0.075778 4.000000 -0.043750 -v 0.043751 4.000000 -0.075777 -v -0.750000 3.000000 -0.750000 -v -0.500000 3.000000 -0.750000 -v -0.750000 3.000000 -0.500000 -v -0.500000 3.000000 -0.500000 -v 0.750000 3.000000 -0.750000 -v 0.750000 3.000000 -0.500000 -v 0.500000 3.000000 -0.750000 -v 0.500000 3.000000 -0.500000 -v 0.750000 3.000000 0.750000 -v 0.500000 3.000000 0.750000 -v 0.750000 3.000000 0.500000 -v 0.500000 3.000000 0.500000 -v -0.750000 3.000000 0.750000 -v -0.750000 3.000000 0.500000 -v -0.500000 3.000000 0.750000 -v -0.500000 3.000000 0.500000 -v 0.156236 0.656250 1.502073 -v -0.156236 0.656250 1.497927 -v 0.156236 0.343750 1.502073 -v -0.156236 0.343750 1.497927 -v 0.159552 0.656250 1.252095 -v -0.152920 0.656250 1.247949 -v 0.159552 0.343750 1.252095 -v -0.152920 0.343750 1.247949 -v -0.500000 0.000000 1.250000 -v -0.500000 1.000000 1.250000 -v -0.500000 0.000000 1.000000 -v -0.500000 1.000000 1.000000 -v 0.500000 0.000000 1.250000 -v 0.500000 1.000000 1.250000 -v 0.500000 0.000000 1.000000 -v 0.500000 1.000000 1.000000 -v -0.496481 0.739070 0.748450 -v -0.500000 0.000000 0.750000 -v 0.503519 0.739070 0.748450 -v 0.500000 0.000000 0.750000 -v 0.156236 0.656250 -1.497927 -v -0.156236 0.656250 -1.502073 -v 0.156236 0.343750 -1.497927 -v -0.156236 0.343750 -1.502073 -v 0.152920 0.656250 -1.247949 -v -0.159552 0.656250 -1.252095 -v 0.152920 0.343750 -1.247949 -v -0.159552 0.343750 -1.252095 -v -0.500000 0.000000 -1.000000 -v -0.500000 1.000000 -1.000000 -v -0.500000 0.000000 -1.250000 -v -0.500000 1.000000 -1.250000 -v 0.500000 0.000000 -1.000000 -v 0.500000 1.000000 -1.000000 -v 0.500000 0.000000 -1.250000 -v 0.500000 1.000000 -1.250000 -v -0.500000 0.000000 -0.750000 -v -0.500000 0.750000 -0.750000 -v 0.500000 0.750000 -0.750000 -v 0.500000 0.000000 -0.750000 -v -0.749622 0.250000 0.750000 -v 0.750378 1.000000 0.750000 -v -0.749622 0.250000 -0.750000 -v 0.750378 1.000000 -0.750000 -v -0.249622 0.500000 -0.433013 -v 0.000378 0.625000 -0.500000 -v 0.250378 0.750000 -0.433012 -v 0.433391 0.841506 -0.250000 -v 0.500378 0.875000 0.000000 -v 0.433390 0.841505 0.250000 -v 0.250378 0.750000 0.433013 -v 0.000378 0.625000 0.500000 -v -0.249622 0.500000 0.433013 -v -0.432635 0.408494 0.250000 -v -0.499622 0.375000 -0.000000 -v -0.432635 0.408494 -0.250000 -v -0.749622 0.750000 0.750000 -v 0.750378 1.500000 0.750000 -v -0.749622 0.750000 -0.750000 -v 0.750378 1.500000 -0.750000 -v -0.249622 1.000000 -0.433013 -v 0.000378 1.125000 -0.500000 -v 0.250378 1.250000 -0.433012 -v 0.433391 1.341506 -0.250000 -v 0.500378 1.375000 0.000000 -v 0.433390 1.341505 0.250000 -v 0.250378 1.250000 0.433013 -v 0.000378 1.125000 0.500000 -v -0.249622 1.000000 0.433013 -v -0.432635 0.908494 0.250000 -v -0.499622 0.875000 -0.000000 -v -0.432635 0.908494 -0.250000 -v -0.999622 0.250000 -0.375000 -v -0.999622 0.250000 0.375000 -v -0.999622 0.750000 -0.375000 -v -0.999622 0.750000 0.375000 -v 0.500000 0.000000 0.500000 -v 0.500000 0.250000 0.500000 -v 0.500000 0.000000 -0.500000 -v 0.500000 0.250000 -0.500000 -v 1.500000 0.000000 0.500000 -v 1.500000 0.250000 0.500000 -v 1.500000 0.000000 -0.500000 -v 1.500000 0.250000 -0.500000 -v 0.750000 0.375000 0.250000 -v 0.750000 0.375000 -0.250000 -v 1.250000 0.375000 -0.250000 -v 1.250000 0.375000 0.250000 -v 0.750000 1.000000 0.250000 -v 0.750000 1.000000 -0.250000 -v 1.250000 1.000000 -0.250000 -v 1.250000 1.000000 0.250000 -v 0.750000 1.500000 0.250000 -v 0.750000 1.500000 -0.250000 -v 1.250000 1.500000 -0.250000 -v 1.250000 1.500000 0.250000 -v 0.750000 2.125000 0.250000 -v 0.750000 2.125000 -0.250000 -v 1.250000 2.125000 -0.250000 -v 1.250000 2.125000 0.250000 -v 0.500000 2.500000 0.500000 -v 0.500000 2.500000 -0.500000 -v 1.500000 2.500000 0.500000 -v 1.500000 2.500000 -0.500000 -v 0.500000 2.250000 -0.500000 -v 0.500000 2.250000 0.500000 -v 1.500000 2.250000 -0.500000 -v 1.500000 2.250000 0.500000 -v 0.750000 3.125000 -0.250000 -v 0.750000 3.125000 0.250000 -v 0.750000 3.125000 -0.178571 -v 0.750000 3.125000 -0.107143 -v 0.750000 3.125000 -0.035714 -v 0.750000 3.125000 0.035714 -v 0.750000 3.125000 0.107143 -v 0.750000 3.125000 0.178571 -v 0.400000 3.125000 -0.250000 -v 0.400000 3.125000 0.250000 -v 0.400000 3.125000 -0.178571 -v 0.400000 3.125000 -0.107143 -v 0.400000 3.125000 -0.035714 -v 0.400000 3.125000 0.035714 -v 0.400000 3.125000 0.107143 -v 0.400000 3.125000 0.178571 -v 1.000000 2.875000 -0.250000 -v 1.000000 2.875000 0.250000 -v 1.000000 2.875000 -0.178571 -v 1.000000 2.875000 -0.107143 -v 1.000000 2.875000 -0.035714 -v 1.000000 2.875000 0.035714 -v 1.000000 2.875000 0.107143 -v 1.000000 2.875000 0.178571 -v 1.000000 2.500000 -0.250000 -v 1.000000 2.500000 0.250000 -v 1.000000 2.500000 -0.178571 -v 1.000000 2.500000 -0.107143 -v 1.000000 2.500000 -0.035714 -v 1.000000 2.500000 0.035714 -v 1.000000 2.500000 0.107143 -v 1.000000 2.500000 0.178571 -v 1.250000 1.000000 -1.250000 -v 1.000000 2.000000 -1.000000 -v 1.000000 1.000000 -1.250000 -v 0.750000 2.000000 -1.000000 -v 1.250000 1.000000 -1.000000 -v 1.000000 2.000000 -0.750000 -v 1.000000 1.000000 -1.000000 -v 0.750000 2.000000 -0.750000 -v -1.000000 1.000000 -1.250000 -v -0.750000 2.000000 -1.000000 -v -1.250000 1.000000 -1.250000 -v -1.000000 2.000000 -1.000000 -v -1.250000 1.000000 -1.000000 -v -1.000000 2.000000 -0.750000 -v -1.000000 1.000000 -1.000000 -v -0.750000 2.000000 -0.750000 -v -1.000000 1.000000 1.000000 -v -0.750000 2.000000 0.750000 -v -1.250000 1.000000 1.000000 -v -1.000000 2.000000 0.750000 -v -1.000000 1.000000 1.250000 -v -0.750000 2.000000 1.000000 -v -1.250000 1.000000 1.250000 -v -1.000000 2.000000 1.000000 -v 1.250000 1.000000 1.250000 -v 1.000000 2.000000 1.000000 -v 1.250000 1.000000 1.000000 -v 1.000000 2.000000 0.750000 -v 1.000000 1.000000 1.250000 -v 0.750000 2.000000 1.000000 -v 1.000000 1.000000 1.000000 -v 0.750000 2.000000 0.750000 -v -1.250000 1.000000 -0.500000 -v -1.000000 1.000000 -0.500000 -v -1.000000 1.000000 0.500000 -v -1.250000 1.000000 0.500000 -v 1.000000 1.000000 0.500000 -v 1.000000 1.000000 -0.500000 -vt 0.742850 0.869892 -vt 0.794307 0.869891 -vt 0.794307 0.921513 -vt 0.788877 0.109438 -vt 0.737417 0.109438 -vt 0.737417 0.006195 -vt 0.429689 0.019100 -vt 0.352503 0.019100 -vt 0.339639 0.006195 -vt 0.736573 0.433689 -vt 0.679039 0.407878 -vt 0.679039 0.356257 -vt 0.748924 0.549321 -vt 0.748924 0.446078 -vt 0.800384 0.446078 -vt 0.736573 0.471889 -vt 0.736573 0.523511 -vt 0.679039 0.549321 -vt 0.454904 0.803419 -vt 0.454904 0.700176 -vt 0.506364 0.700176 -vt 0.736573 0.214814 -vt 0.736573 0.318057 -vt 0.679039 0.292246 -vt 0.679039 0.677343 -vt 0.730499 0.677343 -vt 0.730499 0.780586 -vt 0.679039 0.587521 -vt 0.736573 0.561711 -vt 0.736573 0.664954 -vt 0.348647 0.805319 -vt 0.348647 0.766602 -vt 0.403607 0.747244 -vt 0.352504 0.096532 -vt 0.429689 0.096532 -vt 0.442553 0.109438 -vt 0.339640 0.109438 -vt 0.442553 0.006195 -vt 0.089013 0.920298 -vt 0.127606 0.920298 -vt 0.127606 0.959015 -vt 0.263570 0.790128 -vt 0.263570 0.751411 -vt 0.318529 0.732053 -vt 0.089013 0.803185 -vt 0.089013 0.764469 -vt 0.143973 0.745111 -vt 0.748924 0.619785 -vt 0.748924 0.581069 -vt 0.803884 0.561711 -vt 0.955744 0.406846 -vt 0.955744 0.458468 -vt 0.930014 0.432657 -vt 0.955744 0.330446 -vt 0.930014 0.304635 -vt 0.955744 0.278824 -vt 0.968095 0.214814 -vt 0.993825 0.214814 -vt 0.993825 0.240624 -vt 0.965057 0.750801 -vt 0.990788 0.750801 -vt 0.990788 0.776612 -vt 0.923940 0.638627 -vt 0.949670 0.638627 -vt 0.949670 0.664437 -vt 0.816234 0.638627 -vt 0.841964 0.638627 -vt 0.841964 0.664438 -vt 0.728746 0.896592 -vt 0.728746 0.909952 -vt 0.712591 0.905610 -vt 0.833299 0.970304 -vt 0.806661 0.970304 -vt 0.813320 0.934418 -vt 0.926128 0.106374 -vt 0.926128 0.079653 -vt 0.951858 0.079653 -vt 0.679039 0.909952 -vt 0.679039 0.896592 -vt 0.695194 0.900934 -vt 0.238533 0.982264 -vt 0.211895 0.982264 -vt 0.218555 0.946378 -vt 0.566971 0.992904 -vt 0.566971 0.966183 -vt 0.592702 0.966183 -vt 0.685698 0.921523 -vt 0.697524 0.909660 -vt 0.701561 0.911998 -vt 0.973435 0.157712 -vt 0.946797 0.157712 -vt 0.953457 0.121827 -vt 0.045164 0.992712 -vt 0.045164 0.965990 -vt 0.070894 0.965990 -vt 0.710552 0.878341 -vt 0.706223 0.894546 -vt 0.701561 0.894546 -vt 0.679039 0.976478 -vt 0.685698 0.940593 -vt 0.699017 0.940593 -vt 0.930014 0.545853 -vt 0.930014 0.519131 -vt 0.955744 0.519131 -vt 0.712591 0.900934 -vt 0.710260 0.896884 -vt 0.923940 0.982693 -vt 0.930599 0.946807 -vt 0.943918 0.946807 -vt 0.454904 0.992904 -vt 0.454904 0.966182 -vt 0.480634 0.966182 -vt 0.722086 0.921523 -vt 0.710260 0.909660 -vt 0.956652 0.506742 -vt 0.930014 0.506742 -vt 0.936673 0.470857 -vt 0.826958 0.173449 -vt 0.826958 0.200170 -vt 0.801228 0.200170 -vt 0.710552 0.928203 -vt 0.697233 0.928203 -vt 0.879430 0.989146 -vt 0.886089 0.953260 -vt 0.899408 0.953260 -vt 0.031905 0.965990 -vt 0.031905 0.992712 -vt 0.006175 0.992712 -vt 0.685698 0.885021 -vt 0.697524 0.896884 -vt 0.630782 0.967319 -vt 0.637442 0.931434 -vt 0.650761 0.931434 -vt 0.069983 0.732694 -vt 0.069983 0.705972 -vt 0.095713 0.705972 -vt 0.154777 0.886554 -vt 0.154777 0.834933 -vt 0.159439 0.834933 -vt 0.769488 0.969788 -vt 0.742850 0.969788 -vt 0.749509 0.933903 -vt 0.302558 0.992981 -vt 0.302558 0.966260 -vt 0.328288 0.966260 -vt 0.415916 0.967749 -vt 0.422575 0.931863 -vt 0.435894 0.931863 -vt 0.695194 0.905610 -vt 0.348647 0.993805 -vt 0.348647 0.967084 -vt 0.374377 0.967084 -vt 0.962928 0.597596 -vt 0.969588 0.561711 -vt 0.982907 0.561711 -vt 0.952707 0.750801 -vt 0.952707 0.777522 -vt 0.926977 0.777522 -vt 0.263570 0.992981 -vt 0.263570 0.966260 -vt 0.289300 0.966260 -vt 0.706223 0.911998 -vt 0.172907 0.982264 -vt 0.179567 0.946378 -vt 0.192885 0.946378 -vt 0.272321 0.459494 -vt 0.172907 0.486216 -vt 0.186226 0.436353 -vt 0.722086 0.885021 -vt 0.697233 0.878341 -vt 0.763990 0.345986 -vt 0.748924 0.341936 -vt 0.766321 0.337260 -vt 0.074644 0.809094 -vt 0.074644 0.860715 -vt 0.069983 0.860715 -vt 0.074644 0.745083 -vt 0.074644 0.796704 -vt 0.069983 0.796704 -vt 0.241540 0.650739 -vt 0.241540 0.702361 -vt 0.236878 0.702361 -vt 0.142427 0.834933 -vt 0.142427 0.886554 -vt 0.137765 0.886554 -vt 0.248290 0.882004 -vt 0.248290 0.933626 -vt 0.243629 0.933626 -vt 0.397399 0.888687 -vt 0.397399 0.837066 -vt 0.402061 0.837066 -vt 0.267110 0.535107 -vt 0.267110 0.586729 -vt 0.262448 0.586729 -vt 0.610621 0.892724 -vt 0.610621 0.944346 -vt 0.605960 0.944346 -vt 0.330880 0.847686 -vt 0.330880 0.796064 -vt 0.335541 0.796064 -vt 0.335541 0.732053 -vt 0.335541 0.783675 -vt 0.330880 0.783675 -vt 0.498554 0.892724 -vt 0.498554 0.944346 -vt 0.493892 0.944346 -vt 0.134826 0.217539 -vt 0.134826 0.191728 -vt 0.160556 0.191728 -vt 0.006175 0.217539 -vt 0.006175 0.191728 -vt 0.031905 0.191728 -vt 0.006175 0.346593 -vt 0.006175 0.320782 -vt 0.031905 0.320782 -vt 0.134826 0.346593 -vt 0.134826 0.320782 -vt 0.160556 0.320782 -vt 0.083366 0.320782 -vt 0.031905 0.217539 -vt 0.031905 0.269160 -vt 0.083366 0.217539 -vt 0.134826 0.269160 -vt 0.492260 0.115700 -vt 0.492260 0.006195 -vt 0.517265 0.012278 -vt 0.080887 0.365065 -vt 0.105892 0.358982 -vt 0.105892 0.468488 -vt 0.666688 0.231290 -vt 0.666688 0.340796 -vt 0.641683 0.334712 -vt 0.604327 0.012278 -vt 0.629333 0.006195 -vt 0.629333 0.115701 -vt 0.492260 0.359269 -vt 0.517265 0.353185 -vt 0.517265 0.462691 -vt 0.591977 0.578281 -vt 0.591977 0.687787 -vt 0.566971 0.681703 -vt 0.554621 0.231290 -vt 0.554621 0.340796 -vt 0.529616 0.334712 -vt 0.068536 0.687499 -vt 0.043531 0.693583 -vt 0.043531 0.584077 -vt 0.554621 0.578281 -vt 0.554621 0.687786 -vt 0.529616 0.681703 -vt 0.641683 0.359269 -vt 0.666688 0.353185 -vt 0.666688 0.462691 -vt 0.629333 0.578281 -vt 0.629333 0.687787 -vt 0.604327 0.681703 -vt 0.442553 0.450345 -vt 0.417548 0.456428 -vt 0.417548 0.346922 -vt 0.454904 0.359269 -vt 0.479909 0.353185 -vt 0.479909 0.462691 -vt 0.454904 0.115700 -vt 0.454904 0.006195 -vt 0.479909 0.012278 -vt 0.591977 0.231290 -vt 0.591977 0.340796 -vt 0.566971 0.334712 -vt 0.006175 0.365065 -vt 0.031181 0.358982 -vt 0.031181 0.468488 -vt 0.109096 0.224455 -vt 0.127932 0.243349 -vt 0.057636 0.224455 -vt 0.038800 0.243349 -vt 0.038800 0.294971 -vt 0.057636 0.313866 -vt 0.109096 0.313866 -vt 0.127932 0.294971 -vt 0.911589 0.908608 -vt 0.911589 0.940871 -vt 0.879430 0.940871 -vt 0.991695 0.709606 -vt 0.965965 0.709606 -vt 0.965965 0.677343 -vt 0.962928 0.882281 -vt 0.988658 0.882281 -vt 0.988658 0.914544 -vt 0.962928 0.642249 -vt 0.962928 0.609985 -vt 0.988658 0.609985 -vt 0.988658 0.869891 -vt 0.962928 0.869891 -vt 0.962928 0.837628 -vt 0.198799 0.753983 -vt 0.198799 0.650739 -vt 0.224528 0.650740 -vt 0.172907 0.766735 -vt 0.210210 0.766372 -vt 0.210210 0.869615 -vt 0.403607 0.631612 -vt 0.403607 0.734855 -vt 0.377878 0.734855 -vt 0.339635 0.616421 -vt 0.339635 0.719664 -vt 0.263570 0.719301 -vt 0.768580 0.677343 -vt 0.768580 0.780586 -vt 0.742850 0.780586 -vt 0.442553 0.520439 -vt 0.442553 0.623682 -vt 0.416823 0.623682 -vt 0.172907 0.727043 -vt 0.352150 0.734855 -vt 0.351986 0.658551 -vt 0.794310 0.677343 -vt 0.794310 0.780586 -vt 0.275828 0.191728 -vt 0.275828 0.294971 -vt 0.240789 0.259481 -vt 0.208629 0.259481 -vt 0.172907 0.294971 -vt 0.172907 0.191728 -vt 0.208629 0.227218 -vt 0.348647 0.922431 -vt 0.380807 0.922432 -vt 0.380807 0.954695 -vt 0.522461 0.963697 -vt 0.522461 0.931434 -vt 0.554621 0.931434 -vt 0.972527 0.170102 -vt 0.972527 0.202365 -vt 0.946797 0.202365 -vt 0.962928 0.792975 -vt 0.988658 0.792975 -vt 0.988658 0.825239 -vt 0.965116 0.006195 -vt 0.990846 0.006195 -vt 0.990846 0.038458 -vt 0.965116 0.050847 -vt 0.990846 0.050847 -vt 0.990846 0.083111 -vt 0.006175 0.809215 -vt 0.006175 0.705972 -vt 0.031904 0.705973 -vt 0.391099 0.191728 -vt 0.391099 0.294971 -vt 0.288178 0.294971 -vt 0.592700 0.700176 -vt 0.592700 0.803419 -vt 0.566971 0.803419 -vt 0.875697 0.109438 -vt 0.839309 0.109438 -vt 0.839309 0.006195 -vt 0.748924 0.318057 -vt 0.748924 0.214814 -vt 0.774654 0.214814 -vt 0.143973 0.410603 -vt 0.143973 0.513847 -vt 0.118243 0.513847 -vt 0.172907 0.535107 -vt 0.250098 0.535107 -vt 0.250098 0.638350 -vt 0.618428 0.725986 -vt 0.057632 0.705973 -vt 0.057632 0.783405 -vt 0.800384 0.214814 -vt 0.800384 0.318057 -vt 0.109096 0.006230 -vt 0.083366 0.035052 -vt 0.057636 0.006230 -vt 0.006175 0.179339 -vt 0.031905 0.092767 -vt 0.038800 0.121624 -vt 0.160557 0.179339 -vt 0.127932 0.121624 -vt 0.134826 0.092767 -vt 0.083366 0.150481 -vt 0.250098 0.150481 -vt 0.275828 0.179304 -vt 0.224367 0.179304 -vt 0.198637 0.092767 -vt 0.172907 0.179339 -vt 0.172907 0.006195 -vt 0.294664 0.063909 -vt 0.327288 0.006195 -vt 0.301558 0.092767 -vt 0.250098 0.035052 -vt 0.725066 0.029280 -vt 0.725066 0.202424 -vt 0.679039 0.179339 -vt 0.442553 0.842558 -vt 0.416823 0.803842 -vt 0.416823 0.726409 -vt 0.398013 0.596137 -vt 0.351986 0.619222 -vt 0.351986 0.446078 -vt 0.057632 0.821605 -vt 0.057632 0.886132 -vt 0.006175 0.886132 -vt 0.926977 0.686790 -vt 0.953615 0.677343 -vt 0.953615 0.728964 -vt 0.950578 0.921513 -vt 0.923940 0.934418 -vt 0.923940 0.882797 -vt 0.442553 0.906568 -vt 0.415916 0.919474 -vt 0.415916 0.867852 -vt 0.926128 0.015642 -vt 0.952766 0.006195 -vt 0.952766 0.057816 -vt 0.045164 0.901979 -vt 0.071801 0.898521 -vt 0.071802 0.950143 -vt 0.290207 0.902249 -vt 0.290207 0.953871 -vt 0.263570 0.950413 -vt 0.593609 0.902172 -vt 0.593609 0.953793 -vt 0.566971 0.944346 -vt 0.923940 0.613332 -vt 0.923940 0.561711 -vt 0.950578 0.574616 -vt 0.923940 0.844597 -vt 0.923940 0.792975 -vt 0.950578 0.805881 -vt 0.481542 0.902172 -vt 0.481542 0.953793 -vt 0.454904 0.944346 -vt 0.329196 0.902249 -vt 0.329196 0.953871 -vt 0.302558 0.950413 -vt 0.006175 0.901980 -vt 0.032813 0.898521 -vt 0.032813 0.950143 -vt 0.737417 0.199255 -vt 0.737417 0.121827 -vt 0.788877 0.121827 -vt 0.888061 0.121827 -vt 0.934447 0.121827 -vt 0.934447 0.173449 -vt 0.838465 0.536932 -vt 0.812735 0.498216 -vt 0.812735 0.420784 -vt 0.172907 0.882368 -vt 0.219293 0.882368 -vt 0.219293 0.933989 -vt 0.630782 0.815809 -vt 0.656513 0.815808 -vt 0.656513 0.919045 -vt 0.913777 0.109438 -vt 0.888047 0.109438 -vt 0.888047 0.006195 -vt 0.891933 0.214814 -vt 0.917663 0.214814 -vt 0.917663 0.318050 -vt 0.885859 0.792975 -vt 0.911589 0.792975 -vt 0.911589 0.896218 -vt 0.391099 0.410603 -vt 0.288178 0.410603 -vt 0.288178 0.307360 -vt 0.879583 0.549321 -vt 0.850815 0.523511 -vt 0.850815 0.471889 -vt 0.742850 0.857502 -vt 0.742850 0.792975 -vt 0.794310 0.792975 -vt 0.885859 0.677343 -vt 0.914626 0.703154 -vt 0.914626 0.754775 -vt 0.554621 0.803419 -vt 0.525854 0.777608 -vt 0.525854 0.725987 -vt 0.873509 0.780586 -vt 0.844741 0.754775 -vt 0.844741 0.703154 -vt 0.339635 0.487519 -vt 0.339635 0.539141 -vt 0.288178 0.539141 -vt 0.454904 0.880335 -vt 0.454904 0.815808 -vt 0.506364 0.815808 -vt 0.339635 0.422992 -vt 0.288178 0.487520 -vt 0.263570 0.886402 -vt 0.263570 0.821875 -vt 0.315027 0.821875 -vt 0.385049 0.910042 -vt 0.348647 0.873554 -vt 0.385049 0.837066 -vt 0.875697 0.158329 -vt 0.875710 0.194803 -vt 0.839309 0.158315 -vt 0.891933 0.523511 -vt 0.891933 0.446078 -vt 0.917663 0.471889 -vt 0.850815 0.318057 -vt 0.850815 0.214814 -vt 0.879583 0.240624 -vt 0.566971 0.880335 -vt 0.566971 0.815808 -vt 0.618432 0.815808 -vt 0.816234 0.626238 -vt 0.816234 0.561711 -vt 0.867694 0.561711 -vt 0.339635 0.603668 -vt 0.288178 0.603668 -vt 0.391099 0.173448 -vt 0.339639 0.173409 -vt 0.365369 0.147638 -vt 0.806661 0.870408 -vt 0.832391 0.844597 -vt 0.832391 0.922029 -vt 0.089013 0.871421 -vt 0.125415 0.834933 -vt 0.125415 0.907909 -vt 0.172907 0.410603 -vt 0.172907 0.307360 -vt 0.275828 0.307360 -vt 0.850815 0.433689 -vt 0.850815 0.330446 -vt 0.879583 0.356257 -vt 0.554621 0.919045 -vt 0.528891 0.919045 -vt 0.528891 0.815808 -vt 0.891933 0.330446 -vt 0.917663 0.330446 -vt 0.917663 0.433682 -vt 0.248290 0.869615 -vt 0.222560 0.869615 -vt 0.222560 0.766372 -vt 0.885859 0.561711 -vt 0.911589 0.561711 -vt 0.911589 0.664954 -vt 0.873509 0.792975 -vt 0.873509 0.896218 -vt 0.844741 0.870408 -vt 0.659546 0.700176 -vt 0.659546 0.803419 -vt 0.630779 0.777608 -vt 0.975446 0.350796 -vt 0.975446 0.386931 -vt 0.968095 0.386931 -vt 0.159440 0.950049 -vt 0.159440 0.986184 -vt 0.152088 0.986184 -vt 0.976354 0.470857 -vt 0.976354 0.506992 -vt 0.969002 0.506992 -vt 0.975446 0.399320 -vt 0.975446 0.435455 -vt 0.968095 0.435455 -vt 0.718027 0.940593 -vt 0.725379 0.940593 -vt 0.725379 0.977094 -vt 0.968095 0.301905 -vt 0.975446 0.301905 -vt 0.975446 0.338407 -vt 0.968095 0.253014 -vt 0.975446 0.253014 -vt 0.975446 0.289516 -vt 0.781838 0.933903 -vt 0.789190 0.933903 -vt 0.789190 0.970405 -vt 0.393157 0.922431 -vt 0.400508 0.922431 -vt 0.400508 0.961148 -vt 0.159439 0.937660 -vt 0.152088 0.937660 -vt 0.152088 0.898943 -vt 0.867079 0.947324 -vt 0.859728 0.947324 -vt 0.859728 0.908608 -vt 0.236878 0.714750 -vt 0.244229 0.714750 -vt 0.244229 0.753466 -vt 0.604327 0.231290 -vt 0.629333 0.225206 -vt 0.629333 0.334712 -vt 0.604327 0.121784 -vt 0.666688 0.012278 -vt 0.666688 0.121784 -vt 0.641683 0.115701 -vt 0.641683 0.225206 -vt 0.080887 0.584077 -vt 0.105892 0.577994 -vt 0.105892 0.687499 -vt 0.080887 0.474571 -vt 0.492260 0.334712 -vt 0.492260 0.225206 -vt 0.517265 0.231290 -vt 0.517265 0.121784 -vt 0.068536 0.468488 -vt 0.043531 0.474571 -vt 0.043531 0.365065 -vt 0.068536 0.577994 -vt 0.554621 0.012278 -vt 0.554621 0.121784 -vt 0.529616 0.115701 -vt 0.529616 0.225206 -vt 0.591977 0.359269 -vt 0.591977 0.468775 -vt 0.566971 0.462691 -vt 0.566971 0.572197 -vt 0.492260 0.578281 -vt 0.517265 0.572197 -vt 0.517265 0.681703 -vt 0.492260 0.468775 -vt 0.006175 0.584077 -vt 0.031181 0.577994 -vt 0.031181 0.687499 -vt 0.006175 0.474571 -vt 0.591977 0.012278 -vt 0.591977 0.121784 -vt 0.566971 0.115701 -vt 0.566971 0.225206 -vt 0.454904 0.334712 -vt 0.454904 0.225206 -vt 0.479909 0.231290 -vt 0.479909 0.121784 -vt 0.454904 0.578281 -vt 0.479909 0.572197 -vt 0.479909 0.681703 -vt 0.454904 0.468775 -vt 0.442553 0.231333 -vt 0.417548 0.237417 -vt 0.417548 0.127911 -vt 0.442553 0.340839 -vt 0.629333 0.359269 -vt 0.629333 0.468775 -vt 0.604327 0.462691 -vt 0.604327 0.572197 -vt 0.641683 0.578281 -vt 0.666688 0.572197 -vt 0.666688 0.681703 -vt 0.641683 0.468775 -vt 0.554621 0.359269 -vt 0.554621 0.468775 -vt 0.529616 0.462691 -vt 0.529616 0.572197 -vt 0.442553 0.675304 -vt 0.416823 0.675304 -vt 0.416823 0.520439 -vt 0.416823 0.468818 -vt 0.118243 0.410603 -vt 0.118243 0.358982 -vt 0.143973 0.565468 -vt 0.118243 0.565468 -vt 0.826958 0.006195 -vt 0.826958 0.161059 -vt 0.801228 0.161059 -vt 0.838465 0.214814 -vt 0.838465 0.369678 -vt 0.812735 0.369678 -vt 0.143973 0.577857 -vt 0.143973 0.732722 -vt 0.118243 0.732722 -vt 0.806661 0.832208 -vt 0.806661 0.677343 -vt 0.832391 0.677343 -vt 0.930014 0.342835 -vt 0.955744 0.342835 -vt 0.955744 0.394457 -vt 0.955744 0.266435 -vt 0.930014 0.266435 -vt 0.930014 0.214814 -vt 0.679039 0.865952 -vt 0.679039 0.792975 -vt 0.730499 0.829477 -vt 0.800384 0.397187 -vt 0.748924 0.433689 -vt 0.748924 0.360713 -vt 0.742850 0.921513 -vt 0.788877 0.006195 -vt 0.736573 0.330446 -vt 0.800384 0.549321 -vt 0.679039 0.446078 -vt 0.506364 0.803419 -vt 0.679039 0.240624 -vt 0.679039 0.780586 -vt 0.679039 0.639143 -vt 0.403607 0.824677 -vt 0.089013 0.959014 -vt 0.318529 0.809486 -vt 0.143973 0.822544 -vt 0.803884 0.639143 -vt 0.968095 0.240624 -vt 0.965057 0.776612 -vt 0.923940 0.664437 -vt 0.816234 0.664438 -vt 0.826639 0.934418 -vt 0.951858 0.106374 -vt 0.231874 0.946378 -vt 0.592702 0.992904 -vt 0.966776 0.121827 -vt 0.070894 0.992712 -vt 0.705677 0.976478 -vt 0.955744 0.545853 -vt 0.950578 0.982693 -vt 0.480634 0.992904 -vt 0.949992 0.470857 -vt 0.801228 0.173449 -vt 0.906067 0.989146 -vt 0.006175 0.965990 -vt 0.657420 0.967319 -vt 0.095713 0.732694 -vt 0.159439 0.886554 -vt 0.762828 0.933903 -vt 0.328288 0.992981 -vt 0.442553 0.967749 -vt 0.374377 0.993805 -vt 0.989566 0.597596 -vt 0.926977 0.750801 -vt 0.289300 0.992981 -vt 0.199545 0.982264 -vt 0.209295 0.422992 -vt 0.235933 0.422992 -vt 0.259002 0.436353 -vt 0.272321 0.486216 -vt 0.259002 0.509357 -vt 0.235933 0.522718 -vt 0.209295 0.522718 -vt 0.186226 0.509357 -vt 0.172907 0.459495 -vt 0.759953 0.330872 -vt 0.763990 0.333210 -vt 0.766321 0.341936 -vt 0.759953 0.348324 -vt 0.755292 0.348324 -vt 0.751255 0.345986 -vt 0.748924 0.337260 -vt 0.751255 0.333210 -vt 0.755292 0.330872 -vt 0.069983 0.809094 -vt 0.069983 0.745083 -vt 0.236878 0.650739 -vt 0.137765 0.834933 -vt 0.243629 0.882004 -vt 0.402061 0.888687 -vt 0.262448 0.535107 -vt 0.605960 0.892724 -vt 0.335541 0.847686 -vt 0.330880 0.732053 -vt 0.493892 0.892724 -vt 0.160556 0.217539 -vt 0.031905 0.346593 -vt 0.160556 0.346593 -vt 0.879430 0.908608 -vt 0.991695 0.677343 -vt 0.962928 0.914544 -vt 0.988658 0.642249 -vt 0.988658 0.837628 -vt 0.224528 0.753983 -vt 0.172907 0.869978 -vt 0.377878 0.631612 -vt 0.263570 0.616058 -vt 0.742850 0.677343 -vt 0.173071 0.650739 -vt 0.240789 0.227218 -vt 0.348647 0.954695 -vt 0.554621 0.963697 -vt 0.946797 0.170102 -vt 0.962928 0.825239 -vt 0.965116 0.038458 -vt 0.965116 0.083111 -vt 0.031904 0.809216 -vt 0.288178 0.191728 -vt 0.566971 0.700176 -vt 0.875697 0.006195 -vt 0.774654 0.318057 -vt 0.172907 0.638350 -vt 0.618428 0.803419 -vt 0.038800 0.063909 -vt 0.006175 0.006195 -vt 0.057636 0.042784 -vt 0.160556 0.006195 -vt 0.109096 0.042784 -vt 0.127932 0.063909 -vt 0.057636 0.142749 -vt 0.109096 0.142749 -vt 0.205532 0.121624 -vt 0.224367 0.142749 -vt 0.275828 0.142749 -vt 0.294664 0.121624 -vt 0.327288 0.179339 -vt 0.224367 0.042784 -vt 0.205532 0.063909 -vt 0.275828 0.042784 -vt 0.679039 0.006195 -vt 0.442553 0.687693 -vt 0.398013 0.422992 -vt 0.006175 0.821605 -vt 0.926977 0.738412 -vt 0.950578 0.869891 -vt 0.442553 0.854947 -vt 0.926128 0.067264 -vt 0.045164 0.953601 -vt 0.263570 0.898791 -vt 0.566971 0.892724 -vt 0.950578 0.626238 -vt 0.950578 0.857502 -vt 0.454904 0.892724 -vt 0.302558 0.898791 -vt 0.006175 0.953601 -vt 0.788877 0.199254 -vt 0.888061 0.173449 -vt 0.838465 0.382068 -vt 0.172907 0.933989 -vt 0.630782 0.919045 -vt 0.913777 0.006195 -vt 0.891933 0.318050 -vt 0.885859 0.896218 -vt 0.391099 0.307360 -vt 0.879583 0.446078 -vt 0.794310 0.857502 -vt 0.885859 0.780586 -vt 0.554621 0.700176 -vt 0.873509 0.677343 -vt 0.506364 0.880335 -vt 0.288178 0.422993 -vt 0.315027 0.886402 -vt 0.875710 0.121827 -vt 0.917663 0.523511 -vt 0.879583 0.292246 -vt 0.618432 0.880335 -vt 0.867694 0.626238 -vt 0.391099 0.121827 -vt 0.806661 0.922029 -vt 0.275828 0.410603 -vt 0.879583 0.407878 -vt 0.554621 0.815809 -vt 0.891933 0.433682 -vt 0.248290 0.766372 -vt 0.885859 0.664954 -vt 0.844741 0.818786 -vt 0.630779 0.725987 -vt 0.968095 0.350796 -vt 0.152088 0.950049 -vt 0.969002 0.470857 -vt 0.968095 0.399320 -vt 0.718027 0.977094 -vt 0.968095 0.338407 -vt 0.968095 0.289516 -vt 0.781838 0.970405 -vt 0.393157 0.961148 -vt 0.159439 0.898943 -vt 0.867079 0.908608 -vt 0.236878 0.753466 -vt 0.604327 0.340796 -vt 0.641683 0.006195 -vt 0.080887 0.693583 -vt 0.517265 0.340796 -vt 0.068536 0.358982 -vt 0.529616 0.006195 -vt 0.566971 0.353185 -vt 0.492260 0.687786 -vt 0.006175 0.693583 -vt 0.566971 0.006195 -vt 0.479909 0.340796 -vt 0.454904 0.687787 -vt 0.442553 0.121827 -vt 0.604327 0.353185 -vt 0.641683 0.687787 -vt 0.529616 0.353185 -vt 0.442553 0.468818 -vt 0.143973 0.358982 -vt 0.801228 0.006195 -vt 0.812735 0.214814 -vt 0.118243 0.577857 -vt 0.832391 0.832208 -vt 0.930014 0.394457 -vt 0.955744 0.214814 -vt 0.730499 0.792975 -vt 0.730499 0.865952 -vt 0.800384 0.360713 -vt 0.800384 0.433689 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.447200 0.000000 0.894400 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.447200 -0.894400 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.447200 0.000000 -0.894400 -vn -0.351100 0.000000 -0.936300 -vn -0.351100 0.000000 0.936300 -vn -0.351100 0.936300 0.000000 -vn -0.351100 -0.936300 0.000000 -vn 0.508600 0.694700 0.508600 -vn 0.258800 0.000000 -0.965900 -vn -0.186200 0.694700 0.694700 -vn 0.707100 0.000000 -0.707100 -vn -0.694700 0.694700 0.186200 -vn 0.965900 0.000000 -0.258800 -vn 0.186200 0.694700 -0.694700 -vn 0.965900 0.000000 0.258800 -vn -0.508600 0.694700 -0.508600 -vn 0.707100 0.000000 0.707100 -vn -0.186200 0.694700 -0.694700 -vn 0.258800 0.000000 0.965900 -vn 0.508600 0.694700 -0.508600 -vn -0.258800 0.000000 0.965900 -vn 0.694700 0.694700 0.186200 -vn -0.707100 0.000000 0.707100 -vn 0.186200 0.694700 0.694700 -vn -0.965900 0.000000 0.258800 -vn -0.694700 0.694700 -0.186200 -vn -0.965900 0.000000 -0.258800 -vn -0.508600 0.694700 0.508600 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.694700 0.694700 -0.186200 -vn 0.000000 0.242500 -0.970100 -vn 0.970100 0.242500 0.000000 -vn -0.970100 -0.242500 0.000000 -vn 0.000000 -0.242500 0.970100 -vn -0.970100 0.242500 0.000000 -vn 0.970100 -0.242500 0.000000 -vn 0.000000 0.242500 0.970100 -vn 0.000000 -0.242500 -0.970100 -vn -0.013300 0.000000 0.999900 -vn -0.999900 0.000000 -0.013300 -vn 0.999900 0.000000 0.013300 -vn 0.000000 0.694000 -0.719900 -vn 0.000000 -0.002100 -1.000000 -vn -0.999900 0.000000 -0.014000 -vn 1.000000 -0.004800 0.000000 -vn 0.006200 0.000000 1.000000 -vn -0.013300 0.019200 0.999700 -vn 0.005900 0.000000 1.000000 -vn 0.000000 0.006000 1.000000 -vn 0.013300 0.000000 -0.999900 -vn 0.000000 0.707100 0.707100 -vn 0.447800 -0.894200 0.000000 -vn -0.447800 0.894200 0.000000 -vn -0.447200 0.894400 0.000000 -vn -0.832100 0.000000 0.554700 -vn -0.832100 0.000000 -0.554700 -vn 0.000000 0.894400 -0.447200 -vn 0.000000 0.894400 0.447200 -vn 0.000000 -0.894400 0.447200 -vn 0.000000 -0.894400 -0.447200 -vn -0.447200 -0.894400 0.000000 -vn 0.707100 0.707100 0.000000 -vn 0.707400 -0.000300 -0.706800 -vn 0.707400 -0.000300 0.706800 -vn -1.000000 0.004800 0.000000 -vn 0.999900 0.000000 0.014000 -vn 0.000000 -0.006000 1.000000 -vn -0.013300 -0.019200 0.999700 -vn 0.447600 -0.894200 -0.000300 -vn 0.447600 -0.894200 0.000300 -vn 0.447600 -0.894200 -0.000100 -vn 0.447600 -0.894200 0.000100 -vn -0.447600 0.894200 -0.000300 -vn -0.447600 0.894200 -0.000100 -vn -0.447600 0.894200 0.000100 -vn -0.447600 0.894200 0.000300 -vn 0.707600 0.000000 -0.706600 -vn 0.707600 0.000000 0.706600 -s off -f 1/1/1 3/2/1 4/3/1 -f 10/4/2 7/5/2 8/6/2 -f 16/7/3 14/8/3 7/9/3 -f 12/10/4 1/11/4 2/12/4 -f 5/13/5 7/14/5 10/15/5 -f 2/16/6 4/17/6 9/18/6 -f 11/19/7 9/20/7 8/21/7 -f 12/22/8 10/23/8 3/24/8 -f 5/25/9 12/26/9 11/27/9 -f 3/28/10 10/29/10 9/30/10 -f 19/31/11 20/32/11 16/33/11 -f 13/34/3 15/35/3 6/36/3 -f 14/8/3 13/34/3 8/37/3 -f 15/35/3 16/7/3 5/38/3 -f 18/39/3 20/40/3 19/41/3 -f 18/42/12 17/43/12 13/44/12 -f 20/45/13 18/46/13 14/47/13 -f 17/48/14 19/49/14 15/50/14 -f 22/51/2 21/52/2 23/53/2 -f 25/54/9 26/55/9 24/56/9 -f 38/57/5 30/58/5 33/59/5 -f 39/60/5 37/61/5 28/62/5 -f 31/63/5 40/64/5 36/65/5 -f 29/66/5 34/67/5 41/68/5 -f 73/69/7 72/70/7 86/71/7 -f 56/72/15 54/73/15 71/74/15 -f 46/75/16 48/76/16 47/77/16 -f 43/78/7 78/79/7 80/80/7 -f 60/81/17 58/82/17 73/83/17 -f 48/84/18 50/85/18 49/86/18 -f 44/87/7 90/88/7 89/89/7 -f 64/90/19 62/91/19 75/92/19 -f 50/93/20 52/94/20 51/95/20 -f 75/96/7 83/97/7 82/98/7 -f 46/99/21 43/100/21 44/101/21 -f 52/102/22 54/103/22 53/104/22 -f 73/69/7 85/105/7 84/106/7 -f 66/107/23 77/108/23 78/109/23 -f 54/110/24 56/111/24 55/112/24 -f 71/113/7 87/114/7 86/71/7 -f 46/115/25 68/116/25 78/117/25 -f 56/118/26 58/119/26 57/120/26 -f 70/121/7 69/122/7 89/89/7 -f 48/123/27 44/124/27 69/125/27 -f 58/126/28 60/127/28 59/128/28 -f 77/129/7 81/130/7 80/80/7 -f 52/131/29 70/132/29 71/133/29 -f 60/134/30 62/135/30 61/136/30 -f 85/137/28 97/138/28 96/139/28 -f 58/140/31 56/141/31 72/142/31 -f 62/143/32 64/144/32 63/145/32 -f 64/146/33 76/147/33 77/148/33 -f 43/78/7 79/149/7 90/88/7 -f 64/150/34 66/151/34 65/152/34 -f 60/153/35 74/154/35 75/155/35 -f 68/156/36 46/157/36 45/158/36 -f 66/159/37 68/160/37 67/161/37 -f 71/113/7 70/121/7 88/162/7 -f 50/163/38 69/164/38 70/165/38 -f 51/166/5 63/167/5 67/168/5 -f 74/169/7 84/106/7 83/97/7 -f 76/170/7 82/98/7 81/130/7 -f 93/171/7 97/172/7 91/173/7 -f 82/174/34 94/175/34 93/176/34 -f 89/177/20 101/178/20 100/179/20 -f 86/180/26 98/181/26 97/182/26 -f 83/183/32 95/184/32 94/185/32 -f 90/186/18 102/187/18 101/188/18 -f 80/189/36 92/190/36 91/191/36 -f 87/192/24 99/193/24 98/194/24 -f 84/195/30 96/196/30 95/197/30 -f 79/198/16 91/199/16 102/200/16 -f 81/201/37 93/202/37 92/203/37 -f 88/204/22 100/205/22 99/206/22 -f 106/207/7 104/208/7 103/209/7 -f 108/210/7 107/211/7 109/212/7 -f 111/213/7 113/214/7 114/215/7 -f 117/216/7 118/217/7 116/218/7 -f 57/219/7 118/217/7 117/216/7 -f 110/220/7 51/221/7 108/210/7 -f 109/212/7 104/208/7 45/222/7 -f 116/218/7 118/217/7 63/223/7 -f 262/224/39 109/225/39 107/226/39 -f 107/227/40 108/228/40 264/229/40 -f 266/230/41 110/231/41 109/232/41 -f 108/233/42 110/234/42 266/235/42 -f 103/236/39 104/237/39 268/238/39 -f 272/239/43 105/240/43 103/241/43 -f 274/242/42 106/243/42 105/244/42 -f 41/245/44 34/246/44 267/247/44 -f 286/248/40 113/249/40 111/250/40 -f 111/251/45 112/252/45 288/253/45 -f 285/254/46 37/255/46 39/256/46 -f 112/257/41 114/258/41 290/259/41 -f 40/260/46 31/261/46 277/262/46 -f 279/263/44 36/264/44 40/265/44 -f 280/266/45 117/267/45 115/268/45 -f 115/269/43 116/270/43 278/271/43 -f 106/207/7 67/272/7 45/222/7 -f 63/223/7 65/273/7 106/207/7 -f 106/207/7 65/273/7 67/272/7 -f 110/220/7 45/222/7 47/274/7 -f 110/220/7 47/274/7 49/275/7 -f 49/275/7 51/221/7 110/220/7 -f 114/215/7 51/221/7 53/276/7 -f 114/215/7 53/276/7 55/277/7 -f 55/277/7 57/219/7 114/215/7 -f 57/219/7 59/278/7 118/217/7 -f 118/217/7 59/278/7 61/279/7 -f 61/279/7 63/223/7 118/217/7 -f 121/280/47 119/281/47 120/282/47 -f 120/283/48 124/284/48 126/285/48 -f 121/286/49 125/287/49 123/288/49 -f 121/289/5 122/290/5 126/291/5 -f 119/292/7 123/293/7 124/294/7 -f 130/295/3 129/296/3 127/297/3 -f 134/298/50 137/299/50 135/300/50 -f 132/301/1 131/302/1 133/303/1 -f 135/304/51 137/305/51 138/306/51 -f 129/307/5 133/308/5 131/309/5 -f 134/310/7 130/311/7 128/312/7 -f 129/296/52 130/295/52 135/313/52 -f 133/303/53 138/314/53 137/315/53 -f 129/307/5 136/316/5 138/317/5 -f 131/318/54 132/319/54 123/320/54 -f 124/321/55 123/320/55 132/319/55 -f 128/322/56 127/323/56 126/324/56 -f 126/324/57 127/323/57 131/318/57 -f 140/325/58 139/326/58 141/327/58 -f 145/328/47 143/329/47 144/330/47 -f 142/331/5 141/332/5 145/333/5 -f 140/334/7 144/335/7 143/336/7 -f 142/337/48 146/338/48 144/339/48 -f 139/340/49 143/341/49 145/342/49 -f 150/343/3 149/344/3 147/345/3 -f 154/346/2 153/347/2 149/348/2 -f 152/349/1 151/350/1 153/351/1 -f 148/352/59 156/353/59 157/354/59 -f 149/355/5 153/356/5 151/357/5 -f 154/358/7 150/359/7 148/360/7 -f 156/361/9 155/362/9 158/363/9 -f 151/350/1 152/349/1 157/364/1 -f 147/345/3 155/365/3 156/366/3 -f 151/357/5 158/367/5 155/368/5 -f 207/369/60 167/370/60 208/371/60 -f 161/372/8 164/373/8 163/374/8 -f 159/375/8 171/376/8 170/377/8 -f 173/378/8 159/375/8 161/372/8 -f 183/379/61 211/380/61 212/381/61 -f 180/382/62 178/383/62 177/384/62 -f 187/385/62 175/386/62 186/387/62 -f 189/388/62 177/384/62 175/386/62 -f 177/389/2 178/390/2 162/391/2 -f 177/392/7 193/393/7 194/394/7 -f 160/395/9 176/396/9 175/397/9 -f 211/398/3 215/399/3 216/400/3 -f 168/401/37 169/402/37 185/403/37 -f 186/404/36 185/405/36 169/406/36 -f 170/407/16 171/408/16 187/409/16 -f 171/410/18 172/411/18 188/412/18 -f 172/413/20 173/414/20 189/415/20 -f 174/416/22 190/417/22 189/418/22 -f 163/419/24 179/420/24 190/421/24 -f 164/422/26 180/423/26 179/424/26 -f 165/425/28 181/426/28 180/427/28 -f 166/428/30 182/429/30 181/430/30 -f 167/431/32 183/432/32 182/433/32 -f 167/434/34 168/435/34 184/436/34 -f 194/437/3 193/438/3 191/439/3 -f 175/440/63 194/441/63 192/442/63 -f 159/443/5 192/444/5 191/445/5 -f 161/446/64 191/447/64 193/448/64 -f 198/449/3 197/450/3 195/451/3 -f 202/452/2 201/453/2 197/454/2 -f 200/455/1 199/456/1 201/457/1 -f 196/458/9 195/459/9 199/460/9 -f 197/461/5 201/462/5 199/463/5 -f 198/464/65 204/465/65 205/466/65 -f 206/467/9 210/468/9 207/469/9 -f 202/470/6 205/471/6 206/472/6 -f 196/473/62 203/474/62 204/475/62 -f 200/476/66 206/477/66 203/478/66 -f 209/479/1 213/480/1 214/481/1 -f 204/482/2 208/483/2 209/484/2 -f 205/485/1 209/479/1 210/486/1 -f 203/487/3 207/488/3 208/489/3 -f 214/490/7 211/491/7 176/492/7 -f 295/493/5 160/494/5 207/495/5 -f 285/496/7 210/497/7 295/498/7 -f 226/499/67 224/500/67 215/501/67 -f 214/502/9 218/503/9 215/504/9 -f 212/505/2 216/506/2 217/507/2 -f 213/480/1 217/508/1 218/509/1 -f 208/510/5 162/511/5 296/512/5 -f 296/513/7 209/514/7 263/515/7 -f 212/516/7 213/517/7 178/518/7 -f 221/519/7 222/520/7 220/521/7 -f 225/522/8 226/523/8 218/524/8 -f 221/525/1 226/526/1 225/527/1 -f 220/528/3 223/529/3 224/530/3 -f 219/531/9 224/532/9 226/533/9 -f 222/534/2 225/535/2 223/536/2 -f 223/537/68 225/538/68 217/539/68 -f 224/540/69 223/541/69 216/542/69 -f 234/543/7 242/544/7 236/545/7 -f 232/546/7 240/547/7 241/548/7 -f 230/549/7 238/550/7 239/551/7 -f 227/552/7 235/553/7 237/554/7 -f 245/555/70 243/556/70 227/557/70 -f 247/558/70 246/559/70 230/560/70 -f 249/561/70 248/562/70 232/563/70 -f 244/564/70 250/565/70 234/566/70 -f 253/567/1 251/568/1 243/569/1 -f 255/570/1 254/571/1 246/572/1 -f 257/573/1 256/574/1 248/575/1 -f 252/576/1 258/577/1 250/578/1 -f 263/579/42 265/580/42 42/581/42 -f 264/582/42 266/235/42 265/580/42 -f 42/583/41 265/584/41 261/585/41 -f 265/584/41 266/230/41 262/586/41 -f 259/587/40 263/588/40 33/589/40 -f 260/590/40 264/229/40 263/588/40 -f 38/591/39 261/592/39 259/593/39 -f 261/592/39 262/224/39 260/594/39 -f 274/595/44 268/596/44 104/597/44 -f 273/598/44 267/247/44 268/596/44 -f 41/599/42 273/600/42 271/601/42 -f 273/600/42 274/242/42 272/602/42 -f 35/603/43 271/604/43 269/605/43 -f 271/604/43 272/239/43 270/606/43 -f 269/607/39 267/608/39 34/609/39 -f 270/610/39 268/238/39 267/608/39 -f 281/611/43 277/612/43 31/613/43 -f 282/614/43 278/271/43 277/612/43 -f 36/615/45 279/616/45 281/617/45 -f 279/616/45 280/266/45 282/618/45 -f 117/619/44 280/620/44 276/621/44 -f 280/620/44 279/263/44 275/622/44 -f 276/623/46 278/624/46 116/625/46 -f 275/626/46 277/262/46 278/624/46 -f 287/627/41 289/628/41 39/629/41 -f 288/630/41 290/259/41 289/628/41 -f 113/631/46 286/632/46 290/633/46 -f 286/632/46 285/254/46 289/634/46 -f 283/635/45 287/636/45 32/637/45 -f 284/638/45 288/253/45 287/636/45 -f 37/639/40 285/640/40 283/641/40 -f 285/640/40 286/248/40 284/642/40 -f 275/643/7 279/644/7 128/312/7 -f 134/310/7 132/645/7 287/646/7 -f 154/358/7 152/647/7 265/648/7 -f 267/649/7 273/650/7 148/360/7 -f 262/651/7 268/652/7 274/653/7 -f 272/654/7 278/655/7 276/656/7 -f 290/657/7 276/658/7 280/659/7 -f 286/660/7 264/661/7 266/662/7 -f 273/663/7 271/664/7 291/665/7 -f 277/666/7 275/667/7 293/668/7 -f 178/669/71 213/670/71 296/671/71 -f 295/672/72 214/673/72 176/674/72 -f 2/675/1 1/1/1 4/3/1 -f 9/676/2 10/4/2 8/6/2 -f 5/38/3 16/7/3 7/9/3 -f 11/677/4 12/10/4 2/12/4 -f 12/678/5 5/13/5 10/15/5 -f 11/679/6 2/16/6 9/18/6 -f 6/680/7 11/19/7 8/21/7 -f 1/681/8 12/22/8 3/24/8 -f 6/682/9 5/25/9 11/27/9 -f 4/683/10 3/28/10 9/30/10 -f 15/684/11 19/31/11 16/33/11 -f 8/37/3 13/34/3 6/36/3 -f 7/9/3 14/8/3 8/37/3 -f 6/36/3 15/35/3 5/38/3 -f 17/685/3 18/39/3 19/41/3 -f 14/686/12 18/42/12 13/44/12 -f 16/687/13 20/45/13 14/47/13 -f 13/688/14 17/48/14 15/50/14 -f 42/689/5 38/57/5 33/59/5 -f 32/690/5 39/60/5 28/62/5 -f 27/691/5 31/63/5 36/65/5 -f 35/692/5 29/66/5 41/68/5 -f 85/105/7 73/69/7 86/71/7 -f 72/693/15 56/72/15 71/74/15 -f 45/694/16 46/75/16 47/77/16 -f 79/149/7 43/78/7 80/80/7 -f 74/695/17 60/81/17 73/83/17 -f 47/696/18 48/84/18 49/86/18 -f 69/122/7 44/87/7 89/89/7 -f 76/697/19 64/90/19 75/92/19 -f 49/698/20 50/93/20 51/95/20 -f 76/170/7 75/96/7 82/98/7 -f 48/699/21 46/99/21 44/101/21 -f 51/700/22 52/102/22 53/104/22 -f 74/169/7 73/69/7 84/106/7 -f 68/701/23 66/107/23 78/109/23 -f 53/702/24 54/110/24 55/112/24 -f 72/70/7 71/113/7 86/71/7 -f 43/703/25 46/115/25 78/117/25 -f 55/704/26 56/118/26 57/120/26 -f 88/162/7 70/121/7 89/89/7 -f 50/705/27 48/123/27 69/125/27 -f 57/706/28 58/126/28 59/128/28 -f 78/79/7 77/129/7 80/80/7 -f 54/707/29 52/131/29 71/133/29 -f 59/708/30 60/134/30 61/136/30 -f 84/709/28 85/137/28 96/139/28 -f 73/710/31 58/140/31 72/142/31 -f 61/711/32 62/143/32 63/145/32 -f 66/712/33 64/146/33 77/148/33 -f 44/87/7 43/78/7 90/88/7 -f 63/713/34 64/150/34 65/152/34 -f 62/714/35 60/153/35 75/155/35 -f 67/715/36 68/156/36 45/158/36 -f 65/716/37 66/159/37 67/161/37 -f 87/114/7 71/113/7 88/162/7 -f 52/717/38 50/163/38 70/165/38 -f 67/168/5 45/718/5 47/719/5 -f 47/719/5 49/720/5 67/168/5 -f 51/166/5 53/721/5 55/722/5 -f 55/722/5 57/723/5 59/724/5 -f 59/724/5 61/725/5 63/167/5 -f 63/167/5 65/726/5 67/168/5 -f 67/168/5 49/720/5 51/166/5 -f 51/166/5 55/722/5 59/724/5 -f 59/724/5 63/167/5 51/166/5 -f 75/96/7 74/169/7 83/97/7 -f 77/129/7 76/170/7 81/130/7 -f 101/727/7 102/728/7 91/173/7 -f 91/173/7 92/729/7 93/171/7 -f 93/171/7 94/730/7 97/172/7 -f 95/731/7 96/732/7 97/172/7 -f 97/172/7 98/733/7 99/734/7 -f 99/734/7 100/735/7 97/172/7 -f 101/727/7 91/173/7 97/172/7 -f 94/730/7 95/731/7 97/172/7 -f 97/172/7 100/735/7 101/727/7 -f 81/736/34 82/174/34 93/176/34 -f 88/737/20 89/177/20 100/179/20 -f 85/738/26 86/180/26 97/182/26 -f 82/739/32 83/183/32 94/185/32 -f 89/740/18 90/186/18 101/188/18 -f 79/741/36 80/189/36 91/191/36 -f 86/742/24 87/192/24 98/194/24 -f 83/743/30 84/195/30 95/197/30 -f 90/744/16 79/198/16 102/200/16 -f 80/745/37 81/201/37 92/203/37 -f 87/746/22 88/204/22 99/206/22 -f 105/747/7 106/207/7 103/209/7 -f 110/220/7 108/210/7 109/212/7 -f 112/748/7 111/213/7 114/215/7 -f 115/749/7 117/216/7 116/218/7 -f 117/216/7 112/748/7 57/219/7 -f 114/215/7 57/219/7 112/748/7 -f 113/214/7 108/210/7 51/221/7 -f 51/221/7 114/215/7 113/214/7 -f 106/207/7 45/222/7 104/208/7 -f 110/220/7 109/212/7 45/222/7 -f 63/223/7 106/207/7 105/747/7 -f 105/747/7 116/218/7 63/223/7 -f 260/594/39 262/224/39 107/226/39 -f 260/590/40 107/227/40 264/229/40 -f 262/586/41 266/230/41 109/232/41 -f 264/582/42 108/233/42 266/235/42 -f 270/610/39 103/236/39 268/238/39 -f 270/606/43 272/239/43 103/241/43 -f 272/602/42 274/242/42 105/244/42 -f 273/598/44 41/245/44 267/247/44 -f 284/642/40 286/248/40 111/250/40 -f 284/638/45 111/251/45 288/253/45 -f 289/634/46 285/254/46 39/256/46 -f 288/630/41 112/257/41 290/259/41 -f 275/626/46 40/260/46 277/262/46 -f 275/622/44 279/263/44 40/265/44 -f 282/618/45 280/266/45 115/268/45 -f 282/614/43 115/269/43 278/271/43 -f 122/750/47 121/280/47 120/282/47 -f 122/751/48 120/283/48 126/285/48 -f 119/752/49 121/286/49 123/288/49 -f 125/753/5 121/289/5 126/291/5 -f 120/754/7 119/292/7 124/294/7 -f 128/755/3 130/295/3 127/297/3 -f 130/756/50 134/298/50 135/300/50 -f 134/757/1 132/301/1 133/303/1 -f 136/758/51 135/304/51 138/306/51 -f 127/759/5 129/307/5 131/309/5 -f 132/645/7 134/310/7 128/312/7 -f 136/760/73 129/296/73 135/313/73 -f 134/757/74 133/303/74 137/315/74 -f 133/308/5 129/307/5 138/317/5 -f 125/761/54 131/318/54 123/320/54 -f 128/322/75 124/321/75 132/319/75 -f 124/321/56 128/322/56 126/324/56 -f 125/761/76 126/324/76 131/318/76 -f 142/762/58 140/325/58 141/327/58 -f 146/763/47 145/328/47 144/330/47 -f 146/764/5 142/331/5 145/333/5 -f 139/765/7 140/334/7 143/336/7 -f 140/766/48 142/337/48 144/339/48 -f 141/767/49 139/340/49 145/342/49 -f 148/768/3 150/343/3 147/345/3 -f 150/769/2 154/346/2 149/348/2 -f 154/770/1 152/349/1 153/351/1 -f 152/771/59 148/352/59 157/354/59 -f 147/772/5 149/355/5 151/357/5 -f 152/647/7 154/358/7 148/360/7 -f 157/773/9 156/361/9 158/363/9 -f 158/774/1 151/350/1 157/364/1 -f 148/768/3 147/345/3 156/366/3 -f 147/772/5 151/357/5 155/368/5 -f 165/775/8 162/776/8 166/777/8 -f 207/369/77 160/778/77 168/779/77 -f 166/777/78 162/776/78 208/371/78 -f 160/778/8 169/780/8 168/779/8 -f 166/777/79 208/371/79 167/370/79 -f 207/369/80 168/779/80 167/370/80 -f 174/781/8 173/378/8 161/372/8 -f 161/372/8 162/776/8 164/373/8 -f 163/374/8 174/781/8 161/372/8 -f 162/776/8 165/775/8 164/373/8 -f 170/377/8 169/780/8 160/778/8 -f 159/375/8 173/378/8 172/782/8 -f 170/377/8 160/778/8 159/375/8 -f 159/375/8 172/782/8 171/376/8 -f 178/383/62 181/783/62 182/784/62 -f 184/785/62 185/786/62 176/787/62 -f 178/383/81 182/784/81 212/381/81 -f 183/379/82 184/785/82 211/380/82 -f 212/381/83 182/784/83 183/379/83 -f 184/785/84 176/787/84 211/380/84 -f 177/384/62 189/388/62 190/788/62 -f 180/382/62 181/783/62 178/383/62 -f 177/384/62 190/788/62 179/789/62 -f 179/789/62 180/382/62 177/384/62 -f 176/787/62 185/786/62 186/387/62 -f 188/790/62 189/388/62 175/386/62 -f 176/787/62 186/387/62 175/386/62 -f 187/385/62 188/790/62 175/386/62 -f 161/791/2 177/389/2 162/391/2 -f 175/792/7 177/392/7 194/394/7 -f 159/793/9 160/395/9 175/397/9 -f 212/794/3 211/398/3 216/400/3 -f 184/795/37 168/401/37 185/403/37 -f 170/796/36 186/404/36 169/406/36 -f 186/797/16 170/407/16 187/409/16 -f 187/798/18 171/410/18 188/412/18 -f 188/799/20 172/413/20 189/415/20 -f 173/800/22 174/416/22 189/418/22 -f 174/801/24 163/419/24 190/421/24 -f 163/802/26 164/422/26 179/424/26 -f 164/803/28 165/425/28 180/427/28 -f 165/804/30 166/428/30 181/430/30 -f 166/805/32 167/431/32 182/433/32 -f 183/806/34 167/434/34 184/436/34 -f 192/807/3 194/437/3 191/439/3 -f 159/808/63 175/440/63 192/442/63 -f 161/809/5 159/443/5 191/445/5 -f 177/810/64 161/446/64 193/448/64 -f 196/811/3 198/449/3 195/451/3 -f 198/812/2 202/452/2 197/454/2 -f 202/813/1 200/455/1 201/457/1 -f 200/814/9 196/458/9 199/460/9 -f 195/815/5 197/461/5 199/463/5 -f 202/816/65 198/464/65 205/466/65 -f 203/817/9 206/467/9 207/469/9 -f 200/818/6 202/470/6 206/472/6 -f 198/819/62 196/473/62 204/475/62 -f 196/820/66 200/476/66 203/478/66 -f 210/486/1 209/479/1 214/481/1 -f 205/821/2 204/482/2 209/484/2 -f 206/822/1 205/485/1 210/486/1 -f 204/823/3 203/487/3 208/489/3 -f 210/824/5 295/493/5 207/495/5 -f 289/825/7 285/496/7 295/498/7 -f 218/826/67 226/499/67 215/501/67 -f 211/827/9 214/502/9 215/504/9 -f 213/828/2 212/505/2 217/507/2 -f 214/481/1 213/480/1 218/509/1 -f 209/829/5 208/510/5 296/512/5 -f 265/830/7 296/513/7 263/515/7 -f 219/831/7 221/519/7 220/521/7 -f 217/832/8 225/522/8 218/524/8 -f 222/833/1 221/525/1 225/527/1 -f 219/834/3 220/528/3 224/530/3 -f 221/835/9 219/531/9 226/533/9 -f 220/836/2 222/534/2 223/536/2 -f 216/837/68 223/537/68 217/539/68 -f 215/838/69 224/540/69 216/542/69 -f 228/839/7 234/543/7 236/545/7 -f 233/840/7 232/546/7 241/548/7 -f 231/841/7 230/549/7 239/551/7 -f 229/842/7 227/552/7 237/554/7 -f 229/843/70 245/555/70 227/557/70 -f 231/844/70 247/558/70 230/560/70 -f 233/845/70 249/561/70 232/563/70 -f 228/846/70 244/564/70 234/566/70 -f 245/847/1 253/567/1 243/569/1 -f 247/848/1 255/570/1 246/572/1 -f 249/849/1 257/573/1 248/575/1 -f 244/850/1 252/576/1 250/578/1 -f 33/851/42 263/579/42 42/581/42 -f 263/579/42 264/582/42 265/580/42 -f 38/852/41 42/583/41 261/585/41 -f 261/585/41 265/584/41 262/586/41 -f 30/853/40 259/587/40 33/589/40 -f 259/587/40 260/590/40 263/588/40 -f 30/854/39 38/591/39 259/593/39 -f 259/593/39 261/592/39 260/594/39 -f 106/855/44 274/595/44 104/597/44 -f 274/595/44 273/598/44 268/596/44 -f 35/856/42 41/599/42 271/601/42 -f 271/601/42 273/600/42 272/602/42 -f 29/857/43 35/603/43 269/605/43 -f 269/605/43 271/604/43 270/606/43 -f 29/858/39 269/607/39 34/609/39 -f 269/607/39 270/610/39 267/608/39 -f 27/859/43 281/611/43 31/613/43 -f 281/611/43 282/614/43 277/612/43 -f 27/860/45 36/615/45 281/617/45 -f 281/617/45 279/616/45 282/618/45 -f 118/861/44 117/619/44 276/621/44 -f 276/621/44 280/620/44 275/622/44 -f 118/862/46 276/623/46 116/625/46 -f 276/623/46 275/626/46 278/624/46 -f 32/863/41 287/627/41 39/629/41 -f 287/627/41 288/630/41 289/628/41 -f 114/864/46 113/631/46 290/633/46 -f 290/633/46 286/632/46 289/634/46 -f 28/865/45 283/635/45 32/637/45 -f 283/635/45 284/638/45 287/636/45 -f 28/866/40 37/639/40 283/641/40 -f 283/641/40 285/640/40 284/642/40 -f 130/311/7 275/643/7 128/312/7 -f 289/867/7 134/310/7 287/646/7 -f 261/868/7 154/358/7 265/648/7 -f 150/359/7 267/649/7 148/360/7 -f 266/869/7 262/651/7 274/653/7 -f 274/870/7 272/654/7 276/656/7 -f 288/871/7 290/657/7 280/659/7 -f 290/872/7 286/660/7 266/662/7 -f 292/873/7 273/663/7 291/665/7 -f 294/874/7 277/666/7 293/668/7 -f 209/875/18 296/671/18 213/670/18 -f 162/876/85 178/669/85 296/671/85 -f 176/674/86 160/877/86 295/672/86 -f 295/672/24 210/878/24 214/673/24 diff --git a/src/main/resources/assets/hbm/models/generator.obj b/src/main/resources/assets/hbm/models/generator.obj deleted file mode 100644 index ca085d7e7..000000000 --- a/src/main/resources/assets/hbm/models/generator.obj +++ /dev/null @@ -1,1625 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'generator.blend' -# www.blender.org -o Circle -v -2.900000 1.500000 -0.300000 -v -2.900000 1.614805 -0.277164 -v -2.700000 1.846454 -0.143506 -v -2.900000 1.777164 -0.114805 -v -2.900000 1.800000 0.000000 -v -2.900000 1.777164 0.114805 -v -2.700000 1.875000 0.000000 -v -2.900000 1.614805 0.277164 -v -2.900000 1.500000 0.300000 -v -2.900000 1.385195 0.277164 -v -2.700000 1.500000 -0.375000 -v -2.900000 1.222836 0.114805 -v -2.900000 1.200000 -0.000000 -v -2.900000 1.222836 -0.114805 -v -2.700000 1.643506 -0.346455 -v -2.900000 1.385195 -0.277164 -v -2.900000 1.500000 -0.105000 -v -2.900000 1.540182 -0.097007 -v -2.900000 1.574246 -0.074246 -v -2.900000 1.597007 -0.040182 -v -2.900000 1.605000 0.000000 -v -2.900000 1.597007 0.040182 -v -2.900000 1.574246 0.074246 -v -2.900000 1.540182 0.097007 -v -2.900000 1.500000 0.105000 -v -2.900000 1.459818 0.097007 -v -2.900000 1.425754 0.074246 -v -2.900000 1.402992 0.040182 -v -2.900000 1.395000 -0.000000 -v -2.900000 1.402992 -0.040182 -v -2.900000 1.425754 -0.074246 -v -2.900000 1.459818 -0.097007 -v -2.700000 1.846454 0.143506 -v -2.700000 1.500000 0.375000 -v -2.700000 1.643506 0.346455 -v -2.700000 1.356493 0.346455 -v -2.700000 1.125000 -0.000000 -v -2.700000 1.153545 0.143506 -v -2.700000 1.153545 -0.143506 -v -2.700000 1.356494 -0.346455 -v -2.700000 1.540182 -0.097007 -v -1.000000 2.423879 -0.382683 -v -2.700000 1.574246 -0.074246 -v -2.700000 1.597007 -0.040182 -v -2.700000 1.597007 0.040182 -v -2.700000 1.574246 0.074246 -v -2.700000 1.540182 0.097007 -v -2.700000 1.459818 0.097007 -v -2.700000 1.425754 0.074246 -v -2.700000 1.402992 0.040182 -v -1.000000 1.500000 -1.000000 -v -2.700000 1.402992 -0.040182 -v -2.700000 1.425754 -0.074246 -v -2.700000 1.459818 -0.097007 -v -2.600000 1.153545 -0.143506 -v -2.600000 1.125000 -0.000000 -v -2.600000 1.500000 -0.375000 -v -2.600000 1.356494 -0.346455 -v -2.600000 1.153545 0.143506 -v -2.600000 1.356494 0.346455 -v -2.600000 1.500000 0.375000 -v -2.600000 1.643506 0.346455 -v -2.600000 1.846454 0.143506 -v -2.600000 1.875000 0.000000 -v -2.600000 1.846454 -0.143506 -v -2.600000 1.643506 -0.346455 -v -2.600000 1.540182 -0.097007 -v -2.600000 1.500000 -0.105000 -v -2.600000 1.574246 -0.074246 -v -2.600000 1.597007 -0.040182 -v -2.600000 1.605000 0.000000 -v -2.600000 1.597007 0.040182 -v -2.600000 1.574246 0.074246 -v -2.600000 1.540182 0.097007 -v -2.600000 1.500000 0.105000 -v -2.600000 1.459818 0.097007 -v -2.600000 1.425754 0.074246 -v -2.600000 1.402992 0.040182 -v -2.600000 1.395000 -0.000000 -v -2.600000 1.402992 -0.040182 -v -2.600000 1.425754 -0.074246 -v -2.600000 1.459818 -0.097007 -v -1.000000 2.500000 0.000000 -v -1.000000 1.882683 0.923879 -v -1.000000 1.500000 1.000000 -v 0.500000 2.000000 0.000000 -v 0.500000 1.961939 0.191342 -v -1.000000 0.576121 0.382684 -v -1.000000 0.500000 -0.000000 -v -1.000000 1.117317 -0.923880 -v -0.500000 2.423879 -0.382683 -v -0.500000 1.500000 -1.000000 -v -0.500000 2.500000 0.000000 -v -0.500000 1.882683 0.923879 -v -0.500000 1.500000 1.000000 -v 0.500000 1.500000 -0.500000 -v 0.500000 1.691342 -0.461940 -v -0.500000 0.576121 0.382684 -v -0.500000 0.500000 -0.000000 -v -0.500000 1.117317 -0.923880 -v -0.000000 1.882683 -0.923879 -v -0.000000 1.500000 -1.000000 -v -0.000000 2.500000 0.000000 -v -0.000000 2.423879 0.382683 -v -0.000000 1.500000 1.000000 -v -0.000000 1.117316 0.923880 -v 0.500000 0.500000 -0.000000 -v 0.500000 0.576121 -0.382684 -v -0.000000 0.500000 -0.000000 -v -0.000000 0.576121 -0.382684 -v -1.000000 1.961939 -0.191342 -v -1.000000 1.500000 -0.500000 -v -1.000000 1.999999 0.000000 -v -1.000000 1.691341 0.461940 -v -1.000000 1.500000 0.500000 -v 0.500000 1.500000 1.000000 -v 0.500000 1.117316 0.923880 -v -1.000000 1.038060 0.191342 -v -1.000000 1.000000 -0.000000 -v -1.000000 1.308658 -0.461940 -v -0.500000 1.961939 -0.191342 -v -0.500000 1.500000 -0.500000 -v -0.500000 1.999999 0.000000 -v -0.500000 1.691341 0.461940 -v -0.500000 1.500000 0.500000 -v 0.500000 2.500000 0.000000 -v 0.500000 2.423879 0.382683 -v -0.500000 1.038060 0.191342 -v -0.500000 1.000000 -0.000000 -v 0.500000 1.000000 -0.000000 -v 0.500000 1.038060 -0.191342 -v -0.500000 1.308658 -0.461940 -v -0.000000 1.691341 -0.461940 -v -0.000000 1.500000 -0.500000 -v -0.000000 2.000000 0.000000 -v -0.000000 1.961939 0.191342 -v -0.000000 1.500000 0.500000 -v -0.000000 1.308658 0.461940 -v 0.500000 1.500000 -1.000000 -v 0.500000 1.882683 -0.923879 -v -0.000000 1.000000 -0.000000 -v -0.000000 1.038060 -0.191342 -v 0.500000 1.500000 0.500000 -v 0.500000 1.308658 0.461940 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 0.923900 0.382700 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.980800 0.195100 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 0.831500 -0.555600 -vn -0.000000 0.195100 0.980800 -vn 0.000000 0.555600 -0.831500 -vn -0.000000 -0.382700 0.923900 -vn 0.000000 -0.555600 0.831500 -vn -0.000000 0.382700 0.923900 -vn -0.345200 0.920500 -0.183100 -vn -0.345200 -0.920500 0.183100 -vn -0.345200 0.920500 0.183100 -vn -0.345200 -0.920500 -0.183100 -vn 0.000000 0.831500 0.555600 -vn 0.000000 -0.831500 -0.555600 -vn -0.345200 0.183100 0.920500 -vn 0.000000 0.555600 0.831500 -vn 0.000000 -0.923900 0.382700 -vn -0.345200 0.183100 -0.920500 -vn -0.345200 -0.183100 -0.920500 -vn 0.000000 -0.555600 -0.831500 -vn -0.345200 -0.183100 0.920500 -vn -0.000000 0.382700 -0.923900 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 0.980800 -0.195100 -vn -0.000000 -0.195100 0.980800 -vn 0.000000 0.195100 -0.980800 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn -0.000000 0.000000 -1.000000 -vn -0.000000 1.000000 0.000000 -vn -0.357400 -0.000000 0.933900 -vn -0.357400 -0.933900 0.000000 -vn -0.357400 0.000000 -0.933900 -vn -0.357400 0.933900 0.000000 -vn -0.607800 -0.303900 0.733700 -vn -0.607800 -0.733700 -0.303900 -vn -0.607800 0.303900 -0.733700 -vn -0.607800 0.733700 0.303900 -vn 0.607800 -0.000000 -0.794100 -vn 0.357400 -0.357400 -0.862900 -vn 0.607800 0.794100 -0.000000 -vn 0.357400 0.862900 -0.357400 -vn 0.607800 0.000000 0.794100 -vn 0.357400 0.357400 0.862900 -vn 0.607800 -0.794100 0.000000 -vn 0.357400 -0.862900 0.357400 -s off -f 5//1 21//1 22//1 -f 20//1 21//1 5//1 -f 17//1 18//1 2//1 -f 32//1 17//1 1//1 -f 29//1 30//1 14//1 -f 28//1 29//1 13//1 -f 25//1 26//1 10//1 -f 24//1 25//1 9//1 -f 27//1 21//1 19//1 -f 35//2 62//2 74//2 -f 41//3 67//3 66//3 -f 65//4 70//4 44//4 -f 63//5 64//5 7//5 -f 48//6 76//6 60//6 -f 50//7 78//7 77//7 -f 11//8 57//8 58//8 -f 44//9 70//9 69//9 -f 35//10 34//10 61//10 -f 19//11 43//11 41//11 -f 45//12 33//12 6//12 -f 27//13 49//13 48//13 -f 12//14 38//14 50//14 -f 5//15 7//15 3//15 -f 20//9 44//9 43//9 -f 37//16 38//16 12//16 -f 28//7 50//7 49//7 -f 10//6 26//6 48//6 -f 33//17 7//17 5//17 -f 4//4 3//4 44//4 -f 14//18 39//18 37//18 -f 2//3 18//3 41//3 -f 8//2 35//2 47//2 -f 23//19 46//19 45//19 -f 31//20 53//20 52//20 -f 8//21 9//21 34//21 -f 24//22 47//22 46//22 -f 16//23 40//23 54//23 -f 2//24 15//24 11//24 -f 1//25 11//25 40//25 -f 32//26 54//26 53//26 -f 10//27 36//27 34//27 -f 52//28 39//28 14//28 -f 64//29 63//29 72//29 -f 64//29 71//29 70//29 -f 57//29 66//29 67//29 -f 57//29 68//29 82//29 -f 55//29 80//29 79//29 -f 59//29 56//29 79//29 -f 60//29 76//29 75//29 -f 61//29 75//29 74//29 -f 75//29 79//29 71//29 -f 46//19 73//19 72//19 -f 56//30 59//30 38//30 -f 53//20 81//20 80//20 -f 64//31 65//31 3//31 -f 47//22 74//22 73//22 -f 54//23 40//23 58//23 -f 34//32 36//32 60//32 -f 54//26 82//26 81//26 -f 15//33 66//33 57//33 -f 80//28 55//28 39//28 -f 43//11 69//11 67//11 -f 72//12 63//12 33//12 -f 55//34 56//34 37//34 -f 49//13 77//13 76//13 -f 59//14 78//14 50//14 -f 83//31 93//31 91//31 -f 93//31 103//31 91//31 -f 103//5 93//5 104//5 -f 85//10 95//10 94//10 -f 94//10 95//10 105//10 -f 105//32 95//32 106//32 -f 89//30 99//30 98//30 -f 99//30 109//30 98//30 -f 109//34 99//34 110//34 -f 51//8 92//8 100//8 -f 92//8 102//8 100//8 -f 102//33 92//33 101//33 -f 114//1 115//1 85//1 -f 111//1 113//1 83//1 -f 120//1 112//1 51//1 -f 88//1 118//1 119//1 -f 118//31 128//31 129//31 -f 132//10 122//10 112//10 -f 121//30 123//30 113//30 -f 124//8 125//8 115//8 -f 110//34 108//34 107//34 -f 104//5 127//5 126//5 -f 133//3 97//3 140//3 -f 109//35 107//35 130//35 -f 125//8 124//8 137//8 -f 137//33 138//33 125//33 -f 128//31 141//31 129//31 -f 141//5 142//5 129//5 -f 132//10 134//10 122//10 -f 134//32 133//32 122//32 -f 121//30 135//30 123//30 -f 135//34 136//34 123//34 -f 98//14 128//14 118//14 -f 93//35 83//35 113//35 -f 95//36 85//36 115//36 -f 100//23 132//23 120//23 -f 99//37 89//37 119//37 -f 94//2 124//2 114//2 -f 91//4 121//4 111//4 -f 92//38 51//38 112//38 -f 136//39 93//39 123//39 -f 138//40 95//40 125//40 -f 142//41 99//41 129//41 -f 133//42 92//42 122//42 -f 93//43 136//43 104//43 -f 95//44 138//44 106//44 -f 99//45 142//45 110//45 -f 92//46 133//46 101//46 -f 91//47 103//47 135//47 -f 135//48 121//48 91//48 -f 94//49 105//49 137//49 -f 137//50 124//50 94//50 -f 98//51 109//51 141//51 -f 141//52 128//52 98//52 -f 100//53 102//53 134//53 -f 134//54 132//54 100//54 -f 140//29 97//29 96//29 -f 126//29 127//29 87//29 -f 117//29 144//29 143//29 -f 108//29 131//29 130//29 -f 102//36 139//36 96//36 -f 135//34 86//34 87//34 -f 136//12 87//12 127//12 -f 141//5 130//5 131//5 -f 103//37 126//37 86//37 -f 101//33 140//33 139//33 -f 138//6 144//6 117//6 -f 105//32 106//32 117//32 -f 105//38 116//38 143//38 -f 134//32 96//32 97//32 -f 137//33 143//33 144//33 -f 142//28 131//28 108//28 -f 6//1 5//1 22//1 -f 4//1 20//1 5//1 -f 1//1 17//1 2//1 -f 16//1 32//1 1//1 -f 13//1 29//1 14//1 -f 12//1 28//1 13//1 -f 9//1 25//1 10//1 -f 8//1 24//1 9//1 -f 19//1 18//1 17//1 -f 17//1 32//1 31//1 -f 31//1 30//1 29//1 -f 29//1 28//1 27//1 -f 27//1 26//1 25//1 -f 25//1 24//1 23//1 -f 23//1 22//1 21//1 -f 21//1 20//1 19//1 -f 19//1 17//1 31//1 -f 31//1 29//1 27//1 -f 27//1 25//1 23//1 -f 23//1 21//1 27//1 -f 19//1 31//1 27//1 -f 47//2 35//2 74//2 -f 15//3 41//3 66//3 -f 3//4 65//4 44//4 -f 33//5 63//5 7//5 -f 36//6 48//6 60//6 -f 49//7 50//7 77//7 -f 40//8 11//8 58//8 -f 43//9 44//9 69//9 -f 62//10 35//10 61//10 -f 18//11 19//11 41//11 -f 22//12 45//12 6//12 -f 26//13 27//13 48//13 -f 28//14 12//14 50//14 -f 4//15 5//15 3//15 -f 19//9 20//9 43//9 -f 13//16 37//16 12//16 -f 27//7 28//7 49//7 -f 36//6 10//6 48//6 -f 6//17 33//17 5//17 -f 20//4 4//4 44//4 -f 13//18 14//18 37//18 -f 15//3 2//3 41//3 -f 24//2 8//2 47//2 -f 22//19 23//19 45//19 -f 30//20 31//20 52//20 -f 35//21 8//21 34//21 -f 23//22 24//22 46//22 -f 32//23 16//23 54//23 -f 1//24 2//24 11//24 -f 16//25 1//25 40//25 -f 31//26 32//26 53//26 -f 9//27 10//27 34//27 -f 30//28 52//28 14//28 -f 71//29 64//29 72//29 -f 65//29 64//29 70//29 -f 68//29 57//29 67//29 -f 58//29 57//29 82//29 -f 56//29 55//29 79//29 -f 78//29 59//29 79//29 -f 61//29 60//29 75//29 -f 62//29 61//29 74//29 -f 68//29 67//29 69//29 -f 69//29 70//29 68//29 -f 71//29 72//29 75//29 -f 73//29 74//29 75//29 -f 75//29 76//29 77//29 -f 77//29 78//29 75//29 -f 79//29 80//29 68//29 -f 81//29 82//29 68//29 -f 68//29 70//29 71//29 -f 72//29 73//29 75//29 -f 75//29 78//29 79//29 -f 80//29 81//29 68//29 -f 68//29 71//29 79//29 -f 45//19 46//19 72//19 -f 37//30 56//30 38//30 -f 52//20 53//20 80//20 -f 7//31 64//31 3//31 -f 46//22 47//22 73//22 -f 82//23 54//23 58//23 -f 61//32 34//32 60//32 -f 53//26 54//26 81//26 -f 11//33 15//33 57//33 -f 52//28 80//28 39//28 -f 41//11 43//11 67//11 -f 45//12 72//12 33//12 -f 39//34 55//34 37//34 -f 48//13 49//13 76//13 -f 38//14 59//14 50//14 -f 42//31 83//31 91//31 -f 84//10 85//10 94//10 -f 88//30 89//30 98//30 -f 90//8 51//8 100//8 -f 84//1 114//1 85//1 -f 42//1 111//1 83//1 -f 90//1 120//1 51//1 -f 89//1 88//1 119//1 -f 119//31 118//31 129//31 -f 120//10 132//10 112//10 -f 111//30 121//30 113//30 -f 114//8 124//8 115//8 -f 109//34 110//34 107//34 -f 103//5 104//5 126//5 -f 101//3 133//3 140//3 -f 141//35 109//35 130//35 -f 88//14 98//14 118//14 -f 123//35 93//35 113//35 -f 125//36 95//36 115//36 -f 90//23 100//23 120//23 -f 129//37 99//37 119//37 -f 84//2 94//2 114//2 -f 42//4 91//4 111//4 -f 122//38 92//38 112//38 -f 139//29 140//29 96//29 -f 86//29 126//29 87//29 -f 116//29 117//29 143//29 -f 107//29 108//29 130//29 -f 134//36 102//36 96//36 -f 136//34 135//34 87//34 -f 104//12 136//12 127//12 -f 142//5 141//5 131//5 -f 135//37 103//37 86//37 -f 102//33 101//33 139//33 -f 106//6 138//6 117//6 -f 116//32 105//32 117//32 -f 137//38 105//38 143//38 -f 133//32 134//32 97//32 -f 138//33 137//33 144//33 -f 110//28 142//28 108//28 -o Plane -v -1.500000 0.000000 0.750000 -v 2.250000 0.000000 0.750000 -v -1.500000 0.000000 -0.750000 -v 2.250000 0.000000 -0.750000 -v -2.250000 1.500000 -1.275000 -v -2.250000 1.987921 -1.177946 -v -2.250000 2.401561 -0.901561 -v -2.250000 2.677946 -0.487921 -v -2.250000 2.775000 0.000000 -v -2.250000 2.677946 0.487922 -v -2.250000 2.401561 0.901561 -v -2.250000 1.987921 1.177946 -v -2.250000 1.500000 1.275000 -v -2.000000 1.500000 -1.500000 -v -2.000000 2.074025 -1.385819 -v -2.000000 2.560660 -1.060660 -v -2.000000 2.885819 -0.574025 -v -2.000000 3.000000 0.000000 -v -2.000000 2.885819 0.574025 -v -2.000000 2.560660 1.060660 -v -2.000000 2.074025 1.385819 -v -2.000000 1.500000 1.500000 -v -1.750000 1.500000 -1.500000 -v -1.750000 2.074025 -1.385819 -v -1.750000 2.560660 -1.060660 -v -1.750000 2.885819 -0.574025 -v -1.750000 3.000000 0.000000 -v -1.750000 2.885819 0.574025 -v -1.750000 2.560660 1.060660 -v -1.750000 2.074025 1.385819 -v -1.750000 1.500000 1.500000 -v -1.500000 1.500000 -1.275000 -v -1.500000 1.987921 -1.177946 -v -1.500000 2.401561 -0.901561 -v -1.500000 2.677946 -0.487921 -v -1.500000 2.775000 0.000000 -v -1.500000 2.677946 0.487922 -v -1.500000 2.401561 0.901561 -v -1.500000 1.987921 1.177946 -v -1.500000 1.500000 1.275000 -v -2.000000 0.000000 -1.500000 -v -2.000000 0.000000 1.500000 -v -1.750000 0.000000 -1.500000 -v -1.750000 0.000000 1.500000 -v -1.500000 0.000000 -1.275000 -v -1.500000 0.000000 1.275000 -v -2.250000 1.500000 -0.750000 -v -2.250000 1.787013 -0.692910 -v -2.250000 2.030330 -0.530330 -v -2.250000 2.192910 -0.287013 -v -2.250000 2.250000 0.000000 -v -2.250000 2.192910 0.287013 -v -2.250000 2.030330 0.530330 -v -2.250000 1.787013 0.692910 -v -2.250000 1.500000 0.750000 -v -2.250000 0.000000 0.750000 -v -2.250000 -0.000000 -0.750000 -v -2.250000 0.000000 1.275000 -v -2.250000 0.000000 -1.275000 -v -2.500000 1.500000 -0.750000 -v -2.500000 1.787013 -0.692910 -v -2.500000 2.030330 -0.530330 -v -2.500000 2.192910 -0.287013 -v -2.500000 2.250000 0.000000 -v -2.500000 2.192910 0.287013 -v -2.500000 2.030330 0.530330 -v -2.500000 1.787013 0.692910 -v -2.500000 1.500000 0.750000 -v -2.750000 1.500000 -0.525000 -v -2.750000 1.700909 -0.485037 -v -2.750000 1.871231 -0.371231 -v -2.750000 1.985037 -0.200909 -v -2.750000 2.025000 0.000000 -v -2.750000 1.985037 0.200909 -v -2.750000 1.871231 0.371231 -v -2.750000 1.700909 0.485037 -v -2.750000 1.500000 0.525000 -v -2.500000 -0.000000 -0.750000 -v -2.500000 0.000000 0.750000 -v -2.750000 -0.000000 -0.525000 -v -2.750000 0.000000 0.525000 -v -2.750000 1.500000 -0.472500 -v -2.750000 1.680818 -0.436533 -v -2.750000 1.834108 -0.334108 -v -2.750000 1.936533 -0.180818 -v -2.750000 1.972500 0.000000 -v -2.750000 1.936533 0.180818 -v -2.750000 1.834108 0.334108 -v -2.750000 1.680818 0.436533 -v -2.750000 1.500000 0.472500 -v -2.750000 1.319182 0.436533 -v -2.750000 1.165892 0.334108 -v -2.750000 1.063467 0.180818 -v -2.750000 1.027500 -0.000000 -v -2.750000 1.063467 -0.180818 -v -2.750000 1.165892 -0.334108 -v -2.750000 1.319182 -0.436533 -v -2.875001 1.500000 -0.472500 -v -2.875001 1.680818 -0.436533 -v -2.875001 1.834108 -0.334108 -v -2.875001 1.936533 -0.180818 -v -2.875001 1.972500 0.000000 -v -2.875001 1.936533 0.180818 -v -2.875001 1.834108 0.334108 -v -2.875001 1.680818 0.436533 -v -2.875001 1.500000 0.472500 -v -2.875000 1.319182 0.436533 -v -2.875000 1.165892 0.334108 -v -2.875000 1.063467 0.180818 -v -2.875000 1.027500 -0.000000 -v -2.875000 1.063467 -0.180818 -v -2.875000 1.165892 -0.334108 -v -2.875000 1.319182 -0.436533 -v -3.000001 1.500000 -0.354375 -v -3.000001 1.635613 -0.327400 -v -3.000001 1.750581 -0.250581 -v -3.000001 1.827400 -0.135613 -v -3.000001 1.854375 0.000000 -v -3.000001 1.827400 0.135613 -v -3.000001 1.750581 0.250581 -v -3.000001 1.635613 0.327400 -v -3.000001 1.500000 0.354375 -v -3.000000 1.364387 0.327400 -v -3.000000 1.249419 0.250581 -v -3.000000 1.172600 0.135613 -v -3.000000 1.145625 -0.000000 -v -3.000000 1.172600 -0.135614 -v -3.000000 1.249419 -0.250581 -v -3.000000 1.364387 -0.327400 -v -3.000001 1.500000 -0.301219 -v -3.000001 1.615271 -0.278290 -v -3.000001 1.712994 -0.212994 -v -3.000001 1.778290 -0.115271 -v -3.000001 1.801219 0.000000 -v -3.000001 1.778290 0.115271 -v -3.000001 1.712994 0.212994 -v -3.000001 1.615271 0.278290 -v -3.000001 1.500000 0.301219 -v -3.000000 1.384729 0.278290 -v -3.000000 1.287006 0.212994 -v -3.000000 1.221710 0.115271 -v -3.000000 1.198781 -0.000000 -v -3.000000 1.221710 -0.115271 -v -3.000000 1.287006 -0.212994 -v -3.000000 1.384729 -0.278290 -v -3.000000 1.500000 -0.090366 -v -3.000000 1.534581 -0.083487 -v -3.000000 1.563898 -0.063898 -v -3.000000 1.583487 -0.034581 -v -3.000000 1.590366 0.000000 -v -3.000000 1.583487 0.034581 -v -3.000000 1.563898 0.063898 -v -3.000000 1.534581 0.083487 -v -3.000000 1.500000 0.090366 -v -3.000000 1.465419 0.083487 -v -3.000000 1.436102 0.063898 -v -3.000000 1.416513 0.034581 -v -3.000000 1.409634 -0.000000 -v -3.000000 1.416513 -0.034581 -v -3.000000 1.436102 -0.063898 -v -3.000000 1.465419 -0.083487 -v -2.750000 -0.000000 0.000000 -v -1.500000 0.500000 0.750000 -v 2.250000 0.500000 0.750000 -v -1.500000 0.500000 -0.750000 -v 2.250000 0.500000 -0.750000 -v -1.500000 2.192910 -0.287013 -v -1.500000 2.030330 -0.530330 -v -1.500000 1.787013 -0.692910 -v -1.500000 1.500000 -0.750000 -v -1.500000 2.250000 0.000000 -v -1.500000 2.192910 0.287013 -v -1.500000 2.030330 0.530330 -v -1.500000 1.787013 0.692910 -v -1.500000 1.500000 0.750000 -v -1.500000 1.212988 0.692910 -v -1.500000 0.969670 0.530330 -v -1.500000 0.807090 0.287013 -v -1.500000 0.750000 -0.000000 -v -1.500000 0.807090 -0.287013 -v -1.500000 0.969670 -0.530330 -v -1.500000 1.212988 -0.692910 -v -1.500000 0.500000 0.000000 -v -2.950001 1.500000 -0.354375 -v -2.950001 1.635613 -0.327400 -v -2.950001 1.750581 -0.250581 -v -2.950001 1.827400 -0.135613 -v -2.950001 1.854375 0.000000 -v -2.950001 1.827400 0.135613 -v -2.950001 1.750581 0.250581 -v -2.950001 1.635613 0.327400 -v -2.950001 1.500000 0.354375 -v -2.950000 1.364387 0.327400 -v -2.950000 1.249419 0.250581 -v -2.950000 1.172600 0.135613 -v -2.950000 1.145625 -0.000000 -v -2.950000 1.172600 -0.135614 -v -2.950000 1.249419 -0.250581 -v -2.950000 1.364387 -0.327400 -v -2.950001 1.500000 -0.301219 -v -2.950001 1.615271 -0.278290 -v -2.950001 1.712994 -0.212994 -v -2.950001 1.778290 -0.115271 -v -2.950001 1.801219 0.000000 -v -2.950001 1.778290 0.115271 -v -2.950001 1.712994 0.212994 -v -2.950001 1.615271 0.278290 -v -2.950001 1.500000 0.301219 -v -2.950000 1.384729 0.278290 -v -2.950000 1.287006 0.212994 -v -2.950000 1.221710 0.115271 -v -2.950000 1.198781 -0.000000 -v -2.950000 1.221710 -0.115271 -v -2.950000 1.287006 -0.212994 -v -2.950000 1.384729 -0.278290 -v -2.950000 1.500000 -0.090366 -v -2.950000 1.534581 -0.083487 -v -2.950000 1.563898 -0.063898 -v -2.950000 1.583487 -0.034581 -v -2.950000 1.590366 0.000000 -v -2.950000 1.583487 0.034581 -v -2.950000 1.563898 0.063898 -v -2.950000 1.534581 0.083487 -v -2.950000 1.500000 0.090366 -v -2.950000 1.465419 0.083487 -v -2.950000 1.436102 0.063898 -v -2.950000 1.416513 0.034581 -v -2.950000 1.409634 -0.000000 -v -2.950000 1.416513 -0.034581 -v -2.950000 1.436102 -0.063898 -v -2.950000 1.465419 -0.083487 -v -2.550001 1.500000 -0.472500 -v -2.550001 1.680818 -0.436533 -v -2.550001 1.834108 -0.334108 -v -2.550001 1.936533 -0.180818 -v -2.550001 1.972500 0.000000 -v -2.550001 1.936533 0.180818 -v -2.550001 1.834108 0.334108 -v -2.550001 1.680818 0.436533 -v -2.550001 1.500000 0.472500 -v -2.550000 1.319182 0.436533 -v -2.550000 1.165892 0.334108 -v -2.550000 1.063467 0.180818 -v -2.550000 1.027500 -0.000000 -v -2.550000 1.063467 -0.180818 -v -2.550000 1.165892 -0.334108 -v -2.550000 1.319182 -0.436533 -v -2.675001 1.500000 -0.472500 -v -2.675001 1.680818 -0.436533 -v -2.675001 1.834108 -0.334108 -v -2.675001 1.936533 -0.180818 -v -2.675001 1.972500 0.000000 -v -2.675001 1.936533 0.180818 -v -2.675001 1.834108 0.334108 -v -2.675001 1.680818 0.436533 -v -2.675001 1.500000 0.472500 -v -2.675000 1.319182 0.436533 -v -2.675000 1.165892 0.334108 -v -2.675000 1.063467 0.180818 -v -2.675000 1.027500 -0.000000 -v -2.675000 1.063467 -0.180818 -v -2.675000 1.165892 -0.334108 -v -2.675000 1.319182 -0.436533 -v 2.250000 2.192910 -0.287013 -v 2.250000 2.030330 -0.530330 -v 2.250000 1.787013 -0.692910 -v 2.250000 1.500000 -0.750000 -v 2.250000 2.250000 0.000000 -v 2.250000 2.192910 0.287013 -v 2.250000 2.030330 0.530330 -v 2.250000 1.787013 0.692910 -v 2.250000 1.500000 0.750000 -v 2.250000 1.212988 0.692910 -v 2.250000 0.969670 0.530330 -v 2.250000 0.807090 0.287013 -v 2.250000 0.750000 -0.000000 -v 2.250000 0.807090 -0.287013 -v 2.250000 0.969670 -0.530330 -v 2.250000 1.212988 -0.692910 -v 2.250000 1.500000 -1.000000 -v 2.250000 1.882683 -0.923880 -v 2.250000 2.207107 -0.707107 -v 2.250000 2.423880 -0.382683 -v 2.250000 2.500000 0.000000 -v 2.250000 2.423880 0.382684 -v 2.250000 2.207107 0.707107 -v 2.250000 1.882683 0.923880 -v 2.250000 1.500000 1.000000 -v 2.750000 0.000000 0.800000 -v 2.750000 -0.000000 -0.800000 -v 2.500000 0.000000 1.000000 -v 2.250000 0.500000 -0.000000 -v 2.500000 -0.000000 -1.000000 -v 2.250000 0.000000 1.000000 -v 2.250000 -0.000000 -1.000000 -v 2.500000 1.882683 0.923880 -v 2.500000 2.207107 0.707107 -v 2.500000 2.423880 0.382684 -v 2.500000 2.500000 0.000000 -v 2.500000 2.423880 -0.382683 -v 2.500000 2.207107 -0.707107 -v 2.500000 1.882683 -0.923880 -v 2.500000 1.500000 -1.000000 -v 2.500000 1.500000 1.000000 -v 2.750000 1.806147 0.739104 -v 2.750000 2.065685 0.565686 -v 2.750000 2.239104 0.306147 -v 2.750000 2.300000 0.000000 -v 2.750000 2.239104 -0.306147 -v 2.750000 2.065685 -0.565686 -v 2.750000 1.806147 -0.739104 -v 2.750000 1.500000 -0.800000 -v 2.750000 1.500000 0.800000 -v 2.750000 0.656250 0.156250 -v 2.750000 0.343750 0.156250 -v 2.750000 0.656250 -0.156250 -v 2.750000 0.343750 -0.156250 -v 3.000000 0.656250 -0.156250 -v 3.000000 0.656250 0.156250 -v 3.000000 0.343750 0.156250 -v 3.000000 0.343750 -0.156250 -v -2.750000 0.656250 -0.156250 -v -2.750000 0.656250 0.156250 -v -2.750000 0.343750 0.156250 -v -2.750000 0.343750 -0.156250 -v -3.000000 0.656250 -0.156250 -v -3.000000 0.656250 0.156250 -v -3.000000 0.343750 0.156250 -v -3.000000 0.343750 -0.156250 -v -2.750000 0.343750 0.000000 -v -2.750000 0.656250 0.000000 -v -1.750000 2.900000 0.150000 -v -1.750000 2.800000 0.150000 -v -1.750000 2.900000 -0.150000 -v -1.750000 2.800000 -0.150000 -v 0.250000 2.900002 -0.150000 -v 0.250000 2.900002 0.150000 -v 0.250000 2.800002 0.150000 -v 0.250000 2.800002 -0.150000 -v 0.362941 2.898298 -0.150000 -v 0.362941 2.898298 0.150000 -v 0.337059 2.801706 0.150000 -v 0.337059 2.801706 -0.150000 -v 2.294793 2.380663 -0.150000 -v 2.294793 2.380663 0.150000 -v 2.268912 2.284071 0.150000 -v 2.268912 2.284071 -0.150000 -vn 0.000000 -1.000000 0.000000 -vn -0.661800 0.735300 0.146300 -vn 0.000000 0.980800 0.195100 -vn 0.661800 0.735300 0.146300 -vn -0.661800 0.623400 0.416500 -vn 0.661800 0.623400 0.416500 -vn 0.000000 0.831500 0.555600 -vn 0.661800 0.416500 0.623400 -vn 0.000000 0.555600 0.831500 -vn -0.661800 0.416500 0.623400 -vn -0.661800 0.146300 0.735300 -vn 0.661800 0.146300 0.735300 -vn -0.661800 0.735300 -0.146300 -vn 0.000000 0.980800 -0.195100 -vn 0.661800 0.735300 -0.146300 -vn 0.661800 0.623400 -0.416500 -vn 0.000000 0.831500 -0.555600 -vn -0.661800 0.623400 -0.416500 -vn -0.661800 0.416500 -0.623400 -vn 0.000000 0.555600 -0.831500 -vn 0.661800 0.416500 -0.623400 -vn 0.661800 0.146300 -0.735300 -vn 0.000000 0.195100 -0.980800 -vn -0.661800 0.146300 -0.735300 -vn 0.000000 0.195100 0.980800 -vn 0.000000 0.000000 1.000000 -vn 0.669000 0.000000 0.743300 -vn 0.000000 0.000000 -1.000000 -vn 0.669000 0.000000 -0.743300 -vn -1.000000 0.000000 -0.000000 -vn -0.669000 0.000000 -0.743300 -vn -0.669000 0.000000 0.743300 -vn 0.000000 -0.195100 0.980800 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 -0.555600 -0.831500 -vn -0.679800 0.143100 -0.719300 -vn -0.679800 0.407500 -0.609800 -vn -0.679800 0.609800 -0.407500 -vn -0.679800 0.719300 -0.143100 -vn -0.679800 0.719300 0.143100 -vn -0.679800 0.609800 0.407500 -vn -0.679800 0.407500 0.609800 -vn -0.679800 0.143100 0.719300 -vn -0.679800 -0.143100 0.719300 -vn -0.679800 -0.407500 0.609800 -vn -0.679800 -0.143100 -0.719300 -vn -0.679800 -0.407500 -0.609800 -vn -0.679800 -0.609800 -0.407500 -vn -0.679800 -0.719300 -0.143100 -vn -0.679800 -0.609800 0.407500 -vn -0.679800 -0.719300 0.143100 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.382700 0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 -0.923900 0.382700 -vn 0.388200 0.512000 -0.766200 -vn 0.388200 0.766200 -0.512000 -vn 0.388200 0.903800 -0.179800 -vn 0.388200 0.903800 0.179800 -vn 0.388200 0.766200 0.512000 -vn 0.388200 0.512000 0.766200 -vn 0.388200 0.179800 0.903800 -vn 0.388200 -0.179800 0.903800 -vn 0.388200 -0.512000 0.766200 -vn 0.388200 -0.766200 0.512000 -vn 0.388200 -0.903800 0.179800 -vn 0.388200 -0.903800 -0.179800 -vn 0.388200 -0.766200 -0.512000 -vn 0.388200 -0.512000 -0.766200 -vn 0.388200 -0.179800 -0.903800 -vn 0.388200 0.179800 -0.903800 -vn 0.617300 0.437100 0.654100 -vn 0.624700 0.000000 -0.780900 -vn 0.624700 0.000000 0.780900 -vn 0.000000 1.000000 0.000000 -vn 0.617300 0.153500 0.771600 -vn 0.617300 0.153500 -0.771600 -vn 0.617300 0.437100 -0.654100 -vn 0.617300 0.654100 -0.437100 -vn 0.617300 0.771600 -0.153500 -vn 0.617300 0.771600 0.153500 -vn 0.617300 0.654100 0.437100 -vn 0.019600 -0.999800 0.000000 -vn -0.258800 -0.965900 0.000000 -vn 0.015100 0.999900 0.000000 -vn 0.965900 -0.258800 0.000000 -vn 0.258800 0.965900 0.000000 -vn -1.000000 -0.000100 0.000000 -vn 1.000000 0.000100 0.000000 -s off -f 147//55 148//55 146//55 -f 154//56 163//56 162//56 -f 163//57 172//57 171//57 -f 172//58 181//58 180//58 -f 155//59 164//59 163//59 -f 173//60 182//60 181//60 -f 164//61 173//61 172//61 -f 174//62 183//62 182//62 -f 165//63 174//63 173//63 -f 155//64 156//64 165//64 -f 157//65 166//65 165//65 -f 174//66 175//66 184//66 -f 153//67 162//67 161//67 -f 162//68 171//68 170//68 -f 170//69 171//69 180//69 -f 170//70 179//70 178//70 -f 161//71 170//71 169//71 -f 151//72 152//72 161//72 -f 151//73 160//73 159//73 -f 160//74 169//74 168//74 -f 168//75 169//75 178//75 -f 168//76 177//76 176//76 -f 159//77 168//77 167//77 -f 149//78 150//78 159//78 -f 166//79 175//79 174//79 -f 188//55 186//55 185//55 -f 188//55 187//55 147//55 -f 166//80 186//80 188//80 -f 175//81 188//81 190//81 -f 187//82 185//82 158//82 -f 189//83 187//83 167//83 -f 191//84 192//84 150//84 -f 192//84 193//84 151//84 -f 151//84 193//84 194//84 -f 152//84 194//84 195//84 -f 195//84 196//84 154//84 -f 196//84 197//84 155//84 -f 197//84 198//84 156//84 -f 198//84 199//84 157//84 -f 191//84 149//84 203//84 -f 202//84 157//84 199//84 -f 158//85 185//85 203//85 -f 202//86 186//86 166//86 -f 223//55 225//55 306//55 -f 212//79 199//79 198//79 -f 210//63 211//63 198//63 -f 209//61 210//61 197//61 -f 208//57 209//57 196//57 -f 207//68 208//68 195//68 -f 206//71 207//71 194//71 -f 205//74 206//74 193//74 -f 204//77 205//77 192//77 -f 204//78 213//78 214//78 -f 214//73 215//73 206//73 -f 206//72 215//72 216//72 -f 216//67 217//67 208//67 -f 208//56 217//56 218//56 -f 218//59 219//59 210//59 -f 210//64 219//64 220//64 -f 220//65 221//65 212//65 -f 186//55 200//55 185//55 -f 201//55 200//55 223//55 -f 222//82 204//82 191//82 -f 213//85 204//85 222//85 -f 199//80 212//80 223//80 -f 225//86 223//86 212//86 -f 233//84 234//84 221//84 -f 232//84 233//84 220//84 -f 231//84 232//84 219//84 -f 217//84 230//84 231//84 -f 229//84 230//84 217//84 -f 215//84 228//84 229//84 -f 227//84 228//84 215//84 -f 213//84 226//84 227//84 -f 242//77 243//77 227//77 -f 243//74 244//74 228//74 -f 244//71 245//71 229//71 -f 245//68 246//68 230//68 -f 246//57 247//57 231//57 -f 247//61 248//61 232//61 -f 248//63 249//63 233//63 -f 249//79 250//79 234//79 -f 234//87 250//87 251//87 -f 251//88 252//88 236//88 -f 252//89 253//89 237//89 -f 253//90 254//90 238//90 -f 254//91 255//91 239//91 -f 255//92 256//92 240//92 -f 257//93 242//93 226//93 -f 256//94 257//94 241//94 -f 258//95 259//95 243//95 -f 259//96 260//96 244//96 -f 244//97 260//97 261//97 -f 261//98 262//98 246//98 -f 246//99 262//99 263//99 -f 263//100 264//100 248//100 -f 264//101 265//101 249//101 -f 249//102 265//102 266//102 -f 250//103 266//103 267//103 -f 267//104 268//104 252//104 -f 267//84 283//84 284//84 -f 282//84 283//84 267//84 -f 265//84 281//84 282//84 -f 280//84 281//84 265//84 -f 279//84 280//84 264//84 -f 278//84 279//84 263//84 -f 261//84 277//84 278//84 -f 260//84 276//84 277//84 -f 259//84 275//84 276//84 -f 274//84 275//84 259//84 -f 300//84 294//84 292//84 -f 293//84 294//84 278//84 -f 278//84 294//84 295//84 -f 281//84 297//84 298//84 -f 282//84 298//84 299//84 -f 301//84 302//84 286//84 -f 302//84 303//84 287//84 -f 290//84 291//84 275//84 -f 305//84 290//84 274//84 -f 289//84 274//84 258//84 -f 273//105 258//105 242//105 -f 272//106 273//106 257//106 -f 255//107 271//107 272//107 -f 270//108 271//108 255//108 -f 272//84 288//84 289//84 -f 271//84 287//84 288//84 -f 286//84 287//84 271//84 -f 285//84 286//84 270//84 -f 268//84 284//84 285//84 -f 252//109 268//109 269//109 -f 269//110 270//110 254//110 -f 470//84 473//84 472//84 -f 474//111 469//111 475//111 -f 237//84 225//84 236//84 -f 235//84 236//84 225//84 -f 221//84 234//84 235//84 -f 239//84 240//84 224//84 -f 240//84 241//84 224//84 -f 241//84 226//84 213//84 -f 326//94 423//94 422//94 -f 324//91 421//91 420//91 -f 325//92 422//92 421//92 -f 184//111 319//111 318//111 -f 183//111 318//111 317//111 -f 182//111 317//111 316//111 -f 181//111 316//111 315//111 -f 179//111 180//111 315//111 -f 179//111 311//111 312//111 -f 178//111 312//111 313//111 -f 177//111 313//111 314//111 -f 307//111 184//111 190//111 -f 176//111 314//111 309//111 -f 327//111 323//111 322//111 -f 322//111 321//111 307//111 -f 320//111 307//111 321//111 -f 319//111 307//111 320//111 -f 327//111 309//111 324//111 -f 324//111 309//111 325//111 -f 325//111 309//111 326//111 -f 314//111 326//111 309//111 -f 337//111 338//111 354//111 -f 337//111 353//111 352//111 -f 335//111 336//111 352//111 -f 335//111 351//111 350//111 -f 334//111 350//111 349//111 -f 333//111 349//111 348//111 -f 331//111 332//111 348//111 -f 330//111 331//111 347//111 -f 330//111 346//111 345//111 -f 329//111 345//111 344//111 -f 368//111 372//111 364//111 -f 348//111 364//111 363//111 -f 348//111 349//111 365//111 -f 351//111 352//111 368//111 -f 352//111 353//111 369//111 -f 356//111 372//111 371//111 -f 357//111 373//111 372//111 -f 345//111 361//111 360//111 -f 344//111 360//111 375//111 -f 328//111 344//111 359//111 -f 342//111 343//111 359//111 -f 341//111 342//111 358//111 -f 341//111 357//111 356//111 -f 340//111 356//111 355//111 -f 338//111 339//111 355//111 -f 349//92 350//92 280//92 -f 350//94 351//94 281//94 -f 297//112 281//112 351//112 -f 297//63 367//63 366//63 -f 296//61 366//61 365//61 -f 295//113 365//113 349//113 -f 293//114 277//114 347//114 -f 293//71 363//71 362//71 -f 292//74 362//74 361//74 -f 291//115 361//115 345//115 -f 345//88 346//88 276//88 -f 346//89 347//89 277//89 -f 285//116 355//116 371//116 -f 301//89 371//89 370//89 -f 300//88 370//88 369//88 -f 369//117 353//117 283//117 -f 353//74 354//74 284//74 -f 354//71 355//71 285//71 -f 304//92 374//92 373//92 -f 373//118 357//118 287//118 -f 357//61 358//61 288//61 -f 358//63 359//63 289//63 -f 289//119 359//119 375//119 -f 305//94 375//94 374//94 -f 377//87 393//87 392//87 -f 378//88 394//88 393//88 -f 379//89 395//89 394//89 -f 380//90 396//90 395//90 -f 381//91 397//91 396//91 -f 382//92 398//92 397//92 -f 383//94 399//94 398//94 -f 384//93 400//93 399//93 -f 384//77 385//77 401//77 -f 386//74 402//74 401//74 -f 387//71 403//71 402//71 -f 388//68 404//68 403//68 -f 389//57 405//57 404//57 -f 390//61 406//61 405//61 -f 376//79 392//79 407//79 -f 391//63 407//63 406//63 -f 401//120 402//120 338//120 -f 338//121 402//121 403//121 -f 339//122 403//122 404//122 -f 340//123 404//123 405//123 -f 341//124 405//124 406//124 -f 406//125 407//125 343//125 -f 343//126 407//126 392//126 -f 392//127 393//127 329//127 -f 393//128 394//128 330//128 -f 394//129 395//129 331//129 -f 331//130 395//130 396//130 -f 396//131 397//131 333//131 -f 397//132 398//132 334//132 -f 398//133 399//133 335//133 -f 399//134 400//134 336//134 -f 400//135 401//135 337//135 -f 386//84 382//84 378//84 -f 314//93 411//93 423//93 -f 313//77 410//77 411//77 -f 312//74 409//74 410//74 -f 312//71 311//71 408//71 -f 311//68 315//68 412//68 -f 316//57 413//57 412//57 -f 317//61 414//61 413//61 -f 318//63 415//63 414//63 -f 319//79 416//79 415//79 -f 320//87 417//87 416//87 -f 321//88 418//88 417//88 -f 322//89 419//89 418//89 -f 323//90 420//90 419//90 -f 408//84 412//84 428//84 -f 413//84 429//84 428//84 -f 414//84 430//84 429//84 -f 440//136 449//136 450//136 -f 431//63 440//63 441//63 -f 415//84 431//84 430//84 -f 409//84 408//84 427//84 -f 410//84 409//84 426//84 -f 411//84 410//84 425//84 -f 434//137 437//137 447//137 -f 447//82 437//82 439//82 -f 448//138 435//138 433//138 -f 438//80 435//80 448//80 -f 416//84 432//84 431//84 -f 436//139 310//139 327//139 -f 308//80 307//80 145//80 -f 147//82 309//82 310//82 -f 430//61 441//61 442//61 -f 429//57 442//57 443//57 -f 428//68 443//68 444//68 -f 427//71 444//71 445//71 -f 426//74 445//74 446//74 -f 425//77 446//77 447//77 -f 432//79 448//79 440//79 -f 448//140 457//140 449//140 -f 446//141 455//141 456//141 -f 445//142 454//142 455//142 -f 445//143 444//143 453//143 -f 443//144 452//144 453//144 -f 443//145 442//145 451//145 -f 441//146 450//146 451//146 -f 433//55 435//55 437//55 -f 146//55 437//55 435//55 -f 432//84 308//84 438//84 -f 310//84 411//84 424//84 -f 421//84 310//84 436//84 -f 421//84 422//84 310//84 -f 422//84 423//84 310//84 -f 423//84 411//84 310//84 -f 436//84 308//84 419//84 -f 418//84 419//84 308//84 -f 417//84 418//84 308//84 -f 416//84 417//84 308//84 -f 458//139 463//139 462//139 -f 461//111 459//111 433//111 -f 433//111 459//111 458//111 -f 460//111 461//111 434//111 -f 456//111 457//111 458//111 -f 464//111 465//111 462//111 -f 460//82 462//82 465//82 -f 459//80 464//80 463//80 -f 461//55 465//55 464//55 -f 456//111 455//111 449//111 -f 455//111 454//111 450//111 -f 454//111 453//111 451//111 -f 452//111 451//111 453//111 -f 469//82 473//82 470//82 -f 475//139 470//139 471//139 -f 467//80 471//80 472//80 -f 474//55 472//55 473//55 -f 306//84 474//84 469//84 -f 306//84 225//84 468//84 -f 238//84 239//84 466//84 -f 238//84 475//84 467//84 -f 237//84 467//84 225//84 -f 225//84 467//84 468//84 -f 224//84 466//84 239//84 -f 224//84 469//84 466//84 -f 478//84 479//84 477//84 -f 483//147 487//147 486//147 -f 479//82 478//82 480//82 -f 477//80 482//80 481//80 -f 479//55 483//55 482//55 -f 476//139 481//139 480//139 -f 487//148 491//148 490//148 -f 481//149 485//149 484//149 -f 480//82 484//82 487//82 -f 481//80 482//80 486//80 -f 490//150 491//150 488//150 -f 485//151 489//151 488//151 -f 487//82 484//82 488//82 -f 486//80 490//80 489//80 -f 145//55 147//55 146//55 -f 153//56 154//56 162//56 -f 162//57 163//57 171//57 -f 171//58 172//58 180//58 -f 154//59 155//59 163//59 -f 172//60 173//60 181//60 -f 163//61 164//61 172//61 -f 173//62 174//62 182//62 -f 164//63 165//63 173//63 -f 164//64 155//64 165//64 -f 156//65 157//65 165//65 -f 183//66 174//66 184//66 -f 152//67 153//67 161//67 -f 161//68 162//68 170//68 -f 179//69 170//69 180//69 -f 169//70 170//70 178//70 -f 160//71 161//71 169//71 -f 160//72 151//72 161//72 -f 150//73 151//73 159//73 -f 159//74 160//74 168//74 -f 177//75 168//75 178//75 -f 167//76 168//76 176//76 -f 158//77 159//77 167//77 -f 158//78 149//78 159//78 -f 165//79 166//79 174//79 -f 187//55 188//55 185//55 -f 147//55 145//55 188//55 -f 190//55 188//55 145//55 -f 187//55 189//55 147//55 -f 175//80 166//80 188//80 -f 184//81 175//81 190//81 -f 167//82 187//82 158//82 -f 176//83 189//83 167//83 -f 149//84 191//84 150//84 -f 150//84 192//84 151//84 -f 152//84 151//84 194//84 -f 153//84 152//84 195//84 -f 153//84 195//84 154//84 -f 154//84 196//84 155//84 -f 155//84 197//84 156//84 -f 156//84 198//84 157//84 -f 201//84 191//84 203//84 -f 200//84 202//84 199//84 -f 149//85 158//85 203//85 -f 157//86 202//86 166//86 -f 306//55 224//55 222//55 -f 222//55 223//55 306//55 -f 211//79 212//79 198//79 -f 197//63 210//63 198//63 -f 196//61 209//61 197//61 -f 195//57 208//57 196//57 -f 194//68 207//68 195//68 -f 193//71 206//71 194//71 -f 192//74 205//74 193//74 -f 191//77 204//77 192//77 -f 205//78 204//78 214//78 -f 205//73 214//73 206//73 -f 207//72 206//72 216//72 -f 207//67 216//67 208//67 -f 209//56 208//56 218//56 -f 209//59 218//59 210//59 -f 211//64 210//64 220//64 -f 211//65 220//65 212//65 -f 203//55 185//55 201//55 -f 186//55 202//55 200//55 -f 200//55 201//55 185//55 -f 222//55 201//55 223//55 -f 201//82 222//82 191//82 -f 224//85 213//85 222//85 -f 200//80 199//80 223//80 -f 221//86 225//86 212//86 -f 220//84 233//84 221//84 -f 219//84 232//84 220//84 -f 218//84 231//84 219//84 -f 218//84 217//84 231//84 -f 216//84 229//84 217//84 -f 216//84 215//84 229//84 -f 214//84 227//84 215//84 -f 214//84 213//84 227//84 -f 226//77 242//77 227//77 -f 227//74 243//74 228//74 -f 228//71 244//71 229//71 -f 229//68 245//68 230//68 -f 230//57 246//57 231//57 -f 231//61 247//61 232//61 -f 232//63 248//63 233//63 -f 233//79 249//79 234//79 -f 235//87 234//87 251//87 -f 235//88 251//88 236//88 -f 236//89 252//89 237//89 -f 237//90 253//90 238//90 -f 238//91 254//91 239//91 -f 239//92 255//92 240//92 -f 241//93 257//93 226//93 -f 240//94 256//94 241//94 -f 242//95 258//95 243//95 -f 243//96 259//96 244//96 -f 245//97 244//97 261//97 -f 245//98 261//98 246//98 -f 247//99 246//99 263//99 -f 247//100 263//100 248//100 -f 248//101 264//101 249//101 -f 250//102 249//102 266//102 -f 251//103 250//103 267//103 -f 251//104 267//104 252//104 -f 268//84 267//84 284//84 -f 266//84 282//84 267//84 -f 266//84 265//84 282//84 -f 264//84 280//84 265//84 -f 263//84 279//84 264//84 -f 262//84 278//84 263//84 -f 262//84 261//84 278//84 -f 261//84 260//84 277//84 -f 260//84 259//84 276//84 -f 258//84 274//84 259//84 -f 292//84 291//84 304//84 -f 290//84 305//84 304//84 -f 304//84 303//84 302//84 -f 302//152 301//152 300//152 -f 300//84 299//84 296//84 -f 298//84 297//84 296//84 -f 296//84 295//84 294//84 -f 294//84 293//84 292//84 -f 291//84 290//84 304//84 -f 304//84 302//84 292//84 -f 299//84 298//84 296//84 -f 296//84 294//84 300//84 -f 292//84 302//84 300//84 -f 277//84 293//84 278//84 -f 279//84 278//84 295//84 -f 282//84 281//84 298//84 -f 283//84 282//84 299//84 -f 285//84 301//84 286//84 -f 286//84 302//84 287//84 -f 274//84 290//84 275//84 -f 289//84 305//84 274//84 -f 273//84 289//84 258//84 -f 257//105 273//105 242//105 -f 256//106 272//106 257//106 -f 256//107 255//107 272//107 -f 254//108 270//108 255//108 -f 273//84 272//84 289//84 -f 272//84 271//84 288//84 -f 270//84 286//84 271//84 -f 269//84 285//84 270//84 -f 269//84 268//84 285//84 -f 253//109 252//109 269//109 -f 253//110 269//110 254//110 -f 471//84 470//84 472//84 -f 475//111 467//111 468//111 -f 468//111 474//111 475//111 -f 469//111 466//111 475//111 -f 225//84 221//84 235//84 -f 224//84 241//84 213//84 -f 325//94 326//94 422//94 -f 323//91 324//91 420//91 -f 324//92 325//92 421//92 -f 183//111 184//111 318//111 -f 182//111 183//111 317//111 -f 181//111 182//111 316//111 -f 180//111 181//111 315//111 -f 311//111 179//111 315//111 -f 178//111 179//111 312//111 -f 177//111 178//111 313//111 -f 176//111 177//111 314//111 -f 190//111 145//111 307//111 -f 307//111 319//111 184//111 -f 309//111 147//111 189//111 -f 189//111 176//111 309//111 -f 307//111 327//111 322//111 -f 323//111 327//111 324//111 -f 353//111 337//111 354//111 -f 336//111 337//111 352//111 -f 351//111 335//111 352//111 -f 334//111 335//111 350//111 -f 333//111 334//111 349//111 -f 332//111 333//111 348//111 -f 347//111 331//111 348//111 -f 346//111 330//111 347//111 -f 329//111 330//111 345//111 -f 328//111 329//111 344//111 -f 360//111 361//111 364//111 -f 362//111 363//111 364//111 -f 364//111 365//111 366//111 -f 366//111 367//111 364//111 -f 368//111 369//111 372//111 -f 370//153 371//153 372//153 -f 372//111 373//111 360//111 -f 374//111 375//111 360//111 -f 361//111 362//111 364//111 -f 364//111 367//111 368//111 -f 369//111 370//111 372//111 -f 373//111 374//111 360//111 -f 360//111 364//111 372//111 -f 347//111 348//111 363//111 -f 364//111 348//111 365//111 -f 367//111 351//111 368//111 -f 368//111 352//111 369//111 -f 355//111 356//111 371//111 -f 356//111 357//111 372//111 -f 344//111 345//111 360//111 -f 359//111 344//111 375//111 -f 343//111 328//111 359//111 -f 358//111 342//111 359//111 -f 357//111 341//111 358//111 -f 340//111 341//111 356//111 -f 339//111 340//111 355//111 -f 354//111 338//111 355//111 -f 279//92 349//92 280//92 -f 280//94 350//94 281//94 -f 367//112 297//112 351//112 -f 296//63 297//63 366//63 -f 295//61 296//61 365//61 -f 279//113 295//113 349//113 -f 363//114 293//114 347//114 -f 292//71 293//71 362//71 -f 291//74 292//74 361//74 -f 275//115 291//115 345//115 -f 275//88 345//88 276//88 -f 276//89 346//89 277//89 -f 301//116 285//116 371//116 -f 300//89 301//89 370//89 -f 299//88 300//88 369//88 -f 299//117 369//117 283//117 -f 283//74 353//74 284//74 -f 284//71 354//71 285//71 -f 303//92 304//92 373//92 -f 303//118 373//118 287//118 -f 287//61 357//61 288//61 -f 288//63 358//63 289//63 -f 305//119 289//119 375//119 -f 304//94 305//94 374//94 -f 376//87 377//87 392//87 -f 377//88 378//88 393//88 -f 378//89 379//89 394//89 -f 379//90 380//90 395//90 -f 380//91 381//91 396//91 -f 381//92 382//92 397//92 -f 382//94 383//94 398//94 -f 383//93 384//93 399//93 -f 400//77 384//77 401//77 -f 385//74 386//74 401//74 -f 386//71 387//71 402//71 -f 387//68 388//68 403//68 -f 388//57 389//57 404//57 -f 389//61 390//61 405//61 -f 391//79 376//79 407//79 -f 390//63 391//63 406//63 -f 337//120 401//120 338//120 -f 339//121 338//121 403//121 -f 340//122 339//122 404//122 -f 341//123 340//123 405//123 -f 342//124 341//124 406//124 -f 342//125 406//125 343//125 -f 328//126 343//126 392//126 -f 328//127 392//127 329//127 -f 329//128 393//128 330//128 -f 330//129 394//129 331//129 -f 332//130 331//130 396//130 -f 332//131 396//131 333//131 -f 333//132 397//132 334//132 -f 334//133 398//133 335//133 -f 335//134 399//134 336//134 -f 336//135 400//135 337//135 -f 378//84 377//84 376//84 -f 376//84 391//84 390//84 -f 390//84 389//84 386//84 -f 388//84 387//84 386//84 -f 386//84 385//84 382//84 -f 384//84 383//84 382//84 -f 382//84 381//84 380//84 -f 380//84 379//84 378//84 -f 378//84 376//84 390//84 -f 389//84 388//84 386//84 -f 385//84 384//84 382//84 -f 382//84 380//84 378//84 -f 378//84 390//84 386//84 -f 326//93 314//93 423//93 -f 314//77 313//77 411//77 -f 313//74 312//74 410//74 -f 409//71 312//71 408//71 -f 408//68 311//68 412//68 -f 315//57 316//57 412//57 -f 316//61 317//61 413//61 -f 317//63 318//63 414//63 -f 318//79 319//79 415//79 -f 319//87 320//87 416//87 -f 320//88 321//88 417//88 -f 321//89 322//89 418//89 -f 322//90 323//90 419//90 -f 427//84 408//84 428//84 -f 412//84 413//84 428//84 -f 413//84 414//84 429//84 -f 441//136 440//136 450//136 -f 430//63 431//63 441//63 -f 414//84 415//84 430//84 -f 426//84 409//84 427//84 -f 425//84 410//84 426//84 -f 424//84 411//84 425//84 -f 456//137 434//137 447//137 -f 424//82 447//82 439//82 -f 457//138 448//138 433//138 -f 432//80 438//80 448//80 -f 415//84 416//84 431//84 -f 327//139 307//139 308//139 -f 308//139 436//139 327//139 -f 310//139 309//139 327//139 -f 146//80 308//80 145//80 -f 148//82 147//82 310//82 -f 429//61 430//61 442//61 -f 428//57 429//57 443//57 -f 427//68 428//68 444//68 -f 426//71 427//71 445//71 -f 425//74 426//74 446//74 -f 424//77 425//77 447//77 -f 431//79 432//79 440//79 -f 440//140 448//140 449//140 -f 447//141 446//141 456//141 -f 446//142 445//142 455//142 -f 454//143 445//143 453//143 -f 444//144 443//144 453//144 -f 452//145 443//145 451//145 -f 442//146 441//146 451//146 -f 434//55 433//55 437//55 -f 148//55 439//55 437//55 -f 435//55 438//55 146//55 -f 146//55 148//55 437//55 -f 146//84 438//84 308//84 -f 432//84 416//84 308//84 -f 424//84 439//84 310//84 -f 148//84 310//84 439//84 -f 420//84 421//84 436//84 -f 420//84 436//84 419//84 -f 460//139 458//139 462//139 -f 434//111 461//111 433//111 -f 457//111 433//111 458//111 -f 456//111 460//111 434//111 -f 460//111 456//111 458//111 -f 463//111 464//111 462//111 -f 461//82 460//82 465//82 -f 458//80 459//80 463//80 -f 459//55 461//55 464//55 -f 457//111 456//111 449//111 -f 449//111 455//111 450//111 -f 450//111 454//111 451//111 -f 466//82 469//82 470//82 -f 471//139 467//139 475//139 -f 475//139 466//139 470//139 -f 468//80 467//80 472//80 -f 473//55 469//55 474//55 -f 474//55 468//55 472//55 -f 224//84 306//84 469//84 -f 474//84 306//84 468//84 -f 475//84 238//84 466//84 -f 237//84 238//84 467//84 -f 476//84 478//84 477//84 -f 482//147 483//147 486//147 -f 483//82 479//82 480//82 -f 476//80 477//80 481//80 -f 477//55 479//55 482//55 -f 478//139 476//139 480//139 -f 486//148 487//148 490//148 -f 480//149 481//149 484//149 -f 483//82 480//82 487//82 -f 485//80 481//80 486//80 -f 489//150 490//150 488//150 -f 484//151 485//151 488//151 -f 491//82 487//82 488//82 -f 485//80 486//80 489//80 -l 412 429 diff --git a/src/main/resources/assets/hbm/models/generator_body.obj b/src/main/resources/assets/hbm/models/generator_body.obj deleted file mode 100644 index 3f47ebc74..000000000 --- a/src/main/resources/assets/hbm/models/generator_body.obj +++ /dev/null @@ -1,1844 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'generator_body.blend' -# www.blender.org -o Plane -v -1.500000 0.000000 0.750000 -v 2.250000 0.000000 0.750000 -v -1.500000 0.000000 -0.750000 -v 2.250000 0.000000 -0.750000 -v -2.250000 1.500000 -1.275000 -v -2.250000 1.987921 -1.177946 -v -2.250000 2.401561 -0.901561 -v -2.250000 2.677946 -0.487921 -v -2.250000 2.775000 0.000000 -v -2.250000 2.677946 0.487922 -v -2.250000 2.401561 0.901561 -v -2.250000 1.987921 1.177946 -v -2.250000 1.500000 1.275000 -v -2.000000 1.500000 -1.500000 -v -2.000000 2.074025 -1.385819 -v -2.000000 2.560660 -1.060660 -v -2.000000 2.885819 -0.574025 -v -2.000000 3.000000 0.000000 -v -2.000000 2.885819 0.574025 -v -2.000000 2.560660 1.060660 -v -2.000000 2.074025 1.385819 -v -2.000000 1.500000 1.500000 -v -1.750000 1.500000 -1.500000 -v -1.750000 2.074025 -1.385819 -v -1.750000 2.560660 -1.060660 -v -1.750000 2.885819 -0.574025 -v -1.750000 3.000000 0.000000 -v -1.750000 2.885819 0.574025 -v -1.750000 2.560660 1.060660 -v -1.750000 2.074025 1.385819 -v -1.750000 1.500000 1.500000 -v -1.500000 1.500000 -1.275000 -v -1.500000 1.987921 -1.177946 -v -1.500000 2.401561 -0.901561 -v -1.500000 2.677946 -0.487921 -v -1.500000 2.775000 0.000000 -v -1.500000 2.677946 0.487922 -v -1.500000 2.401561 0.901561 -v -1.500000 1.987921 1.177946 -v -1.500000 1.500000 1.275000 -v -2.000000 0.000000 -1.500000 -v -2.000000 0.000000 1.500000 -v -1.750000 0.000000 -1.500000 -v -1.750000 0.000000 1.500000 -v -1.500000 0.000000 -1.275000 -v -1.500000 0.000000 1.275000 -v -2.250000 1.500000 -0.750000 -v -2.250000 1.787013 -0.692910 -v -2.250000 2.030330 -0.530330 -v -2.250000 2.192910 -0.287013 -v -2.250000 2.250000 0.000000 -v -2.250000 2.192910 0.287013 -v -2.250000 2.030330 0.530330 -v -2.250000 1.787013 0.692910 -v -2.250000 1.500000 0.750000 -v -2.250000 0.000000 0.750000 -v -2.250000 -0.000000 -0.750000 -v -2.250000 0.000000 1.275000 -v -2.250000 0.000000 -1.275000 -v -2.500000 1.500000 -0.750000 -v -2.500000 1.787013 -0.692910 -v -2.500000 2.030330 -0.530330 -v -2.500000 2.192910 -0.287013 -v -2.500000 2.250000 0.000000 -v -2.500000 2.192910 0.287013 -v -2.500000 2.030330 0.530330 -v -2.500000 1.787013 0.692910 -v -2.500000 1.500000 0.750000 -v -2.750000 1.500000 -0.525000 -v -2.750000 1.700909 -0.485037 -v -2.750000 1.871231 -0.371231 -v -2.750000 1.985037 -0.200909 -v -2.750000 2.025000 0.000000 -v -2.750000 1.985037 0.200909 -v -2.750000 1.871231 0.371231 -v -2.750000 1.700909 0.485037 -v -2.750000 1.500000 0.525000 -v -2.500000 -0.000000 -0.750000 -v -2.500000 0.000000 0.750000 -v -2.750000 -0.000000 -0.525000 -v -2.750000 0.000000 0.525000 -v -2.750000 1.500000 -0.472500 -v -2.750000 1.680818 -0.436533 -v -2.750000 1.834108 -0.334108 -v -2.750000 1.936533 -0.180818 -v -2.750000 1.972500 0.000000 -v -2.750000 1.936533 0.180818 -v -2.750000 1.834108 0.334108 -v -2.750000 1.680818 0.436533 -v -2.750000 1.500000 0.472500 -v -2.750000 1.319182 0.436533 -v -2.750000 1.165892 0.334108 -v -2.750000 1.063467 0.180818 -v -2.750000 1.027500 -0.000000 -v -2.750000 1.063467 -0.180818 -v -2.750000 1.165892 -0.334108 -v -2.750000 1.319182 -0.436533 -v -2.875001 1.500000 -0.472500 -v -2.875001 1.680818 -0.436533 -v -2.875001 1.834108 -0.334108 -v -2.875001 1.936533 -0.180818 -v -2.875001 1.972500 0.000000 -v -2.875001 1.936533 0.180818 -v -2.875001 1.834108 0.334108 -v -2.875001 1.680818 0.436533 -v -2.875001 1.500000 0.472500 -v -2.875000 1.319182 0.436533 -v -2.875000 1.165892 0.334108 -v -2.875000 1.063467 0.180818 -v -2.875000 1.027500 -0.000000 -v -2.875000 1.063467 -0.180818 -v -2.875000 1.165892 -0.334108 -v -2.875000 1.319182 -0.436533 -v -3.000001 1.500000 -0.354375 -v -3.000001 1.635613 -0.327400 -v -3.000001 1.750581 -0.250581 -v -3.000001 1.827400 -0.135613 -v -3.000001 1.854375 0.000000 -v -3.000001 1.827400 0.135613 -v -3.000001 1.750581 0.250581 -v -3.000001 1.635613 0.327400 -v -3.000001 1.500000 0.354375 -v -3.000000 1.364387 0.327400 -v -3.000000 1.249419 0.250581 -v -3.000000 1.172600 0.135613 -v -3.000000 1.145625 -0.000000 -v -3.000000 1.172600 -0.135614 -v -3.000000 1.249419 -0.250581 -v -3.000000 1.364387 -0.327400 -v -3.000001 1.500000 -0.301219 -v -3.000001 1.615271 -0.278290 -v -3.000001 1.712994 -0.212994 -v -3.000001 1.778290 -0.115271 -v -3.000001 1.801219 0.000000 -v -3.000001 1.778290 0.115271 -v -3.000001 1.712994 0.212994 -v -3.000001 1.615271 0.278290 -v -3.000001 1.500000 0.301219 -v -3.000000 1.384729 0.278290 -v -3.000000 1.287006 0.212994 -v -3.000000 1.221710 0.115271 -v -3.000000 1.198781 -0.000000 -v -3.000000 1.221710 -0.115271 -v -3.000000 1.287006 -0.212994 -v -3.000000 1.384729 -0.278290 -v -3.000000 1.500000 -0.090366 -v -3.000000 1.534581 -0.083487 -v -3.000000 1.563898 -0.063898 -v -3.000000 1.583487 -0.034581 -v -3.000000 1.590366 0.000000 -v -3.000000 1.583487 0.034581 -v -3.000000 1.563898 0.063898 -v -3.000000 1.534581 0.083487 -v -3.000000 1.500000 0.090366 -v -3.000000 1.465419 0.083487 -v -3.000000 1.436102 0.063898 -v -3.000000 1.416513 0.034581 -v -3.000000 1.409634 -0.000000 -v -3.000000 1.416513 -0.034581 -v -3.000000 1.436102 -0.063898 -v -3.000000 1.465419 -0.083487 -v -2.750000 -0.000000 0.000000 -v -1.500000 0.500000 0.750000 -v 2.250000 0.500000 0.750000 -v -1.500000 0.500000 -0.750000 -v 2.250000 0.500000 -0.750000 -v -1.500000 2.192910 -0.287013 -v -1.500000 2.030330 -0.530330 -v -1.500000 1.787013 -0.692910 -v -1.500000 1.500000 -0.750000 -v -1.500000 2.250000 0.000000 -v -1.500000 2.192910 0.287013 -v -1.500000 2.030330 0.530330 -v -1.500000 1.787013 0.692910 -v -1.500000 1.500000 0.750000 -v -1.500000 1.212988 0.692910 -v -1.500000 0.969670 0.530330 -v -1.500000 0.807090 0.287013 -v -1.500000 0.750000 -0.000000 -v -1.500000 0.807090 -0.287013 -v -1.500000 0.969670 -0.530330 -v -1.500000 1.212988 -0.692910 -v -1.500000 0.500000 0.000000 -v -2.950001 1.500000 -0.354375 -v -2.950001 1.635613 -0.327400 -v -2.950001 1.750581 -0.250581 -v -2.950001 1.827400 -0.135613 -v -2.950001 1.854375 0.000000 -v -2.950001 1.827400 0.135613 -v -2.950001 1.750581 0.250581 -v -2.950001 1.635613 0.327400 -v -2.950001 1.500000 0.354375 -v -2.950000 1.364387 0.327400 -v -2.950000 1.249419 0.250581 -v -2.950000 1.172600 0.135613 -v -2.950000 1.145625 -0.000000 -v -2.950000 1.172600 -0.135614 -v -2.950000 1.249419 -0.250581 -v -2.950000 1.364387 -0.327400 -v -2.950001 1.500000 -0.301219 -v -2.950001 1.615271 -0.278290 -v -2.950001 1.712994 -0.212994 -v -2.950001 1.778290 -0.115271 -v -2.950001 1.801219 0.000000 -v -2.950001 1.778290 0.115271 -v -2.950001 1.712994 0.212994 -v -2.950001 1.615271 0.278290 -v -2.950001 1.500000 0.301219 -v -2.950000 1.384729 0.278290 -v -2.950000 1.287006 0.212994 -v -2.950000 1.221710 0.115271 -v -2.950000 1.198781 -0.000000 -v -2.950000 1.221710 -0.115271 -v -2.950000 1.287006 -0.212994 -v -2.950000 1.384729 -0.278290 -v -2.950000 1.500000 -0.090366 -v -2.950000 1.534581 -0.083487 -v -2.950000 1.563898 -0.063898 -v -2.950000 1.583487 -0.034581 -v -2.950000 1.590366 0.000000 -v -2.950000 1.583487 0.034581 -v -2.950000 1.563898 0.063898 -v -2.950000 1.534581 0.083487 -v -2.950000 1.500000 0.090366 -v -2.950000 1.465419 0.083487 -v -2.950000 1.436102 0.063898 -v -2.950000 1.416513 0.034581 -v -2.950000 1.409634 -0.000000 -v -2.950000 1.416513 -0.034581 -v -2.950000 1.436102 -0.063898 -v -2.950000 1.465419 -0.083487 -v -2.550001 1.500000 -0.472500 -v -2.550001 1.680818 -0.436533 -v -2.550001 1.834108 -0.334108 -v -2.550001 1.936533 -0.180818 -v -2.550001 1.972500 0.000000 -v -2.550001 1.936533 0.180818 -v -2.550001 1.834108 0.334108 -v -2.550001 1.680818 0.436533 -v -2.550001 1.500000 0.472500 -v -2.550000 1.319182 0.436533 -v -2.550000 1.165892 0.334108 -v -2.550000 1.063467 0.180818 -v -2.550000 1.027500 -0.000000 -v -2.550000 1.063467 -0.180818 -v -2.550000 1.165892 -0.334108 -v -2.550000 1.319182 -0.436533 -v -2.675001 1.500000 -0.472500 -v -2.675001 1.680818 -0.436533 -v -2.675001 1.834108 -0.334108 -v -2.675001 1.936533 -0.180818 -v -2.675001 1.972500 0.000000 -v -2.675001 1.936533 0.180818 -v -2.675001 1.834108 0.334108 -v -2.675001 1.680818 0.436533 -v -2.675001 1.500000 0.472500 -v -2.675000 1.319182 0.436533 -v -2.675000 1.165892 0.334108 -v -2.675000 1.063467 0.180818 -v -2.675000 1.027500 -0.000000 -v -2.675000 1.063467 -0.180818 -v -2.675000 1.165892 -0.334108 -v -2.675000 1.319182 -0.436533 -v 2.250000 2.192910 -0.287013 -v 2.250000 2.030330 -0.530330 -v 2.250000 1.787013 -0.692910 -v 2.250000 1.500000 -0.750000 -v 2.250000 2.250000 0.000000 -v 2.250000 2.192910 0.287013 -v 2.250000 2.030330 0.530330 -v 2.250000 1.787013 0.692910 -v 2.250000 1.500000 0.750000 -v 2.250000 1.212988 0.692910 -v 2.250000 0.969670 0.530330 -v 2.250000 0.807090 0.287013 -v 2.250000 0.750000 -0.000000 -v 2.250000 0.807090 -0.287013 -v 2.250000 0.969670 -0.530330 -v 2.250000 1.212988 -0.692910 -v 2.250000 1.500000 -1.000000 -v 2.250000 1.882683 -0.923880 -v 2.250000 2.207107 -0.707107 -v 2.250000 2.423880 -0.382683 -v 2.250000 2.500000 0.000000 -v 2.250000 2.423880 0.382684 -v 2.250000 2.207107 0.707107 -v 2.250000 1.882683 0.923880 -v 2.250000 1.500000 1.000000 -v 2.750000 0.000000 0.800000 -v 2.750000 -0.000000 -0.800000 -v 2.500000 0.000000 1.000000 -v 2.250000 0.500000 -0.000000 -v 2.500000 -0.000000 -1.000000 -v 2.250000 0.000000 1.000000 -v 2.250000 -0.000000 -1.000000 -v 2.500000 1.882683 0.923880 -v 2.500000 2.207107 0.707107 -v 2.500000 2.423880 0.382684 -v 2.500000 2.500000 0.000000 -v 2.500000 2.423880 -0.382683 -v 2.500000 2.207107 -0.707107 -v 2.500000 1.882683 -0.923880 -v 2.500000 1.500000 -1.000000 -v 2.500000 1.500000 1.000000 -v 2.750000 1.806147 0.739104 -v 2.750000 2.065685 0.565686 -v 2.750000 2.239104 0.306147 -v 2.750000 2.300000 0.000000 -v 2.750000 2.239104 -0.306147 -v 2.750000 2.065685 -0.565686 -v 2.750000 1.806147 -0.739104 -v 2.750000 1.500000 -0.800000 -v 2.750000 1.500000 0.800000 -v 2.750000 0.656250 0.156250 -v 2.750000 0.343750 0.156250 -v 2.750000 0.656250 -0.156250 -v 2.750000 0.343750 -0.156250 -v 3.000000 0.656250 -0.156250 -v 3.000000 0.656250 0.156250 -v 3.000000 0.343750 0.156250 -v 3.000000 0.343750 -0.156250 -v -2.750000 0.656250 -0.156250 -v -2.750000 0.656250 0.156250 -v -2.750000 0.343750 0.156250 -v -2.750000 0.343750 -0.156250 -v -3.000000 0.656250 -0.156250 -v -3.000000 0.656250 0.156250 -v -3.000000 0.343750 0.156250 -v -3.000000 0.343750 -0.156250 -v -2.750000 0.343750 0.000000 -v -2.750000 0.656250 0.000000 -v -1.750000 2.900000 0.150000 -v -1.750000 2.800000 0.150000 -v -1.750000 2.900000 -0.150000 -v -1.750000 2.800000 -0.150000 -v 0.250000 2.900002 -0.150000 -v 0.250000 2.900002 0.150000 -v 0.250000 2.800002 0.150000 -v 0.250000 2.800002 -0.150000 -v 0.362941 2.898298 -0.150000 -v 0.362941 2.898298 0.150000 -v 0.337059 2.801706 0.150000 -v 0.337059 2.801706 -0.150000 -v 2.294793 2.380663 -0.150000 -v 2.294793 2.380663 0.150000 -v 2.268912 2.284071 0.150000 -v 2.268912 2.284071 -0.150000 -vt 0.107106 0.786032 -vt 0.240683 0.786032 -vt 0.240683 0.999756 -vt 0.265014 0.120502 -vt 0.252794 0.097238 -vt 0.332713 0.085314 -vt 0.251510 0.088631 -vt 0.331429 0.076708 -vt 0.256407 0.062813 -vt 0.324339 0.052678 -vt 0.204379 0.150422 -vt 0.181563 0.132483 -vt 0.249315 0.098529 -vt 0.177664 0.124704 -vt 0.176949 0.095689 -vt 0.234538 0.066828 -vt 0.245416 0.090750 -vt 0.126525 0.180371 -vt 0.113265 0.151765 -vt 0.151745 0.108572 -vt 0.133023 0.186160 -vt 0.171796 0.129556 -vt 0.201444 0.152849 -vt 0.162964 0.196041 -vt 0.147355 0.251125 -vt 0.114844 0.250811 -vt 0.130741 0.190871 -vt 0.122330 0.188641 -vt 0.106433 0.248581 -vt 0.078040 0.232742 -vt 0.335979 0.110367 -vt 0.336211 0.085314 -vt 0.416131 0.097236 -vt 0.337495 0.076708 -vt 0.417415 0.088629 -vt 0.344585 0.052677 -vt 0.423509 0.090748 -vt 0.434386 0.066826 -vt 0.491976 0.095685 -vt 0.419610 0.098527 -vt 0.491262 0.124700 -vt 0.464548 0.150419 -vt 0.406958 0.121560 -vt 0.467482 0.152846 -vt 0.490633 0.135341 -vt 0.535905 0.186155 -vt 0.497130 0.129553 -vt 0.542402 0.180367 -vt 0.517181 0.108568 -vt 0.546598 0.188636 -vt 0.577376 0.181788 -vt 0.590889 0.232737 -vt 0.538187 0.190867 -vt 0.562496 0.248575 -vt 0.521574 0.251121 -vt 0.508061 0.200172 -vt 0.125475 0.448925 -vt 0.125628 0.436403 -vt 0.726680 0.443735 -vt 0.726528 0.456256 -vt 0.622108 0.464958 -vt 0.114551 0.253670 -vt 0.114553 0.410300 -vt 0.105851 0.410300 -vt 0.105849 0.253670 -vt 0.073339 0.410300 -vt 0.563082 0.410296 -vt 0.554380 0.410296 -vt 0.554379 0.253665 -vt 0.595594 0.410296 -vt 0.563081 0.253665 -vt 0.448480 0.251122 -vt 0.440531 0.221152 -vt 0.438433 0.217017 -vt 0.415797 0.191610 -vt 0.412863 0.189184 -vt 0.378987 0.172208 -vt 0.403911 0.120501 -vt 0.375940 0.171149 -vt 0.335980 0.165188 -vt 0.332947 0.165188 -vt 0.292987 0.171150 -vt 0.289940 0.172209 -vt 0.256064 0.189186 -vt 0.253130 0.191612 -vt 0.230495 0.217020 -vt 0.228397 0.221154 -vt 0.220449 0.251124 -vt 0.448772 0.253667 -vt 0.521867 0.253666 -vt 0.521868 0.410296 -vt 0.147065 0.410299 -vt 0.147063 0.253670 -vt 0.220157 0.253669 -vt 0.230047 0.419000 -vt 0.261372 0.410298 -vt 0.334465 0.410298 -vt 0.228860 0.253355 -vt 0.259627 0.197400 -vt 0.236992 0.222808 -vt 0.293839 0.179988 -vt 0.259963 0.196965 -vt 0.334231 0.173794 -vt 0.294271 0.179756 -vt 0.374656 0.179755 -vt 0.334696 0.173794 -vt 0.408965 0.196963 -vt 0.375088 0.179987 -vt 0.431936 0.222806 -vt 0.409300 0.197399 -vt 0.440069 0.253352 -vt 0.432120 0.223383 -vt 0.407558 0.253667 -vt 0.401994 0.232688 -vt 0.386149 0.214903 -vt 0.362436 0.203020 -vt 0.334464 0.198847 -vt 0.306492 0.203021 -vt 0.282779 0.214904 -vt 0.266934 0.232690 -vt 0.261370 0.253669 -vt 0.230047 0.427701 -vt 0.438886 0.427701 -vt 0.440072 0.410297 -vt 0.440071 0.253667 -vt 0.228858 0.253669 -vt 0.228860 0.410298 -vt 0.273687 0.234787 -vt 0.268680 0.253669 -vt 0.287947 0.218781 -vt 0.309289 0.208085 -vt 0.334464 0.204329 -vt 0.359639 0.208085 -vt 0.380981 0.218780 -vt 0.395241 0.234786 -vt 0.400249 0.253667 -vt 0.965603 0.625779 -vt 0.960103 0.606448 -vt 0.964409 0.605223 -vt 0.959867 0.606256 -vt 0.945081 0.590174 -vt 0.948345 0.587174 -vt 0.944980 0.589994 -vt 0.923060 0.579326 -vt 0.925004 0.575331 -vt 0.922804 0.579111 -vt 0.896898 0.575715 -vt 0.897478 0.571287 -vt 0.896488 0.575832 -vt 0.870984 0.580465 -vt 0.870192 0.576106 -vt 0.871090 0.580765 -vt 0.850045 0.591809 -vt 0.848032 0.587973 -vt 0.849978 0.591726 -vt 0.835679 0.607766 -vt 0.832423 0.604864 -vt 0.835229 0.607808 -vt 0.829943 0.627172 -vt 0.825630 0.625994 -vt 0.825429 0.628600 -vt 0.829795 0.627476 -vt 0.834839 0.647077 -vt 0.834938 0.647388 -vt 0.849615 0.664055 -vt 0.846232 0.667034 -vt 0.849734 0.664419 -vt 0.872020 0.675593 -vt 0.869983 0.679655 -vt 0.872510 0.675844 -vt 0.898867 0.679208 -vt 0.898292 0.683713 -vt 0.899298 0.679063 -vt 0.925166 0.674243 -vt 0.925990 0.678665 -vt 0.925214 0.673872 -vt 0.946421 0.662289 -vt 0.948532 0.666154 -vt 0.960796 0.645551 -vt 0.965571 0.626072 -vt 0.969910 0.627135 -vt 0.946463 0.662208 -vt 0.960493 0.645679 -vt 0.963848 0.648526 -vt 0.948105 0.626247 -vt 0.943981 0.611749 -vt 0.932892 0.599688 -vt 0.916452 0.591687 -vt 0.897022 0.589141 -vt 0.877895 0.592616 -vt 0.862111 0.600899 -vt 0.851386 0.612929 -vt 0.847422 0.627452 -vt 0.851204 0.642151 -vt 0.862212 0.654652 -vt 0.858299 0.639996 -vt 0.867650 0.650574 -vt 0.855059 0.627491 -vt 0.858342 0.615056 -vt 0.867387 0.604764 -vt 0.880854 0.597722 -vt 0.897158 0.594813 -vt 0.913639 0.596980 -vt 0.927613 0.603769 -vt 0.937009 0.614023 -vt 0.940498 0.626390 -vt 0.889360 0.632986 -vt 0.897657 0.617177 -vt 0.905903 0.621353 -vt 0.902579 0.617848 -vt 0.892663 0.618010 -vt 0.886759 0.623772 -vt 0.885496 0.627482 -vt 0.886126 0.631282 -vt 0.893142 0.636769 -vt 0.898030 0.637438 -vt 0.898536 0.659790 -vt 0.902977 0.636637 -vt 0.915036 0.656788 -vt 0.910146 0.626912 -vt 0.909305 0.623177 -vt 0.909104 0.630632 -vt 0.937495 0.638875 -vt 0.944524 0.640856 -vt 0.934001 0.653253 -vt 0.918096 0.661940 -vt 0.898694 0.665555 -vt 0.928589 0.649439 -vt 0.881820 0.657654 -vt 0.878927 0.663032 -vt 0.778702 0.706144 -vt 0.778685 0.739538 -vt 0.734159 0.739516 -vt 0.749430 0.369489 -vt 0.771693 0.369489 -vt 0.749430 0.402883 -vt 0.309290 0.299251 -vt 0.287948 0.288556 -vt 0.273687 0.272549 -vt 0.359639 0.299250 -vt 0.380981 0.288555 -vt 0.407560 0.410298 -vt 0.395242 0.272548 -vt 0.673123 0.920616 -vt 0.673123 0.787039 -vt 0.707946 0.787039 -vt 0.746724 0.920616 -vt 0.746724 0.787039 -vt 0.788071 0.787039 -vt 0.707946 0.920616 -vt 0.014553 0.196520 -vt 0.022501 0.166550 -vt 0.084658 0.087096 -vt 0.107293 0.061688 -vt 0.176831 0.031082 -vt 0.210707 0.014105 -vt 0.268378 0.006206 -vt 0.308338 0.000244 -vt 0.412517 0.062811 -vt 0.360585 0.000244 -vt 0.458216 0.014102 -vt 0.492093 0.031079 -vt 0.561631 0.061683 -vt 0.584267 0.087090 -vt 0.646426 0.166542 -vt 0.654375 0.196512 -vt 0.000245 0.358091 -vt 0.073337 0.253671 -vt 0.595593 0.253665 -vt 0.668687 0.253664 -vt 0.668688 0.358085 -vt 0.107106 0.625740 -vt 0.080390 0.625740 -vt 0.074289 0.584845 -vt 0.056916 0.550177 -vt 0.107106 0.518878 -vt 0.030914 0.527012 -vt 0.000244 0.518878 -vt 0.107106 0.732601 -vt 0.074289 0.666634 -vt 0.056916 0.701302 -vt 0.030914 0.724467 -vt 0.000244 0.732601 -vt 0.853352 0.497651 -vt 0.864275 0.484795 -vt 0.869830 0.488836 -vt 0.860592 0.499657 -vt 0.857705 0.512298 -vt 0.855021 0.526663 -vt 0.849973 0.512727 -vt 0.861567 0.524383 -vt 0.870383 0.534246 -vt 0.865300 0.537877 -vt 0.883417 0.541474 -vt 0.880358 0.546532 -vt 0.899743 0.544474 -vt 0.919170 0.547631 -vt 0.899586 0.550185 -vt 0.935720 0.539536 -vt 0.916333 0.542300 -vt 0.930392 0.535438 -vt 0.939825 0.525083 -vt 0.946855 0.527350 -vt 0.943294 0.512618 -vt 0.888052 0.511776 -vt 0.900543 0.501703 -vt 0.900262 0.522013 -vt 0.905196 0.521335 -vt 0.895258 0.521183 -vt 0.888653 0.507966 -vt 0.900871 0.479229 -vt 0.895640 0.502411 -vt 0.917515 0.482138 -vt 0.905516 0.502473 -vt 0.911931 0.515964 -vt 0.912760 0.512207 -vt 0.911697 0.508473 -vt 0.950956 0.512733 -vt 0.940219 0.500059 -vt 0.936634 0.485595 -vt 0.947289 0.498034 -vt 0.920566 0.476928 -vt 0.931202 0.489463 -vt 0.900985 0.473414 -vt 0.884037 0.481528 -vt 0.881061 0.476130 -vt 0.800954 0.759909 -vt 0.816528 0.759909 -vt 0.816528 0.761690 -vt 0.725254 0.759909 -vt 0.739240 0.759909 -vt 0.739240 0.761690 -vt 0.768305 0.761690 -vt 0.768305 0.759909 -vt 0.772501 0.759909 -vt 0.772501 0.761690 -vt 0.777173 0.759909 -vt 0.777173 0.761690 -vt 0.764609 0.763959 -vt 0.740828 0.763959 -vt 0.740828 0.762177 -vt 0.764609 0.762177 -vt 0.769281 0.762177 -vt 0.769281 0.763959 -vt 0.773477 0.762177 -vt 0.773477 0.763959 -vt 0.802542 0.762177 -vt 0.816528 0.762177 -vt 0.816528 0.763959 -vt 0.725254 0.762178 -vt 0.800954 0.755373 -vt 0.800954 0.757154 -vt 0.777173 0.757154 -vt 0.777173 0.755373 -vt 0.772501 0.757154 -vt 0.772501 0.755373 -vt 0.768305 0.757154 -vt 0.739241 0.757154 -vt 0.739241 0.755373 -vt 0.725254 0.757154 -vt 0.725254 0.755373 -vt 0.816528 0.757154 -vt 0.769283 0.757641 -vt 0.769283 0.759422 -vt 0.764610 0.759422 -vt 0.740829 0.759422 -vt 0.740829 0.757641 -vt 0.725254 0.759422 -vt 0.725254 0.757641 -vt 0.816528 0.759422 -vt 0.802542 0.759422 -vt 0.802542 0.757641 -vt 0.773479 0.759422 -vt 0.773479 0.757641 -vt 0.969525 0.534430 -vt 0.965184 0.533211 -vt 0.970652 0.513720 -vt 0.953023 0.553646 -vt 0.949726 0.550633 -vt 0.964573 0.534386 -vt 0.928920 0.566345 -vt 0.926953 0.562323 -vt 0.949020 0.551531 -vt 0.900377 0.570800 -vt 0.899795 0.566337 -vt 0.925906 0.562930 -vt 0.871981 0.565663 -vt 0.872814 0.561281 -vt 0.898451 0.566153 -vt 0.849917 0.550610 -vt 0.852548 0.547470 -vt 0.871309 0.560143 -vt 0.835928 0.535895 -vt 0.839331 0.533378 -vt 0.826429 0.518945 -vt 0.830420 0.516763 -vt 0.825429 0.511783 -vt 0.829933 0.491682 -vt 0.834411 0.492685 -vt 0.846082 0.471022 -vt 0.849561 0.473978 -vt 0.834997 0.491120 -vt 0.870651 0.457162 -vt 0.872756 0.461241 -vt 0.850375 0.472794 -vt 0.900059 0.452430 -vt 0.900678 0.456971 -vt 0.874112 0.460593 -vt 0.928881 0.457397 -vt 0.928080 0.461860 -vt 0.901973 0.457174 -vt 0.952382 0.470337 -vt 0.950276 0.474242 -vt 0.928851 0.462686 -vt 0.974994 0.511230 -vt 0.970629 0.512319 -vt 0.965740 0.492720 -vt 0.968449 0.488737 -vt 0.965083 0.491621 -vt 0.950877 0.475036 -vt 0.829906 0.512786 -vt 0.732876 0.064083 -vt 0.764868 0.000244 -vt 0.849987 0.042900 -vt 0.641392 0.920616 -vt 0.641392 0.787039 -vt 0.609660 0.920616 -vt 0.609660 0.787039 -vt 0.574837 0.920616 -vt 0.574837 0.787039 -vt 0.536059 0.920616 -vt 0.536059 0.787039 -vt 0.494712 0.920616 -vt 0.494712 0.787039 -vt 0.453365 0.920616 -vt 0.453365 0.787039 -vt 0.414587 0.920616 -vt 0.414587 0.787039 -vt 0.379763 0.920616 -vt 0.379763 0.787039 -vt 0.348032 0.920616 -vt 0.348032 0.787039 -vt 0.903020 0.920616 -vt 0.903020 0.787039 -vt 0.934751 0.787039 -vt 0.868196 0.920616 -vt 0.868196 0.787039 -vt 0.829418 0.920616 -vt 0.829418 0.787039 -vt 0.788071 0.920616 -vt 0.586671 0.780451 -vt 0.545777 0.786551 -vt 0.537979 0.760999 -vt 0.486129 0.780451 -vt 0.480295 0.752865 -vt 0.534820 0.760999 -vt 0.430843 0.760074 -vt 0.430900 0.728590 -vt 0.477125 0.751755 -vt 0.403618 0.685464 -vt 0.431090 0.676266 -vt 0.455799 0.704000 -vt 0.396969 0.691388 -vt 0.434505 0.720133 -vt 0.383029 0.722903 -vt 0.427856 0.726056 -vt 0.641957 0.760074 -vt 0.607288 0.777448 -vt 0.595675 0.751755 -vt 0.689771 0.722903 -vt 0.666606 0.748904 -vt 0.644944 0.726056 -vt 0.719786 0.663845 -vt 0.711651 0.694516 -vt 0.678001 0.687087 -vt 0.650386 0.483257 -vt 0.680241 0.483257 -vt 0.680241 0.643550 -vt 0.689146 0.483257 -vt 0.392558 0.643550 -vt 0.392558 0.483257 -vt 0.422413 0.483257 -vt 0.383653 0.483257 -vt 0.353014 0.663846 -vt 0.383953 0.646193 -vt 0.394798 0.687087 -vt 0.240683 0.625740 -vt 0.240683 0.732601 -vt 0.240683 0.518878 -vt 0.107106 0.465447 -vt 0.434890 0.720629 -vt 0.481114 0.743793 -vt 0.481609 0.744057 -vt 0.536134 0.752191 -vt 0.536665 0.752191 -vt 0.591191 0.744057 -vt 0.591685 0.743793 -vt 0.637910 0.720628 -vt 0.638295 0.720132 -vt 0.669181 0.685464 -vt 0.669393 0.684804 -vt 0.680239 0.643910 -vt 0.392560 0.643910 -vt 0.403406 0.684804 -vt 0.422414 0.643550 -vt 0.641709 0.676265 -vt 0.650386 0.643550 -vt 0.617000 0.704000 -vt 0.580020 0.722532 -vt 0.536400 0.729040 -vt 0.492779 0.722532 -vt 0.393917 0.474352 -vt 0.678881 0.474352 -vt 0.429538 0.465447 -vt 0.383653 0.643550 -vt 0.348032 0.536688 -vt 0.724767 0.536688 -vt 0.724767 0.643550 -vt 0.689147 0.643550 -vt 0.273499 0.666634 -vt 0.290873 0.701302 -vt 0.316874 0.724467 -vt 0.347545 0.732602 -vt 0.273499 0.584845 -vt 0.290873 0.550177 -vt 0.316874 0.527012 -vt 0.347545 0.518878 -vt 0.736073 0.369002 -vt 0.736073 0.360097 -vt 0.780598 0.360097 -vt 0.558663 0.519991 -vt 0.514137 0.519991 -vt 0.514137 0.553385 -vt 0.558663 0.553385 -vt 0.736073 0.326702 -vt 0.780598 0.326702 -vt 0.789504 0.360097 -vt 0.727167 0.326702 -vt 0.780598 0.317797 -vt 0.787590 0.739542 -vt 0.756443 0.697228 -vt 0.734176 0.706122 -vt 0.725271 0.706118 -vt 0.756418 0.748432 -vt 0.334465 0.374403 -vt 0.356220 0.374403 -vt 0.312711 0.374404 -vt 0.334465 0.303006 -vt 0.356219 0.341772 -vt 0.334465 0.341772 -vt 0.312711 0.341772 -vt 0.778642 0.754886 -vt 0.778460 0.751785 -vt 0.821131 0.749279 -vt 0.727167 0.274565 -vt 0.727167 0.263879 -vt 0.798409 0.263879 -vt 0.727167 0.210448 -vt 0.798409 0.210448 -vt 0.798409 0.221134 -vt 0.798409 0.274565 -vt 0.798409 0.317310 -vt 0.727167 0.221134 -vt 0.732916 0.167216 -vt 0.821206 0.167216 -vt 0.821206 0.209961 -vt 0.725254 0.752953 -vt 0.725436 0.748930 -vt 0.768137 0.750863 -vt 0.767955 0.754886 -vt 0.727167 0.414046 -vt 0.727650 0.403371 -vt 0.730740 0.403693 -vt 0.727167 0.115849 -vt 0.815458 0.115849 -vt 0.815458 0.158593 -vt 0.727167 0.158593 -vt 0.732916 0.107226 -vt 0.821206 0.107226 -vt 0.107106 0.999756 -vt 0.332946 0.110367 -vt 0.261968 0.121562 -vt 0.178293 0.135345 -vt 0.160867 0.200176 -vt 0.091552 0.181794 -vt 0.487363 0.132480 -vt 0.505963 0.196037 -vt 0.555661 0.151760 -vt 0.554085 0.250806 -vt 0.413270 0.464959 -vt 0.170402 0.461997 -vt 0.695202 0.464958 -vt 0.448774 0.410297 -vt 0.220159 0.410299 -vt 0.438886 0.418999 -vt 0.236808 0.223385 -vt 0.681753 0.430663 -vt 0.156954 0.427702 -vt 0.969910 0.624554 -vt 0.963131 0.603255 -vt 0.946924 0.585999 -vt 0.923384 0.574682 -vt 0.895696 0.571472 -vt 0.869077 0.576930 -vt 0.846723 0.588824 -vt 0.830916 0.606630 -vt 0.830473 0.648201 -vt 0.831556 0.650366 -vt 0.847697 0.668481 -vt 0.871935 0.680349 -vt 0.900121 0.683485 -vt 0.927325 0.677737 -vt 0.965134 0.646614 -vt 0.949818 0.665055 -vt 0.906481 0.632421 -vt 0.889651 0.621829 -vt 0.727167 0.402883 -vt 0.727167 0.369489 -vt 0.771693 0.402883 -vt 0.400545 0.006204 -vt 0.000245 0.410301 -vt 0.000244 0.253672 -vt 0.668689 0.410295 -vt 0.908519 0.517808 -vt 0.892229 0.517372 -vt 0.889334 0.515445 -vt 0.891872 0.506240 -vt 0.909053 0.506688 -vt 0.800954 0.761690 -vt 0.725254 0.761690 -vt 0.802542 0.763959 -vt 0.725254 0.763959 -vt 0.768305 0.755373 -vt 0.816528 0.755373 -vt 0.764610 0.757641 -vt 0.816528 0.757641 -vt 0.974994 0.514938 -vt 0.967870 0.537399 -vt 0.950987 0.555552 -vt 0.926489 0.567393 -vt 0.897619 0.570535 -vt 0.868940 0.563610 -vt 0.831518 0.488164 -vt 0.848269 0.468715 -vt 0.873493 0.456052 -vt 0.902774 0.452711 -vt 0.930957 0.458781 -vt 0.970105 0.491631 -vt 0.954243 0.472153 -vt 0.855695 0.064083 -vt 0.851619 0.083654 -vt 0.838381 0.098632 -vt 0.817995 0.106739 -vt 0.793564 0.106739 -vt 0.768809 0.098632 -vt 0.747498 0.083654 -vt 0.727167 0.042900 -vt 0.731243 0.023329 -vt 0.744481 0.008350 -vt 0.789298 0.000244 -vt 0.814053 0.008350 -vt 0.835364 0.023329 -vt 0.934751 0.920616 -vt 0.592505 0.752865 -vt 0.527023 0.786552 -vt 0.465511 0.777448 -vt 0.406194 0.748904 -vt 0.641900 0.728590 -vt 0.675830 0.691388 -vt 0.688847 0.646193 -vt 0.361148 0.694516 -vt 0.240683 0.465447 -vt 0.643261 0.465447 -vt 0.678881 0.465447 -vt 0.393917 0.465447 -vt 0.348032 0.483257 -vt 0.348032 0.643550 -vt 0.724767 0.483257 -vt 0.267398 0.625740 -vt 0.780598 0.369002 -vt 0.789504 0.326702 -vt 0.727167 0.360097 -vt 0.736073 0.317797 -vt 0.787607 0.706148 -vt 0.734180 0.697217 -vt 0.778706 0.697239 -vt 0.725254 0.739512 -vt 0.778681 0.748443 -vt 0.734155 0.748421 -vt 0.821313 0.752380 -vt 0.727167 0.317310 -vt 0.732916 0.209961 -vt 0.731195 0.414046 -vn 0.000000 -1.000000 0.000000 -vn -0.661800 0.735300 0.146300 -vn 0.000000 0.980800 0.195100 -vn 0.661800 0.735300 0.146300 -vn -0.661800 0.623400 0.416500 -vn 0.661800 0.623400 0.416500 -vn 0.000000 0.831500 0.555600 -vn 0.661800 0.416500 0.623400 -vn 0.000000 0.555600 0.831500 -vn -0.661800 0.416500 0.623400 -vn -0.661800 0.146300 0.735300 -vn 0.661800 0.146300 0.735300 -vn -0.661800 0.735300 -0.146300 -vn 0.000000 0.980800 -0.195100 -vn 0.661800 0.735300 -0.146300 -vn 0.661800 0.623400 -0.416500 -vn 0.000000 0.831500 -0.555600 -vn -0.661800 0.623400 -0.416500 -vn -0.661800 0.416500 -0.623400 -vn 0.000000 0.555600 -0.831500 -vn 0.661800 0.416500 -0.623400 -vn 0.661800 0.146300 -0.735300 -vn 0.000000 0.195100 -0.980800 -vn -0.661800 0.146300 -0.735300 -vn 0.000000 0.195100 0.980800 -vn 0.000000 0.000000 1.000000 -vn 0.669000 0.000000 0.743300 -vn 0.000000 0.000000 -1.000000 -vn 0.669000 0.000000 -0.743300 -vn -1.000000 0.000000 -0.000000 -vn -0.669000 0.000000 -0.743300 -vn -0.669000 0.000000 0.743300 -vn 0.000000 -0.195100 0.980800 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 -0.555600 -0.831500 -vn -0.679800 0.143100 -0.719300 -vn -0.679800 0.407500 -0.609800 -vn -0.679800 0.609800 -0.407500 -vn -0.679800 0.719300 -0.143100 -vn -0.679800 0.719300 0.143100 -vn -0.679800 0.609800 0.407500 -vn -0.679800 0.407500 0.609800 -vn -0.679800 0.143100 0.719300 -vn -0.679800 -0.143100 0.719300 -vn -0.679800 -0.407500 0.609800 -vn -0.679800 -0.143100 -0.719300 -vn -0.679800 -0.407500 -0.609800 -vn -0.679800 -0.609800 -0.407500 -vn -0.679800 -0.719300 -0.143100 -vn -0.679800 -0.609800 0.407500 -vn -0.679800 -0.719300 0.143100 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.382700 0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 -0.923900 0.382700 -vn 0.388200 0.512000 -0.766200 -vn 0.388200 0.766200 -0.512000 -vn 0.388200 0.903800 -0.179800 -vn 0.388200 0.903800 0.179800 -vn 0.388200 0.766200 0.512000 -vn 0.388200 0.512000 0.766200 -vn 0.388200 0.179800 0.903800 -vn 0.388200 -0.179800 0.903800 -vn 0.388200 -0.512000 0.766200 -vn 0.388200 -0.766200 0.512000 -vn 0.388200 -0.903800 0.179800 -vn 0.388200 -0.903800 -0.179800 -vn 0.388200 -0.766200 -0.512000 -vn 0.388200 -0.512000 -0.766200 -vn 0.388200 -0.179800 -0.903800 -vn 0.388200 0.179800 -0.903800 -vn 0.617300 0.437100 0.654100 -vn 0.624700 0.000000 -0.780900 -vn 0.624700 0.000000 0.780900 -vn 0.000000 1.000000 0.000000 -vn 0.617300 0.153500 0.771600 -vn 0.617300 0.153500 -0.771600 -vn 0.617300 0.437100 -0.654100 -vn 0.617300 0.654100 -0.437100 -vn 0.617300 0.771600 -0.153500 -vn 0.617300 0.771600 0.153500 -vn 0.617300 0.654100 0.437100 -vn 0.019600 -0.999800 0.000000 -vn -0.258800 -0.965900 0.000000 -vn 0.015100 0.999900 0.000000 -vn 0.258800 0.965900 0.000000 -vn -1.000000 -0.000100 0.000000 -vn 1.000000 0.000100 0.000000 -s off -f 3/1/1 4/2/1 2/3/1 -f 10/4/2 19/5/2 18/6/2 -f 19/5/3 28/7/3 27/8/3 -f 28/7/4 37/9/4 36/10/4 -f 11/11/5 20/12/5 19/13/5 -f 29/14/6 38/15/6 37/16/6 -f 20/12/7 29/14/7 28/17/7 -f 30/18/8 39/19/8 38/20/8 -f 21/21/9 30/18/9 29/22/9 -f 11/23/10 12/24/10 21/21/10 -f 13/25/11 22/26/11 21/27/11 -f 30/28/12 31/29/12 40/30/12 -f 9/31/13 18/32/13 17/33/13 -f 18/32/14 27/34/14 26/35/14 -f 26/35/15 27/34/15 36/36/15 -f 26/37/16 35/38/16 34/39/16 -f 17/40/17 26/37/17 25/41/17 -f 7/42/18 8/43/18 17/40/18 -f 7/44/19 16/45/19 15/46/19 -f 16/45/20 25/47/20 24/48/20 -f 24/48/21 25/47/21 34/49/21 -f 24/50/22 33/51/22 32/52/22 -f 15/53/23 24/50/23 23/54/23 -f 5/55/24 6/56/24 15/53/24 -f 22/26/25 31/29/25 30/28/25 -f 44/57/1 42/58/1 41/59/1 -f 44/57/1 43/60/1 3/61/1 -f 22/62/26 42/63/26 44/64/26 -f 31/65/27 44/64/27 46/66/27 -f 43/67/28 41/68/28 14/69/28 -f 45/70/29 43/67/29 23/71/29 -f 47/72/30 48/73/30 6/56/30 -f 48/74/30 49/75/30 7/44/30 -f 7/42/30 49/76/30 50/77/30 -f 8/78/30 50/79/30 51/80/30 -f 51/81/30 52/82/30 10/4/30 -f 52/83/30 53/84/30 11/11/30 -f 53/85/30 54/86/30 12/24/30 -f 54/87/30 55/88/30 13/25/30 -f 47/89/30 5/90/30 59/91/30 -f 58/92/30 13/93/30 55/94/30 -f 14/69/31 41/68/31 59/91/31 -f 58/92/32 42/63/32 22/62/32 -f 79/95/1 81/96/1 162/97/1 -f 68/98/25 55/88/25 54/87/25 -f 66/99/9 67/100/9 54/86/9 -f 65/101/7 66/102/7 53/84/7 -f 64/103/3 65/104/3 52/82/3 -f 63/105/14 64/106/14 51/80/14 -f 62/107/17 63/108/17 50/77/17 -f 61/109/20 62/110/20 49/75/20 -f 60/111/23 61/112/23 48/73/23 -f 60/111/24 69/113/24 70/114/24 -f 70/114/19 71/115/19 62/110/19 -f 62/107/18 71/115/18 72/116/18 -f 72/116/13 73/117/13 64/106/13 -f 64/103/2 73/117/2 74/118/2 -f 74/118/5 75/119/5 66/102/5 -f 66/99/10 75/119/10 76/120/10 -f 76/120/11 77/121/11 68/98/11 -f 42/58/1 56/122/1 41/59/1 -f 57/123/1 56/122/1 79/95/1 -f 78/124/28 60/125/28 47/89/28 -f 69/113/31 60/125/31 78/124/31 -f 55/94/26 68/126/26 79/127/26 -f 81/96/32 79/127/32 68/126/32 -f 89/128/30 90/129/30 77/121/30 -f 88/130/30 89/128/30 76/120/30 -f 87/131/30 88/130/30 75/119/30 -f 73/117/30 86/132/30 87/131/30 -f 85/133/30 86/132/30 73/117/30 -f 71/115/30 84/134/30 85/133/30 -f 83/135/30 84/134/30 71/115/30 -f 69/113/30 82/136/30 83/135/30 -f 98/137/23 99/138/23 83/139/23 -f 99/140/20 100/141/20 84/142/20 -f 100/143/17 101/144/17 85/145/17 -f 101/146/14 102/147/14 86/148/14 -f 102/149/3 103/150/3 87/151/3 -f 103/152/7 104/153/7 88/154/7 -f 104/155/9 105/156/9 89/157/9 -f 105/158/25 106/159/25 90/160/25 -f 90/161/33 106/162/33 107/163/33 -f 107/164/34 108/165/34 92/166/34 -f 108/167/35 109/168/35 93/169/35 -f 109/170/36 110/171/36 94/172/36 -f 110/173/37 111/174/37 95/175/37 -f 111/176/38 112/177/38 96/178/38 -f 113/179/39 98/180/39 82/181/39 -f 112/182/40 113/183/40 97/184/40 -f 114/185/41 115/186/41 99/138/41 -f 115/186/42 116/187/42 100/141/42 -f 100/143/43 116/187/43 117/188/43 -f 117/188/44 118/189/44 102/147/44 -f 102/149/45 118/189/45 119/190/45 -f 119/190/46 120/191/46 104/153/46 -f 120/191/47 121/192/47 105/156/47 -f 105/158/48 121/192/48 122/193/48 -f 106/162/49 122/193/49 123/194/49 -f 123/194/50 124/195/50 108/165/50 -f 123/194/30 139/196/30 140/197/30 -f 138/198/30 139/196/30 123/194/30 -f 121/192/30 137/199/30 138/198/30 -f 136/200/30 137/199/30 121/192/30 -f 135/201/30 136/200/30 120/191/30 -f 134/202/30 135/201/30 119/190/30 -f 117/188/30 133/203/30 134/202/30 -f 116/187/30 132/204/30 133/203/30 -f 115/186/30 131/205/30 132/204/30 -f 130/206/30 131/205/30 115/186/30 -f 156/207/30 150/208/30 148/209/30 -f 149/210/30 150/208/30 134/202/30 -f 134/202/30 150/208/30 151/211/30 -f 137/199/30 153/212/30 154/213/30 -f 138/198/30 154/213/30 155/214/30 -f 157/215/30 158/216/30 142/217/30 -f 158/216/30 159/218/30 143/219/30 -f 146/220/30 147/221/30 131/205/30 -f 161/222/30 146/220/30 130/206/30 -f 145/223/30 130/206/30 114/185/30 -f 129/224/51 114/185/51 98/180/51 -f 128/225/52 129/224/52 113/183/52 -f 111/176/53 127/226/53 128/225/53 -f 126/227/54 127/226/54 111/174/54 -f 128/225/30 144/228/30 145/223/30 -f 127/226/30 143/219/30 144/228/30 -f 142/217/30 143/219/30 127/226/30 -f 141/229/30 142/217/30 126/227/30 -f 124/195/30 140/197/30 141/229/30 -f 108/167/55 124/195/55 125/230/55 -f 125/230/56 126/227/56 110/171/56 -f 326/231/30 329/232/30 328/233/30 -f 330/234/57 325/235/57 331/236/57 -f 93/237/30 81/96/30 92/238/30 -f 91/239/30 92/238/30 81/96/30 -f 77/121/30 90/129/30 91/239/30 -f 95/240/30 96/241/30 80/242/30 -f 96/241/30 97/243/30 80/242/30 -f 97/243/30 82/136/30 69/113/30 -f 182/244/40 279/245/40 278/246/40 -f 180/247/37 277/248/37 276/249/37 -f 181/250/38 278/246/38 277/248/38 -f 40/30/57 175/251/57 174/252/57 -f 39/19/57 174/253/57 173/254/57 -f 38/15/57 173/255/57 172/256/57 -f 37/9/57 172/257/57 171/258/57 -f 35/259/57 36/36/57 171/260/57 -f 35/38/57 167/261/57 168/262/57 -f 34/49/57 168/263/57 169/264/57 -f 33/51/57 169/265/57 170/266/57 -f 163/267/57 40/268/57 46/66/57 -f 32/269/57 170/270/57 165/271/57 -f 183/272/57 179/273/57 178/274/57 -f 178/274/57 177/275/57 163/276/57 -f 176/277/57 163/276/57 177/275/57 -f 175/278/57 163/276/57 176/277/57 -f 183/272/57 165/279/57 180/280/57 -f 180/280/57 165/279/57 181/281/57 -f 181/281/57 165/279/57 182/282/57 -f 170/283/57 182/282/57 165/279/57 -f 193/284/57 194/285/57 210/286/57 -f 193/284/57 209/287/57 208/288/57 -f 191/289/57 192/290/57 208/288/57 -f 191/289/57 207/291/57 206/292/57 -f 190/293/57 206/292/57 205/294/57 -f 189/295/57 205/294/57 204/296/57 -f 187/297/57 188/298/57 204/296/57 -f 186/299/57 187/297/57 203/300/57 -f 186/299/57 202/301/57 201/302/57 -f 185/303/57 201/302/57 200/304/57 -f 224/305/57 228/306/57 220/307/57 -f 204/296/57 220/307/57 219/308/57 -f 204/296/57 205/294/57 221/309/57 -f 207/291/57 208/288/57 224/305/57 -f 208/288/57 209/287/57 225/310/57 -f 212/311/57 228/306/57 227/312/57 -f 213/313/57 229/314/57 228/306/57 -f 201/302/57 217/315/57 216/316/57 -f 200/304/57 216/316/57 231/317/57 -f 184/318/57 200/304/57 215/319/57 -f 198/320/57 199/321/57 215/319/57 -f 197/322/57 198/320/57 214/323/57 -f 197/322/57 213/313/57 212/311/57 -f 196/324/57 212/311/57 211/325/57 -f 194/285/57 195/326/57 211/325/57 -f 205/327/38 206/328/38 136/329/38 -f 206/330/40 207/331/40 137/332/40 -f 153/333/58 137/332/58 207/331/58 -f 153/333/9 223/334/9 222/335/9 -f 152/336/7 222/335/7 221/337/7 -f 151/338/59 221/337/59 205/327/59 -f 149/339/60 133/340/60 203/341/60 -f 149/339/17 219/342/17 218/343/17 -f 148/344/20 218/343/20 217/345/20 -f 147/346/61 217/345/61 201/347/61 -f 201/347/34 202/348/34 132/349/34 -f 202/350/35 203/341/35 133/340/35 -f 141/351/62 211/352/62 227/353/62 -f 157/354/35 227/353/35 226/355/35 -f 156/356/34 226/355/34 225/357/34 -f 225/357/63 209/358/63 139/359/63 -f 209/358/20 210/360/20 140/361/20 -f 210/362/17 211/352/17 141/351/17 -f 160/363/38 230/364/38 229/365/38 -f 229/365/64 213/366/64 143/367/64 -f 213/366/7 214/368/7 144/369/7 -f 214/370/9 215/371/9 145/372/9 -f 145/372/65 215/371/65 231/373/65 -f 161/374/40 231/373/40 230/364/40 -f 233/375/33 249/376/33 248/377/33 -f 234/378/34 250/379/34 249/380/34 -f 235/381/35 251/382/35 250/383/35 -f 236/384/36 252/385/36 251/386/36 -f 237/387/37 253/388/37 252/389/37 -f 238/390/38 254/391/38 253/392/38 -f 239/393/40 255/394/40 254/391/40 -f 240/395/39 256/396/39 255/394/39 -f 240/397/23 241/398/23 257/399/23 -f 242/400/20 258/401/20 257/402/20 -f 243/403/17 259/404/17 258/405/17 -f 244/406/14 260/407/14 259/408/14 -f 245/409/3 261/410/3 260/411/3 -f 246/412/7 262/413/7 261/414/7 -f 232/415/25 248/416/25 263/417/25 -f 247/418/9 263/419/9 262/420/9 -f 257/402/66 258/401/66 194/285/66 -f 194/285/67 258/405/67 259/404/67 -f 195/326/68 259/408/68 260/407/68 -f 196/324/69 260/411/69 261/410/69 -f 197/322/70 261/414/70 262/413/70 -f 262/420/71 263/419/71 199/321/71 -f 199/321/72 263/417/72 248/416/72 -f 248/377/73 249/376/73 185/303/73 -f 249/380/74 250/379/74 186/299/74 -f 250/383/75 251/382/75 187/297/75 -f 187/297/76 251/386/76 252/385/76 -f 252/389/77 253/388/77 189/295/77 -f 253/392/78 254/391/78 190/293/78 -f 254/391/79 255/394/79 191/289/79 -f 255/394/80 256/396/80 192/290/80 -f 256/421/81 257/399/81 193/284/81 -f 242/422/30 238/423/30 234/424/30 -f 170/425/39 267/426/39 279/245/39 -f 169/427/23 266/428/23 267/426/23 -f 168/429/20 265/430/20 266/428/20 -f 168/429/17 167/431/17 264/432/17 -f 167/431/14 171/433/14 268/434/14 -f 172/435/3 269/436/3 268/434/3 -f 173/437/7 270/438/7 269/436/7 -f 174/439/9 271/440/9 270/438/9 -f 175/441/25 272/442/25 271/440/25 -f 176/443/33 273/444/33 272/445/33 -f 177/446/34 274/447/34 273/444/34 -f 178/448/35 275/449/35 274/447/35 -f 179/450/36 276/249/36 275/449/36 -f 264/451/30 268/452/30 284/453/30 -f 269/454/30 285/455/30 284/456/30 -f 270/457/30 286/458/30 285/459/30 -f 296/460/82 305/461/82 306/462/82 -f 287/463/9 296/460/9 297/464/9 -f 271/465/30 287/463/30 286/466/30 -f 265/467/30 264/468/30 283/469/30 -f 266/470/30 265/471/30 282/472/30 -f 267/473/30 266/474/30 281/475/30 -f 290/476/83 293/477/83 303/478/83 -f 303/478/28 293/477/28 295/479/28 -f 304/480/84 291/481/84 289/482/84 -f 294/483/26 291/481/26 304/480/26 -f 272/484/30 288/485/30 287/486/30 -f 292/487/85 166/488/85 183/272/85 -f 164/489/26 163/276/26 1/490/26 -f 3/1/28 165/279/28 166/488/28 -f 286/458/7 297/491/7 298/492/7 -f 285/455/3 298/493/3 299/494/3 -f 284/453/14 299/495/14 300/496/14 -f 283/469/17 300/497/17 301/498/17 -f 282/472/20 301/499/20 302/500/20 -f 281/475/23 302/501/23 303/502/23 -f 288/485/25 304/503/25 296/504/25 -f 304/503/86 313/505/86 305/461/86 -f 302/501/87 311/506/87 312/507/87 -f 301/499/88 310/508/88 311/506/88 -f 301/498/89 300/497/89 309/509/89 -f 299/495/90 308/510/90 309/509/90 -f 299/494/91 298/493/91 307/511/91 -f 297/491/92 306/462/92 307/511/92 -f 289/482/1 291/512/1 293/513/1 -f 2/514/1 293/513/1 291/512/1 -f 288/515/30 164/516/30 294/483/30 -f 166/517/30 267/518/30 280/519/30 -f 277/520/30 166/488/30 292/487/30 -f 277/520/30 278/521/30 166/488/30 -f 278/521/30 279/522/30 166/488/30 -f 279/522/30 267/523/30 166/488/30 -f 292/487/30 164/489/30 275/524/30 -f 274/525/30 275/524/30 164/489/30 -f 273/526/30 274/525/30 164/489/30 -f 272/527/30 273/526/30 164/489/30 -f 314/528/85 319/529/85 318/530/85 -f 317/531/57 315/532/57 289/482/57 -f 289/482/57 315/532/57 314/533/57 -f 316/534/57 317/531/57 290/476/57 -f 312/507/57 313/505/57 314/533/57 -f 320/535/57 321/536/57 318/530/57 -f 316/537/28 318/530/28 321/536/28 -f 315/538/26 320/535/26 319/529/26 -f 317/539/1 321/536/1 320/535/1 -f 312/507/57 311/506/57 305/461/57 -f 311/506/57 310/508/57 306/462/57 -f 310/508/57 309/509/57 307/511/57 -f 308/510/57 307/511/57 309/509/57 -f 325/540/28 329/232/28 326/231/28 -f 331/541/85 326/231/85 327/542/85 -f 323/543/26 327/542/26 328/233/26 -f 330/544/1 328/233/1 329/232/1 -f 162/97/30 330/545/30 325/546/30 -f 162/97/30 81/96/30 324/547/30 -f 94/548/30 95/240/30 322/549/30 -f 94/548/30 331/550/30 323/551/30 -f 93/237/30 323/551/30 81/96/30 -f 81/96/30 323/551/30 324/547/30 -f 80/242/30 322/549/30 95/240/30 -f 80/242/30 325/546/30 322/549/30 -f 339/552/93 343/553/93 342/554/93 -f 335/555/28 334/556/28 336/557/28 -f 333/558/26 338/559/26 337/560/26 -f 335/555/1 339/561/1 338/562/1 -f 332/563/85 337/560/85 336/557/85 -f 343/564/94 347/565/94 346/566/94 -f 337/567/95 341/568/95 340/569/95 -f 336/570/28 340/569/28 343/553/28 -f 337/571/26 338/572/26 342/573/26 -f 341/574/96 345/575/96 344/576/96 -f 343/564/28 340/577/28 344/576/28 -f 342/578/26 346/579/26 345/575/26 -f 1/580/1 3/1/1 2/3/1 -f 9/581/2 10/4/2 18/6/2 -f 18/6/3 19/5/3 27/8/3 -f 27/8/4 28/7/4 36/10/4 -f 10/582/5 11/11/5 19/13/5 -f 28/17/6 29/14/6 37/16/6 -f 19/13/7 20/12/7 28/17/7 -f 29/22/8 30/18/8 38/20/8 -f 20/583/9 21/21/9 29/22/9 -f 20/583/10 11/23/10 21/21/10 -f 12/584/11 13/25/11 21/27/11 -f 39/585/12 30/28/12 40/30/12 -f 8/78/13 9/31/13 17/33/13 -f 17/33/14 18/32/14 26/35/14 -f 35/259/15 26/35/15 36/36/15 -f 25/41/16 26/37/16 34/39/16 -f 16/586/17 17/40/17 25/41/17 -f 16/586/18 7/42/18 17/40/18 -f 6/587/19 7/44/19 15/46/19 -f 15/46/20 16/45/20 24/48/20 -f 33/588/21 24/48/21 34/49/21 -f 23/54/22 24/50/22 32/52/22 -f 14/589/23 15/53/23 23/54/23 -f 14/589/24 5/55/24 15/53/24 -f 21/27/25 22/26/25 30/28/25 -f 43/60/1 44/57/1 41/59/1 -f 3/61/1 1/590/1 44/57/1 -f 46/591/1 44/57/1 1/590/1 -f 43/60/1 45/592/1 3/61/1 -f 31/65/26 22/62/26 44/64/26 -f 40/268/27 31/65/27 46/66/27 -f 23/71/28 43/67/28 14/69/28 -f 32/269/29 45/70/29 23/71/29 -f 5/55/30 47/72/30 6/56/30 -f 6/587/30 48/74/30 7/44/30 -f 8/43/30 7/42/30 50/77/30 -f 9/31/30 8/78/30 51/80/30 -f 9/581/30 51/81/30 10/4/30 -f 10/582/30 52/83/30 11/11/30 -f 11/23/30 53/85/30 12/24/30 -f 12/584/30 54/87/30 13/25/30 -f 57/593/30 47/89/30 59/91/30 -f 56/594/30 58/92/30 55/94/30 -f 5/90/31 14/69/31 59/91/31 -f 13/93/32 58/92/32 22/62/32 -f 162/97/1 80/242/1 78/595/1 -f 78/595/1 79/95/1 162/97/1 -f 67/596/25 68/98/25 54/87/25 -f 53/85/9 66/99/9 54/86/9 -f 52/83/7 65/101/7 53/84/7 -f 51/81/3 64/103/3 52/82/3 -f 50/79/14 63/105/14 51/80/14 -f 49/76/17 62/107/17 50/77/17 -f 48/74/20 61/109/20 49/75/20 -f 47/72/23 60/111/23 48/73/23 -f 61/112/24 60/111/24 70/114/24 -f 61/109/19 70/114/19 62/110/19 -f 63/108/18 62/107/18 72/116/18 -f 63/105/13 72/116/13 64/106/13 -f 65/104/2 64/103/2 74/118/2 -f 65/101/5 74/118/5 66/102/5 -f 67/100/10 66/99/10 76/120/10 -f 67/596/11 76/120/11 68/98/11 -f 59/597/1 41/59/1 57/123/1 -f 42/58/1 58/598/1 56/122/1 -f 56/122/1 57/123/1 41/59/1 -f 78/595/1 57/123/1 79/95/1 -f 57/593/28 78/124/28 47/89/28 -f 80/242/31 69/113/31 78/124/31 -f 56/594/26 55/94/26 79/127/26 -f 77/121/32 81/96/32 68/126/32 -f 76/120/30 89/128/30 77/121/30 -f 75/119/30 88/130/30 76/120/30 -f 74/118/30 87/131/30 75/119/30 -f 74/118/30 73/117/30 87/131/30 -f 72/116/30 85/133/30 73/117/30 -f 72/116/30 71/115/30 85/133/30 -f 70/114/30 83/135/30 71/115/30 -f 70/114/30 69/113/30 83/135/30 -f 82/599/23 98/137/23 83/139/23 -f 83/600/20 99/140/20 84/142/20 -f 84/601/17 100/143/17 85/145/17 -f 85/602/14 101/146/14 86/148/14 -f 86/603/3 102/149/3 87/151/3 -f 87/604/7 103/152/7 88/154/7 -f 88/605/9 104/155/9 89/157/9 -f 89/606/25 105/158/25 90/160/25 -f 91/607/33 90/161/33 107/163/33 -f 91/608/34 107/164/34 92/166/34 -f 92/609/35 108/167/35 93/169/35 -f 93/610/36 109/170/36 94/172/36 -f 94/611/37 110/173/37 95/175/37 -f 95/612/38 111/176/38 96/178/38 -f 97/613/39 113/179/39 82/181/39 -f 96/614/40 112/182/40 97/184/40 -f 98/137/41 114/185/41 99/138/41 -f 99/140/42 115/186/42 100/141/42 -f 101/144/43 100/143/43 117/188/43 -f 101/146/44 117/188/44 102/147/44 -f 103/150/45 102/149/45 119/190/45 -f 103/152/46 119/190/46 104/153/46 -f 104/155/47 120/191/47 105/156/47 -f 106/159/48 105/158/48 122/193/48 -f 107/163/49 106/162/49 123/194/49 -f 107/164/50 123/194/50 108/165/50 -f 124/195/30 123/194/30 140/197/30 -f 122/193/30 138/198/30 123/194/30 -f 122/193/30 121/192/30 138/198/30 -f 120/191/30 136/200/30 121/192/30 -f 119/190/30 135/201/30 120/191/30 -f 118/189/30 134/202/30 119/190/30 -f 118/189/30 117/188/30 134/202/30 -f 117/188/30 116/187/30 133/203/30 -f 116/187/30 115/186/30 132/204/30 -f 114/185/30 130/206/30 115/186/30 -f 148/209/30 147/221/30 160/615/30 -f 146/220/30 161/222/30 160/615/30 -f 160/615/30 159/218/30 158/216/30 -f 158/216/97 157/215/97 156/207/97 -f 156/207/30 155/214/30 152/616/30 -f 154/213/30 153/212/30 152/616/30 -f 152/616/30 151/211/30 150/208/30 -f 150/208/30 149/210/30 148/209/30 -f 147/221/30 146/220/30 160/615/30 -f 160/615/30 158/216/30 148/209/30 -f 155/214/30 154/213/30 152/616/30 -f 152/616/30 150/208/30 156/207/30 -f 148/209/30 158/216/30 156/207/30 -f 133/203/30 149/210/30 134/202/30 -f 135/201/30 134/202/30 151/211/30 -f 138/198/30 137/199/30 154/213/30 -f 139/196/30 138/198/30 155/214/30 -f 141/229/30 157/215/30 142/217/30 -f 142/217/30 158/216/30 143/219/30 -f 130/206/30 146/220/30 131/205/30 -f 145/223/30 161/222/30 130/206/30 -f 129/224/30 145/223/30 114/185/30 -f 113/179/51 129/224/51 98/180/51 -f 112/182/52 128/225/52 113/183/52 -f 112/177/53 111/176/53 128/225/53 -f 110/173/54 126/227/54 111/174/54 -f 129/224/30 128/225/30 145/223/30 -f 128/225/30 127/226/30 144/228/30 -f 126/227/30 142/217/30 127/226/30 -f 125/230/30 141/229/30 126/227/30 -f 125/230/30 124/195/30 141/229/30 -f 109/168/55 108/167/55 125/230/55 -f 109/170/56 125/230/56 110/171/56 -f 327/542/30 326/231/30 328/233/30 -f 331/236/57 323/617/57 324/618/57 -f 324/618/57 330/234/57 331/236/57 -f 325/235/57 322/619/57 331/236/57 -f 81/96/30 77/121/30 91/239/30 -f 80/242/30 97/243/30 69/113/30 -f 181/250/40 182/244/40 278/246/40 -f 179/450/37 180/247/37 276/249/37 -f 180/247/38 181/250/38 277/248/38 -f 39/585/57 40/30/57 174/252/57 -f 38/20/57 39/19/57 173/254/57 -f 37/16/57 38/15/57 172/256/57 -f 36/10/57 37/9/57 171/258/57 -f 167/620/57 35/259/57 171/260/57 -f 34/39/57 35/38/57 168/262/57 -f 33/588/57 34/49/57 169/264/57 -f 32/52/57 33/51/57 170/266/57 -f 46/66/57 1/621/57 163/267/57 -f 163/267/57 175/622/57 40/268/57 -f 165/271/57 3/623/57 45/70/57 -f 45/70/57 32/269/57 165/271/57 -f 163/276/57 183/272/57 178/274/57 -f 179/273/57 183/272/57 180/280/57 -f 209/287/57 193/284/57 210/286/57 -f 192/290/57 193/284/57 208/288/57 -f 207/291/57 191/289/57 208/288/57 -f 190/293/57 191/289/57 206/292/57 -f 189/295/57 190/293/57 205/294/57 -f 188/298/57 189/295/57 204/296/57 -f 203/300/57 187/297/57 204/296/57 -f 202/301/57 186/299/57 203/300/57 -f 185/303/57 186/299/57 201/302/57 -f 184/318/57 185/303/57 200/304/57 -f 216/316/57 217/315/57 220/307/57 -f 218/624/57 219/308/57 220/307/57 -f 220/307/57 221/309/57 222/625/57 -f 222/625/57 223/626/57 220/307/57 -f 224/305/57 225/310/57 228/306/57 -f 226/627/98 227/312/98 228/306/98 -f 228/306/57 229/314/57 216/316/57 -f 230/628/57 231/317/57 216/316/57 -f 217/315/57 218/624/57 220/307/57 -f 220/307/57 223/626/57 224/305/57 -f 225/310/57 226/627/57 228/306/57 -f 229/314/57 230/628/57 216/316/57 -f 216/316/57 220/307/57 228/306/57 -f 203/300/57 204/296/57 219/308/57 -f 220/307/57 204/296/57 221/309/57 -f 223/626/57 207/291/57 224/305/57 -f 224/305/57 208/288/57 225/310/57 -f 211/325/57 212/311/57 227/312/57 -f 212/311/57 213/313/57 228/306/57 -f 200/304/57 201/302/57 216/316/57 -f 215/319/57 200/304/57 231/317/57 -f 199/321/57 184/318/57 215/319/57 -f 214/323/57 198/320/57 215/319/57 -f 213/313/57 197/322/57 214/323/57 -f 196/324/57 197/322/57 212/311/57 -f 195/326/57 196/324/57 211/325/57 -f 210/286/57 194/285/57 211/325/57 -f 135/629/38 205/327/38 136/329/38 -f 136/630/40 206/330/40 137/332/40 -f 223/334/58 153/333/58 207/331/58 -f 152/336/9 153/333/9 222/335/9 -f 151/338/7 152/336/7 221/337/7 -f 135/629/59 151/338/59 205/327/59 -f 219/342/60 149/339/60 203/341/60 -f 148/344/17 149/339/17 218/343/17 -f 147/346/20 148/344/20 217/345/20 -f 131/631/61 147/346/61 201/347/61 -f 131/631/34 201/347/34 132/349/34 -f 132/632/35 202/350/35 133/340/35 -f 157/354/62 141/351/62 227/353/62 -f 156/356/35 157/354/35 226/355/35 -f 155/633/34 156/356/34 225/357/34 -f 155/633/63 225/357/63 139/359/63 -f 139/359/20 209/358/20 140/361/20 -f 140/634/17 210/362/17 141/351/17 -f 159/635/38 160/363/38 229/365/38 -f 159/635/64 229/365/64 143/367/64 -f 143/367/7 213/366/7 144/369/7 -f 144/636/9 214/370/9 145/372/9 -f 161/374/65 145/372/65 231/373/65 -f 160/363/40 161/374/40 230/364/40 -f 232/637/33 233/375/33 248/377/33 -f 233/638/34 234/378/34 249/380/34 -f 234/639/35 235/381/35 250/383/35 -f 235/640/36 236/384/36 251/386/36 -f 236/641/37 237/387/37 252/389/37 -f 237/642/38 238/390/38 253/392/38 -f 238/390/40 239/393/40 254/391/40 -f 239/393/39 240/395/39 255/394/39 -f 256/421/23 240/397/23 257/399/23 -f 241/643/20 242/400/20 257/402/20 -f 242/644/17 243/403/17 258/405/17 -f 243/645/14 244/406/14 259/408/14 -f 244/646/3 245/409/3 260/411/3 -f 245/647/7 246/412/7 261/414/7 -f 247/648/25 232/415/25 263/417/25 -f 246/649/9 247/418/9 262/420/9 -f 193/284/66 257/402/66 194/285/66 -f 195/326/67 194/285/67 259/404/67 -f 196/324/68 195/326/68 260/407/68 -f 197/322/69 196/324/69 261/410/69 -f 198/320/70 197/322/70 262/413/70 -f 198/320/71 262/420/71 199/321/71 -f 184/318/72 199/321/72 248/416/72 -f 184/318/73 248/377/73 185/303/73 -f 185/303/74 249/380/74 186/299/74 -f 186/299/75 250/383/75 187/297/75 -f 188/298/76 187/297/76 252/385/76 -f 188/298/77 252/389/77 189/295/77 -f 189/295/78 253/392/78 190/293/78 -f 190/293/79 254/391/79 191/289/79 -f 191/289/80 255/394/80 192/290/80 -f 192/290/81 256/421/81 193/284/81 -f 234/424/30 233/650/30 232/651/30 -f 232/651/30 247/652/30 246/653/30 -f 246/653/30 245/654/30 242/422/30 -f 244/655/30 243/656/30 242/422/30 -f 242/422/30 241/657/30 238/423/30 -f 240/658/30 239/659/30 238/423/30 -f 238/423/30 237/660/30 236/661/30 -f 236/661/30 235/662/30 234/424/30 -f 234/424/30 232/651/30 246/653/30 -f 245/654/30 244/655/30 242/422/30 -f 241/657/30 240/658/30 238/423/30 -f 238/423/30 236/661/30 234/424/30 -f 234/424/30 246/653/30 242/422/30 -f 182/244/39 170/425/39 279/245/39 -f 170/425/23 169/427/23 267/426/23 -f 169/427/20 168/429/20 266/428/20 -f 265/430/17 168/429/17 264/432/17 -f 264/432/14 167/431/14 268/434/14 -f 171/433/3 172/435/3 268/434/3 -f 172/435/7 173/437/7 269/436/7 -f 173/437/9 174/439/9 270/438/9 -f 174/439/25 175/441/25 271/440/25 -f 175/663/33 176/443/33 272/445/33 -f 176/443/34 177/446/34 273/444/34 -f 177/446/35 178/448/35 274/447/35 -f 178/448/36 179/450/36 275/449/36 -f 283/664/30 264/451/30 284/453/30 -f 268/665/30 269/454/30 284/456/30 -f 269/666/30 270/457/30 285/459/30 -f 297/464/82 296/460/82 306/462/82 -f 286/466/9 287/463/9 297/464/9 -f 270/667/30 271/465/30 286/466/30 -f 282/668/30 265/467/30 283/469/30 -f 281/669/30 266/470/30 282/472/30 -f 280/670/30 267/473/30 281/475/30 -f 312/507/83 290/476/83 303/478/83 -f 280/519/28 303/478/28 295/479/28 -f 313/505/84 304/480/84 289/482/84 -f 288/515/26 294/483/26 304/480/26 -f 271/671/30 272/484/30 287/486/30 -f 183/272/85 163/276/85 164/489/85 -f 164/489/85 292/487/85 183/272/85 -f 166/488/85 165/279/85 183/272/85 -f 2/672/26 164/489/26 1/490/26 -f 4/2/28 3/1/28 166/488/28 -f 285/459/7 286/458/7 298/492/7 -f 284/456/3 285/455/3 299/494/3 -f 283/664/14 284/453/14 300/496/14 -f 282/668/17 283/469/17 301/498/17 -f 281/669/20 282/472/20 302/500/20 -f 280/670/23 281/475/23 303/502/23 -f 287/486/25 288/485/25 296/504/25 -f 296/504/86 304/503/86 305/461/86 -f 303/502/87 302/501/87 312/507/87 -f 302/500/88 301/499/88 311/506/88 -f 310/508/89 301/498/89 309/509/89 -f 300/496/90 299/495/90 309/509/90 -f 308/510/91 299/494/91 307/511/91 -f 298/492/92 297/491/92 307/511/92 -f 290/476/1 289/482/1 293/513/1 -f 4/673/1 295/674/1 293/513/1 -f 291/512/1 294/675/1 2/514/1 -f 2/514/1 4/673/1 293/513/1 -f 2/676/30 294/483/30 164/516/30 -f 288/515/30 272/677/30 164/516/30 -f 280/519/30 295/479/30 166/517/30 -f 4/678/30 166/517/30 295/479/30 -f 276/679/30 277/520/30 292/487/30 -f 276/679/30 292/487/30 275/524/30 -f 316/680/85 314/528/85 318/530/85 -f 290/476/57 317/531/57 289/482/57 -f 313/505/57 289/482/57 314/533/57 -f 312/507/57 316/534/57 290/476/57 -f 316/534/57 312/507/57 314/533/57 -f 319/529/57 320/535/57 318/530/57 -f 317/681/28 316/537/28 321/536/28 -f 314/682/26 315/538/26 319/529/26 -f 315/683/1 317/539/1 320/535/1 -f 313/505/57 312/507/57 305/461/57 -f 305/461/57 311/506/57 306/462/57 -f 306/462/57 310/508/57 307/511/57 -f 322/684/28 325/540/28 326/231/28 -f 327/542/85 323/685/85 331/541/85 -f 331/541/85 322/686/85 326/231/85 -f 324/687/26 323/543/26 328/233/26 -f 329/232/1 325/688/1 330/544/1 -f 330/544/1 324/689/1 328/233/1 -f 80/242/30 162/97/30 325/546/30 -f 330/545/30 162/97/30 324/547/30 -f 331/550/30 94/548/30 322/549/30 -f 93/237/30 94/548/30 323/551/30 -f 338/690/93 339/552/93 342/554/93 -f 339/561/28 335/555/28 336/557/28 -f 332/563/26 333/558/26 337/560/26 -f 333/691/1 335/555/1 338/562/1 -f 334/556/85 332/563/85 336/557/85 -f 342/692/94 343/564/94 346/566/94 -f 336/570/95 337/567/95 340/569/95 -f 339/552/28 336/570/28 343/553/28 -f 341/693/26 337/571/26 342/573/26 -f 340/577/96 341/574/96 344/576/96 -f 347/565/28 343/564/28 344/576/28 -f 341/574/26 342/578/26 345/575/26 diff --git a/src/main/resources/assets/hbm/models/generator_rotor.obj b/src/main/resources/assets/hbm/models/generator_rotor.obj deleted file mode 100644 index fee691bda..000000000 --- a/src/main/resources/assets/hbm/models/generator_rotor.obj +++ /dev/null @@ -1,818 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: '' -# www.blender.org -o Circle -v -2.900000 0.300000 0.000000 -v -2.900000 0.105000 0.000000 -v -2.900000 0.097007 0.040182 -v -2.900000 0.097007 -0.040182 -v -2.900000 0.000000 -0.105000 -v -2.900000 0.040182 -0.097007 -v -2.900000 0.114805 -0.277164 -v -2.900000 -0.040182 -0.097007 -v -2.900000 0.000000 -0.300000 -v -2.900000 -0.105000 0.000000 -v -2.900000 -0.097008 -0.040182 -v -2.900000 -0.277164 -0.114805 -v -2.900000 -0.097008 0.040182 -v -2.900000 -0.300000 0.000000 -v -2.900000 0.000000 0.105000 -v -2.900000 -0.040182 0.097007 -v -2.900000 -0.114805 0.277164 -v -2.900000 0.040182 0.097007 -v -2.900000 0.000000 0.300000 -v -2.900000 -0.074246 0.074246 -v -2.900000 0.074246 -0.074246 -v -2.700000 0.143506 0.346455 -v -2.600000 0.143506 0.346455 -v -2.600000 0.040182 0.097007 -v -2.700000 0.040182 -0.097007 -v -2.600000 0.040182 -0.097007 -v -2.600000 0.143506 -0.346455 -v -2.600000 0.346454 -0.143506 -v -2.600000 0.097007 -0.040182 -v -2.700000 0.097007 -0.040182 -v -2.600000 0.346454 0.143506 -v -2.600000 0.375000 0.000000 -v -2.700000 0.375000 0.000000 -v -2.700000 -0.040182 0.097007 -v -2.600000 -0.040182 0.097007 -v -2.600000 -0.143506 0.346455 -v -2.700000 -0.097008 0.040182 -v -2.600000 -0.097008 0.040182 -v -2.600000 -0.074246 0.074246 -v -2.700000 0.000000 -0.375000 -v -2.600000 0.000000 -0.375000 -v -2.600000 -0.143506 -0.346455 -v -2.600000 0.074246 -0.074246 -v -2.700000 0.000000 0.375000 -v -2.600000 0.000000 0.375000 -v -2.700000 0.074246 -0.074246 -v -2.700000 0.097007 0.040182 -v -2.700000 0.346454 0.143506 -v -2.900000 0.277164 0.114805 -v -2.700000 -0.074246 0.074246 -v -2.900000 -0.277164 0.114805 -v -2.700000 -0.346455 0.143506 -v -2.700000 0.346454 -0.143506 -v -2.700000 -0.375000 0.000000 -v -2.900000 0.277164 -0.114805 -v -2.700000 -0.346455 -0.143506 -v -2.900000 0.114805 0.277164 -v -2.700000 0.040182 0.097007 -v -2.900000 0.074246 0.074246 -v -2.700000 0.074246 0.074246 -v -2.900000 -0.074246 -0.074246 -v -2.700000 -0.074246 -0.074246 -v -2.700000 -0.097008 -0.040182 -v -2.900000 -0.114805 -0.277164 -v -2.700000 -0.143506 -0.346455 -v -2.700000 -0.040182 -0.097007 -v -2.700000 0.143506 -0.346455 -v -2.700000 -0.143507 0.346455 -v -2.600000 0.097007 0.040182 -v -2.600000 0.105000 0.000000 -v -2.600000 0.000000 -0.105000 -v -2.600000 -0.040182 -0.097007 -v -2.600000 -0.346455 -0.143506 -v -2.600000 -0.097008 -0.040182 -v -2.600000 -0.105000 0.000000 -v -2.600000 -0.346455 0.143506 -v -2.600000 -0.375000 0.000000 -v -2.600000 0.000000 0.105000 -v -2.600000 0.074246 0.074246 -v -2.600000 -0.074246 -0.074246 -v -1.000000 1.000000 0.000000 -v -0.500000 1.000000 0.000000 -v -0.500000 0.923879 -0.382683 -v 0.000000 1.000000 0.000000 -v 0.000000 0.923879 0.382683 -v -1.000000 0.000000 1.000000 -v -0.500000 0.000000 1.000000 -v -0.500000 0.382683 0.923879 -v 0.000000 0.000000 1.000000 -v 0.000000 -0.382684 0.923880 -v -1.000000 -1.000000 0.000000 -v -0.500000 -1.000000 0.000000 -v -0.500000 -0.923879 0.382684 -v 0.000000 -1.000000 0.000000 -v 0.000000 -0.923879 -0.382684 -v -1.000000 0.000000 -1.000000 -v -0.500000 0.000000 -1.000000 -v -0.500000 -0.382683 -0.923880 -v 0.000000 0.000000 -1.000000 -v 0.000000 0.382683 -0.923879 -v -1.000000 0.191341 0.461940 -v -1.000000 0.000000 0.500000 -v -1.000000 0.461939 -0.191342 -v -1.000000 0.499999 0.000000 -v -1.000000 -0.191342 -0.461940 -v -1.000000 0.000000 -0.500000 -v -1.000000 -0.923879 0.382684 -v -1.000000 -0.461940 0.191342 -v -1.000000 -0.500000 0.000000 -v -0.500000 -0.461940 0.191342 -v -0.500000 -0.500000 0.000000 -v -0.500000 -0.191342 -0.461940 -v -0.500000 0.000000 -0.500000 -v -0.500000 0.461939 -0.191342 -v -0.500000 0.499999 0.000000 -v -0.500000 0.191341 0.461940 -v -0.500000 0.000000 0.500000 -v 0.500000 -0.923879 -0.382684 -v 0.500000 -1.000000 0.000000 -v 0.500000 0.923879 0.382683 -v 0.500000 1.000000 0.000000 -v 0.000000 0.191341 -0.461940 -v 0.500000 0.191342 -0.461940 -v 0.500000 0.382683 -0.923879 -v 0.500000 -0.500000 0.000000 -v 0.000000 0.000000 0.500000 -v 0.000000 -0.191342 0.461940 -v 0.000000 -0.500000 0.000000 -v 0.000000 -0.461940 -0.191342 -v 0.000000 0.000000 -0.500000 -v 0.000000 0.500000 0.000000 -v 0.000000 0.461939 0.191342 -v 0.500000 0.000000 -0.500000 -v 0.500000 0.461939 0.191342 -v 0.500000 -0.382684 0.923880 -v 0.500000 -0.191342 0.461940 -v 0.500000 0.000000 0.500000 -v 0.500000 -0.461940 -0.191342 -v 0.500000 0.000000 -1.000000 -v 0.500000 0.500000 0.000000 -v 0.500000 0.000000 1.000000 -v -1.000000 0.923879 -0.382683 -v -1.000000 0.382683 0.923879 -v -1.000000 -0.382683 -0.923880 -vt 0.386236 0.903449 -vt 0.415713 0.870412 -vt 0.422995 0.875866 -vt 0.410847 0.862251 -vt 0.415713 0.834834 -vt 0.410847 0.842996 -vt 0.372334 0.825117 -vt 0.422995 0.829381 -vt 0.386236 0.801798 -vt 0.447457 0.834834 -vt 0.440174 0.829381 -vt 0.456127 0.786216 -vt 0.452322 0.842996 -vt 0.476933 0.801798 -vt 0.447457 0.870412 -vt 0.452322 0.862251 -vt 0.490835 0.880130 -vt 0.440174 0.875866 -vt 0.476933 0.903449 -vt 0.454031 0.852623 -vt 0.409138 0.852623 -vt 0.246623 0.961651 -vt 0.246623 0.985596 -vt 0.194961 0.984565 -vt 0.363621 0.834500 -vt 0.363621 0.858444 -vt 0.308890 0.859178 -vt 0.003848 0.912819 -vt 0.055510 0.913850 -vt 0.055510 0.937794 -vt 0.729199 0.256799 -vt 0.760227 0.256554 -vt 0.760280 0.280498 -vt 0.363621 0.915692 -vt 0.363621 0.939636 -vt 0.308890 0.940370 -vt 0.868474 0.880847 -vt 0.868474 0.904791 -vt 0.861548 0.904576 -vt 0.829237 0.280498 -vt 0.829184 0.256554 -vt 0.859364 0.256799 -vt 0.599395 0.926382 -vt 0.599395 0.950326 -vt 0.592469 0.950112 -vt 0.126677 0.961231 -vt 0.156009 0.961723 -vt 0.156009 0.985662 -vt 0.515460 0.832769 -vt 0.515460 0.880657 -vt 0.507858 0.880831 -vt 0.876447 0.052192 -vt 0.820306 0.052799 -vt 0.835901 0.004751 -vt 0.515816 0.752158 -vt 0.515816 0.800038 -vt 0.507858 0.800204 -vt 0.076866 0.985019 -vt 0.063206 0.936759 -vt 0.112383 0.938128 -vt 0.759274 0.329030 -vt 0.790461 0.280743 -vt 0.599395 0.878494 -vt 0.592469 0.926167 -vt 0.554592 0.902223 -vt 0.584773 0.902468 -vt 0.577731 0.950951 -vt 0.868474 0.832958 -vt 0.861548 0.880632 -vt 0.324093 0.868334 -vt 0.363621 0.867803 -vt 0.729253 0.280743 -vt 0.018199 0.984938 -vt 0.003848 0.936764 -vt 0.528764 0.950951 -vt 0.523565 0.902468 -vt 0.324093 0.787142 -vt 0.363621 0.786612 -vt 0.232273 0.913477 -vt 0.194961 0.960621 -vt 0.117856 0.786699 -vt 0.117856 0.834587 -vt 0.110253 0.834761 -vt 0.102557 0.786699 -vt 0.102557 0.834587 -vt 0.094955 0.834761 -vt 0.135071 0.912732 -vt 0.158537 0.913126 -vt 0.867113 0.328374 -vt 0.867113 0.280494 -vt 0.873537 0.280764 -vt 0.834657 0.238675 -vt 0.820306 0.190501 -vt 0.871968 0.191531 -vt 0.803409 0.329226 -vt 0.798210 0.280743 -vt 0.828231 0.329030 -vt 0.859418 0.280743 -vt 0.868474 0.752286 -vt 0.868474 0.800174 -vt 0.861548 0.799959 -vt 0.183542 0.913083 -vt 0.187266 0.961669 -vt 0.875038 0.133253 -vt 0.820306 0.133987 -vt 0.835509 0.085895 -vt 0.631996 0.771548 -vt 0.658004 0.752071 -vt 0.680092 0.811837 -vt 0.672810 0.817291 -vt 0.667944 0.825452 -vt 0.631996 0.898612 -vt 0.614619 0.869463 -vt 0.667944 0.844707 -vt 0.672810 0.852869 -vt 0.680092 0.858322 -vt 0.719360 0.918088 -vt 0.697272 0.858322 -vt 0.704554 0.852869 -vt 0.762745 0.869463 -vt 0.745367 0.898612 -vt 0.762745 0.800696 -vt 0.709420 0.825452 -vt 0.704554 0.817291 -vt 0.745367 0.771548 -vt 0.697272 0.811837 -vt 0.117856 0.858531 -vt 0.110253 0.858705 -vt 0.554539 0.878279 -vt 0.584720 0.878524 -vt 0.102557 0.858531 -vt 0.094955 0.858705 -vt 0.790407 0.256799 -vt 0.867113 0.256554 -vt 0.873537 0.256824 -vt 0.820306 0.166557 -vt 0.187266 0.985609 -vt 0.868474 0.824118 -vt 0.861548 0.823904 -vt 0.798156 0.256799 -vt 0.875038 0.157197 -vt 0.820306 0.157931 -vt 0.515460 0.904601 -vt 0.507858 0.904776 -vt 0.876447 0.076132 -vt 0.820306 0.076739 -vt 0.523512 0.878524 -vt 0.515816 0.823978 -vt 0.507858 0.824144 -vt 0.063206 0.912819 -vt 0.112383 0.914188 -vt 0.129201 0.372761 -vt 0.166737 0.260675 -vt 0.241809 0.293193 -vt 0.204273 0.148590 -vt 0.126677 0.116398 -vt 0.377599 0.373563 -vt 0.414147 0.261091 -vt 0.487244 0.292324 -vt 0.450696 0.148619 -vt 0.372334 0.116785 -vt 0.006373 0.372761 -vt 0.043909 0.260675 -vt 0.118981 0.293193 -vt 0.081445 0.148590 -vt 0.003848 0.116398 -vt 0.252030 0.372761 -vt 0.289566 0.260675 -vt 0.364638 0.293193 -vt 0.327102 0.148590 -vt 0.249505 0.116398 -vt 0.791294 0.752071 -vt 0.832999 0.752071 -vt 0.853852 0.869567 -vt 0.280341 0.904107 -vt 0.238636 0.904107 -vt 0.217783 0.786612 -vt 0.832999 0.995687 -vt 0.791294 0.995687 -vt 0.770441 0.878192 -vt 0.003848 0.904194 -vt 0.024701 0.786699 -vt 0.066406 0.786699 -vt 0.772142 0.373775 -vt 0.791949 0.491420 -vt 0.752334 0.499351 -vt 0.996152 0.491507 -vt 0.957579 0.498777 -vt 0.938293 0.381046 -vt 0.860070 0.491420 -vt 0.820455 0.499351 -vt 0.800648 0.381707 -vt 0.928191 0.491420 -vt 0.888577 0.499351 -vt 0.868769 0.381707 -vt 0.041384 0.004313 -vt 0.118981 0.036504 -vt 0.164213 0.004313 -vt 0.241809 0.036504 -vt 0.352790 0.658302 -vt 0.350172 0.777986 -vt 0.248818 0.776560 -vt 0.494940 0.123734 -vt 0.502218 0.004313 -vt 0.607478 0.013136 -vt 0.908384 0.616996 -vt 0.867766 0.625801 -vt 0.772142 0.616996 -vt 0.731523 0.625801 -vt 0.976866 0.616509 -vt 0.935887 0.625014 -vt 0.840263 0.616996 -vt 0.799645 0.625801 -vt 0.516775 0.241834 -vt 0.607478 0.251317 -vt 0.600199 0.370739 -vt 0.615173 0.124009 -vt 0.615960 0.004313 -vt 0.721504 0.005947 -vt 0.126677 0.533589 -vt 0.129295 0.413904 -vt 0.235886 0.417131 -vt 0.020375 0.651076 -vt 0.115831 0.658512 -vt 0.110321 0.778073 -vt 0.614619 0.499049 -vt 0.617237 0.379364 -vt 0.723827 0.382591 -vt 0.511467 0.616536 -vt 0.606923 0.623972 -vt 0.601414 0.743533 -vt 0.388861 0.650593 -vt 0.484317 0.658029 -vt 0.478808 0.777591 -vt 0.243581 0.533589 -vt 0.246200 0.413904 -vt 0.352790 0.417131 -vt 0.721504 0.247240 -vt 0.720717 0.125644 -vt 0.235886 0.658301 -vt 0.233267 0.536816 -vt 0.723827 0.623761 -vt 0.721209 0.502275 -vt 0.350172 0.536816 -vt 0.617535 0.247505 -vt 0.134532 0.656876 -vt 0.622474 0.622335 -vt 0.251437 0.656876 -vt 0.372334 0.532983 -vt 0.478807 0.539444 -vt 0.494940 0.498925 -vt 0.601414 0.505386 -vt 0.600199 0.132557 -vt 0.003848 0.533466 -vt 0.110321 0.539926 -vt 0.210087 0.786612 -vt 0.189235 0.904107 -vt 0.147529 0.904107 -vt 0.729199 0.130433 -vt 0.812610 0.130433 -vt 0.791758 0.247929 -vt 0.523512 0.869654 -vt 0.544365 0.752158 -vt 0.586070 0.752158 -vt 0.729199 0.121808 -vt 0.750052 0.004313 -vt 0.791758 0.004313 -vt 0.009357 0.413904 -vt 0.115831 0.420365 -vt 0.860070 0.734640 -vt 0.819452 0.743446 -vt 0.720717 0.366936 -vt 0.616747 0.367202 -vt 0.791949 0.734640 -vt 0.751331 0.743446 -vt 0.377843 0.413422 -vt 0.484317 0.419882 -vt 0.287041 0.004313 -vt 0.364638 0.036504 -vt 0.233267 0.777986 -vt 0.131913 0.776560 -vt 0.408882 0.004313 -vt 0.500449 0.379364 -vt 0.606923 0.385824 -vt 0.996152 0.734240 -vt 0.955174 0.742746 -vt 0.928191 0.734640 -vt 0.887573 0.743446 -vt 0.721209 0.743446 -vt 0.619855 0.742020 -vt 0.407042 0.919030 -vt 0.372334 0.880130 -vt 0.407042 0.786216 -vt 0.490835 0.825117 -vt 0.456127 0.919030 -vt 0.431585 0.827466 -vt 0.431585 0.877781 -vt 0.308890 0.835234 -vt 0.308890 0.916426 -vt 0.126677 0.985171 -vt 0.507858 0.832943 -vt 0.876447 0.004313 -vt 0.507858 0.752324 -vt 0.112383 0.986007 -vt 0.783418 0.329226 -vt 0.592469 0.878279 -vt 0.553586 0.950755 -vt 0.861548 0.832744 -vt 0.734452 0.329226 -vt 0.055510 0.985682 -vt 0.194961 0.912732 -vt 0.110253 0.786873 -vt 0.094955 0.786873 -vt 0.873537 0.328643 -vt 0.871968 0.239420 -vt 0.852375 0.329226 -vt 0.861548 0.752071 -vt 0.875038 0.085365 -vt 0.614619 0.800696 -vt 0.658004 0.918088 -vt 0.709420 0.844707 -vt 0.719360 0.752071 -vt 0.666236 0.835080 -vt 0.688682 0.809922 -vt 0.711128 0.835080 -vt 0.688682 0.860237 -vt 0.871968 0.167587 -vt 0.204273 0.405279 -vt 0.450696 0.404796 -vt 0.081445 0.405279 -vt 0.327102 0.405279 -vt 0.770441 0.869567 -vt 0.301194 0.786612 -vt 0.853852 0.878192 -vt 0.087259 0.904194 -vt 0.732527 0.381707 -vt 0.976866 0.373775 -vt 0.840263 0.373775 -vt 0.908384 0.373775 -vt 0.509497 0.361255 -vt 0.014866 0.770637 -vt 0.505958 0.736097 -vt 0.383352 0.770155 -vt 0.126677 0.786612 -vt 0.750052 0.247929 -vt 0.606923 0.869654 -vt 0.812610 0.121808 -vt 0.487244 0.036146 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 0.923900 0.382700 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.980800 0.195100 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 0.831500 -0.555600 -vn 0.000000 0.195100 0.980800 -vn 0.000000 0.555600 -0.831500 -vn -0.000000 -0.382700 0.923900 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 0.382700 0.923900 -vn -0.345200 0.920500 -0.183100 -vn -0.345200 -0.920500 0.183100 -vn -0.345200 0.920500 0.183100 -vn -0.345200 -0.920500 -0.183100 -vn 0.000000 0.831500 0.555600 -vn 0.000000 -0.831500 -0.555600 -vn -0.345200 0.183100 0.920500 -vn 0.000000 0.555600 0.831500 -vn 0.000000 -0.923900 0.382700 -vn -0.345200 0.183100 -0.920500 -vn -0.345200 -0.183100 -0.920500 -vn 0.000000 -0.555600 -0.831500 -vn -0.345200 -0.183100 0.920500 -vn 0.000000 0.382700 -0.923900 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 0.980800 -0.195100 -vn 0.000000 -0.195100 0.980800 -vn 0.000000 0.195100 -0.980800 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 1.000000 0.000000 -vn -0.357400 -0.000000 0.933900 -vn -0.357400 -0.933900 0.000000 -vn -0.357400 0.000000 -0.933900 -vn -0.357400 0.933900 0.000000 -vn -0.607800 -0.303900 0.733700 -vn -0.607800 -0.733700 -0.303900 -vn -0.607800 0.303900 -0.733700 -vn -0.607800 0.733700 0.303900 -vn 0.607800 0.000000 -0.794100 -vn 0.357400 -0.357400 -0.862900 -vn 0.607800 0.794100 0.000000 -vn 0.357400 0.862900 -0.357400 -vn 0.607800 0.000000 0.794100 -vn 0.357400 0.357400 0.862900 -vn 0.607800 -0.794100 0.000000 -vn 0.357400 -0.862900 0.357400 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 4/4/1 2/2/1 1/1/1 -f 5/5/1 6/6/1 7/7/1 -f 8/8/1 5/5/1 9/9/1 -f 10/10/1 11/11/1 12/12/1 -f 13/13/1 10/10/1 14/14/1 -f 15/15/1 16/16/1 17/17/1 -f 18/18/1 15/15/1 19/19/1 -f 20/20/1 2/2/1 21/21/1 -f 22/22/2 23/23/2 24/24/2 -f 25/25/3 26/26/3 27/27/3 -f 28/28/4 29/29/4 30/30/4 -f 31/31/5 32/32/5 33/33/5 -f 34/34/6 35/35/6 36/36/6 -f 37/37/7 38/38/7 39/39/7 -f 40/40/8 41/41/8 42/42/8 -f 30/43/9 29/44/9 43/45/9 -f 22/46/10 44/47/10 45/48/10 -f 21/49/11 46/50/11 25/51/11 -f 47/52/12 48/53/12 49/54/12 -f 20/55/13 50/56/13 34/57/13 -f 51/58/14 52/59/14 37/60/14 -f 1/61/15 33/33/15 53/62/15 -f 4/63/9 30/43/9 46/64/9 -f 54/65/16 52/66/16 51/67/16 -f 13/68/7 37/37/7 50/69/7 -f 17/70/6 16/71/6 34/34/6 -f 48/72/17 33/33/17 1/61/17 -f 55/73/4 53/74/4 30/30/4 -f 12/75/18 56/76/18 54/65/18 -f 7/77/3 6/78/3 25/25/3 -f 57/79/2 22/22/2 58/80/2 -f 59/81/19 60/82/19 47/83/19 -f 61/84/20 62/85/20 63/86/20 -f 57/87/21 19/88/21 44/47/21 -f 18/89/22 58/90/22 60/91/22 -f 64/92/23 65/93/23 66/94/23 -f 7/95/24 67/96/24 40/40/24 -f 9/97/25 40/40/25 65/98/25 -f 8/99/26 66/100/26 62/101/26 -f 17/102/27 68/103/27 44/47/27 -f 63/104/28 56/105/28 12/106/28 -f 32/107/29 31/108/29 69/109/29 -f 32/107/29 70/110/29 29/111/29 -f 41/112/29 27/113/29 26/114/29 -f 41/112/29 71/115/29 72/116/29 -f 73/117/29 74/118/29 75/119/29 -f 76/120/29 77/121/29 75/119/29 -f 36/122/29 35/123/29 78/124/29 -f 45/125/29 78/124/29 24/126/29 -f 78/124/29 75/119/29 70/110/29 -f 60/82/19 79/127/19 69/128/19 -f 77/129/30 76/130/30 52/66/30 -f 62/85/20 80/131/20 74/132/20 -f 32/32/31 28/133/31 53/62/31 -f 58/90/22 24/134/22 79/135/22 -f 66/94/23 65/93/23 42/136/23 -f 44/47/32 68/103/32 36/137/32 -f 66/100/26 72/138/26 80/139/26 -f 67/96/33 27/140/33 41/41/33 -f 74/141/28 73/142/28 56/105/28 -f 46/50/11 43/143/11 26/144/11 -f 69/145/12 31/146/12 48/53/12 -f 73/147/34 77/129/34 54/65/34 -f 50/56/13 39/148/13 35/149/13 -f 76/150/14 38/151/14 37/60/14 -f 81/152/31 82/153/31 83/154/31 -f 82/153/31 84/155/31 83/154/31 -f 84/155/5 82/153/5 85/156/5 -f 86/157/10 87/158/10 88/159/10 -f 88/159/10 87/158/10 89/160/10 -f 89/160/32 87/158/32 90/161/32 -f 91/162/30 92/163/30 93/164/30 -f 92/163/30 94/165/30 93/164/30 -f 94/165/34 92/163/34 95/166/34 -f 96/167/8 97/168/8 98/169/8 -f 97/168/8 99/170/8 98/169/8 -f 99/170/33 97/168/33 100/171/33 -f 101/172/1 102/173/1 86/174/1 -f 103/175/1 104/176/1 81/177/1 -f 105/178/1 106/179/1 96/180/1 -f 107/181/1 108/182/1 109/183/1 -f 108/184/31 110/185/31 111/186/31 -f 112/187/10 113/188/10 106/189/10 -f 114/190/30 115/191/30 104/192/30 -f 116/193/8 117/194/8 102/195/8 -f 95/166/34 118/196/34 119/197/34 -f 85/156/5 120/198/5 121/199/5 -f 122/200/3 123/201/3 124/202/3 -f 94/203/35 119/204/35 125/205/35 -f 117/194/8 116/193/8 126/206/8 -f 126/206/33 127/207/33 117/194/33 -f 110/185/31 128/208/31 111/186/31 -f 128/208/5 129/209/5 111/186/5 -f 112/187/10 130/210/10 113/188/10 -f 130/210/32 122/211/32 113/188/32 -f 114/190/30 131/212/30 115/191/30 -f 131/212/34 132/213/34 115/191/34 -f 93/214/14 110/215/14 108/216/14 -f 82/217/35 81/218/35 104/219/35 -f 87/220/36 86/221/36 102/222/36 -f 98/223/23 112/224/23 105/225/23 -f 92/226/37 91/227/37 109/228/37 -f 88/229/2 116/230/2 101/231/2 -f 83/232/4 114/233/4 103/234/4 -f 97/235/38 96/236/38 106/237/38 -f 132/238/39 82/217/39 115/239/39 -f 127/240/40 87/220/40 117/241/40 -f 129/242/41 92/226/41 111/243/41 -f 122/200/42 97/235/42 113/244/42 -f 82/217/43 132/238/43 85/245/43 -f 87/220/44 127/240/44 90/246/44 -f 92/226/45 129/242/45 95/247/45 -f 97/235/46 122/200/46 100/248/46 -f 83/232/47 84/249/47 131/250/47 -f 131/250/48 114/233/48 83/232/48 -f 88/229/49 89/251/49 126/252/49 -f 126/252/50 116/230/50 88/229/50 -f 93/214/51 94/203/51 128/253/51 -f 128/253/52 110/215/52 93/214/52 -f 98/223/53 99/254/53 130/255/53 -f 130/255/54 112/224/54 98/223/54 -f 124/256/29 123/257/29 133/258/29 -f 121/259/29 120/260/29 134/261/29 -f 135/262/29 136/263/29 137/264/29 -f 118/265/29 138/266/29 125/267/29 -f 99/254/36 139/268/36 133/269/36 -f 131/212/34 140/270/34 134/271/34 -f 132/238/12 134/272/12 120/273/12 -f 128/208/5 125/274/5 138/275/5 -f 84/249/37 121/276/37 140/277/37 -f 100/171/33 124/278/33 139/279/33 -f 127/240/6 136/280/6 135/281/6 -f 89/160/32 90/161/32 135/282/32 -f 89/251/38 141/283/38 137/284/38 -f 130/210/32 133/285/32 123/286/32 -f 126/206/33 137/287/33 136/288/33 -f 129/242/28 138/289/28 118/290/28 -f 49/291/1 1/1/1 3/3/1 -f 55/292/1 4/4/1 1/1/1 -f 9/9/1 5/5/1 7/7/1 -f 64/293/1 8/8/1 9/9/1 -f 14/14/1 10/10/1 12/12/1 -f 51/294/1 13/13/1 14/14/1 -f 19/19/1 15/15/1 17/17/1 -f 57/295/1 18/18/1 19/19/1 -f 21/21/1 6/6/1 5/5/1 -f 5/5/1 8/8/1 61/296/1 -f 61/296/1 11/11/1 10/10/1 -f 10/10/1 13/13/1 20/20/1 -f 20/20/1 16/16/1 15/15/1 -f 15/15/1 18/18/1 59/297/1 -f 59/297/1 3/3/1 2/2/1 -f 2/2/1 4/4/1 21/21/1 -f 21/21/1 5/5/1 61/296/1 -f 61/296/1 10/10/1 20/20/1 -f 20/20/1 15/15/1 59/297/1 -f 59/297/1 2/2/1 20/20/1 -f 21/21/1 61/296/1 20/20/1 -f 58/80/2 22/22/2 24/24/2 -f 67/298/3 25/25/3 27/27/3 -f 53/74/4 28/28/4 30/30/4 -f 48/72/5 31/31/5 33/33/5 -f 68/299/6 34/34/6 36/36/6 -f 50/69/7 37/37/7 39/39/7 -f 65/98/8 40/40/8 42/42/8 -f 46/64/9 30/43/9 43/45/9 -f 23/300/10 22/46/10 45/48/10 -f 6/301/11 21/49/11 25/51/11 -f 3/302/12 47/52/12 49/54/12 -f 16/303/13 20/55/13 34/57/13 -f 13/304/14 51/58/14 37/60/14 -f 55/305/15 1/61/15 53/62/15 -f 21/306/9 4/63/9 46/64/9 -f 14/307/16 54/65/16 51/67/16 -f 20/308/7 13/68/7 50/69/7 -f 68/299/6 17/70/6 34/34/6 -f 49/309/17 48/72/17 1/61/17 -f 4/310/4 55/73/4 30/30/4 -f 14/307/18 12/75/18 54/65/18 -f 67/298/3 7/77/3 25/25/3 -f 18/311/2 57/79/2 58/80/2 -f 3/312/19 59/81/19 47/83/19 -f 11/313/20 61/84/20 63/86/20 -f 22/46/21 57/87/21 44/47/21 -f 59/314/22 18/89/22 60/91/22 -f 8/315/23 64/92/23 66/94/23 -f 9/97/24 7/95/24 40/40/24 -f 64/316/25 9/97/25 65/98/25 -f 61/317/26 8/99/26 62/101/26 -f 19/88/27 17/102/27 44/47/27 -f 11/318/28 63/104/28 12/106/28 -f 70/110/29 32/107/29 69/109/29 -f 28/319/29 32/107/29 29/111/29 -f 71/115/29 41/112/29 26/114/29 -f 42/320/29 41/112/29 72/116/29 -f 77/121/29 73/117/29 75/119/29 -f 38/321/29 76/120/29 75/119/29 -f 45/125/29 36/122/29 78/124/29 -f 23/322/29 45/125/29 24/126/29 -f 71/115/29 26/114/29 43/323/29 -f 43/323/29 29/111/29 71/115/29 -f 70/110/29 69/109/29 78/124/29 -f 79/324/29 24/126/29 78/124/29 -f 78/124/29 35/123/29 39/325/29 -f 39/325/29 38/321/29 78/124/29 -f 75/119/29 74/118/29 71/115/29 -f 80/326/29 72/116/29 71/115/29 -f 71/115/29 29/111/29 70/110/29 -f 69/109/29 79/324/29 78/124/29 -f 78/124/29 38/321/29 75/119/29 -f 74/118/29 80/326/29 71/115/29 -f 71/115/29 70/110/29 75/119/29 -f 47/83/19 60/82/19 69/128/19 -f 54/65/30 77/129/30 52/66/30 -f 63/86/20 62/85/20 74/132/20 -f 33/33/31 32/32/31 53/62/31 -f 60/91/22 58/90/22 79/135/22 -f 72/327/23 66/94/23 42/136/23 -f 45/48/32 44/47/32 36/137/32 -f 62/101/26 66/100/26 80/139/26 -f 40/40/33 67/96/33 41/41/33 -f 63/104/28 74/141/28 56/105/28 -f 25/51/11 46/50/11 26/144/11 -f 47/52/12 69/145/12 48/53/12 -f 56/76/34 73/147/34 54/65/34 -f 34/57/13 50/56/13 35/149/13 -f 52/59/14 76/150/14 37/60/14 -f 142/328/31 81/152/31 83/154/31 -f 143/329/10 86/157/10 88/159/10 -f 107/330/30 91/162/30 93/164/30 -f 144/331/8 96/167/8 98/169/8 -f 143/332/1 101/172/1 86/174/1 -f 142/333/1 103/175/1 81/177/1 -f 144/334/1 105/178/1 96/180/1 -f 91/335/1 107/181/1 109/183/1 -f 109/336/31 108/184/31 111/186/31 -f 105/337/10 112/187/10 106/189/10 -f 103/338/30 114/190/30 104/192/30 -f 101/339/8 116/193/8 102/195/8 -f 94/165/34 95/166/34 119/197/34 -f 84/155/5 85/156/5 121/199/5 -f 100/248/3 122/200/3 124/202/3 -f 128/253/35 94/203/35 125/205/35 -f 107/340/14 93/214/14 108/216/14 -f 115/239/35 82/217/35 104/219/35 -f 117/241/36 87/220/36 102/222/36 -f 144/341/23 98/223/23 105/225/23 -f 111/243/37 92/226/37 109/228/37 -f 143/342/2 88/229/2 101/231/2 -f 142/343/4 83/232/4 103/234/4 -f 113/244/38 97/235/38 106/237/38 -f 139/344/29 124/256/29 133/258/29 -f 140/345/29 121/259/29 134/261/29 -f 141/346/29 135/262/29 137/264/29 -f 119/347/29 118/265/29 125/267/29 -f 130/255/36 99/254/36 133/269/36 -f 132/213/34 131/212/34 134/271/34 -f 85/245/12 132/238/12 120/273/12 -f 129/209/5 128/208/5 138/275/5 -f 131/250/37 84/249/37 140/277/37 -f 99/170/33 100/171/33 139/279/33 -f 90/246/6 127/240/6 135/281/6 -f 141/348/32 89/160/32 135/282/32 -f 126/252/38 89/251/38 137/284/38 -f 122/211/32 130/210/32 123/286/32 -f 127/207/33 126/206/33 136/288/33 -f 95/247/28 129/242/28 118/290/28 diff --git a/src/main/resources/assets/hbm/models/missileNuclear.obj b/src/main/resources/assets/hbm/models/missileNuclear.obj deleted file mode 100644 index 29f98141c..000000000 --- a/src/main/resources/assets/hbm/models/missileNuclear.obj +++ /dev/null @@ -1,794 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileNuclear.blend' -# www.blender.org -o Cylinder -v -0.073159 0.500000 -0.367794 -v 0.073159 0.500000 -0.367794 -v 0.097545 0.000000 -0.490393 -v 0.208339 0.500000 -0.311801 -v 0.277785 0.000000 -0.415735 -v 0.311801 0.500000 -0.208339 -v 0.415735 0.000000 -0.277785 -v 0.367794 0.500000 -0.073159 -v 0.490393 0.000000 -0.097545 -v 0.367794 0.500000 0.073159 -v 0.490393 -0.000000 0.097545 -v 0.311801 0.500000 0.208339 -v 0.415735 -0.000000 0.277785 -v 0.208339 0.500000 0.311801 -v 0.277785 -0.000000 0.415735 -v 0.073159 0.500000 0.367794 -v 0.097545 -0.000000 0.490393 -v -0.073159 0.500000 0.367794 -v -0.097545 -0.000000 0.490393 -v -0.208339 0.500000 0.311801 -v -0.277785 -0.000000 0.415735 -v -0.311801 0.500000 0.208339 -v -0.415735 -0.000000 0.277785 -v -0.367794 0.500000 0.073159 -v -0.490393 -0.000000 0.097545 -v -0.367794 0.500000 -0.073159 -v -0.311801 0.500000 -0.208339 -v -0.415735 0.000000 -0.277785 -v 0.097545 0.500000 -0.490393 -v -0.208339 0.500000 -0.311801 -v -0.097545 0.000000 -0.490393 -v -0.277785 0.000000 -0.415735 -v -0.490393 0.500000 0.097545 -v -0.490393 0.500000 -0.097545 -v 0.490393 0.500000 -0.097545 -v 0.490393 0.500000 0.097545 -v -0.277785 0.500000 -0.415735 -v -0.097545 0.500000 -0.490393 -v 0.277785 0.500000 0.415735 -v 0.097545 0.500000 0.490393 -v -0.277785 0.500000 0.415735 -v 0.277785 0.500000 -0.415735 -v -0.415735 0.500000 -0.277785 -v 0.415735 0.500000 0.277785 -v -0.097545 0.500000 0.490393 -v -0.415735 0.500000 0.277785 -v 0.415735 0.500000 -0.277785 -v 0.277785 3.500000 -0.415735 -v 0.260424 4.500000 -0.389751 -v 0.389751 4.500000 -0.260424 -v 0.459743 4.500000 -0.091449 -v 0.353374 5.000000 -0.236117 -v -0.490393 3.500000 -0.097545 -v -0.459744 4.500000 -0.091449 -v -0.389751 4.500000 -0.260424 -v -0.097545 3.500000 -0.490393 -v -0.091449 4.500000 -0.459742 -v 0.091449 4.500000 -0.459742 -v -0.490393 3.500000 0.097545 -v -0.415735 3.500000 0.277785 -v -0.389751 4.500000 0.260424 -v -0.097545 3.500000 0.490393 -v -0.091449 4.500000 0.459744 -v -0.260424 4.500000 0.389751 -v 0.277785 3.500000 0.415735 -v 0.260424 4.500000 0.389751 -v 0.091449 4.500000 0.459743 -v 0.490393 3.500000 0.097545 -v 0.459743 4.500000 0.091449 -v 0.389751 4.500000 0.260424 -v 0.490393 3.500000 -0.097545 -v 0.415735 3.500000 -0.277785 -v -0.277785 3.500000 -0.415735 -v -0.415735 3.500000 -0.277785 -v 0.097545 3.500000 -0.490393 -v -0.459744 4.500000 0.091449 -v -0.277785 3.500000 0.415735 -v 0.097545 3.500000 0.490393 -v 0.415735 3.500000 0.277785 -v -0.260424 4.500000 -0.389751 -v 0.416833 5.000000 -0.082913 -v 0.245196 5.500000 -0.048772 -v 0.245196 5.500000 0.048773 -v -0.353375 5.000000 -0.236117 -v 0.082913 5.000000 -0.416834 -v -0.416834 5.000000 0.082913 -v -0.236117 5.000000 0.353375 -v -0.353375 5.000000 0.236117 -v 0.082913 5.000000 0.416834 -v -0.082913 5.000000 0.416834 -v 0.353374 5.000000 0.236117 -v 0.236117 5.000000 0.353375 -v 0.416833 5.000000 0.082913 -v -0.236117 5.000000 -0.353375 -v 0.236117 5.000000 -0.353375 -v -0.416834 5.000000 -0.082913 -v -0.082914 5.000000 -0.416834 -v -0.138893 5.500000 -0.207867 -v -0.048773 5.500000 -0.245196 -v 0.138892 5.500000 -0.207867 -v 0.207867 5.500000 -0.138892 -v -0.245197 5.500000 -0.048772 -v -0.207868 5.500000 -0.138892 -v 0.048772 5.500000 -0.245196 -v -0.207868 5.500000 0.138893 -v -0.245197 5.500000 0.048773 -v -0.048773 5.500000 0.245197 -v -0.138893 5.500000 0.207868 -v 0.138892 5.500000 0.207868 -v 0.048772 5.500000 0.245197 -v 0.207867 5.500000 0.138893 -v 0.000000 5.750000 0.000000 -v 0.048772 1.500000 1.240393 -v 0.048772 0.500000 1.240393 -v 0.048773 3.500000 0.490393 -v 0.048772 0.500000 0.490393 -v -0.048773 0.500000 0.490393 -v -0.048773 0.500000 1.240393 -v -0.048772 3.500000 0.490393 -v 1.240393 0.500000 -0.048772 -v 1.240393 0.500000 0.048773 -v 0.490393 0.500000 0.048773 -v 0.490393 0.500000 -0.048772 -v -0.048772 3.500000 -0.490393 -v 0.048773 3.500000 -0.490393 -v -0.048772 1.500000 -1.240393 -v -0.490393 0.500000 -0.048772 -v -0.490393 0.500000 0.048772 -v -1.240393 0.500000 -0.048773 -v -1.240393 0.500000 0.048772 -v -0.490393 3.500000 0.048772 -v -0.048773 1.500000 1.240393 -v 0.048773 1.500000 -1.240393 -v -0.048772 0.500000 -1.240393 -v -1.240393 1.500000 -0.048773 -v -0.490393 3.500000 -0.048773 -v -1.240393 1.500000 0.048772 -v 0.048773 0.500000 -1.240393 -v 0.490393 3.500000 0.048773 -v 1.240393 1.500000 0.048773 -v 1.240393 1.500000 -0.048772 -v -0.490393 0.000000 -0.097545 -v 0.048773 0.500000 -0.490393 -v -0.048772 0.500000 -0.490393 -v 0.490393 3.500000 -0.048772 -vt 0.053190 0.141950 -vt 0.047633 0.125797 -vt 0.103538 0.103554 -vt 0.040574 0.110242 -vt 0.094127 0.082814 -vt 0.032077 0.095424 -vt 0.082797 0.063057 -vt 0.022216 0.081476 -vt 0.069650 0.044459 -vt 0.011082 0.068522 -vt 0.054804 0.027187 -vt 0.011082 0.316533 -vt 0.022216 0.303579 -vt 0.069650 0.340596 -vt 0.032077 0.289631 -vt 0.082797 0.321998 -vt 0.040574 0.274813 -vt 0.094127 0.302241 -vt 0.047633 0.259258 -vt 0.103538 0.281501 -vt 0.053190 0.243105 -vt 0.110948 0.259964 -vt 0.057195 0.226500 -vt 0.116288 0.237824 -vt 0.059612 0.209590 -vt 0.119511 0.215277 -vt 0.060420 0.192527 -vt 0.059612 0.175465 -vt 0.119511 0.169778 -vt 0.679575 0.027188 -vt 0.696657 0.027188 -vt 0.699504 0.041501 -vt 0.057195 0.158555 -vt 0.110948 0.125091 -vt 0.116288 0.147231 -vt 0.867028 0.797659 -vt 0.883133 0.716696 -vt 0.947992 0.813764 -vt 0.810535 0.027188 -vt 0.813382 0.041500 -vt 0.790607 0.041500 -vt 0.628329 0.027189 -vt 0.631176 0.041502 -vt 0.608401 0.041502 -vt 0.742208 0.027188 -vt 0.745055 0.041501 -vt 0.722279 0.041501 -vt 0.702351 0.027188 -vt 0.719432 0.027188 -vt 0.924414 0.027187 -vt 0.927261 0.041500 -vt 0.904485 0.041500 -vt 0.839005 0.027187 -vt 0.856087 0.027187 -vt 0.858934 0.041500 -vt 0.656799 0.027189 -vt 0.673881 0.027189 -vt 0.676728 0.041501 -vt 0.787760 0.027188 -vt 0.767831 0.041501 -vt 0.969966 0.027187 -vt 0.972813 0.041500 -vt 0.950037 0.041500 -vt 0.901638 0.027187 -vt 0.881710 0.041500 -vt 0.833311 0.027187 -vt 0.836158 0.041500 -vt 0.634023 0.027189 -vt 0.651105 0.027189 -vt 0.653952 0.041501 -vt 0.764984 0.027188 -vt 0.947190 0.027187 -vt 0.861781 0.027187 -vt 0.878863 0.027187 -vt 0.676732 0.391730 -vt 0.676021 0.508528 -vt 0.654669 0.508529 -vt 0.631894 0.508529 -vt 0.653246 0.508529 -vt 0.652250 0.567115 -vt 0.790609 0.391729 -vt 0.789898 0.508527 -vt 0.768546 0.508528 -vt 0.722282 0.391730 -vt 0.721572 0.508527 -vt 0.700220 0.508527 -vt 0.813384 0.391729 -vt 0.836160 0.391729 -vt 0.835449 0.508527 -vt 0.881711 0.391729 -vt 0.880999 0.508527 -vt 0.859647 0.508527 -vt 0.927261 0.391729 -vt 0.926550 0.508527 -vt 0.905198 0.508527 -vt 0.972812 0.391729 -vt 0.972100 0.508527 -vt 0.950749 0.508527 -vt 0.631181 0.391731 -vt 0.653956 0.391731 -vt 0.745058 0.391730 -vt 0.767833 0.391730 -vt 0.767122 0.508528 -vt 0.699507 0.391730 -vt 0.698796 0.508528 -vt 0.812673 0.508527 -vt 0.791321 0.508527 -vt 0.858935 0.391729 -vt 0.858224 0.508527 -vt 0.904486 0.391729 -vt 0.903775 0.508526 -vt 0.882423 0.508526 -vt 0.950037 0.391729 -vt 0.949325 0.508527 -vt 0.630471 0.508528 -vt 0.609119 0.508528 -vt 0.744347 0.508528 -vt 0.722995 0.508528 -vt 0.629475 0.567114 -vt 0.625490 0.628829 -vt 0.614102 0.628829 -vt 0.745770 0.508528 -vt 0.766126 0.567114 -vt 0.677444 0.508528 -vt 0.697801 0.567114 -vt 0.811677 0.567113 -vt 0.857228 0.567113 -vt 0.837869 0.567113 -vt 0.902778 0.567112 -vt 0.883419 0.567112 -vt 0.948329 0.567113 -vt 0.928970 0.567113 -vt 0.610116 0.567114 -vt 0.743351 0.567114 -vt 0.675025 0.567114 -vt 0.788902 0.567114 -vt 0.720576 0.567113 -vt 0.834453 0.567113 -vt 0.815093 0.567114 -vt 0.880003 0.567113 -vt 0.860644 0.567113 -vt 0.925553 0.567113 -vt 0.906194 0.567113 -vt 0.971104 0.567113 -vt 0.951745 0.567113 -vt 0.739366 0.628829 -vt 0.727978 0.628829 -vt 0.671040 0.628829 -vt 0.659653 0.628829 -vt 0.784916 0.628829 -vt 0.773529 0.628829 -vt 0.716591 0.628828 -vt 0.705203 0.628828 -vt 0.830467 0.628828 -vt 0.819080 0.628828 -vt 0.876018 0.628828 -vt 0.864630 0.628828 -vt 0.921568 0.628828 -vt 0.910180 0.628828 -vt 0.967119 0.628828 -vt 0.955731 0.628828 -vt 0.632891 0.567115 -vt 0.648265 0.628830 -vt 0.762141 0.628829 -vt 0.750753 0.628829 -vt 0.693816 0.628829 -vt 0.682428 0.628829 -vt 0.807692 0.628828 -vt 0.796304 0.628828 -vt 0.853242 0.628828 -vt 0.841855 0.628828 -vt 0.898793 0.628826 -vt 0.887405 0.628826 -vt 0.944343 0.628828 -vt 0.932955 0.628828 -vt 0.779223 0.669709 -vt 0.756447 0.669709 -vt 0.733672 0.669709 -vt 0.824774 0.669709 -vt 0.710897 0.669708 -vt 0.688122 0.669709 -vt 0.665347 0.669710 -vt 0.642572 0.669711 -vt 0.636877 0.628830 -vt 0.619797 0.669709 -vt 0.961425 0.669709 -vt 0.938649 0.669708 -vt 0.915874 0.669708 -vt 0.893099 0.669707 -vt 0.870324 0.669709 -vt 0.847549 0.669708 -vt 0.801998 0.669709 -vt 0.257803 0.231487 -vt 0.257803 0.114744 -vt 0.345360 0.464974 -vt 0.345360 0.114744 -vt 0.158858 0.114744 -vt 0.246415 0.114744 -vt 0.158858 0.464974 -vt 0.482575 0.114744 -vt 0.471187 0.114744 -vt 0.471187 0.027187 -vt 0.482575 0.027187 -vt 0.257803 0.972808 -vt 0.246415 0.972808 -vt 0.257803 0.723435 -vt 0.471187 0.519135 -vt 0.482575 0.519136 -vt 0.471187 0.606692 -vt 0.482575 0.606692 -vt 0.570132 0.606692 -vt 0.570132 0.956921 -vt 0.246415 0.231487 -vt 0.246415 0.723435 -vt 0.257802 0.606692 -vt 0.471187 0.723435 -vt 0.383629 0.956921 -vt 0.482575 0.723435 -vt 0.246415 0.606692 -vt 0.383630 0.606692 -vt 0.471187 0.480867 -vt 0.471187 0.231487 -vt 0.482575 0.231487 -vt 0.054804 0.357868 -vt 0.120589 0.192527 -vt 0.964097 0.732800 -vt 0.972813 0.753842 -vt 0.972813 0.776617 -vt 0.964097 0.797659 -vt 0.904175 0.822480 -vt 0.926950 0.822480 -vt 0.883133 0.813764 -vt 0.611247 0.027189 -vt 0.858313 0.776618 -vt 0.867028 0.732800 -vt 0.904175 0.707980 -vt 0.926951 0.707980 -vt 0.947992 0.716696 -vt 0.858313 0.753842 -vt 0.793454 0.027188 -vt 0.725126 0.027188 -vt 0.907332 0.027187 -vt 0.770678 0.027188 -vt 0.952884 0.027187 -vt 0.884557 0.027187 -vt 0.816229 0.027187 -vt 0.747902 0.027188 -vt 0.930108 0.027187 -vt 0.814097 0.508527 -vt 0.836872 0.508527 -vt 0.927973 0.508527 -vt 0.608405 0.391731 -vt 0.746767 0.567114 -vt 0.678442 0.567114 -vt 0.792318 0.567113 -vt 0.723992 0.567114 -vt 0.655666 0.567115 -vt 0.769543 0.567114 -vt 0.701217 0.567113 -vt 0.334698 0.468972 -vt 0.246415 0.480866 -vt 0.158857 0.606693 -vt 0.158858 0.956922 -vt 0.345360 0.956921 -vt 0.471187 0.972813 -vt 0.383629 0.464973 -vt 0.345360 0.606692 -vt 0.257802 0.519135 -vt 0.482575 0.972813 -vt 0.383630 0.114744 -vt 0.246415 0.519135 -vt 0.257803 0.027187 -vt 0.246415 0.027187 -vt 0.570132 0.114744 -vt 0.570132 0.464973 -vt 0.482575 0.480867 -vn 0.000000 0.238100 -0.971200 -vn 0.371700 0.238100 -0.897300 -vn 0.686800 0.238100 -0.686800 -vn 0.897300 0.238100 -0.371700 -vn 0.971200 0.238100 0.000000 -vn 0.897300 0.238100 0.371700 -vn 0.686800 0.238100 0.686800 -vn 0.371700 0.238100 0.897300 -vn 0.000000 0.238100 0.971200 -vn -0.371700 0.238100 0.897300 -vn -0.686800 0.238100 0.686800 -vn -0.897300 0.238100 0.371700 -vn -0.971200 0.238100 0.000000 -vn -0.897300 0.238100 -0.371700 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 -0.868200 -0.496100 -vn -0.371700 0.238100 -0.897300 -vn -0.686800 0.238100 -0.686800 -vn -0.496100 -0.868200 0.000000 -vn 0.496100 -0.868200 0.000000 -vn 0.000000 -0.868200 0.496100 -vn 0.706800 0.030600 -0.706800 -vn 0.920500 0.085500 -0.381300 -vn -0.923400 0.030600 -0.382500 -vn 0.000000 0.030600 -0.999500 -vn -0.923400 0.030600 0.382500 -vn -0.382500 0.030600 0.923400 -vn 0.382500 0.030600 0.923400 -vn 0.923400 0.030600 0.382500 -vn 0.923400 0.030600 -0.382500 -vn -0.706800 0.030600 -0.706800 -vn 0.382500 0.030600 -0.923400 -vn -0.999500 0.030600 0.000000 -vn -0.706800 0.030600 0.706800 -vn 0.000000 0.030600 0.999500 -vn 0.706800 0.030600 0.706800 -vn 0.999500 0.030600 0.000000 -vn -0.382500 0.030600 -0.923400 -vn 0.945800 0.324700 0.000000 -vn -0.704500 0.085500 -0.704500 -vn 0.381300 0.085500 -0.920500 -vn -0.996300 0.085500 0.000000 -vn -0.704500 0.085500 0.704500 -vn 0.000000 0.085500 0.996300 -vn 0.704500 0.085500 0.704500 -vn 0.996300 0.085500 0.000000 -vn -0.381300 0.085500 -0.920500 -vn 0.704500 0.085500 -0.704500 -vn -0.920500 0.085500 -0.381300 -vn 0.000000 0.085500 -0.996300 -vn -0.920500 0.085500 0.381300 -vn -0.381300 0.085500 0.920500 -vn 0.381300 0.085500 0.920500 -vn 0.920500 0.085500 0.381300 -vn -0.362000 0.324700 -0.873800 -vn 0.668800 0.324700 -0.668800 -vn -0.873800 0.324700 -0.362000 -vn 0.000000 0.324700 -0.945800 -vn -0.873800 0.324700 0.362000 -vn -0.362000 0.324700 0.873800 -vn 0.362000 0.324700 0.873800 -vn 0.873800 0.324700 0.362000 -vn 0.873800 0.324700 0.361900 -vn 0.873800 0.324700 -0.362000 -vn -0.668800 0.324700 -0.668800 -vn 0.362000 0.324700 -0.873800 -vn -0.945800 0.324700 0.000000 -vn -0.668800 0.324700 0.668800 -vn 0.000000 0.324700 0.945800 -vn 0.668800 0.324700 0.668800 -vn -0.659600 0.700200 -0.273200 -vn -0.504800 0.700200 -0.504800 -vn -0.273200 0.700200 -0.659600 -vn -0.659600 0.700200 0.273200 -vn 0.000000 0.700200 -0.713900 -vn 0.273200 0.700200 -0.659600 -vn 0.504800 0.700200 -0.504800 -vn 0.659600 0.700200 -0.273200 -vn 0.713900 0.700200 0.000000 -vn 0.659600 0.700200 0.273200 -vn 0.504800 0.700200 0.504800 -vn 0.273200 0.700200 0.659600 -vn 0.000000 0.700200 0.713900 -vn -0.273200 0.700200 0.659600 -vn -0.504800 0.700200 0.504800 -vn -0.713900 0.700200 0.000000 -vn 0.000000 -0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.351100 -0.936300 -vn 0.000000 0.000000 -1.000000 -vn 0.936300 0.351100 0.000000 -vn 0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 0.000000 -0.707100 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn -0.707100 0.000000 -0.707100 -vn -0.923900 -0.000000 0.382700 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 -0.000000 0.707100 -vn 0.382700 -0.000000 0.923900 -vn 0.923900 -0.000000 0.382700 -vn 0.707100 -0.000000 0.707100 -vn 0.873800 0.324700 -0.361900 -vn 0.000000 0.351100 0.936300 -vn -0.936300 0.351100 0.000000 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/2/2 4/4/2 5/5/2 -f 4/4/3 6/6/3 7/7/3 -f 6/6/4 8/8/4 9/9/4 -f 8/8/5 10/10/5 11/11/5 -f 10/12/6 12/13/6 13/14/6 -f 12/13/7 14/15/7 15/16/7 -f 14/15/8 16/17/8 17/18/8 -f 16/17/9 18/19/9 19/20/9 -f 18/19/10 20/21/10 21/22/10 -f 20/21/11 22/23/11 23/24/11 -f 23/24/12 22/23/12 24/25/12 -f 25/26/13 24/25/13 26/27/13 -f 26/27/14 27/28/14 28/29/14 -f 4/30/15 2/31/15 29/32/16 -f 30/33/17 1/1/17 31/34/17 -f 27/28/18 30/33/18 32/35/18 -f 15/36/15 23/37/15 7/38/15 -f 24/39/15 33/40/19 34/41/19 -f 8/42/15 35/43/20 36/44/20 -f 30/45/15 37/46/15 38/47/16 -f 2/48/15 1/49/15 38/47/16 -f 14/50/15 39/51/15 40/52/21 -f 22/53/15 20/54/15 41/55/15 -f 6/56/15 4/57/15 42/58/15 -f 26/59/15 34/41/19 43/60/15 -f 10/61/15 36/62/20 44/63/15 -f 16/64/15 40/52/21 45/65/21 -f 22/66/15 46/67/15 33/40/19 -f 8/68/15 6/69/15 47/70/15 -f 27/71/15 43/60/15 37/46/15 -f 12/72/15 44/63/15 39/51/15 -f 20/73/15 18/74/15 45/65/21 -f 48/75/22 49/76/22 50/77/22 -f 51/78/23 50/79/23 52/80/23 -f 53/81/24 54/82/24 55/83/24 -f 56/84/25 57/85/25 58/86/25 -f 59/87/26 60/88/26 61/89/26 -f 62/90/27 63/91/27 64/92/27 -f 65/93/28 66/94/28 67/95/28 -f 68/96/29 69/97/29 70/98/29 -f 71/99/30 72/100/30 50/79/30 -f 73/101/31 74/102/31 55/103/31 -f 48/75/32 75/104/32 58/105/32 -f 59/87/33 76/106/33 54/107/33 -f 60/88/34 77/108/34 64/109/34 -f 78/110/35 67/111/35 63/112/35 -f 65/93/36 79/113/36 70/114/36 -f 71/99/37 51/115/37 69/116/37 -f 73/101/38 80/117/38 57/118/38 -f 81/119/39 82/120/39 83/121/39 -f 80/122/40 55/103/40 84/123/40 -f 49/124/41 58/105/41 85/125/41 -f 54/107/42 76/106/42 86/126/42 -f 64/109/43 87/127/43 88/128/43 -f 67/111/44 89/129/44 90/130/44 -f 70/114/45 91/131/45 92/132/45 -f 51/115/46 81/119/46 93/133/46 -f 57/118/47 80/117/47 94/134/47 -f 50/77/48 49/76/48 95/135/48 -f 55/83/49 54/82/49 96/136/49 -f 58/86/50 57/85/50 97/137/50 -f 61/89/51 88/138/51 86/139/51 -f 63/91/52 90/140/52 87/141/52 -f 66/94/53 92/142/53 89/143/53 -f 69/97/54 93/144/54 91/145/54 -f 94/134/55 98/146/55 99/147/55 -f 95/135/56 100/148/56 101/149/56 -f 96/136/57 102/150/57 103/151/57 -f 97/137/58 99/152/58 104/153/58 -f 88/138/59 105/154/59 106/155/59 -f 90/140/60 107/156/60 108/157/60 -f 92/142/61 109/158/61 110/159/61 -f 93/144/62 83/160/63 111/161/62 -f 81/162/64 52/80/64 101/163/64 -f 84/123/65 103/164/65 98/165/65 -f 85/125/66 104/166/66 100/167/66 -f 86/126/67 106/168/67 102/169/67 -f 87/127/68 108/170/68 105/171/68 -f 89/129/69 110/172/69 107/173/69 -f 91/131/70 111/174/70 109/175/70 -f 102/150/71 112/176/71 103/151/71 -f 103/164/72 112/177/72 98/165/72 -f 98/146/73 112/178/73 99/147/73 -f 105/154/74 112/179/74 106/155/74 -f 99/152/75 112/180/75 104/153/75 -f 104/166/76 112/181/76 100/167/76 -f 100/148/77 112/182/77 101/149/77 -f 101/163/78 112/183/78 82/184/78 -f 82/120/79 112/185/79 83/121/79 -f 83/160/80 112/186/80 111/161/80 -f 111/174/81 112/187/81 109/175/81 -f 109/158/82 112/188/82 110/159/82 -f 110/172/83 112/189/83 107/173/83 -f 107/156/84 112/190/84 108/157/84 -f 108/170/85 112/191/85 105/171/85 -f 102/169/86 106/168/86 112/192/86 -f 45/65/21 40/52/21 78/110/87 -f 113/193/88 114/194/88 115/195/88 -f 114/194/88 116/196/88 115/195/88 -f 117/197/89 118/198/89 119/199/89 -f 120/200/15 121/201/15 122/202/15 -f 123/203/15 120/200/15 122/202/15 -f 124/204/90 125/205/90 126/206/90 -f 127/207/15 128/208/15 129/209/15 -f 128/208/15 130/210/15 129/209/15 -f 130/210/87 128/211/87 131/212/87 -f 118/198/89 132/213/89 119/199/89 -f 125/205/90 133/214/90 126/206/90 -f 134/215/91 126/206/91 133/214/91 -f 129/209/91 135/216/91 136/217/91 -f 137/218/87 130/210/87 131/212/87 -f 138/219/91 134/215/91 133/214/91 -f 118/198/87 114/194/87 132/213/87 -f 127/220/91 129/209/91 136/217/91 -f 114/194/87 113/193/87 132/213/87 -f 139/221/92 140/222/92 141/223/92 -f 72/100/93 71/99/93 35/43/93 -f 75/104/94 48/75/94 42/58/94 -f 48/75/95 72/100/95 47/70/95 -f 73/101/96 56/84/96 38/47/96 -f 53/81/97 74/102/97 43/60/97 -f 74/102/98 73/101/98 37/46/98 -f 60/88/99 59/87/99 33/40/99 -f 62/90/100 77/108/100 41/55/100 -f 77/108/101 60/88/101 46/67/101 -f 65/93/102 78/110/102 40/52/102 -f 68/96/103 79/113/103 44/63/103 -f 79/113/104 65/93/104 39/51/104 -f 31/34/1 1/1/1 3/3/1 -f 3/3/2 2/2/2 5/5/2 -f 5/5/3 4/4/3 7/7/3 -f 7/7/4 6/6/4 9/9/4 -f 9/9/5 8/8/5 11/11/5 -f 11/224/6 10/12/6 13/14/6 -f 13/14/7 12/13/7 15/16/7 -f 15/16/8 14/15/8 17/18/8 -f 17/18/9 16/17/9 19/20/9 -f 19/20/10 18/19/10 21/22/10 -f 21/22/11 20/21/11 23/24/11 -f 25/26/12 23/24/12 24/25/12 -f 142/225/13 25/26/13 26/27/13 -f 142/225/14 26/27/14 28/29/14 -f 42/58/15 4/30/15 29/32/16 -f 32/35/17 30/33/17 31/34/17 -f 28/29/18 27/28/18 32/35/18 -f 32/226/15 31/227/15 3/228/15 -f 3/228/15 5/229/15 7/38/15 -f 11/230/15 15/36/15 9/231/15 -f 11/230/15 13/232/15 15/36/15 -f 10/233/15 8/42/15 36/44/20 -f 23/37/15 17/234/15 21/235/15 -f 23/37/15 25/236/15 142/237/15 -f 142/237/15 28/238/15 32/226/15 -f 23/37/15 142/237/15 7/38/15 -f 23/37/15 15/36/15 17/234/15 -f 17/234/15 19/239/15 21/235/15 -f 32/226/15 3/228/15 142/237/15 -f 26/240/15 24/39/15 34/41/19 -f 142/237/15 3/228/15 7/38/15 -f 15/36/15 7/38/15 9/231/15 -f 1/241/15 30/45/15 38/47/16 -f 29/32/16 2/48/15 38/47/16 -f 16/242/15 14/50/15 40/52/21 -f 46/67/15 22/53/15 41/55/15 -f 47/70/15 6/56/15 42/58/15 -f 27/243/15 26/59/15 43/60/15 -f 12/244/15 10/61/15 44/63/15 -f 18/245/15 16/64/15 45/65/21 -f 24/246/15 22/66/15 33/40/19 -f 35/43/20 8/68/15 47/70/15 -f 30/247/15 27/71/15 37/46/15 -f 14/248/15 12/72/15 39/51/15 -f 41/55/15 20/73/15 45/65/21 -f 72/100/22 48/75/22 50/77/22 -f 81/162/23 51/78/23 52/80/23 -f 74/102/24 53/81/24 55/83/24 -f 75/104/25 56/84/25 58/86/25 -f 76/249/26 59/87/26 61/89/26 -f 77/108/27 62/90/27 64/92/27 -f 78/110/28 65/93/28 67/95/28 -f 79/113/29 68/96/29 70/98/29 -f 51/78/30 71/99/30 50/79/30 -f 80/122/31 73/101/31 55/103/31 -f 49/124/32 48/75/32 58/105/32 -f 53/81/33 59/87/33 54/107/33 -f 61/250/34 60/88/34 64/109/34 -f 62/90/35 78/110/35 63/112/35 -f 66/251/36 65/93/36 70/114/36 -f 68/252/37 71/99/37 69/116/37 -f 56/84/38 73/101/38 57/118/38 -f 93/133/39 81/119/39 83/121/39 -f 94/253/40 80/122/40 84/123/40 -f 95/254/41 49/124/41 85/125/41 -f 96/255/42 54/107/42 86/126/42 -f 61/250/43 64/109/43 88/128/43 -f 63/112/44 67/111/44 90/130/44 -f 66/251/45 70/114/45 92/132/45 -f 69/116/46 51/115/46 93/133/46 -f 97/256/47 57/118/47 94/134/47 -f 52/257/48 50/77/48 95/135/48 -f 84/258/49 55/83/49 96/136/49 -f 85/259/50 58/86/50 97/137/50 -f 76/249/51 61/89/51 86/139/51 -f 64/92/52 63/91/52 87/141/52 -f 67/95/53 66/94/53 89/143/53 -f 70/98/54 69/97/54 91/145/54 -f 97/256/55 94/134/55 99/147/55 -f 52/257/56 95/135/56 101/149/56 -f 84/258/57 96/136/57 103/151/57 -f 85/259/58 97/137/58 104/153/58 -f 86/139/59 88/138/59 106/155/59 -f 87/141/60 90/140/60 108/157/60 -f 89/143/61 92/142/61 110/159/61 -f 91/145/62 93/144/62 111/161/62 -f 82/184/105 81/162/64 101/163/64 -f 94/253/65 84/123/65 98/165/65 -f 95/254/66 85/125/66 100/167/66 -f 96/255/67 86/126/67 102/169/67 -f 88/128/68 87/127/68 105/171/68 -f 90/130/69 89/129/69 107/173/69 -f 92/132/70 91/131/70 109/175/70 -f 120/200/88 141/223/88 140/222/88 -f 115/195/106 119/260/106 113/193/106 -f 119/261/106 132/213/106 113/193/106 -f 143/262/88 138/219/88 125/263/88 -f 121/201/88 120/200/88 140/222/88 -f 129/209/89 130/210/89 135/216/89 -f 126/206/89 134/215/89 124/264/89 -f 130/210/89 137/218/89 135/216/89 -f 136/265/107 135/216/107 137/218/107 -f 121/201/87 140/222/87 139/266/87 -f 138/219/88 133/214/88 125/263/88 -f 134/215/89 144/267/89 124/264/89 -f 144/268/15 134/215/15 138/219/15 -f 131/269/107 136/265/107 137/218/107 -f 122/270/87 121/201/87 139/266/87 -f 143/271/15 144/268/15 138/219/15 -f 116/272/15 114/194/15 117/273/15 -f 120/200/91 123/274/91 145/275/91 -f 114/194/15 118/198/15 117/273/15 -f 141/223/91 120/200/91 145/275/91 -f 47/70/93 72/100/93 35/43/93 -f 29/32/94 75/104/94 42/58/94 -f 42/58/95 48/75/95 47/70/95 -f 37/46/96 73/101/96 38/47/96 -f 34/41/97 53/81/97 43/60/97 -f 43/60/98 74/102/98 37/46/98 -f 46/67/99 60/88/99 33/40/99 -f 45/65/100 62/90/100 41/55/100 -f 41/55/101 77/108/101 46/67/101 -f 39/51/102 65/93/102 40/52/102 -f 36/62/103 68/96/103 44/63/103 -f 44/63/104 79/113/104 39/51/104 -f 36/44/20 35/43/20 71/99/88 -f 141/223/92 145/276/92 139/221/92 -f 38/47/16 56/84/91 75/104/91 -f 53/81/89 34/41/19 33/40/19 -f 62/90/87 45/65/21 78/110/87 -f 68/252/88 36/44/20 71/99/88 -f 29/32/16 38/47/16 75/104/91 -f 59/87/89 53/81/89 33/40/19 diff --git a/src/main/resources/assets/hbm/models/missilePad.obj b/src/main/resources/assets/hbm/models/missilePad.obj deleted file mode 100644 index f2d38a4bf..000000000 --- a/src/main/resources/assets/hbm/models/missilePad.obj +++ /dev/null @@ -1,172 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'missilePad.blend' -# www.blender.org -o Cube_Cube.001 -v -1.500000 1.000000 1.500000 -v -1.500000 1.000000 -1.500000 -v 1.500000 1.000000 1.500000 -v 1.500000 1.000000 -1.500000 -v -1.500000 0.500000 -0.500000 -v -1.500000 0.500000 0.500000 -v 0.500000 0.500000 -1.500000 -v -0.500000 0.500000 -1.500000 -v 1.500000 0.500000 0.500000 -v 1.500000 0.500000 -0.500000 -v -0.500000 0.500000 1.500000 -v 0.500000 0.500000 1.500000 -v -0.500000 0.500000 0.500000 -v 0.500000 0.500000 0.500000 -v -0.500000 0.500000 -0.500000 -v 0.500000 0.500000 -0.500000 -v -1.750000 0.000000 1.750000 -v -1.750000 0.000000 -1.750000 -v 1.750000 0.000000 1.750000 -v 1.750000 0.000000 -1.750000 -v -1.750000 0.000000 -0.500000 -v -1.750000 0.000000 0.500000 -v 0.500000 0.000000 -1.750000 -v -0.500000 0.000000 -1.750000 -v 1.750000 0.000000 0.500000 -v 1.750000 0.000000 -0.500000 -v -0.500000 0.000000 1.750000 -v 0.500000 0.000000 1.750000 -v -0.500000 0.000000 0.500000 -v 0.500000 0.000000 0.500000 -v -0.500000 0.000000 -0.500000 -v 0.500000 0.000000 -0.500000 -v -1.500000 0.500000 -1.500000 -v 1.500000 0.500000 -1.500000 -v -1.500000 0.500000 1.500000 -v 1.500000 0.500000 1.500000 -v -0.500000 1.000000 0.500000 -v 0.500000 1.000000 0.500000 -v -0.500000 1.000000 -0.500000 -v 0.500000 1.000000 -0.500000 -vt 0.020000 0.530000 -vt 0.180000 0.370000 -vt 0.340000 0.370000 -vt 0.740000 0.060000 -vt 0.740000 0.220000 -vt 0.580000 0.220000 -vt 0.580000 0.060000 -vt 0.180000 0.210000 -vt 0.020000 0.660000 -vt 0.180000 0.580000 -vt 0.340000 0.580000 -vt 0.930000 0.710000 -vt 0.930000 0.870000 -vt 0.850000 0.870000 -vt 0.690000 0.950000 -vt 0.650000 0.870000 -vt 0.650000 0.670000 -vt 0.850000 0.670000 -vt 0.690000 0.580000 -vt 0.560000 0.870000 -vt 0.560000 0.710000 -vt 0.500000 0.660000 -vt 0.850000 0.580000 -vt 0.500000 0.530000 -vt 0.340000 0.210000 -vt 0.740000 0.300000 -vt 0.580000 0.300000 -vt 0.020000 0.050000 -vt 0.740000 0.360000 -vt 0.740000 0.520000 -vt 0.580000 0.520000 -vt 0.500000 0.580000 -vt 0.020000 0.580000 -vt 0.850000 0.950000 -vt 0.500000 0.050000 -vt 0.580000 0.360000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.447200 0.894400 -vn 0.894400 0.447200 0.000000 -vn 0.000000 0.447200 -0.894400 -vn -0.894400 0.447200 0.000000 -s off -f 2/1/1 39/2/1 40/3/1 -f 5/4/2 15/5/2 13/6/2 -f 13/5/2 14/6/2 12/7/2 -f 16/6/2 10/7/2 9/4/2 -f 8/7/2 7/4/2 16/5/2 -f 37/8/1 39/2/1 2/1/1 -f 2/9/3 5/10/3 6/11/3 -f 12/12/3 14/13/3 30/14/3 -f 7/15/3 23/16/3 32/14/3 -f 10/11/4 3/9/4 9/10/4 -f 10/12/5 16/13/5 32/14/5 -f 23/16/2 20/17/2 26/18/2 -f 30/14/2 25/16/2 19/17/2 -f 22/18/2 29/14/2 27/16/2 -f 18/17/2 24/18/2 31/14/2 -f 9/15/6 25/16/6 30/14/6 -f 29/14/6 22/18/6 6/12/6 -f 11/15/4 27/16/4 29/14/4 -f 31/14/4 24/18/4 8/12/4 -f 5/15/5 21/16/5 31/14/5 -f 28/18/7 19/17/7 36/19/7 -f 25/16/8 9/20/8 36/21/8 -f 2/22/6 4/9/6 7/10/6 -f 26/18/8 20/17/8 34/19/8 -f 34/21/9 20/17/9 23/16/9 -f 1/9/5 11/10/5 12/11/5 -f 33/19/9 8/23/9 24/18/9 -f 21/16/10 5/20/10 33/21/10 -f 35/19/10 6/23/10 22/18/10 -f 27/16/7 11/20/7 35/21/7 -f 4/24/1 40/3/1 38/25/1 -f 40/26/5 39/27/5 15/6/5 -f 38/26/3 40/27/3 16/6/3 -f 15/5/4 39/26/4 37/27/4 -f 13/5/6 37/26/6 38/27/6 -f 38/25/1 37/8/1 1/28/1 -f 38/29/1 40/30/1 39/31/1 -f 4/24/1 2/1/1 40/3/1 -f 6/7/2 5/4/2 13/6/2 -f 11/4/2 13/5/2 12/7/2 -f 14/5/2 16/6/2 9/4/2 -f 15/6/2 8/7/2 16/5/2 -f 1/28/1 37/8/1 2/1/1 -f 6/11/3 35/32/3 1/22/3 -f 1/22/3 2/9/3 6/11/3 -f 33/33/3 5/10/3 2/9/3 -f 28/18/3 12/12/3 30/14/3 -f 16/34/3 7/15/3 32/14/3 -f 36/33/4 9/10/4 3/9/4 -f 10/11/4 34/32/4 4/22/4 -f 4/22/4 3/9/4 10/11/4 -f 26/18/5 10/12/5 32/14/5 -f 32/14/2 23/16/2 26/18/2 -f 28/18/2 30/14/2 19/17/2 -f 17/17/2 22/18/2 27/16/2 -f 21/16/2 18/17/2 31/14/2 -f 14/34/6 9/15/6 30/14/6 -f 13/13/6 29/14/6 6/12/6 -f 13/34/4 11/15/4 29/14/4 -f 15/13/4 31/14/4 8/12/4 -f 15/34/5 5/15/5 31/14/5 -f 12/23/7 28/18/7 36/19/7 -f 19/17/8 25/16/8 36/21/8 -f 7/10/6 8/11/6 2/22/6 -f 33/32/6 2/22/6 8/11/6 -f 4/9/6 34/33/6 7/10/6 -f 10/23/8 26/18/8 34/19/8 -f 7/20/9 34/21/9 23/16/9 -f 12/11/5 36/32/5 3/22/5 -f 3/22/5 1/9/5 12/11/5 -f 35/33/5 11/10/5 1/9/5 -f 18/17/9 33/19/9 24/18/9 -f 18/17/10 21/16/10 33/21/10 -f 17/17/10 35/19/10 22/18/10 -f 17/17/7 27/16/7 35/21/7 -f 3/35/1 4/24/1 38/25/1 -f 16/5/5 40/26/5 15/6/5 -f 14/5/3 38/26/3 16/6/3 -f 13/6/4 15/5/4 37/27/4 -f 14/6/6 13/5/6 38/27/6 -f 3/35/1 38/25/1 1/28/1 -f 37/36/1 38/29/1 39/31/1 diff --git a/src/main/resources/assets/hbm/models/machines/icf.obj b/src/main/resources/assets/hbm/models/reactors/icf.obj similarity index 100% rename from src/main/resources/assets/hbm/models/machines/icf.obj rename to src/main/resources/assets/hbm/models/reactors/icf.obj diff --git a/src/main/resources/assets/hbm/models/selenium_engine_body.obj b/src/main/resources/assets/hbm/models/selenium_engine_body.obj deleted file mode 100644 index b679392b9..000000000 --- a/src/main/resources/assets/hbm/models/selenium_engine_body.obj +++ /dev/null @@ -1,586 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'selenium_engine_body.blend' -# www.blender.org -o Cylinder_Cylinder.001 -v 0.000000 1.350000 -0.175000 -v 0.000000 1.350000 0.175000 -v 0.175000 1.303109 -0.175000 -v 0.175000 1.303109 0.175000 -v 0.303109 1.175000 -0.175000 -v 0.303109 1.175000 0.175000 -v 0.350000 1.000000 -0.175000 -v 0.350000 1.000000 0.175000 -v 0.303109 0.825000 -0.175000 -v 0.303109 0.825000 0.175000 -v 0.175000 0.696891 -0.175000 -v 0.175000 0.696891 0.175000 -v 0.000000 0.650000 -0.175000 -v 0.000000 0.650000 0.175000 -v -0.175000 0.696891 -0.175000 -v -0.175000 0.696891 0.175000 -v -0.303109 0.825000 -0.175000 -v -0.303109 0.825000 0.175000 -v -0.350000 1.000000 -0.175000 -v -0.350000 1.000000 0.175000 -v -0.303109 1.175000 -0.175000 -v -0.303109 1.175000 0.175000 -v -0.175000 1.303109 -0.175000 -v -0.175000 1.303109 0.175000 -v -0.000000 1.210000 -0.175000 -v 0.105000 1.181865 -0.175000 -v 0.105000 1.181865 0.175000 -v -0.000000 1.210000 0.175000 -v 0.181865 1.105000 -0.175000 -v 0.181865 1.105000 0.175000 -v 0.210000 1.000000 -0.175000 -v 0.210000 1.000000 0.175000 -v 0.181865 0.895000 -0.175000 -v 0.181865 0.895000 0.175000 -v 0.105000 0.818135 -0.175000 -v 0.105000 0.818135 0.175000 -v 0.000000 0.790000 -0.175000 -v 0.000000 0.790000 0.175000 -v -0.105000 0.818135 -0.175000 -v -0.105000 0.818135 0.175000 -v -0.181865 0.895000 -0.175000 -v -0.181865 0.895000 0.175000 -v -0.210000 1.000000 -0.175000 -v -0.210000 1.000000 0.175000 -v -0.181865 1.105000 -0.175000 -v -0.181865 1.105000 0.175000 -v -0.105000 1.181865 -0.175000 -v -0.105000 1.181865 0.175000 -v 0.105000 1.181865 0.225000 -v -0.000000 1.210000 0.225000 -v -0.105000 1.181865 0.225000 -v -0.181865 1.105000 0.225000 -v -0.210000 1.000000 0.225000 -v -0.181865 0.895000 0.225000 -v -0.105000 0.818135 0.225000 -v 0.000000 0.790000 0.225000 -v 0.105000 0.818135 0.225000 -v 0.181865 0.895000 0.225000 -v 0.210000 1.000000 0.225000 -v 0.181865 1.105000 0.225000 -v -0.000000 1.210000 -0.225000 -v 0.105000 1.181865 -0.225000 -v 0.181865 1.105000 -0.225000 -v 0.210000 1.000000 -0.225000 -v 0.181865 0.895000 -0.225000 -v 0.105000 0.818135 -0.225000 -v 0.000000 0.790000 -0.225000 -v -0.105000 0.818135 -0.225000 -v -0.181865 0.895000 -0.225000 -v -0.210000 1.000000 -0.225000 -v -0.181865 1.105000 -0.225000 -v -0.105000 1.181865 -0.225000 -v -0.375000 0.000000 0.237500 -v -0.250000 0.000000 0.237500 -v 0.250000 0.000000 0.237500 -v 0.375000 0.000000 0.237500 -v -0.375000 0.000000 0.175000 -v -0.250000 0.000000 0.175000 -v 0.250000 0.000000 0.175000 -v 0.375000 0.000000 0.175000 -v -0.375000 0.000000 -0.175000 -v -0.250000 0.000000 -0.175000 -v 0.250000 0.000000 -0.175000 -v 0.375000 0.000000 -0.175000 -v -0.375000 0.000000 -0.237500 -v -0.250000 0.000000 -0.237500 -v 0.250000 0.000000 -0.237500 -v 0.375000 0.000000 -0.237500 -v 0.335000 1.000000 -0.237500 -v 0.210000 1.000000 -0.237500 -v -0.210000 1.000000 -0.237500 -v -0.335000 1.000000 -0.237500 -v 0.210000 1.040000 -0.175000 -v 0.335000 1.040000 -0.175000 -v -0.335000 1.030000 -0.175000 -v -0.210000 1.030000 -0.175000 -v 0.335000 1.030000 0.175000 -v 0.210000 1.030000 0.175000 -v -0.210000 1.030000 0.175000 -v -0.335000 1.030000 0.175000 -v 0.210000 1.000000 0.237500 -v 0.335000 1.000000 0.237500 -v -0.335000 1.000000 0.237500 -v -0.210000 1.000000 0.237500 -v -0.156250 0.000000 -0.156250 -v -0.156250 0.000000 0.156250 -v 0.156250 0.000000 -0.156250 -v 0.156250 0.000000 0.156250 -v -0.078125 0.156250 -0.078125 -v -0.078125 0.156250 0.078125 -v 0.078125 0.156250 0.078125 -v 0.078125 0.156250 -0.078125 -v -0.078125 0.706250 -0.078125 -v -0.078125 0.706250 0.078125 -v 0.078125 0.706250 0.078125 -v 0.078125 0.706250 -0.078125 -vt 0.377779 0.024108 -vt 0.436724 0.024108 -vt 0.436724 0.137981 -vt 0.495669 0.024108 -vt 0.495669 0.137981 -vt 0.554615 0.024108 -vt 0.554615 0.137981 -vt 0.613560 0.024108 -vt 0.613560 0.137981 -vt 0.672505 0.024108 -vt 0.672505 0.137981 -vt 0.731450 0.024108 -vt 0.731450 0.137981 -vt 0.024108 0.024108 -vt 0.083053 0.024108 -vt 0.083053 0.137982 -vt 0.141998 0.024108 -vt 0.141998 0.137982 -vt 0.200943 0.024108 -vt 0.200944 0.137981 -vt 0.259889 0.024108 -vt 0.259889 0.137981 -vt 0.163574 0.186198 -vt 0.214622 0.215670 -vt 0.182414 0.247878 -vt 0.318834 0.024108 -vt 0.377779 0.137981 -vt 0.318834 0.137981 -vt 0.104629 0.406184 -vt 0.116418 0.362187 -vt 0.151785 0.362187 -vt 0.024108 0.325663 -vt 0.068105 0.313874 -vt 0.085789 0.344503 -vt 0.482824 0.376711 -vt 0.450616 0.344503 -vt 0.468299 0.313874 -vt 0.292310 0.266718 -vt 0.336308 0.278507 -vt 0.336308 0.313874 -vt 0.244094 0.325663 -vt 0.200097 0.313874 -vt 0.200097 0.278507 -vt 0.053581 0.215670 -vt 0.085789 0.247878 -vt 0.068105 0.278507 -vt 0.512297 0.266718 -vt 0.468299 0.278507 -vt 0.450616 0.247878 -vt 0.372831 0.406184 -vt 0.321783 0.376711 -vt 0.353991 0.344503 -vt 0.431776 0.186198 -vt 0.419987 0.230195 -vt 0.384620 0.230195 -vt 0.163574 0.406184 -vt 0.182414 0.344503 -vt 0.151785 0.230195 -vt 0.116418 0.230195 -vt 0.053581 0.376711 -vt 0.431776 0.406184 -vt 0.419987 0.362187 -vt 0.321783 0.215670 -vt 0.353991 0.247878 -vt 0.244094 0.266718 -vt 0.024108 0.266718 -vt 0.512297 0.325663 -vt 0.292310 0.325663 -vt 0.214622 0.376711 -vt 0.104629 0.186198 -vt 0.482824 0.215670 -vt 0.384620 0.362187 -vt 0.372831 0.186198 -vt 0.039821 0.878779 -vt 0.176469 0.878779 -vt 0.142307 0.937949 -vt 0.073983 0.937949 -vt 0.108145 0.947103 -vt 0.103935 0.962816 -vt 0.048975 0.912941 -vt 0.062480 0.949452 -vt 0.024108 0.882989 -vt 0.033262 0.840407 -vt 0.048975 0.844617 -vt 0.062480 0.808106 -vt 0.073983 0.819609 -vt 0.103935 0.794742 -vt 0.108145 0.810455 -vt 0.142307 0.819609 -vt 0.112356 0.794742 -vt 0.167316 0.844617 -vt 0.153810 0.808106 -vt 0.183029 0.840407 -vt 0.167316 0.912941 -vt 0.192183 0.882989 -vt 0.178819 0.924444 -vt 0.146518 0.953663 -vt 0.340346 0.943001 -vt 0.274350 0.925318 -vt 0.304978 0.811009 -vt 0.370975 0.828693 -vt 0.340346 0.811009 -vt 0.348479 0.796921 -vt 0.388658 0.859322 -vt 0.385063 0.820559 -vt 0.388658 0.894689 -vt 0.404926 0.859322 -vt 0.370975 0.925318 -vt 0.402746 0.902823 -vt 0.379108 0.939406 -vt 0.304979 0.943001 -vt 0.340346 0.959269 -vt 0.296845 0.957089 -vt 0.256666 0.894689 -vt 0.260262 0.933451 -vt 0.240399 0.859322 -vt 0.256666 0.859322 -vt 0.260262 0.820559 -vt 0.274350 0.828693 -vt 0.296845 0.796921 -vt 0.304978 0.794742 -vt 0.024108 0.684733 -vt 0.025734 0.644096 -vt 0.046052 0.644909 -vt 0.444044 0.726997 -vt 0.442418 0.686360 -vt 0.462737 0.685548 -vt 0.464321 0.515373 -vt 0.465946 0.556010 -vt 0.445628 0.556822 -vt 0.046052 0.474734 -vt 0.044426 0.515371 -vt 0.024108 0.514558 -vt 0.046003 0.746519 -vt 0.044426 0.705880 -vt 0.379792 0.705887 -vt 0.465946 0.576344 -vt 0.791559 0.556013 -vt 0.464362 0.746519 -vt 0.464362 0.726184 -vt 0.789974 0.726188 -vt 0.046052 0.624575 -vt 0.381418 0.624575 -vt 0.371665 0.644912 -vt 0.465899 0.454400 -vt 0.801265 0.454400 -vt 0.799687 0.495039 -vt 0.370039 0.685549 -vt 0.464321 0.495038 -vt 0.789934 0.515377 -vt 0.044426 0.685546 -vt 0.371664 0.474741 -vt 0.370037 0.515377 -vt 0.464315 0.624575 -vt 0.799681 0.624575 -vt 0.798103 0.665213 -vt 0.044426 0.535705 -vt 0.462737 0.665213 -vt 0.788350 0.685551 -vt 0.045987 0.576344 -vt 0.383041 0.535719 -vt 0.046053 0.454400 -vt 0.384669 0.454400 -vt 0.394160 0.516343 -vt 0.814096 0.555112 -vt 0.810887 0.684650 -vt 0.812512 0.725286 -vt 0.394203 0.645814 -vt 0.392577 0.686451 -vt 0.830946 0.331144 -vt 0.830946 0.229471 -vt 0.932619 0.229471 -vt 0.932619 0.331143 -vt 0.907200 0.387980 -vt 0.856364 0.387980 -vt 0.774109 0.305725 -vt 0.774109 0.254889 -vt 0.856364 0.172634 -vt 0.907200 0.172634 -vt 0.989455 0.254889 -vt 0.989455 0.305725 -vt 0.560513 0.237034 -vt 0.739457 0.237034 -vt 0.739457 0.287870 -vt 0.560513 0.338707 -vt 0.739457 0.338706 -vt 0.739457 0.389543 -vt 0.560513 0.186198 -vt 0.739457 0.186198 -vt 0.560513 0.287870 -vt 0.024108 0.137982 -vt 0.069773 0.953663 -vt 0.037472 0.924444 -vt 0.033262 0.917151 -vt 0.024108 0.874569 -vt 0.037472 0.833114 -vt 0.069773 0.803895 -vt 0.146518 0.803895 -vt 0.178819 0.833114 -vt 0.192183 0.874569 -vt 0.183029 0.917151 -vt 0.153810 0.949452 -vt 0.112356 0.962816 -vt 0.379108 0.814605 -vt 0.402746 0.851188 -vt 0.404926 0.894689 -vt 0.385063 0.933451 -vt 0.348479 0.957089 -vt 0.304979 0.959269 -vt 0.266216 0.939406 -vt 0.242578 0.902823 -vt 0.240399 0.894689 -vt 0.242578 0.851188 -vt 0.266216 0.814605 -vt 0.340346 0.794742 -vt 0.444003 0.516186 -vt 0.025734 0.473921 -vt 0.381369 0.746526 -vt 0.801311 0.576351 -vt 0.799727 0.746526 -vt 0.384603 0.576359 -vt 0.395787 0.475707 -vt 0.812471 0.514475 -vt 0.560513 0.389543 -vn 0.258800 0.965900 0.000000 -vn 0.707100 0.707100 0.000000 -vn 0.965900 0.258800 0.000000 -vn 0.965900 -0.258800 0.000000 -vn 0.707100 -0.707100 0.000000 -vn 0.258800 -0.965900 0.000000 -vn -0.258800 -0.965900 0.000000 -vn -0.707100 -0.707100 0.000000 -vn -0.965900 -0.258800 0.000000 -vn -0.965900 0.258800 0.000000 -vn 0.000000 0.000000 1.000000 -vn -0.258800 0.965900 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.000000 -0.000000 -1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.999200 -0.040000 0.000000 -vn -0.999200 -0.040000 0.000000 -vn 0.999100 -0.038800 -0.018600 -vn -0.999100 0.038800 -0.018600 -vn -0.999200 0.040000 0.000000 -vn 0.999200 0.040000 0.000000 -vn 0.999100 0.038800 0.018600 -vn -0.999000 -0.038400 0.024600 -vn 0.000000 0.842300 -0.539100 -vn 0.000000 0.901500 -0.432700 -vn 0.000000 0.901500 0.432700 -vn 0.000000 0.447200 0.894400 -vn -0.894400 0.447200 0.000000 -vn 0.000000 0.447200 -0.894400 -vn 0.894400 0.447200 0.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.999100 -0.038800 0.018600 -vn -0.999100 -0.038800 -0.018600 -vn -0.999100 0.038800 0.018600 -vn 0.999000 0.038400 -0.024600 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/14/7 16/15/7 15/16/7 -f 16/15/8 18/17/8 17/18/8 -f 18/17/9 20/19/9 19/20/9 -f 20/19/10 22/21/10 21/22/10 -f 16/23/11 14/24/11 38/25/11 -f 24/26/12 2/1/12 1/27/12 -f 22/21/13 24/26/13 23/28/13 -f 4/29/11 27/30/11 30/31/11 -f 24/32/11 48/33/11 28/34/11 -f 11/35/14 35/36/14 33/37/14 -f 21/38/14 45/39/14 43/40/14 -f 10/41/11 34/42/11 36/43/11 -f 20/44/11 44/45/11 46/46/11 -f 7/47/14 31/48/14 29/49/14 -f 15/50/14 17/51/14 41/52/14 -f 3/53/14 26/54/14 25/55/14 -f 6/56/11 30/31/11 32/57/11 -f 16/23/11 40/58/11 42/59/11 -f 2/60/11 28/34/11 27/30/11 -f 13/61/14 37/62/14 35/36/14 -f 21/38/14 23/63/14 47/64/14 -f 12/65/11 36/43/11 38/25/11 -f 22/66/11 46/46/11 48/33/11 -f 9/67/14 33/37/14 31/48/14 -f 17/51/14 19/68/14 43/40/14 -f 8/69/11 32/57/11 34/42/11 -f 18/70/11 42/59/11 44/45/11 -f 3/53/14 5/71/14 29/49/14 -f 15/50/14 39/72/14 37/62/14 -f 1/73/14 25/55/14 47/64/14 -f 52/74/11 58/75/11 60/76/11 -f 50/77/1 49/78/1 27/79/1 -f 51/80/12 50/77/12 28/81/12 -f 46/82/13 52/74/13 51/80/13 -f 44/83/10 53/84/10 52/74/10 -f 42/85/9 54/86/9 53/84/9 -f 40/87/8 55/88/8 54/86/8 -f 56/89/7 55/88/7 40/90/7 -f 57/91/6 56/89/6 38/92/6 -f 58/75/5 57/91/5 36/93/5 -f 59/94/4 58/75/4 34/95/4 -f 60/76/3 59/94/3 32/96/3 -f 49/78/2 60/76/2 30/97/2 -f 66/98/14 68/99/14 72/100/14 -f 62/101/1 61/102/1 25/103/1 -f 63/104/2 62/101/2 26/105/2 -f 64/106/3 63/104/3 29/107/3 -f 65/108/4 64/106/4 31/109/4 -f 66/98/5 65/108/5 33/110/5 -f 67/111/6 66/98/6 35/112/6 -f 68/99/7 67/111/7 37/113/7 -f 69/114/8 68/99/8 39/115/8 -f 43/116/9 70/117/9 69/114/9 -f 45/118/10 71/119/10 70/117/10 -f 47/120/13 72/100/13 71/119/13 -f 61/102/12 72/100/12 47/121/12 -f 77/122/15 78/123/15 74/124/15 -f 79/125/15 80/126/15 76/127/15 -f 85/128/15 86/129/15 82/130/15 -f 87/131/15 88/132/15 84/133/15 -f 78/134/14 77/135/14 100/136/14 -f 82/137/16 86/129/16 91/138/16 -f 79/139/17 75/140/17 101/141/17 -f 78/142/18 99/143/18 104/144/18 -f 82/145/11 96/146/11 95/147/11 -f 74/124/11 104/144/11 103/148/11 -f 81/149/19 95/147/19 92/150/19 -f 77/135/20 73/151/20 103/148/20 -f 87/131/14 90/152/14 89/153/14 -f 79/154/14 98/155/14 97/156/14 -f 84/157/21 88/132/21 89/153/21 -f 80/158/22 97/156/22 102/159/22 -f 83/160/11 84/157/11 94/161/11 -f 86/129/14 85/128/14 92/150/14 -f 75/140/11 76/127/11 102/159/11 -f 83/162/23 93/163/23 90/152/23 -f 94/164/24 89/153/24 90/152/24 -f 96/165/25 91/138/25 92/150/25 -f 102/159/26 97/166/26 98/167/26 -f 104/144/26 99/168/26 100/169/26 -f 106/170/15 105/171/15 107/172/15 -f 108/173/27 111/174/27 110/175/27 -f 106/170/28 110/176/28 109/177/28 -f 105/171/29 109/178/29 112/179/29 -f 107/172/30 112/180/30 111/181/30 -f 110/182/31 114/183/31 113/184/31 -f 112/185/32 116/186/32 115/187/32 -f 111/188/11 115/189/11 114/183/11 -f 109/190/14 113/184/14 116/186/14 -f 1/27/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 13/191/7 14/14/7 15/16/7 -f 15/16/8 16/15/8 17/18/8 -f 17/18/9 18/17/9 19/20/9 -f 19/20/10 20/19/10 21/22/10 -f 40/58/11 16/23/11 38/25/11 -f 23/28/12 24/26/12 1/27/12 -f 21/22/13 22/21/13 23/28/13 -f 6/56/11 4/29/11 30/31/11 -f 2/60/11 24/32/11 28/34/11 -f 9/67/14 11/35/14 33/37/14 -f 19/68/14 21/38/14 43/40/14 -f 12/65/11 10/41/11 36/43/11 -f 22/66/11 20/44/11 46/46/11 -f 5/71/14 7/47/14 29/49/14 -f 39/72/14 15/50/14 41/52/14 -f 1/73/14 3/53/14 25/55/14 -f 8/69/11 6/56/11 32/57/11 -f 18/70/11 16/23/11 42/59/11 -f 4/29/11 2/60/11 27/30/11 -f 11/35/14 13/61/14 35/36/14 -f 45/39/14 21/38/14 47/64/14 -f 14/24/11 12/65/11 38/25/11 -f 24/32/11 22/66/11 48/33/11 -f 7/47/14 9/67/14 31/48/14 -f 41/52/14 17/51/14 43/40/14 -f 10/41/11 8/69/11 34/42/11 -f 20/44/11 18/70/11 44/45/11 -f 26/54/14 3/53/14 29/49/14 -f 13/61/14 15/50/14 37/62/14 -f 23/63/14 1/73/14 47/64/14 -f 60/76/11 49/78/11 50/77/11 -f 50/77/11 51/80/11 60/76/11 -f 52/74/11 53/84/11 54/86/11 -f 54/86/11 55/88/11 52/74/11 -f 56/89/11 57/91/11 58/75/11 -f 58/75/11 59/94/11 60/76/11 -f 60/76/11 51/80/11 52/74/11 -f 52/74/11 55/88/11 56/89/11 -f 56/89/11 58/75/11 52/74/11 -f 28/192/1 50/77/1 27/79/1 -f 48/193/12 51/80/12 28/81/12 -f 48/194/13 46/82/13 51/80/13 -f 46/195/10 44/83/10 52/74/10 -f 44/196/9 42/85/9 53/84/9 -f 42/197/8 40/87/8 54/86/8 -f 38/198/7 56/89/7 40/90/7 -f 36/199/6 57/91/6 38/92/6 -f 34/200/5 58/75/5 36/93/5 -f 32/201/4 59/94/4 34/95/4 -f 30/202/3 60/76/3 32/96/3 -f 27/203/2 49/78/2 30/97/2 -f 72/100/14 61/102/14 62/101/14 -f 62/101/14 63/104/14 64/106/14 -f 64/106/14 65/108/14 66/98/14 -f 66/98/14 67/111/14 68/99/14 -f 68/99/14 69/114/14 70/117/14 -f 70/117/14 71/119/14 72/100/14 -f 72/100/14 62/101/14 64/106/14 -f 64/106/14 66/98/14 72/100/14 -f 68/99/14 70/117/14 72/100/14 -f 26/204/1 62/101/1 25/103/1 -f 29/205/2 63/104/2 26/105/2 -f 31/206/3 64/106/3 29/107/3 -f 33/207/4 65/108/4 31/109/4 -f 35/208/5 66/98/5 33/110/5 -f 37/209/6 67/111/6 35/112/6 -f 39/210/7 68/99/7 37/113/7 -f 41/211/8 69/114/8 39/115/8 -f 41/212/9 43/116/9 69/114/9 -f 43/213/10 45/118/10 70/117/10 -f 45/214/13 47/120/13 71/119/13 -f 25/215/12 61/102/12 47/121/12 -f 73/151/15 77/122/15 74/124/15 -f 75/140/15 79/125/15 76/127/15 -f 81/216/15 85/128/15 82/130/15 -f 83/217/15 87/131/15 84/133/15 -f 99/218/14 78/134/14 100/136/14 -f 96/219/33 82/137/33 91/138/33 -f 98/220/34 79/139/34 101/141/34 -f 74/124/16 78/142/16 104/144/16 -f 81/149/11 82/145/11 95/147/11 -f 73/151/11 74/124/11 103/148/11 -f 85/128/20 81/149/20 92/150/20 -f 100/136/35 77/135/35 103/148/35 -f 88/132/14 87/131/14 89/153/14 -f 80/158/14 79/154/14 97/156/14 -f 94/161/36 84/157/36 89/153/36 -f 76/127/21 80/158/21 102/159/21 -f 93/221/11 83/160/11 94/161/11 -f 91/138/14 86/129/14 92/150/14 -f 101/141/11 75/140/11 102/159/11 -f 87/131/17 83/162/17 90/152/17 -f 93/222/24 94/164/24 90/152/24 -f 95/223/25 96/165/25 92/150/25 -f 101/141/26 102/159/26 98/167/26 -f 103/148/26 104/144/26 100/169/26 -f 108/173/15 106/170/15 107/172/15 -f 106/170/27 108/173/27 110/175/27 -f 105/171/28 106/170/28 109/177/28 -f 107/172/29 105/171/29 112/179/29 -f 108/173/30 107/172/30 111/181/30 -f 109/190/31 110/182/31 113/184/31 -f 111/224/32 112/185/32 115/187/32 -f 110/182/11 111/188/11 114/183/11 -f 112/185/14 109/190/14 116/186/14 diff --git a/src/main/resources/assets/hbm/models/selenium_engine_piston.obj b/src/main/resources/assets/hbm/models/selenium_engine_piston.obj deleted file mode 100644 index 8e3894b38..000000000 --- a/src/main/resources/assets/hbm/models/selenium_engine_piston.obj +++ /dev/null @@ -1,531 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'selenium_engine_piston.blend' -# www.blender.org -o Cube_Cube.001 -v 0.088388 0.650000 0.088388 -v 0.088388 0.250000 0.088388 -v 0.125000 0.650000 0.000000 -v 0.125000 0.250000 0.000000 -v 0.088388 0.650000 -0.088388 -v 0.088388 0.250000 -0.088388 -v -0.000000 0.650000 -0.125000 -v -0.000000 0.250000 -0.125000 -v -0.088389 0.650000 -0.088388 -v -0.088388 0.250000 -0.088388 -v -0.125000 0.650000 -0.000000 -v -0.125000 0.250000 -0.000000 -v -0.088389 0.650000 0.088388 -v -0.088388 0.250000 0.088388 -v -0.000000 0.650000 0.125000 -v -0.000000 0.250000 0.125000 -v -0.000000 0.650000 0.156250 -v -0.000000 0.775000 0.156250 -v -0.110486 0.650000 0.110485 -v -0.110486 0.775000 0.110485 -v -0.156250 0.650000 -0.000000 -v -0.156250 0.775000 -0.000000 -v -0.110486 0.650000 -0.110485 -v -0.110486 0.775000 -0.110485 -v -0.000000 0.650000 -0.156250 -v -0.000000 0.775000 -0.156250 -v 0.110485 0.650000 -0.110485 -v 0.110485 0.775000 -0.110485 -v 0.156250 0.650000 0.000000 -v 0.156250 0.775000 0.000000 -v 0.110485 0.650000 0.110485 -v 0.110485 0.775000 0.110485 -v 0.200000 0.750000 0.050000 -v 0.135000 0.750000 -0.050000 -v 0.200000 0.750000 -0.050000 -v 0.135000 0.750000 0.050000 -v 0.235000 0.715000 0.050000 -v 0.235000 0.715000 -0.050000 -v 0.235000 0.615000 0.050000 -v 0.235000 0.615000 -0.050000 -v 0.160000 0.465000 0.050000 -v 0.160000 0.465000 -0.050000 -v 0.160000 0.265000 0.050000 -v 0.160000 0.265000 -0.050000 -v -0.125000 0.300000 0.107322 -v -0.125000 0.650000 0.107322 -v -0.107322 0.300000 0.125000 -v -0.107323 0.650000 0.125000 -v -0.142678 0.300000 0.125000 -v -0.142678 0.650000 0.125000 -v -0.125000 0.300000 0.142678 -v -0.125000 0.650000 0.142678 -v -0.125000 0.650000 0.098483 -v -0.098484 0.650000 0.125000 -v -0.151517 0.650000 0.125000 -v -0.125000 0.650000 0.151516 -v -0.110000 0.750000 0.083483 -v -0.083484 0.750000 0.110000 -v -0.110000 0.750000 0.136516 -v -0.136517 0.750000 0.110000 -v 0.125000 0.300000 0.107322 -v 0.125000 0.650000 0.107322 -v 0.142678 0.300000 0.125000 -v 0.142677 0.650000 0.125000 -v 0.107322 0.300000 0.125000 -v 0.107322 0.650000 0.125000 -v 0.125000 0.300000 0.142678 -v 0.125000 0.650000 0.142678 -v 0.125000 0.650000 0.098484 -v 0.151516 0.650000 0.125000 -v 0.098483 0.650000 0.125000 -v 0.125000 0.650000 0.151517 -v 0.110000 0.750000 0.083484 -v 0.136516 0.750000 0.110000 -v 0.110000 0.750000 0.136517 -v 0.083483 0.750000 0.110000 -v 0.125000 0.300000 -0.142678 -v 0.125000 0.650000 -0.142678 -v 0.142678 0.300000 -0.125000 -v 0.142678 0.650000 -0.125000 -v 0.107322 0.300000 -0.125000 -v 0.107322 0.650000 -0.125000 -v 0.125000 0.300000 -0.107322 -v 0.125000 0.650000 -0.107322 -v 0.125000 0.650000 -0.151516 -v 0.151516 0.650000 -0.125000 -v 0.098483 0.650000 -0.125000 -v 0.125000 0.650000 -0.098483 -v 0.110000 0.750000 -0.136516 -v 0.136516 0.750000 -0.110000 -v 0.110000 0.750000 -0.083483 -v 0.083483 0.750000 -0.110000 -v -0.125000 0.300000 -0.142678 -v -0.125000 0.650000 -0.142678 -v -0.107322 0.300000 -0.125000 -v -0.107322 0.650000 -0.125000 -v -0.142678 0.300000 -0.125000 -v -0.142678 0.650000 -0.125000 -v -0.125000 0.300000 -0.107322 -v -0.125000 0.650000 -0.107322 -v -0.125000 0.650000 -0.151517 -v -0.098484 0.650000 -0.125000 -v -0.151517 0.650000 -0.125000 -v -0.125000 0.650000 -0.098484 -v -0.110000 0.750000 -0.136517 -v -0.083484 0.750000 -0.110000 -v -0.110000 0.750000 -0.083484 -v -0.136517 0.750000 -0.110000 -v -0.100000 0.200000 -0.075000 -v -0.100000 0.712500 -0.075000 -v -0.100000 0.200000 0.075000 -v -0.100000 0.712500 0.075000 -v -0.200000 0.200000 -0.075000 -v -0.200000 0.612500 -0.075000 -v -0.200000 0.200000 0.075000 -v -0.200000 0.612500 0.075000 -vt 0.420709 0.299122 -vt 0.353866 0.299122 -vt 0.353866 0.019654 -vt 0.554394 0.299122 -vt 0.487551 0.299122 -vt 0.487552 0.019654 -vt 0.287024 0.299122 -vt 0.220182 0.299122 -vt 0.220182 0.019654 -vt 0.153339 0.299122 -vt 0.153339 0.019654 -vt 0.420709 0.019654 -vt 0.086497 0.299123 -vt 0.019654 0.299123 -vt 0.019654 0.019654 -vt 0.287024 0.019654 -vt 0.086496 0.019654 -vt 0.186760 0.872253 -vt 0.103207 0.872253 -vt 0.103207 0.784919 -vt 0.019654 0.872253 -vt 0.019654 0.784919 -vt 0.688079 0.872253 -vt 0.604526 0.872253 -vt 0.604526 0.784919 -vt 0.520973 0.872253 -vt 0.520973 0.784919 -vt 0.437420 0.872253 -vt 0.437420 0.784919 -vt 0.353867 0.872253 -vt 0.353866 0.784919 -vt 0.408297 0.397511 -vt 0.610013 0.397511 -vt 0.610013 0.481064 -vt 0.270313 0.872253 -vt 0.186760 0.784919 -vt 0.270313 0.784919 -vt 0.362222 0.764747 -vt 0.429064 0.764747 -vt 0.345511 0.764747 -vt 0.195116 0.764747 -vt 0.261958 0.764747 -vt 0.178405 0.764747 -vt 0.028009 0.764747 -vt 0.094852 0.764747 -vt 0.679724 0.764747 -vt 0.688079 0.784919 -vt 0.529328 0.764747 -vt 0.596171 0.764747 -vt 0.512617 0.764747 -vt 0.719188 0.494732 -vt 0.719188 0.540145 -vt 0.649321 0.540145 -vt 0.649321 0.494732 -vt 0.649321 0.460149 -vt 0.719188 0.460149 -vt 0.649321 0.390282 -vt 0.719188 0.390282 -vt 0.649320 0.273112 -vt 0.719188 0.273111 -vt 0.649320 0.133377 -vt 0.719188 0.133377 -vt 0.920071 0.661756 -vt 0.920071 0.417221 -vt 0.937537 0.417221 -vt 0.902605 0.661756 -vt 0.902604 0.417221 -vt 0.885138 0.661756 -vt 0.885137 0.417221 -vt 0.867671 0.661756 -vt 0.867671 0.417221 -vt 0.529281 0.592250 -vt 0.533648 0.596617 -vt 0.507448 0.596617 -vt 0.433353 0.591439 -vt 0.450440 0.587814 -vt 0.455618 0.591180 -vt 0.504082 0.591439 -vt 0.481818 0.591180 -vt 0.477451 0.586813 -vt 0.429988 0.596616 -vt 0.455617 0.662601 -vt 0.533648 0.694239 -vt 0.507447 0.694239 -vt 0.507447 0.668038 -vt 0.481818 0.662601 -vt 0.533648 0.668039 -vt 0.793429 0.377913 -vt 0.793429 0.133377 -vt 0.810896 0.133377 -vt 0.775962 0.377913 -vt 0.775962 0.133377 -vt 0.758496 0.377913 -vt 0.758496 0.133377 -vt 0.810896 0.377913 -vt 0.828362 0.133377 -vt 0.808277 0.730813 -vt 0.811642 0.735990 -vt 0.786013 0.730554 -vt 0.833476 0.731624 -vt 0.837843 0.735990 -vt 0.781646 0.726187 -vt 0.759812 0.730554 -vt 0.754635 0.727188 -vt 0.734183 0.735990 -vt 0.837843 0.807412 -vt 0.837843 0.833613 -vt 0.811642 0.833613 -vt 0.786013 0.801975 -vt 0.759812 0.801975 -vt 0.811642 0.807412 -vt 0.885138 0.377913 -vt 0.885137 0.133377 -vt 0.902604 0.133377 -vt 0.867671 0.377913 -vt 0.867671 0.133377 -vt 0.920071 0.377913 -vt 0.920071 0.133377 -vt 0.937537 0.133377 -vt 0.902605 0.377913 -vt 0.781646 0.872920 -vt 0.786013 0.877287 -vt 0.759812 0.877287 -vt 0.791190 0.873922 -vt 0.808277 0.877546 -vt 0.811642 0.882724 -vt 0.737548 0.877546 -vt 0.754635 0.873922 -vt 0.833476 0.878357 -vt 0.837843 0.882724 -vt 0.811642 0.954146 -vt 0.786013 0.948709 -vt 0.811642 0.980346 -vt 0.837843 0.954146 -vt 0.734183 0.882724 -vt 0.759812 0.948709 -vt 0.758496 0.661756 -vt 0.758496 0.417221 -vt 0.775962 0.417221 -vt 0.810896 0.661756 -vt 0.810896 0.417221 -vt 0.828362 0.417221 -vt 0.793429 0.661756 -vt 0.793429 0.417221 -vt 0.775962 0.661756 -vt 0.594580 0.584079 -vt 0.611667 0.580455 -vt 0.616845 0.583820 -vt 0.621211 0.579453 -vt 0.638678 0.579453 -vt 0.643045 0.583820 -vt 0.690508 0.584890 -vt 0.694875 0.589257 -vt 0.668675 0.589257 -vt 0.648223 0.580455 -vt 0.665309 0.584079 -vt 0.643045 0.655242 -vt 0.616845 0.655242 -vt 0.668675 0.686879 -vt 0.668675 0.660679 -vt 0.694875 0.660679 -vt 0.591215 0.589257 -vt 0.264189 0.696500 -vt 0.264189 0.338430 -vt 0.368990 0.338430 -vt 0.194322 0.626632 -vt 0.194322 0.338430 -vt 0.089521 0.626632 -vt 0.089521 0.338430 -vt 0.019654 0.696499 -vt 0.019654 0.338430 -vt 0.194322 0.725439 -vt 0.089521 0.725439 -vt 0.554394 0.019654 -vt 0.550932 0.540146 -vt 0.467378 0.540146 -vt 0.408297 0.481064 -vt 0.467378 0.338430 -vt 0.550932 0.338430 -vt 0.278669 0.764747 -vt 0.111562 0.764747 -vt 0.612881 0.764747 -vt 0.445775 0.764747 -vt 0.937538 0.661756 -vt 0.511814 0.592250 -vt 0.486996 0.587814 -vt 0.459984 0.586813 -vt 0.429988 0.668038 -vt 0.828363 0.377913 -vt 0.791190 0.727188 -vt 0.816009 0.731624 -vt 0.764179 0.726187 -vt 0.737548 0.730813 -vt 0.734183 0.807412 -vt 0.937538 0.377913 -vt 0.764179 0.872920 -vt 0.816009 0.878357 -vt 0.837843 0.980346 -vt 0.734183 0.954146 -vt 0.828363 0.661756 -vt 0.673041 0.584890 -vt 0.694875 0.686879 -vt 0.591215 0.660679 -vt 0.368990 0.696500 -vn 0.382700 0.000000 -0.923900 -vn -0.923900 -0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 -0.000000 -0.923900 -vn -0.923900 -0.000000 0.382700 -vn 0.923900 0.000000 -0.382700 -vn -0.382700 -0.000000 0.923900 -vn -0.000000 1.000000 -0.000000 -vn 0.000000 -1.000000 -0.000000 -vn 0.707100 0.707100 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.894400 -0.447200 0.000000 -vn 0.707100 0.000000 -0.707100 -vn 0.707100 0.000000 0.707100 -vn -0.707100 -0.000000 0.707100 -vn -0.707100 -0.000000 -0.707100 -vn -0.691700 0.207500 0.691700 -vn 0.691700 -0.207500 -0.691700 -vn -0.691700 -0.207500 -0.691700 -vn 0.691700 0.207500 0.691700 -vn -0.691700 -0.207500 0.691700 -vn 0.691700 0.207500 -0.691700 -vn -0.691700 0.207500 -0.691700 -vn 0.691700 -0.207500 0.691700 -vn -0.000000 -0.000000 1.000000 -vn -1.000000 -0.000000 -0.000000 -vn 0.000000 0.000000 -1.000000 -vn -0.707100 0.707100 -0.000000 -s off -f 7/1/1 5/2/1 6/3/1 -f 11/4/2 9/5/2 10/6/2 -f 3/7/3 1/8/3 2/9/3 -f 1/8/4 15/10/4 16/11/4 -f 9/5/5 7/1/5 8/12/5 -f 13/13/6 11/14/6 12/15/6 -f 5/2/7 3/7/7 4/16/7 -f 15/10/8 13/13/8 14/17/8 -f 18/18/8 20/19/8 19/20/8 -f 20/19/6 22/21/6 21/22/6 -f 22/23/2 24/24/2 23/25/2 -f 24/24/5 26/26/5 25/27/5 -f 26/26/1 28/28/1 27/29/1 -f 28/28/7 30/30/7 29/31/7 -f 30/32/9 24/33/9 22/34/9 -f 32/35/4 18/18/4 17/36/4 -f 30/30/3 32/35/3 31/37/3 -f 3/38/10 5/39/10 27/29/10 -f 3/40/10 29/31/10 31/37/10 -f 15/41/10 1/42/10 31/37/10 -f 15/43/10 17/36/10 19/20/10 -f 11/44/10 13/45/10 19/20/10 -f 11/46/10 21/47/10 23/25/10 -f 7/48/10 9/49/10 23/25/10 -f 7/50/10 25/27/10 27/29/10 -f 35/51/9 34/52/9 36/53/9 -f 33/54/11 37/55/11 38/56/11 -f 39/57/12 40/58/12 38/56/12 -f 41/59/13 42/60/13 40/58/13 -f 43/61/12 44/62/12 42/60/12 -f 48/63/14 47/64/14 45/65/14 -f 52/66/15 51/67/15 47/64/15 -f 50/68/16 49/69/16 51/67/16 -f 46/70/17 45/71/17 49/69/17 -f 46/72/10 53/73/10 54/74/10 -f 46/75/10 50/76/10 55/77/10 -f 48/78/10 54/74/10 56/79/10 -f 52/80/10 56/79/10 55/77/10 -f 53/81/17 55/77/17 60/82/17 -f 60/83/9 59/84/9 58/85/9 -f 54/74/15 58/85/15 59/86/15 -f 56/79/18 59/86/18 60/82/18 -f 54/74/19 53/73/19 57/87/19 -f 64/88/14 63/89/14 61/90/14 -f 68/91/15 67/92/15 63/89/15 -f 66/93/16 65/94/16 67/92/16 -f 62/95/17 61/90/17 65/96/17 -f 62/97/10 69/98/10 70/99/10 -f 66/100/10 71/101/10 69/98/10 -f 64/102/10 70/99/10 72/103/10 -f 68/104/10 72/103/10 71/105/10 -f 69/98/20 71/101/20 76/106/20 -f 76/106/9 75/107/9 74/108/9 -f 70/99/21 74/109/21 75/110/21 -f 71/105/16 72/103/16 75/110/16 -f 69/98/14 73/111/14 74/109/14 -f 80/112/14 79/113/14 77/114/14 -f 84/115/15 83/116/15 79/113/15 -f 82/117/16 81/118/16 83/119/16 -f 78/120/17 77/114/17 81/118/17 -f 78/121/10 85/122/10 86/123/10 -f 78/124/10 82/125/10 87/126/10 -f 84/127/10 80/128/10 86/123/10 -f 84/129/10 88/130/10 87/126/10 -f 87/126/17 92/131/17 89/132/17 -f 89/133/9 92/131/9 91/134/9 -f 88/135/15 86/123/15 90/136/15 -f 88/130/22 91/134/22 92/131/22 -f 86/123/23 85/122/23 89/132/23 -f 96/137/14 95/138/14 93/139/14 -f 100/140/15 99/141/15 95/142/15 -f 98/143/16 97/144/16 99/141/16 -f 94/145/17 93/139/17 97/144/17 -f 96/146/10 94/147/10 101/148/10 -f 94/149/10 98/150/10 103/151/10 -f 96/152/10 102/153/10 104/154/10 -f 98/155/10 100/156/10 104/154/10 -f 103/151/24 108/157/24 105/158/24 -f 108/159/9 107/160/9 106/161/9 -f 102/153/25 106/161/25 107/160/25 -f 104/154/16 107/160/16 108/157/16 -f 102/162/14 101/148/14 105/158/14 -f 112/163/12 111/164/12 109/165/12 -f 116/166/26 115/167/26 111/164/26 -f 114/168/27 113/169/27 115/167/27 -f 114/168/28 110/170/28 109/171/28 -f 116/166/29 112/172/29 110/173/29 -f 8/12/1 7/1/1 6/3/1 -f 12/174/2 11/4/2 10/6/2 -f 4/16/3 3/7/3 2/9/3 -f 2/9/4 1/8/4 16/11/4 -f 10/6/5 9/5/5 8/12/5 -f 14/17/6 13/13/6 12/15/6 -f 6/3/7 5/2/7 4/16/7 -f 16/11/8 15/10/8 14/17/8 -f 17/36/8 18/18/8 19/20/8 -f 19/20/6 20/19/6 21/22/6 -f 21/47/2 22/23/2 23/25/2 -f 23/25/5 24/24/5 25/27/5 -f 25/27/1 26/26/1 27/29/1 -f 27/29/7 28/28/7 29/31/7 -f 22/34/9 20/175/9 30/32/9 -f 18/176/9 32/177/9 30/32/9 -f 30/32/9 28/178/9 26/179/9 -f 26/179/9 24/33/9 30/32/9 -f 20/175/9 18/176/9 30/32/9 -f 31/37/4 32/35/4 17/36/4 -f 29/31/3 30/30/3 31/37/3 -f 29/31/10 3/38/10 27/29/10 -f 1/180/10 3/40/10 31/37/10 -f 17/36/10 15/41/10 31/37/10 -f 13/181/10 15/43/10 19/20/10 -f 21/22/10 11/44/10 19/20/10 -f 9/182/10 11/46/10 23/25/10 -f 25/27/10 7/48/10 23/25/10 -f 5/183/10 7/50/10 27/29/10 -f 33/54/9 35/51/9 36/53/9 -f 35/51/11 33/54/11 38/56/11 -f 37/55/12 39/57/12 38/56/12 -f 39/57/13 41/59/13 40/58/13 -f 41/59/12 43/61/12 42/60/12 -f 46/184/14 48/63/14 45/65/14 -f 48/63/15 52/66/15 47/64/15 -f 52/66/16 50/68/16 51/67/16 -f 50/68/17 46/70/17 49/69/17 -f 48/185/10 46/72/10 54/74/10 -f 53/81/10 46/75/10 55/77/10 -f 52/186/10 48/78/10 56/79/10 -f 50/187/10 52/80/10 55/77/10 -f 57/188/17 53/81/17 60/82/17 -f 57/87/9 60/83/9 58/85/9 -f 56/79/15 54/74/15 59/86/15 -f 55/77/18 56/79/18 60/82/18 -f 58/85/19 54/74/19 57/87/19 -f 62/95/14 64/88/14 61/90/14 -f 64/88/15 68/91/15 63/89/15 -f 68/91/16 66/93/16 67/92/16 -f 66/189/17 62/95/17 65/96/17 -f 64/190/10 62/97/10 70/99/10 -f 62/191/10 66/100/10 69/98/10 -f 68/192/10 64/102/10 72/103/10 -f 66/193/10 68/104/10 71/105/10 -f 73/111/20 69/98/20 76/106/20 -f 73/111/9 76/106/9 74/108/9 -f 72/103/21 70/99/21 75/110/21 -f 76/194/16 71/105/16 75/110/16 -f 70/99/14 69/98/14 74/109/14 -f 78/120/14 80/112/14 77/114/14 -f 80/112/15 84/115/15 79/113/15 -f 84/195/16 82/117/16 83/119/16 -f 82/117/17 78/120/17 81/118/17 -f 80/196/10 78/121/10 86/123/10 -f 85/122/10 78/124/10 87/126/10 -f 88/135/10 84/127/10 86/123/10 -f 82/197/10 84/129/10 87/126/10 -f 85/122/17 87/126/17 89/132/17 -f 90/198/9 89/133/9 91/134/9 -f 91/199/15 88/135/15 90/136/15 -f 87/126/22 88/130/22 92/131/22 -f 90/136/23 86/123/23 89/132/23 -f 94/145/14 96/137/14 93/139/14 -f 96/200/15 100/140/15 95/142/15 -f 100/140/16 98/143/16 99/141/16 -f 98/143/17 94/145/17 97/144/17 -f 102/162/10 96/146/10 101/148/10 -f 101/148/10 94/149/10 103/151/10 -f 100/201/10 96/152/10 104/154/10 -f 103/151/10 98/155/10 104/154/10 -f 101/148/24 103/151/24 105/158/24 -f 105/202/9 108/159/9 106/161/9 -f 104/154/25 102/153/25 107/160/25 -f 103/151/16 104/154/16 108/157/16 -f 106/203/14 102/162/14 105/158/14 -f 110/204/12 112/163/12 109/165/12 -f 112/163/26 116/166/26 111/164/26 -f 116/166/27 114/168/27 115/167/27 -f 113/169/28 114/168/28 109/171/28 -f 114/168/29 116/166/29 110/173/29 diff --git a/src/main/resources/assets/hbm/models/selenium_engine_rotor.obj b/src/main/resources/assets/hbm/models/selenium_engine_rotor.obj deleted file mode 100644 index 7a4de9dad..000000000 --- a/src/main/resources/assets/hbm/models/selenium_engine_rotor.obj +++ /dev/null @@ -1,176 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'selenium_engine_rotor.blend' -# www.blender.org -o Cylinder.001_Cylinder.002 -v 0.000000 0.050000 -0.262500 -v 0.000000 0.050000 0.262500 -v -0.035355 -0.035355 -0.262500 -v -0.035355 -0.035355 0.262500 -v -0.050000 -0.000000 -0.262500 -v -0.050000 0.000000 0.262500 -v -0.035355 0.035355 -0.262500 -v -0.035355 0.035355 0.262500 -v 0.000000 0.150000 -0.262500 -v 0.000000 0.150000 0.262500 -v -0.106066 -0.106066 -0.262500 -v -0.106066 -0.106066 0.262500 -v -0.150000 -0.000000 -0.262500 -v -0.150000 0.000000 0.262500 -v -0.106066 0.106066 -0.262500 -v -0.106066 0.106066 0.262500 -v 0.035355 0.035355 0.325000 -v 0.000000 0.050000 0.325000 -v -0.035355 0.035355 0.325000 -v -0.050000 0.000000 0.325000 -v -0.035355 -0.035355 0.325000 -v -0.000000 -0.050000 0.325000 -v 0.035355 -0.035355 0.325000 -v 0.050000 0.000000 0.325000 -v 0.000000 0.050000 -0.325000 -v 0.035355 0.035355 -0.325000 -v 0.050000 -0.000000 -0.325000 -v 0.035355 -0.035355 -0.325000 -v -0.000000 -0.050000 -0.325000 -v -0.035355 -0.035355 -0.325000 -v -0.050000 -0.000000 -0.325000 -v -0.035355 0.035355 -0.325000 -vt 0.598952 0.123521 -vt 0.598952 0.565266 -vt 0.493775 0.565266 -vt 0.373026 0.565267 -vt 0.373025 0.123521 -vt 0.252276 0.565267 -vt 0.131527 0.565267 -vt 0.131527 0.123521 -vt 0.252276 0.123521 -vt 0.413275 0.662438 -vt 0.292526 0.662438 -vt 0.026349 0.123521 -vt 0.171777 0.662438 -vt 0.212026 0.026350 -vt 0.453525 0.026349 -vt 0.493774 0.123521 -vt 0.332775 0.026349 -vt 0.620400 0.895852 -vt 0.648861 0.827142 -vt 0.689111 0.924313 -vt 0.973650 0.520682 -vt 0.973650 0.573271 -vt 0.933400 0.573271 -vt 0.691901 0.573271 -vt 0.651650 0.573271 -vt 0.651650 0.520682 -vt 0.732151 0.573272 -vt 0.691901 0.520682 -vt 0.861451 0.925589 -vt 0.832990 0.897128 -vt 0.861450 0.828418 -vt 0.933400 0.520683 -vt 0.893150 0.026349 -vt 0.933401 0.078939 -vt 0.691902 0.026349 -vt 0.732152 0.026349 -vt 0.732152 0.078938 -vt 0.651652 0.026349 -vt 0.691902 0.078938 -vt 0.933401 0.026349 -vt 0.973651 0.026349 -vt 0.973651 0.078939 -vt 0.852901 0.573271 -vt 0.852901 0.026349 -vt 0.812651 0.573272 -vt 0.812651 0.026349 -vt 0.772402 0.573272 -vt 0.772402 0.026349 -vt 0.732151 0.520682 -vt 0.453525 0.662438 -vt 0.332776 0.662438 -vt 0.026349 0.565267 -vt 0.212027 0.662438 -vt 0.171776 0.026350 -vt 0.413275 0.026349 -vt 0.292525 0.026349 -vt 0.717572 0.855602 -vt 0.717572 0.895852 -vt 0.648861 0.924313 -vt 0.620400 0.855602 -vt 0.689111 0.827142 -vt 0.901700 0.828418 -vt 0.901700 0.925589 -vt 0.930161 0.856879 -vt 0.930161 0.897128 -vt 0.832990 0.856879 -vt 0.893151 0.573271 -vt 0.651652 0.078938 -vn 0.707100 -0.707100 0.000000 -vn -0.923900 -0.382700 0.000000 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 -0.000000 -vn 0.000000 0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.382700 0.923900 -0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -s off -f 3/1/1 4/2/1 12/3/1 -f 12/3/2 14/4/2 13/5/2 -f 16/6/3 10/7/3 9/8/3 -f 14/4/4 16/6/4 15/9/4 -f 6/10/5 14/4/5 12/3/5 -f 8/11/5 16/6/5 14/4/5 -f 1/12/6 9/8/6 10/7/6 -f 2/13/5 10/7/5 16/6/5 -f 7/14/7 15/9/7 9/8/7 -f 3/15/7 11/16/7 13/5/7 -f 5/17/7 13/5/7 15/9/7 -f 20/18/5 22/19/5 18/20/5 -f 8/21/3 19/22/3 18/23/3 -f 20/24/4 19/25/4 8/26/4 -f 21/27/2 20/24/2 6/28/2 -f 29/29/7 30/30/7 32/31/7 -f 2/32/8 26/33/8 1/34/8 -f 31/35/2 30/36/2 3/37/2 -f 32/38/4 31/35/4 5/39/4 -f 25/40/3 32/41/3 7/42/3 -f 24/43/9 27/44/9 26/33/9 -f 23/45/10 28/46/10 27/44/10 -f 22/47/11 29/48/11 28/46/11 -f 29/48/12 22/47/12 4/49/12 -f 11/16/1 3/1/1 12/3/1 -f 11/16/2 12/3/2 13/5/2 -f 15/9/3 16/6/3 9/8/3 -f 13/5/4 14/4/4 15/9/4 -f 4/50/5 6/10/5 12/3/5 -f 6/51/5 8/11/5 14/4/5 -f 2/52/6 1/12/6 10/7/6 -f 8/53/5 2/13/5 16/6/5 -f 1/54/7 7/14/7 9/8/7 -f 5/55/7 3/15/7 13/5/7 -f 7/56/7 5/17/7 15/9/7 -f 24/57/5 17/58/5 18/20/5 -f 18/20/5 19/59/5 20/18/5 -f 20/18/5 21/60/5 22/19/5 -f 22/19/5 23/61/5 24/57/5 -f 24/57/5 18/20/5 22/19/5 -f 2/32/3 8/21/3 18/23/3 -f 6/28/4 20/24/4 8/26/4 -f 4/49/2 21/27/2 6/28/2 -f 32/31/7 25/62/7 28/63/7 -f 26/64/7 27/65/7 28/63/7 -f 28/63/7 29/29/7 32/31/7 -f 30/30/7 31/66/7 32/31/7 -f 25/62/7 26/64/7 28/63/7 -f 25/40/8 1/34/8 26/33/8 -f 2/32/8 18/23/8 17/67/8 -f 17/67/8 26/33/8 2/32/8 -f 5/39/2 31/35/2 3/37/2 -f 7/68/4 32/38/4 5/39/4 -f 1/34/3 25/40/3 7/42/3 -f 17/67/9 24/43/9 26/33/9 -f 24/43/10 23/45/10 27/44/10 -f 23/45/11 22/47/11 28/46/11 -f 4/49/12 3/37/12 29/48/12 -f 30/36/12 29/48/12 3/37/12 -f 22/47/12 21/27/12 4/49/12 diff --git a/src/main/resources/assets/hbm/models/untitled.obj b/src/main/resources/assets/hbm/models/untitled.obj deleted file mode 100644 index d3483b770..000000000 --- a/src/main/resources/assets/hbm/models/untitled.obj +++ /dev/null @@ -1,887 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: '' -# www.blender.org -o Cube.001 -v 0.250000 0.250000 0.375000 -v 0.250000 0.250000 0.500000 -v 0.250000 0.750000 0.500000 -v 0.250000 0.750000 0.375000 -v -0.312500 0.062500 0.437500 -v -0.312500 0.875000 0.437500 -v -0.312500 0.875000 0.375000 -v -0.312500 0.062500 0.375000 -v -0.250000 0.750000 0.500000 -v -0.250000 0.250000 0.500000 -v -0.250000 0.250000 0.375000 -v -0.250000 0.750000 0.375000 -v 0.312500 0.062500 0.375000 -v 0.312500 0.875000 0.375000 -v 0.312500 0.875000 0.437500 -v 0.312500 0.062500 0.437500 -v 0.500000 0.250000 0.250000 -v 0.375000 0.250000 0.250000 -v 0.375000 0.750000 0.250000 -v 0.500000 0.750000 0.250000 -v 0.375000 0.750000 -0.250000 -v 0.375000 0.250000 -0.250000 -v 0.500000 0.250000 -0.250000 -v 0.500000 0.750000 -0.250000 -v 0.437500 0.875000 0.312500 -v 0.437500 0.875000 -0.312500 -v 0.375000 0.875000 -0.312500 -v 0.375000 0.875000 0.312500 -v 0.437500 0.062500 -0.312500 -v 0.375000 0.062500 -0.312500 -v 0.375000 0.062500 0.312500 -v 0.437500 0.062500 0.312500 -v -0.375000 0.250000 -0.250000 -v -0.375000 0.750000 -0.250000 -v -0.500000 0.750000 -0.250000 -v -0.500000 0.250000 -0.250000 -v -0.437500 0.875000 -0.312500 -v -0.437500 0.875000 0.312500 -v -0.375000 0.875000 0.312500 -v -0.375000 0.875000 -0.312500 -v -0.437500 0.062500 -0.312500 -v -0.375000 0.062500 -0.312500 -v -0.500000 0.250000 0.250000 -v -0.500000 0.750000 0.250000 -v -0.375000 0.750000 0.250000 -v -0.375000 0.250000 0.250000 -v -0.375000 0.062500 0.312500 -v -0.437500 0.062500 0.312500 -v 0.312500 0.062500 -0.437500 -v 0.312500 0.875000 -0.437500 -v 0.312500 0.875000 -0.375000 -v 0.312500 0.062500 -0.375000 -v -0.250000 0.250000 -0.500000 -v 0.250000 0.250000 -0.500000 -v 0.250000 0.750000 -0.500000 -v -0.250000 0.750000 -0.500000 -v 0.250000 0.750000 -0.375000 -v -0.250000 0.750000 -0.375000 -v 0.250000 0.250000 -0.375000 -v -0.250000 0.250000 -0.375000 -v -0.312500 0.062500 -0.375000 -v -0.312500 0.875000 -0.375000 -v -0.312500 0.875000 -0.437500 -v -0.312500 0.062500 -0.437500 -v 0.437500 0.937500 0.437500 -v -0.437500 0.937500 0.437500 -v 0.437500 0.937500 -0.437500 -v -0.437500 0.937500 -0.437500 -v 0.437500 0.062500 -0.437500 -v 0.437500 0.062500 0.437500 -v -0.437500 0.062500 0.437500 -v -0.437500 0.062500 -0.437500 -v -0.375000 0.937500 -0.375000 -v -0.375000 0.937500 0.375000 -v 0.375000 0.937500 -0.375000 -v 0.375000 0.937500 0.375000 -v 0.187500 0.937500 0.187500 -v -0.187500 0.937500 0.187500 -v -0.187500 1.000000 0.187500 -v 0.187500 1.000000 0.187500 -v -0.250000 0.937500 -0.250000 -v -0.250000 0.937500 0.250000 -v -0.375000 0.937500 0.250000 -v -0.375000 0.937500 -0.250000 -v -0.375000 1.000000 -0.375000 -v -0.375000 1.000000 -0.250000 -v -0.250000 0.937500 0.375000 -v -0.375000 1.000000 0.375000 -v -0.250000 1.000000 0.375000 -v 0.250000 0.937500 -0.250000 -v -0.250000 0.937500 -0.375000 -v 0.250000 0.937500 -0.375000 -v 0.375000 0.937500 0.250000 -v 0.375000 1.000000 0.375000 -v 0.375000 1.000000 0.250000 -v 0.250000 0.937500 0.250000 -v 0.250000 0.937500 0.375000 -v 0.375000 1.000000 -0.375000 -v 0.250000 1.000000 -0.375000 -v 0.375000 0.937500 -0.250000 -v 0.250000 1.000000 -0.250000 -v 0.375000 1.000000 -0.250000 -v -0.375000 1.000000 0.250000 -v -0.250000 1.000000 0.250000 -v -0.250000 1.000000 -0.375000 -v -0.250000 1.000000 -0.250000 -v 0.250000 1.000000 0.375000 -v 0.250000 1.000000 0.250000 -v -0.187500 0.937500 -0.187500 -v 0.187500 0.937500 -0.187500 -v -0.187500 1.000000 -0.187500 -v 0.187500 1.000000 -0.187500 -v -0.125000 1.000000 -0.125000 -v -0.125000 1.000000 0.125000 -v 0.125000 1.000000 -0.125000 -v 0.125000 1.000000 0.125000 -v -0.125000 1.937500 -0.125000 -v -0.125000 1.937500 0.125000 -v 0.125000 1.937500 0.125000 -v 0.125000 1.937500 -0.125000 -v -0.437500 1.875000 0.437500 -v 0.437500 1.875000 0.437500 -v 0.437500 1.687500 0.437500 -v -0.437500 1.687500 0.437500 -v -0.187500 1.875000 -0.187500 -v 0.187500 1.875000 -0.187500 -v 0.187500 1.937500 -0.187500 -v -0.187500 1.937500 -0.187500 -v 0.187500 1.875000 0.187500 -v 0.187500 1.937500 0.187500 -v -0.187500 1.875000 0.187500 -v -0.187500 1.937500 0.187500 -v 0.250000 1.625000 -0.250000 -v 0.250000 1.625000 0.250000 -v 0.375000 1.625000 0.375000 -v 0.375000 1.625000 -0.375000 -v 0.437500 1.875000 -0.437500 -v 0.437500 1.687500 -0.437500 -v -0.187500 1.687500 0.187500 -v 0.187500 1.687500 0.187500 -v 0.187500 1.750000 0.187500 -v -0.187500 1.750000 0.187500 -v -0.437500 1.687500 -0.437500 -v -0.437500 1.875000 -0.437500 -v -0.250000 1.625000 -0.250000 -v -0.375000 1.625000 -0.375000 -v -0.250000 1.625000 0.250000 -v -0.375000 1.625000 0.375000 -v -0.125000 1.687500 0.125000 -v 0.125000 1.687500 0.125000 -v -0.250000 1.937500 -0.250000 -v -0.250000 1.937500 0.250000 -v -0.375000 1.937500 0.375000 -v -0.375000 1.937500 -0.375000 -v 0.187500 1.687500 -0.187500 -v 0.187500 1.750000 -0.187500 -v 0.250000 1.937500 0.250000 -v 0.250000 1.937500 -0.250000 -v 0.375000 1.937500 -0.375000 -v 0.375000 1.937500 0.375000 -v -0.187500 1.687500 -0.187500 -v -0.187500 1.750000 -0.187500 -v 0.500000 0.062500 -0.500000 -v 0.500000 0.062500 0.500000 -v 0.500000 0.000000 0.500000 -v 0.500000 0.000000 -0.500000 -v -0.500000 0.062500 -0.500000 -v -0.500000 0.000000 -0.500000 -v -0.500000 0.062500 0.500000 -v -0.500000 0.000000 0.500000 -v -0.125000 1.875000 -0.125000 -v 0.125000 1.875000 -0.125000 -v 0.125000 1.875000 0.125000 -v -0.125000 1.875000 0.125000 -v -0.125000 1.687500 -0.125000 -v 0.125000 1.687500 -0.125000 -v 0.125000 0.250000 0.437500 -v 0.125000 0.250000 0.375000 -v 0.125000 0.062500 0.375000 -v 0.125000 0.062500 0.437500 -v 0.125000 0.250000 -0.375000 -v 0.125000 0.250000 -0.437500 -v 0.125000 0.062500 -0.437500 -v 0.125000 0.062500 -0.375000 -v -0.125000 0.250000 0.375000 -v -0.125000 0.250000 0.437500 -v -0.125000 0.062500 0.437500 -v -0.125000 0.062500 0.375000 -v -0.125000 0.250000 -0.437500 -v -0.125000 0.250000 -0.375000 -v -0.125000 0.062500 -0.375000 -v -0.125000 0.062500 -0.437500 -v -0.437500 0.250000 0.125000 -v -0.375000 0.250000 0.125000 -v -0.375000 0.062500 0.125000 -v -0.437500 0.062500 0.125000 -v 0.375000 0.250000 0.125000 -v 0.437500 0.250000 0.125000 -v 0.437500 0.062500 0.125000 -v 0.375000 0.062500 0.125000 -v -0.375000 0.250000 -0.125000 -v -0.437500 0.250000 -0.125000 -v -0.437500 0.062500 -0.125000 -v -0.375000 0.062500 -0.125000 -v 0.437500 0.250000 -0.125000 -v 0.375000 0.250000 -0.125000 -v 0.375000 0.062500 -0.125000 -v 0.437500 0.062500 -0.125000 -v -0.500000 0.062500 0.500000 -v 0.500000 0.062500 0.500000 -vt 0.375000 0.359375 -vt 0.375000 0.390625 -vt 0.250000 0.390625 -vt 0.250000 0.984375 -vt 0.250000 0.781250 -vt 0.234375 0.781250 -vt 0.500000 0.359375 -vt 0.125000 0.515625 -vt -0.000000 0.515625 -vt -0.000000 0.390625 -vt 0.406250 0.781250 -vt 0.390625 0.828125 -vt 0.406250 0.984375 -vt 0.265625 0.953125 -vt 0.265625 0.828125 -vt -0.000000 0.359375 -vt 0.125000 0.359375 -vt 0.125000 0.390625 -vt 0.421875 0.984375 -vt 0.421875 0.781250 -vt 0.250000 1.000000 -vt 0.500000 0.390625 -vt 0.625000 0.984375 -vt 0.468750 0.984375 -vt 0.468750 1.000000 -vt 0.625000 0.781250 -vt 0.640625 0.984375 -vt 0.484375 0.828125 -vt 0.468750 0.781250 -vt 0.484375 0.953125 -vt 0.609375 0.828125 -vt 0.453125 0.781250 -vt 0.031250 1.000000 -vt 0.187500 1.000000 -vt 0.187500 0.984375 -vt 0.015625 0.781250 -vt 0.015625 0.984375 -vt 0.031250 0.984375 -vt 0.031250 0.781250 -vt 0.187500 0.781250 -vt 0.171875 0.828125 -vt 0.046875 0.953125 -vt 0.046875 0.828125 -vt 0.203125 0.984375 -vt 0.250000 0.359375 -vt 0.671875 0.781250 -vt 0.671875 0.984375 -vt 0.687500 0.984375 -vt 0.687500 0.781250 -vt 0.843750 0.781250 -vt 0.828125 0.828125 -vt 0.843750 0.984375 -vt 0.703125 0.953125 -vt 0.703125 0.828125 -vt 0.687500 1.000000 -vt 0.843750 1.000000 -vt 0.859375 0.984375 -vt 0.218750 1.000000 -vt 0.437500 1.000000 -vt 0.656250 1.000000 -vt 0.000000 1.000000 -vt 0.656250 0.781250 -vt 0.437500 0.781250 -vt 0.218750 0.781250 -vt 0.875000 0.781250 -vt 0.000000 0.781250 -vt 0.468750 0.359375 -vt 0.453125 0.343750 -vt 0.250000 0.140625 -vt 0.265625 0.343750 -vt 0.468750 0.140625 -vt 0.453125 0.156250 -vt 0.265625 0.156250 -vt 0.781250 0.687500 -vt 0.875000 0.687500 -vt 0.875000 0.671875 -vt 0.296875 0.343750 -vt 0.421875 0.343750 -vt 0.421875 0.312500 -vt 0.781250 0.734375 -vt 0.750000 0.734375 -vt 0.750000 0.750000 -vt 0.781250 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.734375 -vt 0.265625 0.187500 -vt 0.265625 0.312500 -vt 0.296875 0.312500 -vt 0.718750 0.734375 -vt 0.718750 0.750000 -vt 0.453125 0.312500 -vt 0.453125 0.187500 -vt 0.421875 0.187500 -vt 0.687500 0.750000 -vt 0.421875 0.156250 -vt 0.296875 0.156250 -vt 0.296875 0.187500 -vt 0.718750 0.781250 -vt 0.750000 0.781250 -vt 0.796875 0.734375 -vt 0.765625 0.734375 -vt 0.765625 0.750000 -vt 0.406250 0.296875 -vt 0.312500 0.296875 -vt 0.406250 0.203125 -vt 0.312500 0.203125 -vt 0.781250 0.671875 -vt 0.687500 0.671875 -vt 0.687500 0.687500 -vt 0.593750 0.671875 -vt 0.500000 0.671875 -vt 0.500000 0.687500 -vt 0.593750 0.687500 -vt 0.593750 0.781250 -vt 0.671875 0.765625 -vt 0.609375 0.765625 -vt 0.671875 0.703125 -vt 0.609375 0.703125 -vt 0.062500 0.359375 -vt 0.125000 0.296875 -vt 0.359375 0.421875 -vt 0.140625 0.421875 -vt 0.140625 0.468750 -vt 0.000000 0.000000 -vt 0.984375 0.203125 -vt 0.796875 0.203125 -vt 0.828125 0.234375 -vt 0.125000 0.421875 -vt 0.125000 0.468750 -vt 0.343750 0.468750 -vt 0.359375 0.468750 -vt 0.984375 0.390625 -vt 0.953125 0.234375 -vt 0.796875 0.390625 -vt 0.828125 0.359375 -vt 0.187500 0.046875 -vt 0.187500 0.218750 -vt 0.125000 0.218750 -vt 0.578125 0.390625 -vt 0.765625 0.390625 -vt 0.734375 0.359375 -vt 0.953125 0.359375 -vt 0.765625 0.203125 -vt 0.578125 0.203125 -vt 0.609375 0.234375 -vt 0.734375 0.234375 -vt 0.609375 0.359375 -vt 0.562500 0.406250 -vt 0.562500 0.187500 -vt 0.781250 0.406250 -vt 0.781250 0.187500 -vt 0.796875 0.375000 -vt 0.984375 0.375000 -vt 1.000000 0.390625 -vt 1.000000 0.187500 -vt 0.625000 0.343750 -vt 0.718750 0.343750 -vt 0.625000 0.250000 -vt 0.984127 0.190476 -vt 0.984127 0.317460 -vt 1.000000 0.301587 -vt 0.843750 0.250000 -vt 0.843750 0.343750 -vt 0.937500 0.343750 -vt 0.937500 0.250000 -vt 0.500000 0.515625 -vt 0.500000 0.531250 -vt 0.750000 0.531250 -vt 0.750000 0.515625 -vt 1.000000 0.515625 -vt 0.250000 0.531250 -vt 0.000000 0.531250 -vt 0.250000 0.515625 -vt 0.125000 0.281250 -vt 0.062500 0.296875 -vt 0.187500 0.296875 -vt 0.062500 0.281250 -vt -0.000000 0.281250 -vt 0.250000 0.296875 -vt 0.250000 0.281250 -vt 0.187500 0.281250 -vt 0.250000 0.218750 -vt 0.062500 0.046875 -vt 0.062500 0.218750 -vt -0.000000 0.218750 -vt 0.125000 0.046875 -vt 0.250000 0.484375 -vt 0.265625 0.484375 -vt 0.265625 0.437500 -vt 0.203125 0.437500 -vt 0.203125 0.484375 -vt 0.218750 0.484375 -vt 0.171875 0.484375 -vt 0.187500 0.484375 -vt 0.187500 0.437500 -vt 0.140625 0.437500 -vt 0.125000 0.437500 -vt 0.125000 0.484375 -vt 0.234375 0.484375 -vt 0.234375 0.437500 -vt 0.171875 0.468750 -vt 0.187500 0.468750 -vt 0.187500 0.421875 -vt 0.140625 0.484375 -vt 0.156250 0.484375 -vt 0.156250 0.437500 -vt 0.171875 0.437500 -vt 0.093750 0.359375 -vt 0.093750 0.375000 -vt 0.031250 0.375000 -vt 0.296875 0.546875 -vt 0.343750 0.546875 -vt 0.343750 0.562500 -vt 0.406250 0.546875 -vt 0.406250 0.562500 -vt 0.453125 0.562500 -vt 0.265625 0.546875 -vt 0.265625 0.765625 -vt 0.296875 0.765625 -vt 0.343750 0.765625 -vt 0.343750 0.750000 -vt 0.406250 0.750000 -vt 0.406250 0.765625 -vt 0.453125 0.765625 -vt 0.265625 0.625000 -vt 0.281250 0.625000 -vt 0.281250 0.578125 -vt 0.265625 0.734375 -vt 0.265625 0.687500 -vt 0.281250 0.687500 -vt 0.468750 0.687500 -vt 0.484375 0.687500 -vt 0.484375 0.734375 -vt 0.484375 0.578125 -vt 0.484375 0.625000 -vt 0.468750 0.625000 -vt 0.484375 0.546875 -vt 0.500000 0.781250 -vt 0.484375 0.765625 -vt 0.234375 0.984375 -vt 0.390625 0.953125 -vt 0.406250 1.000000 -vt 0.625000 1.000000 -vt 0.640625 0.781250 -vt 0.609375 0.953125 -vt 0.453125 0.984375 -vt 0.171875 0.953125 -vt 0.203125 0.781250 -vt 0.828125 0.953125 -vt 0.859375 0.781250 -vt 0.875000 1.000000 -vt 0.687500 0.734375 -vt 0.796875 0.750000 -vt 0.343750 0.421875 -vt 0.781250 0.390625 -vt 1.000000 0.406250 -vt 0.718750 0.250000 -vt 1.000000 0.206349 -vt 1.000000 0.531250 -vt 0.000000 0.296875 -vt 0.250000 0.046875 -vt -0.000000 0.046875 -vt 0.250000 0.437500 -vt 0.218750 0.437500 -vt 0.171875 0.421875 -vt 0.031250 0.359375 -vt 0.296875 0.562500 -vt 0.453125 0.546875 -vt 0.296875 0.750000 -vt 0.453125 0.750000 -vt 0.265625 0.578125 -vt 0.281250 0.734375 -vt 0.468750 0.734375 -vt 0.468750 0.578125 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -0.000000 1.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.707100 -0.707100 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.000000 0.707100 0.707100 -vn 0.000000 -0.707100 -0.707100 -vn 0.707100 -0.707100 0.000000 -vn -0.707100 -0.707100 0.000000 -vn 0.000000 -0.707100 0.707100 -s 1 -f 4/1/1 3/2/1 2/3/1 -f 8/4/1 7/5/1 6/6/1 -f 12/7/2 11/1/2 10/2/2 -f 3/8/3 9/9/3 10/10/3 -f 8/5/3 13/11/3 1/12/3 -f 14/13/3 7/4/3 12/14/3 -f 7/4/3 8/5/3 11/15/3 -f 1/12/3 13/11/3 14/13/3 -f 4/16/4 12/17/4 9/18/4 -f 14/19/2 13/20/2 16/11/2 -f 7/13/5 14/4/5 15/21/5 -f 20/22/3 19/7/3 18/1/3 -f 24/3/6 23/18/6 22/17/6 -f 28/23/5 27/24/5 26/25/5 -f 27/26/3 30/23/3 29/27/3 -f 24/8/1 20/9/1 17/10/1 -f 19/16/4 20/10/4 24/18/4 -f 18/28/1 31/29/1 30/26/1 -f 27/23/1 28/24/1 19/30/1 -f 28/24/1 31/29/1 18/28/1 -f 22/31/1 30/26/1 27/23/1 -f 31/24/6 28/29/6 25/32/6 -f 36/10/6 35/18/6 34/17/6 -f 40/33/5 39/34/5 38/35/5 -f 42/36/3 40/37/3 37/38/3 -f 44/8/2 35/9/2 36/10/2 -f 45/1/4 34/7/4 35/22/4 -f 42/39/2 47/40/2 46/41/2 -f 39/35/2 40/38/2 34/42/2 -f 46/41/2 47/40/2 39/35/2 -f 40/38/2 42/39/2 33/43/2 -f 39/40/6 47/35/6 48/44/6 -f 43/18/3 46/17/3 45/45/3 -f 52/46/2 51/47/2 50/48/2 -f 56/8/6 55/9/6 54/10/6 -f 58/1/4 57/45/4 55/3/4 -f 55/22/1 57/7/1 59/1/1 -f 52/49/6 61/50/6 60/51/6 -f 62/52/6 51/48/6 57/53/6 -f 60/51/6 61/50/6 62/52/6 -f 51/48/6 52/49/6 59/54/6 -f 51/55/5 62/56/5 63/52/5 -f 53/2/2 60/1/2 58/7/2 -f 62/50/1 61/52/1 64/57/1 -f 66/58/3 6/4/3 15/13/3 -f 65/59/1 25/24/1 26/23/1 -f 67/60/6 50/48/6 63/52/6 -f 68/61/2 37/38/2 38/35/2 -f 50/48/6 67/60/6 69/62/6 -f 26/23/1 29/26/1 69/62/1 -f 15/13/3 16/11/3 70/63/3 -f 25/24/1 65/59/1 70/63/1 -f 38/35/2 48/40/2 71/64/2 -f 6/4/3 66/58/3 71/64/3 -f 63/52/6 64/50/6 72/65/6 -f 37/38/2 68/61/2 72/66/2 -f 68/45/4 66/67/4 74/68/4 -f 67/69/4 68/45/4 73/70/4 -f 66/67/4 65/71/4 76/72/4 -f 65/71/4 67/69/4 75/73/4 -f 80/74/3 79/75/3 78/76/3 -f 84/77/4 83/78/4 82/79/4 -f 86/80/2 85/81/2 73/82/2 -f 89/83/3 88/84/3 74/85/3 -f 92/86/4 91/87/4 81/88/4 -f 95/81/1 94/89/1 76/90/1 -f 87/91/4 97/92/4 96/93/4 -f 99/94/6 98/90/6 75/89/6 -f 93/95/4 100/96/4 90/97/4 -f 102/82/4 98/90/4 99/98/4 -f 98/81/1 102/89/1 100/90/1 -f 102/83/3 101/84/3 90/85/3 -f 101/80/2 99/81/2 92/82/2 -f 89/82/4 104/90/4 103/98/4 -f 88/80/2 103/81/2 83/82/2 -f 103/94/6 104/90/6 82/89/6 -f 104/81/1 89/89/1 87/90/1 -f 86/99/4 106/82/4 105/90/4 -f 105/81/1 106/89/1 81/90/1 -f 85/94/6 105/90/6 91/89/6 -f 106/83/3 86/84/3 84/85/3 -f 95/90/4 108/98/4 107/99/4 -f 107/80/2 108/81/2 96/82/2 -f 108/94/6 95/90/6 93/89/6 -f 94/100/3 107/101/3 97/102/3 -f 81/88/4 82/79/4 78/103/4 -f 90/97/4 81/88/4 109/104/4 -f 82/79/4 96/93/4 77/105/4 -f 96/93/4 90/97/4 110/106/4 -f 79/107/2 111/108/2 109/109/2 -f 112/110/1 80/111/1 77/112/1 -f 111/113/6 112/109/6 110/108/6 -f 111/114/4 79/49/4 114/115/4 -f 112/113/4 111/114/4 113/116/4 -f 79/49/4 80/109/4 116/117/4 -f 80/109/4 112/113/4 115/118/4 -f 118/119/4 119/17/4 120/120/4 -f 124/121/3 123/122/3 122/123/3 -f 128/124/6 127/124/6 126/124/6 -f 127/124/1 130/124/1 129/124/1 -f 130/124/3 132/124/3 131/124/3 -f 136/125/5 135/126/5 134/127/5 -f 122/128/1 123/129/1 138/130/1 -f 142/124/6 141/124/6 140/124/6 -f 144/131/2 143/121/2 124/122/2 -f 146/132/5 136/125/5 133/133/5 -f 135/126/5 148/134/5 147/135/5 -f 116/136/3 150/137/3 149/138/3 -f 154/139/4 153/140/4 152/141/4 -f 141/124/2 156/124/2 155/124/2 -f 148/134/5 146/132/5 145/142/5 -f 160/143/4 159/144/4 158/145/4 -f 153/140/4 160/143/4 157/146/4 -f 159/144/4 154/139/4 151/147/4 -f 137/148/7 144/149/7 154/144/7 -f 122/150/8 137/148/8 159/139/8 -f 144/149/9 121/151/9 153/143/9 -f 121/150/10 122/151/10 160/143/10 -f 156/124/3 162/124/3 161/124/3 -f 136/134/11 146/126/11 143/151/11 -f 135/152/12 136/153/12 138/154/12 -f 146/125/13 148/126/13 124/151/13 -f 148/132/14 135/125/14 123/155/14 -f 138/123/6 143/131/6 144/121/6 -f 158/145/10 151/147/10 125/156/10 -f 157/147/9 158/141/9 126/157/9 -f 151/146/8 152/145/8 131/158/8 -f 152/159/7 157/160/7 129/161/7 -f 132/124/2 128/124/2 125/124/2 -f 155/162/14 161/163/14 145/135/14 -f 140/164/13 155/163/13 133/135/13 -f 161/162/12 139/165/12 147/133/12 -f 139/165/11 140/164/11 134/142/11 -f 162/124/1 142/124/1 139/124/1 -f 164/166/1 165/167/1 166/168/1 -f 163/168/6 166/169/6 168/170/6 -f 169/166/3 170/167/3 165/171/3 -f 167/172/2 168/9/2 170/173/2 -f 165/172/5 170/66/5 168/5/5 -f 174/115/4 173/117/4 172/118/4 -f 120/174/6 172/120/6 171/175/6 -f 118/174/3 174/120/3 173/176/3 -f 117/175/2 171/177/2 174/178/2 -f 119/179/1 173/180/1 172/181/1 -f 173/117/4 174/115/4 131/49/4 -f 126/113/4 172/118/4 173/117/4 -f 125/114/4 171/116/4 172/118/4 -f 125/114/4 131/49/4 174/115/4 -f 161/49/5 155/109/5 176/117/5 -f 155/109/5 140/113/5 150/118/5 -f 139/114/5 161/49/5 175/115/5 -f 140/113/5 139/114/5 149/116/5 -f 115/136/1 176/137/1 150/182/1 -f 113/183/6 175/184/6 176/185/6 -f 114/186/2 149/138/2 175/184/2 -f 180/187/1 179/188/1 178/189/1 -f 181/190/1 184/191/1 183/192/1 -f 188/193/2 187/194/2 186/195/2 -f 192/196/2 191/197/2 190/198/2 -f 196/192/3 195/199/3 194/200/3 -f 200/201/3 199/202/3 198/203/3 -f 204/204/6 203/205/6 202/206/6 -f 208/187/6 207/188/6 206/189/6 -f 208/200/1 205/199/1 198/193/1 -f 183/204/6 192/191/6 189/190/6 -f 193/200/2 202/207/2 203/193/2 -f 186/207/3 187/193/3 180/199/3 -f 18/17/5 197/208/5 198/209/5 -f 22/16/5 23/10/5 205/210/5 -f 17/18/5 198/209/5 205/210/5 -f 59/17/5 181/208/5 182/209/5 -f 60/16/5 53/10/5 189/210/5 -f 54/18/5 182/209/5 189/210/5 -f 33/17/5 201/208/5 202/209/5 -f 46/16/5 43/10/5 193/210/5 -f 11/17/5 185/208/5 186/209/5 -f 1/16/5 2/10/5 177/210/5 -f 186/209/5 177/210/5 2/10/5 -f 202/209/5 193/210/5 43/10/5 -f 5/211/4 187/212/4 188/213/4 -f 179/214/4 180/215/4 16/216/4 -f 164/171/4 70/217/4 71/218/4 -f 41/219/4 203/220/4 204/221/4 -f 195/222/4 196/223/4 48/224/4 -f 191/225/4 192/226/4 64/227/4 -f 49/228/4 183/229/4 184/230/4 -f 207/231/4 208/232/4 29/233/4 -f 32/234/4 199/235/4 200/236/4 -f 163/167/4 69/237/4 70/217/4 -f 167/238/4 72/239/4 69/237/4 -f 169/5/4 71/218/4 72/239/4 -f 1/45/1 4/1/1 2/3/1 -f 5/240/1 8/4/1 6/6/1 -f 9/22/2 12/7/2 10/2/2 -f 2/18/3 3/8/3 10/10/3 -f 11/15/3 8/5/3 1/12/3 -f 4/241/3 14/13/3 12/14/3 -f 12/14/3 7/4/3 11/15/3 -f 4/241/3 1/12/3 14/13/3 -f 3/10/4 4/16/4 9/18/4 -f 15/13/2 14/19/2 16/11/2 -f 6/242/5 7/13/5 15/21/5 -f 17/2/3 20/22/3 18/1/3 -f 21/45/6 24/3/6 22/17/6 -f 25/243/5 28/23/5 26/25/5 -f 26/244/3 27/26/3 29/27/3 -f 23/18/1 24/8/1 17/10/1 -f 21/17/4 19/16/4 24/18/4 -f 22/31/1 18/28/1 30/26/1 -f 21/245/1 27/23/1 19/30/1 -f 19/30/1 28/24/1 18/28/1 -f 21/245/1 22/31/1 27/23/1 -f 32/246/6 31/24/6 25/32/6 -f 33/16/6 36/10/6 34/17/6 -f 37/38/5 40/33/5 38/35/5 -f 41/39/3 42/36/3 37/38/3 -f 43/18/2 44/8/2 36/10/2 -f 44/2/4 45/1/4 35/22/4 -f 33/43/2 42/39/2 46/41/2 -f 45/247/2 39/35/2 34/42/2 -f 45/247/2 46/41/2 39/35/2 -f 34/42/2 40/38/2 33/43/2 -f 38/248/6 39/40/6 48/44/6 -f 44/3/3 43/18/3 45/45/3 -f 49/49/2 52/46/2 50/48/2 -f 53/18/6 56/8/6 54/10/6 -f 56/2/4 58/1/4 55/3/4 -f 54/2/1 55/22/1 59/1/1 -f 59/54/6 52/49/6 60/51/6 -f 58/249/6 62/52/6 57/53/6 -f 58/249/6 60/51/6 62/52/6 -f 57/53/6 51/48/6 59/54/6 -f 50/48/5 51/55/5 63/52/5 -f 56/22/2 53/2/2 58/7/2 -f 63/250/1 62/50/1 64/57/1 -f 65/59/3 66/58/3 15/13/3 -f 67/60/1 65/59/1 26/23/1 -f 68/251/6 67/60/6 63/52/6 -f 66/58/2 68/61/2 38/35/2 -f 49/49/6 50/48/6 69/62/6 -f 67/60/1 26/23/1 69/62/1 -f 65/59/3 15/13/3 70/63/3 -f 32/29/1 25/24/1 70/63/1 -f 66/58/2 38/35/2 71/64/2 -f 5/5/3 6/4/3 71/64/3 -f 68/251/6 63/52/6 72/65/6 -f 41/39/2 37/38/2 72/66/2 -f 73/70/4 68/45/4 74/68/4 -f 75/73/4 67/69/4 73/70/4 -f 74/68/4 66/67/4 76/72/4 -f 76/72/4 65/71/4 75/73/4 -f 77/107/3 80/74/3 78/76/3 -f 81/88/4 84/77/4 82/79/4 -f 84/83/2 86/80/2 73/82/2 -f 87/80/3 89/83/3 74/85/3 -f 90/97/4 92/86/4 81/88/4 -f 93/82/1 95/81/1 76/90/1 -f 82/79/4 87/91/4 96/93/4 -f 92/252/6 99/94/6 75/89/6 -f 96/93/4 93/95/4 90/97/4 -f 101/99/4 102/82/4 99/98/4 -f 75/82/1 98/81/1 100/90/1 -f 100/80/3 102/83/3 90/85/3 -f 90/83/2 101/80/2 92/82/2 -f 88/99/4 89/82/4 103/98/4 -f 74/83/2 88/80/2 83/82/2 -f 83/252/6 103/94/6 82/89/6 -f 82/82/1 104/81/1 87/90/1 -f 85/98/4 86/99/4 105/90/4 -f 91/82/1 105/81/1 81/90/1 -f 73/252/6 85/94/6 91/89/6 -f 81/80/3 106/83/3 84/85/3 -f 94/82/4 95/90/4 107/99/4 -f 97/83/2 107/80/2 96/82/2 -f 96/252/6 108/94/6 93/89/6 -f 76/253/3 94/100/3 97/102/3 -f 109/104/4 81/88/4 78/103/4 -f 110/106/4 90/97/4 109/104/4 -f 78/103/4 82/79/4 77/105/4 -f 77/105/4 96/93/4 110/106/4 -f 78/74/2 79/107/2 109/109/2 -f 110/113/1 112/110/1 77/112/1 -f 109/110/6 111/113/6 110/108/6 -f 113/116/4 111/114/4 114/115/4 -f 115/118/4 112/113/4 113/116/4 -f 114/115/4 79/49/4 116/117/4 -f 116/117/4 80/109/4 115/118/4 -f 117/175/4 118/119/4 120/120/4 -f 121/131/3 124/121/3 122/123/3 -f 125/124/6 128/124/6 126/124/6 -f 126/124/1 127/124/1 129/124/1 -f 129/124/3 130/124/3 131/124/3 -f 133/133/5 136/125/5 134/127/5 -f 137/254/1 122/128/1 138/130/1 -f 139/124/6 142/124/6 140/124/6 -f 121/123/2 144/131/2 124/122/2 -f 145/142/5 146/132/5 133/133/5 -f 134/127/5 135/126/5 147/135/5 -f 114/186/3 116/136/3 149/138/3 -f 151/147/4 154/139/4 152/141/4 -f 140/124/2 141/124/2 155/124/2 -f 147/135/5 148/134/5 145/142/5 -f 157/146/4 160/143/4 158/145/4 -f 152/141/4 153/140/4 157/146/4 -f 158/145/4 159/144/4 151/147/4 -f 159/139/7 137/148/7 154/144/7 -f 160/140/8 122/150/8 159/139/8 -f 154/144/9 144/149/9 153/143/9 -f 153/140/10 121/150/10 160/143/10 -f 155/124/3 156/124/3 161/124/3 -f 138/150/11 136/134/11 143/151/11 -f 123/255/12 135/152/12 138/154/12 -f 143/155/13 146/125/13 124/151/13 -f 124/256/14 148/132/14 123/155/14 -f 137/122/6 138/123/6 144/121/6 -f 126/158/10 158/145/10 125/156/10 -f 129/156/9 157/147/9 126/157/9 -f 125/257/8 151/146/8 131/158/8 -f 131/258/7 152/159/7 129/161/7 -f 131/124/2 132/124/2 125/124/2 -f 133/127/14 155/162/14 145/135/14 -f 134/142/13 140/164/13 133/135/13 -f 145/127/12 161/162/12 147/133/12 -f 147/133/11 139/165/11 134/142/11 -f 161/124/1 162/124/1 139/124/1 -f 163/169/1 164/166/1 166/168/1 -f 167/259/6 163/168/6 168/170/6 -f 164/173/3 169/166/3 165/171/3 -f 169/171/2 167/172/2 170/173/2 -f 166/171/5 165/172/5 168/5/5 -f 171/116/4 174/115/4 172/118/4 -f 117/177/6 120/174/6 171/175/6 -f 119/181/3 118/174/3 173/176/3 -f 118/260/2 117/175/2 174/178/2 -f 120/176/1 119/179/1 172/181/1 -f 129/109/4 173/117/4 131/49/4 -f 129/109/4 126/113/4 173/117/4 -f 126/113/4 125/114/4 172/118/4 -f 171/116/4 125/114/4 174/115/4 -f 175/115/5 161/49/5 176/117/5 -f 176/117/5 155/109/5 150/118/5 -f 149/116/5 139/114/5 175/115/5 -f 150/118/5 140/113/5 149/116/5 -f 116/261/1 115/136/1 150/182/1 -f 115/262/6 113/183/6 176/185/6 -f 113/183/2 114/186/2 175/184/2 -f 177/263/1 180/187/1 178/189/1 -f 182/264/1 181/190/1 183/192/1 -f 185/207/2 188/193/2 186/195/2 -f 189/204/2 192/196/2 190/198/2 -f 193/264/3 196/192/3 194/200/3 -f 197/265/3 200/201/3 198/203/3 -f 201/196/6 204/204/6 202/206/6 -f 205/263/6 208/187/6 206/189/6 -f 199/207/1 208/200/1 198/193/1 -f 182/196/6 183/204/6 189/190/6 -f 196/199/2 193/200/2 203/193/2 -f 177/200/3 186/207/3 180/199/3 -f 17/18/5 18/17/5 198/209/5 -f 206/266/5 22/16/5 205/210/5 -f 23/10/5 17/18/5 205/210/5 -f 54/18/5 59/17/5 182/209/5 -f 190/266/5 60/16/5 189/210/5 -f 53/10/5 54/18/5 189/210/5 -f 36/18/5 33/17/5 202/209/5 -f 194/266/5 46/16/5 193/210/5 -f 10/18/5 11/17/5 186/209/5 -f 178/266/5 1/16/5 177/210/5 -f 10/18/5 186/209/5 2/10/5 -f 36/18/5 202/209/5 43/10/5 -f 8/267/4 5/211/4 188/213/4 -f 13/268/4 179/214/4 16/216/4 -f 169/5/4 164/171/4 71/218/4 -f 42/269/4 41/219/4 204/221/4 -f 47/270/4 195/222/4 48/224/4 -f 61/271/4 191/225/4 64/227/4 -f 52/272/4 49/228/4 184/230/4 -f 30/273/4 207/231/4 29/233/4 -f 31/274/4 32/234/4 200/236/4 -f 164/171/4 163/167/4 70/217/4 -f 163/167/4 167/238/4 69/237/4 -f 167/238/4 169/5/4 72/239/4 -l 210 163 -l 209 210 -l 167 209 diff --git a/src/main/resources/assets/hbm/models/vault_frame_old.obj b/src/main/resources/assets/hbm/models/vault_frame_old.obj deleted file mode 100644 index ee5a5df5a..000000000 --- a/src/main/resources/assets/hbm/models/vault_frame_old.obj +++ /dev/null @@ -1,1576 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'vault_frame.blend' -# www.blender.org -o Cylinder -v 0.500000 5.000000 2.500000 -v 0.500000 0.000000 2.500000 -v 0.500000 5.000000 -2.500000 -v 0.500000 0.000000 -2.500000 -v -0.500000 5.000000 2.500000 -v -0.500000 0.000000 2.500000 -v -0.500000 5.000000 -2.500000 -v -0.500000 0.000000 -2.500000 -v -0.500000 0.762429 0.308123 -v 0.500000 0.762428 0.308123 -v -0.500000 0.970886 0.880855 -v 0.500000 0.970886 0.880854 -v -0.500000 1.367000 1.352926 -v 0.500000 1.367000 1.352926 -v -0.500000 1.894833 1.657669 -v 0.500000 1.894833 1.657669 -v -0.500000 2.501716 1.764679 -v 0.500000 2.501716 1.764679 -v -0.500000 3.101944 1.658843 -v 0.500000 3.101944 1.658843 -v -0.500000 3.635628 1.350719 -v 0.500000 3.635628 1.350719 -v -0.500000 4.027399 0.883825 -v 0.500000 4.027399 0.883825 -v -0.500000 4.238168 0.304744 -v 0.500000 4.238167 0.304744 -v -0.500000 4.238167 -0.304744 -v 0.500000 4.238167 -0.304744 -v -0.500000 4.027398 -0.883825 -v 0.500000 4.027398 -0.883825 -v -0.500001 3.635627 -1.350720 -v 0.500000 3.635627 -1.350720 -v -0.500001 3.101943 -1.658842 -v 0.499999 3.101943 -1.658842 -v -0.500000 2.501716 -1.764678 -v 0.500000 2.501716 -1.764678 -v -0.500001 1.894833 -1.657669 -v 0.500000 1.894833 -1.657669 -v -0.500001 1.367002 -1.352925 -v 0.500000 1.367001 -1.352925 -v -0.500000 0.970887 -0.880855 -v 0.500000 0.970886 -0.880855 -v -0.500000 0.762429 -0.308124 -v 0.500000 0.762429 -0.308124 -v -0.500000 0.327325 0.574589 -v 0.500000 0.327325 0.574589 -v 0.500000 0.466296 0.956409 -v -0.500000 0.466297 0.956409 -v -0.500000 1.204973 1.836729 -v 0.500000 1.204973 1.836729 -v 0.500000 1.556861 2.039891 -v -0.500000 1.556861 2.039891 -v -0.500000 2.688578 2.239443 -v 0.500000 2.688578 2.239443 -v 0.500000 3.088730 2.168886 -v -0.500000 3.088730 2.168886 -v -0.500000 4.083945 1.594298 -v 0.500000 4.083945 1.594298 -v 0.500000 4.345126 1.283035 -v -0.500000 4.345126 1.283035 -v -0.500000 4.738167 0.203162 -v 0.500000 4.738167 0.203162 -v 0.500000 4.738167 -0.203163 -v -0.500000 4.738167 -0.203163 -v -0.500000 4.345125 -1.283035 -v 0.500000 4.345125 -1.283035 -v 0.500000 4.083944 -1.594298 -v -0.500001 4.083944 -1.594298 -v -0.500001 3.088729 -2.168885 -v 0.499999 3.088729 -2.168885 -v 0.500000 2.688578 -2.239443 -v -0.500001 2.688578 -2.239443 -v -0.500001 1.556861 -2.039891 -v 0.500000 1.556861 -2.039891 -v 0.500000 1.204973 -1.836729 -v -0.500001 1.204974 -1.836729 -v -0.500001 0.466298 -0.956410 -v 0.499999 0.466297 -0.956411 -v 0.499999 0.327326 -0.574590 -v -0.500001 0.327326 -0.574590 -v 0.750000 1.894833 1.657669 -v 0.750000 2.501716 1.764679 -v 0.750000 0.970886 0.880854 -v 0.750000 1.367000 1.352926 -v 0.750000 0.762428 0.308123 -v 0.750000 0.762429 -0.308124 -v 0.750000 1.367001 -1.352925 -v 0.750000 0.970886 -0.880855 -v 0.750000 4.027399 0.883825 -v 0.750000 4.238167 0.304744 -v 0.750000 3.101944 1.658843 -v 0.750000 3.635628 1.350719 -v 0.750000 2.501716 -1.764678 -v 0.750000 1.894833 -1.657669 -v 0.750000 3.635627 -1.350720 -v 0.749999 3.101943 -1.658842 -v 0.750000 4.238167 -0.304744 -v 0.750000 4.027398 -0.883825 -v 0.562500 0.327325 0.574589 -v 0.562500 0.466296 0.956409 -v 0.562500 1.204973 1.836729 -v 0.562500 1.556861 2.039891 -v 0.562500 2.688578 2.239443 -v 0.562500 3.088730 2.168886 -v 0.562500 4.083945 1.594298 -v 0.562500 4.345126 1.283035 -v 0.562500 4.738167 0.203162 -v 0.562500 4.738167 -0.203163 -v 0.562500 4.345125 -1.283035 -v 0.562500 4.083944 -1.594298 -v 0.562499 3.088729 -2.168885 -v 0.562500 2.688578 -2.239443 -v 0.562500 1.556861 -2.039891 -v 0.562500 1.204973 -1.836729 -v 0.562499 0.466297 -0.956411 -v 0.562499 0.327326 -0.574590 -v 0.750000 1.947966 1.711219 -v 0.750000 2.433472 1.796827 -v 0.750000 0.977166 0.956029 -v 0.750000 1.294058 1.333687 -v 0.750000 0.718918 0.246499 -v 0.750000 0.718919 -0.246500 -v 0.750000 1.294059 -1.333686 -v 0.750000 0.977167 -0.956030 -v 0.750000 4.089362 0.840798 -v 0.750000 4.257977 0.377533 -v 0.750000 3.177068 1.665711 -v 0.750000 3.604014 1.419213 -v 0.750000 2.433472 -1.796827 -v 0.750000 1.947966 -1.711219 -v 0.750000 3.604013 -1.419213 -v 0.749999 3.177067 -1.665711 -v 0.750000 4.257977 -0.377534 -v 0.750000 4.089361 -0.840798 -v 0.562500 0.370835 0.459671 -v 0.562500 0.573495 1.016473 -v 0.562500 1.164436 1.720729 -v 0.562500 1.677588 2.016997 -v 0.562500 2.582962 2.176639 -v 0.562500 3.166496 2.073746 -v 0.562500 3.962668 1.614075 -v 0.562500 4.343544 1.160166 -v 0.562500 4.657976 0.296268 -v 0.562500 4.657976 -0.296269 -v 0.562500 4.343543 -1.160166 -v 0.562500 3.962667 -1.614076 -v 0.562499 3.166496 -2.073745 -v 0.562500 2.582962 -2.176638 -v 0.562500 1.677588 -2.016997 -v 0.562500 1.164437 -1.720729 -v 0.562499 0.573496 -1.016474 -v 0.562500 0.370836 -0.459672 -v 0.625000 1.947966 1.711219 -v 0.625000 2.433472 1.796827 -v 0.625000 0.977166 0.956029 -v 0.625000 1.294058 1.333687 -v 0.625000 0.718918 0.246499 -v 0.625000 0.718919 -0.246500 -v 0.625000 1.294059 -1.333686 -v 0.625000 0.977167 -0.956030 -v 0.625000 4.089362 0.840798 -v 0.625000 4.257977 0.377533 -v 0.625000 3.177068 1.665711 -v 0.625000 3.604014 1.419213 -v 0.625000 2.433472 -1.796827 -v 0.625000 1.947966 -1.711219 -v 0.625000 3.604013 -1.419213 -v 0.624999 3.177067 -1.665711 -v 0.625000 4.257977 -0.377534 -v 0.625000 4.089361 -0.840798 -v 0.625000 0.370835 0.459671 -v 0.625000 0.573495 1.016473 -v 0.625000 1.164436 1.720729 -v 0.625000 1.677588 2.016997 -v 0.625000 2.582962 2.176639 -v 0.625000 3.166496 2.073746 -v 0.625000 3.962668 1.614075 -v 0.625000 4.343544 1.160166 -v 0.625000 4.657976 0.296268 -v 0.625000 4.657976 -0.296269 -v 0.625000 4.343543 -1.160166 -v 0.625000 3.962667 -1.614076 -v 0.624999 3.166496 -2.073745 -v 0.625000 2.582962 -2.176638 -v 0.625000 1.677588 -2.016997 -v 0.625000 1.164437 -1.720729 -v 0.624999 0.573496 -1.016474 -v 0.625000 0.370836 -0.459672 -v 0.750000 2.045067 1.728341 -v 0.750000 2.142168 1.745462 -v 0.750000 2.239269 1.762584 -v 0.750000 2.336371 1.779706 -v 0.750000 1.040545 1.031561 -v 0.750000 1.103923 1.107092 -v 0.750000 1.167301 1.182624 -v 0.750000 1.230680 1.258155 -v 0.750000 0.718918 0.147899 -v 0.750000 0.718918 0.049299 -v 0.750000 0.718918 -0.049300 -v 0.750000 0.718918 -0.147900 -v 0.750000 1.230681 -1.258155 -v 0.750000 1.167302 -1.182624 -v 0.750000 1.103924 -1.107092 -v 0.750000 1.040545 -1.031561 -v 0.750000 4.123085 0.748145 -v 0.750000 4.156808 0.655492 -v 0.750000 4.190531 0.562839 -v 0.750000 4.224254 0.470186 -v 0.750000 3.262457 1.616412 -v 0.750000 3.347846 1.567112 -v 0.750000 3.433236 1.517812 -v 0.750000 3.518625 1.468513 -v 0.750000 2.336371 -1.779705 -v 0.750000 2.239269 -1.762584 -v 0.750000 2.142168 -1.745462 -v 0.750000 2.045067 -1.728341 -v 0.750000 3.518624 -1.468513 -v 0.749999 3.433235 -1.517812 -v 0.749999 3.347846 -1.567112 -v 0.749999 3.262456 -1.616411 -v 0.750000 4.224254 -0.470187 -v 0.750000 4.190530 -0.562840 -v 0.750000 4.156807 -0.655493 -v 0.750000 4.123084 -0.748146 -v 0.625000 2.045067 1.728341 -v 0.625000 2.142168 1.745462 -v 0.625000 2.239269 1.762584 -v 0.625000 2.336371 1.779706 -v 0.625000 1.040545 1.031561 -v 0.625000 1.103923 1.107092 -v 0.625000 1.167301 1.182624 -v 0.625000 1.230680 1.258155 -v 0.625000 0.718918 0.147899 -v 0.625000 0.718918 0.049299 -v 0.625000 0.718918 -0.049300 -v 0.625000 0.718918 -0.147900 -v 0.625000 1.230681 -1.258155 -v 0.625000 1.167302 -1.182624 -v 0.625000 1.103924 -1.107092 -v 0.625000 1.040545 -1.031561 -v 0.625000 4.123085 0.748145 -v 0.625000 4.156808 0.655492 -v 0.625000 4.190531 0.562839 -v 0.625000 4.224254 0.470186 -v 0.625000 3.262457 1.616412 -v 0.625000 3.347846 1.567112 -v 0.625000 3.433236 1.517812 -v 0.625000 3.518625 1.468513 -v 0.625000 2.336371 -1.779705 -v 0.625000 2.239269 -1.762584 -v 0.625000 2.142168 -1.745462 -v 0.625000 2.045067 -1.728341 -v 0.625000 3.518624 -1.468513 -v 0.624999 3.433235 -1.517812 -v 0.624999 3.347846 -1.567112 -v 0.624999 3.262456 -1.616411 -v 0.625000 4.224254 -0.470187 -v 0.625000 4.190530 -0.562840 -v 0.625000 4.156807 -0.655493 -v 0.625000 4.123084 -0.748146 -v 0.625000 4.553145 -0.589894 -v 0.625000 4.519423 -0.682547 -v 0.562500 4.519423 -0.682547 -v 0.562500 4.553145 -0.589894 -v 0.625000 4.485700 -0.775200 -v 0.625000 4.451977 -0.867853 -v 0.562500 4.451977 -0.867853 -v 0.562500 4.485700 -0.775200 -v 0.625000 3.693624 -1.771622 -v 0.624999 3.608234 -1.820921 -v 0.562499 3.608234 -1.820921 -v 0.562500 3.693624 -1.771622 -v 0.624999 3.522846 -1.870220 -v 0.624999 3.437456 -1.919520 -v 0.562499 3.437456 -1.919520 -v 0.562499 3.522846 -1.870220 -v 0.625000 2.275594 -2.124388 -v 0.625000 2.178493 -2.107266 -v 0.562500 2.178493 -2.107266 -v 0.562500 2.275594 -2.124388 -v 0.625000 2.081392 -2.090145 -v 0.625000 1.984291 -2.073024 -v 0.562500 1.984291 -2.073024 -v 0.562500 2.081392 -2.090145 -v 0.625000 3.437457 1.919520 -v 0.625000 3.522846 1.870221 -v 0.562500 3.522846 1.870221 -v 0.562500 3.437457 1.919520 -v 0.625000 3.608236 1.820921 -v 0.625000 3.693625 1.771621 -v 0.562500 3.693625 1.771621 -v 0.562500 3.608236 1.820921 -v 0.625000 4.451978 0.867852 -v 0.625000 4.485701 0.775199 -v 0.562500 4.485701 0.775199 -v 0.562500 4.451978 0.867852 -v 0.625000 4.519423 0.682546 -v 0.625000 4.553146 0.589893 -v 0.562500 4.553146 0.589893 -v 0.562500 4.519423 0.682546 -v 0.625000 0.962565 -1.483131 -v 0.625000 0.899187 -1.407600 -v 0.562500 0.899187 -1.407600 -v 0.562500 0.962565 -1.483131 -v 0.625000 0.835809 -1.332069 -v 0.625000 0.772430 -1.256537 -v 0.562500 0.772430 -1.256537 -v 0.562500 0.835809 -1.332069 -v 0.625000 0.368918 -0.147900 -v 0.625000 0.368918 -0.049301 -v 0.562500 0.368918 -0.049301 -v 0.562500 0.368918 -0.147900 -v 0.625000 0.368918 0.049299 -v 0.625000 0.368918 0.147898 -v 0.562500 0.368918 0.147898 -v 0.562500 0.368918 0.049299 -v 0.625000 0.772429 1.256536 -v 0.625000 0.835807 1.332068 -v 0.562500 0.835807 1.332068 -v 0.562500 0.772429 1.256536 -v 0.625000 0.899186 1.407599 -v 0.625000 0.962564 1.483131 -v 0.562500 0.962564 1.483131 -v 0.562500 0.899186 1.407599 -v 0.625000 1.984290 2.073024 -v 0.625000 2.081391 2.090145 -v 0.562500 2.081391 2.090145 -v 0.562500 1.984290 2.073024 -v 0.625000 2.178493 2.107267 -v 0.625000 2.275594 2.124388 -v 0.562500 2.275594 2.124388 -v 0.562500 2.178493 2.107267 -vt 0.674495 0.301724 -vt 0.744051 0.301724 -vt 0.744051 0.344587 -vt 0.634294 0.063011 -vt 0.564738 0.062987 -vt 0.564753 0.020124 -vt 0.616871 0.301724 -vt 0.616871 0.344588 -vt 0.547315 0.344588 -vt 0.590179 0.454379 -vt 0.547315 0.454379 -vt 0.547315 0.384823 -vt 0.585249 0.674595 -vt 0.628113 0.674595 -vt 0.628113 0.744151 -vt 0.761489 0.020118 -vt 0.761489 0.062981 -vt 0.691933 0.062981 -vt 0.586800 0.548190 -vt 0.629663 0.548190 -vt 0.629663 0.617746 -vt 0.451201 0.674595 -vt 0.451201 0.744151 -vt 0.408338 0.744151 -vt 0.451201 0.547415 -vt 0.451201 0.616971 -vt 0.408338 0.616971 -vt 0.547315 0.237973 -vt 0.616871 0.237973 -vt 0.616871 0.266236 -vt 0.547315 0.301724 -vt 0.547315 0.266236 -vt 0.616871 0.202485 -vt 0.634272 0.126762 -vt 0.564716 0.126738 -vt 0.564726 0.098475 -vt 0.634282 0.098499 -vt 0.634260 0.162250 -vt 0.564704 0.162226 -vt 0.674495 0.266236 -vt 0.674495 0.237973 -vt 0.744051 0.237973 -vt 0.744051 0.266236 -vt 0.744051 0.202485 -vt 0.761489 0.126732 -vt 0.691933 0.126732 -vt 0.691933 0.098469 -vt 0.761489 0.098469 -vt 0.691933 0.162220 -vt 0.663601 0.674595 -vt 0.691863 0.674595 -vt 0.691863 0.744151 -vt 0.663601 0.744151 -vt 0.727352 0.744151 -vt 0.486689 0.547415 -vt 0.514952 0.547415 -vt 0.514952 0.616971 -vt 0.486689 0.616971 -vt 0.550440 0.547415 -vt 0.550440 0.616971 -vt 0.514952 0.674595 -vt 0.514952 0.744151 -vt 0.486689 0.744151 -vt 0.486689 0.674595 -vt 0.550440 0.744151 -vt 0.693414 0.548190 -vt 0.693414 0.617746 -vt 0.665151 0.617746 -vt 0.665151 0.548190 -vt 0.728902 0.617746 -vt 0.625667 0.384823 -vt 0.653929 0.384823 -vt 0.653929 0.454379 -vt 0.590179 0.384823 -vt 0.625667 0.454379 -vt 0.689417 0.384823 -vt 0.689418 0.454379 -vt 0.249545 0.419394 -vt 0.278078 0.419377 -vt 0.437273 0.437603 -vt 0.107759 0.276798 -vt 0.112671 0.304627 -vt 0.089639 0.437603 -vt 0.174332 0.392033 -vt 0.152666 0.373861 -vt 0.352849 0.392119 -vt 0.374458 0.373974 -vt 0.414381 0.304802 -vt 0.761440 0.301724 -vt 0.486689 0.621318 -vt 0.674544 0.162220 -vt 0.687586 0.126732 -vt 0.689418 0.471767 -vt 0.653929 0.458726 -vt 0.089637 0.089759 -vt 0.419307 0.276979 -vt 0.437594 0.089923 -vt 0.687586 0.098469 -vt 0.625667 0.458726 -vt 0.547315 0.162220 -vt 0.560369 0.126736 -vt 0.585249 0.744151 -vt 0.628113 0.761540 -vt 0.550440 0.761540 -vt 0.514952 0.748498 -vt 0.121648 0.198105 -vt 0.135789 0.173628 -vt 0.197051 0.122258 -vt 0.223619 0.112599 -vt 0.405488 0.198235 -vt 0.391371 0.173744 -vt 0.330152 0.122319 -vt 0.303590 0.112636 -vt 0.154148 0.570166 -vt 0.234094 0.570183 -vt 0.215552 0.600446 -vt 0.132836 0.614938 -vt 0.099994 0.642495 -vt 0.066333 0.631220 -vt 0.078794 0.679218 -vt 0.071352 0.721439 -vt 0.038321 0.734443 -vt 0.020167 0.547365 -vt 0.368053 0.547438 -vt 0.127581 0.579832 -vt 0.052198 0.655705 -vt 0.020208 0.895350 -vt 0.043237 0.762285 -vt 0.083229 0.831507 -vt 0.100160 0.800306 -vt 0.104901 0.849667 -vt 0.132656 0.827534 -vt 0.172952 0.842159 -vt 0.180000 0.876995 -vt 0.208515 0.876943 -vt 0.215478 0.842107 -vt 0.367883 0.895009 -vt 0.255674 0.827470 -vt 0.283397 0.849534 -vt 0.305016 0.831395 -vt 0.344940 0.762245 -vt 0.309503 0.763161 -vt 0.349853 0.734435 -vt 0.260653 0.579856 -vt 0.288222 0.642514 -vt 0.255390 0.614954 -vt 0.316853 0.721441 -vt 0.309411 0.679233 -vt 0.336003 0.655732 -vt 0.321878 0.631251 -vt 0.020071 0.437604 -vt 0.437273 0.507130 -vt 0.089640 0.507130 -vt 0.507130 0.089988 -vt 0.506809 0.437667 -vt 0.089670 0.020167 -vt 0.437627 0.020332 -vt 0.788301 0.887799 -vt 0.792587 0.890825 -vt 0.776111 0.917371 -vt 0.728604 0.806122 -vt 0.720610 0.809148 -vt 0.656665 0.809148 -vt 0.750092 0.501493 -vt 0.729653 0.469684 -vt 0.737902 0.471921 -vt 0.773013 0.672556 -vt 0.781006 0.669530 -vt 0.844951 0.669530 -vt 0.792956 0.501493 -vt 0.788669 0.498466 -vt 0.805145 0.471921 -vt 0.768839 0.842054 -vt 0.776832 0.839028 -vt 0.840778 0.839028 -vt 0.621218 0.266236 -vt 0.674544 0.062981 -vt 0.674544 0.020118 -vt 0.550440 0.634360 -vt 0.514952 0.621318 -vt 0.547350 0.062981 -vt 0.547364 0.020118 -vt 0.634260 0.202485 -vt 0.621218 0.237973 -vt 0.629663 0.635135 -vt 0.586800 0.635135 -vt 0.665151 0.622093 -vt 0.877731 0.250212 -vt 0.797799 0.250212 -vt 0.797799 0.245865 -vt 0.748398 0.266236 -vt 0.604561 0.801775 -vt 0.604561 0.806122 -vt 0.524629 0.806122 -vt 0.634260 0.301724 -vt 0.634260 0.344588 -vt 0.728902 0.635135 -vt 0.693414 0.622093 -vt 0.451201 0.761540 -vt 0.809585 0.384823 -vt 0.809585 0.389170 -vt 0.729653 0.389170 -vt 0.761440 0.202485 -vt 0.748398 0.237973 -vt 0.663601 0.748498 -vt 0.488270 0.801775 -vt 0.488270 0.806122 -vt 0.408338 0.806122 -vt 0.877731 0.286572 -vt 0.877731 0.290919 -vt 0.797799 0.290919 -vt 0.768839 0.846401 -vt 0.848771 0.842054 -vt 0.727352 0.761540 -vt 0.691863 0.748498 -vt 0.486689 0.748498 -vt 0.590179 0.471768 -vt 0.547315 0.471768 -vt 0.773013 0.676903 -vt 0.852944 0.672556 -vt 0.560379 0.098474 -vt 0.773013 0.592041 -vt 0.773013 0.587694 -vt 0.852944 0.587694 -vt 0.451201 0.634360 -vt 0.408338 0.634360 -vt 0.728604 0.801775 -vt 0.648672 0.806122 -vt 0.807648 0.053565 -vt 0.824123 0.027020 -vt 0.828922 0.034270 -vt 0.908061 0.387849 -vt 0.924536 0.414395 -vt 0.903262 0.395099 -vt 0.874890 0.053565 -vt 0.853615 0.034270 -vt 0.858414 0.027019 -vt 0.795834 0.556109 -vt 0.781006 0.580320 -vt 0.777299 0.578050 -vt 0.820620 0.214280 -vt 0.805793 0.238491 -vt 0.802085 0.236221 -vt 0.830124 0.556110 -vt 0.848659 0.578050 -vt 0.844951 0.580321 -vt 0.465803 0.890438 -vt 0.482279 0.916984 -vt 0.461004 0.897688 -vt 0.415036 0.916984 -vt 0.431512 0.890438 -vt 0.436311 0.897688 -vt 0.869738 0.238491 -vt 0.854911 0.214280 -vt 0.873445 0.236221 -vt 0.805793 0.242838 -vt 0.869738 0.242838 -vt 0.831164 0.887799 -vt 0.851602 0.919608 -vt 0.843353 0.917371 -vt 0.596568 0.809148 -vt 0.532623 0.809148 -vt 0.869484 0.384823 -vt 0.873770 0.387849 -vt 0.857294 0.414395 -vt 0.801592 0.392196 -vt 0.737646 0.392197 -vt 0.912347 0.384823 -vt 0.932785 0.416631 -vt 0.480277 0.809148 -vt 0.819837 0.023993 -vt 0.869738 0.293945 -vt 0.805792 0.293945 -vt 0.862700 0.023993 -vt 0.883139 0.055802 -vt 0.781006 0.584668 -vt 0.844951 0.584668 -vt 0.427226 0.887412 -vt 0.793451 0.748947 -vt 0.773013 0.717138 -vt 0.781262 0.719375 -vt 0.470089 0.887412 -vt 0.490528 0.919220 -vt 0.915012 0.502892 -vt 0.910726 0.499866 -vt 0.927202 0.473320 -vt 0.863476 0.124745 -vt 0.859190 0.121718 -vt 0.875665 0.095173 -vt 0.872149 0.502892 -vt 0.851711 0.471084 -vt 0.859960 0.473320 -vt 0.820612 0.124745 -vt 0.800174 0.092936 -vt 0.808423 0.095173 -vt 0.705638 0.921545 -vt 0.701352 0.918519 -vt 0.717828 0.891973 -vt 0.836315 0.748947 -vt 0.832028 0.745920 -vt 0.848504 0.719375 -vt 0.662775 0.921545 -vt 0.642337 0.889737 -vt 0.650586 0.891973 -vt 0.776832 0.834680 -vt 0.773125 0.832410 -vt 0.791660 0.810469 -vt 0.840778 0.834681 -vt 0.581741 0.837707 -vt 0.596568 0.813496 -vt 0.600275 0.815766 -vt 0.781006 0.665182 -vt 0.844951 0.665182 -vt 0.824899 0.121718 -vt 0.829698 0.114468 -vt 0.854911 0.205585 -vt 0.720610 0.813496 -vt 0.656665 0.813496 -vt 0.854391 0.114468 -vt 0.532623 0.813496 -vt 0.547450 0.837707 -vt 0.528916 0.815766 -vt 0.786765 0.420755 -vt 0.801592 0.396544 -vt 0.805299 0.398814 -vt 0.737646 0.396544 -vt 0.827229 0.738670 -vt 0.480277 0.813496 -vt 0.416331 0.813496 -vt 0.797737 0.745920 -vt 0.802537 0.738670 -vt 0.869738 0.298293 -vt 0.805792 0.298292 -vt 0.752474 0.420755 -vt 0.733939 0.398814 -vt 0.820619 0.331198 -vt 0.820619 0.322503 -vt 0.854910 0.322504 -vt 0.533851 0.958558 -vt 0.532389 0.954464 -vt 0.556777 0.950371 -vt 0.556777 0.973605 -vt 0.532389 0.969511 -vt 0.533851 0.965417 -vt 0.465449 0.837707 -vt 0.431159 0.837707 -vt 0.559701 0.965417 -vt 0.667061 0.918519 -vt 0.529504 0.965417 -vt 0.529504 0.958558 -vt 0.431159 0.846401 -vt 0.923476 0.281118 -vt 0.922014 0.277024 -vt 0.946402 0.272930 -vt 0.876435 0.499866 -vt 0.946402 0.296164 -vt 0.922014 0.292070 -vt 0.923476 0.287976 -vt 0.949327 0.281118 -vt 0.919129 0.287976 -vt 0.919129 0.281118 -vt 0.928109 0.109699 -vt 0.926647 0.105605 -vt 0.951035 0.101511 -vt 0.786765 0.429449 -vt 0.752474 0.429449 -vt 0.951035 0.124745 -vt 0.926647 0.120651 -vt 0.928109 0.116557 -vt 0.953959 0.116557 -vt 0.547450 0.846401 -vt 0.923762 0.116557 -vt 0.923762 0.109699 -vt 0.162464 0.945359 -vt 0.161002 0.941265 -vt 0.185390 0.937171 -vt 0.185390 0.960405 -vt 0.161002 0.956311 -vt 0.162464 0.952217 -vt 0.188314 0.945359 -vt 0.158117 0.952217 -vt 0.158117 0.945359 -vt 0.255186 0.951558 -vt 0.256648 0.955652 -vt 0.232259 0.959746 -vt 0.795834 0.547415 -vt 0.830124 0.547415 -vt 0.232260 0.936512 -vt 0.256648 0.940606 -vt 0.255186 0.944700 -vt 0.229335 0.944700 -vt 0.259533 0.944700 -vt 0.259533 0.951558 -vt 0.907387 0.955893 -vt 0.911481 0.954430 -vt 0.915575 0.978819 -vt 0.892341 0.978819 -vt 0.896435 0.954430 -vt 0.900529 0.955893 -vt 0.907387 0.981743 -vt 0.900529 0.951545 -vt 0.907387 0.951545 -vt 0.949224 0.035551 -vt 0.950687 0.039645 -vt 0.926298 0.043739 -vt 0.926298 0.020505 -vt 0.950687 0.024599 -vt 0.949224 0.028693 -vt 0.923374 0.028693 -vt 0.953572 0.028693 -vt 0.953572 0.035551 -vt 0.896897 0.896055 -vt 0.895435 0.891961 -vt 0.919824 0.887867 -vt 0.919824 0.911101 -vt 0.895435 0.907007 -vt 0.896897 0.902913 -vt 0.922748 0.896055 -vt 0.892550 0.902913 -vt 0.895977 0.663020 -vt 0.894514 0.658926 -vt 0.918903 0.654832 -vt 0.918903 0.678066 -vt 0.894514 0.673972 -vt 0.895977 0.669878 -vt 0.921827 0.663020 -vt 0.891629 0.669878 -vt 0.891629 0.663020 -vt 0.024465 0.950581 -vt 0.020118 0.950581 -vt 0.020118 0.943723 -vt 0.050315 0.950581 -vt 0.024465 0.943723 -vt 0.047391 0.958769 -vt 0.023003 0.954675 -vt 0.023003 0.939629 -vt 0.047391 0.935535 -vt 0.908225 0.573265 -vt 0.908225 0.577613 -vt 0.901367 0.577613 -vt 0.901367 0.573265 -vt 0.901367 0.547415 -vt 0.916413 0.550339 -vt 0.912319 0.574728 -vt 0.897273 0.574728 -vt 0.893179 0.550339 -vt 0.968594 0.574816 -vt 0.968594 0.579163 -vt 0.961736 0.579163 -vt 0.968594 0.548965 -vt 0.961736 0.574816 -vt 0.976782 0.551889 -vt 0.972688 0.576278 -vt 0.957642 0.576278 -vt 0.953548 0.551889 -vt 0.914856 0.809963 -vt 0.919204 0.809963 -vt 0.919204 0.816821 -vt 0.914856 0.816821 -vt 0.889006 0.816821 -vt 0.891930 0.801775 -vt 0.916319 0.805869 -vt 0.916319 0.820915 -vt 0.891930 0.825009 -vt 0.557214 0.894864 -vt 0.561561 0.894864 -vt 0.561561 0.901723 -vt 0.557214 0.901723 -vt 0.531363 0.901723 -vt 0.534287 0.886677 -vt 0.558676 0.890771 -vt 0.558676 0.905817 -vt 0.534287 0.909911 -vt 0.903238 0.723036 -vt 0.903238 0.718688 -vt 0.910097 0.718688 -vt 0.903238 0.748886 -vt 0.910097 0.723036 -vt 0.895051 0.745962 -vt 0.899145 0.721574 -vt 0.914191 0.721574 -vt 0.918285 0.745962 -vt 0.116401 0.943723 -vt 0.120748 0.943723 -vt 0.120748 0.950581 -vt 0.116401 0.950581 -vt 0.090550 0.950581 -vt 0.093475 0.935535 -vt 0.117863 0.939629 -vt 0.117863 0.954675 -vt 0.093475 0.958769 -vt 0.309225 0.939882 -vt 0.309225 0.935535 -vt 0.316083 0.935535 -vt 0.309225 0.965733 -vt 0.316083 0.939882 -vt 0.301037 0.962809 -vt 0.305131 0.938420 -vt 0.320177 0.938420 -vt 0.324271 0.962809 -vt 0.934169 0.229504 -vt 0.934169 0.233852 -vt 0.927311 0.233852 -vt 0.927311 0.229504 -vt 0.927311 0.203654 -vt 0.942357 0.206578 -vt 0.938263 0.230966 -vt 0.923217 0.230966 -vt 0.919123 0.206578 -vt 0.825950 0.801775 -vt 0.825950 0.810469 -vt 0.795833 0.640971 -vt 0.830124 0.640971 -vt 0.830124 0.632277 -vt 0.826878 0.890825 -vt 0.754378 0.498466 -vt 0.671492 0.846401 -vt 0.671492 0.837707 -vt 0.705783 0.837707 -vt 0.844485 0.832410 -vt 0.878569 0.395099 -vt 0.822079 0.898076 -vt 0.797386 0.898076 -vt 0.777299 0.662912 -vt 0.759177 0.491216 -vt 0.783870 0.491216 -vt 0.724318 0.815766 -vt 0.652958 0.815766 -vt 0.671860 0.911269 -vt 0.802085 0.300562 -vt 0.696553 0.911269 -vt 0.873445 0.300563 -vt 0.412624 0.815766 -vt 0.881234 0.492616 -vt 0.905927 0.492616 -vt 0.483984 0.815766 -vt 0.848659 0.662912 -vt 0.674495 0.344587 -vt 0.634309 0.020148 -vt 0.691933 0.020118 -vt 0.586800 0.617746 -vt 0.408338 0.674595 -vt 0.408338 0.547415 -vt 0.547315 0.202485 -vt 0.674495 0.202485 -vt 0.761489 0.162220 -vt 0.727352 0.674595 -vt 0.550440 0.674595 -vt 0.728902 0.548190 -vt 0.761440 0.344587 -vt 0.585249 0.761540 -vt 0.172682 0.600439 -vt 0.078717 0.763193 -vt 0.288096 0.800252 -vt 0.020068 0.089759 -vt 0.767862 0.919608 -vt 0.813394 0.469684 -vt 0.877731 0.245865 -vt 0.524629 0.801775 -vt 0.408338 0.761540 -vt 0.729653 0.384823 -vt 0.408338 0.801775 -vt 0.797799 0.286572 -vt 0.848771 0.846401 -vt 0.852944 0.676903 -vt 0.852944 0.592042 -vt 0.648672 0.801775 -vt 0.849045 0.416631 -vt 0.416331 0.809148 -vt 0.799399 0.055802 -vt 0.406787 0.919220 -vt 0.935451 0.471084 -vt 0.883914 0.092936 -vt 0.726077 0.889737 -vt 0.856753 0.717138 -vt 0.820620 0.205585 -vt 0.854910 0.331198 -vt 0.559701 0.958558 -vt 0.465449 0.846401 -vt 0.949327 0.287976 -vt 0.953959 0.109699 -vt 0.581741 0.846401 -vt 0.188314 0.952218 -vt 0.229335 0.951558 -vt 0.900529 0.981743 -vt 0.923374 0.035551 -vt 0.922748 0.902913 -vt 0.892550 0.896055 -vt 0.921827 0.669878 -vt 0.050315 0.943723 -vt 0.908225 0.547415 -vt 0.961736 0.548965 -vt 0.889006 0.809963 -vt 0.531363 0.894864 -vt 0.910097 0.748886 -vt 0.090550 0.943723 -vt 0.316083 0.965733 -vt 0.934169 0.203654 -vt 0.791660 0.801775 -vt 0.795833 0.632277 -vt 0.705783 0.846401 -vn 0.000000 0.173600 -0.984800 -vn 0.000000 0.766000 -0.642800 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.766000 0.642800 -vn -0.000000 -0.939700 -0.342000 -vn -0.000000 -0.500000 -0.866000 -vn -0.000000 0.173600 0.984800 -vn 0.000000 -0.500000 0.866000 -vn 0.000000 -0.939700 0.342000 -vn 0.000000 0.939700 -0.342000 -vn 0.000000 0.522300 0.852800 -vn 0.000000 -0.148100 -0.989000 -vn 0.000000 0.500000 -0.866000 -vn 0.000000 0.948200 0.317600 -vn 0.000000 -0.749100 -0.662400 -vn 0.000000 -0.173600 -0.984800 -vn 0.000000 0.930500 -0.366200 -vn 0.000000 -0.999700 -0.025900 -vn 0.000000 -0.766000 -0.642800 -vn 0.000000 0.477400 -0.878700 -vn 0.000000 -0.782400 0.622700 -vn 0.000000 -1.000000 0.000000 -vn -0.000000 -0.199100 -0.980000 -vn 0.000000 -0.199100 0.980000 -vn 0.000000 -0.766000 0.642800 -vn -0.000000 -0.782400 -0.622700 -vn 0.000000 0.477400 0.878700 -vn 0.000000 -0.173600 0.984800 -vn 0.000000 -0.999700 0.025900 -vn -0.000000 0.930500 0.366200 -vn 0.000000 0.500000 0.866000 -vn 0.000000 -0.749100 0.662400 -vn 0.000000 0.948200 -0.317600 -vn 0.000000 0.939700 0.342000 -vn 0.000000 -0.148100 0.989000 -vn 0.000000 0.522300 -0.852800 -vn 1.000000 -0.000000 -0.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.908400 0.238500 0.343500 -vn 0.857500 0.082800 0.507700 -vn 0.908400 -0.038100 0.416400 -vn 0.000000 -0.477400 -0.878700 -vn 0.000000 0.782400 0.622700 -vn 0.000000 0.999700 -0.025900 -vn 0.000000 0.749100 -0.662400 -vn 0.000000 -0.930500 -0.366200 -vn 0.857500 0.389800 0.335700 -vn 0.908400 0.403500 0.109800 -vn 0.857500 0.514400 0.006600 -vn 0.908400 0.379700 -0.175200 -vn 0.857500 0.398300 -0.325600 -vn 0.908400 0.178200 -0.378300 -vn 0.857500 -0.481100 -0.182200 -vn 0.857500 0.095800 -0.505400 -vn 0.908400 -0.416700 0.034800 -vn 0.908400 -0.106600 -0.404300 -vn 0.857500 -0.485600 0.169700 -vn 0.857500 -0.251500 -0.448800 -vn 0.908400 -0.296800 0.294500 -vn 0.908400 -0.341600 -0.241200 -vn 0.857500 -0.262900 0.442200 -vn 0.000000 0.148100 -0.989000 -vn 0.000000 -0.948200 0.317600 -vn 0.000000 -0.522300 0.852800 -vn 0.000000 -0.522300 -0.852800 -vn 0.000000 -0.342000 0.939700 -vn 0.000000 0.342000 -0.939700 -vn 0.941700 0.316100 0.115000 -vn 0.000000 -0.866000 0.500000 -vn 0.000000 0.866000 -0.500000 -vn 0.941700 0.168200 0.291300 -vn 0.000000 0.984800 -0.173600 -vn 0.000000 -0.984800 0.173600 -vn 0.941700 -0.058400 -0.331200 -vn 0.000000 0.866000 0.500000 -vn 0.000000 -0.866000 -0.500000 -vn 0.941700 0.168200 -0.291300 -vn 0.000000 0.342000 0.939700 -vn 0.000000 -0.342000 -0.939700 -vn 0.941700 0.316100 -0.115000 -vn 0.941700 -0.257600 -0.216200 -vn 0.000000 -0.642800 0.766000 -vn 0.000000 0.642800 -0.766000 -vn 0.941700 -0.336300 0.000000 -vn 0.941700 -0.257600 0.216200 -vn 0.000000 0.642800 0.766000 -vn 0.000000 -0.642800 -0.766000 -vn 0.941700 -0.058400 0.331200 -vn 0.000000 0.984800 0.173600 -vn 0.000000 -0.984800 -0.173600 -vn 0.000000 0.199100 -0.980000 -vn 0.000000 0.199100 0.980000 -vn 0.000000 0.782400 -0.622700 -vn 0.000000 -0.477400 0.878700 -vn 0.000000 0.999700 0.025900 -vn 0.000000 -0.930500 0.366200 -vn 0.000000 0.749100 0.662400 -vn 0.000000 -0.948200 -0.317600 -vn 0.000000 0.148100 0.989000 -vn 0.857500 0.514400 -0.006600 -vn 0.908400 0.379700 0.175200 -vn 0.857500 0.398300 0.325600 -vn 0.908400 0.403500 -0.109800 -vn 0.857500 0.389800 -0.335700 -vn 0.908400 0.238500 -0.343500 -vn 0.857500 0.082800 -0.507700 -vn 0.908400 -0.038100 -0.416400 -vn 0.857500 -0.262900 -0.442200 -vn 0.908400 -0.341600 0.241200 -vn 0.908400 -0.296800 -0.294500 -vn 0.857500 -0.251500 0.448800 -vn 0.857500 -0.485600 -0.169700 -vn 0.908400 -0.106600 0.404300 -vn 0.908400 -0.416700 -0.034800 -vn 0.857500 0.095800 0.505400 -vn 0.857500 -0.481100 0.182200 -vn 0.908400 0.178200 0.378300 -s off -f 17/1/1 18/2/1 16/3/1 -f 13/4/2 14/5/2 12/6/2 -f 10/7/3 44/8/3 43/9/3 -f 42/10/4 40/11/4 39/12/4 -f 23/13/5 25/14/5 26/15/5 -f 19/16/6 21/17/6 22/18/6 -f 35/19/7 37/20/7 38/21/7 -f 33/22/8 34/23/8 32/24/8 -f 29/25/9 30/26/9 28/27/9 -f 48/28/10 47/29/10 46/30/10 -f 10/7/11 9/31/11 45/32/11 -f 12/33/12 47/29/12 48/28/12 -f 52/34/13 51/35/13 50/36/13 -f 14/5/14 13/4/14 49/37/14 -f 15/38/15 16/39/15 51/35/15 -f 53/40/16 56/41/16 55/42/16 -f 17/1/17 53/40/17 54/43/17 -f 20/44/18 55/42/18 56/41/18 -f 60/45/19 59/46/19 58/47/19 -f 21/17/20 57/48/20 58/47/20 -f 24/49/21 59/46/21 60/45/21 -f 61/50/22 64/51/22 63/52/22 -f 25/14/23 61/50/23 62/53/23 -f 28/54/24 63/52/24 64/51/24 -f 65/55/25 68/56/25 67/57/25 -f 29/25/26 65/55/26 66/58/26 -f 31/59/27 32/60/27 67/57/27 -f 72/61/28 71/62/28 70/63/28 -f 33/22/29 69/64/29 70/63/29 -f 36/65/30 71/62/30 72/61/30 -f 76/66/31 75/67/31 74/68/31 -f 37/20/32 73/69/32 74/68/32 -f 40/70/33 75/67/33 76/66/33 -f 77/71/34 80/72/34 79/73/34 -f 41/74/35 77/71/35 78/75/35 -f 43/76/36 44/77/36 79/73/36 -f 62/78/37 63/79/37 3/80/37 -f 54/81/37 55/82/37 1/83/37 -f 1/83/37 59/84/37 62/78/37 -f 58/85/37 59/84/37 1/83/37 -f 3/80/37 63/79/37 66/86/37 -f 3/80/37 67/87/37 70/88/37 -f 16/3/1 18/2/1 82/89/1 -f 30/26/26 66/58/26 109/90/26 -f 24/49/21 89/91/21 106/92/21 -f 66/86/37 67/87/37 3/80/37 -f 44/77/36 86/93/36 116/94/36 -f 1/83/37 2/95/37 54/81/37 -f 70/88/37 71/96/37 3/80/37 -f 3/80/37 71/96/37 4/97/37 -f 22/18/20 58/47/20 105/98/20 -f 42/10/35 78/75/35 115/99/35 -f 16/39/15 81/100/15 102/101/15 -f 24/102/5 26/15/5 90/103/5 -f 36/65/30 93/104/30 112/105/30 -f 54/81/37 2/95/37 51/106/37 -f 51/106/37 2/95/37 50/107/37 -f 50/107/37 2/95/37 47/108/37 -f 46/109/37 47/108/37 2/95/37 -f 71/96/37 74/110/37 4/97/37 -f 74/110/37 75/111/37 4/97/37 -f 78/112/37 4/97/37 75/111/37 -f 78/112/37 79/113/37 4/97/37 -f 4/97/37 79/113/37 46/109/37 -f 80/114/38 45/115/38 9/116/38 -f 41/117/38 39/118/38 76/119/38 -f 37/120/38 35/121/38 72/122/38 -f 8/123/38 6/124/38 45/115/38 -f 80/114/38 77/125/38 8/123/38 -f 77/125/38 76/119/38 8/123/38 -f 76/119/38 73/126/38 8/123/38 -f 73/126/38 72/122/38 8/123/38 -f 8/123/38 72/122/38 7/127/38 -f 72/122/38 69/128/38 7/127/38 -f 68/129/38 69/128/38 31/130/38 -f 68/129/38 65/131/38 7/127/38 -f 29/132/38 27/133/38 65/131/38 -f 65/131/38 27/133/38 7/127/38 -f 27/133/38 64/134/38 7/127/38 -f 7/127/38 64/134/38 61/135/38 -f 61/135/38 25/136/38 5/137/38 -f 25/136/38 23/138/38 60/139/38 -f 5/137/38 25/136/38 60/139/38 -f 60/139/38 57/140/38 5/137/38 -f 56/141/38 57/140/38 19/142/38 -f 56/141/38 53/143/38 5/137/38 -f 5/137/38 53/143/38 6/124/38 -f 45/115/38 6/124/38 48/144/38 -f 13/145/38 11/146/38 48/144/38 -f 17/147/38 15/148/38 52/149/38 -f 53/143/38 52/149/38 6/124/38 -f 52/149/38 49/150/38 6/124/38 -f 6/124/38 49/150/38 48/144/38 -f 2/95/39 1/83/39 5/151/39 -f 3/80/3 7/152/3 5/153/3 -f 4/97/40 8/154/40 7/155/40 -f 2/95/22 6/156/22 8/157/22 -f 1/83/37 55/82/37 58/85/37 -f 89/158/41 125/159/41 142/160/41 -f 104/161/37 140/162/37 141/163/37 -f 92/164/42 105/165/42 141/166/42 -f 106/167/37 142/168/37 143/169/37 -f 91/170/43 127/171/43 140/172/43 -f 108/173/37 144/174/37 145/175/37 -f 10/7/11 46/30/11 99/176/11 -f 22/18/6 92/177/6 91/178/6 -f 32/60/27 95/179/27 110/180/27 -f 14/5/2 84/181/2 83/182/2 -f 12/33/12 83/183/12 100/184/12 -f 38/21/7 94/185/7 93/186/7 -f 38/21/32 74/68/32 113/187/32 -f 74/188/16 71/189/16 112/190/16 -f 18/2/17 54/43/17 103/191/17 -f 75/192/19 114/193/19 115/194/19 -f 10/7/3 85/195/3 86/196/3 -f 40/70/33 87/197/33 114/198/33 -f 32/24/8 34/23/8 96/199/8 -f 79/200/22 116/201/22 99/202/22 -f 20/44/18 91/203/18 104/204/18 -f 26/15/23 62/53/23 107/205/23 -f 47/206/25 100/207/25 101/208/25 -f 51/209/28 102/210/28 103/211/28 -f 63/212/10 108/173/10 109/213/10 -f 28/54/24 97/214/24 108/215/24 -f 34/23/29 70/63/29 111/216/29 -f 42/10/4 88/217/4 87/218/4 -f 59/219/34 106/167/34 107/220/34 -f 14/5/14 50/36/14 101/221/14 -f 67/222/13 110/223/13 111/224/13 -f 30/26/9 98/225/9 97/226/9 -f 55/227/31 104/161/31 105/228/31 -f 146/229/44 131/230/44 167/231/44 -f 134/232/45 145/233/45 170/234/45 -f 147/235/46 168/236/46 132/237/46 -f 167/238/27 182/239/27 146/240/27 -f 165/241/30 184/242/30 148/243/30 -f 168/244/29 147/245/29 183/246/29 -f 130/247/47 149/248/47 166/249/47 -f 148/250/48 129/251/48 165/252/48 -f 185/253/32 166/254/32 149/255/32 -f 112/190/37 148/256/37 149/257/37 -f 90/258/49 107/259/49 143/260/49 -f 114/193/37 150/261/37 151/262/37 -f 97/263/50 133/264/50 144/265/50 -f 116/201/37 152/266/37 135/267/37 -f 98/268/51 109/269/51 145/233/51 -f 101/208/37 100/207/37 136/270/37 -f 95/271/52 131/230/52 146/229/52 -f 102/210/37 138/272/37 139/273/37 -f 96/274/53 111/275/53 147/235/53 -f 110/223/37 146/276/37 147/277/37 -f 93/278/54 129/251/54 148/250/54 -f 85/279/55 99/280/55 135/281/55 -f 94/282/56 113/283/56 149/248/56 -f 83/284/57 119/285/57 136/286/57 -f 87/287/58 123/288/58 150/289/58 -f 84/290/59 101/291/59 137/292/59 -f 88/293/60 115/294/60 151/295/60 -f 81/296/61 117/297/61 138/298/61 -f 86/299/62 122/300/62 152/301/62 -f 82/302/63 103/303/63 139/304/63 -f 134/232/37 133/264/37 97/263/37 -f 180/305/24 144/306/24 169/307/24 -f 144/174/10 180/305/10 181/308/10 -f 159/309/33 186/310/33 150/311/33 -f 142/168/34 178/312/34 179/313/34 -f 124/314/64 151/295/64 160/315/64 -f 130/316/16 166/254/16 165/241/16 -f 140/162/31 176/317/31 177/318/31 -f 150/289/65 123/288/65 159/319/65 -f 148/256/16 184/242/16 185/253/16 -f 187/320/35 160/321/35 151/322/35 -f 150/261/19 186/310/19 187/320/19 -f 158/323/36 188/324/36 152/325/36 -f 152/266/22 188/324/22 171/326/22 -f 152/301/66 122/300/66 158/327/66 -f 136/270/25 172/328/25 173/329/25 -f 121/330/67 135/281/67 157/331/67 -f 138/272/28 174/332/28 175/333/28 -f 171/326/11 157/334/11 135/335/11 -f 146/276/13 182/239/13 183/246/13 -f 118/336/28 154/337/28 153/338/28 -f 293/339/68 296/340/68 241/341/68 -f 153/338/37 154/337/37 175/333/37 -f 242/342/69 295/343/69 294/344/69 -f 172/328/37 155/345/37 156/346/37 -f 206/347/70 294/344/70 293/339/70 -f 118/348/37 117/297/37 81/296/37 -f 294/344/34 295/349/34 296/350/34 -f 120/351/25 156/346/25 155/345/25 -f 289/352/71 292/353/71 247/354/71 -f 84/290/37 120/355/37 119/285/37 -f 248/356/72 291/357/72 290/358/72 -f 85/279/37 121/330/37 122/300/37 -f 290/358/73 289/352/73 211/359/73 -f 188/324/37 158/323/37 157/334/37 -f 290/358/31 291/360/31 292/361/31 -f 159/309/37 160/321/37 187/320/37 -f 285/362/71 288/363/71 245/364/71 -f 158/323/22 122/365/22 121/366/22 -f 246/367/72 287/368/72 286/369/72 -f 124/314/37 123/288/37 87/287/37 -f 210/370/73 286/369/73 285/362/73 -f 124/371/19 160/321/19 159/309/19 -f 286/369/31 287/372/31 288/373/31 -f 281/374/74 284/375/74 251/376/74 -f 94/282/37 130/247/37 129/251/37 -f 252/377/75 283/378/75 282/379/75 -f 96/274/37 132/237/37 131/230/37 -f 282/379/76 281/374/76 215/380/76 -f 184/242/37 165/241/37 166/254/37 -f 282/379/16 283/381/16 284/382/16 -f 167/238/37 168/244/37 183/246/37 -f 277/383/74 280/384/74 249/385/74 -f 167/238/13 131/386/13 132/387/13 -f 250/388/75 279/389/75 278/390/75 -f 214/391/76 278/390/76 277/383/76 -f 278/390/16 279/392/16 280/393/16 -f 273/394/77 276/395/77 255/396/77 -f 256/397/78 275/398/78 274/399/78 -f 274/399/79 273/394/79 219/400/79 -f 274/399/13 275/401/13 276/402/13 -f 269/403/77 272/404/77 253/405/77 -f 254/406/78 271/407/78 270/408/78 -f 218/409/79 270/408/79 269/403/79 -f 270/408/13 271/410/13 272/411/13 -f 265/412/80 268/413/80 259/414/80 -f 260/415/81 267/416/81 266/417/81 -f 266/417/82 265/412/82 223/418/82 -f 265/412/10 266/417/10 267/419/10 -f 261/420/80 264/421/80 257/422/80 -f 258/423/81 263/424/81 262/425/81 -f 262/425/82 261/420/82 221/426/82 -f 262/425/10 263/427/10 264/428/10 -f 298/429/34 299/430/34 300/431/34 -f 208/432/70 298/429/70 297/433/70 -f 244/434/69 299/435/69 298/429/69 -f 297/433/68 300/436/68 243/437/68 -f 302/438/19 303/439/19 304/440/19 -f 302/438/83 301/441/83 201/442/83 -f 238/443/84 303/444/84 302/438/84 -f 301/441/85 304/445/85 237/446/85 -f 306/447/19 307/448/19 308/449/19 -f 204/450/83 306/447/83 305/451/83 -f 240/452/84 307/453/84 306/447/84 -f 305/451/85 308/454/85 239/455/85 -f 310/456/22 311/457/22 312/458/22 -f 310/456/86 309/459/86 200/460/86 -f 235/461/39 311/462/39 310/456/39 -f 309/459/40 312/463/40 236/464/40 -f 314/465/22 315/466/22 316/467/22 -f 314/465/86 313/468/86 198/469/86 -f 233/470/39 315/471/39 314/465/39 -f 313/468/40 316/472/40 234/473/40 -f 318/474/25 319/475/25 320/476/25 -f 194/477/87 318/474/87 317/478/87 -f 230/479/88 319/480/88 318/474/88 -f 317/478/89 320/481/89 229/482/89 -f 322/483/25 323/484/25 324/485/25 -f 322/483/87 321/486/87 195/487/87 -f 232/488/88 323/489/88 322/483/88 -f 321/486/89 324/490/89 231/491/89 -f 326/492/28 327/493/28 328/494/28 -f 190/495/90 326/492/90 325/496/90 -f 226/497/91 327/498/91 326/492/91 -f 325/496/92 328/499/92 225/500/92 -f 330/501/28 331/502/28 332/503/28 -f 330/501/90 329/504/90 191/505/90 -f 228/506/91 331/507/91 330/501/91 -f 329/504/92 332/508/92 227/509/92 -f 134/510/10 170/511/10 169/307/10 -f 169/307/37 170/511/37 181/308/37 -f 161/512/37 162/513/37 179/313/37 -f 126/514/34 162/513/34 161/512/34 -f 90/258/37 126/515/37 125/159/37 -f 128/516/37 127/171/37 91/170/37 -f 128/517/31 164/518/31 163/519/31 -f 163/519/37 164/518/37 177/318/37 -f 170/511/26 145/520/26 181/308/26 -f 144/265/93 133/264/93 169/521/93 -f 126/515/94 143/260/94 162/522/94 -f 142/160/95 125/159/95 161/523/95 -f 161/512/21 178/312/21 142/524/21 -f 128/516/96 141/166/96 164/525/96 -f 140/172/97 127/171/97 163/526/97 -f 163/519/18 176/317/18 140/527/18 -f 164/518/20 141/528/20 177/318/20 -f 118/348/98 139/304/98 154/529/98 -f 154/337/17 139/530/17 175/333/17 -f 138/298/99 117/297/99 153/531/99 -f 153/338/15 174/332/15 138/532/15 -f 173/329/14 156/346/14 137/533/14 -f 120/355/100 137/292/100 156/534/100 -f 136/286/101 119/285/101 155/535/101 -f 155/345/12 172/328/12 136/536/12 -f 162/513/23 143/537/23 179/313/23 -f 15/538/1 17/1/1 16/3/1 -f 11/539/2 13/4/2 12/6/2 -f 9/31/3 10/7/3 43/9/3 -f 41/74/4 42/10/4 39/12/4 -f 24/102/5 23/13/5 26/15/5 -f 20/540/6 19/16/6 22/18/6 -f 36/541/7 35/19/7 38/21/7 -f 31/542/8 33/22/8 32/24/8 -f 27/543/9 29/25/9 28/27/9 -f 45/32/10 48/28/10 46/30/10 -f 46/30/11 10/7/11 45/32/11 -f 11/544/12 12/33/12 48/28/12 -f 49/37/13 52/34/13 50/36/13 -f 50/36/14 14/5/14 49/37/14 -f 52/34/15 15/38/15 51/35/15 -f 54/43/16 53/40/16 55/42/16 -f 18/2/17 17/1/17 54/43/17 -f 19/545/18 20/44/18 56/41/18 -f 57/48/19 60/45/19 58/47/19 -f 22/18/20 21/17/20 58/47/20 -f 23/546/21 24/49/21 60/45/21 -f 62/53/22 61/50/22 63/52/22 -f 26/15/23 25/14/23 62/53/23 -f 27/547/24 28/54/24 64/51/24 -f 66/58/25 65/55/25 67/57/25 -f 30/26/26 29/25/26 66/58/26 -f 68/56/27 31/59/27 67/57/27 -f 69/64/28 72/61/28 70/63/28 -f 34/23/29 33/22/29 70/63/29 -f 35/548/30 36/65/30 72/61/30 -f 73/69/31 76/66/31 74/68/31 -f 38/21/32 37/20/32 74/68/32 -f 39/549/33 40/70/33 76/66/33 -f 78/75/34 77/71/34 79/73/34 -f 42/10/35 41/74/35 78/75/35 -f 80/72/36 43/76/36 79/73/36 -f 1/83/37 62/78/37 3/80/37 -f 81/550/1 16/3/1 82/89/1 -f 98/225/26 30/26/26 109/90/26 -f 59/46/21 24/49/21 106/92/21 -f 79/73/36 44/77/36 116/94/36 -f 92/177/20 22/18/20 105/98/20 -f 88/217/35 42/10/35 115/99/35 -f 51/35/15 16/39/15 102/101/15 -f 89/551/5 24/102/5 90/103/5 -f 71/62/30 36/65/30 112/105/30 -f 2/95/37 4/97/37 46/109/37 -f 43/552/38 80/114/38 9/116/38 -f 77/125/38 41/117/38 76/119/38 -f 73/126/38 37/120/38 72/122/38 -f 80/114/38 8/123/38 45/115/38 -f 33/553/38 31/130/38 69/128/38 -f 68/129/38 7/127/38 69/128/38 -f 5/137/38 7/127/38 61/135/38 -f 21/554/38 19/142/38 57/140/38 -f 56/141/38 5/137/38 57/140/38 -f 49/150/38 13/145/38 48/144/38 -f 53/143/38 17/147/38 52/149/38 -f 6/555/39 2/95/39 5/151/39 -f 1/83/3 3/80/3 5/153/3 -f 3/80/40 4/97/40 7/155/40 -f 4/97/22 2/95/22 8/157/22 -f 106/556/102 89/158/102 142/160/102 -f 105/228/37 104/161/37 141/163/37 -f 128/516/103 92/164/103 141/166/103 -f 107/220/37 106/167/37 143/169/37 -f 104/557/104 91/170/104 140/172/104 -f 109/213/37 108/173/37 145/175/37 -f 85/195/11 10/7/11 99/176/11 -f 20/540/6 22/18/6 91/178/6 -f 67/57/27 32/60/27 110/180/27 -f 12/6/2 14/5/2 83/182/2 -f 47/29/12 12/33/12 100/184/12 -f 36/541/7 38/21/7 93/186/7 -f 94/185/32 38/21/32 113/187/32 -f 113/558/16 74/188/16 112/190/16 -f 82/89/17 18/2/17 103/191/17 -f 78/559/19 75/192/19 115/194/19 -f 44/8/3 10/7/3 86/196/3 -f 75/67/33 40/70/33 114/198/33 -f 95/560/8 32/24/8 96/199/8 -f 46/561/22 79/200/22 99/202/22 -f 55/42/18 20/44/18 104/204/18 -f 90/103/23 26/15/23 107/205/23 -f 50/562/25 47/206/25 101/208/25 -f 54/563/28 51/209/28 103/211/28 -f 66/564/10 63/212/10 109/213/10 -f 63/52/24 28/54/24 108/215/24 -f 96/199/29 34/23/29 111/216/29 -f 40/11/4 42/10/4 87/218/4 -f 62/565/34 59/219/34 107/220/34 -f 84/181/14 14/5/14 101/221/14 -f 70/566/13 67/222/13 111/224/13 -f 28/27/9 30/26/9 97/226/9 -f 58/567/31 55/227/31 105/228/31 -f 113/558/37 112/190/37 149/257/37 -f 126/515/105 90/258/105 143/260/105 -f 115/194/37 114/193/37 151/262/37 -f 108/568/106 97/263/106 144/265/106 -f 99/202/37 116/201/37 135/267/37 -f 134/232/107 98/268/107 145/233/107 -f 137/569/37 101/208/37 136/270/37 -f 110/570/108 95/271/108 146/229/108 -f 103/211/37 102/210/37 139/273/37 -f 132/237/109 96/274/109 147/235/109 -f 111/224/37 110/223/37 147/277/37 -f 112/571/110 93/278/110 148/250/110 -f 121/330/111 85/279/111 135/281/111 -f 130/247/112 94/282/112 149/248/112 -f 100/572/113 83/284/113 136/286/113 -f 114/573/114 87/287/114 150/289/114 -f 120/355/115 84/290/115 137/292/115 -f 124/314/116 88/293/116 151/295/116 -f 102/574/117 81/296/117 138/298/117 -f 116/575/118 86/299/118 152/301/118 -f 118/348/119 82/302/119 139/304/119 -f 98/268/37 134/232/37 97/263/37 -f 145/175/10 144/174/10 181/308/10 -f 143/169/34 142/168/34 179/313/34 -f 129/576/16 130/316/16 165/241/16 -f 141/163/31 140/162/31 177/318/31 -f 149/257/16 148/256/16 185/253/16 -f 151/262/19 150/261/19 187/320/19 -f 135/267/22 152/266/22 171/326/22 -f 137/569/25 136/270/25 173/329/25 -f 139/273/28 138/272/28 175/333/28 -f 147/277/13 146/276/13 183/246/13 -f 117/577/28 118/336/28 153/338/28 -f 205/578/68 293/339/68 241/341/68 -f 174/332/37 153/338/37 175/333/37 -f 206/347/69 242/342/69 294/344/69 -f 173/329/37 172/328/37 156/346/37 -f 205/578/70 206/347/70 293/339/70 -f 82/302/37 118/348/37 81/296/37 -f 293/339/34 294/344/34 296/350/34 -f 119/579/25 120/351/25 155/345/25 -f 211/359/71 289/352/71 247/354/71 -f 83/284/37 84/290/37 119/285/37 -f 212/580/72 248/356/72 290/358/72 -f 86/299/37 85/279/37 122/300/37 -f 212/580/73 290/358/73 211/359/73 -f 171/326/37 188/324/37 157/334/37 -f 289/352/31 290/358/31 292/361/31 -f 186/310/37 159/309/37 187/320/37 -f 209/581/71 285/362/71 245/364/71 -f 157/334/22 158/323/22 121/366/22 -f 210/370/72 246/367/72 286/369/72 -f 88/293/37 124/314/37 87/287/37 -f 209/581/73 210/370/73 285/362/73 -f 123/582/19 124/371/19 159/309/19 -f 285/362/31 286/369/31 288/373/31 -f 215/380/74 281/374/74 251/376/74 -f 93/278/37 94/282/37 129/251/37 -f 216/583/75 252/377/75 282/379/75 -f 95/271/37 96/274/37 131/230/37 -f 216/583/76 282/379/76 215/380/76 -f 185/253/37 184/242/37 166/254/37 -f 281/374/16 282/379/16 284/382/16 -f 182/239/37 167/238/37 183/246/37 -f 213/584/74 277/383/74 249/385/74 -f 168/244/13 167/238/13 132/387/13 -f 214/391/75 250/388/75 278/390/75 -f 213/584/76 214/391/76 277/383/76 -f 277/383/16 278/390/16 280/393/16 -f 219/400/77 273/394/77 255/396/77 -f 220/585/78 256/397/78 274/399/78 -f 220/585/79 274/399/79 219/400/79 -f 273/394/13 274/399/13 276/402/13 -f 217/586/77 269/403/77 253/405/77 -f 218/409/78 254/406/78 270/408/78 -f 217/586/79 218/409/79 269/403/79 -f 269/403/13 270/408/13 272/411/13 -f 223/418/80 265/412/80 259/414/80 -f 224/587/81 260/415/81 266/417/81 -f 224/587/82 266/417/82 223/418/82 -f 268/588/10 265/412/10 267/419/10 -f 221/426/80 261/420/80 257/422/80 -f 222/589/81 258/423/81 262/425/81 -f 222/589/82 262/425/82 221/426/82 -f 261/420/10 262/425/10 264/428/10 -f 297/433/34 298/429/34 300/431/34 -f 207/590/70 208/432/70 297/433/70 -f 208/432/69 244/434/69 298/429/69 -f 207/590/68 297/433/68 243/437/68 -f 301/441/19 302/438/19 304/440/19 -f 202/591/83 302/438/83 201/442/83 -f 202/591/84 238/443/84 302/438/84 -f 201/442/85 301/441/85 237/446/85 -f 305/451/19 306/447/19 308/449/19 -f 203/592/83 204/450/83 305/451/83 -f 204/450/84 240/452/84 306/447/84 -f 203/592/85 305/451/85 239/455/85 -f 309/459/22 310/456/22 312/458/22 -f 199/593/86 310/456/86 200/460/86 -f 199/593/39 235/461/39 310/456/39 -f 200/460/40 309/459/40 236/464/40 -f 313/468/22 314/465/22 316/467/22 -f 197/594/86 314/465/86 198/469/86 -f 197/594/39 233/470/39 314/465/39 -f 198/469/40 313/468/40 234/473/40 -f 317/478/25 318/474/25 320/476/25 -f 193/595/87 194/477/87 317/478/87 -f 194/477/88 230/479/88 318/474/88 -f 193/595/89 317/478/89 229/482/89 -f 321/486/25 322/483/25 324/485/25 -f 196/596/87 322/483/87 195/487/87 -f 196/596/88 232/488/88 322/483/88 -f 195/487/89 321/486/89 231/491/89 -f 325/496/28 326/492/28 328/494/28 -f 189/597/90 190/495/90 325/496/90 -f 190/495/91 226/497/91 326/492/91 -f 189/597/92 325/496/92 225/500/92 -f 329/504/28 330/501/28 332/503/28 -f 192/598/90 330/501/90 191/505/90 -f 192/598/91 228/506/91 330/501/91 -f 191/505/92 329/504/92 227/509/92 -f 133/599/10 134/510/10 169/307/10 -f 180/305/37 169/307/37 181/308/37 -f 178/312/37 161/512/37 179/313/37 -f 125/600/34 126/514/34 161/512/34 -f 89/158/37 90/258/37 125/159/37 -f 92/164/37 128/516/37 91/170/37 -f 127/601/31 128/517/31 163/519/31 -f 176/317/37 163/519/37 177/318/37 diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_aluminium.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.aluminium.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/ore_meteor_aluminium.png rename to src/main/resources/assets/hbm/textures/blocks/ore_meteor.aluminium.png diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor.cobalt.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.cobalt.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8174912706d15ad29f36a096b1984d986787d6 GIT binary patch literal 734 zcmV<40wMj0P)Apl_Z_xE4L z7)%N!p^lG_CC12P@)b?<2O$KMQaI=6x{j0* z#uy$x{F?jwdz4bF*XPuAjZz9Vo6TgG5M!jODnx{?>uB4SvMm1-jn-Iei7_G~0O%~s zD2jrrrGA3pp% zd}z$yIOn$Pm0~AAb$WU#JKaBh`UBQl&d<+>E#KX}qpB*Jrs4VXUsx`eynp`_-g}Co zz>3H)^P4x{4F?lrq$moEF@z8h5pHj9xwyEXX&NSz34PzAPEJl_I(^J!GU4OLw}{A~ zHm&uxO{LguHiO@F9aU9rV@F3v0|oE>maS6TLoo)W6e2R<-O0Z1dz^Fp3;dy4&npeQ Qq5uE@07*qoM6N<$f?Z}^y8r+H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_copper.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.copper.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/ore_meteor_copper.png rename to src/main/resources/assets/hbm/textures/blocks/ore_meteor.copper.png diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor.iron.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.iron.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d0bc2ff35d297d43c96844aa7868362cb2901b GIT binary patch literal 701 zcmV;u0z&Cnc%(W)q`8SIJ`2x9ddHsdt!`)5P0_c zFVr93^X}~%0B-;IE!XZp!8ymfw{KW|YG~UQ=NyA-Su7SRBE%R+i8*J=vP4A4ITJz{ zlOHnj-qUp*MpgOu#wGqdxQMlulo9|rXPTzroFk=#s;)oS+1XL&98J@(xw*;VrEj==?;q;A z2Ecni(#ScF-gC~>b-n&zSd^w|5D}bnIOnMA`U`x|@9c4Uw&dFVCxj5zce}g0I_$lw zl5-v>0lYZ8!tARH)F0oo{O}(Dt4|I4M~|3Jr)vrW*OR;ZoSrS&KYBz;iRp9-z|9}N z24L^r-(vQQRYi=EoHL&RvAAdASmI&K00000NkvXXu0mjf%p_2N literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor.rareearth.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.rareearth.png new file mode 100644 index 0000000000000000000000000000000000000000..c79e5d5dfa9194d76414f8e1db1f888f10561792 GIT binary patch literal 737 zcmV<70v`Q|P)7W`5&+$2;m6JxJpEDv)mzZw>LXGFU92+G~Juw@qX|7 zzLCLTplO;SA}kgQthJI0GPge zhpKXZevY-4BuTnSs=D0ye_CrTbzNh#EISC33DdJP@;qlco$}L@CyYlUj!sU+1)qiuax$_V)PV>Q#=9kEyDPo$YP@eESw_EtU85dOiMq z{~qUDrhg=&DDUyV*Zr|qU z#u)NEXEvK5BFJDcP!SaUA;!pmm4ZmP T^ob|300000NkvXXu0mjf9~@(O literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_lead.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_lead.png deleted file mode 100644 index 564498b2450d0ef3e92fab4b3e0101033b2994e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 zcmV;c0#yBpP)>m(xm^rMhqL)2* z7Cm?o_OSnQQP7KH!;DiGFW$PTkF3fJ4{et$o40_Bc;9%RkgBTGdyk0F_dV8Hy!VXb zh%tt~?{UsC3GEoO6uhNS0+7V^G!q z2$>K9#u)Z*xjbVS2C^)}dylG4&Eq(7e*ToZcYkFZM*w8CT4_oNRmED1wH8&S>pC7k z{)@V7wU(~yFiq1; zds=JRY&N`p{Wq7F&rwxovl-rdUcP+G#l^Gf?>;A4E|+SpC4|76H~(;Zd&||;6#zw1 zaC7q!=NxzL{6bL_eE$3n=NtgTFd(O=rz#@5;)lhQ5_z5@BBYcEAxz2dGxFZk_dP~c zdGO#5?%g}VT1$)(fRqw#+w$VYD;_<1f~sPSK}49(=X71Sqfk|qiU?Vj5o4q*OH`E* z0uLYlNnO_y;_K@VIOm8lqN=+ACnqQBoTF`9j*gC4EbjB|+ZURq0l<4d(MTz=Czev8 zX&MZGh;VRlz;?Uk>(@1^%HiSR#J=k~Qc9ekKV`N0ofzY8e`Aodvoqb_y{eK@nv?)8 zE}l_U)&JQ4|1F)o%cN`tGd6D6o#Mq*x9>xLHY@c1cIxdl-9UNf{X=rEJA<_M9<4Rg`SJA&LI`A8hI0-PnLiK1z^nJ~xcB@QhG76e?eFhPN(m9c7=tke z5uxik&j0?4x~@5Y_y}XntVAhAj1liWYHx2(0Iap-d5(y%-EJ|)kY(9CNkm4^|Eo2| z&~+WUX`0!mF^27S%ZKk@IsJ5vh_F~JaL#e{?F%O#ujaQ?PS!a`2m$XszkmLR&1S=T zy$0au>@^q1kFnOWUau*Ng0AbZ)-tJ9tJO-BQiKp@i76%WJVz--N(t}%ocxrLbB@06 z(IUe0%RjjP;#Z6@#25icDbcnqZ~y(w%j-)-1g$knDVED6UDu5is;UyD6j_!LW27ug zL^M{YH))HexM8*aO2M1!UrEObwcX#>W=@Z^OeMZwX066Dn8Y!jO zdrFC>X~qWAqO@&`QVMG=)>@jTxr6W3`*+lJ&BgI!y!YeX;o+f7doLoSl;%kQCm*k< zs*25K!_CbN07X%7c63Zp6eER+>*=R!>bmCa=$IHIMNt6o^Xbd6*-sDV40d*QMslmw zN+$UtGN%oowVso2+jg$K_mpKh*3(8UmrIN>^M}c|QVJ2lT8l9Tr4(gZ5<(!Q#D7&b VW9>9R^Me2Y002ovPDHLkV1n&$L|gy> diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_starmetal.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_starmetal.png deleted file mode 100644 index 1e90330ce2efca57135910e1b4f5b3cc9ed1f7be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 805 zcmV+=1KRwFP))p8+Xw<mL<+Pdc8fAQXCxo%IfMm09921 zu(^4UhY!DEFz5lGltLv*!lg?qI9IW_c#+$;KLa3+&rV{Jl5^*l7>)j8I2grqqF!&{oST93JVycuA()?^XLIu&qtTG9t?wBOdJG0V z+U*-`Z~sJ^_5sj3qS30}Y((nHTK$6Vy=+W0?*}uGa@iQA6 zcjpk{}4!-~SycCB_(bcXv2FJ;i&EwRUDfv|24ct#Y2{IOh;T01yNL jLWmh?dY{@3!;t?0rSNe~9b=!P00000NkvXXu0mjf!*_2b diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_sulfur.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_sulfur.png deleted file mode 100644 index af0f7850f2084326db60cc67f45c9c5f44bd85f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmV1wu=FFUvdwUmEiW@^n%#|PrZn_XfuyiemN*3;_ zW+840X60WXZd?eK(h!QElqOQDxUhPgjjJG1+!Ra=8WC!R7VhPqUo-Q$IK2m))vC>bk~Si}#)o0wO|P*JN2n+qUF+4nR>9R8@sB1{n^Aq?BmemKY-` zC1Q+(5SYzoWLZWC0p}bdf~x*cNSdZWM7Vw>@YBt|`1yy1_dfg$=N#U9RJ9)tA+WW5 z#Fw9!gb)BQYinzoQbJX+)?%$?a%;$oFaOJptA?kZd6HMp&#>0^PK+_c7-^aYv%0#f z09lri=Q*m%bUMXai*v45Qq_)G1ORI-RaGJL`Ml?})-s(=`DGF~*gr;9DT)H`JqP>8 z9DZN*Zx=a<_nx+Gsq31XyLb3{R{@YGUf`=s6>ZyMi~->Ik4`nqG8V4Q#>R$TxOkV% zvv7WMjEIm@BF}S-F{G4enx;?QT8paUy{E2gL{&MrzRb15jw{9pKuU@4zOj^L$>i3M z4?g;ngZ*QSF$@L+s;cT-R8_^B?^v806Jx`0I7C%xnuh!Lrrh2;;r_j4HqX+F?0)*F zZ%4fMEG;e3wk@O4h;Og{N{o@Zu6g5v@ZjMx&<$VyWStNKXHK6m2>*0>02pJ~+lfq$ z?r`m}t86qHF`v(Q>s@(V-#X4Y%Ccl}M1*Xy=WoA1K=oNtN^EW4<@1)s45|Z e{(gb&oZ~;9&|*9F$|2qW0000F9fssdm( zo6&V0B7$q0232Jk21+TYDy0;1&TO|^LI~uXi811w!_59SDD3xpoO7(sjsZ~ba7DR& zcmlx8h%q7}3C%pG~@45PBPTRJ;et7|TEOySJs{H=2 z8KpbNcDqF`FE0%sgg{kQm>HYR2JbyFMsm)Rl0zea_nxlnaJ$`Z^69;2v)S-!dB!gn zCzu(t*^HDDtM8w)K3`0=hn!qWiD4M%`<@@ZN~|wVaYa$@`0?b3VHn2AMFFGhIzk8> zREMT%`02C(;P&s&lh>-M5D`*J?Dub*JFSpgs$tj`Lid+NGXM;X)rVP`#l(3pC6BCRl&yamh%M1 z&v|$EIA&1SHN!A4pU-*mEKo|J?|a^U_=JPezjM61|97M!fa;hBfQazw#VI2%!OWP? z=j?Vne!F{|@WmKu+ZMi{bj~5G)yfWgZ)T_}*JlfE?*0K_eSQqygDP+S_{eNFBgRPA zb<}l@GqcI_cDv>J+phs-eX$_M2qI7vHJb?Sb~}!ajz$UqDJ9yrC8hMm#`xr%xxIfv zL}=S~Qkiq6@B7ih)zy`W$RtZu5s_(KMPzC^{2$Ic#>juLQ&6Lmqw`z<0000aD{JfZ?Lm{pEuvRiq^VDA|g~(MNt&U z)YMb}FvbwaF(Cv7g8^D=qA0>SS0fP-lu`g_t;w4)wMN#nC^2hZ0U3Rwb^Y6&<%O_Y_4@E3dUCgn+g7#NrS_y?rdyc<}n?%gmme zWAn@F^!i=)cOPPqd7vewdQG$_lGR;$HFA1+c=6?vX>VSbVQ-G}`A(_Ie!_><>ec(rz= z)&oF9`0Ca=y?&SP?tD)OfmW-!4be_MsK$0XJA0E+s!cgoJBlLy1J?(TUkWZ9@&Et;07*qoM6N<$ Ef&kohMgRZ+ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_tungsten.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_tungsten.png deleted file mode 100644 index 5a6d3fcafb08d91e0a689ac9c2d6000254e45d1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)bO%o!5 zX_|&o3Nc1<&XiKfIg?W2a=GA~Bc()DRTyJX)!zo05CX;+*7NrEMvRfFs_@>Us#|kP z2|;;zc_F0)fEZjOb7v|s)z_xRZ-V9 zs>=C%UM?ET?Z>+fOGLKG>mV}>!^UZ?<$ON#^~(d!F1)+l4(~mmkDstcw!5oN&U;Uc zkq`oZ{_&3CzYE{K{{W!&6^HH~=N#X@|Dg62??2q)oCCl)hn!9)6%k^Li!H`bN};Z6 zM1)cbA%so&b#?DO^E_izl@tT7udi5Z$vFd1N?{yF-v9j<=pwQ)1`%Pu-!o0q;zHMT zx{8={rfC{fl@J12GJW4~7T+B@oO9%yQPl;*dyjLDaU8k1x#9Wwna9UR=6MF-(A`s2 z6)7c3DT{E+8+?X__ddASl23pX8hueq%6e&SQ*N zYXJx$Fbu=8qBR^p-6JUfy#C7^BK^-dj4`xry98-vcGmE#@A+{1k(@JES62W$Jv}Wr zhr^~p+qR2yr_)J|F^uEL`q=t6j4_+?<2Y`02!W<)mU>Ope!s_ByEUwt5D`=r=N#5r hM1-bkh%r)1;eXCxTRlbwEHnTB002ovPDHLkV1f=ACv^Y- diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_uranium.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_uranium.png deleted file mode 100644 index e9780ab5095f5d4189d37dafc2dd73a655f4729c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 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 B@m~M{ diff --git a/src/main/resources/assets/hbm/textures/models/ams_destroyed.png b/src/main/resources/assets/hbm/textures/models/ams_destroyed.png deleted file mode 100644 index 2160120ae7fdfecc9eb197f1c8f38aaf5724fbc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19291 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 diff --git a/src/main/resources/assets/hbm/textures/models/ams_limiter.png b/src/main/resources/assets/hbm/textures/models/ams_limiter.png deleted file mode 100644 index 16533c720ccd249dcc2b17aff6a054106e3fc99d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10493 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 diff --git a/src/main/resources/assets/hbm/textures/models/selenium_engine_piston.png b/src/main/resources/assets/hbm/textures/models/selenium_engine_piston.png deleted file mode 100644 index ca96a1bb1c22f94e8dac9e362e66901cfeb45732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6343 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 diff --git a/src/main/resources/assets/hbm/textures/models/selenium_engine_rotor.png b/src/main/resources/assets/hbm/textures/models/selenium_engine_rotor.png deleted file mode 100644 index d97da35981bb74312377b3c8402e6dd945b5a1c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2229 zcmV;m2uk;fP)00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V00<>XL_t(&Lw%W9a@;TsMCYQ8xBK5AP_^pm zxk1|>E{;S3=mi+Yd3}6*yuZKm`}6a2*7-O;e4ItrUteGId)C>&=70bGWdpC~32(FD zWA+d{&u4!E=4~EMx+LO>3;zE8ejVRA3PBSNBvlP@kNByc(m~4t4CW4;)M+Gh5|%5!is=EM$+#N=X37k*Jz=(!E?dxvhXVaMC)Od+14m_zIk? zi3t(_M~4%IMjAt$r1Y-O91P}tqsQ?bof z66NCspjgit)0Q=92;>FHJPm87Td0VLc2u)y!!6X84S|v0iM$(Q%av$!DHy1878d~P;vB_C zOoFmCbN3j?W~;PCCp+eMdE-VZPc3i|1$2Uu1A^5$xCPv7H!R z(c#$2#_S%or2`0w3EfevipmCr?8Eyr>lAdd@RI)$&??T z$r@mL*qikLKfS{bk&FwY^$qOGZ*xlUR@xZ~|T zhTs08s8V*_p`2DG;AX_8nyM}Zpp(j|c#B>%)LCPun!0h!9)Cq7LXa0t1%nN^=u!YD z5XemXZNk~;IM_I0=s0!==+;bRo0)(}3dj=kR-iiFW++mtf+R+L>pAOu3D%{93e0yM zOu6nNyi{nPFS44Owi;`AvRq~^&&_?P`J>h<2<}`!jSaxe^Gg9wi$lKdno_liCoIyIHb-K`T|7o#0Z$6?%xS?rE zVt?&>Zj|+r@i)s+Zp;}l&`(G4DvQbf{8^WQu*E=Su^pVgL3_Ve-JpQ8CzLPshdE2F8UMqU-D#z4AprZbZg|BmRt8v^(=}ytcJg%rNXmG|sF|zlR{;1X0|D-; zqL7b7v+IlvVDm6@X?xF!P(BY+*z+G8B^)M8T!_J}+m!R9C~%h(kZ9JN(zDHigMo}O zc1pVcO`J`eGpiqjcB-9iz)nxOmYT4$NYbiu1Muy`cbt0)`8~f08!p#i}KDY-4#pSFSiRMI}SNByS zhH-8Tz%)2!$|?5PDwdw^Op5uzdpz-1zULLPTLrB<>ubzc5|1lxAomi zcoO>&7U_!q>XzAm_dsQ`Mg+Ab40ZR0JwPe;H>|@HgT(1@^^xK{{PEZ6-{2lO#@s$d zW!3J*D9u1+h%iX-Pt3`f*{oeX;3-r+hl%;eZd`;Eo-Jk_p>1p0ApKT-j1=Ww>t-G) z^|26)0*M2;EKn}}4fh~K^o$Gl4^G>tJTQzTz5bij33yE*nBGlXO@s6X!}>@b>5Yvz zOnQGCICx^#S1reX^Z>O&yjusdaY7la$TpFahKmMD&W3p1bBT`xw=;dC=G0}O0P>}v z+-8Z~03KEelCp~IJS2YIP+V&|xOxm!HYx-?7K&?`Vvfsh^KoPjqi3h*2{y3h7zu8e z@~xd|X73(AdMG4;$8enE%{IxlAI3G#<0Pnb@!Kx6P$lf_ye(A1)kF$59>Qx0;&D-~ zv-OiWl!LPTNjz-L8C;)KkOZ65ULz4Hl5V;+z ztnB-e0a$@5rHCl4%(wM4JgPUg%5qt#P`Y1%VX6v1%{$b~HgietENoi$32XNlmF#qv zg(_=3aYSm$LoOo;fDw z*kNoyE1uL@pz=kw&x1*xAMCW5+2mp(Ke{y6?8keTf{BXqrd9wTm!qow3A%U&<00000NkvXXu0mjf DZ($&k From 0e72180e41542e0081f4797b08c6e5f91c8fa1b0 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 22 Apr 2024 22:49:03 -0700 Subject: [PATCH 356/376] i had to switch gears on em, fish-tail in the rear view mirr-on em skrttt! --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../hbm/blocks/network/RadioTorchLogic.java | 86 ++++++++ .../gui/GUIScreenRadioTorchLogic.java | 204 ++++++++++++++++++ .../java/com/hbm/main/CraftingManager.java | 1 + .../java/com/hbm/render/block/RenderRTTY.java | 9 + .../java/com/hbm/tileentity/TileMappings.java | 1 + .../network/TileEntityRadioTorchLogic.java | 193 +++++++++++++++++ src/main/resources/assets/hbm/lang/en_US.lang | 13 ++ .../hbm/textures/blocks/rtty_logic_off.png | Bin 0 -> 225 bytes .../hbm/textures/blocks/rtty_logic_on.png | Bin 0 -> 277 bytes .../textures/blocks/rtty_logic_on.png.mcmeta | 5 + .../gui/machine/gui_rtty_logic_receiver.png | Bin 0 -> 4233 bytes 12 files changed, 515 insertions(+) create mode 100644 src/main/java/com/hbm/blocks/network/RadioTorchLogic.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/rtty_logic_off.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_logic_receiver.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 899843fef..d59d10733 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -796,6 +796,7 @@ public class ModBlocks { public static Block radio_torch_sender; public static Block radio_torch_receiver; public static Block radio_torch_counter; + public static Block radio_torch_logic; public static Block radio_telex; public static Block conveyor; @@ -1950,6 +1951,7 @@ public class ModBlocks { radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_counter = new RadioTorchCounter().setBlockName("radio_torch_counter").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_counter"); + radio_torch_logic = new RadioTorchLogic().setBlockName("radio_torch_logic").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_telex = new RadioTelex().setBlockName("radio_telex").setHardness(3F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radio_telex"); conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); @@ -3230,6 +3232,7 @@ public class ModBlocks { register(radio_torch_sender); register(radio_torch_receiver); register(radio_torch_counter); + register(radio_torch_logic); register(radio_telex); register(crane_extractor); diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java b/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java new file mode 100644 index 000000000..d359389fc --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java @@ -0,0 +1,86 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.gui.GUIScreenRadioTorchLogic; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityRadioTorchBase; +import com.hbm.tileentity.network.TileEntityRadioTorchLogic; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class RadioTorchLogic extends RadioTorchRWBase { + + public RadioTorchLogic() { + super(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":rtty_logic_off"); + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":rtty_logic_on"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + TileEntityRadioTorchLogic tile = new TileEntityRadioTorchLogic(); + tile.lastUpdate = world.getTotalWorldTime(); + return tile; + } + + @Override + public boolean canProvidePower() { + return true; + } + + @Override + public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int side) { + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityRadioTorchLogic) { + int state = ((TileEntityRadioTorchLogic) tile).lastState; + return state; + } + + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchLogic) { + TileEntityRadioTorchLogic radio = (TileEntityRadioTorchLogic) te; + List text = new ArrayList(); + if(radio.channel != null && !radio.channel.isEmpty()) text.add(EnumChatFormatting.AQUA + "Freq: " + radio.channel); + text.add(EnumChatFormatting.RED + "Signal: " + radio.lastState); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchLogic) + return new GUIScreenRadioTorchLogic((TileEntityRadioTorchLogic) te); + + return null; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java new file mode 100644 index 000000000..42b495f45 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java @@ -0,0 +1,204 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCounterTorch; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.network.TileEntityRadioTorchCounter; +import com.hbm.tileentity.network.TileEntityRadioTorchLogic; +import com.hbm.tileentity.network.TileEntityRadioTorchSender; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenRadioTorchLogic extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_rtty_logic_receiver.png"); + + protected TileEntityRadioTorchLogic logic; + protected GuiTextField frequency; + protected GuiTextField[] map; + protected int[] conditions; //so the 'save settings' paradigm applies to the conditions, too + + protected static final int xSize = 256; + protected static final int ySize = 204; + protected int guiLeft; + protected int guiTop; + + public GUIScreenRadioTorchLogic(TileEntityRadioTorchLogic logic) { + this.logic = logic; + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + + Keyboard.enableRepeatEvents(true); + + int oX = 4; + int oY = 4; + + this.frequency = new GuiTextField(this.fontRendererObj, guiLeft + 25 + oX, guiTop + 17 + oY, 90 - oX * 2, 14); + this.frequency.setTextColor(0x00ff00); + this.frequency.setDisabledTextColour(0x00ff00); + this.frequency.setEnableBackgroundDrawing(false); + this.frequency.setMaxStringLength(10); + this.frequency.setText(logic.channel == null ? "" : logic.channel); + + this.map = new GuiTextField[16]; + this.conditions = new int[16]; + + for(int i = 0; i < 16; i++) { + this.map[i] = new GuiTextField(this.fontRendererObj, guiLeft + 7 + (130 * (i / 8)) + oX + 18, guiTop + 53 + (18 * (i % 8)) + oY, 54 - oX * 2, 14); + this.map[i].setTextColor(0x00ff00); + this.map[i].setDisabledTextColour(0x00ff00); + this.map[i].setEnableBackgroundDrawing(false); + this.map[i].setMaxStringLength(15); + this.map[i].setText(logic.mapping[i] == null ? "" : logic.mapping[i]); + + this.conditions[i] = logic.conditions[i]; + } + } + + @Override + public void drawScreen(int x, int y, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, x, y); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(x, y); + GL11.glEnable(GL11.GL_LIGHTING); + //easy selection + if(guiLeft > x && guiLeft + xSize <= x && guiTop > y && guiTop + ySize <= y) return; + + if(!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && Mouse.next()) { + for(int j = 0; j < 16; j++) { + if(guiLeft + 7 + (130 * (j / 8)) <= x && guiLeft + 7 + 18 + (130 * (j / 8)) > x && guiTop + 53 + (18 * (j % 8)) <= y && guiTop + 53 + 18 + (18 * (j % 8)) > y) { + int scroll = Mouse.getEventDWheel(); + + if(scroll > 0) this.conditions[j] = (this.conditions[j] + 1) % 10; + if(scroll < 0) this.conditions[j] = (this.conditions[j] + 9) % 10; + return; + } + } + } + } + + private void drawGuiContainerForegroundLayer(int x, int y) { + String name = I18nUtil.resolveKey("container.rttyLogic"); + this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752); + //TODO add localization for *every* RTTY + if(guiLeft + 137 <= x && guiLeft + 137 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { logic.descending ? "Descending Order" : "Ascending Order" }), x, y); + } + if(guiLeft + 173 <= x && guiLeft + 173 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { logic.polling ? "Polling" : "State Change" }), x, y); + } + if(guiLeft + 209 <= x && guiLeft + 209 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { "Save Settings" }), x, y); + } + for(int j = 0; j < 16; j++) { + if(guiLeft + 7 + (130 * (j / 8)) <= x && guiLeft + 7 + 18 + (130 * (j / 8)) > x && guiTop + 53 + (18 * (j % 8)) <= y && guiTop + 53 + 18 + (18 * (j % 8)) > y) { + func_146283_a(Arrays.asList(new String[] { I18nUtil.resolveKey("desc.gui.rttyLogic.cond" + this.conditions[j]) }), x, y); + break; + } + } + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + if(logic.descending) drawTexturedModalRect(guiLeft + 137, guiTop + 17, 0, 204, 18, 18); + if(logic.polling) drawTexturedModalRect(guiLeft + 173, guiTop + 17, 0, 222, 18, 18); + + for(int i = 0; i < 16; i++) { + if(logic.mapping[i].isEmpty()) { + if(this.conditions[i] != 0) + drawTexturedModalRect(guiLeft + 7 + (130 * (i / 8)), guiTop + 53 + (18 * (i % 8)), 18 + this.conditions[i] * 18, 222, 18, 18); + } else { + drawTexturedModalRect(guiLeft + 7 + (130 * (i / 8)), guiTop + 53 + (18 * (i % 8)), 18 + this.conditions[i] * 18, 204, 18, 18); + drawTexturedModalRect(guiLeft + 85 + (130 * (i / 8)), guiTop + 57 + (18 * (i % 8)), 198, 204, 14, 10); + } + } + + for(int i = 0; i < 16; i++) this.map[i].drawTextBox(); + this.frequency.drawTextBox(); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + this.frequency.mouseClicked(x, y, i); + for(int j = 0; j < 16; j++) this.map[j].mouseClicked(x, y, i); + + if(guiLeft + 137 <= x && guiLeft + 137 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("d", !logic.descending); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, logic.xCoord, logic.yCoord, logic.zCoord)); + } + + if(guiLeft + 173 <= x && guiLeft + 173 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("p", !logic.polling); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, logic.xCoord, logic.yCoord, logic.zCoord)); + } + + if(guiLeft + 209 <= x && guiLeft + 209 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setString("c", this.frequency.getText()); + for(int j = 0; j < 16; j++) data.setString("m" + j, this.map[j].getText().isEmpty() ? "" : this.map[j].getText()); + for(int j = 0; j < 16; j++) data.setInteger("c" + j, this.conditions[j]); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, logic.xCoord, logic.yCoord, logic.zCoord)); + } + + for(int j = 0; j < 16; j++) { + if(guiLeft + 7 + (130 * (j / 8)) <= x && guiLeft + 7 + 18 + (130 * (j / 8)) > x && guiTop + 53 + (18 * (j % 8)) <= y && guiTop + 53 + 18 + (18 * (j % 8)) > y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + this.conditions[j] = (this.conditions[j] + 1) % 10; + } + } + } + + @Override + protected void keyTyped(char c, int i) { + + if(this.frequency.textboxKeyTyped(c, i)) + return; + + for(int j = 0; j < 16; j++) if(this.map[j].textboxKeyTyped(c, i)) return; + + if(i == 1 || i == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + this.mc.setIngameFocus(); + } + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index cb9013f34..8d0ff07ea 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -248,6 +248,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.radio_torch_sender, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', NETHERQUARTZ.gem() }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_receiver, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.radio_torch_logic, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_counter, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.radio_telex, 2), new Object[] { "SCR", "W#W", "WWW", 'S', ModBlocks.radio_torch_sender, 'C', ModItems.crt_display, 'R', ModBlocks.radio_torch_receiver, 'W', KEY_PLANKS, '#', ModItems.circuit_aluminium }); diff --git a/src/main/java/com/hbm/render/block/RenderRTTY.java b/src/main/java/com/hbm/render/block/RenderRTTY.java index 0f657c636..68b3af3ec 100644 --- a/src/main/java/com/hbm/render/block/RenderRTTY.java +++ b/src/main/java/com/hbm/render/block/RenderRTTY.java @@ -4,6 +4,7 @@ import com.hbm.blocks.network.RadioTorchBase; import com.hbm.main.ResourceManager; import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.network.TileEntityRadioTorchBase; +import com.hbm.tileentity.network.TileEntityRadioTorchLogic; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; @@ -39,6 +40,14 @@ public class RenderRTTY implements ISimpleBlockRenderingHandler { icon = block.getIcon(1, 0); } } + //consequences of my actions + if(tile instanceof TileEntityRadioTorchLogic) { + TileEntityRadioTorchLogic rtty = (TileEntityRadioTorchLogic) tile; + + if(rtty.lastState > 0) { + icon = block.getIcon(1, 0); + } + } float flip = 0; float rotation = 0; diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index ca90591b5..b64de7096 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -399,6 +399,7 @@ public class TileMappings { put(TileEntityRadioTorchSender.class, "tileentity_rtty_sender"); put(TileEntityRadioTorchReceiver.class, "tileentity_rtty_rec"); put(TileEntityRadioTorchCounter.class, "tileentity_rtty_counter"); + put(TileEntityRadioTorchLogic.class, "tileentity_rtty_logic"); put(TileEntityRadioTelex.class, "tileentity_rtty_telex"); put(TileEntityDroneWaypoint.class, "tileentity_drone_waypoint"); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java new file mode 100644 index 000000000..b5d87c8bf --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java @@ -0,0 +1,193 @@ +package com.hbm.tileentity.network; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.network.RTTYSystem.RTTYChannel; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; + +public class TileEntityRadioTorchLogic extends TileEntity implements INBTPacketReceiver, IControlReceiver { + + /** channel we're broadcasting on/listening to */ + public String channel = ""; + /** previous redstone state for input/output, needed for state change detection */ + public int lastState = 0; + /** last update tick, needed for receivers listening for changes */ + public long lastUpdate; + /** switches state change mode to tick-based polling */ + public boolean polling = false; + /** switches evaluation of conditions from ascending to descending */ + public boolean descending = false; + /** mapping for constants to compare against */ + public String[] mapping; + /** mapping for conditions through [1, 10], being (<, <=, >=, >, ==, !=, equals, !equals, contains, !contains) */ + public int[] conditions; + + public TileEntityRadioTorchLogic() { + this.mapping = new String[16]; + for(int i = 0; i < 16; i++) this.mapping[i] = ""; + this.conditions = new int[16]; + for(int i = 0; i < 16; i++) this.conditions[i] = 0; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(!this.channel.isEmpty()) { + + RTTYChannel chan = RTTYSystem.listen(worldObj, this.channel); + + if(chan != null && (this.polling || (chan.timeStamp > this.lastUpdate - 1 && chan.timeStamp != -1))) { // if we're either polling or a new message has come in + String msg = "" + chan.signal; + this.lastUpdate = worldObj.getTotalWorldTime(); + int nextState = 0; //if no remap apply, default to 0 + + if(chan.timeStamp < this.lastUpdate - 2 && this.polling) { + /* the vast majority use-case for this is going to be inequalities, NOT parsing, and the input is undefined - not the output + * if no signal => 0 for polling, advanced users parsing strings can easily accommodate this fact instead of breaking numerical torches */ + msg = "0"; + } + + if(descending) { + for(int i = 15; i >= 0; i--) { + if(!mapping[i].equals("") && parseSignal(msg, i)) { + nextState = i; + break; + } + } + } else { + for(int i = 0; i <= 15; i++) { + if(!mapping[i].equals("") && parseSignal(msg, i)) { + nextState = i; + break; + } + } + } + + if(this.lastState != nextState) { + this.lastState = nextState; + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, this.getBlockType()); + this.markDirty(); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("p", polling); + data.setBoolean("d", descending); + if(channel != null) data.setString("c", channel); + for(int i = 0; i < 16; i++) if(!mapping[i].equals("")) data.setString("m" + i, mapping[i]); + for(int i = 0; i < 16; i++) if(conditions[i] > 0) data.setInteger("c" + i, conditions[i]); + INBTPacketReceiver.networkPack(this, data, 50); + } + } + + public boolean parseSignal(String signal, int index) { + if(conditions[index] <= 5) { //if a non-string operator + int sig = 0; + int map = 0; + try { sig = Integer.parseInt(signal); map = Integer.parseInt(mapping[index]); } catch(Exception x) { + return false; //not a valid input; skip! slightly annoying about the mapping but we'll restrict input anyway + }; + + switch(conditions[index]) { + default: + return sig < map; + case 1: + return sig <= map; + case 2: + return sig >= map; + case 3: + return sig > map; + case 4: + return sig == map; + case 5: + return sig != map; + } + } + + switch(conditions[index]) { + default: + return signal.equals(mapping[index]); + case 7: + return !signal.equals(mapping[index]); + case 8: + return signal.contains(mapping[index]); + case 9: + return !signal.contains(mapping[index]); + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.polling = nbt.getBoolean("p"); + this.descending = nbt.getBoolean("d"); + this.lastState = nbt.getInteger("l"); + this.lastUpdate = nbt.getLong("u"); + this.channel = nbt.getString("c"); + for(int i = 0; i < 16; i++) this.mapping[i] = nbt.getString("m" + i); + for(int i = 0; i < 16; i++) this.conditions[i] = nbt.getInteger("c" + i); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("p", polling); + nbt.setBoolean("d", descending); + nbt.setInteger("l", lastState); + nbt.setLong("u", lastUpdate); + if(channel != null) nbt.setString("c", channel); + for(int i = 0; i < 16; i++) if(!mapping[i].equals("")) nbt.setString("m" + i, mapping[i]); + for(int i = 0; i < 16; i++) if(conditions[i] > 0) nbt.setInteger("c" + i, conditions[i]); + } + + public void networkUnpack(NBTTagCompound nbt) { + this.polling = nbt.getBoolean("p"); + this.channel = nbt.getString("c"); + this.descending = nbt.getBoolean("d"); + for(int i = 0; i < 16; i++) this.mapping[i] = nbt.getString("m" + i); + for(int i = 0; i < 16; i++) this.conditions[i] = nbt.getInteger("c" + i); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setByte("l", (byte) this.lastState); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + int last = this.lastState; + this.lastState = pkt.func_148857_g().getByte("l"); + if(this.lastState != last) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 16D; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("p")) this.polling = data.getBoolean("p"); + if(data.hasKey("c")) this.channel = data.getString("c"); + if(data.hasKey("d")) this.descending = data.getBoolean("d"); + for(int i = 0; i < 16; i++) if(data.hasKey("m" + i)) this.mapping[i] = data.getString("m" + i); + for(int i = 0; i < 16; i++) if(data.hasKey("c" + i)) this.conditions[i] = data.getInteger("c" + i); + + this.markDirty(); + } +} diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 872fd2161..b930e3455 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -814,6 +814,7 @@ container.reix=Rei-X Mainframe container.rtg=RT Generator container.rtgFurnace=RTG Furnace container.rttyCounter=Redstone-over-Radio Item Counter +container.rttyLogic=Redstone-over-Radio Logic Receiver container.rttyReceiver=Redstone-over-Radio Receiver container.rttySender=Redstone-over-Radio Transmitter container.safe=Safe @@ -926,6 +927,16 @@ desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core +desc.gui.rttyLogic.cond0=Signal §6LESS THAN§r Constant +desc.gui.rttyLogic.cond1=Signal §6LESS THAN OR EQUAL TO§r Constant +desc.gui.rttyLogic.cond2=Signal §6GREATER THAN OR EQUAL TO§r Constant +desc.gui.rttyLogic.cond3=Signal §6GREATER THAN§r Constant +desc.gui.rttyLogic.cond4=Signal §6EQUAL TO§r Constant +desc.gui.rttyLogic.cond5=Signal §6NOT EQUAL TO§r Constant +desc.gui.rttyLogic.cond6=Signal §6MATCHES§r String +desc.gui.rttyLogic.cond7=Signal §6DOES NOT MATCH§r String +desc.gui.rttyLogic.cond8=Signal §6CONTAINS§r String +desc.gui.rttyLogic.cond9=Signal §6DOES NOT CONTAIN§r String desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay desc.gui.rtg.heat=§eCurrent heat level: %s @@ -5489,6 +5500,8 @@ tile.radar_screen.name=Radar Screen tile.radio_telex.name=Telex Machine tile.radio_torch_counter.name=Redstone-over-Radio Item Counter tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items +tile.radio_torch_logic.name=Redstone-over-Radio Logic Receiver +tile.radio_torch_logic.desc=Placable on flat surfaces or comparator-compatible blocks$Maps redstone signals to conditions evaluated in a set order$Numerical or string inputs are compared against a constant tile.radio_torch_receiver.name=Redstone-over-Radio Receiver tile.radio_torch_receiver.desc=Placable on flat surfaces or comparator-compatible blocks tile.radio_torch_sender.name=Redstone-over-Radio Transmitter diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_logic_off.png b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_off.png new file mode 100644 index 0000000000000000000000000000000000000000..789d461f45e5389bc0e0a27b54ad018338a041ba GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!7@)5#}EtuWC_-0**~>MKghQ%j9Jsb>6Oed z;n@8}Z9Mu7S{#y1q75d0fA0Tl&oLpDf#Xl@$q)a}>Kd6gJEW#Qtv5C{{&a|eWyg*k z694}GW`8=7QRADFhsTL}XJ_Y6dlxKR=y-vNn{1`ISV`@iy0XB4ude`@%$AjK*3d>E{-7{-pLZI&9Z+|6Mpa?3ed}BSn}~d zufjX^%K{r1|1W3$Sbr*JKfb@0pW@CpeStWyyCEO8kHR!D?;3rxTewPWV*B2K?O8b?}XY*pznJ3)^fK?C_B0ddkSm%<#=L VS^rs5Qa{ku44$rjF6*2UngD0!X;1(F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png.mcmeta new file mode 100644 index 000000000..efc331201 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_logic_receiver.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_logic_receiver.png new file mode 100644 index 0000000000000000000000000000000000000000..568aa79ad00259f00b8f6fe28ed8adb779b510e4 GIT binary patch literal 4233 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 Date: Tue, 23 Apr 2024 16:11:30 +0200 Subject: [PATCH 357/376] the malicious gigglefish from the silly dimension --- changelog | 2 + src/main/java/com/hbm/blocks/ModBlocks.java | 13 +- .../machine/BlockICFLaserComponent.java | 54 ++++++++ .../hbm/blocks/machine/MachineGenerator.java | 42 ------ .../hbm/blocks/network/RadioTorchLogic.java | 1 - .../hbm/handler/nei/BoilerRecipeHandler.java | 127 ------------------ .../gui/GUIScreenRadioTorchLogic.java | 4 - .../hbm/inventory/recipes/MachineRecipes.java | 34 ----- .../java/com/hbm/main/CraftingManager.java | 2 - src/main/java/com/hbm/main/MainRegistry.java | 1 + src/main/java/com/hbm/main/NEIRegistry.java | 49 +------ .../network/TileEntityRadioTorchLogic.java | 1 - .../hbm/world/dungeon/CrashedVertibird.java | 16 +-- .../com/hbm/world/dungeon/DesertAtom001.java | 2 +- .../com/hbm/world/dungeon/DesertAtom002.java | 2 +- .../com/hbm/world/dungeon/DesertAtom003.java | 2 +- .../java/com/hbm/world/dungeon/Spaceship.java | 4 +- .../java/com/hbm/world/dungeon/Vertibird.java | 16 +-- .../world/gen/component/CivilianFeatures.java | 2 +- .../world/gen/component/SiloComponent.java | 2 +- .../assets/hbm/textures/blocks/icf_block.png | Bin 0 -> 355 bytes .../hbm/textures/blocks/icf_block_ct.png | Bin 0 -> 1039 bytes .../textures/blocks/icf_capacitor_side.png | Bin 0 -> 443 bytes .../hbm/textures/blocks/icf_capacitor_top.png | Bin 0 -> 314 bytes .../assets/hbm/textures/blocks/icf_casing.png | Bin 0 -> 684 bytes .../assets/hbm/textures/blocks/icf_cell.png | Bin 0 -> 678 bytes .../hbm/textures/blocks/icf_concrete.png | Bin 0 -> 614 bytes .../hbm/textures/blocks/icf_controller.png | Bin 0 -> 737 bytes .../hbm/textures/blocks/icf_emitter.png | Bin 0 -> 476 bytes .../hbm/textures/blocks/icf_turbocharger.png | Bin 0 -> 453 bytes .../textures/blocks/industrial_generator.png | Bin 332 -> 0 bytes .../hbm/textures/blocks/machine_flare.png | Bin 195 -> 0 bytes .../hbm/textures/blocks/rtty_logic_on.png | Bin 277 -> 259 bytes 33 files changed, 88 insertions(+), 288 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java delete mode 100644 src/main/java/com/hbm/blocks/machine/MachineGenerator.java delete mode 100644 src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_block.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_block_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_capacitor_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_capacitor_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_casing.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_cell.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_concrete.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_controller.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_emitter.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_turbocharger.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/industrial_generator.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_flare.png diff --git a/changelog b/changelog index 73897882e..6bfcac23b 100644 --- a/changelog +++ b/changelog @@ -14,6 +14,8 @@ * Rotary engine (1 ID) * FWatz (8 IDs) * Meteorite ores (10 IDs) + * Tiny nuclear rector (1 ID) +* The small oil heaters are no longer craftable and the NEI handler has been removed, however existing ones can still be used * The loot pool for meteorite treasure blocks has been updated * Treasures are no longer senselessly progression breaking, radioactive or plain stupid (whole-ass machines inside meteorites) * The treasure now consists of mainly some rarer earlygame ingots, circuits, some gear, a small selection of armor mods and alexandrite (rare) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index d7dd15ab9..f8d1e7bde 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -690,8 +690,6 @@ public class ModBlocks { public static Block machine_rtg_furnace_off; public static Block machine_rtg_furnace_on; - public static Block machine_generator; - public static Block machine_industrial_generator; public static Block machine_cyclotron; @@ -895,6 +893,9 @@ public class ModBlocks { public static Block plasma_heater; public static Block icf; + public static Block icf_controller; + public static Block icf_laser_component; + public static Block icf_block; public static Block watz; public static Block watz_pump; @@ -1798,8 +1799,7 @@ public class ModBlocks { machine_rtg_furnace_off = new MachineRtgFurnace(false).setBlockName("machine_rtg_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_rtg_furnace_on = new MachineRtgFurnace(true).setBlockName("machine_rtg_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - machine_generator = new MachineGenerator(Material.iron).setBlockName("machine_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); - machine_industrial_generator = new MachineIGenerator(Material.iron).setBlockName("machine_industrial_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":industrial_generator"); + machine_industrial_generator = new MachineIGenerator(Material.iron).setBlockName("machine_industrial_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); machine_cyclotron = new MachineCyclotron(Material.iron).setBlockName("machine_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cyclotron"); machine_exposure_chamber = new MachineExposureChamber(Material.iron).setBlockName("machine_exposure_chamber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); machine_radgen = new MachineRadGen(Material.iron).setBlockName("machine_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_radgen"); @@ -2010,6 +2010,7 @@ public class ModBlocks { plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + icf_laser_component = new BlockICFLaserComponent().setBlockName("icf_laser_component").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab); watz_element = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_element_top").setBlockName("watz_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_element_side"); watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side"); @@ -3049,7 +3050,6 @@ public class ModBlocks { register(machine_wood_burner); register(machine_diesel); register(machine_combustion_engine); - GameRegistry.registerBlock(machine_generator, machine_generator.getUnlocalizedName()); GameRegistry.registerBlock(machine_controller, machine_controller.getUnlocalizedName()); GameRegistry.registerBlock(reactor_research, reactor_research.getUnlocalizedName()); GameRegistry.registerBlock(reactor_zirnox, reactor_zirnox.getUnlocalizedName()); @@ -3341,7 +3341,8 @@ public class ModBlocks { GameRegistry.registerBlock(iter, iter.getUnlocalizedName()); GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); - GameRegistry.registerBlock(icf, icf.getUnlocalizedName()); + register(icf_laser_component); + register(icf); GameRegistry.registerBlock(watz_element, watz_element.getUnlocalizedName()); GameRegistry.registerBlock(watz_control, watz_control.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java b/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java new file mode 100644 index 000000000..6d37458fe --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java @@ -0,0 +1,54 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class BlockICFLaserComponent extends BlockEnumMulti { + + protected IIcon[] iconsTop; + + public BlockICFLaserComponent() { + super(Material.iron, EnumICFPart.class, true, true); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + this.iconsTop = new IIcon[enums.length]; + + this.icons[0] = this.iconsTop[0] = reg.registerIcon(RefStrings.MODID + ":icf_casing"); + this.icons[1] = this.iconsTop[1] = reg.registerIcon(RefStrings.MODID + ":icf_cell"); + this.icons[2] = this.iconsTop[2] = reg.registerIcon(RefStrings.MODID + ":icf_emitter"); + this.icons[3] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_side"); + this.icons[4] = reg.registerIcon(RefStrings.MODID + ":icf_turbocharger"); + this.iconsTop[3] = this.iconsTop[4] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_top"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.iconsTop[meta % this.iconsTop.length] : this.icons[meta % this.icons.length]; + } + + @Override + public int getSubCount() { + return 5; + } + + public static enum EnumICFPart { + CASING, + CELL, + EMITTER, + CAPACITOR, + TURBO + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineGenerator.java b/src/main/java/com/hbm/blocks/machine/MachineGenerator.java deleted file mode 100644 index 4efd72f33..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineGenerator.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; - -public class MachineGenerator extends Block { - - @SideOnly(Side.CLIENT) - private IIcon iconSide; - - public MachineGenerator(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":machine_generator_side"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_generator"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 0 ? blockIcon : (side == 1 ? blockIcon : iconSide); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return ModItems.circuit_targeting_tier3; - } -} diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java b/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java index d359389fc..13cc2d107 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java @@ -6,7 +6,6 @@ import java.util.List; import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.gui.GUIScreenRadioTorchLogic; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.network.TileEntityRadioTorchBase; import com.hbm.tileentity.network.TileEntityRadioTorchLogic; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java deleted file mode 100644 index 776261ac4..000000000 --- a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.hbm.handler.nei; - -import java.awt.Rectangle; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import com.hbm.inventory.gui.GUIMachineBoiler; -import com.hbm.inventory.gui.GUIMachineBoilerElectric; -import com.hbm.inventory.recipes.MachineRecipes; -import com.hbm.lib.RefStrings; - -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.TemplateRecipeHandler; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.item.ItemStack; - -public class BoilerRecipeHandler extends TemplateRecipeHandler { - - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); - - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { - PositionedStack input; - PositionedStack result; - - public SmeltingSet(ItemStack input, ItemStack result) { - input.stackSize = 1; - this.input = new PositionedStack(input, 21 + 9, 6 + 18); - this.result = new PositionedStack(result, 120, 24); - } - - @Override - public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] { input })); - } - - @Override - public PositionedStack getResult() { - return result; - } - } - - @Override - public String getRecipeName() { - return "Boiler"; - } - - @Override - public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/nei/gui_nei_boiler.png"; - } - - @Override - public Class getGuiClass() { - return null; - } - - @Override - public TemplateRecipeHandler newInstance() { - return super.newInstance(); - } - - @Override - public void loadCraftingRecipes(String outputId, Object... results) { - if((outputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { - Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for(Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue())); - } - } else { - super.loadCraftingRecipes(outputId, results); - } - } - - @Override - public void loadCraftingRecipes(ItemStack result) { - Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for(Map.Entry recipe : recipes.entrySet()) { - if(compareFluidStacks((ItemStack) recipe.getValue(), result) || compareFluidStacks((ItemStack) recipe.getValue(), result)) - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue())); - } - } - - @Override - public void loadUsageRecipes(String inputId, Object... ingredients) { - if((inputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { - loadCraftingRecipes("ntmboiler", new Object[0]); - } else { - super.loadUsageRecipes(inputId, ingredients); - } - } - - @Override - public void loadUsageRecipes(ItemStack ingredient) { - Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for(Map.Entry recipe : recipes.entrySet()) { - if(compareFluidStacks(ingredient, (ItemStack) recipe.getKey())) - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue())); - } - } - - private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { - return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); - } - - @Override - public void drawExtras(int recipe) { - drawProgressBar(80, 23, 0, 85, 6, 17, 240, 3); - } - - @Override - public void loadTransferRects() { - transferRectsGui = new LinkedList(); - guiGui = new LinkedList>(); - - transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27 - 9, 23, 36, 18), "ntmboiler")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 29 - 18 - 18, 18, 18 * 2), "ntmboiler")); - guiGui.add(GUIMachineBoiler.class); - guiGui.add(GUIMachineBoilerElectric.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java index 42b495f45..c78ea3061 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java @@ -6,20 +6,16 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; -import com.hbm.inventory.container.ContainerCounterTorch; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.network.TileEntityRadioTorchCounter; import com.hbm.tileentity.network.TileEntityRadioTorchLogic; -import com.hbm.tileentity.network.TileEntityRadioTorchSender; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiTextField; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 847c5b225..571777acd 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -55,15 +55,6 @@ public class MachineRecipes { * this is the smoldering crater where once the 2016 shredder recipe code was */ - public Map getCMBRecipes() { - Map recipes = new HashMap(); - recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_advanced_alloy), new ItemStack(ModItems.ingot_magnetized_tungsten) }, - new ItemStack(ModItems.ingot_combine_steel, 4)); - recipes.put(new ItemStack[] { new ItemStack(ModItems.powder_advanced_alloy), new ItemStack(ModItems.powder_magnetized_tungsten) }, - new ItemStack(ModItems.ingot_combine_steel, 4)); - return recipes; - } - public ArrayList getBatteries() { ArrayList fuels = new ArrayList(); fuels.add(new ItemStack(ModItems.battery_potato)); @@ -144,31 +135,6 @@ public class MachineRecipes { return false; } - - public Map getBoilerRecipes() { - - Map recipes = new HashMap(); - - for(int i = 0; i < Fluids.getAll().length; i++) { - Object[] outs = getBoilerOutput(Fluids.fromID(i)); - - if(outs != null) { - - ItemStack in = new ItemStack(ModItems.fluid_icon, 1, i); - in.stackTagCompound = new NBTTagCompound(); - in.stackTagCompound.setInteger("fill", (Integer) outs[2]); - - ItemStack out = new ItemStack(ModItems.fluid_icon, 1, ((FluidType)outs[0]).getID()); - out.stackTagCompound = new NBTTagCompound(); - out.stackTagCompound.setInteger("fill", (Integer) outs[1]); - - recipes.put(in, out); - } - } - - return recipes; - } - public Map getFluidContainers() { Map map = new HashMap(); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 454ae9678..20840711d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -293,8 +293,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.capacitor_schrabidate, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', SBD.block(), 'W', STEEL.ingot() }); //addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate528(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace}); - addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', CU.plateCast(), 'T', ModItems.tank_steel, 'F', Blocks.furnace }); - addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', CU.plateCast(), 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "SSS", "CRB", "SSS", 'S', STEEL.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 1a776c804..bab9ff66b 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1327,6 +1327,7 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.ore_meteor_lead"); ignoreMappings.add("hbm:tile.ore_meteor_lithium"); ignoreMappings.add("hbm:tile.ore_meteor_starmetal"); + ignoreMappings.add("hbm:tile.machine_generator"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java index d8bcfd593..1909c79e5 100644 --- a/src/main/java/com/hbm/main/NEIRegistry.java +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -5,53 +5,7 @@ import java.util.List; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.VersatileConfig; -import com.hbm.handler.nei.AlloyFurnaceRecipeHandler; -import com.hbm.handler.nei.AnvilRecipeHandler; -import com.hbm.handler.nei.ArcWelderHandler; -import com.hbm.handler.nei.AshpitHandler; -import com.hbm.handler.nei.AssemblerRecipeHandler; -import com.hbm.handler.nei.BoilerRecipeHandler; -import com.hbm.handler.nei.BoilingHandler; -import com.hbm.handler.nei.BookRecipeHandler; -import com.hbm.handler.nei.BreederRecipeHandler; -import com.hbm.handler.nei.CentrifugeRecipeHandler; -import com.hbm.handler.nei.ChemplantRecipeHandler; -import com.hbm.handler.nei.CokingHandler; -import com.hbm.handler.nei.CombinationHandler; -import com.hbm.handler.nei.ConstructionHandler; -import com.hbm.handler.nei.CrackingHandler; -import com.hbm.handler.nei.CrucibleAlloyingHandler; -import com.hbm.handler.nei.CrucibleCastingHandler; -import com.hbm.handler.nei.CrucibleSmeltingHandler; -import com.hbm.handler.nei.CrystallizerRecipeHandler; -import com.hbm.handler.nei.CustomMachineHandler; -import com.hbm.handler.nei.CyclotronRecipeHandler; -import com.hbm.handler.nei.ElectrolyserFluidHandler; -import com.hbm.handler.nei.ElectrolyserMetalHandler; -import com.hbm.handler.nei.ExposureChamberHandler; -import com.hbm.handler.nei.FluidRecipeHandler; -import com.hbm.handler.nei.FractioningHandler; -import com.hbm.handler.nei.FuelPoolHandler; -import com.hbm.handler.nei.FusionRecipeHandler; -import com.hbm.handler.nei.GasCentrifugeRecipeHandler; -import com.hbm.handler.nei.HadronRecipeHandler; -import com.hbm.handler.nei.HydrotreatingHandler; -import com.hbm.handler.nei.LiquefactionHandler; -import com.hbm.handler.nei.MixerHandler; -import com.hbm.handler.nei.OutgasserHandler; -import com.hbm.handler.nei.PressRecipeHandler; -import com.hbm.handler.nei.RTGRecipeHandler; -import com.hbm.handler.nei.RadiolysisRecipeHandler; -import com.hbm.handler.nei.RefineryRecipeHandler; -import com.hbm.handler.nei.ReformingHandler; -import com.hbm.handler.nei.SILEXRecipeHandler; -import com.hbm.handler.nei.SawmillHandler; -import com.hbm.handler.nei.ShredderRecipeHandler; -import com.hbm.handler.nei.SmithingRecipeHandler; -import com.hbm.handler.nei.SolidificationHandler; -import com.hbm.handler.nei.ToolingHandler; -import com.hbm.handler.nei.VacuumRecipeHandler; -import com.hbm.handler.nei.ZirnoxRecipeHandler; +import com.hbm.handler.nei.*; import codechicken.nei.recipe.TemplateRecipeHandler; @@ -76,7 +30,6 @@ public class NEIRegistry { handlers.add(new CrackingHandler()); handlers.add(new ReformingHandler()); handlers.add(new HydrotreatingHandler()); - handlers.add(new BoilerRecipeHandler()); handlers.add(new ChemplantRecipeHandler()); handlers.add(new CrystallizerRecipeHandler()); handlers.add(new BookRecipeHandler()); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java index b5d87c8bf..4a44c3504 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java @@ -10,7 +10,6 @@ import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; public class TileEntityRadioTorchLogic extends TileEntity implements INBTPacketReceiver, IControlReceiver { diff --git a/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java b/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java index f9ce89fe1..68b8f2cbb 100644 --- a/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java +++ b/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java @@ -267,9 +267,9 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 6, y + 7 - yOffset, z + 8, Block1, 0, 3); world.setBlock(x + 7, y + 7 - yOffset, z + 8, Block1, 0, 3); world.setBlock(x + 3, y + 7 - yOffset, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + 7 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 4, y + 7 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 5, y + 7 - yOffset, z + 9, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 6, y + 7 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 6, y + 7 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 7, y + 7 - yOffset, z + 9, Block1, 0, 3); world.setBlock(x + 5, y + 7 - yOffset, z + 10, Block4, 0, 3); world.setBlock(x + 6, y + 7 - yOffset, z + 10, Block1, 0, 3); @@ -304,13 +304,13 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 6, y + 8 - yOffset, z + 8, Block1, 0, 3); world.setBlock(x + 7, y + 8 - yOffset, z + 8, Block1, 0, 3); world.setBlock(x + 3, y + 8 - yOffset, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + 8 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 4, y + 8 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 5, y + 8 - yOffset, z + 9, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 6, y + 8 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 6, y + 8 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 7, y + 8 - yOffset, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + 8 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 4, y + 8 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 5, y + 8 - yOffset, z + 10, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 6, y + 8 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 6, y + 8 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 7, y + 8 - yOffset, z + 10, Block1, 0, 3); world.setBlock(x + 5, y + 8 - yOffset, z + 11, Block4, 0, 3); world.setBlock(x + 6, y + 8 - yOffset, z + 11, Block1, 0, 3); @@ -335,9 +335,9 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 4, y + 9 - yOffset, z + 9, Block1, 0, 3); world.setBlock(x + 5, y + 9 - yOffset, z + 9, Block4, 0, 3); world.setBlock(x + 6, y + 9 - yOffset, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + 9 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 4, y + 9 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 5, y + 9 - yOffset, z + 10, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 6, y + 9 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 6, y + 9 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 7, y + 9 - yOffset, z + 10, Block1, 0, 3); world.setBlock(x + 5, y + 9 - yOffset, z + 11, ModBlocks.red_wire_coated, 0, 3); world.setBlock(x + 6, y + 9 - yOffset, z + 11, Block1, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom001.java b/src/main/java/com/hbm/world/dungeon/DesertAtom001.java index cb2c27ede..194aea997 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom001.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom001.java @@ -31,7 +31,7 @@ public class DesertAtom001 extends WorldGenerator Block Block11 = ModBlocks.reinforced_glass; Block Block12 = ModBlocks.reinforced_lamp_off; Block Block13 = ModBlocks.pole_satellite_receiver; - Block Block14 = ModBlocks.machine_generator; + Block Block14 = ModBlocks.pwr_fuel; Block Block15 = ModBlocks.deco_titanium; Block Block16 = ModBlocks.block_lead; Block Block17 = ModBlocks.ore_schrabidium; diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java index c272079dd..81fdc1634 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java @@ -31,7 +31,7 @@ public class DesertAtom002 Block Block11 = ModBlocks.reinforced_glass; Block Block12 = ModBlocks.reinforced_lamp_off; Block Block13 = ModBlocks.pole_satellite_receiver; - Block Block14 = ModBlocks.machine_generator; + Block Block14 = ModBlocks.pwr_fuel; Block Block15 = ModBlocks.deco_titanium; Block Block16 = ModBlocks.block_lead; Block Block17 = ModBlocks.ore_nether_plutonium; diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java index 6aca90eec..de58b4283 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java @@ -34,7 +34,7 @@ public class DesertAtom003 Block Block11 = ModBlocks.reinforced_glass; Block Block12 = ModBlocks.reinforced_lamp_off; Block Block13 = ModBlocks.pole_satellite_receiver; - Block Block14 = ModBlocks.machine_generator; + Block Block14 = ModBlocks.pwr_fuel; Block Block15 = ModBlocks.deco_titanium; Block Block16 = ModBlocks.block_lead; Block Block17 = ModBlocks.ore_schrabidium; diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship.java b/src/main/java/com/hbm/world/dungeon/Spaceship.java index b3deb1a02..4ab3bba36 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship.java @@ -889,14 +889,14 @@ public class Spaceship extends WorldGenerator world.setBlock(x + 10, y + -1, z + 29, Block3, 0, 3); world.setBlock(x + 11, y + -1, z + 29, Block3, 0, 3); world.setBlock(x + 2, y + -1, z + 30, Block3, 0, 3); - world.setBlock(x + 3, y + -1, z + 30, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 3, y + -1, z + 30, ModBlocks.pwr_control, 0, 3); world.setBlock(x + 4, y + -1, z + 30, ModBlocks.red_cable, 0, 3); world.setBlock(x + 5, y + -1, z + 30, Blocks.air, 0, 3); world.setBlock(x + 6, y + -1, z + 30, Blocks.air, 0, 3); world.setBlock(x + 7, y + -1, z + 30, Blocks.air, 0, 3); world.setBlock(x + 8, y + -1, z + 30, Blocks.air, 0, 3); world.setBlock(x + 9, y + -1, z + 30, ModBlocks.red_cable, 0, 3); - world.setBlock(x + 10, y + -1, z + 30, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 10, y + -1, z + 30, ModBlocks.pwr_control, 0, 3); world.setBlock(x + 11, y + -1, z + 30, Block3, 0, 3); world.setBlock(x + 2, y + -1, z + 31, Block2, 0, 3); world.setBlock(x + 3, y + -1, z + 31, Block3, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Vertibird.java b/src/main/java/com/hbm/world/dungeon/Vertibird.java index 9890ae66f..67b34f015 100644 --- a/src/main/java/com/hbm/world/dungeon/Vertibird.java +++ b/src/main/java/com/hbm/world/dungeon/Vertibird.java @@ -225,14 +225,14 @@ public class Vertibird extends WorldGenerator world.setBlock(x + 14, y + 4 - yOffset, z + 8, Block2, 0, 3); world.setBlock(x + 15, y + 4 - yOffset, z + 8, Block2, 0, 3); world.setBlock(x + 11, y + 4 - yOffset, z + 9, Block2, 0, 3); - world.setBlock(x + 12, y + 4 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 12, y + 4 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 13, y + 4 - yOffset, z + 9, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 14, y + 4 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 14, y + 4 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 15, y + 4 - yOffset, z + 9, Block2, 0, 3); world.setBlock(x + 11, y + 4 - yOffset, z + 10, Block2, 0, 3); - world.setBlock(x + 12, y + 4 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 12, y + 4 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 13, y + 4 - yOffset, z + 10, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 14, y + 4 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 14, y + 4 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 15, y + 4 - yOffset, z + 10, Block2, 0, 3); world.setBlock(x + 11, y + 4 - yOffset, z + 11, Block2, 0, 3); world.setBlock(x + 12, y + 4 - yOffset, z + 11, Block2, 0, 3); @@ -305,14 +305,14 @@ public class Vertibird extends WorldGenerator world.setBlock(x + 14, y + 5 - yOffset, z + 8, Block2, 0, 3); world.setBlock(x + 15, y + 5 - yOffset, z + 8, Block2, 0, 3); world.setBlock(x + 11, y + 5 - yOffset, z + 9, Block2, 0, 3); - world.setBlock(x + 12, y + 5 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 12, y + 5 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 13, y + 5 - yOffset, z + 9, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 14, y + 5 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 14, y + 5 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 15, y + 5 - yOffset, z + 9, Block2, 0, 3); world.setBlock(x + 11, y + 5 - yOffset, z + 10, Block2, 0, 3); - world.setBlock(x + 12, y + 5 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 12, y + 5 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 13, y + 5 - yOffset, z + 10, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 14, y + 5 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 14, y + 5 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 15, y + 5 - yOffset, z + 10, Block2, 0, 3); world.setBlock(x + 12, y + 5 - yOffset, z + 11, Block2, 0, 3); world.setBlock(x + 13, y + 5 - yOffset, z + 11, ModBlocks.red_wire_coated, 0, 3); diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index fd8e0b123..b6a335dd4 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -696,7 +696,7 @@ public class CivilianFeatures { this.fillWithBlocks(world, box, 2, 6, 1, 4, 6, 2, ModBlocks.steel_roof, Blocks.air, false); this.fillWithBlocks(world, box, 2, 1, 1, 2, 3, 1, ModBlocks.deco_red_copper, Blocks.air, false); this.fillWithBlocks(world, box, 3, 1, 1, 3, 1, 2, ModBlocks.deco_beryllium, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.machine_generator, 0, 4, 1, 1, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.machine_amgen, 0, 4, 1, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_detector, 0, 4, 1, 2, box); this.fillWithBlocks(world, box, 5, 1, 1, 5, 1, 2, ModBlocks.deco_beryllium, Blocks.air, false); this.fillWithBlocks(world, box, 6, 1, 1, 6, 3, 1, ModBlocks.deco_red_copper, Blocks.air, false); diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 96415db46..4dd2aaee0 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -412,7 +412,7 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, Blocks.heavy_weighted_pressure_plate, 0, 34, 22, 18, box); placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, decoE, 36, 21, 16, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 36, 21, 17, box); - placeBlockAtCurrentPosition(world, ModBlocks.machine_generator, 0, 36, 21, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.fusion_conductor, 0, 36, 21, 19, box); fillWithMetadataBlocks(world, box, 36, 22, 16, 36, 23, 16, ModBlocks.tape_recorder, decoE); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelW, 36, 22, 17, box); fillWithMetadataBlocks(world, box, 36, 21, 18, 36, 23, 18, ModBlocks.tape_recorder, decoE); diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block.png b/src/main/resources/assets/hbm/textures/blocks/icf_block.png new file mode 100644 index 0000000000000000000000000000000000000000..f2c0b4c202fb228ab8a4892ebf271580d85e0ac1 GIT binary patch literal 355 zcmV-p0i6DcP)^NZ_~;JOl#6o_F2aWdvLs5}au5(N z4C27%iObC6pUQ0R8__2c|a;fT^mA7NL_@N3Q_`NEmMfB*DI7#jBduwp2>&D0Anp*=N=&? z+E@^hm=|T~mzFC4-7r!&4JpIuCVWgF1XAh6+=nF~h$%0Q%jG%U97s9S^+N%;ab>sL zk%0MXZ&klt=4AyJK-;!Ywew4#2|ynXho_SPz5#3RePwq3k9hz9002ovPDHLkV1lp5 Bj$;4- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_ct.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9bb3080b0b6e8b34542b1fac45854cc6df0711 GIT binary patch literal 1039 zcmV+q1n~QbP)va}X=YGO~;8B>yF%Ff-Wh?z-opjlu5Gn5ZX5vh0WYPW^R!>eMg4|MqLmDdR%~QCzM&l-4wj#k!VU zA*M(!m7EJP7ko$*Kxxfa-#=%yTJ1kSKfQk|FW){pSZ`9yJh=ZgAs3u$_~s(h`+!m! z<61%tq*BSH;6r8zk+X9}uJHcyisN|p^vSLK=4ibMF*3x2wT>YKwtXPgiq_z}Yn-$A zm{3ZC2-aD0g%mTTO!nu)roWXx4yCj~X+s|(rH*B7n+9Vv+Gwsf9iS)`a;;QRh|;87 z$hA%rp5Twe6oerrjMn5*8Dc`0ijRr5Z7{|nN>N3qr4nKSQN&URDNPcd;wOT89}p2f zbOS@oIA>9MEZ2HFuvjb@Vqyr1ick@TFp5CbB;hH3BEW}4Ooj915~ataq7)%!oO7(Z zo{C_sW!nuD1Vo6bFg*_^`N?0Pw8mIVF5?v|wUBeAX&SCJOU14-rHt1*~)UlsP|NqP3k>0B0y=yS=$nGVF-zWkV_pqR_T4&ORcQ89mZJt!S5N0j>4^J>T{LYb{lT^qC*n4xWGBU-IMQdsF@v zKk(+&vjcv%ADGL}_5*YI*?wR)Ki3b;7 z#j<_y>G#q1gNsK12Yg-svG)UE=Lh28$vZ!=y#Mfkztc(h?%g}y{PY7MWkhL|8K3Nr zeqiw9(f-#_{Hfs**16FSq%!dXANRcz0WV&>*eCoieqgm)@h|xki1?jl;W_{S002ov JPDHLkV1n=d=_3FD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_side.png b/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_side.png new file mode 100644 index 0000000000000000000000000000000000000000..71c3c138838a070253861e7e08130843e164eb14 GIT binary patch literal 443 zcmV;s0Yv_ZP)$iDA4uN=AiZZ)d?D5u&)y@? z2O-zrzY0Ym>~XJt9K?ZxTS7rT~OoIpV;W70IG zD2kyta!9M^1002ovPDHLkV1g;1%(4Ig literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_top.png b/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_top.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5387e891dac2e769a278c0c13293dec3b9fa19 GIT binary patch literal 314 zcmV-A0mc4_P)b;z7(n4iYT3Vs1feWUDGNil-iE1XX^+*JwP$D*2@#aR z61AmR;FxsiPAo}j!gb*0V zk(@Ja+X67>sw_(mhXY^lZy2L7#;~cEeA`!=reV%iN{MkCF-G%TSBMeTtBT9-1@Ap` zUi5vBa}Hw+VgwPviY3N~_ntXdF-C@AU{fzyuPUrqthEfoKuU=@S0Mzv_k0#FxF5&u zmI>iRQ50ycne(UZcKgxyJt?LCs!Aau#29hTQI;k5eDV0;@qu&v0aPWM=*xuAFaQ7m M07*qoM6N<$f`*ZYod5s; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_casing.png b/src/main/resources/assets/hbm/textures/blocks/icf_casing.png new file mode 100644 index 0000000000000000000000000000000000000000..56d93d6291fa1380eea7cd3ab9368e5f9b8cfa2b GIT binary patch literal 684 zcmV;d0#p5oP)h=1K6d#YHj)D-Os}OE;Eg41|HOGy_o(MO!n>2WO|J+}!O!6j7yhr`F2zVP+uYQg}TqyuaIn z2;BpKtSOOl#v{1C+Oc-SeK1WE4=;z~PfiNvf#%G1yJd(XqIe8cRERN{TL%#$pw!B0 z&e_>1DJABmv9!+m8AVef*Fwq#o!8FXj;?QR_moacR&RnaQE>q#yDQSxxHgvR&uF)*zalP1&KvGV0^DF63@N2f2vsA@fGQ1RoCfL=bUz*zL}L$FjdTqwrxl$0idOj zQlgYh*S5s2L%b)1fOya8d`3mX^zKZR#$IO*EOn2N(oaX=R{7KTep7U?c2YYPN&OfjgV97 zX__(~-=wN*s;WX&IXE}~Gp1WpQjF}s-skn3H*9Tf_2X)UE_URUF*UCB06086Y-D?%un{?++jH^Xe)oC93M2>iit6XJ}@a zD$cncAcPSi1ibf*Mk|C6sLm@=N@yvZeK{lNjF|$i9~S8~&{9Y-5@W~w^pxG*U3PYM zP%W4lW!YCP?Ct%@{rlTEksA?ZQfB$}?SzJ+arjXg(++;GD3@UeBOU@a9oD;F@c>nI*kj9Ww;`4mY@$tz}bk5;K zhTo_qQ;K4$!)o3KR14wc$Oy_O`2U5=D(I;&Tx;fic`2OvKyR8pm zP9L4=fw|MVQTqT@EWoFc+Zfa_DP^Pf&g<^X2vUM}eX?zZHYTbGL?~Oq0_HG0AZyB~ z!`%m}il)So5&_HzKA#uIe&7KXL5LzEOj{(`5$c%alrRtKm?RI{m>kDW&IM5=L|k<$Ia1KZHNeeu1X!owiPrj+{deOo+ouoYM%r`Ak@BwAd1#D7}NQ9e@D~06jk~# zwr%5a-2_4|h1XSa1Vk9q2_UDO(UdTEhB+RNS+MUrzn|C2Y&fNasBOG5@p-?e7+D>a@jyu=WR?p zplpRcC+^Uvp`ya$YKSOz>pZTT<2>uQ9Kk#Y z1T@jU8t@1nuZx@ucWsMU6`gY(EI?8sBEFnQ2Cduf_#5|T85rDEECwJ}C)=9Zwu}Bf+f0=EgYcgL1ivR!s07*qoM6N<$f|ITf A*8l(j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_controller.png b/src/main/resources/assets/hbm/textures/blocks/icf_controller.png new file mode 100644 index 0000000000000000000000000000000000000000..4ad1c003f6076aad88a93af9d49d212bdbbac68e GIT binary patch literal 737 zcmV<70v`Q|P)&w0O{Fq~*zBS)&zVjVs<~w6P zxb{{~Q5j%q$F5oKHVP-8=zM*ELUK3cw4K3S$f@DVj4@F$^JcLWFOA?`hkXrfIl(@eFHg70ce^ zoa5%5yG$k%Zq*H!_s$Yj@i8HT4;W)Od^`ZqG!1XOdI5~#hkL&;|6|S&BCqf5vbD7Z zz~Cbo0V9a_k(e?+E;4mp^X6+WVnq09_8Xsk@f9Ck|C0N^KEOK1&QpfzbjqFYe5hf}VepubmJ;(msQ`a?D zE?pqR#OCHEV+cIzjz}36%fxIppB4XVMH~95o}6;7*dAkpAqW1p=lb-bo%eG0>Etc&tvVLIgKJ@3{ex-$B1U| zF`*eQ@0}%T=JvPyPndY|rE?6UCuZo!k;lV8#$d~`B&1B=wv=UsVi-f<-02;hb12Y{ zp5^i{hA|LTvDP6)f%g&XV`6b|NKDGm9UkAeC_n^*kO1Eu;eEta6$+%3z!?4puw!+p T97HHr00000NkvXXu0mjfblh2d literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_emitter.png b/src/main/resources/assets/hbm/textures/blocks/icf_emitter.png new file mode 100644 index 0000000000000000000000000000000000000000..f077f304b6bfbd7e3496ab724af8c1f67bf670db GIT binary patch literal 476 zcmV<20VDp2P)$+M>!E78ya?W_~QB~|;N{O5^Ap}GO?>(2xg#Zv^q}EE# znNkWOf{0K`q1KA3GEEaA0)VQrSS%QZ0Vg6j=dftcB0{aTb+h+cE2We+SuoVUMKQ)U zjjFO-E*pR~QPm#`r4&>ZRi*EHoO9f6H|91B11~QxIOiHIfG`)((684ke=ViNdcEd+ zKDS9rDY$8xnpiPLhG8J3^wd8-K3J_*jf#lijQ_k-*L6>0O6gaws^Uy}?>*joQcAqO zzOvix{>79M-g}&Lgb;qBsc(~{lmIv$k58kGZxn*cuwL*d*AjHnOzq$-#7Uvvd*YqhWq9qZW&Wj7B3in+>PaiKc02+m`8c%49NOJRWn+ zP2cx;?>QciESF2HwHyuy>bj;V3Sw^BAK&#X&L{l!noZFB>&|S?Ld>-SH1EgD z<^KN`bA18?xYcU-lqz^d@CY$CcfV_-C@{+%)*B0&-JVaXgq01^dWF6-7K#N1TBW=K`>>FEjm@Ib!ZQawIWI)|FisqXKu vx>>DOFE&wvg(2^e~j=OdIx4MeO}Dwh)5s7=f-hh4u}X*6a~eW1K+^@^;uA;ah|dn eAw=k7{fRHtgN$laAV>)S0000`7RZ7MMF!{xepPAX-J pnYBW}(j6Y3jx1zka52;?W?cQvFlKSOMIO)<44$rjF6*2UngBL!LYe>o diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png index 9ae22b7946c7f71814f0c81d24bd0e7a68701a07..752c65d562ee3e67faeed5d43f2d3fa703cf0c01 100644 GIT binary patch delta 231 zcmVQx_ew|sNFGSCpNo^W831C8^xlhriBvSkpzAudf&LLf2w-&1=_6QcKSmG%IcKzO zD*{FhUx`GbauO4HzCU@qJVb~%Nb?!7S}t@3-Y&4c>USYFJNRlN{_)#;@J)oNR1DP` hbzS2oy!rnpFs!2paR7gu>7zKkJ{AFPH55iC`X#k}0{|zASC({tH0sp51@qfx( zv7TJbAW&IZ`QOaU46gx9P#P=X;^JcX_wOH+M-G_s|35?78FKQy5E2sd-_X#Id@pEd zXb|)QUIT92xWVw}&mSmn6bw}WN{Jv$7658I_W1k%c_&}sH3V-$5@G+(;HxVR<&gu3 z$V_-$Q2Dfq!R$a5l!qPAwmhJ?NE-^}0Rsa7_BCTK=3-)x00000NkvXXu0mjfaav}M From 5bb2a802ffa32b1d5cccd64468e41e528a3f22ec Mon Sep 17 00:00:00 2001 From: Vaern <90118520+Vaern@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:54:15 -0700 Subject: [PATCH 358/376] Update CentrifugeRecipes.java --- .../java/com/hbm/inventory/recipes/CentrifugeRecipes.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 75c0cd403..b9f9066d5 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -518,7 +518,7 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Items.blaze_rod), new ItemStack[] {new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.blaze_powder, 1), new ItemStack(ModItems.powder_fire, 1), new ItemStack(ModItems.powder_fire, 1) }); - recipes.put(new ComparableStack(ModItems.ingot_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 1), new ItemStack(ModItems.nugget_uranium, 3), new ItemStack(ModItems.nugget_plutonium, 2) }); + recipes.put(new ComparableStack(ModItems.ingot_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 1), new ItemStack(ModItems.nugget_uranium, 3), new ItemStack(ModItems.nugget_neptunium, 2) }); recipes.put(new ComparableStack(ModItems.crystal_coal), new ItemStack[] { new ItemStack(ModItems.powder_coal, 3), new ItemStack(ModItems.powder_coal, 3), new ItemStack(ModItems.powder_coal, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_iron), new ItemStack[] { new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); @@ -538,7 +538,7 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.crystal_fluorite), new ItemStack[] { new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.gem_sodalite, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ItemStack[] { new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_lead), new ItemStack[] { new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); - recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_uranium, 2), new ItemStack(ModItems.nugget_plutonium, 2) }); + recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_uranium, 2), new ItemStack(ModItems.nugget_neptunium, 2) }); recipes.put(new ComparableStack(ModItems.crystal_schrabidium), new ItemStack[] { new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_rare), new ItemStack[] { new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.nugget_zirconium, 2), new ItemStack(ModItems.nugget_zirconium, 2) }); recipes.put(new ComparableStack(ModItems.crystal_phosphorus), new ItemStack[] { new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.ingot_phosphorus, 2), new ItemStack(Items.blaze_powder, 2) }); From e7324365fa6646596c4a3368bdf7da5cb1df34d4 Mon Sep 17 00:00:00 2001 From: Vaern <90118520+Vaern@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:55:43 -0700 Subject: [PATCH 359/376] Update ElectrolyserMetalRecipes.java hurgh --- .../com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java index aabebb3a4..2e240f391 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java @@ -93,7 +93,7 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ElectrolysisMetalRecipe( new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.NUGGET.q(5)), new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.NUGGET.q(2)), - new ItemStack(ModItems.nugget_plutonium, 2))); + new ItemStack(ModItems.nugget_neptunium, 2))); recipes.put(new ComparableStack(ModItems.crystal_schrabidium), new ElectrolysisMetalRecipe( new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.INGOT.q(6)), From 1efc984d43b396698300ff01a0d0a993747c275f Mon Sep 17 00:00:00 2001 From: Vaern <90118520+Vaern@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:56:40 -0700 Subject: [PATCH 360/376] Update SILEXRecipes.java durgh --- src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index 3b0d908a2..a996eaec5 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -58,7 +58,7 @@ public class SILEXRecipes { recipes.put(new ComparableStack(ModItems.ingot_schraranium), new SILEXRecipe(900, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium), 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium), 2)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 2)) ); itemTranslation.put(new ComparableStack(ModItems.powder_australium), new ComparableStack(ModItems.ingot_australium)); @@ -70,7 +70,7 @@ public class SILEXRecipes { recipes.put(new ComparableStack(ModItems.crystal_schraranium), new SILEXRecipe(900, 100, 3) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium), 5)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium), 2)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 2)) ); recipes.put(new ComparableStack(ModBlocks.ore_tikite), new SILEXRecipe(900, 100, EnumWavelengths.UV) From cce163f84c9641d267ed2897ebc8b7834c8b0f1b Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 25 Apr 2024 21:17:38 +0200 Subject: [PATCH 361/376] wabbledee --- changelog | 5 ++++- .../hbm/inventory/recipes/AssemblerRecipes.java | 2 ++ src/main/java/com/hbm/main/NEIConfig.java | 5 +++++ src/main/java/com/hbm/main/NEIRegistry.java | 3 --- ...TileEntityMachineSchrabidiumTransmutator.java | 16 ++++++++-------- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/changelog b/changelog index 6bfcac23b..334b59817 100644 --- a/changelog +++ b/changelog @@ -21,4 +21,7 @@ * The treasure now consists of mainly some rarer earlygame ingots, circuits, some gear, a small selection of armor mods and alexandrite (rare) ## Fixed -* Fixed DFC receivers not outputting power \ No newline at end of file +* Fixed DFC receivers not outputting power +* Fixed the custom machine NEI handlers not working +* Fixed a potential crash caused by invalid assembly templates +* Fixed general weirdness with the schrabidium transmutator item IO \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index e1d7eae46..4a282e8e1 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1268,6 +1268,7 @@ public class AssemblerRecipes extends SerializableRecipe { ComparableStack compStack = ItemAssemblyTemplate.readType(stack); if(compStack != null) { AssemblerRecipe recipe = recipes.get(compStack); + if(recipe == null) return null; AStack[] ret = recipe.ingredients; return ret == null ? null : Arrays.asList(ret); } @@ -1280,6 +1281,7 @@ public class AssemblerRecipes extends SerializableRecipe { if(out != null) { ComparableStack comp = new ComparableStack(out); AssemblerRecipe recipe = recipes.get(comp); + if(recipe == null) return null; AStack[] ret = recipe.ingredients; return ret == null ? null : Arrays.asList(ret); } diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index b0337b647..a2b264190 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -5,6 +5,8 @@ import java.util.List; import codechicken.nei.recipe.*; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.handler.nei.CustomMachineHandler; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.lib.RefStrings; @@ -26,6 +28,9 @@ public class NEIConfig implements IConfigureNEI { for (TemplateRecipeHandler handler: NEIRegistry.listAllHandlers()) { registerHandler(handler); } + + for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandler(new CustomMachineHandler(conf)); + //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); API.hideItem(ItemBattery.getFullBattery(ModItems.memory)); diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java index 1909c79e5..893312e63 100644 --- a/src/main/java/com/hbm/main/NEIRegistry.java +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -3,7 +3,6 @@ package com.hbm.main; import java.util.ArrayList; import java.util.List; -import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.VersatileConfig; import com.hbm.handler.nei.*; @@ -64,8 +63,6 @@ public class NEIRegistry { handlers.add(new AshpitHandler()); handlers.add(new ArcWelderHandler()); handlers.add(new ExposureChamberHandler()); - - for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) handlers.add(new CustomMachineHandler(conf)); return handlers; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index 8693ef3c2..7f9241d46 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -33,9 +33,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB private AudioWrapper audio; - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 1, 2 }; - private static final int[] slots_side = new int[] { 3, 2 }; + private static final int[] slots_io = new int[] { 0, 1, 2, 3 }; public TileEntityMachineSchrabidiumTransmutator() { super(4); @@ -82,22 +80,24 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); + return slots_io; } @Override public boolean canExtractItem(int i, ItemStack stack, int j) { - if (i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && stack.getItemDamage() == stack.getMaxDamage()) || stack.getItem() == ModItems.euphemium_capacitor) { + if(stack.getItem() == ModItems.euphemium_capacitor) return false; + + if(i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && stack.getItemDamage() == stack.getMaxDamage())) { return true; } - if (i == 1) { + if(i == 1) { return true; } - if (i == 3) { - if (stack.getItem() instanceof IBatteryItem && ((IBatteryItem)stack.getItem()).getCharge(stack) == 0) + if(i == 3) { + if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == 0) return true; } From 0ab784b7c75b7907699ddb61b7f4bc1f860bcc6f Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 27 Apr 2024 23:27:05 +0200 Subject: [PATCH 362/376] more ICF crap --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 + .../java/com/hbm/blocks/machine/BlockICF.java | 72 ++++++++++++++++++ .../machine/BlockICFLaserComponent.java | 14 ++-- .../blocks/machine/MachineICFController.java | 53 +++++++++++++ .../java/com/hbm/tileentity/TileMappings.java | 2 + .../hbm/textures/blocks/icf_block_port.png | Bin 0 -> 351 bytes .../hbm/textures/blocks/icf_block_port_ct.png | Bin 0 -> 1071 bytes .../assets/hbm/textures/blocks/icf_port.png | Bin 0 -> 715 bytes 8 files changed, 139 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockICF.java create mode 100644 src/main/java/com/hbm/blocks/machine/MachineICFController.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_block_port.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_block_port_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_port.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f8d1e7bde..29740b894 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2010,7 +2010,9 @@ public class ModBlocks { plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + icf_controller = new MachineICFController().setBlockName("icf_controller").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":icf_casing"); icf_laser_component = new BlockICFLaserComponent().setBlockName("icf_laser_component").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab); + icf_block = new BlockICF(Material.iron).setBlockName("icf_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":icf_block"); watz_element = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_element_top").setBlockName("watz_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_element_side"); watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side"); @@ -3342,6 +3344,8 @@ public class ModBlocks { GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); register(icf_laser_component); + register(icf_controller); + register(icf_block); register(icf); GameRegistry.registerBlock(watz_element, watz_element.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockICF.java b/src/main/java/com/hbm/blocks/machine/BlockICF.java new file mode 100644 index 000000000..07bb53a6a --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockICF.java @@ -0,0 +1,72 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.render.block.ct.CT; +import com.hbm.render.block.ct.CTStitchReceiver; +import com.hbm.render.block.ct.IBlockCT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockICF extends BlockContainer implements IBlockCT { + + @SideOnly(Side.CLIENT) protected IIcon iconPort; + + public BlockICF(Material mat) { + super(mat); + } + + @Override + public int getRenderType() { + return CT.renderID; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @SideOnly(Side.CLIENT) public CTStitchReceiver rec; + @SideOnly(Side.CLIENT) public CTStitchReceiver recPort; + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.iconPort = reg.registerIcon(RefStrings.MODID + ":icf_casing_port"); + this.rec = IBlockCT.primeReceiver(reg, this.blockIcon.getIconName(), this.blockIcon); + this.recPort = IBlockCT.primeReceiver(reg, this.iconPort.getIconName(), this.iconPort); + } + + @Override + public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == 1) return recPort.fragCache; + return rec.fragCache; + } + + @Override + public boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { + return block == ModBlocks.icf_block || block == ModBlocks.icf_controller; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityBlockICF(); + } + + public static class TileEntityBlockICF extends TileEntity { + + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java b/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java index 6d37458fe..5685fee9a 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java +++ b/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java @@ -26,11 +26,12 @@ public class BlockICFLaserComponent extends BlockEnumMulti { this.iconsTop = new IIcon[enums.length]; this.icons[0] = this.iconsTop[0] = reg.registerIcon(RefStrings.MODID + ":icf_casing"); - this.icons[1] = this.iconsTop[1] = reg.registerIcon(RefStrings.MODID + ":icf_cell"); - this.icons[2] = this.iconsTop[2] = reg.registerIcon(RefStrings.MODID + ":icf_emitter"); - this.icons[3] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_side"); - this.icons[4] = reg.registerIcon(RefStrings.MODID + ":icf_turbocharger"); - this.iconsTop[3] = this.iconsTop[4] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_top"); + this.icons[1] = this.iconsTop[1] = reg.registerIcon(RefStrings.MODID + ":icf_port"); + this.icons[2] = this.iconsTop[2] = reg.registerIcon(RefStrings.MODID + ":icf_cell"); + this.icons[3] = this.iconsTop[3] = reg.registerIcon(RefStrings.MODID + ":icf_emitter"); + this.icons[4] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_side"); + this.icons[5] = reg.registerIcon(RefStrings.MODID + ":icf_turbocharger"); + this.iconsTop[4] = this.iconsTop[5] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_top"); } @Override @@ -41,11 +42,12 @@ public class BlockICFLaserComponent extends BlockEnumMulti { @Override public int getSubCount() { - return 5; + return EnumICFPart.values().length; } public static enum EnumICFPart { CASING, + PORT, CELL, EMITTER, CAPACITOR, diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFController.java b/src/main/java/com/hbm/blocks/machine/MachineICFController.java new file mode 100644 index 000000000..ba1487f40 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineICFController.java @@ -0,0 +1,53 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class MachineICFController extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public MachineICFController() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":icf_controller"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index a0cfd2009..6722092e2 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -15,6 +15,7 @@ import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; +import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; import com.hbm.blocks.machine.MachineCapacitor.TileEntityCapacitor; import com.hbm.blocks.machine.MachineFan.TileEntityFan; @@ -160,6 +161,7 @@ public class TileMappings { put(TileEntityMicrowave.class, "tileentity_microwave"); put(TileEntityMachineMiniRTG.class, "tileentity_mini_rtg"); put(TileEntityITER.class, "tileentity_iter"); + put(TileEntityBlockICF.class, "tileentity_block_icf"); put(TileEntityICF.class, "tileentity_icf"); put(TileEntityMachinePlasmaHeater.class, "tileentity_plasma_heater"); put(TileEntityMachineFENSU.class, "tileentity_fensu"); diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png new file mode 100644 index 0000000000000000000000000000000000000000..c7595645a487a9499ef12445b16ed505ed60f572 GIT binary patch literal 351 zcmV-l0igbgP)CCk@H~!WkGXSn>cJ^9DRowr+i~j<6tA3Y#Sa zNDwbTn*Nb66qTlt8kBglKi_-4d#`L~GMUs2SP~%5^IpkWmhAvTAoB3=Uq~Fs`&fB= zc{{#A2*GNzB?v|ofPs2zuGRkIvL4Wkyo_dUYvF#yIG2;oX=0A3&OPqzSo;{q_9 zPO;Vkpp+s_Q;NkBIqCqcHe23}!CKoW)fj^-+kWn`P*ts%2E4Nc&-c+VH~~nKgbG+6 xXkl>qw{Q6$0HP@B^_&NNCIC5`&3Y#T`~WZ1W;W&PSP1|C002ovPDHLkV1fYqj3od7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_port_ct.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_port_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..c877a699c03afbbe5c8a4307c34bbe8d64ffeb42 GIT binary patch literal 1071 zcmV+~1kn45P)+XyvWE2k}5sKuXhy;m6kk}FB33v=%V#EXF z9eAEBVS|J;>?|P&O6<(dcK5lnXpb4YEjy@(k}P{sU!A|J%XNP7(~m#o7$Vkr5R$X2 z1yU)>(qM{;n8626Oqm!HJ|?USBtR;~-OryfnM_un@17j(R8@)A1|cO`2y)6eA3#WaO1Ka@ z1^4kC0kw4u4hLK=8kEu$g<4@f`uy1$;;x z4hC57S4CgHe$8|`1zoEak-e@tEm! z%49NGC632qq}KQlmvbPATUu&;*vW5(6jG9Mrgk2L*gDxai#IMHl|mN=ZA>R;AHNxT zVI2$W$OyF7m_jldjTjDxtEAy@$Y?a;x9Ojl!YqeR;zRc|QxrS-jsS$c)aph%JjHA$Ib2j@I*K47nYs3_>Y#&da3%bz{+{Amxk;5p4=) zi<*QaBk)^Z_&$C!r1gQgOo%BXWZUM9Kx$2hkt_sdSpfo}G_|$N>Y7Zq1N-=nfU+v_ zvE6V=DPnG?bW=a*RLDaw)z_?Wg{E`Ps!zmq?H@MvAYy~kg5iu8$xWkxE!#SbWAT%UoLFJGc> zZmZjfkM#q`$H%Q9xorU-;|Fe@dFukCQdCNjfsiv7vjtUIt^B~7H*ePR_4h9xb1*nq z`GHyEP)e=t^Lgzs#*l>|-0%bQ#xnhI#@CPTb@?5B;MI$#YkY4%(3kJ+2m128{XlQN zuOH~k_x1yQ`Tl;OC*Ru-^yRhr>>2axUfqENxEt?nP~HFc_r~}ALxrrJ>}ImU*bYUNQKnxm3{388rweF|GJ8={XohAQxvTq2&v-- puFt&{0neX5Ulsf>eqb`0@DC)T5~x+FQUw42002ovPDHLkV1kBD@_PUP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_port.png b/src/main/resources/assets/hbm/textures/blocks/icf_port.png new file mode 100644 index 0000000000000000000000000000000000000000..c9637ddb09acb00b47cec8683245dfd6876f1b05 GIT binary patch literal 715 zcmV;+0yO=JP)m6otRO-817@hEN$%j>jrlBrJiounIPy6}Z?Nyii3| z2*gOSk{Du@e`0xNx^Lg+LHs;%p3gaT>U{3|@4hWrjZqbF-0cQLgr=_WRgD3vO145a zBj>`H6a&P2f+pk3FFqrgQB^g^+2~_L#1pE9sOjJEn2a$cj+~GST;JXiVpc{~p0!g_ z&ZIsP4g%f>#-!9w4jGdY#8VY`QVO}i&CM-VKtw#^1AR=qdb38n=b&l${c?j3p1X%f zF4pg`0=X0})*GC7ayG0K#BdBr5fNT4<_t+0lk)ud81FqHRJ{D^3`8hSI6du1nn`9v z&4eK)o*o@?|2W`%psp(>FTMd_wOYXho-Y;veE8)@3XU-T+wwMDH{MmyvK(?HsfqQV@%4&)r#$Q%k}j&|7f*Z zAtBIp9mNUG3E2wb#9^h-#{|w{#{X(e$`EzWzpn71Li#b$$35$d^@gghSu7T`ZOe2z zWjdYGwk?ar0xNL!#}!c(Gtis~&N&|X$kFFQcXGm~$DXIaa=F}}2rT|SQM~8)q(da2 zRw&uv)K$Mo~W7m{0s>J&6#dCqiGHR z$LaixejM2i0|iH@>zb4c{ml(^-C#Jzl&}I-RbfCsMpTtyOsE+lREYP)sD!AQ?cF_^ xjp6qGKfd0B2o50w@%9rjDpk{9K+YMQ<1e6!fMrK6R15$B002ovPDHLkV1h;tNJanv literal 0 HcmV?d00001 From 51a5905546b7785101801e4c72d581e81def8a32 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sun, 28 Apr 2024 11:51:23 -0400 Subject: [PATCH 363/376] handful of anvil scrapping recipes --- .../inventory/recipes/ShredderRecipes.java | 3 - .../inventory/recipes/anvil/AnvilRecipes.java | 93 ++++++++++++++++++- 2 files changed, 91 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 88b5b9207..57aef7644 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -270,9 +270,6 @@ public class ShredderRecipes extends SerializableRecipe { /* Misc recycling */ ShredderRecipes.setRecipe(ModBlocks.steel_poles, new ItemStack(ModItems.powder_steel_tiny, 3)); - ShredderRecipes.setRecipe(ModBlocks.pole_top, new ItemStack(ModItems.powder_tungsten, 4)); - ShredderRecipes.setRecipe(ModBlocks.tape_recorder, new ItemStack(ModItems.powder_steel, 1)); - ShredderRecipes.setRecipe(ModBlocks.pole_satellite_receiver, new ItemStack(ModItems.powder_steel, 5)); ShredderRecipes.setRecipe(ModBlocks.steel_roof, new ItemStack(ModItems.powder_steel_tiny, 13)); ShredderRecipes.setRecipe(ModBlocks.steel_wall, new ItemStack(ModItems.powder_steel_tiny, 13)); ShredderRecipes.setRecipe(ModBlocks.steel_corner, new ItemStack(ModItems.powder_steel_tiny, 26)); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 79bd5571e..b224a5df0 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -748,7 +748,63 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)) } ).setTier(2)); - + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.machine_stirling), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 6)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)), + new AnvilOutput(new ItemStack(ModItems.coil_copper, 4)), + new AnvilOutput(new ItemStack(ModItems.gear_large, 1)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.machine_stirling, 1, 1), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 6)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)), + new AnvilOutput(new ItemStack(ModItems.coil_copper, 4)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.machine_stirling_steel), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 16)), + new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 6)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)), + new AnvilOutput(new ItemStack(ModItems.coil_gold, 16)), + new AnvilOutput(new ItemStack(ModItems.gear_large,1, 1)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModItems.gear_large,1, 1), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 8)), + new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 1)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModItems.gear_large), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_iron, 8)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 1)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.machine_stirling_steel, 1, 1), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 16)), + new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 6)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)), + new AnvilOutput(new ItemStack(ModItems.coil_gold, 16)), + + } + ).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.barrel_tcalloy), new AnvilOutput[] { @@ -821,7 +877,40 @@ public class AnvilRecipes { } ).setTier(2)); - + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.radiorec), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 4)), + new AnvilOutput(new ItemStack(ModItems.wire_copper, 1)), + new AnvilOutput(new ItemStack(ModItems.circuit_red_copper, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.25F), + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.tape_recorder), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1)), + new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1), 0.25F), + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.pole_top), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 3)), + new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 1)), + new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 2)), + new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1), 0.5F), + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.pole_satellite_receiver), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_steel, 3)), + new AnvilOutput(new ItemStack(ModItems.ingot_steel, 2), 0.5F), + new AnvilOutput(new ItemStack(ModItems.circuit_red_copper, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.wire_red_copper, 1)), + } + ).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.filing_cabinet), new AnvilOutput[] { From 949c6dbe0b5b123c73c7345f6cc440307c721a65 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sat, 13 Apr 2024 18:37:19 -0400 Subject: [PATCH 364/376] FUCK YOU GLOWSTONE --- src/main/java/com/hbm/items/tool/ItemToolAbility.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 7fcded778..43b6c885e 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -49,7 +49,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc public static enum EnumToolType { PICKAXE( - Sets.newHashSet(new Material[] { Material.iron, Material.anvil, Material.rock }), + Sets.newHashSet(new Material[] { Material.iron, Material.anvil, Material.rock, Material.glass }), Sets.newHashSet(new Block[] { Blocks.cobblestone, Blocks.double_stone_slab, Blocks.stone_slab, Blocks.stone, Blocks.sandstone, Blocks.mossy_cobblestone, Blocks.iron_ore, Blocks.iron_block, Blocks.coal_ore, Blocks.gold_block, Blocks.gold_ore, Blocks.diamond_ore, Blocks.diamond_block, Blocks.ice, Blocks.netherrack, Blocks.lapis_ore, Blocks.lapis_block, Blocks.redstone_ore, Blocks.lit_redstone_ore, Blocks.rail, Blocks.detector_rail, Blocks.golden_rail, Blocks.activator_rail }) ), AXE( @@ -61,7 +61,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc Sets.newHashSet(new Block[] { Blocks.grass, Blocks.dirt, Blocks.sand, Blocks.gravel, Blocks.snow_layer, Blocks.snow, Blocks.clay, Blocks.farmland, Blocks.soul_sand, Blocks.mycelium }) ), MINER( - Sets.newHashSet(new Material[] { Material.grass, Material.iron, Material.anvil, Material.rock, Material.clay, Material.sand, Material.ground, Material.snow, Material.craftedSnow }) + Sets.newHashSet(new Material[] { Material.grass, Material.iron, Material.anvil, Material.glass, Material.rock, Material.clay, Material.sand, Material.ground, Material.snow, Material.craftedSnow }) ); private EnumToolType(Set materials) { From 085bde4b9952a519da21a7aa2de3426a8c7afcf8 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 29 Apr 2024 21:57:18 +0200 Subject: [PATCH 365/376] ICF block stuff --- changelog | 1 + .../java/com/hbm/blocks/machine/BlockICF.java | 149 ++++++++++++++++- .../blocks/machine/MachineICFController.java | 158 +++++++++++++++++- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityICFController.java | 48 ++++++ 5 files changed, 352 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java diff --git a/changelog b/changelog index 334b59817..677879017 100644 --- a/changelog +++ b/changelog @@ -19,6 +19,7 @@ * The loot pool for meteorite treasure blocks has been updated * Treasures are no longer senselessly progression breaking, radioactive or plain stupid (whole-ass machines inside meteorites) * The treasure now consists of mainly some rarer earlygame ingots, circuits, some gear, a small selection of armor mods and alexandrite (rare) +* Schraranium processing now yields neptunium as a byproduct instead of plutonium, making neptunium easier to automate outside of the cyclotron ## Fixed * Fixed DFC receivers not outputting power diff --git a/src/main/java/com/hbm/blocks/machine/BlockICF.java b/src/main/java/com/hbm/blocks/machine/BlockICF.java index 07bb53a6a..4daee8fa0 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockICF.java +++ b/src/main/java/com/hbm/blocks/machine/BlockICF.java @@ -7,14 +7,18 @@ import com.hbm.lib.RefStrings; import com.hbm.render.block.ct.CT; import com.hbm.render.block.ct.CTStitchReceiver; import com.hbm.render.block.ct.IBlockCT; +import com.hbm.tileentity.machine.TileEntityICFController; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -44,7 +48,7 @@ public class BlockICF extends BlockContainer implements IBlockCT { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { super.registerBlockIcons(reg); - this.iconPort = reg.registerIcon(RefStrings.MODID + ":icf_casing_port"); + this.iconPort = reg.registerIcon(RefStrings.MODID + ":icf_block_port"); this.rec = IBlockCT.primeReceiver(reg, this.blockIcon.getIconName(), this.blockIcon); this.recPort = IBlockCT.primeReceiver(reg, this.iconPort.getIconName(), this.iconPort); } @@ -65,8 +69,147 @@ public class BlockICF extends BlockContainer implements IBlockCT { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityBlockICF(); } - - public static class TileEntityBlockICF extends TileEntity { + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityBlockICF) { + TileEntityBlockICF icf = (TileEntityBlockICF) tile; + world.removeTileEntity(x, y, z); + if(icf.block != null) { + world.setBlock(x, y, z, icf.block, icf.meta, 3); + TileEntity controller = world.getTileEntity(icf.coreX, icf.coreY, icf.coreZ); + + if(controller instanceof TileEntityICFController) { + ((TileEntityICFController) controller).assembled = false; + } + } + } else { + world.removeTileEntity(x, y, z); + } + super.breakBlock(world, x, y, z, block, meta); + } + + public static class TileEntityBlockICF extends TileEntity implements IEnergyReceiverMK2 { + + public Block block; + public int meta; + public int coreX; + public int coreY; + public int coreZ; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0 && block != null) { + + TileEntityICFController controller = getCore(); + + if(controller != null) { + if(!controller.assembled) { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); + } + } else if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + block = Block.getBlockById(nbt.getInteger("block")); + if(block != Blocks.air) { + meta = nbt.getInteger("meta"); + coreX = nbt.getInteger("cX"); + coreY = nbt.getInteger("cY"); + coreZ = nbt.getInteger("cZ"); + } else { + block = null; + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + if(block != null) { + nbt.setInteger("block", Block.getIdFromBlock(block)); + nbt.setInteger("meta", meta); + nbt.setInteger("cX", coreX); + nbt.setInteger("cY", coreY); + nbt.setInteger("cZ", coreZ); + } + } + + @Override + public void markDirty() { + if(this.worldObj != null) { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + } + + public TileEntityICFController cachedCore; + + protected TileEntityICFController getCore() { + + if(cachedCore != null && !cachedCore.isInvalid()) return cachedCore; + + if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + + TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); + if(tile instanceof TileEntityICFController) { + TileEntityICFController controller = (TileEntityICFController) tile; + cachedCore = controller; + return controller; + } + } + + return null; + } + + @Override public long getPower() { + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityICFController controller = this.getCore(); + if(controller != null) return controller.getPower(); + + return 0; + } + + @Override public void setPower(long power) { + if(this.getBlockMetadata() != 1) return; + if(block == null) return; + TileEntityICFController controller = this.getCore(); + if(controller != null) controller.setPower(power); + } + + @Override public long getMaxPower() { + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityICFController controller = this.getCore(); + if(controller != null) return controller.getMaxPower(); + + return 0; + } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFController.java b/src/main/java/com/hbm/blocks/machine/MachineICFController.java index ba1487f40..da2d80619 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICFController.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICFController.java @@ -1,18 +1,34 @@ package com.hbm.blocks.machine; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map.Entry; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; +import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart; import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.TileEntityICFController; +import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class MachineICFController extends BlockContainer { @@ -24,8 +40,8 @@ public class MachineICFController extends BlockContainer { } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return null; + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityICFController(); } @Override @@ -50,4 +66,142 @@ public class MachineICFController extends BlockContainer { if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); } + + @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()) { + + TileEntityICFController controller = (TileEntityICFController) world.getTileEntity(x, y, z); + + if(!controller.assembled) { + assemble(world, x, y, z, player); + } + + return true; + } else { + return false; + } + } + + private static HashMap assembly = new HashMap(); + private static HashSet casings = new HashSet(); + private static HashSet ports = new HashSet(); + private static HashSet cells = new HashSet(); + private static HashSet emitters = new HashSet(); + private static HashSet capacitors = new HashSet(); + private static HashSet turbochargers = new HashSet(); + private static boolean errored; + private static final int maxSize = 1024; + + public void assemble(World world, int x, int y, int z, EntityPlayer player) { + assembly.clear(); + casings.clear(); + ports.clear(); + cells.clear(); + emitters.clear(); + capacitors.clear(); + turbochargers.clear(); + assembly.put(new BlockPos(x, y, z), 0); + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)).getOpposite(); + + errored = false; + floodFill(world, x + dir.offsetX, y, z + dir.offsetZ, player); + assembly.remove(new BlockPos(x, y, z)); + + TileEntityICFController controller = (TileEntityICFController) world.getTileEntity(x, y, z); + + if(!errored) { + + for(Entry entry : assembly.entrySet()) { + + BlockPos pos = entry.getKey(); + + if(ports.contains(pos)) { + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.icf_block, 1, 3); + } else { + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.icf_block, 0, 3); + } + + TileEntityBlockICF icf = (TileEntityBlockICF) world.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + icf.block = ModBlocks.icf_laser_component; + icf.meta = entry.getValue(); + icf.coreX = x; + icf.coreY = y; + icf.coreZ = z; + icf.markDirty(); + } + } + controller.assembled = !errored; + + assembly.clear(); + casings.clear(); + ports.clear(); + cells.clear(); + emitters.clear(); + capacitors.clear(); + turbochargers.clear(); + } + + private void floodFill(World world, int x, int y, int z, EntityPlayer player) { + + BlockPos pos = new BlockPos(x, y, z); + + if(assembly.containsKey(pos)) return; + if(assembly.size() >= maxSize) { + errored = true; + sendError(world, x, y, z, "Max size exceeded", player); + return; + } + + Block block = world.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + + boolean validCasing = false; + boolean validCore = false; + + if(block == ModBlocks.icf_laser_component) { + if(meta == EnumICFPart.CASING.ordinal()) { casings.add(pos); validCasing = true; } + if(meta == EnumICFPart.PORT.ordinal()) { ports.add(pos); validCasing = true; } + if(meta == EnumICFPart.CELL.ordinal()) { cells.add(pos); validCore = true; } + if(meta == EnumICFPart.EMITTER.ordinal()) { emitters.add(pos); validCore = true; } + if(meta == EnumICFPart.CAPACITOR.ordinal()) { capacitors.add(pos); validCore = true; } + if(meta == EnumICFPart.TURBO.ordinal()) { turbochargers.add(pos); validCore = true; } + } + + if(validCasing) { + assembly.put(pos, meta); + return; + } + + if(validCore) { + assembly.put(pos, meta); + floodFill(world, x + 1, y, z, player); + floodFill(world, x - 1, y, z, player); + floodFill(world, x, y + 1, z, player); + floodFill(world, x, y - 1, z, player); + floodFill(world, x, y, z + 1, player); + floodFill(world, x, y, z - 1, player); + return; + } + + sendError(world, x, y, z, "Non-laser block", player); + errored = true; + } + + private void sendError(World world, int x, int y, int z, String message, EntityPlayer player) { + + if(player instanceof EntityPlayerMP) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "marker"); + data.setInteger("color", 0xff0000); + data.setInteger("expires", 5_000); + data.setDouble("dist", 128D); + if(message != null) data.setString("label", message); + PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(data, x, y, z), (EntityPlayerMP) player); + } + } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 6722092e2..a6d60d8b8 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -162,6 +162,7 @@ public class TileMappings { put(TileEntityMachineMiniRTG.class, "tileentity_mini_rtg"); put(TileEntityITER.class, "tileentity_iter"); put(TileEntityBlockICF.class, "tileentity_block_icf"); + put(TileEntityICFController.class, "tileentity_icf_controller"); put(TileEntityICF.class, "tileentity_icf"); put(TileEntityMachinePlasmaHeater.class, "tileentity_plasma_heater"); put(TileEntityMachineFENSU.class, "tileentity_fensu"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java new file mode 100644 index 000000000..49dfa173e --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java @@ -0,0 +1,48 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.tileentity.TileEntityTickingBase; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; + +public class TileEntityICFController extends TileEntityTickingBase implements IEnergyReceiverMK2 { + + public long power; + + public int cellCount; + public int emitterCount; + public int capacitorCount; + public int turbochargerCount; + + protected List ports = new ArrayList(); + + public boolean assembled; + + @Override + public String getInventoryName() { + return "container.icfController"; + } + + @Override + public void updateEntity() { + + } + + @Override + public long getPower() { + return power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return capacitorCount * 1_000_000 + turbochargerCount * 2_500_000; //TEMP + } +} From 31aa445f31fe7386a01c48c007e7929d6f4127b0 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 30 Apr 2024 15:54:22 +0200 Subject: [PATCH 366/376] texture update --- changelog | 1 + .../java/com/hbm/blocks/generic/Guide.java | 78 +----------------- .../blocks/machine/MachineICFController.java | 3 + .../machine/TileEntityICFController.java | 5 ++ .../assets/hbm/textures/blocks/icf_block.png | Bin 355 -> 376 bytes .../hbm/textures/blocks/icf_block_ct.png | Bin 1039 -> 1104 bytes .../hbm/textures/blocks/icf_block_port.png | Bin 351 -> 343 bytes .../hbm/textures/blocks/icf_block_port_ct.png | Bin 1071 -> 1072 bytes .../assets/hbm/textures/blocks/icf_casing.png | Bin 684 -> 706 bytes .../hbm/textures/blocks/icf_concrete.png | Bin 614 -> 0 bytes .../hbm/textures/blocks/icf_controller.png | Bin 737 -> 704 bytes .../assets/hbm/textures/blocks/icf_port.png | Bin 715 -> 778 bytes 12 files changed, 10 insertions(+), 77 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/blocks/icf_concrete.png diff --git a/changelog b/changelog index 677879017..25f7dcb1b 100644 --- a/changelog +++ b/changelog @@ -20,6 +20,7 @@ * Treasures are no longer senselessly progression breaking, radioactive or plain stupid (whole-ass machines inside meteorites) * The treasure now consists of mainly some rarer earlygame ingots, circuits, some gear, a small selection of armor mods and alexandrite (rare) * Schraranium processing now yields neptunium as a byproduct instead of plutonium, making neptunium easier to automate outside of the cyclotron +* Using the guide book now opens a link to the new wiki ## Fixed * Fixed DFC receivers not outputting power diff --git a/src/main/java/com/hbm/blocks/generic/Guide.java b/src/main/java/com/hbm/blocks/generic/Guide.java index 744a2d9cd..0a9861157 100644 --- a/src/main/java/com/hbm/blocks/generic/Guide.java +++ b/src/main/java/com/hbm/blocks/generic/Guide.java @@ -120,87 +120,11 @@ public class Guide extends Block implements ILookOverlay { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote && !player.isSneaking()) { - for(int i = 0; i < 10; i++) { - MainRegistry.proxy.openLink(/*"https://ntm.fandom.com/wiki/HBM%27s_Nuclear_Tech_Wiki"*/ "https://www.youtube.com/watch?v=dQw4w9WgXcQ"); - MainRegistry.proxy.openLink("https://gist.githubusercontent.com/HbmMods/ce11ffd908e98d4159f89011aca5c0b1/raw/5cbb1afdca06648319ee4293516f3c5f7cc448ca/go%2520fuck%2520yourself"); - } + MainRegistry.proxy.openLink("https://nucleartech.wiki/wiki/Main_Page"); return true; } return super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ); - - /*if(!player.isSneaking()) - { - - ItemStack book1 = new ItemStack(Items.written_book); - book1.stackTagCompound = new NBTTagCompound(); - book1.stackTagCompound.setString("author", "HbMinecraft"); - book1.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 1: Resources"); - NBTTagList pages1 = new NBTTagList(); - - for(String s : Library.book1) { - pages1.appendTag(new NBTTagString(s)); - } - - book1.stackTagCompound.setTag("pages", pages1); - player.inventory.addItemStackToInventory(book1); - - ItemStack book2 = new ItemStack(Items.written_book); - book2.stackTagCompound = new NBTTagCompound(); - book2.stackTagCompound.setString("author", "HbMinecraft"); - book2.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 2: Machines"); - NBTTagList pages2 = new NBTTagList(); - - for(String s : Library.book2) { - pages2.appendTag(new NBTTagString(s)); - } - - book2.stackTagCompound.setTag("pages", pages2); - player.inventory.addItemStackToInventory(book2); - - ItemStack book3 = new ItemStack(Items.written_book); - book3.stackTagCompound = new NBTTagCompound(); - book3.stackTagCompound.setString("author", "HbMinecraft"); - book3.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 3: Bombs"); - NBTTagList pages3 = new NBTTagList(); - - for(String s : Library.book3) { - pages3.appendTag(new NBTTagString(s)); - } - - book3.stackTagCompound.setTag("pages", pages3); - player.inventory.addItemStackToInventory(book3); - - ItemStack book4 = new ItemStack(Items.written_book); - book4.stackTagCompound = new NBTTagCompound(); - book4.stackTagCompound.setString("author", "HbMinecraft"); - book4.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 4: Missiles"); - NBTTagList pages4 = new NBTTagList(); - - for(String s : Library.book4) { - pages4.appendTag(new NBTTagString(s)); - } - - book4.stackTagCompound.setTag("pages", pages4); - player.inventory.addItemStackToInventory(book4); - - ItemStack book5 = new ItemStack(Items.written_book); - book5.stackTagCompound = new NBTTagCompound(); - book5.stackTagCompound.setString("author", "HbMinecraft"); - book5.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 5: Misc"); - NBTTagList pages5 = new NBTTagList(); - - for(String s : Library.book5) { - pages5.appendTag(new NBTTagString(s)); - } - - book5.stackTagCompound.setTag("pages", pages5); - player.inventory.addItemStackToInventory(book5); - - return true; - } else { - return false; - }*/ } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFController.java b/src/main/java/com/hbm/blocks/machine/MachineICFController.java index da2d80619..ab5e4797d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICFController.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICFController.java @@ -134,6 +134,9 @@ public class MachineICFController extends BlockContainer { icf.coreZ = z; icf.markDirty(); } + + controller.setup(ports, cells, emitters, capacitors, turbochargers); + controller.markDirty(); } controller.assembled = !errored; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java index 49dfa173e..022359a8f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import com.hbm.tileentity.TileEntityTickingBase; @@ -20,6 +21,10 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE protected List ports = new ArrayList(); public boolean assembled; + + public void setup(HashSet ports, HashSet cells, HashSet emitters, HashSet capacitors, HashSet turbochargers) { + + } @Override public String getInventoryName() { diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block.png b/src/main/resources/assets/hbm/textures/blocks/icf_block.png index f2c0b4c202fb228ab8a4892ebf271580d85e0ac1..52b8aa635a5abc5588298d04af3c230cd2a5d9ae 100644 GIT binary patch delta 333 zcmV-T0kZz%0{8-uG=DEiL_t(IjiuAQN&`UW! zUo<#6*u$IP4Lrih<^6b|-na%AU@qXH)yA7}bAE~|mGA_>+IS%IimG8^6bgkJFCRUE zOi>rY!aqka=SJ`<-$fMOUORMiPo5dM=Eyi;^o}broZY1mZ2=&o*@l5Ail%zbGkqq2 fFiDcBg8{w(8CQ@>q8NDL00000NkvXXu0mjf0n(Zb delta 312 zcmV-80muIM0^bjyIXN)mqAqXkss`ln0c@MDGAe90k=z2%fG&mn{bAKQs3N-})ArVqC`-ruc zZWzf3v@!I9``ZJ6$p>Q0R8__2c|a;fT^mA7NL_@N3Q_`NEmMfB*DI7#jBduwp2>&D z0Anp*=N=&?+E@^hm=|T~mzFC4-7r!&4JpIuCVWgF1XAh6+=nF~h$%0Q%jG%U97s9S z^+N%;ab>sLkuiYzYHwA)UFKy47eL##Pqp()p9w%84u_|c0looi?|o%<{*QS80000< KMNUMnLSTZzzKPKQ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_ct.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_ct.png index 5f9bb3080b0b6e8b34542b1fac45854cc6df0711..3d5496e2fbcd2f3a818acd7a61c3a303adf6a6b7 100644 GIT binary patch delta 1068 zcmV+{1k?ME2+#+~}g#X)p~Kh0RqAKg%oIFHAf=kz~bAS5%cgRCP6jJsCAqsg+ zhk;g<3 zr9ZlxCp4Vj(SMiU$VG?=5{_;Z3Q?j$R7H|eNF<0+BnT-H4MZJ+Ly`>$$YZMI`=b#O zVR4MN*PE5{{^bnnP?*z$kt|KrV_HL^Z@5VpPRJadd-FBqbyx z8Hm~D`ym||$qxwV7Lkz3#sAq^2`ipFM5MZOqUHah4u8cF)1ZQ+)baxYE?&LKgGZ|* zgQVrLDjvmQ-qT#X&Yh)Yq8dr5+5ko=qCf6ESgz#<1blVoGdk@RI-L%AC}1uYiO{eMYi!@sJc%!<-=s zqQ=AZf-ETN8x*1hb*zO*F{G)Zc%JHOfdJ+*$Qq~<%$IjTs~)elSITcY7*Qk9j3OD` zs6z*ld0)%BegSK%tE?45NMO#RRT0CJ4A$Ch)_5P+lt0s$I?x6ufnB zsehI~INK*+-{CjdcX*&qPfWd3|Nikf^U-@fe&E!xBLjY5BaR+DN~6_kZN2&yVyk{& zYHF%9B-<@uD}LbdHMd>BC_m6_Hhc2@=f_`VX43QGWX7`-uz$DX>0OS!PeR^V;mnC6 z%uIR??uF;}IG)+#*|*y>xho^)ZTfksJb!~$&kaA&36WfMfFIirjLVPh2gc>yCnt|t zogaARz(lPdc=^DdT0b$0cUQmr*2eJzA0B&mEI%=}A2>cHKeitjmmk{?jLW-o=gti= z%l|#@-n?9%3Z6TEwfN%H2^KCdB1Y*4o`0<;e_JQvjT<*Ow0~lxANXHK@mBr7#wEJj mB4BoQcC+BW@dK?^i@yQx)Z|_hza9ht0000va}X=Y zGO~;8B>yF%Ff-Wh?z-opjlu5Gn5ZX5vh0WYPW^R!>eMg4|MqLmDdR%~QCzM& zl-4wj#k!VUA*M(!m7EJP7ko$*Kxxfa-#=%yTJ1kSKfQk|FMr=YJ6La0%sjaNH6a(A zYxw3O)BAu@8sl0*45U)YrQkzm2$8dMMXvDv@`~el_VmfE{N`xA2{AIngtd+#1h#!3 z)r!{OyK9`Y_?S>ig9z4Ha)lH#rA+qc!=}HLKMtj|L1{xDBBhRHZJP#TG}>scHyxlT z6>_aqQHau{Tz|;5P7|KskHZv%AtsF00um26u} z$^~T%G38w!DDn*@^)cPbPbwfvQEH_R5kx2jtaJF3IX_>bwWc2eLx}iYDV5e3XED}J z5}x8G0y-b)d?1&Kh{ig{^=6AGg|QA~yz@RLN(JjIAtg$In5Ose6h9Gw2k>0B0y=yS=$nGVF-zWkV_pqR_T4&ORcQ8 z9mZJt!S5({R_tJUgG1$?O=xVX3&4ar>#_!2+x z`G1~wE7*bD)!_5MBI_5o`xRfP1J zAJ`6_f8Jm6Rqd_ORgpX~?c z^2UDmobAV{uz&)D&j!V^eemh`(f5OkM`Hj7d|m&s_XA<)2jbw#J3p|z|L}mn(@FU5 z-86pX`r*VDRJ7{?}3bso@gVxzP`#GVuc+_q`JVFJ8RZC;TsdV6|HD YFZmOQ_?>0pIsgCw07*qoM6N<$f-Z^X#Q*>R diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png index c7595645a487a9499ef12445b16ed505ed60f572..9de12e638798c09654ca1cf34212088f8b3a493e 100644 GIT binary patch delta 300 zcmV+{0n`590@nhNG=C0BL_t(Ijir;lPQx%1g}+3}*3A(DG2pFHcLt=q1`m?~DO+BP zAuMI00x4|nfI5&!Of)~X!%!)rji6C-Hrw}n_gvX_k|gPvArGJ^ib>`?&kuk(5byV5 zEF=uWzScWEe7L{Ex*i&j)>^*z6;;#H7+7!KxLn>IHF8e@b$_eb`Zs*|*Q|Gj*DoJ^ zvBJGtvE7ybj{s2D4J;r{Q_AvS5JC{gF^x9o0hQJ$r6|ktD5_ElZH6~K7@-+9>1A-n zB(O*+5kmBPLI|Xk*fD^8-Le4UI7TT2fRqvdI}AJoJiWa0`S^_Kz*q;}by!?14xM`j y5JeFH%R$-S>Lmd|5KMZ`vpy4mmu1;xGr$kosCLA+diBHr0000gm8Ovzlz6f~-+R7$uWV;BnbZte5+Kj>UddUO?Epg{^6>Cq zNF2xeSb2PTJH9~(!D_Q52u2j;8qf2n9fxgIvm8YYqZYvTJ%7UMF#yIG2;oX=0A3&O zPqzSo;{q_9PO;Vkpp+s_Q;NkBIqCqcHe23}!CKoW)fj^-+kWn`P*ts%2E4Nc&-c+< zqmV zH~~nKgbG+6Xf0uI`L}QR9{{2#>h+uleI@`oo6UMB1N;Cl)Mhs2>sSc@0000#zZC-n-BFkAF{-T8kG5r3%)0QWx+V z@%!y%j-Ps)X0ti?ee?PI2lBU`$WVScbDsLGKM2O)1yT=v=Wzm0THAONQNM8;s|uz> zAi@e{UU>X;gX5PD-Wkd-XPG4pf~diYA@yNzhX(5dE`U|t{TCsi2!_-J ztQSV3KRBWB{D0I)emV6X7a(AGzFK8UlxYF4%2Z{F?OvbfrfZZ1Dxy5u*usm!WAH(9 z0&2C|f&6HcZGhD8?rchwFWy^V^qrVZP7Zpy*4(D{LJd)a*L=ZA{E7St2wuU764a16 z&uVoJfJUPMR7jFjM8KmTui}E>gW?s&bYLQX;T3W*TfEOiof?#kVuV50NYr(bUhpcb52@2&>h17c*jRvh&i)OPqNNhA3_@K15 zJM^5O7zC3mIEl{*`0nCYba%GtcDrnKd)Qtlf3ABGFnoLAJoB@&1mOCWpRgl2HowUs zJ}02x>wi+edWD_LQ#n@Ul@rHFl7u*p2T5@plOzd(;jcgM(rf-hyPxr(vC7;Vua2C6 z9LVPc1R^9V5i}5KL_c#>fu*ITy_X1*BmqE(*y*Jl>!x(9BO5mdCh$1{9#B()QW-Ud zYs(K=zjBM95M=kN2@!%pqlk9jQttHVI~hBOCV%lc0iAZ6PUf)z+U*Xh^GsK(2!{36 z7Uw=$~jbIRV#i-e$GA zxqrL6pjaOWY6uEqB5vHd$KUIl1c9L7Mezb^BE;l-`grZ>f&9sZ5drbso5XXuIzurt zfAI7Daq-KKhWx;}GwTEcM{BKtAAfkdvBiZ?Pfz6c`+3;Thy1^L2$peSG14;1CirAwFcAL#mG@Kg@uJd!T;h1n$0Hv0wACiC~XEvFaQ7m07*qoL8fEFlO=?99z}_qnrZj~TlyJE(_}EPGL3oxiKgb$;>Fk3ZxX zBG!2jlC!G?QYp&PV2X;E!3R%FnHUp3Caeo2Kq|%E&z~`wOn+9N@17j(|d+%33=-wd4)G(Mn}BBo5^11e>#4^&l&)&?OZSqO5< zI3GYrd`h?wItBOf9Ram<3=RieE*g~56op~%#kT;A$72}4!_f$Ux4-{FMqphl0wFsE z_wgM8)&+b>91aFp?^i`%zkbbhIt5@j9CC7U!hF%7jDG>2%6uGFc^#$77_{_z;(KAc$^WtS~0I127^QD#)4FcEsG@~cJgY7Zq1N-=nfU+v_vE6V=DPnG?bW=a*RLDaw)z_?Wg{E`Ps!zmq?H@MvAYy~kg5iu8$xWkxE! z#eWYdVqBkrmoHzUZ*HsGh>!IH$H&L5A-QbTOP^7Z#G9&<1_Sowij<4{Vi?(=!=FvgIDAl&c+^Tsm$aK_h0jRjE=100000NkvXXt^-0~ Ef?AO9IsgCw diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_casing.png b/src/main/resources/assets/hbm/textures/blocks/icf_casing.png index 56d93d6291fa1380eea7cd3ab9368e5f9b8cfa2b..87ebf08fd43e77e0c985a4608e71f84fb1b66c29 100644 GIT binary patch delta 666 zcmV;L0%iTI1;Pc8G=F(XL_t(IjXjb}ZXHz+hQD*VLD_;8b8#GrhnO&A0c?R;7QiN0 z2qPB3kPJfPSaBjd*w{)e0}0qf$RW0Tulx2nb?U*OTg*yTs>lERm45#IyYSqj^fY(Y zW1&bx44xgG@ZjsOC?cqXbsr#2Db3KxJUuw1uT9x`zK^AZI)4;}u_?{rpZ7Ot%IxeN zAQ6x{jEp!`bkdH$basmpXkT+z|P}Gtg14K(IP|c zh}>~;d4)yd_{l@^ojVvE)q<+Qa;&_3^OkI6Ja_D$p3@>D<`h**Q`A8{c)zY(E!SM% zj$E(SJls2CS%j)iuRx@ZFF)UARg}mR3!gRKu5KvJXc9DUv3RQ!HSFb1gQpc-5&S^8a)iAIeg{Q~A zQJOP0-G=F1BL_t(IjYX1MZd_FmMOW2%Tz70F#6!mImJQ0B7)2(+3=t1U zb~-3XAiw+GdrnmyJ~|2m*rmN{ZTaQh&%-TP%>d!?bwO2`Y9W=Sy!K%2oikBKn zgULzS^;N!+kJK6Av$k<4;Zs=7HwScDrSWBBFQ|Px7#6_Xy#m9U86Z;?re8Ers)I_F0Zbc*Ok|0IqI#o(tR-B z-&5;EAgsL;14=0bFs}_WV_7>ELC(jqwPxgI&cBaOm$Oy_O`2U5=D(I;&Tx;fic`2OvKyR8pm zP9L4=fw|MVQTqT@EWoFc+Zfa_DP^Pf&g<^X2vUM}eX?zZHYTbGL?~Oq0_HG0AZyB~ z!`%m}il)So5&_HzKA#uIe&7KXL5LzEOj{(`5$c%alrRtKm?RI{m>kDW&IM5=L|k<$Ia1KZHNeeu1X!owiPrj+{deOo+ouoYM%r`Ak@BwAd1#D7}NQ9e@D~06jk~# zwr%5a-2_4|h1XSa1Vk9q2_UDO(UdTEhB+RNS+MUrzn|C2Y&fNasBOG5@p-?e7+D>a@jyu=WR?p zplpRcC+^Uvp`ya$YKSOz>pZTT<2>uQ9Kk#Y z1T@jU8t@1nuZx@ucWsMU6`gY(EI?8sBEFnQ2Cduf_#5|T85rDEECwJ}C)=9Zwu}Bf+f0=EgYcgL1ivR!s07*qoM6N<$f|ITf A*8l(j diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_controller.png b/src/main/resources/assets/hbm/textures/blocks/icf_controller.png index 4ad1c003f6076aad88a93af9d49d212bdbbac68e..fa0440740f557791dc287ac7dcb80a9ce592ec2d 100644 GIT binary patch delta 664 zcmV;J0%!f<1;7Q6G=FzVL_t(Ija`z@ikwvt#ea4C_K-O3OkflT1d+joParNNtAJo| zuM%A91GsVHgZK(Qfhb6nF_?%G6Nu4;s8M6b`P)6+-}l{n>yL}>1W9eGHg!(bIY++! z^po(EQ8LY)t{)g`qZ-`0dyi{ZUT3Hkb+FNx+LWOg8j0@??thR=Q})0A0TV$T28F&U z&0%^xLnX0)^MD!wGQvnyhoa7(|DKRbsSM_L2-Sr_ZOtH5HJU+n|Pz!Q37<7fa;lbOly~@*??7jTb z6HWd(nz6OLg@1>j5#&J~4QL)%2&E~Xef|}WU;)LTsB&q0o9Xe4W{z5*0qT(Z(x?__ z2o^ypm1@oxw|`?godU4CyUV+8UFN}~6V!vDIgZfG$=}}jg~QW17LZ3{236E~vJ9(P zeZ_n{ThKKp5F8|)yt^I ziaEdmCvn~lTwD$;YNM!=6$lx@C=(()*5tvX6UmTBh-bWj)tQls0-B`MX(U^javsiJUU&W yTTs=o$HGbC=Iy)ub$E(7Sb%z<4j~Db#D8AS`w^psdG=G>$L_t(Ija8Dri(OR^$3JK8IrnbX)m_Y6vxQBN7ufs|6gEN% zg%q$F5oKHVP-8=zM*ELUK3cw4K3S$f@DVj4@F$^JcLWFOA?`hkXrfIl( z@eFHg70ce^oPXoyox4mX6K>TFm-o&RRPiw(gAW*EID9++&@>Hiym|qQ;fH&_F#luD z5F)Sd?XtDC1;F4V7y%=Q_mP+~KQ1zLUGwH^FJeUaY4#hReDM_@UH_8%zdpb^$IerR z>2%7S?|&vF1wf=ID6Cy=I)=#p{(U~Z@%4)P?DLy!Y=3MZ|I-;GB+ZBsgXX+Ss6y$E zh5upjo-xE#Y)eOB9nz11-iKAfl_i_oC;9mOcURnp@4dsrrbUnYpb9Z1%(b_#=JoY; zc1}IV{@hd7HCHZOAjHJx<|bnZJnD`}85YaLY&PSSm(SC69rMK_#1z7MRjo{!OeWNS z_GAp*(SMSMP0QdTi)EtgIsp1%L^XpEY)XI_QikWB5$d|3X&TIQ`tPs;z-;!i9*#>0xRVi-~oicHz>* zm3tSBOZ@?EoP}$CgTKWM8rld1TChk7X*ft*s>~E-V9v+;KF{;IAa-HmwYoR=;{I^I z{PbhABt=LGW)x*b2H6CZ>sC=wHX+kf05t%I<#zJWT27*qmf z5Q4$8!4Po?E32FM7{N7A61+hz#?jx;N$T2DsjK1Ivaxr> z*c)T7+}q2kg5t$UD-nXiLbt;!trim&x%KgfNQ_K0Cm0qbFHKJI+08}7BF~^`<_(gW8yp@F2x{yfJjQE84AQa=c#X_==Fk|aYY#10T3TW-7y!_2x9RnI zcu~Y6Gcz-IF@hTDovl4iPDf~jw9%vzAyhU<09lp+U?iLu6+5fj zEW9^QEq_KTKy(dme$XX4$DOS`PL|iv2x^y883~3XCJCd`)6M1>j_b=KU5rLt)Ph$S zjV`EyFxhHhI8FvCoEu1-%gH9f`soqdX+cu^9GAX_*V-@lIHFcP}m`Ah8@h&gI8u3wv@ z@IqNDoz6RWH8eWXyK9>~?VqC25j5gO(df_!<`P!#ZS(l#6gAKYVwVq$F2P*FKYu*j U4u>_Jh5!Hn07*qoM6N<$g7<}Aq5uE@ delta 675 zcmV;U0$lxy2FnGIG=G9gL_t(IjdhV-avMbyg}=VtGvio>P#IB<$0}JQEP=JK3O1k> zxY!%KP(@V;#7MD{7-E%wVtHn|Z{OxY{5)}<&pCDKeD3@2zAageQ5A69?FK}IrmpZ+ zjRC4kwn8=|=fap21H^lRCgaO5J|me?RW--i=wn306RL)&>3`qwn2a$cj+~GST;JXi zVpc{~p0!g_&ZIsP4g%f>#-!9w4jGdY#8VY`QVO}i&CM-VKtw#^1AR=qdb38n=b&l$ z{c?j3p1X%fF4pg`0=X0})*GC7ayG0K#BdBr5fNT4<_t+0lk)ud81FqHRJ{D^3`8hS zI6du1nn`9v&3}X;CY~N0a{oBseW0!@CNI7LV6|Go1fDMz0DSo6M+%NHDmVcrgcudg zg=doqKfiv%*Dv2O4(8mPMVaESzOn=G{bx=b< zs;*fq7PM{4bUI}^ozk`~i^T#faP`L(Q57@LoC(f39{R}9=R$XK!l%ccr@(T#+@A<6 z{ytH>=lG;UB%oHX0>OFVuxUuy_VYsE{i`3yR`BAvf7tQUpO^UH+4TdH$r1f9VphNj zk~1KVTz}y0yZ4l`Z@yT+r5{E@Rdc!7?3q_JuYdgwLnt`ZG7?p>0#P%w*$gM1sG0fv z3<&|vnQk_tX$}C#>HLg-9N7&61xKjsnv@Iu%?)+kU^vE&s2L$t zi1);(gs7SA-94I(;r9MNzTSff4j}{a_7gEGRUFe`K+YMQ<1e6!fMrK6R15$B002ov JPDHLkV1nnpM4SKs From d88e9eb1f95d2ec01fdda463e6b3810ad2b4e537 Mon Sep 17 00:00:00 2001 From: Moses Miller Date: Tue, 30 Apr 2024 08:19:01 -0700 Subject: [PATCH 367/376] Fix quotes in resource file --- src/main/resources/assets/hbm/lang/en_US.lang | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b930e3455..10bc7c4e5 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -348,7 +348,7 @@ book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be book_lore.book_dust.name=Note book_lore.book_dust.author=Dave book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction "MKU" whatever that means, and that it contains actual household lint. can you believe that? one of the most book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d book_lore.book_mercury.name=Note @@ -2141,7 +2141,7 @@ item.canned_pizza.desc=A crime against humanity. item.canned_recursion.name=Canned Recursion item.canned_recursion.desc=Canned Recursion item.canned_spam.name=Canned Spam -item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word "Spam" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. item.canned_stew.name=Canned "Mushroom Stew" item.canned_stew.desc=... item.canned_tomato.name=Canned Tomato Soup @@ -3630,7 +3630,7 @@ item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder -item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_asbestos.desc=§o"Sniffffffff- MHHHHHHMHHHHHHHHH"§r item.powder_ash.coal.name=Coal Ash item.powder_ash.fly.name=Fly Ash item.powder_ash.fullerene.name=Fullerene From ef1e4653cea694baa369070624adcce298019647 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 1 May 2024 20:57:51 +0200 Subject: [PATCH 368/376] at a snail's pace --- .../hbm/tileentity/machine/TileEntityICF.java | 2 +- .../machine/TileEntityICFController.java | 6 ++++++ .../assets/hbm/textures/gui/reactors/gui_icf.png | Bin 0 -> 3411 bytes 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java index 3b2b476ec..1f26416e3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -9,7 +9,7 @@ import net.minecraft.util.AxisAlignedBB; public class TileEntityICF extends TileEntityMachineBase { public TileEntityICF() { - super(0); + super(12); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java index 022359a8f..4dd8789d7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java @@ -23,7 +23,13 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE public boolean assembled; public void setup(HashSet ports, HashSet cells, HashSet emitters, HashSet capacitors, HashSet turbochargers) { + + this.cellCount = 0; + this.emitterCount = 0; + this.capacitorCount = 0; + this.turbochargerCount = 0; + this.ports.addAll(ports); } @Override diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2c35659afdd00925e16e2ce20ca9c9c941da8b GIT binary patch literal 3411 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 j_s4V2-yHns^Z8}eJVUN(ShApTeUp)aiGI1R Date: Thu, 2 May 2024 16:32:04 +0200 Subject: [PATCH 369/376] gooey --- changelog | 6 ++- .../com/hbm/blocks/machine/MachineICF.java | 6 +++ .../hbm/inventory/container/ContainerICF.java | 38 +++++++++++++++++++ .../java/com/hbm/inventory/gui/GUIICF.java | 36 ++++++++++++++++++ .../hbm/tileentity/machine/TileEntityICF.java | 20 +++++++++- 5 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerICF.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIICF.java diff --git a/changelog b/changelog index 25f7dcb1b..5efebd412 100644 --- a/changelog +++ b/changelog @@ -21,9 +21,13 @@ * The treasure now consists of mainly some rarer earlygame ingots, circuits, some gear, a small selection of armor mods and alexandrite (rare) * Schraranium processing now yields neptunium as a byproduct instead of plutonium, making neptunium easier to automate outside of the cyclotron * Using the guide book now opens a link to the new wiki +* Certain earlygame things can now be recycled like stirling engines and gears +* Antenna part recycling has been moved to the anvil +* NTM's pickaxes now have a break speed bonus for glass ## Fixed * Fixed DFC receivers not outputting power * Fixed the custom machine NEI handlers not working * Fixed a potential crash caused by invalid assembly templates -* Fixed general weirdness with the schrabidium transmutator item IO \ No newline at end of file +* Fixed general weirdness with the schrabidium transmutator item IO +* Fixed certain tooltips using the backslash escape character despite not needing them \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/MachineICF.java b/src/main/java/com/hbm/blocks/machine/MachineICF.java index 2ea957f46..9d5bbb9ba 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICF.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICF.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.machine.TileEntityICF; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -28,4 +29,9 @@ public class MachineICF extends BlockDummyable { public int getOffset() { return 1; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return super.standardOpenBehavior(world, x, y, z, player, 0); + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerICF.java b/src/main/java/com/hbm/inventory/container/ContainerICF.java new file mode 100644 index 000000000..b3db3ab42 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerICF.java @@ -0,0 +1,38 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.TileEntityICF; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerICF extends Container { + + protected TileEntityICF icf; + + public ContainerICF(InventoryPlayer invPlayer, TileEntityICF tedf) { + this.icf = tedf; + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 147 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 205)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + return null; //TODO + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return icf.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIICF.java b/src/main/java/com/hbm/inventory/gui/GUIICF.java new file mode 100644 index 000000000..55661f6c4 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIICF.java @@ -0,0 +1,36 @@ +package com.hbm.inventory.gui; + +import com.hbm.inventory.container.ContainerICF; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityICF; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIICF extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_icf.png"); + private TileEntityICF icf; + + public GUIICF(InventoryPlayer invPlayer, TileEntityICF icf) { + super(new ContainerICF(invPlayer, icf)); + this.icf = icf; + + this.xSize = 248; + this.ySize = 222; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.icf.hasCustomInventoryName() ? this.icf.getInventoryName() : I18n.format(this.icf.getInventoryName()); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 93, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java index 1f26416e3..f6e6d0f81 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -1,12 +1,19 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.container.ContainerICF; +import com.hbm.inventory.gui.GUIICF; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; -public class TileEntityICF extends TileEntityMachineBase { +public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider { public TileEntityICF() { super(12); @@ -46,4 +53,15 @@ public class TileEntityICF extends TileEntityMachineBase { public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerICF(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIICF(player.inventory, this); + } } From b72b66a0832aa4b888a912731e563f1b36fb6a9e Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 2 May 2024 22:10:02 +0200 Subject: [PATCH 370/376] (it's tia's PJ) --- changelog | 6 +- .../com/hbm/blocks/generic/WasteEarth.java | 48 +- .../com/hbm/handler/ImpactWorldHandler.java | 2 + .../hbm/inventory/container/ContainerICF.java | 50 +- .../java/com/hbm/inventory/fluid/Fluids.java | 6 +- .../inventory/fluid/trait/FT_Coolable.java | 5 +- .../inventory/fluid/trait/FT_Heatable.java | 5 +- .../java/com/hbm/inventory/gui/GUIICF.java | 19 +- .../hbm/tileentity/machine/TileEntityICF.java | 40 +- .../machine/TileEntityICFController.java | 32 + .../network/TileEntitySubstation.java | 6 +- .../hbm/util/fauxpointtwelve/BlockPos.java | 15 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- .../assets/hbm/models/reactors/icf.obj | 1440 ++++++++--------- .../hbm/textures/gui/fluids/stellar_flux.png | Bin 0 -> 240 bytes .../hbm/textures/gui/reactors/gui_icf.png | Bin 3411 -> 3813 bytes .../hbm/textures/models/machines/icf.png | Bin 7267 -> 9728 bytes 17 files changed, 913 insertions(+), 763 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/stellar_flux.png diff --git a/changelog b/changelog index 5efebd412..4bfc0e045 100644 --- a/changelog +++ b/changelog @@ -24,10 +24,14 @@ * Certain earlygame things can now be recycled like stirling engines and gears * Antenna part recycling has been moved to the anvil * NTM's pickaxes now have a break speed bonus for glass +* renamed the foundry slag outlet to foundry spill outlet because people always assume it's for slag and only slag (it is not) +* The description for heatable/coolable fluid tags is now written in the same line as the label ## Fixed * Fixed DFC receivers not outputting power * Fixed the custom machine NEI handlers not working * Fixed a potential crash caused by invalid assembly templates * Fixed general weirdness with the schrabidium transmutator item IO -* Fixed certain tooltips using the backslash escape character despite not needing them \ No newline at end of file +* Fixed certain tooltips using the backslash escape character despite not needing them +* Hopefully fixed the immense lag caused by tom post impact mechanics, burning grass will now only spread 20% of the time (instead of 100) and the world destruction handler will only process half the blocks per chunk +* Hopefully fixed an issue where substations would not reliably connect to cable blocks \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/WasteEarth.java b/src/main/java/com/hbm/blocks/generic/WasteEarth.java index 6c2558ece..e38f5d9d2 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteEarth.java +++ b/src/main/java/com/hbm/blocks/generic/WasteEarth.java @@ -129,29 +129,31 @@ public class WasteEarth extends Block { if(this == ModBlocks.burning_earth) { - for(int i = -1; i < 2; i++) { - for(int j = -1; j < 2; j++) { - for(int k = -1; k < 2; k++) { - - if(!world.blockExists(x + i, y + j, z + k)) continue; - - Block b0 = world.getBlock(x + i, y + j, z + k); - Block b1 = world.getBlock(x + i, y + j + 1, z + k); - - if(!b1.isOpaqueCube() && - ((b0 == Blocks.grass || b0 == Blocks.mycelium || b0 == ModBlocks.waste_earth || - b0 == ModBlocks.frozen_grass || b0 == ModBlocks.waste_mycelium) - && !world.canLightningStrikeAt(x, y, z))) { - world.setBlock(x + i, y + j, z + k, ModBlocks.burning_earth); - } - if((b0 instanceof BlockLeaves || b0 instanceof BlockBush)) { - world.setBlockToAir(x + i, y + j, z + k); - } - if(b0 == ModBlocks.frozen_dirt) { - world.setBlock(x + i, y + j, z + k, Blocks.dirt); - } - if(b1.isFlammable(world, x, y, z, ForgeDirection.UP) && !(b1 instanceof BlockLeaves || b1 instanceof BlockBush) && world.getBlock(x, y + 1, z) == Blocks.air) { - world.setBlock(x, y + 1, z, Blocks.fire); + if(rand.nextInt(5) == 0) { + for(int i = -1; i < 2; i++) { + for(int j = -1; j < 2; j++) { + for(int k = -1; k < 2; k++) { + + if(!world.blockExists(x + i, y + j, z + k)) continue; + + Block b0 = world.getBlock(x + i, y + j, z + k); + Block b1 = world.getBlock(x + i, y + j + 1, z + k); + + if(!b1.isOpaqueCube() && + ((b0 == Blocks.grass || b0 == Blocks.mycelium || b0 == ModBlocks.waste_earth || + b0 == ModBlocks.frozen_grass || b0 == ModBlocks.waste_mycelium) + && !world.canLightningStrikeAt(x, y, z))) { + world.setBlock(x + i, y + j, z + k, ModBlocks.burning_earth); + } + if((b0 instanceof BlockLeaves || b0 instanceof BlockBush)) { + world.setBlockToAir(x + i, y + j, z + k); + } + if(b0 == ModBlocks.frozen_dirt) { + world.setBlock(x + i, y + j, z + k, Blocks.dirt); + } + if(b1.isFlammable(world, x, y, z, ForgeDirection.UP) && !(b1 instanceof BlockLeaves || b1 instanceof BlockBush) && world.getBlock(x, y + 1, z) == Blocks.air) { + world.setBlock(x, y + 1, z, Blocks.fire); + } } } } diff --git a/src/main/java/com/hbm/handler/ImpactWorldHandler.java b/src/main/java/com/hbm/handler/ImpactWorldHandler.java index 4fcf45157..fc528fc6d 100644 --- a/src/main/java/com/hbm/handler/ImpactWorldHandler.java +++ b/src/main/java/com/hbm/handler/ImpactWorldHandler.java @@ -45,6 +45,8 @@ public class ImpactWorldHandler { for(int x = 0; x < 16; x++) { for(int z = 0; z < 16; z++) { + if(world.rand.nextBoolean()) continue; + int X = coord.getCenterXPos() - 8 + x; int Z = coord.getCenterZPosition() - 8 + z; int Y = world.getHeightValue(X, Z) - world.rand.nextInt(Math.max(1, world.getHeightValue(X, Z))); diff --git a/src/main/java/com/hbm/inventory/container/ContainerICF.java b/src/main/java/com/hbm/inventory/container/ContainerICF.java index b3db3ab42..a5cfabe47 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerICF.java +++ b/src/main/java/com/hbm/inventory/container/ContainerICF.java @@ -1,5 +1,7 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityICF; import net.minecraft.entity.player.EntityPlayer; @@ -15,20 +17,58 @@ public class ContainerICF extends Container { public ContainerICF(InventoryPlayer invPlayer, TileEntityICF tedf) { this.icf = tedf; + for(int i = 0; i < 5; i++) this.addSlotToContainer(new Slot(icf, i, 80 + i * 18, 18)); + this.addSlotToContainer(new Slot(icf, 5, 116, 54)); + for(int i = 0; i < 5; i++) this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, icf, 6 + i, 80 + i * 18, 90)); + this.addSlotToContainer(new Slot(icf, 11, 44, 90)); + for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 147 + i * 18)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 44 + j * 18, 140 + i * 18)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 205)); + this.addSlotToContainer(new Slot(invPlayer, i, 44 + i * 18, 198)); } } - + @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - return null; //TODO + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack copy = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + copy = stack.copy(); + + if(index <= 11) { + if(!this.mergeItemStack(stack, 12, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(copy.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 11, 12, false)) { + return null; + } + } else { + if(!this.mergeItemStack(stack, 5, 6, false)) { + if(!this.mergeItemStack(stack, 0, 5, false)) { + return null; + } + } + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return copy; } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 0e6c14627..0a096eac2 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -173,6 +173,7 @@ public class Fluids { public static FluidType THORIUM_SALT_HOT; public static FluidType THORIUM_SALT_DEPLETED; public static FluidType FULLERENE; + public static FluidType STELLAR_FLUX; public static List customFluids = new ArrayList(); @@ -367,7 +368,8 @@ public class Fluids { CRACKOIL_DS = new FluidType("CRACKOIL_DS", 0x2A1C11, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS, P_OIL); HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x3A1A28, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x63614E, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(LIQUID, VISCOUS, P_FUEL); - LIGHTOIL_DS = new FluidType(138, "LIGHTOIL_DS", 0x63543E, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(LIQUID, P_FUEL); + LIGHTOIL_DS = new FluidType("LIGHTOIL_DS", 0x63543E, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(LIQUID, P_FUEL); + STELLAR_FLUX = new FluidType(139, "STELLAR_FLUX", 0xE300FF, 0, 4, 4, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -520,6 +522,8 @@ public class Fluids { //garbage metaOrder.add(XPJUICE); metaOrder.add(ENDERJUICE); + //plasma-esque + metaOrder.add(STELLAR_FLUX); //plasma metaOrder.add(PLASMA_DT); metaOrder.add(PLASMA_HD); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index 1bb6d3574..87f595015 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -42,14 +42,13 @@ public class FT_Coolable extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + heatEnergy + " TU"); + info.add(EnumChatFormatting.RED + "Thermal capacity: " + heatEnergy + " TU"); for(CoolingType type : CoolingType.values()) { double eff = getEfficiency(type); if(eff > 0) { - info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); + info.add(EnumChatFormatting.YELLOW + "[" + type.name + "] " + EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index c828858b8..ac60c74a5 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -42,14 +42,13 @@ public class FT_Heatable extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + this.getFirstStep().heatReq + " TU"); + info.add(EnumChatFormatting.RED + "Thermal capacity: " + this.getFirstStep().heatReq + " TU"); for(HeatingType type : HeatingType.values()) { double eff = getEfficiency(type); if(eff > 0) { - info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); + info.add(EnumChatFormatting.YELLOW + "[" + type.name + "] " + EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIICF.java b/src/main/java/com/hbm/inventory/gui/GUIICF.java index 55661f6c4..9b74b86e2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIICF.java +++ b/src/main/java/com/hbm/inventory/gui/GUIICF.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import com.hbm.inventory.container.ContainerICF; import com.hbm.lib.RefStrings; +import com.hbm.render.util.GaugeUtil; import com.hbm.tileentity.machine.TileEntityICF; import net.minecraft.client.Minecraft; @@ -22,15 +23,31 @@ public class GUIICF extends GuiInfoContainer { this.ySize = 222; } + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + icf.tanks[0].renderTankInfo(this, x, y, guiLeft + 44, guiTop + 18, 16, 70); + icf.tanks[1].renderTankInfo(this, x, y, guiLeft + 188, guiTop + 18, 16, 70); + icf.tanks[2].renderTankInfo(this, x, y, guiLeft + 224, guiTop + 18, 16, 70); + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.icf.hasCustomInventoryName() ? this.icf.getInventoryName() : I18n.format(this.icf.getInventoryName()); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 93, 4210752); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 44, this.ySize - 93, 4210752); } @Override protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + GaugeUtil.drawSmoothGauge(guiLeft + 196, guiTop + 98, this.zLevel, 0D, 5, 2, 1, 0xFF00AF); + + icf.tanks[0].renderTank(guiLeft + 44, guiTop + 88, this.zLevel, 16, 70); + icf.tanks[1].renderTank(guiLeft + 188, guiTop + 88, this.zLevel, 16, 70); + icf.tanks[2].renderTank(guiLeft + 224, guiTop + 88, this.zLevel, 16, 70); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java index f6e6d0f81..c4e34d4fe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -1,10 +1,13 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.container.ContainerICF; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIICF; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -13,10 +16,16 @@ import net.minecraft.inventory.Container; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider, IFluidStandardTransceiver { + + public FluidTank[] tanks; public TileEntityICF() { super(12); + this.tanks = new FluidTank[3]; + this.tanks[0] = new FluidTank(Fluids.COOLANT, 256_000); + this.tanks[1] = new FluidTank(Fluids.COOLANT_HOT, 256_000); + this.tanks[2] = new FluidTank(Fluids.STELLAR_FLUX, 16_000); } @Override @@ -27,6 +36,20 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider @Override public void updateEntity() { + for(int i = 0; i < 3; i++) tanks[i].setFill(tanks[i].getMaxFill()); + + if(!worldObj.isRemote) { + + } + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 256; + } } AxisAlignedBB bb = null; @@ -54,6 +77,21 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider return 65536.0D; } + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {tanks[1], tanks[2]}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tanks[0]}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerICF(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java index 4dd8789d7..9c43e6970 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java @@ -8,6 +8,7 @@ import com.hbm.tileentity.TileEntityTickingBase; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.energymk2.IEnergyReceiverMK2; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntityICFController extends TileEntityTickingBase implements IEnergyReceiverMK2 { @@ -29,6 +30,37 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE this.capacitorCount = 0; this.turbochargerCount = 0; + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); + BlockPos pos = new BlockPos(0, 0, 0); + + for(int i = 0; i < cells.size(); i++) { + int j = i + 1; + + if(cells.contains(pos.mutate(xCoord + dir.offsetX * j, yCoord, zCoord + dir.offsetZ * j))) { + this.cellCount++; + } else { + break; + } + } + + for(BlockPos emitter : emitters) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { + pos.mutate(emitter.getX() + offset.offsetX, emitter.getY() + offset.offsetY, emitter.getZ() + offset.offsetZ); + if(cells.contains(pos)) { this.emitterCount++; break; } + } + } + + for(BlockPos capacitor : capacitors) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { + pos.mutate(capacitor.getX() + offset.offsetX, capacitor.getY() + offset.offsetY, capacitor.getZ() + offset.offsetZ); + if(emitters.contains(pos)) { this.emitterCount++; break; } + } + } + + for(BlockPos turbo : turbochargers) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { + pos.mutate(turbo.getX() + offset.offsetX, turbo.getY() + offset.offsetY, turbo.getZ() + offset.offsetZ); + if(capacitors.contains(pos)) { this.emitterCount++; break; } + } + } + this.ports.addAll(ports); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java index 33d6291c8..1f6b90818 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java @@ -51,7 +51,11 @@ public class TileEntitySubstation extends TileEntityPylonBase { @Override public PowerNode createNode() { TileEntity tile = (TileEntity) this; - PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord), + new BlockPos(tile.xCoord + 1, tile.yCoord, tile.zCoord + 1), + new BlockPos(tile.xCoord + 1, tile.yCoord, tile.zCoord - 1), + new BlockPos(tile.xCoord - 1, tile.yCoord, tile.zCoord + 1), + new BlockPos(tile.xCoord - 1, tile.yCoord, tile.zCoord - 1)).setConnections( new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN), new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), diff --git a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java index 4b2c6a1c8..90d897693 100644 --- a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java +++ b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java @@ -9,9 +9,9 @@ import net.minecraftforge.common.util.ForgeDirection; */ public class BlockPos implements Cloneable { - private final int x; - private final int y; - private final int z; + private int x; + private int y; + private int z; public BlockPos(int x, int y, int z) { this.x = x; @@ -27,6 +27,15 @@ public class BlockPos implements Cloneable { this((int)MathHelper.floor_double(x), (int)MathHelper.floor_double(y), (int)MathHelper.floor_double(z)); } + /** Basically a setter for the coords. Violates the "muh unmutability" horseshit I don't care about and + * lets me re-use the same instance for a ton of checks. RAM has priority over stupid religious bullshit. */ + public BlockPos mutate(int x, int y, int z) { + this.x = x; + this.y = y; + this.z = z; + return this; + } + public BlockPos add(int x, int y, int z) { return x == 0 && y == 0 && z == 0 ? this : new BlockPos(this.getX() + x, this.getY() + y, this.getZ() + z); } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 10bc7c4e5..cb0258ef3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5042,7 +5042,7 @@ tile.foundry_channel.name=Foundry Channel tile.foundry_tank.name=Foundry Storage Basin tile.foundry_mold.name=Shallow Foundry Basin tile.foundry_outlet.name=Foundry Outlet -tile.foundry_slagtap.name=Foundry Slag Outlet +tile.foundry_slagtap.name=Foundry Spill Outlet tile.fraction_spacer.name=Fractioning Tower Separator tile.frozen_dirt.name=Frozen Dirt tile.frozen_grass.name=Frozen Grass diff --git a/src/main/resources/assets/hbm/models/reactors/icf.obj b/src/main/resources/assets/hbm/models/reactors/icf.obj index 8c4daf462..9ff991a0d 100644 --- a/src/main/resources/assets/hbm/models/reactors/icf.obj +++ b/src/main/resources/assets/hbm/models/reactors/icf.obj @@ -4191,42 +4191,42 @@ vt 0.817708 0.830128 vt 0.726543 0.925696 vt 0.734335 0.942308 vt 0.710957 0.958920 -vt 0.978416 0.920329 -vt 0.988115 0.910733 -vt 0.988115 0.917130 -vt 0.978417 0.811576 -vt 0.988115 0.821172 -vt 0.978417 0.824371 -vt 0.978417 0.849960 -vt 0.988116 0.859555 -vt 0.978417 0.862754 -vt 0.978417 0.997095 -vt 0.988115 0.987499 -vt 0.988115 0.993896 -vt 0.978417 0.926726 -vt 0.988115 0.936322 -vt 0.978417 0.939520 -vt 0.978416 0.881946 -vt 0.988115 0.872350 -vt 0.988115 0.878747 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.945918 -vt 0.988115 0.955513 -vt 0.978417 0.958712 -vt 0.978417 0.888343 -vt 0.988115 0.897939 -vt 0.978417 0.901137 -vt 0.978417 0.805179 -vt 0.988115 0.795583 -vt 0.988115 0.801981 -vt 0.978417 0.830768 -vt 0.988115 0.840364 -vt 0.978417 0.843562 -vt 0.978417 0.965109 -vt 0.988115 0.974705 -vt 0.978417 0.977904 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.926282 +vt 0.989583 0.935897 +vt 0.979167 0.939103 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.945513 +vt 0.989583 0.955128 +vt 0.979167 0.958333 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 vt 0.765625 0.923077 vt 0.770833 0.926282 vt 0.765625 0.929487 @@ -5029,42 +5029,42 @@ vt 0.817708 0.830128 vt 0.710957 0.958920 vt 0.710957 0.925696 vt 0.734335 0.942308 -vt 0.978416 0.920329 -vt 0.988115 0.910733 -vt 0.988115 0.917130 -vt 0.978417 0.824371 -vt 0.988115 0.814775 -vt 0.988115 0.821172 -vt 0.978417 0.849960 -vt 0.988116 0.859555 -vt 0.978417 0.862754 -vt 0.978417 0.997095 -vt 0.988115 0.987499 -vt 0.988115 0.993896 -vt 0.978417 0.939520 -vt 0.988116 0.929924 -vt 0.988115 0.936322 -vt 0.978416 0.869151 -vt 0.988115 0.878747 -vt 0.978416 0.881946 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.958712 -vt 0.988115 0.949116 -vt 0.988115 0.955513 -vt 0.978417 0.888343 -vt 0.988115 0.897939 -vt 0.978417 0.901137 -vt 0.978417 0.805179 -vt 0.988115 0.795583 -vt 0.988115 0.801981 -vt 0.978417 0.830768 -vt 0.988115 0.840364 -vt 0.978417 0.843562 -vt 0.978417 0.965109 -vt 0.988115 0.974705 -vt 0.978417 0.977904 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.868590 +vt 0.989583 0.878205 +vt 0.979167 0.881410 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 vt 0.765625 0.923077 vt 0.770833 0.926282 vt 0.765625 0.929487 @@ -5136,42 +5136,42 @@ vt 0.817708 0.830128 vt 0.726543 0.925696 vt 0.734335 0.942308 vt 0.710957 0.958920 -vt 0.978416 0.920329 -vt 0.988115 0.910733 -vt 0.988115 0.917130 -vt 0.978417 0.824371 -vt 0.988115 0.814775 -vt 0.988115 0.821172 -vt 0.978417 0.849960 -vt 0.988116 0.859555 -vt 0.978417 0.862754 -vt 0.978417 0.997095 -vt 0.988115 0.987499 -vt 0.988115 0.993896 -vt 0.978417 0.939520 -vt 0.988116 0.929924 -vt 0.988115 0.936322 -vt 0.978416 0.881946 -vt 0.988115 0.872350 -vt 0.988115 0.878747 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.945918 -vt 0.988115 0.955513 -vt 0.978417 0.958712 -vt 0.978417 0.888343 -vt 0.988115 0.897939 -vt 0.978417 0.901137 -vt 0.978417 0.805179 -vt 0.988115 0.795583 -vt 0.988115 0.801981 -vt 0.978417 0.830768 -vt 0.988115 0.840364 -vt 0.978417 0.843562 -vt 0.978417 0.965109 -vt 0.988115 0.974705 -vt 0.978417 0.977904 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.945513 +vt 0.989583 0.955128 +vt 0.979167 0.958333 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 vt 0.765625 0.923077 vt 0.770833 0.926282 vt 0.765625 0.929487 @@ -5243,42 +5243,42 @@ vt 0.817708 0.830128 vt 0.726543 0.958920 vt 0.710957 0.958920 vt 0.710957 0.925696 -vt 0.978416 0.907534 -vt 0.988115 0.917130 -vt 0.978416 0.920329 -vt 0.978417 0.811576 -vt 0.988115 0.821172 -vt 0.978417 0.824371 -vt 0.978417 0.862754 -vt 0.988115 0.853158 -vt 0.988116 0.859555 -vt 0.978417 0.997095 -vt 0.988115 0.987499 -vt 0.988115 0.993896 -vt 0.978417 0.926726 -vt 0.988115 0.936322 -vt 0.978417 0.939520 -vt 0.978416 0.881946 -vt 0.988115 0.872350 -vt 0.988115 0.878747 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.958712 -vt 0.988115 0.949116 -vt 0.988115 0.955513 -vt 0.978417 0.901137 -vt 0.988115 0.891541 -vt 0.988115 0.897939 -vt 0.978417 0.805179 -vt 0.988115 0.795583 -vt 0.988115 0.801981 -vt 0.978417 0.843562 -vt 0.988115 0.833967 -vt 0.988115 0.840364 -vt 0.978417 0.977904 -vt 0.988115 0.968308 -vt 0.988115 0.974705 +vt 0.979167 0.907051 +vt 0.989583 0.916667 +vt 0.979167 0.919872 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.862179 +vt 0.989583 0.852564 +vt 0.989583 0.858974 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.926282 +vt 0.989583 0.935897 +vt 0.979167 0.939103 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.900641 +vt 0.989583 0.891026 +vt 0.989583 0.897436 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.842949 +vt 0.989583 0.833333 +vt 0.989583 0.839744 +vt 0.979167 0.977564 +vt 0.989583 0.967949 +vt 0.989583 0.974359 vt 0.765625 0.929487 vt 0.770833 0.923077 vt 0.770833 0.926282 @@ -5351,42 +5351,42 @@ vt 0.817708 0.830128 vt 0.726543 0.958920 vt 0.710957 0.958920 vt 0.710957 0.925696 -vt 0.978416 0.920329 -vt 0.988115 0.910733 -vt 0.988115 0.917130 -vt 0.978417 0.824371 -vt 0.988115 0.814775 -vt 0.988115 0.821172 -vt 0.978417 0.862754 -vt 0.988115 0.853158 -vt 0.988116 0.859555 -vt 0.978417 0.997095 -vt 0.988115 0.987499 -vt 0.988115 0.993896 -vt 0.978417 0.939520 -vt 0.988116 0.929924 -vt 0.988115 0.936322 -vt 0.978416 0.869151 -vt 0.988115 0.878747 -vt 0.978416 0.881946 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.945918 -vt 0.988115 0.955513 -vt 0.978417 0.958712 -vt 0.978417 0.888343 -vt 0.988115 0.897939 -vt 0.978417 0.901137 -vt 0.978417 0.805179 -vt 0.988115 0.795583 -vt 0.988115 0.801981 -vt 0.978417 0.830768 -vt 0.988115 0.840364 -vt 0.978417 0.843562 -vt 0.978417 0.965109 -vt 0.988115 0.974705 -vt 0.978417 0.977904 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.862179 +vt 0.989583 0.852564 +vt 0.989583 0.858974 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.868590 +vt 0.989583 0.878205 +vt 0.979167 0.881410 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.945513 +vt 0.989583 0.955128 +vt 0.979167 0.958333 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 vt 0.765625 0.923077 vt 0.770833 0.926282 vt 0.765625 0.929487 @@ -5420,42 +5420,42 @@ vt 0.770833 0.958333 vt 0.723980 0.967949 vt 0.726573 0.962420 vt 0.734353 0.967949 -vt 0.978416 0.920329 -vt 0.988115 0.910733 -vt 0.988115 0.917130 -vt 0.978417 0.811576 -vt 0.988115 0.821172 -vt 0.978417 0.824371 -vt 0.978417 0.849960 -vt 0.988116 0.859555 -vt 0.978417 0.862754 -vt 0.978417 0.997095 -vt 0.988115 0.987499 -vt 0.988115 0.993896 -vt 0.978417 0.926726 -vt 0.988115 0.936322 -vt 0.978417 0.939520 -vt 0.978416 0.881946 -vt 0.988115 0.872350 -vt 0.988115 0.878747 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.958712 -vt 0.988115 0.949116 -vt 0.988115 0.955513 -vt 0.978417 0.888343 -vt 0.988115 0.897939 -vt 0.978417 0.901137 -vt 0.978417 0.805179 -vt 0.988115 0.795583 -vt 0.988115 0.801981 -vt 0.978417 0.830768 -vt 0.988115 0.840364 -vt 0.978417 0.843562 -vt 0.978417 0.965109 -vt 0.988115 0.974705 -vt 0.978417 0.977904 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.926282 +vt 0.989583 0.935897 +vt 0.979167 0.939103 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 vt 0.765625 0.923077 vt 0.770833 0.926282 vt 0.765625 0.929487 @@ -5593,42 +5593,42 @@ vt 0.817708 0.830128 vt 0.726543 0.925696 vt 0.734335 0.942308 vt 0.710957 0.958920 -vt 0.978416 0.920329 -vt 0.988115 0.910733 -vt 0.988115 0.917130 -vt 0.978417 0.811576 -vt 0.988115 0.821172 -vt 0.978417 0.824371 -vt 0.978417 0.849960 -vt 0.988116 0.859555 -vt 0.978417 0.862754 -vt 0.978417 0.997095 -vt 0.988115 0.987499 -vt 0.988115 0.993896 -vt 0.978417 0.939520 -vt 0.988116 0.929924 -vt 0.988115 0.936322 -vt 0.978416 0.881946 -vt 0.988115 0.872350 -vt 0.988115 0.878747 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.958712 -vt 0.988115 0.949116 -vt 0.988115 0.955513 -vt 0.978417 0.888343 -vt 0.988115 0.897939 -vt 0.978417 0.901137 -vt 0.978417 0.805179 -vt 0.988115 0.795583 -vt 0.988115 0.801981 -vt 0.978417 0.830768 -vt 0.988115 0.840364 -vt 0.978417 0.843562 -vt 0.978417 0.977904 -vt 0.988115 0.968308 -vt 0.988115 0.974705 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.977564 +vt 0.989583 0.967949 +vt 0.989583 0.974359 vt 0.765625 0.929487 vt 0.770833 0.923077 vt 0.770833 0.926282 @@ -5699,42 +5699,42 @@ vt 0.822917 0.830128 vt 0.726543 0.925696 vt 0.734335 0.942308 vt 0.710957 0.958920 -vt 0.978416 0.907534 -vt 0.988115 0.917130 -vt 0.978416 0.920329 -vt 0.978417 0.824371 -vt 0.988115 0.814775 -vt 0.988115 0.821172 -vt 0.978417 0.849960 -vt 0.988116 0.859555 -vt 0.978417 0.862754 -vt 0.978417 0.984301 -vt 0.988115 0.993896 -vt 0.978417 0.997095 -vt 0.978417 0.939520 -vt 0.988116 0.929924 -vt 0.988115 0.936322 -vt 0.978416 0.881946 -vt 0.988115 0.872350 -vt 0.988115 0.878747 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.945918 -vt 0.988115 0.955513 -vt 0.978417 0.958712 -vt 0.978417 0.888343 -vt 0.988115 0.897939 -vt 0.978417 0.901137 -vt 0.978417 0.805179 -vt 0.988115 0.795583 -vt 0.988115 0.801981 -vt 0.978417 0.830768 -vt 0.988115 0.840364 -vt 0.978417 0.843562 -vt 0.978417 0.965109 -vt 0.988115 0.974705 -vt 0.978417 0.977904 +vt 0.979167 0.907051 +vt 0.989583 0.916667 +vt 0.979167 0.919872 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.983974 +vt 0.989583 0.993590 +vt 0.979167 0.996795 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.945513 +vt 0.989583 0.955128 +vt 0.979167 0.958333 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 vt 0.765625 0.929487 vt 0.770833 0.923077 vt 0.770833 0.926282 @@ -5805,42 +5805,42 @@ vt 0.817708 0.830128 vt 0.726543 0.958920 vt 0.710957 0.958920 vt 0.710957 0.925696 -vt 0.978416 0.907534 -vt 0.988115 0.917130 -vt 0.978416 0.920329 -vt 0.978417 0.811576 -vt 0.988115 0.821172 -vt 0.978417 0.824371 -vt 0.978417 0.862754 -vt 0.988115 0.853158 -vt 0.988116 0.859555 -vt 0.978417 0.997095 -vt 0.988115 0.987499 -vt 0.988115 0.993896 -vt 0.978417 0.926726 -vt 0.988115 0.936322 -vt 0.978417 0.939520 -vt 0.978416 0.869151 -vt 0.988115 0.878747 -vt 0.978416 0.881946 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.958712 -vt 0.988115 0.949116 -vt 0.988115 0.955513 -vt 0.978417 0.888343 -vt 0.988115 0.897939 -vt 0.978417 0.901137 -vt 0.978417 0.792385 -vt 0.988115 0.801981 -vt 0.978417 0.805179 -vt 0.978417 0.830768 -vt 0.988115 0.840364 -vt 0.978417 0.843562 -vt 0.978417 0.977904 -vt 0.988115 0.968308 -vt 0.988115 0.974705 +vt 0.979167 0.907051 +vt 0.989583 0.916667 +vt 0.979167 0.919872 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.862179 +vt 0.989583 0.852564 +vt 0.989583 0.858974 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.926282 +vt 0.989583 0.935897 +vt 0.979167 0.939103 +vt 0.979167 0.868590 +vt 0.989583 0.878205 +vt 0.979167 0.881410 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.791667 +vt 0.989583 0.801282 +vt 0.979167 0.804487 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.977564 +vt 0.989583 0.967949 +vt 0.989583 0.974359 vt 0.765625 0.929487 vt 0.770833 0.923077 vt 0.770833 0.926282 @@ -5912,42 +5912,42 @@ vt 0.817708 0.830128 vt 0.726543 0.925696 vt 0.734335 0.942308 vt 0.710957 0.958920 -vt 0.978416 0.920329 -vt 0.988115 0.910733 -vt 0.988115 0.917130 -vt 0.978417 0.824371 -vt 0.988115 0.814775 -vt 0.988115 0.821172 -vt 0.978417 0.862754 -vt 0.988115 0.853158 -vt 0.988116 0.859555 -vt 0.978417 0.997095 -vt 0.988115 0.987499 -vt 0.988115 0.993896 -vt 0.978417 0.939520 -vt 0.988116 0.929924 -vt 0.988115 0.936322 -vt 0.978416 0.881946 -vt 0.988115 0.872350 -vt 0.988115 0.878747 -vt 0.978417 0.773193 -vt 0.988115 0.782789 -vt 0.978417 0.785988 -vt 0.978417 0.958712 -vt 0.988115 0.949116 -vt 0.988115 0.955513 -vt 0.978417 0.888343 -vt 0.988115 0.897939 -vt 0.978417 0.901137 -vt 0.978417 0.805179 -vt 0.988115 0.795583 -vt 0.988115 0.801981 -vt 0.978417 0.830768 -vt 0.988115 0.840364 -vt 0.978417 0.843562 -vt 0.978417 0.965109 -vt 0.988115 0.974705 -vt 0.978417 0.977904 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.862179 +vt 0.989583 0.852564 +vt 0.989583 0.858974 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 vt 0.765625 0.923077 vt 0.770833 0.926282 vt 0.765625 0.929487 @@ -6209,18 +6209,18 @@ vt 0.705253 0.932717 vt 0.710957 0.925696 vt 0.718750 0.923126 vt 0.732247 0.932717 -vt 0.978416 0.907534 -vt 0.988115 0.814775 -vt 0.988115 0.853158 -vt 0.978417 0.984301 -vt 0.988116 0.929924 -vt 0.978416 0.869151 -vt 0.988115 0.776392 -vt 0.988115 0.949116 -vt 0.988115 0.891541 -vt 0.978417 0.792385 -vt 0.988115 0.833967 -vt 0.988115 0.968308 +vt 0.979167 0.907051 +vt 0.989583 0.814103 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.989583 0.929487 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.989583 0.948718 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 vt 0.770833 0.923077 vt 0.770833 0.980769 vt 0.770833 0.961538 @@ -6381,18 +6381,18 @@ vt 0.705253 0.932717 vt 0.718750 0.923126 vt 0.726543 0.925696 vt 0.732247 0.932717 -vt 0.978416 0.907534 -vt 0.978417 0.811576 -vt 0.988115 0.853158 -vt 0.978417 0.984301 -vt 0.978417 0.926726 -vt 0.988115 0.872350 -vt 0.988115 0.776392 -vt 0.978417 0.945918 -vt 0.988115 0.891541 -vt 0.978417 0.792385 -vt 0.988115 0.833967 -vt 0.988115 0.968308 +vt 0.979167 0.907051 +vt 0.979167 0.810897 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.989583 0.871795 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 vt 0.770833 0.923077 vt 0.770833 0.980769 vt 0.770833 0.929487 @@ -6431,18 +6431,18 @@ vt 0.705253 0.932717 vt 0.710957 0.925696 vt 0.718750 0.923126 vt 0.732247 0.932717 -vt 0.978416 0.907534 -vt 0.978417 0.811576 -vt 0.988115 0.853158 -vt 0.978417 0.984301 -vt 0.978417 0.926726 -vt 0.978416 0.869151 -vt 0.988115 0.776392 -vt 0.988115 0.949116 -vt 0.988115 0.891541 -vt 0.978417 0.792385 -vt 0.988115 0.833967 -vt 0.988115 0.968308 +vt 0.979167 0.907051 +vt 0.979167 0.810897 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.989583 0.948718 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 vt 0.770833 0.923077 vt 0.770833 0.980769 vt 0.770833 0.961538 @@ -6481,18 +6481,18 @@ vt 0.705253 0.932717 vt 0.718750 0.923126 vt 0.726543 0.925696 vt 0.732247 0.932717 -vt 0.988115 0.910733 -vt 0.988115 0.814775 -vt 0.978417 0.849960 -vt 0.978417 0.984301 -vt 0.988116 0.929924 -vt 0.978416 0.869151 -vt 0.988115 0.776392 -vt 0.978417 0.945918 -vt 0.978417 0.888343 -vt 0.978417 0.792385 -vt 0.978417 0.830768 -vt 0.978417 0.965109 +vt 0.989583 0.910256 +vt 0.989583 0.814103 +vt 0.979167 0.849359 +vt 0.979167 0.983974 +vt 0.989583 0.929487 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.979167 0.887821 +vt 0.979167 0.791667 +vt 0.979167 0.830128 +vt 0.979167 0.964744 vt 0.765625 0.923077 vt 0.770833 0.980769 vt 0.770833 0.987179 @@ -6530,18 +6530,18 @@ vt 0.705253 0.932717 vt 0.718750 0.923126 vt 0.726543 0.925696 vt 0.732247 0.932717 -vt 0.978416 0.907534 -vt 0.978417 0.811576 -vt 0.978417 0.849960 -vt 0.978417 0.984301 -vt 0.978417 0.926726 -vt 0.988115 0.872350 -vt 0.988115 0.776392 -vt 0.988115 0.949116 -vt 0.988115 0.891541 -vt 0.978417 0.792385 -vt 0.988115 0.833967 -vt 0.988115 0.968308 +vt 0.979167 0.907051 +vt 0.979167 0.810897 +vt 0.979167 0.849359 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.989583 0.871795 +vt 0.989583 0.775641 +vt 0.989583 0.948718 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 vt 0.770833 0.923077 vt 0.770833 0.980769 vt 0.770833 0.961538 @@ -6558,18 +6558,18 @@ vt 0.733658 0.964757 vt 0.733658 0.971141 vt 0.731760 0.973477 vt 0.729167 0.974332 -vt 0.978416 0.907534 -vt 0.988115 0.814775 -vt 0.988115 0.853158 -vt 0.978417 0.984301 -vt 0.988116 0.929924 -vt 0.978416 0.869151 -vt 0.988115 0.776392 -vt 0.978417 0.945918 -vt 0.988115 0.891541 -vt 0.978417 0.792385 -vt 0.988115 0.833967 -vt 0.988115 0.968308 +vt 0.979167 0.907051 +vt 0.989583 0.814103 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.989583 0.929487 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 vt 0.770833 0.923077 vt 0.770833 0.961538 vt 0.770833 0.942308 @@ -6628,18 +6628,18 @@ vt 0.705253 0.932717 vt 0.710957 0.925696 vt 0.718750 0.923126 vt 0.732247 0.932717 -vt 0.978416 0.907534 -vt 0.988115 0.814775 -vt 0.988115 0.853158 -vt 0.978417 0.984301 -vt 0.978417 0.926726 -vt 0.978416 0.869151 -vt 0.988115 0.776392 -vt 0.978417 0.945918 -vt 0.988115 0.891541 -vt 0.978417 0.792385 -vt 0.988115 0.833967 -vt 0.978417 0.965109 +vt 0.979167 0.907051 +vt 0.989583 0.814103 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.979167 0.964744 vt 0.765625 0.923077 vt 0.770833 0.929487 vt 0.770833 0.942308 @@ -6679,18 +6679,18 @@ vt 0.705253 0.932717 vt 0.710957 0.925696 vt 0.718750 0.923126 vt 0.732247 0.932717 -vt 0.988115 0.910733 -vt 0.978417 0.811576 -vt 0.988115 0.853158 -vt 0.988115 0.987499 -vt 0.978417 0.926726 -vt 0.978416 0.869151 -vt 0.988115 0.776392 -vt 0.988115 0.949116 -vt 0.988115 0.891541 -vt 0.978417 0.792385 -vt 0.988115 0.833967 -vt 0.988115 0.968308 +vt 0.989583 0.910256 +vt 0.979167 0.810897 +vt 0.989583 0.852564 +vt 0.989583 0.987179 +vt 0.979167 0.926282 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.989583 0.948718 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 vt 0.765625 0.923077 vt 0.770833 0.980769 vt 0.770833 0.961538 @@ -6730,18 +6730,18 @@ vt 0.705253 0.932717 vt 0.718750 0.923126 vt 0.726543 0.925696 vt 0.732247 0.932717 -vt 0.988115 0.910733 -vt 0.988115 0.814775 -vt 0.978417 0.849960 -vt 0.978417 0.984301 -vt 0.988116 0.929924 -vt 0.988115 0.872350 -vt 0.988115 0.776392 -vt 0.978417 0.945918 -vt 0.988115 0.891541 -vt 0.988115 0.795583 -vt 0.988115 0.833967 -vt 0.978417 0.965109 +vt 0.989583 0.910256 +vt 0.989583 0.814103 +vt 0.979167 0.849359 +vt 0.979167 0.983974 +vt 0.989583 0.929487 +vt 0.989583 0.871795 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.989583 0.794872 +vt 0.989583 0.833333 +vt 0.979167 0.964744 vt 0.765625 0.923077 vt 0.770833 0.980769 vt 0.770833 0.929487 @@ -6780,18 +6780,18 @@ vt 0.703165 0.942308 vt 0.705253 0.932717 vt 0.718750 0.923126 vt 0.732247 0.932717 -vt 0.978416 0.907534 -vt 0.978417 0.811576 -vt 0.978417 0.849960 -vt 0.978417 0.984301 -vt 0.978417 0.926726 -vt 0.978416 0.869151 -vt 0.988115 0.776392 -vt 0.978417 0.945918 -vt 0.988115 0.891541 -vt 0.978417 0.792385 -vt 0.988115 0.833967 -vt 0.988115 0.968308 +vt 0.979167 0.907051 +vt 0.979167 0.810897 +vt 0.979167 0.849359 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 vt 0.770833 0.923077 vt 0.770833 0.980769 vt 0.770833 0.961538 @@ -7414,31 +7414,31 @@ vt 1.000000 0.086538 vt 0.718750 0.769213 vt 0.781264 0.846154 vt 0.718750 0.923094 -vt 0.918169 0.849960 +vt 0.916667 0.849359 vt 0.901042 0.865385 vt 0.901042 0.846154 -vt 0.918169 0.881946 +vt 0.916667 0.881410 vt 0.901042 0.884615 -vt 0.918169 0.888343 +vt 0.916667 0.887821 vt 0.901042 0.903846 -vt 0.918169 0.920329 +vt 0.916667 0.919872 vt 0.901042 0.923077 -vt 0.918169 0.926726 +vt 0.916667 0.926282 vt 0.901042 0.942308 -vt 0.918169 0.958712 +vt 0.916667 0.958333 vt 0.901042 0.961538 -vt 0.918169 0.965109 +vt 0.916667 0.964744 vt 0.901042 0.980769 -vt 0.918169 0.984301 +vt 0.916667 0.983974 vt 0.901042 1.000000 -vt 0.918169 0.773193 +vt 0.916667 0.772436 vt 0.901042 0.788462 vt 0.901042 0.769231 -vt 0.918169 0.805179 +vt 0.916667 0.804487 vt 0.901042 0.807692 -vt 0.918169 0.824371 +vt 0.916667 0.823718 vt 0.901042 0.826923 -vt 0.918169 0.830768 +vt 0.916667 0.830128 vt 0.838542 0.942308 vt 0.838542 0.884615 vt 0.838542 0.788462 @@ -7464,17 +7464,17 @@ vt 0.781250 0.945513 vt 0.781250 0.887821 vt 0.781250 0.791667 vt 0.781250 0.830128 -vt 0.918169 0.811576 -vt 0.918169 0.862754 -vt 0.918169 0.997095 -vt 0.918169 0.939520 -vt 0.918169 0.869151 -vt 0.918169 0.785987 -vt 0.918169 0.945918 -vt 0.918169 0.901137 -vt 0.918169 0.792385 -vt 0.918169 0.843562 -vt 0.918169 0.977903 +vt 0.916667 0.810897 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.868590 +vt 0.916667 0.785256 +vt 0.916667 0.945513 +vt 0.916667 0.900641 +vt 0.916667 0.791667 +vt 0.916667 0.842949 +vt 0.916667 0.977564 vt 0.734375 0.974359 vt 0.734375 0.980769 vt 0.734375 0.955128 @@ -8340,18 +8340,18 @@ vt 0.901042 0.826923 vt 0.901042 0.807692 vt 0.901042 0.903846 vt 0.901042 0.961538 -vt 0.918169 0.830768 -vt 0.918169 0.824371 -vt 0.918169 0.805179 -vt 0.918169 0.773193 -vt 0.918169 0.984301 -vt 0.918169 0.965109 -vt 0.918169 0.958712 -vt 0.918169 0.926726 -vt 0.918169 0.907534 -vt 0.918169 0.888343 -vt 0.918169 0.869151 -vt 0.918169 0.849960 +vt 0.916667 0.830128 +vt 0.916667 0.823718 +vt 0.916667 0.804487 +vt 0.916667 0.772436 +vt 0.916667 0.983974 +vt 0.916667 0.964744 +vt 0.916667 0.958333 +vt 0.916667 0.926282 +vt 0.916667 0.907051 +vt 0.916667 0.887821 +vt 0.916667 0.868590 +vt 0.916667 0.849359 vt 0.526042 0.903846 vt 0.609375 0.910256 vt 0.526042 0.910256 @@ -8437,30 +8437,30 @@ vt 0.520833 0.935897 vt 0.520833 0.948718 vt 0.354167 0.961538 vt 0.901042 0.846154 -vt 0.918169 0.862754 +vt 0.916667 0.862179 vt 0.901042 0.865385 -vt 0.918169 0.869151 +vt 0.916667 0.868590 vt 0.901042 0.884615 -vt 0.918169 0.888343 +vt 0.916667 0.887821 vt 0.901042 0.903846 -vt 0.918169 0.907534 +vt 0.916667 0.907051 vt 0.901042 0.923077 -vt 0.918169 0.926726 +vt 0.916667 0.926282 vt 0.901042 0.942308 -vt 0.918169 0.945918 +vt 0.916667 0.945513 vt 0.901042 0.961538 -vt 0.918169 0.977903 +vt 0.916667 0.977564 vt 0.901042 0.980769 -vt 0.918169 0.984301 +vt 0.916667 0.983974 vt 0.901042 1.000000 vt 0.901042 0.769231 -vt 0.918169 0.785987 +vt 0.916667 0.785256 vt 0.901042 0.788462 -vt 0.918169 0.792385 +vt 0.916667 0.791667 vt 0.901042 0.807692 -vt 0.918169 0.824371 +vt 0.916667 0.823718 vt 0.901042 0.826923 -vt 0.918169 0.843562 +vt 0.916667 0.842949 vt 0.838542 0.961538 vt 0.838542 0.942308 vt 0.838542 0.884615 @@ -8491,16 +8491,16 @@ vt 0.781250 0.945513 vt 0.781250 0.887821 vt 0.781250 0.791667 vt 0.781250 0.830128 -vt 0.918169 0.811576 -vt 0.918169 0.997095 -vt 0.918169 0.939520 -vt 0.918169 0.881946 -vt 0.918169 0.958712 -vt 0.918169 0.901137 -vt 0.918169 0.805179 -vt 0.918169 0.830768 -vt 0.918169 0.965109 -vt 0.918169 0.920329 +vt 0.916667 0.810897 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.958333 +vt 0.916667 0.900641 +vt 0.916667 0.804487 +vt 0.916667 0.830128 +vt 0.916667 0.964744 +vt 0.916667 0.919872 vt 0.734375 0.974359 vt 0.734375 0.980769 vt 0.734375 0.955128 @@ -8529,31 +8529,31 @@ vt 0.781250 0.935897 vt 0.781250 0.939103 vt 0.781250 0.951923 vt 0.781250 0.996795 -vt 0.918169 0.849960 +vt 0.916667 0.849359 vt 0.901042 0.865385 vt 0.901042 0.846154 -vt 0.918169 0.869151 +vt 0.916667 0.868590 vt 0.901042 0.884615 -vt 0.918169 0.901137 +vt 0.916667 0.900641 vt 0.901042 0.903846 -vt 0.918169 0.920329 +vt 0.916667 0.919872 vt 0.901042 0.923077 -vt 0.918169 0.926726 +vt 0.916667 0.926282 vt 0.901042 0.942308 -vt 0.918169 0.958712 +vt 0.916667 0.958333 vt 0.901042 0.961538 -vt 0.918169 0.965109 +vt 0.916667 0.964744 vt 0.901042 0.980769 -vt 0.918169 0.984301 +vt 0.916667 0.983974 vt 0.901042 1.000000 -vt 0.918169 0.773193 +vt 0.916667 0.772436 vt 0.901042 0.788462 vt 0.901042 0.769231 -vt 0.918169 0.792385 +vt 0.916667 0.791667 vt 0.901042 0.807692 -vt 0.918169 0.824371 +vt 0.916667 0.823718 vt 0.901042 0.826923 -vt 0.918169 0.830768 +vt 0.916667 0.830128 vt 0.838542 0.942308 vt 0.838542 0.903846 vt 0.838542 0.884615 @@ -8582,16 +8582,16 @@ vt 0.781250 0.897436 vt 0.781250 0.887821 vt 0.781250 0.791667 vt 0.781250 0.830128 -vt 0.918169 0.811576 -vt 0.918169 0.862754 -vt 0.918169 0.997095 -vt 0.918169 0.939520 -vt 0.918169 0.881946 -vt 0.918169 0.785987 -vt 0.918169 0.888343 -vt 0.918169 0.805179 -vt 0.918169 0.843562 -vt 0.918169 0.977903 +vt 0.916667 0.810897 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.785256 +vt 0.916667 0.887821 +vt 0.916667 0.804487 +vt 0.916667 0.842949 +vt 0.916667 0.977564 vt 0.734375 0.980769 vt 0.734375 0.961538 vt 0.734375 0.923077 @@ -8621,30 +8621,30 @@ vt 0.781250 0.939103 vt 0.781250 0.951923 vt 0.781250 0.996795 vt 0.901042 0.846154 -vt 0.918169 0.862754 +vt 0.916667 0.862179 vt 0.901042 0.865385 -vt 0.918169 0.869151 +vt 0.916667 0.868590 vt 0.901042 0.884615 -vt 0.918169 0.888343 +vt 0.916667 0.887821 vt 0.901042 0.903846 -vt 0.918169 0.907534 +vt 0.916667 0.907051 vt 0.901042 0.923077 -vt 0.918169 0.926726 +vt 0.916667 0.926282 vt 0.901042 0.942308 -vt 0.918169 0.945918 +vt 0.916667 0.945513 vt 0.901042 0.961538 -vt 0.918169 0.965109 +vt 0.916667 0.964744 vt 0.901042 0.980769 -vt 0.918169 0.984301 +vt 0.916667 0.983974 vt 0.901042 1.000000 vt 0.901042 0.769231 -vt 0.918169 0.785987 +vt 0.916667 0.785256 vt 0.901042 0.788462 -vt 0.918169 0.805179 +vt 0.916667 0.804487 vt 0.901042 0.807692 -vt 0.918169 0.824371 +vt 0.916667 0.823718 vt 0.901042 0.826923 -vt 0.918169 0.843562 +vt 0.916667 0.842949 vt 0.838542 0.942308 vt 0.838542 0.884615 vt 0.838542 0.788462 @@ -8676,16 +8676,16 @@ vt 0.781250 0.801282 vt 0.781250 0.791667 vt 0.781250 0.839744 vt 0.781250 0.830128 -vt 0.918169 0.811576 -vt 0.918169 0.849960 -vt 0.918169 0.997095 -vt 0.918169 0.939520 -vt 0.918169 0.881946 -vt 0.918169 0.773193 -vt 0.918169 0.958712 -vt 0.918169 0.901137 -vt 0.918169 0.977903 -vt 0.918169 0.920329 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.772436 +vt 0.916667 0.958333 +vt 0.916667 0.900641 +vt 0.916667 0.977564 +vt 0.916667 0.919872 vt 0.734375 0.974359 vt 0.734375 0.980769 vt 0.734375 0.955128 @@ -8714,31 +8714,31 @@ vt 0.781250 0.939103 vt 0.781250 0.951923 vt 0.781250 0.993590 vt 0.781250 0.996795 -vt 0.918169 0.849960 +vt 0.916667 0.849359 vt 0.901042 0.865385 vt 0.901042 0.846154 -vt 0.918169 0.869151 +vt 0.916667 0.868590 vt 0.901042 0.884615 -vt 0.918169 0.901137 +vt 0.916667 0.900641 vt 0.901042 0.903846 -vt 0.918169 0.920329 +vt 0.916667 0.919872 vt 0.901042 0.923077 -vt 0.918169 0.926726 +vt 0.916667 0.926282 vt 0.901042 0.942308 -vt 0.918169 0.958712 +vt 0.916667 0.958333 vt 0.901042 0.961538 -vt 0.918169 0.965109 +vt 0.916667 0.964744 vt 0.901042 0.980769 -vt 0.918169 0.984301 +vt 0.916667 0.983974 vt 0.901042 1.000000 -vt 0.918169 0.773193 +vt 0.916667 0.772436 vt 0.901042 0.788462 vt 0.901042 0.769231 -vt 0.918169 0.792385 +vt 0.916667 0.791667 vt 0.901042 0.807692 -vt 0.918169 0.824371 +vt 0.916667 0.823718 vt 0.901042 0.826923 -vt 0.918169 0.830768 +vt 0.916667 0.830128 vt 0.838542 0.942308 vt 0.838542 0.884615 vt 0.838542 0.788462 @@ -8768,16 +8768,16 @@ vt 0.781250 0.887821 vt 0.781250 0.791667 vt 0.781250 0.839744 vt 0.781250 0.830128 -vt 0.918169 0.862754 -vt 0.918169 0.997095 -vt 0.918169 0.939520 -vt 0.918169 0.881946 -vt 0.918169 0.785987 -vt 0.918169 0.945918 -vt 0.918169 0.888343 -vt 0.918169 0.805179 -vt 0.918169 0.843562 -vt 0.918169 0.977903 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.785256 +vt 0.916667 0.945513 +vt 0.916667 0.887821 +vt 0.916667 0.804487 +vt 0.916667 0.842949 +vt 0.916667 0.977564 vt 0.734375 0.974359 vt 0.734375 0.980769 vt 0.734375 0.955128 @@ -8809,18 +8809,18 @@ vt 0.781250 0.951923 vt 0.781250 0.993590 vt 0.781250 0.996795 vt 0.781250 0.830128 -vt 0.918169 0.811576 -vt 0.918169 0.862754 -vt 0.918169 0.997095 -vt 0.918169 0.939520 -vt 0.918169 0.881946 -vt 0.918169 0.785987 -vt 0.918169 0.945918 -vt 0.918169 0.901137 -vt 0.918169 0.792385 -vt 0.918169 0.843562 -vt 0.918169 0.977903 -vt 0.918169 0.920329 +vt 0.916667 0.810897 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.785256 +vt 0.916667 0.945513 +vt 0.916667 0.900641 +vt 0.916667 0.791667 +vt 0.916667 0.842949 +vt 0.916667 0.977564 +vt 0.916667 0.919872 vt 0.734375 0.974359 vt 0.734375 0.980769 vt 0.734375 0.955128 @@ -8969,31 +8969,31 @@ vt 0.526042 0.910256 vt 0.484375 0.910256 vt 0.526042 0.884615 vt 0.526042 0.897436 -vt 0.918169 0.849960 +vt 0.916667 0.849359 vt 0.901042 0.865385 vt 0.901042 0.846154 -vt 0.918169 0.869151 +vt 0.916667 0.868590 vt 0.901042 0.884615 -vt 0.918169 0.901137 +vt 0.916667 0.900641 vt 0.901042 0.903846 -vt 0.918169 0.920329 +vt 0.916667 0.919872 vt 0.901042 0.923077 -vt 0.918169 0.926726 +vt 0.916667 0.926282 vt 0.901042 0.942308 -vt 0.918169 0.945918 +vt 0.916667 0.945513 vt 0.901042 0.961538 -vt 0.918169 0.977903 +vt 0.916667 0.977564 vt 0.901042 0.980769 -vt 0.918169 0.984301 +vt 0.916667 0.983974 vt 0.901042 1.000000 vt 0.901042 0.769231 -vt 0.918169 0.785987 +vt 0.916667 0.785256 vt 0.901042 0.788462 -vt 0.918169 0.792385 +vt 0.916667 0.791667 vt 0.901042 0.807692 -vt 0.918169 0.824371 +vt 0.916667 0.823718 vt 0.901042 0.826923 -vt 0.918169 0.843562 +vt 0.916667 0.842949 vt 0.838542 0.942308 vt 0.838542 0.903846 vt 0.838542 0.884615 @@ -9024,16 +9024,16 @@ vt 0.781250 0.887821 vt 0.781250 0.801282 vt 0.781250 0.791667 vt 0.781250 0.830128 -vt 0.918169 0.811576 -vt 0.918169 0.862754 -vt 0.918169 0.997095 -vt 0.918169 0.939520 -vt 0.918169 0.881946 -vt 0.918169 0.958712 -vt 0.918169 0.805179 -vt 0.918169 0.830768 -vt 0.918169 0.965109 -vt 0.918169 0.907534 +vt 0.916667 0.810897 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.958333 +vt 0.916667 0.804487 +vt 0.916667 0.830128 +vt 0.916667 0.964744 +vt 0.916667 0.907051 vt 0.734375 0.974359 vt 0.734375 0.980769 vt 0.734375 0.955128 @@ -9063,30 +9063,30 @@ vt 0.781250 0.939103 vt 0.781250 0.951923 vt 0.781250 0.996795 vt 0.901042 0.846154 -vt 0.918169 0.862754 +vt 0.916667 0.862179 vt 0.901042 0.865385 -vt 0.918169 0.881946 +vt 0.916667 0.881410 vt 0.901042 0.884615 -vt 0.918169 0.901137 +vt 0.916667 0.900641 vt 0.901042 0.903846 -vt 0.918169 0.920329 +vt 0.916667 0.919872 vt 0.901042 0.923077 -vt 0.918169 0.926726 +vt 0.916667 0.926282 vt 0.901042 0.942308 -vt 0.918169 0.945918 +vt 0.916667 0.945513 vt 0.901042 0.961538 -vt 0.918169 0.965109 +vt 0.916667 0.964744 vt 0.901042 0.980769 -vt 0.918169 0.984301 +vt 0.916667 0.983974 vt 0.901042 1.000000 -vt 0.918169 0.773193 +vt 0.916667 0.772436 vt 0.901042 0.788462 vt 0.901042 0.769231 -vt 0.918169 0.792385 +vt 0.916667 0.791667 vt 0.901042 0.807692 -vt 0.918169 0.824371 +vt 0.916667 0.823718 vt 0.901042 0.826923 -vt 0.918169 0.830768 +vt 0.916667 0.830128 vt 0.838542 0.942308 vt 0.838542 0.903846 vt 0.838542 0.884615 @@ -9118,17 +9118,17 @@ vt 0.781250 0.887821 vt 0.781250 0.791667 vt 0.781250 0.839744 vt 0.781250 0.830128 -vt 0.918169 0.811576 -vt 0.918169 0.849960 -vt 0.918169 0.997095 -vt 0.918169 0.939520 -vt 0.918169 0.785987 -vt 0.918169 0.958712 -vt 0.918169 0.888343 -vt 0.918169 0.805179 -vt 0.918169 0.843562 -vt 0.918169 0.977903 -vt 0.918169 0.907534 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.785256 +vt 0.916667 0.958333 +vt 0.916667 0.887821 +vt 0.916667 0.804487 +vt 0.916667 0.842949 +vt 0.916667 0.977564 +vt 0.916667 0.907051 vt 0.734375 0.980769 vt 0.734375 0.961538 vt 0.734375 0.923077 @@ -9160,30 +9160,30 @@ vt 0.781250 0.939103 vt 0.781250 0.951923 vt 0.781250 0.996795 vt 0.901042 0.846154 -vt 0.918169 0.862754 +vt 0.916667 0.862179 vt 0.901042 0.865385 -vt 0.918169 0.869151 +vt 0.916667 0.868590 vt 0.901042 0.884615 -vt 0.918169 0.901137 +vt 0.916667 0.900641 vt 0.901042 0.903846 -vt 0.918169 0.907534 +vt 0.916667 0.907051 vt 0.901042 0.923077 -vt 0.918169 0.926726 +vt 0.916667 0.926282 vt 0.901042 0.942308 -vt 0.918169 0.945918 +vt 0.916667 0.945513 vt 0.901042 0.961538 -vt 0.918169 0.965109 +vt 0.916667 0.964744 vt 0.901042 0.980769 -vt 0.918169 0.984301 +vt 0.916667 0.983974 vt 0.901042 1.000000 vt 0.901042 0.769231 -vt 0.918169 0.785987 +vt 0.916667 0.785256 vt 0.901042 0.788462 -vt 0.918169 0.805179 +vt 0.916667 0.804487 vt 0.901042 0.807692 -vt 0.918169 0.824371 +vt 0.916667 0.823718 vt 0.901042 0.826923 -vt 0.918169 0.843562 +vt 0.916667 0.842949 vt 0.838542 0.942308 vt 0.838542 0.884615 vt 0.838542 0.788462 @@ -9213,14 +9213,14 @@ vt 0.781250 0.887821 vt 0.781250 0.791667 vt 0.781250 0.839744 vt 0.781250 0.830128 -vt 0.918169 0.997095 -vt 0.918169 0.939520 -vt 0.918169 0.881946 -vt 0.918169 0.773193 -vt 0.918169 0.958712 -vt 0.918169 0.830768 -vt 0.918169 0.977903 -vt 0.918169 0.920329 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.772436 +vt 0.916667 0.958333 +vt 0.916667 0.830128 +vt 0.916667 0.977564 +vt 0.916667 0.919872 vt 0.734375 0.974359 vt 0.734375 0.980769 vt 0.734375 0.955128 @@ -9248,30 +9248,30 @@ vt 0.781250 0.939103 vt 0.781250 0.951923 vt 0.781250 0.996795 vt 0.901042 0.846154 -vt 0.918169 0.862754 +vt 0.916667 0.862179 vt 0.901042 0.865385 -vt 0.918169 0.881946 +vt 0.916667 0.881410 vt 0.901042 0.884615 -vt 0.918169 0.901137 +vt 0.916667 0.900641 vt 0.901042 0.903846 -vt 0.918169 0.907534 +vt 0.916667 0.907051 vt 0.901042 0.923077 -vt 0.918169 0.939520 +vt 0.916667 0.939103 vt 0.901042 0.942308 -vt 0.918169 0.958712 +vt 0.916667 0.958333 vt 0.901042 0.961538 -vt 0.918169 0.977903 +vt 0.916667 0.977564 vt 0.901042 0.980769 -vt 0.918169 0.984301 +vt 0.916667 0.983974 vt 0.901042 1.000000 -vt 0.918169 0.773193 +vt 0.916667 0.772436 vt 0.901042 0.788462 vt 0.901042 0.769231 -vt 0.918169 0.792385 +vt 0.916667 0.791667 vt 0.901042 0.807692 -vt 0.918169 0.824371 +vt 0.916667 0.823718 vt 0.901042 0.826923 -vt 0.918169 0.843562 +vt 0.916667 0.842949 vt 0.838542 0.942308 vt 0.838542 0.903846 vt 0.838542 0.884615 @@ -9304,14 +9304,14 @@ vt 0.781250 0.887821 vt 0.781250 0.791667 vt 0.781250 0.839744 vt 0.781250 0.830128 -vt 0.918169 0.811576 -vt 0.918169 0.849960 -vt 0.918169 0.997095 -vt 0.918169 0.785987 -vt 0.918169 0.888343 -vt 0.918169 0.805179 -vt 0.918169 0.965109 -vt 0.918169 0.920329 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.996795 +vt 0.916667 0.785256 +vt 0.916667 0.887821 +vt 0.916667 0.804487 +vt 0.916667 0.964744 +vt 0.916667 0.919872 vt 0.734375 0.974359 vt 0.734375 0.980769 vt 0.734375 0.955128 @@ -9439,7 +9439,7 @@ vt 0.776506 0.816710 vt 0.776506 0.875598 vt 0.762954 0.900559 vt 0.742673 0.917238 -vt 0.918169 0.907534 +vt 0.916667 0.907051 vt 0.781250 0.974359 vt 0.781250 0.916667 vt 0.781250 0.820513 @@ -9522,8 +9522,8 @@ vt 0.354167 0.923077 vt 0.354167 0.910256 vt 0.354167 0.935897 vt 0.354167 0.948718 -vt 0.918169 0.849960 -vt 0.918169 0.773193 +vt 0.916667 0.849359 +vt 0.916667 0.772436 vt 0.781250 0.916667 vt 0.781250 0.820513 vt 0.781250 0.993590 @@ -9540,8 +9540,8 @@ vt 0.781250 0.987179 vt 0.781250 0.967949 vt 0.781250 0.948718 vt 0.781250 0.993590 -vt 0.918169 0.907534 -vt 0.918169 0.945918 +vt 0.916667 0.907051 +vt 0.916667 0.945513 vt 0.781250 0.916667 vt 0.781250 0.820513 vt 0.781250 0.858974 @@ -9560,8 +9560,8 @@ vt 0.781250 0.987179 vt 0.781250 0.967949 vt 0.781250 0.948718 vt 0.781250 0.993590 -vt 0.918169 0.792385 -vt 0.918169 0.830768 +vt 0.916667 0.791667 +vt 0.916667 0.830128 vt 0.838542 1.000000 vt 0.781250 0.916667 vt 0.781250 0.820513 @@ -9577,8 +9577,8 @@ vt 0.781250 0.929487 vt 0.781250 0.942308 vt 0.781250 0.987179 vt 0.781250 0.948718 -vt 0.918169 0.907534 -vt 0.918169 0.811576 +vt 0.916667 0.907051 +vt 0.916667 0.810897 vt 0.838542 1.000000 vt 0.781250 0.916667 vt 0.781250 0.820513 @@ -9624,8 +9624,8 @@ vt 0.520833 0.910256 vt 0.434896 0.910256 vt 0.656250 0.884615 vt 0.656250 0.897436 -vt 0.918169 0.888343 -vt 0.918169 0.773193 +vt 0.916667 0.887821 +vt 0.916667 0.772436 vt 0.781250 0.916667 vt 0.781250 0.820513 vt 0.781250 0.858974 @@ -9642,7 +9642,7 @@ vt 0.781250 0.929487 vt 0.781250 0.987179 vt 0.781250 0.948718 vt 0.781250 0.993590 -vt 0.918169 0.869151 +vt 0.916667 0.868590 vt 0.781250 0.916667 vt 0.781250 0.820513 vt 0.781250 0.858974 @@ -9656,10 +9656,10 @@ vt 0.781250 0.929487 vt 0.781250 0.987179 vt 0.781250 0.948718 vt 0.781250 0.993590 -vt 0.918169 0.849960 -vt 0.918169 0.888343 -vt 0.918169 0.792385 -vt 0.918169 0.811576 +vt 0.916667 0.849359 +vt 0.916667 0.887821 +vt 0.916667 0.791667 +vt 0.916667 0.810897 vt 0.838542 1.000000 vt 0.781250 0.916667 vt 0.781250 0.820513 @@ -9679,10 +9679,10 @@ vt 0.781250 0.942308 vt 0.781250 0.987179 vt 0.781250 0.948718 vt 0.781250 0.993590 -vt 0.918169 0.869151 -vt 0.918169 0.926726 -vt 0.918169 0.945918 -vt 0.918169 0.830768 +vt 0.916667 0.868590 +vt 0.916667 0.926282 +vt 0.916667 0.945513 +vt 0.916667 0.830128 vt 0.781250 0.916667 vt 0.781250 0.820513 vt 0.781250 0.858974 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/stellar_flux.png b/src/main/resources/assets/hbm/textures/gui/fluids/stellar_flux.png new file mode 100644 index 0000000000000000000000000000000000000000..ff5e2c9ffca1399cead42896bcb17a85a6f8b6a7 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfx;5tCUTrqhmEAC*n+9&gvA*J4#dd+IJ5UC z%Nnf;hJTmXpBwyt6lUeF8vW9{ac=9W`v*I_7f({L)OtQMT-Za$LvzDDQO-T?`@i{4 z89ZJ6T-G@yGywqNXk4%W literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png index cd2c35659afdd00925e16e2ce20ca9c9c941da8b..f78c497db8d7341bf1e7f6d938882072fc1951a8 100644 GIT binary patch literal 3813 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 literal 3411 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%0DNLbuAs6 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 Date: Fri, 3 May 2024 13:14:44 +1000 Subject: [PATCH 371/376] some dingbat forgot to change some door models to the VBO loader (it's me, I'm the dingbat) --- .../java/com/hbm/main/ResourceManager.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index f4300da86..bc2017527 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -10,7 +10,6 @@ import com.hbm.render.anim.AnimationLoader; import com.hbm.render.anim.BusAnimation; import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.loader.IModelCustomNamed; -import com.hbm.render.loader.WavefrontObjDisplayList; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.AdvancedModelLoader; @@ -314,31 +313,31 @@ public class ResourceManager { //Secure Access Door public static final ResourceLocation secure_access_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/secure_access_door.png"); - public static WavefrontObjDisplayList secure_access_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/secure_access_door.obj"))); + public static IModelCustomNamed secure_access_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/secure_access_door.obj")).asVBO(); public static final ResourceLocation water_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/water_door.png"); - public static WavefrontObjDisplayList water_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/water_door.obj"))); + public static IModelCustomNamed water_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/water_door.obj")).asVBO(); public static final ResourceLocation sliding_seal_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_seal_door.png"); - public static WavefrontObjDisplayList sliding_seal_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_seal_door.obj"))); + public static IModelCustomNamed sliding_seal_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_seal_door.obj")).asVBO(); public static final ResourceLocation round_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/round_airlock_door.png"); - public static WavefrontObjDisplayList round_airlock_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/round_airlock_door.obj"))); + public static IModelCustomNamed round_airlock_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/round_airlock_door.obj")).asVBO(); public static final ResourceLocation qe_sliding_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_sliding_door.png"); - public static WavefrontObjDisplayList qe_sliding_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_sliding_door.obj"))); + public static IModelCustomNamed qe_sliding_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_sliding_door.obj")).asVBO(); public static final ResourceLocation qe_containment_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment.png"); - public static WavefrontObjDisplayList qe_containment = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_containment.obj"))); + public static IModelCustomNamed qe_containment = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_containment.obj")).asVBO(); public static final ResourceLocation large_vehicle_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/large_vehicle_door.png"); - public static WavefrontObjDisplayList large_vehicle_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/large_vehicle_door.obj"))); + public static IModelCustomNamed large_vehicle_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/large_vehicle_door.obj")).asVBO(); public static final ResourceLocation qe_containment_decal = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment_decal.png"); public static final ResourceLocation silo_hatch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch.png"); - public static WavefrontObjDisplayList silo_hatch = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch.obj"))); + public static IModelCustomNamed silo_hatch = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch.obj")).asVBO(); public static final ResourceLocation silo_hatch_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch_large.png"); - public static WavefrontObjDisplayList silo_hatch_large = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch_large.obj"))); + public static IModelCustomNamed silo_hatch_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch_large.obj")).asVBO(); //Lights From c8067c656861668d38f88beba1af4c0aebb30855 Mon Sep 17 00:00:00 2001 From: George Paton Date: Fri, 3 May 2024 13:15:40 +1000 Subject: [PATCH 372/376] Fix localization typos --- src/main/resources/assets/hbm/lang/en_US.lang | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index cb0258ef3..9a4884189 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5562,10 +5562,10 @@ tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector tile.red_pylon.name=Electricity Pylon tile.red_pylon_large.name=Large Electricity Pylon -tile.red_pylon_medium_steel.name=Medium Steel Electicity Pylon -tile.red_pylon_medium_steel_transformer.name=Medium Steel Electicity Pylon with Transformer -tile.red_pylon_medium_wood.name=Medium Wooden Electicity Pylon -tile.red_pylon_medium_wood_transformer.name=Medium Wooden Electicity Pylon with Transformer +tile.red_pylon_medium_steel.name=Medium Steel Electricity Pylon +tile.red_pylon_medium_steel_transformer.name=Medium Steel Electricity Pylon with Transformer +tile.red_pylon_medium_wood.name=Medium Wooden Electricity Pylon +tile.red_pylon_medium_wood_transformer.name=Medium Wooden Electricity Pylon with Transformer tile.red_wire_coated.name=Coated Red Copper Cable tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs From 810038bb60d9b09b39776a3ed43d994ddb621b1d Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 3 May 2024 14:48:17 +0200 Subject: [PATCH 373/376] lasers, pew pew --- .../blocks/machine/MachineICFController.java | 18 ++++- .../hbm/tileentity/TileEntityTickingBase.java | 22 +++++- .../hbm/tileentity/machine/TileEntityICF.java | 18 +++++ .../machine/TileEntityICFController.java | 70 +++++++++++++++++- .../hbm/textures/gui/reactors/gui_icf.png | Bin 3813 -> 5304 bytes .../hbm/textures/items/bolt_compound.png | Bin 250 -> 0 bytes .../hbm/textures/items/bolt_dura_steel.png | Bin 228 -> 0 bytes .../hbm/textures/items/bolt_tungsten.png | Bin 188 -> 0 bytes .../assets/hbm/textures/items/icf_pellet.png | Bin 0 -> 430 bytes .../hbm/textures/items/icf_pellet_bg.png | Bin 0 -> 350 bytes .../hbm/textures/items/icf_pellet_empty.png | Bin 0 -> 481 bytes .../hbm/textures/items/icf_pellet_shape.png | Bin 0 -> 196 bytes .../hbm/textures/items/wafer_diamond.png | Bin 1657 -> 0 bytes .../assets/hbm/textures/items/wafer_gold.png | Bin 1643 -> 0 bytes .../assets/hbm/textures/items/wafer_lapis.png | Bin 1653 -> 0 bytes .../hbm/textures/items/wafer_silicon.png | Bin 1629 -> 0 bytes .../assets/hbm/textures/items/wafer_spark.png | Bin 1696 -> 0 bytes .../assets/hbm/textures/items/wand_alt.png | Bin 257 -> 0 bytes .../assets/hbm/textures/items/wand_d_alt.png | Bin 250 -> 0 bytes .../assets/hbm/textures/items/wand_s_alt.png | Bin 251 -> 0 bytes .../hbm/textures/items/zündschlüssel_0.png | Bin 146 -> 0 bytes .../hbm/textures/items/zündschlüssel_1.png | Bin 178 -> 0 bytes .../hbm/textures/items/zündschlüssel_2.png | Bin 194 -> 0 bytes .../hbm/textures/items/zündschlüssel_3.png | Bin 238 -> 0 bytes .../hbm/textures/items/zündschlüssel_4.png | Bin 270 -> 0 bytes 25 files changed, 120 insertions(+), 8 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/items/bolt_compound.png delete mode 100644 src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png delete mode 100644 src/main/resources/assets/hbm/textures/items/bolt_tungsten.png create mode 100644 src/main/resources/assets/hbm/textures/items/icf_pellet.png create mode 100644 src/main/resources/assets/hbm/textures/items/icf_pellet_bg.png create mode 100644 src/main/resources/assets/hbm/textures/items/icf_pellet_empty.png create mode 100644 src/main/resources/assets/hbm/textures/items/icf_pellet_shape.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wafer_diamond.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wafer_gold.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wafer_lapis.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wafer_silicon.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wafer_spark.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wand_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wand_d_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wand_s_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/zündschlüssel_0.png delete mode 100644 src/main/resources/assets/hbm/textures/items/zündschlüssel_1.png delete mode 100644 src/main/resources/assets/hbm/textures/items/zündschlüssel_2.png delete mode 100644 src/main/resources/assets/hbm/textures/items/zündschlüssel_3.png delete mode 100644 src/main/resources/assets/hbm/textures/items/zündschlüssel_4.png diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFController.java b/src/main/java/com/hbm/blocks/machine/MachineICFController.java index ab5e4797d..321d8307d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICFController.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICFController.java @@ -1,9 +1,12 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart; @@ -11,6 +14,8 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityICFController; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; @@ -28,9 +33,10 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineICFController extends BlockContainer { +public class MachineICFController extends BlockContainer implements ILookOverlay { @SideOnly(Side.CLIENT) private IIcon iconFront; @@ -207,4 +213,14 @@ public class MachineICFController extends BlockContainer { PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(data, x, y, z), (EntityPlayerMP) player); } } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + if(!(te instanceof TileEntityICFController)) return; + TileEntityICFController icf = (TileEntityICFController) te; + List text = new ArrayList(); + text.add(BobMathUtil.getShortNumber(icf.getPower()) + "/" + BobMathUtil.getShortNumber(icf.getMaxPower()) + "HE"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java b/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java index aa11fb99a..1d1871c2e 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java @@ -1,13 +1,15 @@ package com.hbm.tileentity; +import com.hbm.packet.BufPacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidTank; -public abstract class TileEntityTickingBase extends TileEntityLoadedBase implements INBTPacketReceiver { +public abstract class TileEntityTickingBase extends TileEntityLoadedBase implements INBTPacketReceiver, IBufPacketReceiver { public TileEntityTickingBase() { } @@ -22,16 +24,28 @@ public abstract class TileEntityTickingBase extends TileEntityLoadedBase impleme //was it update? onUpdate? updateTile? did it have any args? //shit i don't know man @Override - public abstract void updateEntity(); + public abstract void updateEntity(); - public void networkPack(NBTTagCompound nbt, int range) { + @Deprecated public void networkPack(NBTTagCompound nbt, int range) { if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - public void networkUnpack(NBTTagCompound nbt) { } + @Deprecated public void networkUnpack(NBTTagCompound nbt) { } @Deprecated public void handleButtonPacket(int value, int meta) { } + + public void networkPackNT(int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + + @Override public void serialize(ByteBuf buf) { + buf.writeBoolean(muffled); + } + + @Override public void deserialize(ByteBuf buf) { + this.muffled = buf.readBoolean(); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java index c4e34d4fe..1d481dbc2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -13,6 +13,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; @@ -43,6 +44,23 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider } } + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot < 5; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + return slot > 5; + } + + public static final int[] io = new int[] {0, 1, 2, 3, 4, 6, 7, 8, 9, 10}; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return io; + } + @Override public boolean isUseableByPlayer(EntityPlayer player) { if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java index 9c43e6970..3db737fc1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java @@ -8,6 +8,8 @@ import com.hbm.tileentity.TileEntityTickingBase; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.energymk2.IEnergyReceiverMK2; +import io.netty.buffer.ByteBuf; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityICFController extends TileEntityTickingBase implements IEnergyReceiverMK2 { @@ -51,13 +53,13 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE for(BlockPos capacitor : capacitors) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { pos.mutate(capacitor.getX() + offset.offsetX, capacitor.getY() + offset.offsetY, capacitor.getZ() + offset.offsetZ); - if(emitters.contains(pos)) { this.emitterCount++; break; } + if(emitters.contains(pos)) { this.capacitorCount++; break; } } } for(BlockPos turbo : turbochargers) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { pos.mutate(turbo.getX() + offset.offsetX, turbo.getY() + offset.offsetY, turbo.getZ() + offset.offsetZ); - if(capacitors.contains(pos)) { this.emitterCount++; break; } + if(capacitors.contains(pos)) { this.turbochargerCount++; break; } } } @@ -72,11 +74,73 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE @Override public void updateEntity() { + if(!worldObj.isRemote) { + + if(this.assembled) { + for(BlockPos pos : ports) { + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + BlockPos portPos = pos.offset(dir); + if(this.getMaxPower() > 0) this.trySubscribe(worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); + } + } + } + + this.networkPackNT(50); + } + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(capacitorCount); + buf.writeInt(turbochargerCount); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.capacitorCount = buf.readInt(); + this.turbochargerCount = buf.readInt(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.assembled = nbt.getBoolean("assembled"); + this.cellCount = nbt.getInteger("cellCount"); + this.emitterCount = nbt.getInteger("emitterCount"); + this.capacitorCount = nbt.getInteger("capacitorCount"); + this.turbochargerCount = nbt.getInteger("turbochargerCount"); + + ports.clear(); + int portCount = nbt.getInteger("portCount"); + for(int i = 0; i < portCount; i++) { + int[] port = nbt.getIntArray("p" + i); + ports.add(new BlockPos(port[0], port[1], port[2])); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setBoolean("assembled", assembled); + nbt.setInteger("cellCount", cellCount); + nbt.setInteger("emitterCount", emitterCount); + nbt.setInteger("capacitorCount", capacitorCount); + nbt.setInteger("turbochargerCount", turbochargerCount); + + nbt.setInteger("portCount", ports.size()); + for(int i = 0; i < ports.size(); i++) { + BlockPos pos = ports.get(i); + nbt.setIntArray("p" + i, new int[] { pos.getX(), pos.getY(), pos.getZ() }); + } } @Override public long getPower() { - return power; + return Math.min(power, this.getMaxPower()); } @Override diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png index f78c497db8d7341bf1e7f6d938882072fc1951a8..1020325235eef332d5bab024b4bf12499af75c3c 100644 GIT binary patch literal 5304 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 Zu#Kl>acUPA$Qrn2-PEP^N{L0F{-EKQag6iEby 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 diff --git a/src/main/resources/assets/hbm/textures/items/bolt_compound.png b/src/main/resources/assets/hbm/textures/items/bolt_compound.png deleted file mode 100644 index faa421927456f2df7229d4a9923fb82121aa69e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf}ozqS9u_kypAG9>{j0)lJ)@Lg)^TFJ?GujF*C z%>ViW>qD;aikBW!y4r&m*ako3733HI!k^y#38z(a>5_F*EdI&CaT3pM9Jk v_W#gs;Gg8uh9nawD>gTe~DWM4fxKUh< diff --git a/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png b/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png deleted file mode 100644 index de6eb68e604afc807eeba2e927a7cd39f632d1d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfOlEUw<+i5syyNfN?#;+I=yYa+LLRa zyiyn(?i#n`GJehT5(`)TK zwhoO>4uz!V84WV4wT?&}td5`X)Y&#!uu;J2<+1}>^O&an5Z!RhIYIqh!`&T>evjU< jb<8Mx^zfDcr~bQ}R4141U=w5lTF>C=>gTe~DWM4f38_P! diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet.png b/src/main/resources/assets/hbm/textures/items/icf_pellet.png new file mode 100644 index 0000000000000000000000000000000000000000..eeccd743751e42ac252e522931a9a4c489717067 GIT binary patch literal 430 zcmV;f0a5;mP)At56ot<#T|$0Ahfe7rbr8%@=n$lPOJkC`J=5df$HzJMUf{1K@*119&r(W! z;u8D)9^>&S^Y7_#VX=7Q-EIfdG+`J9hJ(HU0MBc2uU$i-R2R8`$z;yW=BHkg!TbOhh0eY}P*8*RDtaq?9lW1CHZ>h*HDyUpE2(EX(5GE=~@Q_YaNk zU?vXs^F&0*1XQb40Dw{oTI*bZ);cwZA9-Gj0bn-mvfHrvxbHS>o=v-ndSVN`b`9mC z;H(&K!{%fADL|oA7l$=|L)fw`XsuDHR1n88?jN3VuQ#E7$7AQ}jF;gvzsw&~asH3K Y0J~kl?j;;2lK=n!07*qoM6N<$f_WOgGXMYp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_bg.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..735ce8e55aaf49aa452687c436233601e8bfaed8 GIT binary patch literal 350 zcmV-k0iphhP)A5QK*XDOOxh8gLmtL@Cf`x8N>(P6G~L@6S7dlGuLN ztTYk=_G1_TeqHWtVV-AWX5^faQo`+aJKVdQd_JE>L{L@aoRM=zj1jNb3o%A?UH8#L z-_1?a;Cj8HX&PKE7laVty@&T6M1*l1?G!*n2qBhzLaF1Goc}W)Z1?0$tY?%v>cRdq7GFs#?QRRfq`I zb*+#B+P3ZZ8K-G7?>(GzFf)hE7SgAG6*2JxHf|zW@LL07*qoM6N<$g4`63!vFvP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_empty.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..904314bbcae2ae6184768a5e829e0de4c8049c1a GIT binary patch literal 481 zcmV<70UrK|P)FsBeN-2K+__(CM zWB`zz99yk5#?3lgO*{xE;zH zcJ0}*YkITTPn}PXIG*j^v{my#0jF%r!pBSa96qPNepvqFtwMJZw_-;r_j2_V{n*6Q s99C0yzrL{|;>3;T;q#KB3cep>?fD|hFSnZO9?%&Kp00i_>zopr0LgYsp#T5? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/wafer_diamond.png b/src/main/resources/assets/hbm/textures/items/wafer_diamond.png deleted file mode 100644 index 10db83af14808c5b1b07c130b3c88a749c9cad6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1657 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 diff --git a/src/main/resources/assets/hbm/textures/items/wafer_lapis.png b/src/main/resources/assets/hbm/textures/items/wafer_lapis.png deleted file mode 100644 index 3d6760a26205f0f5dc10271f1b8ace611c100995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1653 zcmV-*28#KKP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-|ulH({0{m&`(2$qBp90&7JwKtgK?*n6ZlFoD| zJ6pRyc1#7Z5Yj_WfaBVaKfC(_4{sqjuNFfJVZ-B-Pn^+-+wr7X)8=QrUbeGyCwJEX zLnLVBc(uIrGvxX);q*cKz1+n$!f_coEiZ#IJTp4=79`|+$jL85sU4k=qTNE>`Dn{h zoKV(pUv6kw9q;Z|;0;l#3P-}+gk+m_JP^qEkz}-rngpQ6DEcbw=D@im1mtdcR{*!$ z0Nn-o?77G2U%iLmb6#?Jh-FwYLg(oK>GR;v5Z^eK3lZNB)crK|Imo@&*n2xxmwiA) z!^)`5ozWR{pa=rI%xM9|@Kf|{mV^?wycJMhw*s5e>A%G9aNwom~?&y5W& za{*C97R5Mmk-?K6g*uxgsbGzzaC0IM^M!?`-!%Oditt#y$Yrq)HjT%}Yg!e$ zEkw@hGJp`lw*m|a7}x@dQlQP4jRX9_lo>6ACW^@MZKy9HH}V_<{-fb4Ix+!>Z)(BJq9w~wqK_Iw zv>0QGIdKx4fto_H6jMq$v&(RlVJkyFL$dQOyWe#WyX|pLdoDT+>vWty6@UUw;p@y`C@Ic`l-CZ8ZFj%GBxzTjIk#$Zi4|NG!M?UNZ#{cZg93G#->mPNFCg`N`o;_=o_(iy14sb?j_!w z#+P{G@0fFgx_^Q>2kJia_Jp-M?zu7a`B&TDhW_T-iD ziB3FHl=t>^b~r2_5Ei6 z00D$)LqkwWLqi~Na&Km7Y-Iodc$|HaJxIeq9K~N-OGR27EF$8Np*mS8D&nYBC_;r$ zE41oha_JW|X-HCB90k{cgCC1k2N!2u9b5%L@B_rn%}LQkO8j3^Xc6PVaX;SOd)&PP z{LLy;&7K6HYL<~nC52pmRS3NzhzJIeKult$J|~K4c#f}o`1pDk=ULw8{u~jdU^2ib z5YIB*u!uK^r#CH~^FDEul_iDvoOs-z3lcwaU3U46bID;p&x{(`%sg?FSSWR|+{LVH zsKismF-6rV-=A|?;k?CJt=3ulp8SR3g0`~Eb($kcVG&CZAwWhQ6;xp%POC5YySI|BN*fs5;oChq~4JHXJBE*X*|1!($MDH$92^2;CCXm+cz17iZ~vZY_xA&$U~;<13Gmkd000JJOGiWi{{a60|De66 zlK=n!32;bRa{vGizyJUazyWI3i3tDz00(qQO+^Rg1q~K71Qa`;5C8xGi%CR5R5;6H zU>F6AxTRA6qw;4n5@`TLqnd9D!>v=N5W+7nVKs;mT{DJ8bnx;LiXn_7X~tp*6S6ol zn$^tAQ1~bY)b{2O)Epje#=yYv5my+5{jXiJl7WGNfuXs03KoqF49zj&3=9mb81ckH z*nb8F1_qcxFaXiWfTEc|ItW8c2dfx|X zaB^>EX>4U6ba`-PAZ2)IW&i+q+T~YUvg0@i{bv=k1OY-w%aQe{>K)AT2g$ONILXbu zJ^eLfl?_H1jyXt9p#A-;!(VogLl0gwh7^Lc!zZ68n-blAq=XKqYv)B_>`BOFSQJ-My9-+KzUvKS>n6Id?KR9iL6Jc=OXuBWAAN$yX=EiG^~zt za8zeJV~$3E=lNK$F@lQeI!Ce*U3SGNudWzbo9PM3Sm}TsD`xE2rYu+tqNhe`lBgI_ z!xmX7QQ@5@8`w!Xaph=a6>7k2W;(Ip%$sJug3&TpG*?0khW5zY0bfo2WI*p_ln7ls zYh}1-^tHhl%#Evg86nsgZ!!yfj77h@>mO@XV^C(9qrG5u+a6*Qy!94Op4t4wzN6sIo<1sZ1C zn~VtIz-rti&PJB^V*R5&S`TGm@gfpLC4wZ$frAecLeMZaxvZ>SMT4qFO`0P|A0>vU zF~$^gqQtfbN(xC+Oey6|kS$TRSlRruSvJ~u^P6m8(=Bdk%f;HK_#!0~EwQAMD^;$x zP1I1e#+qtw2+eki=9{$8w8fTM?$&FayYJFN*B*Q7`DAUe`ZRvP8ZOpoGBy14WX-Ig zdW68Soyg$K7$c9yxDE!ap=ogDB6?4QxxtxBWQ#(`K+50-Dh|esLf??2A-?=gw+gIVJsbgDxoi$SgJ8fH}_;2O^B@mDP`SKCY z?ad7QE{bbXFq6;2kjIMhf?mc?j7J&l3o}&bWS3Y~9xdQ5hIbN6T){9O`6M6kT!RIM z-pE?6ujJaAYFoZ@hOeSDAC7o*#NlvFMMsUOzI&Uf*IKowDU~`kc&_Xr)jk)OIO&KJ z^7SP?)##9gKXep))gj+#j8noVhifN2chD~3Wv6WEoAGZFUQdWT(f!yqPZA#5rKLm5 z^@o_?8G}DtH{8&)53Dxu*G|2mqEG1VlVAI&ovr52hUwqgSztEKVZzVw=uKw0nSKc2 z)mD3h^cLDx`s;Fl-%9^N!rc=4xJ`eR6yhKH9{tw>vHeQ1zp?NS=zFJ?bi`4w0004m zX+uL$Nkc;*aB^>EX>4Tx0C=2zkv&MmKpe$iQ%gmw9qb_DkfAzR5EXIMDionYs1;gu zFuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|=H{g6A|?K>DYS_3;J6>}?mh0_0YbgZ zG^=YI&~)2OCE{WxyDA1>5rBX&deJX4%b1g-Bs|C0J$!tC`-Ngjg(eu+qV-Xlle$ z#8Fk#DPPFAta9Gstd*;*bx;1nP)=W2<~q$`B(R7jND!f*iW17O5u;Tn#X^eq;~xH@ zre7kLLaq`RITlcX2D#}6|AXJ%TKUNdHz^bc0xyp9F#-g4fkw@7zKmpj1VlOdaOQ}WXk@_FF>jJ_!g4BP@eYi@6?eVjf3 zY3eF@0~{OzqXo)d_jq@AXK(+WY4!I5;t+Ce8#g8H00006VoOIv0RI600RN!9r;`8x z010qNS#tmY4!{5a4!{9w)`10!># zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-_blH@21{O1&V1SBCI$Ke?dQb8gEsoLG(`DzusNXxv znv$}r@pQKmutu$3wxI_?}`nJa{v zu_%EPSD8Aw*=TT(Bn_&uRPIIuVZN}?v2Hrns}!+vBMfCiGQyM(oB6EsJI#zyCq-oA z#T9Vz+}D6Hm77@uZh8=Wwk^NC*+1B-P*4w=BOWl@vQiYKx4k8Y&Vq3YyN(c< z&~^e)gtZl5NT7iABubuaU=Bp!F+!jWxfH=NU$A zf)FZR0<=kzA(nHB{S#co9?B}}RMl(HXf$c|;+Rnw$ySb(@`n9>)L$}J@(Y|z+M|N+|c1i7;&VLFV(iH@7gz1qpcbrO3iWMQVmfP z!kL0*Ink*Z6k|tFJWK_!p?PX%BRR)Yxv7~=j6eJ^8~M zC{=j<Q*Dji=k>@bpfZ?8 zrr$A-`m&hMcKBL0JfGSuhST@#JvsCFbA4sqa_|XcT$t5zE>cVCY#&I!m_{L6OsfsW zyRj1B@m?nTLojXSsy-^`gX|JP+>5*LepBHqVBI-qdgZdVN6r2>V3{cWNZM=>+Io^5 zVyi5Km86z0wGC!t3lS`~wB`bHlj|&e0{Dg}^9Jb3{v%-K1EjY=Pokd!KCO9<A{qD+O6ET-b5YySI|BN* zfs5;oChq~4JHXJBE*X*|1!($MDH$92^2;CCXm+ zcz17iZ~vZY_xA&$U~;<13Gmkd000JJOGiWi{{a60|De66lK=n!32;bRa{vGizyJUa zzyWI3i3tDz00(qQO+^Rg1q~K99@}pO=l}o!l1W5CR5;7+lDiFqKoA9IomjF&WHQUK zJ8(n|h>%98!i_kzsKF6!I6V?5;D{Enr{k9*zidA2QW(t0yNZodCTl8 qWRxC2MVf{hz`%?DKt-AmJWvMZKPx>}=8Go)00000#LT=By}Z;C1rt33 zJD-%+A^D&cfO=kRfR~=&IqmG1 zq8=}P{_}a~u@zg3zSswNNj_T5-cfw+)UgP?^Eq?wz25NuciMB2WQ&M-5~msNNt}M5 wcC27W??v;861!ZIUkLSn%w;m%=4|iD@7KP1&t?O&JfQ6ip00i_>zopr0P@FK(EtDd diff --git a/src/main/resources/assets/hbm/textures/items/wand_d_alt.png b/src/main/resources/assets/hbm/textures/items/wand_d_alt.png deleted file mode 100644 index 3524021bea820a8aca06a9e660693d3183f18a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVTQMsp! zV~B4aSU%sc>ecFwvoW%|8il?_ZD=mumIc!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPIMM=Lb|%>FMGa zV&T8E=b&JN0SC)UCD$c^vo~;MZ{%FXJ1ZMVK&Z4OS!<35XR>FU}B@>9-|e$ rE^JF(QUkm~*!+bjIGWFCf5{@ab#CDi>)juLj$rU~^>bP0l+XkKTVYY; diff --git a/src/main/resources/assets/hbm/textures/items/zündschlüssel_0.png b/src/main/resources/assets/hbm/textures/items/zündschlüssel_0.png deleted file mode 100644 index d0940180ce03ef16feff1213895cbb93324470ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfI$IEGmC zCMPTqFmQVLKjMf7)BnN^Cyf$jNPUv;wg_wsc%qckvRmV2V==6sq=8~;*duRSBDPP6Hu~xfeQkKb{)OMT7)AzpQhUjnpdo!+- Z$s;rJ{L;OB%s@*SJYD@<);T3K0RUq=K{WsX diff --git a/src/main/resources/assets/hbm/textures/items/zündschlüssel_2.png b/src/main/resources/assets/hbm/textures/items/zündschlüssel_2.png deleted file mode 100644 index 0927803ea038d1d41d7eb6545faa0c2665b7464d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf{R%BrwbMZ4iKQ$iZ+gz1dd z6L#N8GBOU^_L<`c(@QaC4~h4evOO%P&s1;fxi#h4-4>J2MHY?|m%MCzCCkI}*23L! pV%I|LdeH}Jb-xRDo!S4Ag>R8{_s#O^w?IcQc)I$ztaD0e0suTQMW_G( diff --git a/src/main/resources/assets/hbm/textures/items/zündschlüssel_3.png b/src/main/resources/assets/hbm/textures/items/zündschlüssel_3.png deleted file mode 100644 index 1076a75d6c366ffcc70cec3d7c923db56b24c2cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf%$lVt}a_OLo!XQ zk5TDTQqKx422EA-C(HuLORjazyeKPc`C?I&_T5hNb6*l#57?bM|5RAzIgf+pQFH0g zT%}9vBJX&++}WHcTJ8|PUa)P}u1=1nQw+MwC&sOf|Gll)U>65}I>SNZtAa+IwtUz6 jCg0$WP;{T48y#=a6{bFA$ Date: Sat, 4 May 2024 22:23:19 +0200 Subject: [PATCH 374/376] the feds are trying to poison me --- changelog | 9 +- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../java/com/hbm/blocks/machine/BlockICF.java | 7 ++ .../hbm/blocks/machine/MachineICFPress.java | 39 ++++++++ .../java/com/hbm/inventory/gui/GUIICF.java | 11 ++- .../recipes/CrystallizerRecipes.java | 3 +- .../inventory/recipes/ReformingRecipes.java | 10 ++ src/main/java/com/hbm/items/ModItems.java | 12 +++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../tileentity/RenderICFController.java | 45 +++++++++ .../hbm/tileentity/machine/TileEntityICF.java | 25 ++++- .../machine/TileEntityICFController.java | 93 +++++++++++++++++- .../blocks/machine_icf_press_side.png | Bin 0 -> 518 bytes .../textures/blocks/machine_icf_press_top.png | Bin 0 -> 513 bytes .../textures/gui/processing/gui_icf_press.png | Bin 0 -> 1910 bytes .../hbm/textures/gui/reactors/gui_icf.png | Bin 5304 -> 5311 bytes .../hbm/textures/models/machines/icf.png | Bin 9728 -> 25656 bytes 17 files changed, 250 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineICFPress.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderICFController.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_icf_press_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_icf_press_top.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_icf_press.png diff --git a/changelog b/changelog index 4bfc0e045..5616123d3 100644 --- a/changelog +++ b/changelog @@ -24,8 +24,11 @@ * Certain earlygame things can now be recycled like stirling engines and gears * Antenna part recycling has been moved to the anvil * NTM's pickaxes now have a break speed bonus for glass -* renamed the foundry slag outlet to foundry spill outlet because people always assume it's for slag and only slag (it is not) +* Renamed the foundry slag outlet to foundry spill outlet because people always assume it's for slag and only slag (it is not) * The description for heatable/coolable fluid tags is now written in the same line as the label +* Rubber can now be made from acidizing latex with sour gas (requires just 25mB) +* Heating oil can now be reformed into naphtha +* Coker naphtha can now also be reformed like the other naphtha types (yields refgas instead of petgas as a byproduct) ## Fixed * Fixed DFC receivers not outputting power @@ -34,4 +37,6 @@ * Fixed general weirdness with the schrabidium transmutator item IO * Fixed certain tooltips using the backslash escape character despite not needing them * Hopefully fixed the immense lag caused by tom post impact mechanics, burning grass will now only spread 20% of the time (instead of 100) and the world destruction handler will only process half the blocks per chunk -* Hopefully fixed an issue where substations would not reliably connect to cable blocks \ No newline at end of file +* Hopefully fixed an issue where substations would not reliably connect to cable blocks +* Fixed assembler rendering bugging out with Angelica installed and a door template loaded +* Fixed medium pylon localizations \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 29740b894..da8088dd5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -892,6 +892,7 @@ public class ModBlocks { public static Block iter; public static Block plasma_heater; + public static Block machine_icf_press; public static Block icf; public static Block icf_controller; public static Block icf_laser_component; @@ -2009,6 +2010,7 @@ public class ModBlocks { iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":iter"); plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); + machine_icf_press = new MachineICFPress().setBlockName("machine_icf_press").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); icf_controller = new MachineICFController().setBlockName("icf_controller").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":icf_casing"); icf_laser_component = new BlockICFLaserComponent().setBlockName("icf_laser_component").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab); @@ -3343,6 +3345,7 @@ public class ModBlocks { GameRegistry.registerBlock(iter, iter.getUnlocalizedName()); GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); + register(machine_icf_press); register(icf_laser_component); register(icf_controller); register(icf_block); diff --git a/src/main/java/com/hbm/blocks/machine/BlockICF.java b/src/main/java/com/hbm/blocks/machine/BlockICF.java index 4daee8fa0..442433aba 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockICF.java +++ b/src/main/java/com/hbm/blocks/machine/BlockICF.java @@ -23,6 +23,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class BlockICF extends BlockContainer implements IBlockCT { @@ -211,5 +212,11 @@ public class BlockICF extends BlockContainer implements IBlockCT { super.onChunkUnload(); this.isLoaded = false; } + + @Override + public boolean canConnect(ForgeDirection dir) { + if(this.getBlockMetadata() != 1) return false; + return dir != ForgeDirection.UNKNOWN; + } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFPress.java b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java new file mode 100644 index 000000000..c8c4f2aed --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java @@ -0,0 +1,39 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class MachineICFPress extends BlockContainer { + + @SideOnly(Side.CLIENT) private IIcon iconTop; + + public MachineICFPress() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_icf_press_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_icf_press_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIICF.java b/src/main/java/com/hbm/inventory/gui/GUIICF.java index 9b74b86e2..30904fc21 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIICF.java +++ b/src/main/java/com/hbm/inventory/gui/GUIICF.java @@ -4,6 +4,7 @@ import com.hbm.inventory.container.ContainerICF; import com.hbm.lib.RefStrings; import com.hbm.render.util.GaugeUtil; import com.hbm.tileentity.machine.TileEntityICF; +import com.hbm.util.BobMathUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; @@ -30,6 +31,8 @@ public class GUIICF extends GuiInfoContainer { icf.tanks[0].renderTankInfo(this, x, y, guiLeft + 44, guiTop + 18, 16, 70); icf.tanks[1].renderTankInfo(this, x, y, guiLeft + 188, guiTop + 18, 16, 70); icf.tanks[2].renderTankInfo(this, x, y, guiLeft + 224, guiTop + 18, 16, 70); + + this.drawCustomInfoStat(x, y, guiLeft + 8, guiTop + 18, 16, 70, x, y, icf.maxLaser <= 0 ? "OFFLINE" : (BobMathUtil.getShortNumber(icf.laser) + "TU - " + (icf.laser * 1000 / icf.maxLaser) / 10D + "%")); } @Override @@ -42,7 +45,13 @@ public class GUIICF extends GuiInfoContainer { @Override protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, 114); + drawTexturedModalRect(guiLeft + 36, guiTop + 122, 36, 122, 176, 108); + + if(icf.maxLaser > 0) { + int p = (int) (icf.laser * 70 / icf.maxLaser); + drawTexturedModalRect(guiLeft + 8, guiTop + 88 - p, 212, 192 - p, 16, p); + } GaugeUtil.drawSmoothGauge(guiLeft + 196, guiTop + 98, this.zLevel, 0D, 5, 2, 1, 0xFF00AF); diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index e73b9d47e..95f88f353 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -106,7 +106,8 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModItems.powder_semtex_mix), new CrystallizerRecipe(ModItems.ingot_semtex, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_desh_ready), new CrystallizerRecipe(ModItems.ingot_desh, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_meteorite), new CrystallizerRecipe(ModItems.fragment_meteorite, utilityTime)); - registerRecipe(CD.dust(), new CrystallizerRecipe(ModItems.ingot_rubber, baseTime), new FluidStack(Fluids.FISHOIL, 250)); + registerRecipe(CD.dust(), new CrystallizerRecipe(ModItems.ingot_rubber, utilityTime), new FluidStack(Fluids.FISHOIL, 250)); + registerRecipe(LATEX.ingot(), new CrystallizerRecipe(ModItems.ingot_rubber, mixingTime), new FluidStack(Fluids.SOURGAS, 25)); registerRecipe(new ComparableStack(ModItems.powder_sawdust), new CrystallizerRecipe(ModItems.cordite, mixingTime), new FluidStack(Fluids.NITROGLYCERIN, 250)); registerRecipe(new ComparableStack(ModItems.meteorite_sword_treated), new CrystallizerRecipe(ModItems.meteorite_sword_etched, baseTime)); diff --git a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java index 168fbe902..ce8b44627 100644 --- a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java @@ -22,6 +22,11 @@ public class ReformingRecipes extends SerializableRecipe { @Override public void registerDefaults() { + recipes.put(Fluids.HEATINGOIL, new Triplet( + new FluidStack(Fluids.NAPHTHA, 50), + new FluidStack(Fluids.PETROLEUM, 15), + new FluidStack(Fluids.HYDROGEN, 10) + )); recipes.put(Fluids.NAPHTHA, new Triplet( new FluidStack(Fluids.REFORMATE, 50), new FluidStack(Fluids.PETROLEUM, 15), @@ -32,6 +37,11 @@ public class ReformingRecipes extends SerializableRecipe { new FluidStack(Fluids.AROMATICS, 10), new FluidStack(Fluids.HYDROGEN, 5) )); + recipes.put(Fluids.NAPHTHA_COKER, new Triplet( + new FluidStack(Fluids.REFORMATE, 50), + new FluidStack(Fluids.REFORMGAS, 10), + new FluidStack(Fluids.HYDROGEN, 5) + )); recipes.put(Fluids.LIGHTOIL, new Triplet( new FluidStack(Fluids.AROMATICS, 50), new FluidStack(Fluids.REFORMGAS, 10), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 89a8cfb28..2715971de 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1182,6 +1182,10 @@ public class ModItems { public static Item watz_pellet; public static Item watz_pellet_depleted; + public static Item icf_pellet_empty; + public static Item icf_pellet; + public static Item icf_pellet_depleted; + public static Item scrap_plastic; public static Item scrap; public static Item scrap_oil; @@ -3835,6 +3839,10 @@ public class ModItems { watz_pellet = new ItemWatzPellet().setUnlocalizedName("watz_pellet").setTextureName(RefStrings.MODID + ":watz_pellet"); watz_pellet_depleted = new ItemWatzPellet().setUnlocalizedName("watz_pellet_depleted").setTextureName(RefStrings.MODID + ":watz_pellet"); + + icf_pellet_empty = new Item().setUnlocalizedName("icf_pellet_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet_empty"); + icf_pellet = new Item().setUnlocalizedName("icf_pellet").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet"); + icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet"); trinitite = new ItemNuclearWaste().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); nuclear_waste_long = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); @@ -6778,6 +6786,10 @@ public class ModItems { GameRegistry.registerItem(watz_pellet, watz_pellet.getUnlocalizedName()); GameRegistry.registerItem(watz_pellet_depleted, watz_pellet_depleted.getUnlocalizedName()); + + GameRegistry.registerItem(icf_pellet_empty, icf_pellet_empty.getUnlocalizedName()); + GameRegistry.registerItem(icf_pellet, icf_pellet.getUnlocalizedName()); + GameRegistry.registerItem(icf_pellet_depleted, icf_pellet_depleted.getUnlocalizedName()); GameRegistry.registerItem(debris_graphite, debris_graphite.getUnlocalizedName()); GameRegistry.registerItem(debris_metal, debris_metal.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 82fba3eb0..9e561dcef 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -377,6 +377,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITER.class, new RenderITER()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePlasmaHeater.class, new RenderPlasmaHeater()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityICF.class, new RenderICF()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityICFController.class, new RenderICFController()); //Watz ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump()); diff --git a/src/main/java/com/hbm/render/tileentity/RenderICFController.java b/src/main/java/com/hbm/render/tileentity/RenderICFController.java new file mode 100644 index 000000000..9bc0d69ba --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderICFController.java @@ -0,0 +1,45 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.BeamPronter.EnumBeamType; +import com.hbm.render.util.BeamPronter.EnumWaveType; +import com.hbm.tileentity.machine.TileEntityICFController; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; + +public class RenderICFController extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) { + + TileEntityICFController controller = (TileEntityICFController) tile; + + if(controller.laserLength > 0) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + GL11.glRotatef(90, 0F, 1F, 0F); + switch(tile.getBlockMetadata()) { + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + BeamPronter.prontBeam(Vec3.createVectorHelper(controller.laserLength, 0, 0), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0x202020, 0x100000, 0, 1, 0F, 10, 0.125F); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + + GL11.glPopMatrix(); + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java index 1d481dbc2..e946b7d0a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -10,6 +10,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -19,6 +20,9 @@ import net.minecraft.world.World; public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider, IFluidStandardTransceiver { + public long laser; + public long maxLaser; + public FluidTank[] tanks; public TileEntityICF() { @@ -37,13 +41,30 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider @Override public void updateEntity() { - for(int i = 0; i < 3; i++) tanks[i].setFill(tanks[i].getMaxFill()); - if(!worldObj.isRemote) { + for(int i = 0; i < 3; i++) tanks[i].setFill(tanks[i].getMaxFill()); + + this.networkPackNT(150); + this.laser = 0; + this.maxLaser = 0; } } + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(laser); + buf.writeLong(maxLaser); + for(int i = 0; i < 3; i++) tanks[i].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.laser = buf.readLong(); + this.maxLaser = buf.readLong(); + for(int i = 0; i < 3; i++) tanks[i].deserialize(buf); + } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return slot < 5; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java index 3db737fc1..8f3354591 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java @@ -4,17 +4,24 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.TileEntityTickingBase; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.energymk2.IEnergyReceiverMK2; import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityICFController extends TileEntityTickingBase implements IEnergyReceiverMK2 { public long power; + public int laserLength; public int cellCount; public int emitterCount; @@ -76,6 +83,8 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE if(!worldObj.isRemote) { + this.networkPackNT(50); + if(this.assembled) { for(BlockPos pos : ports) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { @@ -83,9 +92,64 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE if(this.getMaxPower() > 0) this.trySubscribe(worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); } } + + if(this.power > 0) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + + for(int i = 1; i < 50; i++) { + this.laserLength = i; + + Block b = worldObj.getBlock(xCoord + dir.offsetX * i, yCoord, zCoord + dir.offsetZ * i); + if(b == ModBlocks.icf) { + TileEntity tile = worldObj.getTileEntity(xCoord + dir.offsetX * (i + 8), yCoord - 3, zCoord + dir.offsetZ * (i + 8)); + if(tile instanceof TileEntityICF) { + TileEntityICF icf = (TileEntityICF) tile; + icf.laser += this.getPower(); + icf.maxLaser += this.getMaxPower(); + break; + } + } + + if(!b.isAir(worldObj, xCoord + dir.offsetX * i, yCoord, zCoord + dir.offsetZ * i)) { + float hardness = b.getExplosionResistance(null); + if(hardness < 6000) worldObj.func_147480_a(xCoord + dir.offsetX * i, yCoord, zCoord + dir.offsetZ * i, false); + break; + } + } + + double blx = Math.min(xCoord, xCoord + dir.offsetX * laserLength) + 0.2; + double bux = Math.max(xCoord, xCoord + dir.offsetX * laserLength) + 0.8; + double bly = Math.min(yCoord, yCoord + dir.offsetY * laserLength) + 0.2; + double buy = Math.max(yCoord, yCoord + dir.offsetY * laserLength) + 0.8; + double blz = Math.min(zCoord, zCoord + dir.offsetZ * laserLength) + 0.2; + double buz = Math.max(zCoord, zCoord + dir.offsetZ * laserLength) + 0.8; + + List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(blx, bly, blz, bux, buy, buz)); + + for(Entity e : list) { + e.attackEntityFrom(DamageSource.inFire, 50); + e.setFire(5); + } + + this.setPower(0); + } else { + this.laserLength = 0; + } + + } else { + this.laserLength = 0; } + } else { - this.networkPackNT(50); + if(this.laserLength > 0 && worldObj.rand.nextInt(5) == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + double offXZ = worldObj.rand.nextDouble() * 0.25 - 0.125; + double offY = worldObj.rand.nextDouble() * 0.25 - 0.125; + double dist = 0.55; + worldObj.spawnParticle("reddust", xCoord + 0.5 + dir.offsetX * dist + rot.offsetX * offXZ, yCoord + 0.5 + offY, zCoord + 0.5 + dir.offsetZ * dist + rot.offsetZ * offXZ, 0, 0, 0); + } } } @@ -94,6 +158,7 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE buf.writeLong(power); buf.writeInt(capacitorCount); buf.writeInt(turbochargerCount); + buf.writeInt(laserLength); } @Override public void deserialize(ByteBuf buf) { @@ -101,12 +166,15 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE this.power = buf.readLong(); this.capacitorCount = buf.readInt(); this.turbochargerCount = buf.readInt(); + this.laserLength = buf.readInt(); } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.assembled = nbt.getBoolean("assembled"); this.cellCount = nbt.getInteger("cellCount"); this.emitterCount = nbt.getInteger("emitterCount"); @@ -125,6 +193,8 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setBoolean("assembled", assembled); nbt.setInteger("cellCount", cellCount); nbt.setInteger("emitterCount", emitterCount); @@ -150,6 +220,25 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE @Override public long getMaxPower() { - return capacitorCount * 1_000_000 + turbochargerCount * 2_500_000; //TEMP + return (long) (Math.sqrt(capacitorCount) * 5_000_000 + Math.sqrt(Math.min(turbochargerCount, capacitorCount)) * 10_000_000); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord + 0.5 - 50, + yCoord, + zCoord + 0.5 - 50, + xCoord + 0.5 + 50, + yCoord + 1, + zCoord + 0.5 + 50 + ); + } + + return bb; } } diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_side.png new file mode 100644 index 0000000000000000000000000000000000000000..f9f1ce193810610a56066ad6774601b89da9c99d GIT binary patch literal 518 zcmV+h0{Q)kP)Lwtxd~|k!7mUnq{|by&a(wW zNRb56#YYM^Aq0X`xO1|(wb?zPljK6D-Mupz5IZ}g(fsrOl9<0ERuxDIySp$N!Ojjy zDF`8wO-jM-ZA8j0gb<+i_n+|W)fwP{K{jm}_#O!T@7-@MKYc|tO_KtDet_0#g#g|s z9}=Y4qoHm2b#(=R>VkWFP}h8Uf7yj{eYV+b%6=q*785=S@RyslGC#n+}zxCVdosi7-rAk zrtVv_^$4+63V)6zK#0L@3n8t=0`FlmnXD59 z7_+%&?J7T*hXHZN$5YhPH+iV^F$V7M$qym~P{o?nZbOEBZ~&{%uvnzr`l12p)#VXl zj8OmN`+WYGut)s$iiHq}5yZC(VisViS{`*YO3ibwu7?N00|k|~p7MjqqyPW_07*qo IM6N<$f_Yc%KmY&$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_top.png new file mode 100644 index 0000000000000000000000000000000000000000..a8dc67183f37e1327c5b31155699c6c55e784473 GIT binary patch literal 513 zcmV+c0{;DpP)VRI>kp1c(N6oTJC@Y)Zj2l3>g z{y`C4TE7N=jvhP&ED&XVNp!b>bnf*JKAwCaT`reCaQPLo%pVc3*5AQX zavd9*hVQ4R0Hh(fyUUv=uX^}xe{06T!NDEIRfRDIt>Xbok!7&IKiV{B42MGi>beeP zqkG42{uB|}Vqh)nHLO-ECifo$C6E9EMw4G~`I7UqGq$ZaU@(9@&w<;}yyz9afBiYI zi{F;AWyTm_0Zl`!nYC@s0HC!-#FA>=moCdPVBk@r%`4@bwxv$nWzaMj)1s{X%8SD1 zB+{QG_|6eAC`*!LgYsv}yOY_5YWIWy7BNee>b^GTe9_O@jH)UbkH@B!DI!+&M^Mjt1=1`om7AGkt&F?!0-s-}m0`_f7@iw^&;^ zSO5U5aa+B=0RUoHLV%fx!G$E;iZVFkBb#u6W(G?$Bc24nbPdk?tH2c6NZ*dwUJpBy z@bBA&ynrFgVaU;6#Ip4p8G4syXWc# z2EWeg5YwjchHXaY_sR7G@oqX)?49nrD~va(u1D@M!R$w)(JZlzdqL4b%_>ktr+aQ_ zb{L*|*Rea=*4CE6u{XOaaTe&U$n_ED0Z6a|0T)5W17k2}1t@ldfGl&cay!6AK!Jt* zUm?ZIdHqCoZ)o2mH>*S3z9f&!WDOsmqtp*F3XQSR46S^sf4^SWI@TYiRng=6_i9zT z&PrQ-!GH`}B;DtfJy1rOHYvSGQ?KHXDAlyWSpwPd*D7@+Oy=ur#oX$O!W>b+4nJEB zT;&uJhabmq=A(J{ELsO9CMJHT$0g?a(&+~&v-c>0$42`E&yfi*I}hgbq7X;OanS&kWu37w=mnXY z6YoUy^~ZT#lc;vck61W@>#a?Q5}53aC3%5~#z`V{z`70?i2_LrvKK$i$d4+O4&fJF zsDg|?rzLRvT)jm3*36Z$>Ev?Ai#ZzrGVqMq;yFIqxBzQHN^->}pJROV zqy#+oyt!BF6BAJaE;J#Q+SZtfH)1+Kf`KH#<#9Df-dM?4Ph%>A69?GFjrUs9ZXz0- znDXGnh%vBvflFg`kiy~wpGDIK5xPLVS4r9e=v)(uLRYpb29#et6F6UaeZ6d&Ot|dQ z)HxUH8sBGw8l}@ry-1|)k)&Yu7gk@hsZ||AoNP~O$TSnwOBU?FnD7K+BE>be=GIJe zGq#<{(KR4qKrXWdv2Nphq7C8Q?Xq#mX$F(#pd9M#Txi^_zWs9*@N~uhlMEo+; zDeNrwd!$3{GXlFJM_Up5BK zovDe@q9NMk)BWIPCEDcjNGWkd80Mw;13W(783JYbSe5HHi1<-?x#216Fly zqn?48dq-r1a~<+s@m)DP(eNa&odkY-)N6fm_C@SmZf7XmE;r zNB9Z&cjo##K#=wiiqoR=h_941Pj%V)dnWdF$FhUjb%)1BP21k4N_*N{Zj2~Ts?)YZ zJ}Fn9QnHp&Q@atv5vAQW(o}hT+v`V`Nyfk7Gm~z5LQ_2sV5T?9q+zqq4IlGgsN%=h zyidNE?@YaGU+e4%Z5HNXd(8XuoT=hS>%WWX$7vtw?1xa(OtOs>#a(LWP25sU{y=wl zcu8?6m1TeR%IgY&EHXHJBr{GpDElu38MY|DGCtx4=R(isg;L+S&-!x^Y$e^-mgKKx zu$rUppf;k>C{93AifI*x%iSZxiq@?L3U@U12cJBsSF6a>Fy{UT3zzF=r92FUH)c2Z PO&^c*!FyM13P1h_qP0iJ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png index 1020325235eef332d5bab024b4bf12499af75c3c..dc17d2e910e19d6d7efdb90f8b205cc44a4efd02 100644 GIT binary patch literal 5311 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 literal 5304 zcmaJ_c|4Te+dqSly~viWvV|xj4>D6(BV^x0vTsG!%uJqyC|e@is1(`veJ#afNeD5v zY}v-n472#%>Up2%_r8C;=W~BPbMA9r=Um_Oy{_+dpL?PV^fZ|nco_fy%-ULNh5*2z zE)3AqLO<5`a-E+7;u#blmu@NbBKHy7e_?b&cHc#oP8e z0vh!70&bBmA6LJ6PIH}FG3Rz_HJ?ZhqklwOSHi&X-9^o%oHgv+x#w+Il@!;Q5uPeH zt*_Uvd_B^`#>K_J?$O4gn3Q!TJi)=+`R&w%YWGB6hBAJ#7C#n(`kA>#HpLGf zpFT>#Y%wO>{V!M!dF>9cnAO>ui55z}Yz`t4XTi{R;`GNy=YEm<393gC=L$-s7(i~Zvmk(mwd9w+w1 zzuMHVW|x)1IlKb`xK5rtxqv60RxLjLxi?THbJEtr;>w#o@oYFF3^CW!IdG+UYIxZ- zI5`hqx1W^{H*Ttn!PwmbS%YpcU}|PoT3wyfSlr@qG|nP_@M`|xhqp$HT-~&qkh(7jpQvt5W?p!47R0pAgm0^T$acNR z%P5%o92w7(Cjgg}l-wHTd#X|6kK@&N)AwQamW|CIr7p=C)YsQrjvj6L1A;jakqcpZ zrW7OSO>VBPzJwu6EC(l|R0OyT%RBf1={Fjj3{+e( z$6k*;{EKO^j6Bp-io-Agm>QNHn|-IK|^PPc4rz8UFPd_56qlg7#8u^LcY))Nwg< z!*X2qbk-7bp!r}@du5rtBY4Y#K$cM@<%Cb7kbfX=<+-7hGW0x92_D|wx6gBzWTf~n zsUV-M>L+wYqw~VNBbRn%O&=JaaGl9nq8JN+&e7Oq^)DDP4#RAm*}K51XP64IwqXzu zkLLR0CCq@c|8s27q1}^-(3%RT>yat_yOKsK*w3+UsD#7e&%9vnlqcz15v{=x5?|pi zDnMt)Y1Pi^4xVHe{^*eE|E%xn2GlXA;yS149nkH7CD=0~;w$9&UaF50-rF!|N!1PM zI*Pf@M92g6{vjVnP6(QUJo@#btz5iK_EW(jz@csRG2Y@=S2m&Q@tJb1lkftV_`lt3 z<5}LKfknHJkTe{}m|l`O^?B=f_Zt8D!ns-2sxw^fK>m~`v!+wL0@9q?K=_}omi8#` zv(2+aj~l<;^A71gn^9c#QRE2CD|sf#LDZ(8&ap$Y<9&N(3knNsA@x}jv%7|dOlJp^ z*Cv|r5pge;+VQFfhaALT`yKf=JE z(J@7i@=k88l;-bxc+vGBr#XXo=gC$O>0@}Tpt=dZy#}!DJXVW`sIbf#_-luhThT0? z{S=c&ylo8(-ZnVx4}YjLJc*&`4PK6nkAvm@?W$9On~4+In|AiQ#wek*iZ;$r@Re6ncfsSbLfWZI+)Q5={W!zWsA*Q(Klcp`=61nC+ww=ElB&_Psh{c5zw7I8h#w`(!HeE8oi)qinz$I^K3Ub->luTl9564QZ zFvHr7{#1C%iCjn6&m+z1;!cEY0l3cEjZct-LcxMR7fMDPWZTLeA)bl)j2AU$G}yRm zW_4*>(&fWj{(lXjA_7G`Y#C)J_FGBYmx?x1weQgiwY87ug%}77ZWwKc7&Y@EuAD^~ zEXf;blh3B&ae`*J-a5(kTmkR+go>G*0{lA#dEi`IW3z}Hi=${I5Eaqc#DT!V?t$Zj zCQ8Vw6DRxHMGiG9>d9>OF84MF!x~(K#D01~SDru2;Z{%+zwb^{=(UrJ`{UW!nh)26ql=O<3C{8`0k(FtMTuuk0WacrB_ zFK0ZDt8S{cx|#RGC$h4#vOf&8@S->T3SWBsv0}P;@N;!lT0ueK>l$9Cm&Q>S1rah( z>y)5!HkZ2q#;pexrS8+7r015@(97iPgLB;0cFGr=XRa@^n)J?Y7-^sq+Gx=lZ%#?z zl7FK2n+6N-yF!LMSyy}YOl7->xOT}+bb0Dl;}D&gUxiqW$rd+0SP zMkzKM24GTkk_PaRJ*dFK&ST*8Fl)ghO9HYUG}8arFP|aEq8~1=^P;yajYNq$sMbsj z_x#e_-`3ab6pIhO#wQ@~ZvXiEV3OK7=hsjgmgTx%d^a7Gcu;IQyuPv6wzd=8LJyqI z9xOCRq=?YDmm_>!nFHNlFl&7gHW7mh2?408dZKjuLZ~-s=rhQ#rswt=Y!y?dus_q* zuY*?07LQH+tC<$MD8Ce4Q5S`@_tnKJ;JN)p-clBX&LpMLmX*Hv0G4v((J?1^^qG!c zD$7F7BAfchCog#g28gVFq!^akT%V_P^lZma9JRy!@DZKyJ6pj&T=vq)>+5V05fM80 zd`FncQ_MzS40QFmJj%%6mtoX;5IQ4^Hq8&;2<%n@cXl^iD^cueTNRVHX0cdo+9Vu% zLJ`}9H{A<0x$v@^DyfspZVrafR64N>PnXxyy0IpnUeTMMM|qTefOsN;n1f|W6;Q|h zEX2nGklYlgz&SKL44vEP>`J-6FYlDpDPZ}<@6QsNL4dzM=q^k7%P}Fa$`M+!9ckok z!PZcmM==O0L)sp!&j(GB--HXX`KwJWjq-lEl%|-Polk8nk0dQNcYZH!pifcnf8-pB z{!n3g&cn-Vx}WP!5a$&C>dDU`D=xCFE-4hdtg=eWb1N$=cCs&_E5(HRYwe_Qds}fZ zT>AZA`$0DQ4v%_zdMtzprym#!-Vjxs^w7wZ%qoWm1r4IW^?H~jD^SndH`YmL@1hEB zobYha)I|br=7_D2G}%ZZF^G&E8M%-{o3%wEPCe?~e7F$|oc`Jjf}BG6;t(2odC)yq z7kP9>^UjzVlrs$VDPi06H|`PIuNw=kvoOedTJxAtckIt|-oJ1pNkKV-rK-Bxw^}hF!+?5HlTHtq_h_#Rh69 zM+MVKtwigeBeMY+*I!V*rUvn@DKIvR7#qRu(({1L^?B$~APtMu&8eVC!ANwAASC|#2poZP^vW6c z(o`*a4ny;x%k***m-iq^9UhMlpNXwXnLr*mZ_^?iFZ|OPkOi4cYS|g=_mr2KHpLnR z<-qBu^Jcp{IosO!BZ890Alw@7&cV1r;<5v!jG^f6zM4Oj|M50!ebwQTq^`z8-)k)$fkSi(j% zo{qEU0ll=sWhr+d4jrYaj$3qBh=4=1hX_A2p*tLwco65gpGU*cT4#2cKyMg;fR*3r z1XCdej!Zy}_W}eqCA!3WJDV65n-p=&1f8yJv2)*Y9y&b{eI*>F{9aMUf&+M&4nRB{U>J@ zJI{NxfAQb8Jw{&uaTadL++xp+&ei)S3)ZwDtZt`#X{ThNFx$>E0XxWt(qVA&31b3x z4nf{M3WaOn1yJFM)Dru@8FILTzv+gyQtxMqVJ8gN^H<&2i(vr$MNA+4S3JbNbTyN> zqPRw)giFig&1g<1bfDCQI?|2e1BKY)KS6<&`V1f+Z=RqVB+g^wzv`{$wTQ||0C0Hw zz9~cLL{2RYvRZBa)!!Mmq(4NSKV%z5b>v1*kTaty^#Digl{( zTc7^brt88x5Q5BbA66EYbs7}97kpeJ!TF5T~E4Q;6`paN>$wx^e)Eb8qIS zTgYNYP!qh9wyHcCbfUL;oB1uG1p*K$NLg=RP4jMg9HEIXX>N|)*||T~=zFZay?w!& zEZwyE`cLS=*d+Ym-jdMaggEHd=fQ)RMZYJ?0jqXO8Pl_~G;57S1p(Cukux*5-|j-h zGOhQmQ{%^KeFI5^3oH=CMVwBcfF!{NV5W|(>K(8QEOJ2C;Ra-i8sjAxA?eGuw6?;& zWL}Pj5a{L@sl=XWh~fGfi`tBx{J@Rx^PnUfa>nf$*m3zZ3LdPrdM0FI<~OFQZWf=Y zdfNQ7!t9P1y@u^K%o6(Y?E~bjb#+hO9N=nl|>;@e;^c+fT7$@K$9ncGUc@p~iqoQ{G-n zcTf#-LX<{6G`YU1(jV|QD-~S7u|Lox)yN_Se>t16*6^gbVWB%2c6$s1-_UTLm8H6cu;~PC#p&a-9IrZoHx296Z$bI(69Hhs;Vk8)j^C?c~oK|`vaVN z@&;k!_5*kK>V`KVZwy^!=9+jm3YW)Ga*iWxL&)#`66#l_VYyy)lZ{J7s2%)ReE{V% zKZ!t`i~W%+5wgCKO*F1zPWv{|+tZT$ELi2NIopWv*72--LddsJ3GDt_{R#8o$<4Qf z@s##~?Zn96Ei-5^e3?u@v3ezLLuAucKMgJ{@g#X>dq#I~zGOXu{K|Y_wzKCdfcFYv zmtU%--~{}fo8b%6w68HrUG3DlyBU!silw&qf7sU4l5o8EhN<1VII&9pYR@s>J)FM6 zK(O%CpH@E7e$I*KR?-yQh!;I?E#&P`2P!P;6U(-h(n*fWxCkov!aGcXtC*ePl3-OM zs$cVna8lFp!FURoBJMJ$l~9Oe_uZP9R_y9ku0S96(n5@q&j%{)te&q0Y9iF9PGkOM zz-l-I&gJ!Z_)J)=uMFsudnt#Wst)O2yNQ4AQD5RbH8fpE*~ahr-;B*!6#MV@bNmQJ Zu#Kl>acUdS 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 literal 9728 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 Date: Sun, 5 May 2024 22:50:49 +1000 Subject: [PATCH 375/376] Fix crash on RBMK meltdown near spotlights --- src/main/java/com/hbm/blocks/machine/SpotlightBeam.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java index 44c7c7209..09202b7c6 100644 --- a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java +++ b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java @@ -55,6 +55,7 @@ public class SpotlightBeam extends BlockContainer { // 111111 -> ALL directions illuminated, all incoming lights need to be disabled to turn off the beam public static List getDirections(World world, int x, int y, int z) { TileEntityData te = (TileEntityData) world.getTileEntity(x, y, z); + if(te == null) return new ArrayList(); return getDirections(te.metadata); } From d88dd38f2015d47edd7aeab63291153da9b8d2b9 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 5 May 2024 18:44:34 +0200 Subject: [PATCH 376/376] ignition! --- changelog | 13 ++ .../com/hbm/blocks/machine/HeaterHeatex.java | 37 +++++- .../blocks/machine/MachineBigAssTank9000.java | 16 +-- .../com/hbm/blocks/machine/MachineICF.java | 29 +++++ .../hbm/blocks/machine/MachineICFPress.java | 15 ++- .../hbm/entity/projectile/EntityChemical.java | 1 + .../java/com/hbm/inventory/fluid/Fluids.java | 8 +- .../inventory/fluid/trait/FT_Heatable.java | 3 +- .../hbm/inventory/gui/GUIHeaterHeatex.java | 6 +- .../java/com/hbm/inventory/gui/GUIICF.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 4 +- .../com/hbm/items/machine/ItemICFPellet.java | 74 +++++++++++ .../machine/TileEntityHeaterHeatex.java | 3 +- .../hbm/tileentity/machine/TileEntityICF.java | 118 +++++++++++++++++- .../machine/TileEntityICFController.java | 2 +- .../machine/TileEntityMachineDrain.java | 5 + src/main/resources/assets/hbm/lang/de_DE.lang | 14 +++ src/main/resources/assets/hbm/lang/en_US.lang | 15 +++ .../hbm/textures/gui/reactors/gui_icf.png | Bin 5311 -> 5738 bytes 19 files changed, 338 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/hbm/items/machine/ItemICFPellet.java diff --git a/changelog b/changelog index 5616123d3..8fdd302be 100644 --- a/changelog +++ b/changelog @@ -5,6 +5,16 @@ * Each ore smelts into 16 items, except for cobalt which yields only 4 ingots * All meteorite ores are now equally likely to spawn * The new ores can only be smelted, shredding or other processing is not possible +* ICF (WIP!) + * A new tier of fusion reactor that replaces the FWatz + * Powered by external lasers which are dynamic multiblocks, using fuel pellets + * Construction of lasers: Place a controller, then a straight line of cells behind it, surround those with flash tubes, those with capacitors and optionally those with turbochargers (not recommended as of now) + * Stuff left unfinished: + * Pellet creation and recycling + * Final balancing (especially for lasers and cooling) + * Uses for stellar flux + * Crafting and assembling + * Cooling this reactor is exceedingly difficult due to the limitations of heat exchangers and the relatively low heat capacitor of most available coolants, there will most likely be more powerful ICF-exclusive coolants in the future (liquid lead? sodium compounds?) ## Changed * The Souyz' recipe is now available in the standard template folder @@ -29,6 +39,9 @@ * Rubber can now be made from acidizing latex with sour gas (requires just 25mB) * Heating oil can now be reformed into naphtha * Coker naphtha can now also be reformed like the other naphtha types (yields refgas instead of petgas as a byproduct) +* Drainage pipes will now violently explode when voiding antimatter +* Seeding slurry can now place grass over dead grass +* Added an extra digit to the heat exchanger's configuration panel, allowing effective utilization of all 24,000mB per tick ## Fixed * Fixed DFC receivers not outputting power diff --git a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java index ddc4c63dc..1eb152a67 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java @@ -7,14 +7,22 @@ import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityHeaterHeatex; import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; @@ -45,7 +53,34 @@ public class HeaterHeatex extends BlockDummyable implements ILookOverlay, IToolt @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - return this.standardOpenBehavior(world, x, y, z, player, 0); + + if(world.isRemote) { + return true; + } else { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + if(player.isSneaking()) { + TileEntityHeaterHeatex trialEntity = (TileEntityHeaterHeatex) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(trialEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + trialEntity.tanks[0].setTankType(type); + trialEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + return true; + } + } + } else { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + } + + return true; + } } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index df23f7204..32ba803a3 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -101,17 +101,17 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent TileEntityMachineBAT9000 trialEntity = (TileEntityMachineBAT9000) world.getTileEntity(pos[0], pos[1], pos[2]); if(trialEntity != null) { - if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { - FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); - trialEntity.tank.setTankType(type); - trialEntity.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + trialEntity.tank.setTankType(type); + trialEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); } - } - + } + return true; - }else { + } else { return true; } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineICF.java b/src/main/java/com/hbm/blocks/machine/MachineICF.java index 9d5bbb9ba..c40d9793d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICF.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICF.java @@ -1,12 +1,15 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityICF; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class MachineICF extends BlockDummyable { @@ -17,6 +20,7 @@ public class MachineICF extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityICF(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().fluid(); return null; } @@ -29,6 +33,31 @@ public class MachineICF extends BlockDummyable { public int getOffset() { return 1; } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {1, 1, -1, 2, 8, 8}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {1, 1, 2, -1, 8, 8}, this, dir); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + this.makeExtra(world, x , y + 5, z); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + this.makeExtra(world, x + dir.offsetX * 2 + rot.offsetX * 6 , y + 3, z + dir.offsetZ * 2 + rot.offsetZ * 6); + this.makeExtra(world, x + dir.offsetX * 2 - rot.offsetX * 6 , y + 3, z + dir.offsetZ * 2 - rot.offsetZ * 6); + this.makeExtra(world, x - dir.offsetX * 2 + rot.offsetX * 6 , y + 3, z - dir.offsetZ * 2 + rot.offsetZ * 6); + this.makeExtra(world, x - dir.offsetX * 2 - rot.offsetX * 6 , y + 3, z - dir.offsetZ * 2 - rot.offsetZ * 6); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + if(!super.checkRequirement(world, x, y, z, dir, o)) return false; + //if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -3, 1, 1, 1, 1}, x, y, z, dir)) return false; + + return true; + } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFPress.java b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java index c8c4f2aed..7f9fbb124 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICFPress.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java @@ -1,17 +1,25 @@ package com.hbm.blocks.machine; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; -public class MachineICFPress extends BlockContainer { +public class MachineICFPress extends BlockContainer implements ITooltipProvider { @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -36,4 +44,9 @@ public class MachineICFPress extends BlockContainer { public IIcon getIcon(int side, int metadata) { return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + for(String s : I18nUtil.resolveKeyArray(((Block)this).getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s); + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityChemical.java b/src/main/java/com/hbm/entity/projectile/EntityChemical.java index 9a6a87c22..f1a1e5e6c 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChemical.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChemical.java @@ -478,6 +478,7 @@ public class EntityChemical extends EntityThrowableNT { int meta = worldObj.getBlockMetadata(x, y, z); if(block == Blocks.cobblestone) worldObj.setBlock(x, y, z, Blocks.mossy_cobblestone); if(block == Blocks.stonebrick && meta == 0) worldObj.setBlock(x, y, z, Blocks.stonebrick, 1, 3); + if(block == ModBlocks.waste_earth) worldObj.setBlock(x, y, z, Blocks.grass); if(block == ModBlocks.brick_concrete) worldObj.setBlock(x, y, z, ModBlocks.brick_concrete_mossy); if(block == ModBlocks.concrete_brick_slab && meta % 8 == 0) worldObj.setBlock(x, y, z, ModBlocks.concrete_brick_slab, meta + 1, 3); if(block == ModBlocks.brick_concrete_stairs) worldObj.setBlock(x, y, z, ModBlocks.brick_concrete_mossy_stairs, meta, 3); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 0a096eac2..10e776c4c 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -578,19 +578,19 @@ public class Fluids { HOTCRACKOIL.addTraits(new FT_Coolable(CRACKOIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); HOTCRACKOIL_DS.addTraits(new FT_Coolable(CRACKOIL_DS, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); + COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).setEff(HeatingType.ICF, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); COOLANT_HOT.addTraits(new FT_Coolable(COOLANT, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).addStep(400, 1, MUG_HOT, 1), new FT_PWRModerator(1.15D)); + MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).setEff(HeatingType.ICF, 1.25D).addStep(400, 1, MUG_HOT, 1), new FT_PWRModerator(1.15D)); MUG_HOT.addTraits(new FT_Coolable(MUG, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - BLOOD.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(500, 1, BLOOD_HOT, 1)); + BLOOD.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.ICF, 1.25D).addStep(500, 1, BLOOD_HOT, 1)); BLOOD_HOT.addTraits(new FT_Coolable(BLOOD, 1, 1, 500).setEff(CoolingType.HEATEXCHANGER, 1.0D)); HEAVYWATER.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(300, 1, HEAVYWATER_HOT, 1), new FT_PWRModerator(1.25D)); HEAVYWATER_HOT.addTraits(new FT_Coolable(HEAVYWATER, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - SODIUM.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 2.5D).addStep(400, 1, SODIUM_HOT, 1)); + SODIUM.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 2.5D).setEff(HeatingType.ICF, 3D).addStep(400, 1, SODIUM_HOT, 1)); SODIUM_HOT.addTraits(new FT_Coolable(SODIUM, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); THORIUM_SALT.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(400, 1, THORIUM_SALT_HOT, 1), new FT_PWRModerator(2.5D)); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index ac60c74a5..0ec79abb7 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -70,7 +70,8 @@ public class FT_Heatable extends FluidTrait { public static enum HeatingType { BOILER("Boilable"), HEATEXCHANGER("Heatable"), - PWR("PWR Coolant"); + PWR("PWR Coolant"), + ICF("ICF Coolant"); public String name; diff --git a/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java b/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java index 6cfbc92bd..a5a2a781f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java @@ -39,11 +39,11 @@ public class GUIHeaterHeatex extends GuiInfoContainer { super.initGui(); Keyboard.enableRepeatEvents(true); - this.fieldCycles = new GuiTextField(this.fontRendererObj, guiLeft + 74, guiTop + 31, 28, 10); + this.fieldCycles = new GuiTextField(this.fontRendererObj, guiLeft + 73, guiTop + 31, 30, 10); initText(this.fieldCycles); this.fieldCycles.setText(String.valueOf(heater.amountToCool)); - this.fieldDelay = new GuiTextField(this.fontRendererObj, guiLeft + 74, guiTop + 49, 28, 10); + this.fieldDelay = new GuiTextField(this.fontRendererObj, guiLeft + 73, guiTop + 49, 30, 10); initText(this.fieldDelay); this.fieldDelay.setText(String.valueOf(heater.tickDelay)); } @@ -52,7 +52,7 @@ public class GUIHeaterHeatex extends GuiInfoContainer { field.setTextColor(0x00ff00); field.setDisabledTextColour(0x00ff00); field.setEnableBackgroundDrawing(false); - field.setMaxStringLength(4); + field.setMaxStringLength(5); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIICF.java b/src/main/java/com/hbm/inventory/gui/GUIICF.java index 30904fc21..4569fed1d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIICF.java +++ b/src/main/java/com/hbm/inventory/gui/GUIICF.java @@ -33,6 +33,7 @@ public class GUIICF extends GuiInfoContainer { icf.tanks[2].renderTankInfo(this, x, y, guiLeft + 224, guiTop + 18, 16, 70); this.drawCustomInfoStat(x, y, guiLeft + 8, guiTop + 18, 16, 70, x, y, icf.maxLaser <= 0 ? "OFFLINE" : (BobMathUtil.getShortNumber(icf.laser) + "TU - " + (icf.laser * 1000 / icf.maxLaser) / 10D + "%")); + this.drawCustomInfoStat(x, y, guiLeft + 187, guiTop + 89, 18, 18, x, y, BobMathUtil.getShortNumber(icf.heat) + " / " + BobMathUtil.getShortNumber(icf.maxHeat) + "TU"); } @Override @@ -53,7 +54,7 @@ public class GUIICF extends GuiInfoContainer { drawTexturedModalRect(guiLeft + 8, guiTop + 88 - p, 212, 192 - p, 16, p); } - GaugeUtil.drawSmoothGauge(guiLeft + 196, guiTop + 98, this.zLevel, 0D, 5, 2, 1, 0xFF00AF); + GaugeUtil.drawSmoothGauge(guiLeft + 196, guiTop + 98, this.zLevel, (double) icf.heat / (double) icf.maxHeat, 5, 2, 1, 0xFF00AF); icf.tanks[0].renderTank(guiLeft + 44, guiTop + 88, this.zLevel, 16, 70); icf.tanks[1].renderTank(guiLeft + 188, guiTop + 88, this.zLevel, 16, 70); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 2715971de..ce398a5a8 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3841,8 +3841,8 @@ public class ModItems { watz_pellet_depleted = new ItemWatzPellet().setUnlocalizedName("watz_pellet_depleted").setTextureName(RefStrings.MODID + ":watz_pellet"); icf_pellet_empty = new Item().setUnlocalizedName("icf_pellet_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet_empty"); - icf_pellet = new Item().setUnlocalizedName("icf_pellet").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet"); - icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet"); + icf_pellet = new ItemICFPellet().setUnlocalizedName("icf_pellet").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet"); + icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":icf_pellet"); trinitite = new ItemNuclearWaste().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); nuclear_waste_long = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); diff --git a/src/main/java/com/hbm/items/machine/ItemICFPellet.java b/src/main/java/com/hbm/items/machine/ItemICFPellet.java new file mode 100644 index 000000000..d075af59d --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemICFPellet.java @@ -0,0 +1,74 @@ +package com.hbm.items.machine; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.IIcon; + +public class ItemICFPellet extends Item { + + protected IIcon iconBG; + + public ItemICFPellet() { + this.setMaxStackSize(1); + } + + public static long getMaxDepletion(ItemStack stack) { + if(!stack.hasTagCompound()) return 10_000_000_000L; + //TODO: type-dependent + return 50_000_000_000L; + } + + public static long getDepletion(ItemStack stack) { + if(!stack.hasTagCompound()) return 0L; + return stack.stackTagCompound.getLong("depletion"); + } + + public static long react(ItemStack stack, long heat) { + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + //TODO: type-dependent + stack.stackTagCompound.setLong("depletion", stack.stackTagCompound.getLong("depletion") + heat); + return heat * 2; + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return getDurabilityForDisplay(stack) > 0D; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return (double) getDepletion(stack) / (double) getMaxDepletion(stack); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + super.registerIcons(reg); + this.iconBG = reg.registerIcon(RefStrings.MODID + ":icf_pellet_bg"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + return pass == 1 ? super.getIconFromDamageForRenderPass(meta, pass) : this.iconBG; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + if(pass == 0) return 0x4040ff; + return 0xffffff; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java index e1dffc2b1..73f01dbce 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java @@ -23,6 +23,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -227,7 +228,7 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe @Override public void receiveControl(NBTTagCompound data) { - if(data.hasKey("toCool")) this.amountToCool = Math.max(data.getInteger("toCool"), 1); + if(data.hasKey("toCool")) this.amountToCool = MathHelper.clamp_int(data.getInteger("toCool"), 1, tanks[0].getMaxFill()); if(data.hasKey("delay")) this.tickDelay = Math.max(data.getInteger("delay"), 1); this.markChanged(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java index e946b7d0a..7d8a66dfd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -3,9 +3,16 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.container.ContainerICF; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.inventory.gui.GUIICF; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemICFPellet; +import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; @@ -15,22 +22,26 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider, IFluidStandardTransceiver { public long laser; public long maxLaser; + public long heat; + public static final long maxHeat = 1_000_000_000_000L; public FluidTank[] tanks; public TileEntityICF() { super(12); this.tanks = new FluidTank[3]; - this.tanks[0] = new FluidTank(Fluids.COOLANT, 256_000); - this.tanks[1] = new FluidTank(Fluids.COOLANT_HOT, 256_000); - this.tanks[2] = new FluidTank(Fluids.STELLAR_FLUX, 16_000); + this.tanks[0] = new FluidTank(Fluids.SODIUM, 512_000); + this.tanks[1] = new FluidTank(Fluids.SODIUM_HOT, 512_000); + this.tanks[2] = new FluidTank(Fluids.STELLAR_FLUX, 24_000); } @Override @@ -43,18 +54,98 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider if(!worldObj.isRemote) { - for(int i = 0; i < 3; i++) tanks[i].setFill(tanks[i].getMaxFill()); + tanks[0].setType(11, slots); + + for(DirPos pos : getConPos()) { + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + this.heat += this.laser * 0.25D; + boolean markDirty = false; + + //eject depleted pellet + if(slots[5] != null && slots[5].getItem() == ModItems.icf_pellet_depleted) { + for(int i = 6; i < 11; i++) { + if(slots[i] == null) { + slots[i] = slots[5].copy(); + slots[5] = null; + markDirty = true; + break; + } + } + } + + //insert fresh pellet + if(slots[5] == null) { + for(int i = 0; i < 5; i++) { + if(slots[i] != null && slots[i].getItem() == ModItems.icf_pellet) { + slots[5] = slots[i].copy(); + slots[i] = null; + markDirty = true; + break; + } + } + } + + if(slots[5] != null && slots[5].getItem() == ModItems.icf_pellet) { + this.heat += ItemICFPellet.react(slots[5], this.laser); + if(ItemICFPellet.getDepletion(slots[5]) >= ItemICFPellet.getMaxDepletion(slots[5])) { + slots[5] = new ItemStack(ModItems.icf_pellet_depleted); + markDirty = true; + } + + tanks[2].setFill(tanks[2].getFill() + (int) Math.ceil(this.heat * 10D / this.maxHeat)); + if(tanks[2].getFill() > tanks[2].getMaxFill()) tanks[2].setFill(tanks[2].getMaxFill()); + } + + if(tanks[0].getTankType().hasTrait(FT_Heatable.class)) { + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + HeatingStep step = trait.getFirstStep(); + tanks[1].setTankType(step.typeProduced); + + int coolingCycles = tanks[0].getFill() / step.amountReq; + int heatingCycles = (tanks[1].getMaxFill() - tanks[1].getFill()) / step.amountProduced; + int heatCycles = (int) (this.heat / 4 / step.heatReq * trait.getEfficiency(HeatingType.ICF)); //25% cooling per tick + int cycles = Math.min(coolingCycles, Math.min(heatingCycles, heatCycles)); + + tanks[0].setFill(tanks[0].getFill() - step.amountReq * cycles); + tanks[1].setFill(tanks[1].getFill() + step.amountProduced * cycles); + this.heat -= step.heatReq * cycles; + } + + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + this.heat *= 0.999D; + if(this.heat > this.maxHeat) this.heat = this.maxHeat; + if(markDirty) this.markDirty(); this.networkPackNT(150); this.laser = 0; this.maxLaser = 0; } } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord, yCoord + 6, zCoord, Library.POS_Y), + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord + dir.offsetX * 3 + rot.offsetX * 6, yCoord + 3, zCoord + dir.offsetZ * 3 + rot.offsetZ * 6, dir), + new DirPos(xCoord + dir.offsetX * 3 - rot.offsetX * 6, yCoord + 3, zCoord + dir.offsetZ * 3 - rot.offsetZ * 6, dir), + new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX * 6, yCoord + 3, zCoord - dir.offsetZ * 3 + rot.offsetZ * 6, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 3 - rot.offsetX * 6, yCoord + 3, zCoord - dir.offsetZ * 3 - rot.offsetZ * 6, dir.getOpposite()) + }; + } @Override public void serialize(ByteBuf buf) { super.serialize(buf); buf.writeLong(laser); buf.writeLong(maxLaser); + buf.writeLong(heat); for(int i = 0; i < 3; i++) tanks[i].serialize(buf); } @@ -62,12 +153,13 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider super.deserialize(buf); this.laser = buf.readLong(); this.maxLaser = buf.readLong(); + this.heat = buf.readLong(); for(int i = 0; i < 3; i++) tanks[i].deserialize(buf); } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { - return slot < 5; + return slot < 5 && stack.getItem() == ModItems.icf_pellet; } @Override @@ -81,6 +173,22 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider public int[] getAccessibleSlotsFromSide(int side) { return io; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + for(int i = 0; i < 3; i++) tanks[i].readFromNBT(nbt, "t" + i); + + this.heat = nbt.getLong("heat"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + for(int i = 0; i < 3; i++) tanks[i].writeToNBT(nbt, "t" + i); + + nbt.setLong("heat", heat); + } @Override public boolean isUseableByPlayer(EntityPlayer player) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java index 8f3354591..a6dae446b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java @@ -220,7 +220,7 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE @Override public long getMaxPower() { - return (long) (Math.sqrt(capacitorCount) * 5_000_000 + Math.sqrt(Math.min(turbochargerCount, capacitorCount)) * 10_000_000); + return (long) (Math.sqrt(capacitorCount) * 2_500_000 + Math.sqrt(Math.min(turbochargerCount, capacitorCount)) * 5_000_000); } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java index 3535fb9af..9a6dc8f21 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.fluid.trait.FT_Polluting; import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Amat; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous; @@ -49,6 +50,10 @@ public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFlu PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); if(tank.getFill() > 0) { + if(tank.getTankType().hasTrait(FT_Amat.class)) { + worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10F, true, true); + return; + } int toSpill = Math.max(tank.getFill() / 2, 1); tank.setFill(tank.getFill() - toSpill); FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, toSpill); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0c131ddb2..6dc83af6e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -362,6 +362,7 @@ container.machineElectricBoiler=Elektrischer Ölwärmer container.machineElectrolyser=Electrolysegerät container.machineFEL=FEL container.machineFunnel=Kombinationstrichter +container.machineICF=ICF container.machineITER=Kernfusionsreaktor container.machineLargeTurbine=Industrielle Dampfturbine container.machineLiquefactor=Verflüssiger @@ -766,6 +767,7 @@ hbmfluid.solvent=Lösungsmittel hbmfluid.sourgas=Saures Gas hbmfluid.spentsteam=Niedrigdruckdampf hbmfluid.steam=Dampf +hbmfluid.stellar_flux=Sternenflux hbmfluid.sulfuric_acid=Schwefelsäure hbmfluid.sunfloweroil=Sonnenblumenkernöl hbmfluid.superhotsteam=Superverdichteter Dampf @@ -2099,6 +2101,9 @@ item.hull_big_steel.name=Große Stahlhülle item.hull_big_titanium.name=Große Titanhülle item.hull_small_aluminium.name=Kleine Aluminiumhülle item.hull_small_steel.name=Kleine Stahlhülle +item.icf_pellet.name=ICF-Brennstoffpellet +item.icf_pellet_depleted.name=Erschöpftes ICF-Brennstoffpellet +item.icf_pellet_empty.name=Leeres ICF-Brennstoffpellet item.igniter.name=Zünder item.industrial_magnet.name=Industriemagnet item.inf_antimatter.name=Unendlicher Antimaterietank @@ -4081,6 +4086,15 @@ tile.heater_oven.desc=Erzeugt Wärme aus Festbrennstoff.$Nimmt von unten Wärme tile.hev_battery.name=Anzugs-Batterie tile.machine_hydrotreater.name=Hydrotreater tile.impact_dirt.name=Versengte Erde +tile.icf.name=Trägheitsfusionsreaktor (ICF) +tile.icf_block.name=ICF-Laser +tile.icf_controller.name=ICF-Lasersteuerung +tile.icf_laser_component.capacitor.name=ICF-Laser-Kondensator +tile.icf_laser_component.casing.name=ICF-Laser-Gehäuse +tile.icf_laser_component.cell.name=ICF-Laser-Zelle +tile.icf_laser_component.emitter.name=ICF-Laser-Blitzröhre +tile.icf_laser_component.port.name=ICF-Laser-Anschluss +tile.icf_laser_component.turbo.name=ICF-Laser-Turbolader tile.iter.name=Kernfusionsreaktor tile.ladder_aluminium.name=Aluminiumleiter tile.ladder_cobalt.name=Kobaltleiter diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9a4884189..50782e5c5 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -755,6 +755,7 @@ container.machineElectricBoiler=Electric Oil Heater container.machineElectrolyser=Electrolysis Machine container.machineFEL=FEL container.machineFunnel=Combinator Funnel +container.machineICF=ICF container.machineITER=Fusion Reactor container.machineLargeTurbine=Industrial Steam Turbine container.machineLiquefactor=Liquefactor @@ -1457,6 +1458,7 @@ hbmfluid.solvent=Solvent hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.steam=Steam +hbmfluid.stellar_flux=Stellar Flux hbmfluid.sulfuric_acid=Sulfuric Acid hbmfluid.sunfloweroil=Sunflower Seed Oil hbmfluid.superhotsteam=Super Dense Steam @@ -2884,6 +2886,9 @@ item.hull_big_titanium.name=Big Titanium Shell item.hull_small_aluminium.name=Small Aluminium Shell item.hull_small_aluminium.desc=Can be inserted into drilled graphite item.hull_small_steel.name=Small Steel Shell +item.icf_pellet.name=ICF Fuel Pellet +item.icf_pellet_depleted.name=Depleted ICF Fuel Pellet +item.icf_pellet_empty.name=Empty ICF Fuel Pellet item.igniter.name=Igniter item.igniter.desc=(Used by right-clicking the Prototype)$It's a green metal handle with a$bright red button and a small lid.$At the bottom, the initials N.E. are$engraved. Whoever N.E. was, he had$a great taste in shades of green. item.industrial_magnet.name=Industrial Magnet @@ -5141,6 +5146,15 @@ tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bo tile.hev_battery.name=Suit Battery tile.machine_hydrotreater.name=Hydrotreater tile.impact_dirt.name=Scorched Dirt +tile.icf.name=Inertial Confinement Fusion Reactor (ICF) +tile.icf_block.name=ICF Laser +tile.icf_controller.name=ICF Laser Controller +tile.icf_laser_component.capacitor.name=ICF Laser Capacitor +tile.icf_laser_component.casing.name=ICF Laser Casing +tile.icf_laser_component.cell.name=ICF Laser Cell +tile.icf_laser_component.emitter.name=ICF Laser Flash Tube +tile.icf_laser_component.port.name=ICF Laser Port +tile.icf_laser_component.turbo.name=ICF Laser Turbocharger tile.iter.name=Fusion Reactor tile.ladder_aluminium.name=Aluminium Ladder tile.ladder_cobalt.name=Cobalt Ladder @@ -5241,6 +5255,7 @@ tile.machine_gascent.name=Gas Centrifuge tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator tile.machine_hephaestus.name=Geothermal Heat Exchanger +tile.machine_icf_press.desc=If only there was something that would tell me how or if this thing works$Something like a changelog or something like that$Alas, I'm too fucking stupid to read something like that anyway tile.machine_industrial_boiler.name=Industrial Boiler tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode tile.machine_industrial_generator.name=Industrial Generator diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png index dc17d2e910e19d6d7efdb90f8b205cc44a4efd02..ecebfffb2647a80ec164d8830f6f15185fd266de 100644 GIT binary patch literal 5738 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 B$H@Qy literal 5311 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

    F| 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 From 7ad017ec8e1351a67432b9ee605c5cd42b34e7ba Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 18 Feb 2024 17:52:42 +0100 Subject: [PATCH 197/376] eeeeeeee macarena! --- changelog | 22 +- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../java/com/hbm/blocks/bomb/LaunchPad.java | 23 + .../com/hbm/blocks/bomb/LaunchPadLarge.java | 24 + .../com/hbm/blocks/generic/BlockFallout.java | 1 + .../com/hbm/config/FalloutConfigJSON.java | 8 +- .../hbm/entity/effect/EntityNukeTorex.java | 2 +- .../entity/missile/EntityMissileBaseNT.java | 20 +- .../entity/missile/EntityMissileDoomsday.java | 21 + .../entity/missile/EntityMissileTier3.java | 15 + .../entity/missile/EntityMissileTier4.java | 21 + .../container/ContainerLaunchPadLarge.java | 57 +- .../hbm/inventory/gui/GUILaunchPadLarge.java | 38 ++ .../inventory/gui/GUIMachineHydrotreater.java | 26 +- .../java/com/hbm/inventory/material/Mats.java | 2 +- .../inventory/recipes/ArcWelderRecipes.java | 24 +- .../inventory/recipes/AssemblerRecipes.java | 17 +- .../recipes/CrystallizerRecipes.java | 22 +- src/main/java/com/hbm/main/ClientProxy.java | 23 +- .../java/com/hbm/main/ResourceManager.java | 2 + .../com/hbm/particle/ParticleRocketFlame.java | 95 +-- .../com/hbm/particle/ParticleSmokePlume.java | 19 +- .../hbm/render/item/ItemRenderLibrary.java | 20 + .../tileentity/RenderLaunchPadLarge.java | 33 +- .../java/com/hbm/tileentity/DoorDecl.java | 60 ++ .../hbm/tileentity/TileEntityDoorGeneric.java | 2 +- .../tileentity/bomb/TileEntityLaunchPad.java | 51 +- .../bomb/TileEntityLaunchPadBase.java | 46 +- .../bomb/TileEntityLaunchPadLarge.java | 42 +- .../TileEntityMachineReactorBreeding.java | 5 - .../machine/TileEntityPWRController.java | 10 +- .../oil/TileEntityMachineHydrotreater.java | 2 + .../turret/TileEntityTurretArty.java | 2 + .../turret/TileEntityTurretHIMARS.java | 2 + src/main/java/com/hbm/wiaj/WorldInAJar.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/models/doors/silo_hatch_large.obj | 576 ++++++++++++++++++ .../models/doors/silo_hatch_large.png | Bin 0 -> 16520 bytes .../models/doors/silo_hatch_large_base.png | Bin 0 -> 2827 bytes .../models/launchpad/erector_atlas.png | Bin 14476 -> 15292 bytes 41 files changed, 1224 insertions(+), 116 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/doors/silo_hatch_large.obj create mode 100644 src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large_base.png diff --git a/changelog b/changelog index be14b503d..c5627dea7 100644 --- a/changelog +++ b/changelog @@ -19,6 +19,17 @@ * Halogen floodlights are made with bromine and cast a light beam 32 blocks long * Lights are on by default and can be toggled with redstone * Tritium lamps have also been retrofitted with longer range lighting, casting beams in all cardinal directions for 8 blocks +* Launch pad + * The standard launch pad is now a 9x9 platform that changes depending on what missile is loaded + * Missiles now have to be fueled like they would need to be on custom missile launchers + * The old launch pad has been renamed to silo launch pad and has kept the same rough shape + * Launch pads can still receive missiles from hoppers, however they now have a loading delay, making missiles no longer spammable from a single launch pad + * Large launch pads have to physically lift and place the rocket onto the pad, while the silo launch pad has a refueling delay + * Custom missiles are not yet usable on the new launch pad, for now they still require the dedicated custom missile launch pads +* Large silo hatch + * Because the new nuclear missile model is too fat, there's now a larger silo hatch + * Has a 7x7 footprint and a 5x5 opening +* Bedrock ores for neodymium and rare earth chunks ## Changed * Deco bocks now drop all of the time, but they drop themselves instead of ingots @@ -74,6 +85,13 @@ * Instead of taking up the chestplate slot, it's now an armor mod worn in the insert slot * The armor no longer gives absorption, instead it adds 25 points to the shield count * The +25 bypasses the shield limit of 100, meaning that with enough shield infusions, the total maximum is now 125 +* The likelihood of uranium ore turning into schrabidium from full-sized nukes is now 10% instead of 1%. Conversion rates for small dirty explosions such as radioactive barrels remain unchanged. +* Fallout layers will no longer affect players in creative mode +* Rare earth chunks are now centrifugable, yielding larger quantities of the elements that are most needed earlier in the game +* Tier 3 missilles no longer need large fuel tanks and thrusters, instead they use two medium fuel tanks and four medium thrusters +* Tier 4s now need three thrusters +* Tier 0 missiles now come pre-fueled with solid fuel as part of their recipe +* Updated the ABM recipe to use the act welder, being made of a tier 0 missile assembly with extra thrusters and loaded with TNT/TATB ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace @@ -91,4 +109,6 @@ * Fixed research reactor OC integration allowing the control rods to be set out of bounds * Fixed fallout falling faster and overlaying if multiple fallout areas intersect * Fixed template folder 3D models rendering with weird shading -* HUD elements like jetpack charge and the shield bar should now still render even if Tinker's Construct replaces the health bar renderer \ No newline at end of file +* HUD elements like jetpack charge and the shield bar should now still render even if Tinker's Construct replaces the health bar renderer +* Fixed players glitching into blocks with larger bounding box when standing on top of them and relogging +* Fixed a rare crash caused by doors on chunk borders diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 21b10b095..8bd04a839 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -608,6 +608,7 @@ public class ModBlocks { public static Block fire_door; public static Block transition_seal; public static Block silo_hatch; + public static Block silo_hatch_large; // 1.12.2 Doors public static Block secure_access_door; @@ -2134,6 +2135,7 @@ public class ModBlocks { fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); silo_hatch = new BlockDoorGeneric(Material.iron, DoorDecl.SILO_HATCH).setBlockName("silo_hatch").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + silo_hatch_large = new BlockDoorGeneric(Material.iron, DoorDecl.SILO_HATCH_LARGE).setBlockName("silo_hatch_large").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); secure_access_door = new BlockDoorGeneric(Material.iron, DoorDecl.SECURE_ACCESS_DOOR).setBlockName("secure_access_door").setHardness(20.0F).setResistance(2_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); large_vehicle_door = new BlockDoorGeneric(Material.iron, DoorDecl.LARGE_VEHICLE_DOOR).setBlockName("large_vehicle_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); qe_containment = new BlockDoorGeneric(Material.iron, DoorDecl.QE_CONTAINMENT).setBlockName("qe_containment").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3082,6 +3084,7 @@ public class ModBlocks { GameRegistry.registerBlock(fire_door, fire_door.getUnlocalizedName()); GameRegistry.registerBlock(transition_seal, transition_seal.getUnlocalizedName()); GameRegistry.registerBlock(silo_hatch, silo_hatch.getUnlocalizedName()); + GameRegistry.registerBlock(silo_hatch_large, silo_hatch_large.getUnlocalizedName()); GameRegistry.registerBlock(sliding_blast_door, sliding_blast_door.getUnlocalizedName()); //Doors diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index ac7910c4a..792432630 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -2,23 +2,33 @@ package com.hbm.blocks.bomb; import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IBomb; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.bomb.TileEntityLaunchPad; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class LaunchPad extends BlockDummyable implements IBomb { public LaunchPad(Material mat) { super(mat); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, -0.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, -1.5D, 1.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, 0.5D, -0.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, 0.5D, 1.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5D, 0.5D, -1.5D, 0.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0.5D, -0.5D, 1.5D, 1D, 0.5D)); } @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityLaunchPad(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); return null; } @@ -71,4 +81,17 @@ public class LaunchPad extends BlockDummyable implements IBomb { } super.onNeighborBlockChange( world, x, y, z, blockIn); } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + this.makeExtra(world, x + 1, y, z + 1); + this.makeExtra(world, x + 1, y, z - 1); + this.makeExtra(world, x - 1, y, z + 1); + this.makeExtra(world, x - 1, y, z - 1); + } } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java index da9f9bdec..72e8100a3 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java @@ -2,23 +2,30 @@ package com.hbm.blocks.bomb; import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IBomb; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class LaunchPadLarge extends BlockDummyable implements IBomb { public LaunchPadLarge(Material mat) { super(mat); + this.bounding.add(AxisAlignedBB.getBoundingBox(-4.5D, 0D, -4.5D, 4.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-4.5D, 0D, 0.5D, 4.5D, 1D, 4.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-4.5D, 0.875D, -0.5D, 4.5D, 1D, 0.5D)); } @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityLaunchPadLarge(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); return null; } @@ -71,4 +78,21 @@ public class LaunchPadLarge extends BlockDummyable implements IBomb { } super.onNeighborBlockChange( world, x, y, z, blockIn); } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + this.makeExtra(world, x + 4, y, z + 2); + this.makeExtra(world, x + 4, y, z - 2); + this.makeExtra(world, x - 4, y, z + 2); + this.makeExtra(world, x - 4, y, z - 2); + this.makeExtra(world, x + 2, y, z + 4); + this.makeExtra(world, x - 2, y, z + 4); + this.makeExtra(world, x + 2, y, z - 4); + this.makeExtra(world, x - 2, y, z - 4); + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockFallout.java b/src/main/java/com/hbm/blocks/generic/BlockFallout.java index 0ef093594..9e273006a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFallout.java +++ b/src/main/java/com/hbm/blocks/generic/BlockFallout.java @@ -48,6 +48,7 @@ public class BlockFallout extends Block { public void onEntityWalking(World world, int x, int y, int z, Entity entity) { if(!world.isRemote && entity instanceof EntityLivingBase) { + if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode) return; PotionEffect effect = new PotionEffect(HbmPotion.radiation.id, 10 * 60 * 20, 0); effect.setCurativeItems(new ArrayList()); ((EntityLivingBase) entity).addPotionEffect(effect); diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index e2f67f3bc..4d415a994 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -70,8 +70,8 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry() .mMa(Material.plants) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mMa(Material.vine) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(ModBlocks.waste_leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); - entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); - entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); + entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange - 5D)); + entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange - 5D)); entries.add(new FalloutEntry().mB(Blocks.mossy_cobblestone).prim(new Triplet(Blocks.coal_ore, 0, 1))); entries.add(new FalloutEntry().mB(ModBlocks.ore_nether_uranium).prim(new Triplet(ModBlocks.ore_nether_schrabidium, 0, 1), new Triplet(ModBlocks.ore_nether_uranium_scorched, 0, 99))); @@ -84,8 +84,8 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 3), new Triplet(ModBlocks.ore_sellafield_emerald, m, 2)) .c(0.5) .max(i * 5).sol(true).mB(Blocks.coal_ore)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 1)) .c(0.2) .max(i * 5).sol(true).mB(ModBlocks.ore_lignite)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_emerald, m, 1)) .max(i * 5).sol(true).mB(ModBlocks.ore_beryllium)); - entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 99)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); - entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 99)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_radgem, m, 1)) .max(i * 5).sol(true).mB(Blocks.diamond_ore)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.rock)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.sand)); diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 9951b9410..2995732e3 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -122,7 +122,7 @@ public class EntityNukeTorex extends Entity { for(int i = 0; i < 20; i++) { for(int j = 0; j < 4; j++) { float angle = (float) (Math.PI * 2 * rand.nextDouble()); - Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * (3 + rand.nextDouble()), 0, 0); + Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * (5 + rand.nextDouble()), 0, 0); vec.rotateAroundZ((float) (Math.PI / 45 * j)); vec.rotateAroundY(angle); Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight - 5 + j * s, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 2a2a65b4d..d91efb5db 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -176,17 +176,29 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen } protected void spawnContrail() { + this.spawnContraolWithOffset(0, 0, 0); + } + + protected void spawnContraolWithOffset(double offsetX, double offsetY, double offsetZ) { Vec3 vec = Vec3.createVectorHelper(this.lastTickPosX - this.posX, this.lastTickPosY - this.posY, this.lastTickPosZ - this.posZ); double len = vec.lengthVector(); vec = vec.normalize(); + Vec3 thrust = Vec3.createVectorHelper(0, 1, 0); + thrust.rotateAroundZ(this.rotationPitch * (float) Math.PI / 180F); + thrust.rotateAroundY((this.rotationYaw + 90) * (float) Math.PI / 180F); + for(int i = 0; i < Math.max(Math.min(len, 10), 1); i++) { - int j = i - 1; + double j = i - len; NBTTagCompound data = new NBTTagCompound(); - data.setDouble("posX", posX - vec.xCoord * j); - data.setDouble("posY", posY - vec.yCoord * j); - data.setDouble("posZ", posZ - vec.zCoord * j); + data.setDouble("posX", posX - vec.xCoord * j + offsetX); + data.setDouble("posY", posY - vec.yCoord * j + offsetY); + data.setDouble("posZ", posZ - vec.zCoord * j + offsetZ); data.setString("type", "missileContrail"); data.setFloat("scale", this.getContrailScale()); + data.setDouble("moX", -thrust.xCoord); + data.setDouble("moY", -thrust.yCoord); + data.setDouble("moZ", -thrust.zCoord); + data.setInteger("maxAge", 100 + rand.nextInt(40)); MainRegistry.proxy.effectNT(data); } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java index 33a9da83a..06c55969f 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java @@ -8,6 +8,7 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.items.ModItems; import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntityMissileDoomsday extends EntityMissileBaseNT { @@ -26,6 +27,26 @@ public class EntityMissileDoomsday extends EntityMissileBaseNT { EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); } + @Override + protected void spawnContrail() { + + byte rot = this.dataWatcher.getWatchableObjectByte(3); + + Vec3 thrust = Vec3.createVectorHelper(0, 0, 1); + switch(rot) { + case 2: thrust.rotateAroundY((float) -Math.PI / 2F); break; + case 4: thrust.rotateAroundY((float) -Math.PI); break; + case 3: thrust.rotateAroundY((float) -Math.PI / 2F * 3F); break; + } + thrust.rotateAroundY((this.rotationYaw + 90) * (float) Math.PI / 180F); + thrust.rotateAroundX(this.rotationPitch * (float) Math.PI / 180F); + thrust.rotateAroundY(-(this.rotationYaw + 90) * (float) Math.PI / 180F); + + this.spawnContraolWithOffset(thrust.xCoord, thrust.yCoord, thrust.zCoord); + this.spawnContraolWithOffset(0, 0, 0); + this.spawnContraolWithOffset(-thrust.xCoord, -thrust.zCoord, -thrust.zCoord); + } + @Override public List getDebris() { return null; } @Override public ItemStack getDebrisRareDrop() { return null; } @Override public String getUnlocalizedName() { return "radar.target.doomsday"; } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java index fa24a3b32..2cb23dc07 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -11,6 +11,7 @@ import com.hbm.items.ModItems; import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public abstract class EntityMissileTier3 extends EntityMissileBaseNT { @@ -39,6 +40,20 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { public int getBlipLevel() { return IRadarDetectableNT.TIER3; } + + @Override + protected void spawnContrail() { + + Vec3 thrust = Vec3.createVectorHelper(0, 0, 0.5); + thrust.rotateAroundY((this.rotationYaw + 90) * (float) Math.PI / 180F); + thrust.rotateAroundX(this.rotationPitch * (float) Math.PI / 180F); + thrust.rotateAroundY(-(this.rotationYaw + 90) * (float) Math.PI / 180F); + + this.spawnContraolWithOffset(thrust.xCoord, thrust.yCoord, thrust.zCoord); + this.spawnContraolWithOffset(-thrust.zCoord, thrust.yCoord, thrust.xCoord); + this.spawnContraolWithOffset(-thrust.xCoord, -thrust.zCoord, -thrust.zCoord); + this.spawnContraolWithOffset(thrust.zCoord, -thrust.zCoord, -thrust.xCoord); + } public static class EntityMissileBurst extends EntityMissileTier3 { public EntityMissileBurst(World world) { super(world); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java index a0d211177..5e9f8472e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -12,6 +12,7 @@ import com.hbm.items.ModItems; import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public abstract class EntityMissileTier4 extends EntityMissileBaseNT { @@ -39,6 +40,26 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { public int getBlipLevel() { return IRadarDetectableNT.TIER4; } + + @Override + protected void spawnContrail() { + + byte rot = this.dataWatcher.getWatchableObjectByte(3); + + Vec3 thrust = Vec3.createVectorHelper(0, 0, 1); + switch(rot) { + case 2: thrust.rotateAroundY((float) -Math.PI / 2F); break; + case 4: thrust.rotateAroundY((float) -Math.PI); break; + case 3: thrust.rotateAroundY((float) -Math.PI / 2F * 3F); break; + } + thrust.rotateAroundY((this.rotationYaw + 90) * (float) Math.PI / 180F); + thrust.rotateAroundX(this.rotationPitch * (float) Math.PI / 180F); + thrust.rotateAroundY(-(this.rotationYaw + 90) * (float) Math.PI / 180F); + + this.spawnContraolWithOffset(thrust.xCoord, thrust.yCoord, thrust.zCoord); + this.spawnContraolWithOffset(0, 0, 0); + this.spawnContraolWithOffset(-thrust.xCoord, -thrust.zCoord, -thrust.zCoord); + } public static class EntityMissileNuclear extends EntityMissileTier4 { public EntityMissileNuclear(World world) { super(world); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java index 37bc65623..b319759f1 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java @@ -1,8 +1,12 @@ package com.hbm.inventory.container; +import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; +import api.hbm.energy.IBatteryItem; +import api.hbm.item.IDesignatorItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -42,10 +46,59 @@ public class ContainerLaunchPadLarge extends Container { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 212)); } } - + @Override public ItemStack transferStackInSlot(EntityPlayer player, int par2) { - return null; //TODO + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 6) { + if(!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 2, 3, false)) { + return null; + } + } else if(launchpad.isMissileValid(var3)) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() == ModItems.fluid_barrel_infinite) { + if(!this.mergeItemStack(var5, 3, 4, false)) if(!this.mergeItemStack(var5, 5, 6, false)) { + return null; + } + } else if(FluidContainerRegistry.getFluidContent(var3, launchpad.tanks[0].getTankType()) > 0) { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } else if(FluidContainerRegistry.getFluidContent(var3, launchpad.tanks[1].getTankType()) > 0) { + if(!this.mergeItemStack(var5, 5, 6, false)) { + return null; + } + } else if(var3.getItem() instanceof IDesignatorItem) { + if(!this.mergeItemStack(var5, 1, 2, false)) { + return null; + } + } else { + return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java index 713ff71d7..ebcbe6365 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; +import java.util.List; import java.util.function.Consumer; import org.lwjgl.opengl.GL11; @@ -12,12 +14,14 @@ import com.hbm.items.weapon.ItemMissile; import com.hbm.lib.RefStrings; import com.hbm.render.item.ItemRenderMissileGeneric; import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class GUILaunchPadLarge extends GuiInfoContainer { @@ -40,6 +44,17 @@ public class GUILaunchPadLarge extends GuiInfoContainer { this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 88 - 52, 16, 52, launchpad.power, launchpad.maxPower); launchpad.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 88 - 52, 16, 52); launchpad.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 88 - 52, 16, 52); + + if(this.mc.thePlayer.inventory.getItemStack() == null && this.isMouseOverSlot(this.inventorySlots.getSlot(1), mouseX, mouseY) && !this.inventorySlots.getSlot(1).getHasStack()) { + ItemStack[] list = new ItemStack[] { new ItemStack(ModItems.designator), new ItemStack(ModItems.designator_range), new ItemStack(ModItems.designator_manual) }; + List lines = new ArrayList(); + ItemStack selected = list[(int) ((System.currentTimeMillis() % (1000 * list.length)) / 1000)]; + selected.stackSize = 0; + lines.add(list); + + lines.add(new Object[] {I18nUtil.resolveKey(selected.getDisplayName())}); + this.drawStackText(lines, mouseX, mouseY, this.fontRendererObj); + } } @Override @@ -109,5 +124,28 @@ public class GUILaunchPadLarge extends GuiInfoContainer { GL11.glPopMatrix(); } } + + GL11.glPushMatrix(); + RenderHelper.disableStandardItemLighting(); + GL11.glTranslated(guiLeft + 34, guiTop + 107, 0); + String text = ""; + int color = 0xffffff; + if(launchpad.state == launchpad.STATE_MISSING) { + GL11.glScaled(0.5, 0.5, 1); + text = "Not ready"; + color = 0xff0000; + } + if(launchpad.state == launchpad.STATE_LOADING) { + GL11.glScaled(0.6, 0.6, 1); + text = "Loading..."; + color = 0xff8000; + } + if(launchpad.state == launchpad.STATE_READY) { + GL11.glScaled(0.8, 0.8, 1); + text = "Ready"; + color = 0x00ff000; + } + this.fontRendererObj.drawString(text, -this.fontRendererObj.getStringWidth(text) / 2, -this.fontRendererObj.FONT_HEIGHT / 2, color); + GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java b/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java index 2704a5ce4..f0fd2cf09 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java @@ -19,11 +19,11 @@ import net.minecraft.util.ResourceLocation; public class GUIMachineHydrotreater extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_hydrotreater.png"); - private TileEntityMachineHydrotreater refinery; + private TileEntityMachineHydrotreater hydrotreater; public GUIMachineHydrotreater(InventoryPlayer invPlayer, TileEntityMachineHydrotreater tedf) { super(new ContainerMachineHydrotreater(invPlayer, tedf)); - refinery = tedf; + hydrotreater = tedf; this.xSize = 176; this.ySize = 238; @@ -33,11 +33,11 @@ public class GUIMachineHydrotreater extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - refinery.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 70 - 52, 16, 52); - refinery.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 70 - 52, 16, 52); - refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 70 - 52, 16, 52); - refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 70 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 70 - 52, 16, 52, refinery.power, refinery.maxPower); + hydrotreater.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 70 - 52, 16, 52); + hydrotreater.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 70 - 52, 16, 52); + hydrotreater.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 70 - 52, 16, 52); + hydrotreater.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 70 - 52, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 70 - 52, 16, 52, hydrotreater.power, hydrotreater.maxPower); if(this.mc.thePlayer.inventory.getItemStack() == null && this.isMouseOverSlot(this.inventorySlots.getSlot(10), mouseX, mouseY) && !this.inventorySlots.getSlot(10).getHasStack()) { List lines = new ArrayList(); @@ -50,7 +50,7 @@ public class GUIMachineHydrotreater extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.refinery.hasCustomInventoryName() ? this.refinery.getInventoryName() : I18n.format(this.refinery.getInventoryName()); + String name = this.hydrotreater.hasCustomInventoryName() ? this.hydrotreater.getInventoryName() : I18n.format(this.hydrotreater.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 5, 0xffffff); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); @@ -62,12 +62,12 @@ public class GUIMachineHydrotreater extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int j = (int) (refinery.power * 54 / refinery.maxPower); + int j = (int) (hydrotreater.power * 54 / hydrotreater.maxPower); drawTexturedModalRect(guiLeft + 17, guiTop + 70 - j, 176, 52 - j, 16, j); - refinery.tanks[0].renderTank(guiLeft + 35, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[1].renderTank(guiLeft + 53, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[2].renderTank(guiLeft + 125, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[3].renderTank(guiLeft + 143, guiTop + 70, this.zLevel, 16, 52); + hydrotreater.tanks[0].renderTank(guiLeft + 35, guiTop + 70, this.zLevel, 16, 52); + hydrotreater.tanks[1].renderTank(guiLeft + 53, guiTop + 70, this.zLevel, 16, 52); + hydrotreater.tanks[2].renderTank(guiLeft + 125, guiTop + 70, this.zLevel, 16, 52); + hydrotreater.tanks[3].renderTank(guiLeft + 143, guiTop + 70, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 969e6eb4e..170821e43 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -97,7 +97,7 @@ public class Mats { public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT); diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index 0a61eb238..7130850c2 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -69,6 +69,8 @@ public class ArcWelderRecipes extends SerializableRecipe { //mid-game PWR recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_ZIRCONIUM.id), 600, 10_000L, new OreDictStack(ZR.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_ALUMINIUM.id), 300, 10_000L, + new OreDictStack(AL.plateCast(), 2))); //late-game fusion recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TCALLOY.id), 1_200, 1_000_000L, new FluidStack(Fluids.OXYGEN, 1_000), new OreDictStack(TCALLOY.plateCast(), 2))); @@ -83,11 +85,11 @@ public class ArcWelderRecipes extends SerializableRecipe { //Missile Parts recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_small), 60, 1_000L, new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(CU.plate(), 4))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_medium), 100, 2_000L, new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 1), new OreDictStack(GRAPHITE.ingot(), 8))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_large), 200, 5_000L, new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.motor, 2), new OreDictStack(OreDictManager.getReflector(), 16))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_large), 200, 5_000L, new OreDictStack(DURA.ingot(), 10), new ComparableStack(ModItems.motor, 1), new OreDictStack(OreDictManager.getReflector(), 12))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_small), 60, 1_000L, new OreDictStack(Fluids.ETHANOL.getDict(1_000), 6), new OreDictStack(AL.plate(), 6), new OreDictStack(STEEL.plate(), 2))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_medium), 100, 2_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 8), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 12), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plateCast(), 3))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_small), 60, 1_000L, new OreDictStack(AL.plate(), 6), new OreDictStack(CU.plate(), 4), new ComparableStack(ModBlocks.steel_scaffold, 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_medium), 100, 2_000L, new OreDictStack(AL.plateCast(), 4), new OreDictStack(TI.plate(), 8), new ComparableStack(ModBlocks.steel_scaffold, 12))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(AL.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModBlocks.steel_scaffold, 16))); //Missiles recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_anti_ballistic), 100, 5_000L, new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.missile_assembly), new ComparableStack(ModItems.thruster_small, 4))); @@ -103,14 +105,14 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_buster_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_buster_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_emp_strong), 200, 10_000L, new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_burst), 300, 25_000L, new ComparableStack(ModItems.warhead_generic_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_inferno), 300, 25_000L, new ComparableStack(ModItems.warhead_incendiary_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_rain), 300, 25_000L, new ComparableStack(ModItems.warhead_cluster_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_drill), 300, 25_000L, new ComparableStack(ModItems.warhead_buster_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_burst), 300, 25_000L, new ComparableStack(ModItems.warhead_generic_large), new ComparableStack(ModItems.fuel_tank_medium, 2), new ComparableStack(ModItems.thruster_medium, 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_inferno), 300, 25_000L, new ComparableStack(ModItems.warhead_incendiary_large), new ComparableStack(ModItems.fuel_tank_medium, 2), new ComparableStack(ModItems.thruster_medium, 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_rain), 300, 25_000L, new ComparableStack(ModItems.warhead_cluster_large), new ComparableStack(ModItems.fuel_tank_medium, 2), new ComparableStack(ModItems.thruster_medium, 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_drill), 300, 25_000L, new ComparableStack(ModItems.warhead_buster_large), new ComparableStack(ModItems.fuel_tank_medium, 2), new ComparableStack(ModItems.thruster_medium, 4))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear), 600, 50_000L, new ComparableStack(ModItems.warhead_nuclear), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear_cluster), 600, 50_000L, new ComparableStack(ModItems.warhead_mirv), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_volcano), 600, 50_000L, new ComparableStack(ModItems.warhead_volcano), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear), 600, 50_000L, new ComparableStack(ModItems.warhead_nuclear), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear_cluster), 600, 50_000L, new ComparableStack(ModItems.warhead_mirv), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_volcano), 600, 50_000L, new ComparableStack(ModItems.warhead_volcano), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); } public static HashMap getRecipes() { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 51880f151..ef9a74ed4 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -314,7 +314,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.wire_gold, 6), },250); makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(REDSTONE.dust(), 1), new ComparableStack(Items.glowstone_dust, 1), },50); @@ -1027,6 +1026,21 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.glass_quartz, 16) }, 200); + + makeRecipe(new ComparableStack(ModBlocks.launch_pad_large, 1), new AStack[] { + new OreDictStack(STEEL.plateCast(), 6), + new OreDictStack(ANY_CONCRETE.any(), 64), + new OreDictStack(ANY_PLASTIC.ingot(), 16), + new ComparableStack(ModBlocks.steel_scaffold, 24), + new ComparableStack(ModItems.circuit_red_copper, 3) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] { + new OreDictStack(STEEL.plateWelded(), 8), + new OreDictStack(ANY_CONCRETE.any(), 8), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new ComparableStack(ModItems.circuit_gold, 1) + }, 400); + makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { new OreDictStack(NB.ingot(), 4), @@ -1226,6 +1240,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 4000); makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 4)}, 200); + makeRecipe(new ComparableStack(ModBlocks.silo_hatch_large, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 8)}, 200); if(Loader.isModLoaded("Mekanism")) { diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 8f33e422e..05282e9bd 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -47,8 +47,9 @@ public class CrystallizerRecipes extends SerializableRecipe { @Override public void registerDefaults() { - int baseTime = 600; - int utilityTime = 100; + final int baseTime = 600; + final int utilityTime = 100; + final int mixingTime = 20; FluidStack sulfur = new FluidStack(Fluids.SULFURIC_ACID, 500); registerRecipe(COAL.ore(), new CrystallizerRecipe(ModItems.crystal_coal, baseTime)); @@ -93,8 +94,8 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(Items.rotten_flesh), new CrystallizerRecipe(Items.leather, utilityTime)); registerRecipe(new ComparableStack(ModItems.coal_infernal), new CrystallizerRecipe(ModItems.solid_fuel, utilityTime)); registerRecipe(new ComparableStack(ModBlocks.stone_gneiss), new CrystallizerRecipe(ModItems.powder_lithium, utilityTime)); - registerRecipe(new ComparableStack(Items.dye, 1, 15), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 4), 20), new FluidStack(Fluids.SULFURIC_ACID, 250)); - registerRecipe(new ComparableStack(Items.bone), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 16), 20), new FluidStack(Fluids.SULFURIC_ACID, 1_000)); + registerRecipe(new ComparableStack(Items.dye, 1, 15), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 4), mixingTime), new FluidStack(Fluids.SULFURIC_ACID, 250)); + registerRecipe(new ComparableStack(Items.bone), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 16), mixingTime), new FluidStack(Fluids.SULFURIC_ACID, 1_000)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CrystallizerRecipe(new ItemStack(ModItems.powder_cadmium), 100).setReq(10), new FluidStack(Fluids.RADIOSOLVENT, 250)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE)), new CrystallizerRecipe(new ItemStack(ModItems.ingot_cft), baseTime).setReq(4), new FluidStack(Fluids.XYLENE, 1_000)); @@ -105,6 +106,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModItems.powder_desh_ready), new CrystallizerRecipe(ModItems.ingot_desh, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_meteorite), new CrystallizerRecipe(ModItems.fragment_meteorite, utilityTime)); registerRecipe(CD.dust(), new CrystallizerRecipe(ModItems.ingot_rubber, baseTime), new FluidStack(Fluids.FISHOIL, 250)); + registerRecipe(new ComparableStack(ModItems.powder_sawdust), new CrystallizerRecipe(ModItems.cordite, mixingTime), new FluidStack(Fluids.NITROGLYCERIN, 250)); registerRecipe(new ComparableStack(ModItems.meteorite_sword_treated), new CrystallizerRecipe(ModItems.meteorite_sword_etched, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_impure_osmiridium), new CrystallizerRecipe(ModItems.crystal_osmiridium, baseTime), new FluidStack(Fluids.SCHRABIDIC, 1_000)); @@ -131,12 +133,12 @@ public class CrystallizerRecipes extends SerializableRecipe { FluidStack[] dyes = new FluidStack[] {new FluidStack(Fluids.WOODOIL, 100), new FluidStack(Fluids.FISHOIL, 100)}; for(FluidStack dye : dyes) { - registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), 20), dye); - registerRecipe(TI.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE, 4), 20), dye); - registerRecipe(IRON.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED, 4), 20), dye); - registerRecipe(W.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW, 4), 20), dye); - registerRecipe(CU.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 4), 20), dye); - registerRecipe(CO.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE, 4), 20), dye); + registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), mixingTime), dye); + registerRecipe(TI.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE, 4), mixingTime), dye); + registerRecipe(IRON.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED, 4), mixingTime), dye); + registerRecipe(W.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW, 4), mixingTime), dye); + registerRecipe(CU.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 4), mixingTime), dye); + registerRecipe(CO.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE, 4), mixingTime), dye); } registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 250)); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 40e1cf518..0027bced9 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -934,7 +934,7 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(contrail); } if("exKerosene".equals(type)) { - ParticleContrail contrail = new ParticleContrail(man, world, x, y, z); + ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0F, 0F, 0F, 1F); Minecraft.getMinecraft().effectRenderer.addEffect(contrail); } if("exSolid".equals(type)) { @@ -973,9 +973,26 @@ public class ClientProxy extends ServerProxy { double z = data.getDouble("posZ"); if("missileContrail".equals(type)) { + + if(Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector() > 350) return; + float scale = data.hasKey("scale") ? data.getFloat("scale") : 1F; - ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0, 0, 0, scale); - Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + double mX = data.getDouble("moX"); + double mY = data.getDouble("moY"); + double mZ = data.getDouble("moZ"); + + /*ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0, 0, 0, scale); + contrail.motionX = mX; + contrail.motionY = mY; + contrail.motionZ = mZ; + Minecraft.getMinecraft().effectRenderer.addEffect(contrail);*/ + + ParticleRocketFlame fx = new ParticleRocketFlame(man, world, x, y, z).setScale(scale); + fx.motionX = mX; + fx.motionY = mY; + fx.motionZ = mZ; + if(data.hasKey("maxAge")) fx.setMaxAge(data.getInteger("maxAge")); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); } if("smoke".equals(type)) { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index d6d9c7086..a89f99725 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -351,6 +351,8 @@ public class ResourceManager { public static final ResourceLocation silo_hatch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch.png"); public static WavefrontObjDisplayList silo_hatch = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch.obj"))); + public static final ResourceLocation silo_hatch_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch_large.png"); + public static WavefrontObjDisplayList silo_hatch_large = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch_large.obj"))); //Lights diff --git a/src/main/java/com/hbm/particle/ParticleRocketFlame.java b/src/main/java/com/hbm/particle/ParticleRocketFlame.java index 72981706a..ac60a5bf5 100644 --- a/src/main/java/com/hbm/particle/ParticleRocketFlame.java +++ b/src/main/java/com/hbm/particle/ParticleRocketFlame.java @@ -21,8 +21,20 @@ public class ParticleRocketFlame extends EntityFX { super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); particleIcon = ModEventHandlerClient.particleBase; maxAge = 300 + rand.nextInt(50); + this.particleScale = 1F; + } + + public ParticleRocketFlame setScale(float scale) { + this.particleScale = scale; + return this; + } + + public ParticleRocketFlame setMaxAge(int maxAge) { + this.maxAge = maxAge; + return this; } + @Override public void onUpdate() { this.prevPosX = this.posX; this.prevPosY = this.posY; @@ -30,51 +42,54 @@ public class ParticleRocketFlame extends EntityFX { this.age++; - if (this.age == this.maxAge) { + if(this.age == this.maxAge) { this.setDead(); } - this.motionX *= 0.9099999785423279D; - this.motionY *= 0.9099999785423279D; - this.motionZ *= 0.9099999785423279D; + this.motionX *= 0.91D; + this.motionY *= 0.91D; + this.motionZ *= 0.91D; - this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.moveEntity(this.motionX, this.motionY, this.motionZ); } + @Override public int getFXLayer() { - return 1; - } - - public void renderParticle(Tessellator p_70539_1_, float p_70539_2_, float p_70539_3_, float p_70539_4_, float p_70539_5_, float p_70539_6_, float p_70539_7_) { - - Random urandom = new Random(this.getEntityId()); - - for(int i = 0; i < 10; i++) { - - float add = urandom.nextFloat() * 0.3F; - float dark = 1 - Math.min(((float)(age) / (float)(maxAge * 0.25F)), 1); - - this.particleRed = 1 * dark + add; - this.particleGreen = 0.6F * dark + add; - this.particleBlue = 0 + add; - - this.particleAlpha = (float) Math.pow(1 - Math.min(((float)(age) / (float)(maxAge)), 1), 0.5); - - p_70539_1_.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha * 0.75F); - p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); - p_70539_1_.setBrightness(240); - - float spread = (float) Math.pow(((float)(age) / (float)maxAge) * 4F, 1.5) + 1F; - - float scale = urandom.nextFloat() * 0.5F + 0.1F + ((float)(age) / (float)maxAge) * 2F; - float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double)p_70539_2_ - interpPosX) + (urandom.nextGaussian() - 1D) * 0.2F * spread); - float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double)p_70539_2_ - interpPosY) + (urandom.nextGaussian() - 1D) * 0.5F * spread); - float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double)p_70539_2_ - interpPosZ) + (urandom.nextGaussian() - 1D) * 0.2F * spread); - - p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale - p_70539_7_ * scale), particleIcon.getMaxU(), particleIcon.getMaxV()); - p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale + p_70539_7_ * scale), particleIcon.getMaxU(), particleIcon.getMinV()); - p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale + p_70539_7_ * scale), particleIcon.getMinU(), particleIcon.getMinV()); - p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale - p_70539_7_ * scale), particleIcon.getMinU(), particleIcon.getMaxV()); - } - } + return 1; + } + + @Override + public void renderParticle(Tessellator p_70539_1_, float interp, float sX, float sY, float sZ, float dX, float dZ) { + + Random urandom = new Random(this.getEntityId()); + + for(int i = 0; i < 10; i++) { + + float add = urandom.nextFloat() * 0.3F; + float dark = 1 - Math.min(((float) (age) / (float) (maxAge * 0.25F)), 1); + + this.particleRed = 1 * dark + add; + this.particleGreen = 0.6F * dark + add; + this.particleBlue = 0 + add; + + this.particleAlpha = (float) Math.pow(1 - Math.min(((float) (age) / (float) (maxAge)), 1), 0.5); + + p_70539_1_.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha * 0.75F); + p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); + p_70539_1_.setBrightness(240); + + float spread = (float) Math.pow(((float) (age) / (float) maxAge) * 4F, 1.5) + 1F; + spread *= this.particleScale; + + float scale = (urandom.nextFloat() * 0.5F + 0.1F + ((float) (age) / (float) maxAge) * 2F) * particleScale; + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX) + (urandom.nextGaussian() - 1D) * 0.2F * spread); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY) + (urandom.nextGaussian() - 1D) * 0.5F * spread); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ) + (urandom.nextGaussian() - 1D) * 0.2F * spread); + + p_70539_1_.addVertexWithUV((double) (pX - sX * scale - dX * scale), (double) (pY - sY * scale), (double) (pZ - sZ * scale - dZ * scale), particleIcon.getMaxU(), particleIcon.getMaxV()); + p_70539_1_.addVertexWithUV((double) (pX - sX * scale + dX * scale), (double) (pY + sY * scale), (double) (pZ - sZ * scale + dZ * scale), particleIcon.getMaxU(), particleIcon.getMinV()); + p_70539_1_.addVertexWithUV((double) (pX + sX * scale + dX * scale), (double) (pY + sY * scale), (double) (pZ + sZ * scale + dZ * scale), particleIcon.getMinU(), particleIcon.getMinV()); + p_70539_1_.addVertexWithUV((double) (pX + sX * scale - dX * scale), (double) (pY - sY * scale), (double) (pZ + sZ * scale - dZ * scale), particleIcon.getMinU(), particleIcon.getMaxV()); + } + } } diff --git a/src/main/java/com/hbm/particle/ParticleSmokePlume.java b/src/main/java/com/hbm/particle/ParticleSmokePlume.java index c17b2e6ea..9ccd4d6ee 100644 --- a/src/main/java/com/hbm/particle/ParticleSmokePlume.java +++ b/src/main/java/com/hbm/particle/ParticleSmokePlume.java @@ -30,7 +30,8 @@ public class ParticleSmokePlume extends EntityFX { public ParticleSmokePlume(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_) { super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); theRenderEngine = p_i1213_1_; - maxAge = 100 + rand.nextInt(40); + maxAge = 80 + rand.nextInt(20); + this.particleScale = 0.25F; } public void onUpdate() { @@ -39,6 +40,8 @@ public class ParticleSmokePlume extends EntityFX { this.prevPosZ = this.posZ; particleAlpha = 1 - ((float) age / (float) maxAge); + float prevScale = this.particleScale; + this.particleScale = 0.25F + ((float) age / (float) maxAge) * 2; ++this.age; @@ -48,9 +51,9 @@ public class ParticleSmokePlume extends EntityFX { double bak = Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector(); - this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.moveEntity(this.motionX, this.motionY + (this.particleScale - prevScale), this.motionZ); - if(Math.abs(motionX) < 0.025 && Math.abs(motionZ) < 0.025) { + if(this.isCollidedVertically) { motionY = bak; } @@ -85,16 +88,16 @@ public class ParticleSmokePlume extends EntityFX { p_70539_1_.startDrawingQuads(); - this.particleRed = this.particleGreen = this.particleBlue = urandom.nextFloat() * 0.7F + 0.2F; + this.particleRed = this.particleGreen = this.particleBlue = urandom.nextFloat() * 0.75F + 0.1F; p_70539_1_.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); p_70539_1_.setBrightness(240); - float scale = 0.5F; - float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - dX) + urandom.nextGaussian() * 0.5); - float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - dY) + urandom.nextGaussian() * 0.5); - float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - dZ) + urandom.nextGaussian() * 0.5); + float scale = this.particleScale; + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - dX) + urandom.nextGaussian() * 0.5 * scale); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - dY) + urandom.nextGaussian() * 0.5 * scale); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - dZ) + urandom.nextGaussian() * 0.5 * scale); p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale - p_70539_6_ * scale), (double) (pY - p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale - p_70539_7_ * scale), 1, 1); p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale + p_70539_6_ * scale), (double) (pY + p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale + p_70539_7_ * scale), 1, 0); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index cec57ea6d..83f42ca39 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -743,10 +743,30 @@ public class ItemRenderLibrary { GL11.glTranslated(0, 0.875, -1.875); GL11.glRotated(-120, 1, 0, 0); GL11.glTranslated(0, -0.875, 1.875); + GL11.glTranslated(0, 0.25, 0); ResourceManager.silo_hatch.renderPart("Hatch"); GL11.glShadeModel(GL11.GL_FLAT); } }); + renderers.put(Item.getItemFromBlock(ModBlocks.silo_hatch_large), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(1.5, 1.5, 1.5); + } + public void renderCommon() { + bindTexture(ResourceManager.silo_hatch_large_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glTranslated(1, 0, 0); + GL11.glRotated(90, 0, 1, 0); + ResourceManager.silo_hatch_large.renderPart("Frame"); + GL11.glTranslated(0, 0.875, -2.875); + GL11.glRotated(-120, 1, 0, 0); + GL11.glTranslated(0, -0.875, 2.875); + GL11.glTranslated(0, 0.25, 0); + ResourceManager.silo_hatch_large.renderPart("Hatch"); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); renderers.put(Item.getItemFromBlock(ModBlocks.qe_containment), new ItemRenderBase(){ public void renderInventory() { GL11.glTranslated(0, -3.5, 0); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java index 468ebbaca..4ddd583dd 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java @@ -5,18 +5,23 @@ import java.util.function.Consumer; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.weapon.ItemMissile; import com.hbm.items.weapon.ItemMissile.MissileFormFactor; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import com.hbm.render.item.ItemRenderMissileGeneric; import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderLaunchPadLarge extends TileEntitySpecialRenderer { +public class RenderLaunchPadLarge extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { @@ -97,4 +102,30 @@ public class RenderLaunchPadLarge extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.launch_pad_large); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3.75, 0); + GL11.glScaled(1.625, 1.625, 1.625); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.missile_erector_tex); + ResourceManager.missile_erector.renderPart("Pad"); + bindTexture(ResourceManager.missile_erector_atlas_tex); + ResourceManager.missile_erector.renderPart("Atlas_Pad"); + ResourceManager.missile_erector.renderPart("Atlas_Erector"); + ResourceManager.missile_erector.renderPart("Atlas_Pivot"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } } diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index 584f23d2c..5844fcded 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -922,6 +922,66 @@ public abstract class DoorDecl { }; + public static final DoorDecl SILO_HATCH_LARGE = new DoorDecl() { + + @Override public String getOpenSoundEnd() { return "hbm:door.wgh_big_stop"; }; + @Override public String getOpenSoundLoop() { return "hbm:door.wgh_big_start"; }; + @Override public String getOpenSoundStart() { return null; }; + @Override public String getCloseSoundStart() { return null; }; + @Override public String getCloseSoundEnd() { return "hbm:door.wgh_big_stop"; }; + @Override public float getSoundVolume() { return 2; } + @Override public boolean remoteControllable() { return true; } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("Hatch".equals(partName)) { + set(trans, 0, 0.25F * Library.smoothstep(getNormTime(openTicks, 0, 10), 0, 1), 0); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + if("Hatch".equals(partName)) { + set(orig, 0F, 0.875F, -2.875F); + return; + } + set(orig, 0, 0, 0); + super.getOrigin(partName, orig); + }; + + @Override + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + if("Hatch".equals(partName)) { + set(rot, Library.smoothstep(getNormTime(openTicks, 20, 100), 0, 1) * -240, 0, 0); + return; + } + super.getRotation(partName, openTicks, rot); + }; + + @Override + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return true; + }; + + @Override public int timeToOpen() { return 60; }; + @Override public int[][] getDoorOpenRanges() { return new int[][] { { 2, 0, 1, -3, 3, 0 }, { 1, 0, 2, -5, 3, 0 }, { 0, 0, 2, -5, 3, 0 }, { -1, 0, 2, -5, 3, 0 }, { -2, 0, 1, -3, 3, 0 } }; } + @Override public float getDoorRangeOpenTime(int ticks, int idx) { return getNormTime(ticks, 20, 20); }; + + + @Override public int getBlockOffset() { return 3; } + @Override public int[] getDimensions() { return new int[] { 0, 0, 3, 3, 3, 3 }; } + @Override @SideOnly(Side.CLIENT) public ResourceLocation getTextureForPart(String partName) { return ResourceManager.silo_hatch_large_tex; } + @Override public ResourceLocation getTextureForPart(int skinIndex, String partName) { return ResourceManager.silo_hatch_large_tex; } + @Override @SideOnly(Side.CLIENT) public WavefrontObjDisplayList getModel() { return ResourceManager.silo_hatch_large; } + + }; + public static final DoorDecl LARGE_VEHICLE_DOOR = new DoorDecl() { @Override diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 8f7cdaa8f..a8f856310 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -167,7 +167,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public DoorDecl getDoorType(){ - if(this.doorType == null) + if(this.doorType == null && this.getBlockType() instanceof BlockDoorGeneric) this.doorType = ((BlockDoorGeneric)this.getBlockType()).type; return this.doorType; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 2b7c53dea..a2b9e565c 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -1,16 +1,24 @@ package com.hbm.tileentity.bomb; +import java.util.List; + +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.util.fauxpointtwelve.DirPos; + import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntityLaunchPad extends TileEntityLaunchPadBase implements IEnergyUser, IFluidStandardReceiver { @Override public boolean isReadyForLaunch() { return delay <= 0; } - @Override public double getLaunchOffset() { return 2D; } + @Override public double getLaunchOffset() { return 1D; } public int delay = 0; @@ -24,11 +32,52 @@ public class TileEntityLaunchPad extends TileEntityLaunchPadBase implements IEne if(!this.isMissileValid() || !this.hasFuel()) { this.delay = 100; } + + if(!this.hasFuel() || !this.isMissileValid()) { + this.state = this.STATE_MISSING; + } else { + if(this.delay > 0) { + this.state = this.STATE_LOADING; + } else { + this.state = this.STATE_READY; + } + } + + } else { + + List entities = worldObj.getEntitiesWithinAABB(EntityMissileBaseNT.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); + + if(!entities.isEmpty()) { + for(int i = 0; i < 15; i++) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + if(worldObj.rand.nextBoolean()) dir = dir.getOpposite(); + if(worldObj.rand.nextBoolean()) dir = dir.getRotation(ForgeDirection.UP); + float moX = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetX; + float moZ = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetZ; + + MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] {moX, 0, moZ}); + } + } } super.updateEntity(); } + @Override + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index efe1d593e..6236d950b 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -48,7 +48,9 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.TrackerUtil; import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; @@ -66,6 +68,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { @@ -116,6 +119,11 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl public int redstonePower; public Set activatedBlocks = new HashSet<>(4); + public int state = 0; + public static final int STATE_MISSING = 0; + public static final int STATE_LOADING = 1; + public static final int STATE_READY = 2; + public FluidTank[] tanks; public TileEntityLaunchPadBase() { @@ -129,12 +137,37 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl public String getName() { return "container.launchPad"; } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0 }; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot == 0 && this.isMissileValid(stack); + } + + public abstract DirPos[] getConPos(); @Override public void updateEntity() { if(!worldObj.isRemote) { + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[0].getTankType() != Fluids.NONE) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[1].getTankType() != Fluids.NONE) this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + if(this.redstonePower > 0 && this.prevRedstonePower == 0) { this.launchFromDesignator(); } @@ -161,6 +194,7 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl super.serialize(buf); buf.writeLong(this.power); + buf.writeInt(this.state); tanks[0].serialize(buf); tanks[1].serialize(buf); @@ -178,6 +212,7 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl super.deserialize(buf); this.power = buf.readLong(); + this.state = buf.readInt(); tanks[0].deserialize(buf); tanks[1].deserialize(buf); @@ -248,6 +283,10 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl @Override public long getMaxPower() { return maxPower; } @Override public FluidTank[] getAllTanks() { return this.tanks; } @Override public FluidTank[] getReceivingTanks() { return this.tanks; } + + @Override public boolean canConnect(ForgeDirection dir) { + return dir != ForgeDirection.UP && dir != ForgeDirection.DOWN; + } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -284,7 +323,11 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl /** Requires the missile slot to be non-null and he item to be compatible */ public boolean isMissileValid() { - return slots[0] != null && slots[0].getItem() instanceof ItemMissile; + return slots[0] != null && isMissileValid(slots[0]); + } + + public boolean isMissileValid(ItemStack stack) { + return stack.getItem() instanceof ItemMissile; } public boolean hasFuel() { @@ -329,6 +372,7 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl public void finalizeLaunch(Entity missile) { worldObj.spawnEntityInWorld(missile); + TrackerUtil.setTrackingRange(worldObj, missile, 500); worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); this.power -= 75_000; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index 32cbc093b..934c43dc7 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -1,11 +1,15 @@ package com.hbm.tileentity.bomb; +import java.util.List; + +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.items.weapon.ItemMissile; import com.hbm.items.weapon.ItemMissile.MissileFormFactor; +import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; -import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; @@ -14,8 +18,9 @@ import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { +public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements IEnergyUser, IFluidStandardReceiver, IRadarCommandReceiver { public int formFactor = -1; /** Whether the missile has already been placed on the launchpad. Missile will render statically on the pad if true */ @@ -105,6 +110,8 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements //only extend if the erector isn't up yet and the missile can be loaded if(!erected && readyToLoad) { + this.state = this.STATE_LOADING; + //first, rotate the erector if(erector != 0F) { erector = Math.max(erector - erectorSpeed, 0F); @@ -135,6 +142,9 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements } } } + + if(!this.hasFuel() || !this.isMissileValid()) this.state = this.STATE_MISSING; + if(this.erected && this.canLaunch()) this.state = this.STATE_READY; boolean prevLiftMoving = this.liftMoving; boolean prevErectorMoving = this.erectorMoving; @@ -200,6 +210,20 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements data.setFloat("strafe", 0.05F); for(int i = 0; i < 3; i++) MainRegistry.proxy.effectNT(data); } + + List entities = worldObj.getEntitiesWithinAABB(EntityMissileBaseNT.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); + + if(!entities.isEmpty()) { + for(int i = 0; i < 15; i++) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + if(worldObj.rand.nextBoolean()) dir = dir.getOpposite(); + float moX = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetX; + float moZ = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetZ; + + MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] {moX, 0, moZ}); + } + } } super.updateEntity(); @@ -257,6 +281,20 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements nbt.setInteger("formFactor", formFactor); } + @Override + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 5, yCoord, zCoord - 2, Library.POS_X), + new DirPos(xCoord + 5, yCoord, zCoord + 2, Library.POS_X), + new DirPos(xCoord - 5, yCoord, zCoord - 2, Library.NEG_X), + new DirPos(xCoord - 5, yCoord, zCoord + 2, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord + 5, Library.POS_Z), + new DirPos(xCoord + 2, yCoord, zCoord + 5, Library.POS_Z), + new DirPos(xCoord - 2, yCoord, zCoord - 5, Library.NEG_Z), + new DirPos(xCoord + 2, yCoord, zCoord - 5, Library.NEG_Z) + }; + } + AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java index b565d8358..4c42a1ce5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java @@ -84,22 +84,17 @@ public class TileEntityMachineReactorBreeding extends TileEntityMachineBase impl for(byte d = 2; d < 6; d++) { ForgeDirection dir = ForgeDirection.getOrientation(d); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); if(b == ModBlocks.reactor_research) { int[] pos = ((ReactorResearch) ModBlocks.reactor_research).findCore(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); if(pos != null) { - TileEntity tile = worldObj.getTileEntity(pos[0], pos[1], pos[2]); if(tile instanceof TileEntityReactorResearch) { - TileEntityReactorResearch reactor = (TileEntityReactorResearch) tile; - this.flux += reactor.totalFlux; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 28adb277d..d5eae7f2e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -164,12 +164,12 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG int chunkX = xCoord >> 4; int chunkZ = zCoord >> 4; - //since fluid sources are often not within 1 chunk, we just do 3 chunks distance and call it a day + //since fluid sources are often not within 1 chunk, we just do 2 chunks distance and call it a day if(!worldObj.getChunkProvider().chunkExists(chunkX, chunkZ) || - !worldObj.getChunkProvider().chunkExists(chunkX + 3, chunkZ + 3) || - !worldObj.getChunkProvider().chunkExists(chunkX + 3, chunkZ - 3) || - !worldObj.getChunkProvider().chunkExists(chunkX - 3, chunkZ + 3) || - !worldObj.getChunkProvider().chunkExists(chunkX - 3, chunkZ - 3)) { + !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ + 2) || + !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ - 2) || + !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ + 2) || + !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ - 2)) { this.unloadDelay = 60; } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java index 8590c8098..afdd0fa7b 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java @@ -82,12 +82,14 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme @Override public void serialize(ByteBuf buf) { super.serialize(buf); + buf.writeLong(power); for(int i = 0; i < 4; i++) tanks[i].serialize(buf); } @Override public void deserialize(ByteBuf buf) { super.deserialize(buf); + this.power = buf.readLong(); for(int i = 0; i < 4; i++) tanks[i].deserialize(buf); } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index 03b54b68b..2e0775a00 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -240,6 +240,8 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen } this.lastRotationPitch = this.rotationPitch; this.lastRotationYaw = this.rotationYaw; + this.rotationPitch = this.syncRotationPitch; + this.rotationYaw = this.syncRotationYaw; } if(!worldObj.isRemote) { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index 1e366da9f..fcfc1d074 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -139,6 +139,8 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem this.lastRotationPitch = this.rotationPitch; this.lastRotationYaw = this.rotationYaw; this.lastCrane = this.crane; + this.rotationPitch = this.syncRotationPitch; + this.rotationYaw = this.syncRotationYaw; } if(!worldObj.isRemote) { diff --git a/src/main/java/com/hbm/wiaj/WorldInAJar.java b/src/main/java/com/hbm/wiaj/WorldInAJar.java index e1e6e7b47..7f2fc1266 100644 --- a/src/main/java/com/hbm/wiaj/WorldInAJar.java +++ b/src/main/java/com/hbm/wiaj/WorldInAJar.java @@ -83,7 +83,7 @@ public class WorldInAJar implements IBlockAccess { } //always render fullbright, if the situation requires it we could add a very rudimentary system that - //darkens blocks id there is a solid one above + //darkens blocks if there is a solid one above @Override @SideOnly(Side.CLIENT) public int getLightBrightnessForSkyBlocks(int x, int y, int z, int blockBrightness) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index fd89e6138..27a5fadc8 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4505,6 +4505,7 @@ tile.sellafield_core.name=Sellafit-Corium tile.sellafield_slaked.name=Gelöschtes Sellafit tile.semtex.name=Semtex tile.silo_hatch.name=Siloluke +tile.silo_hatch_large.name=Große Siloluke tile.sliding_blast_door.name=Sprengtür tile.solar_mirror.name=Heliostatspiegel tile.soyuz_capsule.name=Landekapsel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0a827d824..3038841af 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5518,6 +5518,7 @@ tile.sellafield.5.name=Sellafite-Corium tile.sellafield_slaked.name=Slaked Sellafite tile.semtex.name=Semtex tile.silo_hatch.name=Silo Hatch +tile.silo_hatch_large.name=Large Silo Hatch tile.sliding_blast_door.name=Sliding Blast Door tile.solar_mirror.name=Heliostat Mirror tile.soyuz_capsule.name=Cargo Landing Capsule diff --git a/src/main/resources/assets/hbm/models/doors/silo_hatch_large.obj b/src/main/resources/assets/hbm/models/doors/silo_hatch_large.obj new file mode 100644 index 000000000..c8f7bfe4a --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/silo_hatch_large.obj @@ -0,0 +1,576 @@ +# Blender v2.79 (sub 0) OBJ File: 'silo_hatch_large.blend' +# www.blender.org +o Hatch +v 2.750000 0.750000 -1.750000 +v 1.750000 0.750000 -2.750000 +v -2.750000 0.750000 -1.750000 +v -1.750000 0.750000 -2.750000 +v -2.750000 0.750000 1.750000 +v -1.750000 0.750000 2.750000 +v -2.750000 1.000000 -1.750000 +v -2.750000 1.000000 1.750000 +v 2.750000 1.000000 -1.750000 +v 2.750000 1.000000 1.750000 +v 1.750000 1.000000 2.750000 +v -1.750000 1.000000 2.750000 +v 2.750000 0.750000 1.750000 +v 1.750000 0.750000 2.750000 +v 1.750000 1.000000 -2.750000 +v -1.750000 1.000000 -2.750000 +v -1.250000 0.750000 -2.500000 +v 1.250000 0.750000 -2.500000 +v -1.250000 0.750000 -3.000000 +v 1.250000 0.750000 -3.000000 +v -1.250000 0.500000 -3.000000 +v -1.250000 0.500000 -2.500000 +v 1.250000 0.500000 -2.500000 +v 1.250000 0.500000 -3.000000 +v -1.500000 0.750000 -2.500000 +v 1.500000 0.750000 -2.500000 +v -1.500000 0.750000 2.500000 +v 1.500000 0.750000 2.500000 +v 2.500000 0.750000 1.500000 +v 2.500000 0.750000 -1.500000 +v -2.500000 0.750000 -1.500000 +v -2.500000 0.750000 1.500000 +v 1.500000 0.500000 -2.500000 +v 2.500000 0.500000 -1.500000 +v 2.500000 0.500000 1.500000 +v -1.500000 0.500000 2.500000 +v 1.500000 0.500000 2.500000 +v -2.500000 0.500000 -1.500000 +v -2.500000 0.500000 1.500000 +v -1.500000 0.500000 -2.500000 +vt 0.918367 0.620690 +vt 1.000000 0.603448 +vt 1.000000 0.620690 +vt 0.918367 0.620690 +vt 1.000000 0.603448 +vt 1.000000 0.620690 +vt 0.632653 0.620690 +vt 0.918367 0.603448 +vt 0.918367 0.620690 +vt 0.632653 0.620690 +vt 0.918367 0.603448 +vt 0.632653 0.620690 +vt 0.918367 0.603448 +vt 1.000000 0.603448 +vt 1.000000 0.620690 +vt 0.918367 0.620690 +vt 1.000000 0.603448 +vt 1.000000 0.620690 +vt 0.632653 0.620690 +vt 0.918367 0.603448 +vt 0.653061 0.586207 +vt 0.897959 0.586207 +vt 0.918367 1.000000 +vt 0.551020 0.931035 +vt 0.816327 0.224138 +vt 0.612245 0.189655 +vt 0.816327 0.189655 +vt 0.612245 0.172414 +vt 0.816327 0.137931 +vt 0.816327 0.172414 +vt 0.571429 0.189655 +vt 0.857143 0.172414 +vt 0.857143 0.189655 +vt 1.000000 0.586207 +vt 0.653061 0.586207 +vt 0.897959 0.586207 +vt 1.000000 0.586207 +vt 0.918367 0.586207 +vt 1.000000 0.586207 +vt 0.653061 0.586207 +vt 0.897959 0.586207 +vt 1.000000 0.586207 +vt 0.918367 0.586207 +vt 0.632653 0.603448 +vt 0.897959 0.586207 +vt 0.918367 0.586207 +vt 1.000000 0.568965 +vt 0.653061 0.568965 +vt 0.571429 0.293103 +vt 0.897959 0.224138 +vt 0.897959 0.568965 +vt 0.653061 0.586207 +vt 0.897959 0.568965 +vt 1.000000 0.568965 +vt 1.000000 0.568965 +vt 0.897959 0.568965 +vt 0.918367 0.586207 +vt 1.000000 0.568965 +vt 0.897959 0.568965 +vt 0.632653 0.603448 +vt 0.632653 0.603448 +vt 0.632653 0.603448 +vt 1.000000 0.689655 +vt 1.000000 0.931035 +vt 0.632653 1.000000 +vt 0.551020 0.689655 +vt 0.612245 0.224138 +vt 0.612245 0.137931 +vt 0.571429 0.172414 +vt 0.918367 0.568965 +vt 0.979592 0.293103 +vt 0.979592 0.500000 +vt 0.571429 0.500000 +vt 0.653061 0.224138 +vt 0.653061 0.568965 +vt 0.918367 0.568965 +vt 0.918367 0.568965 +vt 0.653061 0.568965 +vt 0.918367 0.568965 +vt 0.653061 0.568965 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -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.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 +s off +f 11/1/1 13/2/1 10/3/1 +f 16/4/2 3/5/2 7/6/2 +f 7/7/3 5/8/3 8/9/3 +f 12/10/4 14/11/4 11/1/4 +f 15/12/5 4/13/5 16/4/5 +f 8/9/6 6/14/6 12/15/6 +f 9/16/7 2/17/7 15/18/7 +f 10/19/8 1/20/8 9/16/8 +f 14/11/9 27/21/9 28/22/9 +f 15/23/10 7/24/10 12/10/10 +f 17/25/10 20/26/10 19/27/10 +f 24/28/9 22/29/9 21/30/9 +f 18/31/8 24/28/8 20/26/8 +f 20/26/5 21/30/5 19/27/5 +f 19/27/3 22/32/3 17/33/3 +f 14/11/9 29/34/9 13/2/9 +f 1/20/9 29/35/9 30/36/9 +f 26/37/9 1/20/9 30/38/9 +f 5/8/9 27/39/9 6/14/9 +f 5/8/9 31/40/9 32/41/9 +f 31/42/9 4/13/9 25/43/9 +f 2/44/9 25/45/9 4/13/9 +f 28/46/1 35/47/1 29/34/1 +f 36/48/9 38/49/9 33/50/9 +f 27/21/4 37/51/4 28/22/4 +f 26/52/5 40/53/5 25/45/5 +f 25/43/2 38/54/2 31/42/2 +f 30/38/7 33/55/7 26/37/7 +f 31/40/3 39/56/3 32/41/3 +f 32/57/6 36/58/6 27/39/6 +f 29/35/8 34/59/8 30/36/8 +f 11/1/1 14/11/1 13/2/1 +f 16/4/2 4/13/2 3/5/2 +f 7/7/3 3/60/3 5/8/3 +f 12/10/4 6/61/4 14/11/4 +f 15/12/5 2/44/5 4/13/5 +f 8/9/6 5/8/6 6/14/6 +f 9/16/7 1/20/7 2/17/7 +f 10/19/8 13/62/8 1/20/8 +f 14/11/9 6/61/9 27/21/9 +f 12/10/10 11/1/10 10/63/10 +f 10/63/10 9/64/10 15/23/10 +f 15/23/10 16/65/10 7/24/10 +f 7/24/10 8/66/10 12/10/10 +f 12/10/10 10/63/10 15/23/10 +f 17/25/10 18/67/10 20/26/10 +f 24/28/9 23/68/9 22/29/9 +f 18/31/8 23/69/8 24/28/8 +f 20/26/5 24/28/5 21/30/5 +f 19/27/3 21/30/3 22/32/3 +f 14/11/9 28/46/9 29/34/9 +f 1/20/9 13/62/9 29/35/9 +f 26/37/9 2/17/9 1/20/9 +f 5/8/9 32/57/9 27/39/9 +f 5/8/9 3/60/9 31/40/9 +f 31/42/9 3/5/9 4/13/9 +f 2/44/9 26/52/9 25/45/9 +f 28/46/1 37/70/1 35/47/1 +f 33/50/9 34/71/9 35/72/9 +f 35/72/9 37/51/9 36/48/9 +f 36/48/9 39/73/9 38/49/9 +f 38/49/9 40/74/9 33/50/9 +f 33/50/9 35/72/9 36/48/9 +f 27/21/4 36/48/4 37/51/4 +f 26/52/5 33/75/5 40/53/5 +f 25/43/2 40/76/2 38/54/2 +f 30/38/7 34/77/7 33/55/7 +f 31/40/3 38/78/3 39/56/3 +f 32/57/6 39/79/6 36/58/6 +f 29/35/8 35/80/8 34/59/8 +o Frame +v -2.500000 0.000000 1.500000 +v -2.500000 0.000000 -3.500000 +v 2.500000 0.000000 -3.500000 +v -3.250000 1.000000 -2.250000 +v -2.500000 0.250000 -3.500000 +v 2.500000 0.250000 -3.500000 +v -3.250000 1.000000 2.250000 +v -2.250000 1.000000 -3.250000 +v 2.250000 1.000000 -3.250000 +v -3.500000 0.250000 -2.500000 +v -1.500000 0.000000 -2.500000 +v 1.500000 0.000000 -2.500000 +v -1.500000 0.750000 -2.500000 +v -3.500000 0.250000 2.500000 +v 1.500000 0.750000 -2.500000 +v -3.500000 0.000000 -2.500000 +v -1.750000 0.750000 -2.750000 +v 1.750000 0.750000 -2.750000 +v -3.500000 0.000000 2.500000 +v -1.750000 1.000000 -2.750000 +v 1.750000 1.000000 -2.750000 +v -1.250000 0.750000 -2.750000 +v 1.250000 0.750000 -2.750000 +v 1.250000 0.500000 -2.500000 +v -1.250000 0.500000 -2.500000 +v -1.250000 1.000000 -2.750000 +v 1.250000 1.000000 -2.750000 +v -1.250000 1.000000 -3.000000 +v 1.250000 1.000000 -3.000000 +v -1.250000 0.500000 -3.000000 +v 1.250000 0.500000 -3.000000 +v -1.250000 0.750000 -2.500000 +v 1.250000 0.750000 -2.500000 +v -2.500000 0.000000 3.500000 +v 2.500000 0.000000 3.500000 +v -2.500000 0.250000 3.500000 +v 2.500000 0.250000 3.500000 +v -2.250000 1.000000 3.250000 +v 2.250000 1.000000 3.250000 +v -1.500000 0.000000 2.500000 +v 1.500000 0.000000 2.500000 +v -1.500000 0.750000 2.500000 +v 1.500000 0.750000 2.500000 +v -1.750000 0.750000 2.750000 +v 1.750000 0.750000 2.750000 +v -1.750000 1.000000 2.750000 +v 1.750000 1.000000 2.750000 +v 3.500000 0.000000 2.500000 +v 3.500000 0.000000 -2.500000 +v 3.500000 0.250000 2.500000 +v 3.500000 0.250000 -2.500000 +v 3.250000 1.000000 2.250000 +v 3.250000 1.000000 -2.250000 +v 2.500000 0.000000 1.500000 +v 2.500000 0.000000 -1.500000 +v 2.500000 0.750000 1.500000 +v 2.500000 0.750000 -1.500000 +v 2.750000 0.750000 1.750000 +v 2.750000 0.750000 -1.750000 +v 2.750000 1.000000 1.750000 +v 2.750000 1.000000 -1.750000 +v -2.500000 0.000000 -1.500000 +v -2.500000 0.750000 -1.500000 +v -2.500000 0.750000 1.500000 +v -2.750000 0.750000 1.750000 +v -2.750000 0.750000 -1.750000 +v -2.750000 1.000000 1.750000 +v -2.750000 1.000000 -1.750000 +vt 0.122449 0.827586 +vt 0.367347 0.827586 +vt 0.142857 0.862069 +vt 0.061224 0.655172 +vt 0.020408 0.931035 +vt 0.020408 0.620690 +vt 0.510204 0.896552 +vt 0.551020 0.620690 +vt 0.551020 0.931035 +vt 0.387755 0.896552 +vt 0.102041 0.913793 +vt 0.102041 0.896552 +vt 0.489796 0.482759 +vt 0.081633 0.500000 +vt 0.081633 0.482759 +vt 0.387755 0.896552 +vt 0.102041 0.913793 +vt 0.102041 0.896552 +vt 0.489796 0.500000 +vt 0.102041 0.551724 +vt 0.367347 0.879310 +vt 0.122449 0.879310 +vt 0.571429 0.413793 +vt 0.489796 0.137931 +vt 0.571429 0.068966 +vt 0.367347 0.879310 +vt 0.122449 0.879310 +vt 0.122449 0.827586 +vt 0.367347 0.827586 +vt 0.489796 -0.000000 +vt 0.163265 0.068966 +vt 0.081633 -0.000000 +vt 0.122449 0.827586 +vt 0.367347 0.827586 +vt 0.000000 0.068966 +vt 0.081633 0.344828 +vt 0.000000 0.413793 +vt 0.142857 0.896552 +vt 0.122449 0.879310 +vt 0.142857 0.879310 +vt 0.489796 0.482759 +vt 0.081633 0.500000 +vt 0.081633 0.482759 +vt 0.489796 0.500000 +vt 0.102041 0.551724 +vt 0.081633 0.500000 +vt 0.489796 0.500000 +vt 0.102041 0.551724 +vt 0.489796 0.482759 +vt 0.081633 0.482759 +vt 0.183673 0.948276 +vt 0.387755 0.982759 +vt 0.183673 0.982759 +vt 0.183673 0.913793 +vt 0.387755 0.948276 +vt 0.142857 0.948276 +vt 0.142857 0.931035 +vt 0.163265 0.931035 +vt 0.142857 0.913793 +vt 0.102041 0.896552 +vt 0.387755 0.896552 +vt 0.346939 0.913793 +vt 0.346939 0.896552 +vt 0.102041 1.000000 +vt 0.469388 1.000000 +vt 0.367347 0.879310 +vt 0.346939 0.879310 +vt 0.408163 0.931035 +vt 0.428571 0.948276 +vt 0.489796 0.482759 +vt 0.081633 0.500000 +vt 0.081633 0.482759 +vt 0.408163 0.413793 +vt 0.489796 0.500000 +vt 0.102041 0.551724 +vt 0.367347 0.879310 +vt 0.122449 0.827586 +vt 0.367347 0.827586 +vt 0.102041 0.896552 +vt 0.122449 0.879310 +vt 0.387755 0.896552 +vt 0.102041 0.913793 +vt 0.428571 0.586207 +vt 0.469388 0.551724 +vt 0.408163 0.068966 +vt 0.469388 0.827586 +vt 0.387755 0.879310 +vt 0.387755 0.827586 +vt 0.469388 0.896552 +vt 0.469388 0.913793 +vt 0.387755 0.913793 +vt 0.433673 0.965517 +vt 0.571429 0.551724 +vt 0.489796 0.551724 +vt 0.571429 0.482759 +vt 0.571429 0.500000 +vt 0.081633 0.137931 +vt 0.387755 0.827586 +vt 0.469388 0.879310 +vt 0.387755 0.879310 +vt 0.469388 0.896552 +vt 0.469388 0.913793 +vt 0.061224 0.896552 +vt 0.142857 0.965517 +vt 0.571429 0.500000 +vt 0.489796 0.551724 +vt 0.571429 0.482759 +vt 0.163265 0.413793 +vt 0.469388 0.879310 +vt 0.387755 0.827586 +vt 0.469388 0.827586 +vt 0.387755 0.879310 +vt 0.469388 0.896552 +vt 0.469388 0.913793 +vt 0.387755 0.913793 +vt 0.142857 0.586207 +vt 0.571429 0.551724 +vt 0.489796 0.551724 +vt 0.571429 0.482759 +vt 0.489796 0.344828 +vt 0.387755 0.879310 +vt 0.469388 0.827586 +vt 0.469388 0.879310 +vt 0.469388 0.896552 +vt 0.469388 0.913793 +vt 0.510204 0.655172 +vt 0.571429 0.551724 +vt 0.571429 0.500000 +vt 0.571429 0.482759 +vt 0.346939 0.862069 +vt 0.387755 0.913793 +vt 0.387755 0.913793 +vt 0.469388 0.551724 +vt 0.469388 0.551724 +vt 0.469388 0.551724 +vt 0.387755 0.913793 +vt 0.163265 0.913793 +vt 0.102041 0.913793 +vt 0.183673 0.965517 +vt 0.387755 0.965517 +vt 0.408163 0.913793 +vt 0.428571 0.931035 +vt 0.469388 0.879310 +vt 0.469388 0.827586 +vt 0.571429 0.551724 +vt 0.571429 0.500000 +vt 0.387755 0.827586 +vt 0.489796 0.551724 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.3162 -0.9487 +vn 0.0000 -1.0000 0.0000 +vn -0.9487 0.3162 0.0000 +vn 0.9487 0.3162 0.0000 +vn 0.0000 0.3162 0.9487 +vn -0.7071 0.0000 0.7071 +vn 0.6396 0.4264 -0.6396 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.6396 0.4264 -0.6396 +vn -0.7071 0.0000 -0.7071 +vn -0.6396 0.4264 0.6396 +vn 0.6396 0.4264 0.6396 +s off +f 51/81/11 52/82/11 65/83/11 +f 107/84/12 44/85/12 47/86/12 +f 101/87/12 92/88/12 93/89/12 +f 106/90/13 107/91/13 105/92/13 +f 42/93/14 46/94/14 43/95/14 +f 98/96/15 101/97/15 99/98/15 +f 45/99/16 49/100/16 46/94/16 +f 96/101/12 99/98/12 97/102/12 +f 88/103/17 95/104/17 89/105/17 +f 103/106/12 105/92/12 104/107/12 +f 103/106/13 41/108/13 102/109/13 +f 43/110/17 51/111/17 42/112/17 +f 96/101/15 95/113/15 94/114/15 +f 56/115/17 41/116/17 59/117/17 +f 62/118/12 53/119/12 72/120/12 +f 89/121/13 90/122/13 88/123/13 +f 54/124/18 44/125/18 50/126/18 +f 91/127/19 92/128/19 90/122/19 +f 59/129/15 50/126/15 56/130/15 +f 70/131/11 69/132/11 68/133/11 +f 65/134/12 71/135/12 70/131/12 +f 68/136/13 66/137/13 62/138/13 +f 66/139/11 57/140/11 62/118/11 +f 58/141/11 67/142/11 63/143/11 +f 48/144/12 69/132/12 49/145/12 +f 55/146/12 63/143/12 73/147/12 +f 63/148/15 69/149/15 71/135/15 +f 75/150/11 76/151/11 74/152/11 +f 74/152/17 81/153/17 75/150/17 +f 77/154/20 78/155/20 76/151/20 +f 82/156/14 81/157/14 80/158/14 +f 82/156/12 85/159/12 83/160/12 +f 84/161/14 87/162/14 85/159/14 +f 87/163/12 78/155/12 79/164/12 +f 43/110/17 95/104/17 52/165/17 +f 95/166/21 55/167/21 52/168/21 +f 55/167/12 99/169/12 58/141/12 +f 58/141/21 101/170/21 61/171/21 +f 101/87/12 49/145/12 61/172/12 +f 91/127/22 49/173/22 93/174/22 +f 91/127/23 43/175/23 46/176/23 +f 56/115/17 51/111/17 102/177/17 +f 102/178/24 53/179/24 103/180/24 +f 106/90/12 53/179/12 57/181/12 +f 60/182/24 106/90/24 57/181/24 +f 48/144/12 108/183/12 60/184/12 +f 50/185/25 48/186/25 45/99/25 +f 56/187/26 45/99/26 42/93/26 +f 80/188/17 59/117/17 41/116/17 +f 104/189/23 80/190/23 41/191/23 +f 82/192/12 105/193/12 84/161/12 +f 84/161/23 107/194/23 86/195/23 +f 107/84/12 78/155/12 86/196/12 +f 54/124/27 78/197/27 47/198/27 +f 74/199/21 54/124/21 59/129/21 +f 94/200/17 75/150/17 81/153/17 +f 96/201/26 81/202/26 83/203/26 +f 98/96/12 83/203/12 85/204/12 +f 87/205/26 98/96/26 85/204/26 +f 79/164/12 100/206/12 87/163/12 +f 92/207/28 77/154/28 90/208/28 +f 77/154/24 88/209/24 90/208/24 +f 72/120/11 53/119/11 65/83/11 +f 53/119/11 51/81/11 65/83/11 +f 52/82/11 55/146/11 64/210/11 +f 55/146/11 73/147/11 64/210/11 +f 52/82/11 64/210/11 65/83/11 +f 107/84/12 108/183/12 44/85/12 +f 101/87/12 100/206/12 92/88/12 +f 106/90/13 108/211/13 107/91/13 +f 42/93/14 45/99/14 46/94/14 +f 98/96/15 100/212/15 101/97/15 +f 45/99/16 48/213/16 49/100/16 +f 96/101/12 98/96/12 99/98/12 +f 88/103/17 94/200/17 95/104/17 +f 103/106/12 106/90/12 105/92/12 +f 103/106/13 104/107/13 41/108/13 +f 43/110/17 52/165/17 51/111/17 +f 96/101/15 97/102/15 95/113/15 +f 56/115/17 102/177/17 41/116/17 +f 62/118/12 57/140/12 53/119/12 +f 89/121/13 91/127/13 90/122/13 +f 54/124/18 47/214/18 44/125/18 +f 91/127/19 93/215/19 92/128/19 +f 59/129/15 54/124/15 50/126/15 +f 70/131/11 71/135/11 69/132/11 +f 65/134/12 64/216/12 71/135/12 +f 72/217/13 65/134/13 62/138/13 +f 65/134/13 70/131/13 62/138/13 +f 70/131/13 68/136/13 62/138/13 +f 66/139/11 60/218/11 57/140/11 +f 58/141/11 61/171/11 67/142/11 +f 48/144/12 60/184/12 68/133/12 +f 60/184/12 66/219/12 68/133/12 +f 67/220/12 61/172/12 69/132/12 +f 61/172/12 49/145/12 69/132/12 +f 48/144/12 68/133/12 69/132/12 +f 55/146/12 58/141/12 63/143/12 +f 64/216/15 73/221/15 63/148/15 +f 63/148/15 67/222/15 69/149/15 +f 71/135/15 64/216/15 63/148/15 +f 75/150/11 77/154/11 76/151/11 +f 74/152/17 80/188/17 81/153/17 +f 77/154/20 79/164/20 78/155/20 +f 82/156/14 83/160/14 81/157/14 +f 82/156/12 84/161/12 85/159/12 +f 84/161/14 86/195/14 87/162/14 +f 87/163/12 86/196/12 78/155/12 +f 43/110/17 89/105/17 95/104/17 +f 95/166/21 97/223/21 55/167/21 +f 55/167/12 97/223/12 99/169/12 +f 58/141/21 99/169/21 101/170/21 +f 101/87/12 93/89/12 49/145/12 +f 91/127/22 46/176/22 49/173/22 +f 91/127/23 89/121/23 43/175/23 +f 56/115/17 42/112/17 51/111/17 +f 102/178/24 51/224/24 53/179/24 +f 106/90/12 103/180/12 53/179/12 +f 60/182/24 108/211/24 106/90/24 +f 48/144/12 44/85/12 108/183/12 +f 50/185/25 44/225/25 48/186/25 +f 56/187/26 50/185/26 45/99/26 +f 80/188/17 74/152/17 59/117/17 +f 104/189/23 82/192/23 80/190/23 +f 82/192/12 104/189/12 105/193/12 +f 84/161/23 105/193/23 107/194/23 +f 107/84/12 47/86/12 78/155/12 +f 54/124/27 76/226/27 78/197/27 +f 74/199/21 76/226/21 54/124/21 +f 94/200/17 88/103/17 75/150/17 +f 96/201/26 94/227/26 81/202/26 +f 98/96/12 96/201/12 83/203/12 +f 87/205/26 100/212/26 98/96/26 +f 79/164/12 92/88/12 100/206/12 +f 92/207/28 79/228/28 77/154/28 +f 77/154/24 75/150/24 88/209/24 diff --git a/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large.png b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large.png new file mode 100644 index 0000000000000000000000000000000000000000..e9cbcc6bba6349e7a1d2f56a47f6d6516d29a87b GIT binary patch literal 16520 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 HW9)wb?B*S{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png index 0513ab1247ff7c8ed8b5c28a4b7305646ca32f65..7d1dcb08a03ea96169684673a8976dfdf3c34f09 100644 GIT binary patch literal 15292 zcmZ|0byQT}8#g+L0@5m-64EU(ASI1RNl6QWgwzN_45cDnA|)*#Au%W@9U{^(ATc7% z&_fR?bvJ&0?_KY@YhC|9)&S@1z0cmy^QjZ5r=w0r%s>o*K*%&TR31Sfcu?^D5fK6S z>O1?_8T@zEQ%Td12>c5mvWtK~ZbLLx?i>1MZe&?TaEvD}U)+e&<4Jl~f_+}!cqW!j zKP;j5dH?GyXX=KfH@yWWce(X9K5lfhO_J2=vBKW40LlKCE=d(>$CEH*hi`H2msS=N zpNXS_aqXU<$I61@E|Ptps|J5>mLPk|M$}b!ly027-EZ-u<}IL_x$*1lRdLT-hHy;`;HGwVmPzM~0J3wxqUmWc`g?tB};X&eA6*^9~TCDlwL$HJ* zHPZzZ%PTxPObz;PkWSgBGl#HD99$L7L!t9UpVTW*P&b*9n~^6kUcavj6gfl);*K{3H_>|`SV~1PL`q`*#@_~ zdLPnTsRCVtlGjfmyM~?82`tg=VJcdq7d(6m2O)%i#Ds-5o09e4`0uon)b0rj&CN&C zdd$6`I3tln$la~MM&V3XT92FKjY~tVD#C9QeZb0iS$4WeDi;mE!axV%%wUb;FdwGe zNI29hbaRW}*;`qR*VSZ^m<%=SNkf%c6FF!P21I4DbllL?%T^E zL*WLu4(Cqf3x_{#ul*4DIWVA8vb_g3U=KSVG23SQr>x6 zwPVyc9;bwQH^hpNs*)qYN0kC|?RUyUo-)Se(fywO>iV+@n%7vfVf%@28A|^53|yTT zjId^+-9@s^OGcG0j9r*}dFdC`u~prRJGf{)0S9w3rd-<23;ycpP=WywQm+QfH#S5w zhc@Y4c|14$Bs*ac#gU(61o*z$gl!@>!#}yaH|E(@JD7(oHo0<;^s4;MyQa7vRY~28 zlO3uP$>@J#O2d_S-ODn((5b{oD_3tMtiYbVuN05+UO`_c4A)xi`epokkf9`|BAQq~ z+CD>h#23ZuW0*`^BPSs4G37?vycIog4KnZGCSHr=f8hbP`^;7wuCcCp6t2fslBcnd zWl+FU87Qzn`@3$|Z#vDx2n`3LepqDSn;o8&l~s3=__?1YEDuVvpV{j@dT~}>$y!oT66SG>n^$uf zKO<_r>Ff{g=YUgV!+k$ky8%3_RLn!-&gwHVEgvfGpG{Jas%fQy4(JXHZebkaMd?{u z>EmbX-Q3VvozaYlp6|SpQTEe}pBvS`X^<-f5?F4{ZVx;79@xE^yGxj#kTbDgZ?Mmm zC+0!idRcX_W97v{e)`8M<(y?}(t^X$C%P9K!2-2^e)ycDy7%K1&VA3D&RZ1*&W<`5 z-BpgrW-rc!A--1?@wXYdYi1zRzL=S;=O0_nHr&zkKBm+?-(97*S}vNo7~j>?)z!i< z31Ox0#!9J_=dCR0OPZJ7d5q7z9uuX`JK0r|J?tA_k_Rn8dKx(tNiZ?g$Uab+4!#J~J`eer(0lsx z`MYqKRvum6h^i#(VyndaT39sgabYf>t`G%=psa#UNmytV$Nw&OZItcDI49muc+Vco$lKes=sNk%i+eD-K{R9T z=vZQ$XAvIA=&hAHbfg_79Js1A6iPx1>MEt`jSkEgJtjOIam=%-G^p)ch8Ok7Xq+)` zlIfD~u=tm%su1@eTt;lkExxwe1ba0hlyu47@20OehD) z%T+JFm|i=v8=dJpLD^%A&^Qq>7b&N2W(9F*coR&WDaC2Bi=D&dYKF_CA+rVC?)**7 zgzMG&FXudX$Un}Bh77M#6*>(>I`lkxnAm-_+O-YF^ss37S0}nI*mL|(kGLDB+XB&r zFPcm_MXvb)=AgZ1M#%fMiS@P5jpWExxLc`XKm;Evy~YN#6Gj=9t9M~fB%P&`>%_3P zJi1iq#7?RV`=CvY!FH9r@k;B6{nzhuZ12K7TQw)n&_sc1nJL%T$%O z`Z8rF=|OrX(EA!&|9gD=#`LYNWj0BDDo~gHwKN{iS6-IFfwJ+c0t|uTsBd!CFd(Sn`pt|kzH<<6 zxzOROw+D*jzyP@{>Q*O7k3+e!gnW6?xBf0oOrs?I?ngAXe6js<^i5Xo14PvAlItl# z`8ye;lb;q6UduAcM6pBTIDV+1a37q~iCFV_ZtgpM*Az5Q!@Npt%(bohEb!blKY8Jc zs{Y=oaPyIEF3Q?Rj1fwM5<^L3>DbT_1k8Z8db3V6EZl}pX;|Dhn_H>xHqjd!zUPfw zC+27U=_y=qic1@z2zUE0CFIDJlhThnY4(Eq1+;yy zx8W6yKx>Onk86^K7&?^+Z!)hu+A1H3AKFdZI+{ z%gRYjnnjPw`|w1Y@Q`IccJZsXB{>R*oeD6fI(feZkk&28%hirpR` zbR%@u&W9ShKh0;kkfL|Y)rM|4-;cPdBu+^>Bhafv7X~0$p;O+JTlC+%-oy~@Yy--x zU_k3;W+`__iR_~u7lNk#`ZhpNo*4x8@vP+GM~Mo@i7VZS-1B5M>Te32BJwo$%CAs1 zeA&AKx9lWj4bWR5T%2nQPwQ~^Y|xvGF75F*Fbo%EiEj^2v5Lb$^CquABNt7h?mxAq zBM`Ezf5Q{y;p@xeeP?`OfU$|cP9!xf{9g8Cq@ZU2e24q_k~?uoXJKHo@e+0( zY=)qg8K_*HEBj{qjm4&9twpwytrHI>2O+zs-Pd{*NZY>;sEd~SF^m`wy)mm)qFX+vj=PARtn55S%#itm@QaNLDS z(&d$x{XV;zb7DhoQ_k_ov6!BvsC^h-C32MrI-;+x#IqU}kLkqJb+|8eF3|8pepK;2 zm(@~P!K-Z2a+}TRfA&M8ves8D4FIt=oUD<$iKm?~x!$xnwV@SZXTYswzeO%@h8yD% zqAFk;fCEfNO2F=Z?a4rCl`A7aa9}i`%D*6E=oTSG`98LfE27niPhzVrbn>wD5#n~D zBZ!NS50wJouLA?~YvB#edv!Xja5h|b7<{_Zxg0cCCR1fQdL~oQl%`kI)8Qz7GlO^! zvBHd3#BwWf1Bo4g6YF`FPi(LgU4gBTkZ~)^g#{YLF1Ngy&UKwo(o39^Aqktc8 zFt(v18S9Js)RJ?`0UqTIX2urT#K1ZK74X0WxBAHeZ&urUvTEC zandXub*AlKZZ&hzxD~d7Bq*8vIA+`n#n>qpU|-H8#rSgghh``2gA+sjlpAjgrz&D0 zYgnc@+=br>yH}ZQnmeqAS9Is5i=4UNW=f8+p}y zrZ%bBw$vEmh7`QV@y6>w&=26mZeBjHV24Qb`Hc|asbjedB zzLVp6U34E=WZw9aOm&&SE<+M+jV0Z8O-mChRnMm9;!pPe)JAtPh;3FPvI%DnL#6D} z3q>f)w4Rd3OtUxf9CHeIvm{BdK(Du(n*BIsS2iQI?I>mDzXu#q{cZ1cidMWE*g5kZem3iDe*Q%=Ux**=U|vpRfzBGX!H5P8uNqPf zba*~};RB&~$?GXg293_BGvGu2++hrsWyuE*H;P?f{^o^JS4Mqy_aN24$xS^gi{p>w z_xljfLO1bc+wfTaOPaO5aEhNhScuG?_GAi$kR5Y+x_kHT<=uHMnE{wx z1hdNKTQR1B`}v|a8+2sXlqDJHgUo+vRSJ**_>f|sl_0b1nJSUp;SU}M748Zp8#G62 z8n!qfh|1M_p|x*kg!;5Qzt+|(+!C;v`fzL}0qMjb(0fzUYvxcj^~bk#IP*auThHkkRTK z{pl?3wtZN}cc-T^*sg`=E;D%!4q#^uEzrp$CpK(lvVP!X*Vor0PIBb@xndsDg+XOy zsrH=&<_m5}%gEd$ly|46;LBBZ`|ODWejCoM#+;wYDBacNa?cvh9jY(HKI>+=vM`?TL1^{qcdPFV(Rn0ZdAVKr_z^ogABL1+k49Xfv|{VEJ+l9>H@nt(iNdowKNKH4 zB+j~$Ksq6=t=uw0dzO}77|9^TAW`?y7|DhUWKHZ=Nivu9KX~|6N0igJ9~+dlq49lH-(TF8R2TC)L4bL#<7zCU z$2;>xf5T49j)j=jCVn}GfX^J3DZUf5sxEGQ!nh(h@0#kn&8zYUOZ^#n)<$lzz1aFZ z881_cxa{ZvGdYn8!p;Mpprh5*ZiL5+-JA`}Nw^)9pZ`i{o#(QS;poNIR726()XZ7d z!MzsTy;`5G?1QGQK;4rcw9PMDE>2p|&A6;BM=7_-?@j)PUjbQj%DFgQrbU_p0*Sv- zYJKK>Rng_jXJ#j{vxJ(oW6f&VJfXr7oAEY@nUK|pLMW3!lUo79ZV|DdwC#hWgzR`A6yRO z{zZnAyW}55cSZ&Ov;C6P4?J&s_GhVxL-TmPPSm)oSF$ke56laiRlA~ATTN3!0U`mS z25Go58}k4ekvv5~(mcW?dl}T&S=RG8R>O#>HKh?C9mEE;xGVU+1jjV z3-tgj(J@2WkQvH5vbcn2bH?Bg9j{jrj{9Z{lY{n-?gR z#2JEb*{O)$Y0_0_zwlz(@tkto*%xGwY@L6q;QZ~UXAo!d`2t){r}3kW>1qi3J(>O4 zg=bz6_M{}A$BR`;7=(xH%P_(w$ot`^Pd9apne|7aX$kQy%3$~iee6UmJ5Z@ChkqiI zB)czn#n*~}Mg9bP(>$+`v%I}ubkDqHm=hfEbsne#@WP2u9DjYsXV)|23KYh{+}Zj> zgpwtPSYKD4%~@uiZT9f+AP*yAL0>;TH5E%xABPe7sfZp5JeRt+6Ud}+!HB}t6YKL& ztCl~Yh(ox*MueQdh);cJk8H_CI?em`vkY^_Yis>#3I7;xZBN;9Y;7)r;JBJ!^gb@| ztItC^ImTAUsMRBbuRhs7R=(w2Fv+)E?Cl6&oUlrXZ77j0wTHFkzGck&C?zM&Ak{;G zSA_7`TX8H~NSt3i(~sAdS59X8oEPxE<(*tS*G=n|Q{2?llw%sL`c}EXiY2F#sW|IC^j$7*D3N0C}LSA|0+1_&z6wu@7J<0W%Mp?Crn+3sANrw$wBM5 zsiCEW+^nNDT_L4yI*yj!`s20z6P4J~&3N3jZww)$SN2bTjOcVw5L9zAI$FW_VEX7c z*Y=<175!6GSp7Pd%=rKo`GEIMr+I~2y7BS4=ZS;8W&Ar?qmf%V8P?czE-tcL{AbI- z=gTFjgBmIk58RzWM+0XTKOQe)l3t4b^=(BUmlbHG0)|dbLD8N@F2Ep3il1UHI2uCo z8UorIYrys^V*M|&D&1}0yHPc(Y-<~Y6kmObdi0W~Gnjt#plRePi1jm=^B4rkY=U`# z3e^52oeS_FwfqEVyx~{~z7B=cPGGPQ=L<^{I_a>Fl_oVr-=fVZ)|TctCBFAI)^Z`- zqxR@VLK0EZBH9K?VIH*NNJ4cR4bumj@)L@~;*RNDlB`5hyoRjKXP>m<_*Ub%<*J01 zJYg_h;lofG4cV=Oa`(W}^iXlqjpx=UW}M5@kO&$l@hO)*r>>y{^3s4M>*wDd?QQyy$JEtAi0S$_ z#nyj+r7p2tv=XuwQ^K<>4YNrYRB!y*sP^3kNWEc-CU#eVESI~}BHdy_E%`=RzRQH| zW-JS9(+|}QQuy!d<-I~B>~fdNw_V$?-4+={{&c&oF2h#Ni)IV?D`&Jm!5bD8PFK%y^DoWNyNM~`n`ql>Od>y5t(KY<7HsL#dJg>XTof|;s zUj22)qSgZsJS@!4`l-frCZvtv?<%ze-Acir%^TE)eG@pv)!#|YC9_q=cZ!713 z!v-Ix21_3vxd&p+!Ot9MlQRfNCDik800!FL+*h=ZXp)wLE@2;A{rH@iMV!5y`#*dM zs;89Le6i(--^kn@V#U$cf_8{bk8~bS`aQ*Df*32t{n^KD9hPIYESXN}fCU4_jm&%_ z-C%_9h%%rF$X zTQw4);X5ls9Qqucca_Im_|OgA4ib9TkD3mr4cPd461DymQW^;zUHkl5{aXno{DxEd zhEYU4yUJol*T)tN^imdKyf(T2k%cK?G4XfjgZ!>6v~lURPS{WO4vZ*4$g87v!3ouJ znZCZ=3vJ##SD9#p&SHJ7SW~U9!ZsiE+mG=I@j0hkGo4RFzVGaag0k@UEGRGM6>Cv; z1Nn#!g-&i)w5pXgJ%fiBjH1+~wRh$ub?eUV?|B95z~!u!P+BVpgo&9M5AyExbj;j+ z@%Y8f{HB9H&u>6-2|Kl~&@A*2O7w;gLBJlRz4m=?4HyN$geXhsWgC+kl ztD?^tK_!Pa{)5jJl<6=$#!XNWuj{y|tT+!De~&<|q*%ugEimiUf_w4Q;sv-(b-dsY|Qwff4Bku^jg) zXIF=dpa4uVlY!0N+1crPuuh*X>-V~?O__;>Wgh(0_w?xUDFI&D&d6>ME@BW`+;4A$ za%xmJ`Z8`O{~>9baiYTR+PfWJ*&;&1%#^S$_KXZ7Da$B^oc(ic`>E{VN^ir8|7jlI zo#ZB3Tkjhd($@6b1tqrZ#Ja15hll5h=J?5I4+AHKsq;qo1ANexWCi|CH~BNt=8dIk zQ|MQij@1zkP;M4?n<3%+1d z_x1H*uv*F3KeH&(gBtL*hGj)Fa7Wr|n69z+M3=_(iP{>=K~cD+4t^c^tG#ZDyKS#( zBH{bf3l^ESp53QpyO#=dlB%s$Yze2Vq8SX(msz@5XZ16o)z`Dj7nalbBULT*x;jX+TX-vN|%j$qFa-VCoxF_>_#O^PasS zJ0_KG6H%d31*BDpB5sPTEF=H0<2fiXV((lj^igfq;AR~1x24>tV|I}N?lPK)ho-bX zPbJ%MAyhEsdW8zC_EN>g--^5RwI$syv%l6_MIC76FUFFiUsLz$t0C(a5~3RbG~N3_ zB22`g6c-og;pO%5L9*=vP2Qtx@8@_)0@KVf_feBJ1+AD(e*6AlY)ue)Oy*S?fPvOO)pDHX><(q|XS6m0$s?+|guLl{#t6{3{E;AK2H)hiNQ6cO(f?Nm} zK8LlwK>ReQ;Ysh-zP9!xF?zA z@o;sPQc6hgEl_p;kYlI`r(m^pcc*}SZfOxF|J#j4&@5P(Prm$V3J+#z2HVqapw&oo z$yIBjy1i9w3FmGK80KyR5XZnE-yNI;zAwCv!m0T3#hdW-*txswQau`0T=WaP0hC}g zXxK-uxAqYvP2H-D#Jl@Ohwk_4-V}qLLMKtzTt4a?DLdgM6T0koSyglS?$Ppu0Q&7V z>F9k;pPG%&gD?E+2HRS&@8Q%pZ!UWFI5iG7hpUQjq9HHpf~IB0t{cqwEoTuyr|w*% zVXUw}yvRsx$>CL*`fE9IDgD=l+0UFzA3EQ7CdsQ}lxb_4A_Dc3uO>2#cit)PF>CMm zA~4CZmr0eOyV1;BxyfLpZN=uyU>Je8nP-*~%B`E7*%0D)yla1h#+W*<2Wv`GQbPI7 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 literal 14476 zcmZ|02Q*yY8#X#3K@u%R?;%79B6^J)qD2_dh3LJPQ4>+322rB^5WOXO7ZE*7)Cq&Z zkiqDTUcN2)-|wz<*Sgk!Ow?8 z1mL^R+_4?_@2b0;iVhL@@+Y#0fIyfbDhjeXJ{jwos?ltdo>>ZG zDwrEUsHz3Nb@N!@n|x`derR*!3u7ux2flKR8LyRP=M#LBpU;AcKQTWcdQ9@x?I!+h z=KFR^S48mXY~0N7THQ&QuM0fc8kU-Y8XrYiEBR>cqMB%uv_8deH{AMkfPZ_2;*-ec zU|D}6Cc|$ih{Q(F@28*lW`U>l1zj8?ji+?`A2+q}o4;&IK1Xycye3n3Ur{P)s?ZA0 zhvB8c8of77VAzR=(=EPtvi*0iLn1C@0*>!OT)^)j-$n~Hw>t=#YWmT0$9O#DA_usP z32=)zorwg`hh@KWAX(7HM*_~?_` zD}73W5IiHqHOLRwXhHROw(ALOveaSx#Q1fNXbIGjMrjLV@SMNKF@r#MDQ?^&G0D`- zm7X>79-GQrlgjYUPIV^{6@wnT&c?RBE z>PJYQ;lJ{+Lkc?}yB&l>I0Nw03f_ZN1&K-yxdZvo&4{@ z2{Qbwz^y%v_f7)#U{a|C?*-Lw^*n;LX7%>i3UcXVx`b9*&z21@q+7SSv%9LZFK)ww z&hLVMs*)F7+NV)|7q_8C7ksD-zs$|HcS(#!XV zCr&Nk6lR09nv7P;=G|)9UXG8)bXm66vq!pA2JGLcxTwZ9>`!txxV?V2O+l3xZ#?Na zxKy?`m-|4j647ZRC`aD|Zd_n%{#EZ4KlQg=NwC+zb~5-y_?OdYZs?j}U>y z&56ctEksUqd?k6RP3GV{B~oQVKRk;JjK_BPW`%G2MDr8J7jTAkvQS1{`_8WbuHxgs z{Hf#IY4zQ;TA|A6voTd0bP&}P$-NnfA+JLN-&`OA;xda~pZL!n*fcs;KC*>JNocH+)o zt;h$(tMz?c{E0m`MkZM&+6;5l7n@j_D{YDZl zub{;yP6dg`ZXBLFY3uE{uksc=1~XCev95@0cu|^oythUztoIx|;a7JSqPI8aOKj7q zNyCXc$z{ps=H_0loZnlk4$mo$gGv>;8E5P-?1v;#uFQ9a$DHjT3z$pOUYhvk>ln|W zd*V`N;Qw3|w!We-DYlA12a$}}BrS3i-S9THf zou^cxI?VNAKJEe$St{j!a*<_xafpsfL18y9&PL*#TXDLPaLC2x1?1Zu2thDBV@4Xk z1vk;&G^QMcHALBUZN8wG`nE2{7}d3b&UHUAMBQQ*IsMw z`;SvCvpYu6a~l=jo5z5XO_YGMNA(Yw`?Y7b%| z)@iO$U2^n~lu5)!1-pDp@Af;mwKyV0MMb}fv~9;|j9(Wrn^w+>FLfgw&q}wOg<;DL zIv3kdn%hfvR}3|6@q2b@Ak4(_W=4N@8$~Cg4|Z#K;k)nR&6-sz5%wM}wrQCX3tv>w zO1dZhhn+G7%u_wM4{Seke9A-v@tV{Xv*pjp0$e$G9Iq%E(o!`OV zKm9~xcVgnRE2}>1)5D%-Tk3=ZpQP?})y+1;&8wBI1kCNE6Vw;o`u7XS>NNe_0F9JUYEvnRxqPo5OGqaf5Ic+=zFL~U(6c&4V z)T$=NF!vVP=BTfk<~Fk^HhOLofgF z1LuK~&#uD?RjWUCxeoI`oZT*3h0Ug@&UiZg%S zMZ)d10U7_j3PyyN);hlxp*w~R_o3V(LTC(PR zUys1VHxfybFFu6J7uw!{?<)MJzKTcONk0ENtsqyLM6}e>-c8aaS!8UDG8XONP!lOx z$Ge(!QJsC}P!30VJ);w)gbTna!dQ3)R_1>s&wcai@Q)}d0AF_%zc|vJ1)7d!f7OPF z?q)2AhM7^DBSu{5&7M5a{viohQ9CDYm&k!;0-H-kB9#{bE)9>G0Rcz_z63 zM?;A9S4q`JHflTr-*H$3DA%!Zaa|Q`>C?V>-uJ2gjBL5|Buac$kBvi97Zw&CPGh7w zh#AxOj|@Il4lJBVccWb~dyD(;%c!2#98B=^%a1*Xob#Q1(c7JHGdV~vIdsJXz?NX( zdNc%g4tQ!T9}s0MEfrO$h7e`cd$|&4hfC$D#}W>$9`X#_uFPg+ls6uz`cd)Fuoc!i z8`^EBF7X#1q$&DF&|U?2m7?!hG*(gcS=>|I_WWBQ`N|o_Fa?H{I|Pdm<5y2Q6mO>= zJ!#z{8sb$1ES55WRhZ7_OzCjKT-7=*p6(%TE!l zPcNO!3vb28P|J@6w#Q96gaL#bUw`Gx;&@|46!;B5L8F3-jRY|k32ao7W$ZnpH$Ok^ zC!gjgK5T3Mm{`Me6Ikav9RPOKlVy#lk4mGm=krYG^CKrR=Z9$3c9)4v{jVE=i6gUW zMcS6H#WN$-ufe4DVuRh|-uHQ-4pPLg6*UUeliuq2D!LaMmYBoXDGfy*@#T0gH&u|2 zSu_m2od??pY;X5&PBdmkx^rz7*`;;XttZv9f6?3PCnpiD+_V1Om#HGg(UaNFOau~| zQeOO41c+qwuiswrlM}W8WbBj00aNC@uOUCV=Oa9`+x?Z;RG+(NkYKLGWn@-2z5XnHvyta`nESUK4C)=}swasPTb$&@UGbO(Y zj$w{;y`+vy-z+67H*%YJSf8u&-U6G-JC;OmRsF#4cbWy)*^sr&r5kp9PC;LmKRp`D z&?r=W8~?L0Mv3(&#{HdH1W5Do*xb3#M$f)G4+7BjAo7R%<1sXg(6>f*!%?&?HD1JN z8n(&2Cl%fy$r#7B$SWYiwrZ7){oP;HZ~x0=I?xQy+SAxJjTcuj96W4~=Dla%+b{sU zCilVZ*$mwVPE3`)iYrds~ZAIAd(Q$he8+0Y1HzF#Ooul*3zZ<(lj0o383s6SB5VzLhWA z)b0Glit`S_BJAFTTaZ-XA;HxRpCt0#)al!|t*dDO3?hDGO`-PJ!<(@G2fxH70K^+pCkrn(_eVE0EAYwCa`c zOU)%o#31pe7SeEjVqm*r8#YO3o2J7bL`{_BCMXh7qm2!J=B@et?5|+w=AP78Jfyry z&&U|bps?{lfIeR~?~&O$HOV!3VOp9%!x2?Cdcxf!`dGBl2XTzMh)`Dd3ApI)?iF$t z(QMUO*QKF{@SI<6s_PcU@Z$Z2sm=kucK?+WwMkUGEj0ms&n=a`2ayUX-#a?q5MdYD zJs?yqtYMB0jthNI;#1yl%nX7hn2zsUMeQIgkEXR2Q-W8h&Y z6W8Ea(BXWzs!Y%lx2cNl*6&6Z3?{gm;Th_{kT10{?(Ssy=<2<}|8~@FL}ii6{FoN< zG=BLmw+uh8{s(=M|6QgSJP}R^5nt5(`)*RS7(3RgA`ZwrMHNq&DS-i5MSw#I^~jhn zF>S5&3%$D$7V9Zy)YNf3_Y|rf=|E5~cRZww%D-YTC&|gAI6P9HyLqB&$5dd;>+9+G z&R3G_J%2a{wj)7e>u^`*!X3Sv zeIdyx?Qi3M(2Npl+Y05I<2zsAi*^n=L3UHMA1X?MPx>5gAD40?%7$&G-fWLo z1`1tc7RLJ>E0_)MiudD*wk+zKD4TZyXxJ47i#+mgTWtNRZYN0FaS&i8c_gWI*GxJa z?R@^nIl0ZX+37*s#o1=3YsSs;7uYRH=i(F(XepH9Kql~1uijL7EHm71y%v!yTtX!A z8ZrjEsJu9?L{F3(E;zi?ls-}@TGMq6n30|1Yd>`>*}-v-hP?KEl6-QoNq4Y`(%eL~ zJNqBI7oK1Ab60vyJ=vs_3EWj5SN$~>;U)!0ki6oX=opb%WlJg1)l5sn8Y6`9NQgT< zp@`FT@a74CyXN8Xt)>2q&p0h{zuz){^Ox>1Jzp|iC8t=G8#~yTUEe!7>&|xHh)jfme#1^N5&|3}({WDU0qM9 z0dXlAbHxpj)ew3{v$M!~^U|jC~xUw}*hFmUEE$B*zR@}oV zQY~ygmf)f4K91Otu8=MarpVa*Q1OB>QaUhG)_=?SLgZLP?H&BK0{q2qQ^Dk*HrFFK z-`RG}sHGxh`T|GddmHWC&mvM{v?Bdvco>+=-m*>EV&cNenO2;-w0siFmjd5Z?*0J= z&(O8wrEI=|u38!#$G_}K5g?KJ;r)JZE!wek8lcR~n}ywYZr#OEr;>G^pUK)Gbe z1o0YF=`E^u_GvG0eo~OC1AwQ`;%)mGvVEL|i#IH_v}ob{LXf^fkjQv|&Qe|;qB{SF z?=7>4TEOPU%w8Qj0#o!@;cPQoi3f5cpISKJRGe(1&ktP_(c{$-;@6x(SSYR_R1I?p zGmBuwzutTY5+U9wDJ80rR!GRfG+y5yk|-yg7j@CT_4XP0)sB&eo5xKj2LO+yw3_bE z?s$nId$E=6Z62czVZhf0mm~vE8^#WEF(pHWybF!*3&rAcRd?;>kxpmWpF5ftdzvLF zzf=?=o;lkAdP+Jw3O^1nVwy&TWtQv^19>RS*^P+X)DYJquCVSEF(ob~+8Q-Q>Qt|` zxj}VJeqEBUB5F3>%CCko!wU1CweSx&US8}r(yldY)FgjI+zrdC4KGqDm&SL>Q$6EILOmH%TDU$IE&7 z=~j=`C^sucLvD6H&&cM&c08(Kh*A3f#kGFSl^(#bV|`A4-%pGgO4|2-cCAb!1ID@^;?aWqj3t8k z1LlGII53h_i?7fo;#ospKSs|ph)Qlu=Co7B2zDycex%Nj>r@rhuZ|y9`ed``(|<6zF0GP6&w3P*-iVb)*dl;BAq4a zd(Ups$Lhh!%O#k|Q5gXj-UZI|qLx%^IKyZ}I<&~GgD*Hqs-#424C*lIP$@qq#KMJA zU_Xp- zTAb)2a77cc6Pw-uB}x=cNNbc6^`+Z$Rz@2H@c!T?F>kIqqa?a(Z@Df7&GDYhrVGt56n0tE%g@y zKjntjI-XpFQhnBv%UUIB6&(zG)e1n&yBvTu-lann3a`iyt-X0P?UAZcxZprQNnCxD zWy!|D!9mpNQoIS}KDH}S8fvu^xw`|?Nw-1?9_zfALi?Po*K5OU94f5EdSCHFAoDZ= zW0uHdOZ~%9nKNyMT)FTf;3*2%bPqBTpi(8CVMV5}1LJ5V*7&F_jlu?ZjK=G%^V#qs zWSc8n>}$!Ob9%5~Zr)|}-P^m%XVUVm+8PcpRx}#@_ph4S(p{jvU0Esik++y4w^}8y zZT=sq@=6~e{5azG`Xs6Bi9q^b^4?tV?g+WQg*(-JfvPcjV79%~Vak1KEOs?h!aF)I zFYm5srL}~(__OrAh5b(>&O3WV#OK@^kWj_PJKCVn>>PO+1zty11}`YR@)lg+Zxr0bKkxG4YOZ z$;X^3@+7Wr#G3lc1Jkr*us@{SB#hpsoc8DT?fdr77GBFSn%sT|x{3{0gn`ce&l^r* zYq0*XVnvb+QZ3aHK=YhPgT0EjSc%d{-dUSW=%T~TEqd{T;S0!5VW7TTV z%Dvx8cniqrR_9HHZB^dItDq-v^hPUWod`g0LF)eG!Nko?AO8@lkwb4#AL6`Gsx3kW6)5l?*2rky}QY;@{VGUyDO@9x6I+3L8`R3WO@eZGejio6$p zx^Zw~uKlL@GkTl4&XE<6SXupOp|pbdo5k3Mtfiq$iEfY^OtQ&`k-V&_MKG0yd@mbs|5mBZQFCrA_rlnXrlP0ZR4abuqc;rngr6c8s$Q zZE^sB<&KJ}llkOO_gJ(jU3i!xqak6_)7n4}%W^AB@67`uDUQL7(I)4}s%E8<61@O{n!`GCT-IqwQB)8 zAdv?Oep7ue8ZFwrvcl;!+fr7CV@KBOrcgdbYCsBEL_V%a#y3| z&*t$lc5A_FW$d7g3Zc6h1D;55iN91@J7?KveAheREN%P?#SPKj>6(MOY(1^JEGoC7 zf!jT%C_?`6oeh0VamZ55qxw!)u}9liVI1sN22&YXppj}v3v)dULW0KI_x-Wwb${23 zBs&B`sH_C8^V_Or^{Bb!+_5){;TNv@>dpioW+B)K=3GiV+1*X@i=bllF@-RLGqP?= zN#`dx1o!h?3*5+R@>)fD?y5}+o6~(8`E-Lg zpE4?xs5p4{F-2r7$6w0`rOP_&4Rv|q`6gOW0RCCfS`V6C{AI;wu4T@JV;TaX7P-^{ zgsJ`CB`|ZkUrR6^Q11|{`mYIWw=k@~9=~GYY{$K2Cb#AUY!sOHDsYQQt0c&wsiL|@ z4ht~g1jK^$?PQ=OP6CCxePyefI^}rvyckZ*UH2iI2NtO^yWNX&d>fW=?GGB>Yhbqi z+R#IC_xayFiUm=4K!^|F9 zi?4Mai?v$``5x6(EP;dm^7~lc`K>QQm@1eVi_-IE7Bi#ZZ=s`tH{(Rq?{Ho2t#oJ3 zYb9Oc-?T4X$#cj(B@l)EVuT3YJOR)FQ1}9$BCMPPM~9nVRd5o^Q-`s5q^7EJ31pe2 zmK-&=1rC{hG)^Qmz`-VP8N#2Uum+iC`)8+pnt^Xo$K|Nornkue7Fr@rLzo5ytVkbO zLwt^wQj*#Nxno}g{Q#Q^7}%1Mktr^B{(29yaFe2R;idT8Q%cuPGC9*#ftg!GR99dG zv0XxDi@MjNOBSk7xRQh2sakt(l9$PZWQ?C3d0yUvxvWKfY(MfxnZ9V|S9k9#oogR^ zjQs0|ZRaJ+1}0o^d8E!G1zc4 zAZ*x=vp8WcHmzI#Ux-{1GsZ6!O2sgTht%I1;|FH>=)f32-A1Z`w6fifkJP4pp<7(D zy7w4)ZqTeeG1q#D#}Kc-*4asC1IdEcyEL}zl5jAL`!8m9f=AsXV1zJdV=T3li>;lduohwSPv_fF* z*hBmLi zC#}lTAKq>$_?xc~g0$+=1!dOB1;rn_tY#?W*$|#)Y1Si?ZJSYKQ+4P76ctFNPX6ay zh)TD>K>@`yao5PjDqJi(cAyF z4$HC(Mt5H}1}1H07tn^)wN}a0Tv|&{GfT3=LtGJ1fzr~HI4F-?eu@iV#pSx_JlbnGlPlAq=T32x}5Idt0k#R=OP^1 zRpt8Q>~^NlN#n%!r7mXO;AiPfTYz8Qk{x+trUPy^9NVu^mDUft~zdT-rrFw>HKD3;y=0!-$7+OH%Va<1{Z2 z{n(HA8Ct%o_sz;hPdHXBx^5edMcqp={{9g@6^+*W$P7e3e?>H4#-Z#`?G=@@UzIf} zjE2HdW5>3{#W?ox!m72~WGRy#z-KPyE4|iCy}#V z6&%dP&Cwdk*duK|LwG{7r#VSF$q|*N2$+lE4xrGwFUcr3UQ#{jnP*7{-AC!vi9Nha zzbA6QRR%JhV_oJf8l{BH(I401aVG&hlsC%>UnV&4YJ?u>D(bbU&+=BPS!FU8MXINY z55rtY%Cp5pH`2ful7Lv7rXQA7h?{$sFxXYw<;VTZqMk#BhOwF`d<$>AKFhx=Eh9Z0PZ&j$Dwl1OWzm)#_~V_bQZ|e zIZqyoCW32XJJv-kW9WvJD(=HvfUCjI08-o9B7a$F0>-jnDhYTM&?x{&N=QgZ9i!CX zwiNl>1+2Q%yPsi&U6@jacE=R)y8%xw7h9Tj``c9X`$6R1B`^}ms7>FekL$^$@dt>$ zhl)lfQ$w-#TzFUWlE05>qusi;`$TbC`KR1fZ#KfkkrgSi;LT#N|b zbr}#;2lJZk90^fTy(XE+d$(W|49;on{XZ`jx}rv4E`Yhbhb%ytcAXUJ50Xiqz?P^NTRR*pCan|Cul*G@}a`?N?!Pns!%qS8!@Illt5weSf=M< zD_n*L*WGruk6hW_-k#Vk4ZILMvLNXyc*d%(T@P+e-MHC$y!y%Pq*?~K=1OzEJ6ee3 zsTEM8{7*nX5U?68;cO~D!rvQMI8a>~%743j%Tc23=c#4!0kt%f!UhYnlJ?kVQDbX;GDwB_woIRadGX6jb&6qaQ%75}`;DuM<_+~ah z6ii=)eO=Y*L|zDUAnvP8xb+>|0NQ^~Z^)|pW@xb+6B`a*$6)GpUiC546bH;=1!CZ2 zYO$+Wz{$e&netC4%*xe2kopEP^!ME%7d2jo8882=EQ9!MORdIpu34Eu#R<=ci<~in zp>}Ac{f=Hw6S4{(OU%o&bKB%g=?-oot>9sI%vw`CwuRA1U#HR(heZhquZuxfKu|Q? zn(SStWp|evlLz2jmYhiHaif@&CRq&35*f?)I7q+5=Zp(=xd<-9%1=kAIjZk!ozdNa zsj_V!;sJ39*-VBjJZhG2%6Kr^7MJ@P-lk~5dp2P@4j!c-!dw|KrYP98a=CKyF04t2krfBMM zy{PH0rrVKh{96paDk|$n<}cr)cv$2wD<#n5%DY^wwdpXr?I1Jd6&TB>I(YpmifGBtY~KBylEZbN1To2-m*@6 zkYZm}l&^=!*oxh}C&u4ypH3CzTroT|>MOxTWtd{@+WSR9?$YpyMIYKX73f;VSEY^0TsmZ>n-~Ez^5fOq3ZcHNJnDW&oC5Ft2kUX=wQve&b zlPxdFtQf)}Rc;VpV&&`;*-5^Cl&;t#f5$4Ky-xNW%Lx(8{-)K9y(JX`pi2FxH>_ZF zUMxJ#Yd%b8eja{o0cya9xIX8(pIEa*(JvVQ-b$AiPVAj>O~`yw`{7ygK`;5foHgw< zpi?98-6sZ3uQe~)f<`H(r2$Yy9)h$&=Tj+mn+C5IEzsSyoW{?)^h)=74=b@vxyHRf zP0Ie&DT+g(kMTwPwlB<1eGs*GOwtL4F;uT1|DiT-I^PcNt#%FfnmM(+U>?}mnen3E zX0d%nlboAe8XW=}WxDcvapnKiaN1Q7X_t;Td6aG-6O&^`Ew>smU(A#KWAL3ihHz-n zTX#k|^FZ6Hh%?k^vSF!KaX4zgj}+$2l_M*re*6Bq@yV;{V1{2I*nS^monoLm>7&NZ zfxMd}oxh)v#S#WAG8}3l&Q61c%@(V=9ig)kGfdc5;StYtXc_|^IejBt?tnfD(#B%i z1z&vASMJ9wXz-DJ-FVAL4;5P#b}NlWmXH;;sFrg@v2|vOy4Rsuysw);o8T{Kk`NsM-~&4g53LV1MI@ z11+HAA7Fh=FhC+C;HDUZyrk$PFFW6Opw_+pYX9_PYZwej3`(-u1|4RyZG0-oUUgq$F+Ucl9y z%o1?D)RcJN9E9cDQSJYQvtvIwJ_fK^z5IWb@-=CkM2X@bXF4cNqd>P~5*5MHEJcfx7Zi%2#tT#O&D54E892bD|0fnF;lVn5#U0B{Q z(aQ>>TXdwx6CucnUZ~|XkVjIrh847ZROLA%wJ_7|GwTKg;{7$g6SLDEbla%hrY#Y1xV6o_y~$kb*q`iTiEW2 zFP}Bc{z2{Ex|)v2?Zm#T_0A|=;UEM81Y|H3AMIJlWSFN?1u1%hvc!i0DcIpG;p{aH zMuX4*A>Zpf&yI9*3Uw{~>3c+_q`C&vMUwt84HX}(7lW%!5aQ8>br=ur{CHuv-+0cg zF`xtrN2d&HbBi;IBDA$1frU^)x-?>tTA0($P%#&dJVyNguj*C8029-0Z{htCE8sNQ zRPQNO;)oGcxiKSX{jWoeGBHZDkf3SEn^NSf*jh35-WaR?5NoCdcK}ne&muwt|9V3K zsX9l#T1uL*ub&HbJtUFoI+u+^{ntb@hSI%hVNMp#w`;9Ze*0=`8E#K&qZ&oWk3EeQ zu^pcN{waF3h6X7&RI<`~3xF14=9_s%IE!`yoARj6a=d=>{k@T$y4EZu= zE1IL(=X-@Kbp)R2u9knenrDRpycKUdudBAb2E4?8pzVJjb5W zto8xyOLcAYq-MLtG_WKpI^$PJo<&@S%vL~<%KCRf^=;J;P`;x7wdMh57Bd}eo-?S= zx1F=HjA#N+|D;ot@njF^JV_IFdgrcQI6Cy6^lq2=LrVDCXX#I%tjHlfjUNTyC!I99 zC10T4V~rb2%evg`$#cX?(712Vr~sNO+UTj4<#cZwwHP?*d0daHkr79k`K7v%nP@0s zmBjW#z{-p_oTRhdFy^QJ{Yw)QvVvAdyd{u!yd|sOQz`{I%}2#5vdxlXplqV5d+Yw~ zBQ+u#SQ*q9UcvO-d0Kg*m(xUJ>CzwKI3`Vg@OaMf(KR;RkErS{@0T;~FGP46UjoBk zIi;noiNuwE6^hH*b#w;0ac<{Dm)MniQcySn zqD+OX0u+*BSN!KT=$wJ{yJ>@$Y>H`+VbMS@#iPptRoGg8CJUm?tyA>!22zF zpm~a5q@SGVO%ifi)4#?G`pnJp_d_>h4Ac;wx58NbQG_nZKldfcz@T}5K zknB8^Np^zjU;2B;EvGF2DHndwjX+Vda?pt!c~^7m?H(E7Xa&<+a~~@4+E0Jv$+aqr zlRoZk@ZOx&&|eRjzkC${;<4&o{|sKvE7j-#=k(Tr`nd+fSnJ6^UFVrw3)ulup;~RG zj{%so1Jvd;(~>33$&*IR7o#()<%nMropA$Qw^8=HX@knt+4%I^8n^MO@lw*;v3$9N zbpt&_UdfFkhY3frXx_Is(Cn%Kef8`crV05z7iR}CsMA4|!yuojdpy{bjde8LCaQ+I z;lZRvn1ivAp-q3HHbwH3SU`uMoab!&3-70!Wp#Rc{fQwBUh7j+J*(T} zan9V9eyRhsjo_UR$Nh!i)o3HSXr#C_5Um;@YHQz|EGB9uyUB?-&+-U2*O$fHC%PKet32n(muwJ-L!e6;Py{8q*CxAr9f8`+i;uLyW-;;? zC0c31@%EUarC39in1oatQVib27FYMk4GYt#2DP>zI^I6YRr~$^oR>w*Gmw8jN5pf3 z>FK*B<#DC94c}^X+resSIWmItt+0!PfC+^sok&%2JRpSMnHY^@%WfLi)iQvWPI`Ty zo=WP}A_;{YFR%H|8bJ{UnFVf6`feoCGUsR+N?300 Date: Sun, 18 Feb 2024 18:22:10 +0100 Subject: [PATCH 198/376] and then this --- changelog | 2 ++ gradle.properties | 2 +- .../java/com/hbm/crafting/WeaponRecipes.java | 24 +++++++------------ .../entity/missile/EntityMissileBaseNT.java | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../tileentity/bomb/TileEntityLandmine.java | 4 +--- 6 files changed, 14 insertions(+), 22 deletions(-) diff --git a/changelog b/changelog index c5627dea7..34ec2ce1b 100644 --- a/changelog +++ b/changelog @@ -92,6 +92,8 @@ * Tier 4s now need three thrusters * Tier 0 missiles now come pre-fueled with solid fuel as part of their recipe * Updated the ABM recipe to use the act welder, being made of a tier 0 missile assembly with extra thrusters and loaded with TNT/TATB +* The super shotgun now has improved animations, and is centered like it is in the original DOOM games +* ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/gradle.properties b/gradle.properties index 63da2b739..6e16462c9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4859 +mod_build_number=4879 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index b2e085d57..a508e4f69 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -182,10 +182,8 @@ public class WeaponRecipes { //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_357 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', U235.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', PU239.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); @@ -194,20 +192,14 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_schrabidium, 1), new Object[] { " I ", "GCN", 'I', SA326.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'N', ModItems.billet_yharonite }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nightmare, 1), new Object[] { " I", "GC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_desh, 1), new Object[] { " I", "GC", 'I', DESH.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 1), new Object[] { " I", "GC", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 1), new Object[] { " I", "GC", 'I', STEEL.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_9 }); CraftingManager.addRecipeAuto(ModItems.ammo_556.stackFromEnum(30, Ammo556mm.K), new Object[] { "G", "C", 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 1), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'L', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'L', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index d91efb5db..3605e17ad 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -198,7 +198,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen data.setDouble("moX", -thrust.xCoord); data.setDouble("moY", -thrust.yCoord); data.setDouble("moZ", -thrust.zCoord); - data.setInteger("maxAge", 100 + rand.nextInt(40)); + data.setInteger("maxAge", 60 + rand.nextInt(20)); MainRegistry.proxy.effectNT(data); } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 1315d08e9..b2318df8d 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4859)"; + public static final String VERSION = "1.0.27 BETA (4879)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java index 65f53a83e..7e05391c1 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java @@ -3,7 +3,6 @@ package com.hbm.tileentity.bomb; import java.util.List; import com.hbm.blocks.bomb.Landmine; -import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -48,14 +47,13 @@ public class TileEntityLandmine extends TileEntity { // This is to prevent worldgen mines from detonating well before they become gameplay relevant if(o instanceof EntityPlayer) { - MainRegistry.logger.info("player is in range, enabling"); waitingForPlayer = false; return; } } else { if(o instanceof EntityLivingBase) { if(isPrimed) { - // iunno, you tell me + //the explosion is part of the mine block so that the IBomb interface works, i remember now landmine.explode(worldObj, xCoord, yCoord, zCoord); } From cc5371a761eb35bec62f9a75a17183a76389d31a Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 18 Feb 2024 21:13:15 +0100 Subject: [PATCH 199/376] no more instant loading --- .../java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java | 7 +++++++ .../com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index a2b9e565c..0ac00c5e2 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -11,6 +11,7 @@ import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -63,6 +64,12 @@ public class TileEntityLaunchPad extends TileEntityLaunchPadBase implements IEne super.updateEntity(); } + + @Override + public void finalizeLaunch(Entity missile) { + super.finalizeLaunch(missile); + this.delay = 100; + } @Override public DirPos[] getConPos() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index 934c43dc7..a60e17084 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -16,6 +16,7 @@ import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; +import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -280,6 +281,12 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements nbt.setFloat("erector", erector); nbt.setInteger("formFactor", formFactor); } + + @Override + public void finalizeLaunch(Entity missile) { + super.finalizeLaunch(missile); + this.erected = false; + } @Override public DirPos[] getConPos() { From d4203f03341ae13efd431acc5c33434bf6452fb3 Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 19 Feb 2024 10:54:44 +1100 Subject: [PATCH 200/376] Fix centered weapons erroneously gaining the ADS accuracy boost --- .../entity/projectile/EntityBulletBaseNT.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 53e45f70b..f7a9f5758 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -111,12 +111,20 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet ItemStack gun = entity.getHeldItem(); boolean offsetShot = true; + boolean accuracyBoost = false; if(gun != null && gun.getItem() instanceof ItemGunBase) { GunConfiguration cfg = ((ItemGunBase) gun.getItem()).mainConfig; - - if(cfg != null && (cfg.hasSights && entity.isSneaking()) || cfg.isCentered) { - offsetShot = false; + + if(cfg != null) { + if(cfg.hasSights && entity.isSneaking()) { + offsetShot = false; + accuracyBoost = true; + } + + if(cfg.isCentered){ + offsetShot = false; + } } } @@ -140,7 +148,7 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet this.renderDistanceWeight = 10.0D; this.setSize(0.5F, 0.5F); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread * (offsetShot ? 1F : 0.25F)); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread * (accuracyBoost ? 0.25F : 1F)); } public EntityBulletBaseNT(World world, int config, EntityLivingBase entity, EntityLivingBase target, float motion, float deviation) { From efc9220b45f2ded9b21808f0708ee1e2949df418 Mon Sep 17 00:00:00 2001 From: Kal19801 <158162434+Kal19801@users.noreply.github.com> Date: Mon, 19 Feb 2024 21:59:36 +0800 Subject: [PATCH 201/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 8b2429afa..abc8bf4a4 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -543,6 +543,7 @@ chem.HELIUM3=使用月球草皮提取氦-3 chem.KEVLAR=凯夫拉生产 chem.LPG=石油天然气液化 chem.LUBRICANT=润滑剂混合 +chem.MEAT_PROCESSING=异虫肉矿物提取 chem.METH=甲基苯丙胺合成 chem.NITAN=NITAN牌超级燃料混合 chem.NITRIC_ACID=硝酸生产 @@ -574,6 +575,9 @@ chem.SF_PETROIL=石油固化 chem.SF_PETROLEUM=石油气固化 chem.SF_RECLAIMED=再生油固化 chem.SF_SMEAR=工业油固化 +chem.SHELL_CHLORINE=16英寸氯气炮弹生产 +chem.SHELL_MUSTARD=16英寸芥子气炮弹生产 +chem.SHELL_PHOSGENE=16英寸光气炮弹生产 chem.SOLID_FUEL=固体火箭燃料生产 chem.SOLVENT=有机溶剂混合 chem.STEAM=烧水 @@ -660,6 +664,7 @@ container.heaterOven=加热炉 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 +tile.launch_pad_large.name=发射台 container.launchTable=大型发射台 container.leadBox=安全盒 container.machineBoiler=锅炉 @@ -1604,7 +1609,7 @@ item.ammo_arty_classic.name=16英寸炮弹 (特制) item.ammo_arty_he.name=16英寸高爆炮弹 item.ammo_arty_mini_nuke.name=16英寸微型核炮弹 item.ammo_arty_mini_nuke_multi.name=16英寸多弹头微型核炮弹 -item.ammo_arty_mustard_gas.name=16英寸芥子气炮炮弹 +item.ammo_arty_mustard_gas.name=16英寸芥子气炮弹 item.ammo_arty_nuke.name=16英寸核炮弹 item.ammo_arty_phosgene.name=16英寸光气炮弹 item.ammo_arty_phosphorus.name=16英寸磷炮弹 @@ -2050,6 +2055,8 @@ item.cape_nostalgia.name=DrNostalgia披风 item.cape_radiation.name=披风[辐射] item.cape_schrabidium.name=披风[Sa326] item.cape_vertice.name=Lord Vertice披风 +item.card_aos.name=黑桃A +item.card_qos.name=黑桃皇后 item.cart.crate.name=板条箱运输车 item.cart.destroyer.name=废品销毁车 item.cart.empty.name=钢箱矿车 @@ -2898,6 +2905,8 @@ item.key_kit.name=钥匙仿制套件 item.key_red.name=红色钥匙 item.key_red.desc=探索另一边。 item.key_red.desc.P11=§4e§r +item.key_red_cracked.name=破碎的钥匙 +item.key_red_cracked.desc=??? item.kit_toolbox.name=工具箱 item.kit_toolbox_empty.name=空工具箱 item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 @@ -3028,6 +3037,7 @@ item.missile_skin_soviet_stank.desc=这个真的很有60年代的味道。 item.missile_soyuz.name=联盟-FG运载火箭 item.missile_soyuz_lander.name=联盟号轨道舱 item.missile_soyuz_lander.desc=劣质着陆器! +item.missile_stealth.name=隐身导弹 item.missile_strong.name=强化型高爆导弹 item.missile_taint.name=污染导弹 item.missile_volcano.name=构造导弹 @@ -3531,7 +3541,7 @@ item.powder_emerald.name=绿宝石粉 item.powder_euphemium.name=Ep粉 item.powder_euphemium.desc=粉红色$尝起来像草莓。 item.powder_fertilizer.name=工业肥料 -item.powder_fire.name=火焰粉 +item.powder_fire.name=红磷粉 item.powder_fire.desc=用于多用途炸弹:燃烧弹很有趣! item.powder_flux.name=助熔剂 item.powder_gold.name=金粉 @@ -4007,6 +4017,7 @@ item.singularity_spark.name=Spark奇点 item.singularity_super_heated.name=超热共振奇点 item.siox.name=SiOX抗癌药物 item.siox.desc=使用石棉的力量逆转间皮瘤! +item.siphon.name=虹吸管 item.siren_track.name=警报声轨 item.sliding_blast_door_skin.0.name=滑动防爆门 皮肤:默认 item.sliding_blast_door_skin.1.name=滑动防爆门 皮肤:变型1 @@ -5186,7 +5197,7 @@ tile.ore_meteor_tungsten.name=钨矿陨石 tile.ore_meteor_uranium.name=铀矿陨石 tile.ore_nether_coal.name=燃烧下界煤矿 tile.ore_nether_cobalt.name=下界钴矿石 -tile.ore_nether_fire.name=火矿石 +tile.ore_nether_fire.name=磷矿石 tile.ore_nether_plutonium.name=下界钚矿石 tile.ore_nether_schrabidium.name=下界Sa326矿石 tile.ore_nether_smoldering.name=阴燃下界岩 @@ -5380,11 +5391,15 @@ tile.sellafield.5.name=放射性熔融凝固物核心 tile.sellafield_slaked.name=消沉的放射性熔融凝固物 tile.semtex.name=塞姆汀塑胶炸药 tile.silo_hatch.name=发射井舱门 +tile.silo_hatch_large.name=大型发射井舱门 tile.sliding_blast_door.name=滑动防爆门 tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 tile.spikes.name=地刺 +tile.spotlight_incandescent.name=罩灯 +tile.spotlight_fluoro.name=荧光灯 +tile.spotlight_halogen.name=卤素泛光灯 tile.stalactite.asbestos.name=石棉钟乳石 tile.stalactite.sulfur.name=含硫钟乳石 tile.stalagmite.asbestos.name=石棉石笋 @@ -5401,6 +5416,7 @@ tile.steel_wall.name=钢墙 tile.stone_cracked.name=破碎的石头 tile.stone_depth.name=深层岩石 tile.stone_depth_nether.name=下界深层岩石 +tile.stone_keyhole.name=奇怪的石头 tile.stone_gneiss.name=石墨页岩 tile.stone_porous.name=多孔石 tile.stone_resource.asbestos.name=温石棉 From 79d57071b72646b3b69613cd3694310bad6e1578 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 19 Feb 2024 15:55:48 +0100 Subject: [PATCH 202/376] fixes, flixes and foxes --- changelog | 124 ++---------------- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../java/com/hbm/config/GeneralConfig.java | 2 + .../hbm/inventory/FluidContainerRegistry.java | 2 +- .../com/hbm/inventory/fluid/FluidType.java | 4 +- .../inventory/recipes/AssemblerRecipes.java | 1 - src/main/java/com/hbm/items/ModItems.java | 2 +- .../java/com/hbm/items/tool/ItemWandD.java | 7 +- .../java/com/hbm/main/CraftingManager.java | 7 +- .../com/hbm/main/ModEventHandlerClient.java | 30 +++-- .../bomb/TileEntityLaunchPadBase.java | 2 +- src/main/java/com/hbm/util/Compat.java | 3 +- src/main/java/com/hbm/world/dungeon/Silo.java | 14 +- 13 files changed, 61 insertions(+), 139 deletions(-) diff --git a/changelog b/changelog index 34ec2ce1b..31de0a7b9 100644 --- a/changelog +++ b/changelog @@ -1,116 +1,14 @@ -## Added -* More custom machine parts - * Custom machines now have a neutron acceptor which allows them to use flux from the breeding reactor in recipes - * There is now a heat acceptor which can accept heat from things like fireboxes or electric heaters - * Also added a config option to create pollution -* Hydrotreater - * Tier 3 oil machine (on the same level as vacuum oil and reforming) - * Can de-sulfurize oil, which allows extraction of sour gas directly from crude oil - * Using desulfurized oil skips the (rather destructive) desulfurization process of the standard refinery, yielding higher-quality oils - * Hydrotreating also allows cracked diesel variants to turn into their normal counterparts - * Can convert coal oil directly into coal gasoline - * For people afraid that this means yet another oil expansion that they need to progress through, I can assure you that this machine is entirely optional -* Rural house - * A new structure of an old brick house -* Industrial lighting - * Three new lamps that project out a beam of light for more coverage - * Cage lamps are made from tungsten filaments and project light by 2 additional blocks - * Fluorescent lights are made from mercury and project light 8 blocks, they also connect with each other to form light strips - * Halogen floodlights are made with bromine and cast a light beam 32 blocks long - * Lights are on by default and can be toggled with redstone - * Tritium lamps have also been retrofitted with longer range lighting, casting beams in all cardinal directions for 8 blocks -* Launch pad - * The standard launch pad is now a 9x9 platform that changes depending on what missile is loaded - * Missiles now have to be fueled like they would need to be on custom missile launchers - * The old launch pad has been renamed to silo launch pad and has kept the same rough shape - * Launch pads can still receive missiles from hoppers, however they now have a loading delay, making missiles no longer spammable from a single launch pad - * Large launch pads have to physically lift and place the rocket onto the pad, while the silo launch pad has a refueling delay - * Custom missiles are not yet usable on the new launch pad, for now they still require the dedicated custom missile launch pads -* Large silo hatch - * Because the new nuclear missile model is too fat, there's now a larger silo hatch - * Has a 7x7 footprint and a 5x5 opening -* Bedrock ores for neodymium and rare earth chunks - ## Changed -* Deco bocks now drop all of the time, but they drop themselves instead of ingots - * To get the ingots, deco blocks now have to be deconstructed in the anvil, yielding an ingot 25% of the time - * If I see one more person complaining about the chances I'm reducing it down to 10% -* Catalytic reformers now have a tooltip informing about the need for a catalytic converter -* Several guns now have reload animations including most .357 revolvers and Samuel -* Updated stealth missile texture -* Some of the larger oil machines now render using display lists which should make them somewhat more performant -* Glyphid diggers can no longer yeet multiblocks or blocks with a tile entity -* Parasite-infested glyphids now explode into gore when the parasites pop out -* Missiles now have a top acceleration twice as much as the previous acceleration, but instead of being static, the acceleration goes up from 0 to max within 3 seconds - * This makes missiles reach top speed faster while also making the launches themselves slower and more pleasant -* Strange stone can no longer be destroyed via AoE, making it easier to find without accidentally mining it -* Launch pads now spawn launch smoke just like custom missile compact launchers -* Remodeled all tier 0 missiles -* Tier 0 missiles now have a much thinner contrail to match their size better -* Covneyor ejectors can now eject sulfur out of the side ports of refineries -* Refineries and vacuum refineries now have fluid ID slots for changing the recipe -* Removed the remaining old oil separation recipes from the chemical plant - * To help people coping with this terrible, terrible loss, fraction towers are now twice as fast - * This is a reminder that the chemical plant is a chemical reactor first and foremost, recipes like mixing and fractioning only existed because at the time there was no dedicated machine for it - * Fractional distilling is not a chemical process but a purely physical one, I don't know who needs to know this but I feel like some people might be unaware of the fact -* More large models have been converted into display lists which should improve performance somewhat -* Corroded barrels now crumble after a while -* PWRs on the edge of unloaded chunks now additionally reset their internal heat value to further reduce the time until they can potentially melt down -* Removed the assembly recipe for the radial engine since it will be retired soon -* Removed the endo and exothermal missiles -* Doomsday missiles are no longer laggy cluster missiles, instead they are now near-identical to thermonuclear missiles but with an added fallout radius of 100# -* Fallout rain now uses the same variable length code that the MK5 uses for optimal tick utilization, making it a lot faster -* Lighter sellafite variants should no longer replace darker ones in overlapping craters, making bombed-out landscapes look more natural -* Fallout's range-based effects now have a more natural gradient instead of creating smooth rings -* Fallout has been made significantly darker and less saturated to blend in with the crater more -* Except for solid fueled missiles, all missiles are now fueled in the launch pad and no longer need to be crafted with fuel -* Missile fuel types have been adjusted - * Tier 0: Solid Fuel - * Tier 1: Ethanol + Peroxide - * Tier 2: Kerosene + Peroxide - * Tier 3: Kerosene + LOXY - * Tier 4: Jet Fuel + LOXY -* The micro EMP has been made cheaper, while the schrabidium missile has been made more expensive -* Oxyhydrogen can now be made by mixing air (i.e. nothing) with hydrogen - * The oxygen + hydrogen recipe remains in order to give an option to void oxygen without needing to resort to flare stacks -* Removed some of the lower tier items fomr the red room loot pool, making the average red room better -* Retextured the fallout effect, fallout no longer has large snowflakes and the color now matches the crater better -* High-yield mini nukes no longer create chunk radiation, since they use the MK5 which already has AoE radiation, this prevents dead grass from spawning that makes the crater look uglier -* Balefire spread is now limited to prevent densely vegetated biomes from lagging to hell -* The bricked furnace now makes charcoal twice as fast -* Combination ovens no longer need two welded copper plates and instead only cast plates, therefore no longer being post-arc welder. This should make it more affordable and useful in the initial earlygame where things like automatic wood farms are most important. -* Any water-like extinguishing fluid shot from the chemical thrower can now wash away fallout layers -* Overhauled the Mk.III life extender - * The assembler recipe has been replaced with a simpler but more expensive workbench recipe - * Instead of taking up the chestplate slot, it's now an armor mod worn in the insert slot - * The armor no longer gives absorption, instead it adds 25 points to the shield count - * The +25 bypasses the shield limit of 100, meaning that with enough shield infusions, the total maximum is now 125 -* The likelihood of uranium ore turning into schrabidium from full-sized nukes is now 10% instead of 1%. Conversion rates for small dirty explosions such as radioactive barrels remain unchanged. -* Fallout layers will no longer affect players in creative mode -* Rare earth chunks are now centrifugable, yielding larger quantities of the elements that are most needed earlier in the game -* Tier 3 missilles no longer need large fuel tanks and thrusters, instead they use two medium fuel tanks and four medium thrusters -* Tier 4s now need three thrusters -* Tier 0 missiles now come pre-fueled with solid fuel as part of their recipe -* Updated the ABM recipe to use the act welder, being made of a tier 0 missile assembly with extra thrusters and loaded with TNT/TATB -* The super shotgun now has improved animations, and is centered like it is in the original DOOM games -* +* Due to the HTR-01 being incompatible with the new launch pad, it is no longer craftable and is being retired + * Any remaining rockets can be crafted into a Soyuz +* All Soyuz launcher components now have double the yield in crafting recipes, making the launcher half as expensive +* There is now a config for disabling fluid container oredict (i.e. anything with the "container" prefix) which also disables TrainCraft diesel compatibility +* Silo structures now spawn with launch pads again + * This is strictly speaking a progression skip since silo launch pads are post vacuum oil, the structure will be overhauled soon ## Fixed -* Fixed dupe caused by shift-clicking ashes out of the bricked furnace -* Fixed missiles jerkingly rotating when launching, they should now smoothly transition from being part of the launch pad to being an entity -* Fixed missile control and launch smoke shifting around when the player is moving -* Fixed fast-moving missiles spawning too few particles, causing holes in the contrail -* Fixed coker units creating soot when not processing anything -* Foundry molds can no longer be removed from basins when there's still material in them, fixing a bug where doing so would void the material -* Fixed molds not saving when cooling off, allowing to dupe metal when leaving and rejoining -* Fixed normal drones loading chunks -* Fixed chunk-loading drones not loading chunks -* Fixed several chemistry templates missing names -* Fixed rampant mode random scout spawns being able to appear inside blocks -* Fixed turret rotation sometimes desyncing when out of range, this is especially noticeable with slow-moving arty -* Fixed research reactor OC integration allowing the control rods to be set out of bounds -* Fixed fallout falling faster and overlaying if multiple fallout areas intersect -* Fixed template folder 3D models rendering with weird shading -* HUD elements like jetpack charge and the shield bar should now still render even if Tinker's Construct replaces the health bar renderer -* Fixed players glitching into blocks with larger bounding box when standing on top of them and relogging -* Fixed a rare crash caused by doors on chunk borders +* Fixed missile loading process being skipped when a new missile is inserted in the same tick as the launch pad is triggered +* Fixed super shotgun's centered model causing it to permanently have the ironsights accuracy bonus +* The shield bar now renders as part of the armor HUD (but still below it), which should fix the issue of the bar not rendering with Tinker's Construct installed for good +* Fixed launch pad redstone interaction breaking after the first time the redstone state changes +* Fallout layers now use the sand material, fixing an issue where grass blocks with fallout on top look snowy diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 2d21aa53b..8982db906 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1753,7 +1753,7 @@ public class ModBlocks { frozen_grass = new WasteEarth(Material.ground, false).setBlockName("frozen_grass").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); frozen_log = new WasteLog(Material.wood).setBlockName("frozen_log").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); frozen_planks = new BlockOre(Material.wood).setBlockName("frozen_planks").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_planks"); - fallout = new BlockFallout(Material.snow).setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash"); + fallout = new BlockFallout(Material.sand).setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash"); foam_layer = new BlockLayering(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); leaves_layer = new BlockLayering(Material.leaves).setBlockName("leaves_layer").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 0c39c8180..929ac19d7 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -31,6 +31,7 @@ public class GeneralConfig { public static boolean enableImpactWorldProvider = true; public static boolean enableStatReRegistering = true; public static boolean enableKeybindOverlap = true; + public static boolean enableFluidContainerCompat = true; public static int hintPos = 0; public static boolean enableExpensiveMode = false; @@ -92,6 +93,7 @@ public class GeneralConfig { enableImpactWorldProvider = config.get(CATEGORY_GENERAL, "1.32_enableImpactWorldProvider", true, "If enabled, registers custom world provider which modifies lighting and sky colors for post impact effects.").getBoolean(true); enableStatReRegistering = config.get(CATEGORY_GENERAL, "1.33_enableStatReRegistering", true, "If enabled, will re-register item crafting/breaking/usage stats in order to fix a forge bug where modded items just won't show up.").getBoolean(true); enableKeybindOverlap = config.get(CATEGORY_GENERAL, "1.34_enableKeybindOverlap", true, "If enabled, will handle keybinds that would otherwise be ignored due to overlapping.").getBoolean(true); + enableFluidContainerCompat = config.get(CATEGORY_GENERAL, "1.35_enableFluidContainerCompat", true, "If enabled, fluid containers will be oredicted and interchangable in recipes with other mods' containers, as well as TrainCraft's diesel being considered a valid diesel canister.").getBoolean(true); enableExpensiveMode = config.get(CATEGORY_GENERAL, "1.99_enableExpensiveMode", false, "It does what the name implies.").getBoolean(false); diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index ac426cf5a..c3f0e4afc 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -91,7 +91,7 @@ public class FluidContainerRegistry { allContainers.add(con); OreDictionary.registerOre(con.type.getDict(con.content), con.fullContainer); - if (!containerMap.containsKey(con.type)) + if(!containerMap.containsKey(con.type)) containerMap.put(con.type, new ArrayList()); List items = containerMap.get(con.type); diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 728c0bad2..7b954fd49 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -8,6 +8,7 @@ import java.util.Map.Entry; import org.lwjgl.input.Keyboard; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; @@ -150,7 +151,8 @@ public class FluidType { return this.localizedOverride != null ? this.localizedOverride : this.unlocalized; } public String getDict(int quantity) { - return "container" + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US); + String prefix = GeneralConfig.enableFluidContainerCompat ? "container" : "ntmcontainer"; + return prefix + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US); } public boolean isHot() { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index ef9a74ed4..068b8db5b 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -179,7 +179,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 2), new OreDictStack(TI.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.rocket_fuel, 8), new ComparableStack(ModItems.circuit_targeting_tier1, 1), }, 200); - makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new OreDictStack(ANY_RUBBER.ingot(), 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit_targeting_tier2) },100); makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3) },150); makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4) },200); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 088ffd540..9ace8049a 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3955,7 +3955,7 @@ public class ModItems { missile_emp = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); missile_shuttle = new ItemMissile(MissileFormFactor.OTHER, MissileTier.TIER3, MissileFuel.KEROSENE_PEROXIDE).setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); missile_stealth = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER1).setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); - missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_carrier"); + missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_carrier"); missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); missile_custom = new ItemCustomMissile().setUnlocalizedName("missile_custom").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_custom"); diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index b3fff506b..ceec81bec 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; +import com.hbm.world.dungeon.Silo; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -70,13 +71,15 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - List del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50)); + /*List del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50)); if(!del.isEmpty()) { for(EntityNukeTorex torex : del) torex.setDead(); } else { EntityNukeTorex.statFac(world, pos.blockX, pos.blockY + 1, pos.blockZ, 150); - } + }*/ + + new Silo().generate(world, world.rand, pos.blockX, pos.blockY + 1, pos.blockZ); /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 04f6ac617..4531f4a4b 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -765,9 +765,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ANY_COKE.gem(), 'S', KEY_STICK }); addRecipeAuto(new ItemStack(ModBlocks.machine_missile_assembly, 1), new Object[] { "PWP", "SSS", "CCC", 'P', ModItems.pedestal_steel, 'W', ModItems.wrench, 'S', STEEL.plate(), 'C', ModBlocks.steel_scaffold }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 4), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete_smooth }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 4), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete }); - addRecipeAuto(new ItemStack(ModBlocks.struct_scaffold, 4), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', new ItemStack(ModBlocks.fluid_duct_neo, 1, OreDictionary.WILDCARD_VALUE), 'C', ModBlocks.red_cable }); + addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 8), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ANY_CONCRETE.any() }); + addRecipeAuto(new ItemStack(ModBlocks.struct_scaffold, 8), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', new ItemStack(ModBlocks.fluid_duct_neo, 1, OreDictionary.WILDCARD_VALUE), 'C', ModBlocks.red_cable }); addRecipeAuto(new ItemStack(ModItems.seg_10, 1), new Object[] { "P", "S", "B", 'P', AL.plate(), 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam }); addRecipeAuto(new ItemStack(ModItems.seg_15, 1), new Object[] { "PP", "SS", "BB", 'P', TI.plate(), 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam }); @@ -1188,6 +1187,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 4), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_schrabidium); addRecipeAuto(new ItemStack(ModBlocks.cm_flux, 1, 0), "NNN", "ZCZ", "NNN", 'Z', ZR.plateCast(), 'N', ModItems.neutron_reflector, 'C', ModItems.reactor_core); addRecipeAuto(new ItemStack(ModBlocks.cm_heat, 1, 0), "PCP", "PCP", "PCP", 'P', ModItems.plate_polymer, 'C', CU.ingot()); + + addShapelessAuto(new ItemStack(ModItems.missile_soyuz), new ItemStack(ModItems.missile_carrier)); } public static void crumple() { diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index c0ec6f220..bdbcb5a77 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -365,23 +365,30 @@ public class ModEventHandlerClient { } @SubscribeEvent(receiveCanceled = true) - public void onOverlayRender(RenderGameOverlayEvent.Post event) { + public void onHUDRenderShield(RenderGameOverlayEvent.Pre event) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + + if(event.type == event.type.ARMOR) { + + HbmPlayerProps props = HbmPlayerProps.getData(player); + if(props.getEffectiveMaxShield() > 0) { + RenderScreenOverlay.renderShieldBar(event.resolution, Minecraft.getMinecraft().ingameGUI); + } + } + } + + @SubscribeEvent(receiveCanceled = true, priority = EventPriority.LOW) + public void onHUDRenderBar(RenderGameOverlayEvent.Post event) { /// HANDLE ELECTRIC FSB HUD /// EntityPlayer player = Minecraft.getMinecraft().thePlayer; Tessellator tess = Tessellator.instance; - if(!event.isCanceled() && event.type == event.type.HEALTH) { - HbmPlayerProps props = HbmPlayerProps.getData(player); - if(props.getEffectiveMaxShield() > 0) { - RenderScreenOverlay.renderShieldBar(event.resolution, Minecraft.getMinecraft().ingameGUI); - } - } - - if(!event.isCanceled() && event.type == event.type.ARMOR) { + if(event.type == event.type.ARMOR) { - if(ForgeHooks.getTotalArmorValue(player) == 0/* && GuiIngameForge.left_height == 59*/) { + if(ForgeHooks.getTotalArmorValue(player) == 0) { GuiIngameForge.left_height -= 10; } @@ -398,7 +405,7 @@ public class ModEventHandlerClient { for(int i = 0; i < (noHelmet ? 3 : 4); i++) { - int top = height - GuiIngameForge.left_height + 6; + int top = height - GuiIngameForge.left_height + 7; ItemStack stack = player.inventory.armorInventory[i]; @@ -452,7 +459,6 @@ public class ModEventHandlerClient { GL11.glEnable(GL11.GL_TEXTURE_2D); } - } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index 6236d950b..ef9631a5f 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -168,7 +168,7 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl } } - if(this.redstonePower > 0 && this.prevRedstonePower == 0) { + if(this.redstonePower > 0 && this.prevRedstonePower <= 0) { this.launchFromDesignator(); } diff --git a/src/main/java/com/hbm/util/Compat.java b/src/main/java/com/hbm/util/Compat.java index 3a8a4a9a6..3b6bc6069 100644 --- a/src/main/java/com/hbm/util/Compat.java +++ b/src/main/java/com/hbm/util/Compat.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; +import com.hbm.config.GeneralConfig; import com.hbm.handler.HazmatRegistry; import com.hbm.hazard.HazardRegistry; import com.hbm.inventory.FluidContainer; @@ -163,7 +164,7 @@ public class Compat { public static void registerCompatFluidContainers() { - if(Compat.isModLoaded(Compat.MOD_TC)) { + if(Compat.isModLoaded(Compat.MOD_TC) && GeneralConfig.enableFluidContainerCompat) { Item canister = Compat.tryLoadItem(Compat.MOD_TC, "emptyCanister"); Item diesel = Compat.tryLoadItem(Compat.MOD_TC, "diesel"); if(diesel != null && canister != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(diesel), new ItemStack(canister), Fluids.DIESEL, 1000)); diff --git a/src/main/java/com/hbm/world/dungeon/Silo.java b/src/main/java/com/hbm/world/dungeon/Silo.java index fba097d42..92597fe3d 100644 --- a/src/main/java/com/hbm/world/dungeon/Silo.java +++ b/src/main/java/com/hbm/world/dungeon/Silo.java @@ -4,7 +4,9 @@ package com.hbm.world.dungeon; import java.util.Random; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.LaunchPad; import com.hbm.config.GeneralConfig; import com.hbm.lib.HbmChestContents; import com.hbm.lib.Library; @@ -15,6 +17,7 @@ import net.minecraft.tileentity.TileEntityChest; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraftforge.common.util.ForgeDirection; public class Silo extends WorldGenerator { @@ -374,8 +377,6 @@ public class Silo extends WorldGenerator world.setBlock(x + 6, y + -20, z + 10, Blocks.air, 0, 3); world.setBlock(x + 7, y + -20, z + 10, Blocks.air, 0, 3); world.setBlock(x + 8, y + -20, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 9, y + -20, z + 10, Block2, 0, 3); - world.setBlock(x + 10, y + -20, z + 10, Blocks.unpowered_repeater, 3, 3); world.setBlock(x + 11, y + -20, z + 10, Blocks.redstone_wire, 0, 3); world.setBlock(x + 12, y + -20, z + 10, Blocks.redstone_wire, 0, 3); world.setBlock(x + 13, y + -20, z + 10, Blocks.iron_bars, 0, 3); @@ -2474,6 +2475,14 @@ public class Silo extends WorldGenerator world.setBlock(x + 8, y + 1, z + 13, Block6, 0, 3); world.setBlock(x + 9, y + 1, z + 13, Block6, 0, 3); world.setBlock(x + 10, y + 1, z + 13, Block6, 0, 3); + + + BlockDummyable.safeRem = true; + world.setBlock(x + 9, y + -20, z + 10, ModBlocks.launch_pad, 12, 3); + ((LaunchPad) ModBlocks.launch_pad).fillSpace(world, x + 9, y + -20, z + 10, ForgeDirection.NORTH, 0); + BlockDummyable.safeRem = false; + + //world.setBlock(x + 9, y + -20, z + 10, ModBlocks.stone_biome, 1, 3); generate_r03_last(world, rand, x, y, z); return true; @@ -2520,6 +2529,7 @@ public class Silo extends WorldGenerator world.setBlock(x + 9, y + -1, z + 2, Blocks.ladder, 3, 3); world.setBlock(x + 9, y + 0, z + 2, Blocks.ladder, 3, 3); world.setBlock(x + 9, y + 1, z + 2, Blocks.ladder, 3, 3); + if(GeneralConfig.enableDebugMode) System.out.print("[Debug] Successfully spawned missile silo at " + x + " " + y +" " + z + "\n"); return true; From 211028b4ef85c81881d9ee4454ae93422175d0a6 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 19 Feb 2024 15:57:50 +0100 Subject: [PATCH 203/376] we don't version bump, we version punch you in the dick --- changelog | 1 + gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/changelog b/changelog index 31de0a7b9..b007c05fe 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,5 @@ ## Changed +* Updated chinese localization * Due to the HTR-01 being incompatible with the new launch pad, it is no longer craftable and is being retired * Any remaining rockets can be crafted into a Soyuz * All Soyuz launcher components now have double the yield in crafting recipes, making the launcher half as expensive diff --git a/gradle.properties b/gradle.properties index 6e16462c9..d9a886880 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4879 +mod_build_number=4880 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index b2318df8d..2884cce77 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4879)"; + public static final String VERSION = "1.0.27 BETA (4880)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version From ff713d10bd3c83a1788511d5c83fcfee9c7f8b4a Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 20 Feb 2024 09:42:38 +1100 Subject: [PATCH 204/376] Improve SSG animations --- .../render/item/weapon/ItemRenderWeaponShotty.java | 14 +++++++++----- .../hbm/models/weapons/animations/supershotty.json | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java index b48f78a84..022a0a8a4 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java @@ -49,16 +49,20 @@ public class ItemRenderWeaponShotty implements IItemRenderer { switch(type) { case EQUIPPED_FIRST_PERSON: + + boolean linear = false; // TODO: Config option + + String animSuffix = linear ? "Lame" : ""; GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-95F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-2.0F, 0.5F, -2.0F); + GL11.glTranslatef(-2.0F, 0.25F, -2.5F); - HbmAnimations.applyRelevantTransformation("Body"); + HbmAnimations.applyRelevantTransformation("Body" + animSuffix); ResourceManager.shotty.renderPart("Body"); - HbmAnimations.applyRelevantTransformation("Barrel"); + HbmAnimations.applyRelevantTransformation("Barrel" + animSuffix); ResourceManager.shotty.renderPart("Barrel"); // If we've run out of ammo, stop drawing the shells after ejection has completed @@ -67,12 +71,12 @@ public class ItemRenderWeaponShotty implements IItemRenderer { if(ItemGunBase.getBeltSize(player, ItemGunBase.getBeltType(player, item, true)) > 0 || millis < 1000) { GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("ShellL"); + HbmAnimations.applyRelevantTransformation("ShellL" + animSuffix); ResourceManager.shotty.renderPart("ShellL"); GL11.glPopMatrix(); GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("ShellR"); + HbmAnimations.applyRelevantTransformation("ShellR" + animSuffix); ResourceManager.shotty.renderPart("ShellR"); GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json b/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json index a03ff1ab5..fc1287ec3 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json @@ -1 +1 @@ -{"anim": {"Fire": {"Barrel": {"rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [-60.019016916301425, 583.3333333333334, "CONSTANT"], [0.0, 816.6666666666666, "CONSTANT"]]}}, "Body": {"location": {"x": [[0.0, 0.0], [-0.03072790987789631, 66.66666666666667], [-0.015153210610151291, 50.0], [0.022971127182245255, 49.999999999999986], [0.0, 133.33333333333334], [-0.07112908363342285, 283.33333333333337], [-0.21566513180732727, 166.66666666666663], [-0.30311062932014465, 166.66666666666663], [0.09931233525276184, 200.0000000000001], [0.09931233525276184, 99.99999999999977], [0.1618872582912445, 33.333333333333485], [0.16223274171352386, 33.33333333333326], [0.08028656989336014, 183.33333333333326], [0.0, 150.00000000000023]], "z": [[-0.0, 0.0], [0.6719817519187927, 66.66666666666667], [0.7913707494735718, 50.0], [0.4098809063434601, 49.999999999999986], [-0.0, 133.33333333333334], [-0.0558139905333519, 283.33333333333337], [-0.33660149574279785, 166.66666666666663], [-0.3699745833873749, 166.66666666666663], [-0.27975839376449585, 200.0000000000001], [-0.27975839376449585, 99.99999999999977], [-0.3401995301246643, 33.333333333333485], [-0.3562721014022827, 33.33333333333326], [-0.2893483638763428, 183.33333333333326], [-0.0, 150.00000000000023]], "y": [[0.0, 0.0], [0.04576312005519867, 66.66666666666667], [-0.05352889001369476, 50.0], [0.05586424842476845, 49.999999999999986], [0.0, 133.33333333333334], [-0.19011610746383667, 283.33333333333337], [-0.17373046278953552, 166.66666666666663], [-0.2395477145910263, 166.66666666666663], [-0.318528413772583, 200.0000000000001], [-0.318528413772583, 99.99999999999977], [-0.5854879021644592, 33.333333333333485], [-0.6872552037239075, 33.33333333333326], [-0.08996553719043732, 183.33333333333326], [0.0, 150.00000000000023]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [18.96056586236767, 33.333333333333336, "CONSTANT"], [0.0, 200.0, "CONSTANT"], [4.2845085106836525, 350.0, "CONSTANT"], [-4.00202896208485, 699.9999999999999, "CONSTANT"], [29.908722186758006, 116.66666666666674, "CONSTANT"], [0.0, 216.66666666666674, "CONSTANT"]], "z": [[-0.0, 0.0, "CONSTANT"], [-8.923772777989535, 33.333333333333336, "CONSTANT"], [-0.0, 200.0, "CONSTANT"], [1.6447364460089273, 350.0, "CONSTANT"], [-0.729462122284099, 699.9999999999999, "CONSTANT"], [-10.496272716449585, 116.66666666666674, "CONSTANT"], [-0.0, 216.66666666666674, "CONSTANT"]], "y": [[0.0, 0.0, "CONSTANT"], [1.9835915222433687, 33.333333333333336, "CONSTANT"], [0.0, 200.0, "CONSTANT"], [26.651758433868473, 350.0, "CONSTANT"], [17.920975212198584, 699.9999999999999, "CONSTANT"], [19.204354096865643, 116.66666666666674, "CONSTANT"], [0.0, 216.66666666666674, "CONSTANT"]]}}, "ShellL": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.09376272559165955, 49.999999999999886], [0.1621313840150833, 83.33333333333337], [0.17189833521842957, 33.33333333333337], [0.17189833521842957, 50.0], [-0.25194650888442993, 66.66666666666674], [-0.7040476202964783, 149.9999999999999, "CONSTANT"], [-1.641493320465088, 16.66666666666663], [-0.48360228538513184, 66.66666666666674], [-0.0976385846734047, 66.66666666666674], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [1.188506007194519, 49.999999999999886], [2.0551249980926514, 83.33333333333337], [2.1789276599884033, 33.33333333333337], [2.1789276599884033, 50.0], [0.6366069316864014, 66.66666666666674], [-1.0085352659225464, 149.9999999999999, "CONSTANT"], [-1.0141838788986206, 16.66666666666663], [0.6391998529434204, 66.66666666666674], [1.1903276443481445, 66.66666666666674], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.6720442175865173, 49.999999999999886], [1.162076473236084, 83.33333333333337], [1.2320810556411743, 33.33333333333337], [1.2320810556411743, 50.0], [0.4826660752296448, 66.66666666666674], [-0.3167097568511963, 149.9999999999999, "CONSTANT"], [-1.3532683849334717, 16.66666666666663], [-0.3891531825065613, 66.66666666666674], [-0.0677814781665802, 66.66666666666674], [0.0, 116.66666666666652]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [-5.534420749078115, 166.66666666666663, "CONSTANT"], [7.606445291826578, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663, "CONSTANT"]], "z": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [28.371060481933252, 166.66666666666663, "CONSTANT"], [59.14797655182804, 166.66666666666663, "CONSTANT"], [-0.0, 116.66666666666663, "CONSTANT"]], "y": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [-42.628757647896585, 166.66666666666663, "CONSTANT"], [-85.51808701262917, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663, "CONSTANT"]]}}, "ShellR": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.16738982498645782, 33.33333333333337], [0.3459389805793762, 66.66666666666663], [0.368257611989975, 33.33333333333326], [0.368257611989975, 66.66666666666674], [0.37765786051750183, 66.66666666666663], [0.3922804296016693, 116.66666666666663, "CONSTANT"], [-1.7031582593917847, 16.66666666666663], [-0.576391339302063, 66.66666666666674], [-0.20080244541168213, 66.66666666666674], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [0.7584316730499268, 33.33333333333337], [1.5674254894256592, 66.66666666666663], [1.668549656867981, 33.33333333333326], [1.668549656867981, 66.66666666666674], [0.5923407077789307, 66.66666666666663], [-1.0817619562149048, 116.66666666666663, "CONSTANT"], [-1.004889726638794, 16.66666666666663], [0.6418739557266235, 66.66666666666674], [1.1907953023910522, 66.66666666666674], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.45365622639656067, 33.33333333333337], [0.9375561475753784, 66.66666666666663], [0.9980437159538269, 33.33333333333326], [0.9980437159538269, 66.66666666666674], [0.2533489465713501, 66.66666666666663], [-0.9050651788711548, 116.66666666666663, "CONSTANT"], [-1.431460976600647, 16.66666666666663], [-0.5393484830856323, 66.66666666666674], [-0.24197767674922943, 66.66666666666674], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [7.528320734326326, 133.33333333333326, "CONSTANT"], [45.55883366975119, 166.66666666666663, "CONSTANT"], [0.0, 100.0, "CONSTANT"]], "z": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [-10.561780207005532, 133.33333333333326, "CONSTANT"], [-11.69752028389453, 166.66666666666663, "CONSTANT"], [-0.0, 100.0, "CONSTANT"]], "y": [[0.0, 0.0], [0.0, 583.3333333333334, "CONSTANT"], [18.100727008133102, 133.33333333333326, "CONSTANT"], [65.2065046097911, 166.66666666666663, "CONSTANT"], [0.0, 100.0, "CONSTANT"]]}}}}, "offset": {}} \ No newline at end of file +{"anim": {"Fire": {"Barrel": {"rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [0.0, 466.6666666666667, "CONSTANT"], [-19.363289183757253, 49.99999999999994, "CONSTANT"], [-60.019016916301425, 66.66666666666674, "CONSTANT"], [-60.019016916301425, 683.3333333333331, "CONSTANT"], [-38.91348307905732, 83.33333333333348, "CONSTANT"], [0.0, 50.0, "CONSTANT"]]}}, "BarrelLame": {"rotation_euler": {"x": [[0.0, 0.0], [0.0, 466.6666666666667], [-19.363289183757253, 49.99999999999994], [-60.019016916301425, 66.66666666666674], [-60.019016916301425, 683.3333333333331], [-38.91348307905732, 83.33333333333348], [0.0, 50.0]]}}, "Body": {"location": {"x": [[0.0, 0.0], [-0.03072790987789631, 66.66666666666667], [-0.015153210610151291, 50.0], [0.022971127182245255, 49.999999999999986], [0.0, 133.33333333333334], [-0.07112908363342285, 283.33333333333337], [-0.21566513180732727, 166.66666666666663], [-0.30311062932014465, 166.66666666666663], [0.09931233525276184, 200.0000000000001], [0.09931233525276184, 99.99999999999977], [0.1618872582912445, 33.333333333333485], [0.16223274171352386, 33.33333333333326], [0.08028656989336014, 183.33333333333326], [0.0, 150.00000000000023]], "z": [[-0.0, 0.0], [0.6719817519187927, 66.66666666666667], [0.7913707494735718, 50.0], [0.4098809063434601, 49.999999999999986], [-0.0, 133.33333333333334], [-0.0558139905333519, 283.33333333333337], [-0.33660149574279785, 166.66666666666663], [-0.3699745833873749, 166.66666666666663], [-0.27975839376449585, 200.0000000000001], [-0.27975839376449585, 99.99999999999977], [-0.3401995301246643, 33.333333333333485], [-0.3562721014022827, 33.33333333333326], [-0.2893483638763428, 183.33333333333326], [-0.0, 150.00000000000023]], "y": [[0.0, 0.0], [0.04576312005519867, 66.66666666666667], [-0.05352889001369476, 50.0], [0.05586424842476845, 49.999999999999986], [0.0, 133.33333333333334], [-0.19011610746383667, 283.33333333333337], [-0.17373046278953552, 166.66666666666663], [-0.2395477145910263, 166.66666666666663], [-0.318528413772583, 200.0000000000001], [-0.318528413772583, 99.99999999999977], [-0.5854879021644592, 33.333333333333485], [-0.6872552037239075, 33.33333333333326], [-0.08996553719043732, 183.33333333333326], [0.0, 150.00000000000023]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [18.96056586236767, 33.333333333333336, "CONSTANT"], [9.480282931183835, 100.0, "CONSTANT"], [0.0, 100.0, "CONSTANT"], [3.672435622364946, 300.0, "CONSTANT"], [4.2845085106836525, 50.0, "CONSTANT"], [1.1277323204173937, 266.66666666666663, "CONSTANT"], [-4.00202896208485, 433.33333333333326, "CONSTANT"], [29.908722186758006, 116.66666666666674, "CONSTANT"], [16.10469643075067, 100.0, "CONSTANT"], [0.0, 116.66666666666674, "CONSTANT"]], "z": [[-0.0, 0.0, "CONSTANT"], [-8.923772777989535, 33.333333333333336, "CONSTANT"], [-4.461886388994768, 100.0, "CONSTANT"], [-0.0, 100.0, "CONSTANT"], [1.4097740965790806, 300.0, "CONSTANT"], [1.6447364460089273, 50.0, "CONSTANT"], [0.7402799146297828, 266.66666666666663, "CONSTANT"], [-0.729462122284099, 433.33333333333326, "CONSTANT"], [-10.496272716449585, 116.66666666666674, "CONSTANT"], [-5.6518389579866275, 100.0, "CONSTANT"], [-0.0, 116.66666666666674, "CONSTANT"]], "y": [[0.0, 0.0, "CONSTANT"], [1.9835915222433687, 33.333333333333336, "CONSTANT"], [0.9917957611216843, 100.0, "CONSTANT"], [0.0, 100.0, "CONSTANT"], [22.84436339614595, 300.0, "CONSTANT"], [26.651758433868473, 50.0, "CONSTANT"], [23.325744883564695, 266.66666666666663, "CONSTANT"], [17.920975212198584, 433.33333333333326, "CONSTANT"], [19.204354096865643, 116.66666666666674, "CONSTANT"], [10.340805658109048, 100.0, "CONSTANT"], [0.0, 116.66666666666674, "CONSTANT"]]}}, "BodyLame": {"location": {"x": [[0.0, 0.0], [-0.03072790987789631, 66.66666666666667], [-0.015153210610151291, 50.0], [0.022971127182245255, 49.999999999999986], [0.0, 133.33333333333334], [-0.07112908363342285, 283.33333333333337], [-0.21566513180732727, 166.66666666666663], [-0.30311062932014465, 166.66666666666663], [0.09931233525276184, 200.0000000000001], [0.09931233525276184, 99.99999999999977], [0.1618872582912445, 33.333333333333485], [0.16223274171352386, 33.33333333333326], [0.08028656989336014, 183.33333333333326], [0.0, 150.00000000000023]], "z": [[-0.0, 0.0], [0.6719817519187927, 66.66666666666667], [0.7913707494735718, 50.0], [0.4098809063434601, 49.999999999999986], [-0.0, 133.33333333333334], [-0.0558139905333519, 283.33333333333337], [-0.33660149574279785, 166.66666666666663], [-0.3699745833873749, 166.66666666666663], [-0.27975839376449585, 200.0000000000001], [-0.27975839376449585, 99.99999999999977], [-0.3401995301246643, 33.333333333333485], [-0.3562721014022827, 33.33333333333326], [-0.2893483638763428, 183.33333333333326], [-0.0, 150.00000000000023]], "y": [[0.0, 0.0], [0.04576312005519867, 66.66666666666667], [-0.05352889001369476, 50.0], [0.05586424842476845, 49.999999999999986], [0.0, 133.33333333333334], [-0.19011610746383667, 283.33333333333337], [-0.17373046278953552, 166.66666666666663], [-0.2395477145910263, 166.66666666666663], [-0.318528413772583, 200.0000000000001], [-0.318528413772583, 99.99999999999977], [-0.5854879021644592, 33.333333333333485], [-0.6872552037239075, 33.33333333333326], [-0.08996553719043732, 183.33333333333326], [0.0, 150.00000000000023]]}, "rotation_euler": {"x": [[0.0, 0.0], [18.96056586236767, 33.333333333333336], [9.480282931183835, 100.0], [0.0, 100.0], [3.672435622364946, 300.0], [4.2845085106836525, 50.0], [1.1277323204173937, 266.66666666666663], [-4.00202896208485, 433.33333333333326], [29.908722186758006, 116.66666666666674], [16.10469643075067, 100.0], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-8.923772777989535, 33.333333333333336], [-4.461886388994768, 100.0], [-0.0, 100.0], [1.4097740965790806, 300.0], [1.6447364460089273, 50.0], [0.7402799146297828, 266.66666666666663], [-0.729462122284099, 433.33333333333326], [-10.496272716449585, 116.66666666666674], [-5.6518389579866275, 100.0], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [1.9835915222433687, 33.333333333333336], [0.9917957611216843, 100.0], [0.0, 100.0], [22.84436339614595, 300.0], [26.651758433868473, 50.0], [23.325744883564695, 266.66666666666663], [17.920975212198584, 433.33333333333326], [19.204354096865643, 116.66666666666674], [10.340805658109048, 100.0], [0.0, 116.66666666666674]]}}, "ShellL": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.09376272559165955, 49.999999999999886], [0.1621313840150833, 83.33333333333337], [0.17189833521842957, 33.33333333333337], [0.17189833521842957, 50.0], [-0.25194650888442993, 66.66666666666674], [-0.7040476202964783, 149.9999999999999, "CONSTANT"], [-1.641493320465088, 16.66666666666663], [-0.48360228538513184, 66.66666666666674], [-0.0976385846734047, 66.66666666666674], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [1.188506007194519, 49.999999999999886], [2.0551249980926514, 83.33333333333337], [2.1789276599884033, 33.33333333333337], [2.1789276599884033, 50.0], [0.6366069316864014, 66.66666666666674], [-1.0085352659225464, 149.9999999999999, "CONSTANT"], [-1.0141838788986206, 16.66666666666663], [0.6391998529434204, 66.66666666666674], [1.1903276443481445, 66.66666666666674], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.6720442175865173, 49.999999999999886], [1.162076473236084, 83.33333333333337], [1.2320810556411743, 33.33333333333337], [1.2320810556411743, 50.0], [0.4826660752296448, 66.66666666666674], [-0.3167097568511963, 149.9999999999999, "CONSTANT"], [-1.3532683849334717, 16.66666666666663], [-0.3891531825065613, 66.66666666666674], [-0.0677814781665802, 66.66666666666674], [0.0, 116.66666666666652]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [-5.534420749078115, 166.66666666666663, "CONSTANT"], [7.606445291826578, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663, "CONSTANT"]], "z": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [28.371060481933252, 166.66666666666663, "CONSTANT"], [59.14797655182804, 166.66666666666663, "CONSTANT"], [-0.0, 116.66666666666663, "CONSTANT"]], "y": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [-42.628757647896585, 166.66666666666663, "CONSTANT"], [-85.51808701262917, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663, "CONSTANT"]]}}, "ShellLLame": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.09376272559165955, 49.999999999999886], [0.1621313840150833, 83.33333333333337], [0.17189833521842957, 33.33333333333337], [0.17189833521842957, 50.0], [-0.25194650888442993, 66.66666666666674], [-0.7040476202964783, 149.9999999999999, "CONSTANT"], [-1.641493320465088, 16.66666666666663], [-0.48360228538513184, 66.66666666666674], [-0.0976385846734047, 66.66666666666674], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [1.188506007194519, 49.999999999999886], [2.0551249980926514, 83.33333333333337], [2.1789276599884033, 33.33333333333337], [2.1789276599884033, 50.0], [0.6366069316864014, 66.66666666666674], [-1.0085352659225464, 149.9999999999999, "CONSTANT"], [-1.0141838788986206, 16.66666666666663], [0.6391998529434204, 66.66666666666674], [1.1903276443481445, 66.66666666666674], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.6720442175865173, 49.999999999999886], [1.162076473236084, 83.33333333333337], [1.2320810556411743, 33.33333333333337], [1.2320810556411743, 50.0], [0.4826660752296448, 66.66666666666674], [-0.3167097568511963, 149.9999999999999, "CONSTANT"], [-1.3532683849334717, 16.66666666666663], [-0.3891531825065613, 66.66666666666674], [-0.0677814781665802, 66.66666666666674], [0.0, 116.66666666666652]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [-5.534420749078115, 166.66666666666663], [7.606445291826578, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663]], "z": [[0.0, 0.0], [0.0, 583.3333333333334], [28.371060481933252, 166.66666666666663], [59.14797655182804, 166.66666666666663, "CONSTANT"], [-0.0, 116.66666666666663]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [-42.628757647896585, 166.66666666666663], [-85.51808701262917, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663]]}}, "ShellR": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.16738982498645782, 33.33333333333337], [0.3459389805793762, 66.66666666666663], [0.368257611989975, 33.33333333333326], [0.368257611989975, 66.66666666666674], [0.37765786051750183, 66.66666666666663], [0.3922804296016693, 116.66666666666663, "CONSTANT"], [-1.7031582593917847, 16.66666666666663], [-0.576391339302063, 66.66666666666674], [-0.20080244541168213, 66.66666666666674], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [0.7584316730499268, 33.33333333333337], [1.5674254894256592, 66.66666666666663], [1.668549656867981, 33.33333333333326], [1.668549656867981, 66.66666666666674], [0.5923407077789307, 66.66666666666663], [-1.0817619562149048, 116.66666666666663, "CONSTANT"], [-1.004889726638794, 16.66666666666663], [0.6418739557266235, 66.66666666666674], [1.1907953023910522, 66.66666666666674], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.45365622639656067, 33.33333333333337], [0.9375561475753784, 66.66666666666663], [0.9980437159538269, 33.33333333333326], [0.9980437159538269, 66.66666666666674], [0.2533489465713501, 66.66666666666663], [-0.9050651788711548, 116.66666666666663, "CONSTANT"], [-1.431460976600647, 16.66666666666663], [-0.5393484830856323, 66.66666666666674], [-0.24197767674922943, 66.66666666666674], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [7.528320734326326, 133.33333333333326, "CONSTANT"], [45.55883366975119, 166.66666666666663, "CONSTANT"], [0.0, 100.0, "CONSTANT"]], "z": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [-10.561780207005532, 133.33333333333326, "CONSTANT"], [-11.69752028389453, 166.66666666666663, "CONSTANT"], [-0.0, 100.0, "CONSTANT"]], "y": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [18.100727008133102, 133.33333333333326, "CONSTANT"], [65.2065046097911, 166.66666666666663, "CONSTANT"], [0.0, 100.0, "CONSTANT"]]}}, "ShellRLame": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.16738982498645782, 33.33333333333337], [0.3459389805793762, 66.66666666666663], [0.368257611989975, 33.33333333333326], [0.368257611989975, 66.66666666666674], [0.37765786051750183, 66.66666666666663], [0.3922804296016693, 116.66666666666663, "CONSTANT"], [-1.7031582593917847, 16.66666666666663], [-0.576391339302063, 66.66666666666674], [-0.20080244541168213, 66.66666666666674], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [0.7584316730499268, 33.33333333333337], [1.5674254894256592, 66.66666666666663], [1.668549656867981, 33.33333333333326], [1.668549656867981, 66.66666666666674], [0.5923407077789307, 66.66666666666663], [-1.0817619562149048, 116.66666666666663, "CONSTANT"], [-1.004889726638794, 16.66666666666663], [0.6418739557266235, 66.66666666666674], [1.1907953023910522, 66.66666666666674], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.45365622639656067, 33.33333333333337], [0.9375561475753784, 66.66666666666663], [0.9980437159538269, 33.33333333333326], [0.9980437159538269, 66.66666666666674], [0.2533489465713501, 66.66666666666663], [-0.9050651788711548, 116.66666666666663, "CONSTANT"], [-1.431460976600647, 16.66666666666663], [-0.5393484830856323, 66.66666666666674], [-0.24197767674922943, 66.66666666666674], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [7.528320734326326, 133.33333333333326], [45.55883366975119, 166.66666666666663, "CONSTANT"], [0.0, 100.0]], "z": [[0.0, 0.0], [0.0, 583.3333333333334], [-10.561780207005532, 133.33333333333326], [-11.69752028389453, 166.66666666666663, "CONSTANT"], [-0.0, 100.0]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [18.100727008133102, 133.33333333333326], [65.2065046097911, 166.66666666666663, "CONSTANT"], [0.0, 100.0]]}}}}, "offset": {}} \ No newline at end of file From 5fce05e5ce31e927114fabca3a77a736de797602 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 20 Feb 2024 10:11:15 +1100 Subject: [PATCH 205/376] Actually add the config option (here is the olive branch. Love ya, even if yer a dingbat) --- src/main/java/com/hbm/config/CommonConfig.java | 1 + src/main/java/com/hbm/config/WeaponConfig.java | 6 ++++++ .../com/hbm/render/item/weapon/ItemRenderWeaponShotty.java | 5 ++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index 8d809ccf4..46acd791a 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -26,6 +26,7 @@ public class CommonConfig { public static final String CATEGORY_STRUCTURES = "15_structures"; public static final String CATEGORY_POLLUTION = "16_pollution"; public static final String CATEGORY_BIOMES = "17_biomes"; + public static final String CATEGORY_WEAPONS = "18_weapons"; public static final String CATEGORY_528 = "528"; public static final String CATEGORY_LBSM = "LESS BULLSHIT MODE"; diff --git a/src/main/java/com/hbm/config/WeaponConfig.java b/src/main/java/com/hbm/config/WeaponConfig.java index 88c3dbdae..290641f86 100644 --- a/src/main/java/com/hbm/config/WeaponConfig.java +++ b/src/main/java/com/hbm/config/WeaponConfig.java @@ -15,6 +15,8 @@ public class WeaponConfig { public static boolean dropStar = true; public static boolean dropCrys = true; public static boolean dropDead = true; + + public static boolean linearAnimations = false; public static void loadFromConfig(Configuration config) { @@ -38,5 +40,9 @@ public class WeaponConfig { dropStar = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.02_dropStar", "Whether rigged star blaster cells should explode when dropped", true); dropCrys = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.04_dropCrys", "Whether xen crystals should move blocks when dropped", true); dropDead = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.05_dropDead", "Whether dead man's explosives should explode when dropped", true); + + final String CATEGORY_WEAPONS = CommonConfig.CATEGORY_WEAPONS; + linearAnimations = CommonConfig.createConfigBool(config, CATEGORY_WEAPONS, "18.00_linearAnimations", "Should heavily stylised weapon animations be replaced with more conventional ones?", false); + } } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java index 022a0a8a4..bcf4670e2 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java @@ -2,6 +2,7 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; +import com.hbm.config.WeaponConfig; import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.ResourceManager; import com.hbm.render.anim.HbmAnimations; @@ -50,9 +51,7 @@ public class ItemRenderWeaponShotty implements IItemRenderer { case EQUIPPED_FIRST_PERSON: - boolean linear = false; // TODO: Config option - - String animSuffix = linear ? "Lame" : ""; + String animSuffix = WeaponConfig.linearAnimations ? "Lame" : ""; GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); From 8408a8e239b315de355ab88e20172afabf6deb01 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 20 Feb 2024 13:14:13 +1100 Subject: [PATCH 206/376] benelli my beloved wife, smite this unholy glyphid scum --- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 38 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../render/item/weapon/ItemRenderBenelli.java | 47 +- .../models/weapons/animations/benelli.json | 1 + .../assets/hbm/models/weapons/benelli_new.obj | 8531 ++++++++--------- 5 files changed, 3979 insertions(+), 4639 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/animations/benelli.json diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 00c98c9ff..3ebb558e5 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -226,32 +226,6 @@ public class Gun12GaugeFactory { config.firingSound = "hbm:weapon.deagleShoot"; config.firingPitch = 0.75F; config.reloadType = 2; - config.reloadSoundEnd = true; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframePosition(6.25, 0.25, 2.5, 55) - .addKeyframePosition(0, 0, 0, 55) - ) - .addBus("EJECT", new BusAnimationSequence() - .addKeyframePosition(0, 0, 0, 25) - .addKeyframePosition(25, 0, 0, 100) - ) - ); - - config.animations.put(AnimType.RELOAD, new BusAnimation() - .addBus("RELOAD", new BusAnimationSequence() - .addKeyframePosition(60, 0, -10, 400) - .addKeyframePosition(60, 125, -10, 200) - .addKeyframePosition(60, 125, -10, 300) - .addKeyframePosition(0, 0, 0, 300) - ) - .addBus("PUMP", new BusAnimationSequence() - .addKeyframePosition(0, 0, 0, 900) - .addKeyframePosition(10, 0, 0, 200) - .addKeyframePosition(0, 0, 0, 1) - ) - ); config.name = "benelli"; config.manufacturer = EnumGunManufacturer.BENELLI; @@ -269,10 +243,18 @@ public class Gun12GaugeFactory { config.reloadType = 1; config.ammoCap = 24; - config.reloadDuration = 20; + config.reloadDuration = 21; + config.emptyReloadAdditionalDuration = 15; config.reloadSound = GunConfiguration.RSOUND_MAG; - config.reloadSoundEnd = true; + config.reloadSoundEnd = false; config.name += "Drum"; + + config.loadAnimations = i -> { + config.animations.put(AnimType.CYCLE, ResourceManager.benelli_anim.get("Fire")); + config.animations.put(AnimType.RELOAD, ResourceManager.benelli_anim.get("Reload")); + config.animations.put(AnimType.RELOAD_EMPTY, ResourceManager.benelli_anim.get("ReloadEmpty")); + }; + return config; } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 87647198b..b84692e8e 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -852,6 +852,7 @@ public class ResourceManager { public static final HashMap ks23_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/ks23.json")); public static final HashMap spas_12_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/spas12.json")); public static final HashMap supershotty_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/supershotty.json")); + public static final HashMap benelli_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/benelli.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java index 712cc58ab..435d71105 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java @@ -33,14 +33,8 @@ public class ItemRenderBenelli implements IItemRenderer return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); } - static final String body = "Body.001_Cube.001"; - static final String frontGrip = "Pump_Cylinder.003"; - static final String slide = "Cylinder"; - static final String barrelAndTube = "Body_Cube.002"; - @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - int magSize = ItemGunBase.getMag(item); EntityPlayer player = Minecraft.getMinecraft().thePlayer; GL11.glPushMatrix(); @@ -50,9 +44,6 @@ public class ItemRenderBenelli implements IItemRenderer final float scale1 = 0.2F; final double scale2 = 0.065D; final double scale3 = 0.52D; - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - double[] feedNew = HbmAnimations.getRelevantTransformation("PUMP"); switch (type) { case EQUIPPED_FIRST_PERSON:// In hand from POV @@ -63,31 +54,43 @@ public class ItemRenderBenelli implements IItemRenderer GL11.glTranslatef(-1.007F, 0F, -2.5F); } else { - GL11.glRotatef(30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -1F, -2.5F); + GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(20.0F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(0.0F, -0.5F, -2.5F); } + GL11.glScalef(scale1, scale1, scale1); - // Move on recoil - GL11.glTranslated(0, recoil[1], recoil[2]); - GL11.glRotated(recoil[0], 1, 0, 0); - // Move up for reload + + HbmAnimations.applyRelevantTransformation("Body"); + ResourceManager.benelli.renderPart("Body"); + GL11.glPushMatrix(); - ResourceManager.benelli.renderAll(); - // Pump new round if empty - if (magSize == 0) - GL11.glTranslated(feedNew[0], feedNew[1], feedNew[2]); - ResourceManager.benelli.renderPart(slide); + + HbmAnimations.applyRelevantTransformation("Bolt"); + ResourceManager.benelli.renderPart("Bolt"); + GL11.glPopMatrix(); - // Eject spent shell + GL11.glPushMatrix(); + + HbmAnimations.applyRelevantTransformation("Drum"); + ResourceManager.benelli.renderPart("Drum"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + + HbmAnimations.applyRelevantTransformation("Shell"); + ResourceManager.benelli.renderPart("Shell"); + + GL11.glPopMatrix(); + break; case EQUIPPED:// In hand from other's POV GL11.glRotatef(15F, 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(-0.4F, 0.05F, -0.5F); - GL11.glRotated(recoil[0], 1, 0, 0); GL11.glScaled(scale2 - scale2 * 2, scale2, scale2); GL11.glPushMatrix(); diff --git a/src/main/resources/assets/hbm/models/weapons/animations/benelli.json b/src/main/resources/assets/hbm/models/weapons/animations/benelli.json new file mode 100644 index 000000000..0e37a1ce0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/benelli.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Body": {"location": {"x": [[0.0, 0.0], [0.0, 33.333333333333336], [0.0, 66.66666666666666], [0.0, 66.66666666666666], [0.0, 83.33333333333334], [0.0, 100.0]], "z": [[-0.0, 0.0], [1.2799978256225586, 33.333333333333336], [3.300405740737915, 66.66666666666666], [3.3889946937561035, 66.66666666666666], [2.0333967208862305, 83.33333333333334], [-0.0, 100.0]], "y": [[0.0, 0.0], [0.9528294205665588, 33.333333333333336], [1.7167738676071167, 66.66666666666666], [0.5139352083206177, 66.66666666666666], [0.30836111307144165, 83.33333333333334], [0.0, 100.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [-5.1962657672336, 16.666666666666668], [6.746534720605728, 100.0], [1.678380570478235, 49.999999999999986], [1.0070283636312822, 83.33333333333334], [0.0, 100.0]], "z": [[-0.0, 0.0], [-0.0, 16.666666666666668], [-0.0, 100.0], [0.0, 49.999999999999986], [0.0, 83.33333333333334], [-0.0, 100.0]], "y": [[0.0, 0.0], [0.0, 16.666666666666668], [0.0, 100.0], [0.0, 49.999999999999986], [0.0, 83.33333333333334], [0.0, 100.0]]}}, "Bolt": {"location": {"z": [[-0.0, 0.0], [4.257456302642822, 66.66666666666667], [4.257456302642822, 33.33333333333333], [2.882056713104248, 66.66666666666666], [-0.0, 83.33333333333334]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.5007915496826172, 83.33333333333333], [0.46001285314559937, 83.33333333333333], [0.15397095680236816, 100.00000000000003], [0.03881697356700897, 116.66666666666663], [0.03881697356700897, 116.66666666666669], [0.6601351499557495, 383.33333333333326], [0.4018043577671051, 133.33333333333337], [0.8223400712013245, 83.33333333333337], [0.6317735910415649, 83.33333333333326], [0.15794339776039124, 116.66666666666674], [0.0, 66.66666666666674]], "z": [[-0.0, 0.0], [0.4146515130996704, 83.33333333333333], [0.3180652856826782, 83.33333333333333], [-0.12122371792793274, 100.00000000000003], [-0.2061876803636551, 116.66666666666663], [-0.2061876803636551, 116.66666666666669], [-0.6247760653495789, 383.33333333333326], [-1.290284276008606, 133.33333333333337], [-1.3669732809066772, 83.33333333333337], [-1.4020495414733887, 83.33333333333326], [-0.35051238536834717, 116.66666666666674], [-0.0, 66.66666666666674]], "y": [[0.0, 0.0], [1.4644715785980225, 83.33333333333333], [1.9239956140518188, 83.33333333333333], [-0.3446009159088135, 100.00000000000003], [-0.7123041152954102, 116.66666666666663], [-0.7123041152954102, 116.66666666666669], [0.6297056674957275, 383.33333333333326], [0.5360619425773621, 133.33333333333337], [1.523516058921814, 83.33333333333337], [0.8995347023010254, 83.33333333333326], [0.22488367557525635, 116.66666666666674], [0.0, 66.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [8.444355823730817, 116.66666666666667], [10.09434425832466, 83.33333333333333], [10.670753313892146, 33.33333333333334], [4.141512097107088, 116.66666666666666], [1.1253919134096066, 150.0], [-4.873045847782964, 350.0], [-4.873045847782964, 166.66666666666663], [-1.8423141819035325, 50.000000000000114], [-0.5846049624063828, 116.66666666666652], [-0.1461512406015957, 116.66666666666674], [0.0, 66.66666666666674]], "z": [[-0.0, 0.0], [-9.164495111323818, 116.66666666666667], [-10.54833497962436, 83.33333333333333], [-10.991167733141198, 33.33333333333334], [-9.358875464913211, 116.66666666666666], [-10.721522963766496, 150.0], [-22.99460365222414, 350.0], [-22.99460365222414, 166.66666666666663], [-24.61038393813362, 50.000000000000114], [-19.906907354893153, 116.66666666666652], [-4.976726838723288, 116.66666666666674], [-0.0, 66.66666666666674]], "y": [[-0.0, 0.0], [-1.7598609920167847, 116.66666666666667], [-2.1381843163701446, 83.33333333333333], [-2.2967894197474803, 33.33333333333334], [-2.016966814735813, 116.66666666666666], [-2.2765310786692226, 150.0], [0.2646153489071927, 350.0], [0.2646153489071927, 166.66666666666663], [-1.4523905282968463, 50.000000000000114], [-0.7688532106097378, 116.66666666666652], [-0.19221331599264765, 116.66666666666674], [0.0, 66.66666666666674]]}}, "Drum": {"location": {"x": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [-7.078051567077637e-08, 183.33333333333337], [-7.078051567077637e-08, 66.66666666666663], [-7.078051567077637e-08, 83.33333333333326]], "z": [[-0.0, 0.0], [-0.0, 266.6666666666667], [-0.0, 99.99999999999994], [-0.0, 316.66666666666674], [-0.16810643672943115, 183.33333333333337], [-0.16810643672943115, 66.66666666666663], [-0.0, 83.33333333333326]], "y": [[0.0, 0.0], [0.0, 266.6666666666667], [-3.731025218963623, 99.99999999999994], [-3.731025218963623, 316.66666666666674], [-0.9465155601501465, 183.33333333333337], [-0.9465155601501465, 66.66666666666663], [0.0, 83.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [18.37620219773806, 183.33333333333337], [18.37620219773806, 66.66666666666663], [0.0, 83.33333333333326]], "z": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [3.379190651762519e-06, 183.33333333333337], [3.379190651762519e-06, 66.66666666666663], [-0.0, 83.33333333333326]], "y": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [-3.3751875801959914e-07, 183.33333333333337], [-3.3751875801959914e-07, 66.66666666666663], [-3.3751875801959914e-07, 83.33333333333326]]}}}, "ReloadEmpty": {"Body": {"location": {"x": [[0.0, 0.0], [0.5007915496826172, 83.33333333333333], [0.46001285314559937, 83.33333333333333], [0.15397095680236816, 100.00000000000003], [0.03881697356700897, 116.66666666666663], [0.03881697356700897, 116.66666666666669], [0.6601351499557495, 383.33333333333326], [0.4018043577671051, 133.33333333333337], [0.8223400712013245, 83.33333333333337], [0.6317735910415649, 133.33333333333348], [-1.6643010377883911, 99.99999999999977], [-2.1745400428771973, 83.33333333333348], [-1.930220603942871, 233.33333333333326], [-2.2005791664123535, 100.0], [0.0, 233.33333333333348]], "z": [[-0.0, 0.0], [0.4146515130996704, 83.33333333333333], [0.3180652856826782, 83.33333333333333], [-0.12122371792793274, 100.00000000000003], [-0.2061876803636551, 116.66666666666663], [-0.2061876803636551, 116.66666666666669], [-0.6247760653495789, 383.33333333333326], [-1.290284276008606, 133.33333333333337], [-1.3669732809066772, 83.33333333333337], [-1.4020495414733887, 133.33333333333348], [-1.1939475536346436, 99.99999999999977], [-1.147702693939209, 83.33333333333348], [-0.7498241662979126, 233.33333333333326], [-1.5017924308776855, 100.0], [-0.0, 233.33333333333348]], "y": [[0.0, 0.0], [1.4644715785980225, 83.33333333333333], [1.9239956140518188, 83.33333333333333], [-0.3446009159088135, 100.00000000000003], [-0.7123041152954102, 116.66666666666663], [-0.7123041152954102, 116.66666666666669], [0.6297056674957275, 383.33333333333326], [0.5360619425773621, 133.33333333333337], [1.523516058921814, 83.33333333333337], [0.8995347023010254, 133.33333333333348], [0.7137325406074524, 99.99999999999977], [0.672443151473999, 83.33333333333348], [0.7088958621025085, 233.33333333333326], [0.8606953024864197, 100.0], [0.0, 233.33333333333348]]}, "rotation_euler": {"x": [[0.0, 0.0], [8.444355823730817, 116.66666666666667], [10.09434425832466, 83.33333333333333], [10.670753313892146, 33.33333333333334], [4.141512097107088, 116.66666666666666], [1.1253919134096066, 150.0], [-4.873045847782964, 350.0], [-4.873045847782964, 166.66666666666663], [-1.8423141819035325, 50.000000000000114], [-0.5846049624063828, 100.0], [4.828984724334035, 166.66666666666652], [5.661844758233873, 83.33333333333348], [9.69551499853563, 233.33333333333326], [3.8410456722158806, 133.33333333333326], [0.0, 200.00000000000023]], "z": [[-0.0, 0.0], [-9.164495111323818, 116.66666666666667], [-10.54833497962436, 83.33333333333333], [-10.991167733141198, 33.33333333333334], [-9.358875464913211, 116.66666666666666], [-10.721522963766496, 150.0], [-22.99460365222414, 350.0], [-22.99460365222414, 166.66666666666663], [-24.61038393813362, 50.000000000000114], [-19.906907354893153, 100.0], [48.29071467736494, 166.66666666666652], [58.78265705388074, 83.33333333333348], [56.59382389660719, 233.33333333333326], [58.250277959024096, 133.33333333333326], [-0.0, 200.00000000000023]], "y": [[-0.0, 0.0], [-1.7598609920167847, 116.66666666666667], [-2.1381843163701446, 83.33333333333333], [-2.2967894197474803, 33.33333333333334], [-2.016966814735813, 116.66666666666666], [-2.2765310786692226, 150.0], [0.2646153489071927, 350.0], [0.2646153489071927, 166.66666666666663], [-1.4523905282968463, 50.000000000000114], [-0.7688532106097378, 100.0], [18.290462833086888, 166.66666666666652], [21.222664751320654, 83.33333333333348], [22.87163463395452, 233.33333333333326], [21.677345321726527, 133.33333333333326], [0.0, 200.00000000000023]]}}, "Bolt": {"location": {"z": [[-0.0, 0.0], [-0.0, 1416.6666666666667], [4.2012176513671875, 150.0], [4.2012176513671875, 50.0], [2.4794747829437256, 50.0], [-0.0, 49.99999999999977]]}}, "Drum": {"location": {"x": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [-7.078051567077637e-08, 183.33333333333337], [-7.078051567077637e-08, 66.66666666666663], [-7.078051567077637e-08, 83.33333333333326]], "z": [[-0.0, 0.0], [-0.0, 266.6666666666667], [-0.0, 99.99999999999994], [-0.0, 316.66666666666674], [-0.16810643672943115, 183.33333333333337], [-0.16810643672943115, 66.66666666666663], [-0.0, 83.33333333333326]], "y": [[0.0, 0.0], [0.0, 266.6666666666667], [-3.731025218963623, 99.99999999999994], [-3.731025218963623, 316.66666666666674], [-0.9465155601501465, 183.33333333333337], [-0.9465155601501465, 66.66666666666663], [0.0, 83.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [18.37620219773806, 183.33333333333337], [18.37620219773806, 66.66666666666663], [0.0, 83.33333333333326]], "z": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [3.379190651762519e-06, 183.33333333333337], [3.379190651762519e-06, 66.66666666666663], [-0.0, 83.33333333333326]], "y": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [-3.3751875801959914e-07, 183.33333333333337], [-3.3751875801959914e-07, 66.66666666666663], [-3.3751875801959914e-07, 83.33333333333326]]}}}}, "offset": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/benelli_new.obj b/src/main/resources/assets/hbm/models/weapons/benelli_new.obj index 81b43a6ee..a2d8c70b3 100644 --- a/src/main/resources/assets/hbm/models/weapons/benelli_new.obj +++ b/src/main/resources/assets/hbm/models/weapons/benelli_new.obj @@ -1,539 +1,539 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender 4.0.1 # www.blender.org -o Cube.007_Cube.012 -v -0.749291 3.198776 0.999861 -v -0.925561 3.198776 0.999861 -v -0.749291 3.375046 0.999861 -v -0.925561 3.198776 1.249144 -v 0.748885 3.197617 0.999051 -v 0.748885 3.373887 0.999051 -v 0.925155 3.197617 0.999051 -v 0.925155 3.197617 1.248335 -v 0.748885 3.373887 1.248335 -v 0.748885 3.197617 1.248335 -v -0.749291 3.375046 1.249144 -v -0.750000 3.200001 1.250000 -v -0.749291 3.198776 1.249144 -v 0.748869 3.197661 -1.749421 -v 0.925138 3.197661 -1.749422 -v 0.748868 3.021391 -1.749422 -v 0.748869 3.021390 3.750661 -v 0.925139 3.197660 3.750661 -v 0.748869 3.197660 3.750661 -v -0.749187 3.199502 -1.749413 -v -0.749187 3.023233 -1.749413 -v -0.925457 3.199503 -1.749413 -v -0.925456 3.199502 3.750652 -v -0.749186 3.023232 3.750652 -v -0.749186 3.199502 3.750652 -v -0.749291 3.198776 3.499861 -v -0.925561 3.198776 3.499861 -v -0.749291 3.375046 3.499861 -v -0.925561 3.198776 3.749144 -v 0.748885 3.197617 3.499051 -v 0.748885 3.373887 3.499051 -v 0.925155 3.197617 3.499051 -v 0.925155 3.197617 3.748335 -v 0.748885 3.373887 3.748335 -v 0.748885 3.197617 3.748335 -v -0.749291 3.375046 3.749144 -v -0.750000 3.200001 3.750000 -v -0.749291 3.198776 3.749144 -v -0.749291 3.198776 2.999861 -v -0.925561 3.198776 2.999861 -v -0.749291 3.375046 2.999861 -v -0.925561 3.198776 3.249144 -v 0.748885 3.197617 2.999051 -v 0.748885 3.373887 2.999051 -v 0.925155 3.197617 2.999051 -v 0.925155 3.197617 3.248334 -v 0.748885 3.373887 3.248334 -v 0.748885 3.197617 3.248334 -v -0.749291 3.375046 3.249144 -v -0.750000 3.200001 3.250000 -v -0.749291 3.198776 3.249144 -v -0.749291 3.198776 2.499861 -v -0.925561 3.198776 2.499861 -v -0.749291 3.375046 2.499861 -v -0.925561 3.198776 2.749144 -v 0.748885 3.197617 2.499051 -v 0.748885 3.373887 2.499051 -v 0.925155 3.197617 2.499051 -v 0.925155 3.197617 2.748335 -v 0.748885 3.373887 2.748335 -v 0.748885 3.197617 2.748335 -v -0.749291 3.375046 2.749144 -v -0.750000 3.200001 2.750000 -v -0.749291 3.198776 2.749144 -v -0.749291 3.198776 1.999861 -v -0.925561 3.198776 1.999861 -v -0.749291 3.375046 1.999861 -v -0.925561 3.198776 2.249144 -v 0.748885 3.197617 1.999051 -v 0.748885 3.373887 1.999051 -v 0.925155 3.197617 1.999051 -v 0.925155 3.197617 2.248335 -v 0.748885 3.373887 2.248335 -v 0.748885 3.197617 2.248335 -v -0.749291 3.375046 2.249144 -v -0.750000 3.200001 2.250000 -v -0.749291 3.198776 2.249144 -v -0.749291 3.198776 1.499861 -v -0.925561 3.198776 1.499861 -v -0.749291 3.375046 1.499861 -v -0.925561 3.198776 1.749144 -v 0.748885 3.197617 1.499051 -v 0.748885 3.373887 1.499051 -v 0.925155 3.197617 1.499051 -v 0.925155 3.197617 1.748335 -v 0.748885 3.373887 1.748335 -v 0.748885 3.197617 1.748335 -v -0.749291 3.375046 1.749144 -v -0.750000 3.200001 1.750000 -v -0.749291 3.198776 1.749144 -v -0.749291 3.198776 0.499861 -v -0.925561 3.198776 0.499861 -v -0.749291 3.375046 0.499861 -v -0.925561 3.198776 0.749144 -v 0.748885 3.197617 0.499051 -v 0.748885 3.373887 0.499051 -v 0.925155 3.197617 0.499051 -v 0.925155 3.197617 0.748335 -v 0.748885 3.373887 0.748335 -v 0.748885 3.197617 0.748335 -v -0.749291 3.375046 0.749144 -v -0.750000 3.200001 0.750000 -v -0.749291 3.198776 0.749144 -v -0.749291 3.198776 -0.000139 -v -0.925561 3.198776 -0.000139 -v -0.749291 3.375046 -0.000139 -v -0.925561 3.198776 0.249144 -v 0.748885 3.197617 -0.000949 -v 0.748885 3.373887 -0.000949 -v 0.925155 3.197617 -0.000949 -v 0.925155 3.197617 0.248335 -v 0.748885 3.373887 0.248335 -v 0.748885 3.197617 0.248335 -v -0.749291 3.375046 0.249144 -v -0.750000 3.200001 0.250000 -v -0.749291 3.198776 0.249144 -v -0.749291 3.198776 -0.500139 -v -0.925561 3.198776 -0.500139 -v -0.749291 3.375046 -0.500139 -v -0.925561 3.198776 -0.250856 -v 0.748885 3.197617 -0.500949 -v 0.748885 3.373887 -0.500949 -v 0.925155 3.197617 -0.500949 -v 0.925155 3.197617 -0.251665 -v 0.748885 3.373887 -0.251665 -v 0.748885 3.197617 -0.251665 -v -0.749291 3.375046 -0.250856 -v -0.750000 3.200001 -0.250000 -v -0.749291 3.198776 -0.250856 -v -0.749291 3.198776 -1.000139 -v -0.925561 3.198776 -1.000139 -v -0.749291 3.375046 -1.000139 -v -0.925561 3.198776 -0.750855 -v 0.748885 3.197617 -1.000948 -v 0.748885 3.373887 -1.000948 -v 0.925155 3.197617 -1.000948 -v 0.925155 3.197617 -0.751665 -v 0.748885 3.373887 -0.751665 -v 0.748885 3.197617 -0.751665 -v -0.749291 3.375046 -0.750855 -v -0.750000 3.200001 -0.749999 -v -0.749291 3.198776 -0.750855 -v -0.749291 3.198776 -1.500139 -v -0.925561 3.198776 -1.500139 -v -0.749291 3.375046 -1.500139 -v -0.925561 3.198776 -1.250856 -v 0.748885 3.197617 -1.500949 -v 0.748885 3.373887 -1.500949 -v 0.925155 3.197617 -1.500949 -v 0.925155 3.197617 -1.251665 -v 0.748885 3.373887 -1.251665 -v 0.748885 3.197617 -1.251665 -v -0.749291 3.375046 -1.250856 -v -0.750000 3.200001 -1.249999 -v -0.749291 3.198776 -1.250856 -v -0.749291 3.198776 -1.751088 -v -0.925561 3.198776 -1.751088 -v -0.749291 3.375046 -1.751088 -v -0.925561 3.198776 -1.501805 -v 0.748885 3.197617 -1.751898 -v 0.748885 3.373887 -1.751898 -v 0.925155 3.197617 -1.751898 -v 0.925155 3.197617 -1.502614 -v 0.748885 3.373887 -1.502614 -v 0.748885 3.197617 -1.502614 -v -0.749291 3.375046 -1.501805 -v -0.750000 3.200001 -1.500949 -v -0.749291 3.198776 -1.501805 -v -0.750000 1.350001 -10.700001 -v -0.692910 1.994416 -10.700001 -v 0.750000 1.350001 -10.700001 +o Body +v -0.557795 3.198776 0.999861 +v -0.689504 3.198776 0.999861 +v -0.557795 3.375046 0.999861 +v -0.689504 3.198776 1.249144 +v 0.561645 3.197617 0.999051 +v 0.561645 3.373887 0.999051 +v 0.693354 3.197617 0.999051 +v 0.693354 3.197617 1.248335 +v 0.561645 3.373887 1.248335 +v 0.561645 3.197617 1.248335 +v -0.557795 3.375046 1.249144 +v -0.558324 3.200001 1.250000 +v -0.557795 3.198776 1.249144 +v 0.561633 3.197661 -1.749421 +v 0.693341 3.197661 -1.749422 +v 0.561632 3.021391 -1.749422 +v 0.561633 3.021390 3.750661 +v 0.693342 3.197660 3.750661 +v 0.561633 3.197660 3.750661 +v -0.557717 3.199502 -1.749413 +v -0.557717 3.023233 -1.749413 +v -0.689426 3.199503 -1.749413 +v -0.689425 3.199502 3.750652 +v -0.557716 3.023232 3.750652 +v -0.557716 3.199502 3.750652 +v -0.557795 3.198776 3.499861 +v -0.689504 3.198776 3.499861 +v -0.557795 3.375046 3.499861 +v -0.689504 3.198776 3.749144 +v 0.561645 3.197617 3.499051 +v 0.561645 3.373887 3.499051 +v 0.693354 3.197617 3.499051 +v 0.693354 3.197617 3.748335 +v 0.561645 3.373887 3.748335 +v 0.561645 3.197617 3.748335 +v -0.557795 3.375046 3.749144 +v -0.558324 3.200001 3.750000 +v -0.557795 3.198776 3.749144 +v -0.557795 3.198776 2.999861 +v -0.689504 3.198776 2.999861 +v -0.557795 3.375046 2.999861 +v -0.689504 3.198776 3.249144 +v 0.561645 3.197617 2.999051 +v 0.561645 3.373887 2.999051 +v 0.693354 3.197617 2.999051 +v 0.693354 3.197617 3.248334 +v 0.561645 3.373887 3.248334 +v 0.561645 3.197617 3.248334 +v -0.557795 3.375046 3.249144 +v -0.558324 3.200001 3.250000 +v -0.557795 3.198776 3.249144 +v -0.557795 3.198776 2.499861 +v -0.689504 3.198776 2.499861 +v -0.557795 3.375046 2.499861 +v -0.689504 3.198776 2.749144 +v 0.561645 3.197617 2.499051 +v 0.561645 3.373887 2.499051 +v 0.693354 3.197617 2.499051 +v 0.693354 3.197617 2.748335 +v 0.561645 3.373887 2.748335 +v 0.561645 3.197617 2.748335 +v -0.557795 3.375046 2.749144 +v -0.558324 3.200001 2.750000 +v -0.557795 3.198776 2.749144 +v -0.557795 3.198776 1.999861 +v -0.689504 3.198776 1.999861 +v -0.557795 3.375046 1.999861 +v -0.689504 3.198776 2.249144 +v 0.561645 3.197617 1.999051 +v 0.561645 3.373887 1.999051 +v 0.693354 3.197617 1.999051 +v 0.693354 3.197617 2.248335 +v 0.561645 3.373887 2.248335 +v 0.561645 3.197617 2.248335 +v -0.557795 3.375046 2.249144 +v -0.558324 3.200001 2.250000 +v -0.557795 3.198776 2.249144 +v -0.557795 3.198776 1.499861 +v -0.689504 3.198776 1.499861 +v -0.557795 3.375046 1.499861 +v -0.689504 3.198776 1.749144 +v 0.561645 3.197617 1.499051 +v 0.561645 3.373887 1.499051 +v 0.693354 3.197617 1.499051 +v 0.693354 3.197617 1.748335 +v 0.561645 3.373887 1.748335 +v 0.561645 3.197617 1.748335 +v -0.557795 3.375046 1.749144 +v -0.558324 3.200001 1.750000 +v -0.557795 3.198776 1.749144 +v -0.557795 3.198776 0.499861 +v -0.689504 3.198776 0.499861 +v -0.557795 3.375046 0.499861 +v -0.689504 3.198776 0.749144 +v 0.561645 3.197617 0.499051 +v 0.561645 3.373887 0.499051 +v 0.693354 3.197617 0.499051 +v 0.693354 3.197617 0.748335 +v 0.561645 3.373887 0.748335 +v 0.561645 3.197617 0.748335 +v -0.557795 3.375046 0.749144 +v -0.558324 3.200001 0.750000 +v -0.557795 3.198776 0.749144 +v -0.557795 3.198776 -0.000139 +v -0.689504 3.198776 -0.000139 +v -0.557795 3.375046 -0.000139 +v -0.689504 3.198776 0.249144 +v 0.561645 3.197617 -0.000949 +v 0.561645 3.373887 -0.000949 +v 0.693354 3.197617 -0.000949 +v 0.693354 3.197617 0.248335 +v 0.561645 3.373887 0.248335 +v 0.561645 3.197617 0.248335 +v -0.557795 3.375046 0.249144 +v -0.558324 3.200001 0.250000 +v -0.557795 3.198776 0.249144 +v -0.557795 3.198776 -0.500139 +v -0.689504 3.198776 -0.500139 +v -0.557795 3.375046 -0.500139 +v -0.689504 3.198776 -0.250856 +v 0.561645 3.197617 -0.500949 +v 0.561645 3.373887 -0.500949 +v 0.693354 3.197617 -0.500949 +v 0.693354 3.197617 -0.251665 +v 0.561645 3.373887 -0.251665 +v 0.561645 3.197617 -0.251665 +v -0.557795 3.375046 -0.250856 +v -0.558324 3.200001 -0.250000 +v -0.557795 3.198776 -0.250856 +v -0.557795 3.198776 -1.000139 +v -0.689504 3.198776 -1.000139 +v -0.557795 3.375046 -1.000139 +v -0.689504 3.198776 -0.750855 +v 0.561645 3.197617 -1.000948 +v 0.561645 3.373887 -1.000948 +v 0.693354 3.197617 -1.000948 +v 0.693354 3.197617 -0.751665 +v 0.561645 3.373887 -0.751665 +v 0.561645 3.197617 -0.751665 +v -0.557795 3.375046 -0.750855 +v -0.558324 3.200001 -0.749999 +v -0.557795 3.198776 -0.750855 +v -0.557795 3.198776 -1.500139 +v -0.689504 3.198776 -1.500139 +v -0.557795 3.375046 -1.500139 +v -0.689504 3.198776 -1.250856 +v 0.561645 3.197617 -1.500949 +v 0.561645 3.373887 -1.500949 +v 0.693354 3.197617 -1.500949 +v 0.693354 3.197617 -1.251665 +v 0.561645 3.373887 -1.251665 +v 0.561645 3.197617 -1.251665 +v -0.557795 3.375046 -1.250856 +v -0.558324 3.200001 -1.250000 +v -0.557795 3.198776 -1.250856 +v -0.557795 3.198776 -1.751088 +v -0.689504 3.198776 -1.751088 +v -0.557795 3.375046 -1.751088 +v -0.689504 3.198776 -1.501805 +v 0.561645 3.197617 -1.751898 +v 0.561645 3.373887 -1.751898 +v 0.693354 3.197617 -1.751898 +v 0.693354 3.197617 -1.502614 +v 0.561645 3.373887 -1.502614 +v 0.561645 3.197617 -1.502614 +v -0.557795 3.375046 -1.501805 +v -0.558324 3.200001 -1.500949 +v -0.557795 3.198776 -1.501805 +v -0.750000 1.350000 -10.700001 +v -0.692910 1.994415 -10.700001 +v 0.750000 1.350000 -10.700001 v 0.692910 1.994415 -1.700001 -v 0.692910 1.994416 -10.700001 +v 0.692910 1.994415 -10.700001 v 0.750000 1.350000 -1.700001 -v 0.692910 1.005585 -10.700001 +v 0.692910 1.005584 -10.700001 v 0.692910 1.005584 -1.700001 -v 0.530330 0.713604 -10.700001 +v 0.530330 0.713603 -10.700001 v 0.530330 0.713604 -1.700001 -v 0.287013 0.518509 -10.700001 +v 0.287013 0.518508 -10.700001 v 0.287013 0.518508 -1.700001 -v 0.000000 0.450000 -10.700001 +v 0.000000 0.449999 -10.700001 v 0.000000 0.450000 -1.700001 -v -0.287012 0.518508 -10.700001 +v -0.287012 0.518507 -10.700001 v -0.287012 0.518508 -1.700001 -v -0.530330 0.713604 -10.700001 +v -0.530330 0.713603 -10.700001 v -0.530330 0.713603 -1.700001 -v -0.692910 1.005585 -10.700001 +v -0.692910 1.005584 -10.700001 v -0.692910 1.005584 -1.700001 v -0.750000 1.350000 -1.700001 v -0.692910 1.994415 -1.700001 v 0.000000 3.000000 -1.700000 -v 0.129410 2.982966 -19.500000 -v 0.000000 3.000003 -19.500000 +v 0.129410 2.982965 -19.500000 +v 0.000000 3.000002 -19.500000 v 0.129410 2.982962 -1.700000 -v 0.250000 2.933016 -19.500000 +v 0.250000 2.933015 -19.500000 v 0.250000 2.933012 -1.700000 -v 0.353553 2.853557 -19.500000 +v 0.353553 2.853556 -19.500000 v 0.353553 2.853553 -1.700000 -v 0.433013 2.750004 -19.500000 +v 0.433013 2.750003 -19.500000 v 0.433013 2.750000 -1.700000 -v 0.482963 2.629413 -19.500000 +v 0.482963 2.629411 -19.500000 v 0.482963 2.629409 -1.700000 -v 0.500000 2.500003 -19.500000 +v 0.500000 2.500002 -19.500000 v 0.500000 2.500000 -1.700000 -v 0.482963 2.370594 -19.500000 +v 0.482963 2.370593 -19.500000 v 0.482963 2.370590 -1.700000 -v 0.433013 2.250003 -19.500000 +v 0.433013 2.250002 -19.500000 v 0.433013 2.250000 -1.700000 -v 0.353554 2.146450 -19.500000 +v 0.353554 2.146449 -19.500000 v 0.353554 2.146446 -1.700000 -v 0.250000 2.066991 -19.500000 +v 0.250000 2.066990 -19.500000 v 0.250000 2.066987 -1.700000 -v 0.129410 2.017040 -19.500000 +v 0.129410 2.017039 -19.500000 v 0.129410 2.017036 -1.700000 -v 0.000000 2.000003 -19.500000 +v 0.000000 2.000002 -19.500000 v 0.000000 2.000000 -1.700000 -v -0.129409 2.017040 -19.500000 +v -0.129409 2.017039 -19.500000 v -0.129409 2.017036 -1.700000 -v -0.250000 2.066991 -19.500000 +v -0.250000 2.066990 -19.500000 v -0.250000 2.066987 -1.700000 -v -0.353553 2.146450 -19.500000 +v -0.353553 2.146449 -19.500000 v -0.353553 2.146446 -1.700000 -v -0.433013 2.250003 -19.500000 +v -0.433013 2.250002 -19.500000 v -0.433013 2.250000 -1.700000 -v -0.482963 2.370594 -19.500000 +v -0.482963 2.370593 -19.500000 v -0.482963 2.370590 -1.700000 -v -0.500000 2.500003 -19.500000 +v -0.500000 2.500002 -19.500000 v -0.500000 2.500000 -1.700000 -v -0.482963 2.629413 -19.500000 +v -0.482963 2.629411 -19.500000 v -0.482963 2.629409 -1.700000 -v -0.433013 2.750003 -19.500000 +v -0.433013 2.750002 -19.500000 v -0.433013 2.749999 -1.700000 -v -0.353554 2.853557 -19.500000 +v -0.353554 2.853556 -19.500000 v -0.353554 2.853553 -1.700000 -v -0.250000 2.933016 -19.500000 +v -0.250000 2.933015 -19.500000 v -0.250000 2.933012 -1.700000 -v -0.129410 2.982966 -19.500000 +v -0.129410 2.982965 -19.500000 v -0.129410 2.982962 -1.700000 -v 0.217114 2.822436 -19.500000 +v 0.217114 2.822435 -19.500000 v 0.113208 2.865444 -4.500000 -v 0.113208 2.865475 -19.500000 -v 0.000000 2.050003 -17.850000 -v 0.494975 1.844978 -18.550001 -v 0.000000 2.050003 -18.550001 -v 0.494975 1.844978 -17.850000 -v 0.700000 1.350003 -18.550001 -v 0.700000 1.350003 -17.850000 -v 0.494975 0.855029 -18.550001 -v 0.494975 0.855028 -17.850000 -v 0.000000 0.650003 -18.550001 -v 0.000000 0.650003 -17.850000 -v -0.494975 0.855029 -18.550001 -v -0.494975 0.855029 -17.850000 -v -0.700000 1.350003 -18.550001 -v -0.700000 1.350003 -17.850000 -v -0.494975 1.844978 -18.550001 -v -0.494975 1.844978 -17.850000 -v 0.247487 1.102515 -19.300001 -v 0.350000 1.350003 -19.300001 -v 0.247487 1.597490 -19.300001 -v 0.000000 1.700003 -19.300001 -v -0.247487 1.597490 -19.300001 -v -0.350000 1.350003 -19.300001 -v -0.247487 1.102515 -19.300001 -v 0.247487 1.102515 -19.187502 -v 0.000000 1.000003 -19.187502 -v 0.000000 1.000003 -19.300001 -v 0.000000 1.700003 -19.187502 -v 0.247487 1.597490 -19.187502 -v 0.350000 1.350003 -19.187502 -v -0.247487 1.102515 -19.187502 +v 0.113208 2.865474 -19.500000 +v 0.000000 2.050002 -17.850000 +v 0.494975 1.844977 -18.550001 +v 0.000000 2.050002 -18.550001 +v 0.494975 1.844977 -17.850000 +v 0.700000 1.350002 -18.550001 +v 0.700000 1.350002 -17.850000 +v 0.494975 0.855028 -18.550001 +v 0.494975 0.855027 -17.850000 +v 0.000000 0.650002 -18.550001 +v 0.000000 0.650002 -17.850000 +v -0.494975 0.855028 -18.550001 +v -0.494975 0.855028 -17.850000 +v -0.700000 1.350002 -18.550001 +v -0.700000 1.350002 -17.850000 +v -0.494975 1.844977 -18.550001 +v -0.494975 1.844977 -17.850000 +v 0.247487 1.102514 -19.300001 +v 0.350000 1.350002 -19.300001 +v 0.247487 1.597489 -19.300001 +v 0.000000 1.700002 -19.300001 +v -0.247487 1.597489 -19.300001 +v -0.350000 1.350002 -19.300001 +v -0.247487 1.102514 -19.300001 +v 0.247487 1.102514 -19.187502 +v 0.000000 1.000002 -19.187502 +v 0.000000 1.000002 -19.300001 +v 0.000000 1.700002 -19.187502 +v 0.247487 1.597489 -19.187502 +v 0.350000 1.350002 -19.187502 +v -0.247487 1.102514 -19.187502 v 0.000000 1.750000 -1.199998 -v 0.103528 1.736374 -18.200001 -v 0.000000 1.750003 -18.200001 +v 0.103528 1.736373 -18.200001 +v 0.000000 1.750002 -18.200001 v 0.103528 1.736370 -1.199998 -v 0.200000 1.696413 -18.200001 +v 0.200000 1.696412 -18.200001 v 0.200000 1.696410 -1.199998 -v 0.282843 1.632846 -18.200001 +v 0.282843 1.632845 -18.200001 v 0.282843 1.632842 -1.199998 -v 0.346410 1.550003 -18.200001 +v 0.346410 1.550002 -18.200001 v 0.346410 1.549999 -1.199998 -v 0.386370 1.453531 -18.200001 +v 0.386370 1.453530 -18.200001 v 0.386370 1.453527 -1.199998 -v 0.400000 1.350003 -18.200001 +v 0.400000 1.350002 -18.200001 v 0.400000 1.349999 -1.199998 -v 0.386370 1.246476 -18.200001 +v 0.386370 1.246475 -18.200001 v 0.386370 1.246472 -1.199998 -v 0.346410 1.150003 -18.200001 +v 0.346410 1.150002 -18.200001 v 0.346410 1.150000 -1.199998 -v 0.282843 1.067161 -18.200001 +v 0.282843 1.067160 -18.200001 v 0.282843 1.067157 -1.199998 -v 0.200000 1.003593 -18.200001 +v 0.200000 1.003592 -18.200001 v 0.200000 1.003590 -1.199998 -v 0.103528 0.963633 -18.200001 +v 0.103528 0.963632 -18.200001 v 0.103528 0.963629 -1.199998 -v 0.000000 0.950003 -18.200001 +v 0.000000 0.950002 -18.200001 v 0.000000 0.950000 -1.199998 -v -0.103527 0.963633 -18.200001 +v -0.103527 0.963632 -18.200001 v -0.103527 0.963629 -1.199998 -v -0.200000 1.003593 -18.200001 +v -0.200000 1.003592 -18.200001 v -0.200000 1.003589 -1.199998 -v -0.282843 1.067161 -18.200001 +v -0.282843 1.067160 -18.200001 v -0.282843 1.067157 -1.199998 -v -0.346410 1.150003 -18.200001 +v -0.346410 1.150002 -18.200001 v -0.346410 1.150000 -1.199998 -v -0.386370 1.246475 -18.200001 +v -0.386370 1.246474 -18.200001 v -0.386370 1.246472 -1.199998 -v -0.400000 1.350003 -18.200001 +v -0.400000 1.350002 -18.200001 v -0.400000 1.349999 -1.199998 -v -0.386370 1.453531 -18.200001 +v -0.386370 1.453530 -18.200001 v -0.386370 1.453527 -1.199998 -v -0.346410 1.550003 -18.200001 +v -0.346410 1.550002 -18.200001 v -0.346410 1.549999 -1.199998 -v -0.282843 1.632846 -18.200001 +v -0.282843 1.632845 -18.200001 v -0.282843 1.632842 -1.199998 -v -0.200000 1.696413 -18.200001 +v -0.200000 1.696412 -18.200001 v -0.200000 1.696410 -1.199998 -v -0.103528 1.736374 -18.200001 +v -0.103528 1.736373 -18.200001 v -0.103528 1.736370 -1.199998 -v 0.000000 1.850003 -15.850002 -v 0.129410 1.832966 -17.850002 -v 0.000000 1.850003 -17.850002 -v 0.129410 1.832966 -15.850002 -v 0.250000 1.783015 -17.850002 -v 0.250000 1.783015 -15.850002 -v 0.353553 1.703556 -17.850002 -v 0.353553 1.703556 -15.850002 -v 0.433013 1.600003 -17.850002 -v 0.433013 1.600003 -15.850002 -v 0.482963 1.479412 -17.850002 -v 0.482963 1.479412 -15.850002 -v 0.500000 1.350003 -17.850002 -v 0.500000 1.350003 -15.850002 -v 0.482963 1.220594 -17.850002 -v 0.482963 1.220594 -15.850002 -v 0.433013 1.100003 -17.850002 -v 0.433013 1.100003 -15.850002 -v 0.353554 0.996450 -17.850002 -v 0.353554 0.996450 -15.850002 -v 0.250000 0.916990 -17.850002 -v 0.250000 0.916990 -15.850002 -v 0.129410 0.867040 -17.850002 -v 0.129410 0.867040 -15.850002 -v 0.000000 0.850003 -17.850002 -v 0.000000 0.850003 -15.850002 -v -0.129409 0.867040 -17.850002 -v -0.129409 0.867040 -15.850002 -v -0.250000 0.916990 -17.850002 -v -0.250000 0.916990 -15.850002 -v -0.353553 0.996450 -17.850002 -v -0.353553 0.996449 -15.850002 -v -0.433013 1.100003 -17.850002 -v -0.433013 1.100003 -15.850002 -v -0.482963 1.220593 -17.850002 -v -0.482963 1.220593 -15.850002 -v -0.500000 1.350003 -17.850002 -v -0.500000 1.350002 -15.850002 -v -0.482963 1.479412 -17.850002 -v -0.482963 1.479412 -15.850002 -v -0.433013 1.600003 -17.850002 -v -0.433013 1.600003 -15.850002 -v -0.353554 1.703556 -17.850002 -v -0.353554 1.703556 -15.850002 -v -0.250000 1.783015 -17.850002 -v -0.250000 1.783015 -15.850002 -v -0.129410 1.832966 -17.850002 -v -0.129410 1.832966 -15.850002 -v 0.000000 1.850003 -15.400005 -v 0.129410 1.832966 -15.600006 -v 0.000000 1.850003 -15.600006 -v 0.129410 1.832966 -15.400005 -v 0.250000 1.783015 -15.600006 -v 0.250000 1.783015 -15.400005 -v 0.353553 1.703556 -15.600006 -v 0.353553 1.703556 -15.400005 -v 0.433013 1.600003 -15.600006 -v 0.433013 1.600003 -15.400005 -v 0.482963 1.479412 -15.600006 -v 0.482963 1.479412 -15.400005 -v 0.500000 1.350003 -15.600006 -v 0.500000 1.350003 -15.400005 -v 0.482963 1.220594 -15.600006 -v 0.482963 1.220594 -15.400005 -v 0.433013 1.100003 -15.600006 -v 0.433013 1.100003 -15.400005 -v 0.353554 0.996450 -15.600006 -v 0.353554 0.996450 -15.400005 -v 0.250000 0.916990 -15.600006 -v 0.250000 0.916990 -15.400005 -v 0.129410 0.867040 -15.600006 -v 0.129410 0.867040 -15.400005 -v 0.000000 0.850003 -15.600006 -v 0.000000 0.850003 -15.400005 -v -0.129409 0.867040 -15.600006 -v -0.129409 0.867040 -15.400005 -v -0.250000 0.916990 -15.600006 -v -0.250000 0.916990 -15.400005 -v -0.353553 0.996449 -15.600006 -v -0.353553 0.996449 -15.400005 -v -0.433013 1.100003 -15.600006 -v -0.433013 1.100003 -15.400005 -v -0.482963 1.220593 -15.600006 -v -0.482963 1.220593 -15.400005 -v -0.500000 1.350003 -15.600006 -v -0.500000 1.350003 -15.400005 -v -0.482963 1.479412 -15.600006 -v -0.482963 1.479412 -15.400005 -v -0.433013 1.600003 -15.600006 -v -0.433013 1.600003 -15.400005 -v -0.353554 1.703556 -15.600006 -v -0.353554 1.703556 -15.400005 -v -0.250000 1.783015 -15.600006 -v -0.250000 1.783015 -15.400005 -v -0.129410 1.832966 -15.600006 -v -0.129410 1.832966 -15.400005 -v 0.000000 1.850003 -15.050005 -v 0.129410 1.832966 -15.250006 -v 0.000000 1.850003 -15.250006 -v 0.129410 1.832966 -15.050005 -v 0.250000 1.783015 -15.250006 -v 0.250000 1.783015 -15.050005 -v 0.353553 1.703556 -15.250006 -v 0.353553 1.703556 -15.050005 -v 0.433013 1.600003 -15.250006 -v 0.433013 1.600003 -15.050005 -v 0.482963 1.479412 -15.250006 -v 0.482963 1.479412 -15.050005 -v 0.500000 1.350003 -15.250006 -v 0.500000 1.350003 -15.050005 -v 0.482963 1.220594 -15.250006 -v 0.482963 1.220594 -15.050005 -v 0.433013 1.100003 -15.250006 -v 0.433013 1.100003 -15.050005 -v 0.353554 0.996450 -15.250006 -v 0.353554 0.996450 -15.050005 -v 0.250000 0.916990 -15.250006 -v 0.250000 0.916990 -15.050005 -v 0.129410 0.867040 -15.250006 -v 0.129410 0.867040 -15.050005 -v 0.000000 0.850003 -15.250006 -v 0.000000 0.850003 -15.050005 -v -0.129409 0.867040 -15.250006 -v -0.129409 0.867040 -15.050005 -v -0.250000 0.916990 -15.250006 -v -0.250000 0.916990 -15.050005 -v -0.353553 0.996450 -15.250006 -v -0.353553 0.996450 -15.050005 -v -0.433013 1.100003 -15.250006 -v -0.433013 1.100003 -15.050005 -v -0.482963 1.220593 -15.250006 -v -0.482963 1.220593 -15.050005 -v -0.500000 1.350003 -15.250006 -v -0.500000 1.350003 -15.050005 -v -0.482963 1.479412 -15.250006 -v -0.482963 1.479412 -15.050005 -v -0.433013 1.600003 -15.250006 -v -0.433013 1.600003 -15.050005 -v -0.353554 1.703556 -15.250006 -v -0.353554 1.703556 -15.050005 -v -0.250000 1.783015 -15.250006 -v -0.250000 1.783015 -15.050005 -v -0.129410 1.832966 -15.250006 -v -0.129410 1.832966 -15.050005 -v 0.000000 1.850001 -10.700005 -v 0.129410 1.832966 -14.900005 -v 0.000000 1.850003 -14.900005 -v 0.129410 1.832963 -10.700005 -v 0.250000 1.783015 -14.900005 -v 0.250000 1.783013 -10.700005 -v 0.353553 1.703556 -14.900005 -v 0.353553 1.703553 -10.700005 -v 0.433013 1.600003 -14.900005 -v 0.433013 1.600001 -10.700005 -v 0.482963 1.479412 -14.900005 -v 0.482963 1.479409 -10.700005 -v 0.500000 1.350003 -14.900005 -v 0.500000 1.350001 -10.700005 -v 0.482963 1.220594 -14.900005 -v 0.482963 1.220591 -10.700005 -v 0.433013 1.100003 -14.900005 -v 0.433013 1.100001 -10.700005 -v 0.353554 0.996450 -14.900005 -v 0.353554 0.996448 -10.700005 -v 0.250000 0.916990 -14.900005 -v 0.250000 0.916987 -10.700005 -v 0.129410 0.867040 -14.900005 -v 0.129410 0.867037 -10.700005 -v 0.000000 0.850003 -14.900005 -v 0.000000 0.850001 -10.700005 -v -0.129409 0.867040 -14.900005 -v -0.129409 0.867037 -10.700005 -v -0.250000 0.916990 -14.900005 -v -0.250000 0.916987 -10.700005 -v -0.353553 0.996450 -14.900005 -v -0.353553 0.996446 -10.700005 -v -0.433013 1.100003 -14.900005 -v -0.433013 1.100001 -10.700005 -v -0.482963 1.220593 -14.900005 -v -0.482963 1.220590 -10.700005 -v -0.500000 1.350003 -14.900005 -v -0.500000 1.349999 -10.700005 -v -0.482963 1.479412 -14.900005 -v -0.482963 1.479409 -10.700005 -v -0.433013 1.600003 -14.900005 -v -0.433013 1.600001 -10.700005 -v -0.353554 1.703556 -14.900005 -v -0.353554 1.703553 -10.700005 -v -0.250000 1.783015 -14.900005 -v -0.250000 1.783013 -10.700005 -v -0.129410 1.832966 -14.900005 -v -0.129410 1.832963 -10.700005 -v 0.000000 2.880379 -19.500000 -v 0.303359 2.756258 -19.500000 -v 0.365776 2.674914 -19.500000 -v 0.401974 2.587524 -19.500000 -v 0.413496 2.500003 -19.500000 -v 0.401974 2.412482 -19.500000 -v 0.365776 2.325093 -19.500000 -v 0.303359 2.243749 -19.500000 -v 0.217114 2.177571 -19.500000 -v 0.113208 2.134532 -19.500000 -v 0.000000 2.119627 -19.500000 -v -0.113207 2.134532 -19.500000 -v -0.217114 2.177571 -19.500000 -v -0.303358 2.243749 -19.500000 -v -0.365776 2.325093 -19.500000 -v -0.401974 2.412482 -19.500000 -v -0.413496 2.500003 -19.500000 -v -0.401974 2.587524 -19.500000 -v -0.365776 2.674914 -19.500000 -v -0.303359 2.756258 -19.500000 -v -0.217115 2.822435 -19.500000 -v -0.113208 2.865475 -19.500000 +v 0.000000 1.850002 -15.850002 +v 0.129410 1.832965 -17.850002 +v 0.000000 1.850002 -17.850002 +v 0.129410 1.832965 -15.850002 +v 0.250000 1.783014 -17.850002 +v 0.250000 1.783014 -15.850002 +v 0.353553 1.703555 -17.850002 +v 0.353553 1.703555 -15.850002 +v 0.433013 1.600002 -17.850002 +v 0.433013 1.600002 -15.850002 +v 0.482963 1.479411 -17.850002 +v 0.482963 1.479411 -15.850002 +v 0.500000 1.350002 -17.850002 +v 0.500000 1.350002 -15.850002 +v 0.482963 1.220593 -17.850002 +v 0.482963 1.220593 -15.850002 +v 0.433013 1.100002 -17.850002 +v 0.433013 1.100002 -15.850002 +v 0.353554 0.996449 -17.850002 +v 0.353554 0.996449 -15.850002 +v 0.250000 0.916989 -17.850002 +v 0.250000 0.916989 -15.850002 +v 0.129410 0.867039 -17.850002 +v 0.129410 0.867039 -15.850002 +v 0.000000 0.850002 -17.850002 +v 0.000000 0.850002 -15.850002 +v -0.129409 0.867039 -17.850002 +v -0.129409 0.867039 -15.850002 +v -0.250000 0.916989 -17.850002 +v -0.250000 0.916989 -15.850002 +v -0.353553 0.996449 -17.850002 +v -0.353553 0.996448 -15.850002 +v -0.433013 1.100002 -17.850002 +v -0.433013 1.100002 -15.850002 +v -0.482963 1.220592 -17.850002 +v -0.482963 1.220592 -15.850002 +v -0.500000 1.350002 -17.850002 +v -0.500000 1.350001 -15.850002 +v -0.482963 1.479411 -17.850002 +v -0.482963 1.479411 -15.850002 +v -0.433013 1.600002 -17.850002 +v -0.433013 1.600002 -15.850002 +v -0.353554 1.703555 -17.850002 +v -0.353554 1.703555 -15.850002 +v -0.250000 1.783014 -17.850002 +v -0.250000 1.783014 -15.850002 +v -0.129410 1.832965 -17.850002 +v -0.129410 1.832965 -15.850002 +v 0.000000 1.850002 -15.400005 +v 0.129410 1.832965 -15.600006 +v 0.000000 1.850002 -15.600006 +v 0.129410 1.832965 -15.400005 +v 0.250000 1.783014 -15.600006 +v 0.250000 1.783014 -15.400005 +v 0.353553 1.703555 -15.600006 +v 0.353553 1.703555 -15.400005 +v 0.433013 1.600002 -15.600006 +v 0.433013 1.600002 -15.400005 +v 0.482963 1.479411 -15.600006 +v 0.482963 1.479411 -15.400005 +v 0.500000 1.350002 -15.600006 +v 0.500000 1.350002 -15.400005 +v 0.482963 1.220593 -15.600006 +v 0.482963 1.220593 -15.400005 +v 0.433013 1.100002 -15.600006 +v 0.433013 1.100002 -15.400005 +v 0.353554 0.996449 -15.600006 +v 0.353554 0.996449 -15.400005 +v 0.250000 0.916989 -15.600006 +v 0.250000 0.916989 -15.400005 +v 0.129410 0.867039 -15.600006 +v 0.129410 0.867039 -15.400005 +v 0.000000 0.850002 -15.600006 +v 0.000000 0.850002 -15.400005 +v -0.129409 0.867039 -15.600006 +v -0.129409 0.867039 -15.400005 +v -0.250000 0.916989 -15.600006 +v -0.250000 0.916989 -15.400005 +v -0.353553 0.996448 -15.600006 +v -0.353553 0.996448 -15.400005 +v -0.433013 1.100002 -15.600006 +v -0.433013 1.100002 -15.400005 +v -0.482963 1.220592 -15.600006 +v -0.482963 1.220592 -15.400005 +v -0.500000 1.350002 -15.600006 +v -0.500000 1.350002 -15.400005 +v -0.482963 1.479411 -15.600006 +v -0.482963 1.479411 -15.400005 +v -0.433013 1.600002 -15.600006 +v -0.433013 1.600002 -15.400005 +v -0.353554 1.703555 -15.600006 +v -0.353554 1.703555 -15.400005 +v -0.250000 1.783014 -15.600006 +v -0.250000 1.783014 -15.400005 +v -0.129410 1.832965 -15.600006 +v -0.129410 1.832965 -15.400005 +v 0.000000 1.850002 -15.050005 +v 0.129410 1.832965 -15.250006 +v 0.000000 1.850002 -15.250006 +v 0.129410 1.832965 -15.050005 +v 0.250000 1.783014 -15.250006 +v 0.250000 1.783014 -15.050005 +v 0.353553 1.703555 -15.250006 +v 0.353553 1.703555 -15.050005 +v 0.433013 1.600002 -15.250006 +v 0.433013 1.600002 -15.050005 +v 0.482963 1.479411 -15.250006 +v 0.482963 1.479411 -15.050005 +v 0.500000 1.350002 -15.250006 +v 0.500000 1.350002 -15.050005 +v 0.482963 1.220593 -15.250006 +v 0.482963 1.220593 -15.050005 +v 0.433013 1.100002 -15.250006 +v 0.433013 1.100002 -15.050005 +v 0.353554 0.996449 -15.250006 +v 0.353554 0.996449 -15.050005 +v 0.250000 0.916989 -15.250006 +v 0.250000 0.916989 -15.050005 +v 0.129410 0.867039 -15.250006 +v 0.129410 0.867039 -15.050005 +v 0.000000 0.850002 -15.250006 +v 0.000000 0.850002 -15.050005 +v -0.129409 0.867039 -15.250006 +v -0.129409 0.867039 -15.050005 +v -0.250000 0.916989 -15.250006 +v -0.250000 0.916989 -15.050005 +v -0.353553 0.996449 -15.250006 +v -0.353553 0.996449 -15.050005 +v -0.433013 1.100002 -15.250006 +v -0.433013 1.100002 -15.050005 +v -0.482963 1.220592 -15.250006 +v -0.482963 1.220592 -15.050005 +v -0.500000 1.350002 -15.250006 +v -0.500000 1.350002 -15.050005 +v -0.482963 1.479411 -15.250006 +v -0.482963 1.479411 -15.050005 +v -0.433013 1.600002 -15.250006 +v -0.433013 1.600002 -15.050005 +v -0.353554 1.703555 -15.250006 +v -0.353554 1.703555 -15.050005 +v -0.250000 1.783014 -15.250006 +v -0.250000 1.783014 -15.050005 +v -0.129410 1.832965 -15.250006 +v -0.129410 1.832965 -15.050005 +v 0.000000 1.850000 -10.700005 +v 0.129410 1.832965 -14.900005 +v 0.000000 1.850002 -14.900005 +v 0.129410 1.832962 -10.700005 +v 0.250000 1.783014 -14.900005 +v 0.250000 1.783012 -10.700005 +v 0.353553 1.703555 -14.900005 +v 0.353553 1.703552 -10.700005 +v 0.433013 1.600002 -14.900005 +v 0.433013 1.600000 -10.700005 +v 0.482963 1.479411 -14.900005 +v 0.482963 1.479408 -10.700005 +v 0.500000 1.350002 -14.900005 +v 0.500000 1.350000 -10.700005 +v 0.482963 1.220593 -14.900005 +v 0.482963 1.220590 -10.700005 +v 0.433013 1.100002 -14.900005 +v 0.433013 1.100000 -10.700005 +v 0.353554 0.996449 -14.900005 +v 0.353554 0.996447 -10.700005 +v 0.250000 0.916989 -14.900005 +v 0.250000 0.916986 -10.700005 +v 0.129410 0.867039 -14.900005 +v 0.129410 0.867036 -10.700005 +v 0.000000 0.850002 -14.900005 +v 0.000000 0.850000 -10.700005 +v -0.129409 0.867039 -14.900005 +v -0.129409 0.867036 -10.700005 +v -0.250000 0.916989 -14.900005 +v -0.250000 0.916986 -10.700005 +v -0.353553 0.996449 -14.900005 +v -0.353553 0.996445 -10.700005 +v -0.433013 1.100002 -14.900005 +v -0.433013 1.100000 -10.700005 +v -0.482963 1.220592 -14.900005 +v -0.482963 1.220589 -10.700005 +v -0.500000 1.350002 -14.900005 +v -0.500000 1.349998 -10.700005 +v -0.482963 1.479411 -14.900005 +v -0.482963 1.479408 -10.700005 +v -0.433013 1.600002 -14.900005 +v -0.433013 1.600000 -10.700005 +v -0.353554 1.703555 -14.900005 +v -0.353554 1.703552 -10.700005 +v -0.250000 1.783014 -14.900005 +v -0.250000 1.783012 -10.700005 +v -0.129410 1.832965 -14.900005 +v -0.129410 1.832962 -10.700005 +v 0.000000 2.880378 -19.500000 +v 0.303359 2.756257 -19.500000 +v 0.365776 2.674912 -19.500000 +v 0.401974 2.587523 -19.500000 +v 0.413496 2.500002 -19.500000 +v 0.401974 2.412481 -19.500000 +v 0.365776 2.325092 -19.500000 +v 0.303359 2.243747 -19.500000 +v 0.217114 2.177570 -19.500000 +v 0.113208 2.134531 -19.500000 +v 0.000000 2.119626 -19.500000 +v -0.113207 2.134531 -19.500000 +v -0.217114 2.177570 -19.500000 +v -0.303358 2.243747 -19.500000 +v -0.365776 2.325092 -19.500000 +v -0.401974 2.412481 -19.500000 +v -0.413496 2.500002 -19.500000 +v -0.401974 2.587523 -19.500000 +v -0.365776 2.674912 -19.500000 +v -0.303359 2.756257 -19.500000 +v -0.217115 2.822433 -19.500000 +v -0.113208 2.865474 -19.500000 v -0.303359 2.756227 -4.500000 v -0.217115 2.822405 -4.500000 v -0.303358 2.243718 -4.500000 @@ -557,365 +557,365 @@ v 0.401974 2.412452 -4.500000 v 0.000000 2.880348 -4.500000 v 0.365776 2.325063 -4.500000 v -0.113208 2.865444 -4.500000 -v -0.247487 1.597490 -19.187502 -v -0.755718 0.647394 5.837500 -v 0.755718 -2.527644 7.135499 -v -0.755718 -2.527644 7.135499 -v -0.755718 -0.180467 8.289835 -v -0.859447 -0.780915 8.274623 -v -0.755718 -0.780915 8.274623 -v -0.755718 -3.377863 7.013356 -v 0.755718 -3.377863 7.013356 -v -0.755718 -2.987607 8.437500 -v 0.755718 -2.987607 8.437500 -v 0.755718 -2.817606 9.400000 -v 0.755718 -2.464953 7.305608 -v 0.860460 -3.026299 7.224965 -v 0.755718 -3.026299 7.224965 -v -0.755718 -0.688223 8.418876 -v 0.755718 -0.688223 8.418876 -v 0.755718 0.185424 9.259533 -v -0.755718 0.582394 8.302500 -v -0.755718 0.185424 9.259533 -v -0.755718 -0.369988 8.426938 -v 0.755718 -0.369988 8.426938 -v 0.755718 0.582394 8.302500 -v -1.000000 2.933334 -1.071110 -v -1.000000 0.800000 -1.699999 -v -1.000000 0.780398 -0.913832 -v 1.000000 0.800000 -1.699999 -v 1.000000 2.933334 -1.699999 -v 1.000000 1.698309 -0.676977 -v 1.000000 2.933304 -1.071133 -v -1.000000 2.933334 -1.699999 -v 1.000000 0.650225 4.306945 -v -1.000000 0.550646 8.300697 -v -1.000000 0.650225 4.306945 -v 1.000000 0.550646 8.300697 -v -1.000000 -3.878247 18.970343 -v 1.000000 2.932952 6.299709 -v 1.000000 -3.878247 18.970343 -v -1.000000 0.817814 19.398920 -v 1.000000 1.917567 8.277368 -v 1.155736 2.325624 6.986647 -v 1.000000 2.325624 6.986647 -v -1.000000 2.237243 7.108925 -v -1.185947 2.308128 6.984412 -v -1.000000 2.308128 6.984412 -v 1.000000 2.123852 8.290171 -v -1.000000 2.123852 8.290171 -v -1.000000 2.933334 6.300001 -v 1.000000 2.527876 7.012211 -v -0.750000 3.200001 3.750000 -v -0.750000 2.900000 -1.750000 -v -0.750000 2.900000 3.750000 -v 0.750000 3.200001 -1.750000 -v 0.750000 2.900000 3.750000 -v 0.750000 2.900000 -1.750000 -v 0.750000 3.200001 3.750000 -v -0.750000 3.200001 -1.750000 -v -0.250000 0.652645 5.427117 -v 0.250000 0.640000 5.690244 -v 0.250000 0.652645 5.427117 -v -0.250000 0.256794 5.586637 -v 0.250000 -0.181354 5.410000 -v -0.250000 -0.181354 5.410000 -v -0.250000 -0.031450 5.624102 -v 0.250000 0.160424 5.735405 -v 0.250000 -0.031450 5.624102 -v 0.250000 0.405741 5.904014 -v 0.250000 0.256794 5.586637 -v -0.250000 0.640000 5.690244 -v 0.250000 0.606441 5.842027 -v -0.250000 0.405741 5.904014 -v -0.250000 0.160424 5.735405 -v -0.250000 0.606441 5.842027 -v -0.500000 0.660000 2.970000 -v 0.500000 0.660000 4.294731 -v 0.500000 0.660000 2.970000 -v 0.500000 0.324113 3.675095 -v -0.500000 0.324113 3.675095 -v -0.500000 0.660000 4.294731 -v 0.500000 0.509328 4.170000 -v -0.500000 -0.124560 4.074054 -v 0.500000 -0.124560 4.074054 -v -0.500000 0.346295 4.124543 -v 0.500000 0.346295 4.124543 -v 0.500000 0.069553 4.199328 -v -0.500000 0.069553 4.199328 -v -0.500000 -0.236114 4.310554 -v 0.500000 -0.146776 4.438249 -v -0.500000 -0.351705 5.529659 -v 0.500000 -0.322895 4.675695 -v 0.500000 -0.351705 5.529659 -v -0.500000 -0.322895 4.675695 -v 0.500000 -0.236114 4.310554 -v 0.500000 -0.262769 5.520746 -v -0.500000 -0.146776 4.438249 -v -0.500000 -0.262769 5.520746 -v -0.500000 -0.202867 5.844228 -v 0.500000 -0.202867 5.844228 -v 0.500000 -0.157875 5.763871 -v -0.500000 0.158226 6.022319 -v 0.500000 0.158226 6.022319 -v -0.500000 0.239107 5.983576 -v 0.500000 0.239107 5.983576 -v -0.500000 -0.157875 5.763871 -v -0.750000 2.930000 6.000000 -v -0.500000 3.441713 5.759016 -v -0.750000 3.441713 5.759016 -v 0.750000 3.441713 5.759016 -v 0.750000 2.930000 6.000000 -v 0.750000 3.523953 4.644016 -v 0.750000 2.930000 3.800829 -v 0.500000 2.930000 6.000000 -v 0.500000 2.930000 3.800829 -v 0.500000 3.427887 3.897640 -v -0.750000 3.830230 5.170968 -v -0.500000 3.823139 5.393547 -v -0.500000 3.830230 5.170968 -v 0.500000 3.523953 4.644016 -v -0.750000 3.523953 4.644016 -v 0.500000 3.823139 5.393547 -v 0.750000 3.823139 5.393547 -v 0.500000 3.830230 5.170968 -v 0.750000 3.830230 5.170968 -v -0.500000 3.523953 4.644016 -v -0.496667 3.427887 3.897640 -v -0.500000 3.427887 3.897640 -v -0.750000 3.427887 3.897640 -v -0.500000 2.930000 3.800829 -v -0.750000 2.930000 3.800829 -v -0.500000 2.930000 6.000000 -v 0.496667 2.930000 3.800829 -v -0.750000 3.823139 5.393547 -v 0.500000 3.441713 5.759016 -v -0.496667 2.930000 3.800829 -v -0.496667 3.523953 4.644016 -v -1.000000 -3.606867 18.872658 -v -1.000000 0.608680 19.257383 -v -1.000000 1.899714 8.276260 -v -1.000000 0.761976 8.347678 -v -1.000000 2.527876 7.012211 -v -1.185947 1.899714 8.276260 -v -1.185947 2.237243 7.108925 -v -1.185947 0.761976 8.347678 -v -1.185947 0.608680 19.257383 -v -1.185947 -3.606867 18.872658 -v 1.000000 2.293221 7.043643 -v 1.000000 -3.628483 18.880440 -v 1.000000 0.817814 19.398920 -v 1.000000 0.745147 8.343928 -v 1.000000 0.625337 19.268656 -v 1.155736 0.745147 8.343928 -v 1.155736 2.293221 7.043643 -v 1.155736 1.917567 8.277368 -v 1.155736 -3.628483 18.880440 -v 1.155736 0.625337 19.268656 -v -0.755718 0.375138 6.127107 -v -0.755718 -2.470537 7.290457 -v -0.755718 -3.057612 7.206118 -v -0.755718 -2.724833 8.420519 -v -0.755718 -2.602371 9.113867 -v -0.755718 -2.817606 9.400000 -v -0.755718 0.126025 8.749284 -v -0.755718 0.318211 8.285953 -v -0.859447 0.375138 6.127107 -v -0.859447 -2.470537 7.290457 -v -0.859447 -2.724833 8.420519 -v -0.859447 0.318211 8.285953 -v -0.859447 -0.180467 8.289835 -v -0.859447 -2.602371 9.113867 -v -0.859447 0.126025 8.749284 -v -0.859447 -3.057612 7.206118 -v 0.755718 0.348518 6.155423 -v 0.755718 0.292380 8.284335 -v 0.755718 0.647394 5.837500 -v 0.755718 -2.581326 9.085890 -v 0.755718 -2.699138 8.418859 -v 0.755718 0.120217 8.699394 -v 0.755718 -0.789979 8.260518 -v 0.755718 -0.161936 8.276430 -v 0.860460 -0.789979 8.260518 -v 0.860460 -2.699138 8.418859 -v 0.860460 -2.464953 7.305608 -v 0.860460 0.292380 8.284335 -v 0.860460 -0.161936 8.276430 -v 0.860460 -2.581326 9.085890 -v 0.860460 0.348518 6.155423 -v 0.860460 0.120217 8.699394 -v 1.000000 2.933104 3.105046 -v -1.000000 2.933334 3.105221 -v 1.000000 0.780398 -0.913832 -v 1.000000 1.335998 -0.650505 -v 0.788792 1.270460 2.926924 -v 1.000000 1.270460 2.928254 -v 1.000000 2.371172 -0.726139 -v 1.000000 2.370995 2.978774 -v 0.788792 1.698309 -0.676977 -v 0.788792 2.370995 2.978774 -v 0.788792 1.666737 2.926896 -v 0.988511 1.668191 5.137841 -v 0.777303 1.668191 5.136976 -v 0.788792 2.371172 -0.726139 -v 0.788792 1.335998 -0.650505 -v 1.000000 1.666737 2.927761 -v 0.777303 1.271914 5.137004 -v 0.988511 1.271914 5.138335 -v -0.500000 0.509328 4.170000 -v 0.750000 3.427887 3.897640 -v -0.496667 3.823139 5.393547 -v -0.496667 3.830230 5.170968 +v -0.247487 1.597489 -19.187502 +v -0.562597 0.647394 5.837500 +v 0.566750 -2.527643 7.135499 +v -0.562597 -2.527643 7.135499 +v -0.562597 -0.180466 8.289835 +v -0.640103 -0.780915 8.274623 +v -0.562597 -0.780915 8.274623 +v -0.562597 -3.377862 7.013357 +v 0.566750 -3.377862 7.013357 +v -0.562597 -2.987606 8.437500 +v 0.566750 -2.987606 8.437500 +v 0.566750 -2.817605 9.400000 +v 0.566750 -2.464953 7.305608 +v 0.645014 -3.026299 7.224965 +v 0.566750 -3.026299 7.224965 +v -0.562597 -0.688222 8.418876 +v 0.566750 -0.688222 8.418876 +v 0.566750 0.185425 9.259533 +v -0.562597 0.582395 8.302500 +v -0.562597 0.185425 9.259533 +v -0.562597 -0.369987 8.426938 +v 0.566750 -0.369987 8.426938 +v 0.566750 0.582395 8.302500 +v -0.745125 2.933334 -1.071110 +v -0.745125 0.800000 -1.699999 +v -0.745125 0.780398 -0.913832 +v 0.749278 0.800000 -1.699999 +v 0.749278 2.933334 -1.699999 +v 0.749278 1.698309 -0.676977 +v 0.749278 2.933304 -1.071133 +v -0.745125 2.933334 -1.699999 +v 0.749278 0.650225 4.306945 +v -0.745125 0.550647 8.300697 +v -0.745125 0.650225 4.306945 +v 0.749278 0.550647 8.300697 +v -0.745125 -3.878246 18.970343 +v 0.749278 2.932952 6.299709 +v 0.749278 -3.878246 18.970343 +v -0.745125 0.817816 19.398920 +v 0.749278 1.917568 8.277368 +v 0.865644 2.325624 6.986647 +v 0.749278 2.325624 6.986647 +v -0.745125 2.237243 7.108925 +v -0.884064 2.308129 6.984412 +v -0.745125 2.308129 6.984412 +v 0.749278 2.123853 8.290171 +v -0.745125 2.123853 8.290171 +v -0.745125 2.933335 6.300001 +v 0.749278 2.527876 7.012211 +v -0.558324 3.200001 3.750000 +v -0.558324 2.900000 -1.750000 +v -0.558324 2.900000 3.750000 +v 0.562478 3.200001 -1.750000 +v 0.562478 2.900000 3.750000 +v 0.562478 2.900000 -1.750000 +v 0.562478 3.200001 3.750000 +v -0.558324 3.200001 -1.750000 +v -0.184724 0.652645 5.427117 +v 0.188877 0.640000 5.690244 +v 0.188877 0.652645 5.427117 +v -0.184724 0.256794 5.586637 +v 0.188877 -0.181354 5.410000 +v -0.184724 -0.181354 5.410000 +v -0.184724 -0.031450 5.624102 +v 0.188877 0.160424 5.735405 +v 0.188877 -0.031450 5.624102 +v 0.188877 0.405741 5.904014 +v 0.188877 0.256794 5.586637 +v -0.184724 0.640000 5.690244 +v 0.188877 0.606441 5.842027 +v -0.184724 0.405741 5.904014 +v -0.184724 0.160424 5.735405 +v -0.184724 0.606441 5.842027 +v -0.371524 0.660000 2.970000 +v 0.375677 0.660000 4.294731 +v 0.375677 0.660000 2.970000 +v 0.375677 0.324113 3.675095 +v -0.371524 0.324113 3.675095 +v -0.371524 0.660000 4.294731 +v 0.375677 0.509328 4.170000 +v -0.371524 -0.124560 4.074054 +v 0.375677 -0.124560 4.074054 +v -0.371524 0.346295 4.124543 +v 0.375677 0.346295 4.124543 +v 0.375677 0.069553 4.199328 +v -0.371524 0.069553 4.199328 +v -0.371524 -0.236114 4.310554 +v 0.375677 -0.146776 4.438249 +v -0.371524 -0.351705 5.529659 +v 0.375677 -0.322895 4.675695 +v 0.375677 -0.351705 5.529659 +v -0.371524 -0.322895 4.675695 +v 0.375677 -0.236114 4.310554 +v 0.375677 -0.262769 5.520746 +v -0.371524 -0.146776 4.438249 +v -0.371524 -0.262769 5.520746 +v -0.371524 -0.202867 5.844228 +v 0.375677 -0.202867 5.844228 +v 0.375677 -0.157875 5.763871 +v -0.371524 0.158226 6.022319 +v 0.375677 0.158226 6.022319 +v -0.371524 0.239107 5.983576 +v 0.375677 0.239107 5.983576 +v -0.371524 -0.157875 5.763871 +v -0.558324 2.930001 6.000000 +v -0.371524 3.441714 5.759016 +v -0.558324 3.441714 5.759016 +v 0.562478 3.441714 5.759016 +v 0.562478 2.930001 6.000000 +v 0.562478 3.523953 4.644015 +v 0.562478 2.930000 3.800829 +v 0.375677 2.930001 6.000000 +v 0.375677 2.930000 3.800829 +v 0.375677 3.427887 3.897640 +v -0.558324 3.830230 5.170968 +v -0.371524 3.823139 5.393547 +v -0.371524 3.830230 5.170968 +v 0.375677 3.523953 4.644015 +v -0.558324 3.523953 4.644015 +v 0.375677 3.823139 5.393547 +v 0.562478 3.823139 5.393547 +v 0.375677 3.830230 5.170968 +v 0.562478 3.830230 5.170968 +v -0.371524 3.523953 4.644015 +v -0.369034 3.427887 3.897640 +v -0.371524 3.427887 3.897640 +v -0.558324 3.427887 3.897640 +v -0.371524 2.930000 3.800829 +v -0.558324 2.930000 3.800829 +v -0.371524 2.930001 6.000000 +v 0.373187 2.930000 3.800829 +v -0.558324 3.823139 5.393547 +v 0.375677 3.441714 5.759016 +v -0.369034 2.930000 3.800829 +v -0.369034 3.523953 4.644015 +v -0.745125 -3.606866 18.872658 +v -0.745125 0.608681 19.257383 +v -0.745125 1.899715 8.276260 +v -0.745125 0.761977 8.347678 +v -0.745125 2.527876 7.012211 +v -0.884064 1.899715 8.276260 +v -0.884064 2.237243 7.108925 +v -0.884064 0.761977 8.347678 +v -0.884064 0.608681 19.257383 +v -0.884064 -3.606866 18.872658 +v 0.749278 2.293221 7.043643 +v 0.749278 -3.628482 18.880440 +v 0.749278 0.817816 19.398920 +v 0.749278 0.745148 8.343928 +v 0.749278 0.625338 19.268656 +v 0.865644 0.745148 8.343928 +v 0.865644 2.293221 7.043643 +v 0.865644 1.917568 8.277368 +v 0.865644 -3.628482 18.880440 +v 0.865644 0.625338 19.268656 +v -0.562597 0.375139 6.127107 +v -0.562597 -2.470536 7.290457 +v -0.562597 -3.057612 7.206118 +v -0.562597 -2.724832 8.420519 +v -0.562597 -2.602371 9.113867 +v -0.562597 -2.817605 9.400000 +v -0.562597 0.126026 8.749284 +v -0.562597 0.318212 8.285953 +v -0.640103 0.375139 6.127107 +v -0.640103 -2.470536 7.290457 +v -0.640103 -2.724832 8.420519 +v -0.640103 0.318212 8.285953 +v -0.640103 -0.180466 8.289835 +v -0.640103 -2.602371 9.113867 +v -0.640103 0.126026 8.749284 +v -0.640103 -3.057612 7.206118 +v 0.566750 0.348518 6.155423 +v 0.566750 0.292381 8.284335 +v 0.566750 0.647394 5.837500 +v 0.566750 -2.581325 9.085890 +v 0.566750 -2.699137 8.418859 +v 0.566750 0.120218 8.699394 +v 0.566750 -0.789978 8.260518 +v 0.566750 -0.161935 8.276430 +v 0.645014 -0.789978 8.260518 +v 0.645014 -2.699137 8.418859 +v 0.645014 -2.464953 7.305608 +v 0.645014 0.292381 8.284335 +v 0.645014 -0.161935 8.276430 +v 0.645014 -2.581325 9.085890 +v 0.645014 0.348518 6.155423 +v 0.645014 0.120218 8.699394 +v 0.749278 2.933104 3.105046 +v -0.745125 2.933334 3.105221 +v 0.749278 0.780398 -0.913832 +v 0.749278 1.335998 -0.650505 +v 0.591463 1.270460 2.786515 +v 0.749278 1.270460 2.787845 +v 0.749278 2.371172 -0.726139 +v 0.749278 2.370995 2.838365 +v 0.591463 1.698309 -0.676977 +v 0.591463 2.370995 2.838365 +v 0.591463 1.666737 2.786487 +v 0.740693 1.668191 5.137841 +v 0.582879 1.668191 5.136976 +v 0.591463 2.371172 -0.726139 +v 0.591463 1.335998 -0.650505 +v 0.749278 1.666737 2.787352 +v 0.582879 1.271914 5.137004 +v 0.740693 1.271914 5.138335 +v -0.371524 0.509328 4.170000 +v 0.562478 3.427887 3.897640 +v -0.369034 3.823139 5.393547 +v -0.369034 3.830230 5.170968 v 0.212415 3.387585 5.190104 -v 0.249773 3.433107 5.409896 -v 0.212415 3.387585 5.409896 +v 0.249773 3.433107 5.409895 +v 0.212415 3.387585 5.409895 v 0.249773 3.433107 5.190104 -v 0.277533 3.485042 5.409896 -v 0.277533 3.485042 5.190104 -v 0.294628 3.541395 5.409896 +v 0.277533 3.485043 5.409895 +v 0.277533 3.485043 5.190104 +v 0.294628 3.541395 5.409895 v 0.294628 3.541395 5.190104 -v 0.300400 3.600000 5.409896 +v 0.300400 3.600000 5.409895 v 0.300400 3.600000 5.190104 -v 0.294628 3.658605 5.409896 -v 0.294628 3.658605 5.190104 -v 0.277533 3.714958 5.409896 +v 0.294628 3.658606 5.409895 +v 0.294628 3.658606 5.190104 +v 0.277533 3.714958 5.409895 v 0.277533 3.714958 5.190104 -v 0.249773 3.766893 5.409896 +v 0.249773 3.766893 5.409895 v 0.249773 3.766893 5.190104 -v 0.212415 3.812415 5.409896 +v 0.212415 3.812415 5.409895 v 0.212415 3.812415 5.190104 -v 0.166893 3.849773 5.409896 +v 0.166893 3.849773 5.409895 v 0.166893 3.849773 5.190104 -v 0.114958 3.877533 5.409896 +v 0.114958 3.877533 5.409895 v 0.114958 3.877533 5.190104 -v 0.058605 3.894628 5.409896 -v 0.058605 3.894628 5.190104 -v 0.000000 3.900400 5.409896 +v 0.058605 3.894629 5.409895 +v 0.058605 3.894629 5.190104 +v 0.000000 3.900400 5.409895 v 0.000000 3.900400 5.190104 -v -0.058605 3.894628 5.409896 -v -0.058605 3.894628 5.190104 -v -0.114958 3.877533 5.409896 +v -0.058605 3.894629 5.409895 +v -0.058605 3.894629 5.190104 +v -0.114958 3.877533 5.409895 v -0.114958 3.877533 5.190104 -v -0.166893 3.849773 5.409896 +v -0.166893 3.849773 5.409895 v -0.166893 3.849773 5.190104 -v -0.212415 3.812415 5.409896 +v -0.212415 3.812415 5.409895 v -0.212415 3.812415 5.190104 -v -0.249773 3.766893 5.409896 +v -0.249773 3.766893 5.409895 v -0.249773 3.766893 5.190104 -v -0.277533 3.714958 5.409896 +v -0.277533 3.714958 5.409895 v -0.277533 3.714958 5.190104 -v -0.294628 3.658605 5.409896 -v -0.294628 3.658605 5.190104 -v -0.300400 3.600000 5.409896 +v -0.294628 3.658606 5.409895 +v -0.294628 3.658606 5.190104 +v -0.300400 3.600000 5.409895 v -0.300400 3.600000 5.190104 -v -0.294628 3.541395 5.409896 +v -0.294628 3.541395 5.409895 v -0.294628 3.541395 5.190104 -v -0.277533 3.485042 5.409896 -v -0.277533 3.485042 5.190104 -v -0.249773 3.433107 5.409896 +v -0.277533 3.485043 5.409895 +v -0.277533 3.485043 5.190104 +v -0.249773 3.433107 5.409895 v -0.249773 3.433107 5.190104 -v -0.212414 3.387585 5.409896 +v -0.212414 3.387585 5.409895 v 0.146217 3.453784 5.190104 -v 0.171933 3.485118 5.410770 +v 0.171933 3.485118 5.410769 v 0.171933 3.485118 5.190104 v 0.202808 3.559659 5.190104 -v 0.191041 3.520868 5.190104 +v 0.191041 3.520869 5.190104 v 0.206782 3.600000 5.190104 -v 0.202808 3.640341 5.190104 +v 0.202808 3.640342 5.190104 v 0.171933 3.714882 5.190104 v 0.191041 3.679132 5.190104 v 0.146217 3.746217 5.190104 -v 0.114882 3.771933 5.190104 -v 0.040341 3.802808 5.190104 +v 0.114882 3.771934 5.190104 +v 0.040341 3.802809 5.190104 v 0.079132 3.791041 5.190104 v 0.000000 3.806782 5.190104 -v -0.040341 3.802808 5.190104 -v -0.114882 3.771933 5.190104 +v -0.040341 3.802809 5.190104 +v -0.114882 3.771934 5.190104 v -0.079132 3.791041 5.190104 v -0.146217 3.746217 5.190104 v -0.171933 3.714881 5.190104 -v -0.202808 3.640341 5.190104 +v -0.202808 3.640342 5.190104 v -0.191041 3.679132 5.190104 v -0.206782 3.600000 5.190104 v -0.202808 3.559659 5.190104 -v -0.191041 3.520868 5.190104 +v -0.191041 3.520869 5.190104 v -0.171932 3.485118 5.190104 v -0.212414 3.387585 5.190104 v -0.040341 3.397192 5.190104 -v 0.000000 3.393219 5.410770 +v 0.000000 3.393219 5.410769 v 0.000000 3.393219 5.190104 -v -0.114882 3.771933 5.410770 -v 0.191041 3.520868 5.410770 -v -0.146217 3.746217 5.410770 -v 0.202808 3.559659 5.410770 -v -0.171933 3.714881 5.410770 -v 0.206782 3.600000 5.410770 -v -0.191041 3.679132 5.410770 -v 0.202808 3.640341 5.410770 -v -0.202808 3.640341 5.410770 -v 0.191041 3.679132 5.410770 -v -0.206781 3.600000 5.410770 -v 0.171933 3.714882 5.410770 -v -0.202808 3.559659 5.410770 -v 0.146217 3.746217 5.410770 -v -0.191041 3.520868 5.410770 -v 0.114882 3.771933 5.410770 -v -0.171932 3.485118 5.410770 -v 0.079132 3.791041 5.410770 -v 0.040341 3.397192 5.410770 +v -0.114882 3.771934 5.410769 +v 0.191041 3.520869 5.410769 +v -0.146217 3.746217 5.410769 +v 0.202808 3.559659 5.410769 +v -0.171933 3.714881 5.410769 +v 0.206782 3.600000 5.410769 +v -0.191041 3.679132 5.410769 +v 0.202808 3.640342 5.410769 +v -0.202808 3.640342 5.410769 +v 0.191041 3.679132 5.410769 +v -0.206781 3.600000 5.410769 +v 0.171933 3.714882 5.410769 +v -0.202808 3.559659 5.410769 +v 0.146217 3.746217 5.410769 +v -0.191041 3.520869 5.410769 +v 0.114882 3.771934 5.410769 +v -0.171932 3.485118 5.410769 +v 0.079132 3.791041 5.410769 +v 0.040341 3.397192 5.410769 v 0.040341 3.397192 5.190104 -v -0.146216 3.453783 5.410770 -v -0.146216 3.453783 5.190104 -v 0.040341 3.802808 5.410770 -v 0.079132 3.408959 5.410770 +v -0.146216 3.453784 5.410769 +v -0.146216 3.453784 5.190104 +v 0.040341 3.802809 5.410769 +v 0.079132 3.408959 5.410769 v 0.079132 3.408959 5.190104 -v -0.114881 3.428067 5.410770 +v -0.114881 3.428067 5.410769 v -0.114881 3.428067 5.190104 -v 0.000000 3.806782 5.410770 -v 0.114882 3.428067 5.410770 +v 0.000000 3.806782 5.410769 +v 0.114882 3.428067 5.410769 v 0.114882 3.428067 5.190104 -v -0.079132 3.408959 5.410770 +v -0.079132 3.408959 5.410769 v -0.079132 3.408959 5.190104 -v -0.040341 3.802808 5.410770 -v 0.146217 3.453784 5.410770 -v -0.040341 3.397192 5.410770 -v -0.079132 3.791041 5.410770 -v 0.169977 3.486425 5.409896 -v 0.188868 3.521768 5.409896 -v 0.200501 3.560118 5.409896 -v 0.204429 3.600000 5.409896 -v 0.200501 3.639882 5.409896 -v 0.188868 3.678232 5.409896 -v 0.169977 3.713575 5.409896 -v 0.144553 3.744553 5.409896 -v 0.113575 3.769977 5.409896 -v 0.078232 3.788868 5.409896 -v 0.039882 3.800501 5.409896 -v 0.000000 3.804429 5.409896 -v -0.039882 3.800501 5.409896 -v -0.078232 3.788868 5.409896 -v -0.113575 3.769977 5.409896 -v -0.144553 3.744553 5.409896 -v -0.169977 3.713575 5.409896 -v -0.188868 3.678231 5.409896 -v -0.200501 3.639882 5.409896 -v -0.204429 3.600000 5.409896 -v -0.200501 3.560118 5.409896 -v -0.188868 3.521768 5.409896 -v -0.169977 3.486425 5.409896 -v -0.144553 3.455447 5.409896 -v -0.499854 3.387367 5.661843 -v -0.499854 2.912633 4.938158 -v -0.499854 2.912633 5.661843 -v -0.499854 3.387367 4.938158 -v 0.519854 2.912633 4.938158 -v 0.519854 3.387367 4.938158 -v 0.519854 2.912633 5.661843 -v 0.519854 3.387367 5.661843 -v 0.212149 3.387367 5.409896 +v -0.040341 3.802809 5.410769 +v 0.146217 3.453784 5.410769 +v -0.040341 3.397192 5.410769 +v -0.079132 3.791041 5.410769 +v 0.169977 3.486425 5.409895 +v 0.188868 3.521769 5.409895 +v 0.200501 3.560118 5.409895 +v 0.204429 3.600000 5.409895 +v 0.200501 3.639883 5.409895 +v 0.188868 3.678232 5.409895 +v 0.169977 3.713575 5.409895 +v 0.144553 3.744554 5.409895 +v 0.113575 3.769978 5.409895 +v 0.078232 3.788868 5.409895 +v 0.039882 3.800502 5.409895 +v 0.000000 3.804430 5.409895 +v -0.039882 3.800502 5.409895 +v -0.078232 3.788868 5.409895 +v -0.113575 3.769978 5.409895 +v -0.144553 3.744554 5.409895 +v -0.169977 3.713575 5.409895 +v -0.188868 3.678231 5.409895 +v -0.200501 3.639883 5.409895 +v -0.204429 3.600000 5.409895 +v -0.200501 3.560118 5.409895 +v -0.188868 3.521769 5.409895 +v -0.169977 3.486425 5.409895 +v -0.144553 3.455447 5.409895 +v -0.371415 3.387367 5.661842 +v -0.371415 2.912633 4.938158 +v -0.371415 2.912633 5.661843 +v -0.371415 3.387367 4.938158 +v 0.390512 2.912633 4.938158 +v 0.390512 3.387367 4.938158 +v 0.390512 2.912633 5.661843 +v 0.390512 3.387367 5.661842 +v 0.212149 3.387367 5.409895 v 0.212149 3.387367 5.190104 v -0.212149 3.387367 5.190104 -v -0.212149 3.387367 5.409896 +v -0.212149 3.387367 5.409895 v 0.000000 3.387367 5.190104 v 0.042295 3.387367 5.190104 v 0.088076 3.387367 5.190104 @@ -923,461 +923,390 @@ v 0.142077 3.387367 5.190104 v -0.142076 3.387367 5.190104 v -0.088075 3.387367 5.190104 v -0.042295 3.387367 5.190104 -v 0.039882 3.399499 5.409896 -v 0.000000 3.387367 5.409896 -v 0.042295 3.387367 5.409896 -v 0.078232 3.411132 5.409896 -v 0.088076 3.387367 5.409896 -v 0.113575 3.430023 5.409896 -v 0.142077 3.387367 5.409896 -v 0.144553 3.455447 5.409896 -v -0.088075 3.387367 5.409896 -v -0.113575 3.430023 5.409896 -v -0.142076 3.387367 5.409896 -v -0.042295 3.387367 5.409896 -v -0.078231 3.411132 5.409896 -v -0.039882 3.399499 5.409896 -v 0.000000 3.395571 5.409896 -v -0.285753 2.876174 -17.583353 -v -0.206993 3.392601 -18.284744 -v -0.285753 2.876174 -18.899897 -v 0.285753 2.876174 -18.899897 -v 0.206993 3.392601 -18.284744 -v 0.285753 2.876174 -17.583353 -v 0.206993 3.392601 -17.955841 -v -0.052052 3.504859 -18.120081 -v -0.045935 3.600579 -18.259661 -v -0.052052 3.504859 -18.269205 -v 0.052052 3.504859 -18.269205 -v 0.045935 3.600579 -18.259661 -v 0.052052 3.504859 -18.120081 -v 0.045935 3.600579 -18.122107 -v 0.063413 3.327094 -18.286932 -v -0.063413 3.327094 -18.116322 -v -0.063413 3.327094 -18.286932 -v 0.063413 3.327094 -18.116322 -v -0.197447 3.270684 -17.965662 -v -0.287607 3.625364 -18.247025 -v -0.197447 3.270684 -18.300558 -v -0.199752 3.652224 -18.247025 -v -0.076163 3.307764 -18.300558 -v -0.076163 3.307764 -17.965662 -v -0.199752 3.652224 -17.977015 -v 0.076163 3.307764 -17.965847 -v 0.199752 3.652224 -18.246998 -v 0.076163 3.307764 -18.300491 -v 0.197447 3.270684 -18.300491 -v 0.287607 3.625364 -18.246998 -v 0.197447 3.270684 -17.965847 -v 0.287607 3.625364 -17.977190 -v -0.206993 3.392601 -17.955841 -v -0.045935 3.600579 -18.122107 -v -0.287607 3.625364 -17.977015 -v 0.199752 3.652224 -17.977190 +v 0.039882 3.399499 5.409895 +v 0.000000 3.387367 5.409895 +v 0.042295 3.387367 5.409895 +v 0.078232 3.411133 5.409895 +v 0.088076 3.387367 5.409895 +v 0.113575 3.430023 5.409895 +v 0.142077 3.387367 5.409895 +v 0.144553 3.455447 5.409895 +v -0.088075 3.387367 5.409895 +v -0.113575 3.430023 5.409895 +v -0.142076 3.387367 5.409895 +v -0.042295 3.387367 5.409895 +v -0.078231 3.411133 5.409895 +v -0.039882 3.399499 5.409895 +v 0.000000 3.395571 5.409895 +v -0.285753 2.876173 -17.583353 +v -0.206993 3.392600 -18.284744 +v -0.285753 2.876173 -18.899897 +v 0.285753 2.876173 -18.899897 +v 0.206993 3.392600 -18.284744 +v 0.285753 2.876173 -17.583353 +v 0.206993 3.392600 -17.955841 +v -0.052052 3.504858 -18.120081 +v -0.045935 3.600578 -18.259661 +v -0.052052 3.504858 -18.269205 +v 0.052052 3.504858 -18.269205 +v 0.045935 3.600578 -18.259661 +v 0.052052 3.504858 -18.120081 +v 0.045935 3.600578 -18.122107 +v 0.063413 3.327093 -18.286932 +v -0.063413 3.327093 -18.116322 +v -0.063413 3.327093 -18.286932 +v 0.063413 3.327093 -18.116322 +v -0.197447 3.270683 -17.965662 +v -0.287607 3.625363 -18.247025 +v -0.197447 3.270683 -18.300558 +v -0.199752 3.652223 -18.247025 +v -0.076163 3.307763 -18.300558 +v -0.076163 3.307763 -17.965662 +v -0.199752 3.652223 -17.977015 +v 0.076163 3.307763 -17.965847 +v 0.199752 3.652223 -18.246998 +v 0.076163 3.307763 -18.300491 +v 0.197447 3.270683 -18.300491 +v 0.287607 3.625363 -18.246998 +v 0.197447 3.270683 -17.965847 +v 0.287607 3.625363 -17.977190 +v -0.206993 3.392600 -17.955841 +v -0.045935 3.600578 -18.122107 +v -0.287607 3.625363 -17.977015 +v 0.199752 3.652223 -17.977190 +vn -0.0004 -0.0000 -1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0005 -0.0000 -1.0000 +vn 0.0029 -1.0000 0.0015 +vn 0.0064 -1.0000 0.0034 +vn -0.0000 -1.0000 -0.0000 +vn 0.8011 0.5986 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.0008 0.0005 1.0000 +vn 0.0014 0.0044 1.0000 +vn 0.0015 0.0049 1.0000 +vn 0.0010 1.0000 -0.0000 +vn -0.8011 0.5986 -0.0000 +vn -0.0066 0.0049 1.0000 +vn -0.9179 -0.3969 -0.0000 +vn -0.0007 -0.0000 -1.0000 +vn -0.0009 -1.0000 0.0003 +vn -0.0000 -0.5728 0.8197 +vn -0.0005 -0.8620 0.5069 +vn 0.8506 0.0005 0.5258 +vn 0.8501 -0.0003 0.5266 +vn 0.8501 -0.0000 0.5267 +vn 0.8011 -0.5986 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.8011 -0.5986 -0.0000 +vn -0.0000 -0.5727 0.8197 +vn -0.0005 -0.8619 0.5070 +vn 0.8500 -0.0007 0.5267 +vn 0.8510 0.0008 0.5252 +vn 0.8511 -0.0000 0.5250 +vn -0.0009 -1.0000 0.0004 +vn -0.0001 -0.5735 0.8192 +vn 0.8503 -0.0000 0.5263 +vn 0.8505 0.0002 0.5259 +vn 0.8505 -0.0000 0.5259 +vn -0.9178 -0.3970 -0.0000 +vn 0.8504 -0.0000 0.5262 +vn 0.8505 0.0005 0.5259 +vn 0.8500 -0.0003 0.5267 +vn 0.8500 -0.0000 0.5268 +vn -0.0005 -0.8620 0.5070 +vn -0.8503 -0.0000 -0.5263 +vn -0.0000 -0.5729 0.8196 +vn -0.8504 -0.0000 -0.5261 +vn -0.0000 -0.5731 0.8195 +vn -0.0005 -0.8621 0.5068 +vn -0.8502 -0.0000 -0.5265 +vn -0.9179 -0.3968 -0.0000 +vn 0.0093 -0.9999 0.0049 +vn 0.0007 -0.0000 1.0000 +vn -0.0010 -1.0000 -0.0000 +vn -0.0011 -1.0000 0.0005 +vn -0.0011 -1.0000 0.0003 +vn 0.9961 0.0882 -0.0000 +vn 0.9865 -0.1635 -0.0000 +vn 0.8737 -0.4865 -0.0000 +vn 0.6256 -0.7802 -0.0000 +vn 0.2322 -0.9727 -0.0000 +vn -0.2322 -0.9727 -0.0000 +vn -0.6256 -0.7802 -0.0000 +vn -0.8737 -0.4865 -0.0000 +vn -0.9865 -0.1635 -0.0000 +vn -0.9961 0.0882 -0.0000 +vn 0.1305 0.9914 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn 0.6088 0.7934 -0.0000 +vn 0.7934 0.6088 -0.0000 +vn 0.7933 0.6088 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.9914 0.1305 -0.0000 +vn 0.9914 -0.1305 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.7934 -0.6088 -0.0000 +vn 0.6088 -0.7934 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.1305 -0.9914 -0.0000 +vn -0.1305 -0.9914 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.6088 -0.7934 -0.0000 +vn -0.7934 -0.6088 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9914 -0.1305 -0.0000 +vn -0.9914 0.1305 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.7934 0.6088 -0.0000 +vn -0.6088 0.7934 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.1305 0.9914 -0.0000 +vn 0.3514 -0.8484 -0.3959 +vn 0.8484 -0.3514 -0.3959 +vn 0.8484 0.3514 -0.3959 +vn 0.3514 0.8484 -0.3959 +vn -0.3514 0.8484 -0.3959 +vn -0.8484 0.3514 -0.3959 +vn -0.8484 -0.3514 -0.3959 +vn -0.3514 -0.8484 -0.3959 +vn -0.6088 -0.7933 -0.0000 +vn -0.7933 -0.6088 -0.0000 +vn 0.6088 0.7933 -0.0000 +vn 0.6088 -0.7933 -0.0000 +vn 0.5314 0.1600 -0.8319 +vn 0.8527 -0.0000 -0.5224 +vn 0.5314 -0.1600 -0.8319 +vn -0.0000 -0.0001 -1.0000 +vn -0.0000 0.0002 -1.0000 +vn -0.0000 0.0001 1.0000 +vn -0.0000 -0.0001 1.0000 +vn -0.0000 0.0001 -1.0000 +vn 0.7933 -0.6088 -0.0000 +vn -0.0000 -0.3784 -0.9256 +vn -0.0000 -0.0253 0.9997 +vn -0.0000 0.1422 -0.9898 +vn -0.0000 -0.9644 0.2643 +vn -0.0000 -0.9848 0.1739 +vn -0.0000 0.4185 0.9082 +vn -0.0000 0.9237 0.3831 +vn -0.0000 -0.8319 0.5549 +vn -0.0000 0.9997 0.0264 +vn -0.0000 -0.9997 -0.0249 +vn -0.0000 -0.9236 -0.3834 +vn 0.0001 0.6431 0.7658 +vn -0.0000 0.6432 0.7657 +vn 0.0002 0.6431 0.7658 +vn -0.0000 -0.0909 0.9959 +vn -0.0000 0.9535 0.3014 +vn -0.0000 -0.8690 -0.4947 +vn -0.0000 0.9932 0.1168 +vn 0.0001 0.8691 0.4946 +vn 0.0002 0.8692 0.4944 +vn 0.0003 0.8693 0.4942 +vn -0.0000 0.9988 0.0480 +vn -0.0000 0.3739 -0.9275 +vn -0.0000 -0.8192 0.5735 +vn -0.0000 -0.5018 0.8650 +vn -0.0000 -0.3738 -0.9275 +vn -0.0000 0.9764 0.2159 +vn -0.0000 -0.5664 0.8241 +vn -0.0000 0.2951 0.9555 +vn -0.0000 -0.9028 -0.4301 +vn -0.0000 -0.6377 0.7703 +vn -0.0000 -0.6645 -0.7473 +vn -0.0000 -0.2686 0.9633 +vn -0.0000 0.2609 0.9654 +vn -0.0000 -0.9044 -0.4266 +vn -0.0000 0.7413 0.6712 +vn -0.0000 -0.9994 -0.0337 +vn -0.0000 -0.9729 -0.2312 +vn -0.0000 0.9943 0.1065 +vn -0.0000 -0.9039 0.4277 +vn -0.0000 0.9182 -0.3961 +vn -0.0000 -0.4423 0.8969 +vn -0.0000 0.4320 0.9019 +vn -0.0000 0.4842 -0.8749 +vn -0.0000 0.4261 0.9047 +vn -0.0000 0.1909 -0.9816 +vn -0.0000 0.9995 0.0318 +vn -0.0000 0.9918 -0.1277 +vn -0.0000 0.6918 0.7220 +vn -0.0000 0.8646 -0.5025 +vn 1.0000 -0.0007 0.0005 +vn 1.0000 -0.0014 0.0012 +vn -0.0000 -0.6430 -0.7658 +vn -0.0000 -0.6432 -0.7657 +vn -0.0000 -0.8693 -0.4942 +vn -0.6596 -0.0683 0.7485 +vn -0.8378 -0.5043 -0.2093 +vn -0.8500 0.5231 0.0615 +vn -0.8432 0.5126 0.1621 +vn -0.8274 0.4880 0.2778 +vn -0.7765 -0.4066 -0.4813 +vn -0.9847 -0.1471 -0.0934 +vn -0.6634 -0.4810 -0.5732 +vn 0.8711 0.4878 0.0574 +vn 0.8649 0.4785 0.1513 +vn 0.8509 0.4567 0.2597 +vn 0.6244 -0.6823 -0.3803 +vn 0.9324 -0.3053 -0.1935 +vn 0.4276 -0.5944 -0.6811 +vn 0.8498 -0.4812 -0.2153 +vn 0.8540 -0.4746 -0.2131 +vn 0.5116 -0.7935 -0.3296 +vn 0.6942 -0.0654 0.7168 +vn 0.9639 -0.2569 0.0704 +vn 0.9639 -0.2570 0.0704 +vn 0.9648 -0.2588 0.0457 +vn 0.9220 0.1620 0.3516 +vn 0.8935 -0.0114 0.4489 +vn 0.9565 -0.2427 0.1619 +vn 0.9618 0.2530 0.1049 +vn 0.9655 0.2601 0.0069 +vn 0.9180 -0.1501 -0.3671 +vn 0.8977 0.0627 -0.4361 +vn -0.9588 -0.2796 0.0494 +vn -0.9577 -0.2776 0.0761 +vn -0.8823 0.0669 -0.4660 +vn -0.9052 -0.1609 -0.3935 +vn -0.9597 0.2811 0.0074 +vn -0.9553 0.2732 0.1133 +vn -0.9492 -0.2618 0.1747 +vn -0.8776 -0.0121 0.4793 +vn -0.9097 0.1738 0.3771 +vn 0.0001 1.0000 -0.0000 +vn 0.0002 1.0000 -0.0000 +vn 0.0003 1.0000 -0.0000 +vn -0.0000 0.9998 0.0191 +vn -0.0002 0.9998 0.0191 +vn 1.0000 0.0011 0.0004 +vn 1.0000 -0.0019 0.0015 +vn 1.0000 -0.0005 0.0020 +vn 1.0000 -0.0000 0.0012 +vn -0.0000 -1.0000 0.0006 +vn -0.0000 0.0729 0.9973 +vn 0.0047 0.0733 -0.9973 +vn 0.0008 0.0724 -0.9974 +vn -0.0000 0.0722 -0.9974 +vn 1.0000 -0.0000 0.0018 +vn 0.0062 -0.0004 -1.0000 +vn 0.0077 -0.0010 -1.0000 +vn 0.0055 -0.0001 -1.0000 +vn -0.0000 1.0000 -0.0006 +vn 1.0000 -0.0000 0.0037 +vn 1.0000 -0.0026 -0.0033 +vn 0.0003 0.6430 0.7658 +vn -0.0000 0.8690 0.4947 +vn -0.0000 0.6918 0.7221 +vn 1.0000 -0.0041 0.0015 +vn 1.0000 -0.0003 0.0021 +vn 1.0000 -0.0067 -0.0002 +vn 1.0000 0.0001 0.0019 +vn -0.7777 -0.4043 -0.4814 +vn -0.7745 -0.4066 -0.4846 +vn -0.7289 -0.4483 -0.5175 +vn -0.6601 -0.4830 -0.5753 +vn 0.6040 -0.5435 -0.5829 +vn 0.5342 -0.5890 -0.6064 +vn 0.4630 -0.6025 -0.6501 +vn 0.4152 -0.5851 -0.6966 +vn 0.8373 -0.4982 -0.2250 +vn 0.4917 -0.8041 -0.3342 +vn 0.4860 -0.8072 -0.3351 +vn 1.0000 0.0088 0.0025 +vn 0.0055 0.0735 -0.9973 +vn 0.0084 -0.0012 -1.0000 +vn 1.0000 -0.0032 -0.0034 +vn 1.0000 0.0052 -0.0019 +vn 1.0000 -0.0041 -0.0024 +vn 1.0000 0.0022 -0.0022 +vn 1.0000 0.0099 0.0001 +vn 1.0000 -0.0003 0.0037 +vn 0.7730 -0.6344 -0.0000 +vn 0.8819 -0.4714 -0.0000 +vn 0.9569 -0.2903 -0.0000 +vn 0.9952 -0.0980 -0.0000 +vn 0.9952 0.0980 -0.0000 +vn 0.9569 0.2903 -0.0000 +vn 0.8819 0.4714 -0.0000 +vn 0.7730 0.6344 -0.0000 +vn 0.6344 0.7730 -0.0000 +vn 0.4714 0.8819 -0.0000 +vn 0.2903 0.9569 -0.0000 +vn 0.0980 0.9952 -0.0000 +vn -0.0980 0.9952 -0.0000 +vn -0.2903 0.9569 -0.0000 +vn -0.4714 0.8819 -0.0000 +vn -0.6344 0.7730 -0.0000 +vn -0.7730 0.6344 -0.0000 +vn -0.8819 0.4714 -0.0000 +vn -0.9569 0.2903 -0.0000 +vn -0.9952 0.0980 -0.0000 +vn -0.9952 -0.0980 -0.0000 +vn -0.9569 -0.2903 -0.0000 +vn -0.8819 -0.4714 -0.0000 +vn -0.7730 -0.6344 -0.0000 +vn -0.0000 -0.0002 -1.0000 +vn -0.0000 0.0009 -1.0000 +vn 0.4714 -0.8819 -0.0000 +vn 0.6344 -0.7730 -0.0000 +vn -0.6344 -0.7730 -0.0000 +vn -0.4714 -0.8819 -0.0000 +vn -0.2903 -0.9569 -0.0000 +vn -0.0980 -0.9952 -0.0000 +vn 0.0980 -0.9952 -0.0000 +vn 0.2903 -0.9569 -0.0000 +vn -0.0000 -0.0002 1.0000 +vn 0.6339 -0.7734 -0.0000 +vn -0.6348 -0.7726 -0.0000 +vn -0.6346 -0.7728 -0.0000 +vn -0.0000 -0.0003 -1.0000 +vn -0.0000 0.0013 -1.0000 +vn -0.0000 -0.0003 1.0000 +vn -0.9886 0.1508 -0.0000 +vn -0.0000 0.7659 -0.6430 +vn 0.9886 0.1508 -0.0000 +vn -0.0000 0.5850 0.8110 +vn -0.9980 0.0638 -0.0000 +vn -0.0000 0.0992 -0.9951 +vn 0.9980 0.0638 -0.0000 +vn -0.0000 0.0212 0.9998 +vn -0.0000 0.0211 0.9998 +vn -0.9692 -0.2464 -0.0000 +vn -0.0424 0.1386 -0.9894 +vn 0.9412 0.3377 -0.0000 +vn -0.0091 0.0297 0.9995 +vn 0.2924 -0.9563 -0.0000 +vn -0.2924 0.9563 -0.0000 +vn -0.9413 0.3377 -0.0000 +vn -0.9412 0.3377 -0.0000 +vn 0.0423 0.1385 -0.9895 +vn 0.9692 -0.2464 -0.0000 +vn 0.0091 0.0297 0.9995 +vn -0.2924 -0.9563 -0.0000 +vn 0.2924 0.9563 -0.0000 +vn 0.9413 0.3377 -0.0000 +vn 0.0091 0.0296 0.9995 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 vt 0.498282 0.968169 vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 vt 0.443281 0.982469 -vt 0.470782 0.982469 vt 0.443281 0.996769 vt 0.415780 0.982469 vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 vt 0.443281 0.953868 -vt 0.470782 0.953868 vt 0.415793 0.982420 vt 0.443281 0.939568 vt 0.443281 0.939617 vt 0.470782 0.939568 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.968169 -vt 0.415780 0.982469 -vt 0.498282 0.968169 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.939568 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.939568 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.939568 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.939568 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.939568 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.939568 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.939568 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.470782 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.470782 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.470782 0.939568 -vt 0.443281 0.939617 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.498282 0.968169 -vt 0.470782 0.982469 -vt 0.470782 0.953868 -vt 0.470782 0.968169 -vt 0.443281 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.982469 -vt 0.443281 0.996769 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.470782 0.996769 -vt 0.443281 0.996769 -vt 0.498282 0.968169 -vt 0.443281 0.982469 -vt 0.415970 0.982469 -vt 0.415780 0.982469 -vt 0.415780 0.968169 -vt 0.443281 0.953868 -vt 0.470782 0.953868 -vt 0.415793 0.982420 -vt 0.443281 0.939568 -vt 0.470782 0.939568 -vt 0.443281 0.939617 vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.498282 0.982469 -vt 0.443281 0.968169 vt 0.435064 0.853152 vt 0.419806 0.853152 vt 0.557124 0.853152 @@ -1476,7 +1405,6 @@ vt 0.532301 0.962891 vt 0.529201 0.943544 vt 0.592763 0.964859 vt 0.589052 0.965659 -vt 0.589052 0.965659 vt 0.603611 0.987891 vt 0.594310 0.968544 vt 0.603611 0.968544 @@ -1490,7 +1418,6 @@ vt 0.566406 0.987891 vt 0.557105 0.968544 vt 0.557105 0.987891 vt 0.547804 0.968544 -vt 0.565662 0.958871 vt 0.547804 0.968157 vt 0.529945 0.958871 vt 0.547804 0.987891 @@ -1500,310 +1427,62 @@ vt 0.529201 0.968544 vt 0.597637 0.952304 vt 0.572381 0.952304 vt 0.572381 0.965437 -vt 0.547804 0.968157 vt 0.554118 0.962154 vt 0.560431 0.965437 vt 0.556733 0.958871 -vt 0.565662 0.958871 vt 0.554118 0.955587 vt 0.560431 0.952304 vt 0.547804 0.949584 vt 0.547804 0.954228 vt 0.535176 0.952304 vt 0.541490 0.955587 -vt 0.529945 0.958871 vt 0.538874 0.958871 vt 0.535176 0.965437 vt 0.541490 0.962154 -vt 0.575707 0.987891 vt 0.585009 0.983745 vt 0.575707 0.983745 -vt 0.566406 0.987891 vt 0.566406 0.983745 vt 0.529201 0.987891 vt 0.538502 0.983745 vt 0.529201 0.983745 -vt 0.594310 0.987891 vt 0.603611 0.983745 vt 0.594310 0.983745 -vt 0.585009 0.987891 -vt 0.557105 0.987891 vt 0.557105 0.983745 -vt 0.603611 0.987891 vt 0.600511 0.968544 -vt 0.603611 0.968544 vt 0.600511 0.987891 vt 0.597411 0.968544 vt 0.597411 0.987891 -vt 0.594310 0.968544 -vt 0.594310 0.987891 vt 0.591210 0.968544 vt 0.591210 0.987891 vt 0.588109 0.968544 vt 0.588109 0.987891 -vt 0.585009 0.968544 -vt 0.585009 0.987891 vt 0.581908 0.968544 vt 0.581908 0.987891 vt 0.578808 0.968544 vt 0.578808 0.987891 -vt 0.575707 0.968544 -vt 0.575707 0.987891 vt 0.572607 0.968544 vt 0.572607 0.987891 vt 0.569507 0.968544 vt 0.569507 0.987891 -vt 0.566406 0.968544 -vt 0.566406 0.987891 vt 0.563306 0.968544 vt 0.563306 0.987891 vt 0.560205 0.968544 vt 0.560205 0.987891 -vt 0.557105 0.968544 -vt 0.557105 0.987891 vt 0.554004 0.968544 vt 0.554004 0.987891 vt 0.550904 0.968544 vt 0.550904 0.987891 -vt 0.547804 0.968544 -vt 0.547804 0.987891 vt 0.544703 0.968544 vt 0.544703 0.987891 vt 0.541603 0.968544 vt 0.541603 0.987891 -vt 0.538502 0.968544 -vt 0.538502 0.987891 vt 0.535402 0.968544 -vt 0.529945 0.958871 -vt 0.556733 0.950828 -vt 0.556733 0.966913 vt 0.535402 0.987891 vt 0.532301 0.968544 vt 0.532301 0.987891 -vt 0.529201 0.968544 vt 0.567759 0.961274 vt 0.580387 0.967841 vt 0.602259 0.956467 -vt 0.603611 0.962891 -vt 0.600511 0.943544 -vt 0.603611 0.943544 -vt 0.600511 0.962891 -vt 0.597411 0.943544 -vt 0.597411 0.962891 -vt 0.594310 0.943544 -vt 0.594310 0.962891 -vt 0.591210 0.943544 -vt 0.591210 0.962891 -vt 0.588109 0.943544 -vt 0.588109 0.962891 -vt 0.585009 0.943544 -vt 0.585009 0.962891 -vt 0.581908 0.943544 -vt 0.581908 0.962891 -vt 0.578808 0.943544 -vt 0.578808 0.962891 -vt 0.575707 0.943544 -vt 0.575707 0.962891 -vt 0.572607 0.943544 -vt 0.572607 0.962891 -vt 0.569507 0.943544 -vt 0.569507 0.962891 -vt 0.566406 0.943544 -vt 0.566406 0.962891 -vt 0.563306 0.943544 -vt 0.563306 0.962891 -vt 0.560205 0.943544 -vt 0.560205 0.962891 -vt 0.557105 0.943544 -vt 0.557105 0.962891 -vt 0.554004 0.943544 -vt 0.554004 0.962891 -vt 0.550904 0.943544 -vt 0.550904 0.962891 -vt 0.547804 0.943544 -vt 0.547804 0.962891 -vt 0.544703 0.943544 -vt 0.544703 0.962891 -vt 0.541603 0.943544 -vt 0.541603 0.962891 -vt 0.538502 0.943544 -vt 0.538502 0.962891 -vt 0.535402 0.943544 -vt 0.556733 0.950828 -vt 0.565662 0.958871 -vt 0.556733 0.966913 -vt 0.535402 0.962891 -vt 0.532301 0.943544 -vt 0.532301 0.962891 -vt 0.529201 0.943544 -vt 0.572381 0.952304 -vt 0.567759 0.961274 -vt 0.580387 0.967841 -vt 0.603611 0.987891 -vt 0.600511 0.968544 -vt 0.603611 0.968544 -vt 0.600511 0.987891 -vt 0.597411 0.968544 -vt 0.597411 0.987891 -vt 0.594310 0.968544 -vt 0.594310 0.987891 -vt 0.591210 0.968544 -vt 0.591210 0.987891 -vt 0.588109 0.968544 -vt 0.588109 0.987891 -vt 0.585009 0.968544 -vt 0.585009 0.987891 -vt 0.581908 0.968544 -vt 0.581908 0.987891 -vt 0.578808 0.968544 -vt 0.578808 0.987891 -vt 0.575707 0.968544 -vt 0.575707 0.987891 -vt 0.572607 0.968544 -vt 0.572607 0.987891 -vt 0.569507 0.968544 -vt 0.569507 0.987891 -vt 0.566406 0.968544 -vt 0.566406 0.987891 -vt 0.563306 0.968544 -vt 0.563306 0.987891 -vt 0.560205 0.968544 -vt 0.560205 0.987891 -vt 0.557105 0.968544 -vt 0.557105 0.987891 -vt 0.554004 0.968544 -vt 0.554004 0.987891 -vt 0.550904 0.968544 -vt 0.550904 0.987891 -vt 0.547804 0.968544 -vt 0.547804 0.987891 -vt 0.544703 0.968544 -vt 0.544703 0.987891 -vt 0.541603 0.968544 -vt 0.541603 0.987891 -vt 0.538502 0.968544 -vt 0.538502 0.987891 -vt 0.535402 0.968544 -vt 0.556733 0.950828 -vt 0.565662 0.958871 -vt 0.556733 0.966913 -vt 0.535402 0.987891 -vt 0.532301 0.968544 -vt 0.532301 0.987891 -vt 0.529201 0.968544 -vt 0.572381 0.952304 -vt 0.567759 0.961274 -vt 0.580387 0.967841 -vt 0.603611 0.987891 -vt 0.600511 0.968544 -vt 0.603611 0.968544 -vt 0.600511 0.987891 -vt 0.597411 0.968544 -vt 0.597411 0.987891 -vt 0.594310 0.968544 -vt 0.594310 0.987891 -vt 0.591210 0.968544 -vt 0.591210 0.987891 -vt 0.588109 0.968544 -vt 0.588109 0.987891 -vt 0.585009 0.968544 -vt 0.585009 0.987891 -vt 0.581908 0.968544 -vt 0.581908 0.987891 -vt 0.578808 0.968544 -vt 0.578808 0.987891 -vt 0.575707 0.968544 -vt 0.575707 0.987891 -vt 0.572607 0.968544 -vt 0.572607 0.987891 -vt 0.569507 0.968544 -vt 0.569507 0.987891 -vt 0.566406 0.968544 -vt 0.566406 0.987891 -vt 0.563306 0.968544 -vt 0.563306 0.987891 -vt 0.560205 0.968544 -vt 0.560205 0.987891 -vt 0.557105 0.968544 -vt 0.557105 0.987891 -vt 0.554004 0.968544 -vt 0.554004 0.987891 -vt 0.550904 0.968544 -vt 0.550904 0.987891 -vt 0.547804 0.968544 -vt 0.547804 0.987891 -vt 0.544703 0.968544 -vt 0.544703 0.987891 -vt 0.541603 0.968544 -vt 0.541603 0.987891 -vt 0.538502 0.968544 -vt 0.538502 0.987891 -vt 0.535402 0.968544 -vt 0.556733 0.950828 -vt 0.565662 0.958871 -vt 0.556733 0.966913 -vt 0.535402 0.987891 -vt 0.532301 0.968544 -vt 0.532301 0.987891 -vt 0.529201 0.968544 -vt 0.572381 0.952304 -vt 0.567759 0.961274 -vt 0.580387 0.967841 -vt 0.603611 0.962891 -vt 0.600511 0.943544 -vt 0.603611 0.943544 -vt 0.600511 0.962891 -vt 0.597411 0.943544 -vt 0.597411 0.962891 -vt 0.594310 0.943544 -vt 0.594310 0.962891 -vt 0.591210 0.943544 -vt 0.591210 0.962891 -vt 0.588109 0.943544 -vt 0.588109 0.962891 -vt 0.585009 0.943544 -vt 0.585009 0.962891 -vt 0.581908 0.943544 -vt 0.581908 0.962891 -vt 0.578808 0.943544 -vt 0.578808 0.962891 -vt 0.575707 0.943544 -vt 0.575707 0.962891 -vt 0.572607 0.943544 -vt 0.572607 0.962891 -vt 0.569507 0.943544 -vt 0.569507 0.962891 -vt 0.566406 0.943544 -vt 0.566406 0.962891 -vt 0.563306 0.943544 -vt 0.563306 0.962891 -vt 0.560205 0.943544 -vt 0.560205 0.962891 -vt 0.557105 0.943544 -vt 0.557105 0.962891 -vt 0.554004 0.943544 -vt 0.554004 0.962891 -vt 0.550904 0.943544 -vt 0.550904 0.962891 -vt 0.547804 0.943544 -vt 0.547804 0.962891 -vt 0.544703 0.943544 -vt 0.544703 0.962891 -vt 0.541603 0.943544 -vt 0.541603 0.962891 -vt 0.538502 0.943544 -vt 0.538502 0.962891 -vt 0.535402 0.943544 -vt 0.556733 0.950828 -vt 0.565662 0.958871 -vt 0.556733 0.966913 -vt 0.535402 0.962891 -vt 0.532301 0.943544 -vt 0.532301 0.962891 -vt 0.529201 0.943544 -vt 0.572381 0.952304 -vt 0.567759 0.961274 -vt 0.580387 0.967841 vt 0.585009 0.965935 vt 0.589631 0.967841 vt 0.593938 0.966913 @@ -1816,11 +1495,9 @@ vt 0.599366 0.960496 vt 0.602867 0.958871 vt 0.599778 0.958871 vt 0.599366 0.957245 -vt 0.602259 0.956467 vt 0.598073 0.955622 vt 0.600475 0.954228 vt 0.595844 0.954111 -vt 0.597637 0.952304 vt 0.592763 0.952882 vt 0.593938 0.950828 vt 0.589052 0.952082 @@ -1831,7 +1508,6 @@ vt 0.580387 0.949901 vt 0.580965 0.952082 vt 0.576080 0.950828 vt 0.577254 0.952882 -vt 0.572381 0.952304 vt 0.574174 0.954111 vt 0.569543 0.954228 vt 0.571944 0.955622 @@ -1840,296 +1516,34 @@ vt 0.570651 0.957245 vt 0.567150 0.958871 vt 0.570240 0.958871 vt 0.570651 0.960496 -vt 0.567759 0.961274 vt 0.571944 0.962119 vt 0.569543 0.963514 vt 0.574174 0.963630 -vt 0.572381 0.965437 vt 0.577254 0.964859 vt 0.576079 0.966913 vt 0.580965 0.965659 -vt 0.580387 0.967841 vt 0.585009 0.968157 -vt 0.574174 0.963630 -vt 0.577254 0.964859 -vt 0.574174 0.954111 -vt 0.571944 0.955622 -vt 0.595844 0.954111 -vt 0.592763 0.964859 -vt 0.570651 0.957245 -vt 0.592763 0.952882 -vt 0.595844 0.963630 -vt 0.570240 0.958871 -vt 0.589052 0.952082 -vt 0.598073 0.962119 -vt 0.570651 0.960496 -vt 0.585009 0.951806 -vt 0.599366 0.960496 -vt 0.571944 0.962119 -vt 0.580965 0.952082 -vt 0.599778 0.958871 -vt 0.577254 0.952882 -vt 0.599366 0.957245 -vt 0.585009 0.965935 -vt 0.598073 0.955622 -vt 0.580965 0.965659 -vt 0.538502 0.987891 vt 0.552426 0.967841 -vt 0.547804 0.968157 vt 0.543181 0.967841 vt 0.538874 0.966913 -vt 0.535176 0.965437 vt 0.532338 0.963514 vt 0.530554 0.961274 -vt 0.529945 0.958871 vt 0.530554 0.956467 vt 0.532338 0.954228 -vt 0.535176 0.952304 vt 0.538874 0.950828 vt 0.543181 0.949901 -vt 0.547804 0.949584 vt 0.552426 0.949901 -vt 0.560431 0.952304 vt 0.563269 0.954228 vt 0.565054 0.956467 vt 0.565054 0.961274 vt 0.563269 0.963514 -vt 0.560431 0.965437 vt 0.529201 0.962891 -vt 0.560431 0.965437 -vt 0.535176 0.965437 -vt 0.535176 0.952304 -vt 0.547804 0.949584 -vt 0.560431 0.952304 -vt 0.529201 0.987891 -vt 0.585009 0.968157 -vt 0.597637 0.965437 -vt 0.602867 0.958871 -vt 0.585009 0.949584 -vt 0.567150 0.958871 vt 0.547804 0.963514 -vt 0.603611 0.987891 -vt 0.552426 0.967841 -vt 0.538874 0.966913 -vt 0.547804 0.968157 -vt 0.543181 0.967841 -vt 0.535176 0.965437 -vt 0.532338 0.963514 -vt 0.530554 0.961274 -vt 0.530554 0.956467 -vt 0.532338 0.954228 -vt 0.535176 0.952304 -vt 0.538874 0.950828 -vt 0.543181 0.949901 -vt 0.547804 0.949584 -vt 0.552426 0.949901 -vt 0.560431 0.952304 -vt 0.563269 0.954228 -vt 0.565054 0.956467 -vt 0.565662 0.958871 -vt 0.565054 0.961274 -vt 0.563269 0.963514 -vt 0.560431 0.965437 -vt 0.529201 0.987891 -vt 0.585009 0.968157 -vt 0.589631 0.967841 -vt 0.593938 0.966913 -vt 0.597637 0.965437 -vt 0.600475 0.963514 -vt 0.602259 0.961274 -vt 0.602867 0.958871 -vt 0.600475 0.954228 -vt 0.597637 0.952304 -vt 0.593938 0.950828 -vt 0.589631 0.949901 -vt 0.585009 0.949584 -vt 0.580387 0.949901 -vt 0.576080 0.950828 -vt 0.572381 0.952304 -vt 0.569543 0.954228 -vt 0.567759 0.956467 -vt 0.567150 0.958871 -vt 0.569543 0.963514 -vt 0.572381 0.965437 -vt 0.576079 0.966913 -vt 0.552426 0.967841 -vt 0.547804 0.968157 -vt 0.543181 0.967841 -vt 0.538874 0.966913 -vt 0.535176 0.965437 -vt 0.532338 0.963514 -vt 0.530554 0.961274 -vt 0.529945 0.958871 -vt 0.530554 0.956467 -vt 0.532338 0.954228 -vt 0.535176 0.952304 -vt 0.538874 0.950828 -vt 0.543181 0.949901 -vt 0.547804 0.949584 -vt 0.552426 0.949901 -vt 0.560431 0.952304 -vt 0.563269 0.954228 -vt 0.565054 0.956467 -vt 0.565054 0.961274 -vt 0.563269 0.963514 -vt 0.560431 0.965437 -vt 0.529201 0.962891 -vt 0.585009 0.968157 -vt 0.589631 0.967841 -vt 0.593938 0.966913 -vt 0.597637 0.965437 -vt 0.600475 0.963514 -vt 0.602259 0.961274 -vt 0.602867 0.958871 -vt 0.602259 0.956467 -vt 0.600475 0.954228 -vt 0.597637 0.952304 -vt 0.593938 0.950828 -vt 0.589631 0.949901 -vt 0.585009 0.949584 -vt 0.580387 0.949901 -vt 0.576080 0.950828 -vt 0.569543 0.954228 -vt 0.567759 0.956467 -vt 0.567150 0.958871 -vt 0.569543 0.963514 -vt 0.572381 0.965437 -vt 0.576079 0.966913 -vt 0.552426 0.967841 -vt 0.547804 0.968157 -vt 0.543181 0.967841 -vt 0.538874 0.966913 -vt 0.535176 0.965437 -vt 0.532338 0.963514 -vt 0.530554 0.961274 -vt 0.529945 0.958871 -vt 0.530554 0.956467 -vt 0.532338 0.954228 -vt 0.535176 0.952304 -vt 0.538874 0.950828 -vt 0.543181 0.949901 -vt 0.547804 0.949584 -vt 0.552426 0.949901 -vt 0.560431 0.952304 -vt 0.563269 0.954228 -vt 0.565054 0.956467 -vt 0.565054 0.961274 -vt 0.563269 0.963514 -vt 0.560431 0.965437 -vt 0.529201 0.987891 -vt 0.585009 0.968157 -vt 0.589631 0.967841 -vt 0.593938 0.966913 -vt 0.597637 0.965437 -vt 0.600475 0.963514 -vt 0.602259 0.961274 -vt 0.602867 0.958871 -vt 0.602259 0.956467 -vt 0.600475 0.954228 -vt 0.597637 0.952304 -vt 0.593938 0.950828 -vt 0.589631 0.949901 -vt 0.585009 0.949584 -vt 0.580387 0.949901 -vt 0.576080 0.950828 -vt 0.569543 0.954228 -vt 0.567759 0.956467 -vt 0.567150 0.958871 -vt 0.569543 0.963514 -vt 0.572381 0.965437 -vt 0.576079 0.966913 -vt 0.552426 0.967841 -vt 0.547804 0.968157 -vt 0.543181 0.967841 -vt 0.538874 0.966913 -vt 0.535176 0.965437 -vt 0.532338 0.963514 -vt 0.530554 0.961274 -vt 0.529945 0.958871 -vt 0.530554 0.956467 -vt 0.532338 0.954228 -vt 0.535176 0.952304 -vt 0.538874 0.950828 -vt 0.543181 0.949901 -vt 0.547804 0.949584 -vt 0.552426 0.949901 -vt 0.560431 0.952304 -vt 0.563269 0.954228 -vt 0.565054 0.956467 -vt 0.565054 0.961274 -vt 0.563269 0.963514 -vt 0.560431 0.965437 -vt 0.529201 0.987891 -vt 0.585009 0.968157 -vt 0.589631 0.967841 -vt 0.593938 0.966913 -vt 0.597637 0.965437 -vt 0.600475 0.963514 -vt 0.602259 0.961274 -vt 0.602867 0.958871 -vt 0.602259 0.956467 -vt 0.600475 0.954228 -vt 0.597637 0.952304 -vt 0.593938 0.950828 -vt 0.589631 0.949901 -vt 0.585009 0.949584 -vt 0.580387 0.949901 -vt 0.576080 0.950828 -vt 0.569543 0.954228 -vt 0.567759 0.956467 -vt 0.567150 0.958871 -vt 0.569543 0.963514 -vt 0.572381 0.965437 -vt 0.576079 0.966913 -vt 0.552426 0.967841 -vt 0.547804 0.968157 -vt 0.543181 0.967841 -vt 0.538874 0.966913 -vt 0.535176 0.965437 -vt 0.532338 0.963514 -vt 0.530554 0.961274 -vt 0.529945 0.958871 -vt 0.530554 0.956467 -vt 0.532338 0.954228 -vt 0.535176 0.952304 -vt 0.538874 0.950828 -vt 0.543181 0.949901 -vt 0.547804 0.949584 -vt 0.552426 0.949901 -vt 0.560431 0.952304 -vt 0.563269 0.954228 -vt 0.565054 0.956467 -vt 0.565054 0.961274 -vt 0.563269 0.963514 -vt 0.560431 0.965437 -vt 0.529201 0.962891 -vt 0.585009 0.968157 -vt 0.589631 0.967841 -vt 0.593938 0.966913 -vt 0.597637 0.965437 -vt 0.600475 0.963514 -vt 0.602259 0.961274 -vt 0.602867 0.958871 -vt 0.602259 0.956467 -vt 0.600475 0.954228 -vt 0.597637 0.952304 -vt 0.593938 0.950828 -vt 0.589631 0.949901 -vt 0.585009 0.949584 -vt 0.580387 0.949901 -vt 0.576080 0.950828 -vt 0.569543 0.954228 -vt 0.567759 0.956467 -vt 0.567150 0.958871 -vt 0.569543 0.963514 -vt 0.572381 0.965437 -vt 0.576079 0.966913 vt 0.396481 0.835451 vt 0.459833 0.866080 vt 0.396481 0.866080 vt 0.545719 0.522092 vt 0.497611 0.526046 -vt 0.497611 0.526046 vt 0.462657 0.901337 vt 0.459833 0.868394 vt 0.462657 0.868394 @@ -2139,7 +1553,6 @@ vt 0.523185 0.868394 vt 0.388562 0.868394 vt 0.411544 0.779875 vt 0.390770 0.774974 -vt 0.390770 0.774974 vt 0.333129 0.853963 vt 0.523185 0.853963 vt 0.564336 0.894415 @@ -2173,18 +1586,12 @@ vt 0.371179 0.900923 vt 0.665512 0.900923 vt 0.589593 0.872960 vt 0.579928 0.818991 -vt 0.579928 0.818991 vt 0.720909 0.823249 vt 0.728444 0.813188 -vt 0.728444 0.813188 vt 0.518346 0.900923 -vt 0.665512 0.900923 -vt 0.403568 0.865893 -vt 0.403568 0.865893 vt 0.403568 0.865893 vt 0.634882 0.842860 vt 0.875000 0.895044 -vt 0.625000 0.895044 vt 0.622404 0.844210 vt 0.554773 0.879378 vt 0.554773 0.844210 @@ -2311,7 +1718,6 @@ vt 0.630208 0.781780 vt 0.546875 0.785479 vt 0.546875 0.781780 vt 0.109638 0.753166 -vt 0.109638 0.753166 vt 0.809234 0.800535 vt 0.629601 0.752856 vt 0.382812 0.796190 @@ -2334,11 +1740,8 @@ vt 0.421875 0.760981 vt 0.355469 0.819888 vt 0.581240 0.819888 vt 0.320312 0.775200 -vt 0.320312 0.775200 -vt 0.320312 0.775200 vt 0.341584 0.755253 vt 0.894527 0.754523 -vt 0.894527 0.754523 vt 0.502440 0.838252 vt 0.335149 0.925244 vt 0.335149 0.838252 @@ -2350,75 +1753,33 @@ vt 0.224012 0.839396 vt 0.224012 0.915923 vt 0.665512 0.915923 vt 0.643647 0.915691 -vt 0.665512 0.915923 vt 0.597620 0.901828 vt 0.125000 0.765044 vt 0.228633 0.780745 -vt 0.875000 0.895044 -vt 0.875000 0.765044 -vt 0.597620 0.901828 vt 0.574804 0.873659 vt 0.285018 0.848638 -vt 0.643647 0.915691 -vt 0.285018 0.848638 vt 0.759668 0.871099 -vt 0.759668 0.871099 -vt 0.720909 0.823249 -vt 0.245835 0.915308 vt 0.578887 0.824122 -vt 0.375000 0.765044 -vt 0.625000 0.765044 vt 0.377872 0.915356 vt 0.518346 0.915923 vt 0.371179 0.915923 vt 0.377872 0.900356 vt 0.389892 0.832881 -vt 0.625000 0.895044 vt 0.511639 0.915711 -vt 0.518346 0.915923 vt 0.389892 0.847881 vt 0.491200 0.874173 vt 0.497503 0.902923 -vt 0.389892 0.847881 -vt 0.377872 0.915356 vt 0.406788 0.779458 -vt 0.406788 0.779458 -vt 0.497503 0.902923 -vt 0.578887 0.824122 -vt 0.511639 0.915711 vt 0.643647 0.900691 vt 0.245835 0.900308 vt 0.150429 0.671343 -vt 0.150429 0.671343 -vt 0.150429 0.671343 -vt 0.150429 0.671343 -vt 0.150429 0.671343 -vt 0.150429 0.671343 -vt 0.221470 0.868452 -vt 0.221470 0.868452 vt 0.221470 0.868452 vt 0.251000 0.856936 -vt 0.251000 0.856936 -vt 0.251000 0.856936 vt 0.361735 0.900442 -vt 0.361735 0.900442 -vt 0.361735 0.900442 -vt 0.518346 0.900923 vt 0.511639 0.900711 vt 0.236235 0.851817 -vt 0.236235 0.851817 -vt 0.236235 0.851817 -vt 0.164872 0.847978 -vt 0.164872 0.847978 vt 0.164872 0.847978 vt 0.209167 0.860775 -vt 0.209167 0.860775 -vt 0.209167 0.860775 -vt 0.150429 0.671343 -vt 0.150429 0.671343 -vt 0.150429 0.671343 -vt 0.150429 0.686343 -vt 0.150429 0.686343 vt 0.150429 0.686343 vt 0.605366 0.625582 vt 0.392556 0.635044 @@ -2437,18 +1798,9 @@ vt 0.484510 0.505044 vt 0.391870 0.838038 vt 0.389721 0.863715 vt 0.343364 0.852237 -vt 0.390712 0.598254 -vt 0.597602 0.514746 -vt 0.545719 0.522092 -vt 0.410506 0.621173 -vt 0.605366 0.625582 -vt 0.388734 0.524179 -vt 0.556923 0.509307 -vt 0.389781 0.625623 vt 0.603447 0.775430 vt 0.594972 0.884555 vt 0.392556 0.765044 -vt 0.625000 0.765044 vt 0.375000 0.781294 vt 0.382120 0.770840 vt 0.390113 0.874091 @@ -2463,49 +1815,11 @@ vt 0.375000 0.895044 vt 0.512111 0.852142 vt 0.478620 0.866125 vt 0.467060 0.863579 -vt 0.411544 0.779875 -vt 0.498333 0.872319 -vt 0.594972 0.884555 -vt 0.392214 0.803595 -vt 0.548567 0.877213 -vt 0.390113 0.874091 -vt 0.603447 0.775430 -vt 0.558295 0.890122 vt 0.464672 0.866316 vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 vt 0.243618 0.881248 -vt 0.243618 0.881248 -vt 0.243618 0.881248 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 vt 0.333129 0.868394 vt 0.342454 0.866584 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 vt 0.539872 0.679250 vt 0.516493 0.680206 vt 0.516493 0.679250 @@ -2522,7 +1836,6 @@ vt 0.666833 0.663889 vt 0.539872 0.680206 vt 0.440044 0.779617 vt 0.437493 0.837443 -vt 0.437493 0.837443 vt 0.422729 0.709719 vt 0.360235 0.647539 vt 0.425280 0.651893 @@ -2533,23 +1846,12 @@ vt 0.489409 0.751566 vt 0.570046 0.808982 vt 0.488685 0.809183 vt 0.481303 0.837335 -vt 0.481303 0.837335 -vt 0.481303 0.837335 vt 0.559993 0.779904 vt 0.482026 0.779717 -vt 0.482026 0.779717 -vt 0.562664 0.837133 -vt 0.559993 0.779904 -vt 0.440044 0.779617 -vt 0.481303 0.837335 vt 0.562664 0.837133 vt 0.432662 0.733550 vt 0.473921 0.791269 vt 0.430111 0.791377 -vt 0.437493 0.837443 -vt 0.437493 0.837443 -vt 0.415872 0.665231 -vt 0.415872 0.665231 vt 0.415872 0.665231 vt 0.459833 0.835451 vt 0.459833 0.901337 @@ -2566,8 +1868,6 @@ vt 0.360235 0.657539 vt 0.408389 0.659326 vt 0.539872 0.691408 vt 0.578829 0.868908 -vt 0.589593 0.872960 -vt 0.403568 0.865893 vt 0.622404 0.879378 vt 0.579328 0.910962 vt 0.594184 0.916888 @@ -2632,15 +1932,12 @@ vt 0.410451 0.676023 vt 0.532490 0.715181 vt 0.375000 0.852193 vt 0.626000 0.701615 -vt 0.218750 0.793481 vt 0.510661 0.750275 vt 0.613008 0.750275 vt 0.614339 0.797650 vt 0.613913 0.799184 -vt 0.375000 0.895044 vt 0.625695 0.801606 vt 0.664062 0.765166 -vt 0.625000 0.765044 vt 0.612858 0.797764 vt 0.612858 0.760761 vt 0.683725 0.764195 @@ -2649,47 +1946,19 @@ vt 0.677083 0.821919 vt 0.630208 0.785479 vt 0.779674 0.760019 vt 0.781057 0.757208 -vt 0.109638 0.753166 vt 0.629601 0.796190 -vt 0.375000 0.505044 vt 0.236111 0.765044 vt 0.705624 0.757181 vt 0.380237 0.736263 -vt 0.226495 0.821409 vt 0.651589 0.807504 -vt 0.280702 0.812445 -vt 0.280702 0.812445 vt 0.272135 0.819888 -vt 0.320312 0.775200 -vt 0.320312 0.775200 -vt 0.320312 0.775200 -vt 0.320312 0.775200 -vt 0.894527 0.754523 -vt 0.894527 0.754523 -vt 0.894527 0.754523 -vt 0.894527 0.754523 vt 0.502440 0.925244 vt 0.556540 0.903471 -vt 0.245835 0.900308 vt 0.285018 0.833638 vt 0.579240 0.867737 vt 0.597620 0.886828 -vt 0.228633 0.780745 -vt 0.643647 0.900691 vt 0.491813 0.871153 vt 0.497503 0.887923 -vt 0.389892 0.832881 -vt 0.377872 0.900356 -vt 0.150429 0.671343 -vt 0.150429 0.671343 -vt 0.221470 0.868452 -vt 0.361735 0.900442 -vt 0.361735 0.900442 -vt 0.236235 0.851817 -vt 0.209167 0.860775 -vt 0.209167 0.860775 -vt 0.150429 0.671343 -vt 0.150429 0.671343 vt 0.378552 0.866324 vt 0.341437 0.845898 vt 0.335206 0.844421 @@ -2700,14 +1969,6 @@ vt 0.518073 0.839407 vt 0.514496 0.845523 vt 0.520786 0.844241 vt 0.512974 0.866402 -vt 0.333129 0.917808 -vt 0.243618 0.881248 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 -vt 0.333129 0.917808 vt 0.587555 0.674451 vt 0.666833 0.699950 vt 0.422729 0.699719 @@ -2718,12 +1979,6 @@ vt 0.610235 0.647539 vt 0.610235 0.715405 vt 0.567375 0.751753 vt 0.474644 0.733651 -vt 0.415872 0.665231 -vt 0.415872 0.665231 -vt 0.415872 0.665231 -vt 0.415872 0.665231 -vt 0.415872 0.665231 -vt 0.415872 0.665231 vt 0.617682 0.716042 vt 0.616961 0.710037 vt 0.617682 0.710037 @@ -2775,7 +2030,6 @@ vt 0.601081 0.716042 vt 0.600359 0.710037 vt 0.605945 0.708437 vt 0.606419 0.708136 -vt 0.606419 0.708136 vt 0.607856 0.708635 vt 0.607166 0.709072 vt 0.608368 0.708137 @@ -2825,43 +2079,12 @@ vt 0.600074 0.708136 vt 0.599327 0.709072 vt 0.602502 0.708980 vt 0.603247 0.709018 -vt 0.603247 0.709018 -vt 0.601127 0.705384 -vt 0.606772 0.707793 -vt 0.600548 0.705631 -vt 0.606989 0.707421 -vt 0.600074 0.705932 -vt 0.607062 0.707034 -vt 0.599721 0.706274 -vt 0.606989 0.706647 -vt 0.599504 0.706647 -vt 0.606772 0.706274 -vt 0.599431 0.707034 -vt 0.606419 0.705932 -vt 0.599504 0.707421 -vt 0.605945 0.705631 -vt 0.599721 0.707793 -vt 0.605366 0.705384 -vt 0.600074 0.708136 -vt 0.604707 0.705201 -vt 0.603991 0.708980 vt 0.603991 0.708980 vt 0.600548 0.708437 -vt 0.600548 0.708437 -vt 0.603991 0.705088 -vt 0.604707 0.708867 vt 0.604707 0.708867 vt 0.601127 0.708683 -vt 0.601127 0.708683 -vt 0.603247 0.705050 -vt 0.605366 0.708683 vt 0.605366 0.708683 vt 0.601786 0.708867 -vt 0.601786 0.708867 -vt 0.602502 0.705088 -vt 0.605945 0.708437 -vt 0.602502 0.708980 -vt 0.601786 0.705201 vt 0.617932 0.708123 vt 0.618715 0.709072 vt 0.619404 0.708635 @@ -2986,2306 +2209,2314 @@ vt 0.521451 0.967503 vt 0.521451 0.955981 vt 0.587924 0.955981 vt 0.558011 0.932938 -vt 0.565766 0.944459 vt 0.558011 0.944459 vt 0.558011 0.955981 -vt 0.565766 0.955981 vt 0.558011 0.967503 vt 0.542329 0.614065 vt 0.534574 0.625587 vt 0.534574 0.614065 -vt 0.543609 0.955981 -vt 0.521451 0.967503 -vt 0.521451 0.955981 -vt 0.587924 0.955981 -vt 0.565766 0.967503 -vt 0.543609 0.979025 -vt 0.543609 0.967503 -vt 0.543609 0.944459 -vt 0.543609 0.932938 -vt 0.543609 0.932938 -vt 0.565766 0.944459 -vt 0.543609 0.944459 -vt 0.565766 0.955981 -vt 0.543609 0.955981 -vt 0.543609 0.967503 -vt 0.565766 0.967503 -vt 0.543609 0.979025 -vt 0.521451 0.967503 -vt 0.521451 0.955981 -vt 0.587924 0.955981 -vt 0.543609 0.932938 -vt 0.565766 0.944459 -vt 0.543609 0.944459 -vt 0.543609 0.955981 -vt 0.565766 0.955981 -vt 0.543609 0.967503 -vt 0.565766 0.967503 -vt 0.543609 0.979025 -vt 0.521451 0.967503 -vt 0.521451 0.955981 -vt 0.587924 0.955981 vt 0.565766 0.932938 vt 0.565766 0.979025 vt 0.587924 0.967503 -vt 0.565766 0.932938 vt 0.542329 0.625587 -vt 0.587924 0.967503 vt 0.558011 0.979025 -vt 0.565766 0.932938 -vt 0.565766 0.979025 -vt 0.587924 0.967503 -vt 0.565766 0.932938 -vt 0.565766 0.979025 -vt 0.587924 0.967503 -vn -0.0003 0.0000 -1.0000 -vn 0.0000 0.0000 -1.0000 -vn -0.0004 0.0000 -1.0000 -vn 0.0027 -1.0000 0.0019 -vn 0.0042 -1.0000 0.0030 -vn 0.0000 -1.0000 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0006 0.0004 1.0000 -vn 0.0011 0.0045 1.0000 -vn 0.0011 0.0049 1.0000 -vn 0.0008 1.0000 0.0000 -vn -0.7071 0.7071 0.0000 -vn -0.0049 0.0049 1.0000 -vn -0.8655 -0.5009 0.0000 -vn -0.0005 0.0000 -1.0000 -vn -0.0008 -1.0000 0.0005 -vn -0.0000 -0.5727 0.8197 -vn -0.0004 -0.8551 0.5184 -vn 0.7704 0.0003 0.6376 -vn 0.7699 -0.0003 0.6381 -vn 0.7698 0.0000 0.6382 -vn 0.7071 -0.7071 -0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.7071 -0.7071 -0.0000 -vn 0.0000 -0.5729 0.8196 -vn -0.0004 -0.8552 0.5183 -vn 0.7696 -0.0008 0.6385 -vn 0.7708 0.0008 0.6371 -vn 0.7710 -0.0000 0.6369 -vn -0.0000 -0.5734 0.8193 -vn 0.7699 -0.0003 0.6382 -vn 0.7703 0.0003 0.6377 -vn 0.7704 -0.0000 0.6376 -vn -0.0000 -0.5727 0.8198 -vn -0.0004 -0.8551 0.5185 -vn 0.7700 0.0000 0.6381 -vn -0.8655 -0.5008 0.0000 -vn 0.7701 -0.0000 0.6379 -vn -0.7701 0.0000 -0.6379 -vn -0.0000 -0.5732 0.8194 -vn -0.0004 -0.8553 0.5182 -vn -0.7700 -0.0000 -0.6380 -vn 0.0070 -1.0000 0.0049 -vn 0.0005 0.0000 1.0000 -vn -0.0008 -1.0000 0.0000 -vn -0.0008 -1.0000 0.0003 -vn 0.9961 0.0882 0.0000 -vn 0.9865 -0.1635 -0.0000 -vn 0.8737 -0.4865 -0.0000 -vn 0.6256 -0.7802 -0.0000 -vn 0.2322 -0.9727 -0.0000 -vn -0.2322 -0.9727 -0.0000 -vn -0.6256 -0.7802 -0.0000 -vn -0.8737 -0.4865 -0.0000 -vn -0.9865 -0.1635 -0.0000 -vn -0.9961 0.0882 0.0000 -vn 0.1305 0.9914 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.6088 0.7934 0.0000 -vn 0.7933 0.6088 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.9914 0.1305 0.0000 -vn 0.9914 -0.1305 -0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.7934 -0.6088 -0.0000 -vn 0.6088 -0.7934 -0.0000 -vn 0.3827 -0.9239 -0.0000 -vn 0.1305 -0.9914 -0.0000 -vn -0.1305 -0.9914 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn -0.6088 -0.7934 -0.0000 -vn -0.7934 -0.6088 -0.0000 -vn -0.7933 -0.6088 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn -0.9914 -0.1305 -0.0000 -vn -0.9914 0.1305 0.0000 -vn -0.9239 0.3827 0.0000 -vn -0.7934 0.6088 0.0000 -vn -0.6088 0.7934 0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.1305 0.9914 0.0000 -vn 0.3514 -0.8484 -0.3959 -vn 0.8484 -0.3514 -0.3959 -vn 0.8484 0.3514 -0.3959 -vn 0.3514 0.8484 -0.3959 -vn -0.3514 0.8484 -0.3959 -vn -0.8484 0.3514 -0.3959 -vn -0.8484 -0.3514 -0.3959 -vn -0.3514 -0.8484 -0.3959 -vn 0.7934 0.6088 0.0000 -vn -0.6088 -0.7933 0.0000 -vn 0.6088 0.7933 0.0000 -vn 0.6088 -0.7933 -0.0000 -vn 0.5314 0.1600 -0.8319 -vn 0.8527 -0.0000 -0.5224 -vn 0.5314 -0.1600 -0.8319 -vn -0.0001 0.0000 -1.0000 -vn 0.0001 0.0000 -1.0000 -vn 0.0001 0.0000 1.0000 -vn -0.0001 0.0000 1.0000 -vn 0.0000 -0.3784 -0.9256 -vn 0.0000 -0.0253 0.9997 -vn 0.0000 0.1422 -0.9898 -vn 0.0000 -0.9644 0.2643 -vn 0.0000 -0.9848 0.1739 -vn 0.0000 0.4185 0.9082 -vn 0.0000 0.9237 0.3831 -vn 0.0000 -0.8319 0.5549 -vn 0.0000 0.9997 0.0264 -vn 0.0000 -0.9997 -0.0249 -vn 0.0000 -0.9236 -0.3834 -vn 0.0001 0.6431 0.7658 -vn 0.0000 0.6432 0.7657 -vn 0.0000 -0.0909 0.9959 -vn 0.0000 0.9535 0.3014 -vn 0.0000 -0.8690 -0.4947 -vn 0.0000 0.9932 0.1168 -vn 0.0001 0.8691 0.4946 -vn 0.0002 0.8693 0.4944 -vn 0.0002 0.8693 0.4942 -vn 0.0000 0.9988 0.0480 -vn 0.0000 0.3739 -0.9275 -vn 0.0000 -0.8192 0.5735 -vn 0.0000 -0.5018 0.8650 -vn 0.0000 -0.3738 -0.9275 -vn 0.0000 0.9764 0.2159 -vn 0.0000 -0.5664 0.8241 -vn 0.0000 0.2951 0.9555 -vn 0.0000 -0.9028 -0.4301 -vn 0.0000 -0.6377 0.7703 -vn 0.0000 -0.6645 -0.7473 -vn 0.0000 -0.2686 0.9633 -vn 0.0000 0.2609 0.9654 -vn 0.0000 -0.9044 -0.4266 -vn 0.0000 0.7413 0.6712 -vn 0.0000 -0.9994 -0.0337 -vn 0.0000 -0.9729 -0.2312 -vn 0.0000 0.9943 0.1065 -vn 0.0000 -0.9039 0.4277 -vn 0.0000 0.9182 -0.3961 -vn 0.0000 -0.4423 0.8969 -vn 0.0000 0.4320 0.9019 -vn 0.0000 0.4842 -0.8749 -vn 0.0000 0.4261 0.9047 -vn 0.0000 0.1909 -0.9816 -vn 0.0000 0.9995 0.0318 -vn 0.0000 0.9918 -0.1277 -vn 0.0000 0.6918 0.7220 -vn 0.0000 0.8646 -0.5025 -vn 1.0000 -0.0010 0.0007 -vn 1.0000 -0.0019 0.0017 -vn 0.0000 -0.6430 -0.7658 -vn 0.0000 -0.6432 -0.7657 -vn 0.0000 -0.8693 -0.4942 -vn -0.5484 -0.0760 0.8328 -vn -0.7536 -0.6071 -0.2520 -vn -0.7698 0.6340 0.0745 -vn -0.7607 0.6189 0.1957 -vn -0.7402 0.5843 0.3326 -vn -0.6787 -0.4737 -0.5613 -vn -0.9730 -0.1947 -0.1237 -vn -0.6263 -0.5087 -0.5907 -vn 0.7982 0.5982 0.0703 -vn 0.7898 0.5848 0.1849 -vn 0.7709 0.5538 0.3148 -vn 0.5429 -0.7301 -0.4151 -vn 0.8868 -0.3899 -0.2481 -vn 0.3349 -0.6195 -0.7100 -vn 0.7699 -0.5824 -0.2610 -vn 0.7751 -0.5764 -0.2588 -vn 0.3897 -0.8505 -0.3533 -vn 0.5847 -0.0737 0.8079 -vn 0.9379 -0.3346 0.0917 -vn 0.9395 -0.3373 0.0596 -vn 0.8718 0.2050 0.4449 -vn 0.8298 -0.0141 0.5579 -vn 0.9258 -0.3144 0.2097 -vn 0.9344 0.3289 0.1364 -vn 0.9407 0.3392 0.0089 -vn 0.8657 -0.1894 -0.4633 -vn 0.8358 0.0781 -0.5434 -vn -0.9296 -0.3628 0.0641 -vn -0.9278 -0.3599 0.0986 -vn -0.8138 0.0826 -0.5752 -vn -0.8467 -0.2014 -0.4926 -vn -0.9310 0.3649 0.0096 -vn -0.9238 0.3536 0.1467 -vn -0.9140 -0.3374 0.2251 -vn -0.8072 -0.0149 0.5901 -vn -0.8534 0.2182 0.4735 -vn 0.0001 1.0000 0.0000 -vn 0.0002 1.0000 0.0000 -vn -0.0000 0.9998 0.0183 -vn -0.0001 0.9998 0.0183 -vn 1.0000 0.0015 0.0007 -vn 1.0000 -0.0020 0.0019 -vn 1.0000 -0.0005 0.0032 -vn 1.0000 -0.0000 0.0017 -vn -0.0000 -1.0000 0.0007 -vn 0.0000 0.0729 0.9973 -vn 0.0033 0.0732 -0.9973 -vn 0.0008 0.0725 -0.9974 -vn 0.0000 0.0722 -0.9974 -vn 1.0000 -0.0000 0.0026 -vn 0.0048 -0.0004 -1.0000 -vn 0.0056 -0.0009 -1.0000 -vn 0.0041 -0.0001 -1.0000 -vn 0.0000 1.0000 -0.0007 -vn 1.0000 0.0000 0.0052 -vn 1.0000 -0.0035 -0.0044 -vn 0.0002 0.6430 0.7658 -vn 0.0000 0.8690 0.4947 -vn 1.0000 -0.0055 0.0020 -vn 1.0000 -0.0005 0.0027 -vn 1.0000 -0.0090 -0.0003 -vn 1.0000 0.0001 0.0025 -vn -0.6788 -0.4722 -0.5624 -vn -0.5489 -0.5375 -0.6401 -vn 0.7982 0.5983 0.0703 -vn 0.4928 -0.5934 -0.6364 -vn 0.4171 -0.6319 -0.6532 -vn 0.3412 -0.6364 -0.6918 -vn 0.3227 -0.6087 -0.7248 -vn 0.3837 -0.8529 -0.3540 -vn 0.9999 0.0114 0.0035 -vn 0.0041 0.0735 -0.9973 -vn 0.0063 -0.0012 -1.0000 -vn 1.0000 0.0013 -0.0033 -vn 1.0000 0.0093 -0.0015 -vn 1.0000 -0.0055 -0.0032 -vn 1.0000 -0.0004 0.0052 -vn 0.7730 -0.6344 0.0000 -vn 0.8819 -0.4714 0.0000 -vn 0.9569 -0.2903 0.0000 -vn 0.9952 -0.0980 0.0000 -vn 0.9952 0.0980 0.0000 -vn 0.9569 0.2903 0.0000 -vn 0.8819 0.4714 0.0000 -vn 0.7730 0.6344 0.0000 -vn 0.6344 0.7730 0.0000 -vn 0.4714 0.8819 0.0000 -vn 0.2903 0.9569 0.0000 -vn 0.0980 0.9952 0.0000 -vn -0.0980 0.9952 0.0000 -vn -0.2903 0.9569 0.0000 -vn -0.4714 0.8819 0.0000 -vn -0.6344 0.7730 0.0000 -vn -0.7730 0.6344 0.0000 -vn -0.8819 0.4714 0.0000 -vn -0.9569 0.2903 0.0000 -vn -0.9952 0.0980 0.0000 -vn -0.9952 -0.0980 0.0000 -vn -0.9569 -0.2903 0.0000 -vn -0.8819 -0.4714 0.0000 -vn -0.7730 -0.6344 0.0000 -vn 0.4714 -0.8819 0.0000 -vn 0.6344 -0.7730 0.0000 -vn -0.6344 -0.7730 0.0000 -vn -0.4714 -0.8819 0.0000 -vn -0.2903 -0.9569 0.0000 -vn -0.0980 -0.9952 0.0000 -vn 0.0980 -0.9952 0.0000 -vn 0.2903 -0.9569 0.0000 -vn 0.0009 0.0000 1.0000 -vn -0.0008 0.0000 1.0000 -vn 0.6341 -0.7732 0.0000 -vn 0.6338 -0.7735 0.0000 -vn -0.6345 -0.7729 0.0000 -vn -0.0010 0.0000 1.0000 -vn 0.0012 0.0000 1.0000 -vn -0.9886 0.1508 0.0000 -vn 0.0000 0.7659 -0.6430 -vn 0.9886 0.1508 0.0000 -vn 0.0000 0.5850 0.8110 -vn -0.9980 0.0638 0.0000 -vn 0.0000 0.0992 -0.9951 -vn 0.9980 0.0638 0.0000 -vn 0.0000 0.0212 0.9998 -vn 0.0000 0.0211 0.9998 -vn -0.9692 -0.2464 0.0000 -vn -0.0424 0.1386 -0.9894 -vn 0.9412 0.3377 0.0000 -vn 0.9413 0.3377 0.0000 -vn -0.0091 0.0297 0.9995 -vn 0.2924 -0.9563 0.0000 -vn -0.2924 0.9563 0.0000 -vn -0.9412 0.3377 0.0000 -vn 0.0423 0.1385 -0.9895 -vn 0.9692 -0.2464 0.0000 -vn 0.0091 0.0297 0.9995 -vn -0.2924 -0.9563 0.0000 -vn 0.2924 0.9563 0.0000 s 1 f 1/1/1 2/2/2 3/3/3 f 1/4/4 4/5/5 2/2/6 -f 5/6/2 6/7/2 7/8/2 -f 6/7/7 8/9/7 7/8/7 -f 8/9/8 9/10/8 10/11/8 -f 7/8/6 10/12/6 5/13/6 -f 5/14/9 6/7/9 9/10/9 -f 10/15/10 11/16/11 12/17/12 -f 3/18/13 9/10/13 6/7/13 -f 2/2/14 11/19/14 3/3/14 -f 12/17/15 11/19/15 4/5/15 -f 13/20/16 12/21/16 1/22/16 -f 6/7/17 1/23/1 3/24/3 -f 10/15/18 12/21/19 13/25/20 -f 12/26/21 13/27/22 11/28/23 -f 14/29/2 15/30/2 16/31/2 -f 15/30/24 17/32/24 16/31/24 -f 17/32/8 18/33/8 19/34/8 -f 14/35/25 17/32/25 19/36/25 -f 14/37/26 18/33/26 15/30/26 -f 20/38/2 21/39/2 22/40/2 -f 21/39/27 23/41/27 22/40/27 -f 23/41/8 24/42/8 25/43/8 -f 22/40/26 25/44/26 20/45/26 -f 20/46/9 24/42/9 21/39/9 -f 26/47/1 27/48/2 28/49/3 -f 26/50/4 29/51/5 27/48/6 -f 30/52/2 31/53/2 32/54/2 -f 31/53/7 33/55/7 32/54/7 -f 33/55/8 34/56/8 35/57/8 -f 32/54/6 35/58/6 30/59/6 -f 30/60/9 31/53/9 34/56/9 -f 35/61/10 36/62/11 37/63/12 -f 28/64/13 34/56/13 31/53/13 -f 27/48/14 36/65/14 28/49/14 -f 37/63/15 36/65/15 29/51/15 -f 38/66/16 37/67/16 26/68/16 -f 31/53/17 26/69/1 28/70/3 -f 35/61/18 37/67/28 38/71/29 -f 37/72/30 38/73/31 36/74/32 -f 39/75/1 40/76/2 41/77/3 -f 39/78/4 42/79/5 40/76/6 -f 43/80/2 44/81/2 45/82/2 -f 44/81/7 46/83/7 45/82/7 -f 46/83/8 47/84/8 48/85/8 -f 45/82/6 48/86/6 43/87/6 -f 43/88/9 44/81/9 47/84/9 -f 48/89/10 49/90/11 50/91/12 -f 41/92/13 47/84/13 44/81/13 -f 40/76/14 49/93/14 41/77/14 -f 50/91/15 49/93/15 42/79/15 -f 51/94/16 50/95/16 39/96/16 -f 44/81/17 39/97/1 41/98/3 -f 48/89/18 50/95/33 51/99/29 -f 50/100/30 51/101/31 49/102/32 -f 52/103/1 53/104/2 54/105/3 -f 52/106/4 55/107/5 53/104/6 -f 56/108/2 57/109/2 58/110/2 -f 57/109/7 59/111/7 58/110/7 -f 59/111/8 60/112/8 61/113/8 -f 58/110/6 61/114/6 56/115/6 -f 56/116/9 57/109/9 60/112/9 -f 61/117/10 62/118/11 63/119/12 -f 54/120/13 60/112/13 57/109/13 -f 53/104/14 62/121/14 54/105/14 -f 63/119/15 62/121/15 55/107/15 -f 64/122/16 63/123/16 52/124/16 -f 57/109/17 52/125/1 54/126/3 -f 61/117/18 63/123/28 64/127/29 -f 63/128/34 64/129/35 62/130/36 -f 65/131/1 66/132/2 67/133/3 -f 65/134/4 68/135/5 66/132/6 -f 69/136/2 70/137/2 71/138/2 -f 70/137/7 72/139/7 71/138/7 -f 72/139/8 73/140/8 74/141/8 -f 71/138/6 74/142/6 69/143/6 -f 69/144/9 70/137/9 73/140/9 -f 74/145/10 75/146/11 76/147/12 -f 67/148/13 73/140/13 70/137/13 -f 66/132/14 75/149/14 67/133/14 -f 76/147/15 75/149/15 68/135/15 -f 77/150/16 76/151/16 65/152/16 -f 70/137/17 65/153/1 67/154/3 -f 74/145/18 76/151/37 77/155/38 -f 76/156/34 77/157/35 75/158/36 -f 78/159/1 79/160/2 80/161/3 -f 78/162/4 81/163/5 79/160/6 -f 82/164/2 83/165/2 84/166/2 -f 83/165/7 85/167/7 84/166/7 -f 85/167/8 86/168/8 87/169/8 -f 84/166/6 87/170/6 82/171/6 -f 82/172/9 83/165/9 86/168/9 -f 87/173/10 88/174/11 89/175/12 -f 80/176/13 86/168/13 83/165/13 -f 79/160/14 88/177/14 80/161/14 -f 89/175/15 88/177/15 81/163/15 -f 90/178/16 89/179/16 78/180/16 -f 83/165/17 78/181/1 80/182/3 -f 87/173/18 89/179/19 90/183/20 -f 89/184/39 90/185/39 88/186/39 -f 91/187/1 92/188/2 93/189/3 -f 91/190/4 94/191/5 92/188/6 -f 95/192/2 96/193/2 97/194/2 -f 96/193/7 98/195/7 97/194/7 -f 98/195/8 99/196/8 100/197/8 -f 97/194/6 100/198/6 95/199/6 -f 95/200/9 96/193/9 99/196/9 -f 100/201/10 101/202/11 102/203/12 -f 93/204/13 99/196/13 96/193/13 -f 92/188/14 101/205/14 93/189/14 -f 102/203/15 101/205/15 94/191/15 -f 103/206/40 102/207/40 91/208/40 -f 96/193/17 91/209/1 93/210/3 -f 100/201/18 102/207/37 103/211/20 -f 102/212/21 103/213/22 101/214/23 -f 104/215/1 105/216/2 106/217/3 -f 104/218/4 107/219/5 105/216/6 -f 108/220/2 109/221/2 110/222/2 -f 109/221/7 111/223/7 110/222/7 -f 111/223/8 112/224/8 113/225/8 -f 110/222/6 113/226/6 108/227/6 -f 108/228/9 109/221/9 112/224/9 -f 113/229/10 114/230/11 115/231/12 -f 106/232/13 112/224/13 109/221/13 -f 105/216/14 114/233/14 106/217/14 -f 115/231/15 114/233/15 107/219/15 -f 116/234/16 115/235/16 104/236/16 -f 109/221/17 104/237/1 106/238/3 -f 113/229/18 115/235/19 116/239/20 -f 115/240/41 116/241/41 114/242/41 -f 117/243/1 118/244/2 119/245/3 -f 117/246/4 120/247/5 118/244/6 -f 121/248/2 122/249/2 123/250/2 -f 122/249/7 124/251/7 123/250/7 -f 124/251/8 125/252/8 126/253/8 -f 123/250/6 126/254/6 121/255/6 -f 121/256/9 122/249/9 125/252/9 -f 126/257/10 127/258/11 128/259/12 -f 119/260/13 125/252/13 122/249/13 -f 118/244/14 127/261/14 119/245/14 -f 128/259/15 127/261/15 120/247/15 -f 129/262/16 128/263/16 117/264/16 -f 122/249/17 117/265/1 119/266/3 -f 126/257/18 128/263/37 129/267/20 -f 128/268/42 127/269/42 129/270/42 -f 130/271/1 131/272/2 132/273/3 -f 130/274/4 133/275/5 131/272/6 -f 134/276/2 135/277/2 136/278/2 -f 135/277/7 137/279/7 136/278/7 -f 137/279/8 138/280/8 139/281/8 -f 136/278/6 139/282/6 134/283/6 -f 134/284/9 135/277/9 138/280/9 -f 139/285/10 140/286/11 141/287/12 -f 132/288/13 138/280/13 135/277/13 -f 131/272/14 140/289/14 132/273/14 -f 141/287/15 140/289/15 133/275/15 -f 142/290/16 141/291/16 130/292/16 -f 135/277/17 130/293/1 132/294/3 -f 139/285/18 141/291/19 142/295/20 -f 141/296/42 140/297/42 142/298/42 -f 143/299/1 144/300/2 145/301/3 -f 143/302/4 146/303/5 144/300/6 -f 147/304/2 148/305/2 149/306/2 -f 148/305/7 150/307/7 149/306/7 -f 150/307/8 151/308/8 152/309/8 -f 149/306/6 152/310/6 147/311/6 -f 147/312/9 148/305/9 151/308/9 -f 152/313/10 153/314/11 154/315/12 -f 145/316/13 151/308/13 148/305/13 -f 144/300/14 153/317/14 145/301/14 -f 154/315/15 153/317/15 146/303/15 -f 155/318/16 154/319/16 143/320/16 -f 148/305/17 143/321/1 145/322/3 -f 152/313/18 154/319/43 155/323/44 -f 154/324/45 153/325/45 155/326/45 -f 156/327/1 157/328/2 158/329/3 -f 156/330/4 159/331/5 157/328/6 -f 160/332/2 161/333/2 162/334/2 -f 161/333/7 163/335/7 162/334/7 -f 163/335/8 164/336/8 165/337/8 -f 162/334/6 165/338/6 160/339/6 -f 160/340/9 161/333/9 164/336/9 -f 165/341/10 166/342/11 167/343/12 -f 158/344/13 164/336/13 161/333/13 -f 157/328/14 166/345/14 158/329/14 -f 167/343/15 166/345/15 159/331/15 -f 168/346/16 167/347/16 156/348/16 -f 161/333/17 156/349/1 158/350/3 -f 165/341/18 167/347/37 168/351/38 -f 167/352/42 166/353/42 168/354/42 -f 1/4/4 12/355/46 4/5/5 -f 6/7/7 9/10/7 8/9/7 -f 7/8/6 8/9/6 10/12/6 -f 5/14/9 9/10/9 10/356/9 -f 10/15/10 9/10/47 11/16/11 -f 3/18/13 11/357/13 9/10/13 -f 2/2/14 4/5/14 11/19/14 -f 6/7/17 5/358/17 1/23/1 -f 13/25/20 1/22/48 10/15/18 -f 1/22/48 5/358/48 10/15/18 -f 15/30/24 18/33/24 17/32/24 -f 14/35/25 16/31/25 17/32/25 -f 14/37/26 19/359/26 18/33/26 -f 21/39/27 24/42/27 23/41/27 -f 22/40/26 23/41/26 25/44/26 -f 20/46/9 25/360/9 24/42/9 -f 26/50/4 37/361/46 29/51/5 -f 31/53/7 34/56/7 33/55/7 -f 32/54/6 33/55/6 35/58/6 -f 30/60/9 34/56/9 35/362/9 -f 35/61/10 34/56/47 36/62/11 -f 28/64/13 36/363/13 34/56/13 -f 27/48/14 29/51/14 36/65/14 -f 31/53/17 30/364/17 26/69/1 -f 38/71/29 26/68/48 35/61/18 -f 26/68/48 30/364/48 35/61/18 -f 39/78/4 50/365/46 42/79/5 -f 44/81/7 47/84/7 46/83/7 -f 45/82/6 46/83/6 48/86/6 -f 43/88/9 47/84/9 48/366/9 -f 48/89/10 47/84/47 49/90/11 -f 41/92/13 49/367/13 47/84/13 -f 40/76/14 42/79/14 49/93/14 -f 44/81/17 43/368/17 39/97/1 -f 51/99/29 39/96/48 48/89/18 -f 39/96/48 43/368/48 48/89/18 -f 52/106/4 63/369/46 55/107/5 -f 57/109/7 60/112/7 59/111/7 -f 58/110/6 59/111/6 61/114/6 -f 56/116/9 60/112/9 61/370/9 -f 61/117/10 60/112/47 62/118/11 -f 54/120/13 62/371/13 60/112/13 -f 53/104/14 55/107/14 62/121/14 -f 57/109/17 56/372/17 52/125/1 -f 64/127/29 52/124/48 61/117/18 -f 52/124/48 56/372/48 61/117/18 -f 65/134/4 76/373/46 68/135/5 -f 70/137/7 73/140/7 72/139/7 -f 71/138/6 72/139/6 74/142/6 -f 69/144/9 73/140/9 74/374/9 -f 74/145/10 73/140/47 75/146/11 -f 67/148/13 75/375/13 73/140/13 -f 66/132/14 68/135/14 75/149/14 -f 70/137/17 69/376/17 65/153/1 -f 77/155/38 65/152/48 74/145/18 -f 65/152/48 69/376/48 74/145/49 -f 78/162/4 89/377/46 81/163/5 -f 83/165/7 86/168/7 85/167/7 -f 84/166/6 85/167/6 87/170/6 -f 82/172/9 86/168/9 87/378/9 -f 87/173/10 86/168/47 88/174/11 -f 80/176/13 88/379/13 86/168/13 -f 79/160/14 81/163/14 88/177/14 -f 83/165/17 82/380/17 78/181/1 -f 90/183/20 78/180/48 87/173/18 -f 78/180/48 82/380/48 87/173/18 -f 91/190/4 102/381/46 94/191/5 -f 96/193/7 99/196/7 98/195/7 -f 97/194/6 98/195/6 100/198/6 -f 95/200/9 99/196/9 100/382/9 -f 100/201/10 99/196/47 101/202/11 -f 93/204/13 101/383/13 99/196/13 -f 92/188/14 94/191/14 101/205/14 -f 96/193/17 95/384/17 91/209/1 -f 103/211/20 91/208/48 100/201/18 -f 91/208/48 95/384/48 100/201/18 -f 104/218/4 115/385/46 107/219/5 -f 109/221/7 112/224/7 111/223/7 -f 110/222/6 111/223/6 113/226/6 -f 108/228/9 112/224/9 113/386/9 -f 113/229/10 112/224/47 114/230/11 -f 106/232/13 114/387/13 112/224/13 -f 105/216/14 107/219/14 114/233/14 -f 109/221/17 108/388/17 104/237/1 -f 116/239/20 104/236/48 113/229/18 -f 104/236/48 108/388/48 113/229/18 -f 117/246/4 128/389/46 120/247/5 -f 122/249/7 125/252/7 124/251/7 -f 123/250/6 124/251/6 126/254/6 -f 121/256/9 125/252/9 126/390/9 -f 126/257/10 125/252/47 127/258/11 -f 119/260/13 127/391/13 125/252/13 -f 118/244/14 120/247/14 127/261/14 -f 122/249/17 121/392/17 117/265/1 -f 129/267/20 117/264/48 126/257/18 -f 117/264/48 121/392/48 126/257/18 -f 130/274/4 141/393/46 133/275/5 -f 135/277/7 138/280/7 137/279/7 -f 136/278/6 137/279/6 139/282/6 -f 134/284/9 138/280/9 139/394/9 -f 139/285/10 138/280/47 140/286/11 -f 132/288/13 140/395/13 138/280/13 -f 131/272/14 133/275/14 140/289/14 -f 135/277/17 134/396/17 130/293/1 -f 142/295/20 130/292/48 139/285/18 -f 130/292/48 134/396/48 139/285/49 -f 143/302/4 154/397/46 146/303/5 -f 148/305/7 151/308/7 150/307/7 -f 149/306/6 150/307/6 152/310/6 -f 147/312/9 151/308/9 152/398/9 -f 152/313/10 151/308/47 153/314/11 -f 145/316/13 153/399/13 151/308/13 -f 144/300/14 146/303/14 153/317/14 -f 148/305/17 147/400/17 143/321/1 -f 155/323/44 143/320/48 152/313/18 -f 143/320/48 147/400/48 152/313/18 -f 156/330/4 167/401/46 159/331/5 -f 161/333/7 164/336/7 163/335/7 -f 162/334/6 163/335/6 165/338/6 -f 160/340/9 164/336/9 165/402/9 -f 165/341/10 164/336/47 166/342/11 -f 158/344/13 166/403/13 164/336/13 -f 157/328/14 159/331/14 166/345/14 -f 161/333/17 160/404/17 156/349/1 -f 168/351/38 156/348/48 165/341/18 -f 156/348/48 160/404/48 165/341/18 -f 169/405/2 170/406/2 171/407/2 -f 172/408/50 171/409/50 173/410/50 -f 174/411/51 175/412/51 171/409/51 -f 176/413/52 177/414/52 175/412/52 -f 178/415/53 179/416/53 177/414/53 -f 180/417/54 181/418/54 179/416/54 -f 182/419/55 183/420/55 181/418/55 -f 184/421/56 185/422/56 183/420/56 -f 186/423/57 187/424/57 185/422/57 -f 188/425/58 169/426/58 187/424/58 -f 189/427/59 170/428/59 169/426/59 -f 170/406/26 172/429/26 173/430/26 -f 178/431/8 176/432/8 186/433/8 -f 170/406/2 173/430/2 171/407/2 -f 171/407/2 175/434/2 187/435/2 -f 175/434/2 177/436/2 185/437/2 -f 177/436/2 179/438/2 185/437/2 -f 179/438/2 181/439/2 183/440/2 -f 185/437/2 179/438/2 183/440/2 -f 185/437/2 187/435/2 175/434/2 -f 187/435/2 169/405/2 171/407/2 -f 172/408/50 174/411/50 171/409/50 -f 174/411/51 176/413/51 175/412/51 -f 176/413/52 178/415/52 177/414/52 -f 178/415/53 180/417/53 179/416/53 -f 180/417/54 182/419/54 181/418/54 -f 182/419/55 184/421/55 183/420/55 -f 184/421/56 186/423/56 185/422/56 -f 186/423/57 188/425/57 187/424/57 -f 188/425/58 189/427/58 169/426/58 -f 189/427/59 190/441/59 170/428/59 -f 170/406/26 190/442/26 172/429/26 -f 176/432/8 174/443/8 189/444/8 -f 174/443/8 172/429/8 189/444/8 -f 172/429/8 190/442/8 189/444/8 -f 189/444/8 188/445/8 176/432/8 -f 188/445/8 186/433/8 176/432/8 -f 186/433/8 184/446/8 178/431/8 -f 184/446/8 182/447/8 180/448/8 -f 178/431/8 184/446/8 180/448/8 -f 191/449/60 192/450/60 193/451/60 -f 194/452/61 195/453/61 192/450/61 -f 196/454/62 197/455/62 195/453/62 -f 198/456/63 199/457/63 197/455/63 -f 200/458/64 201/459/64 199/457/64 -f 202/460/65 203/461/65 201/459/65 -f 204/462/66 205/463/66 203/461/66 -f 206/464/67 207/465/67 205/463/67 -f 208/466/68 209/467/68 207/465/68 -f 210/468/69 211/469/69 209/467/69 -f 212/470/70 213/471/70 211/469/70 -f 214/472/71 215/473/71 213/471/71 -f 216/474/72 217/475/72 215/473/72 -f 218/476/73 219/477/73 217/475/73 -f 220/478/74 221/479/74 219/477/74 -f 222/480/75 223/481/76 221/479/76 -f 224/482/77 225/483/77 223/481/77 -f 226/484/78 227/485/78 225/483/78 -f 228/486/79 229/487/79 227/485/79 -f 230/488/80 231/489/80 229/487/80 -f 232/490/81 233/491/81 231/489/81 -f 234/492/82 235/493/82 233/491/82 -f 212/494/8 204/495/8 196/496/8 -f 236/497/83 237/498/83 235/493/83 -f 238/499/84 193/500/84 237/498/84 -f 239/501/73 240/502/73 241/503/73 -f 242/504/61 243/505/61 244/506/61 -f 245/507/64 246/508/64 243/505/64 -f 247/509/67 248/510/67 246/508/67 -f 249/511/70 250/512/70 248/510/70 -f 251/513/73 252/514/73 250/512/73 -f 253/515/77 254/516/77 252/514/77 -f 247/517/8 242/518/8 255/519/8 -f 255/520/80 256/521/80 254/516/80 -f 257/522/83 244/523/83 256/521/83 -f 248/524/2 252/525/2 256/526/2 -f 250/527/85 258/528/85 248/529/85 -f 248/529/86 259/530/86 246/531/86 -f 246/531/87 260/532/87 243/533/87 -f 260/532/88 244/534/88 243/533/88 -f 261/535/89 256/536/89 244/534/89 -f 262/537/90 254/538/90 256/536/90 -f 263/539/91 252/540/91 254/538/91 -f 264/541/92 250/527/92 252/540/92 -f 265/542/80 259/543/80 258/544/80 -f 266/545/83 258/544/83 267/546/83 -f 268/547/70 262/548/70 261/549/70 -f 269/550/73 261/551/73 260/552/73 -f 270/553/77 260/552/77 259/543/77 -f 271/554/61 267/546/61 264/555/61 -f 272/556/60 273/557/60 274/558/60 -f 275/559/61 276/560/61 273/557/61 -f 277/561/62 278/562/62 276/560/62 -f 279/563/93 280/564/93 278/562/93 -f 281/565/64 282/566/64 280/564/64 -f 283/567/65 284/568/65 282/566/65 -f 285/569/66 286/570/66 284/568/66 -f 287/571/67 288/572/67 286/570/67 -f 289/573/68 290/574/68 288/572/68 -f 291/575/69 292/576/69 290/574/69 -f 293/577/70 294/578/70 292/576/70 -f 295/579/71 296/580/71 294/578/71 -f 297/581/72 298/582/72 296/580/72 -f 299/583/73 300/584/73 298/582/73 -f 301/585/74 302/586/74 300/584/74 -f 303/587/75 304/588/75 302/586/75 -f 305/589/77 306/590/77 304/588/77 -f 307/591/78 308/592/78 306/590/78 -f 309/593/79 310/594/79 308/592/79 -f 311/595/80 312/596/80 310/594/80 -f 313/597/81 314/598/81 312/596/81 -f 315/599/82 316/600/82 314/598/82 -f 309/601/8 293/602/8 277/603/8 -f 317/604/83 318/605/83 316/600/83 -f 319/606/84 274/607/84 318/605/84 -f 310/608/2 318/609/2 286/610/2 -f 320/611/60 321/612/60 322/613/60 -f 323/614/61 324/615/61 321/612/61 -f 325/616/62 326/617/62 324/615/62 -f 327/618/63 328/619/63 326/617/63 -f 329/620/64 330/621/64 328/619/64 -f 331/622/65 332/623/65 330/621/65 -f 333/624/66 334/625/66 332/623/66 -f 335/626/67 336/627/67 334/625/67 -f 337/628/68 338/629/68 336/627/68 -f 339/630/69 340/631/69 338/629/69 -f 341/632/70 342/633/70 340/631/70 -f 343/634/71 344/635/71 342/633/71 -f 345/636/72 346/637/72 344/635/72 -f 347/638/73 348/639/73 346/637/73 -f 349/640/74 350/641/74 348/639/94 -f 351/642/75 352/643/75 350/641/75 -f 353/644/77 354/645/77 352/643/77 -f 355/646/78 356/647/78 354/645/78 -f 357/648/79 358/649/79 356/647/79 -f 359/650/80 360/651/80 358/649/80 -f 361/652/81 362/653/81 360/651/81 -f 363/654/82 364/655/82 362/653/82 -f 341/656/8 333/657/8 325/658/8 -f 365/659/83 366/660/83 364/655/83 -f 367/661/84 322/662/84 366/660/84 -f 350/663/2 358/664/2 366/665/2 -f 368/666/60 369/667/60 370/668/60 -f 371/669/61 372/670/61 369/667/61 -f 373/671/62 374/672/62 372/670/62 -f 375/673/63 376/674/63 374/672/63 -f 377/675/64 378/676/64 376/674/64 -f 379/677/65 380/678/65 378/676/65 -f 381/679/66 382/680/66 380/678/66 -f 383/681/67 384/682/67 382/680/67 -f 385/683/68 386/684/68 384/682/68 -f 387/685/69 388/686/69 386/684/69 -f 389/687/70 390/688/70 388/686/70 -f 391/689/71 392/690/71 390/688/71 -f 393/691/72 394/692/72 392/690/72 -f 395/693/73 396/694/73 394/692/73 -f 397/695/74 398/696/74 396/694/74 -f 399/697/75 400/698/75 398/696/75 -f 401/699/77 402/700/77 400/698/77 -f 403/701/78 404/702/78 402/700/78 -f 405/703/79 406/704/79 404/702/79 -f 407/705/80 408/706/80 406/704/80 -f 409/707/81 410/708/81 408/706/81 -f 411/709/82 412/710/82 410/708/82 -f 389/711/8 381/712/8 373/713/8 -f 413/714/83 414/715/83 412/710/83 -f 415/716/84 370/717/84 414/715/84 -f 398/718/2 406/719/2 414/720/2 -f 416/721/60 417/722/60 418/723/60 -f 419/724/61 420/725/61 417/722/61 -f 421/726/62 422/727/62 420/725/62 -f 423/728/63 424/729/63 422/727/63 -f 425/730/64 426/731/64 424/729/64 -f 427/732/65 428/733/65 426/731/65 -f 429/734/66 430/735/66 428/733/66 -f 431/736/67 432/737/67 430/735/67 -f 433/738/68 434/739/68 432/737/68 -f 435/740/69 436/741/69 434/739/69 -f 437/742/70 438/743/70 436/741/70 -f 439/744/71 440/745/71 438/743/71 -f 441/746/72 442/747/72 440/745/72 -f 443/748/73 444/749/73 442/747/73 -f 445/750/74 446/751/74 444/749/74 -f 447/752/75 448/753/75 446/751/76 -f 449/754/77 450/755/77 448/753/77 -f 451/756/78 452/757/78 450/755/78 -f 453/758/79 454/759/79 452/757/79 -f 455/760/80 456/761/80 454/759/80 -f 457/762/81 458/763/81 456/761/81 -f 459/764/82 460/765/82 458/763/82 -f 437/766/8 429/767/8 421/768/8 -f 461/769/83 462/770/83 460/765/83 -f 463/771/84 418/772/84 462/770/84 -f 446/773/2 454/774/2 462/775/2 -f 464/776/60 465/777/60 466/778/60 -f 467/779/61 468/780/61 465/777/61 -f 469/781/95 470/782/62 468/780/62 -f 471/783/63 472/784/63 470/782/63 -f 473/785/64 474/786/64 472/784/64 -f 475/787/65 476/788/65 474/786/65 -f 477/789/66 478/790/66 476/788/66 -f 479/791/67 480/792/67 478/790/67 -f 481/793/68 482/794/68 480/792/68 -f 483/795/96 484/796/69 482/794/69 -f 485/797/70 486/798/70 484/796/70 -f 487/799/71 488/800/71 486/798/71 -f 489/801/72 490/802/72 488/800/72 -f 491/803/73 492/804/73 490/802/73 -f 493/805/74 494/806/94 492/804/94 -f 495/807/75 496/808/76 494/806/76 -f 497/809/77 498/810/77 496/808/77 -f 499/811/78 500/812/78 498/810/78 -f 501/813/79 502/814/79 500/812/79 -f 503/815/80 504/816/80 502/814/80 -f 505/817/81 506/818/81 504/816/81 -f 507/819/82 508/820/82 506/818/82 -f 485/821/8 477/822/8 469/823/8 -f 509/824/83 510/825/83 508/820/83 -f 511/826/84 466/827/84 510/825/84 -f 494/828/2 502/829/2 510/830/2 -f 512/831/2 192/832/2 241/503/2 -f 241/503/2 195/833/2 239/501/2 -f 239/501/2 197/834/2 513/835/2 -f 513/835/2 199/836/2 514/837/2 -f 514/837/2 201/838/2 515/839/2 -f 515/839/2 203/840/2 516/841/2 -f 517/842/2 203/840/2 205/843/2 -f 518/844/2 205/843/2 207/845/2 -f 519/846/2 207/845/2 209/847/2 -f 520/848/2 209/847/2 211/849/2 -f 521/850/2 211/849/2 213/851/2 -f 522/852/2 213/851/2 215/853/2 -f 522/852/2 217/854/2 523/855/2 -f 523/855/2 219/856/2 524/857/2 -f 524/857/2 221/858/2 525/859/2 -f 525/859/2 223/860/2 526/861/2 -f 526/861/2 225/862/2 527/863/2 -f 527/863/2 227/864/2 528/865/2 -f 529/866/2 227/864/2 229/867/2 -f 530/868/2 229/867/2 231/869/2 -f 531/870/2 231/869/2 233/871/2 -f 532/872/2 233/871/2 235/873/2 -f 533/874/2 235/873/2 237/875/2 -f 512/831/2 237/875/2 193/876/2 -f 534/877/2 535/878/2 536/879/2 -f 527/863/64 537/880/64 526/861/64 -f 520/848/82 538/881/82 519/846/82 -f 513/835/74 539/882/74 239/501/74 -f 528/865/65 540/883/65 527/863/65 -f 521/850/83 541/884/83 520/848/83 -f 514/837/75 542/885/75 513/835/75 -f 529/866/66 543/886/66 528/865/66 -f 522/852/84 544/887/84 521/850/84 -f 515/839/77 545/888/77 514/837/77 -f 530/868/67 546/889/67 529/866/67 -f 523/855/60 547/890/60 522/852/60 -f 516/841/78 548/891/78 515/839/78 -f 531/870/68 549/892/68 530/868/68 -f 524/857/61 550/893/61 523/855/61 -f 517/842/79 551/894/79 516/841/79 -f 532/872/69 534/877/69 531/870/69 -f 525/859/62 552/895/62 524/857/62 -f 518/844/80 553/896/80 517/842/80 -f 533/874/70 535/878/70 532/872/70 -f 241/503/72 554/897/72 512/831/72 -f 526/861/93 536/879/93 525/859/93 -f 519/846/81 555/898/81 518/844/81 -f 512/831/71 556/899/71 533/874/71 -f 271/554/97 263/539/98 557/900/99 -f 191/449/60 194/452/60 192/450/60 -f 194/452/61 196/454/61 195/453/61 -f 196/454/62 198/456/62 197/455/62 -f 198/456/63 200/458/63 199/457/63 -f 200/458/64 202/460/64 201/459/64 -f 202/460/65 204/462/65 203/461/65 -f 204/462/66 206/464/66 205/463/66 -f 206/464/67 208/466/67 207/465/67 -f 208/466/68 210/468/68 209/467/68 -f 210/468/69 212/470/69 211/469/69 -f 212/470/70 214/472/70 213/471/70 -f 214/472/71 216/474/71 215/473/71 -f 216/474/72 218/476/72 217/475/72 -f 218/476/73 220/478/73 219/477/73 -f 220/478/74 222/480/74 221/479/74 -f 222/480/75 224/482/75 223/481/76 -f 224/482/77 226/484/77 225/483/77 -f 226/484/78 228/486/78 227/485/78 -f 228/486/79 230/488/79 229/487/79 -f 230/488/80 232/490/80 231/489/80 -f 232/490/81 234/492/81 233/491/81 -f 234/492/82 236/497/82 235/493/82 -f 196/496/8 194/901/8 191/902/8 -f 191/902/8 238/903/8 196/496/8 -f 238/903/8 236/904/8 196/496/8 -f 236/904/8 234/905/8 232/906/8 -f 232/906/8 230/907/8 228/908/8 -f 228/908/8 226/909/8 224/910/8 -f 224/910/8 222/911/8 228/908/8 -f 222/911/8 220/912/8 228/908/8 -f 220/912/8 218/913/8 216/914/8 -f 216/914/8 214/915/8 212/494/8 -f 212/494/8 210/916/8 208/917/8 -f 208/917/8 206/918/8 204/495/8 -f 204/495/8 202/919/8 200/920/8 -f 200/920/8 198/921/8 204/495/8 -f 198/921/8 196/496/8 204/495/8 -f 236/904/8 232/906/8 228/908/8 -f 220/912/8 216/914/8 228/908/8 -f 216/914/8 212/494/8 228/908/8 -f 212/494/8 208/917/8 204/495/8 -f 196/496/8 236/904/8 212/494/8 -f 236/904/8 228/908/8 212/494/8 -f 236/497/83 238/499/83 237/498/83 -f 238/499/84 191/922/84 193/500/84 -f 239/501/73 539/882/73 240/502/73 -f 242/504/61 245/507/61 243/505/61 -f 245/507/64 247/509/64 246/508/64 -f 247/509/67 249/511/67 248/510/67 -f 249/511/70 251/513/70 250/512/70 -f 251/513/73 253/515/73 252/514/73 -f 253/515/77 255/520/77 254/516/77 -f 247/517/8 245/923/8 242/518/8 -f 242/518/8 257/924/8 255/519/8 -f 255/519/8 253/925/8 247/517/8 -f 253/925/8 251/926/8 247/517/8 -f 251/926/8 249/927/8 247/517/8 -f 255/520/80 257/522/80 256/521/80 -f 257/522/83 242/928/83 244/523/83 -f 256/526/2 244/929/2 248/524/2 -f 244/929/2 243/930/2 248/524/2 -f 243/930/2 246/931/2 248/524/2 -f 248/524/2 250/932/2 252/525/2 -f 252/525/2 254/933/2 256/526/2 -f 250/527/85 267/934/85 258/528/85 -f 248/529/86 258/528/86 259/530/86 -f 246/531/87 259/530/87 260/532/87 -f 260/532/88 261/535/88 244/534/88 -f 261/535/89 262/537/89 256/536/89 -f 262/537/90 263/539/90 254/538/90 -f 263/539/91 264/541/91 252/540/91 -f 264/541/92 267/934/92 250/527/92 -f 265/542/80 270/553/80 259/543/80 -f 266/545/83 265/542/83 258/544/83 -f 268/547/70 557/900/70 262/548/70 -f 269/550/73 268/935/73 261/551/73 -f 270/553/77 269/550/77 260/552/77 -f 271/554/61 266/545/61 267/546/61 -f 272/556/60 275/559/60 273/557/60 -f 275/559/61 277/561/61 276/560/61 -f 277/561/62 279/563/62 278/562/62 -f 279/563/93 281/565/93 280/564/93 -f 281/565/64 283/567/64 282/566/64 -f 283/567/65 285/569/65 284/568/65 -f 285/569/66 287/571/66 286/570/66 -f 287/571/67 289/573/67 288/572/67 -f 289/573/68 291/575/68 290/574/68 -f 291/575/69 293/577/69 292/576/69 -f 293/577/70 295/579/70 294/578/70 -f 295/579/71 297/581/71 296/580/71 -f 297/581/72 299/583/72 298/582/72 -f 299/583/73 301/585/73 300/584/73 -f 301/585/74 303/587/74 302/586/74 -f 303/587/75 305/589/75 304/588/75 -f 305/589/77 307/591/77 306/590/77 -f 307/591/78 309/593/78 308/592/78 -f 309/593/79 311/595/79 310/594/79 -f 311/595/80 313/597/80 312/596/80 -f 313/597/81 315/599/81 314/598/81 -f 315/599/82 317/604/82 316/600/82 -f 277/603/8 275/936/8 317/937/8 -f 275/936/8 272/938/8 317/937/8 -f 272/938/8 319/939/8 317/937/8 -f 317/937/8 315/940/8 313/941/8 -f 313/941/8 311/942/8 309/601/8 -f 309/601/8 307/943/8 305/944/8 -f 305/944/8 303/945/8 301/946/8 -f 301/946/8 299/947/8 297/948/8 -f 297/948/8 295/949/8 293/602/8 -f 293/602/8 291/950/8 289/951/8 -f 289/951/8 287/952/8 293/602/8 -f 287/952/8 285/953/8 293/602/8 -f 285/953/8 283/954/8 281/955/8 -f 281/955/8 279/956/8 277/603/8 -f 317/937/8 313/941/8 277/603/8 -f 313/941/8 309/601/8 277/603/8 -f 309/601/8 305/944/8 293/602/8 -f 305/944/8 301/946/8 293/602/8 -f 301/946/8 297/948/8 293/602/8 -f 285/953/8 281/955/8 293/602/8 -f 281/955/8 277/603/8 293/602/8 -f 317/604/83 319/606/83 318/605/83 -f 319/606/84 272/957/84 274/607/84 -f 318/609/2 274/958/2 273/959/2 -f 273/959/2 276/960/2 318/609/2 -f 276/960/2 278/961/2 318/609/2 -f 278/961/2 280/962/2 286/610/2 -f 280/962/2 282/963/100 286/610/2 -f 282/963/100 284/964/2 286/610/2 -f 286/610/2 288/965/101 290/966/2 -f 290/966/2 292/967/2 294/968/2 -f 294/968/2 296/969/2 298/970/2 -f 298/970/2 300/971/2 302/972/2 -f 302/972/2 304/973/2 306/974/2 -f 306/974/2 308/975/2 310/608/2 -f 310/608/2 312/976/2 314/977/101 -f 314/977/101 316/978/2 310/608/2 -f 316/978/2 318/609/2 310/608/2 -f 286/610/2 290/966/2 294/968/2 -f 294/968/2 298/970/2 286/610/2 -f 298/970/2 302/972/2 286/610/2 -f 302/972/2 306/974/2 310/608/2 -f 318/609/2 278/961/2 286/610/2 -f 302/972/2 310/608/2 286/610/2 -f 320/611/60 323/614/60 321/612/60 -f 323/614/61 325/616/61 324/615/61 -f 325/616/62 327/618/62 326/617/62 -f 327/618/63 329/620/63 328/619/63 -f 329/620/64 331/622/64 330/621/64 -f 331/622/65 333/624/65 332/623/65 -f 333/624/66 335/626/66 334/625/66 -f 335/626/67 337/628/67 336/627/67 -f 337/628/68 339/630/68 338/629/68 -f 339/630/69 341/632/69 340/631/69 -f 341/632/70 343/634/70 342/633/70 -f 343/634/71 345/636/71 344/635/71 -f 345/636/72 347/638/72 346/637/72 -f 347/638/73 349/640/73 348/639/73 -f 349/640/74 351/642/74 350/641/74 -f 351/642/75 353/644/75 352/643/75 -f 353/644/77 355/646/77 354/645/77 -f 355/646/78 357/648/78 356/647/78 -f 357/648/79 359/650/79 358/649/79 -f 359/650/80 361/652/80 360/651/80 -f 361/652/81 363/654/81 362/653/81 -f 363/654/82 365/659/82 364/655/82 -f 325/658/8 323/979/8 320/980/8 -f 320/980/8 367/981/8 365/982/8 -f 365/982/8 363/983/102 361/984/8 -f 361/984/8 359/985/8 365/982/8 -f 359/985/8 357/986/8 365/982/8 -f 357/986/8 355/987/102 353/988/8 -f 353/988/8 351/989/8 357/986/8 -f 351/989/8 349/990/8 357/986/8 -f 349/990/8 347/991/8 345/992/8 -f 345/992/8 343/993/8 341/656/8 -f 341/656/8 339/994/8 337/995/8 -f 337/995/8 335/996/8 341/656/8 -f 335/996/8 333/657/8 341/656/8 -f 333/657/8 331/997/8 329/998/8 -f 329/998/8 327/999/8 333/657/8 -f 327/999/8 325/658/8 333/657/8 -f 325/658/8 320/980/8 365/982/8 -f 349/990/8 345/992/8 357/986/8 -f 345/992/8 341/656/8 357/986/8 -f 325/658/8 365/982/8 341/656/8 -f 365/982/8 357/986/8 341/656/8 -f 365/659/83 367/661/83 366/660/83 -f 367/661/84 320/1000/84 322/662/84 -f 366/665/2 322/1001/2 321/1002/2 -f 321/1002/2 324/1003/2 366/665/2 -f 324/1003/2 326/1004/2 366/665/2 -f 326/1004/2 328/1005/100 330/1006/2 -f 330/1006/2 332/1007/101 326/1004/2 -f 332/1007/101 334/1008/2 326/1004/2 -f 334/1008/2 336/1009/101 338/1010/2 -f 338/1010/2 340/1011/2 342/1012/2 -f 342/1012/2 344/1013/2 350/663/2 -f 344/1013/2 346/1014/2 350/663/2 -f 346/1014/2 348/1015/101 350/663/2 -f 350/663/2 352/1016/101 354/1017/100 -f 354/1017/100 356/1018/2 350/663/2 -f 356/1018/2 358/664/2 350/663/2 -f 358/664/2 360/1019/101 362/1020/100 -f 362/1020/100 364/1021/2 358/664/2 -f 364/1021/2 366/665/2 358/664/2 -f 334/1008/2 338/1010/2 350/663/2 -f 338/1010/2 342/1012/2 350/663/2 -f 366/665/2 326/1004/2 350/663/2 -f 326/1004/2 334/1008/2 350/663/2 -f 368/666/60 371/669/60 369/667/60 -f 371/669/61 373/671/61 372/670/61 -f 373/671/62 375/673/62 374/672/62 -f 375/673/63 377/675/63 376/674/63 -f 377/675/64 379/677/64 378/676/64 -f 379/677/65 381/679/65 380/678/65 -f 381/679/66 383/681/66 382/680/66 -f 383/681/67 385/683/67 384/682/67 -f 385/683/68 387/685/68 386/684/68 -f 387/685/69 389/687/96 388/686/69 -f 389/687/70 391/689/70 390/688/70 -f 391/689/71 393/691/71 392/690/71 -f 393/691/72 395/693/72 394/692/72 -f 395/693/73 397/695/73 396/694/73 -f 397/695/74 399/697/74 398/696/74 -f 399/697/75 401/699/75 400/698/75 -f 401/699/77 403/701/77 402/700/77 -f 403/701/78 405/703/78 404/702/78 -f 405/703/79 407/705/79 406/704/79 -f 407/705/80 409/707/80 408/706/80 -f 409/707/81 411/709/81 410/708/81 -f 411/709/82 413/714/82 412/710/82 -f 373/713/8 371/1022/8 368/1023/8 -f 368/1023/8 415/1024/8 413/1025/8 -f 413/1025/8 411/1026/103 409/1027/8 -f 409/1027/8 407/1028/8 413/1025/8 -f 407/1028/8 405/1029/8 413/1025/8 -f 405/1029/8 403/1030/8 401/1031/8 -f 401/1031/8 399/1032/8 405/1029/8 -f 399/1032/8 397/1033/8 405/1029/8 -f 397/1033/8 395/1034/8 393/1035/8 -f 393/1035/8 391/1036/8 389/711/8 -f 389/711/8 387/1037/103 385/1038/8 -f 385/1038/8 383/1039/8 389/711/8 -f 383/1039/8 381/712/8 389/711/8 -f 381/712/8 379/1040/8 377/1041/102 -f 377/1041/102 375/1042/8 381/712/8 -f 375/1042/8 373/713/8 381/712/8 -f 373/713/8 368/1023/8 413/1025/8 -f 397/1033/8 393/1035/8 405/1029/8 -f 393/1035/8 389/711/8 405/1029/8 -f 373/713/8 413/1025/8 389/711/8 -f 413/1025/8 405/1029/8 389/711/8 -f 413/714/83 415/716/83 414/715/83 -f 415/716/84 368/1043/84 370/717/84 -f 414/720/2 370/1044/2 369/1045/2 -f 369/1045/2 372/1046/2 414/720/2 -f 372/1046/2 374/1047/2 414/720/2 -f 374/1047/2 376/1048/101 378/1049/2 -f 378/1049/2 380/1050/2 374/1047/2 -f 380/1050/2 382/1051/2 374/1047/2 -f 382/1051/2 384/1052/100 386/1053/2 -f 386/1053/2 388/1054/100 390/1055/2 -f 390/1055/2 392/1056/2 394/1057/2 -f 394/1057/2 396/1058/2 398/718/2 -f 398/718/2 400/1059/2 402/1060/2 -f 402/1060/2 404/1061/2 398/718/2 -f 404/1061/2 406/719/2 398/718/2 -f 406/719/2 408/1062/100 410/1063/101 -f 410/1063/101 412/1064/2 406/719/2 -f 412/1064/2 414/720/2 406/719/2 -f 382/1051/2 386/1053/2 390/1055/2 -f 390/1055/2 394/1057/2 382/1051/2 -f 394/1057/2 398/718/2 382/1051/2 -f 414/720/2 374/1047/2 398/718/2 -f 374/1047/2 382/1051/2 398/718/2 -f 416/721/60 419/724/60 417/722/60 -f 419/724/61 421/726/61 420/725/61 -f 421/726/62 423/728/62 422/727/62 -f 423/728/63 425/730/63 424/729/63 -f 425/730/64 427/732/64 426/731/64 -f 427/732/65 429/734/65 428/733/65 -f 429/734/66 431/736/66 430/735/66 -f 431/736/67 433/738/67 432/737/67 -f 433/738/68 435/740/68 434/739/68 -f 435/740/69 437/742/69 436/741/69 -f 437/742/70 439/744/70 438/743/70 -f 439/744/71 441/746/71 440/745/71 -f 441/746/72 443/748/72 442/747/72 -f 443/748/73 445/750/73 444/749/73 -f 445/750/74 447/752/74 446/751/74 -f 447/752/75 449/754/75 448/753/75 -f 449/754/77 451/756/77 450/755/77 -f 451/756/78 453/758/78 452/757/78 -f 453/758/79 455/760/79 454/759/79 -f 455/760/80 457/762/80 456/761/80 -f 457/762/81 459/764/81 458/763/81 -f 459/764/82 461/769/82 460/765/82 -f 421/768/8 419/1065/8 416/1066/8 -f 416/1066/8 463/1067/8 461/1068/8 -f 461/1068/8 459/1069/103 457/1070/8 -f 457/1070/8 455/1071/8 461/1068/8 -f 455/1071/8 453/1072/8 461/1068/8 -f 453/1072/8 451/1073/8 449/1074/8 -f 449/1074/8 447/1075/8 453/1072/8 -f 447/1075/8 445/1076/8 453/1072/8 -f 445/1076/8 443/1077/8 441/1078/8 -f 441/1078/8 439/1079/8 437/766/8 -f 437/766/8 435/1080/8 433/1081/8 -f 433/1081/8 431/1082/8 437/766/8 -f 431/1082/8 429/767/8 437/766/8 -f 429/767/8 427/1083/8 425/1084/8 -f 425/1084/8 423/1085/8 429/767/8 -f 423/1085/8 421/768/8 429/767/8 -f 421/768/8 416/1066/8 461/1068/8 -f 445/1076/8 441/1078/8 453/1072/8 -f 441/1078/8 437/766/8 453/1072/8 -f 421/768/8 461/1068/8 437/766/8 -f 461/1068/8 453/1072/8 437/766/8 -f 461/769/83 463/771/83 462/770/83 -f 463/771/84 416/1086/84 418/772/84 -f 462/775/2 418/1087/2 417/1088/2 -f 417/1088/2 420/1089/2 462/775/2 -f 420/1089/2 422/1090/2 462/775/2 -f 422/1090/2 424/1091/100 426/1092/101 -f 426/1092/101 428/1093/2 422/1090/2 -f 428/1093/2 430/1094/2 422/1090/2 -f 430/1094/2 432/1095/2 434/1096/2 -f 434/1096/2 436/1097/2 438/1098/2 -f 438/1098/2 440/1099/2 446/773/2 -f 440/1099/2 442/1100/2 446/773/2 -f 442/1100/2 444/1101/2 446/773/2 -f 446/773/2 448/1102/2 450/1103/2 -f 450/1103/2 452/1104/2 446/773/2 -f 452/1104/2 454/774/2 446/773/2 -f 454/774/2 456/1105/101 458/1106/2 -f 458/1106/2 460/1107/2 454/774/2 -f 460/1107/2 462/775/2 454/774/2 -f 430/1094/2 434/1096/2 446/773/2 -f 434/1096/2 438/1098/2 446/773/2 -f 462/775/2 422/1090/2 446/773/2 -f 422/1090/2 430/1094/2 446/773/2 -f 464/776/60 467/779/60 465/777/60 -f 467/779/61 469/781/61 468/780/61 -f 469/781/95 471/783/95 470/782/62 -f 471/783/63 473/785/63 472/784/63 -f 473/785/64 475/787/64 474/786/64 -f 475/787/65 477/789/65 476/788/65 -f 477/789/66 479/791/66 478/790/66 -f 479/791/67 481/793/67 480/792/67 -f 481/793/68 483/795/68 482/794/68 -f 483/795/96 485/797/96 484/796/69 -f 485/797/70 487/799/70 486/798/70 -f 487/799/71 489/801/71 488/800/71 -f 489/801/72 491/803/72 490/802/72 -f 491/803/73 493/805/73 492/804/73 -f 493/805/74 495/807/74 494/806/94 -f 495/807/75 497/809/75 496/808/76 -f 497/809/77 499/811/77 498/810/77 -f 499/811/78 501/813/78 500/812/78 -f 501/813/79 503/815/79 502/814/79 -f 503/815/80 505/817/80 504/816/80 -f 505/817/81 507/819/81 506/818/81 -f 507/819/82 509/824/82 508/820/82 -f 469/823/8 467/1108/8 464/1109/8 -f 464/1109/8 511/1110/8 469/823/8 -f 511/1110/8 509/1111/8 469/823/8 -f 509/1111/8 507/1112/8 505/1113/8 -f 505/1113/8 503/1114/8 509/1111/8 -f 503/1114/8 501/1115/8 509/1111/8 -f 501/1115/8 499/1116/8 497/1117/8 -f 497/1117/8 495/1118/8 501/1115/8 -f 495/1118/8 493/1119/8 501/1115/8 -f 493/1119/8 491/1120/8 489/1121/8 -f 489/1121/8 487/1122/8 485/821/8 -f 485/821/8 483/1123/8 481/1124/8 -f 481/1124/8 479/1125/8 485/821/8 -f 479/1125/8 477/822/8 485/821/8 -f 477/822/8 475/1126/8 473/1127/8 -f 473/1127/8 471/1128/8 477/822/8 -f 471/1128/8 469/823/8 477/822/8 -f 493/1119/8 489/1121/8 501/1115/8 -f 489/1121/8 485/821/8 501/1115/8 -f 469/823/8 509/1111/8 485/821/8 -f 509/1111/8 501/1115/8 485/821/8 -f 509/824/83 511/826/83 510/825/83 -f 511/826/84 464/1129/84 466/827/84 -f 510/830/2 466/1130/2 465/1131/2 -f 465/1131/2 468/1132/2 510/830/2 -f 468/1132/2 470/1133/2 510/830/2 -f 470/1133/2 472/1134/2 474/1135/2 -f 474/1135/2 476/1136/2 470/1133/2 -f 476/1136/2 478/1137/2 470/1133/2 -f 478/1137/2 480/1138/100 482/1139/2 -f 482/1139/2 484/1140/2 486/1141/2 -f 486/1141/2 488/1142/2 494/828/2 -f 488/1142/2 490/1143/2 494/828/2 -f 490/1143/2 492/1144/2 494/828/2 -f 494/828/2 496/1145/2 498/1146/2 -f 498/1146/2 500/1147/2 494/828/2 -f 500/1147/2 502/829/2 494/828/2 -f 502/829/2 504/1148/2 506/1149/2 -f 506/1149/2 508/1150/2 502/829/2 -f 508/1150/2 510/830/2 502/829/2 -f 478/1137/2 482/1139/2 494/828/2 -f 482/1139/2 486/1141/2 494/828/2 -f 510/830/2 470/1133/2 494/828/2 -f 470/1133/2 478/1137/2 494/828/2 -f 512/831/2 193/876/2 192/832/2 -f 241/503/2 192/832/2 195/833/2 -f 239/501/2 195/833/2 197/834/2 -f 513/835/2 197/834/2 199/836/2 -f 514/837/2 199/836/2 201/838/2 -f 515/839/2 201/838/2 203/840/2 -f 517/842/2 516/841/2 203/840/2 -f 518/844/2 517/842/2 205/843/2 -f 519/846/2 518/844/2 207/845/2 -f 520/848/2 519/846/2 209/847/2 -f 521/850/2 520/848/2 211/849/2 -f 522/852/2 521/850/2 213/851/2 -f 522/852/2 215/853/2 217/854/2 -f 523/855/2 217/854/2 219/856/2 -f 524/857/2 219/856/2 221/858/2 -f 525/859/2 221/858/2 223/860/2 -f 526/861/2 223/860/2 225/862/2 -f 527/863/2 225/862/2 227/864/2 -f 529/866/2 528/865/2 227/864/2 -f 530/868/2 529/866/2 229/867/2 -f 531/870/2 530/868/2 231/869/2 -f 532/872/2 531/870/2 233/871/2 -f 533/874/2 532/872/2 235/873/2 -f 512/831/2 533/874/2 237/875/2 -f 556/899/2 554/897/2 547/890/2 -f 554/897/2 240/502/2 544/887/2 -f 240/502/2 539/882/2 544/887/2 -f 539/882/2 542/885/2 541/884/2 -f 544/887/2 539/882/2 541/884/2 -f 542/885/2 545/888/2 555/898/2 -f 545/888/2 548/891/2 553/896/2 -f 548/891/2 551/894/2 553/896/2 -f 553/896/2 555/898/2 545/888/2 -f 555/898/2 538/881/2 542/885/2 -f 538/881/2 541/884/2 542/885/2 -f 544/887/2 547/890/2 554/897/2 -f 547/890/2 550/893/2 556/899/2 -f 550/893/2 552/895/2 556/899/2 -f 552/895/2 536/879/2 535/878/2 -f 556/899/2 552/895/2 535/878/2 -f 536/879/2 537/880/2 549/892/2 -f 537/880/2 540/883/2 546/889/2 -f 540/883/2 543/886/2 546/889/2 -f 546/889/2 549/892/2 537/880/2 -f 549/892/2 534/877/2 536/879/2 -f 527/863/64 540/883/64 537/880/64 -f 520/848/82 541/884/82 538/881/82 -f 513/835/74 542/885/74 539/882/74 -f 528/865/65 543/886/65 540/883/65 -f 521/850/83 544/887/83 541/884/83 -f 514/837/75 545/888/75 542/885/75 -f 529/866/66 546/889/66 543/886/66 -f 522/852/84 547/890/84 544/887/84 -f 515/839/77 548/891/77 545/888/77 -f 530/868/67 549/892/67 546/889/67 -f 523/855/60 550/893/60 547/890/60 -f 516/841/78 551/894/78 548/891/78 -f 531/870/68 534/877/68 549/892/68 -f 524/857/61 552/895/61 550/893/61 -f 517/842/79 553/896/79 551/894/79 -f 532/872/69 535/878/69 534/877/69 -f 525/859/62 536/879/62 552/895/62 -f 518/844/80 555/898/80 553/896/80 -f 533/874/70 556/899/70 535/878/70 -f 241/503/72 240/502/72 554/897/72 -f 526/861/93 537/880/93 536/879/93 -f 519/846/81 538/881/81 555/898/81 -f 512/831/71 554/897/71 556/899/71 -f 557/900/99 268/547/2 269/550/2 -f 269/550/2 270/553/2 557/900/99 -f 270/553/2 265/542/2 271/554/97 -f 557/900/99 270/553/2 271/554/97 -f 265/542/2 266/545/2 271/554/97 -f 271/554/97 264/541/64 263/539/98 -f 263/539/98 262/548/67 557/900/99 -f 558/1151/104 559/1152/104 560/1153/104 -f 561/1154/105 562/1155/105 563/1156/105 -f 564/1157/106 559/1158/106 565/1159/106 -f 566/1160/107 565/1159/107 567/1161/107 -f 568/1162/108 566/1163/108 567/1161/108 -f 569/1164/106 570/1165/106 571/1166/106 -f 572/1167/109 568/1162/109 573/1168/109 -f 574/1169/110 575/1170/110 576/1171/110 -f 573/1168/105 577/1172/105 572/1167/105 -f 578/1173/111 576/1174/111 577/1172/111 -f 579/1175/112 558/1176/112 575/1177/112 -f 580/1178/25 581/1179/25 582/1180/25 -f 583/1181/9 584/1182/9 585/1183/9 -f 586/1184/26 587/1185/26 580/1186/26 -f 588/1187/113 589/1188/113 590/1189/113 -f 591/1190/114 592/1191/114 589/1192/114 -f 589/1193/115 591/1194/116 593/1195/115 -f 594/1196/117 595/1197/117 592/1191/117 -f 596/1198/118 597/1199/118 598/1200/118 -f 599/1201/119 600/1202/119 601/1203/119 -f 595/1197/120 602/1204/120 603/1205/120 -f 604/1206/121 605/1207/122 593/1208/123 -f 605/1209/118 603/1210/118 602/1211/118 -f 606/1212/25 607/1213/25 608/1214/25 -f 609/1215/9 610/1216/9 611/1217/9 -f 612/1218/8 608/1219/8 610/1220/8 -f 611/1221/6 608/1222/6 607/1223/6 -f 613/1224/26 612/1225/26 609/1226/26 -f 614/1227/124 615/1228/124 616/1229/124 -f 617/1230/125 618/1231/125 619/1232/125 -f 618/1233/126 620/1234/126 619/1235/126 -f 621/1236/127 620/1237/127 622/1238/127 -f 616/1239/128 617/1240/128 614/1241/128 -f 623/1242/9 621/1243/9 624/1244/9 -f 625/1245/129 626/1246/129 615/1228/129 -f 621/1247/130 627/1248/130 628/1249/130 -f 629/1250/131 623/1251/131 626/1252/131 -f 625/1253/25 614/1254/25 617/1255/25 -f 630/1256/26 631/1257/26 632/1258/26 -f 630/1259/132 633/1260/132 634/1261/132 -f 635/1262/133 636/1263/133 631/1264/133 -f 637/1265/134 633/1266/134 638/1267/134 -f 636/1268/135 639/1269/135 640/1270/135 -f 641/1271/136 639/1272/136 642/1273/136 -f 638/1274/137 643/1275/137 637/1276/137 -f 642/1277/138 644/1278/138 641/1279/138 -f 645/1280/139 646/1281/139 647/1282/139 -f 648/1283/140 649/1284/140 646/1285/140 -f 650/1286/141 651/1287/141 652/1288/141 -f 649/1289/9 641/1290/9 644/1291/9 -f 653/1292/142 647/1293/142 654/1294/142 -f 651/1295/25 642/1296/25 643/1297/25 -f 652/1298/143 655/1299/143 650/1300/143 -f 654/1301/144 656/1302/144 653/1303/144 -f 657/1304/145 658/1305/145 656/1306/145 -f 659/1307/146 660/1308/146 658/1309/146 -f 661/1310/147 662/1311/147 663/1312/147 -f 664/1313/9 665/1314/9 666/1315/9 -f 667/1316/6 668/1317/6 669/1318/6 -f 670/1319/148 667/1320/148 669/1321/148 -f 671/1322/149 672/1323/149 673/1324/149 -f 666/1325/150 670/1326/150 674/1327/150 -f 663/1328/25 671/1329/25 675/1330/25 -f 676/1331/151 664/1332/151 677/1333/151 -f 678/1334/149 677/1335/149 679/1336/149 -f 680/1337/150 681/1338/150 682/1339/150 -f 683/1340/148 684/1341/148 685/1342/148 -f 685/1343/6 684/1344/6 686/1345/6 -f 687/1346/6 669/1318/6 668/1347/6 -f 674/1348/152 679/1349/152 666/1350/152 -f 662/1351/151 672/1352/151 688/1353/151 -f 680/1354/152 675/1355/152 671/1356/152 -f 689/1357/147 665/1358/147 664/1359/147 -f 689/1360/25 678/1361/25 674/1362/25 -f 690/1363/153 681/1364/9 691/1365/154 -f 587/1366/2 583/1367/2 581/1368/2 -f 613/1369/2 611/1370/2 607/1371/2 -f 692/1372/25 589/1373/25 592/1374/25 -f 692/1372/25 595/1375/25 693/1376/25 -f 693/1376/25 603/1377/25 694/1378/25 -f 599/1201/25 589/1379/25 695/1380/25 -f 599/1201/25 696/1381/25 604/1382/25 -f 601/1203/9 603/1210/25 696/1381/25 -f 697/1383/25 698/1384/25 699/1385/25 -f 694/1378/120 700/1386/120 693/1376/120 -f 692/1372/114 699/1385/114 695/1387/114 -f 601/1203/118 697/1388/118 694/1389/118 -f 695/1380/155 698/1390/155 599/1201/155 -f 693/1376/117 701/1391/117 692/1372/117 -f 702/1392/9 591/1393/9 593/1394/9 -f 703/1395/9 704/1396/9 594/1397/9 -f 703/1398/9 591/1190/9 705/1399/9 -f 598/1200/25 593/1394/9 605/1400/9 -f 598/1200/25 602/1211/9 596/1198/9 -f 706/1401/9 602/1402/9 704/1396/9 -f 707/1403/9 708/1404/9 709/1405/9 -f 705/1406/114 710/1407/114 703/1395/114 -f 702/1392/156 707/1408/156 705/1409/156 -f 706/1401/120 709/1405/120 596/1410/120 -f 598/1200/157 708/1411/157 702/1392/157 -f 703/1395/117 711/1412/117 706/1401/117 -f 595/1197/158 700/1413/158 701/1414/158 -f 589/1415/159 592/1416/159 701/1417/159 -f 603/1418/160 697/1419/160 700/1420/160 -f 600/1421/161 697/1422/161 603/1423/161 -f 604/1424/162 600/1425/162 696/1426/162 -f 589/1427/163 698/1428/164 600/1429/165 -f 602/1204/166 704/1430/166 711/1431/166 -f 602/1432/167 709/1433/167 597/1434/167 -f 593/1435/168 605/1436/168 597/1437/168 -f 597/1438/169 708/1439/170 579/1440/171 -f 710/1441/172 594/1442/173 579/1443/174 -f 710/1444/175 711/1445/175 704/1446/175 -f 712/1447/25 575/1177/25 558/1176/25 -f 712/1447/25 560/1448/25 713/1449/25 -f 714/1450/25 566/1451/25 715/1452/25 -f 716/1453/25 566/1451/25 717/1454/25 -f 714/1450/25 560/1448/25 564/1455/25 -f 718/1456/25 575/1177/25 719/1457/25 -f 563/1156/25 577/1458/25 561/1154/25 -f 718/1456/25 577/1458/25 576/1459/25 -f 716/1453/25 572/1460/25 563/1156/25 -f 720/1461/25 721/1462/25 562/1463/25 -f 716/1453/108 722/1464/108 715/1452/108 -f 712/1447/112 723/1465/112 719/1457/112 -f 718/1456/111 724/1466/111 561/1154/111 -f 714/1450/106 721/1467/106 713/1449/106 -f 713/1449/104 720/1468/104 712/1447/104 -f 563/1156/109 725/1469/109 716/1453/109 -f 719/1457/110 726/1470/110 718/1456/110 -f 715/1452/107 727/1471/107 714/1450/107 -f 728/1472/9 579/1175/9 729/1473/9 -f 728/1472/9 559/1474/9 730/1475/9 -f 571/1166/9 567/1476/9 565/1477/9 -f 731/1478/9 567/1476/9 732/1479/9 -f 571/1166/9 559/1474/9 569/1164/9 -f 733/1480/9 579/1175/9 574/1481/9 -f 734/1482/9 578/1483/9 573/1484/9 -f 733/1480/9 578/1483/9 735/1485/9 -f 731/1478/9 573/1484/9 568/1486/9 -f 736/1487/9 737/1488/9 738/1489/9 -f 728/1472/104 738/1490/104 569/1164/104 -f 731/1478/109 736/1491/109 734/1482/109 -f 733/1480/110 739/1492/110 729/1473/110 -f 571/1166/107 737/1493/107 732/1479/107 -f 734/1482/105 740/1494/105 735/1485/105 -f 732/1479/108 741/1495/108 731/1478/108 -f 729/1473/112 742/1496/112 728/1472/112 -f 735/1485/111 743/1497/111 733/1480/111 -f 567/1161/176 565/1159/176 570/1498/176 -f 567/1499/177 737/1500/177 741/1501/177 -f 741/1502/178 736/1503/178 573/1504/178 -f 736/1505/179 740/1506/179 578/1507/179 -f 578/1507/180 740/1506/180 743/1508/180 -f 743/1508/181 739/1509/181 579/1510/181 -f 742/1511/182 730/1512/182 579/1510/182 -f 742/1511/183 738/1513/183 559/1514/183 -f 559/1514/184 738/1513/184 570/1515/184 -f 566/1163/185 717/1516/185 725/1517/185 -f 566/1518/186 722/1519/186 727/1520/186 -f 727/1520/187 721/1521/187 560/1522/187 -f 720/1523/188 558/1524/188 560/1522/188 -f 575/1525/189 558/1524/189 720/1523/189 -f 575/1525/190 723/1526/190 726/1527/190 -f 726/1527/191 724/1528/191 577/1529/191 -f 577/1529/192 724/1528/192 562/1530/192 -f 572/1531/193 562/1530/193 725/1532/193 -f 583/1533/113 582/1534/113 581/1535/113 -f 744/1536/194 580/1537/26 745/1538/194 -f 745/1539/25 582/1180/25 590/1540/25 -f 604/1541/25 590/1540/25 589/1542/25 -f 593/1543/195 745/1544/195 604/1545/195 -f 746/1546/113 590/1189/113 582/1534/113 -f 747/1547/196 748/1548/197 749/1549/197 -f 749/1550/198 746/1551/9 747/1552/9 -f 750/1553/9 744/1554/199 751/1555/200 -f 752/1556/9 753/1557/9 754/1558/201 -f 754/1559/202 755/1560/202 756/1561/202 -f 750/1562/203 752/1563/203 585/1564/203 -f 751/1565/6 757/1566/6 750/1562/6 -f 585/1564/203 758/1567/203 747/1547/203 -f 759/1568/204 753/1569/205 751/1565/206 -f 758/1570/9 754/1571/201 748/1572/207 -f 755/1560/208 760/1573/209 756/1561/210 -f 749/1549/211 760/1573/211 761/1574/211 -f 754/1559/201 760/1573/212 748/1548/207 -f 751/1575/200 744/1576/199 755/1577/213 -f 558/1151/104 730/1578/104 559/1152/104 -f 561/1154/105 724/1466/105 562/1155/105 -f 564/1157/106 560/1579/106 559/1158/106 -f 566/1160/107 564/1157/107 565/1159/107 -f 568/1162/108 717/1516/108 566/1163/108 -f 569/1164/106 738/1490/106 570/1165/106 -f 572/1167/109 717/1516/109 568/1162/109 -f 574/1169/110 579/1580/110 575/1170/110 -f 573/1168/105 578/1173/105 577/1172/105 -f 578/1173/111 574/1581/111 576/1174/111 -f 579/1175/112 730/1475/112 558/1176/112 -f 580/1178/25 587/1582/25 581/1179/25 -f 586/1583/9 750/1584/9 584/1585/9 -f 750/1584/9 585/1586/9 584/1585/9 -f 585/1586/9 747/1587/9 583/1588/9 -f 747/1587/9 746/1589/9 583/1588/9 -f 586/1184/26 584/1590/26 587/1185/26 -f 588/1187/113 591/1591/113 589/1188/113 -f 591/1190/114 594/1196/114 592/1191/114 -f 589/1193/115 593/1195/115 604/1592/214 -f 594/1196/117 704/1430/117 595/1197/117 -f 596/1198/118 709/1593/118 597/1199/118 -f 599/1201/119 698/1390/119 600/1202/119 -f 595/1197/120 704/1430/120 602/1204/120 -f 604/1206/121 696/1594/215 605/1207/122 -f 605/1209/118 696/1381/118 603/1210/118 -f 606/1212/25 613/1595/25 607/1213/25 -f 609/1215/9 612/1596/9 610/1216/9 -f 612/1218/8 606/1597/8 608/1219/8 -f 611/1221/6 610/1598/6 608/1222/6 -f 613/1224/26 606/1599/26 612/1225/26 -f 614/1227/124 625/1245/124 615/1228/124 -f 617/1230/125 624/1600/125 618/1231/125 -f 618/1233/126 622/1601/126 620/1234/126 -f 621/1236/127 628/1602/127 620/1237/127 -f 616/1239/128 624/1603/128 617/1240/128 -f 622/1604/9 618/1605/9 624/1244/9 -f 624/1244/9 616/1606/9 615/1607/9 -f 615/1607/9 626/1608/9 623/1242/9 -f 621/1243/9 622/1604/9 624/1244/9 -f 615/1607/9 623/1242/9 624/1244/9 -f 625/1245/129 629/1609/129 626/1246/129 -f 621/1247/130 623/1610/130 627/1248/130 -f 629/1250/131 627/1611/131 623/1251/131 -f 619/1612/25 620/1613/25 617/1255/25 -f 620/1613/25 628/1614/25 617/1255/25 -f 628/1614/25 627/1615/25 617/1255/25 -f 627/1615/25 629/1616/25 625/1253/25 -f 617/1255/25 627/1615/25 625/1253/25 -f 630/1256/26 635/1617/26 631/1257/26 -f 630/1259/132 632/1618/132 633/1260/132 -f 635/1262/133 762/1619/133 636/1263/133 -f 637/1265/134 634/1620/134 633/1266/134 -f 636/1268/135 762/1621/135 639/1269/135 -f 641/1271/136 640/1622/136 639/1272/136 -f 638/1274/137 649/1623/137 643/1275/137 -f 642/1277/138 651/1624/138 644/1278/138 -f 645/1280/139 648/1625/139 646/1281/139 -f 648/1283/140 643/1626/140 649/1284/140 -f 650/1286/141 644/1627/141 651/1287/141 -f 647/1628/9 646/1629/9 650/1630/9 -f 646/1629/9 649/1289/9 644/1291/9 -f 649/1289/9 638/1631/9 641/1290/9 -f 638/1631/9 633/1632/9 641/1290/9 -f 633/1632/9 632/1633/9 631/1634/9 -f 633/1632/9 631/1634/9 636/1635/9 -f 659/1636/9 657/1637/9 655/1638/9 -f 657/1637/9 654/1639/9 655/1638/9 -f 633/1632/9 636/1635/9 640/1640/9 -f 633/1632/9 640/1640/9 641/1290/9 -f 655/1638/9 654/1639/9 647/1628/9 -f 650/1630/9 655/1638/9 647/1628/9 -f 644/1291/9 650/1630/9 646/1629/9 -f 653/1292/142 645/1641/142 647/1293/142 -f 653/1642/25 656/1643/25 660/1644/25 -f 656/1643/25 658/1645/25 660/1644/25 -f 643/1297/25 648/1646/25 651/1295/25 -f 648/1646/25 645/1647/25 652/1648/25 -f 634/1649/25 637/1650/25 642/1296/25 -f 637/1650/25 643/1297/25 642/1296/25 -f 635/1651/25 630/1652/25 634/1649/25 -f 762/1653/25 635/1651/25 634/1649/25 -f 645/1647/25 653/1642/25 660/1644/25 -f 645/1647/25 660/1644/25 652/1648/25 -f 639/1654/25 762/1653/25 634/1649/25 -f 642/1296/25 639/1654/25 634/1649/25 -f 648/1646/25 652/1648/25 651/1295/25 -f 652/1298/143 660/1655/143 655/1299/143 -f 654/1301/144 657/1656/144 656/1302/144 -f 657/1304/145 659/1657/145 658/1305/145 -f 659/1307/146 655/1658/146 660/1308/146 -f 661/1310/147 686/1659/147 662/1311/147 -f 665/1314/9 667/1660/9 666/1315/9 -f 667/1660/9 763/1661/9 666/1315/9 -f 666/1315/9 679/1662/9 664/1313/9 -f 679/1662/9 677/1663/9 664/1313/9 -f 667/1316/6 665/1664/6 668/1317/6 -f 670/1319/148 763/1665/148 667/1320/148 -f 671/1322/149 688/1666/149 672/1323/149 -f 666/1325/150 763/1667/150 670/1326/150 -f 685/1668/25 661/1669/25 675/1330/25 -f 661/1669/25 663/1328/25 675/1330/25 -f 663/1328/25 688/1670/25 671/1329/25 -f 675/1330/25 683/1671/25 685/1668/25 -f 676/1331/151 689/1672/151 664/1332/151 -f 678/1334/149 676/1673/149 677/1335/149 -f 682/1339/150 683/1674/150 675/1675/150 -f 680/1337/150 691/1676/150 681/1338/150 -f 682/1339/150 675/1675/150 680/1337/150 -f 683/1340/148 682/1677/148 684/1341/148 -f 686/1345/6 661/1678/6 685/1343/6 -f 684/1344/6 690/1679/6 686/1345/6 -f 674/1348/152 678/1680/152 679/1349/152 -f 688/1353/151 663/1681/151 662/1351/151 -f 662/1351/151 764/1682/151 672/1352/151 -f 671/1356/152 673/1683/152 680/1354/152 -f 673/1683/152 765/1684/152 680/1354/152 -f 765/1684/152 691/1685/152 680/1354/152 -f 689/1357/147 668/1686/147 665/1358/147 -f 669/1687/25 668/1688/25 674/1362/25 -f 668/1688/25 689/1360/25 674/1362/25 -f 689/1360/25 676/1689/25 678/1361/25 -f 674/1362/25 670/1690/25 669/1687/25 -f 691/1365/154 765/1691/216 662/1692/217 -f 765/1691/216 764/1693/218 662/1692/217 -f 662/1692/217 686/1694/219 691/1365/154 -f 686/1694/219 690/1363/153 691/1365/154 -f 587/1366/2 584/1695/2 583/1367/2 -f 613/1369/2 609/1696/2 611/1370/2 -f 692/1372/25 695/1387/25 589/1373/25 -f 692/1697/25 592/1191/25 595/1197/25 -f 693/1376/25 595/1375/25 603/1377/25 -f 599/1201/25 604/1382/25 589/1379/25 -f 599/1201/25 601/1203/9 696/1381/25 -f 601/1203/9 694/1389/25 603/1210/25 -f 699/1698/25 701/1414/25 700/1413/25 -f 697/1383/25 600/1699/25 698/1384/25 -f 699/1698/25 700/1413/25 697/1700/25 -f 694/1378/120 697/1383/120 700/1386/120 -f 692/1372/114 701/1391/114 699/1385/114 -f 601/1203/118 600/1202/118 697/1388/118 -f 695/1380/155 699/1701/155 698/1390/155 -f 693/1702/117 700/1413/117 701/1414/117 -f 702/1392/9 705/1409/9 591/1393/9 -f 703/1395/9 706/1401/9 704/1396/9 -f 703/1398/9 594/1196/9 591/1190/9 -f 598/1200/25 702/1392/9 593/1394/9 -f 598/1200/25 605/1400/9 602/1211/9 -f 706/1401/9 596/1410/9 602/1402/9 -f 708/1404/9 597/1703/9 709/1405/9 -f 709/1704/9 711/1431/9 707/1705/9 -f 711/1431/9 710/1706/9 707/1705/9 -f 705/1399/114 707/1705/114 710/1706/114 -f 702/1392/156 708/1411/156 707/1408/156 -f 706/1401/120 711/1412/120 709/1405/120 -f 598/1200/157 597/1199/157 708/1411/157 -f 703/1395/117 710/1407/117 711/1412/117 -f 595/1197/158 701/1414/158 592/1191/158 -f 589/1415/159 701/1417/159 699/1707/159 -f 603/1418/160 700/1420/160 595/1708/160 -f 600/1421/161 603/1423/161 696/1709/161 -f 698/1428/164 589/1427/163 699/1710/220 -f 589/1427/163 600/1429/165 604/1711/221 -f 602/1204/222 711/1431/222 709/1704/222 -f 602/1432/167 597/1434/167 605/1712/167 -f 593/1713/223 597/1438/224 579/1440/225 -f 579/1440/171 708/1439/170 707/1714/226 -f 710/1441/172 579/1443/174 707/1715/227 -f 710/1441/175 704/1716/175 594/1442/175 -f 712/1447/25 719/1457/25 575/1177/25 -f 712/1447/25 558/1176/25 560/1448/25 -f 714/1450/25 564/1455/25 566/1451/25 -f 716/1453/25 715/1452/25 566/1451/25 -f 714/1450/25 713/1449/25 560/1448/25 -f 718/1456/25 576/1459/25 575/1177/25 -f 563/1156/25 572/1460/25 577/1458/25 -f 718/1456/25 561/1154/25 577/1458/25 -f 716/1453/25 717/1454/25 572/1460/25 -f 722/1717/25 725/1517/25 562/1463/25 -f 724/1718/25 726/1719/25 723/1720/25 -f 727/1721/25 722/1717/25 721/1462/25 -f 722/1717/25 562/1463/25 721/1462/25 -f 562/1463/25 724/1718/25 720/1461/25 -f 724/1718/25 723/1720/25 720/1461/25 -f 716/1453/108 725/1469/108 722/1464/108 -f 712/1447/112 720/1468/112 723/1465/112 -f 718/1456/111 726/1470/111 724/1466/111 -f 714/1450/106 727/1471/106 721/1467/106 -f 713/1449/104 721/1467/104 720/1468/104 -f 563/1156/109 562/1155/109 725/1469/109 -f 719/1457/110 723/1465/110 726/1470/110 -f 715/1452/107 722/1464/107 727/1471/107 -f 728/1472/9 730/1475/9 579/1175/9 -f 728/1472/9 569/1164/9 559/1474/9 -f 571/1166/9 732/1479/9 567/1476/9 -f 731/1478/9 568/1486/9 567/1476/9 -f 571/1166/9 565/1477/9 559/1474/9 -f 733/1480/9 729/1473/9 579/1175/9 -f 734/1482/9 735/1485/9 578/1483/9 -f 733/1480/9 574/1481/9 578/1483/9 -f 731/1478/9 734/1482/9 573/1484/9 -f 737/1488/9 570/1498/9 738/1489/9 -f 738/1489/9 742/1722/9 736/1487/9 -f 742/1722/9 739/1723/9 740/1724/9 -f 736/1487/9 742/1722/9 740/1724/9 -f 739/1723/9 743/1725/9 740/1724/9 -f 736/1487/9 741/1726/9 737/1488/9 -f 728/1472/104 742/1496/104 738/1490/104 -f 731/1478/109 741/1495/109 736/1491/109 -f 733/1480/110 743/1497/110 739/1492/110 -f 571/1166/107 570/1165/107 737/1493/107 -f 734/1482/105 736/1491/105 740/1494/105 -f 732/1479/108 737/1493/108 741/1495/108 -f 729/1473/112 739/1492/112 742/1496/112 -f 735/1485/111 740/1494/111 743/1497/111 -f 567/1161/176 570/1498/176 737/1488/176 -f 567/1499/177 741/1501/177 568/1727/177 -f 741/1502/178 573/1504/178 568/1728/178 -f 736/1505/179 578/1507/179 573/1729/179 -f 578/1507/180 743/1508/180 574/1730/180 -f 743/1508/181 579/1510/181 574/1730/181 -f 742/1511/182 579/1510/182 739/1509/182 -f 742/1511/183 559/1514/183 730/1512/183 -f 559/1514/184 570/1515/184 565/1731/184 -f 566/1163/185 725/1517/185 722/1717/185 -f 566/1518/186 727/1520/186 564/1732/186 -f 727/1520/187 560/1522/187 564/1732/187 -f 720/1523/188 560/1522/188 721/1521/188 -f 575/1525/189 720/1523/189 723/1526/189 -f 575/1525/190 726/1527/190 576/1733/190 -f 726/1527/191 577/1529/191 576/1733/191 -f 577/1529/192 562/1530/192 572/1531/192 -f 572/1531/193 725/1532/193 717/1734/193 -f 583/1533/113 746/1546/113 582/1534/113 -f 744/1536/194 586/1735/26 580/1537/26 -f 745/1539/25 580/1178/25 582/1180/25 -f 604/1541/25 745/1539/25 590/1540/25 -f 593/1543/194 744/1736/194 745/1544/194 -f 746/1546/113 588/1187/113 590/1189/113 -f 747/1547/196 758/1567/196 748/1548/197 -f 749/1737/198 588/1738/228 746/1739/9 -f 750/1740/9 586/1741/9 744/1742/199 -f 752/1556/9 757/1743/9 753/1557/9 -f 754/1559/202 759/1568/202 755/1560/202 -f 750/1562/203 757/1566/203 752/1563/203 -f 751/1565/6 753/1569/6 757/1566/6 -f 585/1564/203 752/1563/203 758/1567/203 -f 759/1568/204 754/1559/229 753/1569/205 -f 758/1570/9 752/1744/9 754/1571/201 -f 755/1560/208 761/1574/230 760/1573/209 -f 749/1549/211 748/1548/211 760/1573/211 -f 754/1559/201 756/1561/212 760/1573/212 -f 591/1745/231 588/1746/228 761/1747/232 -f 588/1746/228 749/1748/198 761/1747/232 -f 744/1576/199 593/1749/233 755/1577/213 -f 593/1749/233 591/1745/231 761/1747/232 -f 755/1577/213 593/1749/233 761/1747/232 -f 759/1750/234 751/1575/200 755/1577/213 -f 766/1751/235 767/1752/235 768/1753/235 -f 769/1754/236 770/1755/236 767/1752/236 -f 771/1756/237 772/1757/237 770/1755/237 -f 773/1758/238 774/1759/238 772/1757/238 -f 775/1760/239 776/1761/239 774/1759/239 -f 777/1762/240 778/1763/240 776/1761/240 -f 779/1764/241 780/1765/241 778/1763/241 -f 781/1766/242 782/1767/242 780/1765/242 -f 783/1768/243 784/1769/243 782/1767/243 -f 785/1770/244 786/1771/244 784/1769/244 -f 787/1772/245 788/1773/245 786/1771/245 -f 789/1774/246 790/1775/246 788/1773/246 -f 791/1776/247 792/1777/247 790/1775/247 -f 793/1778/248 794/1779/248 792/1777/248 -f 795/1780/249 796/1781/249 794/1779/249 -f 797/1782/250 798/1783/250 796/1781/250 -f 799/1784/251 800/1785/251 798/1783/251 -f 801/1786/252 802/1787/252 800/1785/252 -f 803/1788/253 804/1789/253 802/1787/253 -f 805/1790/254 806/1791/254 804/1789/254 -f 807/1792/255 808/1793/255 806/1791/255 -f 809/1794/256 810/1795/256 808/1793/256 -f 811/1796/257 812/1797/257 810/1795/257 -f 813/1798/258 814/1799/258 812/1797/258 -f 815/1800/251 816/1801/251 817/1802/251 -f 815/1800/2 769/1803/2 766/1804/2 -f 817/1802/2 771/1805/2 769/1803/2 -f 818/1806/2 771/1805/2 819/1807/2 -f 820/1808/2 773/1809/2 818/1806/2 -f 820/1808/2 777/1810/2 775/1811/2 -f 821/1812/2 779/1813/2 777/1810/2 -f 822/1814/2 779/1813/2 823/1815/2 -f 824/1816/2 781/1817/2 822/1814/2 -f 824/1816/2 785/1818/2 783/1819/2 -f 825/1820/2 787/1821/2 785/1818/2 -f 826/1822/2 787/1821/2 827/1823/2 -f 828/1824/2 789/1825/2 826/1822/2 -f 828/1824/2 793/1826/2 791/1827/2 -f 829/1828/2 795/1829/2 793/1826/2 -f 830/1830/2 795/1829/2 831/1831/2 -f 832/1832/2 797/1833/2 830/1830/2 -f 832/1832/2 801/1834/2 799/1835/2 -f 833/1836/2 803/1837/2 801/1834/2 -f 834/1838/2 803/1837/2 835/1839/2 -f 836/1840/2 805/1841/2 834/1838/2 -f 836/1840/2 809/1842/2 807/1843/2 -f 837/1844/2 811/1845/2 809/1842/2 -f 838/1846/2 813/1847/2 811/1845/2 -f 839/1848/2 840/1849/2 813/1847/2 -f 841/1850/246 842/1851/246 843/1852/246 -f 831/1831/259 844/1853/259 830/1830/259 -f 817/1802/252 845/1854/252 819/1807/252 -f 830/1830/260 846/1855/260 832/1832/260 -f 819/1807/253 847/1856/253 818/1806/253 -f 832/1832/235 848/1857/235 833/1836/235 -f 818/1806/254 849/1858/254 820/1808/254 -f 833/1836/236 850/1859/236 835/1839/236 -f 820/1808/255 851/1860/255 821/1812/255 -f 835/1839/237 852/1861/237 834/1838/237 -f 821/1812/256 853/1862/256 823/1815/256 -f 834/1838/238 854/1863/238 836/1840/238 -f 823/1815/257 855/1864/257 822/1814/257 -f 836/1840/239 856/1865/239 837/1844/239 -f 822/1814/258 857/1866/258 824/1816/258 -f 837/1844/240 858/1867/240 838/1846/240 -f 824/1816/261 859/1868/261 825/1820/261 -f 838/1846/241 860/1869/241 839/1848/241 -f 825/1820/262 861/1870/262 827/1823/262 -f 843/1852/247 862/1871/247 863/1872/247 -f 839/1848/242 864/1873/242 865/1874/242 -f 827/1823/263 866/1875/263 826/1822/263 -f 863/1872/248 867/1876/248 868/1877/248 -f 865/1874/243 869/1878/243 870/1879/243 -f 826/1822/264 871/1880/264 828/1824/264 -f 868/1877/249 872/1881/249 873/1882/249 -f 870/1879/244 874/1883/244 875/1884/244 -f 828/1824/265 876/1885/265 829/1828/265 -f 873/1882/250 877/1886/250 815/1800/250 -f 875/1884/245 878/1887/245 841/1850/245 -f 829/1828/266 879/1888/266 831/1831/266 -f 880/1889/8 768/1890/267 767/1891/8 -f 880/1889/8 770/1892/8 881/1893/8 -f 882/1894/8 770/1892/8 772/1895/8 -f 882/1894/8 774/1896/8 883/1897/8 -f 884/1898/8 774/1896/8 776/1899/8 -f 884/1898/8 778/1900/8 885/1901/8 -f 885/1901/8 780/1902/8 886/1903/8 -f 886/1903/8 782/1904/8 887/1905/8 -f 888/1906/8 782/1904/8 784/1907/8 -f 888/1906/8 786/1908/8 889/1909/8 -f 890/1910/8 786/1908/8 788/1911/8 -f 890/1910/8 790/1912/8 891/1913/8 -f 892/1914/8 790/1912/8 792/1915/8 -f 892/1914/8 794/1916/8 893/1917/8 -f 894/1918/8 794/1916/8 796/1919/8 -f 894/1918/8 798/1920/8 895/1921/8 -f 896/1922/8 798/1920/8 800/1923/8 -f 896/1922/8 802/1924/8 897/1925/8 -f 898/1926/8 802/1924/8 804/1927/8 -f 898/1926/8 806/1928/8 899/1929/8 -f 900/1930/8 806/1928/8 808/1931/8 -f 900/1930/8 810/1932/8 901/1933/8 -f 902/1934/8 810/1932/8 812/1935/8 -f 902/1934/8 814/1936/268 903/1937/8 -f 904/1938/25 905/1939/25 906/1940/25 -f 907/1941/2 908/1942/2 905/1939/2 -f 909/1943/9 910/1944/9 908/1942/9 -f 911/1945/8 906/1946/8 910/1944/8 -f 908/1942/6 906/1947/6 905/1948/6 -f 766/1751/269 912/1949/270 913/1950/269 -f 814/1799/271 914/1951/261 915/1952/261 -f 863/1872/2 916/1953/2 843/1852/2 -f 868/1877/2 917/1954/2 863/1872/2 -f 873/1882/2 918/1955/2 868/1877/2 -f 815/1800/2 913/1956/2 919/1957/2 -f 865/1874/2 920/1958/2 914/1959/2 -f 870/1879/2 921/1960/2 920/1958/2 -f 875/1884/2 922/1961/2 921/1960/2 -f 841/1850/2 916/1953/2 922/1961/2 -f 923/1962/8 924/1963/8 925/1964/8 -f 926/1965/8 925/1964/8 927/1966/8 -f 928/1967/8 927/1966/8 929/1968/8 -f 930/1969/8 928/1967/8 929/1968/8 -f 903/1937/8 814/1936/268 915/1970/272 -f 931/1971/8 932/1972/8 933/1973/8 -f 934/1974/8 935/1975/8 931/1971/8 -f 924/1963/8 936/1976/8 934/1974/8 -f 912/1977/26 911/1945/26 909/1943/26 -f 907/1978/26 915/1979/26 914/1980/26 -f 766/1751/235 769/1754/235 767/1752/235 -f 769/1754/236 771/1756/236 770/1755/236 -f 771/1756/237 773/1758/237 772/1757/237 -f 773/1758/238 775/1760/238 774/1759/238 -f 775/1760/239 777/1762/239 776/1761/239 -f 777/1762/240 779/1764/240 778/1763/240 -f 779/1764/241 781/1766/241 780/1765/241 -f 781/1766/242 783/1768/242 782/1767/242 -f 783/1768/243 785/1770/243 784/1769/243 -f 785/1770/244 787/1772/244 786/1771/244 -f 787/1772/245 789/1774/245 788/1773/245 -f 789/1774/246 791/1776/246 790/1775/246 -f 791/1776/247 793/1778/247 792/1777/247 -f 793/1778/248 795/1780/248 794/1779/248 -f 795/1780/249 797/1782/249 796/1781/249 -f 797/1782/250 799/1784/250 798/1783/250 -f 799/1784/251 801/1786/251 800/1785/251 -f 801/1786/252 803/1788/252 802/1787/252 -f 803/1788/253 805/1790/253 804/1789/253 -f 805/1790/254 807/1792/254 806/1791/254 -f 807/1792/255 809/1794/255 808/1793/255 -f 809/1794/256 811/1796/256 810/1795/256 -f 811/1796/257 813/1798/257 812/1797/257 -f 813/1798/258 840/1981/258 814/1799/258 -f 815/1800/251 877/1886/251 816/1801/251 -f 815/1800/2 817/1802/2 769/1803/2 -f 817/1802/2 819/1807/2 771/1805/2 -f 818/1806/2 773/1809/2 771/1805/2 -f 820/1808/2 775/1811/2 773/1809/2 -f 820/1808/2 821/1812/2 777/1810/2 -f 821/1812/2 823/1815/2 779/1813/2 -f 822/1814/2 781/1817/2 779/1813/2 -f 824/1816/2 783/1819/2 781/1817/2 -f 824/1816/2 825/1820/2 785/1818/2 -f 825/1820/2 827/1823/2 787/1821/2 -f 826/1822/2 789/1825/2 787/1821/2 -f 828/1824/2 791/1827/2 789/1825/2 -f 828/1824/2 829/1828/2 793/1826/2 -f 829/1828/2 831/1831/2 795/1829/2 -f 830/1830/2 797/1833/2 795/1829/2 -f 832/1832/2 799/1835/2 797/1833/2 -f 832/1832/2 833/1836/2 801/1834/2 -f 833/1836/2 835/1839/2 803/1837/2 -f 834/1838/2 805/1841/2 803/1837/2 -f 836/1840/2 807/1843/2 805/1841/2 -f 836/1840/2 837/1844/2 809/1842/2 -f 837/1844/2 838/1846/2 811/1845/2 -f 838/1846/2 839/1848/2 813/1847/2 -f 839/1848/2 865/1874/2 840/1849/2 -f 841/1850/246 878/1887/246 842/1851/246 -f 831/1831/259 879/1888/259 844/1853/259 -f 817/1802/252 816/1801/252 845/1854/252 -f 830/1830/260 844/1853/260 846/1855/260 -f 819/1807/253 845/1854/253 847/1856/253 -f 832/1832/235 846/1855/235 848/1857/235 -f 818/1806/254 847/1856/254 849/1858/254 -f 833/1836/236 848/1857/236 850/1859/236 -f 820/1808/255 849/1858/255 851/1860/255 -f 835/1839/237 850/1859/237 852/1861/237 -f 821/1812/256 851/1860/256 853/1862/256 -f 834/1838/238 852/1861/238 854/1863/238 -f 823/1815/257 853/1862/257 855/1864/257 -f 836/1840/239 854/1863/239 856/1865/239 -f 822/1814/258 855/1864/258 857/1866/258 -f 837/1844/240 856/1865/240 858/1867/240 -f 824/1816/261 857/1866/261 859/1868/261 -f 838/1846/241 858/1867/241 860/1869/241 -f 825/1820/262 859/1868/262 861/1870/262 -f 843/1852/247 842/1851/247 862/1871/247 -f 839/1848/242 860/1869/242 864/1873/242 -f 827/1823/263 861/1870/263 866/1875/263 -f 863/1872/248 862/1871/248 867/1876/248 -f 865/1874/243 864/1873/243 869/1878/243 -f 826/1822/264 866/1875/264 871/1880/264 -f 868/1877/249 867/1876/249 872/1881/249 -f 870/1879/244 869/1878/244 874/1883/244 -f 828/1824/265 871/1880/265 876/1885/265 -f 873/1882/250 872/1881/250 877/1886/250 -f 875/1884/245 874/1883/245 878/1887/245 -f 829/1828/266 876/1885/266 879/1888/266 -f 880/1889/8 930/1969/8 768/1890/267 -f 880/1889/8 767/1891/8 770/1892/8 -f 882/1894/8 881/1893/8 770/1892/8 -f 882/1894/8 772/1895/8 774/1896/8 -f 884/1898/8 883/1897/8 774/1896/8 -f 884/1898/8 776/1899/8 778/1900/8 -f 885/1901/8 778/1900/8 780/1902/8 -f 886/1903/8 780/1902/8 782/1904/8 -f 888/1906/8 887/1905/8 782/1904/8 -f 888/1906/8 784/1907/8 786/1908/8 -f 890/1910/8 889/1909/8 786/1908/8 -f 890/1910/8 788/1911/8 790/1912/8 -f 892/1914/8 891/1913/8 790/1912/8 -f 892/1914/8 792/1915/8 794/1916/8 -f 894/1918/8 893/1917/8 794/1916/8 -f 894/1918/8 796/1919/8 798/1920/8 -f 896/1922/8 895/1921/8 798/1920/8 -f 896/1922/8 800/1923/8 802/1924/8 -f 898/1926/8 897/1925/8 802/1924/8 -f 898/1926/8 804/1927/8 806/1928/8 -f 900/1930/8 899/1929/8 806/1928/8 -f 900/1930/8 808/1931/8 810/1932/8 -f 902/1934/8 901/1933/8 810/1932/8 -f 902/1934/8 812/1935/8 814/1936/268 -f 904/1938/25 907/1941/25 905/1939/25 -f 907/1941/2 909/1943/2 908/1942/2 -f 909/1943/9 911/1945/9 910/1944/9 -f 911/1945/8 904/1982/8 906/1946/8 -f 908/1942/6 910/1944/6 906/1947/6 -f 766/1751/269 768/1753/270 912/1949/270 -f 814/1799/271 840/1981/261 914/1951/261 -f 863/1872/2 917/1954/2 916/1953/2 -f 868/1877/2 918/1955/2 917/1954/2 -f 873/1882/2 919/1957/2 918/1955/2 -f 919/1957/2 873/1882/2 815/1800/2 -f 815/1800/2 766/1804/2 913/1956/2 -f 914/1959/2 840/1849/2 865/1874/2 -f 865/1874/2 870/1879/2 920/1958/2 -f 870/1879/2 875/1884/2 921/1960/2 -f 875/1884/2 841/1850/2 922/1961/2 -f 841/1850/2 843/1852/2 916/1953/2 -f 923/1962/8 937/1983/8 924/1963/8 -f 926/1965/8 923/1962/8 925/1964/8 -f 928/1967/8 926/1965/8 927/1966/8 -f 929/1968/8 912/1984/273 930/1969/8 -f 912/1984/273 768/1890/267 930/1969/8 -f 915/1970/272 933/1973/8 903/1937/8 -f 933/1973/8 932/1972/8 903/1937/8 -f 931/1971/8 935/1975/8 932/1972/8 -f 934/1974/8 936/1976/8 935/1975/8 -f 924/1963/8 937/1983/8 936/1976/8 -f 933/1985/26 915/1979/26 904/1986/26 -f 909/1943/26 907/1978/26 916/1987/26 -f 907/1978/26 914/1980/26 920/1988/26 -f 920/1988/26 921/1989/26 907/1978/26 -f 921/1989/26 922/1990/26 907/1978/26 -f 907/1978/26 922/1990/26 916/1987/26 -f 933/1985/26 904/1986/26 931/1991/26 -f 904/1986/26 911/1945/26 924/1992/26 -f 931/1991/26 904/1986/26 934/1993/26 -f 924/1992/26 934/1993/26 904/1986/26 -f 916/1987/26 917/1994/26 909/1943/26 -f 917/1994/26 918/1995/26 909/1943/26 -f 929/1996/26 927/1997/26 911/1945/26 -f 927/1997/26 925/1998/26 911/1945/26 -f 925/1998/26 924/1992/26 911/1945/26 -f 918/1995/26 919/1999/26 909/1943/26 -f 919/1999/26 913/2000/26 909/1943/26 -f 912/1977/26 929/1996/26 911/1945/26 -f 913/2000/26 912/1977/26 909/1943/26 -f 907/1978/26 904/1986/26 915/1979/26 -f 938/2001/274 939/2002/274 940/2003/274 -f 939/2002/275 941/2004/275 940/2003/275 -f 942/2005/276 943/2006/276 941/2004/276 -f 944/2007/277 938/2008/277 943/2006/277 -f 941/2004/6 938/2009/6 940/2010/6 -f 939/2011/26 944/2007/26 942/2005/26 -f 945/2012/278 946/2013/278 947/2014/278 -f 946/2013/279 948/2015/279 947/2014/279 -f 949/2016/280 950/2017/280 948/2015/280 -f 951/2018/281 945/2019/282 950/2020/282 -f 952/2021/6 953/2022/6 954/2023/6 -f 946/2024/26 951/2025/26 949/2016/26 -f 950/2017/282 953/2026/282 955/2027/282 -f 948/2015/280 955/2027/280 952/2021/280 -f 947/2014/279 952/2021/279 954/2028/279 -f 953/2029/278 947/2014/278 954/2028/278 -f 956/2030/283 957/2031/283 958/2032/283 -f 958/2032/284 959/2033/284 960/2034/284 -f 959/2033/285 961/2035/285 960/2034/286 -f 962/2036/287 956/2037/287 961/2035/287 -f 960/2034/288 956/2038/288 958/2039/288 -f 957/2040/289 962/2036/289 959/2033/289 -f 963/2041/290 964/2042/290 965/2043/290 -f 964/2042/291 966/2044/291 965/2043/291 -f 967/2045/292 968/2046/292 966/2044/292 -f 969/2047/293 963/2048/293 968/2046/293 -f 966/2044/294 963/2049/294 965/2050/294 -f 964/2051/295 969/2047/295 967/2045/295 -f 938/2001/274 970/2052/274 939/2002/274 -f 939/2002/275 942/2005/275 941/2004/275 -f 942/2005/276 944/2007/276 943/2006/276 -f 944/2007/277 970/2053/277 938/2008/277 -f 941/2004/6 943/2006/6 938/2009/6 -f 939/2011/26 970/2054/26 944/2007/26 -f 945/2012/278 971/2055/278 946/2013/278 -f 946/2013/279 949/2016/279 948/2015/279 -f 949/2016/280 951/2025/280 950/2017/280 -f 951/2018/281 971/2056/281 945/2019/282 -f 952/2021/6 955/2027/6 953/2022/6 -f 946/2024/26 971/2057/26 951/2025/26 -f 950/2017/282 945/2058/282 953/2026/282 -f 948/2015/280 950/2017/280 955/2027/280 -f 947/2014/279 948/2015/279 952/2021/279 -f 953/2029/278 945/2012/278 947/2014/278 -f 956/2030/283 972/2059/283 957/2031/283 -f 958/2032/284 957/2031/284 959/2033/284 -f 959/2033/285 962/2036/285 961/2035/285 -f 962/2036/287 972/2060/287 956/2037/287 -f 960/2034/288 961/2035/288 956/2038/288 -f 957/2040/289 972/2061/289 962/2036/289 -f 963/2041/290 973/2062/290 964/2042/290 -f 964/2042/291 967/2045/291 966/2044/291 -f 967/2045/292 969/2047/292 968/2046/292 -f 969/2047/293 973/2063/293 963/2048/293 -f 966/2044/294 968/2046/294 963/2049/294 -f 964/2051/295 973/2064/295 969/2047/295 -o Slide_Cylinder -v 1.272063 1.594606 -0.244676 -v 1.272063 1.368420 -0.338365 -v 1.272063 1.462109 -0.564550 -v 0.647653 0.965039 -0.742828 -v 0.711569 1.012017 5.211916 -v 0.647653 0.965039 5.211916 -v 0.711569 1.012017 -0.742828 -v 0.770475 1.088305 5.211916 -v 0.770475 1.088305 -0.742828 -v 0.822106 1.190971 5.211916 -v 0.822106 1.190971 -0.742828 -v 0.864478 1.316070 5.211916 -v 0.921900 1.774713 -0.742828 -v 0.915353 1.918690 3.212208 -v 0.921900 1.774713 3.711916 -v 0.915353 1.935767 -0.742828 -v 0.895964 2.073555 3.212208 -v 0.895964 2.090632 -0.742828 -v 0.864478 2.216279 3.212208 -v 0.864478 2.233356 -0.742828 -v 0.822106 2.341378 3.212208 -v 0.822106 2.358455 -0.742828 -v 0.770475 2.444044 3.212208 -v 0.770475 2.461121 -0.742828 -v 0.711569 2.520332 3.212208 -v 0.711569 2.537409 -0.742828 -v 0.647653 2.567310 3.212208 -v 0.904673 1.528358 -0.577728 -v 1.272063 1.494584 -0.574402 -v 0.900445 1.494584 -0.574402 -v 0.896379 1.462109 -0.564550 -v 1.272063 1.432180 -0.548553 -v 0.890093 1.432180 -0.548553 -v 0.895964 1.458794 -0.562778 -v 1.272063 1.405947 -0.527024 -v 0.884306 1.405947 -0.527024 -v 1.272063 1.384418 -0.500791 -v 0.879556 1.384418 -0.500791 -v 1.272063 1.368420 -0.470861 -v 0.876027 1.368420 -0.470861 -v 1.272063 1.358569 -0.438386 -v 0.873854 1.358569 -0.438386 -v 1.272063 1.355243 -0.404613 -v 0.873120 1.355243 -0.404613 -v 0.873854 1.358569 -0.370840 -v 1.272063 1.358569 -0.370840 -v 0.876027 1.368420 -0.338365 -v 0.879556 1.384418 -0.308436 -v 1.272063 1.384418 -0.308436 -v 0.884306 1.405947 -0.282203 -v 1.272063 1.405947 -0.282203 -v 0.890093 1.432180 -0.260674 -v 1.272063 1.432180 -0.260674 -v 0.896379 1.462109 -0.244676 -v 0.895964 1.458794 -0.246449 -v 1.272063 1.462109 -0.244676 -v 0.900445 1.494585 -0.234825 -v 1.272063 1.494585 -0.234825 -v 0.904673 1.528358 -0.231499 -v 1.272063 1.528358 -0.231499 -v 0.908902 1.562131 -0.234825 -v 1.272063 1.562131 -0.234825 -v 0.912967 1.594606 -0.244676 -v 1.272063 1.624535 -0.260674 -v 0.915795 1.624535 -0.260674 -v 0.915353 1.613659 -0.254860 -v 0.916861 1.650768 -0.282203 -v 1.272063 1.650768 -0.282203 -v 0.917736 1.672297 -0.308436 -v 1.272063 1.672297 -0.308436 -v 0.918387 1.688295 -0.338366 -v 1.272063 1.688295 -0.338366 -v 0.918787 1.698146 -0.370841 -v 1.272063 1.698146 -0.370841 -v 0.918922 1.701472 -0.404613 -v 1.272063 1.698146 -0.438387 -v 0.918787 1.698146 -0.438387 -v 1.272063 1.688294 -0.470862 -v 0.918387 1.688294 -0.470862 -v 1.272063 1.672297 -0.500791 -v 0.917736 1.672297 -0.500791 -v 1.272063 1.650768 -0.527024 -v 0.916861 1.650768 -0.527024 -v 1.272063 1.624535 -0.548553 -v 0.915795 1.624535 -0.548553 -v 1.272063 1.594605 -0.564551 -v 0.912967 1.594605 -0.564551 -v 0.915353 1.613659 -0.554366 -v 1.272063 1.562130 -0.574402 -v 0.908902 1.562130 -0.574402 -v 1.272063 1.528358 -0.577728 -v 0.864478 1.316070 -0.742828 -v 0.895964 1.458794 5.211916 -v 0.915353 1.613659 -0.742828 -v 1.272063 1.701472 -0.404613 -v 0.647653 2.584387 -0.742828 -v 0.895964 1.458794 -0.742828 -v 0.915353 1.613659 5.211916 -v 0.581182 0.949177 5.211916 -v 0.581182 0.949177 -0.742828 -v 0.581182 2.583172 3.212208 -v 0.581182 2.600249 -0.742828 +f 5/1/2 6/2/2 7/3/2 +f 6/2/7 8/6/7 7/3/7 +f 8/6/8 9/5/8 10/7/8 +f 7/3/6 10/8/6 5/9/6 +f 5/4/9 6/2/9 9/5/9 +f 10/6/10 11/10/11 12/7/12 +f 3/4/13 9/5/13 6/2/13 +f 2/2/14 11/6/14 3/3/14 +f 12/7/15 11/6/15 4/5/15 +f 13/11/16 12/8/16 1/9/16 +f 6/2/17 1/12/1 3/1/3 +f 10/6/18 12/8/19 13/13/20 +f 12/14/21 13/15/22 11/16/23 +f 14/1/2 15/2/2 16/3/2 +f 15/2/24 17/6/24 16/3/24 +f 17/6/8 18/5/8 19/7/8 +f 14/9/25 17/6/25 19/8/25 +f 14/4/26 18/5/26 15/2/26 +f 20/1/2 21/2/2 22/3/2 +f 21/2/27 23/6/27 22/3/27 +f 23/6/8 24/5/8 25/7/8 +f 22/3/26 25/8/26 20/9/26 +f 20/4/9 24/5/9 21/2/9 +f 26/1/1 27/2/2 28/3/3 +f 26/4/4 29/5/5 27/2/6 +f 30/1/2 31/2/2 32/3/2 +f 31/2/7 33/6/7 32/3/7 +f 33/6/8 34/5/8 35/7/8 +f 32/3/6 35/8/6 30/9/6 +f 30/4/9 31/2/9 34/5/9 +f 35/6/10 36/10/11 37/7/12 +f 28/4/13 34/5/13 31/2/13 +f 27/2/14 36/6/14 28/3/14 +f 37/7/15 36/6/15 29/5/15 +f 38/11/16 37/8/16 26/9/16 +f 31/2/17 26/12/1 28/1/3 +f 35/6/18 37/8/28 38/13/29 +f 37/14/30 38/15/31 36/16/32 +f 39/1/1 40/2/2 41/3/3 +f 39/4/4 42/5/5 40/2/6 +f 43/1/2 44/2/2 45/3/2 +f 44/2/7 46/6/7 45/3/7 +f 46/6/8 47/5/8 48/7/8 +f 45/3/6 48/8/6 43/9/6 +f 43/4/9 44/2/9 47/5/9 +f 48/6/10 49/10/11 50/7/12 +f 41/4/13 47/5/13 44/2/13 +f 40/2/14 49/6/14 41/3/14 +f 50/7/15 49/6/15 42/5/15 +f 51/11/16 50/8/16 39/9/16 +f 44/2/17 39/12/1 41/1/3 +f 48/6/33 50/8/34 51/13/29 +f 50/14/30 51/15/31 49/16/32 +f 52/1/1 53/2/2 54/3/3 +f 52/4/4 55/5/5 53/2/6 +f 56/1/2 57/2/2 58/3/2 +f 57/2/7 59/6/7 58/3/7 +f 59/6/8 60/5/8 61/7/8 +f 58/3/6 61/8/6 56/9/6 +f 56/4/9 57/2/9 60/5/9 +f 61/6/10 62/10/11 63/7/12 +f 54/4/13 60/5/13 57/2/13 +f 53/2/14 62/6/14 54/3/14 +f 63/7/15 62/6/15 55/5/15 +f 64/11/16 63/8/16 52/9/16 +f 57/2/17 52/12/1 54/1/3 +f 61/6/18 63/8/28 64/13/29 +f 63/14/35 64/15/36 62/16/37 +f 65/1/1 66/2/2 67/3/3 +f 65/4/4 68/5/5 66/2/6 +f 69/1/2 70/2/2 71/3/2 +f 70/2/7 72/6/7 71/3/7 +f 72/6/8 73/5/8 74/7/8 +f 71/3/6 74/8/6 69/9/6 +f 69/4/9 70/2/9 73/5/9 +f 74/6/10 75/10/11 76/7/12 +f 67/4/13 73/5/13 70/2/13 +f 66/2/14 75/6/14 67/3/14 +f 76/7/15 75/6/15 68/5/15 +f 77/11/16 76/8/16 65/9/16 +f 70/2/17 65/12/1 67/1/3 +f 74/6/18 76/8/28 77/13/29 +f 76/14/35 77/15/36 75/16/37 +f 78/1/1 79/2/2 80/3/3 +f 78/4/4 81/5/5 79/2/6 +f 82/1/2 83/2/2 84/3/2 +f 83/2/7 85/6/7 84/3/7 +f 85/6/8 86/5/8 87/7/8 +f 84/3/6 87/8/6 82/9/6 +f 82/4/9 83/2/9 86/5/9 +f 87/6/10 88/10/11 89/7/12 +f 80/4/13 86/5/13 83/2/13 +f 79/2/14 88/6/14 80/3/14 +f 89/7/15 88/6/15 81/5/15 +f 90/11/38 89/8/38 78/9/38 +f 83/2/17 78/12/1 80/1/3 +f 87/6/18 89/8/19 90/13/20 +f 89/14/39 90/15/39 88/16/39 +f 91/1/1 92/2/2 93/3/3 +f 91/4/4 94/5/5 92/2/6 +f 95/1/2 96/2/2 97/3/2 +f 96/2/7 98/6/7 97/3/7 +f 98/6/8 99/5/8 100/7/8 +f 97/3/6 100/8/6 95/9/6 +f 95/4/9 96/2/9 99/5/9 +f 100/6/10 101/10/11 102/7/12 +f 93/4/13 99/5/13 96/2/13 +f 92/2/14 101/6/14 93/3/14 +f 102/7/15 101/6/15 94/5/15 +f 103/11/16 102/8/16 91/9/16 +f 96/2/17 91/12/1 93/1/3 +f 100/6/18 102/8/28 103/13/29 +f 102/14/40 103/15/41 101/16/42 +f 104/1/1 105/2/2 106/3/3 +f 104/4/4 107/5/5 105/2/6 +f 108/1/2 109/2/2 110/3/2 +f 109/2/7 111/6/7 110/3/7 +f 111/6/8 112/5/8 113/7/8 +f 110/3/6 113/8/6 108/9/6 +f 108/4/9 109/2/9 112/5/9 +f 113/6/10 114/10/11 115/7/12 +f 106/4/13 112/5/13 109/2/13 +f 105/2/14 114/6/14 106/3/14 +f 115/7/15 114/6/15 107/5/15 +f 116/11/16 115/8/16 104/9/16 +f 109/2/17 104/12/1 106/1/3 +f 113/6/33 115/8/28 116/13/29 +f 115/14/35 116/15/35 114/16/35 +f 117/1/1 118/2/2 119/3/3 +f 117/4/4 120/5/5 118/2/6 +f 121/1/2 122/2/2 123/3/2 +f 122/2/7 124/6/7 123/3/7 +f 124/6/8 125/5/8 126/7/8 +f 123/3/6 126/8/6 121/9/6 +f 121/4/9 122/2/9 125/5/9 +f 126/6/10 127/10/11 128/7/12 +f 119/4/13 125/5/13 122/2/13 +f 118/2/14 127/6/14 119/3/14 +f 128/7/15 127/6/15 120/5/15 +f 129/11/16 128/8/16 117/9/16 +f 122/2/17 117/12/1 119/1/3 +f 126/6/18 128/8/19 129/13/43 +f 128/14/44 127/16/44 129/15/44 +f 130/1/1 131/2/2 132/3/3 +f 130/4/4 133/5/5 131/2/6 +f 134/1/2 135/2/2 136/3/2 +f 135/2/7 137/6/7 136/3/7 +f 137/6/8 138/5/8 139/7/8 +f 136/3/6 139/8/6 134/9/6 +f 134/4/9 135/2/9 138/5/9 +f 139/6/10 140/10/11 141/7/12 +f 132/4/13 138/5/13 135/2/13 +f 131/2/14 140/6/14 132/3/14 +f 141/7/15 140/6/15 133/5/15 +f 142/11/38 141/8/38 130/9/38 +f 135/2/17 130/12/1 132/1/3 +f 139/6/18 141/8/45 142/13/20 +f 141/14/46 140/16/46 142/15/46 +f 143/1/1 144/2/2 145/3/3 +f 143/4/4 146/5/5 144/2/6 +f 147/1/2 148/2/2 149/3/2 +f 148/2/7 150/6/7 149/3/7 +f 150/6/8 151/5/8 152/7/8 +f 149/3/6 152/8/6 147/9/6 +f 147/4/9 148/2/9 151/5/9 +f 152/6/10 153/10/11 154/7/12 +f 145/4/13 151/5/13 148/2/13 +f 144/2/14 153/6/14 145/3/14 +f 154/7/15 153/6/15 146/5/15 +f 155/11/16 154/8/16 143/9/16 +f 148/2/17 143/12/1 145/1/3 +f 152/6/18 154/8/47 155/13/48 +f 154/14/49 153/16/49 155/15/49 +f 156/1/1 157/2/2 158/3/3 +f 156/4/4 159/5/5 157/2/6 +f 160/1/2 161/2/2 162/3/2 +f 161/2/7 163/6/7 162/3/7 +f 163/6/8 164/5/8 165/7/8 +f 162/3/6 165/8/6 160/9/6 +f 160/4/9 161/2/9 164/5/9 +f 165/6/10 166/10/11 167/7/12 +f 158/4/13 164/5/13 161/2/13 +f 157/2/14 166/6/14 158/3/14 +f 167/7/15 166/6/15 159/5/15 +f 168/11/50 167/8/50 156/9/50 +f 161/2/17 156/12/1 158/1/3 +f 165/6/33 167/8/19 168/13/29 +f 167/14/44 166/16/44 168/15/44 +f 1/4/4 12/17/51 4/5/5 +f 6/2/7 9/5/7 8/6/7 +f 7/3/6 8/6/6 10/8/6 +f 5/4/9 9/5/9 10/17/9 +f 10/6/10 9/5/52 11/10/11 +f 3/4/13 11/17/13 9/5/13 +f 2/2/14 4/5/14 11/6/14 +f 6/2/17 5/3/17 1/12/1 +f 13/13/20 1/9/53 10/6/18 +f 1/9/53 5/3/53 10/6/54 +f 15/2/24 18/5/24 17/6/24 +f 14/9/25 16/3/25 17/6/25 +f 14/4/26 19/17/26 18/5/26 +f 21/2/27 24/5/27 23/6/27 +f 22/3/26 23/6/26 25/8/26 +f 20/4/9 25/17/9 24/5/9 +f 26/4/4 37/17/51 29/5/5 +f 31/2/7 34/5/7 33/6/7 +f 32/3/6 33/6/6 35/8/6 +f 30/4/9 34/5/9 35/17/9 +f 35/6/10 34/5/52 36/10/11 +f 28/4/13 36/17/13 34/5/13 +f 27/2/14 29/5/14 36/6/14 +f 31/2/17 30/3/17 26/12/1 +f 38/13/29 26/9/53 35/6/18 +f 26/9/53 30/3/53 35/6/54 +f 39/4/4 50/17/51 42/5/5 +f 44/2/7 47/5/7 46/6/7 +f 45/3/6 46/6/6 48/8/6 +f 43/4/9 47/5/9 48/17/9 +f 48/6/10 47/5/52 49/10/11 +f 41/4/13 49/17/13 47/5/13 +f 40/2/14 42/5/14 49/6/14 +f 44/2/17 43/3/17 39/12/1 +f 51/13/29 39/9/53 48/6/33 +f 39/9/53 43/3/53 48/6/54 +f 52/4/4 63/17/51 55/5/5 +f 57/2/7 60/5/7 59/6/7 +f 58/3/6 59/6/6 61/8/6 +f 56/4/9 60/5/9 61/17/9 +f 61/6/10 60/5/52 62/10/11 +f 54/4/13 62/17/13 60/5/13 +f 53/2/14 55/5/14 62/6/14 +f 57/2/17 56/3/17 52/12/1 +f 64/13/29 52/9/53 61/6/18 +f 52/9/53 56/3/53 61/6/54 +f 65/4/4 76/17/51 68/5/5 +f 70/2/7 73/5/7 72/6/7 +f 71/3/6 72/6/6 74/8/6 +f 69/4/9 73/5/9 74/17/9 +f 74/6/10 73/5/52 75/10/11 +f 67/4/13 75/17/13 73/5/13 +f 66/2/14 68/5/14 75/6/14 +f 70/2/17 69/3/17 65/12/1 +f 77/13/29 65/9/53 74/6/18 +f 65/9/53 69/3/53 74/6/55 +f 78/4/4 89/17/51 81/5/5 +f 83/2/7 86/5/7 85/6/7 +f 84/3/6 85/6/6 87/8/6 +f 82/4/9 86/5/9 87/17/9 +f 87/6/10 86/5/52 88/10/11 +f 80/4/13 88/17/13 86/5/13 +f 79/2/14 81/5/14 88/6/14 +f 83/2/17 82/3/17 78/12/1 +f 90/13/20 78/9/53 87/6/18 +f 78/9/53 82/3/53 87/6/54 +f 91/4/4 102/17/51 94/5/5 +f 96/2/7 99/5/7 98/6/7 +f 97/3/6 98/6/6 100/8/6 +f 95/4/9 99/5/9 100/17/9 +f 100/6/10 99/5/52 101/10/11 +f 93/4/13 101/17/13 99/5/13 +f 92/2/14 94/5/14 101/6/14 +f 96/2/17 95/3/17 91/12/1 +f 103/13/29 91/9/53 100/6/18 +f 91/9/53 95/3/53 100/6/54 +f 104/4/4 115/17/51 107/5/5 +f 109/2/7 112/5/7 111/6/7 +f 110/3/6 111/6/6 113/8/6 +f 108/4/9 112/5/9 113/17/9 +f 113/6/10 112/5/52 114/10/11 +f 106/4/13 114/17/13 112/5/13 +f 105/2/14 107/5/14 114/6/14 +f 109/2/17 108/3/17 104/12/1 +f 116/13/29 104/9/53 113/6/33 +f 104/9/53 108/3/53 113/6/54 +f 117/4/4 128/17/51 120/5/5 +f 122/2/7 125/5/7 124/6/7 +f 123/3/6 124/6/6 126/8/6 +f 121/4/9 125/5/9 126/17/9 +f 126/6/10 125/5/52 127/10/11 +f 119/4/13 127/17/13 125/5/13 +f 118/2/14 120/5/14 127/6/14 +f 122/2/17 121/3/17 117/12/1 +f 129/13/43 117/9/53 126/6/18 +f 117/9/53 121/3/53 126/6/54 +f 130/4/4 141/17/51 133/5/5 +f 135/2/7 138/5/7 137/6/7 +f 136/3/6 137/6/6 139/8/6 +f 134/4/9 138/5/9 139/17/9 +f 139/6/10 138/5/52 140/10/11 +f 132/4/13 140/17/13 138/5/13 +f 131/2/14 133/5/14 140/6/14 +f 135/2/17 134/3/17 130/12/1 +f 142/13/20 130/9/53 139/6/18 +f 130/9/53 134/3/53 139/6/55 +f 143/4/4 154/17/51 146/5/5 +f 148/2/7 151/5/7 150/6/7 +f 149/3/6 150/6/6 152/8/6 +f 147/4/9 151/5/9 152/17/9 +f 152/6/10 151/5/52 153/10/11 +f 145/4/13 153/17/13 151/5/13 +f 144/2/14 146/5/14 153/6/14 +f 148/2/17 147/3/17 143/12/1 +f 155/13/48 143/9/53 152/6/18 +f 143/9/53 147/3/53 152/6/54 +f 156/4/4 167/17/51 159/5/5 +f 161/2/7 164/5/7 163/6/7 +f 162/3/6 163/6/6 165/8/6 +f 160/4/9 164/5/9 165/17/9 +f 165/6/10 164/5/52 166/10/11 +f 158/4/13 166/17/13 164/5/13 +f 157/2/14 159/5/14 166/6/14 +f 161/2/17 160/3/17 156/12/1 +f 168/13/29 156/9/53 165/6/33 +f 156/9/53 160/3/53 165/6/54 +f 169/18/2 170/19/2 171/20/2 +f 172/21/56 171/22/56 173/23/56 +f 174/24/57 175/25/57 171/22/57 +f 176/26/58 177/27/58 175/25/58 +f 178/28/59 179/29/59 177/27/59 +f 180/30/60 181/31/60 179/29/60 +f 182/32/61 183/33/61 181/31/61 +f 184/34/62 185/35/62 183/33/62 +f 186/36/63 187/37/63 185/35/63 +f 188/38/64 169/39/64 187/37/64 +f 189/40/65 170/41/65 169/39/65 +f 170/19/26 172/42/26 173/43/26 +f 178/44/8 176/45/8 186/46/8 +f 170/19/2 173/43/2 171/20/2 +f 171/20/2 175/47/2 187/48/2 +f 175/47/2 177/49/2 185/50/2 +f 177/49/2 179/51/2 185/50/2 +f 179/51/2 181/52/2 183/53/2 +f 185/50/2 179/51/2 183/53/2 +f 185/50/2 187/48/2 175/47/2 +f 187/48/2 169/18/2 171/20/2 +f 172/21/56 174/24/56 171/22/56 +f 174/24/57 176/26/57 175/25/57 +f 176/26/58 178/28/58 177/27/58 +f 178/28/59 180/30/59 179/29/59 +f 180/30/60 182/32/60 181/31/60 +f 182/32/61 184/34/61 183/33/61 +f 184/34/62 186/36/62 185/35/62 +f 186/36/63 188/38/63 187/37/63 +f 188/38/64 189/40/64 169/39/64 +f 189/40/65 190/54/65 170/41/65 +f 170/19/26 190/55/26 172/42/26 +f 176/45/8 174/56/8 189/57/8 +f 174/56/8 172/42/8 189/57/8 +f 172/42/8 190/55/8 189/57/8 +f 189/57/8 188/58/8 176/45/8 +f 188/58/8 186/46/8 176/45/8 +f 186/46/8 184/59/8 178/44/8 +f 184/59/8 182/60/8 180/61/8 +f 178/44/8 184/59/8 180/61/8 +f 191/62/66 192/63/66 193/64/66 +f 194/65/67 195/66/67 192/63/67 +f 196/67/68 197/68/68 195/66/68 +f 198/69/69 199/70/70 197/68/70 +f 200/71/71 201/72/71 199/70/71 +f 202/73/72 203/74/72 201/72/72 +f 204/75/73 205/76/73 203/74/73 +f 206/77/74 207/78/74 205/76/74 +f 208/79/75 209/80/75 207/78/75 +f 210/81/76 211/82/76 209/80/76 +f 212/83/77 213/84/77 211/82/77 +f 214/85/78 215/86/78 213/84/78 +f 216/87/79 217/88/79 215/86/79 +f 218/89/80 219/90/80 217/88/80 +f 220/91/81 221/92/81 219/90/81 +f 222/93/82 223/94/82 221/92/82 +f 224/95/83 225/96/83 223/94/83 +f 226/97/84 227/98/84 225/96/84 +f 228/99/85 229/100/85 227/98/85 +f 230/101/86 231/102/86 229/100/86 +f 232/103/87 233/104/87 231/102/87 +f 234/105/88 235/106/88 233/104/88 +f 212/107/8 204/108/8 196/109/8 +f 236/110/89 237/111/89 235/106/89 +f 238/112/90 193/113/90 237/111/90 +f 239/114/80 240/115/80 241/115/80 +f 242/116/67 243/117/67 244/118/67 +f 245/119/71 246/120/71 243/117/71 +f 247/121/74 248/122/74 246/120/74 +f 249/123/77 250/124/77 248/122/77 +f 251/125/80 252/126/80 250/124/80 +f 253/127/83 254/128/83 252/126/83 +f 247/108/8 242/129/8 255/130/8 +f 255/131/86 256/132/86 254/128/86 +f 257/133/89 244/134/89 256/132/89 +f 248/135/2 252/136/2 256/137/2 +f 250/129/91 258/138/91 248/139/91 +f 248/139/92 259/140/92 246/108/92 +f 246/108/93 260/141/93 243/142/93 +f 260/141/94 244/143/94 243/142/94 +f 261/144/95 256/145/95 244/143/95 +f 262/146/96 254/130/96 256/145/96 +f 263/147/97 252/148/97 254/130/97 +f 264/149/98 250/129/98 252/148/98 +f 265/123/86 259/150/86 258/151/86 +f 266/125/89 258/151/89 267/152/89 +f 268/153/77 262/154/77 261/155/77 +f 269/119/80 261/156/80 260/157/80 +f 270/121/83 260/157/83 259/150/83 +f 271/127/67 267/152/67 264/158/67 +f 272/116/66 273/159/66 274/118/66 +f 275/160/67 276/161/67 273/159/67 +f 277/162/68 278/117/68 276/161/68 +f 279/119/69 280/163/69 278/117/69 +f 281/164/71 282/165/71 280/163/71 +f 283/166/72 284/120/72 282/165/72 +f 285/121/73 286/167/73 284/120/73 +f 287/168/74 288/169/74 286/167/74 +f 289/170/75 290/122/75 288/169/75 +f 291/123/76 292/171/76 290/122/76 +f 293/172/77 294/173/77 292/171/77 +f 295/174/78 296/124/78 294/173/78 +f 297/125/79 298/175/79 296/124/79 +f 299/176/80 300/177/80 298/175/80 +f 301/178/81 302/126/81 300/177/81 +f 303/127/82 304/179/82 302/126/82 +f 305/180/83 306/181/83 304/179/83 +f 307/182/84 308/128/84 306/181/84 +f 309/131/85 310/183/85 308/128/85 +f 311/184/86 312/185/86 310/183/86 +f 313/186/87 314/132/87 312/185/87 +f 315/133/88 316/187/88 314/132/88 +f 309/130/8 293/107/8 277/109/8 +f 317/188/89 318/189/89 316/187/89 +f 319/190/90 274/134/90 318/189/90 +f 310/191/2 318/192/2 286/193/2 +f 320/62/66 321/63/66 322/64/66 +f 323/65/67 324/66/67 321/63/67 +f 325/67/68 326/68/68 324/66/68 +f 327/69/70 328/70/70 326/68/70 +f 329/71/71 330/72/71 328/70/71 +f 331/73/72 332/74/72 330/72/72 +f 333/75/73 334/76/73 332/74/73 +f 335/77/74 336/78/74 334/76/74 +f 337/79/75 338/80/75 336/78/75 +f 339/81/76 340/82/76 338/80/76 +f 341/83/77 342/84/77 340/82/77 +f 343/85/78 344/86/78 342/84/78 +f 345/87/79 346/88/79 344/86/79 +f 347/89/80 348/90/80 346/88/80 +f 349/91/81 350/92/81 348/90/99 +f 351/93/82 352/94/100 350/92/100 +f 353/95/83 354/96/83 352/94/83 +f 355/97/84 356/98/84 354/96/84 +f 357/99/85 358/100/85 356/98/85 +f 359/101/86 360/102/86 358/100/86 +f 361/103/87 362/104/87 360/102/87 +f 363/105/88 364/106/88 362/104/88 +f 341/107/8 333/108/8 325/109/8 +f 365/110/89 366/111/89 364/106/89 +f 367/112/90 322/113/90 366/111/90 +f 350/136/2 358/191/2 366/192/2 +f 368/116/66 369/159/66 370/118/66 +f 371/160/67 372/161/67 369/159/67 +f 373/162/68 374/117/68 372/161/68 +f 375/119/70 376/163/70 374/117/70 +f 377/164/71 378/165/71 376/163/71 +f 379/166/72 380/120/72 378/165/72 +f 381/121/73 382/167/73 380/120/73 +f 383/168/74 384/169/74 382/167/74 +f 385/170/75 386/122/75 384/169/75 +f 387/123/76 388/171/76 386/122/76 +f 389/172/77 390/173/77 388/171/77 +f 391/174/78 392/124/78 390/173/78 +f 393/125/79 394/175/79 392/124/79 +f 395/176/80 396/177/80 394/175/80 +f 397/178/81 398/126/81 396/177/81 +f 399/127/82 400/179/82 398/126/100 +f 401/180/83 402/181/83 400/179/83 +f 403/182/84 404/128/84 402/181/84 +f 405/131/85 406/183/85 404/128/85 +f 407/184/86 408/185/86 406/183/86 +f 409/186/87 410/132/87 408/185/87 +f 411/133/88 412/187/88 410/132/88 +f 389/107/8 381/108/8 373/109/8 +f 413/188/89 414/189/89 412/187/89 +f 415/190/90 370/134/90 414/189/90 +f 398/136/2 406/191/2 414/192/2 +f 416/116/66 417/159/66 418/118/66 +f 419/160/67 420/161/67 417/159/67 +f 421/162/68 422/117/68 420/161/68 +f 423/119/70 424/163/70 422/117/69 +f 425/164/71 426/165/71 424/163/71 +f 427/166/72 428/120/72 426/165/72 +f 429/121/73 430/167/73 428/120/73 +f 431/168/74 432/169/74 430/167/74 +f 433/170/75 434/122/75 432/169/75 +f 435/123/76 436/171/76 434/122/76 +f 437/172/77 438/173/77 436/171/77 +f 439/174/78 440/124/78 438/173/78 +f 441/125/79 442/175/79 440/124/79 +f 443/176/80 444/177/80 442/175/80 +f 445/178/81 446/126/81 444/177/81 +f 447/127/100 448/179/100 446/126/82 +f 449/180/83 450/181/83 448/179/83 +f 451/182/84 452/128/84 450/181/84 +f 453/131/85 454/183/85 452/128/85 +f 455/184/86 456/185/86 454/183/86 +f 457/186/87 458/132/87 456/185/87 +f 459/133/88 460/187/88 458/132/88 +f 437/107/8 429/108/8 421/109/8 +f 461/188/89 462/189/89 460/187/89 +f 463/190/90 418/134/90 462/189/90 +f 446/136/2 454/191/2 462/192/2 +f 464/62/66 465/63/66 466/64/66 +f 467/65/67 468/66/67 465/63/67 +f 469/67/101 470/68/68 468/66/68 +f 471/69/70 472/70/70 470/68/70 +f 473/71/71 474/72/71 472/70/71 +f 475/73/72 476/74/72 474/72/72 +f 477/75/73 478/76/73 476/74/73 +f 479/77/74 480/78/74 478/76/74 +f 481/79/75 482/80/75 480/78/75 +f 483/81/102 484/82/76 482/80/76 +f 485/83/77 486/84/77 484/82/77 +f 487/85/78 488/86/78 486/84/78 +f 489/87/79 490/88/79 488/86/79 +f 491/89/80 492/90/80 490/88/80 +f 493/91/81 494/92/81 492/90/81 +f 495/93/82 496/94/100 494/92/100 +f 497/95/83 498/96/83 496/94/83 +f 499/97/84 500/98/84 498/96/84 +f 501/99/85 502/100/85 500/98/85 +f 503/101/86 504/102/86 502/100/86 +f 505/103/87 506/104/87 504/102/87 +f 507/105/88 508/106/88 506/104/88 +f 485/107/8 477/108/8 469/109/8 +f 509/110/89 510/111/89 508/106/89 +f 511/112/90 466/113/90 510/111/90 +f 494/136/2 502/191/2 510/192/2 +f 512/194/2 192/195/2 241/115/2 +f 241/115/2 195/196/2 239/114/2 +f 239/114/2 197/197/2 513/198/2 +f 513/198/2 199/199/2 514/200/2 +f 514/200/2 201/201/2 515/202/2 +f 515/202/2 203/203/2 516/204/2 +f 517/205/2 203/203/2 205/193/2 +f 518/206/2 205/193/2 207/207/2 +f 519/208/2 207/207/2 209/135/2 +f 520/209/2 209/135/2 211/210/2 +f 521/211/2 211/210/2 213/212/2 +f 522/213/2 213/212/2 215/214/2 +f 522/213/2 217/215/2 523/216/2 +f 523/216/2 219/217/2 524/218/2 +f 524/218/2 221/136/2 525/219/2 +f 525/219/2 223/220/2 526/221/2 +f 526/221/2 225/222/2 527/223/2 +f 527/223/2 227/224/2 528/225/2 +f 529/226/2 227/224/2 229/191/2 +f 530/227/2 229/191/2 231/228/2 +f 531/229/2 231/228/2 233/137/2 +f 532/230/2 233/137/2 235/231/2 +f 533/232/2 235/231/2 237/192/2 +f 512/194/2 237/192/2 193/233/2 +f 534/229/2 535/230/2 536/219/2 +f 527/223/71 537/221/71 526/221/71 +f 520/209/88 538/208/88 519/208/88 +f 513/198/81 539/114/81 239/114/81 +f 528/225/72 540/223/72 527/223/72 +f 521/211/89 541/209/89 520/209/89 +f 514/200/82 542/198/82 513/198/82 +f 529/226/73 543/225/73 528/225/73 +f 522/213/90 544/211/90 521/211/90 +f 515/202/83 545/200/83 514/200/83 +f 530/227/74 546/226/74 529/226/74 +f 523/216/66 547/213/66 522/213/66 +f 516/204/84 548/202/84 515/202/84 +f 531/229/75 549/227/75 530/227/75 +f 524/218/67 550/216/67 523/216/67 +f 517/205/85 551/204/85 516/204/85 +f 532/230/76 534/229/102 531/229/76 +f 525/219/101 552/218/68 524/218/101 +f 518/206/86 553/205/86 517/205/86 +f 533/232/77 535/230/77 532/230/77 +f 241/115/79 554/194/79 512/194/79 +f 526/221/69 536/219/70 525/219/69 +f 519/208/87 555/206/87 518/206/87 +f 512/194/78 556/232/78 533/232/78 +f 271/127/103 263/147/104 557/133/105 +f 191/62/66 194/65/66 192/63/66 +f 194/65/67 196/67/67 195/66/67 +f 196/67/68 198/69/68 197/68/68 +f 198/69/69 200/71/69 199/70/70 +f 200/71/71 202/73/71 201/72/71 +f 202/73/72 204/75/72 203/74/72 +f 204/75/73 206/77/73 205/76/73 +f 206/77/74 208/79/74 207/78/74 +f 208/79/75 210/81/75 209/80/75 +f 210/81/76 212/83/76 211/82/76 +f 212/83/77 214/85/77 213/84/77 +f 214/85/78 216/87/78 215/86/78 +f 216/87/79 218/89/79 217/88/79 +f 218/89/80 220/91/80 219/90/80 +f 220/91/81 222/93/81 221/92/81 +f 222/93/82 224/95/82 223/94/82 +f 224/95/83 226/97/83 225/96/83 +f 226/97/84 228/99/84 227/98/84 +f 228/99/85 230/101/85 229/100/85 +f 230/101/86 232/103/86 231/102/86 +f 232/103/87 234/105/87 233/104/87 +f 234/105/88 236/110/88 235/106/88 +f 196/109/8 194/234/8 191/129/8 +f 191/129/8 238/235/8 196/109/8 +f 238/235/8 236/236/8 196/109/8 +f 236/236/8 234/148/8 232/237/8 +f 232/237/8 230/238/8 228/130/8 +f 228/130/8 226/239/8 224/240/8 +f 224/240/8 222/145/8 228/130/8 +f 222/145/8 220/241/8 228/130/8 +f 220/241/8 218/242/8 216/143/8 +f 216/143/8 214/243/8 212/107/8 +f 212/107/8 210/142/8 208/244/8 +f 208/244/8 206/245/8 204/108/8 +f 204/108/8 202/246/8 200/247/8 +f 200/247/8 198/139/8 204/108/8 +f 198/139/8 196/109/8 204/108/8 +f 236/236/8 232/237/8 228/130/8 +f 220/241/8 216/143/8 228/130/8 +f 216/143/8 212/107/8 228/130/8 +f 212/107/8 208/244/8 204/108/8 +f 196/109/8 236/236/8 212/107/8 +f 236/236/8 228/130/8 212/107/8 +f 236/110/89 238/112/89 237/111/89 +f 238/112/90 191/248/90 193/113/90 +f 239/114/80 539/114/80 240/115/80 +f 242/116/67 245/119/67 243/117/67 +f 245/119/71 247/121/71 246/120/71 +f 247/121/74 249/123/74 248/122/74 +f 249/123/77 251/125/77 250/124/77 +f 251/125/80 253/127/80 252/126/80 +f 253/127/83 255/131/83 254/128/83 +f 247/108/8 245/139/8 242/129/8 +f 242/129/8 257/148/8 255/130/8 +f 255/130/8 253/145/8 247/108/8 +f 253/145/8 251/143/8 247/108/8 +f 251/143/8 249/142/8 247/108/8 +f 255/131/86 257/133/86 256/132/86 +f 257/133/89 242/153/89 244/134/89 +f 256/137/2 244/233/2 248/135/2 +f 244/233/2 243/197/2 248/135/2 +f 243/197/2 246/203/2 248/135/2 +f 248/135/2 250/214/2 252/136/2 +f 252/136/2 254/224/2 256/137/2 +f 250/129/91 267/249/91 258/138/91 +f 248/139/92 258/138/92 259/140/92 +f 246/108/93 259/140/93 260/141/93 +f 260/141/94 261/144/94 244/143/94 +f 261/144/95 262/146/95 256/145/95 +f 262/146/96 263/147/96 254/130/96 +f 263/147/97 264/149/97 252/148/97 +f 264/149/98 267/249/98 250/129/98 +f 265/123/86 270/121/86 259/150/86 +f 266/125/89 265/123/89 258/151/89 +f 268/153/77 557/133/77 262/154/77 +f 269/119/80 268/116/80 261/156/80 +f 270/121/83 269/119/83 260/157/83 +f 271/127/67 266/125/67 267/152/67 +f 272/116/66 275/160/66 273/159/66 +f 275/160/67 277/162/67 276/161/67 +f 277/162/68 279/119/68 278/117/68 +f 279/119/69 281/164/69 280/163/69 +f 281/164/71 283/166/71 282/165/71 +f 283/166/72 285/121/72 284/120/72 +f 285/121/73 287/168/73 286/167/73 +f 287/168/74 289/170/74 288/169/74 +f 289/170/75 291/123/75 290/122/75 +f 291/123/76 293/172/76 292/171/76 +f 293/172/77 295/174/77 294/173/77 +f 295/174/78 297/125/78 296/124/78 +f 297/125/79 299/176/79 298/175/79 +f 299/176/80 301/178/80 300/177/80 +f 301/178/81 303/127/81 302/126/81 +f 303/127/82 305/180/82 304/179/82 +f 305/180/83 307/182/83 306/181/83 +f 307/182/84 309/131/84 308/128/84 +f 309/131/85 311/184/85 310/183/85 +f 311/184/86 313/186/86 312/185/86 +f 313/186/87 315/133/87 314/132/87 +f 315/133/88 317/188/88 316/187/88 +f 277/109/8 275/234/8 317/236/8 +f 275/234/8 272/129/8 317/236/8 +f 272/129/8 319/235/8 317/236/8 +f 317/236/8 315/148/8 313/237/8 +f 313/237/8 311/238/8 309/130/8 +f 309/130/8 307/239/8 305/240/8 +f 305/240/8 303/145/8 301/241/8 +f 301/241/8 299/242/8 297/143/8 +f 297/143/8 295/243/8 293/107/8 +f 293/107/8 291/142/8 289/244/8 +f 289/244/8 287/245/8 293/107/8 +f 287/245/8 285/108/8 293/107/8 +f 285/108/8 283/246/8 281/247/8 +f 281/247/8 279/139/8 277/109/8 +f 317/236/8 313/237/8 277/109/8 +f 313/237/8 309/130/8 277/109/8 +f 309/130/8 305/240/8 293/107/8 +f 305/240/8 301/241/8 293/107/8 +f 301/241/8 297/143/8 293/107/8 +f 285/108/8 281/247/8 293/107/8 +f 281/247/8 277/109/8 293/107/8 +f 317/188/89 319/190/89 318/189/89 +f 319/190/90 272/153/90 274/134/90 +f 318/192/2 274/233/2 273/195/2 +f 273/195/2 276/196/2 318/192/2 +f 276/196/2 278/197/2 318/192/2 +f 278/197/2 280/199/2 286/193/2 +f 280/199/2 282/201/2 286/193/2 +f 282/201/2 284/203/2 286/193/2 +f 286/193/2 288/207/2 290/135/2 +f 290/135/2 292/210/106 294/212/2 +f 294/212/2 296/214/2 298/215/2 +f 298/215/2 300/217/107 302/136/2 +f 302/136/2 304/220/2 306/222/2 +f 306/222/2 308/224/2 310/191/2 +f 310/191/2 312/228/2 314/137/2 +f 314/137/2 316/231/2 310/191/2 +f 316/231/2 318/192/2 310/191/2 +f 286/193/2 290/135/2 294/212/2 +f 294/212/2 298/215/2 286/193/2 +f 298/215/2 302/136/2 286/193/2 +f 302/136/2 306/222/2 310/191/2 +f 318/192/2 278/197/2 286/193/2 +f 302/136/2 310/191/2 286/193/2 +f 320/62/66 323/65/66 321/63/66 +f 323/65/67 325/67/67 324/66/67 +f 325/67/68 327/69/68 326/68/68 +f 327/69/70 329/71/70 328/70/70 +f 329/71/71 331/73/71 330/72/71 +f 331/73/72 333/75/72 332/74/72 +f 333/75/73 335/77/73 334/76/73 +f 335/77/74 337/79/74 336/78/74 +f 337/79/75 339/81/75 338/80/75 +f 339/81/76 341/83/76 340/82/76 +f 341/83/77 343/85/77 342/84/77 +f 343/85/78 345/87/78 344/86/78 +f 345/87/79 347/89/79 346/88/79 +f 347/89/80 349/91/80 348/90/80 +f 349/91/81 351/93/81 350/92/81 +f 351/93/82 353/95/82 352/94/100 +f 353/95/83 355/97/83 354/96/83 +f 355/97/84 357/99/84 356/98/84 +f 357/99/85 359/101/85 358/100/85 +f 359/101/86 361/103/86 360/102/86 +f 361/103/87 363/105/87 362/104/87 +f 363/105/88 365/110/88 364/106/88 +f 325/109/8 323/234/8 320/129/8 +f 320/129/8 367/235/108 365/236/8 +f 365/236/8 363/148/8 361/237/8 +f 361/237/8 359/238/8 365/236/8 +f 359/238/8 357/130/8 365/236/8 +f 357/130/8 355/239/8 353/240/8 +f 353/240/8 351/145/8 357/130/8 +f 351/145/8 349/241/8 357/130/8 +f 349/241/8 347/242/8 345/143/8 +f 345/143/8 343/243/109 341/107/8 +f 341/107/8 339/142/8 337/244/8 +f 337/244/8 335/245/8 341/107/8 +f 335/245/8 333/108/8 341/107/8 +f 333/108/8 331/246/8 329/247/8 +f 329/247/8 327/139/8 333/108/8 +f 327/139/8 325/109/8 333/108/8 +f 325/109/8 320/129/8 365/236/8 +f 349/241/8 345/143/8 357/130/8 +f 345/143/8 341/107/8 357/130/8 +f 325/109/8 365/236/8 341/107/8 +f 365/236/8 357/130/8 341/107/8 +f 365/110/89 367/112/89 366/111/89 +f 367/112/90 320/248/90 322/113/90 +f 366/192/2 322/233/2 321/195/2 +f 321/195/2 324/196/2 366/192/2 +f 324/196/2 326/197/2 366/192/2 +f 326/197/2 328/199/2 330/201/2 +f 330/201/2 332/203/2 326/197/2 +f 332/203/2 334/193/2 326/197/2 +f 334/193/2 336/207/110 338/135/2 +f 338/135/2 340/210/106 342/212/2 +f 342/212/2 344/214/2 350/136/2 +f 344/214/2 346/215/2 350/136/2 +f 346/215/2 348/217/106 350/136/2 +f 350/136/2 352/220/2 354/222/2 +f 354/222/2 356/224/2 350/136/2 +f 356/224/2 358/191/2 350/136/2 +f 358/191/2 360/228/106 362/137/2 +f 362/137/2 364/231/2 358/191/2 +f 364/231/2 366/192/2 358/191/2 +f 334/193/2 338/135/2 350/136/2 +f 338/135/2 342/212/2 350/136/2 +f 366/192/2 326/197/2 350/136/2 +f 326/197/2 334/193/2 350/136/2 +f 368/116/66 371/160/66 369/159/66 +f 371/160/67 373/162/67 372/161/67 +f 373/162/68 375/119/68 374/117/68 +f 375/119/70 377/164/70 376/163/70 +f 377/164/71 379/166/71 378/165/71 +f 379/166/72 381/121/72 380/120/72 +f 381/121/73 383/168/73 382/167/73 +f 383/168/74 385/170/74 384/169/74 +f 385/170/75 387/123/111 386/122/75 +f 387/123/76 389/172/76 388/171/76 +f 389/172/77 391/174/77 390/173/77 +f 391/174/78 393/125/78 392/124/78 +f 393/125/79 395/176/79 394/175/79 +f 395/176/80 397/178/80 396/177/80 +f 397/178/81 399/127/81 398/126/81 +f 399/127/82 401/180/82 400/179/82 +f 401/180/83 403/182/83 402/181/83 +f 403/182/84 405/131/84 404/128/84 +f 405/131/85 407/184/85 406/183/85 +f 407/184/86 409/186/86 408/185/86 +f 409/186/87 411/133/87 410/132/87 +f 411/133/88 413/188/88 412/187/88 +f 373/109/8 371/234/8 368/129/8 +f 368/129/8 415/235/8 413/236/8 +f 413/236/8 411/148/109 409/237/8 +f 409/237/8 407/238/8 413/236/8 +f 407/238/8 405/130/8 413/236/8 +f 405/130/8 403/239/8 401/240/8 +f 401/240/8 399/145/8 405/130/8 +f 399/145/8 397/241/8 405/130/8 +f 397/241/8 395/242/8 393/143/8 +f 393/143/8 391/243/8 389/107/8 +f 389/107/8 387/142/108 385/244/8 +f 385/244/8 383/245/8 389/107/8 +f 383/245/8 381/108/8 389/107/8 +f 381/108/8 379/246/8 377/247/8 +f 377/247/8 375/139/8 381/108/8 +f 375/139/8 373/109/8 381/108/8 +f 373/109/8 368/129/8 413/236/8 +f 397/241/8 393/143/8 405/130/8 +f 393/143/8 389/107/8 405/130/8 +f 373/109/8 413/236/8 389/107/8 +f 413/236/8 405/130/8 389/107/8 +f 413/188/89 415/190/89 414/189/89 +f 415/190/90 368/153/90 370/134/90 +f 414/192/2 370/233/2 369/195/110 +f 369/195/110 372/196/2 414/192/2 +f 372/196/2 374/197/2 414/192/2 +f 374/197/2 376/199/106 378/201/2 +f 378/201/2 380/203/2 374/197/2 +f 380/203/2 382/193/2 374/197/2 +f 382/193/2 384/207/2 386/135/2 +f 386/135/2 388/210/110 390/212/2 +f 390/212/2 392/214/110 394/215/2 +f 394/215/2 396/217/106 398/136/2 +f 398/136/2 400/220/110 402/222/2 +f 402/222/2 404/224/2 398/136/2 +f 404/224/2 406/191/2 398/136/2 +f 406/191/2 408/228/2 410/137/2 +f 410/137/2 412/231/2 406/191/2 +f 412/231/2 414/192/2 406/191/2 +f 382/193/2 386/135/2 390/212/2 +f 390/212/2 394/215/2 382/193/2 +f 394/215/2 398/136/2 382/193/2 +f 414/192/2 374/197/2 398/136/2 +f 374/197/2 382/193/2 398/136/2 +f 416/116/66 419/160/66 417/159/66 +f 419/160/67 421/162/67 420/161/67 +f 421/162/68 423/119/68 422/117/68 +f 423/119/70 425/164/70 424/163/70 +f 425/164/71 427/166/71 426/165/71 +f 427/166/72 429/121/72 428/120/72 +f 429/121/73 431/168/73 430/167/73 +f 431/168/74 433/170/74 432/169/74 +f 433/170/75 435/123/75 434/122/75 +f 435/123/76 437/172/76 436/171/76 +f 437/172/77 439/174/77 438/173/77 +f 439/174/78 441/125/78 440/124/78 +f 441/125/79 443/176/79 442/175/79 +f 443/176/80 445/178/80 444/177/80 +f 445/178/81 447/127/81 446/126/81 +f 447/127/100 449/180/100 448/179/100 +f 449/180/83 451/182/83 450/181/83 +f 451/182/84 453/131/84 452/128/84 +f 453/131/85 455/184/85 454/183/85 +f 455/184/86 457/186/86 456/185/86 +f 457/186/87 459/133/87 458/132/87 +f 459/133/88 461/188/88 460/187/88 +f 421/109/8 419/234/8 416/129/8 +f 416/129/8 463/235/8 461/236/8 +f 461/236/8 459/148/108 457/237/8 +f 457/237/8 455/238/8 461/236/8 +f 455/238/8 453/130/8 461/236/8 +f 453/130/8 451/239/8 449/240/8 +f 449/240/8 447/145/8 453/130/8 +f 447/145/8 445/241/8 453/130/8 +f 445/241/8 443/242/8 441/143/8 +f 441/143/8 439/243/8 437/107/8 +f 437/107/8 435/142/109 433/244/8 +f 433/244/8 431/245/8 437/107/8 +f 431/245/8 429/108/8 437/107/8 +f 429/108/8 427/246/8 425/247/8 +f 425/247/8 423/139/8 429/108/8 +f 423/139/8 421/109/8 429/108/8 +f 421/109/8 416/129/8 461/236/8 +f 445/241/8 441/143/8 453/130/8 +f 441/143/8 437/107/8 453/130/8 +f 421/109/8 461/236/8 437/107/8 +f 461/236/8 453/130/8 437/107/8 +f 461/188/89 463/190/89 462/189/89 +f 463/190/90 416/153/90 418/134/90 +f 462/192/2 418/233/2 417/195/2 +f 417/195/2 420/196/2 462/192/2 +f 420/196/2 422/197/2 462/192/2 +f 422/197/2 424/199/2 426/201/2 +f 426/201/2 428/203/2 422/197/2 +f 428/203/2 430/193/2 422/197/2 +f 430/193/2 432/207/2 434/135/2 +f 434/135/2 436/210/2 438/212/2 +f 438/212/2 440/214/2 446/136/2 +f 440/214/2 442/215/2 446/136/2 +f 442/215/2 444/217/110 446/136/2 +f 446/136/2 448/220/2 450/222/2 +f 450/222/2 452/224/2 446/136/2 +f 452/224/2 454/191/2 446/136/2 +f 454/191/2 456/228/2 458/137/2 +f 458/137/2 460/231/2 454/191/2 +f 460/231/2 462/192/2 454/191/2 +f 430/193/2 434/135/2 446/136/2 +f 434/135/2 438/212/2 446/136/2 +f 462/192/2 422/197/2 446/136/2 +f 422/197/2 430/193/2 446/136/2 +f 464/62/66 467/65/66 465/63/66 +f 467/65/67 469/67/67 468/66/67 +f 469/67/101 471/69/101 470/68/68 +f 471/69/70 473/71/70 472/70/70 +f 473/71/71 475/73/71 474/72/71 +f 475/73/72 477/75/72 476/74/72 +f 477/75/73 479/77/73 478/76/73 +f 479/77/74 481/79/74 480/78/74 +f 481/79/75 483/81/75 482/80/75 +f 483/81/102 485/83/102 484/82/76 +f 485/83/77 487/85/77 486/84/77 +f 487/85/78 489/87/78 488/86/78 +f 489/87/79 491/89/79 490/88/79 +f 491/89/80 493/91/80 492/90/80 +f 493/91/81 495/93/81 494/92/81 +f 495/93/82 497/95/82 496/94/100 +f 497/95/83 499/97/83 498/96/83 +f 499/97/84 501/99/84 500/98/84 +f 501/99/85 503/101/85 502/100/85 +f 503/101/86 505/103/86 504/102/86 +f 505/103/87 507/105/87 506/104/87 +f 507/105/88 509/110/88 508/106/88 +f 469/109/8 467/234/8 464/129/8 +f 464/129/8 511/235/8 469/109/8 +f 511/235/8 509/236/8 469/109/8 +f 509/236/8 507/148/8 505/237/8 +f 505/237/8 503/238/8 509/236/8 +f 503/238/8 501/130/8 509/236/8 +f 501/130/8 499/239/8 497/240/8 +f 497/240/8 495/145/8 501/130/8 +f 495/145/8 493/241/8 501/130/8 +f 493/241/8 491/242/8 489/143/8 +f 489/143/8 487/243/8 485/107/8 +f 485/107/8 483/142/8 481/244/8 +f 481/244/8 479/245/8 485/107/8 +f 479/245/8 477/108/8 485/107/8 +f 477/108/8 475/246/8 473/247/8 +f 473/247/8 471/139/8 477/108/8 +f 471/139/8 469/109/8 477/108/8 +f 493/241/8 489/143/8 501/130/8 +f 489/143/8 485/107/8 501/130/8 +f 469/109/8 509/236/8 485/107/8 +f 509/236/8 501/130/8 485/107/8 +f 509/110/89 511/112/89 510/111/89 +f 511/112/90 464/248/90 466/113/90 +f 510/192/2 466/233/2 465/195/2 +f 465/195/2 468/196/2 510/192/2 +f 468/196/2 470/197/2 510/192/2 +f 470/197/2 472/199/2 474/201/2 +f 474/201/2 476/203/2 470/197/2 +f 476/203/2 478/193/2 470/197/2 +f 478/193/2 480/207/2 482/135/2 +f 482/135/2 484/210/2 486/212/2 +f 486/212/2 488/214/2 494/136/2 +f 488/214/2 490/215/2 494/136/2 +f 490/215/2 492/217/110 494/136/2 +f 494/136/2 496/220/2 498/222/2 +f 498/222/2 500/224/2 494/136/2 +f 500/224/2 502/191/2 494/136/2 +f 502/191/2 504/228/2 506/137/2 +f 506/137/2 508/231/2 502/191/2 +f 508/231/2 510/192/2 502/191/2 +f 478/193/2 482/135/2 494/136/2 +f 482/135/2 486/212/2 494/136/2 +f 510/192/2 470/197/2 494/136/2 +f 470/197/2 478/193/2 494/136/2 +f 512/194/2 193/233/2 192/195/2 +f 241/115/2 192/195/2 195/196/2 +f 239/114/2 195/196/2 197/197/2 +f 513/198/2 197/197/2 199/199/2 +f 514/200/2 199/199/2 201/201/2 +f 515/202/2 201/201/2 203/203/2 +f 517/205/2 516/204/2 203/203/2 +f 518/206/2 517/205/2 205/193/2 +f 519/208/2 518/206/2 207/207/2 +f 520/209/2 519/208/2 209/135/2 +f 521/211/2 520/209/2 211/210/2 +f 522/213/2 521/211/2 213/212/2 +f 522/213/2 215/214/2 217/215/2 +f 523/216/2 217/215/2 219/217/2 +f 524/218/2 219/217/2 221/136/2 +f 525/219/2 221/136/2 223/220/2 +f 526/221/2 223/220/2 225/222/2 +f 527/223/2 225/222/2 227/224/2 +f 529/226/2 528/225/2 227/224/2 +f 530/227/2 529/226/2 229/191/2 +f 531/229/2 530/227/2 231/228/2 +f 532/230/2 531/229/2 233/137/2 +f 533/232/2 532/230/2 235/231/2 +f 512/194/2 533/232/2 237/192/2 +f 556/232/2 554/194/2 547/213/2 +f 554/194/2 240/115/2 544/211/2 +f 240/115/2 539/114/2 544/211/2 +f 539/114/2 542/198/2 541/209/2 +f 544/211/2 539/114/2 541/209/2 +f 542/198/2 545/200/2 555/206/2 +f 545/200/2 548/202/2 553/205/2 +f 548/202/2 551/204/2 553/205/2 +f 553/205/2 555/206/2 545/200/2 +f 555/206/2 538/208/2 542/198/2 +f 538/208/2 541/209/2 542/198/2 +f 544/211/2 547/213/2 554/194/2 +f 547/213/2 550/216/2 556/232/2 +f 550/216/2 552/218/2 556/232/2 +f 552/218/2 536/219/2 535/230/2 +f 556/232/2 552/218/2 535/230/2 +f 536/219/2 537/221/2 549/227/2 +f 537/221/2 540/223/2 546/226/2 +f 540/223/2 543/225/2 546/226/2 +f 546/226/2 549/227/2 537/221/2 +f 549/227/2 534/229/2 536/219/2 +f 527/223/71 540/223/71 537/221/71 +f 520/209/88 541/209/88 538/208/88 +f 513/198/81 542/198/81 539/114/81 +f 528/225/72 543/225/72 540/223/72 +f 521/211/89 544/211/89 541/209/89 +f 514/200/82 545/200/82 542/198/82 +f 529/226/73 546/226/73 543/225/73 +f 522/213/90 547/213/90 544/211/90 +f 515/202/83 548/202/83 545/200/83 +f 530/227/74 549/227/74 546/226/74 +f 523/216/66 550/216/66 547/213/66 +f 516/204/84 551/204/84 548/202/84 +f 531/229/75 534/229/75 549/227/75 +f 524/218/67 552/218/67 550/216/67 +f 517/205/85 553/205/85 551/204/85 +f 532/230/76 535/230/102 534/229/102 +f 525/219/101 536/219/68 552/218/68 +f 518/206/86 555/206/86 553/205/86 +f 533/232/77 556/232/77 535/230/77 +f 241/115/79 240/115/79 554/194/79 +f 526/221/69 537/221/70 536/219/70 +f 519/208/87 538/208/87 555/206/87 +f 512/194/78 554/194/78 556/232/78 +f 557/133/105 268/153/2 269/119/2 +f 269/119/2 270/121/2 557/133/105 +f 270/121/2 265/123/2 271/127/103 +f 557/133/105 270/121/2 271/127/103 +f 265/123/2 266/125/2 271/127/103 +f 271/127/103 264/149/71 263/147/104 +f 263/147/104 262/154/74 557/133/105 +f 558/250/112 559/251/112 560/252/112 +f 561/253/113 562/254/113 563/254/113 +f 564/255/114 559/256/114 565/257/114 +f 566/258/115 565/257/115 567/259/115 +f 568/260/116 566/261/116 567/259/116 +f 569/262/114 570/263/114 571/263/114 +f 572/264/117 568/260/117 573/265/117 +f 574/266/118 575/267/118 576/268/118 +f 573/265/113 577/269/113 572/264/113 +f 578/270/119 576/271/119 577/269/119 +f 579/272/120 558/273/120 575/274/120 +f 580/275/25 581/276/25 582/277/25 +f 583/278/9 584/279/9 585/280/9 +f 586/281/26 587/282/26 580/283/26 +f 588/284/121 589/285/121 590/286/121 +f 591/287/122 592/288/122 589/289/122 +f 589/290/123 591/291/124 593/292/125 +f 594/293/126 595/294/126 592/288/126 +f 596/295/127 597/296/127 598/296/127 +f 599/297/128 600/298/128 601/298/128 +f 595/294/129 602/299/129 603/294/129 +f 604/300/130 605/300/131 593/300/132 +f 605/301/127 603/302/127 602/272/127 +f 606/303/25 607/304/25 608/305/25 +f 609/306/9 610/307/9 611/308/9 +f 612/309/8 608/310/8 610/311/8 +f 611/312/6 608/313/6 607/314/6 +f 613/315/26 612/316/26 609/317/26 +f 614/318/133 615/319/133 616/320/133 +f 617/321/134 618/322/134 619/323/134 +f 618/324/135 620/325/135 619/326/135 +f 621/327/136 620/328/136 622/329/136 +f 616/330/137 617/331/137 614/332/137 +f 623/333/9 621/334/9 624/335/9 +f 625/336/138 626/337/138 615/319/138 +f 621/338/139 627/339/139 628/340/139 +f 629/341/140 623/342/140 626/343/140 +f 625/344/25 614/345/25 617/346/25 +f 630/347/26 631/348/26 632/349/26 +f 630/350/141 633/351/141 634/352/141 +f 635/353/142 636/354/142 631/355/142 +f 637/356/143 633/357/143 638/358/143 +f 636/359/144 639/360/144 640/361/144 +f 641/362/145 639/363/145 642/364/145 +f 638/365/146 643/366/146 637/367/146 +f 642/368/147 644/369/147 641/370/147 +f 645/371/148 646/372/148 647/373/148 +f 648/374/149 649/375/149 646/376/149 +f 650/377/150 651/378/150 652/379/150 +f 649/380/9 641/381/9 644/382/9 +f 653/383/151 647/384/151 654/385/151 +f 651/386/25 642/387/25 643/388/25 +f 652/389/152 655/390/152 650/391/152 +f 654/392/153 656/393/153 653/394/153 +f 657/395/154 658/396/154 656/397/154 +f 659/398/155 660/399/155 658/400/155 +f 661/401/156 662/402/156 663/403/156 +f 664/404/9 665/405/9 666/406/9 +f 667/407/6 668/408/6 669/409/6 +f 670/410/157 667/411/157 669/412/157 +f 671/413/158 672/414/158 673/415/158 +f 666/416/159 670/417/159 674/418/159 +f 663/419/25 671/420/25 675/421/25 +f 676/422/160 664/423/160 677/424/160 +f 678/425/158 677/426/158 679/427/158 +f 680/428/159 681/428/159 682/429/159 +f 683/430/157 684/431/157 685/432/157 +f 685/433/6 684/434/6 686/435/6 +f 687/436/6 669/409/6 668/437/6 +f 674/438/161 679/439/161 666/440/161 +f 662/441/160 672/442/160 688/443/160 +f 680/444/161 675/445/161 671/446/161 +f 689/447/156 665/448/156 664/449/156 +f 689/450/25 678/450/25 674/450/25 +f 690/451/162 681/452/9 691/452/163 +f 587/453/2 583/454/2 581/455/2 +f 613/456/2 611/457/2 607/458/2 +f 692/459/25 589/460/25 592/461/25 +f 692/459/25 595/462/25 693/463/25 +f 693/463/25 603/462/25 694/464/25 +f 599/297/25 589/465/25 695/466/25 +f 599/297/25 696/302/25 604/347/25 +f 601/298/9 603/302/25 696/302/25 +f 697/464/25 698/467/25 699/468/25 +f 694/464/129 700/463/129 693/463/129 +f 692/459/122 699/468/122 695/468/122 +f 601/298/127 697/469/127 694/469/127 +f 695/466/164 698/297/164 599/297/164 +f 693/463/126 701/459/126 692/459/126 +f 702/470/9 591/407/9 593/349/9 +f 703/471/9 704/472/9 594/473/9 +f 703/474/9 591/287/9 705/475/9 +f 598/296/25 593/349/9 605/272/9 +f 598/296/25 602/272/9 596/295/9 +f 706/476/9 602/472/9 704/472/9 +f 707/477/9 708/478/9 709/479/9 +f 705/477/122 710/471/122 703/471/122 +f 702/470/165 707/480/165 705/480/165 +f 706/476/129 709/479/129 596/479/129 +f 598/296/166 708/470/166 702/470/166 +f 703/471/126 711/476/126 706/476/126 +f 595/294/167 700/481/167 701/482/167 +f 589/483/168 592/483/168 701/483/168 +f 603/483/169 697/483/169 700/483/169 +f 600/484/170 697/484/170 603/484/170 +f 604/485/171 600/485/171 696/485/171 +f 589/486/172 698/486/173 600/486/174 +f 602/299/175 704/299/175 711/487/175 +f 602/488/176 709/488/176 597/488/176 +f 593/489/177 605/489/177 597/489/177 +f 597/490/178 708/490/179 579/490/180 +f 710/483/181 594/483/182 579/483/183 +f 710/491/184 711/491/184 704/491/184 +f 712/492/25 575/274/25 558/273/25 +f 712/492/25 560/493/25 713/494/25 +f 714/495/25 566/496/25 715/497/25 +f 716/498/25 566/496/25 717/499/25 +f 714/495/25 560/493/25 564/500/25 +f 718/501/25 575/274/25 719/502/25 +f 563/254/25 577/503/25 561/253/25 +f 718/501/25 577/503/25 576/504/25 +f 716/498/25 572/505/25 563/254/25 +f 720/506/25 721/507/25 562/508/25 +f 716/498/116 722/497/116 715/497/116 +f 712/492/120 723/502/120 719/502/120 +f 718/501/119 724/253/119 561/253/119 +f 714/495/114 721/494/114 713/494/114 +f 713/494/112 720/492/112 712/492/112 +f 563/254/117 725/498/117 716/498/117 +f 719/502/118 726/501/118 718/501/118 +f 715/497/115 727/495/115 714/495/115 +f 728/509/9 579/272/9 729/510/9 +f 728/509/9 559/511/9 730/349/9 +f 571/263/9 567/512/9 565/513/9 +f 731/514/9 567/512/9 732/515/9 +f 571/263/9 559/511/9 569/262/9 +f 733/516/9 579/272/9 574/517/9 +f 734/518/9 578/519/9 573/520/9 +f 733/516/9 578/519/9 735/521/9 +f 731/514/9 573/520/9 568/522/9 +f 736/523/9 737/524/9 738/525/9 +f 728/509/112 738/262/112 569/262/112 +f 731/514/117 736/518/117 734/518/117 +f 733/516/118 739/510/118 729/510/118 +f 571/263/115 737/515/115 732/515/115 +f 734/518/113 740/521/113 735/521/113 +f 732/515/116 741/514/116 731/514/116 +f 729/510/120 742/509/120 728/509/120 +f 735/521/119 743/516/119 733/516/119 +f 567/259/185 565/257/186 570/526/186 +f 567/527/187 737/527/187 741/527/187 +f 741/528/188 736/528/188 573/528/188 +f 736/527/189 740/527/189 578/527/189 +f 578/527/190 740/527/190 743/527/190 +f 743/527/191 739/527/191 579/527/191 +f 742/527/192 730/527/192 579/527/192 +f 742/527/193 738/527/193 559/527/193 +f 559/527/194 738/527/194 570/527/194 +f 566/261/195 717/529/195 725/530/195 +f 566/527/196 722/527/196 727/527/196 +f 727/527/197 721/527/197 560/527/197 +f 720/527/198 558/527/198 560/527/198 +f 575/527/199 558/527/199 720/527/199 +f 575/527/200 723/527/200 726/527/200 +f 726/527/201 724/527/201 577/527/201 +f 577/527/202 724/527/202 562/527/202 +f 572/527/203 562/527/203 725/527/203 +f 583/531/121 582/532/121 581/533/121 +f 744/534/204 580/535/26 745/536/205 +f 745/537/25 582/277/25 590/538/25 +f 604/539/25 590/538/25 589/540/25 +f 593/541/206 745/542/206 604/543/206 +f 746/544/121 590/286/121 582/532/121 +f 747/545/207 748/546/208 749/546/208 +f 749/547/209 746/548/9 747/549/9 +f 750/550/9 744/551/210 751/552/211 +f 752/553/9 753/554/9 754/555/212 +f 754/556/213 755/556/213 756/556/213 +f 750/557/214 752/558/214 585/558/214 +f 751/559/6 757/557/6 750/557/6 +f 585/558/214 758/545/214 747/545/214 +f 759/556/215 753/559/216 751/559/217 +f 758/560/9 754/561/212 748/562/218 +f 755/556/219 760/546/220 756/556/221 +f 749/546/222 760/546/222 761/546/222 +f 754/556/212 760/546/223 748/546/218 +f 751/563/211 744/563/210 755/563/224 +f 558/250/112 730/564/112 559/251/112 +f 561/253/113 724/253/113 562/254/113 +f 564/255/114 560/565/114 559/256/114 +f 566/258/115 564/255/115 565/257/115 +f 568/260/116 717/529/116 566/261/116 +f 569/262/114 738/262/114 570/263/114 +f 572/264/117 717/529/117 568/260/117 +f 574/266/118 579/566/118 575/267/118 +f 573/265/113 578/270/113 577/269/113 +f 578/270/119 574/567/119 576/271/119 +f 579/272/120 730/349/120 558/273/120 +f 580/275/25 587/568/25 581/276/25 +f 586/569/9 750/570/9 584/571/9 +f 750/570/9 585/572/9 584/571/9 +f 585/572/9 747/573/9 583/574/9 +f 747/573/9 746/575/9 583/574/9 +f 586/281/26 584/576/26 587/282/26 +f 588/284/121 591/577/121 589/285/121 +f 591/287/122 594/293/122 592/288/122 +f 589/290/123 593/292/125 604/578/225 +f 594/293/126 704/299/126 595/294/126 +f 596/295/127 709/295/127 597/296/127 +f 599/297/128 698/297/128 600/298/128 +f 595/294/129 704/299/129 602/299/129 +f 604/300/130 696/300/226 605/300/131 +f 605/301/127 696/302/127 603/302/127 +f 606/303/25 613/579/25 607/304/25 +f 609/306/9 612/580/9 610/307/9 +f 612/309/8 606/581/8 608/310/8 +f 611/312/6 610/582/6 608/313/6 +f 613/315/26 606/583/26 612/316/26 +f 614/318/133 625/336/133 615/319/133 +f 617/321/134 624/584/134 618/322/134 +f 618/324/135 622/585/135 620/325/135 +f 621/327/136 628/586/136 620/328/136 +f 616/330/137 624/587/137 617/331/137 +f 622/588/9 618/589/9 624/335/9 +f 624/335/9 616/590/9 615/591/9 +f 615/591/9 626/592/9 623/333/9 +f 621/334/9 622/588/9 624/335/9 +f 615/591/9 623/333/9 624/335/9 +f 625/336/138 629/593/138 626/337/138 +f 621/338/139 623/594/139 627/339/139 +f 629/341/140 627/595/140 623/342/140 +f 619/596/25 620/597/25 617/346/25 +f 620/597/25 628/598/25 617/346/25 +f 628/598/25 627/599/25 617/346/25 +f 627/599/25 629/600/25 625/344/25 +f 617/346/25 627/599/25 625/344/25 +f 630/347/26 635/601/26 631/348/26 +f 630/350/141 632/602/141 633/351/141 +f 635/353/142 762/603/142 636/354/142 +f 637/356/143 634/604/143 633/357/143 +f 636/359/144 762/605/144 639/360/144 +f 641/362/145 640/606/145 639/363/145 +f 638/365/146 649/607/146 643/366/146 +f 642/368/147 651/608/147 644/369/147 +f 645/371/148 648/609/148 646/372/148 +f 648/374/149 643/610/149 649/375/149 +f 650/377/150 644/611/150 651/378/150 +f 647/612/9 646/613/9 650/614/9 +f 646/613/9 649/380/9 644/382/9 +f 649/380/9 638/615/9 641/381/9 +f 638/615/9 633/616/9 641/381/9 +f 633/616/9 632/617/9 631/618/9 +f 633/616/9 631/618/9 636/619/9 +f 659/620/9 657/621/9 655/622/9 +f 657/621/9 654/623/9 655/622/9 +f 633/616/9 636/619/9 640/624/9 +f 633/616/9 640/624/9 641/381/9 +f 655/622/9 654/623/9 647/612/9 +f 650/614/9 655/622/9 647/612/9 +f 644/382/9 650/614/9 646/613/9 +f 653/383/151 645/625/151 647/384/151 +f 653/626/25 656/627/25 660/628/25 +f 656/627/25 658/629/25 660/628/25 +f 643/388/25 648/630/25 651/386/25 +f 648/630/25 645/631/25 652/632/25 +f 634/633/25 637/634/25 642/387/25 +f 637/634/25 643/388/25 642/387/25 +f 635/635/25 630/636/25 634/633/25 +f 762/637/25 635/635/25 634/633/25 +f 645/631/25 653/626/25 660/628/25 +f 645/631/25 660/628/25 652/632/25 +f 639/638/25 762/637/25 634/633/25 +f 642/387/25 639/638/25 634/633/25 +f 648/630/25 652/632/25 651/386/25 +f 652/389/152 660/639/152 655/390/152 +f 654/392/153 657/640/153 656/393/153 +f 657/395/154 659/641/154 658/396/154 +f 659/398/155 655/642/155 660/399/155 +f 661/401/156 686/402/156 662/402/156 +f 665/405/9 667/643/9 666/406/9 +f 667/643/9 763/644/9 666/406/9 +f 666/406/9 679/645/9 664/404/9 +f 679/645/9 677/646/9 664/404/9 +f 667/407/6 665/522/6 668/408/6 +f 670/410/157 763/647/157 667/411/157 +f 671/413/158 688/648/158 672/414/158 +f 666/416/159 763/349/159 670/417/159 +f 685/649/25 661/650/25 675/421/25 +f 661/650/25 663/419/25 675/421/25 +f 663/419/25 688/651/25 671/420/25 +f 675/421/25 683/652/25 685/649/25 +f 676/422/160 689/653/160 664/423/160 +f 678/425/158 676/654/158 677/426/158 +f 682/429/159 683/655/159 675/656/159 +f 680/428/159 691/428/159 681/428/159 +f 682/429/159 675/656/159 680/428/159 +f 683/430/157 682/657/157 684/431/157 +f 686/435/6 661/499/6 685/433/6 +f 684/434/6 690/658/6 686/435/6 +f 674/438/161 678/659/161 679/439/161 +f 688/443/160 663/660/160 662/441/160 +f 662/441/227 764/441/227 672/442/227 +f 671/446/161 673/661/161 680/444/161 +f 673/661/161 765/444/161 680/444/161 +f 765/444/161 691/444/161 680/444/161 +f 689/447/156 668/662/156 665/448/156 +f 669/450/25 668/450/25 674/450/25 +f 668/450/25 689/450/25 674/450/25 +f 689/450/25 676/450/25 678/450/25 +f 674/450/25 670/450/25 669/450/25 +f 691/452/163 765/452/228 662/452/229 +f 765/452/228 764/452/230 662/452/229 +f 662/452/229 686/452/231 691/452/163 +f 686/452/231 690/451/162 691/452/163 +f 587/453/2 584/663/2 583/454/2 +f 613/456/2 609/664/2 611/457/2 +f 692/459/25 695/468/25 589/460/25 +f 692/482/25 592/288/25 595/294/25 +f 693/463/25 595/462/25 603/462/25 +f 599/297/25 604/347/25 589/465/25 +f 599/297/25 601/298/9 696/302/25 +f 601/298/9 694/469/25 603/302/25 +f 699/665/25 701/482/25 700/481/25 +f 697/464/25 600/666/25 698/467/25 +f 699/665/25 700/481/25 697/667/25 +f 694/464/129 697/464/129 700/463/129 +f 692/459/122 701/459/122 699/468/122 +f 601/298/127 600/298/127 697/469/127 +f 695/466/164 699/466/164 698/297/164 +f 693/481/126 700/481/126 701/482/126 +f 702/470/9 705/480/9 591/407/9 +f 703/471/9 706/476/9 704/472/9 +f 703/474/9 594/293/9 591/287/9 +f 598/296/25 702/470/9 593/349/9 +f 598/296/25 605/272/9 602/272/9 +f 706/476/9 596/479/9 602/472/9 +f 708/478/9 597/668/9 709/479/9 +f 709/669/9 711/487/9 707/475/9 +f 711/487/9 710/474/9 707/475/9 +f 705/475/122 707/475/122 710/474/122 +f 702/470/165 708/470/165 707/480/165 +f 706/476/129 711/476/129 709/479/129 +f 598/296/166 597/296/166 708/470/166 +f 703/471/126 710/471/126 711/476/126 +f 595/294/167 701/482/167 592/288/167 +f 589/483/168 701/483/168 699/483/168 +f 603/483/169 700/483/169 595/483/169 +f 600/484/170 603/484/170 696/484/170 +f 698/486/173 589/486/172 699/486/232 +f 589/486/233 600/486/234 604/486/235 +f 602/299/175 711/487/175 709/669/175 +f 602/488/176 597/488/176 605/488/176 +f 593/490/236 597/490/237 579/490/238 +f 579/490/180 708/490/179 707/490/239 +f 710/483/240 579/483/241 707/483/242 +f 710/483/184 704/483/184 594/483/184 +f 712/492/25 719/502/25 575/274/25 +f 712/492/25 558/273/25 560/493/25 +f 714/495/25 564/500/25 566/496/25 +f 716/498/25 715/497/25 566/496/25 +f 714/495/25 713/494/25 560/493/25 +f 718/501/25 576/504/25 575/274/25 +f 563/254/25 572/505/25 577/503/25 +f 718/501/25 561/253/25 577/503/25 +f 716/498/25 717/499/25 572/505/25 +f 722/670/25 725/530/25 562/508/25 +f 724/671/25 726/672/25 723/673/25 +f 727/674/25 722/670/25 721/507/25 +f 722/670/25 562/508/25 721/507/25 +f 562/508/25 724/671/25 720/506/25 +f 724/671/25 723/673/25 720/506/25 +f 716/498/116 725/498/116 722/497/116 +f 712/492/120 720/492/120 723/502/120 +f 718/501/119 726/501/119 724/253/119 +f 714/495/114 727/495/114 721/494/114 +f 713/494/112 721/494/112 720/492/112 +f 563/254/117 562/254/117 725/498/117 +f 719/502/118 723/502/118 726/501/118 +f 715/497/115 722/497/115 727/495/115 +f 728/509/9 730/349/9 579/272/9 +f 728/509/9 569/262/9 559/511/9 +f 571/263/9 732/515/9 567/512/9 +f 731/514/9 568/522/9 567/512/9 +f 571/263/9 565/513/9 559/511/9 +f 733/516/9 729/510/9 579/272/9 +f 734/518/9 735/521/9 578/519/9 +f 733/516/9 574/517/9 578/519/9 +f 731/514/9 734/518/9 573/520/9 +f 737/524/9 570/526/9 738/525/9 +f 738/525/9 742/675/9 736/523/9 +f 742/675/9 739/676/9 740/677/9 +f 736/523/9 742/675/9 740/677/9 +f 739/676/9 743/678/9 740/677/9 +f 736/523/9 741/679/9 737/524/9 +f 728/509/112 742/509/112 738/262/112 +f 731/514/117 741/514/117 736/518/117 +f 733/516/118 743/516/118 739/510/118 +f 571/263/115 570/263/115 737/515/115 +f 734/518/113 736/518/113 740/521/113 +f 732/515/116 737/515/116 741/514/116 +f 729/510/120 739/510/120 742/509/120 +f 735/521/119 740/521/119 743/516/119 +f 567/259/185 570/526/186 737/524/185 +f 567/527/187 741/527/187 568/527/187 +f 741/528/188 573/528/188 568/528/188 +f 736/527/189 578/527/189 573/527/189 +f 578/527/190 743/527/190 574/527/190 +f 743/527/191 579/527/191 574/527/191 +f 742/527/192 579/527/192 739/527/192 +f 742/527/193 559/527/193 730/527/193 +f 559/527/194 570/527/194 565/527/194 +f 566/261/195 725/530/195 722/670/195 +f 566/527/196 727/527/196 564/527/196 +f 727/527/197 560/527/197 564/527/197 +f 720/527/198 560/527/198 721/527/198 +f 575/527/199 720/527/199 723/527/199 +f 575/527/200 726/527/200 576/527/200 +f 726/527/201 577/527/201 576/527/201 +f 577/527/202 562/527/202 572/527/202 +f 572/527/203 725/527/203 717/527/203 +f 583/531/121 746/544/121 582/532/121 +f 744/534/204 586/680/26 580/535/26 +f 745/537/25 580/275/25 582/277/25 +f 604/539/25 745/537/25 590/538/25 +f 593/541/205 744/681/204 745/542/205 +f 746/544/121 588/284/121 590/286/121 +f 747/545/207 758/545/207 748/546/208 +f 749/682/209 588/683/243 746/684/9 +f 750/685/9 586/686/9 744/687/210 +f 752/553/9 757/688/9 753/554/9 +f 754/556/213 759/556/213 755/556/213 +f 750/557/214 757/557/214 752/558/214 +f 751/559/6 753/559/6 757/557/6 +f 585/558/214 752/558/214 758/545/214 +f 759/556/215 754/556/244 753/559/216 +f 758/560/9 752/689/9 754/561/212 +f 755/556/219 761/546/245 760/546/220 +f 749/546/222 748/546/222 760/546/222 +f 754/556/212 756/556/223 760/546/223 +f 591/563/246 588/563/243 761/563/247 +f 588/563/243 749/563/209 761/563/247 +f 744/563/210 593/563/248 755/563/224 +f 593/563/248 591/563/249 761/563/250 +f 755/563/224 593/563/248 761/563/250 +f 759/563/251 751/563/211 755/563/224 +f 766/690/252 767/691/252 768/692/252 +f 769/693/253 770/694/253 767/691/253 +f 771/695/254 772/696/254 770/694/254 +f 773/697/255 774/698/255 772/696/255 +f 775/699/256 776/700/256 774/698/256 +f 777/701/257 778/702/257 776/700/257 +f 779/703/258 780/704/258 778/702/258 +f 781/705/259 782/706/259 780/704/259 +f 783/707/260 784/708/260 782/706/260 +f 785/709/261 786/710/261 784/708/261 +f 787/711/262 788/712/262 786/710/262 +f 789/713/263 790/714/263 788/712/263 +f 791/715/264 792/716/264 790/714/264 +f 793/717/265 794/718/265 792/716/265 +f 795/719/266 796/720/266 794/718/266 +f 797/721/267 798/722/267 796/720/267 +f 799/723/268 800/724/268 798/722/268 +f 801/725/269 802/726/269 800/724/269 +f 803/727/270 804/728/270 802/726/270 +f 805/729/271 806/730/271 804/728/271 +f 807/731/272 808/732/272 806/730/272 +f 809/733/273 810/734/273 808/732/273 +f 811/735/274 812/736/274 810/734/274 +f 813/737/275 814/738/275 812/736/275 +f 815/739/268 816/740/268 817/740/268 +f 815/739/2 769/741/2 766/742/276 +f 817/740/2 771/743/2 769/741/2 +f 818/744/2 771/743/2 819/745/2 +f 820/746/2 773/747/2 818/744/2 +f 820/746/2 777/748/2 775/749/2 +f 821/750/2 779/751/2 777/748/2 +f 822/752/2 779/751/2 823/753/2 +f 824/754/2 781/755/2 822/752/2 +f 824/754/2 785/756/2 783/757/2 +f 825/758/2 787/759/2 785/756/2 +f 826/760/2 787/759/2 827/761/2 +f 828/762/2 789/763/2 826/760/2 +f 828/762/2 793/764/2 791/765/2 +f 829/766/2 795/767/2 793/764/2 +f 830/768/2 795/767/2 831/769/2 +f 832/770/2 797/771/2 830/768/2 +f 832/770/2 801/772/2 799/773/2 +f 833/774/2 803/775/2 801/772/2 +f 834/776/2 803/775/2 835/777/2 +f 836/778/2 805/779/2 834/776/2 +f 836/778/2 809/780/2 807/781/2 +f 837/782/2 811/783/2 809/780/2 +f 838/784/2 813/785/2 811/783/2 +f 839/786/2 840/787/277 813/785/2 +f 841/788/263 842/789/263 843/789/263 +f 831/769/278 844/768/278 830/768/278 +f 817/740/269 845/745/269 819/745/269 +f 830/768/279 846/770/279 832/770/279 +f 819/745/270 847/744/270 818/744/270 +f 832/770/252 848/774/252 833/774/252 +f 818/744/271 849/746/271 820/746/271 +f 833/774/253 850/777/253 835/777/253 +f 820/746/272 851/750/272 821/750/272 +f 835/777/254 852/776/254 834/776/254 +f 821/750/273 853/753/273 823/753/273 +f 834/776/255 854/778/255 836/778/255 +f 823/753/274 855/752/274 822/752/274 +f 836/778/256 856/782/256 837/782/256 +f 822/752/275 857/754/275 824/754/275 +f 837/782/257 858/784/257 838/784/257 +f 824/754/280 859/758/280 825/758/280 +f 838/784/258 860/786/258 839/786/258 +f 825/758/281 861/761/281 827/761/281 +f 843/789/264 862/790/264 863/790/264 +f 839/786/259 864/791/259 865/791/259 +f 827/761/282 866/760/282 826/760/282 +f 863/790/265 867/792/265 868/792/265 +f 865/791/260 869/793/260 870/793/260 +f 826/760/283 871/762/283 828/762/283 +f 868/792/266 872/794/266 873/794/266 +f 870/793/261 874/795/261 875/795/261 +f 828/762/284 876/766/284 829/766/284 +f 873/794/267 877/739/267 815/739/267 +f 875/795/262 878/788/262 841/788/262 +f 829/766/285 879/769/285 831/769/285 +f 880/796/8 768/797/8 767/798/8 +f 880/796/8 770/799/8 881/800/8 +f 882/801/8 770/799/8 772/802/8 +f 882/801/8 774/803/8 883/804/8 +f 884/805/8 774/803/8 776/806/8 +f 884/805/8 778/807/8 885/808/8 +f 885/808/8 780/809/8 886/810/8 +f 886/810/8 782/811/8 887/812/8 +f 888/813/8 782/811/8 784/814/8 +f 888/813/8 786/815/8 889/816/8 +f 890/817/8 786/815/8 788/818/8 +f 890/817/8 790/819/8 891/820/8 +f 892/821/8 790/819/8 792/822/8 +f 892/821/8 794/823/8 893/824/8 +f 894/825/8 794/823/8 796/826/8 +f 894/825/8 798/827/8 895/828/8 +f 896/829/8 798/827/8 800/830/8 +f 896/829/8 802/831/8 897/832/8 +f 898/833/8 802/831/8 804/834/8 +f 898/833/8 806/835/8 899/836/8 +f 900/837/8 806/835/8 808/838/8 +f 900/837/8 810/839/8 901/840/8 +f 902/841/8 810/839/8 812/842/8 +f 902/841/8 814/843/286 903/844/8 +f 904/845/25 905/846/25 906/847/25 +f 907/848/2 908/849/2 905/846/2 +f 909/850/9 910/851/9 908/849/9 +f 911/852/8 906/853/8 910/851/8 +f 908/849/6 906/854/6 905/855/6 +f 766/690/279 912/856/287 913/857/279 +f 814/738/288 914/858/289 915/859/289 +f 863/790/2 916/860/2 843/789/2 +f 868/792/2 917/861/2 863/790/2 +f 873/794/2 918/862/2 868/792/2 +f 815/739/2 913/863/290 919/864/2 +f 865/791/2 920/865/2 914/866/291 +f 870/793/2 921/867/2 920/865/2 +f 875/795/2 922/868/2 921/867/2 +f 841/788/2 916/860/2 922/868/2 +f 923/869/8 924/870/8 925/871/8 +f 926/872/8 925/871/8 927/873/8 +f 928/874/8 927/873/8 929/875/8 +f 930/876/8 928/874/8 929/875/8 +f 903/844/8 814/843/286 915/877/292 +f 931/878/8 932/879/8 933/880/8 +f 934/881/8 935/882/8 931/878/8 +f 924/870/8 936/883/8 934/881/8 +f 912/884/26 911/852/26 909/850/26 +f 907/885/26 915/886/26 914/887/26 +f 766/690/252 769/693/252 767/691/252 +f 769/693/253 771/695/253 770/694/253 +f 771/695/254 773/697/254 772/696/254 +f 773/697/255 775/699/255 774/698/255 +f 775/699/256 777/701/256 776/700/256 +f 777/701/257 779/703/257 778/702/257 +f 779/703/258 781/705/258 780/704/258 +f 781/705/259 783/707/259 782/706/259 +f 783/707/260 785/709/260 784/708/260 +f 785/709/261 787/711/261 786/710/261 +f 787/711/262 789/713/262 788/712/262 +f 789/713/263 791/715/263 790/714/263 +f 791/715/264 793/717/264 792/716/264 +f 793/717/265 795/719/265 794/718/265 +f 795/719/266 797/721/266 796/720/266 +f 797/721/267 799/723/267 798/722/267 +f 799/723/268 801/725/268 800/724/268 +f 801/725/269 803/727/269 802/726/269 +f 803/727/270 805/729/270 804/728/270 +f 805/729/271 807/731/271 806/730/271 +f 807/731/272 809/733/272 808/732/272 +f 809/733/273 811/735/273 810/734/273 +f 811/735/274 813/737/274 812/736/274 +f 813/737/275 840/888/275 814/738/275 +f 815/739/268 877/739/268 816/740/268 +f 815/739/2 817/740/2 769/741/2 +f 817/740/2 819/745/2 771/743/2 +f 818/744/2 773/747/2 771/743/2 +f 820/746/2 775/749/2 773/747/2 +f 820/746/2 821/750/2 777/748/2 +f 821/750/2 823/753/2 779/751/2 +f 822/752/2 781/755/2 779/751/2 +f 824/754/2 783/757/2 781/755/2 +f 824/754/2 825/758/2 785/756/2 +f 825/758/2 827/761/2 787/759/2 +f 826/760/2 789/763/2 787/759/2 +f 828/762/2 791/765/2 789/763/2 +f 828/762/2 829/766/2 793/764/2 +f 829/766/2 831/769/2 795/767/2 +f 830/768/2 797/771/2 795/767/2 +f 832/770/2 799/773/2 797/771/2 +f 832/770/2 833/774/2 801/772/2 +f 833/774/2 835/777/2 803/775/2 +f 834/776/2 805/779/2 803/775/2 +f 836/778/2 807/781/2 805/779/2 +f 836/778/2 837/782/2 809/780/2 +f 837/782/2 838/784/2 811/783/2 +f 838/784/2 839/786/2 813/785/2 +f 839/786/2 865/791/2 840/787/277 +f 841/788/263 878/788/263 842/789/263 +f 831/769/278 879/769/278 844/768/278 +f 817/740/269 816/740/269 845/745/269 +f 830/768/279 844/768/279 846/770/279 +f 819/745/270 845/745/270 847/744/270 +f 832/770/252 846/770/252 848/774/252 +f 818/744/271 847/744/271 849/746/271 +f 833/774/253 848/774/253 850/777/253 +f 820/746/272 849/746/272 851/750/272 +f 835/777/254 850/777/254 852/776/254 +f 821/750/273 851/750/273 853/753/273 +f 834/776/255 852/776/255 854/778/255 +f 823/753/274 853/753/274 855/752/274 +f 836/778/256 854/778/256 856/782/256 +f 822/752/275 855/752/275 857/754/275 +f 837/782/257 856/782/257 858/784/257 +f 824/754/280 857/754/280 859/758/280 +f 838/784/258 858/784/258 860/786/258 +f 825/758/281 859/758/281 861/761/281 +f 843/789/264 842/789/264 862/790/264 +f 839/786/259 860/786/259 864/791/259 +f 827/761/282 861/761/282 866/760/282 +f 863/790/265 862/790/265 867/792/265 +f 865/791/260 864/791/260 869/793/260 +f 826/760/283 866/760/283 871/762/283 +f 868/792/266 867/792/266 872/794/266 +f 870/793/261 869/793/261 874/795/261 +f 828/762/284 871/762/284 876/766/284 +f 873/794/267 872/794/267 877/739/267 +f 875/795/262 874/795/262 878/788/262 +f 829/766/285 876/766/285 879/769/285 +f 880/796/8 930/876/8 768/797/8 +f 880/796/8 767/798/8 770/799/8 +f 882/801/8 881/800/8 770/799/8 +f 882/801/8 772/802/8 774/803/8 +f 884/805/8 883/804/8 774/803/8 +f 884/805/8 776/806/8 778/807/8 +f 885/808/8 778/807/8 780/809/8 +f 886/810/8 780/809/8 782/811/8 +f 888/813/8 887/812/8 782/811/8 +f 888/813/8 784/814/8 786/815/8 +f 890/817/8 889/816/8 786/815/8 +f 890/817/8 788/818/8 790/819/8 +f 892/821/8 891/820/8 790/819/8 +f 892/821/8 792/822/8 794/823/8 +f 894/825/8 893/824/8 794/823/8 +f 894/825/8 796/826/8 798/827/8 +f 896/829/8 895/828/8 798/827/8 +f 896/829/8 800/830/8 802/831/8 +f 898/833/8 897/832/8 802/831/8 +f 898/833/8 804/834/8 806/835/8 +f 900/837/8 899/836/8 806/835/8 +f 900/837/8 808/838/8 810/839/8 +f 902/841/8 901/840/8 810/839/8 +f 902/841/8 812/842/8 814/843/286 +f 904/845/25 907/848/25 905/846/25 +f 907/848/2 909/850/2 908/849/2 +f 909/850/9 911/852/9 910/851/9 +f 911/852/8 904/889/8 906/853/8 +f 908/849/6 910/851/6 906/854/6 +f 766/690/279 768/692/287 912/856/287 +f 814/738/288 840/888/289 914/858/289 +f 863/790/2 917/861/2 916/860/2 +f 868/792/2 918/862/2 917/861/2 +f 873/794/2 919/864/2 918/862/2 +f 919/864/2 873/794/2 815/739/2 +f 815/739/2 766/742/276 913/863/290 +f 914/866/291 840/787/277 865/791/2 +f 865/791/2 870/793/2 920/865/2 +f 870/793/2 875/795/2 921/867/2 +f 875/795/2 841/788/2 922/868/2 +f 841/788/2 843/789/2 916/860/2 +f 923/869/8 937/890/8 924/870/8 +f 926/872/8 923/869/8 925/871/8 +f 928/874/8 926/872/8 927/873/8 +f 929/875/8 912/891/8 930/876/8 +f 912/891/8 768/797/8 930/876/8 +f 915/877/292 933/880/8 903/844/8 +f 933/880/8 932/879/8 903/844/8 +f 931/878/8 935/882/8 932/879/8 +f 934/881/8 936/883/8 935/882/8 +f 924/870/8 937/890/8 936/883/8 +f 933/892/26 915/886/26 904/893/26 +f 909/850/26 907/885/26 916/894/26 +f 907/885/26 914/887/26 920/895/26 +f 920/895/26 921/896/26 907/885/26 +f 921/896/26 922/897/26 907/885/26 +f 907/885/26 922/897/26 916/894/26 +f 933/892/26 904/893/26 931/898/26 +f 904/893/26 911/852/26 924/899/26 +f 931/898/26 904/893/26 934/900/26 +f 924/899/26 934/900/26 904/893/26 +f 916/894/26 917/901/26 909/850/26 +f 917/901/26 918/902/26 909/850/26 +f 929/903/26 927/904/26 911/852/26 +f 927/904/26 925/905/26 911/852/26 +f 925/905/26 924/899/26 911/852/26 +f 918/902/26 919/906/26 909/850/26 +f 919/906/26 913/907/26 909/850/26 +f 912/884/26 929/903/26 911/852/26 +f 913/907/26 912/884/26 909/850/26 +f 907/885/26 904/893/26 915/886/26 +f 938/908/293 939/909/293 940/910/293 +f 939/909/294 941/911/294 940/910/294 +f 942/912/295 943/913/295 941/911/295 +f 944/914/296 938/915/296 943/913/296 +f 941/911/6 938/916/6 940/917/6 +f 939/918/26 944/914/26 942/912/26 +f 945/919/297 946/909/297 947/920/297 +f 946/909/298 948/921/298 947/920/298 +f 949/912/299 950/922/299 948/921/299 +f 951/923/300 945/924/301 950/925/301 +f 952/911/6 953/916/6 954/917/6 +f 946/918/26 951/914/26 949/912/26 +f 950/922/301 953/915/301 955/913/301 +f 948/921/299 955/913/299 952/911/299 +f 947/920/298 952/911/298 954/910/298 +f 953/908/297 947/920/297 954/910/297 +f 956/908/302 957/909/302 958/910/302 +f 958/910/303 959/912/303 960/911/303 +f 959/912/304 961/913/304 960/911/304 +f 962/914/305 956/915/305 961/913/305 +f 960/911/306 956/916/306 958/917/306 +f 957/918/307 962/914/307 959/912/307 +f 963/908/308 964/909/308 965/910/309 +f 964/909/310 966/911/310 965/910/310 +f 967/912/311 968/913/311 966/911/311 +f 969/914/312 963/915/312 968/913/312 +f 966/911/313 963/916/313 965/917/313 +f 964/918/314 969/914/314 967/912/314 +f 938/908/293 970/926/293 939/909/293 +f 939/909/294 942/912/294 941/911/294 +f 942/912/295 944/914/295 943/913/295 +f 944/914/296 970/927/296 938/915/296 +f 941/911/6 943/913/6 938/916/6 +f 939/918/26 970/928/26 944/914/26 +f 945/919/297 971/926/297 946/909/297 +f 946/909/298 949/912/298 948/921/298 +f 949/912/299 951/914/299 950/922/299 +f 951/923/300 971/929/300 945/924/301 +f 952/911/6 955/913/6 953/916/6 +f 946/918/26 971/928/26 951/914/26 +f 950/922/301 945/930/301 953/915/301 +f 948/921/299 950/922/299 955/913/299 +f 947/920/298 948/921/298 952/911/298 +f 953/908/297 945/919/297 947/920/297 +f 956/908/302 972/926/302 957/909/302 +f 958/910/303 957/909/303 959/912/303 +f 959/912/304 962/914/315 961/913/304 +f 962/914/305 972/927/305 956/915/305 +f 960/911/306 961/913/306 956/916/306 +f 957/918/307 972/928/307 962/914/307 +f 963/908/308 973/926/308 964/909/308 +f 964/909/310 967/912/310 966/911/310 +f 967/912/311 969/914/311 968/913/311 +f 969/914/312 973/927/316 963/915/312 +f 966/911/313 968/913/313 963/916/313 +f 964/918/314 973/928/314 969/914/314 +o Shell +v -0.317579 2.171942 1.847565 +v 0.000000 2.303487 -0.098938 +v -0.317579 2.171942 -0.098938 +v 0.449124 1.854363 1.847565 +v 0.317579 1.536785 -0.098938 +v 0.449124 1.854363 -0.098938 +v 0.317579 1.536785 1.847565 +v 0.000000 1.405240 -0.098938 +v 0.000000 1.405239 1.847565 +v -0.317579 1.536785 -0.098938 +v -0.317579 1.536785 1.847565 +v -0.449124 1.854363 -0.098938 +v -0.449124 1.854363 1.847565 +v 0.000000 2.303487 1.847565 +v 0.317579 2.171942 -0.098938 +v 0.317579 2.171942 1.847565 +v 0.353356 2.207720 1.877207 +v 0.499721 1.854363 1.877207 +v 0.353356 1.501007 1.877207 +v 0.000000 1.354642 1.877207 +v -0.353356 1.501007 1.877207 +v -0.499721 1.854363 1.877207 +v -0.353356 2.207720 1.877207 +v 0.000000 2.354084 1.877207 +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 +vn -0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.2049 0.4948 -0.8445 +vn 0.4948 0.2049 -0.8445 +vn 0.4948 -0.2049 -0.8445 +vn 0.2049 -0.4948 -0.8445 +vn -0.2049 -0.4948 -0.8445 +vn -0.4948 -0.2049 -0.8445 +vn -0.4948 0.2049 -0.8445 +vn -0.2049 0.4948 -0.8445 +vn -0.0000 -0.0000 1.0000 +vt 0.125000 0.577656 +vt 0.000000 0.516094 +vt 0.125000 0.516094 +vt 0.750000 0.577656 +vt 0.625000 0.516094 +vt 0.750000 0.516094 +vt 0.625000 0.577656 +vt 0.500000 0.516094 +vt 0.500000 0.577656 +vt 0.375000 0.516094 +vt 0.375000 0.577656 +vt 0.250000 0.516094 +vt 0.250000 0.577656 +vt 1.000000 0.577656 +vt 0.875000 0.516094 +vt 1.000000 0.516094 +vt 0.875000 0.577656 +vt 0.707574 0.516599 +vt 0.690000 0.537812 +vt 0.707574 0.559026 +vt 0.218750 0.446250 +vt 0.195693 0.450000 +vt 0.195312 0.446250 +vt 0.172255 0.450000 +vt 0.171875 0.446250 +vt 0.148438 0.446250 +vt 0.171494 0.450000 +vt 0.148818 0.450000 +vt 0.125000 0.446250 +vt 0.148057 0.450000 +vt 0.125380 0.450000 +vt 0.101943 0.450000 +vt 0.101562 0.446250 +vt 0.078505 0.450000 +vt 0.078125 0.446250 +vt 0.054688 0.446250 +vt 0.077745 0.450000 +vt 0.055068 0.450000 +vt 0.031250 0.446250 +vt 0.054307 0.450000 +vt 0.031630 0.450000 +vt 0.013897 0.440000 +vt 0.130000 0.381948 +vt 0.246103 0.440000 +vt 0.000000 0.577656 +vt 0.750000 0.567813 +vt 0.792426 0.516599 +vt 0.792426 0.559026 +vt 0.810000 0.537812 +vt 0.750000 0.507812 +vt 0.218369 0.450000 +vt 0.194932 0.450000 +vt 0.124620 0.450000 +vt 0.101182 0.450000 +vt 0.212097 0.481049 +vt 0.130000 0.498052 +vt 0.047903 0.481049 +vt 0.047903 0.398951 +vt 0.212097 0.398951 +s 1 +f 974/931/317 975/932/317 976/933/317 +f 977/934/318 978/935/318 979/936/318 +f 980/937/319 981/938/319 978/935/319 +f 982/939/320 983/940/320 981/938/320 +f 984/941/321 985/942/321 983/940/321 +f 986/943/322 976/933/322 985/942/322 +f 987/944/323 988/945/323 975/946/323 +f 989/947/324 979/936/324 988/945/324 +f 983/948/325 985/949/325 976/950/325 +f 987/951/326 990/952/326 989/953/326 +f 989/953/327 991/954/327 977/955/327 +f 980/956/328 991/957/328 992/958/328 +f 982/959/329 992/960/329 993/961/329 +f 982/959/330 994/962/330 984/963/330 +f 984/963/331 995/964/331 986/965/331 +f 974/966/332 995/967/332 996/968/332 +f 987/969/333 996/970/333 997/971/333 +f 995/972/334 993/973/334 991/974/334 +f 974/931/317 987/975/317 975/932/317 +f 977/934/318 980/937/318 978/935/318 +f 980/937/319 982/939/319 981/938/319 +f 982/939/320 984/941/320 983/940/320 +f 984/941/321 986/943/321 985/942/321 +f 986/943/322 974/931/322 976/933/322 +f 987/944/323 989/947/323 988/945/323 +f 989/947/324 977/934/324 979/936/324 +f 976/950/325 975/976/325 978/977/325 +f 975/976/325 988/978/325 978/977/325 +f 988/978/325 979/979/325 978/977/325 +f 978/977/325 981/980/325 976/950/325 +f 981/980/325 983/948/325 976/950/325 +f 987/951/326 997/981/326 990/952/326 +f 989/953/327 990/982/327 991/954/327 +f 980/956/328 977/955/328 991/957/328 +f 982/959/329 980/956/329 992/960/329 +f 982/959/330 993/983/330 994/962/330 +f 984/963/331 994/984/331 995/964/331 +f 974/966/332 986/965/332 995/967/332 +f 987/969/333 974/966/333 996/970/333 +f 991/974/334 990/985/334 997/986/334 +f 997/986/334 996/987/334 995/972/334 +f 995/972/334 994/988/334 993/973/334 +f 993/973/334 992/989/334 991/974/334 +f 991/974/334 997/986/334 995/972/334 +o Bolt +v 1.237626 1.558533 -0.244676 +v 1.237626 1.347644 -0.338365 +v 1.237626 1.434997 -0.564550 +v 0.258755 0.970245 -0.742828 +v 0.364785 1.014616 5.211916 +v 0.258755 0.970245 5.211916 +v 0.364785 1.014616 -0.742828 +v 0.462503 1.086671 5.211916 +v 0.462503 1.086670 -0.742828 +v 0.548153 1.183639 5.211916 +v 0.548153 1.183639 -0.742828 +v 0.618444 1.301795 5.211916 +v 0.713701 1.734985 -0.742828 +v 0.702840 1.870972 2.886101 +v 0.713701 1.734986 3.385809 +v 0.702840 1.887102 -0.742828 +v 0.670676 2.017243 2.886101 +v 0.670676 2.033372 -0.742828 +v 0.618444 2.152046 2.886101 +v 0.618444 2.168175 -0.742828 +v 0.548153 2.270203 2.886101 +v 0.548153 2.286332 -0.742828 +v 0.462503 2.367172 2.886101 +v 0.462503 2.383301 -0.742828 +v 0.364785 2.439226 2.886101 +v 0.364785 2.455355 -0.742828 +v 0.258755 2.483597 2.886101 +v 0.685123 1.502331 -0.577728 +v 1.237626 1.465275 -0.574402 +v 0.678109 1.472589 -0.574402 +v 0.671364 1.443991 -0.564550 +v 1.237626 1.407092 -0.548553 +v 0.660936 1.417635 -0.548553 +v 0.670676 1.441072 -0.562778 +v 1.237626 1.382633 -0.527024 +v 0.651336 1.394533 -0.527024 +v 1.237626 1.362560 -0.500791 +v 0.643457 1.375574 -0.500791 +v 1.237626 1.347644 -0.470861 +v 0.637602 1.361486 -0.470861 +v 1.237626 1.338459 -0.438386 +v 0.633997 1.352811 -0.438386 +v 1.237626 1.335358 -0.404613 +v 0.632780 1.349882 -0.404613 +v 0.633997 1.352811 -0.370840 +v 1.237626 1.338459 -0.370840 +v 0.637602 1.361486 -0.338365 +v 0.643457 1.375574 -0.308436 +v 1.237626 1.362560 -0.308436 +v 0.651336 1.394533 -0.282203 +v 1.237626 1.382633 -0.282203 +v 0.660936 1.417635 -0.260674 +v 1.237626 1.407092 -0.260674 +v 0.671364 1.443991 -0.244676 +v 0.670676 1.441072 -0.246449 +v 1.237626 1.434997 -0.244676 +v 0.678109 1.472590 -0.234825 +v 1.237626 1.465276 -0.234825 +v 0.685123 1.502331 -0.231499 +v 1.237626 1.496765 -0.231499 +v 0.692138 1.532073 -0.234825 +v 1.237626 1.528254 -0.234825 +v 0.698882 1.560671 -0.244676 +v 1.237626 1.586437 -0.260674 +v 0.703573 1.587027 -0.260674 +v 0.702840 1.577450 -0.254860 +v 0.705341 1.610129 -0.282203 +v 1.237626 1.610896 -0.282203 +v 0.706793 1.629088 -0.308436 +v 1.237626 1.630969 -0.308436 +v 0.707873 1.643176 -0.338366 +v 1.237626 1.645885 -0.338366 +v 0.708536 1.651851 -0.370841 +v 1.237626 1.655070 -0.370841 +v 0.708760 1.654780 -0.404613 +v 1.237626 1.655070 -0.438387 +v 0.708536 1.651851 -0.438387 +v 1.237626 1.645884 -0.470862 +v 0.707873 1.643175 -0.470862 +v 1.237626 1.630969 -0.500791 +v 0.706793 1.629088 -0.500791 +v 1.237626 1.610896 -0.527024 +v 0.705341 1.610129 -0.527024 +v 1.237626 1.586437 -0.548553 +v 0.703573 1.587027 -0.548553 +v 1.237626 1.558532 -0.564551 +v 0.698882 1.560670 -0.564551 +v 0.702840 1.577450 -0.554366 +v 1.237626 1.528253 -0.574402 +v 0.692138 1.532072 -0.574402 +v 1.237626 1.496765 -0.577728 +v 0.618444 1.301795 -0.742828 +v 0.670676 1.436599 5.211916 +v 0.702840 1.582869 -0.742828 +v 1.237626 1.658171 -0.404613 +v 0.258755 2.499726 -0.742828 +v 0.670676 1.436599 -0.742828 +v 0.702840 1.582870 5.211916 +v 0.329833 0.917553 -0.742828 +vn 1.0000 -0.0000 -0.0000 +vn 0.3860 -0.9225 -0.0000 +vn 0.5935 -0.8049 -0.0000 +vn 0.7495 -0.6620 -0.0000 +vn 0.8594 -0.5113 -0.0000 +vn 0.9974 0.0714 0.0003 +vn 0.9968 0.0795 -0.0000 +vn 0.9968 0.0796 -0.0000 +vn 0.9767 0.2148 0.0010 +vn 0.9325 0.3613 0.0016 +vn 0.8594 0.5113 0.0023 +vn 0.7495 0.6620 0.0029 +vn 0.5935 0.8048 0.0036 +vn 0.3860 0.9225 0.0041 +vn -0.0014 -0.1106 -0.9939 +vn -0.0011 -0.1052 -0.9944 +vn -0.0014 -0.1108 -0.9938 +vn -0.0051 -0.3241 -0.9460 +vn -0.0041 -0.3099 -0.9507 +vn -0.0052 -0.3246 -0.9458 +vn -0.0080 -0.4980 -0.8671 +vn -0.0094 -0.5160 -0.8566 +vn -0.0095 -0.5165 -0.8562 +vn -0.0137 -0.6781 -0.7348 +vn -0.0121 -0.6613 -0.7500 +vn -0.0138 -0.6786 -0.7343 +vn -0.0176 -0.8074 -0.5897 +vn -0.0162 -0.7946 -0.6070 +vn -0.0177 -0.8078 -0.5892 +vn -0.0208 -0.9027 -0.4297 +vn -0.0196 -0.8951 -0.4454 +vn -0.0208 -0.9030 -0.4291 +vn -0.0229 -0.9651 -0.2608 +vn -0.0222 -0.9621 -0.2717 +vn -0.0229 -0.9652 -0.2604 +vn -0.0239 -0.9959 -0.0874 +vn -0.0237 -0.9955 -0.0913 +vn -0.0239 -0.9959 -0.0872 +vn -0.0237 -0.9955 0.0913 +vn -0.0239 -0.9959 0.0874 +vn -0.0239 -0.9959 0.0872 +vn -0.0222 -0.9621 0.2717 +vn -0.0229 -0.9651 0.2608 +vn -0.0229 -0.9652 0.2604 +vn -0.0196 -0.8951 0.4454 +vn -0.0208 -0.9027 0.4297 +vn -0.0208 -0.9030 0.4291 +vn -0.0162 -0.7946 0.6070 +vn -0.0176 -0.8074 0.5897 +vn -0.0177 -0.8078 0.5891 +vn -0.0121 -0.6613 0.7500 +vn -0.0137 -0.6781 0.7348 +vn -0.0138 -0.6786 0.7343 +vn -0.0080 -0.4980 0.8671 +vn -0.0095 -0.5168 0.8561 +vn -0.0095 -0.5166 0.8562 +vn -0.0041 -0.3099 0.9508 +vn -0.0051 -0.3241 0.9460 +vn -0.0052 -0.3246 0.9458 +vn -0.0011 -0.1052 0.9944 +vn -0.0014 -0.1106 0.9939 +vn -0.0014 -0.1108 0.9938 +vn 0.0007 0.1052 0.9944 +vn 0.0011 0.1107 0.9939 +vn 0.0011 0.1109 0.9938 +vn 0.0013 0.3099 0.9508 +vn 0.0022 0.3247 0.9458 +vn 0.0023 0.3252 0.9456 +vn 0.0011 0.4977 0.8674 +vn 0.0006 0.5189 0.8548 +vn 0.0014 0.5183 0.8552 +vn -0.0009 0.6615 0.7499 +vn 0.0007 0.6810 0.7323 +vn 0.0008 0.6817 0.7316 +vn -0.0028 0.7948 0.6068 +vn -0.0012 0.8099 0.5866 +vn -0.0012 0.8105 0.5857 +vn -0.0045 0.8954 0.4452 +vn -0.0033 0.9044 0.4266 +vn -0.0032 0.9048 0.4258 +vn -0.0058 0.9624 0.2716 +vn -0.0050 0.9660 0.2585 +vn -0.0049 0.9661 0.2580 +vn -0.0064 0.9958 0.0912 +vn -0.0061 0.9962 0.0866 +vn -0.0061 0.9962 0.0864 +vn -0.0061 0.9962 -0.0866 +vn -0.0064 0.9958 -0.0912 +vn -0.0061 0.9962 -0.0864 +vn -0.0050 0.9660 -0.2586 +vn -0.0058 0.9624 -0.2716 +vn -0.0049 0.9661 -0.2580 +vn -0.0033 0.9044 -0.4266 +vn -0.0045 0.8954 -0.4452 +vn -0.0032 0.9048 -0.4258 +vn -0.0012 0.8099 -0.5866 +vn -0.0028 0.7948 -0.6068 +vn -0.0012 0.8105 -0.5857 +vn 0.0007 0.6810 -0.7323 +vn -0.0009 0.6615 -0.7499 +vn 0.0008 0.6817 -0.7316 +vn 0.0011 0.4979 -0.8673 +vn 0.0021 0.5185 -0.8551 +vn 0.0014 0.5183 -0.8552 +vn 0.0022 0.3247 -0.9458 +vn 0.0013 0.3100 -0.9508 +vn 0.0023 0.3252 -0.9456 +vn 0.0011 0.1107 -0.9939 +vn 0.0007 0.1052 -0.9944 +vn 0.0011 0.1109 -0.9938 +vn 0.9351 -0.3543 0.0111 +vn 0.9914 -0.1289 -0.0237 +vn 0.9549 -0.2969 -0.0005 +vn 0.9733 -0.2295 -0.0002 +vn 0.9737 -0.2276 -0.0068 +vn 0.9736 -0.2281 -0.0069 +vn 0.9734 -0.2288 -0.0072 +vn 0.9977 -0.0677 -0.0018 +vn 0.9985 -0.0542 0.0017 +vn 0.9978 -0.0660 -0.0011 +vn 1.0000 -0.0000 -0.0001 +vn 1.0000 -0.0000 0.0001 +vn 0.9975 0.0712 0.0003 +vn -0.0011 -0.1050 -0.9945 +vn -0.0040 -0.3094 -0.9509 +vn -0.0095 -0.5166 -0.8562 +vn -0.0079 -0.4973 -0.8675 +vn -0.0121 -0.6607 -0.7506 +vn -0.0161 -0.7941 -0.6076 +vn -0.0196 -0.8948 -0.4460 +vn -0.0222 -0.9620 -0.2721 +vn -0.0237 -0.9955 -0.0914 +vn -0.0237 -0.9955 0.0914 +vn -0.0222 -0.9620 0.2721 +vn -0.0196 -0.8948 0.4460 +vn -0.0161 -0.7941 0.6076 +vn -0.0121 -0.6607 0.7506 +vn -0.0094 -0.5160 0.8566 +vn -0.0079 -0.4974 0.8675 +vn -0.0040 -0.3094 0.9509 +vn -0.0011 -0.1050 0.9945 +vn 0.0007 0.1050 0.9945 +vn 0.0012 0.3094 0.9509 +vn 0.0021 0.5185 0.8551 +vn 0.0011 0.4979 0.8673 +vn -0.0010 0.6607 0.7506 +vn -0.0028 0.7942 0.6077 +vn -0.0046 0.8950 0.4460 +vn -0.0059 0.9622 0.2721 +vn -0.0064 0.9958 0.0914 +vn -0.0064 0.9958 -0.0914 +vn -0.0059 0.9622 -0.2722 +vn -0.0046 0.8950 -0.4460 +vn -0.0028 0.7942 -0.6077 +vn -0.0010 0.6607 -0.7506 +vn 0.0006 0.5188 -0.8549 +vn 0.0011 0.4976 -0.8674 +vn 0.0012 0.3094 -0.9509 +vn 0.0007 0.1050 -0.9945 +vn 0.9237 -0.3831 -0.0009 +vn 0.9236 -0.3833 -0.0009 +vn 0.9363 -0.3512 -0.0006 +vn 0.9325 -0.3613 -0.0003 +vn 0.9324 -0.3613 0.0115 +vn 0.9299 -0.3674 0.0157 +vn 0.9254 -0.3788 0.0094 +vn 0.9238 -0.3828 -0.0009 +vn 0.9241 -0.3822 -0.0009 +vn 0.9300 -0.3673 0.0161 +vn 0.9323 -0.3614 0.0138 +vn 0.9246 -0.3810 -0.0009 +vn 0.9361 -0.3515 0.0112 +vn 0.9448 -0.3276 0.0066 +vn 0.9733 -0.2295 0.0002 +vn 0.9766 -0.2149 -0.0000 +vn 0.9767 -0.2148 -0.0000 +vn 0.9734 -0.2293 0.0002 +vn 0.9733 -0.2294 -0.0002 +vn 0.9739 -0.2268 0.0056 +vn 0.9740 -0.2263 0.0056 +vn 0.9760 -0.2179 0.0014 +vn 0.9747 -0.2233 0.0036 +vn 0.9741 -0.2258 -0.0065 +vn 0.9740 -0.2264 -0.0066 +vn 0.9736 -0.2283 0.0058 +vn 0.9973 -0.0735 -0.0022 +vn 0.9972 -0.0750 -0.0022 +vn 0.9974 -0.0713 -0.0022 +vn 0.9975 -0.0704 0.0001 +vn 0.9980 -0.0628 0.0001 +vn 0.9971 -0.0760 0.0003 +vn 0.9971 -0.0761 0.0003 +vn 0.9971 -0.0759 0.0003 +vn 0.9975 -0.0712 -0.0022 +vn 0.9974 -0.0725 -0.0033 +vn 0.9973 -0.0730 -0.0036 +vn 0.9971 -0.0758 0.0003 +vn 0.9972 -0.0753 0.0003 +vn 0.9974 -0.0713 -0.0027 +vn 0.9976 -0.0695 -0.0021 vt 0.601212 0.686463 vt 0.607212 0.688948 vt 0.604727 0.694949 @@ -5454,374 +4685,496 @@ vt 0.575599 0.766884 vt 0.574686 0.766602 vt 0.569733 0.766884 vt 0.570646 0.766602 -vn 1.0000 0.0000 0.0000 -vn 0.5922 -0.8058 -0.0000 -vn 0.7915 -0.6112 -0.0000 -vn 0.8934 -0.4493 -0.0000 -vn 0.9471 -0.3208 -0.0000 -vn 0.9992 0.0407 0.0002 -vn 0.9990 0.0454 0.0000 -vn 0.9923 0.1242 0.0005 -vn 0.9765 0.2154 0.0009 -vn 0.9471 0.3208 0.0014 -vn 0.8934 0.4493 0.0019 -vn 0.7915 0.6112 0.0026 -vn 0.5922 0.8058 0.0035 -vn 0.0000 -0.0980 -0.9952 -vn 0.0000 -0.2903 -0.9569 -vn -0.0000 -0.4714 -0.8819 -vn 0.0000 -0.6344 -0.7730 -vn 0.0000 -0.7730 -0.6344 -vn 0.0000 -0.8819 -0.4714 -vn 0.0000 -0.9569 -0.2903 -vn 0.0000 -0.9952 -0.0980 -vn 0.0000 -0.9952 0.0980 -vn 0.0000 -0.9569 0.2903 -vn 0.0000 -0.8819 0.4714 -vn 0.0000 -0.7730 0.6344 -vn 0.0000 -0.6344 0.7730 -vn -0.0000 -0.4714 0.8819 -vn -0.0000 -0.4716 0.8818 -vn -0.0000 -0.4715 0.8819 -vn 0.0000 -0.2903 0.9569 -vn 0.0000 -0.0980 0.9952 -vn 0.0000 0.0980 0.9952 -vn 0.0000 0.2903 0.9569 -vn 0.0000 0.4714 0.8819 -vn 0.0000 0.6344 0.7730 -vn 0.0000 0.7730 0.6344 -vn 0.0000 0.8819 0.4714 -vn 0.0000 0.9569 0.2903 -vn 0.0000 0.9952 0.0980 -vn 0.0000 0.9952 -0.0980 -vn 0.0000 0.9569 -0.2903 -vn 0.0000 0.8819 -0.4714 -vn 0.0000 0.7730 -0.6344 -vn 0.0000 0.6344 -0.7730 -vn -0.0000 0.4714 -0.8819 -vn 0.0000 0.2903 -0.9569 -vn 0.0000 0.0980 -0.9952 -vn 0.9765 -0.2154 -0.0000 -vn 0.9766 -0.2150 -0.0000 -vn 0.9923 -0.1242 0.0000 -vn 0.9923 -0.1243 -0.0000 -vn 0.9992 -0.0406 0.0000 -vn 0.9992 -0.0407 -0.0000 -vn 0.9992 0.0406 0.0002 -vn 0.9765 -0.2155 0.0000 s 1 -f 974/2065/296 975/2066/296 976/2067/296 -f 977/2068/297 978/2069/297 979/2070/297 -f 980/2071/298 981/2072/298 978/2069/298 -f 982/2073/299 983/2074/299 981/2072/299 -f 984/2075/300 985/2076/300 983/2074/300 -f 986/2077/301 987/2078/302 988/2079/302 -f 989/2080/303 990/2081/303 987/2078/303 -f 991/2082/304 992/2083/304 990/2081/304 -f 993/2084/305 994/2085/305 992/2083/305 -f 995/2086/306 996/2087/306 994/2085/306 -f 997/2088/307 998/2089/307 996/2087/307 -f 999/2090/308 1000/2091/308 998/2089/308 -f 1001/2092/309 1002/2093/309 1003/2094/309 -f 1003/2094/310 976/2095/310 1004/2096/310 -f 1005/2097/311 1006/2098/311 1007/2099/311 -f 1006/2098/312 1008/2100/312 1009/2101/312 -f 1009/2101/313 1010/2102/313 1011/2103/313 -f 1011/2103/314 1012/2104/314 1013/2105/314 -f 1013/2105/315 1014/2106/315 1015/2107/315 -f 1015/2107/316 1016/2108/316 1017/2109/316 -f 1016/2108/317 1018/2110/317 1017/2109/317 -f 1019/2111/318 1020/2112/318 1018/2110/318 -f 975/2113/319 1021/2114/319 1020/2112/319 -f 1022/2115/320 1023/2116/320 1021/2114/320 -f 1024/2117/321 1025/2118/321 1023/2116/321 -f 1026/2119/322 1027/2120/323 1028/2121/324 -f 1029/2122/325 1030/2123/325 1027/2120/325 -f 1031/2124/326 1032/2125/326 1030/2123/326 -f 1033/2126/327 1034/2127/327 1032/2125/327 -f 1035/2128/328 1036/2129/328 1034/2127/328 -f 1037/2130/329 1038/2131/329 1039/2132/329 -f 1037/2130/330 1040/2133/330 1038/2131/330 -f 1041/2134/331 1042/2135/331 1040/2133/331 -f 1043/2136/332 1044/2137/332 1042/2135/332 -f 1045/2138/333 1046/2139/333 1044/2137/333 -f 1047/2140/334 1048/2141/334 1046/2139/334 -f 1048/2141/335 1049/2142/335 1050/2143/335 -f 1050/2143/336 1051/2144/336 1052/2145/336 -f 1052/2145/337 1053/2146/337 1054/2147/337 -f 1054/2147/338 1055/2148/338 1056/2149/338 -f 1056/2149/339 1057/2150/339 1058/2151/339 -f 1059/2152/340 1060/2153/340 1061/2154/340 -f 1060/2153/341 1062/2155/341 1063/2156/341 -f 1063/2156/342 1064/2157/342 1001/2158/342 -f 1065/2159/343 1017/2160/344 1018/2161/343 -f 1066/2162/345 1030/2163/345 1032/2164/345 -f 1067/2165/345 1063/2166/345 1001/2167/346 -f 986/2077/347 1048/2168/348 1050/2169/347 -f 976/2067/296 1002/2170/296 1064/2171/296 -f 1064/2171/296 1062/2172/296 1059/2173/296 -f 1059/2173/296 1057/2174/296 1051/2175/296 -f 1057/2174/296 1055/2176/296 1051/2175/296 -f 1055/2176/296 1053/2177/296 1051/2175/296 -f 1051/2175/296 1049/2178/296 1068/2179/296 -f 1068/2179/296 1047/2180/296 1045/2181/296 -f 1045/2181/296 1043/2182/296 1041/2183/296 -f 1041/2183/296 1037/2184/296 974/2065/296 -f 974/2065/296 1035/2185/296 1033/2186/296 -f 1033/2186/296 1031/2187/296 1029/2188/296 -f 1029/2188/296 1026/2189/296 975/2066/296 -f 1026/2189/296 1024/2190/296 975/2066/296 -f 1024/2190/296 1022/2191/296 975/2066/296 -f 975/2066/296 1019/2192/296 1016/2193/296 -f 1016/2193/296 1014/2194/296 1012/2195/296 -f 1012/2195/296 1010/2196/296 976/2067/296 -f 1010/2196/296 1008/2197/296 976/2067/296 -f 1008/2197/296 1005/2198/296 976/2067/296 -f 976/2067/296 1064/2171/296 1051/2175/296 -f 1064/2171/296 1059/2173/296 1051/2175/296 -f 1051/2175/296 1068/2179/296 1045/2181/296 -f 1045/2181/296 1041/2183/296 1051/2175/296 -f 1041/2183/296 974/2065/296 1051/2175/296 -f 974/2065/296 1033/2186/296 975/2066/296 -f 1033/2186/296 1029/2188/296 975/2066/296 -f 975/2066/296 1016/2193/296 976/2067/296 -f 1016/2193/296 1012/2195/296 976/2067/296 -f 976/2067/296 1051/2175/296 974/2065/296 -f 977/2068/297 980/2071/297 978/2069/297 -f 980/2071/298 982/2073/298 981/2072/298 -f 982/2073/299 984/2075/299 983/2074/299 -f 984/2075/300 1065/2159/300 985/2076/300 -f 986/2077/301 989/2080/349 987/2078/302 -f 989/2080/303 991/2082/303 990/2081/303 -f 991/2082/304 993/2084/304 992/2083/304 -f 993/2084/305 995/2086/305 994/2085/305 -f 995/2086/306 997/2088/306 996/2087/306 -f 997/2088/307 999/2090/307 998/2089/307 -f 999/2090/308 1069/2199/308 1000/2091/308 -f 1001/2092/309 1064/2200/309 1002/2093/309 -f 1003/2094/310 1002/2093/310 976/2095/310 -f 1007/2099/311 1004/2096/311 1005/2097/311 -f 1004/2096/311 976/2095/311 1005/2097/311 -f 1006/2098/312 1005/2097/312 1008/2100/312 -f 1009/2101/313 1008/2100/313 1010/2102/313 -f 1011/2103/314 1010/2102/314 1012/2104/314 -f 1013/2105/315 1012/2104/315 1014/2106/315 -f 1015/2107/316 1014/2106/316 1016/2108/316 -f 1016/2108/317 1019/2111/317 1018/2110/317 -f 1019/2111/318 975/2113/318 1020/2112/318 -f 975/2113/319 1022/2115/319 1021/2114/319 -f 1022/2115/320 1024/2117/320 1023/2116/320 -f 1024/2117/321 1026/2119/321 1025/2118/321 -f 1028/2121/324 1025/2118/322 1026/2119/322 -f 1026/2119/322 1029/2122/322 1027/2120/323 -f 1029/2122/325 1031/2124/325 1030/2123/325 -f 1031/2124/326 1033/2126/326 1032/2125/326 -f 1033/2126/327 1035/2128/327 1034/2127/327 -f 1035/2128/328 974/2201/328 1036/2129/328 -f 1039/2132/329 1036/2129/329 974/2201/329 -f 974/2201/329 1037/2130/329 1039/2132/329 -f 1037/2130/330 1041/2134/330 1040/2133/330 -f 1041/2134/331 1043/2136/331 1042/2135/331 -f 1043/2136/332 1045/2138/332 1044/2137/332 -f 1045/2138/333 1047/2140/333 1046/2139/333 -f 1047/2140/334 1068/2202/334 1048/2141/334 -f 1048/2141/335 1068/2202/335 1049/2142/335 -f 1050/2143/336 1049/2142/336 1051/2144/336 -f 1052/2145/337 1051/2144/337 1053/2146/337 -f 1054/2147/338 1053/2146/338 1055/2148/338 -f 1056/2149/339 1055/2148/339 1057/2150/339 -f 1061/2154/340 1058/2151/340 1057/2150/340 -f 1057/2150/340 1059/2152/340 1061/2154/340 -f 1060/2153/341 1059/2152/341 1062/2155/341 -f 1063/2156/342 1062/2155/342 1064/2157/342 -f 1025/2203/343 1028/2204/343 985/2076/343 -f 1028/2204/343 1066/2162/343 985/2076/343 -f 985/2076/343 1065/2159/343 1018/2161/343 -f 1065/2159/343 1070/2205/343 1006/2206/343 -f 1070/2205/343 1007/2207/343 1006/2206/343 -f 1023/2208/343 1025/2203/343 985/2076/343 -f 1021/2209/343 1023/2208/343 985/2076/343 -f 1065/2159/343 1006/2206/343 1009/2210/343 -f 1065/2159/343 1009/2210/343 1011/2211/343 -f 1020/2212/343 1021/2209/343 985/2076/343 -f 1018/2161/343 1020/2212/343 985/2076/343 -f 1065/2159/343 1011/2211/343 1013/2213/343 -f 1065/2159/343 1013/2213/343 1015/2214/350 -f 1065/2159/343 1015/2214/350 1017/2160/344 -f 1036/2215/345 1039/2216/346 1071/2217/345 -f 1071/2217/345 1066/2162/345 1032/2164/346 -f 1066/2162/345 1028/2204/345 1027/2218/345 -f 1066/2162/345 1027/2218/345 1030/2163/345 -f 1034/2219/345 1036/2215/345 1071/2217/345 -f 1032/2164/346 1034/2219/345 1071/2217/345 -f 1004/2220/345 1007/2207/345 1070/2205/345 -f 1070/2205/345 1067/2165/345 1001/2167/345 -f 1067/2165/345 1061/2221/345 1060/2222/345 -f 1067/2165/345 1060/2222/345 1063/2166/345 -f 1003/2223/345 1004/2220/345 1070/2205/345 -f 1001/2167/345 1003/2223/345 1070/2205/345 -f 1058/2224/347 1061/2221/347 1067/2165/347 -f 986/2077/347 988/2079/347 1046/2225/347 -f 988/2079/347 1071/2217/347 1039/2216/347 -f 986/2077/347 1046/2225/347 1048/2168/348 -f 1039/2216/347 1038/2226/347 988/2079/347 -f 1038/2226/347 1040/2227/347 988/2079/347 -f 1058/2224/347 1067/2165/347 986/2077/347 -f 1056/2228/347 1058/2224/347 986/2077/347 -f 1040/2227/347 1042/2229/347 988/2079/347 -f 1042/2229/347 1044/2230/347 988/2079/347 -f 1054/2231/347 1056/2228/347 986/2077/347 -f 1052/2232/347 1054/2231/347 986/2077/347 -f 1044/2230/347 1046/2225/347 988/2079/347 -f 1050/2169/347 1052/2232/347 986/2077/347 -l 1075 1069 -l 1000 1074 -l 1072 979 -l 977 1073 -o Shell_Cylinder.002 -v -0.317579 2.171942 1.847565 -v 0.000000 2.303487 -0.098938 -v -0.317579 2.171942 -0.098938 -v 0.449124 1.854363 1.847565 -v 0.317579 1.536785 -0.098938 -v 0.449124 1.854363 -0.098938 -v 0.317579 1.536785 1.847565 -v 0.000000 1.405240 -0.098938 -v 0.000000 1.405239 1.847565 -v -0.317579 1.536785 -0.098938 -v -0.317579 1.536785 1.847565 -v -0.449124 1.854363 -0.098938 -v -0.449124 1.854363 1.847565 -v 0.000000 2.303487 1.847565 -v 0.317579 2.171942 -0.098938 -v 0.317579 2.171942 1.847565 -v 0.353356 2.207720 1.877207 -v 0.499721 1.854363 1.877207 -v 0.353356 1.501007 1.877207 -v 0.000000 1.354642 1.877207 -v -0.353356 1.501007 1.877207 -v -0.499721 1.854363 1.877207 -v -0.353356 2.207720 1.877207 -v 0.000000 2.354084 1.877207 -vt 0.125000 0.577656 -vt 0.000000 0.516094 -vt 0.125000 0.516094 -vt 0.750000 0.577656 -vt 0.625000 0.516094 -vt 0.750000 0.516094 -vt 0.625000 0.577656 -vt 0.500000 0.516094 -vt 0.500000 0.577656 -vt 0.375000 0.516094 -vt 0.375000 0.577656 -vt 0.250000 0.516094 -vt 0.250000 0.577656 -vt 1.000000 0.577656 -vt 0.875000 0.516094 -vt 1.000000 0.516094 -vt 0.875000 0.577656 -vt 0.707574 0.516599 -vt 0.690000 0.537812 -vt 0.707574 0.559026 -vt 0.218750 0.446250 -vt 0.195693 0.450000 -vt 0.195312 0.446250 -vt 0.172255 0.450000 -vt 0.171875 0.446250 -vt 0.148438 0.446250 -vt 0.171494 0.450000 -vt 0.148818 0.450000 -vt 0.125000 0.446250 -vt 0.148057 0.450000 -vt 0.125380 0.450000 -vt 0.101943 0.450000 -vt 0.101562 0.446250 -vt 0.078505 0.450000 -vt 0.078125 0.446250 -vt 0.054688 0.446250 -vt 0.077745 0.450000 -vt 0.055068 0.450000 -vt 0.031250 0.446250 -vt 0.054307 0.450000 -vt 0.031630 0.450000 -vt 0.013897 0.440000 -vt 0.130000 0.381948 -vt 0.246103 0.440000 -vt 0.000000 0.577656 -vt 0.750000 0.567813 -vt 0.792426 0.516599 -vt 0.792426 0.559026 -vt 0.810000 0.537812 -vt 0.750000 0.507812 -vt 0.218369 0.450000 -vt 0.194932 0.450000 -vt 0.124620 0.450000 -vt 0.101182 0.450000 -vt 0.212097 0.481049 -vt 0.130000 0.498052 -vt 0.047903 0.481049 -vt 0.047903 0.398951 -vt 0.212097 0.398951 -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 -vn -0.9239 0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.0000 0.0000 -1.0000 -vn 0.2049 0.4948 -0.8445 -vn 0.4948 0.2049 -0.8445 -vn 0.4948 -0.2049 -0.8445 -vn 0.2049 -0.4948 -0.8445 -vn -0.2049 -0.4948 -0.8445 -vn -0.4948 -0.2049 -0.8445 -vn -0.4948 0.2049 -0.8445 -vn -0.2049 0.4948 -0.8445 -vn 0.0000 -0.0000 1.0000 +f 998/990/335 999/991/335 1000/992/335 +f 1001/993/336 1002/994/336 1003/995/336 +f 1004/996/337 1005/997/337 1002/994/337 +f 1006/998/338 1007/999/338 1005/997/338 +f 1008/1000/339 1009/1001/339 1007/999/339 +f 1010/1002/340 1011/1003/341 1012/1004/342 +f 1013/1005/343 1014/1006/343 1011/1003/343 +f 1015/1007/344 1016/1008/344 1014/1006/344 +f 1017/1009/345 1018/1010/345 1016/1008/345 +f 1019/1011/346 1020/1012/346 1018/1010/346 +f 1021/1013/347 1022/1014/347 1020/1012/347 +f 1023/1015/348 1024/1016/348 1022/1014/348 +f 1025/1017/349 1026/1018/350 1027/1019/351 +f 1027/1019/352 1000/1020/353 1028/1021/354 +f 1029/1022/355 1030/1023/356 1031/1024/357 +f 1030/1023/358 1032/1025/359 1033/1026/360 +f 1033/1026/361 1034/1027/362 1035/1028/363 +f 1035/1028/364 1036/1029/365 1037/1030/366 +f 1037/1030/367 1038/1031/368 1039/1032/369 +f 1039/1032/370 1040/1033/371 1041/1034/372 +f 1040/1033/373 1042/1035/374 1041/1034/375 +f 1043/1036/376 1044/1037/377 1042/1035/378 +f 999/1038/379 1045/1039/380 1044/1037/381 +f 1046/1040/382 1047/1041/383 1045/1039/384 +f 1048/1042/385 1049/1043/386 1047/1041/387 +f 1050/1044/388 1051/1045/389 1052/1046/390 +f 1053/1047/391 1054/1048/392 1051/1045/393 +f 1055/1049/394 1056/1050/395 1054/1048/396 +f 1057/1051/397 1058/1052/398 1056/1050/399 +f 1059/1053/400 1060/1054/401 1058/1052/402 +f 1061/1055/403 1062/1056/404 1063/1057/405 +f 1061/1055/406 1064/1058/407 1062/1056/408 +f 1065/1059/409 1066/1060/410 1064/1058/411 +f 1067/1061/412 1068/1062/413 1066/1060/414 +f 1069/1063/415 1070/1064/416 1068/1062/417 +f 1071/1065/418 1072/1066/419 1070/1064/420 +f 1072/1066/421 1073/1067/422 1074/1068/423 +f 1074/1068/424 1075/1069/425 1076/1070/426 +f 1076/1070/427 1077/1071/428 1078/1072/429 +f 1078/1072/430 1079/1073/431 1080/1074/432 +f 1080/1074/433 1081/1075/434 1082/1076/435 +f 1083/1077/436 1084/1078/437 1085/1079/438 +f 1084/1078/439 1086/1080/440 1087/1081/441 +f 1087/1081/442 1088/1082/443 1025/1083/444 +f 1089/1084/445 1041/1085/446 1042/1086/447 +f 1090/1087/448 1054/1088/448 1056/1089/448 +f 1091/1090/449 1087/1091/450 1025/1092/451 +f 1010/1002/452 1072/1093/453 1074/1094/454 +f 1000/992/335 1026/1095/335 1088/1096/335 +f 1088/1096/335 1086/1097/335 1083/1098/335 +f 1083/1098/335 1081/1099/335 1075/1100/335 +f 1081/1099/335 1079/1101/335 1075/1100/335 +f 1079/1101/335 1077/1102/335 1075/1100/335 +f 1075/1100/335 1073/1103/335 1092/1104/335 +f 1092/1104/335 1071/1105/335 1069/1106/335 +f 1069/1106/335 1067/1107/335 1065/1108/335 +f 1065/1108/335 1061/1109/455 998/990/335 +f 998/990/335 1059/1110/335 1057/1111/335 +f 1057/1111/335 1055/1112/335 1053/1113/335 +f 1053/1113/335 1050/1114/335 999/991/335 +f 1050/1114/335 1048/1115/335 999/991/335 +f 1048/1115/335 1046/1116/335 999/991/335 +f 999/991/335 1043/1117/335 1040/1118/335 +f 1040/1118/335 1038/1119/335 1036/1120/335 +f 1036/1120/335 1034/1121/335 1000/992/335 +f 1034/1121/335 1032/1122/335 1000/992/335 +f 1032/1122/335 1029/1123/456 1000/992/335 +f 1000/992/335 1088/1096/335 1075/1100/335 +f 1088/1096/335 1083/1098/335 1075/1100/335 +f 1075/1100/335 1092/1104/335 1069/1106/335 +f 1069/1106/335 1065/1108/335 1075/1100/335 +f 1065/1108/335 998/990/335 1075/1100/335 +f 998/990/335 1057/1111/335 999/991/335 +f 1057/1111/335 1053/1113/335 999/991/335 +f 999/991/335 1040/1118/335 1000/992/335 +f 1040/1118/335 1036/1120/335 1000/992/335 +f 1000/992/335 1075/1100/335 998/990/335 +f 1001/993/336 1004/996/336 1002/994/336 +f 1004/996/337 1006/998/337 1005/997/337 +f 1006/998/338 1008/1000/338 1007/999/338 +f 1008/1000/339 1089/1084/339 1009/1001/339 +f 1010/1002/340 1013/1005/457 1011/1003/341 +f 1013/1005/343 1015/1007/343 1014/1006/343 +f 1015/1007/344 1017/1009/344 1016/1008/344 +f 1017/1009/345 1019/1011/345 1018/1010/345 +f 1019/1011/346 1021/1013/346 1020/1012/346 +f 1021/1013/347 1023/1015/347 1022/1014/347 +f 1023/1015/348 1093/1124/348 1024/1016/348 +f 1025/1017/349 1088/1125/458 1026/1018/350 +f 1027/1019/352 1026/1018/459 1000/1020/353 +f 1031/1024/357 1028/1021/460 1029/1022/355 +f 1028/1021/460 1000/1020/461 1029/1022/355 +f 1030/1023/358 1029/1022/462 1032/1025/359 +f 1033/1026/361 1032/1025/463 1034/1027/362 +f 1035/1028/364 1034/1027/464 1036/1029/365 +f 1037/1030/367 1036/1029/465 1038/1031/368 +f 1039/1032/370 1038/1031/466 1040/1033/371 +f 1040/1033/373 1043/1036/467 1042/1035/374 +f 1043/1036/376 999/1038/468 1044/1037/377 +f 999/1038/379 1046/1040/469 1045/1039/380 +f 1046/1040/382 1048/1042/470 1047/1041/383 +f 1048/1042/385 1050/1044/471 1049/1043/386 +f 1052/1046/390 1049/1043/472 1050/1044/388 +f 1050/1044/388 1053/1047/473 1051/1045/389 +f 1053/1047/391 1055/1049/474 1054/1048/392 +f 1055/1049/394 1057/1051/475 1056/1050/395 +f 1057/1051/397 1059/1053/476 1058/1052/398 +f 1059/1053/400 998/1126/477 1060/1054/401 +f 1063/1057/405 1060/1054/478 998/1126/479 +f 998/1126/479 1061/1055/403 1063/1057/405 +f 1061/1055/406 1065/1059/480 1064/1058/407 +f 1065/1059/409 1067/1061/481 1066/1060/410 +f 1067/1061/412 1069/1063/482 1068/1062/413 +f 1069/1063/415 1071/1065/483 1070/1064/416 +f 1071/1065/418 1092/1127/484 1072/1066/419 +f 1072/1066/421 1092/1127/485 1073/1067/422 +f 1074/1068/424 1073/1067/486 1075/1069/425 +f 1076/1070/427 1075/1069/487 1077/1071/428 +f 1078/1072/430 1077/1071/488 1079/1073/431 +f 1080/1074/433 1079/1073/489 1081/1075/434 +f 1085/1079/438 1082/1076/490 1081/1075/491 +f 1081/1075/491 1083/1077/436 1085/1079/438 +f 1084/1078/439 1083/1077/492 1086/1080/440 +f 1087/1081/442 1086/1080/493 1088/1082/443 +f 1049/1128/494 1052/1129/495 1009/1001/496 +f 1052/1129/497 1090/1087/497 1009/1001/497 +f 1009/1001/496 1089/1084/445 1042/1086/447 +f 1089/1084/445 1094/1130/498 1030/1131/499 +f 1094/1130/500 1031/1132/500 1030/1131/500 +f 1047/1133/501 1049/1128/494 1009/1001/496 +f 1045/1134/502 1047/1133/501 1009/1001/496 +f 1089/1084/445 1030/1131/499 1033/1135/503 +f 1089/1084/445 1033/1135/503 1035/1136/504 +f 1044/1137/505 1045/1134/502 1009/1001/496 +f 1042/1086/447 1044/1137/505 1009/1001/496 +f 1089/1084/445 1035/1136/504 1037/1138/506 +f 1089/1084/445 1037/1138/506 1039/1139/507 +f 1089/1084/445 1039/1139/507 1041/1085/446 +f 1060/1140/508 1063/1141/508 1095/1142/509 +f 1095/1142/509 1090/1087/510 1056/1089/511 +f 1090/1087/448 1052/1129/512 1051/1143/512 +f 1090/1087/448 1051/1143/512 1054/1088/448 +f 1058/1144/508 1060/1140/508 1095/1142/509 +f 1056/1089/511 1058/1144/508 1095/1142/509 +f 1028/1145/513 1031/1132/514 1094/1130/515 +f 1094/1130/515 1091/1090/510 1025/1092/516 +f 1091/1090/449 1085/1146/517 1084/1147/518 +f 1091/1090/449 1084/1147/518 1087/1091/450 +f 1027/1148/519 1028/1145/513 1094/1130/515 +f 1025/1092/516 1027/1148/519 1094/1130/515 +f 1082/1149/520 1085/1146/521 1091/1090/522 +f 1010/1002/452 1012/1004/523 1070/1150/524 +f 1012/1004/523 1095/1142/523 1063/1141/525 +f 1010/1002/452 1070/1150/524 1072/1093/453 +f 1063/1141/525 1062/1151/526 1012/1004/523 +f 1062/1151/526 1064/1152/527 1012/1004/523 +f 1082/1149/520 1091/1090/522 1010/1002/528 +f 1080/1153/529 1082/1149/530 1010/1002/452 +f 1064/1152/527 1066/1154/531 1012/1004/523 +f 1066/1154/531 1068/1155/532 1012/1004/523 +f 1078/1156/533 1080/1153/529 1010/1002/452 +f 1076/1157/534 1078/1156/533 1010/1002/452 +f 1068/1155/532 1070/1150/524 1012/1004/523 +f 1074/1094/454 1076/1157/534 1010/1002/452 +l 1001 1096 +o Drum +v -0.685426 -7.905577 2.210387 +v -0.799941 -8.555026 0.065820 +v 0.831222 -7.872484 2.210387 +v 0.973957 -8.516319 0.065820 +v 2.219756 -7.261513 2.210387 +v 2.598012 -7.801718 0.065820 +v 3.268788 -6.165681 2.210387 +v 3.824977 -6.520013 0.065820 +v 3.818609 -4.751818 2.210387 +v 4.468058 -4.866333 0.065820 +v 3.785516 -3.235170 2.210387 +v 4.429352 -3.092435 0.065821 +v 3.174545 -1.846635 2.210387 +v 3.714751 -1.468380 0.065821 +v 2.078714 -0.797604 2.210387 +v 2.433046 -0.241414 0.065821 +v 0.664850 -0.247783 2.210387 +v 0.304407 0.461593 0.065821 +v -0.851797 -0.280876 2.210387 +v -0.388448 0.446475 0.065821 +v -2.240333 -0.891846 2.210387 +v -2.618588 -0.351641 0.065821 +v -3.289364 -1.987678 2.210387 +v -3.845553 -1.633346 0.065821 +v -3.839185 -3.401542 2.210387 +v -4.488634 -3.287026 0.065821 +v -3.806092 -4.918190 2.210387 +v -4.449928 -5.060923 0.065820 +v -3.195122 -6.306724 2.210387 +v -3.735327 -6.684979 0.065820 +v -2.099290 -7.355755 2.210387 +v -2.453621 -7.911944 0.065820 +v 0.841415 -7.918458 -0.801292 +v -0.693603 -7.951953 -0.801292 +v 2.246768 -7.300088 -0.801292 +v 3.308505 -6.190983 -0.801292 +v 3.864985 -4.759995 -0.801292 +v 3.831492 -3.224977 -0.801292 +v 3.213122 -1.819624 -0.801292 +v 2.104017 -0.757886 -0.801292 +v 0.673028 -0.201405 -0.801292 +v -0.861990 -0.234899 -0.801292 +v -2.267343 -0.853270 -0.801292 +v -3.329081 -1.962375 -0.801292 +v -3.885562 -3.393364 -0.801292 +v -3.852067 -4.928381 -0.801292 +v -3.233697 -6.333735 -0.801292 +v -2.124592 -7.395471 -0.801292 +v -0.869009 -8.946727 2.210387 +v 1.060044 -8.904634 2.210387 +v 2.826147 -8.127530 2.210387 +v 4.160430 -6.733721 2.210387 +v 4.859760 -4.935401 2.210387 +v 4.817667 -3.006348 2.210387 +v 4.040561 -1.240244 2.210387 +v 2.646753 0.094039 2.210387 +v 0.331383 0.614584 2.210387 +v -0.422072 0.598144 2.210387 +v -2.846724 -0.025830 2.210387 +v -4.181007 -1.419639 2.210387 +v -4.880335 -3.217959 2.210387 +v -4.838243 -5.147012 2.210387 +v -4.061139 -6.913116 2.210387 +v -2.667329 -8.247398 2.210387 +v -0.592565 -7.378938 2.511454 +v 0.715478 -7.350397 2.511454 +v 1.913029 -6.823462 2.511454 +v 2.817774 -5.878354 2.511454 +v 3.291972 -4.658957 2.511454 +v 3.263430 -3.350914 2.511454 +v 2.736494 -2.153362 2.511454 +v 1.791387 -1.248617 2.511454 +v 0.571989 -0.774420 2.511454 +v -0.736054 -0.802961 2.511454 +v -1.933606 -1.329897 2.511454 +v -2.838351 -2.275005 2.511454 +v -3.312548 -3.494402 2.511454 +v -3.284007 -4.802446 2.511454 +v -2.757071 -5.999998 2.511454 +v -1.811962 -6.904742 2.511454 +v 0.288104 1.947729 0.012726 +v 0.315081 1.999833 2.157292 +v -0.438374 1.983392 2.157292 +v -0.404750 1.932611 0.012726 +vn -0.1707 -0.9683 -0.1824 +vn 0.2128 -0.9599 -0.1824 +vn 0.5640 -0.8054 -0.1824 +vn 0.8292 -0.5283 -0.1824 +vn 0.8293 -0.5283 -0.1824 +vn 0.9683 -0.1707 -0.1824 +vn 0.9599 0.2128 -0.1824 +vn 0.8054 0.5640 -0.1824 +vn 0.6803 0.7107 -0.1790 +vn 0.2621 0.9569 -0.1251 +vn 0.2660 0.9563 -0.1210 +vn 0.2161 0.9611 -0.1719 +vn -0.9998 -0.0120 -0.0152 +vn -0.9998 -0.0118 -0.0151 +vn -0.9998 -0.0115 -0.0149 +vn -0.2939 0.9484 -0.1190 +vn -0.2871 0.9495 -0.1265 +vn -0.2456 0.9542 -0.1711 +vn -0.7107 0.6803 -0.1790 +vn -0.8293 0.5283 -0.1824 +vn -0.8292 0.5283 -0.1824 +vn -0.9683 0.1707 -0.1824 +vn -0.9599 -0.2128 -0.1824 +vn -0.8054 -0.5640 -0.1824 +vn 0.6691 0.4685 -0.5769 +vn 0.7975 0.1768 -0.5769 +vn -0.5283 -0.8293 -0.1824 +vn -0.5283 -0.8292 -0.1824 +vn 0.4790 0.1062 0.8714 +vn 0.4019 0.2814 0.8714 +vn -0.0000 -0.0000 -1.0000 +vn -0.4649 0.6832 -0.5631 +vn -0.6889 0.4389 -0.5769 +vn -0.4389 -0.6889 -0.5769 +vn -0.1418 -0.8044 -0.5769 +vn 0.8044 -0.1418 -0.5769 +vn 0.6889 -0.4389 -0.5769 +vn -0.1094 0.8097 -0.5765 +vn 0.1691 0.8078 -0.5646 +vn -0.2080 0.8092 -0.5495 +vn -0.7975 -0.1768 -0.5769 +vn -0.6691 -0.4685 -0.5769 +vn 0.4685 -0.6691 -0.5769 +vn 0.1768 -0.7975 -0.5769 +vn 0.4389 0.6889 -0.5769 +vn 0.4358 0.6991 -0.5668 +vn -0.8044 0.1418 -0.5769 +vn -0.4685 0.6691 -0.5769 +vn 0.0874 0.8089 -0.5814 +vn -0.0000 -0.0000 1.0000 +vn -0.0003 0.0135 0.9999 +vn -0.0003 0.0134 0.9999 +vn -0.4019 -0.2814 0.8714 +vn -0.4790 -0.1062 0.8714 +vn 0.2636 0.4138 0.8714 +vn -0.2636 -0.4138 0.8714 +vn 0.0852 0.4831 0.8714 +vn -0.0852 -0.4831 0.8714 +vn 0.1062 -0.4790 0.8714 +vn -0.1062 0.4790 0.8714 +vn 0.2814 -0.4019 0.8714 +vn -0.2814 0.4019 0.8714 +vn 0.4138 -0.2636 0.8714 +vn -0.4138 0.2636 0.8714 +vn 0.4831 -0.0852 0.8714 +vn -0.4831 0.0852 0.8714 +vn -0.0218 0.9995 -0.0240 +vn -0.0008 0.0383 0.9993 +vn 0.0008 -0.0357 -0.9994 +vn 0.9999 0.0110 -0.0130 +vn 0.9999 0.0108 -0.0132 +vn 0.9999 0.0113 -0.0129 +vn 0.3128 0.9471 -0.0715 +vn -0.9998 -0.0124 -0.0154 +vn -0.3361 0.9391 -0.0717 +vn 0.9999 0.0105 -0.0133 +vt 0.524803 0.666220 s 1 -f 1076/2233/351 1077/2234/351 1078/2235/351 -f 1079/2236/352 1080/2237/352 1081/2238/352 -f 1082/2239/353 1083/2240/353 1080/2237/353 -f 1084/2241/354 1085/2242/354 1083/2240/354 -f 1086/2243/355 1087/2244/355 1085/2242/355 -f 1088/2245/356 1078/2235/356 1087/2244/356 -f 1089/2246/357 1090/2247/357 1077/2248/357 -f 1091/2249/358 1081/2238/358 1090/2247/358 -f 1085/2250/359 1087/2251/359 1078/2252/359 -f 1089/2253/360 1092/2254/360 1091/2255/360 -f 1091/2255/361 1093/2256/361 1079/2257/361 -f 1082/2258/362 1093/2259/362 1094/2260/362 -f 1084/2261/363 1094/2262/363 1095/2263/363 -f 1084/2261/364 1096/2264/364 1086/2265/364 -f 1086/2265/365 1097/2266/365 1088/2267/365 -f 1076/2268/366 1097/2269/366 1098/2270/366 -f 1089/2271/367 1098/2272/367 1099/2273/367 -f 1097/2274/368 1095/2275/368 1093/2276/368 -f 1076/2233/351 1089/2277/351 1077/2234/351 -f 1079/2236/352 1082/2239/352 1080/2237/352 -f 1082/2239/353 1084/2241/353 1083/2240/353 -f 1084/2241/354 1086/2243/354 1085/2242/354 -f 1086/2243/355 1088/2245/355 1087/2244/355 -f 1088/2245/356 1076/2233/356 1078/2235/356 -f 1089/2246/357 1091/2249/357 1090/2247/357 -f 1091/2249/358 1079/2236/358 1081/2238/358 -f 1078/2252/359 1077/2278/359 1080/2279/359 -f 1077/2278/359 1090/2280/359 1080/2279/359 -f 1090/2280/359 1081/2281/359 1080/2279/359 -f 1080/2279/359 1083/2282/359 1078/2252/359 -f 1083/2282/359 1085/2250/359 1078/2252/359 -f 1089/2253/360 1099/2283/360 1092/2254/360 -f 1091/2255/361 1092/2284/361 1093/2256/361 -f 1082/2258/362 1079/2257/362 1093/2259/362 -f 1084/2261/363 1082/2258/363 1094/2262/363 -f 1084/2261/364 1095/2285/364 1096/2264/364 -f 1086/2265/365 1096/2286/365 1097/2266/365 -f 1076/2268/366 1088/2267/366 1097/2269/366 -f 1089/2271/367 1076/2268/367 1098/2272/367 -f 1093/2276/368 1092/2287/368 1099/2288/368 -f 1099/2288/368 1098/2289/368 1097/2274/368 -f 1097/2274/368 1096/2290/368 1095/2275/368 -f 1095/2275/368 1094/2291/368 1093/2276/368 -f 1093/2276/368 1099/2288/368 1097/2274/368 +f 1098/1158/535 1146/1158/536 1145/1158/535 +f 1100/1158/536 1147/1158/537 1146/1158/536 +f 1102/1158/537 1148/1158/538 1147/1158/537 +f 1104/1158/539 1149/1158/540 1148/1158/538 +f 1106/1158/540 1150/1158/541 1149/1158/540 +f 1108/1158/541 1151/1158/542 1150/1158/541 +f 1151/1158/542 1112/1158/543 1152/1158/543 +f 1112/1158/544 1153/1158/545 1152/1158/546 +f 1154/1158/547 1180/1158/548 1116/1158/549 +f 1154/1158/550 1118/1158/551 1155/1158/552 +f 1155/1158/553 1120/1158/554 1156/1158/555 +f 1120/1158/554 1157/1158/556 1156/1158/555 +f 1157/1158/556 1124/1158/557 1158/1158/557 +f 1158/1158/557 1126/1158/558 1159/1158/558 +f 1110/1158/559 1134/1158/560 1135/1158/559 +f 1126/1158/558 1160/1158/561 1159/1158/558 +f 1128/1158/562 1145/1158/535 1160/1158/561 +f 1107/1158/563 1167/1158/564 1166/1158/563 +f 1139/1158/565 1135/1158/565 1131/1158/565 +f 1118/1158/566 1140/1158/567 1120/1158/567 +f 1128/1158/568 1130/1158/569 1098/1158/569 +f 1106/1158/570 1132/1158/571 1133/1158/570 +f 1116/1158/572 1137/1158/573 1138/1158/574 +f 1124/1158/575 1143/1158/576 1126/1158/576 +f 1102/1158/577 1129/1158/578 1131/1158/577 +f 1110/1158/559 1136/1158/579 1112/1158/580 +f 1120/1158/567 1141/1158/581 1122/1158/581 +f 1106/1158/570 1134/1158/560 1108/1158/560 +f 1118/1158/566 1138/1158/574 1139/1158/582 +f 1126/1158/576 1144/1158/568 1128/1158/568 +f 1104/1158/571 1131/1158/577 1132/1158/571 +f 1112/1158/580 1137/1158/573 1114/1158/583 +f 1100/1158/578 1130/1158/569 1129/1158/578 +f 1122/1158/581 1142/1158/575 1124/1158/575 +f 1099/1158/584 1145/1158/584 1146/1158/584 +f 1099/1158/584 1147/1158/584 1101/1158/584 +f 1101/1158/584 1148/1158/584 1103/1158/584 +f 1103/1158/584 1149/1158/584 1105/1158/584 +f 1105/1158/584 1150/1158/584 1107/1158/584 +f 1107/1158/584 1151/1158/584 1109/1158/584 +f 1111/1158/584 1151/1158/584 1152/1158/584 +f 1113/1158/584 1152/1158/584 1153/1158/585 +f 1113/1158/584 1154/1158/586 1115/1158/584 +f 1115/1158/584 1155/1158/584 1117/1158/584 +f 1117/1158/584 1156/1158/584 1119/1158/584 +f 1119/1158/584 1157/1158/584 1121/1158/584 +f 1121/1158/584 1158/1158/584 1123/1158/584 +f 1123/1158/584 1159/1158/584 1125/1158/584 +f 1127/1158/584 1159/1158/584 1160/1158/584 +f 1097/1158/584 1160/1158/584 1145/1158/584 +f 1168/1158/584 1172/1158/584 1176/1158/584 +f 1125/1158/587 1174/1158/588 1123/1158/588 +f 1109/1158/564 1168/1158/589 1167/1158/564 +f 1127/1158/590 1175/1158/587 1125/1158/587 +f 1113/1158/591 1168/1158/589 1111/1158/589 +f 1097/1158/592 1162/1158/593 1161/1158/592 +f 1097/1158/592 1176/1158/590 1127/1158/590 +f 1113/1158/591 1170/1158/594 1169/1158/591 +f 1099/1158/593 1163/1158/595 1162/1158/593 +f 1117/1158/596 1170/1158/594 1115/1158/594 +f 1101/1158/595 1164/1158/597 1163/1158/595 +f 1119/1158/598 1171/1158/596 1117/1158/596 +f 1105/1158/599 1164/1158/597 1103/1158/597 +f 1121/1158/600 1172/1158/598 1119/1158/598 +f 1107/1158/563 1165/1158/599 1105/1158/599 +f 1121/1158/600 1174/1158/588 1173/1158/600 +f 1178/1158/601 1180/1158/601 1179/1158/601 +f 1153/1158/585 1179/1158/602 1154/1158/586 +f 1114/1158/603 1180/1158/603 1177/1158/603 +f 1153/1158/604 1177/1158/605 1178/1158/606 +f 1098/1158/535 1100/1158/536 1146/1158/536 +f 1100/1158/536 1102/1158/537 1147/1158/537 +f 1102/1158/537 1104/1158/539 1148/1158/538 +f 1104/1158/539 1106/1158/540 1149/1158/540 +f 1106/1158/540 1108/1158/541 1150/1158/541 +f 1108/1158/541 1110/1158/542 1151/1158/542 +f 1151/1158/542 1110/1158/542 1112/1158/543 +f 1112/1158/544 1114/1158/607 1153/1158/545 +f 1154/1158/547 1179/1158/608 1180/1158/548 +f 1154/1158/550 1116/1158/609 1118/1158/551 +f 1155/1158/553 1118/1158/553 1120/1158/554 +f 1120/1158/554 1122/1158/556 1157/1158/556 +f 1157/1158/556 1122/1158/556 1124/1158/557 +f 1158/1158/557 1124/1158/557 1126/1158/558 +f 1110/1158/559 1108/1158/560 1134/1158/560 +f 1126/1158/558 1128/1158/562 1160/1158/561 +f 1128/1158/562 1098/1158/535 1145/1158/535 +f 1107/1158/563 1109/1158/564 1167/1158/564 +f 1131/1158/565 1129/1158/565 1130/1158/565 +f 1130/1158/565 1144/1158/565 1143/1158/565 +f 1143/1158/565 1142/1158/565 1141/1158/565 +f 1141/1158/565 1140/1158/565 1139/1158/565 +f 1139/1158/565 1138/1158/565 1137/1158/565 +f 1137/1158/565 1136/1158/565 1135/1158/565 +f 1135/1158/565 1134/1158/565 1133/1158/565 +f 1133/1158/565 1132/1158/565 1131/1158/565 +f 1131/1158/565 1130/1158/565 1143/1158/565 +f 1143/1158/565 1141/1158/565 1139/1158/565 +f 1139/1158/565 1137/1158/565 1135/1158/565 +f 1135/1158/565 1133/1158/565 1131/1158/565 +f 1131/1158/565 1143/1158/565 1139/1158/565 +f 1118/1158/566 1139/1158/582 1140/1158/567 +f 1128/1158/568 1144/1158/568 1130/1158/569 +f 1106/1158/570 1104/1158/571 1132/1158/571 +f 1116/1158/572 1114/1158/583 1137/1158/573 +f 1124/1158/575 1142/1158/575 1143/1158/576 +f 1102/1158/577 1100/1158/578 1129/1158/578 +f 1110/1158/559 1135/1158/559 1136/1158/579 +f 1120/1158/567 1140/1158/567 1141/1158/581 +f 1106/1158/570 1133/1158/570 1134/1158/560 +f 1118/1158/566 1116/1158/572 1138/1158/574 +f 1126/1158/576 1143/1158/576 1144/1158/568 +f 1104/1158/571 1102/1158/577 1131/1158/577 +f 1112/1158/580 1136/1158/579 1137/1158/573 +f 1100/1158/578 1098/1158/569 1130/1158/569 +f 1122/1158/581 1141/1158/581 1142/1158/575 +f 1099/1158/584 1097/1158/584 1145/1158/584 +f 1099/1158/584 1146/1158/584 1147/1158/584 +f 1101/1158/584 1147/1158/584 1148/1158/584 +f 1103/1158/584 1148/1158/584 1149/1158/584 +f 1105/1158/584 1149/1158/584 1150/1158/584 +f 1107/1158/584 1150/1158/584 1151/1158/584 +f 1111/1158/584 1109/1158/584 1151/1158/584 +f 1113/1158/584 1111/1158/584 1152/1158/584 +f 1113/1158/584 1153/1158/585 1154/1158/586 +f 1115/1158/584 1154/1158/586 1155/1158/584 +f 1117/1158/584 1155/1158/584 1156/1158/584 +f 1119/1158/584 1156/1158/584 1157/1158/584 +f 1121/1158/584 1157/1158/584 1158/1158/584 +f 1123/1158/584 1158/1158/584 1159/1158/584 +f 1127/1158/584 1125/1158/584 1159/1158/584 +f 1097/1158/584 1127/1158/584 1160/1158/584 +f 1176/1158/584 1161/1158/584 1162/1158/584 +f 1162/1158/584 1163/1158/584 1164/1158/584 +f 1164/1158/584 1165/1158/584 1166/1158/584 +f 1166/1158/584 1167/1158/584 1168/1158/584 +f 1168/1158/584 1169/1158/584 1170/1158/584 +f 1170/1158/584 1171/1158/584 1172/1158/584 +f 1172/1158/584 1173/1158/584 1174/1158/584 +f 1174/1158/584 1175/1158/584 1176/1158/584 +f 1176/1158/584 1162/1158/584 1164/1158/584 +f 1164/1158/584 1166/1158/584 1168/1158/584 +f 1168/1158/584 1170/1158/584 1172/1158/584 +f 1172/1158/584 1174/1158/584 1176/1158/584 +f 1176/1158/584 1164/1158/584 1168/1158/584 +f 1125/1158/587 1175/1158/587 1174/1158/588 +f 1109/1158/564 1111/1158/589 1168/1158/589 +f 1127/1158/590 1176/1158/590 1175/1158/587 +f 1113/1158/591 1169/1158/591 1168/1158/589 +f 1097/1158/592 1099/1158/593 1162/1158/593 +f 1097/1158/592 1161/1158/592 1176/1158/590 +f 1113/1158/591 1115/1158/594 1170/1158/594 +f 1099/1158/593 1101/1158/595 1163/1158/595 +f 1117/1158/596 1171/1158/596 1170/1158/594 +f 1101/1158/595 1103/1158/597 1164/1158/597 +f 1119/1158/598 1172/1158/598 1171/1158/596 +f 1105/1158/599 1165/1158/599 1164/1158/597 +f 1121/1158/600 1173/1158/600 1172/1158/598 +f 1107/1158/563 1166/1158/563 1165/1158/599 +f 1121/1158/600 1123/1158/588 1174/1158/588 +f 1178/1158/601 1177/1158/601 1180/1158/601 +f 1153/1158/585 1178/1158/602 1179/1158/602 +f 1114/1158/603 1116/1158/603 1180/1158/603 +f 1153/1158/604 1114/1158/610 1177/1158/605 From f5d1b7b787ec918066f383ba0df1515ec1be3d7c Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 20 Feb 2024 13:41:09 +1100 Subject: [PATCH 207/376] Add empty reload sounds to Benelli --- .../java/com/hbm/handler/GunConfiguration.java | 2 ++ .../hbm/handler/guncfg/Gun12GaugeFactory.java | 1 + .../java/com/hbm/items/weapon/ItemGunBase.java | 12 ++++++++---- src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/weapon/magReloadBolt.ogg | Bin 0 -> 72674 bytes 5 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/weapon/magReloadBolt.ogg diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 470883534..591d19e3d 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -63,6 +63,7 @@ public class GunConfiguration implements Cloneable { public int emptyReloadAdditionalDuration; //sound path to the reload sound public String reloadSound = ""; + public String reloadSoundEmpty = null; //whether the reload sound should be played at the beginning or at the end of the reload public boolean reloadSoundEnd = true; public String equipSound = ""; @@ -114,6 +115,7 @@ public class GunConfiguration implements Cloneable { public static final String RSOUND_REVOLVER = "hbm:weapon.revolverReload"; public static final String RSOUND_RIFLE = ""; public static final String RSOUND_MAG = "hbm:weapon.magReload"; + public static final String RSOUND_MAG_BOLT = "hbm:weapon.magReloadBolt"; public static final String RSOUND_SHOTGUN = "hbm:weapon.shotgunReload"; public static final String RSOUND_LAUNCHER = "hbm:weapon.rpgReload"; public static final String RSOUND_GRENADE = "hbm:weapon.hkReload"; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 3ebb558e5..0bb1f6103 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -246,6 +246,7 @@ public class Gun12GaugeFactory { config.reloadDuration = 21; config.emptyReloadAdditionalDuration = 15; config.reloadSound = GunConfiguration.RSOUND_MAG; + config.reloadSoundEmpty = GunConfiguration.RSOUND_MAG_BOLT; config.reloadSoundEnd = false; config.name += "Drum"; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 4edb48d46..c506eee78 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -364,6 +364,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu setIsReloading(stack, false); return; } + + String reloadSound = mainConfig.reloadSoundEmpty != null && getMag(stack) == 0 ? mainConfig.reloadSoundEmpty : mainConfig.reloadSound; ammo.stacksize = toConsume; setMag(stack, getMag(stack) + toAdd); @@ -375,11 +377,11 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu AnimType animType = availableFills <= 1 ? AnimType.RELOAD_END : AnimType.RELOAD_CYCLE; PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(animType.ordinal()), (EntityPlayerMP) player); if (availableFills > 1 && !mainConfig.reloadSoundEnd) - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); + world.playSoundAtEntity(player, reloadSound, 1.0F, 1.0F); } if(hasLoaded && mainConfig.reloadSoundEnd) - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); + world.playSoundAtEntity(player, reloadSound, 1.0F, 1.0F); if(mainConfig.ejector != null && mainConfig.ejector.getAfterReload()) queueCasing(player, mainConfig.ejector, prevCfg, stack); @@ -418,8 +420,10 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(getIsReloading(stack)) return; - if(!mainConfig.reloadSoundEnd) - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); + if(!mainConfig.reloadSoundEnd) { + String reloadSound = mainConfig.reloadSoundEmpty != null && getMag(stack) == 0 ? mainConfig.reloadSoundEmpty : mainConfig.reloadSound; + world.playSoundAtEntity(player, reloadSound, 1.0F, 1.0F); + } if(!world.isRemote) { AnimType reloadType = getMag(stack) == 0 ? AnimType.RELOAD_EMPTY : AnimType.RELOAD; diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index c50ce0410..56d368ce8 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -171,6 +171,7 @@ "weapon.revolverReload": {"category": "player", "sounds": [{"name": "weapon/revolverReload", "stream": false}]}, "weapon.shotgunReload": {"category": "player", "sounds": ["weapon/shotgunReload1", "weapon/shotgunReload2", "weapon/shotgunReload3"]}, "weapon.magReload": {"category": "player", "sounds": [{"name": "weapon/magReload", "stream": false}]}, + "weapon.magReloadBolt": {"category": "player", "sounds": [{"name": "weapon/magReloadBolt", "stream": false}]}, "weapon.rpgReload": {"category": "player", "sounds": [{"name": "weapon/rpgReload", "stream": false}]}, "weapon.boat": {"category": "player", "sounds": [{"name": "weapon/boat", "stream": false}]}, "weapon.hkShoot": {"category": "player", "sounds": [{"name": "weapon/hkShoot", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/magReloadBolt.ogg b/src/main/resources/assets/hbm/sounds/weapon/magReloadBolt.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0e8c4794a799169b10100257a400180f657bc9c2 GIT binary patch literal 72674 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 Z-#TT=C(bB*^1wT%%+NchEnf_qLzD7@T|7_zo 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 offsets = new HashMap(); + for (Map.Entry root : json.getAsJsonObject("offset").entrySet()) { + double[] offset = new double[3]; + + for (int i = 0; i < 3; i++) { + offset[i] = root.getValue().getAsJsonArray().get(i).getAsDouble(); + } + + offsets.put(root.getKey(), offset); + } + + // Top level parsing, this is for the animation name as set in Blender - for (Map.Entry root : json.entrySet()) { + for (Map.Entry root : json.getAsJsonObject("anim").entrySet()) { BusAnimation animation = new BusAnimation(); // Loading the buses for this animation JsonObject entryObject = root.getValue().getAsJsonObject(); for (Map.Entry model : entryObject.entrySet()) { - animation.addBus(model.getKey(), loadSequence(model.getValue().getAsJsonObject())); + String modelName = model.getKey(); + double[] offset = new double[3]; + if (offsets.containsKey(modelName)) offset = offsets.get(modelName); + animation.addBus(modelName, loadSequence(model.getValue().getAsJsonObject(), offset)); } animations.put(root.getKey(), animation); @@ -60,7 +78,7 @@ public class AnimationLoader { return animations; } - private static BusAnimationSequence loadSequence(JsonObject json) { + private static BusAnimationSequence loadSequence(JsonObject json, double[] offset) { BusAnimationSequence sequence = new BusAnimationSequence(); // Location fcurves @@ -108,11 +126,7 @@ public class AnimationLoader { } } - // The first location must be undone to return everything to 0,0,0 - // This is required to ensure that rotations occur around the origin of the part, not 0,0,0 - sequence.offset[0] = sequence.getFirstValue(Dimension.TX); - sequence.offset[1] = sequence.getFirstValue(Dimension.TY); - sequence.offset[2] = sequence.getFirstValue(Dimension.TZ); + sequence.offset = offset; return sequence; } diff --git a/src/main/java/com/hbm/render/anim/BusAnimation.java b/src/main/java/com/hbm/render/anim/BusAnimation.java index cef75c8a9..f2cb95b80 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimation.java +++ b/src/main/java/com/hbm/render/anim/BusAnimation.java @@ -10,7 +10,7 @@ import java.util.Map.Entry; public class BusAnimation { //"buses" with one S since it's not a vehicle - private final HashMap animationBuses= new HashMap(); + private final HashMap animationBuses = new HashMap(); //multiples buses exist simultaneously and start with 0. //a bus has one authority, i.e. the translation of a single part of a model or the rotation of the entire thing. //imagine the busses being film strips that hang from the ceiling, with the tape player diff --git a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java index 1bfb0d686..599edd63b 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java @@ -64,13 +64,6 @@ public class BusAnimationSequence { return this; } - - - public double getFirstValue(Dimension dimension) { - List keyframes = transformKeyframes.get(dimension.ordinal()); - if (keyframes.size() == 0) return 0; - return keyframes.get(0).value; - } //all transformation data is absolute, additive transformations have not yet been implemented public double[] getTransformation(int millis) { diff --git a/src/main/resources/assets/hbm/models/weapons/animations/cursed.json b/src/main/resources/assets/hbm/models/weapons/animations/cursed.json index 5c355a5aa..62c3a6aef 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/cursed.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/cursed.json @@ -1 +1 @@ -{"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [-0.0, 16.666666666666668], [0.1901400089263916, 50.0], [-0.0, 183.33333333333331]], "y": [[0.0, 0.0], [0.0, 16.666666666666668], [0.040800124406814575, 50.0], [0.0, 183.33333333333331]]}, "rotation_euler": {"x": [[0.0, 33.333333333333336], [38.989947046815615, 66.66666666666666], [0.0, 250.0]]}}, "Slide": {"location": {"z": [[-0.0, 0.0], [0.12989415228366852, 16.666666666666668], [0.12989415228366852, 50.0], [0.09892651438713074, 83.33333333333333], [-0.0, 83.33333333333334]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.0, 100.0], [0.017018239945173264, 116.66666666666669], [-0.09787648171186447, 83.33333333333331], [-0.12292511016130447, 266.66666666666663], [-0.10135655850172043, 133.33333333333337], [-0.1491556018590927, 150.0], [-0.13177432119846344, 400.0], [0.0, 283.33333333333326]], "z": [[-0.0, 0.0], [0.08164123445749283, 100.0], [-0.08178003877401352, 116.66666666666669], [-0.09053938835859299, 83.33333333333331], [-0.05708351731300354, 233.33333333333337], [-0.03883926570415497, 166.66666666666663], [0.0013935839524492621, 150.0], [0.006992057431489229, 400.0], [-0.0, 283.33333333333326]], "y": [[0.0, 0.0], [0.18025973439216614, 100.0], [0.44325628876686096, 116.66666666666669], [0.21647267043590546, 83.33333333333331], [0.27539756894111633, 200.0], [0.10282676666975021, 200.0], [0.16902926564216614, 150.0], [-0.034092918038368225, 400.0], [0.0, 283.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [14.347078728989414, 66.66666666666667], [22.703222659589517, 99.99999999999999], [15.15270124913971, 83.33333333333334], [1.8531396048511795, 100.0], [-18.417429219568255, 266.66666666666674], [-18.417429219568255, 99.99999999999989], [59.33201599901403, 200.0], [72.57186642203102, 216.66666666666663], [62.294070966562636, 116.66666666666674], [54.952785571147, 83.33333333333326], [0.0, 200.0]], "z": [[0.0, 0.0], [-10.592385430902713, 66.66666666666667], [-15.994342771878069, 99.99999999999999], [-11.103182835529408, 83.33333333333334], [-9.371659871492183, 100.0], [-9.698956560103671, 266.66666666666674], [-9.698956560103671, 149.9999999999999], [-50.8729052591287, 150.0], [-75.4402931564371, 216.66666666666663], [-52.8528848919616, 116.66666666666674], [-36.719021845907676, 83.33333333333326], [-0.0, 200.0]], "y": [[0.0, 0.0], [-3.154393948349805, 66.66666666666667], [-4.726022183917031, 99.99999999999999], [-3.3394954899517355, 83.33333333333334], [-2.877424441420499, 100.0], [-5.679812424619238, 266.66666666666674], [-5.679812424619238, 183.33333333333326], [-0.6765985391814631, 116.66666666666663], [21.457408107810238, 216.66666666666663], [34.27835619884117, 116.66666666666674], [43.4361748002513, 83.33333333333326], [0.0, 200.0]]}}, "Magazine": {"location": {"z": [[-0.0, 0.0], [-0.0, 300.0], [0.14596298336982727, 183.33333333333331], [0.41417545080184937, 249.99999999999994], [0.11441206932067871, 200.0000000000001], [-0.0, 133.33333333333337]], "y": [[0.0, 0.0], [0.0, 300.0], [-0.6360859274864197, 183.33333333333331], [-0.6360859274864197, 249.99999999999994], [-0.4159921109676361, 200.0000000000001], [0.0, 133.33333333333337]]}}, "Slide": {"location": {"z": [[-0.0, 0.0], [0.13051199913024902, 16.666666666666668], [0.13051199913024902, 1133.3333333333333], [0.0854932963848114, 66.66666666666652], [-0.0, 50.0]]}}}} \ No newline at end of file +{"anim": {"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [-0.0, 16.666666666666668], [0.1901400089263916, 50.0], [-0.0, 183.33333333333331]], "y": [[0.0, 0.0], [0.0, 16.666666666666668], [0.040800124406814575, 50.0], [0.0, 183.33333333333331]]}, "rotation_euler": {"x": [[0.0, 33.333333333333336], [38.989947046815615, 66.66666666666666], [0.0, 250.0]]}}, "Slide": {"location": {"z": [[-0.0, 0.0], [0.12989415228366852, 16.666666666666668], [0.12989415228366852, 50.0], [0.09892651438713074, 83.33333333333333], [-0.0, 83.33333333333334]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.0, 100.0], [0.017018239945173264, 116.66666666666669], [-0.09787648171186447, 83.33333333333331], [-0.12292511016130447, 266.66666666666663], [-0.10135655850172043, 133.33333333333337], [-0.1491556018590927, 150.0], [-0.13177432119846344, 400.0], [0.0, 283.33333333333326]], "z": [[-0.0, 0.0], [0.08164123445749283, 100.0], [-0.08178003877401352, 116.66666666666669], [-0.09053938835859299, 83.33333333333331], [-0.05708351731300354, 233.33333333333337], [-0.03883926570415497, 166.66666666666663], [0.0013935839524492621, 150.0], [0.006992057431489229, 400.0], [-0.0, 283.33333333333326]], "y": [[0.0, 0.0], [0.18025973439216614, 100.0], [0.44325628876686096, 116.66666666666669], [0.21647267043590546, 83.33333333333331], [0.27539756894111633, 200.0], [0.10282676666975021, 200.0], [0.16902926564216614, 150.0], [-0.034092918038368225, 400.0], [0.0, 283.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [14.347078728989414, 66.66666666666667], [22.703222659589517, 99.99999999999999], [15.15270124913971, 83.33333333333334], [1.8531396048511795, 100.0], [-18.417429219568255, 266.66666666666674], [-18.417429219568255, 99.99999999999989], [59.33201599901403, 200.0], [72.57186642203102, 216.66666666666663], [62.294070966562636, 116.66666666666674], [54.952785571147, 83.33333333333326], [0.0, 200.0]], "z": [[0.0, 0.0], [-10.592385430902713, 66.66666666666667], [-15.994342771878069, 99.99999999999999], [-11.103182835529408, 83.33333333333334], [-9.371659871492183, 100.0], [-9.698956560103671, 266.66666666666674], [-9.698956560103671, 149.9999999999999], [-50.8729052591287, 150.0], [-75.4402931564371, 216.66666666666663], [-52.8528848919616, 116.66666666666674], [-36.719021845907676, 83.33333333333326], [-0.0, 200.0]], "y": [[0.0, 0.0], [-3.154393948349805, 66.66666666666667], [-4.726022183917031, 99.99999999999999], [-3.3394954899517355, 83.33333333333334], [-2.877424441420499, 100.0], [-5.679812424619238, 266.66666666666674], [-5.679812424619238, 183.33333333333326], [-0.6765985391814631, 116.66666666666663], [21.457408107810238, 216.66666666666663], [34.27835619884117, 116.66666666666674], [43.4361748002513, 83.33333333333326], [0.0, 200.0]]}}, "Magazine": {"location": {"z": [[-0.0, 0.0], [-0.0, 300.0], [0.14596298336982727, 183.33333333333331], [0.41417545080184937, 249.99999999999994], [0.11441206932067871, 200.0000000000001], [-0.0, 133.33333333333337]], "y": [[0.0, 0.0], [0.0, 300.0], [-0.6360859274864197, 183.33333333333331], [-0.6360859274864197, 249.99999999999994], [-0.4159921109676361, 200.0000000000001], [0.0, 133.33333333333337]]}}, "Slide": {"location": {"z": [[-0.0, 0.0], [0.13051199913024902, 16.666666666666668], [0.13051199913024902, 1133.3333333333333], [0.0854932963848114, 66.66666666666652], [-0.0, 50.0]]}}}}, "offset": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/novac.json b/src/main/resources/assets/hbm/models/weapons/animations/novac.json index 809acd865..126e29cb0 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/novac.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/novac.json @@ -1 +1 @@ -{"Fire": {"Body": {"rotation_euler": {"x": [[0.0, 0.0], [29.145301697941925, 83.33333333333333], [0.0, 200.0]]}, "location": {"z": [[-0.0, 0.0], [0.7235583066940308, 50.0], [-0.0, 233.33333333333331]], "y": [[0.0, 0.0], [0.7866886854171753, 50.0], [0.0, 233.33333333333331]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-42.84400081430579, 16.666666666666668], [-42.84400081430579, 250.00000000000003], [0.0, 200.0]]}, "location": {"x": [[0.0, 0.0]], "z": [[1.1140995025634766, 0.0]], "y": [[0.48292604088783264, 0.0]]}}}} \ No newline at end of file +{"anim": {"Fire": {"Body": {"rotation_euler": {"x": [[0.0, 0.0], [29.145301697941925, 66.66666666666667], [0.0, 566.6666666666666]]}, "location": {"z": [[-0.0, 0.0], [0.7235583066940308, 33.333333333333336], [-0.0, 599.9999999999999]], "y": [[0.0, 0.0], [0.7866886854171753, 33.333333333333336], [0.0, 599.9999999999999]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-42.84400081430579, 16.666666666666668], [-42.84400081430579, 250.00000000000003], [0.0, 200.0]]}, "location": {"x": [[0.0, 0.0]], "z": [[1.1140995025634766, 0.0]], "y": [[0.48292604088783264, 0.0]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.04879806935787201, 166.66666666666666], [-0.1566363126039505, 133.33333333333334], [0.0, 166.66666666666669]], "z": [[-0.0, 0.0], [-0.7191624641418457, 166.66666666666666], [-1.058491826057434, 133.33333333333334], [-0.0, 166.66666666666669]], "y": [[0.0, 0.0], [0.7507638931274414, 166.66666666666666], [0.9907249212265015, 133.33333333333334], [0.0, 166.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [-19.391663497116777, 166.66666666666666], [45.102665825653546, 133.33333333333334], [0.0, 166.66666666666669]], "z": [[-0.0, 0.0], [0.5174686318159474, 166.66666666666666], [3.009666081818643, 133.33333333333334], [-0.0, 166.66666666666669]], "y": [[-0.0, 0.0], [1.4431158784559095, 166.66666666666666], [-0.8437833740125396, 133.33333333333334], [0.0, 166.66666666666669]]}}}}, "offset": {"Cylinder": [3.725290298461914e-09, 0.5323800444602966, 0.4562000334262848], "Hammer": [0.0, 0.48292604088783264, 1.1140995025634766], "Trigger": [0.0, 0.12013805657625198, 0.7557680010795593]}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/python.json b/src/main/resources/assets/hbm/models/weapons/animations/python.json index 5053774fb..8659ec6c1 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/python.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/python.json @@ -1 +1 @@ -{"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [0.1901400089263916, 50.0], [-0.0, 283.3333333333333]], "y": [[0.0, 0.0], [0.22623062133789062, 50.0], [0.0, 283.3333333333333]]}, "rotation_euler": {"x": [[0.0, 16.666666666666668], [50.512076610560676, 66.66666666666666], [0.0, 250.0]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-44.61753114928588, 16.666666666666668], [-44.61753114928588, 183.33333333333334], [0.0, 300.0]]}, "location": {"x": [[0.00012800097465515137, 0.0]], "z": [[0.1478099822998047, 0.0]], "y": [[0.1151699647307396, 0.0]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.1266033947467804, 216.66666666666669], [-0.1256844699382782, 66.66666666666663], [-0.10699314624071121, 100.0], [-0.05540347099304199, 183.33333333333331], [-0.04984791576862335, 83.33333333333337], [-0.04814600944519043, 100.0], [-0.0495946928858757, 50.0], [-0.1901838481426239, 216.66666666666663], [-0.209717258810997, 366.66666666666663], [-0.2682616710662842, 83.33333333333326], [0.06351689994335175, 100.00000000000023], [0.059162016957998276, 83.33333333333326], [0.0, 199.99999999999977]], "z": [[-0.0, 0.0], [0.018239933997392654, 216.66666666666669], [-0.003715081140398979, 66.66666666666663], [0.003378540277481079, 100.0], [0.06673367321491241, 183.33333333333331], [0.13605912029743195, 83.33333333333337], [0.11836071312427521, 100.0], [0.13753235340118408, 50.0], [0.2322661280632019, 216.66666666666663], [0.20868675410747528, 366.66666666666663], [0.15863937139511108, 83.33333333333326], [0.2003980427980423, 100.00000000000023], [0.09448619186878204, 83.33333333333326], [-0.0, 199.99999999999977]], "y": [[0.0, 0.0], [0.04348362237215042, 216.66666666666669], [0.04043026641011238, 66.66666666666663], [0.0498494915664196, 100.0], [0.21255171298980713, 183.33333333333331], [0.027551360428333282, 83.33333333333337], [0.09703753143548965, 100.0], [0.024584002792835236, 50.0], [-0.3309659957885742, 216.66666666666663], [-0.3340303301811218, 366.66666666666663], [-0.1700890064239502, 83.33333333333326], [0.016301512718200684, 100.00000000000023], [-0.015913818031549454, 83.33333333333326], [0.0, 199.99999999999977]]}, "rotation_euler": {"x": [[0.0, 0.0], [3.3686347844983024, 150.0], [0.02222707974050119, 166.66666666666663], [4.537149524119608, 100.00000000000006], [61.414745582626026, 233.33333333333331], [52.280518454609116, 133.33333333333337], [-71.68136001842309, 199.9999999999999], [-67.29034068404862, 366.66666666666674], [-53.072130549224426, 116.66666666666652], [-7.130840436898373, 100.00000000000023], [-2.7997762896148553, 83.33333333333326], [0.0, 199.99999999999977]], "z": [[0.0, 0.0], [-17.712562234959403, 150.0], [13.30397138517142, 166.66666666666663], [5.758366003376731, 100.00000000000006], [5.603675025280636, 233.33333333333331], [6.040763589705493, 133.33333333333337], [-1.4811513876747122, 199.9999999999999], [-0.9937320130296772, 366.66666666666674], [5.75973417564485, 116.66666666666652], [-7.87355264592462, 100.00000000000023], [-5.935155631645579, 83.33333333333326], [-0.0, 199.99999999999977]], "y": [[0.0, 0.0], [-3.362418245136533, 150.0], [5.488280686800564, 166.66666666666663], [2.9251945710321565, 100.00000000000006], [-3.2122371128833507, 233.33333333333331], [-2.2836878362589266, 133.33333333333337], [6.285038902068653, 199.9999999999999], [6.379913644734715, 366.66666666666674], [24.273973215848397, 116.66666666666652], [-30.381999654726528, 100.00000000000023], [-9.056688259237983, 83.33333333333326], [0.0, 199.99999999999977]]}}, "Cylinder": {"location": {"x": [[-0.0010489225387573242, 0.0], [-0.0010489225387573242, 283.3333333333333], [-0.07956840097904205, 83.33333333333331], [-0.07956840097904205, 1200.0], [-0.0010489225387573242, 83.33333333333326]], "z": [[0.07426249980926514, 0.0], [0.07426249980926514, 283.3333333333333], [0.07129553705453873, 83.33333333333331], [0.07129553705453873, 1200.0], [0.07426249980926514, 83.33333333333326]], "y": [[0.10388392210006714, 0.0], [0.10388392210006714, 283.3333333333333], [0.07195358723402023, 83.33333333333331], [0.07195358723402023, 1200.0], [0.10388392210006714, 83.33333333333326]]}}}} \ No newline at end of file +{"anim": {"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [0.1901400089263916, 50.0], [-0.0, 283.3333333333333]], "y": [[0.0, 0.0], [0.22623062133789062, 50.0], [0.0, 283.3333333333333]]}, "rotation_euler": {"x": [[0.0, 16.666666666666668], [50.512076610560676, 66.66666666666666], [0.0, 250.0]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-44.61753114928588, 16.666666666666668], [-44.61753114928588, 183.33333333333334], [0.0, 300.0]]}, "location": {"x": [[0.00012800097465515137, 0.0]], "z": [[0.1478099822998047, 0.0]], "y": [[0.1151699647307396, 0.0]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.1266033947467804, 216.66666666666669], [-0.1256844699382782, 66.66666666666663], [-0.10699314624071121, 100.0], [-0.05540347099304199, 183.33333333333331], [-0.04984791576862335, 83.33333333333337], [-0.04814600944519043, 100.0], [-0.0495946928858757, 50.0], [-0.1901838481426239, 216.66666666666663], [-0.209717258810997, 366.66666666666663], [-0.2682616710662842, 83.33333333333326], [0.06351689994335175, 100.00000000000023], [0.059162016957998276, 83.33333333333326], [0.0, 199.99999999999977]], "z": [[-0.0, 0.0], [0.018239933997392654, 216.66666666666669], [-0.003715081140398979, 66.66666666666663], [0.003378540277481079, 100.0], [0.06673367321491241, 183.33333333333331], [0.13605912029743195, 83.33333333333337], [0.11836071312427521, 100.0], [0.13753235340118408, 50.0], [0.2322661280632019, 216.66666666666663], [0.20868675410747528, 366.66666666666663], [0.15863937139511108, 83.33333333333326], [0.2003980427980423, 100.00000000000023], [0.09448619186878204, 83.33333333333326], [-0.0, 199.99999999999977]], "y": [[0.0, 0.0], [0.04348362237215042, 216.66666666666669], [0.04043026641011238, 66.66666666666663], [0.0498494915664196, 100.0], [0.21255171298980713, 183.33333333333331], [0.027551360428333282, 83.33333333333337], [0.09703753143548965, 100.0], [0.024584002792835236, 50.0], [-0.3309659957885742, 216.66666666666663], [-0.3340303301811218, 366.66666666666663], [-0.1700890064239502, 83.33333333333326], [0.016301512718200684, 100.00000000000023], [-0.015913818031549454, 83.33333333333326], [0.0, 199.99999999999977]]}, "rotation_euler": {"x": [[0.0, 0.0], [3.3686347844983024, 150.0], [0.02222707974050119, 166.66666666666663], [4.537149524119608, 100.00000000000006], [61.414745582626026, 233.33333333333331], [52.280518454609116, 133.33333333333337], [-71.68136001842309, 199.9999999999999], [-67.29034068404862, 366.66666666666674], [-53.072130549224426, 116.66666666666652], [-7.130840436898373, 100.00000000000023], [-2.7997762896148553, 83.33333333333326], [0.0, 199.99999999999977]], "z": [[0.0, 0.0], [-17.712562234959403, 150.0], [13.30397138517142, 166.66666666666663], [5.758366003376731, 100.00000000000006], [5.603675025280636, 233.33333333333331], [6.040763589705493, 133.33333333333337], [-1.4811513876747122, 199.9999999999999], [-0.9937320130296772, 366.66666666666674], [5.75973417564485, 116.66666666666652], [-7.87355264592462, 100.00000000000023], [-5.935155631645579, 83.33333333333326], [-0.0, 199.99999999999977]], "y": [[0.0, 0.0], [-3.362418245136533, 150.0], [5.488280686800564, 166.66666666666663], [2.9251945710321565, 100.00000000000006], [-3.2122371128833507, 233.33333333333331], [-2.2836878362589266, 133.33333333333337], [6.285038902068653, 199.9999999999999], [6.379913644734715, 366.66666666666674], [24.273973215848397, 116.66666666666652], [-30.381999654726528, 100.00000000000023], [-9.056688259237983, 83.33333333333326], [0.0, 199.99999999999977]]}}, "Cylinder": {"location": {"x": [[-0.0010489225387573242, 0.0], [-0.0010489225387573242, 283.3333333333333], [-0.07956840097904205, 83.33333333333331], [-0.07956840097904205, 1200.0], [-0.0010489225387573242, 83.33333333333326]], "z": [[0.07426249980926514, 0.0], [0.07426249980926514, 283.3333333333333], [0.07129553705453873, 83.33333333333331], [0.07129553705453873, 1200.0], [0.07426249980926514, 83.33333333333326]], "y": [[0.10388392210006714, 0.0], [0.10388392210006714, 283.3333333333333], [0.07195358723402023, 83.33333333333331], [0.07195358723402023, 1200.0], [0.10388392210006714, 83.33333333333326]]}}}}, "offset": {"Cylinder": [-0.0010489225387573242, 0.10388392210006714, 0.07426249980926514], "Grip": [0.0, -1.8214237229585706e-08, -0.0], "Hammer": [0.00012800097465515137, 0.1151699647307396, 0.1478099822998047]}} \ No newline at end of file From d979fd2e0900227761fdc7a264b6652315bdba39 Mon Sep 17 00:00:00 2001 From: George Paton Date: Wed, 31 Jan 2024 17:11:03 +1100 Subject: [PATCH 134/376] Add support for shotgun reloading animations Add support for alternate reload animations when loading from completely empty Add animations for Samuel The Big Fucking Shotgun --- .../com/hbm/handler/GunConfiguration.java | 13 +- .../hbm/handler/guncfg/Gun4GaugeFactory.java | 18 +- .../com/hbm/items/weapon/ItemGunBase.java | 25 +- src/main/java/com/hbm/main/ClientProxy.java | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 3 + .../java/com/hbm/main/ResourceManager.java | 1 + .../com/hbm/packet/GunAnimationPacket.java | 12 +- .../com/hbm/render/anim/HbmAnimations.java | 27 +- .../item/weapon/ItemRenderWeaponKS23.java | 144 + .../item/weapon/ItemRenderWeaponObj.java | 42 +- .../hbm/models/weapons/animations/ks23.json | 1 + .../assets/hbm/models/weapons/ks23.obj | 11267 ++++++++-------- 12 files changed, 5576 insertions(+), 5979 deletions(-) create mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java create mode 100644 src/main/resources/assets/hbm/models/weapons/animations/ks23.json diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index a3992d94c..fe0e09b56 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -49,17 +49,18 @@ public class GunConfiguration implements Cloneable { //the target FOV/multiplied FOV modifier when sneaking public float zoomFOV = 0.0F; - //how long the reload animation will play - //MUST BE GREATER THAN ZERO ! ! ! - public int reloadDuration; //duration of every animation cycle, used also for how quickly a burst fire rifle can fire public int firingDuration; - //sound path to the reload sound - public String reloadSound = ""; //sound path to the shooting sound public String firingSound = ""; public float firingVolume = 1.0F; public float firingPitch = 1.0F; + //how long the reload animation will play + //MUST BE GREATER THAN ZERO ! ! ! + public int reloadDuration; + public int emptyReloadAdditionalDuration; + //sound path to the reload sound + public String reloadSound = ""; //whether the reload sound should be played at the beginning or at the end of the reload public boolean reloadSoundEnd = true; public String equipSound = ""; @@ -68,6 +69,8 @@ public class GunConfiguration implements Cloneable { public int ammoCap; //0 does not allow direct reload, 1 is full clip, 2 is single bullet public int reloadType; + // If the animations are designed to be sequential, the last frame will be held until the next anmiation starts + public boolean reloadAnimationsSequential = false; //whether or not the infinity enchantment should work public boolean allowsInfinity; //whether the ammo count should be displayed diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 7d979adf4..8dfdc1d18 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -17,6 +17,7 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.main.ResourceManager; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -24,7 +25,6 @@ import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; @@ -84,6 +84,18 @@ public class Gun4GaugeFactory { config.name = "ks23"; config.manufacturer = EnumGunManufacturer.TULSKY; + config.emptyReloadAdditionalDuration = 5; + + config.reloadAnimationsSequential = true; + + config.loadAnimations = i -> { + config.animations.put(AnimType.CYCLE, ResourceManager.ks23_anim.get("Fire")); + config.animations.put(AnimType.RELOAD, ResourceManager.ks23_anim.get("ReloadStart")); + config.animations.put(AnimType.RELOAD_EMPTY, ResourceManager.ks23_anim.get("ReloadEmptyStart")); + config.animations.put(AnimType.RELOAD_CYCLE, ResourceManager.ks23_anim.get("Reload")); + config.animations.put(AnimType.RELOAD_END, ResourceManager.ks23_anim.get("ReloadEnd")); + }; + config.config = HbmCollection.g4; return config; @@ -203,7 +215,7 @@ public class Gun4GaugeFactory { PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); + bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { @@ -494,7 +506,7 @@ public class Gun4GaugeFactory { BulletConfigFactory.nuclearExplosion(creature, 0, 0, 0, ExplosionNukeSmall.PARAMS_TOTS); bulletnt.worldObj.removeEntity(creature); - bulletnt.worldObj.unloadEntities(new ArrayList() {{ add(creature); }}); + bulletnt.worldObj.unloadEntities(new ArrayList() {{ add(creature); }}); } } } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index eafabf663..406e65a81 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -376,17 +376,20 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu ammo.stacksize = toConsume; setMag(stack, getMag(stack) + toAdd); - if (getMag(stack) >= mainConfig.ammoCap) + if (getMag(stack) >= mainConfig.ammoCap) { setIsReloading(stack, false); - else + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD_END.ordinal()), (EntityPlayerMP) player); + } else { resetReloadCycle(player, stack); + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD_CYCLE.ordinal()), (EntityPlayerMP) player); + } if(hasLoaded && mainConfig.reloadSoundEnd) world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); if(mainConfig.ejector != null && mainConfig.ejector.getAfterReload()) queueCasing(player, mainConfig.ejector, prevCfg, stack); - + InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length - 1, ammo); } else { setReloadCycle(stack, getReloadCycle(stack) - 1); @@ -403,8 +406,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(player.isSneaking() && hasInfinity(stack, mainConfig)) { - if(this.getMag(stack) == mainConfig.ammoCap) { - this.setMag(stack, 0); + if(getMag(stack) == mainConfig.ammoCap) { + setMag(stack, 0); this.resetAmmoType(stack, world, player); world.playSoundAtEntity(player, "tile.piston.out", 1.0F, 1.0F); } @@ -412,7 +415,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu return; } - if(this.getMag(stack) == mainConfig.ammoCap) + if(getMag(stack) == mainConfig.ammoCap) return; if(getIsReloading(stack)) @@ -421,8 +424,10 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(!mainConfig.reloadSoundEnd) world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); - if(!world.isRemote) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD.ordinal()), (EntityPlayerMP) player); + if(!world.isRemote) { + AnimType reloadType = getMag(stack) == 0 ? AnimType.RELOAD_EMPTY : AnimType.RELOAD; + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(reloadType.ordinal()), (EntityPlayerMP) player); + } setIsReloading(stack, true); resetReloadCycle(player, stack); @@ -829,7 +834,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu } public static int getReloadDuration(EntityPlayer player, ItemStack stack) { - int cycle = ((ItemGunBase) stack.getItem()).mainConfig.reloadDuration; + GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; + int cycle = config.reloadDuration; + if (getMag(stack) == 0) cycle += config.emptyReloadAdditionalDuration; if(isTrenchMaster(player)) return Math.max(1, cycle / 2); return cycle; } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 1d4798582..bd1511af5 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -542,7 +542,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_bio_revolver, new ItemRenderBioRevolver()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_deagle, new ItemRenderWeaponObj()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_supershotgun, new ItemRenderWeaponShotty()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_ks23, new ItemRenderWeaponObj()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_ks23, new ItemRenderWeaponKS23()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer, new ItemRenderWeaponObj()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_flechette, new ItemRenderWeaponObj()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderWeaponQuadro()); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 2aa380413..687a62625 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -321,6 +321,9 @@ public class ModEventHandlerClient { if(animation == null) continue; + + if(animation.holdLastFrame) + continue; long time = System.currentTimeMillis() - animation.startMillis; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 6c3150656..0edf21cfc 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -847,6 +847,7 @@ public class ResourceManager { public static final HashMap python_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/python.json")); public static final HashMap cursed_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/cursed.json")); public static final HashMap novac_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/novac.json")); + public static final HashMap ks23_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/ks23.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); diff --git a/src/main/java/com/hbm/packet/GunAnimationPacket.java b/src/main/java/com/hbm/packet/GunAnimationPacket.java index 3a98fdffb..1fb244f01 100644 --- a/src/main/java/com/hbm/packet/GunAnimationPacket.java +++ b/src/main/java/com/hbm/packet/GunAnimationPacket.java @@ -58,10 +58,18 @@ public class GunAnimationPacket implements IMessage { return null; AnimType type = AnimType.values()[m.type]; - BusAnimation animation = ((ItemGunBase) stack.getItem()).getAnimation(stack, type); + ItemGunBase base = (ItemGunBase) stack.getItem(); + + BusAnimation animation = base.getAnimation(stack, type); + + // Fallback to regular reload if no empty reload animation + if(animation == null && type == AnimType.RELOAD_EMPTY) { + animation = base.getAnimation(stack, AnimType.RELOAD); + } if(animation != null) { - HbmAnimations.hotbar[slot] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); + boolean isReloadAnimation = type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE || type == AnimType.RELOAD_EMPTY; + HbmAnimations.hotbar[slot] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, isReloadAnimation && base.mainConfig.reloadAnimationsSequential); } } catch(Exception x) { } diff --git a/src/main/java/com/hbm/render/anim/HbmAnimations.java b/src/main/java/com/hbm/render/anim/HbmAnimations.java index 3d9c0c44c..3f99c151e 100644 --- a/src/main/java/com/hbm/render/anim/HbmAnimations.java +++ b/src/main/java/com/hbm/render/anim/HbmAnimations.java @@ -18,13 +18,19 @@ public class HbmAnimations { public static final Animation[] hotbar = new Animation[9]; public static enum AnimType { - RELOAD, //animation for every reload cycle - CYCLE, //animation for every firing cycle - ALT_CYCLE, //animation for alt fire cycles - SPINUP, //animation for actionstart - SPINDOWN, //animation for actionend - EQUIP //animation for drawing the weapon + RELOAD, //animation for reloading the weapon + RELOAD_EMPTY, //animation for reloading from empty + RELOAD_CYCLE, //animation that plays for every individual round (for shotguns and similar single round loading weapons) + RELOAD_END, //animation for transitioning from our RELOAD_CYCLE to idle + CYCLE, //animation for every firing cycle + ALT_CYCLE, //animation for alt fire cycles + SPINUP, //animation for actionstart + SPINDOWN, //animation for actionend + EQUIP //animation for drawing the weapon } + + // A NOTE ON SHOTGUN STYLE RELOADS + // Make sure the RELOAD and RELOAD_EMPTY adds shells, not just RELOAD_CYCLE, they all proc once for each loaded shell public static class Animation { @@ -35,12 +41,21 @@ public class HbmAnimations { public long startMillis; //the animation bus public BusAnimation animation; + // If set, don't cancel this animation when the timer ends, instead wait for the next to start + public boolean holdLastFrame = false; public Animation(String key, long startMillis, BusAnimation animation) { this.key = key; this.startMillis = startMillis; this.animation = animation; } + + public Animation(String key, long startMillis, BusAnimation animation, boolean holdLastFrame) { + this.key = key; + this.startMillis = startMillis; + this.animation = animation; + this.holdLastFrame = holdLastFrame; + } } public static Animation getRelevantAnim() { diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java new file mode 100644 index 000000000..9ede89c08 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java @@ -0,0 +1,144 @@ +package com.hbm.render.item.weapon; + +import java.awt.Color; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.particle.SpentCasing; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderWeaponKS23 implements IItemRenderer { + + public ItemRenderWeaponKS23() { } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_CULL_FACE); + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ks23_tex); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + GL11.glTranslatef(1.0F, 0.5F, -0.25F); + GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-100, 0.0F, 1.0F, 0.0F); + GL11.glScaled(0.75, 0.75, 0.75); + + if(player.isSneaking()) { + GL11.glRotatef(4.5F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-2F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-0.9F, 0.2F, 0.325F); + } + + HbmAnimations.applyRelevantTransformation("Body"); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.ks23.renderPart("Body"); + ResourceManager.ks23.renderPart("Trigger"); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Bolt"); + ResourceManager.ks23.renderPart("Bolt"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Guard"); + ResourceManager.ks23.renderPart("Guard"); + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); + + HbmAnimations.applyRelevantTransformation("Shell"); + + // TODO: Fetch the correct colors to render on the shells + Color shellColor = new Color(SpentCasing.COLOR_CASE_4GA); + GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); + ResourceManager.ks23.renderPart("Shell"); + + Color shellForeColor = new Color(0xFFD800); + GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); + ResourceManager.ks23.renderPart("ShellFore"); + + GL11.glColor3f(1F, 1F, 1F); + GL11.glPopMatrix(); + + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + + return; + + case EQUIPPED: + + GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); + GL11.glRotatef(-170F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, 0.0F, -0.9F); + GL11.glScaled(0.5, 0.5, 0.5); + + break; + + case ENTITY: + + GL11.glTranslatef(0.3F, 0.2F, 0.0F); + GL11.glScaled(0.5, 0.5, 0.5); + + break; + + case INVENTORY: + + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glTranslatef(7F, 8F, 0.0F); + GL11.glScaled(4, 4, -4); + GL11.glRotatef(-90, 0, 1, 0); + GL11.glRotatef(-135F, 1.0F, 0.0F, 0.0F); + + break; + + default: break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.ks23.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java index 0e8e2603e..4be5806c5 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java @@ -23,7 +23,7 @@ public class ItemRenderWeaponObj implements IItemRenderer { case ENTITY: return true; case INVENTORY: - return item.getItem() == ModItems.gun_ks23 || item.getItem() == ModItems.gun_hk69 + return item.getItem() == ModItems.gun_hk69 || item.getItem() == ModItems.gun_flamer || item.getItem() == ModItems.gun_deagle || item.getItem() == ModItems.gun_flechette || item.getItem() == ModItems.gun_quadro; default: return false; @@ -50,9 +50,6 @@ public class ItemRenderWeaponObj implements IItemRenderer { if(item.getItem() == ModItems.gun_deagle) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.universal_bright); - if(item.getItem() == ModItems.gun_ks23) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ks23_tex); - if(item.getItem() == ModItems.gun_flamer) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flamer_tex); @@ -90,19 +87,6 @@ public class ItemRenderWeaponObj implements IItemRenderer { } } - if(item.getItem() == ModItems.gun_ks23) { - GL11.glTranslatef(1.0F, 0.5F, -0.25F); - GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - - if(player.isSneaking()) { - GL11.glRotatef(4.5F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-2.5F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.3F, 0.2F, -0.875F); - } - } - if(item.getItem() == ModItems.gun_flamer) { GL11.glTranslatef(1.0F, 0.0F, -0.15F); GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); @@ -169,13 +153,6 @@ public class ItemRenderWeaponObj implements IItemRenderer { GL11.glScaled(0.15, 0.15, 0.15); } - if(item.getItem() == ModItems.gun_ks23) { - GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); - GL11.glRotatef(-80F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.9F, 0.0F, -0.5F); - GL11.glScaled(0.5, 0.5, 0.5); - } - if(item.getItem() == ModItems.gun_flamer) { GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); @@ -213,11 +190,6 @@ public class ItemRenderWeaponObj implements IItemRenderer { GL11.glScaled(0.25, 0.25, 0.25); } - if(item.getItem() == ModItems.gun_ks23) { - GL11.glTranslatef(0.3F, 0.2F, 0.0F); - GL11.glScaled(0.5, 0.5, 0.5); - } - if(item.getItem() == ModItems.gun_flamer) { GL11.glTranslatef(0.25F, 0.2F, 0.0F); GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); @@ -257,12 +229,6 @@ public class ItemRenderWeaponObj implements IItemRenderer { GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); } - if(item.getItem() == ModItems.gun_ks23) { - GL11.glTranslatef(7F, 8F, 0.0F); - GL11.glScaled(4, 4, -4); - GL11.glRotatef(-135F, 0.0F, 0.0F, 1.0F); - } - if(item.getItem() == ModItems.gun_flamer) { GL11.glScaled(2.0, 2.0, -2.0); GL11.glTranslatef(4.0F, 5.0F, 0.0F); @@ -303,12 +269,6 @@ public class ItemRenderWeaponObj implements IItemRenderer { GL11.glShadeModel(GL11.GL_FLAT); } - if(item.getItem() == ModItems.gun_ks23) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.ks23.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(item.getItem() == ModItems.gun_flamer) { GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.flamer.renderAll(); diff --git a/src/main/resources/assets/hbm/models/weapons/animations/ks23.json b/src/main/resources/assets/hbm/models/weapons/animations/ks23.json new file mode 100644 index 000000000..fb0675f87 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/ks23.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [0.34807687997817993, 33.333333333333336], [0.13398613035678864, 200.0], [-0.08360463380813599, 83.33333333333329], [-0.34655845165252686, 100.00000000000006], [-0.4278261363506317, 66.66666666666663], [-0.0, 216.66666666666669]], "y": [[0.0, 0.0], [0.3529239892959595, 50.0], [0.14532163739204407, 183.33333333333334], [0.2893771231174469, 83.33333333333329], [0.6147624254226685, 100.00000000000006], [0.5851793885231018, 66.66666666666663], [0.0, 216.66666666666669]], "x": [[0.0, 0.0], [0.0, 233.33333333333334], [-0.11603647470474243, 83.33333333333329], [-0.2742908000946045, 100.00000000000006], [-0.3180012106895447, 66.66666666666663], [0.0, 216.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 16.666666666666668], [15.266058483699828, 83.33333333333333], [6.633028929431163, 133.33333333333334], [21.336039061353695, 83.33333333333329], [62.11162978364242, 100.00000000000006], [56.06470621707923, 99.99999999999994], [0.0, 150.0]], "z": [[-0.0, 0.0], [-0.0, 233.33333333333334], [-17.404254326014197, 83.33333333333329], [-37.01021671588742, 100.00000000000006], [-35.68124290341594, 99.99999999999994], [-0.0, 150.0]], "y": [[0.0, 0.0], [0.0, 233.33333333333334], [1.3580200456906015, 83.33333333333329], [12.396626003938477, 100.00000000000006], [15.095872367697911, 99.99999999999994], [0.0, 150.0]]}}, "Bolt": {"location": {"z": [[-0.0, 0.0], [-0.0, 266.6666666666667], [0.7143759727478027, 83.33333333333331], [0.7143759727478027, 100.0], [-0.0, 100.0]]}}}, "Reload": {"Body": {"location": {"x": [[-0.7295733690261841, 0.0], [-0.6248612403869629, 266.6666666666667], [-0.7295733690261841, 266.6666666666667]], "z": [[-0.29214829206466675, 0.0], [-0.3179074227809906, 266.6666666666667], [-0.29214829206466675, 266.6666666666667]], "y": [[0.2915276288986206, 0.0], [0.745927095413208, 266.6666666666667], [0.2915276288986206, 266.6666666666667]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [11.92072318200773, 266.6666666666667], [2.2122143889063857, 266.6666666666667]], "z": [[-48.21786729477217, 0.0], [-58.83050935920585, 266.6666666666667], [-48.21786729477217, 266.6666666666667]], "y": [[27.10300512666912, 0.0], [24.162893849376477, 266.6666666666667], [27.10300512666912, 266.6666666666667]]}}, "Guard": {"location": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-0.009601704776287079, 33.333333333333314], [-0.009601704776287079, 66.66666666666663], [0.0, 83.33333333333337]], "z": [[-0.0, 0.0], [-0.0, 216.66666666666669], [-0.01663617603480816, 33.333333333333314], [-0.01663617603480816, 66.66666666666663], [-0.0, 83.33333333333337]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [0.20640075206756592, 33.333333333333314], [0.20640075206756592, 66.66666666666663], [0.0, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [13.692764535748763, 33.333333333333314], [13.692764535748763, 66.66666666666663], [0.0, 83.33333333333337]], "z": [[0.0, 0.0], [0.0, 216.66666666666669], [-1.7075472925031877e-06, 33.333333333333314], [-1.7075472925031877e-06, 66.66666666666663], [-0.0, 83.33333333333337]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [-8.537736462515939e-07, 33.333333333333314], [-8.537736462515939e-07, 66.66666666666663], [0.0, 83.33333333333337]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [9.313225746154785e-09, 133.33333333333334], [0.0043092877604067326, 83.33333333333334], [0.004309257958084345, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[-0.0, 0.0], [0.30239760875701904, 133.33333333333334], [0.5154579877853394, 83.33333333333334], [0.11890840530395508, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.0212161540985107, 0.0], [-1.4118856191635132, 133.33333333333334], [-0.4431022107601166, 83.33333333333334], [-0.2641807496547699, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}, "ReloadEmptyStart": {"Body": {"location": {"x": [[0.0, 0.0], [-0.8907862305641174, 216.66666666666669], [-0.912574291229248, 83.33333333333331], [-0.8907862305641174, 183.33333333333331], [-0.7295733690261841, 316.6666666666667]], "z": [[-0.0, 0.0], [-0.10736510902643204, 216.66666666666669], [-0.1299014389514923, 83.33333333333331], [-0.10736510902643204, 183.33333333333331], [-0.29214829206466675, 316.6666666666667]], "y": [[0.0, 0.0], [0.1955999732017517, 216.66666666666669], [0.07320505380630493, 83.33333333333331], [0.1955999732017517, 183.33333333333331], [0.2915276288986206, 316.6666666666667]]}, "rotation_euler": {"x": [[0.0, 0.0], [14.341662388977594, 216.66666666666669], [10.053024175167023, 83.33333333333331], [14.341662388977594, 183.33333333333331], [2.2122143889063857, 316.6666666666667]], "z": [[-0.0, 0.0], [47.39059819759481, 216.66666666666669], [51.027851515545024, 83.33333333333331], [47.39059819759481, 183.33333333333331], [-48.21786729477217, 316.6666666666667]], "y": [[0.0, 0.0], [-9.334892963190004, 216.66666666666669], [-8.375116488567105, 83.33333333333331], [-9.334892963190004, 183.33333333333331], [27.10300512666912, 316.6666666666667]]}}, "Bolt": {"location": {"z": [[-0.0, 0.0], [-0.0, 183.33333333333331], [0.5467166900634766, 66.66666666666669], [0.5467166900634766, 133.33333333333331], [-0.0, 150.00000000000006]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [0.0, 183.33333333333331], [0.4347861707210541, 66.66666666666669], [0.12760140001773834, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[-0.0, 0.0], [-0.0, 183.33333333333331], [0.34638845920562744, 66.66666666666669], [0.43973004817962646, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[-2.0212161540985107, 0.0], [-2.0212161540985107, 183.33333333333331], [-0.5793730020523071, 66.66666666666669], [-0.010208487510681152, 33.333333333333314], [0.0, 66.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 183.33333333333331], [0.0, 66.66666666666669], [1.2806606729328905e-06, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[0.0, 0.0], [0.0, 183.33333333333331], [0.0, 66.66666666666669], [0.0, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[0.0, 0.0], [0.0, 183.33333333333331], [19.145008290714692, 66.66666666666669], [25.845758545766532, 33.333333333333314], [0.0, 66.66666666666669]]}}}, "ReloadEnd": {"Body": {"location": {"x": [[-0.7295733690261841, 0.0], [0.0, 400.0]], "z": [[-0.29214829206466675, 0.0], [-0.0, 400.0]], "y": [[0.2915276288986206, 0.0], [0.0, 400.0]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [0.0, 400.0]], "z": [[-48.21786729477217, 0.0], [-0.0, 400.0]], "y": [[27.10300512666912, 0.0], [0.0, 400.0]]}}}, "ReloadStart": {"Body": {"location": {"x": [[0.0, 0.0], [-0.7295733690261841, 133.33333333333334], [-0.7095879912376404, 116.66666666666666], [-0.7295733690261841, 150.0]], "z": [[-0.0, 0.0], [-0.29214829206466675, 133.33333333333334], [-0.28021347522735596, 116.66666666666666], [-0.29214829206466675, 150.0]], "y": [[0.0, 0.0], [0.2915276288986206, 133.33333333333334], [0.4674150049686432, 116.66666666666666], [0.2915276288986206, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [2.2122143889063857, 133.33333333333334], [6.795230554293333, 116.66666666666666], [2.2122143889063857, 150.0]], "z": [[-0.0, 0.0], [-48.21786729477217, 133.33333333333334], [-51.976428187476394, 116.66666666666666], [-48.21786729477217, 150.0]], "y": [[0.0, 0.0], [27.10300512666912, 133.33333333333334], [26.74002155341796, 116.66666666666666], [27.10300512666912, 150.0]]}}, "Guard": {"location": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-0.009601704776287079, 33.333333333333314], [-0.009601704776287079, 66.66666666666663], [0.0, 83.33333333333337]], "z": [[-0.0, 0.0], [-0.0, 216.66666666666669], [-0.01663617603480816, 33.333333333333314], [-0.01663617603480816, 66.66666666666663], [-0.0, 83.33333333333337]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [0.20640075206756592, 33.333333333333314], [0.20640075206756592, 66.66666666666663], [0.0, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [13.692764535748763, 33.333333333333314], [13.692764535748763, 66.66666666666663], [0.0, 83.33333333333337]], "z": [[0.0, 0.0], [0.0, 216.66666666666669], [-1.7075472925031877e-06, 33.333333333333314], [-1.7075472925031877e-06, 66.66666666666663], [-0.0, 83.33333333333337]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [-8.537736462515939e-07, 33.333333333333314], [-8.537736462515939e-07, 66.66666666666663], [0.0, 83.33333333333337]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [9.313225746154785e-09, 133.33333333333334], [0.0043092877604067326, 83.33333333333334], [0.004309257958084345, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[-0.0, 0.0], [0.30239760875701904, 133.33333333333334], [0.5154579877853394, 83.33333333333334], [0.11890840530395508, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.0212161540985107, 0.0], [-1.4118856191635132, 133.33333333333334], [-0.4431022107601166, 83.33333333333334], [-0.2641807496547699, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}}, "offset": {"Bolt": [-2.9802322387695312e-08, -7.450580596923828e-09, -0.0]}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/ks23.obj b/src/main/resources/assets/hbm/models/weapons/ks23.obj index 3ead6136b..7cd975554 100644 --- a/src/main/resources/assets/hbm/models/weapons/ks23.obj +++ b/src/main/resources/assets/hbm/models/weapons/ks23.obj @@ -1,1807 +1,604 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender 4.0.1 # www.blender.org -o Cube.016_Cube.025 -v 1.745492 0.611074 -0.008405 -v 1.745492 0.611074 0.008405 -v 1.745492 0.626074 0.000000 -v 1.548361 0.523926 -0.025216 -v 1.548361 0.546074 -0.025216 -v 1.745492 0.596074 -0.025216 -v 1.851639 0.596074 -0.025216 -v 1.851639 0.523926 -0.025216 -v 1.745492 0.523926 -0.025216 -v 1.851639 0.611074 -0.008405 -v 1.851639 0.626074 0.000000 -v 1.745492 0.596074 0.008405 -v 1.851639 0.596074 0.008405 -v 1.851639 0.611074 0.008405 -v 1.745492 0.596074 0.025216 -v 1.851639 0.596074 0.025216 -v 1.745492 0.596074 -0.008405 -v 1.851639 0.523926 0.025216 -v 1.548361 0.546074 0.025216 -v 1.548361 0.523926 0.025216 -v 1.745492 0.523926 0.025216 -v 1.851639 0.596074 -0.008405 -vt 0.680946 0.743152 -vt 0.680946 0.743152 -vt 0.680946 0.747663 -vt 0.712868 0.738640 -vt 0.712868 0.716943 -vt 0.680946 0.716943 -vt 0.712868 0.747663 -vt 0.712868 0.743152 -vt 0.712868 0.738640 -vt 0.680946 0.738640 -vt 0.712868 0.738640 -vt 0.680946 0.738640 -vt 0.621661 0.723604 -vt 0.621661 0.716943 -vt 0.680946 0.716943 -vt 0.621661 0.716943 -vt 0.680946 0.738640 -vt 0.712868 0.738640 -vt 0.712868 0.743152 -vt 0.621661 0.723604 -vt 0.712868 0.716943 -vt 0.680946 0.738640 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.4888 -0.8724 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.4888 0.8724 -vn -0.2459 0.9693 0.0000 -vn 1.0000 0.0000 0.0000 -s off -f 1/1/1 2/2/1 3/3/1 -f 7/4/2 8/5/2 9/6/2 -f 1/1/3 11/7/3 10/8/3 -f 13/9/4 2/2/4 12/10/4 -f 12/10/5 16/11/5 13/9/5 -f 12/10/1 1/1/1 17/12/1 -f 19/13/4 20/14/4 21/15/4 -f 9/6/6 20/14/6 4/16/6 -f 6/17/5 22/18/5 7/4/5 -f 14/19/7 3/3/7 2/2/7 -f 12/10/8 17/12/8 5/20/8 -f 17/12/2 10/8/2 22/18/2 -f 8/5/6 21/15/6 9/6/6 -f 22/18/9 14/19/9 13/9/9 -f 22/18/9 13/9/9 18/21/9 -f 14/19/9 10/8/9 11/7/9 -f 19/13/1 4/16/1 20/14/1 -f 9/6/2 4/16/2 5/20/2 -f 5/20/2 6/17/2 9/6/2 -f 6/17/2 7/4/2 9/6/2 -f 1/1/3 3/3/3 11/7/3 -f 13/9/4 14/19/4 2/2/4 -f 12/10/5 15/22/5 16/11/5 -f 12/10/1 2/2/1 1/1/1 -f 21/15/4 18/21/4 16/11/4 -f 16/11/4 15/22/4 21/15/4 -f 15/22/4 19/13/4 21/15/4 -f 9/6/6 21/15/6 20/14/6 -f 6/17/5 17/12/5 22/18/5 -f 14/19/7 11/7/7 3/3/7 -f 17/12/8 6/17/8 5/20/8 -f 5/20/8 19/13/8 12/10/8 -f 19/13/8 15/22/8 12/10/8 -f 17/12/2 1/1/2 10/8/2 -f 8/5/6 18/21/6 21/15/6 -f 22/18/9 10/8/9 14/19/9 -f 18/21/9 8/5/9 22/18/9 -f 8/5/9 7/4/9 22/18/9 -f 13/9/9 16/11/9 18/21/9 -f 19/13/1 5/20/1 4/16/1 -o Cube.011_Cube.023 -v -1.092482 0.577098 -0.054925 -v -1.092482 0.577098 0.056150 -v -1.092482 0.603150 0.056150 -v -1.092482 0.603150 -0.054925 -v -0.448868 0.627935 -0.054925 -v -0.448868 0.603150 -0.054925 -v -0.448868 0.603150 0.056150 -v -0.448868 0.627935 0.056150 -v -0.448868 0.627935 0.025312 -v -0.448868 0.603235 0.000612 -v -0.448868 0.627935 -0.024087 -v -0.419549 0.603150 -0.054925 -v -0.419549 0.603150 0.056150 -v -0.419549 0.577098 0.056150 -v -0.419549 0.577098 -0.054925 -v -0.448868 0.577098 -0.054925 -v -0.448868 0.577098 0.056150 -v -0.419549 0.627935 0.056150 -v -0.419549 0.627935 0.025312 -v -0.419549 0.627935 -0.054925 -v -0.419549 0.627935 -0.024087 -v -0.419549 0.603235 0.000612 -vt 0.394791 0.688361 -vt 0.394791 0.696196 -vt 0.394791 0.688361 -vt 0.588350 0.696196 -vt 0.588350 0.696196 -vt 0.588350 0.696221 -vt 0.597168 0.696196 -vt 0.597168 0.688361 -vt 0.597168 0.696196 -vt 0.588350 0.688361 -vt 0.588350 0.688361 -vt 0.394791 0.696196 -vt 0.597168 0.688361 -vt 0.588350 0.703650 -vt 0.597168 0.703650 -vt 0.588350 0.703650 -vt 0.588350 0.703650 -vt 0.597168 0.703650 -vt 0.597168 0.703650 -vt 0.597168 0.696221 -vt 0.588350 0.703650 -vt 0.597168 0.703650 -vn -1.0000 0.0000 0.0000 -vn -1.0000 0.0004 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.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 0.0000 0.7071 0.7071 -s off -f 24/23/10 26/24/10 23/25/10 -f 28/26/11 29/27/11 32/28/11 -f 35/29/12 37/30/12 34/31/12 -f 39/32/13 23/25/13 38/33/13 -f 34/31/14 38/33/14 28/26/14 -f 25/34/15 39/32/15 29/27/15 -f 29/27/15 36/35/15 35/29/15 -f 28/26/14 23/25/14 26/24/14 -f 36/35/13 38/33/13 37/30/13 -f 25/34/16 28/26/16 26/24/16 -f 30/36/16 41/37/16 31/38/16 -f 27/39/16 43/40/16 42/41/16 -f 35/29/12 34/31/12 44/42/12 -f 35/29/15 30/36/15 29/27/15 -f 28/26/14 42/41/14 34/31/14 -f 32/28/17 41/37/17 44/42/17 -f 33/43/18 44/42/18 43/40/18 -f 24/23/10 25/34/10 26/24/10 -f 33/43/10 27/39/10 28/26/10 -f 29/27/10 30/36/10 31/38/10 -f 32/28/10 33/43/10 28/26/10 -f 29/27/10 31/38/10 32/28/10 -f 35/29/12 36/35/12 37/30/12 -f 39/32/13 24/23/13 23/25/13 -f 34/31/14 37/30/14 38/33/14 -f 25/34/15 24/23/15 39/32/15 -f 29/27/15 39/32/15 36/35/15 -f 28/26/14 38/33/14 23/25/14 -f 36/35/13 39/32/13 38/33/13 -f 25/34/16 29/27/16 28/26/16 -f 30/36/16 40/44/16 41/37/16 -f 27/39/16 33/43/16 43/40/16 -f 44/42/12 41/37/12 35/29/12 -f 41/37/12 40/44/12 35/29/12 -f 34/31/12 42/41/12 43/40/12 -f 34/31/12 43/40/12 44/42/12 -f 35/29/15 40/44/15 30/36/15 -f 28/26/14 27/39/14 42/41/14 -f 32/28/17 31/38/17 41/37/17 -f 33/43/18 32/28/18 44/42/18 -o Plane.002 -v -1.380449 0.181206 0.012697 -v -1.291923 0.180872 0.012697 -v -1.254413 0.180730 0.011096 -v -1.241522 0.180681 0.006436 -v -1.241522 0.180681 -0.005212 -v -1.254413 0.180730 -0.009871 -v -1.291923 0.180872 -0.011473 -v -1.380449 0.181206 -0.011473 -v -1.433398 0.075307 0.012697 -v -1.418719 0.040182 0.012697 -v -1.418719 0.040182 0.012697 -v -1.429194 0.076073 0.012697 -v -1.423724 0.117095 0.012697 -v -1.410405 0.144311 0.012697 -v -1.356401 0.173001 0.012697 -v -1.415574 0.151323 0.012697 -v -1.430253 0.120917 0.012697 -v -1.403516 0.140314 0.006436 -v -1.415574 0.115674 0.006436 -v -1.415574 0.115674 -0.005212 -v -1.403516 0.140314 -0.005212 -v -1.420816 0.076355 0.006436 -v -1.420816 0.076355 -0.005212 -v -1.412952 0.045424 0.006436 -v -1.412952 0.045424 -0.005212 -v -1.398798 0.023366 0.006436 -v -1.398798 0.023366 -0.005212 -v -1.403893 0.027667 0.011096 -v -1.418719 0.040182 -0.011473 -v -1.418719 0.040182 -0.011473 -v -1.403893 0.027667 -0.009871 -v -1.433398 0.075307 -0.011473 -v -1.430253 0.120917 -0.011473 -v -1.415574 0.151323 -0.011473 -v -1.356401 0.173001 -0.011473 -v -1.410405 0.144311 -0.011473 -v -1.423724 0.117095 -0.011473 -v -1.429194 0.076073 -0.011473 -v -1.353188 0.167051 0.006436 -v -1.353188 0.167051 -0.005212 -v -1.354010 0.168573 0.011096 -v -1.405278 0.141336 0.011096 -v -1.417658 0.116037 0.011096 -v -1.422959 0.076283 0.011096 -v -1.414984 0.044916 0.011096 -v -1.354010 0.168573 -0.009871 -v -1.405278 0.141336 -0.009871 -v -1.417658 0.116037 -0.009871 -v -1.422959 0.076283 -0.009871 -v -1.414984 0.044916 -0.009871 -vt 0.559609 0.765930 -vt 0.494705 0.766175 -vt 0.559609 0.765930 -vt 0.462977 0.719170 -vt 0.472742 0.739125 -vt 0.458190 0.721973 -vt 0.468953 0.718129 -vt 0.477793 0.736194 -vt 0.477793 0.736194 -vt 0.465109 0.689302 -vt 0.468953 0.718129 -vt 0.470874 0.666624 -vt 0.465109 0.689302 -vt 0.481252 0.650452 -vt 0.470874 0.666624 -vt 0.466646 0.662781 -vt 0.466646 0.662781 -vt 0.481252 0.650452 -vt 0.455884 0.688533 -vt 0.458190 0.721973 -vt 0.462977 0.719170 -vt 0.455884 0.688533 -vt 0.466646 0.662781 -vt 0.468953 0.744266 -vt 0.494705 0.766175 -vt 0.468953 0.744266 -vt 0.514692 0.755797 -vt 0.514692 0.755797 -vt 0.514090 0.756913 -vt 0.587110 0.765826 -vt 0.596562 0.765790 -vt 0.512336 0.760159 -vt 0.476501 0.736944 -vt 0.467424 0.718395 -vt 0.463538 0.689249 -vt 0.458967 0.689095 -vt 0.469385 0.666251 -vt 0.466646 0.662781 -vt 0.477517 0.653605 -vt 0.587110 0.765826 -vt 0.596562 0.765790 -vt 0.514090 0.756913 -vt 0.476501 0.736944 -vt 0.512336 0.760159 -vt 0.467424 0.718395 -vt 0.472742 0.739125 -vt 0.463538 0.689249 -vt 0.469385 0.666251 -vt 0.458967 0.689095 -vt 0.477517 0.653605 -vn 0.0038 1.0000 0.0000 -vn -0.3434 0.9392 0.0000 -vn 0.1101 -0.0321 0.9934 -vn 0.0801 -0.0721 0.9942 +o Bolt +v 0.161448 0.393839 -0.026408 +v 0.161448 0.393839 0.021028 +v 0.175965 0.393896 0.023362 +v 0.175965 0.393564 -0.028355 +v -0.139708 0.393839 -1.037985 +v -0.139708 0.100576 -1.037985 +v -0.141234 0.099485 -1.013396 +v -0.141233 0.393839 -1.013400 +v -0.091905 0.047403 -1.660505 +v 0.093151 0.047403 -1.660505 +v 0.092973 0.047403 -1.037985 +v -0.091727 0.047403 -1.037985 +v 0.146160 0.393839 -0.995425 +v 0.146166 0.096349 -0.995410 +v 0.142480 0.099485 -1.013396 +v 0.142477 0.393839 -1.013400 +v 0.161448 0.392465 -0.226861 +v 0.161448 0.179659 -0.226861 +v 0.161448 0.176783 -0.269772 +v 0.161448 0.184279 -0.293139 +v 0.161448 0.392465 -0.293139 +v 0.161448 0.156742 -0.176861 +v 0.161448 0.179659 -0.193139 +v 0.161448 0.392465 -0.193139 +v 0.161448 0.098712 -0.026381 +v 0.161448 0.124456 -0.093139 +v 0.161448 0.392051 -0.093139 +v 0.161448 0.392051 -0.126861 +v 0.161448 0.137460 -0.126861 +v 0.161448 0.143738 -0.143139 +v 0.161448 0.392051 -0.143139 +v 0.161448 0.392051 -0.176861 +v 0.161448 0.167893 -0.516984 +v 0.161448 0.163019 -0.510000 +v 0.161448 0.163019 -0.410000 +v 0.161448 0.163019 -0.310000 +v 0.161448 0.167893 -0.303016 +v 0.161448 0.179659 -0.293139 +v 0.161448 0.163019 -0.210000 +v 0.161448 0.100073 -0.176861 +v 0.161448 0.088307 -0.166984 +v 0.161448 0.083433 -0.160000 +v 0.161448 0.088307 -0.153016 +v 0.161448 0.100073 -0.143139 +v 0.161448 0.100073 -0.126861 +v 0.161448 0.088307 -0.116984 +v 0.161448 0.083433 -0.110000 +v 0.161448 0.088307 -0.103016 +v 0.161448 0.100073 -0.093139 +v 0.161448 0.080437 -0.026379 +v 0.161448 0.080575 -0.927107 +v 0.161448 0.393839 -0.927107 +v 0.161448 0.392465 -0.326861 +v 0.161448 0.392465 -0.393139 +v 0.161448 0.392465 -0.426861 +v 0.161448 0.392465 -0.493139 +v 0.161448 0.392465 -0.526861 +v 0.161448 0.392465 -0.593139 +v 0.161448 0.392465 -0.626861 +v 0.161448 0.392465 -0.693139 +v 0.161448 0.392465 -0.726861 +v 0.161448 0.392465 -0.793139 +v 0.161448 0.392465 -0.826861 +v 0.161448 0.179659 -0.826861 +v 0.161448 0.167893 -0.816984 +v 0.161448 0.163019 -0.810000 +v 0.161448 0.163019 -0.710000 +v 0.161448 0.163019 -0.610000 +v 0.140953 0.100576 -1.037985 +v 0.140953 0.393839 -1.037985 +v 0.159923 0.393839 -0.951692 +v 0.156242 0.393839 -0.969667 +v 0.140953 0.393839 -1.660505 +v -0.139708 0.393839 -1.660505 +v -0.144914 0.393839 -0.995425 +v -0.154997 0.393839 -0.969667 +v -0.158678 0.393839 -0.951692 +v -0.160203 0.393839 -0.927107 +v -0.160203 0.393839 -0.026414 +v -0.160203 0.393839 0.021028 +v -0.144920 0.096349 -0.995410 +v -0.154991 0.086522 -0.969682 +v -0.139708 0.100430 -1.660505 +v 0.140953 0.100430 -1.660505 +v 0.137546 0.034507 0.021028 +v 0.155043 0.053917 0.021028 +v 0.161448 0.080430 0.021028 +v -0.160203 0.080430 0.021028 +v -0.153799 0.053917 0.021028 +v -0.136302 0.034507 0.021028 +v -0.112400 0.027403 0.021028 +v 0.113645 0.027403 0.021028 +v 0.156235 0.086522 -0.969682 +v 0.159921 0.082465 -0.951696 +v 0.094000 0.045913 -1.013395 +v -0.092755 0.045913 -1.013395 +v -0.095793 0.042316 -0.995407 +v 0.097038 0.042316 -0.995407 +v 0.107106 0.032491 -0.969685 +v -0.105861 0.032491 -0.969685 +v -0.158677 0.082465 -0.951696 +v -0.160203 0.080575 -0.927107 +v 0.113467 0.027403 -0.927107 +v -0.112223 0.027403 -0.927107 +v -0.110196 0.028893 -0.951697 +v 0.111441 0.028893 -0.951697 +v -0.115806 0.054507 -1.660505 +v -0.133303 0.073917 -1.660505 +v 0.134549 0.073917 -1.660505 +v 0.117052 0.054507 -1.660505 +v 0.118240 0.053090 -1.013395 +v 0.121602 0.049555 -0.995408 +v 0.135985 0.072699 -1.013395 +v 0.139584 0.069332 -0.995409 +v 0.116963 0.054527 -1.037985 +v 0.134525 0.073989 -1.037985 +v -0.116995 0.053090 -1.013395 +v -0.115718 0.054527 -1.037985 +v -0.134739 0.072699 -1.013395 +v -0.133280 0.073989 -1.037985 +v -0.120357 0.049555 -0.995408 +v -0.138339 0.069332 -0.995409 +v -0.134436 0.036070 -0.951697 +v -0.130425 0.039729 -0.969685 +v -0.152181 0.055679 -0.951697 +v -0.148408 0.059506 -0.969684 +v -0.136212 0.034527 -0.927107 +v -0.153775 0.053989 -0.927107 +v 0.135681 0.036070 -0.951697 +v 0.137458 0.034527 -0.927107 +v 0.153426 0.055679 -0.951697 +v 0.155020 0.053989 -0.927107 +v 0.131670 0.039729 -0.969685 +v 0.149653 0.059506 -0.969684 +v -0.174720 0.393564 -0.028361 +v -0.174720 0.393896 0.023362 +v 0.155042 0.053920 -0.026379 +v 0.175964 0.077206 -0.028324 +v 0.168981 0.048295 -0.028324 +v -0.167737 0.048291 0.023362 +v -0.148661 0.027130 0.023362 +v 0.113637 0.027403 -0.026379 +v 0.137542 0.034508 -0.026379 +v -0.160203 0.180122 -0.393139 +v -0.160203 0.168028 -0.403016 +v -0.160203 0.163019 -0.410000 +v -0.160203 0.162014 -0.310637 +v -0.160203 0.392465 -0.326861 +v -0.160203 0.392465 -0.393139 +v 0.182426 0.392465 -0.326861 +v 0.182426 0.179659 -0.326861 +v 0.161448 0.179659 -0.326861 +v -0.160203 0.180122 -0.426861 +v -0.181181 0.180122 -0.426861 +v -0.181181 0.392465 -0.426861 +v -0.160203 0.392465 -0.426861 +v 0.182426 0.392465 -0.193139 +v 0.182426 0.392465 -0.226861 +v -0.181181 0.392465 -0.226861 +v -0.181181 0.392465 -0.193139 +v -0.160203 0.392465 -0.193139 +v -0.160203 0.392465 -0.226861 +v -0.160203 0.137460 -0.126861 +v -0.160203 0.392051 -0.126861 +v -0.160203 0.392051 -0.093139 +v -0.160203 0.124456 -0.093139 +v -0.160203 0.098712 -0.026381 +v -0.160203 0.180122 -0.193139 +v -0.160203 0.156742 -0.176861 +v -0.160203 0.392051 -0.176861 +v -0.160203 0.392051 -0.143139 +v -0.160203 0.143738 -0.143139 +v 0.182426 0.179659 -0.193139 +v -0.181181 0.180122 -0.193139 +v 0.182426 0.392465 -0.526861 +v 0.182426 0.179659 -0.526861 +v 0.161448 0.179659 -0.526861 +v -0.160203 0.180122 -0.526861 +v -0.181181 0.180122 -0.526861 +v -0.181181 0.392465 -0.526861 +v -0.160203 0.392465 -0.526861 +v 0.182426 0.392465 -0.293139 +v -0.181181 0.392465 -0.326861 +v -0.181181 0.392465 -0.293139 +v -0.160203 0.392465 -0.293139 +v 0.182426 0.179659 -0.226861 +v -0.160203 0.180122 -0.226861 +v -0.181181 0.180122 -0.226861 +v 0.182426 0.179659 -0.293139 +v -0.160203 0.184279 -0.293139 +v -0.181181 0.180122 -0.293139 +v -0.160203 0.180122 -0.293139 +v -0.181270 0.162019 -0.310622 +v -0.160364 0.167861 -0.318624 +v -0.181431 0.167866 -0.318609 +v 0.182426 0.167893 -0.303016 +v 0.182426 0.163019 -0.310000 +v 0.182426 0.167893 -0.316984 +v -0.181181 0.392465 -0.393139 +v -0.181181 0.168028 -0.416984 +v -0.181181 0.163019 -0.410000 +v -0.181181 0.168028 -0.403016 +v -0.181181 0.180122 -0.393139 +v 0.182426 0.392465 -0.393139 +v 0.182426 0.392465 -0.426861 +v 0.182426 0.167893 -0.203016 +v 0.182426 0.163019 -0.210000 +v 0.182426 0.167893 -0.216984 +v -0.181181 0.180122 -0.326861 +v 0.182426 0.179659 -0.393139 +v 0.161448 0.179659 -0.393139 +v -0.160203 0.180122 -0.626861 +v -0.181181 0.180122 -0.626861 +v -0.181181 0.392465 -0.626861 +v -0.160203 0.392465 -0.626861 +v 0.182426 0.392465 -0.626861 +v 0.182426 0.179659 -0.626861 +v 0.161448 0.179659 -0.626861 +v -0.160203 0.180122 -0.726861 +v -0.181181 0.180122 -0.726861 +v -0.181181 0.392465 -0.726861 +v -0.160203 0.392465 -0.726861 +v 0.182426 0.392465 -0.493139 +v -0.181181 0.392465 -0.493139 +v -0.160203 0.392465 -0.493139 +v 0.182426 0.179659 -0.426861 +v 0.161448 0.179659 -0.426861 +v -0.181181 0.168028 -0.216984 +v -0.181181 0.163019 -0.210000 +v -0.181181 0.168028 -0.203016 +v 0.182426 0.179659 -0.493139 +v 0.161448 0.179659 -0.493139 +v -0.181181 0.180122 -0.493139 +v -0.160203 0.180122 -0.493139 +v 0.182426 0.392465 -0.726861 +v 0.182426 0.179659 -0.726861 +v 0.161448 0.179659 -0.726861 +v -0.160203 0.180122 -0.826861 +v -0.181181 0.180122 -0.826861 +v -0.181181 0.392465 -0.826861 +v -0.160203 0.392465 -0.826861 +v 0.182426 0.392465 -0.593139 +v -0.181181 0.392465 -0.593139 +v -0.160203 0.392465 -0.593139 +v 0.182426 0.167893 -0.403016 +v 0.182426 0.163019 -0.410000 +v 0.182426 0.167893 -0.416984 +v 0.182426 0.179659 -0.593139 +v 0.161448 0.179659 -0.593139 +v -0.181181 0.180122 -0.593139 +v -0.160203 0.180122 -0.593139 +v 0.182426 0.392465 -0.826861 +v 0.182426 0.179659 -0.826861 +v -0.160203 0.100536 -0.126861 +v -0.181181 0.100536 -0.126861 +v -0.181181 0.392051 -0.126861 +v 0.182426 0.392465 -0.693139 +v -0.181181 0.392465 -0.693139 +v -0.160203 0.392465 -0.693139 +v 0.182426 0.167893 -0.503016 +v 0.182426 0.163019 -0.510000 +v 0.182426 0.167893 -0.516984 +v 0.182426 0.179659 -0.693139 +v 0.161448 0.179659 -0.693139 +v -0.181181 0.180122 -0.693139 +v -0.160203 0.180122 -0.693139 +v 0.182426 0.392051 -0.176861 +v 0.182426 0.100073 -0.176861 +v -0.181181 0.392051 -0.093139 +v -0.181181 0.088442 -0.116984 +v -0.181181 0.083433 -0.110000 +v -0.181181 0.088442 -0.103016 +v -0.181181 0.100536 -0.093139 +v 0.182426 0.392465 -0.793139 +v -0.181181 0.392465 -0.793139 +v -0.160203 0.392465 -0.793139 +v 0.182426 0.167893 -0.603016 +v 0.182426 0.163019 -0.610000 +v 0.182426 0.167893 -0.616984 +v -0.181181 0.168028 -0.516984 +v -0.181181 0.163019 -0.510000 +v -0.181181 0.168028 -0.503016 +v 0.182426 0.179659 -0.793139 +v 0.161448 0.179659 -0.793139 +v -0.181181 0.180122 -0.793139 +v -0.160203 0.180122 -0.793139 +v 0.182426 0.167893 -0.803016 +v 0.182426 0.163019 -0.810000 +v 0.182426 0.167893 -0.816984 +v 0.182426 0.392051 -0.093139 +v 0.182426 0.392051 -0.126861 +v 0.182426 0.167893 -0.703016 +v 0.182426 0.163019 -0.710000 +v 0.182426 0.167893 -0.716984 +v -0.181181 0.168028 -0.616984 +v -0.181181 0.163019 -0.610000 +v -0.181181 0.168028 -0.603016 +v 0.182426 0.100073 -0.093139 +v -0.160203 0.100536 -0.176861 +v -0.181181 0.100536 -0.176861 +v -0.181181 0.392051 -0.176861 +v -0.160203 0.100536 -0.093139 +v 0.182426 0.088307 -0.103016 +v 0.182426 0.083433 -0.110000 +v 0.182426 0.088307 -0.116984 +v 0.182426 0.100073 -0.126861 +v -0.181181 0.168028 -0.816984 +v -0.181181 0.163019 -0.810000 +v -0.181181 0.168028 -0.803016 +v 0.182426 0.392051 -0.143139 +v -0.181181 0.392051 -0.143139 +v -0.181181 0.168028 -0.716984 +v -0.181181 0.163019 -0.710000 +v -0.181181 0.168028 -0.703016 +v 0.182426 0.100073 -0.143139 +v -0.181181 0.100536 -0.143139 +v -0.160203 0.100536 -0.143139 +v 0.161448 0.167893 -0.203016 +v 0.161448 0.167893 -0.216984 +v 0.161448 0.167893 -0.316984 +v 0.161448 0.167893 -0.403016 +v 0.161448 0.167893 -0.416984 +v 0.161448 0.167893 -0.503016 +v 0.161448 0.167893 -0.603016 +v 0.161448 0.167893 -0.616984 +v 0.161448 0.167893 -0.703016 +v 0.161448 0.167893 -0.716984 +v 0.161448 0.167893 -0.803016 +v 0.182426 0.083433 -0.160000 +v 0.182426 0.088307 -0.166984 +v 0.182426 0.088307 -0.153016 +v -0.160203 0.168028 -0.203016 +v -0.160203 0.163019 -0.210000 +v -0.160203 0.168028 -0.216984 +v -0.160203 0.168028 -0.416984 +v -0.160203 0.168028 -0.503016 +v -0.160203 0.163019 -0.510000 +v -0.160203 0.168028 -0.516984 +v -0.160203 0.168028 -0.603016 +v -0.160203 0.163019 -0.610000 +v -0.160203 0.168028 -0.303016 +v -0.160203 0.168028 -0.616984 +v -0.160203 0.163019 -0.710000 +v -0.160203 0.163019 -0.810000 +v -0.160203 0.168028 -0.816984 +v -0.160203 0.080437 -0.026379 +v -0.160203 0.088442 -0.103016 +v -0.160203 0.083433 -0.110000 +v -0.160203 0.088442 -0.116984 +v -0.160203 0.088442 -0.153016 +v -0.160203 0.083433 -0.160000 +v -0.160203 0.088442 -0.166984 +v -0.160203 0.168028 -0.703016 +v -0.160203 0.168028 -0.716984 +v -0.160203 0.168028 -0.803016 +v -0.181181 0.083433 -0.160000 +v -0.181181 0.088442 -0.153016 +v -0.181181 0.088442 -0.166984 +v -0.181431 0.168028 -0.303126 +v -0.160114 0.180117 -0.326876 +v -0.112391 0.027403 -0.026379 +v 0.123837 0.019385 -0.028324 +v -0.122592 0.019385 -0.028324 +v 0.175964 0.077198 0.023362 +v -0.136297 0.034508 -0.026379 +v -0.148656 0.027131 -0.028324 +v -0.153798 0.053920 -0.026379 +v 0.123847 0.019385 0.023362 +v -0.122602 0.019385 0.023362 +v 0.175964 0.097130 -0.028325 +v -0.174720 0.077198 0.023362 +v -0.167736 0.048295 -0.028324 +v 0.168982 0.048291 0.023362 +v -0.174720 0.077206 -0.028324 +v 0.149905 0.027130 0.023362 +v 0.149901 0.027131 -0.028324 +v -0.174720 0.097130 -0.028326 +v 0.079173 0.413916 0.706758 +v 0.133032 0.413916 0.706758 +v 0.133032 0.467775 0.706758 +v 0.079173 0.467775 0.706758 +v 0.079173 0.467775 0.274201 +v 0.133032 0.467775 0.638249 +v 0.132611 0.467775 0.638244 +v 0.132611 0.467775 0.274201 +v 0.132804 0.413916 0.274201 +v 0.079173 0.413916 0.274201 +v 0.132805 0.466244 0.274201 +v 0.132804 0.413916 0.638765 +v 0.133032 0.413916 0.638765 +v 0.133032 0.466254 0.638765 +v 0.120479 0.520191 0.602429 +v 0.120479 0.520191 0.201794 +v 0.104105 0.551348 0.201794 +v 0.104105 0.551348 0.558765 +v 0.130619 0.493740 0.629471 +v 0.130619 0.493740 0.201794 +v 0.134105 0.466292 0.638765 +v 0.134105 0.466292 0.201794 +v 0.134105 0.350993 0.638765 +v 0.134105 0.350993 0.201794 +v 0.119244 0.519875 0.602429 +v 0.102899 0.550972 0.558765 +v 0.102899 0.550972 0.201794 +v 0.119250 0.519861 0.201794 +v 0.129342 0.493549 0.201794 +v 0.129338 0.493568 0.629471 +v 0.132805 0.466243 0.201794 +v 0.132804 0.350993 0.201794 +v 0.132804 0.350993 0.638765 +vn 0.0004 1.0000 -0.0028 +vn 0.0146 0.9999 -0.0013 +vn 0.0067 1.0000 -0.0000 +vn -0.9926 -0.1169 -0.0334 +vn -0.9913 -0.0000 -0.1316 +vn -0.9995 -0.0000 -0.0310 +vn 0.1440 -0.9896 -0.0000 +vn -0.1422 -0.9893 -0.0330 +vn -0.1440 -0.9896 -0.0000 +vn 0.9589 -0.0000 -0.2836 +vn 0.9832 -0.1132 -0.1432 +vn 0.9913 -0.0000 -0.1316 +vn 1.0000 -0.0000 -0.0000 +vn 0.9926 -0.1169 -0.0334 +vn 0.9995 -0.0000 -0.0310 +vn -0.0000 1.0000 -0.0000 +vn -0.9589 -0.0000 -0.2836 +vn -0.9449 -0.1072 -0.3093 +vn -0.9430 -0.1154 -0.3120 +vn -1.0000 -0.0000 -0.0000 +vn 0.9930 -0.1183 -0.0000 +vn 0.0095 0.1424 0.9898 +vn -0.0095 0.1424 0.9898 +vn 0.0836 0.0092 0.9965 +vn 0.9449 -0.1072 -0.3093 +vn 0.9814 -0.1217 -0.1484 +vn 0.1373 -0.9803 -0.1420 +vn 0.1423 -0.9893 -0.0330 +vn -0.1283 -0.9426 -0.3084 +vn 0.1375 -0.9399 -0.3125 +vn -0.1375 -0.9399 -0.3125 +vn -0.9832 -0.1132 -0.1432 +vn 0.1283 -0.9426 -0.3084 +vn -0.9814 -0.1217 -0.1484 +vn 0.1469 -0.9885 -0.0359 +vn -0.1468 -0.9778 -0.1497 +vn 0.1468 -0.9778 -0.1497 +vn 0.9430 -0.1154 -0.3120 +vn -0.0000 -0.0000 -1.0000 +vn 0.5211 -0.8364 -0.1702 +vn 0.4874 -0.7903 -0.3714 +vn 0.8246 -0.4304 -0.3672 +vn 0.8732 -0.4571 -0.1689 +vn 0.5318 -0.8460 -0.0388 +vn 0.8843 -0.4652 -0.0387 +vn -0.1373 -0.9803 -0.1420 +vn -0.5318 -0.8460 -0.0387 +vn -0.8732 -0.4571 -0.1689 +vn -0.8844 -0.4652 -0.0387 +vn -0.5211 -0.8364 -0.1702 +vn -0.8246 -0.4304 -0.3672 +vn -0.4936 -0.7869 -0.3704 +vn -0.8676 -0.4633 -0.1804 +vn -0.8215 -0.4371 -0.3662 +vn -0.1469 -0.9885 -0.0359 +vn -0.5265 -0.8301 -0.1835 +vn -0.8823 -0.4685 -0.0445 +vn -0.9920 -0.1209 -0.0355 +vn 0.5265 -0.8302 -0.1835 +vn 0.5348 -0.8437 -0.0454 +vn 0.8823 -0.4685 -0.0446 +vn 0.8676 -0.4633 -0.1804 +vn 0.9920 -0.1209 -0.0355 +vn 0.4936 -0.7869 -0.3704 +vn 0.8215 -0.4371 -0.3662 +vn -0.5338 -0.8456 0.0001 +vn -0.8845 -0.4665 0.0001 +vn -0.9930 -0.1182 -0.0000 +vn -0.4874 -0.7903 -0.3714 +vn 0.8845 -0.4665 0.0001 +vn -0.0004 1.0000 -0.0028 +vn -0.0146 0.9999 -0.0013 +vn 0.0029 1.0000 -0.0064 +vn -0.1131 0.0626 -0.9916 +vn -0.1292 0.0162 -0.9915 +vn -0.1147 0.0586 -0.9917 +vn 0.0784 0.0434 0.9960 +vn 0.1020 0.1407 0.9848 +vn 0.0494 0.1002 0.9937 +vn 0.5338 -0.8456 -0.0001 +vn 0.8845 -0.4665 -0.0001 +vn -0.0000 -0.3421 -0.9397 +vn -0.0000 -0.3358 -0.9419 +vn -0.0000 -0.3421 0.9397 vn -0.0000 -0.0000 1.0000 -vn 0.9341 -0.2854 0.2145 -vn 0.6960 -0.6878 -0.2064 -vn 0.6960 -0.6878 0.2063 -vn 0.9739 0.0574 0.2195 -vn 0.9341 -0.2853 -0.2146 -vn 0.8951 0.3928 0.2112 -vn 0.9739 0.0574 -0.2195 -vn 0.8357 0.5363 0.1183 -vn 0.8951 0.3928 -0.2112 -vn -0.7148 -0.5030 0.4859 -vn -0.0627 -0.0742 0.9953 -vn -0.6450 -0.7641 -0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.1102 -0.0321 -0.9934 -vn -0.9867 -0.1628 0.0000 -vn -0.6524 -0.2727 0.7071 -vn -0.9666 0.2564 0.0000 -vn -0.7913 0.6114 0.0000 -vn 0.2917 -0.9400 -0.1772 -vn 0.2917 -0.9400 0.1772 -vn 0.0377 -0.3088 0.9504 -vn 0.1989 -0.6358 0.7458 -vn 0.1130 -0.9257 0.3609 -vn 0.1209 -0.9907 0.0625 -vn 0.0437 -0.1306 0.9905 -vn 0.4336 -0.4244 0.7949 -vn 0.5920 -0.1790 0.7858 -vn 0.6069 0.0354 0.7940 -vn 0.1100 0.0064 0.9939 -vn 0.5873 0.2461 0.7710 -vn 0.1549 0.0753 0.9851 -vn 0.7426 0.4766 0.4706 -vn 0.1130 -0.9257 -0.3610 -vn 0.1209 -0.9907 -0.0625 -vn 0.1989 -0.6359 -0.7457 -vn 0.0377 -0.3086 -0.9504 -vn 0.4336 -0.4245 -0.7949 -vn 0.0437 -0.1307 -0.9905 -vn 0.5920 -0.1790 -0.7858 -vn 0.0801 -0.0721 -0.9942 -vn 0.6070 0.0354 -0.7939 -vn 0.5873 0.2462 -0.7710 -vn 0.1101 0.0064 -0.9939 -vn 0.7425 0.4766 -0.4706 -vn 0.5300 0.2577 -0.8079 -vn 0.8357 0.5363 -0.1183 -vn -0.4437 -0.5256 0.7259 -vn -0.6450 -0.7642 -0.0000 -s 1 -f 51/45/19 52/46/20 46/47/19 -f 57/48/21 58/49/22 61/50/23 -f 63/51/24 65/52/25 62/53/26 -f 66/54/27 64/55/28 63/51/24 -f 68/56/29 67/57/30 66/54/27 -f 70/58/31 69/59/32 68/56/29 -f 73/60/33 74/61/34 71/62/35 -f 76/63/36 77/64/36 81/65/37 -f 53/66/38 73/60/33 54/67/39 -f 61/50/40 76/63/38 53/66/38 -f 60/68/41 77/64/40 61/50/40 -f 45/69/20 78/70/41 60/68/41 -f 62/53/26 84/71/42 83/72/43 -f 46/47/44 85/73/45 47/74/46 -f 47/74/46 83/72/43 48/75/47 -f 59/76/48 86/77/49 85/73/45 -f 85/73/45 62/53/26 83/72/43 -f 58/49/22 87/78/50 86/77/49 -f 86/77/49 63/51/24 62/53/26 -f 57/48/21 88/79/51 87/78/50 -f 87/78/50 66/54/27 63/51/24 -f 56/80/52 89/81/53 88/79/51 -f 89/81/53 66/54/27 88/79/51 -f 55/82/54 72/83/55 89/81/53 -f 72/83/55 68/56/29 89/81/53 -f 84/71/42 50/84/56 49/85/57 -f 90/86/58 51/45/59 50/84/56 -f 65/52/25 90/86/58 84/71/42 -f 91/87/60 79/88/61 90/86/58 -f 64/55/28 91/87/60 65/52/25 -f 92/89/62 80/90/63 91/87/60 -f 67/57/30 92/89/62 64/55/28 -f 93/91/64 81/65/37 92/89/62 -f 67/57/30 94/92/65 93/91/64 -f 94/92/65 82/93/66 93/91/64 -f 69/59/32 75/94/67 94/92/65 -f 94/92/65 75/94/67 74/61/68 -f 83/72/43 49/85/57 48/75/47 -f 52/46/20 45/69/20 46/47/19 -f 46/47/19 47/74/19 50/84/19 -f 47/74/19 48/75/19 50/84/19 -f 48/75/19 49/85/19 50/84/19 -f 50/84/19 51/45/19 46/47/19 -f 53/66/23 54/67/23 55/82/54 -f 53/66/23 55/82/54 56/80/52 -f 45/69/23 60/68/23 58/49/22 -f 60/68/23 61/50/23 58/49/22 -f 59/76/48 46/47/44 45/69/23 -f 58/49/22 59/76/48 45/69/23 -f 61/50/23 53/66/23 57/48/21 -f 53/66/23 56/80/52 57/48/21 -f 63/51/24 64/55/28 65/52/25 -f 66/54/27 67/57/30 64/55/28 -f 68/56/29 69/59/32 67/57/30 -f 70/58/31 71/62/69 69/59/32 -f 71/62/35 70/58/35 72/83/35 -f 55/82/70 54/67/39 73/60/33 -f 71/62/35 72/83/35 73/60/33 -f 72/83/35 55/82/70 73/60/33 -f 74/61/34 75/94/71 71/62/35 -f 77/64/36 78/70/36 80/90/63 -f 78/70/36 52/46/36 80/90/63 -f 52/46/36 51/45/59 79/88/61 -f 52/46/36 79/88/61 80/90/63 -f 74/61/68 73/60/23 76/63/36 -f 82/93/66 74/61/68 76/63/36 -f 81/65/37 82/93/66 76/63/36 -f 77/64/36 80/90/63 81/65/37 -f 53/66/38 76/63/38 73/60/33 -f 61/50/40 77/64/40 76/63/38 -f 60/68/41 78/70/41 77/64/40 -f 45/69/20 52/46/20 78/70/41 -f 62/53/26 65/52/25 84/71/42 -f 46/47/44 59/76/48 85/73/45 -f 47/74/46 85/73/45 83/72/43 -f 59/76/48 58/49/22 86/77/49 -f 85/73/45 86/77/49 62/53/26 -f 58/49/22 57/48/21 87/78/50 -f 86/77/49 87/78/50 63/51/24 -f 57/48/21 56/80/52 88/79/51 -f 87/78/50 88/79/51 66/54/27 -f 56/80/52 55/82/54 89/81/53 -f 89/81/53 68/56/29 66/54/27 -f 72/83/55 70/58/31 68/56/29 -f 84/71/42 90/86/58 50/84/56 -f 90/86/58 79/88/61 51/45/59 -f 65/52/25 91/87/60 90/86/58 -f 91/87/60 80/90/63 79/88/61 -f 64/55/28 92/89/62 91/87/60 -f 92/89/62 81/65/37 80/90/63 -f 67/57/30 93/91/64 92/89/62 -f 93/91/64 82/93/66 81/65/37 -f 67/57/30 69/59/32 94/92/65 -f 94/92/65 74/61/68 82/93/66 -f 69/59/32 71/62/69 75/94/67 -f 83/72/43 84/71/42 49/85/57 -o Plane.001 -v -0.706758 0.413916 0.079173 -v -0.706758 0.413916 0.133032 -v -0.706758 0.467775 0.133032 -v -0.706758 0.467775 0.079173 -v -0.274201 0.467775 0.079173 -v -0.638249 0.467775 0.133032 -v -0.638244 0.467775 0.132611 -v -0.274201 0.467775 0.132611 -v -0.274201 0.413916 0.132804 -v -0.274201 0.413916 0.079173 -v -0.274201 0.466244 0.132805 -v -0.638765 0.413916 0.132804 -v -0.638765 0.413916 0.133032 -v -0.638765 0.466254 0.133032 -v -0.602429 0.520191 0.120479 -v -0.201794 0.520191 0.120479 -v -0.201794 0.551348 0.104105 -v -0.558765 0.551348 0.104105 -v -0.629471 0.493740 0.130619 -v -0.201794 0.493740 0.130619 -v -0.638765 0.466292 0.134105 -v -0.201794 0.466292 0.134105 -v -0.638765 0.350993 0.134105 -v -0.201794 0.350993 0.134105 -v -0.602429 0.519875 0.119244 -v -0.558765 0.550972 0.102899 -v -0.201794 0.550972 0.102899 -v -0.201794 0.519861 0.119250 -v -0.201794 0.493549 0.129342 -v -0.629471 0.493568 0.129338 -v -0.201794 0.466243 0.132805 -v -0.201794 0.350993 0.132804 -v -0.638765 0.350993 0.132804 -vt 0.515296 0.663237 -vt 0.515296 0.682674 -vt 0.515296 0.663237 -vt 0.515296 0.682674 -vt 0.540019 0.682674 -vt 0.540021 0.682674 -vt 0.671399 0.682674 -vt 0.671399 0.682674 -vt 0.671399 0.682121 -vt 0.671399 0.663237 -vt 0.671399 0.663237 -vt 0.539833 0.663237 -vt 0.539833 0.663237 -vt 0.539833 0.682125 -vt 0.697530 0.701590 -vt 0.568704 0.712834 -vt 0.552946 0.701590 -vt 0.697530 0.692045 -vt 0.543187 0.692045 -vt 0.697530 0.682139 -vt 0.697530 0.640529 -vt 0.539833 0.682139 -vt 0.539833 0.640529 -vt 0.568704 0.712699 -vt 0.697530 0.701471 -vt 0.552946 0.701476 -vt 0.697530 0.691975 -vt 0.697530 0.682121 -vt 0.539833 0.640529 -vt 0.697530 0.640529 -vt 0.697530 0.712834 -vt 0.543187 0.691982 -vt 0.697530 0.712699 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 1.0000 -0.0002 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.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.4123 0.9111 -vn 0.0000 0.4652 0.8852 -vn 0.0000 0.3826 0.9239 -vn 0.0000 0.2437 0.9698 -vn 0.0000 0.1966 0.9805 -vn 0.0000 0.0631 0.9980 -vn 0.0000 0.0559 0.9984 -vn -0.0000 -0.4653 -0.8852 -vn 0.0000 -0.4124 -0.9110 -vn -0.0000 -0.3828 -0.9239 -vn -0.0000 -0.2437 -0.9698 -vn 0.0000 -0.0630 -0.9980 -vn 0.0000 -0.1258 -0.9921 -vn 0.0000 0.9547 -0.2976 -vn -0.3161 0.9058 -0.2821 -vn -0.3399 0.8980 -0.2793 -vn -0.6735 0.7163 -0.1824 -vn -0.8466 0.5274 -0.0712 -vn -0.8587 0.5080 -0.0675 -vn -0.9474 0.3198 -0.0136 -vn -0.9872 0.1592 -0.0056 -vn -0.9872 0.1597 -0.0062 -vn -0.6661 0.7225 -0.1852 -vn 0.0000 -0.4652 -0.8852 -vn -0.0000 -0.1964 -0.9805 -vn 0.0000 -0.1259 -0.9920 -vn -0.9471 0.3207 -0.0112 -s off -f 96/95/72 98/96/72 95/97/72 -f 97/98/73 100/99/73 101/100/73 -f 99/101/74 102/102/74 105/103/74 -f 104/104/75 103/105/75 106/106/75 -f 99/101/76 95/97/76 98/96/76 -f 96/95/77 107/107/77 108/108/77 -f 96/95/72 97/98/72 98/96/72 -f 102/102/78 99/101/78 101/100/78 -f 99/101/78 98/96/78 101/100/78 -f 98/96/78 97/98/78 101/100/78 -f 105/103/74 103/105/74 104/104/74 -f 104/104/74 99/101/74 105/103/74 -f 107/107/75 96/95/75 106/106/75 -f 96/95/75 95/97/75 106/106/75 -f 95/97/75 104/104/75 106/106/75 -f 99/101/76 104/104/76 95/97/76 -f 108/108/77 100/99/77 97/98/77 -f 97/98/77 96/95/77 108/108/77 -s 1 -f 110/109/79 112/110/80 109/111/81 -f 109/111/81 114/112/82 110/109/79 -f 113/113/83 116/114/84 114/112/82 -f 118/115/77 115/116/85 117/117/77 -f 120/118/86 122/119/87 119/120/88 -f 123/121/89 119/120/88 122/119/87 -f 125/122/90 105/103/90 102/102/91 -f 127/123/76 106/106/76 103/105/76 -f 117/117/75 126/124/75 118/115/75 -f 111/125/92 120/118/93 112/110/94 -f 110/109/74 123/121/74 122/119/74 -f 109/111/95 124/126/96 113/113/97 -f 114/112/74 125/122/74 123/121/74 -f 100/99/98 108/108/99 115/116/100 -f 115/116/100 108/108/99 107/107/72 -f 118/115/74 125/122/74 116/114/74 -f 112/110/94 119/120/101 109/111/95 -f 111/125/74 122/119/74 121/127/74 -f 110/109/79 111/125/80 112/110/80 -f 109/111/81 113/113/83 114/112/82 -f 113/113/83 115/116/85 116/114/84 -f 118/115/77 116/114/84 115/116/85 -f 120/118/86 121/127/102 122/119/87 -f 123/121/89 124/126/103 119/120/88 -f 102/102/91 101/100/104 124/126/103 -f 124/126/103 123/121/89 102/102/91 -f 123/121/89 125/122/90 102/102/91 -f 105/103/90 125/122/90 103/105/76 -f 125/122/90 126/124/76 103/105/76 -f 126/124/76 127/123/76 103/105/76 -f 117/117/75 127/123/75 126/124/75 -f 111/125/92 121/127/92 120/118/93 -f 110/109/74 114/112/74 123/121/74 -f 109/111/95 119/120/101 124/126/96 -f 114/112/74 116/114/74 125/122/74 -f 115/116/100 113/113/97 100/99/98 -f 113/113/97 124/126/96 100/99/98 -f 124/126/96 101/100/105 100/99/98 -f 106/106/72 127/123/72 107/107/72 -f 127/123/72 117/117/72 107/107/72 -f 117/117/72 115/116/100 107/107/72 -f 118/115/74 126/124/74 125/122/74 -f 112/110/94 120/118/93 119/120/101 -f 111/125/74 110/109/74 122/119/74 -o Cube.005_Cube.007 -v -0.849928 0.170624 -0.075429 -v -0.849928 0.170624 0.076654 -v -0.849928 0.210654 0.076654 -v -0.849928 0.210654 -0.075429 -v -0.731509 0.170624 -0.075429 -v -0.731509 0.170624 0.076654 -v -0.288424 0.100624 -0.062753 -v -0.288424 0.100624 0.063977 -v -0.334112 0.100624 0.063977 -v -0.334112 0.100624 -0.062753 -v -0.523278 0.140624 -0.062753 -v -0.523278 0.140624 0.063977 -v -0.627054 0.161879 0.063977 -v -0.627054 0.161879 -0.062753 -v -0.428800 0.170654 -0.075429 -v -0.428800 0.170654 0.076654 -v -0.328424 0.130654 0.076654 -v -0.328424 0.130654 -0.075429 -v -0.569176 0.210654 -0.075429 -v -0.569176 0.210654 0.076654 -v -0.300640 0.109795 0.076654 -v -0.291549 0.102969 0.073412 -v -0.291549 0.102970 -0.072187 -v -0.300640 0.109795 -0.075429 -v -0.375389 0.104504 0.063977 -v -0.375389 0.104504 -0.062753 -v -0.357071 0.101616 -0.062753 -v -0.357071 0.101616 0.063977 -v -0.674625 0.168387 0.076654 -v -0.596451 0.168877 0.076654 -v -0.488050 0.146675 0.076654 -v -0.342077 0.111023 0.076654 -v -0.336278 0.110109 0.076654 -v -0.329011 0.109795 0.076654 -v -0.674625 0.168387 0.063977 -v -0.674625 0.168387 -0.062753 -v -0.674625 0.168387 -0.075429 -v -0.366869 0.106172 0.073412 -v -0.351753 0.103789 0.073412 -v -0.342077 0.111023 -0.075429 -v -0.336278 0.110109 -0.075429 -v -0.351753 0.103789 -0.072187 -v -0.366869 0.106172 -0.072187 -v -0.332807 0.102969 0.073412 -v -0.329011 0.109795 -0.075429 -v -0.332807 0.102970 -0.072187 -v -0.514267 0.142171 0.073412 -v -0.488050 0.146675 -0.075429 -v -0.514267 0.142171 -0.072187 -v -0.619227 0.163669 0.073412 -v -0.596451 0.168877 -0.075429 -v -0.619227 0.163669 -0.072187 -vt 0.437463 0.717486 -vt 0.437463 0.729525 -vt 0.437463 0.717486 -vt 0.473076 0.717486 -vt 0.473076 0.717486 -vt 0.606328 0.696434 -vt 0.592588 0.696434 -vt 0.606328 0.696434 -vt 0.535699 0.708464 -vt 0.504490 0.714856 -vt 0.535699 0.708464 -vt 0.564112 0.717495 -vt 0.594299 0.705466 -vt 0.564112 0.717495 -vt 0.521896 0.729525 -vt 0.521896 0.729525 -vt 0.437463 0.729525 -vt 0.605389 0.697140 -vt 0.602655 0.699193 -vt 0.580175 0.697602 -vt 0.585684 0.696733 -vt 0.580175 0.697602 -vt 0.513693 0.716961 -vt 0.546293 0.710284 -vt 0.585684 0.696733 -vt 0.592588 0.696434 -vt 0.490183 0.716814 -vt 0.504490 0.714856 -vt 0.490183 0.716814 -vt 0.590193 0.699562 -vt 0.587283 0.697386 -vt 0.591937 0.699287 -vt 0.582737 0.698103 -vt 0.590193 0.699562 -vt 0.587283 0.697386 -vt 0.582737 0.698103 -vt 0.592981 0.697140 -vt 0.594123 0.699193 -vt 0.591937 0.699287 -vt 0.592981 0.697140 -vt 0.538409 0.708929 -vt 0.605389 0.697140 -vt 0.602655 0.699193 -vt 0.594123 0.699193 -vt 0.546293 0.710284 -vt 0.538409 0.708929 -vt 0.490183 0.716814 -vt 0.506844 0.715395 -vt 0.490183 0.716814 -vt 0.513693 0.716961 -vt 0.506844 0.715395 -vt 0.594299 0.705466 -vn -1.0000 0.0000 0.0000 -vn -0.0197 -0.9998 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 -0.9941 0.1081 -vn -0.0223 -0.9922 -0.1228 -vn 0.0000 -0.9941 -0.1082 -vn -0.2118 -0.9619 0.1730 -vn -0.1403 -0.9820 -0.1261 -vn -0.2118 -0.9619 -0.1730 -vn 0.3225 0.9466 0.0000 -vn 0.4896 0.8720 -0.0000 -vn 0.1384 0.9904 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.6004 0.7997 -0.0000 -vn -0.2019 -0.9639 -0.1737 -vn -0.1067 -0.9841 0.1419 -vn -0.2019 -0.9639 0.1737 -vn 0.0000 0.0000 1.0000 -vn -0.0276 -0.1577 0.9871 -vn -0.0343 -0.1438 0.9890 -vn -0.1067 -0.9841 -0.1420 -vn -0.0223 -0.9922 0.1228 -vn -0.0875 -0.9962 0.0000 -vn -0.1403 -0.9821 0.1260 -vn -0.0295 -0.1760 0.9839 -vn -0.0722 -0.7453 0.6628 -vn -0.0130 -0.2157 0.9764 -vn -0.1341 -0.6933 0.7080 -vn -0.0295 -0.1760 -0.9839 -vn -0.0722 -0.7453 -0.6628 -vn -0.1341 -0.6933 -0.7080 -vn -0.0172 -0.7737 0.6334 -vn -0.0034 -0.2211 0.9752 -vn -0.0130 -0.2157 -0.9764 -vn -0.0172 -0.7736 -0.6334 -vn -0.1529 -0.6729 0.7238 -vn 0.0000 -0.8913 0.4534 -vn 0.0000 -0.3452 0.9385 -vn 0.0000 -0.3453 -0.9385 -vn -0.0034 -0.2212 -0.9752 -vn 0.0000 -0.8913 -0.4535 -vn -0.0343 -0.1438 -0.9890 -vn -0.1529 -0.6728 -0.7238 -vn -0.0562 -0.6938 0.7179 -vn -0.0844 -0.7745 0.6269 -vn -0.0562 -0.6938 -0.7179 -vn -0.0276 -0.1577 -0.9871 -vn -0.0844 -0.7745 -0.6269 -vn 0.0000 0.0000 -1.0000 -vn 0.6005 0.7996 0.0001 -s 1 -f 129/128/106 131/129/106 128/130/106 -f 133/131/107 128/130/108 132/132/107 -f 135/133/109 137/134/110 134/135/111 -f 139/136/112 141/137/113 138/138/114 -f 143/139/115 145/140/116 142/141/115 -f 147/142/117 142/141/115 146/143/117 -f 130/144/118 146/143/117 131/129/118 -f 134/135/119 150/145/119 151/146/119 -f 153/147/120 155/148/121 152/149/122 -f 147/142/123 157/150/124 158/151/125 -f 154/152/126 136/153/127 155/148/121 -f 163/154/128 140/155/129 162/156/128 -f 132/132/107 163/154/128 162/156/128 -f 152/149/122 138/138/114 153/147/120 -f 159/157/130 166/158/131 160/159/132 -f 165/160/133 155/148/121 166/158/131 -f 167/161/134 169/162/135 170/163/136 -f 170/163/136 154/152/126 153/147/120 -f 160/159/132 171/164/137 161/165/138 -f 166/158/131 136/153/127 171/164/137 -f 168/166/139 173/167/140 169/162/135 -f 169/162/135 137/134/110 154/152/126 -f 152/149/122 174/168/141 139/136/112 -f 165/160/133 158/151/125 174/168/141 -f 136/153/127 149/169/142 171/164/137 -f 171/164/137 148/170/143 161/165/138 -f 151/146/144 173/167/140 172/171/145 -f 150/145/146 137/134/110 173/167/140 -f 175/172/147 170/163/136 176/173/148 -f 176/173/148 153/147/120 138/138/114 -f 157/150/124 156/174/149 177/175/150 -f 156/174/149 140/155/129 177/175/150 -f 164/176/151 178/177/152 179/178/153 -f 164/176/151 141/137/113 163/154/128 -f 178/177/152 176/173/148 179/178/153 -f 179/178/153 138/138/114 141/137/113 -f 157/150/124 174/168/141 158/151/125 -f 177/175/150 139/136/112 174/168/141 -f 146/143/154 175/172/147 178/177/152 -f 129/128/106 130/144/106 131/129/106 -f 133/131/107 129/128/108 128/130/108 -f 135/133/109 136/153/127 137/134/110 -f 139/136/112 140/155/129 141/137/113 -f 143/139/115 144/179/116 145/140/116 -f 147/142/117 143/139/115 142/141/115 -f 130/144/118 147/142/117 146/143/117 -f 151/146/119 145/140/116 134/135/119 -f 145/140/116 144/179/116 134/135/119 -f 144/179/116 148/170/119 135/133/119 -f 148/170/119 149/169/155 135/133/119 -f 135/133/119 134/135/119 144/179/116 -f 153/147/120 154/152/126 155/148/121 -f 148/170/143 144/179/123 161/165/138 -f 144/179/123 143/139/123 159/157/130 -f 161/165/138 144/179/123 160/159/132 -f 143/139/123 147/142/123 158/151/125 -f 147/142/123 130/144/123 133/131/123 -f 157/150/124 147/142/123 156/174/149 -f 130/144/123 129/128/123 133/131/123 -f 133/131/123 156/174/149 147/142/123 -f 158/151/125 159/157/130 143/139/123 -f 159/157/130 160/159/132 144/179/123 -f 154/152/126 137/134/110 136/153/127 -f 163/154/128 141/137/113 140/155/129 -f 156/174/149 133/131/107 162/156/128 -f 133/131/107 132/132/107 162/156/128 -f 132/132/107 164/176/151 163/154/128 -f 152/149/122 139/136/112 138/138/114 -f 159/157/130 165/160/133 166/158/131 -f 165/160/133 152/149/122 155/148/121 -f 167/161/134 168/166/139 169/162/135 -f 170/163/136 169/162/135 154/152/126 -f 160/159/132 166/158/131 171/164/137 -f 166/158/131 155/148/121 136/153/127 -f 168/166/139 172/171/145 173/167/140 -f 169/162/135 173/167/140 137/134/110 -f 152/149/122 165/160/133 174/168/141 -f 165/160/133 159/157/130 158/151/125 -f 136/153/127 135/133/109 149/169/142 -f 171/164/137 149/169/142 148/170/143 -f 151/146/144 150/145/146 173/167/140 -f 150/145/146 134/135/111 137/134/110 -f 175/172/147 167/161/134 170/163/136 -f 176/173/148 170/163/136 153/147/120 -f 156/174/149 162/156/128 140/155/129 -f 164/176/151 179/178/153 141/137/113 -f 178/177/152 175/172/147 176/173/148 -f 179/178/153 176/173/148 138/138/114 -f 157/150/124 177/175/150 174/168/141 -f 177/175/150 140/155/129 139/136/112 -f 128/130/154 131/129/154 132/132/154 -f 131/129/154 146/143/154 132/132/154 -f 146/143/154 142/141/154 175/172/147 -f 142/141/154 145/140/154 167/161/134 -f 167/161/134 145/140/154 168/166/139 -f 145/140/154 151/146/144 172/171/145 -f 172/171/145 168/166/139 145/140/154 -f 167/161/134 175/172/147 142/141/154 -f 178/177/152 164/176/151 146/143/154 -f 164/176/151 132/132/154 146/143/154 -o Cube.004_Cube.005 -v -0.288131 0.078364 0.100627 -v -0.398224 0.190299 0.100627 -v -0.398224 0.190299 -0.099403 -v -0.288131 0.078364 -0.099403 -v -0.288131 0.078364 -0.081922 -v -0.396897 0.188950 -0.081922 -v -0.396897 0.188950 0.083147 -v -0.288131 0.078364 0.083147 -v -0.189154 0.190299 0.100627 -v -0.189154 0.190299 -0.099403 -v -0.189154 0.078364 0.100627 -v -0.189154 0.078364 -0.099403 -v -0.246637 0.078364 0.083147 -v -0.246637 0.078364 -0.081922 -v -0.246637 0.188950 -0.081922 -v -0.246637 0.188950 0.083147 -vt 0.371558 0.219091 -vt 0.371558 0.219091 -vt 0.371159 0.219497 -vt 0.434034 0.219497 -vt 0.371159 0.219497 -vt 0.434034 0.219497 -vt 0.434034 0.185834 -vt 0.434034 0.185834 -vt 0.416747 0.185834 -vt 0.404268 0.185834 -vt 0.404268 0.185834 -vt 0.416747 0.219091 -vt 0.416747 0.219091 -vt 0.416747 0.185834 -vt 0.404268 0.185834 -vt 0.404268 0.185834 -vn -0.7129 -0.7012 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -vn -1.0000 -0.0000 0.0000 -vn -0.7129 -0.7013 0.0000 -s off -f 185/180/156 186/181/156 181/182/156 -f 181/182/157 189/183/157 182/184/157 -f 188/185/158 191/186/158 189/183/158 -f 191/186/159 190/187/159 193/188/159 -f 189/183/160 183/189/160 182/184/160 -f 188/185/161 180/190/161 190/187/161 -f 195/191/159 185/180/159 194/192/159 -f 194/192/162 192/193/162 195/191/162 -f 194/192/161 184/194/161 193/188/161 -f 195/191/160 187/195/160 186/181/160 -f 187/195/156 180/190/156 186/181/156 -f 180/190/156 181/182/156 186/181/156 -f 182/184/156 183/189/156 185/180/156 -f 183/189/156 184/194/156 185/180/156 -f 182/184/163 185/180/163 181/182/163 -f 181/182/157 188/185/157 189/183/157 -f 188/185/158 190/187/158 191/186/158 -f 193/188/159 184/194/159 183/189/159 -f 190/187/159 180/190/159 192/193/159 -f 180/190/159 187/195/159 192/193/159 -f 193/188/159 183/189/159 191/186/159 -f 190/187/159 192/193/159 193/188/159 -f 189/183/160 191/186/160 183/189/160 -f 188/185/161 181/182/161 180/190/161 -f 195/191/159 186/181/159 185/180/159 -f 194/192/162 193/188/162 192/193/162 -f 194/192/161 185/180/161 184/194/161 -f 195/191/160 192/193/160 187/195/160 -o Cylinder.007 -v -1.092410 0.183821 -0.054357 -v -1.092410 0.183821 0.062757 -v -1.068940 0.174100 0.062757 -v -1.068940 0.174100 -0.054357 -v -1.059218 0.150630 0.062757 -v -1.059218 0.150630 -0.054357 -v -1.068940 0.127160 0.062757 -v -1.068940 0.127160 -0.054357 -v -1.092410 0.117438 0.062757 -v -1.092410 0.117438 -0.054357 -v -1.115880 0.127160 0.062757 -v -1.115880 0.127160 -0.054357 -v -1.125601 0.150630 0.062757 -v -1.125601 0.150630 -0.054357 -v -1.115880 0.174100 0.062757 -v -1.115880 0.174100 -0.054357 -vt 0.486610 0.403096 -vt 0.493668 0.400172 -vt 0.486610 0.403096 -vt 0.493668 0.400172 -vt 0.496592 0.393114 -vt 0.496592 0.393114 -vt 0.493668 0.386056 -vt 0.493668 0.386056 -vt 0.486610 0.383132 -vt 0.486610 0.383132 -vt 0.479552 0.386056 -vt 0.479552 0.386056 -vt 0.476628 0.393114 -vt 0.476628 0.393114 -vt 0.479552 0.400172 -vt 0.479552 0.400172 -vn 0.0000 1.0000 0.0000 -vn 0.7071 0.7071 0.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.7071 -0.7071 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn -0.7071 0.7071 0.0000 -vn 0.0000 0.0000 -1.0000 -s 1 -f 197/196/164 199/197/165 196/198/164 -f 198/199/165 201/200/166 199/197/165 -f 200/201/166 203/202/167 201/200/166 -f 202/203/167 205/204/168 203/202/167 -f 204/205/168 207/206/169 205/204/168 -f 206/207/169 209/208/170 207/206/169 -f 200/201/171 197/196/171 208/209/171 -f 208/209/170 211/210/172 209/208/170 -f 210/211/172 196/198/164 211/210/172 -f 209/208/173 211/210/173 203/202/173 -f 197/196/164 198/199/165 199/197/165 -f 198/199/165 200/201/166 201/200/166 -f 200/201/166 202/203/167 203/202/167 -f 202/203/167 204/205/168 205/204/168 -f 204/205/168 206/207/169 207/206/169 -f 206/207/169 208/209/170 209/208/170 -f 200/201/171 198/199/171 197/196/171 -f 197/196/171 210/211/171 208/209/171 -f 208/209/171 206/207/171 204/205/171 -f 204/205/171 202/203/171 208/209/171 -f 202/203/171 200/201/171 208/209/171 -f 208/209/170 210/211/172 211/210/172 -f 210/211/172 197/196/164 196/198/164 -f 211/210/173 196/198/173 203/202/173 -f 196/198/173 199/197/173 203/202/173 -f 199/197/173 201/200/173 203/202/173 -f 203/202/173 205/204/173 207/206/173 -f 207/206/173 209/208/173 203/202/173 -o Cube.003_Cube -v -1.578045 0.212030 -0.054842 -v -1.578045 0.212030 0.057698 -v -0.861955 0.212030 0.057698 -v -0.861955 0.212030 -0.054842 -v -1.578045 0.203298 -0.054842 -v -1.578045 0.203298 0.057698 -v -1.128281 0.027130 0.057698 -v -1.128281 0.027130 -0.054842 -v -1.114436 0.065059 -0.054842 -v -1.114436 0.065059 0.057698 -v -1.454635 0.065231 -0.054842 -v -1.454635 0.065231 0.057698 -v -1.481781 0.118060 0.057698 -v -1.481781 0.118060 -0.054842 -v -1.527702 0.168281 0.057698 -v -1.527702 0.168281 -0.054842 -v -0.861955 0.202811 0.057698 -v -0.861955 0.202811 -0.054842 -v -1.450844 0.044421 -0.054842 -v -1.450844 0.044421 0.057698 -v -1.062335 0.121520 -0.054842 -v -1.062335 0.121520 0.057698 -v -0.962640 0.167855 -0.054842 -v -0.962640 0.167855 0.057698 -v -1.074680 0.124782 -0.054842 -v -1.125464 0.065837 -0.054842 -v -1.125464 0.116276 -0.054842 -v -1.130869 0.139630 -0.054842 -v -1.121683 0.141171 -0.054842 -v -1.115880 0.127160 -0.054842 -v -1.092410 0.117438 -0.054842 -v -1.125601 0.150630 -0.054842 -v -1.148853 0.159885 -0.054842 -v -1.174411 0.171886 -0.054842 -v -1.206501 0.174873 -0.054842 -v -1.364767 0.174873 -0.054842 -v -1.396858 0.171886 -0.054842 -v -1.422416 0.159885 -0.054842 -v -1.440399 0.139630 -0.054842 -v -1.445804 0.116276 -0.054842 -v -1.445804 0.065837 -0.054842 -v -1.068940 0.127160 -0.054842 -v -1.059218 0.150630 -0.054842 -v -1.068940 0.174100 -0.054842 -v -1.092410 0.183821 -0.054842 -v -1.115880 0.174100 -0.054842 -v -1.144751 0.003110 -0.054842 -v -1.181248 -0.005077 -0.054842 -v -1.396052 -0.003671 -0.054842 -v -1.435488 0.014101 -0.054842 -v -1.440399 0.042483 -0.054842 -v -1.422416 0.022228 -0.054842 -v -1.396858 0.010226 -0.054842 -v -1.364767 0.007240 -0.054842 -v -1.206501 0.007240 -0.054842 -v -1.174411 0.010226 -0.054842 -v -1.148853 0.022228 -0.054842 -v -1.130869 0.042483 -0.054842 -v -1.181248 -0.005077 0.057698 -v -1.144751 0.003110 0.057698 -v -1.435488 0.014101 0.057698 -v -1.396052 -0.003671 0.057698 -v -1.440399 0.042483 0.057698 -v -1.445804 0.065837 0.057698 -v -1.125464 0.065837 0.057698 -v -1.130869 0.042483 0.057698 -v -1.148853 0.022228 0.057698 -v -1.174411 0.010226 0.057698 -v -1.206501 0.007240 0.057698 -v -1.364767 0.007240 0.057698 -v -1.396858 0.010226 0.057698 -v -1.422416 0.022228 0.057698 -v -1.121683 0.141171 0.057698 -v -1.130869 0.139630 0.057698 -v -1.125464 0.116276 0.057698 -v -1.074680 0.124782 0.057698 -v -1.092410 0.117438 0.057698 -v -1.115880 0.127160 0.057698 -v -1.068940 0.127160 0.057698 -v -1.445804 0.116276 0.057698 -v -1.440399 0.139630 0.057698 -v -1.422416 0.159885 0.057698 -v -1.396858 0.171886 0.057698 -v -1.364767 0.174873 0.057698 -v -1.206501 0.174873 0.057698 -v -1.174411 0.171886 0.057698 -v -1.148853 0.159885 0.057698 -v -1.125601 0.150630 0.057698 -v -1.115880 0.174100 0.057698 -v -1.092410 0.183821 0.057698 -v -1.068940 0.174100 0.057698 -v -1.059218 0.150630 0.057698 -vt 0.176155 0.159372 -vt 0.351182 0.159372 -vt 0.176155 0.159372 -vt 0.176155 0.157238 -vt 0.176155 0.157238 -vt 0.286086 0.114179 -vt 0.289470 0.123449 -vt 0.286086 0.114179 -vt 0.206319 0.123491 -vt 0.199684 0.136404 -vt 0.206319 0.123491 -vt 0.199684 0.136404 -vt 0.188460 0.148679 -vt 0.188460 0.148679 -vt 0.351182 0.159372 -vt 0.351182 0.157119 -vt 0.207246 0.118405 -vt 0.207246 0.118405 -vt 0.289470 0.123449 -vt 0.302205 0.137250 -vt 0.302205 0.137250 -vt 0.326572 0.148575 -vt 0.326572 0.148575 -vt 0.351182 0.157119 -vt 0.289117 0.138628 -vt 0.294854 0.136252 -vt 0.286775 0.135968 -vt 0.220441 0.149560 -vt 0.214194 0.146627 -vt 0.220638 0.106650 -vt 0.220441 0.110047 -vt 0.228285 0.109317 -vt 0.273140 0.106307 -vt 0.282061 0.108308 -vt 0.273140 0.106307 -vt 0.282061 0.108308 -vt 0.210999 0.110994 -vt 0.210999 0.110994 -vt 0.220638 0.106650 -vt 0.228285 0.109317 -vt 0.220441 0.110047 -vt 0.286775 0.135968 -vt 0.294854 0.136252 -vt 0.266968 0.150290 -vt 0.294854 0.152477 -vt 0.286775 0.123640 -vt 0.208478 0.123640 -vt 0.208478 0.135968 -vt 0.208478 0.123640 -vt 0.266968 0.109317 -vt 0.266968 0.109317 -vt 0.228285 0.150290 -vt 0.228285 0.150290 -vt 0.214194 0.112981 -vt 0.214194 0.112981 -vt 0.209799 0.117931 -vt 0.209799 0.117931 -vt 0.220441 0.149560 -vt 0.214194 0.146627 -vt 0.209799 0.141676 -vt 0.209799 0.141676 -vt 0.208478 0.135968 -vt 0.285454 0.141676 -vt 0.285454 0.141676 -vt 0.281058 0.146627 -vt 0.281058 0.146627 -vt 0.274811 0.149560 -vt 0.274811 0.149560 -vt 0.266968 0.150290 -vt 0.274811 0.110047 -vt 0.274811 0.110047 -vt 0.281058 0.112981 -vt 0.281058 0.112981 -vt 0.285454 0.117931 -vt 0.285454 0.117931 -vt 0.286775 0.123640 -vt 0.300590 0.150101 -vt 0.294854 0.152477 -vt 0.302967 0.144365 -vt 0.300590 0.150101 -vt 0.300590 0.138628 -vt 0.302967 0.144365 -vt 0.299187 0.138047 -vt 0.299187 0.138047 -vt 0.289117 0.138628 -vt 0.287699 0.142053 -vt 0.286741 0.144365 -vt 0.287699 0.142053 -vt 0.289117 0.150101 -vt 0.286741 0.144365 -vt 0.289117 0.150101 -vt 0.300590 0.138628 -vn 0.0000 1.0000 0.0000 -vn -0.8863 -0.4631 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.8891 -0.4578 -0.0000 -vn 0.8538 -0.5207 0.0000 -vn -0.9469 -0.3216 0.0000 -vn -0.8210 -0.5710 0.0000 -vn -0.6586 -0.7525 0.0000 -vn 1.0000 0.0000 0.0000 -vn -0.9478 -0.3188 -0.0000 -vn 0.5894 -0.8078 0.0000 -vn 0.3752 -0.9269 0.0000 -vn 0.3280 -0.9447 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.1069 -0.9943 -0.0000 -vn 0.5607 -0.8280 -0.0000 -vn -0.6909 -0.7230 -0.0000 -vn -0.2133 -0.9770 -0.0000 -vn 0.0000 0.0000 1.0000 -vn -0.9935 0.1135 0.0000 -vn -0.9935 -0.1135 0.0000 -vn 0.9935 0.1135 0.0000 -vn 0.9935 -0.1135 0.0000 -vn 0.0464 0.9989 0.0000 -vn -0.0464 0.9989 0.0000 -vn 0.0464 -0.9989 0.0000 -vn -0.0464 -0.9989 0.0000 -vn 0.2628 0.9649 0.0000 -vn 0.5987 0.8010 0.0000 -vn 0.8885 0.4589 0.0000 -vn 0.2628 -0.9649 0.0000 -vn 0.5987 -0.8010 0.0000 -vn 0.8885 -0.4589 0.0000 -vn -0.8885 -0.4589 0.0000 -vn -0.5987 -0.8010 0.0000 -vn -0.2628 -0.9649 0.0000 -vn -0.2628 0.9649 0.0000 -vn -0.5987 0.8010 0.0000 -vn -0.8885 0.4589 0.0000 -vn -0.7071 -0.7071 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.7071 0.7071 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.7071 -0.7071 0.0000 -s 1 -f 213/212/174 215/213/174 212/214/174 -f 217/215/175 212/214/176 216/216/175 -f 219/217/177 221/218/178 218/219/177 -f 223/220/179 225/221/180 222/222/179 -f 224/223/180 227/224/181 225/221/180 -f 226/225/181 216/216/175 227/224/181 -f 214/226/182 229/227/182 215/213/182 -f 231/228/183 222/222/179 230/229/183 -f 220/230/178 233/231/184 221/218/178 -f 232/232/184 235/233/185 233/231/184 -f 234/234/185 228/235/186 235/233/185 -f 241/236/187 242/237/187 238/238/187 -f 248/239/187 249/240/187 227/224/187 -f 260/241/187 264/242/187 265/243/187 -f 259/244/188 271/245/189 270/246/188 -f 258/247/189 218/219/177 271/245/189 -f 230/229/183 272/248/190 231/228/183 -f 261/249/190 273/250/191 272/248/190 -f 273/250/191 259/244/188 270/246/188 -f 281/251/192 282/252/192 273/250/192 -f 286/253/192 221/218/192 288/254/192 -f 296/255/192 301/256/192 213/212/192 -f 237/257/193 286/253/194 238/238/194 -f 252/258/195 291/259/196 275/260/195 -f 265/243/197 280/261/198 266/262/198 -f 247/263/199 296/255/200 295/264/199 -f 264/242/201 281/251/197 265/243/197 -f 264/242/201 283/265/202 282/252/201 -f 263/266/202 274/267/203 283/265/202 -f 262/268/203 275/260/195 274/267/203 -f 248/239/204 295/264/199 294/269/204 -f 249/240/205 294/269/204 293/270/205 -f 250/271/206 293/270/205 292/272/206 -f 292/272/206 251/273/196 250/271/206 -f 238/238/194 285/274/207 239/275/207 -f 239/275/207 298/276/208 244/277/208 -f 244/277/208 297/278/209 245/279/209 -f 246/280/200 297/278/209 296/255/200 -f 266/262/198 279/281/210 267/282/210 -f 267/282/210 278/283/211 268/284/211 -f 268/284/211 277/285/212 269/286/212 -f 269/286/212 276/287/193 237/257/193 -f 255/288/213 301/256/214 256/289/214 -f 254/290/176 302/291/213 255/288/213 -f 253/292/215 303/293/176 254/290/176 -f 236/294/216 288/254/174 287/295/216 -f 242/237/174 289/296/217 288/254/174 -f 240/297/218 299/298/182 284/299/218 -f 300/300/219 243/301/182 257/302/219 -f 257/302/219 301/256/214 300/300/219 -f 213/212/174 214/226/174 215/213/174 -f 217/215/175 213/212/176 212/214/176 -f 219/217/177 220/230/178 221/218/178 -f 223/220/179 224/223/180 225/221/180 -f 224/223/180 226/225/181 227/224/181 -f 226/225/181 217/215/175 216/216/175 -f 214/226/182 228/235/182 229/227/182 -f 231/228/183 223/220/179 222/222/179 -f 220/230/178 232/232/184 233/231/184 -f 232/232/184 234/234/185 235/233/185 -f 234/234/185 229/227/186 228/235/186 -f 242/237/187 236/294/187 232/232/187 -f 232/232/187 220/230/187 242/237/187 -f 220/230/187 237/257/187 238/238/187 -f 242/237/187 220/230/187 238/238/187 -f 238/238/187 239/275/187 241/236/187 -f 239/275/187 240/297/187 241/236/187 -f 243/301/187 240/297/187 239/275/187 -f 243/301/187 239/275/187 244/277/187 -f 257/302/187 243/301/187 244/277/187 -f 257/302/187 244/277/187 245/279/187 -f 256/289/187 257/302/187 245/279/187 -f 256/289/187 245/279/187 246/280/187 -f 256/289/187 246/280/187 212/214/187 -f 246/280/187 247/263/187 212/214/187 -f 232/232/187 236/294/187 253/292/187 -f 215/213/187 229/227/187 234/234/187 -f 234/234/187 232/232/187 254/290/187 -f 232/232/187 253/292/187 254/290/187 -f 216/216/187 212/214/187 227/224/187 -f 212/214/187 215/213/187 256/289/187 -f 212/214/187 247/263/187 248/239/187 -f 227/224/187 212/214/187 248/239/187 -f 215/213/187 234/234/187 256/289/187 -f 234/234/187 254/290/187 255/288/187 -f 234/234/187 255/288/187 256/289/187 -f 252/258/187 222/222/187 251/273/187 -f 222/222/187 225/221/187 251/273/187 -f 251/273/187 225/221/187 250/271/187 -f 225/221/187 227/224/187 250/271/187 -f 249/240/187 250/271/187 227/224/187 -f 269/286/187 237/257/187 220/230/187 -f 220/230/187 219/217/187 269/286/187 -f 219/217/187 258/247/187 268/284/187 -f 269/286/187 219/217/187 268/284/187 -f 258/247/187 259/244/187 267/282/187 -f 259/244/187 260/241/187 265/243/187 -f 260/241/187 261/249/187 263/266/187 -f 261/249/187 230/229/187 262/268/187 -f 263/266/187 261/249/187 262/268/187 -f 230/229/187 222/222/187 252/258/187 -f 230/229/187 252/258/187 262/268/187 -f 267/282/187 268/284/187 258/247/187 -f 266/262/187 267/282/187 259/244/187 -f 260/241/187 263/266/187 264/242/187 -f 265/243/187 266/262/187 259/244/187 -f 259/244/188 258/247/189 271/245/189 -f 258/247/189 219/217/177 218/219/177 -f 230/229/183 261/249/190 272/248/190 -f 261/249/190 260/241/191 273/250/191 -f 273/250/191 260/241/191 259/244/188 -f 274/267/192 275/260/192 231/228/192 -f 275/260/192 223/220/192 231/228/192 -f 231/228/192 272/248/192 274/267/192 -f 273/250/192 270/246/192 281/251/192 -f 270/246/192 271/245/192 279/281/192 -f 281/251/192 270/246/192 280/261/192 -f 271/245/192 218/219/192 278/283/192 -f 218/219/192 221/218/192 277/285/192 -f 221/218/192 276/287/192 277/285/192 -f 218/219/192 277/285/192 278/283/192 -f 283/265/192 274/267/192 272/248/192 -f 271/245/192 278/283/192 279/281/192 -f 283/265/192 272/248/192 273/250/192 -f 282/252/192 283/265/192 273/250/192 -f 279/281/192 280/261/192 270/246/192 -f 289/296/192 284/299/192 285/274/192 -f 286/253/192 276/287/192 221/218/192 -f 289/296/192 285/274/192 286/253/192 -f 233/231/192 287/295/192 288/254/192 -f 288/254/192 289/296/192 286/253/192 -f 221/218/192 233/231/192 288/254/192 -f 290/303/192 287/295/192 233/231/192 -f 235/233/192 228/235/192 214/226/192 -f 290/303/192 233/231/192 303/293/192 -f 233/231/192 235/233/192 303/293/192 -f 214/226/192 213/212/192 301/256/192 -f 213/212/192 217/215/192 226/225/192 -f 295/264/192 213/212/192 294/269/192 -f 213/212/192 295/264/192 296/255/192 -f 213/212/192 226/225/192 294/269/192 -f 303/293/192 235/233/192 302/291/192 -f 235/233/192 214/226/192 301/256/192 -f 302/291/192 235/233/192 301/256/192 -f 224/223/192 223/220/192 291/259/192 -f 223/220/192 275/260/192 291/259/192 -f 226/225/192 224/223/192 292/272/192 -f 224/223/192 291/259/192 292/272/192 -f 285/274/192 284/299/192 299/298/192 -f 298/276/192 285/274/192 299/298/192 -f 298/276/192 299/298/192 300/300/192 -f 297/278/192 298/276/192 300/300/192 -f 297/278/192 300/300/192 301/256/192 -f 296/255/192 297/278/192 301/256/192 -f 226/225/192 292/272/192 293/270/192 -f 226/225/192 293/270/192 294/269/192 -f 237/257/193 276/287/193 286/253/194 -f 252/258/195 251/273/196 291/259/196 -f 265/243/197 281/251/197 280/261/198 -f 247/263/199 246/280/200 296/255/200 -f 264/242/201 282/252/201 281/251/197 -f 264/242/201 263/266/202 283/265/202 -f 263/266/202 262/268/203 274/267/203 -f 262/268/203 252/258/195 275/260/195 -f 248/239/204 247/263/199 295/264/199 -f 249/240/205 248/239/204 294/269/204 -f 250/271/206 249/240/205 293/270/205 -f 292/272/206 291/259/196 251/273/196 -f 238/238/194 286/253/194 285/274/207 -f 239/275/207 285/274/207 298/276/208 -f 244/277/208 298/276/208 297/278/209 -f 246/280/200 245/279/209 297/278/209 -f 266/262/198 280/261/198 279/281/210 -f 267/282/210 279/281/210 278/283/211 -f 268/284/211 278/283/211 277/285/212 -f 269/286/212 277/285/212 276/287/193 -f 255/288/213 302/291/213 301/256/214 -f 254/290/176 303/293/176 302/291/213 -f 253/292/215 290/303/215 303/293/176 -f 290/303/215 253/292/215 236/294/216 -f 236/294/216 242/237/174 288/254/174 -f 287/295/216 290/303/215 236/294/216 -f 242/237/174 241/236/217 289/296/217 -f 284/299/218 289/296/217 241/236/217 -f 240/297/218 243/301/182 299/298/182 -f 284/299/218 241/236/217 240/297/218 -f 300/300/219 299/298/182 243/301/182 -f 257/302/219 256/289/214 301/256/214 -o Cube.002_Cube.004 -v 0.026408 0.393839 0.139055 -v -0.021028 0.393839 0.139055 -v -0.023362 0.393896 0.151552 -v 0.028355 0.393564 0.151552 -v 1.037985 0.393839 -0.120188 -v 1.037985 0.100576 -0.120188 -v 1.013396 0.099485 -0.121502 -v 1.013400 0.393839 -0.121501 -v 1.660505 0.047403 -0.079038 -v 1.660505 0.047403 0.080263 -v 1.037985 0.047403 0.080110 -v 1.037985 0.047403 -0.078885 -v 0.995425 0.393839 0.125895 -v 0.995410 0.096349 0.125900 -v 1.013396 0.099485 0.122727 -v 1.013400 0.393839 0.122725 -v 0.226861 0.392465 0.139055 -v 0.226861 0.179659 0.139055 -v 0.269772 0.176783 0.139055 -v 0.293139 0.184279 0.139055 -v 0.293139 0.392465 0.139055 -v 0.176861 0.156742 0.139055 -v 0.193139 0.179659 0.139055 -v 0.193139 0.392465 0.139055 -v 0.026381 0.098712 0.139055 -v 0.093139 0.124456 0.139055 -v 0.093139 0.392051 0.139055 -v 0.126861 0.392051 0.139055 -v 0.126861 0.137460 0.139055 -v 0.143139 0.143738 0.139055 -v 0.143139 0.392051 0.139055 -v 0.176861 0.392051 0.139055 -v 0.516984 0.167893 0.139055 -v 0.510000 0.163019 0.139055 -v 0.410000 0.163019 0.139055 -v 0.310000 0.163019 0.139055 -v 0.303016 0.167893 0.139055 -v 0.293139 0.179659 0.139055 -v 0.210000 0.163019 0.139055 -v 0.176861 0.100073 0.139055 -v 0.166984 0.088307 0.139055 -v 0.160000 0.083433 0.139055 -v 0.153016 0.088307 0.139055 -v 0.143139 0.100073 0.139055 -v 0.126861 0.100073 0.139055 -v 0.116984 0.088307 0.139055 -v 0.110000 0.083433 0.139055 -v 0.103016 0.088307 0.139055 -v 0.093139 0.100073 0.139055 -v 0.026379 0.080437 0.139055 -v 0.927107 0.080575 0.139055 -v 0.927107 0.393839 0.139055 -v 0.326861 0.392465 0.139055 -v 0.393139 0.392465 0.139055 -v 0.426861 0.392465 0.139055 -v 0.493139 0.392465 0.139055 -v 0.526861 0.392465 0.139055 -v 0.593139 0.392465 0.139055 -v 0.626861 0.392465 0.139055 -v 0.693139 0.392465 0.139055 -v 0.726861 0.392465 0.139055 -v 0.793139 0.392465 0.139055 -v 0.826861 0.392465 0.139055 -v 0.826861 0.179659 0.139055 -v 0.816984 0.167893 0.139055 -v 0.810000 0.163019 0.139055 -v 0.710000 0.163019 0.139055 -v 0.610000 0.163019 0.139055 -v 1.037985 0.100576 0.121413 -v 1.037985 0.393839 0.121413 -v 0.951692 0.393839 0.137743 -v 0.969667 0.393839 0.134574 -v 1.660505 0.393839 0.121413 -v 1.660505 0.393839 -0.120188 -v 0.995425 0.393839 -0.124670 -v 0.969667 0.393839 -0.133349 -v 0.951692 0.393839 -0.136518 -v 0.927107 0.393839 -0.137831 -v 0.026414 0.393839 -0.137831 -v -0.021028 0.393839 -0.137831 -v 0.995410 0.096349 -0.124675 -v 0.969682 0.086522 -0.133344 -v 1.660505 0.100430 -0.120188 -v 1.660505 0.100430 0.121413 -v -0.021028 0.034507 0.118480 -v -0.021028 0.053917 0.133542 -v -0.021028 0.080430 0.139055 -v -0.021028 0.080430 -0.137831 -v -0.021028 0.053917 -0.132318 -v -0.021028 0.034507 -0.117256 -v -0.021028 0.027403 -0.096681 -v -0.021028 0.027403 0.097905 -v 0.969682 0.086522 0.134568 -v 0.951696 0.082465 0.137741 -v 1.013395 0.045913 0.080994 -v 1.013395 0.045913 -0.079770 -v 0.995407 0.042316 -0.082385 -v 0.995407 0.042316 0.083609 -v 0.969685 0.032491 0.092276 -v 0.969685 0.032491 -0.091052 -v 0.951696 0.082465 -0.136517 -v 0.927107 0.080575 -0.137831 -v 0.927107 0.027403 0.097752 -v 0.927107 0.027403 -0.096528 -v 0.951697 0.028893 -0.094783 -v 0.951697 0.028893 0.096008 -v 1.660505 0.054507 -0.099613 -v 1.660505 0.073917 -0.114675 -v 1.660505 0.073917 0.115900 -v 1.660505 0.054507 0.100838 -v 1.013395 0.053090 0.101861 -v 0.995408 0.049555 0.104755 -v 1.013395 0.072699 0.117136 -v 0.995409 0.069332 0.120234 -v 1.037985 0.054527 0.100761 -v 1.037985 0.073989 0.115879 -v 1.013395 0.053090 -0.100636 -v 1.037985 0.054527 -0.099537 -v 1.013395 0.072699 -0.115911 -v 1.037985 0.073989 -0.114655 -v 0.995408 0.049555 -0.103530 -v 0.995409 0.069332 -0.119010 -v 0.951697 0.036070 -0.115650 -v 0.969685 0.039729 -0.112197 -v 0.951697 0.055679 -0.130925 -v 0.969684 0.059506 -0.127677 -v 0.927107 0.034527 -0.117179 -v 0.927107 0.053989 -0.132297 -v 0.951697 0.036070 0.116874 -v 0.927107 0.034527 0.118404 -v 0.951697 0.055679 0.132150 -v 0.927107 0.053989 0.133522 -v 0.969685 0.039729 0.113422 -v 0.969684 0.059506 0.128902 -v 0.028361 0.393564 -0.150327 -v -0.023362 0.393896 -0.150327 -v 0.026379 0.053920 0.133541 -v 0.028324 0.077206 0.151551 -v 0.028324 0.048295 0.145540 -v -0.023362 0.048291 -0.144316 -v -0.023362 0.027130 -0.127895 -v 0.026379 0.027403 0.097898 -v 0.026379 0.034508 0.118476 -v 0.393139 0.180122 -0.137831 -v 0.403016 0.168028 -0.137831 -v 0.410000 0.163019 -0.137831 -v 0.310637 0.162014 -0.137831 -v 0.326861 0.392465 -0.137831 -v 0.393139 0.392465 -0.137831 -v 0.326861 0.392465 0.157114 -v 0.326861 0.179659 0.157114 -v 0.326861 0.179659 0.139055 -v 0.426861 0.180122 -0.137831 -v 0.426861 0.180122 -0.155889 -v 0.426861 0.392465 -0.155889 -v 0.426861 0.392465 -0.137831 -v 0.193139 0.392465 0.157114 -v 0.226861 0.392465 0.157114 -v 0.226861 0.392465 -0.155889 -v 0.193139 0.392465 -0.155889 -v 0.193139 0.392465 -0.137831 -v 0.226861 0.392465 -0.137831 -v 0.126861 0.137460 -0.137831 -v 0.126861 0.392051 -0.137831 -v 0.093139 0.392051 -0.137831 -v 0.093139 0.124456 -0.137831 -v 0.026381 0.098712 -0.137831 -v 0.193139 0.180122 -0.137831 -v 0.176861 0.156742 -0.137831 -v 0.176861 0.392051 -0.137831 -v 0.143139 0.392051 -0.137831 -v 0.143139 0.143738 -0.137831 -v 0.193139 0.179659 0.157114 -v 0.193139 0.180122 -0.155889 -v 0.526861 0.392465 0.157114 -v 0.526861 0.179659 0.157114 -v 0.526861 0.179659 0.139055 -v 0.526861 0.180122 -0.137831 -v 0.526861 0.180122 -0.155889 -v 0.526861 0.392465 -0.155889 -v 0.526861 0.392465 -0.137831 -v 0.293139 0.392465 0.157114 -v 0.326861 0.392465 -0.155889 -v 0.293139 0.392465 -0.155889 -v 0.293139 0.392465 -0.137831 -v 0.226861 0.179659 0.157114 -v 0.226861 0.180122 -0.137831 -v 0.226861 0.180122 -0.155889 -v 0.293139 0.179659 0.157114 -v 0.293139 0.184279 -0.137831 -v 0.293139 0.180122 -0.155889 -v 0.293139 0.180122 -0.137831 -v 0.310622 0.162019 -0.155966 -v 0.318624 0.167861 -0.137969 -v 0.318609 0.167866 -0.156104 -v 0.303016 0.167893 0.157114 -v 0.310000 0.163019 0.157114 -v 0.316984 0.167893 0.157114 -v 0.393139 0.392465 -0.155889 -v 0.416984 0.168028 -0.155889 -v 0.410000 0.163019 -0.155889 -v 0.403016 0.168028 -0.155889 -v 0.393139 0.180122 -0.155889 -v 0.393139 0.392465 0.157114 -v 0.426861 0.392465 0.157114 -v 0.203016 0.167893 0.157114 -v 0.210000 0.163019 0.157114 -v 0.216984 0.167893 0.157114 -v 0.326861 0.180122 -0.155889 -v 0.393139 0.179659 0.157114 -v 0.393139 0.179659 0.139055 -v 0.626861 0.180122 -0.137831 -v 0.626861 0.180122 -0.155889 -v 0.626861 0.392465 -0.155889 -v 0.626861 0.392465 -0.137831 -v 0.626861 0.392465 0.157114 -v 0.626861 0.179659 0.157114 -v 0.626861 0.179659 0.139055 -v 0.726861 0.180122 -0.137831 -v 0.726861 0.180122 -0.155889 -v 0.726861 0.392465 -0.155889 -v 0.726861 0.392465 -0.137831 -v 0.493139 0.392465 0.157114 -v 0.493139 0.392465 -0.155889 -v 0.493139 0.392465 -0.137831 -v 0.426861 0.179659 0.157114 -v 0.426861 0.179659 0.139055 -v 0.216984 0.168028 -0.155889 -v 0.210000 0.163019 -0.155889 -v 0.203016 0.168028 -0.155889 -v 0.493139 0.179659 0.157114 -v 0.493139 0.179659 0.139055 -v 0.493139 0.180122 -0.155889 -v 0.493139 0.180122 -0.137831 -v 0.726861 0.392465 0.157114 -v 0.726861 0.179659 0.157114 -v 0.726861 0.179659 0.139055 -v 0.826861 0.180122 -0.137831 -v 0.826861 0.180122 -0.155889 -v 0.826861 0.392465 -0.155889 -v 0.826861 0.392465 -0.137831 -v 0.593139 0.392465 0.157114 -v 0.593139 0.392465 -0.155889 -v 0.593139 0.392465 -0.137831 -v 0.403016 0.167893 0.157114 -v 0.410000 0.163019 0.157114 -v 0.416984 0.167893 0.157114 -v 0.593139 0.179659 0.157114 -v 0.593139 0.179659 0.139055 -v 0.593139 0.180122 -0.155889 -v 0.593139 0.180122 -0.137831 -v 0.826861 0.392465 0.157114 -v 0.826861 0.179659 0.157114 -v 0.126861 0.100536 -0.137831 -v 0.126861 0.100536 -0.155889 -v 0.126861 0.392051 -0.155889 -v 0.693139 0.392465 0.157114 -v 0.693139 0.392465 -0.155889 -v 0.693139 0.392465 -0.137831 -v 0.503016 0.167893 0.157114 -v 0.510000 0.163019 0.157114 -v 0.516984 0.167893 0.157114 -v 0.693139 0.179659 0.157114 -v 0.693139 0.179659 0.139055 -v 0.693139 0.180122 -0.155889 -v 0.693139 0.180122 -0.137831 -v 0.176861 0.392051 0.157114 -v 0.176861 0.100073 0.157114 -v 0.093139 0.392051 -0.155889 -v 0.116984 0.088442 -0.155889 -v 0.110000 0.083433 -0.155889 -v 0.103016 0.088442 -0.155889 -v 0.093139 0.100536 -0.155889 -v 0.793139 0.392465 0.157114 -v 0.793139 0.392465 -0.155889 -v 0.793139 0.392465 -0.137831 -v 0.603016 0.167893 0.157114 -v 0.610000 0.163019 0.157114 -v 0.616984 0.167893 0.157114 -v 0.516984 0.168028 -0.155889 -v 0.510000 0.163019 -0.155889 -v 0.503016 0.168028 -0.155889 -v 0.793139 0.179659 0.157114 -v 0.793139 0.179659 0.139055 -v 0.793139 0.180122 -0.155889 -v 0.793139 0.180122 -0.137831 -v 0.803016 0.167893 0.157114 -v 0.810000 0.163019 0.157114 -v 0.816984 0.167893 0.157114 -v 0.093139 0.392051 0.157114 -v 0.126861 0.392051 0.157114 -v 0.703016 0.167893 0.157114 -v 0.710000 0.163019 0.157114 -v 0.716984 0.167893 0.157114 -v 0.616984 0.168028 -0.155889 -v 0.610000 0.163019 -0.155889 -v 0.603016 0.168028 -0.155889 -v 0.093139 0.100073 0.157114 -v 0.176861 0.100536 -0.137831 -v 0.176861 0.100536 -0.155889 -v 0.176861 0.392051 -0.155889 -v 0.093139 0.100536 -0.137831 -v 0.103016 0.088307 0.157114 -v 0.110000 0.083433 0.157114 -v 0.116984 0.088307 0.157114 -v 0.126861 0.100073 0.157114 -v 0.816984 0.168028 -0.155889 -v 0.810000 0.163019 -0.155889 -v 0.803016 0.168028 -0.155889 -v 0.143139 0.392051 0.157114 -v 0.143139 0.392051 -0.155889 -v 0.716984 0.168028 -0.155889 -v 0.710000 0.163019 -0.155889 -v 0.703016 0.168028 -0.155889 -v 0.143139 0.100073 0.157114 -v 0.143139 0.100536 -0.155889 -v 0.143139 0.100536 -0.137831 -v 0.203016 0.167893 0.139055 -v 0.216984 0.167893 0.139055 -v 0.316984 0.167893 0.139055 -v 0.403016 0.167893 0.139055 -v 0.416984 0.167893 0.139055 -v 0.503016 0.167893 0.139055 -v 0.603016 0.167893 0.139055 -v 0.616984 0.167893 0.139055 -v 0.703016 0.167893 0.139055 -v 0.716984 0.167893 0.139055 -v 0.803016 0.167893 0.139055 -v 0.160000 0.083433 0.157114 -v 0.166984 0.088307 0.157114 -v 0.153016 0.088307 0.157114 -v 0.203016 0.168028 -0.137831 -v 0.210000 0.163019 -0.137831 -v 0.216984 0.168028 -0.137831 -v 0.416984 0.168028 -0.137831 -v 0.503016 0.168028 -0.137831 -v 0.510000 0.163019 -0.137831 -v 0.516984 0.168028 -0.137831 -v 0.603016 0.168028 -0.137831 -v 0.610000 0.163019 -0.137831 -v 0.303016 0.168028 -0.137831 -v 0.616984 0.168028 -0.137831 -v 0.710000 0.163019 -0.137831 -v 0.810000 0.163019 -0.137831 -v 0.816984 0.168028 -0.137831 -v 0.026379 0.080437 -0.137831 -v 0.103016 0.088442 -0.137831 -v 0.110000 0.083433 -0.137831 -v 0.116984 0.088442 -0.137831 -v 0.153016 0.088442 -0.137831 -v 0.160000 0.083433 -0.137831 -v 0.166984 0.088442 -0.137831 -v 0.703016 0.168028 -0.137831 -v 0.716984 0.168028 -0.137831 -v 0.803016 0.168028 -0.137831 -v 0.160000 0.083433 -0.155889 -v 0.153016 0.088442 -0.155889 -v 0.166984 0.088442 -0.155889 -v 0.303126 0.168028 -0.156104 -v 0.326876 0.180117 -0.137754 -v 0.026379 0.027403 -0.096673 -v 0.028324 0.019385 0.106679 -v 0.028324 0.019385 -0.105454 -v -0.023362 0.077198 0.151551 -v 0.026379 0.034508 -0.117252 -v 0.028324 0.027131 -0.127891 -v 0.026379 0.053920 -0.132317 -v -0.023362 0.019385 0.106687 -v -0.023362 0.019385 -0.105463 -v 0.028325 0.097130 0.151551 -v -0.023362 0.077198 -0.150327 -v 0.028324 0.048295 -0.144315 -v -0.023362 0.048291 0.145541 -v 0.028324 0.077206 -0.150327 -v -0.023362 0.027130 0.129119 -v 0.028324 0.027131 0.129115 -v 0.028326 0.097130 -0.150327 +vn -0.0000 -0.3358 0.9419 +vn -0.0013 -0.3390 0.9408 +vn -0.0006 -0.8069 -0.5907 +vn -0.0007 -0.6930 -0.7209 +vn -0.0000 -0.7379 0.6749 +vn -0.0000 -0.8200 0.5723 +vn -0.0000 -0.8200 -0.5723 +vn -0.0000 -0.7379 -0.6749 +vn -0.0000 -0.8126 0.5828 +vn -0.0000 -0.7289 0.6846 +vn -0.0000 -0.7289 -0.6846 +vn -0.0000 -0.8126 -0.5828 +vn -1.0000 0.0078 -0.0000 +vn -1.0000 0.0074 -0.0000 +vn -0.0023 -0.7816 0.6238 +vn -0.0012 -0.7129 0.7013 +vn -0.0036 -0.7124 0.7018 +vn -0.0008 -0.3029 -0.9530 +vn -0.0007 -0.6931 -0.7208 +vn -0.0007 0.0001 -1.0000 +vn -0.0008 -0.2904 -0.9569 +vn -0.0145 0.2183 -0.9758 +vn 0.0392 0.1881 -0.9814 +vn 0.0145 0.2183 -0.9758 +vn -0.0836 0.0092 0.9965 +vn -0.1587 -0.0000 0.9873 +vn -0.0797 -0.0000 0.9968 +vn 0.0702 0.1427 -0.9873 +vn 0.0854 0.1178 -0.9894 +vn -0.9930 -0.1183 -0.0000 +vn -0.5348 -0.8437 -0.0454 +vn -0.8845 -0.4665 -0.0001 +vn -0.1439 -0.9896 -0.0000 +vn -0.1327 -0.0001 -0.9911 +vn -0.1329 -0.0001 -0.9911 +vn -0.1328 -0.0001 -0.9911 +vn 0.1587 -0.0000 0.9873 +vn 0.1545 0.0195 0.9878 +vn 0.1131 0.0626 -0.9916 +vn 0.1147 0.0586 -0.9917 +vn -0.0784 0.0434 0.9960 +vn -0.1545 0.0195 0.9878 +vn -0.5337 -0.8457 -0.0001 +vn 0.9930 -0.1182 -0.0000 +vn 0.5337 -0.8457 -0.0001 +vn -0.0854 0.1178 -0.9894 +vn -0.0702 0.1427 -0.9873 +vn 0.1297 0.0143 -0.9915 +vn 0.1328 -0.0001 -0.9911 +vn -0.1020 0.1407 0.9848 +vn -0.1372 0.0701 0.9881 +vn 0.1372 0.0701 0.9881 +vn 0.0467 0.2240 0.9735 +vn -0.0392 0.1881 -0.9814 +vn -0.1296 0.0143 -0.9915 +vn -0.0467 0.2240 0.9735 +vn -0.0494 0.1002 0.9937 +vn 0.1292 0.0162 -0.9915 +vn 0.1329 -0.0001 -0.9911 +vn -0.0029 1.0000 -0.0064 +vn -0.0067 1.0000 -0.0000 +vn 0.0797 -0.0000 0.9968 +vn 0.5338 -0.8456 0.0001 +vn 0.5794 -0.0572 -0.8130 +vn 0.3708 -0.3967 -0.8397 +vn 0.4890 -0.1952 -0.8502 +vn 0.0998 -0.6565 -0.7477 +vn -1.0000 0.0094 -0.0001 +vn -1.0000 0.0098 -0.0000 +vn -0.9996 -0.0270 0.0003 +vn 0.0003 -0.7850 0.6195 +vn -0.5337 -0.8456 -0.0001 +vn 0.1439 -0.9896 -0.0000 +vn -0.5338 -0.8456 -0.0001 +vn -0.0002 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.9111 0.4123 -0.0000 +vn 0.8852 0.4652 -0.0000 +vn 0.9239 0.3826 -0.0000 +vn 0.9698 0.2437 -0.0000 +vn 0.9805 0.1966 -0.0000 +vn 0.9980 0.0631 -0.0000 +vn 0.9984 0.0559 -0.0000 +vn -0.8852 -0.4653 -0.0000 +vn -0.9110 -0.4124 -0.0000 +vn -0.9239 -0.3828 -0.0000 +vn -0.9698 -0.2437 -0.0000 +vn -0.9980 -0.0630 -0.0000 +vn -0.9921 -0.1258 -0.0000 +vn -0.2976 0.9547 -0.0000 +vn -0.2824 0.9057 0.3162 +vn -0.2796 0.8979 0.3399 +vn -0.1824 0.7163 0.6735 +vn -0.0715 0.5275 0.8465 +vn -0.0679 0.5079 0.8588 +vn -0.0136 0.3198 0.9474 +vn -0.0056 0.1592 0.9872 +vn -0.0062 0.1597 0.9872 +vn -0.1852 0.7225 0.6661 +vn -0.8852 -0.4652 -0.0000 +vn -0.9805 -0.1964 -0.0000 +vn -0.9920 -0.1259 -0.0000 +vn -0.0112 0.3207 0.9471 vt 0.164335 0.434657 vt 0.179187 0.434574 vt 0.178601 0.434657 @@ -1810,10 +607,8 @@ vt 0.475427 0.434657 vt 0.482821 0.434657 vt 0.670036 0.330470 vt 0.482821 0.330470 -vt 0.670036 0.330470 vt 0.470021 0.434657 vt 0.475425 0.346133 -vt 0.475427 0.434657 vt 0.238885 0.370245 vt 0.251790 0.369380 vt 0.258817 0.371634 @@ -1822,69 +617,37 @@ vt 0.213706 0.434119 vt 0.263888 0.365240 vt 0.223848 0.346310 vt 0.220877 0.342772 -vt 0.482821 0.346461 -vt 0.482821 0.434657 vt 0.462275 0.434657 vt 0.470016 0.345190 vt 0.462279 0.342235 vt 0.670036 0.434657 -vt 0.670036 0.434657 vt 0.670036 0.346418 vt 0.164335 0.324456 -vt 0.164335 0.324456 vt 0.164335 0.340403 -vt 0.462275 0.434657 -vt 0.470016 0.345190 vt 0.449475 0.434657 vt 0.456870 0.341015 vt 0.456869 0.434657 vt 0.475425 0.330022 -vt 0.482821 0.330470 vt 0.470016 0.328940 vt 0.462280 0.325986 -vt 0.462280 0.325986 -vt 0.475425 0.346133 -vt 0.470021 0.434657 -vt 0.470016 0.328940 -vt 0.456870 0.341015 -vt 0.449475 0.434657 -vt 0.456869 0.434657 vt 0.449475 0.324456 vt 0.456870 0.324904 -vt 0.456870 0.324904 -vt 0.462279 0.342235 vt 0.475425 0.332181 vt 0.470016 0.331117 vt 0.470016 0.337065 vt 0.475425 0.338078 vt 0.482821 0.332613 vt 0.482821 0.338466 -vt 0.475425 0.330022 -vt 0.482821 0.332613 -vt 0.475425 0.338078 -vt 0.482821 0.338466 -vt 0.475425 0.332181 -vt 0.470016 0.337065 vt 0.462280 0.328162 vt 0.456870 0.332959 vt 0.462280 0.334110 -vt 0.449475 0.324456 vt 0.456870 0.327062 vt 0.449475 0.332451 vt 0.449475 0.340446 -vt 0.456870 0.327062 vt 0.449475 0.326598 -vt 0.449475 0.332451 -vt 0.456870 0.332959 -vt 0.449475 0.340446 vt 0.462280 0.328163 -vt 0.462280 0.334110 vt 0.670036 0.332607 vt 0.670036 0.338444 -vt 0.670036 0.346418 -vt 0.470016 0.331117 -vt 0.670036 0.338444 -vt 0.164335 0.434657 vt 0.179188 0.434574 vt 0.163633 0.434674 vt 0.178592 0.332430 @@ -1901,1895 +664,2364 @@ vt 0.291861 0.366747 vt 0.264079 0.364938 vt 0.268958 0.434243 vt 0.268958 0.370245 -vt 0.268958 0.434243 vt 0.299032 0.370384 vt 0.299032 0.434243 -vt 0.299032 0.370384 vt 0.228743 0.434243 vt 0.238885 0.434243 -vt 0.228743 0.434243 -vt 0.228743 0.434243 -vt 0.238885 0.434243 -vt 0.238885 0.434243 -vt 0.213706 0.434119 vt 0.178603 0.434657 -vt 0.228743 0.434243 -vt 0.228743 0.370245 vt 0.228743 0.370245 vt 0.228743 0.370384 vt 0.329106 0.434243 vt 0.329106 0.370245 -vt 0.329106 0.434243 -vt 0.329106 0.370384 -vt 0.329106 0.434243 vt 0.329106 0.370384 vt 0.258817 0.434243 -vt 0.258817 0.434243 -vt 0.258817 0.434243 -vt 0.268958 0.434243 -vt 0.268958 0.434243 -vt 0.238885 0.434243 -vt 0.238885 0.370384 vt 0.238885 0.370384 vt 0.258817 0.370384 -vt 0.258817 0.371634 vt 0.264075 0.364940 vt 0.266481 0.366696 vt 0.265988 0.366706 -vt 0.268958 0.370245 vt 0.258817 0.370245 -vt 0.291861 0.366747 -vt 0.288891 0.370384 vt 0.288891 0.434243 -vt 0.299032 0.434243 -vt 0.288891 0.434243 -vt 0.288891 0.434243 -vt 0.299032 0.434243 vt 0.235914 0.366706 -vt 0.238885 0.370245 vt 0.268958 0.370384 vt 0.288891 0.370245 -vt 0.288891 0.370245 -vt 0.288891 0.434243 -vt 0.359180 0.370384 -vt 0.359180 0.434243 vt 0.359180 0.370384 vt 0.359180 0.434243 vt 0.359180 0.370245 -vt 0.359180 0.434243 vt 0.389254 0.370384 vt 0.389254 0.434243 -vt 0.389254 0.370384 vt 0.318965 0.434243 -vt 0.318965 0.434243 -vt 0.318965 0.434243 -vt 0.329106 0.434243 -vt 0.299032 0.434243 vt 0.299032 0.370245 vt 0.231714 0.366747 vt 0.318965 0.370245 -vt 0.318965 0.370245 vt 0.318965 0.370384 -vt 0.318965 0.434243 -vt 0.389254 0.434243 vt 0.389254 0.370245 -vt 0.389254 0.434243 vt 0.419327 0.370384 vt 0.419327 0.434243 -vt 0.419327 0.370384 vt 0.349038 0.434243 -vt 0.349038 0.434243 -vt 0.349038 0.434243 -vt 0.359180 0.434243 vt 0.296062 0.366706 -vt 0.299032 0.370245 -vt 0.349038 0.370245 vt 0.349038 0.370245 vt 0.349038 0.370384 -vt 0.349038 0.434243 -vt 0.419327 0.434243 vt 0.419327 0.370245 -vt 0.419327 0.434243 -vt 0.208811 0.434119 vt 0.208811 0.357554 vt 0.208811 0.346449 vt 0.379112 0.434243 -vt 0.379112 0.434243 -vt 0.379112 0.434243 -vt 0.389254 0.434243 vt 0.326136 0.366706 -vt 0.329106 0.370245 -vt 0.379112 0.370245 vt 0.379112 0.370245 vt 0.379112 0.370384 -vt 0.379112 0.434243 -vt 0.223848 0.346310 vt 0.223848 0.363353 vt 0.201640 0.342812 vt 0.198670 0.346449 vt 0.409186 0.434243 -vt 0.409186 0.434243 -vt 0.409186 0.434243 -vt 0.419327 0.434243 vt 0.356209 0.366706 -vt 0.359180 0.370245 vt 0.321935 0.366747 vt 0.409186 0.370245 -vt 0.409186 0.370245 vt 0.409186 0.370384 -vt 0.409186 0.434243 vt 0.416357 0.366706 -vt 0.419327 0.370245 vt 0.198670 0.434119 -vt 0.198670 0.434119 -vt 0.198670 0.434119 -vt 0.208811 0.434119 vt 0.386283 0.366706 -vt 0.389254 0.370245 vt 0.352009 0.366747 vt 0.198670 0.353643 vt 0.198670 0.346310 vt 0.223848 0.434119 -vt 0.223848 0.434119 -vt 0.223848 0.363353 -vt 0.198670 0.346449 -vt 0.198670 0.353643 vt 0.205841 0.342772 vt 0.208811 0.346310 vt 0.412156 0.366747 -vt 0.213706 0.434119 -vt 0.223848 0.434119 -vt 0.213706 0.434119 -vt 0.208811 0.357554 -vt 0.208811 0.434119 vt 0.382083 0.366747 vt 0.213706 0.359442 vt 0.213706 0.346449 -vt 0.213706 0.346449 -vt 0.213706 0.359442 vt 0.233814 0.365240 vt 0.231714 0.366706 -vt 0.235914 0.366706 vt 0.291861 0.366706 vt 0.321935 0.366706 vt 0.382083 0.366706 vt 0.412156 0.366706 -vt 0.198670 0.346310 -vt 0.201640 0.342772 vt 0.201640 0.342772 vt 0.203740 0.341306 -vt 0.412156 0.366706 vt 0.414257 0.365240 -vt 0.258817 0.370245 vt 0.261787 0.366706 -vt 0.261787 0.366706 -vt 0.263888 0.365240 -vt 0.291861 0.366706 vt 0.293962 0.365240 -vt 0.321935 0.366706 vt 0.324035 0.365240 vt 0.352009 0.366706 -vt 0.352009 0.366706 vt 0.354109 0.365240 -vt 0.382083 0.366706 vt 0.384183 0.365240 vt 0.218777 0.341306 -vt 0.220877 0.342772 -vt 0.218777 0.341306 -vt 0.231714 0.366706 -vt 0.233814 0.365240 -vt 0.265988 0.366706 -vt 0.293962 0.365240 -vt 0.296062 0.366706 -vt 0.354109 0.365240 -vt 0.356209 0.366706 -vt 0.384183 0.365240 -vt 0.386283 0.366706 -vt 0.414257 0.365240 -vt 0.416357 0.366706 vt 0.213706 0.346310 vt 0.216677 0.342772 -vt 0.213706 0.346310 -vt 0.216677 0.342772 -vt 0.324035 0.365240 -vt 0.326136 0.366706 -vt 0.203740 0.341306 -vt 0.205841 0.342772 -vt 0.228743 0.370384 -vt 0.231714 0.366747 -vt 0.233814 0.365240 -vt 0.258817 0.434243 -vt 0.318965 0.370384 -vt 0.321935 0.366747 -vt 0.349038 0.370384 -vt 0.352009 0.366747 -vt 0.379112 0.370384 -vt 0.382083 0.366747 vt 0.386283 0.366747 -vt 0.409186 0.370384 -vt 0.412156 0.366747 -vt 0.293962 0.365240 -vt 0.293962 0.365240 vt 0.235914 0.366747 -vt 0.235914 0.366747 -vt 0.233814 0.365240 -vt 0.296062 0.366747 vt 0.296062 0.366747 vt 0.326136 0.366747 -vt 0.326136 0.366747 -vt 0.324035 0.365240 -vt 0.386283 0.366747 -vt 0.384183 0.365240 -vt 0.208811 0.346449 vt 0.205841 0.342812 -vt 0.205841 0.342812 -vt 0.203740 0.341306 -vt 0.218777 0.341306 vt 0.216677 0.342812 -vt 0.218777 0.341306 -vt 0.216677 0.342812 -vt 0.354109 0.365240 -vt 0.354109 0.365240 vt 0.356209 0.366747 -vt 0.356209 0.366747 -vt 0.384183 0.365240 -vt 0.414257 0.365240 -vt 0.414257 0.365240 -vt 0.416357 0.366747 vt 0.416357 0.366747 vt 0.223848 0.346449 vt 0.220877 0.342812 -vt 0.223848 0.346449 -vt 0.220877 0.342812 -vt 0.324035 0.365240 vt 0.261787 0.366747 vt 0.261821 0.366747 -vt 0.203740 0.341306 -vt 0.201640 0.342812 vt 0.266477 0.366698 vt 0.268963 0.370382 vt 0.179177 0.322044 -vt 0.178592 0.324456 -vt 0.164335 0.340403 -vt 0.163633 0.434674 -vt 0.178592 0.326592 vt 0.179177 0.324374 -vt 0.178592 0.340405 -vt 0.449475 0.326598 -vt 0.178592 0.332430 -vt 0.163633 0.322044 vt 0.163633 0.322044 vt 0.178593 0.345901 vt 0.179178 0.345425 vt 0.163633 0.339431 -vt 0.179177 0.330739 -vt 0.164335 0.332429 -vt 0.163633 0.339431 vt 0.163633 0.330737 -vt 0.179177 0.339433 -vt 0.163633 0.330737 -vt 0.179177 0.324374 -vt 0.163633 0.324373 -vt 0.179178 0.345425 -vt 0.178593 0.345901 -vt 0.179177 0.322044 -vt 0.164335 0.326592 -vt 0.208811 0.346310 -vt 0.670036 0.332607 -vt 0.198670 0.434119 -vt 0.258817 0.370384 -vt 0.223848 0.434119 -vn 0.0029 1.0000 0.0001 -vn 0.0011 0.9998 0.0176 -vn 0.0000 1.0000 0.0078 -vn 0.0288 -0.1011 -0.9945 -vn 0.1137 0.0000 -0.9935 -vn 0.0267 0.0000 -0.9996 -vn -0.0000 -0.9862 0.1655 -vn 0.0329 -0.9859 -0.1639 -vn -0.0000 -0.9862 -0.1655 -vn 0.2472 0.0000 0.9690 -vn 0.1238 -0.0981 0.9874 -vn 0.1137 0.0000 0.9935 -vn -0.0000 -0.0000 1.0000 -vn 0.0288 -0.1011 0.9945 -vn 0.0267 -0.0000 0.9996 -vn 0.0000 1.0000 0.0000 -vn 0.2472 -0.0000 -0.9690 -vn 0.2701 -0.0937 -0.9583 -vn 0.2739 -0.1017 -0.9564 -vn 0.0000 0.0000 -1.0000 -vn -0.0000 -0.1023 0.9947 -vn -0.9897 0.1430 0.0124 -vn -0.9897 0.1430 -0.0124 -vn -0.9954 0.0088 0.0959 -vn 0.2701 -0.0938 0.9583 -vn 0.1289 -0.1059 0.9860 -vn 0.1418 -0.9771 0.1589 -vn 0.0329 -0.9859 0.1639 -vn 0.3083 -0.9396 -0.1488 -vn 0.3106 -0.9374 0.1576 -vn 0.3106 -0.9374 -0.1576 -vn 0.1238 -0.0981 -0.9875 -vn 0.3083 -0.9396 0.1487 -vn 0.1289 -0.1059 -0.9860 -vn 0.0356 -0.9851 0.1682 -vn 0.1486 -0.9746 -0.1676 -vn 0.1486 -0.9746 0.1676 -vn 0.2739 -0.1017 0.9564 -vn 1.0000 0.0000 0.0000 -vn 0.1628 -0.8041 0.5718 -vn 0.3575 -0.7630 0.5386 -vn 0.3300 -0.3908 0.8593 -vn 0.1501 -0.4107 0.8993 -vn 0.0370 -0.8129 0.5813 -vn 0.0343 -0.4175 0.9080 -vn 0.1418 -0.9771 -0.1589 -vn 0.0370 -0.8129 -0.5813 -vn 0.1501 -0.4107 -0.8993 -vn 0.0343 -0.4175 -0.9080 -vn 0.1628 -0.8041 -0.5718 -vn 0.3300 -0.3908 -0.8593 -vn 0.3552 -0.7617 -0.5419 -vn 0.1620 -0.4190 -0.8934 -vn 0.3323 -0.3993 -0.8545 -vn 0.0356 -0.9851 -0.1682 -vn 0.1749 -0.8002 -0.5737 -vn 0.0397 -0.4217 -0.9059 -vn 0.0307 -0.1047 -0.9940 -vn 0.1749 -0.8002 0.5737 -vn 0.0432 -0.8117 0.5825 -vn 0.0397 -0.4217 0.9059 -vn 0.1620 -0.4190 0.8934 -vn 0.0307 -0.1047 0.9940 -vn 0.3552 -0.7617 0.5419 -vn 0.3323 -0.3992 0.8545 -vn -0.0001 -0.8129 -0.5824 -vn -0.0001 -0.4191 -0.9079 -vn -0.0000 -0.1023 -0.9947 -vn 0.3574 -0.7630 -0.5386 -vn -0.0001 -0.4191 0.9079 -vn 0.0029 1.0000 -0.0001 -vn 0.0011 0.9998 -0.0176 -vn 0.0064 1.0000 0.0034 -vn 0.9894 0.0607 -0.1319 -vn 0.9886 0.0167 -0.1496 -vn 0.9894 0.0610 -0.1318 -vn -0.9950 0.0416 0.0904 -vn -0.9827 0.1451 0.1150 -vn -0.9933 0.0989 0.0592 -vn 0.0001 -0.8129 0.5824 -vn 0.0001 -0.4192 0.9079 -vn 0.9397 -0.3421 0.0000 -vn 0.9419 -0.3358 0.0000 -vn -0.9397 -0.3421 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.9419 -0.3358 0.0000 -vn -0.9409 -0.3386 -0.0014 -vn 0.5907 -0.8069 -0.0007 -vn 0.7209 -0.6930 -0.0008 -vn -0.6749 -0.7379 0.0000 -vn -0.5723 -0.8200 0.0000 -vn 0.5723 -0.8200 0.0000 -vn 0.6749 -0.7379 0.0000 -vn -0.5828 -0.8126 0.0000 -vn -0.6846 -0.7289 0.0000 -vn 0.6846 -0.7289 0.0000 -vn 0.5828 -0.8126 0.0000 -vn 0.0000 0.0068 -1.0000 -vn 0.0000 0.0064 -1.0000 -vn -0.6236 -0.7818 -0.0025 -vn -0.7013 -0.7128 -0.0015 -vn -0.7018 -0.7124 -0.0042 -vn 0.9535 -0.3014 -0.0009 -vn 0.7208 -0.6931 -0.0008 -vn 1.0000 0.0001 -0.0008 -vn 0.9568 -0.2906 -0.0009 -vn 0.9761 0.2164 -0.0186 -vn 0.9808 0.1900 0.0438 -vn 0.9761 0.2164 0.0186 -vn -0.9954 0.0088 -0.0959 -vn -0.9830 0.0000 -0.1836 -vn -0.9957 0.0000 -0.0923 -vn 0.9867 0.1398 0.0835 -vn 0.9879 0.1215 0.0964 -vn 0.0432 -0.8117 -0.5825 -vn 0.0001 -0.4192 -0.9079 -vn 0.0000 -0.9862 -0.1654 -vn 0.9881 -0.0001 -0.1537 -vn 0.9881 -0.0001 -0.1539 -vn -0.9830 -0.0000 0.1836 -vn -0.9837 0.0200 0.1786 -vn 0.9894 0.0607 0.1319 -vn 0.9894 0.0610 0.1318 -vn -0.9950 0.0416 -0.0904 -vn -0.9837 0.0200 -0.1786 -vn 0.0001 -0.8129 -0.5824 -vn 0.0001 -0.4191 -0.9079 -vn 0.0000 -0.4191 -0.9079 -vn 0.0000 -0.1023 -0.9948 -vn 0.0000 -0.4191 0.9079 -vn 0.0000 -0.1023 0.9948 -vn 0.0001 -0.4191 0.9079 -vn 0.9879 0.1215 -0.0964 -vn 0.9867 0.1398 -0.0835 -vn 0.9885 0.0138 0.1503 -vn 0.9881 -0.0001 0.1538 -vn -0.9827 0.1451 -0.1150 -vn -0.9848 0.0728 -0.1574 -vn -0.9848 0.0728 0.1574 -vn -0.9727 0.2262 0.0520 -vn 0.9808 0.1900 -0.0438 -vn 0.9885 0.0138 -0.1503 -vn -0.9727 0.2262 -0.0520 -vn -0.9933 0.0989 -0.0592 -vn 0.9886 0.0167 0.1496 -vn 0.9881 -0.0001 0.1540 -vn 0.0064 1.0000 -0.0034 -vn 0.0000 1.0000 -0.0078 -vn -0.9957 0.0000 0.0923 -vn -0.0001 -0.8129 0.5824 -vn 0.7692 -0.0542 0.6367 -vn 0.8164 -0.4249 0.3911 -vn 0.8145 -0.1795 0.5517 -vn 0.7502 -0.6504 0.1190 -vn 0.0001 0.0081 -1.0000 -vn -0.0000 0.0084 -1.0000 -vn -0.0002 -0.0233 -0.9997 -vn -0.6195 -0.7850 0.0003 -vn 0.0000 -0.9862 0.1654 +vt 0.515296 0.663237 +vt 0.515296 0.682674 +vt 0.540019 0.682674 +vt 0.540021 0.682674 +vt 0.671399 0.682674 +vt 0.671399 0.682121 +vt 0.671399 0.663237 +vt 0.539833 0.663237 +vt 0.539833 0.682125 +vt 0.697530 0.701590 +vt 0.568704 0.712834 +vt 0.552946 0.701590 +vt 0.697530 0.692045 +vt 0.543187 0.692045 +vt 0.697530 0.682139 +vt 0.697530 0.640529 +vt 0.539833 0.682139 +vt 0.539833 0.640529 +vt 0.568704 0.712699 +vt 0.697530 0.701471 +vt 0.552946 0.701476 +vt 0.697530 0.691975 +vt 0.697530 0.682121 +vt 0.697530 0.712834 +vt 0.543187 0.691982 +vt 0.697530 0.712699 s 1 -f 305/304/220 307/305/221 304/306/222 -f 309/307/223 311/308/224 308/309/225 -f 313/310/226 315/311/227 312/312/228 -f 316/313/229 318/314/230 319/315/231 -f 321/316/232 322/317/232 323/318/232 -f 304/306/232 331/319/232 334/320/232 -f 339/321/232 343/322/232 344/323/232 -f 319/315/231 372/324/233 373/325/234 -f 308/309/235 311/308/235 373/325/235 -f 379/326/236 384/327/237 385/328/238 -f 377/329/239 309/307/223 308/309/225 -f 376/330/232 372/324/233 387/331/240 -f 394/332/241 395/333/242 391/334/243 -f 375/335/229 317/336/244 316/313/229 -f 355/337/234 397/338/245 374/339/231 -f 398/340/246 315/311/227 314/341/247 -f 400/342/248 402/343/249 403/344/250 -f 310/345/251 378/346/236 311/308/224 -f 400/342/248 398/340/246 401/347/252 -f 404/348/253 381/349/225 380/350/224 -f 406/351/254 408/352/255 409/353/256 -f 385/328/238 380/350/224 379/326/236 -f 408/352/255 402/343/249 409/353/256 -f 374/339/231 396/354/257 375/335/229 -f 313/310/258 312/312/258 387/331/258 -f 401/347/252 414/355/259 415/356/260 -f 414/355/259 417/357/261 415/356/260 -f 416/358/262 317/336/244 417/357/261 -f 398/340/246 418/359/263 414/355/259 -f 418/359/263 416/358/262 414/355/259 -f 419/360/264 318/314/230 416/358/262 -f 399/361/265 421/362/266 315/311/227 -f 421/362/266 422/363/267 423/364/268 -f 423/364/268 310/345/251 309/307/223 -f 400/342/248 420/365/269 399/361/265 -f 420/365/269 425/366/270 422/363/267 -f 422/363/267 384/327/237 310/345/251 -f 408/352/255 427/367/271 403/344/250 -f 427/367/271 428/368/272 429/369/273 -f 429/369/273 404/348/253 385/328/238 -f 407/370/274 426/371/275 408/352/255 -f 426/371/275 431/372/276 428/368/272 -f 428/368/272 405/373/277 404/348/253 -f 406/351/254 432/374/278 433/375/279 -f 432/374/278 435/376/280 433/375/279 -f 434/377/281 354/378/282 435/376/280 -f 409/353/256 436/379/283 432/374/278 -f 436/379/283 434/377/281 432/374/278 -f 437/380/284 397/338/245 434/377/281 -f 312/312/228 421/362/266 410/381/285 -f 421/362/266 411/382/286 410/381/285 -f 423/364/268 386/383/287 411/382/286 -f 403/344/250 424/384/288 400/342/248 -f 424/384/288 429/369/273 425/366/270 -f 425/366/270 385/328/238 384/327/237 -f 313/310/226 418/359/263 314/341/247 -f 418/359/263 412/385/289 419/360/264 -f 419/360/264 387/331/240 372/324/233 -f 402/343/249 415/356/260 436/379/283 -f 415/356/260 437/380/284 436/379/283 -f 417/357/261 396/354/257 437/380/284 -f 383/386/290 438/387/291 439/388/292 -f 440/389/293 441/390/294 442/391/295 -f 392/392/296 444/393/297 393/394/298 -f 445/395/226 433/375/279 446/396/299 -f 433/375/279 440/389/300 446/396/299 -f 435/376/280 353/397/240 440/389/300 -f 447/398/239 448/399/239 450/400/239 -f 453/401/258 455/402/301 356/403/258 -f 457/404/302 459/405/258 456/406/302 -f 460/407/235 320/408/235 327/409/235 -f 463/410/235 465/411/235 462/412/235 -f 474/413/239 382/414/239 464/415/239 -f 476/416/303 327/409/304 326/417/303 -f 477/418/305 464/415/304 463/410/304 -f 478/419/258 480/420/301 360/421/258 -f 482/422/302 484/423/258 481/424/302 -f 485/425/235 356/403/235 324/426/235 -f 487/427/235 451/428/235 486/429/235 -f 461/430/258 321/316/301 320/408/258 -f 491/431/302 465/411/258 490/432/302 -f 485/425/304 324/426/304 323/318/304 -f 494/433/306 493/434/304 487/427/304 -f 496/435/307 497/436/308 450/400/307 -f 501/437/232 454/438/232 492/439/232 -f 505/440/239 506/441/239 457/404/239 -f 507/442/235 358/443/235 357/444/235 -f 502/445/235 459/405/235 458/446/235 -f 511/447/232 489/448/232 476/416/232 -f 512/449/258 486/429/258 451/428/258 -f 507/442/304 514/450/303 513/451/303 -f 506/441/305 452/452/304 502/445/304 -f 516/453/302 518/454/258 515/455/302 -f 519/456/258 521/457/301 362/458/258 -f 523/459/302 525/460/258 522/461/302 -f 526/462/235 360/421/235 359/463/235 -f 527/464/235 484/423/235 483/465/235 -f 508/466/258 530/467/301 358/443/258 -f 533/468/239 477/418/239 491/431/239 -f 526/462/304 535/469/303 534/470/303 -f 536/471/305 528/472/304 527/464/304 -f 538/473/258 540/474/301 364/475/258 -f 542/476/302 544/477/258 541/478/302 -f 545/479/235 362/458/235 361/480/235 -f 546/481/235 518/454/235 517/482/235 -f 550/483/232 529/484/232 513/451/232 -f 545/479/304 552/485/303 551/486/303 -f 553/487/305 547/488/304 546/481/304 -f 555/489/258 367/490/301 366/491/258 -f 559/492/258 466/493/258 558/494/302 -f 560/495/235 364/475/235 363/496/235 -f 561/497/235 525/460/235 524/498/235 -f 565/499/232 479/500/232 534/470/232 -f 560/495/304 567/501/303 566/502/303 -f 568/503/305 562/504/304 561/497/304 -f 571/505/301 343/322/301 325/506/258 -f 575/507/239 576/508/239 558/494/239 -f 577/509/235 366/491/235 365/510/235 -f 578/511/235 544/477/235 543/512/235 -f 582/513/232 520/514/232 551/486/232 -f 585/515/239 536/471/239 482/422/239 -f 577/509/304 587/516/303 586/517/303 -f 588/518/305 579/519/304 578/511/304 -f 592/520/232 556/521/232 586/517/232 -f 593/522/235 331/319/235 330/523/235 -f 572/524/235 467/525/235 559/492/235 -f 597/526/232 539/527/232 566/502/232 -f 600/528/239 553/487/239 516/453/239 -f 593/522/304 329/529/304 601/530/303 -f 604/531/258 473/532/258 472/533/258 -f 576/508/305 605/534/305 469/535/304 -f 608/536/232 609/537/232 601/530/232 -f 612/538/239 588/518/239 542/476/239 -f 613/539/235 335/540/235 334/320/235 -f 614/541/235 473/532/235 604/531/235 -f 609/537/301 332/542/258 594/543/258 -f 617/544/239 568/503/239 523/459/239 -f 613/539/304 334/320/304 333/545/304 -f 619/546/305 620/547/305 475/548/304 -f 342/549/232 621/550/232 325/506/232 -f 621/550/232 326/417/232 325/506/232 -f 321/316/232 622/551/232 322/317/232 -f 622/551/232 342/549/232 322/317/232 -f 455/402/232 624/552/232 514/450/232 -f 530/467/232 626/553/232 535/469/232 -f 480/420/232 552/485/232 361/480/232 -f 521/457/232 629/554/232 567/501/232 -f 540/474/232 631/555/232 587/516/232 -f 352/556/303 606/557/309 601/530/303 -f 351/558/309 607/559/310 606/557/309 -f 587/516/303 590/560/309 586/517/303 -f 631/555/309 591/561/310 590/560/309 -f 341/562/303 499/563/309 492/439/303 -f 340/564/309 500/565/310 499/563/309 -f 514/450/303 548/566/309 513/451/303 -f 624/552/309 549/567/310 548/566/309 -f 535/469/303 563/568/309 534/470/303 -f 626/553/309 564/569/310 563/568/309 -f 552/485/303 580/570/309 551/486/303 -f 627/571/309 581/572/310 580/570/309 -f 567/501/303 595/573/309 566/502/303 -f 629/554/309 596/574/310 595/573/309 -f 345/575/311 633/576/312 632/577/311 -f 344/323/312 571/505/301 633/576/312 -f 326/417/303 509/578/309 476/416/303 -f 621/550/309 510/579/310 509/578/309 -f 339/321/311 501/437/312 500/565/311 -f 623/580/312 454/438/301 501/437/312 -f 338/581/311 550/483/312 549/567/311 -f 625/582/312 529/484/301 550/483/312 -f 371/583/311 582/513/312 581/572/311 -f 628/584/312 520/514/301 582/513/312 -f 370/585/311 597/526/312 596/574/311 -f 630/586/312 539/527/301 597/526/312 -f 369/587/311 592/520/312 591/561/311 -f 368/588/312 556/521/301 592/520/312 -f 347/589/303 634/590/309 618/591/303 -f 346/592/309 632/577/310 634/590/309 -f 342/549/311 511/447/312 510/579/311 -f 622/551/312 489/448/301 511/447/312 -f 337/593/311 565/499/312 564/569/311 -f 336/594/312 479/500/301 565/499/312 -f 350/595/311 608/536/312 607/559/311 -f 349/596/312 609/537/301 608/536/312 -f 633/576/232 571/505/232 618/591/232 -f 471/597/239 635/598/239 472/533/239 -f 635/598/239 636/599/239 472/533/239 -f 465/411/239 488/600/239 493/434/239 -f 456/406/239 537/601/239 639/602/239 -f 481/424/239 554/603/239 642/604/239 -f 544/477/239 579/519/239 381/349/225 -f 515/455/239 569/605/239 656/606/239 -f 657/607/239 589/608/239 658/609/239 -f 449/610/313 505/440/314 504/611/313 -f 448/399/314 506/441/305 505/440/314 -f 490/432/302 531/612/315 491/431/302 -f 637/613/315 532/614/316 531/612/315 -f 456/406/302 503/615/315 457/404/302 -f 638/616/315 504/611/316 503/615/315 -f 481/424/302 583/617/315 482/422/302 -f 641/618/315 584/619/316 583/617/315 -f 522/461/302 615/620/315 523/459/302 -f 657/607/315 616/621/316 615/620/315 -f 557/622/302 573/623/315 558/494/302 -f 652/624/315 574/625/316 573/623/315 -f 654/626/313 660/627/314 659/628/313 -f 653/629/314 619/546/305 660/627/314 -f 643/630/313 600/528/314 599/631/313 -f 642/604/314 553/487/305 600/528/314 -f 515/455/302 598/632/315 516/453/302 -f 645/633/315 599/631/316 598/632/315 -f 646/634/313 617/544/314 616/621/313 -f 656/606/314 568/503/305 617/544/314 -f 647/635/313 612/538/314 611/636/313 -f 658/609/314 588/518/305 612/538/314 -f 541/478/302 610/637/315 542/476/302 -f 648/638/315 611/636/316 610/637/315 -f 602/639/302 661/640/315 603/641/302 -f 655/642/315 659/628/316 661/640/315 -f 486/429/239 512/449/317 494/433/318 -f 640/643/313 585/515/314 584/619/313 -f 639/602/314 536/471/305 585/515/314 -f 636/599/313 533/468/314 532/614/313 -f 635/598/314 477/418/305 533/468/314 -f 496/435/319 644/644/320 662/645/321 -f 644/644/320 494/433/306 662/645/321 -f 651/646/313 575/507/314 574/625/313 -f 650/647/314 576/508/305 575/507/314 -f 660/627/239 619/546/239 603/641/239 -f 512/449/322 497/436/308 498/648/323 -f 512/449/322 451/428/324 663/649/325 -f 445/395/326 666/650/327 664/651/328 -f 390/652/329 306/653/330 305/304/331 -f 668/654/332 666/650/327 669/655/333 -f 431/372/276 649/656/287 405/373/277 -f 430/657/334 670/658/335 431/372/276 -f 664/651/228 430/657/334 407/370/274 -f 406/351/254 664/651/228 407/370/274 -f 666/650/336 671/659/226 672/660/228 -f 328/661/337 307/305/338 673/662/337 -f 391/334/243 439/388/339 674/663/340 -f 670/658/341 669/655/333 675/664/342 -f 389/665/343 667/666/344 390/652/329 -f 672/660/228 669/655/345 666/650/336 -f 669/655/345 443/667/346 675/664/347 -f 675/664/347 674/663/287 677/668/348 -f 442/391/349 667/666/350 676/669/351 -f 679/670/299 676/669/351 678/671/299 -f 671/659/226 679/670/299 678/671/299 -f 441/390/350 673/662/232 667/666/350 -f 673/662/232 306/653/232 667/666/350 -f 680/672/239 677/668/348 674/663/287 -f 680/672/239 439/388/239 438/387/239 -f 440/389/293 679/670/352 446/396/353 -f 649/656/354 680/672/355 470/673/355 -f 389/665/343 678/671/356 676/669/357 -f 392/392/296 674/663/340 443/667/358 -f 393/394/298 672/660/359 394/332/241 -f 446/396/353 665/674/360 445/395/326 -f 353/397/361 673/662/337 441/390/294 -f 394/332/241 671/659/362 395/333/242 -f 388/675/363 671/659/362 678/671/356 -f 670/658/341 677/668/364 649/656/354 -f 470/673/355 438/387/365 382/414/365 -f 305/304/220 306/653/366 307/305/221 -f 309/307/223 310/345/251 311/308/224 -f 313/310/226 314/341/247 315/311/227 -f 316/313/229 317/336/244 318/314/230 -f 324/426/232 320/408/232 323/318/232 -f 320/408/232 321/316/232 323/318/232 -f 335/540/232 325/506/232 326/417/232 -f 304/306/232 328/661/232 329/529/232 -f 304/306/232 329/529/232 330/523/232 -f 335/540/232 326/417/232 327/409/232 -f 332/542/232 333/545/232 331/319/232 -f 333/545/232 334/320/232 331/319/232 -f 334/320/232 335/540/232 327/409/232 -f 327/409/232 304/306/232 334/320/232 -f 304/306/232 330/523/232 331/319/232 -f 371/583/232 336/594/232 337/593/232 -f 337/593/232 338/581/232 345/575/232 -f 338/581/232 339/321/232 344/323/232 -f 337/593/232 345/575/232 354/378/282 -f 369/587/232 370/585/232 354/378/282 -f 370/585/232 371/583/232 354/378/282 -f 371/583/232 337/593/232 354/378/282 -f 364/475/232 365/510/232 355/337/234 -f 365/510/232 366/491/232 355/337/234 -f 361/480/232 362/458/232 355/337/234 -f 362/458/232 363/496/232 355/337/234 -f 363/496/232 364/475/232 355/337/234 -f 359/463/232 360/421/232 355/337/234 -f 360/421/232 361/480/232 355/337/234 -f 357/444/232 358/443/232 304/306/232 -f 358/443/232 359/463/232 304/306/232 -f 304/306/232 359/463/232 355/337/234 -f 324/426/232 356/403/232 304/306/232 -f 356/403/232 357/444/232 304/306/232 -f 327/409/232 320/408/232 304/306/232 -f 320/408/232 324/426/232 304/306/232 -f 329/529/232 328/661/232 352/556/232 -f 328/661/232 353/397/240 352/556/232 -f 351/558/232 352/556/232 353/397/240 -f 350/595/232 351/558/232 353/397/240 -f 354/378/282 355/337/234 367/490/232 -f 355/337/234 366/491/232 367/490/232 -f 350/595/232 353/397/240 345/575/232 -f 353/397/240 354/378/282 345/575/232 -f 354/378/282 367/490/232 368/588/232 -f 354/378/282 368/588/232 369/587/232 -f 333/545/232 332/542/232 347/589/232 -f 332/542/232 348/676/232 347/589/232 -f 347/589/232 348/676/232 346/592/232 -f 348/676/232 349/596/232 346/592/232 -f 345/575/232 338/581/232 344/323/232 -f 346/592/232 349/596/232 350/595/232 -f 345/575/232 346/592/232 350/595/232 -f 341/562/232 323/318/232 322/317/232 -f 342/549/232 325/506/232 343/322/232 -f 341/562/232 322/317/232 340/564/232 -f 322/317/232 342/549/232 343/322/232 -f 340/564/232 322/317/232 339/321/232 -f 322/317/232 343/322/232 339/321/232 -f 319/315/231 318/314/230 372/324/233 -f 355/337/235 374/339/235 381/349/235 -f 374/339/235 375/335/235 380/350/235 -f 381/349/235 374/339/235 380/350/235 -f 375/335/235 316/313/235 379/326/235 -f 383/386/290 305/304/220 304/306/222 -f 304/306/222 355/337/235 381/349/235 -f 316/313/235 319/315/235 378/346/235 -f 382/414/367 383/386/290 304/306/222 -f 381/349/235 382/414/367 304/306/222 -f 375/335/235 379/326/235 380/350/235 -f 378/346/235 379/326/235 316/313/235 -f 373/325/235 376/330/235 377/329/235 -f 319/315/235 373/325/235 311/308/235 -f 311/308/235 378/346/235 319/315/235 -f 373/325/235 377/329/235 308/309/235 -f 379/326/236 378/346/236 384/327/237 -f 377/329/239 386/383/287 309/307/223 -f 376/330/232 373/325/234 372/324/233 -f 395/333/242 388/675/363 389/665/343 -f 389/665/343 390/652/329 395/333/242 -f 390/652/329 305/304/331 391/334/243 -f 395/333/242 390/652/329 391/334/243 -f 305/304/331 383/386/368 391/334/243 -f 391/334/243 392/392/296 394/332/241 -f 392/392/296 393/394/298 394/332/241 -f 375/335/229 396/354/257 317/336/244 -f 355/337/234 354/378/282 397/338/245 -f 398/340/246 399/361/265 315/311/227 -f 400/342/248 401/347/252 402/343/249 -f 310/345/251 384/327/237 378/346/236 -f 400/342/248 399/361/265 398/340/246 -f 404/348/253 405/373/277 381/349/225 -f 406/351/254 407/370/274 408/352/255 -f 385/328/238 404/348/253 380/350/224 -f 408/352/255 403/344/250 402/343/249 -f 374/339/231 397/338/245 396/354/257 -f 312/312/258 410/381/258 411/382/258 -f 411/382/258 386/383/258 312/312/258 -f 386/383/258 377/329/258 387/331/258 -f 312/312/258 386/383/258 387/331/258 -f 377/329/258 376/330/258 387/331/258 -f 387/331/258 412/385/258 313/310/258 -f 412/385/258 413/677/258 313/310/258 -f 401/347/252 398/340/246 414/355/259 -f 414/355/259 416/358/262 417/357/261 -f 416/358/262 318/314/230 317/336/244 -f 398/340/246 314/341/247 418/359/263 -f 418/359/263 419/360/264 416/358/262 -f 419/360/264 372/324/233 318/314/230 -f 399/361/265 420/365/269 421/362/266 -f 421/362/266 420/365/269 422/363/267 -f 423/364/268 422/363/267 310/345/251 -f 400/342/248 424/384/288 420/365/269 -f 420/365/269 424/384/288 425/366/270 -f 422/363/267 425/366/270 384/327/237 -f 408/352/255 426/371/275 427/367/271 -f 427/367/271 426/371/275 428/368/272 -f 429/369/273 428/368/272 404/348/253 -f 407/370/274 430/657/334 426/371/275 -f 426/371/275 430/657/334 431/372/276 -f 428/368/272 431/372/276 405/373/277 -f 406/351/254 409/353/256 432/374/278 -f 432/374/278 434/377/281 435/376/280 -f 434/377/281 397/338/245 354/378/282 -f 409/353/256 402/343/249 436/379/283 -f 436/379/283 437/380/284 434/377/281 -f 437/380/284 396/354/257 397/338/245 -f 312/312/228 315/311/227 421/362/266 -f 421/362/266 423/364/268 411/382/286 -f 423/364/268 309/307/223 386/383/287 -f 403/344/250 427/367/271 424/384/288 -f 424/384/288 427/367/271 429/369/273 -f 425/366/270 429/369/273 385/328/238 -f 313/310/226 413/677/369 418/359/263 -f 418/359/263 413/677/369 412/385/289 -f 419/360/264 412/385/289 387/331/240 -f 402/343/249 401/347/252 415/356/260 -f 415/356/260 417/357/261 437/380/284 -f 417/357/261 317/336/244 396/354/257 -f 383/386/290 382/414/367 438/387/291 -f 440/389/293 353/397/361 441/390/294 -f 392/392/296 443/667/358 444/393/297 -f 445/395/226 406/351/254 433/375/279 -f 433/375/279 435/376/280 440/389/300 -f 435/376/280 354/378/282 353/397/240 -f 448/399/239 449/610/239 450/400/239 -f 450/400/239 451/428/239 447/398/239 -f 451/428/239 452/452/239 447/398/239 -f 453/401/258 454/438/301 455/402/301 -f 457/404/302 458/446/258 459/405/258 -f 460/407/235 461/430/235 320/408/235 -f 463/410/235 464/415/235 465/411/235 -f 475/548/239 466/493/239 467/525/239 -f 468/678/239 469/535/239 382/414/239 -f 469/535/239 470/673/239 382/414/239 -f 474/413/239 475/548/239 467/525/239 -f 473/532/239 474/413/239 464/415/239 -f 474/413/239 467/525/239 382/414/239 -f 467/525/239 468/678/239 382/414/239 -f 464/415/239 471/597/239 473/532/239 -f 471/597/239 472/533/239 473/532/239 -f 476/416/303 460/407/304 327/409/304 -f 477/418/305 471/597/305 464/415/304 -f 478/419/258 479/500/301 480/420/301 -f 482/422/302 483/465/258 484/423/258 -f 485/425/235 453/401/235 356/403/235 -f 487/427/235 488/600/235 451/428/235 -f 461/430/258 489/448/301 321/316/301 -f 491/431/302 462/412/258 465/411/258 -f 323/318/304 341/562/303 492/439/303 -f 492/439/303 485/425/304 323/318/304 -f 495/679/305 493/434/304 494/433/306 -f 493/434/304 488/600/304 487/427/304 -f 496/435/307 498/648/323 497/436/308 -f 454/438/232 453/401/232 485/425/232 -f 485/425/232 492/439/232 454/438/232 -f 492/439/232 499/563/232 501/437/232 -f 499/563/232 500/565/232 501/437/232 -f 506/441/239 502/445/239 458/446/239 -f 458/446/239 457/404/239 506/441/239 -f 457/404/239 503/615/239 505/440/239 -f 503/615/239 504/611/239 505/440/239 -f 507/442/235 508/466/235 358/443/235 -f 502/445/235 452/452/235 459/405/235 -f 489/448/232 461/430/232 460/407/232 -f 460/407/232 476/416/232 489/448/232 -f 476/416/232 509/578/232 511/447/232 -f 509/578/232 510/579/232 511/447/232 -f 451/428/370 450/400/371 512/449/372 -f 450/400/371 496/435/307 498/648/373 -f 512/449/372 450/400/371 498/648/373 -f 507/442/304 357/444/304 514/450/303 -f 506/441/305 447/398/305 452/452/304 -f 516/453/302 517/482/258 518/454/258 -f 519/456/258 520/514/301 521/457/301 -f 523/459/302 524/498/258 525/460/258 -f 526/462/235 478/419/235 360/421/235 -f 527/464/235 528/472/235 484/423/235 -f 508/466/258 529/484/301 530/467/301 -f 477/418/239 463/410/239 462/412/239 -f 462/412/239 491/431/239 477/418/239 -f 491/431/239 531/612/239 533/468/239 -f 531/612/239 532/614/239 533/468/239 -f 526/462/304 359/463/304 535/469/303 -f 536/471/305 537/601/305 528/472/304 -f 538/473/258 539/527/301 540/474/301 -f 542/476/302 543/512/258 544/477/258 -f 545/479/235 519/456/235 362/458/235 -f 546/481/235 547/488/235 518/454/235 -f 529/484/232 508/466/232 507/442/232 -f 507/442/232 513/451/232 529/484/232 -f 513/451/232 548/566/232 550/483/232 -f 548/566/232 549/567/232 550/483/232 -f 545/479/304 361/480/304 552/485/303 -f 553/487/305 554/603/305 547/488/304 -f 555/489/258 556/521/301 367/490/301 -f 467/525/258 466/493/258 559/492/258 -f 466/493/258 557/622/302 558/494/302 -f 560/495/235 538/473/235 364/475/235 -f 561/497/235 562/504/235 525/460/235 -f 479/500/232 478/419/232 526/462/232 -f 526/462/232 534/470/232 479/500/232 -f 534/470/232 563/568/232 565/499/232 -f 563/568/232 564/569/232 565/499/232 -f 560/495/304 363/496/304 567/501/303 -f 568/503/305 569/605/305 562/504/304 -f 325/506/258 335/540/258 570/680/258 -f 570/680/258 571/505/301 325/506/258 -f 576/508/239 572/524/239 559/492/239 -f 559/492/239 558/494/239 576/508/239 -f 558/494/239 573/623/239 575/507/239 -f 573/623/239 574/625/239 575/507/239 -f 577/509/235 555/489/235 366/491/235 -f 578/511/235 579/519/235 544/477/235 -f 520/514/232 519/456/232 545/479/232 -f 545/479/232 551/486/232 520/514/232 -f 551/486/232 580/570/232 582/513/232 -f 580/570/232 581/572/232 582/513/232 -f 536/471/239 527/464/239 483/465/239 -f 483/465/239 482/422/239 536/471/239 -f 482/422/239 583/617/239 585/515/239 -f 583/617/239 584/619/239 585/515/239 -f 577/509/304 365/510/304 587/516/303 -f 588/518/305 589/608/305 579/519/304 -f 556/521/232 555/489/232 577/509/232 -f 577/509/232 586/517/232 556/521/232 -f 586/517/232 590/560/232 592/520/232 -f 590/560/232 591/561/232 592/520/232 -f 593/522/235 594/543/235 331/319/235 -f 572/524/235 468/678/235 467/525/235 -f 539/527/232 538/473/232 560/495/232 -f 560/495/232 566/502/232 539/527/232 -f 566/502/232 595/573/232 597/526/232 -f 595/573/232 596/574/232 597/526/232 -f 553/487/239 546/481/239 517/482/239 -f 517/482/239 516/453/239 553/487/239 -f 516/453/239 598/632/239 600/528/239 -f 598/632/239 599/631/239 600/528/239 -f 330/523/304 329/529/304 593/522/304 -f 329/529/304 352/556/303 601/530/303 -f 472/533/258 602/639/302 603/641/302 -f 603/641/302 604/531/258 472/533/258 -f 469/535/304 468/678/304 572/524/304 -f 572/524/304 576/508/305 469/535/304 -f 609/537/232 594/543/232 593/522/232 -f 593/522/232 601/530/232 609/537/232 -f 601/530/232 606/557/232 608/536/232 -f 606/557/232 607/559/232 608/536/232 -f 588/518/239 578/511/239 543/512/239 -f 543/512/239 542/476/239 588/518/239 -f 542/476/239 610/637/239 612/538/239 -f 610/637/239 611/636/239 612/538/239 -f 613/539/235 570/680/235 335/540/235 -f 614/541/235 474/413/235 473/532/235 -f 348/676/301 332/542/258 609/537/301 -f 332/542/258 331/319/258 594/543/258 -f 568/503/239 561/497/239 524/498/239 -f 524/498/239 523/459/239 568/503/239 -f 523/459/239 615/620/239 617/544/239 -f 615/620/239 616/621/239 617/544/239 -f 347/589/303 618/591/303 333/545/304 -f 618/591/303 613/539/304 333/545/304 -f 475/548/304 474/413/304 614/541/304 -f 614/541/304 619/546/305 475/548/304 -f 623/580/232 339/321/232 338/581/232 -f 623/580/232 338/581/232 624/552/232 -f 357/444/232 356/403/232 455/402/232 -f 455/402/232 623/580/232 624/552/232 -f 514/450/232 357/444/232 455/402/232 -f 625/582/232 338/581/232 337/593/232 -f 625/582/232 337/593/232 626/553/232 -f 359/463/232 358/443/232 530/467/232 -f 530/467/232 625/582/232 626/553/232 -f 535/469/232 359/463/232 530/467/232 -f 480/420/232 336/594/232 627/571/232 -f 336/594/232 371/583/232 627/571/232 -f 361/480/232 360/421/232 480/420/232 -f 480/420/232 627/571/232 552/485/232 -f 628/584/232 371/583/232 370/585/232 -f 628/584/232 370/585/232 629/554/232 -f 363/496/232 362/458/232 521/457/232 -f 521/457/232 628/584/232 629/554/232 -f 567/501/232 363/496/232 521/457/232 -f 630/586/232 370/585/232 369/587/232 -f 630/586/232 369/587/232 631/555/232 -f 365/510/232 364/475/232 540/474/232 -f 540/474/232 630/586/232 631/555/232 -f 587/516/232 365/510/232 540/474/232 -f 352/556/303 351/558/309 606/557/309 -f 351/558/309 350/595/310 607/559/310 -f 587/516/303 631/555/309 590/560/309 -f 631/555/309 369/587/310 591/561/310 -f 341/562/303 340/564/309 499/563/309 -f 340/564/309 339/321/310 500/565/310 -f 514/450/303 624/552/309 548/566/309 -f 624/552/309 338/581/310 549/567/310 -f 535/469/303 626/553/309 563/568/309 -f 626/553/309 337/593/310 564/569/310 -f 552/485/303 627/571/309 580/570/309 -f 627/571/309 371/583/310 581/572/310 -f 567/501/303 629/554/309 595/573/309 -f 629/554/309 370/585/310 596/574/310 -f 345/575/311 344/323/312 633/576/312 -f 344/323/312 343/322/301 571/505/301 -f 326/417/303 621/550/309 509/578/309 -f 621/550/309 342/549/310 510/579/310 -f 339/321/311 623/580/312 501/437/312 -f 623/580/312 455/402/301 454/438/301 -f 338/581/311 625/582/312 550/483/312 -f 625/582/312 530/467/301 529/484/301 -f 371/583/311 628/584/312 582/513/312 -f 628/584/312 521/457/301 520/514/301 -f 370/585/311 630/586/312 597/526/312 -f 630/586/312 540/474/301 539/527/301 -f 369/587/311 368/588/312 592/520/312 -f 368/588/312 367/490/301 556/521/301 -f 347/589/303 346/592/309 634/590/309 -f 346/592/309 345/575/310 632/577/310 -f 342/549/311 622/551/312 511/447/312 -f 622/551/312 321/316/301 489/448/301 -f 337/593/311 336/594/312 565/499/312 -f 336/594/312 480/420/301 479/500/301 -f 350/595/311 349/596/312 608/536/312 -f 349/596/312 348/676/301 609/537/301 -f 571/505/232 570/680/232 613/539/232 -f 613/539/232 618/591/232 571/505/232 -f 618/591/232 634/590/232 633/576/232 -f 634/590/232 632/577/232 633/576/232 -f 493/434/239 637/613/239 490/432/239 -f 490/432/239 465/411/239 493/434/239 -f 640/643/239 638/616/239 639/602/239 -f 638/616/239 456/406/239 639/602/239 -f 456/406/239 459/405/239 528/472/239 -f 456/406/239 528/472/239 537/601/239 -f 643/630/239 641/618/239 642/604/239 -f 641/618/239 481/424/239 642/604/239 -f 481/424/239 484/423/239 547/488/239 -f 481/424/239 547/488/239 554/603/239 -f 636/599/239 637/613/239 450/400/239 -f 637/613/239 493/434/239 495/679/239 -f 637/613/239 495/679/239 644/644/239 -f 602/639/239 472/533/239 636/599/239 -f 602/639/239 636/599/239 450/400/239 -f 637/613/239 644/644/239 450/400/239 -f 655/642/239 602/639/239 450/400/239 -f 654/626/239 655/642/239 449/610/239 -f 655/642/239 450/400/239 449/610/239 -f 449/610/239 638/616/239 640/643/239 -f 654/626/239 449/610/239 640/643/239 -f 640/643/239 641/618/239 643/630/239 -f 643/630/239 645/633/239 646/634/239 -f 643/630/239 646/634/239 405/373/277 -f 646/634/239 647/635/239 405/373/277 -f 643/630/239 405/373/277 640/643/239 -f 654/626/239 640/643/239 405/373/277 -f 466/493/239 475/548/239 620/547/239 -f 557/622/239 466/493/239 620/547/239 -f 557/622/239 620/547/239 653/629/239 -f 652/624/239 557/622/239 653/629/239 -f 652/624/239 653/629/239 654/626/239 -f 651/646/239 652/624/239 654/626/239 -f 470/673/239 469/535/239 605/534/239 -f 464/415/239 382/414/239 465/411/239 -f 382/414/239 381/349/225 528/472/239 -f 465/411/239 382/414/239 488/600/239 -f 451/428/239 488/600/239 382/414/239 -f 451/428/239 382/414/239 452/452/239 -f 649/656/287 470/673/239 605/534/239 -f 649/656/287 605/534/239 650/647/239 -f 452/452/239 382/414/239 459/405/239 -f 528/472/239 459/405/239 382/414/239 -f 649/656/287 650/647/239 651/646/239 -f 649/656/287 651/646/239 654/626/239 -f 518/454/239 547/488/239 381/349/225 -f 547/488/239 484/423/239 381/349/225 -f 484/423/239 528/472/239 381/349/225 -f 405/373/277 649/656/287 654/626/239 -f 579/519/239 525/460/239 381/349/225 -f 525/460/239 562/504/239 381/349/225 -f 562/504/239 518/454/239 381/349/225 -f 405/373/277 647/635/239 648/638/239 -f 405/373/277 648/638/239 541/478/239 -f 405/373/277 541/478/239 381/349/225 -f 541/478/239 544/477/239 381/349/225 -f 646/634/239 645/633/239 656/606/239 -f 645/633/239 515/455/239 656/606/239 -f 515/455/239 518/454/239 562/504/239 -f 515/455/239 562/504/239 569/605/239 -f 522/461/239 525/460/239 579/519/239 -f 522/461/239 579/519/239 589/608/239 -f 647/635/239 646/634/239 657/607/239 -f 657/607/239 522/461/239 589/608/239 -f 658/609/239 647/635/239 657/607/239 -f 449/610/313 448/399/314 505/440/314 -f 448/399/314 447/398/305 506/441/305 -f 490/432/302 637/613/315 531/612/315 -f 637/613/315 636/599/316 532/614/316 -f 456/406/302 638/616/315 503/615/315 -f 638/616/315 449/610/316 504/611/316 -f 481/424/302 641/618/315 583/617/315 -f 641/618/315 640/643/316 584/619/316 -f 522/461/302 657/607/315 615/620/315 -f 657/607/315 646/634/316 616/621/316 -f 557/622/302 652/624/315 573/623/315 -f 652/624/315 651/646/316 574/625/316 -f 654/626/313 653/629/314 660/627/314 -f 653/629/314 620/547/305 619/546/305 -f 643/630/313 642/604/314 600/528/314 -f 642/604/314 554/603/305 553/487/305 -f 515/455/302 645/633/315 598/632/315 -f 645/633/315 643/630/316 599/631/316 -f 646/634/313 656/606/314 617/544/314 -f 656/606/314 569/605/305 568/503/305 -f 647/635/313 658/609/314 612/538/314 -f 658/609/314 589/608/305 588/518/305 -f 541/478/302 648/638/315 610/637/315 -f 648/638/315 647/635/316 611/636/316 -f 602/639/302 655/642/315 661/640/315 -f 655/642/315 654/626/316 659/628/316 -f 512/449/317 498/648/374 662/645/375 -f 498/648/374 496/435/376 662/645/375 -f 662/645/375 494/433/318 512/449/317 -f 494/433/318 487/427/239 486/429/239 -f 640/643/313 639/602/314 585/515/314 -f 639/602/314 537/601/305 536/471/305 -f 636/599/313 635/598/314 533/468/314 -f 635/598/314 471/597/305 477/418/305 -f 496/435/319 450/400/377 644/644/320 -f 644/644/320 495/679/305 494/433/306 -f 651/646/313 650/647/314 575/507/314 -f 650/647/314 605/534/305 576/508/305 -f 619/546/239 614/541/239 604/531/239 -f 604/531/239 603/641/239 619/546/239 -f 603/641/239 661/640/239 660/627/239 -f 661/640/239 659/628/239 660/627/239 -f 512/449/322 663/649/325 497/436/308 -f 512/449/258 486/429/258 451/428/258 -f 445/395/326 665/674/360 666/650/327 -f 390/652/329 667/666/344 306/653/330 -f 668/654/332 664/651/328 666/650/327 -f 431/372/276 670/658/335 649/656/287 -f 430/657/334 668/654/345 670/658/335 -f 664/651/228 668/654/345 430/657/334 -f 406/351/254 445/395/226 664/651/228 -f 666/650/336 665/674/378 671/659/226 -f 328/661/337 304/306/338 307/305/338 -f 391/334/243 383/386/368 439/388/339 -f 670/658/341 668/654/332 669/655/333 -f 389/665/343 676/669/357 667/666/344 -f 672/660/228 444/393/345 669/655/345 -f 669/655/345 444/393/345 443/667/346 -f 675/664/347 443/667/346 674/663/287 -f 442/391/349 441/390/350 667/666/350 -f 679/670/299 442/391/349 676/669/351 -f 671/659/226 665/674/378 679/670/299 -f 673/662/232 307/305/232 306/653/232 -f 680/672/239 674/663/287 439/388/239 -f 440/389/293 442/391/295 679/670/352 -f 649/656/354 677/668/364 680/672/355 -f 389/665/343 388/675/363 678/671/356 -f 392/392/296 391/334/243 674/663/340 -f 393/394/298 444/393/297 672/660/359 -f 446/396/353 679/670/352 665/674/360 -f 353/397/361 328/661/337 673/662/337 -f 394/332/241 672/660/359 671/659/362 -f 388/675/363 395/333/242 671/659/362 -f 670/658/341 675/664/342 677/668/364 -f 470/673/355 680/672/355 438/387/365 -o Cube.001_Cube.002 -v 1.702443 0.284738 -0.011919 -v 1.702443 0.284738 0.013144 -v 1.702443 0.395269 0.013144 -v 1.702443 0.395269 -0.011919 -v 1.749322 0.395269 0.013144 -v 1.749322 0.395269 -0.011919 -v 1.749322 0.284738 0.013144 -v 1.749322 0.284738 -0.011919 -vt 0.703156 0.520987 -vt 0.703156 0.554227 -vt 0.703156 0.520987 -vt 0.703156 0.554227 -vt 0.717254 0.554227 -vt 0.717254 0.554227 -vt 0.717254 0.520987 -vt 0.717254 0.520987 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -s off -f 682/681/379 684/682/379 681/683/379 -f 683/684/380 686/685/380 684/682/380 -f 685/686/381 688/687/381 686/685/381 -f 687/688/382 681/683/382 688/687/382 -f 686/685/383 681/683/383 684/682/383 -f 683/684/384 687/688/384 685/686/384 -f 682/681/379 683/684/379 684/682/379 -f 683/684/380 685/686/380 686/685/380 -f 685/686/381 687/688/381 688/687/381 -f 687/688/382 682/681/382 681/683/382 -f 686/685/383 688/687/383 681/683/383 -f 683/684/384 682/681/384 687/688/384 -o Cylinder.006 -v 1.669013 0.315957 0.000612 -v 1.750267 0.315957 0.000612 -v 1.750267 0.278978 -0.088663 -v 1.669013 0.278978 -0.088663 -v 1.750267 0.189702 -0.125642 -v 1.669013 0.189702 -0.125642 -v 1.750267 0.100427 -0.088663 -v 1.669013 0.100427 -0.088663 -v 1.750267 0.063448 0.000612 -v 1.669013 0.063448 0.000612 -v 1.750267 0.100427 0.089888 -v 1.669013 0.100427 0.089888 -v 1.750267 0.189702 0.126867 -v 1.669013 0.189702 0.126867 -v 1.750267 0.278978 0.089888 -v 1.669013 0.278978 0.089888 -vt 0.729257 0.590922 -vt 0.704821 0.579801 -vt 0.704821 0.590922 -vt 0.729257 0.579801 -vt 0.704821 0.552952 -vt 0.729257 0.552952 -vt 0.704821 0.526104 -vt 0.729257 0.526104 -vt 0.704821 0.514983 -vt 0.729257 0.514983 -vt 0.704821 0.526104 -vt 0.729257 0.526104 -vt 0.704821 0.552952 -vt 0.729257 0.552952 -vt 0.704821 0.579801 -vt 0.729257 0.579801 -vn 0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.0000 1.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -1.0000 0.0000 0.0000 +f 2/1/1 4/2/2 1/3/3 +f 6/4/4 8/5/5 5/6/6 +f 10/7/7 12/8/8 9/7/9 +f 13/9/10 15/10/11 16/5/12 +f 18/11/13 19/12/13 20/13/13 +f 1/3/13 28/14/13 31/15/13 +f 36/16/13 40/17/13 41/18/13 +f 16/5/12 69/4/14 70/6/15 +f 5/6/16 8/5/16 70/6/16 +f 76/19/17 81/20/18 82/21/19 +f 74/22/20 6/4/4 5/6/6 +f 73/22/13 69/4/14 84/23/21 +f 91/24/22 92/24/23 88/25/24 +f 72/19/10 14/20/25 13/9/10 +f 52/26/15 94/27/26 71/28/12 +f 95/29/27 12/8/8 11/8/28 +f 97/30/29 99/31/30 100/31/31 +f 7/10/32 75/9/17 8/5/5 +f 97/30/29 95/29/27 98/30/33 +f 101/27/34 78/26/6 77/28/5 +f 103/32/35 105/33/36 106/33/37 +f 82/21/19 77/28/5 76/19/17 +f 105/33/36 99/31/30 106/33/37 +f 71/28/12 93/21/38 72/19/10 +f 10/7/39 9/7/39 84/23/39 +f 98/30/33 111/34/40 112/35/41 +f 111/34/40 114/36/42 112/35/41 +f 113/37/43 14/20/25 114/36/42 +f 95/29/27 115/38/44 111/34/40 +f 115/38/44 113/37/43 111/34/40 +f 116/39/45 15/10/11 113/37/43 +f 96/29/46 118/38/47 12/8/8 +f 118/38/47 119/37/48 120/39/49 +f 120/39/49 7/10/32 6/4/4 +f 97/30/29 117/34/50 96/29/46 +f 117/34/50 122/36/51 119/37/48 +f 119/37/48 81/20/18 7/10/32 +f 105/33/36 124/40/52 100/31/31 +f 124/40/52 125/41/53 126/42/54 +f 126/42/54 101/27/34 82/21/19 +f 104/32/55 123/43/56 105/33/36 +f 123/43/56 128/44/57 125/41/53 +f 125/41/53 102/45/58 101/27/34 +f 103/32/35 129/43/59 130/46/60 +f 129/43/59 132/44/61 130/46/60 +f 131/41/62 51/45/63 132/44/61 +f 106/33/37 133/47/64 129/43/59 +f 133/47/64 131/41/62 129/43/59 +f 134/42/65 94/27/26 131/41/62 +f 9/7/9 118/38/47 107/48/66 +f 118/38/47 108/49/67 107/48/66 +f 120/39/49 83/23/68 108/49/67 +f 100/31/31 121/35/69 97/30/29 +f 121/35/69 126/42/54 122/36/51 +f 122/36/51 82/21/19 81/20/18 +f 10/7/7 115/38/44 11/8/28 +f 115/38/44 109/49/70 116/39/45 +f 116/39/45 84/23/21 69/4/14 +f 99/31/30 112/35/41 133/47/64 +f 112/35/41 134/42/65 133/47/64 +f 114/36/42 93/21/38 134/42/65 +f 80/1/71 135/50/72 136/51/73 +f 137/52/74 138/53/75 139/54/76 +f 89/55/77 141/56/78 90/57/79 +f 142/58/7 130/46/60 143/59/80 +f 130/46/60 137/52/81 143/59/80 +f 132/44/61 50/60/21 137/52/81 +f 144/61/20 145/62/20 147/63/20 +f 150/64/39 152/65/82 53/64/39 +f 154/66/83 156/67/39 153/66/83 +f 157/68/16 17/69/16 24/68/16 +f 160/68/16 162/69/16 159/69/16 +f 171/15/20 79/70/20 161/68/20 +f 173/71/84 24/68/85 23/71/84 +f 174/72/86 161/68/85 160/68/85 +f 175/73/39 177/74/82 57/73/39 +f 179/75/83 181/73/39 178/75/83 +f 182/76/16 53/64/16 21/76/16 +f 184/76/16 148/64/16 183/64/16 +f 158/69/39 18/11/82 17/69/39 +f 188/77/83 162/69/39 187/77/83 +f 182/76/85 21/76/85 20/13/85 +f 191/78/87 190/13/85 184/76/85 +f 193/79/88 194/80/89 147/63/88 +f 198/81/13 151/65/13 189/82/13 +f 202/62/20 203/61/20 154/66/20 +f 204/83/16 55/67/16 54/83/16 +f 199/83/16 156/67/16 155/67/16 +f 208/84/13 186/11/13 173/71/13 +f 209/85/39 183/64/39 148/64/39 +f 204/83/85 211/86/84 210/86/84 +f 203/61/86 149/83/85 199/83/85 +f 213/87/83 215/88/39 212/87/83 +f 216/88/39 218/89/82 59/88/39 +f 220/90/83 222/91/39 219/90/83 +f 223/92/16 57/73/16 56/92/16 +f 224/92/16 181/73/16 180/73/16 +f 205/67/39 227/93/82 55/67/39 +f 230/94/20 174/72/20 188/77/20 +f 223/92/85 232/95/84 231/95/84 +f 233/96/86 225/92/85 224/92/85 +f 235/91/39 237/97/82 61/91/39 +f 239/98/83 241/99/39 238/98/83 +f 242/100/16 59/88/16 58/100/16 +f 243/100/16 215/88/16 214/88/16 +f 247/101/13 226/93/13 210/86/13 +f 242/100/85 249/102/84 248/102/84 +f 250/103/86 244/100/85 243/100/85 +f 252/99/39 64/104/82 63/99/39 +f 256/14/39 163/105/39 255/106/83 +f 257/107/16 61/91/16 60/107/16 +f 258/107/16 222/91/16 221/91/16 +f 262/108/13 176/74/13 231/95/13 +f 257/107/85 264/109/84 263/109/84 +f 265/110/86 259/107/85 258/107/85 +f 268/17/82 40/17/82 22/111/39 +f 272/112/20 273/113/20 255/106/20 +f 274/114/16 63/99/16 62/114/16 +f 275/114/16 241/99/16 240/99/16 +f 279/115/13 217/89/13 248/102/13 +f 282/116/20 233/96/20 179/75/20 +f 274/114/85 284/117/84 283/117/84 +f 285/118/86 276/114/85 275/114/85 +f 289/119/13 253/104/13 283/117/13 +f 290/120/16 28/14/16 27/120/16 +f 269/120/16 164/14/16 256/14/16 +f 294/121/13 236/97/13 263/109/13 +f 297/122/20 250/103/20 213/87/20 +f 290/120/85 26/123/85 298/124/84 +f 301/125/39 170/125/39 169/111/39 +f 273/113/86 302/113/86 166/123/85 +f 305/126/13 306/127/13 298/124/13 +f 309/128/20 285/118/20 239/98/20 +f 310/15/16 32/125/16 31/15/16 +f 311/15/16 170/125/16 301/125/16 +f 306/127/82 29/105/39 291/14/39 +f 314/129/20 265/110/20 220/90/20 +f 310/15/85 31/15/85 30/130/85 +f 316/131/86 317/131/86 172/130/85 +f 39/132/13 318/133/13 22/111/13 +f 318/133/13 23/71/13 22/111/13 +f 18/11/13 319/84/13 19/12/13 +f 319/84/13 39/132/13 19/12/13 +f 152/65/13 321/134/13 211/86/13 +f 227/93/13 323/135/13 232/95/13 +f 177/74/13 249/102/13 58/100/13 +f 218/89/13 326/136/13 264/109/13 +f 237/97/13 328/137/13 284/117/13 +f 49/124/84 303/138/90 298/124/84 +f 48/138/90 304/139/91 303/138/90 +f 284/117/84 287/137/90 283/117/84 +f 328/137/90 288/140/91 287/137/90 +f 38/82/84 196/141/90 189/82/84 +f 37/141/90 197/16/91 196/141/90 +f 211/86/84 245/134/90 210/86/84 +f 321/134/90 246/142/91 245/134/90 +f 232/95/84 260/135/90 231/95/84 +f 323/135/90 261/143/91 260/135/90 +f 249/102/84 277/144/90 248/102/84 +f 324/144/90 278/145/91 277/144/90 +f 264/109/84 292/136/90 263/109/84 +f 326/136/90 293/146/91 292/136/90 +f 42/147/92 330/18/93 329/147/92 +f 41/18/93 268/17/82 330/18/93 +f 23/71/84 206/133/90 173/71/84 +f 318/133/90 207/132/91 206/133/90 +f 36/16/92 198/81/93 197/16/92 +f 320/81/93 151/65/82 198/81/93 +f 35/142/92 247/101/93 246/142/92 +f 322/101/93 226/93/82 247/101/93 +f 68/145/92 279/115/93 278/145/92 +f 325/115/93 217/89/82 279/115/93 +f 67/146/92 294/121/93 293/146/92 +f 327/121/93 236/97/82 294/121/93 +f 66/140/92 289/119/93 288/140/92 +f 65/119/93 253/104/82 289/119/93 +f 44/148/84 331/149/90 315/148/84 +f 43/149/90 329/147/91 331/149/90 +f 39/132/92 208/84/93 207/132/92 +f 319/84/93 186/11/82 208/84/93 +f 34/143/92 262/108/93 261/143/92 +f 33/108/93 176/74/82 262/108/93 +f 47/139/92 305/126/93 304/139/92 +f 46/126/93 306/127/82 305/126/93 +f 330/18/13 268/17/13 315/148/13 +f 168/72/20 332/94/20 169/111/20 +f 332/94/20 333/132/20 169/111/20 +f 162/69/20 185/76/20 190/13/20 +f 153/66/20 234/96/20 336/116/20 +f 178/75/20 251/103/20 339/122/20 +f 241/99/20 276/114/20 78/26/6 +f 212/87/20 266/110/20 353/129/20 +f 354/150/20 286/118/20 355/128/20 +f 146/142/94 202/62/95 201/142/94 +f 145/62/95 203/61/86 202/62/95 +f 187/77/83 228/151/96 188/77/83 +f 334/151/96 229/132/97 228/151/96 +f 153/66/83 200/152/96 154/66/83 +f 335/152/96 201/142/97 200/152/96 +f 178/75/83 280/153/96 179/75/83 +f 338/153/96 281/143/97 280/153/96 +f 219/90/83 312/150/96 220/90/83 +f 354/150/96 313/146/97 312/150/96 +f 254/106/83 270/154/96 255/106/83 +f 349/154/96 271/139/97 270/154/96 +f 351/147/94 357/155/95 356/147/94 +f 350/155/95 316/131/86 357/155/95 +f 340/145/94 297/122/95 296/145/94 +f 339/122/95 250/103/86 297/122/95 +f 212/87/83 295/156/96 213/87/83 +f 342/156/96 296/145/97 295/156/96 +f 343/146/94 314/129/95 313/146/94 +f 353/129/95 265/110/86 314/129/95 +f 344/140/94 309/128/95 308/140/94 +f 355/128/95 285/118/86 309/128/95 +f 238/98/83 307/157/96 239/98/83 +f 345/157/96 308/140/97 307/157/96 +f 299/158/83 358/159/96 300/158/83 +f 352/159/96 356/147/97 358/159/96 +f 183/64/20 209/85/98 191/78/99 +f 337/143/94 282/116/95 281/143/94 +f 336/116/95 233/96/86 282/116/95 +f 333/132/94 230/94/95 229/132/94 +f 332/94/95 174/72/86 230/94/95 +f 193/79/100 341/160/101 359/161/102 +f 341/160/101 191/78/87 359/161/102 +f 348/139/94 272/112/95 271/139/94 +f 347/112/95 273/113/86 272/112/95 +f 357/155/20 316/131/20 300/158/20 +f 209/85/103 194/80/89 195/162/104 +f 209/85/103 148/64/105 360/163/106 +f 142/58/107 363/164/108 361/58/109 +f 87/25/110 3/51/111 2/1/112 +f 365/59/113 363/164/108 366/165/114 +f 128/44/57 346/60/115 102/45/58 +f 127/46/116 367/52/117 128/44/57 +f 361/58/9 127/46/116 104/32/55 +f 103/32/35 361/58/9 104/32/55 +f 363/164/118 368/166/7 369/166/9 +f 25/167/119 4/2/120 370/168/121 +f 88/25/24 136/51/122 371/169/123 +f 367/52/124 366/165/114 372/54/125 +f 86/55/126 364/169/127 87/25/110 +f 369/166/9 366/165/128 363/164/118 +f 366/165/128 140/170/117 372/54/117 +f 372/54/117 371/169/68 374/53/68 +f 139/54/81 364/169/129 373/170/81 +f 376/165/130 373/170/81 375/56/80 +f 368/166/7 376/165/130 375/56/80 +f 138/53/129 370/168/13 364/169/129 +f 370/168/13 3/51/13 364/169/129 +f 377/168/20 374/53/68 371/169/68 +f 377/168/20 136/51/20 135/50/20 +f 137/52/74 376/165/131 143/59/132 +f 346/60/133 377/168/134 167/167/134 +f 86/55/126 375/56/135 373/170/136 +f 89/55/77 371/169/123 140/170/137 +f 90/57/79 369/166/138 91/24/22 +f 143/59/132 362/164/139 142/58/107 +f 50/60/140 370/168/121 138/53/75 +f 91/24/22 368/166/141 92/24/23 +f 85/57/142 368/166/141 375/56/135 +f 367/52/124 374/53/143 346/60/133 +f 167/167/134 135/50/144 79/70/144 +f 2/1/1 3/51/145 4/2/2 +f 6/4/4 7/10/32 8/5/5 +f 10/7/7 11/8/28 12/8/8 +f 13/9/10 14/20/25 15/10/11 +f 21/76/13 17/69/13 20/13/13 +f 17/69/13 18/11/13 20/13/13 +f 32/125/13 22/111/13 23/71/13 +f 1/3/13 25/167/13 26/123/13 +f 1/3/13 26/123/13 27/120/13 +f 32/125/13 23/71/13 24/68/13 +f 29/105/13 30/130/13 28/14/13 +f 30/130/13 31/15/13 28/14/13 +f 31/15/13 32/125/13 24/68/13 +f 24/68/13 1/3/13 31/15/13 +f 1/3/13 27/120/13 28/14/13 +f 68/145/13 33/108/13 34/143/13 +f 34/143/13 35/142/13 42/147/13 +f 35/142/13 36/16/13 41/18/13 +f 34/143/13 42/147/13 51/45/63 +f 66/140/13 67/146/13 51/45/63 +f 67/146/13 68/145/13 51/45/63 +f 68/145/13 34/143/13 51/45/63 +f 61/91/13 62/114/13 52/26/15 +f 62/114/13 63/99/13 52/26/15 +f 58/100/13 59/88/13 52/26/15 +f 59/88/13 60/107/13 52/26/15 +f 60/107/13 61/91/13 52/26/15 +f 56/92/13 57/73/13 52/26/15 +f 57/73/13 58/100/13 52/26/15 +f 54/83/13 55/67/13 1/3/13 +f 55/67/13 56/92/13 1/3/13 +f 1/3/13 56/92/13 52/26/15 +f 21/76/13 53/64/13 1/3/13 +f 53/64/13 54/83/13 1/3/13 +f 24/68/13 17/69/13 1/3/13 +f 17/69/13 21/76/13 1/3/13 +f 26/123/13 25/167/13 49/124/13 +f 25/167/13 50/60/21 49/124/13 +f 48/138/13 49/124/13 50/60/21 +f 47/139/13 48/138/13 50/60/21 +f 51/45/63 52/26/15 64/104/13 +f 52/26/15 63/99/13 64/104/13 +f 47/139/13 50/60/21 42/147/13 +f 50/60/21 51/45/63 42/147/13 +f 51/45/63 64/104/13 65/119/13 +f 51/45/63 65/119/13 66/140/13 +f 30/130/13 29/105/13 44/148/13 +f 29/105/13 45/127/13 44/148/13 +f 44/148/13 45/127/13 43/149/13 +f 45/127/13 46/126/13 43/149/13 +f 42/147/13 35/142/13 41/18/13 +f 43/149/13 46/126/13 47/139/13 +f 42/147/13 43/149/13 47/139/13 +f 38/82/13 20/13/13 19/12/13 +f 39/132/13 22/111/13 40/17/13 +f 38/82/13 19/12/13 37/141/13 +f 19/12/13 39/132/13 40/17/13 +f 37/141/13 19/12/13 36/16/13 +f 19/12/13 40/17/13 36/16/13 +f 16/5/12 15/10/11 69/4/14 +f 52/26/16 71/28/16 78/26/16 +f 71/28/16 72/19/16 77/28/16 +f 78/26/16 71/28/16 77/28/16 +f 72/19/16 13/9/16 76/19/16 +f 80/1/71 2/1/1 1/3/3 +f 1/3/3 52/26/16 78/26/16 +f 13/9/16 16/5/16 75/9/16 +f 79/70/146 80/1/71 1/3/3 +f 78/26/16 79/70/146 1/3/3 +f 72/19/16 76/19/16 77/28/16 +f 75/9/16 76/19/16 13/9/16 +f 70/6/16 73/22/16 74/22/16 +f 16/5/16 70/6/16 8/5/16 +f 8/5/16 75/9/16 16/5/16 +f 70/6/16 74/22/16 5/6/16 +f 76/19/17 75/9/17 81/20/18 +f 74/22/20 83/23/68 6/4/4 +f 73/22/13 70/6/15 69/4/14 +f 92/24/23 85/57/142 86/55/126 +f 86/55/126 87/25/110 92/24/23 +f 87/25/110 2/1/112 88/25/24 +f 92/24/23 87/25/110 88/25/24 +f 2/1/112 80/1/147 88/25/24 +f 88/25/24 89/55/77 91/24/22 +f 89/55/77 90/57/79 91/24/22 +f 72/19/10 93/21/38 14/20/25 +f 52/26/15 51/45/63 94/27/26 +f 95/29/27 96/29/46 12/8/8 +f 97/30/29 98/30/33 99/31/30 +f 7/10/32 81/20/18 75/9/17 +f 97/30/29 96/29/46 95/29/27 +f 101/27/34 102/45/58 78/26/6 +f 103/32/35 104/32/55 105/33/36 +f 82/21/19 101/27/34 77/28/5 +f 105/33/36 100/31/31 99/31/30 +f 71/28/12 94/27/26 93/21/38 +f 9/7/39 107/48/39 108/49/39 +f 108/49/39 83/23/39 9/7/39 +f 83/23/39 74/22/39 84/23/39 +f 9/7/39 83/23/39 84/23/39 +f 74/22/39 73/22/39 84/23/39 +f 84/23/39 109/49/39 10/7/39 +f 109/49/39 110/48/39 10/7/39 +f 98/30/33 95/29/27 111/34/40 +f 111/34/40 113/37/43 114/36/42 +f 113/37/43 15/10/11 14/20/25 +f 95/29/27 11/8/28 115/38/44 +f 115/38/44 116/39/45 113/37/43 +f 116/39/45 69/4/14 15/10/11 +f 96/29/46 117/34/50 118/38/47 +f 118/38/47 117/34/50 119/37/48 +f 120/39/49 119/37/48 7/10/32 +f 97/30/29 121/35/69 117/34/50 +f 117/34/50 121/35/69 122/36/51 +f 119/37/48 122/36/51 81/20/18 +f 105/33/36 123/43/56 124/40/52 +f 124/40/52 123/43/56 125/41/53 +f 126/42/54 125/41/53 101/27/34 +f 104/32/55 127/46/116 123/43/56 +f 123/43/56 127/46/116 128/44/57 +f 125/41/53 128/44/57 102/45/58 +f 103/32/35 106/33/37 129/43/59 +f 129/43/59 131/41/62 132/44/61 +f 131/41/62 94/27/26 51/45/63 +f 106/33/37 99/31/30 133/47/64 +f 133/47/64 134/42/65 131/41/62 +f 134/42/65 93/21/38 94/27/26 +f 9/7/9 12/8/8 118/38/47 +f 118/38/47 120/39/49 108/49/67 +f 120/39/49 6/4/4 83/23/68 +f 100/31/31 124/40/52 121/35/69 +f 121/35/69 124/40/52 126/42/54 +f 122/36/51 126/42/54 82/21/19 +f 10/7/7 110/48/148 115/38/44 +f 115/38/44 110/48/148 109/49/70 +f 116/39/45 109/49/70 84/23/21 +f 99/31/30 98/30/33 112/35/41 +f 112/35/41 114/36/42 134/42/65 +f 114/36/42 14/20/25 93/21/38 +f 80/1/71 79/70/146 135/50/72 +f 137/52/74 50/60/140 138/53/75 +f 89/55/77 140/170/137 141/56/78 +f 142/58/7 103/32/35 130/46/60 +f 130/46/60 132/44/61 137/52/81 +f 132/44/61 51/45/63 50/60/21 +f 145/62/20 146/142/20 147/63/20 +f 147/63/20 148/64/20 144/61/20 +f 148/64/20 149/83/20 144/61/20 +f 150/64/39 151/65/82 152/65/82 +f 154/66/83 155/67/39 156/67/39 +f 157/68/16 158/69/16 17/69/16 +f 160/68/16 161/68/16 162/69/16 +f 172/130/20 163/105/20 164/14/20 +f 165/120/20 166/123/20 79/70/20 +f 166/123/20 167/167/20 79/70/20 +f 171/15/20 172/130/20 164/14/20 +f 170/125/20 171/15/20 161/68/20 +f 171/15/20 164/14/20 79/70/20 +f 164/14/20 165/120/20 79/70/20 +f 161/68/20 168/72/20 170/125/20 +f 168/72/20 169/111/20 170/125/20 +f 173/71/84 157/68/85 24/68/85 +f 174/72/86 168/72/86 161/68/85 +f 175/73/39 176/74/82 177/74/82 +f 179/75/83 180/73/39 181/73/39 +f 182/76/16 150/64/16 53/64/16 +f 184/76/16 185/76/16 148/64/16 +f 158/69/39 186/11/82 18/11/82 +f 188/77/83 159/69/39 162/69/39 +f 20/13/85 38/82/84 189/82/84 +f 189/82/84 182/76/85 20/13/85 +f 192/78/86 190/13/85 191/78/87 +f 190/13/85 185/76/85 184/76/85 +f 193/79/88 195/162/104 194/80/89 +f 151/65/13 150/64/13 182/76/13 +f 182/76/13 189/82/13 151/65/13 +f 189/82/13 196/141/13 198/81/13 +f 196/141/13 197/16/13 198/81/13 +f 203/61/20 199/83/20 155/67/20 +f 155/67/20 154/66/20 203/61/20 +f 154/66/20 200/152/20 202/62/20 +f 200/152/20 201/142/20 202/62/20 +f 204/83/16 205/67/16 55/67/16 +f 199/83/16 149/83/16 156/67/16 +f 186/11/13 158/69/13 157/68/13 +f 157/68/13 173/71/13 186/11/13 +f 173/71/13 206/133/13 208/84/13 +f 206/133/13 207/132/13 208/84/13 +f 148/64/149 147/63/150 209/85/151 +f 147/63/150 193/79/88 195/162/152 +f 209/85/151 147/63/150 195/162/152 +f 204/83/85 54/83/85 211/86/84 +f 203/61/86 144/61/86 149/83/85 +f 213/87/83 214/88/39 215/88/39 +f 216/88/39 217/89/82 218/89/82 +f 220/90/83 221/91/39 222/91/39 +f 223/92/16 175/73/16 57/73/16 +f 224/92/16 225/92/16 181/73/16 +f 205/67/39 226/93/82 227/93/82 +f 174/72/20 160/68/20 159/69/20 +f 159/69/20 188/77/20 174/72/20 +f 188/77/20 228/151/20 230/94/20 +f 228/151/20 229/132/20 230/94/20 +f 223/92/85 56/92/85 232/95/84 +f 233/96/86 234/96/86 225/92/85 +f 235/91/39 236/97/82 237/97/82 +f 239/98/83 240/99/39 241/99/39 +f 242/100/16 216/88/16 59/88/16 +f 243/100/16 244/100/16 215/88/16 +f 226/93/13 205/67/13 204/83/13 +f 204/83/13 210/86/13 226/93/13 +f 210/86/13 245/134/13 247/101/13 +f 245/134/13 246/142/13 247/101/13 +f 242/100/85 58/100/85 249/102/84 +f 250/103/86 251/103/86 244/100/85 +f 252/99/39 253/104/82 64/104/82 +f 164/14/39 163/105/39 256/14/39 +f 163/105/39 254/106/83 255/106/83 +f 257/107/16 235/91/16 61/91/16 +f 258/107/16 259/107/16 222/91/16 +f 176/74/13 175/73/13 223/92/13 +f 223/92/13 231/95/13 176/74/13 +f 231/95/13 260/135/13 262/108/13 +f 260/135/13 261/143/13 262/108/13 +f 257/107/85 60/107/85 264/109/84 +f 265/110/86 266/110/86 259/107/85 +f 22/111/39 32/125/39 267/125/39 +f 267/125/39 268/17/82 22/111/39 +f 273/113/20 269/120/20 256/14/20 +f 256/14/20 255/106/20 273/113/20 +f 255/106/20 270/154/20 272/112/20 +f 270/154/20 271/139/20 272/112/20 +f 274/114/16 252/99/16 63/99/16 +f 275/114/16 276/114/16 241/99/16 +f 217/89/13 216/88/13 242/100/13 +f 242/100/13 248/102/13 217/89/13 +f 248/102/13 277/144/13 279/115/13 +f 277/144/13 278/145/13 279/115/13 +f 233/96/20 224/92/20 180/73/20 +f 180/73/20 179/75/20 233/96/20 +f 179/75/20 280/153/20 282/116/20 +f 280/153/20 281/143/20 282/116/20 +f 274/114/85 62/114/85 284/117/84 +f 285/118/86 286/118/86 276/114/85 +f 253/104/13 252/99/13 274/114/13 +f 274/114/13 283/117/13 253/104/13 +f 283/117/13 287/137/13 289/119/13 +f 287/137/13 288/140/13 289/119/13 +f 290/120/16 291/14/16 28/14/16 +f 269/120/16 165/120/16 164/14/16 +f 236/97/13 235/91/13 257/107/13 +f 257/107/13 263/109/13 236/97/13 +f 263/109/13 292/136/13 294/121/13 +f 292/136/13 293/146/13 294/121/13 +f 250/103/20 243/100/20 214/88/20 +f 214/88/20 213/87/20 250/103/20 +f 213/87/20 295/156/20 297/122/20 +f 295/156/20 296/145/20 297/122/20 +f 27/120/85 26/123/85 290/120/85 +f 26/123/85 49/124/84 298/124/84 +f 169/111/39 299/158/83 300/158/83 +f 300/158/83 301/125/39 169/111/39 +f 166/123/85 165/120/85 269/120/85 +f 269/120/85 273/113/86 166/123/85 +f 306/127/13 291/14/13 290/120/13 +f 290/120/13 298/124/13 306/127/13 +f 298/124/13 303/138/13 305/126/13 +f 303/138/13 304/139/13 305/126/13 +f 285/118/20 275/114/20 240/99/20 +f 240/99/20 239/98/20 285/118/20 +f 239/98/20 307/157/20 309/128/20 +f 307/157/20 308/140/20 309/128/20 +f 310/15/16 267/125/16 32/125/16 +f 311/15/16 171/15/16 170/125/16 +f 45/127/82 29/105/39 306/127/82 +f 29/105/39 28/14/39 291/14/39 +f 265/110/20 258/107/20 221/91/20 +f 221/91/20 220/90/20 265/110/20 +f 220/90/20 312/150/20 314/129/20 +f 312/150/20 313/146/20 314/129/20 +f 44/148/84 315/148/84 30/130/85 +f 315/148/84 310/15/85 30/130/85 +f 172/130/85 171/15/85 311/15/85 +f 311/15/85 316/131/86 172/130/85 +f 320/81/13 36/16/13 35/142/13 +f 320/81/13 35/142/13 321/134/13 +f 54/83/13 53/64/13 152/65/13 +f 152/65/13 320/81/13 321/134/13 +f 211/86/13 54/83/13 152/65/13 +f 322/101/13 35/142/13 34/143/13 +f 322/101/13 34/143/13 323/135/13 +f 56/92/13 55/67/13 227/93/13 +f 227/93/13 322/101/13 323/135/13 +f 232/95/13 56/92/13 227/93/13 +f 177/74/13 33/108/13 324/144/13 +f 33/108/13 68/145/13 324/144/13 +f 58/100/13 57/73/13 177/74/13 +f 177/74/13 324/144/13 249/102/13 +f 325/115/13 68/145/13 67/146/13 +f 325/115/13 67/146/13 326/136/13 +f 60/107/13 59/88/13 218/89/13 +f 218/89/13 325/115/13 326/136/13 +f 264/109/13 60/107/13 218/89/13 +f 327/121/13 67/146/13 66/140/13 +f 327/121/13 66/140/13 328/137/13 +f 62/114/13 61/91/13 237/97/13 +f 237/97/13 327/121/13 328/137/13 +f 284/117/13 62/114/13 237/97/13 +f 49/124/84 48/138/90 303/138/90 +f 48/138/90 47/139/91 304/139/91 +f 284/117/84 328/137/90 287/137/90 +f 328/137/90 66/140/91 288/140/91 +f 38/82/84 37/141/90 196/141/90 +f 37/141/90 36/16/91 197/16/91 +f 211/86/84 321/134/90 245/134/90 +f 321/134/90 35/142/91 246/142/91 +f 232/95/84 323/135/90 260/135/90 +f 323/135/90 34/143/91 261/143/91 +f 249/102/84 324/144/90 277/144/90 +f 324/144/90 68/145/91 278/145/91 +f 264/109/84 326/136/90 292/136/90 +f 326/136/90 67/146/91 293/146/91 +f 42/147/92 41/18/93 330/18/93 +f 41/18/93 40/17/82 268/17/82 +f 23/71/84 318/133/90 206/133/90 +f 318/133/90 39/132/91 207/132/91 +f 36/16/92 320/81/93 198/81/93 +f 320/81/93 152/65/82 151/65/82 +f 35/142/92 322/101/93 247/101/93 +f 322/101/93 227/93/82 226/93/82 +f 68/145/92 325/115/93 279/115/93 +f 325/115/93 218/89/82 217/89/82 +f 67/146/92 327/121/93 294/121/93 +f 327/121/93 237/97/82 236/97/82 +f 66/140/92 65/119/93 289/119/93 +f 65/119/93 64/104/82 253/104/82 +f 44/148/84 43/149/90 331/149/90 +f 43/149/90 42/147/91 329/147/91 +f 39/132/92 319/84/93 208/84/93 +f 319/84/93 18/11/82 186/11/82 +f 34/143/92 33/108/93 262/108/93 +f 33/108/93 177/74/82 176/74/82 +f 47/139/92 46/126/93 305/126/93 +f 46/126/93 45/127/82 306/127/82 +f 268/17/13 267/125/13 310/15/13 +f 310/15/13 315/148/13 268/17/13 +f 315/148/13 331/149/13 330/18/13 +f 331/149/13 329/147/13 330/18/13 +f 190/13/20 334/151/20 187/77/20 +f 187/77/20 162/69/20 190/13/20 +f 337/143/20 335/152/20 336/116/20 +f 335/152/20 153/66/20 336/116/20 +f 153/66/20 156/67/20 225/92/20 +f 153/66/20 225/92/20 234/96/20 +f 340/145/20 338/153/20 339/122/20 +f 338/153/20 178/75/20 339/122/20 +f 178/75/20 181/73/20 244/100/20 +f 178/75/20 244/100/20 251/103/20 +f 333/132/20 334/151/20 147/63/20 +f 334/151/20 190/13/20 192/78/20 +f 334/151/20 192/78/20 341/160/20 +f 299/158/20 169/111/20 333/132/20 +f 299/158/20 333/132/20 147/63/20 +f 334/151/20 341/160/20 147/63/20 +f 352/159/20 299/158/20 147/63/20 +f 351/147/20 352/159/20 146/142/20 +f 352/159/20 147/63/20 146/142/20 +f 146/142/20 335/152/20 337/143/20 +f 351/147/20 146/142/20 337/143/20 +f 337/143/20 338/153/20 340/145/20 +f 340/145/20 342/156/20 343/146/20 +f 340/145/20 343/146/20 102/45/58 +f 343/146/20 344/140/20 102/45/58 +f 340/145/20 102/45/58 337/143/20 +f 351/147/20 337/143/20 102/45/58 +f 163/105/20 172/130/20 317/131/20 +f 254/106/20 163/105/20 317/131/20 +f 254/106/20 317/131/20 350/155/20 +f 349/154/20 254/106/20 350/155/20 +f 349/154/20 350/155/20 351/147/20 +f 348/139/20 349/154/20 351/147/20 +f 167/167/20 166/123/20 302/113/20 +f 161/68/20 79/70/20 162/69/20 +f 79/70/20 78/26/6 225/92/20 +f 162/69/20 79/70/20 185/76/20 +f 148/64/20 185/76/20 79/70/20 +f 148/64/20 79/70/20 149/83/20 +f 346/60/115 167/167/20 302/113/20 +f 346/60/115 302/113/20 347/112/20 +f 149/83/20 79/70/20 156/67/20 +f 225/92/20 156/67/20 79/70/20 +f 346/60/115 347/112/20 348/139/20 +f 346/60/115 348/139/20 351/147/20 +f 215/88/20 244/100/20 78/26/6 +f 244/100/20 181/73/20 78/26/6 +f 181/73/20 225/92/20 78/26/6 +f 102/45/58 346/60/115 351/147/20 +f 276/114/20 222/91/20 78/26/6 +f 222/91/20 259/107/20 78/26/6 +f 259/107/20 215/88/20 78/26/6 +f 102/45/58 344/140/20 345/157/20 +f 102/45/58 345/157/20 238/98/20 +f 102/45/58 238/98/20 78/26/6 +f 238/98/20 241/99/20 78/26/6 +f 343/146/20 342/156/20 353/129/20 +f 342/156/20 212/87/20 353/129/20 +f 212/87/20 215/88/20 259/107/20 +f 212/87/20 259/107/20 266/110/20 +f 219/90/20 222/91/20 276/114/20 +f 219/90/20 276/114/20 286/118/20 +f 344/140/20 343/146/20 354/150/20 +f 354/150/20 219/90/20 286/118/20 +f 355/128/20 344/140/20 354/150/20 +f 146/142/94 145/62/95 202/62/95 +f 145/62/95 144/61/86 203/61/86 +f 187/77/83 334/151/96 228/151/96 +f 334/151/96 333/132/97 229/132/97 +f 153/66/83 335/152/96 200/152/96 +f 335/152/96 146/142/97 201/142/97 +f 178/75/83 338/153/96 280/153/96 +f 338/153/96 337/143/97 281/143/97 +f 219/90/83 354/150/96 312/150/96 +f 354/150/96 343/146/97 313/146/97 +f 254/106/83 349/154/96 270/154/96 +f 349/154/96 348/139/97 271/139/97 +f 351/147/94 350/155/95 357/155/95 +f 350/155/95 317/131/86 316/131/86 +f 340/145/94 339/122/95 297/122/95 +f 339/122/95 251/103/86 250/103/86 +f 212/87/83 342/156/96 295/156/96 +f 342/156/96 340/145/97 296/145/97 +f 343/146/94 353/129/95 314/129/95 +f 353/129/95 266/110/86 265/110/86 +f 344/140/94 355/128/95 309/128/95 +f 355/128/95 286/118/86 285/118/86 +f 238/98/83 345/157/96 307/157/96 +f 345/157/96 344/140/97 308/140/97 +f 299/158/83 352/159/96 358/159/96 +f 352/159/96 351/147/97 356/147/97 +f 209/85/98 195/162/153 359/161/154 +f 195/162/153 193/79/155 359/161/154 +f 359/161/154 191/78/99 209/85/98 +f 191/78/99 184/76/20 183/64/20 +f 337/143/94 336/116/95 282/116/95 +f 336/116/95 234/96/86 233/96/86 +f 333/132/94 332/94/95 230/94/95 +f 332/94/95 168/72/86 174/72/86 +f 193/79/100 147/63/156 341/160/101 +f 341/160/101 192/78/86 191/78/87 +f 348/139/94 347/112/95 272/112/95 +f 347/112/95 302/113/86 273/113/86 +f 316/131/20 311/15/20 301/125/20 +f 301/125/20 300/158/20 316/131/20 +f 300/158/20 358/159/20 357/155/20 +f 358/159/20 356/147/20 357/155/20 +f 209/85/103 360/163/106 194/80/89 +f 209/85/39 183/64/39 148/64/39 +f 142/58/107 362/164/139 363/164/108 +f 87/25/110 364/169/127 3/51/111 +f 365/59/113 361/58/109 363/164/108 +f 128/44/57 367/52/117 346/60/115 +f 127/46/116 365/59/157 367/52/117 +f 361/58/9 365/59/157 127/46/116 +f 103/32/35 142/58/7 361/58/9 +f 363/164/118 362/164/158 368/166/7 +f 25/167/119 1/3/120 4/2/120 +f 88/25/24 80/1/147 136/51/122 +f 367/52/124 365/59/113 366/165/114 +f 86/55/126 373/170/136 364/169/127 +f 369/166/9 141/56/159 366/165/128 +f 366/165/128 141/56/159 140/170/117 +f 372/54/117 140/170/117 371/169/68 +f 139/54/81 138/53/129 364/169/129 +f 376/165/130 139/54/81 373/170/81 +f 368/166/7 362/164/158 376/165/130 +f 370/168/13 4/2/13 3/51/13 +f 377/168/20 371/169/68 136/51/20 +f 137/52/74 139/54/76 376/165/131 +f 346/60/133 374/53/143 377/168/134 +f 86/55/126 85/57/142 375/56/135 +f 89/55/77 88/25/24 371/169/123 +f 90/57/79 141/56/78 369/166/138 +f 143/59/132 376/165/131 362/164/139 +f 50/60/140 25/167/119 370/168/121 +f 91/24/22 369/166/138 368/166/141 +f 85/57/142 92/24/23 368/166/141 +f 367/52/124 372/54/125 374/53/143 +f 167/167/134 377/168/134 135/50/144 +s 0 +f 379/171/85 381/172/85 378/171/85 +f 380/172/160 383/173/160 384/174/160 +f 382/175/39 385/175/39 388/176/39 +f 387/177/161 386/177/161 389/178/161 +f 382/175/20 378/171/20 381/172/20 +f 379/171/13 390/178/13 391/179/13 +f 379/171/85 380/172/85 381/172/85 +f 385/175/16 382/175/16 384/174/16 +f 382/175/16 381/172/16 384/174/16 +f 381/172/16 380/172/16 384/174/16 +f 388/176/39 386/177/39 387/177/39 +f 387/177/39 382/175/39 388/176/39 +f 390/178/161 379/171/161 389/178/161 +f 379/171/161 378/171/161 389/178/161 +f 378/171/161 387/177/161 389/178/161 +f 382/175/20 387/177/20 378/171/20 +f 391/179/13 383/173/13 380/172/13 +f 380/172/13 379/171/13 391/179/13 s 1 -f 690/689/385 692/690/386 689/691/385 -f 691/692/386 694/693/387 692/690/386 -f 693/694/387 696/695/388 694/693/387 -f 695/696/388 698/697/389 696/695/388 -f 697/698/389 700/699/390 698/697/389 -f 699/700/390 702/701/391 700/699/390 -f 701/702/392 697/698/392 693/694/392 -f 701/702/391 704/703/393 702/701/391 -f 703/704/393 689/691/385 704/703/393 -f 700/699/394 702/701/394 704/703/394 -f 690/689/385 691/692/386 692/690/386 -f 691/692/386 693/694/387 694/693/387 -f 693/694/387 695/696/388 696/695/388 -f 695/696/388 697/698/389 698/697/389 -f 697/698/389 699/700/390 700/699/390 -f 699/700/390 701/702/391 702/701/391 -f 693/694/392 691/692/392 690/689/392 -f 690/689/392 703/704/392 701/702/392 -f 701/702/392 699/700/392 697/698/392 -f 697/698/392 695/696/392 693/694/392 -f 693/694/392 690/689/392 701/702/392 -f 701/702/391 703/704/393 704/703/393 -f 703/704/393 690/689/385 689/691/385 -f 704/703/394 689/691/394 692/690/394 -f 692/690/394 694/693/394 704/703/394 -f 694/693/394 696/695/394 704/703/394 -f 696/695/394 698/697/394 704/703/394 -f 698/697/394 700/699/394 704/703/394 -o Cylinder.005 -v 1.793664 0.315957 0.000612 -v 1.874918 0.315957 0.000612 -v 1.874919 0.278978 -0.088663 -v 1.793664 0.278978 -0.088663 -v 1.874919 0.189702 -0.125642 -v 1.793664 0.189702 -0.125642 -v 1.874919 0.100427 -0.088663 -v 1.793664 0.100427 -0.088663 -v 1.874919 0.063448 0.000612 -v 1.793664 0.063448 0.000612 -v 1.874918 0.100427 0.089888 -v 1.793664 0.100427 0.089888 -v 1.874918 0.189702 0.126867 -v 1.793664 0.189702 0.126867 -v 1.874918 0.278978 0.089888 -v 1.793664 0.278978 0.089888 -vt 0.771627 0.571391 -vt 0.747191 0.560270 -vt 0.747191 0.571391 -vt 0.771627 0.560270 -vt 0.747191 0.533421 -vt 0.771627 0.533421 -vt 0.747191 0.506573 -vt 0.771627 0.506573 -vt 0.747191 0.495452 -vt 0.771627 0.506573 -vt 0.747191 0.506573 -vt 0.747191 0.533421 -vt 0.771627 0.533421 -vt 0.771627 0.495452 -vt 0.747191 0.560270 -vt 0.771627 0.560270 -vn 0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -1.0000 0.0000 0.0000 -s 1 -f 706/705/395 708/706/396 705/707/395 -f 707/708/396 710/709/397 708/706/396 -f 709/710/397 712/711/398 710/709/397 -f 711/712/398 714/713/399 712/711/398 -f 714/713/399 715/714/400 716/715/400 -f 715/714/400 718/716/401 716/715/400 -f 717/717/402 713/718/402 709/710/402 -f 717/717/401 720/719/403 718/716/401 -f 719/720/403 705/707/395 720/719/403 -f 716/715/404 718/716/404 720/719/404 -f 706/705/395 707/708/396 708/706/396 -f 707/708/396 709/710/397 710/709/397 -f 709/710/397 711/712/398 712/711/398 -f 711/712/398 713/718/399 714/713/399 -f 714/713/399 713/718/399 715/714/400 -f 715/714/400 717/717/401 718/716/401 -f 709/710/402 707/708/402 706/705/402 -f 706/705/402 719/720/402 717/717/402 -f 717/717/402 715/714/402 713/718/402 -f 713/718/402 711/712/402 709/710/402 -f 709/710/402 706/705/402 717/717/402 -f 717/717/401 719/720/403 720/719/403 -f 719/720/403 706/705/395 705/707/395 -f 720/719/404 705/707/404 708/706/404 -f 708/706/404 710/709/404 720/719/404 -f 710/709/404 712/711/404 720/719/404 -f 712/711/404 714/713/404 720/719/404 -f 714/713/404 716/715/404 720/719/404 -o Cylinder.004 -v 1.646873 0.577354 0.000612 -v 1.749518 0.577354 0.000612 -v 1.749518 0.539888 -0.089839 -v 1.646873 0.539888 -0.089839 -v 1.749518 0.449436 -0.127305 -v 1.646873 0.449436 -0.127305 -v 1.749518 0.358985 -0.089839 -v 1.646873 0.358985 -0.089839 -v 1.749518 0.321519 0.000612 -v 1.646873 0.321519 0.000612 -v 1.749518 0.358985 0.091064 -v 1.646873 0.358985 0.091064 -v 1.749518 0.449436 0.128530 -v 1.646873 0.449436 0.128530 -v 1.749518 0.539888 0.091064 -v 1.646873 0.539888 0.091064 -vt 0.729032 0.553323 -vt 0.698162 0.542055 -vt 0.698162 0.553323 -vt 0.729032 0.542055 -vt 0.698162 0.514853 -vt 0.729032 0.514853 -vt 0.698162 0.487651 -vt 0.729032 0.487651 -vt 0.698162 0.476384 -vt 0.729032 0.476384 -vt 0.698162 0.487651 -vt 0.729032 0.487651 -vt 0.698162 0.514853 -vt 0.729032 0.514853 -vt 0.698162 0.542055 -vt 0.729032 0.542055 -vn 0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -1.0000 0.0000 0.0000 -s 1 -f 722/721/405 724/722/406 721/723/405 -f 723/724/406 726/725/407 724/722/406 -f 725/726/407 728/727/408 726/725/407 -f 727/728/408 730/729/409 728/727/408 -f 729/730/409 732/731/410 730/729/409 -f 731/732/410 734/733/411 732/731/410 -f 733/734/412 729/730/412 725/726/412 -f 733/734/411 736/735/413 734/733/411 -f 735/736/413 721/723/405 736/735/413 -f 734/733/414 736/735/414 728/727/414 -f 722/721/405 723/724/406 724/722/406 -f 723/724/406 725/726/407 726/725/407 -f 725/726/407 727/728/408 728/727/408 -f 727/728/408 729/730/409 730/729/409 -f 729/730/409 731/732/410 732/731/410 -f 731/732/410 733/734/411 734/733/411 -f 725/726/412 723/724/412 722/721/412 -f 722/721/412 735/736/412 733/734/412 -f 733/734/412 731/732/412 729/730/412 -f 729/730/412 727/728/412 725/726/412 -f 725/726/412 722/721/412 733/734/412 -f 733/734/411 735/736/413 736/735/413 -f 735/736/413 722/721/405 721/723/405 -f 736/735/414 721/723/414 728/727/414 -f 721/723/414 724/722/414 728/727/414 -f 724/722/414 726/725/414 728/727/414 -f 728/727/414 730/729/414 732/731/414 -f 732/731/414 734/733/414 728/727/414 -o Cylinder.003 -v 1.870045 0.577354 0.000612 -v 2.097808 0.577354 0.000612 -v 2.097808 0.539888 -0.089839 -v 1.870045 0.539888 -0.089839 -v 2.097808 0.449436 -0.127305 -v 1.870045 0.449436 -0.127305 -v 2.097808 0.358985 -0.089839 -v 1.870045 0.358985 -0.089839 -v 2.097808 0.321519 0.000612 -v 1.870045 0.321519 0.000612 -v 2.097808 0.358985 0.091064 -v 1.870045 0.358985 0.091064 -v 2.097808 0.449436 0.128530 -v 1.870045 0.449436 0.128530 -v 2.097808 0.523628 0.074804 -v 2.097808 0.539888 0.091064 -v 2.097808 0.344513 0.000612 -v 2.097808 0.375244 0.074804 -v 2.097808 0.449436 0.105535 -v 2.097808 0.554359 0.000612 -v 2.097808 0.523628 -0.073580 -v 2.097808 0.449436 -0.104311 -v 2.097808 0.375244 -0.073580 -v 1.870045 0.539888 0.091064 -v 1.870045 0.344513 0.000612 -v 1.870045 0.523628 0.074804 -v 1.870045 0.449436 0.105535 -v 1.870045 0.375244 0.074804 -v 1.870045 0.375244 -0.073580 -v 1.870045 0.449436 -0.104311 -v 1.870045 0.523628 -0.073580 -v 1.870045 0.554359 0.000612 -vt 0.782994 0.575784 -vt 0.714498 0.564516 -vt 0.714498 0.575784 -vt 0.782994 0.564516 -vt 0.714498 0.537314 -vt 0.782994 0.537314 -vt 0.714498 0.510112 -vt 0.782994 0.510112 -vt 0.714498 0.498845 -vt 0.782994 0.498845 -vt 0.714498 0.510112 -vt 0.782994 0.510112 -vt 0.714498 0.537314 -vt 0.782994 0.537314 -vt 0.782994 0.537314 -vt 0.782994 0.559627 -vt 0.782994 0.537314 -vt 0.714498 0.564516 -vt 0.782994 0.564516 -vt 0.714498 0.537314 -vt 0.714498 0.515002 -vt 0.714498 0.559627 -vt 0.714498 0.568869 -vt 0.714498 0.537314 -vt 0.714498 0.515002 -vt 0.782994 0.515002 -vt 0.714498 0.505760 -vt 0.782994 0.505760 -vt 0.782994 0.515002 -vt 0.782994 0.559627 -vt 0.714498 0.559627 -vt 0.782994 0.568869 -vn 0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -1.0000 0.0000 0.0000 -s 1 -f 738/737/415 740/738/416 737/739/415 -f 739/740/416 742/741/417 740/738/416 -f 741/742/417 744/743/418 742/741/417 -f 743/744/418 746/745/419 744/743/418 -f 745/746/419 748/747/420 746/745/419 -f 747/748/420 750/749/421 748/747/420 -f 749/750/422 747/748/422 755/751/422 -f 757/752/422 758/753/422 741/742/422 -f 749/750/421 760/754/423 750/749/421 -f 752/755/423 737/739/415 760/754/423 -f 763/756/424 764/757/424 748/747/424 -f 740/738/424 742/741/424 767/758/424 -f 757/752/420 768/759/419 767/758/420 -f 757/752/420 766/760/421 758/753/421 -f 758/753/421 765/761/423 759/762/423 -f 759/762/423 761/763/415 753/764/415 -f 753/764/415 764/757/416 754/765/416 -f 755/751/417 764/757/416 763/756/417 -f 751/766/418 763/756/417 762/767/418 -f 756/768/419 762/767/418 768/759/419 -f 738/737/415 739/740/416 740/738/416 -f 739/740/416 741/742/417 742/741/417 -f 741/742/417 743/744/418 744/743/418 -f 743/744/418 745/746/419 746/745/419 -f 745/746/419 747/748/420 748/747/420 -f 747/748/420 749/750/421 750/749/421 -f 755/751/422 751/766/422 749/750/422 -f 751/766/422 752/755/422 749/750/422 -f 747/748/422 745/746/422 754/765/422 -f 745/746/422 753/764/422 754/765/422 -f 747/748/422 754/765/422 755/751/422 -f 759/762/422 753/764/422 745/746/422 -f 738/737/422 752/755/422 751/766/422 -f 738/737/422 751/766/422 756/768/422 -f 759/762/422 745/746/422 743/744/422 -f 758/753/422 759/762/422 741/742/422 -f 759/762/422 743/744/422 741/742/422 -f 739/740/422 738/737/422 756/768/422 -f 739/740/422 756/768/422 757/752/422 -f 739/740/422 757/752/422 741/742/422 -f 749/750/421 752/755/423 760/754/423 -f 752/755/423 738/737/415 737/739/415 -f 764/757/424 761/763/424 746/745/424 -f 750/749/424 760/754/424 762/767/424 -f 750/749/424 762/767/424 763/756/424 -f 764/757/424 746/745/424 748/747/424 -f 750/749/424 763/756/424 748/747/424 -f 762/767/424 760/754/424 737/739/424 -f 744/743/424 746/745/424 765/761/424 -f 746/745/424 761/763/424 765/761/424 -f 768/759/424 762/767/424 737/739/424 -f 767/758/424 768/759/424 740/738/424 -f 768/759/424 737/739/424 740/738/424 -f 742/741/424 744/743/424 765/761/424 -f 742/741/424 765/761/424 766/760/424 -f 742/741/424 766/760/424 767/758/424 -f 757/752/420 756/768/419 768/759/419 -f 757/752/420 767/758/420 766/760/421 -f 758/753/421 766/760/421 765/761/423 -f 759/762/423 765/761/423 761/763/415 -f 753/764/415 761/763/415 764/757/416 -f 755/751/417 754/765/416 764/757/416 -f 751/766/418 755/751/417 763/756/417 -f 756/768/419 751/766/418 762/767/418 -o Cylinder.001 -v -0.200670 0.307371 0.000612 -v 1.799330 0.307371 0.000612 -v 1.799330 0.272907 -0.082592 -v -0.200670 0.272906 -0.082592 -v 1.799330 0.189702 -0.117056 -v -0.200670 0.189702 -0.117056 -v 1.799330 0.106498 -0.082592 -v -0.200670 0.106498 -0.082592 -v 1.799330 0.072034 0.000612 -v -0.200670 0.072034 0.000612 -v 1.799330 0.106498 0.083817 -v -0.200670 0.106498 0.083816 -v 1.799330 0.189702 0.118281 -v -0.200670 0.189702 0.118281 -v 1.799330 0.272906 0.083817 -v -0.200670 0.272906 0.083816 -vt 0.743036 0.769004 -vt 0.141560 0.758639 -vt 0.141560 0.769004 -vt 0.743036 0.758639 -vt 0.141560 0.733616 -vt 0.743036 0.733616 -vt 0.141560 0.708594 -vt 0.743036 0.708594 -vt 0.141560 0.698229 -vt 0.743036 0.698229 -vt 0.141560 0.708594 -vt 0.743036 0.708594 -vt 0.141560 0.733616 -vt 0.743036 0.733617 -vt 0.141560 0.758639 -vt 0.743036 0.758639 -vn 0.6303 0.7764 0.0000 -vn -0.6303 0.5490 -0.5490 -vn -0.6303 0.7764 0.0000 -vn 0.6303 0.5490 -0.5490 -vn -0.6303 0.0000 -0.7764 -vn 0.6303 -0.0000 -0.7764 -vn -0.6303 -0.5490 -0.5490 -vn 0.6303 -0.5490 -0.5490 -vn -0.6303 -0.7764 0.0000 -vn 0.6303 -0.7764 -0.0000 -vn -0.6303 -0.5490 0.5490 -vn 0.6303 -0.5490 0.5490 -vn -0.6303 0.0000 0.7764 -vn 0.6303 -0.0000 0.7764 -vn -0.6303 0.5490 0.5490 -vn 0.6303 0.5490 0.5490 -s 1 -f 770/769/425 772/770/426 769/771/427 -f 771/772/428 774/773/429 772/770/426 -f 773/774/430 776/775/431 774/773/429 -f 775/776/432 778/777/433 776/775/431 -f 777/778/434 780/779/435 778/777/433 -f 779/780/436 782/781/437 780/779/435 -f 781/782/438 777/778/434 773/774/430 -f 781/782/438 784/783/439 782/781/437 -f 784/783/439 770/769/425 769/771/427 -f 780/779/435 782/781/437 784/783/439 -f 770/769/425 771/772/428 772/770/426 -f 771/772/428 773/774/430 774/773/429 -f 773/774/430 775/776/432 776/775/431 -f 775/776/432 777/778/434 778/777/433 -f 777/778/434 779/780/436 780/779/435 -f 779/780/436 781/782/438 782/781/437 -f 773/774/430 771/772/428 770/769/425 -f 770/769/425 783/784/440 773/774/430 -f 783/784/440 781/782/438 773/774/430 -f 781/782/438 779/780/436 777/778/434 -f 777/778/434 775/776/432 773/774/430 -f 781/782/438 783/784/440 784/783/439 -f 784/783/439 783/784/440 770/769/425 -f 784/783/439 769/771/427 772/770/426 -f 772/770/426 774/773/429 784/783/439 -f 774/773/429 776/775/431 784/783/439 -f 776/775/431 778/777/433 784/783/439 -f 778/777/433 780/779/435 784/783/439 -o Cylinder -v -0.093059 0.567105 0.000612 -v 1.906941 0.567105 0.000612 -v 1.906941 0.532640 -0.082592 -v -0.093059 0.532640 -0.082592 -v 1.906941 0.449436 -0.117056 -v -0.093059 0.449436 -0.117056 -v 1.906941 0.366232 -0.082592 -v -0.093059 0.366232 -0.082592 -v 1.906941 0.331768 0.000612 -v -0.093059 0.331768 0.000612 -v 1.906941 0.366232 0.083817 -v -0.093059 0.366232 0.083816 -v 1.906941 0.449436 0.118281 -v -0.093059 0.449436 0.118281 -v 1.906941 0.532640 0.083817 -v -0.093059 0.532640 0.083816 -vt 0.766609 0.756295 -vt 0.165134 0.745931 -vt 0.165134 0.756295 -vt 0.766609 0.745931 -vt 0.165134 0.720908 -vt 0.766609 0.720908 -vt 0.165134 0.695885 -vt 0.766609 0.695885 -vt 0.165134 0.685521 -vt 0.766609 0.685521 -vt 0.165134 0.695885 -vt 0.766609 0.695885 -vt 0.165134 0.720908 -vt 0.766609 0.720908 -vt 0.165134 0.745931 -vt 0.766609 0.745931 +f 393/180/162 395/181/163 392/182/164 +f 392/182/164 397/183/165 393/180/162 +f 396/184/166 399/185/167 397/183/165 +f 401/186/13 398/187/168 400/188/13 +f 403/189/169 405/190/170 402/191/171 +f 406/192/172 402/191/171 405/190/170 +f 408/193/173 388/176/173 385/175/174 +f 410/188/20 389/178/20 386/177/20 +f 400/188/161 409/186/161 401/186/161 +f 394/194/175 403/189/176 395/181/177 +f 393/180/39 406/192/39 405/190/39 +f 392/182/178 407/195/179 396/184/180 +f 397/183/39 408/193/39 406/192/39 +f 383/173/181 391/179/182 398/187/183 +f 398/187/183 391/179/182 390/178/85 +f 401/186/39 408/193/39 399/185/39 +f 395/181/177 402/191/184 392/182/178 +f 394/194/39 405/190/39 404/196/39 +f 393/180/162 394/194/163 395/181/163 +f 392/182/164 396/184/166 397/183/165 +f 396/184/166 398/187/168 399/185/167 +f 401/186/13 399/185/167 398/187/168 +f 403/189/169 404/196/185 405/190/170 +f 406/192/172 407/195/186 402/191/171 +f 385/175/174 384/174/187 407/195/186 +f 407/195/186 406/192/172 385/175/174 +f 406/192/172 408/193/173 385/175/174 +f 388/176/173 408/193/173 386/177/20 +f 408/193/173 409/186/20 386/177/20 +f 409/186/20 410/188/20 386/177/20 +f 400/188/161 410/188/161 409/186/161 +f 394/194/175 404/196/175 403/189/176 +f 393/180/39 397/183/39 406/192/39 +f 392/182/178 402/191/184 407/195/179 +f 397/183/39 399/185/39 408/193/39 +f 398/187/183 396/184/180 383/173/181 +f 396/184/180 407/195/179 383/173/181 +f 407/195/179 384/174/188 383/173/181 +f 389/178/85 410/188/85 390/178/85 +f 410/188/85 400/188/85 390/178/85 +f 400/188/85 398/187/183 390/178/85 +f 401/186/39 409/186/39 408/193/39 +f 395/181/177 403/189/176 402/191/184 +f 394/194/39 393/180/39 405/190/39 +o Body +v 0.100627 0.078364 0.288131 +v 0.100627 0.190299 0.398224 +v -0.099403 0.190299 0.398224 +v -0.099403 0.078364 0.288131 +v -0.081922 0.078364 0.288131 +v -0.081922 0.188950 0.396897 +v 0.083147 0.188950 0.396897 +v 0.083147 0.078364 0.288131 +v 0.100627 0.190299 0.189154 +v -0.099403 0.190299 0.189154 +v 0.100627 0.078364 0.189154 +v -0.099403 0.078364 0.189154 +v 0.083147 0.078364 0.246637 +v -0.081922 0.078364 0.246637 +v -0.081922 0.188950 0.246637 +v 0.083147 0.188950 0.246637 +v 0.139055 0.234647 1.316254 +v 0.148771 0.234647 1.316254 +v 0.148771 0.312137 1.316254 +v 0.139055 0.312137 1.316254 +v 0.148771 0.312137 0.330263 +v 0.139055 0.312137 0.330263 +v 0.148771 0.234647 0.330263 +v 0.139055 0.234647 0.330263 +v -0.152849 0.339450 1.361672 +v -0.152849 0.236034 1.361672 +v -0.137831 0.236034 1.361672 +v -0.137831 0.339450 1.361672 +v -0.152849 0.339450 0.429618 +v -0.137831 0.339450 0.429618 +v -0.152849 0.236034 0.429618 +v -0.152849 0.339450 0.307960 +v -0.152849 0.236034 0.307960 +v -0.137831 0.236034 0.429618 +v -0.137831 0.236034 0.307960 +v -0.137831 0.339450 0.307960 +v -0.152849 0.470230 0.429618 +v -0.152849 0.470230 0.307960 +v -0.137831 0.470230 0.429618 +v -0.137831 0.470230 0.307960 +v 0.139055 0.184312 0.204392 +v 0.139055 0.062676 0.204784 +v 0.139055 0.064132 0.029043 +v 0.139055 0.474619 0.027466 +v 0.139055 0.474619 0.202227 +v 0.139055 0.408506 0.202227 +v 0.139055 0.386874 0.206744 +v 0.139055 0.371302 0.223773 +v 0.139055 0.367172 0.247428 +v 0.139055 0.408506 0.760419 +v 0.139055 0.474619 0.760419 +v 0.139055 0.474619 1.160748 +v 0.139055 0.476751 1.212867 +v 0.139055 0.523317 1.554436 +v 0.139055 0.470462 1.584164 +v 0.139055 0.182561 1.584164 +v 0.139055 0.367172 0.715218 +v 0.139055 0.371302 0.738873 +v 0.139055 0.386874 0.755902 +v 0.079700 0.592632 1.193615 +v -0.078476 0.592632 1.193615 +v -0.078476 0.587917 1.343072 +v 0.079700 0.587917 1.343072 +v -0.137831 0.182561 1.584164 +v -0.137831 0.470462 1.584164 +v -0.137831 0.523317 1.554436 +v -0.137831 0.476751 1.212867 +v -0.137831 0.474619 1.160748 +v -0.137831 0.474619 0.027466 +v -0.137831 0.064132 0.029043 +v -0.137831 0.062676 0.204784 +v -0.137831 0.184312 0.204392 +v -0.078476 0.568125 1.469775 +v 0.079700 0.568125 1.469775 +v 0.121671 0.555001 1.494572 +v 0.102414 0.564714 1.476220 +v -0.101190 0.564714 1.476220 +v -0.120446 0.555001 1.494572 +v -0.133313 0.540464 1.522038 +v 0.134537 0.540464 1.522038 +v 0.079700 0.592632 0.027466 +v -0.078476 0.592632 0.027466 +v 0.134537 0.519780 1.173326 +v 0.134537 0.519292 1.262694 +v 0.121671 0.558066 1.183989 +v 0.121671 0.555357 1.304936 +v 0.102414 0.583648 1.191113 +v 0.102414 0.579455 1.333161 +v -0.133313 0.519292 1.262694 +v -0.133313 0.519780 1.173326 +v -0.120446 0.555357 1.304936 +v -0.120446 0.558066 1.183989 +v -0.101190 0.579455 1.333161 +v -0.101190 0.583648 1.191113 +v -0.101190 0.583648 0.027466 +v -0.120446 0.558066 0.027466 +v -0.133313 0.519780 0.027466 +v 0.135374 0.511418 0.202227 +v 0.134537 0.519780 0.027466 +v 0.134537 0.519780 0.203973 +v 0.135374 0.511418 0.760419 +v 0.134537 0.519780 0.758673 +v 0.130078 0.533050 0.206744 +v 0.121671 0.558066 0.027466 +v 0.130078 0.533050 0.755902 +v 0.124844 0.548622 0.738873 +v 0.123456 0.552752 0.715218 +v 0.123456 0.552752 0.247428 +v 0.124844 0.548622 0.223773 +v 0.102414 0.583648 0.027466 +v 0.006857 0.386874 0.206744 +v 0.006857 0.371302 0.223773 +v 0.006857 0.371302 0.738873 +v 0.006857 0.386874 0.755902 +v 0.006857 0.367172 0.247428 +v 0.006857 0.367172 0.715218 +v -0.012342 0.524577 0.649440 +v -0.012342 0.510011 0.652482 +v -0.012342 0.409913 0.652482 +v -0.012342 0.395347 0.649440 +v -0.012342 0.395347 0.313206 +v -0.012342 0.409913 0.310165 +v -0.012342 0.510011 0.310165 +v -0.012342 0.524577 0.313206 +v 0.006857 0.533050 0.755902 +v 0.006857 0.511418 0.760419 +v 0.006857 0.408506 0.760419 +v 0.006857 0.548622 0.738873 +v 0.006857 0.408506 0.202227 +v 0.006857 0.552752 0.715218 +v 0.006857 0.548622 0.223773 +v 0.006857 0.533050 0.206744 +v 0.006857 0.552752 0.247428 +v 0.006857 0.511418 0.202227 +v -0.007431 0.376935 0.253872 +v -0.007431 0.376935 0.708774 +v -0.007431 0.378372 0.717005 +v -0.007431 0.389041 0.233974 +v -0.007431 0.408866 0.229835 +v -0.007431 0.378372 0.245641 +v -0.007431 0.511059 0.229835 +v -0.007431 0.530883 0.233974 +v -0.007431 0.541552 0.245641 +v -0.007431 0.541552 0.717005 +v -0.007431 0.530883 0.728672 +v -0.007431 0.389041 0.728672 +v -0.007431 0.408866 0.732811 +v -0.007431 0.511059 0.732811 +v -0.007431 0.542989 0.708774 +v -0.007431 0.542989 0.253872 +v -0.054842 0.212030 1.578045 +v 0.057698 0.212030 1.578045 +v 0.057698 0.212030 0.861955 +v -0.054842 0.212030 0.861955 +v -0.054842 0.203298 1.578045 +v 0.057698 0.203298 1.578045 +v 0.057698 0.027130 1.128281 +v -0.054842 0.027130 1.128281 +v -0.054842 0.065059 1.114436 +v 0.057698 0.065059 1.114436 +v -0.054842 0.065231 1.454635 +v 0.057698 0.065231 1.454635 +v 0.057698 0.118060 1.481781 +v -0.054842 0.118060 1.481781 +v 0.057698 0.168281 1.527702 +v -0.054842 0.168281 1.527702 +v 0.057698 0.202811 0.861955 +v -0.054842 0.202811 0.861955 +v -0.054842 0.044421 1.450844 +v 0.057698 0.044421 1.450844 +v -0.054842 0.121520 1.062335 +v 0.057698 0.121520 1.062335 +v -0.054842 0.167855 0.962640 +v 0.057698 0.167855 0.962640 +v -0.054842 0.124782 1.074680 +v -0.054842 0.065837 1.125464 +v -0.054842 0.116276 1.125464 +v -0.054842 0.139630 1.130869 +v -0.054842 0.141171 1.121683 +v -0.054842 0.127160 1.115880 +v -0.054842 0.117438 1.092410 +v -0.054842 0.150630 1.125601 +v -0.054842 0.159885 1.148853 +v -0.054842 0.171886 1.174411 +v -0.054842 0.174873 1.206501 +v -0.054842 0.174873 1.364767 +v -0.054842 0.171886 1.396858 +v -0.054842 0.159885 1.422416 +v -0.054842 0.139630 1.440399 +v -0.054842 0.116276 1.445804 +v -0.054842 0.065837 1.445804 +v -0.054842 0.127160 1.068940 +v -0.054842 0.150630 1.059218 +v -0.054842 0.174100 1.068940 +v -0.054842 0.183821 1.092410 +v -0.054842 0.174100 1.115880 +v -0.054842 0.003110 1.144751 +v -0.054842 -0.005077 1.181248 +v -0.054842 -0.003671 1.396052 +v -0.054842 0.014101 1.435488 +v -0.054842 0.042483 1.440399 +v -0.054842 0.022228 1.422416 +v -0.054842 0.010226 1.396858 +v -0.054842 0.007240 1.364767 +v -0.054842 0.007240 1.206501 +v -0.054842 0.010226 1.174411 +v -0.054842 0.022228 1.148853 +v -0.054842 0.042483 1.130869 +v 0.057698 -0.005077 1.181248 +v 0.057698 0.003110 1.144751 +v 0.057698 0.014101 1.435488 +v 0.057698 -0.003671 1.396052 +v 0.057698 0.042483 1.440399 +v 0.057698 0.065837 1.445804 +v 0.057698 0.065837 1.125464 +v 0.057698 0.042483 1.130869 +v 0.057698 0.022228 1.148853 +v 0.057698 0.010226 1.174411 +v 0.057698 0.007240 1.206501 +v 0.057698 0.007240 1.364767 +v 0.057698 0.010226 1.396858 +v 0.057698 0.022228 1.422416 +v 0.057698 0.141171 1.121683 +v 0.057698 0.139630 1.130869 +v 0.057698 0.116276 1.125464 +v 0.057698 0.124782 1.074680 +v 0.057698 0.117438 1.092410 +v 0.057698 0.127160 1.115880 +v 0.057698 0.127160 1.068940 +v 0.057698 0.116276 1.445804 +v 0.057698 0.139630 1.440399 +v 0.057698 0.159885 1.422416 +v 0.057698 0.171886 1.396858 +v 0.057698 0.174873 1.364767 +v 0.057698 0.174873 1.206501 +v 0.057698 0.171886 1.174411 +v 0.057698 0.159885 1.148853 +v 0.057698 0.150630 1.125601 +v 0.057698 0.174100 1.115880 +v 0.057698 0.183821 1.092410 +v 0.057698 0.174100 1.068940 +v 0.057698 0.150630 1.059218 +v -0.054925 0.577098 1.092482 +v 0.056150 0.577098 1.092482 +v 0.056150 0.603150 1.092482 +v -0.054925 0.603150 1.092482 +v -0.054925 0.627935 0.448868 +v -0.054925 0.603150 0.448868 +v 0.056150 0.603150 0.448868 +v 0.056150 0.627935 0.448868 +v 0.025312 0.627935 0.448868 +v 0.000612 0.603235 0.448868 +v -0.024087 0.627935 0.448868 +v -0.054925 0.603150 0.419549 +v 0.056150 0.603150 0.419549 +v 0.056150 0.577098 0.419549 +v -0.054925 0.577098 0.419549 +v -0.054925 0.577098 0.448868 +v 0.056150 0.577098 0.448868 +v 0.056150 0.627935 0.419549 +v 0.025312 0.627935 0.419549 +v -0.054925 0.627935 0.419549 +v -0.024087 0.627935 0.419549 +v 0.000612 0.603235 0.419549 +v -0.054357 0.183821 1.092410 +v 0.062757 0.183821 1.092410 +v 0.062757 0.174100 1.068940 +v -0.054357 0.174100 1.068940 +v 0.062757 0.150630 1.059218 +v -0.054357 0.150630 1.059218 +v 0.062757 0.127160 1.068940 +v -0.054357 0.127160 1.068940 +v 0.062757 0.117438 1.092410 +v -0.054357 0.117438 1.092410 +v 0.062757 0.127160 1.115880 +v -0.054357 0.127160 1.115880 +v 0.062757 0.150630 1.125601 +v -0.054357 0.150630 1.125601 +v 0.062757 0.174100 1.115880 +v -0.054357 0.174100 1.115880 +v -0.152938 0.517962 1.538719 +v -0.137431 0.544138 1.539156 +v -0.095064 0.563301 1.539476 +v -0.037191 0.570315 1.539593 +v 0.038415 0.570315 1.539593 +v 0.096289 0.563301 1.539476 +v 0.138655 0.544138 1.539156 +v 0.154162 0.517962 1.538719 +v 0.154162 0.227849 1.533876 +v -0.152938 0.227849 1.533876 +v 0.012483 0.109525 2.094905 +v -0.011259 0.109525 2.094905 +v -0.011259 0.036699 2.150966 +v 0.012483 0.036699 2.150966 +v 0.012483 0.187910 2.023875 +v -0.011259 0.187910 2.023875 +v 0.012483 -0.213929 2.264097 +v 0.012483 -0.203596 2.264255 +v -0.011259 -0.203596 2.264255 +v -0.011259 -0.213929 2.264097 +v 0.013017 0.059583 1.797079 +v -0.011793 0.059583 1.797079 +v -0.011892 0.100282 1.765046 +v 0.013116 0.100282 1.765046 +v -0.088740 0.447951 1.762607 +v -0.077230 0.429221 1.760241 +v -0.014565 0.430912 1.762832 +v -0.023152 0.457644 1.766291 +v 0.012483 0.250853 1.956909 +v 0.012483 0.360493 1.799493 +v -0.011259 0.360493 1.799493 +v -0.011259 0.250853 1.956909 +v 0.012483 -0.130294 2.241662 +v -0.011259 -0.130294 2.241662 +v -0.011259 -0.152255 2.252959 +v 0.012483 -0.152255 2.252959 +v 0.012483 -0.179086 2.261228 +v -0.011259 -0.179086 2.261228 +v 0.012483 0.376760 1.785496 +v -0.011259 0.376760 1.785496 +v -0.111561 -0.183903 1.955881 +v -0.069363 -0.185223 1.935984 +v -0.069363 -0.185223 1.924661 +v -0.111561 -0.183903 1.944557 +v 0.096289 0.462296 1.755752 +v 0.096289 0.501026 1.692113 +v 0.038415 0.485570 1.734405 +v 0.038415 0.470835 1.758670 +v 0.012961 0.021307 1.820971 +v -0.011736 0.021307 1.820971 +v 0.011434 0.413383 1.766037 +v -0.011069 0.413356 1.766043 +v 0.038415 0.510485 1.688728 +v 0.038415 0.535784 1.634369 +v -0.037191 0.535784 1.634369 +v -0.037191 0.510485 1.688728 +v -0.037191 0.485570 1.734405 +v 0.141134 0.380985 1.735899 +v 0.148146 0.393971 1.738122 +v 0.132688 0.425226 1.752230 +v 0.124334 0.410947 1.750383 +v -0.018635 0.194290 1.607360 +v 0.019860 0.194290 1.607360 +v 0.019117 0.188526 1.641579 +v 0.000612 0.188526 1.641579 +v -0.017893 0.188526 1.641579 +v -0.012042 0.132498 1.733455 +v 0.013266 0.132498 1.733455 +v 0.013479 0.155364 1.707226 +v -0.012254 0.155364 1.707226 +v -0.012546 0.174279 1.678132 +v 0.013771 0.174279 1.678132 +v -0.012941 0.187380 1.644519 +v 0.014166 0.187380 1.644519 +v 0.154162 0.195123 1.575692 +v 0.154162 0.194290 1.607360 +v 0.109395 0.194290 1.607360 +v 0.064627 0.194290 1.607360 +v -0.063403 0.194290 1.607360 +v -0.108170 0.194290 1.607360 +v -0.152938 0.194290 1.607360 +v -0.152938 0.195123 1.575692 +v 0.154162 0.410681 1.733274 +v 0.154162 0.397386 1.736517 +v 0.154162 0.234366 1.662416 +v 0.154162 0.507794 1.568848 +v 0.154162 0.489887 1.614762 +v 0.154162 0.465930 1.666237 +v -0.037191 0.554689 1.585895 +v 0.038415 0.554689 1.585895 +v 0.138655 0.488208 1.677482 +v 0.138655 0.440323 1.746489 +v 0.014930 0.428644 1.762824 +v 0.000612 0.429258 1.762496 +v -0.014572 0.188370 1.641979 +v -0.013588 0.187942 1.643078 +v 0.141182 0.232641 1.666578 +v 0.131601 0.357945 1.735431 +v 0.131678 0.228796 1.676320 +v -0.126973 0.223882 1.688855 +v -0.126890 0.339948 1.738139 +v -0.130376 0.357945 1.735431 +v -0.130453 0.228796 1.676320 +v -0.152938 0.465930 1.666237 +v -0.152938 0.410674 1.733283 +v -0.137362 0.440289 1.746708 +v -0.137431 0.488208 1.677482 +v 0.015790 0.430912 1.762832 +v 0.023719 0.457946 1.765303 +v -0.131438 0.425246 1.752361 +v -0.123109 0.410947 1.750383 +v -0.013705 0.428644 1.762824 +v 0.015797 0.188370 1.641979 +v 0.014812 0.187942 1.643078 +v -0.139910 0.380985 1.735899 +v -0.139957 0.232641 1.666578 +v 0.128114 0.339948 1.738139 +v 0.128198 0.223882 1.688855 +v 0.128229 0.146669 1.969466 +v 0.128229 0.207250 1.905013 +v 0.112723 0.232183 1.940354 +v 0.112723 0.170421 2.006064 +v 0.070357 0.245850 1.952473 +v 0.070357 0.183224 2.019103 +v -0.127005 0.207250 1.905013 +v -0.127005 0.146669 1.969466 +v -0.111498 0.170421 2.006064 +v -0.111498 0.232183 1.940354 +v -0.069132 0.183224 2.019103 +v -0.069132 0.245850 1.952473 +v 0.128229 0.071248 2.037810 +v 0.112722 0.093518 2.075751 +v 0.070357 0.105235 2.089773 +v -0.127004 0.071248 2.037810 +v -0.111498 0.093518 2.075751 +v -0.069132 0.105235 2.089773 +v 0.128228 0.001156 2.091766 +v 0.112722 0.022059 2.130760 +v 0.070357 0.032777 2.145552 +v -0.127004 0.001156 2.091767 +v -0.111498 0.022059 2.130760 +v -0.069132 0.032776 2.145552 +v 0.128231 -0.171157 2.206585 +v 0.128228 -0.155841 2.198706 +v 0.112722 -0.143067 2.220184 +v 0.112723 -0.161706 2.229772 +v 0.070357 -0.133717 2.235907 +v 0.070357 -0.154788 2.246746 +v -0.127004 -0.155841 2.198706 +v -0.127006 -0.171157 2.206585 +v -0.111499 -0.161706 2.229772 +v -0.111498 -0.143067 2.220184 +v -0.069132 -0.154788 2.246746 +v -0.069132 -0.133717 2.235907 +v 0.128231 -0.189571 2.212260 +v 0.112723 -0.184328 2.236744 +v 0.070357 -0.180491 2.254668 +v -0.127006 -0.189571 2.212260 +v -0.111499 -0.184328 2.236744 +v -0.069132 -0.180491 2.254668 +v 0.128226 -0.206665 2.214371 +v 0.112721 -0.205130 2.239313 +v 0.070356 -0.204007 2.257572 +v -0.127002 -0.206665 2.214371 +v -0.111497 -0.205130 2.239313 +v -0.069132 -0.204007 2.257572 +v 0.128231 -0.225906 2.215671 +v 0.112723 -0.219918 2.239884 +v 0.070357 -0.215534 2.257609 +v -0.127006 -0.225906 2.215671 +v -0.111499 -0.219918 2.239884 +v -0.069132 -0.215534 2.257609 +v 0.128230 0.324851 1.764352 +v 0.112464 0.374810 1.752502 +v 0.112723 0.342672 1.781922 +v 0.070522 0.377964 1.775645 +v 0.070357 0.355718 1.794785 +v -0.127004 0.324851 1.764352 +v -0.111498 0.342672 1.781922 +v -0.111355 0.374806 1.752502 +v -0.069132 0.355718 1.794785 +v -0.069298 0.377964 1.775645 +v 0.128233 0.088301 1.837957 +v 0.128233 0.046066 1.864320 +v 0.112789 0.033687 1.842645 +v 0.112796 0.073942 1.817518 +v 0.070596 0.024625 1.826778 +v 0.070624 0.063431 1.802556 +v -0.127009 0.046066 1.864320 +v -0.127009 0.088301 1.837957 +v -0.111572 0.073942 1.817518 +v -0.111564 0.033687 1.842645 +v -0.069400 0.063431 1.802556 +v -0.069371 0.024625 1.826778 +v 0.128232 0.133269 1.802565 +v 0.112809 0.116775 1.783805 +v 0.070674 0.104701 1.770073 +v -0.127008 0.133269 1.802565 +v -0.111585 0.116775 1.783805 +v -0.069449 0.104701 1.770073 +v 0.128232 0.168817 1.767706 +v 0.112829 0.150657 1.750581 +v 0.070749 0.137363 1.738044 +v -0.127008 0.168817 1.767706 +v -0.111605 0.150657 1.750581 +v -0.069524 0.137363 1.738044 +v -0.011721 -0.185706 1.928702 +v -0.011721 -0.185706 1.917378 +v -0.127007 -0.182100 1.983060 +v -0.127007 -0.182100 1.971736 +v -0.127006 -0.225399 1.994269 +v -0.127006 0.219480 1.700124 +v -0.127007 0.195273 1.737359 +v 0.128231 0.219481 1.700124 +v 0.128231 0.195273 1.737359 +v 0.112857 0.175319 1.722292 +v 0.112896 0.196880 1.689128 +v 0.070855 0.160711 1.711263 +v 0.071001 0.180335 1.681079 +v -0.111671 0.196880 1.689128 +v -0.111633 0.175319 1.722292 +v -0.069776 0.180335 1.681079 +v -0.069630 0.160711 1.711263 +v -0.152938 0.234366 1.662416 +v -0.134845 0.211446 1.651997 +v -0.123164 0.210034 1.655489 +v -0.085415 0.194668 1.644370 +v -0.077270 0.193829 1.646486 +v 0.069756 0.401689 1.762713 +v -0.152938 0.397386 1.736517 +v -0.152938 0.489887 1.614763 +v -0.152938 0.507794 1.568848 +v 0.090168 0.448031 1.762079 +v 0.078455 0.429221 1.760241 +v -0.146999 0.394115 1.738147 +v -0.036751 0.470543 1.760212 +v 0.138655 0.531241 1.577372 +v 0.138655 0.512836 1.624566 +v 0.096289 0.548406 1.583611 +v 0.096289 0.529635 1.631743 +v -0.137431 0.512836 1.624566 +v -0.137431 0.531241 1.577372 +v -0.095064 0.529635 1.631743 +v -0.095064 0.548406 1.583611 +v 0.096289 0.504516 1.685715 +v -0.095064 0.504516 1.685715 +v -0.095064 0.501026 1.692113 +v 0.136070 0.211446 1.651997 +v 0.086640 0.194668 1.644370 +v 0.124389 0.210034 1.655489 +v 0.078495 0.193829 1.646486 +v -0.068961 0.401675 1.762716 +v 0.116031 0.206608 1.664217 +v 0.073255 0.191655 1.652049 +v 0.112932 0.202101 1.675743 +v 0.071194 0.188741 1.659515 +v -0.114806 0.206608 1.664217 +v -0.111708 0.202101 1.675743 +v -0.072030 0.191655 1.652049 +v -0.069969 0.188741 1.659515 +v 0.115955 0.391463 1.750106 +v 0.073251 0.417340 1.760133 +v -0.094811 0.462186 1.756545 +v -0.114731 0.391463 1.750106 +v -0.072026 0.417340 1.760133 +v 0.012945 -0.185706 1.928702 +v 0.012945 -0.185706 1.917378 +v 0.112786 -0.183903 1.955881 +v 0.128231 -0.182100 1.983060 +v 0.128231 -0.182100 1.971736 +v 0.112786 -0.183903 1.944557 +v 0.070588 -0.185223 1.935984 +v 0.012942 -0.224991 1.937822 +v -0.011718 -0.224991 1.937822 +v 0.128231 -0.225399 1.994269 +v 0.112785 -0.225195 1.966046 +v 0.070586 -0.225046 1.945385 +v 0.070588 -0.185223 1.924661 +v -0.069362 -0.225046 1.945385 +v -0.111560 -0.225195 1.966046 +v 0.123056 0.134956 1.982661 +v 0.123056 0.136958 1.973533 +v 0.123056 0.127921 1.971152 +v 0.123056 0.120445 1.971734 +v 0.123056 -0.181151 2.156088 +v 0.123056 -0.185078 2.162477 +v 0.123056 -0.187080 2.171605 +v 0.123056 -0.178043 2.173986 +v 0.123056 -0.170567 2.173404 +v 0.123056 0.131030 1.989050 +v 0.136146 0.127921 1.971152 +v 0.136146 0.120445 1.971734 +v 0.136146 0.136958 1.973533 +v 0.136146 0.134956 1.982661 +v 0.136146 0.131030 1.989050 +v 0.136145 -0.170567 2.173404 +v 0.136145 -0.178043 2.173986 +v 0.136145 -0.187080 2.171605 +v 0.136145 -0.185078 2.162477 +v 0.136145 -0.181151 2.156088 +v 0.123056 0.130753 1.939820 +v 0.123056 0.132780 1.930677 +v 0.123056 0.123718 1.928312 +v 0.123056 0.116215 1.928909 +v 0.123056 -0.185225 2.113168 +v 0.123056 -0.189178 2.119573 +v 0.123056 -0.191205 2.128717 +v 0.123056 -0.182143 2.131082 +v 0.123056 -0.174640 2.130484 +v 0.123056 0.126799 1.946226 +v 0.136146 0.123718 1.928312 +v 0.136146 0.116215 1.928909 +v 0.136146 0.132780 1.930677 +v 0.136146 0.130753 1.939820 +v 0.136146 0.126799 1.946226 +v 0.136145 -0.174640 2.130484 +v 0.136145 -0.182143 2.131082 +v 0.136145 -0.191205 2.128717 +v 0.136145 -0.189178 2.119573 +v 0.136145 -0.185225 2.113168 +v 0.123056 0.126959 1.849913 +v 0.123056 0.129007 1.840757 +v 0.123056 0.119925 1.838404 +v 0.123056 0.112400 1.839015 +v 0.123056 -0.188916 2.023198 +v 0.123056 -0.192890 2.029616 +v 0.123056 -0.194937 2.038772 +v 0.123056 -0.185855 2.041124 +v 0.123056 -0.178331 2.040514 +v 0.123056 0.122985 1.856331 +v 0.136145 0.119925 1.838404 +v 0.136145 0.112400 1.839015 +v 0.136145 0.129007 1.840757 +v 0.136145 0.126959 1.849913 +v 0.136145 0.122985 1.856331 +v 0.136145 -0.178331 2.040514 +v 0.136145 -0.185855 2.041124 +v 0.136145 -0.194937 2.038772 +v 0.136145 -0.192890 2.029616 +v 0.136145 -0.188916 2.023198 +v 0.123056 0.130504 1.893210 +v 0.123056 0.132552 1.884055 +v 0.123056 0.123470 1.881702 +v 0.123056 0.115945 1.882312 +v 0.123056 -0.185371 2.066495 +v 0.123056 -0.189345 2.072913 +v 0.123056 -0.191392 2.082069 +v 0.123056 -0.182310 2.084422 +v 0.123056 -0.174786 2.083811 +v 0.123056 0.126530 1.899628 +v 0.136145 0.123470 1.881702 +v 0.136145 0.115945 1.882312 +v 0.136145 0.132552 1.884055 +v 0.136145 0.130504 1.893210 +v 0.136145 0.126530 1.899628 +v 0.136145 -0.174786 2.083811 +v 0.136145 -0.182310 2.084422 +v 0.136145 -0.191392 2.082069 +v 0.136145 -0.189345 2.072913 +v 0.136145 -0.185371 2.066495 +v -0.134921 0.134956 1.982661 +v -0.134921 0.136958 1.973533 +v -0.134921 0.127921 1.971152 +v -0.134921 0.120445 1.971734 +v -0.134921 -0.181151 2.156088 +v -0.134921 -0.185078 2.162477 +v -0.134921 -0.187080 2.171605 +v -0.134921 -0.178043 2.173986 +v -0.134921 -0.170567 2.173404 +v -0.134921 0.131030 1.989050 +v -0.121832 0.127921 1.971152 +v -0.121832 0.120445 1.971734 +v -0.121832 0.136958 1.973533 +v -0.121832 0.134956 1.982661 +v -0.121832 0.131030 1.989050 +v -0.121832 -0.170567 2.173404 +v -0.121832 -0.178043 2.173986 +v -0.121832 -0.187080 2.171605 +v -0.121832 -0.185078 2.162477 +v -0.121832 -0.181151 2.156088 +v -0.134921 0.130753 1.939820 +v -0.134921 0.132780 1.930677 +v -0.134921 0.123718 1.928312 +v -0.134921 0.116215 1.928909 +v -0.134921 -0.185225 2.113168 +v -0.134921 -0.189178 2.119573 +v -0.134921 -0.191205 2.128717 +v -0.134921 -0.182143 2.131082 +v -0.134921 -0.174640 2.130484 +v -0.134921 0.126800 1.946226 +v -0.121832 0.123718 1.928312 +v -0.121832 0.116215 1.928909 +v -0.121832 0.132780 1.930677 +v -0.121832 0.130753 1.939820 +v -0.121832 0.126800 1.946226 +v -0.121832 -0.174640 2.130484 +v -0.121832 -0.182143 2.131082 +v -0.121832 -0.191205 2.128717 +v -0.121832 -0.189178 2.119573 +v -0.121832 -0.185225 2.113168 +v -0.134921 0.126959 1.849913 +v -0.134921 0.129007 1.840757 +v -0.134921 0.119925 1.838404 +v -0.134921 0.112400 1.839015 +v -0.134921 -0.188916 2.023198 +v -0.134921 -0.192890 2.029616 +v -0.134921 -0.194937 2.038772 +v -0.134921 -0.185855 2.041124 +v -0.134921 -0.178331 2.040514 +v -0.134921 0.122985 1.856331 +v -0.121832 0.119925 1.838404 +v -0.121832 0.112400 1.839015 +v -0.121832 0.129007 1.840757 +v -0.121832 0.126959 1.849913 +v -0.121832 0.122985 1.856331 +v -0.121832 -0.178331 2.040514 +v -0.121832 -0.185855 2.041124 +v -0.121832 -0.194937 2.038772 +v -0.121832 -0.192890 2.029616 +v -0.121832 -0.188916 2.023198 +v -0.134921 0.130504 1.893210 +v -0.134921 0.132552 1.884055 +v -0.134921 0.123470 1.881702 +v -0.134921 0.115945 1.882312 +v -0.134921 -0.185371 2.066495 +v -0.134921 -0.189345 2.072913 +v -0.134921 -0.191392 2.082069 +v -0.134921 -0.182310 2.084422 +v -0.134921 -0.174786 2.083811 +v -0.134921 0.126530 1.899628 +v -0.121832 0.123470 1.881702 +v -0.121832 0.115945 1.882312 +v -0.121832 0.132552 1.884055 +v -0.121832 0.130504 1.893210 +v -0.121832 0.126530 1.899628 +v -0.121832 -0.174786 2.083811 +v -0.121832 -0.182310 2.084422 +v -0.121832 -0.191392 2.082069 +v -0.121832 -0.189345 2.072913 +v -0.121832 -0.185371 2.066495 +v 0.000612 0.577354 -1.870045 +v 0.000612 0.577354 -2.097808 +v -0.089839 0.539888 -2.097808 +v -0.089839 0.539888 -1.870045 +v -0.127305 0.449436 -2.097808 +v -0.127305 0.449436 -1.870045 +v -0.089839 0.358985 -2.097808 +v -0.089839 0.358985 -1.870045 +v 0.000612 0.321519 -2.097808 +v 0.000612 0.321519 -1.870045 +v 0.091064 0.358985 -2.097808 +v 0.091064 0.358985 -1.870045 +v 0.128530 0.449436 -2.097808 +v 0.128530 0.449436 -1.870045 +v 0.074804 0.523628 -2.097808 +v 0.091064 0.539888 -2.097808 +v 0.000612 0.344513 -2.097808 +v 0.074804 0.375244 -2.097808 +v 0.105535 0.449436 -2.097808 +v 0.000612 0.554359 -2.097808 +v -0.073580 0.523628 -2.097808 +v -0.104311 0.449436 -2.097808 +v -0.073580 0.375244 -2.097808 +v 0.091064 0.539888 -1.870045 +v 0.000612 0.344513 -1.870045 +v 0.074804 0.523628 -1.870045 +v 0.105535 0.449436 -1.870045 +v 0.074804 0.375244 -1.870045 +v -0.073580 0.375244 -1.870045 +v -0.104311 0.449436 -1.870045 +v -0.073580 0.523628 -1.870045 +v 0.000612 0.554359 -1.870045 +v -0.008405 0.611074 -1.745492 +v 0.008405 0.611074 -1.745492 +v 0.000000 0.626074 -1.745492 +v -0.025216 0.523926 -1.548361 +v -0.025216 0.546074 -1.548361 +v -0.025216 0.596074 -1.745492 +v -0.025216 0.596074 -1.851639 +v -0.025216 0.523926 -1.851639 +v -0.025216 0.523926 -1.745492 +v -0.008405 0.611074 -1.851639 +v 0.000000 0.626074 -1.851639 +v 0.008405 0.596074 -1.745492 +v 0.008405 0.596074 -1.851639 +v 0.008405 0.611074 -1.851639 +v 0.025216 0.596074 -1.745492 +v 0.025216 0.596074 -1.851639 +v -0.008405 0.596074 -1.745492 +v 0.025216 0.523926 -1.851639 +v 0.025216 0.546074 -1.548361 +v 0.025216 0.523926 -1.548361 +v 0.025216 0.523926 -1.745492 +v -0.008405 0.596074 -1.851639 +v 0.000612 0.567105 0.093059 +v 0.000612 0.567105 -1.906941 +v -0.082592 0.532640 -1.906941 +v -0.082592 0.532640 0.093059 +v -0.117056 0.449436 -1.906941 +v -0.117056 0.449436 0.093059 +v -0.082592 0.366232 -1.906941 +v -0.082592 0.366232 0.093059 +v 0.000612 0.331768 -1.906941 +v 0.000612 0.331768 0.093059 +v 0.083817 0.366232 -1.906941 +v 0.083816 0.366232 0.093059 +v 0.118281 0.449436 -1.906941 +v 0.118281 0.449436 0.093059 +v 0.083817 0.532640 -1.906941 +v 0.083816 0.532640 0.093059 +v 0.000612 0.577354 -1.646873 +v 0.000612 0.577354 -1.749518 +v -0.089839 0.539888 -1.749518 +v -0.089839 0.539888 -1.646873 +v -0.127305 0.449436 -1.749518 +v -0.127305 0.449436 -1.646873 +v -0.089839 0.358985 -1.749518 +v -0.089839 0.358985 -1.646873 +v 0.000612 0.321519 -1.749518 +v 0.000612 0.321519 -1.646873 +v 0.091064 0.358985 -1.749518 +v 0.091064 0.358985 -1.646873 +v 0.128530 0.449436 -1.749518 +v 0.128530 0.449436 -1.646873 +v 0.091064 0.539888 -1.749518 +v 0.091064 0.539888 -1.646873 +v 0.000612 0.315957 -1.669013 +v 0.000612 0.315957 -1.750267 +v -0.088663 0.278978 -1.750267 +v -0.088663 0.278978 -1.669013 +v -0.125642 0.189702 -1.750267 +v -0.125642 0.189702 -1.669013 +v -0.088663 0.100427 -1.750267 +v -0.088663 0.100427 -1.669013 +v 0.000612 0.063448 -1.750267 +v 0.000612 0.063448 -1.669013 +v 0.089888 0.100427 -1.750267 +v 0.089888 0.100427 -1.669013 +v 0.126867 0.189702 -1.750267 +v 0.126867 0.189702 -1.669013 +v 0.089888 0.278978 -1.750267 +v 0.089888 0.278978 -1.669013 +v 0.000612 0.307371 0.200670 +v 0.000612 0.307371 -1.799330 +v -0.082592 0.272907 -1.799330 +v -0.082592 0.272906 0.200670 +v -0.117056 0.189702 -1.799330 +v -0.117056 0.189702 0.200670 +v -0.082592 0.106498 -1.799330 +v -0.082592 0.106498 0.200670 +v 0.000612 0.072034 -1.799330 +v 0.000612 0.072034 0.200670 +v 0.083817 0.106498 -1.799330 +v 0.083816 0.106498 0.200670 +v 0.118281 0.189702 -1.799330 +v 0.118281 0.189702 0.200670 +v 0.083817 0.272906 -1.799330 +v 0.083816 0.272906 0.200670 +v 0.000612 0.315957 -1.793664 +v 0.000612 0.315957 -1.874918 +v -0.088663 0.278978 -1.874919 +v -0.088663 0.278978 -1.793664 +v -0.125642 0.189702 -1.874919 +v -0.125642 0.189702 -1.793664 +v -0.088663 0.100427 -1.874919 +v -0.088663 0.100427 -1.793664 +v 0.000612 0.063448 -1.874919 +v 0.000612 0.063448 -1.793664 +v 0.089888 0.100427 -1.874918 +v 0.089888 0.100427 -1.793664 +v 0.126867 0.189702 -1.874918 +v 0.126867 0.189702 -1.793664 +v 0.089888 0.278978 -1.874918 +v 0.089888 0.278978 -1.793664 +v -0.011919 0.284738 -1.702443 +v 0.013144 0.284738 -1.702443 +v 0.013144 0.395269 -1.702443 +v -0.011919 0.395269 -1.702443 +v 0.013144 0.395269 -1.749322 +v -0.011919 0.395269 -1.749322 +v 0.013144 0.284738 -1.749322 +v -0.011919 0.284738 -1.749322 +vn -0.0000 -0.7012 0.7129 vn -0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.7013 0.7129 +vn 0.9988 0.0499 -0.0000 +vn -0.1873 0.9822 0.0155 +vn 0.1821 0.9796 0.0845 +vn 0.1873 0.9822 0.0155 +vn -0.9988 0.0499 -0.0000 +vn -0.0000 0.2534 0.9674 +vn -0.1821 0.9796 0.0845 +vn 0.0314 0.9534 0.3001 +vn -0.0000 0.7077 0.7065 +vn -0.0314 0.9534 0.3001 +vn -0.1872 0.9823 -0.0000 +vn 0.9986 0.0523 -0.0020 +vn 0.9774 0.2113 -0.0002 +vn 0.9736 0.2284 -0.0051 +vn 0.8843 0.4669 0.0039 +vn 0.8767 0.4808 0.0146 +vn 0.6055 0.7958 0.0108 +vn 0.6093 0.7911 0.0535 +vn -0.9986 0.0523 -0.0020 +vn -0.9774 0.2113 -0.0002 +vn -0.9988 0.0494 -0.0008 +vn -0.9736 0.2284 -0.0051 +vn -0.8843 0.4669 0.0039 +vn -0.8767 0.4808 0.0146 +vn -0.6055 0.7958 0.0108 +vn -0.6093 0.7911 0.0535 +vn 0.9987 0.0502 -0.0044 +vn 0.9511 0.3078 -0.0251 +vn 0.4449 0.8687 0.2179 +vn 0.2201 0.9452 0.2412 +vn -0.9987 0.0502 -0.0044 +vn -0.4449 0.8687 0.2179 +vn -0.2201 0.9452 0.2412 +vn -0.6061 0.7954 -0.0000 +vn -0.8848 0.4660 -0.0000 +vn -0.9776 0.2104 -0.0000 +vn 0.9776 0.2104 -0.0000 +vn 0.9745 0.2244 -0.0000 +vn 0.9950 0.0996 -0.0000 +vn 0.9988 0.0494 -0.0008 +vn 0.9988 0.0498 -0.0000 +vn 0.9479 0.3184 -0.0000 +vn 0.8848 0.4660 -0.0000 +vn 0.6061 0.7954 -0.0000 +vn 0.1872 0.9823 -0.0000 +vn -0.0000 -0.0020 -1.0000 +vn -0.0000 -1.0000 -0.0083 +vn -0.0000 -1.0000 -0.0013 +vn -0.0000 0.0032 1.0000 +vn 0.4025 0.8068 0.4324 +vn -0.0000 0.4951 0.8688 +vn 0.4662 0.4241 0.7764 +vn 0.4025 0.8068 -0.4324 +vn -0.0000 0.4951 -0.8688 +vn -0.0000 0.8975 -0.4411 +vn 0.3039 0.9485 -0.0890 +vn -0.0000 0.9963 0.0863 +vn 0.3040 0.9485 0.0890 +vn -0.0000 0.9963 -0.0863 +vn 0.9995 0.0036 0.0325 +vn 0.9995 -0.0036 0.0325 +vn 0.9995 0.0036 -0.0325 +vn -0.0000 0.8975 0.4411 +vn -0.0000 -0.4476 -0.8942 +vn -0.0000 -0.0963 -0.9954 +vn -0.0000 -0.1027 -0.9947 +vn -0.0000 0.1027 -0.9947 +vn 0.4662 -0.4241 -0.7764 +vn -0.0000 -0.8863 -0.4632 +vn -0.0000 0.1027 0.9947 +vn 0.4025 -0.8068 -0.4324 +vn -0.0000 -0.9961 -0.0879 +vn 0.4662 -0.4241 0.7764 +vn -0.0000 -0.8863 0.4632 +vn 0.4025 -0.8068 0.4324 +vn 0.3040 -0.9485 -0.0890 +vn -0.0000 -0.9961 0.0879 +vn 0.4662 0.4241 -0.7764 +vn -0.0000 -0.0963 0.9954 +vn 0.0001 -0.2044 0.9789 +vn -0.0000 -0.4476 0.8942 +vn 0.8348 0.5487 0.0451 +vn 0.8348 0.5487 -0.0451 +vn 0.9922 0.1234 -0.0159 +vn 0.8733 0.4595 -0.1616 +vn 0.9392 0.1950 0.2826 +vn 0.9601 0.0300 0.2780 +vn 0.8874 0.0451 0.4587 +vn 0.8733 0.4595 0.1616 +vn 0.9922 0.1234 0.0159 +vn 0.8874 -0.0451 0.4587 +vn 0.9922 -0.1234 0.0159 +vn 0.9392 -0.1950 0.2826 +vn 0.8733 -0.4595 0.1616 +vn 0.9922 -0.1234 -0.0159 +vn 0.8733 -0.4595 -0.1616 +vn 0.9392 -0.1950 -0.2826 +vn 0.9601 0.0300 -0.2780 +vn 0.8874 0.0451 -0.4587 +vn 0.9392 0.1950 -0.2826 +vn 0.9995 -0.0036 -0.0325 +vn 0.8874 -0.0451 -0.4587 +vn 0.8348 -0.5487 0.0451 +vn 0.3040 -0.9485 0.0890 +vn 0.8348 -0.5487 -0.0451 +vn 0.9601 -0.0300 -0.2780 +vn 0.9601 -0.0300 0.2780 +vn -0.0000 0.8838 0.4678 +vn -0.9511 0.3078 -0.0251 +vn 0.9479 0.3186 -0.0000 +vn -0.0000 -0.0038 -1.0000 +vn 0.0001 -0.2044 -0.9789 +vn -0.0000 -0.1027 0.9947 +vn -0.0000 -0.4631 0.8863 +vn -0.0000 -0.4578 -0.8891 +vn -0.0000 -0.5207 -0.8538 +vn -0.0000 -0.3216 0.9469 +vn -0.0000 -0.5710 0.8210 +vn -0.0000 -0.7525 0.6586 +vn -0.0000 -0.3188 0.9478 +vn -0.0000 -0.8078 -0.5894 +vn -0.0000 -0.9269 -0.3752 +vn -0.0000 -0.9447 -0.3280 +vn -0.0000 -0.9943 -0.1069 +vn -0.0000 -0.8280 -0.5607 +vn -0.0000 -0.7230 0.6909 +vn -0.0000 -0.9770 0.2133 +vn -0.0000 0.1135 0.9935 +vn -0.0000 -0.1135 0.9935 +vn -0.0000 0.1135 -0.9935 +vn -0.0000 -0.1135 -0.9935 +vn -0.0000 0.9989 -0.0464 +vn -0.0000 0.9989 0.0464 +vn -0.0000 -0.9989 -0.0464 +vn -0.0000 -0.9989 0.0464 +vn -0.0000 0.9649 -0.2628 +vn -0.0000 0.8010 -0.5987 +vn -0.0000 0.4589 -0.8885 +vn -0.0000 -0.9649 -0.2628 +vn -0.0000 -0.8010 -0.5987 +vn -0.0000 -0.4589 -0.8885 +vn -0.0000 -0.4589 0.8885 +vn -0.0000 -0.8010 0.5987 +vn -0.0000 -0.9649 0.2628 +vn -0.0000 0.9649 0.2628 +vn -0.0000 0.8010 0.5987 +vn -0.0000 0.4589 0.8885 vn -0.0000 -0.7071 0.7071 -vn -0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 vn -0.0000 0.7071 0.7071 -vn -1.0000 -0.0000 0.0000 -s 1 -f 786/785/441 788/786/442 785/787/441 -f 787/788/442 790/789/443 788/786/442 -f 789/790/443 792/791/444 790/789/443 -f 791/792/444 794/793/445 792/791/444 -f 793/794/445 796/795/446 794/793/445 -f 795/796/446 798/797/447 796/795/446 -f 797/798/448 793/794/448 789/790/448 -f 797/798/447 800/799/449 798/797/447 -f 800/799/449 786/785/441 785/787/441 -f 796/795/450 798/797/450 800/799/450 -f 786/785/441 787/788/442 788/786/442 -f 787/788/442 789/790/443 790/789/443 -f 789/790/443 791/792/444 792/791/444 -f 791/792/444 793/794/445 794/793/445 -f 793/794/445 795/796/446 796/795/446 -f 795/796/446 797/798/447 798/797/447 -f 789/790/448 787/788/448 786/785/448 -f 786/785/448 799/800/448 789/790/448 -f 799/800/448 797/798/448 789/790/448 -f 797/798/448 795/796/448 793/794/448 -f 793/794/448 791/792/448 789/790/448 -f 797/798/447 799/800/449 800/799/449 -f 800/799/449 799/800/449 786/785/441 -f 800/799/450 785/787/450 788/786/450 -f 788/786/450 790/789/450 800/799/450 -f 790/789/450 792/791/450 800/799/450 -f 792/791/450 794/793/450 800/799/450 -f 794/793/450 796/795/450 800/799/450 -o Cube_Cube.001 -v -1.316254 0.234647 0.139055 -v -1.316254 0.234647 0.148771 -v -1.316254 0.312137 0.148771 -v -1.316254 0.312137 0.139055 -v -0.330263 0.312137 0.148771 -v -0.330263 0.312137 0.139055 -v -0.330263 0.234647 0.148771 -v -0.330263 0.234647 0.139055 -v -1.361672 0.339450 -0.152849 -v -1.361672 0.236034 -0.152849 -v -1.361672 0.236034 -0.137831 -v -1.361672 0.339450 -0.137831 -v -0.429618 0.339450 -0.152849 -v -0.429618 0.339450 -0.137831 -v -0.429618 0.236034 -0.152849 -v -0.307960 0.339450 -0.152849 -v -0.307960 0.236034 -0.152849 -v -0.429618 0.236034 -0.137831 -v -0.307960 0.236034 -0.137831 -v -0.307960 0.339450 -0.137831 -v -0.429618 0.470230 -0.152849 -v -0.307960 0.470230 -0.152849 -v -0.429618 0.470230 -0.137831 -v -0.307960 0.470230 -0.137831 -v -0.204392 0.184312 0.139055 -v -0.204784 0.062676 0.139055 -v -0.029043 0.064132 0.139055 -v -0.027466 0.474619 0.139055 -v -0.202227 0.474619 0.139055 -v -0.202227 0.408506 0.139055 -v -0.206744 0.386874 0.139055 -v -0.223773 0.371302 0.139055 -v -0.247428 0.367172 0.139055 -v -0.760419 0.408506 0.139055 -v -0.760419 0.474619 0.139055 -v -1.160748 0.474619 0.139055 -v -1.212867 0.476751 0.139055 -v -1.554436 0.523317 0.139055 -v -1.584164 0.470462 0.139055 -v -1.584164 0.182561 0.139055 -v -0.715218 0.367172 0.139055 -v -0.738873 0.371302 0.139055 -v -0.755902 0.386874 0.139055 -v -1.193615 0.592632 0.079700 -v -1.193615 0.592632 -0.078476 -v -1.343072 0.587917 -0.078476 -v -1.343072 0.587917 0.079700 -v -1.584164 0.182561 -0.137831 -v -1.584164 0.470462 -0.137831 -v -1.554436 0.523317 -0.137831 -v -1.212867 0.476751 -0.137831 -v -1.160748 0.474619 -0.137831 -v -0.027466 0.474619 -0.137831 -v -0.029043 0.064132 -0.137831 -v -0.204784 0.062676 -0.137831 -v -0.204392 0.184312 -0.137831 -v -1.469775 0.568125 -0.078476 -v -1.469775 0.568125 0.079700 -v -1.494572 0.555001 0.121671 -v -1.476220 0.564714 0.102414 -v -1.476220 0.564714 -0.101190 -v -1.494572 0.555001 -0.120446 -v -1.522038 0.540464 -0.133313 -v -1.522038 0.540464 0.134537 -v -0.027466 0.592632 0.079700 -v -0.027466 0.592632 -0.078476 -v -1.173326 0.519780 0.134537 -v -1.262694 0.519292 0.134537 -v -1.183989 0.558066 0.121671 -v -1.304936 0.555357 0.121671 -v -1.191113 0.583648 0.102414 -v -1.333161 0.579455 0.102414 -v -1.262694 0.519292 -0.133313 -v -1.173326 0.519780 -0.133313 -v -1.304936 0.555357 -0.120446 -v -1.183989 0.558066 -0.120446 -v -1.333161 0.579455 -0.101190 -v -1.191113 0.583648 -0.101190 -v -0.027466 0.583648 -0.101190 -v -0.027466 0.558066 -0.120446 -v -0.027466 0.519780 -0.133313 -v -0.202227 0.511418 0.135374 -v -0.027466 0.519780 0.134537 -v -0.203973 0.519780 0.134537 -v -0.760419 0.511418 0.135374 -v -0.758673 0.519780 0.134537 -v -0.206744 0.533050 0.130078 -v -0.027466 0.558066 0.121671 -v -0.755902 0.533050 0.130078 -v -0.738873 0.548622 0.124844 -v -0.715218 0.552752 0.123456 -v -0.247428 0.552752 0.123456 -v -0.223773 0.548622 0.124844 -v -0.027466 0.583648 0.102414 -v -0.206744 0.386874 0.006857 -v -0.223773 0.371302 0.006857 -v -0.738873 0.371302 0.006857 -v -0.755902 0.386874 0.006857 -v -0.247428 0.367172 0.006857 -v -0.715218 0.367172 0.006857 -v -0.649440 0.524577 -0.012342 -v -0.652482 0.510011 -0.012342 -v -0.652482 0.409913 -0.012342 -v -0.649440 0.395347 -0.012342 -v -0.313206 0.395347 -0.012342 -v -0.310165 0.409913 -0.012342 -v -0.310165 0.510011 -0.012342 -v -0.313206 0.524577 -0.012342 -v -0.755902 0.533050 0.006857 -v -0.760419 0.511418 0.006857 -v -0.760419 0.408506 0.006857 -v -0.738873 0.548622 0.006857 -v -0.202227 0.408506 0.006857 -v -0.715218 0.552752 0.006857 -v -0.223773 0.548622 0.006857 -v -0.206744 0.533050 0.006857 -v -0.247428 0.552752 0.006857 -v -0.202227 0.511418 0.006857 -v -0.253872 0.376935 -0.007431 -v -0.708774 0.376935 -0.007431 -v -0.717005 0.378372 -0.007431 -v -0.233974 0.389041 -0.007431 -v -0.229835 0.408866 -0.007431 -v -0.245641 0.378372 -0.007431 -v -0.229835 0.511059 -0.007431 -v -0.233974 0.530883 -0.007431 -v -0.245641 0.541552 -0.007431 -v -0.717005 0.541552 -0.007431 -v -0.728672 0.530883 -0.007431 -v -0.728672 0.389041 -0.007431 -v -0.732811 0.408866 -0.007431 -v -0.732811 0.511059 -0.007431 -v -0.708774 0.542989 -0.007431 -v -0.253872 0.542989 -0.007431 -vt 0.105115 0.891994 -vt 0.105115 0.913274 +vn -0.0000 0.9239 0.3827 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 0.0004 1.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.0000 -0.4305 -0.9026 +vn -0.0000 0.0167 -0.9999 +vn -0.0574 0.6402 0.7661 +vn 0.0572 0.5446 0.8368 +vn 0.0574 0.6402 0.7661 +vn -0.0574 0.6995 0.7123 +vn 0.0574 0.6995 0.7123 +vn 0.0574 0.0537 0.9969 +vn -0.0577 -0.0141 0.9982 +vn 0.0577 -0.0141 0.9982 +vn -0.0579 -0.5739 -0.8168 +vn 0.0579 -0.6593 -0.7497 +vn 0.0579 -0.5739 -0.8168 +vn -0.0934 -0.1209 0.9883 +vn -0.0163 0.1563 0.9876 +vn -0.1627 0.0858 0.9829 +vn 0.0579 0.7412 0.6688 +vn -0.0573 0.7753 0.6289 +vn 0.0573 0.7753 0.6289 +vn -0.0574 0.4666 0.8826 +vn 0.0575 0.3768 0.9245 +vn 0.0574 0.4666 0.8826 +vn -0.0575 0.2090 0.9762 +vn 0.0575 0.2090 0.9762 +vn -0.0647 0.5671 0.8211 +vn 0.0650 0.5676 0.8208 +vn -0.0575 0.3768 0.9245 +vn 0.0217 0.9998 -0.0000 +vn 0.0487 0.9988 -0.0000 +vn 0.0905 0.9959 -0.0000 +vn 0.2983 0.6040 0.7390 +vn 0.0701 0.8620 0.5021 +vn 0.0815 0.6577 0.7488 +vn -0.0578 -0.4952 -0.8669 +vn 0.0578 -0.4952 -0.8669 +vn 0.0531 0.3315 0.9420 +vn 0.0574 0.9181 0.3922 +vn -0.0574 0.8912 0.4499 +vn 0.0574 0.8912 0.4499 +vn -0.0693 0.8655 0.4961 +vn 0.3900 -0.2315 0.8913 +vn 0.2335 -0.1990 0.9518 +vn 0.4280 -0.2964 0.8538 +vn -0.0000 -0.9953 -0.0964 +vn 0.0442 -0.9989 0.0174 +vn -0.0000 -0.9640 -0.2660 +vn -0.0579 -0.7265 -0.6848 +vn 0.0579 -0.7265 -0.6848 +vn -0.0582 -0.7969 -0.6013 +vn 0.0587 -0.8884 -0.4553 +vn 0.0582 -0.7969 -0.6013 +vn -0.0587 -0.8884 -0.4553 +vn -0.0490 -0.9343 -0.3532 +vn -0.0215 -0.9990 -0.0391 +vn -0.0518 -0.9952 0.0831 +vn -0.0000 -0.9410 -0.3384 +vn 0.9601 0.2571 0.1098 +vn 0.9575 0.2485 0.1465 +vn -0.0574 0.9383 0.3411 +vn 0.0568 0.9460 0.3192 +vn -0.0568 0.9460 0.3192 +vn 0.0574 0.9383 0.3411 +vn -0.0574 0.9181 0.3922 +vn 0.6494 0.3940 0.6504 +vn 0.9093 0.0917 0.4058 +vn 0.0227 0.0897 0.9957 +vn 0.0042 0.0527 0.9986 +vn -0.0389 -0.9472 -0.3182 +vn -0.0443 -0.9989 0.0170 +vn -0.0479 -0.9400 -0.3379 +vn 0.5035 -0.5061 0.7002 +vn 0.6880 -0.1719 0.7051 +vn 0.8338 -0.4425 0.3300 +vn -0.9537 0.0402 0.2979 +vn -0.8338 -0.4425 0.3300 +vn -0.9515 -0.3076 0.0061 +vn -0.0522 0.3304 0.9424 +vn -0.9575 0.2485 0.1465 +vn -0.6508 0.3924 0.6500 +vn -0.6471 0.6627 0.3770 +vn 0.0129 -0.0540 0.9985 +vn 0.0341 0.1762 0.9838 +vn -0.2325 -0.2039 0.9510 +vn -0.3995 -0.0443 0.9157 +vn -0.0200 0.0932 0.9954 +vn -0.0139 -0.0740 0.9972 +vn 0.0389 -0.9473 -0.3181 +vn 0.0479 -0.9400 -0.3379 +vn 0.0490 -0.9343 -0.3532 +vn -0.6888 -0.1718 0.7043 +vn -0.5035 -0.5061 0.7002 +vn 0.9536 0.0407 0.2983 +vn 0.9515 -0.3076 0.0061 +vn 0.9841 0.1250 0.1261 +vn 0.7159 0.5412 0.4411 +vn 0.7228 0.4835 0.4936 +vn 0.2562 0.7506 0.6091 +vn 0.2573 0.6771 0.6895 +vn -0.9841 0.1250 0.1261 +vn -0.7159 0.5412 0.4411 +vn -0.9826 0.1450 0.1162 +vn -0.7228 0.4835 0.4936 +vn -0.2562 0.7506 0.6091 +vn -0.2573 0.6771 0.6895 +vn 0.9845 0.1128 0.1339 +vn 0.7244 0.4415 0.5294 +vn 0.2573 0.6197 0.7415 +vn -0.9845 0.1128 0.1339 +vn -0.7244 0.4415 0.5294 +vn 0.9851 0.1014 0.1393 +vn 0.7168 0.3857 0.5809 +vn 0.2560 0.5273 0.8102 +vn -0.9851 0.1014 0.1393 +vn -0.2560 0.5273 0.8102 +vn -0.2573 0.6197 0.7415 +vn -0.0572 0.5446 0.8368 +vn 0.9578 0.1085 0.2661 +vn 0.6516 0.3542 0.6708 +vn 0.6454 0.2883 0.7073 +vn 0.2578 0.4513 0.8543 +vn 0.2569 0.3648 0.8950 +vn -0.9578 0.1085 0.2661 +vn -0.6516 0.3542 0.6708 +vn -0.9611 0.1301 0.2436 +vn -0.6454 0.2883 0.7073 +vn -0.2578 0.4513 0.8543 +vn -0.2569 0.3648 0.8950 +vn 0.6454 0.1599 0.7469 +vn 0.9579 0.0600 0.2808 +vn 0.2569 0.2023 0.9450 +vn -0.6454 0.1599 0.7469 +vn 0.6477 0.0601 0.7595 +vn 0.9600 0.0256 0.2788 +vn 0.2564 0.0603 0.9647 +vn -0.9579 0.0600 0.2808 +vn -0.6477 0.0601 0.7595 +vn -0.2564 0.0603 0.9647 +vn -0.2569 0.2023 0.9450 +vn -0.0574 0.0537 0.9969 +vn 0.6675 0.0320 0.7440 +vn 0.9628 0.0185 0.2698 +vn 0.2612 0.0064 0.9653 +vn -0.9600 0.0256 0.2788 +vn -0.6675 0.0320 0.7440 +vn -0.2612 0.0063 0.9653 +vn 0.9611 0.1301 0.2435 +vn -0.7168 0.3857 0.5809 +vn 0.6854 0.5529 0.4738 +vn 0.9566 0.2413 0.1631 +vn 0.2872 0.5540 0.7814 +vn 0.2613 0.7162 0.6471 +vn -0.6854 0.5525 0.4743 +vn -0.6136 0.2304 0.7553 +vn -0.2865 0.5522 0.7829 +vn -0.2613 0.7162 0.6471 +vn 0.9826 0.1450 0.1162 +vn -0.9566 0.2413 0.1631 +vn -0.0579 0.7412 0.6688 +vn 0.9637 -0.1325 -0.2320 +vn 0.6594 -0.4323 -0.6151 +vn 0.9644 -0.1520 -0.2163 +vn 0.6576 -0.3737 -0.6542 +vn 0.2606 -0.5551 -0.7899 +vn 0.2600 -0.4790 -0.8384 +vn -0.9636 -0.1325 -0.2320 +vn -0.6594 -0.4323 -0.6151 +vn -0.6576 -0.3737 -0.6542 +vn -0.2607 -0.5551 -0.7899 +vn -0.2600 -0.4790 -0.8384 +vn 0.6597 -0.4963 -0.5643 +vn 0.9645 -0.1745 -0.1985 +vn 0.2609 -0.6376 -0.7248 +vn -0.9644 -0.1520 -0.2163 +vn -0.6597 -0.4963 -0.5643 +vn -0.2609 -0.6376 -0.7248 +vn -0.0579 -0.6593 -0.7497 +vn 0.9638 -0.1940 -0.1828 +vn 0.6584 -0.5479 -0.5160 +vn 0.2606 -0.7028 -0.6619 +vn -0.9638 -0.1940 -0.1828 +vn -0.9645 -0.1745 -0.1985 +vn -0.6584 -0.5479 -0.5160 +vn 0.0044 1.0000 -0.0000 +vn 0.0175 0.9998 -0.0000 +vn -0.6906 -0.3339 -0.6416 +vn -0.9948 -0.0472 -0.0906 +vn -0.2686 -0.4447 -0.8545 +vn -0.0586 -0.4608 -0.8855 +vn 0.9654 -0.2081 -0.1570 +vn 0.6680 -0.6623 -0.3393 +vn 0.9672 -0.2254 -0.1170 +vn 0.6625 -0.5981 -0.4509 +vn 0.2646 -0.8585 -0.4392 +vn 0.2621 -0.7707 -0.5808 +vn -0.9654 -0.2081 -0.1570 +vn -0.6680 -0.6623 -0.3393 +vn -0.6625 -0.5981 -0.4509 +vn -0.2646 -0.8585 -0.4392 +vn -0.2621 -0.7707 -0.5808 +vn -0.3495 -0.7657 0.5400 +vn -0.4005 -0.8182 0.4124 +vn -0.1705 -0.9565 0.2368 +vn -0.1920 -0.9808 -0.0355 +vn -0.2606 -0.7028 -0.6619 +vn 0.2303 0.2823 0.9313 +vn 0.6115 0.2306 0.7569 +vn 0.1607 0.1057 0.9813 +vn 0.0945 -0.1055 0.9899 +vn -0.3912 -0.2301 0.8911 +vn -0.0768 0.6528 0.7537 +vn 0.6503 0.7140 0.2595 +vn 0.6496 0.6992 0.2987 +vn 0.2575 0.9081 0.3301 +vn 0.2574 0.8886 0.3796 +vn -0.9601 0.2571 0.1098 +vn -0.6503 0.7140 0.2595 +vn -0.9605 0.2615 0.0951 +vn -0.6496 0.6992 0.2987 +vn -0.2575 0.9081 0.3301 +vn -0.2574 0.8886 0.3796 +vn 0.6470 0.6627 0.3772 +vn 0.2574 0.8626 0.4355 +vn 0.2735 0.8303 0.4856 +vn -0.2735 0.8307 0.4849 +vn -0.2574 0.8626 0.4355 +vn -0.2504 0.9173 0.3096 +vn -0.6210 0.7427 0.2506 +vn -0.9457 0.3079 0.1039 +vn 0.9457 0.3079 0.1039 +vn 0.9605 0.2615 0.0951 +vn 0.6210 0.7427 0.2506 +vn 0.2504 0.9173 0.3096 +vn 0.0818 -0.9767 0.1982 +vn 0.3495 -0.7657 0.5400 +vn 0.0518 -0.9952 0.0831 +vn 0.1705 -0.9565 0.2368 +vn 0.0215 -0.9990 -0.0391 +vn -0.0818 -0.9767 0.1982 +vn -0.3919 -0.5303 0.7518 +vn 0.3919 -0.5303 0.7518 +vn 0.4005 -0.8182 0.4124 +vn 0.1920 -0.9808 -0.0355 +vn -0.2352 0.2799 0.9308 +vn 0.5611 -0.8278 0.0031 +vn 0.2204 -0.9438 -0.2463 +vn 0.6321 -0.7469 -0.2063 +vn 0.2445 -0.9148 -0.3215 +vn -0.5611 -0.8278 0.0031 +vn -0.6322 -0.7469 -0.2063 +vn -0.2204 -0.9438 -0.2463 +vn -0.2445 -0.9148 -0.3215 +vn 0.3605 -0.0690 0.9302 +vn 0.1355 0.0240 0.9905 +vn 0.2505 0.0136 0.9680 +vn -0.4280 -0.2964 0.8538 +vn -0.2593 0.0104 0.9657 +vn -0.3018 0.5994 0.7414 +vn -0.3617 -0.0678 0.9298 +vn -0.1384 0.0274 0.9900 +vn -0.9672 -0.2254 -0.1170 +vn -0.0044 1.0000 -0.0000 +vn 0.0040 1.0000 -0.0000 +vn -0.0905 0.9959 -0.0000 +vn -0.1160 0.9933 -0.0000 +vn -0.0487 0.9988 -0.0000 +vn 0.0586 -0.4608 -0.8855 +vn 0.2686 -0.4447 -0.8545 +vn 0.6906 -0.3339 -0.6416 +vn 0.0567 -0.4609 -0.8856 +vn -0.0588 -0.4608 -0.8855 +vn -0.0567 -0.4609 -0.8856 +vn 0.9373 -0.1609 -0.3091 +vn 0.6970 -0.3310 -0.6361 +vn 0.6101 -0.3658 -0.7028 +vn 0.2705 -0.4444 -0.8540 +vn 0.2484 -0.4472 -0.8593 +vn 0.0588 -0.4608 -0.8855 +vn -0.2484 -0.4472 -0.8593 +vn -0.2705 -0.4444 -0.8540 +vn -0.6101 -0.3658 -0.7028 +vn -0.6970 -0.3311 -0.6361 +vn -0.9373 -0.1609 -0.3091 +vn -0.9807 -0.0903 -0.1736 +vn 0.1159 0.9933 -0.0000 +vn -0.0175 0.9998 -0.0000 +vn -0.0040 1.0000 -0.0000 +vn -0.0006 -1.0000 -0.0035 +vn -0.0000 -1.0000 -0.0072 +vn -0.0019 -1.0000 -0.0034 +vn -0.0217 0.9998 -0.0000 +vn -0.9101 0.0922 0.4040 +vn 0.3980 -0.0389 0.9166 +vn -0.0000 -0.9708 0.2401 +vn -0.0000 0.0898 -0.9960 +vn -0.0000 -0.3081 -0.9514 +vn -0.0000 0.0899 -0.9960 +vn -0.0000 0.7063 0.7079 +vn -0.0000 0.9274 0.3741 +vn -0.0000 -0.7062 -0.7080 +vn -0.0000 -0.9274 -0.3742 +vn -0.0000 0.3081 0.9514 +vn -0.0000 -0.9768 -0.2142 +vn -0.0000 -0.2548 0.9670 +vn -0.0000 -0.0899 0.9960 +vn -0.0000 0.2548 -0.9670 +vn -0.0000 0.9768 0.2142 +vn -0.0000 -0.0898 0.9960 +vn -0.0000 0.0878 -0.9961 +vn -0.0000 -0.3089 -0.9511 +vn -0.0000 0.7056 0.7086 +vn -0.0000 0.9266 0.3761 +vn -0.0000 -0.7056 -0.7086 +vn -0.0000 -0.9266 -0.3761 +vn -0.0000 0.3090 0.9511 +vn -0.0000 -0.9763 -0.2164 +vn -0.0000 -0.2525 0.9676 +vn -0.0000 -0.0878 0.9961 +vn -0.0000 0.2525 -0.9676 +vn -0.0000 0.9763 0.2164 +vn -0.0000 0.0861 -0.9963 +vn -0.0000 -0.3097 -0.9508 +vn -0.0000 0.7051 0.7091 +vn -0.0000 0.9260 0.3776 +vn -0.0000 -0.3096 -0.9509 +vn -0.0000 -0.7051 -0.7091 +vn -0.0000 -0.9260 -0.3776 +vn -0.0000 0.3096 0.9509 +vn -0.0000 -0.9759 -0.2182 +vn -0.0000 -0.2507 0.9681 +vn -0.0000 -0.0862 0.9963 +vn -0.0000 0.2508 -0.9680 +vn -0.0000 0.9759 0.2183 +vn -0.0000 -0.0861 0.9963 +vn -0.0000 0.0862 -0.9963 +vn -0.0000 0.3097 0.9508 +vn -0.0000 -0.2508 0.9680 +vn -0.0000 0.9266 0.3760 +vn -0.0000 -0.2512 0.9679 +vn -0.9628 0.0184 0.2697 +vn 0.9948 -0.0471 -0.0906 +vn 0.9807 -0.0903 -0.1736 +vn -0.0006 -1.0000 -0.0030 +vn 0.0006 -1.0000 -0.0030 +vn 0.0006 -1.0000 -0.0035 +vn 0.0019 -1.0000 -0.0034 +vn -0.7071 -0.7071 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.8724 0.4888 -0.0000 +vn 0.8724 0.4888 -0.0000 +vn -0.0000 0.9693 0.2459 +vn -0.0000 0.7764 -0.6303 +vn -0.5490 0.5490 0.6303 +vn -0.0000 0.7764 0.6303 +vn -0.5490 0.5490 -0.6303 +vn -0.7764 -0.0000 0.6303 +vn -0.7764 -0.0000 -0.6303 +vn -0.5490 -0.5490 0.6303 +vn -0.5490 -0.5490 -0.6303 +vn -0.0000 -0.7764 0.6303 +vn -0.0000 -0.7764 -0.6303 +vn 0.5490 -0.5490 0.6303 +vn 0.5490 -0.5490 -0.6303 +vn 0.7764 -0.0000 0.6303 +vn 0.7764 -0.0000 -0.6303 +vn 0.5490 0.5490 0.6303 +vn 0.5490 0.5490 -0.6303 +vt 0.371558 0.219091 +vt 0.371159 0.219497 +vt 0.434034 0.219497 +vt 0.434034 0.185834 +vt 0.416747 0.185834 +vt 0.404268 0.185834 +vt 0.416747 0.219091 vt 0.105115 0.891994 vt 0.105115 0.913274 vt 0.375880 0.913274 -vt 0.375880 0.913274 -vt 0.375880 0.891994 vt 0.375880 0.891994 vt 0.092643 0.892375 vt 0.092643 0.920774 -vt 0.092643 0.920774 -vt 0.348596 0.920774 vt 0.348596 0.920774 vt 0.382005 0.892375 vt 0.348596 0.892375 -vt 0.348596 0.892375 -vt 0.092643 0.892375 vt 0.382005 0.920774 -vt 0.382005 0.892375 -vt 0.382005 0.956688 -vt 0.382005 0.920774 -vt 0.348596 0.956688 vt 0.382005 0.956688 vt 0.348596 0.956688 vt 0.410446 0.878172 @@ -3799,17 +3031,10 @@ vt 0.270167 0.928387 vt 0.263671 0.929521 vt 0.138793 0.990301 vt 0.097751 0.989006 -vt 0.138793 0.990301 -vt 0.459032 0.957893 -vt 0.031544 0.877691 vt 0.031544 0.877691 vt 0.031544 0.956752 -vt 0.097751 0.989006 vt 0.062956 0.983571 vt 0.039707 0.971267 -vt 0.039707 0.971267 -vt 0.062956 0.983571 -vt 0.031544 0.956752 vt 0.459032 0.990301 vt 0.133506 0.958479 vt 0.144365 0.970295 @@ -3818,64 +3043,33 @@ vt 0.141437 0.980809 vt 0.108223 0.980065 vt 0.139480 0.987834 vt 0.100472 0.986683 -vt 0.133506 0.958479 -vt 0.144365 0.970295 vt 0.147819 0.957893 -vt 0.119823 0.970161 -vt 0.141437 0.980809 -vt 0.108223 0.980065 -vt 0.139480 0.987834 -vt 0.100472 0.986683 vt 0.048604 0.975975 vt 0.056147 0.979967 vt 0.061187 0.982635 -vt 0.056147 0.979967 -vt 0.061187 0.982635 vt 0.459032 0.987834 vt 0.459032 0.980809 vt 0.459032 0.970295 -vt 0.459032 0.970295 vt 0.410561 0.970295 vt 0.411041 0.967999 -vt 0.147819 0.957893 vt 0.257754 0.957893 vt 0.257754 0.967999 vt 0.270167 0.979350 vt 0.398628 0.979350 -vt 0.459032 0.980809 -vt 0.459032 0.987834 -vt 0.459032 0.990301 vt 0.458599 0.845169 vt 0.410339 0.844769 -vt 0.458599 0.845169 -vt 0.410446 0.878172 -vt 0.410339 0.844769 vt 0.405124 0.929521 -vt 0.409800 0.933798 -vt 0.263671 0.929521 vt 0.258995 0.933798 -vt 0.270167 0.928387 -vt 0.398628 0.928387 vt 0.398628 0.928387 vt 0.381400 0.940125 vt 0.381400 0.967613 vt 0.287395 0.940125 -vt 0.405124 0.929521 vt 0.258995 0.973940 -vt 0.257754 0.967999 vt 0.257754 0.939738 -vt 0.257754 0.939738 -vt 0.258995 0.973940 vt 0.263671 0.978216 vt 0.411041 0.939738 -vt 0.411041 0.939738 -vt 0.263671 0.978216 vt 0.409800 0.973940 vt 0.405124 0.978216 -vt 0.405124 0.978216 -vt 0.270167 0.979350 -vt 0.258995 0.933798 -vt 0.409800 0.973940 vt 0.411041 0.957893 vt 0.396858 0.931068 vt 0.271936 0.931068 @@ -3885,7 +3079,6 @@ vt 0.402323 0.934393 vt 0.403459 0.939837 vt 0.399119 0.931463 vt 0.380565 0.936125 -vt 0.411041 0.967999 vt 0.380565 0.971613 vt 0.402323 0.973344 vt 0.399119 0.976274 @@ -3896,866 +3089,92 @@ vt 0.265336 0.939837 vt 0.266472 0.934393 vt 0.287395 0.967613 vt 0.396858 0.976669 -vt 0.398628 0.979350 vt 0.271937 0.976669 vt 0.265336 0.967900 vt 0.403459 0.967900 -vt 0.048604 0.975975 vt 0.258234 0.970295 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0499 0.9988 -vn -0.0155 0.9822 -0.1873 -vn -0.0845 0.9796 0.1821 -vn -0.0155 0.9822 0.1873 -vn -0.0000 0.0499 -0.9988 -vn -0.9674 0.2534 0.0000 -vn -0.0845 0.9796 -0.1821 -vn -0.3001 0.9534 0.0314 -vn -0.7065 0.7077 -0.0000 -vn -0.3001 0.9534 -0.0314 -vn 0.0000 0.9823 -0.1872 -vn 0.0020 0.0523 0.9986 -vn 0.0002 0.2113 0.9774 -vn 0.0051 0.2284 0.9736 -vn -0.0039 0.4669 0.8843 -vn -0.0146 0.4808 0.8767 -vn -0.0108 0.7958 0.6055 -vn -0.0535 0.7911 0.6093 -vn 0.0020 0.0523 -0.9986 -vn 0.0002 0.2113 -0.9774 -vn 0.0008 0.0494 -0.9988 -vn 0.0051 0.2284 -0.9736 -vn -0.0039 0.4669 -0.8843 -vn -0.0146 0.4808 -0.8767 -vn -0.0108 0.7958 -0.6055 -vn -0.0535 0.7911 -0.6093 -vn 0.0044 0.0502 0.9987 -vn 0.0251 0.3078 0.9511 -vn -0.2179 0.8687 0.4449 -vn -0.2412 0.9452 0.2201 -vn 0.0044 0.0502 -0.9987 -vn -0.2179 0.8687 -0.4449 -vn -0.2412 0.9452 -0.2201 -vn 0.0000 0.7954 -0.6061 -vn 0.0000 0.4660 -0.8848 -vn 0.0000 0.2104 -0.9776 -vn 0.0000 0.2104 0.9776 -vn 0.0000 0.2244 0.9745 -vn 0.0000 0.0996 0.9950 -vn 0.0008 0.0494 0.9988 -vn 0.0000 0.0498 0.9988 -vn 0.0000 0.3184 0.9479 -vn -0.0000 0.4660 0.8848 -vn 0.0000 0.7954 0.6061 -vn 0.0000 0.9823 0.1872 -vn 1.0000 -0.0020 0.0000 -vn 0.0083 -1.0000 -0.0000 -vn 0.0013 -1.0000 0.0000 -vn -1.0000 0.0032 0.0000 -vn -0.4324 0.8068 0.4025 -vn -0.8688 0.4951 0.0000 -vn -0.7764 0.4241 0.4662 -vn 0.4324 0.8068 0.4025 -vn 0.8688 0.4951 0.0000 -vn 0.4411 0.8975 0.0000 -vn 0.0890 0.9485 0.3039 -vn -0.0863 0.9963 0.0000 -vn -0.0890 0.9485 0.3040 -vn 0.0863 0.9963 0.0000 -vn -0.0325 0.0036 0.9995 -vn -0.0325 -0.0036 0.9995 -vn 0.0325 0.0036 0.9995 -vn -0.4411 0.8975 0.0000 -vn 0.8942 -0.4476 0.0000 -vn 0.9954 -0.0963 0.0000 -vn 0.9947 -0.1027 0.0000 -vn 0.9947 0.1027 0.0000 -vn 0.7764 -0.4241 0.4662 -vn 0.4632 -0.8863 0.0000 -vn -0.9947 0.1027 0.0000 -vn 0.4324 -0.8068 0.4025 -vn 0.0879 -0.9961 0.0000 -vn -0.7764 -0.4241 0.4662 -vn -0.4632 -0.8863 0.0000 -vn -0.4324 -0.8068 0.4025 -vn 0.0890 -0.9485 0.3040 -vn -0.0879 -0.9961 0.0000 -vn 0.7764 0.4241 0.4662 -vn -0.9954 -0.0963 0.0000 -vn -0.9789 -0.2044 0.0001 -vn -0.8942 -0.4476 0.0000 -vn -0.0451 0.5487 0.8348 -vn 0.0451 0.5487 0.8348 -vn 0.0159 0.1234 0.9922 -vn 0.1616 0.4595 0.8733 -vn -0.2826 0.1950 0.9392 -vn -0.2780 0.0300 0.9601 -vn -0.4587 0.0451 0.8874 -vn -0.1616 0.4595 0.8733 -vn -0.0159 0.1234 0.9922 -vn -0.4587 -0.0451 0.8874 -vn -0.0159 -0.1234 0.9922 -vn -0.2826 -0.1950 0.9392 -vn -0.1616 -0.4595 0.8733 -vn 0.0159 -0.1234 0.9922 -vn 0.1616 -0.4595 0.8733 -vn 0.2826 -0.1950 0.9392 -vn 0.2780 0.0300 0.9601 -vn 0.4587 0.0451 0.8874 -vn 0.2826 0.1950 0.9392 -vn 0.0325 -0.0036 0.9995 -vn 0.4587 -0.0451 0.8874 -vn -0.0451 -0.5487 0.8348 -vn -0.0890 -0.9485 0.3040 -vn 0.0451 -0.5487 0.8348 -vn 0.2780 -0.0300 0.9601 -vn -0.2780 -0.0300 0.9601 -vn -0.4678 0.8838 0.0000 -vn 0.0251 0.3078 -0.9511 -vn -0.0000 0.3186 0.9479 -vn 1.0000 -0.0038 0.0000 -vn 0.9789 -0.2044 0.0001 -vn -0.9947 -0.1027 0.0000 -s off -f 802/801/451 804/802/451 801/803/451 -f 803/804/452 806/805/452 804/802/452 -f 805/806/453 808/807/453 806/805/453 -f 807/808/454 801/803/454 808/807/454 -f 803/804/455 807/808/455 805/806/455 -f 810/809/451 812/810/451 809/811/451 -f 809/811/452 814/812/452 813/813/452 -f 813/813/456 817/814/456 815/815/456 -f 810/809/454 818/816/454 811/817/454 -f 813/813/456 810/809/456 809/811/456 -f 817/814/453 820/818/453 819/819/453 -f 813/813/456 822/820/456 816/821/456 -f 815/815/454 819/819/454 818/816/454 -f 821/822/452 824/823/452 822/820/452 -f 816/821/453 824/823/453 820/818/453 -f 813/813/451 823/824/451 821/822/451 -f 802/801/451 803/804/451 804/802/451 -f 803/804/452 805/806/452 806/805/452 -f 805/806/453 807/808/453 808/807/453 -f 807/808/454 802/801/454 801/803/454 -f 803/804/455 802/801/455 807/808/455 -f 810/809/451 811/817/451 812/810/451 -f 809/811/452 812/810/452 814/812/452 -f 813/813/456 816/821/456 817/814/456 -f 810/809/454 815/815/454 818/816/454 -f 813/813/456 815/815/456 810/809/456 -f 817/814/453 816/821/453 820/818/453 -f 813/813/456 821/822/456 822/820/456 -f 815/815/454 817/814/454 819/819/454 -f 821/822/452 823/824/452 824/823/452 -f 816/821/453 822/820/453 824/823/453 -f 813/813/451 814/812/451 823/824/451 -s 1 -f 825/825/455 828/826/457 831/827/455 -f 804/802/455 841/828/455 842/829/455 -f 845/830/458 847/831/459 844/832/460 -f 824/823/456 823/824/456 853/833/461 -f 848/834/456 811/817/456 818/816/456 -f 840/835/451 849/836/462 848/834/451 -f 846/837/463 858/838/464 847/831/459 -f 850/839/465 838/840/465 857/841/466 -f 850/839/465 839/842/462 838/840/465 -f 844/832/460 866/843/467 845/830/458 -f 837/844/468 867/845/469 868/846/470 -f 868/846/470 869/847/471 870/848/472 -f 870/848/472 871/849/473 872/850/474 -f 872/850/474 844/832/460 847/831/459 -f 851/851/475 874/852/476 852/853/477 -f 873/854/478 876/855/479 874/852/476 -f 875/856/480 878/857/481 876/855/479 -f 877/858/482 845/830/458 878/857/481 -f 838/840/483 868/846/470 864/859/484 -f 868/846/470 859/860/485 864/859/484 -f 870/848/472 860/861/486 859/860/485 -f 860/861/486 847/831/459 858/838/464 -f 850/839/487 873/854/478 851/851/475 -f 873/854/478 862/862/488 875/856/480 -f 875/856/480 861/863/489 877/858/482 -f 861/863/489 846/837/463 877/858/482 -f 866/843/467 878/857/481 845/830/458 -f 879/864/490 876/855/479 878/857/481 -f 880/865/491 874/852/476 876/855/479 -f 881/866/492 852/853/477 874/852/476 -f 883/867/493 884/868/494 882/869/495 -f 836/870/496 835/871/497 885/872/495 -f 891/873/498 892/874/498 888/875/499 -f 869/847/471 894/876/500 871/849/473 -f 871/849/473 865/877/501 844/832/460 -f 853/833/502 865/877/453 828/826/502 -f 827/878/503 855/879/503 854/880/503 -f 825/825/504 848/834/504 856/881/504 -f 826/882/505 856/881/505 855/879/505 -f 896/883/506 831/827/507 895/884/508 -f 897/885/509 843/886/510 842/829/511 -f 900/887/512 833/888/513 899/889/514 -f 897/885/509 841/828/515 900/887/512 -f 906/890/516 907/891/517 903/892/518 -f 899/889/514 832/893/519 896/883/506 -f 889/894/520 885/872/521 910/895/522 -f 835/871/453 834/896/523 911/897/523 -f 909/898/524 890/899/525 889/894/520 -f 895/884/508 830/900/526 913/901/526 -f 912/902/527 891/873/528 890/899/525 -f 916/903/529 893/904/530 915/905/531 -f 914/906/532 892/874/533 891/873/528 -f 898/907/534 834/896/523 843/886/510 -f 882/869/535 884/868/536 887/908/537 -f 913/901/526 830/900/526 829/909/451 -f 900/887/512 919/910/538 920/911/539 -f 919/910/538 904/912/540 920/911/539 -f 904/912/540 921/913/541 920/911/539 -f 921/913/541 900/887/512 920/911/539 -f 906/890/516 922/914/542 923/915/543 -f 923/915/543 895/884/508 913/901/544 -f 899/889/514 924/916/545 919/910/538 -f 919/910/538 924/916/545 905/917/546 -f 918/918/547 923/915/543 913/901/544 -f 923/915/543 907/891/517 906/890/516 -f 908/919/548 926/920/549 927/921/550 -f 926/920/549 915/905/531 927/921/550 -f 901/922/551 928/923/552 929/924/553 -f 929/924/553 912/902/527 909/898/524 -f 898/907/534 931/925/554 911/897/555 -f 930/926/556 903/892/518 931/925/554 -f 902/927/557 931/925/554 903/892/518 -f 931/925/554 910/895/558 911/897/555 -f 914/906/532 934/928/559 917/929/560 -f 933/930/561 908/919/548 934/928/559 -f 902/927/557 929/924/553 932/931/562 -f 932/931/562 909/898/524 910/895/558 -f 914/906/532 928/923/552 933/930/561 -f 933/930/561 928/923/552 901/922/551 -f 908/919/548 927/921/550 934/928/559 -f 927/921/550 917/929/560 934/928/559 -f 916/903/529 925/932/563 918/918/547 -f 926/920/549 907/891/517 925/932/563 -f 904/912/540 930/926/556 921/913/541 -f 930/926/556 897/885/509 921/913/541 -f 905/917/546 924/916/545 922/914/542 -f 922/914/542 896/883/506 895/884/508 -f 892/874/533 915/905/531 893/904/530 -f 833/888/455 806/805/455 808/807/455 -f 825/825/455 826/882/455 827/878/455 -f 833/888/455 808/807/455 825/825/455 -f 832/893/455 833/888/455 825/825/455 -f 825/825/455 827/878/455 828/826/457 -f 828/826/457 829/909/497 830/900/455 -f 831/827/455 832/893/455 825/825/455 -f 828/826/457 830/900/455 831/827/455 -f 834/896/455 835/871/497 836/870/496 -f 837/844/468 838/840/483 804/802/455 -f 838/840/483 839/842/455 804/802/455 -f 834/896/455 836/870/496 843/886/455 -f 836/870/496 837/844/468 804/802/455 -f 843/886/455 836/870/496 804/802/455 -f 839/842/455 840/835/455 804/802/455 -f 840/835/455 825/825/455 801/803/455 -f 825/825/455 808/807/455 801/803/455 -f 842/829/455 843/886/455 804/802/455 -f 806/805/455 833/888/455 841/828/455 -f 804/802/455 806/805/455 841/828/455 -f 840/835/455 801/803/455 804/802/455 -f 845/830/458 846/837/463 847/831/459 -f 812/810/456 811/817/456 848/834/456 -f 848/834/456 849/836/456 812/810/456 -f 849/836/456 850/839/487 812/810/456 -f 850/839/487 851/851/475 812/810/456 -f 823/824/456 814/812/456 852/853/477 -f 814/812/456 812/810/456 852/853/477 -f 812/810/456 851/851/475 852/853/477 -f 853/833/461 854/880/456 856/881/456 -f 854/880/456 855/879/456 856/881/456 -f 856/881/456 819/819/456 820/818/456 -f 823/824/456 852/853/477 853/833/461 -f 856/881/456 820/818/456 853/833/461 -f 820/818/456 824/823/456 853/833/461 -f 818/816/456 819/819/456 856/881/456 -f 856/881/456 848/834/456 818/816/456 -f 840/835/451 839/842/462 849/836/462 -f 846/837/463 857/841/466 858/838/464 -f 864/859/564 859/860/485 858/838/464 -f 859/860/485 860/861/486 858/838/464 -f 858/838/464 857/841/466 838/840/465 -f 864/859/564 858/838/464 838/840/465 -f 857/841/466 861/863/489 862/862/488 -f 862/862/488 863/933/564 857/841/466 -f 863/933/564 850/839/465 857/841/466 -f 850/839/465 849/836/462 839/842/462 -f 844/832/460 865/877/501 866/843/467 -f 837/844/468 836/870/496 867/845/469 -f 868/846/470 867/845/469 869/847/471 -f 870/848/472 869/847/471 871/849/473 -f 872/850/474 871/849/473 844/832/460 -f 851/851/475 873/854/478 874/852/476 -f 873/854/478 875/856/480 876/855/479 -f 875/856/480 877/858/482 878/857/481 -f 877/858/482 846/837/463 845/830/458 -f 838/840/483 837/844/468 868/846/470 -f 868/846/470 870/848/472 859/860/485 -f 870/848/472 872/850/474 860/861/486 -f 860/861/486 872/850/474 847/831/459 -f 850/839/487 863/933/565 873/854/478 -f 873/854/478 863/933/565 862/862/488 -f 875/856/480 862/862/488 861/863/489 -f 861/863/489 857/841/466 846/837/463 -f 866/843/467 879/864/490 878/857/481 -f 879/864/490 880/865/491 876/855/479 -f 880/865/491 881/866/492 874/852/476 -f 881/866/492 853/833/461 852/853/477 -f 882/869/495 829/909/497 828/826/457 -f 828/826/457 883/867/493 882/869/495 -f 885/872/495 886/934/494 867/845/469 -f 867/845/469 836/870/496 885/872/495 -f 887/908/566 884/868/494 888/875/499 -f 884/868/494 883/867/493 888/875/499 -f 869/847/471 867/845/469 889/894/566 -f 867/845/469 886/934/494 889/894/566 -f 893/904/566 887/908/566 888/875/499 -f 869/847/471 889/894/566 890/899/566 -f 869/847/471 890/899/566 891/873/498 -f 892/874/498 893/904/566 888/875/499 -f 869/847/471 891/873/498 888/875/499 -f 869/847/471 888/875/499 894/876/500 -f 871/849/473 894/876/500 865/877/501 -f 894/876/453 888/875/453 865/877/453 -f 888/875/453 883/867/453 865/877/453 -f 883/867/453 828/826/502 865/877/453 -f 828/826/502 827/878/567 853/833/502 -f 827/878/567 854/880/567 853/833/502 -f 853/833/502 881/866/453 866/843/453 -f 881/866/453 880/865/453 866/843/453 -f 880/865/453 879/864/453 866/843/453 -f 866/843/453 865/877/453 853/833/502 -f 827/878/503 826/882/503 855/879/503 -f 825/825/504 840/835/504 848/834/504 -f 826/882/505 825/825/505 856/881/505 -f 896/883/506 832/893/519 831/827/507 -f 897/885/509 898/907/534 843/886/510 -f 900/887/512 841/828/515 833/888/513 -f 897/885/509 842/829/511 841/828/515 -f 908/919/548 901/922/551 902/927/557 -f 902/927/557 903/892/518 907/891/517 -f 903/892/518 904/912/540 906/890/516 -f 902/927/557 907/891/517 908/919/548 -f 904/912/540 905/917/546 906/890/516 -f 899/889/514 833/888/513 832/893/519 -f 910/895/522 909/898/524 889/894/520 -f 889/894/520 886/934/568 885/872/521 -f 911/897/523 910/895/522 835/871/453 -f 910/895/522 885/872/521 835/871/453 -f 909/898/524 912/902/527 890/899/525 -f 895/884/508 831/827/507 830/900/526 -f 912/902/527 914/906/532 891/873/528 -f 916/903/529 887/908/537 893/904/530 -f 914/906/532 917/929/560 892/874/533 -f 898/907/534 911/897/523 834/896/523 -f 887/908/537 916/903/529 918/918/569 -f 918/918/569 882/869/535 887/908/537 -f 882/869/535 918/918/569 829/909/451 -f 918/918/569 913/901/526 829/909/451 -f 900/887/512 899/889/514 919/910/538 -f 919/910/538 905/917/546 904/912/540 -f 921/913/541 897/885/509 900/887/512 -f 906/890/516 905/917/546 922/914/542 -f 923/915/543 922/914/542 895/884/508 -f 899/889/514 896/883/506 924/916/545 -f 918/918/547 925/932/563 923/915/543 -f 923/915/543 925/932/563 907/891/517 -f 926/920/549 916/903/529 915/905/531 -f 929/924/553 928/923/552 912/902/527 -f 898/907/534 930/926/556 931/925/554 -f 930/926/556 904/912/540 903/892/518 -f 902/927/557 932/931/562 931/925/554 -f 931/925/554 932/931/562 910/895/558 -f 914/906/532 933/930/561 934/928/559 -f 933/930/561 901/922/551 908/919/548 -f 902/927/557 901/922/551 929/924/553 -f 932/931/562 929/924/553 909/898/524 -f 914/906/532 912/902/527 928/923/552 -f 927/921/550 915/905/531 917/929/560 -f 916/903/529 926/920/549 925/932/563 -f 926/920/549 908/919/548 907/891/517 -f 930/926/556 898/907/534 897/885/509 -f 922/914/542 924/916/545 896/883/506 -f 892/874/533 917/929/560 915/905/531 -o Plane -v -1.538719 0.517962 -0.152938 -v -1.539156 0.544138 -0.137431 -v -1.539476 0.563301 -0.095064 -v -1.539593 0.570315 -0.037191 -v -1.539593 0.570315 0.038415 -v -1.539476 0.563301 0.096289 -v -1.539156 0.544138 0.138655 -v -1.538719 0.517962 0.154162 -v -1.533876 0.227849 0.154162 -v -1.533876 0.227849 -0.152938 -v -2.094905 0.109525 0.012483 -v -2.094905 0.109525 -0.011259 -v -2.150966 0.036699 -0.011259 -v -2.150966 0.036699 0.012483 -v -2.023875 0.187910 0.012483 -v -2.023875 0.187910 -0.011259 -v -2.264097 -0.213929 0.012483 -v -2.264255 -0.203596 0.012483 -v -2.264255 -0.203596 -0.011259 -v -2.264097 -0.213929 -0.011259 -v -1.797079 0.059583 0.013017 -v -1.797079 0.059583 -0.011793 -v -1.765046 0.100282 -0.011892 -v -1.765046 0.100282 0.013116 -v -1.762607 0.447951 -0.088740 -v -1.760241 0.429221 -0.077230 -v -1.762832 0.430912 -0.014565 -v -1.766291 0.457644 -0.023152 -v -1.956909 0.250853 0.012483 -v -1.799493 0.360493 0.012483 -v -1.799493 0.360493 -0.011259 -v -1.956909 0.250853 -0.011259 -v -2.241662 -0.130294 0.012483 -v -2.241662 -0.130294 -0.011259 -v -2.252959 -0.152255 -0.011259 -v -2.252959 -0.152255 0.012483 -v -2.261228 -0.179086 0.012483 -v -2.261228 -0.179086 -0.011259 -v -1.785496 0.376760 0.012483 -v -1.785496 0.376760 -0.011259 -v -1.955881 -0.183903 -0.111561 -v -1.935984 -0.185223 -0.069363 -v -1.924661 -0.185223 -0.069363 -v -1.944557 -0.183903 -0.111561 -v -1.755752 0.462296 0.096289 -v -1.692113 0.501026 0.096289 -v -1.734405 0.485570 0.038415 -v -1.758670 0.470835 0.038415 -v -1.820971 0.021307 0.012961 -v -1.820971 0.021307 -0.011736 -v -1.766037 0.413383 0.011434 -v -1.766043 0.413356 -0.011069 -v -1.688728 0.510485 0.038415 -v -1.634369 0.535784 0.038415 -v -1.634369 0.535784 -0.037191 -v -1.688728 0.510485 -0.037191 -v -1.734405 0.485570 -0.037191 -v -1.735899 0.380985 0.141134 -v -1.738122 0.393971 0.148146 -v -1.752230 0.425226 0.132688 -v -1.750383 0.410947 0.124334 -v -1.607360 0.194290 -0.018635 -v -1.607360 0.194290 0.019860 -v -1.641579 0.188526 0.019117 -v -1.641579 0.188526 0.000612 -v -1.641579 0.188526 -0.017893 -v -1.733455 0.132498 -0.012042 -v -1.733455 0.132498 0.013266 -v -1.707226 0.155364 0.013479 -v -1.707226 0.155364 -0.012254 -v -1.678132 0.174279 -0.012546 -v -1.678132 0.174279 0.013771 -v -1.644519 0.187380 -0.012941 -v -1.644519 0.187380 0.014166 -v -1.575692 0.195123 0.154162 -v -1.607360 0.194290 0.154162 -v -1.607360 0.194290 0.109395 -v -1.607360 0.194290 0.064627 -v -1.607360 0.194290 -0.063403 -v -1.607360 0.194290 -0.108170 -v -1.607360 0.194290 -0.152938 -v -1.575692 0.195123 -0.152938 -v -1.733274 0.410681 0.154162 -v -1.736517 0.397386 0.154162 -v -1.662416 0.234366 0.154162 -v -1.568848 0.507794 0.154162 -v -1.614762 0.489887 0.154162 -v -1.666237 0.465930 0.154162 -v -1.585895 0.554689 -0.037191 -v -1.585895 0.554689 0.038415 -v -1.677482 0.488208 0.138655 -v -1.746489 0.440323 0.138655 -v -1.762824 0.428644 0.014930 -v -1.762496 0.429258 0.000612 -v -1.641979 0.188370 -0.014572 -v -1.643078 0.187942 -0.013588 -v -1.666578 0.232641 0.141182 -v -1.735431 0.357945 0.131601 -v -1.676320 0.228796 0.131678 -v -1.688855 0.223882 -0.126973 -v -1.738139 0.339948 -0.126890 -v -1.735431 0.357945 -0.130376 -v -1.676320 0.228796 -0.130453 -v -1.666237 0.465930 -0.152938 -v -1.733283 0.410674 -0.152938 -v -1.746708 0.440289 -0.137362 -v -1.677482 0.488208 -0.137431 -v -1.762832 0.430912 0.015790 -v -1.765303 0.457946 0.023719 -v -1.752361 0.425246 -0.131438 -v -1.750383 0.410947 -0.123109 -v -1.762824 0.428644 -0.013705 -v -1.641979 0.188370 0.015797 -v -1.643078 0.187942 0.014812 -v -1.735899 0.380985 -0.139910 -v -1.666578 0.232641 -0.139957 -v -1.738139 0.339948 0.128114 -v -1.688855 0.223882 0.128198 -v -1.969466 0.146669 0.128229 -v -1.905013 0.207250 0.128229 -v -1.940354 0.232183 0.112723 -v -2.006064 0.170421 0.112723 -v -1.952473 0.245850 0.070357 -v -2.019103 0.183224 0.070357 -v -1.905013 0.207250 -0.127005 -v -1.969466 0.146669 -0.127005 -v -2.006064 0.170421 -0.111498 -v -1.940354 0.232183 -0.111498 -v -2.019103 0.183224 -0.069132 -v -1.952473 0.245850 -0.069132 -v -2.037810 0.071248 0.128229 -v -2.075751 0.093518 0.112722 -v -2.089773 0.105235 0.070357 -v -2.037810 0.071248 -0.127004 -v -2.075751 0.093518 -0.111498 -v -2.089773 0.105235 -0.069132 -v -2.091766 0.001156 0.128228 -v -2.130760 0.022059 0.112722 -v -2.145552 0.032777 0.070357 -v -2.091767 0.001156 -0.127004 -v -2.130760 0.022059 -0.111498 -v -2.145552 0.032776 -0.069132 -v -2.206585 -0.171157 0.128231 -v -2.198706 -0.155841 0.128228 -v -2.220184 -0.143067 0.112722 -v -2.229772 -0.161706 0.112723 -v -2.235907 -0.133717 0.070357 -v -2.246746 -0.154788 0.070357 -v -2.198706 -0.155841 -0.127004 -v -2.206585 -0.171157 -0.127006 -v -2.229772 -0.161706 -0.111499 -v -2.220184 -0.143067 -0.111498 -v -2.246746 -0.154788 -0.069132 -v -2.235907 -0.133717 -0.069132 -v -2.212260 -0.189571 0.128231 -v -2.236744 -0.184328 0.112723 -v -2.254668 -0.180491 0.070357 -v -2.212260 -0.189571 -0.127006 -v -2.236744 -0.184328 -0.111499 -v -2.254668 -0.180491 -0.069132 -v -2.214371 -0.206665 0.128226 -v -2.239313 -0.205130 0.112721 -v -2.257572 -0.204007 0.070356 -v -2.214371 -0.206665 -0.127002 -v -2.239313 -0.205130 -0.111497 -v -2.257572 -0.204007 -0.069132 -v -2.215671 -0.225906 0.128231 -v -2.239884 -0.219918 0.112723 -v -2.257609 -0.215534 0.070357 -v -2.215671 -0.225906 -0.127006 -v -2.239884 -0.219918 -0.111499 -v -2.257609 -0.215534 -0.069132 -v -1.764352 0.324851 0.128230 -v -1.752502 0.374810 0.112464 -v -1.781922 0.342672 0.112723 -v -1.775645 0.377964 0.070522 -v -1.794785 0.355718 0.070357 -v -1.764352 0.324851 -0.127004 -v -1.781922 0.342672 -0.111498 -v -1.752502 0.374806 -0.111355 -v -1.794785 0.355718 -0.069132 -v -1.775645 0.377964 -0.069298 -v -1.837957 0.088301 0.128233 -v -1.864320 0.046066 0.128233 -v -1.842645 0.033687 0.112789 -v -1.817518 0.073942 0.112796 -v -1.826778 0.024625 0.070596 -v -1.802556 0.063431 0.070624 -v -1.864320 0.046066 -0.127009 -v -1.837957 0.088301 -0.127009 -v -1.817518 0.073942 -0.111572 -v -1.842645 0.033687 -0.111564 -v -1.802556 0.063431 -0.069400 -v -1.826778 0.024625 -0.069371 -v -1.802565 0.133269 0.128232 -v -1.783805 0.116775 0.112809 -v -1.770073 0.104701 0.070674 -v -1.802565 0.133269 -0.127008 -v -1.783805 0.116775 -0.111585 -v -1.770073 0.104701 -0.069449 -v -1.767706 0.168817 0.128232 -v -1.750581 0.150657 0.112829 -v -1.738044 0.137363 0.070749 -v -1.767706 0.168817 -0.127008 -v -1.750581 0.150657 -0.111605 -v -1.738044 0.137363 -0.069524 -v -1.928702 -0.185706 -0.011721 -v -1.917378 -0.185706 -0.011721 -v -1.983060 -0.182100 -0.127007 -v -1.971736 -0.182100 -0.127007 -v -1.994269 -0.225399 -0.127006 -v -1.700124 0.219480 -0.127006 -v -1.737359 0.195273 -0.127007 -v -1.700124 0.219481 0.128231 -v -1.737359 0.195273 0.128231 -v -1.722292 0.175319 0.112857 -v -1.689128 0.196880 0.112896 -v -1.711263 0.160711 0.070855 -v -1.681079 0.180335 0.071001 -v -1.689128 0.196880 -0.111671 -v -1.722292 0.175319 -0.111633 -v -1.681079 0.180335 -0.069776 -v -1.711263 0.160711 -0.069630 -v -1.662416 0.234366 -0.152938 -v -1.651997 0.211446 -0.134845 -v -1.655489 0.210034 -0.123164 -v -1.644370 0.194668 -0.085415 -v -1.646486 0.193829 -0.077270 -v -1.762713 0.401689 0.069756 -v -1.736517 0.397386 -0.152938 -v -1.614763 0.489887 -0.152938 -v -1.568848 0.507794 -0.152938 -v -1.762079 0.448031 0.090168 -v -1.760241 0.429221 0.078455 -v -1.738147 0.394115 -0.146999 -v -1.760212 0.470543 -0.036751 -v -1.577372 0.531241 0.138655 -v -1.624566 0.512836 0.138655 -v -1.583611 0.548406 0.096289 -v -1.631743 0.529635 0.096289 -v -1.624566 0.512836 -0.137431 -v -1.577372 0.531241 -0.137431 -v -1.631743 0.529635 -0.095064 -v -1.583611 0.548406 -0.095064 -v -1.685715 0.504516 0.096289 -v -1.685715 0.504516 -0.095064 -v -1.692113 0.501026 -0.095064 -v -1.651997 0.211446 0.136070 -v -1.644370 0.194668 0.086640 -v -1.655489 0.210034 0.124389 -v -1.646486 0.193829 0.078495 -v -1.762716 0.401675 -0.068961 -v -1.664217 0.206608 0.116031 -v -1.652049 0.191655 0.073255 -v -1.675743 0.202101 0.112932 -v -1.659515 0.188741 0.071194 -v -1.664217 0.206608 -0.114806 -v -1.675743 0.202101 -0.111708 -v -1.652049 0.191655 -0.072030 -v -1.659515 0.188741 -0.069969 -v -1.750106 0.391463 0.115955 -v -1.760133 0.417340 0.073251 -v -1.756545 0.462186 -0.094811 -v -1.750106 0.391463 -0.114731 -v -1.760133 0.417340 -0.072026 -v -1.928702 -0.185706 0.012945 -v -1.917378 -0.185706 0.012945 -v -1.955881 -0.183903 0.112786 -v -1.983060 -0.182100 0.128231 -v -1.971736 -0.182100 0.128231 -v -1.944557 -0.183903 0.112786 -v -1.935984 -0.185223 0.070588 -v -1.937822 -0.224991 0.012942 -v -1.937822 -0.224991 -0.011718 -v -1.994269 -0.225399 0.128231 -v -1.966046 -0.225195 0.112785 -v -1.945385 -0.225046 0.070586 -v -1.924661 -0.185223 0.070588 -v -1.945385 -0.225046 -0.069362 -v -1.966046 -0.225195 -0.111560 -v -1.982661 0.134956 0.123056 -v -1.973533 0.136958 0.123056 -v -1.971152 0.127921 0.123056 -v -1.971734 0.120445 0.123056 -v -2.156088 -0.181151 0.123056 -v -2.162477 -0.185078 0.123056 -v -2.171605 -0.187080 0.123056 -v -2.173986 -0.178043 0.123056 -v -2.173404 -0.170567 0.123056 -v -1.989050 0.131030 0.123056 -v -1.971152 0.127921 0.136146 -v -1.971734 0.120445 0.136146 -v -1.973533 0.136958 0.136146 -v -1.982661 0.134956 0.136146 -v -1.989050 0.131030 0.136146 -v -2.173404 -0.170567 0.136145 -v -2.173986 -0.178043 0.136145 -v -2.171605 -0.187080 0.136145 -v -2.162477 -0.185078 0.136145 -v -2.156088 -0.181151 0.136145 -v -1.939820 0.130753 0.123056 -v -1.930677 0.132780 0.123056 -v -1.928312 0.123718 0.123056 -v -1.928909 0.116215 0.123056 -v -2.113168 -0.185225 0.123056 -v -2.119573 -0.189178 0.123056 -v -2.128717 -0.191205 0.123056 -v -2.131082 -0.182143 0.123056 -v -2.130484 -0.174640 0.123056 -v -1.946226 0.126799 0.123056 -v -1.928312 0.123718 0.136146 -v -1.928909 0.116215 0.136146 -v -1.930677 0.132780 0.136146 -v -1.939820 0.130753 0.136146 -v -1.946226 0.126799 0.136146 -v -2.130484 -0.174640 0.136145 -v -2.131082 -0.182143 0.136145 -v -2.128717 -0.191205 0.136145 -v -2.119573 -0.189178 0.136145 -v -2.113168 -0.185225 0.136145 -v -1.849913 0.126959 0.123056 -v -1.840757 0.129007 0.123056 -v -1.838404 0.119925 0.123056 -v -1.839015 0.112400 0.123056 -v -2.023198 -0.188916 0.123056 -v -2.029616 -0.192890 0.123056 -v -2.038772 -0.194937 0.123056 -v -2.041124 -0.185855 0.123056 -v -2.040514 -0.178331 0.123056 -v -1.856331 0.122985 0.123056 -v -1.838404 0.119925 0.136145 -v -1.839015 0.112400 0.136145 -v -1.840757 0.129007 0.136145 -v -1.849913 0.126959 0.136145 -v -1.856331 0.122985 0.136145 -v -2.040514 -0.178331 0.136145 -v -2.041124 -0.185855 0.136145 -v -2.038772 -0.194937 0.136145 -v -2.029616 -0.192890 0.136145 -v -2.023198 -0.188916 0.136145 -v -1.893210 0.130504 0.123056 -v -1.884055 0.132552 0.123056 -v -1.881702 0.123470 0.123056 -v -1.882312 0.115945 0.123056 -v -2.066495 -0.185371 0.123056 -v -2.072913 -0.189345 0.123056 -v -2.082069 -0.191392 0.123056 -v -2.084422 -0.182310 0.123056 -v -2.083811 -0.174786 0.123056 -v -1.899628 0.126530 0.123056 -v -1.881702 0.123470 0.136145 -v -1.882312 0.115945 0.136145 -v -1.884055 0.132552 0.136145 -v -1.893210 0.130504 0.136145 -v -1.899628 0.126530 0.136145 -v -2.083811 -0.174786 0.136145 -v -2.084422 -0.182310 0.136145 -v -2.082069 -0.191392 0.136145 -v -2.072913 -0.189345 0.136145 -v -2.066495 -0.185371 0.136145 -v -1.982661 0.134956 -0.134921 -v -1.973533 0.136958 -0.134921 -v -1.971152 0.127921 -0.134921 -v -1.971734 0.120445 -0.134921 -v -2.156088 -0.181151 -0.134921 -v -2.162477 -0.185078 -0.134921 -v -2.171605 -0.187080 -0.134921 -v -2.173986 -0.178043 -0.134921 -v -2.173404 -0.170567 -0.134921 -v -1.989050 0.131030 -0.134921 -v -1.971152 0.127921 -0.121832 -v -1.971734 0.120445 -0.121832 -v -1.973533 0.136958 -0.121832 -v -1.982661 0.134956 -0.121832 -v -1.989050 0.131030 -0.121832 -v -2.173404 -0.170567 -0.121832 -v -2.173986 -0.178043 -0.121832 -v -2.171605 -0.187080 -0.121832 -v -2.162477 -0.185078 -0.121832 -v -2.156088 -0.181151 -0.121832 -v -1.939820 0.130753 -0.134921 -v -1.930677 0.132780 -0.134921 -v -1.928312 0.123718 -0.134921 -v -1.928909 0.116215 -0.134921 -v -2.113168 -0.185225 -0.134921 -v -2.119573 -0.189178 -0.134921 -v -2.128717 -0.191205 -0.134921 -v -2.131082 -0.182143 -0.134921 -v -2.130484 -0.174640 -0.134921 -v -1.946226 0.126800 -0.134921 -v -1.928312 0.123718 -0.121832 -v -1.928909 0.116215 -0.121832 -v -1.930677 0.132780 -0.121832 -v -1.939820 0.130753 -0.121832 -v -1.946226 0.126800 -0.121832 -v -2.130484 -0.174640 -0.121832 -v -2.131082 -0.182143 -0.121832 -v -2.128717 -0.191205 -0.121832 -v -2.119573 -0.189178 -0.121832 -v -2.113168 -0.185225 -0.121832 -v -1.849913 0.126959 -0.134921 -v -1.840757 0.129007 -0.134921 -v -1.838404 0.119925 -0.134921 -v -1.839015 0.112400 -0.134921 -v -2.023198 -0.188916 -0.134921 -v -2.029616 -0.192890 -0.134921 -v -2.038772 -0.194937 -0.134921 -v -2.041124 -0.185855 -0.134921 -v -2.040514 -0.178331 -0.134921 -v -1.856331 0.122985 -0.134921 -v -1.838404 0.119925 -0.121832 -v -1.839015 0.112400 -0.121832 -v -1.840757 0.129007 -0.121832 -v -1.849913 0.126959 -0.121832 -v -1.856331 0.122985 -0.121832 -v -2.040514 -0.178331 -0.121832 -v -2.041124 -0.185855 -0.121832 -v -2.038772 -0.194937 -0.121832 -v -2.029616 -0.192890 -0.121832 -v -2.023198 -0.188916 -0.121832 -v -1.893210 0.130504 -0.134921 -v -1.884055 0.132552 -0.134921 -v -1.881702 0.123470 -0.134921 -v -1.882312 0.115945 -0.134921 -v -2.066495 -0.185371 -0.134921 -v -2.072913 -0.189345 -0.134921 -v -2.082069 -0.191392 -0.134921 -v -2.084422 -0.182310 -0.134921 -v -2.083811 -0.174786 -0.134921 -v -1.899628 0.126530 -0.134921 -v -1.881702 0.123470 -0.121832 -v -1.882312 0.115945 -0.121832 -v -1.884055 0.132552 -0.121832 -v -1.893210 0.130504 -0.121832 -v -1.899628 0.126530 -0.121832 -v -2.083811 -0.174786 -0.121832 -v -2.084422 -0.182310 -0.121832 -v -2.082069 -0.191392 -0.121832 -v -2.072913 -0.189345 -0.121832 -v -2.066495 -0.185371 -0.121832 -vt 0.628329 0.321805 +vt 0.176155 0.159372 +vt 0.351182 0.159372 +vt 0.176155 0.157238 +vt 0.286086 0.114179 +vt 0.289470 0.123449 +vt 0.206319 0.123491 +vt 0.199684 0.136404 +vt 0.188460 0.148679 +vt 0.351182 0.157119 +vt 0.207246 0.118405 +vt 0.302205 0.137250 +vt 0.326572 0.148575 +vt 0.289117 0.138628 +vt 0.294854 0.136252 +vt 0.286775 0.135968 +vt 0.220441 0.149560 +vt 0.214194 0.146627 +vt 0.220638 0.106650 +vt 0.220441 0.110047 +vt 0.228285 0.109317 +vt 0.273140 0.106307 +vt 0.282061 0.108308 +vt 0.210999 0.110994 +vt 0.266968 0.150290 +vt 0.294854 0.152477 +vt 0.286775 0.123640 +vt 0.208478 0.123640 +vt 0.208478 0.135968 +vt 0.266968 0.109317 +vt 0.228285 0.150290 +vt 0.214194 0.112981 +vt 0.209799 0.117931 +vt 0.209799 0.141676 +vt 0.285454 0.141676 +vt 0.281058 0.146627 +vt 0.274811 0.149560 +vt 0.274811 0.110047 +vt 0.281058 0.112981 +vt 0.285454 0.117931 +vt 0.300590 0.150101 +vt 0.302967 0.144365 +vt 0.300590 0.138628 +vt 0.299187 0.138047 +vt 0.287699 0.142053 +vt 0.286741 0.144365 +vt 0.289117 0.150101 +vt 0.394791 0.688361 +vt 0.394791 0.696196 +vt 0.588350 0.696196 +vt 0.588350 0.696221 +vt 0.597168 0.696196 +vt 0.597168 0.688361 +vt 0.588350 0.688361 +vt 0.588350 0.703650 +vt 0.597168 0.703650 +vt 0.597168 0.696221 +vt 0.486610 0.403096 +vt 0.493668 0.400172 +vt 0.496592 0.393114 +vt 0.493668 0.386056 +vt 0.486610 0.383132 +vt 0.479552 0.386056 +vt 0.476628 0.393114 +vt 0.479552 0.400172 vt 0.628329 0.321805 vt 0.723547 0.410717 vt 0.451913 0.450017 vt 0.417065 0.447278 -vt 0.451913 0.450017 -vt 0.492148 0.449947 vt 0.492148 0.449947 vt 0.320353 0.418005 vt 0.317476 0.415326 -vt 0.317476 0.415326 vt 0.513735 0.353212 vt 0.533389 0.354544 -vt 0.513735 0.353212 vt 0.627472 0.437038 vt 0.633953 0.445991 vt 0.632155 0.442480 vt 0.598064 0.430599 vt 0.526987 0.447088 -vt 0.526987 0.447088 vt 0.346805 0.430312 vt 0.337725 0.427903 -vt 0.346805 0.430312 -vt 0.328043 0.423398 vt 0.328043 0.423398 vt 0.606224 0.430794 -vt 0.606224 0.430794 -vt 0.337725 0.427903 vt 0.409219 0.330020 vt 0.407407 0.332776 vt 0.404520 0.335973 @@ -4763,154 +3182,83 @@ vt 0.637952 0.444202 vt 0.649964 0.444108 vt 0.639619 0.447202 vt 0.496840 0.350199 -vt 0.496840 0.350199 vt 0.621523 0.434636 vt 0.689639 0.428669 vt 0.668641 0.437565 -vt 0.668641 0.437565 -vt 0.649964 0.444108 vt 0.623159 0.421808 vt 0.624826 0.429596 vt 0.620060 0.417870 vt 0.600123 0.333994 vt 0.589773 0.342184 -vt 0.589773 0.342184 vt 0.550537 0.353838 -vt 0.550537 0.353838 -vt 0.563678 0.352263 -vt 0.576433 0.348871 vt 0.563678 0.352263 vt 0.576433 0.348871 vt 0.588701 0.342722 -vt 0.600123 0.333994 -vt 0.600123 0.333994 vt 0.608431 0.325267 vt 0.681681 0.411435 vt 0.661797 0.419859 -vt 0.608431 0.325267 vt 0.707333 0.419804 -vt 0.723547 0.410717 -vt 0.707333 0.419804 -vt 0.689639 0.428669 vt 0.634111 0.435986 vt 0.629112 0.424699 vt 0.626650 0.437620 vt 0.626907 0.437684 vt 0.589627 0.342258 -vt 0.589773 0.342184 vt 0.589226 0.342459 vt 0.595854 0.360487 vt 0.613675 0.411865 vt 0.592285 0.362257 vt 0.607904 0.408042 -vt 0.592285 0.362257 vt 0.587703 0.364543 vt 0.621514 0.434631 -vt 0.661797 0.419859 vt 0.634046 0.436039 vt 0.665219 0.428712 vt 0.627288 0.438200 vt 0.634290 0.445789 -vt 0.624826 0.429596 vt 0.628358 0.433800 -vt 0.626650 0.437620 -vt 0.627288 0.438200 -vt 0.589627 0.342258 -vt 0.589226 0.342459 -vt 0.588701 0.342722 -vt 0.613675 0.411865 -vt 0.595854 0.360487 -vt 0.607904 0.408042 -vt 0.587703 0.364543 vt 0.494375 0.424075 vt 0.525936 0.437655 vt 0.491751 0.440461 vt 0.526705 0.444560 vt 0.492041 0.447405 -vt 0.494375 0.424075 -vt 0.525936 0.437655 vt 0.527906 0.421323 -vt 0.491751 0.440461 -vt 0.526705 0.444560 -vt 0.492041 0.447405 vt 0.455663 0.424142 vt 0.452277 0.440529 vt 0.452011 0.447475 -vt 0.455663 0.424142 -vt 0.452277 0.440529 vt 0.422122 0.421506 vt 0.418083 0.437842 vt 0.417338 0.444750 -vt 0.422122 0.421506 -vt 0.417338 0.444750 -vt 0.452011 0.447475 -vt 0.417065 0.447278 vt 0.344211 0.409994 vt 0.348674 0.420993 vt 0.340968 0.418949 vt 0.347305 0.427815 vt 0.338594 0.425504 -vt 0.344211 0.409994 -vt 0.348674 0.420993 vt 0.350543 0.411674 -vt 0.340968 0.418949 -vt 0.347305 0.427815 -vt 0.338594 0.425504 vt 0.332805 0.415150 vt 0.337566 0.406902 vt 0.329319 0.421188 -vt 0.332805 0.415150 vt 0.326277 0.410573 vt 0.332202 0.403141 vt 0.321940 0.416013 -vt 0.337566 0.406902 -vt 0.326277 0.410573 -vt 0.321940 0.416013 -vt 0.329319 0.421188 -vt 0.320353 0.418005 vt 0.321958 0.406964 vt 0.326439 0.398603 vt 0.318677 0.413085 -vt 0.332202 0.403141 -vt 0.321958 0.406964 -vt 0.318677 0.413085 -vt 0.350543 0.411674 -vt 0.418083 0.437842 vt 0.597512 0.421096 vt 0.596961 0.411593 vt 0.609075 0.428320 vt 0.597916 0.428052 -vt 0.597512 0.421096 vt 0.614083 0.420982 -vt 0.609075 0.428320 -vt 0.597916 0.428052 -vt 0.527906 0.421323 -vt 0.596961 0.411593 -vt 0.598064 0.430599 vt 0.492779 0.368748 vt 0.512578 0.362642 vt 0.511421 0.372072 vt 0.494809 0.359474 vt 0.513425 0.355739 vt 0.496296 0.352684 -vt 0.492779 0.368748 -vt 0.512578 0.362642 -vt 0.494809 0.359474 -vt 0.513425 0.355739 -vt 0.496296 0.352684 vt 0.533263 0.364044 vt 0.533137 0.373544 vt 0.533356 0.357089 -vt 0.511421 0.372072 -vt 0.533263 0.364044 -vt 0.533356 0.357089 -vt 0.533389 0.354544 vt 0.552058 0.372765 vt 0.551297 0.363302 vt 0.550740 0.356374 -vt 0.552058 0.372765 -vt 0.533137 0.373544 -vt 0.551297 0.363302 vt 0.410939 0.327841 vt 0.412106 0.326823 vt 0.398101 0.344105 @@ -4920,1443 +3268,2538 @@ vt 0.583588 0.366602 vt 0.565470 0.361603 vt 0.577392 0.351247 vt 0.564158 0.354765 -vt 0.567262 0.370942 -vt 0.580011 0.357736 vt 0.565470 0.361602 -vt 0.577392 0.351247 -vt 0.564158 0.354765 vt 0.593588 0.350968 vt 0.592299 0.351594 vt 0.590796 0.344538 vt 0.590020 0.344921 -vt 0.550740 0.356374 vt 0.619069 0.430717 vt 0.614084 0.420983 -vt 0.600123 0.333994 vt 0.597402 0.359752 vt 0.632313 0.442352 -vt 0.627472 0.437038 vt 0.623193 0.421852 vt 0.639144 0.447563 vt 0.702887 0.411421 vt 0.685660 0.420052 vt 0.706141 0.417558 vt 0.688573 0.426360 -vt 0.681681 0.411435 -vt 0.702887 0.411421 vt 0.698440 0.403038 -vt 0.685660 0.420052 -vt 0.706141 0.417558 -vt 0.688573 0.426360 -vt 0.665219 0.428712 vt 0.667724 0.435193 vt 0.665108 0.436110 -vt 0.665108 0.436110 -vt 0.667724 0.435193 vt 0.721597 0.408896 vt 0.716269 0.403921 vt 0.708991 0.397125 -vt 0.708991 0.397125 -vt 0.698440 0.403038 -vt 0.716269 0.403921 -vt 0.721597 0.408896 -vt 0.600123 0.333994 -vt 0.593588 0.350968 -vt 0.600123 0.333994 -vt 0.590796 0.344538 -vt 0.600123 0.333994 -vt 0.597402 0.359752 -vt 0.592299 0.351594 -vt 0.590020 0.344921 vt 0.619065 0.430715 vt 0.589107 0.353184 vt 0.587987 0.345938 vt 0.584897 0.355289 vt 0.585262 0.347302 -vt 0.589107 0.353184 -vt 0.584897 0.355289 vt 0.587987 0.345937 -vt 0.585262 0.347302 vt 0.619396 0.424552 vt 0.624145 0.433979 vt 0.624532 0.422226 -vt 0.620060 0.417870 -vt 0.624532 0.422226 vt 0.637719 0.444398 -vt 0.619396 0.424552 -vt 0.624145 0.433979 -vt 0.583588 0.366602 -vt 0.410939 0.327841 vt 0.413826 0.324644 -vt 0.404520 0.335973 vt 0.400987 0.340908 -vt 0.407407 0.332776 -vt 0.409219 0.330020 -vt 0.413826 0.324644 vt 0.397524 0.320401 vt 0.390272 0.328317 vt 0.395581 0.322522 -vt 0.412106 0.326823 -vt 0.397524 0.320401 -vt 0.395581 0.322522 -vt 0.390272 0.328317 -vt 0.400987 0.340908 -vt 0.383020 0.336232 vt 0.383020 0.336232 vt 0.629108 0.424700 vt 0.628386 0.433758 -vt 0.326439 0.398603 vt 0.352835 0.400778 vt 0.484968 0.425617 vt 0.486394 0.418030 vt 0.488653 0.419772 -vt 0.488653 0.419772 vt 0.354262 0.393192 -vt 0.486394 0.418030 -vt 0.484968 0.425617 vt 0.487705 0.424814 -vt 0.354262 0.393192 vt 0.351525 0.393994 -vt 0.352835 0.400778 -vt 0.351525 0.393994 -vt 0.348633 0.396061 vt 0.348633 0.396061 vt 0.350577 0.399036 vt 0.490597 0.422747 -vt 0.490597 0.422747 -vt 0.487705 0.424814 -vt 0.350577 0.399036 vt 0.362627 0.387623 vt 0.494690 0.412449 vt 0.496116 0.404863 vt 0.498387 0.406607 -vt 0.498387 0.406607 vt 0.364053 0.380037 -vt 0.496116 0.404863 -vt 0.494690 0.412449 vt 0.497439 0.411649 -vt 0.364053 0.380037 vt 0.361304 0.380838 -vt 0.362627 0.387623 -vt 0.361304 0.380838 -vt 0.358401 0.382902 vt 0.358401 0.382902 vt 0.360356 0.385880 vt 0.500342 0.409584 -vt 0.500342 0.409584 -vt 0.497439 0.411649 -vt 0.360356 0.385880 vt 0.384519 0.361285 vt 0.516529 0.386100 vt 0.517955 0.378514 vt 0.520235 0.380260 -vt 0.520235 0.380260 vt 0.385945 0.353698 -vt 0.517955 0.378514 -vt 0.516529 0.386100 vt 0.519287 0.385301 -vt 0.385945 0.353698 vt 0.383187 0.354497 -vt 0.384519 0.361285 -vt 0.383187 0.354497 -vt 0.380275 0.356560 vt 0.380275 0.356560 vt 0.382239 0.359539 vt 0.522198 0.383239 -vt 0.522198 0.383239 -vt 0.519287 0.385301 -vt 0.382239 0.359539 vt 0.374483 0.374411 vt 0.506492 0.399226 vt 0.507919 0.391640 vt 0.510198 0.393386 -vt 0.510198 0.393386 vt 0.375909 0.366825 -vt 0.507919 0.391640 -vt 0.506492 0.399226 vt 0.509250 0.398428 -vt 0.375909 0.366825 vt 0.373151 0.367623 -vt 0.374483 0.374411 -vt 0.373151 0.367623 -vt 0.370239 0.369686 vt 0.370239 0.369686 vt 0.372203 0.372665 vt 0.512162 0.396365 -vt 0.512162 0.396365 -vt 0.509250 0.398428 -vt 0.372203 0.372665 -vt 0.352835 0.400778 -vt 0.484968 0.425617 -vt 0.486394 0.418030 -vt 0.488653 0.419772 -vt 0.488653 0.419772 -vt 0.354262 0.393192 -vt 0.486394 0.418030 -vt 0.484968 0.425617 -vt 0.487705 0.424814 -vt 0.354262 0.393192 -vt 0.351525 0.393994 -vt 0.352835 0.400778 -vt 0.351525 0.393994 -vt 0.348633 0.396061 -vt 0.348633 0.396061 -vt 0.350577 0.399036 -vt 0.490597 0.422747 -vt 0.490597 0.422747 -vt 0.487705 0.424814 -vt 0.350577 0.399036 -vt 0.362627 0.387623 -vt 0.494690 0.412449 -vt 0.496116 0.404863 -vt 0.498387 0.406607 -vt 0.498387 0.406607 -vt 0.364053 0.380037 -vt 0.496116 0.404863 -vt 0.494690 0.412449 -vt 0.497439 0.411649 -vt 0.364053 0.380037 vt 0.361304 0.380837 -vt 0.362627 0.387623 -vt 0.361304 0.380838 -vt 0.358401 0.382902 -vt 0.358401 0.382902 -vt 0.360356 0.385880 -vt 0.500342 0.409584 -vt 0.500342 0.409584 -vt 0.497439 0.411649 -vt 0.360356 0.385880 -vt 0.384519 0.361285 -vt 0.516529 0.386100 -vt 0.517955 0.378514 -vt 0.520235 0.380260 -vt 0.520235 0.380260 -vt 0.385945 0.353698 -vt 0.517955 0.378514 -vt 0.516529 0.386100 -vt 0.519287 0.385301 -vt 0.385945 0.353698 -vt 0.383187 0.354497 -vt 0.384519 0.361285 -vt 0.383187 0.354497 -vt 0.380275 0.356560 -vt 0.380275 0.356560 -vt 0.382239 0.359539 -vt 0.522198 0.383239 -vt 0.522198 0.383239 -vt 0.519287 0.385301 -vt 0.382239 0.359539 -vt 0.374483 0.374411 -vt 0.506492 0.399226 -vt 0.507919 0.391640 -vt 0.510198 0.393386 -vt 0.510198 0.393386 -vt 0.375909 0.366825 -vt 0.507919 0.391640 -vt 0.506492 0.399226 -vt 0.509250 0.398428 -vt 0.375909 0.366825 -vt 0.373151 0.367623 -vt 0.374483 0.374411 -vt 0.373151 0.367623 -vt 0.370239 0.369686 -vt 0.370239 0.369686 -vt 0.372203 0.372665 -vt 0.512162 0.396365 -vt 0.512162 0.396365 -vt 0.509250 0.398428 -vt 0.372203 0.372665 -vt 0.600123 0.333994 -vt 0.398101 0.344105 -vn 0.9026 -0.4305 0.0000 -vn 0.9999 0.0167 -0.0000 -vn -0.7661 0.6402 -0.0574 -vn -0.8368 0.5446 0.0572 -vn -0.7661 0.6402 0.0574 -vn -0.7123 0.6995 -0.0574 -vn -0.7123 0.6995 0.0574 -vn -0.9969 0.0537 0.0574 -vn -0.9982 -0.0141 -0.0577 -vn -0.9982 -0.0141 0.0577 -vn 0.8168 -0.5740 -0.0579 -vn 0.7497 -0.6593 0.0579 -vn 0.8168 -0.5740 0.0579 -vn -0.9883 -0.1209 -0.0934 -vn -0.9876 0.1563 -0.0163 -vn -0.9829 0.0858 -0.1627 -vn -0.6688 0.7412 0.0579 -vn -0.6289 0.7753 -0.0573 -vn -0.6289 0.7753 0.0573 -vn -0.8826 0.4666 -0.0574 -vn -0.9245 0.3768 0.0575 -vn -0.8826 0.4666 0.0574 -vn -0.9762 0.2090 -0.0575 -vn -0.9762 0.2090 0.0575 -vn -0.8211 0.5671 -0.0647 -vn -0.8208 0.5676 0.0650 -vn -0.9245 0.3768 -0.0575 -vn 0.0000 0.9998 0.0217 -vn 0.0000 0.9988 0.0487 -vn 0.0000 0.9959 0.0905 -vn -0.7390 0.6040 0.2983 -vn -0.5021 0.8620 0.0701 -vn -0.7488 0.6577 0.0815 -vn 0.8669 -0.4952 -0.0578 -vn 0.8669 -0.4952 0.0578 -vn -0.9420 0.3315 0.0531 -vn -0.3922 0.9181 0.0574 -vn -0.4499 0.8912 -0.0574 -vn -0.4499 0.8912 0.0574 -vn -0.4961 0.8655 -0.0693 -vn -0.8913 -0.2315 0.3900 -vn -0.9518 -0.1990 0.2335 -vn -0.8538 -0.2964 0.4280 -vn 0.0964 -0.9953 0.0000 -vn -0.0173 -0.9989 0.0442 -vn 0.2660 -0.9640 -0.0000 -vn 0.6848 -0.7265 -0.0579 -vn 0.6848 -0.7265 0.0579 -vn 0.6013 -0.7969 -0.0582 -vn 0.4553 -0.8884 0.0587 -vn 0.6013 -0.7969 0.0582 -vn 0.4553 -0.8884 -0.0587 -vn 0.3532 -0.9343 -0.0490 -vn 0.0391 -0.9990 -0.0215 -vn -0.0831 -0.9952 -0.0518 -vn 0.3384 -0.9410 0.0000 -vn -0.1098 0.2571 0.9601 -vn -0.1465 0.2485 0.9575 -vn -0.0000 -0.0000 1.0000 -vn -0.3411 0.9383 -0.0574 -vn -0.3192 0.9460 0.0568 -vn -0.3192 0.9460 -0.0568 -vn -0.3411 0.9383 0.0574 -vn -0.3922 0.9181 -0.0574 -vn -0.6504 0.3940 0.6494 -vn -0.4058 0.0917 0.9093 -vn -0.9957 0.0897 0.0227 -vn -0.9986 0.0527 0.0042 -vn 0.3181 -0.9473 -0.0389 -vn -0.0170 -0.9989 -0.0443 -vn 0.3379 -0.9400 -0.0479 -vn -0.7002 -0.5061 0.5035 -vn -0.7051 -0.1719 0.6880 -vn -0.3300 -0.4425 0.8338 -vn -0.2979 0.0402 -0.9537 -vn -0.3300 -0.4425 -0.8338 -vn -0.0061 -0.3076 -0.9515 -vn -0.9424 0.3304 -0.0522 -vn -0.1465 0.2485 -0.9575 -vn -0.6500 0.3924 -0.6508 -vn -0.3770 0.6627 -0.6471 -vn -0.9985 -0.0540 0.0129 -vn -0.9838 0.1762 0.0341 -vn -0.9510 -0.2039 -0.2325 -vn -0.9157 -0.0443 -0.3995 -vn -0.9954 0.0932 -0.0200 -vn -0.9972 -0.0740 -0.0139 -vn 0.3181 -0.9472 0.0389 -vn 0.3379 -0.9400 0.0479 -vn 0.3532 -0.9342 0.0490 -vn -0.7043 -0.1718 -0.6888 -vn -0.7002 -0.5061 -0.5035 -vn -0.2983 0.0407 0.9536 -vn -0.0061 -0.3076 0.9515 -vn -0.1261 0.1250 0.9841 -vn -0.4411 0.5412 0.7159 -vn -0.4936 0.4835 0.7228 -vn -0.6091 0.7506 0.2562 -vn -0.6895 0.6771 0.2573 -vn -0.1261 0.1250 -0.9841 -vn -0.4411 0.5412 -0.7159 -vn -0.1162 0.1450 -0.9826 -vn -0.4937 0.4835 -0.7228 -vn -0.6091 0.7506 -0.2562 -vn -0.6895 0.6771 -0.2573 -vn -0.1339 0.1128 0.9845 -vn -0.5294 0.4415 0.7244 -vn -0.7415 0.6197 0.2573 -vn -0.1339 0.1128 -0.9845 -vn -0.5294 0.4415 -0.7244 -vn -0.1393 0.1014 0.9851 -vn -0.5809 0.3857 0.7168 -vn -0.8102 0.5273 0.2560 -vn -0.1393 0.1014 -0.9851 -vn -0.8102 0.5273 -0.2560 -vn -0.7415 0.6197 -0.2573 -vn -0.8368 0.5446 -0.0572 -vn -0.2661 0.1085 0.9578 -vn -0.6708 0.3542 0.6516 -vn -0.7073 0.2883 0.6454 -vn -0.8543 0.4513 0.2578 -vn -0.8950 0.3648 0.2569 -vn -0.2661 0.1085 -0.9578 -vn -0.6708 0.3542 -0.6516 -vn -0.2436 0.1301 -0.9611 -vn -0.7073 0.2883 -0.6454 -vn -0.8543 0.4513 -0.2578 -vn -0.8950 0.3648 -0.2569 -vn -0.7469 0.1599 0.6454 -vn -0.2808 0.0600 0.9579 -vn -0.9450 0.2023 0.2569 -vn -0.7469 0.1599 -0.6454 -vn -0.7595 0.0601 0.6477 -vn -0.2788 0.0256 0.9600 -vn -0.9647 0.0604 0.2564 -vn -0.2808 0.0600 -0.9579 -vn -0.7595 0.0601 -0.6477 -vn -0.9647 0.0603 -0.2564 -vn -0.9450 0.2023 -0.2569 -vn -0.9969 0.0537 -0.0574 -vn -0.7440 0.0320 0.6675 -vn -0.2698 0.0185 0.9628 -vn -0.9653 0.0064 0.2612 -vn -0.2788 0.0256 -0.9600 -vn -0.7440 0.0320 -0.6675 -vn -0.9653 0.0063 -0.2612 -vn -0.2435 0.1301 0.9611 -vn -0.5809 0.3857 -0.7168 -vn -0.4738 0.5529 0.6854 -vn -0.1631 0.2413 0.9566 -vn -0.7814 0.5540 0.2872 -vn -0.6471 0.7162 0.2613 -vn -0.4743 0.5525 -0.6854 -vn -0.7553 0.2304 -0.6136 -vn -0.7829 0.5522 -0.2865 -vn -0.6471 0.7162 -0.2613 -vn -0.1162 0.1450 0.9826 -vn -0.1631 0.2413 -0.9566 -vn -0.6688 0.7412 -0.0579 -vn 0.2320 -0.1325 0.9637 -vn 0.6151 -0.4323 0.6594 -vn 0.2163 -0.1520 0.9644 -vn 0.6542 -0.3737 0.6576 -vn 0.7899 -0.5551 0.2606 -vn 0.8384 -0.4790 0.2600 -vn 0.2320 -0.1325 -0.9636 -vn 0.6151 -0.4323 -0.6594 -vn 0.6542 -0.3737 -0.6576 -vn 0.7899 -0.5551 -0.2607 -vn 0.8384 -0.4790 -0.2600 -vn 0.5643 -0.4963 0.6597 -vn 0.1985 -0.1745 0.9645 -vn 0.7248 -0.6376 0.2609 -vn 0.2163 -0.1520 -0.9644 -vn 0.5643 -0.4963 -0.6597 -vn 0.7248 -0.6376 -0.2609 -vn 0.7497 -0.6593 -0.0579 -vn 0.1828 -0.1940 0.9638 -vn 0.5160 -0.5479 0.6584 -vn 0.6619 -0.7028 0.2606 -vn 0.1828 -0.1940 -0.9638 -vn 0.1985 -0.1745 -0.9645 -vn 0.5160 -0.5479 -0.6584 -vn 0.0000 1.0000 0.0044 -vn 0.0000 0.9998 0.0175 -vn 0.6416 -0.3339 -0.6906 -vn 0.0906 -0.0472 -0.9948 -vn 0.8545 -0.4447 -0.2686 -vn 0.8855 -0.4608 -0.0586 -vn 0.1570 -0.2081 0.9654 -vn 0.3393 -0.6623 0.6680 -vn 0.1170 -0.2254 0.9672 -vn 0.4509 -0.5981 0.6625 -vn 0.4392 -0.8585 0.2646 -vn 0.5808 -0.7707 0.2621 -vn 0.1570 -0.2081 -0.9654 -vn 0.3393 -0.6623 -0.6680 -vn 0.4509 -0.5981 -0.6625 -vn 0.4392 -0.8585 -0.2646 -vn 0.5808 -0.7707 -0.2621 -vn -0.5400 -0.7657 -0.3495 -vn -0.4124 -0.8182 -0.4005 -vn -0.2368 -0.9565 -0.1705 -vn 0.0355 -0.9808 -0.1920 -vn 0.6619 -0.7028 -0.2606 -vn -0.9313 0.2823 0.2303 -vn -0.7569 0.2306 0.6115 -vn 0.0000 0.0000 -1.0000 -vn -0.9813 0.1057 0.1607 -vn -0.9899 -0.1055 0.0945 -vn -0.8911 -0.2301 -0.3912 -vn -0.7537 0.6528 -0.0768 -vn -0.2595 0.7140 0.6503 -vn -0.2987 0.6992 0.6496 -vn -0.3301 0.9081 0.2575 -vn -0.3796 0.8886 0.2574 -vn -0.1098 0.2571 -0.9601 -vn -0.2595 0.7140 -0.6503 -vn -0.0951 0.2615 -0.9605 -vn -0.2987 0.6992 -0.6496 -vn -0.3301 0.9081 -0.2575 -vn -0.3796 0.8886 -0.2574 -vn -0.3772 0.6627 0.6470 -vn -0.4355 0.8626 0.2574 -vn -0.4856 0.8303 0.2735 -vn -0.4849 0.8307 -0.2735 -vn -0.4355 0.8626 -0.2574 -vn -0.3096 0.9173 -0.2504 -vn -0.2506 0.7427 -0.6210 -vn -0.1039 0.3079 -0.9457 -vn -0.1039 0.3079 0.9457 -vn -0.0951 0.2615 0.9605 -vn -0.2506 0.7427 0.6210 -vn -0.3096 0.9173 0.2504 -vn -0.1982 -0.9767 0.0818 -vn -0.5400 -0.7657 0.3495 -vn -0.0831 -0.9952 0.0518 -vn -0.2368 -0.9565 0.1705 -vn 0.0391 -0.9990 0.0215 -vn -0.1982 -0.9767 -0.0818 -vn -0.7518 -0.5303 -0.3919 -vn -0.7518 -0.5303 0.3919 -vn -0.4124 -0.8182 0.4005 -vn 0.0355 -0.9808 0.1920 -vn -0.9308 0.2799 -0.2352 -vn -0.0031 -0.8278 0.5611 -vn 0.2463 -0.9438 0.2204 -vn 0.2063 -0.7469 0.6321 -vn 0.3215 -0.9148 0.2445 -vn -0.0031 -0.8278 -0.5611 -vn 0.2063 -0.7469 -0.6322 -vn 0.2463 -0.9438 -0.2204 -vn 0.3215 -0.9148 -0.2445 -vn -0.9302 -0.0690 0.3605 -vn -0.9905 0.0240 0.1355 -vn -0.9680 0.0136 0.2505 -vn -0.8538 -0.2964 -0.4280 -vn -0.9657 0.0104 -0.2593 -vn -0.7414 0.5994 -0.3018 -vn -0.9298 -0.0678 -0.3617 -vn -0.9900 0.0274 -0.1384 -vn 0.1170 -0.2254 -0.9672 -vn 0.0000 1.0000 -0.0044 -vn 0.0000 1.0000 0.0040 -vn 0.0000 0.9959 -0.0905 -vn 0.0000 0.9933 -0.1160 -vn 0.0000 0.9988 -0.0487 -vn 0.8855 -0.4608 0.0586 -vn 0.8545 -0.4447 0.2686 -vn 0.6416 -0.3339 0.6906 -vn 0.8856 -0.4609 0.0567 -vn 0.8855 -0.4608 -0.0588 -vn 0.8856 -0.4609 -0.0567 -vn 0.3091 -0.1609 0.9373 -vn 0.6361 -0.3310 0.6970 -vn 0.7028 -0.3658 0.6101 -vn 0.8540 -0.4444 0.2705 -vn 0.8593 -0.4472 0.2484 -vn 0.8855 -0.4608 0.0588 -vn 0.8593 -0.4472 -0.2484 -vn 0.8540 -0.4444 -0.2705 -vn 0.7028 -0.3658 -0.6101 -vn 0.6361 -0.3311 -0.6970 -vn 0.3091 -0.1609 -0.9373 -vn 0.1736 -0.0903 -0.9807 -vn 0.0000 0.9933 0.1159 -vn 0.0000 0.9998 -0.0175 -vn 0.0000 1.0000 -0.0040 -vn 0.0035 -1.0000 -0.0006 -vn 0.0072 -1.0000 -0.0000 -vn 0.0034 -1.0000 -0.0019 -vn 0.0000 0.9998 -0.0217 -vn -0.4040 0.0922 -0.9101 -vn -0.9166 -0.0389 0.3980 -vn -0.2401 -0.9708 0.0000 -vn 0.9960 0.0898 0.0000 -vn 0.9514 -0.3081 0.0000 -vn 0.9960 0.0899 0.0000 -vn -0.7079 0.7063 0.0000 -vn -0.3741 0.9274 0.0000 -vn 0.7080 -0.7062 0.0000 -vn 0.3742 -0.9274 0.0000 -vn -0.9514 0.3081 0.0000 -vn 0.2142 -0.9768 0.0000 -vn -0.9670 -0.2548 0.0000 -vn -0.9960 -0.0898 0.0000 -vn 0.9670 0.2548 0.0000 -vn -0.2142 0.9768 0.0000 -vn 0.9961 0.0878 0.0000 -vn 0.9511 -0.3089 0.0000 -vn -0.7086 0.7056 0.0000 -vn -0.3761 0.9266 0.0000 -vn 0.7086 -0.7056 0.0000 -vn 0.3761 -0.9266 0.0000 -vn -0.9511 0.3090 0.0000 -vn 0.2164 -0.9763 0.0000 -vn -0.9676 -0.2525 0.0000 -vn -0.9961 -0.0878 0.0000 -vn 0.9676 0.2525 0.0000 -vn -0.2164 0.9763 0.0000 -vn 0.9963 0.0861 0.0000 -vn 0.9508 -0.3097 0.0000 -vn -0.7091 0.7051 0.0000 -vn -0.3776 0.9260 0.0000 -vn 0.9509 -0.3096 0.0000 -vn 0.7091 -0.7051 0.0000 -vn 0.3776 -0.9260 0.0000 -vn -0.9509 0.3096 0.0000 -vn 0.2182 -0.9759 0.0000 -vn -0.9681 -0.2507 0.0000 -vn -0.9963 -0.0862 0.0000 -vn 0.9680 0.2508 0.0000 -vn -0.2183 0.9759 0.0000 -vn 0.9963 0.0862 0.0000 -vn -0.9508 0.3097 0.0000 -vn -0.9680 -0.2508 0.0000 -vn -0.9963 -0.0861 0.0000 -vn -0.3760 0.9266 0.0000 -vn -0.9680 -0.2510 -0.0000 -vn -0.3776 0.9259 0.0000 -vn -0.2697 0.0184 -0.9628 -vn 0.0906 -0.0471 0.9948 -vn 0.1736 -0.0903 0.9807 -vn 0.0030 -1.0000 -0.0006 -vn 0.0030 -1.0000 0.0006 -vn 0.0035 -1.0000 0.0006 -vn 0.0034 -1.0000 0.0019 +vt 0.782994 0.575784 +vt 0.714498 0.564516 +vt 0.714498 0.575784 +vt 0.782994 0.564516 +vt 0.714498 0.537314 +vt 0.782994 0.537314 +vt 0.714498 0.510112 +vt 0.782994 0.510112 +vt 0.714498 0.498845 +vt 0.782994 0.498845 +vt 0.782994 0.559627 +vt 0.714498 0.515002 +vt 0.714498 0.559627 +vt 0.714498 0.568869 +vt 0.782994 0.515002 +vt 0.714498 0.505760 +vt 0.782994 0.505760 +vt 0.782994 0.568869 +vt 0.680946 0.743152 +vt 0.680946 0.747663 +vt 0.712868 0.738640 +vt 0.712868 0.716943 +vt 0.680946 0.716943 +vt 0.712868 0.747663 +vt 0.712868 0.743152 +vt 0.680946 0.738640 +vt 0.621661 0.723604 +vt 0.621661 0.716943 +vt 0.766609 0.756295 +vt 0.165134 0.745931 +vt 0.165134 0.756295 +vt 0.766609 0.745931 +vt 0.165134 0.720908 +vt 0.766609 0.720908 +vt 0.165134 0.695885 +vt 0.766609 0.695885 +vt 0.165134 0.685521 +vt 0.766609 0.685521 +vt 0.729032 0.553323 +vt 0.698162 0.542055 +vt 0.698162 0.553323 +vt 0.729032 0.542055 +vt 0.698162 0.514853 +vt 0.729032 0.514853 +vt 0.698162 0.487651 +vt 0.729032 0.487651 +vt 0.698162 0.476384 +vt 0.729032 0.476384 +vt 0.729257 0.590922 +vt 0.704821 0.579801 +vt 0.704821 0.590922 +vt 0.729257 0.579801 +vt 0.704821 0.552952 +vt 0.729257 0.552952 +vt 0.704821 0.526104 +vt 0.729257 0.526104 +vt 0.704821 0.514983 +vt 0.729257 0.514983 +vt 0.743036 0.769004 +vt 0.141560 0.758639 +vt 0.141560 0.769004 +vt 0.743036 0.758639 +vt 0.141560 0.733616 +vt 0.743036 0.733616 +vt 0.141560 0.708594 +vt 0.743036 0.708594 +vt 0.141560 0.698229 +vt 0.743036 0.698229 +vt 0.743036 0.733617 +vt 0.771627 0.571391 +vt 0.747191 0.560270 +vt 0.747191 0.571391 +vt 0.771627 0.560270 +vt 0.747191 0.533421 +vt 0.771627 0.533421 +vt 0.747191 0.506573 +vt 0.771627 0.506573 +vt 0.747191 0.495452 +vt 0.771627 0.495452 +vt 0.703156 0.520987 +vt 0.703156 0.554227 +vt 0.717254 0.554227 +vt 0.717254 0.520987 +s 0 +f 416/197/189 417/197/189 412/198/189 +f 412/198/190 420/199/190 413/198/190 +f 419/199/191 422/200/191 420/199/191 +f 422/200/192 421/200/192 424/201/192 +f 420/199/193 414/202/193 413/198/193 +f 419/199/194 411/202/194 421/200/194 +f 426/203/192 416/197/192 425/203/192 +f 425/203/195 423/201/195 426/203/195 +f 425/203/194 415/202/194 424/201/194 +f 426/203/193 418/202/193 417/197/193 +f 418/202/189 411/202/189 417/197/189 +f 411/202/189 412/198/189 417/197/189 +f 413/198/189 414/202/189 416/197/189 +f 414/202/189 415/202/189 416/197/189 +f 413/198/196 416/197/196 412/198/196 +f 412/198/190 419/199/190 420/199/190 +f 419/199/191 421/200/191 422/200/191 +f 424/201/192 415/202/192 414/202/192 +f 421/200/192 411/202/192 423/201/192 +f 411/202/192 418/202/192 423/201/192 +f 424/201/192 414/202/192 422/200/192 +f 421/200/192 423/201/192 424/201/192 +f 420/199/193 422/200/193 414/202/193 +f 419/199/194 412/198/194 411/202/194 +f 426/203/192 417/197/192 416/197/192 +f 425/203/195 424/201/195 423/201/195 +f 425/203/194 416/197/194 415/202/194 +f 426/203/193 423/201/193 418/202/193 +f 428/204/195 430/205/195 427/204/195 +f 429/205/190 432/206/190 430/205/190 +f 431/206/191 434/207/191 432/206/191 +f 433/207/192 427/204/192 434/207/192 +f 429/205/194 433/207/194 431/206/194 +f 436/208/195 438/209/195 435/209/195 +f 435/209/190 440/210/190 439/210/190 +f 439/210/193 443/211/193 441/212/193 +f 436/208/192 444/212/192 437/208/192 +f 439/210/193 436/208/193 435/209/193 +f 443/211/191 446/213/191 445/211/191 +f 439/210/193 448/214/193 442/213/193 +f 441/212/192 445/211/192 444/212/192 +f 447/215/190 450/214/190 448/214/190 +f 442/213/191 450/214/191 446/213/191 +f 439/210/195 449/215/195 447/215/195 +f 428/204/195 429/205/195 430/205/195 +f 429/205/190 431/206/190 432/206/190 +f 431/206/191 433/207/191 434/207/191 +f 433/207/192 428/204/192 427/204/192 +f 429/205/194 428/204/194 433/207/194 +f 436/208/195 437/208/195 438/209/195 +f 435/209/190 438/209/190 440/210/190 +f 439/210/193 442/213/193 443/211/193 +f 436/208/192 441/212/192 444/212/192 +f 439/210/193 441/212/193 436/208/193 +f 443/211/191 442/213/191 446/213/191 +f 439/210/193 447/215/193 448/214/193 +f 441/212/192 443/211/192 445/211/192 +f 447/215/190 449/215/190 450/214/190 +f 442/213/191 448/214/191 450/214/191 +f 439/210/195 440/210/195 449/215/195 s 1 -f 943/935/570 944/936/570 938/937/571 -f 946/938/572 948/939/573 945/940/574 -f 950/941/575 945/940/574 949/942/576 -f 952/943/577 954/944/578 951/945/579 -f 956/946/580 958/947/581 955/948/582 -f 960/949/583 962/950/584 959/951/585 -f 964/952/586 966/953/587 963/954/588 -f 968/955/589 970/956/590 967/957/591 -f 948/939/573 968/955/589 967/957/591 -f 972/958/592 952/943/577 971/959/593 -f 974/960/594 964/952/586 973/961/595 -f 969/962/596 971/959/593 970/956/590 -f 976/963/597 978/964/598 975/965/599 -f 979/966/600 981/967/601 982/968/602 -f 984/969/603 955/948/582 983/970/604 -f 985/971/605 974/960/594 973/961/595 -f 988/972/606 990/973/607 987/974/608 -f 987/974/608 991/975/609 981/967/601 -f 993/976/610 995/977/611 992/978/612 -f 997/979/613 998/980/614 999/981/615 -f 958/947/581 1001/982/616 1002/983/617 -f 1004/984/618 1006/985/619 1003/986/620 -f 1002/983/617 1004/984/618 1003/986/620 -f 1005/987/621 1007/988/622 999/981/615 -f 1013/989/623 1014/990/624 1016/991/625 -f 1021/992/626 1022/993/627 943/935/628 -f 1016/991/625 943/935/570 1009/994/625 -f 966/953/587 949/942/576 963/954/588 -f 1023/995/629 939/996/630 938/937/631 -f 1024/997/632 989/998/633 988/972/606 -f 1022/993/627 1026/999/634 1017/1000/635 -f 985/971/605 1027/1001/636 1028/1002/637 -f 1029/1003/638 1000/1004/639 999/981/615 -f 1007/988/622 1030/1005/640 999/981/615 -f 1031/1006/641 1032/1007/642 1033/1008/643 -f 1035/1009/644 1037/1010/645 1034/1011/646 -f 986/1012/647 985/971/605 1028/1002/637 -f 1038/1013/648 1040/1014/649 1041/1015/650 -f 1042/1016/651 1043/1017/652 1028/1002/637 -f 1045/1018/653 959/951/585 1044/1019/654 -f 1027/1001/636 1042/1016/651 1028/1002/637 -f 1046/1020/655 986/1012/647 1028/1002/637 -f 961/1021/656 1046/1020/655 1028/1002/637 -f 998/980/614 1047/1022/657 999/981/615 -f 1047/1022/657 1048/1023/658 999/981/615 -f 1048/1023/658 1008/1024/659 999/981/615 -f 1036/1025/660 1050/1026/661 1037/1010/645 -f 1030/1005/640 1029/1003/638 999/981/615 -f 1033/1008/643 1051/1027/662 1052/1028/663 -f 1053/1029/664 1055/1030/665 1056/1031/666 -f 1056/1031/666 1057/1032/667 1058/1033/668 -f 1058/1033/668 963/954/588 949/942/576 -f 1060/1034/669 1062/1035/670 1059/1036/671 -f 1061/1037/672 1064/1038/673 1062/1035/670 -f 1063/1039/674 966/953/587 1064/1038/673 -f 1065/1040/675 1056/1031/666 1066/1041/676 -f 1066/1041/676 1058/1033/668 1067/1042/677 -f 1058/1033/668 945/940/574 1067/1042/677 -f 1068/1043/678 1061/1037/672 1060/1034/669 -f 1069/1044/679 1063/1039/674 1061/1037/672 -f 1063/1039/674 946/938/572 950/941/575 -f 1071/1045/680 1066/1041/676 1072/1046/681 -f 1066/1041/676 1073/1047/682 1072/1046/681 -f 1067/1042/677 948/939/573 1073/1047/682 -f 1074/1048/683 1069/1044/679 1068/1043/678 -f 1069/1044/679 1076/1049/684 1070/1050/685 -f 1070/1050/685 947/1051/686 946/938/572 -f 1077/1052/687 1079/1053/688 1080/1054/689 -f 1080/1054/689 1081/1055/690 1082/1056/691 -f 1082/1056/691 967/957/591 970/956/590 -f 1084/1057/692 1086/1058/693 1083/1059/694 -f 1085/1060/695 1088/1061/696 1086/1058/693 -f 1087/1062/697 968/955/589 1088/1061/696 -f 1077/1052/687 1090/1063/698 1089/1064/699 -f 1090/1063/698 1082/1056/691 1091/1065/700 -f 1082/1056/691 971/959/593 1091/1065/700 -f 1084/1057/692 1093/1066/701 1085/1060/695 -f 1093/1066/701 1087/1062/697 1085/1060/695 -f 1087/1062/697 972/958/592 969/962/596 -f 1089/1064/699 1096/1067/702 1095/1068/703 -f 1090/1063/698 1097/1069/704 1096/1067/702 -f 1091/1065/700 952/943/577 1097/1069/704 -f 1092/1070/705 1099/1071/706 1093/1066/701 -f 1093/1066/701 1100/1072/707 1094/1073/708 -f 1094/1073/708 953/1074/709 972/958/592 -f 1095/1068/703 1102/1075/710 1101/1076/711 -f 1096/1067/702 1103/1077/712 1102/1075/710 -f 1097/1069/704 951/945/579 1103/1077/712 -f 1098/1078/713 1105/1079/714 1099/1071/706 -f 1099/1071/706 1106/1080/715 1100/1072/707 -f 1100/1072/707 954/944/578 953/1074/709 -f 1078/1081/716 1072/1046/681 1079/1053/688 -f 1072/1046/681 1081/1055/690 1079/1053/688 -f 1073/1047/682 967/957/591 1081/1055/690 -f 1083/1059/694 1075/1082/717 1074/1048/683 -f 1075/1082/717 1088/1061/696 1076/1049/684 -f 1076/1049/684 968/955/589 947/1051/686 -f 1051/1027/662 1109/1083/718 1107/1084/719 -f 1109/1083/718 1110/1085/720 1111/1086/721 -f 1111/1086/721 973/961/595 964/952/586 -f 1035/1009/644 1113/1087/722 1114/1088/723 -f 1113/1087/722 1116/1089/724 1114/1088/723 -f 1115/1090/725 974/960/594 1116/1089/724 -f 1054/1091/726 1109/1083/718 1055/1030/665 -f 1055/1030/665 1111/1086/721 1057/1032/667 -f 1057/1032/667 964/952/586 963/954/588 -f 1059/1036/671 1113/1087/722 1112/1092/727 -f 1062/1035/670 1115/1090/725 1113/1087/722 -f 1064/1038/673 965/1093/728 1115/1090/725 -f 1118/1094/729 1120/1095/730 1117/1096/731 -f 1119/1097/732 1122/1098/733 1120/1095/730 -f 1121/1099/734 955/948/582 1122/1098/733 -f 1123/1100/735 1125/1101/736 1126/1102/737 -f 1126/1102/737 1127/1103/738 1128/1104/739 -f 1128/1104/739 956/946/580 984/969/603 -f 1117/1096/731 1130/1105/740 1129/1106/741 -f 1120/1095/730 1131/1107/742 1130/1105/740 -f 1122/1098/733 958/947/581 1131/1107/742 -f 1124/1108/743 1133/1109/744 1125/1101/736 -f 1125/1101/736 1134/1110/745 1127/1103/738 -f 1127/1103/738 957/1111/746 956/946/580 -f 1135/1112/747 1130/1105/740 1136/1113/748 -f 1136/1113/748 1131/1107/742 1137/1114/749 -f 1131/1107/742 1002/983/617 1137/1114/749 -f 1138/1115/750 1133/1109/744 1132/1116/751 -f 1139/1117/752 1134/1110/745 1133/1109/744 -f 1134/1110/745 1001/982/616 957/1111/746 -f 1141/1118/753 977/1119/754 976/963/597 -f 1132/1116/751 1059/1036/671 1138/1115/750 -f 1123/1100/735 975/965/755 1143/1120/756 -f 1126/1102/737 976/963/757 975/965/755 -f 1128/1104/739 1141/1118/758 976/963/757 -f 1149/1121/759 1151/1122/760 1148/1123/761 -f 1150/1124/762 1153/1125/763 1151/1122/760 -f 1152/1126/764 1006/985/619 1153/1125/763 -f 1147/1127/765 1154/1128/766 1155/1129/767 -f 1155/1129/767 1156/1130/768 1157/1131/769 -f 1157/1131/769 1005/987/621 1004/984/618 -f 1050/1026/661 1159/1132/770 1160/1133/771 -f 1160/1133/771 1161/1134/772 1162/1135/773 -f 1162/1135/773 1000/1004/639 1029/1003/638 -f 1135/1112/747 1150/1124/762 1149/1121/759 -f 1136/1113/748 1152/1126/764 1150/1124/762 -f 1137/1114/749 1003/986/620 1152/1126/764 -f 1138/1115/750 1155/1129/767 1139/1117/752 -f 1139/1117/752 1157/1131/769 1140/1136/774 -f 1140/1136/774 1004/984/618 1001/982/616 -f 973/961/595 1163/1137/775 985/971/605 -f 1163/1137/775 1110/1085/720 1108/1138/776 -f 1015/1139/777 1158/1140/777 944/936/777 -f 962/950/584 961/1021/656 1028/1002/637 -f 995/977/611 1167/1141/778 1168/1142/779 -f 1169/1143/780 1045/1018/653 1044/1019/654 -f 982/968/602 991/975/609 1170/1144/781 -f 1021/992/626 1171/1145/782 1172/1146/783 -f 1172/1146/783 1173/1147/784 1174/1148/785 -f 1174/1148/785 1024/997/632 988/972/606 -f 1165/1149/786 1176/1150/787 1166/1151/788 -f 1175/1152/789 1178/1153/790 1176/1150/787 -f 1177/1154/791 1023/995/629 1178/1153/790 -f 1021/992/626 1025/1155/792 1022/993/627 -f 1025/1155/792 1174/1148/785 1179/1156/793 -f 1174/1148/785 987/974/608 1179/1156/793 -f 1165/1149/786 1041/1015/650 1175/1152/789 -f 1041/1015/650 1177/1154/791 1175/1152/789 -f 1177/1154/791 990/973/607 989/998/633 -f 1025/1155/792 1179/1156/793 980/1157/794 -f 980/1157/794 987/974/608 981/967/601 -f 1041/1015/650 1181/1158/795 1180/1159/796 -f 1181/1158/795 990/973/607 1180/1159/796 -f 1023/995/629 937/1160/797 1178/1153/790 -f 1178/1153/790 936/1161/798 1176/1150/787 -f 1176/1150/787 935/1162/799 1166/1151/788 -f 942/1163/800 1171/1145/782 1020/1164/801 -f 941/1165/802 1173/1147/784 1171/1145/782 -f 940/1166/803 1024/997/632 1173/1147/784 -f 1010/1167/804 1182/1168/805 1011/1169/806 -f 1011/1169/806 1183/1170/807 1012/1171/808 -f 1012/1171/808 998/980/614 997/979/613 -f 1015/1139/809 1159/1132/770 1158/1140/810 -f 1014/990/624 1161/1134/772 1159/1132/770 -f 1013/989/623 1000/1004/639 1161/1134/772 -f 1031/1006/641 1182/1168/805 1019/1172/811 -f 1184/1173/812 1183/1170/807 1182/1168/805 -f 1185/1174/813 998/980/614 1183/1170/807 -f 974/960/594 1186/1175/814 1116/1089/724 -f 1116/1089/724 1186/1175/814 1114/1088/723 -f 1033/1008/643 1184/1173/812 1031/1006/641 -f 1187/1176/815 1185/1174/813 1184/1173/812 -f 1188/1177/816 1047/1022/657 1185/1174/813 -f 1052/1028/663 1187/1176/815 1033/1008/643 -f 1189/1178/817 1188/1177/816 1187/1176/815 -f 1190/1179/818 1048/1023/658 1188/1177/816 -f 1034/1011/646 1191/1180/819 1192/1181/820 -f 1192/1181/820 1193/1182/821 1194/1183/822 -f 1194/1183/822 1030/1005/640 1007/988/622 -f 1037/1010/645 1160/1133/771 1191/1180/819 -f 1191/1180/819 1162/1135/773 1193/1182/821 -f 1193/1182/821 1029/1003/638 1030/1005/640 -f 1032/1007/642 1108/1138/776 1051/1027/662 -f 1195/1184/823 1163/1137/775 1108/1138/776 -f 1163/1137/775 1027/1001/636 985/971/605 -f 992/978/612 1195/1184/823 1032/1007/642 -f 995/977/611 1196/1185/824 1195/1184/823 -f 1196/1185/824 1042/1016/651 1027/1001/636 -f 1018/1186/825 993/976/610 992/978/612 -f 1026/999/634 980/1157/794 979/966/600 -f 962/950/584 1028/1002/637 1043/1017/652 -f 1049/1187/826 1164/1188/827 1158/1140/810 -f 1040/1014/649 1181/1158/795 1041/1015/650 -f 1197/1189/828 991/975/609 1181/1158/795 -f 1049/1187/826 1198/1190/829 1045/1018/653 -f 1045/1018/653 1199/1191/830 960/949/583 -f 1199/1191/830 961/1021/656 960/949/583 -f 1036/1025/660 1114/1088/723 1198/1190/829 -f 1198/1190/829 1186/1175/814 1199/1191/830 -f 1199/1191/830 986/1012/647 1046/1020/655 -f 1006/985/619 1190/1179/818 1153/1125/763 -f 1153/1125/763 1189/1178/817 1151/1122/760 -f 1151/1122/760 1052/1028/663 1148/1123/761 -f 1034/1011/646 1154/1128/766 1146/1192/831 -f 1192/1181/820 1156/1130/768 1154/1128/766 -f 1194/1183/822 1005/987/621 1156/1130/768 -f 1200/1193/832 1142/1194/833 1141/1118/753 -f 1202/1195/834 1204/1196/835 1205/1197/836 -f 1121/1099/734 1200/1193/837 983/970/604 -f 1119/1097/732 1206/1198/838 1121/1099/734 -f 1118/1094/729 1202/1195/839 1119/1097/732 -f 1200/1193/837 984/969/603 983/970/604 -f 1201/1199/840 1208/1200/841 1142/1194/842 -f 1204/1196/843 1210/1201/844 1205/1197/845 -f 1205/1197/845 1211/1202/846 1212/1203/847 -f 1212/1203/847 1207/1204/848 1201/1199/840 -f 977/1119/849 1208/1200/841 1213/1205/850 -f 978/964/851 1213/1205/850 1214/1206/852 -f 1144/1207/853 1214/1206/852 1145/1208/854 -f 975/965/599 1144/1207/855 1143/1120/855 -f 1200/1193/832 1212/1203/856 1201/1199/857 -f 1207/1204/858 1211/1202/859 1209/1209/860 -f 1129/1106/741 1135/1112/747 1054/1091/726 -f 1206/1198/861 1205/1197/836 1212/1203/856 -f 1017/1000/635 993/976/610 1018/1186/825 -f 1169/1143/780 1039/1210/862 1164/1188/827 -f 1044/1019/654 1039/1210/862 1169/1143/780 -f 959/951/585 1040/1014/649 1044/1019/654 -f 959/951/585 1170/1144/781 1197/1189/828 -f 994/1211/863 1017/1000/635 1026/999/634 -f 1167/1141/778 1026/999/634 979/966/600 -f 1167/1141/778 982/968/602 1043/1017/652 -f 1043/1017/652 1170/1144/781 962/950/584 -f 1168/1142/779 1043/1017/652 1042/1016/651 -f 954/944/864 1106/1080/864 1104/1212/864 -f 1223/1213/777 1224/1214/777 1218/1215/777 -f 1225/1216/865 1218/1215/866 1217/1217/867 -f 1234/1218/628 1226/1219/628 1229/1220/628 -f 1229/1220/868 1215/1221/869 1224/1214/868 -f 1226/1219/866 1219/1222/870 1218/1215/866 -f 1234/1218/870 1220/1223/871 1219/1222/870 -f 1230/1224/872 1224/1214/868 1223/1213/872 -f 1233/1225/871 1221/1226/873 1220/1223/871 -f 1232/1227/874 1222/1228/875 1221/1226/874 -f 1217/1217/867 1227/1229/876 1225/1216/865 -f 1216/1230/877 1228/1231/869 1227/1229/877 -f 1231/1232/875 1223/1213/872 1222/1228/875 -f 1243/1233/777 1244/1234/777 1238/1235/777 -f 1245/1236/878 1238/1235/879 1237/1237/878 -f 1254/1238/628 1246/1239/628 1249/1240/628 -f 1249/1240/880 1235/1241/881 1244/1234/880 -f 1246/1239/879 1239/1242/882 1238/1235/879 -f 1254/1238/882 1240/1243/883 1239/1242/882 -f 1250/1244/884 1244/1234/880 1243/1233/884 -f 1253/1245/883 1241/1246/885 1240/1243/883 -f 1252/1247/886 1242/1248/887 1241/1246/886 -f 1237/1237/878 1247/1249/888 1245/1236/878 -f 1236/1250/889 1248/1251/881 1247/1249/889 -f 1251/1252/887 1243/1233/884 1242/1248/887 -f 1263/1253/777 1264/1254/777 1258/1255/777 -f 1265/1256/890 1258/1255/891 1257/1257/890 -f 1274/1258/628 1266/1259/628 1269/1260/628 -f 1269/1260/892 1255/1261/893 1264/1254/892 -f 1266/1259/894 1259/1262/895 1258/1255/891 -f 1274/1258/895 1260/1263/896 1259/1262/895 -f 1270/1264/897 1264/1254/892 1263/1253/897 -f 1273/1265/896 1261/1266/898 1260/1263/896 -f 1272/1267/899 1262/1268/900 1261/1266/899 -f 1257/1257/890 1267/1269/901 1265/1256/890 -f 1256/1270/902 1268/1271/893 1267/1269/902 -f 1271/1272/900 1263/1253/897 1262/1268/900 -f 1283/1273/777 1284/1274/777 1278/1275/777 -f 1285/1276/903 1278/1275/894 1277/1277/903 -f 1294/1278/628 1286/1279/628 1289/1280/628 -f 1289/1280/892 1275/1281/893 1284/1274/892 -f 1286/1279/894 1279/1282/895 1278/1275/894 -f 1294/1278/895 1280/1283/896 1279/1282/895 -f 1290/1284/904 1284/1274/892 1283/1273/904 -f 1293/1285/896 1281/1286/898 1280/1283/896 -f 1292/1287/905 1282/1288/906 1281/1286/905 -f 1277/1277/903 1287/1289/901 1285/1276/903 -f 1276/1290/902 1288/1291/893 1287/1289/902 -f 1291/1292/906 1283/1273/904 1282/1288/906 -f 1303/1293/777 1304/1294/777 1298/1295/777 -f 1305/1296/865 1298/1295/866 1297/1297/867 -f 1314/1298/628 1306/1299/628 1309/1300/628 -f 1309/1300/868 1295/1301/869 1304/1294/868 -f 1306/1299/866 1299/1302/870 1298/1295/866 -f 1314/1298/870 1300/1303/871 1299/1302/870 -f 1310/1304/872 1304/1294/868 1303/1293/872 -f 1313/1305/871 1301/1306/873 1300/1303/871 -f 1312/1307/874 1302/1308/875 1301/1306/874 -f 1297/1297/867 1307/1309/876 1305/1296/865 -f 1296/1310/877 1308/1311/869 1307/1309/877 -f 1311/1312/875 1303/1293/872 1302/1308/875 -f 1323/1313/777 1324/1314/777 1318/1315/777 -f 1325/1316/878 1318/1315/879 1317/1317/878 -f 1334/1318/628 1326/1319/628 1329/1320/628 -f 1329/1320/880 1315/1321/907 1324/1314/880 -f 1326/1319/879 1319/1322/882 1318/1315/879 -f 1334/1318/882 1320/1323/883 1319/1322/882 -f 1330/1324/884 1324/1314/880 1323/1313/884 -f 1333/1325/883 1321/1326/885 1320/1323/883 -f 1332/1327/886 1322/1328/887 1321/1326/886 -f 1317/1317/878 1327/1329/888 1325/1316/878 -f 1316/1330/889 1328/1331/881 1327/1329/889 -f 1331/1332/887 1323/1313/884 1322/1328/887 -f 1343/1333/777 1344/1334/777 1338/1335/777 -f 1345/1336/890 1338/1335/891 1337/1337/890 -f 1354/1338/628 1346/1339/628 1349/1340/628 -f 1349/1340/892 1335/1341/893 1344/1334/892 -f 1346/1339/894 1339/1342/895 1338/1335/891 -f 1354/1338/895 1340/1343/896 1339/1342/895 -f 1350/1344/897 1344/1334/892 1343/1333/897 -f 1353/1345/896 1341/1346/898 1340/1343/896 -f 1352/1347/908 1342/1348/900 1341/1346/908 -f 1337/1337/890 1347/1349/901 1345/1336/890 -f 1336/1350/902 1348/1351/893 1347/1349/902 -f 1351/1352/906 1343/1333/897 1342/1348/900 -f 1363/1353/777 1364/1354/777 1358/1355/777 -f 1365/1356/903 1358/1355/894 1357/1357/903 -f 1374/1358/628 1366/1359/628 1369/1360/628 -f 1369/1360/892 1355/1361/893 1364/1354/892 -f 1366/1359/894 1359/1362/895 1358/1355/894 -f 1374/1358/895 1360/1363/896 1359/1362/895 -f 1370/1364/904 1364/1354/892 1363/1353/904 -f 1373/1365/896 1361/1366/898 1360/1363/896 -f 1372/1367/905 1362/1368/906 1361/1366/905 -f 1357/1357/903 1367/1369/901 1365/1356/903 -f 1356/1370/902 1368/1371/909 1367/1369/902 -f 1371/1372/906 1363/1353/904 1362/1368/906 -f 944/936/570 935/1162/571 938/937/571 -f 935/1162/571 936/1161/571 937/1160/571 -f 938/937/571 935/1162/571 937/1160/571 -f 938/937/571 939/996/571 943/935/570 -f 939/996/571 940/1166/571 942/1163/571 -f 940/1166/571 941/1165/571 942/1163/571 -f 942/1163/571 943/935/570 939/996/571 -f 946/938/572 947/1051/686 948/939/573 -f 950/941/575 946/938/572 945/940/574 -f 952/943/577 953/1074/709 954/944/578 -f 956/946/580 957/1111/746 958/947/581 -f 960/949/583 961/1021/656 962/950/584 -f 964/952/586 965/1093/728 966/953/587 -f 968/955/589 969/962/596 970/956/590 -f 948/939/573 947/1051/686 968/955/589 -f 972/958/592 953/1074/709 952/943/577 -f 974/960/594 965/1093/728 964/952/586 -f 969/962/596 972/958/592 971/959/593 -f 976/963/597 977/1119/754 978/964/598 -f 979/966/600 980/1157/794 981/967/601 -f 984/969/603 956/946/580 955/948/582 -f 985/971/605 986/1012/647 974/960/594 -f 988/972/606 989/998/633 990/973/607 -f 987/974/608 990/973/607 991/975/609 -f 993/976/610 994/1211/863 995/977/611 -f 1000/1004/639 996/1373/613 999/981/615 -f 996/1373/613 997/979/613 999/981/615 -f 958/947/581 957/1111/746 1001/982/616 -f 1004/984/618 1005/987/621 1006/985/619 -f 1002/983/617 1001/982/616 1004/984/618 -f 1008/1024/659 1006/985/619 999/981/615 -f 1006/985/619 1005/987/621 999/981/615 -f 1016/991/625 1009/994/625 997/979/613 -f 1009/994/625 1010/1167/804 1011/1169/806 -f 1011/1169/806 1012/1171/808 1009/994/625 -f 1012/1171/808 997/979/613 1009/994/625 -f 1014/990/624 1015/1139/809 1016/991/625 -f 997/979/613 996/1373/613 1016/991/625 -f 996/1373/613 1013/989/623 1016/991/625 -f 1022/993/627 1017/1000/635 1018/1186/628 -f 1018/1186/628 1019/1172/628 1022/993/627 -f 1019/1172/628 1010/1167/628 943/935/628 -f 1022/993/627 1019/1172/628 943/935/628 -f 1010/1167/628 1009/994/628 943/935/628 -f 943/935/628 942/1163/800 1020/1164/801 -f 1020/1164/801 1021/992/626 943/935/628 -f 1016/991/625 944/936/570 943/935/570 -f 966/953/587 950/941/575 949/942/576 -f 1023/995/629 1024/997/632 939/996/630 -f 1024/997/632 1023/995/629 989/998/633 -f 1022/993/627 1025/1155/792 1026/999/634 -f 1031/1006/641 992/978/612 1032/1007/642 -f 1035/1009/644 1036/1025/660 1037/1010/645 -f 1038/1013/648 1039/1210/862 1040/1014/649 -f 1045/1018/653 960/949/583 959/951/585 -f 1036/1025/660 1049/1187/826 1050/1026/661 -f 1033/1008/643 1032/1007/642 1051/1027/662 -f 1053/1029/664 1054/1091/726 1055/1030/665 -f 1056/1031/666 1055/1030/665 1057/1032/667 -f 1058/1033/668 1057/1032/667 963/954/588 -f 1060/1034/669 1061/1037/672 1062/1035/670 -f 1061/1037/672 1063/1039/674 1064/1038/673 -f 1063/1039/674 950/941/575 966/953/587 -f 1065/1040/675 1053/1029/664 1056/1031/666 -f 1066/1041/676 1056/1031/666 1058/1033/668 -f 1058/1033/668 949/942/576 945/940/574 -f 1068/1043/678 1069/1044/679 1061/1037/672 -f 1069/1044/679 1070/1050/685 1063/1039/674 -f 1063/1039/674 1070/1050/685 946/938/572 -f 1071/1045/680 1065/1040/675 1066/1041/676 -f 1066/1041/676 1067/1042/677 1073/1047/682 -f 1067/1042/677 945/940/574 948/939/573 -f 1074/1048/683 1075/1082/717 1069/1044/679 -f 1069/1044/679 1075/1082/717 1076/1049/684 -f 1070/1050/685 1076/1049/684 947/1051/686 -f 1077/1052/687 1078/1081/716 1079/1053/688 -f 1080/1054/689 1079/1053/688 1081/1055/690 -f 1082/1056/691 1081/1055/690 967/957/591 -f 1084/1057/692 1085/1060/695 1086/1058/693 -f 1085/1060/695 1087/1062/697 1088/1061/696 -f 1087/1062/697 969/962/596 968/955/589 -f 1077/1052/687 1080/1054/689 1090/1063/698 -f 1090/1063/698 1080/1054/689 1082/1056/691 -f 1082/1056/691 970/956/590 971/959/593 -f 1084/1057/692 1092/1070/705 1093/1066/701 -f 1093/1066/701 1094/1073/708 1087/1062/697 -f 1087/1062/697 1094/1073/708 972/958/592 -f 1089/1064/699 1090/1063/698 1096/1067/702 -f 1090/1063/698 1091/1065/700 1097/1069/704 -f 1091/1065/700 971/959/593 952/943/577 -f 1092/1070/705 1098/1078/713 1099/1071/706 -f 1093/1066/701 1099/1071/706 1100/1072/707 -f 1094/1073/708 1100/1072/707 953/1074/709 -f 1095/1068/703 1096/1067/702 1102/1075/710 -f 1096/1067/702 1097/1069/704 1103/1077/712 -f 1097/1069/704 952/943/577 951/945/579 -f 1098/1078/713 1104/1212/910 1105/1079/714 -f 1099/1071/706 1105/1079/714 1106/1080/715 -f 1100/1072/707 1106/1080/715 954/944/578 -f 1078/1081/716 1071/1045/680 1072/1046/681 -f 1072/1046/681 1073/1047/682 1081/1055/690 -f 1073/1047/682 948/939/573 967/957/591 -f 1083/1059/694 1086/1058/693 1075/1082/717 -f 1075/1082/717 1086/1058/693 1088/1061/696 -f 1076/1049/684 1088/1061/696 968/955/589 -f 1051/1027/662 1108/1138/776 1109/1083/718 -f 1109/1083/718 1108/1138/776 1110/1085/720 -f 1111/1086/721 1110/1085/720 973/961/595 -f 1035/1009/644 1112/1092/727 1113/1087/722 -f 1113/1087/722 1115/1090/725 1116/1089/724 -f 1115/1090/725 965/1093/728 974/960/594 -f 1054/1091/726 1107/1084/719 1109/1083/718 -f 1055/1030/665 1109/1083/718 1111/1086/721 -f 1057/1032/667 1111/1086/721 964/952/586 -f 1059/1036/671 1062/1035/670 1113/1087/722 -f 1062/1035/670 1064/1038/673 1115/1090/725 -f 1064/1038/673 966/953/587 965/1093/728 -f 1118/1094/729 1119/1097/732 1120/1095/730 -f 1119/1097/732 1121/1099/734 1122/1098/733 -f 1121/1099/734 983/970/604 955/948/582 -f 1123/1100/735 1124/1108/743 1125/1101/736 -f 1126/1102/737 1125/1101/736 1127/1103/738 -f 1128/1104/739 1127/1103/738 956/946/580 -f 1117/1096/731 1120/1095/730 1130/1105/740 -f 1120/1095/730 1122/1098/733 1131/1107/742 -f 1122/1098/733 955/948/582 958/947/581 -f 1124/1108/743 1132/1116/751 1133/1109/744 -f 1125/1101/736 1133/1109/744 1134/1110/745 -f 1127/1103/738 1134/1110/745 957/1111/746 -f 1135/1112/747 1129/1106/741 1130/1105/740 -f 1136/1113/748 1130/1105/740 1131/1107/742 -f 1131/1107/742 958/947/581 1002/983/617 -f 1138/1115/750 1139/1117/752 1133/1109/744 -f 1139/1117/752 1140/1136/774 1134/1110/745 -f 1134/1110/745 1140/1136/774 1001/982/616 -f 1141/1118/753 1142/1194/833 977/1119/754 -f 1143/1120/756 1144/1207/853 1145/1208/854 -f 1145/1208/854 1104/1212/910 1098/1078/713 -f 1098/1078/713 1092/1070/705 1084/1057/692 -f 1084/1057/692 1083/1059/694 1098/1078/713 -f 1083/1059/694 1074/1048/683 1143/1120/756 -f 1074/1048/683 1068/1043/678 1123/1100/735 -f 1068/1043/678 1060/1034/669 1123/1100/735 -f 1060/1034/669 1059/1036/671 1124/1108/743 -f 1059/1036/671 1112/1092/727 1138/1115/750 -f 1060/1034/669 1124/1108/743 1123/1100/735 -f 1112/1092/727 1035/1009/644 1146/1192/831 -f 1035/1009/644 1034/1011/646 1146/1192/831 -f 1083/1059/694 1143/1120/756 1145/1208/854 -f 1145/1208/854 1098/1078/713 1083/1059/694 -f 1123/1100/735 1143/1120/756 1074/1048/683 -f 1112/1092/727 1146/1192/831 1147/1127/765 -f 1112/1092/727 1147/1127/765 1138/1115/750 -f 1124/1108/743 1059/1036/671 1132/1116/751 -f 1123/1100/735 1126/1102/737 975/965/755 -f 1126/1102/737 1128/1104/739 976/963/757 -f 1128/1104/739 984/969/603 1141/1118/758 -f 1149/1121/759 1150/1124/762 1151/1122/760 -f 1150/1124/762 1152/1126/764 1153/1125/763 -f 1152/1126/764 1003/986/620 1006/985/619 -f 1147/1127/765 1146/1192/831 1154/1128/766 -f 1155/1129/767 1154/1128/766 1156/1130/768 -f 1157/1131/769 1156/1130/768 1005/987/621 -f 1050/1026/661 1158/1140/810 1159/1132/770 -f 1160/1133/771 1159/1132/770 1161/1134/772 -f 1162/1135/773 1161/1134/772 1000/1004/639 -f 1135/1112/747 1136/1113/748 1150/1124/762 -f 1136/1113/748 1137/1114/749 1152/1126/764 -f 1137/1114/749 1002/983/617 1003/986/620 -f 1138/1115/750 1147/1127/765 1155/1129/767 -f 1139/1117/752 1155/1129/767 1157/1131/769 -f 1140/1136/774 1157/1131/769 1004/984/618 -f 973/961/595 1110/1085/720 1163/1137/775 -f 1158/1140/777 1164/1188/777 1038/1013/648 -f 1164/1188/777 1039/1210/862 1038/1013/648 -f 1038/1013/648 1165/1149/786 944/936/777 -f 1158/1140/777 1038/1013/648 944/936/777 -f 1165/1149/786 1166/1151/788 944/936/777 -f 1166/1151/788 935/1162/799 944/936/777 -f 944/936/777 1016/991/777 1015/1139/777 -f 995/977/611 994/1211/863 1167/1141/778 -f 1169/1143/780 1049/1187/826 1045/1018/653 -f 982/968/602 981/967/601 991/975/609 -f 1021/992/626 1020/1164/801 1171/1145/782 -f 1172/1146/783 1171/1145/782 1173/1147/784 -f 1174/1148/785 1173/1147/784 1024/997/632 -f 1165/1149/786 1175/1152/789 1176/1150/787 -f 1175/1152/789 1177/1154/791 1178/1153/790 -f 1177/1154/791 989/998/633 1023/995/629 -f 1021/992/626 1172/1146/783 1025/1155/792 -f 1025/1155/792 1172/1146/783 1174/1148/785 -f 1174/1148/785 988/972/606 987/974/608 -f 1165/1149/786 1038/1013/648 1041/1015/650 -f 1041/1015/650 1180/1159/796 1177/1154/791 -f 1177/1154/791 1180/1159/796 990/973/607 -f 980/1157/794 1179/1156/793 987/974/608 -f 1181/1158/795 991/975/609 990/973/607 -f 1023/995/629 938/937/631 937/1160/797 -f 1178/1153/790 937/1160/797 936/1161/798 -f 1176/1150/787 936/1161/798 935/1162/799 -f 942/1163/800 941/1165/802 1171/1145/782 -f 941/1165/802 940/1166/803 1173/1147/784 -f 940/1166/803 939/996/630 1024/997/632 -f 1010/1167/804 1019/1172/811 1182/1168/805 -f 1011/1169/806 1182/1168/805 1183/1170/807 -f 1012/1171/808 1183/1170/807 998/980/614 -f 1015/1139/809 1014/990/624 1159/1132/770 -f 1014/990/624 1013/989/623 1161/1134/772 -f 1013/989/623 996/1373/613 1000/1004/639 -f 1031/1006/641 1184/1173/812 1182/1168/805 -f 1184/1173/812 1185/1174/813 1183/1170/807 -f 1185/1174/813 1047/1022/657 998/980/614 -f 974/960/594 986/1012/647 1186/1175/814 -f 1033/1008/643 1187/1176/815 1184/1173/812 -f 1187/1176/815 1188/1177/816 1185/1174/813 -f 1188/1177/816 1048/1023/658 1047/1022/657 -f 1052/1028/663 1189/1178/817 1187/1176/815 -f 1189/1178/817 1190/1179/818 1188/1177/816 -f 1190/1179/818 1008/1024/659 1048/1023/658 -f 1034/1011/646 1037/1010/645 1191/1180/819 -f 1192/1181/820 1191/1180/819 1193/1182/821 -f 1194/1183/822 1193/1182/821 1030/1005/640 -f 1037/1010/645 1050/1026/661 1160/1133/771 -f 1191/1180/819 1160/1133/771 1162/1135/773 -f 1193/1182/821 1162/1135/773 1029/1003/638 -f 1032/1007/642 1195/1184/823 1108/1138/776 -f 1195/1184/823 1196/1185/824 1163/1137/775 -f 1163/1137/775 1196/1185/824 1027/1001/636 -f 992/978/612 995/977/611 1195/1184/823 -f 995/977/611 1168/1142/779 1196/1185/824 -f 1196/1185/824 1168/1142/779 1042/1016/651 -f 1031/1006/641 1019/1172/811 992/978/612 -f 1019/1172/811 1018/1186/825 992/978/612 -f 1026/999/634 1025/1155/792 980/1157/794 -f 1158/1140/810 1050/1026/661 1049/1187/826 -f 1049/1187/826 1169/1143/780 1164/1188/827 -f 1040/1014/649 1197/1189/828 1181/1158/795 -f 1197/1189/828 1170/1144/781 991/975/609 -f 1049/1187/826 1036/1025/660 1198/1190/829 -f 1045/1018/653 1198/1190/829 1199/1191/830 -f 1199/1191/830 1046/1020/655 961/1021/656 -f 1036/1025/660 1035/1009/644 1114/1088/723 -f 1198/1190/829 1114/1088/723 1186/1175/814 -f 1199/1191/830 1186/1175/814 986/1012/647 -f 1006/985/619 1008/1024/659 1190/1179/818 -f 1153/1125/763 1190/1179/818 1189/1178/817 -f 1151/1122/760 1189/1178/817 1052/1028/663 -f 1034/1011/646 1192/1181/820 1154/1128/766 -f 1192/1181/820 1194/1183/822 1156/1130/768 -f 1194/1183/822 1007/988/622 1005/987/621 -f 1200/1193/832 1201/1199/857 1142/1194/833 -f 1202/1195/834 1203/1374/835 1204/1196/835 -f 1121/1099/734 1206/1198/838 1200/1193/837 -f 1119/1097/732 1202/1195/839 1206/1198/838 -f 1118/1094/729 1203/1374/911 1202/1195/839 -f 1200/1193/837 1141/1118/758 984/969/603 -f 1201/1199/840 1207/1204/848 1208/1200/841 -f 1204/1196/843 1209/1209/912 1210/1201/844 -f 1205/1197/845 1210/1201/844 1211/1202/846 -f 1212/1203/847 1211/1202/846 1207/1204/848 -f 977/1119/849 1142/1194/842 1208/1200/841 -f 978/964/851 977/1119/849 1213/1205/850 -f 1144/1207/853 978/964/851 1214/1206/852 -f 975/965/599 978/964/598 1144/1207/855 -f 1200/1193/832 1206/1198/861 1212/1203/856 -f 1211/1202/859 1210/1201/859 1209/1209/860 -f 1209/1209/860 1101/1076/913 1207/1204/858 -f 1101/1076/913 1104/1212/914 1208/1200/915 -f 1104/1212/914 1145/1208/916 1208/1200/915 -f 1145/1208/916 1214/1206/859 1213/1205/859 -f 1208/1200/915 1145/1208/916 1213/1205/859 -f 1208/1200/915 1207/1204/858 1101/1076/913 -f 1148/1123/761 1052/1028/663 1051/1027/662 -f 1051/1027/662 1107/1084/719 1148/1123/761 -f 1107/1084/719 1054/1091/726 1135/1112/747 -f 1148/1123/761 1107/1084/719 1149/1121/759 -f 1054/1091/726 1053/1029/664 1117/1096/731 -f 1053/1029/664 1065/1040/675 1118/1094/729 -f 1065/1040/675 1071/1045/680 1118/1094/729 -f 1071/1045/680 1078/1081/716 1203/1374/911 -f 1078/1081/716 1077/1052/687 1089/1064/699 -f 1089/1064/699 1095/1068/703 1078/1081/716 -f 1095/1068/703 1101/1076/711 1209/1209/912 -f 1209/1209/912 1204/1196/843 1203/1374/911 -f 1209/1209/912 1203/1374/911 1078/1081/716 -f 1095/1068/703 1209/1209/912 1078/1081/716 -f 1053/1029/664 1118/1094/729 1117/1096/731 -f 1071/1045/680 1203/1374/911 1118/1094/729 -f 1149/1121/759 1107/1084/719 1135/1112/747 -f 1117/1096/731 1129/1106/741 1054/1091/726 -f 1206/1198/861 1202/1195/834 1205/1197/836 -f 1044/1019/654 1040/1014/649 1039/1210/862 -f 959/951/585 1197/1189/828 1040/1014/649 -f 959/951/585 962/950/584 1170/1144/781 -f 994/1211/863 993/976/610 1017/1000/635 -f 1167/1141/778 994/1211/863 1026/999/634 -f 1167/1141/778 979/966/600 982/968/602 -f 1043/1017/652 982/968/602 1170/1144/781 -f 1168/1142/779 1167/1141/778 1043/1017/652 -f 1105/1079/864 1104/1212/864 1106/1080/864 -f 1104/1212/864 1101/1076/864 954/944/864 -f 1101/1076/864 1102/1075/864 1103/1077/864 -f 1103/1077/864 951/945/864 1101/1076/864 -f 951/945/864 954/944/864 1101/1076/864 -f 1224/1214/777 1215/1221/777 1218/1215/777 -f 1215/1221/777 1216/1230/777 1217/1217/777 -f 1218/1215/777 1215/1221/777 1217/1217/777 -f 1218/1215/777 1219/1222/777 1223/1213/777 -f 1219/1222/777 1220/1223/777 1222/1228/777 -f 1220/1223/777 1221/1226/777 1222/1228/777 -f 1222/1228/777 1223/1213/777 1219/1222/777 -f 1225/1216/865 1226/1219/866 1218/1215/866 -f 1226/1219/628 1225/1216/628 1228/1231/628 -f 1225/1216/628 1227/1229/628 1228/1231/628 -f 1228/1231/628 1229/1220/628 1226/1219/628 -f 1229/1220/628 1230/1224/628 1234/1218/628 -f 1230/1224/628 1231/1232/628 1233/1225/628 -f 1231/1232/628 1232/1227/628 1233/1225/628 -f 1233/1225/628 1234/1218/628 1230/1224/628 -f 1229/1220/868 1228/1231/869 1215/1221/869 -f 1226/1219/866 1234/1218/870 1219/1222/870 -f 1234/1218/870 1233/1225/871 1220/1223/871 -f 1230/1224/872 1229/1220/868 1224/1214/868 -f 1233/1225/871 1232/1227/873 1221/1226/873 -f 1232/1227/874 1231/1232/875 1222/1228/875 -f 1217/1217/867 1216/1230/876 1227/1229/876 -f 1216/1230/877 1215/1221/869 1228/1231/869 -f 1231/1232/875 1230/1224/872 1223/1213/872 -f 1244/1234/777 1235/1241/777 1237/1237/777 -f 1235/1241/777 1236/1250/777 1237/1237/777 -f 1237/1237/777 1238/1235/777 1244/1234/777 -f 1238/1235/777 1239/1242/777 1243/1233/777 -f 1239/1242/777 1240/1243/777 1242/1248/777 -f 1240/1243/777 1241/1246/777 1242/1248/777 -f 1242/1248/777 1243/1233/777 1239/1242/777 -f 1245/1236/878 1246/1239/879 1238/1235/879 -f 1246/1239/628 1245/1236/628 1249/1240/628 -f 1245/1236/628 1247/1249/628 1248/1251/628 -f 1249/1240/628 1245/1236/628 1248/1251/628 -f 1249/1240/628 1250/1244/628 1254/1238/628 -f 1250/1244/628 1251/1252/628 1253/1245/628 -f 1251/1252/628 1252/1247/628 1253/1245/628 -f 1253/1245/628 1254/1238/628 1250/1244/628 -f 1249/1240/880 1248/1251/881 1235/1241/881 -f 1246/1239/879 1254/1238/882 1239/1242/882 -f 1254/1238/882 1253/1245/883 1240/1243/883 -f 1250/1244/884 1249/1240/880 1244/1234/880 -f 1253/1245/883 1252/1247/885 1241/1246/885 -f 1252/1247/886 1251/1252/887 1242/1248/887 -f 1237/1237/878 1236/1250/888 1247/1249/888 -f 1236/1250/889 1235/1241/881 1248/1251/881 -f 1251/1252/887 1250/1244/884 1243/1233/884 -f 1264/1254/777 1255/1261/777 1258/1255/777 -f 1255/1261/777 1256/1270/777 1257/1257/777 -f 1258/1255/777 1255/1261/777 1257/1257/777 -f 1258/1255/777 1259/1262/777 1263/1253/777 -f 1259/1262/777 1260/1263/777 1262/1268/777 -f 1260/1263/777 1261/1266/777 1262/1268/777 -f 1262/1268/777 1263/1253/777 1259/1262/777 -f 1265/1256/890 1266/1259/894 1258/1255/891 -f 1266/1259/628 1265/1256/628 1268/1271/628 -f 1265/1256/628 1267/1269/628 1268/1271/628 -f 1268/1271/628 1269/1260/628 1266/1259/628 -f 1269/1260/628 1270/1264/628 1274/1258/628 -f 1270/1264/628 1271/1272/628 1273/1265/628 -f 1271/1272/628 1272/1267/628 1273/1265/628 -f 1273/1265/628 1274/1258/628 1270/1264/628 -f 1269/1260/892 1268/1271/893 1255/1261/893 -f 1266/1259/894 1274/1258/895 1259/1262/895 -f 1274/1258/895 1273/1265/896 1260/1263/896 -f 1270/1264/897 1269/1260/892 1264/1254/892 -f 1273/1265/896 1272/1267/898 1261/1266/898 -f 1272/1267/899 1271/1272/900 1262/1268/900 -f 1257/1257/890 1256/1270/901 1267/1269/901 -f 1256/1270/902 1255/1261/893 1268/1271/893 -f 1271/1272/900 1270/1264/897 1263/1253/897 -f 1284/1274/777 1275/1281/777 1277/1277/777 -f 1275/1281/777 1276/1290/777 1277/1277/777 -f 1277/1277/777 1278/1275/777 1284/1274/777 -f 1278/1275/777 1279/1282/777 1283/1273/777 -f 1279/1282/777 1280/1283/777 1282/1288/777 -f 1280/1283/777 1281/1286/777 1282/1288/777 -f 1282/1288/777 1283/1273/777 1279/1282/777 -f 1285/1276/903 1286/1279/894 1278/1275/894 -f 1286/1279/628 1285/1276/628 1289/1280/628 -f 1285/1276/628 1287/1289/628 1288/1291/628 -f 1289/1280/628 1285/1276/628 1288/1291/628 -f 1289/1280/628 1290/1284/628 1294/1278/628 -f 1290/1284/628 1291/1292/628 1293/1285/628 -f 1291/1292/628 1292/1287/628 1293/1285/628 -f 1293/1285/628 1294/1278/628 1290/1284/628 -f 1289/1280/892 1288/1291/893 1275/1281/893 -f 1286/1279/894 1294/1278/895 1279/1282/895 -f 1294/1278/895 1293/1285/896 1280/1283/896 -f 1290/1284/904 1289/1280/892 1284/1274/892 -f 1293/1285/896 1292/1287/898 1281/1286/898 -f 1292/1287/905 1291/1292/906 1282/1288/906 -f 1277/1277/903 1276/1290/901 1287/1289/901 -f 1276/1290/902 1275/1281/893 1288/1291/893 -f 1291/1292/906 1290/1284/904 1283/1273/904 -f 1304/1294/777 1295/1301/777 1298/1295/777 -f 1295/1301/777 1296/1310/777 1297/1297/777 -f 1298/1295/777 1295/1301/777 1297/1297/777 -f 1298/1295/777 1299/1302/777 1303/1293/777 -f 1299/1302/777 1300/1303/777 1302/1308/777 -f 1300/1303/777 1301/1306/777 1302/1308/777 -f 1302/1308/777 1303/1293/777 1299/1302/777 -f 1305/1296/865 1306/1299/866 1298/1295/866 -f 1306/1299/628 1305/1296/628 1308/1311/628 -f 1305/1296/628 1307/1309/628 1308/1311/628 -f 1308/1311/628 1309/1300/628 1306/1299/628 -f 1309/1300/628 1310/1304/628 1314/1298/628 -f 1310/1304/628 1311/1312/628 1313/1305/628 -f 1311/1312/628 1312/1307/628 1313/1305/628 -f 1313/1305/628 1314/1298/628 1310/1304/628 -f 1309/1300/868 1308/1311/869 1295/1301/869 -f 1306/1299/866 1314/1298/870 1299/1302/870 -f 1314/1298/870 1313/1305/871 1300/1303/871 -f 1310/1304/872 1309/1300/868 1304/1294/868 -f 1313/1305/871 1312/1307/873 1301/1306/873 -f 1312/1307/874 1311/1312/875 1302/1308/875 -f 1297/1297/867 1296/1310/876 1307/1309/876 -f 1296/1310/877 1295/1301/869 1308/1311/869 -f 1311/1312/875 1310/1304/872 1303/1293/872 -f 1324/1314/777 1315/1321/777 1318/1315/777 -f 1315/1321/777 1316/1330/777 1317/1317/777 -f 1318/1315/777 1315/1321/777 1317/1317/777 -f 1318/1315/777 1319/1322/777 1323/1313/777 -f 1319/1322/777 1320/1323/777 1322/1328/777 -f 1320/1323/777 1321/1326/777 1322/1328/777 -f 1322/1328/777 1323/1313/777 1319/1322/777 -f 1325/1316/878 1326/1319/879 1318/1315/879 -f 1326/1319/628 1325/1316/628 1328/1331/628 -f 1325/1316/628 1327/1329/628 1328/1331/628 -f 1328/1331/628 1329/1320/628 1326/1319/628 -f 1329/1320/628 1330/1324/628 1334/1318/628 -f 1330/1324/628 1331/1332/628 1333/1325/628 -f 1331/1332/628 1332/1327/628 1333/1325/628 -f 1333/1325/628 1334/1318/628 1330/1324/628 -f 1329/1320/880 1328/1331/881 1315/1321/907 -f 1326/1319/879 1334/1318/882 1319/1322/882 -f 1334/1318/882 1333/1325/883 1320/1323/883 -f 1330/1324/884 1329/1320/880 1324/1314/880 -f 1333/1325/883 1332/1327/885 1321/1326/885 -f 1332/1327/886 1331/1332/887 1322/1328/887 -f 1317/1317/878 1316/1330/888 1327/1329/888 -f 1316/1330/889 1315/1321/907 1328/1331/881 -f 1331/1332/887 1330/1324/884 1323/1313/884 -f 1344/1334/777 1335/1341/777 1338/1335/777 -f 1335/1341/777 1336/1350/777 1337/1337/777 -f 1338/1335/777 1335/1341/777 1337/1337/777 -f 1338/1335/777 1339/1342/777 1343/1333/777 -f 1339/1342/777 1340/1343/777 1342/1348/777 -f 1340/1343/777 1341/1346/777 1342/1348/777 -f 1342/1348/777 1343/1333/777 1339/1342/777 -f 1345/1336/890 1346/1339/894 1338/1335/891 -f 1346/1339/628 1345/1336/628 1348/1351/628 -f 1345/1336/628 1347/1349/628 1348/1351/628 -f 1348/1351/628 1349/1340/628 1346/1339/628 -f 1349/1340/628 1350/1344/628 1354/1338/628 -f 1350/1344/628 1351/1352/628 1353/1345/628 -f 1351/1352/628 1352/1347/628 1353/1345/628 -f 1353/1345/628 1354/1338/628 1350/1344/628 -f 1349/1340/892 1348/1351/893 1335/1341/893 -f 1346/1339/894 1354/1338/895 1339/1342/895 -f 1354/1338/895 1353/1345/896 1340/1343/896 -f 1350/1344/897 1349/1340/892 1344/1334/892 -f 1353/1345/896 1352/1347/898 1341/1346/898 -f 1352/1347/908 1351/1352/906 1342/1348/900 -f 1337/1337/890 1336/1350/901 1347/1349/901 -f 1336/1350/902 1335/1341/893 1348/1351/893 -f 1351/1352/906 1350/1344/897 1343/1333/897 -f 1364/1354/777 1355/1361/777 1357/1357/777 -f 1355/1361/777 1356/1370/777 1357/1357/777 -f 1357/1357/777 1358/1355/777 1364/1354/777 -f 1358/1355/777 1359/1362/777 1363/1353/777 -f 1359/1362/777 1360/1363/777 1362/1368/777 -f 1360/1363/777 1361/1366/777 1362/1368/777 -f 1362/1368/777 1363/1353/777 1359/1362/777 -f 1365/1356/903 1366/1359/894 1358/1355/894 -f 1366/1359/628 1365/1356/628 1369/1360/628 -f 1365/1356/628 1367/1369/628 1368/1371/628 -f 1369/1360/628 1365/1356/628 1368/1371/628 -f 1369/1360/628 1370/1364/628 1374/1358/628 -f 1370/1364/628 1371/1372/628 1373/1365/628 -f 1371/1372/628 1372/1367/628 1373/1365/628 -f 1373/1365/628 1374/1358/628 1370/1364/628 -f 1369/1360/892 1368/1371/909 1355/1361/893 -f 1366/1359/894 1374/1358/895 1359/1362/895 -f 1374/1358/895 1373/1365/896 1360/1363/896 -f 1370/1364/904 1369/1360/892 1364/1354/892 -f 1373/1365/896 1372/1367/898 1361/1366/898 -f 1372/1367/905 1371/1372/906 1362/1368/906 -f 1357/1357/903 1356/1370/901 1367/1369/901 -f 1356/1370/902 1355/1361/893 1368/1371/909 -f 1371/1372/906 1370/1364/904 1363/1353/904 +f 451/216/194 454/217/197 457/218/194 +f 430/205/194 467/219/194 468/220/194 +f 471/221/198 473/222/199 470/221/200 +f 450/214/193 449/215/193 479/217/201 +f 474/223/193 437/208/193 444/212/193 +f 466/223/195 475/224/202 474/223/195 +f 472/222/203 484/225/204 473/222/199 +f 476/226/205 464/226/205 483/225/206 +f 476/226/205 465/224/202 464/226/205 +f 470/221/200 492/227/207 471/221/198 +f 463/228/208 493/229/209 494/230/210 +f 494/230/210 495/231/211 496/232/212 +f 496/232/212 497/233/213 498/234/214 +f 498/234/214 470/221/200 473/222/199 +f 477/228/215 500/229/216 478/235/217 +f 499/230/218 502/231/219 500/229/216 +f 501/232/220 504/233/221 502/231/219 +f 503/234/222 471/221/198 504/233/221 +f 464/226/223 494/230/210 490/236/224 +f 494/230/210 485/237/225 490/236/224 +f 496/232/212 486/238/226 485/237/225 +f 486/238/226 473/222/199 484/225/204 +f 476/226/227 499/230/218 477/228/215 +f 499/230/218 488/237/228 501/232/220 +f 501/232/220 487/238/229 503/234/222 +f 487/238/229 472/222/203 503/234/222 +f 492/227/207 504/233/221 471/221/198 +f 505/239/230 502/231/219 504/233/221 +f 506/240/231 500/229/216 502/231/219 +f 507/241/232 478/235/217 500/229/216 +f 509/241/233 510/242/234 508/243/235 +f 462/235/236 461/244/237 511/245/235 +f 517/246/238 518/247/238 514/240/239 +f 495/231/211 520/239/240 497/233/213 +f 497/233/213 491/227/241 470/221/200 +f 479/217/242 491/227/191 454/217/242 +f 453/248/243 481/249/243 480/248/243 +f 451/216/244 474/223/244 482/216/244 +f 452/249/245 482/216/245 481/249/245 +f 522/250/246 457/218/247 521/218/248 +f 523/220/249 469/251/250 468/220/251 +f 526/219/252 459/252/253 525/252/254 +f 523/220/249 467/219/255 526/219/252 +f 532/253/256 533/254/257 529/255/258 +f 525/252/254 458/250/259 522/250/246 +f 515/256/260 511/245/261 536/245/262 +f 461/244/191 460/257/263 537/257/263 +f 535/256/264 516/258/265 515/256/260 +f 521/218/248 456/259/266 539/259/266 +f 538/258/267 517/246/268 516/258/265 +f 542/260/269 519/261/270 541/261/271 +f 540/246/272 518/247/273 517/246/268 +f 524/251/274 460/257/263 469/251/250 +f 508/243/275 510/242/276 513/260/277 +f 539/259/266 456/259/266 455/262/195 +f 526/219/252 545/263/278 546/264/279 +f 545/263/278 530/265/280 546/264/279 +f 530/265/280 547/266/281 546/264/279 +f 547/266/281 526/219/252 546/264/279 +f 532/253/256 548/267/282 549/268/283 +f 549/268/283 521/218/248 539/259/284 +f 525/252/254 550/269/285 545/263/278 +f 545/263/278 550/269/285 531/270/286 +f 544/243/287 549/268/283 539/259/284 +f 549/268/283 533/254/257 532/253/256 +f 534/271/288 552/272/289 553/273/290 +f 552/272/289 541/261/271 553/273/290 +f 527/274/291 554/275/292 555/276/293 +f 555/276/293 538/258/267 535/256/264 +f 524/251/274 557/277/294 537/257/295 +f 556/278/296 529/255/258 557/277/294 +f 528/279/297 557/277/294 529/255/258 +f 557/277/294 536/245/298 537/257/295 +f 540/246/272 560/280/299 543/247/300 +f 559/281/301 534/271/288 560/280/299 +f 528/279/297 555/276/293 558/282/302 +f 558/282/302 535/256/264 536/245/298 +f 540/246/272 554/275/292 559/281/301 +f 559/281/301 554/275/292 527/274/291 +f 534/271/288 553/273/290 560/280/299 +f 553/273/290 543/247/300 560/280/299 +f 542/260/269 551/283/303 544/243/287 +f 552/272/289 533/254/257 551/283/303 +f 530/265/280 556/278/296 547/266/281 +f 556/278/296 523/220/249 547/266/281 +f 531/270/286 550/269/285 548/267/282 +f 548/267/282 522/250/246 521/218/248 +f 518/247/273 541/261/271 519/261/270 +f 459/252/194 432/206/194 434/207/194 +f 451/216/194 452/249/194 453/248/194 +f 459/252/194 434/207/194 451/216/194 +f 458/250/194 459/252/194 451/216/194 +f 451/216/194 453/248/194 454/217/197 +f 454/217/197 455/262/237 456/259/194 +f 457/218/194 458/250/194 451/216/194 +f 454/217/197 456/259/194 457/218/194 +f 460/257/194 461/244/237 462/235/236 +f 463/228/208 464/226/223 430/205/194 +f 464/226/223 465/224/194 430/205/194 +f 460/257/194 462/235/236 469/251/194 +f 462/235/236 463/228/208 430/205/194 +f 469/251/194 462/235/236 430/205/194 +f 465/224/194 466/223/194 430/205/194 +f 466/223/194 451/216/194 427/204/194 +f 451/216/194 434/207/194 427/204/194 +f 468/220/194 469/251/194 430/205/194 +f 432/206/194 459/252/194 467/219/194 +f 430/205/194 432/206/194 467/219/194 +f 466/223/194 427/204/194 430/205/194 +f 471/221/198 472/222/203 473/222/199 +f 438/209/193 437/208/193 474/223/193 +f 474/223/193 475/224/193 438/209/193 +f 475/224/193 476/226/227 438/209/193 +f 476/226/227 477/228/215 438/209/193 +f 449/215/193 440/210/193 478/235/217 +f 440/210/193 438/209/193 478/235/217 +f 438/209/193 477/228/215 478/235/217 +f 479/217/201 480/248/193 482/216/193 +f 480/248/193 481/249/193 482/216/193 +f 482/216/193 445/211/193 446/213/193 +f 449/215/193 478/235/217 479/217/201 +f 482/216/193 446/213/193 479/217/201 +f 446/213/193 450/214/193 479/217/201 +f 444/212/193 445/211/193 482/216/193 +f 482/216/193 474/223/193 444/212/193 +f 466/223/195 465/224/202 475/224/202 +f 472/222/203 483/225/206 484/225/204 +f 490/236/304 485/237/225 484/225/204 +f 485/237/225 486/238/226 484/225/204 +f 484/225/204 483/225/206 464/226/205 +f 490/236/304 484/225/204 464/226/205 +f 483/225/206 487/238/229 488/237/228 +f 488/237/228 489/236/304 483/225/206 +f 489/236/304 476/226/205 483/225/206 +f 476/226/205 475/224/202 465/224/202 +f 470/221/200 491/227/241 492/227/207 +f 463/228/208 462/235/236 493/229/209 +f 494/230/210 493/229/209 495/231/211 +f 496/232/212 495/231/211 497/233/213 +f 498/234/214 497/233/213 470/221/200 +f 477/228/215 499/230/218 500/229/216 +f 499/230/218 501/232/220 502/231/219 +f 501/232/220 503/234/222 504/233/221 +f 503/234/222 472/222/203 471/221/198 +f 464/226/223 463/228/208 494/230/210 +f 494/230/210 496/232/212 485/237/225 +f 496/232/212 498/234/214 486/238/226 +f 486/238/226 498/234/214 473/222/199 +f 476/226/227 489/236/305 499/230/218 +f 499/230/218 489/236/305 488/237/228 +f 501/232/220 488/237/228 487/238/229 +f 487/238/229 483/225/206 472/222/203 +f 492/227/207 505/239/230 504/233/221 +f 505/239/230 506/240/231 502/231/219 +f 506/240/231 507/241/232 500/229/216 +f 507/241/232 479/217/201 478/235/217 +f 508/243/235 455/262/237 454/217/197 +f 454/217/197 509/241/233 508/243/235 +f 511/245/235 512/284/234 493/229/209 +f 493/229/209 462/235/236 511/245/235 +f 513/260/306 510/242/234 514/240/239 +f 510/242/234 509/241/233 514/240/239 +f 495/231/211 493/229/209 515/256/306 +f 493/229/209 512/284/234 515/256/306 +f 519/261/306 513/260/306 514/240/239 +f 495/231/211 515/256/306 516/258/306 +f 495/231/211 516/258/306 517/246/238 +f 518/247/238 519/261/306 514/240/239 +f 495/231/211 517/246/238 514/240/239 +f 495/231/211 514/240/239 520/239/240 +f 497/233/213 520/239/240 491/227/241 +f 520/239/191 514/240/191 491/227/191 +f 514/240/191 509/241/191 491/227/191 +f 509/241/191 454/217/242 491/227/191 +f 454/217/242 453/248/307 479/217/242 +f 453/248/307 480/248/307 479/217/242 +f 479/217/242 507/241/191 492/227/191 +f 507/241/191 506/240/191 492/227/191 +f 506/240/191 505/239/191 492/227/191 +f 492/227/191 491/227/191 479/217/242 +f 453/248/243 452/249/243 481/249/243 +f 451/216/244 466/223/244 474/223/244 +f 452/249/245 451/216/245 482/216/245 +f 522/250/246 458/250/259 457/218/247 +f 523/220/249 524/251/274 469/251/250 +f 526/219/252 467/219/255 459/252/253 +f 523/220/249 468/220/251 467/219/255 +f 534/271/288 527/274/291 528/279/297 +f 528/279/297 529/255/258 533/254/257 +f 529/255/258 530/265/280 532/253/256 +f 528/279/297 533/254/257 534/271/288 +f 530/265/280 531/270/286 532/253/256 +f 525/252/254 459/252/253 458/250/259 +f 536/245/262 535/256/264 515/256/260 +f 515/256/260 512/284/308 511/245/261 +f 537/257/263 536/245/262 461/244/191 +f 536/245/262 511/245/261 461/244/191 +f 535/256/264 538/258/267 516/258/265 +f 521/218/248 457/218/247 456/259/266 +f 538/258/267 540/246/272 517/246/268 +f 542/260/269 513/260/277 519/261/270 +f 540/246/272 543/247/300 518/247/273 +f 524/251/274 537/257/263 460/257/263 +f 513/260/277 542/260/269 544/243/309 +f 544/243/309 508/243/275 513/260/277 +f 508/243/275 544/243/309 455/262/195 +f 544/243/309 539/259/266 455/262/195 +f 526/219/252 525/252/254 545/263/278 +f 545/263/278 531/270/286 530/265/280 +f 547/266/281 523/220/249 526/219/252 +f 532/253/256 531/270/286 548/267/282 +f 549/268/283 548/267/282 521/218/248 +f 525/252/254 522/250/246 550/269/285 +f 544/243/287 551/283/303 549/268/283 +f 549/268/283 551/283/303 533/254/257 +f 552/272/289 542/260/269 541/261/271 +f 555/276/293 554/275/292 538/258/267 +f 524/251/274 556/278/296 557/277/294 +f 556/278/296 530/265/280 529/255/258 +f 528/279/297 558/282/302 557/277/294 +f 557/277/294 558/282/302 536/245/298 +f 540/246/272 559/281/301 560/280/299 +f 559/281/301 527/274/291 534/271/288 +f 528/279/297 527/274/291 555/276/293 +f 558/282/302 555/276/293 535/256/264 +f 540/246/272 538/258/267 554/275/292 +f 553/273/290 541/261/271 543/247/300 +f 542/260/269 552/272/289 551/283/303 +f 552/272/289 534/271/288 533/254/257 +f 556/278/296 524/251/274 523/220/249 +f 548/267/282 550/269/285 522/250/246 +f 518/247/273 543/247/300 541/261/271 +f 562/285/190 564/286/190 561/285/190 +f 566/287/310 561/285/195 565/287/310 +f 568/288/311 570/289/312 567/288/311 +f 572/290/313 574/291/314 571/290/313 +f 573/291/314 576/292/315 574/291/314 +f 575/292/315 565/287/310 576/292/315 +f 563/286/191 578/293/191 564/286/191 +f 580/294/316 571/290/313 579/294/316 +f 569/289/312 582/295/317 570/289/312 +f 581/295/317 584/296/318 582/295/317 +f 583/296/318 577/293/319 584/296/318 +f 590/297/193 591/298/193 587/299/193 +f 597/300/193 598/301/193 576/292/193 +f 609/302/193 613/303/193 614/304/193 +f 608/305/320 620/306/321 619/305/320 +f 607/306/321 567/288/311 620/306/321 +f 579/294/316 621/307/322 580/294/316 +f 610/307/322 622/302/323 621/307/322 +f 622/302/323 608/305/320 619/305/320 +f 630/304/194 631/303/194 622/302/194 +f 635/299/194 570/289/194 637/298/194 +f 645/308/194 650/309/194 562/285/194 +f 586/310/324 635/299/325 587/299/325 +f 601/311/326 640/312/327 624/311/326 +f 614/304/328 629/313/329 615/313/329 +f 596/314/330 645/308/331 644/314/330 +f 613/303/332 630/304/328 614/304/328 +f 613/303/332 632/315/333 631/303/332 +f 612/315/333 623/316/334 632/315/333 +f 611/316/334 624/311/326 623/316/334 +f 597/300/335 644/314/330 643/300/335 +f 598/301/336 643/300/335 642/301/336 +f 599/317/337 642/301/336 641/317/337 +f 641/317/337 600/312/327 599/317/337 +f 587/299/325 634/318/338 588/318/338 +f 588/318/338 647/319/339 593/319/339 +f 593/319/339 646/320/340 594/320/340 +f 595/308/331 646/320/340 645/308/331 +f 615/313/329 628/321/341 616/321/341 +f 616/321/341 627/322/342 617/322/342 +f 617/322/342 626/323/343 618/323/343 +f 618/323/343 625/310/324 586/310/324 +f 604/324/344 650/309/192 605/309/192 +f 603/325/195 651/324/344 604/324/344 +f 602/326/345 652/325/195 603/325/195 +f 585/327/346 637/298/190 636/327/346 +f 591/298/190 638/297/347 637/298/190 +f 589/328/348 648/329/191 633/328/348 +f 649/330/349 592/329/191 606/330/349 +f 606/330/349 650/309/192 649/330/349 +f 562/285/190 563/286/190 564/286/190 +f 566/287/310 562/285/195 561/285/195 +f 568/288/311 569/289/312 570/289/312 +f 572/290/313 573/291/314 574/291/314 +f 573/291/314 575/292/315 576/292/315 +f 575/292/315 566/287/310 565/287/310 +f 563/286/191 577/293/191 578/293/191 +f 580/294/316 572/290/313 571/290/313 +f 569/289/312 581/295/317 582/295/317 +f 581/295/317 583/296/318 584/296/318 +f 583/296/318 578/293/319 577/293/319 +f 591/298/193 585/327/193 581/295/193 +f 581/295/193 569/289/193 591/298/193 +f 569/289/193 586/310/193 587/299/193 +f 591/298/193 569/289/193 587/299/193 +f 587/299/193 588/318/193 590/297/193 +f 588/318/193 589/328/193 590/297/193 +f 592/329/193 589/328/193 588/318/193 +f 592/329/193 588/318/193 593/319/193 +f 606/330/193 592/329/193 593/319/193 +f 606/330/193 593/319/193 594/320/193 +f 605/309/193 606/330/193 594/320/193 +f 605/309/193 594/320/193 595/308/193 +f 605/309/193 595/308/193 561/285/193 +f 595/308/193 596/314/193 561/285/193 +f 581/295/193 585/327/193 602/326/193 +f 564/286/193 578/293/193 583/296/193 +f 583/296/193 581/295/193 603/325/193 +f 581/295/193 602/326/193 603/325/193 +f 565/287/193 561/285/193 576/292/193 +f 561/285/193 564/286/193 605/309/193 +f 561/285/193 596/314/193 597/300/193 +f 576/292/193 561/285/193 597/300/193 +f 564/286/193 583/296/193 605/309/193 +f 583/296/193 603/325/193 604/324/193 +f 583/296/193 604/324/193 605/309/193 +f 601/311/193 571/290/193 600/312/193 +f 571/290/193 574/291/193 600/312/193 +f 600/312/193 574/291/193 599/317/193 +f 574/291/193 576/292/193 599/317/193 +f 598/301/193 599/317/193 576/292/193 +f 618/323/193 586/310/193 569/289/193 +f 569/289/193 568/288/193 618/323/193 +f 568/288/193 607/306/193 617/322/193 +f 618/323/193 568/288/193 617/322/193 +f 607/306/193 608/305/193 616/321/193 +f 608/305/193 609/302/193 614/304/193 +f 609/302/193 610/307/193 612/315/193 +f 610/307/193 579/294/193 611/316/193 +f 612/315/193 610/307/193 611/316/193 +f 579/294/193 571/290/193 601/311/193 +f 579/294/193 601/311/193 611/316/193 +f 616/321/193 617/322/193 607/306/193 +f 615/313/193 616/321/193 608/305/193 +f 609/302/193 612/315/193 613/303/193 +f 614/304/193 615/313/193 608/305/193 +f 608/305/320 607/306/321 620/306/321 +f 607/306/321 568/288/311 567/288/311 +f 579/294/316 610/307/322 621/307/322 +f 610/307/322 609/302/323 622/302/323 +f 622/302/323 609/302/323 608/305/320 +f 623/316/194 624/311/194 580/294/194 +f 624/311/194 572/290/194 580/294/194 +f 580/294/194 621/307/194 623/316/194 +f 622/302/194 619/305/194 630/304/194 +f 619/305/194 620/306/194 628/321/194 +f 630/304/194 619/305/194 629/313/194 +f 620/306/194 567/288/194 627/322/194 +f 567/288/194 570/289/194 626/323/194 +f 570/289/194 625/310/194 626/323/194 +f 567/288/194 626/323/194 627/322/194 +f 632/315/194 623/316/194 621/307/194 +f 620/306/194 627/322/194 628/321/194 +f 632/315/194 621/307/194 622/302/194 +f 631/303/194 632/315/194 622/302/194 +f 628/321/194 629/313/194 619/305/194 +f 638/297/194 633/328/194 634/318/194 +f 635/299/194 625/310/194 570/289/194 +f 638/297/194 634/318/194 635/299/194 +f 582/295/194 636/327/194 637/298/194 +f 637/298/194 638/297/194 635/299/194 +f 570/289/194 582/295/194 637/298/194 +f 639/326/194 636/327/194 582/295/194 +f 584/296/194 577/293/194 563/286/194 +f 639/326/194 582/295/194 652/325/194 +f 582/295/194 584/296/194 652/325/194 +f 563/286/194 562/285/194 650/309/194 +f 562/285/194 566/287/194 575/292/194 +f 644/314/194 562/285/194 643/300/194 +f 562/285/194 644/314/194 645/308/194 +f 562/285/194 575/292/194 643/300/194 +f 652/325/194 584/296/194 651/324/194 +f 584/296/194 563/286/194 650/309/194 +f 651/324/194 584/296/194 650/309/194 +f 573/291/194 572/290/194 640/312/194 +f 572/290/194 624/311/194 640/312/194 +f 575/292/194 573/291/194 641/317/194 +f 573/291/194 640/312/194 641/317/194 +f 634/318/194 633/328/194 648/329/194 +f 647/319/194 634/318/194 648/329/194 +f 647/319/194 648/329/194 649/330/194 +f 646/320/194 647/319/194 649/330/194 +f 646/320/194 649/330/194 650/309/194 +f 645/308/194 646/320/194 650/309/194 +f 575/292/194 641/317/194 642/301/194 +f 575/292/194 642/301/194 643/300/194 +f 586/310/324 625/310/324 635/299/325 +f 601/311/326 600/312/327 640/312/327 +f 614/304/328 630/304/328 629/313/329 +f 596/314/330 595/308/331 645/308/331 +f 613/303/332 631/303/332 630/304/328 +f 613/303/332 612/315/333 632/315/333 +f 612/315/333 611/316/334 623/316/334 +f 611/316/334 601/311/326 624/311/326 +f 597/300/335 596/314/330 644/314/330 +f 598/301/336 597/300/335 643/300/335 +f 599/317/337 598/301/336 642/301/336 +f 641/317/337 640/312/327 600/312/327 +f 587/299/325 635/299/325 634/318/338 +f 588/318/338 634/318/338 647/319/339 +f 593/319/339 647/319/339 646/320/340 +f 595/308/331 594/320/340 646/320/340 +f 615/313/329 629/313/329 628/321/341 +f 616/321/341 628/321/341 627/322/342 +f 617/322/342 627/322/342 626/323/343 +f 618/323/343 626/323/343 625/310/324 +f 604/324/344 651/324/344 650/309/192 +f 603/325/195 652/325/195 651/324/344 +f 602/326/345 639/326/345 652/325/195 +f 639/326/345 602/326/345 585/327/346 +f 585/327/346 591/298/190 637/298/190 +f 636/327/346 639/326/345 585/327/346 +f 591/298/190 590/297/347 638/297/347 +f 633/328/348 638/297/347 590/297/347 +f 589/328/348 592/329/191 648/329/191 +f 633/328/348 590/297/347 589/328/348 +f 649/330/349 648/329/191 592/329/191 +f 606/330/349 605/309/192 650/309/192 +s 0 +f 654/331/195 656/332/195 653/331/195 +f 658/333/350 659/333/350 662/334/350 +f 665/335/191 667/336/191 664/335/191 +f 669/337/192 653/331/192 668/337/192 +f 664/335/193 668/337/193 658/333/193 +f 655/332/194 669/337/194 659/333/194 +f 659/333/194 666/336/194 665/335/194 +f 658/333/193 653/331/193 656/332/193 +f 666/336/192 668/337/192 667/336/192 +f 655/332/190 658/333/190 656/332/190 +f 660/338/190 671/339/190 661/338/190 +f 657/338/190 673/339/190 672/339/190 +f 665/335/191 664/335/191 674/340/191 +f 665/335/194 660/338/194 659/333/194 +f 658/333/193 672/339/193 664/335/193 +f 662/334/351 671/339/351 674/340/351 +f 663/338/352 674/340/352 673/339/352 +f 654/331/195 655/332/195 656/332/195 +f 663/338/195 657/338/195 658/333/195 +f 659/333/195 660/338/195 661/338/195 +f 662/334/195 663/338/195 658/333/195 +f 659/333/195 661/338/195 662/334/195 +f 665/335/191 666/336/191 667/336/191 +f 669/337/192 654/331/192 653/331/192 +f 664/335/193 667/336/193 668/337/193 +f 655/332/194 654/331/194 669/337/194 +f 659/333/194 669/337/194 666/336/194 +f 658/333/193 668/337/193 653/331/193 +f 666/336/192 669/337/192 668/337/192 +f 655/332/190 659/333/190 658/333/190 +f 660/338/190 670/339/190 671/339/190 +f 657/338/190 663/338/190 673/339/190 +f 674/340/191 671/339/191 665/335/191 +f 671/339/191 670/339/191 665/335/191 +f 664/335/191 672/339/191 673/339/191 +f 664/335/191 673/339/191 674/340/191 +f 665/335/194 670/339/194 660/338/194 +f 658/333/193 657/338/193 672/339/193 +f 662/334/351 661/338/351 671/339/351 +f 663/338/352 662/334/352 674/340/352 +s 1 +f 676/341/190 678/342/347 675/341/190 +f 677/342/347 680/343/191 678/342/347 +f 679/343/191 682/344/349 680/343/191 +f 681/344/349 684/345/192 682/344/349 +f 683/345/192 686/346/344 684/345/192 +f 685/346/344 688/347/195 686/346/344 +f 679/343/194 676/341/194 687/347/194 +f 687/347/195 690/348/345 688/347/195 +f 689/348/345 675/341/190 690/348/345 +f 688/347/193 690/348/193 682/344/193 +f 676/341/190 677/342/347 678/342/347 +f 677/342/347 679/343/191 680/343/191 +f 679/343/191 681/344/349 682/344/349 +f 681/344/349 683/345/192 684/345/192 +f 683/345/192 685/346/344 686/346/344 +f 685/346/344 687/347/195 688/347/195 +f 679/343/194 677/342/194 676/341/194 +f 676/341/194 689/348/194 687/347/194 +f 687/347/194 685/346/194 683/345/194 +f 683/345/194 681/344/194 687/347/194 +f 681/344/194 679/343/194 687/347/194 +f 687/347/195 689/348/345 690/348/345 +f 689/348/345 676/341/190 675/341/190 +f 690/348/193 675/341/193 682/344/193 +f 675/341/193 678/342/193 682/344/193 +f 678/342/193 680/343/193 682/344/193 +f 682/344/193 684/345/193 686/346/193 +f 686/346/193 688/347/193 682/344/193 +f 699/349/353 700/349/353 694/350/354 +f 702/351/355 704/352/356 701/351/357 +f 706/353/358 701/351/357 705/353/359 +f 708/354/360 710/355/361 707/355/362 +f 712/356/363 714/357/364 711/356/365 +f 716/358/366 718/359/367 715/360/368 +f 720/361/369 722/362/370 719/362/371 +f 724/363/372 726/364/373 723/363/374 +f 704/352/356 724/363/372 723/363/374 +f 728/365/375 708/354/360 727/365/376 +f 730/366/377 720/361/369 729/366/378 +f 725/364/379 727/365/376 726/364/373 +f 732/367/380 734/368/381 731/369/382 +f 735/370/383 737/371/384 738/372/385 +f 740/373/386 711/356/365 739/373/387 +f 741/374/388 730/366/377 729/366/378 +f 744/375/389 746/376/390 743/376/391 +f 743/376/391 747/371/392 737/371/384 +f 749/377/393 751/378/394 748/379/395 +f 753/380/396 754/381/397 755/381/398 +f 714/357/364 757/382/399 758/382/400 +f 760/383/401 762/384/402 759/383/403 +f 758/382/400 760/383/401 759/383/403 +f 761/384/404 763/385/405 755/381/398 +f 769/380/406 770/380/407 772/386/408 +f 777/387/409 778/388/410 699/349/194 +f 772/386/408 699/349/353 765/386/408 +f 722/362/370 705/353/359 719/362/371 +f 779/389/411 695/350/412 694/350/413 +f 780/389/414 745/375/415 744/375/389 +f 778/388/410 782/390/416 773/391/417 +f 741/374/388 783/392/418 784/393/419 +f 785/394/420 756/381/421 755/381/398 +f 763/385/405 786/395/422 755/381/398 +f 787/396/423 788/397/424 789/398/425 +f 791/399/426 793/398/427 790/400/428 +f 742/401/429 741/374/388 784/393/419 +f 794/388/430 796/402/431 797/403/432 +f 798/404/433 799/405/434 784/393/419 +f 801/378/435 715/360/368 800/406/436 +f 783/392/418 798/404/433 784/393/419 +f 802/392/437 742/401/429 784/393/419 +f 717/404/438 802/392/437 784/393/419 +f 754/381/397 803/394/439 755/381/398 +f 803/394/439 804/395/440 755/381/398 +f 804/395/440 764/385/441 755/381/398 +f 792/397/442 806/396/443 793/398/427 +f 786/395/422 785/394/420 755/381/398 +f 789/398/425 807/399/444 808/400/445 +f 809/407/446 811/408/447 812/409/448 +f 812/409/448 813/410/449 814/411/450 +f 814/411/450 719/362/371 705/353/359 +f 816/407/451 818/408/452 815/412/453 +f 817/409/454 820/410/455 818/408/452 +f 819/411/456 722/362/370 820/410/455 +f 821/413/457 812/409/448 822/414/458 +f 822/414/458 814/411/450 823/415/459 +f 814/411/450 701/351/357 823/415/459 +f 824/413/460 817/409/454 816/407/451 +f 825/414/461 819/411/456 817/409/454 +f 819/411/456 702/351/355 706/353/358 +f 827/416/462 822/414/458 828/417/463 +f 822/414/458 829/418/464 828/417/463 +f 823/415/459 704/352/356 829/418/464 +f 830/416/465 825/414/461 824/413/460 +f 825/414/461 832/418/466 826/415/467 +f 826/415/467 703/352/468 702/351/355 +f 833/419/469 835/420/470 836/421/471 +f 836/421/471 837/422/472 838/423/473 +f 838/423/473 723/363/374 726/364/373 +f 840/419/474 842/420/475 839/424/476 +f 841/421/477 844/422/478 842/420/475 +f 843/423/479 724/363/372 844/422/478 +f 833/419/469 846/425/480 845/426/481 +f 846/425/480 838/423/473 847/427/482 +f 838/423/473 727/365/376 847/427/482 +f 840/419/474 849/425/483 841/421/477 +f 849/425/483 843/423/479 841/421/477 +f 843/423/479 728/365/375 725/364/379 +f 845/426/481 852/428/484 851/429/485 +f 846/425/480 853/430/486 852/428/484 +f 847/427/482 708/354/360 853/430/486 +f 848/426/487 855/428/488 849/425/483 +f 849/425/483 856/430/489 850/427/490 +f 850/427/490 709/354/491 728/365/375 +f 851/429/485 858/431/492 857/432/493 +f 852/428/484 859/433/494 858/431/492 +f 853/430/486 707/355/362 859/433/494 +f 854/429/495 861/431/496 855/428/488 +f 855/428/488 862/433/497 856/430/489 +f 856/430/489 710/355/361 709/354/491 +f 834/424/498 828/417/463 835/420/470 +f 828/417/463 837/422/472 835/420/470 +f 829/418/464 723/363/374 837/422/472 +f 839/424/476 831/417/499 830/416/465 +f 831/417/499 844/422/478 832/418/466 +f 832/418/466 724/363/372 703/352/468 +f 807/399/444 865/434/500 863/435/501 +f 865/434/500 866/436/502 867/437/503 +f 867/437/503 729/366/378 720/361/369 +f 791/399/426 869/434/504 870/438/505 +f 869/434/504 872/436/506 870/438/505 +f 871/437/507 730/366/377 872/436/506 +f 810/412/508 865/434/500 811/408/447 +f 811/408/447 867/437/503 813/410/449 +f 813/410/449 720/361/369 719/362/371 +f 815/412/453 869/434/504 868/435/509 +f 818/408/452 871/437/507 869/434/504 +f 820/410/455 721/361/510 871/437/507 +f 874/439/511 876/440/512 873/441/513 +f 875/442/514 878/443/515 876/440/512 +f 877/444/516 711/356/365 878/443/515 +f 879/439/517 881/440/518 882/442/519 +f 882/442/519 883/443/520 884/444/521 +f 884/444/521 712/356/363 740/373/386 +f 873/441/513 886/445/522 885/446/523 +f 876/440/512 887/447/524 886/445/522 +f 878/443/515 714/357/364 887/447/524 +f 880/441/525 889/445/526 881/440/518 +f 881/440/518 890/447/527 883/443/520 +f 883/443/520 713/357/528 712/356/363 +f 891/448/529 886/445/522 892/449/530 +f 892/449/530 887/447/524 893/450/531 +f 887/447/524 758/382/400 893/450/531 +f 894/448/532 889/445/526 888/446/533 +f 895/449/534 890/447/527 889/445/526 +f 890/447/527 757/382/399 713/357/528 +f 897/451/535 733/452/536 732/367/380 +f 888/446/533 815/412/453 894/448/532 +f 879/439/517 731/369/537 899/453/538 +f 882/442/519 732/367/539 731/369/537 +f 884/444/521 897/451/540 732/367/539 +f 905/454/541 907/455/542 904/456/543 +f 906/457/544 909/458/545 907/455/542 +f 908/459/546 762/384/402 909/458/545 +f 903/454/547 910/455/548 911/460/549 +f 911/460/549 912/458/550 913/459/551 +f 913/459/551 761/384/404 760/383/401 +f 806/396/443 915/461/552 916/462/553 +f 916/462/553 917/463/554 918/464/555 +f 918/464/555 756/381/421 785/394/420 +f 891/448/529 906/457/544 905/454/541 +f 892/449/530 908/459/546 906/457/544 +f 893/450/531 759/383/403 908/459/546 +f 894/448/532 911/460/549 895/449/534 +f 895/449/534 913/459/551 896/450/556 +f 896/450/556 760/383/401 757/382/399 +f 729/366/378 919/465/557 741/374/388 +f 919/465/557 866/436/502 864/466/558 +f 771/380/193 914/467/193 700/349/193 +f 718/359/367 717/404/438 784/393/419 +f 751/378/394 923/468/559 924/358/560 +f 925/469/561 801/378/435 800/406/436 +f 738/372/385 747/371/392 926/470/562 +f 777/387/409 927/471/563 928/472/564 +f 928/472/564 929/473/565 930/474/566 +f 930/474/566 780/389/414 744/375/389 +f 921/387/567 932/471/568 922/475/569 +f 931/472/570 934/473/571 932/471/568 +f 933/474/572 779/389/411 934/473/571 +f 777/387/409 781/403/573 778/388/410 +f 781/403/573 930/474/566 935/476/574 +f 930/474/566 743/376/391 935/476/574 +f 921/387/567 797/403/432 931/472/570 +f 797/403/432 933/474/572 931/472/570 +f 933/474/572 746/376/390 745/375/415 +f 781/403/573 935/476/574 736/477/575 +f 736/477/575 743/376/391 737/371/384 +f 797/403/432 937/477/576 936/476/577 +f 937/477/576 746/376/390 936/476/577 +f 779/389/411 693/478/578 934/473/571 +f 934/473/571 692/479/579 932/471/568 +f 932/471/568 691/480/580 922/475/569 +f 698/480/581 927/471/563 776/475/582 +f 697/479/583 929/473/565 927/471/563 +f 696/478/584 780/389/414 929/473/565 +f 766/380/585 938/461/586 767/380/587 +f 767/380/587 939/463/588 768/380/589 +f 768/380/589 754/381/397 753/380/396 +f 771/380/590 915/461/552 914/467/591 +f 770/380/407 917/463/554 915/461/552 +f 769/380/406 756/381/421 917/463/554 +f 787/396/423 938/461/586 775/467/592 +f 940/462/593 939/463/588 938/461/586 +f 941/464/594 754/381/397 939/463/588 +f 730/366/377 942/481/595 872/436/506 +f 872/436/506 942/481/595 870/438/505 +f 789/398/425 940/462/593 787/396/423 +f 943/482/596 941/464/594 940/462/593 +f 944/483/597 803/394/439 941/464/594 +f 808/400/445 943/482/596 789/398/425 +f 945/484/598 944/483/597 943/482/596 +f 946/485/599 804/395/440 944/483/597 +f 790/400/428 947/482/600 948/484/601 +f 948/484/601 949/486/602 950/485/603 +f 950/485/603 786/395/422 763/385/405 +f 793/398/427 916/462/553 947/482/600 +f 947/482/600 918/464/555 949/486/602 +f 949/486/602 785/394/420 786/395/422 +f 788/397/424 864/466/558 807/399/444 +f 951/487/604 919/465/557 864/466/558 +f 919/465/557 783/392/418 741/374/388 +f 748/379/395 951/487/604 788/397/424 +f 751/378/394 952/488/605 951/487/604 +f 952/488/605 798/404/433 783/392/418 +f 774/489/606 749/377/393 748/379/395 +f 782/390/416 736/477/575 735/370/383 +f 718/359/367 784/393/419 799/405/434 +f 805/379/607 920/489/608 914/467/591 +f 796/402/431 937/477/576 797/403/432 +f 953/490/609 747/371/392 937/477/576 +f 805/379/607 954/487/610 801/378/435 +f 801/378/435 955/488/611 716/358/366 +f 955/488/611 717/404/438 716/358/366 +f 792/397/442 870/438/505 954/487/610 +f 954/487/610 942/481/595 955/488/611 +f 955/488/611 742/401/429 802/392/437 +f 762/384/402 946/485/599 909/458/545 +f 909/458/545 945/484/598 907/455/542 +f 907/455/542 808/400/445 904/456/543 +f 790/400/428 910/455/548 902/456/612 +f 948/484/601 912/458/550 910/455/548 +f 950/485/603 761/384/404 912/458/550 +f 956/451/613 898/491/614 897/451/535 +f 958/369/615 960/492/616 961/368/617 +f 877/444/516 956/451/618 739/373/387 +f 875/442/514 962/367/619 877/444/516 +f 874/439/511 958/369/620 875/442/514 +f 956/451/618 740/373/386 739/373/387 +f 957/491/621 964/493/622 898/491/623 +f 960/492/624 966/494/625 961/368/626 +f 961/368/626 967/495/627 968/452/628 +f 968/452/628 963/493/629 957/491/621 +f 733/452/630 964/493/622 969/495/631 +f 734/368/632 969/495/631 970/494/633 +f 900/492/634 970/494/633 901/496/635 +f 731/369/382 900/492/636 899/453/636 +f 956/451/613 968/452/637 957/491/638 +f 963/493/639 967/495/640 965/496/641 +f 885/446/523 891/448/529 810/412/508 +f 962/367/642 961/368/617 968/452/637 +f 773/391/417 749/377/393 774/489/606 +f 925/469/561 795/497/643 920/489/608 +f 800/406/436 795/497/643 925/469/561 +f 715/360/368 796/402/431 800/406/436 +f 715/360/368 926/470/562 953/490/609 +f 750/498/644 773/391/417 782/390/416 +f 923/468/559 782/390/416 735/370/383 +f 923/468/559 738/372/385 799/405/434 +f 799/405/434 926/470/562 718/359/367 +f 924/358/560 799/405/434 798/404/433 +f 710/355/645 862/433/645 860/432/645 +f 979/499/193 980/500/193 974/501/193 +f 981/502/646 974/501/647 973/502/648 +f 990/503/194 982/501/194 985/500/194 +f 985/500/649 971/504/650 980/500/649 +f 982/501/647 975/503/651 974/501/647 +f 990/503/651 976/505/652 975/503/651 +f 986/499/653 980/500/649 979/499/653 +f 989/505/652 977/506/654 976/505/652 +f 988/506/655 978/507/656 977/506/655 +f 973/502/648 983/508/657 981/502/646 +f 972/508/658 984/504/650 983/508/658 +f 987/507/659 979/499/653 978/507/656 +f 999/509/193 1000/510/193 994/511/193 +f 1001/512/660 994/511/661 993/512/660 +f 1010/513/194 1002/511/194 1005/510/194 +f 1005/510/662 991/514/663 1000/510/662 +f 1002/511/661 995/513/664 994/511/661 +f 1010/513/664 996/515/665 995/513/664 +f 1006/509/666 1000/510/662 999/509/666 +f 1009/515/665 997/516/667 996/515/665 +f 1008/516/668 998/517/669 997/516/668 +f 993/512/660 1003/518/670 1001/512/660 +f 992/518/671 1004/514/663 1003/518/671 +f 1007/517/669 999/509/666 998/517/669 +f 1019/519/193 1020/520/193 1014/521/193 +f 1021/522/672 1014/521/673 1013/522/672 +f 1030/523/194 1022/521/194 1025/520/194 +f 1025/520/674 1011/524/675 1020/520/674 +f 1022/521/676 1015/523/677 1014/521/673 +f 1030/523/677 1016/525/678 1015/523/677 +f 1026/519/679 1020/520/674 1019/519/679 +f 1029/525/678 1017/526/680 1016/525/678 +f 1028/526/681 1018/527/682 1017/526/681 +f 1013/522/672 1023/528/683 1021/522/672 +f 1012/528/684 1024/524/675 1023/528/684 +f 1027/527/685 1019/519/679 1018/527/682 +f 1039/529/193 1040/530/193 1034/531/193 +f 1041/532/686 1034/531/676 1033/532/686 +f 1050/533/194 1042/531/194 1045/530/194 +f 1045/530/674 1031/534/675 1040/530/674 +f 1042/531/676 1035/533/677 1034/531/676 +f 1050/533/677 1036/535/678 1035/533/677 +f 1046/529/687 1040/530/674 1039/529/687 +f 1049/535/678 1037/536/680 1036/535/678 +f 1048/536/688 1038/537/685 1037/536/688 +f 1033/532/686 1043/538/683 1041/532/686 +f 1032/538/684 1044/534/675 1043/538/684 +f 1047/537/685 1039/529/687 1038/537/685 +f 1059/499/193 1060/500/193 1054/501/193 +f 1061/502/646 1054/501/647 1053/502/648 +f 1070/503/194 1062/501/194 1065/500/194 +f 1065/500/649 1051/504/650 1060/500/649 +f 1062/501/647 1055/503/651 1054/501/647 +f 1070/503/651 1056/505/652 1055/503/651 +f 1066/499/653 1060/500/649 1059/499/653 +f 1069/505/652 1057/506/654 1056/505/652 +f 1068/506/655 1058/507/659 1057/506/655 +f 1053/502/648 1063/508/657 1061/502/646 +f 1052/508/658 1064/504/650 1063/508/658 +f 1067/507/659 1059/499/653 1058/507/659 +f 1079/509/193 1080/510/193 1074/511/193 +f 1081/512/660 1074/511/661 1073/512/660 +f 1090/513/194 1082/511/194 1085/510/194 +f 1085/510/662 1071/514/663 1080/510/662 +f 1082/511/661 1075/513/664 1074/511/661 +f 1090/513/664 1076/539/665 1075/513/664 +f 1086/509/666 1080/510/662 1079/509/666 +f 1089/515/665 1077/516/667 1076/539/665 +f 1088/516/668 1078/517/669 1077/516/668 +f 1073/512/660 1083/518/670 1081/512/660 +f 1072/518/671 1084/514/689 1083/518/671 +f 1087/517/669 1079/509/666 1078/517/669 +f 1099/519/193 1100/520/193 1094/521/193 +f 1101/522/672 1094/521/673 1093/522/672 +f 1110/523/194 1102/521/194 1105/520/194 +f 1105/520/674 1091/524/675 1100/520/674 +f 1102/521/676 1095/523/677 1094/521/673 +f 1110/523/677 1096/525/678 1095/523/677 +f 1106/519/679 1100/520/674 1099/519/679 +f 1109/525/678 1097/526/680 1096/525/678 +f 1108/526/690 1098/527/682 1097/526/681 +f 1093/522/672 1103/528/683 1101/522/672 +f 1092/528/684 1104/524/675 1103/528/684 +f 1107/527/682 1099/519/679 1098/527/682 +f 1119/529/193 1120/530/193 1114/531/193 +f 1121/532/686 1114/531/676 1113/532/686 +f 1130/533/194 1122/531/194 1125/530/194 +f 1125/530/674 1111/534/675 1120/530/674 +f 1122/531/676 1115/533/677 1114/531/676 +f 1130/533/677 1116/535/678 1115/533/677 +f 1126/529/687 1120/530/674 1119/529/687 +f 1129/535/678 1117/536/680 1116/535/678 +f 1128/536/688 1118/537/685 1117/536/688 +f 1113/532/686 1123/538/683 1121/532/686 +f 1112/538/684 1124/534/675 1123/538/684 +f 1127/537/685 1119/529/687 1118/537/685 +f 700/349/353 691/480/354 694/350/354 +f 691/480/354 692/479/354 693/478/354 +f 694/350/354 691/480/354 693/478/354 +f 694/350/354 695/350/354 699/349/353 +f 695/350/354 696/478/354 698/480/354 +f 696/478/354 697/479/354 698/480/354 +f 698/480/354 699/349/353 695/350/354 +f 702/351/355 703/352/468 704/352/356 +f 706/353/358 702/351/355 701/351/357 +f 708/354/360 709/354/491 710/355/361 +f 712/356/363 713/357/528 714/357/364 +f 716/358/366 717/404/438 718/359/367 +f 720/361/369 721/361/510 722/362/370 +f 724/363/372 725/364/379 726/364/373 +f 704/352/356 703/352/468 724/363/372 +f 728/365/375 709/354/491 708/354/360 +f 730/366/377 721/361/510 720/361/369 +f 725/364/379 728/365/375 727/365/376 +f 732/367/380 733/452/536 734/368/381 +f 735/370/383 736/477/575 737/371/384 +f 740/373/386 712/356/363 711/356/365 +f 741/374/388 742/401/429 730/366/377 +f 744/375/389 745/375/415 746/376/390 +f 743/376/391 746/376/390 747/371/392 +f 749/377/393 750/498/644 751/378/394 +f 756/381/421 752/380/396 755/381/398 +f 752/380/396 753/380/396 755/381/398 +f 714/357/364 713/357/528 757/382/399 +f 760/383/401 761/384/404 762/384/402 +f 758/382/400 757/382/399 760/383/401 +f 764/385/441 762/384/402 755/381/398 +f 762/384/402 761/384/404 755/381/398 +f 772/386/408 765/386/408 753/380/396 +f 765/386/408 766/380/585 767/380/587 +f 767/380/587 768/380/589 765/386/408 +f 768/380/589 753/380/396 765/386/408 +f 770/380/407 771/380/590 772/386/408 +f 753/380/396 752/380/396 772/386/408 +f 752/380/396 769/380/406 772/386/408 +f 778/388/410 773/391/417 774/489/194 +f 774/489/194 775/467/194 778/388/410 +f 775/467/194 766/380/194 699/349/194 +f 778/388/410 775/467/194 699/349/194 +f 766/380/194 765/386/194 699/349/194 +f 699/349/194 698/480/581 776/475/582 +f 776/475/582 777/387/409 699/349/194 +f 772/386/408 700/349/353 699/349/353 +f 722/362/370 706/353/358 705/353/359 +f 779/389/411 780/389/414 695/350/412 +f 780/389/414 779/389/411 745/375/415 +f 778/388/410 781/403/573 782/390/416 +f 787/396/423 748/379/395 788/397/424 +f 791/399/426 792/397/442 793/398/427 +f 794/388/430 795/497/643 796/402/431 +f 801/378/435 716/358/366 715/360/368 +f 792/397/442 805/379/607 806/396/443 +f 789/398/425 788/397/424 807/399/444 +f 809/407/446 810/412/508 811/408/447 +f 812/409/448 811/408/447 813/410/449 +f 814/411/450 813/410/449 719/362/371 +f 816/407/451 817/409/454 818/408/452 +f 817/409/454 819/411/456 820/410/455 +f 819/411/456 706/353/358 722/362/370 +f 821/413/457 809/407/446 812/409/448 +f 822/414/458 812/409/448 814/411/450 +f 814/411/450 705/353/359 701/351/357 +f 824/413/460 825/414/461 817/409/454 +f 825/414/461 826/415/467 819/411/456 +f 819/411/456 826/415/467 702/351/355 +f 827/416/462 821/413/457 822/414/458 +f 822/414/458 823/415/459 829/418/464 +f 823/415/459 701/351/357 704/352/356 +f 830/416/465 831/417/499 825/414/461 +f 825/414/461 831/417/499 832/418/466 +f 826/415/467 832/418/466 703/352/468 +f 833/419/469 834/424/498 835/420/470 +f 836/421/471 835/420/470 837/422/472 +f 838/423/473 837/422/472 723/363/374 +f 840/419/474 841/421/477 842/420/475 +f 841/421/477 843/423/479 844/422/478 +f 843/423/479 725/364/379 724/363/372 +f 833/419/469 836/421/471 846/425/480 +f 846/425/480 836/421/471 838/423/473 +f 838/423/473 726/364/373 727/365/376 +f 840/419/474 848/426/487 849/425/483 +f 849/425/483 850/427/490 843/423/479 +f 843/423/479 850/427/490 728/365/375 +f 845/426/481 846/425/480 852/428/484 +f 846/425/480 847/427/482 853/430/486 +f 847/427/482 727/365/376 708/354/360 +f 848/426/487 854/429/495 855/428/488 +f 849/425/483 855/428/488 856/430/489 +f 850/427/490 856/430/489 709/354/491 +f 851/429/485 852/428/484 858/431/492 +f 852/428/484 853/430/486 859/433/494 +f 853/430/486 708/354/360 707/355/362 +f 854/429/495 860/432/691 861/431/496 +f 855/428/488 861/431/496 862/433/497 +f 856/430/489 862/433/497 710/355/361 +f 834/424/498 827/416/462 828/417/463 +f 828/417/463 829/418/464 837/422/472 +f 829/418/464 704/352/356 723/363/374 +f 839/424/476 842/420/475 831/417/499 +f 831/417/499 842/420/475 844/422/478 +f 832/418/466 844/422/478 724/363/372 +f 807/399/444 864/466/558 865/434/500 +f 865/434/500 864/466/558 866/436/502 +f 867/437/503 866/436/502 729/366/378 +f 791/399/426 868/435/509 869/434/504 +f 869/434/504 871/437/507 872/436/506 +f 871/437/507 721/361/510 730/366/377 +f 810/412/508 863/435/501 865/434/500 +f 811/408/447 865/434/500 867/437/503 +f 813/410/449 867/437/503 720/361/369 +f 815/412/453 818/408/452 869/434/504 +f 818/408/452 820/410/455 871/437/507 +f 820/410/455 722/362/370 721/361/510 +f 874/439/511 875/442/514 876/440/512 +f 875/442/514 877/444/516 878/443/515 +f 877/444/516 739/373/387 711/356/365 +f 879/439/517 880/441/525 881/440/518 +f 882/442/519 881/440/518 883/443/520 +f 884/444/521 883/443/520 712/356/363 +f 873/441/513 876/440/512 886/445/522 +f 876/440/512 878/443/515 887/447/524 +f 878/443/515 711/356/365 714/357/364 +f 880/441/525 888/446/533 889/445/526 +f 881/440/518 889/445/526 890/447/527 +f 883/443/520 890/447/527 713/357/528 +f 891/448/529 885/446/523 886/445/522 +f 892/449/530 886/445/522 887/447/524 +f 887/447/524 714/357/364 758/382/400 +f 894/448/532 895/449/534 889/445/526 +f 895/449/534 896/450/556 890/447/527 +f 890/447/527 896/450/556 757/382/399 +f 897/451/535 898/491/614 733/452/536 +f 899/453/538 900/492/634 901/496/635 +f 901/496/635 860/432/691 854/429/495 +f 854/429/495 848/426/487 840/419/474 +f 840/419/474 839/424/476 854/429/495 +f 839/424/476 830/416/465 899/453/538 +f 830/416/465 824/413/460 879/439/517 +f 824/413/460 816/407/451 879/439/517 +f 816/407/451 815/412/453 880/441/525 +f 815/412/453 868/435/509 894/448/532 +f 816/407/451 880/441/525 879/439/517 +f 868/435/509 791/399/426 902/456/612 +f 791/399/426 790/400/428 902/456/612 +f 839/424/476 899/453/538 901/496/635 +f 901/496/635 854/429/495 839/424/476 +f 879/439/517 899/453/538 830/416/465 +f 868/435/509 902/456/612 903/454/547 +f 868/435/509 903/454/547 894/448/532 +f 880/441/525 815/412/453 888/446/533 +f 879/439/517 882/442/519 731/369/537 +f 882/442/519 884/444/521 732/367/539 +f 884/444/521 740/373/386 897/451/540 +f 905/454/541 906/457/544 907/455/542 +f 906/457/544 908/459/546 909/458/545 +f 908/459/546 759/383/403 762/384/402 +f 903/454/547 902/456/612 910/455/548 +f 911/460/549 910/455/548 912/458/550 +f 913/459/551 912/458/550 761/384/404 +f 806/396/443 914/467/591 915/461/552 +f 916/462/553 915/461/552 917/463/554 +f 918/464/555 917/463/554 756/381/421 +f 891/448/529 892/449/530 906/457/544 +f 892/449/530 893/450/531 908/459/546 +f 893/450/531 758/382/400 759/383/403 +f 894/448/532 903/454/547 911/460/549 +f 895/449/534 911/460/549 913/459/551 +f 896/450/556 913/459/551 760/383/401 +f 729/366/378 866/436/502 919/465/557 +f 914/467/193 920/489/193 794/388/430 +f 920/489/193 795/497/643 794/388/430 +f 794/388/430 921/387/567 700/349/193 +f 914/467/193 794/388/430 700/349/193 +f 921/387/567 922/475/569 700/349/193 +f 922/475/569 691/480/580 700/349/193 +f 700/349/193 772/386/193 771/380/193 +f 751/378/394 750/498/644 923/468/559 +f 925/469/561 805/379/607 801/378/435 +f 738/372/385 737/371/384 747/371/392 +f 777/387/409 776/475/582 927/471/563 +f 928/472/564 927/471/563 929/473/565 +f 930/474/566 929/473/565 780/389/414 +f 921/387/567 931/472/570 932/471/568 +f 931/472/570 933/474/572 934/473/571 +f 933/474/572 745/375/415 779/389/411 +f 777/387/409 928/472/564 781/403/573 +f 781/403/573 928/472/564 930/474/566 +f 930/474/566 744/375/389 743/376/391 +f 921/387/567 794/388/430 797/403/432 +f 797/403/432 936/476/577 933/474/572 +f 933/474/572 936/476/577 746/376/390 +f 736/477/575 935/476/574 743/376/391 +f 937/477/576 747/371/392 746/376/390 +f 779/389/411 694/350/413 693/478/578 +f 934/473/571 693/478/578 692/479/579 +f 932/471/568 692/479/579 691/480/580 +f 698/480/581 697/479/583 927/471/563 +f 697/479/583 696/478/584 929/473/565 +f 696/478/584 695/350/412 780/389/414 +f 766/380/585 775/467/592 938/461/586 +f 767/380/587 938/461/586 939/463/588 +f 768/380/589 939/463/588 754/381/397 +f 771/380/590 770/380/407 915/461/552 +f 770/380/407 769/380/406 917/463/554 +f 769/380/406 752/380/396 756/381/421 +f 787/396/423 940/462/593 938/461/586 +f 940/462/593 941/464/594 939/463/588 +f 941/464/594 803/394/439 754/381/397 +f 730/366/377 742/401/429 942/481/595 +f 789/398/425 943/482/596 940/462/593 +f 943/482/596 944/483/597 941/464/594 +f 944/483/597 804/395/440 803/394/439 +f 808/400/445 945/484/598 943/482/596 +f 945/484/598 946/485/599 944/483/597 +f 946/485/599 764/385/441 804/395/440 +f 790/400/428 793/398/427 947/482/600 +f 948/484/601 947/482/600 949/486/602 +f 950/485/603 949/486/602 786/395/422 +f 793/398/427 806/396/443 916/462/553 +f 947/482/600 916/462/553 918/464/555 +f 949/486/602 918/464/555 785/394/420 +f 788/397/424 951/487/604 864/466/558 +f 951/487/604 952/488/605 919/465/557 +f 919/465/557 952/488/605 783/392/418 +f 748/379/395 751/378/394 951/487/604 +f 751/378/394 924/358/560 952/488/605 +f 952/488/605 924/358/560 798/404/433 +f 787/396/423 775/467/592 748/379/395 +f 775/467/592 774/489/606 748/379/395 +f 782/390/416 781/403/573 736/477/575 +f 914/467/591 806/396/443 805/379/607 +f 805/379/607 925/469/561 920/489/608 +f 796/402/431 953/490/609 937/477/576 +f 953/490/609 926/470/562 747/371/392 +f 805/379/607 792/397/442 954/487/610 +f 801/378/435 954/487/610 955/488/611 +f 955/488/611 802/392/437 717/404/438 +f 792/397/442 791/399/426 870/438/505 +f 954/487/610 870/438/505 942/481/595 +f 955/488/611 942/481/595 742/401/429 +f 762/384/402 764/385/441 946/485/599 +f 909/458/545 946/485/599 945/484/598 +f 907/455/542 945/484/598 808/400/445 +f 790/400/428 948/484/601 910/455/548 +f 948/484/601 950/485/603 912/458/550 +f 950/485/603 763/385/405 761/384/404 +f 956/451/613 957/491/638 898/491/614 +f 958/369/615 959/453/616 960/492/616 +f 877/444/516 962/367/619 956/451/618 +f 875/442/514 958/369/620 962/367/619 +f 874/439/511 959/453/692 958/369/620 +f 956/451/618 897/451/540 740/373/386 +f 957/491/621 963/493/629 964/493/622 +f 960/492/624 965/496/693 966/494/625 +f 961/368/626 966/494/625 967/495/627 +f 968/452/628 967/495/627 963/493/629 +f 733/452/630 898/491/623 964/493/622 +f 734/368/632 733/452/630 969/495/631 +f 900/492/634 734/368/632 970/494/633 +f 731/369/382 734/368/381 900/492/636 +f 956/451/613 962/367/642 968/452/637 +f 967/495/640 966/494/640 965/496/641 +f 965/496/641 857/432/694 963/493/639 +f 857/432/694 860/432/695 964/493/696 +f 860/432/695 901/496/697 964/493/696 +f 901/496/697 970/494/640 969/495/640 +f 964/493/696 901/496/697 969/495/640 +f 964/493/696 963/493/639 857/432/694 +f 904/456/543 808/400/445 807/399/444 +f 807/399/444 863/435/501 904/456/543 +f 863/435/501 810/412/508 891/448/529 +f 904/456/543 863/435/501 905/454/541 +f 810/412/508 809/407/446 873/441/513 +f 809/407/446 821/413/457 874/439/511 +f 821/413/457 827/416/462 874/439/511 +f 827/416/462 834/424/498 959/453/692 +f 834/424/498 833/419/469 845/426/481 +f 845/426/481 851/429/485 834/424/498 +f 851/429/485 857/432/493 965/496/693 +f 965/496/693 960/492/624 959/453/692 +f 965/496/693 959/453/692 834/424/498 +f 851/429/485 965/496/693 834/424/498 +f 809/407/446 874/439/511 873/441/513 +f 827/416/462 959/453/692 874/439/511 +f 905/454/541 863/435/501 891/448/529 +f 873/441/513 885/446/523 810/412/508 +f 962/367/642 958/369/615 961/368/617 +f 800/406/436 796/402/431 795/497/643 +f 715/360/368 953/490/609 796/402/431 +f 715/360/368 718/359/367 926/470/562 +f 750/498/644 749/377/393 773/391/417 +f 923/468/559 750/498/644 782/390/416 +f 923/468/559 735/370/383 738/372/385 +f 799/405/434 738/372/385 926/470/562 +f 924/358/560 923/468/559 799/405/434 +f 861/431/645 860/432/645 862/433/645 +f 860/432/645 857/432/645 710/355/645 +f 857/432/645 858/431/645 859/433/645 +f 859/433/645 707/355/645 857/432/645 +f 707/355/645 710/355/645 857/432/645 +f 980/500/193 971/504/193 974/501/193 +f 971/504/193 972/508/193 973/502/193 +f 974/501/193 971/504/193 973/502/193 +f 974/501/193 975/503/193 979/499/193 +f 975/503/193 976/505/193 978/507/193 +f 976/505/193 977/506/193 978/507/193 +f 978/507/193 979/499/193 975/503/193 +f 981/502/646 982/501/647 974/501/647 +f 982/501/194 981/502/194 984/504/194 +f 981/502/194 983/508/194 984/504/194 +f 984/504/194 985/500/194 982/501/194 +f 985/500/194 986/499/194 990/503/194 +f 986/499/194 987/507/194 989/505/194 +f 987/507/194 988/506/194 989/505/194 +f 989/505/194 990/503/194 986/499/194 +f 985/500/649 984/504/650 971/504/650 +f 982/501/647 990/503/651 975/503/651 +f 990/503/651 989/505/652 976/505/652 +f 986/499/653 985/500/649 980/500/649 +f 989/505/652 988/506/654 977/506/654 +f 988/506/655 987/507/659 978/507/656 +f 973/502/648 972/508/657 983/508/657 +f 972/508/658 971/504/650 984/504/650 +f 987/507/659 986/499/653 979/499/653 +f 1000/510/193 991/514/193 993/512/193 +f 991/514/193 992/518/193 993/512/193 +f 993/512/193 994/511/193 1000/510/193 +f 994/511/193 995/513/193 999/509/193 +f 995/513/193 996/515/193 998/517/193 +f 996/515/193 997/516/193 998/517/193 +f 998/517/193 999/509/193 995/513/193 +f 1001/512/660 1002/511/661 994/511/661 +f 1002/511/194 1001/512/194 1005/510/194 +f 1001/512/194 1003/518/194 1004/514/194 +f 1005/510/194 1001/512/194 1004/514/194 +f 1005/510/194 1006/509/194 1010/513/194 +f 1006/509/194 1007/517/194 1009/515/194 +f 1007/517/194 1008/516/194 1009/515/194 +f 1009/515/194 1010/513/194 1006/509/194 +f 1005/510/662 1004/514/663 991/514/663 +f 1002/511/661 1010/513/664 995/513/664 +f 1010/513/664 1009/515/665 996/515/665 +f 1006/509/666 1005/510/662 1000/510/662 +f 1009/515/665 1008/516/667 997/516/667 +f 1008/516/668 1007/517/669 998/517/669 +f 993/512/660 992/518/670 1003/518/670 +f 992/518/671 991/514/663 1004/514/663 +f 1007/517/669 1006/509/666 999/509/666 +f 1020/520/193 1011/524/193 1014/521/193 +f 1011/524/193 1012/528/193 1013/522/193 +f 1014/521/193 1011/524/193 1013/522/193 +f 1014/521/193 1015/523/193 1019/519/193 +f 1015/523/193 1016/525/193 1018/527/193 +f 1016/525/193 1017/526/193 1018/527/193 +f 1018/527/193 1019/519/193 1015/523/193 +f 1021/522/672 1022/521/676 1014/521/673 +f 1022/521/194 1021/522/194 1024/524/194 +f 1021/522/194 1023/528/194 1024/524/194 +f 1024/524/194 1025/520/194 1022/521/194 +f 1025/520/194 1026/519/194 1030/523/194 +f 1026/519/194 1027/527/194 1029/525/194 +f 1027/527/194 1028/526/194 1029/525/194 +f 1029/525/194 1030/523/194 1026/519/194 +f 1025/520/674 1024/524/675 1011/524/675 +f 1022/521/676 1030/523/677 1015/523/677 +f 1030/523/677 1029/525/678 1016/525/678 +f 1026/519/679 1025/520/674 1020/520/674 +f 1029/525/678 1028/526/680 1017/526/680 +f 1028/526/681 1027/527/685 1018/527/682 +f 1013/522/672 1012/528/683 1023/528/683 +f 1012/528/684 1011/524/675 1024/524/675 +f 1027/527/685 1026/519/679 1019/519/679 +f 1040/530/193 1031/534/193 1033/532/193 +f 1031/534/193 1032/538/193 1033/532/193 +f 1033/532/193 1034/531/193 1040/530/193 +f 1034/531/193 1035/533/193 1039/529/193 +f 1035/533/193 1036/535/193 1038/537/193 +f 1036/535/193 1037/536/193 1038/537/193 +f 1038/537/193 1039/529/193 1035/533/193 +f 1041/532/686 1042/531/676 1034/531/676 +f 1042/531/194 1041/532/194 1045/530/194 +f 1041/532/194 1043/538/194 1044/534/194 +f 1045/530/194 1041/532/194 1044/534/194 +f 1045/530/194 1046/529/194 1050/533/194 +f 1046/529/194 1047/537/194 1049/535/194 +f 1047/537/194 1048/536/194 1049/535/194 +f 1049/535/194 1050/533/194 1046/529/194 +f 1045/530/674 1044/534/675 1031/534/675 +f 1042/531/676 1050/533/677 1035/533/677 +f 1050/533/677 1049/535/678 1036/535/678 +f 1046/529/687 1045/530/674 1040/530/674 +f 1049/535/678 1048/536/680 1037/536/680 +f 1048/536/688 1047/537/685 1038/537/685 +f 1033/532/686 1032/538/683 1043/538/683 +f 1032/538/684 1031/534/675 1044/534/675 +f 1047/537/685 1046/529/687 1039/529/687 +f 1060/500/193 1051/504/193 1054/501/193 +f 1051/504/193 1052/508/193 1053/502/193 +f 1054/501/193 1051/504/193 1053/502/193 +f 1054/501/193 1055/503/193 1059/499/193 +f 1055/503/193 1056/505/193 1058/507/193 +f 1056/505/193 1057/506/193 1058/507/193 +f 1058/507/193 1059/499/193 1055/503/193 +f 1061/502/646 1062/501/647 1054/501/647 +f 1062/501/194 1061/502/194 1064/504/194 +f 1061/502/194 1063/508/194 1064/504/194 +f 1064/504/194 1065/500/194 1062/501/194 +f 1065/500/194 1066/499/194 1070/503/194 +f 1066/499/194 1067/507/194 1069/505/194 +f 1067/507/194 1068/506/194 1069/505/194 +f 1069/505/194 1070/503/194 1066/499/194 +f 1065/500/649 1064/504/650 1051/504/650 +f 1062/501/647 1070/503/651 1055/503/651 +f 1070/503/651 1069/505/652 1056/505/652 +f 1066/499/653 1065/500/649 1060/500/649 +f 1069/505/652 1068/506/654 1057/506/654 +f 1068/506/655 1067/507/659 1058/507/659 +f 1053/502/648 1052/508/657 1063/508/657 +f 1052/508/658 1051/504/650 1064/504/650 +f 1067/507/659 1066/499/653 1059/499/653 +f 1080/510/193 1071/514/193 1074/511/193 +f 1071/514/193 1072/518/193 1073/512/193 +f 1074/511/193 1071/514/193 1073/512/193 +f 1074/511/193 1075/513/193 1079/509/193 +f 1075/513/193 1076/539/193 1078/517/193 +f 1076/539/193 1077/516/193 1078/517/193 +f 1078/517/193 1079/509/193 1075/513/193 +f 1081/512/660 1082/511/661 1074/511/661 +f 1082/511/194 1081/512/194 1084/514/194 +f 1081/512/194 1083/518/194 1084/514/194 +f 1084/514/194 1085/510/194 1082/511/194 +f 1085/510/194 1086/509/194 1090/513/194 +f 1086/509/194 1087/517/194 1089/515/194 +f 1087/517/194 1088/516/194 1089/515/194 +f 1089/515/194 1090/513/194 1086/509/194 +f 1085/510/662 1084/514/689 1071/514/663 +f 1082/511/661 1090/513/664 1075/513/664 +f 1090/513/664 1089/515/665 1076/539/665 +f 1086/509/666 1085/510/662 1080/510/662 +f 1089/515/665 1088/516/667 1077/516/667 +f 1088/516/668 1087/517/669 1078/517/669 +f 1073/512/660 1072/518/670 1083/518/670 +f 1072/518/671 1071/514/663 1084/514/689 +f 1087/517/669 1086/509/666 1079/509/666 +f 1100/520/193 1091/524/193 1094/521/193 +f 1091/524/193 1092/528/193 1093/522/193 +f 1094/521/193 1091/524/193 1093/522/193 +f 1094/521/193 1095/523/193 1099/519/193 +f 1095/523/193 1096/525/193 1098/527/193 +f 1096/525/193 1097/526/193 1098/527/193 +f 1098/527/193 1099/519/193 1095/523/193 +f 1101/522/672 1102/521/676 1094/521/673 +f 1102/521/194 1101/522/194 1104/524/194 +f 1101/522/194 1103/528/194 1104/524/194 +f 1104/524/194 1105/520/194 1102/521/194 +f 1105/520/194 1106/519/194 1110/523/194 +f 1106/519/194 1107/527/194 1109/525/194 +f 1107/527/194 1108/526/194 1109/525/194 +f 1109/525/194 1110/523/194 1106/519/194 +f 1105/520/674 1104/524/675 1091/524/675 +f 1102/521/676 1110/523/677 1095/523/677 +f 1110/523/677 1109/525/678 1096/525/678 +f 1106/519/679 1105/520/674 1100/520/674 +f 1109/525/678 1108/526/680 1097/526/680 +f 1108/526/690 1107/527/682 1098/527/682 +f 1093/522/672 1092/528/683 1103/528/683 +f 1092/528/684 1091/524/675 1104/524/675 +f 1107/527/682 1106/519/679 1099/519/679 +f 1120/530/193 1111/534/193 1113/532/193 +f 1111/534/193 1112/538/193 1113/532/193 +f 1113/532/193 1114/531/193 1120/530/193 +f 1114/531/193 1115/533/193 1119/529/193 +f 1115/533/193 1116/535/193 1118/537/193 +f 1116/535/193 1117/536/193 1118/537/193 +f 1118/537/193 1119/529/193 1115/533/193 +f 1121/532/686 1122/531/676 1114/531/676 +f 1122/531/194 1121/532/194 1125/530/194 +f 1121/532/194 1123/538/194 1124/534/194 +f 1125/530/194 1121/532/194 1124/534/194 +f 1125/530/194 1126/529/194 1130/533/194 +f 1126/529/194 1127/537/194 1129/535/194 +f 1127/537/194 1128/536/194 1129/535/194 +f 1129/535/194 1130/533/194 1126/529/194 +f 1125/530/674 1124/534/675 1111/534/675 +f 1122/531/676 1130/533/677 1115/533/677 +f 1130/533/677 1129/535/678 1116/535/678 +f 1126/529/687 1125/530/674 1120/530/674 +f 1129/535/678 1128/536/680 1117/536/680 +f 1128/536/688 1127/537/685 1118/537/685 +f 1113/532/686 1112/538/683 1123/538/683 +f 1112/538/684 1111/534/675 1124/534/675 +f 1127/537/685 1126/529/687 1119/529/687 +f 1132/540/190 1134/541/351 1131/542/190 +f 1133/543/351 1136/544/193 1134/541/351 +f 1135/545/193 1138/546/698 1136/544/193 +f 1137/547/698 1140/548/192 1138/546/698 +f 1139/549/192 1142/546/699 1140/548/192 +f 1141/547/699 1144/544/194 1142/546/699 +f 1143/545/191 1141/547/191 1149/545/191 +f 1151/550/191 1152/545/191 1135/545/191 +f 1143/545/194 1154/541/352 1144/544/194 +f 1146/543/352 1131/542/190 1154/541/352 +f 1157/544/195 1158/551/195 1142/546/195 +f 1134/541/195 1136/544/195 1161/552/195 +f 1151/550/699 1162/553/192 1161/552/699 +f 1151/550/699 1160/544/194 1152/545/194 +f 1152/545/194 1159/551/352 1153/554/352 +f 1153/554/352 1155/555/190 1147/556/190 +f 1147/556/190 1158/551/351 1148/554/351 +f 1149/545/193 1158/551/351 1157/544/193 +f 1145/550/698 1157/544/193 1156/552/698 +f 1150/557/192 1156/552/698 1162/553/192 +f 1132/540/190 1133/543/351 1134/541/351 +f 1133/543/351 1135/545/193 1136/544/193 +f 1135/545/193 1137/547/698 1138/546/698 +f 1137/547/698 1139/549/192 1140/548/192 +f 1139/549/192 1141/547/699 1142/546/699 +f 1141/547/699 1143/545/194 1144/544/194 +f 1149/545/191 1145/550/191 1143/545/191 +f 1145/550/191 1146/543/191 1143/545/191 +f 1141/547/191 1139/549/191 1148/554/191 +f 1139/549/191 1147/556/191 1148/554/191 +f 1141/547/191 1148/554/191 1149/545/191 +f 1153/554/191 1147/556/191 1139/549/191 +f 1132/540/191 1146/543/191 1145/550/191 +f 1132/540/191 1145/550/191 1150/557/191 +f 1153/554/191 1139/549/191 1137/547/191 +f 1152/545/191 1153/554/191 1135/545/191 +f 1153/554/191 1137/547/191 1135/545/191 +f 1133/543/191 1132/540/191 1150/557/191 +f 1133/543/191 1150/557/191 1151/550/191 +f 1133/543/191 1151/550/191 1135/545/191 +f 1143/545/194 1146/543/352 1154/541/352 +f 1146/543/352 1132/540/190 1131/542/190 +f 1158/551/195 1155/555/195 1140/548/195 +f 1144/544/195 1154/541/195 1156/552/195 +f 1144/544/195 1156/552/195 1157/544/195 +f 1158/551/195 1140/548/195 1142/546/195 +f 1144/544/195 1157/544/195 1142/546/195 +f 1156/552/195 1154/541/195 1131/542/195 +f 1138/546/195 1140/548/195 1159/551/195 +f 1140/548/195 1155/555/195 1159/551/195 +f 1162/553/195 1156/552/195 1131/542/195 +f 1161/552/195 1162/553/195 1134/541/195 +f 1162/553/195 1131/542/195 1134/541/195 +f 1136/544/195 1138/546/195 1159/551/195 +f 1136/544/195 1159/551/195 1160/544/195 +f 1136/544/195 1160/544/195 1161/552/195 +f 1151/550/699 1150/557/192 1162/553/192 +f 1151/550/699 1161/552/699 1160/544/194 +f 1152/545/194 1160/544/194 1159/551/352 +f 1153/554/352 1159/551/352 1155/555/190 +f 1147/556/190 1155/555/190 1158/551/351 +f 1149/545/193 1148/554/351 1158/551/351 +f 1145/550/698 1149/545/193 1157/544/193 +f 1150/557/192 1145/550/698 1156/552/698 +s 0 +f 1163/558/195 1164/558/195 1165/559/195 +f 1169/560/193 1170/561/193 1171/562/193 +f 1163/558/700 1173/563/700 1172/564/700 +f 1175/560/194 1164/558/194 1174/565/194 +f 1174/565/190 1178/560/190 1175/560/190 +f 1174/565/195 1163/558/195 1179/565/195 +f 1181/566/194 1182/567/194 1183/562/194 +f 1171/562/192 1182/567/192 1166/567/192 +f 1168/565/190 1184/560/190 1169/560/190 +f 1176/564/701 1165/559/701 1164/558/701 +f 1174/565/702 1179/565/702 1167/566/702 +f 1179/565/193 1172/564/193 1184/560/193 +f 1170/561/192 1183/562/192 1171/562/192 +f 1184/560/191 1176/564/191 1175/560/191 +f 1184/560/191 1175/560/191 1180/561/191 +f 1176/564/191 1172/564/191 1173/563/191 +f 1181/566/195 1166/567/195 1182/567/195 +f 1171/562/193 1166/567/193 1167/566/193 +f 1167/566/193 1168/565/193 1171/562/193 +f 1168/565/193 1169/560/193 1171/562/193 +f 1163/558/700 1165/559/700 1173/563/700 +f 1175/560/194 1176/564/194 1164/558/194 +f 1174/565/190 1177/565/190 1178/560/190 +f 1174/565/195 1164/558/195 1163/558/195 +f 1183/562/194 1180/561/194 1178/560/194 +f 1178/560/194 1177/565/194 1183/562/194 +f 1177/565/194 1181/566/194 1183/562/194 +f 1171/562/192 1183/562/192 1182/567/192 +f 1168/565/190 1179/565/190 1184/560/190 +f 1176/564/701 1173/563/701 1165/559/701 +f 1179/565/702 1168/565/702 1167/566/702 +f 1167/566/702 1181/566/702 1174/565/702 +f 1181/566/702 1177/565/702 1174/565/702 +f 1179/565/193 1163/558/193 1172/564/193 +f 1170/561/192 1180/561/192 1183/562/192 +f 1184/560/191 1172/564/191 1176/564/191 +f 1180/561/191 1170/561/191 1184/560/191 +f 1170/561/191 1169/560/191 1184/560/191 +f 1175/560/191 1178/560/191 1180/561/191 +f 1181/566/195 1167/566/195 1166/567/195 +s 1 +f 1186/568/190 1188/569/351 1185/570/190 +f 1187/571/351 1190/572/193 1188/569/351 +f 1189/573/193 1192/574/698 1190/572/193 +f 1191/575/698 1194/576/192 1192/574/698 +f 1193/577/192 1196/574/699 1194/576/192 +f 1195/575/699 1198/572/194 1196/574/699 +f 1197/573/191 1193/577/191 1189/573/191 +f 1197/573/194 1200/569/352 1198/572/194 +f 1200/569/352 1186/568/190 1185/570/190 +f 1196/574/195 1198/572/195 1200/569/195 +f 1186/568/190 1187/571/351 1188/569/351 +f 1187/571/351 1189/573/193 1190/572/193 +f 1189/573/193 1191/575/698 1192/574/698 +f 1191/575/698 1193/577/192 1194/576/192 +f 1193/577/192 1195/575/699 1196/574/699 +f 1195/575/699 1197/573/194 1198/572/194 +f 1189/573/191 1187/571/191 1186/568/191 +f 1186/568/191 1199/571/191 1189/573/191 +f 1199/571/191 1197/573/191 1189/573/191 +f 1197/573/191 1195/575/191 1193/577/191 +f 1193/577/191 1191/575/191 1189/573/191 +f 1197/573/194 1199/571/352 1200/569/352 +f 1200/569/352 1199/571/352 1186/568/190 +f 1200/569/195 1185/570/195 1188/569/195 +f 1188/569/195 1190/572/195 1200/569/195 +f 1190/572/195 1192/574/195 1200/569/195 +f 1192/574/195 1194/576/195 1200/569/195 +f 1194/576/195 1196/574/195 1200/569/195 +f 1202/578/190 1204/579/351 1201/580/190 +f 1203/581/351 1206/582/193 1204/579/351 +f 1205/583/193 1208/584/698 1206/582/193 +f 1207/585/698 1210/586/192 1208/584/698 +f 1209/587/192 1212/584/699 1210/586/192 +f 1211/585/699 1214/582/194 1212/584/699 +f 1213/583/191 1209/587/191 1205/583/191 +f 1213/583/194 1216/579/352 1214/582/194 +f 1215/581/352 1201/580/190 1216/579/352 +f 1214/582/195 1216/579/195 1208/584/195 +f 1202/578/190 1203/581/351 1204/579/351 +f 1203/581/351 1205/583/193 1206/582/193 +f 1205/583/193 1207/585/698 1208/584/698 +f 1207/585/698 1209/587/192 1210/586/192 +f 1209/587/192 1211/585/699 1212/584/699 +f 1211/585/699 1213/583/194 1214/582/194 +f 1205/583/191 1203/581/191 1202/578/191 +f 1202/578/191 1215/581/191 1213/583/191 +f 1213/583/191 1211/585/191 1209/587/191 +f 1209/587/191 1207/585/191 1205/583/191 +f 1205/583/191 1202/578/191 1213/583/191 +f 1213/583/194 1215/581/352 1216/579/352 +f 1215/581/352 1202/578/190 1201/580/190 +f 1216/579/195 1201/580/195 1208/584/195 +f 1201/580/195 1204/579/195 1208/584/195 +f 1204/579/195 1206/582/195 1208/584/195 +f 1208/584/195 1210/586/195 1212/584/195 +f 1212/584/195 1214/582/195 1208/584/195 +f 1218/588/190 1220/589/351 1217/590/190 +f 1219/591/351 1222/592/193 1220/589/351 +f 1221/593/193 1224/594/698 1222/592/193 +f 1223/595/698 1226/596/192 1224/594/698 +f 1225/597/192 1228/594/699 1226/596/192 +f 1227/595/699 1230/592/194 1228/594/699 +f 1229/593/191 1225/597/191 1221/593/191 +f 1229/593/194 1232/589/352 1230/592/194 +f 1231/591/352 1217/590/190 1232/589/352 +f 1228/594/195 1230/592/195 1232/589/195 +f 1218/588/190 1219/591/351 1220/589/351 +f 1219/591/351 1221/593/193 1222/592/193 +f 1221/593/193 1223/595/698 1224/594/698 +f 1223/595/698 1225/597/192 1226/596/192 +f 1225/597/192 1227/595/699 1228/594/699 +f 1227/595/699 1229/593/194 1230/592/194 +f 1221/593/191 1219/591/191 1218/588/191 +f 1218/588/191 1231/591/191 1229/593/191 +f 1229/593/191 1227/595/191 1225/597/191 +f 1225/597/191 1223/595/191 1221/593/191 +f 1221/593/191 1218/588/191 1229/593/191 +f 1229/593/194 1231/591/352 1232/589/352 +f 1231/591/352 1218/588/190 1217/590/190 +f 1232/589/195 1217/590/195 1220/589/195 +f 1220/589/195 1222/592/195 1232/589/195 +f 1222/592/195 1224/594/195 1232/589/195 +f 1224/594/195 1226/596/195 1232/589/195 +f 1226/596/195 1228/594/195 1232/589/195 +f 1234/598/703 1236/599/704 1233/600/705 +f 1235/601/706 1238/602/707 1236/599/704 +f 1237/603/708 1240/604/709 1238/602/707 +f 1239/605/710 1242/606/711 1240/604/709 +f 1241/607/712 1244/604/713 1242/606/711 +f 1243/605/714 1246/602/715 1244/604/713 +f 1245/608/716 1241/607/712 1237/603/708 +f 1245/608/716 1248/599/717 1246/602/715 +f 1248/599/717 1234/598/703 1233/600/705 +f 1244/604/713 1246/602/715 1248/599/717 +f 1234/598/703 1235/601/706 1236/599/704 +f 1235/601/706 1237/603/708 1238/602/707 +f 1237/603/708 1239/605/710 1240/604/709 +f 1239/605/710 1241/607/712 1242/606/711 +f 1241/607/712 1243/605/714 1244/604/713 +f 1243/605/714 1245/608/716 1246/602/715 +f 1237/603/708 1235/601/706 1234/598/703 +f 1234/598/703 1247/601/718 1237/603/708 +f 1247/601/718 1245/608/716 1237/603/708 +f 1245/608/716 1243/605/714 1241/607/712 +f 1241/607/712 1239/605/710 1237/603/708 +f 1245/608/716 1247/601/718 1248/599/717 +f 1248/599/717 1247/601/718 1234/598/703 +f 1248/599/717 1233/600/705 1236/599/704 +f 1236/599/704 1238/602/707 1248/599/717 +f 1238/602/707 1240/604/709 1248/599/717 +f 1240/604/709 1242/606/711 1248/599/717 +f 1242/606/711 1244/604/713 1248/599/717 +f 1250/609/190 1252/610/351 1249/611/190 +f 1251/612/351 1254/613/193 1252/610/351 +f 1253/614/193 1256/615/698 1254/613/193 +f 1255/616/698 1258/617/192 1256/615/698 +f 1258/617/192 1259/616/699 1260/615/699 +f 1259/616/699 1262/613/194 1260/615/699 +f 1261/614/191 1257/618/191 1253/614/191 +f 1261/614/194 1264/610/352 1262/613/194 +f 1263/612/352 1249/611/190 1264/610/352 +f 1260/615/195 1262/613/195 1264/610/195 +f 1250/609/190 1251/612/351 1252/610/351 +f 1251/612/351 1253/614/193 1254/613/193 +f 1253/614/193 1255/616/698 1256/615/698 +f 1255/616/698 1257/618/192 1258/617/192 +f 1258/617/192 1257/618/192 1259/616/699 +f 1259/616/699 1261/614/194 1262/613/194 +f 1253/614/191 1251/612/191 1250/609/191 +f 1250/609/191 1263/612/191 1261/614/191 +f 1261/614/191 1259/616/191 1257/618/191 +f 1257/618/191 1255/616/191 1253/614/191 +f 1253/614/191 1250/609/191 1261/614/191 +f 1261/614/194 1263/612/352 1264/610/352 +f 1263/612/352 1250/609/190 1249/611/190 +f 1264/610/195 1249/611/195 1252/610/195 +f 1252/610/195 1254/613/195 1264/610/195 +f 1254/613/195 1256/615/195 1264/610/195 +f 1256/615/195 1258/617/195 1264/610/195 +f 1258/617/195 1260/615/195 1264/610/195 +s 0 +f 1266/619/195 1268/620/195 1265/619/195 +f 1267/620/190 1270/621/190 1268/620/190 +f 1269/621/191 1272/622/191 1270/621/191 +f 1271/622/192 1265/619/192 1272/622/192 +f 1270/621/193 1265/619/193 1268/620/193 +f 1267/620/194 1271/622/194 1269/621/194 +f 1266/619/195 1267/620/195 1268/620/195 +f 1267/620/190 1269/621/190 1270/621/190 +f 1269/621/191 1271/622/191 1272/622/191 +f 1271/622/192 1266/619/192 1265/619/192 +f 1270/621/193 1272/622/193 1265/619/193 +f 1267/620/194 1266/619/194 1271/622/194 +o Guard +v -0.075429 0.170624 0.849928 +v 0.076654 0.170624 0.849928 +v 0.076654 0.210654 0.849928 +v -0.075429 0.210654 0.849928 +v -0.075429 0.170624 0.731509 +v 0.076654 0.170624 0.731509 +v -0.062753 0.100624 0.288424 +v 0.063977 0.100624 0.288424 +v 0.063977 0.100624 0.334112 +v -0.062753 0.100624 0.334112 +v -0.062753 0.140624 0.523278 +v 0.063977 0.140624 0.523278 +v 0.063977 0.161879 0.627054 +v -0.062753 0.161879 0.627054 +v -0.075429 0.170654 0.428800 +v 0.076654 0.170654 0.428800 +v 0.076654 0.130654 0.328424 +v -0.075429 0.130654 0.328424 +v -0.075429 0.210654 0.569176 +v 0.076654 0.210654 0.569176 +v 0.076654 0.109795 0.300640 +v 0.073412 0.102969 0.291549 +v -0.072187 0.102970 0.291549 +v -0.075429 0.109795 0.300640 +v 0.063977 0.104504 0.375389 +v -0.062753 0.104504 0.375389 +v -0.062753 0.101616 0.357071 +v 0.063977 0.101616 0.357071 +v 0.076654 0.168387 0.674625 +v 0.076654 0.168877 0.596451 +v 0.076654 0.146675 0.488050 +v 0.076654 0.111023 0.342077 +v 0.076654 0.110109 0.336278 +v 0.076654 0.109795 0.329011 +v 0.063977 0.168387 0.674625 +v -0.062753 0.168387 0.674625 +v -0.075429 0.168387 0.674625 +v 0.073412 0.106172 0.366869 +v 0.073412 0.103789 0.351753 +v -0.075429 0.111023 0.342077 +v -0.075429 0.110109 0.336278 +v -0.072187 0.103789 0.351753 +v -0.072187 0.106172 0.366869 +v 0.073412 0.102969 0.332807 +v -0.075429 0.109795 0.329011 +v -0.072187 0.102970 0.332807 +v 0.073412 0.142171 0.514267 +v -0.075429 0.146675 0.488050 +v -0.072187 0.142171 0.514267 +v 0.073412 0.163669 0.619227 +v -0.075429 0.168877 0.596451 +v -0.072187 0.163669 0.619227 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.9998 0.0197 +vn -0.0000 -1.0000 -0.0000 +vn 0.1081 -0.9941 -0.0000 +vn -0.1228 -0.9922 0.0223 +vn -0.1082 -0.9941 -0.0000 +vn 0.1730 -0.9619 0.2118 +vn -0.1261 -0.9820 0.1403 +vn -0.1730 -0.9619 0.2118 +vn -0.0000 0.9466 -0.3225 +vn -0.0000 0.8720 -0.4896 +vn -0.0000 0.9904 -0.1384 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 0.7997 -0.6004 +vn -0.1737 -0.9639 0.2019 +vn 0.1419 -0.9841 0.1067 +vn 0.1737 -0.9639 0.2019 +vn 1.0000 -0.0000 -0.0000 +vn 0.9871 -0.1577 0.0276 +vn 0.9890 -0.1438 0.0343 +vn -0.1420 -0.9841 0.1067 +vn 0.1228 -0.9922 0.0223 +vn -0.0000 -0.9962 0.0875 +vn 0.1260 -0.9821 0.1403 +vn 0.9839 -0.1760 0.0295 +vn 0.6628 -0.7453 0.0722 +vn 0.9764 -0.2157 0.0130 +vn 0.7080 -0.6933 0.1341 +vn -0.9839 -0.1760 0.0295 +vn -0.6628 -0.7453 0.0722 +vn -0.7080 -0.6933 0.1341 +vn 0.6334 -0.7737 0.0172 +vn 0.9752 -0.2211 0.0034 +vn -0.9764 -0.2157 0.0130 +vn -0.6334 -0.7736 0.0172 +vn 0.7238 -0.6729 0.1529 +vn 0.4534 -0.8913 -0.0000 +vn 0.9385 -0.3452 -0.0000 +vn -0.9385 -0.3453 -0.0000 +vn -0.9752 -0.2212 0.0034 +vn -0.4535 -0.8913 -0.0000 +vn -0.9890 -0.1438 0.0343 +vn -0.7238 -0.6728 0.1529 +vn 0.7179 -0.6938 0.0562 +vn 0.6269 -0.7745 0.0844 +vn -0.7179 -0.6938 0.0562 +vn -0.9871 -0.1577 0.0276 +vn -0.6269 -0.7745 0.0844 +vn -1.0000 -0.0000 -0.0000 +vn 0.0001 0.7996 -0.6005 +vt 0.437463 0.717486 +vt 0.437463 0.729525 +vt 0.473076 0.717486 +vt 0.606328 0.696434 +vt 0.592588 0.696434 +vt 0.535699 0.708464 +vt 0.504490 0.714856 +vt 0.564112 0.717495 +vt 0.594299 0.705466 +vt 0.521896 0.729525 +vt 0.605389 0.697140 +vt 0.602655 0.699193 +vt 0.580175 0.697602 +vt 0.585684 0.696733 +vt 0.513693 0.716961 +vt 0.546293 0.710284 +vt 0.490183 0.716814 +vt 0.590193 0.699562 +vt 0.587283 0.697386 +vt 0.591937 0.699287 +vt 0.582737 0.698103 +vt 0.592981 0.697140 +vt 0.594123 0.699193 +vt 0.538409 0.708929 +vt 0.506844 0.715395 +s 1 +f 1274/623/719 1276/624/719 1273/623/719 +f 1278/625/720 1273/623/721 1277/625/720 +f 1280/626/722 1282/627/723 1279/626/724 +f 1284/628/725 1286/629/726 1283/628/727 +f 1288/630/728 1290/631/729 1287/630/728 +f 1292/632/730 1287/630/728 1291/632/730 +f 1275/624/731 1291/632/730 1276/624/731 +f 1279/626/732 1295/633/732 1296/634/732 +f 1298/635/733 1300/636/734 1297/635/735 +f 1292/632/736 1302/637/737 1303/638/738 +f 1299/636/739 1281/627/740 1300/636/734 +f 1308/639/741 1285/629/742 1307/639/741 +f 1277/625/720 1308/639/741 1307/639/741 +f 1297/635/735 1283/628/727 1298/635/733 +f 1304/640/743 1311/641/744 1305/642/745 +f 1310/643/746 1300/636/734 1311/641/744 +f 1312/640/747 1314/641/748 1315/643/749 +f 1315/643/749 1299/636/739 1298/635/733 +f 1305/642/745 1316/644/750 1306/645/751 +f 1311/641/744 1281/627/740 1316/644/750 +f 1313/642/752 1318/644/753 1314/641/748 +f 1314/641/748 1282/627/723 1299/636/739 +f 1297/635/735 1319/646/754 1284/628/725 +f 1310/643/746 1303/638/738 1319/646/754 +f 1281/627/740 1294/633/755 1316/644/750 +f 1316/644/750 1293/634/756 1306/645/751 +f 1296/634/757 1318/644/753 1317/645/758 +f 1295/633/759 1282/627/723 1318/644/753 +f 1320/638/760 1315/643/749 1321/646/761 +f 1321/646/761 1298/635/733 1283/628/727 +f 1302/637/737 1301/639/762 1322/647/763 +f 1301/639/762 1285/629/742 1322/647/763 +f 1309/639/764 1323/637/765 1324/647/766 +f 1309/639/764 1286/629/726 1308/639/741 +f 1323/637/765 1321/646/761 1324/647/766 +f 1324/647/766 1283/628/727 1286/629/726 +f 1302/637/737 1319/646/754 1303/638/738 +f 1322/647/763 1284/628/725 1319/646/754 +f 1291/632/767 1320/638/760 1323/637/765 +f 1274/623/719 1275/624/719 1276/624/719 +f 1278/625/720 1274/623/721 1273/623/721 +f 1280/626/722 1281/627/740 1282/627/723 +f 1284/628/725 1285/629/742 1286/629/726 +f 1288/630/728 1289/631/729 1290/631/729 +f 1292/632/730 1288/630/728 1287/630/728 +f 1275/624/731 1292/632/730 1291/632/730 +f 1296/634/732 1290/631/729 1279/626/732 +f 1290/631/729 1289/631/729 1279/626/732 +f 1289/631/729 1293/634/732 1280/626/732 +f 1293/634/732 1294/633/768 1280/626/732 +f 1280/626/732 1279/626/732 1289/631/729 +f 1298/635/733 1299/636/739 1300/636/734 +f 1293/634/756 1289/631/736 1306/645/751 +f 1289/631/736 1288/630/736 1304/640/743 +f 1306/645/751 1289/631/736 1305/642/745 +f 1288/630/736 1292/632/736 1303/638/738 +f 1292/632/736 1275/624/736 1278/625/736 +f 1302/637/737 1292/632/736 1301/639/762 +f 1275/624/736 1274/623/736 1278/625/736 +f 1278/625/736 1301/639/762 1292/632/736 +f 1303/638/738 1304/640/743 1288/630/736 +f 1304/640/743 1305/642/745 1289/631/736 +f 1299/636/739 1282/627/723 1281/627/740 +f 1308/639/741 1286/629/726 1285/629/742 +f 1301/639/762 1278/625/720 1307/639/741 +f 1278/625/720 1277/625/720 1307/639/741 +f 1277/625/720 1309/639/764 1308/639/741 +f 1297/635/735 1284/628/725 1283/628/727 +f 1304/640/743 1310/643/746 1311/641/744 +f 1310/643/746 1297/635/735 1300/636/734 +f 1312/640/747 1313/642/752 1314/641/748 +f 1315/643/749 1314/641/748 1299/636/739 +f 1305/642/745 1311/641/744 1316/644/750 +f 1311/641/744 1300/636/734 1281/627/740 +f 1313/642/752 1317/645/758 1318/644/753 +f 1314/641/748 1318/644/753 1282/627/723 +f 1297/635/735 1310/643/746 1319/646/754 +f 1310/643/746 1304/640/743 1303/638/738 +f 1281/627/740 1280/626/722 1294/633/755 +f 1316/644/750 1294/633/755 1293/634/756 +f 1296/634/757 1295/633/759 1318/644/753 +f 1295/633/759 1279/626/724 1282/627/723 +f 1320/638/760 1312/640/747 1315/643/749 +f 1321/646/761 1315/643/749 1298/635/733 +f 1301/639/762 1307/639/741 1285/629/742 +f 1309/639/764 1324/647/766 1286/629/726 +f 1323/637/765 1320/638/760 1321/646/761 +f 1324/647/766 1321/646/761 1283/628/727 +f 1302/637/737 1322/647/763 1319/646/754 +f 1322/647/763 1285/629/742 1284/628/725 +f 1273/623/767 1276/624/767 1277/625/767 +f 1276/624/767 1291/632/767 1277/625/767 +f 1291/632/767 1287/630/767 1320/638/760 +f 1287/630/767 1290/631/767 1312/640/747 +f 1312/640/747 1290/631/767 1313/642/752 +f 1290/631/767 1296/634/757 1317/645/758 +f 1317/645/758 1313/642/752 1290/631/767 +f 1312/640/747 1320/638/760 1287/630/767 +f 1323/637/765 1309/639/764 1291/632/767 +f 1309/639/764 1277/625/767 1291/632/767 +o Trigger +v 0.012697 0.181206 1.380449 +v 0.012697 0.180872 1.291923 +v 0.011096 0.180730 1.254413 +v 0.006436 0.180681 1.241522 +v -0.005212 0.180681 1.241522 +v -0.009871 0.180730 1.254413 +v -0.011473 0.180872 1.291923 +v -0.011473 0.181206 1.380449 +v 0.012697 0.075307 1.433398 +v 0.012697 0.040182 1.418719 +v 0.012697 0.040182 1.418719 +v 0.012697 0.076073 1.429194 +v 0.012697 0.117095 1.423724 +v 0.012697 0.144311 1.410405 +v 0.012697 0.173001 1.356401 +v 0.012697 0.151323 1.415574 +v 0.012697 0.120917 1.430253 +v 0.006436 0.140314 1.403516 +v 0.006436 0.115674 1.415574 +v -0.005212 0.115674 1.415574 +v -0.005212 0.140314 1.403516 +v 0.006436 0.076355 1.420816 +v -0.005212 0.076355 1.420816 +v 0.006436 0.045424 1.412952 +v -0.005212 0.045424 1.412952 +v 0.006436 0.023366 1.398798 +v -0.005212 0.023366 1.398798 +v 0.011096 0.027667 1.403893 +v -0.011473 0.040182 1.418719 +v -0.011473 0.040182 1.418719 +v -0.009871 0.027667 1.403893 +v -0.011473 0.075307 1.433398 +v -0.011473 0.120917 1.430253 +v -0.011473 0.151323 1.415574 +v -0.011473 0.173001 1.356401 +v -0.011473 0.144311 1.410405 +v -0.011473 0.117095 1.423724 +v -0.011473 0.076073 1.429194 +v 0.006436 0.167051 1.353188 +v -0.005212 0.167051 1.353188 +v 0.011096 0.168573 1.354010 +v 0.011096 0.141336 1.405278 +v 0.011096 0.116037 1.417658 +v 0.011096 0.076283 1.422959 +v 0.011096 0.044916 1.414984 +v -0.009871 0.168573 1.354010 +v -0.009871 0.141336 1.405278 +v -0.009871 0.116037 1.417658 +v -0.009871 0.076283 1.422959 +v -0.009871 0.044916 1.414984 +vn -0.0000 1.0000 -0.0038 +vn -0.0000 0.9392 0.3434 +vn 0.9934 -0.0321 -0.1101 +vn 0.9942 -0.0721 -0.0801 +vn 1.0000 -0.0000 -0.0000 +vn 0.2145 -0.2854 -0.9341 +vn -0.2064 -0.6878 -0.6960 +vn 0.2063 -0.6878 -0.6960 +vn 0.2195 0.0574 -0.9739 +vn -0.2146 -0.2854 -0.9341 +vn 0.2112 0.3928 -0.8951 +vn -0.2195 0.0574 -0.9739 +vn 0.1183 0.5363 -0.8357 +vn -0.2112 0.3928 -0.8951 +vn -0.0000 -0.0238 0.9997 +vn -0.0000 0.9977 0.0679 +vn -0.0000 -0.7641 0.6450 +vn -1.0000 -0.0000 -0.0000 +vn -0.9934 -0.0321 -0.1102 +vn -0.0000 -0.1628 0.9867 +vn -0.0000 0.5543 0.8323 +vn -0.0000 0.2564 0.9666 +vn -0.0000 0.6114 0.7913 +vn -0.1772 -0.9400 -0.2917 +vn 0.1772 -0.9400 -0.2917 +vn 0.9504 -0.3088 -0.0377 +vn 0.7458 -0.6358 -0.1989 +vn 0.3609 -0.9257 -0.1130 +vn 0.0625 -0.9907 -0.1209 +vn 0.9905 -0.1306 -0.0437 +vn 0.7949 -0.4244 -0.4336 +vn 0.7858 -0.1790 -0.5920 +vn 0.7940 0.0354 -0.6069 +vn 0.9939 0.0064 -0.1100 +vn 0.7710 0.2461 -0.5873 +vn 0.7889 0.5810 -0.2001 +vn 0.4706 0.4766 -0.7426 +vn -0.3610 -0.9257 -0.1130 +vn -0.0625 -0.9907 -0.1209 +vn -0.7457 -0.6359 -0.1989 +vn -0.9503 -0.3089 -0.0377 +vn -0.7949 -0.4245 -0.4336 +vn -0.9905 -0.1307 -0.0437 +vn -0.7858 -0.1790 -0.5920 +vn -0.9942 -0.0721 -0.0801 +vn -0.7939 0.0354 -0.6070 +vn -0.7710 0.2462 -0.5873 +vn -0.9939 0.0064 -0.1101 +vn -0.4706 0.4766 -0.7425 +vn -0.7889 0.5810 -0.2002 +vn -0.0000 1.0000 -0.0000 +vn -0.1183 0.5363 -0.8357 +vn -0.0000 -0.7641 0.6451 +vn -0.0000 0.4114 0.9114 +vn -0.0000 -0.7642 0.6450 +vt 0.559609 0.765930 +vt 0.494705 0.766175 +vt 0.462977 0.719170 +vt 0.472742 0.739125 +vt 0.458190 0.721973 +vt 0.468953 0.718129 +vt 0.477793 0.736194 +vt 0.465109 0.689302 +vt 0.470874 0.666624 +vt 0.481252 0.650452 +vt 0.466646 0.662781 +vt 0.455884 0.688533 +vt 0.468953 0.744266 +vt 0.514692 0.755797 +vt 0.514090 0.756913 +vt 0.587110 0.765826 +vt 0.596562 0.765790 +vt 0.512336 0.760159 +vt 0.476501 0.736944 +vt 0.467424 0.718395 +vt 0.463538 0.689249 +vt 0.458967 0.689095 +vt 0.469385 0.666251 +vt 0.477517 0.653605 +s 1 +f 1331/648/769 1332/649/770 1326/648/769 +f 1337/650/771 1338/651/772 1341/652/773 +f 1343/653/774 1345/654/775 1342/654/776 +f 1346/655/777 1344/653/778 1343/653/774 +f 1348/656/779 1347/655/780 1346/655/777 +f 1350/657/781 1349/656/782 1348/656/779 +f 1353/658/783 1354/658/784 1351/657/785 +f 1356/659/786 1357/652/786 1361/650/787 +f 1333/659/788 1353/658/783 1334/658/789 +f 1341/652/790 1356/659/788 1333/659/788 +f 1340/660/791 1357/652/790 1341/652/790 +f 1325/649/770 1358/660/791 1340/660/791 +f 1342/654/776 1364/661/792 1363/661/793 +f 1326/648/794 1365/662/795 1327/663/796 +f 1327/663/796 1363/661/793 1328/664/797 +f 1339/665/798 1366/666/799 1365/662/795 +f 1365/662/795 1342/654/776 1363/661/793 +f 1338/651/772 1367/667/800 1366/666/799 +f 1366/666/799 1343/653/774 1342/654/776 +f 1337/650/771 1368/668/801 1367/667/800 +f 1367/667/800 1346/655/777 1343/653/774 +f 1336/669/802 1369/670/803 1368/668/801 +f 1369/670/803 1346/655/777 1368/668/801 +f 1335/658/804 1352/671/805 1369/670/803 +f 1352/671/805 1348/656/779 1369/670/803 +f 1364/661/792 1330/663/806 1329/664/807 +f 1370/662/808 1331/648/809 1330/663/806 +f 1345/654/775 1370/662/808 1364/661/792 +f 1371/666/810 1359/665/811 1370/662/808 +f 1344/653/778 1371/666/810 1345/654/775 +f 1372/667/812 1360/651/813 1371/666/810 +f 1347/655/780 1372/667/812 1344/653/778 +f 1373/668/814 1361/650/787 1372/667/812 +f 1347/655/780 1374/670/815 1373/668/814 +f 1374/670/815 1362/669/816 1373/668/814 +f 1349/656/782 1355/671/817 1374/670/815 +f 1374/670/815 1355/671/817 1354/658/818 +f 1363/661/793 1329/664/807 1328/664/797 +f 1332/649/770 1325/649/770 1326/648/769 +f 1326/648/769 1327/663/769 1330/663/769 +f 1327/663/769 1328/664/769 1330/663/769 +f 1328/664/769 1329/664/769 1330/663/769 +f 1330/663/769 1331/648/769 1326/648/769 +f 1333/659/773 1334/658/819 1335/658/804 +f 1333/659/773 1335/658/804 1336/669/802 +f 1325/649/773 1340/660/773 1338/651/772 +f 1340/660/773 1341/652/773 1338/651/772 +f 1339/665/798 1326/648/794 1325/649/773 +f 1338/651/772 1339/665/798 1325/649/773 +f 1341/652/773 1333/659/773 1337/650/771 +f 1333/659/773 1336/669/802 1337/650/771 +f 1343/653/774 1344/653/778 1345/654/775 +f 1346/655/777 1347/655/780 1344/653/778 +f 1348/656/779 1349/656/782 1347/655/780 +f 1350/657/781 1351/657/820 1349/656/782 +f 1351/657/785 1350/657/821 1352/671/785 +f 1335/658/822 1334/658/789 1353/658/783 +f 1351/657/785 1352/671/785 1353/658/783 +f 1352/671/785 1335/658/822 1353/658/783 +f 1354/658/784 1355/671/823 1351/657/785 +f 1357/652/786 1358/660/786 1360/651/813 +f 1358/660/786 1332/649/786 1360/651/813 +f 1332/649/786 1331/648/809 1359/665/811 +f 1332/649/786 1359/665/811 1360/651/813 +f 1354/658/818 1353/658/819 1356/659/786 +f 1362/669/816 1354/658/818 1356/659/786 +f 1361/650/787 1362/669/816 1356/659/786 +f 1357/652/786 1360/651/813 1361/650/787 +f 1333/659/788 1356/659/788 1353/658/783 +f 1341/652/790 1357/652/790 1356/659/788 +f 1340/660/791 1358/660/791 1357/652/790 +f 1325/649/770 1332/649/770 1358/660/791 +f 1342/654/776 1345/654/775 1364/661/792 +f 1326/648/794 1339/665/798 1365/662/795 +f 1327/663/796 1365/662/795 1363/661/793 +f 1339/665/798 1338/651/772 1366/666/799 +f 1365/662/795 1366/666/799 1342/654/776 +f 1338/651/772 1337/650/771 1367/667/800 +f 1366/666/799 1367/667/800 1343/653/774 +f 1337/650/771 1336/669/802 1368/668/801 +f 1367/667/800 1368/668/801 1346/655/777 +f 1336/669/802 1335/658/804 1369/670/803 +f 1369/670/803 1348/656/779 1346/655/777 +f 1352/671/805 1350/657/781 1348/656/779 +f 1364/661/792 1370/662/808 1330/663/806 +f 1370/662/808 1359/665/811 1331/648/809 +f 1345/654/775 1371/666/810 1370/662/808 +f 1371/666/810 1360/651/813 1359/665/811 +f 1344/653/778 1372/667/812 1371/666/810 +f 1372/667/812 1361/650/787 1360/651/813 +f 1347/655/780 1373/668/814 1372/667/812 +f 1373/668/814 1362/669/816 1361/650/787 +f 1347/655/780 1349/656/782 1374/670/815 +f 1374/670/815 1354/658/818 1362/669/816 +f 1349/656/782 1351/657/820 1355/671/817 +f 1363/661/793 1364/661/792 1329/664/807 +o Shell +v 0.099482 0.451316 0.176171 +v 0.070235 0.521924 0.176171 +v -0.000373 0.551171 0.176171 +v -0.070981 0.521924 0.176171 +v -0.100228 0.451316 0.176171 +v -0.070981 0.380707 0.176171 +v -0.000373 0.351461 0.176171 +v 0.070235 0.380707 0.176171 +v 0.112264 0.451316 0.176171 +v 0.079273 0.530962 0.176171 +v -0.000373 0.563952 0.176171 +v -0.080019 0.530962 0.176171 +v -0.113009 0.451316 0.176171 +v -0.080019 0.371670 0.176171 +v -0.000373 0.338679 0.176171 +v 0.079273 0.371670 0.176171 +v 0.112264 0.451316 0.210923 +v 0.079273 0.530962 0.210923 +v -0.000373 0.563952 0.210923 +v -0.080019 0.530962 0.210923 +v -0.113009 0.451316 0.210923 +v -0.080019 0.371670 0.210923 +v -0.000373 0.338679 0.210923 +v 0.079273 0.371670 0.210923 +v 0.099482 0.451316 0.066321 +v 0.070235 0.521924 0.066321 +v -0.000373 0.551171 0.066321 +v -0.070981 0.521924 0.066321 +v -0.100228 0.451316 0.066321 +v -0.070981 0.380707 0.066321 +v -0.000373 0.351461 0.066321 +v 0.070235 0.380707 0.066321 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.3827 -0.9239 -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.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vt 0.207020 0.712433 +vt 0.247848 0.790812 +vt 0.207020 0.790812 +vt 0.166191 0.790812 +vt 0.166191 0.712433 +vt 0.125363 0.712433 +vt 0.084534 0.712433 +vt 0.288676 0.712433 +vt 0.329504 0.712433 +vt 0.002878 0.712433 +vt 0.043706 0.712433 +vt 0.247848 0.712433 +vt 0.334095 0.764304 +vt 0.358730 0.803066 +vt 0.477679 0.725541 +vt 0.477679 0.803066 +vt 0.502314 0.764304 +vt 0.358730 0.725541 +vt 0.288676 0.790812 +vt 0.002878 0.790812 +vt 0.043706 0.790812 +vt 0.084534 0.790812 +vt 0.125363 0.790812 +vt 0.418204 0.819122 +vt 0.418204 0.709486 +vt 0.329504 0.790812 +s 0 +f 1378/672/824 1401/673/824 1402/674/824 +f 1378/672/825 1403/675/825 1379/676/825 +f 1380/677/826 1389/678/826 1388/677/826 +f 1376/679/826 1383/680/826 1375/680/826 +f 1375/681/826 1390/682/826 1382/682/826 +f 1377/683/826 1386/672/826 1385/683/826 +f 1397/684/827 1398/685/827 1394/686/827 +f 1386/672/824 1393/683/824 1385/683/824 +f 1389/678/828 1396/677/828 1388/677/828 +f 1387/676/825 1394/672/825 1386/672/825 +f 1390/682/829 1397/678/829 1389/678/829 +f 1385/683/830 1392/679/830 1384/679/830 +f 1387/676/831 1396/677/831 1395/676/831 +f 1383/681/832 1398/682/832 1390/682/832 +f 1384/679/833 1391/680/833 1383/680/833 +f 1379/676/826 1386/672/826 1378/672/826 +f 1377/683/826 1384/679/826 1376/679/826 +f 1382/682/826 1389/678/826 1381/678/826 +f 1392/687/827 1393/688/827 1394/686/827 +f 1380/677/826 1387/676/826 1379/676/826 +f 1396/689/827 1397/684/827 1394/686/827 +f 1376/679/830 1401/673/830 1377/683/830 +f 1375/680/833 1400/690/833 1376/679/833 +f 1382/682/832 1399/691/832 1375/681/832 +f 1381/678/829 1406/692/829 1382/682/829 +f 1380/677/828 1405/693/828 1381/678/828 +f 1380/677/831 1403/675/831 1404/694/831 +f 1380/677/826 1381/678/826 1389/678/826 +f 1376/679/826 1384/679/826 1383/680/826 +f 1375/681/826 1383/681/826 1390/682/826 +f 1377/683/826 1378/672/826 1386/672/826 +f 1398/685/827 1391/695/827 1392/687/827 +f 1386/672/824 1394/672/824 1393/683/824 +f 1389/678/828 1397/678/828 1396/677/828 +f 1387/676/825 1395/676/825 1394/672/825 +f 1390/682/829 1398/682/829 1397/678/829 +f 1385/683/830 1393/683/830 1392/679/830 +f 1387/676/831 1388/677/831 1396/677/831 +f 1383/681/832 1391/681/832 1398/682/832 +f 1384/679/833 1392/679/833 1391/680/833 +f 1379/676/826 1387/676/826 1386/672/826 +f 1377/683/826 1385/683/826 1384/679/826 +f 1382/682/826 1390/682/826 1389/678/826 +f 1380/677/826 1388/677/826 1387/676/826 +f 1394/686/827 1395/696/827 1396/689/827 +f 1398/685/827 1392/687/827 1394/686/827 +f 1378/672/824 1377/683/824 1401/673/824 +f 1378/672/825 1402/674/825 1403/675/825 +f 1376/679/830 1400/690/830 1401/673/830 +f 1375/680/833 1399/697/833 1400/690/833 +f 1382/682/832 1406/692/832 1399/691/832 +f 1381/678/829 1405/693/829 1406/692/829 +f 1380/677/828 1404/694/828 1405/693/828 +f 1380/677/831 1379/676/831 1403/675/831 +o ShellFore +v 0.034390 0.451316 -0.097256 +v 0.024208 0.475897 -0.097256 +v -0.000373 0.486078 -0.097256 +v -0.024954 0.475897 -0.097256 +v -0.035135 0.451316 -0.097256 +v -0.024954 0.426735 -0.097256 +v -0.000373 0.416553 -0.097256 +v 0.024208 0.426735 -0.097256 +v 0.099482 0.451316 0.066321 +v 0.070235 0.521924 0.066321 +v -0.000373 0.551171 0.066321 +v -0.070981 0.521924 0.066321 +v -0.100228 0.451316 0.066321 +v -0.070981 0.380707 0.066321 +v -0.000373 0.351461 0.066321 +v 0.070235 0.380707 0.066321 +v 0.070235 0.521924 -0.238119 +v 0.099482 0.451316 -0.238119 +v -0.000373 0.551171 -0.238119 +v -0.070981 0.521924 -0.238119 +v -0.100228 0.451316 -0.238119 +v -0.070981 0.380707 -0.238119 +v -0.000373 0.351461 -0.238119 +v 0.070235 0.380707 -0.238119 +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.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.8497 -0.3520 -0.3926 +vn -0.3520 -0.8497 -0.3926 +vn 0.3520 -0.8497 -0.3926 +vn 0.8497 -0.3520 -0.3926 +vn 0.8497 0.3520 -0.3926 +vn 0.3519 0.8497 -0.3926 +vn -0.3519 0.8497 -0.3926 +vn -0.8497 0.3520 -0.3926 +vn 0.3519 -0.8497 -0.3926 +vn 0.3520 0.8497 -0.3926 +vn -0.3520 0.8497 -0.3926 +vn -0.8497 0.3519 -0.3926 +vt 0.043550 0.791975 +vt 0.002178 0.930026 +vt 0.002178 0.791975 +vt 0.333158 0.791975 +vt 0.291785 0.930026 +vt 0.291785 0.791975 +vt 0.250413 0.930026 +vt 0.250413 0.791975 +vt 0.167668 0.791975 +vt 0.126295 0.930026 +vt 0.126295 0.791975 +vt 0.084923 0.791975 +vt 0.084923 0.930026 +vt 0.043550 0.930026 +vt 0.209040 0.930026 +vt 0.209040 0.791975 +vt 0.167668 0.930026 +vt 0.050685 0.998106 +vt 0.166073 0.998106 +vt 0.281460 0.998106 +vt 0.057134 0.998830 +vt 0.116907 0.930226 +vt 0.118548 0.999962 +vt 0.001433 0.999043 +vt 0.060207 0.931062 +vt 0.331484 0.999525 +vt 0.247738 0.930700 +vt 0.333277 0.931090 +vt 0.001218 0.996208 +vt 0.139723 0.930508 +vt 0.137063 0.995766 +vt 0.000345 0.997602 +vt 0.139908 0.933364 +vt 0.136182 0.998674 +vt 0.001907 0.998589 +vt 0.087835 0.929331 +vt 0.090634 0.998073 +vt 0.000235 0.999789 +vt 0.056663 0.931708 +vt 0.053753 0.998957 +vt 0.000699 0.998101 +vt -0.000302 0.930474 +vt 0.333158 0.930026 +vt 0.329256 0.998106 +vt 0.281460 0.998106 +vt 0.002889 0.998106 +vt 0.001473 0.930410 +vt 0.247782 0.999431 +vt 0.003911 0.932253 +vt -0.001634 0.932333 +vt 0.002007 0.930529 +vt -0.000503 0.931244 +s 0 +f 1422/698/834 1424/699/834 1415/700/834 +f 1415/701/835 1423/702/835 1416/703/835 +f 1416/703/836 1425/704/836 1417/705/836 +f 1419/706/837 1428/707/837 1420/708/837 +f 1421/709/838 1428/707/838 1429/710/838 +f 1421/709/839 1430/711/839 1422/698/839 +f 1426/712/840 1417/705/840 1425/704/840 +f 1418/713/841 1427/714/841 1419/706/841 +f 1412/715/842 1411/716/842 1410/717/842 +f 1408/718/843 1424/719/843 1407/720/843 +f 1409/721/844 1423/722/844 1408/718/844 +f 1409/723/845 1426/724/845 1425/725/845 +f 1411/726/846 1426/727/846 1410/728/846 +f 1412/729/847 1427/730/847 1411/731/847 +f 1413/732/848 1428/733/848 1412/734/848 +f 1414/735/849 1429/736/849 1413/737/849 +f 1414/738/850 1424/719/850 1430/739/850 +f 1422/698/834 1430/711/834 1424/699/834 +f 1415/701/835 1424/740/835 1423/702/835 +f 1416/703/836 1423/702/836 1425/704/836 +f 1419/706/837 1427/714/837 1428/707/837 +f 1421/709/838 1420/708/838 1428/707/838 +f 1421/709/839 1429/710/839 1430/711/839 +f 1426/712/840 1418/713/840 1417/705/840 +f 1418/713/841 1426/712/841 1427/714/841 +f 1410/717/842 1409/741/842 1408/742/842 +f 1408/742/842 1407/716/842 1410/717/842 +f 1407/716/842 1414/715/842 1410/717/842 +f 1414/715/842 1413/743/842 1410/717/842 +f 1413/743/842 1412/715/842 1410/717/842 +f 1408/718/843 1423/722/843 1424/719/843 +f 1409/721/844 1425/744/844 1423/722/844 +f 1409/723/851 1410/745/851 1426/724/851 +f 1411/726/846 1427/746/846 1426/727/846 +f 1412/729/847 1428/747/847 1427/730/847 +f 1413/732/852 1429/748/852 1428/733/852 +f 1414/735/853 1430/749/853 1429/736/853 +f 1414/738/854 1407/720/854 1424/719/854 From 735a115bcd6ddb208a8954e7e31c7905134c77bf Mon Sep 17 00:00:00 2001 From: Kal19801 <158162434+Kal19801@users.noreply.github.com> Date: Wed, 31 Jan 2024 16:20:27 +0800 Subject: [PATCH 135/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 4bd5871e0..780c9ab82 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -637,6 +637,7 @@ container.droneProvider=提供 container.droneRequester=请求 container.electricFurnace=电炉 container.epress=电动锻压机 +container.exposureChamber=曝光室 container.factoryAdvanced=高级工厂 container.factoryTitanium=工厂 container.fluidtank=储罐 @@ -680,9 +681,11 @@ container.machineSelenium=星型发动机 container.machineShredder=粉碎机 container.machineSILEX=激光同位素分离室 container.machineSolidifier=固化机 +container.machineStrandCaster=滚动铸造机 container.machineTurbine=汽轮机 container.machineTurbofan=涡扇发动机 container.machine_schrabidium_transmutator=Sa326嬗变装置 +container.machineWoodBurner=火力发电机 container.massStorage=存储 container.microwave=微波炉 container.miningDrill=自动采矿钻机 @@ -695,7 +698,7 @@ container.nukeFstbmb=野火炸弹 container.nukeFurnace=核熔炉 container.nukeGadget=小玩意 container.nukeMan=胖子 -container.nukeMike=常青藤迈克 +container.nukeMike=常春藤迈克 container.nukeN2=N2炸弹 container.nukeN45=N45水雷 container.nukePrototype=原型 @@ -1302,6 +1305,8 @@ hbmfluid.petroil=汽油 hbmfluid.petroil_leaded=含铅石油 hbmfluid.petroleum=石油气 hbmfluid.phosgene=光气 +hbmfluid.pheromone=异虫信息素 +hbmfluid.pheromone_m=增强异虫信息素 hbmfluid.plasma_bf=野火等离子体 hbmfluid.plasma_dh3=氘-氦3 等离子体 hbmfluid.plasma_dt=氘-氚等离子体 @@ -2325,6 +2330,8 @@ item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 item.dieselsuit_legs.name=柴油动力腿部伺服系统 item.dieselsuit_plate.name=柴油动力控制器 item.digamma_diagnostic.name=玩家F-迪伽马辐射自检器 +item.disperser_canister.name= 流体汽化瓶: +item.disperser_canister_empty.name= 流体汽化瓶 item.dns_boots.name=DNT双聚中子态素高科技全环境作战服靴子 item.dns_legs.name=DNT双聚中子态素高科技全环境作战服护腿 item.dns_helmet.name=DNT双聚中子态素高科技全环境作战服头盔 @@ -2495,6 +2502,7 @@ item.gear_large.name=大型齿轮 item.gear_large_steel.name=大型钢齿轮 item.geiger_counter.name=手持盖革计数器 item.gem_alexandrite.name=亚历山大变石 +item.gem_rad.name=放射性宝石 item.gem_sodalite.name=方钠石 item.gem_tantalium.name=钽晶体 item.gem_tantalium.desc=“钽” @@ -2506,6 +2514,8 @@ item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 item.glyphid_meat.name=异虫肉 item.glyphid_meat_grilled.name=熟异虫肉 +item.glyphid_gland.name= 腺体 +item.glyphid_gland_empty.name= 异虫的液腺 item.goggles.name=护目镜 item.grenade_aschrab.name=可抛反Sa326 item.grenade_black_hole.name=黑洞手榴弹 @@ -2950,7 +2960,7 @@ item.meteorite_sword_baleful.name=陨石剑(凶恶) item.mike_cooling_unit.name=氘冷却装置 item.mike_core.name=铀涂层氘罐 item.mike_deut.name=氘罐 -item.mike_kit.name=常青藤麦克 套件 +item.mike_kit.name=常春藤麦克 套件 item.mirror_tool.name=定日镜调整工具 item.mirror_tool.linked=设置对齐位置! item.mirror_tool.desc=右键单击“太阳能锅炉”以记忆位置 $再单击“定日镜”可将其转向太阳能锅炉 @@ -4982,6 +4992,7 @@ tile.machine_electric_furnace_on.name=电炉 tile.machine_electrolyser.name=电解机 tile.machine_epress.name=电动锻压机 tile.machine_excavator.name=大型采矿钻机 +tile.machine_exposure_chamber.name=曝光室 tile.machine_fel.name=FEL自由电子激光器 tile.machine_fensu.name=FEnSU飞轮储能系统 tile.machine_flare.name=高架火炬 @@ -5054,6 +5065,7 @@ tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热 tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 +tile.machine_strand_caster.name=滚动铸造机 tile.machine_telelinker.name=炮塔ID管理器 tile.machine_teleporter.name=传送机 tile.machine_tower_large.name=冷却塔 @@ -5070,6 +5082,8 @@ tile.machine_uf6_tank.name=六氟化铀储罐 tile.machine_vacuum_distill.name=真空炼油厂 tile.machine_waste_drum.name=乏燃料池 tile.machine_well.name=钻油塔 +tile.machine_wood_burner.name=火力发电机 +tile.machine_wood_burner.desc=燃烧物品时100HE/t,同时$收集灰烬$可以以40mb/s的速度燃烧流体,效率为50%% tile.machine_zirnox.name=锆诺克斯核反应堆 tile.marker_structure.name=多方块结构信标 tile.mass_storage.name=大规模存储单元 @@ -5096,7 +5110,7 @@ tile.nuke_fleija.name=F.L.E.I.J.A. tile.nuke_fstbmb.name=BF炸弹 tile.nuke_gadget.name=小玩意 tile.nuke_man.name=胖子 -tile.nuke_mike.name=常青藤迈克 +tile.nuke_mike.name=常春藤迈克 tile.nuke_n2.name=N2炸弹 tile.nuke_n45.name=N45水雷 tile.nuke_prototype.name=原型 @@ -5165,6 +5179,11 @@ tile.ore_random.name=%s 矿 tile.ore_rare.name=稀土矿石 tile.ore_reiium.name=雷恩矿石 tile.ore_schrabidium.name=Sa326矿石 +tile.ore_sellafield_diamond.name=放射性熔融钻石矿 +tile.ore_sellafield_emerald.name=放射性熔融绿宝石矿 +tile.ore_sellafield_radgem.name=富含宝石的放射性熔融物 +tile.ore_sellafield_schrabidium.name=放射性熔融Sa326矿石 +tile.ore_sellafield_uranium_scorched.name=放射性熔融烧焦铀矿 tile.ore_sulfur.name=硫磺矿石 tile.ore_tektite_osmiridium.name=渗锇熔融石 tile.ore_thorium.name=钍矿石 @@ -5326,6 +5345,7 @@ tile.sellafield.4.name=地狱般的放射性熔融凝固物 tile.sellafield.5.name=放射性熔融凝固物核心 tile.sellafield_slaked.name=消沉的放射性熔融凝固物 tile.semtex.name=塞姆汀塑胶炸药 +tile.silo_hatch.name=发射井舱门 tile.sliding_blast_door.name=滑动防爆门 tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 @@ -5411,6 +5431,7 @@ tile.vinyl_tile.small.name=小型乙烯基瓷砖 tile.vitrified_barrel.name=玻璃化核废料桶 tile.volcanic_lava_block.name=火山熔岩 tile.volcano_core.name=火山核心 +tile.volcano_rad_core.name=放射性火山核心 tile.waste_earth.name=死亡草地 tile.waste_leaves.name=枯叶 tile.waste_log.name=烧焦原木 @@ -5430,6 +5451,15 @@ tile.watz_hatch.name=Watz反应堆端口 tile.watz_pump.name=Watz压力泵 tile.yellow_barrel.name=核废料桶 tile.zirnox_destroyed.name=损毁的ZINROX + +tile.large_vehicle_door.name=大型机械门 +tile.water_door.name=水闸门 +tile.qe_containment.name=QE安全门 +tile.qe_sliding_door.name=QE滑动门 +tile.round_airlock_door.name=圆形气闸门 +tile.secure_access_door.name=安全检修门 +tile.sliding_seal_door.name=滑动密封门 + trait.asbestos=石棉 trait.blinding=致盲 trait.coal=煤尘 @@ -5529,4 +5559,4 @@ weapon.elecGun.glass_cannon.xray=X射线 weapon.elecGun.glass_cannon.gamma=伽马射线 hadron.error=错误! container.reactor=增殖反应堆 -death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file +death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 From 24a60d6740ca8416eda61ab1af1eef1f5306b70a Mon Sep 17 00:00:00 2001 From: Kal19801 <158162434+Kal19801@users.noreply.github.com> Date: Wed, 31 Jan 2024 19:44:49 +0800 Subject: [PATCH 136/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 780c9ab82..587a34a5f 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -712,6 +712,7 @@ container.puf6_tank=六氟化钚储罐 container.pumpjack=石油钻机 container.radGen=辐射能量发电机 container.radar=雷达 +tile.machine_radar_large.name=大型雷达 container.radiobox=FM发射机 container.radiolysis=RTG辐射裂解室 container.radiorec=FM收音机 @@ -1260,6 +1261,7 @@ hbmfluid.ethanol=乙醇 hbmfluid.enderjuice=末影果汁 hbmfluid.fishoil=鱼油 hbmfluid.fracksol=压裂液 +hbmfluid.fullerene=富勒烯溶液 hbmfluid.gas=天然气 hbmfluid.gas_coker=焦化气 hbmfluid.gasoline=含铅汽油基油 @@ -3634,6 +3636,7 @@ item.pwr_fuel_hot.mep.name=高温 MEP 中浓缩度钚压水堆燃料棒 item.pwr_fuel_hot.meu.name=高温 MEU 中浓缩度铀压水堆燃料棒 item.pwr_fuel_hot.mox.name=高温 MOX压水堆燃料棒 item.quartz_plutonium.name=深成石英 +item.radar_linker.name=雷达连接器 item.radaway.name=消辐宁 item.radaway_flush.name=超级消辐宁 item.radaway_strong.name=强效消辐宁 @@ -5248,7 +5251,9 @@ tile.pwr_port.name=PWR接入端口 tile.pwr_port.desc=允许物品和液体交换$位置:组件 tile.pwr_reflector.name=PWR中子反射器 tile.pwr_reflector.desc=将中子通量反射回燃料棒$位置:网格,用于增加反应速率$可作为外壳材料 -tile.radio_telex.name=Telex Machine +tile.rad_lava_block.name=放射性火山熔岩 +tile.radar_screen.name=雷达显示屏 +tile.radio_telex.name=电报机 tile.radio_torch_counter.name=红石无线项目计数器 tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配项目的数量发出信号 tile.radio_torch_receiver.name=无线红石信号接收器 From 1b1682a9d6305f5ba43aa39c0c297fdc2033ab51 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 31 Jan 2024 17:01:13 +0100 Subject: [PATCH 137/376] mind the GUI --- changelog | 19 +++++++++++------- gradle.properties | 3 ++- .../com/hbm/blocks/generic/BlockDecoCT.java | 17 ---------------- .../java/com/hbm/blocks/generic/BlockOre.java | 6 ------ .../gui/GUIMachineCatalyticReformer.java | 13 ++++++++++++ .../inventory/recipes/anvil/AnvilRecipes.java | 9 +++++++++ .../java/com/hbm/main/CraftingManager.java | 4 ++-- .../hbm/textures/blocks/cm_flux_side.png | Bin 410 -> 490 bytes .../hbm/textures/blocks/cm_flux_top.png | Bin 541 -> 563 bytes .../hbm/textures/blocks/cm_heat_side.png | Bin 218 -> 567 bytes .../hbm/textures/blocks/cm_heat_top.png | Bin 742 -> 540 bytes .../gui/processing/gui_hydrotreater.png | Bin 0 -> 5217 bytes .../hbm/textures/models/missile_stealth.png | Bin 1126 -> 1346 bytes 13 files changed, 38 insertions(+), 33 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png diff --git a/changelog b/changelog index c44e3345d..1f341a394 100644 --- a/changelog +++ b/changelog @@ -1,8 +1,13 @@ -## Changed -* Sped up the electrolyzer, fluid electrolysis now takes 3 seconds instead of 5 and crystal processing now only takes 20 seconds instead of 50 -* Increased electrolyzer pouring speed to 3 nuggets per tick instead of 1 -* Deco blocks now only drop ingots 25% of the time - * The incredibly common structures now only yield a few dozen free ingots instead of several stacks. How horrible! +## Added +* More custom machine parts + * Custom machines now have a neutron acceptor which allows them to use flux from the breeding reactor in recipes + * There is now a heat acceptor which can accept heat from things like fireboxes or electric heaters + * Also added a config option to create pollution -## Fixed -* Fixed radar screens not working at all and potentially freezing the game +## Changed +* Deco bocks now drop all of the time, but they drop themselves instead of ingots + * To get the ingots, deco blocks now have to be deconstructed in the anvil, yielding an ingot 25% of the time + * If I see one more person complaining about the chances I'm reducing it down to 10% +* Catalytic reformers now have a tooltip informing about the need for a catalytic converter +* Several guns now have reload animations including most .357 revolvers and Samuel +* Updated stealth missile texture \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 2bc727da5..a50134150 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,4 +17,5 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ JamesH2 (blood mechanics, nitric acid, particle emitter), sdddddf80 (recipe configs, chinese localization,\ \ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\ \ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks),\ - \ 245tt (anvil GUI improvements), MellowArpeggiation (turbine sounds, sound fixes) + \ 245tt (anvil GUI improvements), MellowArpeggiation (new animation system, turbine sounds, sound fixes),\ + \ FOlkvangrField (custom machine parts) diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoCT.java b/src/main/java/com/hbm/blocks/generic/BlockDecoCT.java index d16524637..c6197d163 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDecoCT.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoCT.java @@ -1,9 +1,5 @@ package com.hbm.blocks.generic; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; import com.hbm.render.block.ct.CT; import com.hbm.render.block.ct.CTStitchReceiver; import com.hbm.render.block.ct.IBlockCT; @@ -12,7 +8,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.item.Item; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -40,16 +35,4 @@ public class BlockDecoCT extends BlockOre implements IBlockCT{ public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { return rec.fragCache; } - - @Override - public Item getItemDropped(int i, Random rand, int j) { - if(rand.nextInt(4) != 0) return null; - if(this == ModBlocks.deco_aluminium) return ModItems.ingot_aluminium; - if(this == ModBlocks.deco_beryllium) return ModItems.ingot_beryllium; - if(this == ModBlocks.deco_lead) return ModItems.ingot_lead; - if(this == ModBlocks.deco_red_copper) return ModItems.ingot_red_copper; - if(this == ModBlocks.deco_steel) return ModItems.ingot_steel; - if(this == ModBlocks.deco_tungsten) return ModItems.ingot_tungsten; - return null; - } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index be87197a0..e22d2e1f1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -154,12 +154,6 @@ public class BlockOre extends Block { if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) { return ModItems.chunk_ore; } - if(this == ModBlocks.deco_titanium) { - return rand.nextInt(4) == 0 ? ModItems.ingot_titanium : null; - } - if(this == ModBlocks.deco_asbestos) { - return rand.nextInt(4) == 0 ? ModItems.ingot_asbestos : null; - } if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos) { return ModItems.ingot_asbestos; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCatalyticReformer.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCatalyticReformer.java index 4106bfa80..7c0c6d358 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCatalyticReformer.java @@ -1,14 +1,19 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; +import java.util.List; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineCatalyticReformer; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticReformer; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class GUIMachineCatalyticReformer extends GuiInfoContainer { @@ -33,6 +38,14 @@ public class GUIMachineCatalyticReformer extends GuiInfoContainer { refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 70 - 52, 16, 52); refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 70 - 52, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 70 - 52, 16, 52, refinery.power, refinery.maxPower); + + if(this.mc.thePlayer.inventory.getItemStack() == null && this.isMouseOverSlot(this.inventorySlots.getSlot(10), mouseX, mouseY) && !this.inventorySlots.getSlot(10).getHasStack()) { + List lines = new ArrayList(); + ItemStack converter = new ItemStack(ModItems.catalytic_converter); + lines.add(new Object[] {converter}); + lines.add(new Object[] {converter.getDisplayName()}); + this.drawStackText(lines, mouseX, mouseY, this.fontRendererObj); + } } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 3a0c76a39..f6a37b64d 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -718,6 +718,15 @@ public class AnvilRecipes { } ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_titanium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_red_copper), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_tungsten), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_aluminium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_aluminium, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_steel), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_lead, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_asbestos), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.heater_firebox), new AnvilOutput[] { diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 693b75e30..fb36d022f 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1183,8 +1183,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 2), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_red_copper); addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 3), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_gold); addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 4), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_schrabidium); - addRecipeAuto(new ItemStack(ModBlocks.cm_flux, 1, 0), "NZN", "ZCZ", "NZN", 'Z', ZR.plateCast(), 'N', ModItems.neutron_reflector, 'C', ModItems.reactor_core); - addRecipeAuto(new ItemStack(ModBlocks.cm_heat, 1, 0), "PCP", "PSP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.board_copper, 'S', ModItems.pipes_steel); + addRecipeAuto(new ItemStack(ModBlocks.cm_flux, 1, 0), "NNN", "ZCZ", "NNN", 'Z', ZR.plateCast(), 'N', ModItems.neutron_reflector, 'C', ModItems.reactor_core); + addRecipeAuto(new ItemStack(ModBlocks.cm_heat, 1, 0), "PCP", "PCP", "PCP", 'P', ModItems.plate_polymer, 'C', CU.ingot()); } public static void crumple() { diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_flux_side.png b/src/main/resources/assets/hbm/textures/blocks/cm_flux_side.png index 626be40ad236eb0eb5b226a0000bbdf81f3b515c..5a2a210d64eccdf806ebbfe60b20bbfcbbc01251 100644 GIT binary patch delta 464 zcmV;>0WbcV1L^~iB!2{RLP=Bz2nYy#2xN!=00E&%L_t(Ijh&J)>yl9vho5`y^;HK2 z3I0f^!ZLp;D=! zs+463K)c?R;v}?zkRwY86Ztle(fGG91aO)_Say&Ueju|{@JI~DNmlg zLPQAOd(4b9O&O2JS8oAeW`qy|s>;{Nj8Y#`sZ?;zvE6Rj@As%G&N;mIs4C57lNcia zF-C%_VrIO3^MCp#1_%4|!8!3(2EC^*DT)F)pXS!evJ6!{d2mkuFNkMI?>~G2z&S?< zfh0*T;?!z2j>jXr-HtrZ5fSct{`9se3e1epAKzV_oTe%3?8Ggc)x8X^gm~Y3aT2M~ zXmEFTcQb=pt%moWu-R;Ax7+;qne*uJa}I|CF-FXcdP%)bwOXYp3XaDk&N-4Kp<1mn zo6YdvZMv;JEQ2_X(X~*f zhuGjh0~2r9hd%h@z`9}6JB4EoYrA!)qw0~>B)^U1In0lLNVQXX=z}8;YrFKf)t^i!1hWK?G=J(zL_t(Ijg68qPAoAHM4#LC%q|k?5^aDu00HONl!GCWavM$p z5(%J{X2&xg+ie15^TXef19x}zt1?edPc@~4soxH3K79s zYpJ!8QevKGL1I8~+AN(ce( zJvnD$jD!$+Lw{>B#t=eaUDv+>-g}HOOw+_Tj)(}$vXD~3THEC}z{|2Q&oiYIa?ZGB zO$dQf3gb8ebjjPcb^B6Ef!GPs*iIfs4CEk0aln5b^Qc@@saDUE`Wf=gCMuTRvNvqXD zTWeXZR!pZ;04fi+tZ(iw)ZVI%MkD(DKH7VKDke#S+3rY^;G z$ddq=yDwDY2!PtpKWCyJUs-Q=hnJ7v@ZO`f);Q2Fj@p_D>O$v^vX{PG3*&A|Ww002ovPDHLkV1jt>>>~gG diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_heat_side.png b/src/main/resources/assets/hbm/textures/blocks/cm_heat_side.png index cfa997ceae2c365cca2aac630ff6a4ae7484fe88..7d51fdbba8f03838e82d282373b2019b6b45f008 100644 GIT binary patch literal 567 zcmV-70?7S|P)98LfE1A^kaz^QsSr)xC{o%y z10@w*O5On}kqp8Pj=a0 z^ErzjD}MgE<6Hg#RpsN8@5%ej8=9u!g_1W%JU8jaF9gn+fy;=NDVhKg{9id^Eo z_1+UgpsFgeECVz>?)!c#XjN6zb)5oemSu-GA+g$KoH3{}@PWm(eqJ0Wk(7lBXjCXB~pzB)(yszqK4XYWUh$78Oq zuQwcKvst*gxnVw^lK1eS&I?!5D+8@)xxNO_J=&dU5~&002ovPDHLk FV1f&&0y+Qy literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}Q#@T9Lo_C) z26*zZC~#zVvd??+U;b&4z%zq`j%`OgJj6As-}?!@>-+IpnN!d)M42;`m0^c9!+|q- z^EtD1wiX&>T&j~4DxX&#op!L$S@q}}tCX!g>snq<&|RJ6>;H*M zG9uXe`GGTae91lR5*OW)E_z3VJ@u&yTJ`(7h4#vcN9KIaf6vor?eU1YH{qZ_{rag} Qf$n4QboFyt=akR{04{t{rT_o{ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_heat_top.png b/src/main/resources/assets/hbm/textures/blocks/cm_heat_top.png index 443aa3f7ee1340a9b7b454c81b5f7caa9afa422c..5ef2acf99899c1788f9980df275a4aa27843593a 100644 GIT binary patch literal 540 zcmV+%0^|LOP)JEd+bQw<}i*EBTF1or_rdVx~sZI`u)D~3`78*PAgu%YM>$j>^TKsWrm6% zfB}PHfe4s^2zj~ZC7RBw1YQ5H*QOVKK0oSAQ$rhXvIYrh% z%JY&x*JC=}jK$2eGQ){%j2783flAoKwDeqDyuqnZPh(aVX6_uf@OKOT#g>G8Sm3lo zMd)@j{B({1)ssl?Bv66bc)`i}Ya$H+Nn6Q|a%dm7m=yDEf}7D88;x02h5+4O#{D{~ e|ARdDJO2gGT%Wt@-+^xc0000Px%ph-kQR5*=oluvIXMG(b*uX73!Rlh3T+}t=oRaHpB%m8qABms1LaX)^Gqi+eo zWHRXh`v>|!eRFq!?rfa5+ie2~@cma2$T5l9ox~ggl{b3;wL9x|MvI9A^LfgTf7pRx zUDw>+W=QbyC#QIe{WzFrZ4&McPz3F>>=*`XSPf5xj86xcL-Xzho&?>`?6c##g-&6+#pR66`#b7ZM(@@clgSBh*I9e( z?7&bGi3!O_f^`yDtuj8m%{gC8+255^?gXiOIQ0r3_JJhUrJ1NIZ(mL9vXWP?J|mbI zr$Z`lVm!Z`QU1H<*gDxnHg&I#R<|31WthZbF{RuUczedA|CM9}Y$9!SXc8{xF5mO= z`huj@RyrF!aUJHDGq#)J(VnD3Eem+J&hd3lRX1H`v7GWylurU4TO^kBn`#73+D2h| zD!9kCSWFw|uOo&({5e4S6lmI6RaLNUzQyJtsVzh6)^UW;1I+WBV}VEDr`o)kb>PSL Y9~=G%*a=h^#{d8T07*qoM6N<$f|yrRQvd(} diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png new file mode 100644 index 0000000000000000000000000000000000000000..255588ac747fb0eb1540d7a012d0a73726f74c6a GIT binary patch literal 5217 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¬4 zPxhZGwJMz)u8Sh|JDZQl)PX@u&PlwQ1-iO(gz~8FZn40_U9lh%_Lun7Jdu*@Pp7m9uEfg*i?m8n(6{maZyHgW3w5a@kwf0ngBpJ9EMJl zR^ky_QM`IqgtbP>{q@0<$A|R>g<-YR^6{S0o*+JgAG9A0heP;7(Bq_fIv8KdNcWf& zKJ9B>4R!V&Y*@1MS8}2qL;Z>JSII<$zQZ39fxC%XGBOY5HunZMH-_$-HWi8)2ww)7CyO3LECxjy0`c z>#RBE=MXSO{~5JHX6t%W2*AuDHR}WIPvU`4R&aws8Pz~d@y6;1b%Qm>u;{R{ym?pt z**0C!!GYrL9*t}zsgyz9{p+ZjqYjE01~#X6EfGt8@JU6}QYkiWs1m?Mh;m_YouqR# zu-&$Av8+$fKvxc*->TeDpt;$tbP&jd<^AFmky@n9u@O+!4!5D>jJaPm$w`e=9RW2f9uhy1Ktw@BEJrvW!wYZe; z9{3Of8UTZ5?NI-6#ff6%?!7+kdm>1E)j~QHoaPo#0W0Ku;I8?vJBa_ z(yeM;y^>tsP!-G`A}U4@);I@vYy`>c_3v5Z%0J*4+u1i#K>L^VisD*Eca0;SA;1$Rw956 z7^3|);u#-BVB86(0EZxLaO@bS7()eTNA$v*)@`5Uznn_BCz1Z>v%Xh@sJed=OkR&I z8H!EX@IR4(z}X2t(3=EKc**|9E{?(s{r48Knx;NvoM17F8ABK%li}!rAkKh)`PZ)z z7b2lN+@m;F<|TW0*oK^tAK}c9d#^A^W8+RfO8X=&ZrCr#D~B}PnXbDvmm@PX1A=w! z&%y)}?fbNi%4=)m+uM0e10#()@p|WID`d*%v53rm;9b}{iH|}tjN22a(f*pyx(cY8 zNJ!|COn9?|*Iw+;txZ9csDO1zLk6qc+#{S!eY-M=Obf8`nwl5Bjb;99p*Y&RztVz21@^NYA#s1|-Az~>hk2@DA_Z-GObhM8 zJ-U)d^inIi?ZduekM-xYi6aTX*+&wE#L!yr_iv70PR<0ZyG`gdSk7VgyjOlgwkstE z@^sB;*nZQDCuceh_~z}E&nySWW9fvu0&i4u=s!a7OAK*(gdRODj?tagkOG@`H z3-CDF*V`jcXJzg_UH2Qdv&hg$|A9_+0rxIF7(v@c{9>k4Ld_2!bAu}6fCLt7nM}2t zyX%Iw(Og14*i|Z*Sn*gjE$9OYrnC$$*)oNtg%UwXD9`=}Cg^tM-(S>Hux`6)@P@l! zwSQ(EvDPSBe;G6R@MwwKAaQkyTVoO8BIQC`PWHAeRkU6j(8>dY@OaV_@?b-3_BdB|+&2T0rO`#A_OF1v{djnNNSwb+M2Ja)1;5RMOm`B>jN={CWS5aQx$Wl zf5F*?jriiK#y@+L)6)ZF#0#5+!4RsODMmO;3hPBijHNeu_Yu&NDfbi*A7Iz)ic{-H z=nJF*k<6Vil;9CLK5B_JJaT^^MmVAO8r}*DGNNATgMM#hBDB2D%OSm6*b}xq&h~?})dX z^WwFzpSmS5y9Hj4^C{5F$QY{NE*ot?nc5c0=D~Owc-{UFU*<)40FDUJ)Ai%Oij04W z2ra|m1W%spW0eLyj0eg+z-iA{SEc=$^!(z(Wq8ysnPQYrsY` zQVv?dOzfSFL#@m*|3^swX6t{VCdQ$z3Wz2JR6 z($4<>hE~?{4`}qMCG8d=JF|#?vZ2`P(@CBhfP%Bn4-8O;YR#v*(x6I8O6Gmpl!*jb sHp>wtsg9XqXy2F=75N`W0oySvj3<`E4jH`;o*4ofD!R&Lx2&K47e%|FCjbBd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_stealth.png b/src/main/resources/assets/hbm/textures/models/missile_stealth.png index 8ebb99bfe5137a9f95d91ed69473544007f4c932..2dbcbe3a9d18c545940da035df91c59834c2d1ba 100644 GIT binary patch literal 1346 zcmeAS@N?(olHy`uVBq!ia0vp^Q9!(cgAGU~eEKN>q*#ibJVQ8upoSx*1IYd9>Eakt zG3V{v*u2#S0A+Qc4q!LH#*?Ft{+;|C=9=U(_#b7^YP?a69I$K;!T zc6ziWN=yTyJMU-cKfdq(ukaHu`z=nsEy6Mx>J}IL3Kq!F+;&ebcKM%RHB5HpOq)R+AtY`RLTW z=03e8f|(|wzNI2fVMPthu^r21xmsK}nz5VDYS#pV9T}0f^@ijXC`Pct-ugm^BAF*?NK#aP-}gzs_D!#xSKiNeeOmuTIpZZ(T%V&>@TteKS>5}k6#eMdr=@#%N^Dvu zybOu9bK9HV@rLv0%v+x<56$#CdU{Ft>{a2X*}JY=F@agfXK2lOFyorlIl3dh|H`V~AJ((yP<9gRHbVG-D$y_5C->z`|?r)O=R;>t>&xe=zFe{!Fg@%K5FY3X)`B+~4xG-u>RG%SM^EpZQNe_jA>@JyXM6 z_J50t{>SqoLp@5cW>t&V3f+3P)k}7*yPcE$YhQh3@z$qnH}tc84g)H<;oe-S9dg|9 zUe)3$A8J+|=3K>mVt(Oo`Bltkq8D26as1t~b=68f1E6gdCyq})61i&DtAeIi44=|N zOs_INTN@y&aBbBxs{?yPff~ARKxIESUV;iPZkPm@UY@ZUqWQC>NvLmW1JK@f!7WhJ z89rAl00k`^OB;SF_W{je_#C#PPx$8QEQm`E*qjOr4VLu_kWGkleiu~)6wN+iJ0I+r z&r(I_ms|0DioV|c-m!F#;Ht+8_e2hmJCsUj6qfP;ePbFR+qQ=z?rO+!>4jDYY8X~R<>$C~vO9s?_2@ZJMU7X~ z)rar)J}m6YecRu`QO19{biwa^_y4H;{`WO*?$)QpIkl30XHM6?2Pcs2ht?hDER#*R z#{~&4kO!#3HaTpdbJ@i4{z0jF%RJwo#tT4^Fi&Wi%AA8H=Zn96fB5E7iP?tN44(}@ z+nhdr-2L1AXY2xUGQLZ{*gUxPNh$uS3|pnl@i)cqzwf@2XD(Q|E~^Y2x^gSi1Sb~C zgts0^U$P0PJuFNxb3NNy&Hk|B1exRF;oBcJw%z)azM*c7d-{&$`RkU|RMhOg`=oBa zd|2s2@YV?y;kuA(`-F{ctNPUq$b12lq^y%ZA zSFdDtW{Evq6eQ@V7`^}WKN-%qdlP&sC%#{GZCl4{?bx;Dd!z21sy7Y&a=b`LPXt&f OGI+ZBxvXq*#ibJVQ8upoSx*1IU&2ba4!+ znDch7VbLQ80ax}@f|{J-7yt4faP^onY16@L4;-aD_b-3SR()@E(S~o$ceA4SIg|6f zMB5T8cn*J9QOmo(_p$#y%bLRrniDQK8oW@DC=uYX;$V|yY36HkWG|dimsHhSvNtZ> z?|hwh4nl5`)r&%z%NBi~=6-p${eT<$K_vb9&FgBLi{8$jw)dyp4HOfT%wBw&6~FV} z`?L9}g^SNW-~6(#>hoG1zFWUue0vtX@S@{{KDYa)iZ5LDKL05oNH6sNuJ^4aERI%E zwc2w^O@4)WxC`hv>&aiO(O7GH323^9`{I0{0z>JNpKn&%2!DUJ{m|<2iRfeBk`|RJY|51Hl^1>I@ z4^IYs*?ZxIf=By{YDHP;ec!*B-=7EaDNB8Sx78)ZUvVDC*(zV$TdO9!2p9w$|Ky^5 zLC#q8{%#gnww>{O*krzoKucZff0@1xo7@L7Yx8g?GnZhR?>ptL_H-9m;`~K-&iT*tRn=t| zEa2w=}$l!CiJn{|4*7S?S0Sm2_V-! zh~7S{#G;0K$zezD)!snYMk~nj*{jyB_B<}FD7$EWAkdj0>16e&a}Gf1{Ec5PX}uKq zt9f~?UViZIzt^AH9#T6c_(7)R?Ou-T_}6FGFZ^@r@y+*pe{XUAdbvh_PASX5NU--n zK?d^heQt1ID04u93>4Ik6Cj}il;UVA>DVU@mIC{5FGLC)%B^52L6-NgZ+!UvWBz?$ zb^*yAiayk{g8$GL&Z(REF3vC7e}A>Sw~hI)%Y0Y;Kc7B-|NZxp-FH`=ds^hV{IX{6 z;~$?I3a^2KHg$He*UPfqw!%Sjl5v88Q{HQj%zyo_Po59& z0_u&`n|^lfxpcXwe}N$KQFKJ?c!}` zH9sy2GOk>p#dFK!^~#5*x&Pb$6#rLt|Fr$@E^&_yKCS Date: Thu, 1 Feb 2024 01:19:48 +0800 Subject: [PATCH 138/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 587a34a5f..fdd672508 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -681,7 +681,7 @@ container.machineSelenium=星型发动机 container.machineShredder=粉碎机 container.machineSILEX=激光同位素分离室 container.machineSolidifier=固化机 -container.machineStrandCaster=滚动铸造机 +container.machineStrandCaster=连续铸造机 container.machineTurbine=汽轮机 container.machineTurbofan=涡扇发动机 container.machine_schrabidium_transmutator=Sa326嬗变装置 @@ -2332,8 +2332,8 @@ item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 item.dieselsuit_legs.name=柴油动力腿部伺服系统 item.dieselsuit_plate.name=柴油动力控制器 item.digamma_diagnostic.name=玩家F-迪伽马辐射自检器 -item.disperser_canister.name= 流体汽化瓶: -item.disperser_canister_empty.name= 流体汽化瓶 +item.disperser_canister.name=投掷雾化瓶: +item.disperser_canister_empty.name=投掷雾化瓶 item.dns_boots.name=DNT双聚中子态素高科技全环境作战服靴子 item.dns_legs.name=DNT双聚中子态素高科技全环境作战服护腿 item.dns_helmet.name=DNT双聚中子态素高科技全环境作战服头盔 @@ -2516,8 +2516,8 @@ item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 item.glyphid_meat.name=异虫肉 item.glyphid_meat_grilled.name=熟异虫肉 -item.glyphid_gland.name= 腺体 -item.glyphid_gland_empty.name= 异虫的液腺 +item.glyphid_gland.name=囊腺 +item.glyphid_gland_empty.name=异虫腺体 item.goggles.name=护目镜 item.grenade_aschrab.name=可抛反Sa326 item.grenade_black_hole.name=黑洞手榴弹 @@ -5068,7 +5068,7 @@ tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热 tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 -tile.machine_strand_caster.name=滚动铸造机 +tile.machine_strand_caster.name=连续铸造机 tile.machine_telelinker.name=炮塔ID管理器 tile.machine_teleporter.name=传送机 tile.machine_tower_large.name=冷却塔 From 11e1dd7e0889b18c82ecfe18c427839dd67fa3d8 Mon Sep 17 00:00:00 2001 From: Kal19801 <158162434+Kal19801@users.noreply.github.com> Date: Thu, 1 Feb 2024 01:54:19 +0800 Subject: [PATCH 139/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index fdd672508..3e820b83f 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -968,8 +968,10 @@ desc.item.kitHaz=装甲将被防护服取代。 desc.item.kitPack=真便宜! desc.item.kitPool=请在打开前清空背包库存! desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ - - +desc.item.pipette.corrosive=可处理腐蚀性液体。 +desc.item.pipette.laboratory=现在精度提高了50倍! +desc.item.pipette.noCorrosive=§e无法处理腐蚀性液体。 +desc.item.pipette.noEmpty=§e移液管未排空 desc.item.rtgDecay=衰变为:%s desc.item.rtgHeat=功率级别:%s desc.item.storage.capacity=容量 %s%%s @@ -3413,6 +3415,9 @@ item.pin.name=发夹 item.pin.desc=“*未修改*撬开标准锁的成功率约为10%。 item.pipes_steel.name=钢管 item.pipes_steel.desc=为了避免合成冲突,所以造价如此高昂 +item.pipette.name=移液管 +item.pipette_boron.name=硼玻璃移液管 +item.pipette_laboratory.name=移液器 item.piston_selenium.name=星型发动机活塞 item.piston_set_desh.name=Desh活塞组 item.piston_set_dura.name=高速钢活塞组 From 273018a5c745ad37b962c2a596dc28f6cb0c5274 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 1 Feb 2024 12:07:04 +1100 Subject: [PATCH 140/376] Add correct shell colouring to KS23 --- .../hbm/handler/BulletConfigSyncingUtil.java | 2 +- .../java/com/hbm/handler/CasingEjector.java | 2 +- .../hbm/handler/guncfg/Gun4GaugeFactory.java | 2 ++ .../com/hbm/items/weapon/ItemGunBase.java | 21 +++++++++---------- .../item/weapon/ItemRenderWeaponKS23.java | 13 ++++++++---- 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 3c2c2e7a3..29aaf510e 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -9,7 +9,7 @@ import com.hbm.items.ModItems; public class BulletConfigSyncingUtil { - private static HashMap configSet = new HashMap(); + private static HashMap configSet = new HashMap(); static int i = 0; diff --git a/src/main/java/com/hbm/handler/CasingEjector.java b/src/main/java/com/hbm/handler/CasingEjector.java index 94dd08a92..eda29d1a0 100644 --- a/src/main/java/com/hbm/handler/CasingEjector.java +++ b/src/main/java/com/hbm/handler/CasingEjector.java @@ -23,7 +23,7 @@ import net.minecraft.world.World; */ public class CasingEjector implements Cloneable { - public static HashMap mappings = new HashMap(); + public static HashMap mappings = new HashMap(); public static final Random rand = new Random(); private int id; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 8dfdc1d18..de94a6be9 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -81,6 +81,8 @@ public class Gun4GaugeFactory { config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.65F; + config.ejector = EJECTOR_SHOTGUN.clone().setDelay(10); + config.name = "ks23"; config.manufacturer = EnumGunManufacturer.TULSKY; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 406e65a81..bf24aa672 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -115,7 +115,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu endActionClient(stack, world, entity, false); } - if(mainConfig.reloadType != mainConfig.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) { + if(mainConfig.reloadType != GunConfiguration.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) { if(GameSettings.isKeyDown(HbmKeybinds.reloadKey) && Minecraft.getMinecraft().currentScreen == null && (getMag(stack) < mainConfig.ammoCap || hasInfinity(stack, mainConfig))) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 2)); @@ -184,7 +184,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) { //cancel reload when trying to shoot if it's a single reload weapon and at least one round is loaded - if(getIsReloading(stack) && mainConfig.reloadType == mainConfig.RELOAD_SINGLE && this.getMag(stack) > 0) { + if(getIsReloading(stack) && mainConfig.reloadType == GunConfiguration.RELOAD_SINGLE && getMag(stack) > 0) { setReloadCycle(stack, 0); setIsReloading(stack, false); } @@ -208,7 +208,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(!main) config = altConfig; - if(config.reloadType == mainConfig.RELOAD_NONE) { + if(config.reloadType == GunConfiguration.RELOAD_NONE) { return getBeltSize(player, getBeltType(player, stack, main)) > 0; } else { @@ -222,7 +222,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu BulletConfiguration config = null; - if(mainConfig.reloadType == mainConfig.RELOAD_NONE) { + if(mainConfig.reloadType == GunConfiguration.RELOAD_NONE) { config = getBeltCfg(player, stack, true); } else { config = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); @@ -261,13 +261,13 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(altConfig == null) return; - BulletConfiguration config = altConfig.reloadType == altConfig.RELOAD_NONE ? getBeltCfg(player, stack, false) : BulletConfigSyncingUtil.pullConfig(altConfig.config.get(getMagType(stack))); + BulletConfiguration config = altConfig.reloadType == GunConfiguration.RELOAD_NONE ? getBeltCfg(player, stack, false) : BulletConfigSyncingUtil.pullConfig(altConfig.config.get(getMagType(stack))); int bullets = config.bulletsMin; for(int k = 0; k < altConfig.roundsPerCycle; k++) { - if(altConfig.reloadType != altConfig.RELOAD_NONE && !hasAmmo(stack, player, true)) + if(altConfig.reloadType != GunConfiguration.RELOAD_NONE && !hasAmmo(stack, player, true)) break; if(config.bulletsMax > config.bulletsMin) @@ -355,9 +355,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu BulletConfiguration prevCfg = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); - if(getMag(stack) == 0) - resetAmmoType(stack, world, player); - BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); ComparableStack ammo = (ComparableStack) cfg.ammo.copy(); @@ -403,6 +400,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu //initiates a reload public void startReloadAction(ItemStack stack, World world, EntityPlayer player) { + + if(getMag(stack) == 0) + resetAmmoType(stack, world, player); if(player.isSneaking() && hasInfinity(stack, mainConfig)) { @@ -494,8 +494,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu addAdditionalInformation(stack, list); } - protected void addAdditionalInformation(ItemStack stack, List list) - { + protected void addAdditionalInformation(ItemStack stack, List list) { final BulletConfiguration bulletConfig = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); list.add(I18nUtil.resolveKey(HbmCollection.gunDamage, bulletConfig.dmgMin, bulletConfig.dmgMax)); if(bulletConfig.bulletsMax != 1) diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java index 9ede89c08..4160ee3f9 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java @@ -4,8 +4,10 @@ import java.awt.Color; import org.lwjgl.opengl.GL11; +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.ResourceManager; -import com.hbm.particle.SpentCasing; import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; @@ -83,12 +85,15 @@ public class ItemRenderWeaponKS23 implements IItemRenderer { HbmAnimations.applyRelevantTransformation("Shell"); - // TODO: Fetch the correct colors to render on the shells - Color shellColor = new Color(SpentCasing.COLOR_CASE_4GA); + ItemGunBase gun = (ItemGunBase)item.getItem(); + BulletConfiguration bullet = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(ItemGunBase.getMagType(item))); + int[] colors = bullet.spentCasing.getColors(); + + Color shellColor = new Color(colors[1]); GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); ResourceManager.ks23.renderPart("Shell"); - Color shellForeColor = new Color(0xFFD800); + Color shellForeColor = new Color(colors[0]); GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); ResourceManager.ks23.renderPart("ShellFore"); From 5adcecfb78fffb4db91d1fd804566721ec32e310 Mon Sep 17 00:00:00 2001 From: Kal19801 <158162434+Kal19801@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:07:07 +0800 Subject: [PATCH 141/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 3e820b83f..41c360799 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1005,6 +1005,7 @@ entity.entity_glyphid_blaster.name=爆破异虫 entity.entity_glyphid_bombardier.name=投弹手异虫 entity.entity_glyphid_brawler.name=狂战士异虫 entity.entity_glyphid_brenda.name=布伦达 +entity.entity_glyphid_digger.name=掘地异虫 entity.entity_glyphid_nuclear.name=大个子强森 entity.entity_glyphid_scout.name=侦察异虫 entity.entity_ntm_fbi.name=FBI探员 @@ -1017,6 +1018,9 @@ entity.entity_mob_nuclear_creeper.name=核爆爬行者 entity.entity_mob_phosgene_creeper.name=光气爬行者 entity.entity_mob_tainted_creeper.name=污染爬行者 entity.entity_mob_volatile_creeper.name=不稳定爬行者 +entity.entity_parasite_maggot.name=寄生虫 +entity.entity_pigeon.name=鸽子 +entity.entity_plastic_bag.name=塑料袋 entity.entity_taint_crab.name=污染螃蟹 entity.entity_tesla_crab.name=磁暴螃蟹 entity.hbm.entity_balls_o_tron.name=机械蠕虫 @@ -2334,8 +2338,8 @@ item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 item.dieselsuit_legs.name=柴油动力腿部伺服系统 item.dieselsuit_plate.name=柴油动力控制器 item.digamma_diagnostic.name=玩家F-迪伽马辐射自检器 -item.disperser_canister.name=投掷雾化瓶: -item.disperser_canister_empty.name=投掷雾化瓶 +item.disperser_canister.name=流体雾化手雷: +item.disperser_canister_empty.name=流体雾化手雷 item.dns_boots.name=DNT双聚中子态素高科技全环境作战服靴子 item.dns_legs.name=DNT双聚中子态素高科技全环境作战服护腿 item.dns_helmet.name=DNT双聚中子态素高科技全环境作战服头盔 @@ -3428,6 +3432,7 @@ item.plan_c.desc=致死 item.plant_item.mustardwillow.name=芥子柳叶 item.plant_item.rope.name=麻绳 item.plant_item.tobacco.name=烟叶 +item.plastic_bag.name=塑料袋 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 item.plate_armor_ajr.name=铁皮装甲板 @@ -3934,6 +3939,7 @@ item.sat_base.name=卫星基座 item.sat_chip.name=卫星ID芯片 item.sat_coord.name=卫星指示器 item.sat_designator.name=卫星激光指示器 +item.sat_relay.name=卫星雷达中继器 item.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器 item.sat_gerald.name=Gerald建筑机器人 item.sat_head_laser.name=死光发射器 From 07a7a46269db4613d8bd71a76965f018a862e6e0 Mon Sep 17 00:00:00 2001 From: Kal19801 <158162434+Kal19801@users.noreply.github.com> Date: Thu, 1 Feb 2024 16:45:44 +0800 Subject: [PATCH 142/376] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 41c360799..8b2429afa 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1763,6 +1763,7 @@ item.balefire_and_steel.name=野火打火石 item.balefire_scrambled.name=炒野火蛋 item.ball_dynamite.name=硝糖炸药 item.ball_fireclay.name=耐火粘土 +item.ball_resin.name=乳胶 item.ball_tatb.name=三氨基三硝基苯(TATB) item.ball_tnt.name=TNT炸药 item.ballistic_gauntlet.name=冲击拳套 @@ -1892,14 +1893,18 @@ item.blades_steel.name=钢制刀片 item.blades_titanium.name=钛制刀片 item.blowtorch.name=喷灯 item.board_copper.name=铜片 +item.boat_rubber.name=橡胶船 item.bobmazon_hidden.name=隐藏目录 item.bobmazon_machines.name=Bobmazon: 方块和机器 item.bobmazon_materials.name=Bobmazon: 材料 item.bobmazon_tools.name=Bobmazon: 工具 item.bobmazon_weapons.name=Bobmazon: 武器和爆炸物 +item.bolt.name=%s螺栓 item.bolt_compound.name=加强涡轮机轴 item.bolt_dura_steel.name=高速钢螺栓 item.bolt_tungsten.name=钨螺栓 +item.bolt_spike.name=铁路道钉 +item.bolt_spike.desc=不知何故,散发着威胁的气息 item.boltgun.name=气动射钉枪 item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 @@ -2351,6 +2356,7 @@ item.dnt_plate.name=双聚态中子素 胸甲 item.door_bunker.name=仓门 item.door_metal.name=金属门 item.door_office.name=办公室门 +item.door_red.name=红门 item.dosimeter.name=剂量计 item.drax.name=采掘钻 item.drax_mk2.name=强化型采掘钻 @@ -2764,6 +2770,7 @@ item.ingot_au198.name=金-198锭 item.ingot_australium.name=奥斯锭 item.ingot_bakelite.name=电木锭 item.ingot_beryllium.name=铍锭 +item.ingot_biorubber.name=乳胶锭 item.ingot_bismuth.name=铋锭 item.ingot_boron.name=硼锭 item.ingot_c4.name=一块C-4 @@ -2982,6 +2989,7 @@ item.missile_carrier.name=HTR-01运载火箭 item.missile_cluster.name=集束导弹 item.missile_cluster_strong.name=强化型集束导弹 item.missile_custom.name=定制导弹 +item.missile_decoy.name=诱饵弹 item.missile_doomsday.name=末日导弹 item.missile_drill.name=掩体裂解者 item.missile_emp.name=EMP导弹 @@ -4779,6 +4787,7 @@ tile.drone_waypoint_request.name=物流无人机航路点 tile.door_bunker.name=仓门 tile.door_metal.name=金属门 tile.door_office.name=办公室门 +tile.door_red.name=红门 tile.ducrete.name=高密度贫铀混凝土瓷砖 tile.ducrete_stairs.name=高密度贫铀混凝土瓷砖楼梯 tile.ducrete_smooth.name=高密度贫铀混凝土 @@ -5275,6 +5284,15 @@ tile.radiobox.name=无线怪物清除箱 tile.radiorec.name=坏掉的收音机 tile.rail_booster.name=高速动力轨道 tile.rail_highspeed.name=高速轨道 +tile.rail_large_buffer.name=标准轨距缓冲停止轨道(5m) +tile.rail_large_curve.name=标准轨距弯曲轨道(5m) +tile.rail_large_curve_7.name=标准轨距弯曲轨道(7m) +tile.rail_large_curve_9.name=标准轨距弯曲轨道(9m) +tile.rail_large_ramp.name=标准轨距坡道铁轨(5m) +tile.rail_large_straight.name=标准轨距铁轨(5m) +tile.rail_large_straight_short.name=标准轨距铁轨(1m) +tile.rail_large_switch.name=标准轨距铁路道岔(15m 左转) +tile.rail_large_switch_flipped.name=标准轨距铁路道岔(15m 右转) tile.rail_narrow.name=窄轨距轨道 tile.rail_wood.name=木制轨道 tile.rbmk_absorber.name=RBMK反应堆硼中子吸收器 From 3d6c2aa67e38de5b5011357df7f01784536f08c8 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 1 Feb 2024 21:56:04 +1100 Subject: [PATCH 143/376] Fix reload animation getting stuck if you run out of ammo before filling the weapon Fix ALT_CYCLE support, will fall back to CYCLE if no ALT_CYCLE animation is defined --- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 1 - src/main/java/com/hbm/items/ModItems.java | 2 +- .../com/hbm/items/weapon/ItemCryoCannon.java | 26 +-- .../com/hbm/items/weapon/ItemGunBase.java | 21 +- .../hbm/items/weapon/ItemGunChemthrower.java | 10 +- .../com/hbm/items/weapon/ItemGunVortex.java | 215 ------------------ .../weapon/gununified/ItemEnergyGunBase.java | 16 +- .../com/hbm/packet/GunAnimationPacket.java | 5 + 8 files changed, 34 insertions(+), 262 deletions(-) delete mode 100644 src/main/java/com/hbm/items/weapon/ItemGunVortex.java diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 26e2a5264..ea2f4b24a 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -16,7 +16,6 @@ import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationSequence.Dimension; import com.hbm.render.anim.HbmAnimations.AnimType; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0c07cb805..0b2168673 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4257,7 +4257,7 @@ public class ModItems { gun_twigun = new GunEuthanasia().setUnlocalizedName("gun_twigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_twigun"); gun_defabricator_ammo = new Item().setUnlocalizedName("gun_defabricator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_defabricator_ammo"); gun_defabricator = new GunDefabricator().setUnlocalizedName("gun_defabricator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_defabricator"); - gun_vortex = new ItemGunVortex(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_vortex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_vortex"); + gun_vortex = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_vortex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_vortex"); gun_super_shotgun = new ItemCustomLore().setUnlocalizedName("gun_super_shotgun").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_super_shotgun"); gun_moist_nugget = new ItemNugget(3, false).setUnlocalizedName("gun_moist_nugget").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_moist_nugget"); gun_dampfmaschine = new GunDampfmaschine().setUnlocalizedName("gun_dampfmaschine").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_dampfmaschine"); diff --git a/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java index 6e9bf1de7..6a69055ab 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java +++ b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java @@ -26,12 +26,12 @@ public class ItemCryoCannon extends ItemGunBase { @Override protected void fire(ItemStack stack, World world, EntityPlayer player) { - if(this.getPressure(stack) >= 1000) return; - if(this.getTurbine(stack) < 100) return; + if(getPressure(stack) >= 1000) return; + if(getTurbine(stack) < 100) return; BulletConfiguration config = null; - if(mainConfig.reloadType == mainConfig.RELOAD_NONE) { + if(mainConfig.reloadType == GunConfiguration.RELOAD_NONE) { config = getBeltCfg(player, stack, true); } else { config = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); @@ -50,6 +50,9 @@ public class ItemCryoCannon extends ItemGunBase { for(int i = 0; i < bullets; i++) { spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); } + + if(player instanceof EntityPlayerMP) + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); useUpAmmo(player, stack, true); player.inventoryContainer.detectAndSendChanges(); @@ -66,26 +69,23 @@ public class ItemCryoCannon extends ItemGunBase { @Override protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - EntityChemical chem = new EntityChemical(world, player); chem.setFluid(Fluids.OXYGEN); world.spawnEntityInWorld(chem); - int pressure = this.getPressure(stack); + int pressure = getPressure(stack); pressure += 5; pressure = MathHelper.clamp_int(pressure, 0, 1000); - this.setPressure(stack, pressure); - - if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); + setPressure(stack, pressure); } @Override protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - int turbine = this.getTurbine(stack); - int pressure = this.getPressure(stack); + int turbine = getTurbine(stack); + int pressure = getPressure(stack); - if(this.getIsMouseDown(stack)) { + if(getIsMouseDown(stack)) { turbine += 10; } else { turbine -= 5; @@ -94,8 +94,8 @@ public class ItemCryoCannon extends ItemGunBase { turbine = MathHelper.clamp_int(turbine, 0, 100); pressure = MathHelper.clamp_int(pressure, 0, 1000); - this.setTurbine(stack, turbine); - this.setPressure(stack, pressure); + setTurbine(stack, turbine); + setPressure(stack, pressure); super.updateServer(stack, world, player, slot, isCurrentItem); } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index bf24aa672..6b5af4a37 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -241,6 +241,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu for(int i = 0; i < bullets; i++) { spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); } + + if(player instanceof EntityPlayerMP) + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); useUpAmmo(player, stack, true); player.inventoryContainer.detectAndSendChanges(); @@ -276,6 +279,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu for(int i = 0; i < bullets; i++) { spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); } + + if(player instanceof EntityPlayerMP) + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.ALT_CYCLE.ordinal()), (EntityPlayerMP) player); useUpAmmo(player, stack, false); player.inventoryContainer.detectAndSendChanges(); @@ -291,13 +297,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu //spawns the actual projectile, can be overridden to change projectile entity protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, config, player); world.spawnEntityInWorld(bullet); - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - } //called on click (server side, called by mouse packet) for semi-automatics and specific events @@ -314,10 +315,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); } - - //setMag(stack, getMag(stack) - 1); - //useUpAmmo(player, stack, main); - //player.inventoryContainer.detectAndSendChanges(); } if(!main && altConfig != null && tryShoot(stack, world, player, main)) { @@ -328,9 +325,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu altFire(stack, world, player); setDelay(stack, altConfig.rateOfFire); } - - //useUpAmmo(player, stack, main); - //player.inventoryContainer.detectAndSendChanges(); } } @@ -378,7 +372,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD_END.ordinal()), (EntityPlayerMP) player); } else { resetReloadCycle(player, stack); - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD_CYCLE.ordinal()), (EntityPlayerMP) player); + AnimType animType = availableFills <= 1 ? AnimType.RELOAD_END : AnimType.RELOAD_CYCLE; + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(animType.ordinal()), (EntityPlayerMP) player); } if(hasLoaded && mainConfig.reloadSoundEnd) diff --git a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java index 80910ce01..028ea8769 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java @@ -48,13 +48,14 @@ public class ItemGunChemthrower extends ItemGunBase implements IFillableItem { spawnProjectile(world, player, stack, 0); } + if(player instanceof EntityPlayerMP) + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); + useUpAmmo(player, stack, true); player.inventoryContainer.detectAndSendChanges(); int wear = (int) Math.ceil(10 / (1F + EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack))); setItemWear(stack, getItemWear(stack) + wear); - - //world.playSoundAtEntity(player, mainConfig.firingSound, 1.0F, mainConfig.firingPitch); } @Override @@ -86,15 +87,10 @@ public class ItemGunChemthrower extends ItemGunBase implements IFillableItem { @Override protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - //spawn fluid projectile - EntityChemical chem = new EntityChemical(world, player); chem.setFluid(this.getFluidType(stack)); world.spawnEntityInWorld(chem); - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); } @Override diff --git a/src/main/java/com/hbm/items/weapon/ItemGunVortex.java b/src/main/java/com/hbm/items/weapon/ItemGunVortex.java deleted file mode 100644 index fb8422d72..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunVortex.java +++ /dev/null @@ -1,215 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemGunVortex extends ItemGunBase { - - @SideOnly(Side.CLIENT) - private long lastFireTime; - - public ItemGunVortex(GunConfiguration config) { - super(config); - } - - /*@Override - protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - //EntityBeamVortex beam = new EntityBeamVortex(world, player); - //world.spawnEntity(beam); - //100 blocks is its current max range, but I'm sure that could be increased if necessary. - List entsOnBeam = Library.rayTraceEntitiesOnLine(player, 100, 1).getRight(); - - for(Entity e : entsOnBeam){ - - if(!(e instanceof EntityLivingBase)) - continue; - - float dmg = 30; - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, ModDamageSource.radiation, dmg); - } - - if(this.mainConfig.animations.containsKey(AnimType.CYCLE) && player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - PacketDispatcher.wrapper.sendToAllAround(new GunFXPacket(player, FXType.FIRE), new TargetPoint(world.provider.dimensionId, player.posX, player.posY, player.posZ, 1)); - } - - //This method should also solve the supershotgun issue where it doesn't fire some of the time (maybe?) - @Override - @SideOnly(Side.CLIENT) - public void onFireClient(ItemStack stack, EntityPlayer player, boolean shouldDoThirdPerson) { - //If I'm going to do more particle systems like this maybe I should write some kind of abstraction around it to make it less messy. - NBTTagCompound tag = new NBTTagCompound(); - Vec3d pos = null; - if(stack == player.getHeldItemMainhand()){ - pos = new Vec3d(-0.16, -0.20, 1).rotatePitch(-(float) Math.toRadians(player.rotationPitch)).rotateYaw(-(float) Math.toRadians(player.rotationYawHead)); - } else { - pos = new Vec3d(0.16, -0.20, 1).rotatePitch(-(float) Math.toRadians(player.rotationPitch)).rotateYaw(-(float) Math.toRadians(player.rotationYawHead)); - } - pos = pos.add(player.getPositionEyes(1F)); - Vec3d view = BobMathUtil.getVectorFromAngle(BobMathUtil.getEulerAngles(player.getLookVec()).addVector(0, 3, 0)); - Vec3d hitPos = null; - Vec3d hitNormal = null; - RayTraceResult r = Library.rayTraceIncludeEntities(player, 100, MainRegistry.proxy.partialTicks()); - if(r == null || r.typeOfHit == Type.MISS){ - hitPos = player.getLook(MainRegistry.proxy.partialTicks()).scale(100).add(pos); - } else { - hitPos = r.hitVec; - hitNormal = new Vec3d(r.sideHit.getFrontOffsetX(), r.sideHit.getFrontOffsetY(), r.sideHit.getFrontOffsetZ()); - } - - tag.setString("type", "spark"); - tag.setString("mode", "coneBurst"); - tag.setDouble("posX", pos.x-player.motionX); - tag.setDouble("posY", pos.y-player.motionY); - tag.setDouble("posZ", pos.z-player.motionZ); - tag.setDouble("dirX", view.x); - tag.setDouble("dirY", view.y); - tag.setDouble("dirZ", view.z); - tag.setFloat("r", 0.2F); - tag.setFloat("g", 0.8F); - tag.setFloat("b", 0.9F); - tag.setFloat("a", 1.5F); - tag.setInteger("lifetime", 1); - tag.setFloat("width", 0.01F); - tag.setFloat("length", 2F); - tag.setFloat("gravity", 0); - tag.setFloat("angle", 15F); - tag.setInteger("count", 12); - MainRegistry.proxy.effectNT(tag); - - ParticleVortexBeam beam = new ParticleVortexBeam(player.world, pos.x, pos.y, pos.z, hitPos.x, hitPos.y, hitPos.z, shouldDoThirdPerson); - beam.color(0.5F, 0.8F, 0.9F, 2.0F); - beam.width(0.125F); - Minecraft.getMinecraft().effectRenderer.addEffect(beam); - - ParticleVortexFireFlash flash = new ParticleVortexFireFlash(player.world, pos.x, pos.y, pos.z, hitPos.x, hitPos.y, hitPos.z); - flash.color(0.5F, 0.8F, 0.9F, 1F); - flash.width(0.5F); - Minecraft.getMinecraft().effectRenderer.addEffect(flash); - - Vec3 line = hitPos.subtract(pos); - int circleParticles = (int) line.lengthVector(); - for(int i = 0; i < circleParticles; i ++){ - Vec3 circlePos = line.scale(i/(float)circleParticles).add(pos); - ParticleVortexCircle c = new ParticleVortexCircle(player.worldObj, circlePos.x, circlePos.y, circlePos.z, 0.5F+player.worldObj.rand.nextFloat()*0.3F); - c.color(0.5F, 0.8F, 0.9F, 0.15F); - c.lifetime((int) (15+(i/(float)circleParticles)*10)); - Minecraft.getMinecraft().effectRenderer.addEffect(c); - } - - int extraParticles = (int) line.lengthVector(); - for(int i = 0; i < extraParticles; i ++){ - Vec3d circlePos = line.scale((i/(float)circleParticles)*0.25).add(pos); - float randX = (float) (player.worldObj.rand.nextGaussian()-0.5) * 0.01F; - float randY = (float) (player.worldObj.rand.nextGaussian()-0.5) * 0.01F; - float randZ = (float) (player.worldObj.rand.nextGaussian()-0.5) * 0.01F; - ParticleVortexParticle c = new ParticleVortexParticle(player.worldObj, circlePos.x+randX, circlePos.y+randY, circlePos.z+randZ, 0.5F); - c.color(0.5F, 0.8F, 0.9F, 0.15F); - c.lifetime(30); - Minecraft.getMinecraft().effectRenderer.addEffect(c); - } - - ParticleVortexGlow glow = new ParticleVortexGlow(player.worldObj, pos.x, pos.y, pos.z, 2F); - glow.color(0.3F, 0.7F, 1F, 0.5F); - glow.lifetime(15); - Minecraft.getMinecraft().effectRenderer.addEffect(glow); - - if(hitNormal != null){ - Vec3d sparkAxis = line.normalize().scale(0.25); - switch(r.sideHit.getAxis()){ - case X: - sparkAxis = new Vec3d(-sparkAxis.x, sparkAxis.y, sparkAxis.z); - break; - case Y: - sparkAxis = new Vec3d(sparkAxis.x, -sparkAxis.y, sparkAxis.z); - break; - case Z: - sparkAxis = new Vec3d(sparkAxis.x, sparkAxis.y, -sparkAxis.z); - break; - } - tag = new NBTTagCompound(); - tag.setString("type", "spark"); - tag.setString("mode", "coneBurst"); - tag.setDouble("posX", hitPos.x); - tag.setDouble("posY", hitPos.y); - tag.setDouble("posZ", hitPos.z); - tag.setDouble("dirX", sparkAxis.x); - tag.setDouble("dirY", sparkAxis.y+0.1); - tag.setDouble("dirZ", sparkAxis.z); - tag.setFloat("r", 0.2F); - tag.setFloat("g", 0.8F); - tag.setFloat("b", 0.9F); - tag.setFloat("a", 1.5F); - tag.setInteger("lifetime", 20); - tag.setInteger("randLifetime", 30); - tag.setFloat("width", 0.015F); - tag.setFloat("length", 0.5F); - tag.setFloat("gravity", 0.05F); - tag.setFloat("angle", 70F); - tag.setInteger("count", 15); - tag.setFloat("randomVelocity", 0.1F); - MainRegistry.proxy.effectNT(tag); - - ParticleVortexHit hit = new ParticleVortexHit(player.world, hitPos.x, hitPos.y, hitPos.z, 2.5F+player.world.rand.nextFloat()*0.5F, 90); - hit.color(0.4F, 0.8F, 1F, 0.25F); - hit.lifetime(20); - ParticleVortexHit hit2 = new ParticleVortexHit(player.world, hitPos.x, hitPos.y, hitPos.z, 2.5F+player.world.rand.nextFloat()*0.5F, -90); - hit2.color(0.4F, 0.8F, 1F, 0.25F); - hit2.lifetime(20); - Minecraft.getMinecraft().effectRenderer.addEffect(hit); - Minecraft.getMinecraft().effectRenderer.addEffect(hit2); - } - - MainRegistry.proxy.setRecoil(3); - lastFireTime = System.currentTimeMillis(); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean hasCustomHudElement() { - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public void renderHud(ScaledResolution res, GuiIngame gui, ItemStack stack, float partialTicks) { - float x = res.getScaledWidth()/2; - float y = res.getScaledHeight()/2; - - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.vortex_hud_reticle); - GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); - GL11.glColor4f(0.4F, 0.9F, 0.9F, 1.0F); - GL11.glEnable(GL11.GL_BLEND); - GlStateManager.tryBlendFuncSeparate(SourceFactor.SRC_ALPHA, DestFactor.ONE, SourceFactor.ONE, DestFactor.ZERO); - RenderHelper.drawGuiRect(x - 11F, y - 11F, 0, 0, 22, 22, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.vortex_hud_circle); - - //Running off of system time gives less wonky results than relying on server updating the nbt tag. - long time = System.currentTimeMillis(); - - //float cooldown = (this.mainConfig.rateOfFire-getDelay(stack)+partialTicks)/(float)this.mainConfig.rateOfFire; - //Adding 0.05 so it doesn't start at nothing makes it look better in my opinion. - //It's 55 instead of 50 (50 ms in one tick) because xon lets you fire slightly before the cooldown is over. This extends the cooldown slightly beyond the real one. - float cooldown = MathHelper.clamp((time-lastFireTime)/(float)(mainConfig.rateOfFire*55), 0, 1)+0.05F; - final int SUBDIVISIONS = 64; - Tessellator tes = Tessellator.instance; - tes.startDrawing(GL11.GL_TRIANGLE_FAN); - - tes.setColorRGBA_F(0.4F, 0.9F, 0.9F, 0.4F); - tes.addVertexWithUV(x, y, 0, 0.5, 0.5); - - for(int i = 0; i < SUBDIVISIONS+1; i ++){ - //Should be quite fast because MathHelper uses a sin table... right? - float ratio = i/(float)SUBDIVISIONS; - float x2 = MathHelper.sin((float) (ratio*Math.PI*2+0.5*Math.PI)); - float y2 = MathHelper.cos((float) (ratio*Math.PI*2+0.5*Math.PI)); - float alphaMult = 1-ratio < cooldown ? 1 : 0; - buf.pos(x+x2*11, y+y2*11, 0).tex(BobMathUtil.remap01(x2, -1, 1), BobMathUtil.remap01(y2, -1, 1)).color(0.4F, 0.9F, 0.9F, 0.4F*alphaMult).endVertex(); - } - tes.draw(); - - GlStateManager.tryBlendFuncSeparate(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA, SourceFactor.ONE, DestFactor.ZERO); - GlStateManager.disableBlend(); - }*/ -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java index e137eda14..b5e040bb3 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java +++ b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java @@ -5,7 +5,6 @@ import java.util.List; import org.lwjgl.input.Mouse; import com.hbm.config.GeneralConfig; -import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; @@ -131,6 +130,9 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { for(int i = 0; i < bullets; i++) { spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); } + + if(player instanceof EntityPlayerMP) + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); setCharge(stack, getCharge(stack) - config.dischargePerShot);; } @@ -138,19 +140,9 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { world.playSoundAtEntity(player, mainConfig.firingSound, 1.0F, mainConfig.firingPitch); } - protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - - EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, config, player); - world.spawnEntityInWorld(bullet); - - if(this.mainConfig.animations.containsKey(AnimType.CYCLE) && player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - - } - public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - if(mainConfig.firingMode == mainConfig.FIRE_MANUAL && main && tryShoot(stack, world, player, main)) { + if(mainConfig.firingMode == GunConfiguration.FIRE_MANUAL && main && tryShoot(stack, world, player, main)) { fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); diff --git a/src/main/java/com/hbm/packet/GunAnimationPacket.java b/src/main/java/com/hbm/packet/GunAnimationPacket.java index 1fb244f01..1699d1d9e 100644 --- a/src/main/java/com/hbm/packet/GunAnimationPacket.java +++ b/src/main/java/com/hbm/packet/GunAnimationPacket.java @@ -66,6 +66,11 @@ public class GunAnimationPacket implements IMessage { if(animation == null && type == AnimType.RELOAD_EMPTY) { animation = base.getAnimation(stack, AnimType.RELOAD); } + + // Fallback to regular CYCLE if no ALT_CYCLE exists + if(animation == null && type == AnimType.ALT_CYCLE) { + animation = base.getAnimation(stack, AnimType.CYCLE); + } if(animation != null) { boolean isReloadAnimation = type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE || type == AnimType.RELOAD_EMPTY; From 1de796fec5523aab58ea517f83332f82ae4dba69 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 1 Feb 2024 21:56:51 +1100 Subject: [PATCH 144/376] Add animations to SPAS-12 --- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 32 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../item/weapon/ItemRenderWeaponSpas12.java | 49 +- .../hbm/models/weapons/animations/spas12.json | 1 + .../assets/hbm/models/weapons/spas-12.obj | 4000 +++++++++-------- .../hbm/textures/models/weapons/spas-12.png | Bin 17952 -> 19221 bytes 6 files changed, 2157 insertions(+), 1926 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/animations/spas12.json diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index ea2f4b24a..5ff3a41b0 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -10,6 +10,7 @@ import com.hbm.items.ItemAmmoEnums.Ammo12Gauge; import com.hbm.items.ModItems; import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.main.ResourceManager; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.particle.SpentCasing; @@ -17,7 +18,6 @@ import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.BusAnimationSequence.Dimension; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; @@ -88,11 +88,12 @@ public class Gun12GaugeFactory { GunConfiguration config = new GunConfiguration(); - config.rateOfFire = 25; + config.rateOfFire = 20; config.roundsPerCycle = 1; config.gunMode = GunConfiguration.MODE_NORMAL; config.firingMode = GunConfiguration.FIRE_MANUAL; config.reloadDuration = 10; + config.emptyReloadAdditionalDuration = 5; config.firingDuration = 5; config.ammoCap = 8; config.durability = 2500; @@ -108,20 +109,17 @@ public class Gun12GaugeFactory { config.comment.add("Alt-fire with Mouse 2 (Right-click) to fire 2 shells at once"); config.config = HbmCollection.g12hs; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("SPAS_RECOIL", new BusAnimationSequence() - .addKeyframePosition(0, 0, -2, 100) - .addKeyframePosition(0, 0, 0, 200) - .addKeyframeRotation(-10, 0, 5, 100) - .addKeyframeRotation(0, 0, 0, 200) - ) - .addBus("SPAS_PUMP", new BusAnimationSequence() - .addKeyframe(Dimension.TZ, 0, 450) - .addKeyframe(Dimension.TZ, -1.8, 200) - .addKeyframe(Dimension.TZ, 0, 200) - ) - ); + + config.reloadAnimationsSequential = true; + + config.loadAnimations = i -> { + config.animations.put(AnimType.CYCLE, ResourceManager.spas_12_anim.get("Fire")); + config.animations.put(AnimType.ALT_CYCLE, ResourceManager.spas_12_anim.get("FireAlt")); + config.animations.put(AnimType.RELOAD, ResourceManager.spas_12_anim.get("ReloadStart")); + config.animations.put(AnimType.RELOAD_EMPTY, ResourceManager.spas_12_anim.get("ReloadEmptyStart")); + config.animations.put(AnimType.RELOAD_CYCLE, ResourceManager.spas_12_anim.get("Reload")); + config.animations.put(AnimType.RELOAD_END, ResourceManager.spas_12_anim.get("ReloadEnd")); + }; config.ejector = EJECTOR_SPAS; @@ -290,7 +288,7 @@ public class Gun12GaugeFactory { config.reloadType = 1; config.ammoCap = 24; config.reloadDuration = 20; - config.reloadSound = config.RSOUND_MAG; + config.reloadSound = GunConfiguration.RSOUND_MAG; config.reloadSoundEnd = true; config.name += "Drum"; return config; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 0edf21cfc..e45982a22 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -848,6 +848,7 @@ public class ResourceManager { public static final HashMap cursed_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/cursed.json")); public static final HashMap novac_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/novac.json")); public static final HashMap ks23_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/ks23.json")); + public static final HashMap spas_12_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/spas12.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java index d35d9a8f5..4fff46dd0 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java @@ -1,7 +1,12 @@ package com.hbm.render.item.weapon; +import java.awt.Color; + import org.lwjgl.opengl.GL11; +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.ResourceManager; import com.hbm.render.anim.HbmAnimations; @@ -47,16 +52,37 @@ public class ItemRenderWeaponSpas12 implements IItemRenderer { double s0 = 0.5D; GL11.glRotated(25, 0, 0, 1); GL11.glTranslated(0, -0.8, 0.1); - GL11.glRotated(80, 0, 1, 0); + GL11.glRotated(-100, 0, 1, 0); GL11.glScaled(s0, s0, s0); - HbmAnimations.applyRelevantTransformation("SPAS_RECOIL"); - + HbmAnimations.applyRelevantTransformation("MainBody"); ResourceManager.spas_12.renderPart("MainBody"); - HbmAnimations.applyRelevantTransformation("SPAS_PUMP"); - + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("PumpGrip"); ResourceManager.spas_12.renderPart("PumpGrip"); + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); + + HbmAnimations.applyRelevantTransformation("Shell"); + + ItemGunBase gun = (ItemGunBase)item.getItem(); + BulletConfiguration bullet = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(ItemGunBase.getMagType(item))); + int[] colors = bullet.spentCasing.getColors(); + + Color shellColor = new Color(colors[1]); + GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); + ResourceManager.spas_12.renderPart("Shell"); + + Color shellForeColor = new Color(colors[0]); + GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); + ResourceManager.spas_12.renderPart("ShellFore"); + + GL11.glColor3f(1F, 1F, 1F); + GL11.glPopMatrix(); break; @@ -65,9 +91,9 @@ public class ItemRenderWeaponSpas12 implements IItemRenderer { double scale = 0.25D; GL11.glScaled(scale, scale, scale); GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(2F, -1F, -2F); + GL11.glRotatef(190, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(-2F, -1F, 2F); ResourceManager.spas_12.renderAll(); @@ -77,7 +103,7 @@ public class ItemRenderWeaponSpas12 implements IItemRenderer { double s1 = 0.25D; GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, 0, -4); + GL11.glTranslated(0, 0, 4); ResourceManager.spas_12.renderAll(); @@ -91,7 +117,7 @@ public class ItemRenderWeaponSpas12 implements IItemRenderer { GL11.glTranslated(12, 13.5, 0); GL11.glRotated(-90, 0, 1, 0); GL11.glRotated(-135, 1, 0, 0); - GL11.glScaled(s, s, -s); + GL11.glScaled(s, s, s); ResourceManager.spas_12.renderAll(); @@ -99,9 +125,6 @@ public class ItemRenderWeaponSpas12 implements IItemRenderer { default: break; } - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/models/weapons/animations/spas12.json b/src/main/resources/assets/hbm/models/weapons/animations/spas12.json new file mode 100644 index 000000000..a0da01372 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/spas12.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"MainBody": {"location": {"z": [[-0.0, 0.0], [0.7581773996353149, 16.666666666666668], [0.8946337699890137, 50.0], [1.6292921304702759, 50.0], [0.27919262647628784, 383.3333333333333], [0.13398613035678864, 33.33333333333337], [-0.08360463380813599, 83.33333333333337], [-0.28197288513183594, 116.66666666666652], [-0.4585123360157013, 83.33333333333337], [-0.0, 216.66666666666663]], "y": [[0.0, 0.0], [-0.055255696177482605, 16.666666666666668], [0.06926095485687256, 50.0], [-0.035571567714214325, 50.0], [0.14532151818275452, 383.3333333333333], [0.14532163739204407, 33.33333333333337], [0.2893771231174469, 83.33333333333337], [0.059010088443756104, 116.66666666666652], [0.3883959650993347, 83.33333333333337], [0.0, 216.66666666666663]], "x": [[0.0, 0.0], [0.09942026436328888, 16.666666666666668], [-0.04042813181877136, 50.0], [0.13011114299297333, 50.0], [0.026651103049516678, 383.3333333333333], [0.0, 33.33333333333337], [-0.11603647470474243, 83.33333333333337], [-0.3945091962814331, 116.66666666666652], [-0.30177658796310425, 83.33333333333337], [0.0, 216.66666666666663]]}, "rotation_euler": {"x": [[0.0, 0.0], [-8.462898079780109, 16.666666666666668], [19.266058025827537, 83.33333333333333], [1.500494163239071, 233.33333333333331], [6.633028929431163, 216.66666666666669], [8.546770241466927, 100.0], [12.210589580193902, 133.33333333333337], [7.617799627548077, 66.66666666666663], [0.539266273417544, 116.66666666666663], [0.0, 33.33333333333337]], "z": [[-0.0, 0.0], [-2.3773901342652737, 16.666666666666668], [-0.0, 316.66666666666663], [-0.0, 216.66666666666669], [-2.5606105990811003, 100.0], [-8.612766944322175, 133.33333333333337], [-9.193280943580838, 66.66666666666663], [-1.0644272457036594, 116.66666666666663], [-0.0, 33.33333333333337]], "y": [[0.0, 0.0], [-2.661507434160998, 16.666666666666668], [-0.0, 316.66666666666663], [0.0, 216.66666666666669], [5.899426058323597, 100.0], [-1.813550761204728, 133.33333333333337], [-5.824772090695357, 66.66666666666663], [-0.9415905623492115, 116.66666666666663], [0.0, 33.33333333333337]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0], [-0.0, 550.0], [1.3243759870529175, 100.0], [1.0643759965896606, 216.66666666666674], [-0.0, 66.66666666666663]]}}}, "FireAlt": {"MainBody": {"location": {"x": [[0.0, 0.0], [0.0, 183.33333333333331], [0.0, 366.6666666666667], [-0.11603647470474243, 66.66666666666674], [-0.3945091962814331, 83.33333333333326], [-0.30177658796310425, 83.33333333333337], [0.0, 233.33333333333326]], "z": [[-0.0, 0.0], [1.8780767917633057, 33.333333333333336], [0.46677228808403015, 149.99999999999997], [0.13398613035678864, 366.6666666666667], [-0.08360463380813599, 66.66666666666674], [-0.28197288513183594, 83.33333333333326], [-0.4585123360157013, 83.33333333333337], [-0.0, 233.33333333333326]], "y": [[0.0, 0.0], [0.7429239749908447, 50.0], [1.0745543241500854, 133.33333333333331], [0.14532163739204407, 366.6666666666667], [0.2893771231174469, 66.66666666666674], [0.059010088443756104, 83.33333333333326], [0.3883959650993347, 83.33333333333337], [0.0, 233.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 16.666666666666668], [22.4874603988034, 83.33333333333333], [13.903672239582296, 50.0], [6.633028929431163, 83.33333333333334], [8.546770241466927, 416.66666666666663], [12.210589580193902, 100.0], [7.269988465764457, 66.66666666666663], [0.0, 150.0]], "z": [[-0.0, 0.0], [-11.095223957599051, 100.0], [-0.0, 133.33333333333334], [-2.5606105990811003, 416.66666666666663], [-8.612766944322175, 100.0], [-12.303416119882606, 66.66666666666663], [-0.0, 150.0]], "y": [[0.0, 0.0], [-2.9238404860292015, 100.0], [0.0, 133.33333333333334], [5.899426058323597, 416.66666666666663], [-1.813550761204728, 100.0], [-6.207043691275808, 66.66666666666663], [0.0, 150.0]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0], [-0.0, 550.0], [1.3243759870529175, 100.0], [1.0643759965896606, 216.66666666666674], [-0.0, 66.66666666666663]]}}}, "Reload": {"MainBody": {"location": {"x": [[-0.7295733690261841, 0.0], [-0.7295733690261841, 83.33333333333333], [-0.7295733690261841, 99.99999999999999], [-0.5556169748306274, 133.33333333333331], [-0.6492857933044434, 116.66666666666674], [-0.7295733690261841, 100.0]], "z": [[-0.29214829206466675, 0.0], [-0.29214829206466675, 83.33333333333333], [-0.29214829206466675, 99.99999999999999], [-0.30703651905059814, 133.33333333333331], [-0.29901978373527527, 116.66666666666674], [-0.29214829206466675, 100.0]], "y": [[0.2915276288986206, 0.0], [0.2915276288986206, 83.33333333333333], [0.2915276288986206, 99.99999999999999], [0.4859994053840637, 133.33333333333331], [0.38128381967544556, 116.66666666666674], [0.2915276288986206, 100.0]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [1.6652197564429725, 83.33333333333333], [2.2122143889063857, 133.33333333333337], [9.618481563755287, 116.66666666666663], [5.616534990827301, 100.00000000000006], [2.2122143889063857, 100.0]], "z": [[-48.21786729477217, 0.0], [-45.59814140842461, 83.33333333333333], [-48.21786729477217, 133.33333333333337], [-53.60401787046082, 116.66666666666663], [-50.637738430910574, 100.00000000000006], [-48.21786729477217, 100.0]], "y": [[27.10300512666912, 0.0], [27.402903365198746, 83.33333333333333], [27.10300512666912, 133.33333333333337], [28.044826741511347, 116.66666666666663], [27.549100149288286, 100.00000000000006], [27.10300512666912, 100.0]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [-5.029141902923584e-08, 133.33333333333334], [0.004309347365051508, 83.33333333333334], [0.004309249576181173, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[1.5591249465942383, 0.0], [1.0179417133331299, 133.33333333333334], [-0.1231224536895752, 83.33333333333334], [-0.11966821551322937, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.6872029304504395, 0.0], [-2.3433218002319336, 133.33333333333334], [-1.7275460958480835, 83.33333333333334], [-0.3831302523612976, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [-0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}, "ReloadEmptyStart": {"MainBody": {"location": {"x": [[0.0, 0.0], [-0.3959049880504608, 100.0], [-0.8907862305641174, 50.0], [-0.912574291229248, 133.33333333333331], [-0.8907862305641174, 183.33333333333337], [-0.7295733690261841, 333.3333333333333]], "z": [[-0.0, 0.0], [-0.04771782457828522, 100.0], [-0.10736510902643204, 50.0], [-0.1299014389514923, 133.33333333333331], [-0.10736510902643204, 183.33333333333337], [-0.29214829206466675, 333.3333333333333]], "y": [[0.0, 0.0], [0.08693332225084305, 100.0], [0.1955999732017517, 50.0], [0.07320505380630493, 133.33333333333331], [0.1955999732017517, 183.33333333333337], [0.2915276288986206, 333.3333333333333]]}, "rotation_euler": {"x": [[0.0, 0.0], [5.215149959628216, 116.66666666666667], [14.341662388977594, 66.66666666666664], [10.053024175167023, 150.0], [14.341662388977594, 183.33333333333331], [9.347183888601442, 83.33333333333337], [3.4013761500584048, 133.33333333333326], [2.2122143889063857, 66.66666666666674]], "z": [[-0.0, 0.0], [17.232944643893813, 116.66666666666667], [47.39059819759481, 66.66666666666664], [51.027851515545024, 150.0], [47.39059819759481, 183.33333333333331], [8.022402104733061, 83.33333333333337], [-38.844487923156436, 133.33333333333326], [-48.21786729477217, 66.66666666666674]], "y": [[0.0, 0.0], [-3.394506473857253, 116.66666666666667], [-9.334892963190004, 66.66666666666664], [-8.375116488567105, 150.0], [-9.334892963190004, 183.33333333333331], [5.668946020536571, 83.33333333333337], [23.530662511496125, 133.33333333333326], [27.10300512666912, 66.66666666666674]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0], [-0.0, 183.33333333333331], [1.0550689697265625, 66.66666666666669], [1.0550689697265625, 166.66666666666669], [-0.0, 99.99999999999994]]}}, "Shell": {"location": {"x": [[1.089231252670288, 0.0], [0.8341609239578247, 150.0], [1.3178642988204956, 100.0], [1.0271152257919312, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[1.2379006147384644, 0.0], [1.0393552780151367, 150.0], [1.1692359447479248, 100.0], [0.8952870965003967, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[-2.3190526962280273, 0.0], [-3.043679714202881, 150.0], [0.42155078053474426, 100.0], [0.3692183494567871, 33.333333333333314], [0.0, 66.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 150.0], [-4.686586806083493, 100.0], [-4.686586806083493, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[-0.0, 0.0], [-0.0, 150.0], [-0.5807879005165506, 100.0], [-0.5807879005165506, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[0.0, 0.0], [0.0, 150.0], [15.393064143768921, 100.0], [15.393064143768921, 33.333333333333314], [0.0, 66.66666666666669]]}}}, "ReloadEnd": {"MainBody": {"location": {"x": [[-0.7295733690261841, 0.0], [-0.5471799969673157, 166.66666666666666], [-0.15633714199066162, 100.00000000000003], [0.0, 150.0]], "z": [[-0.29214829206466675, 0.0], [-0.21911121904850006, 166.66666666666666], [-0.06260320544242859, 100.00000000000003], [-0.0, 150.0]], "y": [[0.2915276288986206, 0.0], [0.21864572167396545, 166.66666666666666], [0.0624702125787735, 100.00000000000003], [0.0, 150.0]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [1.6591607383189364, 166.66666666666666], [0.47404597097185575, 100.00000000000003], [0.0, 150.0]], "z": [[-48.21786729477217, 0.0], [-36.16339961730548, 166.66666666666666], [-10.332401110335347, 100.00000000000003], [-0.0, 150.0]], "y": [[27.10300512666912, 0.0], [20.327254271888663, 166.66666666666666], [5.807786690890005, 100.00000000000003], [0.0, 150.0]]}}}, "ReloadStart": {"MainBody": {"location": {"x": [[0.0, 0.0], [-0.7295733690261841, 166.66666666666666], [-0.7152981162071228, 50.00000000000003], [-0.7095879912376404, 66.66666666666663], [-0.7295733690261841, 116.66666666666669]], "z": [[-0.0, 0.0], [-0.29214829206466675, 166.66666666666666], [-0.28362342715263367, 50.00000000000003], [-0.28021347522735596, 66.66666666666663], [-0.29214829206466675, 116.66666666666669]], "y": [[0.0, 0.0], [0.2915276288986206, 166.66666666666666], [0.4171614646911621, 50.00000000000003], [0.4674150049686432, 66.66666666666663], [0.2915276288986206, 116.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [2.2122143889063857, 166.66666666666666], [5.485797059263618, 50.00000000000003], [6.795230554293333, 66.66666666666663], [2.2122143889063857, 116.66666666666669]], "z": [[-0.0, 0.0], [-48.21786729477217, 166.66666666666666], [-50.902555110315724, 50.00000000000003], [-51.976428187476394, 66.66666666666663], [-48.21786729477217, 116.66666666666669]], "y": [[0.0, 0.0], [27.10300512666912, 166.66666666666666], [26.843731145775436, 50.00000000000003], [26.74002155341796, 66.66666666666663], [27.10300512666912, 116.66666666666669]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [1.2852251529693604e-07, 133.33333333333334], [0.0, 83.33333333333334], [0.004309284035116434, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[-0.0, 0.0], [0.8857776522636414, 133.33333333333334], [-0.0984112098813057, 83.33333333333334], [-0.2392037808895111, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.806074380874634, 0.0], [-2.2905659675598145, 133.33333333333334], [-1.7331905364990234, 83.33333333333334], [-0.3817155361175537, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [-0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}}, "offset": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/spas-12.obj b/src/main/resources/assets/hbm/models/weapons/spas-12.obj index bd8f216c6..2410da7c6 100644 --- a/src/main/resources/assets/hbm/models/weapons/spas-12.obj +++ b/src/main/resources/assets/hbm/models/weapons/spas-12.obj @@ -1,738 +1,769 @@ -# Blender v2.79 (sub 0) OBJ File: 'spas-ing out.blend' +# Blender 4.0.1 # www.blender.org -mtllib spas-123.mtl -o PumpGrip -v -0.443199 1.647273 5.814597 -v -0.443199 1.647273 5.001840 -v 0.443199 1.647273 5.814597 -v 0.443199 1.647273 5.001840 -v -0.510668 1.652728 4.763550 -v 0.510668 1.652728 4.763550 -v -0.443199 1.647273 6.244457 -v 0.443199 1.647273 6.244457 -v -0.443199 1.647273 7.247699 -v 0.443199 1.647273 7.247699 -v -0.443199 1.378114 7.539924 -v 0.443199 1.378114 7.539924 -v -0.443199 1.079549 7.539924 -v 0.443199 1.079549 7.539924 -v -0.248881 0.889651 5.814597 -v -0.443199 1.060285 5.814597 -v -0.443199 1.060285 5.001840 -v -0.248881 0.889651 5.001840 -v 0.443199 1.060285 5.814597 -v 0.248881 0.889651 5.814597 -v 0.248881 0.889651 5.001840 -v 0.443199 1.060285 5.001840 -v -0.316349 0.779774 4.763550 -v -0.510668 0.950408 4.763550 -v 0.510668 0.950408 4.763550 -v 0.316349 0.779774 4.763550 -v -0.248881 0.780984 6.244457 -v -0.443199 0.951618 6.244457 -v 0.443199 0.951618 6.244457 -v 0.248881 0.780984 6.244457 -v -0.248881 0.780984 7.247699 -v -0.443199 0.951618 7.247699 -v 0.443199 0.951618 7.247699 -v 0.248881 0.780984 7.247699 -v -0.443199 1.032399 7.594676 -v -0.248881 0.898079 7.750655 -v 0.248881 0.898079 7.750655 -v 0.443199 1.032399 7.594676 -vt 0.280193 0.278528 -vt 0.202899 0.278528 -vt 0.217391 0.263804 -vt 0.275362 0.595092 -vt 0.207729 0.625767 -vt 0.207729 0.595092 -vt 0.275362 0.650307 -vt 0.207729 0.650307 -vt 0.260870 0.680982 -vt 0.265700 0.263804 -vt 0.280193 0.337423 -vt 0.202899 0.337423 -vt 0.275362 0.625767 -vt 0.222222 0.680982 -vt 0.207729 0.662577 -vt 0.275362 0.662577 -vt 0.125604 0.490798 -vt 0.077295 0.533742 -vt 0.077295 0.490798 -vt 0.207729 0.361963 -vt 0.275362 0.361963 -vt 0.144928 0.490798 -vt 0.202899 0.533742 -vt 0.144928 0.533742 -vt 0.275362 0.460123 -vt 0.207729 0.496933 -vt 0.207729 0.460123 -vt 0.000000 0.490798 -vt 0.057971 0.398773 -vt 0.057971 0.490798 -vt 0.057971 0.533742 -vt -0.000000 0.644172 -vt 0.000000 0.533742 -vt 0.077295 0.398773 -vt 0.125604 0.368098 -vt 0.125604 0.398773 -vt 0.202899 0.398773 -vt 0.144928 0.398773 -vt 0.144928 0.644172 -vt 0.202899 0.368098 -vt 0.000000 0.368098 -vt 0.057971 0.368098 -vt 0.125604 0.533742 -vt 0.077295 0.644172 -vt 0.275362 0.496933 -vt 0.057971 0.644172 -vt 0.048309 0.668712 -vt 0.019324 0.668712 -vt 0.188406 0.668712 -vt 0.154589 0.668712 -vt 0.125604 0.644172 -vt 0.077295 0.680982 -vt 0.077295 0.368098 -vt 0.144928 0.368098 -vt 0.144928 0.680982 -vt 0.125604 0.680982 -vt 0.057971 0.680982 -vt 0.202899 0.490798 -vt 0.000000 0.398773 -vt 0.202899 0.644172 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.7355 0.6775 -vn -0.0000 0.0000 1.0000 -vn 0.0000 0.7578 0.6525 -vn 0.3599 -0.9254 -0.1180 -vn -0.3422 -0.9327 -0.1137 -vn -0.3599 -0.9254 -0.1180 -vn 0.6688 0.7363 0.1026 -vn -0.6567 0.5705 -0.4932 -vn -0.6688 0.7363 0.1026 -vn 0.9224 -0.3836 -0.0454 -vn 0.7071 0.7071 0.0000 -vn 0.8977 -0.4369 -0.0574 -vn -0.7071 0.7071 0.0000 -vn -0.9071 -0.3651 0.2093 -vn -0.9224 -0.3836 -0.0454 -vn -0.8977 -0.4369 -0.0574 -vn -0.6337 0.7206 0.2813 -vn -0.3301 -0.9090 0.2545 -vn 0.3304 -0.8325 -0.4446 -vn 0.3301 -0.9090 0.2545 -vn 0.9071 -0.3651 0.2093 -vn 0.8988 -0.4352 0.0526 -vn 0.6567 0.5705 -0.4932 -vn -0.7868 -0.4159 -0.4559 -vn 0.3422 -0.9327 -0.1137 -vn -0.3430 -0.9334 0.1052 -vn 0.6337 0.7206 0.2813 -vn -0.8988 -0.4352 0.0526 -vn -0.8140 0.2421 0.5280 -vn -0.6269 0.3128 0.7135 -vn 0.6269 0.3128 0.7135 -vn 0.8140 0.2421 0.5280 -vn 0.3430 -0.9334 0.1052 -vn -0.3219 -0.2640 0.9092 -vn -0.3304 -0.8325 -0.4446 -vn 0.7868 -0.4159 -0.4559 -vn 0.7589 0.1068 0.6423 -vn 0.3219 -0.2640 0.9092 -vn -0.7589 0.1067 0.6423 -usemtl None -s off -f 24/1/1 25/2/1 26/3/1 -f 9/4/2 12/5/2 10/6/2 -f 12/5/3 13/7/3 14/8/3 -f 14/8/4 13/7/4 36/9/4 -f 26/3/1 23/10/1 24/1/1 -f 24/1/1 5/11/1 6/12/1 -f 6/12/1 25/2/1 24/1/1 -f 9/4/2 11/13/2 12/5/2 -f 12/5/3 11/13/3 13/7/3 -f 36/9/4 37/14/4 14/8/4 -f 38/15/4 14/8/4 37/14/4 -f 13/7/4 35/16/4 36/9/4 -s 1 -f 20/17/5 27/18/6 15/19/7 -f 4/20/8 5/11/9 2/21/10 -f 19/22/11 8/23/12 29/24/13 -f 1/25/14 8/26/12 3/27/12 -f 1/28/14 17/29/15 16/30/16 -f 2/21/10 3/27/12 4/20/8 -f 28/31/17 9/32/18 7/33/14 -f 18/34/19 26/35/20 21/36/21 -f 4/37/8 19/22/11 22/38/22 -f 8/23/12 33/39/23 29/24/13 -f 22/38/22 6/40/24 4/37/8 -f 17/29/15 5/41/9 24/42/25 -f 16/30/16 7/33/14 1/28/14 -f 30/43/26 31/44/27 27/18/6 -f 7/45/14 10/6/28 8/26/12 -f 32/46/29 13/47/30 11/48/31 -f 33/39/23 12/49/32 14/50/33 -f 34/51/34 36/52/35 31/44/27 -f 15/19/7 17/29/15 18/34/19 -f 21/36/21 19/22/11 20/17/5 -f 18/34/19 24/42/25 23/53/36 -f 21/36/21 25/54/37 22/38/22 -f 20/17/5 29/24/13 30/43/26 -f 15/19/7 28/31/17 16/30/16 -f 33/39/23 30/43/26 29/24/13 -f 28/31/17 31/44/27 32/46/29 -f 34/51/34 38/55/38 37/56/39 -f 35/57/40 31/44/27 36/52/35 -f 21/36/21 15/19/7 18/34/19 -f 20/17/5 30/43/26 27/18/6 -f 4/20/8 6/12/24 5/11/9 -f 19/22/11 3/58/12 8/23/12 -f 1/25/14 7/45/14 8/26/12 -f 1/28/14 2/59/10 17/29/15 -f 2/21/10 1/25/14 3/27/12 -f 28/31/17 32/46/29 9/32/18 -f 18/34/19 23/53/36 26/35/20 -f 4/37/8 3/58/12 19/22/11 -f 8/23/12 10/60/28 33/39/23 -f 22/38/22 25/54/37 6/40/24 -f 17/29/15 2/59/10 5/41/9 -f 16/30/16 28/31/17 7/33/14 -f 30/43/26 34/51/34 31/44/27 -f 7/45/14 9/4/18 10/6/28 -f 11/48/31 9/32/18 32/46/29 -f 32/46/29 35/57/40 13/47/30 -f 33/39/23 10/60/28 12/49/32 -f 14/50/33 38/55/38 33/39/23 -f 34/51/34 37/56/39 36/52/35 -f 15/19/7 16/30/16 17/29/15 -f 21/36/21 22/38/22 19/22/11 -f 18/34/19 17/29/15 24/42/25 -f 21/36/21 26/35/20 25/54/37 -f 20/17/5 19/22/11 29/24/13 -f 15/19/7 27/18/6 28/31/17 -f 33/39/23 34/51/34 30/43/26 -f 28/31/17 27/18/6 31/44/27 -f 34/51/34 33/39/23 38/55/38 -f 35/57/40 32/46/29 31/44/27 -f 21/36/21 20/17/5 15/19/7 o MainBody -v -0.363464 1.792314 -0.108580 -v 0.371539 1.792314 -0.108580 -v -0.363464 1.715535 -0.076778 -v 0.371539 1.715535 -0.076778 -v -0.363464 1.683733 0.000001 -v 0.371539 1.683733 0.000001 -v -0.363464 1.715535 0.076779 -v 0.371539 1.715535 0.076779 -v -0.363464 1.792314 0.108582 -v 0.371539 1.792314 0.108582 -v -0.363464 1.869092 0.076779 -v 0.371539 1.869092 0.076779 -v -0.363464 1.900895 0.000001 -v 0.371539 1.900895 0.000001 -v -0.363464 1.869092 -0.076778 -v 0.371539 1.869092 -0.076778 -v -0.363464 1.792314 -0.222732 -v -0.363464 1.634818 -0.157495 -v 0.371539 1.634818 -0.157495 -v 0.371539 1.792314 -0.222732 -v -0.363464 1.569581 0.000001 -v 0.371539 1.569581 0.000001 -v -0.363464 1.634818 0.157496 -v 0.371539 1.634818 0.157496 -v -0.363464 1.792314 0.222733 -v 0.371539 1.792314 0.222733 -v -0.363464 1.949810 0.157496 -v 0.371539 1.949810 0.157496 -v -0.363464 2.015046 0.000001 -v 0.371539 2.015046 0.000001 -v -0.363464 1.949810 -0.157495 -v 0.371539 1.949810 -0.157495 -v 0.469795 1.715535 -0.076778 -v 0.469795 1.792314 -0.108580 -v 0.469795 1.869092 -0.076778 -v 0.469795 1.900895 0.000001 -v 0.469795 1.869092 0.076779 -v 0.469795 1.792314 0.108582 -v 0.469795 1.715535 0.076779 -v 0.469795 1.683733 0.000001 -v -0.461720 1.792314 -0.108580 -v -0.461720 1.715535 -0.076778 -v -0.461720 1.683733 0.000001 -v -0.461720 1.715535 0.076779 -v -0.461720 1.792314 0.108582 -v -0.461720 1.869092 0.076779 -v -0.461720 1.900895 0.000001 -v -0.461720 1.869092 -0.076778 -v 0.355496 1.598891 -0.003962 -v 0.354740 1.977090 -0.058046 -v 0.341458 1.959609 1.873490 -v 0.340702 2.337807 1.873490 -v 0.341459 1.959608 3.930497 -v 0.340703 2.337807 3.930497 -v 0.340888 2.245078 2.671944 -v 0.341066 2.155873 2.708894 -v 0.341244 2.066667 2.671944 -v 0.340814 2.282028 2.582738 -v 0.341318 2.029717 2.582738 -v 0.340888 2.245078 2.493533 -v 0.341244 2.066667 2.493533 -v 0.341066 2.155873 2.456583 -v 0.340888 2.245078 2.292009 -v 0.341066 2.155873 2.328959 -v 0.341244 2.066667 2.292009 -v 0.340814 2.282028 2.202804 -v 0.341318 2.029717 2.202804 -v 0.340888 2.245078 2.113599 -v 0.341244 2.066667 2.113599 -v 0.341066 2.155873 2.076648 -v 0.340888 2.245078 2.859306 -v 0.341244 2.066667 2.859307 -v 0.341318 2.029717 2.948511 -v 0.341066 2.155873 2.822356 -v 0.340814 2.282028 2.948512 -v 0.341244 2.066667 3.037717 -v 0.340888 2.245078 3.037717 -v 0.341066 2.155873 3.203147 -v 0.341244 2.066667 3.240097 -v 0.341066 2.155873 3.074667 -v 0.340814 2.282028 3.329302 -v 0.340888 2.245078 3.240097 -v 0.341318 2.029717 3.329302 -v 0.340888 2.245078 3.418508 -v 0.341244 2.066667 3.418507 -v 0.341066 2.155873 3.455458 -v 0.357520 1.598891 -0.003962 -v 0.356764 1.977090 -0.058046 -v 0.343482 1.959609 1.873490 -v 0.342726 2.337808 1.873490 -v 0.343483 1.959609 3.930497 -v 0.342727 2.337807 3.930497 -v 0.342912 2.245078 2.671944 -v 0.343090 2.155873 2.708894 -v 0.343268 2.066667 2.671944 -v 0.342838 2.282028 2.582738 -v 0.343342 2.029717 2.582738 -v 0.342912 2.245078 2.493533 -v 0.343268 2.066667 2.493533 -v 0.343090 2.155873 2.456583 -v 0.342912 2.245078 2.292009 -v 0.343090 2.155873 2.328959 -v 0.343268 2.066667 2.292009 -v 0.342838 2.282028 2.202804 -v 0.343342 2.029717 2.202804 -v 0.342912 2.245078 2.113599 -v 0.343268 2.066667 2.113599 -v 0.343090 2.155873 2.076648 -v 0.342912 2.245078 2.859306 -v 0.343268 2.066667 2.859307 -v 0.343342 2.029717 2.948512 -v 0.343090 2.155873 2.822356 -v 0.342838 2.282028 2.948511 -v 0.343268 2.066667 3.037717 -v 0.342912 2.245078 3.037716 -v 0.343090 2.155873 3.203147 -v 0.343268 2.066667 3.240097 -v 0.343090 2.155873 3.074667 -v 0.342838 2.282028 3.329302 -v 0.342912 2.245078 3.240097 -v 0.343342 2.029717 3.329302 -v 0.342912 2.245078 3.418508 -v 0.343269 2.066667 3.418507 -v 0.343090 2.155873 3.455457 -v -0.346320 1.598892 -0.003962 -v -0.347076 1.977091 -0.058045 -v -0.353683 1.959627 1.873524 -v -0.354998 2.337825 1.873522 -v -0.374964 1.959569 3.930422 -v -0.376280 2.337767 3.930419 -v -0.362937 2.245073 2.671933 -v -0.363008 2.155867 2.708882 -v -0.362316 2.066663 2.671935 -v -0.362142 2.282025 2.582732 -v -0.361264 2.029716 2.582734 -v -0.361091 2.245078 2.493532 -v -0.360470 2.066668 2.493534 -v -0.360398 2.155874 2.456585 -v -0.359006 2.245084 2.292019 -v -0.359078 2.155878 2.328968 -v -0.358385 2.066674 2.292021 -v -0.358211 2.282036 2.202818 -v -0.357334 2.029727 2.202820 -v -0.357160 2.245089 2.113619 -v -0.356539 2.066679 2.113620 -v -0.356467 2.155885 2.076671 -v -0.364875 2.245068 2.859286 -v -0.364254 2.066658 2.859288 -v -0.365049 2.029706 2.948488 -v -0.364182 2.155864 2.822339 -v -0.365926 2.282015 2.948486 -v -0.366100 2.066653 3.037689 -v -0.366721 2.245063 3.037687 -v -0.368122 2.155853 3.203109 -v -0.368194 2.066647 3.240057 -v -0.366793 2.155857 3.074636 -v -0.369866 2.282004 3.329256 -v -0.368815 2.245057 3.240056 -v -0.368988 2.029695 3.329258 -v -0.370660 2.245052 3.418457 -v -0.370040 2.066642 3.418458 -v -0.370732 2.155846 3.455406 -v -0.348344 1.598881 -0.003983 -v -0.349100 1.977080 -0.058066 -v -0.355707 1.959616 1.873504 -v -0.357022 2.337814 1.873501 -v -0.376988 1.959558 3.930400 -v -0.378304 2.337756 3.930398 -v -0.364960 2.245062 2.671912 -v -0.365032 2.155856 2.708861 -v -0.364340 2.066652 2.671914 -v -0.364166 2.282014 2.582711 -v -0.363288 2.029705 2.582713 -v -0.363114 2.245067 2.493511 -v -0.362494 2.066657 2.493513 -v -0.362422 2.155863 2.456564 -v -0.361030 2.245073 2.291999 -v -0.361102 2.155867 2.328947 -v -0.360409 2.066663 2.292000 -v -0.360235 2.282025 2.202798 -v -0.359358 2.029716 2.202799 -v -0.359184 2.245078 2.113598 -v -0.358563 2.066668 2.113599 -v -0.358491 2.155874 2.076650 -v -0.366899 2.245057 2.859265 -v -0.366278 2.066647 2.859267 -v -0.367073 2.029694 2.948467 -v -0.366206 2.155853 2.822318 -v -0.367950 2.282004 2.948465 -v -0.368124 2.066642 3.037668 -v -0.368745 2.245051 3.037666 -v -0.370146 2.155842 3.203087 -v -0.370218 2.066636 3.240036 -v -0.368817 2.155845 3.074614 -v -0.371890 2.281993 3.329235 -v -0.370838 2.245046 3.240035 -v -0.371012 2.029684 3.329237 -v -0.372684 2.245041 3.418436 -v -0.372064 2.066631 3.418437 -v -0.372756 2.155835 3.455384 -v 0.341459 1.956579 3.930497 -v 0.341458 1.956579 1.873490 -v -0.374964 1.956539 3.930422 -v -0.353683 1.956597 1.873524 -v -0.004690 2.368911 3.653735 -v 0.120989 2.316853 3.653735 -v 0.173046 2.191175 3.653735 -v 0.120989 2.065497 3.653736 -v -0.004690 2.013439 3.653736 -v -0.130368 2.065497 3.653735 -v -0.182425 2.191175 3.653735 -v -0.130368 2.316853 3.653735 -v -0.406867 1.940766 4.791202 -v -0.406867 1.940766 3.592421 -v 0.380420 1.940766 4.791202 -v 0.380420 1.940766 3.592420 -v -0.354001 1.954725 1.875823 -v 0.344047 1.954725 1.875823 -v -0.354001 1.954725 3.879303 -v 0.344048 1.954725 3.879303 -v -0.232148 2.451141 4.791202 -v -0.406867 2.345249 4.791202 -v -0.406867 2.345249 3.592421 -v -0.232149 2.451141 3.592421 -v 0.380420 2.345248 4.791202 -v 0.205702 2.451140 4.791202 -v 0.205701 2.451140 3.592420 -v 0.380420 2.345248 3.592420 -v 0.173331 2.039119 4.791202 -v 0.111260 2.065497 4.748067 -v 0.236315 2.191175 4.791202 -v 0.163318 2.191175 4.748067 -v -0.014802 1.961192 4.791202 -v -0.014418 2.013439 4.748067 -v -0.202934 2.039119 4.791203 -v -0.140096 2.065497 4.748067 -v -0.202934 2.343231 4.791203 -v -0.140096 2.316853 4.748067 -v -0.265918 2.191175 4.791202 -v -0.192154 2.191175 4.748067 -v 0.173331 2.343231 4.791203 -v 0.111260 2.316853 4.748067 -v -0.014801 2.421158 4.791202 -v -0.014418 2.368911 4.748067 -v 0.000000 1.315694 7.118857 -v 0.000000 1.315694 7.847215 -v 0.118402 1.266650 7.118857 -v 0.118402 1.266650 7.847215 -v 0.167446 1.148248 7.118857 -v 0.167446 1.148248 7.847215 -v 0.118402 1.029846 7.118857 -v 0.118402 1.029846 7.847215 -v -0.000000 0.980802 7.118857 -v -0.000000 0.980802 7.847215 -v -0.118402 1.029846 7.118857 -v -0.118402 1.029846 7.847215 -v -0.167446 1.148248 7.118857 -v -0.167446 1.148248 7.847215 -v -0.118402 1.266650 7.118857 -v -0.118402 1.266650 7.847215 -v 0.142582 1.290830 7.847215 -v 0.000000 1.349889 7.847215 -v 0.201641 1.148248 7.847215 -v 0.142582 1.005666 7.847215 -v -0.000000 0.946607 7.847215 -v -0.142582 1.005666 7.847215 -v -0.201641 1.148248 7.847215 -v -0.142582 1.290830 7.847215 -v 0.115253 1.263501 8.443404 -v -0.000000 1.311241 8.443404 -v 0.162993 1.148248 8.443404 -v 0.115253 1.032995 8.443404 -v -0.000000 0.985255 8.443404 -v -0.115253 1.032995 8.443404 -v -0.162993 1.148248 8.443404 -v -0.115253 1.263501 8.443404 -v 0.142582 1.290830 8.443404 -v -0.000000 1.349889 8.443404 -v 0.201641 1.148248 8.443404 -v 0.142582 1.005666 8.443404 -v -0.000000 0.946607 8.443404 -v -0.142582 1.005666 8.443404 -v -0.201641 1.148248 8.443404 -v -0.142582 1.290830 8.443404 -v 0.115253 1.263501 10.094847 -v -0.000000 1.311241 10.094847 -v 0.162993 1.148248 10.094847 -v 0.115253 1.032995 10.094847 -v -0.000000 0.985255 10.094847 -v -0.115253 1.032995 10.094847 -v -0.162993 1.148248 10.094847 -v -0.115253 1.263501 10.094847 -v -0.000000 1.739413 7.127589 -v 0.000000 1.739413 9.682537 -v 0.117851 1.690598 7.127589 -v 0.117851 1.690598 9.682537 -v 0.166667 1.572747 7.127589 -v 0.166667 1.572747 9.682537 -v 0.117851 1.454896 7.127589 -v 0.117851 1.454895 9.682537 -v -0.000000 1.406080 7.127589 -v -0.000000 1.406080 9.682537 -v -0.117851 1.454896 7.127589 -v -0.117851 1.454896 9.682537 -v -0.166667 1.572747 7.127589 -v -0.166667 1.572747 9.682537 -v -0.117851 1.690598 7.127589 -v -0.117851 1.690598 9.682537 -v 0.150885 1.723632 9.682537 -v -0.000000 1.786131 9.682537 -v 0.213384 1.572747 9.682537 -v 0.150885 1.421861 9.682537 -v -0.000000 1.359363 9.682537 -v -0.150885 1.421861 9.682537 -v -0.213384 1.572747 9.682537 -v -0.150885 1.723632 9.682537 -v 0.150885 1.723632 10.216743 -v -0.000000 1.786131 10.216743 -v 0.213384 1.572747 10.216743 -v 0.150885 1.421861 10.216743 -v -0.000000 1.359363 10.216743 -v -0.150886 1.421861 10.216743 -v -0.213384 1.572747 10.216743 -v -0.150886 1.723632 10.216743 -v 0.000000 1.739413 9.338546 -v 0.117851 1.690598 9.338546 -v 0.166667 1.572747 9.338546 -v 0.117851 1.454895 9.338546 -v -0.000000 1.406080 9.338546 -v -0.117851 1.454896 9.338546 -v -0.166667 1.572747 9.338546 -v -0.117851 1.690598 9.338546 -v -0.000000 2.059518 9.667969 -v -0.000000 2.059518 9.448745 -v 0.000000 1.739413 9.682537 -v -0.405685 1.923849 4.358274 -v -0.405685 1.923849 2.912947 -v 0.405685 1.923849 4.358274 -v 0.405685 1.923849 2.912947 -v -0.405685 1.798284 4.619242 -v 0.405685 1.798284 4.619242 -v -0.405685 1.798284 7.148043 -v 0.405685 1.798284 7.148043 -v -0.289699 0.969287 4.358274 -v -0.405685 1.112237 4.358274 -v -0.289699 0.969287 2.912947 -v -0.405685 1.112237 2.912947 -v 0.405685 1.112237 4.358274 -v 0.289699 0.969287 4.358274 -v 0.405685 1.112237 2.912947 -v 0.289699 0.969287 2.912947 -v -0.289699 0.969287 4.619242 -v -0.405685 1.112237 4.619242 -v 0.405685 1.112237 4.619242 -v 0.289699 0.969287 4.619242 -v -0.405685 1.112237 7.148043 -v -0.289699 0.969287 7.148043 -v 0.289699 0.969287 7.148043 -v 0.405685 1.112237 7.148043 -v 0.405685 1.528667 3.008653 -v 0.405685 1.382289 3.008653 -v 0.405685 1.528667 4.328139 -v 0.405685 1.382289 4.374518 -v 0.405685 1.525686 4.589107 -v 0.405685 1.384835 4.635486 -v 0.405685 1.525686 7.052337 -v 0.405685 1.384835 7.052337 -v -0.405685 1.382289 4.374518 -v -0.405685 1.528667 4.328139 -v -0.405685 1.528667 3.008653 -v -0.405685 1.382289 3.008653 -v -0.405685 1.384835 4.635486 -v -0.405685 1.525686 4.589107 -v -0.405685 1.384835 7.052337 -v -0.405685 1.525686 7.052337 -v 0.405685 1.572582 2.912947 -v 0.405685 1.338374 2.912947 -v 0.405685 1.569602 7.148043 -v 0.405685 1.340920 7.148043 -v 0.405685 1.340920 4.619242 -v 0.405685 1.569602 4.619242 -v 0.405685 1.338374 4.358274 -v 0.405685 1.572582 4.358274 -v -0.405685 1.572582 2.912947 -v -0.405685 1.338374 2.912947 -v -0.405685 1.340920 7.148043 -v -0.405685 1.569602 7.148043 -v -0.405685 1.569602 4.619242 -v -0.405685 1.340920 4.619242 -v -0.405685 1.572582 4.358274 -v -0.405685 1.338374 4.358274 -v 0.328656 1.528667 4.328139 -v 0.328656 1.382289 4.374518 -v 0.328656 1.525686 4.589107 -v 0.328656 1.384835 4.635486 -v 0.328656 1.528667 3.008653 -v 0.328656 1.382289 3.008653 -v 0.328656 1.525686 7.052337 -v 0.328656 1.384835 7.052337 -v -0.344691 1.382289 4.374518 -v -0.344691 1.528667 4.328139 -v -0.344691 1.384835 4.635486 -v -0.344691 1.525686 4.589107 -v -0.344691 1.528667 3.008653 -v -0.344691 1.382289 3.008653 -v -0.344691 1.384835 7.052337 -v -0.344691 1.525686 7.052337 -v -0.049907 0.888719 0.860207 -v -0.049907 1.065321 0.860207 -v -0.049907 0.888719 0.779505 -v -0.049907 1.065321 0.725059 -v 0.057982 0.888719 0.860207 -v 0.057982 1.065321 0.860207 -v 0.057982 0.888719 0.779505 -v 0.057982 1.065321 0.725059 -v -0.049907 0.736731 0.747116 -v 0.057982 0.736731 0.747116 -v -0.152407 0.831944 1.780747 -v -0.152407 1.063158 1.780747 -v -0.152407 0.705619 1.353734 -v -0.152407 1.063158 1.353734 -v 0.160482 0.831944 1.780747 -v 0.160482 1.063158 1.780747 -v 0.160482 0.705619 1.353734 -v 0.160482 1.063158 1.353734 -v 0.212140 -0.964352 0.214434 -v 0.337371 -0.964352 -0.043596 -v 0.337371 0.363268 0.456403 -v 0.212140 0.363268 0.714434 -v -0.329296 -0.964352 -0.043596 -v -0.204065 -0.964352 0.214434 -v -0.204065 0.363268 0.714434 -v -0.329296 0.363268 0.456403 -v 0.337371 -0.964352 -0.497196 -v 0.212140 -0.964353 -0.785566 -v 0.212140 0.363268 -0.035566 -v 0.337371 0.363268 0.252804 -v -0.204066 -0.964353 -0.785566 -v -0.329296 -0.964352 -0.497196 -v -0.329296 0.363268 0.252804 -v -0.204065 0.363268 -0.035566 -v -0.204065 -1.212434 0.363501 -v -0.329296 -1.212434 0.105471 -v 0.337371 -1.212434 0.105471 -v 0.212140 -1.212434 0.363501 -v -0.329296 -1.212434 -0.348129 -v -0.204065 -1.212434 -0.636499 -v 0.212140 -1.212434 -0.636499 -v 0.337371 -1.212434 -0.348129 -v 0.337371 0.737960 0.403588 -v 0.212140 0.737960 0.661618 -v -0.204065 0.737960 0.661618 -v -0.329296 0.737960 0.403588 -v -0.329296 0.737960 -0.328542 -v -0.204065 0.737960 -0.616911 -v 0.212140 0.737960 -0.616911 -v 0.337371 0.737960 -0.328542 -v 0.212140 1.075558 0.661618 -v 0.337371 1.075558 0.403588 -v -0.329296 1.075558 0.403588 -v -0.204065 1.075558 0.661618 -v -0.204066 1.075558 -0.616911 -v -0.329296 1.075558 -0.328542 -v 0.337371 1.075558 -0.328542 -v 0.212140 1.075558 -0.616911 -v -0.147016 0.719602 1.371418 -v 0.155090 0.719602 1.371418 -v -0.147016 0.719602 0.645907 -v 0.155090 0.719602 0.645907 -v -0.147016 0.620284 1.008663 -v 0.155090 0.620284 1.008663 -v -0.147016 0.620284 1.190040 -v 0.155090 0.620284 1.190040 -v -0.145183 0.719602 1.367017 -v 0.153258 0.719602 1.367017 -v -0.145183 0.719602 0.650309 -v 0.153258 0.719602 0.650309 -v -0.145183 0.621489 1.008663 -v 0.153258 0.621489 1.008663 -v -0.145183 0.621489 1.187840 -v 0.153258 0.621489 1.187840 -v -0.182936 1.772534 2.404954 -v -0.519915 1.772534 2.404954 -v -0.182936 1.822573 2.426134 -v -0.519915 1.822573 2.425681 -v -0.182936 1.772534 2.446860 -v -0.519915 1.772534 2.446860 -v -0.194255 1.718664 2.424850 -v -0.519915 1.720129 2.426178 -v -0.210307 1.836682 1.008561 -v -0.210307 1.836682 2.846646 -v -0.100311 1.850322 1.008561 -v -0.100311 1.850322 2.846646 -v -0.264802 1.639263 1.008561 -v -0.264802 1.639262 2.846646 -v -0.278441 1.749259 1.008561 -v -0.278441 1.749258 2.846646 -v -0.335002 1.045853 2.943055 -v -0.335003 1.698259 2.943055 -v -0.335002 1.045853 -0.679456 -v -0.335002 1.698259 -0.452921 -v 0.339998 1.045853 2.943055 -v 0.339998 1.698259 2.943055 -v 0.339998 1.045853 -0.679456 -v 0.339998 1.698259 -0.452921 -v -0.195099 1.902804 2.943055 -v -0.195099 1.902804 -0.452921 -v 0.200094 1.902804 -0.452921 -v 0.200094 1.902804 2.943055 -v -0.335002 1.698259 1.313965 -v -0.195099 1.902804 1.313965 -v -0.335003 1.698259 2.497503 -v -0.195099 1.902804 2.497503 -v -0.201521 1.606961 2.497503 -v -0.201521 1.606961 1.313965 -v -0.061617 1.811506 2.497503 -v -0.061617 1.811506 1.313965 +v 0.363464 1.792314 0.108580 +v -0.371539 1.792314 0.108580 +v 0.363464 1.715535 0.076778 +v -0.371539 1.715535 0.076778 +v 0.363464 1.683733 -0.000001 +v -0.371539 1.683733 -0.000001 +v 0.363464 1.715535 -0.076779 +v -0.371539 1.715535 -0.076779 +v 0.363464 1.792314 -0.108582 +v -0.371539 1.792314 -0.108582 +v 0.363464 1.869092 -0.076779 +v -0.371539 1.869092 -0.076779 +v 0.363464 1.900895 -0.000001 +v -0.371539 1.900895 -0.000001 +v 0.363464 1.869092 0.076778 +v -0.371539 1.869092 0.076778 +v 0.363464 1.792314 0.222732 +v 0.363464 1.634818 0.157495 +v -0.371539 1.634818 0.157495 +v -0.371539 1.792314 0.222732 +v 0.363464 1.569581 -0.000001 +v -0.371539 1.569581 -0.000001 +v 0.363464 1.634818 -0.157496 +v -0.371539 1.634818 -0.157496 +v 0.363464 1.792314 -0.222733 +v -0.371539 1.792314 -0.222733 +v 0.363464 1.949810 -0.157496 +v -0.371539 1.949810 -0.157496 +v 0.363464 2.015046 -0.000001 +v -0.371539 2.015046 -0.000001 +v 0.363464 1.949810 0.157495 +v -0.371539 1.949810 0.157495 +v -0.469795 1.715535 0.076778 +v -0.469795 1.792314 0.108580 +v -0.469795 1.869092 0.076778 +v -0.469795 1.900895 -0.000001 +v -0.469795 1.869092 -0.076779 +v -0.469795 1.792314 -0.108582 +v -0.469795 1.715535 -0.076779 +v -0.469795 1.683733 -0.000001 +v 0.461720 1.792314 0.108580 +v 0.461720 1.715535 0.076778 +v 0.461720 1.683733 -0.000001 +v 0.461720 1.715535 -0.076779 +v 0.461720 1.792314 -0.108582 +v 0.461720 1.869092 -0.076779 +v 0.461720 1.900895 -0.000001 +v 0.461720 1.869092 0.076778 +v -0.355496 1.598891 0.003962 +v -0.354740 1.977090 0.058046 +v -0.341458 1.959609 -1.873490 +v -0.340702 2.337807 -1.873490 +v -0.341458 1.959608 -3.930497 +v -0.340702 2.337807 -3.930497 +v -0.340888 2.245078 -2.671944 +v -0.341066 2.155873 -2.708894 +v -0.341244 2.066667 -2.671944 +v -0.340814 2.282028 -2.582738 +v -0.341318 2.029717 -2.582738 +v -0.340888 2.245078 -2.493533 +v -0.341244 2.066667 -2.493533 +v -0.341066 2.155873 -2.456583 +v -0.340888 2.245078 -2.292009 +v -0.341066 2.155873 -2.328959 +v -0.341244 2.066667 -2.292009 +v -0.340814 2.282028 -2.202804 +v -0.341318 2.029717 -2.202804 +v -0.340888 2.245078 -2.113599 +v -0.341244 2.066667 -2.113599 +v -0.341066 2.155873 -2.076648 +v -0.340888 2.245078 -2.859306 +v -0.341244 2.066667 -2.859307 +v -0.341318 2.029717 -2.948511 +v -0.341066 2.155873 -2.822356 +v -0.340814 2.282028 -2.948512 +v -0.341244 2.066667 -3.037717 +v -0.340888 2.245078 -3.037717 +v -0.341066 2.155873 -3.203147 +v -0.341244 2.066667 -3.240097 +v -0.341066 2.155873 -3.074667 +v -0.340813 2.282028 -3.329302 +v -0.340888 2.245078 -3.240097 +v -0.341318 2.029717 -3.329302 +v -0.340887 2.245078 -3.418508 +v -0.341244 2.066667 -3.418507 +v -0.341065 2.155873 -3.455458 +v -0.357520 1.598891 0.003962 +v -0.356764 1.977090 0.058046 +v -0.343482 1.959609 -1.873490 +v -0.342726 2.337808 -1.873490 +v -0.343482 1.959609 -3.930497 +v -0.342726 2.337807 -3.930497 +v -0.342912 2.245078 -2.671944 +v -0.343090 2.155873 -2.708894 +v -0.343268 2.066667 -2.671944 +v -0.342838 2.282028 -2.582738 +v -0.343342 2.029717 -2.582738 +v -0.342912 2.245078 -2.493533 +v -0.343268 2.066667 -2.493533 +v -0.343090 2.155873 -2.456583 +v -0.342912 2.245078 -2.292009 +v -0.343090 2.155873 -2.328959 +v -0.343268 2.066667 -2.292009 +v -0.342838 2.282028 -2.202804 +v -0.343342 2.029717 -2.202804 +v -0.342912 2.245078 -2.113599 +v -0.343268 2.066667 -2.113599 +v -0.343090 2.155873 -2.076648 +v -0.342912 2.245078 -2.859306 +v -0.343268 2.066667 -2.859307 +v -0.343342 2.029717 -2.948512 +v -0.343090 2.155873 -2.822356 +v -0.342838 2.282028 -2.948511 +v -0.343268 2.066667 -3.037717 +v -0.342912 2.245078 -3.037716 +v -0.343090 2.155873 -3.203147 +v -0.343268 2.066667 -3.240097 +v -0.343090 2.155873 -3.074667 +v -0.342837 2.282028 -3.329302 +v -0.342912 2.245078 -3.240097 +v -0.343341 2.029717 -3.329302 +v -0.342911 2.245078 -3.418508 +v -0.343268 2.066667 -3.418507 +v -0.343089 2.155873 -3.455457 +v 0.346320 1.598892 0.003962 +v 0.347076 1.977091 0.058045 +v 0.353683 1.959627 -1.873524 +v 0.354998 2.337825 -1.873522 +v 0.374965 1.959569 -3.930422 +v 0.376281 2.337767 -3.930419 +v 0.362937 2.245073 -2.671933 +v 0.363008 2.155867 -2.708882 +v 0.362316 2.066663 -2.671935 +v 0.362142 2.282025 -2.582732 +v 0.361264 2.029716 -2.582734 +v 0.361091 2.245078 -2.493532 +v 0.360470 2.066668 -2.493534 +v 0.360398 2.155874 -2.456585 +v 0.359006 2.245084 -2.292019 +v 0.359078 2.155878 -2.328968 +v 0.358385 2.066674 -2.292021 +v 0.358211 2.282036 -2.202818 +v 0.357334 2.029727 -2.202820 +v 0.357160 2.245089 -2.113619 +v 0.356539 2.066679 -2.113620 +v 0.356467 2.155885 -2.076671 +v 0.364875 2.245068 -2.859286 +v 0.364254 2.066658 -2.859288 +v 0.365049 2.029706 -2.948488 +v 0.364182 2.155864 -2.822339 +v 0.365926 2.282015 -2.948486 +v 0.366100 2.066653 -3.037689 +v 0.366721 2.245063 -3.037687 +v 0.368122 2.155853 -3.203109 +v 0.368194 2.066647 -3.240057 +v 0.366793 2.155857 -3.074636 +v 0.369867 2.282004 -3.329256 +v 0.368815 2.245057 -3.240056 +v 0.368989 2.029695 -3.329258 +v 0.370661 2.245052 -3.418457 +v 0.370041 2.066642 -3.418458 +v 0.370733 2.155846 -3.455406 +v 0.348344 1.598881 0.003983 +v 0.349100 1.977080 0.058066 +v 0.355707 1.959616 -1.873504 +v 0.357022 2.337814 -1.873501 +v 0.376989 1.959558 -3.930400 +v 0.378305 2.337756 -3.930398 +v 0.364960 2.245062 -2.671912 +v 0.365032 2.155856 -2.708861 +v 0.364340 2.066652 -2.671914 +v 0.364166 2.282014 -2.582711 +v 0.363288 2.029705 -2.582713 +v 0.363114 2.245067 -2.493511 +v 0.362494 2.066657 -2.493513 +v 0.362422 2.155863 -2.456564 +v 0.361030 2.245073 -2.291999 +v 0.361102 2.155867 -2.328947 +v 0.360409 2.066663 -2.292000 +v 0.360235 2.282025 -2.202798 +v 0.359358 2.029716 -2.202799 +v 0.359184 2.245078 -2.113598 +v 0.358563 2.066668 -2.113599 +v 0.358491 2.155874 -2.076650 +v 0.366899 2.245057 -2.859265 +v 0.366278 2.066647 -2.859267 +v 0.367073 2.029694 -2.948467 +v 0.366206 2.155853 -2.822318 +v 0.367950 2.282004 -2.948465 +v 0.368124 2.066642 -3.037668 +v 0.368745 2.245051 -3.037666 +v 0.370146 2.155842 -3.203087 +v 0.370218 2.066636 -3.240036 +v 0.368817 2.155845 -3.074614 +v 0.371891 2.281993 -3.329235 +v 0.370838 2.245046 -3.240035 +v 0.371013 2.029684 -3.329237 +v 0.372685 2.245041 -3.418436 +v 0.372065 2.066631 -3.418437 +v 0.372757 2.155835 -3.455384 +v -0.341458 1.956579 -3.930497 +v -0.341458 1.956579 -1.873490 +v 0.374965 1.956539 -3.930422 +v 0.353683 1.956597 -1.873524 +v 0.004691 2.368911 -3.653735 +v -0.120988 2.316853 -3.653735 +v -0.173045 2.191175 -3.653735 +v -0.120988 2.065497 -3.653736 +v 0.004691 2.013439 -3.653736 +v 0.130369 2.065497 -3.653735 +v 0.182426 2.191175 -3.653735 +v 0.130369 2.316853 -3.653735 +v 0.406868 1.940766 -4.791202 +v 0.406868 1.940766 -3.592421 +v -0.380419 1.940766 -4.791202 +v -0.380419 1.940766 -3.592420 +v 0.354001 1.954725 -1.875823 +v -0.344047 1.954725 -1.875823 +v 0.354002 1.954725 -3.879303 +v -0.344047 1.954725 -3.879303 +v 0.232149 2.451141 -4.791202 +v 0.406868 2.345249 -4.791202 +v 0.406868 2.345249 -3.592421 +v 0.232150 2.451141 -3.592421 +v -0.380419 2.345248 -4.791202 +v -0.205701 2.451140 -4.791202 +v -0.205700 2.451140 -3.592420 +v -0.380419 2.345248 -3.592420 +v -0.173330 2.039119 -4.791202 +v -0.111259 2.065497 -4.748067 +v -0.236314 2.191175 -4.791202 +v -0.163317 2.191175 -4.748067 +v 0.014803 1.961192 -4.791202 +v 0.014419 2.013439 -4.748067 +v 0.202935 2.039119 -4.791203 +v 0.140097 2.065497 -4.748067 +v 0.202935 2.343231 -4.791203 +v 0.140097 2.316853 -4.748067 +v 0.265919 2.191175 -4.791202 +v 0.192155 2.191175 -4.748067 +v -0.173330 2.343231 -4.791203 +v -0.111259 2.316853 -4.748067 +v 0.014802 2.421158 -4.791202 +v 0.014419 2.368911 -4.748067 +v 0.000001 1.315694 -7.118857 +v 0.000001 1.315694 -7.847215 +v -0.118401 1.266650 -7.118857 +v -0.118401 1.266650 -7.847215 +v -0.167445 1.148248 -7.118857 +v -0.167445 1.148248 -7.847215 +v -0.118401 1.029846 -7.118857 +v -0.118401 1.029846 -7.847215 +v 0.000001 0.980802 -7.118857 +v 0.000001 0.980802 -7.847215 +v 0.118403 1.029846 -7.118857 +v 0.118403 1.029846 -7.847215 +v 0.167447 1.148248 -7.118857 +v 0.167447 1.148248 -7.847215 +v 0.118403 1.266650 -7.118857 +v 0.118403 1.266650 -7.847215 +v -0.142581 1.290830 -7.847215 +v 0.000001 1.349889 -7.847215 +v -0.201640 1.148248 -7.847215 +v -0.142581 1.005666 -7.847215 +v 0.000001 0.946607 -7.847215 +v 0.142583 1.005666 -7.847215 +v 0.201642 1.148248 -7.847215 +v 0.142583 1.290830 -7.847215 +v -0.115252 1.263501 -8.443404 +v 0.000001 1.311241 -8.443404 +v -0.162992 1.148248 -8.443404 +v -0.115252 1.032995 -8.443404 +v 0.000001 0.985255 -8.443404 +v 0.115254 1.032995 -8.443404 +v 0.162994 1.148248 -8.443404 +v 0.115254 1.263501 -8.443404 +v -0.142581 1.290830 -8.443404 +v 0.000001 1.349889 -8.443404 +v -0.201640 1.148248 -8.443404 +v -0.142581 1.005666 -8.443404 +v 0.000001 0.946607 -8.443404 +v 0.142583 1.005666 -8.443404 +v 0.201642 1.148248 -8.443404 +v 0.142583 1.290830 -8.443404 +v -0.115251 1.263501 -10.094847 +v 0.000002 1.311241 -10.094847 +v -0.162991 1.148247 -10.094847 +v -0.115251 1.032995 -10.094847 +v 0.000002 0.985255 -10.094847 +v 0.115255 1.032995 -10.094847 +v 0.162995 1.148247 -10.094847 +v 0.115255 1.263501 -10.094847 +v 0.000001 1.739413 -7.127589 +v 0.000001 1.739413 -9.682537 +v -0.117850 1.690598 -7.127589 +v -0.117850 1.690598 -9.682537 +v -0.166666 1.572747 -7.127589 +v -0.166666 1.572747 -9.682537 +v -0.117850 1.454896 -7.127589 +v -0.117850 1.454895 -9.682537 +v 0.000001 1.406080 -7.127589 +v 0.000001 1.406080 -9.682537 +v 0.117852 1.454896 -7.127589 +v 0.117852 1.454895 -9.682537 +v 0.166668 1.572747 -7.127589 +v 0.166668 1.572747 -9.682537 +v 0.117852 1.690598 -7.127589 +v 0.117852 1.690598 -9.682537 +v -0.150884 1.723632 -9.682537 +v 0.000001 1.786131 -9.682537 +v -0.213383 1.572747 -9.682537 +v -0.150884 1.421861 -9.682537 +v 0.000001 1.359362 -9.682537 +v 0.150886 1.421861 -9.682537 +v 0.213385 1.572747 -9.682537 +v 0.150886 1.723632 -9.682537 +v -0.150883 1.723632 -10.216743 +v 0.000002 1.786131 -10.216743 +v -0.213382 1.572747 -10.216743 +v -0.150883 1.421861 -10.216743 +v 0.000002 1.359362 -10.216743 +v 0.150888 1.421861 -10.216743 +v 0.213386 1.572747 -10.216743 +v 0.150888 1.723632 -10.216743 +v 0.000001 1.739413 -9.338546 +v -0.117850 1.690598 -9.338546 +v -0.166666 1.572747 -9.338546 +v -0.117850 1.454895 -9.338546 +v 0.000001 1.406080 -9.338546 +v 0.117852 1.454896 -9.338546 +v 0.166668 1.572747 -9.338546 +v 0.117852 1.690598 -9.338546 +v 0.000001 2.059518 -9.667969 +v 0.000001 2.059518 -9.448745 +v 0.000001 1.739413 -9.682537 +v 0.405686 1.923849 -4.358274 +v 0.405685 1.923849 -2.912947 +v -0.405684 1.923849 -4.358274 +v -0.405685 1.923849 -2.912947 +v 0.405686 1.798284 -4.619242 +v -0.405684 1.798284 -4.619242 +v 0.405686 1.798284 -7.148043 +v -0.405684 1.798284 -7.148043 +v 0.289700 0.969287 -4.358274 +v 0.405686 1.112237 -4.358274 +v 0.289699 0.969287 -2.912947 +v 0.405685 1.112237 -2.912947 +v -0.405684 1.112237 -4.358274 +v -0.289698 0.969287 -4.358274 +v -0.405685 1.112237 -2.912947 +v -0.289699 0.969287 -2.912947 +v 0.289700 0.969287 -4.619242 +v 0.405686 1.112237 -4.619242 +v -0.405684 1.112237 -4.619242 +v -0.289698 0.969287 -4.619242 +v 0.405686 1.112237 -7.148043 +v 0.289700 0.969287 -7.148043 +v -0.289698 0.969287 -7.148043 +v -0.405684 1.112237 -7.148043 +v -0.405685 1.528667 -3.008653 +v -0.405685 1.382289 -3.008653 +v -0.405684 1.528667 -4.328139 +v -0.405684 1.382289 -4.374518 +v -0.405684 1.525686 -4.589107 +v -0.405684 1.384835 -4.635486 +v -0.405684 1.525686 -7.052337 +v -0.405684 1.384835 -7.052337 +v 0.405686 1.382289 -4.374518 +v 0.405686 1.528667 -4.328139 +v 0.405685 1.528667 -3.008653 +v 0.405685 1.382289 -3.008653 +v 0.405686 1.384835 -4.635486 +v 0.405686 1.525686 -4.589107 +v 0.405686 1.384835 -7.052337 +v 0.405686 1.525686 -7.052337 +v -0.405685 1.572582 -2.912947 +v -0.405685 1.338374 -2.912947 +v -0.405684 1.569602 -7.148043 +v -0.405684 1.340920 -7.148043 +v -0.405684 1.340920 -4.619242 +v -0.405684 1.569602 -4.619242 +v -0.405684 1.338374 -4.358274 +v -0.405684 1.572582 -4.358274 +v 0.405685 1.572582 -2.912947 +v 0.405685 1.338374 -2.912947 +v 0.405686 1.340920 -7.148043 +v 0.405686 1.569602 -7.148043 +v 0.405686 1.569602 -4.619242 +v 0.405686 1.340920 -4.619242 +v 0.405686 1.572582 -4.358274 +v 0.405686 1.338374 -4.358274 +v -0.328655 1.528667 -4.328139 +v -0.328655 1.382289 -4.374518 +v -0.328655 1.525686 -4.589107 +v -0.328655 1.384835 -4.635486 +v -0.328656 1.528667 -3.008653 +v -0.328656 1.382289 -3.008653 +v -0.328655 1.525686 -7.052337 +v -0.328655 1.384835 -7.052337 +v 0.344692 1.382289 -4.374518 +v 0.344692 1.528667 -4.328139 +v 0.344692 1.384835 -4.635486 +v 0.344692 1.525686 -4.589107 +v 0.344691 1.528667 -3.008653 +v 0.344691 1.382289 -3.008653 +v 0.344692 1.384835 -7.052337 +v 0.344692 1.525686 -7.052337 +v 0.049907 0.888719 -0.860207 +v 0.049907 1.065321 -0.860207 +v 0.049907 0.888719 -0.779505 +v 0.049907 1.065321 -0.725059 +v -0.057982 0.888719 -0.860207 +v -0.057982 1.065321 -0.860207 +v -0.057982 0.888719 -0.779505 +v -0.057982 1.065321 -0.725059 +v 0.049907 0.736731 -0.747116 +v -0.057982 0.736731 -0.747116 +v 0.152407 0.831944 -1.780747 +v 0.152407 1.063158 -1.780747 +v 0.152407 0.705619 -1.353734 +v 0.152407 1.063158 -1.353734 +v -0.160482 0.831944 -1.780747 +v -0.160482 1.063158 -1.780747 +v -0.160482 0.705619 -1.353734 +v -0.160482 1.063158 -1.353734 +v -0.212140 -0.964352 -0.214434 +v -0.337371 -0.964352 0.043596 +v -0.337371 0.363268 -0.456403 +v -0.212140 0.363268 -0.714434 +v 0.329296 -0.964352 0.043596 +v 0.204065 -0.964352 -0.214434 +v 0.204065 0.363268 -0.714434 +v 0.329296 0.363268 -0.456403 +v -0.337371 -0.964352 0.497196 +v -0.212140 -0.964353 0.785566 +v -0.212140 0.363268 0.035566 +v -0.337371 0.363268 -0.252804 +v 0.204066 -0.964353 0.785566 +v 0.329296 -0.964352 0.497196 +v 0.329296 0.363268 -0.252804 +v 0.204065 0.363268 0.035566 +v 0.204065 -1.212434 -0.363501 +v 0.329296 -1.212434 -0.105471 +v -0.337371 -1.212434 -0.105471 +v -0.212140 -1.212434 -0.363501 +v 0.329296 -1.212434 0.348129 +v 0.204065 -1.212434 0.636499 +v -0.212140 -1.212434 0.636499 +v -0.337371 -1.212434 0.348129 +v -0.337371 0.737960 -0.403588 +v -0.212140 0.737960 -0.661618 +v 0.204065 0.737960 -0.661618 +v 0.329296 0.737960 -0.403588 +v 0.329296 0.737960 0.328542 +v 0.204065 0.737960 0.616911 +v -0.212140 0.737960 0.616911 +v -0.337371 0.737960 0.328542 +v -0.212140 1.075558 -0.661618 +v -0.337371 1.075558 -0.403588 +v 0.329296 1.075558 -0.403588 +v 0.204065 1.075558 -0.661618 +v 0.204066 1.075558 0.616911 +v 0.329296 1.075558 0.328542 +v -0.337371 1.075558 0.328542 +v -0.212140 1.075558 0.616911 +v 0.147016 0.719602 -1.371418 +v -0.155090 0.719602 -1.371418 +v 0.147016 0.719602 -0.645907 +v -0.155090 0.719602 -0.645907 +v 0.147016 0.620284 -1.008663 +v -0.155090 0.620284 -1.008663 +v 0.147016 0.620284 -1.190040 +v -0.155090 0.620284 -1.190040 +v 0.145183 0.719602 -1.367017 +v -0.153258 0.719602 -1.367017 +v 0.145183 0.719602 -0.650309 +v -0.153258 0.719602 -0.650309 +v 0.145183 0.621489 -1.008663 +v -0.153258 0.621489 -1.008663 +v 0.145183 0.621489 -1.187840 +v -0.153258 0.621489 -1.187840 +v 0.335002 1.045853 -2.943055 +v 0.335003 1.698259 -2.943055 +v 0.335002 1.045853 0.679456 +v 0.335002 1.698259 0.452921 +v -0.339998 1.045853 -2.943055 +v -0.339998 1.698259 -2.943055 +v -0.339998 1.045853 0.679456 +v -0.339998 1.698259 0.452921 +v 0.195099 1.902804 -2.943055 +v 0.195099 1.902804 0.452921 +v -0.200094 1.902804 0.452921 +v -0.200094 1.902804 -2.943055 +v 0.335002 1.698259 -1.313965 +v 0.195099 1.902804 -1.313965 +v 0.335003 1.698259 -2.497503 +v 0.195099 1.902804 -2.497503 +v 0.201521 1.606961 -2.497503 +v 0.201521 1.606961 -1.313965 +v 0.061617 1.811506 -2.497503 +v 0.061617 1.811506 -1.313965 +v 0.335003 1.574884 -2.498426 +v 0.335003 1.573266 -1.314070 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0030 0.0069 +vn 1.0000 -0.0020 -0.0000 +vn -1.0000 0.0030 -0.0069 +vn -1.0000 0.0020 -0.0000 +vn -1.0000 0.0025 -0.0034 +vn -0.9999 0.0035 -0.0103 +vn 1.0000 -0.0025 0.0034 +vn 0.9999 -0.0034 0.0103 +vn 0.9999 -0.0035 0.0103 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.0001 1.0000 +vn 0.1336 0.3226 0.9371 +vn -0.9526 0.3043 -0.0000 +vn -0.1336 0.3226 0.9371 +vn -0.0188 0.0455 -0.9988 +vn 0.0188 0.0455 -0.9988 +vn 0.9526 0.3043 -0.0000 +vn -0.0000 0.9011 -0.4336 +vn -0.0000 1.0000 0.0098 +vn -0.0000 -0.9999 0.0114 +vn -0.0000 0.3280 0.9447 +vn 0.8254 0.5646 -0.0000 +vn 0.0051 -0.0075 1.0000 +vn 0.5645 -0.8254 -0.0000 +vn 1.0000 -0.0020 0.0069 +vn -1.0000 0.0020 -0.0069 +vn -1.0000 0.0035 -0.0035 +vn 1.0000 -0.0035 0.0035 +vn 0.0001 1.0000 -0.0000 +vn -0.0000 -0.0001 1.0000 +vn -0.0006 0.0008 -1.0000 +vn -0.6302 -0.0001 0.7764 +vn 0.6302 -0.5490 0.5490 +vn 0.6302 -0.0000 0.7764 +vn -0.6302 -0.5490 0.5490 +vn 0.6302 -0.7764 -0.0000 +vn -0.6302 -0.7764 -0.0000 +vn 0.6302 -0.5490 -0.5490 +vn -0.6302 -0.5490 -0.5491 +vn 0.6302 -0.0001 -0.7764 +vn -0.6302 -0.0000 -0.7764 +vn 0.6302 0.5490 -0.5490 +vn -0.6302 0.5490 -0.5490 +vn 0.6302 0.7764 -0.0000 +vn -0.6302 0.7764 0.0002 +vn 0.6302 0.5492 0.5488 +vn -0.6302 0.5490 0.5490 +vn -0.6302 0.0001 0.7764 +vn -0.8042 -0.4204 0.4202 +vn -0.8042 -0.0001 0.5943 +vn -0.8042 0.4205 0.4201 +vn -0.6302 0.7764 -0.0000 +vn -0.8042 0.5943 -0.0000 +vn -0.6302 0.5489 -0.5491 +vn -0.8042 0.4204 -0.4202 +vn -0.8042 -0.0000 -0.5943 +vn -0.6302 -0.5489 -0.5491 +vn -0.8042 -0.4203 -0.4203 +vn -0.8042 -0.5943 -0.0000 +vn 0.6302 -0.5490 0.5491 +vn 0.8042 -0.0002 0.5943 +vn 0.8042 -0.4203 0.4203 +vn 0.8042 -0.5943 -0.0000 +vn 0.8042 -0.4204 -0.4202 +vn 0.6302 -0.0000 -0.7764 +vn 0.8042 -0.0000 -0.5943 +vn 0.8042 0.4205 -0.4201 +vn 0.8042 0.5943 -0.0000 +vn 0.6302 0.5489 0.5491 +vn 0.8042 0.4205 0.4201 +vn 0.6302 0.0002 0.7764 +vn 0.5512 0.5495 -0.6279 +vn 0.8335 -0.0000 -0.5525 +vn 0.7791 -0.0000 -0.6269 +vn -0.7736 -0.0000 -0.6336 +vn -0.5787 0.6354 -0.5113 +vn -0.5468 0.5484 -0.6326 +vn -0.5468 -0.5484 -0.6326 +vn -0.0003 -0.8814 -0.4723 +vn -0.5787 -0.6354 -0.5113 +vn 0.0017 -0.7764 -0.6302 +vn 0.5808 -0.6392 -0.5041 +vn -0.8271 -0.0000 -0.5621 +vn 0.2042 0.7309 0.6512 +vn -0.2042 0.7309 -0.6512 +vn -0.2042 0.7309 0.6512 +vn 0.5512 -0.5495 -0.6279 +vn 0.6894 0.3883 -0.6115 +vn 0.2041 0.7310 -0.6512 +vn -0.6894 0.3883 0.6115 +vn -0.0003 0.8814 -0.4723 +vn 0.0017 0.7764 -0.6302 +vn 0.2005 -0.0000 -0.9797 +vn 0.5808 0.6392 -0.5041 +vn 0.1670 0.1479 -0.9748 +vn -0.1659 0.1466 -0.9752 +vn -0.0003 0.2596 -0.9657 +vn -0.1988 -0.0000 -0.9800 +vn -0.1659 -0.1467 -0.9752 +vn 0.1670 -0.1479 -0.9748 +vn -0.0003 -0.2596 -0.9657 +vn -0.0000 0.5943 0.8042 +vn -0.7071 0.7071 -0.0000 +vn -0.5943 -0.0000 0.8042 +vn -0.4204 -0.4202 0.8042 +vn -0.7071 -0.7071 -0.0000 +vn -0.0000 -0.5943 0.8042 +vn 0.7071 -0.7071 -0.0000 +vn 0.4204 -0.4202 0.8042 +vn 0.5943 0.0002 0.8042 +vn 0.7071 0.7071 -0.0000 +vn 0.4203 0.4203 0.8042 +vn -0.0000 0.7764 0.6302 +vn -0.5492 0.5489 -0.6302 +vn -0.5491 0.5489 0.6302 +vn -0.4202 0.4204 -0.8042 +vn -0.7764 -0.0001 -0.6302 +vn -0.5943 -0.0001 -0.8042 +vn 0.5490 0.5490 0.6302 +vn -0.0001 0.7764 -0.6302 +vn 0.7764 -0.0002 0.6302 +vn 0.5490 -0.5490 -0.6302 +vn 0.7764 -0.0001 -0.6302 +vn -0.0000 -0.7764 0.6302 +vn -0.5489 -0.5491 -0.6302 +vn -0.0001 -0.7764 -0.6302 +vn -0.7764 0.0001 0.6302 +vn 0.5490 0.5490 -0.6302 +vn 0.5489 -0.5491 0.6302 +vn -0.5490 -0.5490 0.6302 +vn 0.5943 0.0003 -0.8042 +vn 0.4202 0.4204 -0.8042 +vn -0.0000 -0.5943 -0.8042 +vn 0.5490 -0.5491 -0.6302 +vn 0.4204 -0.4201 -0.8042 +vn -0.5490 -0.5490 -0.6302 +vn -0.4201 -0.4204 -0.8042 +vn -0.0000 0.5943 -0.8042 +vn -0.5490 0.5490 -0.6302 +vn -0.0000 0.7764 -0.6302 +vn 0.7764 -0.0000 -0.6302 +vn -0.0000 -0.7764 -0.6302 +vn -0.8158 0.5607 0.1418 +vn -0.4202 -0.4204 0.8042 +vn 0.4203 -0.4203 0.8042 +vn 0.6690 0.2530 0.6988 +vn 0.8158 0.5607 0.1418 +vn 0.0002 0.7764 0.6302 +vn -0.5491 0.5489 -0.6302 +vn -0.5490 0.5490 0.6302 +vn 0.5491 0.5489 0.6302 +vn 0.0001 0.7764 -0.6302 +vn 0.7764 -0.0000 0.6302 +vn 0.5489 -0.5491 -0.6302 +vn 0.7764 -0.0002 -0.6302 +vn -0.5491 -0.5489 0.6302 +vn -0.0001 -0.7764 0.6302 +vn -0.7764 -0.0000 0.6302 +vn 0.5490 0.5491 -0.6302 +vn 0.5490 -0.5491 0.6302 +vn -0.0001 0.7524 0.6587 +vn -0.4301 -0.9028 -0.0000 +vn 0.4301 -0.9028 -0.0000 +vn 0.9425 -0.3343 -0.0000 +vn 0.7071 -0.0003 -0.7071 +vn 0.3366 -0.7071 -0.6219 +vn 0.7249 -0.2571 0.6390 +vn 0.3368 -0.7070 0.6219 +vn -0.7249 -0.2571 0.6390 +vn -0.9425 -0.3343 -0.0000 +vn -0.7249 -0.2573 -0.6390 +vn 0.7249 -0.2571 -0.6390 +vn -0.3368 -0.7070 0.6219 +vn -0.7071 -0.0003 0.7071 +vn 0.6292 -0.2290 0.7427 +vn -0.7684 -0.0285 0.6393 +vn 0.7684 -0.0285 0.6393 +vn -0.6427 -0.2409 -0.7272 +vn 0.7071 -0.0000 -0.7071 +vn 0.6427 -0.2409 -0.7272 +vn -0.5400 -0.7668 0.3470 +vn 0.5400 -0.7668 0.3469 +vn -0.7071 -0.0003 -0.7071 +vn 0.5940 -0.4814 -0.6445 +vn -0.5940 -0.4814 -0.6445 +vn -0.5638 -0.6617 0.4943 +vn 0.5638 -0.6617 0.4943 +vn -0.9941 -0.0194 0.1066 +vn -0.9868 0.0119 -0.1614 +vn -0.9638 -0.0055 0.2667 +vn 0.9868 0.0119 -0.1614 +vn 0.7143 -0.6931 0.0971 +vn 0.7697 -0.5928 -0.2369 +vn 0.6750 -0.2508 0.6939 +vn -0.4729 -0.4022 0.7840 +vn -0.6750 -0.2508 0.6939 +vn -0.7143 -0.6931 0.0971 +vn -0.4802 -0.0112 0.8771 +vn 0.4802 -0.0112 0.8771 +vn 0.4257 -0.7565 0.4964 +vn 0.5412 0.0596 -0.8388 +vn -0.5307 -0.0000 -0.8475 +vn 0.5307 -0.0000 -0.8475 +vn -0.4955 -0.0923 -0.8637 +vn 0.4955 -0.0923 -0.8637 +vn 0.9941 -0.0194 0.1066 +vn 0.9766 0.0145 -0.2144 +vn 0.9427 -0.2210 0.2498 +vn 0.6083 0.0823 -0.7894 +vn -0.6083 0.0823 -0.7894 +vn 0.9791 -0.0000 0.2034 +vn -0.9766 0.0145 -0.2144 +vn -0.9658 -0.0335 -0.2570 +vn 0.9638 -0.0055 0.2667 +vn 0.5485 -0.0000 0.8362 +vn -0.5485 -0.0000 0.8362 +vn -0.9427 -0.2210 0.2498 +vn -0.9746 -0.0000 -0.2240 +vn 0.9658 -0.0335 -0.2570 +vn -0.4257 -0.7565 0.4964 +vn -0.7697 -0.5928 -0.2369 +vn 0.4221 -0.4175 -0.8047 +vn 0.4729 -0.4022 0.7840 +vn -0.5412 0.0596 -0.8388 +vn 0.9746 -0.0000 -0.2240 +vn -0.4221 -0.4175 -0.8047 +vn -0.0000 -0.9645 0.2641 +vn -0.0000 -0.9911 0.1332 +vn -0.0000 -0.9688 -0.2479 +vn -0.0000 -0.8771 -0.4803 +vn -0.0000 0.9911 -0.1332 +vn -0.0000 0.9645 -0.2641 +vn -0.0000 0.9688 0.2479 +vn -0.0000 0.8771 0.4803 +vn 0.5695 0.7126 -0.4097 +vn 0.5695 0.7126 0.4097 +vn -0.4666 0.8845 -0.0000 +vn -0.9554 0.2954 -0.0000 +vn -0.3677 0.6970 0.6156 +vn 0.7971 0.4901 -0.3526 +vn 0.3678 0.6970 0.6156 +vn 0.7496 0.3283 0.5748 +vn 0.6894 0.3883 0.6115 +vn -0.6894 0.3883 -0.6115 +vn -0.4202 0.4204 0.8042 +vn -0.6691 0.2530 0.6988 +vn 0.5943 0.0001 0.8042 +vn -0.3366 -0.7071 -0.6219 +vn -0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.6292 -0.2290 0.7427 +vn -0.9791 -0.0000 0.2034 +vn 0.4666 0.8845 0.0002 +vn -0.7496 0.3283 0.5748 +vn 0.2392 0.9710 0.0007 vt 0.086957 0.349693 vt 0.101449 0.331288 vt 0.101449 0.349693 @@ -790,29 +821,16 @@ vt 0.031105 0.080231 vt 0.000549 0.000797 vt 0.018593 0.023550 vt 0.009746 0.027688 -vt 0.000000 0.000000 -vt 0.038647 0.190184 -vt 0.038647 0.000000 -vt 0.009746 0.047670 -vt 0.006081 0.037679 -vt 0.009746 0.070240 -vt 0.018593 0.177973 vt 0.009746 0.173835 -vt 0.000549 0.231177 vt 0.006081 0.163844 vt 0.009746 0.153853 vt 0.006081 0.121197 vt 0.009746 0.090222 vt 0.006081 0.080231 -vt 0.018593 0.023550 vt 0.027440 0.027688 vt 0.038058 0.000797 -vt 0.000000 0.000000 -vt 0.038647 0.190184 -vt 0.038647 0.000000 vt 0.009745 0.047671 vt 0.006080 0.037681 -vt 0.009746 0.070240 vt 0.018596 0.177968 vt 0.009748 0.173829 vt 0.000553 0.231168 @@ -824,11 +842,7 @@ vt 0.006081 0.080230 vt 0.018592 0.023553 vt 0.027439 0.027691 vt 0.038056 0.000801 -vt 0.038647 0.190184 -vt 0.000000 0.000000 -vt 0.038647 0.000000 vt 0.009747 0.070238 -vt 0.006081 0.037679 vt 0.009746 0.047669 vt 0.038063 0.231166 vt 0.000554 0.231165 @@ -840,8 +854,6 @@ vt 0.027442 0.090218 vt 0.031106 0.080228 vt 0.027442 0.111201 vt 0.000548 0.000798 -vt 0.018593 0.023550 -vt 0.009746 0.027688 vt 0.086957 0.073620 vt 0.038647 0.214724 vt 0.038647 0.073620 @@ -865,9 +877,6 @@ vt 0.154589 0.171779 vt 0.222222 0.263804 vt 0.246377 0.190184 vt 0.246377 0.263804 -vt 0.086957 0.073620 -vt 0.038647 0.214724 -vt 0.038647 0.073620 vt 0.961353 0.361963 vt 0.956522 0.337423 vt 0.956522 0.361963 @@ -911,9 +920,7 @@ vt 0.618357 0.423313 vt 0.724638 0.361963 vt 0.714976 0.392638 vt 0.714976 0.361963 -vt 0.613527 0.361963 vt 0.637681 0.423313 -vt 0.618357 0.423313 vt 0.724638 0.484663 vt 0.714976 0.509202 vt 0.714976 0.484663 @@ -933,10 +940,6 @@ vt 0.646319 0.309076 vt 0.646319 0.341523 vt 0.642512 0.361963 vt 0.666667 0.368098 -vt 0.589372 0.368098 -vt 0.642512 0.361963 -vt 0.666667 0.368098 -vt 0.637681 0.423313 vt 0.338164 0.607362 vt 0.371981 0.472393 vt 0.371981 0.607362 @@ -967,14 +970,10 @@ vt 0.497585 0.619632 vt 0.555556 0.441718 vt 0.577454 0.239264 vt 0.577454 0.441718 -vt 0.497585 0.607362 -vt 0.483092 0.619632 -vt 0.483092 0.607362 vt 0.497585 0.644172 vt 0.570048 0.631902 vt 0.570048 0.644172 vt 0.342995 0.631902 -vt 0.352657 0.619632 vt 0.352657 0.631902 vt 0.388329 0.596256 vt 0.378023 0.596256 @@ -1001,34 +1000,16 @@ vt 0.538762 0.471297 vt 0.538762 0.439770 vt 0.531401 0.472393 vt 0.548424 0.594723 -vt 0.352657 0.631902 vt 0.483092 0.631902 vt 0.570048 0.619632 vt 0.497585 0.631902 vt 0.579710 0.631902 vt 0.579710 0.619632 -vt 0.497585 0.644172 -vt 0.570048 0.631902 -vt 0.570048 0.644172 -vt 0.483092 0.644172 -vt 0.352657 0.644172 -vt 0.342995 0.631902 -vt 0.483092 0.631902 -vt 0.497585 0.631902 -vt 0.497585 0.619632 -vt 0.352657 0.607362 -vt 0.579710 0.631902 -vt 0.570048 0.619632 -vt 0.579710 0.619632 vt 0.483092 0.644172 vt 0.352657 0.644172 vt 0.429952 0.852761 vt 0.444444 0.815951 vt 0.429952 0.815951 -vt 0.444444 0.815951 -vt 0.429952 0.852761 -vt 0.429952 0.815951 -vt 0.449275 0.779141 vt 0.449275 0.779141 vt 0.507246 0.950920 vt 0.478261 0.901841 @@ -1040,18 +1021,6 @@ vt 0.536232 0.950920 vt 0.401337 0.855844 vt 0.463175 0.897484 vt 0.387034 0.897484 -vt 0.492754 0.754601 -vt 0.478261 0.852761 -vt 0.478261 0.754601 -vt 0.463768 0.852761 -vt 0.463768 0.754601 -vt 0.521739 0.852761 -vt 0.507246 0.754601 -vt 0.521739 0.754601 -vt 0.531401 0.840491 -vt 0.521739 0.840491 -vt 0.526570 0.828221 -vt 0.492754 0.852761 vt 0.845411 0.791411 vt 0.845411 0.582822 vt 0.922705 0.558282 @@ -1070,11 +1039,10 @@ vt 0.589372 0.963190 vt 0.589372 1.000000 vt 0.565217 0.938650 vt 0.589372 0.938650 -vt 0.589372 0.938650 -vt 0.565217 0.791411 -vt 0.589372 0.791411 +vt 0.566739 0.996622 +vt 0.586132 0.932345 +vt 0.567308 0.929954 vt 0.565217 1.000000 -vt 0.565217 0.938650 vt 0.565217 0.791411 vt 0.589372 0.791411 vt 0.115942 0.233129 @@ -1091,57 +1059,22 @@ vt 0.117297 0.333769 vt 0.128154 0.319982 vt 0.000000 0.196319 vt 0.031105 0.037679 -vt 0.038058 0.000797 vt 0.027440 0.047670 vt 0.027440 0.070240 vt 0.018593 0.051808 vt 0.018593 0.066102 -vt 0.006081 0.080231 -vt 0.006081 0.163844 -vt 0.009746 0.173835 vt 0.027440 0.173835 vt 0.031105 0.163844 -vt 0.006081 0.121197 -vt 0.009746 0.153853 vt 0.009746 0.131187 vt 0.018593 0.149715 vt 0.018593 0.135326 -vt 0.009746 0.090222 vt 0.009746 0.111206 vt 0.018593 0.094360 vt 0.018593 0.107068 vt 0.027440 0.111206 -vt 0.027440 0.027688 -vt 0.000000 0.196319 -vt 0.038058 0.231177 -vt 0.031105 0.080231 -vt 0.031105 0.037679 -vt 0.027440 0.070240 -vt 0.027440 0.047670 -vt 0.018593 0.066102 -vt 0.018593 0.051808 -vt 0.000549 0.000797 -vt 0.031105 0.163844 -vt 0.027440 0.173835 -vt 0.031105 0.121197 -vt 0.027440 0.153853 -vt 0.027440 0.131187 -vt 0.018593 0.149715 -vt 0.018593 0.135326 -vt 0.009746 0.131187 -vt 0.027440 0.090222 -vt 0.027440 0.111206 -vt 0.018593 0.107068 -vt 0.018593 0.094360 -vt 0.009746 0.111206 -vt 0.009746 0.027688 -vt 0.000000 0.196319 vt 0.038062 0.231168 -vt 0.031105 0.080231 vt 0.031104 0.037681 -vt 0.027440 0.070240 vt 0.027440 0.047671 -vt 0.018593 0.066102 vt 0.018592 0.051809 vt 0.003123 0.000157 vt 0.031107 0.163839 @@ -1158,8 +1091,6 @@ vt 0.018594 0.107066 vt 0.018593 0.094359 vt 0.009747 0.111204 vt 0.009745 0.027691 -vt 0.000000 0.196319 -vt 0.031105 0.037679 vt 0.038057 0.000798 vt 0.027441 0.047669 vt 0.027441 0.070238 @@ -1180,7 +1111,6 @@ vt 0.009748 0.111201 vt 0.018595 0.094356 vt 0.018595 0.107063 vt 0.027440 0.027689 -vt 0.086957 0.214724 vt 0.115942 0.269939 vt 0.126288 0.260155 vt 0.128579 0.268113 @@ -1197,7 +1127,6 @@ vt 0.178744 0.190184 vt 0.123994 0.141104 vt 0.146538 0.141104 vt 0.222222 0.190184 -vt 0.086957 0.214724 vt 0.956522 0.165644 vt 0.888889 0.361963 vt 0.630514 0.288344 @@ -1221,16 +1150,12 @@ vt 0.280193 0.196319 vt 0.589372 0.607362 vt 0.338164 0.386503 vt 0.350082 0.239264 -vt 0.338164 0.607362 vt 0.328502 0.674847 vt 0.289855 0.674847 vt 0.280193 0.662577 vt 0.338164 0.633266 vt 0.338164 0.662577 vt 0.342995 0.619632 -vt 0.342995 0.619632 -vt 0.570048 0.607362 -vt 0.454106 0.852761 vt 0.454106 0.852761 vt 0.478261 0.950920 vt 0.536232 0.852761 @@ -1240,22 +1165,20 @@ vt 0.401337 1.000244 vt 0.387034 0.962984 vt 0.448872 0.855844 vt 0.463175 0.962984 -vt 0.507246 0.852761 -vt 0.526570 0.852761 vt 0.922705 1.000000 +vt 0.860028 0.944906 +vt 0.860220 0.793698 vt 0.845411 1.000000 vt 0.743961 1.000000 vt 0.589372 0.423313 vt 0.647343 1.000000 -vt 0.565217 1.000000 -vt 0.589372 1.000000 +vt 0.589367 0.961817 vt 0.086957 0.196319 vt 0.072464 0.196319 vt 0.057971 0.196319 vt 0.043478 0.196319 vt 0.028986 0.196319 vt 0.014493 0.196319 -vt 0.000000 0.196319 vt 0.101449 0.196319 vt 0.101449 0.368098 vt 0.115942 0.368098 @@ -1323,7 +1246,6 @@ vt 0.666667 0.435583 vt 0.666667 0.460123 vt 0.666667 0.533742 vt 0.666667 0.509202 -vt 0.666667 0.361963 vt 0.666667 0.417178 vt 0.666667 0.484663 vt 0.666667 0.392638 @@ -1332,7 +1254,6 @@ vt 1.000000 0.484663 vt 1.000000 0.509202 vt 1.000000 0.533742 vt 1.000000 0.558282 -vt 1.000000 0.361963 vt 1.000000 0.392638 vt 1.000000 0.417178 vt 1.000000 0.435583 @@ -1411,20 +1332,7 @@ vt 0.425121 0.828221 vt 0.386473 0.828221 vt 0.425121 0.852761 vt 0.386473 0.852761 -vt 0.386473 0.803681 vt 0.425121 0.754601 -vt 0.425121 0.803681 -vt 0.386473 0.828221 -vt 0.425121 0.828221 -vt 0.386473 0.852761 -vt 0.425121 0.852761 -vt 0.386473 0.680982 -vt 0.589372 0.644172 -vt 0.589372 0.680982 -vt 0.386473 0.754601 -vt 0.589372 0.717791 -vt 0.589372 0.754601 -vt 0.386473 0.717791 vt 0.821256 0.791411 vt 0.772947 1.000000 vt 0.772947 0.582822 @@ -1434,7 +1342,6 @@ vt 0.000000 0.368098 vt 0.193237 0.276074 vt 0.193237 0.319018 vt 0.666667 0.165644 -vt 0.666667 0.558282 vt 0.777778 0.435583 vt 0.439614 0.239264 vt 0.478261 0.852761 @@ -1443,1037 +1350,1338 @@ vt 0.507246 1.000000 vt 0.386473 0.950920 vt 0.309179 1.000000 vt 0.000000 0.730061 -vt 0.425121 0.754601 -vt 0.386473 0.754601 -vt 0.386473 0.644172 -vn -1.0000 -0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 -0.0030 -0.0069 -vn -1.0000 -0.0020 0.0000 -vn 1.0000 0.0030 0.0069 -vn 1.0000 0.0020 -0.0000 -vn 1.0000 0.0025 0.0034 -vn 0.9999 0.0035 0.0103 -vn -1.0000 -0.0025 -0.0034 -vn -0.9999 -0.0035 -0.0103 -vn 0.0000 1.0000 -0.0000 -vn -0.0000 -0.0000 1.0000 -vn -0.0000 -1.0000 0.0000 -vn 0.0000 -0.0000 -1.0000 -vn -0.1336 0.3226 -0.9371 -vn 0.9526 0.3043 0.0000 -vn 0.1336 0.3226 -0.9371 -vn 0.0188 0.0455 0.9988 -vn -0.0188 0.0455 0.9988 -vn -0.9526 0.3043 0.0000 -vn 0.0000 0.9011 0.4336 -vn 0.0000 1.0000 -0.0098 -vn 0.0000 -0.9999 -0.0114 -vn 0.0012 0.3898 -0.9209 -vn 0.0000 0.3827 0.9239 -vn -0.0000 -0.3782 0.9257 -vn 0.0000 -0.3464 -0.9381 -vn 0.0000 0.3280 -0.9447 -vn -0.8254 0.5646 -0.0000 -vn 0.5646 0.8254 0.0000 -vn -0.5646 -0.8254 -0.0000 -vn -1.0000 -0.0020 -0.0069 -vn 1.0000 0.0020 0.0069 -vn 1.0000 0.0035 0.0035 -vn -1.0000 -0.0035 -0.0035 -vn -0.0001 1.0000 0.0000 -vn 0.0000 0.3827 -0.9239 -vn -0.0012 0.3898 0.9209 -vn 0.0021 -0.3671 0.9302 -vn -0.0055 -0.3754 -0.9269 -vn 0.6302 0.0000 -0.7764 -vn -0.6302 -0.5490 -0.5490 -vn -0.6302 0.0000 -0.7764 -vn 0.6302 -0.5490 -0.5490 -vn -0.6302 -0.7764 0.0000 -vn 0.6302 -0.7764 0.0000 -vn -0.6302 -0.5490 0.5490 -vn 0.6302 -0.5490 0.5490 -vn -0.6302 0.0000 0.7764 -vn 0.6302 0.0000 0.7764 -vn -0.6302 0.5490 0.5490 -vn 0.6302 0.5490 0.5490 -vn -0.6302 0.7764 0.0000 -vn 0.6302 0.7764 0.0000 -vn -0.6302 0.5490 -0.5490 -vn 0.6302 0.5490 -0.5490 -vn 0.8042 -0.4203 -0.4203 -vn 0.8042 0.0000 -0.5943 -vn 0.8042 0.4203 -0.4203 -vn 0.8042 0.5943 0.0000 -vn 0.8042 0.4203 0.4203 -vn 0.8042 0.0000 0.5943 -vn 0.8042 -0.4203 0.4203 -vn 0.8042 -0.5943 0.0000 -vn -0.8042 0.0000 -0.5943 -vn -0.8042 -0.4203 -0.4203 -vn -0.8042 -0.5943 0.0000 -vn -0.8042 -0.4203 0.4203 -vn -0.8042 0.0000 0.5943 -vn -0.8042 0.4203 0.4203 -vn -0.8042 0.5943 0.0000 -vn -0.8042 0.4203 -0.4203 -vn -0.5512 0.5495 0.6279 -vn -0.8335 0.0000 0.5525 -vn -0.7791 0.0000 0.6269 -vn 0.7736 0.0000 0.6336 -vn 0.5787 0.6354 0.5112 -vn 0.5468 0.5484 0.6326 -vn 0.5468 -0.5484 0.6326 -vn 0.0003 -0.8814 0.4723 -vn 0.5787 -0.6354 0.5112 -vn -0.0017 -0.7764 0.6302 -vn -0.5808 -0.6391 0.5041 -vn 0.8271 0.0000 0.5621 -vn -0.2042 0.7309 -0.6512 -vn 0.2042 0.7309 0.6512 -vn 0.2042 0.7309 -0.6512 -vn -0.5512 -0.5495 0.6279 -vn -0.6894 0.3883 0.6115 -vn -0.2042 0.7309 0.6512 -vn 0.6894 0.3883 -0.6115 -vn 0.0003 0.8814 0.4723 -vn -0.0017 0.7764 0.6302 -vn -0.2005 0.0000 0.9797 -vn -0.5808 0.6391 0.5041 -vn -0.1670 0.1479 0.9748 -vn 0.1659 0.1466 0.9752 -vn 0.0003 0.2596 0.9657 -vn 0.1988 0.0000 0.9800 -vn 0.1659 -0.1467 0.9752 -vn -0.1670 -0.1479 0.9748 -vn 0.0003 -0.2596 0.9657 -vn 0.0000 0.5943 -0.8042 -vn 0.7071 0.7071 0.0000 -vn 0.5943 0.0000 -0.8042 -vn 0.4203 -0.4203 -0.8042 -vn 0.7071 -0.7071 0.0000 -vn 0.0000 -0.5943 -0.8042 -vn -0.7071 -0.7071 0.0000 -vn -0.4203 -0.4203 -0.8042 -vn -0.5943 0.0000 -0.8042 -vn -0.7071 0.7071 0.0000 -vn -0.4203 0.4203 -0.8042 -vn 0.0000 0.7764 -0.6302 -vn 0.5490 0.5490 0.6302 -vn 0.5490 0.5490 -0.6302 -vn 0.4203 0.4203 0.8042 -vn 0.7764 0.0000 0.6302 -vn 0.5943 0.0000 0.8042 -vn -0.5490 0.5490 -0.6302 -vn 0.0000 0.7764 0.6302 -vn -0.7764 0.0000 -0.6302 -vn -0.5490 -0.5490 0.6302 -vn -0.7764 0.0000 0.6302 -vn 0.0000 -0.7764 -0.6302 -vn 0.5490 -0.5490 0.6302 -vn 0.0000 -0.7764 0.6302 -vn 0.7764 0.0000 -0.6302 -vn -0.5490 0.5490 0.6302 -vn -0.5490 -0.5490 -0.6302 -vn 0.5490 -0.5490 -0.6302 -vn -0.5943 0.0000 0.8042 -vn -0.4203 0.4203 0.8042 -vn 0.0000 -0.5943 0.8042 -vn -0.4203 -0.4203 0.8042 -vn 0.4203 -0.4203 0.8042 -vn 0.0000 0.5943 0.8042 -vn 0.8158 0.5607 -0.1418 -vn -0.6690 0.2530 -0.6988 -vn -0.8158 0.5607 -0.1418 -vn 0.0000 0.7523 -0.6587 -vn 0.4301 -0.9028 0.0000 -vn -0.4301 -0.9028 0.0000 -vn -0.9425 -0.3342 0.0000 -vn -0.7071 0.0000 0.7071 -vn -0.3368 -0.7070 0.6219 -vn -0.7249 -0.2571 -0.6390 -vn -0.3368 -0.7070 -0.6219 -vn 0.7249 -0.2571 -0.6390 -vn 0.9425 -0.3342 0.0000 -vn 0.7249 -0.2571 0.6390 -vn -0.7249 -0.2571 0.6390 -vn 0.3368 -0.7070 -0.6219 -vn 0.7071 0.0000 -0.7071 -vn -0.6292 -0.2289 -0.7427 -vn 0.7684 -0.0285 -0.6393 -vn -0.7684 -0.0285 -0.6393 -vn 0.6427 -0.2409 0.7272 -vn -0.6427 -0.2409 0.7272 -vn 0.5400 -0.7668 -0.3469 -vn -0.5400 -0.7668 -0.3469 -vn 0.7071 0.0000 0.7071 -vn -0.5940 -0.4814 0.6445 -vn 0.5940 -0.4814 0.6445 -vn 0.5637 -0.6617 -0.4943 -vn -0.5637 -0.6617 -0.4943 -vn 0.9941 -0.0194 -0.1066 -vn 0.9868 0.0119 0.1614 -vn 0.9637 -0.0054 -0.2667 -vn -0.9868 0.0119 0.1614 -vn -0.7143 -0.6931 -0.0971 -vn -0.7697 -0.5928 0.2369 -vn -0.6750 -0.2508 -0.6939 -vn 0.4729 -0.4021 -0.7840 -vn 0.6750 -0.2508 -0.6939 -vn 0.7143 -0.6931 -0.0971 -vn 0.4801 -0.0112 -0.8771 -vn -0.4801 -0.0112 -0.8771 -vn -0.4257 -0.7565 -0.4964 -vn -0.5412 0.0596 0.8388 -vn 0.5307 0.0000 0.8475 -vn -0.5307 0.0000 0.8475 -vn 0.4955 -0.0923 0.8637 -vn -0.4955 -0.0923 0.8637 -vn -0.9941 -0.0194 -0.1066 -vn -0.9766 0.0145 0.2144 -vn -0.9427 -0.2210 -0.2498 -vn -0.6083 0.0823 0.7894 -vn 0.6083 0.0823 0.7894 -vn -0.9791 0.0000 -0.2034 -vn 0.9766 0.0145 0.2144 -vn 0.9658 -0.0335 0.2569 -vn -0.9637 -0.0054 -0.2667 -vn -0.5485 0.0000 -0.8361 -vn 0.5485 0.0000 -0.8361 -vn 0.9427 -0.2210 -0.2498 -vn 0.9746 0.0000 0.2240 -vn -0.9658 -0.0335 0.2569 -vn 0.4257 -0.7565 -0.4964 -vn 0.7697 -0.5928 0.2369 -vn -0.4221 -0.4175 0.8047 -vn -0.4729 -0.4021 -0.7840 -vn 0.5412 0.0596 0.8388 -vn -0.9746 0.0000 0.2240 -vn 0.4221 -0.4175 0.8047 -vn 0.0000 -0.9645 -0.2640 -vn 0.0000 -0.9911 -0.1332 -vn 0.0000 -0.9688 0.2479 -vn 0.0000 -0.8771 0.4803 -vn 0.0000 0.9911 0.1332 -vn 0.0000 0.9645 0.2640 -vn 0.0000 0.9688 -0.2479 -vn 0.0000 0.8771 -0.4803 -vn -0.4935 0.8697 0.0000 -vn -0.1231 0.9924 0.0000 -vn -0.9924 -0.1231 0.0000 -vn -0.9639 0.2661 0.0000 -vn -0.5695 0.7126 0.4097 -vn -0.5695 0.7126 -0.4097 -vn 0.4666 0.8845 0.0000 -vn 0.9554 0.2954 0.0000 -vn 0.3677 0.6970 -0.6156 -vn -0.7971 0.4901 0.3526 -vn -0.3677 0.6970 -0.6156 -vn -0.7496 0.3283 -0.5748 -vn -0.6894 0.3883 -0.6115 -vn 0.6894 0.3883 0.6115 -vn 0.4203 0.4203 -0.8042 -vn 0.6690 0.2530 -0.6988 -vn 0.3368 -0.7070 0.6219 -vn -0.7071 0.0000 -0.7071 -vn 0.6292 -0.2290 -0.7427 -vn 0.9791 0.0000 -0.2034 -vn -0.4666 0.8845 0.0000 -vn 0.7496 0.3283 -0.5748 -usemtl None -s off -f 39/61/41 56/62/41 41/63/41 -f 40/64/42 57/65/42 58/66/42 -f 41/63/41 59/67/41 43/68/41 -f 44/69/42 57/65/42 42/70/42 -f 43/71/41 61/72/41 45/73/41 -f 46/74/42 60/75/42 44/76/42 -f 45/73/41 63/77/41 47/78/41 -f 46/74/42 64/79/42 62/80/42 -f 47/78/41 65/81/41 49/82/41 -f 48/83/42 66/84/42 64/79/42 -f 49/82/41 67/85/41 51/86/41 -f 50/87/42 68/88/42 66/84/42 -f 53/89/41 67/85/41 69/90/41 -f 54/91/42 68/88/42 52/92/42 -f 53/89/41 55/93/41 39/61/41 -f 54/91/42 58/66/42 70/94/42 -f 74/95/42 77/96/42 78/97/42 -f 82/98/41 85/99/41 86/100/41 -f 89/101/43 88/102/43 87/103/43 -f 98/104/44 104/105/44 101/106/44 -f 91/107/44 92/108/44 124/109/44 -f 114/110/44 111/111/44 117/112/44 -f 95/113/44 97/114/44 111/111/44 -f 90/115/44 108/116/44 106/117/44 -f 126/118/45 127/119/45 125/120/45 -f 139/121/46 142/122/46 136/123/46 -f 162/124/46 160/125/46 130/126/46 -f 157/127/46 158/128/46 151/129/46 -f 151/129/46 131/130/46 134/131/46 -f 146/132/46 145/133/46 127/134/46 -f 164/135/47 165/136/47 163/137/47 -f 177/138/48 180/139/48 174/140/48 -f 200/141/48 198/142/48 168/143/48 -f 195/144/48 191/145/48 189/146/48 -f 189/146/48 169/147/48 172/148/48 -f 184/149/48 183/150/48 165/151/48 -f 203/152/49 202/153/49 201/154/49 -f 212/155/50 218/156/50 215/157/50 -f 205/158/50 206/159/50 238/160/50 -f 228/161/50 225/162/50 231/163/50 -f 209/164/50 211/165/50 224/166/50 -f 204/167/50 222/168/50 220/169/50 -f 242/170/51 239/171/51 240/172/51 -f 281/173/52 264/174/52 259/175/52 -f 271/176/52 273/177/52 251/178/52 -f 248/179/52 245/180/52 249/181/52 -f 254/182/42 263/183/42 253/184/42 -f 252/185/53 253/186/53 251/178/53 -f 261/187/54 266/188/54 254/189/54 -f 260/190/41 252/191/41 251/192/41 -f 256/193/53 257/194/53 255/195/53 -f 292/196/54 302/197/54 303/198/54 -f 298/199/54 305/200/54 306/201/54 -f 286/202/54 301/203/54 288/204/54 -f 292/205/54 304/206/54 294/207/54 -f 284/208/54 306/201/54 300/209/54 -f 284/208/54 299/210/54 286/202/54 -f 290/211/54 301/203/54 302/197/54 -f 294/207/54 305/200/54 296/212/54 -f 308/213/52 315/214/52 316/215/52 -f 307/216/52 317/217/52 315/214/52 -f 310/218/52 317/217/52 309/219/52 -f 311/220/52 318/221/52 310/218/52 -f 311/222/52 320/223/52 319/224/52 -f 312/225/52 321/226/52 320/223/52 -f 314/227/52 321/226/52 313/228/52 -f 308/213/52 322/229/52 314/227/52 -f 328/230/52 326/231/52 325/232/52 -f 363/233/55 370/234/55 372/235/55 -f 340/236/54 350/237/54 351/238/54 -f 334/239/56 372/240/56 371/241/56 -f 346/242/54 353/243/54 354/244/54 -f 334/245/54 349/246/54 336/247/54 -f 340/248/54 352/249/54 342/250/54 -f 332/251/54 354/244/54 348/252/54 -f 332/251/54 347/253/54 334/245/54 -f 338/254/54 349/246/54 350/237/54 -f 342/250/54 353/243/54 344/255/54 -f 360/256/52 358/257/52 357/258/52 -f 364/259/57 363/260/57 372/240/57 -f 332/261/58 334/239/58 371/241/58 -f 346/262/59 332/263/59 371/264/59 -f 346/262/60 372/235/60 370/234/60 -f 377/265/42 421/266/42 414/267/42 -f 421/266/42 379/268/42 419/269/42 -f 375/270/54 414/271/54 422/272/54 -f 374/273/41 422/274/41 428/275/41 -f 375/270/51 376/276/51 377/277/51 -f 379/268/42 416/278/42 419/269/42 -f 376/276/61 378/279/61 379/280/61 -f 378/279/51 381/281/51 379/280/51 -f 416/282/52 424/283/52 417/284/52 -f 403/285/51 437/286/51 405/287/51 -f 401/288/62 433/289/62 403/285/62 -f 399/290/51 431/291/51 401/288/51 -f 426/292/41 380/293/41 378/294/41 -f 407/295/63 441/296/63 411/297/63 -f 428/275/41 378/294/41 374/273/41 -f 406/298/51 443/299/51 409/300/51 -f 412/301/54 445/302/54 444/303/54 -f 399/304/42 414/267/42 398/305/42 -f 404/306/42 417/307/42 405/308/42 -f 405/308/42 418/309/42 403/310/42 -f 404/306/42 419/269/42 416/278/42 -f 401/311/42 418/309/42 420/312/42 -f 402/313/42 421/266/42 419/269/42 -f 399/304/42 420/312/42 415/314/42 -f 398/305/42 421/266/42 400/315/42 -f 409/316/41 422/274/41 423/317/41 -f 412/318/41 425/319/41 413/320/41 -f 413/320/41 426/292/41 411/321/41 -f 412/318/41 427/322/41 424/323/41 -f 411/321/41 428/275/41 407/324/41 -f 406/325/41 427/322/41 410/326/41 -f 409/316/41 429/327/41 406/325/41 -f 408/328/41 428/275/41 422/274/41 -f 433/289/42 436/329/42 437/286/42 -f 431/291/42 432/330/42 433/289/42 -f 435/331/42 430/332/42 431/291/42 -f 398/333/52 435/331/52 399/334/52 -f 400/335/53 434/336/53 398/337/53 -f 402/338/63 430/332/63 400/335/63 -f 404/339/53 432/330/53 402/338/53 -f 404/340/54 437/286/54 436/329/54 -f 440/341/41 445/302/41 441/296/41 -f 438/342/41 441/296/41 439/343/41 -f 439/343/41 443/299/41 438/342/41 -f 411/297/53 445/302/53 413/344/53 -f 409/345/52 442/346/52 408/347/52 -f 407/295/53 442/346/53 439/343/53 -f 410/348/62 438/342/62 406/298/62 -f 412/349/51 440/341/51 410/348/51 -f 447/350/41 448/351/41 446/352/41 -f 452/353/42 451/354/42 450/355/42 -f 452/353/42 450/355/42 455/356/42 -f 446/352/41 448/351/41 454/357/41 -f 456/358/41 459/359/41 458/360/41 -f 459/361/54 462/362/54 458/360/54 -f 463/363/42 460/364/42 462/362/42 -f 485/365/53 487/366/53 484/367/53 -f 520/368/64 523/369/64 522/370/64 -f 522/370/65 525/371/65 524/372/65 -f 525/373/66 526/374/66 524/375/66 -f 521/376/41 525/377/41 523/378/41 -f 526/374/67 521/379/67 520/368/67 -f 548/380/41 539/381/41 538/382/41 -f 539/383/68 542/384/68 538/385/68 -f 543/386/42 540/387/42 542/388/42 -f 542/384/53 536/389/53 538/385/53 -f 550/390/69 544/391/69 551/392/69 -f 539/383/54 546/393/54 543/394/54 -f 548/395/52 555/396/52 549/397/52 -f 550/398/70 553/399/70 548/400/70 -f 550/398/54 554/401/54 552/402/54 -f 549/397/71 554/403/71 551/404/71 -f 39/61/41 55/93/41 56/62/41 -f 40/64/42 42/70/42 57/65/42 -f 41/63/41 56/62/41 59/67/41 -f 44/69/42 60/405/42 57/65/42 -f 43/71/41 59/406/41 61/72/41 -f 46/74/42 62/80/42 60/75/42 -f 45/73/41 61/72/41 63/77/41 -f 46/74/42 48/83/42 64/79/42 -f 47/78/41 63/77/41 65/81/41 -f 48/83/42 50/87/42 66/84/42 -f 49/82/41 65/81/41 67/85/41 -f 50/87/42 52/92/42 68/88/42 -f 53/89/41 51/86/41 67/85/41 -f 54/91/42 70/94/42 68/88/42 -f 53/89/41 69/90/41 55/93/41 -f 54/91/42 40/64/42 58/66/42 -f 78/97/42 71/407/42 74/95/42 -f 72/408/42 73/409/42 74/95/42 -f 74/95/42 75/410/42 76/411/42 -f 76/411/42 77/96/42 74/95/42 -f 71/407/42 72/408/42 74/95/42 -f 86/100/41 79/412/41 80/413/41 -f 80/413/41 81/414/41 82/98/41 -f 82/98/41 83/415/41 84/416/41 -f 84/416/41 85/99/41 82/98/41 -f 86/100/41 80/413/41 82/98/41 -f 89/101/72 90/417/72 88/102/72 -f 105/418/44 89/419/44 97/114/44 -f 89/419/44 91/107/44 97/114/44 -f 103/420/44 105/418/44 97/114/44 -f 103/420/44 97/114/44 99/421/44 -f 102/422/44 103/420/44 100/423/44 -f 103/420/44 99/421/44 100/423/44 -f 101/106/44 102/422/44 100/423/44 -f 98/104/44 96/424/44 104/105/44 -f 101/106/44 100/423/44 98/104/44 -f 96/424/44 90/115/44 104/105/44 -f 92/108/44 90/115/44 119/425/44 -f 92/108/44 119/425/44 122/426/44 -f 123/427/44 121/428/44 91/107/44 -f 92/108/44 122/426/44 124/109/44 -f 124/109/44 123/427/44 91/107/44 -f 119/425/44 90/115/44 113/429/44 -f 119/425/44 113/429/44 120/430/44 -f 120/430/44 113/429/44 115/431/44 -f 120/430/44 115/431/44 116/432/44 -f 116/432/44 115/431/44 118/433/44 -f 116/432/44 118/433/44 114/110/44 -f 117/112/44 116/432/44 114/110/44 -f 111/111/44 91/107/44 121/428/44 -f 121/428/44 117/112/44 111/111/44 -f 113/429/44 90/115/44 96/424/44 -f 113/429/44 96/424/44 93/434/44 -f 109/435/44 113/429/44 93/434/44 -f 109/435/44 93/434/44 94/436/44 -f 112/437/44 109/435/44 94/436/44 -f 112/437/44 94/436/44 95/113/44 -f 110/438/44 112/437/44 95/113/44 -f 97/114/44 91/107/44 111/111/44 -f 111/111/44 110/438/44 95/113/44 -f 89/419/44 105/418/44 107/439/44 -f 89/419/44 107/439/44 108/116/44 -f 106/117/44 104/105/44 90/115/44 -f 89/419/44 108/116/44 90/115/44 -f 126/118/73 128/440/73 127/119/73 -f 129/441/46 127/134/46 135/442/46 -f 135/442/46 127/134/46 143/443/46 -f 137/444/46 135/442/46 141/445/46 -f 135/442/46 143/443/46 141/445/46 -f 138/446/46 137/444/46 141/445/46 -f 138/446/46 141/445/46 140/447/46 -f 128/448/46 134/131/46 142/122/46 -f 136/123/46 138/446/46 140/447/46 -f 136/123/46 140/447/46 139/121/46 -f 142/122/46 134/131/46 136/123/46 -f 129/441/46 159/449/46 161/450/46 -f 129/441/46 161/450/46 162/124/46 -f 157/127/46 128/448/46 130/126/46 -f 129/441/46 162/124/46 130/126/46 -f 160/125/46 157/127/46 130/126/46 -f 159/449/46 129/441/46 149/451/46 -f 159/449/46 149/451/46 155/452/46 -f 155/452/46 149/451/46 152/453/46 -f 155/452/46 152/453/46 154/454/46 -f 154/454/46 152/453/46 156/455/46 -f 154/454/46 156/455/46 153/456/46 -f 158/128/46 154/454/46 153/456/46 -f 151/129/46 128/448/46 157/127/46 -f 158/128/46 153/456/46 151/129/46 -f 149/451/46 129/441/46 135/442/46 -f 149/451/46 135/442/46 133/457/46 -f 148/458/46 149/451/46 133/457/46 -f 148/458/46 133/457/46 150/459/46 -f 150/459/46 133/457/46 132/460/46 -f 150/459/46 132/460/46 147/461/46 -f 147/461/46 132/460/46 131/130/46 -f 134/131/46 128/448/46 151/129/46 -f 147/461/46 131/130/46 151/129/46 -f 128/448/46 142/122/46 144/462/46 -f 128/448/46 144/462/46 146/132/46 -f 145/133/46 143/443/46 127/134/46 -f 128/448/46 146/132/46 127/134/46 -f 164/135/74 166/463/74 165/136/74 -f 167/464/48 165/151/48 173/465/48 -f 173/465/48 165/151/48 181/466/48 -f 175/467/48 173/465/48 181/466/48 -f 175/467/48 181/466/48 179/468/48 -f 176/469/48 175/467/48 179/468/48 -f 176/469/48 179/468/48 178/470/48 -f 166/471/48 172/148/48 180/139/48 -f 174/140/48 176/469/48 178/470/48 -f 174/140/48 178/470/48 177/138/48 -f 180/139/48 172/148/48 174/140/48 -f 167/464/48 197/472/48 199/473/48 -f 167/464/48 199/473/48 200/141/48 -f 195/144/48 166/471/48 168/143/48 -f 167/464/48 200/141/48 168/143/48 -f 198/142/48 195/144/48 168/143/48 -f 197/472/48 167/464/48 187/474/48 -f 197/472/48 187/474/48 193/475/48 -f 193/475/48 187/474/48 190/476/48 -f 193/475/48 190/476/48 192/477/48 -f 192/477/48 190/476/48 194/478/48 -f 192/477/48 194/478/48 196/479/48 -f 196/479/48 194/478/48 191/145/48 -f 189/146/48 166/471/48 195/144/48 -f 196/479/48 191/145/48 195/144/48 -f 187/474/48 167/464/48 173/465/48 -f 187/474/48 173/465/48 186/480/48 -f 186/480/48 173/465/48 171/481/48 -f 186/480/48 171/481/48 188/482/48 -f 188/482/48 171/481/48 170/483/48 -f 188/482/48 170/483/48 185/484/48 -f 185/484/48 170/483/48 169/147/48 -f 172/148/48 166/471/48 189/146/48 -f 185/484/48 169/147/48 189/146/48 -f 166/471/48 180/139/48 182/485/48 -f 166/471/48 182/485/48 184/149/48 -f 183/150/48 181/466/48 165/151/48 -f 166/471/48 184/149/48 165/151/48 -f 203/152/75 204/486/75 202/153/75 -f 219/487/50 203/488/50 211/165/50 -f 203/488/50 205/158/50 211/165/50 -f 217/489/50 219/487/50 213/490/50 -f 219/487/50 211/165/50 213/490/50 -f 216/491/50 217/489/50 214/492/50 -f 217/489/50 213/490/50 214/492/50 -f 215/157/50 216/491/50 212/155/50 -f 212/155/50 210/493/50 218/156/50 -f 216/491/50 214/492/50 212/155/50 -f 210/493/50 204/167/50 218/156/50 -f 206/159/50 204/167/50 233/494/50 -f 206/159/50 233/494/50 236/495/50 -f 237/496/50 235/497/50 205/158/50 -f 206/159/50 236/495/50 238/160/50 -f 238/160/50 237/496/50 205/158/50 -f 233/494/50 204/167/50 227/498/50 -f 233/494/50 227/498/50 229/499/50 -f 234/500/50 233/494/50 229/499/50 -f 234/500/50 229/499/50 232/501/50 -f 230/502/50 234/500/50 232/501/50 -f 230/502/50 232/501/50 228/161/50 -f 231/163/50 230/502/50 228/161/50 -f 225/162/50 205/158/50 235/497/50 -f 235/497/50 231/163/50 225/162/50 -f 227/498/50 204/167/50 210/493/50 -f 227/498/50 210/493/50 207/503/50 -f 223/504/50 227/498/50 207/503/50 -f 223/504/50 207/503/50 208/505/50 -f 226/506/50 223/504/50 208/505/50 -f 226/506/50 208/505/50 209/164/50 -f 224/166/50 226/506/50 209/164/50 -f 211/165/50 205/158/50 225/162/50 -f 225/162/50 224/166/50 211/165/50 -f 203/488/50 219/487/50 221/507/50 -f 203/488/50 221/507/50 222/168/50 -f 220/169/50 218/156/50 204/167/50 -f 203/488/50 222/168/50 204/167/50 -f 242/170/76 241/508/76 239/171/76 -f 260/509/52 251/178/52 277/510/52 -f 260/509/52 277/510/52 275/511/52 -f 253/186/52 263/512/52 269/513/52 -f 279/514/52 269/513/52 263/512/52 -f 260/509/52 275/511/52 259/175/52 -f 279/514/52 263/512/52 264/174/52 -f 259/175/52 275/511/52 281/173/52 -f 281/173/52 279/514/52 264/174/52 -f 253/186/52 269/513/52 267/515/52 -f 253/186/52 267/515/52 271/176/52 -f 273/177/52 277/510/52 251/178/52 -f 251/178/52 253/186/52 271/176/52 -f 244/516/52 243/517/52 250/518/52 -f 250/518/52 249/181/52 244/516/52 -f 248/179/52 247/519/52 246/520/52 -f 246/520/52 245/180/52 248/179/52 -f 244/516/52 249/181/52 245/180/52 -f 254/182/42 266/521/42 263/183/42 -f 252/185/53 254/189/53 253/186/53 -f 254/189/54 252/185/54 261/187/54 -f 261/187/54 262/522/54 265/523/54 -f 265/523/54 266/188/54 261/187/54 -f 260/190/41 261/524/41 252/191/41 -f 256/193/53 258/525/53 257/194/53 -f 292/196/54 290/211/54 302/197/54 -f 298/199/54 296/212/54 305/200/54 -f 286/202/54 299/210/54 301/203/54 -f 292/205/54 303/526/54 304/206/54 -f 284/208/54 298/199/54 306/201/54 -f 284/208/54 300/209/54 299/210/54 -f 290/211/54 288/204/54 301/203/54 -f 294/207/54 304/206/54 305/200/54 -f 308/213/52 307/216/52 315/214/52 -f 307/216/52 309/219/52 317/217/52 -f 310/218/52 318/221/52 317/217/52 -f 311/220/52 319/527/52 318/221/52 -f 311/222/52 312/225/52 320/223/52 -f 312/225/52 313/228/52 321/226/52 -f 314/227/52 322/229/52 321/226/52 -f 308/213/52 316/215/52 322/229/52 -f 325/232/52 323/528/52 330/529/52 -f 324/530/52 330/529/52 323/528/52 -f 329/531/52 328/230/52 325/232/52 -f 327/532/52 326/231/52 328/230/52 -f 325/232/52 330/529/52 329/531/52 -f 340/236/54 338/254/54 350/237/54 -f 334/239/56 364/259/56 372/240/56 -f 346/242/54 344/255/54 353/243/54 -f 334/245/54 347/253/54 349/246/54 -f 340/248/54 351/533/54 352/249/54 -f 332/251/54 346/242/54 354/244/54 -f 332/251/54 348/252/54 347/253/54 -f 338/254/54 336/247/54 349/246/54 -f 342/250/54 352/249/54 353/243/54 -f 357/258/52 355/534/52 362/535/52 -f 356/536/52 362/535/52 355/534/52 -f 361/537/52 360/256/52 357/258/52 -f 359/538/52 358/257/52 360/256/52 -f 357/258/52 362/535/52 361/537/52 -f 346/262/60 371/264/60 372/235/60 -f 377/265/42 376/539/42 421/266/42 -f 421/266/42 376/539/42 379/268/42 -f 389/540/54 384/541/54 385/542/54 -f 423/543/54 422/272/54 414/271/54 -f 389/540/54 385/542/54 388/544/54 -f 415/545/54 388/544/54 423/543/54 -f 375/270/54 377/277/54 414/271/54 -f 414/271/54 415/545/54 423/543/54 -f 385/542/54 423/543/54 388/544/54 -f 374/273/41 375/546/41 422/274/41 -f 375/270/51 374/547/51 376/276/51 -f 379/268/42 381/548/42 416/278/42 -f 376/276/61 374/547/61 378/279/61 -f 378/279/51 380/549/51 381/281/51 -f 395/550/52 396/551/52 397/552/52 -f 397/552/52 417/284/52 424/283/52 -f 416/282/52 381/281/52 380/549/52 -f 380/549/52 425/553/52 416/282/52 -f 424/283/52 394/554/52 397/552/52 -f 395/550/52 397/552/52 394/554/52 -f 416/282/52 425/553/52 424/283/52 -f 403/285/51 433/289/51 437/286/51 -f 401/288/62 431/291/62 433/289/62 -f 399/290/51 435/331/51 431/291/51 -f 426/292/41 425/319/41 380/293/41 -f 407/295/63 439/343/63 441/296/63 -f 428/275/41 426/292/41 378/294/41 -f 406/298/51 438/342/51 443/299/51 -f 412/301/54 413/555/54 445/302/54 -f 399/304/42 415/314/42 414/267/42 -f 404/306/42 416/278/42 417/307/42 -f 405/308/42 417/307/42 418/309/42 -f 404/306/42 402/313/42 419/269/42 -f 401/311/42 403/310/42 418/309/42 -f 402/313/42 400/315/42 421/266/42 -f 399/304/42 401/311/42 420/312/42 -f 398/305/42 414/267/42 421/266/42 -f 409/316/41 408/328/41 422/274/41 -f 412/318/41 424/323/41 425/319/41 -f 413/320/41 425/319/41 426/292/41 -f 412/318/41 410/326/41 427/322/41 -f 411/321/41 426/292/41 428/275/41 -f 406/325/41 429/327/41 427/322/41 -f 409/316/41 423/317/41 429/327/41 -f 408/328/41 407/324/41 428/275/41 -f 433/289/42 432/330/42 436/329/42 -f 431/291/42 430/332/42 432/330/42 -f 435/331/42 434/336/42 430/332/42 -f 398/333/52 434/336/52 435/331/52 -f 400/335/53 430/332/53 434/336/53 -f 402/338/63 432/330/63 430/332/63 -f 404/339/53 436/329/53 432/330/53 -f 404/340/54 405/556/54 437/286/54 -f 440/341/41 444/303/41 445/302/41 -f 438/342/41 440/341/41 441/296/41 -f 439/343/41 442/346/41 443/299/41 -f 411/297/53 441/296/53 445/302/53 -f 409/345/52 443/299/52 442/346/52 -f 407/295/53 408/557/53 442/346/53 -f 410/348/62 440/341/62 438/342/62 -f 412/349/51 444/303/51 440/341/51 -f 447/350/41 449/558/41 448/351/41 -f 452/353/42 453/559/42 451/354/42 -f 456/358/41 457/560/41 459/359/41 -f 459/361/54 463/561/54 462/362/54 -f 463/363/42 461/562/42 460/364/42 -f 483/563/53 480/564/53 481/565/53 -f 481/565/53 484/367/53 487/366/53 -f 485/365/53 486/566/53 487/366/53 -f 487/366/53 482/567/53 481/565/53 -f 483/563/53 481/565/53 482/567/53 -f 520/368/77 521/379/77 523/369/77 -f 522/370/78 523/369/78 525/371/78 -f 525/373/79 527/568/79 526/374/79 -f 521/376/41 527/569/41 525/377/41 -f 526/374/80 527/568/80 521/379/80 -f 538/382/41 536/570/41 548/380/41 -f 550/390/41 548/380/41 536/570/41 -f 536/570/41 537/571/41 550/390/41 -f 539/383/68 543/394/68 542/384/68 -f 543/386/42 541/572/42 540/387/42 -f 542/384/53 540/573/53 536/389/53 -f 550/390/69 537/571/69 544/391/69 -f 539/383/54 545/574/54 546/393/54 -f 548/395/52 553/575/52 555/396/52 -f 550/398/70 552/402/70 553/399/70 -f 550/398/54 551/576/54 554/401/54 -f 549/397/71 555/396/71 554/403/71 +vt 0.999863 0.558603 +vt 0.913036 0.999942 +vt 0.913046 0.558531 +vt 0.290226 0.680652 +vt 0.328350 0.613950 +vt 0.289986 0.613909 +vt 0.999954 0.999867 +vt 0.328352 0.680850 +s 0 +f 1/1/1 18/2/1 3/3/1 +f 2/4/2 19/5/2 20/6/2 +f 3/3/1 21/7/1 5/8/1 +f 6/9/2 19/5/2 4/10/2 +f 5/11/1 23/12/1 7/13/1 +f 8/14/2 22/15/2 6/16/2 +f 7/13/1 25/17/1 9/18/1 +f 8/14/2 26/19/2 24/20/2 +f 9/18/1 27/21/1 11/22/1 +f 10/23/2 28/24/2 26/19/2 +f 11/22/1 29/25/1 13/26/1 +f 12/27/2 30/28/2 28/24/2 +f 15/29/1 29/25/1 31/30/1 +f 16/31/2 30/28/2 14/32/2 +f 15/29/1 17/33/1 1/1/1 +f 16/31/2 20/6/2 32/34/2 +f 36/35/2 39/36/2 40/37/2 +f 44/38/1 47/39/1 48/40/1 +f 51/41/3 50/42/3 49/43/3 +f 60/44/4 66/45/4 63/46/4 +f 53/47/4 54/48/4 86/49/4 +f 76/50/4 73/51/4 79/52/4 +f 57/53/4 59/54/4 73/51/4 +f 52/55/4 70/56/4 68/57/4 +f 88/42/5 89/41/5 87/43/5 +f 101/46/6 104/45/6 98/44/6 +f 124/49/6 122/58/6 92/48/6 +f 119/59/6 120/60/6 113/61/6 +f 113/61/6 93/62/6 96/63/6 +f 108/56/6 107/64/6 89/65/6 +f 126/42/7 127/41/7 125/43/7 +f 139/66/8 142/67/8 136/44/8 +f 162/68/8 160/69/8 130/70/8 +f 157/71/8 153/72/8 151/73/8 +f 151/73/8 131/74/8 134/75/8 +f 146/76/8 145/77/8 127/78/8 +f 165/41/9 164/42/9 163/43/9 +f 174/79/10 180/45/10 177/80/10 +f 167/81/11 168/82/11 200/83/11 +f 190/84/11 187/85/11 193/86/11 +f 171/87/11 173/88/11 186/89/11 +f 166/90/11 184/56/11 182/57/11 +f 204/91/12 201/92/12 202/93/12 +f 243/94/13 226/95/13 221/96/13 +f 233/97/13 235/98/13 213/99/13 +f 210/100/13 207/101/13 211/102/13 +f 216/103/2 225/104/2 215/105/2 +f 214/106/14 215/107/14 213/99/14 +f 223/108/15 228/109/15 216/110/15 +f 222/111/1 214/112/1 213/113/1 +f 218/91/14 219/92/14 217/93/14 +f 254/114/15 264/115/15 265/116/15 +f 260/117/15 267/118/15 268/119/15 +f 248/120/15 263/121/15 250/122/15 +f 254/123/16 266/124/16 256/125/16 +f 246/126/15 268/119/15 262/127/15 +f 246/126/15 261/128/15 248/120/15 +f 252/129/15 263/121/15 264/115/15 +f 256/125/15 267/118/15 258/130/15 +f 270/131/13 277/132/13 278/133/13 +f 269/134/13 279/135/13 277/132/13 +f 272/136/13 279/135/13 271/137/13 +f 273/138/13 280/139/13 272/136/13 +f 273/140/13 282/141/13 281/142/13 +f 274/143/13 283/144/13 282/141/13 +f 276/145/13 283/144/13 275/146/13 +f 270/131/13 284/147/13 276/145/13 +f 290/148/13 288/149/13 287/150/13 +f 325/151/17 332/152/17 334/153/17 +f 302/154/15 312/155/15 313/156/15 +f 296/152/18 334/157/18 333/153/18 +f 308/158/15 315/159/15 316/160/15 +f 296/161/15 311/162/15 298/163/15 +f 302/164/15 314/165/15 304/166/15 +f 294/167/15 316/160/15 310/168/15 +f 294/167/15 309/169/15 296/161/15 +f 300/170/15 311/162/15 312/155/15 +f 304/166/15 315/159/15 306/171/15 +f 322/172/13 320/173/13 319/174/13 +f 326/175/19 325/176/19 334/157/19 +f 294/151/20 296/152/20 333/153/20 +f 308/175/21 294/176/21 333/157/21 +f 308/175/22 334/153/22 332/152/22 +f 339/177/2 383/178/2 376/179/2 +f 383/178/2 341/180/2 381/181/2 +f 337/182/15 376/183/15 384/184/15 +f 336/185/1 384/186/1 390/187/1 +f 337/182/12 338/188/12 339/189/12 +f 341/180/2 378/190/2 381/181/2 +f 338/188/23 340/191/23 341/192/23 +f 340/191/12 343/193/12 341/192/12 +f 378/194/13 386/195/13 379/196/13 +f 365/197/12 399/198/12 367/199/12 +f 363/200/24 395/201/24 365/197/24 +f 361/202/12 393/203/12 363/200/12 +f 388/204/1 342/205/1 340/206/1 +f 369/200/25 403/201/25 373/197/25 +f 390/187/1 340/206/1 336/185/1 +f 368/207/12 405/208/12 371/209/12 +f 374/210/15 407/198/15 406/211/15 +f 361/212/2 376/179/2 360/213/2 +f 366/214/2 379/215/2 367/216/2 +f 367/216/2 380/217/2 365/218/2 +f 366/214/2 381/181/2 378/190/2 +f 363/219/2 380/217/2 382/220/2 +f 364/221/2 383/178/2 381/181/2 +f 361/212/2 382/220/2 377/222/2 +f 360/213/2 383/178/2 362/223/2 +f 371/224/1 384/186/1 385/225/1 +f 374/226/1 387/227/1 375/228/1 +f 375/228/1 388/204/1 373/229/1 +f 374/226/1 389/230/1 386/231/1 +f 373/229/1 390/187/1 369/232/1 +f 368/233/1 389/230/1 372/234/1 +f 371/224/1 391/235/1 368/233/1 +f 370/236/1 390/187/1 384/186/1 +f 395/201/2 398/211/2 399/198/2 +f 393/203/2 394/237/2 395/201/2 +f 397/238/2 392/239/2 393/203/2 +f 360/240/13 397/238/13 361/241/13 +f 362/207/14 396/208/14 360/209/14 +f 364/242/25 392/239/25 362/207/25 +f 366/243/14 394/237/14 364/242/14 +f 366/210/15 399/198/15 398/211/15 +f 402/237/1 407/198/1 403/201/1 +f 400/239/1 403/201/1 401/203/1 +f 401/203/1 405/208/1 400/239/1 +f 373/197/14 407/198/14 375/199/14 +f 371/240/13 404/238/13 370/241/13 +f 369/200/14 404/238/14 401/203/14 +f 372/242/24 400/239/24 368/207/24 +f 374/243/12 402/237/12 372/242/12 +f 409/244/1 410/245/1 408/246/1 +f 414/245/2 413/244/2 412/246/2 +f 414/245/2 412/246/2 417/247/2 +f 408/246/1 410/245/1 416/247/1 +f 418/248/1 421/249/1 420/250/1 +f 421/251/15 424/252/15 420/250/15 +f 425/253/2 422/254/2 424/252/2 +f 447/255/14 449/256/14 446/257/14 +f 494/258/1 485/259/1 484/260/1 +f 485/261/26 488/262/26 484/263/26 +f 489/264/2 486/265/2 488/266/2 +f 488/262/14 482/267/14 484/263/14 +f 496/268/27 490/269/27 497/270/27 +f 485/261/15 492/271/15 489/272/15 +f 494/273/13 501/274/13 495/275/13 +f 498/276/28 502/277/28 496/278/28 +f 496/275/15 500/279/15 498/274/15 +f 495/275/29 500/280/29 497/281/29 +f 1/1/1 17/33/1 18/2/1 +f 2/4/2 4/10/2 19/5/2 +f 3/3/1 18/2/1 21/7/1 +f 6/9/2 22/282/2 19/5/2 +f 5/11/1 21/283/1 23/12/1 +f 8/14/2 24/20/2 22/15/2 +f 7/13/1 23/12/1 25/17/1 +f 8/14/2 10/23/2 26/19/2 +f 9/18/1 25/17/1 27/21/1 +f 10/23/2 12/27/2 28/24/2 +f 11/22/1 27/21/1 29/25/1 +f 12/27/2 14/32/2 30/28/2 +f 15/29/1 13/26/1 29/25/1 +f 16/31/2 32/34/2 30/28/2 +f 15/29/1 31/30/1 17/33/1 +f 16/31/2 2/4/2 20/6/2 +f 40/37/2 33/284/2 36/35/2 +f 34/285/2 35/286/2 36/35/2 +f 36/35/2 37/287/2 38/288/2 +f 38/288/2 39/36/2 36/35/2 +f 33/284/2 34/285/2 36/35/2 +f 48/40/1 41/289/1 42/290/1 +f 42/290/1 43/291/1 44/38/1 +f 44/38/1 45/292/1 46/293/1 +f 46/293/1 47/39/1 44/38/1 +f 48/40/1 42/290/1 44/38/1 +f 51/41/30 52/294/30 50/42/30 +f 67/295/4 51/65/4 59/54/4 +f 51/65/4 53/47/4 59/54/4 +f 65/296/4 67/295/4 59/54/4 +f 65/296/4 59/54/4 61/297/4 +f 64/298/4 65/296/4 62/299/4 +f 65/296/4 61/297/4 62/299/4 +f 63/46/4 64/298/4 62/299/4 +f 60/44/4 58/63/4 66/45/4 +f 63/46/4 62/299/4 60/44/4 +f 58/63/4 52/55/4 66/45/4 +f 54/48/4 52/55/4 81/59/4 +f 54/48/4 81/59/4 84/58/4 +f 85/300/4 83/301/4 53/47/4 +f 54/48/4 84/58/4 86/49/4 +f 86/49/4 85/300/4 53/47/4 +f 81/59/4 52/55/4 75/61/4 +f 81/59/4 75/61/4 82/60/4 +f 82/60/4 75/61/4 77/302/4 +f 82/60/4 77/302/4 78/303/4 +f 78/303/4 77/302/4 80/304/4 +f 78/303/4 80/304/4 76/50/4 +f 79/52/4 78/303/4 76/50/4 +f 73/51/4 53/47/4 83/301/4 +f 83/301/4 79/52/4 73/51/4 +f 75/61/4 52/55/4 58/63/4 +f 75/61/4 58/63/4 55/62/4 +f 71/305/4 75/61/4 55/62/4 +f 71/305/4 55/62/4 56/306/4 +f 74/307/4 71/305/4 56/306/4 +f 74/307/4 56/306/4 57/53/4 +f 72/308/4 74/307/4 57/53/4 +f 59/54/4 53/47/4 73/51/4 +f 73/51/4 72/308/4 57/53/4 +f 51/65/4 67/295/4 69/64/4 +f 51/65/4 69/64/4 70/56/4 +f 68/57/4 66/45/4 52/55/4 +f 51/65/4 70/56/4 52/55/4 +f 88/42/31 90/294/31 89/41/31 +f 91/47/6 89/65/6 97/54/6 +f 97/54/6 89/65/6 105/295/6 +f 99/297/6 97/54/6 103/296/6 +f 97/54/6 105/295/6 103/296/6 +f 100/299/6 99/297/6 103/296/6 +f 100/299/6 103/296/6 102/298/6 +f 90/55/6 96/63/6 104/45/6 +f 98/44/6 100/299/6 102/298/6 +f 98/44/6 102/298/6 101/46/6 +f 104/45/6 96/63/6 98/44/6 +f 91/47/6 121/301/6 123/300/6 +f 91/47/6 123/300/6 124/49/6 +f 119/59/6 90/55/6 92/48/6 +f 91/47/6 124/49/6 92/48/6 +f 122/58/6 119/59/6 92/48/6 +f 121/301/6 91/47/6 111/51/6 +f 121/301/6 111/51/6 117/52/6 +f 117/52/6 111/51/6 114/50/6 +f 117/52/6 114/50/6 116/303/6 +f 116/303/6 114/50/6 118/304/6 +f 116/303/6 118/304/6 115/302/6 +f 120/60/6 116/303/6 115/302/6 +f 113/61/6 90/55/6 119/59/6 +f 120/60/6 115/302/6 113/61/6 +f 111/51/6 91/47/6 97/54/6 +f 111/51/6 97/54/6 95/53/6 +f 110/308/6 111/51/6 95/53/6 +f 110/308/6 95/53/6 112/307/6 +f 112/307/6 95/53/6 94/306/6 +f 112/307/6 94/306/6 109/305/6 +f 109/305/6 94/306/6 93/62/6 +f 96/63/6 90/55/6 113/61/6 +f 109/305/6 93/62/6 113/61/6 +f 90/55/6 104/45/6 106/57/6 +f 90/55/6 106/57/6 108/56/6 +f 107/64/6 105/295/6 89/65/6 +f 90/55/6 108/56/6 89/65/6 +f 126/42/32 128/294/32 127/41/32 +f 129/309/8 127/78/8 135/54/8 +f 135/54/8 127/78/8 143/310/8 +f 137/297/8 135/54/8 143/310/8 +f 137/297/8 143/310/8 141/311/8 +f 138/299/8 137/297/8 141/311/8 +f 138/299/8 141/311/8 140/312/8 +f 128/313/8 134/75/8 142/67/8 +f 136/44/8 138/299/8 140/312/8 +f 136/44/8 140/312/8 139/66/8 +f 142/67/8 134/75/8 136/44/8 +f 129/309/8 159/314/8 161/315/8 +f 129/309/8 161/315/8 162/68/8 +f 157/71/8 128/313/8 130/70/8 +f 129/309/8 162/68/8 130/70/8 +f 160/69/8 157/71/8 130/70/8 +f 159/314/8 129/309/8 149/316/8 +f 159/314/8 149/316/8 155/317/8 +f 155/317/8 149/316/8 152/318/8 +f 155/317/8 152/318/8 154/319/8 +f 154/319/8 152/318/8 156/320/8 +f 154/319/8 156/320/8 158/321/8 +f 158/321/8 156/320/8 153/72/8 +f 151/73/8 128/313/8 157/71/8 +f 158/321/8 153/72/8 157/71/8 +f 149/316/8 129/309/8 135/54/8 +f 149/316/8 135/54/8 148/322/8 +f 148/322/8 135/54/8 133/323/8 +f 148/322/8 133/323/8 150/324/8 +f 150/324/8 133/323/8 132/325/8 +f 150/324/8 132/325/8 147/326/8 +f 147/326/8 132/325/8 131/74/8 +f 134/75/8 128/313/8 151/73/8 +f 147/326/8 131/74/8 151/73/8 +f 128/313/8 142/67/8 144/327/8 +f 128/313/8 144/327/8 146/76/8 +f 145/77/8 143/310/8 127/78/8 +f 128/313/8 146/76/8 127/78/8 +f 165/41/33 166/294/33 164/42/33 +f 181/295/11 165/328/11 173/88/11 +f 165/328/11 167/81/11 173/88/11 +f 179/329/11 181/295/11 175/330/11 +f 181/295/11 173/88/11 175/330/11 +f 178/331/11 179/329/11 176/332/11 +f 179/329/11 175/330/11 176/332/11 +f 177/80/11 178/331/11 174/79/11 +f 174/79/11 172/333/11 180/45/11 +f 178/331/11 176/332/11 174/79/11 +f 172/333/11 166/90/11 180/45/11 +f 168/82/11 166/90/11 195/334/11 +f 168/82/11 195/334/11 198/335/11 +f 199/336/11 197/337/11 167/81/11 +f 168/82/11 198/335/11 200/83/11 +f 200/83/11 199/336/11 167/81/11 +f 195/334/11 166/90/11 189/338/11 +f 195/334/11 189/338/11 191/339/11 +f 196/340/11 195/334/11 191/339/11 +f 196/340/11 191/339/11 194/341/11 +f 192/342/11 196/340/11 194/341/11 +f 192/342/11 194/341/11 190/84/11 +f 193/86/11 192/342/11 190/84/11 +f 187/85/11 167/81/11 197/337/11 +f 197/337/11 193/86/11 187/85/11 +f 189/338/11 166/90/11 172/333/11 +f 189/338/11 172/333/11 169/343/11 +f 185/344/11 189/338/11 169/343/11 +f 185/344/11 169/343/11 170/345/11 +f 188/346/11 185/344/11 170/345/11 +f 188/346/11 170/345/11 171/87/11 +f 186/89/11 188/346/11 171/87/11 +f 173/88/11 167/81/11 187/85/11 +f 187/85/11 186/89/11 173/88/11 +f 165/328/11 181/295/11 183/347/11 +f 165/328/11 183/347/11 184/56/11 +f 182/57/11 180/45/11 166/90/11 +f 165/328/11 184/56/11 166/90/11 +f 204/91/34 203/4/34 201/92/34 +f 222/348/13 213/99/13 239/349/13 +f 222/348/13 239/349/13 237/350/13 +f 215/107/13 225/351/13 231/352/13 +f 241/353/13 231/352/13 225/351/13 +f 222/348/13 237/350/13 221/96/13 +f 241/353/13 225/351/13 226/95/13 +f 221/96/13 237/350/13 243/94/13 +f 243/94/13 241/353/13 226/95/13 +f 215/107/13 231/352/13 229/354/13 +f 215/107/13 229/354/13 233/97/13 +f 235/98/13 239/349/13 213/99/13 +f 213/99/13 215/107/13 233/97/13 +f 206/355/13 205/356/13 212/357/13 +f 212/357/13 211/102/13 206/355/13 +f 210/100/13 209/358/13 208/359/13 +f 208/359/13 207/101/13 210/100/13 +f 206/355/13 211/102/13 207/101/13 +f 216/103/2 228/360/2 225/104/2 +f 214/106/14 216/110/14 215/107/14 +f 216/110/15 214/106/15 223/108/15 +f 223/108/15 224/361/15 227/362/15 +f 227/362/15 228/109/15 223/108/15 +f 222/111/1 223/363/1 214/112/1 +f 218/91/14 220/4/14 219/92/14 +f 254/114/15 252/129/15 264/115/15 +f 260/117/15 258/130/15 267/118/15 +f 248/120/15 261/128/15 263/121/15 +f 254/123/15 265/364/15 266/124/15 +f 246/126/35 260/117/35 268/119/35 +f 246/126/15 262/127/15 261/128/15 +f 252/129/15 250/122/15 263/121/15 +f 256/125/15 266/124/15 267/118/15 +f 270/131/13 269/134/13 277/132/13 +f 269/134/13 271/137/13 279/135/13 +f 272/136/13 280/139/13 279/135/13 +f 273/138/13 281/365/13 280/139/13 +f 273/140/13 274/143/13 282/141/13 +f 274/143/13 275/146/13 283/144/13 +f 276/145/13 284/147/13 283/144/13 +f 270/131/13 278/133/13 284/147/13 +f 287/150/13 285/366/13 292/367/13 +f 286/368/13 292/367/13 285/366/13 +f 291/369/13 290/148/13 287/150/13 +f 289/370/13 288/149/13 290/148/13 +f 287/150/13 292/367/13 291/369/13 +f 302/154/15 300/170/15 312/155/15 +f 296/152/18 326/175/18 334/157/18 +f 308/158/15 306/171/15 315/159/15 +f 296/161/15 309/169/15 311/162/15 +f 302/164/15 313/371/15 314/165/15 +f 294/167/15 308/158/15 316/160/15 +f 294/167/15 310/168/15 309/169/15 +f 300/170/15 298/163/15 311/162/15 +f 304/166/15 314/165/15 315/159/15 +f 319/174/13 317/372/13 324/373/13 +f 318/374/13 324/373/13 317/372/13 +f 323/375/13 322/172/13 319/174/13 +f 321/376/13 320/173/13 322/172/13 +f 319/174/13 324/373/13 323/375/13 +f 308/175/22 333/157/22 334/153/22 +f 339/177/2 338/377/2 383/178/2 +f 383/178/2 338/377/2 341/180/2 +f 351/378/15 346/379/15 347/380/15 +f 385/381/15 384/184/15 376/183/15 +f 351/378/15 347/380/15 350/382/15 +f 377/383/15 350/382/15 385/381/15 +f 337/182/15 339/189/15 376/183/15 +f 376/183/15 377/383/15 385/381/15 +f 347/380/15 385/381/15 350/382/15 +f 336/185/1 337/384/1 384/186/1 +f 337/182/12 336/385/12 338/188/12 +f 341/180/2 343/386/2 378/190/2 +f 338/188/23 336/385/23 340/191/23 +f 340/191/12 342/177/12 343/193/12 +f 357/387/13 358/388/13 359/389/13 +f 359/389/13 379/196/13 386/195/13 +f 378/194/13 343/193/13 342/177/13 +f 342/177/13 387/390/13 378/194/13 +f 386/195/13 356/391/13 359/389/13 +f 357/387/13 359/389/13 356/391/13 +f 378/194/13 387/390/13 386/195/13 +f 365/197/12 395/201/12 399/198/12 +f 363/200/24 393/203/24 395/201/24 +f 361/202/12 397/238/12 393/203/12 +f 388/204/1 387/227/1 342/205/1 +f 369/200/25 401/203/25 403/201/25 +f 390/187/1 388/204/1 340/206/1 +f 368/207/12 400/239/12 405/208/12 +f 374/210/15 375/392/15 407/198/15 +f 361/212/2 377/222/2 376/179/2 +f 366/214/2 378/190/2 379/215/2 +f 367/216/2 379/215/2 380/217/2 +f 366/214/2 364/221/2 381/181/2 +f 363/219/2 365/218/2 380/217/2 +f 364/221/2 362/223/2 383/178/2 +f 361/212/2 363/219/2 382/220/2 +f 360/213/2 376/179/2 383/178/2 +f 371/224/1 370/236/1 384/186/1 +f 374/226/1 386/231/1 387/227/1 +f 375/228/1 387/227/1 388/204/1 +f 374/226/1 372/234/1 389/230/1 +f 373/229/1 388/204/1 390/187/1 +f 368/233/1 391/235/1 389/230/1 +f 371/224/1 385/225/1 391/235/1 +f 370/236/1 369/232/1 390/187/1 +f 395/201/2 394/237/2 398/211/2 +f 393/203/2 392/239/2 394/237/2 +f 397/238/2 396/208/2 392/239/2 +f 360/240/13 396/208/13 397/238/13 +f 362/207/14 392/239/14 396/208/14 +f 364/242/25 394/237/25 392/239/25 +f 366/243/14 398/211/14 394/237/14 +f 366/210/15 367/392/15 399/198/15 +f 402/237/1 406/211/1 407/198/1 +f 400/239/1 402/237/1 403/201/1 +f 401/203/1 404/238/1 405/208/1 +f 373/197/14 403/201/14 407/198/14 +f 371/240/13 405/208/13 404/238/13 +f 369/200/14 370/202/14 404/238/14 +f 372/242/24 402/237/24 400/239/24 +f 374/243/12 406/211/12 402/237/12 +f 409/244/1 411/393/1 410/245/1 +f 414/245/2 415/393/2 413/244/2 +f 418/248/1 419/394/1 421/249/1 +f 421/251/15 425/395/15 424/252/15 +f 425/253/2 423/396/2 422/254/2 +f 445/397/14 442/398/14 443/399/14 +f 443/399/14 446/257/14 449/256/14 +f 447/255/14 448/400/14 449/256/14 +f 449/256/14 444/401/14 443/399/14 +f 445/397/14 443/399/14 444/401/14 +f 482/402/1 502/403/1 503/404/1 +f 496/268/1 502/403/1 482/402/1 +f 482/402/1 483/405/1 496/268/1 +f 485/261/26 489/272/26 488/262/26 +f 489/264/2 487/406/2 486/265/2 +f 488/262/14 486/407/14 482/267/14 +f 496/268/27 483/405/27 490/269/27 +f 485/261/15 491/408/15 492/271/15 +f 494/273/13 499/279/13 501/274/13 +f 499/279/36 494/273/36 503/409/36 +f 496/275/15 497/273/15 500/279/15 +f 495/275/29 501/274/29 500/280/29 s 1 -f 58/66/81 56/62/82 55/93/83 -f 57/65/84 59/67/85 56/62/82 -f 60/75/86 61/72/87 59/406/85 -f 62/80/88 63/77/89 61/72/87 -f 64/79/90 65/81/91 63/77/89 -f 66/84/92 67/85/93 65/81/91 -f 68/88/94 69/90/95 67/85/93 -f 70/94/96 55/93/83 69/90/95 -f 72/577/81 42/70/97 40/64/98 -f 73/578/96 40/64/98 54/91/99 -f 74/579/94 54/91/99 52/92/100 -f 75/580/92 52/92/100 50/87/101 -f 76/581/90 50/87/101 48/83/102 -f 77/582/88 48/83/102 46/74/103 -f 78/583/86 46/74/103 44/76/104 -f 71/584/84 44/69/104 42/70/97 -f 80/585/82 39/61/105 41/63/106 -f 81/586/85 41/63/106 43/68/107 -f 82/587/87 43/71/107 45/73/108 -f 83/588/89 45/73/108 47/78/109 -f 84/589/91 47/78/109 49/82/110 -f 85/590/93 49/82/110 51/86/111 -f 86/591/95 51/86/111 53/89/112 -f 79/592/83 53/89/112 39/61/105 -f 246/593/113 270/594/114 245/595/115 -f 249/596/116 274/597/117 248/598/118 -f 250/599/119 282/600/120 276/601/121 -f 243/602/122 280/603/123 282/604/120 -f 249/596/116 276/601/121 278/605/124 -f 262/606/125 264/607/126 265/608/127 -f 244/609/128 270/594/114 280/603/123 -f 262/606/125 260/190/129 259/610/130 -f 264/607/126 266/521/131 265/608/127 -f 248/598/118 272/611/132 247/612/133 -f 269/613/134 268/614/135 267/615/136 -f 272/611/132 273/616/137 271/617/138 -f 272/611/132 267/615/136 268/614/135 -f 277/618/139 276/601/121 275/619/140 -f 274/597/117 277/618/139 273/616/137 -f 280/603/123 269/613/134 279/620/141 -f 282/604/120 279/620/141 281/621/142 -f 282/600/120 275/619/140 276/601/121 -f 247/612/133 268/614/135 246/593/113 -f 284/208/143 285/622/144 283/623/51 -f 285/622/144 288/204/145 287/624/42 -f 287/624/42 290/211/146 289/625/147 -f 290/211/146 291/626/53 289/625/147 -f 292/205/148 293/627/149 291/628/53 -f 294/207/150 295/629/41 293/627/149 -f 296/212/151 297/630/152 295/629/41 -f 298/199/153 283/623/51 297/630/152 -f 300/209/154 315/214/155 299/210/156 -f 307/216/157 325/631/158 309/219/159 -f 306/201/160 316/215/161 300/209/154 -f 305/200/162 320/223/163 321/226/164 -f 303/198/165 318/221/166 319/527/167 -f 299/210/156 317/217/158 301/203/168 -f 305/200/162 322/229/169 306/201/160 -f 303/526/165 320/223/163 304/206/170 -f 301/203/168 318/221/166 302/197/171 -f 313/228/172 330/632/169 314/227/173 -f 311/222/174 328/633/163 312/225/175 -f 309/219/159 326/634/166 310/218/176 -f 308/213/177 323/635/155 307/216/157 -f 314/227/173 324/636/161 308/213/177 -f 312/225/175 329/637/164 313/228/172 -f 310/218/176 327/638/167 311/220/174 -f 364/639/178 336/247/145 365/640/42 -f 336/247/145 366/641/147 365/640/42 -f 338/254/146 367/642/53 366/641/147 -f 340/248/148 368/643/149 367/644/53 -f 342/250/150 369/645/41 368/643/149 -f 369/645/41 346/242/179 370/646/180 -f 348/252/154 355/647/155 347/253/156 -f 354/244/160 356/648/161 348/252/154 -f 353/243/162 360/649/163 361/650/164 -f 350/237/171 359/651/167 351/238/165 -f 347/253/156 357/652/158 349/246/168 -f 353/243/162 362/653/169 354/244/160 -f 351/533/165 360/649/163 352/249/170 -f 350/237/171 357/652/158 358/654/166 -f 370/646/180 331/655/51 345/656/152 -f 369/645/41 345/656/152 343/657/41 -f 368/643/149 343/657/41 341/658/149 -f 367/644/53 341/658/149 339/659/53 -f 366/641/147 339/660/53 337/661/147 -f 365/640/42 337/661/147 335/662/42 -f 364/639/178 335/662/42 333/663/144 -f 363/664/181 333/665/144 331/655/51 -f 387/666/182 390/667/183 382/668/183 -f 429/327/41 391/669/184 427/322/41 -f 391/669/184 424/323/185 427/322/41 -f 393/670/182 395/671/186 390/667/183 -f 382/668/183 385/672/187 384/673/188 -f 387/666/182 388/674/189 386/675/190 -f 390/667/183 383/676/184 382/668/183 -f 392/677/190 387/666/182 386/675/190 -f 397/678/191 393/670/182 392/677/190 -f 391/669/184 395/671/186 394/679/192 -f 389/680/193 382/668/183 384/673/188 -f 418/309/42 397/678/191 392/677/190 -f 420/312/42 392/677/190 386/675/190 -f 415/314/194 386/675/190 388/674/189 -f 429/327/41 385/672/187 383/676/184 -f 449/681/195 452/682/196 448/683/197 -f 450/684/198 447/685/185 446/686/199 -f 446/686/199 455/687/200 450/684/198 -f 448/683/197 455/687/200 454/688/201 -f 461/689/202 456/358/203 460/364/204 -f 462/362/205 456/358/203 458/360/206 -f 475/690/207 465/691/208 472/692/209 -f 468/693/210 484/694/211 481/695/212 -f 479/696/213 494/697/214 474/698/215 -f 465/691/208 487/699/216 472/692/209 -f 479/696/213 473/700/217 476/701/218 -f 473/700/217 485/702/219 476/701/218 -f 490/703/220 496/704/221 499/705/222 -f 467/706/223 490/703/220 470/707/224 -f 478/708/225 491/709/226 492/710/227 -f 467/706/223 469/711/228 464/712/229 -f 491/709/226 501/713/230 492/710/227 -f 475/690/207 488/714/231 466/715/232 -f 468/693/210 478/708/225 477/716/233 -f 494/697/214 500/717/234 503/718/235 -f 495/719/236 497/720/237 488/714/231 -f 466/715/232 464/712/229 465/691/208 -f 471/721/238 469/711/228 470/707/224 -f 479/722/213 477/716/233 478/708/225 -f 472/692/209 474/698/215 475/690/207 -f 472/692/209 486/723/239 473/700/217 -f 477/716/233 485/724/219 484/694/211 -f 464/712/229 482/725/240 465/691/208 -f 469/711/228 481/695/212 480/726/241 -f 490/703/220 471/721/238 470/707/224 -f 479/722/213 492/710/227 493/727/242 -f 495/719/236 474/698/215 494/697/214 -f 466/715/232 489/728/243 467/706/223 -f 503/718/235 495/719/236 494/697/214 -f 489/728/243 497/720/237 496/704/221 -f 490/703/220 498/729/244 491/709/226 -f 500/730/234 492/710/227 501/713/230 -f 469/711/228 483/731/245 464/712/229 -f 506/732/246 509/733/247 508/734/247 -f 508/734/247 511/735/248 510/736/248 -f 510/736/248 505/737/249 504/738/249 -f 517/739/250 514/740/251 516/741/250 -f 519/742/252 516/741/250 518/743/252 -f 513/744/253 518/743/252 512/745/253 -f 529/746/254 530/747/255 528/748/254 -f 533/749/256 534/750/257 532/751/256 -f 535/752/257 528/748/254 534/750/257 -f 549/753/258 551/392/259 547/754/260 -f 541/572/261 546/755/262 547/754/260 -f 548/380/263 545/756/264 539/381/265 -f 58/66/81 57/65/84 56/62/82 -f 57/65/84 60/405/86 59/67/85 -f 60/75/86 62/80/88 61/72/87 -f 62/80/88 64/79/90 63/77/89 -f 64/79/90 66/84/92 65/81/91 -f 66/84/92 68/88/94 67/85/93 -f 68/88/94 70/94/96 69/90/95 -f 70/94/96 58/66/81 55/93/83 -f 72/577/81 71/584/84 42/70/97 -f 73/578/96 72/577/81 40/64/98 -f 74/579/94 73/578/96 54/91/99 -f 75/580/92 74/579/94 52/92/100 -f 76/581/90 75/580/92 50/87/101 -f 77/582/88 76/581/90 48/83/102 -f 78/583/86 77/582/88 46/74/103 -f 71/584/84 78/757/86 44/69/104 -f 80/585/82 79/592/83 39/61/105 -f 81/586/85 80/585/82 41/63/106 -f 82/587/87 81/758/85 43/71/107 -f 83/588/89 82/587/87 45/73/108 -f 84/589/91 83/588/89 47/78/109 -f 85/590/93 84/589/91 49/82/110 -f 86/591/95 85/590/93 51/86/111 -f 79/592/83 86/591/95 53/89/112 -f 246/593/113 268/614/135 270/594/114 -f 249/596/116 278/605/124 274/597/117 -f 250/599/119 243/759/122 282/600/120 -f 243/602/122 244/609/128 280/603/123 -f 249/596/116 250/599/119 276/601/121 -f 262/606/125 259/610/130 264/607/126 -f 244/609/128 245/595/115 270/594/114 -f 262/606/125 261/524/266 260/190/129 -f 264/607/126 263/183/267 266/521/131 -f 248/598/118 274/597/117 272/611/132 -f 269/613/134 270/594/114 268/614/135 -f 272/611/132 274/597/117 273/616/137 -f 272/611/132 271/617/138 267/615/136 -f 277/618/139 278/605/124 276/601/121 -f 274/597/117 278/605/124 277/618/139 -f 280/603/123 270/594/114 269/613/134 -f 282/604/120 280/603/123 279/620/141 -f 282/600/120 281/760/142 275/619/140 -f 247/612/133 272/611/132 268/614/135 -f 284/208/143 286/202/268 285/622/144 -f 285/622/144 286/202/268 288/204/145 -f 287/624/42 288/204/145 290/211/146 -f 290/211/146 292/196/148 291/626/53 -f 292/205/148 294/207/150 293/627/149 -f 294/207/150 296/212/151 295/629/41 -f 296/212/151 298/199/153 297/630/152 -f 298/199/153 284/208/143 283/623/51 -f 300/209/154 316/215/161 315/214/155 -f 307/216/157 323/635/155 325/631/158 -f 306/201/160 322/229/169 316/215/161 -f 305/200/162 304/206/170 320/223/163 -f 303/198/165 302/197/171 318/221/166 -f 299/210/156 315/214/155 317/217/158 -f 305/200/162 321/226/164 322/229/169 -f 303/526/165 319/224/167 320/223/163 -f 301/203/168 317/217/158 318/221/166 -f 313/228/172 329/637/164 330/632/169 -f 311/222/174 327/761/167 328/633/163 -f 309/219/159 325/631/158 326/634/166 -f 308/213/177 324/636/161 323/635/155 -f 314/227/173 330/632/169 324/636/161 -f 312/225/175 328/633/163 329/637/164 -f 310/218/176 326/634/166 327/638/167 -f 364/639/178 334/245/269 336/247/145 -f 336/247/145 338/254/146 366/641/147 -f 338/254/146 340/236/148 367/642/53 -f 340/248/148 342/250/150 368/643/149 -f 342/250/150 344/255/151 369/645/41 -f 369/645/41 344/255/151 346/242/179 -f 348/252/154 356/648/161 355/647/155 -f 354/244/160 362/653/169 356/648/161 -f 353/243/162 352/249/170 360/649/163 -f 350/237/171 358/654/166 359/651/167 -f 347/253/156 355/647/155 357/652/158 -f 353/243/162 361/650/164 362/653/169 -f 351/533/165 359/762/167 360/649/163 -f 350/237/171 349/246/168 357/652/158 -f 370/646/180 363/664/181 331/655/51 -f 369/645/41 370/646/180 345/656/152 -f 368/643/149 369/645/41 343/657/41 -f 367/644/53 368/643/149 341/658/149 -f 366/641/147 367/642/53 339/660/53 -f 365/640/42 366/641/147 337/661/147 -f 364/639/178 365/640/42 335/662/42 -f 363/664/181 364/763/178 333/665/144 -f 387/666/182 393/670/182 390/667/183 -f 429/327/41 383/676/184 391/669/184 -f 391/669/184 394/679/192 424/323/185 -f 393/670/182 396/764/270 395/671/186 -f 382/668/183 383/676/184 385/672/187 -f 387/666/182 389/680/193 388/674/189 -f 390/667/183 391/669/184 383/676/184 -f 392/677/190 393/670/182 387/666/182 -f 397/678/191 396/764/270 393/670/182 -f 391/669/184 390/667/183 395/671/186 -f 389/680/193 387/666/182 382/668/183 -f 418/309/42 417/307/202 397/678/191 -f 420/312/42 418/309/42 392/677/190 -f 415/314/194 420/312/42 386/675/190 -f 429/327/41 423/317/271 385/672/187 -f 449/681/195 453/765/272 452/682/196 -f 450/684/198 451/766/202 447/685/185 -f 446/686/199 454/688/201 455/687/200 -f 448/683/197 452/682/196 455/687/200 -f 461/689/202 457/767/185 456/358/203 -f 462/362/205 460/364/204 456/358/203 -f 475/690/207 466/715/232 465/691/208 -f 468/693/210 477/716/233 484/694/211 -f 479/696/213 493/768/242 494/697/214 -f 465/691/208 482/725/240 487/699/216 -f 479/696/213 474/698/215 473/700/217 -f 473/700/217 486/723/239 485/702/219 -f 490/703/220 489/728/243 496/704/221 -f 467/706/223 489/728/243 490/703/220 -f 478/708/225 471/721/238 491/709/226 -f 467/706/223 470/707/224 469/711/228 -f 491/709/226 498/729/244 501/713/230 -f 475/690/207 495/719/236 488/714/231 -f 468/693/210 471/721/238 478/708/225 -f 494/697/214 493/768/242 500/717/234 -f 495/719/236 502/769/273 497/720/237 -f 466/715/232 467/706/223 464/712/229 -f 471/721/238 468/693/210 469/711/228 -f 479/722/213 476/770/218 477/716/233 -f 472/692/209 473/700/217 474/698/215 -f 472/692/209 487/699/216 486/723/239 -f 477/716/233 476/770/218 485/724/219 -f 464/712/229 483/731/245 482/725/240 -f 469/711/228 468/693/210 481/695/212 -f 490/703/220 491/709/226 471/721/238 -f 479/722/213 478/708/225 492/710/227 -f 495/719/236 475/690/207 474/698/215 -f 466/715/232 488/714/231 489/728/243 -f 503/718/235 502/769/273 495/719/236 -f 489/728/243 488/714/231 497/720/237 -f 490/703/220 499/705/222 498/729/244 -f 500/730/234 493/727/242 492/710/227 -f 469/711/228 480/726/241 483/731/245 -f 506/732/246 507/771/246 509/733/247 -f 508/734/247 509/733/247 511/735/248 -f 510/736/248 511/735/248 505/737/249 -f 517/739/250 515/772/251 514/740/251 -f 519/742/252 517/739/250 516/741/250 -f 513/744/253 519/742/252 518/743/252 -f 529/746/254 531/773/255 530/747/255 -f 533/749/256 535/752/257 534/750/257 -f 535/752/257 529/746/254 528/748/254 -f 547/754/260 546/755/262 549/753/258 -f 545/756/264 549/753/258 546/755/262 -f 551/392/259 544/391/274 547/754/260 -f 541/572/261 543/386/275 546/755/262 -f 548/380/263 549/753/258 545/756/264 -l 332 373 +f 20/6/37 18/2/38 17/33/39 +f 19/5/40 21/7/41 18/2/38 +f 22/15/42 23/12/43 21/283/41 +f 24/20/44 25/17/45 23/12/43 +f 26/19/46 27/21/47 25/17/45 +f 28/24/48 29/25/49 27/21/47 +f 30/28/50 31/30/51 29/25/49 +f 32/34/52 17/33/39 31/30/51 +f 34/410/53 4/10/54 2/4/55 +f 35/411/52 2/4/55 16/31/56 +f 36/412/57 16/31/56 14/32/58 +f 37/413/59 14/32/58 12/27/60 +f 38/414/46 12/27/60 10/23/61 +f 39/415/62 10/23/61 8/14/63 +f 40/294/42 8/14/63 6/16/64 +f 33/416/40 6/9/64 4/10/54 +f 42/417/65 1/1/66 3/3/67 +f 43/418/41 3/3/67 5/8/68 +f 44/419/43 5/11/68 7/13/69 +f 45/420/70 7/13/69 9/18/71 +f 46/421/47 9/18/71 11/22/72 +f 47/422/49 11/22/72 13/26/73 +f 48/423/74 13/26/73 15/29/75 +f 41/424/76 15/29/75 1/1/66 +f 208/425/77 232/426/78 207/427/79 +f 211/428/80 236/429/81 210/430/82 +f 212/431/83 244/432/84 238/433/85 +f 205/434/86 242/435/87 244/436/84 +f 211/428/80 238/433/85 240/437/88 +f 224/438/89 226/439/90 227/440/91 +f 206/441/92 232/426/78 242/435/87 +f 224/438/89 222/111/93 221/442/94 +f 226/439/90 228/360/95 227/440/91 +f 210/430/82 234/443/96 209/444/97 +f 231/445/98 230/446/99 229/447/100 +f 234/443/96 235/448/101 233/449/102 +f 234/443/96 229/447/100 230/446/99 +f 239/450/103 238/433/85 237/451/104 +f 236/429/81 239/450/103 235/448/101 +f 242/435/87 231/445/98 241/452/105 +f 244/436/84 241/452/105 243/453/106 +f 244/432/84 237/451/104 238/433/85 +f 209/444/97 230/446/99 208/425/77 +f 246/126/107 247/454/108 245/455/12 +f 247/454/108 250/122/109 249/456/2 +f 249/456/2 252/129/110 251/457/111 +f 252/129/110 253/458/14 251/457/111 +f 254/123/112 255/459/113 253/460/14 +f 256/125/114 257/461/1 255/459/113 +f 258/130/115 259/462/116 257/461/1 +f 260/117/117 245/455/12 259/462/116 +f 262/127/118 277/132/119 261/128/120 +f 269/134/121 287/463/122 271/137/123 +f 268/119/124 278/133/125 262/127/118 +f 267/118/126 282/141/127 283/144/128 +f 265/116/129 280/139/130 281/365/131 +f 261/128/120 279/135/122 263/121/132 +f 267/118/126 284/147/133 268/119/124 +f 265/364/129 282/141/127 266/124/134 +f 263/121/132 280/139/130 264/115/135 +f 275/146/136 292/464/133 276/145/137 +f 273/140/138 290/465/139 274/143/140 +f 271/137/123 288/466/141 272/136/142 +f 270/131/143 285/467/144 269/134/121 +f 276/145/137 286/468/145 270/131/143 +f 274/143/140 291/469/146 275/146/136 +f 272/136/142 289/470/147 273/138/138 +f 326/471/148 298/163/109 327/472/2 +f 298/163/109 328/473/111 327/472/2 +f 300/170/149 329/474/14 328/473/111 +f 302/164/112 330/475/113 329/476/14 +f 304/166/150 331/477/1 330/475/113 +f 331/477/1 308/158/151 332/478/152 +f 310/168/153 317/479/154 309/169/155 +f 316/160/156 318/480/157 310/168/153 +f 315/159/158 322/481/159 323/482/160 +f 312/155/161 321/470/147 313/156/162 +f 309/169/155 319/483/122 311/162/163 +f 315/159/158 324/484/164 316/160/156 +f 313/371/162 322/481/159 314/165/165 +f 312/155/161 319/483/122 320/485/130 +f 332/478/152 293/486/12 307/487/116 +f 331/477/1 307/487/116 305/488/1 +f 330/475/113 305/488/1 303/489/113 +f 329/476/14 303/489/113 301/490/14 +f 328/473/111 301/458/14 299/491/111 +f 327/472/2 299/491/111 297/492/2 +f 326/471/148 297/492/2 295/493/108 +f 325/494/166 295/495/108 293/486/12 +f 349/496/167 352/497/168 344/498/168 +f 391/235/1 353/499/169 389/230/1 +f 353/499/169 386/231/170 389/230/1 +f 355/500/167 357/501/171 352/497/168 +f 344/498/168 347/502/172 346/503/173 +f 349/496/167 350/504/174 348/505/175 +f 352/497/168 345/506/169 344/498/168 +f 354/507/175 349/496/167 348/505/175 +f 359/508/176 355/500/167 354/507/175 +f 353/499/169 357/501/171 356/509/177 +f 351/510/178 344/498/168 346/503/173 +f 380/217/2 359/508/176 354/507/175 +f 382/220/2 354/507/175 348/505/175 +f 377/222/179 348/505/175 350/504/174 +f 391/235/1 347/502/172 345/506/169 +f 411/511/180 414/512/181 410/513/182 +f 412/514/183 409/515/184 408/516/185 +f 408/516/185 417/517/186 412/514/183 +f 410/513/182 417/517/186 416/518/187 +f 423/519/188 418/248/189 422/254/190 +f 424/252/191 418/248/189 420/250/192 +f 437/520/193 427/521/194 434/522/195 +f 430/523/196 446/524/197 443/525/198 +f 441/526/199 456/527/200 436/528/201 +f 427/521/194 449/529/202 434/522/195 +f 441/526/199 435/530/203 438/531/204 +f 435/530/203 447/532/205 438/531/204 +f 452/533/206 458/534/207 461/535/208 +f 429/536/209 452/533/206 432/537/210 +f 440/538/211 453/539/212 454/540/213 +f 429/536/209 431/541/214 426/542/215 +f 453/539/212 463/543/216 454/540/213 +f 437/520/193 450/544/217 428/545/218 +f 430/523/196 440/538/211 439/546/219 +f 456/527/200 462/547/220 465/548/221 +f 457/549/222 459/550/223 450/544/217 +f 428/545/218 426/542/215 427/521/194 +f 433/551/224 431/541/214 432/537/210 +f 441/552/199 439/546/219 440/538/211 +f 434/522/195 436/528/201 437/520/193 +f 434/522/195 448/553/225 435/530/203 +f 439/546/219 447/554/205 446/524/197 +f 426/542/215 444/555/226 427/521/194 +f 431/541/214 443/525/198 442/556/227 +f 452/533/206 433/551/224 432/537/210 +f 441/552/199 454/540/213 455/557/228 +f 457/549/222 436/528/201 456/527/200 +f 428/545/218 451/558/229 429/536/209 +f 465/548/221 457/549/222 456/527/200 +f 451/558/229 459/550/223 458/534/207 +f 452/533/206 460/559/230 453/539/212 +f 462/560/220 454/540/213 463/543/216 +f 431/541/214 445/561/231 426/542/215 +f 468/562/232 471/563/233 470/564/233 +f 470/564/233 473/565/234 472/566/234 +f 472/566/234 467/567/235 466/568/235 +f 479/564/236 476/569/237 478/563/236 +f 481/566/238 478/563/236 480/565/238 +f 475/568/239 480/565/238 474/567/239 +f 495/570/240 497/270/241 493/571/242 +f 487/406/243 492/572/244 493/571/242 +f 494/258/245 491/573/246 485/259/247 +f 20/6/37 19/5/40 18/2/38 +f 19/5/40 22/282/42 21/7/41 +f 22/15/42 24/20/44 23/12/43 +f 24/20/44 26/19/46 25/17/45 +f 26/19/46 28/24/48 27/21/47 +f 28/24/48 30/28/50 29/25/49 +f 30/28/50 32/34/52 31/30/51 +f 32/34/52 20/6/37 17/33/39 +f 34/410/53 33/416/40 4/10/54 +f 35/411/52 34/410/53 2/4/55 +f 36/412/57 35/411/52 16/31/56 +f 37/413/59 36/412/57 14/32/58 +f 38/414/46 37/413/59 12/27/60 +f 39/415/62 38/414/46 10/23/61 +f 40/294/42 39/415/62 8/14/63 +f 33/416/40 40/574/42 6/9/64 +f 42/417/65 41/424/76 1/1/66 +f 43/418/41 42/417/65 3/3/67 +f 44/419/43 43/575/41 5/11/68 +f 45/420/70 44/419/43 7/13/69 +f 46/421/47 45/420/70 9/18/71 +f 47/422/49 46/421/47 11/22/72 +f 48/423/74 47/422/49 13/26/73 +f 41/424/76 48/423/74 15/29/75 +f 208/425/77 230/446/99 232/426/78 +f 211/428/80 240/437/88 236/429/81 +f 212/431/83 205/576/86 244/432/84 +f 205/434/86 206/441/92 242/435/87 +f 211/428/80 212/431/83 238/433/85 +f 224/438/89 221/442/94 226/439/90 +f 206/441/92 207/427/79 232/426/78 +f 224/438/89 223/363/248 222/111/93 +f 226/439/90 225/104/249 228/360/95 +f 210/430/82 236/429/81 234/443/96 +f 231/445/98 232/426/78 230/446/99 +f 234/443/96 236/429/81 235/448/101 +f 234/443/96 233/449/102 229/447/100 +f 239/450/103 240/437/88 238/433/85 +f 236/429/81 240/437/88 239/450/103 +f 242/435/87 232/426/78 231/445/98 +f 244/436/84 242/435/87 241/452/105 +f 244/432/84 243/577/106 237/451/104 +f 209/444/97 234/443/96 230/446/99 +f 246/126/107 248/120/250 247/454/108 +f 247/454/108 248/120/250 250/122/109 +f 249/456/2 250/122/109 252/129/110 +f 252/129/110 254/114/112 253/458/14 +f 254/123/112 256/125/114 255/459/113 +f 256/125/114 258/130/115 257/461/1 +f 258/130/115 260/117/117 259/462/116 +f 260/117/117 246/126/107 245/455/12 +f 262/127/118 278/133/125 277/132/119 +f 269/134/121 285/467/144 287/463/122 +f 268/119/124 284/147/133 278/133/125 +f 267/118/126 266/124/134 282/141/127 +f 265/116/129 264/115/135 280/139/130 +f 261/128/120 277/132/119 279/135/122 +f 267/118/126 283/144/128 284/147/133 +f 265/364/129 281/142/131 282/141/127 +f 263/121/132 279/135/122 280/139/130 +f 275/146/136 291/469/146 292/464/133 +f 273/140/138 289/578/147 290/465/139 +f 271/137/123 287/463/122 288/466/141 +f 270/131/143 286/468/145 285/467/144 +f 276/145/137 292/464/133 286/468/145 +f 274/143/140 290/465/139 291/469/146 +f 272/136/142 288/466/141 289/470/147 +f 326/471/148 296/161/251 298/163/109 +f 298/163/109 300/170/149 328/473/111 +f 300/170/149 302/154/112 329/474/14 +f 302/164/112 304/166/150 330/475/113 +f 304/166/150 306/171/252 331/477/1 +f 331/477/1 306/171/252 308/158/151 +f 310/168/153 318/480/157 317/479/154 +f 316/160/156 324/484/164 318/480/157 +f 315/159/158 314/165/165 322/481/159 +f 312/155/161 320/485/130 321/470/147 +f 309/169/155 317/479/154 319/483/122 +f 315/159/158 323/482/160 324/484/164 +f 313/371/162 321/266/147 322/481/159 +f 312/155/161 311/162/163 319/483/122 +f 332/478/152 325/494/166 293/486/12 +f 331/477/1 332/478/152 307/487/116 +f 330/475/113 331/477/1 305/488/1 +f 329/476/14 330/475/113 303/489/113 +f 328/473/111 329/474/14 301/458/14 +f 327/472/2 328/473/111 299/491/111 +f 326/471/148 327/472/2 297/492/2 +f 325/494/166 326/579/148 295/495/108 +f 349/496/167 355/500/167 352/497/168 +f 391/235/1 345/506/169 353/499/169 +f 353/499/169 356/509/177 386/231/170 +f 355/500/167 358/580/253 357/501/171 +f 344/498/168 345/506/169 347/502/172 +f 349/496/167 351/510/178 350/504/174 +f 352/497/168 353/499/169 345/506/169 +f 354/507/175 355/500/167 349/496/167 +f 359/508/176 358/580/253 355/500/167 +f 353/499/169 352/497/168 357/501/171 +f 351/510/178 349/496/167 344/498/168 +f 380/217/2 379/215/254 359/508/176 +f 382/220/2 380/217/2 354/507/175 +f 377/222/179 382/220/2 348/505/175 +f 391/235/1 385/225/255 347/502/172 +f 411/511/180 415/581/256 414/512/181 +f 412/514/183 413/582/188 409/515/184 +f 408/516/185 416/518/187 417/517/186 +f 410/513/182 414/512/181 417/517/186 +f 423/519/188 419/583/184 418/248/189 +f 424/252/191 422/254/190 418/248/189 +f 437/520/193 428/545/218 427/521/194 +f 430/523/196 439/546/219 446/524/197 +f 441/526/199 455/584/228 456/527/200 +f 427/521/194 444/555/226 449/529/202 +f 441/526/199 436/528/201 435/530/203 +f 435/530/203 448/553/225 447/532/205 +f 452/533/206 451/558/229 458/534/207 +f 429/536/209 451/558/229 452/533/206 +f 440/538/211 433/551/224 453/539/212 +f 429/536/209 432/537/210 431/541/214 +f 453/539/212 460/559/230 463/543/216 +f 437/520/193 457/549/222 450/544/217 +f 430/523/196 433/551/224 440/538/211 +f 456/527/200 455/584/228 462/547/220 +f 457/549/222 464/585/257 459/550/223 +f 428/545/218 429/536/209 426/542/215 +f 433/551/224 430/523/196 431/541/214 +f 441/552/199 438/586/204 439/546/219 +f 434/522/195 435/530/203 436/528/201 +f 434/522/195 449/529/202 448/553/225 +f 439/546/219 438/586/204 447/554/205 +f 426/542/215 445/561/231 444/555/226 +f 431/541/214 430/523/196 443/525/198 +f 452/533/206 453/539/212 433/551/224 +f 441/552/199 440/538/211 454/540/213 +f 457/549/222 437/520/193 436/528/201 +f 428/545/218 450/544/217 451/558/229 +f 465/548/221 464/585/257 457/549/222 +f 451/558/229 450/544/217 459/550/223 +f 452/533/206 461/535/208 460/559/230 +f 462/560/220 455/557/228 454/540/213 +f 431/541/214 442/556/227 445/561/231 +f 468/562/232 469/569/232 471/563/233 +f 470/564/233 471/563/233 473/565/234 +f 472/566/234 473/565/234 467/567/235 +f 479/564/236 477/562/237 476/569/237 +f 481/566/238 479/564/236 478/563/236 +f 475/568/239 481/566/238 480/565/238 +f 493/571/242 492/572/244 495/570/240 +f 491/573/246 495/570/240 492/572/244 +f 497/270/241 490/269/258 493/571/242 +f 487/406/243 489/264/259 492/572/244 +f 494/258/245 495/570/240 491/573/246 +s 0 +f 498/587/260 503/588/260 502/589/260 +f 501/590/27 498/591/27 500/592/27 +f 503/404/1 494/258/1 484/260/1 +f 484/260/1 482/402/1 503/404/1 +f 498/587/260 499/593/260 503/588/260 +f 501/590/27 499/594/27 498/591/27 +l 294 335 +o PumpGrip +v 0.443200 1.647273 -5.814597 +v 0.443200 1.647273 -5.001840 +v -0.443198 1.647273 -5.814597 +v -0.443198 1.647273 -5.001840 +v 0.510669 1.652728 -4.763550 +v -0.510667 1.652728 -4.763550 +v 0.443200 1.647273 -6.244457 +v -0.443198 1.647273 -6.244457 +v 0.443200 1.647274 -7.247699 +v -0.443198 1.647274 -7.247699 +v 0.443200 1.378115 -7.539924 +v -0.443198 1.378115 -7.539924 +v 0.443200 1.079550 -7.539924 +v -0.443198 1.079550 -7.539924 +v 0.248882 0.889651 -5.814597 +v 0.443200 1.060285 -5.814597 +v 0.443200 1.060285 -5.001840 +v 0.248882 0.889651 -5.001840 +v -0.443198 1.060285 -5.814597 +v -0.248880 0.889651 -5.814597 +v -0.248880 0.889651 -5.001840 +v -0.443198 1.060285 -5.001840 +v 0.316350 0.779774 -4.763550 +v 0.510669 0.950408 -4.763550 +v -0.510667 0.950408 -4.763550 +v -0.316348 0.779774 -4.763550 +v 0.248882 0.780984 -6.244457 +v 0.443200 0.951618 -6.244457 +v -0.443198 0.951618 -6.244457 +v -0.248880 0.780984 -6.244457 +v 0.248882 0.780985 -7.247699 +v 0.443200 0.951619 -7.247699 +v -0.443198 0.951619 -7.247699 +v -0.248880 0.780985 -7.247699 +v 0.443200 1.032400 -7.594676 +v 0.248882 0.898080 -7.750655 +v -0.248880 0.898080 -7.750655 +v -0.443198 1.032400 -7.594676 +v 0.182936 1.764759 -2.404954 +v 0.519915 1.764759 -2.404954 +v 0.182936 1.814798 -2.426134 +v 0.519915 1.814798 -2.425681 +v 0.182936 1.764759 -2.446860 +v 0.519915 1.764759 -2.446860 +v 0.194255 1.710889 -2.424850 +v 0.519915 1.712354 -2.426178 +v 0.210307 1.836682 -1.008561 +v 0.210307 1.836682 -2.527064 +v 0.100311 1.850322 -1.008561 +v 0.100311 1.850322 -2.527064 +v 0.274949 1.555488 -1.008561 +v 0.274949 1.555487 -2.527063 +v 0.278441 1.749259 -1.008561 +v 0.278441 1.749258 -2.527064 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.7355 -0.6775 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 0.7578 -0.6525 +vn -0.3600 -0.9255 0.1181 +vn 0.3422 -0.9327 0.1137 +vn 0.3600 -0.9255 0.1181 +vn -0.6688 0.7364 -0.1026 +vn 0.6567 0.5705 0.4932 +vn 0.6688 0.7364 -0.1026 +vn -0.9224 -0.3836 0.0454 +vn -0.7071 0.7071 -0.0000 +vn -0.8977 -0.4369 0.0575 +vn 0.7071 0.7071 -0.0000 +vn 0.9072 -0.3651 -0.2093 +vn 0.9224 -0.3836 0.0454 +vn 0.8977 -0.4369 0.0575 +vn 0.6337 0.7206 -0.2813 +vn 0.3301 -0.9090 -0.2545 +vn -0.3304 -0.8325 0.4446 +vn -0.3301 -0.9090 -0.2545 +vn -0.9072 -0.3651 -0.2093 +vn -0.8988 -0.4352 -0.0526 +vn -0.6567 0.5705 0.4932 +vn 0.7868 -0.4159 0.4559 +vn -0.3422 -0.9327 0.1137 +vn 0.3430 -0.9334 -0.1052 +vn -0.6337 0.7206 -0.2813 +vn 0.8988 -0.4352 -0.0526 +vn 0.8140 0.2421 -0.5280 +vn 0.6269 0.3128 -0.7135 +vn -0.6269 0.3128 -0.7135 +vn -0.8140 0.2421 -0.5280 +vn -0.3430 -0.9334 -0.1052 +vn 0.3219 -0.2640 -0.9092 +vn 0.3304 -0.8325 0.4446 +vn -0.7868 -0.4159 0.4559 +vn -0.7590 0.1068 -0.6423 +vn -0.3219 -0.2640 -0.9092 +vn 0.7589 0.1067 -0.6424 +vn -0.0012 0.3898 0.9209 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 -0.3782 -0.9257 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.3465 0.9381 +vn -0.0000 0.3827 0.9239 +vn 0.0012 0.3898 -0.9209 +vn -0.0021 -0.3671 -0.9302 +vn 0.0055 -0.3754 0.9269 +vn 0.4935 0.8698 -0.0000 +vn 0.1231 0.9924 -0.0000 +vn 0.9998 -0.0180 -0.0000 +vn 0.9486 0.3165 -0.0000 +vt 0.280193 0.278528 +vt 0.202899 0.278528 +vt 0.217391 0.263804 +vt 0.275362 0.595092 +vt 0.207729 0.625767 +vt 0.207729 0.595092 +vt 0.275362 0.650307 +vt 0.207729 0.650307 +vt 0.260870 0.680982 +vt 0.265700 0.263804 +vt 0.280193 0.337423 +vt 0.202899 0.337423 +vt 0.275362 0.625767 +vt 0.222222 0.680982 +vt 0.207729 0.662577 +vt 0.275362 0.662577 +vt 0.125604 0.490798 +vt 0.077295 0.533742 +vt 0.077295 0.490798 +vt 0.207729 0.361963 +vt 0.275362 0.361963 +vt 0.144928 0.490798 +vt 0.202899 0.533742 +vt 0.144928 0.533742 +vt 0.275362 0.460123 +vt 0.207729 0.496933 +vt 0.207729 0.460123 +vt 0.000000 0.490798 +vt 0.057971 0.398773 +vt 0.057971 0.490798 +vt 0.057971 0.533742 +vt -0.000000 0.644172 +vt 0.000000 0.533742 +vt 0.077295 0.398773 +vt 0.125604 0.368098 +vt 0.125604 0.398773 +vt 0.202899 0.398773 +vt 0.144928 0.398773 +vt 0.144928 0.644172 +vt 0.202899 0.368098 +vt 0.000000 0.368098 +vt 0.057971 0.368098 +vt 0.125604 0.533742 +vt 0.077295 0.644172 +vt 0.275362 0.496933 +vt 0.057971 0.644172 +vt 0.048309 0.668712 +vt 0.019324 0.668712 +vt 0.188406 0.668712 +vt 0.154589 0.668712 +vt 0.125604 0.644172 +vt 0.077295 0.680982 +vt 0.077295 0.368098 +vt 0.144928 0.368098 +vt 0.144928 0.680982 +vt 0.125604 0.680982 +vt 0.057971 0.680982 +vt 0.202899 0.490798 +vt 0.000000 0.398773 +vt 0.202899 0.644172 +vt 0.492754 0.754601 +vt 0.478261 0.852761 +vt 0.478261 0.754601 +vt 0.463768 0.852761 +vt 0.463768 0.754601 +vt 0.521739 0.852761 +vt 0.507246 0.754601 +vt 0.521739 0.754601 +vt 0.531401 0.840491 +vt 0.521739 0.840491 +vt 0.526570 0.828221 +vt 0.492754 0.852761 +vt 0.507246 0.852761 +vt 0.526570 0.852761 +vt 0.386473 0.680982 +vt 0.589372 0.644172 +vt 0.589372 0.680982 +vt 0.386473 0.754601 +vt 0.589372 0.717791 +vt 0.589372 0.754601 +vt 0.386473 0.717791 +vt 0.386473 0.644172 +s 0 +f 527/595/261 528/596/261 529/597/261 +f 512/598/262 515/599/262 513/600/262 +f 515/599/263 516/601/263 517/602/263 +f 517/602/264 516/601/264 539/603/264 +f 529/597/261 526/604/261 527/595/261 +f 527/595/261 508/605/261 509/606/261 +f 509/606/261 528/596/261 527/595/261 +f 512/598/262 514/607/262 515/599/262 +f 515/599/263 514/607/263 516/601/263 +f 539/603/264 540/608/264 517/602/264 +f 541/609/264 517/602/264 540/608/264 +f 516/601/264 538/610/264 539/603/264 +s 1 +f 523/611/265 530/612/266 518/613/267 +f 507/614/268 508/605/269 505/615/270 +f 522/616/271 511/617/272 532/618/273 +f 504/619/274 511/620/272 506/621/272 +f 504/622/274 520/623/275 519/624/276 +f 505/615/270 506/621/272 507/614/268 +f 531/625/277 512/626/278 510/627/274 +f 521/628/279 529/629/280 524/630/281 +f 507/631/268 522/616/271 525/632/282 +f 511/617/272 536/633/283 532/618/273 +f 525/632/282 509/634/284 507/631/268 +f 520/623/275 508/635/269 527/636/285 +f 519/624/276 510/627/274 504/622/274 +f 533/637/286 534/638/287 530/612/266 +f 510/639/274 513/600/288 511/620/272 +f 535/640/289 516/641/290 514/642/291 +f 536/633/283 515/643/292 517/644/293 +f 537/645/294 539/646/295 534/638/287 +f 518/613/267 520/623/275 521/628/279 +f 524/630/281 522/616/271 523/611/265 +f 521/628/279 527/636/285 526/647/296 +f 524/630/281 528/648/297 525/632/282 +f 523/611/265 532/618/273 533/637/286 +f 518/613/267 531/625/277 519/624/276 +f 536/633/283 533/637/286 532/618/273 +f 531/625/277 534/638/287 535/640/289 +f 537/645/294 541/649/298 540/650/299 +f 538/651/300 534/638/287 539/646/295 +f 524/630/281 518/613/267 521/628/279 +f 523/611/265 533/637/286 530/612/266 +f 507/614/268 509/606/284 508/605/269 +f 522/616/271 506/652/272 511/617/272 +f 504/619/274 510/639/274 511/620/272 +f 504/622/274 505/653/270 520/623/275 +f 505/615/270 504/619/274 506/621/272 +f 531/625/277 535/640/289 512/626/278 +f 521/628/279 526/647/296 529/629/280 +f 507/631/268 506/652/272 522/616/271 +f 511/617/272 513/654/288 536/633/283 +f 525/632/282 528/648/297 509/634/284 +f 520/623/275 505/653/270 508/635/269 +f 519/624/276 531/625/277 510/627/274 +f 533/637/286 537/645/294 534/638/287 +f 510/639/274 512/598/278 513/600/288 +f 514/642/291 512/626/278 535/640/289 +f 535/640/289 538/651/300 516/641/290 +f 536/633/283 513/654/288 515/643/292 +f 517/644/293 541/649/298 536/633/283 +f 537/645/294 540/650/299 539/646/295 +f 518/613/267 519/624/276 520/623/275 +f 524/630/281 525/632/282 522/616/271 +f 521/628/279 520/623/275 527/636/285 +f 524/630/281 529/629/280 528/648/297 +f 523/611/265 522/616/271 532/618/273 +f 518/613/267 530/612/266 531/625/277 +f 536/633/283 537/645/294 533/637/286 +f 531/625/277 530/612/266 534/638/287 +f 537/645/294 536/633/283 541/649/298 +f 538/651/300 535/640/289 534/638/287 +f 524/630/281 523/611/265 518/613/267 +s 0 +f 542/655/301 545/656/301 544/657/301 +f 544/657/302 547/658/302 546/659/302 +f 547/660/303 548/661/303 546/662/303 +f 543/663/304 547/664/304 545/665/304 +f 548/661/305 543/666/305 542/655/305 +f 542/655/306 543/666/306 545/656/306 +f 544/657/307 545/656/307 547/658/307 +f 547/660/308 549/667/308 548/661/308 +f 543/663/304 549/668/304 547/664/304 +f 548/661/309 549/667/309 543/666/309 +s 1 +f 551/669/310 552/670/311 550/671/310 +f 555/672/312 556/673/313 554/674/312 +f 557/675/313 550/671/310 556/673/313 +f 551/669/310 553/676/311 552/670/311 +f 555/672/312 557/675/313 556/673/313 +f 557/675/313 551/669/310 550/671/310 +o ShellFore +v 0.050831 1.600261 -3.114101 +v 0.035833 1.636467 -3.114101 +v -0.000373 1.651464 -3.114101 +v -0.036579 1.636467 -3.114101 +v -0.051576 1.600261 -3.114101 +v -0.036579 1.564054 -3.114101 +v -0.000373 1.549057 -3.114101 +v 0.035833 1.564054 -3.114101 +v 0.146708 1.600261 -2.873161 +v 0.103629 1.704262 -2.873161 +v -0.000373 1.747342 -2.873161 +v -0.104375 1.704262 -2.873161 +v -0.147454 1.600261 -2.873161 +v -0.104375 1.496259 -2.873161 +v -0.000373 1.453180 -2.873161 +v 0.103629 1.496259 -2.873161 +v 0.103629 1.704262 -3.321586 +v 0.146708 1.600261 -3.321586 +v -0.000373 1.747342 -3.321586 +v -0.104375 1.704262 -3.321586 +v -0.147454 1.600261 -3.321586 +v -0.104375 1.496259 -3.321586 +v -0.000373 1.453180 -3.321586 +v 0.103629 1.496259 -3.321586 +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.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.8497 -0.3519 -0.3926 +vn -0.3520 -0.8497 -0.3926 +vn 0.3520 -0.8497 -0.3926 +vn 0.8497 -0.3520 -0.3926 +vn 0.8497 0.3520 -0.3926 +vn 0.3519 0.8497 -0.3926 +vn -0.3520 0.8497 -0.3926 +vn -0.8497 0.3520 -0.3926 +vn -0.8497 -0.3520 -0.3926 +vn 0.3520 0.8497 -0.3926 +vt 0.043550 0.791975 +vt 0.002178 0.930026 +vt 0.002178 0.791975 +vt 0.333158 0.791975 +vt 0.291785 0.930026 +vt 0.291785 0.791975 +vt 0.250413 0.930026 +vt 0.250413 0.791975 +vt 0.167668 0.791975 +vt 0.126295 0.930026 +vt 0.126295 0.791975 +vt 0.084923 0.791975 +vt 0.084923 0.930026 +vt 0.043550 0.930026 +vt 0.209040 0.930026 +vt 0.209040 0.791975 +vt 0.167668 0.930026 +vt 0.050685 0.998106 +vt 0.166073 0.998106 +vt 0.281460 0.998106 +vt 0.057134 0.998830 +vt 0.116907 0.930226 +vt 0.118548 0.999962 +vt 0.001433 0.999043 +vt 0.060207 0.931062 +vt 0.331484 0.999525 +vt 0.247738 0.930700 +vt 0.333277 0.931090 +vt 0.001218 0.996208 +vt 0.139723 0.930508 +vt 0.137063 0.995766 +vt 0.000345 0.997602 +vt 0.139908 0.933364 +vt 0.136182 0.998674 +vt 0.001907 0.998589 +vt 0.087835 0.929331 +vt 0.090634 0.998073 +vt 0.000235 0.999789 +vt 0.056663 0.931708 +vt 0.053753 0.998957 +vt 0.000699 0.998101 +vt -0.000302 0.930474 +vt 0.333158 0.930026 +vt 0.329256 0.998106 +vt 0.281460 0.998106 +vt 0.002889 0.998106 +vt 0.001473 0.930410 +vt 0.247782 0.999431 +vt 0.003911 0.932253 +vt -0.001634 0.932333 +vt 0.002007 0.930529 +vt -0.000503 0.931244 +s 0 +f 573/677/314 575/678/314 566/679/314 +f 566/680/315 574/681/315 567/682/315 +f 567/682/316 576/683/316 568/684/316 +f 570/685/317 579/686/317 571/687/317 +f 572/688/318 579/686/318 580/689/318 +f 572/688/319 581/690/319 573/677/319 +f 577/691/320 568/684/320 576/683/320 +f 569/692/321 578/693/321 570/685/321 +f 563/694/322 562/695/322 561/696/322 +f 559/697/323 575/698/323 558/699/323 +f 560/700/324 574/701/324 559/697/324 +f 560/702/325 577/703/325 576/704/325 +f 562/705/326 577/706/326 561/707/326 +f 563/708/327 578/709/327 562/710/327 +f 564/711/328 579/712/328 563/713/328 +f 565/714/329 580/715/329 564/716/329 +f 565/717/330 575/698/330 581/718/330 +f 573/677/314 581/690/314 575/678/314 +f 566/680/315 575/719/315 574/681/315 +f 567/682/316 574/681/316 576/683/316 +f 570/685/317 578/693/317 579/686/317 +f 572/688/318 571/687/318 579/686/318 +f 572/688/319 580/689/319 581/690/319 +f 577/691/320 569/692/320 568/684/320 +f 569/692/321 577/691/321 578/693/321 +f 561/696/322 560/720/322 559/721/322 +f 559/721/322 558/695/322 561/696/322 +f 558/695/322 565/694/322 561/696/322 +f 565/694/322 564/722/322 561/696/322 +f 564/722/322 563/694/322 561/696/322 +f 559/697/331 574/701/331 575/698/331 +f 560/700/324 576/723/324 574/701/324 +f 560/702/325 561/724/325 577/703/325 +f 562/705/326 578/725/326 577/706/326 +f 563/708/327 579/726/327 578/709/327 +f 564/711/332 580/727/332 579/712/332 +f 565/714/329 581/728/329 580/715/329 +f 565/717/330 558/699/330 575/698/330 +o Shell +v 0.146708 1.600261 -2.711360 +v 0.103629 1.704262 -2.711360 +v -0.000373 1.747342 -2.711360 +v -0.104375 1.704262 -2.711360 +v -0.147454 1.600261 -2.711360 +v -0.104375 1.496259 -2.711360 +v -0.000373 1.453180 -2.711360 +v 0.103629 1.496259 -2.711360 +v 0.165534 1.600261 -2.711360 +v 0.116941 1.717575 -2.711360 +v -0.000373 1.766168 -2.711360 +v -0.117687 1.717575 -2.711360 +v -0.166280 1.600261 -2.711360 +v -0.117687 1.482947 -2.711360 +v -0.000373 1.434354 -2.711360 +v 0.116941 1.482947 -2.711360 +v 0.165534 1.600261 -2.660172 +v 0.116941 1.717575 -2.660172 +v -0.000373 1.766168 -2.660172 +v -0.117687 1.717575 -2.660172 +v -0.166280 1.600261 -2.660172 +v -0.117687 1.482947 -2.660172 +v -0.000373 1.434354 -2.660172 +v 0.116941 1.482947 -2.660172 +v 0.146708 1.600261 -2.873161 +v 0.103629 1.704262 -2.873161 +v -0.000373 1.747342 -2.873161 +v -0.104375 1.704262 -2.873161 +v -0.147454 1.600261 -2.873161 +v -0.104375 1.496259 -2.873161 +v -0.000373 1.453180 -2.873161 +v 0.103629 1.496259 -2.873161 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.3827 -0.9239 -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.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vt 0.207020 0.712433 +vt 0.247848 0.790812 +vt 0.207020 0.790812 +vt 0.166191 0.790812 +vt 0.166191 0.712433 +vt 0.125363 0.712433 +vt 0.084534 0.712433 +vt 0.288676 0.712433 +vt 0.329504 0.712433 +vt 0.002878 0.712433 +vt 0.043706 0.712433 +vt 0.247848 0.712433 +vt 0.334095 0.764304 +vt 0.358730 0.803066 +vt 0.477679 0.725541 +vt 0.477679 0.803066 +vt 0.502314 0.764304 +vt 0.358730 0.725541 +vt 0.288676 0.790812 +vt 0.002878 0.790812 +vt 0.043706 0.790812 +vt 0.084534 0.790812 +vt 0.125363 0.790812 +vt 0.418204 0.819122 +vt 0.418204 0.709486 +vt 0.329504 0.790812 +s 0 +f 585/729/333 608/730/333 609/731/333 +f 585/729/334 610/732/334 586/733/334 +f 587/734/335 596/735/335 595/734/335 +f 583/736/335 590/737/335 582/737/335 +f 582/738/335 597/739/335 589/739/335 +f 584/740/335 593/729/335 592/740/335 +f 604/741/336 605/742/336 601/743/336 +f 593/729/333 600/740/333 592/740/333 +f 596/735/337 603/734/337 595/734/337 +f 594/733/334 601/729/334 593/729/334 +f 597/739/338 604/735/338 596/735/338 +f 592/740/339 599/736/339 591/736/339 +f 594/733/340 603/734/340 602/733/340 +f 590/738/341 605/739/341 597/739/341 +f 591/736/342 598/737/342 590/737/342 +f 586/733/335 593/729/335 585/729/335 +f 584/740/335 591/736/335 583/736/335 +f 589/739/335 596/735/335 588/735/335 +f 599/744/336 600/745/336 601/743/336 +f 587/734/335 594/733/335 586/733/335 +f 603/746/336 604/741/336 601/743/336 +f 583/736/339 608/730/339 584/740/339 +f 582/737/342 607/747/342 583/736/342 +f 589/739/341 606/748/341 582/738/341 +f 588/735/338 613/749/338 589/739/338 +f 587/734/337 612/750/337 588/735/337 +f 587/734/340 610/732/340 611/751/340 +f 587/734/335 588/735/335 596/735/335 +f 583/736/335 591/736/335 590/737/335 +f 582/738/335 590/738/335 597/739/335 +f 584/740/335 585/729/335 593/729/335 +f 605/742/336 598/752/336 599/744/336 +f 593/729/333 601/729/333 600/740/333 +f 596/735/337 604/735/337 603/734/337 +f 594/733/334 602/733/334 601/729/334 +f 597/739/338 605/739/338 604/735/338 +f 592/740/339 600/740/339 599/736/339 +f 594/733/340 595/734/340 603/734/340 +f 590/738/341 598/738/341 605/739/341 +f 591/736/342 599/736/342 598/737/342 +f 586/733/335 594/733/335 593/729/335 +f 584/740/335 592/740/335 591/736/335 +f 589/739/335 597/739/335 596/735/335 +f 587/734/335 595/734/335 594/733/335 +f 601/743/336 602/753/336 603/746/336 +f 605/742/336 599/744/336 601/743/336 +f 585/729/333 584/740/333 608/730/333 +f 585/729/334 609/731/334 610/732/334 +f 583/736/339 607/747/339 608/730/339 +f 582/737/342 606/754/342 607/747/342 +f 589/739/341 613/749/341 606/748/341 +f 588/735/338 612/750/338 613/749/338 +f 587/734/337 611/751/337 612/750/337 +f 587/734/340 586/733/340 610/732/340 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/spas-12.png b/src/main/resources/assets/hbm/textures/models/weapons/spas-12.png index fac73a9839334930e1c1315d9054982c67cd2b01..d501f6e4491cecbb78be976e7e654d88913bf8c2 100644 GIT binary patch literal 19221 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